summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZoltan Fridrich <zfridric@redhat.com>2023-01-27 15:03:53 +0100
committerZoltan Fridrich <zfridric@redhat.com>2023-01-27 15:11:28 +0100
commit50e0c39fc9b8e0ae493f42a3046db5e70f8ea044 (patch)
tree36d6eb0dde4d81527a07017d6df7d1dd4b7e436e
parent21288eb0ce9d27f00c4f8ac8048b22f4003f65ac (diff)
downloadgnutls-50e0c39fc9b8e0ae493f42a3046db5e70f8ea044.tar.gz
Indent code
Co-authored-by: Simon Josefsson <simon@josefsson.org> Signed-off-by: Zoltan Fridrich <zfridric@redhat.com>
-rw-r--r--doc/alert-printlist.c7
-rw-r--r--doc/common.c2
-rw-r--r--doc/errcodes.c13
-rw-r--r--doc/examples/ex-alert.c32
-rw-r--r--doc/examples/ex-cert-select-pkcs11.c200
-rw-r--r--doc/examples/ex-cert-select.c246
-rw-r--r--doc/examples/ex-client-anon.c168
-rw-r--r--doc/examples/ex-client-dtls.c150
-rw-r--r--doc/examples/ex-client-psk.c206
-rw-r--r--doc/examples/ex-client-resume.c219
-rw-r--r--doc/examples/ex-client-srp.c203
-rw-r--r--doc/examples/ex-client-x509-3.1.c236
-rw-r--r--doc/examples/ex-client-x509.c200
-rw-r--r--doc/examples/ex-crq.c105
-rw-r--r--doc/examples/ex-ocsp-client.c435
-rw-r--r--doc/examples/ex-pkcs11-list.c46
-rw-r--r--doc/examples/ex-pkcs12.c212
-rw-r--r--doc/examples/ex-serv-anon.c237
-rw-r--r--doc/examples/ex-serv-dtls.c635
-rw-r--r--doc/examples/ex-serv-psk.c324
-rw-r--r--doc/examples/ex-serv-srp.c282
-rw-r--r--doc/examples/ex-serv-x509.c295
-rw-r--r--doc/examples/ex-session-info.c171
-rw-r--r--doc/examples/ex-verify-ssh.c152
-rw-r--r--doc/examples/ex-verify.c205
-rw-r--r--doc/examples/ex-x509-info.c155
-rw-r--r--doc/examples/examples.h10
-rw-r--r--doc/examples/print-ciphersuites.c87
-rw-r--r--doc/examples/tcp.c48
-rw-r--r--doc/examples/tlsproxy/buffer.c218
-rw-r--r--doc/examples/tlsproxy/buffer.h28
-rw-r--r--doc/examples/tlsproxy/crypto-gnutls.c879
-rw-r--r--doc/examples/tlsproxy/crypto-gnutls.h22
-rw-r--r--doc/examples/tlsproxy/tlsproxy.c641
-rw-r--r--doc/examples/udp.c52
-rw-r--r--doc/examples/verify.c90
-rw-r--r--doc/printlist.c15
-rw-r--r--extra/gnutls_openssl.c50
-rw-r--r--extra/includes/gnutls/openssl.h143
-rw-r--r--extra/openssl_compat.c12
-rw-r--r--extra/openssl_compat.h4
-rw-r--r--fuzz/certs.h253
-rw-r--r--fuzz/fuzzer.h10
-rw-r--r--fuzz/gnutls_base64_decoder_fuzzer.c4
-rw-r--r--fuzz/gnutls_base64_encoder_fuzzer.c4
-rw-r--r--fuzz/gnutls_client_fuzzer.c7
-rw-r--r--fuzz/gnutls_client_rawpk_fuzzer.c29
-rw-r--r--fuzz/gnutls_dn_parser_fuzzer.c4
-rw-r--r--fuzz/gnutls_ext_raw_parse_fuzzer.c11
-rw-r--r--fuzz/gnutls_handshake_client_fuzzer.c11
-rw-r--r--fuzz/gnutls_handshake_server_fuzzer.c28
-rw-r--r--fuzz/gnutls_idna_parser_fuzzer.c6
-rw-r--r--fuzz/gnutls_ocsp_req_parser_fuzzer.c2
-rw-r--r--fuzz/gnutls_ocsp_resp_parser_fuzzer.c5
-rw-r--r--fuzz/gnutls_pkcs12_key_parser_fuzzer.c10
-rw-r--r--fuzz/gnutls_pkcs7_parser_fuzzer.c2
-rw-r--r--fuzz/gnutls_pkcs8_key_parser_fuzzer.c8
-rw-r--r--fuzz/gnutls_private_key_parser_fuzzer.c2
-rw-r--r--fuzz/gnutls_psk_client_fuzzer.c14
-rw-r--r--fuzz/gnutls_psk_server_fuzzer.c27
-rw-r--r--fuzz/gnutls_reverse_idna_parser_fuzzer.c8
-rw-r--r--fuzz/gnutls_server_fuzzer.c24
-rw-r--r--fuzz/gnutls_server_rawpk_fuzzer.c22
-rw-r--r--fuzz/gnutls_set_trust_file_fuzzer.c18
-rw-r--r--fuzz/gnutls_srp_client_fuzzer.c8
-rw-r--r--fuzz/gnutls_srp_server_fuzzer.c41
-rw-r--r--fuzz/gnutls_x509_crl_parser_fuzzer.c2
-rw-r--r--fuzz/gnutls_x509_crq_parser_fuzzer.c2
-rw-r--r--fuzz/gnutls_x509_parser_fuzzer.c2
-rw-r--r--fuzz/gnutls_x509_verify_fuzzer.c258
-rw-r--r--fuzz/handshake.h17
-rw-r--r--fuzz/main.c45
-rw-r--r--fuzz/mem.h5
-rw-r--r--fuzz/srp.h8
-rw-r--r--lib/abstract_int.h50
-rw-r--r--lib/accelerated/aarch64/aarch64-common.c54
-rw-r--r--lib/accelerated/aarch64/aarch64-common.h24
-rw-r--r--lib/accelerated/aarch64/aes-aarch64.h37
-rw-r--r--lib/accelerated/aarch64/aes-cbc-aarch64.c15
-rw-r--r--lib/accelerated/aarch64/aes-ccm-aarch64.c81
-rw-r--r--lib/accelerated/aarch64/aes-gcm-aarch64.c31
-rw-r--r--lib/accelerated/aarch64/hmac-sha-aarch64.c28
-rw-r--r--lib/accelerated/aarch64/sha-aarch64.c40
-rw-r--r--lib/accelerated/aarch64/sha-aarch64.h15
-rw-r--r--lib/accelerated/accelerated.h2
-rw-r--r--lib/accelerated/afalg.c81
-rw-r--r--lib/accelerated/cryptodev-gcm.c49
-rw-r--r--lib/accelerated/cryptodev.c82
-rw-r--r--lib/accelerated/cryptodev.h4
-rw-r--r--lib/accelerated/x86/aes-cbc-x86-aesni.c8
-rw-r--r--lib/accelerated/x86/aes-cbc-x86-ssse3.c10
-rw-r--r--lib/accelerated/x86/aes-ccm-x86-aesni.c76
-rw-r--r--lib/accelerated/x86/aes-gcm-aead.h26
-rw-r--r--lib/accelerated/x86/aes-gcm-padlock.c40
-rw-r--r--lib/accelerated/x86/aes-gcm-x86-aesni.c54
-rw-r--r--lib/accelerated/x86/aes-gcm-x86-pclmul-avx.c63
-rw-r--r--lib/accelerated/x86/aes-gcm-x86-pclmul.c14
-rw-r--r--lib/accelerated/x86/aes-gcm-x86-ssse3.c62
-rw-r--r--lib/accelerated/x86/aes-padlock.c13
-rw-r--r--lib/accelerated/x86/aes-padlock.h11
-rw-r--r--lib/accelerated/x86/aes-x86.h46
-rw-r--r--lib/accelerated/x86/aes-xts-x86-aesni.c15
-rw-r--r--lib/accelerated/x86/hmac-padlock.c25
-rw-r--r--lib/accelerated/x86/hmac-x86-ssse3.c64
-rw-r--r--lib/accelerated/x86/sha-padlock.c67
-rw-r--r--lib/accelerated/x86/sha-padlock.h18
-rw-r--r--lib/accelerated/x86/sha-x86-ssse3.c49
-rw-r--r--lib/accelerated/x86/sha-x86.h12
-rw-r--r--lib/accelerated/x86/x86-common.c215
-rw-r--r--lib/accelerated/x86/x86-common.h12
-rw-r--r--lib/alert.c15
-rw-r--r--lib/algorithms.h201
-rw-r--r--lib/algorithms/cert_types.c6
-rw-r--r--lib/algorithms/ciphers.c652
-rw-r--r--lib/algorithms/ciphersuites.c632
-rw-r--r--lib/algorithms/ecc.c176
-rw-r--r--lib/algorithms/groups.c111
-rw-r--r--lib/algorithms/kx.c60
-rw-r--r--lib/algorithms/mac.c137
-rw-r--r--lib/algorithms/protocols.c103
-rw-r--r--lib/algorithms/publickey.c135
-rw-r--r--lib/algorithms/secparams.c7
-rw-r--r--lib/algorithms/sign.c200
-rw-r--r--lib/anon_cred.c35
-rw-r--r--lib/asn1_tab.c2
-rw-r--r--lib/atfork.c5
-rw-r--r--lib/atfork.h32
-rw-r--r--lib/atomic.h31
-rw-r--r--lib/auth.c37
-rw-r--r--lib/auth.h56
-rw-r--r--lib/auth/anon.c37
-rw-r--r--lib/auth/anon.h8
-rw-r--r--lib/auth/anon_ecdh.c32
-rw-r--r--lib/auth/cert.c356
-rw-r--r--lib/auth/cert.h54
-rw-r--r--lib/auth/dh_common.c173
-rw-r--r--lib/auth/dh_common.h8
-rw-r--r--lib/auth/dhe.c22
-rw-r--r--lib/auth/dhe_psk.c76
-rw-r--r--lib/auth/ecdhe.c110
-rw-r--r--lib/auth/ecdhe.h15
-rw-r--r--lib/auth/psk.c56
-rw-r--r--lib/auth/psk.h29
-rw-r--r--lib/auth/psk_passwd.c25
-rw-r--r--lib/auth/psk_passwd.h4
-rw-r--r--lib/auth/rsa.c30
-rw-r--r--lib/auth/rsa_common.h6
-rw-r--r--lib/auth/rsa_psk.c82
-rw-r--r--lib/auth/srp_kx.c199
-rw-r--r--lib/auth/srp_kx.h14
-rw-r--r--lib/auth/srp_passwd.c49
-rw-r--r--lib/auth/srp_passwd.h11
-rw-r--r--lib/auth/srp_rsa.c42
-rw-r--r--lib/auth/srp_sb64.c35
-rw-r--r--lib/auth/vko_gost.c42
-rw-r--r--lib/auto-verify.c18
-rw-r--r--lib/buffers.c347
-rw-r--r--lib/buffers.h29
-rw-r--r--lib/cert-cred-rawpk.c70
-rw-r--r--lib/cert-cred-x509.c181
-rw-r--r--lib/cert-cred.c148
-rw-r--r--lib/cert-cred.h34
-rw-r--r--lib/cert-session.c151
-rw-r--r--lib/cipher-cbc.c48
-rw-r--r--lib/cipher.c391
-rw-r--r--lib/cipher.h16
-rw-r--r--lib/cipher_int.c79
-rw-r--r--lib/cipher_int.h125
-rw-r--r--lib/compress.c74
-rw-r--r--lib/compress.h14
-rw-r--r--lib/constate.c371
-rw-r--r--lib/constate.h27
-rw-r--r--lib/crypto-api.c199
-rw-r--r--lib/crypto-api.h22
-rw-r--r--lib/crypto-backend.c61
-rw-r--r--lib/crypto-backend.h369
-rw-r--r--lib/crypto-selftests-pk.c572
-rw-r--r--lib/crypto-selftests.c1913
-rw-r--r--lib/crypto.h7
-rw-r--r--lib/datum.c4
-rw-r--r--lib/datum.h8
-rw-r--r--lib/db.c11
-rw-r--r--lib/db.h9
-rw-r--r--lib/debug.c10
-rw-r--r--lib/debug.h7
-rw-r--r--lib/dh-primes.c758
-rw-r--r--lib/dh-session.c78
-rw-r--r--lib/dh.c122
-rw-r--r--lib/dh.h17
-rw-r--r--lib/dtls-sw.c13
-rw-r--r--lib/dtls.c102
-rw-r--r--lib/dtls.h27
-rw-r--r--lib/ecc.c12
-rw-r--r--lib/ecc.h4
-rw-r--r--lib/errors.c81
-rw-r--r--lib/errors.h128
-rw-r--r--lib/ext/alpn.c90
-rw-r--r--lib/ext/alpn.h10
-rw-r--r--lib/ext/cert_types.h53
-rw-r--r--lib/ext/client_cert_type.c176
-rw-r--r--lib/ext/client_cert_type.h6
-rw-r--r--lib/ext/compress_certificate.c51
-rw-r--r--lib/ext/compress_certificate.h16
-rw-r--r--lib/ext/cookie.c35
-rw-r--r--lib/ext/cookie.h6
-rw-r--r--lib/ext/dumbfw.c13
-rw-r--r--lib/ext/dumbfw.h6
-rw-r--r--lib/ext/early_data.c27
-rw-r--r--lib/ext/early_data.h6
-rw-r--r--lib/ext/ec_point_formats.c28
-rw-r--r--lib/ext/ec_point_formats.h6
-rw-r--r--lib/ext/etm.c41
-rw-r--r--lib/ext/etm.h6
-rw-r--r--lib/ext/ext_master_secret.c36
-rw-r--r--lib/ext/ext_master_secret.h6
-rw-r--r--lib/ext/heartbeat.c95
-rw-r--r--lib/ext/heartbeat.h18
-rw-r--r--lib/ext/key_share.c434
-rw-r--r--lib/ext/key_share.h6
-rw-r--r--lib/ext/max_record.c20
-rw-r--r--lib/ext/max_record.h6
-rw-r--r--lib/ext/post_handshake.c10
-rw-r--r--lib/ext/post_handshake.h6
-rw-r--r--lib/ext/pre_shared_key.c309
-rw-r--r--lib/ext/pre_shared_key.h18
-rw-r--r--lib/ext/psk_ke_modes.c51
-rw-r--r--lib/ext/psk_ke_modes.h6
-rw-r--r--lib/ext/record_size_limit.c36
-rw-r--r--lib/ext/record_size_limit.h6
-rw-r--r--lib/ext/safe_renegotiation.c77
-rw-r--r--lib/ext/safe_renegotiation.h6
-rw-r--r--lib/ext/server_cert_type.c147
-rw-r--r--lib/ext/server_cert_type.h6
-rw-r--r--lib/ext/server_name.c83
-rw-r--r--lib/ext/server_name.h6
-rw-r--r--lib/ext/session_ticket.c134
-rw-r--r--lib/ext/session_ticket.h14
-rw-r--r--lib/ext/signature.c95
-rw-r--r--lib/ext/signature.h9
-rw-r--r--lib/ext/srp.c59
-rw-r--r--lib/ext/srp.h12
-rw-r--r--lib/ext/srtp.c116
-rw-r--r--lib/ext/srtp.h14
-rw-r--r--lib/ext/status_request.c76
-rw-r--r--lib/ext/status_request.h17
-rw-r--r--lib/ext/supported_groups.c108
-rw-r--r--lib/ext/supported_groups.h9
-rw-r--r--lib/ext/supported_versions.c49
-rw-r--r--lib/ext/supported_versions.h6
-rw-r--r--lib/extras/hex.h10
-rw-r--r--lib/extras/randomart.c6
-rw-r--r--lib/extras/randomart.h4
-rw-r--r--lib/extv.c34
-rw-r--r--lib/extv.h24
-rw-r--r--lib/file.c3
-rw-r--r--lib/file.h4
-rw-r--r--lib/fingerprint.c11
-rw-r--r--lib/fips.c163
-rw-r--r--lib/fips.h61
-rw-r--r--lib/fipshmac.c31
-rw-r--r--lib/global.c56
-rw-r--r--lib/global.h12
-rw-r--r--lib/gnutls_int.h606
-rw-r--r--lib/gthreads.h24
-rw-r--r--lib/handshake-checks.c42
-rw-r--r--lib/handshake-defs.h38
-rw-r--r--lib/handshake-tls13.c399
-rw-r--r--lib/handshake.c808
-rw-r--r--lib/handshake.h53
-rw-r--r--lib/hash_int.c33
-rw-r--r--lib/hash_int.h32
-rw-r--r--lib/hello_ext.c228
-rw-r--r--lib/hello_ext.h77
-rw-r--r--lib/hello_ext_lib.c29
-rw-r--r--lib/hello_ext_lib.h31
-rw-r--r--lib/includes/gnutls/abstract.h419
-rw-r--r--lib/includes/gnutls/compat.h139
-rw-r--r--lib/includes/gnutls/crypto.h241
-rw-r--r--lib/includes/gnutls/dtls.h8
-rw-r--r--lib/includes/gnutls/gnutls.h.in1675
-rw-r--r--lib/includes/gnutls/gnutlsxx.h105
-rw-r--r--lib/includes/gnutls/ocsp.h53
-rw-r--r--lib/includes/gnutls/openpgp.h324
-rw-r--r--lib/includes/gnutls/pkcs11.h284
-rw-r--r--lib/includes/gnutls/pkcs12.h42
-rw-r--r--lib/includes/gnutls/pkcs7.h65
-rw-r--r--lib/includes/gnutls/self-test.h12
-rw-r--r--lib/includes/gnutls/socket.h16
-rw-r--r--lib/includes/gnutls/system-keys.h25
-rw-r--r--lib/includes/gnutls/tpm.h14
-rw-r--r--lib/includes/gnutls/urls.h26
-rw-r--r--lib/includes/gnutls/x509-ext.h184
-rw-r--r--lib/includes/gnutls/x509.h919
-rw-r--r--lib/inih/ini.c250
-rw-r--r--lib/inih/ini.h103
-rw-r--r--lib/iov.c15
-rw-r--r--lib/iov.h14
-rw-r--r--lib/kx.c160
-rw-r--r--lib/kx.h18
-rw-r--r--lib/locks.c1
-rw-r--r--lib/locks.h30
-rw-r--r--lib/mbuffers.c21
-rw-r--r--lib/mbuffers.h44
-rw-r--r--lib/mem.c14
-rw-r--r--lib/mem.h50
-rw-r--r--lib/mpi.c49
-rw-r--r--lib/mpi.h74
-rw-r--r--lib/name_val_array.h22
-rw-r--r--lib/nettle/cipher.c1402
-rw-r--r--lib/nettle/ecc-gost-curve.h68
-rw-r--r--lib/nettle/gnettle.h10
-rw-r--r--lib/nettle/gost/acpkm.c72
-rw-r--r--lib/nettle/gost/acpkm.h42
-rw-r--r--lib/nettle/gost/bignum-le.c40
-rw-r--r--lib/nettle/gost/bignum-le.h45
-rw-r--r--lib/nettle/gost/cmac-kuznyechik.c20
-rw-r--r--lib/nettle/gost/cmac-magma.c24
-rw-r--r--lib/nettle/gost/cmac.h92
-rw-r--r--lib/nettle/gost/ecc-gost-hash.c17
-rw-r--r--lib/nettle/gost/gost-point-mul-g.c21
-rw-r--r--lib/nettle/gost/gost-point.c132
-rw-r--r--lib/nettle/gost/gost-wrap.c27
-rw-r--r--lib/nettle/gost/gost28147.c4737
-rw-r--r--lib/nettle/gost/gost28147.h328
-rw-r--r--lib/nettle/gost/gostdsa-keygen.c24
-rw-r--r--lib/nettle/gost/gostdsa-mask.c79
-rw-r--r--lib/nettle/gost/gostdsa2.h28
-rw-r--r--lib/nettle/gost/hmac-gost.h77
-rw-r--r--lib/nettle/gost/hmac-streebog.c26
-rw-r--r--lib/nettle/gost/kuznyechik.c354
-rw-r--r--lib/nettle/gost/kuznyechik.h73
-rw-r--r--lib/nettle/gost/kuztable.h37298
-rw-r--r--lib/nettle/gost/magma.c91
-rw-r--r--lib/nettle/gost/magma.h69
-rw-r--r--lib/nettle/gost/nettle-write.h23
-rw-r--r--lib/nettle/gost/streebog-meta.c10
-rw-r--r--lib/nettle/gost/streebog.c2425
-rw-r--r--lib/nettle/gost/streebog.h102
-rw-r--r--lib/nettle/gost/write-le32.c46
-rw-r--r--lib/nettle/gost_keywrap.c25
-rw-r--r--lib/nettle/init.c14
-rw-r--r--lib/nettle/int/block8.h34
-rw-r--r--lib/nettle/int/drbg-aes-self-test.c102
-rw-r--r--lib/nettle/int/drbg-aes.c7
-rw-r--r--lib/nettle/int/drbg-aes.h36
-rw-r--r--lib/nettle/int/dsa-compute-k.c14
-rw-r--r--lib/nettle/int/dsa-compute-k.h11
-rw-r--r--lib/nettle/int/dsa-fips.h100
-rw-r--r--lib/nettle/int/dsa-keygen-fips186.c76
-rw-r--r--lib/nettle/int/dsa-validate.c16
-rw-r--r--lib/nettle/int/ecdsa-compute-k.c34
-rw-r--r--lib/nettle/int/ecdsa-compute-k.h19
-rw-r--r--lib/nettle/int/mpn-base256.c86
-rw-r--r--lib/nettle/int/mpn-base256.h12
-rw-r--r--lib/nettle/int/provable-prime.c23
-rw-r--r--lib/nettle/int/rsa-fips.h9
-rw-r--r--lib/nettle/int/rsa-keygen-fips186.c105
-rw-r--r--lib/nettle/int/rsa-pad.c6
-rw-r--r--lib/nettle/int/tls1-prf.c60
-rw-r--r--lib/nettle/int/tls1-prf.h24
-rw-r--r--lib/nettle/mac.c108
-rw-r--r--lib/nettle/mpi.c63
-rw-r--r--lib/nettle/nettle-alloca.h26
-rw-r--r--lib/nettle/pk.c1329
-rw-r--r--lib/nettle/prf.c120
-rw-r--r--lib/nettle/rnd-common.h23
-rw-r--r--lib/nettle/rnd-fips.c9
-rw-r--r--lib/nettle/rnd-fuzzer.c12
-rw-r--r--lib/nettle/rnd.c49
-rw-r--r--lib/nettle/sysrng-bcrypt.c2
-rw-r--r--lib/nettle/sysrng-getentropy.c8
-rw-r--r--lib/nettle/sysrng-linux.c30
-rw-r--r--lib/nettle/sysrng-netbsd.c9
-rw-r--r--lib/nettle/sysrng-windows.c11
-rw-r--r--lib/num.h46
-rw-r--r--lib/ocsp-api.c170
-rw-r--r--lib/openpgp_compat.c245
-rw-r--r--lib/pathbuf.c13
-rw-r--r--lib/pathbuf.h11
-rw-r--r--lib/pcert.c99
-rw-r--r--lib/pin.c15
-rw-r--r--lib/pin.h9
-rw-r--r--lib/pk.c152
-rw-r--r--lib/pk.h104
-rw-r--r--lib/pkcs11.c784
-rw-r--r--lib/pkcs11_int.c102
-rw-r--r--lib/pkcs11_int.h199
-rw-r--r--lib/pkcs11_privkey.c237
-rw-r--r--lib/pkcs11_secret.c9
-rw-r--r--lib/pkcs11_write.c437
-rw-r--r--lib/pkcs11x.c63
-rw-r--r--lib/pkcs11x.h6
-rw-r--r--lib/prf.c58
-rw-r--r--lib/priority.c1268
-rw-r--r--lib/privkey.c237
-rw-r--r--lib/privkey_raw.c177
-rw-r--r--lib/profiles.c14
-rw-r--r--lib/profiles.h15
-rw-r--r--lib/psk.c98
-rw-r--r--lib/pubkey.c307
-rw-r--r--lib/random.c7
-rw-r--r--lib/random.h10
-rw-r--r--lib/randomart.c8
-rw-r--r--lib/range.c54
-rw-r--r--lib/record.c569
-rw-r--r--lib/record.h19
-rw-r--r--lib/safe-memfuncs.c2
-rw-r--r--lib/secrets.c97
-rw-r--r--lib/secrets.h37
-rw-r--r--lib/session.c120
-rw-r--r--lib/session_pack.c241
-rw-r--r--lib/session_pack.h4
-rw-r--r--lib/srp.c119
-rw-r--r--lib/srp.h14
-rw-r--r--lib/sslv2_compat.c21
-rw-r--r--lib/sslv2_compat.h4
-rw-r--r--lib/state.c256
-rw-r--r--lib/state.h41
-rw-r--r--lib/stek.c57
-rw-r--r--lib/stek.h26
-rw-r--r--lib/str-iconv.c28
-rw-r--r--lib/str-idna.c82
-rw-r--r--lib/str-unicode.c141
-rw-r--r--lib/str.c158
-rw-r--r--lib/str.h120
-rw-r--r--lib/str_array.h26
-rw-r--r--lib/supplemental.c57
-rw-r--r--lib/supplemental.h9
-rw-r--r--lib/system-keys.h21
-rw-r--r--lib/system.c4
-rw-r--r--lib/system.h69
-rw-r--r--lib/system/certs.c146
-rw-r--r--lib/system/fastopen.c68
-rw-r--r--lib/system/keys-dummy.c17
-rw-r--r--lib/system/keys-win.c179
-rw-r--r--lib/system/ktls.c698
-rw-r--r--lib/system/ktls.h28
-rw-r--r--lib/system/sockets.c50
-rw-r--r--lib/system/threads.c1
-rw-r--r--lib/system_override.c2
-rw-r--r--lib/tls-sig.c225
-rw-r--r--lib/tls-sig.h12
-rw-r--r--lib/tls13-sig.c55
-rw-r--r--lib/tls13-sig.h20
-rw-r--r--lib/tls13/anti_replay.c28
-rw-r--r--lib/tls13/anti_replay.h6
-rw-r--r--lib/tls13/certificate.c174
-rw-r--r--lib/tls13/certificate.h4
-rw-r--r--lib/tls13/certificate_request.c146
-rw-r--r--lib/tls13/certificate_request.h10
-rw-r--r--lib/tls13/certificate_verify.c64
-rw-r--r--lib/tls13/certificate_verify.h4
-rw-r--r--lib/tls13/early_data.c22
-rw-r--r--lib/tls13/early_data.h4
-rw-r--r--lib/tls13/encrypted_extensions.c25
-rw-r--r--lib/tls13/encrypted_extensions.h7
-rw-r--r--lib/tls13/finished.c57
-rw-r--r--lib/tls13/finished.h12
-rw-r--r--lib/tls13/hello_retry.c24
-rw-r--r--lib/tls13/hello_retry.h7
-rw-r--r--lib/tls13/key_update.c48
-rw-r--r--lib/tls13/key_update.h9
-rw-r--r--lib/tls13/post_handshake.c54
-rw-r--r--lib/tls13/psk_ext_parser.c14
-rw-r--r--lib/tls13/psk_ext_parser.h16
-rw-r--r--lib/tls13/session_ticket.c93
-rw-r--r--lib/tls13/session_ticket.h21
-rw-r--r--lib/tpm.c414
-rw-r--r--lib/tpm2.c24
-rw-r--r--lib/tpm2.h15
-rw-r--r--lib/tpm2_esys.c516
-rw-r--r--lib/urls.c52
-rw-r--r--lib/urls.h21
-rw-r--r--lib/verify-tofu.c140
-rw-r--r--lib/vko.c75
-rw-r--r--lib/vko.h20
-rw-r--r--lib/x509.h21
-rw-r--r--lib/x509/attributes.c24
-rw-r--r--lib/x509/attributes.h10
-rw-r--r--lib/x509/common.c294
-rw-r--r--lib/x509/common.h254
-rw-r--r--lib/x509/crl.c135
-rw-r--r--lib/x509/crl_write.c35
-rw-r--r--lib/x509/crq.c321
-rw-r--r--lib/x509/dn.c164
-rw-r--r--lib/x509/email-verify.c44
-rw-r--r--lib/x509/extensions.c108
-rw-r--r--lib/x509/hostname-verify.c62
-rw-r--r--lib/x509/ip-in-cidr.h27
-rw-r--r--lib/x509/ip.c92
-rw-r--r--lib/x509/ip.h13
-rw-r--r--lib/x509/key_decode.c101
-rw-r--r--lib/x509/key_encode.c143
-rw-r--r--lib/x509/krb5.h7
-rw-r--r--lib/x509/mpi.c55
-rw-r--r--lib/x509/name_constraints.c595
-rw-r--r--lib/x509/ocsp.c300
-rw-r--r--lib/x509/ocsp.h13
-rw-r--r--lib/x509/ocsp_output.c78
-rw-r--r--lib/x509/output.c670
-rw-r--r--lib/x509/pkcs12.c188
-rw-r--r--lib/x509/pkcs12_bag.c59
-rw-r--r--lib/x509/pkcs12_encr.c64
-rw-r--r--lib/x509/pkcs7-crypt.c72
-rw-r--r--lib/x509/pkcs7-output.c23
-rw-r--r--lib/x509/pkcs7.c182
-rw-r--r--lib/x509/pkcs7_int.h70
-rw-r--r--lib/x509/privkey.c412
-rw-r--r--lib/x509/privkey_openssl.c58
-rw-r--r--lib/x509/privkey_pkcs8.c276
-rw-r--r--lib/x509/privkey_pkcs8_pbes1.c56
-rw-r--r--lib/x509/prov-seed.c23
-rw-r--r--lib/x509/prov-seed.h10
-rw-r--r--lib/x509/sign.c25
-rw-r--r--lib/x509/spki.c11
-rw-r--r--lib/x509/time.c49
-rw-r--r--lib/x509/tls_features.c30
-rw-r--r--lib/x509/verify-high.c434
-rw-r--r--lib/x509/verify-high.h6
-rw-r--r--lib/x509/verify-high2.c129
-rw-r--r--lib/x509/verify.c415
-rw-r--r--lib/x509/virt-san.c164
-rw-r--r--lib/x509/virt-san.h10
-rw-r--r--lib/x509/x509.c623
-rw-r--r--lib/x509/x509_dn.c113
-rw-r--r--lib/x509/x509_ext.c477
-rw-r--r--lib/x509/x509_ext_int.h9
-rw-r--r--lib/x509/x509_int.h255
-rw-r--r--lib/x509/x509_write.c260
-rw-r--r--lib/x509_b64.c37
-rw-r--r--lib/x509_b64.h8
-rw-r--r--libdane/dane-params.c2
-rw-r--r--libdane/dane.c129
-rw-r--r--libdane/includes/gnutls/dane.h46
-rw-r--r--src/benchmark-cipher.c31
-rw-r--r--src/benchmark-tls.c250
-rw-r--r--src/benchmark.c21
-rw-r--r--src/benchmark.h38
-rw-r--r--src/certtool-cfg.c742
-rw-r--r--src/certtool-cfg.h18
-rw-r--r--src/certtool-common.c227
-rw-r--r--src/certtool-common.h85
-rw-r--r--src/certtool-extras.c18
-rw-r--r--src/certtool.c652
-rw-r--r--src/cfg.c55
-rw-r--r--src/cfg.h4
-rw-r--r--src/cli-debug.c83
-rw-r--r--src/cli.c444
-rw-r--r--src/common.c332
-rw-r--r--src/common.h107
-rw-r--r--src/danetool.c116
-rwxr-xr-xsrc/inline_cmds.h9
-rw-r--r--src/ocsptool-common.c74
-rw-r--r--src/ocsptool-common.h13
-rw-r--r--src/ocsptool.c91
-rw-r--r--src/p11tool.c42
-rw-r--r--src/p11tool.h37
-rw-r--r--src/pkcs11.c498
-rw-r--r--src/psk.c64
-rw-r--r--src/serv.c491
-rw-r--r--src/socket.c162
-rw-r--r--src/socket.h39
-rw-r--r--src/srptool.c51
-rw-r--r--src/systemkey.c17
-rw-r--r--src/tests.c181
-rw-r--r--src/tests.h10
-rw-r--r--src/tpmtool.c33
-rw-r--r--src/udp-serv.c68
-rw-r--r--src/udp-serv.h6
-rw-r--r--tests/aead-cipher-vec.c24
-rw-r--r--tests/alerts.c62
-rw-r--r--tests/alpn-server-prec.c55
-rw-r--r--tests/anonself.c71
-rw-r--r--tests/atfork.c10
-rw-r--r--tests/auto-verify.c288
-rw-r--r--tests/base64-raw.c162
-rw-r--r--tests/base64.c173
-rw-r--r--tests/buffer.c39
-rw-r--r--tests/cert-common.h3162
-rw-r--r--tests/cert-repro-20170915.h745
-rw-r--r--tests/cert-status.c67
-rw-r--r--tests/cert.c31
-rw-r--r--tests/cert_verify_inv_utf8.c59
-rw-r--r--tests/certificate_set_x509_crl.c8
-rw-r--r--tests/certuniqueid.c112
-rw-r--r--tests/chainverify-unsorted.c29
-rw-r--r--tests/chainverify.c17
-rw-r--r--tests/cipher-alignment.c122
-rw-r--r--tests/cipher-neg-common.c39
-rw-r--r--tests/cipher-padding.c15
-rw-r--r--tests/ciphersuite-name.c6
-rw-r--r--tests/client-fastopen.c67
-rw-r--r--tests/client-secrets.h466
-rw-r--r--tests/client-sign-md5-rep.c975
-rw-r--r--tests/client_dsa_key.c44
-rw-r--r--tests/cmocka-common.h18
-rw-r--r--tests/common-cert-key-exchange.c283
-rw-r--r--tests/common-cert-key-exchange.h116
-rw-r--r--tests/common-key-tests.h98
-rw-r--r--tests/conv-utf8.c19
-rw-r--r--tests/crl-basic.c233
-rw-r--r--tests/crl_apis.c63
-rw-r--r--tests/crlverify.c321
-rw-r--r--tests/crq-basic.c163
-rw-r--r--tests/crq_apis.c209
-rw-r--r--tests/crq_key_id.c62
-rw-r--r--tests/crt_apis.c154
-rw-r--r--tests/crt_inv_write.c26
-rw-r--r--tests/crt_type-neg-common.c106
-rw-r--r--tests/custom-urls-override.c55
-rw-r--r--tests/custom-urls.c64
-rw-r--r--tests/cve-2008-4989.c22
-rw-r--r--tests/cve-2009-1415.c16
-rw-r--r--tests/cve-2009-1416.c2
-rw-r--r--tests/dane-strcodes.c14
-rw-r--r--tests/dane.c14
-rw-r--r--tests/datefudge-check.c5
-rw-r--r--tests/dh-compute.c123
-rw-r--r--tests/dh-params.c13
-rw-r--r--tests/dhepskself.c52
-rw-r--r--tests/dhex509self.c63
-rw-r--r--tests/dn.c16
-rw-r--r--tests/dn2.c13
-rw-r--r--tests/dss-sig-val.c191
-rw-r--r--tests/dtls-client-with-seccomp.c67
-rw-r--r--tests/dtls-etm.c78
-rw-r--r--tests/dtls-handshake-versions.c25
-rw-r--r--tests/dtls-max-record.c21
-rw-r--r--tests/dtls-pthread.c91
-rw-r--r--tests/dtls-rehandshake-anon.c52
-rw-r--r--tests/dtls-rehandshake-cert-2.c52
-rw-r--r--tests/dtls-rehandshake-cert-3.c52
-rw-r--r--tests/dtls-rehandshake-cert.c80
-rw-r--r--tests/dtls-repro-20170915.c10
-rw-r--r--tests/dtls-session-ticket-lost.c60
-rw-r--r--tests/dtls-sliding-window.c97
-rw-r--r--tests/dtls-with-seccomp.c60
-rw-r--r--tests/dtls/dtls-stress.c126
-rw-r--r--tests/dtls1-2-mtu-check.c284
-rw-r--r--tests/dtls10-cert-key-exchange.c82
-rw-r--r--tests/dtls12-cert-key-exchange.c122
-rw-r--r--tests/duplicate-extensions.c87
-rw-r--r--tests/eagain-auto-auth.c76
-rw-r--r--tests/eagain-common.h137
-rw-r--r--tests/eagain.c36
-rw-r--r--tests/ecdh-compute.c212
-rw-r--r--tests/empty_retrieve_function.c58
-rw-r--r--tests/fallback-scsv.c82
-rw-r--r--tests/fips-mode-pthread.c31
-rw-r--r--tests/fips-override-test.c7
-rw-r--r--tests/fips-rsa-sizes.c56
-rw-r--r--tests/fips-test.c72
-rw-r--r--tests/global-init-override.c8
-rw-r--r--tests/global-init.c6
-rw-r--r--tests/gnutls-ids.c23
-rw-r--r--tests/gnutls-strcodes.c49
-rw-r--r--tests/gnutls_ext_raw_parse.c69
-rw-r--r--tests/gnutls_ext_raw_parse_dtls.c71
-rw-r--r--tests/gnutls_hmac_fast.c39
-rw-r--r--tests/gnutls_ktls.c110
-rw-r--r--tests/gnutls_ocsp_resp_list_import2.c293
-rw-r--r--tests/gnutls_record_overhead.c40
-rw-r--r--tests/gnutls_session_set_id.c52
-rw-r--r--tests/gnutls_x509_crq_sign.c65
-rw-r--r--tests/gnutls_x509_crt_list_import.c441
-rw-r--r--tests/gnutls_x509_crt_sign.c71
-rw-r--r--tests/gnutls_x509_privkey_import.c51
-rw-r--r--tests/handshake-false-start.c77
-rw-r--r--tests/handshake-large-cert.c106
-rw-r--r--tests/handshake-large-packet.c122
-rw-r--r--tests/handshake-timeout.c33
-rw-r--r--tests/handshake-versions.c31
-rw-r--r--tests/handshake-write.c8
-rw-r--r--tests/hex.c135
-rw-r--r--tests/hex.h14
-rw-r--r--tests/hostname-check-utf8.c149
-rw-r--r--tests/hostname-check.c467
-rw-r--r--tests/id-on-xmppAddr.c10
-rw-r--r--tests/infoaccess.c31
-rw-r--r--tests/init_roundtrip.c2
-rw-r--r--tests/insecure_key.c35
-rw-r--r--tests/iov.c118
-rw-r--r--tests/ip-check.c235
-rw-r--r--tests/ip-utils.c28
-rw-r--r--tests/kdf-api.c29
-rw-r--r--tests/key-export-pkcs8.c172
-rw-r--r--tests/key-import-export.c341
-rw-r--r--tests/key-material-dtls.c89
-rw-r--r--tests/key-material-set-dtls.c60
-rw-r--r--tests/key-openssl.c97
-rw-r--r--tests/key-usage-ecdhe-rsa.c152
-rw-r--r--tests/key-usage-rsa.c213
-rw-r--r--tests/keylog-env.c32
-rw-r--r--tests/keylog-func.c62
-rw-r--r--tests/ktls_keyupdate.c121
-rw-r--r--tests/long-session-id.c42
-rw-r--r--tests/mini-alpn.c45
-rw-r--r--tests/mini-chain-unsorted.c57
-rw-r--r--tests/mini-dtls-discard.c56
-rw-r--r--tests/mini-dtls-fork.c89
-rw-r--r--tests/mini-dtls-heartbeat.c45
-rw-r--r--tests/mini-dtls-hello-verify-48.c62
-rw-r--r--tests/mini-dtls-hello-verify.c44
-rw-r--r--tests/mini-dtls-large.c44
-rw-r--r--tests/mini-dtls-lowmtu.c90
-rw-r--r--tests/mini-dtls-mtu.c48
-rw-r--r--tests/mini-dtls-record-asym.c72
-rw-r--r--tests/mini-dtls-record.c46
-rw-r--r--tests/mini-dtls-srtp.c28
-rw-r--r--tests/mini-dtls0-9.c72
-rw-r--r--tests/mini-eagain-dtls.c18
-rw-r--r--tests/mini-emsgsize-dtls.c28
-rw-r--r--tests/mini-global-load.c8
-rw-r--r--tests/mini-key-material.c86
-rw-r--r--tests/mini-loss-time.c64
-rw-r--r--tests/mini-overhead.c35
-rw-r--r--tests/mini-record-2.c84
-rw-r--r--tests/mini-record-failure.c75
-rw-r--r--tests/mini-record-range.c66
-rw-r--r--tests/mini-record.c88
-rw-r--r--tests/mini-server-name.c122
-rw-r--r--tests/mini-session-verify-function.c47
-rw-r--r--tests/mini-termination.c39
-rw-r--r--tests/mini-tls-nonblock.c65
-rw-r--r--tests/mini-x509-2.c267
-rw-r--r--tests/mini-x509-callbacks-intr.c14
-rw-r--r--tests/mini-x509-callbacks.c31
-rw-r--r--tests/mini-x509-cas.c12
-rw-r--r--tests/mini-x509-ipaddr.c83
-rw-r--r--tests/mini-x509.c66
-rw-r--r--tests/missingissuer.c34
-rw-r--r--tests/missingissuer_aia.c39
-rw-r--r--tests/mpi.c5
-rw-r--r--tests/multi-alerts.c124
-rw-r--r--tests/naked-alerts.c41
-rw-r--r--tests/name-constraints-ip.c515
-rw-r--r--tests/name-constraints-merge.c181
-rw-r--r--tests/name-constraints.c160
-rw-r--r--tests/no-extensions.c46
-rw-r--r--tests/no-signal.c22
-rw-r--r--tests/no-status-request.c60
-rw-r--r--tests/nul-in-x509-names.c14
-rw-r--r--tests/null_retrieve_function.c58
-rw-r--r--tests/ocsp-common.h299
-rw-r--r--tests/ocsp-filename-memleak.c2
-rw-r--r--tests/ocsp.c131
-rw-r--r--tests/oids.c2
-rw-r--r--tests/openconnect-dtls12.c111
-rw-r--r--tests/openssl.c2
-rw-r--r--tests/parse_ca.c6
-rw-r--r--tests/pathbuf.c12
-rw-r--r--tests/pcert-list.c415
-rw-r--r--tests/pkcs1-digest-info.c141
-rw-r--r--tests/pkcs11/gnutls_pcert_list_import_x509_file.c65
-rw-r--r--tests/pkcs11/gnutls_x509_crt_list_import_url.c44
-rw-r--r--tests/pkcs11/list-objects.c57
-rw-r--r--tests/pkcs11/list-tokens.c152
-rw-r--r--tests/pkcs11/pkcs11-cert-import-url-exts.c19
-rw-r--r--tests/pkcs11/pkcs11-cert-import-url4-exts.c33
-rw-r--r--tests/pkcs11/pkcs11-chainverify.c93
-rw-r--r--tests/pkcs11/pkcs11-combo.c325
-rw-r--r--tests/pkcs11/pkcs11-ec-privkey-test.c101
-rw-r--r--tests/pkcs11/pkcs11-eddsa-privkey-test.c26
-rw-r--r--tests/pkcs11/pkcs11-get-exts.c24
-rw-r--r--tests/pkcs11/pkcs11-get-issuer.c58
-rw-r--r--tests/pkcs11/pkcs11-get-raw-issuer-exts.c22
-rw-r--r--tests/pkcs11/pkcs11-import-url-privkey.c19
-rw-r--r--tests/pkcs11/pkcs11-import-with-pin.c79
-rw-r--r--tests/pkcs11/pkcs11-is-known.c634
-rw-r--r--tests/pkcs11/pkcs11-mechanisms.c21
-rw-r--r--tests/pkcs11/pkcs11-mock-ext.h6
-rw-r--r--tests/pkcs11/pkcs11-mock.c2221
-rw-r--r--tests/pkcs11/pkcs11-mock.h9
-rw-r--r--tests/pkcs11/pkcs11-mock2.c16
-rw-r--r--tests/pkcs11/pkcs11-obj-import.c89
-rw-r--r--tests/pkcs11/pkcs11-obj-raw.c39
-rw-r--r--tests/pkcs11/pkcs11-pin-func.c10
-rw-r--r--tests/pkcs11/pkcs11-privkey-always-auth.c29
-rw-r--r--tests/pkcs11/pkcs11-privkey-export.c26
-rw-r--r--tests/pkcs11/pkcs11-privkey-fork-reinit.c43
-rw-r--r--tests/pkcs11/pkcs11-privkey-fork.c43
-rw-r--r--tests/pkcs11/pkcs11-privkey-generate.c47
-rw-r--r--tests/pkcs11/pkcs11-privkey-pthread.c51
-rw-r--r--tests/pkcs11/pkcs11-privkey-safenet-always-auth.c18
-rw-r--r--tests/pkcs11/pkcs11-privkey.c134
-rw-r--r--tests/pkcs11/pkcs11-pubkey-import-ecdsa.c2
-rw-r--r--tests/pkcs11/pkcs11-pubkey-import-rsa.c2
-rw-r--r--tests/pkcs11/pkcs11-pubkey-import.c84
-rw-r--r--tests/pkcs11/pkcs11-rsa-pss-privkey-test.c13
-rw-r--r--tests/pkcs11/pkcs11-token-raw.c42
-rw-r--r--tests/pkcs11/softhsm.h60
-rw-r--r--tests/pkcs11/tls-neg-pkcs11-key.c174
-rw-r--r--tests/pkcs11/tls-neg-pkcs11-no-key.c74
-rw-r--r--tests/pkcs12_encode.c64
-rw-r--r--tests/pkcs12_s2k.c102
-rw-r--r--tests/pkcs12_s2k_pem.c49
-rw-r--r--tests/pkcs12_simple.c9
-rw-r--r--tests/pkcs7-cat-parse.c101
-rw-r--r--tests/pkcs7-gen.c53
-rw-r--r--tests/pkcs7-verify-double-free.c241
-rw-r--r--tests/pkcs7.c28
-rw-r--r--tests/pkcs8-key-decode-encrypted.c47
-rw-r--r--tests/pkcs8-key-decode.c38
-rw-r--r--tests/post-client-hello-change-prio.c52
-rw-r--r--tests/prf.c256
-rw-r--r--tests/priorities-groups.c31
-rw-r--r--tests/priorities.c45
-rw-r--r--tests/priority-init2.c135
-rw-r--r--tests/priority-mix.c33
-rw-r--r--tests/priority-set.c13
-rw-r--r--tests/priority-set2.c11
-rw-r--r--tests/privkey-keygen.c48
-rw-r--r--tests/privkey-verify-broken.c18
-rw-r--r--tests/protocol-set-allowlist.c77
-rw-r--r--tests/psk-file.c497
-rw-r--r--tests/pskself.c65
-rw-r--r--tests/pskself2.c72
-rw-r--r--tests/pubkey-import-export.c150
-rw-r--r--tests/random-art.c122
-rw-r--r--tests/rawpk-api.c78
-rw-r--r--tests/record-pad.c190
-rw-r--r--tests/record-retvals.c77
-rw-r--r--tests/record-sendfile.c78
-rw-r--r--tests/record-sizes-range.c16
-rw-r--r--tests/record-sizes.c16
-rw-r--r--tests/record-timeouts.c21
-rw-r--r--tests/recv-data-before-handshake.c66
-rw-r--r--tests/rehandshake-ext-secret.c46
-rw-r--r--tests/rehandshake-switch-cert-allow.c27
-rw-r--r--tests/rehandshake-switch-cert-client-allow.c40
-rw-r--r--tests/rehandshake-switch-cert-client.c41
-rw-r--r--tests/rehandshake-switch-cert.c28
-rw-r--r--tests/rehandshake-switch-psk-id.c50
-rw-r--r--tests/rehandshake-switch-srp-id.c102
-rw-r--r--tests/resume-dtls.c104
-rw-r--r--tests/resume-lifetime.c52
-rw-r--r--tests/resume-with-false-start.c16
-rw-r--r--tests/resume-with-previous-stek.c97
-rw-r--r--tests/resume-with-record-size-limit.c91
-rw-r--r--tests/resume-with-stek-expiration.c116
-rw-r--r--tests/resume.c369
-rw-r--r--tests/rfc7633-missing.c79
-rw-r--r--tests/rfc7633-ok.c153
-rw-r--r--tests/rng-fork.c6
-rw-r--r--tests/rng-no-onload.c6
-rw-r--r--tests/rng-op-key.c4
-rw-r--r--tests/rng-op-nonce.c4
-rw-r--r--tests/rng-op-random.c4
-rw-r--r--tests/rng-op.c7
-rw-r--r--tests/rng-pthread.c20
-rw-r--r--tests/rng-sigint.c41
-rw-r--r--tests/rsa-encrypt-decrypt.c37
-rw-r--r--tests/rsa-illegal-import.c77
-rw-r--r--tests/rsa-psk-cb.c56
-rw-r--r--tests/rsa-psk.c51
-rw-r--r--tests/rsa-rsa-pss.c87
-rw-r--r--tests/safe-renegotiation/srn0.c26
-rw-r--r--tests/safe-renegotiation/srn1.c17
-rw-r--r--tests/safe-renegotiation/srn2.c32
-rw-r--r--tests/safe-renegotiation/srn3.c20
-rw-r--r--tests/safe-renegotiation/srn4.c23
-rw-r--r--tests/safe-renegotiation/srn5.c26
-rw-r--r--tests/sec-params.c35
-rw-r--r--tests/seccomp.c27
-rw-r--r--tests/send-client-cert.c42
-rw-r--r--tests/send-data-before-handshake.c60
-rw-r--r--tests/server-kx-neg-common.c101
-rw-r--r--tests/server-secrets.h535
-rw-r--r--tests/server-sign-md5-rep.c112
-rw-r--r--tests/server_ecdsa_key.c35
-rw-r--r--tests/session-export-funcs.c22
-rw-r--r--tests/session-rdn-read.c26
-rw-r--r--tests/session-tickets-missing.c70
-rw-r--r--tests/session-tickets-ok.c57
-rw-r--r--tests/set-default-prio.c141
-rw-r--r--tests/set_key.c132
-rw-r--r--tests/set_key_utf8.c62
-rw-r--r--tests/set_known_dh_params_anon.c40
-rw-r--r--tests/set_known_dh_params_psk.c49
-rw-r--r--tests/set_known_dh_params_x509.c52
-rw-r--r--tests/set_pkcs12_cred.c10
-rw-r--r--tests/set_x509_key.c58
-rw-r--r--tests/set_x509_key_file-late.c40
-rw-r--r--tests/set_x509_key_file.c47
-rw-r--r--tests/set_x509_key_file_der.c31
-rw-r--r--tests/set_x509_key_file_legacy.c45
-rw-r--r--tests/set_x509_key_file_ocsp.c466
-rw-r--r--tests/set_x509_key_file_ocsp_multi2.c124
-rw-r--r--tests/set_x509_key_mem.c46
-rw-r--r--tests/set_x509_key_utf8.c71
-rw-r--r--tests/set_x509_ocsp_multi_cli.c84
-rw-r--r--tests/set_x509_ocsp_multi_invalid.c136
-rw-r--r--tests/set_x509_ocsp_multi_pem.c76
-rw-r--r--tests/set_x509_ocsp_multi_unknown.c118
-rw-r--r--tests/set_x509_pkcs12_key.c26
-rw-r--r--tests/setcredcrash.c5
-rw-r--r--tests/sign-is-secure.c16
-rw-r--r--tests/sign-pk-api.c2
-rw-r--r--tests/sign-verify-data-newapi.c36
-rw-r--r--tests/sign-verify-data.c37
-rw-r--r--tests/sign-verify-deterministic.c133
-rw-r--r--tests/sign-verify-ed25519-rfc8080.c12
-rw-r--r--tests/sign-verify-ext.c93
-rw-r--r--tests/sign-verify-ext4.c108
-rw-r--r--tests/sign-verify-newapi.c83
-rw-r--r--tests/sign-verify.c83
-rw-r--r--tests/simple.c49
-rw-r--r--tests/slow/cipher-api-test.c66
-rw-r--r--tests/slow/cipher-openssl-compat.c34
-rw-r--r--tests/slow/gendh.c2
-rw-r--r--tests/slow/hash-large.c51
-rw-r--r--tests/spki-abstract.c25
-rw-r--r--tests/spki.c49
-rw-r--r--tests/srp.c75
-rw-r--r--tests/srpbase64.c94
-rw-r--r--tests/ssl2-hello.c51
-rw-r--r--tests/ssl30-cert-key-exchange.c34
-rw-r--r--tests/ssl30-cipher-neg.c134
-rw-r--r--tests/ssl30-server-kx-neg.c196
-rw-r--r--tests/status-request-ext.c66
-rw-r--r--tests/status-request-ok.c55
-rw-r--r--tests/status-request-revoked.c338
-rw-r--r--tests/status-request.c77
-rw-r--r--tests/str-idna.c14
-rw-r--r--tests/str-unicode.c41
-rw-r--r--tests/strict-der.c18
-rw-r--r--tests/suite/eagain-cli.c46
-rw-r--r--tests/suite/mini-record-timing.c182
-rw-r--r--tests/suite/rng.c11
m---------tests/suite/tls-interoperability0
-rw-r--r--tests/system-override-curves-allowlist.c72
-rw-r--r--tests/system-override-hash.c2
-rw-r--r--tests/system-override-sig-tls.c13
-rw-r--r--tests/system-override-sig.c13
-rw-r--r--tests/system-prio-file.c16
-rw-r--r--tests/test-chains-issuer-aia.h4
-rw-r--r--tests/test-chains-issuer.h146
-rw-r--r--tests/test-chains.h4
-rw-r--r--tests/time.c50
-rw-r--r--tests/tls-channel-binding.c120
-rw-r--r--tests/tls-client-with-seccomp.c60
-rw-r--r--tests/tls-crt_type-neg.c417
-rw-r--r--tests/tls-etm.c74
-rw-r--r--tests/tls-ext-not-in-dtls.c102
-rw-r--r--tests/tls-ext-register.c93
-rw-r--r--tests/tls-force-etm.c145
-rw-r--r--tests/tls-neg-ext-key.c147
-rw-r--r--tests/tls-neg-ext4-key.c196
-rw-r--r--tests/tls-pthread.c88
-rw-r--r--tests/tls-record-size-limit-asym.c104
-rw-r--r--tests/tls-record-size-limit.c250
-rw-r--r--tests/tls-session-ext-override.c105
-rw-r--r--tests/tls-session-ext-register.c200
-rw-r--r--tests/tls-session-supplemental.c68
-rw-r--r--tests/tls-supplemental.c69
-rw-r--r--tests/tls-with-seccomp.c54
-rw-r--r--tests/tls10-cert-key-exchange.c80
-rw-r--r--tests/tls10-cipher-neg.c140
-rw-r--r--tests/tls10-prf.c32
-rw-r--r--tests/tls10-server-kx-neg.c723
-rw-r--r--tests/tls11-cert-key-exchange.c87
-rw-r--r--tests/tls11-cipher-neg.c140
-rw-r--r--tests/tls11-server-kx-neg.c723
-rw-r--r--tests/tls12-anon-upgrade.c201
-rw-r--r--tests/tls12-cert-key-exchange.c392
-rw-r--r--tests/tls12-cipher-neg.c408
-rw-r--r--tests/tls12-ffdhe.c434
-rw-r--r--tests/tls12-invalid-key-exchanges.c54
-rw-r--r--tests/tls12-max-record.c18
-rw-r--r--tests/tls12-prf.c60
-rw-r--r--tests/tls12-rehandshake-cert-2.c45
-rw-r--r--tests/tls12-rehandshake-cert-3.c62
-rw-r--r--tests/tls12-rehandshake-cert-auto.c57
-rw-r--r--tests/tls12-rehandshake-cert.c18
-rw-r--r--tests/tls12-rehandshake-set-prio.c33
-rw-r--r--tests/tls12-rehandshake-ticket.c11
-rw-r--r--tests/tls12-server-kx-neg.c986
-rw-r--r--tests/tls13-cert-key-exchange.c354
-rw-r--r--tests/tls13-cipher-neg.c240
-rw-r--r--tests/tls13-compat-mode.c20
-rw-r--r--tests/tls13-early-data-neg.c175
-rw-r--r--tests/tls13-early-data-neg2.c104
-rw-r--r--tests/tls13-early-data.c370
-rw-r--r--tests/tls13-early-start.c131
-rw-r--r--tests/tls13-rehandshake-cert.c20
-rw-r--r--tests/tls13-server-kx-neg.c487
-rw-r--r--tests/tls13-without-timeout-func.c23
-rw-r--r--tests/tls13/anti_replay.c25
-rw-r--r--tests/tls13/change_cipher_spec.c83
-rw-r--r--tests/tls13/compress-cert-cli.c24
-rw-r--r--tests/tls13/compress-cert-neg.c95
-rw-r--r--tests/tls13/compress-cert-neg2.c68
-rw-r--r--tests/tls13/compress-cert.c98
-rw-r--r--tests/tls13/cookie.c76
-rw-r--r--tests/tls13/ext-parse.h71
-rw-r--r--tests/tls13/hello_retry_request.c73
-rw-r--r--tests/tls13/hello_retry_request_resume.c84
-rw-r--r--tests/tls13/key_limits.c83
-rw-r--r--tests/tls13/key_share.c101
-rw-r--r--tests/tls13/key_update.c15
-rw-r--r--tests/tls13/key_update_multiple.c16
-rw-r--r--tests/tls13/multi-ocsp.c100
-rw-r--r--tests/tls13/no-auto-send-ticket.c83
-rw-r--r--tests/tls13/no-psk-exts.c58
-rw-r--r--tests/tls13/ocsp-client.c86
-rw-r--r--tests/tls13/post-handshake-with-cert-auto.c111
-rw-r--r--tests/tls13/post-handshake-with-cert-pkcs11.c104
-rw-r--r--tests/tls13/post-handshake-with-cert-ticket.c98
-rw-r--r--tests/tls13/post-handshake-with-cert.c126
-rw-r--r--tests/tls13/post-handshake-with-psk.c109
-rw-r--r--tests/tls13/post-handshake-without-cert.c64
-rw-r--r--tests/tls13/prf-early.c96
-rw-r--r--tests/tls13/prf.c99
-rw-r--r--tests/tls13/psk-dumbfw.c82
-rw-r--r--tests/tls13/psk-ext.c199
-rw-r--r--tests/tls13/psk-ke-modes.c9
-rw-r--r--tests/tls13/rnd-check-rollback-val.c95
-rw-r--r--tests/tls13/rnd-rollback-detection.c95
-rw-r--r--tests/tls13/supported_versions.c116
-rw-r--r--tests/tls13/tls12-no-tls13-exts.c49
-rw-r--r--tests/tlsext-decoding.c65
-rw-r--r--tests/tlsfeature-crt.c36
-rw-r--r--tests/tlsfeature-ext.c69
-rw-r--r--tests/trust-store.c6
-rw-r--r--tests/trustdb-tofu.c44
-rw-r--r--tests/urls.c2
-rw-r--r--tests/utils-adv.c106
-rw-r--r--tests/utils.c51
-rw-r--r--tests/utils.h149
-rw-r--r--tests/version-checks.c37
-rw-r--r--tests/virt-time.h28
-rw-r--r--tests/win-certopenstore.c55
-rw-r--r--tests/windows/cng-windows.c75
-rw-r--r--tests/windows/crypt32.c66
-rw-r--r--tests/windows/ncrypt.c98
-rw-r--r--tests/x509-cert-callback-legacy.c38
-rw-r--r--tests/x509-cert-callback-ocsp.c36
-rw-r--r--tests/x509-cert-callback.c7
-rw-r--r--tests/x509-dn-decode-compat.c94
-rw-r--r--tests/x509-dn-decode.c254
-rw-r--r--tests/x509-dn.c7
-rw-r--r--tests/x509-extensions.c51
-rw-r--r--tests/x509-server-verify.c64
-rw-r--r--tests/x509-upnconstraint.c106
-rw-r--r--tests/x509-verify-duplicate.c256
-rw-r--r--tests/x509-verify-with-crl.c155
-rw-r--r--tests/x509_altname.c10
-rw-r--r--tests/x509cert-ct.c191
-rw-r--r--tests/x509cert-dntypes.c101
-rw-r--r--tests/x509cert-invalid.c17
-rw-r--r--tests/x509cert-tl.c62
-rw-r--r--tests/x509cert.c77
-rw-r--r--tests/x509dn.c68
-rw-r--r--tests/x509self.c59
-rw-r--r--tests/x509sign-verify-common.h55
-rw-r--r--tests/x509sign-verify-ecdsa.c14
-rw-r--r--tests/x509sign-verify-error.c21
-rw-r--r--tests/x509sign-verify-gost.c17
-rw-r--r--tests/x509sign-verify-rsa.c6
-rw-r--r--tests/x509sign-verify.c42
-rw-r--r--tests/xts-key-check.c2
1061 files changed, 87422 insertions, 69150 deletions
diff --git a/doc/alert-printlist.c b/doc/alert-printlist.c
index 3483766817..0aede185e1 100644
--- a/doc/alert-printlist.c
+++ b/doc/alert-printlist.c
@@ -62,7 +62,7 @@ static void main_texinfo(void)
escape_texi_string(gnutls_alert_get_strname
(i), buffer,
sizeof(buffer)),
- (unsigned int) i, gnutls_alert_get_name(i));
+ (unsigned int)i, gnutls_alert_get_name(i));
}
printf("@end multitable\n");
@@ -81,8 +81,7 @@ static const char headers[] = "\\tablefirsthead{%\n"
"\\multicolumn{3}{|r|}{\\small\\sl continued on next page}\\\\\n"
"\\hline}\n"
#endif
- "\\tablelasttail{\\hline}\n"
- "\\bottomcaption{The TLS alert table}\n\n";
+ "\\tablelasttail{\\hline}\n" "\\bottomcaption{The TLS alert table}\n\n";
static void main_latex(void)
{
@@ -109,7 +108,7 @@ static void main_latex(void)
printf("{\\small{%s}} & \\code{%d} & %s",
escape_string(gnutls_alert_get_strname(i),
buffer, sizeof(buffer)),
- (unsigned int) i, gnutls_alert_get_name(i));
+ (unsigned int)i, gnutls_alert_get_name(i));
printf("\\\\\n");
}
diff --git a/doc/common.c b/doc/common.c
index 492f9b969e..0c14f7ea16 100644
--- a/doc/common.c
+++ b/doc/common.c
@@ -2,7 +2,6 @@ char *escape_string(const char *str, char *buffer, int buffer_size)
{
int i = 0, j = 0;
-
while (str[i] != 0 && j < buffer_size - 1) {
if (str[i] == '_') {
buffer[j++] = '\\';
@@ -28,7 +27,6 @@ char *escape_texi_string(const char *str, char *buffer, int buffer_size)
{
int i = 0, j = 0;
-
while (str[i] != 0 && j < buffer_size - 1) {
if (str[i] == '_') {
buffer[j++] = '_';
diff --git a/doc/errcodes.c b/doc/errcodes.c
index 1548f93aac..0750a08887 100644
--- a/doc/errcodes.c
+++ b/doc/errcodes.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <stdio.h>
@@ -38,11 +38,10 @@ typedef struct {
int error_index;
} error_name;
-
static int compar(const void *_n1, const void *_n2)
{
- const error_name *n1 = (const error_name *) _n1,
- *n2 = (const error_name *) _n2;
+ const error_name *n1 = (const error_name *)_n1,
+ *n2 = (const error_name *)_n2;
return strcmp(n1->name, n2->name);
}
@@ -61,8 +60,7 @@ static const char headers[] = "\\tablefirsthead{%\n"
"\\multicolumn{3}{|r|}{\\small\\sl continued on next page}\\\\\n"
"\\hline}\n"
#endif
- "\\tablelasttail{\\hline}\n"
- "\\bottomcaption{The error codes table}\n\n";
+ "\\tablelasttail{\\hline}\n" "\\bottomcaption{The error codes table}\n\n";
int main(int argc, char *argv[])
{
@@ -94,8 +92,7 @@ static int main_texinfo(void)
desc = gnutls_strerror(i);
printf("@item %d @tab %s @tab %s\n", i,
- escape_texi_string(_name, buffer, sizeof(buffer)),
- desc);
+ escape_texi_string(_name, buffer, sizeof(buffer)), desc);
strcpy(names_to_sort[j].name, _name);
names_to_sort[j].error_index = i;
diff --git a/doc/examples/ex-alert.c b/doc/examples/ex-alert.c
index 868771a681..56e7467d13 100644
--- a/doc/examples/ex-alert.c
+++ b/doc/examples/ex-alert.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -16,21 +16,21 @@
*/
void check_alert(gnutls_session_t session, int ret)
{
- int last_alert;
+ int last_alert;
- if (ret == GNUTLS_E_WARNING_ALERT_RECEIVED
- || ret == GNUTLS_E_FATAL_ALERT_RECEIVED) {
- last_alert = gnutls_alert_get(session);
+ if (ret == GNUTLS_E_WARNING_ALERT_RECEIVED
+ || ret == GNUTLS_E_FATAL_ALERT_RECEIVED) {
+ last_alert = gnutls_alert_get(session);
- /* The check for renegotiation is only useful if we are
- * a server, and we had requested a rehandshake.
- */
- if (last_alert == GNUTLS_A_NO_RENEGOTIATION &&
- ret == GNUTLS_E_WARNING_ALERT_RECEIVED)
- printf("* Received NO_RENEGOTIATION alert. "
- "Client Does not support renegotiation.\n");
- else
- printf("* Received alert '%d': %s.\n", last_alert,
- gnutls_alert_get_name(last_alert));
- }
+ /* The check for renegotiation is only useful if we are
+ * a server, and we had requested a rehandshake.
+ */
+ if (last_alert == GNUTLS_A_NO_RENEGOTIATION &&
+ ret == GNUTLS_E_WARNING_ALERT_RECEIVED)
+ printf("* Received NO_RENEGOTIATION alert. "
+ "Client Does not support renegotiation.\n");
+ else
+ printf("* Received alert '%d': %s.\n", last_alert,
+ gnutls_alert_get_name(last_alert));
+ }
}
diff --git a/doc/examples/ex-cert-select-pkcs11.c b/doc/examples/ex-cert-select-pkcs11.c
index 2923a47da3..0cc3ed4cd5 100644
--- a/doc/examples/ex-cert-select-pkcs11.c
+++ b/doc/examples/ex-cert-select-pkcs11.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -18,7 +18,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-#include <getpass.h> /* for getpass() */
+#include <getpass.h> /* for getpass() */
/* A TLS client that loads the certificate and key.
*/
@@ -44,132 +44,132 @@ extern void tcp_close(int sd);
static int
pin_callback(void *user, int attempt, const char *token_url,
- const char *token_label, unsigned int flags, char *pin,
- size_t pin_max)
+ const char *token_label, unsigned int flags, char *pin,
+ size_t pin_max)
{
- const char *password;
- int len;
-
- printf("PIN required for token '%s' with URL '%s'\n", token_label,
- token_url);
- if (flags & GNUTLS_PIN_FINAL_TRY)
- printf("*** This is the final try before locking!\n");
- if (flags & GNUTLS_PIN_COUNT_LOW)
- printf("*** Only few tries left before locking!\n");
- if (flags & GNUTLS_PIN_WRONG)
- printf("*** Wrong PIN\n");
-
- password = getpass("Enter pin: ");
- /* FIXME: ensure that we are in UTF-8 locale */
- if (password == NULL || password[0] == 0) {
- fprintf(stderr, "No password given\n");
- exit(1);
- }
-
- len = MIN(pin_max - 1, strlen(password));
- memcpy(pin, password, len);
- pin[len] = 0;
-
- return 0;
+ const char *password;
+ int len;
+
+ printf("PIN required for token '%s' with URL '%s'\n", token_label,
+ token_url);
+ if (flags & GNUTLS_PIN_FINAL_TRY)
+ printf("*** This is the final try before locking!\n");
+ if (flags & GNUTLS_PIN_COUNT_LOW)
+ printf("*** Only few tries left before locking!\n");
+ if (flags & GNUTLS_PIN_WRONG)
+ printf("*** Wrong PIN\n");
+
+ password = getpass("Enter pin: ");
+ /* FIXME: ensure that we are in UTF-8 locale */
+ if (password == NULL || password[0] == 0) {
+ fprintf(stderr, "No password given\n");
+ exit(1);
+ }
+
+ len = MIN(pin_max - 1, strlen(password));
+ memcpy(pin, password, len);
+ pin[len] = 0;
+
+ return 0;
}
int main(void)
{
- int ret, sd, ii;
- gnutls_session_t session;
- char buffer[MAX_BUF + 1];
- gnutls_certificate_credentials_t xcred;
- /* Allow connections to servers that have OpenPGP keys as well.
- */
+ int ret, sd, ii;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ gnutls_certificate_credentials_t xcred;
+ /* Allow connections to servers that have OpenPGP keys as well.
+ */
- if (gnutls_check_version("3.1.4") == NULL) {
- fprintf(stderr, "GnuTLS 3.1.4 or later is required for this example\n");
- exit(1);
- }
+ if (gnutls_check_version("3.1.4") == NULL) {
+ fprintf(stderr,
+ "GnuTLS 3.1.4 or later is required for this example\n");
+ exit(1);
+ }
- /* for backwards compatibility with gnutls < 3.3.0 */
- CHECK(gnutls_global_init());
+ /* for backwards compatibility with gnutls < 3.3.0 */
+ CHECK(gnutls_global_init());
- /* The PKCS11 private key operations may require PIN.
- * Register a callback. */
- gnutls_pkcs11_set_pin_function(pin_callback, NULL);
+ /* The PKCS11 private key operations may require PIN.
+ * Register a callback. */
+ gnutls_pkcs11_set_pin_function(pin_callback, NULL);
- /* X509 stuff */
- CHECK(gnutls_certificate_allocate_credentials(&xcred));
+ /* X509 stuff */
+ CHECK(gnutls_certificate_allocate_credentials(&xcred));
- /* sets the trusted cas file
- */
- CHECK(gnutls_certificate_set_x509_trust_file(xcred, CAFILE,
- GNUTLS_X509_FMT_PEM));
+ /* sets the trusted cas file
+ */
+ CHECK(gnutls_certificate_set_x509_trust_file(xcred, CAFILE,
+ GNUTLS_X509_FMT_PEM));
- CHECK(gnutls_certificate_set_x509_key_file(xcred, CERT_URL, KEY_URL,
- GNUTLS_X509_FMT_DER));
+ CHECK(gnutls_certificate_set_x509_key_file(xcred, CERT_URL, KEY_URL,
+ GNUTLS_X509_FMT_DER));
- /* Note that there is no server certificate verification in this example
- */
+ /* Note that there is no server certificate verification in this example
+ */
+ /* Initialize TLS session
+ */
+ CHECK(gnutls_init(&session, GNUTLS_CLIENT));
- /* Initialize TLS session
- */
- CHECK(gnutls_init(&session, GNUTLS_CLIENT));
+ /* Use default priorities */
+ CHECK(gnutls_set_default_priority(session));
- /* Use default priorities */
- CHECK(gnutls_set_default_priority(session));
+ /* put the x509 credentials to the current session
+ */
+ CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred));
- /* put the x509 credentials to the current session
- */
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred));
+ /* connect to the peer
+ */
+ sd = tcp_connect();
- /* connect to the peer
- */
- sd = tcp_connect();
+ gnutls_transport_set_int(session, sd);
- gnutls_transport_set_int(session, sd);
+ /* Perform the TLS handshake
+ */
+ ret = gnutls_handshake(session);
- /* Perform the TLS handshake
- */
- ret = gnutls_handshake(session);
+ if (ret < 0) {
+ fprintf(stderr, "*** Handshake failed\n");
+ gnutls_perror(ret);
+ goto end;
+ } else {
+ char *desc;
- if (ret < 0) {
- fprintf(stderr, "*** Handshake failed\n");
- gnutls_perror(ret);
- goto end;
- } else {
- char *desc;
+ desc = gnutls_session_get_desc(session);
+ printf("- Session info: %s\n", desc);
+ gnutls_free(desc);
+ }
- desc = gnutls_session_get_desc(session);
- printf("- Session info: %s\n", desc);
- gnutls_free(desc);
- }
+ CHECK(gnutls_record_send(session, MSG, strlen(MSG)));
- CHECK(gnutls_record_send(session, MSG, strlen(MSG)));
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+ if (ret == 0) {
+ printf("- Peer has closed the TLS connection\n");
+ goto end;
+ } else if (ret < 0) {
+ fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
+ goto end;
+ }
- ret = gnutls_record_recv(session, buffer, MAX_BUF);
- if (ret == 0) {
- printf("- Peer has closed the TLS connection\n");
- goto end;
- } else if (ret < 0) {
- fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
- goto end;
- }
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
- printf("- Received %d bytes: ", ret);
- for (ii = 0; ii < ret; ii++) {
- fputc(buffer[ii], stdout);
- }
- fputs("\n", stdout);
+ CHECK(gnutls_bye(session, GNUTLS_SHUT_RDWR));
- CHECK(gnutls_bye(session, GNUTLS_SHUT_RDWR));
+ end:
- end:
+ tcp_close(sd);
- tcp_close(sd);
+ gnutls_deinit(session);
- gnutls_deinit(session);
+ gnutls_certificate_free_credentials(xcred);
- gnutls_certificate_free_credentials(xcred);
+ gnutls_global_deinit();
- gnutls_global_deinit();
-
- return 0;
+ return 0;
}
diff --git a/doc/examples/ex-cert-select.c b/doc/examples/ex-cert-select.c
index 9f84b67efd..93ec9ddce7 100644
--- a/doc/examples/ex-cert-select.c
+++ b/doc/examples/ex-cert-select.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,10 +36,10 @@ extern void tcp_close(int sd);
static int
cert_callback(gnutls_session_t session,
- const gnutls_datum_t * req_ca_rdn, int nreqs,
- const gnutls_pk_algorithm_t * sign_algos,
- int sign_algos_length, gnutls_pcert_st ** pcert,
- unsigned int *pcert_length, gnutls_privkey_t * pkey);
+ const gnutls_datum_t * req_ca_rdn, int nreqs,
+ const gnutls_pk_algorithm_t * sign_algos,
+ int sign_algos_length, gnutls_pcert_st ** pcert,
+ unsigned int *pcert_length, gnutls_privkey_t * pkey);
gnutls_pcert_st pcrt;
gnutls_privkey_t key;
@@ -48,118 +48,116 @@ gnutls_privkey_t key;
*/
static void load_keys(void)
{
- gnutls_datum_t data;
+ gnutls_datum_t data;
- CHECK(gnutls_load_file(CERT_FILE, &data));
+ CHECK(gnutls_load_file(CERT_FILE, &data));
- CHECK(gnutls_pcert_import_x509_raw(&pcrt, &data,
- GNUTLS_X509_FMT_PEM, 0));
+ CHECK(gnutls_pcert_import_x509_raw(&pcrt, &data,
+ GNUTLS_X509_FMT_PEM, 0));
- gnutls_free(data.data);
+ gnutls_free(data.data);
- CHECK(gnutls_load_file(KEY_FILE, &data));
+ CHECK(gnutls_load_file(KEY_FILE, &data));
- CHECK(gnutls_privkey_init(&key));
+ CHECK(gnutls_privkey_init(&key));
- CHECK(gnutls_privkey_import_x509_raw(key, &data,
- GNUTLS_X509_FMT_PEM,
- NULL, 0));
- gnutls_free(data.data);
+ CHECK(gnutls_privkey_import_x509_raw(key, &data,
+ GNUTLS_X509_FMT_PEM, NULL, 0));
+ gnutls_free(data.data);
}
int main(void)
{
- int ret, sd, ii;
- gnutls_session_t session;
- char buffer[MAX_BUF + 1];
- gnutls_certificate_credentials_t xcred;
-
- if (gnutls_check_version("3.1.4") == NULL) {
- fprintf(stderr, "GnuTLS 3.1.4 or later is required for this example\n");
- exit(1);
- }
+ int ret, sd, ii;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ gnutls_certificate_credentials_t xcred;
- /* for backwards compatibility with gnutls < 3.3.0 */
- CHECK(gnutls_global_init());
+ if (gnutls_check_version("3.1.4") == NULL) {
+ fprintf(stderr,
+ "GnuTLS 3.1.4 or later is required for this example\n");
+ exit(1);
+ }
- load_keys();
+ /* for backwards compatibility with gnutls < 3.3.0 */
+ CHECK(gnutls_global_init());
- /* X509 stuff */
- CHECK(gnutls_certificate_allocate_credentials(&xcred));
+ load_keys();
- /* sets the trusted cas file
- */
- CHECK(gnutls_certificate_set_x509_trust_file(xcred, CAFILE,
- GNUTLS_X509_FMT_PEM));
+ /* X509 stuff */
+ CHECK(gnutls_certificate_allocate_credentials(&xcred));
- gnutls_certificate_set_retrieve_function2(xcred, cert_callback);
+ /* sets the trusted cas file
+ */
+ CHECK(gnutls_certificate_set_x509_trust_file(xcred, CAFILE,
+ GNUTLS_X509_FMT_PEM));
- /* Initialize TLS session
- */
- CHECK(gnutls_init(&session, GNUTLS_CLIENT));
+ gnutls_certificate_set_retrieve_function2(xcred, cert_callback);
- /* Use default priorities */
- CHECK(gnutls_set_default_priority(session));
+ /* Initialize TLS session
+ */
+ CHECK(gnutls_init(&session, GNUTLS_CLIENT));
- /* put the x509 credentials to the current session
- */
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred));
+ /* Use default priorities */
+ CHECK(gnutls_set_default_priority(session));
- /* connect to the peer
- */
- sd = tcp_connect();
+ /* put the x509 credentials to the current session
+ */
+ CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred));
- gnutls_transport_set_int(session, sd);
+ /* connect to the peer
+ */
+ sd = tcp_connect();
- /* Perform the TLS handshake
- */
- ret = gnutls_handshake(session);
+ gnutls_transport_set_int(session, sd);
- if (ret < 0) {
- fprintf(stderr, "*** Handshake failed\n");
- gnutls_perror(ret);
- goto end;
- } else {
- char *desc;
+ /* Perform the TLS handshake
+ */
+ ret = gnutls_handshake(session);
- desc = gnutls_session_get_desc(session);
- printf("- Session info: %s\n", desc);
- gnutls_free(desc);
- }
+ if (ret < 0) {
+ fprintf(stderr, "*** Handshake failed\n");
+ gnutls_perror(ret);
+ goto end;
+ } else {
+ char *desc;
- CHECK(gnutls_record_send(session, MSG, strlen(MSG)));
+ desc = gnutls_session_get_desc(session);
+ printf("- Session info: %s\n", desc);
+ gnutls_free(desc);
+ }
- ret = gnutls_record_recv(session, buffer, MAX_BUF);
- if (ret == 0) {
- printf("- Peer has closed the TLS connection\n");
- goto end;
- } else if (ret < 0) {
- fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
- goto end;
- }
+ CHECK(gnutls_record_send(session, MSG, strlen(MSG)));
- printf("- Received %d bytes: ", ret);
- for (ii = 0; ii < ret; ii++) {
- fputc(buffer[ii], stdout);
- }
- fputs("\n", stdout);
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+ if (ret == 0) {
+ printf("- Peer has closed the TLS connection\n");
+ goto end;
+ } else if (ret < 0) {
+ fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
+ goto end;
+ }
- CHECK(gnutls_bye(session, GNUTLS_SHUT_RDWR));
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
- end:
+ CHECK(gnutls_bye(session, GNUTLS_SHUT_RDWR));
- tcp_close(sd);
+ end:
- gnutls_deinit(session);
+ tcp_close(sd);
- gnutls_certificate_free_credentials(xcred);
+ gnutls_deinit(session);
- gnutls_global_deinit();
-
- return 0;
-}
+ gnutls_certificate_free_credentials(xcred);
+ gnutls_global_deinit();
+ return 0;
+}
/* This callback should be associated with a session by calling
* gnutls_certificate_client_set_retrieve_function( session, cert_callback),
@@ -168,47 +166,47 @@ int main(void)
static int
cert_callback(gnutls_session_t session,
- const gnutls_datum_t * req_ca_rdn, int nreqs,
- const gnutls_pk_algorithm_t * sign_algos,
- int sign_algos_length, gnutls_pcert_st ** pcert,
- unsigned int *pcert_length, gnutls_privkey_t * pkey)
+ const gnutls_datum_t * req_ca_rdn, int nreqs,
+ const gnutls_pk_algorithm_t * sign_algos,
+ int sign_algos_length, gnutls_pcert_st ** pcert,
+ unsigned int *pcert_length, gnutls_privkey_t * pkey)
{
- char issuer_dn[256];
- int i, ret;
- size_t len;
- gnutls_certificate_type_t type;
-
- /* Print the server's trusted CAs
- */
- if (nreqs > 0)
- printf("- Server's trusted authorities:\n");
- else
- printf
- ("- Server did not send us any trusted authorities names.\n");
-
- /* print the names (if any) */
- for (i = 0; i < nreqs; i++) {
- len = sizeof(issuer_dn);
- ret = gnutls_x509_rdn_get(&req_ca_rdn[i], issuer_dn, &len);
- if (ret >= 0) {
- printf(" [%d]: ", i);
- printf("%s\n", issuer_dn);
- }
- }
-
- /* Select a certificate and return it.
- * The certificate must be of any of the "sign algorithms"
- * supported by the server.
- */
- type = gnutls_certificate_type_get(session);
- if (type == GNUTLS_CRT_X509) {
- *pcert_length = 1;
- *pcert = &pcrt;
- *pkey = key;
- } else {
- return -1;
- }
-
- return 0;
+ char issuer_dn[256];
+ int i, ret;
+ size_t len;
+ gnutls_certificate_type_t type;
+
+ /* Print the server's trusted CAs
+ */
+ if (nreqs > 0)
+ printf("- Server's trusted authorities:\n");
+ else
+ printf
+ ("- Server did not send us any trusted authorities names.\n");
+
+ /* print the names (if any) */
+ for (i = 0; i < nreqs; i++) {
+ len = sizeof(issuer_dn);
+ ret = gnutls_x509_rdn_get(&req_ca_rdn[i], issuer_dn, &len);
+ if (ret >= 0) {
+ printf(" [%d]: ", i);
+ printf("%s\n", issuer_dn);
+ }
+ }
+
+ /* Select a certificate and return it.
+ * The certificate must be of any of the "sign algorithms"
+ * supported by the server.
+ */
+ type = gnutls_certificate_type_get(session);
+ if (type == GNUTLS_CRT_X509) {
+ *pcert_length = 1;
+ *pcert = &pcrt;
+ *pkey = key;
+ } else {
+ return -1;
+ }
+
+ return 0;
}
diff --git a/doc/examples/ex-client-anon.c b/doc/examples/ex-client-anon.c
index 39d5a7e3cd..38e70264b1 100644
--- a/doc/examples/ex-client-anon.c
+++ b/doc/examples/ex-client-anon.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,88 +31,86 @@ extern void tcp_close(int sd);
int main(void)
{
- int ret, sd, ii;
- gnutls_session_t session;
- char buffer[MAX_BUF + 1];
- gnutls_anon_client_credentials_t anoncred;
- /* Need to enable anonymous KX specifically. */
-
- gnutls_global_init();
-
- gnutls_anon_allocate_client_credentials(&anoncred);
-
- /* Initialize TLS session
- */
- gnutls_init(&session, GNUTLS_CLIENT);
-
- /* Use default priorities */
- gnutls_priority_set_direct(session,
- "PERFORMANCE:+ANON-ECDH:+ANON-DH",
- NULL);
-
- /* put the anonymous credentials to the current session
- */
- gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
-
- /* connect to the peer
- */
- sd = tcp_connect();
-
- gnutls_transport_set_int(session, sd);
- gnutls_handshake_set_timeout(session,
- GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
-
- /* Perform the TLS handshake
- */
- do {
- ret = gnutls_handshake(session);
- }
- while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
- if (ret < 0) {
- fprintf(stderr, "*** Handshake failed\n");
- gnutls_perror(ret);
- goto end;
- } else {
- char *desc;
-
- desc = gnutls_session_get_desc(session);
- printf("- Session info: %s\n", desc);
- gnutls_free(desc);
- }
-
- LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
-
- LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
- if (ret == 0) {
- printf("- Peer has closed the TLS connection\n");
- goto end;
- } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n", gnutls_strerror(ret));
- } else if (ret < 0) {
- fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
- goto end;
- }
-
- if (ret > 0) {
- printf("- Received %d bytes: ", ret);
- for (ii = 0; ii < ret; ii++) {
- fputc(buffer[ii], stdout);
- }
- fputs("\n", stdout);
- }
-
- LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_RDWR));
-
- end:
-
- tcp_close(sd);
-
- gnutls_deinit(session);
-
- gnutls_anon_free_client_credentials(anoncred);
-
- gnutls_global_deinit();
-
- return 0;
+ int ret, sd, ii;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ gnutls_anon_client_credentials_t anoncred;
+ /* Need to enable anonymous KX specifically. */
+
+ gnutls_global_init();
+
+ gnutls_anon_allocate_client_credentials(&anoncred);
+
+ /* Initialize TLS session
+ */
+ gnutls_init(&session, GNUTLS_CLIENT);
+
+ /* Use default priorities */
+ gnutls_priority_set_direct(session,
+ "PERFORMANCE:+ANON-ECDH:+ANON-DH", NULL);
+
+ /* put the anonymous credentials to the current session
+ */
+ gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
+
+ /* connect to the peer
+ */
+ sd = tcp_connect();
+
+ gnutls_transport_set_int(session, sd);
+ gnutls_handshake_set_timeout(session, GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
+
+ /* Perform the TLS handshake
+ */
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ if (ret < 0) {
+ fprintf(stderr, "*** Handshake failed\n");
+ gnutls_perror(ret);
+ goto end;
+ } else {
+ char *desc;
+
+ desc = gnutls_session_get_desc(session);
+ printf("- Session info: %s\n", desc);
+ gnutls_free(desc);
+ }
+
+ LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
+
+ LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
+ if (ret == 0) {
+ printf("- Peer has closed the TLS connection\n");
+ goto end;
+ } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n", gnutls_strerror(ret));
+ } else if (ret < 0) {
+ fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
+ goto end;
+ }
+
+ if (ret > 0) {
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
+ }
+
+ LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_RDWR));
+
+ end:
+
+ tcp_close(sd);
+
+ gnutls_deinit(session);
+
+ gnutls_anon_free_client_credentials(anoncred);
+
+ gnutls_global_deinit();
+
+ return 0;
}
diff --git a/doc/examples/ex-client-dtls.c b/doc/examples/ex-client-dtls.c
index 095246e26c..1ecf95b7eb 100644
--- a/doc/examples/ex-client-dtls.c
+++ b/doc/examples/ex-client-dtls.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -34,101 +34,103 @@ extern int verify_certificate_callback(gnutls_session_t session);
int main(void)
{
- int ret, sd, ii;
- gnutls_session_t session;
- char buffer[MAX_BUF + 1];
- gnutls_certificate_credentials_t xcred;
+ int ret, sd, ii;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ gnutls_certificate_credentials_t xcred;
- if (gnutls_check_version("3.1.4") == NULL) {
- fprintf(stderr, "GnuTLS 3.1.4 or later is required for this example\n");
- exit(1);
- }
+ if (gnutls_check_version("3.1.4") == NULL) {
+ fprintf(stderr,
+ "GnuTLS 3.1.4 or later is required for this example\n");
+ exit(1);
+ }
- /* for backwards compatibility with gnutls < 3.3.0 */
- CHECK(gnutls_global_init());
+ /* for backwards compatibility with gnutls < 3.3.0 */
+ CHECK(gnutls_global_init());
- /* X509 stuff */
- CHECK(gnutls_certificate_allocate_credentials(&xcred));
+ /* X509 stuff */
+ CHECK(gnutls_certificate_allocate_credentials(&xcred));
- /* sets the system trusted CAs for Internet PKI */
- CHECK(gnutls_certificate_set_x509_system_trust(xcred));
+ /* sets the system trusted CAs for Internet PKI */
+ CHECK(gnutls_certificate_set_x509_system_trust(xcred));
- /* Initialize TLS session */
- CHECK(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM));
+ /* Initialize TLS session */
+ CHECK(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM));
- /* Use default priorities */
- CHECK(gnutls_set_default_priority(session));
+ /* Use default priorities */
+ CHECK(gnutls_set_default_priority(session));
- /* put the x509 credentials to the current session */
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred));
- CHECK(gnutls_server_name_set(session, GNUTLS_NAME_DNS, "www.example.com",
- strlen("www.example.com")));
+ /* put the x509 credentials to the current session */
+ CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred));
+ CHECK(gnutls_server_name_set
+ (session, GNUTLS_NAME_DNS, "www.example.com",
+ strlen("www.example.com")));
- gnutls_session_set_verify_cert(session, "www.example.com", 0);
+ gnutls_session_set_verify_cert(session, "www.example.com", 0);
- /* connect to the peer */
- sd = udp_connect();
+ /* connect to the peer */
+ sd = udp_connect();
- gnutls_transport_set_int(session, sd);
+ gnutls_transport_set_int(session, sd);
- /* set the connection MTU */
- gnutls_dtls_set_mtu(session, 1000);
- /* gnutls_dtls_set_timeouts(session, 1000, 60000); */
+ /* set the connection MTU */
+ gnutls_dtls_set_mtu(session, 1000);
+ /* gnutls_dtls_set_timeouts(session, 1000, 60000); */
- /* Perform the TLS handshake */
- do {
- ret = gnutls_handshake(session);
- }
- while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
- /* Note that DTLS may also receive GNUTLS_E_LARGE_PACKET */
+ /* Perform the TLS handshake */
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
+ /* Note that DTLS may also receive GNUTLS_E_LARGE_PACKET */
- if (ret < 0) {
- fprintf(stderr, "*** Handshake failed\n");
- gnutls_perror(ret);
- goto end;
- } else {
- char *desc;
+ if (ret < 0) {
+ fprintf(stderr, "*** Handshake failed\n");
+ gnutls_perror(ret);
+ goto end;
+ } else {
+ char *desc;
- desc = gnutls_session_get_desc(session);
- printf("- Session info: %s\n", desc);
- gnutls_free(desc);
- }
+ desc = gnutls_session_get_desc(session);
+ printf("- Session info: %s\n", desc);
+ gnutls_free(desc);
+ }
- LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
+ LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
- LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
- if (ret == 0) {
- printf("- Peer has closed the TLS connection\n");
- goto end;
- } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n", gnutls_strerror(ret));
- } else if (ret < 0) {
- fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
- goto end;
- }
+ LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
+ if (ret == 0) {
+ printf("- Peer has closed the TLS connection\n");
+ goto end;
+ } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n", gnutls_strerror(ret));
+ } else if (ret < 0) {
+ fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
+ goto end;
+ }
- if (ret > 0) {
- printf("- Received %d bytes: ", ret);
- for (ii = 0; ii < ret; ii++) {
- fputc(buffer[ii], stdout);
- }
- fputs("\n", stdout);
- }
+ if (ret > 0) {
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
+ }
- /* It is suggested not to use GNUTLS_SHUT_RDWR in DTLS
- * connections because the peer's closure message might
- * be lost */
- CHECK(gnutls_bye(session, GNUTLS_SHUT_WR));
+ /* It is suggested not to use GNUTLS_SHUT_RDWR in DTLS
+ * connections because the peer's closure message might
+ * be lost */
+ CHECK(gnutls_bye(session, GNUTLS_SHUT_WR));
- end:
+ end:
- udp_close(sd);
+ udp_close(sd);
- gnutls_deinit(session);
+ gnutls_deinit(session);
- gnutls_certificate_free_credentials(xcred);
+ gnutls_certificate_free_credentials(xcred);
- gnutls_global_deinit();
+ gnutls_global_deinit();
- return 0;
+ return 0;
}
diff --git a/doc/examples/ex-client-psk.c b/doc/examples/ex-client-psk.c
index 63ef884c70..069b387373 100644
--- a/doc/examples/ex-client-psk.c
+++ b/doc/examples/ex-client-psk.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -32,106 +32,106 @@ extern void tcp_close(int sd);
int main(void)
{
- int ret, sd, ii;
- gnutls_session_t session;
- char buffer[MAX_BUF + 1];
- const char *err;
- gnutls_psk_client_credentials_t pskcred;
- const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
-
- if (gnutls_check_version("3.6.3") == NULL) {
- fprintf(stderr, "GnuTLS 3.6.3 or later is required for this example\n");
- exit(1);
- }
-
- CHECK(gnutls_global_init());
-
- CHECK(gnutls_psk_allocate_client_credentials(&pskcred));
- CHECK(gnutls_psk_set_client_credentials(pskcred, "test", &key,
- GNUTLS_PSK_KEY_HEX));
-
- /* Initialize TLS session
- */
- CHECK(gnutls_init(&session, GNUTLS_CLIENT));
-
- ret =
- gnutls_set_default_priority_append(session,
- "-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK",
- &err, 0);
-
- /* Alternative for pre-3.6.3 versions:
- * gnutls_priority_set_direct(session, "NORMAL:+ECDHE-PSK:+DHE-PSK:+PSK", &err)
- */
- if (ret < 0) {
- if (ret == GNUTLS_E_INVALID_REQUEST) {
- fprintf(stderr, "Syntax error at: %s\n", err);
- }
- exit(1);
- }
-
- /* put the x509 credentials to the current session
- */
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_PSK, pskcred));
-
- /* connect to the peer
- */
- sd = tcp_connect();
-
- gnutls_transport_set_int(session, sd);
- gnutls_handshake_set_timeout(session,
- GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
-
- /* Perform the TLS handshake
- */
- do {
- ret = gnutls_handshake(session);
- }
- while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
- if (ret < 0) {
- fprintf(stderr, "*** Handshake failed\n");
- gnutls_perror(ret);
- goto end;
- } else {
- char *desc;
-
- desc = gnutls_session_get_desc(session);
- printf("- Session info: %s\n", desc);
- gnutls_free(desc);
- }
-
- LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
-
- LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
- if (ret == 0) {
- printf("- Peer has closed the TLS connection\n");
- goto end;
- } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n", gnutls_strerror(ret));
- } else if (ret < 0) {
- fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
- goto end;
- }
-
- if (ret > 0) {
- printf("- Received %d bytes: ", ret);
- for (ii = 0; ii < ret; ii++) {
- fputc(buffer[ii], stdout);
- }
- fputs("\n", stdout);
- }
-
- CHECK(gnutls_bye(session, GNUTLS_SHUT_RDWR));
-
- end:
-
- tcp_close(sd);
-
- gnutls_deinit(session);
-
- gnutls_psk_free_client_credentials(pskcred);
-
- gnutls_global_deinit();
-
- return 0;
+ int ret, sd, ii;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ const char *err;
+ gnutls_psk_client_credentials_t pskcred;
+ const gnutls_datum_t key = { (void *)"DEADBEEF", 8 };
+
+ if (gnutls_check_version("3.6.3") == NULL) {
+ fprintf(stderr,
+ "GnuTLS 3.6.3 or later is required for this example\n");
+ exit(1);
+ }
+
+ CHECK(gnutls_global_init());
+
+ CHECK(gnutls_psk_allocate_client_credentials(&pskcred));
+ CHECK(gnutls_psk_set_client_credentials(pskcred, "test", &key,
+ GNUTLS_PSK_KEY_HEX));
+
+ /* Initialize TLS session
+ */
+ CHECK(gnutls_init(&session, GNUTLS_CLIENT));
+
+ ret =
+ gnutls_set_default_priority_append(session,
+ "-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK",
+ &err, 0);
+
+ /* Alternative for pre-3.6.3 versions:
+ * gnutls_priority_set_direct(session, "NORMAL:+ECDHE-PSK:+DHE-PSK:+PSK", &err)
+ */
+ if (ret < 0) {
+ if (ret == GNUTLS_E_INVALID_REQUEST) {
+ fprintf(stderr, "Syntax error at: %s\n", err);
+ }
+ exit(1);
+ }
+
+ /* put the x509 credentials to the current session
+ */
+ CHECK(gnutls_credentials_set(session, GNUTLS_CRD_PSK, pskcred));
+
+ /* connect to the peer
+ */
+ sd = tcp_connect();
+
+ gnutls_transport_set_int(session, sd);
+ gnutls_handshake_set_timeout(session, GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
+
+ /* Perform the TLS handshake
+ */
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ if (ret < 0) {
+ fprintf(stderr, "*** Handshake failed\n");
+ gnutls_perror(ret);
+ goto end;
+ } else {
+ char *desc;
+
+ desc = gnutls_session_get_desc(session);
+ printf("- Session info: %s\n", desc);
+ gnutls_free(desc);
+ }
+
+ LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
+
+ LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
+ if (ret == 0) {
+ printf("- Peer has closed the TLS connection\n");
+ goto end;
+ } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n", gnutls_strerror(ret));
+ } else if (ret < 0) {
+ fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
+ goto end;
+ }
+
+ if (ret > 0) {
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
+ }
+
+ CHECK(gnutls_bye(session, GNUTLS_SHUT_RDWR));
+
+ end:
+
+ tcp_close(sd);
+
+ gnutls_deinit(session);
+
+ gnutls_psk_free_client_credentials(pskcred);
+
+ gnutls_global_deinit();
+
+ return 0;
}
diff --git a/doc/examples/ex-client-resume.c b/doc/examples/ex-client-resume.c
index 3161ef3165..b3510bd193 100644
--- a/doc/examples/ex-client-resume.c
+++ b/doc/examples/ex-client-resume.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <string.h>
@@ -32,115 +32,114 @@ extern void tcp_close(int sd);
int main(void)
{
- int ret;
- int sd, ii;
- gnutls_session_t session;
- char buffer[MAX_BUF + 1];
- gnutls_certificate_credentials_t xcred;
-
- /* variables used in session resuming
- */
- int t;
- gnutls_datum_t sdata;
-
- /* for backwards compatibility with gnutls < 3.3.0 */
- CHECK(gnutls_global_init());
-
- CHECK(gnutls_certificate_allocate_credentials(&xcred));
- CHECK(gnutls_certificate_set_x509_system_trust(xcred));
-
- for (t = 0; t < 2; t++) { /* connect 2 times to the server */
-
- sd = tcp_connect();
-
- CHECK(gnutls_init(&session, GNUTLS_CLIENT));
-
- CHECK(gnutls_server_name_set(session, GNUTLS_NAME_DNS,
- "www.example.com",
- strlen("www.example.com")));
- gnutls_session_set_verify_cert(session, "www.example.com", 0);
-
- CHECK(gnutls_set_default_priority(session));
-
- gnutls_transport_set_int(session, sd);
- gnutls_handshake_set_timeout(session,
- GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
-
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- xcred);
-
- if (t > 0) {
- /* if this is not the first time we connect */
- CHECK(gnutls_session_set_data(session, sdata.data,
- sdata.size));
- gnutls_free(sdata.data);
- }
-
- /* Perform the TLS handshake
- */
- do {
- ret = gnutls_handshake(session);
- }
- while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
- if (ret < 0) {
- fprintf(stderr, "*** Handshake failed\n");
- gnutls_perror(ret);
- goto end;
- } else {
- printf("- Handshake was completed\n");
- }
-
- if (t == 0) { /* the first time we connect */
- /* get the session data */
- CHECK(gnutls_session_get_data2(session, &sdata));
- } else { /* the second time we connect */
-
- /* check if we actually resumed the previous session */
- if (gnutls_session_is_resumed(session) != 0) {
- printf("- Previous session was resumed\n");
- } else {
- fprintf(stderr,
- "*** Previous session was NOT resumed\n");
- }
- }
-
- LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
-
- LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
- if (ret == 0) {
- printf("- Peer has closed the TLS connection\n");
- goto end;
- } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n",
- gnutls_strerror(ret));
- } else if (ret < 0) {
- fprintf(stderr, "*** Error: %s\n",
- gnutls_strerror(ret));
- goto end;
- }
-
- if (ret > 0) {
- printf("- Received %d bytes: ", ret);
- for (ii = 0; ii < ret; ii++) {
- fputc(buffer[ii], stdout);
- }
- fputs("\n", stdout);
- }
-
- gnutls_bye(session, GNUTLS_SHUT_RDWR);
-
- end:
-
- tcp_close(sd);
-
- gnutls_deinit(session);
-
- } /* for() */
+ int ret;
+ int sd, ii;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ gnutls_certificate_credentials_t xcred;
+
+ /* variables used in session resuming
+ */
+ int t;
+ gnutls_datum_t sdata;
+
+ /* for backwards compatibility with gnutls < 3.3.0 */
+ CHECK(gnutls_global_init());
+
+ CHECK(gnutls_certificate_allocate_credentials(&xcred));
+ CHECK(gnutls_certificate_set_x509_system_trust(xcred));
+
+ for (t = 0; t < 2; t++) { /* connect 2 times to the server */
+
+ sd = tcp_connect();
+
+ CHECK(gnutls_init(&session, GNUTLS_CLIENT));
+
+ CHECK(gnutls_server_name_set(session, GNUTLS_NAME_DNS,
+ "www.example.com",
+ strlen("www.example.com")));
+ gnutls_session_set_verify_cert(session, "www.example.com", 0);
+
+ CHECK(gnutls_set_default_priority(session));
+
+ gnutls_transport_set_int(session, sd);
+ gnutls_handshake_set_timeout(session,
+ GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
+
+ if (t > 0) {
+ /* if this is not the first time we connect */
+ CHECK(gnutls_session_set_data(session, sdata.data,
+ sdata.size));
+ gnutls_free(sdata.data);
+ }
+
+ /* Perform the TLS handshake
+ */
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ if (ret < 0) {
+ fprintf(stderr, "*** Handshake failed\n");
+ gnutls_perror(ret);
+ goto end;
+ } else {
+ printf("- Handshake was completed\n");
+ }
+
+ if (t == 0) { /* the first time we connect */
+ /* get the session data */
+ CHECK(gnutls_session_get_data2(session, &sdata));
+ } else { /* the second time we connect */
+
+ /* check if we actually resumed the previous session */
+ if (gnutls_session_is_resumed(session) != 0) {
+ printf("- Previous session was resumed\n");
+ } else {
+ fprintf(stderr,
+ "*** Previous session was NOT resumed\n");
+ }
+ }
+
+ LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
+
+ LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
+ if (ret == 0) {
+ printf("- Peer has closed the TLS connection\n");
+ goto end;
+ } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n",
+ gnutls_strerror(ret));
+ } else if (ret < 0) {
+ fprintf(stderr, "*** Error: %s\n",
+ gnutls_strerror(ret));
+ goto end;
+ }
+
+ if (ret > 0) {
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
+ }
+
+ gnutls_bye(session, GNUTLS_SHUT_RDWR);
+
+ end:
+
+ tcp_close(sd);
+
+ gnutls_deinit(session);
+
+ } /* for() */
- gnutls_certificate_free_credentials(xcred);
-
- gnutls_global_deinit();
+ gnutls_certificate_free_credentials(xcred);
+
+ gnutls_global_deinit();
- return 0;
+ return 0;
}
diff --git a/doc/examples/ex-client-srp.c b/doc/examples/ex-client-srp.c
index e02328919a..3ae7e8596d 100644
--- a/doc/examples/ex-client-srp.c
+++ b/doc/examples/ex-client-srp.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -23,106 +23,103 @@ extern void tcp_close(int sd);
int main(void)
{
- int ret;
- int sd, ii;
- gnutls_session_t session;
- char buffer[MAX_BUF + 1];
- gnutls_srp_client_credentials_t srp_cred;
- gnutls_certificate_credentials_t cert_cred;
-
- if (gnutls_check_version("3.1.4") == NULL) {
- fprintf(stderr, "GnuTLS 3.1.4 or later is required for this example\n");
- exit(1);
- }
-
- /* for backwards compatibility with gnutls < 3.3.0 */
- gnutls_global_init();
-
- gnutls_srp_allocate_client_credentials(&srp_cred);
- gnutls_certificate_allocate_credentials(&cert_cred);
-
- gnutls_certificate_set_x509_trust_file(cert_cred, CAFILE,
- GNUTLS_X509_FMT_PEM);
- gnutls_srp_set_client_credentials(srp_cred, USERNAME, PASSWORD);
-
- /* connects to server
- */
- sd = tcp_connect();
-
- /* Initialize TLS session
- */
- gnutls_init(&session, GNUTLS_CLIENT);
-
-
- /* Set the priorities.
- */
- gnutls_priority_set_direct(session,
- "NORMAL:+SRP:+SRP-RSA:+SRP-DSS",
- NULL);
-
- /* put the SRP credentials to the current session
- */
- gnutls_credentials_set(session, GNUTLS_CRD_SRP, srp_cred);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, cert_cred);
-
- gnutls_transport_set_int(session, sd);
- gnutls_handshake_set_timeout(session,
- GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
-
- /* Perform the TLS handshake
- */
- do {
- ret = gnutls_handshake(session);
- }
- while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
- if (ret < 0) {
- fprintf(stderr, "*** Handshake failed\n");
- gnutls_perror(ret);
- goto end;
- } else {
- char *desc;
-
- desc = gnutls_session_get_desc(session);
- printf("- Session info: %s\n", desc);
- gnutls_free(desc);
- }
-
- gnutls_record_send(session, MSG, strlen(MSG));
-
- ret = gnutls_record_recv(session, buffer, MAX_BUF);
- if (gnutls_error_is_fatal(ret) != 0 || ret == 0) {
- if (ret == 0) {
- printf
- ("- Peer has closed the GnuTLS connection\n");
- goto end;
- } else {
- fprintf(stderr, "*** Error: %s\n",
- gnutls_strerror(ret));
- goto end;
- }
- } else
- check_alert(session, ret);
-
- if (ret > 0) {
- printf("- Received %d bytes: ", ret);
- for (ii = 0; ii < ret; ii++) {
- fputc(buffer[ii], stdout);
- }
- fputs("\n", stdout);
- }
- gnutls_bye(session, GNUTLS_SHUT_RDWR);
-
- end:
-
- tcp_close(sd);
-
- gnutls_deinit(session);
-
- gnutls_srp_free_client_credentials(srp_cred);
- gnutls_certificate_free_credentials(cert_cred);
-
- gnutls_global_deinit();
-
- return 0;
+ int ret;
+ int sd, ii;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ gnutls_srp_client_credentials_t srp_cred;
+ gnutls_certificate_credentials_t cert_cred;
+
+ if (gnutls_check_version("3.1.4") == NULL) {
+ fprintf(stderr,
+ "GnuTLS 3.1.4 or later is required for this example\n");
+ exit(1);
+ }
+
+ /* for backwards compatibility with gnutls < 3.3.0 */
+ gnutls_global_init();
+
+ gnutls_srp_allocate_client_credentials(&srp_cred);
+ gnutls_certificate_allocate_credentials(&cert_cred);
+
+ gnutls_certificate_set_x509_trust_file(cert_cred, CAFILE,
+ GNUTLS_X509_FMT_PEM);
+ gnutls_srp_set_client_credentials(srp_cred, USERNAME, PASSWORD);
+
+ /* connects to server
+ */
+ sd = tcp_connect();
+
+ /* Initialize TLS session
+ */
+ gnutls_init(&session, GNUTLS_CLIENT);
+
+ /* Set the priorities.
+ */
+ gnutls_priority_set_direct(session,
+ "NORMAL:+SRP:+SRP-RSA:+SRP-DSS", NULL);
+
+ /* put the SRP credentials to the current session
+ */
+ gnutls_credentials_set(session, GNUTLS_CRD_SRP, srp_cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, cert_cred);
+
+ gnutls_transport_set_int(session, sd);
+ gnutls_handshake_set_timeout(session, GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
+
+ /* Perform the TLS handshake
+ */
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ if (ret < 0) {
+ fprintf(stderr, "*** Handshake failed\n");
+ gnutls_perror(ret);
+ goto end;
+ } else {
+ char *desc;
+
+ desc = gnutls_session_get_desc(session);
+ printf("- Session info: %s\n", desc);
+ gnutls_free(desc);
+ }
+
+ gnutls_record_send(session, MSG, strlen(MSG));
+
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+ if (gnutls_error_is_fatal(ret) != 0 || ret == 0) {
+ if (ret == 0) {
+ printf("- Peer has closed the GnuTLS connection\n");
+ goto end;
+ } else {
+ fprintf(stderr, "*** Error: %s\n",
+ gnutls_strerror(ret));
+ goto end;
+ }
+ } else
+ check_alert(session, ret);
+
+ if (ret > 0) {
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
+ }
+ gnutls_bye(session, GNUTLS_SHUT_RDWR);
+
+ end:
+
+ tcp_close(sd);
+
+ gnutls_deinit(session);
+
+ gnutls_srp_free_client_credentials(srp_cred);
+ gnutls_certificate_free_credentials(cert_cred);
+
+ gnutls_global_deinit();
+
+ return 0;
}
diff --git a/doc/examples/ex-client-x509-3.1.c b/doc/examples/ex-client-x509-3.1.c
index bd7fd2fcb6..891efb9c54 100644
--- a/doc/examples/ex-client-x509-3.1.c
+++ b/doc/examples/ex-client-x509-3.1.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -34,123 +34,122 @@ static int _verify_certificate_callback(gnutls_session_t session);
int main(void)
{
- int ret, sd, ii;
- gnutls_session_t session;
- char buffer[MAX_BUF + 1];
- gnutls_certificate_credentials_t xcred;
-
- if (gnutls_check_version("3.1.4") == NULL) {
- fprintf(stderr, "GnuTLS 3.1.4 or later is required for this example\n");
- exit(1);
- }
-
- CHECK(gnutls_global_init());
-
- /* X509 stuff */
- CHECK(gnutls_certificate_allocate_credentials(&xcred));
-
- /* sets the trusted cas file
- */
- CHECK(gnutls_certificate_set_x509_trust_file(xcred, CAFILE,
- GNUTLS_X509_FMT_PEM));
- gnutls_certificate_set_verify_function(xcred,
- _verify_certificate_callback);
-
- /* If client holds a certificate it can be set using the following:
- *
- gnutls_certificate_set_x509_key_file (xcred,
- "cert.pem", "key.pem",
- GNUTLS_X509_FMT_PEM);
- */
-
- /* Initialize TLS session
- */
- CHECK(gnutls_init(&session, GNUTLS_CLIENT));
-
- gnutls_session_set_ptr(session, (void *) "www.example.com");
-
- gnutls_server_name_set(session, GNUTLS_NAME_DNS, "www.example.com",
- strlen("www.example.com"));
-
- /* use default priorities */
- CHECK(gnutls_set_default_priority(session));
+ int ret, sd, ii;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ gnutls_certificate_credentials_t xcred;
+
+ if (gnutls_check_version("3.1.4") == NULL) {
+ fprintf(stderr,
+ "GnuTLS 3.1.4 or later is required for this example\n");
+ exit(1);
+ }
+
+ CHECK(gnutls_global_init());
+
+ /* X509 stuff */
+ CHECK(gnutls_certificate_allocate_credentials(&xcred));
+
+ /* sets the trusted cas file
+ */
+ CHECK(gnutls_certificate_set_x509_trust_file(xcred, CAFILE,
+ GNUTLS_X509_FMT_PEM));
+ gnutls_certificate_set_verify_function(xcred,
+ _verify_certificate_callback);
+
+ /* If client holds a certificate it can be set using the following:
+ *
+ gnutls_certificate_set_x509_key_file (xcred,
+ "cert.pem", "key.pem",
+ GNUTLS_X509_FMT_PEM);
+ */
+
+ /* Initialize TLS session
+ */
+ CHECK(gnutls_init(&session, GNUTLS_CLIENT));
+
+ gnutls_session_set_ptr(session, (void *)"www.example.com");
+
+ gnutls_server_name_set(session, GNUTLS_NAME_DNS, "www.example.com",
+ strlen("www.example.com"));
+
+ /* use default priorities */
+ CHECK(gnutls_set_default_priority(session));
#if 0
/* if more fine-graned control is required */
- ret = gnutls_priority_set_direct(session,
- "NORMAL", &err);
- if (ret < 0) {
- if (ret == GNUTLS_E_INVALID_REQUEST) {
- fprintf(stderr, "Syntax error at: %s\n", err);
- }
- exit(1);
- }
+ ret = gnutls_priority_set_direct(session, "NORMAL", &err);
+ if (ret < 0) {
+ if (ret == GNUTLS_E_INVALID_REQUEST) {
+ fprintf(stderr, "Syntax error at: %s\n", err);
+ }
+ exit(1);
+ }
#endif
- /* put the x509 credentials to the current session
- */
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred));
+ /* put the x509 credentials to the current session
+ */
+ CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred));
- /* connect to the peer
- */
- sd = tcp_connect();
+ /* connect to the peer
+ */
+ sd = tcp_connect();
- gnutls_transport_set_int(session, sd);
- gnutls_handshake_set_timeout(session,
- GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
+ gnutls_transport_set_int(session, sd);
+ gnutls_handshake_set_timeout(session, GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
- /* Perform the TLS handshake
- */
- do {
- ret = gnutls_handshake(session);
- }
- while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+ /* Perform the TLS handshake
+ */
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
- if (ret < 0) {
- fprintf(stderr, "*** Handshake failed\n");
- gnutls_perror(ret);
- goto end;
- } else {
- char *desc;
+ if (ret < 0) {
+ fprintf(stderr, "*** Handshake failed\n");
+ gnutls_perror(ret);
+ goto end;
+ } else {
+ char *desc;
- desc = gnutls_session_get_desc(session);
- printf("- Session info: %s\n", desc);
- gnutls_free(desc);
- }
+ desc = gnutls_session_get_desc(session);
+ printf("- Session info: %s\n", desc);
+ gnutls_free(desc);
+ }
- LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
+ LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
- LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
- if (ret == 0) {
- printf("- Peer has closed the TLS connection\n");
- goto end;
- } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n", gnutls_strerror(ret));
- } else if (ret < 0) {
- fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
- goto end;
- }
+ LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
+ if (ret == 0) {
+ printf("- Peer has closed the TLS connection\n");
+ goto end;
+ } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n", gnutls_strerror(ret));
+ } else if (ret < 0) {
+ fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
+ goto end;
+ }
- if (ret > 0) {
- printf("- Received %d bytes: ", ret);
- for (ii = 0; ii < ret; ii++) {
- fputc(buffer[ii], stdout);
- }
- fputs("\n", stdout);
- }
+ if (ret > 0) {
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
+ }
- CHECK(gnutls_bye(session, GNUTLS_SHUT_RDWR));
+ CHECK(gnutls_bye(session, GNUTLS_SHUT_RDWR));
- end:
+ end:
- tcp_close(sd);
+ tcp_close(sd);
- gnutls_deinit(session);
+ gnutls_deinit(session);
- gnutls_certificate_free_credentials(xcred);
+ gnutls_certificate_free_credentials(xcred);
- gnutls_global_deinit();
+ gnutls_global_deinit();
- return 0;
+ return 0;
}
/* This function will verify the peer's certificate, and check
@@ -158,33 +157,32 @@ int main(void)
*/
static int _verify_certificate_callback(gnutls_session_t session)
{
- unsigned int status;
- int type;
- const char *hostname;
- gnutls_datum_t out;
+ unsigned int status;
+ int type;
+ const char *hostname;
+ gnutls_datum_t out;
- /* read hostname */
- hostname = gnutls_session_get_ptr(session);
+ /* read hostname */
+ hostname = gnutls_session_get_ptr(session);
- /* This verification function uses the trusted CAs in the credentials
- * structure. So you must have installed one or more CA certificates.
- */
+ /* This verification function uses the trusted CAs in the credentials
+ * structure. So you must have installed one or more CA certificates.
+ */
- CHECK(gnutls_certificate_verify_peers3(session, hostname,
- &status));
+ CHECK(gnutls_certificate_verify_peers3(session, hostname, &status));
- type = gnutls_certificate_type_get(session);
+ type = gnutls_certificate_type_get(session);
- CHECK(gnutls_certificate_verification_status_print(status, type,
- &out, 0));
+ CHECK(gnutls_certificate_verification_status_print(status, type,
+ &out, 0));
- printf("%s", out.data);
+ printf("%s", out.data);
- gnutls_free(out.data);
+ gnutls_free(out.data);
- if (status != 0) /* Certificate is not trusted */
- return GNUTLS_E_CERTIFICATE_ERROR;
+ if (status != 0) /* Certificate is not trusted */
+ return GNUTLS_E_CERTIFICATE_ERROR;
- /* notify gnutls to continue handshake normally */
- return 0;
+ /* notify gnutls to continue handshake normally */
+ return 0;
}
diff --git a/doc/examples/ex-client-x509.c b/doc/examples/ex-client-x509.c
index 07abcf015c..aa6d6cee1d 100644
--- a/doc/examples/ex-client-x509.c
+++ b/doc/examples/ex-client-x509.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,113 +31,115 @@ extern void tcp_close(int sd);
int main(void)
{
- int ret, sd, ii;
- gnutls_session_t session;
- char buffer[MAX_BUF + 1], *desc;
- gnutls_datum_t out;
- int type;
- unsigned status;
- gnutls_certificate_credentials_t xcred;
-
- if (gnutls_check_version("3.4.6") == NULL) {
- fprintf(stderr, "GnuTLS 3.4.6 or later is required for this example\n");
- exit(1);
- }
-
- /* for backwards compatibility with gnutls < 3.3.0 */
- CHECK(gnutls_global_init());
-
- /* X509 stuff */
- CHECK(gnutls_certificate_allocate_credentials(&xcred));
-
- /* sets the system trusted CAs for Internet PKI */
- CHECK(gnutls_certificate_set_x509_system_trust(xcred));
-
- /* If client holds a certificate it can be set using the following:
- *
- gnutls_certificate_set_x509_key_file (xcred, "cert.pem", "key.pem",
- GNUTLS_X509_FMT_PEM);
- */
-
- /* Initialize TLS session */
- CHECK(gnutls_init(&session, GNUTLS_CLIENT));
-
- CHECK(gnutls_server_name_set(session, GNUTLS_NAME_DNS, "www.example.com",
- strlen("www.example.com")));
-
- /* It is recommended to use the default priorities */
- CHECK(gnutls_set_default_priority(session));
-
- /* put the x509 credentials to the current session
- */
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred));
- gnutls_session_set_verify_cert(session, "www.example.com", 0);
-
- /* connect to the peer
- */
- sd = tcp_connect();
-
- gnutls_transport_set_int(session, sd);
- gnutls_handshake_set_timeout(session,
- GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
-
- /* Perform the TLS handshake
- */
- do {
- ret = gnutls_handshake(session);
- }
- while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
- if (ret < 0) {
- if (ret == GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR) {
- /* check certificate verification status */
- type = gnutls_certificate_type_get(session);
- status = gnutls_session_get_verify_cert_status(session);
- CHECK(gnutls_certificate_verification_status_print(status,
- type, &out, 0));
- printf("cert verify output: %s\n", out.data);
- gnutls_free(out.data);
- }
- fprintf(stderr, "*** Handshake failed: %s\n", gnutls_strerror(ret));
- goto end;
- } else {
- desc = gnutls_session_get_desc(session);
- printf("- Session info: %s\n", desc);
- gnutls_free(desc);
- }
+ int ret, sd, ii;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1], *desc;
+ gnutls_datum_t out;
+ int type;
+ unsigned status;
+ gnutls_certificate_credentials_t xcred;
+
+ if (gnutls_check_version("3.4.6") == NULL) {
+ fprintf(stderr,
+ "GnuTLS 3.4.6 or later is required for this example\n");
+ exit(1);
+ }
+
+ /* for backwards compatibility with gnutls < 3.3.0 */
+ CHECK(gnutls_global_init());
+
+ /* X509 stuff */
+ CHECK(gnutls_certificate_allocate_credentials(&xcred));
+
+ /* sets the system trusted CAs for Internet PKI */
+ CHECK(gnutls_certificate_set_x509_system_trust(xcred));
+
+ /* If client holds a certificate it can be set using the following:
+ *
+ gnutls_certificate_set_x509_key_file (xcred, "cert.pem", "key.pem",
+ GNUTLS_X509_FMT_PEM);
+ */
+
+ /* Initialize TLS session */
+ CHECK(gnutls_init(&session, GNUTLS_CLIENT));
+
+ CHECK(gnutls_server_name_set
+ (session, GNUTLS_NAME_DNS, "www.example.com",
+ strlen("www.example.com")));
+
+ /* It is recommended to use the default priorities */
+ CHECK(gnutls_set_default_priority(session));
+
+ /* put the x509 credentials to the current session
+ */
+ CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred));
+ gnutls_session_set_verify_cert(session, "www.example.com", 0);
+
+ /* connect to the peer
+ */
+ sd = tcp_connect();
+
+ gnutls_transport_set_int(session, sd);
+ gnutls_handshake_set_timeout(session, GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
+
+ /* Perform the TLS handshake
+ */
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+ if (ret < 0) {
+ if (ret == GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR) {
+ /* check certificate verification status */
+ type = gnutls_certificate_type_get(session);
+ status = gnutls_session_get_verify_cert_status(session);
+ CHECK(gnutls_certificate_verification_status_print
+ (status, type, &out, 0));
+ printf("cert verify output: %s\n", out.data);
+ gnutls_free(out.data);
+ }
+ fprintf(stderr, "*** Handshake failed: %s\n",
+ gnutls_strerror(ret));
+ goto end;
+ } else {
+ desc = gnutls_session_get_desc(session);
+ printf("- Session info: %s\n", desc);
+ gnutls_free(desc);
+ }
/* send data */
- LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
+ LOOP_CHECK(ret, gnutls_record_send(session, MSG, strlen(MSG)));
- LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
- if (ret == 0) {
- printf("- Peer has closed the TLS connection\n");
- goto end;
- } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n", gnutls_strerror(ret));
- } else if (ret < 0) {
- fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
- goto end;
- }
+ LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
+ if (ret == 0) {
+ printf("- Peer has closed the TLS connection\n");
+ goto end;
+ } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n", gnutls_strerror(ret));
+ } else if (ret < 0) {
+ fprintf(stderr, "*** Error: %s\n", gnutls_strerror(ret));
+ goto end;
+ }
- if (ret > 0) {
- printf("- Received %d bytes: ", ret);
- for (ii = 0; ii < ret; ii++) {
- fputc(buffer[ii], stdout);
- }
- fputs("\n", stdout);
- }
+ if (ret > 0) {
+ printf("- Received %d bytes: ", ret);
+ for (ii = 0; ii < ret; ii++) {
+ fputc(buffer[ii], stdout);
+ }
+ fputs("\n", stdout);
+ }
- CHECK(gnutls_bye(session, GNUTLS_SHUT_RDWR));
+ CHECK(gnutls_bye(session, GNUTLS_SHUT_RDWR));
- end:
+ end:
- tcp_close(sd);
+ tcp_close(sd);
- gnutls_deinit(session);
+ gnutls_deinit(session);
- gnutls_certificate_free_credentials(xcred);
+ gnutls_certificate_free_credentials(xcred);
- gnutls_global_deinit();
+ gnutls_global_deinit();
- return 0;
+ return 0;
}
diff --git a/doc/examples/ex-crq.c b/doc/examples/ex-crq.c
index 08f47f6354..a06e430cf0 100644
--- a/doc/examples/ex-crq.c
+++ b/doc/examples/ex-crq.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -18,74 +18,71 @@
int main(void)
{
- gnutls_x509_crq_t crq;
- gnutls_x509_privkey_t key;
- unsigned char buffer[10 * 1024];
- size_t buffer_size = sizeof(buffer);
- unsigned int bits;
+ gnutls_x509_crq_t crq;
+ gnutls_x509_privkey_t key;
+ unsigned char buffer[10 * 1024];
+ size_t buffer_size = sizeof(buffer);
+ unsigned int bits;
- gnutls_global_init();
+ gnutls_global_init();
- /* Initialize an empty certificate request, and
- * an empty private key.
- */
- gnutls_x509_crq_init(&crq);
+ /* Initialize an empty certificate request, and
+ * an empty private key.
+ */
+ gnutls_x509_crq_init(&crq);
- gnutls_x509_privkey_init(&key);
+ gnutls_x509_privkey_init(&key);
- /* Generate an RSA key of moderate security.
- */
- bits =
- gnutls_sec_param_to_pk_bits(GNUTLS_PK_RSA,
- GNUTLS_SEC_PARAM_MEDIUM);
- gnutls_x509_privkey_generate(key, GNUTLS_PK_RSA, bits, 0);
+ /* Generate an RSA key of moderate security.
+ */
+ bits =
+ gnutls_sec_param_to_pk_bits(GNUTLS_PK_RSA, GNUTLS_SEC_PARAM_MEDIUM);
+ gnutls_x509_privkey_generate(key, GNUTLS_PK_RSA, bits, 0);
- /* Add stuff to the distinguished name
- */
- gnutls_x509_crq_set_dn_by_oid(crq, GNUTLS_OID_X520_COUNTRY_NAME,
- 0, "GR", 2);
+ /* Add stuff to the distinguished name
+ */
+ gnutls_x509_crq_set_dn_by_oid(crq, GNUTLS_OID_X520_COUNTRY_NAME,
+ 0, "GR", 2);
- gnutls_x509_crq_set_dn_by_oid(crq, GNUTLS_OID_X520_COMMON_NAME,
- 0, "Nikos", strlen("Nikos"));
+ gnutls_x509_crq_set_dn_by_oid(crq, GNUTLS_OID_X520_COMMON_NAME,
+ 0, "Nikos", strlen("Nikos"));
- /* Set the request version.
- */
- gnutls_x509_crq_set_version(crq, 1);
+ /* Set the request version.
+ */
+ gnutls_x509_crq_set_version(crq, 1);
- /* Set a challenge password.
- */
- gnutls_x509_crq_set_challenge_password(crq,
- "something to remember here");
+ /* Set a challenge password.
+ */
+ gnutls_x509_crq_set_challenge_password(crq,
+ "something to remember here");
- /* Associate the request with the private key
- */
- gnutls_x509_crq_set_key(crq, key);
+ /* Associate the request with the private key
+ */
+ gnutls_x509_crq_set_key(crq, key);
- /* Self sign the certificate request.
- */
- gnutls_x509_crq_sign2(crq, key, GNUTLS_DIG_SHA1, 0);
+ /* Self sign the certificate request.
+ */
+ gnutls_x509_crq_sign2(crq, key, GNUTLS_DIG_SHA1, 0);
- /* Export the PEM encoded certificate request, and
- * display it.
- */
- gnutls_x509_crq_export(crq, GNUTLS_X509_FMT_PEM, buffer,
- &buffer_size);
+ /* Export the PEM encoded certificate request, and
+ * display it.
+ */
+ gnutls_x509_crq_export(crq, GNUTLS_X509_FMT_PEM, buffer, &buffer_size);
- printf("Certificate Request: \n%s", buffer);
+ printf("Certificate Request: \n%s", buffer);
+ /* Export the PEM encoded private key, and
+ * display it.
+ */
+ buffer_size = sizeof(buffer);
+ gnutls_x509_privkey_export(key, GNUTLS_X509_FMT_PEM, buffer,
+ &buffer_size);
- /* Export the PEM encoded private key, and
- * display it.
- */
- buffer_size = sizeof(buffer);
- gnutls_x509_privkey_export(key, GNUTLS_X509_FMT_PEM, buffer,
- &buffer_size);
+ printf("\n\nPrivate key: \n%s", buffer);
- printf("\n\nPrivate key: \n%s", buffer);
+ gnutls_x509_crq_deinit(crq);
+ gnutls_x509_privkey_deinit(key);
- gnutls_x509_crq_deinit(crq);
- gnutls_x509_privkey_deinit(key);
-
- return 0;
+ return 0;
}
diff --git a/doc/examples/ex-ocsp-client.c b/doc/examples/ex-ocsp-client.c
index d675e77862..92f053a89f 100644
--- a/doc/examples/ex-ocsp-client.c
+++ b/doc/examples/ex-ocsp-client.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -11,7 +11,7 @@
#include <gnutls/crypto.h>
#include <gnutls/ocsp.h>
#ifndef NO_LIBCURL
-#include <curl/curl.h>
+# include <curl/curl.h>
#endif
#include "read-file.h"
@@ -20,10 +20,10 @@ static gnutls_x509_crt_t load_cert(const char *cert_file);
static void _response_info(const gnutls_datum_t * data);
static void
_generate_request(gnutls_datum_t * rdata, gnutls_x509_crt_t cert,
- gnutls_x509_crt_t issuer, gnutls_datum_t *nonce);
+ gnutls_x509_crt_t issuer, gnutls_datum_t * nonce);
static int
_verify_response(gnutls_datum_t * data, gnutls_x509_crt_t cert,
- gnutls_x509_crt_t signer, gnutls_datum_t *nonce);
+ gnutls_x509_crt_t signer, gnutls_datum_t * nonce);
/* This program queries an OCSP server.
It expects three files. argv[1] containing the certificate to
@@ -36,286 +36,285 @@ _verify_response(gnutls_datum_t * data, gnutls_x509_crt_t cert,
int main(int argc, char *argv[])
{
- gnutls_datum_t ud, tmp;
- int ret;
- gnutls_datum_t req;
- gnutls_x509_crt_t cert, issuer, signer;
+ gnutls_datum_t ud, tmp;
+ int ret;
+ gnutls_datum_t req;
+ gnutls_x509_crt_t cert, issuer, signer;
#ifndef NO_LIBCURL
- CURL *handle;
- struct curl_slist *headers = NULL;
+ CURL *handle;
+ struct curl_slist *headers = NULL;
#endif
- int v, seq;
- const char *cert_file = argv[1];
- const char *issuer_file = argv[2];
- const char *signer_file = argv[3];
- char *hostname = NULL;
- unsigned char noncebuf[23];
- gnutls_datum_t nonce = { noncebuf, sizeof(noncebuf) };
-
- gnutls_global_init();
-
- if (argc > 4)
- hostname = argv[4];
-
- ret = gnutls_rnd(GNUTLS_RND_NONCE, nonce.data, nonce.size);
- if (ret < 0)
- exit(1);
-
- cert = load_cert(cert_file);
- issuer = load_cert(issuer_file);
- signer = load_cert(signer_file);
-
- if (hostname == NULL) {
-
- for (seq = 0;; seq++) {
- ret =
- gnutls_x509_crt_get_authority_info_access(cert,
- seq,
- GNUTLS_IA_OCSP_URI,
- &tmp,
- NULL);
- if (ret == GNUTLS_E_UNKNOWN_ALGORITHM)
- continue;
- if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
- fprintf(stderr,
- "No URI was found in the certificate.\n");
- exit(1);
- }
- if (ret < 0) {
- fprintf(stderr, "error: %s\n",
- gnutls_strerror(ret));
- exit(1);
- }
-
- printf("CA issuers URI: %.*s\n", tmp.size,
- tmp.data);
-
- hostname = malloc(tmp.size + 1);
- if (!hostname) {
- fprintf(stderr, "error: cannot allocate memory\n");
- exit(1);
- }
- memcpy(hostname, tmp.data, tmp.size);
- hostname[tmp.size] = 0;
-
- gnutls_free(tmp.data);
- break;
- }
-
- }
-
- /* Note that the OCSP servers hostname might be available
- * using gnutls_x509_crt_get_authority_info_access() in the issuer's
- * certificate */
-
- memset(&ud, 0, sizeof(ud));
- fprintf(stderr, "Connecting to %s\n", hostname);
-
- _generate_request(&req, cert, issuer, &nonce);
+ int v, seq;
+ const char *cert_file = argv[1];
+ const char *issuer_file = argv[2];
+ const char *signer_file = argv[3];
+ char *hostname = NULL;
+ unsigned char noncebuf[23];
+ gnutls_datum_t nonce = { noncebuf, sizeof(noncebuf) };
+
+ gnutls_global_init();
+
+ if (argc > 4)
+ hostname = argv[4];
+
+ ret = gnutls_rnd(GNUTLS_RND_NONCE, nonce.data, nonce.size);
+ if (ret < 0)
+ exit(1);
+
+ cert = load_cert(cert_file);
+ issuer = load_cert(issuer_file);
+ signer = load_cert(signer_file);
+
+ if (hostname == NULL) {
+
+ for (seq = 0;; seq++) {
+ ret =
+ gnutls_x509_crt_get_authority_info_access(cert,
+ seq,
+ GNUTLS_IA_OCSP_URI,
+ &tmp,
+ NULL);
+ if (ret == GNUTLS_E_UNKNOWN_ALGORITHM)
+ continue;
+ if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
+ fprintf(stderr,
+ "No URI was found in the certificate.\n");
+ exit(1);
+ }
+ if (ret < 0) {
+ fprintf(stderr, "error: %s\n",
+ gnutls_strerror(ret));
+ exit(1);
+ }
+
+ printf("CA issuers URI: %.*s\n", tmp.size, tmp.data);
+
+ hostname = malloc(tmp.size + 1);
+ if (!hostname) {
+ fprintf(stderr,
+ "error: cannot allocate memory\n");
+ exit(1);
+ }
+ memcpy(hostname, tmp.data, tmp.size);
+ hostname[tmp.size] = 0;
+
+ gnutls_free(tmp.data);
+ break;
+ }
+
+ }
+
+ /* Note that the OCSP servers hostname might be available
+ * using gnutls_x509_crt_get_authority_info_access() in the issuer's
+ * certificate */
+
+ memset(&ud, 0, sizeof(ud));
+ fprintf(stderr, "Connecting to %s\n", hostname);
+
+ _generate_request(&req, cert, issuer, &nonce);
#ifndef NO_LIBCURL
- curl_global_init(CURL_GLOBAL_ALL);
-
- handle = curl_easy_init();
- if (handle == NULL)
- exit(1);
-
- headers =
- curl_slist_append(headers,
- "Content-Type: application/ocsp-request");
-
- curl_easy_setopt(handle, CURLOPT_HTTPHEADER, headers);
- curl_easy_setopt(handle, CURLOPT_POSTFIELDS, (void *) req.data);
- curl_easy_setopt(handle, CURLOPT_POSTFIELDSIZE, req.size);
- curl_easy_setopt(handle, CURLOPT_URL, hostname);
- curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, get_data);
- curl_easy_setopt(handle, CURLOPT_WRITEDATA, &ud);
-
- ret = curl_easy_perform(handle);
- if (ret != 0) {
- fprintf(stderr, "curl[%d] error %d\n", __LINE__, ret);
- exit(1);
- }
-
- curl_easy_cleanup(handle);
+ curl_global_init(CURL_GLOBAL_ALL);
+
+ handle = curl_easy_init();
+ if (handle == NULL)
+ exit(1);
+
+ headers =
+ curl_slist_append(headers,
+ "Content-Type: application/ocsp-request");
+
+ curl_easy_setopt(handle, CURLOPT_HTTPHEADER, headers);
+ curl_easy_setopt(handle, CURLOPT_POSTFIELDS, (void *)req.data);
+ curl_easy_setopt(handle, CURLOPT_POSTFIELDSIZE, req.size);
+ curl_easy_setopt(handle, CURLOPT_URL, hostname);
+ curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, get_data);
+ curl_easy_setopt(handle, CURLOPT_WRITEDATA, &ud);
+
+ ret = curl_easy_perform(handle);
+ if (ret != 0) {
+ fprintf(stderr, "curl[%d] error %d\n", __LINE__, ret);
+ exit(1);
+ }
+
+ curl_easy_cleanup(handle);
#endif
- _response_info(&ud);
+ _response_info(&ud);
- v = _verify_response(&ud, cert, signer, &nonce);
+ v = _verify_response(&ud, cert, signer, &nonce);
- gnutls_x509_crt_deinit(cert);
- gnutls_x509_crt_deinit(issuer);
- gnutls_x509_crt_deinit(signer);
- gnutls_global_deinit();
+ gnutls_x509_crt_deinit(cert);
+ gnutls_x509_crt_deinit(issuer);
+ gnutls_x509_crt_deinit(signer);
+ gnutls_global_deinit();
- return v;
+ return v;
}
static void _response_info(const gnutls_datum_t * data)
{
- gnutls_ocsp_resp_t resp;
- int ret;
- gnutls_datum buf;
+ gnutls_ocsp_resp_t resp;
+ int ret;
+ gnutls_datum buf;
- ret = gnutls_ocsp_resp_init(&resp);
- if (ret < 0)
- exit(1);
+ ret = gnutls_ocsp_resp_init(&resp);
+ if (ret < 0)
+ exit(1);
- ret = gnutls_ocsp_resp_import(resp, data);
- if (ret < 0)
- exit(1);
+ ret = gnutls_ocsp_resp_import(resp, data);
+ if (ret < 0)
+ exit(1);
- ret = gnutls_ocsp_resp_print(resp, GNUTLS_OCSP_PRINT_FULL, &buf);
- if (ret != 0)
- exit(1);
+ ret = gnutls_ocsp_resp_print(resp, GNUTLS_OCSP_PRINT_FULL, &buf);
+ if (ret != 0)
+ exit(1);
- printf("%.*s", buf.size, buf.data);
- gnutls_free(buf.data);
+ printf("%.*s", buf.size, buf.data);
+ gnutls_free(buf.data);
- gnutls_ocsp_resp_deinit(resp);
+ gnutls_ocsp_resp_deinit(resp);
}
static gnutls_x509_crt_t load_cert(const char *cert_file)
{
- gnutls_x509_crt_t crt;
- int ret;
- gnutls_datum_t data;
- size_t size;
-
- ret = gnutls_x509_crt_init(&crt);
- if (ret < 0)
- exit(1);
-
- data.data = (void *) read_file(cert_file, RF_BINARY, &size);
- data.size = size;
-
- if (!data.data) {
- fprintf(stderr, "Cannot open file: %s\n", cert_file);
- exit(1);
- }
-
- ret = gnutls_x509_crt_import(crt, &data, GNUTLS_X509_FMT_PEM);
- free(data.data);
- if (ret < 0) {
- fprintf(stderr, "Cannot import certificate in %s: %s\n",
- cert_file, gnutls_strerror(ret));
- exit(1);
- }
-
- return crt;
+ gnutls_x509_crt_t crt;
+ int ret;
+ gnutls_datum_t data;
+ size_t size;
+
+ ret = gnutls_x509_crt_init(&crt);
+ if (ret < 0)
+ exit(1);
+
+ data.data = (void *)read_file(cert_file, RF_BINARY, &size);
+ data.size = size;
+
+ if (!data.data) {
+ fprintf(stderr, "Cannot open file: %s\n", cert_file);
+ exit(1);
+ }
+
+ ret = gnutls_x509_crt_import(crt, &data, GNUTLS_X509_FMT_PEM);
+ free(data.data);
+ if (ret < 0) {
+ fprintf(stderr, "Cannot import certificate in %s: %s\n",
+ cert_file, gnutls_strerror(ret));
+ exit(1);
+ }
+
+ return crt;
}
static void
_generate_request(gnutls_datum_t * rdata, gnutls_x509_crt_t cert,
- gnutls_x509_crt_t issuer, gnutls_datum_t *nonce)
+ gnutls_x509_crt_t issuer, gnutls_datum_t * nonce)
{
- gnutls_ocsp_req_t req;
- int ret;
-
- ret = gnutls_ocsp_req_init(&req);
- if (ret < 0)
- exit(1);
+ gnutls_ocsp_req_t req;
+ int ret;
- ret = gnutls_ocsp_req_add_cert(req, GNUTLS_DIG_SHA1, issuer, cert);
- if (ret < 0)
- exit(1);
+ ret = gnutls_ocsp_req_init(&req);
+ if (ret < 0)
+ exit(1);
+ ret = gnutls_ocsp_req_add_cert(req, GNUTLS_DIG_SHA1, issuer, cert);
+ if (ret < 0)
+ exit(1);
- ret = gnutls_ocsp_req_set_nonce(req, 0, nonce);
- if (ret < 0)
- exit(1);
+ ret = gnutls_ocsp_req_set_nonce(req, 0, nonce);
+ if (ret < 0)
+ exit(1);
- ret = gnutls_ocsp_req_export(req, rdata);
- if (ret != 0)
- exit(1);
+ ret = gnutls_ocsp_req_export(req, rdata);
+ if (ret != 0)
+ exit(1);
- gnutls_ocsp_req_deinit(req);
+ gnutls_ocsp_req_deinit(req);
- return;
+ return;
}
static int
_verify_response(gnutls_datum_t * data, gnutls_x509_crt_t cert,
- gnutls_x509_crt_t signer, gnutls_datum_t *nonce)
+ gnutls_x509_crt_t signer, gnutls_datum_t * nonce)
{
- gnutls_ocsp_resp_t resp;
- int ret;
- unsigned verify;
- gnutls_datum_t rnonce;
+ gnutls_ocsp_resp_t resp;
+ int ret;
+ unsigned verify;
+ gnutls_datum_t rnonce;
- ret = gnutls_ocsp_resp_init(&resp);
- if (ret < 0)
- exit(1);
+ ret = gnutls_ocsp_resp_init(&resp);
+ if (ret < 0)
+ exit(1);
- ret = gnutls_ocsp_resp_import(resp, data);
- if (ret < 0)
- exit(1);
+ ret = gnutls_ocsp_resp_import(resp, data);
+ if (ret < 0)
+ exit(1);
- ret = gnutls_ocsp_resp_check_crt(resp, 0, cert);
- if (ret < 0)
- exit(1);
+ ret = gnutls_ocsp_resp_check_crt(resp, 0, cert);
+ if (ret < 0)
+ exit(1);
ret = gnutls_ocsp_resp_get_nonce(resp, NULL, &rnonce);
if (ret < 0)
exit(1);
if (rnonce.size != nonce->size || memcmp(nonce->data, rnonce.data,
- nonce->size) != 0) {
+ nonce->size) != 0) {
exit(1);
}
- ret = gnutls_ocsp_resp_verify_direct(resp, signer, &verify, 0);
- if (ret < 0)
- exit(1);
+ ret = gnutls_ocsp_resp_verify_direct(resp, signer, &verify, 0);
+ if (ret < 0)
+ exit(1);
- printf("Verifying OCSP Response: ");
- if (verify == 0)
- printf("Verification success!\n");
- else
- printf("Verification error!\n");
+ printf("Verifying OCSP Response: ");
+ if (verify == 0)
+ printf("Verification success!\n");
+ else
+ printf("Verification error!\n");
- if (verify & GNUTLS_OCSP_VERIFY_SIGNER_NOT_FOUND)
- printf("Signer cert not found\n");
+ if (verify & GNUTLS_OCSP_VERIFY_SIGNER_NOT_FOUND)
+ printf("Signer cert not found\n");
- if (verify & GNUTLS_OCSP_VERIFY_SIGNER_KEYUSAGE_ERROR)
- printf("Signer cert keyusage error\n");
+ if (verify & GNUTLS_OCSP_VERIFY_SIGNER_KEYUSAGE_ERROR)
+ printf("Signer cert keyusage error\n");
- if (verify & GNUTLS_OCSP_VERIFY_UNTRUSTED_SIGNER)
- printf("Signer cert is not trusted\n");
+ if (verify & GNUTLS_OCSP_VERIFY_UNTRUSTED_SIGNER)
+ printf("Signer cert is not trusted\n");
- if (verify & GNUTLS_OCSP_VERIFY_INSECURE_ALGORITHM)
- printf("Insecure algorithm\n");
+ if (verify & GNUTLS_OCSP_VERIFY_INSECURE_ALGORITHM)
+ printf("Insecure algorithm\n");
- if (verify & GNUTLS_OCSP_VERIFY_SIGNATURE_FAILURE)
- printf("Signature failure\n");
+ if (verify & GNUTLS_OCSP_VERIFY_SIGNATURE_FAILURE)
+ printf("Signature failure\n");
- if (verify & GNUTLS_OCSP_VERIFY_CERT_NOT_ACTIVATED)
- printf("Signer cert not yet activated\n");
+ if (verify & GNUTLS_OCSP_VERIFY_CERT_NOT_ACTIVATED)
+ printf("Signer cert not yet activated\n");
- if (verify & GNUTLS_OCSP_VERIFY_CERT_EXPIRED)
- printf("Signer cert expired\n");
+ if (verify & GNUTLS_OCSP_VERIFY_CERT_EXPIRED)
+ printf("Signer cert expired\n");
- gnutls_free(rnonce.data);
- gnutls_ocsp_resp_deinit(resp);
+ gnutls_free(rnonce.data);
+ gnutls_ocsp_resp_deinit(resp);
- return verify;
+ return verify;
}
size_t get_data(void *buffer, size_t size, size_t nmemb, void *userp)
{
- gnutls_datum_t *ud = userp;
+ gnutls_datum_t *ud = userp;
- size *= nmemb;
+ size *= nmemb;
- ud->data = realloc(ud->data, size + ud->size);
- if (ud->data == NULL) {
- fprintf(stderr, "Not enough memory for the request\n");
- exit(1);
- }
+ ud->data = realloc(ud->data, size + ud->size);
+ if (ud->data == NULL) {
+ fprintf(stderr, "Not enough memory for the request\n");
+ exit(1);
+ }
- memcpy(&ud->data[ud->size], buffer, size);
- ud->size += size;
+ memcpy(&ud->data[ud->size], buffer, size);
+ ud->size += size;
- return size;
+ return size;
}
diff --git a/doc/examples/ex-pkcs11-list.c b/doc/examples/ex-pkcs11-list.c
index 7f1d4595a6..3f9c370584 100644
--- a/doc/examples/ex-pkcs11-list.c
+++ b/doc/examples/ex-pkcs11-list.c
@@ -10,37 +10,37 @@
int main(int argc, char **argv)
{
- gnutls_pkcs11_obj_t *obj_list;
- gnutls_x509_crt_t xcrt;
- unsigned int obj_list_size = 0;
- gnutls_datum_t cinfo;
- int ret;
- unsigned int i;
+ gnutls_pkcs11_obj_t *obj_list;
+ gnutls_x509_crt_t xcrt;
+ unsigned int obj_list_size = 0;
+ gnutls_datum_t cinfo;
+ int ret;
+ unsigned int i;
- ret = gnutls_pkcs11_obj_list_import_url4(&obj_list, &obj_list_size, URL,
- GNUTLS_PKCS11_OBJ_FLAG_CRT|
- GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY);
- if (ret < 0)
- return -1;
+ ret = gnutls_pkcs11_obj_list_import_url4(&obj_list, &obj_list_size, URL,
+ GNUTLS_PKCS11_OBJ_FLAG_CRT |
+ GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY);
+ if (ret < 0)
+ return -1;
- /* now all certificates are in obj_list */
- for (i = 0; i < obj_list_size; i++) {
+ /* now all certificates are in obj_list */
+ for (i = 0; i < obj_list_size; i++) {
- gnutls_x509_crt_init(&xcrt);
+ gnutls_x509_crt_init(&xcrt);
- gnutls_x509_crt_import_pkcs11(xcrt, obj_list[i]);
+ gnutls_x509_crt_import_pkcs11(xcrt, obj_list[i]);
- gnutls_x509_crt_print(xcrt, GNUTLS_CRT_PRINT_FULL, &cinfo);
+ gnutls_x509_crt_print(xcrt, GNUTLS_CRT_PRINT_FULL, &cinfo);
- fprintf(stdout, "cert[%d]:\n %s\n\n", i, cinfo.data);
+ fprintf(stdout, "cert[%d]:\n %s\n\n", i, cinfo.data);
- gnutls_free(cinfo.data);
- gnutls_x509_crt_deinit(xcrt);
- }
+ gnutls_free(cinfo.data);
+ gnutls_x509_crt_deinit(xcrt);
+ }
- for (i = 0; i < obj_list_size; i++)
- gnutls_pkcs11_obj_deinit(obj_list[i]);
+ for (i = 0; i < obj_list_size; i++)
+ gnutls_pkcs11_obj_deinit(obj_list[i]);
gnutls_free(obj_list);
- return 0;
+ return 0;
}
diff --git a/doc/examples/ex-pkcs12.c b/doc/examples/ex-pkcs12.c
index 0e2b64ee1c..a77c697a37 100644
--- a/doc/examples/ex-pkcs12.c
+++ b/doc/examples/ex-pkcs12.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -21,112 +21,108 @@
*/
int
write_pkcs12(const gnutls_datum_t * cert,
- const gnutls_datum_t * pkcs8_key, const char *password)
+ const gnutls_datum_t * pkcs8_key, const char *password)
{
- gnutls_pkcs12_t pkcs12;
- int ret, bag_index;
- gnutls_pkcs12_bag_t bag, key_bag;
- char pkcs12_struct[10 * 1024];
- size_t pkcs12_struct_size;
- FILE *fp;
-
- /* A good idea might be to use gnutls_x509_privkey_get_key_id()
- * to obtain a unique ID.
- */
- gnutls_datum_t key_id = { (void *) "\x00\x00\x07", 3 };
-
- gnutls_global_init();
-
- /* Firstly we create two helper bags, which hold the certificate,
- * and the (encrypted) key.
- */
-
- gnutls_pkcs12_bag_init(&bag);
- gnutls_pkcs12_bag_init(&key_bag);
-
- ret =
- gnutls_pkcs12_bag_set_data(bag, GNUTLS_BAG_CERTIFICATE, cert);
- if (ret < 0) {
- fprintf(stderr, "ret: %s\n", gnutls_strerror(ret));
- return 1;
- }
-
- /* ret now holds the bag's index.
- */
- bag_index = ret;
-
- /* Associate a friendly name with the given certificate. Used
- * by browsers.
- */
- gnutls_pkcs12_bag_set_friendly_name(bag, bag_index, "My name");
-
- /* Associate the certificate with the key using a unique key
- * ID.
- */
- gnutls_pkcs12_bag_set_key_id(bag, bag_index, &key_id);
-
- /* use weak encryption for the certificate.
- */
- gnutls_pkcs12_bag_encrypt(bag, password,
- GNUTLS_PKCS_USE_PKCS12_RC2_40);
-
- /* Now the key.
- */
-
- ret = gnutls_pkcs12_bag_set_data(key_bag,
- GNUTLS_BAG_PKCS8_ENCRYPTED_KEY,
- pkcs8_key);
- if (ret < 0) {
- fprintf(stderr, "ret: %s\n", gnutls_strerror(ret));
- return 1;
- }
-
- /* Note that since the PKCS #8 key is already encrypted we don't
- * bother encrypting that bag.
- */
- bag_index = ret;
-
- gnutls_pkcs12_bag_set_friendly_name(key_bag, bag_index, "My name");
-
- gnutls_pkcs12_bag_set_key_id(key_bag, bag_index, &key_id);
-
-
- /* The bags were filled. Now create the PKCS #12 structure.
- */
- gnutls_pkcs12_init(&pkcs12);
-
- /* Insert the two bags in the PKCS #12 structure.
- */
-
- gnutls_pkcs12_set_bag(pkcs12, bag);
- gnutls_pkcs12_set_bag(pkcs12, key_bag);
-
-
- /* Generate a message authentication code for the PKCS #12
- * structure.
- */
- gnutls_pkcs12_generate_mac(pkcs12, password);
-
- pkcs12_struct_size = sizeof(pkcs12_struct);
- ret =
- gnutls_pkcs12_export(pkcs12, GNUTLS_X509_FMT_DER,
- pkcs12_struct, &pkcs12_struct_size);
- if (ret < 0) {
- fprintf(stderr, "ret: %s\n", gnutls_strerror(ret));
- return 1;
- }
-
- fp = fopen(OUTFILE, "w");
- if (fp == NULL) {
- fprintf(stderr, "cannot open file\n");
- return 1;
- }
- fwrite(pkcs12_struct, 1, pkcs12_struct_size, fp);
- fclose(fp);
-
- gnutls_pkcs12_bag_deinit(bag);
- gnutls_pkcs12_bag_deinit(key_bag);
- gnutls_pkcs12_deinit(pkcs12);
-
- return 0;
+ gnutls_pkcs12_t pkcs12;
+ int ret, bag_index;
+ gnutls_pkcs12_bag_t bag, key_bag;
+ char pkcs12_struct[10 * 1024];
+ size_t pkcs12_struct_size;
+ FILE *fp;
+
+ /* A good idea might be to use gnutls_x509_privkey_get_key_id()
+ * to obtain a unique ID.
+ */
+ gnutls_datum_t key_id = { (void *)"\x00\x00\x07", 3 };
+
+ gnutls_global_init();
+
+ /* Firstly we create two helper bags, which hold the certificate,
+ * and the (encrypted) key.
+ */
+
+ gnutls_pkcs12_bag_init(&bag);
+ gnutls_pkcs12_bag_init(&key_bag);
+
+ ret = gnutls_pkcs12_bag_set_data(bag, GNUTLS_BAG_CERTIFICATE, cert);
+ if (ret < 0) {
+ fprintf(stderr, "ret: %s\n", gnutls_strerror(ret));
+ return 1;
+ }
+
+ /* ret now holds the bag's index.
+ */
+ bag_index = ret;
+
+ /* Associate a friendly name with the given certificate. Used
+ * by browsers.
+ */
+ gnutls_pkcs12_bag_set_friendly_name(bag, bag_index, "My name");
+
+ /* Associate the certificate with the key using a unique key
+ * ID.
+ */
+ gnutls_pkcs12_bag_set_key_id(bag, bag_index, &key_id);
+
+ /* use weak encryption for the certificate.
+ */
+ gnutls_pkcs12_bag_encrypt(bag, password, GNUTLS_PKCS_USE_PKCS12_RC2_40);
+
+ /* Now the key.
+ */
+
+ ret = gnutls_pkcs12_bag_set_data(key_bag,
+ GNUTLS_BAG_PKCS8_ENCRYPTED_KEY,
+ pkcs8_key);
+ if (ret < 0) {
+ fprintf(stderr, "ret: %s\n", gnutls_strerror(ret));
+ return 1;
+ }
+
+ /* Note that since the PKCS #8 key is already encrypted we don't
+ * bother encrypting that bag.
+ */
+ bag_index = ret;
+
+ gnutls_pkcs12_bag_set_friendly_name(key_bag, bag_index, "My name");
+
+ gnutls_pkcs12_bag_set_key_id(key_bag, bag_index, &key_id);
+
+ /* The bags were filled. Now create the PKCS #12 structure.
+ */
+ gnutls_pkcs12_init(&pkcs12);
+
+ /* Insert the two bags in the PKCS #12 structure.
+ */
+
+ gnutls_pkcs12_set_bag(pkcs12, bag);
+ gnutls_pkcs12_set_bag(pkcs12, key_bag);
+
+ /* Generate a message authentication code for the PKCS #12
+ * structure.
+ */
+ gnutls_pkcs12_generate_mac(pkcs12, password);
+
+ pkcs12_struct_size = sizeof(pkcs12_struct);
+ ret =
+ gnutls_pkcs12_export(pkcs12, GNUTLS_X509_FMT_DER,
+ pkcs12_struct, &pkcs12_struct_size);
+ if (ret < 0) {
+ fprintf(stderr, "ret: %s\n", gnutls_strerror(ret));
+ return 1;
+ }
+
+ fp = fopen(OUTFILE, "w");
+ if (fp == NULL) {
+ fprintf(stderr, "cannot open file\n");
+ return 1;
+ }
+ fwrite(pkcs12_struct, 1, pkcs12_struct_size, fp);
+ fclose(fp);
+
+ gnutls_pkcs12_bag_deinit(bag);
+ gnutls_pkcs12_bag_deinit(key_bag);
+ gnutls_pkcs12_deinit(pkcs12);
+
+ return 0;
}
diff --git a/doc/examples/ex-serv-anon.c b/doc/examples/ex-serv-anon.c
index 51e3be4df2..618de8a546 100644
--- a/doc/examples/ex-serv-anon.c
+++ b/doc/examples/ex-serv-anon.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -18,129 +18,126 @@
/* This is a sample TLS 1.0 echo server, for anonymous authentication only.
*/
-
#define SOCKET_ERR(err,s) if(err==-1) {perror(s);return(1);}
#define MAX_BUF 1024
-#define PORT 5556 /* listen to 5556 port */
+#define PORT 5556 /* listen to 5556 port */
int main(void)
{
- int err, listen_sd;
- int sd, ret;
- struct sockaddr_in sa_serv;
- struct sockaddr_in sa_cli;
- socklen_t client_len;
- char topbuf[512];
- gnutls_session_t session;
- gnutls_anon_server_credentials_t anoncred;
- char buffer[MAX_BUF + 1];
- int optval = 1;
-
- if (gnutls_check_version("3.1.4") == NULL) {
- fprintf(stderr, "GnuTLS 3.1.4 or later is required for this example\n");
- exit(1);
- }
-
- /* for backwards compatibility with gnutls < 3.3.0 */
- gnutls_global_init();
-
- gnutls_anon_allocate_server_credentials(&anoncred);
-
- gnutls_anon_set_server_known_dh_params(anoncred, GNUTLS_SEC_PARAM_MEDIUM);
-
- /* Socket operations
- */
- listen_sd = socket(AF_INET, SOCK_STREAM, 0);
- SOCKET_ERR(listen_sd, "socket");
-
- memset(&sa_serv, '\0', sizeof(sa_serv));
- sa_serv.sin_family = AF_INET;
- sa_serv.sin_addr.s_addr = INADDR_ANY;
- sa_serv.sin_port = htons(PORT); /* Server Port number */
-
- setsockopt(listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *) &optval,
- sizeof(int));
-
- err =
- bind(listen_sd, (struct sockaddr *) &sa_serv, sizeof(sa_serv));
- SOCKET_ERR(err, "bind");
- err = listen(listen_sd, 1024);
- SOCKET_ERR(err, "listen");
-
- printf("Server ready. Listening to port '%d'.\n\n", PORT);
-
- client_len = sizeof(sa_cli);
- for (;;) {
- gnutls_init(&session, GNUTLS_SERVER);
- gnutls_priority_set_direct(session,
- "NORMAL:+ANON-ECDH:+ANON-DH",
- NULL);
- gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
-
- sd = accept(listen_sd, (struct sockaddr *) &sa_cli,
- &client_len);
-
- printf("- connection from %s, port %d\n",
- inet_ntop(AF_INET, &sa_cli.sin_addr, topbuf,
- sizeof(topbuf)), ntohs(sa_cli.sin_port));
-
- gnutls_transport_set_int(session, sd);
-
- do {
- ret = gnutls_handshake(session);
- }
- while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
- if (ret < 0) {
- close(sd);
- gnutls_deinit(session);
- fprintf(stderr,
- "*** Handshake has failed (%s)\n\n",
- gnutls_strerror(ret));
- continue;
- }
- printf("- Handshake was completed\n");
-
- /* see the Getting peer's information example */
- /* print_info(session); */
-
- for (;;) {
- ret = gnutls_record_recv(session, buffer, MAX_BUF);
-
- if (ret == 0) {
- printf
- ("\n- Peer has closed the GnuTLS connection\n");
- break;
- } else if (ret < 0
- && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n",
- gnutls_strerror(ret));
- } else if (ret < 0) {
- fprintf(stderr, "\n*** Received corrupted "
- "data(%d). Closing the connection.\n\n",
- ret);
- break;
- } else if (ret > 0) {
- /* echo data back to the client
- */
- gnutls_record_send(session, buffer, ret);
- }
- }
- printf("\n");
- /* do not wait for the peer to close the connection.
- */
- gnutls_bye(session, GNUTLS_SHUT_WR);
-
- close(sd);
- gnutls_deinit(session);
-
- }
- close(listen_sd);
-
- gnutls_anon_free_server_credentials(anoncred);
-
- gnutls_global_deinit();
-
- return 0;
+ int err, listen_sd;
+ int sd, ret;
+ struct sockaddr_in sa_serv;
+ struct sockaddr_in sa_cli;
+ socklen_t client_len;
+ char topbuf[512];
+ gnutls_session_t session;
+ gnutls_anon_server_credentials_t anoncred;
+ char buffer[MAX_BUF + 1];
+ int optval = 1;
+
+ if (gnutls_check_version("3.1.4") == NULL) {
+ fprintf(stderr,
+ "GnuTLS 3.1.4 or later is required for this example\n");
+ exit(1);
+ }
+
+ /* for backwards compatibility with gnutls < 3.3.0 */
+ gnutls_global_init();
+
+ gnutls_anon_allocate_server_credentials(&anoncred);
+
+ gnutls_anon_set_server_known_dh_params(anoncred,
+ GNUTLS_SEC_PARAM_MEDIUM);
+
+ /* Socket operations
+ */
+ listen_sd = socket(AF_INET, SOCK_STREAM, 0);
+ SOCKET_ERR(listen_sd, "socket");
+
+ memset(&sa_serv, '\0', sizeof(sa_serv));
+ sa_serv.sin_family = AF_INET;
+ sa_serv.sin_addr.s_addr = INADDR_ANY;
+ sa_serv.sin_port = htons(PORT); /* Server Port number */
+
+ setsockopt(listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *)&optval,
+ sizeof(int));
+
+ err = bind(listen_sd, (struct sockaddr *)&sa_serv, sizeof(sa_serv));
+ SOCKET_ERR(err, "bind");
+ err = listen(listen_sd, 1024);
+ SOCKET_ERR(err, "listen");
+
+ printf("Server ready. Listening to port '%d'.\n\n", PORT);
+
+ client_len = sizeof(sa_cli);
+ for (;;) {
+ gnutls_init(&session, GNUTLS_SERVER);
+ gnutls_priority_set_direct(session,
+ "NORMAL:+ANON-ECDH:+ANON-DH", NULL);
+ gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
+
+ sd = accept(listen_sd, (struct sockaddr *)&sa_cli, &client_len);
+
+ printf("- connection from %s, port %d\n",
+ inet_ntop(AF_INET, &sa_cli.sin_addr, topbuf,
+ sizeof(topbuf)), ntohs(sa_cli.sin_port));
+
+ gnutls_transport_set_int(session, sd);
+
+ do {
+ ret = gnutls_handshake(session);
+ }
+ while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
+
+ if (ret < 0) {
+ close(sd);
+ gnutls_deinit(session);
+ fprintf(stderr,
+ "*** Handshake has failed (%s)\n\n",
+ gnutls_strerror(ret));
+ continue;
+ }
+ printf("- Handshake was completed\n");
+
+ /* see the Getting peer's information example */
+ /* print_info(session); */
+
+ for (;;) {
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+
+ if (ret == 0) {
+ printf
+ ("\n- Peer has closed the GnuTLS connection\n");
+ break;
+ } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n",
+ gnutls_strerror(ret));
+ } else if (ret < 0) {
+ fprintf(stderr, "\n*** Received corrupted "
+ "data(%d). Closing the connection.\n\n",
+ ret);
+ break;
+ } else if (ret > 0) {
+ /* echo data back to the client
+ */
+ gnutls_record_send(session, buffer, ret);
+ }
+ }
+ printf("\n");
+ /* do not wait for the peer to close the connection.
+ */
+ gnutls_bye(session, GNUTLS_SHUT_WR);
+
+ close(sd);
+ gnutls_deinit(session);
+
+ }
+ close(listen_sd);
+
+ gnutls_anon_free_server_credentials(anoncred);
+
+ gnutls_global_deinit();
+
+ return 0;
}
diff --git a/doc/examples/ex-serv-dtls.c b/doc/examples/ex-serv-dtls.c
index 7374d96b45..73811f49d6 100644
--- a/doc/examples/ex-serv-dtls.c
+++ b/doc/examples/ex-serv-dtls.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,19 +36,18 @@
#define PORT 5557
typedef struct {
- gnutls_session_t session;
- int fd;
- struct sockaddr *cli_addr;
- socklen_t cli_addr_size;
+ gnutls_session_t session;
+ int fd;
+ struct sockaddr *cli_addr;
+ socklen_t cli_addr_size;
} priv_data_st;
static int pull_timeout_func(gnutls_transport_ptr_t ptr, unsigned int ms);
static ssize_t push_func(gnutls_transport_ptr_t p, const void *data,
- size_t size);
-static ssize_t pull_func(gnutls_transport_ptr_t p, void *data,
- size_t size);
+ size_t size);
+static ssize_t pull_func(gnutls_transport_ptr_t p, void *data, size_t size);
static const char *human_addr(const struct sockaddr *sa, socklen_t salen,
- char *buf, size_t buflen);
+ char *buf, size_t buflen);
static int wait_for_connection(int fd);
/* Use global credentials and parameters to simplify
@@ -58,360 +57,356 @@ static gnutls_priority_t priority_cache;
int main(void)
{
- int listen_sd;
- int sock, ret;
- struct sockaddr_in sa_serv;
- struct sockaddr_in cli_addr;
- socklen_t cli_addr_size;
- gnutls_session_t session;
- char buffer[MAX_BUFFER];
- priv_data_st priv;
- gnutls_datum_t cookie_key;
- gnutls_dtls_prestate_st prestate;
- int mtu = 1400;
- unsigned char sequence[8];
-
- /* this must be called once in the program
- */
- gnutls_global_init();
-
- gnutls_certificate_allocate_credentials(&x509_cred);
- gnutls_certificate_set_x509_trust_file(x509_cred, CAFILE,
- GNUTLS_X509_FMT_PEM);
-
- gnutls_certificate_set_x509_crl_file(x509_cred, CRLFILE,
- GNUTLS_X509_FMT_PEM);
-
- ret =
- gnutls_certificate_set_x509_key_file(x509_cred, CERTFILE,
- KEYFILE,
- GNUTLS_X509_FMT_PEM);
- if (ret < 0) {
- printf("No certificate or key were found\n");
- exit(1);
- }
-
- gnutls_certificate_set_known_dh_params(x509_cred, GNUTLS_SEC_PARAM_MEDIUM);
-
- /* pre-3.6.3 equivalent:
- * gnutls_priority_init(&priority_cache,
- * "NORMAL:-VERS-TLS-ALL:+VERS-DTLS1.0:%SERVER_PRECEDENCE",
- * NULL);
- */
- gnutls_priority_init2(&priority_cache,
- "%SERVER_PRECEDENCE",
- NULL, GNUTLS_PRIORITY_INIT_DEF_APPEND);
-
- gnutls_key_generate(&cookie_key, GNUTLS_COOKIE_KEY_SIZE);
-
- /* Socket operations
- */
- listen_sd = socket(AF_INET, SOCK_DGRAM, 0);
-
- memset(&sa_serv, '\0', sizeof(sa_serv));
- sa_serv.sin_family = AF_INET;
- sa_serv.sin_addr.s_addr = INADDR_ANY;
- sa_serv.sin_port = htons(PORT);
-
- { /* DTLS requires the IP don't fragment (DF) bit to be set */
+ int listen_sd;
+ int sock, ret;
+ struct sockaddr_in sa_serv;
+ struct sockaddr_in cli_addr;
+ socklen_t cli_addr_size;
+ gnutls_session_t session;
+ char buffer[MAX_BUFFER];
+ priv_data_st priv;
+ gnutls_datum_t cookie_key;
+ gnutls_dtls_prestate_st prestate;
+ int mtu = 1400;
+ unsigned char sequence[8];
+
+ /* this must be called once in the program
+ */
+ gnutls_global_init();
+
+ gnutls_certificate_allocate_credentials(&x509_cred);
+ gnutls_certificate_set_x509_trust_file(x509_cred, CAFILE,
+ GNUTLS_X509_FMT_PEM);
+
+ gnutls_certificate_set_x509_crl_file(x509_cred, CRLFILE,
+ GNUTLS_X509_FMT_PEM);
+
+ ret =
+ gnutls_certificate_set_x509_key_file(x509_cred, CERTFILE,
+ KEYFILE, GNUTLS_X509_FMT_PEM);
+ if (ret < 0) {
+ printf("No certificate or key were found\n");
+ exit(1);
+ }
+
+ gnutls_certificate_set_known_dh_params(x509_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
+
+ /* pre-3.6.3 equivalent:
+ * gnutls_priority_init(&priority_cache,
+ * "NORMAL:-VERS-TLS-ALL:+VERS-DTLS1.0:%SERVER_PRECEDENCE",
+ * NULL);
+ */
+ gnutls_priority_init2(&priority_cache,
+ "%SERVER_PRECEDENCE",
+ NULL, GNUTLS_PRIORITY_INIT_DEF_APPEND);
+
+ gnutls_key_generate(&cookie_key, GNUTLS_COOKIE_KEY_SIZE);
+
+ /* Socket operations
+ */
+ listen_sd = socket(AF_INET, SOCK_DGRAM, 0);
+
+ memset(&sa_serv, '\0', sizeof(sa_serv));
+ sa_serv.sin_family = AF_INET;
+ sa_serv.sin_addr.s_addr = INADDR_ANY;
+ sa_serv.sin_port = htons(PORT);
+
+ { /* DTLS requires the IP don't fragment (DF) bit to be set */
#if defined(IP_DONTFRAG)
- int optval = 1;
- setsockopt(listen_sd, IPPROTO_IP, IP_DONTFRAG,
- (const void *) &optval, sizeof(optval));
+ int optval = 1;
+ setsockopt(listen_sd, IPPROTO_IP, IP_DONTFRAG,
+ (const void *)&optval, sizeof(optval));
#elif defined(IP_MTU_DISCOVER)
- int optval = IP_PMTUDISC_DO;
- setsockopt(listen_sd, IPPROTO_IP, IP_MTU_DISCOVER,
- (const void *) &optval, sizeof(optval));
+ int optval = IP_PMTUDISC_DO;
+ setsockopt(listen_sd, IPPROTO_IP, IP_MTU_DISCOVER,
+ (const void *)&optval, sizeof(optval));
#endif
- }
-
- bind(listen_sd, (struct sockaddr *) &sa_serv, sizeof(sa_serv));
-
- printf("UDP server ready. Listening to port '%d'.\n\n", PORT);
-
- for (;;) {
- printf("Waiting for connection...\n");
- sock = wait_for_connection(listen_sd);
- if (sock < 0)
- continue;
-
- cli_addr_size = sizeof(cli_addr);
- ret = recvfrom(sock, buffer, sizeof(buffer), MSG_PEEK,
- (struct sockaddr *) &cli_addr,
- &cli_addr_size);
- if (ret > 0) {
- memset(&prestate, 0, sizeof(prestate));
- ret =
- gnutls_dtls_cookie_verify(&cookie_key,
- &cli_addr,
- sizeof(cli_addr),
- buffer, ret,
- &prestate);
- if (ret < 0) { /* cookie not valid */
- priv_data_st s;
-
- memset(&s, 0, sizeof(s));
- s.fd = sock;
- s.cli_addr = (void *) &cli_addr;
- s.cli_addr_size = sizeof(cli_addr);
-
- printf
- ("Sending hello verify request to %s\n",
- human_addr((struct sockaddr *)
- &cli_addr,
- sizeof(cli_addr), buffer,
- sizeof(buffer)));
-
- gnutls_dtls_cookie_send(&cookie_key,
- &cli_addr,
- sizeof(cli_addr),
- &prestate,
- (gnutls_transport_ptr_t)
- & s, push_func);
-
- /* discard peeked data */
- recvfrom(sock, buffer, sizeof(buffer), 0,
- (struct sockaddr *) &cli_addr,
- &cli_addr_size);
- usleep(100);
- continue;
- }
- printf("Accepted connection from %s\n",
- human_addr((struct sockaddr *)
- &cli_addr, sizeof(cli_addr),
- buffer, sizeof(buffer)));
- } else
- continue;
-
- gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
- gnutls_priority_set(session, priority_cache);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- x509_cred);
-
- gnutls_dtls_prestate_set(session, &prestate);
- gnutls_dtls_set_mtu(session, mtu);
-
- priv.session = session;
- priv.fd = sock;
- priv.cli_addr = (struct sockaddr *) &cli_addr;
- priv.cli_addr_size = sizeof(cli_addr);
-
- gnutls_transport_set_ptr(session, &priv);
- gnutls_transport_set_push_function(session, push_func);
- gnutls_transport_set_pull_function(session, pull_func);
- gnutls_transport_set_pull_timeout_function(session,
- pull_timeout_func);
-
- LOOP_CHECK(ret, gnutls_handshake(session));
- /* Note that DTLS may also receive GNUTLS_E_LARGE_PACKET.
- * In that case the MTU should be adjusted.
- */
-
- if (ret < 0) {
- fprintf(stderr, "Error in handshake(): %s\n",
- gnutls_strerror(ret));
- gnutls_deinit(session);
- continue;
- }
-
- printf("- Handshake was completed\n");
-
- for (;;) {
- LOOP_CHECK(ret,
- gnutls_record_recv_seq(session, buffer,
- MAX_BUFFER,
- sequence));
-
- if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n",
- gnutls_strerror(ret));
- continue;
- } else if (ret < 0) {
- fprintf(stderr, "Error in recv(): %s\n",
- gnutls_strerror(ret));
- break;
- }
-
- if (ret == 0) {
- printf("EOF\n\n");
- break;
- }
-
- buffer[ret] = 0;
- printf
- ("received[%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x]: %s\n",
- sequence[0], sequence[1], sequence[2],
- sequence[3], sequence[4], sequence[5],
- sequence[6], sequence[7], buffer);
-
- /* reply back */
- LOOP_CHECK(ret, gnutls_record_send(session, buffer, ret));
- if (ret < 0) {
- fprintf(stderr, "Error in send(): %s\n",
- gnutls_strerror(ret));
- break;
- }
- }
-
- LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_WR));
- gnutls_deinit(session);
-
- }
- close(listen_sd);
-
- gnutls_certificate_free_credentials(x509_cred);
- gnutls_priority_deinit(priority_cache);
-
- gnutls_global_deinit();
-
- return 0;
+ }
+
+ bind(listen_sd, (struct sockaddr *)&sa_serv, sizeof(sa_serv));
+
+ printf("UDP server ready. Listening to port '%d'.\n\n", PORT);
+
+ for (;;) {
+ printf("Waiting for connection...\n");
+ sock = wait_for_connection(listen_sd);
+ if (sock < 0)
+ continue;
+
+ cli_addr_size = sizeof(cli_addr);
+ ret = recvfrom(sock, buffer, sizeof(buffer), MSG_PEEK,
+ (struct sockaddr *)&cli_addr, &cli_addr_size);
+ if (ret > 0) {
+ memset(&prestate, 0, sizeof(prestate));
+ ret =
+ gnutls_dtls_cookie_verify(&cookie_key,
+ &cli_addr,
+ sizeof(cli_addr),
+ buffer, ret, &prestate);
+ if (ret < 0) { /* cookie not valid */
+ priv_data_st s;
+
+ memset(&s, 0, sizeof(s));
+ s.fd = sock;
+ s.cli_addr = (void *)&cli_addr;
+ s.cli_addr_size = sizeof(cli_addr);
+
+ printf
+ ("Sending hello verify request to %s\n",
+ human_addr((struct sockaddr *)
+ &cli_addr,
+ sizeof(cli_addr), buffer,
+ sizeof(buffer)));
+
+ gnutls_dtls_cookie_send(&cookie_key,
+ &cli_addr,
+ sizeof(cli_addr),
+ &prestate,
+ (gnutls_transport_ptr_t)
+ & s, push_func);
+
+ /* discard peeked data */
+ recvfrom(sock, buffer, sizeof(buffer), 0,
+ (struct sockaddr *)&cli_addr,
+ &cli_addr_size);
+ usleep(100);
+ continue;
+ }
+ printf("Accepted connection from %s\n",
+ human_addr((struct sockaddr *)
+ &cli_addr, sizeof(cli_addr),
+ buffer, sizeof(buffer)));
+ } else
+ continue;
+
+ gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
+ gnutls_priority_set(session, priority_cache);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ x509_cred);
+
+ gnutls_dtls_prestate_set(session, &prestate);
+ gnutls_dtls_set_mtu(session, mtu);
+
+ priv.session = session;
+ priv.fd = sock;
+ priv.cli_addr = (struct sockaddr *)&cli_addr;
+ priv.cli_addr_size = sizeof(cli_addr);
+
+ gnutls_transport_set_ptr(session, &priv);
+ gnutls_transport_set_push_function(session, push_func);
+ gnutls_transport_set_pull_function(session, pull_func);
+ gnutls_transport_set_pull_timeout_function(session,
+ pull_timeout_func);
+
+ LOOP_CHECK(ret, gnutls_handshake(session));
+ /* Note that DTLS may also receive GNUTLS_E_LARGE_PACKET.
+ * In that case the MTU should be adjusted.
+ */
+
+ if (ret < 0) {
+ fprintf(stderr, "Error in handshake(): %s\n",
+ gnutls_strerror(ret));
+ gnutls_deinit(session);
+ continue;
+ }
+
+ printf("- Handshake was completed\n");
+
+ for (;;) {
+ LOOP_CHECK(ret,
+ gnutls_record_recv_seq(session, buffer,
+ MAX_BUFFER,
+ sequence));
+
+ if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n",
+ gnutls_strerror(ret));
+ continue;
+ } else if (ret < 0) {
+ fprintf(stderr, "Error in recv(): %s\n",
+ gnutls_strerror(ret));
+ break;
+ }
+
+ if (ret == 0) {
+ printf("EOF\n\n");
+ break;
+ }
+
+ buffer[ret] = 0;
+ printf
+ ("received[%.2x%.2x%.2x%.2x%.2x%.2x%.2x%.2x]: %s\n",
+ sequence[0], sequence[1], sequence[2],
+ sequence[3], sequence[4], sequence[5],
+ sequence[6], sequence[7], buffer);
+
+ /* reply back */
+ LOOP_CHECK(ret,
+ gnutls_record_send(session, buffer, ret));
+ if (ret < 0) {
+ fprintf(stderr, "Error in send(): %s\n",
+ gnutls_strerror(ret));
+ break;
+ }
+ }
+
+ LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_WR));
+ gnutls_deinit(session);
+
+ }
+ close(listen_sd);
+
+ gnutls_certificate_free_credentials(x509_cred);
+ gnutls_priority_deinit(priority_cache);
+
+ gnutls_global_deinit();
+
+ return 0;
}
static int wait_for_connection(int fd)
{
- fd_set rd, wr;
- int n;
+ fd_set rd, wr;
+ int n;
- FD_ZERO(&rd);
- FD_ZERO(&wr);
+ FD_ZERO(&rd);
+ FD_ZERO(&wr);
- FD_SET(fd, &rd);
+ FD_SET(fd, &rd);
- /* waiting part */
- n = select(fd + 1, &rd, &wr, NULL, NULL);
- if (n == -1 && errno == EINTR)
- return -1;
- if (n < 0) {
- perror("select()");
- exit(1);
- }
+ /* waiting part */
+ n = select(fd + 1, &rd, &wr, NULL, NULL);
+ if (n == -1 && errno == EINTR)
+ return -1;
+ if (n < 0) {
+ perror("select()");
+ exit(1);
+ }
- return fd;
+ return fd;
}
/* Wait for data to be received within a timeout period in milliseconds
*/
static int pull_timeout_func(gnutls_transport_ptr_t ptr, unsigned int ms)
{
- fd_set rfds;
- struct timeval tv;
- priv_data_st *priv = ptr;
- struct sockaddr_in cli_addr;
- socklen_t cli_addr_size;
- int ret;
- char c;
-
- FD_ZERO(&rfds);
- FD_SET(priv->fd, &rfds);
-
- tv.tv_sec = ms / 1000;
- tv.tv_usec = (ms % 1000) * 1000;
-
- ret = select(priv->fd + 1, &rfds, NULL, NULL, &tv);
-
- if (ret <= 0)
- return ret;
-
- /* only report ok if the next message is from the peer we expect
- * from
- */
- cli_addr_size = sizeof(cli_addr);
- ret =
- recvfrom(priv->fd, &c, 1, MSG_PEEK,
- (struct sockaddr *) &cli_addr, &cli_addr_size);
- if (ret > 0) {
- if (cli_addr_size == priv->cli_addr_size
- && memcmp(&cli_addr, priv->cli_addr,
- sizeof(cli_addr)) == 0)
- return 1;
- }
-
- return 0;
+ fd_set rfds;
+ struct timeval tv;
+ priv_data_st *priv = ptr;
+ struct sockaddr_in cli_addr;
+ socklen_t cli_addr_size;
+ int ret;
+ char c;
+
+ FD_ZERO(&rfds);
+ FD_SET(priv->fd, &rfds);
+
+ tv.tv_sec = ms / 1000;
+ tv.tv_usec = (ms % 1000) * 1000;
+
+ ret = select(priv->fd + 1, &rfds, NULL, NULL, &tv);
+
+ if (ret <= 0)
+ return ret;
+
+ /* only report ok if the next message is from the peer we expect
+ * from
+ */
+ cli_addr_size = sizeof(cli_addr);
+ ret =
+ recvfrom(priv->fd, &c, 1, MSG_PEEK,
+ (struct sockaddr *)&cli_addr, &cli_addr_size);
+ if (ret > 0) {
+ if (cli_addr_size == priv->cli_addr_size
+ && memcmp(&cli_addr, priv->cli_addr, sizeof(cli_addr)) == 0)
+ return 1;
+ }
+
+ return 0;
}
static ssize_t
push_func(gnutls_transport_ptr_t p, const void *data, size_t size)
{
- priv_data_st *priv = p;
+ priv_data_st *priv = p;
- return sendto(priv->fd, data, size, 0, priv->cli_addr,
- priv->cli_addr_size);
+ return sendto(priv->fd, data, size, 0, priv->cli_addr,
+ priv->cli_addr_size);
}
static ssize_t pull_func(gnutls_transport_ptr_t p, void *data, size_t size)
{
- priv_data_st *priv = p;
- struct sockaddr_in cli_addr;
- socklen_t cli_addr_size;
- char buffer[64];
- int ret;
-
- cli_addr_size = sizeof(cli_addr);
- ret =
- recvfrom(priv->fd, data, size, 0,
- (struct sockaddr *) &cli_addr, &cli_addr_size);
- if (ret == -1)
- return ret;
-
- if (cli_addr_size == priv->cli_addr_size
- && memcmp(&cli_addr, priv->cli_addr, sizeof(cli_addr)) == 0)
- return ret;
-
- printf("Denied connection from %s\n",
- human_addr((struct sockaddr *)
- &cli_addr, sizeof(cli_addr), buffer,
- sizeof(buffer)));
-
- gnutls_transport_set_errno(priv->session, EAGAIN);
- return -1;
+ priv_data_st *priv = p;
+ struct sockaddr_in cli_addr;
+ socklen_t cli_addr_size;
+ char buffer[64];
+ int ret;
+
+ cli_addr_size = sizeof(cli_addr);
+ ret =
+ recvfrom(priv->fd, data, size, 0,
+ (struct sockaddr *)&cli_addr, &cli_addr_size);
+ if (ret == -1)
+ return ret;
+
+ if (cli_addr_size == priv->cli_addr_size
+ && memcmp(&cli_addr, priv->cli_addr, sizeof(cli_addr)) == 0)
+ return ret;
+
+ printf("Denied connection from %s\n", human_addr((struct sockaddr *)
+ &cli_addr,
+ sizeof(cli_addr),
+ buffer,
+ sizeof(buffer)));
+
+ gnutls_transport_set_errno(priv->session, EAGAIN);
+ return -1;
}
static const char *human_addr(const struct sockaddr *sa, socklen_t salen,
- char *buf, size_t buflen)
+ char *buf, size_t buflen)
{
- const char *save_buf = buf;
- size_t l;
+ const char *save_buf = buf;
+ size_t l;
- if (!buf || !buflen)
- return NULL;
+ if (!buf || !buflen)
+ return NULL;
- *buf = '\0';
+ *buf = '\0';
- switch (sa->sa_family) {
+ switch (sa->sa_family) {
#if HAVE_IPV6
- case AF_INET6:
- snprintf(buf, buflen, "IPv6 ");
- break;
+ case AF_INET6:
+ snprintf(buf, buflen, "IPv6 ");
+ break;
#endif
- case AF_INET:
- snprintf(buf, buflen, "IPv4 ");
- break;
- }
+ case AF_INET:
+ snprintf(buf, buflen, "IPv4 ");
+ break;
+ }
- l = strlen(buf);
- buf += l;
- buflen -= l;
+ l = strlen(buf);
+ buf += l;
+ buflen -= l;
- if (getnameinfo(sa, salen, buf, buflen, NULL, 0, NI_NUMERICHOST) !=
- 0)
- return NULL;
+ if (getnameinfo(sa, salen, buf, buflen, NULL, 0, NI_NUMERICHOST) != 0)
+ return NULL;
- l = strlen(buf);
- buf += l;
- buflen -= l;
+ l = strlen(buf);
+ buf += l;
+ buflen -= l;
- strncat(buf, " port ", buflen);
+ strncat(buf, " port ", buflen);
- l = strlen(buf);
- buf += l;
- buflen -= l;
+ l = strlen(buf);
+ buf += l;
+ buflen -= l;
- if (getnameinfo(sa, salen, NULL, 0, buf, buflen, NI_NUMERICSERV) !=
- 0)
- return NULL;
+ if (getnameinfo(sa, salen, NULL, 0, buf, buflen, NI_NUMERICSERV) != 0)
+ return NULL;
- return save_buf;
+ return save_buf;
}
-
diff --git a/doc/examples/ex-serv-psk.c b/doc/examples/ex-serv-psk.c
index b6d5d11c8d..92cd2d44d2 100644
--- a/doc/examples/ex-serv-psk.c
+++ b/doc/examples/ex-serv-psk.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,173 +31,173 @@
#define SOCKET_ERR(err,s) if(err==-1) {perror(s);return(1);}
#define MAX_BUF 1024
-#define PORT 5556 /* listen to 5556 port */
+#define PORT 5556 /* listen to 5556 port */
static int
-pskfunc(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+pskfunc(gnutls_session_t session, const char *username, gnutls_datum_t * key)
{
- printf("psk: username %s\n", username);
- key->data = gnutls_malloc(4);
- key->data[0] = 0xDE;
- key->data[1] = 0xAD;
- key->data[2] = 0xBE;
- key->data[3] = 0xEF;
- key->size = 4;
- return 0;
+ printf("psk: username %s\n", username);
+ key->data = gnutls_malloc(4);
+ key->data[0] = 0xDE;
+ key->data[1] = 0xAD;
+ key->data[2] = 0xBE;
+ key->data[3] = 0xEF;
+ key->size = 4;
+ return 0;
}
int main(void)
{
- int err, listen_sd;
- int sd, ret;
- struct sockaddr_in sa_serv;
- struct sockaddr_in sa_cli;
- socklen_t client_len;
- char topbuf[512];
- gnutls_session_t session;
- gnutls_certificate_credentials_t x509_cred;
- gnutls_psk_server_credentials_t psk_cred;
- gnutls_priority_t priority_cache;
- char buffer[MAX_BUF + 1];
- int optval = 1;
- int kx;
-
- if (gnutls_check_version("3.1.4") == NULL) {
- fprintf(stderr, "GnuTLS 3.1.4 or later is required for this example\n");
- exit(1);
- }
-
- /* for backwards compatibility with gnutls < 3.3.0 */
- gnutls_global_init();
-
- gnutls_certificate_allocate_credentials(&x509_cred);
- gnutls_certificate_set_x509_trust_file(x509_cred, CAFILE,
- GNUTLS_X509_FMT_PEM);
-
- gnutls_certificate_set_x509_crl_file(x509_cred, CRLFILE,
- GNUTLS_X509_FMT_PEM);
-
- gnutls_certificate_set_x509_key_file(x509_cred, CERTFILE, KEYFILE,
- GNUTLS_X509_FMT_PEM);
-
- gnutls_psk_allocate_server_credentials(&psk_cred);
- gnutls_psk_set_server_credentials_function(psk_cred, pskfunc);
-
- /* pre-3.6.3 equivalent:
- * gnutls_priority_init(&priority_cache,
- * "NORMAL:+PSK:+ECDHE-PSK:+DHE-PSK",
- * NULL);
- */
- gnutls_priority_init2(&priority_cache,
- "+ECDHE-PSK:+DHE-PSK:+PSK",
- NULL, GNUTLS_PRIORITY_INIT_DEF_APPEND);
-
- gnutls_certificate_set_known_dh_params(x509_cred, GNUTLS_SEC_PARAM_MEDIUM);
-
- /* Socket operations
- */
- listen_sd = socket(AF_INET, SOCK_STREAM, 0);
- SOCKET_ERR(listen_sd, "socket");
-
- memset(&sa_serv, '\0', sizeof(sa_serv));
- sa_serv.sin_family = AF_INET;
- sa_serv.sin_addr.s_addr = INADDR_ANY;
- sa_serv.sin_port = htons(PORT); /* Server Port number */
-
- setsockopt(listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *) &optval,
- sizeof(int));
-
- err =
- bind(listen_sd, (struct sockaddr *) &sa_serv, sizeof(sa_serv));
- SOCKET_ERR(err, "bind");
- err = listen(listen_sd, 1024);
- SOCKET_ERR(err, "listen");
-
- printf("Server ready. Listening to port '%d'.\n\n", PORT);
-
- client_len = sizeof(sa_cli);
- for (;;) {
- gnutls_init(&session, GNUTLS_SERVER);
- gnutls_priority_set(session, priority_cache);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- x509_cred);
- gnutls_credentials_set(session, GNUTLS_CRD_PSK, psk_cred);
-
- /* request client certificate if any.
- */
- gnutls_certificate_server_set_request(session,
- GNUTLS_CERT_REQUEST);
-
- sd = accept(listen_sd, (struct sockaddr *) &sa_cli,
- &client_len);
-
- printf("- connection from %s, port %d\n",
- inet_ntop(AF_INET, &sa_cli.sin_addr, topbuf,
- sizeof(topbuf)), ntohs(sa_cli.sin_port));
-
- gnutls_transport_set_int(session, sd);
- LOOP_CHECK(ret, gnutls_handshake(session));
- if (ret < 0) {
- close(sd);
- gnutls_deinit(session);
- fprintf(stderr,
- "*** Handshake has failed (%s)\n\n",
- gnutls_strerror(ret));
- continue;
- }
- printf("- Handshake was completed\n");
-
- kx = gnutls_kx_get(session);
- if (kx == GNUTLS_KX_PSK || kx == GNUTLS_KX_DHE_PSK ||
- kx == GNUTLS_KX_ECDHE_PSK) {
- printf("- User %s was connected\n",
- gnutls_psk_server_get_username(session));
- }
-
- /* see the Getting peer's information example */
- /* print_info(session); */
-
- for (;;) {
- LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
-
- if (ret == 0) {
- printf
- ("\n- Peer has closed the GnuTLS connection\n");
- break;
- } else if (ret < 0
- && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n",
- gnutls_strerror(ret));
- } else if (ret < 0) {
- fprintf(stderr, "\n*** Received corrupted "
- "data(%d). Closing the connection.\n\n",
- ret);
- break;
- } else if (ret > 0) {
- /* echo data back to the client
- */
- gnutls_record_send(session, buffer, ret);
- }
- }
- printf("\n");
- /* do not wait for the peer to close the connection.
- */
- LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_WR));
-
- close(sd);
- gnutls_deinit(session);
-
- }
- close(listen_sd);
-
- gnutls_certificate_free_credentials(x509_cred);
- gnutls_psk_free_server_credentials(psk_cred);
-
- gnutls_priority_deinit(priority_cache);
-
- gnutls_global_deinit();
-
- return 0;
+ int err, listen_sd;
+ int sd, ret;
+ struct sockaddr_in sa_serv;
+ struct sockaddr_in sa_cli;
+ socklen_t client_len;
+ char topbuf[512];
+ gnutls_session_t session;
+ gnutls_certificate_credentials_t x509_cred;
+ gnutls_psk_server_credentials_t psk_cred;
+ gnutls_priority_t priority_cache;
+ char buffer[MAX_BUF + 1];
+ int optval = 1;
+ int kx;
+
+ if (gnutls_check_version("3.1.4") == NULL) {
+ fprintf(stderr,
+ "GnuTLS 3.1.4 or later is required for this example\n");
+ exit(1);
+ }
+
+ /* for backwards compatibility with gnutls < 3.3.0 */
+ gnutls_global_init();
+
+ gnutls_certificate_allocate_credentials(&x509_cred);
+ gnutls_certificate_set_x509_trust_file(x509_cred, CAFILE,
+ GNUTLS_X509_FMT_PEM);
+
+ gnutls_certificate_set_x509_crl_file(x509_cred, CRLFILE,
+ GNUTLS_X509_FMT_PEM);
+
+ gnutls_certificate_set_x509_key_file(x509_cred, CERTFILE, KEYFILE,
+ GNUTLS_X509_FMT_PEM);
+
+ gnutls_psk_allocate_server_credentials(&psk_cred);
+ gnutls_psk_set_server_credentials_function(psk_cred, pskfunc);
+
+ /* pre-3.6.3 equivalent:
+ * gnutls_priority_init(&priority_cache,
+ * "NORMAL:+PSK:+ECDHE-PSK:+DHE-PSK",
+ * NULL);
+ */
+ gnutls_priority_init2(&priority_cache,
+ "+ECDHE-PSK:+DHE-PSK:+PSK",
+ NULL, GNUTLS_PRIORITY_INIT_DEF_APPEND);
+
+ gnutls_certificate_set_known_dh_params(x509_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
+
+ /* Socket operations
+ */
+ listen_sd = socket(AF_INET, SOCK_STREAM, 0);
+ SOCKET_ERR(listen_sd, "socket");
+
+ memset(&sa_serv, '\0', sizeof(sa_serv));
+ sa_serv.sin_family = AF_INET;
+ sa_serv.sin_addr.s_addr = INADDR_ANY;
+ sa_serv.sin_port = htons(PORT); /* Server Port number */
+
+ setsockopt(listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *)&optval,
+ sizeof(int));
+
+ err = bind(listen_sd, (struct sockaddr *)&sa_serv, sizeof(sa_serv));
+ SOCKET_ERR(err, "bind");
+ err = listen(listen_sd, 1024);
+ SOCKET_ERR(err, "listen");
+
+ printf("Server ready. Listening to port '%d'.\n\n", PORT);
+
+ client_len = sizeof(sa_cli);
+ for (;;) {
+ gnutls_init(&session, GNUTLS_SERVER);
+ gnutls_priority_set(session, priority_cache);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ x509_cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_PSK, psk_cred);
+
+ /* request client certificate if any.
+ */
+ gnutls_certificate_server_set_request(session,
+ GNUTLS_CERT_REQUEST);
+
+ sd = accept(listen_sd, (struct sockaddr *)&sa_cli, &client_len);
+
+ printf("- connection from %s, port %d\n",
+ inet_ntop(AF_INET, &sa_cli.sin_addr, topbuf,
+ sizeof(topbuf)), ntohs(sa_cli.sin_port));
+
+ gnutls_transport_set_int(session, sd);
+ LOOP_CHECK(ret, gnutls_handshake(session));
+ if (ret < 0) {
+ close(sd);
+ gnutls_deinit(session);
+ fprintf(stderr,
+ "*** Handshake has failed (%s)\n\n",
+ gnutls_strerror(ret));
+ continue;
+ }
+ printf("- Handshake was completed\n");
+
+ kx = gnutls_kx_get(session);
+ if (kx == GNUTLS_KX_PSK || kx == GNUTLS_KX_DHE_PSK ||
+ kx == GNUTLS_KX_ECDHE_PSK) {
+ printf("- User %s was connected\n",
+ gnutls_psk_server_get_username(session));
+ }
+
+ /* see the Getting peer's information example */
+ /* print_info(session); */
+
+ for (;;) {
+ LOOP_CHECK(ret,
+ gnutls_record_recv(session, buffer,
+ MAX_BUF));
+
+ if (ret == 0) {
+ printf
+ ("\n- Peer has closed the GnuTLS connection\n");
+ break;
+ } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n",
+ gnutls_strerror(ret));
+ } else if (ret < 0) {
+ fprintf(stderr, "\n*** Received corrupted "
+ "data(%d). Closing the connection.\n\n",
+ ret);
+ break;
+ } else if (ret > 0) {
+ /* echo data back to the client
+ */
+ gnutls_record_send(session, buffer, ret);
+ }
+ }
+ printf("\n");
+ /* do not wait for the peer to close the connection.
+ */
+ LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_WR));
+
+ close(sd);
+ gnutls_deinit(session);
+
+ }
+ close(listen_sd);
+
+ gnutls_certificate_free_credentials(x509_cred);
+ gnutls_psk_free_server_credentials(psk_cred);
+
+ gnutls_priority_deinit(priority_cache);
+
+ gnutls_global_deinit();
+
+ return 0;
}
diff --git a/doc/examples/ex-serv-srp.c b/doc/examples/ex-serv-srp.c
index 7686a8fc1c..cdf5fe7ebc 100644
--- a/doc/examples/ex-serv-srp.c
+++ b/doc/examples/ex-serv-srp.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -32,148 +32,148 @@
#define SOCKET_ERR(err,s) if(err==-1) {perror(s);return(1);}
#define MAX_BUF 1024
-#define PORT 5556 /* listen to 5556 port */
+#define PORT 5556 /* listen to 5556 port */
int main(void)
{
- int err, listen_sd;
- int sd, ret;
- struct sockaddr_in sa_serv;
- struct sockaddr_in sa_cli;
- socklen_t client_len;
- char topbuf[512];
- gnutls_session_t session;
- gnutls_srp_server_credentials_t srp_cred;
- gnutls_certificate_credentials_t cert_cred;
- char buffer[MAX_BUF + 1];
- int optval = 1;
- char name[256];
-
- strcpy(name, "Echo Server");
-
- if (gnutls_check_version("3.1.4") == NULL) {
- fprintf(stderr, "GnuTLS 3.1.4 or later is required for this example\n");
- exit(1);
- }
-
- /* for backwards compatibility with gnutls < 3.3.0 */
- gnutls_global_init();
-
- /* SRP_PASSWD a password file (created with the included srptool utility)
- */
- gnutls_srp_allocate_server_credentials(&srp_cred);
- gnutls_srp_set_server_credentials_file(srp_cred, SRP_PASSWD,
- SRP_PASSWD_CONF);
-
- gnutls_certificate_allocate_credentials(&cert_cred);
- gnutls_certificate_set_x509_trust_file(cert_cred, CAFILE,
- GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_x509_key_file(cert_cred, CERTFILE, KEYFILE,
- GNUTLS_X509_FMT_PEM);
-
- /* TCP socket operations
- */
- listen_sd = socket(AF_INET, SOCK_STREAM, 0);
- SOCKET_ERR(listen_sd, "socket");
-
- memset(&sa_serv, '\0', sizeof(sa_serv));
- sa_serv.sin_family = AF_INET;
- sa_serv.sin_addr.s_addr = INADDR_ANY;
- sa_serv.sin_port = htons(PORT); /* Server Port number */
-
- setsockopt(listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *) &optval,
- sizeof(int));
-
- err =
- bind(listen_sd, (struct sockaddr *) &sa_serv, sizeof(sa_serv));
- SOCKET_ERR(err, "bind");
- err = listen(listen_sd, 1024);
- SOCKET_ERR(err, "listen");
-
- printf("%s ready. Listening to port '%d'.\n\n", name, PORT);
-
- client_len = sizeof(sa_cli);
- for (;;) {
- gnutls_init(&session, GNUTLS_SERVER);
- gnutls_priority_set_direct(session,
- "NORMAL"
- ":-KX-ALL:+SRP:+SRP-DSS:+SRP-RSA",
- NULL);
- gnutls_credentials_set(session, GNUTLS_CRD_SRP, srp_cred);
- /* for the certificate authenticated ciphersuites.
- */
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- cert_cred);
-
- /* We don't request any certificate from the client.
- * If we did we would need to verify it. One way of
- * doing that is shown in the "Verifying a certificate"
- * example.
- */
- gnutls_certificate_server_set_request(session,
- GNUTLS_CERT_IGNORE);
-
- sd = accept(listen_sd, (struct sockaddr *) &sa_cli,
- &client_len);
-
- printf("- connection from %s, port %d\n",
- inet_ntop(AF_INET, &sa_cli.sin_addr, topbuf,
- sizeof(topbuf)), ntohs(sa_cli.sin_port));
-
- gnutls_transport_set_int(session, sd);
-
- LOOP_CHECK(ret, gnutls_handshake(session));
- if (ret < 0) {
- close(sd);
- gnutls_deinit(session);
- fprintf(stderr,
- "*** Handshake has failed (%s)\n\n",
- gnutls_strerror(ret));
- continue;
- }
- printf("- Handshake was completed\n");
- printf("- User %s was connected\n",
- gnutls_srp_server_get_username(session));
-
- /* print_info(session); */
-
- for (;;) {
- LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
-
- if (ret == 0) {
- printf
- ("\n- Peer has closed the GnuTLS connection\n");
- break;
- } else if (ret < 0
- && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n",
- gnutls_strerror(ret));
- } else if (ret < 0) {
- fprintf(stderr, "\n*** Received corrupted "
- "data(%d). Closing the connection.\n\n",
- ret);
- break;
- } else if (ret > 0) {
- /* echo data back to the client
- */
- gnutls_record_send(session, buffer, ret);
- }
- }
- printf("\n");
- /* do not wait for the peer to close the connection. */
- LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_WR));
-
- close(sd);
- gnutls_deinit(session);
-
- }
- close(listen_sd);
-
- gnutls_srp_free_server_credentials(srp_cred);
- gnutls_certificate_free_credentials(cert_cred);
-
- gnutls_global_deinit();
-
- return 0;
+ int err, listen_sd;
+ int sd, ret;
+ struct sockaddr_in sa_serv;
+ struct sockaddr_in sa_cli;
+ socklen_t client_len;
+ char topbuf[512];
+ gnutls_session_t session;
+ gnutls_srp_server_credentials_t srp_cred;
+ gnutls_certificate_credentials_t cert_cred;
+ char buffer[MAX_BUF + 1];
+ int optval = 1;
+ char name[256];
+
+ strcpy(name, "Echo Server");
+
+ if (gnutls_check_version("3.1.4") == NULL) {
+ fprintf(stderr,
+ "GnuTLS 3.1.4 or later is required for this example\n");
+ exit(1);
+ }
+
+ /* for backwards compatibility with gnutls < 3.3.0 */
+ gnutls_global_init();
+
+ /* SRP_PASSWD a password file (created with the included srptool utility)
+ */
+ gnutls_srp_allocate_server_credentials(&srp_cred);
+ gnutls_srp_set_server_credentials_file(srp_cred, SRP_PASSWD,
+ SRP_PASSWD_CONF);
+
+ gnutls_certificate_allocate_credentials(&cert_cred);
+ gnutls_certificate_set_x509_trust_file(cert_cred, CAFILE,
+ GNUTLS_X509_FMT_PEM);
+ gnutls_certificate_set_x509_key_file(cert_cred, CERTFILE, KEYFILE,
+ GNUTLS_X509_FMT_PEM);
+
+ /* TCP socket operations
+ */
+ listen_sd = socket(AF_INET, SOCK_STREAM, 0);
+ SOCKET_ERR(listen_sd, "socket");
+
+ memset(&sa_serv, '\0', sizeof(sa_serv));
+ sa_serv.sin_family = AF_INET;
+ sa_serv.sin_addr.s_addr = INADDR_ANY;
+ sa_serv.sin_port = htons(PORT); /* Server Port number */
+
+ setsockopt(listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *)&optval,
+ sizeof(int));
+
+ err = bind(listen_sd, (struct sockaddr *)&sa_serv, sizeof(sa_serv));
+ SOCKET_ERR(err, "bind");
+ err = listen(listen_sd, 1024);
+ SOCKET_ERR(err, "listen");
+
+ printf("%s ready. Listening to port '%d'.\n\n", name, PORT);
+
+ client_len = sizeof(sa_cli);
+ for (;;) {
+ gnutls_init(&session, GNUTLS_SERVER);
+ gnutls_priority_set_direct(session,
+ "NORMAL"
+ ":-KX-ALL:+SRP:+SRP-DSS:+SRP-RSA",
+ NULL);
+ gnutls_credentials_set(session, GNUTLS_CRD_SRP, srp_cred);
+ /* for the certificate authenticated ciphersuites.
+ */
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ cert_cred);
+
+ /* We don't request any certificate from the client.
+ * If we did we would need to verify it. One way of
+ * doing that is shown in the "Verifying a certificate"
+ * example.
+ */
+ gnutls_certificate_server_set_request(session,
+ GNUTLS_CERT_IGNORE);
+
+ sd = accept(listen_sd, (struct sockaddr *)&sa_cli, &client_len);
+
+ printf("- connection from %s, port %d\n",
+ inet_ntop(AF_INET, &sa_cli.sin_addr, topbuf,
+ sizeof(topbuf)), ntohs(sa_cli.sin_port));
+
+ gnutls_transport_set_int(session, sd);
+
+ LOOP_CHECK(ret, gnutls_handshake(session));
+ if (ret < 0) {
+ close(sd);
+ gnutls_deinit(session);
+ fprintf(stderr,
+ "*** Handshake has failed (%s)\n\n",
+ gnutls_strerror(ret));
+ continue;
+ }
+ printf("- Handshake was completed\n");
+ printf("- User %s was connected\n",
+ gnutls_srp_server_get_username(session));
+
+ /* print_info(session); */
+
+ for (;;) {
+ LOOP_CHECK(ret,
+ gnutls_record_recv(session, buffer,
+ MAX_BUF));
+
+ if (ret == 0) {
+ printf
+ ("\n- Peer has closed the GnuTLS connection\n");
+ break;
+ } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n",
+ gnutls_strerror(ret));
+ } else if (ret < 0) {
+ fprintf(stderr, "\n*** Received corrupted "
+ "data(%d). Closing the connection.\n\n",
+ ret);
+ break;
+ } else if (ret > 0) {
+ /* echo data back to the client
+ */
+ gnutls_record_send(session, buffer, ret);
+ }
+ }
+ printf("\n");
+ /* do not wait for the peer to close the connection. */
+ LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_WR));
+
+ close(sd);
+ gnutls_deinit(session);
+
+ }
+ close(listen_sd);
+
+ gnutls_srp_free_server_credentials(srp_cred);
+ gnutls_certificate_free_credentials(cert_cred);
+
+ gnutls_global_deinit();
+
+ return 0;
}
diff --git a/doc/examples/ex-serv-x509.c b/doc/examples/ex-serv-x509.c
index df57207140..a42040abab 100644
--- a/doc/examples/ex-serv-x509.c
+++ b/doc/examples/ex-serv-x509.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,159 +40,160 @@
*/
#define MAX_BUF 1024
-#define PORT 5556 /* listen to 5556 port */
+#define PORT 5556 /* listen to 5556 port */
int main(void)
{
- int listen_sd;
- int sd, ret;
- gnutls_certificate_credentials_t x509_cred;
- gnutls_priority_t priority_cache;
- struct sockaddr_in sa_serv;
- struct sockaddr_in sa_cli;
- socklen_t client_len;
- char topbuf[512];
- gnutls_session_t session;
- char buffer[MAX_BUF + 1];
- int optval = 1;
-
- /* for backwards compatibility with gnutls < 3.3.0 */
- CHECK(gnutls_global_init());
-
- CHECK(gnutls_certificate_allocate_credentials(&x509_cred));
-
- CHECK(gnutls_certificate_set_x509_trust_file(x509_cred, CAFILE,
- GNUTLS_X509_FMT_PEM));
-
- CHECK(gnutls_certificate_set_x509_crl_file(x509_cred, CRLFILE,
- GNUTLS_X509_FMT_PEM));
-
- /* The following code sets the certificate key pair as well as,
- * an OCSP response which corresponds to it. It is possible
- * to set multiple key-pairs and multiple OCSP status responses
- * (the latter since 3.5.6). See the manual pages of the individual
- * functions for more information.
- */
- CHECK(gnutls_certificate_set_x509_key_file(x509_cred, CERTFILE,
- KEYFILE,
- GNUTLS_X509_FMT_PEM));
-
- CHECK(gnutls_certificate_set_ocsp_status_request_file(x509_cred,
- OCSP_STATUS_FILE,
- 0));
-
- CHECK(gnutls_priority_init(&priority_cache, NULL, NULL));
-
- /* Instead of the default options as shown above one could specify
- * additional options such as server precedence in ciphersuite selection
- * as follows:
- * gnutls_priority_init2(&priority_cache,
- * "%SERVER_PRECEDENCE",
- * NULL, GNUTLS_PRIORITY_INIT_DEF_APPEND);
+ int listen_sd;
+ int sd, ret;
+ gnutls_certificate_credentials_t x509_cred;
+ gnutls_priority_t priority_cache;
+ struct sockaddr_in sa_serv;
+ struct sockaddr_in sa_cli;
+ socklen_t client_len;
+ char topbuf[512];
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
+ int optval = 1;
+
+ /* for backwards compatibility with gnutls < 3.3.0 */
+ CHECK(gnutls_global_init());
+
+ CHECK(gnutls_certificate_allocate_credentials(&x509_cred));
+
+ CHECK(gnutls_certificate_set_x509_trust_file(x509_cred, CAFILE,
+ GNUTLS_X509_FMT_PEM));
+
+ CHECK(gnutls_certificate_set_x509_crl_file(x509_cred, CRLFILE,
+ GNUTLS_X509_FMT_PEM));
+
+ /* The following code sets the certificate key pair as well as,
+ * an OCSP response which corresponds to it. It is possible
+ * to set multiple key-pairs and multiple OCSP status responses
+ * (the latter since 3.5.6). See the manual pages of the individual
+ * functions for more information.
+ */
+ CHECK(gnutls_certificate_set_x509_key_file(x509_cred, CERTFILE,
+ KEYFILE,
+ GNUTLS_X509_FMT_PEM));
+
+ CHECK(gnutls_certificate_set_ocsp_status_request_file(x509_cred,
+ OCSP_STATUS_FILE,
+ 0));
+
+ CHECK(gnutls_priority_init(&priority_cache, NULL, NULL));
+
+ /* Instead of the default options as shown above one could specify
+ * additional options such as server precedence in ciphersuite selection
+ * as follows:
+ * gnutls_priority_init2(&priority_cache,
+ * "%SERVER_PRECEDENCE",
+ * NULL, GNUTLS_PRIORITY_INIT_DEF_APPEND);
*/
#if GNUTLS_VERSION_NUMBER >= 0x030506
- /* only available since GnuTLS 3.5.6, on previous versions see
- * gnutls_certificate_set_dh_params(). */
- gnutls_certificate_set_known_dh_params(x509_cred, GNUTLS_SEC_PARAM_MEDIUM);
+ /* only available since GnuTLS 3.5.6, on previous versions see
+ * gnutls_certificate_set_dh_params(). */
+ gnutls_certificate_set_known_dh_params(x509_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
#endif
- /* Socket operations
- */
- listen_sd = socket(AF_INET, SOCK_STREAM, 0);
-
- memset(&sa_serv, '\0', sizeof(sa_serv));
- sa_serv.sin_family = AF_INET;
- sa_serv.sin_addr.s_addr = INADDR_ANY;
- sa_serv.sin_port = htons(PORT); /* Server Port number */
-
- setsockopt(listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *) &optval,
- sizeof(int));
-
- bind(listen_sd, (struct sockaddr *) &sa_serv, sizeof(sa_serv));
-
- listen(listen_sd, 1024);
-
- printf("Server ready. Listening to port '%d'.\n\n", PORT);
-
- client_len = sizeof(sa_cli);
- for (;;) {
- CHECK(gnutls_init(&session, GNUTLS_SERVER));
- CHECK(gnutls_priority_set(session, priority_cache));
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- x509_cred));
-
- /* We don't request any certificate from the client.
- * If we did we would need to verify it. One way of
- * doing that is shown in the "Verifying a certificate"
- * example.
- */
- gnutls_certificate_server_set_request(session,
- GNUTLS_CERT_IGNORE);
- gnutls_handshake_set_timeout(session,
- GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
-
- sd = accept(listen_sd, (struct sockaddr *) &sa_cli,
- &client_len);
-
- printf("- connection from %s, port %d\n",
- inet_ntop(AF_INET, &sa_cli.sin_addr, topbuf,
- sizeof(topbuf)), ntohs(sa_cli.sin_port));
-
- gnutls_transport_set_int(session, sd);
-
- LOOP_CHECK(ret, gnutls_handshake(session));
- if (ret < 0) {
- close(sd);
- gnutls_deinit(session);
- fprintf(stderr,
- "*** Handshake has failed (%s)\n\n",
- gnutls_strerror(ret));
- continue;
- }
- printf("- Handshake was completed\n");
-
- /* see the Getting peer's information example */
- /* print_info(session); */
-
- for (;;) {
- LOOP_CHECK(ret, gnutls_record_recv(session, buffer, MAX_BUF));
-
- if (ret == 0) {
- printf
- ("\n- Peer has closed the GnuTLS connection\n");
- break;
- } else if (ret < 0
- && gnutls_error_is_fatal(ret) == 0) {
- fprintf(stderr, "*** Warning: %s\n",
- gnutls_strerror(ret));
- } else if (ret < 0) {
- fprintf(stderr, "\n*** Received corrupted "
- "data(%d). Closing the connection.\n\n",
- ret);
- break;
- } else if (ret > 0) {
- /* echo data back to the client
- */
- CHECK(gnutls_record_send(session, buffer, ret));
- }
- }
- printf("\n");
- /* do not wait for the peer to close the connection.
- */
- LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_WR));
-
- close(sd);
- gnutls_deinit(session);
-
- }
- close(listen_sd);
-
- gnutls_certificate_free_credentials(x509_cred);
- gnutls_priority_deinit(priority_cache);
-
- gnutls_global_deinit();
-
- return 0;
+ /* Socket operations
+ */
+ listen_sd = socket(AF_INET, SOCK_STREAM, 0);
+
+ memset(&sa_serv, '\0', sizeof(sa_serv));
+ sa_serv.sin_family = AF_INET;
+ sa_serv.sin_addr.s_addr = INADDR_ANY;
+ sa_serv.sin_port = htons(PORT); /* Server Port number */
+
+ setsockopt(listen_sd, SOL_SOCKET, SO_REUSEADDR, (void *)&optval,
+ sizeof(int));
+
+ bind(listen_sd, (struct sockaddr *)&sa_serv, sizeof(sa_serv));
+
+ listen(listen_sd, 1024);
+
+ printf("Server ready. Listening to port '%d'.\n\n", PORT);
+
+ client_len = sizeof(sa_cli);
+ for (;;) {
+ CHECK(gnutls_init(&session, GNUTLS_SERVER));
+ CHECK(gnutls_priority_set(session, priority_cache));
+ CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ x509_cred));
+
+ /* We don't request any certificate from the client.
+ * If we did we would need to verify it. One way of
+ * doing that is shown in the "Verifying a certificate"
+ * example.
+ */
+ gnutls_certificate_server_set_request(session,
+ GNUTLS_CERT_IGNORE);
+ gnutls_handshake_set_timeout(session,
+ GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
+
+ sd = accept(listen_sd, (struct sockaddr *)&sa_cli, &client_len);
+
+ printf("- connection from %s, port %d\n",
+ inet_ntop(AF_INET, &sa_cli.sin_addr, topbuf,
+ sizeof(topbuf)), ntohs(sa_cli.sin_port));
+
+ gnutls_transport_set_int(session, sd);
+
+ LOOP_CHECK(ret, gnutls_handshake(session));
+ if (ret < 0) {
+ close(sd);
+ gnutls_deinit(session);
+ fprintf(stderr,
+ "*** Handshake has failed (%s)\n\n",
+ gnutls_strerror(ret));
+ continue;
+ }
+ printf("- Handshake was completed\n");
+
+ /* see the Getting peer's information example */
+ /* print_info(session); */
+
+ for (;;) {
+ LOOP_CHECK(ret,
+ gnutls_record_recv(session, buffer,
+ MAX_BUF));
+
+ if (ret == 0) {
+ printf
+ ("\n- Peer has closed the GnuTLS connection\n");
+ break;
+ } else if (ret < 0 && gnutls_error_is_fatal(ret) == 0) {
+ fprintf(stderr, "*** Warning: %s\n",
+ gnutls_strerror(ret));
+ } else if (ret < 0) {
+ fprintf(stderr, "\n*** Received corrupted "
+ "data(%d). Closing the connection.\n\n",
+ ret);
+ break;
+ } else if (ret > 0) {
+ /* echo data back to the client
+ */
+ CHECK(gnutls_record_send(session, buffer, ret));
+ }
+ }
+ printf("\n");
+ /* do not wait for the peer to close the connection.
+ */
+ LOOP_CHECK(ret, gnutls_bye(session, GNUTLS_SHUT_WR));
+
+ close(sd);
+ gnutls_deinit(session);
+
+ }
+ close(listen_sd);
+
+ gnutls_certificate_free_credentials(x509_cred);
+ gnutls_priority_deinit(priority_cache);
+
+ gnutls_global_deinit();
+
+ return 0;
}
diff --git a/doc/examples/ex-session-info.c b/doc/examples/ex-session-info.c
index 6c20bbeb04..bd51c2c8da 100644
--- a/doc/examples/ex-session-info.c
+++ b/doc/examples/ex-session-info.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -16,94 +16,93 @@
*/
int print_info(gnutls_session_t session)
{
- gnutls_credentials_type_t cred;
- gnutls_kx_algorithm_t kx;
- int dhe, ecdh, group;
- char *desc;
-
- /* get a description of the session connection, protocol,
- * cipher/key exchange */
- desc = gnutls_session_get_desc(session);
- if (desc != NULL) {
- printf("- Session: %s\n", desc);
- }
-
- dhe = ecdh = 0;
-
- kx = gnutls_kx_get(session);
-
- /* Check the authentication type used and switch
- * to the appropriate.
- */
- cred = gnutls_auth_get_type(session);
- switch (cred) {
+ gnutls_credentials_type_t cred;
+ gnutls_kx_algorithm_t kx;
+ int dhe, ecdh, group;
+ char *desc;
+
+ /* get a description of the session connection, protocol,
+ * cipher/key exchange */
+ desc = gnutls_session_get_desc(session);
+ if (desc != NULL) {
+ printf("- Session: %s\n", desc);
+ }
+
+ dhe = ecdh = 0;
+
+ kx = gnutls_kx_get(session);
+
+ /* Check the authentication type used and switch
+ * to the appropriate.
+ */
+ cred = gnutls_auth_get_type(session);
+ switch (cred) {
#ifdef ENABLE_SRP
- case GNUTLS_CRD_SRP:
- printf("- SRP session with username %s\n",
- gnutls_srp_server_get_username(session));
- break;
+ case GNUTLS_CRD_SRP:
+ printf("- SRP session with username %s\n",
+ gnutls_srp_server_get_username(session));
+ break;
#endif
- case GNUTLS_CRD_PSK:
- /* This returns NULL in server side.
- */
- if (gnutls_psk_client_get_hint(session) != NULL)
- printf("- PSK authentication. PSK hint '%s'\n",
- gnutls_psk_client_get_hint(session));
- /* This returns NULL in client side.
- */
- if (gnutls_psk_server_get_username(session) != NULL)
- printf("- PSK authentication. Connected as '%s'\n",
- gnutls_psk_server_get_username(session));
-
- if (kx == GNUTLS_KX_ECDHE_PSK)
- ecdh = 1;
- else if (kx == GNUTLS_KX_DHE_PSK)
- dhe = 1;
- break;
-
- case GNUTLS_CRD_ANON: /* anonymous authentication */
-
- printf("- Anonymous authentication.\n");
- if (kx == GNUTLS_KX_ANON_ECDH)
- ecdh = 1;
- else if (kx == GNUTLS_KX_ANON_DH)
- dhe = 1;
- break;
-
- case GNUTLS_CRD_CERTIFICATE: /* certificate authentication */
-
- /* Check if we have been using ephemeral Diffie-Hellman.
- */
- if (kx == GNUTLS_KX_DHE_RSA || kx == GNUTLS_KX_DHE_DSS)
- dhe = 1;
- else if (kx == GNUTLS_KX_ECDHE_RSA
- || kx == GNUTLS_KX_ECDHE_ECDSA)
- ecdh = 1;
-
- /* if the certificate list is available, then
- * print some information about it.
- */
- print_x509_certificate_info(session);
- break;
+ case GNUTLS_CRD_PSK:
+ /* This returns NULL in server side.
+ */
+ if (gnutls_psk_client_get_hint(session) != NULL)
+ printf("- PSK authentication. PSK hint '%s'\n",
+ gnutls_psk_client_get_hint(session));
+ /* This returns NULL in client side.
+ */
+ if (gnutls_psk_server_get_username(session) != NULL)
+ printf("- PSK authentication. Connected as '%s'\n",
+ gnutls_psk_server_get_username(session));
+
+ if (kx == GNUTLS_KX_ECDHE_PSK)
+ ecdh = 1;
+ else if (kx == GNUTLS_KX_DHE_PSK)
+ dhe = 1;
+ break;
+
+ case GNUTLS_CRD_ANON: /* anonymous authentication */
+
+ printf("- Anonymous authentication.\n");
+ if (kx == GNUTLS_KX_ANON_ECDH)
+ ecdh = 1;
+ else if (kx == GNUTLS_KX_ANON_DH)
+ dhe = 1;
+ break;
+
+ case GNUTLS_CRD_CERTIFICATE: /* certificate authentication */
+
+ /* Check if we have been using ephemeral Diffie-Hellman.
+ */
+ if (kx == GNUTLS_KX_DHE_RSA || kx == GNUTLS_KX_DHE_DSS)
+ dhe = 1;
+ else if (kx == GNUTLS_KX_ECDHE_RSA
+ || kx == GNUTLS_KX_ECDHE_ECDSA)
+ ecdh = 1;
+
+ /* if the certificate list is available, then
+ * print some information about it.
+ */
+ print_x509_certificate_info(session);
+ break;
default:
break;
- } /* switch */
-
- /* read the negotiated group - if any */
- group = gnutls_group_get(session);
- if (group != 0) {
- printf("- Negotiated group %s\n",
- gnutls_group_get_name(group));
- } else {
- if (ecdh != 0)
- printf("- Ephemeral ECDH using curve %s\n",
- gnutls_ecc_curve_get_name(gnutls_ecc_curve_get
- (session)));
- else if (dhe != 0)
- printf("- Ephemeral DH using prime of %d bits\n",
- gnutls_dh_get_prime_bits(session));
- }
-
- return 0;
+ } /* switch */
+
+ /* read the negotiated group - if any */
+ group = gnutls_group_get(session);
+ if (group != 0) {
+ printf("- Negotiated group %s\n", gnutls_group_get_name(group));
+ } else {
+ if (ecdh != 0)
+ printf("- Ephemeral ECDH using curve %s\n",
+ gnutls_ecc_curve_get_name(gnutls_ecc_curve_get
+ (session)));
+ else if (dhe != 0)
+ printf("- Ephemeral DH using prime of %d bits\n",
+ gnutls_dh_get_prime_bits(session));
+ }
+
+ return 0;
}
diff --git a/doc/examples/ex-verify-ssh.c b/doc/examples/ex-verify-ssh.c
index a2af8e57a7..66750545ca 100644
--- a/doc/examples/ex-verify-ssh.c
+++ b/doc/examples/ex-verify-ssh.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -21,80 +21,78 @@
*/
int _ssh_verify_certificate_callback(gnutls_session_t session)
{
- unsigned int status;
- const gnutls_datum_t *cert_list;
- unsigned int cert_list_size;
- int ret, type;
- gnutls_datum_t out;
- const char *hostname;
-
- /* read hostname */
- hostname = gnutls_session_get_ptr(session);
-
- /* This verification function uses the trusted CAs in the credentials
- * structure. So you must have installed one or more CA certificates.
- */
- CHECK(gnutls_certificate_verify_peers3(session, hostname, &status));
-
- type = gnutls_certificate_type_get(session);
-
- CHECK(gnutls_certificate_verification_status_print(status,
- type, &out, 0));
- printf("%s", out.data);
-
- gnutls_free(out.data);
-
- if (status != 0) /* Certificate is not trusted */
- return GNUTLS_E_CERTIFICATE_ERROR;
-
- /* Do SSH verification */
- cert_list = gnutls_certificate_get_peers(session, &cert_list_size);
- if (cert_list == NULL) {
- printf("No certificate was found!\n");
- return GNUTLS_E_CERTIFICATE_ERROR;
- }
-
- /* service may be obtained alternatively using getservbyport() */
- ret = gnutls_verify_stored_pubkey(NULL, NULL, hostname, "https",
- type, &cert_list[0], 0);
- if (ret == GNUTLS_E_NO_CERTIFICATE_FOUND) {
- printf("Host %s is not known.", hostname);
- if (status == 0)
- printf("Its certificate is valid for %s.\n",
- hostname);
-
- /* the certificate must be printed and user must be asked on
- * whether it is trustworthy. --see gnutls_x509_crt_print() */
-
- /* if not trusted */
- return GNUTLS_E_CERTIFICATE_ERROR;
- } else if (ret == GNUTLS_E_CERTIFICATE_KEY_MISMATCH) {
- printf
- ("Warning: host %s is known but has another key associated.",
- hostname);
- printf
- ("It might be that the server has multiple keys, or you are under attack\n");
- if (status == 0)
- printf("Its certificate is valid for %s.\n",
- hostname);
-
- /* the certificate must be printed and user must be asked on
- * whether it is trustworthy. --see gnutls_x509_crt_print() */
-
- /* if not trusted */
- return GNUTLS_E_CERTIFICATE_ERROR;
- } else if (ret < 0) {
- printf("gnutls_verify_stored_pubkey: %s\n",
- gnutls_strerror(ret));
- return ret;
- }
-
- /* user trusts the key -> store it */
- if (ret != 0) {
- CHECK(gnutls_store_pubkey(NULL, NULL, hostname, "https",
- type, &cert_list[0], 0, 0));
- }
-
- /* notify gnutls to continue handshake normally */
- return 0;
+ unsigned int status;
+ const gnutls_datum_t *cert_list;
+ unsigned int cert_list_size;
+ int ret, type;
+ gnutls_datum_t out;
+ const char *hostname;
+
+ /* read hostname */
+ hostname = gnutls_session_get_ptr(session);
+
+ /* This verification function uses the trusted CAs in the credentials
+ * structure. So you must have installed one or more CA certificates.
+ */
+ CHECK(gnutls_certificate_verify_peers3(session, hostname, &status));
+
+ type = gnutls_certificate_type_get(session);
+
+ CHECK(gnutls_certificate_verification_status_print(status,
+ type, &out, 0));
+ printf("%s", out.data);
+
+ gnutls_free(out.data);
+
+ if (status != 0) /* Certificate is not trusted */
+ return GNUTLS_E_CERTIFICATE_ERROR;
+
+ /* Do SSH verification */
+ cert_list = gnutls_certificate_get_peers(session, &cert_list_size);
+ if (cert_list == NULL) {
+ printf("No certificate was found!\n");
+ return GNUTLS_E_CERTIFICATE_ERROR;
+ }
+
+ /* service may be obtained alternatively using getservbyport() */
+ ret = gnutls_verify_stored_pubkey(NULL, NULL, hostname, "https",
+ type, &cert_list[0], 0);
+ if (ret == GNUTLS_E_NO_CERTIFICATE_FOUND) {
+ printf("Host %s is not known.", hostname);
+ if (status == 0)
+ printf("Its certificate is valid for %s.\n", hostname);
+
+ /* the certificate must be printed and user must be asked on
+ * whether it is trustworthy. --see gnutls_x509_crt_print() */
+
+ /* if not trusted */
+ return GNUTLS_E_CERTIFICATE_ERROR;
+ } else if (ret == GNUTLS_E_CERTIFICATE_KEY_MISMATCH) {
+ printf
+ ("Warning: host %s is known but has another key associated.",
+ hostname);
+ printf
+ ("It might be that the server has multiple keys, or you are under attack\n");
+ if (status == 0)
+ printf("Its certificate is valid for %s.\n", hostname);
+
+ /* the certificate must be printed and user must be asked on
+ * whether it is trustworthy. --see gnutls_x509_crt_print() */
+
+ /* if not trusted */
+ return GNUTLS_E_CERTIFICATE_ERROR;
+ } else if (ret < 0) {
+ printf("gnutls_verify_stored_pubkey: %s\n",
+ gnutls_strerror(ret));
+ return ret;
+ }
+
+ /* user trusts the key -> store it */
+ if (ret != 0) {
+ CHECK(gnutls_store_pubkey(NULL, NULL, hostname, "https",
+ type, &cert_list[0], 0, 0));
+ }
+
+ /* notify gnutls to continue handshake normally */
+ return 0;
}
diff --git a/doc/examples/ex-verify.c b/doc/examples/ex-verify.c
index a4f6ebec9e..b37bd115d4 100644
--- a/doc/examples/ex-verify.c
+++ b/doc/examples/ex-verify.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -26,133 +26,126 @@ gnutls_x509_crt_t *ca_list;
int ca_list_size;
static int print_details_func(gnutls_x509_crt_t cert,
- gnutls_x509_crt_t issuer,
- gnutls_x509_crl_t crl,
- unsigned int verification_output);
+ gnutls_x509_crt_t issuer,
+ gnutls_x509_crl_t crl,
+ unsigned int verification_output);
/* This function will try to verify the peer's certificate chain, and
* also check if the hostname matches.
*/
void
verify_certificate_chain(const char *hostname,
- const gnutls_datum_t * cert_chain,
- int cert_chain_length)
+ const gnutls_datum_t * cert_chain,
+ int cert_chain_length)
{
- int i;
- gnutls_x509_trust_list_t tlist;
- gnutls_x509_crt_t *cert;
- gnutls_datum_t txt;
- unsigned int output;
-
- /* Initialize the trusted certificate list. This should be done
- * once on initialization. gnutls_x509_crt_list_import2() and
- * gnutls_x509_crl_list_import2() can be used to load them.
- */
- CHECK(gnutls_x509_trust_list_init(&tlist, 0));
-
- CHECK(gnutls_x509_trust_list_add_cas(tlist, ca_list, ca_list_size, 0));
- CHECK(gnutls_x509_trust_list_add_crls(tlist, crl_list, crl_list_size,
- GNUTLS_TL_VERIFY_CRL, 0));
-
- cert = gnutls_calloc(cert_chain_length, sizeof(*cert));
- assert(cert != NULL);
-
- /* Import all the certificates in the chain to
- * native certificate format.
- */
- for (i = 0; i < cert_chain_length; i++) {
- CHECK(gnutls_x509_crt_init(&cert[i]));
- CHECK(gnutls_x509_crt_import(cert[i], &cert_chain[i],
- GNUTLS_X509_FMT_DER));
- }
-
- CHECK(gnutls_x509_trust_list_verify_named_crt(tlist, cert[0],
- hostname,
- strlen(hostname),
- GNUTLS_VERIFY_DISABLE_CRL_CHECKS,
- &output,
- print_details_func));
-
- /* if this certificate is not explicitly trusted verify against CAs
- */
- if (output != 0) {
- CHECK(gnutls_x509_trust_list_verify_crt(tlist, cert,
- cert_chain_length, 0,
- &output,
- print_details_func));
- }
-
-
-
- if (output & GNUTLS_CERT_INVALID) {
- fprintf(stderr, "Not trusted\n");
- CHECK(gnutls_certificate_verification_status_print(
- output,
- GNUTLS_CRT_X509,
- &txt, 0));
-
- fprintf(stderr, "Error: %s\n", txt.data);
- gnutls_free(txt.data);
- } else
- fprintf(stderr, "Trusted\n");
-
- /* Check if the name in the first certificate matches our destination!
- */
- if (!gnutls_x509_crt_check_hostname(cert[0], hostname)) {
- printf
- ("The certificate's owner does not match hostname '%s'\n",
- hostname);
- }
-
- for (i = 0; i < cert_chain_length; i++) {
- gnutls_x509_crt_deinit(cert[i]);
- }
+ int i;
+ gnutls_x509_trust_list_t tlist;
+ gnutls_x509_crt_t *cert;
+ gnutls_datum_t txt;
+ unsigned int output;
+
+ /* Initialize the trusted certificate list. This should be done
+ * once on initialization. gnutls_x509_crt_list_import2() and
+ * gnutls_x509_crl_list_import2() can be used to load them.
+ */
+ CHECK(gnutls_x509_trust_list_init(&tlist, 0));
+
+ CHECK(gnutls_x509_trust_list_add_cas(tlist, ca_list, ca_list_size, 0));
+ CHECK(gnutls_x509_trust_list_add_crls(tlist, crl_list, crl_list_size,
+ GNUTLS_TL_VERIFY_CRL, 0));
+
+ cert = gnutls_calloc(cert_chain_length, sizeof(*cert));
+ assert(cert != NULL);
+
+ /* Import all the certificates in the chain to
+ * native certificate format.
+ */
+ for (i = 0; i < cert_chain_length; i++) {
+ CHECK(gnutls_x509_crt_init(&cert[i]));
+ CHECK(gnutls_x509_crt_import(cert[i], &cert_chain[i],
+ GNUTLS_X509_FMT_DER));
+ }
+
+ CHECK(gnutls_x509_trust_list_verify_named_crt(tlist, cert[0],
+ hostname,
+ strlen(hostname),
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS,
+ &output,
+ print_details_func));
+
+ /* if this certificate is not explicitly trusted verify against CAs
+ */
+ if (output != 0) {
+ CHECK(gnutls_x509_trust_list_verify_crt(tlist, cert,
+ cert_chain_length, 0,
+ &output,
+ print_details_func));
+ }
+
+ if (output & GNUTLS_CERT_INVALID) {
+ fprintf(stderr, "Not trusted\n");
+ CHECK(gnutls_certificate_verification_status_print(output,
+ GNUTLS_CRT_X509,
+ &txt, 0));
+
+ fprintf(stderr, "Error: %s\n", txt.data);
+ gnutls_free(txt.data);
+ } else
+ fprintf(stderr, "Trusted\n");
+
+ /* Check if the name in the first certificate matches our destination!
+ */
+ if (!gnutls_x509_crt_check_hostname(cert[0], hostname)) {
+ printf
+ ("The certificate's owner does not match hostname '%s'\n",
+ hostname);
+ }
+
+ for (i = 0; i < cert_chain_length; i++) {
+ gnutls_x509_crt_deinit(cert[i]);
+ }
gnutls_free(cert);
- gnutls_x509_trust_list_deinit(tlist, 1);
+ gnutls_x509_trust_list_deinit(tlist, 1);
- return;
+ return;
}
static int
print_details_func(gnutls_x509_crt_t cert,
- gnutls_x509_crt_t issuer, gnutls_x509_crl_t crl,
- unsigned int verification_output)
+ gnutls_x509_crt_t issuer, gnutls_x509_crl_t crl,
+ unsigned int verification_output)
{
- char name[512];
- char issuer_name[512];
- size_t name_size;
- size_t issuer_name_size;
+ char name[512];
+ char issuer_name[512];
+ size_t name_size;
+ size_t issuer_name_size;
- issuer_name_size = sizeof(issuer_name);
- gnutls_x509_crt_get_issuer_dn(cert, issuer_name,
- &issuer_name_size);
+ issuer_name_size = sizeof(issuer_name);
+ gnutls_x509_crt_get_issuer_dn(cert, issuer_name, &issuer_name_size);
- name_size = sizeof(name);
- gnutls_x509_crt_get_dn(cert, name, &name_size);
+ name_size = sizeof(name);
+ gnutls_x509_crt_get_dn(cert, name, &name_size);
- fprintf(stdout, "\tSubject: %s\n", name);
- fprintf(stdout, "\tIssuer: %s\n", issuer_name);
+ fprintf(stdout, "\tSubject: %s\n", name);
+ fprintf(stdout, "\tIssuer: %s\n", issuer_name);
- if (issuer != NULL) {
- issuer_name_size = sizeof(issuer_name);
- gnutls_x509_crt_get_dn(issuer, issuer_name,
- &issuer_name_size);
+ if (issuer != NULL) {
+ issuer_name_size = sizeof(issuer_name);
+ gnutls_x509_crt_get_dn(issuer, issuer_name, &issuer_name_size);
- fprintf(stdout, "\tVerified against: %s\n", issuer_name);
- }
+ fprintf(stdout, "\tVerified against: %s\n", issuer_name);
+ }
- if (crl != NULL) {
- issuer_name_size = sizeof(issuer_name);
- gnutls_x509_crl_get_issuer_dn(crl, issuer_name,
- &issuer_name_size);
+ if (crl != NULL) {
+ issuer_name_size = sizeof(issuer_name);
+ gnutls_x509_crl_get_issuer_dn(crl, issuer_name,
+ &issuer_name_size);
- fprintf(stdout, "\tVerified against CRL of: %s\n",
- issuer_name);
- }
+ fprintf(stdout, "\tVerified against CRL of: %s\n", issuer_name);
+ }
- fprintf(stdout, "\tVerification output: %x\n\n",
- verification_output);
+ fprintf(stdout, "\tVerification output: %x\n\n", verification_output);
- return 0;
+ return 0;
}
diff --git a/doc/examples/ex-x509-info.c b/doc/examples/ex-x509-info.c
index a54aeff468..f312a38ba8 100644
--- a/doc/examples/ex-x509-info.c
+++ b/doc/examples/ex-x509-info.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -13,21 +13,21 @@
static const char *bin2hex(const void *bin, size_t bin_size)
{
- static char printable[110];
- const unsigned char *_bin = bin;
- char *print;
- size_t i;
+ static char printable[110];
+ const unsigned char *_bin = bin;
+ char *print;
+ size_t i;
- if (bin_size > 50)
- bin_size = 50;
+ if (bin_size > 50)
+ bin_size = 50;
- print = printable;
- for (i = 0; i < bin_size; i++) {
- sprintf(print, "%.2x ", _bin[i]);
- print += 2;
- }
+ print = printable;
+ for (i = 0; i < bin_size; i++) {
+ sprintf(print, "%.2x ", _bin[i]);
+ print += 2;
+ }
- return printable;
+ return printable;
}
/* This function will print information about this session's peer
@@ -35,91 +35,88 @@ static const char *bin2hex(const void *bin, size_t bin_size)
*/
void print_x509_certificate_info(gnutls_session_t session)
{
- char serial[40];
- char dn[256];
- size_t size;
- unsigned int algo, bits;
- time_t expiration_time, activation_time;
- const gnutls_datum_t *cert_list;
- unsigned int cert_list_size = 0;
- gnutls_x509_crt_t cert;
- gnutls_datum_t cinfo;
+ char serial[40];
+ char dn[256];
+ size_t size;
+ unsigned int algo, bits;
+ time_t expiration_time, activation_time;
+ const gnutls_datum_t *cert_list;
+ unsigned int cert_list_size = 0;
+ gnutls_x509_crt_t cert;
+ gnutls_datum_t cinfo;
- /* This function only works for X.509 certificates.
- */
- if (gnutls_certificate_type_get(session) != GNUTLS_CRT_X509)
- return;
+ /* This function only works for X.509 certificates.
+ */
+ if (gnutls_certificate_type_get(session) != GNUTLS_CRT_X509)
+ return;
- cert_list = gnutls_certificate_get_peers(session, &cert_list_size);
+ cert_list = gnutls_certificate_get_peers(session, &cert_list_size);
- printf("Peer provided %d certificates.\n", cert_list_size);
+ printf("Peer provided %d certificates.\n", cert_list_size);
- if (cert_list_size > 0) {
- int ret;
+ if (cert_list_size > 0) {
+ int ret;
- /* we only print information about the first certificate.
- */
- gnutls_x509_crt_init(&cert);
+ /* we only print information about the first certificate.
+ */
+ gnutls_x509_crt_init(&cert);
- gnutls_x509_crt_import(cert, &cert_list[0],
- GNUTLS_X509_FMT_DER);
+ gnutls_x509_crt_import(cert, &cert_list[0],
+ GNUTLS_X509_FMT_DER);
- printf("Certificate info:\n");
+ printf("Certificate info:\n");
- /* This is the preferred way of printing short information about
- a certificate. */
+ /* This is the preferred way of printing short information about
+ a certificate. */
- ret =
- gnutls_x509_crt_print(cert, GNUTLS_CRT_PRINT_ONELINE,
- &cinfo);
- if (ret == 0) {
- printf("\t%s\n", cinfo.data);
- gnutls_free(cinfo.data);
- }
+ ret =
+ gnutls_x509_crt_print(cert, GNUTLS_CRT_PRINT_ONELINE,
+ &cinfo);
+ if (ret == 0) {
+ printf("\t%s\n", cinfo.data);
+ gnutls_free(cinfo.data);
+ }
- /* If you want to extract fields manually for some other reason,
- below are popular example calls. */
+ /* If you want to extract fields manually for some other reason,
+ below are popular example calls. */
- expiration_time =
- gnutls_x509_crt_get_expiration_time(cert);
- activation_time =
- gnutls_x509_crt_get_activation_time(cert);
+ expiration_time = gnutls_x509_crt_get_expiration_time(cert);
+ activation_time = gnutls_x509_crt_get_activation_time(cert);
- printf("\tCertificate is valid since: %s",
- ctime(&activation_time));
- printf("\tCertificate expires: %s",
- ctime(&expiration_time));
+ printf("\tCertificate is valid since: %s",
+ ctime(&activation_time));
+ printf("\tCertificate expires: %s", ctime(&expiration_time));
- /* Print the serial number of the certificate.
- */
- size = sizeof(serial);
- gnutls_x509_crt_get_serial(cert, serial, &size);
+ /* Print the serial number of the certificate.
+ */
+ size = sizeof(serial);
+ gnutls_x509_crt_get_serial(cert, serial, &size);
- printf("\tCertificate serial number: %s\n",
- bin2hex(serial, size));
+ printf("\tCertificate serial number: %s\n",
+ bin2hex(serial, size));
- /* Extract some of the public key algorithm's parameters
- */
- algo = gnutls_x509_crt_get_pk_algorithm(cert, &bits);
+ /* Extract some of the public key algorithm's parameters
+ */
+ algo = gnutls_x509_crt_get_pk_algorithm(cert, &bits);
- printf("Certificate public key: %s",
- gnutls_pk_algorithm_get_name(algo));
+ printf("Certificate public key: %s",
+ gnutls_pk_algorithm_get_name(algo));
- /* Print the version of the X.509
- * certificate.
- */
- printf("\tCertificate version: #%d\n",
- gnutls_x509_crt_get_version(cert));
+ /* Print the version of the X.509
+ * certificate.
+ */
+ printf("\tCertificate version: #%d\n",
+ gnutls_x509_crt_get_version(cert));
- size = sizeof(dn);
- gnutls_x509_crt_get_dn(cert, dn, &size);
- printf("\tDN: %s\n", dn);
+ size = sizeof(dn);
+ gnutls_x509_crt_get_dn(cert, dn, &size);
+ printf("\tDN: %s\n", dn);
- size = sizeof(dn);
- gnutls_x509_crt_get_issuer_dn(cert, dn, &size);
- printf("\tIssuer's DN: %s\n", dn);
+ size = sizeof(dn);
+ gnutls_x509_crt_get_issuer_dn(cert, dn, &size);
+ printf("\tIssuer's DN: %s\n", dn);
- gnutls_x509_crt_deinit(cert);
+ gnutls_x509_crt_deinit(cert);
- }
+ }
}
diff --git a/doc/examples/examples.h b/doc/examples/examples.h
index e5641a52e4..910cc0b0ad 100644
--- a/doc/examples/examples.h
+++ b/doc/examples/examples.h
@@ -1,10 +1,10 @@
#ifndef EXAMPLES_H
-#define EXAMPLES_H
+# define EXAMPLES_H
void check_alert(gnutls_session_t session, int ret);
int write_pkcs12(const gnutls_datum_t * cert,
- const gnutls_datum_t * pkcs8_key, const char *password);
+ const gnutls_datum_t * pkcs8_key, const char *password);
void verify_certificate(gnutls_session_t session, const char *hostname);
@@ -16,9 +16,9 @@ int _ssh_verify_certificate_callback(gnutls_session_t session);
void
verify_certificate_chain(const char *hostname,
- const gnutls_datum_t * cert_chain,
- int cert_chain_length);
+ const gnutls_datum_t * cert_chain,
+ int cert_chain_length);
int verify_certificate_callback(gnutls_session_t session);
-#endif /* EXAMPLES_H */
+#endif /* EXAMPLES_H */
diff --git a/doc/examples/print-ciphersuites.c b/doc/examples/print-ciphersuites.c
index c0b83216dd..ab26088786 100644
--- a/doc/examples/print-ciphersuites.c
+++ b/doc/examples/print-ciphersuites.c
@@ -8,52 +8,51 @@
static void print_cipher_suite_list(const char *priorities)
{
- size_t i;
- int ret;
- unsigned int idx;
- const char *name;
- const char *err;
- unsigned char id[2];
- gnutls_protocol_t version;
- gnutls_priority_t pcache;
-
- if (priorities != NULL) {
- printf("Cipher suites for %s\n", priorities);
-
- ret = gnutls_priority_init(&pcache, priorities, &err);
- if (ret < 0) {
- fprintf(stderr, "Syntax error at: %s\n", err);
- exit(1);
- }
-
- for (i = 0;; i++) {
- ret =
- gnutls_priority_get_cipher_suite_index(pcache,
- i,
- &idx);
- if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
- break;
- if (ret == GNUTLS_E_UNKNOWN_CIPHER_SUITE)
- continue;
-
- name =
- gnutls_cipher_suite_info(idx, id, NULL, NULL,
- NULL, &version);
-
- if (name != NULL)
- printf("%-50s\t0x%02x, 0x%02x\t%s\n",
- name, (unsigned char) id[0],
- (unsigned char) id[1],
- gnutls_protocol_get_name(version));
- }
-
- return;
- }
+ size_t i;
+ int ret;
+ unsigned int idx;
+ const char *name;
+ const char *err;
+ unsigned char id[2];
+ gnutls_protocol_t version;
+ gnutls_priority_t pcache;
+
+ if (priorities != NULL) {
+ printf("Cipher suites for %s\n", priorities);
+
+ ret = gnutls_priority_init(&pcache, priorities, &err);
+ if (ret < 0) {
+ fprintf(stderr, "Syntax error at: %s\n", err);
+ exit(1);
+ }
+
+ for (i = 0;; i++) {
+ ret =
+ gnutls_priority_get_cipher_suite_index(pcache,
+ i, &idx);
+ if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ break;
+ if (ret == GNUTLS_E_UNKNOWN_CIPHER_SUITE)
+ continue;
+
+ name =
+ gnutls_cipher_suite_info(idx, id, NULL, NULL,
+ NULL, &version);
+
+ if (name != NULL)
+ printf("%-50s\t0x%02x, 0x%02x\t%s\n",
+ name, (unsigned char)id[0],
+ (unsigned char)id[1],
+ gnutls_protocol_get_name(version));
+ }
+
+ return;
+ }
}
int main(int argc, char **argv)
{
- if (argc > 1)
- print_cipher_suite_list(argv[1]);
- return 0;
+ if (argc > 1)
+ print_cipher_suite_list(argv[1]);
+ return 0;
}
diff --git a/doc/examples/tcp.c b/doc/examples/tcp.c
index a9b2f0ddaf..283f12342d 100644
--- a/doc/examples/tcp.c
+++ b/doc/examples/tcp.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -22,33 +22,33 @@ void tcp_close(int sd);
*/
extern int tcp_connect(void)
{
- const char *PORT = "5556";
- const char *SERVER = "127.0.0.1";
- int err, sd;
- struct sockaddr_in sa;
-
- /* connects to server
- */
- sd = socket(AF_INET, SOCK_STREAM, 0);
-
- memset(&sa, '\0', sizeof(sa));
- sa.sin_family = AF_INET;
- sa.sin_port = htons(atoi(PORT));
- inet_pton(AF_INET, SERVER, &sa.sin_addr);
-
- err = connect(sd, (struct sockaddr *) &sa, sizeof(sa));
- if (err < 0) {
- fprintf(stderr, "Connect error\n");
- exit(1);
- }
-
- return sd;
+ const char *PORT = "5556";
+ const char *SERVER = "127.0.0.1";
+ int err, sd;
+ struct sockaddr_in sa;
+
+ /* connects to server
+ */
+ sd = socket(AF_INET, SOCK_STREAM, 0);
+
+ memset(&sa, '\0', sizeof(sa));
+ sa.sin_family = AF_INET;
+ sa.sin_port = htons(atoi(PORT));
+ inet_pton(AF_INET, SERVER, &sa.sin_addr);
+
+ err = connect(sd, (struct sockaddr *)&sa, sizeof(sa));
+ if (err < 0) {
+ fprintf(stderr, "Connect error\n");
+ exit(1);
+ }
+
+ return sd;
}
/* closes the given socket descriptor.
*/
extern void tcp_close(int sd)
{
- shutdown(sd, SHUT_RDWR); /* no more receptions */
- close(sd);
+ shutdown(sd, SHUT_RDWR); /* no more receptions */
+ close(sd);
}
diff --git a/doc/examples/tlsproxy/buffer.c b/doc/examples/tlsproxy/buffer.c
index 05c82121fe..e983495f80 100644
--- a/doc/examples/tlsproxy/buffer.c
+++ b/doc/examples/tlsproxy/buffer.c
@@ -29,14 +29,13 @@ OTHER DEALINGS IN THE SOFTWARE.
#include "buffer.h"
-struct buffer
-{
- char *buf;
- ssize_t size;
- ssize_t hwm;
- ssize_t ridx;
- ssize_t widx;
- int empty;
+struct buffer {
+ char *buf;
+ ssize_t size;
+ ssize_t hwm;
+ ssize_t ridx;
+ ssize_t widx;
+ int empty;
};
/* the buffer is organised internally as follows:
@@ -76,153 +75,136 @@ struct buffer
*
*/
-buffer_t *
-bufNew (ssize_t size, ssize_t hwm)
+buffer_t *bufNew(ssize_t size, ssize_t hwm)
{
- buffer_t *b = calloc (1, sizeof (buffer_t));
- if (!b) return NULL;
-
- b->buf = calloc (1, size);
- b->size = size;
- b->hwm = hwm;
- b->empty = 1;
- return b;
+ buffer_t *b = calloc(1, sizeof(buffer_t));
+ if (!b)
+ return NULL;
+
+ b->buf = calloc(1, size);
+ b->size = size;
+ b->hwm = hwm;
+ b->empty = 1;
+ return b;
}
-
-void
-bufFree (buffer_t * b)
+void bufFree(buffer_t * b)
{
- free (b->buf);
- free (b);
+ free(b->buf);
+ free(b);
}
/* get a maximal span to read. Returns 0 if buffer
* is empty
*/
-ssize_t
-bufGetReadSpan (buffer_t * b, void **addr)
+ssize_t bufGetReadSpan(buffer_t * b, void **addr)
{
- if (b->empty)
- {
- *addr = NULL;
- return 0;
- }
- *addr = &(b->buf[b->ridx]);
- ssize_t len = b->widx - b->ridx;
- if (len <= 0)
- len = b->size - b->ridx;
- return len;
+ if (b->empty) {
+ *addr = NULL;
+ return 0;
+ }
+ *addr = &(b->buf[b->ridx]);
+ ssize_t len = b->widx - b->ridx;
+ if (len <= 0)
+ len = b->size - b->ridx;
+ return len;
}
/* get a maximal span to write. Returns 0 id buffer is full
*/
-ssize_t
-bufGetWriteSpan (buffer_t * b, void **addr)
+ssize_t bufGetWriteSpan(buffer_t * b, void **addr)
{
- if (b->empty)
- {
- *addr = b->buf;
- b->ridx = 0;
- b->widx = 0;
- return b->size;
- }
- if (b->ridx == b->widx)
- {
- *addr = NULL;
- return 0;
- }
- *addr = &(b->buf[b->widx]);
- ssize_t len = b->ridx - b->widx;
- if (len <= 0)
- len = b->size - b->widx;
- return len;
+ if (b->empty) {
+ *addr = b->buf;
+ b->ridx = 0;
+ b->widx = 0;
+ return b->size;
+ }
+ if (b->ridx == b->widx) {
+ *addr = NULL;
+ return 0;
+ }
+ *addr = &(b->buf[b->widx]);
+ ssize_t len = b->ridx - b->widx;
+ if (len <= 0)
+ len = b->size - b->widx;
+ return len;
}
/* mark size bytes as read */
-void
-bufDoneRead (buffer_t * b, ssize_t size)
+void bufDoneRead(buffer_t * b, ssize_t size)
{
- while (!b->empty && (size > 0))
- {
- /* empty can't occur here, so equal pointers means full */
- ssize_t len = b->widx - b->ridx;
- if (len <= 0)
- len = b->size - b->ridx;
-
- /* len is the number of bytes in one read span */
- if (len > size)
- len = size;
-
- b->ridx += len;
- if (b->ridx >= b->size)
- b->ridx = 0;
-
- if (b->ridx == b->widx)
- {
- b->ridx = 0;
- b->widx = 0;
- b->empty = 1;
+ while (!b->empty && (size > 0)) {
+ /* empty can't occur here, so equal pointers means full */
+ ssize_t len = b->widx - b->ridx;
+ if (len <= 0)
+ len = b->size - b->ridx;
+
+ /* len is the number of bytes in one read span */
+ if (len > size)
+ len = size;
+
+ b->ridx += len;
+ if (b->ridx >= b->size)
+ b->ridx = 0;
+
+ if (b->ridx == b->widx) {
+ b->ridx = 0;
+ b->widx = 0;
+ b->empty = 1;
+ }
+
+ size -= len;
}
-
- size -= len;
- }
}
/* mark size bytes as written */
-void
-bufDoneWrite (buffer_t * b, ssize_t size)
+void bufDoneWrite(buffer_t * b, ssize_t size)
{
- while ((b->empty || (b->ridx != b->widx)) && (size > 0))
- {
- /* full can't occur here, so equal pointers means empty */
- ssize_t len = b->ridx - b->widx;
- if (len <= 0)
- len = b->size - b->widx;
-
- /* len is the number of bytes in one write span */
- if (len > size)
- len = size;
-
- b->widx += len;
- if (b->widx >= b->size)
- b->widx = 0;
-
- /* it can't be empty as we've written at least one byte */
- b->empty = 0;
-
- size -= len;
- }
+ while ((b->empty || (b->ridx != b->widx)) && (size > 0)) {
+ /* full can't occur here, so equal pointers means empty */
+ ssize_t len = b->ridx - b->widx;
+ if (len <= 0)
+ len = b->size - b->widx;
+
+ /* len is the number of bytes in one write span */
+ if (len > size)
+ len = size;
+
+ b->widx += len;
+ if (b->widx >= b->size)
+ b->widx = 0;
+
+ /* it can't be empty as we've written at least one byte */
+ b->empty = 0;
+
+ size -= len;
+ }
}
-int
-bufIsEmpty (buffer_t * b)
+int bufIsEmpty(buffer_t * b)
{
- return b->empty;
+ return b->empty;
}
-int
-bufIsFull (buffer_t * b)
+int bufIsFull(buffer_t * b)
{
- return !b->empty && (b->ridx == b->widx);
+ return !b->empty && (b->ridx == b->widx);
}
-int
-bufIsOverHWM (buffer_t * b)
+int bufIsOverHWM(buffer_t * b)
{
- return bufGetCount (b) > b->hwm;
+ return bufGetCount(b) > b->hwm;
}
-ssize_t
-bufGetFree (buffer_t * b)
+ssize_t bufGetFree(buffer_t * b)
{
- return b->size - bufGetCount (b);
+ return b->size - bufGetCount(b);
}
-ssize_t
-bufGetCount (buffer_t * b)
+ssize_t bufGetCount(buffer_t * b)
{
- if (b->empty)
- return 0;
- return b->widx - b->ridx + ((b->ridx < b->widx) ? 0 : b->size);
+ if (b->empty)
+ return 0;
+ return b->widx - b->ridx + ((b->ridx < b->widx) ? 0 : b->size);
}
diff --git a/doc/examples/tlsproxy/buffer.h b/doc/examples/tlsproxy/buffer.h
index c92b9a684d..6d8a205a56 100644
--- a/doc/examples/tlsproxy/buffer.h
+++ b/doc/examples/tlsproxy/buffer.h
@@ -23,23 +23,23 @@ OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef __TLSPROXY_BUFFERS_H
-#define __TLSPROXY_BUFFERS_H
+# define __TLSPROXY_BUFFERS_H
-#include <stdlib.h>
-#include <sys/types.h>
+# include <stdlib.h>
+# include <sys/types.h>
typedef struct buffer buffer_t;
-buffer_t *bufNew (ssize_t size, ssize_t hwm);
-void bufFree (buffer_t * b);
-ssize_t bufGetReadSpan (buffer_t * b, void **addr);
-ssize_t bufGetWriteSpan (buffer_t * b, void **addr);
-void bufDoneRead (buffer_t * b, ssize_t size);
-void bufDoneWrite (buffer_t * b, ssize_t size);
-int bufIsEmpty (buffer_t * b);
-int bufIsFull (buffer_t * b);
-int bufIsOverHWM (buffer_t * b);
-ssize_t bufGetFree (buffer_t * b);
-ssize_t bufGetCount (buffer_t * b);
+buffer_t *bufNew(ssize_t size, ssize_t hwm);
+void bufFree(buffer_t * b);
+ssize_t bufGetReadSpan(buffer_t * b, void **addr);
+ssize_t bufGetWriteSpan(buffer_t * b, void **addr);
+void bufDoneRead(buffer_t * b, ssize_t size);
+void bufDoneWrite(buffer_t * b, ssize_t size);
+int bufIsEmpty(buffer_t * b);
+int bufIsFull(buffer_t * b);
+int bufIsOverHWM(buffer_t * b);
+ssize_t bufGetFree(buffer_t * b);
+ssize_t bufGetCount(buffer_t * b);
#endif
diff --git a/doc/examples/tlsproxy/crypto-gnutls.c b/doc/examples/tlsproxy/crypto-gnutls.c
index 5db51a3b9a..a9da58912b 100644
--- a/doc/examples/tlsproxy/crypto-gnutls.c
+++ b/doc/examples/tlsproxy/crypto-gnutls.c
@@ -49,71 +49,65 @@ OTHER DEALINGS IN THE SOFTWARE.
#define FALSE 0
#define TRUE 1
-struct tlssession
-{
- gnutls_certificate_credentials_t creds;
- gnutls_session_t session;
- char *hostname;
- int (*quitfn) (void *opaque);
- int (*erroutfn) (void *opaque, const char *format, va_list ap);
- int debug;
- void *opaque;
+struct tlssession {
+ gnutls_certificate_credentials_t creds;
+ gnutls_session_t session;
+ char *hostname;
+ int (*quitfn)(void *opaque);
+ int (*erroutfn)(void *opaque, const char *format, va_list ap);
+ int debug;
+ void *opaque;
};
#define BUF_SIZE 65536
#define BUF_HWM ((BUF_SIZE*3)/4)
-static int
-falsequit (void *opaque)
+static int falsequit(void *opaque)
{
- return FALSE;
+ return FALSE;
}
-static int
-quit (tlssession_t * s)
+static int quit(tlssession_t * s)
{
- return s->quitfn (s->opaque);
+ return s->quitfn(s->opaque);
}
#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
# pragma GCC diagnostic ignored "-Wsuggest-attribute=format"
#endif
-static int stderrout (void *opaque, const char *format, va_list ap)
+static int stderrout(void *opaque, const char *format, va_list ap)
{
- return vfprintf (stderr, format, ap);
+ return vfprintf(stderr, format, ap);
}
-static int
-errout (tlssession_t * s, const char *format, ...)
+static int errout(tlssession_t * s, const char *format, ...)
{
- va_list ap;
- int ret;
- va_start (ap, format);
- ret = s->erroutfn (s->opaque, format, ap);
- va_end (ap);
- return ret;
+ va_list ap;
+ int ret;
+ va_start(ap, format);
+ ret = s->erroutfn(s->opaque, format, ap);
+ va_end(ap);
+ return ret;
}
-static int
-debugout (tlssession_t * s, const char *format, ...)
+static int debugout(tlssession_t * s, const char *format, ...)
{
- va_list ap;
- int ret = 0;
- va_start (ap, format);
- if (s->debug)
- ret = s->erroutfn (s->opaque, format, ap);
- va_end (ap);
- return ret;
+ va_list ap;
+ int ret = 0;
+ va_start(ap, format);
+ if (s->debug)
+ ret = s->erroutfn(s->opaque, format, ap);
+ va_end(ap);
+ return ret;
}
-static int
-socksetnonblock (int fd, int nb)
+static int socksetnonblock(int fd, int nb)
{
- int sf = fcntl (fd, F_GETFL, 0);
- if (sf == -1)
- return -1;
- return fcntl (fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK));
+ int sf = fcntl(fd, F_GETFL, 0);
+ if (sf == -1)
+ return -1;
+ return fcntl(fd, F_SETFL, nb ? (sf | O_NONBLOCK) : (sf & ~O_NONBLOCK));
}
/* From (public domain) example file in GNUTLS
@@ -121,465 +115,422 @@ socksetnonblock (int fd, int nb)
* This function will try to verify the peer's certificate, and
* also check if the hostname matches, and the activation, expiration dates.
*/
-static int
-verify_certificate_callback (gnutls_session_t session)
+static int verify_certificate_callback(gnutls_session_t session)
{
- unsigned int status;
- int ret;
- tlssession_t *s;
-
- /* read session pointer */
- s = (tlssession_t *) gnutls_session_get_ptr (session);
-
- if (gnutls_certificate_type_get (session) != GNUTLS_CRT_X509)
- return GNUTLS_E_CERTIFICATE_ERROR;
-
- /* This verification function uses the trusted CAs in the credentials
- * structure. So you must have installed one or more CA certificates.
- */
- if (s->hostname && *s->hostname)
- ret = gnutls_certificate_verify_peers3 (session, s->hostname, &status);
- else
- ret = gnutls_certificate_verify_peers2 (session, &status);
-
- if (ret < 0)
- {
- debugout (s, "Could not verify peer certificate due to an error\n");
- return GNUTLS_E_CERTIFICATE_ERROR;
- }
-
- if (status)
- {
- gnutls_datum_t txt;
- ret = gnutls_certificate_verification_status_print(status, GNUTLS_CRT_X509,
- &txt, 0);
- if (ret >= 0)
- {
- debugout (s, "verification error: %s\n", txt.data);
- gnutls_free(txt.data);
- }
-
- return GNUTLS_E_CERTIFICATE_ERROR;
- }
-
- debugout (s, "Peer passed certificate verification\n");
-
- /* notify gnutls to continue handshake normally */
- return 0;
+ unsigned int status;
+ int ret;
+ tlssession_t *s;
+
+ /* read session pointer */
+ s = (tlssession_t *) gnutls_session_get_ptr(session);
+
+ if (gnutls_certificate_type_get(session) != GNUTLS_CRT_X509)
+ return GNUTLS_E_CERTIFICATE_ERROR;
+
+ /* This verification function uses the trusted CAs in the credentials
+ * structure. So you must have installed one or more CA certificates.
+ */
+ if (s->hostname && *s->hostname)
+ ret =
+ gnutls_certificate_verify_peers3(session, s->hostname,
+ &status);
+ else
+ ret = gnutls_certificate_verify_peers2(session, &status);
+
+ if (ret < 0) {
+ debugout(s,
+ "Could not verify peer certificate due to an error\n");
+ return GNUTLS_E_CERTIFICATE_ERROR;
+ }
+
+ if (status) {
+ gnutls_datum_t txt;
+ ret =
+ gnutls_certificate_verification_status_print(status,
+ GNUTLS_CRT_X509,
+ &txt, 0);
+ if (ret >= 0) {
+ debugout(s, "verification error: %s\n", txt.data);
+ gnutls_free(txt.data);
+ }
+
+ return GNUTLS_E_CERTIFICATE_ERROR;
+ }
+
+ debugout(s, "Peer passed certificate verification\n");
+
+ /* notify gnutls to continue handshake normally */
+ return 0;
}
-tlssession_t *
-tlssession_new (int isserver,
- char *keyfile, char *certfile, char *cacertfile,
- char *hostname, int insecure, int debug,
- int (*quitfn) (void *opaque),
- int (*erroutfn) (void *opaque, const char *format,
- va_list ap), void *opaque)
+tlssession_t *tlssession_new(int isserver,
+ char *keyfile, char *certfile, char *cacertfile,
+ char *hostname, int insecure, int debug,
+ int (*quitfn)(void *opaque),
+ int (*erroutfn)(void *opaque, const char *format,
+ va_list ap), void *opaque)
{
- int ret;
- tlssession_t *s = calloc (1, sizeof (tlssession_t));
- if (!s)
- return NULL;
-
- if (quitfn)
- s->quitfn = quitfn;
- else
- s->quitfn = falsequit;
-
- if (erroutfn)
- s->erroutfn = erroutfn;
- else
- s->erroutfn = stderrout;
-
- if (hostname)
- s->hostname = strdup (hostname);
-
- s->debug = debug;
-
- if (gnutls_certificate_allocate_credentials (&s->creds) < 0)
- {
- errout (s, "Certificate allocation memory error\n");
- goto error;
- }
-
- if (cacertfile != NULL)
- {
- ret =
- gnutls_certificate_set_x509_trust_file (s->creds, cacertfile,
- GNUTLS_X509_FMT_PEM);
- if (ret < 0)
- {
- errout (s, "Error setting the x509 trust file: %s\n",
- gnutls_strerror (ret));
- goto error;
+ int ret;
+ tlssession_t *s = calloc(1, sizeof(tlssession_t));
+ if (!s)
+ return NULL;
+
+ if (quitfn)
+ s->quitfn = quitfn;
+ else
+ s->quitfn = falsequit;
+
+ if (erroutfn)
+ s->erroutfn = erroutfn;
+ else
+ s->erroutfn = stderrout;
+
+ if (hostname)
+ s->hostname = strdup(hostname);
+
+ s->debug = debug;
+
+ if (gnutls_certificate_allocate_credentials(&s->creds) < 0) {
+ errout(s, "Certificate allocation memory error\n");
+ goto error;
+ }
+
+ if (cacertfile != NULL) {
+ ret =
+ gnutls_certificate_set_x509_trust_file(s->creds, cacertfile,
+ GNUTLS_X509_FMT_PEM);
+ if (ret < 0) {
+ errout(s, "Error setting the x509 trust file: %s\n",
+ gnutls_strerror(ret));
+ goto error;
+ }
+
+ if (!insecure) {
+ gnutls_certificate_set_verify_function(s->creds,
+ verify_certificate_callback);
+ gnutls_certificate_set_verify_flags(s->creds,
+ GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT);
+ }
+ }
+
+ if (keyfile && !certfile)
+ certfile = keyfile;
+
+ if (certfile != NULL && keyfile != NULL) {
+ ret =
+ gnutls_certificate_set_x509_key_file(s->creds, certfile,
+ keyfile,
+ GNUTLS_X509_FMT_PEM);
+
+ if (ret < 0) {
+ errout(s,
+ "Error loading certificate or key file (%s, %s): %s\n",
+ certfile, keyfile, gnutls_strerror(ret));
+ goto error;
+ }
+ }
+
+ if (isserver)
+ ret = gnutls_init(&s->session, GNUTLS_SERVER);
+ else
+ ret = gnutls_init(&s->session, GNUTLS_CLIENT);
+
+ if (ret < 0) {
+ errout(s, "Cannot initialize GNUTLS session: %s\n",
+ gnutls_strerror(ret));
+ goto error;
+ }
+
+ gnutls_session_set_ptr(s->session, (void *)s);
+
+ if (!isserver && s->hostname && *s->hostname) {
+ ret =
+ gnutls_server_name_set(s->session, GNUTLS_NAME_DNS,
+ s->hostname, strlen(s->hostname));
+ if (ret < 0) {
+ errout(s, "Cannot set server name: %s\n",
+ gnutls_strerror(ret));
+ goto error;
+ }
}
- if (!insecure)
- {
- gnutls_certificate_set_verify_function (s->creds,
- verify_certificate_callback);
- gnutls_certificate_set_verify_flags (s->creds,
- GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT);
+ ret = gnutls_set_default_priority(s->session);
+ if (ret < 0) {
+ errout(s, "Cannot set default GNUTLS session priority: %s\n",
+ gnutls_strerror(ret));
+ goto error;
}
- }
-
- if (keyfile && !certfile)
- certfile = keyfile;
-
- if (certfile != NULL && keyfile != NULL)
- {
- ret =
- gnutls_certificate_set_x509_key_file (s->creds, certfile, keyfile,
- GNUTLS_X509_FMT_PEM);
-
- if (ret < 0)
- {
- errout (s,
- "Error loading certificate or key file (%s, %s): %s\n",
- certfile, keyfile, gnutls_strerror (ret));
- goto error;
+
+ ret =
+ gnutls_credentials_set(s->session, GNUTLS_CRD_CERTIFICATE,
+ s->creds);
+ if (ret < 0) {
+ errout(s, "Cannot set session GNUTL credentials: %s\n",
+ gnutls_strerror(ret));
+ goto error;
}
- }
-
- if (isserver)
- ret = gnutls_init (&s->session, GNUTLS_SERVER);
- else
- ret = gnutls_init (&s->session, GNUTLS_CLIENT);
-
- if (ret < 0)
- {
- errout (s, "Cannot initialize GNUTLS session: %s\n",
- gnutls_strerror (ret));
- goto error;
- }
-
- gnutls_session_set_ptr (s->session, (void *) s);
-
- if (!isserver && s->hostname && *s->hostname)
- {
- ret = gnutls_server_name_set (s->session, GNUTLS_NAME_DNS, s->hostname,
- strlen (s->hostname));
- if (ret < 0)
- {
- errout (s, "Cannot set server name: %s\n",
- gnutls_strerror (ret));
- goto error;
- }
- }
-
- ret = gnutls_set_default_priority (s->session);
- if (ret < 0)
- {
- errout (s, "Cannot set default GNUTLS session priority: %s\n",
- gnutls_strerror (ret));
- goto error;
- }
-
- ret = gnutls_credentials_set (s->session, GNUTLS_CRD_CERTIFICATE, s->creds);
- if (ret < 0)
- {
- errout (s, "Cannot set session GNUTL credentials: %s\n",
- gnutls_strerror (ret));
- goto error;
- }
-
- if (isserver)
- {
- /* requests but does not check a client certificate */
- gnutls_certificate_server_set_request (s->session, GNUTLS_CERT_REQUEST);
- }
-
-
- return s;
-
-error:
- if (s->session)
- gnutls_deinit (s->session);
- free (s);
- return NULL;
+
+ if (isserver) {
+ /* requests but does not check a client certificate */
+ gnutls_certificate_server_set_request(s->session,
+ GNUTLS_CERT_REQUEST);
+ }
+
+ return s;
+
+ error:
+ if (s->session)
+ gnutls_deinit(s->session);
+ free(s);
+ return NULL;
}
-void
-tlssession_close (tlssession_t * s)
+void tlssession_close(tlssession_t * s)
{
- if (s->session)
- gnutls_deinit (s->session);
- free (s->hostname);
- free (s);
+ if (s->session)
+ gnutls_deinit(s->session);
+ free(s->hostname);
+ free(s);
}
-int
-tlssession_init (void)
+int tlssession_init(void)
{
- return gnutls_global_init ();
+ return gnutls_global_init();
}
-
-int
-tlssession_mainloop (int cryptfd, int plainfd, tlssession_t * s)
+int tlssession_mainloop(int cryptfd, int plainfd, tlssession_t * s)
{
- fd_set readfds;
- fd_set writefds;
- int maxfd;
- int tls_wr_interrupted = 0;
- int plainEOF = FALSE;
- int cryptEOF = FALSE;
- ssize_t ret;
-
- buffer_t *plainToCrypt = bufNew (BUF_SIZE, BUF_HWM);
- buffer_t *cryptToPlain = bufNew (BUF_SIZE, BUF_HWM);
-
- if (socksetnonblock (cryptfd, 0) < 0)
- {
- errout (s, "Could not turn on blocking: %m");
- goto error;
- }
-
- /* set it up to work with our FD */
- gnutls_transport_set_ptr (s->session,
- (gnutls_transport_ptr_t) (intptr_t) cryptfd);
-
-
- /* Now do the handshake */
- ret = gnutls_handshake (s->session);
- if (ret < 0)
- {
- errout (s, "TLS handshake failed: %s\n", gnutls_strerror (ret));
- goto error;
- }
-
- if (socksetnonblock (cryptfd, 1) < 0)
- {
- errout (s, "Could not turn on non-blocking on crypt FD: %m");
- goto error;
- }
-
- if (socksetnonblock (plainfd, 1) < 0)
- {
- errout (s, "Could not turn on non-blocking on plain FD: %m");
- goto error;
- }
-
- maxfd = (plainfd > cryptfd) ? plainfd + 1 : cryptfd + 1;
-
- while ((!plainEOF || !cryptEOF) && !quit (s))
- {
- struct timeval timeout;
- int result;
- int selecterrno;
- int wait = TRUE;
-
- FD_ZERO (&readfds);
- FD_ZERO (&writefds);
-
- size_t buffered = gnutls_record_check_pending (s->session);
- if (buffered)
- wait = FALSE; /* do not wait for select to return if we have buffered data */
-
- if (plainEOF)
- {
- /* plain text end has closed, but me may still have
- * data yet to write to the crypt end */
- if (bufIsEmpty (plainToCrypt) && !tls_wr_interrupted)
- {
- cryptEOF = TRUE;
- break;
- }
- }
- else
- {
- if (!bufIsEmpty (cryptToPlain))
- FD_SET (plainfd, &writefds);
- if (!bufIsOverHWM (plainToCrypt))
- FD_SET (plainfd, &readfds);
+ fd_set readfds;
+ fd_set writefds;
+ int maxfd;
+ int tls_wr_interrupted = 0;
+ int plainEOF = FALSE;
+ int cryptEOF = FALSE;
+ ssize_t ret;
+
+ buffer_t *plainToCrypt = bufNew(BUF_SIZE, BUF_HWM);
+ buffer_t *cryptToPlain = bufNew(BUF_SIZE, BUF_HWM);
+
+ if (socksetnonblock(cryptfd, 0) < 0) {
+ errout(s, "Could not turn on blocking: %m");
+ goto error;
}
- if (cryptEOF)
- {
- /* crypt end has closed, but me way still have data to
- * write from the crypt buffer */
- if (bufIsEmpty (cryptToPlain) && !buffered)
- {
- plainEOF = TRUE;
- break;
- }
- }
- else
- {
- if (!bufIsEmpty (plainToCrypt) || tls_wr_interrupted)
- FD_SET (cryptfd, &writefds);
- if (!bufIsOverHWM (cryptToPlain))
- FD_SET (cryptfd, &readfds);
- }
-
- /* Repeat select whilst EINTR happens */
- do
- {
- timeout.tv_sec = wait ? 1 : 0;
- timeout.tv_usec = 0;
- result = select (maxfd, &readfds, &writefds, NULL, &timeout);
+ /* set it up to work with our FD */
+ gnutls_transport_set_ptr(s->session,
+ (gnutls_transport_ptr_t) (intptr_t) cryptfd);
- selecterrno = errno;
+ /* Now do the handshake */
+ ret = gnutls_handshake(s->session);
+ if (ret < 0) {
+ errout(s, "TLS handshake failed: %s\n", gnutls_strerror(ret));
+ goto error;
}
- while ((result == -1) && (selecterrno == EINTR) && !quit (s));
- if (quit (s))
- break;
-
- if (FD_ISSET (plainfd, &readfds))
- {
- /* we can read at least one byte */
- void *addr = NULL;
- /* get a span of characters to write to the
- * buffer. As the empty portion may wrap the end of the
- * circular buffer this might not be all we could read.
- */
- ssize_t len = bufGetWriteSpan (plainToCrypt, &addr);
- if (len > 0)
- {
- do
- {
- ret = read (plainfd, addr, (size_t) len);
- }
- while ((ret < 0) && (errno == EINTR) && !quit (s));
- if (quit (s))
- break;
- if (ret < 0)
- {
- errout (s, "Error on read from plain socket: %m\n");
- goto error;
- }
- if (ret == 0)
- {
- plainEOF = TRUE;
- }
- else
- {
- bufDoneWrite (plainToCrypt, ret); /* mark ret bytes as written to the buffer */
- }
- }
+
+ if (socksetnonblock(cryptfd, 1) < 0) {
+ errout(s, "Could not turn on non-blocking on crypt FD: %m");
+ goto error;
}
- if (FD_ISSET (plainfd, &writefds))
- {
- /* we can write at least one byte */
- void *addr = NULL;
- /* get a span of characters to read from the buffer
- * as the full portion may wrap the end of the circular buffer
- * this might not be all we have to write.
- */
- ssize_t len = bufGetReadSpan (cryptToPlain, &addr);
- if (len > 0)
- {
- do
- {
- ret = write (plainfd, addr, (size_t) len);
- }
- while ((ret < 0) && (errno == EINTR) && !quit (s));
- if (quit (s))
- break;
- if (ret < 0)
- {
- errout (s, "Error on write to plain socket: %m\n");
- goto error;
- }
- bufDoneRead (cryptToPlain, ret); /* mark ret bytes as read from the buffer */
- }
+ if (socksetnonblock(plainfd, 1) < 0) {
+ errout(s, "Could not turn on non-blocking on plain FD: %m");
+ goto error;
}
- if (FD_ISSET (cryptfd, &readfds) || buffered)
- {
- /* we can read at least one byte */
- void *addr = NULL;
- /* get a span of characters to write to the
- * buffer. As the empty portion may wrap the end of the
- * circular buffer this might not be all we could read.
- */
- ssize_t len = bufGetWriteSpan (cryptToPlain, &addr);
- if (len > 0)
- {
- do
- {
- ret = gnutls_record_recv (s->session, addr, (size_t) len);
+ maxfd = (plainfd > cryptfd) ? plainfd + 1 : cryptfd + 1;
+
+ while ((!plainEOF || !cryptEOF) && !quit(s)) {
+ struct timeval timeout;
+ int result;
+ int selecterrno;
+ int wait = TRUE;
+
+ FD_ZERO(&readfds);
+ FD_ZERO(&writefds);
+
+ size_t buffered = gnutls_record_check_pending(s->session);
+ if (buffered)
+ wait = FALSE; /* do not wait for select to return if we have buffered data */
+
+ if (plainEOF) {
+ /* plain text end has closed, but me may still have
+ * data yet to write to the crypt end */
+ if (bufIsEmpty(plainToCrypt) && !tls_wr_interrupted) {
+ cryptEOF = TRUE;
+ break;
+ }
+ } else {
+ if (!bufIsEmpty(cryptToPlain))
+ FD_SET(plainfd, &writefds);
+ if (!bufIsOverHWM(plainToCrypt))
+ FD_SET(plainfd, &readfds);
}
- while (ret == GNUTLS_E_INTERRUPTED && !quit (s));
- /* do not loop on GNUTLS_E_AGAIN - this means we'd block so we'd loop for
- * ever
- */
- if (quit (s))
- break;
- if (ret < 0 && ret != GNUTLS_E_AGAIN)
- {
- errout (s, "Error on read from crypt socket: %s\n",
- gnutls_strerror (ret));
- goto error;
+
+ if (cryptEOF) {
+ /* crypt end has closed, but me way still have data to
+ * write from the crypt buffer */
+ if (bufIsEmpty(cryptToPlain) && !buffered) {
+ plainEOF = TRUE;
+ break;
+ }
+ } else {
+ if (!bufIsEmpty(plainToCrypt) || tls_wr_interrupted)
+ FD_SET(cryptfd, &writefds);
+ if (!bufIsOverHWM(cryptToPlain))
+ FD_SET(cryptfd, &readfds);
}
- if (ret == 0)
- {
- cryptEOF = TRUE;
+
+ /* Repeat select whilst EINTR happens */
+ do {
+ timeout.tv_sec = wait ? 1 : 0;
+ timeout.tv_usec = 0;
+ result =
+ select(maxfd, &readfds, &writefds, NULL, &timeout);
+
+ selecterrno = errno;
}
- else
- {
- bufDoneWrite (cryptToPlain, ret); /* mark ret bytes as written to the buffer */
+ while ((result == -1) && (selecterrno == EINTR) && !quit(s));
+ if (quit(s))
+ break;
+
+ if (FD_ISSET(plainfd, &readfds)) {
+ /* we can read at least one byte */
+ void *addr = NULL;
+ /* get a span of characters to write to the
+ * buffer. As the empty portion may wrap the end of the
+ * circular buffer this might not be all we could read.
+ */
+ ssize_t len = bufGetWriteSpan(plainToCrypt, &addr);
+ if (len > 0) {
+ do {
+ ret = read(plainfd, addr, (size_t)len);
+ }
+ while ((ret < 0) && (errno == EINTR)
+ && !quit(s));
+ if (quit(s))
+ break;
+ if (ret < 0) {
+ errout(s,
+ "Error on read from plain socket: %m\n");
+ goto error;
+ }
+ if (ret == 0) {
+ plainEOF = TRUE;
+ } else {
+ bufDoneWrite(plainToCrypt, ret); /* mark ret bytes as written to the buffer */
+ }
+ }
}
- }
- }
- if (FD_ISSET (cryptfd, &writefds))
- {
- /* we can write at least one byte */
- void *addr = NULL;
- /* get a span of characters to read from the buffer
- * as the full portion may wrap the end of the circular buffer
- * this might not be all we have to write.
- */
- ssize_t len = bufGetReadSpan (plainToCrypt, &addr);
- if (len > 0)
- {
- do
- {
- if (tls_wr_interrupted)
- {
- ret = gnutls_record_send (s->session, NULL, 0);
- }
- else
- {
- ret = gnutls_record_send (s->session, addr, len);
- }
+ if (FD_ISSET(plainfd, &writefds)) {
+ /* we can write at least one byte */
+ void *addr = NULL;
+ /* get a span of characters to read from the buffer
+ * as the full portion may wrap the end of the circular buffer
+ * this might not be all we have to write.
+ */
+ ssize_t len = bufGetReadSpan(cryptToPlain, &addr);
+ if (len > 0) {
+ do {
+ ret = write(plainfd, addr, (size_t)len);
+ }
+ while ((ret < 0) && (errno == EINTR)
+ && !quit(s));
+ if (quit(s))
+ break;
+ if (ret < 0) {
+ errout(s,
+ "Error on write to plain socket: %m\n");
+ goto error;
+ }
+ bufDoneRead(cryptToPlain, ret); /* mark ret bytes as read from the buffer */
+ }
}
- while (ret == GNUTLS_E_INTERRUPTED && !quit (s));
- if (quit (s))
- break;
- if (ret == GNUTLS_E_AGAIN)
- {
- /* we need to call this again with NULL parameters
- * as it blocked
- */
- tls_wr_interrupted = TRUE;
- }
- else if (ret < 0)
- {
- errout (s, "Error on write to crypto socket: %s\n",
- gnutls_strerror (ret));
- goto error;
+
+ if (FD_ISSET(cryptfd, &readfds) || buffered) {
+ /* we can read at least one byte */
+ void *addr = NULL;
+ /* get a span of characters to write to the
+ * buffer. As the empty portion may wrap the end of the
+ * circular buffer this might not be all we could read.
+ */
+ ssize_t len = bufGetWriteSpan(cryptToPlain, &addr);
+ if (len > 0) {
+ do {
+ ret =
+ gnutls_record_recv(s->session, addr,
+ (size_t)len);
+ }
+ while (ret == GNUTLS_E_INTERRUPTED && !quit(s));
+ /* do not loop on GNUTLS_E_AGAIN - this means we'd block so we'd loop for
+ * ever
+ */
+ if (quit(s))
+ break;
+ if (ret < 0 && ret != GNUTLS_E_AGAIN) {
+ errout(s,
+ "Error on read from crypt socket: %s\n",
+ gnutls_strerror(ret));
+ goto error;
+ }
+ if (ret == 0) {
+ cryptEOF = TRUE;
+ } else {
+ bufDoneWrite(cryptToPlain, ret); /* mark ret bytes as written to the buffer */
+ }
+ }
}
- else
- {
- bufDoneRead (plainToCrypt, ret); /* mark ret bytes as read from the buffer */
+
+ if (FD_ISSET(cryptfd, &writefds)) {
+ /* we can write at least one byte */
+ void *addr = NULL;
+ /* get a span of characters to read from the buffer
+ * as the full portion may wrap the end of the circular buffer
+ * this might not be all we have to write.
+ */
+ ssize_t len = bufGetReadSpan(plainToCrypt, &addr);
+ if (len > 0) {
+ do {
+ if (tls_wr_interrupted) {
+ ret =
+ gnutls_record_send
+ (s->session, NULL, 0);
+ } else {
+ ret =
+ gnutls_record_send
+ (s->session, addr, len);
+ }
+ }
+ while (ret == GNUTLS_E_INTERRUPTED && !quit(s));
+ if (quit(s))
+ break;
+ if (ret == GNUTLS_E_AGAIN) {
+ /* we need to call this again with NULL parameters
+ * as it blocked
+ */
+ tls_wr_interrupted = TRUE;
+ } else if (ret < 0) {
+ errout(s,
+ "Error on write to crypto socket: %s\n",
+ gnutls_strerror(ret));
+ goto error;
+ } else {
+ bufDoneRead(plainToCrypt, ret); /* mark ret bytes as read from the buffer */
+ }
+ }
}
- }
}
- }
- ret = 0;
- goto freereturn;
+ ret = 0;
+ goto freereturn;
-error:
- ret = -1;
+ error:
+ ret = -1;
-freereturn:
- gnutls_bye (s->session, GNUTLS_SHUT_RDWR);
- shutdown (plainfd, SHUT_RDWR);
- bufFree (plainToCrypt);
- bufFree (cryptToPlain);
- return ret;
+ freereturn:
+ gnutls_bye(s->session, GNUTLS_SHUT_RDWR);
+ shutdown(plainfd, SHUT_RDWR);
+ bufFree(plainToCrypt);
+ bufFree(cryptToPlain);
+ return ret;
}
diff --git a/doc/examples/tlsproxy/crypto-gnutls.h b/doc/examples/tlsproxy/crypto-gnutls.h
index 2b6c40261b..be04e665d2 100644
--- a/doc/examples/tlsproxy/crypto-gnutls.h
+++ b/doc/examples/tlsproxy/crypto-gnutls.h
@@ -25,19 +25,19 @@ OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef __TLSPROXY_CRYPTO_GNUTLS_H
-#define __TLSPROXY_CRYPTO_GNUTLS_H
+# define __TLSPROXY_CRYPTO_GNUTLS_H
-int tlssession_init (void);
+int tlssession_init(void);
typedef struct tlssession tlssession_t;
-tlssession_t *tlssession_new (int isserver,
- char *keyfile, char *certfile, char *cacertfile,
- char *hostname, int insecure, int debug,
- int (*quitfn) (void *opaque),
- int (*erroutfn) (void *opaque,
- const char *format,
- va_list ap), void *opaque);
-void tlssession_close (tlssession_t * s);
-int tlssession_mainloop (int cryptfd, int plainfd, tlssession_t * session);
+tlssession_t *tlssession_new(int isserver,
+ char *keyfile, char *certfile, char *cacertfile,
+ char *hostname, int insecure, int debug,
+ int (*quitfn)(void *opaque),
+ int (*erroutfn)(void *opaque,
+ const char *format,
+ va_list ap), void *opaque);
+void tlssession_close(tlssession_t * s);
+int tlssession_mainloop(int cryptfd, int plainfd, tlssession_t * session);
#endif
diff --git a/doc/examples/tlsproxy/tlsproxy.c b/doc/examples/tlsproxy/tlsproxy.c
index 8e781f76f1..f9ce373fdc 100644
--- a/doc/examples/tlsproxy/tlsproxy.c
+++ b/doc/examples/tlsproxy/tlsproxy.c
@@ -54,238 +54,211 @@ static const char *defaultport = "12345";
static volatile sig_atomic_t rxsigquit = 0;
-static int
-bindtoaddress (char *addrport)
+static int bindtoaddress(char *addrport)
{
- struct addrinfo hints;
- struct addrinfo *result, *rp;
- int fd, s;
- char addr[128];
-
- snprintf(addr, sizeof(addr), "%s", addrport);
-
- memset (&hints, 0, sizeof (struct addrinfo));
- hints.ai_flags = AI_PASSIVE; /* For wildcard IP address */
- hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */
- hints.ai_socktype = SOCK_STREAM; /* Stream socket */
- hints.ai_protocol = 0; /* any protocol */
-
- char *colon = strrchr (addr, ':');
- const char *port = defaultport;
- if (colon)
- {
- *colon = 0;
- port = colon + 1;
- }
-
- s = getaddrinfo (addr, port, &hints, &result);
- if (s != 0)
- {
- fprintf (stderr, "Error in address %s: %s\n", addr, gai_strerror (s));
- return -1;
- }
-
- /* attempt to bind to each address */
-
- for (rp = result; rp != NULL; rp = rp->ai_next)
- {
- fd = socket (rp->ai_family, rp->ai_socktype, rp->ai_protocol);
-
- if (fd >= 0)
- {
- int one = 1;
- if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &one, sizeof (one)) <
- 0)
- {
- close (fd);
- continue;
- }
- if (bind (fd, rp->ai_addr, rp->ai_addrlen) == 0)
- break;
- close (fd);
+ struct addrinfo hints;
+ struct addrinfo *result, *rp;
+ int fd, s;
+ char addr[128];
+
+ snprintf(addr, sizeof(addr), "%s", addrport);
+
+ memset(&hints, 0, sizeof(struct addrinfo));
+ hints.ai_flags = AI_PASSIVE; /* For wildcard IP address */
+ hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */
+ hints.ai_socktype = SOCK_STREAM; /* Stream socket */
+ hints.ai_protocol = 0; /* any protocol */
+
+ char *colon = strrchr(addr, ':');
+ const char *port = defaultport;
+ if (colon) {
+ *colon = 0;
+ port = colon + 1;
}
- }
- if (!rp)
- {
- fprintf (stderr, "Error binding to %s:%s: %m\n", addr, port);
- freeaddrinfo (result);
- return -1;
- }
+ s = getaddrinfo(addr, port, &hints, &result);
+ if (s != 0) {
+ fprintf(stderr, "Error in address %s: %s\n", addr,
+ gai_strerror(s));
+ return -1;
+ }
+
+ /* attempt to bind to each address */
+
+ for (rp = result; rp != NULL; rp = rp->ai_next) {
+ fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
+
+ if (fd >= 0) {
+ int one = 1;
+ if (setsockopt
+ (fd, SOL_SOCKET, SO_REUSEADDR, &one,
+ sizeof(one)) < 0) {
+ close(fd);
+ continue;
+ }
+ if (bind(fd, rp->ai_addr, rp->ai_addrlen) == 0)
+ break;
+ close(fd);
+ }
+ }
- freeaddrinfo (result); /* No longer needed */
+ if (!rp) {
+ fprintf(stderr, "Error binding to %s:%s: %m\n", addr, port);
+ freeaddrinfo(result);
+ return -1;
+ }
+
+ freeaddrinfo(result); /* No longer needed */
- if (listen (fd, 5) < 0)
- {
- close (fd);
- return -1;
- }
+ if (listen(fd, 5) < 0) {
+ close(fd);
+ return -1;
+ }
- return fd;
+ return fd;
}
-static int
-connecttoaddress (char *addrport)
+static int connecttoaddress(char *addrport)
{
- struct addrinfo hints;
- struct addrinfo *result, *rp;
- int fd, s;
- char addr[128];
-
- snprintf(addr, sizeof(addr), "%s", addrport);
-
- memset (&hints, 0, sizeof (struct addrinfo));
- hints.ai_flags = AI_PASSIVE; /* For wildcard IP address */
- hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */
- hints.ai_socktype = SOCK_STREAM; /* Stream socket */
- hints.ai_protocol = 0; /* any protocol */
-
- char *colon = strrchr (addr, ':');
- const char *port = defaultport;
- if (colon)
- {
- *colon = 0;
- port = colon + 1;
- }
-
- if (!hostname && !server)
- hostname = strdup (addr);
-
- s = getaddrinfo (addr, port, &hints, &result);
- if (s != 0)
- {
- fprintf (stderr, "Error in address %s: %s\n", addr, gai_strerror (s));
- return -1;
- }
-
- /* attempt to connect to each address */
- for (rp = result; rp != NULL; rp = rp->ai_next)
- {
- fd = socket (rp->ai_family, rp->ai_socktype, rp->ai_protocol);
- if (fd >= 0)
- {
- if (connect (fd, rp->ai_addr, rp->ai_addrlen) == 0)
- break;
- close (fd);
+ struct addrinfo hints;
+ struct addrinfo *result, *rp;
+ int fd, s;
+ char addr[128];
+
+ snprintf(addr, sizeof(addr), "%s", addrport);
+
+ memset(&hints, 0, sizeof(struct addrinfo));
+ hints.ai_flags = AI_PASSIVE; /* For wildcard IP address */
+ hints.ai_family = AF_UNSPEC; /* Allow IPv4 or IPv6 */
+ hints.ai_socktype = SOCK_STREAM; /* Stream socket */
+ hints.ai_protocol = 0; /* any protocol */
+
+ char *colon = strrchr(addr, ':');
+ const char *port = defaultport;
+ if (colon) {
+ *colon = 0;
+ port = colon + 1;
+ }
+
+ if (!hostname && !server)
+ hostname = strdup(addr);
+
+ s = getaddrinfo(addr, port, &hints, &result);
+ if (s != 0) {
+ fprintf(stderr, "Error in address %s: %s\n", addr,
+ gai_strerror(s));
+ return -1;
+ }
+
+ /* attempt to connect to each address */
+ for (rp = result; rp != NULL; rp = rp->ai_next) {
+ fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
+ if (fd >= 0) {
+ if (connect(fd, rp->ai_addr, rp->ai_addrlen) == 0)
+ break;
+ close(fd);
+ }
}
- }
- if (!rp)
- {
- fprintf (stderr, "Error connecting to %s:%s: %m\n", addr, port);
- freeaddrinfo (result);
- return -1;
- }
+ if (!rp) {
+ fprintf(stderr, "Error connecting to %s:%s: %m\n", addr, port);
+ freeaddrinfo(result);
+ return -1;
+ }
- freeaddrinfo (result); /* No longer needed */
+ freeaddrinfo(result); /* No longer needed */
- return fd;
+ return fd;
}
-static int
-quitfn (void *opaque)
+static int quitfn(void *opaque)
{
- return rxsigquit;
+ return rxsigquit;
}
-static int
-runproxy (int acceptfd)
+static int runproxy(int acceptfd)
{
- int connectfd;
- if ((connectfd = connecttoaddress (connectaddr)) < 0)
- {
- fprintf (stderr, "Could not connect\n");
- close (acceptfd);
- return -1;
- }
-
- tlssession_t *session =
- tlssession_new (server, keyfile, certfile, cacertfile, hostname, insecure,
- debug, quitfn, NULL, NULL);
- if (!session)
- {
- fprintf (stderr, "Could create TLS session\n");
- close (connectfd);
- close (acceptfd);
- return -1;
- }
-
- int ret;
- if (server)
- ret = tlssession_mainloop (acceptfd, connectfd, session);
- else
- ret = tlssession_mainloop (connectfd, acceptfd, session);
-
- tlssession_close (session);
- close (connectfd);
- close (acceptfd);
-
- if (ret < 0)
- {
- fprintf (stderr, "TLS proxy exited with an error\n");
- return -1;
- }
- return 0;
+ int connectfd;
+ if ((connectfd = connecttoaddress(connectaddr)) < 0) {
+ fprintf(stderr, "Could not connect\n");
+ close(acceptfd);
+ return -1;
+ }
+
+ tlssession_t *session =
+ tlssession_new(server, keyfile, certfile, cacertfile, hostname,
+ insecure,
+ debug, quitfn, NULL, NULL);
+ if (!session) {
+ fprintf(stderr, "Could create TLS session\n");
+ close(connectfd);
+ close(acceptfd);
+ return -1;
+ }
+
+ int ret;
+ if (server)
+ ret = tlssession_mainloop(acceptfd, connectfd, session);
+ else
+ ret = tlssession_mainloop(connectfd, acceptfd, session);
+
+ tlssession_close(session);
+ close(connectfd);
+ close(acceptfd);
+
+ if (ret < 0) {
+ fprintf(stderr, "TLS proxy exited with an error\n");
+ return -1;
+ }
+ return 0;
}
-static int
-runlistener (void)
+static int runlistener(void)
{
- int listenfd;
- if ((listenfd = bindtoaddress (listenaddr)) < 0)
- {
- fprintf (stderr, "Could not bind listener\n");
- return -1;
- }
-
- /*
- if (!nofork)
- daemon (FALSE, FALSE);
- */
-
- int fd;
- while (!rxsigquit)
- {
- do
- {
- if ((fd = accept (listenfd, NULL, NULL)) < 0)
- {
- if (errno != EINTR)
- {
- fprintf (stderr, "Accept failed\n");
- return -1;
- }
- }
+ int listenfd;
+ if ((listenfd = bindtoaddress(listenaddr)) < 0) {
+ fprintf(stderr, "Could not bind listener\n");
+ return -1;
}
- while (fd < 0 && !rxsigquit);
- if (rxsigquit)
- break;
- if (nofork < 2)
- {
- int ret = runproxy (fd);
- if (ret < 0)
- return -1;
- }
- else
- {
- int cpid = fork ();
- if (cpid == 0)
- {
- /* we're the child */
- runproxy (fd);
- exit (0);
- }
- else
- close (fd);
+
+ /*
+ if (!nofork)
+ daemon (FALSE, FALSE);
+ */
+
+ int fd;
+ while (!rxsigquit) {
+ do {
+ if ((fd = accept(listenfd, NULL, NULL)) < 0) {
+ if (errno != EINTR) {
+ fprintf(stderr, "Accept failed\n");
+ return -1;
+ }
+ }
+ }
+ while (fd < 0 && !rxsigquit);
+ if (rxsigquit)
+ break;
+ if (nofork < 2) {
+ int ret = runproxy(fd);
+ if (ret < 0)
+ return -1;
+ } else {
+ int cpid = fork();
+ if (cpid == 0) {
+ /* we're the child */
+ runproxy(fd);
+ exit(0);
+ } else
+ close(fd);
+ }
}
- }
- return 0;
+ return 0;
}
-static void
-usage (void)
+static void usage(void)
{
- fprintf (stderr, "tlsproxy\n\n\
+ fprintf(stderr, "tlsproxy\n\n\
Usage:\n\
tlsproxy [OPTIONS]\n\
\n\
@@ -310,155 +283,147 @@ Options:\n\
\n");
}
-static void
-processoptions (int argc, char **argv)
+static void processoptions(int argc, char **argv)
{
- while (1)
- {
- static const struct option longopts[] = {
- {"connect", required_argument, 0, 'c'},
- {"listen", required_argument, 0, 'l'},
- {"key", required_argument, 0, 'K'},
- {"cert", required_argument, 0, 'C'},
- {"cacert", required_argument, 0, 'A'},
- {"hostname", required_argument, 0, 'H'},
- {"server", no_argument, 0, 's'},
- {"insecure", no_argument, 0, 'i'},
- {"nofork", no_argument, 0, 'n'},
- {"debug", no_argument, 0, 'd'},
- {"help", no_argument, 0, 'h'},
- {0, 0, 0, 0}
- };
-
- int optidx = 0;
-
- int c =
- getopt_long (argc, argv, "c:l:K:C:A:H:sindh", longopts, &optidx);
- if (c == -1)
- break;
-
- switch (c)
- {
- case 0: /* set a flag, nothing else to do */
- break;
-
- case 'c':
- free (connectaddr);
- connectaddr = strdup (optarg);
- break;
-
- case 'l':
- free (listenaddr);
- listenaddr = strdup (optarg);
- break;
-
- case 'K':
- free (keyfile);
- keyfile = strdup (optarg);
- break;
-
- case 'C':
- free (certfile);
- certfile = strdup (optarg);
- break;
-
- case 'A':
- free (cacertfile);
- cacertfile = strdup (optarg);
- break;
-
- case 'H':
- free (hostname);
- hostname = strdup (optarg);
- break;
-
- case 's':
- server = 1;
- break;
-
- case 'i':
- insecure = 1;
- break;
-
- case 'n':
- nofork++;
- break;
-
- case 'd':
- debug++;
- break;
-
- case 'h':
- usage ();
- exit (0);
- break;
-
- default:
- usage ();
- exit (1);
+ while (1) {
+ static const struct option longopts[] = {
+ {"connect", required_argument, 0, 'c'},
+ {"listen", required_argument, 0, 'l'},
+ {"key", required_argument, 0, 'K'},
+ {"cert", required_argument, 0, 'C'},
+ {"cacert", required_argument, 0, 'A'},
+ {"hostname", required_argument, 0, 'H'},
+ {"server", no_argument, 0, 's'},
+ {"insecure", no_argument, 0, 'i'},
+ {"nofork", no_argument, 0, 'n'},
+ {"debug", no_argument, 0, 'd'},
+ {"help", no_argument, 0, 'h'},
+ {0, 0, 0, 0}
+ };
+
+ int optidx = 0;
+
+ int c = getopt_long(argc, argv, "c:l:K:C:A:H:sindh", longopts,
+ &optidx);
+ if (c == -1)
+ break;
+
+ switch (c) {
+ case 0: /* set a flag, nothing else to do */
+ break;
+
+ case 'c':
+ free(connectaddr);
+ connectaddr = strdup(optarg);
+ break;
+
+ case 'l':
+ free(listenaddr);
+ listenaddr = strdup(optarg);
+ break;
+
+ case 'K':
+ free(keyfile);
+ keyfile = strdup(optarg);
+ break;
+
+ case 'C':
+ free(certfile);
+ certfile = strdup(optarg);
+ break;
+
+ case 'A':
+ free(cacertfile);
+ cacertfile = strdup(optarg);
+ break;
+
+ case 'H':
+ free(hostname);
+ hostname = strdup(optarg);
+ break;
+
+ case 's':
+ server = 1;
+ break;
+
+ case 'i':
+ insecure = 1;
+ break;
+
+ case 'n':
+ nofork++;
+ break;
+
+ case 'd':
+ debug++;
+ break;
+
+ case 'h':
+ usage();
+ exit(0);
+ break;
+
+ default:
+ usage();
+ exit(1);
+ }
}
- }
- if (optind != argc || !connectaddr || !listenaddr)
- {
- usage ();
- exit (1);
- }
+ if (optind != argc || !connectaddr || !listenaddr) {
+ usage();
+ exit(1);
+ }
- if (!certfile && keyfile)
- certfile = strdup (keyfile);
+ if (!certfile && keyfile)
+ certfile = strdup(keyfile);
}
-static void
-handlesignal (int sig)
+static void handlesignal(int sig)
{
- switch (sig)
- {
- case SIGINT:
- case SIGTERM:
- rxsigquit++;
- break;
- default:
- break;
- }
+ switch (sig) {
+ case SIGINT:
+ case SIGTERM:
+ rxsigquit++;
+ break;
+ default:
+ break;
+ }
}
-static void
-setsignalmasks (void)
+static void setsignalmasks(void)
{
- struct sigaction sa;
- /* Set up the structure to specify the new action. */
- memset (&sa, 0, sizeof (struct sigaction));
- sa.sa_handler = handlesignal;
- sigemptyset (&sa.sa_mask);
- sa.sa_flags = 0;
- sigaction (SIGINT, &sa, NULL);
- sigaction (SIGTERM, &sa, NULL);
-
- memset (&sa, 0, sizeof (struct sigaction));
- sa.sa_handler = SIG_IGN;
- sa.sa_flags = SA_RESTART;
- sigaction (SIGPIPE, &sa, NULL);
+ struct sigaction sa;
+ /* Set up the structure to specify the new action. */
+ memset(&sa, 0, sizeof(struct sigaction));
+ sa.sa_handler = handlesignal;
+ sigemptyset(&sa.sa_mask);
+ sa.sa_flags = 0;
+ sigaction(SIGINT, &sa, NULL);
+ sigaction(SIGTERM, &sa, NULL);
+
+ memset(&sa, 0, sizeof(struct sigaction));
+ sa.sa_handler = SIG_IGN;
+ sa.sa_flags = SA_RESTART;
+ sigaction(SIGPIPE, &sa, NULL);
}
-int
-main (int argc, char **argv)
+int main(int argc, char **argv)
{
- processoptions (argc, argv);
+ processoptions(argc, argv);
- setsignalmasks ();
+ setsignalmasks();
- if (tlssession_init ())
- exit (1);
+ if (tlssession_init())
+ exit(1);
- runlistener ();
+ runlistener();
- free (connectaddr);
- free (listenaddr);
- free (keyfile);
- free (certfile);
- free (cacertfile);
- free (hostname);
+ free(connectaddr);
+ free(listenaddr);
+ free(keyfile);
+ free(certfile);
+ free(cacertfile);
+ free(hostname);
- exit (0);
+ exit(0);
}
diff --git a/doc/examples/udp.c b/doc/examples/udp.c
index 989ffcc6bf..beded4d0d1 100644
--- a/doc/examples/udp.c
+++ b/doc/examples/udp.c
@@ -1,7 +1,7 @@
/* This example code is placed in the public domain. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -22,45 +22,45 @@ void udp_close(int sd);
*/
extern int udp_connect(void)
{
- const char *PORT = "5557";
- const char *SERVER = "127.0.0.1";
- int err, sd;
+ const char *PORT = "5557";
+ const char *SERVER = "127.0.0.1";
+ int err, sd;
#if defined(IP_DONTFRAG) || defined(IP_MTU_DISCOVER)
- int optval;
+ int optval;
#endif
- struct sockaddr_in sa;
+ struct sockaddr_in sa;
- /* connects to server
- */
- sd = socket(AF_INET, SOCK_DGRAM, 0);
+ /* connects to server
+ */
+ sd = socket(AF_INET, SOCK_DGRAM, 0);
- memset(&sa, '\0', sizeof(sa));
- sa.sin_family = AF_INET;
- sa.sin_port = htons(atoi(PORT));
- inet_pton(AF_INET, SERVER, &sa.sin_addr);
+ memset(&sa, '\0', sizeof(sa));
+ sa.sin_family = AF_INET;
+ sa.sin_port = htons(atoi(PORT));
+ inet_pton(AF_INET, SERVER, &sa.sin_addr);
#if defined(IP_DONTFRAG)
- optval = 1;
- setsockopt(sd, IPPROTO_IP, IP_DONTFRAG,
- (const void *) &optval, sizeof(optval));
+ optval = 1;
+ setsockopt(sd, IPPROTO_IP, IP_DONTFRAG,
+ (const void *)&optval, sizeof(optval));
#elif defined(IP_MTU_DISCOVER)
- optval = IP_PMTUDISC_DO;
- setsockopt(sd, IPPROTO_IP, IP_MTU_DISCOVER,
- (const void *) &optval, sizeof(optval));
+ optval = IP_PMTUDISC_DO;
+ setsockopt(sd, IPPROTO_IP, IP_MTU_DISCOVER,
+ (const void *)&optval, sizeof(optval));
#endif
- err = connect(sd, (struct sockaddr *) &sa, sizeof(sa));
- if (err < 0) {
- fprintf(stderr, "Connect error\n");
- exit(1);
- }
+ err = connect(sd, (struct sockaddr *)&sa, sizeof(sa));
+ if (err < 0) {
+ fprintf(stderr, "Connect error\n");
+ exit(1);
+ }
- return sd;
+ return sd;
}
/* closes the given socket descriptor.
*/
extern void udp_close(int sd)
{
- close(sd);
+ close(sd);
}
diff --git a/doc/examples/verify.c b/doc/examples/verify.c
index 2b5fa7a9c5..62e6cfd462 100644
--- a/doc/examples/verify.c
+++ b/doc/examples/verify.c
@@ -1,5 +1,5 @@
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -16,49 +16,47 @@
* certificate. */
int verify_certificate_callback(gnutls_session_t session)
{
- unsigned int status;
- int ret, type;
- const char *hostname;
- gnutls_datum_t out;
- gnutls_typed_vdata_st data[2];
-
- /* read hostname */
- hostname = gnutls_session_get_ptr(session);
-
- /* This verification function uses the trusted CAs in the credentials
- * structure. So you must have installed one or more CA certificates.
- */
- data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)hostname;
- data[0].size = 0;
-
- data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
- data[1].size = 0;
- ret = gnutls_certificate_verify_peers(session, data, 2,
- &status);
- if (ret < 0) {
- printf("Error\n");
- return GNUTLS_E_CERTIFICATE_ERROR;
- }
-
- type = gnutls_certificate_type_get(session);
-
- ret =
- gnutls_certificate_verification_status_print(status, type,
- &out, 0);
- if (ret < 0) {
- printf("Error\n");
- return GNUTLS_E_CERTIFICATE_ERROR;
- }
-
- printf("%s", out.data);
-
- gnutls_free(out.data);
-
- if (status != 0) /* Certificate is not trusted */
- return GNUTLS_E_CERTIFICATE_ERROR;
-
- /* notify gnutls to continue handshake normally */
- return 0;
+ unsigned int status;
+ int ret, type;
+ const char *hostname;
+ gnutls_datum_t out;
+ gnutls_typed_vdata_st data[2];
+
+ /* read hostname */
+ hostname = gnutls_session_get_ptr(session);
+
+ /* This verification function uses the trusted CAs in the credentials
+ * structure. So you must have installed one or more CA certificates.
+ */
+ data[0].type = GNUTLS_DT_DNS_HOSTNAME;
+ data[0].data = (void *)hostname;
+ data[0].size = 0;
+
+ data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].size = 0;
+ ret = gnutls_certificate_verify_peers(session, data, 2, &status);
+ if (ret < 0) {
+ printf("Error\n");
+ return GNUTLS_E_CERTIFICATE_ERROR;
+ }
+
+ type = gnutls_certificate_type_get(session);
+
+ ret =
+ gnutls_certificate_verification_status_print(status, type, &out, 0);
+ if (ret < 0) {
+ printf("Error\n");
+ return GNUTLS_E_CERTIFICATE_ERROR;
+ }
+
+ printf("%s", out.data);
+
+ gnutls_free(out.data);
+
+ if (status != 0) /* Certificate is not trusted */
+ return GNUTLS_E_CERTIFICATE_ERROR;
+
+ /* notify gnutls to continue handshake normally */
+ return 0;
}
diff --git a/doc/printlist.c b/doc/printlist.c
index bda2b01531..fac3a2d795 100644
--- a/doc/printlist.c
+++ b/doc/printlist.c
@@ -55,8 +55,7 @@ static void main_texinfo(void)
printf("@heading Ciphersuites\n");
printf("@multitable @columnfractions .60 .20 .20\n");
- printf
- ("@headitem Ciphersuite name @tab TLS ID @tab Since\n");
+ printf("@headitem Ciphersuite name @tab TLS ID @tab Since\n");
for (i = 0;
(name =
gnutls_cipher_suite_info(i, id, &kx, &cipher, &mac,
@@ -64,8 +63,8 @@ static void main_texinfo(void)
printf("@item %s\n@tab 0x%02X 0x%02X\n@tab %s\n",
escape_texi_string(name, buffer,
sizeof(buffer)),
- (unsigned char) id[0],
- (unsigned char) id[1],
+ (unsigned char)id[0],
+ (unsigned char)id[1],
gnutls_protocol_get_name(version));
}
printf("@end multitable\n");
@@ -151,8 +150,7 @@ static void main_texinfo(void)
printf("\n@heading Groups\n@table @code\n");
for (; *p; p++) {
- printf("@item %s\n",
- gnutls_group_get_name(*p));
+ printf("@item %s\n", gnutls_group_get_name(*p));
}
printf("@end table\n");
}
@@ -170,8 +168,7 @@ static const char headers[] = "\\tablefirsthead{%\n"
"\\multicolumn{3}{|r|}{\\small\\sl continued on next page}\\\\\n"
"\\hline}\n"
#endif
- "\\tablelasttail{\\hline}\n"
- "\\bottomcaption{The ciphersuites table}\n\n";
+ "\\tablelasttail{\\hline}\n" "\\bottomcaption{The ciphersuites table}\n\n";
static void main_latex(void)
{
@@ -198,7 +195,7 @@ static void main_latex(void)
printf
("{\\small{%s}} & \\code{0x%02X 0x%02X} & %s",
escape_string(name, buffer, sizeof(buffer)),
- (unsigned char) id[0], (unsigned char) id[1],
+ (unsigned char)id[0], (unsigned char)id[1],
gnutls_protocol_get_name(version));
printf("\\\\\n");
}
diff --git a/extra/gnutls_openssl.c b/extra/gnutls_openssl.c
index ba53733e1a..f61d09829a 100644
--- a/extra/gnutls_openssl.c
+++ b/extra/gnutls_openssl.c
@@ -33,7 +33,7 @@
* undefine it to avoid the conflict with openssl.h.
*/
#ifdef X509_NAME
-#undef X509_NAME
+# undef X509_NAME
#endif
#include <gnutls/openssl.h>
@@ -62,7 +62,6 @@ void OpenSSL_add_all_algorithms(void)
{
}
-
/* SSL_CTX structure handling */
SSL_CTX *SSL_CTX_new(SSL_METHOD * method)
@@ -89,10 +88,9 @@ int SSL_CTX_set_default_verify_paths(SSL_CTX * ctx)
return 0;
}
-int
-SSL_CTX_use_certificate_file(SSL_CTX * ctx, const char *certfile, int type)
+int SSL_CTX_use_certificate_file(SSL_CTX * ctx, const char *certfile, int type)
{
- ctx->certfile = (char *) calloc(1, strlen(certfile) + 1);
+ ctx->certfile = (char *)calloc(1, strlen(certfile) + 1);
if (!ctx->certfile)
return -1;
memcpy(ctx->certfile, certfile, strlen(certfile));
@@ -102,10 +100,9 @@ SSL_CTX_use_certificate_file(SSL_CTX * ctx, const char *certfile, int type)
return 1;
}
-int
-SSL_CTX_use_PrivateKey_file(SSL_CTX * ctx, const char *keyfile, int type)
+int SSL_CTX_use_PrivateKey_file(SSL_CTX * ctx, const char *keyfile, int type)
{
- ctx->keyfile = (char *) calloc(1, strlen(keyfile) + 1);
+ ctx->keyfile = (char *)calloc(1, strlen(keyfile) + 1);
if (!ctx->keyfile)
return -1;
memcpy(ctx->keyfile, keyfile, strlen(keyfile));
@@ -118,7 +115,7 @@ SSL_CTX_use_PrivateKey_file(SSL_CTX * ctx, const char *keyfile, int type)
void
SSL_CTX_set_verify(SSL_CTX * ctx, int verify_mode,
- int (*verify_callback) (int, X509_STORE_CTX *))
+ int (*verify_callback)(int, X509_STORE_CTX *))
{
ctx->verify_mode = verify_mode;
ctx->verify_callback = verify_callback;
@@ -145,7 +142,6 @@ int SSL_CTX_set_cipher_list(SSL_CTX * ctx, const char *list)
return 1;
}
-
/* SSL_CTX statistics */
long SSL_CTX_sess_number(SSL_CTX * ctx)
@@ -198,8 +194,6 @@ long SSL_CTX_sess_timeouts(SSL_CTX * ctx)
return 0;
}
-
-
/* SSL structure handling */
SSL *SSL_new(SSL_CTX * ctx)
@@ -267,8 +261,7 @@ int SSL_get_error(SSL * ssl, int ret)
int SSL_set_fd(SSL * ssl, int fd)
{
- gnutls_transport_set_ptr(ssl->gnutls_state,
- GNUTLS_INT_TO_POINTER(fd));
+ gnutls_transport_set_ptr(ssl->gnutls_state, GNUTLS_INT_TO_POINTER(fd));
return 1;
}
@@ -311,7 +304,7 @@ int SSL_pending(SSL * ssl)
void
SSL_set_verify(SSL * ssl, int verify_mode,
- int (*verify_callback) (int, X509_STORE_CTX *))
+ int (*verify_callback)(int, X509_STORE_CTX *))
{
ssl->verify_mode = verify_mode;
ssl->verify_callback = verify_callback;
@@ -480,7 +473,6 @@ int SSL_want(SSL * ssl)
return SSL_NOTHING;
}
-
/* SSL_METHOD functions */
SSL_METHOD *SSLv23_client_method(void)
@@ -490,8 +482,7 @@ SSL_METHOD *SSLv23_client_method(void)
if (!m)
return NULL;
- strcpy(m->priority_string,
- "NORMAL");
+ strcpy(m->priority_string, "NORMAL");
m->connend = GNUTLS_CLIENT;
@@ -505,8 +496,7 @@ SSL_METHOD *SSLv23_server_method(void)
if (!m)
return NULL;
- strcpy(m->priority_string,
- "NORMAL");
+ strcpy(m->priority_string, "NORMAL");
m->connend = GNUTLS_SERVER;
return m;
@@ -568,7 +558,6 @@ SSL_METHOD *TLSv1_server_method(void)
return m;
}
-
/* SSL_CIPHER functions */
SSL_CIPHER *SSL_get_current_cipher(SSL * ssl)
@@ -583,8 +572,7 @@ SSL_CIPHER *SSL_get_current_cipher(SSL * ssl)
ssl->ciphersuite.mac = gnutls_mac_get(ssl->gnutls_state);
ssl->ciphersuite.compression =
gnutls_compression_get(ssl->gnutls_state);
- ssl->ciphersuite.cert =
- gnutls_certificate_type_get(ssl->gnutls_state);
+ ssl->ciphersuite.cert = gnutls_certificate_type_get(ssl->gnutls_state);
return &(ssl->ciphersuite);
}
@@ -638,7 +626,7 @@ char *SSL_CIPHER_description(SSL_CIPHER * cipher, char *buf, int size)
tmpsize = size;
local_alloc = 0;
} else {
- tmpbuf = (char *) malloc(128);
+ tmpbuf = (char *)malloc(128);
tmpsize = 128;
local_alloc = 1;
}
@@ -650,13 +638,12 @@ char *SSL_CIPHER_description(SSL_CIPHER * cipher, char *buf, int size)
gnutls_mac_get_name(cipher->mac)) == -1) {
if (local_alloc)
free(tmpbuf);
- return (char *) "Buffer too small";
+ return (char *)"Buffer too small";
}
return tmpbuf;
}
-
/* X509 functions */
X509_NAME *X509_get_subject_name(const X509 * cert)
@@ -706,13 +693,11 @@ void X509_free(const X509 * cert)
/* only get certificates as const items */
}
-
/* BIO functions */
void BIO_get_fd(gnutls_session_t gnutls_state, int *fd)
{
- gnutls_transport_ptr_t tmp =
- gnutls_transport_get_ptr(gnutls_state);
+ gnutls_transport_ptr_t tmp = gnutls_transport_get_ptr(gnutls_state);
*fd = GNUTLS_POINTER_TO_INT(tmp);
}
@@ -729,7 +714,6 @@ BIO *BIO_new_socket(int sock, int close_flag)
return bio;
}
-
/* error handling */
unsigned long ERR_get_error(void)
@@ -747,7 +731,6 @@ const char *ERR_error_string(unsigned long e, char *buf)
return gnutls_strerror(-1 * e);
}
-
/* RAND functions */
int RAND_status(void)
@@ -792,13 +775,12 @@ int RAND_egd_bytes(const char *path, int bytes)
return bytes;
}
-
/* message digest functions */
void MD5_Init(MD5_CTX * ctx)
{
int ret;
- ret = gnutls_hash_init((void *) &ctx->handle, GNUTLS_DIG_MD5);
+ ret = gnutls_hash_init((void *)&ctx->handle, GNUTLS_DIG_MD5);
if (ret < 0)
abort();
}
@@ -827,7 +809,7 @@ unsigned char *MD5(const unsigned char *buf, unsigned long len,
void RIPEMD160_Init(RIPEMD160_CTX * ctx)
{
int ret;
- ret = gnutls_hash_init((void *) &ctx->handle, GNUTLS_DIG_RMD160);
+ ret = gnutls_hash_init((void *)&ctx->handle, GNUTLS_DIG_RMD160);
if (ret < 0)
abort();
}
diff --git a/extra/includes/gnutls/openssl.h b/extra/includes/gnutls/openssl.h
index 23ed6c1d02..aead126767 100644
--- a/extra/includes/gnutls/openssl.h
+++ b/extra/includes/gnutls/openssl.h
@@ -29,23 +29,23 @@
*/
#ifndef GNUTLS_OPENSSL_H
-#define GNUTLS_OPENSSL_H
+# define GNUTLS_OPENSSL_H
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
-#include <gnutls/gnutls.h>
+# include <gnutls/gnutls.h>
/* Extra definitions that no longer exist in gnutls.
*/
-#define GNUTLS_X509_CN_SIZE 256
-#define GNUTLS_X509_C_SIZE 3
-#define GNUTLS_X509_O_SIZE 256
-#define GNUTLS_X509_OU_SIZE 256
-#define GNUTLS_X509_L_SIZE 256
-#define GNUTLS_X509_S_SIZE 256
-#define GNUTLS_X509_EMAIL_SIZE 256
+# define GNUTLS_X509_CN_SIZE 256
+# define GNUTLS_X509_C_SIZE 3
+# define GNUTLS_X509_O_SIZE 256
+# define GNUTLS_X509_OU_SIZE 256
+# define GNUTLS_X509_L_SIZE 256
+# define GNUTLS_X509_S_SIZE 256
+# define GNUTLS_X509_EMAIL_SIZE 256
typedef struct {
char common_name[GNUTLS_X509_CN_SIZE];
@@ -57,37 +57,36 @@ extern "C" {
char email[GNUTLS_X509_EMAIL_SIZE];
} gnutls_x509_dn;
+# define OPENSSL_VERSION_NUMBER (0x0090604F)
+# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER
+# define OPENSSL_VERSION_TEXT ("GNUTLS " GNUTLS_VERSION " ")
-#define OPENSSL_VERSION_NUMBER (0x0090604F)
-#define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER
-#define OPENSSL_VERSION_TEXT ("GNUTLS " GNUTLS_VERSION " ")
-
-#define SSL_ERROR_NONE (0)
-#define SSL_ERROR_SSL (1)
-#define SSL_ERROR_WANT_READ (2)
-#define SSL_ERROR_WANT_WRITE (3)
-#define SSL_ERROR_SYSCALL (5)
-#define SSL_ERROR_ZERO_RETURN (6)
+# define SSL_ERROR_NONE (0)
+# define SSL_ERROR_SSL (1)
+# define SSL_ERROR_WANT_READ (2)
+# define SSL_ERROR_WANT_WRITE (3)
+# define SSL_ERROR_SYSCALL (5)
+# define SSL_ERROR_ZERO_RETURN (6)
-#define SSL_FILETYPE_PEM (GNUTLS_X509_FMT_PEM)
+# define SSL_FILETYPE_PEM (GNUTLS_X509_FMT_PEM)
-#define SSL_VERIFY_NONE (0)
+# define SSL_VERIFY_NONE (0)
-#define SSL_ST_OK (1)
+# define SSL_ST_OK (1)
-#define X509_V_ERR_CERT_NOT_YET_VALID (1)
-#define X509_V_ERR_CERT_HAS_EXPIRED (2)
-#define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT (3)
+# define X509_V_ERR_CERT_NOT_YET_VALID (1)
+# define X509_V_ERR_CERT_HAS_EXPIRED (2)
+# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT (3)
-#define SSL_OP_ALL (0x000FFFFF)
-#define SSL_OP_NO_TLSv1 (0x0400000)
+# define SSL_OP_ALL (0x000FFFFF)
+# define SSL_OP_NO_TLSv1 (0x0400000)
-#define SSL_MODE_ENABLE_PARTIAL_WRITE (0x1)
-#define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER (0x2)
-#define SSL_MODE_AUTO_RETRY (0x4)
+# define SSL_MODE_ENABLE_PARTIAL_WRITE (0x1)
+# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER (0x2)
+# define SSL_MODE_AUTO_RETRY (0x4)
-#undef X509_NAME
-#undef X509
+# undef X509_NAME
+# undef X509
typedef gnutls_x509_dn X509_NAME;
typedef gnutls_datum_t X509;
@@ -115,10 +114,10 @@ extern "C" {
SSL *ssl;
int error;
const gnutls_datum_t *cert_list;
-#define current_cert cert_list
+# define current_cert cert_list
} X509_STORE_CTX;
-#define X509_STORE_CTX_get_current_cert(ctx) ((ctx)->current_cert)
+# define X509_STORE_CTX_get_current_cert(ctx) ((ctx)->current_cert)
typedef struct _SSL_CTX {
SSL_METHOD *method;
@@ -128,7 +127,7 @@ extern "C" {
int keyfile_type;
unsigned long options;
- int (*verify_callback) (int, X509_STORE_CTX *);
+ int (*verify_callback)(int, X509_STORE_CTX *);
int verify_mode;
} SSL_CTX;
@@ -146,14 +145,14 @@ extern "C" {
int state;
unsigned long options;
- int (*verify_callback) (int, X509_STORE_CTX *);
+ int (*verify_callback)(int, X509_STORE_CTX *);
int verify_mode;
gnutls_transport_ptr_t rfd;
gnutls_transport_ptr_t wfd;
};
-#define rbio gnutls_state
+# define rbio gnutls_state
typedef struct {
void *handle;
@@ -162,25 +161,23 @@ extern "C" {
struct rsa_st;
typedef struct rsa_st RSA;
-#define MD5_CTX MD_CTX
-#define RIPEMD160_CTX MD_CTX
-
-#define OpenSSL_add_ssl_algorithms() SSL_library_init()
-#define SSLeay_add_ssl_algorithms() SSL_library_init()
-#define SSLeay_add_all_algorithms() OpenSSL_add_all_algorithms()
+# define MD5_CTX MD_CTX
+# define RIPEMD160_CTX MD_CTX
-#define SSL_get_cipher_name(ssl) SSL_CIPHER_get_name(SSL_get_current_cipher(ssl))
-#define SSL_get_cipher(ssl) SSL_get_cipher_name(ssl)
-#define SSL_get_cipher_bits(ssl,bp) SSL_CIPHER_get_bits(SSL_get_current_cipher(ssl),(bp))
-#define SSL_get_cipher_version(ssl) SSL_CIPHER_get_version(SSL_get_current_cipher(ssl))
+# define OpenSSL_add_ssl_algorithms() SSL_library_init()
+# define SSLeay_add_ssl_algorithms() SSL_library_init()
+# define SSLeay_add_all_algorithms() OpenSSL_add_all_algorithms()
+# define SSL_get_cipher_name(ssl) SSL_CIPHER_get_name(SSL_get_current_cipher(ssl))
+# define SSL_get_cipher(ssl) SSL_get_cipher_name(ssl)
+# define SSL_get_cipher_bits(ssl,bp) SSL_CIPHER_get_bits(SSL_get_current_cipher(ssl),(bp))
+# define SSL_get_cipher_version(ssl) SSL_CIPHER_get_version(SSL_get_current_cipher(ssl))
/* Library initialisation functions */
int SSL_library_init(void);
void OpenSSL_add_all_algorithms(void);
-
/* SSL_CTX structure handling */
SSL_CTX *SSL_CTX_new(SSL_METHOD * method);
@@ -191,14 +188,11 @@ extern "C" {
int SSL_CTX_use_PrivateKey_file(SSL_CTX * ctx, const char *keyfile,
int type);
void SSL_CTX_set_verify(SSL_CTX * ctx, int verify_mode,
- int (*verify_callback) (int,
- X509_STORE_CTX *));
- unsigned long SSL_CTX_set_options(SSL_CTX * ctx,
- unsigned long options);
+ int (*verify_callback)(int, X509_STORE_CTX *));
+ unsigned long SSL_CTX_set_options(SSL_CTX * ctx, unsigned long options);
long SSL_CTX_set_mode(SSL_CTX * ctx, long mode);
int SSL_CTX_set_cipher_list(SSL_CTX * ctx, const char *list);
-
/* SSL_CTX statistics */
long SSL_CTX_sess_number(SSL_CTX * ctx);
@@ -212,7 +206,6 @@ extern "C" {
long SSL_CTX_sess_misses(SSL_CTX * ctx);
long SSL_CTX_sess_timeouts(SSL_CTX * ctx);
-
/* SSL structure handling */
SSL *SSL_new(SSL_CTX * ctx);
@@ -226,8 +219,7 @@ extern "C" {
void SSL_set_connect_state(SSL * ssl);
int SSL_pending(SSL * ssl);
void SSL_set_verify(SSL * ssl, int verify_mode,
- int (*verify_callback) (int,
- X509_STORE_CTX *));
+ int (*verify_callback)(int, X509_STORE_CTX *));
const X509 *SSL_get_peer_certificate(SSL * ssl);
/* SSL connection open/close/read/write functions */
@@ -240,16 +232,15 @@ extern "C" {
int SSL_want(SSL * ssl);
-#define SSL_NOTHING (1)
-#define SSL_WRITING (2)
-#define SSL_READING (3)
-#define SSL_X509_LOOKUP (4)
-
-#define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING)
-#define SSL_want_read(s) (SSL_want(s) == SSL_READING)
-#define SSL_want_write(s) (SSL_want(s) == SSL_WRITING)
-#define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP)
+# define SSL_NOTHING (1)
+# define SSL_WRITING (2)
+# define SSL_READING (3)
+# define SSL_X509_LOOKUP (4)
+# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING)
+# define SSL_want_read(s) (SSL_want(s) == SSL_READING)
+# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING)
+# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP)
/* SSL_METHOD functions */
@@ -260,16 +251,13 @@ extern "C" {
SSL_METHOD *TLSv1_client_method(void);
SSL_METHOD *TLSv1_server_method(void);
-
/* SSL_CIPHER functions */
SSL_CIPHER *SSL_get_current_cipher(SSL * ssl);
const char *SSL_CIPHER_get_name(SSL_CIPHER * cipher);
int SSL_CIPHER_get_bits(SSL_CIPHER * cipher, int *bits);
const char *SSL_CIPHER_get_version(SSL_CIPHER * cipher);
- char *SSL_CIPHER_description(SSL_CIPHER * cipher, char *buf,
- int size);
-
+ char *SSL_CIPHER_description(SSL_CIPHER * cipher, char *buf, int size);
/* X509 functions */
@@ -278,7 +266,6 @@ extern "C" {
char *X509_NAME_oneline(gnutls_x509_dn * name, char *buf, int len);
void X509_free(const X509 * cert);
-
/* BIO functions */
void BIO_get_fd(gnutls_session_t gnutls_state, int *fd);
@@ -289,7 +276,6 @@ extern "C" {
unsigned long ERR_get_error(void);
const char *ERR_error_string(unsigned long e, char *buf);
-
/* RAND functions */
int RAND_status(void);
@@ -301,11 +287,11 @@ extern "C" {
int RAND_write_file(const char *name);
int RAND_egd_bytes(const char *path, int bytes);
-#define RAND_egd(p) RAND_egd_bytes((p), 255)
+# define RAND_egd(p) RAND_egd_bytes((p), 255)
/* message digest functions */
-#define MD5_DIGEST_LENGTH 16
+# define MD5_DIGEST_LENGTH 16
void MD5_Init(MD5_CTX * ctx);
void MD5_Update(MD5_CTX * ctx, const void *buf, int len);
@@ -314,13 +300,12 @@ extern "C" {
unsigned char *md);
void RIPEMD160_Init(RIPEMD160_CTX * ctx);
- void RIPEMD160_Update(RIPEMD160_CTX * ctx, const void *buf,
- int len);
+ void RIPEMD160_Update(RIPEMD160_CTX * ctx, const void *buf, int len);
void RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX * ctx);
unsigned char *RIPEMD160(const unsigned char *buf,
unsigned long len, unsigned char *md);
-#ifdef __cplusplus
+# ifdef __cplusplus
}
-#endif
+# endif
#endif
diff --git a/extra/openssl_compat.c b/extra/openssl_compat.c
index d8c60d4450..f50e8f61cd 100644
--- a/extra/openssl_compat.c
+++ b/extra/openssl_compat.c
@@ -86,8 +86,7 @@ gnutls_x509_extract_certificate_dn(const gnutls_datum_t * cert,
len = sizeof(ret->state_or_province_name);
gnutls_x509_crt_get_dn_by_oid(xcert,
GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME,
- 0, 0, ret->state_or_province_name,
- &len);
+ 0, 0, ret->state_or_province_name, &len);
len = sizeof(ret->email);
gnutls_x509_crt_get_dn_by_oid(xcert, GNUTLS_OID_PKCS9_EMAIL, 0, 0,
@@ -134,8 +133,7 @@ gnutls_x509_extract_certificate_issuer_dn(const gnutls_datum_t * cert,
len = sizeof(ret->organization);
gnutls_x509_crt_get_issuer_dn_by_oid(xcert,
GNUTLS_OID_X520_ORGANIZATION_NAME,
- 0, 0, ret->organization,
- &len);
+ 0, 0, ret->organization, &len);
len = sizeof(ret->organizational_unit_name);
gnutls_x509_crt_get_issuer_dn_by_oid(xcert,
@@ -152,15 +150,13 @@ gnutls_x509_extract_certificate_issuer_dn(const gnutls_datum_t * cert,
len = sizeof(ret->locality_name);
gnutls_x509_crt_get_issuer_dn_by_oid(xcert,
GNUTLS_OID_X520_LOCALITY_NAME,
- 0, 0, ret->locality_name,
- &len);
+ 0, 0, ret->locality_name, &len);
len = sizeof(ret->state_or_province_name);
gnutls_x509_crt_get_issuer_dn_by_oid(xcert,
GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME,
0, 0,
- ret->state_or_province_name,
- &len);
+ ret->state_or_province_name, &len);
len = sizeof(ret->email);
gnutls_x509_crt_get_issuer_dn_by_oid(xcert, GNUTLS_OID_PKCS9_EMAIL,
diff --git a/extra/openssl_compat.h b/extra/openssl_compat.h
index b05cacb606..f09897cdad 100644
--- a/extra/openssl_compat.h
+++ b/extra/openssl_compat.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_COMPAT8_H
-#define GNUTLS_COMPAT8_H
+# define GNUTLS_COMPAT8_H
/* Extra definitions */
-#include <gnutls/openssl.h>
+# include <gnutls/openssl.h>
int gnutls_x509_extract_certificate_dn(const gnutls_datum_t *,
gnutls_x509_dn *);
diff --git a/fuzz/certs.h b/fuzz/certs.h
index de57f9d4fe..feb831cf4e 100644
--- a/fuzz/certs.h
+++ b/fuzz/certs.h
@@ -196,59 +196,108 @@ static const uint8_t kRSAPrivateKeyDER[] = {
};
static const uint8_t kECDSACertificateDER[] = {
- 0x30, 0x82, 0x02, 0xA6, 0x30, 0x82, 0x01, 0x5E, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x08, 0x53,
- 0x66, 0x2B, 0x39, 0x11, 0xBE, 0x18, 0xCB, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7,
- 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x19, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04,
- 0x03, 0x13, 0x0E, 0x47, 0x6E, 0x75, 0x54, 0x4C, 0x53, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43,
- 0x41, 0x30, 0x22, 0x18, 0x0F, 0x32, 0x30, 0x31, 0x34, 0x30, 0x35, 0x30, 0x34, 0x31, 0x31, 0x35,
- 0x37, 0x34, 0x36, 0x5A, 0x18, 0x0F, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33,
- 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x14, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03,
- 0x13, 0x09, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x68, 0x6F, 0x73, 0x74, 0x30, 0x59, 0x30, 0x13, 0x06,
- 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03,
- 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x4C, 0x54, 0x46, 0xB0, 0x82, 0x30, 0x2F, 0x08, 0x16, 0xB7,
- 0x9F, 0x23, 0xFF, 0xCF, 0xBA, 0x05, 0x0D, 0x8B, 0x6D, 0x18, 0x58, 0xAC, 0x46, 0xB9, 0xD0, 0x9E,
- 0xAB, 0x72, 0x76, 0xF7, 0xC8, 0x0B, 0x3B, 0xD7, 0x6F, 0x6D, 0xC4, 0x97, 0xFB, 0x0D, 0x88, 0x33,
- 0xBD, 0x17, 0xE2, 0xFE, 0x43, 0x8B, 0x48, 0x99, 0x60, 0x24, 0x57, 0x9C, 0xB7, 0x25, 0x6E, 0x71,
- 0x4A, 0x3F, 0x03, 0x64, 0xDC, 0xB1, 0xA3, 0x81, 0x8D, 0x30, 0x81, 0x8A, 0x30, 0x0C, 0x06, 0x03,
- 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x02, 0x30, 0x00, 0x30, 0x14, 0x06, 0x03, 0x55, 0x1D,
- 0x11, 0x04, 0x0D, 0x30, 0x0B, 0x82, 0x09, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x68, 0x6F, 0x73, 0x74,
- 0x30, 0x13, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04, 0x0C, 0x30, 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01,
- 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04,
- 0x05, 0x03, 0x03, 0x07, 0x80, 0x00, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04,
- 0x14, 0xBE, 0xF6, 0x00, 0xC6, 0x24, 0x6B, 0x60, 0xEA, 0xB5, 0xF8, 0x13, 0xC9, 0xA5, 0xD5, 0xE0,
- 0xC9, 0x29, 0xD5, 0xD7, 0x33, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18, 0x30, 0x16,
- 0x80, 0x14, 0x4D, 0x56, 0xB7, 0x6A, 0x00, 0x58, 0xF1, 0x67, 0x92, 0xF4, 0xA6, 0x75, 0x55, 0x1B,
- 0x8E, 0x53, 0x01, 0x03, 0xEF, 0xCF, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D,
- 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x31, 0x00, 0x63, 0xCD, 0xAF, 0xA6, 0xFF, 0xCC,
- 0x78, 0x47, 0xE5, 0x00, 0xE3, 0x69, 0xF8, 0xC5, 0x19, 0x47, 0xA0, 0xD7, 0x0A, 0x95, 0x95, 0x5C,
- 0xC7, 0x88, 0x1C, 0x0A, 0x2A, 0x97, 0x1C, 0x7E, 0xC0, 0x0E, 0xBD, 0x3D, 0xFF, 0x9A, 0xBC, 0x17,
- 0x0E, 0xD9, 0xB8, 0x30, 0xDE, 0x84, 0x5F, 0x13, 0xA7, 0xA3, 0xC4, 0xA3, 0x3F, 0x01, 0x4F, 0x48,
- 0xBB, 0x8A, 0xD2, 0x59, 0x4F, 0x17, 0x6B, 0x99, 0xD7, 0xD7, 0x26, 0xF7, 0xFB, 0xFB, 0xAB, 0x8F,
- 0x79, 0x45, 0x1C, 0x6C, 0x46, 0xD3, 0x4A, 0xB3, 0x39, 0x70, 0xE2, 0x40, 0x12, 0x02, 0x60, 0xCA,
- 0xE9, 0x6E, 0xDB, 0x13, 0xC8, 0x24, 0x46, 0x38, 0xAB, 0x4A, 0xBC, 0xCE, 0xFF, 0x3C, 0x2D, 0x99,
- 0xDC, 0x53, 0xF5, 0xC2, 0x2D, 0x42, 0x3A, 0xA8, 0xB6, 0x3D, 0x4D, 0x1C, 0x1D, 0x7D, 0xF3, 0x38,
- 0x89, 0xC0, 0xDE, 0xCB, 0x90, 0x00, 0x5A, 0x5A, 0xB8, 0xA5, 0x3C, 0x76, 0xD7, 0x1D, 0x60, 0xE9,
- 0x12, 0x31, 0x2B, 0x8C, 0xD3, 0xA0, 0xA0, 0x6B, 0x67, 0x17, 0xE8, 0xAD, 0x50, 0x87, 0xCA, 0x24,
- 0x74, 0xFD, 0x4E, 0xED, 0x21, 0x10, 0xC1, 0x70, 0x59, 0x7E, 0x2B, 0x9D, 0x8B, 0x0E, 0xCB, 0x03,
- 0xEC, 0xE5, 0x75, 0xC8, 0x1E, 0xB4, 0xAA, 0x1F, 0x81, 0x93, 0x1B, 0x8D, 0x77, 0xAF, 0x96, 0x83,
- 0xBD, 0x03, 0xEC, 0x68, 0x4D, 0xE5, 0x1A, 0x7E, 0x32, 0x78, 0x85, 0x0D, 0x34, 0xBC, 0x60, 0xE2,
- 0xDC, 0x2F, 0x43, 0x42, 0x1D, 0xE5, 0x66, 0xD2, 0x45, 0xAA, 0x86, 0x84, 0x41, 0xB3, 0x31, 0xA9,
- 0xC8, 0x2F, 0xA6, 0x79, 0xC6, 0xA2, 0xBB, 0x7E, 0x08, 0x84, 0x43, 0x14, 0xBC, 0xB9, 0x30, 0xCA,
- 0xA4, 0x46, 0x51, 0xFA, 0x40, 0xF4, 0x09, 0xAC, 0x03, 0xE0, 0xBC, 0xCE, 0x2C, 0xB3, 0xB4, 0x55,
- 0xC7, 0x20, 0x4F, 0xE8, 0xAC, 0xC4, 0x95, 0x81, 0x6B, 0x4B, 0x1C, 0x02, 0x12, 0xB7, 0xA4, 0x1A,
- 0x69, 0x69, 0xF1, 0x7D, 0x97, 0x55, 0xB4, 0x53, 0x40, 0x95, 0x10, 0x3A, 0x23, 0xE9, 0x43, 0xD3,
- 0x62, 0xB7, 0x07, 0xAF, 0xE0, 0xF6, 0x81, 0x47, 0x93, 0x55, 0x1E, 0xE1, 0x0A, 0x64, 0xAA, 0x62,
+ 0x30, 0x82, 0x02, 0xA6, 0x30, 0x82, 0x01, 0x5E, 0xA0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x08, 0x53,
+ 0x66, 0x2B, 0x39, 0x11, 0xBE, 0x18, 0xCB, 0x30, 0x0D, 0x06, 0x09, 0x2A,
+ 0x86, 0x48, 0x86, 0xF7,
+ 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x19, 0x31, 0x17, 0x30, 0x15,
+ 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x0E, 0x47, 0x6E, 0x75, 0x54, 0x4C, 0x53, 0x20, 0x54, 0x65,
+ 0x73, 0x74, 0x20, 0x43,
+ 0x41, 0x30, 0x22, 0x18, 0x0F, 0x32, 0x30, 0x31, 0x34, 0x30, 0x35, 0x30,
+ 0x34, 0x31, 0x31, 0x35,
+ 0x37, 0x34, 0x36, 0x5A, 0x18, 0x0F, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32,
+ 0x33, 0x31, 0x32, 0x33,
+ 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x14, 0x31, 0x12, 0x30, 0x10, 0x06,
+ 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x09, 0x6C, 0x6F, 0x63, 0x61, 0x6C, 0x68, 0x6F, 0x73, 0x74, 0x30,
+ 0x59, 0x30, 0x13, 0x06,
+ 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 0x2A, 0x86,
+ 0x48, 0xCE, 0x3D, 0x03,
+ 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x4C, 0x54, 0x46, 0xB0, 0x82, 0x30,
+ 0x2F, 0x08, 0x16, 0xB7,
+ 0x9F, 0x23, 0xFF, 0xCF, 0xBA, 0x05, 0x0D, 0x8B, 0x6D, 0x18, 0x58, 0xAC,
+ 0x46, 0xB9, 0xD0, 0x9E,
+ 0xAB, 0x72, 0x76, 0xF7, 0xC8, 0x0B, 0x3B, 0xD7, 0x6F, 0x6D, 0xC4, 0x97,
+ 0xFB, 0x0D, 0x88, 0x33,
+ 0xBD, 0x17, 0xE2, 0xFE, 0x43, 0x8B, 0x48, 0x99, 0x60, 0x24, 0x57, 0x9C,
+ 0xB7, 0x25, 0x6E, 0x71,
+ 0x4A, 0x3F, 0x03, 0x64, 0xDC, 0xB1, 0xA3, 0x81, 0x8D, 0x30, 0x81, 0x8A,
+ 0x30, 0x0C, 0x06, 0x03,
+ 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x02, 0x30, 0x00, 0x30, 0x14,
+ 0x06, 0x03, 0x55, 0x1D,
+ 0x11, 0x04, 0x0D, 0x30, 0x0B, 0x82, 0x09, 0x6C, 0x6F, 0x63, 0x61, 0x6C,
+ 0x68, 0x6F, 0x73, 0x74,
+ 0x30, 0x13, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04, 0x0C, 0x30, 0x0A, 0x06,
+ 0x08, 0x2B, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x03, 0x01, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x1D, 0x0F,
+ 0x01, 0x01, 0xFF, 0x04,
+ 0x05, 0x03, 0x03, 0x07, 0x80, 0x00, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D,
+ 0x0E, 0x04, 0x16, 0x04,
+ 0x14, 0xBE, 0xF6, 0x00, 0xC6, 0x24, 0x6B, 0x60, 0xEA, 0xB5, 0xF8, 0x13,
+ 0xC9, 0xA5, 0xD5, 0xE0,
+ 0xC9, 0x29, 0xD5, 0xD7, 0x33, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23,
+ 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0x4D, 0x56, 0xB7, 0x6A, 0x00, 0x58, 0xF1, 0x67, 0x92, 0xF4,
+ 0xA6, 0x75, 0x55, 0x1B,
+ 0x8E, 0x53, 0x01, 0x03, 0xEF, 0xCF, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86,
+ 0x48, 0x86, 0xF7, 0x0D,
+ 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x31, 0x00, 0x63, 0xCD,
+ 0xAF, 0xA6, 0xFF, 0xCC,
+ 0x78, 0x47, 0xE5, 0x00, 0xE3, 0x69, 0xF8, 0xC5, 0x19, 0x47, 0xA0, 0xD7,
+ 0x0A, 0x95, 0x95, 0x5C,
+ 0xC7, 0x88, 0x1C, 0x0A, 0x2A, 0x97, 0x1C, 0x7E, 0xC0, 0x0E, 0xBD, 0x3D,
+ 0xFF, 0x9A, 0xBC, 0x17,
+ 0x0E, 0xD9, 0xB8, 0x30, 0xDE, 0x84, 0x5F, 0x13, 0xA7, 0xA3, 0xC4, 0xA3,
+ 0x3F, 0x01, 0x4F, 0x48,
+ 0xBB, 0x8A, 0xD2, 0x59, 0x4F, 0x17, 0x6B, 0x99, 0xD7, 0xD7, 0x26, 0xF7,
+ 0xFB, 0xFB, 0xAB, 0x8F,
+ 0x79, 0x45, 0x1C, 0x6C, 0x46, 0xD3, 0x4A, 0xB3, 0x39, 0x70, 0xE2, 0x40,
+ 0x12, 0x02, 0x60, 0xCA,
+ 0xE9, 0x6E, 0xDB, 0x13, 0xC8, 0x24, 0x46, 0x38, 0xAB, 0x4A, 0xBC, 0xCE,
+ 0xFF, 0x3C, 0x2D, 0x99,
+ 0xDC, 0x53, 0xF5, 0xC2, 0x2D, 0x42, 0x3A, 0xA8, 0xB6, 0x3D, 0x4D, 0x1C,
+ 0x1D, 0x7D, 0xF3, 0x38,
+ 0x89, 0xC0, 0xDE, 0xCB, 0x90, 0x00, 0x5A, 0x5A, 0xB8, 0xA5, 0x3C, 0x76,
+ 0xD7, 0x1D, 0x60, 0xE9,
+ 0x12, 0x31, 0x2B, 0x8C, 0xD3, 0xA0, 0xA0, 0x6B, 0x67, 0x17, 0xE8, 0xAD,
+ 0x50, 0x87, 0xCA, 0x24,
+ 0x74, 0xFD, 0x4E, 0xED, 0x21, 0x10, 0xC1, 0x70, 0x59, 0x7E, 0x2B, 0x9D,
+ 0x8B, 0x0E, 0xCB, 0x03,
+ 0xEC, 0xE5, 0x75, 0xC8, 0x1E, 0xB4, 0xAA, 0x1F, 0x81, 0x93, 0x1B, 0x8D,
+ 0x77, 0xAF, 0x96, 0x83,
+ 0xBD, 0x03, 0xEC, 0x68, 0x4D, 0xE5, 0x1A, 0x7E, 0x32, 0x78, 0x85, 0x0D,
+ 0x34, 0xBC, 0x60, 0xE2,
+ 0xDC, 0x2F, 0x43, 0x42, 0x1D, 0xE5, 0x66, 0xD2, 0x45, 0xAA, 0x86, 0x84,
+ 0x41, 0xB3, 0x31, 0xA9,
+ 0xC8, 0x2F, 0xA6, 0x79, 0xC6, 0xA2, 0xBB, 0x7E, 0x08, 0x84, 0x43, 0x14,
+ 0xBC, 0xB9, 0x30, 0xCA,
+ 0xA4, 0x46, 0x51, 0xFA, 0x40, 0xF4, 0x09, 0xAC, 0x03, 0xE0, 0xBC, 0xCE,
+ 0x2C, 0xB3, 0xB4, 0x55,
+ 0xC7, 0x20, 0x4F, 0xE8, 0xAC, 0xC4, 0x95, 0x81, 0x6B, 0x4B, 0x1C, 0x02,
+ 0x12, 0xB7, 0xA4, 0x1A,
+ 0x69, 0x69, 0xF1, 0x7D, 0x97, 0x55, 0xB4, 0x53, 0x40, 0x95, 0x10, 0x3A,
+ 0x23, 0xE9, 0x43, 0xD3,
+ 0x62, 0xB7, 0x07, 0xAF, 0xE0, 0xF6, 0x81, 0x47, 0x93, 0x55, 0x1E, 0xE1,
+ 0x0A, 0x64, 0xAA, 0x62,
0x1D, 0x8B, 0xEA, 0xFA, 0xC7, 0x15, 0xA0, 0x8F, 0x88, 0xE0
};
static const uint8_t kECDSAPrivateKeyDER[] = {
- 0x30, 0x78, 0x02, 0x01, 0x01, 0x04, 0x21, 0x00, 0xDB, 0x98, 0xC6, 0xEB, 0xDB, 0xC9, 0x68, 0x33,
- 0x25, 0x2C, 0x0B, 0xA9, 0xEC, 0x0C, 0x98, 0x4A, 0x3A, 0x01, 0x38, 0xB6, 0x10, 0x70, 0x4E, 0x24,
- 0x5B, 0xAB, 0xB7, 0xD0, 0xB2, 0xC3, 0x99, 0xAB, 0xA0, 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE,
- 0x3D, 0x03, 0x01, 0x07, 0xA1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x4C, 0x54, 0x46, 0xB0, 0x82, 0x30,
- 0x2F, 0x08, 0x16, 0xB7, 0x9F, 0x23, 0xFF, 0xCF, 0xBA, 0x05, 0x0D, 0x8B, 0x6D, 0x18, 0x58, 0xAC,
- 0x46, 0xB9, 0xD0, 0x9E, 0xAB, 0x72, 0x76, 0xF7, 0xC8, 0x0B, 0x3B, 0xD7, 0x6F, 0x6D, 0xC4, 0x97,
- 0xFB, 0x0D, 0x88, 0x33, 0xBD, 0x17, 0xE2, 0xFE, 0x43, 0x8B, 0x48, 0x99, 0x60, 0x24, 0x57, 0x9C,
+ 0x30, 0x78, 0x02, 0x01, 0x01, 0x04, 0x21, 0x00, 0xDB, 0x98, 0xC6, 0xEB,
+ 0xDB, 0xC9, 0x68, 0x33,
+ 0x25, 0x2C, 0x0B, 0xA9, 0xEC, 0x0C, 0x98, 0x4A, 0x3A, 0x01, 0x38, 0xB6,
+ 0x10, 0x70, 0x4E, 0x24,
+ 0x5B, 0xAB, 0xB7, 0xD0, 0xB2, 0xC3, 0x99, 0xAB, 0xA0, 0x0A, 0x06, 0x08,
+ 0x2A, 0x86, 0x48, 0xCE,
+ 0x3D, 0x03, 0x01, 0x07, 0xA1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x4C, 0x54,
+ 0x46, 0xB0, 0x82, 0x30,
+ 0x2F, 0x08, 0x16, 0xB7, 0x9F, 0x23, 0xFF, 0xCF, 0xBA, 0x05, 0x0D, 0x8B,
+ 0x6D, 0x18, 0x58, 0xAC,
+ 0x46, 0xB9, 0xD0, 0x9E, 0xAB, 0x72, 0x76, 0xF7, 0xC8, 0x0B, 0x3B, 0xD7,
+ 0x6F, 0x6D, 0xC4, 0x97,
+ 0xFB, 0x0D, 0x88, 0x33, 0xBD, 0x17, 0xE2, 0xFE, 0x43, 0x8B, 0x48, 0x99,
+ 0x60, 0x24, 0x57, 0x9C,
0xB7, 0x25, 0x6E, 0x71, 0x4A, 0x3F, 0x03, 0x64, 0xDC, 0xB1
};
@@ -370,70 +419,70 @@ static const uint8_t kEd448CertificateDER[] = {
/* Raw public-key key material for testing */
static char rawpk_public_key_pem1[] =
- "-----BEGIN PUBLIC KEY-----\n"
- "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAyAeBq7Ti7oVExeVT1PqH\n"
- "GBXzC+johdeVnZgZRLhDTIaIGODV5F5JhE4NNb1O/DYLlAy5IIO8tfAE2KIxlarN\n"
- "H/+AcfV6ZJQSG4SSmhoIGzfdcdjuBmFfdfhO+z/cgqiewh53/fFCQlaJweHhpmim\n"
- "/LVL/M/1Rd6Urskv/5jXGG4FVUNfhXKQag0uzWsqcztCPX7Lrqr2BSOmkA1nWzdo\n"
- "h5oBuxdooaH9/kwphqJAp03LwtaSStX/yz6Mh+ZqEbBuM4mWw/xKzbEbs7zA+d8s\n"
- "ryHXkC8nsdA+h+IRd8bPa/KuWQNfjxXKNPzgmsZddHmHtYtWvAcoIMvtyO23Y2Nh\n"
- "N4V0/7fwFLbZtfUBg4pqUl2ktkdwsNguTT1qzJCsYhsHXaqqvHy+5HR2D0w07y2X\n"
- "1qCVmfHzBZCM5OhxoeoauE+xu+5nvYrgsgPE0y5Nty0y2MrApg3digaiKUXrI+mE\n"
- "VKn9vsQeaVvw9D6PgNQM99HkbGhRMGPOzcHjS/ZeLd1zAgMBAAE=\n"
- "-----END PUBLIC KEY-----";
+ "-----BEGIN PUBLIC KEY-----\n"
+ "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAyAeBq7Ti7oVExeVT1PqH\n"
+ "GBXzC+johdeVnZgZRLhDTIaIGODV5F5JhE4NNb1O/DYLlAy5IIO8tfAE2KIxlarN\n"
+ "H/+AcfV6ZJQSG4SSmhoIGzfdcdjuBmFfdfhO+z/cgqiewh53/fFCQlaJweHhpmim\n"
+ "/LVL/M/1Rd6Urskv/5jXGG4FVUNfhXKQag0uzWsqcztCPX7Lrqr2BSOmkA1nWzdo\n"
+ "h5oBuxdooaH9/kwphqJAp03LwtaSStX/yz6Mh+ZqEbBuM4mWw/xKzbEbs7zA+d8s\n"
+ "ryHXkC8nsdA+h+IRd8bPa/KuWQNfjxXKNPzgmsZddHmHtYtWvAcoIMvtyO23Y2Nh\n"
+ "N4V0/7fwFLbZtfUBg4pqUl2ktkdwsNguTT1qzJCsYhsHXaqqvHy+5HR2D0w07y2X\n"
+ "1qCVmfHzBZCM5OhxoeoauE+xu+5nvYrgsgPE0y5Nty0y2MrApg3digaiKUXrI+mE\n"
+ "VKn9vsQeaVvw9D6PgNQM99HkbGhRMGPOzcHjS/ZeLd1zAgMBAAE=\n"
+ "-----END PUBLIC KEY-----";
const gnutls_datum_t rawpk_public_key1 = {
- (unsigned char*)rawpk_public_key_pem1,
+ (unsigned char *)rawpk_public_key_pem1,
sizeof(rawpk_public_key_pem1) - 1
};
static char rawpk_private_key_pem1[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIG4wIBAAKCAYEAyAeBq7Ti7oVExeVT1PqHGBXzC+johdeVnZgZRLhDTIaIGODV\n"
- "5F5JhE4NNb1O/DYLlAy5IIO8tfAE2KIxlarNH/+AcfV6ZJQSG4SSmhoIGzfdcdju\n"
- "BmFfdfhO+z/cgqiewh53/fFCQlaJweHhpmim/LVL/M/1Rd6Urskv/5jXGG4FVUNf\n"
- "hXKQag0uzWsqcztCPX7Lrqr2BSOmkA1nWzdoh5oBuxdooaH9/kwphqJAp03LwtaS\n"
- "StX/yz6Mh+ZqEbBuM4mWw/xKzbEbs7zA+d8sryHXkC8nsdA+h+IRd8bPa/KuWQNf\n"
- "jxXKNPzgmsZddHmHtYtWvAcoIMvtyO23Y2NhN4V0/7fwFLbZtfUBg4pqUl2ktkdw\n"
- "sNguTT1qzJCsYhsHXaqqvHy+5HR2D0w07y2X1qCVmfHzBZCM5OhxoeoauE+xu+5n\n"
- "vYrgsgPE0y5Nty0y2MrApg3digaiKUXrI+mEVKn9vsQeaVvw9D6PgNQM99HkbGhR\n"
- "MGPOzcHjS/ZeLd1zAgMBAAECggGBALHiAw3Yscqd11gJpbCMDqF7u4VG3alQ26un\n"
- "PClhl++w380H/Q62TriK1LKKpHgj8834NpXUsXg2d4jTTDcmCn6/L9GoFOzmxOeV\n"
- "0O2b4sOZvaNl397qrwLxDAPhec7z9yL4B4tcBqmJ3b3+izX6cS3gaC/uG9fDpgN9\n"
- "xOKPYBFInhOB86twAz9cc9eXysto0nJvlODDBj/xwUjvso9qydl1Or7PhWvf7Ek+\n"
- "H9ur5MUjqOWe/b/xaSWsfTrJzF/ovbRnGbXLIpozIx609TZS4wYSqU5FUjkL0zTB\n"
- "bTdb3jgFm/5SHnnThD67zbZavCxiN9wiTs3zeGlxYf8hMeaTkOYiAOR4/1bOTe2J\n"
- "ttRA1EcY+i6H0+JOtLkqwj5ka0m3lrH2KD3E/mHs1yfERQx7VVjw9IpeAKmi5lzQ\n"
- "v1lhIXiv75Mb0NMsCknGYPLHCyOY5aA2dhR8Wnr67gOYu3ssexLzMKczk5OTzl5c\n"
- "PRHJRXDpJqgOYWujF99uCYhnxonO4QKBwQDUQB0s4shWTyOylq7j4rCSbHf2zHDf\n"
- "HBYC75wyjQECNQXNk6hp5jJz2BC0XvnO7PYSRXaVauMc/S3V7V7GMsry3uugfwLy\n"
- "XNnyRVY4voe5SNt/WAArybNsPNPEIPzgkZmeWvcpoY8ESufPfVW54BvGHt3YjPjI\n"
- "gYmFUkpPRUWXfji91NpTlIrsP6jtBTYXGV4kVm+TawP06a6FdCjJQaI7Nm2dwUiX\n"
- "Cmf4oFSo8mGxi0wimX+BiLJep2bYnUF2gqMCgcEA8UKESDX3jBpyz59vpSjmfpw1\n"
- "AnlEfR6s83W92m0HfEYLulfxq9xA2zaQjy4GbaKVRfLrO2Pj3bZWs89RGXTQVGgq\n"
- "ztCLIRsL+M1SQ883e8yx4jwFaqIM+pPpvAjOOOTdpgY33h7w20tgrbzVKeOl1ghC\n"
- "IZ+K8C/tIGZXI5/TYppl7csIOoYRtzuRpyDE0tmwy658RfyxzEtfLxJoaLiFXOE0\n"
- "zFFrEvT/jto4jN+cwsdnHhxrY9+bVNUNyb9ZH7bxAoHARvcIyjEo+nKLZPKsltT8\n"
- "ZHiPw5ynQHGLin/CocQzSiGgRxPPg1jMFZ9wNl5q95ySyZkgBOUv+klMQfKTdYEW\n"
- "Cg4uigLtYUtaM36rTV2m03RgrzslE37k1pOf2juNUShdTGztpqW1w6Gnz+AAAZ3E\n"
- "q4E2e2jm5WMqL8FLxyVKF1TEc/Pu63MG3+aI/HZ5l0+MAmpD8+4b7I8VItmrqV6g\n"
- "d1vDWrN9KcL48E/q/nHL6CjC0+6uiwjBWpRt9o7djFoxAoHAJzK/e1wJVGIXtVQa\n"
- "N6Nlj7yhgD1ju1B4mTXQGuUMCkz3KtePFHU8tGExK5I2ySlZR3wobAXWx/cQLzbH\n"
- "3nL0RkKGcgPAFyjl0Q7LBulsAllHrZJC7whVQ4E0wLBNkUDeIlNwUE6Go5qjopbD\n"
- "q4KpNxUwaXYahNvEkzcNgWQ+XA7p8LDELX4K8tJi39ybHgbwiqdW2ags2xyD4ooD\n"
- "HMCeKnEMuwWfd/0GaJdcCMdsGNl9D49eg2OZQTc8fkLwoA6BAoHATQdk3VZwGGn/\n"
- "93p9vu189alkshTmir+SOo/ufH5U+j7t8cPeT7psuYAPZWS+Z6KEzvHxj54pAvcp\n"
- "mlAngD3+AfHDn/VAtYv5HVcpZ+K2K0X4v8N5HGIubgaebs2oVNz+RAWnd8K2drDG\n"
- "NcJV3C+zLziTCwvpGCIy3T/lHjKe+YczjGfhg2e6PgfwhTqPAjuhUZ8wScYo7l7V\n"
- "zAhlSL0665IXJ32zX+3LyQFDbkB6pbKy5TU+rX3DmDyj3MSbc3kR\n"
- "-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIG4wIBAAKCAYEAyAeBq7Ti7oVExeVT1PqHGBXzC+johdeVnZgZRLhDTIaIGODV\n"
+ "5F5JhE4NNb1O/DYLlAy5IIO8tfAE2KIxlarNH/+AcfV6ZJQSG4SSmhoIGzfdcdju\n"
+ "BmFfdfhO+z/cgqiewh53/fFCQlaJweHhpmim/LVL/M/1Rd6Urskv/5jXGG4FVUNf\n"
+ "hXKQag0uzWsqcztCPX7Lrqr2BSOmkA1nWzdoh5oBuxdooaH9/kwphqJAp03LwtaS\n"
+ "StX/yz6Mh+ZqEbBuM4mWw/xKzbEbs7zA+d8sryHXkC8nsdA+h+IRd8bPa/KuWQNf\n"
+ "jxXKNPzgmsZddHmHtYtWvAcoIMvtyO23Y2NhN4V0/7fwFLbZtfUBg4pqUl2ktkdw\n"
+ "sNguTT1qzJCsYhsHXaqqvHy+5HR2D0w07y2X1qCVmfHzBZCM5OhxoeoauE+xu+5n\n"
+ "vYrgsgPE0y5Nty0y2MrApg3digaiKUXrI+mEVKn9vsQeaVvw9D6PgNQM99HkbGhR\n"
+ "MGPOzcHjS/ZeLd1zAgMBAAECggGBALHiAw3Yscqd11gJpbCMDqF7u4VG3alQ26un\n"
+ "PClhl++w380H/Q62TriK1LKKpHgj8834NpXUsXg2d4jTTDcmCn6/L9GoFOzmxOeV\n"
+ "0O2b4sOZvaNl397qrwLxDAPhec7z9yL4B4tcBqmJ3b3+izX6cS3gaC/uG9fDpgN9\n"
+ "xOKPYBFInhOB86twAz9cc9eXysto0nJvlODDBj/xwUjvso9qydl1Or7PhWvf7Ek+\n"
+ "H9ur5MUjqOWe/b/xaSWsfTrJzF/ovbRnGbXLIpozIx609TZS4wYSqU5FUjkL0zTB\n"
+ "bTdb3jgFm/5SHnnThD67zbZavCxiN9wiTs3zeGlxYf8hMeaTkOYiAOR4/1bOTe2J\n"
+ "ttRA1EcY+i6H0+JOtLkqwj5ka0m3lrH2KD3E/mHs1yfERQx7VVjw9IpeAKmi5lzQ\n"
+ "v1lhIXiv75Mb0NMsCknGYPLHCyOY5aA2dhR8Wnr67gOYu3ssexLzMKczk5OTzl5c\n"
+ "PRHJRXDpJqgOYWujF99uCYhnxonO4QKBwQDUQB0s4shWTyOylq7j4rCSbHf2zHDf\n"
+ "HBYC75wyjQECNQXNk6hp5jJz2BC0XvnO7PYSRXaVauMc/S3V7V7GMsry3uugfwLy\n"
+ "XNnyRVY4voe5SNt/WAArybNsPNPEIPzgkZmeWvcpoY8ESufPfVW54BvGHt3YjPjI\n"
+ "gYmFUkpPRUWXfji91NpTlIrsP6jtBTYXGV4kVm+TawP06a6FdCjJQaI7Nm2dwUiX\n"
+ "Cmf4oFSo8mGxi0wimX+BiLJep2bYnUF2gqMCgcEA8UKESDX3jBpyz59vpSjmfpw1\n"
+ "AnlEfR6s83W92m0HfEYLulfxq9xA2zaQjy4GbaKVRfLrO2Pj3bZWs89RGXTQVGgq\n"
+ "ztCLIRsL+M1SQ883e8yx4jwFaqIM+pPpvAjOOOTdpgY33h7w20tgrbzVKeOl1ghC\n"
+ "IZ+K8C/tIGZXI5/TYppl7csIOoYRtzuRpyDE0tmwy658RfyxzEtfLxJoaLiFXOE0\n"
+ "zFFrEvT/jto4jN+cwsdnHhxrY9+bVNUNyb9ZH7bxAoHARvcIyjEo+nKLZPKsltT8\n"
+ "ZHiPw5ynQHGLin/CocQzSiGgRxPPg1jMFZ9wNl5q95ySyZkgBOUv+klMQfKTdYEW\n"
+ "Cg4uigLtYUtaM36rTV2m03RgrzslE37k1pOf2juNUShdTGztpqW1w6Gnz+AAAZ3E\n"
+ "q4E2e2jm5WMqL8FLxyVKF1TEc/Pu63MG3+aI/HZ5l0+MAmpD8+4b7I8VItmrqV6g\n"
+ "d1vDWrN9KcL48E/q/nHL6CjC0+6uiwjBWpRt9o7djFoxAoHAJzK/e1wJVGIXtVQa\n"
+ "N6Nlj7yhgD1ju1B4mTXQGuUMCkz3KtePFHU8tGExK5I2ySlZR3wobAXWx/cQLzbH\n"
+ "3nL0RkKGcgPAFyjl0Q7LBulsAllHrZJC7whVQ4E0wLBNkUDeIlNwUE6Go5qjopbD\n"
+ "q4KpNxUwaXYahNvEkzcNgWQ+XA7p8LDELX4K8tJi39ybHgbwiqdW2ags2xyD4ooD\n"
+ "HMCeKnEMuwWfd/0GaJdcCMdsGNl9D49eg2OZQTc8fkLwoA6BAoHATQdk3VZwGGn/\n"
+ "93p9vu189alkshTmir+SOo/ufH5U+j7t8cPeT7psuYAPZWS+Z6KEzvHxj54pAvcp\n"
+ "mlAngD3+AfHDn/VAtYv5HVcpZ+K2K0X4v8N5HGIubgaebs2oVNz+RAWnd8K2drDG\n"
+ "NcJV3C+zLziTCwvpGCIy3T/lHjKe+YczjGfhg2e6PgfwhTqPAjuhUZ8wScYo7l7V\n"
+ "zAhlSL0665IXJ32zX+3LyQFDbkB6pbKy5TU+rX3DmDyj3MSbc3kR\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t rawpk_private_key1 = {
- (unsigned char*)rawpk_private_key_pem1,
+ (unsigned char *)rawpk_private_key_pem1,
sizeof(rawpk_private_key_pem1) - 1
};
-#define IGNORE_CERTS \
+# define IGNORE_CERTS \
(void) kEd25519PrivateKeyDER; \
(void) kEd25519CertificateDER; \
(void) kEd448PrivateKeyDER; \
diff --git a/fuzz/fuzzer.h b/fuzz/fuzzer.h
index 92ae91e49c..66141adddc 100644
--- a/fuzz/fuzzer.h
+++ b/fuzz/fuzzer.h
@@ -15,21 +15,19 @@
* along with gnutls. If not, see <https://www.gnu.org/licenses/>.
*/
-#include <stddef.h> // size_t
-#include <stdint.h> // uint8_t
+#include <stddef.h> // size_t
+#include <stdint.h> // uint8_t
#include <gnutls/gnutls.h>
#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
- #pragma GCC diagnostic ignored "-Wvla-larger-than="
+# pragma GCC diagnostic ignored "-Wvla-larger-than="
#endif
#ifdef __cplusplus
extern "C"
#endif
-
#define VERS_STR "-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0"
-
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size);
static void __attribute__((constructor)) init(void)
{
diff --git a/fuzz/gnutls_base64_decoder_fuzzer.c b/fuzz/gnutls_base64_decoder_fuzzer.c
index c53f79de1e..8cc8bc8c1f 100644
--- a/fuzz/gnutls_base64_decoder_fuzzer.c
+++ b/fuzz/gnutls_base64_decoder_fuzzer.c
@@ -21,9 +21,9 @@
#include <gnutls/gnutls.h>
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
- gnutls_datum_t raw = {.data = (unsigned char *)data, .size = size};
+ gnutls_datum_t raw = {.data = (unsigned char *)data,.size = size };
gnutls_datum_t out;
unsigned char result[50];
size_t result_size = sizeof(result);
diff --git a/fuzz/gnutls_base64_encoder_fuzzer.c b/fuzz/gnutls_base64_encoder_fuzzer.c
index da0c767c16..07c2017bf3 100644
--- a/fuzz/gnutls_base64_encoder_fuzzer.c
+++ b/fuzz/gnutls_base64_encoder_fuzzer.c
@@ -21,9 +21,9 @@
#include <gnutls/gnutls.h>
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
- gnutls_datum_t raw = {.data = (unsigned char *)data, .size = size};
+ gnutls_datum_t raw = {.data = (unsigned char *)data,.size = size };
gnutls_datum_t out;
char result[50];
size_t result_size = sizeof(result);
diff --git a/fuzz/gnutls_client_fuzzer.c b/fuzz/gnutls_client_fuzzer.c
index b68cdb6d7c..7c3b62168a 100644
--- a/fuzz/gnutls_client_fuzzer.c
+++ b/fuzz/gnutls_client_fuzzer.c
@@ -45,8 +45,11 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
res = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
assert(res >= 0);
- /*res = gnutls_set_default_priority(session);*/
- res = gnutls_priority_set_direct(session, "NORMAL:+SIGN-EDDSA-ED448:"VERS_STR, NULL);
+ /*res = gnutls_set_default_priority(session); */
+ res =
+ gnutls_priority_set_direct(session,
+ "NORMAL:+SIGN-EDDSA-ED448:" VERS_STR,
+ NULL);
assert(res >= 0);
memdata.data = data;
diff --git a/fuzz/gnutls_client_rawpk_fuzzer.c b/fuzz/gnutls_client_rawpk_fuzzer.c
index 52dc5daacc..9302ac7453 100644
--- a/fuzz/gnutls_client_rawpk_fuzzer.c
+++ b/fuzz/gnutls_client_rawpk_fuzzer.c
@@ -22,7 +22,6 @@
*
*/
-
/***
* This fuzzer tests the behavior of the GnuTLS library in client mode,
* specifically dealing with raw public keys during the handshake.
@@ -65,21 +64,27 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
res = gnutls_certificate_allocate_credentials(&rawpk_cred);
assert(res >= 0);
-
+
res =
- gnutls_certificate_set_rawpk_key_mem(rawpk_cred,
- &rawpk_public_key1,
- &rawpk_private_key1,
- GNUTLS_X509_FMT_PEM,
- NULL, 0, NULL, 0, 0);
+ gnutls_certificate_set_rawpk_key_mem(rawpk_cred,
+ &rawpk_public_key1,
+ &rawpk_private_key1,
+ GNUTLS_X509_FMT_PEM,
+ NULL, 0, NULL, 0, 0);
assert(res >= 0);
-
- gnutls_certificate_set_known_dh_params(rawpk_cred, GNUTLS_SEC_PARAM_MEDIUM);
-
- res = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, rawpk_cred);
+
+ gnutls_certificate_set_known_dh_params(rawpk_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
+
+ res =
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, rawpk_cred);
assert(res >= 0);
- res = gnutls_priority_set_direct(session, "NORMAL:"VERS_STR":-CTYPE-ALL:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK", NULL);
+ res =
+ gnutls_priority_set_direct(session,
+ "NORMAL:" VERS_STR
+ ":-CTYPE-ALL:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
+ NULL);
assert(res >= 0);
memdata.data = data;
diff --git a/fuzz/gnutls_dn_parser_fuzzer.c b/fuzz/gnutls_dn_parser_fuzzer.c
index ccaa722990..4c7e3d6511 100644
--- a/fuzz/gnutls_dn_parser_fuzzer.c
+++ b/fuzz/gnutls_dn_parser_fuzzer.c
@@ -24,7 +24,7 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t out, raw;
gnutls_x509_dn_t dn;
@@ -48,7 +48,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
gnutls_free(out.data);
-cleanup:
+ cleanup:
gnutls_x509_dn_deinit(dn);
return 0;
}
diff --git a/fuzz/gnutls_ext_raw_parse_fuzzer.c b/fuzz/gnutls_ext_raw_parse_fuzzer.c
index f9c6becef1..d97e1f7885 100644
--- a/fuzz/gnutls_ext_raw_parse_fuzzer.c
+++ b/fuzz/gnutls_ext_raw_parse_fuzzer.c
@@ -27,12 +27,13 @@
#include "fuzzer.h"
static
-int cb(void *ctx, unsigned tls_id, const unsigned char *data, unsigned data_size)
+int cb(void *ctx, unsigned tls_id, const unsigned char *data,
+ unsigned data_size)
{
return 0;
}
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t raw;
@@ -41,9 +42,11 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
gnutls_ext_raw_parse(NULL, cb, &raw, 0);
- gnutls_ext_raw_parse(NULL, cb, &raw, GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO);
+ gnutls_ext_raw_parse(NULL, cb, &raw,
+ GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO);
- gnutls_ext_raw_parse(NULL, cb, &raw, GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO);
+ gnutls_ext_raw_parse(NULL, cb, &raw,
+ GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO);
return 0;
}
diff --git a/fuzz/gnutls_handshake_client_fuzzer.c b/fuzz/gnutls_handshake_client_fuzzer.c
index f03b830248..dec0305cc1 100644
--- a/fuzz/gnutls_handshake_client_fuzzer.c
+++ b/fuzz/gnutls_handshake_client_fuzzer.c
@@ -31,8 +31,8 @@
#include "handshake.h"
#include "fuzzer.h"
-int __attribute__ ((visibility ("protected")))
-gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
+int __attribute__((visibility("protected")))
+ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
{
memset(data, 0xff, len);
@@ -59,8 +59,11 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
res = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
assert(res >= 0);
- /*res = gnutls_set_default_priority(session);*/
- res = gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", NULL);
+ /*res = gnutls_set_default_priority(session); */
+ res =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3",
+ NULL);
assert(res >= 0);
memdata.data = data;
diff --git a/fuzz/gnutls_handshake_server_fuzzer.c b/fuzz/gnutls_handshake_server_fuzzer.c
index dd58cecf82..de9e1197e3 100644
--- a/fuzz/gnutls_handshake_server_fuzzer.c
+++ b/fuzz/gnutls_handshake_server_fuzzer.c
@@ -29,8 +29,8 @@
#include "handshake.h"
#include "fuzzer.h"
-int __attribute__ ((visibility ("protected")))
-gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
+int __attribute__((visibility("protected")))
+ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
{
memset(data, 0xff, len);
@@ -80,23 +80,24 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
ed448_key.size = sizeof(kEd448PrivateKeyDER);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert, &ed25519_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert,
+ &ed25519_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ed448_cert, &ed448_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ed448_cert, &ed448_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
gnutls_certificate_set_known_dh_params(xcred, GNUTLS_SEC_PARAM_MEDIUM);
@@ -104,8 +105,11 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
res = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
assert(res >= 0);
- /*res = gnutls_set_default_priority(session);*/
- res = gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", NULL);
+ /*res = gnutls_set_default_priority(session); */
+ res =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3",
+ NULL);
assert(res >= 0);
memdata.data = data;
diff --git a/fuzz/gnutls_idna_parser_fuzzer.c b/fuzz/gnutls_idna_parser_fuzzer.c
index ca8dfdc639..5c7c6a0d13 100644
--- a/fuzz/gnutls_idna_parser_fuzzer.c
+++ b/fuzz/gnutls_idna_parser_fuzzer.c
@@ -25,12 +25,12 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t out;
- if (gnutls_idna_map((const char *) data, size, &out, 0) >= 0) {
- assert(out.size == strlen((char *) out.data));
+ if (gnutls_idna_map((const char *)data, size, &out, 0) >= 0) {
+ assert(out.size == strlen((char *)out.data));
gnutls_free(out.data);
}
diff --git a/fuzz/gnutls_ocsp_req_parser_fuzzer.c b/fuzz/gnutls_ocsp_req_parser_fuzzer.c
index 17c945d807..b317dc315a 100644
--- a/fuzz/gnutls_ocsp_req_parser_fuzzer.c
+++ b/fuzz/gnutls_ocsp_req_parser_fuzzer.c
@@ -24,7 +24,7 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t raw;
gnutls_datum_t out;
diff --git a/fuzz/gnutls_ocsp_resp_parser_fuzzer.c b/fuzz/gnutls_ocsp_resp_parser_fuzzer.c
index 598d9eeb86..f0e6fbea66 100644
--- a/fuzz/gnutls_ocsp_resp_parser_fuzzer.c
+++ b/fuzz/gnutls_ocsp_resp_parser_fuzzer.c
@@ -24,7 +24,7 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t raw;
gnutls_datum_t out;
@@ -39,7 +39,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
ret = gnutls_ocsp_resp_import(resp, &raw);
if (ret >= 0) {
- ret = gnutls_ocsp_resp_print(resp, GNUTLS_OCSP_PRINT_FULL, &out);
+ ret =
+ gnutls_ocsp_resp_print(resp, GNUTLS_OCSP_PRINT_FULL, &out);
assert(ret >= 0);
gnutls_free(out.data);
}
diff --git a/fuzz/gnutls_pkcs12_key_parser_fuzzer.c b/fuzz/gnutls_pkcs12_key_parser_fuzzer.c
index 9aaf92ff48..ffa2cdaa33 100644
--- a/fuzz/gnutls_pkcs12_key_parser_fuzzer.c
+++ b/fuzz/gnutls_pkcs12_key_parser_fuzzer.c
@@ -24,9 +24,9 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
- gnutls_datum_t raw = {(unsigned char*)data, (unsigned int)size};
+ gnutls_datum_t raw = { (unsigned char *)data, (unsigned int)size };
gnutls_pkcs12_t p12;
gnutls_x509_privkey_t key;
gnutls_x509_crt_t *chain;
@@ -49,7 +49,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
/* catch crashes */
gnutls_pkcs12_verify_mac(p12, "1234");
- ret = gnutls_pkcs12_simple_parse(p12, "1234", &key, &chain, &chain_len, &extras, &extras_len, &crl, 0);
+ ret =
+ gnutls_pkcs12_simple_parse(p12, "1234", &key, &chain, &chain_len,
+ &extras, &extras_len, &crl, 0);
if (ret >= 0) {
gnutls_x509_privkey_deinit(key);
if (crl)
@@ -66,7 +68,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
}
}
-cleanup:
+ cleanup:
gnutls_pkcs12_deinit(p12);
return 0;
}
diff --git a/fuzz/gnutls_pkcs7_parser_fuzzer.c b/fuzz/gnutls_pkcs7_parser_fuzzer.c
index 92f1f33d3f..570f3065d4 100644
--- a/fuzz/gnutls_pkcs7_parser_fuzzer.c
+++ b/fuzz/gnutls_pkcs7_parser_fuzzer.c
@@ -24,7 +24,7 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t raw;
gnutls_datum_t out;
diff --git a/fuzz/gnutls_pkcs8_key_parser_fuzzer.c b/fuzz/gnutls_pkcs8_key_parser_fuzzer.c
index 982b485c76..8e86682a92 100644
--- a/fuzz/gnutls_pkcs8_key_parser_fuzzer.c
+++ b/fuzz/gnutls_pkcs8_key_parser_fuzzer.c
@@ -24,7 +24,7 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t raw;
gnutls_x509_privkey_t key;
@@ -37,7 +37,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
ret = gnutls_x509_privkey_init(&key);
assert(ret >= 0);
- ret = gnutls_x509_privkey_import_pkcs8(key, &raw, GNUTLS_X509_FMT_DER, "password", 0);
+ ret =
+ gnutls_x509_privkey_import_pkcs8(key, &raw, GNUTLS_X509_FMT_DER,
+ "password", 0);
if (ret < 0) {
goto cleanup;
}
@@ -50,7 +52,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
gnutls_free(out.data);
-cleanup:
+ cleanup:
gnutls_x509_privkey_deinit(key);
return 0;
}
diff --git a/fuzz/gnutls_private_key_parser_fuzzer.c b/fuzz/gnutls_private_key_parser_fuzzer.c
index c7d4a7b526..8260dc5254 100644
--- a/fuzz/gnutls_private_key_parser_fuzzer.c
+++ b/fuzz/gnutls_private_key_parser_fuzzer.c
@@ -24,7 +24,7 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t raw;
gnutls_x509_privkey_t key;
diff --git a/fuzz/gnutls_psk_client_fuzzer.c b/fuzz/gnutls_psk_client_fuzzer.c
index 6133c99988..31ec258bc6 100644
--- a/fuzz/gnutls_psk_client_fuzzer.c
+++ b/fuzz/gnutls_psk_client_fuzzer.c
@@ -43,7 +43,7 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
struct mem_st memdata;
gnutls_datum_t psk_key;
- psk_key.data = (unsigned char*)psk_key16;
+ psk_key.data = (unsigned char *)psk_key16;
psk_key.size = 16;
res = gnutls_init(&session, GNUTLS_CLIENT);
@@ -52,13 +52,18 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
res = gnutls_psk_allocate_client_credentials(&pcred);
assert(res >= 0);
- res = gnutls_psk_set_client_credentials(pcred, "test", &psk_key, GNUTLS_PSK_KEY_RAW);
+ res =
+ gnutls_psk_set_client_credentials(pcred, "test", &psk_key,
+ GNUTLS_PSK_KEY_RAW);
assert(res >= 0);
res = gnutls_credentials_set(session, GNUTLS_CRD_PSK, pcred);
assert(res >= 0);
- res = gnutls_priority_set_direct(session, "NORMAL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:"VERS_STR, NULL);
+ res =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:"
+ VERS_STR, NULL);
assert(res >= 0);
memdata.data = data;
@@ -66,8 +71,7 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
gnutls_transport_set_push_function(session, mem_push);
gnutls_transport_set_pull_function(session, mem_pull);
- gnutls_transport_set_pull_timeout_function(session,
- mem_pull_timeout);
+ gnutls_transport_set_pull_timeout_function(session, mem_pull_timeout);
gnutls_transport_set_ptr(session, &memdata);
do {
diff --git a/fuzz/gnutls_psk_server_fuzzer.c b/fuzz/gnutls_psk_server_fuzzer.c
index d07e2eef60..a4b8007fdb 100644
--- a/fuzz/gnutls_psk_server_fuzzer.c
+++ b/fuzz/gnutls_psk_server_fuzzer.c
@@ -34,9 +34,10 @@
#include "mem.h"
#include "fuzzer.h"
-static int psk_cb(gnutls_session_t session, const char *username, gnutls_datum_t * key)
+static int psk_cb(gnutls_session_t session, const char *username,
+ gnutls_datum_t * key)
{
- key->data = (unsigned char*)gnutls_malloc(16);
+ key->data = (unsigned char *)gnutls_malloc(16);
assert(key->data != NULL);
memcpy(key->data, psk_key16, 16);
@@ -90,23 +91,24 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
ed448_key.size = sizeof(kEd448PrivateKeyDER);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert, &ed25519_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert,
+ &ed25519_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ed448_cert, &ed448_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ed448_cert, &ed448_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
gnutls_certificate_set_known_dh_params(xcred, GNUTLS_SEC_PARAM_MEDIUM);
@@ -117,7 +119,10 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
res = gnutls_credentials_set(session, GNUTLS_CRD_PSK, pcred);
assert(res >= 0);
- res = gnutls_priority_set_direct(session, "NORMAL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+RSA-PSK:"VERS_STR, NULL);
+ res =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+RSA-PSK:"
+ VERS_STR, NULL);
assert(res >= 0);
memdata.data = data;
diff --git a/fuzz/gnutls_reverse_idna_parser_fuzzer.c b/fuzz/gnutls_reverse_idna_parser_fuzzer.c
index b67e5ca252..00402e05e4 100644
--- a/fuzz/gnutls_reverse_idna_parser_fuzzer.c
+++ b/fuzz/gnutls_reverse_idna_parser_fuzzer.c
@@ -25,18 +25,18 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t out;
int ret;
- ret = gnutls_idna_reverse_map((char*)data, size, &out, 0);
+ ret = gnutls_idna_reverse_map((char *)data, size, &out, 0);
if (ret < 0)
goto cleanup;
- assert(out.size == strlen((char*)out.data));
+ assert(out.size == strlen((char *)out.data));
gnutls_free(out.data);
-cleanup:
+ cleanup:
return 0;
}
diff --git a/fuzz/gnutls_server_fuzzer.c b/fuzz/gnutls_server_fuzzer.c
index c42ff21efa..6ceeb8340c 100644
--- a/fuzz/gnutls_server_fuzzer.c
+++ b/fuzz/gnutls_server_fuzzer.c
@@ -66,23 +66,24 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
ed448_key.size = sizeof(kEd448PrivateKeyDER);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert, &ed25519_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert,
+ &ed25519_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ed448_cert, &ed448_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ed448_cert, &ed448_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
gnutls_certificate_set_known_dh_params(xcred, GNUTLS_SEC_PARAM_MEDIUM);
@@ -90,8 +91,11 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
res = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
assert(res >= 0);
- /*res = gnutls_set_default_priority(session);*/
- res = gnutls_priority_set_direct(session, "NORMAL:+SIGN-EDDSA-ED448:"VERS_STR, NULL);
+ /*res = gnutls_set_default_priority(session); */
+ res =
+ gnutls_priority_set_direct(session,
+ "NORMAL:+SIGN-EDDSA-ED448:" VERS_STR,
+ NULL);
assert(res >= 0);
memdata.data = data;
diff --git a/fuzz/gnutls_server_rawpk_fuzzer.c b/fuzz/gnutls_server_rawpk_fuzzer.c
index 11594c1b8d..0ac40e5920 100644
--- a/fuzz/gnutls_server_rawpk_fuzzer.c
+++ b/fuzz/gnutls_server_rawpk_fuzzer.c
@@ -63,19 +63,25 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
assert(res >= 0);
res =
- gnutls_certificate_set_rawpk_key_mem(rawpk_cred,
- &rawpk_public_key1,
- &rawpk_private_key1,
- GNUTLS_X509_FMT_PEM,
- NULL, 0, NULL, 0, 0);
+ gnutls_certificate_set_rawpk_key_mem(rawpk_cred,
+ &rawpk_public_key1,
+ &rawpk_private_key1,
+ GNUTLS_X509_FMT_PEM,
+ NULL, 0, NULL, 0, 0);
assert(res >= 0);
- gnutls_certificate_set_known_dh_params(rawpk_cred, GNUTLS_SEC_PARAM_MEDIUM);
+ gnutls_certificate_set_known_dh_params(rawpk_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
- res = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, rawpk_cred);
+ res =
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, rawpk_cred);
assert(res >= 0);
- res = gnutls_priority_set_direct(session, "NORMAL:"VERS_STR":-CTYPE-ALL:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK", NULL);
+ res =
+ gnutls_priority_set_direct(session,
+ "NORMAL:" VERS_STR
+ ":-CTYPE-ALL:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
+ NULL);
assert(res >= 0);
memdata.data = data;
diff --git a/fuzz/gnutls_set_trust_file_fuzzer.c b/fuzz/gnutls_set_trust_file_fuzzer.c
index 60982ff1a1..c5dec58258 100644
--- a/fuzz/gnutls_set_trust_file_fuzzer.c
+++ b/fuzz/gnutls_set_trust_file_fuzzer.c
@@ -27,30 +27,32 @@ static const uint8_t *g_data;
static size_t g_size;
#if ! defined _WIN32 && defined HAVE_FMEMOPEN
-#include <stdio.h>
-#include <string.h>
-#include <dlfcn.h>
+# include <stdio.h>
+# include <string.h>
+# include <dlfcn.h>
FILE *fopen(const char *pathname, const char *mode)
{
FILE *(*libc_fopen)(const char *, const char *) =
- (FILE *(*)(const char *, const char *)) dlsym (RTLD_NEXT, "fopen");
+ (FILE *(*)(const char *, const char *))dlsym(RTLD_NEXT, "fopen");
if (!strcmp(pathname, "ca_or_crl"))
- return fmemopen((void *) g_data, g_size, mode);
+ return fmemopen((void *)g_data, g_size, mode);
return libc_fopen(pathname, mode);
}
#endif
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
g_data = data;
g_size = size;
gnutls_certificate_credentials_t creds;
gnutls_certificate_allocate_credentials(&creds);
- gnutls_certificate_set_x509_trust_file(creds, "ca_or_crl", GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_x509_crl_file(creds, "ca_or_crl", GNUTLS_X509_FMT_PEM);
+ gnutls_certificate_set_x509_trust_file(creds, "ca_or_crl",
+ GNUTLS_X509_FMT_PEM);
+ gnutls_certificate_set_x509_crl_file(creds, "ca_or_crl",
+ GNUTLS_X509_FMT_PEM);
gnutls_certificate_free_credentials(creds);
return 0;
diff --git a/fuzz/gnutls_srp_client_fuzzer.c b/fuzz/gnutls_srp_client_fuzzer.c
index eb3f7f9994..bdd86fad86 100644
--- a/fuzz/gnutls_srp_client_fuzzer.c
+++ b/fuzz/gnutls_srp_client_fuzzer.c
@@ -54,7 +54,10 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
res = gnutls_credentials_set(session, GNUTLS_CRD_SRP, pcred);
assert(res >= 0);
- res = gnutls_priority_set_direct(session, "NORMAL:-KX-ALL:+SRP:+SRP-RSA:+SRP-DSS", NULL);
+ res =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-KX-ALL:+SRP:+SRP-RSA:+SRP-DSS",
+ NULL);
assert(res >= 0);
memdata.data = data;
@@ -62,8 +65,7 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
gnutls_transport_set_push_function(session, mem_push);
gnutls_transport_set_pull_function(session, mem_pull);
- gnutls_transport_set_pull_timeout_function(session,
- mem_pull_timeout);
+ gnutls_transport_set_pull_timeout_function(session, mem_pull_timeout);
gnutls_transport_set_ptr(session, &memdata);
gnutls_srp_set_prime_bits(session, 1024);
diff --git a/fuzz/gnutls_srp_server_fuzzer.c b/fuzz/gnutls_srp_server_fuzzer.c
index 04301638e4..6c9cd51efa 100644
--- a/fuzz/gnutls_srp_server_fuzzer.c
+++ b/fuzz/gnutls_srp_server_fuzzer.c
@@ -36,23 +36,30 @@
static int
srp_cb(gnutls_session_t session, const char *username,
- gnutls_datum_t *salt, gnutls_datum_t *verifier, gnutls_datum_t *generator, gnutls_datum_t *prime)
+ gnutls_datum_t * salt, gnutls_datum_t * verifier,
+ gnutls_datum_t * generator, gnutls_datum_t * prime)
{
int ret;
- salt->data = (unsigned char*)gnutls_malloc(SALT_SIZE);
- memcpy(salt->data, (unsigned char*)SALT, SALT_SIZE);
+ salt->data = (unsigned char *)gnutls_malloc(SALT_SIZE);
+ memcpy(salt->data, (unsigned char *)SALT, SALT_SIZE);
salt->size = SALT_SIZE;
- generator->data = (unsigned char*)gnutls_malloc(gnutls_srp_1024_group_generator.size);
- memcpy(generator->data, gnutls_srp_1024_group_generator.data, gnutls_srp_1024_group_generator.size);
+ generator->data = (unsigned char *)
+ gnutls_malloc(gnutls_srp_1024_group_generator.size);
+ memcpy(generator->data, gnutls_srp_1024_group_generator.data,
+ gnutls_srp_1024_group_generator.size);
generator->size = gnutls_srp_1024_group_generator.size;
- prime->data = (unsigned char*)gnutls_malloc(gnutls_srp_1024_group_prime.size);
- memcpy(prime->data, gnutls_srp_1024_group_prime.data, gnutls_srp_1024_group_prime.size);
+ prime->data =
+ (unsigned char *)gnutls_malloc(gnutls_srp_1024_group_prime.size);
+ memcpy(prime->data, gnutls_srp_1024_group_prime.data,
+ gnutls_srp_1024_group_prime.size);
prime->size = gnutls_srp_1024_group_prime.size;
- ret = gnutls_srp_verifier(USERNAME, PASSWORD, salt, generator, prime, verifier);
+ ret =
+ gnutls_srp_verifier(USERNAME, PASSWORD, salt, generator, prime,
+ verifier);
if (ret < 0)
return -1;
@@ -98,18 +105,19 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
ed25519_key.size = sizeof(kEd25519PrivateKeyDER);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &rsa_cert, &rsa_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ecdsa_cert, &ecdsa_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
res =
- gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert, &ed25519_key,
- GNUTLS_X509_FMT_DER);
+ gnutls_certificate_set_x509_key_mem(xcred, &ed25519_cert,
+ &ed25519_key,
+ GNUTLS_X509_FMT_DER);
assert(res >= 0);
gnutls_certificate_set_known_dh_params(xcred, GNUTLS_SEC_PARAM_MEDIUM);
@@ -120,7 +128,10 @@ int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
res = gnutls_credentials_set(session, GNUTLS_CRD_SRP, pcred);
assert(res >= 0);
- res = gnutls_priority_set_direct(session, "NORMAL:-KX-ALL:+SRP:+SRP-RSA:+SRP-DSS", NULL);
+ res =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-KX-ALL:+SRP:+SRP-RSA:+SRP-DSS",
+ NULL);
assert(res >= 0);
memdata.data = data;
diff --git a/fuzz/gnutls_x509_crl_parser_fuzzer.c b/fuzz/gnutls_x509_crl_parser_fuzzer.c
index b306501df2..005aca769a 100644
--- a/fuzz/gnutls_x509_crl_parser_fuzzer.c
+++ b/fuzz/gnutls_x509_crl_parser_fuzzer.c
@@ -26,7 +26,7 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t raw;
gnutls_datum_t out;
diff --git a/fuzz/gnutls_x509_crq_parser_fuzzer.c b/fuzz/gnutls_x509_crq_parser_fuzzer.c
index 4f7ebee78d..2249afee83 100644
--- a/fuzz/gnutls_x509_crq_parser_fuzzer.c
+++ b/fuzz/gnutls_x509_crq_parser_fuzzer.c
@@ -26,7 +26,7 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t raw;
gnutls_datum_t out;
diff --git a/fuzz/gnutls_x509_parser_fuzzer.c b/fuzz/gnutls_x509_parser_fuzzer.c
index 87b09c4f71..33acea74c1 100644
--- a/fuzz/gnutls_x509_parser_fuzzer.c
+++ b/fuzz/gnutls_x509_parser_fuzzer.c
@@ -24,7 +24,7 @@
#include "fuzzer.h"
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t raw;
gnutls_datum_t out;
diff --git a/fuzz/gnutls_x509_verify_fuzzer.c b/fuzz/gnutls_x509_verify_fuzzer.c
index 3f945d5f39..f8b20a92bb 100644
--- a/fuzz/gnutls_x509_verify_fuzzer.c
+++ b/fuzz/gnutls_x509_verify_fuzzer.c
@@ -31,133 +31,134 @@
#include "fuzzer.h"
unsigned char _ca_der[] = {
- 0x30, 0x82, 0x05, 0xe2, 0x30, 0x82, 0x04, 0xca, 0xa0, 0x03, 0x02, 0x01,
- 0x02, 0x02, 0x10, 0x27, 0x53, 0xf8, 0x06, 0xfe, 0x91, 0x37, 0x32, 0x2f,
- 0x5b, 0x40, 0x9f, 0x1c, 0x31, 0x87, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a,
- 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
- 0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
- 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
- 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
- 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
- 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
- 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
- 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
- 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
- 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
- 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
- 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
- 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
- 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
- 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
- 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
- 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
- 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
- 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, 0x38, 0x30, 0x30, 0x30,
- 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30, 0x30, 0x32, 0x30, 0x37,
- 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xb4, 0x31, 0x0b,
- 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
- 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
- 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
- 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
- 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
- 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3b, 0x30,
- 0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x32, 0x54, 0x65, 0x72, 0x6d,
- 0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20,
- 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
- 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
- 0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x31, 0x30, 0x31, 0x2e,
- 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x25, 0x56, 0x65, 0x72,
- 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
- 0x33, 0x20, 0x43, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69,
- 0x6e, 0x67, 0x20, 0x32, 0x30, 0x31, 0x30, 0x20, 0x43, 0x41, 0x30, 0x82,
- 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
- 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82,
- 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xf5, 0x23, 0x4b, 0x5e, 0xa5,
- 0xd7, 0x8a, 0xbb, 0x32, 0xe9, 0xd4, 0x57, 0xf7, 0xef, 0xe4, 0xc7, 0x26,
- 0x7e, 0xad, 0x19, 0x98, 0xfe, 0xa8, 0x9d, 0x7d, 0x94, 0xf6, 0x36, 0x6b,
- 0x10, 0xd7, 0x75, 0x81, 0x30, 0x7f, 0x04, 0x68, 0x7f, 0xcb, 0x2b, 0x75,
- 0x1e, 0xcd, 0x1d, 0x08, 0x8c, 0xdf, 0x69, 0x94, 0xa7, 0x37, 0xa3, 0x9c,
- 0x7b, 0x80, 0xe0, 0x99, 0xe1, 0xee, 0x37, 0x4d, 0x5f, 0xce, 0x3b, 0x14,
- 0xee, 0x86, 0xd4, 0xd0, 0xf5, 0x27, 0x35, 0xbc, 0x25, 0x0b, 0x38, 0xa7,
- 0x8c, 0x63, 0x9d, 0x17, 0xa3, 0x08, 0xa5, 0xab, 0xb0, 0xfb, 0xcd, 0x6a,
- 0x62, 0x82, 0x4c, 0xd5, 0x21, 0xda, 0x1b, 0xd9, 0xf1, 0xe3, 0x84, 0x3b,
- 0x8a, 0x2a, 0x4f, 0x85, 0x5b, 0x90, 0x01, 0x4f, 0xc9, 0xa7, 0x76, 0x10,
- 0x7f, 0x27, 0x03, 0x7c, 0xbe, 0xae, 0x7e, 0x7d, 0xc1, 0xdd, 0xf9, 0x05,
- 0xbc, 0x1b, 0x48, 0x9c, 0x69, 0xe7, 0xc0, 0xa4, 0x3c, 0x3c, 0x41, 0x00,
- 0x3e, 0xdf, 0x96, 0xe5, 0xc5, 0xe4, 0x94, 0x71, 0xd6, 0x55, 0x01, 0xc7,
- 0x00, 0x26, 0x4a, 0x40, 0x3c, 0xb5, 0xa1, 0x26, 0xa9, 0x0c, 0xa7, 0x6d,
- 0x80, 0x8e, 0x90, 0x25, 0x7b, 0xcf, 0xbf, 0x3f, 0x1c, 0xeb, 0x2f, 0x96,
- 0xfa, 0xe5, 0x87, 0x77, 0xc6, 0xb5, 0x56, 0xb2, 0x7a, 0x3b, 0x54, 0x30,
- 0x53, 0x1b, 0xdf, 0x62, 0x34, 0xff, 0x1e, 0xd1, 0xf4, 0x5a, 0x93, 0x28,
- 0x85, 0xe5, 0x4c, 0x17, 0x4e, 0x7e, 0x5b, 0xfd, 0xa4, 0x93, 0x99, 0x7f,
- 0xdf, 0xcd, 0xef, 0xa4, 0x75, 0xef, 0xef, 0x15, 0xf6, 0x47, 0xe7, 0xf8,
- 0x19, 0x72, 0xd8, 0x2e, 0x34, 0x1a, 0xa6, 0xb4, 0xa7, 0x4c, 0x7e, 0xbd,
- 0xbb, 0x4f, 0x0c, 0x3d, 0x57, 0xf1, 0x30, 0xd6, 0xa6, 0x36, 0x8e, 0xd6,
- 0x80, 0x76, 0xd7, 0x19, 0x2e, 0xa5, 0xcd, 0x7e, 0x34, 0x2d, 0x89, 0x02,
- 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xd6, 0x30, 0x82, 0x01, 0xd2,
- 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
- 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x70, 0x06, 0x03,
- 0x55, 0x1d, 0x20, 0x04, 0x69, 0x30, 0x67, 0x30, 0x65, 0x06, 0x0b, 0x60,
- 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x17, 0x03, 0x30, 0x56,
- 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
- 0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
- 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63,
- 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06,
- 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x1e, 0x1a, 0x1c, 0x68, 0x74,
- 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65,
- 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72,
- 0x70, 0x61, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
- 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06,
- 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f, 0xa1, 0x5d,
- 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09, 0x69, 0x6d,
- 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f, 0x30,
- 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f, 0xe5,
- 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, 0x6a, 0xd4,
- 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23, 0x68, 0x74,
- 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65,
- 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76,
- 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x34, 0x06,
- 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27,
- 0xa0, 0x25, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
- 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e,
- 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e,
- 0x63, 0x72, 0x6c, 0x30, 0x28, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21,
- 0x30, 0x1f, 0xa4, 0x1d, 0x30, 0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03,
- 0x55, 0x04, 0x03, 0x13, 0x10, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
- 0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x38, 0x30, 0x1d, 0x06,
- 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xcf, 0x99, 0xa9, 0xea,
- 0x7b, 0x26, 0xf4, 0x4b, 0xc9, 0x8e, 0x8f, 0xd7, 0xf0, 0x05, 0x26, 0xef,
- 0xe3, 0xd2, 0xa7, 0x9d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
- 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
- 0x02, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x06,
- 0x0c, 0x2a, 0x86, 0x3a, 0x00, 0x01, 0x83, 0x8f, 0x89, 0x0d, 0x01, 0x01,
- 0x01, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
- 0x80, 0x14, 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30,
- 0x09, 0xf3, 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d,
- 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05,
- 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x5b, 0x8e, 0x9f, 0xd3, 0xba, 0xbe,
- 0xa9, 0xaf, 0x1a, 0x3e, 0x65, 0x81, 0xb7, 0xc1, 0x64, 0xf6, 0xa2, 0x78,
- 0xeb, 0x4c, 0x80, 0x06, 0x3a, 0xac, 0x22, 0x6e, 0x8c, 0x2b, 0xbc, 0x5d,
- 0x85, 0x7f, 0xc0, 0x8f, 0x10, 0x2a, 0xca, 0xc4, 0xad, 0x96, 0x24, 0x01,
- 0x68, 0xff, 0x65, 0xb5, 0xd1, 0x14, 0x2c, 0x2a, 0xa5, 0xda, 0x49, 0x96,
- 0xaf, 0xe9, 0xd4, 0xff, 0x71, 0x9c, 0x93, 0x09, 0x4a, 0x6a, 0x61, 0xf4,
- 0x4b, 0xd1, 0xcb, 0xb6, 0x5f, 0x29, 0xfc, 0x68, 0x11, 0xe5, 0x72, 0xff,
- 0x46, 0x0f, 0x36, 0x29, 0x99, 0x43, 0x9e, 0xb3, 0xd9, 0xac, 0x47, 0x93,
- 0x7b, 0xef, 0xc4, 0xeb, 0x66, 0x86, 0xa7, 0xd6, 0x89, 0x54, 0x3e, 0x94,
- 0x9b, 0x0d, 0x91, 0xf0, 0xd2, 0x23, 0x6a, 0xc0, 0x0d, 0x37, 0xce, 0x46,
- 0xdf, 0x95, 0xae, 0xa4, 0x65, 0xc6, 0x18, 0xbf, 0xa4, 0x69, 0x73, 0x3f,
- 0xe8, 0x85, 0xd0, 0x48, 0x7d, 0x28, 0xef, 0xf3, 0x5f, 0xb0, 0x01, 0xb4,
- 0x75, 0xb4, 0xd1, 0x53, 0x4b, 0xf4, 0x6f, 0xf6, 0xa4, 0x8b, 0x66, 0xb6,
- 0xef, 0x78, 0x39, 0xc5, 0x88, 0x2b, 0x67, 0x32, 0x1a, 0xef, 0x40, 0xc0,
- 0x94, 0xf6, 0xb7, 0xd2, 0x8b, 0x84, 0xa0, 0x26, 0x6f, 0x8a, 0x4b, 0xc5,
- 0xd8, 0xdc, 0x54, 0xee, 0xe2, 0x4a, 0x56, 0xaa, 0xbc, 0x72, 0xe5, 0x93,
- 0xe6, 0x3f, 0xb6, 0xde, 0x6d, 0x6c, 0x7b, 0x25, 0x5b, 0x01, 0xec, 0x6f,
- 0x29, 0x64, 0xb7, 0xf3, 0x2e, 0x23, 0xf6, 0x1f, 0xae, 0x11, 0x2d, 0xc6,
- 0xba, 0xb9, 0xeb, 0x08, 0x60, 0xb1, 0x2d, 0x1b, 0x2b, 0x9e, 0xbe, 0x85,
- 0x74, 0x0a, 0x1d, 0x2e, 0x2a, 0x52, 0x91, 0x18, 0x20, 0xd7, 0xc9, 0xb2,
- 0x97, 0x84, 0x8f, 0x16, 0x2c, 0x32, 0xca, 0x18, 0x12, 0xaa, 0xc5, 0x20,
- 0x59, 0xca, 0xfb, 0x6d, 0x37, 0x32, 0xe3, 0xc5, 0xa3, 0x84
+ 0x30, 0x82, 0x05, 0xe2, 0x30, 0x82, 0x04, 0xca, 0xa0, 0x03, 0x02, 0x01,
+ 0x02, 0x02, 0x10, 0x27, 0x53, 0xf8, 0x06, 0xfe, 0x91, 0x37, 0x32, 0x2f,
+ 0x5b, 0x40, 0x9f, 0x1c, 0x31, 0x87, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x81,
+ 0xca, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
+ 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13,
+ 0x0e, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49,
+ 0x6e, 0x63, 0x2e, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b,
+ 0x13, 0x16, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x31, 0x3a, 0x30, 0x38, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x31, 0x28,
+ 0x63, 0x29, 0x20, 0x32, 0x30, 0x30, 0x36, 0x20, 0x56, 0x65, 0x72, 0x69,
+ 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x20, 0x2d,
+ 0x20, 0x46, 0x6f, 0x72, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
+ 0x7a, 0x65, 0x64, 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x6e, 0x6c, 0x79,
+ 0x31, 0x45, 0x30, 0x43, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x3c, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73,
+ 0x73, 0x20, 0x33, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x50,
+ 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74,
+ 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x2d, 0x20, 0x47, 0x35, 0x30,
+ 0x1e, 0x17, 0x0d, 0x31, 0x30, 0x30, 0x32, 0x30, 0x38, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x30, 0x30, 0x32, 0x30, 0x37,
+ 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x81, 0xb4, 0x31, 0x0b,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31,
+ 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, 0x56, 0x65,
+ 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, 0x2e,
+ 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x56,
+ 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x54, 0x72, 0x75, 0x73,
+ 0x74, 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x3b, 0x30,
+ 0x39, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x32, 0x54, 0x65, 0x72, 0x6d,
+ 0x73, 0x20, 0x6f, 0x66, 0x20, 0x75, 0x73, 0x65, 0x20, 0x61, 0x74, 0x20,
+ 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e,
+ 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d,
+ 0x2f, 0x72, 0x70, 0x61, 0x20, 0x28, 0x63, 0x29, 0x31, 0x30, 0x31, 0x2e,
+ 0x30, 0x2c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x25, 0x56, 0x65, 0x72,
+ 0x69, 0x53, 0x69, 0x67, 0x6e, 0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x20,
+ 0x33, 0x20, 0x43, 0x6f, 0x64, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x69,
+ 0x6e, 0x67, 0x20, 0x32, 0x30, 0x31, 0x30, 0x20, 0x43, 0x41, 0x30, 0x82,
+ 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
+ 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82,
+ 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xf5, 0x23, 0x4b, 0x5e, 0xa5,
+ 0xd7, 0x8a, 0xbb, 0x32, 0xe9, 0xd4, 0x57, 0xf7, 0xef, 0xe4, 0xc7, 0x26,
+ 0x7e, 0xad, 0x19, 0x98, 0xfe, 0xa8, 0x9d, 0x7d, 0x94, 0xf6, 0x36, 0x6b,
+ 0x10, 0xd7, 0x75, 0x81, 0x30, 0x7f, 0x04, 0x68, 0x7f, 0xcb, 0x2b, 0x75,
+ 0x1e, 0xcd, 0x1d, 0x08, 0x8c, 0xdf, 0x69, 0x94, 0xa7, 0x37, 0xa3, 0x9c,
+ 0x7b, 0x80, 0xe0, 0x99, 0xe1, 0xee, 0x37, 0x4d, 0x5f, 0xce, 0x3b, 0x14,
+ 0xee, 0x86, 0xd4, 0xd0, 0xf5, 0x27, 0x35, 0xbc, 0x25, 0x0b, 0x38, 0xa7,
+ 0x8c, 0x63, 0x9d, 0x17, 0xa3, 0x08, 0xa5, 0xab, 0xb0, 0xfb, 0xcd, 0x6a,
+ 0x62, 0x82, 0x4c, 0xd5, 0x21, 0xda, 0x1b, 0xd9, 0xf1, 0xe3, 0x84, 0x3b,
+ 0x8a, 0x2a, 0x4f, 0x85, 0x5b, 0x90, 0x01, 0x4f, 0xc9, 0xa7, 0x76, 0x10,
+ 0x7f, 0x27, 0x03, 0x7c, 0xbe, 0xae, 0x7e, 0x7d, 0xc1, 0xdd, 0xf9, 0x05,
+ 0xbc, 0x1b, 0x48, 0x9c, 0x69, 0xe7, 0xc0, 0xa4, 0x3c, 0x3c, 0x41, 0x00,
+ 0x3e, 0xdf, 0x96, 0xe5, 0xc5, 0xe4, 0x94, 0x71, 0xd6, 0x55, 0x01, 0xc7,
+ 0x00, 0x26, 0x4a, 0x40, 0x3c, 0xb5, 0xa1, 0x26, 0xa9, 0x0c, 0xa7, 0x6d,
+ 0x80, 0x8e, 0x90, 0x25, 0x7b, 0xcf, 0xbf, 0x3f, 0x1c, 0xeb, 0x2f, 0x96,
+ 0xfa, 0xe5, 0x87, 0x77, 0xc6, 0xb5, 0x56, 0xb2, 0x7a, 0x3b, 0x54, 0x30,
+ 0x53, 0x1b, 0xdf, 0x62, 0x34, 0xff, 0x1e, 0xd1, 0xf4, 0x5a, 0x93, 0x28,
+ 0x85, 0xe5, 0x4c, 0x17, 0x4e, 0x7e, 0x5b, 0xfd, 0xa4, 0x93, 0x99, 0x7f,
+ 0xdf, 0xcd, 0xef, 0xa4, 0x75, 0xef, 0xef, 0x15, 0xf6, 0x47, 0xe7, 0xf8,
+ 0x19, 0x72, 0xd8, 0x2e, 0x34, 0x1a, 0xa6, 0xb4, 0xa7, 0x4c, 0x7e, 0xbd,
+ 0xbb, 0x4f, 0x0c, 0x3d, 0x57, 0xf1, 0x30, 0xd6, 0xa6, 0x36, 0x8e, 0xd6,
+ 0x80, 0x76, 0xd7, 0x19, 0x2e, 0xa5, 0xcd, 0x7e, 0x34, 0x2d, 0x89, 0x02,
+ 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0xd6, 0x30, 0x82, 0x01, 0xd2,
+ 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x08,
+ 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x70, 0x06, 0x03,
+ 0x55, 0x1d, 0x20, 0x04, 0x69, 0x30, 0x67, 0x30, 0x65, 0x06, 0x0b, 0x60,
+ 0x86, 0x48, 0x01, 0x86, 0xf8, 0x45, 0x01, 0x07, 0x17, 0x03, 0x30, 0x56,
+ 0x30, 0x28, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
+ 0x16, 0x1c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
+ 0x77, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63,
+ 0x6f, 0x6d, 0x2f, 0x63, 0x70, 0x73, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x1e, 0x1a, 0x1c, 0x68, 0x74,
+ 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x76, 0x65,
+ 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72,
+ 0x70, 0x61, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x6d, 0x06, 0x08, 0x2b, 0x06,
+ 0x01, 0x05, 0x05, 0x07, 0x01, 0x0c, 0x04, 0x61, 0x30, 0x5f, 0xa1, 0x5d,
+ 0xa0, 0x5b, 0x30, 0x59, 0x30, 0x57, 0x30, 0x55, 0x16, 0x09, 0x69, 0x6d,
+ 0x61, 0x67, 0x65, 0x2f, 0x67, 0x69, 0x66, 0x30, 0x21, 0x30, 0x1f, 0x30,
+ 0x07, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1a, 0x04, 0x14, 0x8f, 0xe5,
+ 0xd3, 0x1a, 0x86, 0xac, 0x8d, 0x8e, 0x6b, 0xc3, 0xcf, 0x80, 0x6a, 0xd4,
+ 0x48, 0x18, 0x2c, 0x7b, 0x19, 0x2e, 0x30, 0x25, 0x16, 0x23, 0x68, 0x74,
+ 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x76, 0x65,
+ 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x76,
+ 0x73, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x67, 0x69, 0x66, 0x30, 0x34, 0x06,
+ 0x03, 0x55, 0x1d, 0x1f, 0x04, 0x2d, 0x30, 0x2b, 0x30, 0x29, 0xa0, 0x27,
+ 0xa0, 0x25, 0x86, 0x23, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x63,
+ 0x72, 0x6c, 0x2e, 0x76, 0x65, 0x72, 0x69, 0x73, 0x69, 0x67, 0x6e, 0x2e,
+ 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x63, 0x61, 0x33, 0x2d, 0x67, 0x35, 0x2e,
+ 0x63, 0x72, 0x6c, 0x30, 0x28, 0x06, 0x03, 0x55, 0x1d, 0x11, 0x04, 0x21,
+ 0x30, 0x1f, 0xa4, 0x1d, 0x30, 0x1b, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13, 0x10, 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67,
+ 0x6e, 0x4d, 0x50, 0x4b, 0x49, 0x2d, 0x32, 0x2d, 0x38, 0x30, 0x1d, 0x06,
+ 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xcf, 0x99, 0xa9, 0xea,
+ 0x7b, 0x26, 0xf4, 0x4b, 0xc9, 0x8e, 0x8f, 0xd7, 0xf0, 0x05, 0x26, 0xef,
+ 0xe3, 0xd2, 0xa7, 0x9d, 0x30, 0x2b, 0x06, 0x03, 0x55, 0x1d, 0x25, 0x04,
+ 0x24, 0x30, 0x22, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03,
+ 0x02, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03, 0x06,
+ 0x0c, 0x2a, 0x86, 0x3a, 0x00, 0x01, 0x83, 0x8f, 0x89, 0x0d, 0x01, 0x01,
+ 0x01, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0x7f, 0xd3, 0x65, 0xa7, 0xc2, 0xdd, 0xec, 0xbb, 0xf0, 0x30,
+ 0x09, 0xf3, 0x43, 0x39, 0xfa, 0x02, 0xaf, 0x33, 0x31, 0x33, 0x30, 0x0d,
+ 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x5b, 0x8e, 0x9f, 0xd3, 0xba, 0xbe,
+ 0xa9, 0xaf, 0x1a, 0x3e, 0x65, 0x81, 0xb7, 0xc1, 0x64, 0xf6, 0xa2, 0x78,
+ 0xeb, 0x4c, 0x80, 0x06, 0x3a, 0xac, 0x22, 0x6e, 0x8c, 0x2b, 0xbc, 0x5d,
+ 0x85, 0x7f, 0xc0, 0x8f, 0x10, 0x2a, 0xca, 0xc4, 0xad, 0x96, 0x24, 0x01,
+ 0x68, 0xff, 0x65, 0xb5, 0xd1, 0x14, 0x2c, 0x2a, 0xa5, 0xda, 0x49, 0x96,
+ 0xaf, 0xe9, 0xd4, 0xff, 0x71, 0x9c, 0x93, 0x09, 0x4a, 0x6a, 0x61, 0xf4,
+ 0x4b, 0xd1, 0xcb, 0xb6, 0x5f, 0x29, 0xfc, 0x68, 0x11, 0xe5, 0x72, 0xff,
+ 0x46, 0x0f, 0x36, 0x29, 0x99, 0x43, 0x9e, 0xb3, 0xd9, 0xac, 0x47, 0x93,
+ 0x7b, 0xef, 0xc4, 0xeb, 0x66, 0x86, 0xa7, 0xd6, 0x89, 0x54, 0x3e, 0x94,
+ 0x9b, 0x0d, 0x91, 0xf0, 0xd2, 0x23, 0x6a, 0xc0, 0x0d, 0x37, 0xce, 0x46,
+ 0xdf, 0x95, 0xae, 0xa4, 0x65, 0xc6, 0x18, 0xbf, 0xa4, 0x69, 0x73, 0x3f,
+ 0xe8, 0x85, 0xd0, 0x48, 0x7d, 0x28, 0xef, 0xf3, 0x5f, 0xb0, 0x01, 0xb4,
+ 0x75, 0xb4, 0xd1, 0x53, 0x4b, 0xf4, 0x6f, 0xf6, 0xa4, 0x8b, 0x66, 0xb6,
+ 0xef, 0x78, 0x39, 0xc5, 0x88, 0x2b, 0x67, 0x32, 0x1a, 0xef, 0x40, 0xc0,
+ 0x94, 0xf6, 0xb7, 0xd2, 0x8b, 0x84, 0xa0, 0x26, 0x6f, 0x8a, 0x4b, 0xc5,
+ 0xd8, 0xdc, 0x54, 0xee, 0xe2, 0x4a, 0x56, 0xaa, 0xbc, 0x72, 0xe5, 0x93,
+ 0xe6, 0x3f, 0xb6, 0xde, 0x6d, 0x6c, 0x7b, 0x25, 0x5b, 0x01, 0xec, 0x6f,
+ 0x29, 0x64, 0xb7, 0xf3, 0x2e, 0x23, 0xf6, 0x1f, 0xae, 0x11, 0x2d, 0xc6,
+ 0xba, 0xb9, 0xeb, 0x08, 0x60, 0xb1, 0x2d, 0x1b, 0x2b, 0x9e, 0xbe, 0x85,
+ 0x74, 0x0a, 0x1d, 0x2e, 0x2a, 0x52, 0x91, 0x18, 0x20, 0xd7, 0xc9, 0xb2,
+ 0x97, 0x84, 0x8f, 0x16, 0x2c, 0x32, 0xca, 0x18, 0x12, 0xaa, 0xc5, 0x20,
+ 0x59, 0xca, 0xfb, 0x6d, 0x37, 0x32, 0xe3, 0xc5, 0xa3, 0x84
};
+
unsigned int _ca_der_len = 1510;
static time_t mytime(time_t * t)
@@ -169,7 +170,7 @@ static time_t mytime(time_t * t)
return then;
}
-int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+int LLVMFuzzerTestOneInput(const uint8_t * data, size_t size)
{
gnutls_datum_t raw;
gnutls_datum_t ca;
@@ -200,7 +201,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
goto fail;
ret = gnutls_x509_crt_list_verify(&crt, 1, &ca_crt, 1, NULL, 0,
- GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN|GNUTLS_VERIFY_ALLOW_BROKEN|
+ GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN |
+ GNUTLS_VERIFY_ALLOW_BROKEN |
GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS,
&status);
assert(ret < 0 || status != 0);
diff --git a/fuzz/handshake.h b/fuzz/handshake.h
index 34c7b701e6..429c521908 100644
--- a/fuzz/handshake.h
+++ b/fuzz/handshake.h
@@ -24,7 +24,7 @@
#ifndef HANDSHAKE_H
# define HANDSHAKE_H
-#define HANDSHAKE_MAX_RETRY_COUNT 10
+# define HANDSHAKE_MAX_RETRY_COUNT 10
typedef struct mem_st {
const uint8_t *data;
@@ -37,8 +37,7 @@ error_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
return -1;
}
-static ssize_t
-error_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
+static ssize_t error_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
{
return -1;
}
@@ -52,8 +51,7 @@ handshake_discard(gnutls_session_t session,
return 0;
}
-static int
-handshake_pull(gnutls_session_t session, mem_st *data)
+static int handshake_pull(gnutls_session_t session, mem_st * data)
{
uint32_t level, size;
int ret;
@@ -63,7 +61,7 @@ handshake_pull(gnutls_session_t session, mem_st *data)
}
level = ((unsigned)data->data[0] << 24) | (data->data[1] << 16) |
- (data->data[2] << 8) | data->data[3];
+ (data->data[2] << 8) | data->data[3];
data->size -= 4;
data->data += 4;
@@ -73,7 +71,7 @@ handshake_pull(gnutls_session_t session, mem_st *data)
}
size = ((unsigned)data->data[0] << 24) | (data->data[1] << 16) |
- (data->data[2] << 8) | data->data[3];
+ (data->data[2] << 8) | data->data[3];
data->size -= 4;
data->data += 4;
@@ -83,9 +81,8 @@ handshake_pull(gnutls_session_t session, mem_st *data)
}
ret = gnutls_handshake_write(session,
- (gnutls_record_encryption_level_t)level,
- data->data,
- size);
+ (gnutls_record_encryption_level_t) level,
+ data->data, size);
data->size -= size;
data->data += size;
diff --git a/fuzz/main.c b/fuzz/main.c
index b2223d0fc7..207ad775e1 100644
--- a/fuzz/main.c
+++ b/fuzz/main.c
@@ -35,13 +35,13 @@
#ifdef TEST_RUN
-#include <dirent.h>
+# include <dirent.h>
-#ifdef _WIN32
+# ifdef _WIN32
# define SLASH '\\'
-#else
+# else
# define SLASH '/'
-#endif
+# endif
static int test_single_file(const char *fname)
{
@@ -63,13 +63,16 @@ static int test_single_file(const char *fname)
data = malloc(st.st_size);
if ((n = read(fd, data, st.st_size)) == st.st_size) {
- printf("testing %llu bytes from '%s'\n", (unsigned long long) st.st_size, fname);
+ printf("testing %llu bytes from '%s'\n",
+ (unsigned long long)st.st_size, fname);
fflush(stdout);
LLVMFuzzerTestOneInput(data, st.st_size);
fflush(stderr);
ret = 0;
} else {
- fprintf(stderr, "Failed to read %llu bytes from %s (%d), got %zd\n", (unsigned long long) st.st_size, fname, errno, n);
+ fprintf(stderr,
+ "Failed to read %llu bytes from %s (%d), got %zd\n",
+ (unsigned long long)st.st_size, fname, errno, n);
ret = -1;
}
@@ -85,10 +88,12 @@ static int test_all_from(const char *dirname)
if ((dirp = opendir(dirname))) {
while ((dp = readdir(dirp))) {
- if (*dp->d_name == '.') continue;
+ if (*dp->d_name == '.')
+ continue;
char fname[strlen(dirname) + strlen(dp->d_name) + 2];
- snprintf(fname, sizeof(fname), "%s/%s", dirname, dp->d_name);
+ snprintf(fname, sizeof(fname), "%s/%s", dirname,
+ dp->d_name);
if (test_single_file(fname) < 0)
continue;
@@ -116,22 +121,24 @@ int main(int argc, char **argv)
target_len = strlen(target);
-#ifdef _WIN32
- target_len -= 4; // ignore .exe
-#endif
+# ifdef _WIN32
+ target_len -= 4; // ignore .exe
+# endif
- if (argc > 1) { /* test a single file */
+ if (argc > 1) { /* test a single file */
test_single_file(argv[1]);
- } else { /* test the target directory */
+ } else { /* test the target directory */
int rc;
char corporadir[sizeof(SRCDIR) + 1 + target_len + 8];
- snprintf(corporadir, sizeof(corporadir), SRCDIR "/%.*s.in", (int) target_len, target);
+ snprintf(corporadir, sizeof(corporadir), SRCDIR "/%.*s.in",
+ (int)target_len, target);
rc = test_all_from(corporadir);
if (rc)
fprintf(stderr, "Failed to find %s\n", corporadir);
- snprintf(corporadir, sizeof(corporadir), SRCDIR "/%.*s.repro", (int) target_len, target);
+ snprintf(corporadir, sizeof(corporadir), SRCDIR "/%.*s.repro",
+ (int)target_len, target);
if (test_all_from(corporadir) && rc)
return 77;
@@ -142,7 +149,7 @@ int main(int argc, char **argv)
#else
-#ifndef __AFL_LOOP
+# ifndef __AFL_LOOP
static int __AFL_LOOP(int n)
{
static int first = 1;
@@ -154,14 +161,14 @@ static int __AFL_LOOP(int n)
return 0;
}
-#endif
+# endif
int main(int argc, char **argv)
{
int ret;
unsigned char buf[64 * 1024];
- while (__AFL_LOOP(10000)) { // only works with afl-clang-fast
+ while (__AFL_LOOP(10000)) { // only works with afl-clang-fast
ret = fread(buf, 1, sizeof(buf), stdin);
if (ret < 0)
return 0;
@@ -172,4 +179,4 @@ int main(int argc, char **argv)
return 0;
}
-#endif /* TEST_RUN */
+#endif /* TEST_RUN */
diff --git a/fuzz/mem.h b/fuzz/mem.h
index 5a49b56971..78de427503 100644
--- a/fuzz/mem.h
+++ b/fuzz/mem.h
@@ -29,9 +29,8 @@ typedef struct mem_st {
size_t size;
} mem_st;
-#define MIN(x,y) ((x)<(y)?(x):(y))
-static ssize_t
-mem_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+# define MIN(x,y) ((x)<(y)?(x):(y))
+static ssize_t mem_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
return len;
}
diff --git a/fuzz/srp.h b/fuzz/srp.h
index 90bc283c2f..9a384ab9f0 100644
--- a/fuzz/srp.h
+++ b/fuzz/srp.h
@@ -24,10 +24,10 @@
#ifndef SRP_H
# define SRP_H
-#define USERNAME "test"
-#define PASSWORD "test"
+# define USERNAME "test"
+# define PASSWORD "test"
-#define SALT "\xeb\x0e\x6a\x5c\x02\x0d\x4b\xa9\x97\xb6\xbe\x73\x4a\x71\xc5\x00"
-#define SALT_SIZE 16
+# define SALT "\xeb\x0e\x6a\x5c\x02\x0d\x4b\xa9\x97\xb6\xbe\x73\x4a\x71\xc5\x00"
+# define SALT_SIZE 16
#endif
diff --git a/lib/abstract_int.h b/lib/abstract_int.h
index cc839ccf84..03bc0aa9c3 100644
--- a/lib/abstract_int.h
+++ b/lib/abstract_int.h
@@ -21,13 +21,13 @@
*/
#ifndef GNUTLS_LIB_ABSTRACT_INT_H
-#define GNUTLS_LIB_ABSTRACT_INT_H
+# define GNUTLS_LIB_ABSTRACT_INT_H
-#include <gnutls/abstract.h>
+# include <gnutls/abstract.h>
-typedef int (*gnutls_privkey_pk_params_func) (gnutls_privkey_t key,
- void *userdata,
- gnutls_pk_params_st *params);
+typedef int (*gnutls_privkey_pk_params_func)(gnutls_privkey_t key,
+ void *userdata,
+ gnutls_pk_params_st * params);
struct gnutls_privkey_st {
gnutls_privkey_type_t type;
@@ -35,11 +35,11 @@ struct gnutls_privkey_st {
union {
gnutls_x509_privkey_t x509;
-#ifdef ENABLE_PKCS11
+# ifdef ENABLE_PKCS11
gnutls_pkcs11_privkey_t pkcs11;
-#endif
+# endif
struct {
- gnutls_privkey_sign_func sign_func; /* raw like TLS 1.x */
+ gnutls_privkey_sign_func sign_func; /* raw like TLS 1.x */
gnutls_privkey_sign_data_func sign_data_func;
gnutls_privkey_sign_hash_func sign_hash_func;
gnutls_privkey_decrypt_func decrypt_func;
@@ -81,44 +81,40 @@ int _gnutls_privkey_get_public_mpis(gnutls_privkey_t key,
int _gnutls_privkey_get_spki_params(gnutls_privkey_t key,
gnutls_x509_spki_st * params);
int _gnutls_privkey_update_spki_params(gnutls_privkey_t key,
- gnutls_pk_algorithm_t pk,
- gnutls_digest_algorithm_t dig,
- unsigned flags,
- gnutls_x509_spki_st *params);
+ gnutls_pk_algorithm_t pk,
+ gnutls_digest_algorithm_t dig,
+ unsigned flags,
+ gnutls_x509_spki_st * params);
-unsigned _gnutls_privkey_compatible_with_sig(gnutls_privkey_t key, gnutls_sign_algorithm_t sig);
+unsigned _gnutls_privkey_compatible_with_sig(gnutls_privkey_t key,
+ gnutls_sign_algorithm_t sig);
void _gnutls_privkey_cleanup(gnutls_privkey_t key);
int privkey_sign_and_hash_data(gnutls_privkey_t signer,
- const gnutls_sign_entry_st *se,
+ const gnutls_sign_entry_st * se,
const gnutls_datum_t * data,
gnutls_datum_t * signature,
- gnutls_x509_spki_st *params);
+ gnutls_x509_spki_st * params);
int
privkey_sign_raw_data(gnutls_privkey_t key,
- const gnutls_sign_entry_st *se,
+ const gnutls_sign_entry_st * se,
const gnutls_datum_t * data,
- gnutls_datum_t * signature,
- gnutls_x509_spki_st * params);
+ gnutls_datum_t * signature, gnutls_x509_spki_st * params);
unsigned pubkey_to_bits(const gnutls_pk_params_st * params);
int _gnutls_pubkey_compatible_with_sig(gnutls_session_t,
gnutls_pubkey_t pubkey,
const version_entry_st * ver,
gnutls_sign_algorithm_t sign);
-int
-_gnutls_pubkey_get_mpis(gnutls_pubkey_t key, gnutls_pk_params_st * params);
+int _gnutls_pubkey_get_mpis(gnutls_pubkey_t key, gnutls_pk_params_st * params);
-int pubkey_verify_data(const gnutls_sign_entry_st *se,
- const mac_entry_st *me,
+int pubkey_verify_data(const gnutls_sign_entry_st * se,
+ const mac_entry_st * me,
const gnutls_datum_t * data,
const gnutls_datum_t * signature,
gnutls_pk_params_st * params,
- gnutls_x509_spki_st * sign_params,
- unsigned vflags);
-
-
+ gnutls_x509_spki_st * sign_params, unsigned vflags);
const mac_entry_st *_gnutls_dsa_q_to_hash(const gnutls_pk_params_st *
params, unsigned int *hash_len);
@@ -126,4 +122,4 @@ const mac_entry_st *_gnutls_dsa_q_to_hash(const gnutls_pk_params_st *
int
_gnutls_privkey_get_mpis(gnutls_privkey_t key, gnutls_pk_params_st * params);
-#endif /* GNUTLS_LIB_ABSTRACT_INT_H */
+#endif /* GNUTLS_LIB_ABSTRACT_INT_H */
diff --git a/lib/accelerated/aarch64/aarch64-common.c b/lib/accelerated/aarch64/aarch64-common.c
index cadb436bb7..c40aacd60a 100644
--- a/lib/accelerated/aarch64/aarch64-common.c
+++ b/lib/accelerated/aarch64/aarch64-common.c
@@ -30,7 +30,7 @@
#include <gnutls/crypto.h>
#include "errors.h"
#ifdef HAVE_LIBNETTLE
-# include <nettle/aes.h> /* for key generation in 192 and 256 bits */
+# include <nettle/aes.h> /* for key generation in 192 and 256 bits */
# include "sha-aarch64.h"
# include "aes-aarch64.h"
#endif
@@ -54,7 +54,6 @@ __hidden
#endif
unsigned int _gnutls_arm_cpuid_s = 0;
-
/* Our internal bit-string for cpu capabilities. Should be set
* in GNUTLS_CPUID_OVERRIDE */
#define EMPTY_SET 1
@@ -71,13 +70,13 @@ static void capabilities_to_cpuid(unsigned capabilities)
/* Correspond to asm/hwcap.h for aarch64 */
#ifdef USE_AUXVAL
-#define HWCAP_ASIMD (1 << 1)
-#define HWCAP_AES (1 << 3)
-#define HWCAP_PMULL (1 << 4)
-#define HWCAP_SHA1 (1 << 5)
-#define HWCAP_SHA2 (1 << 6)
-#define HWCAP_SHA3 (1 << 17)
-#define HWCAP_SHA512 (1 << 21)
+# define HWCAP_ASIMD (1 << 1)
+# define HWCAP_AES (1 << 3)
+# define HWCAP_PMULL (1 << 4)
+# define HWCAP_SHA1 (1 << 5)
+# define HWCAP_SHA2 (1 << 6)
+# define HWCAP_SHA3 (1 << 17)
+# define HWCAP_SHA512 (1 << 21)
#endif
static void discover_caps(unsigned int *caps)
@@ -136,7 +135,8 @@ void _register_aarch64_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
80,
- &_gnutls_sha_aarch64, 0);
+ &_gnutls_sha_aarch64,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -155,7 +155,8 @@ void _register_aarch64_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA224,
80,
- &_gnutls_sha_aarch64, 0);
+ &_gnutls_sha_aarch64,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -170,7 +171,8 @@ void _register_aarch64_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
80,
- &_gnutls_sha_aarch64, 0);
+ &_gnutls_sha_aarch64,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -185,7 +187,8 @@ void _register_aarch64_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA384,
80,
- &_gnutls_sha_aarch64, 0);
+ &_gnutls_sha_aarch64,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -200,7 +203,8 @@ void _register_aarch64_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA512,
80,
- &_gnutls_sha_aarch64, 0);
+ &_gnutls_sha_aarch64,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -224,16 +228,16 @@ void _register_aarch64_crypto(unsigned capabilities)
(GNUTLS_CIPHER_AES_128_GCM, 90,
&_gnutls_aes_gcm_aarch64, 0);
if (ret < 0) {
- gnutls_assert();
- }
+ gnutls_assert();
+ }
ret =
gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_192_GCM, 90,
&_gnutls_aes_gcm_aarch64, 0);
if (ret < 0) {
- gnutls_assert();
- }
+ gnutls_assert();
+ }
ret =
gnutls_crypto_single_cipher_register
@@ -246,28 +250,32 @@ void _register_aarch64_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_cipher_register
- (GNUTLS_CIPHER_AES_128_CBC, 90, &_gnutls_aes_cbc_aarch64, 0);
+ (GNUTLS_CIPHER_AES_128_CBC, 90, &_gnutls_aes_cbc_aarch64,
+ 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_cipher_register
- (GNUTLS_CIPHER_AES_256_CBC, 90, &_gnutls_aes_cbc_aarch64, 0);
+ (GNUTLS_CIPHER_AES_256_CBC, 90, &_gnutls_aes_cbc_aarch64,
+ 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_cipher_register
- (GNUTLS_CIPHER_AES_128_CCM, 90, &_gnutls_aes_ccm_aarch64, 0);
+ (GNUTLS_CIPHER_AES_128_CCM, 90, &_gnutls_aes_ccm_aarch64,
+ 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_cipher_register
- (GNUTLS_CIPHER_AES_256_CCM, 90, &_gnutls_aes_ccm_aarch64, 0);
+ (GNUTLS_CIPHER_AES_256_CCM, 90, &_gnutls_aes_ccm_aarch64,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -276,7 +284,6 @@ void _register_aarch64_crypto(unsigned capabilities)
return;
}
-
void register_aarch64_crypto(void)
{
unsigned capabilities = 0;
@@ -288,4 +295,3 @@ void register_aarch64_crypto(void)
_register_aarch64_crypto(capabilities);
}
-
diff --git a/lib/accelerated/aarch64/aarch64-common.h b/lib/accelerated/aarch64/aarch64-common.h
index 039b8fb0d8..6ba1936e74 100644
--- a/lib/accelerated/aarch64/aarch64-common.h
+++ b/lib/accelerated/aarch64/aarch64-common.h
@@ -23,8 +23,8 @@
#ifndef GNUTLS_LIB_ACCELERATED_AARCH64_AARCH64_COMMON_H
# define GNUTLS_LIB_ACCELERATED_AARCH64_AARCH64_COMMON_H
-#if !__ASSEMBLER__
-#define NN_HASH(name, update_func, digest_func, NAME) { \
+# if !__ASSEMBLER__
+# define NN_HASH(name, update_func, digest_func, NAME) { \
#name, \
sizeof(struct name##_ctx), \
NAME##_DIGEST_SIZE, \
@@ -32,17 +32,17 @@
(nettle_hash_init_func *) name##_init, \
(nettle_hash_update_func *) update_func, \
(nettle_hash_digest_func *) digest_func \
-}
+}
void register_aarch64_crypto(void);
-#endif
+# endif
-#define ARMV7_NEON (1<<0)
-#define ARMV7_TICK (1<<1)
-#define ARMV8_AES (1<<2)
-#define ARMV8_SHA1 (1<<3)
-#define ARMV8_SHA256 (1<<4)
-#define ARMV8_PMULL (1<<5)
-#define ARMV8_SHA512 (1<<6)
+# define ARMV7_NEON (1<<0)
+# define ARMV7_TICK (1<<1)
+# define ARMV8_AES (1<<2)
+# define ARMV8_SHA1 (1<<3)
+# define ARMV8_SHA256 (1<<4)
+# define ARMV8_PMULL (1<<5)
+# define ARMV8_SHA512 (1<<6)
-#endif /* GNUTLS_LIB_ACCELERATED_AARCH64_AARCH64_COMMON_H */
+#endif /* GNUTLS_LIB_ACCELERATED_AARCH64_AARCH64_COMMON_H */
diff --git a/lib/accelerated/aarch64/aes-aarch64.h b/lib/accelerated/aarch64/aes-aarch64.h
index 0e64f4ed8d..46bfaaa16e 100644
--- a/lib/accelerated/aarch64/aes-aarch64.h
+++ b/lib/accelerated/aarch64/aes-aarch64.h
@@ -1,13 +1,13 @@
#ifndef GNUTLS_LIB_ACCELERATED_AARCH64_AES_AARCH64_H
-#define GNUTLS_LIB_ACCELERATED_AARCH64_AES_AARCH64_H
+# define GNUTLS_LIB_ACCELERATED_AARCH64_AES_AARCH64_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
-#define ALIGN16(x) \
+# define ALIGN16(x) \
((void *)(((ptrdiff_t)(x)+(ptrdiff_t)0x0f)&~((ptrdiff_t)0x0f)))
-#define AES_KEY_ALIGN_SIZE 4
-#define AES_MAXNR 14
+# define AES_KEY_ALIGN_SIZE 4
+# define AES_MAXNR 14
typedef struct {
/* We add few more integers to allow alignment
* on a 16-byte boundary.
@@ -16,14 +16,14 @@ typedef struct {
uint32_t rounds;
} AES_KEY;
-#define CHECK_AES_KEYSIZE(s) \
+# define CHECK_AES_KEYSIZE(s) \
if (s != 16 && s != 24 && s != 32) \
return GNUTLS_E_INVALID_REQUEST
-#include <intprops.h>
-#define AES_GCM_ENCRYPT_MAX_BYTES ((1ULL << 36) - 32)
-static inline int
-record_aes_gcm_encrypt_size(size_t *counter, size_t size) {
+# include <intprops.h>
+# define AES_GCM_ENCRYPT_MAX_BYTES ((1ULL << 36) - 32)
+static inline int record_aes_gcm_encrypt_size(size_t *counter, size_t size)
+{
size_t sum;
if (!INT_ADD_OK(*counter, size, &sum) ||
@@ -35,15 +35,20 @@ record_aes_gcm_encrypt_size(size_t *counter, size_t size) {
return 0;
}
-int aes_v8_set_encrypt_key(const unsigned char *userKey, int bits, AES_KEY *key);
-int aes_v8_set_decrypt_key(const unsigned char *userKey, int bits, AES_KEY *key);
+int aes_v8_set_encrypt_key(const unsigned char *userKey, int bits,
+ AES_KEY * key);
+int aes_v8_set_decrypt_key(const unsigned char *userKey, int bits,
+ AES_KEY * key);
void aes_v8_cbc_encrypt(const unsigned char *in, unsigned char *out,
- size_t length, const AES_KEY *key, unsigned char *ivec, int enc);
-void aes_v8_encrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key);
-void aes_v8_decrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key);
+ size_t length, const AES_KEY * key, unsigned char *ivec,
+ int enc);
+void aes_v8_encrypt(const unsigned char *in, unsigned char *out,
+ const AES_KEY * key);
+void aes_v8_decrypt(const unsigned char *in, unsigned char *out,
+ const AES_KEY * key);
extern const gnutls_crypto_cipher_st _gnutls_aes_gcm_aarch64;
extern const gnutls_crypto_cipher_st _gnutls_aes_cbc_aarch64;
extern const gnutls_crypto_cipher_st _gnutls_aes_ccm_aarch64;
-#endif /* GNUTLS_LIB_ACCELERATED_AARCH64_AES_AARCH64_H */
+#endif /* GNUTLS_LIB_ACCELERATED_AARCH64_AES_AARCH64_H */
diff --git a/lib/accelerated/aarch64/aes-cbc-aarch64.c b/lib/accelerated/aarch64/aes-cbc-aarch64.c
index 299a0808de..a185447d70 100644
--- a/lib/accelerated/aarch64/aes-cbc-aarch64.c
+++ b/lib/accelerated/aarch64/aes-cbc-aarch64.c
@@ -54,7 +54,7 @@ aes_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
return GNUTLS_E_MEMORY_ERROR;
}
- ((struct aes_ctx *) (*_ctx))->enc = enc;
+ ((struct aes_ctx *)(*_ctx))->enc = enc;
return 0;
}
@@ -70,11 +70,11 @@ aes_aarch64_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
if (ctx->enc)
ret =
aes_v8_set_encrypt_key(userkey, keysize * 8,
- ALIGN16(&ctx->expanded_key));
+ ALIGN16(&ctx->expanded_key));
else
ret =
aes_v8_set_decrypt_key(userkey, keysize * 8,
- ALIGN16(&ctx->expanded_key));
+ ALIGN16(&ctx->expanded_key));
if (ret != 0)
return gnutls_assert_val(GNUTLS_E_ENCRYPTION_FAILED);
@@ -84,7 +84,7 @@ aes_aarch64_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
static int
aes_aarch64_encrypt(void *_ctx, const void *src, size_t src_size,
- void *dst, size_t dst_size)
+ void *dst, size_t dst_size)
{
struct aes_ctx *ctx = _ctx;
@@ -95,13 +95,13 @@ aes_aarch64_encrypt(void *_ctx, const void *src, size_t src_size,
return gnutls_assert_val(GNUTLS_E_SHORT_MEMORY_BUFFER);
aes_v8_cbc_encrypt(src, dst, src_size, ALIGN16(&ctx->expanded_key),
- ctx->iv, 1);
+ ctx->iv, 1);
return 0;
}
static int
aes_aarch64_decrypt(void *_ctx, const void *src, size_t src_size,
- void *dst, size_t dst_size)
+ void *dst, size_t dst_size)
{
struct aes_ctx *ctx = _ctx;
@@ -112,7 +112,7 @@ aes_aarch64_decrypt(void *_ctx, const void *src, size_t src_size,
return gnutls_assert_val(GNUTLS_E_SHORT_MEMORY_BUFFER);
aes_v8_cbc_encrypt(src, dst, src_size, ALIGN16(&ctx->expanded_key),
- ctx->iv, 0);
+ ctx->iv, 0);
return 0;
}
@@ -144,4 +144,3 @@ const gnutls_crypto_cipher_st _gnutls_aes_cbc_aarch64 = {
.decrypt = aes_aarch64_decrypt,
.deinit = aes_deinit,
};
-
diff --git a/lib/accelerated/aarch64/aes-ccm-aarch64.c b/lib/accelerated/aarch64/aes-ccm-aarch64.c
index b415d4ddfb..74f9897fec 100644
--- a/lib/accelerated/aarch64/aes-ccm-aarch64.c
+++ b/lib/accelerated/aarch64/aes-ccm-aarch64.c
@@ -30,13 +30,13 @@
#ifdef HAVE_LIBNETTLE
-#include <gnutls/crypto.h>
-#include "errors.h"
-#include <aarch64-common.h>
-#include <byteswap.h>
-#include <nettle/ccm.h>
-#include <aes-aarch64.h>
-#include <fips.h>
+# include <gnutls/crypto.h>
+# include "errors.h"
+# include <aarch64-common.h>
+# include <byteswap.h>
+# include <nettle/ccm.h>
+# include <aes-aarch64.h>
+# include <fips.h>
typedef struct ccm_aarch64_aes_ctx {
AES_KEY key;
@@ -45,22 +45,21 @@ typedef struct ccm_aarch64_aes_ctx {
/* CCM mode
*/
static void aarch64_aes_encrypt(const void *_ctx,
- size_t length, uint8_t * dst,
- const uint8_t * src)
+ size_t length, uint8_t * dst,
+ const uint8_t * src)
{
- AES_KEY *ctx = (void*)_ctx;
+ AES_KEY *ctx = (void *)_ctx;
unsigned i;
- for (i=0;i<length;i+=16) {
+ for (i = 0; i < length; i += 16) {
aes_v8_encrypt(src, dst, ctx);
- src+=16;
- dst+=16;
+ src += 16;
+ dst += 16;
}
}
static int
-aes_ccm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **ctx,
- int enc)
+aes_ccm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **ctx, int enc)
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_CCM &&
@@ -78,25 +77,24 @@ aes_ccm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **ctx,
return 0;
}
-static int
-aes_ccm_cipher_setkey(void *_ctx, const void *key, size_t length)
+static int aes_ccm_cipher_setkey(void *_ctx, const void *key, size_t length)
{
struct ccm_aarch64_aes_ctx *ctx = _ctx;
CHECK_AES_KEYSIZE(length);
- aes_v8_set_encrypt_key(key, length*8, &ctx->key);
+ aes_v8_set_encrypt_key(key, length * 8, &ctx->key);
return 0;
}
static int
aes_ccm_aead_encrypt(void *_ctx,
- const void *nonce, size_t nonce_size,
- const void *auth, size_t auth_size,
- size_t tag_size,
- const void *plain, size_t plain_size,
- void *encr, size_t encr_size)
+ const void *nonce, size_t nonce_size,
+ const void *auth, size_t auth_size,
+ size_t tag_size,
+ const void *plain, size_t plain_size,
+ void *encr, size_t encr_size)
{
struct ccm_aarch64_aes_ctx *ctx = _ctx;
/* proper AEAD cipher */
@@ -108,12 +106,17 @@ aes_ccm_aead_encrypt(void *_ctx,
* and 128.
*/
switch (tag_size) {
- case 4: case 6:
+ case 4:
+ case 6:
/* SP800-38C B.2 says Tlen smaller than 64 should not be used
* under sufficient restriction. We simply allow those for now.
*/
FALLTHROUGH;
- case 8: case 10: case 12: case 14: case 16:
+ case 8:
+ case 10:
+ case 12:
+ case 14:
+ case 16:
break;
default:
if (_gnutls_fips_mode_enabled()) {
@@ -126,19 +129,17 @@ aes_ccm_aead_encrypt(void *_ctx,
ccm_encrypt_message(&ctx->key, aarch64_aes_encrypt,
nonce_size, nonce,
auth_size, auth,
- tag_size,
- plain_size+tag_size, encr,
- plain);
+ tag_size, plain_size + tag_size, encr, plain);
return 0;
}
static int
aes_ccm_aead_decrypt(void *_ctx,
- const void *nonce, size_t nonce_size,
- const void *auth, size_t auth_size,
- size_t tag_size,
- const void *encr, size_t encr_size,
- void *plain, size_t plain_size)
+ const void *nonce, size_t nonce_size,
+ const void *auth, size_t auth_size,
+ size_t tag_size,
+ const void *encr, size_t encr_size,
+ void *plain, size_t plain_size)
{
struct ccm_aarch64_aes_ctx *ctx = _ctx;
int ret;
@@ -153,12 +154,17 @@ aes_ccm_aead_decrypt(void *_ctx,
* and 128.
*/
switch (tag_size) {
- case 4: case 6:
+ case 4:
+ case 6:
/* SP800-38C B.2 says Tlen smaller than 64 should not be used
* under sufficient restriction. We simply allow those for now.
*/
FALLTHROUGH;
- case 8: case 10: case 12: case 14: case 16:
+ case 8:
+ case 10:
+ case 12:
+ case 14:
+ case 16:
break;
default:
if (_gnutls_fips_mode_enabled()) {
@@ -171,16 +177,13 @@ aes_ccm_aead_decrypt(void *_ctx,
ret = ccm_decrypt_message(&ctx->key, aarch64_aes_encrypt,
nonce_size, nonce,
auth_size, auth,
- tag_size,
- encr_size-tag_size, plain,
- encr);
+ tag_size, encr_size - tag_size, plain, encr);
if (unlikely(ret == 0))
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
return 0;
}
-
static void aes_ccm_deinit(void *_ctx)
{
struct ccm_aarch64_aes_ctx *ctx = _ctx;
diff --git a/lib/accelerated/aarch64/aes-gcm-aarch64.c b/lib/accelerated/aarch64/aes-gcm-aarch64.c
index be1e69c784..8d247897f3 100644
--- a/lib/accelerated/aarch64/aes-gcm-aarch64.c
+++ b/lib/accelerated/aarch64/aes-gcm-aarch64.c
@@ -67,7 +67,7 @@ struct aes_gcm_ctx {
void gcm_init_v8(u128 Htable[16], const uint64_t Xi[2]);
void gcm_ghash_v8(uint64_t Xi[2], const u128 Htable[16],
- const uint8_t * inp, size_t len);
+ const uint8_t * inp, size_t len);
void gcm_gmult_v8(uint64_t Xi[2], const u128 Htable[16]);
static void aes_gcm_deinit(void *_ctx)
@@ -79,8 +79,7 @@ static void aes_gcm_deinit(void *_ctx)
}
static int
-aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
- int enc)
+aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
@@ -107,7 +106,7 @@ aes_gcm_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
ret =
aes_v8_set_encrypt_key(userkey, keysize * 8,
- ALIGN16(&ctx->expanded_key));
+ ALIGN16(&ctx->expanded_key));
if (ret != 0)
return gnutls_assert_val(GNUTLS_E_ENCRYPTION_FAILED);
@@ -139,7 +138,7 @@ static int aes_gcm_setiv(void *_ctx, const void *iv, size_t iv_size)
ctx->gcm.Yi.c[GCM_BLOCK_SIZE - 1] = 1;
aes_v8_encrypt(ctx->gcm.Yi.c, ctx->gcm.EK0.c,
- ALIGN16(&ctx->expanded_key));
+ ALIGN16(&ctx->expanded_key));
ctx->gcm.Yi.c[GCM_BLOCK_SIZE - 1] = 2;
ctx->finished = 0;
ctx->auth_finished = 0;
@@ -154,8 +153,7 @@ gcm_ghash(struct aes_gcm_ctx *ctx, const uint8_t * src, size_t src_size)
size_t aligned_size = src_size - rest;
if (aligned_size > 0)
- gcm_ghash_v8(ctx->gcm.Xi.u, ctx->gcm.Htable, src,
- aligned_size);
+ gcm_ghash_v8(ctx->gcm.Xi.u, ctx->gcm.Htable, src, aligned_size);
if (rest > 0) {
memxor(ctx->gcm.Xi.c, src + aligned_size, rest);
@@ -165,7 +163,7 @@ gcm_ghash(struct aes_gcm_ctx *ctx, const uint8_t * src, size_t src_size)
static void
ctr32_encrypt_blocks_inplace(const unsigned char *in, unsigned char *out,
- size_t blocks, const AES_KEY *key,
+ size_t blocks, const AES_KEY * key,
const unsigned char ivec[16])
{
unsigned i;
@@ -174,7 +172,7 @@ ctr32_encrypt_blocks_inplace(const unsigned char *in, unsigned char *out,
memcpy(ctr, ivec, 16);
- for (i=0;i<blocks;i++) {
+ for (i = 0; i < blocks; i++) {
aes_v8_encrypt(ctr, tmp, key);
memxor3(out, tmp, in, 16);
@@ -186,7 +184,7 @@ ctr32_encrypt_blocks_inplace(const unsigned char *in, unsigned char *out,
static void
ctr32_encrypt_blocks(const unsigned char *in, unsigned char *out,
- size_t blocks, const AES_KEY *key,
+ size_t blocks, const AES_KEY * key,
const unsigned char ivec[16])
{
unsigned i;
@@ -197,7 +195,7 @@ ctr32_encrypt_blocks(const unsigned char *in, unsigned char *out,
memcpy(ctr, ivec, 16);
- for (i=0;i<blocks;i++) {
+ for (i = 0; i < blocks; i++) {
aes_v8_encrypt(ctr, out, key);
memxor(out, in, 16);
@@ -216,8 +214,7 @@ ctr_encrypt_last(struct aes_gcm_ctx *ctx, const uint8_t * src,
memcpy(tmp, &src[pos], length);
ctr32_encrypt_blocks(tmp, out, 1,
- ALIGN16(&ctx->expanded_key),
- ctx->gcm.Yi.c);
+ ALIGN16(&ctx->expanded_key), ctx->gcm.Yi.c);
memcpy(&dst[pos], out, length);
@@ -256,7 +253,7 @@ aes_gcm_encrypt(void *_ctx, const void *src, size_t src_size,
_gnutls_write_uint32(counter, ctx->gcm.Yi.c + 12);
}
- if (rest > 0) { /* last incomplete block */
+ if (rest > 0) { /* last incomplete block */
ctr_encrypt_last(ctx, src, dst, exp_blocks, rest);
ctx->finished = 1;
}
@@ -297,7 +294,7 @@ aes_gcm_decrypt(void *_ctx, const void *src, size_t src_size,
_gnutls_write_uint32(counter, ctx->gcm.Yi.c + 12);
}
- if (rest > 0) { /* last incomplete block */
+ if (rest > 0) { /* last incomplete block */
ctr_encrypt_last(ctx, src, dst, exp_blocks, rest);
ctx->finished = 1;
}
@@ -321,7 +318,6 @@ static int aes_gcm_auth(void *_ctx, const void *src, size_t src_size)
return 0;
}
-
static void aes_gcm_tag(void *_ctx, void *tag, size_t tagsize)
{
struct aes_gcm_ctx *ctx = _ctx;
@@ -334,8 +330,7 @@ static void aes_gcm_tag(void *_ctx, void *tag, size_t tagsize)
_gnutls_write_uint64(alen, buffer);
_gnutls_write_uint64(clen, &buffer[8]);
- gcm_ghash_v8(ctx->gcm.Xi.u, ctx->gcm.Htable, buffer,
- GCM_BLOCK_SIZE);
+ gcm_ghash_v8(ctx->gcm.Xi.u, ctx->gcm.Htable, buffer, GCM_BLOCK_SIZE);
ctx->gcm.Xi.u[0] ^= ctx->gcm.EK0.u[0];
ctx->gcm.Xi.u[1] ^= ctx->gcm.EK0.u[1];
diff --git a/lib/accelerated/aarch64/hmac-sha-aarch64.c b/lib/accelerated/aarch64/hmac-sha-aarch64.c
index 4748a546c5..c60c37644d 100644
--- a/lib/accelerated/aarch64/hmac-sha-aarch64.c
+++ b/lib/accelerated/aarch64/hmac-sha-aarch64.c
@@ -36,9 +36,9 @@
#ifdef HAVE_LIBNETTLE
-typedef void (*update_func) (void *, size_t, const uint8_t *);
-typedef void (*digest_func) (void *, size_t, uint8_t *);
-typedef void (*set_key_func) (void *, size_t, const uint8_t *);
+typedef void (*update_func)(void *, size_t, const uint8_t *);
+typedef void (*digest_func)(void *, size_t, uint8_t *);
+typedef void (*set_key_func)(void *, size_t, const uint8_t *);
struct aarch64_hmac_ctx {
union {
@@ -195,7 +195,6 @@ _hmac_ctx_init(gnutls_mac_algorithm_t algo, struct aarch64_hmac_ctx *ctx)
return 0;
}
-
static int wrap_aarch64_hmac_init(gnutls_mac_algorithm_t algo, void **_ctx)
{
struct aarch64_hmac_ctx *ctx;
@@ -218,12 +217,11 @@ static int wrap_aarch64_hmac_init(gnutls_mac_algorithm_t algo, void **_ctx)
return 0;
}
-static void *
-wrap_aarch64_hmac_copy(const void *_ctx)
+static void *wrap_aarch64_hmac_copy(const void *_ctx)
{
struct aarch64_hmac_ctx *new_ctx;
- const struct aarch64_hmac_ctx *ctx=_ctx;
- ptrdiff_t off = (uint8_t *)ctx->ctx_ptr - (uint8_t *)(&ctx->ctx);
+ const struct aarch64_hmac_ctx *ctx = _ctx;
+ ptrdiff_t off = (uint8_t *) ctx->ctx_ptr - (uint8_t *) (&ctx->ctx);
new_ctx = gnutls_malloc(sizeof(struct aarch64_hmac_ctx));
if (new_ctx == NULL) {
@@ -232,14 +230,12 @@ wrap_aarch64_hmac_copy(const void *_ctx)
}
memcpy(new_ctx, ctx, sizeof(*new_ctx));
- new_ctx->ctx_ptr = (uint8_t *)&new_ctx->ctx + off;
+ new_ctx->ctx_ptr = (uint8_t *) & new_ctx->ctx + off;
return new_ctx;
}
-
-static int
-wrap_aarch64_hmac_setkey(void *_ctx, const void *key, size_t keylen)
+static int wrap_aarch64_hmac_setkey(void *_ctx, const void *key, size_t keylen)
{
struct aarch64_hmac_ctx *ctx = _ctx;
@@ -283,10 +279,10 @@ static void wrap_aarch64_hmac_deinit(void *hd)
}
static int wrap_aarch64_hmac_fast(gnutls_mac_algorithm_t algo,
- const void *nonce, size_t nonce_size,
- const void *key, size_t key_size,
- const void *text, size_t text_size,
- void *digest)
+ const void *nonce, size_t nonce_size,
+ const void *key, size_t key_size,
+ const void *text, size_t text_size,
+ void *digest)
{
struct aarch64_hmac_ctx ctx;
int ret;
diff --git a/lib/accelerated/aarch64/sha-aarch64.c b/lib/accelerated/aarch64/sha-aarch64.c
index 903c510c7f..f4df58371e 100644
--- a/lib/accelerated/aarch64/sha-aarch64.c
+++ b/lib/accelerated/aarch64/sha-aarch64.c
@@ -35,10 +35,10 @@ void sha1_block_data_order(void *c, const void *p, size_t len);
void sha256_block_data_order(void *c, const void *p, size_t len);
void sha512_block_data_order(void *c, const void *p, size_t len);
-typedef void (*update_func) (void *, size_t, const uint8_t *);
-typedef void (*digest_func) (void *, size_t, uint8_t *);
-typedef void (*set_key_func) (void *, size_t, const uint8_t *);
-typedef void (*init_func) (void *);
+typedef void (*update_func)(void *, size_t, const uint8_t *);
+typedef void (*digest_func)(void *, size_t, uint8_t *);
+typedef void (*set_key_func)(void *, size_t, const uint8_t *);
+typedef void (*init_func)(void *);
struct aarch64_hash_ctx {
union {
@@ -72,7 +72,7 @@ static void wrap_aarch64_hash_deinit(void *hd)
}
void aarch64_sha1_update(struct sha1_ctx *ctx, size_t length,
- const uint8_t * data)
+ const uint8_t * data)
{
struct {
uint32_t h0, h1, h2, h3, h4;
@@ -110,7 +110,7 @@ void aarch64_sha1_update(struct sha1_ctx *ctx, size_t length,
sha1_block_data_order(&octx, data, t2);
- for (i=0;i<t2;i++)
+ for (i = 0; i < t2; i++)
ctx->count++;
data += length;
}
@@ -131,7 +131,7 @@ void aarch64_sha1_update(struct sha1_ctx *ctx, size_t length,
}
void aarch64_sha256_update(struct sha256_ctx *ctx, size_t length,
- const uint8_t * data)
+ const uint8_t * data)
{
struct {
uint32_t h[8];
@@ -162,8 +162,8 @@ void aarch64_sha256_update(struct sha256_ctx *ctx, size_t length,
if (length > 0) {
t2 = length / SHA1_DATA_SIZE;
sha256_block_data_order(&octx, data, t2);
-
- for (i=0;i<t2;i++)
+
+ for (i = 0; i < t2; i++)
ctx->count++;
data += length;
}
@@ -179,14 +179,14 @@ void aarch64_sha256_update(struct sha256_ctx *ctx, size_t length,
}
void aarch64_sha512_update(struct sha512_ctx *ctx, size_t length,
- const uint8_t * data)
+ const uint8_t * data)
{
struct {
uint64_t h[8];
uint64_t Nl, Nh;
union {
uint64_t d[16];
- uint8_t p[16*8];
+ uint8_t p[16 * 8];
} u;
unsigned int num;
unsigned md_len;
@@ -213,8 +213,8 @@ void aarch64_sha512_update(struct sha512_ctx *ctx, size_t length,
if (length > 0) {
t2 = length / SHA512_DATA_SIZE;
sha512_block_data_order(&octx, data, t2);
-
- for (i=0;i<t2;i++)
+
+ for (i = 0; i < t2; i++)
MD_INCR(ctx);
data += length;
}
@@ -281,7 +281,6 @@ static int _ctx_init(gnutls_digest_algorithm_t algo,
return 0;
}
-
static int wrap_aarch64_hash_init(gnutls_digest_algorithm_t algo, void **_ctx)
{
struct aarch64_hash_ctx *ctx;
@@ -305,12 +304,11 @@ static int wrap_aarch64_hash_init(gnutls_digest_algorithm_t algo, void **_ctx)
return 0;
}
-static void *
-wrap_aarch64_hash_copy(const void *_ctx)
+static void *wrap_aarch64_hash_copy(const void *_ctx)
{
struct aarch64_hash_ctx *new_ctx;
- const struct aarch64_hash_ctx *ctx=_ctx;
- ptrdiff_t off = (uint8_t *)ctx->ctx_ptr - (uint8_t *)(&ctx->ctx);
+ const struct aarch64_hash_ctx *ctx = _ctx;
+ ptrdiff_t off = (uint8_t *) ctx->ctx_ptr - (uint8_t *) (&ctx->ctx);
new_ctx = gnutls_malloc(sizeof(struct aarch64_hash_ctx));
if (new_ctx == NULL) {
@@ -319,7 +317,7 @@ wrap_aarch64_hash_copy(const void *_ctx)
}
memcpy(new_ctx, ctx, sizeof(*new_ctx));
- new_ctx->ctx_ptr = (uint8_t *)&new_ctx->ctx + off;
+ new_ctx->ctx_ptr = (uint8_t *) & new_ctx->ctx + off;
return new_ctx;
}
@@ -339,8 +337,8 @@ wrap_aarch64_hash_output(void *src_ctx, void *digest, size_t digestsize)
}
static int wrap_aarch64_hash_fast(gnutls_digest_algorithm_t algo,
- const void *text, size_t text_size,
- void *digest)
+ const void *text, size_t text_size,
+ void *digest)
{
struct aarch64_hash_ctx ctx;
int ret;
diff --git a/lib/accelerated/aarch64/sha-aarch64.h b/lib/accelerated/aarch64/sha-aarch64.h
index e5282b87a1..ee13a7dbd0 100644
--- a/lib/accelerated/aarch64/sha-aarch64.h
+++ b/lib/accelerated/aarch64/sha-aarch64.h
@@ -1,7 +1,7 @@
#ifndef GNUTLS_LIB_ACCELERATED_AARCH64_SHA_AARCH64_H
-#define GNUTLS_LIB_ACCELERATED_AARCH64_SHA_AARCH64_H
+# define GNUTLS_LIB_ACCELERATED_AARCH64_SHA_AARCH64_H
-#include <nettle/sha.h>
+# include <nettle/sha.h>
extern const struct nettle_hash aarch64_sha1;
extern const struct nettle_hash aarch64_sha224;
@@ -12,8 +12,11 @@ extern const struct nettle_hash aarch64_sha512;
extern const gnutls_crypto_digest_st _gnutls_sha_aarch64;
extern const gnutls_crypto_mac_st _gnutls_hmac_sha_aarch64;
-void aarch64_sha1_update(struct sha1_ctx *ctx, size_t length, const uint8_t * data);
-void aarch64_sha256_update(struct sha256_ctx *ctx, size_t length, const uint8_t * data);
-void aarch64_sha512_update(struct sha512_ctx *ctx, size_t length, const uint8_t * data);
+void aarch64_sha1_update(struct sha1_ctx *ctx, size_t length,
+ const uint8_t * data);
+void aarch64_sha256_update(struct sha256_ctx *ctx, size_t length,
+ const uint8_t * data);
+void aarch64_sha512_update(struct sha512_ctx *ctx, size_t length,
+ const uint8_t * data);
-#endif /* GNUTLS_LIB_ACCELERATED_AARCH64_SHA_AARCH64_H */
+#endif /* GNUTLS_LIB_ACCELERATED_AARCH64_SHA_AARCH64_H */
diff --git a/lib/accelerated/accelerated.h b/lib/accelerated/accelerated.h
index 5e9e92afb1..3f722aa2c1 100644
--- a/lib/accelerated/accelerated.h
+++ b/lib/accelerated/accelerated.h
@@ -3,4 +3,4 @@
void _gnutls_register_accel_crypto(void);
-#endif /* GNUTLS_LIB_ACCELERATED_ACCELERATED_H */
+#endif /* GNUTLS_LIB_ACCELERATED_ACCELERATED_H */
diff --git a/lib/accelerated/afalg.c b/lib/accelerated/afalg.c
index cf7be75b9c..9c27fc95e6 100644
--- a/lib/accelerated/afalg.c
+++ b/lib/accelerated/afalg.c
@@ -23,13 +23,13 @@
#ifdef ENABLE_AFALG
-#include "errors.h"
-#include "gnutls_int.h"
+# include "errors.h"
+# include "gnutls_int.h"
-#include <gnutls/crypto.h>
-#include <kcapi.h>
-#include <limits.h>
-#include "malloca.h"
+# include <gnutls/crypto.h>
+# include <kcapi.h>
+# include <limits.h>
+# include "malloca.h"
/************************ Symmetric cipher algorithms ************************/
@@ -39,7 +39,6 @@ struct kcapi_ctx {
uint8_t iv[MAX_CIPHER_IV_SIZE];
};
-
static const char *gnutls_cipher_map[] = {
[GNUTLS_CIPHER_AES_128_CBC] = "cbc(aes)",
[GNUTLS_CIPHER_AES_192_CBC] = "cbc(aes)",
@@ -103,12 +102,14 @@ static int afalg_cipher_setiv(void *_ctx, const void *iv, size_t iv_size)
memcpy(ctx->iv, iv, iv_size);
if (ctx->enc) {
- if (kcapi_cipher_stream_init_enc(ctx->handle, ctx->iv, NULL, 0) < 0) {
+ if (kcapi_cipher_stream_init_enc(ctx->handle, ctx->iv, NULL, 0)
+ < 0) {
gnutls_assert();
return GNUTLS_E_ENCRYPTION_FAILED;
}
} else {
- if (kcapi_cipher_stream_init_dec(ctx->handle, ctx->iv, NULL, 0) < 0) {
+ if (kcapi_cipher_stream_init_dec(ctx->handle, ctx->iv, NULL, 0)
+ < 0) {
gnutls_assert();
return GNUTLS_E_ENCRYPTION_FAILED;
}
@@ -272,13 +273,13 @@ afalg_aead_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
return GNUTLS_E_MEMORY_ERROR;
}
- switch(algorithm) {
- case GNUTLS_CIPHER_AES_128_CCM:
- case GNUTLS_CIPHER_AES_256_CCM:
- ctx->ccm = 1;
- break;
- default:
- ctx->ccm = 0;
+ switch (algorithm) {
+ case GNUTLS_CIPHER_AES_128_CCM:
+ case GNUTLS_CIPHER_AES_256_CCM:
+ ctx->ccm = 1;
+ break;
+ default:
+ ctx->ccm = 0;
}
ctx->handle = handle;
*_ctx = ctx;
@@ -343,13 +344,13 @@ static int afalg_aead_decrypt(void *_ctx,
uint32_t ccm_iv_len;
if (kcapi_aead_ccm_nonce_to_iv(nonce, nonce_size, &ccm_iv,
- &ccm_iv_len)) {
+ &ccm_iv_len)) {
gnutls_assert();
ret = GNUTLS_E_DECRYPTION_FAILED;
goto end;
}
if (kcapi_aead_stream_init_dec(ctx->handle, ccm_iv, NULL, 0)
- < 0) {
+ < 0) {
free(ccm_iv);
gnutls_assert();
ret = GNUTLS_E_DECRYPTION_FAILED;
@@ -358,7 +359,7 @@ static int afalg_aead_decrypt(void *_ctx,
free(ccm_iv);
} else {
if (kcapi_aead_stream_init_dec(ctx->handle, nonce, NULL, 0)
- < 0) {
+ < 0) {
gnutls_assert();
ret = GNUTLS_E_DECRYPTION_FAILED;
goto end;
@@ -369,7 +370,7 @@ static int afalg_aead_decrypt(void *_ctx,
* Set AAD: IOVECs do not support const, this buffer is guaranteed to be
* read-only
*/
- iov[0].iov_base = (void*)auth;
+ iov[0].iov_base = (void *)auth;
iov[0].iov_len = auth_size;
/*
@@ -390,8 +391,9 @@ static int afalg_aead_decrypt(void *_ctx,
/* Set PT buffer to be filled by kernel */
uint32_t outbuflen = kcapi_aead_outbuflen_dec(ctx->handle,
- encr_size - tag_size,
- auth_size, tag_size)-auth_size;
+ encr_size - tag_size,
+ auth_size,
+ tag_size) - auth_size;
iov[1].iov_base = (void *)plain;
iov[1].iov_len = (plain_size > outbuflen) ? outbuflen : plain_size;
@@ -401,10 +403,11 @@ static int afalg_aead_decrypt(void *_ctx,
goto end;
}
-end:
+ end:
freea(authtmp);
return ret;
}
+
static int afalg_aead_encrypt(void *_ctx, const void *nonce, size_t nonce_size,
const void *auth, size_t auth_size,
size_t tag_size,
@@ -452,13 +455,13 @@ static int afalg_aead_encrypt(void *_ctx, const void *nonce, size_t nonce_size,
uint32_t ccm_iv_len;
if (kcapi_aead_ccm_nonce_to_iv(nonce, nonce_size, &ccm_iv,
- &ccm_iv_len)) {
+ &ccm_iv_len)) {
gnutls_assert();
ret = GNUTLS_E_ENCRYPTION_FAILED;
goto end;
}
if (kcapi_aead_stream_init_enc(ctx->handle, ccm_iv, NULL, 0)
- < 0) {
+ < 0) {
free(ccm_iv);
gnutls_assert();
ret = GNUTLS_E_ENCRYPTION_FAILED;
@@ -467,7 +470,7 @@ static int afalg_aead_encrypt(void *_ctx, const void *nonce, size_t nonce_size,
free(ccm_iv);
} else {
if (kcapi_aead_stream_init_enc(ctx->handle, nonce, NULL, 0)
- < 0) {
+ < 0) {
gnutls_assert();
ret = GNUTLS_E_ENCRYPTION_FAILED;
goto end;
@@ -478,7 +481,7 @@ static int afalg_aead_encrypt(void *_ctx, const void *nonce, size_t nonce_size,
* Set AAD: IOVECs do not support const, this buffer is guaranteed to be
* read-only
*/
- iov[0].iov_base = (void*)auth;
+ iov[0].iov_base = (void *)auth;
iov[0].iov_len = auth_size;
/*
@@ -523,7 +526,7 @@ static int afalg_aead_encrypt(void *_ctx, const void *nonce, size_t nonce_size,
goto end;
}
-end:
+ end:
freea(authtmp);
return ret;
}
@@ -542,8 +545,7 @@ static int afalg_aead_register(void)
int ret = 0;
for (i = 0;
- i < sizeof(gnutls_aead_map) / sizeof(gnutls_aead_map[0]);
- i++) {
+ i < sizeof(gnutls_aead_map) / sizeof(gnutls_aead_map[0]); i++) {
struct kcapi_handle *handle;
if (gnutls_aead_map[i] == 0)
@@ -610,14 +612,16 @@ static int afalg_mac_hash(void *ctx, const void *_text, size_t textsize)
const uint8_t *text = _text;
size_t offset;
- for (offset = 0; offset < textsize - textsize % INT_MAX; offset += INT_MAX) {
+ for (offset = 0; offset < textsize - textsize % INT_MAX;
+ offset += INT_MAX) {
if (kcapi_md_update(handle, text + offset, INT_MAX) < 0) {
return gnutls_assert_val(GNUTLS_E_ENCRYPTION_FAILED);
}
}
if (offset < textsize) {
- if (kcapi_md_update(handle, text + offset, textsize - offset) < 0) {
+ if (kcapi_md_update(handle, text + offset, textsize - offset) <
+ 0) {
return gnutls_assert_val(GNUTLS_E_ENCRYPTION_FAILED);
}
}
@@ -682,7 +686,7 @@ static int afalg_mac_fast(gnutls_mac_algorithm_t algorithm, const void *nonce,
ret = 0;
-out:
+ out:
kcapi_md_destroy(handle);
return ret;
@@ -703,9 +707,7 @@ static int afalg_mac_register(void)
unsigned int i;
int ret = 0;
- for (i = 0;
- i < sizeof(gnutls_mac_map) / sizeof(gnutls_mac_map[0]);
- i++) {
+ for (i = 0; i < sizeof(gnutls_mac_map) / sizeof(gnutls_mac_map[0]); i++) {
struct kcapi_handle *handle;
if (gnutls_mac_map[i] == 0)
@@ -730,7 +732,6 @@ static int afalg_mac_register(void)
return ret;
}
-
/***************************** Digest algorithms *****************************/
static const char *gnutls_digest_map[] = {
@@ -786,7 +787,7 @@ static int afalg_digest_fast(gnutls_digest_algorithm_t algorithm,
ret = 0;
-out:
+ out:
kcapi_md_destroy(handle);
return ret;
@@ -857,7 +858,7 @@ void _gnutls_afalg_deinit(void)
return;
}
-#else /* ENABLE_AFALG */
+#else /* ENABLE_AFALG */
int _gnutls_afalg_init(void)
{
@@ -869,4 +870,4 @@ void _gnutls_afalg_deinit(void)
return;
}
-#endif /* ENABLE_AFALG */
+#endif /* ENABLE_AFALG */
diff --git a/lib/accelerated/cryptodev-gcm.c b/lib/accelerated/cryptodev-gcm.c
index f729406b8e..35073b8b62 100644
--- a/lib/accelerated/cryptodev-gcm.c
+++ b/lib/accelerated/cryptodev-gcm.c
@@ -28,22 +28,21 @@
#ifdef ENABLE_CRYPTODEV
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <crypto/cryptodev.h>
+# include <fcntl.h>
+# include <sys/ioctl.h>
+# include <crypto/cryptodev.h>
-#ifndef CRYPTO_CIPHER_MAX_KEY_LEN
-#define CRYPTO_CIPHER_MAX_KEY_LEN 64
-#endif
+# ifndef CRYPTO_CIPHER_MAX_KEY_LEN
+# define CRYPTO_CIPHER_MAX_KEY_LEN 64
+# endif
-#ifndef EALG_MAX_BLOCK_LEN
-#define EALG_MAX_BLOCK_LEN 16
-#endif
+# ifndef EALG_MAX_BLOCK_LEN
+# define EALG_MAX_BLOCK_LEN 16
+# endif
+# ifdef CIOCAUTHCRYPT
-#ifdef CIOCAUTHCRYPT
-
-#define GCM_BLOCK_SIZE 16
+# define GCM_BLOCK_SIZE 16
struct cryptodev_gcm_ctx {
struct session_op sess;
@@ -74,8 +73,7 @@ static const int cipher_map[] = {
};
static int
-aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
- int enc)
+aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
{
struct cryptodev_gcm_ctx *ctx;
@@ -85,7 +83,6 @@ aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
return GNUTLS_E_MEMORY_ERROR;
}
-
ctx = *_ctx;
ctx->cfd = _gnutls_cryptodev_fd;
@@ -103,7 +100,7 @@ aes_gcm_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
CHECK_AES_KEYSIZE(keysize);
ctx->sess.keylen = keysize;
- ctx->sess.key = (void *) userkey;
+ ctx->sess.key = (void *)userkey;
if (ioctl(ctx->cfd, CIOCGSESSION, &ctx->sess)) {
gnutls_assert();
@@ -123,7 +120,7 @@ static int aes_gcm_setiv(void *_ctx, const void *iv, size_t iv_size)
memcpy(ctx->iv, iv, GCM_BLOCK_SIZE - 4);
- ctx->cryp.iv = (void *) ctx->iv;
+ ctx->cryp.iv = (void *)ctx->iv;
return 0;
}
@@ -141,7 +138,7 @@ aes_gcm_encrypt(void *_ctx, const void *src, size_t src_size,
return gnutls_assert_val(GNUTLS_E_SHORT_MEMORY_BUFFER);
ctx->cryp.len = src_size;
- ctx->cryp.src = (void *) src;
+ ctx->cryp.src = (void *)src;
ctx->cryp.dst = dst;
ctx->cryp.op = COP_ENCRYPT;
@@ -169,7 +166,7 @@ aes_gcm_decrypt(void *_ctx, const void *src, size_t src_size,
* encrypted data.
*/
ctx->cryp.len = src_size + GCM_BLOCK_SIZE;
- ctx->cryp.src = (void *) src;
+ ctx->cryp.src = (void *)src;
ctx->cryp.dst = dst;
ctx->cryp.op = COP_DECRYPT;
@@ -195,7 +192,7 @@ static int aes_gcm_auth(void *_ctx, const void *src, size_t src_size)
struct cryptodev_gcm_ctx *ctx = _ctx;
ctx->op = 0;
- ctx->auth_data = (void *) src;
+ ctx->auth_data = (void *)src;
ctx->auth_data_size = src_size;
return 0;
@@ -224,7 +221,7 @@ static void aes_gcm_tag(void *_ctx, void *tag, size_t tagsize)
ctx->op = 0;
}
-#include "x86/aes-gcm-aead.h"
+# include "x86/aes-gcm-aead.h"
static const gnutls_crypto_cipher_st cipher_struct = {
.init = aes_gcm_cipher_init,
@@ -245,11 +242,11 @@ int _cryptodev_register_gcm_crypto(int cfd)
uint8_t fake_key[CRYPTO_CIPHER_MAX_KEY_LEN];
unsigned int i;
int ret;
-#ifdef CIOCGSESSINFO
+# ifdef CIOCGSESSINFO
struct session_info_op siop;
memset(&siop, 0, sizeof(siop));
-#endif
+# endif
memset(&sess, 0, sizeof(sess));
@@ -265,7 +262,7 @@ int _cryptodev_register_gcm_crypto(int cfd)
if (ioctl(cfd, CIOCGSESSION, &sess)) {
continue;
}
-#ifdef CIOCGSESSINFO
+# ifdef CIOCGSESSINFO
siop.ses = sess.ses; /* do not register ciphers that are not hw accelerated */
if (ioctl(cfd, CIOCGSESSINFO, &siop) == 0) {
if (!(siop.flags & SIOP_FLAG_KERNEL_DRIVER_ONLY)) {
@@ -273,7 +270,7 @@ int _cryptodev_register_gcm_crypto(int cfd)
continue;
}
}
-#endif
+# endif
ioctl(cfd, CIOCFSESSION, &sess.ses);
@@ -292,6 +289,6 @@ int _cryptodev_register_gcm_crypto(int cfd)
return 0;
}
-#endif /* CIOCAUTHCRYPT */
+# endif /* CIOCAUTHCRYPT */
#endif /* ENABLE_CRYPTODEV */
diff --git a/lib/accelerated/cryptodev.c b/lib/accelerated/cryptodev.c
index dca3aa8ee8..0a60ab241d 100644
--- a/lib/accelerated/cryptodev.c
+++ b/lib/accelerated/cryptodev.c
@@ -28,18 +28,18 @@
#ifdef ENABLE_CRYPTODEV
-#include <assert.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <crypto/cryptodev.h>
+# include <assert.h>
+# include <fcntl.h>
+# include <sys/ioctl.h>
+# include <crypto/cryptodev.h>
-#ifndef CRYPTO_CIPHER_MAX_KEY_LEN
-#define CRYPTO_CIPHER_MAX_KEY_LEN 64
-#endif
+# ifndef CRYPTO_CIPHER_MAX_KEY_LEN
+# define CRYPTO_CIPHER_MAX_KEY_LEN 64
+# endif
-#ifndef EALG_MAX_BLOCK_LEN
-#define EALG_MAX_BLOCK_LEN 16
-#endif
+# ifndef EALG_MAX_BLOCK_LEN
+# define EALG_MAX_BLOCK_LEN 16
+# endif
int _gnutls_cryptodev_fd = -1;
@@ -65,8 +65,7 @@ static const int gnutls_cipher_map[] = {
};
static int
-cryptodev_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
- int enc)
+cryptodev_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
{
struct cryptodev_ctx *ctx;
int cipher = gnutls_cipher_map[algorithm];
@@ -86,15 +85,14 @@ cryptodev_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
return 0;
}
-static int
-cryptodev_cipher_setkey(void *_ctx, const void *key, size_t keysize)
+static int cryptodev_cipher_setkey(void *_ctx, const void *key, size_t keysize)
{
struct cryptodev_ctx *ctx = _ctx;
CHECK_AES_KEYSIZE(keysize);
ctx->sess.keylen = keysize;
- ctx->sess.key = (void *) key;
+ ctx->sess.key = (void *)key;
if (ioctl(ctx->cfd, CIOCGSESSION, &ctx->sess)) {
gnutls_assert();
@@ -123,7 +121,7 @@ cryptodev_encrypt(void *_ctx, const void *src, size_t src_size,
{
struct cryptodev_ctx *ctx = _ctx;
ctx->cryp.len = src_size;
- ctx->cryp.src = (void *) src;
+ ctx->cryp.src = (void *)src;
ctx->cryp.dst = dst;
ctx->cryp.op = COP_ENCRYPT;
ctx->cryp.flags = COP_FLAG_WRITE_IV;
@@ -148,7 +146,7 @@ cryptodev_decrypt(void *_ctx, const void *src, size_t src_size,
struct cryptodev_ctx *ctx = _ctx;
ctx->cryp.len = src_size;
- ctx->cryp.src = (void *) src;
+ ctx->cryp.src = (void *)src;
ctx->cryp.dst = dst;
ctx->cryp.op = COP_DECRYPT;
ctx->cryp.flags = COP_FLAG_WRITE_IV;
@@ -189,9 +187,9 @@ static int register_crypto(int cfd)
uint8_t fake_key[CRYPTO_CIPHER_MAX_KEY_LEN];
unsigned int i;
int ret;
-#ifdef CIOCGSESSINFO
+# ifdef CIOCGSESSINFO
struct session_info_op siop;
-#endif
+# endif
memset(&sess, 0, sizeof(sess));
@@ -209,7 +207,7 @@ static int register_crypto(int cfd)
if (ioctl(cfd, CIOCGSESSION, &sess)) {
continue;
}
-#ifdef CIOCGSESSINFO
+# ifdef CIOCGSESSINFO
memset(&siop, 0, sizeof(siop));
siop.ses = sess.ses; /* do not register ciphers that are not hw accelerated */
@@ -219,7 +217,7 @@ static int register_crypto(int cfd)
continue;
}
}
-#endif
+# endif
ioctl(cfd, CIOCFSESSION, &sess.ses);
@@ -235,11 +233,11 @@ static int register_crypto(int cfd)
}
-#ifdef CIOCAUTHCRYPT
+# ifdef CIOCAUTHCRYPT
return _cryptodev_register_gcm_crypto(cfd);
-#else
+# else
return 0;
-#endif
+# endif
}
int _gnutls_cryptodev_init(void)
@@ -252,7 +250,7 @@ int _gnutls_cryptodev_init(void)
gnutls_assert();
return GNUTLS_E_CRYPTODEV_DEVICE_ERROR;
}
-#ifndef CRIOGET_NOT_NEEDED
+# ifndef CRIOGET_NOT_NEEDED
{
int cfd = -1;
/* Clone file descriptor */
@@ -270,7 +268,7 @@ int _gnutls_cryptodev_init(void)
close(_gnutls_cryptodev_fd);
_gnutls_cryptodev_fd = cfd;
}
-#endif
+# endif
ret = register_crypto(_gnutls_cryptodev_fd);
if (ret < 0)
@@ -300,7 +298,7 @@ void _gnutls_cryptodev_deinit(void)
/* if we are using linux /dev/crypto
*/
-#if defined(COP_FLAG_UPDATE) && defined(COP_FLAG_RESET)
+# if defined(COP_FLAG_UPDATE) && defined(COP_FLAG_RESET)
static const int gnutls_mac_map[] = {
[GNUTLS_MAC_MD5] = CRYPTO_MD5_HMAC,
@@ -326,7 +324,7 @@ cryptodev_mac_fast(gnutls_mac_algorithm_t algo,
ctx.sess.mac = gnutls_mac_map[algo];
ctx.sess.mackeylen = key_size;
- ctx.sess.mackey = (void *) key;
+ ctx.sess.mackey = (void *)key;
if (ioctl(ctx.cfd, CIOCGSESSION, &ctx.sess))
return gnutls_assert_val(GNUTLS_E_CRYPTODEV_IOCTL_ERROR);
@@ -334,7 +332,7 @@ cryptodev_mac_fast(gnutls_mac_algorithm_t algo,
ctx.cryp.ses = ctx.sess.ses;
ctx.cryp.len = text_size;
- ctx.cryp.src = (void *) text;
+ ctx.cryp.src = (void *)text;
ctx.cryp.dst = NULL;
ctx.cryp.op = COP_ENCRYPT;
ctx.cryp.mac = digest;
@@ -348,7 +346,7 @@ cryptodev_mac_fast(gnutls_mac_algorithm_t algo,
return 0;
}
-#define cryptodev_mac_deinit cryptodev_deinit
+# define cryptodev_mac_deinit cryptodev_deinit
static const gnutls_crypto_mac_st mac_struct = {
.init = NULL,
@@ -387,7 +385,7 @@ cryptodev_digest_fast(gnutls_digest_algorithm_t algo,
ctx.cryp.ses = ctx.sess.ses;
ctx.cryp.len = text_size;
- ctx.cryp.src = (void *) text;
+ ctx.cryp.src = (void *)text;
ctx.cryp.dst = NULL;
ctx.cryp.op = COP_ENCRYPT;
ctx.cryp.mac = digest;
@@ -415,13 +413,12 @@ static int register_mac_digest(int cfd)
uint8_t fake_key[CRYPTO_CIPHER_MAX_KEY_LEN];
unsigned int i;
int ret;
-#ifdef CIOCGSESSINFO
+# ifdef CIOCGSESSINFO
struct session_info_op siop;
-#endif
+# endif
memset(&sess, 0, sizeof(sess));
- for (i = 0; i < sizeof(gnutls_mac_map) / sizeof(gnutls_mac_map[0]);
- i++) {
+ for (i = 0; i < sizeof(gnutls_mac_map) / sizeof(gnutls_mac_map[0]); i++) {
if (gnutls_mac_map[i] == 0)
continue;
@@ -432,7 +429,7 @@ static int register_mac_digest(int cfd)
if (ioctl(cfd, CIOCGSESSION, &sess)) {
continue;
}
-#ifdef CIOCGSESSINFO
+# ifdef CIOCGSESSINFO
memset(&siop, 0, sizeof(siop));
siop.ses = sess.ses; /* do not register ciphers that are not hw accelerated */
@@ -442,14 +439,13 @@ static int register_mac_digest(int cfd)
continue;
}
}
-#endif
+# endif
_gnutls_debug_log("/dev/crypto: registering: HMAC-%s\n",
gnutls_mac_get_name(i));
ioctl(cfd, CIOCFSESSION, &sess.ses);
- ret =
- gnutls_crypto_single_mac_register(i, 90, &mac_struct, 0);
+ ret = gnutls_crypto_single_mac_register(i, 90, &mac_struct, 0);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -468,7 +464,7 @@ static int register_mac_digest(int cfd)
if (ioctl(cfd, CIOCGSESSION, &sess)) {
continue;
}
-#ifdef CIOCGSESSINFO
+# ifdef CIOCGSESSINFO
memset(&siop, 0, sizeof(siop));
siop.ses = sess.ses;
@@ -478,7 +474,7 @@ static int register_mac_digest(int cfd)
continue;
}
}
-#endif
+# endif
ioctl(cfd, CIOCFSESSION, &sess.ses);
@@ -496,13 +492,13 @@ static int register_mac_digest(int cfd)
return 0;
}
-#else
+# else
static int register_mac_digest(int cfd)
{
return 0;
}
-#endif /* defined(COP_FLAG_UPDATE) */
+# endif /* defined(COP_FLAG_UPDATE) */
#else /* ENABLE_CRYPTODEV */
int _gnutls_cryptodev_init(void)
diff --git a/lib/accelerated/cryptodev.h b/lib/accelerated/cryptodev.h
index 4824def777..bd3567b5cc 100644
--- a/lib/accelerated/cryptodev.h
+++ b/lib/accelerated/cryptodev.h
@@ -3,7 +3,7 @@
extern int _gnutls_cryptodev_fd;
-#define CHECK_AES_KEYSIZE(s) \
+# define CHECK_AES_KEYSIZE(s) \
if (s != 16 && s != 24 && s != 32) \
return GNUTLS_E_INVALID_REQUEST
@@ -11,4 +11,4 @@ void _gnutls_cryptodev_deinit(void);
int _gnutls_cryptodev_init(void);
int _cryptodev_register_gcm_crypto(int cfd);
-#endif /* GNUTLS_LIB_ACCELERATED_CRYPTODEV_H */
+#endif /* GNUTLS_LIB_ACCELERATED_CRYPTODEV_H */
diff --git a/lib/accelerated/x86/aes-cbc-x86-aesni.c b/lib/accelerated/x86/aes-cbc-x86-aesni.c
index fa9858d1a1..3029701b8d 100644
--- a/lib/accelerated/x86/aes-cbc-x86-aesni.c
+++ b/lib/accelerated/x86/aes-cbc-x86-aesni.c
@@ -55,13 +55,12 @@ aes_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
return GNUTLS_E_MEMORY_ERROR;
}
- ((struct aes_ctx *) (*_ctx))->enc = enc;
+ ((struct aes_ctx *)(*_ctx))->enc = enc;
return 0;
}
-static int
-aes_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
+static int aes_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
{
struct aes_ctx *ctx = _ctx;
int ret;
@@ -132,7 +131,7 @@ aes_decrypt(void *_ctx, const void *src, size_t src_size,
static void aes_deinit(void *_ctx)
{
struct aes_ctx *ctx = _ctx;
-
+
zeroize_temp_key(ctx, sizeof(*ctx));
gnutls_free(ctx);
}
@@ -145,4 +144,3 @@ const gnutls_crypto_cipher_st _gnutls_aesni_x86 = {
.decrypt = aes_decrypt,
.deinit = aes_deinit,
};
-
diff --git a/lib/accelerated/x86/aes-cbc-x86-ssse3.c b/lib/accelerated/x86/aes-cbc-x86-ssse3.c
index 7999fc1320..ff5c128745 100644
--- a/lib/accelerated/x86/aes-cbc-x86-ssse3.c
+++ b/lib/accelerated/x86/aes-cbc-x86-ssse3.c
@@ -55,7 +55,7 @@ aes_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
return GNUTLS_E_MEMORY_ERROR;
}
- ((struct aes_ctx *) (*_ctx))->enc = enc;
+ ((struct aes_ctx *)(*_ctx))->enc = enc;
return 0;
}
@@ -85,7 +85,7 @@ aes_ssse3_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
static int
aes_ssse3_encrypt(void *_ctx, const void *src, size_t src_size,
- void *dst, size_t dst_size)
+ void *dst, size_t dst_size)
{
struct aes_ctx *ctx = _ctx;
@@ -102,7 +102,7 @@ aes_ssse3_encrypt(void *_ctx, const void *src, size_t src_size,
static int
aes_ssse3_decrypt(void *_ctx, const void *src, size_t src_size,
- void *dst, size_t dst_size)
+ void *dst, size_t dst_size)
{
struct aes_ctx *ctx = _ctx;
@@ -132,12 +132,11 @@ static int aes_setiv(void *_ctx, const void *iv, size_t iv_size)
static void aes_deinit(void *_ctx)
{
struct aes_ctx *ctx = _ctx;
-
+
zeroize_temp_key(ctx, sizeof(*ctx));
gnutls_free(ctx);
}
-
const gnutls_crypto_cipher_st _gnutls_aes_ssse3 = {
.init = aes_cipher_init,
.setkey = aes_ssse3_cipher_setkey,
@@ -146,4 +145,3 @@ const gnutls_crypto_cipher_st _gnutls_aes_ssse3 = {
.decrypt = aes_ssse3_decrypt,
.deinit = aes_deinit,
};
-
diff --git a/lib/accelerated/x86/aes-ccm-x86-aesni.c b/lib/accelerated/x86/aes-ccm-x86-aesni.c
index 9ebbdd7b2a..2c0d6733e4 100644
--- a/lib/accelerated/x86/aes-ccm-x86-aesni.c
+++ b/lib/accelerated/x86/aes-ccm-x86-aesni.c
@@ -30,14 +30,14 @@
#ifdef HAVE_LIBNETTLE
-#include <gnutls/crypto.h>
-#include "errors.h"
-#include <aes-x86.h>
-#include <x86-common.h>
-#include <byteswap.h>
-#include <nettle/ccm.h>
-#include <aes-x86.h>
-#include <fips.h>
+# include <gnutls/crypto.h>
+# include "errors.h"
+# include <aes-x86.h>
+# include <x86-common.h>
+# include <byteswap.h>
+# include <nettle/ccm.h>
+# include <aes-x86.h>
+# include <fips.h>
typedef struct ccm_x86_aes_ctx {
AES_KEY key;
@@ -46,16 +46,14 @@ typedef struct ccm_x86_aes_ctx {
/* CCM mode
*/
static void x86_aes_encrypt(const void *_ctx,
- size_t length, uint8_t * dst,
- const uint8_t * src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- AES_KEY *ctx = (void*)_ctx;
+ AES_KEY *ctx = (void *)_ctx;
aesni_ecb_encrypt(src, dst, length, ctx, 1);
}
static int
-aes_ccm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **ctx,
- int enc)
+aes_ccm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **ctx, int enc)
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_CCM &&
@@ -73,22 +71,21 @@ aes_ccm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **ctx,
return 0;
}
-static int
-aes_ccm_cipher_setkey(void *_ctx, const void *key, size_t length)
+static int aes_ccm_cipher_setkey(void *_ctx, const void *key, size_t length)
{
struct ccm_x86_aes_ctx *ctx = _ctx;
- aesni_set_encrypt_key(key, length*8, &ctx->key);
+ aesni_set_encrypt_key(key, length * 8, &ctx->key);
return 0;
}
static int
aes_ccm_aead_encrypt(void *_ctx,
- const void *nonce, size_t nonce_size,
- const void *auth, size_t auth_size,
- size_t tag_size,
- const void *plain, size_t plain_size,
- void *encr, size_t encr_size)
+ const void *nonce, size_t nonce_size,
+ const void *auth, size_t auth_size,
+ size_t tag_size,
+ const void *plain, size_t plain_size,
+ void *encr, size_t encr_size)
{
struct ccm_x86_aes_ctx *ctx = _ctx;
/* proper AEAD cipher */
@@ -100,12 +97,17 @@ aes_ccm_aead_encrypt(void *_ctx,
* and 128.
*/
switch (tag_size) {
- case 4: case 6:
+ case 4:
+ case 6:
/* SP800-38C B.2 says Tlen smaller than 64 should not be used
* under sufficient restriction. We simply allow those for now.
*/
FALLTHROUGH;
- case 8: case 10: case 12: case 14: case 16:
+ case 8:
+ case 10:
+ case 12:
+ case 14:
+ case 16:
break;
default:
if (_gnutls_fips_mode_enabled()) {
@@ -118,19 +120,17 @@ aes_ccm_aead_encrypt(void *_ctx,
ccm_encrypt_message(&ctx->key, x86_aes_encrypt,
nonce_size, nonce,
auth_size, auth,
- tag_size,
- plain_size+tag_size, encr,
- plain);
+ tag_size, plain_size + tag_size, encr, plain);
return 0;
}
static int
aes_ccm_aead_decrypt(void *_ctx,
- const void *nonce, size_t nonce_size,
- const void *auth, size_t auth_size,
- size_t tag_size,
- const void *encr, size_t encr_size,
- void *plain, size_t plain_size)
+ const void *nonce, size_t nonce_size,
+ const void *auth, size_t auth_size,
+ size_t tag_size,
+ const void *encr, size_t encr_size,
+ void *plain, size_t plain_size)
{
struct ccm_x86_aes_ctx *ctx = _ctx;
int ret;
@@ -145,12 +145,17 @@ aes_ccm_aead_decrypt(void *_ctx,
* and 128.
*/
switch (tag_size) {
- case 4: case 6:
+ case 4:
+ case 6:
/* SP800-38C B.2 says Tlen smaller than 64 should not be used
* under sufficient restriction. We simply allow those for now.
*/
FALLTHROUGH;
- case 8: case 10: case 12: case 14: case 16:
+ case 8:
+ case 10:
+ case 12:
+ case 14:
+ case 16:
break;
default:
if (_gnutls_fips_mode_enabled()) {
@@ -163,16 +168,13 @@ aes_ccm_aead_decrypt(void *_ctx,
ret = ccm_decrypt_message(&ctx->key, x86_aes_encrypt,
nonce_size, nonce,
auth_size, auth,
- tag_size,
- encr_size-tag_size, plain,
- encr);
+ tag_size, encr_size - tag_size, plain, encr);
if (unlikely(ret == 0))
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
return 0;
}
-
static void aes_ccm_deinit(void *_ctx)
{
struct ccm_x86_aes_ctx *ctx = _ctx;
diff --git a/lib/accelerated/x86/aes-gcm-aead.h b/lib/accelerated/x86/aes-gcm-aead.h
index a16563e1c5..6f9bdb1d36 100644
--- a/lib/accelerated/x86/aes-gcm-aead.h
+++ b/lib/accelerated/x86/aes-gcm-aead.h
@@ -3,11 +3,11 @@
static int
aes_gcm_aead_encrypt(void *ctx,
- const void *nonce, size_t nonce_size,
- const void *auth, size_t auth_size,
- size_t tag_size,
- const void *plain, size_t plain_size,
- void *encr, size_t encr_size)
+ const void *nonce, size_t nonce_size,
+ const void *auth, size_t auth_size,
+ size_t tag_size,
+ const void *plain, size_t plain_size,
+ void *encr, size_t encr_size)
{
/* proper AEAD cipher */
if (unlikely(encr_size - tag_size < plain_size))
@@ -18,17 +18,17 @@ aes_gcm_aead_encrypt(void *ctx,
aes_gcm_encrypt(ctx, plain, plain_size, encr, encr_size);
- aes_gcm_tag(ctx, ((uint8_t*)encr) + plain_size, tag_size);
+ aes_gcm_tag(ctx, ((uint8_t *) encr) + plain_size, tag_size);
return 0;
}
static int
aes_gcm_aead_decrypt(void *ctx,
- const void *nonce, size_t nonce_size,
- const void *auth, size_t auth_size,
- size_t tag_size,
- const void *encr, size_t encr_size,
- void *plain, size_t plain_size)
+ const void *nonce, size_t nonce_size,
+ const void *auth, size_t auth_size,
+ size_t tag_size,
+ const void *encr, size_t encr_size,
+ void *plain, size_t plain_size)
{
uint8_t tag[MAX_HASH_SIZE];
@@ -46,10 +46,10 @@ aes_gcm_aead_decrypt(void *ctx,
aes_gcm_tag(ctx, tag, tag_size);
- if (gnutls_memcmp(((uint8_t*)encr)+encr_size, tag, tag_size) != 0)
+ if (gnutls_memcmp(((uint8_t *) encr) + encr_size, tag, tag_size) != 0)
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
return 0;
}
-#endif /* GNUTLS_LIB_ACCELERATED_X86_AES_GCM_AEAD_H */
+#endif /* GNUTLS_LIB_ACCELERATED_X86_AES_GCM_AEAD_H */
diff --git a/lib/accelerated/x86/aes-gcm-padlock.c b/lib/accelerated/x86/aes-gcm-padlock.c
index 739883ab1b..a822762592 100644
--- a/lib/accelerated/x86/aes-gcm-padlock.c
+++ b/lib/accelerated/x86/aes-gcm-padlock.c
@@ -29,22 +29,22 @@
#ifdef HAVE_LIBNETTLE
-#include <gnutls/crypto.h>
-#include "errors.h"
-#include <aes-x86.h>
-#include <x86-common.h>
-#include <byteswap.h>
-#include <nettle/gcm.h>
-#include <aes-padlock.h>
+# include <gnutls/crypto.h>
+# include "errors.h"
+# include <aes-x86.h>
+# include <x86-common.h>
+# include <byteswap.h>
+# include <nettle/gcm.h>
+# include <aes-padlock.h>
-#define GCM_BLOCK_SIZE 16
+# define GCM_BLOCK_SIZE 16
/* GCM mode
* Actually padlock doesn't include GCM mode. We just use
* the ECB part of padlock and nettle for everything else.
*/
struct gcm_padlock_aes_ctx {
- struct GCM_CTX(struct padlock_ctx) inner;
+ struct GCM_CTX (struct padlock_ctx) inner;
size_t rekey_counter;
};
@@ -52,7 +52,7 @@ static void padlock_aes_encrypt(const void *_ctx,
size_t length, uint8_t * dst,
const uint8_t * src)
{
- struct padlock_ctx *ctx = (void*)_ctx;
+ struct padlock_ctx *ctx = (void *)_ctx;
struct padlock_cipher_data *pce;
pce = ALIGN16(&ctx->expanded_key);
@@ -62,7 +62,7 @@ static void padlock_aes_encrypt(const void *_ctx,
}
static void padlock_aes128_set_encrypt_key(struct padlock_ctx *_ctx,
- const uint8_t * key)
+ const uint8_t * key)
{
struct padlock_ctx *ctx = _ctx;
ctx->enc = 1;
@@ -71,7 +71,7 @@ static void padlock_aes128_set_encrypt_key(struct padlock_ctx *_ctx,
}
static void padlock_aes256_set_encrypt_key(struct padlock_ctx *_ctx,
- const uint8_t * key)
+ const uint8_t * key)
{
struct padlock_ctx *ctx = _ctx;
ctx->enc = 1;
@@ -88,8 +88,7 @@ static void aes_gcm_deinit(void *_ctx)
}
static int
-aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
- int enc)
+aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
@@ -105,17 +104,16 @@ aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
return 0;
}
-static int
-aes_gcm_cipher_setkey(void *_ctx, const void *key, size_t keysize)
+static int aes_gcm_cipher_setkey(void *_ctx, const void *key, size_t keysize)
{
struct gcm_padlock_aes_ctx *ctx = _ctx;
if (keysize == 16) {
- GCM_SET_KEY(&ctx->inner, padlock_aes128_set_encrypt_key, padlock_aes_encrypt,
- key);
+ GCM_SET_KEY(&ctx->inner, padlock_aes128_set_encrypt_key,
+ padlock_aes_encrypt, key);
} else if (keysize == 32) {
- GCM_SET_KEY(&ctx->inner, padlock_aes256_set_encrypt_key, padlock_aes_encrypt,
- key);
+ GCM_SET_KEY(&ctx->inner, padlock_aes256_set_encrypt_key,
+ padlock_aes_encrypt, key);
} else
return GNUTLS_E_INVALID_REQUEST;
@@ -185,7 +183,7 @@ static void aes_gcm_tag(void *_ctx, void *tag, size_t tagsize)
GCM_DIGEST(&ctx->inner, padlock_aes_encrypt, tagsize, tag);
}
-#include "aes-gcm-aead.h"
+# include "aes-gcm-aead.h"
const gnutls_crypto_cipher_st _gnutls_aes_gcm_padlock = {
.init = aes_gcm_cipher_init,
diff --git a/lib/accelerated/x86/aes-gcm-x86-aesni.c b/lib/accelerated/x86/aes-gcm-x86-aesni.c
index 3be63ddd97..b36a8e452d 100644
--- a/lib/accelerated/x86/aes-gcm-x86-aesni.c
+++ b/lib/accelerated/x86/aes-gcm-x86-aesni.c
@@ -30,57 +30,52 @@
#ifdef HAVE_LIBNETTLE
-#include <gnutls/crypto.h>
-#include "errors.h"
-#include <aes-x86.h>
-#include <x86-common.h>
-#include <byteswap.h>
-#include <nettle/gcm.h>
+# include <gnutls/crypto.h>
+# include "errors.h"
+# include <aes-x86.h>
+# include <x86-common.h>
+# include <byteswap.h>
+# include <nettle/gcm.h>
/* GCM mode
* It is used when the CPU doesn't include the PCLMUL instructions.
*/
struct gcm_x86_aes_ctx {
- struct GCM_CTX(AES_KEY) inner;
+ struct GCM_CTX (AES_KEY) inner;
size_t rekey_counter;
};
static void x86_aes_encrypt(const void *_ctx,
- size_t length, uint8_t * dst,
- const uint8_t * src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- AES_KEY *ctx = (void*)_ctx;
+ AES_KEY *ctx = (void *)_ctx;
aesni_ecb_encrypt(src, dst, length, ctx, 1);
}
-static void x86_aes128_set_encrypt_key(void *_ctx,
- const uint8_t * key)
+static void x86_aes128_set_encrypt_key(void *_ctx, const uint8_t * key)
{
AES_KEY *ctx = _ctx;
- aesni_set_encrypt_key(key, 16*8, ctx);
+ aesni_set_encrypt_key(key, 16 * 8, ctx);
}
-static void x86_aes192_set_encrypt_key(void *_ctx,
- const uint8_t * key)
+static void x86_aes192_set_encrypt_key(void *_ctx, const uint8_t * key)
{
AES_KEY *ctx = _ctx;
- aesni_set_encrypt_key(key, 24*8, ctx);
+ aesni_set_encrypt_key(key, 24 * 8, ctx);
}
-static void x86_aes256_set_encrypt_key(void *_ctx,
- const uint8_t * key)
+static void x86_aes256_set_encrypt_key(void *_ctx, const uint8_t * key)
{
AES_KEY *ctx = _ctx;
- aesni_set_encrypt_key(key, 32*8, ctx);
+ aesni_set_encrypt_key(key, 32 * 8, ctx);
}
static int
-aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
- int enc)
+aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
@@ -97,20 +92,19 @@ aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
return 0;
}
-static int
-aes_gcm_cipher_setkey(void *_ctx, const void *key, size_t length)
+static int aes_gcm_cipher_setkey(void *_ctx, const void *key, size_t length)
{
struct gcm_x86_aes_ctx *ctx = _ctx;
if (length == 16) {
- GCM_SET_KEY(&ctx->inner, x86_aes128_set_encrypt_key, x86_aes_encrypt,
- key);
+ GCM_SET_KEY(&ctx->inner, x86_aes128_set_encrypt_key,
+ x86_aes_encrypt, key);
} else if (length == 24) {
- GCM_SET_KEY(&ctx->inner, x86_aes192_set_encrypt_key, x86_aes_encrypt,
- key);
+ GCM_SET_KEY(&ctx->inner, x86_aes192_set_encrypt_key,
+ x86_aes_encrypt, key);
} else if (length == 32) {
- GCM_SET_KEY(&ctx->inner, x86_aes256_set_encrypt_key, x86_aes_encrypt,
- key);
+ GCM_SET_KEY(&ctx->inner, x86_aes256_set_encrypt_key,
+ x86_aes_encrypt, key);
} else
return GNUTLS_E_INVALID_REQUEST;
@@ -188,7 +182,7 @@ static void aes_gcm_deinit(void *_ctx)
gnutls_free(ctx);
}
-#include "aes-gcm-aead.h"
+# include "aes-gcm-aead.h"
const gnutls_crypto_cipher_st _gnutls_aes_gcm_x86_aesni = {
.init = aes_gcm_cipher_init,
diff --git a/lib/accelerated/x86/aes-gcm-x86-pclmul-avx.c b/lib/accelerated/x86/aes-gcm-x86-pclmul-avx.c
index fbefe432f4..c0e6173ce2 100644
--- a/lib/accelerated/x86/aes-gcm-x86-pclmul-avx.c
+++ b/lib/accelerated/x86/aes-gcm-x86-pclmul-avx.c
@@ -65,7 +65,8 @@ struct aes_gcm_ctx {
};
void gcm_init_avx(u128 Htable[16], const uint64_t Xi[2]);
-void gcm_ghash_avx(uint64_t Xi[2], const u128 Htable[16], const uint8_t *in, size_t len);
+void gcm_ghash_avx(uint64_t Xi[2], const u128 Htable[16], const uint8_t * in,
+ size_t len);
void gcm_gmult_avx(uint64_t Xi[2], const u128 Htable[16]);
static void aes_gcm_deinit(void *_ctx)
@@ -77,8 +78,7 @@ static void aes_gcm_deinit(void *_ctx)
}
static int
-aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
- int enc)
+aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
@@ -154,7 +154,7 @@ gcm_ghash(struct aes_gcm_ctx *ctx, const uint8_t * src, size_t src_size)
if (aligned_size > 0)
gcm_ghash_avx(ctx->gcm.Xi.u, ctx->gcm.Htable, src,
- aligned_size);
+ aligned_size);
if (rest > 0) {
memxor(ctx->gcm.Xi.c, src + aligned_size, rest);
@@ -171,8 +171,7 @@ ctr_encrypt_last(struct aes_gcm_ctx *ctx, const uint8_t * src,
memcpy(tmp, &src[pos], length);
aesni_ctr32_encrypt_blocks(tmp, out, 1,
- ALIGN16(&ctx->expanded_key),
- ctx->gcm.Yi.c);
+ ALIGN16(&ctx->expanded_key), ctx->gcm.Yi.c);
memcpy(&dst[pos], out, length);
@@ -211,7 +210,7 @@ aes_gcm_encrypt(void *_ctx, const void *src, size_t src_size,
_gnutls_write_uint32(counter, ctx->gcm.Yi.c + 12);
}
- if (rest > 0) { /* last incomplete block */
+ if (rest > 0) { /* last incomplete block */
ctr_encrypt_last(ctx, src, dst, exp_blocks, rest);
ctx->finished = 1;
}
@@ -252,7 +251,7 @@ aes_gcm_decrypt(void *_ctx, const void *src, size_t src_size,
_gnutls_write_uint32(counter, ctx->gcm.Yi.c + 12);
}
- if (rest > 0) { /* last incomplete block */
+ if (rest > 0) { /* last incomplete block */
ctr_encrypt_last(ctx, src, dst, exp_blocks, rest);
ctx->finished = 1;
}
@@ -276,7 +275,6 @@ static int aes_gcm_auth(void *_ctx, const void *src, size_t src_size)
return 0;
}
-
static void aes_gcm_tag(void *_ctx, void *tag, size_t tagsize)
{
struct aes_gcm_ctx *ctx = _ctx;
@@ -289,8 +287,7 @@ static void aes_gcm_tag(void *_ctx, void *tag, size_t tagsize)
_gnutls_write_uint64(alen, buffer);
_gnutls_write_uint64(clen, &buffer[8]);
- gcm_ghash_avx(ctx->gcm.Xi.u, ctx->gcm.Htable, buffer,
- GCM_BLOCK_SIZE);
+ gcm_ghash_avx(ctx->gcm.Xi.u, ctx->gcm.Htable, buffer, GCM_BLOCK_SIZE);
ctx->gcm.Xi.u[0] ^= ctx->gcm.EK0.u[0];
ctx->gcm.Xi.u[1] ^= ctx->gcm.EK0.u[1];
@@ -302,11 +299,11 @@ static void aes_gcm_tag(void *_ctx, void *tag, size_t tagsize)
/* requires AVX */
static int
aesni_gcm_aead_encrypt(void *_ctx,
- const void *nonce, size_t nonce_size,
- const void *auth, size_t auth_size,
- size_t tag_size,
- const void *plain, size_t plain_size,
- void *encr, size_t encr_size)
+ const void *nonce, size_t nonce_size,
+ const void *auth, size_t auth_size,
+ size_t tag_size,
+ const void *plain, size_t plain_size,
+ void *encr, size_t encr_size)
{
struct aes_gcm_ctx *ctx = _ctx;
size_t s = 0;
@@ -318,26 +315,28 @@ aesni_gcm_aead_encrypt(void *_ctx,
aes_gcm_auth(ctx, auth, auth_size);
if (plain_size >= 96) {
- s = aesni_gcm_encrypt(plain, encr, plain_size, ALIGN16(&ctx->expanded_key),
- ctx->gcm.Yi.c, ctx->gcm.Xi.u);
+ s = aesni_gcm_encrypt(plain, encr, plain_size,
+ ALIGN16(&ctx->expanded_key),
+ ctx->gcm.Yi.c, ctx->gcm.Xi.u);
ctx->gcm.len.u[1] += s;
}
- if ((plain_size-s) > 0)
- aes_gcm_encrypt(ctx, ((uint8_t*)plain)+s, plain_size-s, ((uint8_t*)encr)+s, encr_size-s);
+ if ((plain_size - s) > 0)
+ aes_gcm_encrypt(ctx, ((uint8_t *) plain) + s, plain_size - s,
+ ((uint8_t *) encr) + s, encr_size - s);
- aes_gcm_tag(ctx, ((uint8_t*)encr) + plain_size, tag_size);
+ aes_gcm_tag(ctx, ((uint8_t *) encr) + plain_size, tag_size);
return 0;
}
static int
aesni_gcm_aead_decrypt(void *_ctx,
- const void *nonce, size_t nonce_size,
- const void *auth, size_t auth_size,
- size_t tag_size,
- const void *encr, size_t encr_size,
- void *plain, size_t plain_size)
+ const void *nonce, size_t nonce_size,
+ const void *auth, size_t auth_size,
+ size_t tag_size,
+ const void *encr, size_t encr_size,
+ void *plain, size_t plain_size)
{
struct aes_gcm_ctx *ctx = _ctx;
uint8_t tag[MAX_HASH_SIZE];
@@ -355,18 +354,20 @@ aesni_gcm_aead_decrypt(void *_ctx,
encr_size -= tag_size;
if (encr_size >= 96) {
- s = aesni_gcm_decrypt(encr, plain, encr_size, ALIGN16(&ctx->expanded_key),
- ctx->gcm.Yi.c, ctx->gcm.Xi.u);
+ s = aesni_gcm_decrypt(encr, plain, encr_size,
+ ALIGN16(&ctx->expanded_key),
+ ctx->gcm.Yi.c, ctx->gcm.Xi.u);
ctx->gcm.len.u[1] += s;
}
- if ((encr_size-s) > 0) {
- aes_gcm_decrypt(ctx, ((uint8_t*)encr)+s, encr_size-s, ((uint8_t*)plain)+s, plain_size-s);
+ if ((encr_size - s) > 0) {
+ aes_gcm_decrypt(ctx, ((uint8_t *) encr) + s, encr_size - s,
+ ((uint8_t *) plain) + s, plain_size - s);
}
aes_gcm_tag(ctx, tag, tag_size);
- if (gnutls_memcmp(((uint8_t*)encr)+encr_size, tag, tag_size) != 0)
+ if (gnutls_memcmp(((uint8_t *) encr) + encr_size, tag, tag_size) != 0)
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
return 0;
diff --git a/lib/accelerated/x86/aes-gcm-x86-pclmul.c b/lib/accelerated/x86/aes-gcm-x86-pclmul.c
index 5385acbb6b..8c8901eb82 100644
--- a/lib/accelerated/x86/aes-gcm-x86-pclmul.c
+++ b/lib/accelerated/x86/aes-gcm-x86-pclmul.c
@@ -77,8 +77,7 @@ static void aes_gcm_deinit(void *_ctx)
}
static int
-aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
- int enc)
+aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
@@ -171,8 +170,7 @@ ctr_encrypt_last(struct aes_gcm_ctx *ctx, const uint8_t * src,
memcpy(tmp, &src[pos], length);
aesni_ctr32_encrypt_blocks(tmp, out, 1,
- ALIGN16(&ctx->expanded_key),
- ctx->gcm.Yi.c);
+ ALIGN16(&ctx->expanded_key), ctx->gcm.Yi.c);
memcpy(&dst[pos], out, length);
@@ -211,7 +209,7 @@ aes_gcm_encrypt(void *_ctx, const void *src, size_t src_size,
_gnutls_write_uint32(counter, ctx->gcm.Yi.c + 12);
}
- if (rest > 0) { /* last incomplete block */
+ if (rest > 0) { /* last incomplete block */
ctr_encrypt_last(ctx, src, dst, exp_blocks, rest);
ctx->finished = 1;
}
@@ -252,7 +250,7 @@ aes_gcm_decrypt(void *_ctx, const void *src, size_t src_size,
_gnutls_write_uint32(counter, ctx->gcm.Yi.c + 12);
}
- if (rest > 0) { /* last incomplete block */
+ if (rest > 0) { /* last incomplete block */
ctr_encrypt_last(ctx, src, dst, exp_blocks, rest);
ctx->finished = 1;
}
@@ -276,7 +274,6 @@ static int aes_gcm_auth(void *_ctx, const void *src, size_t src_size)
return 0;
}
-
static void aes_gcm_tag(void *_ctx, void *tag, size_t tagsize)
{
struct aes_gcm_ctx *ctx = _ctx;
@@ -289,8 +286,7 @@ static void aes_gcm_tag(void *_ctx, void *tag, size_t tagsize)
_gnutls_write_uint64(alen, buffer);
_gnutls_write_uint64(clen, &buffer[8]);
- gcm_ghash_clmul(ctx->gcm.Xi.u, ctx->gcm.Htable, buffer,
- GCM_BLOCK_SIZE);
+ gcm_ghash_clmul(ctx->gcm.Xi.u, ctx->gcm.Htable, buffer, GCM_BLOCK_SIZE);
ctx->gcm.Xi.u[0] ^= ctx->gcm.EK0.u[0];
ctx->gcm.Xi.u[1] ^= ctx->gcm.EK0.u[1];
diff --git a/lib/accelerated/x86/aes-gcm-x86-ssse3.c b/lib/accelerated/x86/aes-gcm-x86-ssse3.c
index f074cb1096..b3aad36c8a 100644
--- a/lib/accelerated/x86/aes-gcm-x86-ssse3.c
+++ b/lib/accelerated/x86/aes-gcm-x86-ssse3.c
@@ -30,66 +30,61 @@
#ifdef HAVE_LIBNETTLE
-#include <gnutls/crypto.h>
-#include "errors.h"
-#include <aes-x86.h>
-#include <x86-common.h>
-#include <byteswap.h>
-#include <nettle/gcm.h>
-#include <assert.h>
+# include <gnutls/crypto.h>
+# include "errors.h"
+# include <aes-x86.h>
+# include <x86-common.h>
+# include <byteswap.h>
+# include <nettle/gcm.h>
+# include <assert.h>
/* GCM mode
* It is used when the CPU doesn't include the PCLMUL instructions.
*/
struct gcm_x86_aes_ctx {
- struct GCM_CTX(AES_KEY) inner;
+ struct GCM_CTX (AES_KEY) inner;
size_t rekey_counter;
};
static void x86_aes_encrypt(const void *_ctx,
- size_t length, uint8_t * dst,
- const uint8_t * src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- AES_KEY *ctx = (void*)_ctx;
+ AES_KEY *ctx = (void *)_ctx;
unsigned i;
- unsigned blocks = (length+15) / 16;
+ unsigned blocks = (length + 15) / 16;
- assert(blocks*16 == length);
+ assert(blocks * 16 == length);
- for (i=0;i<blocks;i++) {
+ for (i = 0; i < blocks; i++) {
vpaes_encrypt(src, dst, ctx);
dst += 16;
src += 16;
}
}
-static void x86_aes_128_set_encrypt_key(void *_ctx,
- const uint8_t * key)
+static void x86_aes_128_set_encrypt_key(void *_ctx, const uint8_t * key)
{
AES_KEY *ctx = _ctx;
- vpaes_set_encrypt_key(key, 16*8, ctx);
+ vpaes_set_encrypt_key(key, 16 * 8, ctx);
}
-static void x86_aes_192_set_encrypt_key(void *_ctx,
- const uint8_t * key)
+static void x86_aes_192_set_encrypt_key(void *_ctx, const uint8_t * key)
{
AES_KEY *ctx = _ctx;
- vpaes_set_encrypt_key(key, 24*8, ctx);
+ vpaes_set_encrypt_key(key, 24 * 8, ctx);
}
-static void x86_aes_256_set_encrypt_key(void *_ctx,
- const uint8_t * key)
+static void x86_aes_256_set_encrypt_key(void *_ctx, const uint8_t * key)
{
AES_KEY *ctx = _ctx;
- vpaes_set_encrypt_key(key, 32*8, ctx);
+ vpaes_set_encrypt_key(key, 32 * 8, ctx);
}
static int
-aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
- int enc)
+aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
{
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_GCM &&
@@ -106,20 +101,19 @@ aes_gcm_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
return 0;
}
-static int
-aes_gcm_cipher_setkey(void *_ctx, const void *key, size_t keysize)
+static int aes_gcm_cipher_setkey(void *_ctx, const void *key, size_t keysize)
{
struct gcm_x86_aes_ctx *ctx = _ctx;
if (keysize == 16) {
- GCM_SET_KEY(&ctx->inner, x86_aes_128_set_encrypt_key, x86_aes_encrypt,
- key);
+ GCM_SET_KEY(&ctx->inner, x86_aes_128_set_encrypt_key,
+ x86_aes_encrypt, key);
} else if (keysize == 24) {
- GCM_SET_KEY(&ctx->inner, x86_aes_192_set_encrypt_key, x86_aes_encrypt,
- key);
+ GCM_SET_KEY(&ctx->inner, x86_aes_192_set_encrypt_key,
+ x86_aes_encrypt, key);
} else if (keysize == 32) {
- GCM_SET_KEY(&ctx->inner, x86_aes_256_set_encrypt_key, x86_aes_encrypt,
- key);
+ GCM_SET_KEY(&ctx->inner, x86_aes_256_set_encrypt_key,
+ x86_aes_encrypt, key);
} else
return GNUTLS_E_INVALID_REQUEST;
@@ -197,7 +191,7 @@ static void aes_gcm_deinit(void *_ctx)
gnutls_free(ctx);
}
-#include "aes-gcm-aead.h"
+# include "aes-gcm-aead.h"
const gnutls_crypto_cipher_st _gnutls_aes_gcm_x86_ssse3 = {
.init = aes_gcm_cipher_init,
diff --git a/lib/accelerated/x86/aes-padlock.c b/lib/accelerated/x86/aes-padlock.c
index 4fa6389a00..6e1e755fa2 100644
--- a/lib/accelerated/x86/aes-padlock.c
+++ b/lib/accelerated/x86/aes-padlock.c
@@ -42,7 +42,7 @@ aes_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
/* we use key size to distinguish */
if (algorithm != GNUTLS_CIPHER_AES_128_CBC
&& algorithm != GNUTLS_CIPHER_AES_256_CBC
- && algorithm != GNUTLS_CIPHER_AES_192_CBC)
+ && algorithm != GNUTLS_CIPHER_AES_192_CBC)
return GNUTLS_E_INVALID_REQUEST;
*_ctx = gnutls_calloc(1, sizeof(struct padlock_ctx));
@@ -51,12 +51,11 @@ aes_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
return GNUTLS_E_MEMORY_ERROR;
}
- ((struct padlock_ctx *) (*_ctx))->enc = enc;
+ ((struct padlock_ctx *)(*_ctx))->enc = enc;
return 0;
}
-int
-padlock_aes_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
+int padlock_aes_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
{
struct padlock_ctx *ctx = _ctx;
struct padlock_cipher_data *pce;
@@ -80,7 +79,7 @@ padlock_aes_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
pce->cword.b.ksize = 1;
pce->cword.b.rounds = 12;
if (ctx->enc)
- aes192_set_encrypt_key(&nc192, userkey);
+ aes192_set_encrypt_key(&nc192, userkey);
else
aes192_set_decrypt_key(&nc192, userkey);
memcpy(pce->ks.rd_key, nc192.keys, sizeof(nc192.keys));
@@ -145,7 +144,6 @@ padlock_aes_cbc_encrypt(void *_ctx, const void *src, size_t src_size,
return ret ? 0 : GNUTLS_E_ENCRYPTION_FAILED;
}
-
static int
padlock_aes_cbc_decrypt(void *_ctx, const void *src, size_t src_size,
void *dst, size_t dst_size)
@@ -168,7 +166,7 @@ padlock_aes_cbc_decrypt(void *_ctx, const void *src, size_t src_size,
static void aes_deinit(void *_ctx)
{
struct padlock_ctx *ctx = _ctx;
-
+
zeroize_temp_key(ctx, sizeof(*ctx));
gnutls_free(ctx);
}
@@ -181,4 +179,3 @@ const gnutls_crypto_cipher_st _gnutls_aes_padlock = {
.decrypt = padlock_aes_cbc_decrypt,
.deinit = aes_deinit,
};
-
diff --git a/lib/accelerated/x86/aes-padlock.h b/lib/accelerated/x86/aes-padlock.h
index 378a90e5c0..a33391ef19 100644
--- a/lib/accelerated/x86/aes-padlock.h
+++ b/lib/accelerated/x86/aes-padlock.h
@@ -1,8 +1,8 @@
#ifndef GNUTLS_LIB_ACCELERATED_X86_AES_PADLOCK_H
-#define GNUTLS_LIB_ACCELERATED_X86_AES_PADLOCK_H
+# define GNUTLS_LIB_ACCELERATED_X86_AES_PADLOCK_H
-#include "gnutls_int.h"
-#include <aes-x86.h>
+# include "gnutls_int.h"
+# include <aes-x86.h>
struct padlock_cipher_data {
unsigned char iv[16]; /* Initialization vector */
@@ -33,8 +33,7 @@ extern const gnutls_crypto_cipher_st _gnutls_aes_gcm_padlock;
extern const gnutls_crypto_mac_st _gnutls_hmac_sha_padlock_oneshot;
extern const gnutls_crypto_digest_st _gnutls_sha_padlock_oneshot;
-int padlock_aes_cipher_setkey(void *_ctx, const void *userkey,
- size_t keysize);
+int padlock_aes_cipher_setkey(void *_ctx, const void *userkey, size_t keysize);
/* asm */
unsigned int padlock_capability(void);
@@ -43,4 +42,4 @@ int padlock_ecb_encrypt(void *out, const void *inp,
struct padlock_cipher_data *ctx, size_t len);
int padlock_cbc_encrypt(void *out, const void *inp,
struct padlock_cipher_data *ctx, size_t len);
-#endif /* GNUTLS_LIB_ACCELERATED_X86_AES_PADLOCK_H */
+#endif /* GNUTLS_LIB_ACCELERATED_X86_AES_PADLOCK_H */
diff --git a/lib/accelerated/x86/aes-x86.h b/lib/accelerated/x86/aes-x86.h
index 349d3d5d9c..b9e6dc5b2a 100644
--- a/lib/accelerated/x86/aes-x86.h
+++ b/lib/accelerated/x86/aes-x86.h
@@ -1,15 +1,15 @@
#ifndef GNUTLS_LIB_ACCELERATED_X86_AES_X86_H
-#define GNUTLS_LIB_ACCELERATED_X86_AES_X86_H
+# define GNUTLS_LIB_ACCELERATED_X86_AES_X86_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
void register_x86_crypto(void);
-#define ALIGN16(x) \
+# define ALIGN16(x) \
((void *)(((ptrdiff_t)(x)+(ptrdiff_t)0x0f)&~((ptrdiff_t)0x0f)))
-#define AES_KEY_ALIGN_SIZE 4
-#define AES_MAXNR 14
+# define AES_KEY_ALIGN_SIZE 4
+# define AES_MAXNR 14
typedef struct {
/* We add few more integers to allow alignment
* on a 16-byte boundary.
@@ -18,14 +18,14 @@ typedef struct {
uint32_t rounds;
} AES_KEY;
-#define CHECK_AES_KEYSIZE(s) \
+# define CHECK_AES_KEYSIZE(s) \
if (s != 16 && s != 24 && s != 32) \
return GNUTLS_E_INVALID_REQUEST
-#include <intprops.h>
-#define AES_GCM_ENCRYPT_MAX_BYTES ((1ULL << 36) - 32)
-static inline int
-record_aes_gcm_encrypt_size(size_t *counter, size_t size) {
+# include <intprops.h>
+# define AES_GCM_ENCRYPT_MAX_BYTES ((1ULL << 36) - 32)
+static inline int record_aes_gcm_encrypt_size(size_t *counter, size_t size)
+{
size_t sum;
if (!INT_ADD_OK(*counter, size, &sum) ||
@@ -51,14 +51,15 @@ int aesni_set_encrypt_key(const unsigned char *userKey, const int bits,
void aesni_ctr32_encrypt_blocks(const unsigned char *in,
unsigned char *out,
size_t blocks,
- const void *key,
- const unsigned char *ivec);
+ const void *key, const unsigned char *ivec);
size_t aesni_gcm_encrypt(const void *inp, void *out, size_t len,
- const AES_KEY *key, const unsigned char iv[16], uint64_t* Xi);
+ const AES_KEY * key, const unsigned char iv[16],
+ uint64_t * Xi);
size_t aesni_gcm_decrypt(const void *inp, void *out, size_t len,
- const AES_KEY *key, const unsigned char iv[16], uint64_t* Xi);
+ const AES_KEY * key, const unsigned char iv[16],
+ uint64_t * Xi);
void aesni_xts_encrypt(const unsigned char *in, unsigned char *out,
size_t len, const AES_KEY * key, const AES_KEY * key2,
@@ -68,12 +69,17 @@ void aesni_xts_decrypt(const unsigned char *in, unsigned char *out,
size_t len, const AES_KEY * key, const AES_KEY * key2,
const unsigned char iv[16]);
-int vpaes_set_encrypt_key(const unsigned char *userKey, int bits, AES_KEY *key);
-int vpaes_set_decrypt_key(const unsigned char *userKey, int bits, AES_KEY *key);
+int vpaes_set_encrypt_key(const unsigned char *userKey, int bits,
+ AES_KEY * key);
+int vpaes_set_decrypt_key(const unsigned char *userKey, int bits,
+ AES_KEY * key);
void vpaes_cbc_encrypt(const unsigned char *in, unsigned char *out,
- size_t length, const AES_KEY *key, unsigned char *ivec, int enc);
-void vpaes_encrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key);
-void vpaes_decrypt(const unsigned char *in, unsigned char *out, const AES_KEY *key);
+ size_t length, const AES_KEY * key, unsigned char *ivec,
+ int enc);
+void vpaes_encrypt(const unsigned char *in, unsigned char *out,
+ const AES_KEY * key);
+void vpaes_decrypt(const unsigned char *in, unsigned char *out,
+ const AES_KEY * key);
extern const gnutls_crypto_cipher_st _gnutls_aes_gcm_pclmul;
extern const gnutls_crypto_cipher_st _gnutls_aes_gcm_pclmul_avx;
@@ -86,4 +92,4 @@ extern const gnutls_crypto_cipher_st _gnutls_aes_ssse3;
extern const gnutls_crypto_cipher_st _gnutls_aesni_x86;
-#endif /* GNUTLS_LIB_ACCELERATED_X86_AES_X86_H */
+#endif /* GNUTLS_LIB_ACCELERATED_X86_AES_X86_H */
diff --git a/lib/accelerated/x86/aes-xts-x86-aesni.c b/lib/accelerated/x86/aes-xts-x86-aesni.c
index d6936a688d..52761068c3 100644
--- a/lib/accelerated/x86/aes-xts-x86-aesni.c
+++ b/lib/accelerated/x86/aes-xts-x86-aesni.c
@@ -42,10 +42,10 @@ struct x86_aes_xts_ctx {
static int
x86_aes_xts_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
- int enc)
+ int enc)
{
if (algorithm != GNUTLS_CIPHER_AES_128_XTS &&
- algorithm != GNUTLS_CIPHER_AES_256_XTS)
+ algorithm != GNUTLS_CIPHER_AES_256_XTS)
return GNUTLS_E_INVALID_REQUEST;
*_ctx = gnutls_calloc(1, sizeof(struct x86_aes_xts_ctx));
@@ -54,7 +54,7 @@ x86_aes_xts_cipher_init(gnutls_cipher_algorithm_t algorithm, void **_ctx,
return GNUTLS_E_MEMORY_ERROR;
}
- ((struct x86_aes_xts_ctx *) (*_ctx))->enc = enc;
+ ((struct x86_aes_xts_ctx *)(*_ctx))->enc = enc;
return 0;
}
@@ -71,7 +71,7 @@ x86_aes_xts_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
/* Check key block according to FIPS-140-2 IG A.9 */
- if (_gnutls_fips_mode_enabled()){
+ if (_gnutls_fips_mode_enabled()) {
if (gnutls_memcmp(key, key + (keysize / 2), keysize / 2) == 0) {
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -94,7 +94,7 @@ x86_aes_xts_cipher_setkey(void *_ctx, const void *userkey, size_t keysize)
ret =
aesni_set_encrypt_key(key + (keysize / 2), keybits,
- ALIGN16(&ctx->tweak_key));
+ ALIGN16(&ctx->tweak_key));
if (ret != 0)
return gnutls_assert_val(GNUTLS_E_ENCRYPTION_FAILED);
@@ -114,7 +114,7 @@ static int x86_aes_xts_setiv(void *_ctx, const void *iv, size_t iv_size)
static int
x86_aes_xts_encrypt(void *_ctx, const void *src, size_t src_size,
- void *dst, size_t dst_size)
+ void *dst, size_t dst_size)
{
struct x86_aes_xts_ctx *ctx = _ctx;
@@ -131,7 +131,7 @@ x86_aes_xts_encrypt(void *_ctx, const void *src, size_t src_size,
static int
x86_aes_xts_decrypt(void *_ctx, const void *src, size_t src_size,
- void *dst, size_t dst_size)
+ void *dst, size_t dst_size)
{
struct x86_aes_xts_ctx *ctx = _ctx;
@@ -162,4 +162,3 @@ const gnutls_crypto_cipher_st _gnutls_aes_xts_x86_aesni = {
.decrypt = x86_aes_xts_decrypt,
.deinit = x86_aes_xts_deinit,
};
-
diff --git a/lib/accelerated/x86/hmac-padlock.c b/lib/accelerated/x86/hmac-padlock.c
index 9cb373fe4a..8913166f34 100644
--- a/lib/accelerated/x86/hmac-padlock.c
+++ b/lib/accelerated/x86/hmac-padlock.c
@@ -37,13 +37,13 @@
#ifdef HAVE_LIBNETTLE
-#define IPAD 0x36
-#define OPAD 0x5c
-#define MAX_SHA_DIGEST_SIZE (512/8)
+# define IPAD 0x36
+# define OPAD 0x5c
+# define MAX_SHA_DIGEST_SIZE (512/8)
-typedef void (*update_func) (void *, size_t, const uint8_t *);
-typedef void (*digest_func) (void *, size_t, uint8_t *);
-typedef void (*set_key_func) (void *, size_t, const uint8_t *);
+typedef void (*update_func)(void *, size_t, const uint8_t *);
+typedef void (*digest_func)(void *, size_t, uint8_t *);
+typedef void (*set_key_func)(void *, size_t, const uint8_t *);
struct padlock_hmac_ctx {
union {
@@ -200,7 +200,6 @@ _hmac_ctx_init(gnutls_mac_algorithm_t algo, struct padlock_hmac_ctx *ctx)
return 0;
}
-
static int wrap_padlock_hmac_init(gnutls_mac_algorithm_t algo, void **_ctx)
{
struct padlock_hmac_ctx *ctx;
@@ -223,12 +222,11 @@ static int wrap_padlock_hmac_init(gnutls_mac_algorithm_t algo, void **_ctx)
return 0;
}
-static void *
-wrap_padlock_hmac_copy(const void *_ctx)
+static void *wrap_padlock_hmac_copy(const void *_ctx)
{
struct padlock_hmac_ctx *new_ctx;
- const struct padlock_hmac_ctx *ctx=_ctx;
- ptrdiff_t off = (uint8_t *)ctx->ctx_ptr - (uint8_t *)(&ctx->ctx);
+ const struct padlock_hmac_ctx *ctx = _ctx;
+ ptrdiff_t off = (uint8_t *) ctx->ctx_ptr - (uint8_t *) (&ctx->ctx);
new_ctx = gnutls_malloc(sizeof(struct padlock_hmac_ctx));
if (new_ctx == NULL) {
@@ -237,13 +235,12 @@ wrap_padlock_hmac_copy(const void *_ctx)
}
memcpy(new_ctx, ctx, sizeof(*new_ctx));
- new_ctx->ctx_ptr = (uint8_t *)&new_ctx->ctx + off;
+ new_ctx->ctx_ptr = (uint8_t *) & new_ctx->ctx + off;
return new_ctx;
}
-static int
-wrap_padlock_hmac_setkey(void *_ctx, const void *key, size_t keylen)
+static int wrap_padlock_hmac_setkey(void *_ctx, const void *key, size_t keylen)
{
struct padlock_hmac_ctx *ctx = _ctx;
diff --git a/lib/accelerated/x86/hmac-x86-ssse3.c b/lib/accelerated/x86/hmac-x86-ssse3.c
index 8a60100905..d743e28bf7 100644
--- a/lib/accelerated/x86/hmac-x86-ssse3.c
+++ b/lib/accelerated/x86/hmac-x86-ssse3.c
@@ -36,9 +36,9 @@
#ifdef HAVE_LIBNETTLE
-typedef void (*update_func) (void *, size_t, const uint8_t *);
-typedef void (*digest_func) (void *, size_t, uint8_t *);
-typedef void (*set_key_func) (void *, size_t, const uint8_t *);
+typedef void (*update_func)(void *, size_t, const uint8_t *);
+typedef void (*digest_func)(void *, size_t, uint8_t *);
+typedef void (*set_key_func)(void *, size_t, const uint8_t *);
struct x86_hmac_ctx {
union {
@@ -59,97 +59,95 @@ struct x86_hmac_ctx {
static void
x86_hmac_sha1_set_key(struct hmac_sha1_ctx *ctx,
- size_t key_length, const uint8_t * key)
+ size_t key_length, const uint8_t * key)
{
HMAC_SET_KEY(ctx, &x86_sha1, key_length, key);
}
static void
x86_hmac_sha1_update(struct hmac_sha1_ctx *ctx,
- size_t length, const uint8_t * data)
+ size_t length, const uint8_t * data)
{
x86_sha1_update(&ctx->state, length, data);
}
static void
-x86_hmac_sha1_digest(struct hmac_sha1_ctx *ctx,
- size_t length, uint8_t * digest)
+x86_hmac_sha1_digest(struct hmac_sha1_ctx *ctx, size_t length, uint8_t * digest)
{
HMAC_DIGEST(ctx, &x86_sha1, length, digest);
}
static void
x86_hmac_sha256_set_key(struct hmac_sha256_ctx *ctx,
- size_t key_length, const uint8_t * key)
+ size_t key_length, const uint8_t * key)
{
HMAC_SET_KEY(ctx, &x86_sha256, key_length, key);
}
static void
x86_hmac_sha256_update(struct hmac_sha256_ctx *ctx,
- size_t length, const uint8_t * data)
+ size_t length, const uint8_t * data)
{
x86_sha256_update(&ctx->state, length, data);
}
static void
x86_hmac_sha256_digest(struct hmac_sha256_ctx *ctx,
- size_t length, uint8_t * digest)
+ size_t length, uint8_t * digest)
{
HMAC_DIGEST(ctx, &x86_sha256, length, digest);
}
static void
x86_hmac_sha224_set_key(struct hmac_sha224_ctx *ctx,
- size_t key_length, const uint8_t * key)
+ size_t key_length, const uint8_t * key)
{
HMAC_SET_KEY(ctx, &x86_sha224, key_length, key);
}
static void
x86_hmac_sha224_digest(struct hmac_sha224_ctx *ctx,
- size_t length, uint8_t * digest)
+ size_t length, uint8_t * digest)
{
HMAC_DIGEST(ctx, &x86_sha224, length, digest);
}
static void
x86_hmac_sha384_set_key(struct hmac_sha384_ctx *ctx,
- size_t key_length, const uint8_t * key)
+ size_t key_length, const uint8_t * key)
{
HMAC_SET_KEY(ctx, &x86_sha384, key_length, key);
}
static void
x86_hmac_sha384_digest(struct hmac_sha384_ctx *ctx,
- size_t length, uint8_t * digest)
+ size_t length, uint8_t * digest)
{
HMAC_DIGEST(ctx, &x86_sha384, length, digest);
}
static void
x86_hmac_sha512_set_key(struct hmac_sha512_ctx *ctx,
- size_t key_length, const uint8_t * key)
+ size_t key_length, const uint8_t * key)
{
HMAC_SET_KEY(ctx, &x86_sha512, key_length, key);
}
static void
x86_hmac_sha512_update(struct hmac_sha512_ctx *ctx,
- size_t length, const uint8_t * data)
+ size_t length, const uint8_t * data)
{
x86_sha512_update(&ctx->state, length, data);
}
static void
x86_hmac_sha512_digest(struct hmac_sha512_ctx *ctx,
- size_t length, uint8_t * digest)
+ size_t length, uint8_t * digest)
{
HMAC_DIGEST(ctx, &x86_sha512, length, digest);
}
-static int
-_hmac_ctx_init(gnutls_mac_algorithm_t algo, struct x86_hmac_ctx *ctx)
+static int _hmac_ctx_init(gnutls_mac_algorithm_t algo, struct x86_hmac_ctx *ctx)
{
switch (algo) {
case GNUTLS_MAC_SHA1:
@@ -195,7 +193,6 @@ _hmac_ctx_init(gnutls_mac_algorithm_t algo, struct x86_hmac_ctx *ctx)
return 0;
}
-
static int wrap_x86_hmac_init(gnutls_mac_algorithm_t algo, void **_ctx)
{
struct x86_hmac_ctx *ctx;
@@ -218,12 +215,11 @@ static int wrap_x86_hmac_init(gnutls_mac_algorithm_t algo, void **_ctx)
return 0;
}
-static void *
-wrap_x86_hmac_copy(const void *_ctx)
+static void *wrap_x86_hmac_copy(const void *_ctx)
{
struct x86_hmac_ctx *new_ctx;
- const struct x86_hmac_ctx *ctx=_ctx;
- ptrdiff_t off = (uint8_t *)ctx->ctx_ptr - (uint8_t *)(&ctx->ctx);
+ const struct x86_hmac_ctx *ctx = _ctx;
+ ptrdiff_t off = (uint8_t *) ctx->ctx_ptr - (uint8_t *) (&ctx->ctx);
new_ctx = gnutls_malloc(sizeof(struct x86_hmac_ctx));
if (new_ctx == NULL) {
@@ -232,13 +228,12 @@ wrap_x86_hmac_copy(const void *_ctx)
}
memcpy(new_ctx, ctx, sizeof(*new_ctx));
- new_ctx->ctx_ptr = (uint8_t *)&new_ctx->ctx + off;
+ new_ctx->ctx_ptr = (uint8_t *) & new_ctx->ctx + off;
return new_ctx;
}
-static int
-wrap_x86_hmac_setkey(void *_ctx, const void *key, size_t keylen)
+static int wrap_x86_hmac_setkey(void *_ctx, const void *key, size_t keylen)
{
struct x86_hmac_ctx *ctx = _ctx;
@@ -247,8 +242,7 @@ wrap_x86_hmac_setkey(void *_ctx, const void *key, size_t keylen)
return GNUTLS_E_SUCCESS;
}
-static int
-wrap_x86_hmac_update(void *_ctx, const void *text, size_t textsize)
+static int wrap_x86_hmac_update(void *_ctx, const void *text, size_t textsize)
{
struct x86_hmac_ctx *ctx = _ctx;
@@ -257,8 +251,7 @@ wrap_x86_hmac_update(void *_ctx, const void *text, size_t textsize)
return GNUTLS_E_SUCCESS;
}
-static int
-wrap_x86_hmac_output(void *src_ctx, void *digest, size_t digestsize)
+static int wrap_x86_hmac_output(void *src_ctx, void *digest, size_t digestsize)
{
struct x86_hmac_ctx *ctx;
ctx = src_ctx;
@@ -282,10 +275,9 @@ static void wrap_x86_hmac_deinit(void *hd)
}
static int wrap_x86_hmac_fast(gnutls_mac_algorithm_t algo,
- const void *nonce, size_t nonce_size,
- const void *key, size_t key_size,
- const void *text, size_t text_size,
- void *digest)
+ const void *nonce, size_t nonce_size,
+ const void *key, size_t key_size,
+ const void *text, size_t text_size, void *digest)
{
struct x86_hmac_ctx ctx;
int ret;
@@ -297,7 +289,7 @@ static int wrap_x86_hmac_fast(gnutls_mac_algorithm_t algo,
ctx.setkey(&ctx, key_size, key);
ctx.update(&ctx, text_size, text);
ctx.digest(&ctx, ctx.length, digest);
-
+
zeroize_temp_key(&ctx, sizeof(ctx));
return 0;
diff --git a/lib/accelerated/x86/sha-padlock.c b/lib/accelerated/x86/sha-padlock.c
index 4c0da36ef3..14f1d85976 100644
--- a/lib/accelerated/x86/sha-padlock.c
+++ b/lib/accelerated/x86/sha-padlock.c
@@ -34,10 +34,10 @@
#ifdef HAVE_LIBNETTLE
-typedef void (*update_func) (void *, size_t, const uint8_t *);
-typedef void (*digest_func) (void *, size_t, uint8_t *);
-typedef void (*set_key_func) (void *, size_t, const uint8_t *);
-typedef void (*init_func) (void *);
+typedef void (*update_func)(void *, size_t, const uint8_t *);
+typedef void (*digest_func)(void *, size_t, uint8_t *);
+typedef void (*set_key_func)(void *, size_t, const uint8_t *);
+typedef void (*init_func)(void *);
struct padlock_hash_ctx {
union {
@@ -70,14 +70,13 @@ static void wrap_padlock_hash_deinit(void *hd)
gnutls_free(hd);
}
-#define MD1_INCR(c) (c->count++)
-#define SHA1_COMPRESS(ctx, data) (padlock_sha1_blocks((void*)(ctx)->state, data, 1))
-#define SHA256_COMPRESS(ctx, data) (padlock_sha256_blocks((void*)(ctx)->state, data, 1))
-#define SHA512_COMPRESS(ctx, data) (padlock_sha512_blocks((void*)(ctx)->state, data, 1))
+# define MD1_INCR(c) (c->count++)
+# define SHA1_COMPRESS(ctx, data) (padlock_sha1_blocks((void*)(ctx)->state, data, 1))
+# define SHA256_COMPRESS(ctx, data) (padlock_sha256_blocks((void*)(ctx)->state, data, 1))
+# define SHA512_COMPRESS(ctx, data) (padlock_sha512_blocks((void*)(ctx)->state, data, 1))
void
-padlock_sha1_update(struct sha1_ctx *ctx,
- size_t length, const uint8_t * data)
+padlock_sha1_update(struct sha1_ctx *ctx, size_t length, const uint8_t * data)
{
MD_UPDATE(ctx, length, data, SHA1_COMPRESS, MD1_INCR(ctx));
}
@@ -96,8 +95,7 @@ padlock_sha512_update(struct sha512_ctx *ctx,
MD_UPDATE(ctx, length, data, SHA512_COMPRESS, MD_INCR(ctx));
}
-static void
-_nettle_write_be32(unsigned length, uint8_t * dst, uint32_t * src)
+static void _nettle_write_be32(unsigned length, uint8_t * dst, uint32_t * src)
{
unsigned i;
unsigned words;
@@ -131,8 +129,7 @@ _nettle_write_be32(unsigned length, uint8_t * dst, uint32_t * src)
}
static void
-padlock_sha1_digest(struct sha1_ctx *ctx,
- size_t length, uint8_t * digest)
+padlock_sha1_digest(struct sha1_ctx *ctx, size_t length, uint8_t * digest)
{
uint64_t bit_count;
@@ -151,8 +148,7 @@ padlock_sha1_digest(struct sha1_ctx *ctx,
}
static void
-padlock_sha256_digest(struct sha256_ctx *ctx,
- size_t length, uint8_t * digest)
+padlock_sha256_digest(struct sha256_ctx *ctx, size_t length, uint8_t * digest)
{
uint64_t bit_count;
@@ -173,8 +169,7 @@ padlock_sha256_digest(struct sha256_ctx *ctx,
}
static void
-padlock_sha512_digest(struct sha512_ctx *ctx,
- size_t length, uint8_t * digest)
+padlock_sha512_digest(struct sha512_ctx *ctx, size_t length, uint8_t * digest)
{
uint64_t high, low;
@@ -214,7 +209,6 @@ padlock_sha512_digest(struct sha512_ctx *ctx,
}
}
-
static int _ctx_init(gnutls_digest_algorithm_t algo,
struct padlock_hash_ctx *ctx)
{
@@ -267,9 +261,7 @@ static int _ctx_init(gnutls_digest_algorithm_t algo,
return 0;
}
-
-static int
-wrap_padlock_hash_init(gnutls_digest_algorithm_t algo, void **_ctx)
+static int wrap_padlock_hash_init(gnutls_digest_algorithm_t algo, void **_ctx)
{
struct padlock_hash_ctx *ctx;
int ret;
@@ -292,12 +284,11 @@ wrap_padlock_hash_init(gnutls_digest_algorithm_t algo, void **_ctx)
return 0;
}
-static void *
-wrap_padlock_hash_copy(const void *_ctx)
+static void *wrap_padlock_hash_copy(const void *_ctx)
{
struct padlock_hash_ctx *new_ctx;
- const struct padlock_hash_ctx *ctx=_ctx;
- ptrdiff_t off = (uint8_t *)ctx->ctx_ptr - (uint8_t *)(&ctx->ctx);
+ const struct padlock_hash_ctx *ctx = _ctx;
+ ptrdiff_t off = (uint8_t *) ctx->ctx_ptr - (uint8_t *) (&ctx->ctx);
new_ctx = gnutls_malloc(sizeof(struct padlock_hash_ctx));
if (new_ctx == NULL) {
@@ -306,7 +297,7 @@ wrap_padlock_hash_copy(const void *_ctx)
}
memcpy(new_ctx, ctx, sizeof(*new_ctx));
- new_ctx->ctx_ptr = (uint8_t *)&new_ctx->ctx + off;
+ new_ctx->ctx_ptr = (uint8_t *) & new_ctx->ctx + off;
return new_ctx;
}
@@ -328,8 +319,7 @@ wrap_padlock_hash_output(void *src_ctx, void *digest, size_t digestsize)
}
int wrap_padlock_hash_fast(gnutls_digest_algorithm_t algo,
- const void *text, size_t text_size,
- void *digest)
+ const void *text, size_t text_size, void *digest)
{
if (text_size == 0 && text == NULL)
text = digest;
@@ -346,9 +336,9 @@ int wrap_padlock_hash_fast(gnutls_digest_algorithm_t algo,
} else if (algo == GNUTLS_DIG_SHA256) {
uint32_t iv[8] = {
0x6a09e667UL, 0xbb67ae85UL, 0x3c6ef372UL,
- 0xa54ff53aUL,
+ 0xa54ff53aUL,
0x510e527fUL, 0x9b05688cUL, 0x1f83d9abUL,
- 0x5be0cd19UL,
+ 0x5be0cd19UL,
};
padlock_sha256_oneshot(iv, text, text_size);
_nettle_write_be32(32, digest, iv);
@@ -369,11 +359,16 @@ int wrap_padlock_hash_fast(gnutls_digest_algorithm_t algo,
return 0;
}
-const struct nettle_hash padlock_sha1 = NN_HASH(sha1, padlock_sha1_update, padlock_sha1_digest, SHA1);
-const struct nettle_hash padlock_sha224 = NN_HASH(sha224, padlock_sha256_update, padlock_sha256_digest, SHA224);
-const struct nettle_hash padlock_sha256 = NN_HASH(sha256, padlock_sha256_update, padlock_sha256_digest, SHA256);
-const struct nettle_hash padlock_sha384 = NN_HASH(sha384, padlock_sha512_update, padlock_sha512_digest, SHA384);
-const struct nettle_hash padlock_sha512 = NN_HASH(sha512, padlock_sha512_update, padlock_sha512_digest, SHA512);
+const struct nettle_hash padlock_sha1 =
+NN_HASH(sha1, padlock_sha1_update, padlock_sha1_digest, SHA1);
+const struct nettle_hash padlock_sha224 =
+NN_HASH(sha224, padlock_sha256_update, padlock_sha256_digest, SHA224);
+const struct nettle_hash padlock_sha256 =
+NN_HASH(sha256, padlock_sha256_update, padlock_sha256_digest, SHA256);
+const struct nettle_hash padlock_sha384 =
+NN_HASH(sha384, padlock_sha512_update, padlock_sha512_digest, SHA384);
+const struct nettle_hash padlock_sha512 =
+NN_HASH(sha512, padlock_sha512_update, padlock_sha512_digest, SHA512);
const gnutls_crypto_digest_st _gnutls_sha_padlock_oneshot = {
.init = NULL,
diff --git a/lib/accelerated/x86/sha-padlock.h b/lib/accelerated/x86/sha-padlock.h
index fda6fba778..fe5b9e4185 100644
--- a/lib/accelerated/x86/sha-padlock.h
+++ b/lib/accelerated/x86/sha-padlock.h
@@ -1,21 +1,17 @@
#ifndef GNUTLS_LIB_ACCELERATED_X86_SHA_PADLOCK_H
-#define GNUTLS_LIB_ACCELERATED_X86_SHA_PADLOCK_H
+# define GNUTLS_LIB_ACCELERATED_X86_SHA_PADLOCK_H
-#include <nettle/sha.h>
+# include <nettle/sha.h>
void padlock_sha1_oneshot(void *ctx, const void *inp, size_t len);
void padlock_sha256_oneshot(void *ctx, const void *inp, size_t len);
-void padlock_sha1_blocks(unsigned int *ctx, const void *inp,
- size_t blocks);
-void padlock_sha256_blocks(unsigned int *ctx, const void *inp,
- size_t blocks);
-void padlock_sha512_blocks(unsigned int *ctx, const void *inp,
- size_t blocks);
+void padlock_sha1_blocks(unsigned int *ctx, const void *inp, size_t blocks);
+void padlock_sha256_blocks(unsigned int *ctx, const void *inp, size_t blocks);
+void padlock_sha512_blocks(unsigned int *ctx, const void *inp, size_t blocks);
int wrap_padlock_hash_fast(gnutls_digest_algorithm_t algo,
- const void *text, size_t text_size,
- void *digest);
+ const void *text, size_t text_size, void *digest);
void padlock_sha1_update(struct sha1_ctx *ctx,
size_t length, const uint8_t * data);
@@ -33,4 +29,4 @@ extern const struct nettle_hash padlock_sha512;
extern const gnutls_crypto_mac_st _gnutls_hmac_sha_padlock;
extern const gnutls_crypto_digest_st _gnutls_sha_padlock;
-#endif /* GNUTLS_LIB_ACCELERATED_X86_SHA_PADLOCK_H */
+#endif /* GNUTLS_LIB_ACCELERATED_X86_SHA_PADLOCK_H */
diff --git a/lib/accelerated/x86/sha-x86-ssse3.c b/lib/accelerated/x86/sha-x86-ssse3.c
index 1d442e97e7..bcfcc4d337 100644
--- a/lib/accelerated/x86/sha-x86-ssse3.c
+++ b/lib/accelerated/x86/sha-x86-ssse3.c
@@ -35,10 +35,10 @@ void sha1_block_data_order(void *c, const void *p, size_t len);
void sha256_block_data_order(void *c, const void *p, size_t len);
void sha512_block_data_order(void *c, const void *p, size_t len);
-typedef void (*update_func) (void *, size_t, const uint8_t *);
-typedef void (*digest_func) (void *, size_t, uint8_t *);
-typedef void (*set_key_func) (void *, size_t, const uint8_t *);
-typedef void (*init_func) (void *);
+typedef void (*update_func)(void *, size_t, const uint8_t *);
+typedef void (*digest_func)(void *, size_t, uint8_t *);
+typedef void (*set_key_func)(void *, size_t, const uint8_t *);
+typedef void (*init_func)(void *);
struct x86_hash_ctx {
union {
@@ -56,8 +56,7 @@ struct x86_hash_ctx {
init_func init;
};
-static int
-wrap_x86_hash_update(void *_ctx, const void *text, size_t textsize)
+static int wrap_x86_hash_update(void *_ctx, const void *text, size_t textsize)
{
struct x86_hash_ctx *ctx = _ctx;
@@ -71,8 +70,7 @@ static void wrap_x86_hash_deinit(void *hd)
gnutls_free(hd);
}
-void x86_sha1_update(struct sha1_ctx *ctx, size_t length,
- const uint8_t * data)
+void x86_sha1_update(struct sha1_ctx *ctx, size_t length, const uint8_t * data)
{
struct {
uint32_t h0, h1, h2, h3, h4;
@@ -110,7 +108,7 @@ void x86_sha1_update(struct sha1_ctx *ctx, size_t length,
sha1_block_data_order(&octx, data, t2);
- for (i=0;i<t2;i++)
+ for (i = 0; i < t2; i++)
ctx->count++;
data += length;
}
@@ -131,7 +129,7 @@ void x86_sha1_update(struct sha1_ctx *ctx, size_t length,
}
void x86_sha256_update(struct sha256_ctx *ctx, size_t length,
- const uint8_t * data)
+ const uint8_t * data)
{
struct {
uint32_t h[8];
@@ -162,8 +160,8 @@ void x86_sha256_update(struct sha256_ctx *ctx, size_t length,
if (length > 0) {
t2 = length / SHA1_DATA_SIZE;
sha256_block_data_order(&octx, data, t2);
-
- for (i=0;i<t2;i++)
+
+ for (i = 0; i < t2; i++)
ctx->count++;
data += length;
}
@@ -179,14 +177,14 @@ void x86_sha256_update(struct sha256_ctx *ctx, size_t length,
}
void x86_sha512_update(struct sha512_ctx *ctx, size_t length,
- const uint8_t * data)
+ const uint8_t * data)
{
struct {
uint64_t h[8];
uint64_t Nl, Nh;
union {
uint64_t d[16];
- uint8_t p[16*8];
+ uint8_t p[16 * 8];
} u;
unsigned int num;
unsigned md_len;
@@ -213,8 +211,8 @@ void x86_sha512_update(struct sha512_ctx *ctx, size_t length,
if (length > 0) {
t2 = length / SHA512_DATA_SIZE;
sha512_block_data_order(&octx, data, t2);
-
- for (i=0;i<t2;i++)
+
+ for (i = 0; i < t2; i++)
MD_INCR(ctx);
data += length;
}
@@ -229,8 +227,7 @@ void x86_sha512_update(struct sha512_ctx *ctx, size_t length,
}
}
-static int _ctx_init(gnutls_digest_algorithm_t algo,
- struct x86_hash_ctx *ctx)
+static int _ctx_init(gnutls_digest_algorithm_t algo, struct x86_hash_ctx *ctx)
{
switch (algo) {
case GNUTLS_DIG_SHA1:
@@ -281,7 +278,6 @@ static int _ctx_init(gnutls_digest_algorithm_t algo,
return 0;
}
-
static int wrap_x86_hash_init(gnutls_digest_algorithm_t algo, void **_ctx)
{
struct x86_hash_ctx *ctx;
@@ -305,12 +301,11 @@ static int wrap_x86_hash_init(gnutls_digest_algorithm_t algo, void **_ctx)
return 0;
}
-static void *
-wrap_x86_hash_copy(const void *_ctx)
+static void *wrap_x86_hash_copy(const void *_ctx)
{
struct x86_hash_ctx *new_ctx;
- const struct x86_hash_ctx *ctx=_ctx;
- ptrdiff_t off = (uint8_t *)ctx->ctx_ptr - (uint8_t *)(&ctx->ctx);
+ const struct x86_hash_ctx *ctx = _ctx;
+ ptrdiff_t off = (uint8_t *) ctx->ctx_ptr - (uint8_t *) (&ctx->ctx);
new_ctx = gnutls_malloc(sizeof(struct x86_hash_ctx));
if (new_ctx == NULL) {
@@ -319,13 +314,12 @@ wrap_x86_hash_copy(const void *_ctx)
}
memcpy(new_ctx, ctx, sizeof(*new_ctx));
- new_ctx->ctx_ptr = (uint8_t *)&new_ctx->ctx + off;
+ new_ctx->ctx_ptr = (uint8_t *) & new_ctx->ctx + off;
return new_ctx;
}
-static int
-wrap_x86_hash_output(void *src_ctx, void *digest, size_t digestsize)
+static int wrap_x86_hash_output(void *src_ctx, void *digest, size_t digestsize)
{
struct x86_hash_ctx *ctx;
ctx = src_ctx;
@@ -339,8 +333,7 @@ wrap_x86_hash_output(void *src_ctx, void *digest, size_t digestsize)
}
static int wrap_x86_hash_fast(gnutls_digest_algorithm_t algo,
- const void *text, size_t text_size,
- void *digest)
+ const void *text, size_t text_size, void *digest)
{
struct x86_hash_ctx ctx;
int ret;
diff --git a/lib/accelerated/x86/sha-x86.h b/lib/accelerated/x86/sha-x86.h
index 6bbbfb8641..f1fcea055b 100644
--- a/lib/accelerated/x86/sha-x86.h
+++ b/lib/accelerated/x86/sha-x86.h
@@ -1,7 +1,7 @@
#ifndef GNUTLS_LIB_ACCELERATED_X86_SHA_X86_H
-#define GNUTLS_LIB_ACCELERATED_X86_SHA_X86_H
+# define GNUTLS_LIB_ACCELERATED_X86_SHA_X86_H
-#include <nettle/sha.h>
+# include <nettle/sha.h>
extern const struct nettle_hash x86_sha1;
extern const struct nettle_hash x86_sha224;
@@ -10,10 +10,12 @@ extern const struct nettle_hash x86_sha384;
extern const struct nettle_hash x86_sha512;
void x86_sha1_update(struct sha1_ctx *ctx, size_t length, const uint8_t * data);
-void x86_sha256_update(struct sha256_ctx *ctx, size_t length, const uint8_t * data);
-void x86_sha512_update(struct sha512_ctx *ctx, size_t length, const uint8_t * data);
+void x86_sha256_update(struct sha256_ctx *ctx, size_t length,
+ const uint8_t * data);
+void x86_sha512_update(struct sha512_ctx *ctx, size_t length,
+ const uint8_t * data);
extern const gnutls_crypto_digest_st _gnutls_sha_x86_ssse3;
extern const gnutls_crypto_mac_st _gnutls_hmac_sha_x86_ssse3;
-#endif /* GNUTLS_LIB_ACCELERATED_X86_SHA_X86_H */
+#endif /* GNUTLS_LIB_ACCELERATED_X86_SHA_X86_H */
diff --git a/lib/accelerated/x86/x86-common.c b/lib/accelerated/x86/x86-common.c
index d1a76c9d90..24744c41cb 100644
--- a/lib/accelerated/x86/x86-common.c
+++ b/lib/accelerated/x86/x86-common.c
@@ -34,7 +34,7 @@
#include <sha-x86.h>
#include <x86-common.h>
#ifdef HAVE_LIBNETTLE
-# include <nettle/aes.h> /* for key generation in 192 and 256 bits */
+# include <nettle/aes.h> /* for key generation in 192 and 256 bits */
# include <sha-padlock.h>
#endif
#include <aes-padlock.h>
@@ -170,7 +170,7 @@ static unsigned check_4th_gen_intel_features(unsigned ecx)
#if defined(_MSC_VER) && !defined(__clang__)
xcr0 = _xgetbv(0);
#else
- __asm__ ("xgetbv" : "=a" (xcr0) : "c" (0) : "%edx");
+ __asm__("xgetbv": "=a"(xcr0): "c"(0):"%edx");
#endif
/* Check if xmm and ymm state are enabled in XCR0. */
return (xcr0 & 6) == 6;
@@ -208,7 +208,7 @@ static void capabilities_to_intel_cpuid(unsigned capabilities)
if (capabilities & INTEL_AVX) {
if ((a[1] & bit_AVX) && (a[1] & bit_MOVBE) &&
check_4th_gen_intel_features(a[1])) {
- GNUTLS_x86_cpuid_s[1] |= bit_AVX|bit_MOVBE;
+ GNUTLS_x86_cpuid_s[1] |= bit_AVX | bit_MOVBE;
} else {
_gnutls_debug_log
("AVX acceleration requested but not available\n");
@@ -234,7 +234,6 @@ static void capabilities_to_intel_cpuid(unsigned capabilities)
}
}
-
static unsigned check_optimized_aes(void)
{
return (GNUTLS_x86_cpuid_s[1] & bit_AES);
@@ -253,7 +252,8 @@ static unsigned check_sha(void)
#ifdef ASM_X86_64
static unsigned check_avx_movbe(void)
{
- return (GNUTLS_x86_cpuid_s[1] & (bit_AVX|bit_MOVBE)) == (bit_AVX|bit_MOVBE);
+ return (GNUTLS_x86_cpuid_s[1] & (bit_AVX | bit_MOVBE)) ==
+ (bit_AVX | bit_MOVBE);
}
static unsigned check_pclmul(void)
@@ -265,7 +265,7 @@ static unsigned check_pclmul(void)
#ifdef ENABLE_PADLOCK
static unsigned capabilities_to_zhaoxin_edx(unsigned capabilities)
{
- unsigned a,b,c,t;
+ unsigned a, b, c, t;
if (capabilities & EMPTY_SET) {
return 0;
@@ -322,8 +322,8 @@ static int check_phe_sha512(unsigned edx)
/* On some of the Zhaoxin CPUs, pclmul has a faster acceleration effect */
static int check_fast_pclmul(void)
{
- unsigned int a,b,c,d;
- unsigned int family,model;
+ unsigned int a, b, c, d;
+ unsigned int family, model;
if (!__get_cpuid(1, &a, &b, &c, &d))
return 0;
@@ -341,8 +341,8 @@ static int check_fast_pclmul(void)
static int check_phe_partial(void)
{
const char text[64] =
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
uint32_t iv[5] = { 0x67452301UL, 0xEFCDAB89UL,
0x98BADCFEUL, 0x10325476UL, 0xC3D2E1F0UL
};
@@ -390,11 +390,11 @@ void register_x86_padlock_crypto(unsigned capabilities)
memset(GNUTLS_x86_cpuid_s, 0, sizeof(GNUTLS_x86_cpuid_s));
- if (capabilities == 0){
- if(!read_cpuid_vals(GNUTLS_x86_cpuid_s))
+ if (capabilities == 0) {
+ if (!read_cpuid_vals(GNUTLS_x86_cpuid_s))
return;
edx = padlock_capability();
- } else{
+ } else {
capabilities_to_intel_cpuid(capabilities);
edx = capabilities_to_zhaoxin_edx(capabilities);
}
@@ -406,17 +406,17 @@ void register_x86_padlock_crypto(unsigned capabilities)
gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_128_GCM, 90,
&_gnutls_aes_gcm_x86_ssse3, 0);
- if (ret < 0) {
- gnutls_assert();
- }
+ if (ret < 0) {
+ gnutls_assert();
+ }
ret =
gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_192_GCM, 90,
&_gnutls_aes_gcm_x86_ssse3, 0);
- if (ret < 0) {
- gnutls_assert();
- }
+ if (ret < 0) {
+ gnutls_assert();
+ }
ret =
gnutls_crypto_single_cipher_register
@@ -455,7 +455,8 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
80,
- &_gnutls_sha_x86_ssse3, 0);
+ &_gnutls_sha_x86_ssse3,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -463,7 +464,8 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA224,
80,
- &_gnutls_sha_x86_ssse3, 0);
+ &_gnutls_sha_x86_ssse3,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -471,57 +473,64 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
80,
- &_gnutls_sha_x86_ssse3, 0);
+ &_gnutls_sha_x86_ssse3,
+ 0);
if (ret < 0) {
gnutls_assert();
}
-
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA1,
- 80,
- &_gnutls_hmac_sha_x86_ssse3, 0);
+ 80,
+ &_gnutls_hmac_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA224,
- 80,
- &_gnutls_hmac_sha_x86_ssse3, 0);
+ 80,
+ &_gnutls_hmac_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA256,
- 80,
- &_gnutls_hmac_sha_x86_ssse3, 0);
+ 80,
+ &_gnutls_hmac_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA384,
80,
- &_gnutls_sha_x86_ssse3, 0);
+ &_gnutls_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA512,
80,
- &_gnutls_sha_x86_ssse3, 0);
+ &_gnutls_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA384,
- 80,
- &_gnutls_hmac_sha_x86_ssse3, 0);
+ 80,
+ &_gnutls_hmac_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA512,
- 80,
- &_gnutls_hmac_sha_x86_ssse3, 0);
+ 80,
+ &_gnutls_hmac_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
}
@@ -597,11 +606,11 @@ void register_x86_padlock_crypto(unsigned capabilities)
gnutls_assert();
}
-#ifdef ASM_X86_64
+# ifdef ASM_X86_64
if (check_pclmul()) {
/* register GCM ciphers */
_gnutls_debug_log
- ("Zhaoxin GCM accelerator was detected\n");
+ ("Zhaoxin GCM accelerator was detected\n");
if (check_avx_movbe() && check_fast_pclmul()) {
_gnutls_debug_log
("Zhaoxin GCM accelerator (AVX) was detected\n");
@@ -630,31 +639,31 @@ void register_x86_padlock_crypto(unsigned capabilities)
}
} else {
ret =
- gnutls_crypto_single_cipher_register
- (GNUTLS_CIPHER_AES_128_GCM, 80,
- &_gnutls_aes_gcm_pclmul, 0);
+ gnutls_crypto_single_cipher_register
+ (GNUTLS_CIPHER_AES_128_GCM, 80,
+ &_gnutls_aes_gcm_pclmul, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
- gnutls_crypto_single_cipher_register
- (GNUTLS_CIPHER_AES_192_GCM, 80,
- &_gnutls_aes_gcm_pclmul, 0);
+ gnutls_crypto_single_cipher_register
+ (GNUTLS_CIPHER_AES_192_GCM, 80,
+ &_gnutls_aes_gcm_pclmul, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
- gnutls_crypto_single_cipher_register
- (GNUTLS_CIPHER_AES_256_GCM, 80,
- &_gnutls_aes_gcm_pclmul, 0);
+ gnutls_crypto_single_cipher_register
+ (GNUTLS_CIPHER_AES_256_GCM, 80,
+ &_gnutls_aes_gcm_pclmul, 0);
if (ret < 0) {
gnutls_assert();
}
}
} else
-#endif
+# endif
{
ret =
gnutls_crypto_single_cipher_register
@@ -683,8 +692,7 @@ void register_x86_padlock_crypto(unsigned capabilities)
}
if (check_padlock(edx)) {
- _gnutls_debug_log
- ("Padlock AES accelerator was detected\n");
+ _gnutls_debug_log("Padlock AES accelerator was detected\n");
ret =
gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_128_CBC, 80, &_gnutls_aes_padlock, 0);
@@ -724,10 +732,10 @@ void register_x86_padlock_crypto(unsigned capabilities)
}
}
- if(!check_optimized_aes() && !check_padlock(edx))
+ if (!check_optimized_aes() && !check_padlock(edx))
_gnutls_priority_update_non_aesni();
-#ifdef HAVE_LIBNETTLE
+# ifdef HAVE_LIBNETTLE
phe = check_phe(edx);
if (phe && check_phe_partial()) {
@@ -738,16 +746,14 @@ void register_x86_padlock_crypto(unsigned capabilities)
("Padlock SHA512 (partial) accelerator was detected\n");
ret =
gnutls_crypto_single_digest_register
- (GNUTLS_DIG_SHA384, 80,
- &_gnutls_sha_padlock, 0);
+ (GNUTLS_DIG_SHA384, 80, &_gnutls_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_digest_register
- (GNUTLS_DIG_SHA512, 80,
- &_gnutls_sha_padlock, 0);
+ (GNUTLS_DIG_SHA512, 80, &_gnutls_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
@@ -772,7 +778,8 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
90,
- &_gnutls_sha_padlock, 0);
+ &_gnutls_sha_padlock,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -780,7 +787,8 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA224,
90,
- &_gnutls_sha_padlock, 0);
+ &_gnutls_sha_padlock,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -788,7 +796,8 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
90,
- &_gnutls_sha_padlock, 0);
+ &_gnutls_sha_padlock,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -796,7 +805,8 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA1,
90,
- &_gnutls_hmac_sha_padlock, 0);
+ &_gnutls_hmac_sha_padlock,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -806,7 +816,8 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA256,
90,
- &_gnutls_hmac_sha_padlock, 0);
+ &_gnutls_hmac_sha_padlock,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -818,7 +829,8 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
90,
- &_gnutls_sha_padlock_oneshot, 0);
+ &_gnutls_sha_padlock_oneshot,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -826,7 +838,8 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
90,
- &_gnutls_sha_padlock_oneshot, 0);
+ &_gnutls_sha_padlock_oneshot,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -834,7 +847,8 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA1,
90,
- &_gnutls_hmac_sha_padlock_oneshot, 0);
+ &_gnutls_hmac_sha_padlock_oneshot,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -842,12 +856,13 @@ void register_x86_padlock_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA256,
90,
- &_gnutls_hmac_sha_padlock_oneshot, 0);
+ &_gnutls_hmac_sha_padlock_oneshot,
+ 0);
if (ret < 0) {
gnutls_assert();
}
}
-#endif
+# endif
return;
}
@@ -868,14 +883,12 @@ static enum x86_cpu_vendor check_x86_cpu_vendor(void)
}
if (memcmp(&b, "Genu", 4) == 0 &&
- memcmp(&d, "ineI", 4) == 0 &&
- memcmp(&c, "ntel", 4) == 0) {
+ memcmp(&d, "ineI", 4) == 0 && memcmp(&c, "ntel", 4) == 0) {
return X86_CPU_VENDOR_INTEL;
}
if (memcmp(&b, "Auth", 4) == 0 &&
- memcmp(&d, "enti", 4) == 0 &&
- memcmp(&c, "cAMD", 4) == 0) {
+ memcmp(&d, "enti", 4) == 0 && memcmp(&c, "cAMD", 4) == 0) {
return X86_CPU_VENDOR_AMD;
}
@@ -905,11 +918,10 @@ void register_x86_intel_crypto(unsigned capabilities)
* OpenSSL does. Should we clear
* bit_AVX512DQ, bit_AVX512PF, bit_AVX512ER,
* and bit_AVX512CD? */
- GNUTLS_x86_cpuid_s[2] &= ~(bit_AVX2|
- bit_AVX512F|
- bit_AVX512IFMA|
- bit_AVX512BW|
- bit_AVX512BW);
+ GNUTLS_x86_cpuid_s[2] &= ~(bit_AVX2 |
+ bit_AVX512F |
+ bit_AVX512IFMA |
+ bit_AVX512BW | bit_AVX512BW);
}
} else {
capabilities_to_intel_cpuid(capabilities);
@@ -929,17 +941,17 @@ void register_x86_intel_crypto(unsigned capabilities)
gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_128_GCM, 90,
&_gnutls_aes_gcm_x86_ssse3, 0);
- if (ret < 0) {
- gnutls_assert();
- }
+ if (ret < 0) {
+ gnutls_assert();
+ }
ret =
gnutls_crypto_single_cipher_register
(GNUTLS_CIPHER_AES_192_GCM, 90,
&_gnutls_aes_gcm_x86_ssse3, 0);
- if (ret < 0) {
- gnutls_assert();
- }
+ if (ret < 0) {
+ gnutls_assert();
+ }
ret =
gnutls_crypto_single_cipher_register
@@ -978,7 +990,8 @@ void register_x86_intel_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
80,
- &_gnutls_sha_x86_ssse3, 0);
+ &_gnutls_sha_x86_ssse3,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -986,7 +999,8 @@ void register_x86_intel_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA224,
80,
- &_gnutls_sha_x86_ssse3, 0);
+ &_gnutls_sha_x86_ssse3,
+ 0);
if (ret < 0) {
gnutls_assert();
}
@@ -994,57 +1008,64 @@ void register_x86_intel_crypto(unsigned capabilities)
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
80,
- &_gnutls_sha_x86_ssse3, 0);
+ &_gnutls_sha_x86_ssse3,
+ 0);
if (ret < 0) {
gnutls_assert();
}
-
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA1,
- 80,
- &_gnutls_hmac_sha_x86_ssse3, 0);
+ 80,
+ &_gnutls_hmac_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA224,
- 80,
- &_gnutls_hmac_sha_x86_ssse3, 0);
+ 80,
+ &_gnutls_hmac_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA256,
- 80,
- &_gnutls_hmac_sha_x86_ssse3, 0);
+ 80,
+ &_gnutls_hmac_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA384,
80,
- &_gnutls_sha_x86_ssse3, 0);
+ &_gnutls_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA512,
80,
- &_gnutls_sha_x86_ssse3, 0);
+ &_gnutls_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA384,
- 80,
- &_gnutls_hmac_sha_x86_ssse3, 0);
+ 80,
+ &_gnutls_hmac_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA512,
- 80,
- &_gnutls_hmac_sha_x86_ssse3, 0);
+ 80,
+ &_gnutls_hmac_sha_x86_ssse3,
+ 0);
if (ret < 0)
gnutls_assert();
}
@@ -1210,7 +1231,6 @@ void register_x86_intel_crypto(unsigned capabilities)
return;
}
-
void register_x86_crypto(void)
{
unsigned capabilities = 0;
@@ -1225,4 +1245,3 @@ void register_x86_crypto(void)
register_x86_padlock_crypto(capabilities);
#endif
}
-
diff --git a/lib/accelerated/x86/x86-common.h b/lib/accelerated/x86/x86-common.h
index d15786f378..8d6d14f4af 100644
--- a/lib/accelerated/x86/x86-common.h
+++ b/lib/accelerated/x86/x86-common.h
@@ -22,20 +22,20 @@
#ifndef GNUTLS_LIB_ACCELERATED_X86_X86_COMMON_H
# define GNUTLS_LIB_ACCELERATED_X86_X86_COMMON_H
-#include <config.h>
+# include <config.h>
-#if defined(ASM_X86)
+# if defined(ASM_X86)
void gnutls_cpuid(unsigned int func, unsigned int *ax, unsigned int *bx,
unsigned int *cx, unsigned int *dx);
-#endif
+# endif
-#define CHECK_AES_KEYSIZE(s) \
+# define CHECK_AES_KEYSIZE(s) \
if (s != 16 && s != 24 && s != 32) \
return GNUTLS_E_INVALID_REQUEST
-#define NN_HASH(name, update_func, digest_func, NAME) { \
+# define NN_HASH(name, update_func, digest_func, NAME) { \
#name, \
sizeof(struct name##_ctx), \
NAME##_DIGEST_SIZE, \
@@ -43,6 +43,6 @@ void gnutls_cpuid(unsigned int func, unsigned int *ax, unsigned int *bx,
(nettle_hash_init_func *) name##_init, \
(nettle_hash_update_func *) update_func, \
(nettle_hash_digest_func *) digest_func \
-}
+}
#endif
diff --git a/lib/alert.c b/lib/alert.c
index fda8cd79f0..f0b9e5da0c 100644
--- a/lib/alert.c
+++ b/lib/alert.c
@@ -173,9 +173,8 @@ gnutls_alert_send(gnutls_session_t session, gnutls_alert_level_t level,
if (ret < 0)
return gnutls_assert_val(ret);
ret = session->internals.alert_read_func(session,
- params->write.level,
- level,
- desc);
+ params->write.level,
+ level, desc);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -183,8 +182,7 @@ gnutls_alert_send(gnutls_session_t session, gnutls_alert_level_t level,
}
ret = _gnutls_send_int(session, GNUTLS_ALERT, -1,
- EPOCH_WRITE_CURRENT, data, 2,
- MBUFFER_FLUSH);
+ EPOCH_WRITE_CURRENT, data, 2, MBUFFER_FLUSH);
return (ret < 0) ? ret : 0;
}
@@ -387,12 +385,13 @@ int gnutls_alert_send_appropriate(gnutls_session_t session, int err)
int level;
if (err != GNUTLS_E_REHANDSHAKE && (!gnutls_error_is_fatal(err) ||
- err == GNUTLS_E_FATAL_ALERT_RECEIVED))
+ err ==
+ GNUTLS_E_FATAL_ALERT_RECEIVED))
return gnutls_assert_val(0);
alert = gnutls_error_to_alert(err, &level);
- return gnutls_alert_send(session, (gnutls_alert_level_t)level, alert);
+ return gnutls_alert_send(session, (gnutls_alert_level_t) level, alert);
}
/**
@@ -410,5 +409,5 @@ int gnutls_alert_send_appropriate(gnutls_session_t session, int err)
**/
gnutls_alert_description_t gnutls_alert_get(gnutls_session_t session)
{
- return (gnutls_alert_description_t)session->internals.last_alert;
+ return (gnutls_alert_description_t) session->internals.last_alert;
}
diff --git a/lib/algorithms.h b/lib/algorithms.h
index 2c33a7210f..727bc5c9f9 100644
--- a/lib/algorithms.h
+++ b/lib/algorithms.h
@@ -22,41 +22,41 @@
*/
#ifndef GNUTLS_LIB_ALGORITHMS_H
-#define GNUTLS_LIB_ALGORITHMS_H
+# define GNUTLS_LIB_ALGORITHMS_H
-#include "auth.h"
+# include "auth.h"
-#ifdef DISABLE_SYSTEM_CONFIG
-# define SYSTEM_CONFIG_OR_CONST const
-#else
-# define SYSTEM_CONFIG_OR_CONST
-#endif
+# ifdef DISABLE_SYSTEM_CONFIG
+# define SYSTEM_CONFIG_OR_CONST const
+# else
+# define SYSTEM_CONFIG_OR_CONST
+# endif
-#define version_to_entry _gnutls_version_to_entry
+# define version_to_entry _gnutls_version_to_entry
-#define GNUTLS_RENEGO_PROTECTION_REQUEST_MAJOR 0x00
-#define GNUTLS_RENEGO_PROTECTION_REQUEST_MINOR 0xFF
+# define GNUTLS_RENEGO_PROTECTION_REQUEST_MAJOR 0x00
+# define GNUTLS_RENEGO_PROTECTION_REQUEST_MINOR 0xFF
-#define GNUTLS_FALLBACK_SCSV_MAJOR 0x56
-#define GNUTLS_FALLBACK_SCSV_MINOR 0x00
+# define GNUTLS_FALLBACK_SCSV_MAJOR 0x56
+# define GNUTLS_FALLBACK_SCSV_MINOR 0x00
-#define IS_GOSTEC(x) (((x)==GNUTLS_PK_GOST_01) || \
+# define IS_GOSTEC(x) (((x)==GNUTLS_PK_GOST_01) || \
((x)==GNUTLS_PK_GOST_12_256)|| \
((x)==GNUTLS_PK_GOST_12_512))
-#define IS_EC(x) (((x)==GNUTLS_PK_ECDSA)|| \
+# define IS_EC(x) (((x)==GNUTLS_PK_ECDSA)|| \
((x)==GNUTLS_PK_ECDH_X25519)||((x)==GNUTLS_PK_EDDSA_ED25519)|| \
((x)==GNUTLS_PK_ECDH_X448)||((x)==GNUTLS_PK_EDDSA_ED448))
-#define SIG_SEM_PRE_TLS12 (1<<1)
-#define SIG_SEM_TLS13 (1<<2)
-#define SIG_SEM_DEFAULT (SIG_SEM_PRE_TLS12|SIG_SEM_TLS13)
+# define SIG_SEM_PRE_TLS12 (1<<1)
+# define SIG_SEM_TLS13 (1<<2)
+# define SIG_SEM_DEFAULT (SIG_SEM_PRE_TLS12|SIG_SEM_TLS13)
-#define TLS_SIGN_AID_UNKNOWN {{255, 255}, 0}
-#define HAVE_UNKNOWN_SIGAID(aid) ((aid)->id[0] == 255 && (aid)->id[1] == 255)
+# define TLS_SIGN_AID_UNKNOWN {{255, 255}, 0}
+# define HAVE_UNKNOWN_SIGAID(aid) ((aid)->id[0] == 255 && (aid)->id[1] == 255)
-#define CS_INVALID_MAJOR 0x00
-#define CS_INVALID_MINOR 0x00
+# define CS_INVALID_MAJOR 0x00
+# define CS_INVALID_MINOR 0x00
/* Functions for version handling. */
const version_entry_st *version_to_entry(gnutls_protocol_t version);
@@ -70,15 +70,17 @@ int _gnutls_version_priority(gnutls_session_t session,
int _gnutls_nversion_is_supported(gnutls_session_t session,
unsigned char major, unsigned char minor);
gnutls_protocol_t _gnutls_version_get(uint8_t major, uint8_t minor);
-unsigned _gnutls_version_is_too_high(gnutls_session_t session, uint8_t major, uint8_t minor);
+unsigned _gnutls_version_is_too_high(gnutls_session_t session, uint8_t major,
+ uint8_t minor);
-int _gnutls_write_supported_versions(gnutls_session_t session, uint8_t *buffer, ssize_t buffer_size);
+int _gnutls_write_supported_versions(gnutls_session_t session, uint8_t * buffer,
+ ssize_t buffer_size);
/* Functions for feature checks */
int
_gnutls_figure_common_ciphersuite(gnutls_session_t session,
- const ciphersuite_list_st *peer_clist,
- const gnutls_cipher_suite_entry_st **ce);
+ const ciphersuite_list_st * peer_clist,
+ const gnutls_cipher_suite_entry_st ** ce);
inline static int
_gnutls_version_has_selectable_prf(const version_entry_st * ver)
@@ -114,8 +116,8 @@ int _gnutls_version_has_explicit_iv(const version_entry_st * ver)
/* Functions for MACs. */
const mac_entry_st *_gnutls_mac_to_entry(gnutls_mac_algorithm_t c);
-#define mac_to_entry(x) _gnutls_mac_to_entry(x)
-#define hash_to_entry(x) mac_to_entry((gnutls_mac_algorithm_t)(x))
+# define mac_to_entry(x) _gnutls_mac_to_entry(x)
+# define hash_to_entry(x) mac_to_entry((gnutls_mac_algorithm_t)(x))
inline static int _gnutls_mac_is_ok(const mac_entry_st * e)
{
@@ -180,17 +182,17 @@ _gnutls_mac_to_dig(gnutls_mac_algorithm_t mac)
if (unlikely(mac >= GNUTLS_MAC_AEAD))
return GNUTLS_DIG_UNKNOWN;
- return (gnutls_digest_algorithm_t)mac;
+ return (gnutls_digest_algorithm_t) mac;
}
-#define MAC_TO_DIG(mac) _gnutls_mac_to_dig(mac)
+# define MAC_TO_DIG(mac) _gnutls_mac_to_dig(mac)
/* Functions for digests. */
-#define _gnutls_x509_digest_to_oid _gnutls_x509_mac_to_oid
-#define _gnutls_digest_get_name _gnutls_mac_get_name
-#define _gnutls_hash_get_algo_len _gnutls_mac_get_algo_len
+# define _gnutls_x509_digest_to_oid _gnutls_x509_mac_to_oid
+# define _gnutls_digest_get_name _gnutls_mac_get_name
+# define _gnutls_hash_get_algo_len _gnutls_mac_get_algo_len
-#define DIG_TO_MAC(dig) (gnutls_mac_algorithm_t)(dig)
+# define DIG_TO_MAC(dig) (gnutls_mac_algorithm_t)(dig)
/* Security against pre-image attacks */
inline static int _gnutls_digest_is_secure(const mac_entry_st * e)
@@ -203,21 +205,21 @@ inline static int _gnutls_digest_is_secure(const mac_entry_st * e)
/* Functions for cipher suites. */
int _gnutls_get_client_ciphersuites(gnutls_session_t session,
- gnutls_buffer_st * cdata, const version_entry_st *minver,
- unsigned add_scsv);
+ gnutls_buffer_st * cdata,
+ const version_entry_st * minver,
+ unsigned add_scsv);
int _gnutls_supported_ciphersuites(gnutls_session_t session,
uint8_t * cipher_suites,
unsigned int max_cipher_suite_size);
const gnutls_cipher_suite_entry_st
- *cipher_suite_get(gnutls_kx_algorithm_t kx_algorithm,
- gnutls_cipher_algorithm_t cipher_algorithm,
- gnutls_mac_algorithm_t mac_algorithm);
+ * cipher_suite_get(gnutls_kx_algorithm_t kx_algorithm,
+ gnutls_cipher_algorithm_t cipher_algorithm,
+ gnutls_mac_algorithm_t mac_algorithm);
const char *_gnutls_cipher_suite_get_name(const uint8_t suite[2]);
-gnutls_kx_algorithm_t _gnutls_cipher_suite_get_kx_algo(const uint8_t
- suite[2]);
+gnutls_kx_algorithm_t _gnutls_cipher_suite_get_kx_algo(const uint8_t suite[2]);
int
_gnutls_cipher_suite_get_id(gnutls_kx_algorithm_t kx_algorithm,
@@ -225,17 +227,18 @@ _gnutls_cipher_suite_get_id(gnutls_kx_algorithm_t kx_algorithm,
gnutls_mac_algorithm_t mac_algorithm,
uint8_t suite[2]);
-const gnutls_cipher_suite_entry_st *ciphersuite_to_entry(const uint8_t suite[2]);
+const gnutls_cipher_suite_entry_st *ciphersuite_to_entry(const uint8_t
+ suite[2]);
/* Functions for ciphers. */
const cipher_entry_st *_gnutls_cipher_to_entry(gnutls_cipher_algorithm_t c);
-#define cipher_to_entry(x) _gnutls_cipher_to_entry(x)
+# define cipher_to_entry(x) _gnutls_cipher_to_entry(x)
const cipher_entry_st *cipher_name_to_entry(const char *name);
inline static cipher_type_t _gnutls_cipher_type(const cipher_entry_st * e)
{
if (unlikely(e == NULL))
- return CIPHER_AEAD; /* doesn't matter */
+ return CIPHER_AEAD; /* doesn't matter */
return e->type;
}
@@ -246,24 +249,21 @@ inline static int _gnutls_cipher_get_block_size(const cipher_entry_st * e)
return e->blocksize;
}
-inline static int
-_gnutls_cipher_get_implicit_iv_size(const cipher_entry_st * e)
+inline static int _gnutls_cipher_get_implicit_iv_size(const cipher_entry_st * e)
{
if (unlikely(e == NULL))
return 0;
return e->implicit_iv;
}
-inline static int
-_gnutls_cipher_get_iv_size(const cipher_entry_st * e)
+inline static int _gnutls_cipher_get_iv_size(const cipher_entry_st * e)
{
if (unlikely(e == NULL))
return 0;
return e->cipher_iv;
}
-inline static int
-_gnutls_cipher_get_explicit_iv_size(const cipher_entry_st * e)
+inline static int _gnutls_cipher_get_explicit_iv_size(const cipher_entry_st * e)
{
if (unlikely(e == NULL))
return 0;
@@ -277,8 +277,7 @@ inline static int _gnutls_cipher_get_key_size(const cipher_entry_st * e)
return e->keysize;
}
-inline static const char *_gnutls_cipher_get_name(const cipher_entry_st *
- e)
+inline static const char *_gnutls_cipher_get_name(const cipher_entry_st * e)
{
if (unlikely(e == NULL))
return NULL;
@@ -289,7 +288,7 @@ inline static int _gnutls_cipher_algo_is_aead(const cipher_entry_st * e)
{
if (unlikely(e == NULL))
return 0;
- return (e->type == CIPHER_AEAD)?1:0;
+ return (e->type == CIPHER_AEAD) ? 1 : 0;
}
inline static int _gnutls_cipher_is_ok(const cipher_entry_st * e)
@@ -329,13 +328,12 @@ _gnutls_kx_supports_pk(gnutls_kx_algorithm_t kx_algorithm,
unsigned
_gnutls_kx_supports_pk_usage(gnutls_kx_algorithm_t kx_algorithm,
- gnutls_pk_algorithm_t pk_algorithm,
- unsigned key_usage);
+ gnutls_pk_algorithm_t pk_algorithm,
+ unsigned key_usage);
enum encipher_type { CIPHER_ENCRYPT = 0, CIPHER_SIGN = 1, CIPHER_IGN };
-enum encipher_type _gnutls_kx_encipher_type(gnutls_kx_algorithm_t
- kx_algorithm);
+enum encipher_type _gnutls_kx_encipher_type(gnutls_kx_algorithm_t kx_algorithm);
/* Functions for sign algorithms. */
@@ -349,15 +347,19 @@ int _gnutls_ecc_curve_mark_disabled(gnutls_ecc_curve_t curve);
int _gnutls_sign_mark_insecure(gnutls_sign_algorithm_t, hash_security_level_t);
int _gnutls_digest_mark_insecure(gnutls_digest_algorithm_t dig);
unsigned _gnutls_digest_is_insecure(gnutls_digest_algorithm_t dig);
-bool _gnutls_digest_is_insecure2(gnutls_digest_algorithm_t dig, unsigned flags);
+bool _gnutls_digest_is_insecure2(gnutls_digest_algorithm_t dig, unsigned flags);
const gnutls_protocol_t *_gnutls_protocol_list(void);
int _gnutls_version_mark_disabled(gnutls_protocol_t version);
gnutls_protocol_t _gnutls_protocol_get_id_if_supported(const char *name);
-int _gnutls_digest_set_secure(gnutls_digest_algorithm_t dig, unsigned int secure);
-int _gnutls_sign_set_secure(gnutls_sign_algorithm_t sign, hash_security_level_t slevel);
-int _gnutls_protocol_set_enabled(gnutls_protocol_t version, unsigned int enabled);
-int _gnutls_ecc_curve_set_enabled(gnutls_ecc_curve_t curve, unsigned int enabled);
+int _gnutls_digest_set_secure(gnutls_digest_algorithm_t dig,
+ unsigned int secure);
+int _gnutls_sign_set_secure(gnutls_sign_algorithm_t sign,
+ hash_security_level_t slevel);
+int _gnutls_protocol_set_enabled(gnutls_protocol_t version,
+ unsigned int enabled);
+int _gnutls_ecc_curve_set_enabled(gnutls_ecc_curve_t curve,
+ unsigned int enabled);
/* these functions are for revertible settings, meaning that algorithms marked
* as disabled/insecure with mark_*_all functions can be re-enabled with
@@ -367,10 +369,10 @@ void _gnutls_version_mark_disabled_all(void);
void _gnutls_sign_mark_insecure_all(hash_security_level_t level);
void _gnutls_digest_mark_insecure_all(void);
-#define GNUTLS_SIGN_FLAG_TLS13_OK 1 /* if it is ok to use under TLS1.3 */
-#define GNUTLS_SIGN_FLAG_CRT_VRFY_REVERSE (1 << 1) /* reverse order of bytes in CrtVrfy signature */
-#define GNUTLS_SIGN_FLAG_INSECURE_REVERTIBLE (1 << 2)
-#define GNUTLS_SIGN_FLAG_ALLOW_INSECURE_REVERTIBLE (1 << 3)
+# define GNUTLS_SIGN_FLAG_TLS13_OK 1 /* if it is ok to use under TLS1.3 */
+# define GNUTLS_SIGN_FLAG_CRT_VRFY_REVERSE (1 << 1) /* reverse order of bytes in CrtVrfy signature */
+# define GNUTLS_SIGN_FLAG_INSECURE_REVERTIBLE (1 << 2)
+# define GNUTLS_SIGN_FLAG_ALLOW_INSECURE_REVERTIBLE (1 << 3)
struct gnutls_sign_entry_st {
const char *name;
const char *oid;
@@ -405,13 +407,16 @@ struct gnutls_sign_entry_st {
typedef struct gnutls_sign_entry_st gnutls_sign_entry_st;
const gnutls_sign_entry_st *_gnutls_sign_to_entry(gnutls_sign_algorithm_t sign);
-const gnutls_sign_entry_st *_gnutls_pk_to_sign_entry(gnutls_pk_algorithm_t pk, gnutls_digest_algorithm_t hash);
+const gnutls_sign_entry_st *_gnutls_pk_to_sign_entry(gnutls_pk_algorithm_t pk,
+ gnutls_digest_algorithm_t
+ hash);
const gnutls_sign_entry_st *_gnutls_oid_to_sign_entry(const char *oid);
/* returns true if that signature can be generated
* from the given private key algorithm. */
inline static unsigned
-sign_supports_priv_pk_algorithm(const gnutls_sign_entry_st *se, gnutls_pk_algorithm_t pk)
+sign_supports_priv_pk_algorithm(const gnutls_sign_entry_st * se,
+ gnutls_pk_algorithm_t pk)
{
if (pk == se->pk || (se->priv_pk && se->priv_pk == pk))
return 1;
@@ -422,31 +427,34 @@ sign_supports_priv_pk_algorithm(const gnutls_sign_entry_st *se, gnutls_pk_algori
/* returns true if that signature can be verified with
* the given public key algorithm. */
inline static unsigned
-sign_supports_cert_pk_algorithm(const gnutls_sign_entry_st *se, gnutls_pk_algorithm_t pk)
+sign_supports_cert_pk_algorithm(const gnutls_sign_entry_st * se,
+ gnutls_pk_algorithm_t pk)
{
- if ((!se->cert_pk && pk == se->pk) || (se->cert_pk && se->cert_pk == pk))
+ if ((!se->cert_pk && pk == se->pk)
+ || (se->cert_pk && se->cert_pk == pk))
return 1;
return 0;
}
-bool _gnutls_sign_is_secure2(const gnutls_sign_entry_st *se, unsigned int flags);
+bool _gnutls_sign_is_secure2(const gnutls_sign_entry_st * se,
+ unsigned int flags);
-gnutls_pk_algorithm_t _gnutls_x509_sign_to_pk(gnutls_sign_algorithm_t
- sign);
+gnutls_pk_algorithm_t _gnutls_x509_sign_to_pk(gnutls_sign_algorithm_t sign);
const char *_gnutls_x509_sign_to_oid(gnutls_pk_algorithm_t,
gnutls_digest_algorithm_t mac);
-const gnutls_sign_entry_st *
-_gnutls_tls_aid_to_sign_entry(uint8_t id0, uint8_t id1, const version_entry_st *ver);
+const gnutls_sign_entry_st *_gnutls_tls_aid_to_sign_entry(uint8_t id0,
+ uint8_t id1,
+ const version_entry_st
+ * ver);
gnutls_sign_algorithm_t
-_gnutls_tls_aid_to_sign(uint8_t id0, uint8_t id1, const version_entry_st *ver);
-const sign_algorithm_st *_gnutls_sign_to_tls_aid(gnutls_sign_algorithm_t
- sign);
+_gnutls_tls_aid_to_sign(uint8_t id0, uint8_t id1, const version_entry_st * ver);
+const sign_algorithm_st *_gnutls_sign_to_tls_aid(gnutls_sign_algorithm_t sign);
-const gnutls_sign_entry_st *
-_gnutls13_sign_get_compatible_with_privkey(gnutls_privkey_t privkey);
+const gnutls_sign_entry_st
+ * _gnutls13_sign_get_compatible_with_privkey(gnutls_privkey_t privkey);
unsigned int _gnutls_pk_bits_to_subgroup_bits(unsigned int pk_bits);
gnutls_digest_algorithm_t _gnutls_pk_bits_to_sha_hash(unsigned int pk_bits);
@@ -470,26 +478,27 @@ typedef struct gnutls_ecc_curve_entry_st {
} gnutls_ecc_curve_entry_st;
const gnutls_ecc_curve_entry_st
- *_gnutls_ecc_curve_get_params(gnutls_ecc_curve_t curve);
+ * _gnutls_ecc_curve_get_params(gnutls_ecc_curve_t curve);
unsigned _gnutls_ecc_curve_is_supported(gnutls_ecc_curve_t);
gnutls_group_t _gnutls_ecc_curve_get_group(gnutls_ecc_curve_t);
const gnutls_group_entry_st *_gnutls_tls_id_to_group(unsigned num);
-const gnutls_group_entry_st * _gnutls_id_to_group(unsigned id);
+const gnutls_group_entry_st *_gnutls_id_to_group(unsigned id);
gnutls_group_t _gnutls_group_get_id(const char *name);
-gnutls_ecc_curve_t _gnutls_ecc_bits_to_curve(gnutls_pk_algorithm_t pk, int bits);
-#define MAX_ECC_CURVE_SIZE 66
+gnutls_ecc_curve_t _gnutls_ecc_bits_to_curve(gnutls_pk_algorithm_t pk,
+ int bits);
+# define MAX_ECC_CURVE_SIZE 66
-gnutls_pk_algorithm_t _gnutls_oid_to_pk_and_curve(const char *oid, gnutls_ecc_curve_t *curve);
+gnutls_pk_algorithm_t _gnutls_oid_to_pk_and_curve(const char *oid,
+ gnutls_ecc_curve_t * curve);
inline static int _curve_is_eddsa(const gnutls_ecc_curve_entry_st * e)
{
if (unlikely(e == NULL))
return 0;
- if (e->pk == GNUTLS_PK_EDDSA_ED25519 ||
- e->pk == GNUTLS_PK_EDDSA_ED448)
+ if (e->pk == GNUTLS_PK_EDDSA_ED25519 || e->pk == GNUTLS_PK_EDDSA_ED448)
return 1;
return 0;
}
@@ -498,8 +507,7 @@ inline static int _curve_is_modern_ecdh(const gnutls_ecc_curve_entry_st * e)
{
if (unlikely(e == NULL))
return 0;
- if (e->pk == GNUTLS_PK_ECDH_X25519 ||
- e->pk == GNUTLS_PK_ECDH_X448)
+ if (e->pk == GNUTLS_PK_ECDH_X25519 || e->pk == GNUTLS_PK_ECDH_X448)
return 1;
return 0;
}
@@ -551,28 +559,27 @@ static inline unsigned _gnutls_kx_is_vko_gost(gnutls_kx_algorithm_t kx)
return 0;
}
-static inline bool
-_sign_is_gost(const gnutls_sign_entry_st *se)
+static inline bool _sign_is_gost(const gnutls_sign_entry_st * se)
{
gnutls_pk_algorithm_t pk = se->pk;
- return (pk == GNUTLS_PK_GOST_01) ||
- (pk == GNUTLS_PK_GOST_12_256) ||
- (pk == GNUTLS_PK_GOST_12_512);
+ return (pk == GNUTLS_PK_GOST_01) ||
+ (pk == GNUTLS_PK_GOST_12_256) || (pk == GNUTLS_PK_GOST_12_512);
}
static inline int _sig_is_ecdsa(gnutls_sign_algorithm_t sig)
{
if (sig == GNUTLS_SIGN_ECDSA_SHA1 || sig == GNUTLS_SIGN_ECDSA_SHA224 ||
- sig == GNUTLS_SIGN_ECDSA_SHA256 || sig == GNUTLS_SIGN_ECDSA_SHA384 ||
- sig == GNUTLS_SIGN_ECDSA_SHA512)
+ sig == GNUTLS_SIGN_ECDSA_SHA256 || sig == GNUTLS_SIGN_ECDSA_SHA384
+ || sig == GNUTLS_SIGN_ECDSA_SHA512)
return 1;
return 0;
}
-bool _gnutls_pk_are_compat(gnutls_pk_algorithm_t pk1, gnutls_pk_algorithm_t pk2);
+bool _gnutls_pk_are_compat(gnutls_pk_algorithm_t pk1,
+ gnutls_pk_algorithm_t pk2);
unsigned _gnutls_sign_get_hash_strength(gnutls_sign_algorithm_t sign);
-#endif /* GNUTLS_LIB_ALGORITHMS_H */
+#endif /* GNUTLS_LIB_ALGORITHMS_H */
diff --git a/lib/algorithms/cert_types.c b/lib/algorithms/cert_types.c
index 4fa43b819f..41c3b903a1 100644
--- a/lib/algorithms/cert_types.c
+++ b/lib/algorithms/cert_types.c
@@ -35,8 +35,7 @@
* Returns: a string that contains the name of the specified
* certificate type, or %NULL in case of unknown types.
**/
-const char *gnutls_certificate_type_get_name(gnutls_certificate_type_t
- type)
+const char *gnutls_certificate_type_get_name(gnutls_certificate_type_t type)
{
const char *ret = NULL;
@@ -61,8 +60,7 @@ gnutls_certificate_type_t gnutls_certificate_type_get_id(const char *name)
{
gnutls_certificate_type_t ret = GNUTLS_CRT_UNKNOWN;
- if (c_strcasecmp(name, "X.509") == 0
- || c_strcasecmp(name, "X509") == 0)
+ if (c_strcasecmp(name, "X.509") == 0 || c_strcasecmp(name, "X509") == 0)
return GNUTLS_CRT_X509;
if (c_strcasecmp(name, "RAWPK") == 0)
return GNUTLS_CRT_RAWPK;
diff --git a/lib/algorithms/ciphers.c b/lib/algorithms/ciphers.c
index ffe936a7a2..3a6b86efcc 100644
--- a/lib/algorithms/ciphers.c
+++ b/lib/algorithms/ciphers.c
@@ -26,7 +26,6 @@
#include <x509/common.h>
#include "c-strcase.h"
-
/* Note that all algorithms are in CBC or STREAM modes.
* Do not add any algorithms in other modes (avoid modified algorithms).
* View first: "The order of encryption and authentication for
@@ -39,319 +38,317 @@
* that specify them (they will be a no-op).
*/
static const cipher_entry_st algorithms[] = {
- { .name = "AES-256-CBC",
- .id = GNUTLS_CIPHER_AES_256_CBC,
- .blocksize = 16,
- .keysize = 32,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "AES-192-CBC",
- .id = GNUTLS_CIPHER_AES_192_CBC,
- .blocksize = 16,
- .keysize = 24,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "AES-128-CBC",
- .id = GNUTLS_CIPHER_AES_128_CBC,
- .blocksize = 16,
- .keysize = 16,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "AES-128-GCM",
- .id = GNUTLS_CIPHER_AES_128_GCM,
- .blocksize = 16,
- .keysize = 16,
- .type = CIPHER_AEAD,
- .implicit_iv = 4,
- .explicit_iv = 8,
- .cipher_iv = 12,
- .tagsize = 16},
- { .name = "AES-192-GCM",
- .id = GNUTLS_CIPHER_AES_192_GCM,
- .blocksize = 16,
- .keysize = 24,
- .type = CIPHER_AEAD,
- .implicit_iv = 4,
- .explicit_iv = 8,
- .cipher_iv = 12,
- .tagsize = 16},
- { .name = "AES-256-GCM",
- .id = GNUTLS_CIPHER_AES_256_GCM,
- .blocksize = 16,
- .keysize = 32,
- .type = CIPHER_AEAD,
- .implicit_iv = 4,
- .explicit_iv = 8,
- .cipher_iv = 12,
- .tagsize = 16},
- { .name = "AES-128-CCM",
- .id = GNUTLS_CIPHER_AES_128_CCM,
- .blocksize = 16,
- .keysize = 16,
- .type = CIPHER_AEAD,
- .implicit_iv = 4,
- .explicit_iv = 8,
- .cipher_iv = 12,
- .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD,
- .tagsize = 16},
- { .name = "AES-256-CCM",
- .id = GNUTLS_CIPHER_AES_256_CCM,
- .blocksize = 16,
- .keysize = 32,
- .type = CIPHER_AEAD,
- .implicit_iv = 4,
- .explicit_iv = 8,
- .cipher_iv = 12,
- .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD,
- .tagsize = 16},
- { .name = "AES-128-CCM-8",
- .id = GNUTLS_CIPHER_AES_128_CCM_8,
- .blocksize = 16,
- .keysize = 16,
- .type = CIPHER_AEAD,
- .implicit_iv = 4,
- .explicit_iv = 8,
- .cipher_iv = 12,
- .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD,
- .tagsize = 8},
- { .name = "AES-256-CCM-8",
- .id = GNUTLS_CIPHER_AES_256_CCM_8,
- .blocksize = 16,
- .keysize = 32,
- .type = CIPHER_AEAD,
- .implicit_iv = 4,
- .explicit_iv = 8,
- .cipher_iv = 12,
- .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD,
- .tagsize = 8},
- { .name = "ARCFOUR-128",
- .id = GNUTLS_CIPHER_ARCFOUR_128,
- .blocksize = 1,
- .keysize = 16,
- .type = CIPHER_STREAM,
+ {.name = "AES-256-CBC",
+ .id = GNUTLS_CIPHER_AES_256_CBC,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "AES-192-CBC",
+ .id = GNUTLS_CIPHER_AES_192_CBC,
+ .blocksize = 16,
+ .keysize = 24,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "AES-128-CBC",
+ .id = GNUTLS_CIPHER_AES_128_CBC,
+ .blocksize = 16,
+ .keysize = 16,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "AES-128-GCM",
+ .id = GNUTLS_CIPHER_AES_128_GCM,
+ .blocksize = 16,
+ .keysize = 16,
+ .type = CIPHER_AEAD,
+ .implicit_iv = 4,
+ .explicit_iv = 8,
+ .cipher_iv = 12,
+ .tagsize = 16},
+ {.name = "AES-192-GCM",
+ .id = GNUTLS_CIPHER_AES_192_GCM,
+ .blocksize = 16,
+ .keysize = 24,
+ .type = CIPHER_AEAD,
+ .implicit_iv = 4,
+ .explicit_iv = 8,
+ .cipher_iv = 12,
+ .tagsize = 16},
+ {.name = "AES-256-GCM",
+ .id = GNUTLS_CIPHER_AES_256_GCM,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_AEAD,
+ .implicit_iv = 4,
+ .explicit_iv = 8,
+ .cipher_iv = 12,
+ .tagsize = 16},
+ {.name = "AES-128-CCM",
+ .id = GNUTLS_CIPHER_AES_128_CCM,
+ .blocksize = 16,
+ .keysize = 16,
+ .type = CIPHER_AEAD,
+ .implicit_iv = 4,
+ .explicit_iv = 8,
+ .cipher_iv = 12,
+ .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD,
+ .tagsize = 16},
+ {.name = "AES-256-CCM",
+ .id = GNUTLS_CIPHER_AES_256_CCM,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_AEAD,
+ .implicit_iv = 4,
+ .explicit_iv = 8,
+ .cipher_iv = 12,
+ .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD,
+ .tagsize = 16},
+ {.name = "AES-128-CCM-8",
+ .id = GNUTLS_CIPHER_AES_128_CCM_8,
+ .blocksize = 16,
+ .keysize = 16,
+ .type = CIPHER_AEAD,
+ .implicit_iv = 4,
+ .explicit_iv = 8,
+ .cipher_iv = 12,
+ .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD,
+ .tagsize = 8},
+ {.name = "AES-256-CCM-8",
+ .id = GNUTLS_CIPHER_AES_256_CCM_8,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_AEAD,
+ .implicit_iv = 4,
+ .explicit_iv = 8,
+ .cipher_iv = 12,
+ .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD,
+ .tagsize = 8},
+ {.name = "ARCFOUR-128",
+ .id = GNUTLS_CIPHER_ARCFOUR_128,
+ .blocksize = 1,
+ .keysize = 16,
+ .type = CIPHER_STREAM,
0, 0, 0, 0},
- { .name = "ESTREAM-SALSA20-256",
- .id = GNUTLS_CIPHER_ESTREAM_SALSA20_256,
- .blocksize = 64,
- .keysize = 32,
+ {.name = "ESTREAM-SALSA20-256",
+ .id = GNUTLS_CIPHER_ESTREAM_SALSA20_256,
+ .blocksize = 64,
+ .keysize = 32,
.type = CIPHER_STREAM, 0, 0, 8, 0},
- { .name = "SALSA20-256",
- .id = GNUTLS_CIPHER_SALSA20_256,
- .blocksize = 64,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .explicit_iv = 0,
- .cipher_iv = 8},
- { .name = "CHACHA20-32",
- .id = GNUTLS_CIPHER_CHACHA20_32,
- .blocksize = 64,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .explicit_iv = 0,
- /* IV includes counter */
- .cipher_iv = 16},
- { .name = "CHACHA20-64",
- .id = GNUTLS_CIPHER_CHACHA20_64,
- .blocksize = 64,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .explicit_iv = 0,
- /* IV includes counter */
- .cipher_iv = 16},
- { .name = "CAMELLIA-256-CBC",
- .id = GNUTLS_CIPHER_CAMELLIA_256_CBC,
- .blocksize = 16,
- .keysize = 32,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "CAMELLIA-192-CBC",
- .id = GNUTLS_CIPHER_CAMELLIA_192_CBC,
- .blocksize = 16,
- .keysize = 24,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "CAMELLIA-128-CBC",
- .id = GNUTLS_CIPHER_CAMELLIA_128_CBC,
- .blocksize = 16,
- .keysize = 16,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "CHACHA20-POLY1305",
- .id = GNUTLS_CIPHER_CHACHA20_POLY1305,
- .blocksize = 64,
- .keysize = 32,
- .type = CIPHER_AEAD,
- .implicit_iv = 12,
- .explicit_iv = 0,
- /* in chacha20 we don't need a rekey after 2^24 messages */
- .flags = GNUTLS_CIPHER_FLAG_XOR_NONCE | GNUTLS_CIPHER_FLAG_NO_REKEY,
- .cipher_iv = 12,
- .tagsize = 16
- },
- { .name = "CAMELLIA-128-GCM",
- .id = GNUTLS_CIPHER_CAMELLIA_128_GCM,
- .blocksize = 16,
- .keysize = 16,
- .type = CIPHER_AEAD, 4, 8, 12, 16},
- { .name = "CAMELLIA-256-GCM",
- .id = GNUTLS_CIPHER_CAMELLIA_256_GCM,
- .blocksize = 16,
- .keysize = 32,
- .type = CIPHER_AEAD,
- .implicit_iv = 4,
- .explicit_iv = 8,
- .cipher_iv = 12,
- .tagsize = 16},
- { .name = "GOST28147-TC26Z-CFB",
- .id = GNUTLS_CIPHER_GOST28147_TC26Z_CFB,
- .blocksize = 8,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .implicit_iv = 8,
- .cipher_iv = 8},
- { .name = "GOST28147-CPA-CFB",
- .id = GNUTLS_CIPHER_GOST28147_CPA_CFB,
- .blocksize = 8,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .implicit_iv = 8,
- .cipher_iv = 8},
- { .name = "GOST28147-CPB-CFB",
- .id = GNUTLS_CIPHER_GOST28147_CPB_CFB,
- .blocksize = 8,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .implicit_iv = 8,
- .cipher_iv = 8},
- { .name = "GOST28147-CPC-CFB",
- .id = GNUTLS_CIPHER_GOST28147_CPC_CFB,
- .blocksize = 8,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .implicit_iv = 8,
- .cipher_iv = 8},
- { .name = "GOST28147-CPD-CFB",
- .id = GNUTLS_CIPHER_GOST28147_CPD_CFB,
- .blocksize = 8,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .implicit_iv = 8,
- .cipher_iv = 8},
+ {.name = "SALSA20-256",
+ .id = GNUTLS_CIPHER_SALSA20_256,
+ .blocksize = 64,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .explicit_iv = 0,
+ .cipher_iv = 8},
+ {.name = "CHACHA20-32",
+ .id = GNUTLS_CIPHER_CHACHA20_32,
+ .blocksize = 64,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .explicit_iv = 0,
+ /* IV includes counter */
+ .cipher_iv = 16},
+ {.name = "CHACHA20-64",
+ .id = GNUTLS_CIPHER_CHACHA20_64,
+ .blocksize = 64,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .explicit_iv = 0,
+ /* IV includes counter */
+ .cipher_iv = 16},
+ {.name = "CAMELLIA-256-CBC",
+ .id = GNUTLS_CIPHER_CAMELLIA_256_CBC,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "CAMELLIA-192-CBC",
+ .id = GNUTLS_CIPHER_CAMELLIA_192_CBC,
+ .blocksize = 16,
+ .keysize = 24,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "CAMELLIA-128-CBC",
+ .id = GNUTLS_CIPHER_CAMELLIA_128_CBC,
+ .blocksize = 16,
+ .keysize = 16,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "CHACHA20-POLY1305",
+ .id = GNUTLS_CIPHER_CHACHA20_POLY1305,
+ .blocksize = 64,
+ .keysize = 32,
+ .type = CIPHER_AEAD,
+ .implicit_iv = 12,
+ .explicit_iv = 0,
+ /* in chacha20 we don't need a rekey after 2^24 messages */
+ .flags = GNUTLS_CIPHER_FLAG_XOR_NONCE | GNUTLS_CIPHER_FLAG_NO_REKEY,
+ .cipher_iv = 12,
+ .tagsize = 16},
+ {.name = "CAMELLIA-128-GCM",
+ .id = GNUTLS_CIPHER_CAMELLIA_128_GCM,
+ .blocksize = 16,
+ .keysize = 16,
+ .type = CIPHER_AEAD, 4, 8, 12, 16},
+ {.name = "CAMELLIA-256-GCM",
+ .id = GNUTLS_CIPHER_CAMELLIA_256_GCM,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_AEAD,
+ .implicit_iv = 4,
+ .explicit_iv = 8,
+ .cipher_iv = 12,
+ .tagsize = 16},
+ {.name = "GOST28147-TC26Z-CFB",
+ .id = GNUTLS_CIPHER_GOST28147_TC26Z_CFB,
+ .blocksize = 8,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .implicit_iv = 8,
+ .cipher_iv = 8},
+ {.name = "GOST28147-CPA-CFB",
+ .id = GNUTLS_CIPHER_GOST28147_CPA_CFB,
+ .blocksize = 8,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .implicit_iv = 8,
+ .cipher_iv = 8},
+ {.name = "GOST28147-CPB-CFB",
+ .id = GNUTLS_CIPHER_GOST28147_CPB_CFB,
+ .blocksize = 8,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .implicit_iv = 8,
+ .cipher_iv = 8},
+ {.name = "GOST28147-CPC-CFB",
+ .id = GNUTLS_CIPHER_GOST28147_CPC_CFB,
+ .blocksize = 8,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .implicit_iv = 8,
+ .cipher_iv = 8},
+ {.name = "GOST28147-CPD-CFB",
+ .id = GNUTLS_CIPHER_GOST28147_CPD_CFB,
+ .blocksize = 8,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .implicit_iv = 8,
+ .cipher_iv = 8},
- { .name = "AES-128-CFB8",
- .id = GNUTLS_CIPHER_AES_128_CFB8,
- .blocksize = 16,
- .keysize = 16,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "AES-192-CFB8",
- .id = GNUTLS_CIPHER_AES_192_CFB8,
- .blocksize = 16,
- .keysize = 24,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "AES-256-CFB8",
- .id = GNUTLS_CIPHER_AES_256_CFB8,
- .blocksize = 16,
- .keysize = 32,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "AES-128-XTS",
- .id = GNUTLS_CIPHER_AES_128_XTS,
- .blocksize = 16,
- .keysize = 32,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "AES-256-XTS",
- .id = GNUTLS_CIPHER_AES_256_XTS,
- .blocksize = 16,
- .keysize = 64,
- .type = CIPHER_BLOCK,
- .explicit_iv = 16,
- .cipher_iv = 16},
- { .name = "AES-128-SIV",
- .id = GNUTLS_CIPHER_AES_128_SIV,
- .blocksize = 16,
- .keysize = 32,
- .type = CIPHER_AEAD,
- .explicit_iv = 16,
- .cipher_iv = 16,
- .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD |
- GNUTLS_CIPHER_FLAG_TAG_PREFIXED,
- .tagsize = 16},
- { .name = "AES-256-SIV",
- .id = GNUTLS_CIPHER_AES_256_SIV,
- .blocksize = 16,
- .keysize = 64,
- .type = CIPHER_AEAD,
- .explicit_iv = 16,
- .cipher_iv = 16,
- .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD |
- GNUTLS_CIPHER_FLAG_TAG_PREFIXED,
- .tagsize = 16},
- { .name = "GOST28147-TC26Z-CNT",
- .id = GNUTLS_CIPHER_GOST28147_TC26Z_CNT,
- .blocksize = 8,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .implicit_iv = 8,
- .cipher_iv = 8},
- { .name = "MAGMA-CTR-ACPKM",
- .id = GNUTLS_CIPHER_MAGMA_CTR_ACPKM,
- .blocksize = 8,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .implicit_iv = 4,
- .cipher_iv = 8},
- { .name = "KUZNYECHIK-CTR-ACPKM",
- .id = GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM,
- .blocksize = 16,
- .keysize = 32,
- .type = CIPHER_STREAM,
- .implicit_iv = 8,
- .cipher_iv = 16},
- { .name = "3DES-CBC",
- .id = GNUTLS_CIPHER_3DES_CBC,
- .blocksize = 8,
- .keysize = 24,
- .type = CIPHER_BLOCK,
- .explicit_iv = 8,
- .cipher_iv = 8},
- { .name = "DES-CBC",
- .id = GNUTLS_CIPHER_DES_CBC,
- .blocksize = 8,
- .keysize = 8,
- .type = CIPHER_BLOCK,
- .explicit_iv = 8,
- .cipher_iv = 8},
- { .name = "ARCFOUR-40",
- .id = GNUTLS_CIPHER_ARCFOUR_40,
- .blocksize = 1,
- .keysize = 5,
- .type = CIPHER_STREAM},
- { .name = "RC2-40",
- .id = GNUTLS_CIPHER_RC2_40_CBC,
- .blocksize = 8,
- .keysize = 5,
- .type = CIPHER_BLOCK,
- .explicit_iv = 8,
- .cipher_iv = 8},
- { .name = "NULL",
- .id = GNUTLS_CIPHER_NULL,
- .blocksize = 1,
- .keysize = 0,
- .type = CIPHER_STREAM
- },
+ {.name = "AES-128-CFB8",
+ .id = GNUTLS_CIPHER_AES_128_CFB8,
+ .blocksize = 16,
+ .keysize = 16,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "AES-192-CFB8",
+ .id = GNUTLS_CIPHER_AES_192_CFB8,
+ .blocksize = 16,
+ .keysize = 24,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "AES-256-CFB8",
+ .id = GNUTLS_CIPHER_AES_256_CFB8,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "AES-128-XTS",
+ .id = GNUTLS_CIPHER_AES_128_XTS,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "AES-256-XTS",
+ .id = GNUTLS_CIPHER_AES_256_XTS,
+ .blocksize = 16,
+ .keysize = 64,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 16,
+ .cipher_iv = 16},
+ {.name = "AES-128-SIV",
+ .id = GNUTLS_CIPHER_AES_128_SIV,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_AEAD,
+ .explicit_iv = 16,
+ .cipher_iv = 16,
+ .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD |
+ GNUTLS_CIPHER_FLAG_TAG_PREFIXED,
+ .tagsize = 16},
+ {.name = "AES-256-SIV",
+ .id = GNUTLS_CIPHER_AES_256_SIV,
+ .blocksize = 16,
+ .keysize = 64,
+ .type = CIPHER_AEAD,
+ .explicit_iv = 16,
+ .cipher_iv = 16,
+ .flags = GNUTLS_CIPHER_FLAG_ONLY_AEAD |
+ GNUTLS_CIPHER_FLAG_TAG_PREFIXED,
+ .tagsize = 16},
+ {.name = "GOST28147-TC26Z-CNT",
+ .id = GNUTLS_CIPHER_GOST28147_TC26Z_CNT,
+ .blocksize = 8,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .implicit_iv = 8,
+ .cipher_iv = 8},
+ {.name = "MAGMA-CTR-ACPKM",
+ .id = GNUTLS_CIPHER_MAGMA_CTR_ACPKM,
+ .blocksize = 8,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .implicit_iv = 4,
+ .cipher_iv = 8},
+ {.name = "KUZNYECHIK-CTR-ACPKM",
+ .id = GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM,
+ .blocksize = 16,
+ .keysize = 32,
+ .type = CIPHER_STREAM,
+ .implicit_iv = 8,
+ .cipher_iv = 16},
+ {.name = "3DES-CBC",
+ .id = GNUTLS_CIPHER_3DES_CBC,
+ .blocksize = 8,
+ .keysize = 24,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 8,
+ .cipher_iv = 8},
+ {.name = "DES-CBC",
+ .id = GNUTLS_CIPHER_DES_CBC,
+ .blocksize = 8,
+ .keysize = 8,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 8,
+ .cipher_iv = 8},
+ {.name = "ARCFOUR-40",
+ .id = GNUTLS_CIPHER_ARCFOUR_40,
+ .blocksize = 1,
+ .keysize = 5,
+ .type = CIPHER_STREAM},
+ {.name = "RC2-40",
+ .id = GNUTLS_CIPHER_RC2_40_CBC,
+ .blocksize = 8,
+ .keysize = 5,
+ .type = CIPHER_BLOCK,
+ .explicit_iv = 8,
+ .cipher_iv = 8},
+ {.name = "NULL",
+ .id = GNUTLS_CIPHER_NULL,
+ .blocksize = 1,
+ .keysize = 0,
+ .type = CIPHER_STREAM},
{0, 0, 0, 0, 0, 0, 0}
};
@@ -366,7 +363,7 @@ static const cipher_entry_st algorithms[] = {
const cipher_entry_st *_gnutls_cipher_to_entry(gnutls_cipher_algorithm_t c)
{
- GNUTLS_CIPHER_LOOP(if (c == p->id) return p);
+ GNUTLS_CIPHER_LOOP(if (c == p->id) return p) ;
return NULL;
}
@@ -376,11 +373,9 @@ const cipher_entry_st *_gnutls_cipher_to_entry(gnutls_cipher_algorithm_t c)
*/
const cipher_entry_st *cipher_name_to_entry(const char *name)
{
- GNUTLS_CIPHER_LOOP(
- if (c_strcasecmp(p->name, name) == 0) {
- return p;
- }
- );
+ GNUTLS_CIPHER_LOOP(if (c_strcasecmp(p->name, name) == 0) {
+ return p;}
+ ) ;
return NULL;
}
@@ -485,13 +480,11 @@ gnutls_cipher_algorithm_t gnutls_cipher_get_id(const char *name)
{
gnutls_cipher_algorithm_t ret = GNUTLS_CIPHER_UNKNOWN;
- GNUTLS_CIPHER_LOOP(
- if (c_strcasecmp(p->name, name) == 0) {
- if (p->id == GNUTLS_CIPHER_NULL || _gnutls_cipher_exists(p->id))
- ret = p->id;
- break;
- }
- );
+ GNUTLS_CIPHER_LOOP(if (c_strcasecmp(p->name, name) == 0) {
+ if (p->id == GNUTLS_CIPHER_NULL
+ || _gnutls_cipher_exists(p->id))
+ ret = p->id; break;}
+ ) ;
return ret;
}
@@ -512,16 +505,15 @@ gnutls_cipher_algorithm_t gnutls_cipher_get_id(const char *name)
**/
const gnutls_cipher_algorithm_t *gnutls_cipher_list(void)
{
- static gnutls_cipher_algorithm_t supported_ciphers[MAX_ALGOS] =
- { 0 };
+ static gnutls_cipher_algorithm_t supported_ciphers[MAX_ALGOS] = { 0 };
if (supported_ciphers[0] == 0) {
int i = 0;
- GNUTLS_CIPHER_LOOP(
- if (p->id == GNUTLS_CIPHER_NULL || _gnutls_cipher_exists(p->id))
- supported_ciphers[i++] = p->id;
- );
+ GNUTLS_CIPHER_LOOP(if
+ (p->id == GNUTLS_CIPHER_NULL
+ || _gnutls_cipher_exists(p->id))
+ supported_ciphers[i++] = p->id;) ;
supported_ciphers[i++] = 0;
}
diff --git a/lib/algorithms/ciphersuites.c b/lib/algorithms/ciphersuites.c
index 3676c09de5..7df945bf83 100644
--- a/lib/algorithms/ciphersuites.c
+++ b/lib/algorithms/ciphersuites.c
@@ -149,17 +149,17 @@
#ifdef ENABLE_SRP
/* SRP (rfc5054)
*/
-#define GNUTLS_SRP_SHA_3DES_EDE_CBC_SHA1 { 0xC0, 0x1A }
-#define GNUTLS_SRP_SHA_RSA_3DES_EDE_CBC_SHA1 { 0xC0, 0x1B }
-#define GNUTLS_SRP_SHA_DSS_3DES_EDE_CBC_SHA1 { 0xC0, 0x1C }
+# define GNUTLS_SRP_SHA_3DES_EDE_CBC_SHA1 { 0xC0, 0x1A }
+# define GNUTLS_SRP_SHA_RSA_3DES_EDE_CBC_SHA1 { 0xC0, 0x1B }
+# define GNUTLS_SRP_SHA_DSS_3DES_EDE_CBC_SHA1 { 0xC0, 0x1C }
-#define GNUTLS_SRP_SHA_AES_128_CBC_SHA1 { 0xC0, 0x1D }
-#define GNUTLS_SRP_SHA_RSA_AES_128_CBC_SHA1 { 0xC0, 0x1E }
-#define GNUTLS_SRP_SHA_DSS_AES_128_CBC_SHA1 { 0xC0, 0x1F }
+# define GNUTLS_SRP_SHA_AES_128_CBC_SHA1 { 0xC0, 0x1D }
+# define GNUTLS_SRP_SHA_RSA_AES_128_CBC_SHA1 { 0xC0, 0x1E }
+# define GNUTLS_SRP_SHA_DSS_AES_128_CBC_SHA1 { 0xC0, 0x1F }
-#define GNUTLS_SRP_SHA_AES_256_CBC_SHA1 { 0xC0, 0x20 }
-#define GNUTLS_SRP_SHA_RSA_AES_256_CBC_SHA1 { 0xC0, 0x21 }
-#define GNUTLS_SRP_SHA_DSS_AES_256_CBC_SHA1 { 0xC0, 0x22 }
+# define GNUTLS_SRP_SHA_AES_256_CBC_SHA1 { 0xC0, 0x20 }
+# define GNUTLS_SRP_SHA_RSA_AES_256_CBC_SHA1 { 0xC0, 0x21 }
+# define GNUTLS_SRP_SHA_DSS_AES_256_CBC_SHA1 { 0xC0, 0x22 }
#endif
/* RSA
@@ -184,12 +184,10 @@
*/
#define GNUTLS_DHE_DSS_3DES_EDE_CBC_SHA1 { 0x00, 0x13 }
-
/* draft-ietf-tls-56-bit-ciphersuites-01:
*/
#define GNUTLS_DHE_DSS_ARCFOUR_128_SHA1 { 0x00, 0x66 }
-
/* rfc3268:
*/
#define GNUTLS_DHE_DSS_AES_256_CBC_SHA1 { 0x00, 0x38 }
@@ -256,7 +254,6 @@
#define GNUTLS_DHE_PSK_AES_128_CCM_8 {0xC0,0xAA}
#define GNUTLS_DHE_PSK_AES_256_CCM_8 {0xC0,0xAB}
-
/* RFC 5487 */
/* GCM-PSK */
#define GNUTLS_PSK_AES_128_GCM_SHA256 { 0x00, 0xA8 }
@@ -281,7 +278,6 @@
#define GNUTLS_RSA_PSK_NULL_SHA256 { 0x00,0xB8 }
#define GNUTLS_RSA_PSK_NULL_SHA384 { 0x00,0xB9 }
-
/* PSK - SHA256 HMAC */
#define GNUTLS_PSK_AES_128_CBC_SHA256 { 0x00, 0xAE }
#define GNUTLS_DHE_PSK_AES_128_CBC_SHA256 { 0x00, 0xB2 }
@@ -325,7 +321,6 @@
#define GNUTLS_ECDHE_ECDSA_AES_256_GCM_SHA384 {0xC0,0x2C}
#define GNUTLS_ECDHE_ECDSA_AES_256_CBC_SHA384 {0xC0,0x24}
-
/* ECC with PSK */
#define GNUTLS_ECDHE_PSK_3DES_EDE_CBC_SHA1 { 0xC0, 0x34 }
#define GNUTLS_ECDHE_PSK_AES_128_CBC_SHA1 { 0xC0, 0x35 }
@@ -338,7 +333,7 @@
/* draft-smyshlyaev-tls12-gost-suites */
#ifdef ENABLE_GOST
-#define GNUTLS_GOSTR341112_256_28147_CNT_IMIT { 0xc1, 0x02 }
+# define GNUTLS_GOSTR341112_256_28147_CNT_IMIT { 0xc1, 0x02 }
#endif
#define CIPHER_SUITES_COUNT (sizeof(cs_algorithms)/sizeof(gnutls_cipher_suite_entry_st)-1)
@@ -358,7 +353,8 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_TLS1_3,
GNUTLS_MAC_SHA384),
- ENTRY_TLS13(GNUTLS_CHACHA20_POLY1305_SHA256, "TLS_CHACHA20_POLY1305_SHA256",
+ ENTRY_TLS13(GNUTLS_CHACHA20_POLY1305_SHA256,
+ "TLS_CHACHA20_POLY1305_SHA256",
GNUTLS_CIPHER_CHACHA20_POLY1305,
GNUTLS_TLS1_3,
GNUTLS_MAC_SHA256),
@@ -409,19 +405,23 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_RSA_CAMELLIA_128_CBC_SHA256, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256",
+ ENTRY(GNUTLS_RSA_CAMELLIA_128_CBC_SHA256,
+ "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_CBC, GNUTLS_KX_RSA,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_RSA_CAMELLIA_256_CBC_SHA256, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256",
+ ENTRY(GNUTLS_RSA_CAMELLIA_256_CBC_SHA256,
+ "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_256_CBC, GNUTLS_KX_RSA,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_RSA_CAMELLIA_128_CBC_SHA1, "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA",
+ ENTRY(GNUTLS_RSA_CAMELLIA_128_CBC_SHA1,
+ "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA",
GNUTLS_CIPHER_CAMELLIA_128_CBC, GNUTLS_KX_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_RSA_CAMELLIA_256_CBC_SHA1, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA",
+ ENTRY(GNUTLS_RSA_CAMELLIA_256_CBC_SHA1,
+ "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA",
GNUTLS_CIPHER_CAMELLIA_256_CBC, GNUTLS_KX_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
@@ -434,21 +434,23 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
-
/* GCM */
ENTRY(GNUTLS_RSA_AES_128_GCM_SHA256, "TLS_RSA_WITH_AES_128_GCM_SHA256",
GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_RSA_AES_256_GCM_SHA384, "TLS_RSA_WITH_AES_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_RSA_AES_256_GCM_SHA384,
+ "TLS_RSA_WITH_AES_256_GCM_SHA384",
GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_RSA_CAMELLIA_128_GCM_SHA256, "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256",
+ ENTRY(GNUTLS_RSA_CAMELLIA_128_GCM_SHA256,
+ "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_GCM, GNUTLS_KX_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_RSA_CAMELLIA_256_GCM_SHA384, "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_RSA_CAMELLIA_256_GCM_SHA384,
+ "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_GCM, GNUTLS_KX_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
@@ -463,7 +465,6 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
-
/* CCM_8 */
ENTRY(GNUTLS_RSA_AES_128_CCM_8, "TLS_RSA_WITH_AES_128_CCM_8",
GNUTLS_CIPHER_AES_128_CCM_8, GNUTLS_KX_RSA,
@@ -474,132 +475,158 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
-
/* DHE_DSS */
#ifdef ENABLE_DHE
ENTRY(GNUTLS_DHE_DSS_ARCFOUR_128_SHA1, "TLS_DHE_DSS_RC4_128_SHA",
GNUTLS_CIPHER_ARCFOUR_128, GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_VERSION_UNKNOWN),
- ENTRY(GNUTLS_DHE_DSS_3DES_EDE_CBC_SHA1, "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_DHE_DSS_3DES_EDE_CBC_SHA1,
+ "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_DSS_AES_128_CBC_SHA1, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_DHE_DSS_AES_128_CBC_SHA1,
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_DSS_AES_256_CBC_SHA1, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_DHE_DSS_AES_256_CBC_SHA1,
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_DSS_CAMELLIA_128_CBC_SHA256, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256",
+ ENTRY(GNUTLS_DHE_DSS_CAMELLIA_128_CBC_SHA256,
+ "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_CBC,
GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DHE_DSS_CAMELLIA_256_CBC_SHA256, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256",
+ ENTRY(GNUTLS_DHE_DSS_CAMELLIA_256_CBC_SHA256,
+ "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_256_CBC,
GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DHE_DSS_CAMELLIA_128_CBC_SHA1, "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA",
+ ENTRY(GNUTLS_DHE_DSS_CAMELLIA_128_CBC_SHA1,
+ "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA",
GNUTLS_CIPHER_CAMELLIA_128_CBC,
GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_DSS_CAMELLIA_256_CBC_SHA1, "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA",
+ ENTRY(GNUTLS_DHE_DSS_CAMELLIA_256_CBC_SHA1,
+ "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA",
GNUTLS_CIPHER_CAMELLIA_256_CBC,
GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_DSS_AES_128_CBC_SHA256, "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256",
+ ENTRY(GNUTLS_DHE_DSS_AES_128_CBC_SHA256,
+ "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DHE_DSS_AES_256_CBC_SHA256, "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256",
+ ENTRY(GNUTLS_DHE_DSS_AES_256_CBC_SHA256,
+ "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
/* GCM */
- ENTRY(GNUTLS_DHE_DSS_AES_128_GCM_SHA256, "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256",
+ ENTRY(GNUTLS_DHE_DSS_AES_128_GCM_SHA256,
+ "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256",
GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_DHE_DSS_AES_256_GCM_SHA384, "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_DHE_DSS_AES_256_GCM_SHA384,
+ "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384",
GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_DHE_DSS_CAMELLIA_128_GCM_SHA256, "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256",
+ ENTRY(GNUTLS_DHE_DSS_CAMELLIA_128_GCM_SHA256,
+ "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_GCM, GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_DHE_DSS_CAMELLIA_256_GCM_SHA384, "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_DHE_DSS_CAMELLIA_256_GCM_SHA384,
+ "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_GCM, GNUTLS_KX_DHE_DSS,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
/* DHE_RSA */
- ENTRY(GNUTLS_DHE_RSA_3DES_EDE_CBC_SHA1, "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_DHE_RSA_3DES_EDE_CBC_SHA1,
+ "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_RSA_AES_128_CBC_SHA1, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_DHE_RSA_AES_128_CBC_SHA1,
+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_RSA_AES_256_CBC_SHA1, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_DHE_RSA_AES_256_CBC_SHA1,
+ "TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_RSA_CAMELLIA_128_CBC_SHA256, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256",
+ ENTRY(GNUTLS_DHE_RSA_CAMELLIA_128_CBC_SHA256,
+ "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_CBC,
GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DHE_RSA_CAMELLIA_256_CBC_SHA256, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256",
+ ENTRY(GNUTLS_DHE_RSA_CAMELLIA_256_CBC_SHA256,
+ "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_256_CBC,
GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DHE_RSA_CAMELLIA_128_CBC_SHA1, "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA",
+ ENTRY(GNUTLS_DHE_RSA_CAMELLIA_128_CBC_SHA1,
+ "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA",
GNUTLS_CIPHER_CAMELLIA_128_CBC,
GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_RSA_CAMELLIA_256_CBC_SHA1, "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA",
+ ENTRY(GNUTLS_DHE_RSA_CAMELLIA_256_CBC_SHA1,
+ "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA",
GNUTLS_CIPHER_CAMELLIA_256_CBC,
GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_RSA_AES_128_CBC_SHA256, "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256",
+ ENTRY(GNUTLS_DHE_RSA_AES_128_CBC_SHA256,
+ "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DHE_RSA_AES_256_CBC_SHA256, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256",
+ ENTRY(GNUTLS_DHE_RSA_AES_256_CBC_SHA256,
+ "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
/* GCM */
- ENTRY(GNUTLS_DHE_RSA_AES_128_GCM_SHA256, "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
+ ENTRY(GNUTLS_DHE_RSA_AES_128_GCM_SHA256,
+ "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256",
GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_DHE_RSA_AES_256_GCM_SHA384, "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_DHE_RSA_AES_256_GCM_SHA384,
+ "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384",
GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_DHE_RSA_CAMELLIA_128_GCM_SHA256, "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256",
+ ENTRY(GNUTLS_DHE_RSA_CAMELLIA_128_GCM_SHA256,
+ "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_GCM, GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_DHE_RSA_CAMELLIA_256_GCM_SHA384, "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_DHE_RSA_CAMELLIA_256_GCM_SHA384,
+ "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_GCM, GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_DHE_RSA_CHACHA20_POLY1305, "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
+ ENTRY(GNUTLS_DHE_RSA_CHACHA20_POLY1305,
+ "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
GNUTLS_CIPHER_CHACHA20_POLY1305, GNUTLS_KX_DHE_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2, GNUTLS_DTLS1_2),
@@ -628,31 +655,38 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_NULL, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDHE_RSA_3DES_EDE_CBC_SHA1, "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_ECDHE_RSA_3DES_EDE_CBC_SHA1,
+ "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDHE_RSA_AES_128_CBC_SHA1, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_ECDHE_RSA_AES_128_CBC_SHA1,
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDHE_RSA_AES_256_CBC_SHA1, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_ECDHE_RSA_AES_256_CBC_SHA1,
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY_PRF(GNUTLS_ECDHE_RSA_AES_256_CBC_SHA384, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_RSA_AES_256_CBC_SHA384,
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_ECDHE_RSA_ARCFOUR_128_SHA1, "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
+ ENTRY(GNUTLS_ECDHE_RSA_ARCFOUR_128_SHA1,
+ "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
GNUTLS_CIPHER_ARCFOUR, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_VERSION_UNKNOWN),
- ENTRY(GNUTLS_ECDHE_RSA_CAMELLIA_128_CBC_SHA256, "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256",
+ ENTRY(GNUTLS_ECDHE_RSA_CAMELLIA_128_CBC_SHA256,
+ "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_CBC, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_ECDHE_RSA_CAMELLIA_256_CBC_SHA384, "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_RSA_CAMELLIA_256_CBC_SHA384,
+ "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_CBC, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
@@ -662,129 +696,158 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_NULL, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDHE_ECDSA_3DES_EDE_CBC_SHA1, "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_ECDHE_ECDSA_3DES_EDE_CBC_SHA1,
+ "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDHE_ECDSA_AES_128_CBC_SHA1, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_ECDHE_ECDSA_AES_128_CBC_SHA1,
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDHE_ECDSA_AES_256_CBC_SHA1, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_ECDHE_ECDSA_AES_256_CBC_SHA1,
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDHE_ECDSA_ARCFOUR_128_SHA1, "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
+ ENTRY(GNUTLS_ECDHE_ECDSA_ARCFOUR_128_SHA1,
+ "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
GNUTLS_CIPHER_ARCFOUR, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_VERSION_UNKNOWN),
- ENTRY(GNUTLS_ECDHE_ECDSA_CAMELLIA_128_CBC_SHA256, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256",
+ ENTRY(GNUTLS_ECDHE_ECDSA_CAMELLIA_128_CBC_SHA256,
+ "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_CBC, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_ECDHE_ECDSA_CAMELLIA_256_CBC_SHA384, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_ECDSA_CAMELLIA_256_CBC_SHA384,
+ "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_CBC, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
/* More ECC */
- ENTRY(GNUTLS_ECDHE_ECDSA_AES_128_CBC_SHA256, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
+ ENTRY(GNUTLS_ECDHE_ECDSA_AES_128_CBC_SHA256,
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_ECDHE_RSA_AES_128_CBC_SHA256, "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
+ ENTRY(GNUTLS_ECDHE_RSA_AES_128_CBC_SHA256,
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_ECDHE_ECDSA_CAMELLIA_128_GCM_SHA256, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256",
+ ENTRY(GNUTLS_ECDHE_ECDSA_CAMELLIA_128_GCM_SHA256,
+ "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_GCM, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_ECDHE_ECDSA_CAMELLIA_256_GCM_SHA384, "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_ECDSA_CAMELLIA_256_GCM_SHA384,
+ "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_GCM, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_ECDHE_ECDSA_AES_128_GCM_SHA256, "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
+ ENTRY(GNUTLS_ECDHE_ECDSA_AES_128_GCM_SHA256,
+ "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_ECDHE_ECDSA_AES_256_GCM_SHA384, "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_ECDSA_AES_256_GCM_SHA384,
+ "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_ECDHE_RSA_AES_128_GCM_SHA256, "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
+ ENTRY(GNUTLS_ECDHE_RSA_AES_128_GCM_SHA256,
+ "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_ECDHE_RSA_AES_256_GCM_SHA384, "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_RSA_AES_256_GCM_SHA384,
+ "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY_PRF(GNUTLS_ECDHE_ECDSA_AES_256_CBC_SHA384, "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_ECDSA_AES_256_CBC_SHA384,
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_ECDHE_RSA_CAMELLIA_128_GCM_SHA256, "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256",
+ ENTRY(GNUTLS_ECDHE_RSA_CAMELLIA_128_GCM_SHA256,
+ "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_GCM, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_ECDHE_RSA_CAMELLIA_256_GCM_SHA384, "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_RSA_CAMELLIA_256_GCM_SHA384,
+ "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_GCM, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_ECDHE_RSA_CHACHA20_POLY1305, "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
+ ENTRY(GNUTLS_ECDHE_RSA_CHACHA20_POLY1305,
+ "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
GNUTLS_CIPHER_CHACHA20_POLY1305, GNUTLS_KX_ECDHE_RSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_ECDHE_ECDSA_CHACHA20_POLY1305, "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
+ ENTRY(GNUTLS_ECDHE_ECDSA_CHACHA20_POLY1305,
+ "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
GNUTLS_CIPHER_CHACHA20_POLY1305, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_ECDHE_ECDSA_AES_128_CCM, "TLS_ECDHE_ECDSA_WITH_AES_128_CCM",
+ ENTRY(GNUTLS_ECDHE_ECDSA_AES_128_CCM,
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CCM",
GNUTLS_CIPHER_AES_128_CCM, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_ECDHE_ECDSA_AES_256_CCM, "TLS_ECDHE_ECDSA_WITH_AES_256_CCM",
+ ENTRY(GNUTLS_ECDHE_ECDSA_AES_256_CCM,
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CCM",
GNUTLS_CIPHER_AES_256_CCM, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_ECDHE_ECDSA_AES_128_CCM_8, "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8",
+ ENTRY(GNUTLS_ECDHE_ECDSA_AES_128_CCM_8,
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8",
GNUTLS_CIPHER_AES_128_CCM_8, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_ECDHE_ECDSA_AES_256_CCM_8, "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8",
+ ENTRY(GNUTLS_ECDHE_ECDSA_AES_256_CCM_8,
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8",
GNUTLS_CIPHER_AES_256_CCM_8, GNUTLS_KX_ECDHE_ECDSA,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
#endif
#ifdef ENABLE_PSK
/* ECC - PSK */
- ENTRY(GNUTLS_ECDHE_PSK_3DES_EDE_CBC_SHA1, "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_ECDHE_PSK_3DES_EDE_CBC_SHA1,
+ "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDHE_PSK_AES_128_CBC_SHA1, "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_ECDHE_PSK_AES_128_CBC_SHA1,
+ "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDHE_PSK_AES_256_CBC_SHA1, "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_ECDHE_PSK_AES_256_CBC_SHA1,
+ "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDHE_PSK_AES_128_CBC_SHA256, "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256",
+ ENTRY(GNUTLS_ECDHE_PSK_AES_128_CBC_SHA256,
+ "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_ECDHE_PSK_AES_256_CBC_SHA384, "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_PSK_AES_256_CBC_SHA384,
+ "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_ECDHE_PSK_ARCFOUR_128_SHA1, "TLS_ECDHE_PSK_WITH_RC4_128_SHA",
+ ENTRY(GNUTLS_ECDHE_PSK_ARCFOUR_128_SHA1,
+ "TLS_ECDHE_PSK_WITH_RC4_128_SHA",
GNUTLS_CIPHER_ARCFOUR, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_VERSION_UNKNOWN),
@@ -796,15 +859,18 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_NULL, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_ECDHE_PSK_NULL_SHA384, "TLS_ECDHE_PSK_WITH_NULL_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_PSK_NULL_SHA384,
+ "TLS_ECDHE_PSK_WITH_NULL_SHA384",
GNUTLS_CIPHER_NULL, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_ECDHE_PSK_CAMELLIA_128_CBC_SHA256, "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256",
+ ENTRY(GNUTLS_ECDHE_PSK_CAMELLIA_128_CBC_SHA256,
+ "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_CBC, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_ECDHE_PSK_CAMELLIA_256_CBC_SHA384, "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_ECDHE_PSK_CAMELLIA_256_CBC_SHA384,
+ "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_CBC, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
@@ -830,20 +896,22 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_PSK_AES_256_GCM_SHA384, "TLS_PSK_WITH_AES_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_PSK_AES_256_GCM_SHA384,
+ "TLS_PSK_WITH_AES_256_GCM_SHA384",
GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_PSK_CAMELLIA_128_GCM_SHA256, "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256",
+ ENTRY(GNUTLS_PSK_CAMELLIA_128_GCM_SHA256,
+ "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_GCM, GNUTLS_KX_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_PSK_CAMELLIA_256_GCM_SHA384, "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_PSK_CAMELLIA_256_GCM_SHA384,
+ "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_GCM, GNUTLS_KX_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
-
ENTRY(GNUTLS_PSK_AES_128_GCM_SHA256, "TLS_PSK_WITH_AES_128_GCM_SHA256",
GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
@@ -856,16 +924,19 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_NULL, GNUTLS_KX_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_PSK_CAMELLIA_128_CBC_SHA256, "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256",
+ ENTRY(GNUTLS_PSK_CAMELLIA_128_CBC_SHA256,
+ "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_CBC, GNUTLS_KX_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_PSK_CAMELLIA_256_CBC_SHA384, "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_PSK_CAMELLIA_256_CBC_SHA384,
+ "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_CBC, GNUTLS_KX_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY_PRF(GNUTLS_PSK_AES_256_CBC_SHA384, "TLS_PSK_WITH_AES_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_PSK_AES_256_CBC_SHA384,
+ "TLS_PSK_WITH_AES_256_CBC_SHA384",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
@@ -879,33 +950,39 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_ARCFOUR, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_SHA1, GNUTLS_TLS1,
GNUTLS_VERSION_UNKNOWN),
- ENTRY(GNUTLS_RSA_PSK_3DES_EDE_CBC_SHA1, "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_RSA_PSK_3DES_EDE_CBC_SHA1,
+ "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_SHA1, GNUTLS_TLS1,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_RSA_PSK_AES_128_CBC_SHA1, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_RSA_PSK_AES_128_CBC_SHA1,
+ "TLS_RSA_PSK_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_SHA1, GNUTLS_TLS1,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_RSA_PSK_AES_256_CBC_SHA1, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_RSA_PSK_AES_256_CBC_SHA1,
+ "TLS_RSA_PSK_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_SHA1, GNUTLS_TLS1,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_RSA_PSK_CAMELLIA_128_GCM_SHA256, "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256",
+ ENTRY(GNUTLS_RSA_PSK_CAMELLIA_128_GCM_SHA256,
+ "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_GCM, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_RSA_PSK_CAMELLIA_256_GCM_SHA384, "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_RSA_PSK_CAMELLIA_256_GCM_SHA384,
+ "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_GCM, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
-
- ENTRY(GNUTLS_RSA_PSK_AES_128_GCM_SHA256, "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256",
+ ENTRY(GNUTLS_RSA_PSK_AES_128_GCM_SHA256,
+ "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256",
GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_RSA_PSK_AES_128_CBC_SHA256, "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256",
+ ENTRY(GNUTLS_RSA_PSK_AES_128_CBC_SHA256,
+ "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
@@ -917,11 +994,13 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_NULL, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_RSA_PSK_AES_256_GCM_SHA384, "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_RSA_PSK_AES_256_GCM_SHA384,
+ "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384",
GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY_PRF(GNUTLS_RSA_PSK_AES_256_CBC_SHA384, "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_RSA_PSK_AES_256_CBC_SHA384,
+ "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
@@ -929,38 +1008,44 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_NULL, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_RSA_PSK_CAMELLIA_128_CBC_SHA256, "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256",
+ ENTRY(GNUTLS_RSA_PSK_CAMELLIA_128_CBC_SHA256,
+ "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_CBC, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_RSA_PSK_CAMELLIA_256_CBC_SHA384, "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_RSA_PSK_CAMELLIA_256_CBC_SHA384,
+ "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_CBC, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
-
/* DHE-PSK */
ENTRY(GNUTLS_DHE_PSK_ARCFOUR_128_SHA1, "TLS_DHE_PSK_WITH_RC4_128_SHA",
GNUTLS_CIPHER_ARCFOUR, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_VERSION_UNKNOWN),
- ENTRY(GNUTLS_DHE_PSK_3DES_EDE_CBC_SHA1, "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_DHE_PSK_3DES_EDE_CBC_SHA1,
+ "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_PSK_AES_128_CBC_SHA1, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_DHE_PSK_AES_128_CBC_SHA1,
+ "TLS_DHE_PSK_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_PSK_AES_256_CBC_SHA1, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_DHE_PSK_AES_256_CBC_SHA1,
+ "TLS_DHE_PSK_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DHE_PSK_AES_128_CBC_SHA256, "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256",
+ ENTRY(GNUTLS_DHE_PSK_AES_128_CBC_SHA256,
+ "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DHE_PSK_AES_128_GCM_SHA256, "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256",
+ ENTRY(GNUTLS_DHE_PSK_AES_128_GCM_SHA256,
+ "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256",
GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
@@ -976,27 +1061,33 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_NULL, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY_PRF(GNUTLS_DHE_PSK_AES_256_CBC_SHA384, "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_DHE_PSK_AES_256_CBC_SHA384,
+ "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY_PRF(GNUTLS_DHE_PSK_AES_256_GCM_SHA384, "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_DHE_PSK_AES_256_GCM_SHA384,
+ "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384",
GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_DHE_PSK_CAMELLIA_128_CBC_SHA256, "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256",
+ ENTRY(GNUTLS_DHE_PSK_CAMELLIA_128_CBC_SHA256,
+ "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_CBC, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_DHE_PSK_CAMELLIA_256_CBC_SHA384, "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384",
+ ENTRY_PRF(GNUTLS_DHE_PSK_CAMELLIA_256_CBC_SHA384,
+ "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_CBC, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_SHA384, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_DHE_PSK_CAMELLIA_128_GCM_SHA256, "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256",
+ ENTRY(GNUTLS_DHE_PSK_CAMELLIA_128_GCM_SHA256,
+ "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_GCM, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_DHE_PSK_CAMELLIA_256_GCM_SHA384, "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_DHE_PSK_CAMELLIA_256_GCM_SHA384,
+ "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_GCM, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
@@ -1033,18 +1124,22 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_AES_256_CCM_8, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DHE_PSK_CHACHA20_POLY1305, "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256",
+ ENTRY(GNUTLS_DHE_PSK_CHACHA20_POLY1305,
+ "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256",
GNUTLS_CIPHER_CHACHA20_POLY1305, GNUTLS_KX_DHE_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2, GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_ECDHE_PSK_CHACHA20_POLY1305, "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256",
+ ENTRY(GNUTLS_ECDHE_PSK_CHACHA20_POLY1305,
+ "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256",
GNUTLS_CIPHER_CHACHA20_POLY1305, GNUTLS_KX_ECDHE_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2, GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_RSA_PSK_CHACHA20_POLY1305, "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256",
+ ENTRY(GNUTLS_RSA_PSK_CHACHA20_POLY1305,
+ "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256",
GNUTLS_CIPHER_CHACHA20_POLY1305, GNUTLS_KX_RSA_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2, GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_PSK_CHACHA20_POLY1305, "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256",
+ ENTRY(GNUTLS_PSK_CHACHA20_POLY1305,
+ "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256",
GNUTLS_CIPHER_CHACHA20_POLY1305, GNUTLS_KX_PSK,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2, GNUTLS_DTLS1_2),
@@ -1055,59 +1150,72 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_ARCFOUR_128,
GNUTLS_KX_ANON_DH, GNUTLS_MAC_MD5,
GNUTLS_SSL3, GNUTLS_VERSION_UNKNOWN),
- ENTRY(GNUTLS_DH_ANON_3DES_EDE_CBC_SHA1, "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_DH_ANON_3DES_EDE_CBC_SHA1,
+ "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_ANON_DH,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DH_ANON_AES_128_CBC_SHA1, "TLS_DH_anon_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_DH_ANON_AES_128_CBC_SHA1,
+ "TLS_DH_anon_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ANON_DH,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DH_ANON_AES_256_CBC_SHA1, "TLS_DH_anon_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_DH_ANON_AES_256_CBC_SHA1,
+ "TLS_DH_anon_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ANON_DH,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DH_ANON_CAMELLIA_128_CBC_SHA256, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256",
+ ENTRY(GNUTLS_DH_ANON_CAMELLIA_128_CBC_SHA256,
+ "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_CBC,
GNUTLS_KX_ANON_DH,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DH_ANON_CAMELLIA_256_CBC_SHA256, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256",
+ ENTRY(GNUTLS_DH_ANON_CAMELLIA_256_CBC_SHA256,
+ "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256",
GNUTLS_CIPHER_CAMELLIA_256_CBC,
GNUTLS_KX_ANON_DH,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DH_ANON_CAMELLIA_128_CBC_SHA1, "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA",
+ ENTRY(GNUTLS_DH_ANON_CAMELLIA_128_CBC_SHA1,
+ "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA",
GNUTLS_CIPHER_CAMELLIA_128_CBC,
GNUTLS_KX_ANON_DH,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DH_ANON_CAMELLIA_256_CBC_SHA1, "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA",
+ ENTRY(GNUTLS_DH_ANON_CAMELLIA_256_CBC_SHA1,
+ "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA",
GNUTLS_CIPHER_CAMELLIA_256_CBC,
GNUTLS_KX_ANON_DH,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_DH_ANON_AES_128_CBC_SHA256, "TLS_DH_anon_WITH_AES_128_CBC_SHA256",
+ ENTRY(GNUTLS_DH_ANON_AES_128_CBC_SHA256,
+ "TLS_DH_anon_WITH_AES_128_CBC_SHA256",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ANON_DH,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DH_ANON_AES_256_CBC_SHA256, "TLS_DH_anon_WITH_AES_256_CBC_SHA256",
+ ENTRY(GNUTLS_DH_ANON_AES_256_CBC_SHA256,
+ "TLS_DH_anon_WITH_AES_256_CBC_SHA256",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ANON_DH,
GNUTLS_MAC_SHA256, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY(GNUTLS_DH_ANON_AES_128_GCM_SHA256, "TLS_DH_anon_WITH_AES_128_GCM_SHA256",
+ ENTRY(GNUTLS_DH_ANON_AES_128_GCM_SHA256,
+ "TLS_DH_anon_WITH_AES_128_GCM_SHA256",
GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_ANON_DH,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_DH_ANON_AES_256_GCM_SHA384, "TLS_DH_anon_WITH_AES_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_DH_ANON_AES_256_GCM_SHA384,
+ "TLS_DH_anon_WITH_AES_256_GCM_SHA384",
GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_ANON_DH,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
- ENTRY(GNUTLS_DH_ANON_CAMELLIA_128_GCM_SHA256, "TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256",
+ ENTRY(GNUTLS_DH_ANON_CAMELLIA_128_GCM_SHA256,
+ "TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256",
GNUTLS_CIPHER_CAMELLIA_128_GCM, GNUTLS_KX_ANON_DH,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2),
- ENTRY_PRF(GNUTLS_DH_ANON_CAMELLIA_256_GCM_SHA384, "TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384",
+ ENTRY_PRF(GNUTLS_DH_ANON_CAMELLIA_256_GCM_SHA384,
+ "TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384",
GNUTLS_CIPHER_CAMELLIA_256_GCM, GNUTLS_KX_ANON_DH,
GNUTLS_MAC_AEAD, GNUTLS_TLS1_2,
GNUTLS_DTLS1_2, GNUTLS_MAC_SHA384),
@@ -1117,71 +1225,85 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
GNUTLS_CIPHER_NULL, GNUTLS_KX_ANON_ECDH,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDH_ANON_3DES_EDE_CBC_SHA1, "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_ECDH_ANON_3DES_EDE_CBC_SHA1,
+ "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_ANON_ECDH,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDH_ANON_AES_128_CBC_SHA1, "TLS_ECDH_anon_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_ECDH_ANON_AES_128_CBC_SHA1,
+ "TLS_ECDH_anon_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_ANON_ECDH,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDH_ANON_AES_256_CBC_SHA1, "TLS_ECDH_anon_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_ECDH_ANON_AES_256_CBC_SHA1,
+ "TLS_ECDH_anon_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_ANON_ECDH,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_ECDH_ANON_ARCFOUR_128_SHA1, "TLS_ECDH_anon_WITH_RC4_128_SHA",
+ ENTRY(GNUTLS_ECDH_ANON_ARCFOUR_128_SHA1,
+ "TLS_ECDH_anon_WITH_RC4_128_SHA",
GNUTLS_CIPHER_ARCFOUR, GNUTLS_KX_ANON_ECDH,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_VERSION_UNKNOWN),
#endif
#ifdef ENABLE_SRP
/* SRP */
- ENTRY(GNUTLS_SRP_SHA_3DES_EDE_CBC_SHA1, "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_SRP_SHA_3DES_EDE_CBC_SHA1,
+ "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_SRP,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_SRP_SHA_AES_128_CBC_SHA1, "TLS_SRP_SHA_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_SRP_SHA_AES_128_CBC_SHA1,
+ "TLS_SRP_SHA_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_SRP,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_SRP_SHA_AES_256_CBC_SHA1, "TLS_SRP_SHA_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_SRP_SHA_AES_256_CBC_SHA1,
+ "TLS_SRP_SHA_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_SRP,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_SRP_SHA_DSS_3DES_EDE_CBC_SHA1, "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_SRP_SHA_DSS_3DES_EDE_CBC_SHA1,
+ "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_SRP_DSS,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_SRP_SHA_RSA_3DES_EDE_CBC_SHA1, "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA",
+ ENTRY(GNUTLS_SRP_SHA_RSA_3DES_EDE_CBC_SHA1,
+ "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA",
GNUTLS_CIPHER_3DES_CBC, GNUTLS_KX_SRP_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_SRP_SHA_DSS_AES_128_CBC_SHA1, "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_SRP_SHA_DSS_AES_128_CBC_SHA1,
+ "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_SRP_DSS,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_SRP_SHA_RSA_AES_128_CBC_SHA1, "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA",
+ ENTRY(GNUTLS_SRP_SHA_RSA_AES_128_CBC_SHA1,
+ "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA",
GNUTLS_CIPHER_AES_128_CBC, GNUTLS_KX_SRP_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_SRP_SHA_DSS_AES_256_CBC_SHA1, "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_SRP_SHA_DSS_AES_256_CBC_SHA1,
+ "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_SRP_DSS,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
- ENTRY(GNUTLS_SRP_SHA_RSA_AES_256_CBC_SHA1, "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA",
+ ENTRY(GNUTLS_SRP_SHA_RSA_AES_256_CBC_SHA1,
+ "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA",
GNUTLS_CIPHER_AES_256_CBC, GNUTLS_KX_SRP_RSA,
GNUTLS_MAC_SHA1, GNUTLS_SSL3,
GNUTLS_DTLS_VERSION_MIN),
#endif
#ifdef ENABLE_GOST
- ENTRY_PRF(GNUTLS_GOSTR341112_256_28147_CNT_IMIT, "TLS_GOSTR341112_256_WITH_28147_CNT_IMIT",
+ ENTRY_PRF(GNUTLS_GOSTR341112_256_28147_CNT_IMIT,
+ "TLS_GOSTR341112_256_WITH_28147_CNT_IMIT",
GNUTLS_CIPHER_GOST28147_TC26Z_CNT, GNUTLS_KX_VKO_GOST_12,
GNUTLS_MAC_GOST28147_TC26Z_IMIT, GNUTLS_TLS1_2,
GNUTLS_VERSION_UNKNOWN, GNUTLS_MAC_STREEBOG_256),
@@ -1197,7 +1319,6 @@ static const gnutls_cipher_suite_entry_st cs_algorithms[] = {
#define CIPHER_SUITE_ALG_LOOP(a, suite) \
CIPHER_SUITE_LOOP( if( (p->id[0] == suite[0]) && (p->id[1] == suite[1])) { a; break; } )
-
/* Cipher Suite's functions */
const gnutls_cipher_suite_entry_st *ciphersuite_to_entry(const uint8_t suite[2])
{
@@ -1205,8 +1326,7 @@ const gnutls_cipher_suite_entry_st *ciphersuite_to_entry(const uint8_t suite[2])
return NULL;
}
-gnutls_kx_algorithm_t
-_gnutls_cipher_suite_get_kx_algo(const uint8_t suite[2])
+gnutls_kx_algorithm_t _gnutls_cipher_suite_get_kx_algo(const uint8_t suite[2])
{
gnutls_kx_algorithm_t ret = GNUTLS_KX_UNKNOWN;
@@ -1225,22 +1345,18 @@ const char *_gnutls_cipher_suite_get_name(const uint8_t suite[2])
return ret;
}
-
const gnutls_cipher_suite_entry_st
- *cipher_suite_get(gnutls_kx_algorithm_t kx_algorithm,
- gnutls_cipher_algorithm_t cipher_algorithm,
- gnutls_mac_algorithm_t mac_algorithm)
+ * cipher_suite_get(gnutls_kx_algorithm_t kx_algorithm,
+ gnutls_cipher_algorithm_t cipher_algorithm,
+ gnutls_mac_algorithm_t mac_algorithm)
{
const gnutls_cipher_suite_entry_st *ret = NULL;
- CIPHER_SUITE_LOOP(
- if (kx_algorithm == p->kx_algorithm &&
+ CIPHER_SUITE_LOOP(if (kx_algorithm == p->kx_algorithm &&
cipher_algorithm == p->block_algorithm
&& mac_algorithm == p->mac_algorithm) {
- ret = p;
- break;
- }
- );
+ ret = p; break;}
+ ) ;
return ret;
}
@@ -1250,8 +1366,7 @@ const gnutls_cipher_suite_entry_st
*/
static unsigned
check_server_dh_params(gnutls_session_t session,
- unsigned cred_type,
- gnutls_kx_algorithm_t kx)
+ unsigned cred_type, gnutls_kx_algorithm_t kx)
{
unsigned have_dh_params = 0;
@@ -1273,7 +1388,9 @@ check_server_dh_params(gnutls_session_t session,
(gnutls_certificate_credentials_t)
_gnutls_get_cred(session, cred_type);
- if (x509_cred != NULL && (x509_cred->dh_params || x509_cred->params_func || x509_cred->dh_sec_param)) {
+ if (x509_cred != NULL
+ && (x509_cred->dh_params || x509_cred->params_func
+ || x509_cred->dh_sec_param)) {
have_dh_params = 1;
}
@@ -1283,7 +1400,9 @@ check_server_dh_params(gnutls_session_t session,
(gnutls_anon_server_credentials_t)
_gnutls_get_cred(session, cred_type);
- if (anon_cred != NULL && (anon_cred->dh_params || anon_cred->params_func || anon_cred->dh_sec_param)) {
+ if (anon_cred != NULL
+ && (anon_cred->dh_params || anon_cred->params_func
+ || anon_cred->dh_sec_param)) {
have_dh_params = 1;
}
#endif
@@ -1293,7 +1412,9 @@ check_server_dh_params(gnutls_session_t session,
(gnutls_psk_server_credentials_t)
_gnutls_get_cred(session, cred_type);
- if (psk_cred != NULL && (psk_cred->dh_params || psk_cred->params_func || psk_cred->dh_sec_param)) {
+ if (psk_cred != NULL
+ && (psk_cred->dh_params || psk_cred->params_func
+ || psk_cred->dh_sec_param)) {
have_dh_params = 1;
}
#endif
@@ -1324,13 +1445,11 @@ const char *gnutls_cipher_suite_get_name(gnutls_kx_algorithm_t
kx_algorithm,
gnutls_cipher_algorithm_t
cipher_algorithm,
- gnutls_mac_algorithm_t
- mac_algorithm)
+ gnutls_mac_algorithm_t mac_algorithm)
{
const gnutls_cipher_suite_entry_st *ce;
- ce = cipher_suite_get(kx_algorithm, cipher_algorithm,
- mac_algorithm);
+ ce = cipher_suite_get(kx_algorithm, cipher_algorithm, mac_algorithm);
if (ce == NULL)
return NULL;
else
@@ -1357,8 +1476,7 @@ _gnutls_cipher_suite_get_id(gnutls_kx_algorithm_t kx_algorithm,
{
const gnutls_cipher_suite_entry_st *ce;
- ce = cipher_suite_get(kx_algorithm, cipher_algorithm,
- mac_algorithm);
+ ce = cipher_suite_get(kx_algorithm, cipher_algorithm, mac_algorithm);
if (ce == NULL)
return GNUTLS_E_INVALID_REQUEST;
else {
@@ -1438,8 +1556,9 @@ const char *gnutls_cipher_suite_info(size_t idx,
} \
}
-static unsigned kx_is_ok(gnutls_session_t session, gnutls_kx_algorithm_t kx, unsigned cred_type,
- const gnutls_group_entry_st **sgroup)
+static unsigned kx_is_ok(gnutls_session_t session, gnutls_kx_algorithm_t kx,
+ unsigned cred_type,
+ const gnutls_group_entry_st ** sgroup)
{
if (_gnutls_kx_is_ecc(kx)) {
if (session->internals.cand_ec_group == NULL) {
@@ -1464,8 +1583,8 @@ static unsigned kx_is_ok(gnutls_session_t session, gnutls_kx_algorithm_t kx, uns
/* Called on server-side only */
int
_gnutls_figure_common_ciphersuite(gnutls_session_t session,
- const ciphersuite_list_st *peer_clist,
- const gnutls_cipher_suite_entry_st **ce)
+ const ciphersuite_list_st * peer_clist,
+ const gnutls_cipher_suite_entry_st ** ce)
{
unsigned int i, j;
@@ -1473,7 +1592,7 @@ _gnutls_figure_common_ciphersuite(gnutls_session_t session,
const version_entry_st *version = get_version(session);
unsigned int is_dtls = IS_DTLS(session);
gnutls_kx_algorithm_t kx;
- gnutls_credentials_type_t cred_type = GNUTLS_CRD_CERTIFICATE; /* default for TLS1.3 */
+ gnutls_credentials_type_t cred_type = GNUTLS_CRD_CERTIFICATE; /* default for TLS1.3 */
const gnutls_group_entry_st *sgroup = NULL;
gnutls_ext_priv_data_t epriv;
unsigned have_etm = 0;
@@ -1486,7 +1605,7 @@ _gnutls_figure_common_ciphersuite(gnutls_session_t session,
* because we only set (security_params) EtM to true only after the ciphersuite is
* negotiated. */
ret = _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_ETM, &epriv);
- if (ret >= 0 && ((intptr_t)epriv) != 0)
+ if (ret >= 0 && ((intptr_t) epriv) != 0)
have_etm = 1;
/* If we didn't receive the supported_groups extension, then
@@ -1494,16 +1613,19 @@ _gnutls_figure_common_ciphersuite(gnutls_session_t session,
* by RFC4492, probably to allow SSLv2 hellos negotiate elliptic curve
* ciphersuites */
if (!version->tls13_sem && session->internals.cand_ec_group == NULL &&
- !_gnutls_hello_ext_is_present(session, GNUTLS_EXTENSION_SUPPORTED_GROUPS)) {
- session->internals.cand_ec_group = _gnutls_id_to_group(DEFAULT_EC_GROUP);
+ !_gnutls_hello_ext_is_present(session,
+ GNUTLS_EXTENSION_SUPPORTED_GROUPS)) {
+ session->internals.cand_ec_group =
+ _gnutls_id_to_group(DEFAULT_EC_GROUP);
}
if (session->internals.priorities->server_precedence == 0) {
for (i = 0; i < peer_clist->size; i++) {
- _gnutls_debug_log("checking %.2x.%.2x (%s) for compatibility\n",
- (unsigned)peer_clist->entry[i]->id[0],
- (unsigned)peer_clist->entry[i]->id[1],
- peer_clist->entry[i]->name);
+ _gnutls_debug_log
+ ("checking %.2x.%.2x (%s) for compatibility\n",
+ (unsigned)peer_clist->entry[i]->id[0],
+ (unsigned)peer_clist->entry[i]->id[1],
+ peer_clist->entry[i]->name);
VERSION_CHECK(peer_clist->entry[i]);
kx = peer_clist->entry[i]->kx_algorithm;
@@ -1513,19 +1635,31 @@ _gnutls_figure_common_ciphersuite(gnutls_session_t session,
if (!version->tls13_sem)
cred_type = _gnutls_map_kx_get_cred(kx, 1);
- for (j = 0; j < session->internals.priorities->cs.size; j++) {
- if (session->internals.priorities->cs.entry[j] == peer_clist->entry[i]) {
+ for (j = 0; j < session->internals.priorities->cs.size;
+ j++) {
+ if (session->internals.priorities->
+ cs.entry[j] == peer_clist->entry[i]) {
sgroup = NULL;
- if (!kx_is_ok(session, kx, cred_type, &sgroup))
+ if (!kx_is_ok
+ (session, kx, cred_type, &sgroup))
continue;
/* if we have selected PSK, we need a ciphersuites which matches
* the selected binder */
- if (session->internals.hsk_flags & HSK_PSK_SELECTED) {
- if (session->key.binders[0].prf->id != session->internals.priorities->cs.entry[j]->prf)
+ if (session->internals.hsk_flags &
+ HSK_PSK_SELECTED) {
+ if (session->key.
+ binders[0].prf->id !=
+ session->
+ internals.priorities->cs.
+ entry[j]->prf)
continue;
- } else if (cred_type == GNUTLS_CRD_CERTIFICATE) {
- ret = _gnutls_select_server_cert(session, peer_clist->entry[i]);
+ } else if (cred_type ==
+ GNUTLS_CRD_CERTIFICATE) {
+ ret =
+ _gnutls_select_server_cert
+ (session,
+ peer_clist->entry[i]);
if (ret < 0) {
/* couldn't select cert with this ciphersuite */
gnutls_assert();
@@ -1535,7 +1669,8 @@ _gnutls_figure_common_ciphersuite(gnutls_session_t session,
/* select the group based on the selected ciphersuite */
if (sgroup)
- _gnutls_session_group_set(session, sgroup);
+ _gnutls_session_group_set
+ (session, sgroup);
*ce = peer_clist->entry[i];
return 0;
}
@@ -1543,33 +1678,49 @@ _gnutls_figure_common_ciphersuite(gnutls_session_t session,
}
} else {
for (j = 0; j < session->internals.priorities->cs.size; j++) {
- VERSION_CHECK(session->internals.priorities->cs.entry[j]);
+ VERSION_CHECK(session->internals.priorities->
+ cs.entry[j]);
- CIPHER_CHECK(session->internals.priorities->cs.entry[j]->block_algorithm);
+ CIPHER_CHECK(session->internals.priorities->
+ cs.entry[j]->block_algorithm);
for (i = 0; i < peer_clist->size; i++) {
- _gnutls_debug_log("checking %.2x.%.2x (%s) for compatibility\n",
- (unsigned)peer_clist->entry[i]->id[0],
- (unsigned)peer_clist->entry[i]->id[1],
- peer_clist->entry[i]->name);
-
- if (session->internals.priorities->cs.entry[j] == peer_clist->entry[i]) {
+ _gnutls_debug_log
+ ("checking %.2x.%.2x (%s) for compatibility\n",
+ (unsigned)peer_clist->entry[i]->id[0],
+ (unsigned)peer_clist->entry[i]->id[1],
+ peer_clist->entry[i]->name);
+
+ if (session->internals.priorities->
+ cs.entry[j] == peer_clist->entry[i]) {
sgroup = NULL;
kx = peer_clist->entry[i]->kx_algorithm;
if (!version->tls13_sem)
- cred_type = _gnutls_map_kx_get_cred(kx, 1);
+ cred_type =
+ _gnutls_map_kx_get_cred(kx,
+ 1);
- if (!kx_is_ok(session, kx, cred_type, &sgroup))
+ if (!kx_is_ok
+ (session, kx, cred_type, &sgroup))
break;
/* if we have selected PSK, we need a ciphersuites which matches
* the selected binder */
- if (session->internals.hsk_flags & HSK_PSK_SELECTED) {
- if (session->key.binders[0].prf->id != session->internals.priorities->cs.entry[j]->prf)
+ if (session->internals.hsk_flags &
+ HSK_PSK_SELECTED) {
+ if (session->key.
+ binders[0].prf->id !=
+ session->
+ internals.priorities->cs.
+ entry[j]->prf)
break;
- } else if (cred_type == GNUTLS_CRD_CERTIFICATE) {
- ret = _gnutls_select_server_cert(session, peer_clist->entry[i]);
+ } else if (cred_type ==
+ GNUTLS_CRD_CERTIFICATE) {
+ ret =
+ _gnutls_select_server_cert
+ (session,
+ peer_clist->entry[i]);
if (ret < 0) {
/* couldn't select cert with this ciphersuite */
gnutls_assert();
@@ -1579,7 +1730,8 @@ _gnutls_figure_common_ciphersuite(gnutls_session_t session,
/* select the group based on the selected ciphersuite */
if (sgroup)
- _gnutls_session_group_set(session, sgroup);
+ _gnutls_session_group_set
+ (session, sgroup);
*ce = peer_clist->entry[i];
return 0;
}
@@ -1605,9 +1757,9 @@ _gnutls_figure_common_ciphersuite(gnutls_session_t session,
#define RESERVED_CIPHERSUITES 4
int
_gnutls_get_client_ciphersuites(gnutls_session_t session,
- gnutls_buffer_st * cdata,
- const version_entry_st *vmin,
- unsigned add_scsv)
+ gnutls_buffer_st * cdata,
+ const version_entry_st * vmin,
+ unsigned add_scsv)
{
unsigned int j;
@@ -1615,7 +1767,7 @@ _gnutls_get_client_ciphersuites(gnutls_session_t session,
unsigned int is_dtls = IS_DTLS(session);
gnutls_kx_algorithm_t kx;
gnutls_credentials_type_t cred_type;
- uint8_t cipher_suites[MAX_CIPHERSUITE_SIZE*2 + RESERVED_CIPHERSUITES];
+ uint8_t cipher_suites[MAX_CIPHERSUITE_SIZE * 2 + RESERVED_CIPHERSUITES];
unsigned cipher_suites_size = 0;
size_t init_length = cdata->length;
const version_entry_st *vmax;
@@ -1625,27 +1777,35 @@ _gnutls_get_client_ciphersuites(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_NO_PRIORITIES_WERE_SET);
for (j = 0; j < session->internals.priorities->cs.size; j++) {
- CLIENT_VERSION_CHECK(vmin, vmax, session->internals.priorities->cs.entry[j]);
+ CLIENT_VERSION_CHECK(vmin, vmax,
+ session->internals.priorities->
+ cs.entry[j]);
kx = session->internals.priorities->cs.entry[j]->kx_algorithm;
- if (kx != GNUTLS_KX_UNKNOWN) { /* In TLS 1.3 ciphersuites don't map to credentials */
+ if (kx != GNUTLS_KX_UNKNOWN) { /* In TLS 1.3 ciphersuites don't map to credentials */
cred_type = _gnutls_map_kx_get_cred(kx, 0);
- if (!session->internals.premaster_set && _gnutls_get_cred(session, cred_type) == NULL)
+ if (!session->internals.premaster_set
+ && _gnutls_get_cred(session, cred_type) == NULL)
continue;
KX_SRP_CHECKS(kx, continue);
}
_gnutls_debug_log("Keeping ciphersuite %.2x.%.2x (%s)\n",
- (unsigned)session->internals.priorities->cs.entry[j]->id[0],
- (unsigned)session->internals.priorities->cs.entry[j]->id[1],
- session->internals.priorities->cs.entry[j]->name);
- cipher_suites[cipher_suites_size] = session->internals.priorities->cs.entry[j]->id[0];
- cipher_suites[cipher_suites_size + 1] = session->internals.priorities->cs.entry[j]->id[1];
+ (unsigned)session->internals.priorities->
+ cs.entry[j]->id[0],
+ (unsigned)session->internals.priorities->
+ cs.entry[j]->id[1],
+ session->internals.priorities->cs.
+ entry[j]->name);
+ cipher_suites[cipher_suites_size] =
+ session->internals.priorities->cs.entry[j]->id[0];
+ cipher_suites[cipher_suites_size + 1] =
+ session->internals.priorities->cs.entry[j]->id[1];
cipher_suites_size += 2;
- if (cipher_suites_size >= MAX_CIPHERSUITE_SIZE*2)
+ if (cipher_suites_size >= MAX_CIPHERSUITE_SIZE * 2)
break;
}
#ifdef ENABLE_SSL3
@@ -1664,11 +1824,14 @@ _gnutls_get_client_ciphersuites(gnutls_session_t session,
if (session->internals.priorities->fallback) {
cipher_suites[cipher_suites_size] = GNUTLS_FALLBACK_SCSV_MAJOR;
- cipher_suites[cipher_suites_size + 1] = GNUTLS_FALLBACK_SCSV_MINOR;
+ cipher_suites[cipher_suites_size + 1] =
+ GNUTLS_FALLBACK_SCSV_MINOR;
cipher_suites_size += 2;
}
- ret = _gnutls_buffer_append_data_prefix(cdata, 16, cipher_suites, cipher_suites_size);
+ ret =
+ _gnutls_buffer_append_data_prefix(cdata, 16, cipher_suites,
+ cipher_suites_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1695,8 +1858,7 @@ _gnutls_get_client_ciphersuites(gnutls_session_t session,
**/
int
gnutls_priority_get_cipher_suite_index(gnutls_priority_t pcache,
- unsigned int idx,
- unsigned int *sidx)
+ unsigned int idx, unsigned int *sidx)
{
unsigned int i, j;
unsigned max_tls = 0;
@@ -1706,12 +1868,13 @@ gnutls_priority_get_cipher_suite_index(gnutls_priority_t pcache,
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
/* find max_tls and max_dtls */
- for (j=0;j<pcache->protocol.num_priorities;j++) {
+ for (j = 0; j < pcache->protocol.num_priorities; j++) {
if (pcache->protocol.priorities[j] <= GNUTLS_TLS_VERSION_MAX &&
pcache->protocol.priorities[j] >= max_tls) {
max_tls = pcache->protocol.priorities[j];
- } else if (pcache->protocol.priorities[j] <= GNUTLS_DTLS_VERSION_MAX &&
- pcache->protocol.priorities[j] >= max_dtls) {
+ } else if (pcache->protocol.priorities[j] <=
+ GNUTLS_DTLS_VERSION_MAX
+ && pcache->protocol.priorities[j] >= max_dtls) {
max_dtls = pcache->protocol.priorities[j];
}
}
@@ -1725,7 +1888,8 @@ gnutls_priority_get_cipher_suite_index(gnutls_priority_t pcache,
_gnutls_mac_exists(cs_algorithms[i].mac_algorithm)) {
if (max_tls >= cs_algorithms[i].min_version) {
return 0;
- } else if (max_dtls >= cs_algorithms[i].min_dtls_version) {
+ } else if (max_dtls >=
+ cs_algorithms[i].min_dtls_version) {
return 0;
}
} else
diff --git a/lib/algorithms/ecc.c b/lib/algorithms/ecc.c
index 303a42612f..f5eadd1dbd 100644
--- a/lib/algorithms/ecc.c
+++ b/lib/algorithms/ecc.c
@@ -30,8 +30,7 @@
/* Supported ECC curves
*/
-static SYSTEM_CONFIG_OR_CONST
-gnutls_ecc_curve_entry_st ecc_curves[] = {
+static SYSTEM_CONFIG_OR_CONST gnutls_ecc_curve_entry_st ecc_curves[] = {
#ifdef ENABLE_NON_SUITEB_CURVES
{
.name = "SECP192R1",
@@ -41,7 +40,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.pk = GNUTLS_PK_ECDSA,
.size = 24,
.supported = 1,
- },
+ },
{
.name = "SECP224R1",
.oid = "1.3.132.0.33",
@@ -50,7 +49,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.pk = GNUTLS_PK_ECDSA,
.size = 28,
.supported = 1,
- },
+ },
#endif
{
.name = "SECP256R1",
@@ -60,7 +59,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.pk = GNUTLS_PK_ECDSA,
.size = 32,
.supported = 1,
- },
+ },
{
.name = "SECP384R1",
.oid = "1.3.132.0.34",
@@ -69,7 +68,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.pk = GNUTLS_PK_ECDSA,
.size = 48,
.supported = 1,
- },
+ },
{
.name = "SECP521R1",
.oid = "1.3.132.0.35",
@@ -78,16 +77,16 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.pk = GNUTLS_PK_ECDSA,
.size = 66,
.supported = 1,
- },
+ },
{
.name = "X25519",
- .oid = ECDH_X25519_OID,
+ .oid = ECDH_X25519_OID,
.id = GNUTLS_ECC_CURVE_X25519,
.group = GNUTLS_GROUP_X25519,
.pk = GNUTLS_PK_ECDH_X25519,
.size = 32,
.supported = 1,
- },
+ },
{
.name = "Ed25519",
.oid = SIG_EDDSA_SHA512_OID,
@@ -96,15 +95,15 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 32,
.sig_size = 64,
.supported = 1,
- },
+ },
{
.name = "X448",
- .oid = ECDH_X448_OID,
+ .oid = ECDH_X448_OID,
.id = GNUTLS_ECC_CURVE_X448,
.pk = GNUTLS_PK_ECDH_X448,
.size = 56,
.supported = 1,
- },
+ },
{
.name = "Ed448",
.oid = SIG_ED448_OID,
@@ -113,7 +112,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 57,
.sig_size = 114,
.supported = 1,
- },
+ },
#if ENABLE_GOST
/* Curves for usage in GOST digital signature algorithm (GOST R
* 34.10-2001/-2012) and key agreement (VKO GOST R 34.10-2001/-2012).
@@ -147,7 +146,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 32,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "CryptoPro-B",
.oid = "1.2.643.2.2.35.2",
@@ -157,7 +156,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 32,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "CryptoPro-C",
.oid = "1.2.643.2.2.35.3",
@@ -167,7 +166,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 32,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "CryptoPro-XchA",
.oid = "1.2.643.2.2.36.0",
@@ -177,7 +176,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 32,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "CryptoPro-XchB",
.oid = "1.2.643.2.2.36.1",
@@ -187,7 +186,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 32,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "TC26-256-A",
.oid = "1.2.643.7.1.2.1.1.1",
@@ -197,7 +196,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 32,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "TC26-256-B",
.oid = "1.2.643.7.1.2.1.1.2",
@@ -207,7 +206,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 32,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "TC26-256-C",
.oid = "1.2.643.7.1.2.1.1.3",
@@ -217,7 +216,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 32,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "TC26-256-D",
.oid = "1.2.643.7.1.2.1.1.4",
@@ -227,7 +226,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 32,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "TC26-512-A",
.oid = "1.2.643.7.1.2.1.2.1",
@@ -237,7 +236,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 64,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "TC26-512-B",
.oid = "1.2.643.7.1.2.1.2.2",
@@ -247,7 +246,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 64,
.gost_curve = 1,
.supported = 1,
- },
+ },
{
.name = "TC26-512-C",
.oid = "1.2.643.7.1.2.1.2.3",
@@ -257,7 +256,7 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
.size = 64,
.gost_curve = 1,
.supported = 1,
- },
+ },
#endif
{0, 0, 0}
};
@@ -266,7 +265,6 @@ gnutls_ecc_curve_entry_st ecc_curves[] = {
{ const gnutls_ecc_curve_entry_st *p; \
for(p = ecc_curves; p->name != NULL; p++) { b ; } }
-
/**
* gnutls_ecc_curve_list:
*
@@ -284,10 +282,10 @@ const gnutls_ecc_curve_t *gnutls_ecc_curve_list(void)
if (supported_curves[0] == 0) {
int i = 0;
- GNUTLS_ECC_CURVE_LOOP(
- if (p->supported && _gnutls_pk_curve_exists(p->id))
- supported_curves[i++] = p->id;
- );
+ GNUTLS_ECC_CURVE_LOOP(if
+ (p->supported
+ && _gnutls_pk_curve_exists(p->id))
+ supported_curves[i++] = p->id;) ;
supported_curves[i++] = 0;
}
@@ -296,10 +294,10 @@ const gnutls_ecc_curve_t *gnutls_ecc_curve_list(void)
unsigned _gnutls_ecc_curve_is_supported(gnutls_ecc_curve_t curve)
{
- GNUTLS_ECC_CURVE_LOOP(
- if (p->id == curve && p->supported && _gnutls_pk_curve_exists(p->id))
- return 1;
- );
+ GNUTLS_ECC_CURVE_LOOP(if
+ (p->id == curve && p->supported
+ && _gnutls_pk_curve_exists(p->id))
+ return 1;) ;
return 0;
}
@@ -316,13 +314,12 @@ gnutls_ecc_curve_t gnutls_oid_to_ecc_curve(const char *oid)
{
gnutls_ecc_curve_t ret = GNUTLS_ECC_CURVE_INVALID;
- GNUTLS_ECC_CURVE_LOOP(
- if (p->oid != NULL && c_strcasecmp(p->oid, oid) == 0 && p->supported &&
- _gnutls_pk_curve_exists(p->id)) {
- ret = p->id;
- break;
- }
- );
+ GNUTLS_ECC_CURVE_LOOP(if
+ (p->oid != NULL && c_strcasecmp(p->oid, oid) == 0
+ && p->supported
+ && _gnutls_pk_curve_exists(p->id)) {
+ ret = p->id; break;}
+ ) ;
return ret;
}
@@ -342,13 +339,11 @@ gnutls_ecc_curve_t gnutls_ecc_curve_get_id(const char *name)
{
gnutls_ecc_curve_t ret = GNUTLS_ECC_CURVE_INVALID;
- GNUTLS_ECC_CURVE_LOOP(
- if (c_strcasecmp(p->name, name) == 0 && p->supported &&
- _gnutls_pk_curve_exists(p->id)) {
- ret = p->id;
- break;
- }
- );
+ GNUTLS_ECC_CURVE_LOOP(if
+ (c_strcasecmp(p->name, name) == 0 && p->supported
+ && _gnutls_pk_curve_exists(p->id)) {
+ ret = p->id; break;}
+ ) ;
return ret;
}
@@ -358,7 +353,7 @@ int _gnutls_ecc_curve_mark_disabled(gnutls_ecc_curve_t curve)
{
gnutls_ecc_curve_entry_st *p;
- for(p = ecc_curves; p->name != NULL; p++) {
+ for (p = ecc_curves; p->name != NULL; p++) {
if (p->id == curve) {
p->supported = false;
return 0;
@@ -373,7 +368,7 @@ void _gnutls_ecc_curve_mark_disabled_all(void)
{
gnutls_ecc_curve_entry_st *p;
- for(p = ecc_curves; p->name != NULL; p++) {
+ for (p = ecc_curves; p->name != NULL; p++) {
p->supported = false;
p->supported_revertible = true;
}
@@ -384,10 +379,11 @@ _gnutls_ecc_curve_set_enabled(gnutls_ecc_curve_t curve, unsigned int enabled)
{
gnutls_ecc_curve_entry_st *p;
- for(p = ecc_curves; p->name != NULL; p++) {
+ for (p = ecc_curves; p->name != NULL; p++) {
if (p->id == curve) {
if (!p->supported_revertible) {
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
p->supported = enabled;
return 0;
@@ -397,14 +393,13 @@ _gnutls_ecc_curve_set_enabled(gnutls_ecc_curve_t curve, unsigned int enabled)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
-static int _gnutls_ecc_pk_compatible(const gnutls_ecc_curve_entry_st *p,
+static int _gnutls_ecc_pk_compatible(const gnutls_ecc_curve_entry_st * p,
gnutls_pk_algorithm_t pk)
{
if (!p->supported || !_gnutls_pk_curve_exists(p->id))
return 0;
- if (pk == GNUTLS_PK_GOST_01 ||
- pk == GNUTLS_PK_GOST_12_256)
+ if (pk == GNUTLS_PK_GOST_01 || pk == GNUTLS_PK_GOST_12_256)
return p->gost_curve && p->size == 32;
return pk == p->pk;
@@ -423,20 +418,17 @@ gnutls_ecc_curve_t _gnutls_ecc_bits_to_curve(gnutls_pk_algorithm_t pk, int bits)
if (pk == GNUTLS_PK_ECDSA)
ret = GNUTLS_ECC_CURVE_SECP256R1;
- else if (pk == GNUTLS_PK_GOST_01 ||
- pk == GNUTLS_PK_GOST_12_256)
+ else if (pk == GNUTLS_PK_GOST_01 || pk == GNUTLS_PK_GOST_12_256)
ret = GNUTLS_ECC_CURVE_GOST256CPA;
else if (pk == GNUTLS_PK_GOST_12_512)
ret = GNUTLS_ECC_CURVE_GOST512A;
else
ret = GNUTLS_ECC_CURVE_ED25519;
- GNUTLS_ECC_CURVE_LOOP(
- if (_gnutls_ecc_pk_compatible(p, pk) && 8 * p->size >= (unsigned)bits) {
- ret = p->id;
- break;
- }
- );
+ GNUTLS_ECC_CURVE_LOOP(if (_gnutls_ecc_pk_compatible(p, pk)
+ && 8 * p->size >= (unsigned)bits) {
+ ret = p->id; break;}
+ ) ;
return ret;
}
@@ -456,12 +448,9 @@ const char *gnutls_ecc_curve_get_name(gnutls_ecc_curve_t curve)
{
const char *ret = NULL;
- GNUTLS_ECC_CURVE_LOOP(
- if (p->id == curve) {
- ret = p->name;
- break;
- }
- );
+ GNUTLS_ECC_CURVE_LOOP(if (p->id == curve) {
+ ret = p->name; break;}
+ ) ;
return ret;
}
@@ -481,12 +470,9 @@ const char *gnutls_ecc_curve_get_oid(gnutls_ecc_curve_t curve)
{
const char *ret = NULL;
- GNUTLS_ECC_CURVE_LOOP(
- if (p->id == curve) {
- ret = p->oid;
- break;
- }
- );
+ GNUTLS_ECC_CURVE_LOOP(if (p->id == curve) {
+ ret = p->oid; break;}
+ ) ;
return ret;
}
@@ -500,16 +486,13 @@ const char *gnutls_ecc_curve_get_oid(gnutls_ecc_curve_t curve)
* Returns: a pointer to #gnutls_ecc_curve_entry_st or %NULL.
-*/
const gnutls_ecc_curve_entry_st
- *_gnutls_ecc_curve_get_params(gnutls_ecc_curve_t curve)
+ * _gnutls_ecc_curve_get_params(gnutls_ecc_curve_t curve)
{
const gnutls_ecc_curve_entry_st *ret = NULL;
- GNUTLS_ECC_CURVE_LOOP(
- if (p->id == curve) {
- ret = p;
- break;
- }
- );
+ GNUTLS_ECC_CURVE_LOOP(if (p->id == curve) {
+ ret = p; break;}
+ ) ;
return ret;
}
@@ -526,12 +509,9 @@ int gnutls_ecc_curve_get_size(gnutls_ecc_curve_t curve)
{
int ret = 0;
- GNUTLS_ECC_CURVE_LOOP(
- if (p->id == curve) {
- ret = p->size;
- break;
- }
- );
+ GNUTLS_ECC_CURVE_LOOP(if (p->id == curve) {
+ ret = p->size; break;}
+ ) ;
return ret;
}
@@ -548,12 +528,9 @@ gnutls_pk_algorithm_t gnutls_ecc_curve_get_pk(gnutls_ecc_curve_t curve)
{
int ret = GNUTLS_PK_UNKNOWN;
- GNUTLS_ECC_CURVE_LOOP(
- if (p->id == curve && p->supported) {
- ret = p->pk;
- break;
- }
- );
+ GNUTLS_ECC_CURVE_LOOP(if (p->id == curve && p->supported) {
+ ret = p->pk; break;}
+ ) ;
return ret;
}
@@ -570,12 +547,11 @@ gnutls_group_t _gnutls_ecc_curve_get_group(gnutls_ecc_curve_t curve)
{
gnutls_group_t ret = GNUTLS_GROUP_INVALID;
- GNUTLS_ECC_CURVE_LOOP(
- if (p->id == curve && p->supported && _gnutls_pk_curve_exists(p->id)) {
- ret = p->group;
- break;
- }
- );
+ GNUTLS_ECC_CURVE_LOOP(if
+ (p->id == curve && p->supported
+ && _gnutls_pk_curve_exists(p->id)) {
+ ret = p->group; break;}
+ ) ;
return ret;
}
diff --git a/lib/algorithms/groups.c b/lib/algorithms/groups.c
index d8bf95824f..dba091cbc6 100644
--- a/lib/algorithms/groups.c
+++ b/lib/algorithms/groups.c
@@ -37,42 +37,41 @@ static const gnutls_group_entry_st supported_groups[] = {
.curve = GNUTLS_ECC_CURVE_SECP192R1,
.tls_id = 19,
.pk = GNUTLS_PK_ECDSA,
- },
+ },
{
.name = "SECP224R1",
.id = GNUTLS_GROUP_SECP224R1,
.curve = GNUTLS_ECC_CURVE_SECP224R1,
.tls_id = 21,
.pk = GNUTLS_PK_ECDSA,
- },
+ },
{
.name = "SECP256R1",
.id = GNUTLS_GROUP_SECP256R1,
.curve = GNUTLS_ECC_CURVE_SECP256R1,
.tls_id = 23,
.pk = GNUTLS_PK_ECDSA,
- },
+ },
{
.name = "SECP384R1",
.id = GNUTLS_GROUP_SECP384R1,
.curve = GNUTLS_ECC_CURVE_SECP384R1,
.tls_id = 24,
.pk = GNUTLS_PK_ECDSA,
- },
+ },
{
.name = "SECP521R1",
.id = GNUTLS_GROUP_SECP521R1,
.curve = GNUTLS_ECC_CURVE_SECP521R1,
.tls_id = 25,
.pk = GNUTLS_PK_ECDSA,
- },
+ },
{
.name = "X25519",
.id = GNUTLS_GROUP_X25519,
.curve = GNUTLS_ECC_CURVE_X25519,
.tls_id = 29,
- .pk = GNUTLS_PK_ECDH_X25519
- },
+ .pk = GNUTLS_PK_ECDH_X25519},
#ifdef ENABLE_GOST
/* draft-smyshlyaev-tls12-gost-suites-06, Section 6 */
{
@@ -81,57 +80,56 @@ static const gnutls_group_entry_st supported_groups[] = {
.curve = GNUTLS_ECC_CURVE_GOST256A,
.pk = GNUTLS_PK_GOST_12_256,
.tls_id = 34,
- },
+ },
{
.name = "GC256B",
.id = GNUTLS_GROUP_GC256B,
.curve = GNUTLS_ECC_CURVE_GOST256B,
.pk = GNUTLS_PK_GOST_12_256,
.tls_id = 35,
- },
+ },
{
.name = "GC256C",
.id = GNUTLS_GROUP_GC256C,
.curve = GNUTLS_ECC_CURVE_GOST256C,
.pk = GNUTLS_PK_GOST_12_256,
.tls_id = 36,
- },
+ },
{
.name = "GC256D",
.id = GNUTLS_GROUP_GC256D,
.curve = GNUTLS_ECC_CURVE_GOST256D,
.pk = GNUTLS_PK_GOST_12_256,
.tls_id = 37,
- },
+ },
{
.name = "GC512A",
.id = GNUTLS_GROUP_GC512A,
.curve = GNUTLS_ECC_CURVE_GOST512A,
.pk = GNUTLS_PK_GOST_12_512,
.tls_id = 38,
- },
+ },
{
.name = "GC512B",
.id = GNUTLS_GROUP_GC512B,
.curve = GNUTLS_ECC_CURVE_GOST512B,
.pk = GNUTLS_PK_GOST_12_512,
.tls_id = 39,
- },
+ },
{
.name = "GC512C",
.id = GNUTLS_GROUP_GC512C,
.curve = GNUTLS_ECC_CURVE_GOST512C,
.pk = GNUTLS_PK_GOST_12_512,
.tls_id = 40,
- },
+ },
#endif
{
.name = "X448",
.id = GNUTLS_GROUP_X448,
.curve = GNUTLS_ECC_CURVE_X448,
.tls_id = 30,
- .pk = GNUTLS_PK_ECDH_X448
- },
+ .pk = GNUTLS_PK_ECDH_X448},
#ifdef ENABLE_DHE
{
.name = "FFDHE2048",
@@ -141,8 +139,7 @@ static const gnutls_group_entry_st supported_groups[] = {
.q = &gnutls_ffdhe_2048_group_q,
.q_bits = &gnutls_ffdhe_2048_key_bits,
.pk = GNUTLS_PK_DH,
- .tls_id = 0x100
- },
+ .tls_id = 0x100},
{
.name = "FFDHE3072",
.id = GNUTLS_GROUP_FFDHE3072,
@@ -151,8 +148,7 @@ static const gnutls_group_entry_st supported_groups[] = {
.q = &gnutls_ffdhe_3072_group_q,
.q_bits = &gnutls_ffdhe_3072_key_bits,
.pk = GNUTLS_PK_DH,
- .tls_id = 0x101
- },
+ .tls_id = 0x101},
{
.name = "FFDHE4096",
.id = GNUTLS_GROUP_FFDHE4096,
@@ -161,8 +157,7 @@ static const gnutls_group_entry_st supported_groups[] = {
.q = &gnutls_ffdhe_4096_group_q,
.q_bits = &gnutls_ffdhe_4096_key_bits,
.pk = GNUTLS_PK_DH,
- .tls_id = 0x102
- },
+ .tls_id = 0x102},
{
.name = "FFDHE6144",
.id = GNUTLS_GROUP_FFDHE6144,
@@ -171,8 +166,7 @@ static const gnutls_group_entry_st supported_groups[] = {
.q = &gnutls_ffdhe_6144_group_q,
.q_bits = &gnutls_ffdhe_6144_key_bits,
.pk = GNUTLS_PK_DH,
- .tls_id = 0x103
- },
+ .tls_id = 0x103},
{
.name = "FFDHE8192",
.id = GNUTLS_GROUP_FFDHE8192,
@@ -181,8 +175,7 @@ static const gnutls_group_entry_st supported_groups[] = {
.q = &gnutls_ffdhe_8192_group_q,
.q_bits = &gnutls_ffdhe_8192_key_bits,
.pk = GNUTLS_PK_DH,
- .tls_id = 0x104
- },
+ .tls_id = 0x104},
#endif
{0, 0, 0}
};
@@ -191,32 +184,29 @@ static const gnutls_group_entry_st supported_groups[] = {
{ const gnutls_group_entry_st *p; \
for(p = supported_groups; p->name != NULL; p++) { b ; } }
-
/* Returns the TLS id of the given curve
*/
-const gnutls_group_entry_st * _gnutls_tls_id_to_group(unsigned num)
+const gnutls_group_entry_st *_gnutls_tls_id_to_group(unsigned num)
{
- GNUTLS_GROUP_LOOP(
- if (p->tls_id == num &&
- (p->curve == 0 || _gnutls_ecc_curve_is_supported(p->curve))) {
- return p;
- }
- );
+ GNUTLS_GROUP_LOOP(if (p->tls_id == num &&
+ (p->curve == 0
+ || _gnutls_ecc_curve_is_supported(p->curve))) {
+ return p;}
+ ) ;
return NULL;
}
-const gnutls_group_entry_st * _gnutls_id_to_group(unsigned id)
+const gnutls_group_entry_st *_gnutls_id_to_group(unsigned id)
{
if (id == 0)
return NULL;
- GNUTLS_GROUP_LOOP(
- if (p->id == id &&
- (p->curve == 0 || _gnutls_ecc_curve_is_supported(p->curve))) {
- return p;
- }
- );
+ GNUTLS_GROUP_LOOP(if (p->id == id &&
+ (p->curve == 0
+ || _gnutls_ecc_curve_is_supported(p->curve))) {
+ return p;}
+ ) ;
return NULL;
}
@@ -240,10 +230,10 @@ const gnutls_group_t *gnutls_group_list(void)
if (groups[0] == 0) {
int i = 0;
- GNUTLS_GROUP_LOOP(
- if (p->curve == 0 || _gnutls_ecc_curve_is_supported(p->curve))
- groups[i++] = p->id;
- );
+ GNUTLS_GROUP_LOOP(if
+ (p->curve == 0
+ || _gnutls_ecc_curve_is_supported(p->curve))
+ groups[i++] = p->id;) ;
groups[i++] = 0;
}
@@ -265,18 +255,16 @@ gnutls_group_t gnutls_group_get_id(const char *name)
{
gnutls_group_t ret = GNUTLS_GROUP_INVALID;
- GNUTLS_GROUP_LOOP(
- if (c_strcasecmp(p->name, name) == 0 && (
- p->curve == 0 ||_gnutls_ecc_curve_is_supported(p->curve))) {
- ret = p->id;
- break;
- }
- );
+ GNUTLS_GROUP_LOOP(if
+ (c_strcasecmp(p->name, name) == 0
+ && (p->curve == 0
+ || _gnutls_ecc_curve_is_supported(p->curve))) {
+ ret = p->id; break;}
+ ) ;
return ret;
}
-
/* Similar to gnutls_group_get_id, except that it does not check if
* the curve is supported.
*/
@@ -284,12 +272,9 @@ gnutls_group_t _gnutls_group_get_id(const char *name)
{
gnutls_group_t ret = GNUTLS_GROUP_INVALID;
- GNUTLS_GROUP_LOOP(
- if (c_strcasecmp(p->name, name) == 0) {
- ret = p->id;
- break;
- }
- );
+ GNUTLS_GROUP_LOOP(if (c_strcasecmp(p->name, name) == 0) {
+ ret = p->id; break;}
+ ) ;
return ret;
}
@@ -307,11 +292,9 @@ gnutls_group_t _gnutls_group_get_id(const char *name)
**/
const char *gnutls_group_get_name(gnutls_group_t group)
{
- GNUTLS_GROUP_LOOP(
- if (p->id == group) {
- return p->name;
- }
- );
+ GNUTLS_GROUP_LOOP(if (p->id == group) {
+ return p->name;}
+ ) ;
return NULL;
}
diff --git a/lib/algorithms/kx.c b/lib/algorithms/kx.c
index d2a24409d5..df020d8a3f 100644
--- a/lib/algorithms/kx.c
+++ b/lib/algorithms/kx.c
@@ -43,7 +43,6 @@ extern mod_auth_st srp_rsa_auth_struct;
extern mod_auth_st srp_dss_auth_struct;
extern mod_auth_st vko_gost_auth_struct;
-
/* Cred type mappings to KX algorithms
* The mappings are not 1-1. Some KX such as SRP_RSA require
* more than one credentials type.
@@ -105,13 +104,13 @@ static const gnutls_kx_algo_entry _gnutls_kx_algorithms[] = {
#ifdef ENABLE_PSK
{"PSK", GNUTLS_KX_PSK, &psk_auth_struct, 0, 0},
{"RSA-PSK", GNUTLS_KX_RSA_PSK, &rsa_psk_auth_struct, 0, 0},
-#ifdef ENABLE_DHE
+# ifdef ENABLE_DHE
{"DHE-PSK", GNUTLS_KX_DHE_PSK, &dhe_psk_auth_struct,
- 1 /* needs DHE params */, 0},
-#endif
-#ifdef ENABLE_ECDHE
+ 1 /* needs DHE params */ , 0},
+# endif
+# ifdef ENABLE_ECDHE
{"ECDHE-PSK", GNUTLS_KX_ECDHE_PSK, &ecdhe_psk_auth_struct, 0, 0},
-#endif
+# endif
#endif
#ifdef ENABLE_SRP
{"SRP-DSS", GNUTLS_KX_SRP_DSS, &srp_dss_auth_struct, 0, 0},
@@ -142,7 +141,6 @@ static const gnutls_kx_algo_entry _gnutls_kx_algorithms[] = {
#define GNUTLS_KX_ALG_LOOP(a) \
GNUTLS_KX_LOOP( if(p->algorithm == algorithm) { a; break; } )
-
/* Key EXCHANGE functions */
mod_auth_st *_gnutls_kx_auth_struct(gnutls_kx_algorithm_t algorithm)
{
@@ -185,12 +183,11 @@ gnutls_kx_algorithm_t gnutls_kx_get_id(const char *name)
{
gnutls_kx_algorithm_t ret = GNUTLS_KX_UNKNOWN;
- GNUTLS_KX_LOOP(
- if (c_strcasecmp(p->name, name) == 0 && (int)p->algorithm != GNUTLS_KX_INVALID) {
- ret = p->algorithm;
- break;
- }
- );
+ GNUTLS_KX_LOOP(if
+ (c_strcasecmp(p->name, name) == 0
+ && (int)p->algorithm != GNUTLS_KX_INVALID) {
+ ret = p->algorithm; break;}
+ ) ;
return ret;
}
@@ -203,12 +200,9 @@ int _gnutls_kx_get_id(const char *name)
{
gnutls_kx_algorithm_t ret = GNUTLS_KX_UNKNOWN;
- GNUTLS_KX_LOOP(
- if (c_strcasecmp(p->name, name) == 0) {
- ret = p->algorithm;
- break;
- }
- );
+ GNUTLS_KX_LOOP(if (c_strcasecmp(p->name, name) == 0) {
+ ret = p->algorithm; break;}
+ ) ;
return ret;
}
@@ -264,19 +258,25 @@ bool _gnutls_kx_allows_false_start(gnutls_session_t session)
#if defined(ENABLE_DHE) || defined(ENABLE_ANON)
if (needs_dh != 0) {
- bits = gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH, GNUTLS_SEC_PARAM_HIGH);
+ bits =
+ gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH,
+ GNUTLS_SEC_PARAM_HIGH);
/* check whether sizes are sufficient */
if (e && e->prime) {
- if (e->prime->size*8 < (unsigned)bits)
+ if (e->prime->size * 8 < (unsigned)bits)
ret = 0;
} else if (gnutls_dh_get_prime_bits(session) < bits)
ret = 0;
} else
#endif
- if (algorithm == GNUTLS_KX_ECDHE_RSA || algorithm == GNUTLS_KX_ECDHE_ECDSA) {
- bits = gnutls_sec_param_to_pk_bits(GNUTLS_PK_EC, GNUTLS_SEC_PARAM_HIGH);
-
- if (e != NULL && gnutls_ecc_curve_get_size(e->curve) * 8 < bits)
+ if (algorithm == GNUTLS_KX_ECDHE_RSA
+ || algorithm == GNUTLS_KX_ECDHE_ECDSA) {
+ bits =
+ gnutls_sec_param_to_pk_bits(GNUTLS_PK_EC,
+ GNUTLS_SEC_PARAM_HIGH);
+
+ if (e != NULL
+ && gnutls_ecc_curve_get_size(e->curve) * 8 < bits)
ret = 0;
}
}
@@ -298,11 +298,13 @@ _gnutls_map_kx_get_cred(gnutls_kx_algorithm_t algorithm, int server)
{
gnutls_credentials_type_t ret = -1;
if (server) {
- GNUTLS_KX_MAP_LOOP(if (p->algorithm == algorithm) {ret =
- p->server_type; break;});
+ GNUTLS_KX_MAP_LOOP(if (p->algorithm == algorithm) {
+ ret = p->server_type; break;}
+ ) ;
} else {
- GNUTLS_KX_MAP_LOOP(if (p->algorithm == algorithm) {ret =
- p->client_type; break;});
+ GNUTLS_KX_MAP_LOOP(if (p->algorithm == algorithm) {
+ ret = p->client_type; break;}
+ ) ;
}
return ret;
diff --git a/lib/algorithms/mac.c b/lib/algorithms/mac.c
index 47fbc226bd..50ad49a3ba 100644
--- a/lib/algorithms/mac.c
+++ b/lib/algorithms/mac.c
@@ -36,8 +36,7 @@
#define MAC_OID_STREEBOG_256 "1.2.643.7.1.1.4.1"
#define MAC_OID_STREEBOG_512 "1.2.643.7.1.1.4.2"
-static SYSTEM_CONFIG_OR_CONST
-mac_entry_st hash_algorithms[] = {
+static SYSTEM_CONFIG_OR_CONST mac_entry_st hash_algorithms[] = {
{.name = "SHA1",
.oid = HASH_OID_SHA1,
.mac_oid = MAC_OID_SHA1,
@@ -132,8 +131,7 @@ mac_entry_st hash_algorithms[] = {
.id = GNUTLS_MAC_RMD160,
.output_size = 20,
.key_size = 20,
- .block_size = 64
- },
+ .block_size = 64},
{.name = "GOSTR341194",
.oid = HASH_OID_GOST_R_3411_94,
.mac_oid = MAC_OID_GOST_R_3411_94,
@@ -141,8 +139,7 @@ mac_entry_st hash_algorithms[] = {
.output_size = 32,
.key_size = 32,
.block_size = 32,
- .flags = GNUTLS_MAC_FLAG_PREIMAGE_INSECURE
- },
+ .flags = GNUTLS_MAC_FLAG_PREIMAGE_INSECURE},
{.name = "STREEBOG-256",
.oid = HASH_OID_STREEBOG_256,
.mac_oid = MAC_OID_STREEBOG_256,
@@ -209,7 +206,6 @@ mac_entry_st hash_algorithms[] = {
{0, 0, 0, 0, 0, 0, 0, 0, 0}
};
-
#define GNUTLS_HASH_LOOP(b) \
const mac_entry_st *p; \
for(p = hash_algorithms; p->name != NULL; p++) { b ; }
@@ -219,7 +215,7 @@ mac_entry_st hash_algorithms[] = {
const mac_entry_st *_gnutls_mac_to_entry(gnutls_mac_algorithm_t c)
{
- GNUTLS_HASH_LOOP(if (c == p->id) return p);
+ GNUTLS_HASH_LOOP(if (c == p->id) return p) ;
return NULL;
}
@@ -256,12 +252,9 @@ const char *gnutls_digest_get_name(gnutls_digest_algorithm_t algorithm)
{
const char *ret = NULL;
- GNUTLS_HASH_LOOP(
- if (algorithm == (unsigned) p->id && p->oid != NULL) {
- ret = p->name;
- break;
- }
- );
+ GNUTLS_HASH_LOOP(if (algorithm == (unsigned)p->id && p->oid != NULL) {
+ ret = p->name; break;}
+ ) ;
return ret;
}
@@ -280,13 +273,11 @@ gnutls_digest_algorithm_t gnutls_digest_get_id(const char *name)
{
gnutls_digest_algorithm_t ret = GNUTLS_DIG_UNKNOWN;
- GNUTLS_HASH_LOOP(
- if (p->oid != NULL && c_strcasecmp(p->name, name) == 0) {
- if (_gnutls_digest_exists((gnutls_digest_algorithm_t)p->id))
- ret = (gnutls_digest_algorithm_t)p->id;
- break;
- }
- );
+ GNUTLS_HASH_LOOP(if (p->oid != NULL && c_strcasecmp(p->name, name) == 0) {
+ if (_gnutls_digest_exists
+ ((gnutls_digest_algorithm_t) p->id))
+ ret = (gnutls_digest_algorithm_t) p->id; break;}
+ ) ;
return ret;
}
@@ -297,8 +288,8 @@ int _gnutls_digest_mark_insecure(gnutls_digest_algorithm_t dig)
#ifndef DISABLE_SYSTEM_CONFIG
mac_entry_st *p;
- for(p = hash_algorithms; p->name != NULL; p++) {
- if (p->oid != NULL && p->id == (gnutls_mac_algorithm_t)dig) {
+ for (p = hash_algorithms; p->name != NULL; p++) {
+ if (p->oid != NULL && p->id == (gnutls_mac_algorithm_t) dig) {
p->flags |= GNUTLS_MAC_FLAG_PREIMAGE_INSECURE;
return 0;
}
@@ -314,9 +305,9 @@ void _gnutls_digest_mark_insecure_all(void)
#ifndef DISABLE_SYSTEM_CONFIG
mac_entry_st *p;
- for(p = hash_algorithms; p->name != NULL; p++) {
+ for (p = hash_algorithms; p->name != NULL; p++) {
p->flags |= GNUTLS_MAC_FLAG_PREIMAGE_INSECURE_REVERTIBLE |
- GNUTLS_MAC_FLAG_PREIMAGE_INSECURE;
+ GNUTLS_MAC_FLAG_PREIMAGE_INSECURE;
}
#endif
@@ -328,10 +319,13 @@ _gnutls_digest_set_secure(gnutls_digest_algorithm_t dig, unsigned int secure)
#ifndef DISABLE_SYSTEM_CONFIG
mac_entry_st *p;
- for(p = hash_algorithms; p->name != NULL; p++) {
- if (p->oid != NULL && p->id == (gnutls_mac_algorithm_t)dig) {
- if (!(p->flags & GNUTLS_MAC_FLAG_PREIMAGE_INSECURE_REVERTIBLE)) {
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ for (p = hash_algorithms; p->name != NULL; p++) {
+ if (p->oid != NULL && p->id == (gnutls_mac_algorithm_t) dig) {
+ if (!
+ (p->flags &
+ GNUTLS_MAC_FLAG_PREIMAGE_INSECURE_REVERTIBLE)) {
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
if (secure) {
p->flags &= ~GNUTLS_MAC_FLAG_PREIMAGE_INSECURE;
@@ -350,8 +344,8 @@ unsigned _gnutls_digest_is_insecure(gnutls_digest_algorithm_t dig)
{
const mac_entry_st *p;
- for(p = hash_algorithms; p->name != NULL; p++) {
- if (p->oid != NULL && p->id == (gnutls_mac_algorithm_t)dig) {
+ for (p = hash_algorithms; p->name != NULL; p++) {
+ if (p->oid != NULL && p->id == (gnutls_mac_algorithm_t) dig) {
return p->flags & GNUTLS_MAC_FLAG_PREIMAGE_INSECURE;
}
}
@@ -359,15 +353,17 @@ unsigned _gnutls_digest_is_insecure(gnutls_digest_algorithm_t dig)
return 1;
}
-bool _gnutls_digest_is_insecure2(gnutls_digest_algorithm_t dig, unsigned flags)
+bool _gnutls_digest_is_insecure2(gnutls_digest_algorithm_t dig, unsigned flags)
{
const mac_entry_st *p;
- for(p = hash_algorithms; p->name != NULL; p++) {
- if (p->oid != NULL && p->id == (gnutls_mac_algorithm_t)dig) {
+ for (p = hash_algorithms; p->name != NULL; p++) {
+ if (p->oid != NULL && p->id == (gnutls_mac_algorithm_t) dig) {
return (p->flags & GNUTLS_MAC_FLAG_PREIMAGE_INSECURE &&
- !(flags & GNUTLS_MAC_FLAG_ALLOW_INSECURE_REVERTIBLE &&
- p->flags & GNUTLS_MAC_FLAG_PREIMAGE_INSECURE_REVERTIBLE));
+ !(flags &
+ GNUTLS_MAC_FLAG_ALLOW_INSECURE_REVERTIBLE
+ && p->flags &
+ GNUTLS_MAC_FLAG_PREIMAGE_INSECURE_REVERTIBLE));
}
}
@@ -388,13 +384,10 @@ gnutls_mac_algorithm_t gnutls_mac_get_id(const char *name)
{
gnutls_mac_algorithm_t ret = GNUTLS_MAC_UNKNOWN;
- GNUTLS_HASH_LOOP(
- if (c_strcasecmp(p->name, name) == 0) {
- if (p->placeholder != 0 || _gnutls_mac_exists(p->id))
- ret = p->id;
- break;
- }
- );
+ GNUTLS_HASH_LOOP(if (c_strcasecmp(p->name, name) == 0) {
+ if (p->placeholder != 0 || _gnutls_mac_exists(p->id))
+ ret = p->id; break;}
+ ) ;
return ret;
}
@@ -455,10 +448,10 @@ const gnutls_mac_algorithm_t *gnutls_mac_list(void)
if (supported_macs[0] == 0) {
int i = 0;
- GNUTLS_HASH_LOOP(
- if (p->placeholder != 0 || _gnutls_mac_exists(p->id))
- supported_macs[i++] = p->id;
- );
+ GNUTLS_HASH_LOOP(if
+ (p->placeholder != 0
+ || _gnutls_mac_exists(p->id))
+ supported_macs[i++] = p->id;) ;
supported_macs[i++] = 0;
}
@@ -477,19 +470,18 @@ const gnutls_mac_algorithm_t *gnutls_mac_list(void)
**/
const gnutls_digest_algorithm_t *gnutls_digest_list(void)
{
- static gnutls_digest_algorithm_t supported_digests[MAX_ALGOS] =
- { 0 };
+ static gnutls_digest_algorithm_t supported_digests[MAX_ALGOS] = { 0 };
if (supported_digests[0] == 0) {
int i = 0;
- GNUTLS_HASH_LOOP(
- if (p->oid != NULL && (p->placeholder != 0 ||
- _gnutls_mac_exists(p->id))) {
+ GNUTLS_HASH_LOOP(if (p->oid != NULL && (p->placeholder != 0 ||
+ _gnutls_mac_exists
+ (p->id))) {
- supported_digests[i++] = (gnutls_digest_algorithm_t)p->id;
- }
- );
+ supported_digests[i++] =
+ (gnutls_digest_algorithm_t) p->id;}
+ ) ;
supported_digests[i++] = 0;
}
@@ -509,14 +501,12 @@ const gnutls_digest_algorithm_t *gnutls_digest_list(void)
**/
gnutls_digest_algorithm_t gnutls_oid_to_digest(const char *oid)
{
- GNUTLS_HASH_LOOP(
- if (p->oid && strcmp(oid, p->oid) == 0) {
- if (_gnutls_digest_exists((gnutls_digest_algorithm_t)p->id)) {
- return (gnutls_digest_algorithm_t) p->id;
- }
- break;
- }
- );
+ GNUTLS_HASH_LOOP(if (p->oid && strcmp(oid, p->oid) == 0) {
+ if (_gnutls_digest_exists
+ ((gnutls_digest_algorithm_t) p->id)) {
+ return (gnutls_digest_algorithm_t) p->id;}
+ break;}
+ ) ;
return GNUTLS_DIG_UNKNOWN;
}
@@ -534,14 +524,11 @@ gnutls_digest_algorithm_t gnutls_oid_to_digest(const char *oid)
**/
gnutls_mac_algorithm_t gnutls_oid_to_mac(const char *oid)
{
- GNUTLS_HASH_LOOP(
- if (p->mac_oid && strcmp(oid, p->mac_oid) == 0) {
- if (_gnutls_mac_exists(p->id)) {
- return p->id;
- }
- break;
- }
- );
+ GNUTLS_HASH_LOOP(if (p->mac_oid && strcmp(oid, p->mac_oid) == 0) {
+ if (_gnutls_mac_exists(p->id)) {
+ return p->id;}
+ break;}
+ ) ;
return GNUTLS_MAC_UNKNOWN;
}
@@ -559,11 +546,9 @@ gnutls_mac_algorithm_t gnutls_oid_to_mac(const char *oid)
**/
const char *gnutls_digest_get_oid(gnutls_digest_algorithm_t algorithm)
{
- GNUTLS_HASH_LOOP(
- if (algorithm == (unsigned) p->id && p->oid != NULL) {
- return p->oid;
- }
- );
+ GNUTLS_HASH_LOOP(if (algorithm == (unsigned)p->id && p->oid != NULL) {
+ return p->oid;}
+ ) ;
return NULL;
}
diff --git a/lib/algorithms/protocols.c b/lib/algorithms/protocols.c
index a4fd4837cd..d3f5398857 100644
--- a/lib/algorithms/protocols.c
+++ b/lib/algorithms/protocols.c
@@ -28,8 +28,7 @@
/* TLS Versions */
-static SYSTEM_CONFIG_OR_CONST
-version_entry_st sup_versions[] = {
+static SYSTEM_CONFIG_OR_CONST version_entry_st sup_versions[] = {
{.name = "SSL3.0",
.id = GNUTLS_SSL3,
.age = 0,
@@ -46,8 +45,7 @@ version_entry_st sup_versions[] = {
.obsolete = 1,
.only_extension = 0,
.tls_sig_sem = SIG_SEM_PRE_TLS12,
- .false_start = 0
- },
+ .false_start = 0},
{.name = "TLS1.0",
.id = GNUTLS_TLS1,
.age = 1,
@@ -62,8 +60,7 @@ version_entry_st sup_versions[] = {
.obsolete = 0,
.only_extension = 0,
.tls_sig_sem = SIG_SEM_PRE_TLS12,
- .false_start = 0
- },
+ .false_start = 0},
{.name = "TLS1.1",
.id = GNUTLS_TLS1_1,
.age = 2,
@@ -78,8 +75,7 @@ version_entry_st sup_versions[] = {
.obsolete = 0,
.only_extension = 0,
.tls_sig_sem = SIG_SEM_PRE_TLS12,
- .false_start = 0
- },
+ .false_start = 0},
{.name = "TLS1.2",
.id = GNUTLS_TLS1_2,
.age = 3,
@@ -94,8 +90,7 @@ version_entry_st sup_versions[] = {
.obsolete = 0,
.only_extension = 0,
.tls_sig_sem = SIG_SEM_PRE_TLS12,
- .false_start = 1
- },
+ .false_start = 1},
{.name = "TLS1.3",
.id = GNUTLS_TLS1_3,
.age = 5,
@@ -113,10 +108,9 @@ version_entry_st sup_versions[] = {
.post_handshake_auth = 1,
.multi_ocsp = 1,
.key_shares = 1,
- .false_start = 0, /* doesn't make sense */
- .tls_sig_sem = SIG_SEM_TLS13
- },
- {.name = "DTLS0.9", /* Cisco AnyConnect (based on about OpenSSL 0.9.8e) */
+ .false_start = 0, /* doesn't make sense */
+ .tls_sig_sem = SIG_SEM_TLS13},
+ {.name = "DTLS0.9", /* Cisco AnyConnect (based on about OpenSSL 0.9.8e) */
.id = GNUTLS_DTLS0_9,
.age = 200,
.major = 1,
@@ -130,8 +124,7 @@ version_entry_st sup_versions[] = {
.obsolete = 0,
.only_extension = 0,
.tls_sig_sem = SIG_SEM_PRE_TLS12,
- .false_start = 0
- },
+ .false_start = 0},
{.name = "DTLS1.0",
.id = GNUTLS_DTLS1_0,
.age = 201,
@@ -146,8 +139,7 @@ version_entry_st sup_versions[] = {
.obsolete = 0,
.only_extension = 0,
.tls_sig_sem = SIG_SEM_PRE_TLS12,
- .false_start = 0
- },
+ .false_start = 0},
{.name = "DTLS1.2",
.id = GNUTLS_DTLS1_2,
.age = 202,
@@ -162,8 +154,7 @@ version_entry_st sup_versions[] = {
.obsolete = 0,
.only_extension = 0,
.tls_sig_sem = SIG_SEM_PRE_TLS12,
- .false_start = 1
- },
+ .false_start = 1},
{0, 0, 0, 0, 0}
};
@@ -183,16 +174,17 @@ const version_entry_st *nversion_to_entry(uint8_t major, uint8_t minor)
for (p = sup_versions; p->name != NULL; p++) {
if ((p->major == major) && (p->minor == minor))
- return p;
+ return p;
}
return NULL;
}
static int
version_is_valid_for_session(gnutls_session_t session,
- const version_entry_st *v)
+ const version_entry_st * v)
{
- if (!v->supported && !(v->supported_revertible && _gnutls_allowlisting_mode()))
+ if (!v->supported
+ && !(v->supported_revertible && _gnutls_allowlisting_mode()))
return 0;
if (v->transport != session->internals.transport)
return 0;
@@ -210,7 +202,6 @@ int _gnutls_version_mark_disabled(gnutls_protocol_t version)
p->supported = false;
return 0;
}
-
#endif
return GNUTLS_E_INVALID_REQUEST;
}
@@ -229,8 +220,7 @@ void _gnutls_version_mark_disabled_all(void)
}
int
-_gnutls_protocol_set_enabled(gnutls_protocol_t version,
- unsigned int enabled)
+_gnutls_protocol_set_enabled(gnutls_protocol_t version, unsigned int enabled)
{
#ifndef DISABLE_SYSTEM_CONFIG
version_entry_st *p;
@@ -238,20 +228,19 @@ _gnutls_protocol_set_enabled(gnutls_protocol_t version,
for (p = sup_versions; p->name != NULL; p++)
if (p->id == version) {
if (!p->supported_revertible) {
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
p->supported = enabled;
return 0;
}
-
#endif
return GNUTLS_E_INVALID_REQUEST;
}
/* Return the priority of the provided version number */
int
-_gnutls_version_priority(gnutls_session_t session,
- gnutls_protocol_t version)
+_gnutls_version_priority(gnutls_session_t session, gnutls_protocol_t version)
{
unsigned int i;
@@ -273,7 +262,8 @@ const version_entry_st *_gnutls_version_lowest(gnutls_session_t session)
const version_entry_st *v, *min_v = NULL;
const version_entry_st *backup = NULL;
- for (i=0;i < session->internals.priorities->protocol.num_priorities;i++) {
+ for (i = 0; i < session->internals.priorities->protocol.num_priorities;
+ i++) {
cur_prot =
session->internals.priorities->protocol.priorities[i];
v = version_to_entry(cur_prot);
@@ -315,19 +305,24 @@ const version_entry_st *_gnutls_version_max(gnutls_session_t session)
session->internals.priorities->protocol.priorities[i];
for (p = sup_versions; p->name != NULL; p++) {
- if(p->id == cur_prot) {
+ if (p->id == cur_prot) {
#ifndef ENABLE_SSL3
if (p->obsolete != 0)
break;
#endif
- if (!p->supported && !(p->supported_revertible && _gnutls_allowlisting_mode()))
+ if (!p->supported
+ && !(p->supported_revertible
+ && _gnutls_allowlisting_mode()))
break;
- if (p->transport != session->internals.transport)
+ if (p->transport !=
+ session->internals.transport)
break;
- if (p->tls13_sem && (session->internals.flags & INT_FLAG_NO_TLS13))
- break;
+ if (p->tls13_sem
+ && (session->
+ internals.flags & INT_FLAG_NO_TLS13))
+ break;
if (max == NULL || cur_prot > max->id) {
max = p;
@@ -361,7 +356,8 @@ const version_entry_st *_gnutls_legacy_version_max(gnutls_session_t session)
* error code. It will return GNUTLS_E_UNSUPPORTED_VERSION_PACKET
* if there is no version >= TLS 1.3.
*/
-int _gnutls_write_supported_versions(gnutls_session_t session, uint8_t *buffer, ssize_t buffer_size)
+int _gnutls_write_supported_versions(gnutls_session_t session, uint8_t * buffer,
+ ssize_t buffer_size)
{
gnutls_protocol_t cur_prot;
size_t written_bytes = 0;
@@ -369,26 +365,32 @@ int _gnutls_write_supported_versions(gnutls_session_t session, uint8_t *buffer,
unsigned i;
const version_entry_st *p;
- for (i = 0; i < session->internals.priorities->protocol.num_priorities; i++) {
+ for (i = 0; i < session->internals.priorities->protocol.num_priorities;
+ i++) {
cur_prot =
session->internals.priorities->protocol.priorities[i];
for (p = sup_versions; p->name != NULL; p++) {
- if(p->id == cur_prot) {
+ if (p->id == cur_prot) {
if (p->obsolete != 0)
break;
- if (!p->supported && !(p->supported_revertible && _gnutls_allowlisting_mode()))
+ if (!p->supported
+ && !(p->supported_revertible
+ && _gnutls_allowlisting_mode()))
break;
- if (p->transport != session->internals.transport)
+ if (p->transport !=
+ session->internals.transport)
break;
if (p->only_extension)
at_least_one_new = 1;
if (buffer_size > 2) {
- _gnutls_debug_log("Advertizing version %d.%d\n", (int)p->major, (int)p->minor);
+ _gnutls_debug_log
+ ("Advertizing version %d.%d\n",
+ (int)p->major, (int)p->minor);
buffer[0] = p->major;
buffer[1] = p->minor;
written_bytes += 2;
@@ -417,12 +419,13 @@ int _gnutls_write_supported_versions(gnutls_session_t session, uint8_t *buffer,
/* Returns true (1) if the given version is higher than the highest supported
* and (0) otherwise */
-unsigned _gnutls_version_is_too_high(gnutls_session_t session, uint8_t major, uint8_t minor)
+unsigned _gnutls_version_is_too_high(gnutls_session_t session, uint8_t major,
+ uint8_t minor)
{
const version_entry_st *e;
e = _gnutls_legacy_version_max(session);
- if (e == NULL) /* we don't know; but that means something is unconfigured */
+ if (e == NULL) /* we don't know; but that means something is unconfigured */
return 1;
if (e->transport == GNUTLS_DGRAM) {
@@ -557,14 +560,18 @@ _gnutls_nversion_is_supported(gnutls_session_t session,
int version = 0;
for (p = sup_versions; p->name != NULL; p++) {
- if(p->major == major && p->minor == minor) {
+ if (p->major == major && p->minor == minor) {
#ifndef ENABLE_SSL3
- if (p->obsolete != 0) return 0;
+ if (p->obsolete != 0)
+ return 0;
#endif
- if (p->tls13_sem && (session->internals.flags & INT_FLAG_NO_TLS13))
+ if (p->tls13_sem
+ && (session->internals.flags & INT_FLAG_NO_TLS13))
return 0;
- if (!p->supported && !(p->supported_revertible && _gnutls_allowlisting_mode()))
+ if (!p->supported
+ && !(p->supported_revertible
+ && _gnutls_allowlisting_mode()))
return 0;
if (p->transport != session->internals.transport)
diff --git a/lib/algorithms/publickey.c b/lib/algorithms/publickey.c
index caf53972ab..010fabd7d5 100644
--- a/lib/algorithms/publickey.c
+++ b/lib/algorithms/publickey.c
@@ -26,7 +26,6 @@
#include <x509/common.h>
#include "pk.h"
-
/* KX mappings to PK algorithms */
typedef struct {
gnutls_kx_algorithm_t kx_algorithm;
@@ -71,13 +70,16 @@ static const gnutls_pk_map pk_mappings[] = {
#define GNUTLS_PK_MAP_ALG_LOOP(a) \
GNUTLS_PK_MAP_LOOP( if(p->kx_algorithm == kx_algorithm) { a; break; })
-
unsigned
_gnutls_kx_supports_pk(gnutls_kx_algorithm_t kx_algorithm,
gnutls_pk_algorithm_t pk_algorithm)
{
- GNUTLS_PK_MAP_LOOP(if (p->kx_algorithm == kx_algorithm && p->pk_algorithm == pk_algorithm) { return 1; })
- return 0;
+ GNUTLS_PK_MAP_LOOP(if
+ (p->kx_algorithm == kx_algorithm
+ && p->pk_algorithm == pk_algorithm) {
+ return 1;}
+ )
+ return 0;
}
unsigned
@@ -87,13 +89,16 @@ _gnutls_kx_supports_pk_usage(gnutls_kx_algorithm_t kx_algorithm,
{
const gnutls_pk_map *p;
- for(p = pk_mappings; p->kx_algorithm != 0; p++) {
- if (p->kx_algorithm == kx_algorithm && p->pk_algorithm == pk_algorithm) {
+ for (p = pk_mappings; p->kx_algorithm != 0; p++) {
+ if (p->kx_algorithm == kx_algorithm
+ && p->pk_algorithm == pk_algorithm) {
if (key_usage == 0)
return 1;
- else if (p->encipher_type == CIPHER_SIGN && (key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE))
+ else if (p->encipher_type == CIPHER_SIGN
+ && (key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE))
return 1;
- else if (p->encipher_type == CIPHER_ENCRYPT && (key_usage & GNUTLS_KEY_KEY_ENCIPHERMENT))
+ else if (p->encipher_type == CIPHER_ENCRYPT
+ && (key_usage & GNUTLS_KEY_KEY_ENCIPHERMENT))
return 1;
else
return 0;
@@ -109,50 +114,57 @@ struct gnutls_pk_entry {
const char *name;
const char *oid;
gnutls_pk_algorithm_t id;
- gnutls_ecc_curve_t curve; /* to map PK to specific OID, we need to know the curve for EdDSA */
- bool no_prehashed; /* non-zero if the algorithm cannot sign pre-hashed data */
+ gnutls_ecc_curve_t curve; /* to map PK to specific OID, we need to know the curve for EdDSA */
+ bool no_prehashed; /* non-zero if the algorithm cannot sign pre-hashed data */
};
typedef struct gnutls_pk_entry gnutls_pk_entry;
static const gnutls_pk_entry pk_algorithms[] = {
/* having duplicate entries is ok, as long as the one
* we want to return OID from is first */
- { .name = "RSA", .oid = PK_PKIX1_RSA_OID, .id = GNUTLS_PK_RSA,
- .curve = GNUTLS_ECC_CURVE_INVALID },
- { .name = "RSA-PSS", .oid = PK_PKIX1_RSA_PSS_OID, .id = GNUTLS_PK_RSA_PSS,
- .curve = GNUTLS_ECC_CURVE_INVALID },
- { .name = "RSA (X.509)", .oid = PK_X509_RSA_OID, .id = GNUTLS_PK_RSA,
- .curve = GNUTLS_ECC_CURVE_INVALID }, /* some certificates use this OID for RSA */
- { .name = "RSA-MD5", .oid = SIG_RSA_MD5_OID, .id = GNUTLS_PK_RSA,
- .curve = GNUTLS_ECC_CURVE_INVALID }, /* some other broken certificates set RSA with MD5 as an indicator of RSA */
- { .name = "RSA-SHA1", .oid = SIG_RSA_SHA1_OID, .id = GNUTLS_PK_RSA,
- .curve = GNUTLS_ECC_CURVE_INVALID }, /* some other broken certificates set RSA with SHA1 as an indicator of RSA */
- { .name = "RSA-SHA1", .oid = ISO_SIG_RSA_SHA1_OID, .id = GNUTLS_PK_RSA,
- .curve = GNUTLS_ECC_CURVE_INVALID }, /* some other broken certificates set RSA with SHA1 as an indicator of RSA */
- { .name = "DSA", .oid = PK_DSA_OID, .id = GNUTLS_PK_DSA,
- .curve = GNUTLS_ECC_CURVE_INVALID },
- { .name = "GOST R 34.10-2012-512", .oid = PK_GOST_R3410_2012_512_OID, .id = GNUTLS_PK_GOST_12_512,
- .curve = GNUTLS_ECC_CURVE_INVALID },
- { .name = "GOST R 34.10-2012-256", .oid = PK_GOST_R3410_2012_256_OID, .id = GNUTLS_PK_GOST_12_256,
- .curve = GNUTLS_ECC_CURVE_INVALID },
- { .name = "GOST R 34.10-2001", .oid = PK_GOST_R3410_2001_OID, .id = GNUTLS_PK_GOST_01,
- .curve = GNUTLS_ECC_CURVE_INVALID },
- { .name = "GOST R 34.10-94", .oid = PK_GOST_R3410_94_OID, .id = GNUTLS_PK_UNKNOWN,
- .curve = GNUTLS_ECC_CURVE_INVALID },
- { .name = "EC/ECDSA", .oid = "1.2.840.10045.2.1", .id = GNUTLS_PK_ECDSA,
- .curve = GNUTLS_ECC_CURVE_INVALID },
- { .name = "EdDSA (Ed25519)", .oid = SIG_EDDSA_SHA512_OID, .id = GNUTLS_PK_EDDSA_ED25519,
- .curve = GNUTLS_ECC_CURVE_ED25519, .no_prehashed = 1 },
- { .name = "EdDSA (Ed448)", .oid = SIG_ED448_OID, .id = GNUTLS_PK_EDDSA_ED448,
- .curve = GNUTLS_ECC_CURVE_ED448, .no_prehashed = 1 },
- { .name = "DH", .oid = NULL, .id = GNUTLS_PK_DH,
- .curve = GNUTLS_ECC_CURVE_INVALID },
- { .name = "ECDH (X25519)", .oid = ECDH_X25519_OID, .id = GNUTLS_PK_ECDH_X25519,
- .curve = GNUTLS_ECC_CURVE_X25519 },
- { .name = "ECDH (X448)", .oid = ECDH_X448_OID, .id = GNUTLS_PK_ECDH_X448,
- .curve = GNUTLS_ECC_CURVE_X448 },
- { .name = "UNKNOWN", .oid = NULL, .id = GNUTLS_PK_UNKNOWN,
- .curve = GNUTLS_ECC_CURVE_INVALID },
+ {.name = "RSA",.oid = PK_PKIX1_RSA_OID,.id = GNUTLS_PK_RSA,
+ .curve = GNUTLS_ECC_CURVE_INVALID},
+ {.name = "RSA-PSS",.oid = PK_PKIX1_RSA_PSS_OID,.id = GNUTLS_PK_RSA_PSS,
+ .curve = GNUTLS_ECC_CURVE_INVALID},
+ {.name = "RSA (X.509)",.oid = PK_X509_RSA_OID,.id = GNUTLS_PK_RSA,
+ .curve = GNUTLS_ECC_CURVE_INVALID}, /* some certificates use this OID for RSA */
+ {.name = "RSA-MD5",.oid = SIG_RSA_MD5_OID,.id = GNUTLS_PK_RSA,
+ .curve = GNUTLS_ECC_CURVE_INVALID}, /* some other broken certificates set RSA with MD5 as an indicator of RSA */
+ {.name = "RSA-SHA1",.oid = SIG_RSA_SHA1_OID,.id = GNUTLS_PK_RSA,
+ .curve = GNUTLS_ECC_CURVE_INVALID}, /* some other broken certificates set RSA with SHA1 as an indicator of RSA */
+ {.name = "RSA-SHA1",.oid = ISO_SIG_RSA_SHA1_OID,.id = GNUTLS_PK_RSA,
+ .curve = GNUTLS_ECC_CURVE_INVALID}, /* some other broken certificates set RSA with SHA1 as an indicator of RSA */
+ {.name = "DSA",.oid = PK_DSA_OID,.id = GNUTLS_PK_DSA,
+ .curve = GNUTLS_ECC_CURVE_INVALID},
+ {.name = "GOST R 34.10-2012-512",.oid = PK_GOST_R3410_2012_512_OID,.id =
+ GNUTLS_PK_GOST_12_512,
+ .curve = GNUTLS_ECC_CURVE_INVALID},
+ {.name = "GOST R 34.10-2012-256",.oid = PK_GOST_R3410_2012_256_OID,.id =
+ GNUTLS_PK_GOST_12_256,
+ .curve = GNUTLS_ECC_CURVE_INVALID},
+ {.name = "GOST R 34.10-2001",.oid = PK_GOST_R3410_2001_OID,.id =
+ GNUTLS_PK_GOST_01,
+ .curve = GNUTLS_ECC_CURVE_INVALID},
+ {.name = "GOST R 34.10-94",.oid = PK_GOST_R3410_94_OID,.id =
+ GNUTLS_PK_UNKNOWN,
+ .curve = GNUTLS_ECC_CURVE_INVALID},
+ {.name = "EC/ECDSA",.oid = "1.2.840.10045.2.1",.id = GNUTLS_PK_ECDSA,
+ .curve = GNUTLS_ECC_CURVE_INVALID},
+ {.name = "EdDSA (Ed25519)",.oid = SIG_EDDSA_SHA512_OID,.id =
+ GNUTLS_PK_EDDSA_ED25519,
+ .curve = GNUTLS_ECC_CURVE_ED25519,.no_prehashed = 1},
+ {.name = "EdDSA (Ed448)",.oid = SIG_ED448_OID,.id =
+ GNUTLS_PK_EDDSA_ED448,
+ .curve = GNUTLS_ECC_CURVE_ED448,.no_prehashed = 1},
+ {.name = "DH",.oid = NULL,.id = GNUTLS_PK_DH,
+ .curve = GNUTLS_ECC_CURVE_INVALID},
+ {.name = "ECDH (X25519)",.oid = ECDH_X25519_OID,.id =
+ GNUTLS_PK_ECDH_X25519,
+ .curve = GNUTLS_ECC_CURVE_X25519},
+ {.name = "ECDH (X448)",.oid = ECDH_X448_OID,.id = GNUTLS_PK_ECDH_X448,
+ .curve = GNUTLS_ECC_CURVE_X448},
+ {.name = "UNKNOWN",.oid = NULL,.id = GNUTLS_PK_UNKNOWN,
+ .curve = GNUTLS_ECC_CURVE_INVALID},
{0, 0, 0, 0}
};
@@ -160,7 +172,6 @@ static const gnutls_pk_entry pk_algorithms[] = {
{ const gnutls_pk_entry *p; \
for(p = pk_algorithms; p->name != NULL; p++) { b ; } }
-
/**
* gnutls_pk_algorithm_get_name:
* @algorithm: is a pk algorithm
@@ -174,12 +185,9 @@ const char *gnutls_pk_algorithm_get_name(gnutls_pk_algorithm_t algorithm)
{
const char *ret = NULL;
- GNUTLS_PK_LOOP(
- if (p->id == algorithm) {
- ret = p->name;
- break;
- }
- );
+ GNUTLS_PK_LOOP(if (p->id == algorithm) {
+ ret = p->name; break;}
+ ) ;
return ret;
}
@@ -203,13 +211,11 @@ const gnutls_pk_algorithm_t *gnutls_pk_list(void)
if (supported_pks[0] == 0) {
int i = 0;
- GNUTLS_PK_LOOP(
- if (p->id != GNUTLS_PK_UNKNOWN &&
- supported_pks[i > 0 ? (i - 1) : 0] != p->id &&
- _gnutls_pk_exists(p->id)) {
- supported_pks[i++] = p->id;
- }
- );
+ GNUTLS_PK_LOOP(if (p->id != GNUTLS_PK_UNKNOWN &&
+ supported_pks[i > 0 ? (i - 1) : 0] != p->id
+ && _gnutls_pk_exists(p->id)) {
+ supported_pks[i++] = p->id;}
+ ) ;
supported_pks[i++] = 0;
}
@@ -354,7 +360,8 @@ const char *gnutls_pk_get_oid(gnutls_pk_algorithm_t algorithm)
*
* Since: 3.6.0
-*/
-gnutls_pk_algorithm_t _gnutls_oid_to_pk_and_curve(const char *oid, gnutls_ecc_curve_t *curve)
+gnutls_pk_algorithm_t _gnutls_oid_to_pk_and_curve(const char *oid,
+ gnutls_ecc_curve_t * curve)
{
gnutls_pk_algorithm_t ret = GNUTLS_PK_UNKNOWN;
const gnutls_pk_entry *p;
@@ -378,13 +385,11 @@ gnutls_pk_algorithm_t _gnutls_oid_to_pk_and_curve(const char *oid, gnutls_ecc_cu
*
* ex. GNUTLS_KX_RSA requires a certificate able to encrypt... so returns CIPHER_ENCRYPT.
*/
-enum encipher_type
-_gnutls_kx_encipher_type(gnutls_kx_algorithm_t kx_algorithm)
+enum encipher_type _gnutls_kx_encipher_type(gnutls_kx_algorithm_t kx_algorithm)
{
int ret = CIPHER_IGN;
GNUTLS_PK_MAP_ALG_LOOP(ret = p->encipher_type)
-
- return ret;
+ return ret;
}
diff --git a/lib/algorithms/secparams.c b/lib/algorithms/secparams.c
index 09424bada7..60fa9d38f5 100644
--- a/lib/algorithms/secparams.c
+++ b/lib/algorithms/secparams.c
@@ -48,7 +48,7 @@ static const gnutls_sec_params_entry sec_params[] = {
{"Medium", GNUTLS_SEC_PARAM_MEDIUM, 112, 2048, 2048, 224, 224},
{"High", GNUTLS_SEC_PARAM_HIGH, 128, 3072, 3072, 256, 256},
#else
- {"Low", GNUTLS_SEC_PARAM_LOW, 80, 1024, 1024, 160, 160}, /* ENISA-LEGACY */
+ {"Low", GNUTLS_SEC_PARAM_LOW, 80, 1024, 1024, 160, 160}, /* ENISA-LEGACY */
{"Legacy", GNUTLS_SEC_PARAM_LEGACY, 96, 1776, 2048, 192, 192},
{"Medium", GNUTLS_SEC_PARAM_MEDIUM, 112, 2048, 2048, 256, 224},
{"High", GNUTLS_SEC_PARAM_HIGH, 128, 3072, 3072, 256, 256},
@@ -108,8 +108,7 @@ gnutls_sec_param_to_pk_bits(gnutls_pk_algorithm_t algo,
*
* Since: 3.3.0
**/
-unsigned int
-gnutls_sec_param_to_symmetric_bits(gnutls_sec_param_t param)
+unsigned int gnutls_sec_param_to_symmetric_bits(gnutls_sec_param_t param)
{
unsigned int ret = 0;
const gnutls_sec_params_entry *p;
@@ -220,7 +219,7 @@ gnutls_pk_bits_to_sec_param(gnutls_pk_algorithm_t algo, unsigned int bits)
} else {
for (p = sec_params; p->name; p++) {
if (p->pk_bits > bits)
- break;
+ break;
ret = p->sec_param;
}
}
diff --git a/lib/algorithms/sign.c b/lib/algorithms/sign.c
index 06e2839631..7f0e6ae934 100644
--- a/lib/algorithms/sign.c
+++ b/lib/algorithms/sign.c
@@ -38,11 +38,10 @@
# define SHA1_SECURE_VAL _INSECURE_FOR_CERTS
#endif
-static SYSTEM_CONFIG_OR_CONST
-gnutls_sign_entry_st sign_algorithms[] = {
- /* RSA-PKCS#1 1.5: must be before PSS,
- * so that gnutls_pk_to_sign() will return
- * these first for backwards compatibility. */
+static SYSTEM_CONFIG_OR_CONST gnutls_sign_entry_st sign_algorithms[] = {
+ /* RSA-PKCS#1 1.5: must be before PSS,
+ * so that gnutls_pk_to_sign() will return
+ * these first for backwards compatibility. */
{.name = "RSA-SHA256",
.oid = SIG_RSA_SHA256_OID,
.id = GNUTLS_SIGN_RSA_SHA256,
@@ -67,7 +66,7 @@ gnutls_sign_entry_st sign_algorithms[] = {
.oid = PK_PKIX1_RSA_PSS_OID,
.id = GNUTLS_SIGN_RSA_PSS_SHA256,
.pk = GNUTLS_PK_RSA_PSS,
- .priv_pk = GNUTLS_PK_RSA, /* PKCS#11 doesn't separate RSA from RSA-PSS privkeys */
+ .priv_pk = GNUTLS_PK_RSA, /* PKCS#11 doesn't separate RSA from RSA-PSS privkeys */
.hash = GNUTLS_DIG_SHA256,
.flags = GNUTLS_SIGN_FLAG_TLS13_OK,
.aid = {{8, 9}, SIG_SEM_DEFAULT}},
@@ -115,10 +114,10 @@ gnutls_sign_entry_st sign_algorithms[] = {
.flags = GNUTLS_SIGN_FLAG_TLS13_OK,
.aid = {{8, 6}, SIG_SEM_DEFAULT}},
- /* Ed25519: The hash algorithm here is set to be SHA512, although that is
- * an internal detail of Ed25519; we set it, because CMS/PKCS#7 requires
- * that mapping. */
- {.name = "EdDSA-Ed25519",
+ /* Ed25519: The hash algorithm here is set to be SHA512, although that is
+ * an internal detail of Ed25519; we set it, because CMS/PKCS#7 requires
+ * that mapping. */
+ {.name = "EdDSA-Ed25519",
.oid = SIG_EDDSA_SHA512_OID,
.id = GNUTLS_SIGN_EDDSA_ED25519,
.pk = GNUTLS_PK_EDDSA_ED25519,
@@ -126,10 +125,10 @@ gnutls_sign_entry_st sign_algorithms[] = {
.flags = GNUTLS_SIGN_FLAG_TLS13_OK,
.aid = {{8, 7}, SIG_SEM_DEFAULT}},
- /* Ed448: The hash algorithm here is set to be SHAKE256, although that is
- * an internal detail of Ed448; we set it, because CMS/PKCS#7 requires
- * that mapping. */
- {.name = "EdDSA-Ed448",
+ /* Ed448: The hash algorithm here is set to be SHAKE256, although that is
+ * an internal detail of Ed448; we set it, because CMS/PKCS#7 requires
+ * that mapping. */
+ {.name = "EdDSA-Ed448",
.oid = SIG_ED448_OID,
.id = GNUTLS_SIGN_EDDSA_ED448,
.pk = GNUTLS_PK_EDDSA_ED448,
@@ -138,16 +137,16 @@ gnutls_sign_entry_st sign_algorithms[] = {
.aid = {{8, 8}, SIG_SEM_DEFAULT},
.hash_output_size = 114},
- /* ECDSA */
- /* The following three signature algorithms
- * have different semantics when used under TLS 1.2
- * or TLS 1.3. Under the former they behave as the
- * as ECDSA signed by SHAXXX by any curve, but under the
- * latter they are restricted to a single curve.
- * For this reason the ECDSA-SHAXXX algorithms act
- * as an alias to them. */
- /* we have intentionally the ECDSA-SHAXXX algorithms first
- * so that gnutls_pk_to_sign() will return these. */
+ /* ECDSA */
+ /* The following three signature algorithms
+ * have different semantics when used under TLS 1.2
+ * or TLS 1.3. Under the former they behave as the
+ * as ECDSA signed by SHAXXX by any curve, but under the
+ * latter they are restricted to a single curve.
+ * For this reason the ECDSA-SHAXXX algorithms act
+ * as an alias to them. */
+ /* we have intentionally the ECDSA-SHAXXX algorithms first
+ * so that gnutls_pk_to_sign() will return these. */
{.name = "ECDSA-SHA256",
.oid = "1.2.840.10045.4.3.2",
.id = GNUTLS_SIGN_ECDSA_SHA256,
@@ -189,7 +188,7 @@ gnutls_sign_entry_st sign_algorithms[] = {
.flags = GNUTLS_SIGN_FLAG_TLS13_OK,
.aid = {{6, 3}, SIG_SEM_TLS13}},
- /* ECDSA-SHA3 */
+ /* ECDSA-SHA3 */
{.name = "ECDSA-SHA3-224",
.oid = SIG_ECDSA_SHA3_224_OID,
.id = GNUTLS_SIGN_ECDSA_SHA3_224,
@@ -239,7 +238,7 @@ gnutls_sign_entry_st sign_algorithms[] = {
.hash = GNUTLS_DIG_SHA3_512,
.aid = TLS_SIGN_AID_UNKNOWN},
- /* DSA-SHA3 */
+ /* DSA-SHA3 */
{.name = "DSA-SHA3-224",
.oid = SIG_DSA_SHA3_224_OID,
.id = GNUTLS_SIGN_DSA_SHA3_224,
@@ -265,14 +264,13 @@ gnutls_sign_entry_st sign_algorithms[] = {
.hash = GNUTLS_DIG_SHA3_512,
.aid = TLS_SIGN_AID_UNKNOWN},
- /* legacy */
+ /* legacy */
{.name = "RSA-RAW",
.oid = NULL,
.id = GNUTLS_SIGN_RSA_RAW,
.pk = GNUTLS_PK_RSA,
.hash = GNUTLS_DIG_UNKNOWN,
- .aid = TLS_SIGN_AID_UNKNOWN
- },
+ .aid = TLS_SIGN_AID_UNKNOWN},
{.name = "RSA-SHA1",
.oid = SIG_RSA_SHA1_OID,
.id = GNUTLS_SIGN_RSA_SHA1,
@@ -452,25 +450,29 @@ unsigned gnutls_sign_is_secure(gnutls_sign_algorithm_t algorithm)
return gnutls_sign_is_secure2(algorithm, 0);
}
-bool _gnutls_sign_is_secure2(const gnutls_sign_entry_st *se, unsigned int flags)
+bool _gnutls_sign_is_secure2(const gnutls_sign_entry_st * se,
+ unsigned int flags)
{
if (se->hash != GNUTLS_DIG_UNKNOWN &&
_gnutls_digest_is_insecure2(se->hash,
- flags & GNUTLS_SIGN_FLAG_ALLOW_INSECURE_REVERTIBLE ?
- GNUTLS_MAC_FLAG_ALLOW_INSECURE_REVERTIBLE :
- 0)) {
+ flags &
+ GNUTLS_SIGN_FLAG_ALLOW_INSECURE_REVERTIBLE
+ ?
+ GNUTLS_MAC_FLAG_ALLOW_INSECURE_REVERTIBLE
+ : 0)) {
return gnutls_assert_val(false);
}
return (flags & GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS ?
se->slevel == _SECURE :
(se->slevel == _SECURE || se->slevel == _INSECURE_FOR_CERTS)) ||
- (flags & GNUTLS_SIGN_FLAG_ALLOW_INSECURE_REVERTIBLE &&
- se->flags & GNUTLS_SIGN_FLAG_INSECURE_REVERTIBLE);
+ (flags & GNUTLS_SIGN_FLAG_ALLOW_INSECURE_REVERTIBLE &&
+ se->flags & GNUTLS_SIGN_FLAG_INSECURE_REVERTIBLE);
}
/* This is only called by cfg_apply in priority.c, in blocklisting mode. */
-int _gnutls_sign_mark_insecure(gnutls_sign_algorithm_t sign, hash_security_level_t level)
+int _gnutls_sign_mark_insecure(gnutls_sign_algorithm_t sign,
+ hash_security_level_t level)
{
#ifndef DISABLE_SYSTEM_CONFIG
gnutls_sign_entry_st *p;
@@ -478,7 +480,7 @@ int _gnutls_sign_mark_insecure(gnutls_sign_algorithm_t sign, hash_security_level
if (unlikely(level == _SECURE))
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- for(p = sign_algorithms; p->name != NULL; p++) {
+ for (p = sign_algorithms; p->name != NULL; p++) {
if (p->id && p->id == sign) {
if (p->slevel < level)
p->slevel = level;
@@ -495,7 +497,7 @@ void _gnutls_sign_mark_insecure_all(hash_security_level_t level)
#ifndef DISABLE_SYSTEM_CONFIG
gnutls_sign_entry_st *p;
- for(p = sign_algorithms; p->name != NULL; p++) {
+ for (p = sign_algorithms; p->name != NULL; p++) {
if (p->slevel < level)
p->slevel = level;
p->flags |= GNUTLS_SIGN_FLAG_INSECURE_REVERTIBLE;
@@ -510,10 +512,11 @@ _gnutls_sign_set_secure(gnutls_sign_algorithm_t sign,
#ifndef DISABLE_SYSTEM_CONFIG
gnutls_sign_entry_st *p;
- for(p = sign_algorithms; p->name != NULL; p++) {
+ for (p = sign_algorithms; p->name != NULL; p++) {
if (p->id && p->id == sign) {
if (!(p->flags & GNUTLS_SIGN_FLAG_INSECURE_REVERTIBLE)) {
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
p->slevel = slevel;
return 0;
@@ -530,7 +533,8 @@ _gnutls_sign_set_secure(gnutls_sign_algorithm_t sign,
*
* Returns: Non-zero if the provided signature algorithm is considered to be secure.
**/
-unsigned gnutls_sign_is_secure2(gnutls_sign_algorithm_t algorithm, unsigned int flags)
+unsigned gnutls_sign_is_secure2(gnutls_sign_algorithm_t algorithm,
+ unsigned int flags)
{
const gnutls_sign_entry_st *se;
@@ -553,20 +557,19 @@ unsigned gnutls_sign_is_secure2(gnutls_sign_algorithm_t algorithm, unsigned int
**/
const gnutls_sign_algorithm_t *gnutls_sign_list(void)
{
- static gnutls_sign_algorithm_t supported_sign[MAX_ALGOS+1] = { 0 };
+ static gnutls_sign_algorithm_t supported_sign[MAX_ALGOS + 1] = { 0 };
if (supported_sign[0] == 0) {
int i = 0;
GNUTLS_SIGN_LOOP(
- /* list all algorithms, but not duplicates */
- if (supported_sign[i] != p->id &&
- _gnutls_pk_sign_exists(p->id)) {
- assert(i+1 < MAX_ALGOS);
- supported_sign[i++] = p->id;
- supported_sign[i+1] = 0;
- }
- );
+ /* list all algorithms, but not duplicates */
+ if (supported_sign[i] != p->id &&
+ _gnutls_pk_sign_exists(p->id)) {
+ assert(i + 1 < MAX_ALGOS);
+ supported_sign[i++] = p->id;
+ supported_sign[i + 1] = 0;}
+ ) ;
}
return supported_sign;
@@ -585,12 +588,9 @@ gnutls_sign_algorithm_t gnutls_sign_get_id(const char *name)
{
gnutls_sign_algorithm_t ret = GNUTLS_SIGN_UNKNOWN;
- GNUTLS_SIGN_LOOP(
- if (c_strcasecmp(p->name, name) == 0) {
- ret = p->id;
- break;
- }
- );
+ GNUTLS_SIGN_LOOP(if (c_strcasecmp(p->name, name) == 0) {
+ ret = p->id; break;}
+ ) ;
return ret;
@@ -598,11 +598,9 @@ gnutls_sign_algorithm_t gnutls_sign_get_id(const char *name)
const gnutls_sign_entry_st *_gnutls_oid_to_sign_entry(const char *oid)
{
- GNUTLS_SIGN_LOOP(
- if (p->oid && strcmp(oid, p->oid) == 0) {
- return p;
- }
- );
+ GNUTLS_SIGN_LOOP(if (p->oid && strcmp(oid, p->oid) == 0) {
+ return p;}
+ ) ;
return NULL;
}
@@ -629,13 +627,13 @@ gnutls_sign_algorithm_t gnutls_oid_to_sign(const char *oid)
return se->id;
}
-const gnutls_sign_entry_st *_gnutls_pk_to_sign_entry(gnutls_pk_algorithm_t pk, gnutls_digest_algorithm_t hash)
+const gnutls_sign_entry_st *_gnutls_pk_to_sign_entry(gnutls_pk_algorithm_t pk,
+ gnutls_digest_algorithm_t
+ hash)
{
- GNUTLS_SIGN_LOOP(
- if (pk == p->pk && hash == p->hash) {
- return p;
- }
- );
+ GNUTLS_SIGN_LOOP(if (pk == p->pk && hash == p->hash) {
+ return p;}
+ ) ;
return NULL;
}
@@ -715,8 +713,7 @@ gnutls_sign_get_hash_algorithm(gnutls_sign_algorithm_t sign)
*
* Returns: return a #gnutls_pk_algorithm_t value, or %GNUTLS_PK_UNKNOWN on error.
**/
-gnutls_pk_algorithm_t
-gnutls_sign_get_pk_algorithm(gnutls_sign_algorithm_t sign)
+gnutls_pk_algorithm_t gnutls_sign_get_pk_algorithm(gnutls_sign_algorithm_t sign)
{
gnutls_pk_algorithm_t ret = GNUTLS_PK_UNKNOWN;
@@ -739,12 +736,13 @@ gnutls_sign_get_pk_algorithm(gnutls_sign_algorithm_t sign)
* Returns: return non-zero when the provided algorithms are compatible.
**/
unsigned
-gnutls_sign_supports_pk_algorithm(gnutls_sign_algorithm_t sign, gnutls_pk_algorithm_t pk)
+gnutls_sign_supports_pk_algorithm(gnutls_sign_algorithm_t sign,
+ gnutls_pk_algorithm_t pk)
{
const gnutls_sign_entry_st *p;
unsigned r;
- for(p = sign_algorithms; p->name != NULL; p++) {
+ for (p = sign_algorithms; p->name != NULL; p++) {
if (p->id && p->id == sign) {
r = sign_supports_priv_pk_algorithm(p, pk);
if (r != 0)
@@ -756,30 +754,26 @@ gnutls_sign_supports_pk_algorithm(gnutls_sign_algorithm_t sign, gnutls_pk_algori
}
gnutls_sign_algorithm_t
-_gnutls_tls_aid_to_sign(uint8_t id0, uint8_t id1, const version_entry_st *ver)
+_gnutls_tls_aid_to_sign(uint8_t id0, uint8_t id1, const version_entry_st * ver)
{
gnutls_sign_algorithm_t ret = GNUTLS_SIGN_UNKNOWN;
if (id0 == 255 && id1 == 255)
return ret;
- GNUTLS_SIGN_LOOP(
- if (p->aid.id[0] == id0 &&
- p->aid.id[1] == id1 &&
- ((p->aid.tls_sem & ver->tls_sig_sem) != 0)) {
+ GNUTLS_SIGN_LOOP(if (p->aid.id[0] == id0 &&
+ p->aid.id[1] == id1 &&
+ ((p->aid.tls_sem & ver->tls_sig_sem) != 0)) {
- ret = p->id;
- break;
- }
- );
+ ret = p->id; break;}
+ ) ;
return ret;
}
/* Returns NULL if a valid AID is not found
*/
-const sign_algorithm_st *_gnutls_sign_to_tls_aid(gnutls_sign_algorithm_t
- sign)
+const sign_algorithm_st *_gnutls_sign_to_tls_aid(gnutls_sign_algorithm_t sign)
{
const sign_algorithm_st *ret = NULL;
@@ -800,39 +794,37 @@ const gnutls_sign_entry_st *_gnutls_sign_to_entry(gnutls_sign_algorithm_t sign)
return ret;
}
-const gnutls_sign_entry_st *
-_gnutls_tls_aid_to_sign_entry(uint8_t id0, uint8_t id1, const version_entry_st *ver)
+const gnutls_sign_entry_st *_gnutls_tls_aid_to_sign_entry(uint8_t id0,
+ uint8_t id1,
+ const version_entry_st
+ * ver)
{
if (id0 == 255 && id1 == 255)
return NULL;
- GNUTLS_SIGN_LOOP(
- if (p->aid.id[0] == id0 &&
- p->aid.id[1] == id1 &&
- ((p->aid.tls_sem & ver->tls_sig_sem) != 0)) {
+ GNUTLS_SIGN_LOOP(if (p->aid.id[0] == id0 &&
+ p->aid.id[1] == id1 &&
+ ((p->aid.tls_sem & ver->tls_sig_sem) != 0)) {
- return p;
- }
- );
+ return p;}
+ ) ;
return NULL;
}
-const gnutls_sign_entry_st *
-_gnutls13_sign_get_compatible_with_privkey(gnutls_privkey_t privkey)
+const gnutls_sign_entry_st
+ * _gnutls13_sign_get_compatible_with_privkey(gnutls_privkey_t privkey)
{
- GNUTLS_SIGN_LOOP(
- if ((p->flags & GNUTLS_SIGN_FLAG_TLS13_OK) &&
- _gnutls_privkey_compatible_with_sig(privkey, p->id)) {
- return p;
- }
- );
+ GNUTLS_SIGN_LOOP(if ((p->flags & GNUTLS_SIGN_FLAG_TLS13_OK) &&
+ _gnutls_privkey_compatible_with_sig(privkey,
+ p->id)) {
+ return p;}
+ ) ;
return NULL;
}
-unsigned
-_gnutls_sign_get_hash_strength(gnutls_sign_algorithm_t sign)
+unsigned _gnutls_sign_get_hash_strength(gnutls_sign_algorithm_t sign)
{
const gnutls_sign_entry_st *se = _gnutls_sign_to_entry(sign);
const mac_entry_st *me;
@@ -851,9 +843,9 @@ _gnutls_sign_get_hash_strength(gnutls_sign_algorithm_t sign)
hash_output_size = _gnutls_mac_get_algo_len(me);
if (me->id == GNUTLS_MAC_SHAKE_128)
- return MIN(hash_output_size*8/2, 128);
+ return MIN(hash_output_size * 8 / 2, 128);
else if (me->id == GNUTLS_MAC_SHAKE_256)
- return MIN(hash_output_size*8/2, 256);
+ return MIN(hash_output_size * 8 / 2, 256);
- return hash_output_size*8/2;
+ return hash_output_size * 8 / 2;
}
diff --git a/lib/anon_cred.c b/lib/anon_cred.c
index 49c273a83b..851b1643c4 100644
--- a/lib/anon_cred.c
+++ b/lib/anon_cred.c
@@ -24,12 +24,12 @@
#ifdef ENABLE_ANON
-#include "errors.h"
-#include <auth/anon.h>
-#include "auth.h"
-#include "dh.h"
-#include "num.h"
-#include "mpi.h"
+# include "errors.h"
+# include <auth/anon.h>
+# include "auth.h"
+# include "dh.h"
+# include "num.h"
+# include "mpi.h"
/**
* gnutls_anon_free_server_credentials:
@@ -37,8 +37,7 @@
*
* Free a gnutls_anon_server_credentials_t structure.
**/
-void
-gnutls_anon_free_server_credentials(gnutls_anon_server_credentials_t sc)
+void gnutls_anon_free_server_credentials(gnutls_anon_server_credentials_t sc)
{
if (sc->deinit_dh_params) {
gnutls_dh_params_deinit(sc->dh_params);
@@ -55,8 +54,7 @@ gnutls_anon_free_server_credentials(gnutls_anon_server_credentials_t sc)
* Returns: %GNUTLS_E_SUCCESS on success, or an error code.
**/
int
-gnutls_anon_allocate_server_credentials(gnutls_anon_server_credentials_t *
- sc)
+gnutls_anon_allocate_server_credentials(gnutls_anon_server_credentials_t * sc)
{
*sc = gnutls_calloc(1, sizeof(anon_server_credentials_st));
@@ -64,21 +62,18 @@ gnutls_anon_allocate_server_credentials(gnutls_anon_server_credentials_t *
return 0;
}
-
/**
* gnutls_anon_free_client_credentials:
* @sc: is a #gnutls_anon_client_credentials_t type.
*
* Free a gnutls_anon_client_credentials_t structure.
**/
-void
-gnutls_anon_free_client_credentials(gnutls_anon_client_credentials_t sc)
+void gnutls_anon_free_client_credentials(gnutls_anon_client_credentials_t sc)
{
}
static struct gnutls_anon_client_credentials_st anon_dummy_struct;
-static const gnutls_anon_client_credentials_t anon_dummy =
- &anon_dummy_struct;
+static const gnutls_anon_client_credentials_t anon_dummy = &anon_dummy_struct;
/**
* gnutls_anon_allocate_client_credentials:
@@ -89,8 +84,7 @@ static const gnutls_anon_client_credentials_t anon_dummy =
* Returns: %GNUTLS_E_SUCCESS on success, or an error code.
**/
int
-gnutls_anon_allocate_client_credentials(gnutls_anon_client_credentials_t *
- sc)
+gnutls_anon_allocate_client_credentials(gnutls_anon_client_credentials_t * sc)
{
/* anon_dummy is only there for *sc not to be null.
* it is not used at all;
@@ -124,7 +118,10 @@ gnutls_anon_set_server_dh_params(gnutls_anon_server_credentials_t res,
}
res->dh_params = dh_params;
- res->dh_sec_param = gnutls_pk_bits_to_sec_param(GNUTLS_PK_DH, _gnutls_mpi_get_nbits(dh_params->params[0]));
+ res->dh_sec_param =
+ gnutls_pk_bits_to_sec_param(GNUTLS_PK_DH,
+ _gnutls_mpi_get_nbits(dh_params->params
+ [0]));
}
/**
@@ -148,7 +145,7 @@ gnutls_anon_set_server_dh_params(gnutls_anon_server_credentials_t res,
**/
int
gnutls_anon_set_server_known_dh_params(gnutls_anon_server_credentials_t res,
- gnutls_sec_param_t sec_param)
+ gnutls_sec_param_t sec_param)
{
res->dh_sec_param = sec_param;
diff --git a/lib/asn1_tab.c b/lib/asn1_tab.c
index 8021f1f181..a657b94686 100644
--- a/lib/asn1_tab.c
+++ b/lib/asn1_tab.c
@@ -1,5 +1,5 @@
#if HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <libtasn1.h>
diff --git a/lib/atfork.c b/lib/atfork.c
index 8d85176a72..e46aa4a3aa 100644
--- a/lib/atfork.c
+++ b/lib/atfork.c
@@ -43,7 +43,8 @@ static void fork_handler(void)
# endif
# if defined(HAVE___REGISTER_ATFORK)
-extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void), void *);
+extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void),
+ void *);
extern void *__dso_handle;
int _gnutls_register_fork_handler(void)
@@ -76,4 +77,4 @@ int _gnutls_register_fork_handler(void)
# endif
-#endif /* !_WIN32 */
+#endif /* !_WIN32 */
diff --git a/lib/atfork.h b/lib/atfork.h
index 8c779ef9b9..6c8ef3e06b 100644
--- a/lib/atfork.h
+++ b/lib/atfork.h
@@ -21,23 +21,23 @@
*/
#ifndef GNUTLS_LIB_ATFORK_H
-#define GNUTLS_LIB_ATFORK_H
+# define GNUTLS_LIB_ATFORK_H
-#include <config.h>
-#include "gnutls_int.h"
+# include <config.h>
+# include "gnutls_int.h"
extern unsigned int _gnutls_forkid;
-#if defined(HAVE___REGISTER_ATFORK)
-# define HAVE_ATFORK
-#endif
+# if defined(HAVE___REGISTER_ATFORK)
+# define HAVE_ATFORK
+# endif
-#ifndef _WIN32
+# ifndef _WIN32
/* API */
-int _gnutls_register_fork_handler(void); /* global init */
+int _gnutls_register_fork_handler(void); /* global init */
-# if defined(HAVE_ATFORK)
+# if defined(HAVE_ATFORK)
inline static int _gnutls_detect_fork(unsigned int forkid)
{
if (forkid == _gnutls_forkid)
@@ -49,16 +49,16 @@ inline static unsigned int _gnutls_get_forkid(void)
{
return _gnutls_forkid;
}
-# else
+# else
int _gnutls_detect_fork(unsigned int forkid);
unsigned int _gnutls_get_forkid(void);
-# endif
+# endif
-#else
+# else
-# define _gnutls_detect_fork(x) 0
-# define _gnutls_get_forkid() 0
+# define _gnutls_detect_fork(x) 0
+# define _gnutls_get_forkid() 0
-#endif
+# endif
-#endif /* GNUTLS_LIB_ATFORK_H */
+#endif /* GNUTLS_LIB_ATFORK_H */
diff --git a/lib/atomic.h b/lib/atomic.h
index b6db70375f..8f50bb453b 100644
--- a/lib/atomic.h
+++ b/lib/atomic.h
@@ -21,20 +21,20 @@
*/
#ifndef GNUTLS_LIB_ATOMIC_H
-#define GNUTLS_LIB_ATOMIC_H
+# define GNUTLS_LIB_ATOMIC_H
-#ifdef HAVE_STDATOMIC_H
-# include <stdatomic.h>
+# ifdef HAVE_STDATOMIC_H
+# include <stdatomic.h>
-# define gnutls_atomic_uint_t atomic_uint
-# define DEF_ATOMIC_INT(x) atomic_uint x
-# define gnutls_atomic_increment(x) (*x)++
-# define gnutls_atomic_decrement(x) (*x)--
-# define gnutls_atomic_init(x) (*x)=(0)
-# define gnutls_atomic_deinit(x)
-# define gnutls_atomic_val(x) (*x)
-#else
-# include "locks.h"
+# define gnutls_atomic_uint_t atomic_uint
+# define DEF_ATOMIC_INT(x) atomic_uint x
+# define gnutls_atomic_increment(x) (*x)++
+# define gnutls_atomic_decrement(x) (*x)--
+# define gnutls_atomic_init(x) (*x)=(0)
+# define gnutls_atomic_deinit(x)
+# define gnutls_atomic_val(x) (*x)
+# else
+# include "locks.h"
struct gnutls_atomic_uint_st {
void *lock;
@@ -42,7 +42,7 @@ struct gnutls_atomic_uint_st {
};
typedef struct gnutls_atomic_uint_st *gnutls_atomic_uint_t;
-# define DEF_ATOMIC_INT(x) struct gnutls_atomic_uint_st x
+# define DEF_ATOMIC_INT(x) struct gnutls_atomic_uint_st x
inline static unsigned gnutls_atomic_val(gnutls_atomic_uint_t x)
{
@@ -72,10 +72,11 @@ inline static void gnutls_atomic_init(gnutls_atomic_uint_t x)
gnutls_mutex_init(&x->lock);
x->value = 0;
}
+
inline static void gnutls_atomic_deinit(gnutls_atomic_uint_t x)
{
gnutls_mutex_deinit(&x->lock);
}
-#endif
+# endif
-#endif /* GNUTLS_LIB_ATOMIC_H */
+#endif /* GNUTLS_LIB_ATOMIC_H */
diff --git a/lib/auth.c b/lib/auth.c
index 7c58bd83ec..ffa4d6e784 100644
--- a/lib/auth.c
+++ b/lib/auth.c
@@ -148,15 +148,20 @@ gnutls_credentials_set(gnutls_session_t session,
if (c != NULL && c->ncerts != 0) {
for (i = 0; i < c->ncerts; i++) {
- key_usage = get_key_usage(session, c->certs[i].cert_list[0].pubkey);
- if (key_usage == 0 || (key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE)) {
+ key_usage =
+ get_key_usage(session,
+ c->certs[i].
+ cert_list[0].pubkey);
+ if (key_usage == 0
+ || (key_usage &
+ GNUTLS_KEY_DIGITAL_SIGNATURE)) {
allow_tls13 = 1;
break;
}
}
- if (session->security_parameters.entity == GNUTLS_SERVER &&
- !c->tls13_ok)
+ if (session->security_parameters.entity == GNUTLS_SERVER
+ && !c->tls13_ok)
allow_tls13 = 0;
if (!allow_tls13) {
@@ -204,7 +209,7 @@ gnutls_credentials_get(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if (cred)
- *cred = (void*)_cred;
+ *cred = (void *)_cred;
return 0;
}
@@ -249,8 +254,7 @@ gnutls_credentials_type_t gnutls_auth_get_type(gnutls_session_t session)
* Returns: The type of credentials for the server authentication
* schema, a #gnutls_credentials_type_t type.
**/
-gnutls_credentials_type_t
-gnutls_auth_server_get_type(gnutls_session_t session)
+gnutls_credentials_type_t gnutls_auth_server_get_type(gnutls_session_t session)
{
return session->security_parameters.server_auth_type;
}
@@ -269,13 +273,11 @@ gnutls_auth_server_get_type(gnutls_session_t session)
* Returns: The type of credentials for the client authentication
* schema, a #gnutls_credentials_type_t type.
**/
-gnutls_credentials_type_t
-gnutls_auth_client_get_type(gnutls_session_t session)
+gnutls_credentials_type_t gnutls_auth_client_get_type(gnutls_session_t session)
{
return session->security_parameters.client_auth_type;
}
-
/*
* This returns a pointer to the linked list. Don't
* free that!!!
@@ -286,8 +288,7 @@ const void *_gnutls_get_kx_cred(gnutls_session_t session,
int server =
session->security_parameters.entity == GNUTLS_SERVER ? 1 : 0;
- return _gnutls_get_cred(session,
- _gnutls_map_kx_get_cred(algo, server));
+ return _gnutls_get_cred(session, _gnutls_map_kx_get_cred(algo, server));
}
const void *_gnutls_get_cred(gnutls_session_t session,
@@ -378,15 +379,16 @@ void _gnutls_free_auth_info(gnutls_session_t session)
case GNUTLS_CRD_CERTIFICATE:
{
unsigned int i;
- cert_auth_info_t info =
- _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ cert_auth_info_t info = _gnutls_get_auth_info(session,
+ GNUTLS_CRD_CERTIFICATE);
if (info == NULL)
break;
dh_info = &info->dh;
for (i = 0; i < info->ncerts; i++) {
- _gnutls_free_datum(&info->raw_certificate_list[i]);
+ _gnutls_free_datum(&info->raw_certificate_list
+ [i]);
}
for (i = 0; i < info->nocsp; i++) {
@@ -403,7 +405,6 @@ void _gnutls_free_auth_info(gnutls_session_t session)
#endif
}
-
break;
default:
return;
@@ -424,8 +425,8 @@ void _gnutls_free_auth_info(gnutls_session_t session)
*/
int
_gnutls_auth_info_init(gnutls_session_t session,
- gnutls_credentials_type_t type, int size,
- int allow_change)
+ gnutls_credentials_type_t type, int size,
+ int allow_change)
{
if (session->key.auth_info == NULL) {
session->key.auth_info = gnutls_calloc(1, size);
diff --git a/lib/auth.h b/lib/auth.h
index 7e2f3afdc4..71a6ae5956 100644
--- a/lib/auth.h
+++ b/lib/auth.h
@@ -21,36 +21,33 @@
*/
#ifndef GNUTLS_LIB_AUTH_H
-#define GNUTLS_LIB_AUTH_H
+# define GNUTLS_LIB_AUTH_H
-#include "str.h"
+# include "str.h"
typedef struct mod_auth_st_int {
const char *name; /* null terminated */
- int (*gnutls_generate_server_certificate) (gnutls_session_t,
- gnutls_buffer_st *);
- int (*gnutls_generate_client_certificate) (gnutls_session_t,
- gnutls_buffer_st *);
- int (*gnutls_generate_server_kx) (gnutls_session_t,
- gnutls_buffer_st *);
- int (*gnutls_generate_client_kx) (gnutls_session_t, gnutls_buffer_st *); /* used in SRP */
- int (*gnutls_generate_client_crt_vrfy) (gnutls_session_t,
- gnutls_buffer_st *);
- int (*gnutls_generate_server_crt_request) (gnutls_session_t,
- gnutls_buffer_st *);
+ int (*gnutls_generate_server_certificate)(gnutls_session_t,
+ gnutls_buffer_st *);
+ int (*gnutls_generate_client_certificate)(gnutls_session_t,
+ gnutls_buffer_st *);
+ int (*gnutls_generate_server_kx)(gnutls_session_t, gnutls_buffer_st *);
+ int (*gnutls_generate_client_kx)(gnutls_session_t, gnutls_buffer_st *); /* used in SRP */
+ int (*gnutls_generate_client_crt_vrfy)(gnutls_session_t,
+ gnutls_buffer_st *);
+ int (*gnutls_generate_server_crt_request)(gnutls_session_t,
+ gnutls_buffer_st *);
- int (*gnutls_process_server_certificate) (gnutls_session_t,
- uint8_t *, size_t);
- int (*gnutls_process_client_certificate) (gnutls_session_t,
- uint8_t *, size_t);
- int (*gnutls_process_server_kx) (gnutls_session_t, uint8_t *,
- size_t);
- int (*gnutls_process_client_kx) (gnutls_session_t, uint8_t *,
- size_t);
- int (*gnutls_process_client_crt_vrfy) (gnutls_session_t, uint8_t *,
- size_t);
- int (*gnutls_process_server_crt_request) (gnutls_session_t,
- uint8_t *, size_t);
+ int (*gnutls_process_server_certificate)(gnutls_session_t,
+ uint8_t *, size_t);
+ int (*gnutls_process_client_certificate)(gnutls_session_t,
+ uint8_t *, size_t);
+ int (*gnutls_process_server_kx)(gnutls_session_t, uint8_t *, size_t);
+ int (*gnutls_process_client_kx)(gnutls_session_t, uint8_t *, size_t);
+ int (*gnutls_process_client_crt_vrfy)(gnutls_session_t, uint8_t *,
+ size_t);
+ int (*gnutls_process_server_crt_request)(gnutls_session_t,
+ uint8_t *, size_t);
} mod_auth_st;
const void *_gnutls_get_cred(gnutls_session_t session,
@@ -58,8 +55,8 @@ const void *_gnutls_get_cred(gnutls_session_t session,
const void *_gnutls_get_kx_cred(gnutls_session_t session,
gnutls_kx_algorithm_t algo);
int _gnutls_auth_info_init(gnutls_session_t session,
- gnutls_credentials_type_t type, int size,
- int allow_change);
+ gnutls_credentials_type_t type, int size,
+ int allow_change);
/*-
* _gnutls_get_auth_info - Returns a pointer to authentication information.
@@ -75,7 +72,8 @@ int _gnutls_auth_info_init(gnutls_session_t session,
* In case of GNUTLS_CRD_SRP returns a type of &srp_(server/client)_auth_info_t;
-*/
inline static
-void *_gnutls_get_auth_info(gnutls_session_t session, gnutls_credentials_type_t type)
+void *_gnutls_get_auth_info(gnutls_session_t session,
+ gnutls_credentials_type_t type)
{
if (type == session->key.auth_info_type)
return session->key.auth_info;
@@ -83,4 +81,4 @@ void *_gnutls_get_auth_info(gnutls_session_t session, gnutls_credentials_type_t
return NULL;
}
-#endif /* GNUTLS_LIB_AUTH_H */
+#endif /* GNUTLS_LIB_AUTH_H */
diff --git a/lib/auth/anon.c b/lib/auth/anon.c
index 2fc2cd77ae..b84a9d098c 100644
--- a/lib/auth/anon.c
+++ b/lib/auth/anon.c
@@ -30,14 +30,14 @@
#if defined(ENABLE_ANON) && defined(ENABLE_DHE)
-#include "auth.h"
-#include "errors.h"
-#include "dh.h"
-#include "auth/anon.h"
-#include "num.h"
-#include "mpi.h"
-#include <state.h>
-#include <auth/dh_common.h>
+# include "auth.h"
+# include "errors.h"
+# include "dh.h"
+# include "auth/anon.h"
+# include "num.h"
+# include "mpi.h"
+# include <state.h>
+# include <auth/dh_common.h>
static int gen_anon_server_kx(gnutls_session_t, gnutls_buffer_st *);
static int proc_anon_client_kx(gnutls_session_t, uint8_t *, size_t);
@@ -60,8 +60,7 @@ const mod_auth_st anon_auth_struct = {
NULL
};
-static int
-gen_anon_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
+static int gen_anon_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
int ret;
gnutls_anon_server_credentials_t cred;
@@ -75,18 +74,19 @@ gen_anon_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_ANON,
- sizeof(anon_auth_info_st), 1)) < 0) {
+ sizeof(anon_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
- ret = _gnutls_figure_dh_params(session, cred->dh_params, cred->params_func, cred->dh_sec_param);
+ ret =
+ _gnutls_figure_dh_params(session, cred->dh_params,
+ cred->params_func, cred->dh_sec_param);
if (ret < 0) {
return gnutls_assert_val(ret);
}
- ret =
- _gnutls_dh_common_print_server_kx(session, data);
+ ret = _gnutls_dh_common_print_server_kx(session, data);
if (ret < 0) {
gnutls_assert();
}
@@ -94,10 +94,8 @@ gen_anon_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
return ret;
}
-
static int
-proc_anon_client_kx(gnutls_session_t session, uint8_t * data,
- size_t _data_size)
+proc_anon_client_kx(gnutls_session_t session, uint8_t * data, size_t _data_size)
{
return
_gnutls_proc_dh_common_client_kx(session, data, _data_size, NULL);
@@ -105,8 +103,7 @@ proc_anon_client_kx(gnutls_session_t session, uint8_t * data,
}
int
-proc_anon_server_kx(gnutls_session_t session, uint8_t * data,
- size_t _data_size)
+proc_anon_server_kx(gnutls_session_t session, uint8_t * data, size_t _data_size)
{
int ret;
@@ -114,7 +111,7 @@ proc_anon_server_kx(gnutls_session_t session, uint8_t * data,
/* set auth_info */
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_ANON,
- sizeof(anon_auth_info_st), 1)) < 0) {
+ sizeof(anon_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
diff --git a/lib/auth/anon.h b/lib/auth/anon.h
index 3a8db4b5b3..943fda97c6 100644
--- a/lib/auth/anon.h
+++ b/lib/auth/anon.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_LIB_AUTH_ANON_H
-#define GNUTLS_LIB_AUTH_ANON_H
+# define GNUTLS_LIB_AUTH_ANON_H
/* this is not to be included by gnutls_anon.c */
-#include <auth.h>
-#include <auth/dh_common.h>
+# include <auth.h>
+# include <auth/dh_common.h>
typedef struct gnutls_anon_server_credentials_st {
gnutls_dh_params_t dh_params;
@@ -49,4 +49,4 @@ typedef struct anon_auth_info_st {
typedef struct anon_auth_info_st anon_auth_info_st;
-#endif /* GNUTLS_LIB_AUTH_ANON_H */
+#endif /* GNUTLS_LIB_AUTH_ANON_H */
diff --git a/lib/auth/anon_ecdh.c b/lib/auth/anon_ecdh.c
index 48da7393a3..8564532d73 100644
--- a/lib/auth/anon_ecdh.c
+++ b/lib/auth/anon_ecdh.c
@@ -29,15 +29,15 @@
#if defined(ENABLE_ANON) && defined(ENABLE_ECDHE)
-#include "auth.h"
-#include "errors.h"
-#include "dh.h"
-#include "auth/anon.h"
-#include "num.h"
-#include "mpi.h"
-#include <state.h>
-#include <auth/ecdhe.h>
-#include <ext/supported_groups.h>
+# include "auth.h"
+# include "errors.h"
+# include "dh.h"
+# include "auth/anon.h"
+# include "num.h"
+# include "mpi.h"
+# include <state.h>
+# include <auth/ecdhe.h>
+# include <ext/supported_groups.h>
static int gen_anon_ecdh_server_kx(gnutls_session_t, gnutls_buffer_st *);
static int proc_anon_ecdh_client_kx(gnutls_session_t, uint8_t *, size_t);
@@ -75,15 +75,14 @@ gen_anon_ecdh_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_ANON,
- sizeof(anon_auth_info_st), 1)) < 0) {
+ sizeof(anon_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
ret =
_gnutls_ecdh_common_print_server_kx(session, data,
- get_group
- (session));
+ get_group(session));
if (ret < 0) {
gnutls_assert();
}
@@ -91,7 +90,6 @@ gen_anon_ecdh_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
return ret;
}
-
static int
proc_anon_ecdh_client_kx(gnutls_session_t session, uint8_t * data,
size_t _data_size)
@@ -107,8 +105,7 @@ proc_anon_ecdh_client_kx(gnutls_session_t session, uint8_t * data,
return _gnutls_proc_ecdh_common_client_kx(session, data,
_data_size,
- get_group
- (session), NULL);
+ get_group(session), NULL);
}
int
@@ -121,13 +118,12 @@ proc_anon_ecdh_server_kx(gnutls_session_t session, uint8_t * data,
/* set auth_info */
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_ANON,
- sizeof(anon_auth_info_st), 1)) < 0) {
+ sizeof(anon_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
- ret =
- _gnutls_proc_ecdh_common_server_kx(session, data, _data_size);
+ ret = _gnutls_proc_ecdh_common_server_kx(session, data, _data_size);
if (ret < 0) {
gnutls_assert();
return ret;
diff --git a/lib/auth/cert.c b/lib/auth/cert.c
index f122049e14..8b484c1380 100644
--- a/lib/auth/cert.c
+++ b/lib/auth/cert.c
@@ -50,7 +50,7 @@
static void
selected_certs_set(gnutls_session_t session,
gnutls_pcert_st * certs, int ncerts,
- gnutls_ocsp_data_st *ocsp, unsigned nocsp,
+ gnutls_ocsp_data_st * ocsp, unsigned nocsp,
gnutls_privkey_t key, int need_free,
gnutls_status_request_ocsp_func ocsp_func,
void *ocsp_func_ptr);
@@ -78,7 +78,8 @@ enum CertificateSigTypeFlags {
* another internal certificate struct (cert_auth_info_t), and deinitializes
* the former.
*/
-int _gnutls_pcert_to_auth_info(cert_auth_info_t info, gnutls_pcert_st * certs, size_t ncerts)
+int _gnutls_pcert_to_auth_info(cert_auth_info_t info, gnutls_pcert_st * certs,
+ size_t ncerts)
{
size_t i, j;
@@ -184,10 +185,10 @@ static int cert_get_issuer_dn(gnutls_pcert_st * cert, gnutls_datum_t * odn)
*/
static int
find_x509_client_cert(gnutls_session_t session,
- const gnutls_certificate_credentials_t cred,
- const uint8_t * _data, size_t _data_size,
- const gnutls_pk_algorithm_t * pk_algos,
- int pk_algos_length, int *indx)
+ const gnutls_certificate_credentials_t cred,
+ const uint8_t * _data, size_t _data_size,
+ const gnutls_pk_algorithm_t * pk_algos,
+ int pk_algos_length, int *indx)
{
unsigned size;
gnutls_datum_t odn = { NULL, 0 }, asked_dn;
@@ -207,12 +208,17 @@ find_x509_client_cert(gnutls_session_t session,
|| (session->internals.flags & GNUTLS_FORCE_CLIENT_CERT))) {
if (cred->certs[0].cert_list[0].type == GNUTLS_CRT_X509) {
- key_usage = get_key_usage(session, cred->certs[0].cert_list[0].pubkey);
+ key_usage =
+ get_key_usage(session,
+ cred->certs[0].cert_list[0].pubkey);
/* For client certificates we require signatures */
- result = _gnutls_check_key_usage_for_sig(session, key_usage, 1);
+ result =
+ _gnutls_check_key_usage_for_sig(session, key_usage,
+ 1);
if (result < 0) {
- _gnutls_debug_log("Client certificate is not suitable for signing\n");
+ _gnutls_debug_log
+ ("Client certificate is not suitable for signing\n");
return gnutls_assert_val(result);
}
@@ -227,7 +233,7 @@ find_x509_client_cert(gnutls_session_t session,
DECR_LENGTH_RET(data_size, size, 0);
data += 2;
- asked_dn.data = (void*)data;
+ asked_dn.data = (void *)data;
asked_dn.size = size;
_gnutls_dn_log("Peer requested CA", &asked_dn);
@@ -244,11 +250,16 @@ find_x509_client_cert(gnutls_session_t session,
if (odn.size == 0 || odn.size != asked_dn.size)
continue;
- key_usage = get_key_usage(session, cred->certs[i].cert_list[0].pubkey);
+ key_usage =
+ get_key_usage(session,
+ cred->certs[i].
+ cert_list[0].pubkey);
/* For client certificates we require signatures */
- if (_gnutls_check_key_usage_for_sig(session, key_usage, 1) < 0) {
- _gnutls_debug_log("Client certificate is not suitable for signing\n");
+ if (_gnutls_check_key_usage_for_sig
+ (session, key_usage, 1) < 0) {
+ _gnutls_debug_log
+ ("Client certificate is not suitable for signing\n");
continue;
}
@@ -262,7 +273,10 @@ find_x509_client_cert(gnutls_session_t session,
[0].pubkey,
NULL);
- if ((memcmp(odn.data, asked_dn.data, asked_dn.size) == 0) &&
+ if ((memcmp
+ (odn.data, asked_dn.data,
+ asked_dn.size) == 0)
+ &&
(check_pk_algo_in_list
(pk_algos, pk_algos_length,
cert_pk) == 0)) {
@@ -286,7 +300,6 @@ find_x509_client_cert(gnutls_session_t session,
}
-
/* Locates the first raw public-key.
* Currently it only makes sense to associate one raw pubkey per session.
* Associating more raw pubkeys with a session has no use because we
@@ -294,9 +307,9 @@ find_x509_client_cert(gnutls_session_t session,
*/
static int
find_rawpk_client_cert(gnutls_session_t session,
- const gnutls_certificate_credentials_t cred,
- const gnutls_pk_algorithm_t* pk_algos,
- int pk_algos_length, int* indx)
+ const gnutls_certificate_credentials_t cred,
+ const gnutls_pk_algorithm_t * pk_algos,
+ int pk_algos_length, int *indx)
{
unsigned i;
int ret;
@@ -308,22 +321,33 @@ find_rawpk_client_cert(gnutls_session_t session,
/* We know that our list length will be 1, therefore we can
* ignore the rest.
*/
- if (cred->certs[i].cert_list_length == 1 && cred->certs[i].cert_list[0].type == GNUTLS_CRT_RAWPK) {
- pk = gnutls_pubkey_get_pk_algorithm(cred->certs[i].cert_list[0].pubkey, NULL);
+ if (cred->certs[i].cert_list_length == 1
+ && cred->certs[i].cert_list[0].type == GNUTLS_CRT_RAWPK) {
+ pk = gnutls_pubkey_get_pk_algorithm(cred->
+ certs[i].cert_list
+ [0].pubkey, NULL);
/* For client certificates we require signatures */
- ret = _gnutls_check_key_usage_for_sig(session, get_key_usage(session, cred->certs[i].cert_list[0].pubkey), 1);
+ ret =
+ _gnutls_check_key_usage_for_sig(session,
+ get_key_usage
+ (session,
+ cred->
+ certs[i].cert_list
+ [0].pubkey), 1);
if (ret < 0) {
/* we return an error instead of skipping so that the user is notified about
* the key incompatibility */
- _gnutls_debug_log("Client certificate is not suitable for signing\n");
+ _gnutls_debug_log
+ ("Client certificate is not suitable for signing\n");
return gnutls_assert_val(ret);
}
/* Check whether the public-key algorithm of our credential is in
* the list with supported public-key algorithms and whether the
* cert type matches. */
- if ((check_pk_algo_in_list(pk_algos, pk_algos_length, pk) == 0)) {
+ if ((check_pk_algo_in_list
+ (pk_algos, pk_algos_length, pk) == 0)) {
// We found a compatible credential
*indx = i;
break;
@@ -334,12 +358,12 @@ find_rawpk_client_cert(gnutls_session_t session,
return 0;
}
-
/* Returns the number of issuers in the server's
* certificate request packet.
*/
static int
-get_issuers_num(gnutls_session_t session, const uint8_t * data, ssize_t data_size)
+get_issuers_num(gnutls_session_t session, const uint8_t * data,
+ ssize_t data_size)
{
int issuers_dn_len = 0;
unsigned size;
@@ -355,10 +379,12 @@ get_issuers_num(gnutls_session_t session, const uint8_t * data, ssize_t data_siz
while (data_size > 0) {
/* This works like DECR_LEN()
*/
- DECR_LENGTH_RET(data_size, 2, GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ DECR_LENGTH_RET(data_size, 2,
+ GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
size = _gnutls_read_uint16(data);
- DECR_LENGTH_RET(data_size, size, GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ DECR_LENGTH_RET(data_size, size,
+ GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
data += 2;
@@ -382,7 +408,8 @@ get_issuers(gnutls_session_t session,
int i;
unsigned size;
- if (get_certificate_type(session, GNUTLS_CTYPE_CLIENT) != GNUTLS_CRT_X509)
+ if (get_certificate_type(session, GNUTLS_CTYPE_CLIENT) !=
+ GNUTLS_CRT_X509)
return 0;
/* put the requested DNs to req_dn, only in case
@@ -401,7 +428,7 @@ get_issuers(gnutls_session_t session,
data += 2;
- issuers_dn[i].data = (void*)data;
+ issuers_dn[i].data = (void *)data;
issuers_dn[i].size = size;
_gnutls_dn_log("Peer requested CA", &issuers_dn[i]);
@@ -471,8 +498,10 @@ call_get_cert_callback(gnutls_session_t session,
selected_certs_set(session, pcert, pcert_length,
ocsp, ocsp_length,
- local_key, (flags&GNUTLS_CERT_RETR_DEINIT_ALL)?1:0,
- cred->glob_ocsp_func, cred->glob_ocsp_func_ptr);
+ local_key,
+ (flags & GNUTLS_CERT_RETR_DEINIT_ALL) ? 1 :
+ 0, cred->glob_ocsp_func,
+ cred->glob_ocsp_func_ptr);
return 0;
} else {
@@ -490,7 +519,8 @@ call_get_cert_callback(gnutls_session_t session,
int
_gnutls_select_client_cert(gnutls_session_t session,
const uint8_t * _data, size_t _data_size,
- gnutls_pk_algorithm_t * pk_algos, int pk_algos_length)
+ gnutls_pk_algorithm_t * pk_algos,
+ int pk_algos_length)
{
int result;
int indx = -1;
@@ -554,18 +584,19 @@ _gnutls_select_client_cert(gnutls_session_t session,
/* If we have no callbacks, try to guess.
*/
switch (cert_type) {
- case GNUTLS_CRT_X509:
- result = find_x509_client_cert(session, cred, _data,
- _data_size, pk_algos,
- pk_algos_length, &indx);
- break;
- case GNUTLS_CRT_RAWPK:
- result = find_rawpk_client_cert(session, cred,
- pk_algos, pk_algos_length, &indx);
- break;
- default:
- result = GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE;
- break;
+ case GNUTLS_CRT_X509:
+ result = find_x509_client_cert(session, cred, _data,
+ _data_size, pk_algos,
+ pk_algos_length, &indx);
+ break;
+ case GNUTLS_CRT_RAWPK:
+ result = find_rawpk_client_cert(session, cred,
+ pk_algos,
+ pk_algos_length, &indx);
+ break;
+ default:
+ result = GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE;
+ break;
}
if (result < 0) {
@@ -574,10 +605,8 @@ _gnutls_select_client_cert(gnutls_session_t session,
if (indx >= 0) {
selected_certs_set(session,
- &cred->certs[indx].
- cert_list[0],
- cred->certs[indx].
- cert_list_length,
+ &cred->certs[indx].cert_list[0],
+ cred->certs[indx].cert_list_length,
cred->certs[indx].ocsp_data,
cred->certs[indx].ocsp_data_length,
cred->certs[indx].pkey, 0,
@@ -625,7 +654,7 @@ static int gen_x509_crt(gnutls_session_t session, gnutls_buffer_st * data)
/* if no certificates were found then send:
* 0B 00 00 03 00 00 00 // Certificate with no certs
* instead of:
- * 0B 00 00 00 // empty certificate handshake
+ * 0B 00 00 00 // empty certificate handshake
*
* ( the above is the whole handshake message, not
* the one produced here )
@@ -649,23 +678,22 @@ static int gen_x509_crt(gnutls_session_t session, gnutls_buffer_st * data)
return data->length - init_pos;
}
-
/* Generates a Raw Public Key certificate message that holds only the
* SubjectPublicKeyInfo part of a regular certificate message.
*
* Returns the number of bytes sent or a negative error code.
*/
-int
-_gnutls_gen_rawpk_crt(gnutls_session_t session, gnutls_buffer_st* data)
+int _gnutls_gen_rawpk_crt(gnutls_session_t session, gnutls_buffer_st * data)
{
int ret;
gnutls_pcert_st *apr_cert_list;
gnutls_privkey_t apr_pkey;
int apr_cert_list_length;
- if((ret = _gnutls_get_selected_cert(session, &apr_cert_list,
- &apr_cert_list_length, &apr_pkey)) < 0) {
- return gnutls_assert_val(ret);
+ if ((ret = _gnutls_get_selected_cert(session, &apr_cert_list,
+ &apr_cert_list_length,
+ &apr_pkey)) < 0) {
+ return gnutls_assert_val(ret);
}
/* Since we are transmitting a raw public key with no additional
@@ -685,17 +713,18 @@ _gnutls_gen_rawpk_crt(gnutls_session_t session, gnutls_buffer_st* data)
ret = _gnutls_buffer_append_prefix(data, 24, 0);
} else {
ret = _gnutls_buffer_append_data_prefix(data, 24,
- apr_cert_list[0].cert.data,
- apr_cert_list[0].cert.size);
+ apr_cert_list[0].
+ cert.data,
+ apr_cert_list[0].
+ cert.size);
}
-
- if (ret < 0) return gnutls_assert_val(ret);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
return data->length;
}
-
int
_gnutls_gen_cert_client_crt(gnutls_session_t session, gnutls_buffer_st * data)
{
@@ -705,12 +734,12 @@ _gnutls_gen_cert_client_crt(gnutls_session_t session, gnutls_buffer_st * data)
cert_type = get_certificate_type(session, GNUTLS_CTYPE_CLIENT);
switch (cert_type) {
- case GNUTLS_CRT_X509:
- return gen_x509_crt(session, data);
- case GNUTLS_CRT_RAWPK:
- return _gnutls_gen_rawpk_crt(session, data);
- default:
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ case GNUTLS_CRT_X509:
+ return gen_x509_crt(session, data);
+ case GNUTLS_CRT_RAWPK:
+ return _gnutls_gen_rawpk_crt(session, data);
+ default:
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
}
@@ -723,12 +752,12 @@ _gnutls_gen_cert_server_crt(gnutls_session_t session, gnutls_buffer_st * data)
cert_type = get_certificate_type(session, GNUTLS_CTYPE_SERVER);
switch (cert_type) {
- case GNUTLS_CRT_X509:
- return gen_x509_crt(session, data);
- case GNUTLS_CRT_RAWPK:
- return _gnutls_gen_rawpk_crt(session, data);
- default:
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ case GNUTLS_CRT_X509:
+ return gen_x509_crt(session, data);
+ case GNUTLS_CRT_RAWPK:
+ return _gnutls_gen_rawpk_crt(session, data);
+ default:
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
}
@@ -763,7 +792,7 @@ int check_pk_compat(gnutls_session_t session, gnutls_pubkey_t pubkey)
#define CLEAR_CERTS for(x=0;x<peer_certificate_list_size;x++) gnutls_pcert_deinit(&peer_certificate_list[x])
static int
_gnutls_proc_x509_crt(gnutls_session_t session,
- uint8_t * data, size_t data_size)
+ uint8_t * data, size_t data_size)
{
int size, len, ret;
uint8_t *p = data;
@@ -784,7 +813,7 @@ _gnutls_proc_x509_crt(gnutls_session_t session,
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_CERTIFICATE,
- sizeof(cert_auth_info_st), 1)) < 0) {
+ sizeof(cert_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
@@ -885,9 +914,9 @@ _gnutls_proc_x509_crt(gnutls_session_t session,
}
ret =
- _gnutls_pcert_to_auth_info(info,
- peer_certificate_list,
- peer_certificate_list_size);
+ _gnutls_pcert_to_auth_info(info,
+ peer_certificate_list,
+ peer_certificate_list_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -902,13 +931,12 @@ _gnutls_proc_x509_crt(gnutls_session_t session,
}
-
int _gnutls_proc_rawpk_crt(gnutls_session_t session,
- uint8_t * data, size_t data_size)
+ uint8_t * data, size_t data_size)
{
int cert_size, ret;
cert_auth_info_t info;
- gnutls_pcert_st* peer_certificate;
+ gnutls_pcert_st *peer_certificate;
gnutls_datum_t tmp_cert;
uint8_t *p = data;
@@ -932,8 +960,7 @@ int _gnutls_proc_rawpk_crt(gnutls_session_t session,
if (cert_size != dsize)
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
-
- if (cert_size == 0) {
+ if (cert_size == 0) {
// No certificate was sent. This is not OK.
return gnutls_assert_val(GNUTLS_E_NO_CERTIFICATE_FOUND);
}
@@ -950,14 +977,14 @@ int _gnutls_proc_rawpk_crt(gnutls_session_t session,
if (peer_certificate == NULL) {
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
-
// Import our raw certificate holding only a raw public key into this pcert
- ret = gnutls_pcert_import_rawpk_raw(peer_certificate, &tmp_cert, GNUTLS_X509_FMT_DER, 0, 0);
+ ret =
+ gnutls_pcert_import_rawpk_raw(peer_certificate, &tmp_cert,
+ GNUTLS_X509_FMT_DER, 0, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
-
// Check whether the PK algo is compatible with the negotiated KX
ret = check_pk_compat(session, peer_certificate->pubkey);
if (ret < 0) {
@@ -989,7 +1016,7 @@ int _gnutls_proc_rawpk_crt(gnutls_session_t session,
return GNUTLS_E_SUCCESS;
-cleanup:
+ cleanup:
if (peer_certificate != NULL) {
gnutls_pcert_deinit(peer_certificate);
gnutls_free(peer_certificate);
@@ -998,7 +1025,6 @@ cleanup:
return ret;
}
-
int _gnutls_proc_crt(gnutls_session_t session, uint8_t * data, size_t data_size)
{
gnutls_certificate_credentials_t cred;
@@ -1017,12 +1043,12 @@ int _gnutls_proc_crt(gnutls_session_t session, uint8_t * data, size_t data_size)
cert_type = get_certificate_type(session, GNUTLS_CTYPE_PEERS);
switch (cert_type) {
- case GNUTLS_CRT_X509:
- return _gnutls_proc_x509_crt(session, data, data_size);
- case GNUTLS_CRT_RAWPK:
- return _gnutls_proc_rawpk_crt(session, data, data_size);
- default:
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ case GNUTLS_CRT_X509:
+ return _gnutls_proc_x509_crt(session, data, data_size);
+ case GNUTLS_CRT_RAWPK:
+ return _gnutls_proc_rawpk_crt(session, data, data_size);
+ default:
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
}
@@ -1075,7 +1101,7 @@ _gnutls_proc_cert_cert_req(gnutls_session_t session, uint8_t * data,
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_CERTIFICATE,
- sizeof(cert_auth_info_st), 0)) < 0) {
+ sizeof(cert_auth_info_st), 0)) < 0) {
gnutls_assert();
return ret;
}
@@ -1223,7 +1249,8 @@ _gnutls_proc_cert_client_crt_vrfy(gnutls_session_t session,
ssize_t dsize = data_size;
uint8_t *pdata = data;
gnutls_datum_t sig;
- cert_auth_info_t info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ cert_auth_info_t info =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
gnutls_pcert_st peer_cert;
gnutls_sign_algorithm_t sign_algo = GNUTLS_SIGN_UNKNOWN;
const version_entry_st *ver = get_version(session);
@@ -1243,7 +1270,8 @@ _gnutls_proc_cert_client_crt_vrfy(gnutls_session_t session,
return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
}
- vflags = cred->verify_flags | session->internals.additional_verify_flags;
+ vflags =
+ cred->verify_flags | session->internals.additional_verify_flags;
if (_gnutls_version_has_selectable_sighash(ver)) {
DECR_LEN(dsize, 2);
@@ -1258,7 +1286,8 @@ _gnutls_proc_cert_client_crt_vrfy(gnutls_session_t session,
ret = _gnutls_session_sign_algo_enabled(session, sign_algo);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
+ return
+ gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
DECR_LEN(dsize, 2);
size = _gnutls_read_uint16(pdata);
@@ -1279,8 +1308,8 @@ _gnutls_proc_cert_client_crt_vrfy(gnutls_session_t session,
}
if ((ret =
- _gnutls_handshake_verify_crt_vrfy(session, vflags, &peer_cert, &sig,
- sign_algo)) < 0) {
+ _gnutls_handshake_verify_crt_vrfy(session, vflags, &peer_cert,
+ &sig, sign_algo)) < 0) {
gnutls_assert();
gnutls_pcert_deinit(&peer_cert);
return ret;
@@ -1322,7 +1351,7 @@ _gnutls_gen_cert_server_cert_req(gnutls_session_t session,
flags = 0;
for (j = 0; j < session->internals.priorities->sigalg.size; j++) {
const gnutls_sign_entry_st *se =
- session->internals.priorities->sigalg.entry[j];
+ session->internals.priorities->sigalg.entry[j];
switch (se->pk) {
case GNUTLS_PK_RSA:
case GNUTLS_PK_RSA_PSS:
@@ -1344,18 +1373,19 @@ _gnutls_gen_cert_server_cert_req(gnutls_session_t session,
#endif
default:
gnutls_assert();
- _gnutls_debug_log(
- "%s is unsupported for cert request\n",
- gnutls_pk_get_name(se->pk));
+ _gnutls_debug_log
+ ("%s is unsupported for cert request\n",
+ gnutls_pk_get_name(se->pk));
}
}
} else {
#ifdef ENABLE_GOST
- if (_gnutls_kx_is_vko_gost(session->security_parameters.
- cs->kx_algorithm)) {
- flags = GOSTR34102012_256_SIGN_FLAG |
- GOSTR34102012_512_SIGN_FLAG;
+ if (_gnutls_kx_is_vko_gost
+ (session->security_parameters.cs->kx_algorithm)) {
+ flags =
+ GOSTR34102012_256_SIGN_FLAG |
+ GOSTR34102012_512_SIGN_FLAG;
} else
#endif
{
@@ -1388,8 +1418,7 @@ _gnutls_gen_cert_server_cert_req(gnutls_session_t session,
return gnutls_assert_val(ret);
if (_gnutls_version_has_selectable_sighash(ver)) {
- ret =
- _gnutls_sign_algorithm_write_params(session, data);
+ ret = _gnutls_sign_algorithm_write_params(session, data);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1456,7 +1485,6 @@ _gnutls_get_selected_cert(gnutls_session_t session,
return 0;
}
-
void _gnutls_selected_certs_deinit(gnutls_session_t session)
{
if (session->internals.selected_need_free != 0) {
@@ -1469,8 +1497,7 @@ void _gnutls_selected_certs_deinit(gnutls_session_t session)
}
gnutls_free(session->internals.selected_cert_list);
- for (i = 0;
- i < session->internals.selected_ocsp_length; i++) {
+ for (i = 0; i < session->internals.selected_ocsp_length; i++) {
_gnutls_free_datum(&session->internals.
selected_ocsp[i].response);
}
@@ -1491,7 +1518,7 @@ void _gnutls_selected_certs_deinit(gnutls_session_t session)
static void
selected_certs_set(gnutls_session_t session,
gnutls_pcert_st * certs, int ncerts,
- gnutls_ocsp_data_st *ocsp, unsigned nocsp,
+ gnutls_ocsp_data_st * ocsp, unsigned nocsp,
gnutls_privkey_t key, int need_free,
gnutls_status_request_ocsp_func ocsp_func,
void *ocsp_func_ptr)
@@ -1548,7 +1575,7 @@ static
int cert_select_sign_algorithm(gnutls_session_t session,
gnutls_pcert_st * cert,
gnutls_privkey_t pkey,
- const gnutls_cipher_suite_entry_st *cs)
+ const gnutls_cipher_suite_entry_st * cs)
{
gnutls_pubkey_t pubkey = cert->pubkey;
gnutls_certificate_type_t cert_type = cert->type;
@@ -1570,30 +1597,38 @@ int cert_select_sign_algorithm(gnutls_session_t session,
key_usage = get_key_usage(session, pubkey);
/* In TLS1.3 we support only signatures; ensure the selected key supports them */
- if (ver->tls13_sem && _gnutls_check_key_usage_for_sig(session, key_usage, 1) < 0)
+ if (ver->tls13_sem
+ && _gnutls_check_key_usage_for_sig(session, key_usage, 1) < 0)
return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
- if (!ver->tls13_sem && !_gnutls_kx_supports_pk_usage(cs->kx_algorithm, pk, key_usage)) {
+ if (!ver->tls13_sem
+ && !_gnutls_kx_supports_pk_usage(cs->kx_algorithm, pk, key_usage)) {
return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
}
- if (!ver->tls13_sem && _gnutls_kx_encipher_type(cs->kx_algorithm) != CIPHER_SIGN)
+ if (!ver->tls13_sem
+ && _gnutls_kx_encipher_type(cs->kx_algorithm) != CIPHER_SIGN)
return 0;
if (!_gnutls_version_has_selectable_sighash(ver)) {
/* For SSL3.0 and TLS1.0 we lie as we cannot express md5-sha1 as
* signature algorithm. */
- algo = gnutls_pk_to_sign(cert->pubkey->params.algo, GNUTLS_DIG_SHA1);
+ algo =
+ gnutls_pk_to_sign(cert->pubkey->params.algo,
+ GNUTLS_DIG_SHA1);
gnutls_sign_algorithm_set_server(session, algo);
return 0;
}
- algo = _gnutls_session_get_sign_algo(session, cert, pkey, 0, cs->kx_algorithm);
+ algo =
+ _gnutls_session_get_sign_algo(session, cert, pkey, 0,
+ cs->kx_algorithm);
if (algo == GNUTLS_SIGN_UNKNOWN)
return gnutls_assert_val(GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY);
gnutls_sign_algorithm_set_server(session, algo);
- _gnutls_handshake_log("Selected signature algorithm: %s\n", gnutls_sign_algorithm_get_name(algo));
+ _gnutls_handshake_log("Selected signature algorithm: %s\n",
+ gnutls_sign_algorithm_get_name(algo));
return 0;
}
@@ -1609,7 +1644,8 @@ int cert_select_sign_algorithm(gnutls_session_t session,
*
*/
int
-_gnutls_select_server_cert(gnutls_session_t session, const gnutls_cipher_suite_entry_st *cs)
+_gnutls_select_server_cert(gnutls_session_t session,
+ const gnutls_cipher_suite_entry_st * cs)
{
unsigned i, j;
int idx, ret;
@@ -1619,7 +1655,7 @@ _gnutls_select_server_cert(gnutls_session_t session, const gnutls_cipher_suite_e
cred = (gnutls_certificate_credentials_t)
_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE);
if (cred == NULL) {
- gnutls_assert(); /* we don't need to select a cert */
+ gnutls_assert(); /* we don't need to select a cert */
return 0;
}
@@ -1634,23 +1670,34 @@ _gnutls_select_server_cert(gnutls_session_t session, const gnutls_cipher_suite_e
return gnutls_assert_val(ret);
if (session->internals.selected_cert_list_length == 0)
- return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
-
- if (unlikely(session->internals.selected_cert_list == NULL)) {
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+
+ if (unlikely
+ (session->internals.selected_cert_list == NULL)) {
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
_gnutls_debug_log("Selected (%s) cert\n",
- gnutls_pk_get_name(session->internals.selected_cert_list[0].pubkey->params.algo));
+ gnutls_pk_get_name(session->
+ internals.selected_cert_list
+ [0].pubkey->
+ params.algo));
}
if (session->internals.selected_key == NULL)
- return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INSUFFICIENT_CREDENTIALS);
ret = cert_select_sign_algorithm(session,
- &session->internals.selected_cert_list[0],
- session->internals.selected_key,
- cs);
+ &session->
+ internals.selected_cert_list
+ [0],
+ session->
+ internals.selected_key, cs);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1663,8 +1710,8 @@ _gnutls_select_server_cert(gnutls_session_t session, const gnutls_cipher_suite_e
get_server_name(session, (unsigned char *)server_name,
sizeof(server_name));
- _gnutls_handshake_log ("HSK[%p]: Requested server name: '%s'\n",
- session, server_name);
+ _gnutls_handshake_log("HSK[%p]: Requested server name: '%s'\n",
+ session, server_name);
idx = -1; /* default is use no certificate */
/* find certificates that match the requested server_name
@@ -1680,16 +1727,22 @@ _gnutls_select_server_cert(gnutls_session_t session, const gnutls_cipher_suite_e
/* if requested algorithms are also compatible select it */
ret = cert_select_sign_algorithm(session,
- &cred->certs[i].cert_list[0],
- cred->certs[i].pkey,
+ &cred->certs
+ [i].cert_list
+ [0],
+ cred->
+ certs[i].pkey,
cs);
if (ret >= 0) {
idx = i;
- _gnutls_debug_log("Selected (%s) cert based on ciphersuite %x.%x: %s\n",
- gnutls_pk_get_name(cred->certs[i].cert_list[0].pubkey->params.algo),
- (unsigned)cs->id[0],
- (unsigned)cs->id[1],
- cs->name);
+ _gnutls_debug_log
+ ("Selected (%s) cert based on ciphersuite %x.%x: %s\n",
+ gnutls_pk_get_name(cred->certs
+ [i].cert_list
+ [0].pubkey->
+ params.algo),
+ (unsigned)cs->id[0],
+ (unsigned)cs->id[1], cs->name);
/* found */
goto finished;
}
@@ -1711,15 +1764,15 @@ _gnutls_select_server_cert(gnutls_session_t session, const gnutls_cipher_suite_e
ret = cert_select_sign_algorithm(session,
&cred->certs[i].cert_list[0],
- cred->certs[i].pkey,
- cs);
+ cred->certs[i].pkey, cs);
if (ret >= 0) {
idx = i;
- _gnutls_debug_log("Selected (%s) cert based on ciphersuite %x.%x: %s\n",
- gnutls_pk_get_name(cred->certs[i].cert_list[0].pubkey->params.algo),
- (unsigned)cs->id[0],
- (unsigned)cs->id[1],
- cs->name);
+ _gnutls_debug_log
+ ("Selected (%s) cert based on ciphersuite %x.%x: %s\n",
+ gnutls_pk_get_name(cred->certs[i].
+ cert_list[0].pubkey->params.
+ algo), (unsigned)cs->id[0],
+ (unsigned)cs->id[1], cs->name);
/* found */
goto finished;
}
@@ -1751,8 +1804,7 @@ _gnutls_select_server_cert(gnutls_session_t session, const gnutls_cipher_suite_e
cred->certs[idx].cert_list_length,
ocsp, nocsp,
cred->certs[idx].pkey, 0,
- ocsp_func,
- ocsp_ptr);
+ ocsp_func, ocsp_ptr);
} else {
/* Certificate does not support REQUESTED_ALGO. */
return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
@@ -1849,7 +1901,8 @@ _gnutls_proc_dhe_signature(gnutls_session_t session, uint8_t * data,
int sigsize;
gnutls_datum_t signature;
int ret;
- cert_auth_info_t info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ cert_auth_info_t info =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
ssize_t data_size = _data_size;
gnutls_pcert_st peer_cert;
gnutls_sign_algorithm_t sign_algo = GNUTLS_SIGN_UNKNOWN;
@@ -1871,7 +1924,8 @@ _gnutls_proc_dhe_signature(gnutls_session_t session, uint8_t * data,
return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
}
- vflags = cred->verify_flags | session->internals.additional_verify_flags;
+ vflags =
+ cred->verify_flags | session->internals.additional_verify_flags;
/* VERIFY SIGNATURE */
if (_gnutls_version_has_selectable_sighash(ver)) {
diff --git a/lib/auth/cert.h b/lib/auth/cert.h
index 29b7220f7b..d571526c3f 100644
--- a/lib/auth/cert.h
+++ b/lib/auth/cert.h
@@ -22,17 +22,17 @@
*/
#ifndef GNUTLS_LIB_AUTH_CERT_H
-#define GNUTLS_LIB_AUTH_CERT_H
+# define GNUTLS_LIB_AUTH_CERT_H
-#include "auth.h"
-#include <auth/dh_common.h>
-#include <x509/x509_int.h>
-#include <gnutls/abstract.h>
-#include <gnutls/compat.h>
-#include <str_array.h>
-#include "abstract_int.h"
+# include "auth.h"
+# include <auth/dh_common.h>
+# include <x509/x509_int.h>
+# include <gnutls/abstract.h>
+# include <gnutls/compat.h>
+# include <str_array.h>
+# include "abstract_int.h"
-#define MAX_OCSP_RESPONSES 8
+# define MAX_OCSP_RESPONSES 8
/* We use the structure below to hold a certificate chain
* with corresponding public/private key pair. This structure will
@@ -46,7 +46,7 @@ typedef struct {
gnutls_str_array_t names; /* the names in the first certificate */
gnutls_status_request_ocsp_func ocsp_func;
- void *ocsp_func_ptr; /* corresponding OCSP response function + ptr */
+ void *ocsp_func_ptr; /* corresponding OCSP response function + ptr */
gnutls_ocsp_data_st ocsp_data[MAX_OCSP_RESPONSES];
unsigned int ocsp_data_length;
@@ -60,8 +60,8 @@ typedef struct {
*/
typedef struct gnutls_certificate_credentials_st {
gnutls_dh_params_t dh_params;
- unsigned deinit_dh_params; /* if the internal values are set */
- gnutls_sec_param_t dh_sec_param; /* used in RFC7919 negotiation */
+ unsigned deinit_dh_params; /* if the internal values are set */
+ gnutls_sec_param_t dh_sec_param; /* used in RFC7919 negotiation */
/* this callback is used to retrieve the DH or RSA
* parameters.
@@ -80,7 +80,7 @@ typedef struct gnutls_certificate_credentials_st {
/* X509 specific stuff */
gnutls_x509_trust_list_t tlist;
- unsigned flags; /* gnutls_certificate_flags */
+ unsigned flags; /* gnutls_certificate_flags */
unsigned int verify_flags; /* flags to be used at
* certificate verification.
*/
@@ -89,7 +89,7 @@ typedef struct gnutls_certificate_credentials_st {
/* It's a mess here. However we need to keep the old 3 functions
* for compatibility */
- gnutls_certificate_retrieve_function *legacy_cert_cb1; /* deprecated */
+ gnutls_certificate_retrieve_function *legacy_cert_cb1; /* deprecated */
gnutls_certificate_retrieve_function2 *legacy_cert_cb2;
gnutls_certificate_retrieve_function3 *get_cert_callback3;
@@ -101,7 +101,7 @@ typedef struct gnutls_certificate_credentials_st {
/* OCSP */
gnutls_status_request_ocsp_func glob_ocsp_func;
- void *glob_ocsp_func_ptr; /* corresponding OCSP response function */
+ void *glob_ocsp_func_ptr; /* corresponding OCSP response function */
/* This is only used by server to indicate whether this
* credentials can be used for signing in TLS 1.3. */
@@ -148,12 +148,15 @@ int _gnutls_get_selected_cert(gnutls_session_t session,
int
_gnutls_select_client_cert(gnutls_session_t session,
const uint8_t * _data, size_t _data_size,
- gnutls_pk_algorithm_t * pk_algos, int pk_algos_length);
+ gnutls_pk_algorithm_t * pk_algos,
+ int pk_algos_length);
-int _gnutls_pcert_to_auth_info(cert_auth_info_t info, gnutls_pcert_st * certs, size_t ncerts);
+int _gnutls_pcert_to_auth_info(cert_auth_info_t info, gnutls_pcert_st * certs,
+ size_t ncerts);
int
-_gnutls_select_server_cert(gnutls_session_t session, const gnutls_cipher_suite_entry_st *cs);
+_gnutls_select_server_cert(gnutls_session_t session,
+ const gnutls_cipher_suite_entry_st * cs);
void _gnutls_selected_certs_deinit(gnutls_session_t session);
int _gnutls_get_auth_info_pcert(gnutls_pcert_st * gcert,
@@ -170,20 +173,21 @@ int _gnutls_gen_dhe_signature(gnutls_session_t session,
gnutls_buffer_st * data, uint8_t * plain,
unsigned plain_size);
int _gnutls_proc_dhe_signature(gnutls_session_t session, uint8_t * data,
- size_t _data_size,
- gnutls_datum_t * vparams);
+ size_t _data_size, gnutls_datum_t * vparams);
-int _gnutls_gen_rawpk_crt(gnutls_session_t session, gnutls_buffer_st* data);
+int _gnutls_gen_rawpk_crt(gnutls_session_t session, gnutls_buffer_st * data);
int _gnutls_proc_rawpk_crt(gnutls_session_t session,
- uint8_t * data, size_t data_size);
+ uint8_t * data, size_t data_size);
-inline static unsigned get_key_usage(gnutls_session_t session, gnutls_pubkey_t pubkey)
+inline static unsigned get_key_usage(gnutls_session_t session,
+ gnutls_pubkey_t pubkey)
{
if (unlikely(session->internals.priorities &&
- session->internals.priorities->allow_server_key_usage_violation))
+ session->internals.
+ priorities->allow_server_key_usage_violation))
return 0;
else
return pubkey->key_usage;
}
-#endif /* GNUTLS_LIB_AUTH_CERT_H */
+#endif /* GNUTLS_LIB_AUTH_CERT_H */
diff --git a/lib/auth/dh_common.c b/lib/auth/dh_common.c
index fcd696d4d6..e5f8930402 100644
--- a/lib/auth/dh_common.c
+++ b/lib/auth/dh_common.c
@@ -60,9 +60,9 @@ _gnutls_proc_dh_common_client_kx(gnutls_session_t session,
size_t _n_Y;
int ret;
ssize_t data_size = _data_size;
- gnutls_datum_t tmp_dh_key = {NULL, 0};
+ gnutls_datum_t tmp_dh_key = { NULL, 0 };
gnutls_pk_params_st peer_pub;
-
+
gnutls_pk_params_init(&peer_pub);
DECR_LEN(data_size, 2);
@@ -74,17 +74,21 @@ _gnutls_proc_dh_common_client_kx(gnutls_session_t session,
if (data_size != 0)
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
- if (_gnutls_mpi_init_scan_nz(&session->key.proto.tls12.dh.client_Y, &data[2], _n_Y)) {
+ if (_gnutls_mpi_init_scan_nz
+ (&session->key.proto.tls12.dh.client_Y, &data[2], _n_Y)) {
gnutls_assert();
- return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER; /* most likely zero or illegal size */
+ return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER; /* most likely zero or illegal size */
}
- _gnutls_dh_set_peer_public(session, session->key.proto.tls12.dh.client_Y);
+ _gnutls_dh_set_peer_public(session,
+ session->key.proto.tls12.dh.client_Y);
peer_pub.params[DH_Y] = session->key.proto.tls12.dh.client_Y;
/* calculate the key after calculating the message */
- ret = _gnutls_pk_derive(GNUTLS_PK_DH, &tmp_dh_key, &session->key.proto.tls12.dh.params, &peer_pub);
+ ret =
+ _gnutls_pk_derive(GNUTLS_PK_DH, &tmp_dh_key,
+ &session->key.proto.tls12.dh.params, &peer_pub);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -95,11 +99,10 @@ _gnutls_proc_dh_common_client_kx(gnutls_session_t session,
session->key.key.size = tmp_dh_key.size;
} else { /* In DHE_PSK the key is set differently */
ret =
- _gnutls_set_psk_session_key(session, psk_key,
- &tmp_dh_key);
+ _gnutls_set_psk_session_key(session, psk_key, &tmp_dh_key);
_gnutls_free_temp_key_datum(&tmp_dh_key);
}
-
+
if (ret < 0) {
gnutls_assert();
goto error;
@@ -126,9 +129,9 @@ _gnutls_gen_dh_common_client_kx_int(gnutls_session_t session,
{
int ret;
gnutls_pk_params_st peer_pub;
- gnutls_datum_t tmp_dh_key = {NULL, 0};
+ gnutls_datum_t tmp_dh_key = { NULL, 0 };
unsigned init_pos = data->length;
-
+
gnutls_pk_params_init(&peer_pub);
ret =
@@ -137,18 +140,26 @@ _gnutls_gen_dh_common_client_kx_int(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_dh_set_secret_bits(session, _gnutls_mpi_get_nbits(session->key.proto.tls12.dh.params.params[DH_X]));
+ _gnutls_dh_set_secret_bits(session,
+ _gnutls_mpi_get_nbits(session->key.
+ proto.tls12.dh.
+ params.params[DH_X]));
- ret = _gnutls_buffer_append_mpi(data, 16, session->key.proto.tls12.dh.params.params[DH_Y], 0);
+ ret =
+ _gnutls_buffer_append_mpi(data, 16,
+ session->key.proto.tls12.dh.
+ params.params[DH_Y], 0);
if (ret < 0) {
gnutls_assert();
goto error;
}
-
+
peer_pub.params[DH_Y] = session->key.proto.tls12.dh.client_Y;
/* calculate the key after calculating the message */
- ret = _gnutls_pk_derive(GNUTLS_PK_DH, &tmp_dh_key, &session->key.proto.tls12.dh.params, &peer_pub);
+ ret =
+ _gnutls_pk_derive(GNUTLS_PK_DH, &tmp_dh_key,
+ &session->key.proto.tls12.dh.params, &peer_pub);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -158,9 +169,7 @@ _gnutls_gen_dh_common_client_kx_int(gnutls_session_t session,
session->key.key.data = tmp_dh_key.data;
session->key.key.size = tmp_dh_key.size;
} else { /* In DHE_PSK the key is set differently */
- ret =
- _gnutls_set_psk_session_key(session, pskkey,
- &tmp_dh_key);
+ ret = _gnutls_set_psk_session_key(session, pskkey, &tmp_dh_key);
_gnutls_free_temp_key_datum(&tmp_dh_key);
}
@@ -225,7 +234,8 @@ _gnutls_proc_dh_common_server_kx(gnutls_session_t session,
_n_g = n_g;
_n_p = n_p;
- if (_gnutls_mpi_init_scan_nz(&session->key.proto.tls12.dh.client_Y, data_Y, _n_Y) != 0) {
+ if (_gnutls_mpi_init_scan_nz
+ (&session->key.proto.tls12.dh.client_Y, data_Y, _n_Y) != 0) {
gnutls_assert();
return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
}
@@ -234,56 +244,77 @@ _gnutls_proc_dh_common_server_kx(gnutls_session_t session,
if (session->internals.priorities->groups.have_ffdhe != 0) {
/* verify whether the received parameters match the advertised, otherwise
* log that. */
- for (j=0;j<session->internals.priorities->groups.size;j++) {
- if (session->internals.priorities->groups.entry[j]->generator &&
- session->internals.priorities->groups.entry[j]->generator->size == n_g &&
- session->internals.priorities->groups.entry[j]->prime->size == n_p &&
- memcmp(session->internals.priorities->groups.entry[j]->generator->data,
- data_g, n_g) == 0 &&
- memcmp(session->internals.priorities->groups.entry[j]->prime->data,
- data_p, n_p) == 0) {
+ for (j = 0; j < session->internals.priorities->groups.size; j++) {
+ if (session->internals.priorities->groups.
+ entry[j]->generator
+ && session->internals.priorities->groups.
+ entry[j]->generator->size == n_g
+ && session->internals.priorities->groups.
+ entry[j]->prime->size == n_p
+ && memcmp(session->internals.priorities->
+ groups.entry[j]->generator->data, data_g,
+ n_g) == 0
+ && memcmp(session->internals.priorities->
+ groups.entry[j]->prime->data, data_p,
+ n_p) == 0) {
session->internals.hsk_flags |= HSK_USED_FFDHE;
- _gnutls_session_group_set(session, session->internals.priorities->groups.entry[j]);
- session->key.proto.tls12.dh.params.qbits = *session->internals.priorities->groups.entry[j]->q_bits;
- data_q = session->internals.priorities->groups.entry[j]->q->data;
- _n_q = session->internals.priorities->groups.entry[j]->q->size;
+ _gnutls_session_group_set(session,
+ session->
+ internals.priorities->
+ groups.entry[j]);
+ session->key.proto.tls12.dh.params.qbits =
+ *session->internals.priorities->
+ groups.entry[j]->q_bits;
+ data_q =
+ session->internals.priorities->
+ groups.entry[j]->q->data;
+ _n_q =
+ session->internals.priorities->
+ groups.entry[j]->q->size;
break;
}
}
if (!(session->internals.hsk_flags & HSK_USED_FFDHE)) {
- _gnutls_audit_log(session, "FFDHE groups advertised, but server didn't support it; falling back to server's choice\n");
+ _gnutls_audit_log(session,
+ "FFDHE groups advertised, but server didn't support it; falling back to server's choice\n");
}
}
-
-#ifdef ENABLE_FIPS140
+# ifdef ENABLE_FIPS140
if (gnutls_fips140_mode_enabled() &&
- !_gnutls_dh_prime_match_fips_approved(data_p, n_p, data_g, n_g, NULL, NULL)) {
+ !_gnutls_dh_prime_match_fips_approved(data_p, n_p, data_g, n_g,
+ NULL, NULL)) {
gnutls_assert();
return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
}
-#endif
+# endif
- if (_gnutls_mpi_init_scan_nz(&session->key.proto.tls12.dh.params.params[DH_G], data_g, _n_g) != 0) {
+ if (_gnutls_mpi_init_scan_nz
+ (&session->key.proto.tls12.dh.params.params[DH_G], data_g,
+ _n_g) != 0) {
gnutls_assert();
return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
}
- if (_gnutls_mpi_init_scan_nz(&session->key.proto.tls12.dh.params.params[DH_P], data_p, _n_p) != 0) {
+ if (_gnutls_mpi_init_scan_nz
+ (&session->key.proto.tls12.dh.params.params[DH_P], data_p,
+ _n_p) != 0) {
gnutls_assert();
/* we release now because session->key.proto.tls12.dh.params.params_nr is not yet set */
- _gnutls_mpi_release(&session->key.proto.tls12.dh.params.params[DH_G]);
+ _gnutls_mpi_release(&session->key.proto.tls12.dh.
+ params.params[DH_G]);
return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
}
- if (data_q && _gnutls_mpi_init_scan_nz(
- &session->key.proto.tls12.dh.params.params[DH_Q],
- data_q, _n_q) != 0) {
+ if (data_q
+ && _gnutls_mpi_init_scan_nz(&session->key.proto.tls12.dh.
+ params.params[DH_Q], data_q,
+ _n_q) != 0) {
/* we release now because params_nr is not yet set */
- _gnutls_mpi_release(
- &session->key.proto.tls12.dh.params.params[DH_P]);
- _gnutls_mpi_release(
- &session->key.proto.tls12.dh.params.params[DH_G]);
+ _gnutls_mpi_release(&session->key.proto.tls12.dh.
+ params.params[DH_P]);
+ _gnutls_mpi_release(&session->key.proto.tls12.dh.
+ params.params[DH_G]);
return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
}
@@ -298,15 +329,20 @@ _gnutls_proc_dh_common_server_kx(gnutls_session_t session,
return bits;
}
- p_bits = _gnutls_mpi_get_nbits(session->key.proto.tls12.dh.params.params[DH_P]);
+ p_bits =
+ _gnutls_mpi_get_nbits(session->key.proto.tls12.dh.
+ params.params[DH_P]);
if (p_bits < bits) {
/* the prime used by the peer is not acceptable
*/
gnutls_assert();
_gnutls_debug_log
("Received a prime of %u bits, limit is %u\n",
- (unsigned) _gnutls_mpi_get_nbits(session->key.proto.tls12.dh.params.params[DH_P]),
- (unsigned) bits);
+ (unsigned)_gnutls_mpi_get_nbits(session->key.
+ proto.tls12.dh.
+ params.params
+ [DH_P]),
+ (unsigned)bits);
return GNUTLS_E_DH_PRIME_UNACCEPTABLE;
}
@@ -314,15 +350,17 @@ _gnutls_proc_dh_common_server_kx(gnutls_session_t session,
gnutls_assert();
_gnutls_debug_log
("Received a prime of %u bits, limit is %u\n",
- (unsigned) p_bits,
- (unsigned) DEFAULT_MAX_VERIFY_BITS);
+ (unsigned)p_bits,
+ (unsigned)DEFAULT_MAX_VERIFY_BITS);
return GNUTLS_E_DH_PRIME_UNACCEPTABLE;
}
}
- _gnutls_dh_save_group(session, session->key.proto.tls12.dh.params.params[DH_G],
- session->key.proto.tls12.dh.params.params[DH_P]);
- _gnutls_dh_set_peer_public(session, session->key.proto.tls12.dh.client_Y);
+ _gnutls_dh_save_group(session,
+ session->key.proto.tls12.dh.params.params[DH_G],
+ session->key.proto.tls12.dh.params.params[DH_P]);
+ _gnutls_dh_set_peer_public(session,
+ session->key.proto.tls12.dh.client_Y);
ret = n_Y + n_p + n_g + 6;
@@ -339,8 +377,9 @@ _gnutls_dh_common_print_server_kx(gnutls_session_t session,
if (q_bits < 192 && q_bits != 0) {
gnutls_assert();
- _gnutls_debug_log("too small q_bits value for DH: %u\n", q_bits);
- q_bits = 0; /* auto-detect */
+ _gnutls_debug_log("too small q_bits value for DH: %u\n",
+ q_bits);
+ q_bits = 0; /* auto-detect */
}
/* Y=g^x mod p */
@@ -350,21 +389,33 @@ _gnutls_dh_common_print_server_kx(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_dh_set_secret_bits(session, _gnutls_mpi_get_nbits(session->key.proto.tls12.dh.params.params[DH_X]));
+ _gnutls_dh_set_secret_bits(session,
+ _gnutls_mpi_get_nbits(session->key.
+ proto.tls12.dh.
+ params.params[DH_X]));
- ret = _gnutls_buffer_append_mpi(data, 16, session->key.proto.tls12.dh.params.params[DH_P], 0);
+ ret =
+ _gnutls_buffer_append_mpi(data, 16,
+ session->key.proto.tls12.dh.
+ params.params[DH_P], 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = _gnutls_buffer_append_mpi(data, 16, session->key.proto.tls12.dh.params.params[DH_G], 0);
+ ret =
+ _gnutls_buffer_append_mpi(data, 16,
+ session->key.proto.tls12.dh.
+ params.params[DH_G], 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = _gnutls_buffer_append_mpi(data, 16, session->key.proto.tls12.dh.params.params[DH_Y], 0);
+ ret =
+ _gnutls_buffer_append_mpi(data, 16,
+ session->key.proto.tls12.dh.
+ params.params[DH_Y], 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -372,7 +423,7 @@ _gnutls_dh_common_print_server_kx(gnutls_session_t session,
ret = data->length - init_pos;
-cleanup:
+ cleanup:
return ret;
}
diff --git a/lib/auth/dh_common.h b/lib/auth/dh_common.h
index 7584f89cf7..cc523d633e 100644
--- a/lib/auth/dh_common.h
+++ b/lib/auth/dh_common.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_LIB_AUTH_DH_COMMON_H
-#define GNUTLS_LIB_AUTH_DH_COMMON_H
+# define GNUTLS_LIB_AUTH_DH_COMMON_H
-#include <auth.h>
+# include <auth.h>
typedef struct {
int secret_bits;
@@ -42,9 +42,9 @@ int _gnutls_gen_dh_common_client_kx(gnutls_session_t, gnutls_buffer_st *);
int _gnutls_proc_dh_common_client_kx(gnutls_session_t session,
uint8_t * data, size_t _data_size,
gnutls_datum_t * psk_key);
-int _gnutls_dh_common_print_server_kx(gnutls_session_t,
+int _gnutls_dh_common_print_server_kx(gnutls_session_t,
gnutls_buffer_st * data);
int _gnutls_proc_dh_common_server_kx(gnutls_session_t session,
uint8_t * data, size_t _data_size);
-#endif /* GNUTLS_LIB_AUTH_DH_COMMON_H */
+#endif /* GNUTLS_LIB_AUTH_DH_COMMON_H */
diff --git a/lib/auth/dhe.c b/lib/auth/dhe.c
index 1d16cde355..5a01457675 100644
--- a/lib/auth/dhe.c
+++ b/lib/auth/dhe.c
@@ -82,8 +82,7 @@ const mod_auth_st dhe_dss_auth_struct = {
#endif
-static int
-gen_dhe_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
+static int gen_dhe_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
int ret = 0;
gnutls_certificate_credentials_t cred;
@@ -97,22 +96,21 @@ gen_dhe_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
}
if ((ret = _gnutls_auth_info_init(session, GNUTLS_CRD_CERTIFICATE,
- sizeof(cert_auth_info_st),
- 1)) < 0) {
+ sizeof(cert_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
ret =
- _gnutls_figure_dh_params(session, cred->dh_params, cred->params_func, cred->dh_sec_param);
+ _gnutls_figure_dh_params(session, cred->dh_params,
+ cred->params_func, cred->dh_sec_param);
if (ret < 0) {
return gnutls_assert_val(ret);
}
sig_pos = data->length;
- ret =
- _gnutls_dh_common_print_server_kx(session, data);
+ ret = _gnutls_dh_common_print_server_kx(session, data);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -120,13 +118,11 @@ gen_dhe_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
/* Generate the signature. */
return _gnutls_gen_dhe_signature(session, data, &data->data[sig_pos],
- data->length-sig_pos);
+ data->length - sig_pos);
}
-
static int
-proc_dhe_server_kx(gnutls_session_t session, uint8_t * data,
- size_t _data_size)
+proc_dhe_server_kx(gnutls_session_t session, uint8_t * data, size_t _data_size)
{
gnutls_datum_t vdata;
int ret;
@@ -142,10 +138,8 @@ proc_dhe_server_kx(gnutls_session_t session, uint8_t * data,
_data_size - ret, &vdata);
}
-
static int
-proc_dhe_client_kx(gnutls_session_t session, uint8_t * data,
- size_t _data_size)
+proc_dhe_client_kx(gnutls_session_t session, uint8_t * data, size_t _data_size)
{
return _gnutls_proc_dh_common_client_kx(session, data, _data_size,
NULL);
diff --git a/lib/auth/dhe_psk.c b/lib/auth/dhe_psk.c
index 81e0e1a627..6ff31012db 100644
--- a/lib/auth/dhe_psk.c
+++ b/lib/auth/dhe_psk.c
@@ -32,17 +32,17 @@
/* Contains PSK code for DHE and ECDHE
*/
-#include "auth.h"
-#include "errors.h"
-#include "dh.h"
-#include <auth/psk.h>
-#include "num.h"
-#include "mpi.h"
-#include <state.h>
-#include <auth/dh_common.h>
-#include <auth/ecdhe.h>
-#include <datum.h>
-#include <auth/psk_passwd.h>
+# include "auth.h"
+# include "errors.h"
+# include "dh.h"
+# include <auth/psk.h>
+# include "num.h"
+# include "mpi.h"
+# include <state.h>
+# include <auth/dh_common.h>
+# include <auth/ecdhe.h>
+# include <datum.h>
+# include <auth/psk_passwd.h>
static int
proc_ecdhe_psk_server_kx(gnutls_session_t session, uint8_t * data,
@@ -56,7 +56,7 @@ static int gen_ecdhe_psk_server_kx(gnutls_session_t session,
gnutls_buffer_st * data);
static int proc_dhe_psk_client_kx(gnutls_session_t session, uint8_t * data,
size_t _data_size);
-#ifdef ENABLE_DHE
+# ifdef ENABLE_DHE
const mod_auth_st dhe_psk_auth_struct = {
"DHE PSK",
NULL,
@@ -73,9 +73,9 @@ const mod_auth_st dhe_psk_auth_struct = {
NULL,
NULL
};
-#endif
+# endif
-#ifdef ENABLE_ECDHE
+# ifdef ENABLE_ECDHE
const mod_auth_st ecdhe_psk_auth_struct = {
"ECDHE PSK",
NULL,
@@ -92,7 +92,7 @@ const mod_auth_st ecdhe_psk_auth_struct = {
NULL,
NULL
};
-#endif
+# endif
static int
gen_ecdhe_psk_client_kx(gnutls_session_t session, gnutls_buffer_st * data)
@@ -106,8 +106,7 @@ gen_ecdhe_psk_client_kx(gnutls_session_t session, gnutls_buffer_st * data)
_gnutls_get_cred(session, GNUTLS_CRD_PSK);
if (cred == NULL)
- return
- gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
ret = _gnutls_find_psk_key(session, cred, &username, &key, &free);
if (ret < 0)
@@ -130,7 +129,7 @@ gen_ecdhe_psk_client_kx(gnutls_session_t session, gnutls_buffer_st * data)
ret = data->length - init_pos;
- cleanup:
+ cleanup:
if (free) {
_gnutls_free_datum(&username);
_gnutls_free_temp_key_datum(&key);
@@ -151,8 +150,7 @@ gen_dhe_psk_client_kx(gnutls_session_t session, gnutls_buffer_st * data)
_gnutls_get_cred(session, GNUTLS_CRD_PSK);
if (cred == NULL)
- return
- gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
ret = _gnutls_find_psk_key(session, cred, &username, &key, &free);
if (ret < 0)
@@ -175,7 +173,7 @@ gen_dhe_psk_client_kx(gnutls_session_t session, gnutls_buffer_st * data)
ret = data->length - init_pos;
- cleanup:
+ cleanup:
if (free) {
_gnutls_free_datum(&username);
_gnutls_free_temp_key_datum(&key);
@@ -189,7 +187,7 @@ gen_dhe_psk_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
int ret;
gnutls_psk_server_credentials_t cred;
- gnutls_datum_t hint = {NULL, 0};
+ gnutls_datum_t hint = { NULL, 0 };
cred = (gnutls_psk_server_credentials_t)
_gnutls_get_cred(session, GNUTLS_CRD_PSK);
@@ -200,13 +198,14 @@ gen_dhe_psk_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
- sizeof(psk_auth_info_st), 1)) < 0) {
+ sizeof(psk_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
ret =
- _gnutls_figure_dh_params(session, cred->dh_params, cred->params_func, cred->dh_sec_param);
+ _gnutls_figure_dh_params(session, cred->dh_params,
+ cred->params_func, cred->dh_sec_param);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -221,8 +220,7 @@ gen_dhe_psk_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
if (ret < 0)
return gnutls_assert_val(ret);
- ret =
- _gnutls_dh_common_print_server_kx(session, data);
+ ret = _gnutls_dh_common_print_server_kx(session, data);
if (ret < 0)
gnutls_assert();
@@ -234,11 +232,11 @@ gen_ecdhe_psk_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
int ret;
gnutls_psk_server_credentials_t cred;
- gnutls_datum_t hint = {NULL, 0};
+ gnutls_datum_t hint = { NULL, 0 };
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
- sizeof(psk_auth_info_st), 1)) < 0) {
+ sizeof(psk_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
@@ -261,15 +259,13 @@ gen_ecdhe_psk_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
return gnutls_assert_val(ret);
ret = _gnutls_ecdh_common_print_server_kx(session, data,
- get_group
- (session));
+ get_group(session));
if (ret < 0)
gnutls_assert();
return ret;
}
-
static int
proc_dhe_psk_client_kx(gnutls_session_t session, uint8_t * data,
size_t _data_size)
@@ -291,7 +287,7 @@ proc_dhe_psk_client_kx(gnutls_session_t session, uint8_t * data,
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
- sizeof(psk_auth_info_st), 1)) < 0) {
+ sizeof(psk_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
@@ -324,7 +320,8 @@ proc_dhe_psk_client_kx(gnutls_session_t session, uint8_t * data,
data += username.size + 2;
ret =
- _gnutls_psk_pwd_find_entry(session, info->username, info->username_len, &psk_key);
+ _gnutls_psk_pwd_find_entry(session, info->username,
+ info->username_len, &psk_key);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -358,7 +355,7 @@ proc_ecdhe_psk_client_kx(gnutls_session_t session, uint8_t * data,
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
- sizeof(psk_auth_info_st), 1)) < 0) {
+ sizeof(psk_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
@@ -378,7 +375,6 @@ proc_ecdhe_psk_client_kx(gnutls_session_t session, uint8_t * data,
return GNUTLS_E_INTERNAL_ERROR;
}
-
if (username.size > MAX_USERNAME_SIZE) {
gnutls_assert();
return GNUTLS_E_ILLEGAL_SRP_USERNAME;
@@ -394,13 +390,13 @@ proc_ecdhe_psk_client_kx(gnutls_session_t session, uint8_t * data,
/* should never fail. It will always return a key even if it is
* a random one */
ret =
- _gnutls_psk_pwd_find_entry(session, info->username, info->username_len, &psk_key);
+ _gnutls_psk_pwd_find_entry(session, info->username,
+ info->username_len, &psk_key);
if (ret < 0)
return gnutls_assert_val(ret);
ret = _gnutls_proc_ecdh_common_client_kx(session, data, data_size,
- get_group
- (session), &psk_key);
+ get_group(session), &psk_key);
_gnutls_free_key_datum(&psk_key);
@@ -420,7 +416,7 @@ proc_dhe_psk_server_kx(gnutls_session_t session, uint8_t * data,
/* set auth_info */
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
- sizeof(psk_auth_info_st), 1)) < 0) {
+ sizeof(psk_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
@@ -468,7 +464,7 @@ proc_ecdhe_psk_server_kx(gnutls_session_t session, uint8_t * data,
/* set auth_info */
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
- sizeof(psk_auth_info_st), 1)) < 0) {
+ sizeof(psk_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
diff --git a/lib/auth/ecdhe.c b/lib/auth/ecdhe.c
index a045d306dc..350cb27da7 100644
--- a/lib/auth/ecdhe.c
+++ b/lib/auth/ecdhe.c
@@ -88,7 +88,7 @@ const mod_auth_st ecdhe_rsa_auth_struct = {
static int calc_ecdh_key(gnutls_session_t session,
gnutls_datum_t * psk_key,
- const gnutls_ecc_curve_entry_st *ecurve)
+ const gnutls_ecc_curve_entry_st * ecurve)
{
gnutls_pk_params_st pub;
int ret;
@@ -111,11 +111,10 @@ static int calc_ecdh_key(gnutls_session_t session,
if (psk_key == NULL) {
memcpy(&session->key.key, &tmp_dh_key, sizeof(gnutls_datum_t));
- tmp_dh_key.data = NULL; /* no longer needed */
+ tmp_dh_key.data = NULL; /* no longer needed */
} else {
ret =
- _gnutls_set_psk_session_key(session, psk_key,
- &tmp_dh_key);
+ _gnutls_set_psk_session_key(session, psk_key, &tmp_dh_key);
_gnutls_free_temp_key_datum(&tmp_dh_key);
if (ret < 0) {
@@ -126,7 +125,7 @@ static int calc_ecdh_key(gnutls_session_t session,
ret = 0;
- cleanup:
+ cleanup:
/* no longer needed */
_gnutls_mpi_release(&session->key.proto.tls12.ecdh.x);
_gnutls_mpi_release(&session->key.proto.tls12.ecdh.y);
@@ -137,8 +136,8 @@ static int calc_ecdh_key(gnutls_session_t session,
int _gnutls_proc_ecdh_common_client_kx(gnutls_session_t session,
uint8_t * data, size_t _data_size,
- const struct gnutls_group_entry_st *group,
- gnutls_datum_t * psk_key)
+ const struct gnutls_group_entry_st
+ *group, gnutls_datum_t * psk_key)
{
ssize_t data_size = _data_size;
int ret, i = 0;
@@ -148,7 +147,7 @@ int _gnutls_proc_ecdh_common_client_kx(gnutls_session_t session,
if (group == NULL)
return gnutls_assert_val(GNUTLS_E_ECC_NO_SUPPORTED_CURVES);
- ecurve = _gnutls_ecc_curve_get_params(group->curve);
+ ecurve = _gnutls_ecc_curve_get_params(group->curve);
if (ecurve == NULL)
return gnutls_assert_val(GNUTLS_E_ECC_NO_SUPPORTED_CURVES);
@@ -166,8 +165,10 @@ int _gnutls_proc_ecdh_common_client_kx(gnutls_session_t session,
if (ecurve->pk == GNUTLS_PK_EC) {
ret =
_gnutls_ecc_ansi_x962_import(&data[i], point_size,
- &session->key.proto.tls12.ecdh.x,
- &session->key.proto.tls12.ecdh.y);
+ &session->key.proto.tls12.
+ ecdh.x,
+ &session->key.proto.tls12.
+ ecdh.y);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -175,7 +176,9 @@ int _gnutls_proc_ecdh_common_client_kx(gnutls_session_t session,
} else if (ecurve->pk == GNUTLS_PK_ECDH_X25519 ||
ecurve->pk == GNUTLS_PK_ECDH_X448) {
if (ecurve->size != point_size)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
ret = _gnutls_set_datum(&session->key.proto.tls12.ecdh.raw,
&data[i], point_size);
@@ -187,7 +190,8 @@ int _gnutls_proc_ecdh_common_client_kx(gnutls_session_t session,
/* RFC7748 requires to mask the MSB in the final byte
* for X25519 (not X448) */
if (ecurve->id == GNUTLS_ECC_CURVE_X25519) {
- session->key.proto.tls12.ecdh.raw.data[point_size-1] &= 0x7f;
+ session->key.proto.tls12.ecdh.raw.data[point_size -
+ 1] &= 0x7f;
}
} else {
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
@@ -227,8 +231,7 @@ proc_ecdhe_client_kx(gnutls_session_t session,
return _gnutls_proc_ecdh_common_client_kx(session, data,
_data_size,
- get_group
- (session), NULL);
+ get_group(session), NULL);
}
int
@@ -253,7 +256,7 @@ _gnutls_gen_ecdh_common_client_kx_int(gnutls_session_t session,
if (group == NULL)
return gnutls_assert_val(GNUTLS_E_ECC_NO_SUPPORTED_CURVES);
- ecurve = _gnutls_ecc_curve_get_params(group->curve);
+ ecurve = _gnutls_ecc_curve_get_params(group->curve);
if (ecurve == NULL)
return gnutls_assert_val(GNUTLS_E_ECC_NO_SUPPORTED_CURVES);
@@ -269,10 +272,13 @@ _gnutls_gen_ecdh_common_client_kx_int(gnutls_session_t session,
if (pk == GNUTLS_PK_EC) {
ret =
_gnutls_ecc_ansi_x962_export(ecurve->id,
- session->key.proto.tls12.ecdh.params.
+ session->key.proto.tls12.
+ ecdh.params.
params[ECC_X] /* x */ ,
- session->key.proto.tls12.ecdh.params.
- params[ECC_Y] /* y */ , &out);
+ session->key.proto.tls12.
+ ecdh.params.
+ params[ECC_Y] /* y */ ,
+ &out);
if (ret < 0) {
gnutls_assert();
@@ -280,7 +286,8 @@ _gnutls_gen_ecdh_common_client_kx_int(gnutls_session_t session,
}
ret =
- _gnutls_buffer_append_data_prefix(data, 8, out.data, out.size);
+ _gnutls_buffer_append_data_prefix(data, 8, out.data,
+ out.size);
_gnutls_free_datum(&out);
@@ -291,8 +298,12 @@ _gnutls_gen_ecdh_common_client_kx_int(gnutls_session_t session,
} else if (pk == GNUTLS_PK_ECDH_X25519 || pk == GNUTLS_PK_ECDH_X448) {
ret =
_gnutls_buffer_append_data_prefix(data, 8,
- session->key.proto.tls12.ecdh.params.raw_pub.data,
- session->key.proto.tls12.ecdh.params.raw_pub.size);
+ session->key.proto.
+ tls12.ecdh.params.raw_pub.
+ data,
+ session->key.proto.
+ tls12.ecdh.params.raw_pub.
+ size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -319,8 +330,7 @@ proc_ecdhe_server_kx(gnutls_session_t session,
int ret;
gnutls_datum_t vparams;
- ret =
- _gnutls_proc_ecdh_common_server_kx(session, data, _data_size);
+ ret = _gnutls_proc_ecdh_common_server_kx(session, data, _data_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -355,7 +365,8 @@ _gnutls_proc_ecdh_common_server_kx(gnutls_session_t session,
group = _gnutls_tls_id_to_group(_gnutls_read_uint16(&data[i]));
if (group == NULL || group->curve == 0) {
- _gnutls_debug_log("received unknown curve %u.%u\n", (unsigned)data[i], (unsigned)data[i+1]);
+ _gnutls_debug_log("received unknown curve %u.%u\n",
+ (unsigned)data[i], (unsigned)data[i + 1]);
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
} else {
_gnutls_debug_log("received curve %s\n", group->name);
@@ -383,15 +394,19 @@ _gnutls_proc_ecdh_common_server_kx(gnutls_session_t session,
if (ecurve->pk == GNUTLS_PK_EC) {
ret =
_gnutls_ecc_ansi_x962_import(&data[i], point_size,
- &session->key.proto.tls12.ecdh.x,
- &session->key.proto.tls12.ecdh.y);
+ &session->key.proto.tls12.
+ ecdh.x,
+ &session->key.proto.tls12.
+ ecdh.y);
if (ret < 0)
return gnutls_assert_val(ret);
} else if (ecurve->pk == GNUTLS_PK_ECDH_X25519 ||
ecurve->pk == GNUTLS_PK_ECDH_X448) {
if (ecurve->size != point_size)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
ret = _gnutls_set_datum(&session->key.proto.tls12.ecdh.raw,
&data[i], point_size);
@@ -401,7 +416,8 @@ _gnutls_proc_ecdh_common_server_kx(gnutls_session_t session,
/* RFC7748 requires to mask the MSB in the final byte
* for X25519 (not X448) */
if (ecurve->id == GNUTLS_ECC_CURVE_X25519) {
- session->key.proto.tls12.ecdh.raw.data[point_size-1] &= 0x7f;
+ session->key.proto.tls12.ecdh.raw.data[point_size -
+ 1] &= 0x7f;
}
} else {
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
@@ -416,7 +432,7 @@ _gnutls_proc_ecdh_common_server_kx(gnutls_session_t session,
* be inserted */
int _gnutls_ecdh_common_print_server_kx(gnutls_session_t session,
gnutls_buffer_st * data,
- const gnutls_group_entry_st *group)
+ const gnutls_group_entry_st * group)
{
uint8_t p;
int ret;
@@ -438,13 +454,10 @@ int _gnutls_ecdh_common_print_server_kx(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
- ret =
- _gnutls_buffer_append_prefix(data, 16,
- group->tls_id);
+ ret = _gnutls_buffer_append_prefix(data, 16, group->tls_id);
if (ret < 0)
return gnutls_assert_val(ret);
-
/* generate temporal key */
ret =
_gnutls_pk_generate_keys(group->pk, group->curve,
@@ -455,15 +468,19 @@ int _gnutls_ecdh_common_print_server_kx(gnutls_session_t session,
if (group->pk == GNUTLS_PK_EC) {
ret =
_gnutls_ecc_ansi_x962_export(group->curve,
- session->key.proto.tls12.ecdh.params.
+ session->key.proto.tls12.
+ ecdh.params.
params[ECC_X] /* x */ ,
- session->key.proto.tls12.ecdh.params.
- params[ECC_Y] /* y */ , &out);
+ session->key.proto.tls12.
+ ecdh.params.
+ params[ECC_Y] /* y */ ,
+ &out);
if (ret < 0)
return gnutls_assert_val(ret);
ret =
- _gnutls_buffer_append_data_prefix(data, 8, out.data, out.size);
+ _gnutls_buffer_append_data_prefix(data, 8, out.data,
+ out.size);
_gnutls_free_datum(&out);
@@ -473,16 +490,19 @@ int _gnutls_ecdh_common_print_server_kx(gnutls_session_t session,
} else if (group->pk == GNUTLS_PK_ECDH_X25519 ||
group->pk == GNUTLS_PK_ECDH_X448) {
ret =
- _gnutls_buffer_append_data_prefix(data, 8,
- session->key.proto.tls12.ecdh.params.raw_pub.data,
- session->key.proto.tls12.ecdh.params.raw_pub.size);
+ _gnutls_buffer_append_data_prefix(data, 8,
+ session->key.proto.
+ tls12.ecdh.params.raw_pub.
+ data,
+ session->key.proto.
+ tls12.ecdh.params.raw_pub.
+ size);
if (ret < 0)
return gnutls_assert_val(ret);
} else {
return gnutls_assert_val(GNUTLS_E_ECC_NO_SUPPORTED_CURVES);
}
-
return data->length - init_pos;
}
@@ -501,8 +521,7 @@ gen_ecdhe_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
}
if ((ret = _gnutls_auth_info_init(session, GNUTLS_CRD_CERTIFICATE,
- sizeof(cert_auth_info_st),
- 1)) < 0) {
+ sizeof(cert_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
@@ -511,8 +530,7 @@ gen_ecdhe_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
ret =
_gnutls_ecdh_common_print_server_kx(session, data,
- get_group
- (session));
+ get_group(session));
if (ret < 0) {
gnutls_assert();
return ret;
@@ -520,7 +538,7 @@ gen_ecdhe_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
/* Generate the signature. */
return _gnutls_gen_dhe_signature(session, data, &data->data[sig_pos],
- data->length-sig_pos);
+ data->length - sig_pos);
}
#endif
diff --git a/lib/auth/ecdhe.h b/lib/auth/ecdhe.h
index e80e1ba25a..a691360b7f 100644
--- a/lib/auth/ecdhe.h
+++ b/lib/auth/ecdhe.h
@@ -22,9 +22,9 @@
*/
#ifndef GNUTLS_LIB_AUTH_ECDHE_H
-#define GNUTLS_LIB_AUTH_ECDHE_H
+# define GNUTLS_LIB_AUTH_ECDHE_H
-#include <auth.h>
+# include <auth.h>
int
_gnutls_gen_ecdh_common_client_kx(gnutls_session_t session,
@@ -43,10 +43,9 @@ _gnutls_proc_ecdh_common_client_kx(gnutls_session_t session,
int _gnutls_ecdh_common_print_server_kx(gnutls_session_t,
gnutls_buffer_st * data,
- const struct gnutls_group_entry_st *group);
-int _gnutls_proc_ecdh_common_server_kx(gnutls_session_t session,
- uint8_t * data, size_t _data_size);
+ const struct gnutls_group_entry_st
+ *group);
+int _gnutls_proc_ecdh_common_server_kx(gnutls_session_t session, uint8_t * data,
+ size_t _data_size);
-
-
-#endif /* GNUTLS_LIB_AUTH_ECDHE_H */
+#endif /* GNUTLS_LIB_AUTH_ECDHE_H */
diff --git a/lib/auth/psk.c b/lib/auth/psk.c
index cdb1f1b2d0..25eea8785d 100644
--- a/lib/auth/psk.c
+++ b/lib/auth/psk.c
@@ -24,22 +24,20 @@
#ifdef ENABLE_PSK
-#include "errors.h"
-#include "auth.h"
-#include "debug.h"
-#include "num.h"
-#include <auth/psk.h>
-#include <auth/psk_passwd.h>
-#include <str.h>
-#include <datum.h>
-
+# include "errors.h"
+# include "auth.h"
+# include "debug.h"
+# include "num.h"
+# include <auth/psk.h>
+# include <auth/psk_passwd.h>
+# include <str.h>
+# include <datum.h>
static int _gnutls_proc_psk_client_kx(gnutls_session_t, uint8_t *, size_t);
static int
_gnutls_proc_psk_server_kx(gnutls_session_t session, uint8_t * data,
size_t _data_size);
-
const mod_auth_st psk_auth_struct = {
"PSK",
NULL,
@@ -105,12 +103,11 @@ _gnutls_set_psk_session_key(gnutls_session_t session,
ret = 0;
- error:
+ error:
_gnutls_free_temp_key_datum(&pwd_psk);
return ret;
}
-
/* Generates the PSK client key exchange
*
*
@@ -121,12 +118,10 @@ _gnutls_set_psk_session_key(gnutls_session_t session,
* } ClientKeyExchange;
*
*/
-int
-_gnutls_gen_psk_client_kx(gnutls_session_t session,
- gnutls_buffer_st * data)
+int _gnutls_gen_psk_client_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
int ret, free;
- gnutls_datum_t username = {NULL, 0};
+ gnutls_datum_t username = { NULL, 0 };
gnutls_datum_t key;
gnutls_psk_client_credentials_t cred;
psk_auth_info_t info;
@@ -175,7 +170,7 @@ _gnutls_gen_psk_client_kx(gnutls_session_t session,
goto cleanup;
}
- cleanup:
+ cleanup:
if (free) {
gnutls_free(username.data);
_gnutls_free_temp_key_datum(&key);
@@ -184,7 +179,6 @@ _gnutls_gen_psk_client_kx(gnutls_session_t session,
return ret;
}
-
/* just read the username from the client key exchange.
*/
static int
@@ -207,7 +201,7 @@ _gnutls_proc_psk_client_kx(gnutls_session_t session, uint8_t * data,
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
- sizeof(psk_auth_info_st), 1)) < 0) {
+ sizeof(psk_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
@@ -219,7 +213,6 @@ _gnutls_proc_psk_client_kx(gnutls_session_t session, uint8_t * data,
username.data = &data[2];
-
/* copy the username to the auth info structures
*/
info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
@@ -238,7 +231,8 @@ _gnutls_proc_psk_client_kx(gnutls_session_t session, uint8_t * data,
return gnutls_assert_val(ret);
ret =
- _gnutls_psk_pwd_find_entry(session, info->username, info->username_len, &psk_key);
+ _gnutls_psk_pwd_find_entry(session, info->username,
+ info->username_len, &psk_key);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -250,13 +244,12 @@ _gnutls_proc_psk_client_kx(gnutls_session_t session, uint8_t * data,
ret = 0;
- error:
+ error:
_gnutls_free_key_datum(&psk_key);
return ret;
}
-
/* Generates the PSK server key exchange
*
* struct {
@@ -268,9 +261,7 @@ _gnutls_proc_psk_client_kx(gnutls_session_t session, uint8_t * data,
* } ServerKeyExchange;
*
*/
-int
-_gnutls_gen_psk_server_kx(gnutls_session_t session,
- gnutls_buffer_st * data)
+int _gnutls_gen_psk_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
gnutls_psk_server_credentials_t cred;
gnutls_datum_t hint;
@@ -298,7 +289,8 @@ _gnutls_gen_psk_server_kx(gnutls_session_t session,
/* Read the hint from the server key exchange */
static int
-_gnutls_proc_psk_server_kx(gnutls_session_t session, uint8_t * data, size_t _data_size)
+_gnutls_proc_psk_server_kx(gnutls_session_t session, uint8_t * data,
+ size_t _data_size)
{
int ret;
ssize_t data_size = _data_size;
@@ -306,11 +298,15 @@ _gnutls_proc_psk_server_kx(gnutls_session_t session, uint8_t * data, size_t _dat
psk_auth_info_t info;
gnutls_datum_t hint;
- cred = (gnutls_psk_client_credentials_t) _gnutls_get_cred(session, GNUTLS_CRD_PSK);
+ cred =
+ (gnutls_psk_client_credentials_t) _gnutls_get_cred(session,
+ GNUTLS_CRD_PSK);
if (cred == NULL)
return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
- ret = _gnutls_auth_info_init(session, GNUTLS_CRD_PSK, sizeof(psk_auth_info_st), 1);
+ ret =
+ _gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
+ sizeof(psk_auth_info_st), 1);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -327,7 +323,7 @@ _gnutls_proc_psk_server_kx(gnutls_session_t session, uint8_t * data, size_t _dat
if (hint.size > MAX_USERNAME_SIZE)
return gnutls_assert_val(GNUTLS_E_ILLEGAL_SRP_USERNAME);
- ret = _gnutls_copy_psk_hint(info, hint);
+ ret = _gnutls_copy_psk_hint(info, hint);
return ret;
}
diff --git a/lib/auth/psk.h b/lib/auth/psk.h
index 202ee05f99..d5a55f58bc 100644
--- a/lib/auth/psk.h
+++ b/lib/auth/psk.h
@@ -21,15 +21,15 @@
*/
#ifndef GNUTLS_LIB_AUTH_PSK_H
-#define GNUTLS_LIB_AUTH_PSK_H
+# define GNUTLS_LIB_AUTH_PSK_H
-#include <auth.h>
-#include <auth/dh_common.h>
+# include <auth.h>
+# include <auth/dh_common.h>
-#define _gnutls_copy_psk_username(info, datum) \
+# define _gnutls_copy_psk_username(info, datum) \
_gnutls_copy_psk_string(&(info)->username, &(info)->username_len, (datum))
-#define _gnutls_copy_psk_hint(info, datum) \
+# define _gnutls_copy_psk_hint(info, datum) \
_gnutls_copy_psk_string(&(info)->hint, &(info)->hint_len, (datum))
typedef struct gnutls_psk_client_credentials_st {
@@ -75,26 +75,27 @@ typedef struct psk_auth_info_st {
typedef struct psk_auth_info_st psk_auth_info_st;
inline static int
-_gnutls_copy_psk_string(char **dest, uint16_t *dest_len, const gnutls_datum_t str)
+_gnutls_copy_psk_string(char **dest, uint16_t * dest_len,
+ const gnutls_datum_t str)
{
char *_tmp;
assert(MAX_USERNAME_SIZE >= str.size);
-
+
_tmp = gnutls_malloc(str.size + 1);
if (_tmp == NULL)
return GNUTLS_E_MEMORY_ERROR;
memcpy(_tmp, str.data, str.size);
_tmp[str.size] = '\0';
-
+
gnutls_free(*dest);
*dest = _tmp;
*dest_len = str.size;
-
+
return GNUTLS_E_SUCCESS;
}
-#ifdef ENABLE_PSK
+# ifdef ENABLE_PSK
int
_gnutls_set_psk_session_key(gnutls_session_t session, gnutls_datum_t * key,
@@ -103,8 +104,8 @@ int _gnutls_gen_psk_server_kx(gnutls_session_t session,
gnutls_buffer_st * data);
int _gnutls_gen_psk_client_kx(gnutls_session_t, gnutls_buffer_st *);
-#else
-#define _gnutls_set_psk_session_key(x,y,z) GNUTLS_E_UNIMPLEMENTED_FEATURE
-#endif /* ENABLE_PSK */
+# else
+# define _gnutls_set_psk_session_key(x,y,z) GNUTLS_E_UNIMPLEMENTED_FEATURE
+# endif /* ENABLE_PSK */
-#endif /* GNUTLS_LIB_AUTH_PSK_H */
+#endif /* GNUTLS_LIB_AUTH_PSK_H */
diff --git a/lib/auth/psk_passwd.c b/lib/auth/psk_passwd.c
index 2953c2d8ad..35cfff311d 100644
--- a/lib/auth/psk_passwd.c
+++ b/lib/auth/psk_passwd.c
@@ -36,7 +36,6 @@
#include <num.h>
#include <random.h>
-
/* this function parses passwd.psk file. Format is:
* string(username):hex(passwd)
*/
@@ -64,7 +63,7 @@ static int pwd_put_values(gnutls_datum_t * psk, char *str)
if (p[len - 1] == '\n' || p[len - 1] == ' ')
len--;
- tmp.data = (void*)p;
+ tmp.data = (void *)p;
tmp.size = len;
ret = gnutls_hex_decode2(&tmp, psk);
if (ret < 0) {
@@ -75,7 +74,7 @@ static int pwd_put_values(gnutls_datum_t * psk, char *str)
return 0;
}
-static bool username_matches(const gnutls_datum_t *username,
+static bool username_matches(const gnutls_datum_t * username,
const char *line, size_t line_size)
{
int retval;
@@ -102,26 +101,29 @@ static bool username_matches(const gnutls_datum_t *username,
/* if format is in hex, e.g. #FAFAFA */
if (line[0] == '#' && line_size > 1) {
- hexline.data = (void *) &line[1];
+ hexline.data = (void *)&line[1];
hexline.size = i - 1;
if (gnutls_hex_decode2(&hexline, &hex_username) < 0)
return gnutls_assert_val(0);
if (hex_username.size == username->size)
- retval = memcmp(username->data, hex_username.data, username->size);
+ retval =
+ memcmp(username->data, hex_username.data,
+ username->size);
else
retval = -1;
_gnutls_free_datum(&hex_username);
} else {
- retval = strncmp((const char *) username->data, line, MAX(i, username->size));
+ retval =
+ strncmp((const char *)username->data, line,
+ MAX(i, username->size));
}
return (retval == 0);
}
-
/* Randomizes the given password entry. It actually sets a random password.
* Returns 0 on success.
*/
@@ -137,7 +139,7 @@ static int _randomize_psk(gnutls_datum_t * psk)
psk->size = 16;
- ret = gnutls_rnd(GNUTLS_RND_NONCE, (char *) psk->data, 16);
+ ret = gnutls_rnd(GNUTLS_RND_NONCE, (char *)psk->data, 16);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -160,7 +162,7 @@ _gnutls_psk_pwd_find_entry(gnutls_session_t session,
size_t line_size = 0;
int ret;
gnutls_datum_t username_datum = {
- .data = (unsigned char *) username,
+ .data = (unsigned char *)username,
.size = username_len
};
@@ -230,7 +232,7 @@ _gnutls_psk_pwd_find_entry(gnutls_session_t session,
}
ret = 0;
-cleanup:
+ cleanup:
if (fp != NULL)
fclose(fp);
@@ -266,8 +268,7 @@ int _gnutls_find_psk_key(gnutls_session_t session,
*free = 1;
} else
- return
- gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
return 0;
}
diff --git a/lib/auth/psk_passwd.h b/lib/auth/psk_passwd.h
index 3d351f22c7..a1a1d8d83b 100644
--- a/lib/auth/psk_passwd.h
+++ b/lib/auth/psk_passwd.h
@@ -21,7 +21,7 @@
*/
#ifndef GNUTLS_LIB_AUTH_PSK_PASSWD_H
-#define GNUTLS_LIB_AUTH_PSK_PASSWD_H
+# define GNUTLS_LIB_AUTH_PSK_PASSWD_H
/* this is locally allocated. It should be freed using the provided function */
int _gnutls_psk_pwd_find_entry(gnutls_session_t,
@@ -33,4 +33,4 @@ int _gnutls_find_psk_key(gnutls_session_t session,
gnutls_datum_t * username, gnutls_datum_t * key,
int *free);
-#endif /* GNUTLS_LIB_AUTH_PSK_PASSWD_H */
+#endif /* GNUTLS_LIB_AUTH_PSK_PASSWD_H */
diff --git a/lib/auth/rsa.c b/lib/auth/rsa.c
index 8108ee841d..62c86e470a 100644
--- a/lib/auth/rsa.c
+++ b/lib/auth/rsa.c
@@ -66,15 +66,16 @@ static
int check_key_usage_for_enc(gnutls_session_t session, unsigned key_usage)
{
if (key_usage != 0) {
- if (!(key_usage & GNUTLS_KEY_KEY_ENCIPHERMENT) && !(key_usage & GNUTLS_KEY_KEY_AGREEMENT)) {
+ if (!(key_usage & GNUTLS_KEY_KEY_ENCIPHERMENT)
+ && !(key_usage & GNUTLS_KEY_KEY_AGREEMENT)) {
gnutls_assert();
if (session->internals.allow_key_usage_violation == 0) {
_gnutls_audit_log(session,
- "Peer's certificate does not allow encryption. Key usage violation detected.\n");
+ "Peer's certificate does not allow encryption. Key usage violation detected.\n");
return GNUTLS_E_KEY_USAGE_VIOLATION;
} else {
_gnutls_audit_log(session,
- "Peer's certificate does not allow encryption. Key usage violation detected (ignored).\n");
+ "Peer's certificate does not allow encryption. Key usage violation detected (ignored).\n");
}
}
}
@@ -115,7 +116,6 @@ _gnutls_get_public_rsa_params(gnutls_session_t session,
gnutls_assert();
return GNUTLS_E_INTERNAL_ERROR;
}
-
// Get the negotiated server certificate type
cert_type = get_certificate_type(session, GNUTLS_CTYPE_SERVER);
@@ -145,15 +145,14 @@ _gnutls_get_public_rsa_params(gnutls_session_t session,
gnutls_pcert_deinit(&peer_cert);
return 0;
- cleanup2:
+ cleanup2:
gnutls_pcert_deinit(&peer_cert);
return ret;
}
static int
-proc_rsa_client_kx(gnutls_session_t session, uint8_t * data,
- size_t _data_size)
+proc_rsa_client_kx(gnutls_session_t session, uint8_t * data, size_t _data_size)
{
const char attack_error[] = "auth_rsa: Possible PKCS #1 attack\n";
gnutls_datum_t ciphertext;
@@ -233,7 +232,7 @@ proc_rsa_client_kx(gnutls_session_t session, uint8_t * data,
ok &= CONSTCHECK_EQUAL(session->key.key.data[0], ver_maj);
/* if check_ver_min then session->key.key.data[1] must equal ver_min */
ok &= CONSTCHECK_NOT_EQUAL(check_ver_min, 0) &
- CONSTCHECK_EQUAL(session->key.key.data[1], ver_min);
+ CONSTCHECK_EQUAL(session->key.key.data[1], ver_min);
if (ok) {
/* call logging function unconditionally so all branches are
@@ -253,13 +252,9 @@ proc_rsa_client_kx(gnutls_session_t session, uint8_t * data,
return 0;
}
-
-
/* return RSA(random) using the peers public key
*/
-int
-_gnutls_gen_rsa_client_kx(gnutls_session_t session,
- gnutls_buffer_st * data)
+int _gnutls_gen_rsa_client_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
cert_auth_info_t auth = session->key.auth_info;
gnutls_datum_t sdata; /* data to send */
@@ -283,7 +278,7 @@ _gnutls_gen_rsa_client_kx(gnutls_session_t session,
}
ret = gnutls_rnd(GNUTLS_RND_RANDOM, session->key.key.data,
- session->key.key.size);
+ session->key.key.size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -317,19 +312,16 @@ _gnutls_gen_rsa_client_kx(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
-
#ifdef ENABLE_SSL3
if (get_num_version(session) == GNUTLS_SSL3) {
/* SSL 3.0 */
- ret =
- _gnutls_buffer_append_data(data, sdata.data,
- sdata.size);
+ ret = _gnutls_buffer_append_data(data, sdata.data, sdata.size);
_gnutls_free_datum(&sdata);
return ret;
} else
#endif
- { /* TLS 1.x */
+ { /* TLS 1.x */
ret =
_gnutls_buffer_append_data_prefix(data, 16, sdata.data,
sdata.size);
diff --git a/lib/auth/rsa_common.h b/lib/auth/rsa_common.h
index d91448bec0..e56b095d7e 100644
--- a/lib/auth/rsa_common.h
+++ b/lib/auth/rsa_common.h
@@ -28,12 +28,12 @@
*/
#ifndef GNUTLS_LIB_AUTH_RSA_COMMON_H
-#define GNUTLS_LIB_AUTH_RSA_COMMON_H
+# define GNUTLS_LIB_AUTH_RSA_COMMON_H
-#include <abstract_int.h>
+# include <abstract_int.h>
int
_gnutls_get_public_rsa_params(gnutls_session_t session,
gnutls_pk_params_st * params);
-#endif /* GNUTLS_LIB_AUTH_RSA_COMMON_H */
+#endif /* GNUTLS_LIB_AUTH_RSA_COMMON_H */
diff --git a/lib/auth/rsa_psk.c b/lib/auth/rsa_psk.c
index 05b0a834c4..c1e9ac4dab 100644
--- a/lib/auth/rsa_psk.c
+++ b/lib/auth/rsa_psk.c
@@ -29,31 +29,30 @@
#ifdef ENABLE_PSK
-#include "auth.h"
-#include "dh.h"
-#include "errors.h"
-#include "mpi.h"
-#include "num.h"
-#include "gnutls_int.h"
-#include "pk.h"
-#include "random.h"
-#include <abstract_int.h>
-#include <algorithms.h>
-#include <auth/dh_common.h>
-#include <auth/psk.h>
-#include <auth/psk_passwd.h>
-#include <auth/rsa_common.h>
-#include <cert.h>
-#include <datum.h>
-#include <state.h>
+# include "auth.h"
+# include "dh.h"
+# include "errors.h"
+# include "mpi.h"
+# include "num.h"
+# include "gnutls_int.h"
+# include "pk.h"
+# include "random.h"
+# include <abstract_int.h>
+# include <algorithms.h>
+# include <auth/dh_common.h>
+# include <auth/psk.h>
+# include <auth/psk_passwd.h>
+# include <auth/rsa_common.h>
+# include <cert.h>
+# include <datum.h>
+# include <state.h>
static int _gnutls_gen_rsa_psk_client_kx(gnutls_session_t session,
gnutls_buffer_st * data);
-static int _gnutls_proc_rsa_psk_client_kx(gnutls_session_t, uint8_t *,
- size_t);
+static int _gnutls_proc_rsa_psk_client_kx(gnutls_session_t, uint8_t *, size_t);
static int
_gnutls_proc_rsa_psk_server_kx(gnutls_session_t session, uint8_t * data,
- size_t _data_size);
+ size_t _data_size);
const mod_auth_st rsa_psk_auth_struct = {
"RSA PSK",
@@ -81,7 +80,6 @@ set_rsa_psk_session_key(gnutls_session_t session,
size_t rsa_secret_size;
int ret;
-
rsa_secret_size = rsa_secret->size;
/* set the session key
@@ -101,8 +99,7 @@ set_rsa_psk_session_key(gnutls_session_t session,
* the psk
*/
_gnutls_write_uint16(rsa_secret_size, session->key.key.data);
- memcpy(&session->key.key.data[2], rsa_secret->data,
- rsa_secret->size);
+ memcpy(&session->key.key.data[2], rsa_secret->data, rsa_secret->size);
p = &session->key.key.data[rsa_secret_size + 2];
_gnutls_write_uint16(ppsk->size, p);
if (ppsk->data != NULL)
@@ -110,7 +107,7 @@ set_rsa_psk_session_key(gnutls_session_t session,
ret = 0;
- error:
+ error:
return ret;
}
@@ -125,8 +122,7 @@ set_rsa_psk_session_key(gnutls_session_t session,
* } ClientKeyExchange;
*/
static int
-_gnutls_gen_rsa_psk_client_kx(gnutls_session_t session,
- gnutls_buffer_st * data)
+_gnutls_gen_rsa_psk_client_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
cert_auth_info_t auth = session->key.auth_info;
gnutls_datum_t sdata; /* data to send */
@@ -146,8 +142,7 @@ _gnutls_gen_rsa_psk_client_kx(gnutls_session_t session,
gnutls_datum_t premaster_secret;
premaster_secret.size = GNUTLS_MASTER_SIZE;
- premaster_secret.data =
- gnutls_malloc(premaster_secret.size);
+ premaster_secret.data = gnutls_malloc(premaster_secret.size);
if (premaster_secret.data == NULL) {
gnutls_assert();
@@ -156,7 +151,7 @@ _gnutls_gen_rsa_psk_client_kx(gnutls_session_t session,
/* Generate random */
ret = gnutls_rnd(GNUTLS_RND_RANDOM, premaster_secret.data,
- premaster_secret.size);
+ premaster_secret.size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -225,16 +220,14 @@ _gnutls_gen_rsa_psk_client_kx(gnutls_session_t session,
*/
ret =
_gnutls_buffer_append_data_prefix(data, 16,
- username.data,
- username.size);
+ username.data, username.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
ret =
- _gnutls_buffer_append_data_prefix(data, 16, sdata.data,
- sdata.size);
+ _gnutls_buffer_append_data_prefix(data, 16, sdata.data, sdata.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -242,7 +235,7 @@ _gnutls_gen_rsa_psk_client_kx(gnutls_session_t session,
ret = data->length - init_pos;
- cleanup:
+ cleanup:
_gnutls_free_datum(&sdata);
_gnutls_free_temp_key_datum(&premaster_secret);
if (free) {
@@ -280,7 +273,7 @@ _gnutls_proc_rsa_psk_client_kx(gnutls_session_t session, uint8_t * data,
}
ret = _gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
- sizeof(psk_auth_info_st), 1);
+ sizeof(psk_auth_info_st), 1);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -346,8 +339,7 @@ _gnutls_proc_rsa_psk_client_kx(gnutls_session_t session, uint8_t * data,
/* If the secret was properly formatted, then
* check the version number.
*/
- if (_gnutls_get_adv_version_major(session) !=
- plaintext.data[0]
+ if (_gnutls_get_adv_version_major(session) != plaintext.data[0]
|| (session->internals.allow_wrong_pms == 0
&& _gnutls_get_adv_version_minor(session) !=
plaintext.data[1])) {
@@ -363,11 +355,9 @@ _gnutls_proc_rsa_psk_client_kx(gnutls_session_t session, uint8_t * data,
}
}
-
if (randomize_key != 0) {
premaster_secret.size = GNUTLS_MASTER_SIZE;
- premaster_secret.data =
- gnutls_malloc(premaster_secret.size);
+ premaster_secret.data = gnutls_malloc(premaster_secret.size);
if (premaster_secret.data == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -376,7 +366,7 @@ _gnutls_proc_rsa_psk_client_kx(gnutls_session_t session, uint8_t * data,
/* we do not need strong random numbers here.
*/
ret = gnutls_rnd(GNUTLS_RND_NONCE, premaster_secret.data,
- premaster_secret.size);
+ premaster_secret.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -396,21 +386,21 @@ _gnutls_proc_rsa_psk_client_kx(gnutls_session_t session, uint8_t * data,
/* find the key of this username
*/
ret =
- _gnutls_psk_pwd_find_entry(session, info->username, strlen(info->username), &pwd_psk);
+ _gnutls_psk_pwd_find_entry(session, info->username,
+ strlen(info->username), &pwd_psk);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret =
- set_rsa_psk_session_key(session, &pwd_psk, &premaster_secret);
+ ret = set_rsa_psk_session_key(session, &pwd_psk, &premaster_secret);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
ret = 0;
- cleanup:
+ cleanup:
_gnutls_free_key_datum(&pwd_psk);
_gnutls_free_temp_key_datum(&premaster_secret);
@@ -419,7 +409,7 @@ _gnutls_proc_rsa_psk_client_kx(gnutls_session_t session, uint8_t * data,
static int
_gnutls_proc_rsa_psk_server_kx(gnutls_session_t session, uint8_t * data,
- size_t _data_size)
+ size_t _data_size)
{
/* In RSA-PSK the key is calculated elsewhere.
* Moreover, since we only keep a single auth info structure, we cannot
diff --git a/lib/auth/srp_kx.c b/lib/auth/srp_kx.c
index 739b12ea37..ed27b47caf 100644
--- a/lib/auth/srp_kx.c
+++ b/lib/auth/srp_kx.c
@@ -24,15 +24,15 @@
#ifdef ENABLE_SRP
-#include "errors.h"
-#include <auth/srp_passwd.h>
-#include "auth.h"
-#include "srp.h"
-#include "num.h"
-#include <auth/srp_kx.h>
-#include <str.h>
-#include <datum.h>
-#include <ext/srp.h>
+# include "errors.h"
+# include <auth/srp_passwd.h>
+# include "auth.h"
+# include "srp.h"
+# include "num.h"
+# include <auth/srp_kx.h>
+# include <str.h>
+# include <datum.h>
+# include <ext/srp.h>
const mod_auth_st srp_auth_struct = {
"SRP",
@@ -51,15 +51,14 @@ const mod_auth_st srp_auth_struct = {
NULL
};
-
-#define _b session->key.proto.tls12.srp.b
-#define B session->key.proto.tls12.srp.B
-#define _a session->key.proto.tls12.srp.a
-#define A session->key.proto.tls12.srp.A
-#define N session->key.proto.tls12.srp.srp_p
-#define G session->key.proto.tls12.srp.srp_g
-#define V session->key.proto.tls12.srp.x
-#define S session->key.proto.tls12.srp.srp_key
+# define _b session->key.proto.tls12.srp.b
+# define B session->key.proto.tls12.srp.B
+# define _a session->key.proto.tls12.srp.a
+# define A session->key.proto.tls12.srp.A
+# define N session->key.proto.tls12.srp.srp_p
+# define G session->key.proto.tls12.srp.srp_g
+# define V session->key.proto.tls12.srp.x
+# define S session->key.proto.tls12.srp.srp_key
/* Checks if a%n==0,+1,-1%n which is a fatal srp error.
* Returns a proper error code in that case, and 0 when
@@ -94,7 +93,7 @@ inline static int check_param_mod_n(bigint_t a, bigint_t n, int is_a)
_gnutls_mpi_release(&r);
return gnutls_assert_val(ret);
}
-
+
ret = _gnutls_mpi_cmp(r, n);
if (ret == 0)
err = 1;
@@ -110,13 +109,10 @@ inline static int check_param_mod_n(bigint_t a, bigint_t n, int is_a)
return 0;
}
-
/* Send the first key exchange message ( g, n, s) and append the verifier algorithm number
* Data is allocated by the caller, and should have data_size size.
*/
-int
-_gnutls_gen_srp_server_kx(gnutls_session_t session,
- gnutls_buffer_st * data)
+int _gnutls_gen_srp_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
int ret;
SRP_PWD_ENTRY *pwd_entry;
@@ -126,9 +122,7 @@ _gnutls_gen_srp_server_kx(gnutls_session_t session,
srp_ext_st *priv;
unsigned init_pos;
- ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRP,
- &epriv);
+ ret = _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRP, &epriv);
if (ret < 0) { /* peer didn't send a username */
gnutls_assert();
return GNUTLS_E_UNKNOWN_SRP_USERNAME;
@@ -137,8 +131,7 @@ _gnutls_gen_srp_server_kx(gnutls_session_t session,
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_SRP,
- sizeof(srp_server_auth_info_st),
- 1)) < 0) {
+ sizeof(srp_server_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
@@ -239,15 +232,13 @@ _gnutls_gen_srp_server_kx(gnutls_session_t session,
ret = data->length - init_pos;
- cleanup:
+ cleanup:
_gnutls_srp_entry_free(pwd_entry);
return ret;
}
/* return A = g^a % N */
-int
-_gnutls_gen_srp_client_kx(gnutls_session_t session,
- gnutls_buffer_st * data)
+int _gnutls_gen_srp_client_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
int ret;
char *username, *password;
@@ -255,9 +246,7 @@ _gnutls_gen_srp_client_kx(gnutls_session_t session,
gnutls_ext_priv_data_t epriv;
srp_ext_st *priv;
- ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRP,
- &epriv);
+ ret = _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRP, &epriv);
if (ret < 0) { /* peer didn't send a username */
gnutls_assert();
return GNUTLS_E_UNKNOWN_SRP_USERNAME;
@@ -312,8 +301,8 @@ _gnutls_gen_srp_client_kx(gnutls_session_t session,
_gnutls_mpi_log("SRP U: ", session->key.proto.tls12.srp.u);
/* S = (B - g^x) ^ (a + u * x) % N */
- S = _gnutls_calc_srp_S2(B, G, session->key.proto.tls12.srp.x, _a, session->key.proto.tls12.srp.u,
- N);
+ S = _gnutls_calc_srp_S2(B, G, session->key.proto.tls12.srp.x, _a,
+ session->key.proto.tls12.srp.u, N);
if (S == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -326,7 +315,9 @@ _gnutls_gen_srp_client_kx(gnutls_session_t session,
zrelease_temp_mpi_key(&session->key.proto.tls12.srp.u);
zrelease_temp_mpi_key(&B);
- ret = _gnutls_mpi_dprint(session->key.proto.tls12.srp.srp_key, &session->key.key);
+ ret =
+ _gnutls_mpi_dprint(session->key.proto.tls12.srp.srp_key,
+ &session->key.key);
zrelease_temp_mpi_key(&S);
if (ret < 0) {
@@ -345,7 +336,6 @@ _gnutls_gen_srp_client_kx(gnutls_session_t session,
return data->length;
}
-
/* just read A and put it to session */
int
_gnutls_proc_srp_client_kx(gnutls_session_t session, uint8_t * data,
@@ -401,7 +391,9 @@ _gnutls_proc_srp_client_kx(gnutls_session_t session, uint8_t * data,
zrelease_temp_mpi_key(&session->key.proto.tls12.srp.u);
zrelease_temp_mpi_key(&B);
- ret = _gnutls_mpi_dprint(session->key.proto.tls12.srp.srp_key, &session->key.key);
+ ret =
+ _gnutls_mpi_dprint(session->key.proto.tls12.srp.srp_key,
+ &session->key.key);
zrelease_temp_mpi_key(&S);
if (ret < 0) {
@@ -442,11 +434,11 @@ static const unsigned char srp3072_generator = 0x05;
static const unsigned char srp8192_generator = 19;
const gnutls_datum_t gnutls_srp_1024_group_prime = {
- (void *) srp_params_1024, sizeof(srp_params_1024)
+ (void *)srp_params_1024, sizeof(srp_params_1024)
};
const gnutls_datum_t gnutls_srp_1024_group_generator = {
- (void *) &srp_generator, sizeof(srp_generator)
+ (void *)&srp_generator, sizeof(srp_generator)
};
static const unsigned char srp_params_1536[] = {
@@ -475,11 +467,11 @@ static const unsigned char srp_params_1536[] = {
};
const gnutls_datum_t gnutls_srp_1536_group_prime = {
- (void *) srp_params_1536, sizeof(srp_params_1536)
+ (void *)srp_params_1536, sizeof(srp_params_1536)
};
const gnutls_datum_t gnutls_srp_1536_group_generator = {
- (void *) &srp_generator, sizeof(srp_generator)
+ (void *)&srp_generator, sizeof(srp_generator)
};
static const unsigned char srp_params_2048[] = {
@@ -515,11 +507,11 @@ static const unsigned char srp_params_2048[] = {
};
const gnutls_datum_t gnutls_srp_2048_group_prime = {
- (void *) srp_params_2048, sizeof(srp_params_2048)
+ (void *)srp_params_2048, sizeof(srp_params_2048)
};
const gnutls_datum_t gnutls_srp_2048_group_generator = {
- (void *) &srp_generator, sizeof(srp_generator)
+ (void *)&srp_generator, sizeof(srp_generator)
};
static const unsigned char srp_params_3072[] = {
@@ -569,107 +561,107 @@ static const unsigned char srp_params_3072[] = {
};
const gnutls_datum_t gnutls_srp_3072_group_generator = {
- (void *) &srp3072_generator, sizeof(srp3072_generator)
+ (void *)&srp3072_generator, sizeof(srp3072_generator)
};
const gnutls_datum_t gnutls_srp_3072_group_prime = {
- (void *) srp_params_3072, sizeof(srp_params_3072)
+ (void *)srp_params_3072, sizeof(srp_params_3072)
};
static const unsigned char srp_params_4096[] = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC9, 0x0F, 0xDA,
- 0xA2,
+ 0xA2,
0x21, 0x68, 0xC2, 0x34, 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C,
- 0xD1,
+ 0xD1,
0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, 0x02, 0x0B, 0xBE,
- 0xA6,
+ 0xA6,
0x3B, 0x13, 0x9B, 0x22, 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04,
- 0xDD,
+ 0xDD,
0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, 0x30, 0x2B, 0x0A,
- 0x6D,
+ 0x6D,
0xF2, 0x5F, 0x14, 0x37, 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2,
- 0x45,
+ 0x45,
0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, 0xF4, 0x4C, 0x42,
- 0xE9,
+ 0xE9,
0xA6, 0x37, 0xED, 0x6B, 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7,
- 0xED,
+ 0xED,
0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, 0xAE, 0x9F, 0x24,
- 0x11,
+ 0x11,
0x7C, 0x4B, 0x1F, 0xE6, 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B,
- 0x3D,
+ 0x3D,
0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, 0x98, 0xDA, 0x48,
- 0x36,
+ 0x36,
0x1C, 0x55, 0xD3, 0x9A, 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF,
- 0x5F,
+ 0x5F,
0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, 0x1C, 0x62, 0xF3,
- 0x56,
+ 0x56,
0x20, 0x85, 0x52, 0xBB, 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96,
- 0x6D,
+ 0x6D,
0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, 0xF1, 0x74, 0x6C,
- 0x08,
+ 0x08,
0xCA, 0x18, 0x21, 0x7C, 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE,
- 0x3B,
+ 0x3B,
0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, 0x9B, 0x27, 0x83,
- 0xA2,
+ 0xA2,
0xEC, 0x07, 0xA2, 0x8F, 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52,
- 0xC9,
+ 0xC9,
0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, 0x39, 0x95, 0x49,
- 0x7C,
+ 0x7C,
0xEA, 0x95, 0x6A, 0xE5, 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05,
- 0x10,
+ 0x10,
0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, 0xAD, 0x33, 0x17,
- 0x0D,
+ 0x0D,
0x04, 0x50, 0x7A, 0x33, 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA,
- 0x64,
+ 0x64,
0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, 0x8A, 0xEA, 0x71,
- 0x57,
+ 0x57,
0x5D, 0x06, 0x0C, 0x7D, 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4,
- 0xC7,
+ 0xC7,
0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, 0x1E, 0x8C, 0x94,
- 0xE0,
+ 0xE0,
0x4A, 0x25, 0x61, 0x9D, 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE,
- 0x6B,
+ 0x6B,
0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, 0xD8, 0x76, 0x02,
- 0x73,
+ 0x73,
0x3E, 0xC8, 0x6A, 0x64, 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20,
- 0x0C,
+ 0x0C,
0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, 0x77, 0x09, 0x88,
- 0xC0,
+ 0xC0,
0xBA, 0xD9, 0x46, 0xE2, 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB,
- 0x31,
+ 0x31,
0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, 0x4B, 0x82, 0xD1,
- 0x20,
+ 0x20,
0xA9, 0x21, 0x08, 0x01, 0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6,
- 0xD7,
+ 0xD7,
0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26, 0x99, 0xC3, 0x27,
- 0x18,
+ 0x18,
0x6A, 0xF4, 0xE2, 0x3C, 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B,
- 0xDA,
+ 0xDA,
0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8, 0xDB, 0xBB, 0xC2,
- 0xDB,
+ 0xDB,
0x04, 0xDE, 0x8E, 0xF9, 0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA,
- 0xA6,
+ 0xA6,
0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, 0x99, 0xB2, 0x96,
- 0x4F,
+ 0x4F,
0xA0, 0x90, 0xC3, 0xA2, 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7,
- 0xED,
+ 0xED,
0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF, 0xB8, 0x1B, 0xDD,
- 0x76,
+ 0x76,
0x21, 0x70, 0x48, 0x1C, 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A,
- 0xA9,
+ 0xA9,
0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, 0x86, 0xFF, 0xB7,
- 0xDC,
+ 0xDC,
0x90, 0xA6, 0xC0, 0x8F, 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31,
- 0x99,
+ 0x99,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
const gnutls_datum_t gnutls_srp_4096_group_generator = {
- (void *) &srp3072_generator, sizeof(srp3072_generator)
+ (void *)&srp3072_generator, sizeof(srp3072_generator)
};
const gnutls_datum_t gnutls_srp_4096_group_prime = {
- (void *) srp_params_4096, sizeof(srp_params_4096)
+ (void *)srp_params_4096, sizeof(srp_params_4096)
};
static const unsigned char srp_params_8192[] = {
@@ -804,11 +796,11 @@ static const unsigned char srp_params_8192[] = {
};
const gnutls_datum_t gnutls_srp_8192_group_prime = {
- (void *) srp_params_8192, sizeof(srp_params_8192)
+ (void *)srp_params_8192, sizeof(srp_params_8192)
};
const gnutls_datum_t gnutls_srp_8192_group_generator = {
- (void *) &srp8192_generator, sizeof(srp8192_generator)
+ (void *)&srp8192_generator, sizeof(srp8192_generator)
};
#ifdef ENABLE_SRP
@@ -823,24 +815,21 @@ check_g_n(const uint8_t * g, size_t n_g, const uint8_t * n, size_t n_n)
if (memcmp(srp_params_8192, n, n_n) == 0 &&
n_g == 1 && g[0] == srp8192_generator)
return 0;
- return
- gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
if (n_n == sizeof(srp_params_4096)) {
if (memcmp(srp_params_4096, n, n_n) == 0 &&
n_g == 1 && g[0] == srp3072_generator)
return 0;
- return
- gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
if (n_n == sizeof(srp_params_3072)) {
if (memcmp(srp_params_3072, n, n_n) == 0 &&
n_g == 1 && g[0] == srp3072_generator)
return 0;
- return
- gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
/* 2048, 1536 and 1024 */
@@ -889,9 +878,7 @@ _gnutls_proc_srp_server_kx(gnutls_session_t session, uint8_t * data,
gnutls_ext_priv_data_t epriv;
srp_ext_st *priv;
- ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRP,
- &epriv);
+ ret = _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRP, &epriv);
if (ret < 0) {
gnutls_assert();
return GNUTLS_E_UNKNOWN_SRP_USERNAME;
@@ -980,7 +967,6 @@ _gnutls_proc_srp_server_kx(gnutls_session_t session, uint8_t * data,
return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
}
-
/* Check if the g and n are from the SRP
* draft. Otherwise check if N is a prime and G
* a generator.
@@ -998,7 +984,6 @@ _gnutls_proc_srp_server_kx(gnutls_session_t session, uint8_t * data,
return ret;
}
-
/* generate x = SHA(s | SHA(U | ":" | p))
* (or the equivalent using bcrypt)
*/
@@ -1009,12 +994,12 @@ _gnutls_proc_srp_server_kx(gnutls_session_t session, uint8_t * data,
return ret;
}
- if (_gnutls_mpi_init_scan_nz(&session->key.proto.tls12.srp.x, hd, _n_g) != 0) {
+ if (_gnutls_mpi_init_scan_nz(&session->key.proto.tls12.srp.x, hd, _n_g)
+ != 0) {
gnutls_assert();
return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
}
-
return i; /* return the processed data
* needed in auth_srp_rsa.
*/
diff --git a/lib/auth/srp_kx.h b/lib/auth/srp_kx.h
index 3cf525205a..1a7de64e0a 100644
--- a/lib/auth/srp_kx.h
+++ b/lib/auth/srp_kx.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_LIB_AUTH_SRP_KX_H
-#define GNUTLS_LIB_AUTH_SRP_KX_H
+# define GNUTLS_LIB_AUTH_SRP_KX_H
-#include <auth.h>
+# include <auth.h>
-#define MAX_FAKE_SALT_SEED_SIZE 64
+# define MAX_FAKE_SALT_SEED_SIZE 64
typedef struct gnutls_srp_client_credentials_st {
char *username;
@@ -50,7 +50,7 @@ typedef struct srp_server_auth_info_st {
char *username;
} *srp_server_auth_info_t;
-#ifdef ENABLE_SRP
+# ifdef ENABLE_SRP
int _gnutls_proc_srp_server_hello(gnutls_session_t state,
const uint8_t * data, size_t data_size);
@@ -67,8 +67,8 @@ typedef struct srp_server_auth_info_st srp_server_auth_info_st;
/* MAC algorithm used to generate fake salts for unknown usernames
*/
-#define SRP_FAKE_SALT_MAC GNUTLS_MAC_SHA1
+# define SRP_FAKE_SALT_MAC GNUTLS_MAC_SHA1
-#endif /* ENABLE_SRP */
+# endif /* ENABLE_SRP */
-#endif /* GNUTLS_LIB_AUTH_SRP_KX_H */
+#endif /* GNUTLS_LIB_AUTH_SRP_KX_H */
diff --git a/lib/auth/srp_passwd.c b/lib/auth/srp_passwd.c
index e7d8d602e6..ac375b339a 100644
--- a/lib/auth/srp_passwd.c
+++ b/lib/auth/srp_passwd.c
@@ -26,23 +26,23 @@
#ifdef ENABLE_SRP
-#include "x509_b64.h"
-#include "errors.h"
-#include <auth/srp_passwd.h>
-#include <auth/srp_kx.h>
-#include "auth.h"
-#include "srp.h"
-#include "dh.h"
-#include "debug.h"
-#include <str.h>
-#include <datum.h>
-#include <num.h>
-#include <random.h>
-#include <algorithms.h>
+# include "x509_b64.h"
+# include "errors.h"
+# include <auth/srp_passwd.h>
+# include <auth/srp_kx.h>
+# include "auth.h"
+# include "srp.h"
+# include "dh.h"
+# include "debug.h"
+# include <str.h>
+# include <datum.h>
+# include <num.h>
+# include <random.h>
+# include <algorithms.h>
static int _randomize_pwd_entry(SRP_PWD_ENTRY * entry,
gnutls_srp_server_credentials_t cred,
- const char * username);
+ const char *username);
/* this function parses tpasswd.conf file. Format is:
* string(username):base64(v):base64(salt):int(index)
@@ -82,8 +82,7 @@ static int parse_tpasswd_values(SRP_PWD_ENTRY * entry, char *str)
len = strlen(p);
- entry->salt.size =
- _gnutls_sbase64_decode(p, len, &entry->salt.data);
+ entry->salt.size = _gnutls_sbase64_decode(p, len, &entry->salt.data);
if (entry->salt.size <= 0) {
gnutls_assert();
@@ -126,7 +125,6 @@ static int parse_tpasswd_values(SRP_PWD_ENTRY * entry, char *str)
return indx;
}
-
/* this function parses tpasswd.conf file. Format is:
* int(index):base64(n):int(g)
*/
@@ -186,12 +184,10 @@ static int parse_tpasswd_conf_values(SRP_PWD_ENTRY * entry, char *str)
return 0;
}
-
/* this function opens the tpasswd.conf file and reads the g and n
* values. They are put in the entry.
*/
-static int
-pwd_read_conf(const char *pconf_file, SRP_PWD_ENTRY * entry, int idx)
+static int pwd_read_conf(const char *pconf_file, SRP_PWD_ENTRY * entry, int idx)
{
FILE *fp;
char *line = NULL;
@@ -200,7 +196,7 @@ pwd_read_conf(const char *pconf_file, SRP_PWD_ENTRY * entry, int idx)
char indexstr[10];
int ret;
- snprintf(indexstr, sizeof(indexstr), "%u", (unsigned int) idx);
+ snprintf(indexstr, sizeof(indexstr), "%u", (unsigned int)idx);
fp = fopen(pconf_file, "re");
if (fp == NULL) {
@@ -229,7 +225,7 @@ pwd_read_conf(const char *pconf_file, SRP_PWD_ENTRY * entry, int idx)
}
ret = GNUTLS_E_SRP_PWD_ERROR;
-cleanup:
+ cleanup:
zeroize_key(line, line_size);
free(line);
fclose(fp);
@@ -274,7 +270,8 @@ _gnutls_srp_pwd_read_entry(gnutls_session_t state, char *username,
if (ret == 1) { /* the user does not exist */
if (entry->g.size != 0 && entry->n.size != 0) {
- ret = _randomize_pwd_entry(entry, cred, username);
+ ret =
+ _randomize_pwd_entry(entry, cred, username);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -361,11 +358,11 @@ _gnutls_srp_pwd_read_entry(gnutls_session_t state, char *username,
ret = GNUTLS_E_SRP_PWD_ERROR;
-cleanup:
+ cleanup:
gnutls_assert();
_gnutls_srp_entry_free(entry);
-found:
+ found:
if (line) {
zeroize_key(line, line_size);
free(line);
@@ -381,7 +378,7 @@ found:
*/
static int _randomize_pwd_entry(SRP_PWD_ENTRY * entry,
gnutls_srp_server_credentials_t sc,
- const char * username)
+ const char *username)
{
int ret;
const mac_entry_st *me = mac_to_entry(SRP_FAKE_SALT_MAC);
diff --git a/lib/auth/srp_passwd.h b/lib/auth/srp_passwd.h
index 56ecec2ffe..d9d97bc011 100644
--- a/lib/auth/srp_passwd.h
+++ b/lib/auth/srp_passwd.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_LIB_AUTH_SRP_PASSWD_H
-#define GNUTLS_LIB_AUTH_SRP_PASSWD_H
+# define GNUTLS_LIB_AUTH_SRP_PASSWD_H
-#ifdef ENABLE_SRP
+# ifdef ENABLE_SRP
typedef struct {
char *username;
@@ -38,9 +38,8 @@ typedef struct {
int _gnutls_srp_pwd_read_entry(gnutls_session_t state, char *username,
SRP_PWD_ENTRY **);
void _gnutls_srp_entry_free(SRP_PWD_ENTRY * entry);
-int _gnutls_sbase64_decode(char *data, size_t data_size,
- uint8_t ** result);
+int _gnutls_sbase64_decode(char *data, size_t data_size, uint8_t ** result);
-#endif /* ENABLE_SRP */
+# endif /* ENABLE_SRP */
-#endif /* GNUTLS_LIB_AUTH_SRP_PASSWD_H */
+#endif /* GNUTLS_LIB_AUTH_SRP_PASSWD_H */
diff --git a/lib/auth/srp_rsa.c b/lib/auth/srp_rsa.c
index 2627189e62..13b2664608 100644
--- a/lib/auth/srp_rsa.c
+++ b/lib/auth/srp_rsa.c
@@ -24,20 +24,20 @@
#ifdef ENABLE_SRP
-#include "errors.h"
-#include <auth/srp_passwd.h>
-#include "auth.h"
-#include "auth.h"
-#include "srp.h"
-#include "debug.h"
-#include "num.h"
-#include <auth/srp_kx.h>
-#include <str.h>
-#include <auth/cert.h>
-#include <datum.h>
-#include <tls-sig.h>
-#include <x509.h>
-#include <algorithms.h>
+# include "errors.h"
+# include <auth/srp_passwd.h>
+# include "auth.h"
+# include "auth.h"
+# include "srp.h"
+# include "debug.h"
+# include "num.h"
+# include <auth/srp_kx.h>
+# include <str.h>
+# include <auth/cert.h>
+# include <datum.h>
+# include <tls-sig.h>
+# include <x509.h>
+# include <algorithms.h>
static int gen_srp_cert_server_kx(gnutls_session_t, gnutls_buffer_st *);
static int proc_srp_cert_server_kx(gnutls_session_t, uint8_t *, size_t);
@@ -100,7 +100,7 @@ gen_srp_cert_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
return ret;
ddata.data = &data->data[init_pos];
- ddata.size = data->length-init_pos;
+ ddata.size = data->length - init_pos;
cred = (gnutls_certificate_credentials_t)
_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE);
@@ -112,8 +112,7 @@ gen_srp_cert_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
/* find the appropriate certificate */
if ((ret =
_gnutls_get_selected_cert(session, &apr_cert_list,
- &apr_cert_list_length,
- &apr_pkey)) < 0) {
+ &apr_cert_list_length, &apr_pkey)) < 0) {
gnutls_assert();
return ret;
}
@@ -163,7 +162,7 @@ gen_srp_cert_server_kx(gnutls_session_t session, gnutls_buffer_st * data)
ret = data->length - init_pos;
- cleanup:
+ cleanup:
_gnutls_free_datum(&signature);
return ret;
}
@@ -200,7 +199,8 @@ proc_srp_cert_server_kx(gnutls_session_t session, uint8_t * data,
return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
}
- vflags = cred->verify_flags | session->internals.additional_verify_flags;
+ vflags =
+ cred->verify_flags | session->internals.additional_verify_flags;
info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
if (info == NULL || info->ncerts == 0) {
@@ -241,7 +241,8 @@ proc_srp_cert_server_kx(gnutls_session_t session, uint8_t * data,
ret =
_gnutls_get_auth_info_pcert(&peer_cert,
- session->security_parameters.server_ctype, info);
+ session->
+ security_parameters.server_ctype, info);
if (ret < 0) {
gnutls_assert();
@@ -261,5 +262,4 @@ proc_srp_cert_server_kx(gnutls_session_t session, uint8_t * data,
return 0;
}
-
#endif /* ENABLE_SRP */
diff --git a/lib/auth/srp_sb64.c b/lib/auth/srp_sb64.c
index 3ba01eba9e..34835b66c1 100644
--- a/lib/auth/srp_sb64.c
+++ b/lib/auth/srp_sb64.c
@@ -187,11 +187,10 @@ _gnutls_sbase64_encode(uint8_t * data, size_t data_size, char **result)
return strlen(*result);
}
-
/* data must be 4 bytes
* result should be 3 bytes
*/
-#define TOASCII(c) (c < 127 ? asciitable[c] : 0xff)
+# define TOASCII(c) (c < 127 ? asciitable[c] : 0xff)
inline static int decode(uint8_t * result, const uint8_t * data)
{
uint8_t a1, a2;
@@ -234,8 +233,7 @@ inline static int decode(uint8_t * result, const uint8_t * data)
* That function does not ignore newlines tabs etc. You should remove them
* before calling it.
*/
-int
-_gnutls_sbase64_decode(char *data, size_t idata_size, uint8_t ** result)
+int _gnutls_sbase64_decode(char *data, size_t idata_size, uint8_t ** result)
{
unsigned i, j;
int ret, left;
@@ -307,7 +305,7 @@ _gnutls_sbase64_decode(char *data, size_t idata_size, uint8_t ** result)
**/
int
gnutls_srp_base64_encode(const gnutls_datum_t * data, char *result,
- size_t * result_size)
+ size_t *result_size)
{
char *res;
int size;
@@ -316,7 +314,7 @@ gnutls_srp_base64_encode(const gnutls_datum_t * data, char *result,
if (size < 0)
return size;
- if (result == NULL || *result_size < (size_t) size) {
+ if (result == NULL || *result_size < (size_t)size) {
gnutls_free(res);
*result_size = size;
return GNUTLS_E_SHORT_MEMORY_BUFFER;
@@ -347,8 +345,7 @@ gnutls_srp_base64_encode(const gnutls_datum_t * data, char *result,
* Returns: 0 on success, or an error code.
**/
int
-gnutls_srp_base64_encode2(const gnutls_datum_t * data,
- gnutls_datum_t * result)
+gnutls_srp_base64_encode2(const gnutls_datum_t * data, gnutls_datum_t * result)
{
char *res;
int size;
@@ -387,18 +384,18 @@ gnutls_srp_base64_encode2(const gnutls_datum_t * data,
**/
int
gnutls_srp_base64_decode(const gnutls_datum_t * b64_data, char *result,
- size_t * result_size)
+ size_t *result_size)
{
uint8_t *res;
int size;
size =
- _gnutls_sbase64_decode((char *) b64_data->data, b64_data->size,
+ _gnutls_sbase64_decode((char *)b64_data->data, b64_data->size,
&res);
if (size < 0)
return size;
- if (result == NULL || *result_size < (size_t) size) {
+ if (result == NULL || *result_size < (size_t)size) {
gnutls_free(res);
*result_size = size;
return GNUTLS_E_SHORT_MEMORY_BUFFER;
@@ -429,13 +426,13 @@ gnutls_srp_base64_decode(const gnutls_datum_t * b64_data, char *result,
**/
int
gnutls_srp_base64_decode2(const gnutls_datum_t * b64_data,
- gnutls_datum_t * result)
+ gnutls_datum_t * result)
{
uint8_t *ret;
int size;
size =
- _gnutls_sbase64_decode((char *) b64_data->data, b64_data->size,
+ _gnutls_sbase64_decode((char *)b64_data->data, b64_data->size,
&ret);
if (size < 0)
return size;
@@ -454,7 +451,7 @@ gnutls_srp_base64_decode2(const gnutls_datum_t * b64_data,
#else
int
-gnutls_srp_base64_encode(const gnutls_datum_t *data MAYBE_UNUSED,
+gnutls_srp_base64_encode(const gnutls_datum_t * data MAYBE_UNUSED,
char *result MAYBE_UNUSED,
size_t *result_size MAYBE_UNUSED)
{
@@ -462,14 +459,14 @@ gnutls_srp_base64_encode(const gnutls_datum_t *data MAYBE_UNUSED,
}
int
-gnutls_srp_base64_encode2(const gnutls_datum_t *data MAYBE_UNUSED,
- gnutls_datum_t *result MAYBE_UNUSED)
+gnutls_srp_base64_encode2(const gnutls_datum_t * data MAYBE_UNUSED,
+ gnutls_datum_t * result MAYBE_UNUSED)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int
-gnutls_srp_base64_decode(const gnutls_datum_t *b64_data MAYBE_UNUSED,
+gnutls_srp_base64_decode(const gnutls_datum_t * b64_data MAYBE_UNUSED,
char *result MAYBE_UNUSED,
size_t *result_size MAYBE_UNUSED)
{
@@ -477,8 +474,8 @@ gnutls_srp_base64_decode(const gnutls_datum_t *b64_data MAYBE_UNUSED,
}
int
-gnutls_srp_base64_decode2(const gnutls_datum_t *b64_data MAYBE_UNUSED,
- gnutls_datum_t *result MAYBE_UNUSED)
+gnutls_srp_base64_decode2(const gnutls_datum_t * b64_data MAYBE_UNUSED,
+ gnutls_datum_t * result MAYBE_UNUSED)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
diff --git a/lib/auth/vko_gost.c b/lib/auth/vko_gost.c
index e05e2288b5..45503708aa 100644
--- a/lib/auth/vko_gost.c
+++ b/lib/auth/vko_gost.c
@@ -68,10 +68,9 @@ const mod_auth_st vko_gost_auth_struct = {
_gnutls_proc_cert_cert_req
};
-#define VKO_GOST_UKM_LEN 8
+# define VKO_GOST_UKM_LEN 8
-static int
-calc_ukm(gnutls_session_t session, uint8_t *ukm)
+static int calc_ukm(gnutls_session_t session, uint8_t * ukm)
{
gnutls_digest_algorithm_t digalg = GNUTLS_DIG_STREEBOG_256;
gnutls_hash_hd_t dig;
@@ -92,10 +91,10 @@ calc_ukm(gnutls_session_t session, uint8_t *ukm)
return gnutls_hash_get_len(digalg);
}
-static int print_priv_key(gnutls_pk_params_st *params)
+static int print_priv_key(gnutls_pk_params_st * params)
{
int ret;
- uint8_t priv_buf[512/8];
+ uint8_t priv_buf[512 / 8];
char buf[512 / 4 + 1];
size_t bytes = sizeof(priv_buf);
@@ -103,23 +102,19 @@ static int print_priv_key(gnutls_pk_params_st *params)
if (likely(_gnutls_log_level < 9))
return GNUTLS_E_SUCCESS;
- ret = _gnutls_mpi_print(params->params[GOST_K],
- priv_buf, &bytes);
+ ret = _gnutls_mpi_print(params->params[GOST_K], priv_buf, &bytes);
if (ret < 0)
return gnutls_assert_val(ret);
_gnutls_hard_log("INT: VKO PRIVATE KEY[%zd]: %s\n",
bytes, _gnutls_bin2hex(priv_buf,
- bytes,
- buf, sizeof(buf),
- NULL));
+ bytes, buf, sizeof(buf), NULL));
return 0;
}
static int
vko_prepare_client_keys(gnutls_session_t session,
- gnutls_pk_params_st *pub,
- gnutls_pk_params_st *priv)
+ gnutls_pk_params_st * pub, gnutls_pk_params_st * priv)
{
int ret;
gnutls_ecc_curve_t curve;
@@ -164,9 +159,7 @@ vko_prepare_client_keys(gnutls_session_t session,
_gnutls_session_group_set(session, group);
- ret = _gnutls_pk_generate_keys(pub->algo,
- curve,
- priv, 1);
+ ret = _gnutls_pk_generate_keys(pub->algo, curve, priv, 1);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -174,7 +167,7 @@ vko_prepare_client_keys(gnutls_session_t session,
print_priv_key(priv);
- session->key.key.size = 32; /* GOST key size */
+ session->key.key.size = 32; /* GOST key size */
session->key.key.data = gnutls_malloc(session->key.key.size);
if (session->key.key.data == NULL) {
gnutls_assert();
@@ -217,7 +210,7 @@ proc_vko_gost_client_kx(gnutls_session_t session,
ssize_t data_size = _data_size;
gnutls_privkey_t privkey = session->internals.selected_key;
uint8_t ukm_data[MAX_HASH_SIZE];
- gnutls_datum_t ukm = {ukm_data, VKO_GOST_UKM_LEN};
+ gnutls_datum_t ukm = { ukm_data, VKO_GOST_UKM_LEN };
gnutls_datum_t cek;
int len;
@@ -244,7 +237,7 @@ proc_vko_gost_client_kx(gnutls_session_t session,
data += i;
/* Now do the tricky part: determine length of GostR3410-KeyTransport */
- DECR_LEN(data_size, 1); /* tag */
+ DECR_LEN(data_size, 1); /* tag */
ret = asn1_get_length_der(&data[1], data_size, &len);
DECR_LEN_FINAL(data_size, len + ret);
@@ -256,8 +249,7 @@ proc_vko_gost_client_kx(gnutls_session_t session,
return gnutls_assert_val(ret);
ret = _gnutls_gost_keytrans_decrypt(&privkey->key.x509->params,
- &cek, &ukm,
- &session->key.key);
+ &cek, &ukm, &session->key.key);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -265,13 +257,12 @@ proc_vko_gost_client_kx(gnutls_session_t session,
}
static int
-gen_vko_gost_client_kx(gnutls_session_t session,
- gnutls_buffer_st * data)
+gen_vko_gost_client_kx(gnutls_session_t session, gnutls_buffer_st * data)
{
int ret;
- gnutls_datum_t out = {};
+ gnutls_datum_t out = { };
uint8_t ukm_data[MAX_HASH_SIZE];
- gnutls_datum_t ukm = {ukm_data, VKO_GOST_UKM_LEN};
+ gnutls_datum_t ukm = { ukm_data, VKO_GOST_UKM_LEN };
gnutls_pk_params_st pub;
gnutls_pk_params_st priv;
uint8_t tl[1 + ASN1_MAX_LENGTH_SIZE];
@@ -289,8 +280,7 @@ gen_vko_gost_client_kx(gnutls_session_t session,
ret = _gnutls_gost_keytrans_encrypt(&pub,
&priv,
- &session->key.key,
- &ukm, &out);
+ &session->key.key, &ukm, &out);
if (ret < 0) {
gnutls_assert();
goto cleanup;
diff --git a/lib/auto-verify.c b/lib/auto-verify.c
index c9ec503bdf..60b390d8f9 100644
--- a/lib/auto-verify.c
+++ b/lib/auto-verify.c
@@ -37,8 +37,12 @@ static int auto_verify_cb(gnutls_session_t session)
if (session->internals.vc_elements == 0) {
ret = gnutls_certificate_verify_peers2(session, &status);
} else {
- ret = gnutls_certificate_verify_peers(session, session->internals.vc_data,
- session->internals.vc_elements, &status);
+ ret =
+ gnutls_certificate_verify_peers(session,
+ session->internals.vc_data,
+ session->
+ internals.vc_elements,
+ &status);
}
if (ret < 0) {
return gnutls_assert_val(GNUTLS_E_CERTIFICATE_ERROR);
@@ -47,7 +51,8 @@ static int auto_verify_cb(gnutls_session_t session)
session->internals.vc_status = status;
if (status != 0) /* Certificate is not trusted */
- return gnutls_assert_val(GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR);
/* notify gnutls to continue handshake normally */
return 0;
@@ -79,11 +84,11 @@ static int auto_verify_cb(gnutls_session_t session)
* Since: 3.4.6
**/
void gnutls_session_set_verify_cert(gnutls_session_t session,
- const char *hostname, unsigned flags)
+ const char *hostname, unsigned flags)
{
if (hostname) {
session->internals.vc_sdata.type = GNUTLS_DT_DNS_HOSTNAME;
- session->internals.vc_sdata.data = (void*)hostname;
+ session->internals.vc_sdata.data = (void *)hostname;
session->internals.vc_sdata.size = 0;
session->internals.vc_elements = 1;
session->internals.vc_data = &session->internals.vc_sdata;
@@ -121,8 +126,7 @@ void gnutls_session_set_verify_cert(gnutls_session_t session,
**/
void gnutls_session_set_verify_cert2(gnutls_session_t session,
gnutls_typed_vdata_st * data,
- unsigned elements,
- unsigned flags)
+ unsigned elements, unsigned flags)
{
session->internals.vc_data = data;
session->internals.vc_elements = elements;
diff --git a/lib/buffers.c b/lib/buffers.c
index 2a2aaecfec..f5f0b0723d 100644
--- a/lib/buffers.c
+++ b/lib/buffers.c
@@ -48,14 +48,14 @@
#include <state.h>
#include <dtls.h>
#include <system.h>
-#include <constate.h> /* gnutls_epoch_get */
-#include <handshake.h> /* remaining_time() */
+#include <constate.h> /* gnutls_epoch_get */
+#include <handshake.h> /* remaining_time() */
#include <errno.h>
#include <system.h>
#include "debug.h"
#ifndef EAGAIN
-#define EAGAIN EWOULDBLOCK
+# define EAGAIN EWOULDBLOCK
#endif
/* this is the maximum number of messages allowed to queue.
@@ -67,8 +67,7 @@
*/
void
_gnutls_record_buffer_put(gnutls_session_t session,
- content_type_t type, uint64_t seq,
- mbuffer_st * bufel)
+ content_type_t type, uint64_t seq, mbuffer_st * bufel)
{
bufel->type = type;
@@ -76,7 +75,7 @@ _gnutls_record_buffer_put(gnutls_session_t session,
_mbuffer_enqueue(&session->internals.record_buffer, bufel);
_gnutls_buffers_log("BUF[REC]: Inserted %d bytes of Data(%d)\n",
- (int) bufel->msg.size, (int) type);
+ (int)bufel->msg.size, (int)type);
return;
}
@@ -127,27 +126,24 @@ _gnutls_record_buffer_get(content_type_t type,
}
bufel =
- _mbuffer_head_get_first(&session->internals.record_buffer,
- &msg);
+ _mbuffer_head_get_first(&session->internals.record_buffer, &msg);
if (bufel == NULL)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
if (type != bufel->type) {
if (IS_DTLS(session))
_gnutls_audit_log(session,
"Discarded unexpected %s (%d) packet (expecting: %s (%d))\n",
_gnutls_packet2str(bufel->type),
- (int) bufel->type,
- _gnutls_packet2str(type),
- (int) type);
+ (int)bufel->type,
+ _gnutls_packet2str(type), (int)type);
else
- _gnutls_debug_log("received unexpected packet: %s(%d)\n",
- _gnutls_packet2str(bufel->type), (int)bufel->type);
+ _gnutls_debug_log
+ ("received unexpected packet: %s(%d)\n",
+ _gnutls_packet2str(bufel->type), (int)bufel->type);
- _mbuffer_head_remove_bytes(&session->internals.
- record_buffer, msg.size);
+ _mbuffer_head_remove_bytes(&session->internals.record_buffer,
+ msg.size);
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
}
@@ -158,33 +154,30 @@ _gnutls_record_buffer_get(content_type_t type,
_gnutls_write_uint64(bufel->record_sequence, seq);
memcpy(data, msg.data, length);
- _mbuffer_head_remove_bytes(&session->internals.record_buffer,
- length);
+ _mbuffer_head_remove_bytes(&session->internals.record_buffer, length);
return length;
}
int
-_gnutls_record_buffer_get_packet(content_type_t type, gnutls_session_t session, gnutls_packet_t *packet)
+_gnutls_record_buffer_get_packet(content_type_t type, gnutls_session_t session,
+ gnutls_packet_t * packet)
{
mbuffer_st *bufel;
- bufel =
- _mbuffer_head_pop_first(&session->internals.record_buffer);
+ bufel = _mbuffer_head_pop_first(&session->internals.record_buffer);
if (bufel == NULL)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
if (type != bufel->type) {
if (IS_DTLS(session))
_gnutls_audit_log(session,
"Discarded unexpected %s (%d) packet (expecting: %s)\n",
_gnutls_packet2str(bufel->type),
- (int) bufel->type,
+ (int)bufel->type,
_gnutls_packet2str(type));
- _mbuffer_head_remove_bytes(&session->internals.
- record_buffer, bufel->msg.size);
+ _mbuffer_head_remove_bytes(&session->internals.record_buffer,
+ bufel->msg.size);
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
}
@@ -268,13 +261,12 @@ _gnutls_dgram_read(gnutls_session_t session, mbuffer_st ** bufel,
int err = get_errno(session);
_gnutls_read_log("READ: %d returned from %p, errno=%d\n",
- (int) i, fd, err);
+ (int)i, fd, err);
ret = errno_to_gerr(err, 1);
goto cleanup;
} else {
- _gnutls_read_log("READ: Got %d bytes from %p\n", (int) i,
- fd);
+ _gnutls_read_log("READ: Got %d bytes from %p\n", (int)i, fd);
if (i == 0) {
/* If we get here, we likely have a stream socket.
* That assumption may not work on DCCP. */
@@ -297,19 +289,18 @@ _gnutls_dgram_read(gnutls_session_t session, mbuffer_st ** bufel,
}
}
- _gnutls_read_log("READ: read %d bytes from %p\n", (int) i, fd);
+ _gnutls_read_log("READ: read %d bytes from %p\n", (int)i, fd);
return i;
- cleanup:
+ cleanup:
_mbuffer_xfree(bufel);
return ret;
}
static ssize_t
_gnutls_stream_read(gnutls_session_t session, mbuffer_st ** bufel,
- size_t size, gnutls_pull_func pull_func,
- unsigned int *ms)
+ size_t size, gnutls_pull_func pull_func, unsigned int *ms)
{
size_t left;
ssize_t i = 0;
@@ -322,7 +313,9 @@ _gnutls_stream_read(gnutls_session_t session, mbuffer_st ** bufel,
session->internals.direction = 0;
- *bufel = _mbuffer_alloc_align16(MAX(max_size, size), get_total_headers(session));
+ *bufel =
+ _mbuffer_alloc_align16(MAX(max_size, size),
+ get_total_headers(session));
if (!*bufel) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -350,15 +343,14 @@ _gnutls_stream_read(gnutls_session_t session, mbuffer_st ** bufel,
_gnutls_read_log
("READ: %d returned from %p, errno=%d gerrno=%d\n",
- (int) i, fd, errno,
- session->internals.errnum);
+ (int)i, fd, errno, session->internals.errnum);
if (err == EAGAIN || err == EINTR) {
if (size - left > 0) {
_gnutls_read_log
("READ: returning %d bytes from %p\n",
- (int) (size - left), fd);
+ (int)(size - left), fd);
goto finish;
}
@@ -373,7 +365,7 @@ _gnutls_stream_read(gnutls_session_t session, mbuffer_st ** bufel,
} else {
_gnutls_read_log("READ: Got %d bytes from %p\n",
- (int) i, fd);
+ (int)i, fd);
if (i == 0)
break; /* EOF */
@@ -394,22 +386,21 @@ _gnutls_stream_read(gnutls_session_t session, mbuffer_st ** bufel,
}
}
- finish:
+ finish:
_gnutls_read_log("READ: read %d bytes from %p\n",
- (int) (size - left), fd);
+ (int)(size - left), fd);
if (size - left == 0)
_mbuffer_xfree(bufel);
return (size - left);
- cleanup:
+ cleanup:
_mbuffer_xfree(bufel);
return ret;
}
-
/* This function is like read. But it does not return -1 on error.
* It does return gnutls_errno instead.
*
@@ -423,8 +414,7 @@ _gnutls_read(gnutls_session_t session, mbuffer_st ** bufel,
/* Size is not passed, since a whole datagram will be read. */
return _gnutls_dgram_read(session, bufel, pull_func, ms);
else
- return _gnutls_stream_read(session, bufel, size, pull_func,
- ms);
+ return _gnutls_stream_read(session, bufel, size, pull_func, ms);
}
/* @vec: if non-zero then the vector function will be used to
@@ -432,7 +422,8 @@ _gnutls_read(gnutls_session_t session, mbuffer_st ** bufel,
*/
static ssize_t
_gnutls_writev_emu(gnutls_session_t session, gnutls_transport_ptr_t fd,
- const giovec_t * giovec, unsigned int giovec_cnt, unsigned vec)
+ const giovec_t * giovec, unsigned int giovec_cnt,
+ unsigned vec)
{
unsigned int j = 0;
size_t total = 0;
@@ -440,21 +431,20 @@ _gnutls_writev_emu(gnutls_session_t session, gnutls_transport_ptr_t fd,
for (j = 0; j < giovec_cnt; j++) {
if (vec) {
- ret = session->internals.vec_push_func(fd, &giovec[j], 1);
+ ret =
+ session->internals.vec_push_func(fd, &giovec[j], 1);
} else {
size_t sent = 0;
ssize_t left = giovec[j].iov_len;
char *p = giovec[j].iov_base;
do {
- ret =
- session->internals.push_func(fd, p,
- left);
+ ret = session->internals.push_func(fd, p, left);
if (ret > 0) {
sent += ret;
left -= ret;
p += ret;
}
- } while(ret > 0 && left > 0);
+ } while (ret > 0 && left > 0);
if (sent > 0)
ret = sent;
@@ -467,7 +457,7 @@ _gnutls_writev_emu(gnutls_session_t session, gnutls_transport_ptr_t fd,
total += ret;
- if ((size_t) ret != giovec[j].iov_len)
+ if ((size_t)ret != giovec[j].iov_len)
break;
}
@@ -498,9 +488,11 @@ _gnutls_writev(gnutls_session_t session, const giovec_t * giovec,
}
if (no_writev == 0) {
- i = session->internals.vec_push_func(fd, giovec, giovec_cnt);
+ i = session->internals.vec_push_func(fd, giovec,
+ giovec_cnt);
} else {
- i = _gnutls_writev_emu(session, fd, giovec, giovec_cnt, 1);
+ i = _gnutls_writev_emu(session, fd, giovec, giovec_cnt,
+ 1);
}
} else if (session->internals.push_func != NULL) {
i = _gnutls_writev_emu(session, fd, giovec, giovec_cnt, 0);
@@ -549,8 +541,7 @@ _gnutls_io_read_buffered(gnutls_session_t session, size_t total,
/* calculate the actual size, ie. get the minimum of the
* buffered data and the requested data.
*/
- min =
- MIN(session->internals.record_recv_buffer.byte_length, total);
+ min = MIN(session->internals.record_recv_buffer.byte_length, total);
if (min > 0) {
/* if we have enough buffered data
* then just return them.
@@ -596,12 +587,11 @@ _gnutls_io_read_buffered(gnutls_session_t session, size_t total,
*/
_gnutls_read_log
("RB: Have %d bytes into buffer. Adding %d bytes.\n",
- (int) session->internals.record_recv_buffer.
- byte_length, (int) ret);
- _gnutls_read_log("RB: Requested %d bytes\n", (int) total);
+ (int)session->internals.record_recv_buffer.byte_length,
+ (int)ret);
+ _gnutls_read_log("RB: Requested %d bytes\n", (int)total);
- _mbuffer_enqueue(&session->internals.record_recv_buffer,
- bufel);
+ _mbuffer_enqueue(&session->internals.record_recv_buffer, bufel);
if (IS_DTLS(session))
ret =
@@ -609,11 +599,9 @@ _gnutls_io_read_buffered(gnutls_session_t session, size_t total,
session->internals.record_recv_buffer.
byte_length);
else
- ret =
- session->internals.record_recv_buffer.
- byte_length;
+ ret = session->internals.record_recv_buffer.byte_length;
- if ((ret > 0) && ((size_t) ret < total)) /* Short Read */
+ if ((ret > 0) && ((size_t)ret < total)) /* Short Read */
return gnutls_assert_val(GNUTLS_E_AGAIN);
else
return ret;
@@ -649,8 +637,8 @@ _gnutls_io_write_buffered(gnutls_session_t session,
_gnutls_write_log
("WRITE: enqueued %d bytes for %p. Total %d bytes.\n",
- (int) bufel->msg.size, session->internals.transport_recv_ptr,
- (int) send_buffer->byte_length);
+ (int)bufel->msg.size, session->internals.transport_recv_ptr,
+ (int)send_buffer->byte_length);
if (mflag == MBUFFER_FLUSH)
return _gnutls_io_write_flush(session);
@@ -667,8 +655,7 @@ typedef ssize_t(*send_func) (gnutls_session_t, const giovec_t *, int);
ssize_t _gnutls_io_write_flush(gnutls_session_t session)
{
gnutls_datum_t msg;
- mbuffer_head_st *send_buffer =
- &session->internals.record_send_buffer;
+ mbuffer_head_st *send_buffer = &session->internals.record_send_buffer;
int ret;
ssize_t sent = 0, tosend = 0;
giovec_t iovec[MAX_QUEUE];
@@ -677,7 +664,7 @@ ssize_t _gnutls_io_write_flush(gnutls_session_t session)
session->internals.direction = 1;
_gnutls_write_log("WRITE FLUSH: %d bytes in buffer.\n",
- (int) send_buffer->byte_length);
+ (int)send_buffer->byte_length);
for (cur = _mbuffer_head_get_first(send_buffer, &msg);
cur != NULL; cur = _mbuffer_head_get_next(cur, &msg)) {
@@ -702,22 +689,22 @@ ssize_t _gnutls_io_write_flush(gnutls_session_t session)
_mbuffer_head_remove_bytes(send_buffer, ret);
_gnutls_write_log
("WRITE: wrote %d bytes, %d bytes left.\n", ret,
- (int) send_buffer->byte_length);
+ (int)send_buffer->byte_length);
sent += ret;
} else if (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN) {
_gnutls_write_log("WRITE interrupted: %d bytes left.\n",
- (int) send_buffer->byte_length);
+ (int)send_buffer->byte_length);
return ret;
} else if (ret == GNUTLS_E_LARGE_PACKET) {
_mbuffer_head_remove_bytes(send_buffer, tosend);
_gnutls_write_log
("WRITE cannot send large packet (%u bytes).\n",
- (unsigned int) tosend);
+ (unsigned int)tosend);
return ret;
} else {
_gnutls_write_log("WRITE error: code %d, %d bytes left.\n",
- ret, (int) send_buffer->byte_length);
+ ret, (int)send_buffer->byte_length);
gnutls_assert();
return ret;
@@ -742,7 +729,8 @@ int _gnutls_io_check_recv(gnutls_session_t session, unsigned int ms)
int ret = 0, err;
if (NO_TIMEOUT_FUNC_SET(session)) {
- _gnutls_debug_log("The pull function has been replaced but not the pull timeout.\n");
+ _gnutls_debug_log
+ ("The pull function has been replaced but not the pull timeout.\n");
return gnutls_assert_val(GNUTLS_E_PULL_ERROR);
}
@@ -753,7 +741,7 @@ int _gnutls_io_check_recv(gnutls_session_t session, unsigned int ms)
err = get_errno(session);
_gnutls_read_log
("READ_TIMEOUT: %d returned from %p, errno=%d (timeout: %u)\n",
- (int) ret, fd, err, ms);
+ (int)ret, fd, err, ms);
return errno_to_gerr(err, IS_DTLS(session));
}
@@ -782,14 +770,13 @@ ssize_t _gnutls_handshake_io_write_flush(gnutls_session_t session)
mbuffer_st *cur;
_gnutls_write_log("HWRITE FLUSH: %d bytes in buffer.\n",
- (int) send_buffer->byte_length);
+ (int)send_buffer->byte_length);
if (IS_DTLS(session))
return _dtls_transmit(session);
for (cur = _mbuffer_head_get_first(send_buffer, &msg);
- cur != NULL; cur = _mbuffer_head_get_first(send_buffer, &msg))
- {
+ cur != NULL; cur = _mbuffer_head_get_first(send_buffer, &msg)) {
epoch = cur->epoch;
if (session->internals.h_read_func) {
@@ -799,7 +786,8 @@ ssize_t _gnutls_handshake_io_write_flush(gnutls_session_t session)
if (ret < 0)
return gnutls_assert_val(ret);
ret = session->internals.h_read_func(session,
- params->write.level,
+ params->
+ write.level,
cur->htype,
msg.data,
msg.size);
@@ -824,12 +812,12 @@ ssize_t _gnutls_handshake_io_write_flush(gnutls_session_t session)
_gnutls_write_log
("HWRITE: wrote %d bytes, %d bytes left.\n",
- ret, (int) send_buffer->byte_length);
+ ret, (int)send_buffer->byte_length);
} else {
_gnutls_write_log
("HWRITE error: code %d, %d bytes left.\n",
- ret, (int) send_buffer->byte_length);
+ ret, (int)send_buffer->byte_length);
gnutls_assert();
return ret;
@@ -839,7 +827,6 @@ ssize_t _gnutls_handshake_io_write_flush(gnutls_session_t session)
return _gnutls_io_write_flush(session);
}
-
/* This is a send function for the gnutls handshake
* protocol. Just makes sure that all data have been sent.
*
@@ -861,8 +848,7 @@ _gnutls_handshake_io_cache_int(gnutls_session_t session,
/* ensure that our epoch does not get garbage collected
* before we send all queued messages with it */
bufel->epoch =
- (uint16_t) _gnutls_epoch_refcount_inc(session,
- EPOCH_WRITE_CURRENT);
+ (uint16_t) _gnutls_epoch_refcount_inc(session, EPOCH_WRITE_CURRENT);
bufel->htype = htype;
if (bufel->htype == GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC)
bufel->type = GNUTLS_CHANGE_CIPHER_SPEC;
@@ -873,8 +859,8 @@ _gnutls_handshake_io_cache_int(gnutls_session_t session,
_gnutls_write_log
("HWRITE: enqueued [%s] %d. Total %d bytes.\n",
- _gnutls_handshake2str(bufel->htype), (int) bufel->msg.size,
- (int) send_buffer->byte_length);
+ _gnutls_handshake2str(bufel->htype), (int)bufel->msg.size,
+ (int)send_buffer->byte_length);
return 0;
}
@@ -901,23 +887,20 @@ parse_handshake_header(gnutls_session_t session, mbuffer_st * bufel,
/* Note: SSL2_HEADERS == 1 */
if (_mbuffer_get_udata_size(bufel) < handshake_header_size)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
dataptr = _mbuffer_get_udata_ptr(bufel);
/* if reading a client hello of SSLv2 */
#ifdef ENABLE_SSL2
- if (unlikely
- (!IS_DTLS(session)
- && bufel->htype == GNUTLS_HANDSHAKE_CLIENT_HELLO_V2)) {
+ if (unlikely(!IS_DTLS(session)
+ && bufel->htype == GNUTLS_HANDSHAKE_CLIENT_HELLO_V2)) {
handshake_header_size = SSL2_HEADERS; /* we've already read one byte */
frag_size = _mbuffer_get_udata_size(bufel) - handshake_header_size; /* we've read the first byte */
if (dataptr[0] != GNUTLS_HANDSHAKE_CLIENT_HELLO)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
hsk->rtype = hsk->htype = GNUTLS_HANDSHAKE_CLIENT_HELLO_V2;
@@ -926,8 +909,7 @@ parse_handshake_header(gnutls_session_t session, mbuffer_st * bufel,
hsk->length = frag_size;
} else
#endif
- { /* TLS or DTLS handshake headers */
-
+ { /* TLS or DTLS handshake headers */
hsk->rtype = hsk->htype = dataptr[0];
@@ -938,10 +920,8 @@ parse_handshake_header(gnutls_session_t session, mbuffer_st * bufel,
if (IS_DTLS(session)) {
hsk->sequence = _gnutls_read_uint16(&dataptr[4]);
- hsk->start_offset =
- _gnutls_read_uint24(&dataptr[6]);
- frag_size =
- _gnutls_read_uint24(&dataptr[9]);
+ hsk->start_offset = _gnutls_read_uint24(&dataptr[6]);
+ frag_size = _gnutls_read_uint24(&dataptr[9]);
} else {
hsk->sequence = 0;
hsk->start_offset = 0;
@@ -952,10 +932,14 @@ parse_handshake_header(gnutls_session_t session, mbuffer_st * bufel,
/* TLS1.3: distinguish server hello versus hello retry request.
* The epitome of slick protocol design. */
- if (hsk->htype == GNUTLS_HANDSHAKE_SERVER_HELLO && hsk->start_offset == 0 && !IS_DTLS(session)) {
- if (_mbuffer_get_udata_size(bufel) > handshake_header_size+2+GNUTLS_RANDOM_SIZE &&
- memcmp(dataptr+handshake_header_size+2, HRR_RANDOM, GNUTLS_RANDOM_SIZE) == 0) {
- hsk->htype = GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST;
+ if (hsk->htype == GNUTLS_HANDSHAKE_SERVER_HELLO
+ && hsk->start_offset == 0 && !IS_DTLS(session)) {
+ if (_mbuffer_get_udata_size(bufel) >
+ handshake_header_size + 2 + GNUTLS_RANDOM_SIZE
+ && memcmp(dataptr + handshake_header_size + 2,
+ HRR_RANDOM, GNUTLS_RANDOM_SIZE) == 0) {
+ hsk->htype =
+ GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST;
}
}
}
@@ -969,9 +953,8 @@ parse_handshake_header(gnutls_session_t session, mbuffer_st * bufel,
_gnutls_handshake_log
("HSK[%p]: %s (%u) was received. Length %d[%d], frag offset %d, frag length: %d, sequence: %d\n",
session, _gnutls_handshake2str(hsk->htype),
- (unsigned) hsk->htype, (int) hsk->length, (int) data_size,
- hsk->start_offset, (int) frag_size,
- (int) hsk->sequence);
+ (unsigned)hsk->htype, (int)hsk->length, (int)data_size,
+ hsk->start_offset, (int)frag_size, (int)hsk->sequence);
hsk->header_size = handshake_header_size;
memcpy(hsk->header, _mbuffer_get_udata_ptr(bufel),
@@ -980,13 +963,10 @@ parse_handshake_header(gnutls_session_t session, mbuffer_st * bufel,
if (hsk->length > 0 && (frag_size > data_size ||
(frag_size > 0 &&
hsk->end_offset >= hsk->length))) {
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
- }
- else if (hsk->length == 0 && hsk->end_offset != 0
- && hsk->start_offset != 0)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ } else if (hsk->length == 0 && hsk->end_offset != 0
+ && hsk->start_offset != 0)
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
return handshake_header_size;
}
@@ -1022,15 +1002,12 @@ static int merge_handshake_packet(gnutls_session_t session,
pos = session->internals.handshake_recv_buffer_size;
if (pos >= MAX_HANDSHAKE_MSGS)
- return
- gnutls_assert_val(GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS);
+ return gnutls_assert_val(GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS);
if (!exists) {
if (hsk->length > 0 && hsk->end_offset > 0
- && hsk->end_offset - hsk->start_offset + 1 !=
- hsk->length) {
- ret =
- _gnutls_buffer_resize(&hsk->data, hsk->length);
+ && hsk->end_offset - hsk->start_offset + 1 != hsk->length) {
+ ret = _gnutls_buffer_resize(&hsk->data, hsk->length);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1049,13 +1026,11 @@ static int merge_handshake_packet(gnutls_session_t session,
_gnutls_write_uint24(hsk->length, &hsk->header[9]);
_gnutls_handshake_buffer_move(&session->internals.
- handshake_recv_buffer[pos],
- hsk);
+ handshake_recv_buffer[pos], hsk);
} else {
if (hsk->start_offset <
- session->internals.handshake_recv_buffer[pos].
- start_offset
+ session->internals.handshake_recv_buffer[pos].start_offset
&& hsk->end_offset + 1 >=
session->internals.handshake_recv_buffer[pos].
start_offset) {
@@ -1105,7 +1080,7 @@ inline static int cmp_hsk_types(gnutls_handshake_description_t expected,
#ifdef ENABLE_SSL2
if (expected == GNUTLS_HANDSHAKE_CLIENT_HELLO
- && recvd == GNUTLS_HANDSHAKE_CLIENT_HELLO_V2)
+ && recvd == GNUTLS_HANDSHAKE_CLIENT_HELLO_V2)
return 1;
#endif
if (expected != recvd)
@@ -1120,8 +1095,7 @@ inline static int cmp_hsk_types(gnutls_handshake_description_t expected,
*/
static int get_last_packet(gnutls_session_t session,
gnutls_handshake_description_t htype,
- handshake_buffer_st * hsk,
- unsigned int optional)
+ handshake_buffer_st * hsk, unsigned int optional)
{
handshake_buffer_st *recv_buf =
session->internals.handshake_recv_buffer;
@@ -1138,9 +1112,9 @@ static int get_last_packet(gnutls_session_t session,
"Received unexpected handshake message '%s' (%d). Expected '%s' (%d)\n",
_gnutls_handshake2str
(recv_buf[0].htype),
- (int) recv_buf[0].htype,
+ (int)recv_buf[0].htype,
_gnutls_handshake2str
- (htype), (int) htype);
+ (htype), (int)htype);
return
gnutls_assert_val
@@ -1153,17 +1127,18 @@ static int get_last_packet(gnutls_session_t session,
|| recv_buf[LAST_ELEMENT].length == 0) {
session->internals.dtls.hsk_read_seq++;
_gnutls_handshake_buffer_move(hsk,
- &recv_buf
- [LAST_ELEMENT]);
+ &recv_buf[LAST_ELEMENT]);
session->internals.handshake_recv_buffer_size--;
return 0;
} else {
/* if we don't have a complete handshake message, but we
* have queued data waiting, try again to reconstruct the
* handshake packet, using the queued */
- if (recv_buf[LAST_ELEMENT].end_offset != recv_buf[LAST_ELEMENT].length - 1 &&
- record_check_unprocessed(session) > 0)
- return gnutls_assert_val(GNUTLS_E_INT_CHECK_AGAIN);
+ if (recv_buf[LAST_ELEMENT].end_offset !=
+ recv_buf[LAST_ELEMENT].length - 1
+ && record_check_unprocessed(session) > 0)
+ return
+ gnutls_assert_val(GNUTLS_E_INT_CHECK_AGAIN);
else
goto timeout;
}
@@ -1186,7 +1161,7 @@ static int get_last_packet(gnutls_session_t session,
(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
}
- timeout:
+ timeout:
RETURN_DTLS_EAGAIN_OR_TIMEOUT(session, 0);
}
@@ -1205,8 +1180,7 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
session->internals.handshake_recv_buffer;
bufel =
- _mbuffer_head_get_first(&session->internals.record_buffer,
- &msg);
+ _mbuffer_head_get_first(&session->internals.record_buffer, &msg);
if (bufel == NULL)
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
@@ -1220,16 +1194,22 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
(GNUTLS_E_UNEXPECTED_PACKET);
if (unlikely
- (session->internals.handshake_recv_buffer_size == 0 &&
- msg.size < HANDSHAKE_HEADER_SIZE(session) &&
- session->internals.handshake_header_recv_buffer.byte_length <
+ (session->internals.handshake_recv_buffer_size == 0
+ && msg.size < HANDSHAKE_HEADER_SIZE(session)
+ && session->internals.
+ handshake_header_recv_buffer.byte_length <
HANDSHAKE_HEADER_SIZE(session) - msg.size)) {
- bufel = _mbuffer_head_pop_first(&session->internals.record_buffer);
- _mbuffer_enqueue(&session->internals.handshake_header_recv_buffer,
+ bufel =
+ _mbuffer_head_pop_first(&session->
+ internals.record_buffer);
+ _mbuffer_enqueue(&session->
+ internals.handshake_header_recv_buffer,
bufel);
break;
- } else if (session->internals.handshake_recv_buffer_size >
- 0 && recv_buf[0].length > recv_buf[0].data.length) {
+ } else if (session->
+ internals.handshake_recv_buffer_size > 0
+ && recv_buf[0].length >
+ recv_buf[0].data.length) {
/* this is the rest of a previous message */
append = MIN(msg.size,
recv_buf[0].length -
@@ -1243,29 +1223,32 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
if (ret < 0)
return gnutls_assert_val(ret);
- _mbuffer_head_remove_bytes(&session->
- internals.
- record_buffer,
- append);
+ _mbuffer_head_remove_bytes
+ (&session->internals.record_buffer, append);
} else { /* received new message */
if (unlikely
(session->internals.
handshake_header_recv_buffer.length > 0)) {
- bufel = _mbuffer_head_pop_first(&session->internals.
- record_buffer);
+ bufel =
+ _mbuffer_head_pop_first
+ (&session->internals.record_buffer);
_mbuffer_enqueue(&session->internals.
handshake_header_recv_buffer,
bufel);
- ret = _mbuffer_linearize_align16(&session->internals.
- handshake_header_recv_buffer,
- get_total_headers(session));
+ ret =
+ _mbuffer_linearize_align16
+ (&session->internals.
+ handshake_header_recv_buffer,
+ get_total_headers(session));
if (ret < 0)
return gnutls_assert_val(ret);
- bufel = _mbuffer_head_pop_first(&session->internals.
- handshake_header_recv_buffer);
- _mbuffer_head_push_first(&session->internals.
- record_buffer,
- bufel);
+ bufel =
+ _mbuffer_head_pop_first
+ (&session->internals.
+ handshake_header_recv_buffer);
+ _mbuffer_head_push_first
+ (&session->internals.record_buffer,
+ bufel);
}
ret =
@@ -1275,11 +1258,10 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
return gnutls_assert_val(ret);
header_size = ret;
- session->internals.
- handshake_recv_buffer_size = 1;
+ session->internals.handshake_recv_buffer_size =
+ 1;
- _mbuffer_set_uhead_size(bufel,
- header_size);
+ _mbuffer_set_uhead_size(bufel, header_size);
data_size =
MIN(recv_buf[0].length,
@@ -1293,11 +1275,9 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
if (ret < 0)
return gnutls_assert_val(ret);
_mbuffer_set_uhead_size(bufel, 0);
- _mbuffer_head_remove_bytes(&session->
- internals.
- record_buffer,
- data_size +
- header_size);
+ _mbuffer_head_remove_bytes
+ (&session->internals.record_buffer,
+ data_size + header_size);
}
/* if packet is complete then return it
@@ -1345,13 +1325,11 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
}
_mbuffer_consume(&session->internals.
- record_buffer, bufel,
- ret);
+ record_buffer, bufel, ret);
data_size =
MIN(tmp.length,
- tmp.end_offset - tmp.start_offset +
- 1);
+ tmp.end_offset - tmp.start_offset + 1);
ret =
_gnutls_buffer_append_data(&tmp.data,
@@ -1365,8 +1343,7 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
record_buffer, bufel,
data_size);
- ret =
- merge_handshake_packet(session, &tmp);
+ ret = merge_handshake_packet(session, &tmp);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1375,13 +1352,13 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
prev = bufel;
bufel =
- _mbuffer_dequeue(&session->internals.
- record_buffer, bufel);
+ _mbuffer_dequeue(&session->internals.record_buffer,
+ bufel);
_mbuffer_xfree(&prev);
continue;
- next:
+ next:
bufel = _mbuffer_head_get_next(bufel, NULL);
}
while (bufel != NULL);
@@ -1389,8 +1366,7 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
/* sort in descending order */
if (session->internals.handshake_recv_buffer_size > 1)
qsort(recv_buf,
- session->internals.
- handshake_recv_buffer_size,
+ session->internals.handshake_recv_buffer_size,
sizeof(recv_buf[0]), handshake_compare);
while (session->internals.handshake_recv_buffer_size > 0 &&
@@ -1399,8 +1375,7 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
_gnutls_audit_log(session,
"Discarded replayed handshake packet with sequence %d\n",
recv_buf[LAST_ELEMENT].sequence);
- _gnutls_handshake_buffer_clear(&recv_buf
- [LAST_ELEMENT]);
+ _gnutls_handshake_buffer_clear(&recv_buf[LAST_ELEMENT]);
session->internals.handshake_recv_buffer_size--;
}
@@ -1414,8 +1389,7 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session)
ssize_t
_gnutls_handshake_io_recv_int(gnutls_session_t session,
gnutls_handshake_description_t htype,
- handshake_buffer_st * hsk,
- unsigned int optional)
+ handshake_buffer_st * hsk, unsigned int optional)
{
int ret;
unsigned int tleft = 0;
@@ -1450,7 +1424,7 @@ _gnutls_handshake_io_recv_int(gnutls_session_t session,
if (session->internals.h_read_func)
return GNUTLS_E_AGAIN;
- if (htype != (gnutls_handshake_description_t) -1) {
+ if (htype != (gnutls_handshake_description_t) - 1) {
ret = handshake_remaining_time(session);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1472,7 +1446,8 @@ _gnutls_handshake_io_recv_int(gnutls_session_t session,
}
/* we put an upper limit (retries) to the number of partial handshake
* messages in a record packet. */
- } while(IS_DTLS(session) && ret == GNUTLS_E_INT_CHECK_AGAIN && retries-- > 0);
+ } while (IS_DTLS(session) && ret == GNUTLS_E_INT_CHECK_AGAIN
+ && retries-- > 0);
if (unlikely(IS_DTLS(session) && ret == GNUTLS_E_INT_CHECK_AGAIN)) {
ret = gnutls_assert_val(GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS);
diff --git a/lib/buffers.h b/lib/buffers.h
index 5576020680..f709ebc022 100644
--- a/lib/buffers.h
+++ b/lib/buffers.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_LIB_BUFFERS_H
-#define GNUTLS_LIB_BUFFERS_H
+# define GNUTLS_LIB_BUFFERS_H
-#include "mbuffers.h"
+# include "mbuffers.h"
-#define MBUFFER_FLUSH 1
+# define MBUFFER_FLUSH 1
void
_gnutls_record_buffer_put(gnutls_session_t session,
@@ -37,7 +37,7 @@ inline static int _gnutls_record_buffer_get_size(gnutls_session_t session)
return session->internals.record_buffer.byte_length;
}
-#define NO_TIMEOUT_FUNC_SET(session) unlikely(session->internals.pull_timeout_func == gnutls_system_recv_timeout \
+# define NO_TIMEOUT_FUNC_SET(session) unlikely(session->internals.pull_timeout_func == gnutls_system_recv_timeout \
&& session->internals.pull_func != system_read)
/*-
@@ -60,7 +60,7 @@ int _gnutls_record_buffer_get(content_type_t type,
size_t length, uint8_t seq[8]);
int _gnutls_record_buffer_get_packet(content_type_t type,
gnutls_session_t session,
- gnutls_packet_t *packet);
+ gnutls_packet_t * packet);
ssize_t _gnutls_io_read_buffered(gnutls_session_t, size_t n,
content_type_t, unsigned int *ms);
int _gnutls_io_clear_peeked_data(gnutls_session_t session);
@@ -75,15 +75,13 @@ int _gnutls_handshake_io_cache_int(gnutls_session_t,
ssize_t
_gnutls_handshake_io_recv_int(gnutls_session_t session,
gnutls_handshake_description_t htype,
- handshake_buffer_st * hsk,
- unsigned int optional);
+ handshake_buffer_st * hsk, unsigned int optional);
ssize_t _gnutls_io_write_flush(gnutls_session_t session);
int _gnutls_io_check_recv(gnutls_session_t session, unsigned int ms);
ssize_t _gnutls_handshake_io_write_flush(gnutls_session_t session);
-inline static void _gnutls_handshake_buffer_clear(handshake_buffer_st *
- hsk)
+inline static void _gnutls_handshake_buffer_clear(handshake_buffer_st * hsk)
{
_gnutls_buffer_clear(&hsk->data);
hsk->htype = -1;
@@ -96,8 +94,7 @@ inline static void _gnutls_handshake_buffer_init(handshake_buffer_st * hsk)
hsk->htype = -1;
}
-inline static void _gnutls_handshake_recv_buffer_clear(gnutls_session_t
- session)
+inline static void _gnutls_handshake_recv_buffer_clear(gnutls_session_t session)
{
int i;
for (i = 0; i < session->internals.handshake_recv_buffer_size; i++)
@@ -107,8 +104,7 @@ inline static void _gnutls_handshake_recv_buffer_clear(gnutls_session_t
_mbuffer_head_clear(&session->internals.handshake_header_recv_buffer);
}
-inline static void _gnutls_handshake_recv_buffer_init(gnutls_session_t
- session)
+inline static void _gnutls_handshake_recv_buffer_init(gnutls_session_t session)
{
int i;
for (i = 0; i < MAX_HANDSHAKE_MSGS; i++) {
@@ -123,11 +119,10 @@ int _gnutls_parse_record_buffered_msgs(gnutls_session_t session);
ssize_t
_gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
- gnutls_handshake_description_t htype,
- unsigned int ms);
+ gnutls_handshake_description_t htype, unsigned int ms);
-#define _gnutls_handshake_io_buffer_clear( session) \
+# define _gnutls_handshake_io_buffer_clear( session) \
_mbuffer_head_clear( &session->internals.handshake_send_buffer); \
_gnutls_handshake_recv_buffer_clear( session);
-#endif /* GNUTLS_LIB_BUFFERS_H */
+#endif /* GNUTLS_LIB_BUFFERS_H */
diff --git a/lib/cert-cred-rawpk.c b/lib/cert-cred-rawpk.c
index 56bc5f6584..dd0dcc2f29 100644
--- a/lib/cert-cred-rawpk.c
+++ b/lib/cert-cred-rawpk.c
@@ -29,7 +29,6 @@
#include "read-file.h"
#include <stdint.h>
-
/**
* gnutls_certificate_set_rawpk_key_mem:
* @cred: is a #gnutls_certificate_credentials_t type.
@@ -84,18 +83,18 @@
* Since: 3.6.6
**/
int gnutls_certificate_set_rawpk_key_mem(gnutls_certificate_credentials_t cred,
- const gnutls_datum_t* spki,
- const gnutls_datum_t* pkey,
- gnutls_x509_crt_fmt_t format,
- const char* pass,
- unsigned int key_usage,
- const char **names,
- unsigned int names_length,
- unsigned int flags)
+ const gnutls_datum_t * spki,
+ const gnutls_datum_t * pkey,
+ gnutls_x509_crt_fmt_t format,
+ const char *pass,
+ unsigned int key_usage,
+ const char **names,
+ unsigned int names_length,
+ unsigned int flags)
{
int ret;
gnutls_privkey_t privkey;
- gnutls_pcert_st* pcert;
+ gnutls_pcert_st *pcert;
gnutls_str_array_t str_names;
unsigned int i;
@@ -106,7 +105,7 @@ int gnutls_certificate_set_rawpk_key_mem(gnutls_certificate_credentials_t cred,
/* Import our private key. This function does all the necessary
* inits, checks and imports. */
ret = _gnutls_read_key_mem(cred, pkey->data, pkey->size,
- format, pass, flags, &privkey);
+ format, pass, flags, &privkey);
if (ret < 0) {
return gnutls_assert_val(ret);
}
@@ -119,8 +118,7 @@ int gnutls_certificate_set_rawpk_key_mem(gnutls_certificate_credentials_t cred,
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
// Import our raw public key to the pcert structure
- ret = gnutls_pcert_import_rawpk_raw(pcert, spki,
- format, key_usage, 0);
+ ret = gnutls_pcert_import_rawpk_raw(pcert, spki, format, key_usage, 0);
if (ret < 0) {
gnutls_privkey_deinit(privkey);
@@ -134,7 +132,7 @@ int gnutls_certificate_set_rawpk_key_mem(gnutls_certificate_credentials_t cred,
for (i = 0; i < names_length; i++) {
ret =
_gnutls_str_array_append_idna(&str_names, names[i],
- strlen(names[i]));
+ strlen(names[i]));
if (ret < 0) {
gnutls_privkey_deinit(privkey);
_gnutls_str_array_clear(&str_names);
@@ -146,7 +144,9 @@ int gnutls_certificate_set_rawpk_key_mem(gnutls_certificate_credentials_t cred,
/* Now that we have converted the key material to our internal structures
* we can now add them to the credentials structure */
- ret = _gnutls_certificate_credential_append_keypair(cred, privkey, str_names, pcert, 1);
+ ret =
+ _gnutls_certificate_credential_append_keypair(cred, privkey,
+ str_names, pcert, 1);
// Check for errors
if (ret < 0) {
gnutls_privkey_deinit(privkey);
@@ -169,7 +169,6 @@ int gnutls_certificate_set_rawpk_key_mem(gnutls_certificate_credentials_t cred,
CRED_RET_SUCCESS(cred);
}
-
/**
* gnutls_certificate_set_rawpk_key_file:
* @cred: is a #gnutls_certificate_credentials_t type.
@@ -225,20 +224,20 @@ int gnutls_certificate_set_rawpk_key_mem(gnutls_certificate_credentials_t cred,
* Since: 3.6.6
*/
int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
- const char* rawpkfile,
- const char* privkeyfile,
- gnutls_x509_crt_fmt_t format,
- const char *pass,
- unsigned int key_usage,
- const char **names,
- unsigned int names_length,
- unsigned int privkey_flags,
- unsigned int pkcs11_flags)
+ const char *rawpkfile,
+ const char *privkeyfile,
+ gnutls_x509_crt_fmt_t format,
+ const char *pass,
+ unsigned int key_usage,
+ const char **names,
+ unsigned int names_length,
+ unsigned int privkey_flags,
+ unsigned int pkcs11_flags)
{
int ret;
gnutls_privkey_t privkey;
gnutls_pubkey_t pubkey;
- gnutls_pcert_st* pcert;
+ gnutls_pcert_st *pcert;
gnutls_str_array_t str_names;
unsigned int i;
@@ -248,7 +247,9 @@ int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
/* Import our private key. This function does all the necessary
* inits, checks and imports. */
- ret = _gnutls_read_key_file(cred, privkeyfile, format, pass, privkey_flags, &privkey);
+ ret =
+ _gnutls_read_key_file(cred, privkeyfile, format, pass,
+ privkey_flags, &privkey);
if (ret < 0) {
return gnutls_assert_val(ret);
}
@@ -289,11 +290,11 @@ int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
}
} else {
- gnutls_datum_t rawpubkey; // to hold rawpk data from file
+ gnutls_datum_t rawpubkey; // to hold rawpk data from file
size_t key_size;
/* Read our raw public-key into memory from file */
- rawpubkey.data = (void*) read_file(rawpkfile,
+ rawpubkey.data = (void *)read_file(rawpkfile,
RF_BINARY | RF_SENSITIVE,
&key_size);
if (rawpubkey.data == NULL) {
@@ -301,14 +302,14 @@ int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
return gnutls_assert_val(GNUTLS_E_FILE_ERROR);
}
- rawpubkey.size = key_size; // Implicit type casting
+ rawpubkey.size = key_size; // Implicit type casting
/* We now convert our raw public key that we've loaded into memory to
* a parsed certificate (pcert) structure. Note that rawpubkey will
* be copied into pcert. Therefore we can directly cleanup rawpubkey.
*/
ret = gnutls_pcert_import_rawpk_raw(pcert, &rawpubkey,
- format, key_usage, 0);
+ format, key_usage, 0);
zeroize_key(rawpubkey.data, rawpubkey.size);
free(rawpubkey.data);
@@ -329,7 +330,7 @@ int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
for (i = 0; i < names_length; i++) {
ret =
_gnutls_str_array_append_idna(&str_names, names[i],
- strlen(names[i]));
+ strlen(names[i]));
if (ret < 0) {
gnutls_privkey_deinit(privkey);
_gnutls_str_array_clear(&str_names);
@@ -341,7 +342,9 @@ int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
/* Now that we have converted the key material to our internal structures
* we can now add them to the credentials structure */
- ret = _gnutls_certificate_credential_append_keypair(cred, privkey, str_names, pcert, 1);
+ ret =
+ _gnutls_certificate_credential_append_keypair(cred, privkey,
+ str_names, pcert, 1);
if (ret < 0) {
gnutls_privkey_deinit(privkey);
gnutls_pcert_deinit(pcert);
@@ -362,4 +365,3 @@ int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
CRED_RET_SUCCESS(cred);
}
-
diff --git a/lib/cert-cred-x509.c b/lib/cert-cred-x509.c
index bbe27509c5..3799bc1029 100644
--- a/lib/cert-cred-x509.c
+++ b/lib/cert-cred-x509.c
@@ -48,7 +48,7 @@
#include "urls.h"
#include "cert-cred.h"
#ifdef _WIN32
-#include <wincrypt.h>
+# include <wincrypt.h>
#endif
/*
@@ -56,7 +56,6 @@
* related objects in a certificate credentials structure.
*/
-
/* Returns the name of the certificate of a null name
*/
int _gnutls_get_x509_name(gnutls_x509_crt_t crt, gnutls_str_array_t * names)
@@ -77,7 +76,7 @@ int _gnutls_get_x509_name(gnutls_x509_crt_t crt, gnutls_str_array_t * names)
ret2 =
_gnutls_str_array_append_idna(names, name,
- max_size);
+ max_size);
if (ret2 < 0) {
_gnutls_str_array_clear(names);
return gnutls_assert_val(ret2);
@@ -88,10 +87,12 @@ int _gnutls_get_x509_name(gnutls_x509_crt_t crt, gnutls_str_array_t * names)
if (have_dns_name == 0) {
max_size = sizeof(name);
ret =
- gnutls_x509_crt_get_dn_by_oid(crt, OID_X520_COMMON_NAME, 0, 0,
- name, &max_size);
+ gnutls_x509_crt_get_dn_by_oid(crt, OID_X520_COMMON_NAME, 0,
+ 0, name, &max_size);
if (ret >= 0) {
- ret = _gnutls_str_array_append_idna(names, name, max_size);
+ ret =
+ _gnutls_str_array_append_idna(names, name,
+ max_size);
if (ret < 0) {
_gnutls_str_array_clear(names);
return gnutls_assert_val(ret);
@@ -155,7 +156,9 @@ parse_der_cert_mem(gnutls_certificate_credentials_t res,
goto cleanup;
}
- ret = _gnutls_certificate_credential_append_keypair(res, key, names, ccert, 1);
+ ret =
+ _gnutls_certificate_credential_append_keypair(res, key, names,
+ ccert, 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -163,7 +166,7 @@ parse_der_cert_mem(gnutls_certificate_credentials_t res,
return ret;
- cleanup:
+ cleanup:
_gnutls_str_array_clear(&names);
gnutls_free(ccert);
return ret;
@@ -205,7 +208,7 @@ parse_pem_cert_mem(gnutls_certificate_credentials_t res,
count = 0;
do {
- tmp.data = (void *) ptr;
+ tmp.data = (void *)ptr;
tmp.size = size;
ret = gnutls_x509_crt_init(&unsorted[count]);
@@ -214,7 +217,9 @@ parse_pem_cert_mem(gnutls_certificate_credentials_t res,
goto cleanup;
}
- ret = gnutls_x509_crt_import(unsorted[count], &tmp, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_crt_import(unsorted[count], &tmp,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -247,8 +252,7 @@ parse_pem_cert_mem(gnutls_certificate_credentials_t res,
}
while (ptr != NULL && count < DEFAULT_MAX_VERIFY_DEPTH);
- ret =
- _gnutls_get_x509_name(unsorted[0], &names);
+ ret = _gnutls_get_x509_name(unsorted[0], &names);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -262,7 +266,8 @@ parse_pem_cert_mem(gnutls_certificate_credentials_t res,
ncerts = count;
ret =
- gnutls_pcert_import_x509_list(pcerts, unsorted, &ncerts, GNUTLS_X509_CRT_LIST_SORT);
+ gnutls_pcert_import_x509_list(pcerts, unsorted, &ncerts,
+ GNUTLS_X509_CRT_LIST_SORT);
if (ret < 0) {
gnutls_free(pcerts);
gnutls_assert();
@@ -270,7 +275,8 @@ parse_pem_cert_mem(gnutls_certificate_credentials_t res,
}
ret =
- _gnutls_certificate_credential_append_keypair(res, key, names, pcerts, ncerts);
+ _gnutls_certificate_credential_append_keypair(res, key, names,
+ pcerts, ncerts);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -281,7 +287,7 @@ parse_pem_cert_mem(gnutls_certificate_credentials_t res,
return ncerts;
- cleanup:
+ cleanup:
_gnutls_str_array_clear(&names);
for (i = 0; i < count; i++)
gnutls_x509_crt_deinit(unsorted[i]);
@@ -293,15 +299,12 @@ parse_pem_cert_mem(gnutls_certificate_credentials_t res,
return ret;
}
-
-
/* Reads a DER or PEM certificate from memory
*/
static int
read_cert_mem(gnutls_certificate_credentials_t res,
gnutls_privkey_t key,
- const void *cert,
- int cert_size, gnutls_x509_crt_fmt_t type)
+ const void *cert, int cert_size, gnutls_x509_crt_fmt_t type)
{
int ret;
@@ -339,9 +342,9 @@ static int tmp_pin_cb(void *userdata, int attempt, const char *token_url,
*/
int
_gnutls_read_key_mem(gnutls_certificate_credentials_t res,
- const void *key, int key_size, gnutls_x509_crt_fmt_t type,
- const char *pass, unsigned int flags,
- gnutls_privkey_t *rkey)
+ const void *key, int key_size, gnutls_x509_crt_fmt_t type,
+ const char *pass, unsigned int flags,
+ gnutls_privkey_t * rkey)
{
int ret;
gnutls_datum_t tmp;
@@ -387,11 +390,11 @@ _gnutls_read_key_mem(gnutls_certificate_credentials_t res,
return 0;
}
-
/* Reads a private key from a token.
*/
static int
-read_key_url(gnutls_certificate_credentials_t res, const char *url, gnutls_privkey_t *rkey)
+read_key_url(gnutls_certificate_credentials_t res, const char *url,
+ gnutls_privkey_t * rkey)
{
int ret;
gnutls_privkey_t pkey = NULL;
@@ -418,25 +421,25 @@ read_key_url(gnutls_certificate_credentials_t res, const char *url, gnutls_privk
return 0;
- cleanup:
+ cleanup:
if (pkey)
gnutls_privkey_deinit(pkey);
return ret;
}
-
#define MAX_PKCS11_CERT_CHAIN 8
/* Reads a certificate key from a token.
*/
static int
-read_cert_url(gnutls_certificate_credentials_t res, gnutls_privkey_t key, const char *url)
+read_cert_url(gnutls_certificate_credentials_t res, gnutls_privkey_t key,
+ const char *url)
{
int ret;
gnutls_x509_crt_t crt = NULL;
gnutls_pcert_st *ccert = NULL;
gnutls_str_array_t names;
- gnutls_datum_t t = {NULL, 0};
+ gnutls_datum_t t = { NULL, 0 };
unsigned i, count = 0;
_gnutls_str_array_init(&names);
@@ -476,7 +479,7 @@ read_cert_url(gnutls_certificate_credentials_t res, gnutls_privkey_t key, const
}
/* Try to load the whole certificate chain from the PKCS #11 token */
- for (i=0;i<MAX_PKCS11_CERT_CHAIN;i++) {
+ for (i = 0; i < MAX_PKCS11_CERT_CHAIN; i++) {
ret = gnutls_x509_crt_check_issuer(crt, crt);
if (i > 0 && ret != 0) {
/* self signed */
@@ -510,7 +513,9 @@ read_cert_url(gnutls_certificate_credentials_t res, gnutls_privkey_t key, const
gnutls_free(t.data);
}
- ret = _gnutls_certificate_credential_append_keypair(res, key, names, ccert, count);
+ ret =
+ _gnutls_certificate_credential_append_keypair(res, key, names,
+ ccert, count);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -520,7 +525,7 @@ read_cert_url(gnutls_certificate_credentials_t res, gnutls_privkey_t key, const
gnutls_x509_crt_deinit(crt);
return 0;
-cleanup:
+ cleanup:
if (crt != NULL)
gnutls_x509_crt_deinit(crt);
gnutls_free(t.data);
@@ -558,16 +563,14 @@ read_cert_file(gnutls_certificate_credentials_t res,
}
-
-
/* Reads PKCS-1 RSA private key file or a DSA file (in the format openssl
* stores it).
*/
int
_gnutls_read_key_file(gnutls_certificate_credentials_t res,
- const char *keyfile, gnutls_x509_crt_fmt_t type,
- const char *pass, unsigned int flags,
- gnutls_privkey_t *rkey)
+ const char *keyfile, gnutls_x509_crt_fmt_t type,
+ const char *pass, unsigned int flags,
+ gnutls_privkey_t * rkey)
{
int ret;
size_t size;
@@ -578,15 +581,17 @@ _gnutls_read_key_file(gnutls_certificate_credentials_t res,
/* if no PIN function is specified, and we have a PIN,
* specify one */
if (pass != NULL && res->pin.cb == NULL) {
- snprintf(res->pin_tmp, sizeof(res->pin_tmp), "%s", pass);
- gnutls_certificate_set_pin_function(res, tmp_pin_cb, res->pin_tmp);
+ snprintf(res->pin_tmp, sizeof(res->pin_tmp),
+ "%s", pass);
+ gnutls_certificate_set_pin_function(res,
+ tmp_pin_cb,
+ res->pin_tmp);
}
return read_key_url(res, keyfile, rkey);
} else
return
- gnutls_assert_val
- (GNUTLS_E_UNIMPLEMENTED_FEATURE);
+ gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
}
data = read_file(keyfile, RF_BINARY | RF_SENSITIVE, &size);
@@ -685,8 +690,8 @@ gnutls_certificate_set_x509_key_mem2(gnutls_certificate_credentials_t res,
/* this should be first
*/
if ((ret = _gnutls_read_key_mem(res, key ? key->data : NULL,
- key ? key->size : 0, type, pass,
- flags, &rkey)) < 0)
+ key ? key->size : 0, type, pass,
+ flags, &rkey)) < 0)
return ret;
if ((ret = read_cert_mem(res, rkey, cert->data, cert->size, type)) < 0) {
@@ -704,7 +709,6 @@ gnutls_certificate_set_x509_key_mem2(gnutls_certificate_credentials_t res,
CRED_RET_SUCCESS(res);
}
-
/**
* gnutls_certificate_set_x509_key:
* @res: is a #gnutls_certificate_credentials_t type.
@@ -736,8 +740,7 @@ gnutls_certificate_set_x509_key_mem2(gnutls_certificate_credentials_t res,
int
gnutls_certificate_set_x509_key(gnutls_certificate_credentials_t res,
gnutls_x509_crt_t * cert_list,
- int cert_list_size,
- gnutls_x509_privkey_t key)
+ int cert_list_size, gnutls_x509_privkey_t key)
{
int ret;
int npcerts = 0;
@@ -762,9 +765,7 @@ gnutls_certificate_set_x509_key(gnutls_certificate_credentials_t res,
gnutls_privkey_set_pin_function(pkey, res->pin.cb,
res->pin.data);
- ret =
- gnutls_privkey_import_x509(pkey, key,
- GNUTLS_PRIVKEY_IMPORT_COPY);
+ ret = gnutls_privkey_import_x509(pkey, key, GNUTLS_PRIVKEY_IMPORT_COPY);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -785,8 +786,9 @@ gnutls_certificate_set_x509_key(gnutls_certificate_credentials_t res,
}
ret =
- gnutls_pcert_import_x509_list(pcerts, cert_list, (unsigned int*)&cert_list_size,
- GNUTLS_X509_CRT_LIST_SORT);
+ gnutls_pcert_import_x509_list(pcerts, cert_list,
+ (unsigned int *)&cert_list_size,
+ GNUTLS_X509_CRT_LIST_SORT);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -794,8 +796,8 @@ gnutls_certificate_set_x509_key(gnutls_certificate_credentials_t res,
npcerts = cert_list_size;
ret =
- _gnutls_certificate_credential_append_keypair(res, pkey, names, pcerts,
- npcerts);
+ _gnutls_certificate_credential_append_keypair(res, pkey, names,
+ pcerts, npcerts);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -813,7 +815,7 @@ gnutls_certificate_set_x509_key(gnutls_certificate_credentials_t res,
CRED_RET_SUCCESS(res);
- cleanup:
+ cleanup:
while (npcerts-- > 0)
gnutls_pcert_deinit(&pcerts[npcerts]);
gnutls_free(pcerts);
@@ -848,8 +850,7 @@ gnutls_certificate_set_x509_key(gnutls_certificate_credentials_t res,
*/
int
gnutls_certificate_get_x509_key(gnutls_certificate_credentials_t res,
- unsigned index,
- gnutls_x509_privkey_t *key)
+ unsigned index, gnutls_x509_privkey_t * key)
{
if (index >= res->ncerts) {
gnutls_assert();
@@ -891,7 +892,7 @@ gnutls_certificate_get_x509_key(gnutls_certificate_credentials_t res,
int
gnutls_certificate_get_x509_crt(gnutls_certificate_credentials_t res,
unsigned index,
- gnutls_x509_crt_t **crt_list,
+ gnutls_x509_crt_t ** crt_list,
unsigned *crt_list_size)
{
int ret;
@@ -905,14 +906,16 @@ gnutls_certificate_get_x509_crt(gnutls_certificate_credentials_t res,
*crt_list_size = res->certs[index].cert_list_length;
*crt_list = _gnutls_reallocarray(NULL,
res->certs[index].cert_list_length,
- sizeof (gnutls_x509_crt_t));
+ sizeof(gnutls_x509_crt_t));
if (*crt_list == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
}
for (i = 0; i < res->certs[index].cert_list_length; ++i) {
- ret = gnutls_pcert_export_x509(&res->certs[index].cert_list[i], &(*crt_list)[i]);
+ ret =
+ gnutls_pcert_export_x509(&res->certs[index].cert_list[i],
+ &(*crt_list)[i]);
if (ret < 0) {
while (i--)
gnutls_x509_crt_deinit((*crt_list)[i]);
@@ -963,7 +966,7 @@ gnutls_certificate_set_trust_list(gnutls_certificate_credentials_t res,
**/
void
gnutls_certificate_get_trust_list(gnutls_certificate_credentials_t res,
- gnutls_x509_trust_list_t *tlist)
+ gnutls_x509_trust_list_t * tlist)
{
*tlist = res->tlist;
}
@@ -1012,8 +1015,7 @@ gnutls_certificate_set_x509_key_file(gnutls_certificate_credentials_t res,
gnutls_x509_crt_fmt_t type)
{
return gnutls_certificate_set_x509_key_file2(res, certfile,
- keyfile, type, NULL,
- 0);
+ keyfile, type, NULL, 0);
}
/**
@@ -1068,7 +1070,8 @@ gnutls_certificate_set_x509_key_file2(gnutls_certificate_credentials_t res,
/* this should be first
*/
- if ((ret = _gnutls_read_key_file(res, keyfile, type, pass, flags, &rkey)) < 0)
+ if ((ret =
+ _gnutls_read_key_file(res, keyfile, type, pass, flags, &rkey)) < 0)
return ret;
if ((ret = read_cert_file(res, rkey, certfile, type)) < 0) {
@@ -1110,10 +1113,11 @@ gnutls_certificate_set_x509_trust_mem(gnutls_certificate_credentials_t res,
const gnutls_datum_t * ca,
gnutls_x509_crt_fmt_t type)
{
-int ret;
+ int ret;
ret = gnutls_x509_trust_list_add_trust_mem(res->tlist, ca, NULL,
- type, GNUTLS_TL_USE_IN_TLS, 0);
+ type, GNUTLS_TL_USE_IN_TLS,
+ 0);
if (ret == GNUTLS_E_NO_CERTIFICATE_FOUND)
return 0;
@@ -1143,8 +1147,7 @@ int ret;
**/
int
gnutls_certificate_set_x509_trust(gnutls_certificate_credentials_t res,
- gnutls_x509_crt_t * ca_list,
- int ca_list_size)
+ gnutls_x509_crt_t * ca_list, int ca_list_size)
{
int ret, i, j;
gnutls_x509_crt_t *new_list;
@@ -1182,7 +1185,7 @@ gnutls_certificate_set_x509_trust(gnutls_certificate_credentials_t res,
gnutls_free(new_list);
return ret;
- cleanup:
+ cleanup:
for (j = 0; j < i; j++)
gnutls_x509_crt_deinit(new_list[j]);
gnutls_free(new_list);
@@ -1190,7 +1193,6 @@ gnutls_certificate_set_x509_trust(gnutls_certificate_credentials_t res,
return ret;
}
-
/**
* gnutls_certificate_set_x509_trust_file:
* @cred: is a #gnutls_certificate_credentials_t type.
@@ -1218,10 +1220,11 @@ gnutls_certificate_set_x509_trust_file(gnutls_certificate_credentials_t
cred, const char *cafile,
gnutls_x509_crt_fmt_t type)
{
-int ret;
+ int ret;
ret = gnutls_x509_trust_list_add_trust_file(cred->tlist, cafile, NULL,
- type, GNUTLS_TL_USE_IN_TLS, 0);
+ type, GNUTLS_TL_USE_IN_TLS,
+ 0);
if (ret == GNUTLS_E_NO_CERTIFICATE_FOUND)
return 0;
@@ -1249,10 +1252,11 @@ gnutls_certificate_set_x509_trust_dir(gnutls_certificate_credentials_t cred,
const char *ca_dir,
gnutls_x509_crt_fmt_t type)
{
-int ret;
+ int ret;
ret = gnutls_x509_trust_list_add_trust_dir(cred->tlist, ca_dir, NULL,
- type, GNUTLS_TL_USE_IN_TLS, 0);
+ type, GNUTLS_TL_USE_IN_TLS,
+ 0);
if (ret == GNUTLS_E_NO_CERTIFICATE_FOUND)
return 0;
@@ -1275,11 +1279,10 @@ int ret;
* Since: 3.0.20
**/
int
-gnutls_certificate_set_x509_system_trust(gnutls_certificate_credentials_t
- cred)
+gnutls_certificate_set_x509_system_trust(gnutls_certificate_credentials_t cred)
{
return gnutls_x509_trust_list_add_system_trust(cred->tlist,
- GNUTLS_TL_USE_IN_TLS, 0);
+ GNUTLS_TL_USE_IN_TLS, 0);
}
/**
@@ -1305,10 +1308,10 @@ gnutls_certificate_set_x509_crl_mem(gnutls_certificate_credentials_t res,
int ret;
if (res->flags & GNUTLS_CERTIFICATE_VERIFY_CRLS)
- flags |= GNUTLS_TL_VERIFY_CRL|GNUTLS_TL_FAIL_ON_INVALID_CRL;
+ flags |= GNUTLS_TL_VERIFY_CRL | GNUTLS_TL_FAIL_ON_INVALID_CRL;
ret = gnutls_x509_trust_list_add_trust_mem(res->tlist, NULL, CRL,
- type, flags, 0);
+ type, flags, 0);
if (ret == GNUTLS_E_NO_CERTIFICATE_FOUND)
return 0;
@@ -1333,8 +1336,7 @@ gnutls_certificate_set_x509_crl_mem(gnutls_certificate_credentials_t res,
**/
int
gnutls_certificate_set_x509_crl(gnutls_certificate_credentials_t res,
- gnutls_x509_crl_t * crl_list,
- int crl_list_size)
+ gnutls_x509_crl_t * crl_list, int crl_list_size)
{
int ret, i, j;
gnutls_x509_crl_t *new_crl;
@@ -1342,7 +1344,7 @@ gnutls_certificate_set_x509_crl(gnutls_certificate_credentials_t res,
flags = GNUTLS_TL_USE_IN_TLS;
if (res->flags & GNUTLS_CERTIFICATE_VERIFY_CRLS)
- flags |= GNUTLS_TL_VERIFY_CRL|GNUTLS_TL_FAIL_ON_INVALID_CRL;
+ flags |= GNUTLS_TL_VERIFY_CRL | GNUTLS_TL_FAIL_ON_INVALID_CRL;
new_crl = _gnutls_reallocarray(NULL, crl_list_size,
sizeof(gnutls_x509_crl_t));
@@ -1365,7 +1367,7 @@ gnutls_certificate_set_x509_crl(gnutls_certificate_credentials_t res,
ret =
gnutls_x509_trust_list_add_crls(res->tlist, new_crl,
- crl_list_size, flags, 0);
+ crl_list_size, flags, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1374,7 +1376,7 @@ gnutls_certificate_set_x509_crl(gnutls_certificate_credentials_t res,
free(new_crl);
return ret;
- cleanup:
+ cleanup:
for (j = 0; j < i; j++)
gnutls_x509_crl_deinit(new_crl[j]);
free(new_crl);
@@ -1405,10 +1407,10 @@ gnutls_certificate_set_x509_crl_file(gnutls_certificate_credentials_t res,
unsigned flags = GNUTLS_TL_USE_IN_TLS;
if (res->flags & GNUTLS_CERTIFICATE_VERIFY_CRLS)
- flags |= GNUTLS_TL_VERIFY_CRL|GNUTLS_TL_FAIL_ON_INVALID_CRL;
+ flags |= GNUTLS_TL_VERIFY_CRL | GNUTLS_TL_FAIL_ON_INVALID_CRL;
ret = gnutls_x509_trust_list_add_trust_file(res->tlist, NULL, crlfile,
- type, flags, 0);
+ type, flags, 0);
if (ret == GNUTLS_E_NO_CERTIFICATE_FOUND)
return 0;
@@ -1417,7 +1419,6 @@ gnutls_certificate_set_x509_crl_file(gnutls_certificate_credentials_t res,
#include <gnutls/pkcs12.h>
-
/**
* gnutls_certificate_set_x509_simple_pkcs12_file:
* @res: is a #gnutls_certificate_credentials_t type.
@@ -1464,9 +1465,9 @@ int
size_t size;
int ret;
- p12blob.data = (void *) read_file(pkcs12file, RF_BINARY | RF_SENSITIVE,
- &size);
- p12blob.size = (unsigned int) size;
+ p12blob.data = (void *)read_file(pkcs12file, RF_BINARY | RF_SENSITIVE,
+ &size);
+ p12blob.size = (unsigned int)size;
if (p12blob.data == NULL) {
gnutls_assert();
return GNUTLS_E_FILE_ERROR;
@@ -1591,7 +1592,7 @@ int
else
ret = 0;
- done:
+ done:
if (chain) {
for (i = 0; i < chain_size; i++)
gnutls_x509_crt_deinit(chain[i]);
@@ -1605,8 +1606,6 @@ int
return ret;
}
-
-
/**
* gnutls_certificate_free_crls:
* @sc: is a #gnutls_certificate_credentials_t type.
diff --git a/lib/cert-cred.c b/lib/cert-cred.c
index d8964e1472..8b1e491cff 100644
--- a/lib/cert-cred.c
+++ b/lib/cert-cred.c
@@ -45,16 +45,14 @@
#include "cert-cred.h"
#include "intprops.h"
-
/*
* Adds a public/private key pair to a certificate credential
*/
int
-_gnutls_certificate_credential_append_keypair(gnutls_certificate_credentials_t res,
- gnutls_privkey_t key,
- gnutls_str_array_t names,
- gnutls_pcert_st * crt,
- int nr)
+_gnutls_certificate_credential_append_keypair(gnutls_certificate_credentials_t
+ res, gnutls_privkey_t key,
+ gnutls_str_array_t names,
+ gnutls_pcert_st * crt, int nr)
{
if (unlikely(INT_ADD_OVERFLOW(res->ncerts, 1))) {
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -86,13 +84,14 @@ _gnutls_certificate_credential_append_keypair(gnutls_certificate_credentials_t r
* Note that we cannot assume that any previous pointers
* to sorted list are ok, due to the realloc in res->certs. */
if (crt->pubkey->params.algo == GNUTLS_PK_RSA_PSS) {
- unsigned i,ridx;
+ unsigned i, ridx;
unsigned tmp;
- for (i=0;i<res->ncerts;i++) {
+ for (i = 0; i < res->ncerts; i++) {
ridx = res->sorted_cert_idx[i];
- if (res->certs[ridx].cert_list->pubkey->params.algo == GNUTLS_PK_RSA) {
+ if (res->certs[ridx].cert_list->pubkey->params.algo ==
+ GNUTLS_PK_RSA) {
tmp = ridx;
res->sorted_cert_idx[i] = res->ncerts;
res->sorted_cert_idx[res->ncerts] = tmp;
@@ -109,7 +108,6 @@ _gnutls_certificate_credential_append_keypair(gnutls_certificate_credentials_t r
}
-
/**
* gnutls_certificate_set_key:
* @res: is a #gnutls_certificate_credentials_t type.
@@ -149,8 +147,7 @@ gnutls_certificate_set_key(gnutls_certificate_credentials_t res,
const char **names,
int names_size,
gnutls_pcert_st * pcert_list,
- int pcert_list_size,
- gnutls_privkey_t key)
+ int pcert_list_size, gnutls_privkey_t key)
{
int ret, i;
gnutls_str_array_t str_names;
@@ -161,7 +158,6 @@ gnutls_certificate_set_key(gnutls_certificate_credentials_t res,
if (res == NULL) {
return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
}
-
// A complete key pair must be given
if (pcert_list == NULL || key == NULL) {
return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
@@ -174,7 +170,7 @@ gnutls_certificate_set_key(gnutls_certificate_credentials_t res,
for (i = 0; i < names_size; i++) {
ret =
_gnutls_str_array_append_idna(&str_names, names[i],
- strlen(names[i]));
+ strlen(names[i]));
if (ret < 0) {
ret = gnutls_assert_val(ret);
goto cleanup;
@@ -189,7 +185,9 @@ gnutls_certificate_set_key(gnutls_certificate_credentials_t res,
goto cleanup;
}
- ret = gnutls_x509_crt_import(crt, &pcert_list[0].cert, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_x509_crt_import(crt, &pcert_list[0].cert,
+ GNUTLS_X509_FMT_DER);
if (ret < 0) {
gnutls_assert();
gnutls_x509_crt_deinit(crt);
@@ -214,12 +212,13 @@ gnutls_certificate_set_key(gnutls_certificate_credentials_t res,
if (new_pcert_list == NULL) {
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
- memcpy(new_pcert_list, pcert_list, sizeof(gnutls_pcert_st) * pcert_list_size);
+ memcpy(new_pcert_list, pcert_list,
+ sizeof(gnutls_pcert_st) * pcert_list_size);
ret =
_gnutls_certificate_credential_append_keypair(res, key, str_names,
- new_pcert_list,
- pcert_list_size);
+ new_pcert_list,
+ pcert_list_size);
if (ret < 0) {
gnutls_assert();
gnutls_free(new_pcert_list);
@@ -241,7 +240,7 @@ gnutls_certificate_set_key(gnutls_certificate_credentials_t res,
CRED_RET_SUCCESS(res);
- cleanup:
+ cleanup:
_gnutls_str_array_clear(&str_names);
return ret;
}
@@ -316,8 +315,7 @@ void gnutls_certificate_free_cas(gnutls_certificate_credentials_t sc)
int
gnutls_certificate_get_issuer(gnutls_certificate_credentials_t sc,
gnutls_x509_crt_t cert,
- gnutls_x509_crt_t * issuer,
- unsigned int flags)
+ gnutls_x509_crt_t * issuer, unsigned int flags)
{
return gnutls_x509_trust_list_get_issuer(sc->tlist, cert, issuer,
flags);
@@ -348,14 +346,10 @@ gnutls_certificate_get_crt_raw(gnutls_certificate_credentials_t sc,
unsigned idx2, gnutls_datum_t * cert)
{
if (idx1 >= sc->ncerts)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
if (idx2 >= sc->certs[idx1].cert_list_length)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
cert->data = sc->certs[idx1].cert_list[idx2].cert.data;
cert->size = sc->certs[idx1].cert_list[idx2].cert.size;
@@ -382,7 +376,6 @@ void gnutls_certificate_free_ca_names(gnutls_certificate_credentials_t sc)
_gnutls_free_datum(&sc->tlist->x509_rdn_sequence);
}
-
/**
* gnutls_certificate_free_credentials:
* @sc: is a #gnutls_certificate_credentials_t type.
@@ -393,8 +386,7 @@ void gnutls_certificate_free_ca_names(gnutls_certificate_credentials_t sc)
* with this structure (ie RSA and DH parameters are not freed by this
* function).
**/
-void
-gnutls_certificate_free_credentials(gnutls_certificate_credentials_t sc)
+void gnutls_certificate_free_credentials(gnutls_certificate_credentials_t sc)
{
// Check for valid pointer and otherwise do nothing
if (sc == NULL)
@@ -411,7 +403,6 @@ gnutls_certificate_free_credentials(gnutls_certificate_credentials_t sc)
gnutls_free(sc);
}
-
/**
* gnutls_certificate_allocate_credentials:
* @res: is a pointer to a #gnutls_certificate_credentials_t type.
@@ -421,8 +412,7 @@ gnutls_certificate_free_credentials(gnutls_certificate_credentials_t sc)
* Returns: %GNUTLS_E_SUCCESS on success, or an error code.
**/
int
-gnutls_certificate_allocate_credentials(gnutls_certificate_credentials_t *
- res)
+gnutls_certificate_allocate_credentials(gnutls_certificate_credentials_t * res)
{
int ret;
@@ -440,7 +430,6 @@ gnutls_certificate_allocate_credentials(gnutls_certificate_credentials_t *
(*res)->verify_bits = DEFAULT_MAX_VERIFY_BITS;
(*res)->verify_depth = DEFAULT_MAX_VERIFY_DEPTH;
-
return 0;
}
@@ -576,12 +565,11 @@ gnutls_certificate_server_set_request(gnutls_session_t session,
static int call_legacy_cert_cb1(gnutls_session_t session,
const struct gnutls_cert_retr_st *info,
- gnutls_pcert_st **certs,
+ gnutls_pcert_st ** certs,
unsigned int *pcert_length,
- gnutls_ocsp_data_st **ocsp,
+ gnutls_ocsp_data_st ** ocsp,
unsigned int *ocsp_length,
- gnutls_privkey_t *privkey,
- unsigned int *flags)
+ gnutls_privkey_t * privkey, unsigned int *flags)
{
gnutls_retr2_st st2;
gnutls_pcert_st *local_certs = NULL;
@@ -593,9 +581,10 @@ static int call_legacy_cert_cb1(gnutls_session_t session,
memset(&st2, 0, sizeof(st2));
- ret = info->cred->legacy_cert_cb1(session, info->req_ca_rdn, info->nreqs,
- info->pk_algos, info->pk_algos_length,
- &st2);
+ ret =
+ info->cred->legacy_cert_cb1(session, info->req_ca_rdn, info->nreqs,
+ info->pk_algos, info->pk_algos_length,
+ &st2);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -612,8 +601,7 @@ static int call_legacy_cert_cb1(gnutls_session_t session,
goto cleanup;
}
- local_certs =
- alloc_and_load_x509_certs(st2.cert.x509, st2.ncerts);
+ local_certs = alloc_and_load_x509_certs(st2.cert.x509, st2.ncerts);
if (local_certs == NULL) {
gnutls_assert();
ret = GNUTLS_E_MEMORY_ERROR;
@@ -719,8 +707,7 @@ static int call_legacy_cert_cb1(gnutls_session_t session,
**/
void gnutls_certificate_set_retrieve_function
(gnutls_certificate_credentials_t cred,
- gnutls_certificate_retrieve_function * func)
-{
+ gnutls_certificate_retrieve_function * func) {
cred->legacy_cert_cb1 = func;
if (!func)
cred->get_cert_callback3 = NULL;
@@ -730,20 +717,20 @@ void gnutls_certificate_set_retrieve_function
static int call_legacy_cert_cb2(gnutls_session_t session,
const struct gnutls_cert_retr_st *info,
- gnutls_pcert_st **certs,
+ gnutls_pcert_st ** certs,
unsigned int *pcert_length,
- gnutls_ocsp_data_st **ocsp,
+ gnutls_ocsp_data_st ** ocsp,
unsigned int *ocsp_length,
- gnutls_privkey_t *privkey,
- unsigned int *flags)
+ gnutls_privkey_t * privkey, unsigned int *flags)
{
int ret;
*ocsp_length = 0;
/* flags will be assumed to be zero */
- ret = info->cred->legacy_cert_cb2(session, info->req_ca_rdn, info->nreqs,
- info->pk_algos, info->pk_algos_length,
- certs, pcert_length, privkey);
+ ret =
+ info->cred->legacy_cert_cb2(session, info->req_ca_rdn, info->nreqs,
+ info->pk_algos, info->pk_algos_length,
+ certs, pcert_length, privkey);
if (ret < 0) {
gnutls_assert();
}
@@ -797,8 +784,7 @@ static int call_legacy_cert_cb2(gnutls_session_t session,
**/
void gnutls_certificate_set_retrieve_function2
(gnutls_certificate_credentials_t cred,
- gnutls_certificate_retrieve_function2 * func)
-{
+ gnutls_certificate_retrieve_function2 * func) {
cred->legacy_cert_cb2 = func;
if (!func)
cred->get_cert_callback3 = NULL;
@@ -866,8 +852,7 @@ void gnutls_certificate_set_retrieve_function2
**/
void gnutls_certificate_set_retrieve_function3
(gnutls_certificate_credentials_t cred,
- gnutls_certificate_retrieve_function3 *func)
-{
+ gnutls_certificate_retrieve_function3 * func) {
cred->get_cert_callback3 = func;
}
@@ -894,11 +879,9 @@ void gnutls_certificate_set_retrieve_function3
*
* Since: 2.10.0
**/
-void
- gnutls_certificate_set_verify_function
+void gnutls_certificate_set_verify_function
(gnutls_certificate_credentials_t cred,
- gnutls_certificate_verify_function * func)
-{
+ gnutls_certificate_verify_function * func) {
cred->verify_callback = func;
}
@@ -934,8 +917,10 @@ void
*
* Since: 3.7.0
**/
-void gnutls_x509_trust_list_set_getissuer_function(gnutls_x509_trust_list_t tlist,
- gnutls_x509_trust_list_getissuer_function * func)
+void gnutls_x509_trust_list_set_getissuer_function(gnutls_x509_trust_list_t
+ tlist,
+ gnutls_x509_trust_list_getissuer_function
+ * func)
{
tlist->issuer_callback = func;
}
@@ -1002,7 +987,8 @@ void *gnutls_x509_trust_list_get_ptr(gnutls_x509_trust_list_t tlist)
* Since: 3.7.0
**/
void gnutls_session_set_verify_output_function(gnutls_session_t session,
- gnutls_verify_output_function * func)
+ gnutls_verify_output_function *
+ func)
{
session->internals.cert_output_callback = func;
}
@@ -1013,8 +999,8 @@ void gnutls_session_set_verify_output_function(gnutls_session_t session,
*/
int _gnutls_check_key_cert_match(gnutls_certificate_credentials_t res)
{
- gnutls_datum_t test = {(void*)TEST_TEXT, sizeof(TEST_TEXT)-1};
- gnutls_datum_t sig = {NULL, 0};
+ gnutls_datum_t test = { (void *)TEST_TEXT, sizeof(TEST_TEXT) - 1 };
+ gnutls_datum_t sig = { NULL, 0 };
gnutls_digest_algorithm_t dig;
int pk, pk2, ret;
unsigned sign_algo;
@@ -1022,16 +1008,17 @@ int _gnutls_check_key_cert_match(gnutls_certificate_credentials_t res)
if (res->flags & GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH)
return 0;
- pk =
- gnutls_pubkey_get_pk_algorithm(res->certs[res->ncerts - 1].
- cert_list[0].pubkey, NULL);
+ pk = gnutls_pubkey_get_pk_algorithm(res->certs[res->ncerts -
+ 1].cert_list[0].pubkey,
+ NULL);
pk2 =
gnutls_privkey_get_pk_algorithm(res->certs[res->ncerts - 1].pkey,
NULL);
if (GNUTLS_PK_IS_RSA(pk) && GNUTLS_PK_IS_RSA(pk2)) {
if (pk2 == GNUTLS_PK_RSA_PSS && pk == GNUTLS_PK_RSA) {
- _gnutls_debug_log("you cannot mix an RSA-PSS key with an RSA certificate\n");
+ _gnutls_debug_log
+ ("you cannot mix an RSA-PSS key with an RSA certificate\n");
return GNUTLS_E_CERTIFICATE_KEY_MISMATCH;
}
@@ -1039,8 +1026,9 @@ int _gnutls_check_key_cert_match(gnutls_certificate_credentials_t res)
pk = GNUTLS_PK_RSA_PSS;
} else if (pk2 != pk) {
gnutls_assert();
- _gnutls_debug_log("key is %s, certificate is %s\n", gnutls_pk_get_name(pk2),
- gnutls_pk_get_name(pk));
+ _gnutls_debug_log("key is %s, certificate is %s\n",
+ gnutls_pk_get_name(pk2),
+ gnutls_pk_get_name(pk));
return GNUTLS_E_CERTIFICATE_KEY_MISMATCH;
}
@@ -1059,7 +1047,7 @@ int _gnutls_check_key_cert_match(gnutls_certificate_credentials_t res)
* because we cannot always obtain the parameters from the abstract
* keys (e.g. PKCS #11). */
ret = gnutls_privkey_sign_data2(res->certs[res->ncerts - 1].pkey,
- sign_algo, 0, &test, &sig);
+ sign_algo, 0, &test, &sig);
if (ret < 0) {
/* for some reason we couldn't sign that. That shouldn't have
* happened, but since it did, report the issue and do not
@@ -1068,9 +1056,10 @@ int _gnutls_check_key_cert_match(gnutls_certificate_credentials_t res)
goto finish;
}
- ret = gnutls_pubkey_verify_data2(res->certs[res->ncerts - 1].cert_list[0].pubkey,
- sign_algo,
- GNUTLS_VERIFY_ALLOW_BROKEN, &test, &sig);
+ ret =
+ gnutls_pubkey_verify_data2(res->certs[res->ncerts - 1].
+ cert_list[0].pubkey, sign_algo,
+ GNUTLS_VERIFY_ALLOW_BROKEN, &test, &sig);
gnutls_free(sig.data);
@@ -1110,8 +1099,7 @@ gnutls_certificate_verification_status_print(unsigned int status,
if (status == 0)
_gnutls_buffer_append_str(&str,
- _
- ("The certificate is trusted. "));
+ _("The certificate is trusted. "));
else
_gnutls_buffer_append_str(&str,
_
@@ -1230,10 +1218,12 @@ gnutls_certificate_set_dh_params(gnutls_certificate_credentials_t res,
}
res->dh_params = dh_params;
- res->dh_sec_param = gnutls_pk_bits_to_sec_param(GNUTLS_PK_DH, _gnutls_mpi_get_nbits(dh_params->params[0]));
+ res->dh_sec_param =
+ gnutls_pk_bits_to_sec_param(GNUTLS_PK_DH,
+ _gnutls_mpi_get_nbits(dh_params->params
+ [0]));
}
-
/**
* gnutls_certificate_set_known_dh_params:
* @res: is a gnutls_certificate_credentials_t type
diff --git a/lib/cert-cred.h b/lib/cert-cred.h
index 1131f6db97..76b8288a56 100644
--- a/lib/cert-cred.h
+++ b/lib/cert-cred.h
@@ -21,38 +21,36 @@
*/
#ifndef GNUTLS_LIB_CERT_CRED_H
-#define GNUTLS_LIB_CERT_CRED_H
-
-#include <gnutls/abstract.h>
-#include "str_array.h"
+# define GNUTLS_LIB_CERT_CRED_H
+# include <gnutls/abstract.h>
+# include "str_array.h"
int
-_gnutls_certificate_credential_append_keypair(gnutls_certificate_credentials_t res,
- gnutls_privkey_t key,
- gnutls_str_array_t names,
- gnutls_pcert_st * crt, int nr);
+_gnutls_certificate_credential_append_keypair(gnutls_certificate_credentials_t
+ res, gnutls_privkey_t key,
+ gnutls_str_array_t names,
+ gnutls_pcert_st * crt, int nr);
int
_gnutls_read_key_mem(gnutls_certificate_credentials_t res,
- const void *key, int key_size, gnutls_x509_crt_fmt_t type,
- const char *pass, unsigned int flags,
- gnutls_privkey_t *rkey);
+ const void *key, int key_size, gnutls_x509_crt_fmt_t type,
+ const char *pass, unsigned int flags,
+ gnutls_privkey_t * rkey);
int
_gnutls_read_key_file(gnutls_certificate_credentials_t res,
- const char *keyfile, gnutls_x509_crt_fmt_t type,
- const char *pass, unsigned int flags,
- gnutls_privkey_t *rkey);
+ const char *keyfile, gnutls_x509_crt_fmt_t type,
+ const char *pass, unsigned int flags,
+ gnutls_privkey_t * rkey);
-int
-_gnutls_get_x509_name(gnutls_x509_crt_t crt, gnutls_str_array_t * names);
+int _gnutls_get_x509_name(gnutls_x509_crt_t crt, gnutls_str_array_t * names);
-#define CRED_RET_SUCCESS(cred) \
+# define CRED_RET_SUCCESS(cred) \
if (cred->flags & GNUTLS_CERTIFICATE_API_V2) { \
return cred->ncerts-1; \
} else { \
return 0; \
}
-#endif /* GNUTLS_LIB_CERT_CRED_H */
+#endif /* GNUTLS_LIB_CERT_CRED_H */
diff --git a/lib/cert-session.c b/lib/cert-session.c
index 9b03600f3b..5c514943bc 100644
--- a/lib/cert-session.c
+++ b/lib/cert-session.c
@@ -124,10 +124,9 @@ const gnutls_datum_t *gnutls_certificate_get_peers(gnutls_session_t
* Returns: 0 if the peer (server) did not request client
* authentication or 1 otherwise.
**/
-unsigned
-gnutls_certificate_client_get_request_status(gnutls_session_t session)
+unsigned gnutls_certificate_client_get_request_status(gnutls_session_t session)
{
- return (session->internals.hsk_flags & HSK_CRT_ASKED)?1:0;
+ return (session->internals.hsk_flags & HSK_CRT_ASKED) ? 1 : 0;
}
/**
@@ -227,7 +226,7 @@ gnutls_certificate_set_verify_limits(gnutls_certificate_credentials_t res,
static int
_gnutls_ocsp_verify_mandatory_stapling(gnutls_session_t session,
gnutls_x509_crt_t cert,
- unsigned int * ocsp_status);
+ unsigned int *ocsp_status);
/* If the certificate is revoked status will be GNUTLS_CERT_REVOKED.
*
@@ -238,8 +237,9 @@ static int
check_ocsp_response(gnutls_session_t session, gnutls_x509_crt_t cert,
gnutls_x509_trust_list_t tl,
unsigned verify_flags,
- gnutls_x509_crt_t *cand_issuers, unsigned cand_issuers_size,
- gnutls_datum_t * data, unsigned int *ostatus)
+ gnutls_x509_crt_t * cand_issuers,
+ unsigned cand_issuers_size, gnutls_datum_t * data,
+ unsigned int *ostatus)
{
gnutls_ocsp_resp_t resp;
int ret;
@@ -266,7 +266,9 @@ check_ocsp_response(gnutls_session_t session, gnutls_x509_crt_t cert,
}
if (gnutls_ocsp_resp_get_status(resp) != GNUTLS_OCSP_RESP_SUCCESSFUL) {
- ret = _gnutls_ocsp_verify_mandatory_stapling(session, cert, ostatus);
+ ret =
+ _gnutls_ocsp_verify_mandatory_stapling(session, cert,
+ ostatus);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -297,15 +299,22 @@ check_ocsp_response(gnutls_session_t session, gnutls_x509_crt_t cert,
if ((ret < 0 || status != 0) && cand_issuers_size > 0) {
/* Attempt to verify against the certificate list provided by the server */
- ret = gnutls_ocsp_resp_verify_direct(resp, cand_issuers[0], &status, verify_flags);
+ ret =
+ gnutls_ocsp_resp_verify_direct(resp, cand_issuers[0],
+ &status, verify_flags);
/* if verification fails attempt to find whether any of the other
* bundled CAs is an issuer of the OCSP response */
if ((ret < 0 || status != 0) && cand_issuers_size > 1) {
int ret2;
unsigned status2, i;
- for (i=1;i<cand_issuers_size;i++) {
- ret2 = gnutls_ocsp_resp_verify_direct(resp, cand_issuers[i], &status2, verify_flags);
+ for (i = 1; i < cand_issuers_size; i++) {
+ ret2 =
+ gnutls_ocsp_resp_verify_direct(resp,
+ cand_issuers
+ [i],
+ &status2,
+ verify_flags);
if (ret2 >= 0 && status2 == 0) {
status = status2;
ret = ret2;
@@ -329,7 +338,8 @@ check_ocsp_response(gnutls_session_t session, gnutls_x509_crt_t cert,
char buf[MAX_OCSP_MSG_SIZE];
_gnutls_debug_log("OCSP rejection reason: %s\n",
- _gnutls_ocsp_verify_status_to_str(status, buf));
+ _gnutls_ocsp_verify_status_to_str(status,
+ buf));
ret = gnutls_assert_val(0);
check_failed = 1;
@@ -388,7 +398,7 @@ check_ocsp_response(gnutls_session_t session, gnutls_x509_crt_t cert,
}
ret = 0;
- cleanup:
+ cleanup:
if (check_failed == 0)
session->internals.ocsp_check_ok = 1;
@@ -400,7 +410,7 @@ check_ocsp_response(gnutls_session_t session, gnutls_x509_crt_t cert,
static int
_gnutls_ocsp_verify_mandatory_stapling(gnutls_session_t session,
gnutls_x509_crt_t cert,
- unsigned int * ocsp_status)
+ unsigned int *ocsp_status)
{
gnutls_x509_tlsfeatures_t tlsfeatures;
int i, ret;
@@ -424,7 +434,9 @@ _gnutls_ocsp_verify_mandatory_stapling(gnutls_session_t session,
/* We have requested the status, now check whether the certificate mandates a response */
if (gnutls_x509_crt_get_tlsfeatures(cert, tlsfeatures, 0, NULL) == 0) {
for (i = 0;; ++i) {
- ret = gnutls_x509_tlsfeatures_get(tlsfeatures, i, &feature);
+ ret =
+ gnutls_x509_tlsfeatures_get(tlsfeatures, i,
+ &feature);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
break;
}
@@ -434,7 +446,7 @@ _gnutls_ocsp_verify_mandatory_stapling(gnutls_session_t session,
goto cleanup;
}
- if (feature == 5 /* TLS ID for status request */) {
+ if (feature == 5 /* TLS ID for status request */ ) {
/* We sent a status request, the certificate mandates a reply, but we did not get any. */
*ocsp_status |= GNUTLS_CERT_INVALID;
*ocsp_status |= GNUTLS_CERT_MISSING_OCSP_STATUS;
@@ -468,8 +480,7 @@ _gnutls_ocsp_verify_mandatory_stapling(gnutls_session_t session,
int
_gnutls_x509_cert_verify_peers(gnutls_session_t session,
gnutls_typed_vdata_st * data,
- unsigned int elements,
- unsigned int *status)
+ unsigned int elements, unsigned int *status)
{
cert_auth_info_t info;
gnutls_certificate_credentials_t cred;
@@ -545,10 +556,14 @@ _gnutls_x509_cert_verify_peers(gnutls_session_t session,
if (verify_flags & GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
goto skip_ocsp;
- for (i=0;i<peer_certificate_list_size;i++) {
+ for (i = 0; i < peer_certificate_list_size; i++) {
ret = gnutls_ocsp_status_request_get2(session, i, &resp);
if (ret < 0) {
- ret = _gnutls_ocsp_verify_mandatory_stapling(session, peer_certificate_list[i], &ocsp_status);
+ ret =
+ _gnutls_ocsp_verify_mandatory_stapling(session,
+ peer_certificate_list
+ [i],
+ &ocsp_status);
if (ret < 0) {
gnutls_assert();
CLEAR_CERTS;
@@ -560,18 +575,17 @@ _gnutls_x509_cert_verify_peers(gnutls_session_t session,
cand_issuers = NULL;
cand_issuers_size = 0;
- if (peer_certificate_list_size > i+1) {
- cand_issuers = &peer_certificate_list[i+1];
- cand_issuers_size = peer_certificate_list_size-i-1;
+ if (peer_certificate_list_size > i + 1) {
+ cand_issuers = &peer_certificate_list[i + 1];
+ cand_issuers_size = peer_certificate_list_size - i - 1;
}
ret =
- check_ocsp_response(session,
- peer_certificate_list[i],
- cred->tlist,
- verify_flags, cand_issuers,
- cand_issuers_size,
- &resp, &ocsp_status);
+ check_ocsp_response(session,
+ peer_certificate_list[i],
+ cred->tlist,
+ verify_flags, cand_issuers,
+ cand_issuers_size, &resp, &ocsp_status);
if (ret < 0) {
CLEAR_CERTS;
@@ -580,25 +594,28 @@ _gnutls_x509_cert_verify_peers(gnutls_session_t session,
}
#endif
- skip_ocsp:
+ skip_ocsp:
/* Verify certificate
*/
if (session->internals.cert_output_callback != NULL) {
- _gnutls_debug_log("Print full certificate path validation to trust root.\n");
- ret =
- gnutls_x509_trust_list_verify_crt2(cred->tlist,
- peer_certificate_list,
- peer_certificate_list_size,
- data, elements,
- verify_flags, status,
- session->internals.cert_output_callback);
+ _gnutls_debug_log
+ ("Print full certificate path validation to trust root.\n");
+ ret =
+ gnutls_x509_trust_list_verify_crt2(cred->tlist,
+ peer_certificate_list,
+ peer_certificate_list_size,
+ data, elements,
+ verify_flags, status,
+ session->
+ internals.cert_output_callback);
} else {
- ret =
- gnutls_x509_trust_list_verify_crt2(cred->tlist,
- peer_certificate_list,
- peer_certificate_list_size,
- data, elements,
- verify_flags, status, NULL);
+ ret =
+ gnutls_x509_trust_list_verify_crt2(cred->tlist,
+ peer_certificate_list,
+ peer_certificate_list_size,
+ data, elements,
+ verify_flags, status,
+ NULL);
}
if (ret < 0) {
@@ -647,8 +664,7 @@ _gnutls_x509_cert_verify_peers(gnutls_session_t session,
* A successful error code means that the @status parameter must be checked to obtain the validation status.
**/
int
-gnutls_certificate_verify_peers2(gnutls_session_t session,
- unsigned int *status)
+gnutls_certificate_verify_peers2(gnutls_session_t session, unsigned int *status)
{
return gnutls_certificate_verify_peers(session, NULL, 0, status);
}
@@ -695,14 +711,13 @@ gnutls_certificate_verify_peers2(gnutls_session_t session,
**/
int
gnutls_certificate_verify_peers3(gnutls_session_t session,
- const char *hostname,
- unsigned int *status)
+ const char *hostname, unsigned int *status)
{
-gnutls_typed_vdata_st data;
+ gnutls_typed_vdata_st data;
data.type = GNUTLS_DT_DNS_HOSTNAME;
data.size = 0;
- data.data = (void*)hostname;
+ data.data = (void *)hostname;
return gnutls_certificate_verify_peers(session, &data, 1, status);
}
@@ -755,8 +770,7 @@ gnutls_typed_vdata_st data;
int
gnutls_certificate_verify_peers(gnutls_session_t session,
gnutls_typed_vdata_st * data,
- unsigned int elements,
- unsigned int *status)
+ unsigned int elements, unsigned int *status)
{
cert_auth_info_t info;
@@ -770,13 +784,12 @@ gnutls_certificate_verify_peers(gnutls_session_t session,
if (info->raw_certificate_list == NULL || info->ncerts == 0)
return GNUTLS_E_NO_CERTIFICATE_FOUND;
-
switch (get_certificate_type(session, GNUTLS_CTYPE_PEERS)) {
- case GNUTLS_CRT_X509:
- return _gnutls_x509_cert_verify_peers(session, data, elements,
- status);
- default:
- return GNUTLS_E_INVALID_REQUEST;
+ case GNUTLS_CRT_X509:
+ return _gnutls_x509_cert_verify_peers(session, data, elements,
+ status);
+ default:
+ return GNUTLS_E_INVALID_REQUEST;
}
}
@@ -873,12 +886,12 @@ time_t gnutls_certificate_expiration_time_peers(gnutls_session_t session)
}
switch (get_certificate_type(session, GNUTLS_CTYPE_PEERS)) {
- case GNUTLS_CRT_X509:
- return
- _gnutls_x509_get_raw_crt_expiration_time(&info->
- raw_certificate_list[0]);
- default:
- return (time_t) - 1;
+ case GNUTLS_CRT_X509:
+ return
+ _gnutls_x509_get_raw_crt_expiration_time
+ (&info->raw_certificate_list[0]);
+ default:
+ return (time_t) - 1;
}
}
@@ -909,11 +922,11 @@ time_t gnutls_certificate_activation_time_peers(gnutls_session_t session)
}
switch (get_certificate_type(session, GNUTLS_CTYPE_PEERS)) {
- case GNUTLS_CRT_X509:
- return
- _gnutls_x509_get_raw_crt_activation_time(&info->
- raw_certificate_list[0]);
- default:
- return (time_t) - 1;
+ case GNUTLS_CRT_X509:
+ return
+ _gnutls_x509_get_raw_crt_activation_time
+ (&info->raw_certificate_list[0]);
+ default:
+ return (time_t) - 1;
}
}
diff --git a/lib/cipher-cbc.c b/lib/cipher-cbc.c
index 178fc2e5e8..3b4992192a 100644
--- a/lib/cipher-cbc.c
+++ b/lib/cipher-cbc.c
@@ -25,8 +25,8 @@
#include "gnutls_int.h"
#include "cipher.h"
-static void dummy_wait(record_parameters_st *params,
- const uint8_t *data, size_t data_size,
+static void dummy_wait(record_parameters_st * params,
+ const uint8_t * data, size_t data_size,
unsigned int mac_data, unsigned int max_mac_data)
{
/* this hack is only needed on CBC ciphers when Encrypt-then-MAC mode
@@ -43,12 +43,14 @@ static void dummy_wait(record_parameters_st *params,
if (params->mac && params->mac->id == GNUTLS_MAC_SHA384)
/* v = 1 for the hash function padding + 16 for message length */
v = 17;
- else /* v = 1 for the hash function padding + 8 for message length */
+ else /* v = 1 for the hash function padding + 8 for message length */
v = 9;
if (hash_block > 0) {
- int max_blocks = (max_mac_data+v+hash_block-1)/hash_block;
- int hashed_blocks = (mac_data+v+hash_block-1)/hash_block;
+ int max_blocks =
+ (max_mac_data + v + hash_block - 1) / hash_block;
+ int hashed_blocks =
+ (mac_data + v + hash_block - 1) / hash_block;
unsigned to_hash;
max_blocks -= hashed_blocks;
@@ -56,11 +58,11 @@ static void dummy_wait(record_parameters_st *params,
return;
to_hash = max_blocks * hash_block;
- if ((unsigned)to_hash+1+tag_size < data_size) {
+ if ((unsigned)to_hash + 1 + tag_size < data_size) {
_gnutls_auth_cipher_add_auth
- (&params->read.ctx.tls12,
- data+data_size-tag_size-to_hash-1,
- to_hash);
+ (&params->read.ctx.tls12,
+ data + data_size - tag_size - to_hash - 1,
+ to_hash);
}
}
}
@@ -69,12 +71,11 @@ static void dummy_wait(record_parameters_st *params,
* any leaks which could make CBC ciphersuites without EtM usable as an
* oracle to attacks.
*/
-int cbc_mac_verify(gnutls_session_t session, record_parameters_st *params,
+int cbc_mac_verify(gnutls_session_t session, record_parameters_st * params,
uint8_t preamble[MAX_PREAMBLE_SIZE],
content_type_t type,
uint64_t sequence,
- const uint8_t *data, size_t data_size,
- size_t tag_size)
+ const uint8_t * data, size_t data_size, size_t tag_size)
{
int ret;
const version_entry_st *ver = get_version(session);
@@ -102,16 +103,13 @@ int cbc_mac_verify(gnutls_session_t session, record_parameters_st *params,
#endif
{
for (i = 2; i <= MIN(256, data_size); i++) {
- tmp_pad_failed |=
- (data[data_size - i] != pad);
- pad_failed |=
- ((i <= (1 + pad)) & (tmp_pad_failed));
+ tmp_pad_failed |= (data[data_size - i] != pad);
+ pad_failed |= ((i <= (1 + pad)) & (tmp_pad_failed));
}
}
if (unlikely
- (pad_failed != 0
- || (1 + pad > ((int) data_size - tag_size)))) {
+ (pad_failed != 0 || (1 + pad > ((int)data_size - tag_size)))) {
/* We do not fail here. We check below for the
* the pad_failed. If zero means success.
*/
@@ -126,26 +124,20 @@ int cbc_mac_verify(gnutls_session_t session, record_parameters_st *params,
* MAC.
*/
preamble_size =
- _gnutls_make_preamble(sequence, type,
- length, ver, preamble);
+ _gnutls_make_preamble(sequence, type, length, ver, preamble);
ret =
- _gnutls_auth_cipher_add_auth(&params->read.
- ctx.tls12, preamble,
+ _gnutls_auth_cipher_add_auth(&params->read.ctx.tls12, preamble,
preamble_size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
ret =
- _gnutls_auth_cipher_add_auth(&params->read.
- ctx.tls12,
- data, length);
+ _gnutls_auth_cipher_add_auth(&params->read.ctx.tls12, data, length);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
- ret =
- _gnutls_auth_cipher_tag(&params->read.ctx.tls12, tag,
- tag_size);
+ ret = _gnutls_auth_cipher_tag(&params->read.ctx.tls12, tag, tag_size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
diff --git a/lib/cipher.c b/lib/cipher.c
index 3cbf63841b..eb4f2b8c90 100644
--- a/lib/cipher.c
+++ b/lib/cipher.c
@@ -45,33 +45,30 @@
#include <nettle/memxor.h>
static int encrypt_packet(gnutls_session_t session,
- uint8_t * cipher_data, int cipher_size,
- gnutls_datum_t * plain,
- size_t min_pad,
- content_type_t _type,
- record_parameters_st * params);
+ uint8_t * cipher_data, int cipher_size,
+ gnutls_datum_t * plain,
+ size_t min_pad,
+ content_type_t _type, record_parameters_st * params);
static int decrypt_packet(gnutls_session_t session,
- gnutls_datum_t * ciphertext,
- gnutls_datum_t * plain,
- content_type_t type,
- record_parameters_st * params,
- uint64_t sequence);
+ gnutls_datum_t * ciphertext,
+ gnutls_datum_t * plain,
+ content_type_t type,
+ record_parameters_st * params, uint64_t sequence);
static int
decrypt_packet_tls13(gnutls_session_t session,
gnutls_datum_t * ciphertext,
gnutls_datum_t * plain,
- content_type_t *type, record_parameters_st * params,
+ content_type_t * type, record_parameters_st * params,
uint64_t sequence);
static int
encrypt_packet_tls13(gnutls_session_t session,
- uint8_t *cipher_data, size_t cipher_size,
- gnutls_datum_t *plain,
+ uint8_t * cipher_data, size_t cipher_size,
+ gnutls_datum_t * plain,
size_t pad_size,
- uint8_t type,
- record_parameters_st *params);
+ uint8_t type, record_parameters_st * params);
/* returns ciphertext which contains the headers too. This also
* calculates the size in the header field.
@@ -79,17 +76,17 @@ encrypt_packet_tls13(gnutls_session_t session,
*/
int
_gnutls_encrypt(gnutls_session_t session,
- const uint8_t *data, size_t data_size,
+ const uint8_t * data, size_t data_size,
size_t min_pad,
- mbuffer_st *bufel,
- content_type_t type, record_parameters_st *params)
+ mbuffer_st * bufel,
+ content_type_t type, record_parameters_st * params)
{
gnutls_datum_t plaintext;
const version_entry_st *vers =
- (session->internals.hsk_flags & HSK_EARLY_DATA_IN_FLIGHT) &&
- !IS_SERVER(session) ?
- session->internals.resumed_security_parameters.pversion :
- get_version(session);
+ (session->internals.hsk_flags & HSK_EARLY_DATA_IN_FLIGHT) &&
+ !IS_SERVER(session) ?
+ session->internals.resumed_security_parameters.pversion :
+ get_version(session);
int ret;
plaintext.data = (uint8_t *) data;
@@ -102,8 +99,7 @@ _gnutls_encrypt(gnutls_session_t session,
encrypt_packet_tls13(session,
_mbuffer_get_udata_ptr(bufel),
_mbuffer_get_udata_size(bufel),
- &plaintext, min_pad, type,
- params);
+ &plaintext, min_pad, type, params);
if (ret < 0)
return gnutls_assert_val(ret);
} else {
@@ -111,21 +107,18 @@ _gnutls_encrypt(gnutls_session_t session,
encrypt_packet(session,
_mbuffer_get_udata_ptr(bufel),
_mbuffer_get_udata_size
- (bufel), &plaintext, min_pad, type,
- params);
+ (bufel), &plaintext, min_pad, type, params);
if (ret < 0)
return gnutls_assert_val(ret);
}
if (IS_DTLS(session))
- _gnutls_write_uint16(ret,
- ((uint8_t *)
- _mbuffer_get_uhead_ptr(bufel)) + 11);
+ _gnutls_write_uint16(ret, ((uint8_t *)
+ _mbuffer_get_uhead_ptr(bufel)) + 11);
else
- _gnutls_write_uint16(ret,
- ((uint8_t *)
- _mbuffer_get_uhead_ptr(bufel)) + 3);
+ _gnutls_write_uint16(ret, ((uint8_t *)
+ _mbuffer_get_uhead_ptr(bufel)) + 3);
_mbuffer_set_udata_size(bufel, ret);
_mbuffer_set_uhead_size(bufel, 0);
@@ -140,11 +133,10 @@ _gnutls_encrypt(gnutls_session_t session,
*/
int
_gnutls_decrypt(gnutls_session_t session,
- gnutls_datum_t *ciphertext,
- gnutls_datum_t *output,
- content_type_t *type,
- record_parameters_st *params,
- uint64_t sequence)
+ gnutls_datum_t * ciphertext,
+ gnutls_datum_t * output,
+ content_type_t * type,
+ record_parameters_st * params, uint64_t sequence)
{
int ret;
const version_entry_st *vers = get_version(session);
@@ -155,28 +147,23 @@ _gnutls_decrypt(gnutls_session_t session,
if (vers && vers->tls13_sem)
ret =
decrypt_packet_tls13(session, ciphertext,
- output, type, params,
- sequence);
+ output, type, params, sequence);
else
ret =
decrypt_packet(session, ciphertext,
- output, *type, params,
- sequence);
+ output, *type, params, sequence);
if (ret < 0)
return gnutls_assert_val(ret);
return ret;
}
-
inline static int
calc_enc_length_block(gnutls_session_t session,
const version_entry_st * ver,
int data_size,
int hash_size, uint8_t * pad,
- unsigned auth_cipher,
- uint16_t blocksize,
- unsigned etm)
+ unsigned auth_cipher, uint16_t blocksize, unsigned etm)
{
/* pad is the LH pad the user wants us to add. Besides
* this LH pad, we only add minimal padding
@@ -220,7 +207,8 @@ calc_enc_length_stream(gnutls_session_t session, int data_size,
*/
int
_gnutls_make_preamble(uint64_t uint64_data, uint8_t type, unsigned int length,
- const version_entry_st * ver, uint8_t preamble[MAX_PREAMBLE_SIZE])
+ const version_entry_st * ver,
+ uint8_t preamble[MAX_PREAMBLE_SIZE])
{
uint8_t *p = preamble;
uint16_t c_length;
@@ -234,7 +222,7 @@ _gnutls_make_preamble(uint64_t uint64_data, uint8_t type, unsigned int length,
#ifdef ENABLE_SSL3
if (ver->id != GNUTLS_SSL3)
#endif
- { /* TLS protocols */
+ { /* TLS protocols */
*p = ver->major;
p++;
*p = ver->minor;
@@ -252,25 +240,22 @@ _gnutls_make_preamble(uint64_t uint64_data, uint8_t type, unsigned int length,
*/
static int
encrypt_packet(gnutls_session_t session,
- uint8_t * cipher_data, int cipher_size,
- gnutls_datum_t * plain,
- size_t min_pad,
- content_type_t type,
- record_parameters_st * params)
+ uint8_t * cipher_data, int cipher_size,
+ gnutls_datum_t * plain,
+ size_t min_pad,
+ content_type_t type, record_parameters_st * params)
{
uint8_t pad;
int length, ret;
uint8_t preamble[MAX_PREAMBLE_SIZE];
int preamble_size;
- int tag_size =
- _gnutls_auth_cipher_tag_len(&params->write.ctx.tls12);
+ int tag_size = _gnutls_auth_cipher_tag_len(&params->write.ctx.tls12);
int blocksize = _gnutls_cipher_get_block_size(params->cipher);
unsigned algo_type = _gnutls_cipher_type(params->cipher);
uint8_t *data_ptr, *full_cipher_ptr;
const version_entry_st *ver = get_version(session);
int explicit_iv = _gnutls_version_has_explicit_iv(ver);
- int auth_cipher =
- _gnutls_auth_cipher_is_aead(&params->write.ctx.tls12);
+ int auth_cipher = _gnutls_auth_cipher_is_aead(&params->write.ctx.tls12);
uint8_t nonce[MAX_CIPHER_IV_SIZE];
unsigned imp_iv_size = 0, exp_iv_size = 0;
bool etm = 0;
@@ -284,7 +269,7 @@ encrypt_packet(gnutls_session_t session,
_gnutls_hard_log("ENC[%p]: cipher: %s, MAC: %s, Epoch: %u\n",
session, _gnutls_cipher_get_name(params->cipher),
_gnutls_mac_get_name(params->mac),
- (unsigned int) params->epoch);
+ (unsigned int)params->epoch);
/* Calculate the encrypted length (padding etc.)
*/
@@ -301,15 +286,16 @@ encrypt_packet(gnutls_session_t session,
calc_enc_length_block(session, ver, plain->size,
tag_size, &pad, auth_cipher,
blocksize, etm);
- } else { /* AEAD + STREAM */
- imp_iv_size = _gnutls_cipher_get_implicit_iv_size(params->cipher);
- exp_iv_size = _gnutls_cipher_get_explicit_iv_size(params->cipher);
+ } else { /* AEAD + STREAM */
+ imp_iv_size =
+ _gnutls_cipher_get_implicit_iv_size(params->cipher);
+ exp_iv_size =
+ _gnutls_cipher_get_explicit_iv_size(params->cipher);
pad = 0;
length =
calc_enc_length_stream(session, plain->size,
- tag_size, auth_cipher,
- exp_iv_size);
+ tag_size, auth_cipher, exp_iv_size);
}
if (length < 0)
@@ -328,20 +314,20 @@ encrypt_packet(gnutls_session_t session,
/* copy the random IV.
*/
memcpy(data_ptr, nonce, blocksize);
- ret = _gnutls_auth_cipher_setiv(&params->write.
- ctx.tls12, data_ptr,
- blocksize);
+ ret =
+ _gnutls_auth_cipher_setiv(&params->write.ctx.tls12,
+ data_ptr, blocksize);
if (ret < 0)
return gnutls_assert_val(ret);
- /*data_ptr += blocksize;*/
+ /*data_ptr += blocksize; */
cipher_data += blocksize;
}
- } else { /* AEAD */
+ } else { /* AEAD */
if ((params->cipher->flags & GNUTLS_CIPHER_FLAG_XOR_NONCE) == 0) {
/* Values in AEAD are pretty fixed in TLS 1.2 for 128-bit block
*/
- if (params->write.iv_size != imp_iv_size)
+ if (params->write.iv_size != imp_iv_size)
return
gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
@@ -349,28 +335,31 @@ encrypt_packet(gnutls_session_t session,
* write.sequence_number (It is a MAY on RFC 5288), and safer
* as it will never reuse a value.
*/
- memcpy(nonce, params->write.iv,
- params->write.iv_size);
- _gnutls_write_uint64(params->write.sequence_number, &nonce[imp_iv_size]);
+ memcpy(nonce, params->write.iv, params->write.iv_size);
+ _gnutls_write_uint64(params->write.sequence_number,
+ &nonce[imp_iv_size]);
- memcpy(data_ptr, &nonce[imp_iv_size],
- exp_iv_size);
+ memcpy(data_ptr, &nonce[imp_iv_size], exp_iv_size);
- /*data_ptr += exp_iv_size;*/
+ /*data_ptr += exp_iv_size; */
cipher_data += exp_iv_size;
- } else { /* XOR nonce with IV */
- if (unlikely(params->write.iv_size != 12 || imp_iv_size != 12 || exp_iv_size != 0))
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ } else { /* XOR nonce with IV */
+ if (unlikely
+ (params->write.iv_size != 12 || imp_iv_size != 12
+ || exp_iv_size != 0))
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
memset(nonce, 0, 4);
- _gnutls_write_uint64(params->write.sequence_number, &nonce[4]);
+ _gnutls_write_uint64(params->write.sequence_number,
+ &nonce[4]);
memxor(nonce, params->write.iv, 12);
}
}
if (etm)
- ret = length-tag_size;
+ ret = length - tag_size;
else
ret = plain->size;
@@ -382,15 +371,17 @@ encrypt_packet(gnutls_session_t session,
/* add the authenticated data */
ret =
_gnutls_auth_cipher_add_auth(&params->write.ctx.tls12,
- preamble, preamble_size);
+ preamble, preamble_size);
if (ret < 0)
return gnutls_assert_val(ret);
if (etm && explicit_iv) {
/* In EtM we need to hash the IV as well */
ret =
- _gnutls_auth_cipher_add_auth(&params->write.ctx.tls12,
- full_cipher_ptr, blocksize);
+ _gnutls_auth_cipher_add_auth(&params->write.
+ ctx.tls12,
+ full_cipher_ptr,
+ blocksize);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -404,13 +395,15 @@ encrypt_packet(gnutls_session_t session,
cipher_size, pad);
if (ret < 0)
return gnutls_assert_val(ret);
- } else { /* AEAD */
- ret = _gnutls_aead_cipher_encrypt(&params->write.ctx.tls12.cipher,
- nonce, imp_iv_size + exp_iv_size,
- preamble, preamble_size,
- tag_size,
- plain->data, plain->size,
- cipher_data, cipher_size);
+ } else { /* AEAD */
+ ret =
+ _gnutls_aead_cipher_encrypt(&params->write.ctx.tls12.cipher,
+ nonce,
+ imp_iv_size + exp_iv_size,
+ preamble, preamble_size,
+ tag_size, plain->data,
+ plain->size, cipher_data,
+ cipher_size);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -420,11 +413,10 @@ encrypt_packet(gnutls_session_t session,
static int
encrypt_packet_tls13(gnutls_session_t session,
- uint8_t *cipher_data, size_t cipher_size,
- gnutls_datum_t *plain,
+ uint8_t * cipher_data, size_t cipher_size,
+ gnutls_datum_t * plain,
size_t pad_size,
- uint8_t type,
- record_parameters_st *params)
+ uint8_t type, record_parameters_st * params)
{
int ret;
unsigned int tag_size = params->write.aead_tag_size;
@@ -442,12 +434,12 @@ encrypt_packet_tls13(gnutls_session_t session,
_gnutls_hard_log("ENC[%p]: cipher: %s, MAC: %s, Epoch: %u\n",
session, _gnutls_cipher_get_name(params->cipher),
_gnutls_mac_get_name(params->mac),
- (unsigned int) params->epoch);
+ (unsigned int)params->epoch);
iv_size = params->write.iv_size;
if (params->cipher->id == GNUTLS_CIPHER_NULL) {
- if (cipher_size < plain->size+1)
+ if (cipher_size < plain->size + 1)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
memcpy(cipher_data, plain->data, plain->size);
return plain->size;
@@ -457,18 +449,18 @@ encrypt_packet_tls13(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
memset(nonce, 0, iv_size - 8);
- _gnutls_write_uint64(params->write.sequence_number, &nonce[iv_size-8]);
+ _gnutls_write_uint64(params->write.sequence_number,
+ &nonce[iv_size - 8]);
memxor(nonce, params->write.iv, iv_size);
- max = max_record_send_size(session) +
- MAX_RECORD_SEND_OVERHEAD(session);
+ max = max_record_send_size(session) + MAX_RECORD_SEND_OVERHEAD(session);
/* make TLS 1.3 form of data */
total = plain->size + 1 + pad_size;
/* check whether padding would exceed max */
if (total > max) {
- if (unlikely(max < (ssize_t)plain->size+1))
+ if (unlikely(max < (ssize_t) plain->size + 1))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
pad_size = max - plain->size - 1;
@@ -479,7 +471,7 @@ encrypt_packet_tls13(gnutls_session_t session,
aad[0] = GNUTLS_APPLICATION_DATA;
aad[1] = 0x03;
aad[2] = 0x03;
- _gnutls_write_uint16(total+tag_size, &aad[3]);
+ _gnutls_write_uint16(total + tag_size, &aad[3]);
auth_iov[0].iov_base = aad;
auth_iov[0].iov_len = sizeof(aad);
@@ -488,14 +480,14 @@ encrypt_packet_tls13(gnutls_session_t session,
iov[0].iov_len = plain->size;
if (pad_size || (session->internals.flags & GNUTLS_SAFE_PADDING_CHECK)) {
- uint8_t *pad = gnutls_calloc(1, 1+pad_size);
+ uint8_t *pad = gnutls_calloc(1, 1 + pad_size);
if (pad == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
pad[0] = type;
iov[1].iov_base = pad;
- iov[1].iov_len = 1+pad_size;
+ iov[1].iov_len = 1 + pad_size;
ret = gnutls_aead_cipher_encryptv(&params->write.ctx.aead,
nonce, iv_size,
@@ -522,16 +514,15 @@ encrypt_packet_tls13(gnutls_session_t session,
return cipher_size;
}
-
/* Deciphers the ciphertext packet, and puts the result to plain.
* Returns the actual plaintext packet size.
*/
static int
decrypt_packet(gnutls_session_t session,
- gnutls_datum_t * ciphertext,
- gnutls_datum_t * plain,
- content_type_t type, record_parameters_st * params,
- uint64_t sequence)
+ gnutls_datum_t * ciphertext,
+ gnutls_datum_t * plain,
+ content_type_t type, record_parameters_st * params,
+ uint64_t sequence)
{
uint8_t tag[MAX_HASH_SIZE];
uint8_t nonce[MAX_CIPHER_IV_SIZE];
@@ -557,36 +548,43 @@ decrypt_packet(gnutls_session_t session,
exp_iv_size = _gnutls_cipher_get_explicit_iv_size(params->cipher);
blocksize = _gnutls_cipher_get_block_size(params->cipher);
- if (params->etm !=0 && cipher_type == CIPHER_BLOCK)
+ if (params->etm != 0 && cipher_type == CIPHER_BLOCK)
etm = 1;
/* if EtM mode and not AEAD */
if (etm) {
if (unlikely(ciphertext->size < tag_size))
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
preamble_size = _gnutls_make_preamble(sequence,
- type, ciphertext->size-tag_size,
- ver, preamble);
+ type,
+ ciphertext->size -
+ tag_size, ver, preamble);
- ret = _gnutls_auth_cipher_add_auth(&params->read.
- ctx.tls12, preamble,
- preamble_size);
+ ret =
+ _gnutls_auth_cipher_add_auth(&params->read.ctx.tls12,
+ preamble, preamble_size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
- ret = _gnutls_auth_cipher_add_auth(&params->read.
- ctx.tls12,
+ ret = _gnutls_auth_cipher_add_auth(&params->read.ctx.tls12,
ciphertext->data,
- ciphertext->size-tag_size);
+ ciphertext->size - tag_size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
- ret = _gnutls_auth_cipher_tag(&params->read.ctx.tls12, tag, tag_size);
+ ret =
+ _gnutls_auth_cipher_tag(&params->read.ctx.tls12, tag,
+ tag_size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
- if (unlikely(gnutls_memcmp(tag, &ciphertext->data[ciphertext->size-tag_size], tag_size) != 0)) {
+ if (unlikely
+ (gnutls_memcmp
+ (tag, &ciphertext->data[ciphertext->size - tag_size],
+ tag_size) != 0)) {
/* HMAC was not the same. */
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
}
@@ -599,32 +597,35 @@ decrypt_packet(gnutls_session_t session,
/* The way AEAD ciphers are defined in RFC5246, it allows
* only stream ciphers.
*/
- if (unlikely(_gnutls_auth_cipher_is_aead(&params->read.
- ctx.tls12) == 0))
+ if (unlikely
+ (_gnutls_auth_cipher_is_aead(&params->read.ctx.tls12) == 0))
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
-
if (unlikely(ciphertext->size < (tag_size + exp_iv_size)))
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
if ((params->cipher->flags & GNUTLS_CIPHER_FLAG_XOR_NONCE) == 0) {
/* Values in AEAD are pretty fixed in TLS 1.2 for 128-bit block
*/
- if (unlikely(params->read.iv_size != 4))
+ if (unlikely(params->read.iv_size != 4))
return
- gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ gnutls_assert_val
+ (GNUTLS_E_DECRYPTION_FAILED);
- memcpy(nonce, params->read.iv,
- imp_iv_size);
+ memcpy(nonce, params->read.iv, imp_iv_size);
memcpy(&nonce[imp_iv_size],
ciphertext->data, exp_iv_size);
ciphertext->data += exp_iv_size;
ciphertext->size -= exp_iv_size;
- } else { /* XOR nonce with IV */
- if (unlikely(params->read.iv_size != 12 || imp_iv_size != 12 || exp_iv_size != 0))
- return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ } else { /* XOR nonce with IV */
+ if (unlikely
+ (params->read.iv_size != 12 || imp_iv_size != 12
+ || exp_iv_size != 0))
+ return
+ gnutls_assert_val
+ (GNUTLS_E_DECRYPTION_FAILED);
memset(nonce, 0, 4);
_gnutls_write_uint64(sequence, &nonce[4]);
@@ -632,8 +633,7 @@ decrypt_packet(gnutls_session_t session,
memxor(nonce, params->read.iv, 12);
}
- length =
- ciphertext->size - tag_size;
+ length = ciphertext->size - tag_size;
length_to_decrypt = ciphertext->size;
@@ -644,23 +644,22 @@ decrypt_packet(gnutls_session_t session,
_gnutls_make_preamble(sequence, type,
length, ver, preamble);
-
- if (unlikely
- ((unsigned) length_to_decrypt > plain->size)) {
+ if (unlikely((unsigned)length_to_decrypt > plain->size)) {
_gnutls_audit_log(session,
"Received %u bytes, while expecting less than %u\n",
- (unsigned int) length_to_decrypt,
- (unsigned int) plain->size);
- return
- gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ (unsigned int)length_to_decrypt,
+ (unsigned int)plain->size);
+ return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
}
- ret = _gnutls_aead_cipher_decrypt(&params->read.ctx.tls12.cipher,
- nonce, exp_iv_size + imp_iv_size,
- preamble, preamble_size,
- tag_size,
- ciphertext->data, length_to_decrypt,
- plain->data, plain->size);
+ ret =
+ _gnutls_aead_cipher_decrypt(&params->read.ctx.tls12.cipher,
+ nonce,
+ exp_iv_size + imp_iv_size,
+ preamble, preamble_size,
+ tag_size, ciphertext->data,
+ length_to_decrypt, plain->data,
+ plain->size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
@@ -685,29 +684,24 @@ decrypt_packet(gnutls_session_t session,
length, ver, preamble);
ret =
- _gnutls_auth_cipher_add_auth(&params->read.
- ctx.tls12, preamble,
- preamble_size);
+ _gnutls_auth_cipher_add_auth(&params->read.ctx.tls12,
+ preamble, preamble_size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
- if (unlikely
- ((unsigned) length_to_decrypt > plain->size)) {
+ if (unlikely((unsigned)length_to_decrypt > plain->size)) {
_gnutls_audit_log(session,
"Received %u bytes, while expecting less than %u\n",
- (unsigned int) length_to_decrypt,
- (unsigned int) plain->size);
- return
- gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ (unsigned int)length_to_decrypt,
+ (unsigned int)plain->size);
+ return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
}
ret =
- _gnutls_auth_cipher_decrypt2(&params->read.
- ctx.tls12,
+ _gnutls_auth_cipher_decrypt2(&params->read.ctx.tls12,
ciphertext->data,
length_to_decrypt,
- plain->data,
- plain->size);
+ plain->data, plain->size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
@@ -718,8 +712,7 @@ decrypt_packet(gnutls_session_t session,
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
- if (unlikely
- (gnutls_memcmp(tag, tag_ptr, tag_size) != 0)) {
+ if (unlikely(gnutls_memcmp(tag, tag_ptr, tag_size) != 0)) {
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
}
@@ -732,19 +725,23 @@ decrypt_packet(gnutls_session_t session,
if (etm == 0) {
if (unlikely(ciphertext->size % blocksize != 0))
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
} else {
- if (unlikely((ciphertext->size - tag_size) % blocksize != 0))
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ if (unlikely
+ ((ciphertext->size - tag_size) % blocksize != 0))
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
}
/* ignore the IV in TLS 1.1+
*/
if (explicit_iv) {
- ret = _gnutls_auth_cipher_setiv(&params->read.
- ctx.tls12,
- ciphertext->data,
- blocksize);
+ ret = _gnutls_auth_cipher_setiv(&params->read.ctx.tls12,
+ ciphertext->data,
+ blocksize);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -754,8 +751,7 @@ decrypt_packet(gnutls_session_t session,
}
if (unlikely(ciphertext->size < tag_size + 1))
- return
- gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
/* we don't use the auth_cipher interface here, since
* TLS with block ciphers is impossible to be used under such
@@ -763,56 +759,54 @@ decrypt_packet(gnutls_session_t session,
* auth_data, but it is not available before decryption).
*/
if (unlikely(ciphertext->size > plain->size))
- return
- gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
if (etm == 0) {
ret =
_gnutls_cipher_decrypt2(&params->read.ctx.tls12.
cipher, ciphertext->data,
ciphertext->size,
- plain->data,
- plain->size);
+ plain->data, plain->size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
ret = cbc_mac_verify(session, params, preamble, type,
- sequence, plain->data, ciphertext->size,
- tag_size);
+ sequence, plain->data,
+ ciphertext->size, tag_size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
length = ret;
- } else { /* EtM */
+ } else { /* EtM */
ret =
_gnutls_cipher_decrypt2(&params->read.ctx.tls12.
cipher, ciphertext->data,
ciphertext->size - tag_size,
- plain->data,
- plain->size);
+ plain->data, plain->size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
- pad = plain->data[ciphertext->size - tag_size - 1]; /* pad */
+ pad = plain->data[ciphertext->size - tag_size - 1]; /* pad */
length = ciphertext->size - tag_size - pad - 1;
if (unlikely(length < 0))
- return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_DECRYPTION_FAILED);
}
break;
default:
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
}
-
return length;
}
static int
decrypt_packet_tls13(gnutls_session_t session,
- gnutls_datum_t *ciphertext,
- gnutls_datum_t *plain,
- content_type_t *type, record_parameters_st *params,
+ gnutls_datum_t * ciphertext,
+ gnutls_datum_t * plain,
+ content_type_t * type, record_parameters_st * params,
uint64_t sequence)
{
uint8_t nonce[MAX_CIPHER_IV_SIZE];
@@ -850,22 +844,19 @@ decrypt_packet_tls13(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
memset(nonce, 0, iv_size - 8);
- _gnutls_write_uint64(sequence, &nonce[iv_size-8]);
+ _gnutls_write_uint64(sequence, &nonce[iv_size - 8]);
memxor(nonce, params->read.iv, params->read.iv_size);
- length =
- ciphertext->size - tag_size;
+ length = ciphertext->size - tag_size;
length_to_decrypt = ciphertext->size;
- if (unlikely
- ((unsigned) length_to_decrypt > plain->size)) {
- _gnutls_audit_log(session,
+ if (unlikely((unsigned)length_to_decrypt > plain->size)) {
+ _gnutls_audit_log(session,
"Received %u bytes, while expecting less than %u\n",
- (unsigned int) length_to_decrypt,
- (unsigned int) plain->size);
- return
- gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ (unsigned int)length_to_decrypt,
+ (unsigned int)plain->size);
+ return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
}
aad[0] = GNUTLS_APPLICATION_DATA;
@@ -886,7 +877,7 @@ decrypt_packet_tls13(gnutls_session_t session,
if (length > max_decrypted_size(session) + 1) {
_gnutls_audit_log
(session, "Received packet with illegal length: %u\n",
- (unsigned int) length);
+ (unsigned int)length);
return gnutls_assert_val(GNUTLS_E_RECORD_OVERFLOW);
}
@@ -896,12 +887,14 @@ decrypt_packet_tls13(gnutls_session_t session,
/* now figure the actual data size. We intentionally iterate through all data,
* to avoid leaking the padding length due to timing differences in processing.
*/
- for (j=length;j>0;j--) {
- if (plain->data[j-1]!=0 && length_set == 0) {
- *type = plain->data[j-1];
- length = j-1;
+ for (j = length; j > 0; j--) {
+ if (plain->data[j - 1] != 0 && length_set == 0) {
+ *type = plain->data[j - 1];
+ length = j - 1;
length_set = 1;
- if (!(session->internals.flags & GNUTLS_SAFE_PADDING_CHECK))
+ if (!
+ (session->
+ internals.flags & GNUTLS_SAFE_PADDING_CHECK))
break;
}
}
diff --git a/lib/cipher.h b/lib/cipher.h
index 43cdde22f4..ee077ce47a 100644
--- a/lib/cipher.h
+++ b/lib/cipher.h
@@ -21,7 +21,7 @@
*/
#ifndef GNUTLS_LIB_CIPHER_H
-#define GNUTLS_LIB_CIPHER_H
+# define GNUTLS_LIB_CIPHER_H
int _gnutls_encrypt(gnutls_session_t session,
const uint8_t * data,
@@ -31,20 +31,20 @@ int _gnutls_encrypt(gnutls_session_t session,
int _gnutls_decrypt(gnutls_session_t session,
gnutls_datum_t * ciphertext, gnutls_datum_t * output,
- content_type_t *type, record_parameters_st * params,
+ content_type_t * type, record_parameters_st * params,
uint64_t sequence);
-#define MAX_PREAMBLE_SIZE 16
+# define MAX_PREAMBLE_SIZE 16
int
_gnutls_make_preamble(uint64_t uint64_data, uint8_t type, unsigned int length,
- const version_entry_st * ver, uint8_t preamble[MAX_PREAMBLE_SIZE]);
+ const version_entry_st * ver,
+ uint8_t preamble[MAX_PREAMBLE_SIZE]);
-int cbc_mac_verify(gnutls_session_t session, record_parameters_st *params,
+int cbc_mac_verify(gnutls_session_t session, record_parameters_st * params,
uint8_t preamble[MAX_PREAMBLE_SIZE],
content_type_t type,
uint64_t sequence,
- const uint8_t *data, size_t data_size,
- size_t tag_size);
+ const uint8_t * data, size_t data_size, size_t tag_size);
-#endif /* GNUTLS_LIB_CIPHER_H */
+#endif /* GNUTLS_LIB_CIPHER_H */
diff --git a/lib/cipher_int.c b/lib/cipher_int.c
index 6680442fae..b5f7460782 100644
--- a/lib/cipher_int.c
+++ b/lib/cipher_int.c
@@ -74,8 +74,8 @@ int _gnutls_cipher_exists(gnutls_cipher_algorithm_t cipher)
}
int
-_gnutls_cipher_init(cipher_hd_st *handle, const cipher_entry_st *e,
- const gnutls_datum_t *key, const gnutls_datum_t *iv,
+_gnutls_cipher_init(cipher_hd_st * handle, const cipher_entry_st * e,
+ const gnutls_datum_t * key, const gnutls_datum_t * iv,
int enc)
{
int ret = GNUTLS_E_INTERNAL_ERROR;
@@ -108,7 +108,7 @@ _gnutls_cipher_init(cipher_hd_st *handle, const cipher_entry_st *e,
* use the default ciphers */
SR_FB(cc->init(e->id, &handle->handle, enc), cc_cleanup);
SR_FB(cc->setkey(handle->handle, key->data, key->size),
- cc_cleanup);
+ cc_cleanup);
if (iv) {
/* the API doesn't accept IV */
if (unlikely(cc->setiv == NULL)) {
@@ -117,7 +117,8 @@ _gnutls_cipher_init(cipher_hd_st *handle, const cipher_entry_st *e,
handle->deinit(handle->handle);
goto fallback;
}
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
SR(cc->setiv(handle->handle, iv->data, iv->size),
cc_cleanup);
@@ -146,9 +147,7 @@ _gnutls_cipher_init(cipher_hd_st *handle, const cipher_entry_st *e,
return ret;
}
- ret =
- _gnutls_cipher_ops.setkey(handle->handle, key->data,
- key->size);
+ ret = _gnutls_cipher_ops.setkey(handle->handle, key->data, key->size);
if (ret < 0) {
gnutls_assert();
goto cc_cleanup;
@@ -166,7 +165,7 @@ _gnutls_cipher_init(cipher_hd_st *handle, const cipher_entry_st *e,
return 0;
- cc_cleanup:
+ cc_cleanup:
if (handle->handle)
handle->deinit(handle->handle);
@@ -181,8 +180,7 @@ int _gnutls_auth_cipher_init(auth_cipher_hd_st * handle,
const gnutls_datum_t * cipher_key,
const gnutls_datum_t * iv,
const mac_entry_st * me,
- const gnutls_datum_t * mac_key,
- unsigned etm,
+ const gnutls_datum_t * mac_key, unsigned etm,
#ifdef ENABLE_SSL3
unsigned ssl_hmac,
#endif
@@ -216,8 +214,7 @@ int _gnutls_auth_cipher_init(auth_cipher_hd_st * handle,
if (ssl_hmac)
ret =
_gnutls_mac_init_ssl3(&handle->mac.dig, me,
- mac_key->data,
- mac_key->size);
+ mac_key->data, mac_key->size);
else
#endif
ret =
@@ -228,7 +225,8 @@ int _gnutls_auth_cipher_init(auth_cipher_hd_st * handle,
goto cleanup;
}
#ifdef ENABLE_GOST
- handle->continuous_mac = !!(me->flags & GNUTLS_MAC_FLAG_CONTINUOUS_MAC);
+ handle->continuous_mac =
+ !!(me->flags & GNUTLS_MAC_FLAG_CONTINUOUS_MAC);
#endif
handle->tag_size = _gnutls_mac_get_algo_len(me);
@@ -241,7 +239,7 @@ int _gnutls_auth_cipher_init(auth_cipher_hd_st * handle,
}
return 0;
- cleanup:
+ cleanup:
if (handle->non_null != 0)
_gnutls_cipher_deinit(&handle->cipher);
return ret;
@@ -277,7 +275,6 @@ int _gnutls_auth_cipher_add_auth(auth_cipher_hd_st * handle,
return 0;
}
-
/* The caller must make sure that textlen+pad_size+tag_size is divided by the block size of the cipher */
int _gnutls_auth_cipher_encrypt2_tag(auth_cipher_hd_st * handle,
const uint8_t * text, int textlen,
@@ -286,19 +283,19 @@ int _gnutls_auth_cipher_encrypt2_tag(auth_cipher_hd_st * handle,
{
int ret;
uint8_t *ciphertext = _ciphertext;
- unsigned blocksize =
- _gnutls_cipher_get_block_size(handle->cipher.e);
+ unsigned blocksize = _gnutls_cipher_get_block_size(handle->cipher.e);
unsigned l;
assert(ciphertext != NULL);
- if (handle->is_mac) { /* cipher + mac */
- if (handle->non_null == 0) { /* NULL cipher + MAC */
+ if (handle->is_mac) { /* cipher + mac */
+ if (handle->non_null == 0) { /* NULL cipher + MAC */
MAC(handle, text, textlen);
if (unlikely(textlen + pad_size + handle->tag_size) >
ciphertextlen)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
if (text != ciphertext)
memcpy(ciphertext, text, textlen);
@@ -312,20 +309,22 @@ int _gnutls_auth_cipher_encrypt2_tag(auth_cipher_hd_st * handle,
} else {
uint8_t *orig_ciphertext = ciphertext;
- if (handle->etm == 0 || handle->cipher.e->type != CIPHER_BLOCK) {
+ if (handle->etm == 0
+ || handle->cipher.e->type != CIPHER_BLOCK) {
MAC(handle, text, textlen);
}
if (unlikely(textlen + pad_size + handle->tag_size) >
ciphertextlen)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
assert(blocksize != 0);
l = (textlen / blocksize) * blocksize;
if (l > 0) {
ret =
- _gnutls_cipher_encrypt2(&handle->cipher, text,
- l, ciphertext,
+ _gnutls_cipher_encrypt2(&handle->cipher,
+ text, l, ciphertext,
ciphertextlen);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -339,10 +338,12 @@ int _gnutls_auth_cipher_encrypt2_tag(auth_cipher_hd_st * handle,
if (ciphertext != text && textlen > 0)
memcpy(ciphertext, text, textlen);
- if (handle->etm == 0 || handle->cipher.e->type != CIPHER_BLOCK) {
+ if (handle->etm == 0
+ || handle->cipher.e->type != CIPHER_BLOCK) {
ret =
_gnutls_auth_cipher_tag(handle,
- ciphertext + textlen,
+ ciphertext +
+ textlen,
handle->tag_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -359,19 +360,20 @@ int _gnutls_auth_cipher_encrypt2_tag(auth_cipher_hd_st * handle,
ret =
_gnutls_cipher_encrypt2(&handle->cipher,
ciphertext, textlen,
- ciphertext,
- ciphertextlen);
+ ciphertext, ciphertextlen);
if (ret < 0)
return gnutls_assert_val(ret);
- if (handle->etm != 0 && handle->cipher.e->type == CIPHER_BLOCK) {
+ if (handle->etm != 0
+ && handle->cipher.e->type == CIPHER_BLOCK) {
MAC(handle, orig_ciphertext, l);
MAC(handle, ciphertext, textlen);
ret =
- _gnutls_auth_cipher_tag(handle,
- ciphertext + textlen,
- handle->tag_size);
+ _gnutls_auth_cipher_tag(handle,
+ ciphertext +
+ textlen,
+ handle->tag_size);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -388,7 +390,7 @@ int _gnutls_auth_cipher_encrypt2_tag(auth_cipher_hd_st * handle,
handle->tag_size);
if (unlikely(ret < 0))
return gnutls_assert_val(ret);
- } else if (handle->non_null == 0 && text != ciphertext) /* NULL cipher - no MAC */
+ } else if (handle->non_null == 0 && text != ciphertext) /* NULL cipher - no MAC */
memcpy(ciphertext, text, textlen);
return 0;
@@ -403,7 +405,8 @@ int _gnutls_auth_cipher_decrypt2(auth_cipher_hd_st * handle,
if (unlikely(ciphertextlen > textlen))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- if (handle->is_mac && (handle->etm != 0 && handle->cipher.e->type == CIPHER_BLOCK)) {
+ if (handle->is_mac
+ && (handle->etm != 0 && handle->cipher.e->type == CIPHER_BLOCK)) {
/* The MAC is not to be hashed */
ciphertextlen -= handle->tag_size;
@@ -419,7 +422,8 @@ int _gnutls_auth_cipher_decrypt2(auth_cipher_hd_st * handle,
} else if (handle->non_null == 0 && text != ciphertext)
memcpy(text, ciphertext, ciphertextlen);
- if (handle->is_mac && (handle->etm == 0 || handle->cipher.e->type != CIPHER_BLOCK)) {
+ if (handle->is_mac
+ && (handle->etm == 0 || handle->cipher.e->type != CIPHER_BLOCK)) {
/* The MAC is not to be hashed */
ciphertextlen -= handle->tag_size;
@@ -429,8 +433,7 @@ int _gnutls_auth_cipher_decrypt2(auth_cipher_hd_st * handle,
return 0;
}
-int _gnutls_auth_cipher_tag(auth_cipher_hd_st * handle, void *tag,
- int tag_size)
+int _gnutls_auth_cipher_tag(auth_cipher_hd_st * handle, void *tag, int tag_size)
{
if (handle->is_mac) {
#ifdef ENABLE_SSL3
@@ -442,7 +445,7 @@ int _gnutls_auth_cipher_tag(auth_cipher_hd_st * handle, void *tag,
} else
#endif
#ifdef ENABLE_GOST
- /* draft-smyshlyaev-tls12-gost-suites section 4.1.2 */
+ /* draft-smyshlyaev-tls12-gost-suites section 4.1.2 */
if (handle->continuous_mac) {
mac_hd_st temp_mac;
int ret = _gnutls_mac_copy(&handle->mac.mac, &temp_mac);
diff --git a/lib/cipher_int.h b/lib/cipher_int.h
index a17afc381c..ff6e3a1874 100644
--- a/lib/cipher_int.h
+++ b/lib/cipher_int.h
@@ -21,40 +21,40 @@
*/
#ifndef GNUTLS_LIB_CIPHER_INT_H
-#define GNUTLS_LIB_CIPHER_INT_H
+# define GNUTLS_LIB_CIPHER_INT_H
-#include <gnutls/crypto.h>
-#include "errors.h"
-#include <crypto-backend.h>
+# include <gnutls/crypto.h>
+# include "errors.h"
+# include <crypto-backend.h>
extern int crypto_cipher_prio;
extern gnutls_crypto_cipher_st _gnutls_cipher_ops;
-typedef int (*cipher_encrypt_func) (void *hd, const void *plaintext,
- size_t, void *ciphertext, size_t);
-typedef int (*cipher_decrypt_func) (void *hd, const void *ciphertext,
- size_t, void *plaintext, size_t);
-typedef int (*aead_cipher_encrypt_func) (void *hd,
- const void *nonce, size_t,
- const void *auth, size_t,
- size_t tag,
- const void *plaintext, size_t,
- void *ciphertext, size_t);
-typedef int (*aead_cipher_decrypt_func) (void *hd,
- const void *nonce, size_t,
- const void *auth, size_t,
- size_t tag,
- const void *ciphertext, size_t,
- void *plaintext, size_t);
-typedef void (*cipher_deinit_func) (void *hd);
-
-typedef int (*cipher_auth_func) (void *hd, const void *data, size_t);
-typedef int (*cipher_setiv_func) (void *hd, const void *iv, size_t);
-typedef int (*cipher_getiv_func) (void *hd, void *iv, size_t);
-
-typedef int (*cipher_setkey_func) (void *hd, const void *key, size_t keysize);
-
-typedef void (*cipher_tag_func) (void *hd, void *tag, size_t);
+typedef int (*cipher_encrypt_func)(void *hd, const void *plaintext,
+ size_t, void *ciphertext, size_t);
+typedef int (*cipher_decrypt_func)(void *hd, const void *ciphertext,
+ size_t, void *plaintext, size_t);
+typedef int (*aead_cipher_encrypt_func)(void *hd,
+ const void *nonce, size_t,
+ const void *auth, size_t,
+ size_t tag,
+ const void *plaintext, size_t,
+ void *ciphertext, size_t);
+typedef int (*aead_cipher_decrypt_func)(void *hd,
+ const void *nonce, size_t,
+ const void *auth, size_t,
+ size_t tag,
+ const void *ciphertext, size_t,
+ void *plaintext, size_t);
+typedef void (*cipher_deinit_func)(void *hd);
+
+typedef int (*cipher_auth_func)(void *hd, const void *data, size_t);
+typedef int (*cipher_setiv_func)(void *hd, const void *iv, size_t);
+typedef int (*cipher_getiv_func)(void *hd, void *iv, size_t);
+
+typedef int (*cipher_setkey_func)(void *hd, const void *key, size_t keysize);
+
+typedef void (*cipher_tag_func)(void *hd, void *tag, size_t);
typedef struct {
void *handle;
@@ -76,7 +76,7 @@ int _gnutls_cipher_init(cipher_hd_st *, const cipher_entry_st * e,
const gnutls_datum_t * iv, int enc);
inline static int _gnutls_cipher_setiv(const cipher_hd_st * handle,
- const void *iv, size_t ivlen)
+ const void *iv, size_t ivlen)
{
return handle->setiv(handle->handle, iv, ivlen);
}
@@ -85,7 +85,7 @@ inline static int _gnutls_cipher_getiv(const cipher_hd_st * handle,
void *iv, size_t ivlen)
{
if (unlikely(handle == NULL || handle->handle == NULL ||
- handle->getiv == NULL))
+ handle->getiv == NULL))
return GNUTLS_E_INVALID_REQUEST;
return handle->getiv(handle->handle, iv, ivlen);
@@ -99,8 +99,7 @@ inline static int _gnutls_cipher_setkey(const cipher_hd_st * handle,
inline static int
_gnutls_cipher_encrypt2(const cipher_hd_st * handle, const void *text,
- size_t textlen, void *ciphertext,
- size_t ciphertextlen)
+ size_t textlen, void *ciphertext, size_t ciphertextlen)
{
if (likely(handle != NULL && handle->handle != NULL)) {
if (handle->encrypt == NULL) {
@@ -137,12 +136,11 @@ _gnutls_aead_cipher_encrypt(const cipher_hd_st * handle,
const void *text, size_t textlen,
void *ciphertext, size_t ciphertextlen)
{
- if (likely(handle != NULL && handle->handle != NULL && handle->aead_encrypt != NULL)) {
- return handle->aead_encrypt(handle->handle,
- nonce, nonce_len,
- auth, auth_len,
- tag,
- text, textlen,
+ if (likely
+ (handle != NULL && handle->handle != NULL
+ && handle->aead_encrypt != NULL)) {
+ return handle->aead_encrypt(handle->handle, nonce, nonce_len,
+ auth, auth_len, tag, text, textlen,
ciphertext, ciphertextlen);
}
@@ -157,13 +155,12 @@ _gnutls_aead_cipher_decrypt(const cipher_hd_st * handle,
const void *ciphertext, size_t ciphertextlen,
void *text, size_t textlen)
{
- if (likely(handle != NULL && handle->handle != NULL && handle->aead_decrypt != NULL)) {
- return handle->aead_decrypt(handle->handle,
- nonce, nonce_len,
- auth, auth_len,
- tag,
- ciphertext, ciphertextlen,
- text, textlen);
+ if (likely
+ (handle != NULL && handle->handle != NULL
+ && handle->aead_decrypt != NULL)) {
+ return handle->aead_decrypt(handle->handle, nonce, nonce_len,
+ auth, auth_len, tag, ciphertext,
+ ciphertextlen, text, textlen);
}
return GNUTLS_E_INVALID_REQUEST;
@@ -179,12 +176,11 @@ inline static void _gnutls_cipher_deinit(cipher_hd_st * handle)
int _gnutls_cipher_exists(gnutls_cipher_algorithm_t cipher);
-int _gnutls_cipher_get_iv(gnutls_cipher_hd_t handle, void *iv,
- size_t ivlen);
+int _gnutls_cipher_get_iv(gnutls_cipher_hd_t handle, void *iv, size_t ivlen);
int _gnutls_cipher_set_key(gnutls_cipher_hd_t handle, void *key, size_t keylen);
-#define _gnutls_cipher_is_aead(h) _gnutls_cipher_algo_is_aead((h)->e)
+# define _gnutls_cipher_is_aead(h) _gnutls_cipher_algo_is_aead((h)->e)
/* returns the tag in AUTHENC ciphers */
inline static void _gnutls_cipher_tag(const cipher_hd_st * handle,
@@ -206,8 +202,8 @@ inline static int _gnutls_cipher_auth(const cipher_hd_st * handle,
return GNUTLS_E_INTERNAL_ERROR;
}
-#define _gnutls_cipher_encrypt(x,y,z) _gnutls_cipher_encrypt2(x,y,z,y,z)
-#define _gnutls_cipher_decrypt(x,y,z) _gnutls_cipher_decrypt2(x,y,z,y,z)
+# define _gnutls_cipher_encrypt(x,y,z) _gnutls_cipher_encrypt2(x,y,z,y,z)
+# define _gnutls_cipher_decrypt(x,y,z) _gnutls_cipher_decrypt2(x,y,z,y,z)
/* auth_cipher API. Allows combining a cipher with a MAC.
*/
@@ -219,12 +215,12 @@ typedef struct {
mac_hd_st mac;
} mac;
unsigned int is_mac:1;
-#ifdef ENABLE_SSL3
+# ifdef ENABLE_SSL3
unsigned int ssl_hmac:1;
-#endif
-#ifdef ENABLE_GOST
+# endif
+# ifdef ENABLE_GOST
unsigned int continuous_mac:1;
-#endif
+# endif
unsigned int non_null:1;
unsigned int etm:1;
size_t tag_size;
@@ -235,11 +231,10 @@ int _gnutls_auth_cipher_init(auth_cipher_hd_st * handle,
const gnutls_datum_t * cipher_key,
const gnutls_datum_t * iv,
const mac_entry_st * me,
- const gnutls_datum_t * mac_key,
- unsigned etm,
-#ifdef ENABLE_SSL3
+ const gnutls_datum_t * mac_key, unsigned etm,
+# ifdef ENABLE_SSL3
unsigned ssl_hmac,
-#endif
+# endif
int enc);
int _gnutls_auth_cipher_add_auth(auth_cipher_hd_st * handle,
@@ -256,21 +251,19 @@ int _gnutls_auth_cipher_tag(auth_cipher_hd_st * handle, void *tag,
int tag_size);
inline static int _gnutls_auth_cipher_setiv(const auth_cipher_hd_st *
- handle, const void *iv,
- size_t ivlen)
+ handle, const void *iv,
+ size_t ivlen)
{
return _gnutls_cipher_setiv(&handle->cipher, iv, ivlen);
}
-inline static size_t _gnutls_auth_cipher_tag_len(auth_cipher_hd_st *
- handle)
+inline static size_t _gnutls_auth_cipher_tag_len(auth_cipher_hd_st * handle)
{
return handle->tag_size;
}
-#define _gnutls_auth_cipher_is_aead(h) _gnutls_cipher_is_aead(&(h)->cipher)
+# define _gnutls_auth_cipher_is_aead(h) _gnutls_cipher_is_aead(&(h)->cipher)
void _gnutls_auth_cipher_deinit(auth_cipher_hd_st * handle);
-
-#endif /* GNUTLS_LIB_CIPHER_INT_H */
+#endif /* GNUTLS_LIB_CIPHER_INT_H */
diff --git a/lib/compress.c b/lib/compress.c
index dbcf4fa168..afaf86fe14 100644
--- a/lib/compress.c
+++ b/lib/compress.c
@@ -23,16 +23,16 @@
#include "compress.h"
#ifdef HAVE_LIBZ
-#include <zlib.h>
+# include <zlib.h>
#endif
#ifdef HAVE_LIBBROTLI
-#include <brotli/decode.h>
-#include <brotli/encode.h>
+# include <brotli/decode.h>
+# include <brotli/encode.h>
#endif
#ifdef HAVE_LIBZSTD
-#include <zstd.h>
+# include <zstd.h>
#endif
typedef struct {
@@ -41,17 +41,17 @@ typedef struct {
} comp_entry;
static const comp_entry comp_algs[] = {
- { GNUTLS_COMP_NULL, "NULL" },
+ {GNUTLS_COMP_NULL, "NULL"},
#ifdef HAVE_LIBZ
- { GNUTLS_COMP_ZLIB, "ZLIB" },
+ {GNUTLS_COMP_ZLIB, "ZLIB"},
#endif
#ifdef HAVE_LIBBROTLI
- { GNUTLS_COMP_BROTLI, "BROTLI" },
+ {GNUTLS_COMP_BROTLI, "BROTLI"},
#endif
#ifdef HAVE_LIBZSTD
- { GNUTLS_COMP_ZSTD, "ZSTD" },
+ {GNUTLS_COMP_ZSTD, "ZSTD"},
#endif
- { GNUTLS_COMP_UNKNOWN, NULL }
+ {GNUTLS_COMP_UNKNOWN, NULL}
};
static const gnutls_compression_method_t alg_list[] = {
@@ -77,8 +77,7 @@ static const gnutls_compression_method_t alg_list[] = {
* Returns: a pointer to a string that contains the name of the
* specified compression algorithm, or %NULL.
**/
-const char *
-gnutls_compression_get_name(gnutls_compression_method_t algorithm)
+const char *gnutls_compression_get_name(gnutls_compression_method_t algorithm)
{
const comp_entry *p;
@@ -98,8 +97,7 @@ gnutls_compression_get_name(gnutls_compression_method_t algorithm)
* Returns: an id of the specified in a string compression method, or
* %GNUTLS_COMP_UNKNOWN on error.
**/
-gnutls_compression_method_t
-gnutls_compression_get_id(const char *name)
+gnutls_compression_method_t gnutls_compression_get_id(const char *name)
{
const comp_entry *p;
@@ -118,20 +116,16 @@ gnutls_compression_get_id(const char *name)
* Returns: a zero-terminated list of #gnutls_compression_method_t
* integers indicating the available compression methods.
**/
-const gnutls_compression_method_t *
-gnutls_compression_list(void)
+const gnutls_compression_method_t *gnutls_compression_list(void)
{
return alg_list;
}
-
/*************************/
/* Compression functions */
/*************************/
-
-size_t
-_gnutls_compress_bound(gnutls_compression_method_t alg, size_t src_len)
+size_t _gnutls_compress_bound(gnutls_compression_method_t alg, size_t src_len)
{
switch (alg) {
#ifdef HAVE_LIBZ
@@ -153,7 +147,7 @@ _gnutls_compress_bound(gnutls_compression_method_t alg, size_t src_len)
}
int
-_gnutls_compress(gnutls_compression_method_t alg,
+_gnutls_compress(gnutls_compression_method_t alg,
uint8_t * dst, size_t dst_len,
const uint8_t * src, size_t src_len)
{
@@ -168,7 +162,9 @@ _gnutls_compress(gnutls_compression_method_t alg,
err = compress(dst, &comp_len, src, src_len);
if (err != Z_OK)
- return gnutls_assert_val(GNUTLS_E_COMPRESSION_FAILED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_COMPRESSION_FAILED);
ret = comp_len;
}
break;
@@ -177,14 +173,17 @@ _gnutls_compress(gnutls_compression_method_t alg,
case GNUTLS_COMP_BROTLI:
{
BROTLI_BOOL err;
- size_t comp_len = dst_len;
+ size_t comp_len = dst_len;
err = BrotliEncoderCompress(BROTLI_DEFAULT_QUALITY,
BROTLI_DEFAULT_WINDOW,
BROTLI_DEFAULT_MODE,
- src_len, src, &comp_len, dst);
+ src_len, src, &comp_len,
+ dst);
if (!err)
- return gnutls_assert_val(GNUTLS_E_COMPRESSION_FAILED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_COMPRESSION_FAILED);
ret = comp_len;
}
break;
@@ -194,9 +193,13 @@ _gnutls_compress(gnutls_compression_method_t alg,
{
size_t comp_len;
- comp_len = ZSTD_compress(dst, dst_len, src, src_len, ZSTD_CLEVEL_DEFAULT);
+ comp_len =
+ ZSTD_compress(dst, dst_len, src, src_len,
+ ZSTD_CLEVEL_DEFAULT);
if (ZSTD_isError(comp_len))
- return gnutls_assert_val(GNUTLS_E_COMPRESSION_FAILED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_COMPRESSION_FAILED);
ret = comp_len;
}
break;
@@ -206,7 +209,8 @@ _gnutls_compress(gnutls_compression_method_t alg,
}
#ifdef COMPRESSION_DEBUG
- _gnutls_debug_log("Compression ratio: %f\n", (float)((float)ret / (float)src_len));
+ _gnutls_debug_log("Compression ratio: %f\n",
+ (float)((float)ret / (float)src_len));
#endif
return ret;
@@ -228,7 +232,9 @@ _gnutls_decompress(gnutls_compression_method_t alg,
err = uncompress(dst, &plain_len, src, src_len);
if (err != Z_OK)
- return gnutls_assert_val(GNUTLS_E_DECOMPRESSION_FAILED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_DECOMPRESSION_FAILED);
ret = plain_len;
}
break;
@@ -239,9 +245,13 @@ _gnutls_decompress(gnutls_compression_method_t alg,
BrotliDecoderResult err;
size_t plain_len = dst_len;
- err = BrotliDecoderDecompress(src_len, src, &plain_len, dst);
+ err =
+ BrotliDecoderDecompress(src_len, src, &plain_len,
+ dst);
if (err != BROTLI_DECODER_RESULT_SUCCESS)
- return gnutls_assert_val(GNUTLS_E_DECOMPRESSION_FAILED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_DECOMPRESSION_FAILED);
ret = plain_len;
}
break;
@@ -253,7 +263,9 @@ _gnutls_decompress(gnutls_compression_method_t alg,
plain_len = ZSTD_decompress(dst, dst_len, src, src_len);
if (ZSTD_isError(plain_len))
- return gnutls_assert_val(GNUTLS_E_DECOMPRESSION_FAILED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_DECOMPRESSION_FAILED);
ret = plain_len;
}
break;
diff --git a/lib/compress.h b/lib/compress.h
index 8199804215..859004d0a3 100644
--- a/lib/compress.h
+++ b/lib/compress.h
@@ -21,14 +21,14 @@
*/
#ifndef GNUTLS_LIB_COMPRESS_H
-#define GNUTLS_LIB_COMPRESS_H
+# define GNUTLS_LIB_COMPRESS_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
size_t _gnutls_compress_bound(gnutls_compression_method_t alg, size_t src_len);
-int _gnutls_compress(gnutls_compression_method_t alg, uint8_t * dst, size_t dst_len,
- const uint8_t * src, size_t src_len);
-int _gnutls_decompress(gnutls_compression_method_t alg, uint8_t * dst, size_t dst_len,
- const uint8_t * src, size_t src_len);
+int _gnutls_compress(gnutls_compression_method_t alg, uint8_t * dst,
+ size_t dst_len, const uint8_t * src, size_t src_len);
+int _gnutls_decompress(gnutls_compression_method_t alg, uint8_t * dst,
+ size_t dst_len, const uint8_t * src, size_t src_len);
-#endif /* GNUTLS_LIB_COMPRESS_H */
+#endif /* GNUTLS_LIB_COMPRESS_H */
diff --git a/lib/constate.c b/lib/constate.c
index fbb047509f..ab5f72c35e 100644
--- a/lib/constate.c
+++ b/lib/constate.c
@@ -46,7 +46,8 @@ static const char keyexp[] = "key expansion";
static const int keyexp_length = sizeof(keyexp) - 1;
static int
-_tls13_init_record_state(gnutls_cipher_algorithm_t algo, record_state_st *state);
+_tls13_init_record_state(gnutls_cipher_algorithm_t algo,
+ record_state_st * state);
/* This function is to be called after handshake, when master_secret,
* client_random and server_random have been initialized.
@@ -81,8 +82,7 @@ _gnutls_set_keys(gnutls_session_t session, record_parameters_st * params,
memcpy(rnd, session->security_parameters.server_random,
GNUTLS_RANDOM_SIZE);
memcpy(&rnd[GNUTLS_RANDOM_SIZE],
- session->security_parameters.client_random,
- GNUTLS_RANDOM_SIZE);
+ session->security_parameters.client_random, GNUTLS_RANDOM_SIZE);
_gnutls_memory_mark_defined(session->security_parameters.master_secret,
GNUTLS_MASTER_SIZE);
@@ -93,7 +93,7 @@ _gnutls_set_keys(gnutls_session_t session, record_parameters_st * params,
(session->security_parameters.master_secret,
GNUTLS_MASTER_SIZE, rnd, 2 * GNUTLS_RANDOM_SIZE,
block_size, key_block);
- } else /* TLS 1.0+ */
+ } else /* TLS 1.0+ */
#endif
ret =
_gnutls_PRF(session,
@@ -103,7 +103,8 @@ _gnutls_set_keys(gnutls_session_t session, record_parameters_st * params,
key_block);
if (ret < 0) {
- _gnutls_memory_mark_undefined(session->security_parameters.master_secret,
+ _gnutls_memory_mark_undefined(session->
+ security_parameters.master_secret,
GNUTLS_MASTER_SIZE);
return gnutls_assert_val(ret);
}
@@ -114,7 +115,7 @@ _gnutls_set_keys(gnutls_session_t session, record_parameters_st * params,
pos = 0;
if (hash_size > 0) {
- assert(hash_size<=sizeof(client_write->mac_key));
+ assert(hash_size <= sizeof(client_write->mac_key));
client_write->mac_key_size = hash_size;
memcpy(client_write->mac_key, &key_block[pos], hash_size);
@@ -139,7 +140,7 @@ _gnutls_set_keys(gnutls_session_t session, record_parameters_st * params,
}
if (key_size > 0) {
- assert(key_size <=sizeof(client_write->key));
+ assert(key_size <= sizeof(client_write->key));
client_write->key_size = key_size;
memcpy(client_write->key, &key_block[pos], key_size);
@@ -195,7 +196,7 @@ _gnutls_set_keys(gnutls_session_t session, record_parameters_st * params,
static int
_tls13_update_keys(gnutls_session_t session, hs_stage_t stage,
- record_parameters_st *params,
+ record_parameters_st * params,
unsigned iv_size, unsigned key_size)
{
uint8_t key_block[MAX_CIPHER_KEY_SIZE];
@@ -222,16 +223,18 @@ _tls13_update_keys(gnutls_session_t session, hs_stage_t stage,
_gnutls_hard_log("INT: READ KEY [%d]: %s\n",
params->read.key_size,
- _gnutls_bin2hex(params->read.key, params->read.key_size,
- buf, sizeof(buf), NULL));
+ _gnutls_bin2hex(params->read.key,
+ params->read.key_size, buf,
+ sizeof(buf), NULL));
params->read.iv_size = prev->read.iv_size;
memcpy(params->read.iv, prev->read.iv, prev->read.key_size);
_gnutls_hard_log("INT: READ IV [%d]: %s\n",
params->read.iv_size,
- _gnutls_bin2hex(params->read.iv, params->read.iv_size,
- buf, sizeof(buf), NULL));
+ _gnutls_bin2hex(params->read.iv,
+ params->read.iv_size, buf,
+ sizeof(buf), NULL));
} else {
upd_state = &params->read;
@@ -243,58 +246,76 @@ _tls13_update_keys(gnutls_session_t session, hs_stage_t stage,
params->write.sequence_number = prev->write.sequence_number;
params->write.key_size = prev->write.key_size;
- memcpy(params->write.key, prev->write.key, prev->write.key_size);
+ memcpy(params->write.key, prev->write.key,
+ prev->write.key_size);
_gnutls_hard_log("INT: WRITE KEY [%d]: %s\n",
params->write.key_size,
- _gnutls_bin2hex(params->write.key, params->write.key_size,
- buf, sizeof(buf), NULL));
+ _gnutls_bin2hex(params->write.key,
+ params->write.key_size, buf,
+ sizeof(buf), NULL));
params->write.iv_size = prev->write.iv_size;
memcpy(params->write.iv, prev->write.iv, prev->write.iv_size);
_gnutls_hard_log("INT: WRITE IV [%d]: %s\n",
params->write.iv_size,
- _gnutls_bin2hex(params->write.iv, params->write.iv_size,
- buf, sizeof(buf), NULL));
+ _gnutls_bin2hex(params->write.iv,
+ params->write.iv_size, buf,
+ sizeof(buf), NULL));
}
-
- if ((session->security_parameters.entity == GNUTLS_CLIENT && stage == STAGE_UPD_OURS) ||
- (session->security_parameters.entity == GNUTLS_SERVER && stage == STAGE_UPD_PEERS)) {
+ if ((session->security_parameters.entity == GNUTLS_CLIENT
+ && stage == STAGE_UPD_OURS)
+ || (session->security_parameters.entity == GNUTLS_SERVER
+ && stage == STAGE_UPD_PEERS)) {
/* client keys */
ret = _tls13_expand_secret(session, APPLICATION_TRAFFIC_UPDATE,
- sizeof(APPLICATION_TRAFFIC_UPDATE)-1,
- NULL, 0,
+ sizeof(APPLICATION_TRAFFIC_UPDATE) -
+ 1, NULL, 0,
session->key.proto.tls13.ap_ckey,
- session->security_parameters.prf->output_size,
+ session->security_parameters.
+ prf->output_size,
session->key.proto.tls13.ap_ckey);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_expand_secret(session, "key", 3, NULL, 0, session->key.proto.tls13.ap_ckey, key_size, key_block);
+ ret =
+ _tls13_expand_secret(session, "key", 3, NULL, 0,
+ session->key.proto.tls13.ap_ckey,
+ key_size, key_block);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_expand_secret(session, "iv", 2, NULL, 0, session->key.proto.tls13.ap_ckey, iv_size, iv_block);
+ ret =
+ _tls13_expand_secret(session, "iv", 2, NULL, 0,
+ session->key.proto.tls13.ap_ckey,
+ iv_size, iv_block);
if (ret < 0)
return gnutls_assert_val(ret);
} else {
ret = _tls13_expand_secret(session, APPLICATION_TRAFFIC_UPDATE,
- sizeof(APPLICATION_TRAFFIC_UPDATE)-1,
- NULL, 0,
+ sizeof(APPLICATION_TRAFFIC_UPDATE) -
+ 1, NULL, 0,
session->key.proto.tls13.ap_skey,
- session->security_parameters.prf->output_size,
+ session->security_parameters.
+ prf->output_size,
session->key.proto.tls13.ap_skey);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_expand_secret(session, "key", 3, NULL, 0, session->key.proto.tls13.ap_skey, key_size, key_block);
+ ret =
+ _tls13_expand_secret(session, "key", 3, NULL, 0,
+ session->key.proto.tls13.ap_skey,
+ key_size, key_block);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_expand_secret(session, "iv", 2, NULL, 0, session->key.proto.tls13.ap_skey, iv_size, iv_block);
+ ret =
+ _tls13_expand_secret(session, "iv", 2, NULL, 0,
+ session->key.proto.tls13.ap_skey,
+ iv_size, iv_block);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -306,7 +327,7 @@ _tls13_update_keys(gnutls_session_t session, hs_stage_t stage,
upd_state->key_size = key_size;
_gnutls_hard_log("INT: NEW %s KEY [%d]: %s\n",
- (upd_state == &params->read)?"READ":"WRITE",
+ (upd_state == &params->read) ? "READ" : "WRITE",
key_size,
_gnutls_bin2hex(key_block, key_size,
buf, sizeof(buf), NULL));
@@ -317,10 +338,10 @@ _tls13_update_keys(gnutls_session_t session, hs_stage_t stage,
upd_state->iv_size = iv_size;
_gnutls_hard_log("INT: NEW %s IV [%d]: %s\n",
- (upd_state == &params->read)?"READ":"WRITE",
- iv_size,
- _gnutls_bin2hex(iv_block, iv_size,
- buf, sizeof(buf), NULL));
+ (upd_state ==
+ &params->read) ? "READ" : "WRITE", iv_size,
+ _gnutls_bin2hex(iv_block, iv_size, buf,
+ sizeof(buf), NULL));
}
return 0;
@@ -342,19 +363,19 @@ _tls13_set_early_keys(gnutls_session_t session,
return GNUTLS_E_INVALID_REQUEST;
}
- ret = _tls13_expand_secret2(session->internals.
- resumed_security_parameters.prf,
- "key", 3, NULL, 0,
- session->key.proto.tls13.e_ckey,
- key_size, key_block);
+ ret =
+ _tls13_expand_secret2(session->internals.
+ resumed_security_parameters.prf, "key", 3,
+ NULL, 0, session->key.proto.tls13.e_ckey,
+ key_size, key_block);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_expand_secret2(session->internals.
- resumed_security_parameters.prf,
- "iv", 2, NULL, 0,
- session->key.proto.tls13.e_ckey,
- iv_size, iv_block);
+ ret =
+ _tls13_expand_secret2(session->internals.
+ resumed_security_parameters.prf, "iv", 2,
+ NULL, 0, session->key.proto.tls13.e_ckey,
+ iv_size, iv_block);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -416,74 +437,84 @@ _tls13_set_keys(gnutls_session_t session, hs_stage_t stage,
else if (stage == STAGE_HS) {
label = HANDSHAKE_CLIENT_TRAFFIC_LABEL;
- label_size = sizeof(HANDSHAKE_CLIENT_TRAFFIC_LABEL)-1;
+ label_size = sizeof(HANDSHAKE_CLIENT_TRAFFIC_LABEL) - 1;
hsk_len = session->internals.handshake_hash_buffer.length;
keylog_label = "CLIENT_HANDSHAKE_TRAFFIC_SECRET";
ckey = session->key.proto.tls13.hs_ckey;
} else {
label = APPLICATION_CLIENT_TRAFFIC_LABEL;
- label_size = sizeof(APPLICATION_CLIENT_TRAFFIC_LABEL)-1;
- hsk_len = session->internals.handshake_hash_buffer_server_finished_len;
+ label_size = sizeof(APPLICATION_CLIENT_TRAFFIC_LABEL) - 1;
+ hsk_len =
+ session->
+ internals.handshake_hash_buffer_server_finished_len;
keylog_label = "CLIENT_TRAFFIC_SECRET_0";
ckey = session->key.proto.tls13.ap_ckey;
}
ret = _tls13_derive_secret(session, label, label_size,
- session->internals.handshake_hash_buffer.data,
- hsk_len,
- session->key.proto.tls13.temp_secret,
- ckey);
+ session->internals.
+ handshake_hash_buffer.data, hsk_len,
+ session->key.proto.tls13.temp_secret, ckey);
if (ret < 0)
return gnutls_assert_val(ret);
ret = _gnutls_call_keylog_func(session, keylog_label,
ckey,
- session->security_parameters.prf->output_size);
+ session->security_parameters.
+ prf->output_size);
if (ret < 0)
return gnutls_assert_val(ret);
/* client keys */
- ret = _tls13_expand_secret(session, "key", 3, NULL, 0, ckey, key_size, ckey_block);
+ ret =
+ _tls13_expand_secret(session, "key", 3, NULL, 0, ckey, key_size,
+ ckey_block);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_expand_secret(session, "iv", 2, NULL, 0, ckey, iv_size, civ_block);
+ ret =
+ _tls13_expand_secret(session, "iv", 2, NULL, 0, ckey, iv_size,
+ civ_block);
if (ret < 0)
return gnutls_assert_val(ret);
/* server keys */
if (stage == STAGE_HS) {
label = HANDSHAKE_SERVER_TRAFFIC_LABEL;
- label_size = sizeof(HANDSHAKE_SERVER_TRAFFIC_LABEL)-1;
+ label_size = sizeof(HANDSHAKE_SERVER_TRAFFIC_LABEL) - 1;
keylog_label = "SERVER_HANDSHAKE_TRAFFIC_SECRET";
skey = session->key.proto.tls13.hs_skey;
} else {
label = APPLICATION_SERVER_TRAFFIC_LABEL;
- label_size = sizeof(APPLICATION_SERVER_TRAFFIC_LABEL)-1;
+ label_size = sizeof(APPLICATION_SERVER_TRAFFIC_LABEL) - 1;
keylog_label = "SERVER_TRAFFIC_SECRET_0";
skey = session->key.proto.tls13.ap_skey;
}
ret = _tls13_derive_secret(session, label, label_size,
- session->internals.handshake_hash_buffer.data,
- hsk_len,
- session->key.proto.tls13.temp_secret,
- skey);
+ session->internals.
+ handshake_hash_buffer.data, hsk_len,
+ session->key.proto.tls13.temp_secret, skey);
if (ret < 0)
return gnutls_assert_val(ret);
ret = _gnutls_call_keylog_func(session, keylog_label,
skey,
- session->security_parameters.prf->output_size);
+ session->security_parameters.
+ prf->output_size);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_expand_secret(session, "key", 3, NULL, 0, skey, key_size, skey_block);
+ ret =
+ _tls13_expand_secret(session, "key", 3, NULL, 0, skey, key_size,
+ skey_block);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_expand_secret(session, "iv", 2, NULL, 0, skey, iv_size, siv_block);
+ ret =
+ _tls13_expand_secret(session, "iv", 2, NULL, 0, skey, iv_size,
+ siv_block);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -535,8 +566,8 @@ _tls13_set_keys(gnutls_session_t session, hs_stage_t stage,
}
client_write->level = server_write->level = stage == STAGE_HS ?
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE :
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION;
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE :
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION;
return 0;
}
@@ -571,8 +602,7 @@ _gnutls_init_record_state(record_parameters_st * params,
ret = _gnutls_auth_cipher_init(&state->ctx.tls12,
params->cipher, &key, iv,
- params->mac, &mac,
- params->etm,
+ params->mac, &mac, params->etm,
#ifdef ENABLE_SSL3
(ver->id == GNUTLS_SSL3) ? 1 : 0,
#endif
@@ -581,7 +611,7 @@ _gnutls_init_record_state(record_parameters_st * params,
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
return gnutls_assert_val(ret);
}
-
+
if (is_cipher_algo_allowed(params->cipher->id))
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_APPROVED);
else
@@ -592,7 +622,7 @@ _gnutls_init_record_state(record_parameters_st * params,
int
_gnutls_set_cipher_suite2(gnutls_session_t session,
- const gnutls_cipher_suite_entry_st *cs)
+ const gnutls_cipher_suite_entry_st * cs)
{
const cipher_entry_st *cipher_algo;
const mac_entry_st *mac_algo;
@@ -609,8 +639,12 @@ _gnutls_set_cipher_suite2(gnutls_session_t session,
if (ver->tls13_sem && (session->internals.hsk_flags & HSK_HRR_SENT)) {
if (params->initialized && (params->cipher != cipher_algo ||
- params->mac != mac_algo || cs != session->security_parameters.cs))
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ params->mac != mac_algo
+ || cs !=
+ session->security_parameters.cs))
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
return 0;
}
@@ -638,7 +672,8 @@ _gnutls_set_cipher_suite2(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
session->security_parameters.prf = mac_to_entry(cs->prf);
} else {
- session->security_parameters.prf = mac_to_entry(GNUTLS_MAC_MD5_SHA1);
+ session->security_parameters.prf =
+ mac_to_entry(GNUTLS_MAC_MD5_SHA1);
}
session->security_parameters.cs = cs;
@@ -668,8 +703,7 @@ int _gnutls_epoch_dup(gnutls_session_t session, unsigned int epoch_rel)
return gnutls_assert_val(ret);
}
- if (next->initialized
- || next->cipher != NULL || next->mac != NULL)
+ if (next->initialized || next->cipher != NULL || next->mac != NULL)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
next->cipher = prev->cipher;
@@ -678,7 +712,8 @@ int _gnutls_epoch_dup(gnutls_session_t session, unsigned int epoch_rel)
return 0;
}
-int _gnutls_epoch_set_keys(gnutls_session_t session, uint16_t epoch, hs_stage_t stage)
+int _gnutls_epoch_set_keys(gnutls_session_t session, uint16_t epoch,
+ hs_stage_t stage)
{
int hash_size;
int IV_size;
@@ -686,9 +721,9 @@ int _gnutls_epoch_set_keys(gnutls_session_t session, uint16_t epoch, hs_stage_t
record_parameters_st *params;
int ret;
const version_entry_st *ver =
- stage == STAGE_EARLY && !IS_SERVER(session) ?
- session->internals.resumed_security_parameters.pversion :
- get_version(session);
+ stage == STAGE_EARLY && !IS_SERVER(session) ?
+ session->internals.resumed_security_parameters.pversion :
+ get_version(session);
if (unlikely(ver == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
@@ -726,14 +761,18 @@ int _gnutls_epoch_set_keys(gnutls_session_t session, uint16_t epoch, hs_stage_t
if (stage != STAGE_EARLY ||
session->security_parameters.entity == GNUTLS_SERVER) {
- ret = _tls13_init_record_state(params->cipher->id, &params->read);
+ ret =
+ _tls13_init_record_state(params->cipher->id,
+ &params->read);
if (ret < 0)
return gnutls_assert_val(ret);
}
if (stage != STAGE_EARLY ||
session->security_parameters.entity == GNUTLS_CLIENT) {
- ret = _tls13_init_record_state(params->cipher->id, &params->write);
+ ret =
+ _tls13_init_record_state(params->cipher->id,
+ &params->write);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -755,19 +794,24 @@ int _gnutls_epoch_set_keys(gnutls_session_t session, uint16_t epoch, hs_stage_t
/* The TLS1.3 limit of 256 additional bytes is also enforced under CBC
* ciphers to ensure we interoperate with gnutls 2.12.x which could add padding
* data exceeding the maximum. */
- if (ver->tls13_sem || _gnutls_cipher_type(params->cipher) == CIPHER_BLOCK) {
+ if (ver->tls13_sem
+ || _gnutls_cipher_type(params->cipher) == CIPHER_BLOCK) {
session->internals.max_recv_size = 256;
} else {
session->internals.max_recv_size = 0;
}
if (!ver->tls13_sem) {
- session->internals.max_recv_size += _gnutls_record_overhead(ver, params->cipher, params->mac, 1);
+ session->internals.max_recv_size +=
+ _gnutls_record_overhead(ver, params->cipher, params->mac,
+ 1);
if (session->internals.allow_large_records != 0)
session->internals.max_recv_size += EXTRA_COMP_SIZE;
}
- session->internals.max_recv_size += session->security_parameters.max_record_recv_size + RECORD_HEADER_SIZE(session);
+ session->internals.max_recv_size +=
+ session->security_parameters.max_record_recv_size +
+ RECORD_HEADER_SIZE(session);
_dtls_reset_window(params);
@@ -789,12 +833,18 @@ void _gnutls_set_resumed_parameters(gnutls_session_t session)
* negotiated on the subsequent session. */
if (!ver->tls13_sem) {
dst->cs = src->cs;
- _gnutls_memory_mark_defined(dst->master_secret, GNUTLS_MASTER_SIZE);
- memcpy(dst->master_secret, src->master_secret, GNUTLS_MASTER_SIZE);
- _gnutls_memory_mark_defined(dst->client_random, GNUTLS_RANDOM_SIZE);
- memcpy(dst->client_random, src->client_random, GNUTLS_RANDOM_SIZE);
- _gnutls_memory_mark_defined(dst->server_random, GNUTLS_RANDOM_SIZE);
- memcpy(dst->server_random, src->server_random, GNUTLS_RANDOM_SIZE);
+ _gnutls_memory_mark_defined(dst->master_secret,
+ GNUTLS_MASTER_SIZE);
+ memcpy(dst->master_secret, src->master_secret,
+ GNUTLS_MASTER_SIZE);
+ _gnutls_memory_mark_defined(dst->client_random,
+ GNUTLS_RANDOM_SIZE);
+ memcpy(dst->client_random, src->client_random,
+ GNUTLS_RANDOM_SIZE);
+ _gnutls_memory_mark_defined(dst->server_random,
+ GNUTLS_RANDOM_SIZE);
+ memcpy(dst->server_random, src->server_random,
+ GNUTLS_RANDOM_SIZE);
dst->ext_master_secret = src->ext_master_secret;
dst->etm = src->etm;
dst->prf = src->prf;
@@ -810,7 +860,8 @@ void _gnutls_set_resumed_parameters(gnutls_session_t session)
dst->server_auth_type = src->server_auth_type;
if (!ver->tls13_sem &&
- !(session->internals.hsk_flags & HSK_RECORD_SIZE_LIMIT_NEGOTIATED)) {
+ !(session->
+ internals.hsk_flags & HSK_RECORD_SIZE_LIMIT_NEGOTIATED)) {
dst->max_record_recv_size = src->max_record_recv_size;
dst->max_record_send_size = src->max_record_send_size;
}
@@ -839,8 +890,7 @@ int _gnutls_connection_state_init(gnutls_session_t session)
*/
int _gnutls_read_connection_state_init(gnutls_session_t session)
{
- const uint16_t epoch_next =
- session->security_parameters.epoch_next;
+ const uint16_t epoch_next = session->security_parameters.epoch_next;
int ret;
/* Update internals from CipherSuite selected.
@@ -855,8 +905,7 @@ int _gnutls_read_connection_state_init(gnutls_session_t session)
return ret;
_gnutls_handshake_log("HSK[%p]: Cipher Suite: %s\n",
- session,
- session->security_parameters.cs->name);
+ session, session->security_parameters.cs->name);
session->security_parameters.epoch_read = epoch_next;
@@ -868,16 +917,15 @@ int _gnutls_read_connection_state_init(gnutls_session_t session)
*/
int _gnutls_write_connection_state_init(gnutls_session_t session)
{
- const uint16_t epoch_next =
- session->security_parameters.epoch_next;
+ const uint16_t epoch_next = session->security_parameters.epoch_next;
int ret;
/* reset max_record_send_size if it was negotiated in the
* previous handshake using the record_size_limit extension */
- if (!(session->internals.hsk_flags & HSK_RECORD_SIZE_LIMIT_NEGOTIATED) &&
- session->security_parameters.entity == GNUTLS_SERVER)
+ if (!(session->internals.hsk_flags & HSK_RECORD_SIZE_LIMIT_NEGOTIATED)
+ && session->security_parameters.entity == GNUTLS_SERVER)
session->security_parameters.max_record_send_size =
- session->security_parameters.max_user_record_send_size;
+ session->security_parameters.max_user_record_send_size;
/* Update internals from CipherSuite selected.
* If we are resuming just copy the connection session
@@ -929,16 +977,14 @@ epoch_resolve(gnutls_session_t session,
}
static inline record_parameters_st **epoch_get_slot(gnutls_session_t
- session,
- uint16_t epoch)
+ session, uint16_t epoch)
{
- uint16_t epoch_index =
- epoch - session->security_parameters.epoch_min;
+ uint16_t epoch_index = epoch - session->security_parameters.epoch_min;
if (epoch_index >= MAX_EPOCH_INDEX) {
_gnutls_handshake_log
("Epoch %d out of range (idx: %d, max: %d)\n",
- (int) epoch, (int) epoch_index, MAX_EPOCH_INDEX);
+ (int)epoch, (int)epoch_index, MAX_EPOCH_INDEX);
gnutls_assert();
return NULL;
}
@@ -973,7 +1019,7 @@ _gnutls_epoch_get(gnutls_session_t session, unsigned int epoch_rel,
ret = 0;
-cleanup:
+ cleanup:
gnutls_mutex_unlock(&session->internals.epoch_lock);
return ret;
}
@@ -983,7 +1029,8 @@ cleanup:
* the epoch is fully initialized after call.
*/
int
-_gnutls_epoch_setup_next(gnutls_session_t session, unsigned null_epoch, record_parameters_st **newp)
+_gnutls_epoch_setup_next(gnutls_session_t session, unsigned null_epoch,
+ record_parameters_st ** newp)
{
record_parameters_st **slot;
@@ -993,11 +1040,12 @@ _gnutls_epoch_setup_next(gnutls_session_t session, unsigned null_epoch, record_p
if (slot == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- if (*slot != NULL) { /* already initialized */
+ if (*slot != NULL) { /* already initialized */
if (unlikely(null_epoch && !(*slot)->initialized))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- if (unlikely((*slot)->epoch != session->security_parameters.epoch_next))
+ if (unlikely
+ ((*slot)->epoch != session->security_parameters.epoch_next))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
goto finish;
@@ -1024,7 +1072,8 @@ _gnutls_epoch_setup_next(gnutls_session_t session, unsigned null_epoch, record_p
if (IS_DTLS(session)) {
uint64_t seq = (*slot)->write.sequence_number;
seq &= UINT64_C(0xffffffffffff);
- seq |= ((uint64_t)session->security_parameters.epoch_next) << 48;
+ seq |=
+ ((uint64_t) session->security_parameters.epoch_next) << 48;
(*slot)->write.sequence_number = seq;
}
@@ -1080,13 +1129,12 @@ void _gnutls_epoch_gc(gnutls_session_t session)
("REC[%p]: Note inactive epoch %d has %d users\n",
session,
session->record_parameters[i]->epoch,
- session->record_parameters[i]->
- usage_cnt);
+ session->record_parameters[i]->usage_cnt);
if (!epoch_alive
(session, session->record_parameters[i])) {
_gnutls_epoch_free(session,
- session->
- record_parameters[i]);
+ session->record_parameters
+ [i]);
session->record_parameters[i] = NULL;
}
}
@@ -1095,7 +1143,7 @@ void _gnutls_epoch_gc(gnutls_session_t session)
/* Look for contiguous NULLs at the start of the array */
for (i = 0;
i < MAX_EPOCH_INDEX && session->record_parameters[i] == NULL;
- i++);
+ i++) ;
min_index = i;
/* Pick up the slack in the epoch window. */
@@ -1129,8 +1177,7 @@ static inline void free_record_state(record_state_st * state)
_gnutls_auth_cipher_deinit(&state->ctx.tls12);
}
-void
-_gnutls_epoch_free(gnutls_session_t session, record_parameters_st * params)
+void _gnutls_epoch_free(gnutls_session_t session, record_parameters_st * params)
{
_gnutls_record_log("REC[%p]: Epoch #%u freed\n", session,
params->epoch);
@@ -1143,8 +1190,7 @@ _gnutls_epoch_free(gnutls_session_t session, record_parameters_st * params)
static int
_gnutls_call_secret_func(gnutls_session_t session,
- hs_stage_t stage,
- bool for_read, bool for_write)
+ hs_stage_t stage, bool for_read, bool for_write)
{
const mac_entry_st *prf = NULL;
gnutls_record_encryption_level_t level;
@@ -1158,13 +1204,19 @@ _gnutls_call_secret_func(gnutls_session_t session,
prf = session->key.binders[0].prf;
level = GNUTLS_ENCRYPTION_LEVEL_EARLY;
if (for_read) {
- if (unlikely(session->security_parameters.entity == GNUTLS_CLIENT))
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ if (unlikely
+ (session->security_parameters.entity ==
+ GNUTLS_CLIENT))
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
secret_read = session->key.proto.tls13.e_ckey;
}
if (for_write) {
- if (unlikely(session->security_parameters.entity == GNUTLS_SERVER))
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ if (unlikely
+ (session->security_parameters.entity ==
+ GNUTLS_SERVER))
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
secret_write = session->key.proto.tls13.e_ckey;
}
break;
@@ -1172,15 +1224,15 @@ _gnutls_call_secret_func(gnutls_session_t session,
prf = session->security_parameters.prf;
level = GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE;
if (for_read)
- secret_read = session->security_parameters.
- entity == GNUTLS_CLIENT ?
- session->key.proto.tls13.hs_skey :
- session->key.proto.tls13.hs_ckey;
+ secret_read =
+ session->security_parameters.entity ==
+ GNUTLS_CLIENT ? session->key.proto.
+ tls13.hs_skey : session->key.proto.tls13.hs_ckey;
if (for_write)
- secret_write = session->security_parameters.
- entity == GNUTLS_CLIENT ?
- session->key.proto.tls13.hs_ckey :
- session->key.proto.tls13.hs_skey;
+ secret_write =
+ session->security_parameters.entity ==
+ GNUTLS_CLIENT ? session->key.proto.
+ tls13.hs_ckey : session->key.proto.tls13.hs_skey;
break;
case STAGE_APP:
case STAGE_UPD_OURS:
@@ -1188,15 +1240,15 @@ _gnutls_call_secret_func(gnutls_session_t session,
prf = session->security_parameters.prf;
level = GNUTLS_ENCRYPTION_LEVEL_APPLICATION;
if (for_read)
- secret_read = session->security_parameters.
- entity == GNUTLS_CLIENT ?
- session->key.proto.tls13.ap_skey :
- session->key.proto.tls13.ap_ckey;
+ secret_read =
+ session->security_parameters.entity ==
+ GNUTLS_CLIENT ? session->key.proto.
+ tls13.ap_skey : session->key.proto.tls13.ap_ckey;
if (for_write)
- secret_write = session->security_parameters.
- entity == GNUTLS_CLIENT ?
- session->key.proto.tls13.ap_ckey :
- session->key.proto.tls13.ap_skey;
+ secret_write =
+ session->security_parameters.entity ==
+ GNUTLS_CLIENT ? session->key.proto.
+ tls13.ap_ckey : session->key.proto.tls13.ap_skey;
break;
default:
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
@@ -1209,8 +1261,7 @@ _gnutls_call_secret_func(gnutls_session_t session,
int _tls13_connection_state_init(gnutls_session_t session, hs_stage_t stage)
{
- const uint16_t epoch_next =
- session->security_parameters.epoch_next;
+ const uint16_t epoch_next = session->security_parameters.epoch_next;
int ret;
ret = _gnutls_epoch_set_keys(session, epoch_next, stage);
@@ -1218,8 +1269,7 @@ int _tls13_connection_state_init(gnutls_session_t session, hs_stage_t stage)
return ret;
_gnutls_handshake_log("HSK[%p]: TLS 1.3 re-key with cipher suite: %s\n",
- session,
- session->security_parameters.cs->name);
+ session, session->security_parameters.cs->name);
session->security_parameters.epoch_read = epoch_next;
session->security_parameters.epoch_write = epoch_next;
@@ -1231,10 +1281,10 @@ int _tls13_connection_state_init(gnutls_session_t session, hs_stage_t stage)
return 0;
}
-int _tls13_read_connection_state_init(gnutls_session_t session, hs_stage_t stage)
+int _tls13_read_connection_state_init(gnutls_session_t session,
+ hs_stage_t stage)
{
- const uint16_t epoch_next =
- session->security_parameters.epoch_next;
+ const uint16_t epoch_next = session->security_parameters.epoch_next;
int ret;
if (unlikely(stage == STAGE_EARLY && !IS_SERVER(session))) {
@@ -1245,11 +1295,11 @@ int _tls13_read_connection_state_init(gnutls_session_t session, hs_stage_t stage
if (ret < 0)
return ret;
- _gnutls_handshake_log("HSK[%p]: TLS 1.3 set read key with cipher suite: %s\n",
- session,
- stage == STAGE_EARLY ?
- session->internals.resumed_security_parameters.cs->name :
- session->security_parameters.cs->name);
+ _gnutls_handshake_log
+ ("HSK[%p]: TLS 1.3 set read key with cipher suite: %s\n", session,
+ stage ==
+ STAGE_EARLY ? session->internals.resumed_security_parameters.
+ cs->name : session->security_parameters.cs->name);
session->security_parameters.epoch_read = epoch_next;
@@ -1260,10 +1310,10 @@ int _tls13_read_connection_state_init(gnutls_session_t session, hs_stage_t stage
return 0;
}
-int _tls13_write_connection_state_init(gnutls_session_t session, hs_stage_t stage)
+int _tls13_write_connection_state_init(gnutls_session_t session,
+ hs_stage_t stage)
{
- const uint16_t epoch_next =
- session->security_parameters.epoch_next;
+ const uint16_t epoch_next = session->security_parameters.epoch_next;
int ret;
if (unlikely(stage == STAGE_EARLY && IS_SERVER(session))) {
@@ -1274,11 +1324,11 @@ int _tls13_write_connection_state_init(gnutls_session_t session, hs_stage_t stag
if (ret < 0)
return ret;
- _gnutls_handshake_log("HSK[%p]: TLS 1.3 set write key with cipher suite: %s\n",
- session,
- stage == STAGE_EARLY ?
- session->internals.resumed_security_parameters.cs->name :
- session->security_parameters.cs->name);
+ _gnutls_handshake_log
+ ("HSK[%p]: TLS 1.3 set write key with cipher suite: %s\n", session,
+ stage ==
+ STAGE_EARLY ? session->internals.resumed_security_parameters.
+ cs->name : session->security_parameters.cs->name);
session->security_parameters.epoch_write = epoch_next;
@@ -1290,7 +1340,8 @@ int _tls13_write_connection_state_init(gnutls_session_t session, hs_stage_t stag
}
static int
-_tls13_init_record_state(gnutls_cipher_algorithm_t algo, record_state_st *state)
+_tls13_init_record_state(gnutls_cipher_algorithm_t algo,
+ record_state_st * state)
{
int ret;
gnutls_datum_t key;
diff --git a/lib/constate.h b/lib/constate.h
index bd5d8c0fc0..2b230c11bc 100644
--- a/lib/constate.h
+++ b/lib/constate.h
@@ -21,36 +21,38 @@
*/
#ifndef GNUTLS_LIB_CONSTATE_H
-#define GNUTLS_LIB_CONSTATE_H
+# define GNUTLS_LIB_CONSTATE_H
int _gnutls_set_cipher_suite2(gnutls_session_t session,
- const gnutls_cipher_suite_entry_st *cs);
+ const gnutls_cipher_suite_entry_st * cs);
-int _gnutls_epoch_set_keys(gnutls_session_t session, uint16_t epoch, hs_stage_t stage);
+int _gnutls_epoch_set_keys(gnutls_session_t session, uint16_t epoch,
+ hs_stage_t stage);
int _gnutls_connection_state_init(gnutls_session_t session);
int _gnutls_read_connection_state_init(gnutls_session_t session);
int _gnutls_write_connection_state_init(gnutls_session_t session);
-#define _gnutls_epoch_bump(session) \
+# define _gnutls_epoch_bump(session) \
(session)->security_parameters.epoch_next++
int _gnutls_epoch_dup(gnutls_session_t session, unsigned int epoch_rel);
int _gnutls_epoch_get(gnutls_session_t session, unsigned int epoch_rel,
record_parameters_st ** params_out);
-int _gnutls_epoch_setup_next(gnutls_session_t session, unsigned null_epoch, record_parameters_st **newp);
+int _gnutls_epoch_setup_next(gnutls_session_t session, unsigned null_epoch,
+ record_parameters_st ** newp);
void _gnutls_epoch_gc(gnutls_session_t session);
-void _gnutls_epoch_free(gnutls_session_t session,
- record_parameters_st * state);
+void _gnutls_epoch_free(gnutls_session_t session, record_parameters_st * state);
void _gnutls_set_resumed_parameters(gnutls_session_t session);
int _tls13_connection_state_init(gnutls_session_t session, hs_stage_t stage);
-int _tls13_read_connection_state_init(gnutls_session_t session, hs_stage_t stage);
-int _tls13_write_connection_state_init(gnutls_session_t session, hs_stage_t stage);
+int _tls13_read_connection_state_init(gnutls_session_t session,
+ hs_stage_t stage);
+int _tls13_write_connection_state_init(gnutls_session_t session,
+ hs_stage_t stage);
-static inline int _gnutls_epoch_is_valid(gnutls_session_t session,
- int epoch)
+static inline int _gnutls_epoch_is_valid(gnutls_session_t session, int epoch)
{
record_parameters_st *params;
int ret;
@@ -62,7 +64,6 @@ static inline int _gnutls_epoch_is_valid(gnutls_session_t session,
return 1;
}
-
static inline int _gnutls_epoch_refcount_inc(gnutls_session_t session,
int epoch)
{
@@ -95,4 +96,4 @@ static inline int _gnutls_epoch_refcount_dec(gnutls_session_t session,
return 0;
}
-#endif /* GNUTLS_LIB_CONSTATE_H */
+#endif /* GNUTLS_LIB_CONSTATE_H */
diff --git a/lib/crypto-api.c b/lib/crypto-api.c
index 9f7e18db11..9f7619bd68 100644
--- a/lib/crypto-api.c
+++ b/lib/crypto-api.c
@@ -62,7 +62,7 @@ gnutls_cipher_init(gnutls_cipher_hd_t * handle,
{
api_cipher_hd_st *h;
int ret;
- const cipher_entry_st* e;
+ const cipher_entry_st *e;
bool not_approved = false;
if (!is_cipher_algo_allowed(cipher)) {
@@ -85,9 +85,7 @@ gnutls_cipher_init(gnutls_cipher_hd_t * handle,
return GNUTLS_E_MEMORY_ERROR;
}
- ret =
- _gnutls_cipher_init(&h->ctx_enc, e, key,
- iv, 1);
+ ret = _gnutls_cipher_init(&h->ctx_enc, e, key, iv, 1);
if (ret < 0) {
gnutls_free(h);
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
@@ -95,8 +93,7 @@ gnutls_cipher_init(gnutls_cipher_hd_t * handle,
}
if (_gnutls_cipher_type(e) == CIPHER_BLOCK) {
- ret =
- _gnutls_cipher_init(&h->ctx_dec, e, key, iv, 0);
+ ret = _gnutls_cipher_init(&h->ctx_dec, e, key, iv, 0);
if (ret < 0) {
gnutls_free(h);
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
@@ -129,8 +126,7 @@ gnutls_cipher_init(gnutls_cipher_hd_t * handle,
*
* Since: 3.0
**/
-int
-gnutls_cipher_tag(gnutls_cipher_hd_t handle, void *tag, size_t tag_size)
+int gnutls_cipher_tag(gnutls_cipher_hd_t handle, void *tag, size_t tag_size)
{
api_cipher_hd_st *h = handle;
@@ -187,8 +183,7 @@ gnutls_cipher_add_auth(gnutls_cipher_hd_t handle, const void *ptext,
*
* Since: 3.0
**/
-void
-gnutls_cipher_set_iv(gnutls_cipher_hd_t handle, void *iv, size_t ivlen)
+void gnutls_cipher_set_iv(gnutls_cipher_hd_t handle, void *iv, size_t ivlen)
{
api_cipher_hd_st *h = handle;
@@ -225,8 +220,7 @@ gnutls_cipher_set_iv(gnutls_cipher_hd_t handle, void *iv, size_t ivlen)
*
* Since: 3.6.8
-*/
-int
-_gnutls_cipher_get_iv(gnutls_cipher_hd_t handle, void *iv, size_t ivlen)
+int _gnutls_cipher_get_iv(gnutls_cipher_hd_t handle, void *iv, size_t ivlen)
{
api_cipher_hd_st *h = handle;
@@ -250,8 +244,7 @@ _gnutls_cipher_get_iv(gnutls_cipher_hd_t handle, void *iv, size_t ivlen)
*
* Since: 3.6.14
-*/
-int
-_gnutls_cipher_set_key(gnutls_cipher_hd_t handle, void *key, size_t keylen)
+int _gnutls_cipher_set_key(gnutls_cipher_hd_t handle, void *key, size_t keylen)
{
api_cipher_hd_st *h = handle;
int ret;
@@ -278,8 +271,7 @@ _gnutls_cipher_set_key(gnutls_cipher_hd_t handle, void *key, size_t keylen)
* Since: 2.10.0
**/
int
-gnutls_cipher_encrypt(gnutls_cipher_hd_t handle, void *ptext,
- size_t ptext_len)
+gnutls_cipher_encrypt(gnutls_cipher_hd_t handle, void *ptext, size_t ptext_len)
{
api_cipher_hd_st *h = handle;
int ret;
@@ -310,18 +302,15 @@ gnutls_cipher_encrypt(gnutls_cipher_hd_t handle, void *ptext,
* Since: 2.10.0
**/
int
-gnutls_cipher_decrypt(gnutls_cipher_hd_t handle, void *ctext,
- size_t ctext_len)
+gnutls_cipher_decrypt(gnutls_cipher_hd_t handle, void *ctext, size_t ctext_len)
{
api_cipher_hd_st *h = handle;
int ret;
if (_gnutls_cipher_type(h->ctx_enc.e) != CIPHER_BLOCK) {
- ret = _gnutls_cipher_decrypt(&h->ctx_enc, ctext,
- ctext_len);
+ ret = _gnutls_cipher_decrypt(&h->ctx_enc, ctext, ctext_len);
} else {
- ret = _gnutls_cipher_decrypt(&h->ctx_dec, ctext,
- ctext_len);
+ ret = _gnutls_cipher_decrypt(&h->ctx_dec, ctext, ctext_len);
}
if (ret < 0) {
@@ -351,8 +340,7 @@ gnutls_cipher_decrypt(gnutls_cipher_hd_t handle, void *ctext,
**/
int
gnutls_cipher_encrypt2(gnutls_cipher_hd_t handle, const void *ptext,
- size_t ptext_len, void *ctext,
- size_t ctext_len)
+ size_t ptext_len, void *ctext, size_t ctext_len)
{
api_cipher_hd_st *h = handle;
int ret;
@@ -396,12 +384,10 @@ gnutls_cipher_decrypt2(gnutls_cipher_hd_t handle, const void *ctext,
if (_gnutls_cipher_type(h->ctx_enc.e) != CIPHER_BLOCK) {
ret = _gnutls_cipher_decrypt2(&h->ctx_enc, ctext,
- ctext_len, ptext,
- ptext_len);
+ ctext_len, ptext, ptext_len);
} else {
ret = _gnutls_cipher_decrypt2(&h->ctx_dec, ctext,
- ctext_len, ptext,
- ptext_len);
+ ctext_len, ptext, ptext_len);
}
if (ret < 0) {
@@ -440,8 +426,7 @@ gnutls_cipher_decrypt2(gnutls_cipher_hd_t handle, const void *ctext,
int
gnutls_cipher_encrypt3(gnutls_cipher_hd_t handle,
const void *ptext, size_t ptext_len,
- void *ctext, size_t *ctext_len,
- unsigned flags)
+ void *ctext, size_t *ctext_len, unsigned flags)
{
api_cipher_hd_st *h = handle;
const cipher_entry_st *e = h->ctx_enc.e;
@@ -540,15 +525,13 @@ gnutls_cipher_encrypt3(gnutls_cipher_hd_t handle,
int
gnutls_cipher_decrypt3(gnutls_cipher_hd_t handle,
const void *ctext, size_t ctext_len,
- void *ptext, size_t *ptext_len,
- unsigned flags)
+ void *ptext, size_t *ptext_len, unsigned flags)
{
api_cipher_hd_st *h = handle;
int ret;
ret = gnutls_cipher_decrypt2(handle,
- ctext, ctext_len,
- ptext, *ptext_len);
+ ctext, ctext_len, ptext, *ptext_len);
if (ret < 0) {
return ret;
}
@@ -557,13 +540,16 @@ gnutls_cipher_decrypt3(gnutls_cipher_hd_t handle,
(flags & GNUTLS_CIPHER_PADDING_PKCS7)) {
uint8_t *p = ptext;
uint8_t padding = p[*ptext_len - 1];
- if (!padding || padding > _gnutls_cipher_get_block_size(h->ctx_enc.e)) {
+ if (!padding
+ || padding > _gnutls_cipher_get_block_size(h->ctx_enc.e)) {
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
}
/* Check that the prior bytes are all PADDING */
for (size_t i = *ptext_len - padding; i < *ptext_len; i++) {
if (padding != p[*ptext_len - 1]) {
- return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_DECRYPTION_FAILED);
}
}
*ptext_len -= padding;
@@ -591,10 +577,8 @@ void gnutls_cipher_deinit(gnutls_cipher_hd_t handle)
gnutls_free(handle);
}
-
/* HMAC */
-
/**
* gnutls_hmac_init:
* @dig: is a #gnutls_hmac_hd_t type
@@ -836,7 +820,8 @@ gnutls_hmac_hd_t gnutls_hmac_copy(gnutls_hmac_hd_t handle)
return NULL;
}
- if (_gnutls_mac_copy((const mac_hd_st *) handle, (mac_hd_st *)dig) != GNUTLS_E_SUCCESS) {
+ if (_gnutls_mac_copy((const mac_hd_st *)handle, (mac_hd_st *) dig) !=
+ GNUTLS_E_SUCCESS) {
gnutls_assert();
gnutls_free(dig);
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
@@ -863,8 +848,7 @@ gnutls_hmac_hd_t gnutls_hmac_copy(gnutls_hmac_hd_t handle)
* Since: 2.10.0
**/
int
-gnutls_hash_init(gnutls_hash_hd_t * dig,
- gnutls_digest_algorithm_t algorithm)
+gnutls_hash_init(gnutls_hash_hd_t * dig, gnutls_digest_algorithm_t algorithm)
{
int ret;
bool not_approved = false;
@@ -1000,7 +984,7 @@ gnutls_hash_fast(gnutls_digest_algorithm_t algorithm,
} else if (not_approved) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_NOT_APPROVED);
}
-
+
return ret;
}
@@ -1030,7 +1014,9 @@ gnutls_hash_hd_t gnutls_hash_copy(gnutls_hash_hd_t handle)
return NULL;
}
- if (_gnutls_hash_copy((const digest_hd_st *) handle, (digest_hd_st *)dig) != GNUTLS_E_SUCCESS) {
+ if (_gnutls_hash_copy
+ ((const digest_hd_st *)handle,
+ (digest_hd_st *) dig) != GNUTLS_E_SUCCESS) {
gnutls_assert();
gnutls_free(dig);
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
@@ -1064,8 +1050,7 @@ int gnutls_key_generate(gnutls_datum_t * key, unsigned int key_size)
/* The FIPS140 approved RNGs are not allowed to be used
* to extract key sizes longer than their original seed.
*/
- if (_gnutls_fips_mode_enabled() != 0 &&
- key_size > FIPS140_RND_KEY_SIZE)
+ if (_gnutls_fips_mode_enabled() != 0 && key_size > FIPS140_RND_KEY_SIZE)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
#endif
@@ -1117,9 +1102,9 @@ int gnutls_key_generate(gnutls_datum_t * key, unsigned int key_size)
*
* Since: 3.4.0
**/
-int gnutls_aead_cipher_init(gnutls_aead_cipher_hd_t *handle,
+int gnutls_aead_cipher_init(gnutls_aead_cipher_hd_t * handle,
gnutls_cipher_algorithm_t cipher,
- const gnutls_datum_t *key)
+ const gnutls_datum_t * key)
{
api_aead_cipher_hd_st *h;
const cipher_entry_st *e;
@@ -1177,9 +1162,9 @@ int gnutls_aead_cipher_init(gnutls_aead_cipher_hd_t *handle,
* Since: 3.7.5
**/
int gnutls_aead_cipher_set_key(gnutls_aead_cipher_hd_t handle,
- const gnutls_datum_t *key)
+ const gnutls_datum_t * key)
{
- const cipher_entry_st* e;
+ const cipher_entry_st *e;
int ret;
e = cipher_to_entry(handle->ctx_enc.e->id);
@@ -1247,8 +1232,7 @@ gnutls_aead_cipher_decrypt(gnutls_aead_cipher_hd_t handle,
nonce, nonce_len,
auth, auth_len,
tag_size,
- ctext, ctext_len,
- ptext, *ptext_len);
+ ctext, ctext_len, ptext, *ptext_len);
if (unlikely(ret < 0)) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
return gnutls_assert_val(ret);
@@ -1262,7 +1246,6 @@ gnutls_aead_cipher_decrypt(gnutls_aead_cipher_hd_t handle,
return 0;
}
-
/**
* gnutls_aead_cipher_encrypt:
* @handle: is a #gnutls_aead_cipher_hd_t type.
@@ -1311,8 +1294,7 @@ gnutls_aead_cipher_encrypt(gnutls_aead_cipher_hd_t handle,
nonce, nonce_len,
auth, auth_len,
tag_size,
- ptext, ptext_len,
- ctext, *ctext_len);
+ ptext, ptext_len, ctext, *ctext_len);
if (unlikely(ret < 0)) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
return gnutls_assert_val(ret);
@@ -1356,7 +1338,7 @@ static int iov_store_grow(struct iov_store_st *s, size_t length)
}
static int
-append_from_iov(struct iov_store_st *dst, const giovec_t *iov, int iovcnt)
+append_from_iov(struct iov_store_st *dst, const giovec_t * iov, int iovcnt)
{
if (iovcnt > 0) {
int i;
@@ -1366,7 +1348,8 @@ append_from_iov(struct iov_store_st *dst, const giovec_t *iov, int iovcnt)
for (i = 0; i < iovcnt; i++) {
if (INT_ADD_OVERFLOW(new_capacity, iov[i].iov_len)) {
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
new_capacity += iov[i].iov_len;
}
@@ -1390,8 +1373,7 @@ append_from_iov(struct iov_store_st *dst, const giovec_t *iov, int iovcnt)
}
static int
-copy_to_iov(const uint8_t *data, size_t size,
- const giovec_t *iov, int iovcnt)
+copy_to_iov(const uint8_t * data, size_t size, const giovec_t * iov, int iovcnt)
{
size_t offset = 0;
int i;
@@ -1412,9 +1394,9 @@ copy_to_iov(const uint8_t *data, size_t size,
static int
aead_cipher_encryptv_fallback(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
size_t tag_size,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * iov, int iovcnt,
void *ctext, size_t *ctext_len)
{
struct iov_store_st auth = IOV_STORE_INIT;
@@ -1423,7 +1405,8 @@ aead_cipher_encryptv_fallback(gnutls_aead_cipher_hd_t handle,
if (tag_size == 0)
tag_size = _gnutls_cipher_get_tag_size(handle->ctx_enc.e);
- else if (tag_size > (unsigned)_gnutls_cipher_get_tag_size(handle->ctx_enc.e)) {
+ else if (tag_size >
+ (unsigned)_gnutls_cipher_get_tag_size(handle->ctx_enc.e)) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -1456,9 +1439,9 @@ aead_cipher_encryptv_fallback(gnutls_aead_cipher_hd_t handle,
static int
aead_cipher_encryptv(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
size_t tag_size,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * iov, int iovcnt,
void *ctext, size_t *ctext_len)
{
int ret;
@@ -1471,7 +1454,8 @@ aead_cipher_encryptv(gnutls_aead_cipher_hd_t handle,
if (tag_size == 0)
tag_size = _gnutls_cipher_get_tag_size(handle->ctx_enc.e);
- else if (tag_size > (unsigned)_gnutls_cipher_get_tag_size(handle->ctx_enc.e)) {
+ else if (tag_size >
+ (unsigned)_gnutls_cipher_get_tag_size(handle->ctx_enc.e)) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -1520,8 +1504,7 @@ aead_cipher_encryptv(gnutls_aead_cipher_hd_t handle,
break;
len = ret;
ret = _gnutls_cipher_encrypt2(&handle->ctx_enc,
- p, len,
- dst, dst_size);
+ p, len, dst, dst_size);
if (unlikely(ret < 0)) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
return gnutls_assert_val(ret);
@@ -1570,9 +1553,9 @@ aead_cipher_encryptv(gnutls_aead_cipher_hd_t handle,
int
gnutls_aead_cipher_encryptv(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
size_t tag_size,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * iov, int iovcnt,
void *ctext, size_t *ctext_len)
{
/* Limitation: this function provides an optimization under the internally registered
@@ -1592,16 +1575,15 @@ gnutls_aead_cipher_encryptv(gnutls_aead_cipher_hd_t handle,
nonce, nonce_len,
auth_iov, auth_iovcnt,
tag_size,
- iov, iovcnt,
- ctext, ctext_len);
+ iov, iovcnt, ctext, ctext_len);
}
}
static int
aead_cipher_encryptv2_fallback(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
+ const giovec_t * iov, int iovcnt,
void *tag, size_t *tag_size)
{
struct iov_store_st auth = IOV_STORE_INIT;
@@ -1619,7 +1601,8 @@ aead_cipher_encryptv2_fallback(gnutls_aead_cipher_hd_t handle,
else
_tag_size = *tag_size;
- if (_tag_size > (unsigned)_gnutls_cipher_get_tag_size(handle->ctx_enc.e)) {
+ if (_tag_size >
+ (unsigned)_gnutls_cipher_get_tag_size(handle->ctx_enc.e)) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -1683,11 +1666,11 @@ aead_cipher_encryptv2_fallback(gnutls_aead_cipher_hd_t handle,
}
if (handle->ctx_enc.e->flags & GNUTLS_CIPHER_FLAG_TAG_PREFIXED) {
- ctext_data = (uint8_t *)ptext.data + _tag_size;
+ ctext_data = (uint8_t *) ptext.data + _tag_size;
_tag = ptext.data;
} else {
ctext_data = ptext.data;
- _tag = (uint8_t *)ptext.data + ptext_size;
+ _tag = (uint8_t *) ptext.data + ptext_size;
}
ret = copy_to_iov(ctext_data, ptext_size, iov, iovcnt);
@@ -1717,8 +1700,8 @@ aead_cipher_encryptv2_fallback(gnutls_aead_cipher_hd_t handle,
static int
aead_cipher_encryptv2(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
+ const giovec_t * iov, int iovcnt,
void *tag, size_t *tag_size)
{
api_aead_cipher_hd_st *h = handle;
@@ -1822,8 +1805,8 @@ aead_cipher_encryptv2(gnutls_aead_cipher_hd_t handle,
int
gnutls_aead_cipher_encryptv2(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
+ const giovec_t * iov, int iovcnt,
void *tag, size_t *tag_size)
{
/* Limitation: this function provides an optimization under the internally registered
@@ -1841,16 +1824,15 @@ gnutls_aead_cipher_encryptv2(gnutls_aead_cipher_hd_t handle,
return aead_cipher_encryptv2(handle,
nonce, nonce_len,
auth_iov, auth_iovcnt,
- iov, iovcnt,
- tag, tag_size);
+ iov, iovcnt, tag, tag_size);
}
}
static int
aead_cipher_decryptv2_fallback(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
+ const giovec_t * iov, int iovcnt,
void *tag, size_t tag_size)
{
struct iov_store_st auth = IOV_STORE_INIT;
@@ -1861,7 +1843,8 @@ aead_cipher_decryptv2_fallback(gnutls_aead_cipher_hd_t handle,
if (tag_size == 0)
tag_size = _gnutls_cipher_get_tag_size(handle->ctx_enc.e);
- else if (tag_size > (unsigned)_gnutls_cipher_get_tag_size(handle->ctx_enc.e)) {
+ else if (tag_size >
+ (unsigned)_gnutls_cipher_get_tag_size(handle->ctx_enc.e)) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -1945,8 +1928,8 @@ aead_cipher_decryptv2_fallback(gnutls_aead_cipher_hd_t handle,
static int
aead_cipher_decryptv2(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
+ const giovec_t * iov, int iovcnt,
void *tag, size_t tag_size)
{
int ret;
@@ -1958,7 +1941,8 @@ aead_cipher_decryptv2(gnutls_aead_cipher_hd_t handle,
if (tag_size == 0)
tag_size = _gnutls_cipher_get_tag_size(handle->ctx_enc.e);
- else if (tag_size > (unsigned)_gnutls_cipher_get_tag_size(handle->ctx_enc.e)) {
+ else if (tag_size >
+ (unsigned)_gnutls_cipher_get_tag_size(handle->ctx_enc.e)) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -2051,8 +2035,8 @@ aead_cipher_decryptv2(gnutls_aead_cipher_hd_t handle,
int
gnutls_aead_cipher_decryptv2(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
+ const giovec_t * iov, int iovcnt,
void *tag, size_t tag_size)
{
/* Limitation: this function provides an optimization under the internally registered
@@ -2070,8 +2054,7 @@ gnutls_aead_cipher_decryptv2(gnutls_aead_cipher_hd_t handle,
return aead_cipher_decryptv2(handle,
nonce, nonce_len,
auth_iov, auth_iovcnt,
- iov, iovcnt,
- tag, tag_size);
+ iov, iovcnt, tag, tag_size);
}
}
@@ -2095,9 +2078,8 @@ extern gnutls_crypto_kdf_st _gnutls_kdf_ops;
/* Same as @gnutls_hkdf_extract but without changing FIPS context */
int
_gnutls_hkdf_extract(gnutls_mac_algorithm_t mac,
- const gnutls_datum_t *key,
- const gnutls_datum_t *salt,
- void *output)
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * salt, void *output)
{
/* MD5 is only allowed internally for TLS */
if (!is_mac_algo_allowed(mac)) {
@@ -2110,8 +2092,7 @@ _gnutls_hkdf_extract(gnutls_mac_algorithm_t mac,
return _gnutls_kdf_ops.hkdf_extract(mac, key->data, key->size,
salt ? salt->data : NULL,
- salt ? salt->size : 0,
- output);
+ salt ? salt->size : 0, output);
}
/**
@@ -2130,9 +2111,8 @@ _gnutls_hkdf_extract(gnutls_mac_algorithm_t mac,
*/
int
gnutls_hkdf_extract(gnutls_mac_algorithm_t mac,
- const gnutls_datum_t *key,
- const gnutls_datum_t *salt,
- void *output)
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * salt, void *output)
{
int ret;
@@ -2148,9 +2128,8 @@ gnutls_hkdf_extract(gnutls_mac_algorithm_t mac,
/* Same as @gnutls_hkdf_expand but without changing FIPS context */
int
_gnutls_hkdf_expand(gnutls_mac_algorithm_t mac,
- const gnutls_datum_t *key,
- const gnutls_datum_t *info,
- void *output, size_t length)
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * info, void *output, size_t length)
{
/* MD5 is only allowed internally for TLS */
if (!is_mac_algo_allowed(mac)) {
@@ -2162,8 +2141,8 @@ _gnutls_hkdf_expand(gnutls_mac_algorithm_t mac,
* only approved in TLS, which is handled separately. */
return _gnutls_kdf_ops.hkdf_expand(mac, key->data, key->size,
- info->data, info->size,
- output, length);
+ info->data, info->size,
+ output, length);
}
/**
@@ -2184,9 +2163,8 @@ _gnutls_hkdf_expand(gnutls_mac_algorithm_t mac,
*/
int
gnutls_hkdf_expand(gnutls_mac_algorithm_t mac,
- const gnutls_datum_t *key,
- const gnutls_datum_t *info,
- void *output, size_t length)
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * info, void *output, size_t length)
{
int ret;
@@ -2217,10 +2195,9 @@ gnutls_hkdf_expand(gnutls_mac_algorithm_t mac,
*/
int
gnutls_pbkdf2(gnutls_mac_algorithm_t mac,
- const gnutls_datum_t *key,
- const gnutls_datum_t *salt,
- unsigned iter_count,
- void *output, size_t length)
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * salt,
+ unsigned iter_count, void *output, size_t length)
{
int ret;
bool not_approved = false;
diff --git a/lib/crypto-api.h b/lib/crypto-api.h
index 9ed7600813..d796ef36cc 100644
--- a/lib/crypto-api.h
+++ b/lib/crypto-api.h
@@ -22,24 +22,22 @@
*/
#ifndef GNUTLS_LIB_CRYPTO_API_H
-#define GNUTLS_LIB_CRYPTO_API_H
+# define GNUTLS_LIB_CRYPTO_API_H
-#include <gnutls_int.h>
+# include <gnutls_int.h>
inline static
int _gnutls_aead_cipher_init(gnutls_aead_cipher_hd_t handle,
gnutls_cipher_algorithm_t cipher,
const gnutls_datum_t * key)
{
- const cipher_entry_st* e;
+ const cipher_entry_st *e;
e = cipher_to_entry(cipher);
if (e == NULL || e->type != CIPHER_AEAD)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- return
- _gnutls_cipher_init(&handle->ctx_enc, e, key,
- NULL, 1);
+ return _gnutls_cipher_init(&handle->ctx_enc, e, key, NULL, 1);
}
inline static
@@ -52,14 +50,12 @@ void _gnutls_aead_cipher_deinit(gnutls_aead_cipher_hd_t handle)
int
_gnutls_hkdf_extract(gnutls_mac_algorithm_t mac,
- const gnutls_datum_t *key,
- const gnutls_datum_t *salt,
- void *output);
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * salt, void *output);
int
_gnutls_hkdf_expand(gnutls_mac_algorithm_t mac,
- const gnutls_datum_t *key,
- const gnutls_datum_t *info,
- void *output, size_t length);
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * info, void *output, size_t length);
-#endif /* GNUTLS_LIB_CRYPTO_API_H */
+#endif /* GNUTLS_LIB_CRYPTO_API_H */
diff --git a/lib/crypto-backend.c b/lib/crypto-backend.c
index 54295203a7..52772f7363 100644
--- a/lib/crypto-backend.c
+++ b/lib/crypto-backend.c
@@ -98,7 +98,8 @@ _algo_register(algo_list * al, int algorithm, int priority, void *s, int free_s)
return 0;
cleanup:
- if (free_s) gnutls_free(s);
+ if (free_s)
+ gnutls_free(s);
return ret;
}
@@ -178,11 +179,11 @@ gnutls_crypto_single_cipher_register(gnutls_cipher_algorithm_t algorithm,
int free_s)
{
/* we override const in case free_s is set */
- return _algo_register(&glob_cl, algorithm, priority, (void*)s, free_s);
+ return _algo_register(&glob_cl, algorithm, priority, (void *)s, free_s);
}
const gnutls_crypto_cipher_st
- *_gnutls_get_crypto_cipher(gnutls_cipher_algorithm_t algo)
+ * _gnutls_get_crypto_cipher(gnutls_cipher_algorithm_t algo)
{
return _get_algo(&glob_cl, algo);
}
@@ -227,7 +228,8 @@ gnutls_crypto_register_cipher(gnutls_cipher_algorithm_t algorithm,
gnutls_cipher_decrypt_func decrypt,
gnutls_cipher_deinit_func deinit)
{
- _gnutls_debug_log("called the deprecated gnutls_crypto_register_cipher()\n");
+ _gnutls_debug_log
+ ("called the deprecated gnutls_crypto_register_cipher()\n");
return 0;
}
@@ -241,7 +243,8 @@ _gnutls_crypto_register_cipher(gnutls_cipher_algorithm_t algorithm,
gnutls_cipher_decrypt_func decrypt,
gnutls_cipher_deinit_func deinit)
{
- gnutls_crypto_cipher_st *s = gnutls_calloc(1, sizeof(gnutls_crypto_cipher_st));
+ gnutls_crypto_cipher_st *s =
+ gnutls_calloc(1, sizeof(gnutls_crypto_cipher_st));
if (s == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -285,14 +288,15 @@ _gnutls_crypto_register_cipher(gnutls_cipher_algorithm_t algorithm,
**/
int
gnutls_crypto_register_aead_cipher(gnutls_cipher_algorithm_t algorithm,
- int priority,
- gnutls_cipher_init_func init,
- gnutls_cipher_setkey_func setkey,
- gnutls_cipher_aead_encrypt_func aead_encrypt,
- gnutls_cipher_aead_decrypt_func aead_decrypt,
- gnutls_cipher_deinit_func deinit)
+ int priority,
+ gnutls_cipher_init_func init,
+ gnutls_cipher_setkey_func setkey,
+ gnutls_cipher_aead_encrypt_func aead_encrypt,
+ gnutls_cipher_aead_decrypt_func aead_decrypt,
+ gnutls_cipher_deinit_func deinit)
{
- _gnutls_debug_log("called the deprecated gnutls_crypto_register_aead_cipher()\n");
+ _gnutls_debug_log
+ ("called the deprecated gnutls_crypto_register_aead_cipher()\n");
return 0;
}
@@ -316,8 +320,7 @@ gnutls_crypto_register_aead_cipher(gnutls_cipher_algorithm_t algorithm,
*
* Since: 2.6.0
-*/
-int
-gnutls_crypto_rnd_register(int priority, const gnutls_crypto_rnd_st * s)
+int gnutls_crypto_rnd_register(int priority, const gnutls_crypto_rnd_st * s)
{
if (crypto_rnd_prio >= priority) {
memcpy(&_gnutls_rnd_ops, s, sizeof(*s));
@@ -352,14 +355,12 @@ gnutls_crypto_rnd_register(int priority, const gnutls_crypto_rnd_st * s)
int
gnutls_crypto_single_mac_register(gnutls_mac_algorithm_t algorithm,
int priority,
- const gnutls_crypto_mac_st * s,
- int free_s)
+ const gnutls_crypto_mac_st * s, int free_s)
{
- return _algo_register(&glob_ml, algorithm, priority, (void*)s, free_s);
+ return _algo_register(&glob_ml, algorithm, priority, (void *)s, free_s);
}
-const gnutls_crypto_mac_st *_gnutls_get_crypto_mac(gnutls_mac_algorithm_t
- algo)
+const gnutls_crypto_mac_st *_gnutls_get_crypto_mac(gnutls_mac_algorithm_t algo)
{
return _get_algo(&glob_ml, algo);
}
@@ -391,11 +392,11 @@ gnutls_crypto_single_digest_register(gnutls_digest_algorithm_t algorithm,
const gnutls_crypto_digest_st * s,
int free_s)
{
- return _algo_register(&glob_dl, algorithm, priority, (void*)s, free_s);
+ return _algo_register(&glob_dl, algorithm, priority, (void *)s, free_s);
}
const gnutls_crypto_digest_st
- *_gnutls_get_crypto_digest(gnutls_digest_algorithm_t algo)
+ * _gnutls_get_crypto_digest(gnutls_digest_algorithm_t algo)
{
return _get_algo(&glob_dl, algo);
}
@@ -435,7 +436,8 @@ gnutls_crypto_register_mac(gnutls_mac_algorithm_t algorithm,
gnutls_mac_deinit_func deinit,
gnutls_mac_fast_func hash_fast)
{
- _gnutls_debug_log("called the deprecated gnutls_crypto_register_mac()\n");
+ _gnutls_debug_log
+ ("called the deprecated gnutls_crypto_register_mac()\n");
return 0;
}
@@ -463,13 +465,14 @@ gnutls_crypto_register_mac(gnutls_mac_algorithm_t algorithm,
**/
int
gnutls_crypto_register_digest(gnutls_digest_algorithm_t algorithm,
- int priority,
- gnutls_digest_init_func init,
- gnutls_digest_hash_func hash,
- gnutls_digest_output_func output,
- gnutls_digest_deinit_func deinit,
- gnutls_digest_fast_func hash_fast)
+ int priority,
+ gnutls_digest_init_func init,
+ gnutls_digest_hash_func hash,
+ gnutls_digest_output_func output,
+ gnutls_digest_deinit_func deinit,
+ gnutls_digest_fast_func hash_fast)
{
- _gnutls_debug_log("called the deprecated gnutls_crypto_register_digest()\n");
+ _gnutls_debug_log
+ ("called the deprecated gnutls_crypto_register_digest()\n");
return 0;
}
diff --git a/lib/crypto-backend.h b/lib/crypto-backend.h
index 4dd1ae26ed..03c5ca5433 100644
--- a/lib/crypto-backend.h
+++ b/lib/crypto-backend.h
@@ -21,13 +21,13 @@
*/
#ifndef GNUTLS_LIB_CRYPTO_BACKEND_H
-#define GNUTLS_LIB_CRYPTO_BACKEND_H
+# define GNUTLS_LIB_CRYPTO_BACKEND_H
-#include <gnutls/crypto.h>
+# include <gnutls/crypto.h>
-#define gnutls_crypto_single_cipher_st gnutls_crypto_cipher_st
-#define gnutls_crypto_single_mac_st gnutls_crypto_mac_st
-#define gnutls_crypto_single_digest_st gnutls_crypto_digest_st
+# define gnutls_crypto_single_cipher_st gnutls_crypto_cipher_st
+# define gnutls_crypto_single_mac_st gnutls_crypto_mac_st
+# define gnutls_crypto_single_digest_st gnutls_crypto_digest_st
typedef struct {
gnutls_cipher_init_func init;
@@ -44,7 +44,7 @@ typedef struct {
/* Not needed for registered on run-time. Only included
* should define it. */
- int (*exists) (gnutls_cipher_algorithm_t); /* true/false */
+ int (*exists)(gnutls_cipher_algorithm_t); /* true/false */
} gnutls_crypto_cipher_st;
typedef struct {
@@ -59,7 +59,7 @@ typedef struct {
/* Not needed for registered on run-time. Only included
* should define it. */
- int (*exists) (gnutls_mac_algorithm_t);
+ int (*exists)(gnutls_mac_algorithm_t);
} gnutls_crypto_mac_st;
typedef struct {
@@ -72,31 +72,29 @@ typedef struct {
/* Not needed for registered on run-time. Only included
* should define it. */
- int (*exists) (gnutls_digest_algorithm_t);
+ int (*exists)(gnutls_digest_algorithm_t);
} gnutls_crypto_digest_st;
typedef struct {
- int (*hkdf_extract) (gnutls_mac_algorithm_t,
- const void *key, size_t keysize,
- const void *salt, size_t saltsize,
- void *output);
- int (*hkdf_expand) (gnutls_mac_algorithm_t,
+ int (*hkdf_extract)(gnutls_mac_algorithm_t,
const void *key, size_t keysize,
- const void *info, size_t infosize,
- void *output, size_t length);
- int (*pbkdf2) (gnutls_mac_algorithm_t,
- const void *key, size_t keysize,
- const void *salt, size_t saltsize,
- unsigned iter_count,
- void *output, size_t length);
+ const void *salt, size_t saltsize, void *output);
+ int (*hkdf_expand)(gnutls_mac_algorithm_t,
+ const void *key, size_t keysize,
+ const void *info, size_t infosize,
+ void *output, size_t length);
+ int (*pbkdf2)(gnutls_mac_algorithm_t,
+ const void *key, size_t keysize,
+ const void *salt, size_t saltsize,
+ unsigned iter_count, void *output, size_t length);
} gnutls_crypto_kdf_st;
typedef struct gnutls_crypto_rnd {
- int (*init) (void **ctx); /* called prior to first usage of randomness */
- int (*rnd) (void *ctx, int level, void *data, size_t datasize);
- void (*rnd_refresh) (void *ctx);
- void (*deinit) (void *ctx);
- int (*self_test) (void); /* this should not require rng initialization */
+ int (*init)(void **ctx); /* called prior to first usage of randomness */
+ int (*rnd)(void *ctx, int level, void *data, size_t datasize);
+ void (*rnd_refresh)(void *ctx);
+ void (*deinit)(void *ctx);
+ int (*self_test)(void); /* this should not require rng initialization */
} gnutls_crypto_rnd_st;
typedef void *bigint_t;
@@ -120,68 +118,60 @@ typedef enum {
/* Multi precision integer arithmetic */
typedef struct gnutls_crypto_bigint {
- int (*bigint_init) (bigint_t*);
- int (*bigint_init_multi) (bigint_t*, ...);
- void (*bigint_release) (bigint_t n);
- void (*bigint_clear) (bigint_t n); /* zeros the int */
+ int (*bigint_init)(bigint_t *);
+ int (*bigint_init_multi)(bigint_t *, ...);
+ void (*bigint_release)(bigint_t n);
+ void (*bigint_clear)(bigint_t n); /* zeros the int */
/* 0 for equality, > 0 for m1>m2, < 0 for m1<m2 */
- int (*bigint_cmp) (const bigint_t m1, const bigint_t m2);
+ int (*bigint_cmp)(const bigint_t m1, const bigint_t m2);
/* as bigint_cmp */
- int (*bigint_cmp_ui) (const bigint_t m1, unsigned long m2);
+ int (*bigint_cmp_ui)(const bigint_t m1, unsigned long m2);
/* r = a % b */
- int (*bigint_modm) (bigint_t r, const bigint_t a, const bigint_t b);
+ int (*bigint_modm)(bigint_t r, const bigint_t a, const bigint_t b);
/* a = b -> ret == a */
- int (*bigint_set) (bigint_t a, const bigint_t b);
- bigint_t (*bigint_copy) (const bigint_t a);
+ int (*bigint_set)(bigint_t a, const bigint_t b);
+ bigint_t(*bigint_copy) (const bigint_t a);
/* a = b -> ret == a */
- int (*bigint_set_ui) (bigint_t a, unsigned long b);
- unsigned int (*bigint_get_nbits) (const bigint_t a);
+ int (*bigint_set_ui)(bigint_t a, unsigned long b);
+ unsigned int (*bigint_get_nbits)(const bigint_t a);
/* w = b ^ e mod m */
- int (*bigint_powm) (bigint_t w, const bigint_t b,
- const bigint_t e, const bigint_t m);
+ int (*bigint_powm)(bigint_t w, const bigint_t b,
+ const bigint_t e, const bigint_t m);
/* w = a + b mod m */
- int (*bigint_addm) (bigint_t w, const bigint_t a,
- const bigint_t b, const bigint_t m);
+ int (*bigint_addm)(bigint_t w, const bigint_t a,
+ const bigint_t b, const bigint_t m);
/* w = a - b mod m */
- int (*bigint_subm) (bigint_t w, const bigint_t a,
- const bigint_t b, const bigint_t m);
+ int (*bigint_subm)(bigint_t w, const bigint_t a,
+ const bigint_t b, const bigint_t m);
/* w = a * b mod m */
- int (*bigint_mulm) (bigint_t w, const bigint_t a,
- const bigint_t b, const bigint_t m);
- /* w = a + b */ int (*bigint_add) (bigint_t w,
- const bigint_t a,
- const bigint_t b);
- /* w = a - b */ int (*bigint_sub) (bigint_t w,
- const bigint_t a,
- const bigint_t b);
+ int (*bigint_mulm)(bigint_t w, const bigint_t a,
+ const bigint_t b, const bigint_t m);
+ /* w = a + b */ int (*bigint_add)(bigint_t w,
+ const bigint_t a, const bigint_t b);
+ /* w = a - b */ int (*bigint_sub)(bigint_t w,
+ const bigint_t a, const bigint_t b);
/* w = a * b */
- int (*bigint_mul) (bigint_t w, const bigint_t a,
- const bigint_t b);
+ int (*bigint_mul)(bigint_t w, const bigint_t a, const bigint_t b);
/* w = a + b */
- int (*bigint_add_ui) (bigint_t w, const bigint_t a,
- unsigned long b);
+ int (*bigint_add_ui)(bigint_t w, const bigint_t a, unsigned long b);
/* w = a - b */
- int (*bigint_sub_ui) (bigint_t w, const bigint_t a,
- unsigned long b);
+ int (*bigint_sub_ui)(bigint_t w, const bigint_t a, unsigned long b);
/* w = a * b */
- int (*bigint_mul_ui) (bigint_t w, const bigint_t a,
- unsigned long b);
+ int (*bigint_mul_ui)(bigint_t w, const bigint_t a, unsigned long b);
/* q = a / b */
- int (*bigint_div) (bigint_t q, const bigint_t a,
- const bigint_t b);
+ int (*bigint_div)(bigint_t q, const bigint_t a, const bigint_t b);
/* 0 if prime */
- int (*bigint_prime_check) (const bigint_t pp);
+ int (*bigint_prime_check)(const bigint_t pp);
/* reads a bigint from a buffer */
/* stores a bigint into the buffer. returns
* GNUTLS_E_SHORT_MEMORY_BUFFER if buf_size is not sufficient to
* store this integer, and updates the buf_size;
*/
- int (*bigint_scan) (bigint_t m, const void *buf, size_t buf_size,
- gnutls_bigint_format_t format);
- int (*bigint_print) (const bigint_t a, void *buf,
- size_t * buf_size,
- gnutls_bigint_format_t format);
+ int (*bigint_scan)(bigint_t m, const void *buf, size_t buf_size,
+ gnutls_bigint_format_t format);
+ int (*bigint_print)(const bigint_t a, void *buf,
+ size_t *buf_size, gnutls_bigint_format_t format);
} gnutls_crypto_bigint_st;
/* Additional information about the public key, filled from
@@ -212,17 +202,17 @@ typedef struct gnutls_x509_spki_st {
unsigned int flags;
} gnutls_x509_spki_st;
-#define GNUTLS_MAX_PK_PARAMS 16
+# define GNUTLS_MAX_PK_PARAMS 16
typedef struct {
bigint_t params[GNUTLS_MAX_PK_PARAMS];
unsigned int params_nr; /* the number of parameters */
- unsigned int pkflags; /* gnutls_pk_flag_t */
- unsigned int qbits; /* GNUTLS_PK_DH */
- gnutls_ecc_curve_t curve; /* GNUTLS_PK_EC, GNUTLS_PK_ED25519, GNUTLS_PK_GOST* */
- gnutls_group_t dh_group; /* GNUTLS_PK_DH - used by ext/key_share */
- gnutls_gost_paramset_t gost_params; /* GNUTLS_PK_GOST_* */
- gnutls_datum_t raw_pub; /* used by x25519 */
+ unsigned int pkflags; /* gnutls_pk_flag_t */
+ unsigned int qbits; /* GNUTLS_PK_DH */
+ gnutls_ecc_curve_t curve; /* GNUTLS_PK_EC, GNUTLS_PK_ED25519, GNUTLS_PK_GOST* */
+ gnutls_group_t dh_group; /* GNUTLS_PK_DH - used by ext/key_share */
+ gnutls_gost_paramset_t gost_params; /* GNUTLS_PK_GOST_* */
+ gnutls_datum_t raw_pub; /* used by x25519 */
gnutls_datum_t raw_priv;
unsigned int seed_size;
@@ -247,7 +237,7 @@ typedef enum {
GNUTLS_PK_FLAG_RSA_PSS_FIXED_SALT_LENGTH = 4
} gnutls_pk_flag_t;
-#define FIX_SIGN_PARAMS(params, flags, dig) do { \
+# define FIX_SIGN_PARAMS(params, flags, dig) do { \
if ((flags) & GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE) { \
(params).flags |= GNUTLS_PK_FLAG_REPRODUCIBLE; \
} \
@@ -260,42 +250,39 @@ void gnutls_pk_params_release(gnutls_pk_params_st * p);
void gnutls_pk_params_clear(gnutls_pk_params_st * p);
void gnutls_pk_params_init(gnutls_pk_params_st * p);
-
-#define MAX_PUBLIC_PARAMS_SIZE 4 /* ok for RSA and DSA */
+# define MAX_PUBLIC_PARAMS_SIZE 4 /* ok for RSA and DSA */
/* parameters should not be larger than this limit */
-#define DSA_PUBLIC_PARAMS 4
-#define DH_PUBLIC_PARAMS 4
-#define RSA_PUBLIC_PARAMS 2
-#define ECC_PUBLIC_PARAMS 2
-#define GOST_PUBLIC_PARAMS 2
-
+# define DSA_PUBLIC_PARAMS 4
+# define DH_PUBLIC_PARAMS 4
+# define RSA_PUBLIC_PARAMS 2
+# define ECC_PUBLIC_PARAMS 2
+# define GOST_PUBLIC_PARAMS 2
-#define MAX_PRIV_PARAMS_SIZE GNUTLS_MAX_PK_PARAMS /* ok for RSA and DSA */
+# define MAX_PRIV_PARAMS_SIZE GNUTLS_MAX_PK_PARAMS /* ok for RSA and DSA */
/* parameters should not be larger than this limit */
-#define DSA_PRIVATE_PARAMS 5
-#define DH_PRIVATE_PARAMS 5
-#define RSA_PRIVATE_PARAMS 8
-#define ECC_PRIVATE_PARAMS 3
-#define GOST_PRIVATE_PARAMS 3
-
-#if MAX_PRIV_PARAMS_SIZE - RSA_PRIVATE_PARAMS < 0
-#error INCREASE MAX_PRIV_PARAMS
-#endif
+# define DSA_PRIVATE_PARAMS 5
+# define DH_PRIVATE_PARAMS 5
+# define RSA_PRIVATE_PARAMS 8
+# define ECC_PRIVATE_PARAMS 3
+# define GOST_PRIVATE_PARAMS 3
-#if MAX_PRIV_PARAMS_SIZE - ECC_PRIVATE_PARAMS < 0
-#error INCREASE MAX_PRIV_PARAMS
-#endif
+# if MAX_PRIV_PARAMS_SIZE - RSA_PRIVATE_PARAMS < 0
+# error INCREASE MAX_PRIV_PARAMS
+# endif
-#if MAX_PRIV_PARAMS_SIZE - GOST_PRIVATE_PARAMS < 0
-#error INCREASE MAX_PRIV_PARAMS
-#endif
+# if MAX_PRIV_PARAMS_SIZE - ECC_PRIVATE_PARAMS < 0
+# error INCREASE MAX_PRIV_PARAMS
+# endif
-#if MAX_PRIV_PARAMS_SIZE - DSA_PRIVATE_PARAMS < 0
-#error INCREASE MAX_PRIV_PARAMS
-#endif
+# if MAX_PRIV_PARAMS_SIZE - GOST_PRIVATE_PARAMS < 0
+# error INCREASE MAX_PRIV_PARAMS
+# endif
+# if MAX_PRIV_PARAMS_SIZE - DSA_PRIVATE_PARAMS < 0
+# error INCREASE MAX_PRIV_PARAMS
+# endif
/* params are:
* RSA:
@@ -332,34 +319,34 @@ void gnutls_pk_params_init(gnutls_pk_params_st * p);
* [8] is k (private key)
*/
-#define ECC_X 0
-#define ECC_Y 1
-#define ECC_K 2
-
-#define GOST_X 0
-#define GOST_Y 1
-#define GOST_K 2
-
-#define DSA_P 0
-#define DSA_Q 1
-#define DSA_G 2
-#define DSA_Y 3
-#define DSA_X 4
-
-#define DH_P 0
-#define DH_Q 1
-#define DH_G 2
-#define DH_Y 3
-#define DH_X 4
-
-#define RSA_MODULUS 0
-#define RSA_PUB 1
-#define RSA_PRIV 2
-#define RSA_PRIME1 3
-#define RSA_PRIME2 4
-#define RSA_COEF 5
-#define RSA_E1 6
-#define RSA_E2 7
+# define ECC_X 0
+# define ECC_Y 1
+# define ECC_K 2
+
+# define GOST_X 0
+# define GOST_Y 1
+# define GOST_K 2
+
+# define DSA_P 0
+# define DSA_Q 1
+# define DSA_G 2
+# define DSA_Y 3
+# define DSA_X 4
+
+# define DH_P 0
+# define DH_Q 1
+# define DH_G 2
+# define DH_Y 3
+# define DH_X 4
+
+# define RSA_MODULUS 0
+# define RSA_PUB 1
+# define RSA_PRIV 2
+# define RSA_PRIME1 3
+# define RSA_PRIME2 4
+# define RSA_COEF 5
+# define RSA_E1 6
+# define RSA_E2 7
/**
* gnutls_direction_t:
@@ -377,51 +364,49 @@ typedef enum {
typedef struct gnutls_crypto_pk {
/* The params structure should contain the private or public key
* parameters, depending on the operation */
- int (*encrypt) (gnutls_pk_algorithm_t, gnutls_datum_t * ciphertext,
- const gnutls_datum_t * plaintext,
- const gnutls_pk_params_st * pub);
- int (*decrypt) (gnutls_pk_algorithm_t,
- gnutls_datum_t * plaintext,
+ int (*encrypt)(gnutls_pk_algorithm_t, gnutls_datum_t * ciphertext,
+ const gnutls_datum_t * plaintext,
+ const gnutls_pk_params_st * pub);
+ int (*decrypt)(gnutls_pk_algorithm_t,
+ gnutls_datum_t * plaintext,
+ const gnutls_datum_t * ciphertext,
+ const gnutls_pk_params_st * priv);
+ int (*decrypt2)(gnutls_pk_algorithm_t,
const gnutls_datum_t * ciphertext,
- const gnutls_pk_params_st * priv);
- int (*decrypt2) (gnutls_pk_algorithm_t,
- const gnutls_datum_t * ciphertext,
- unsigned char * plaintext,
- size_t paintext_size,
- const gnutls_pk_params_st * priv);
- int (*sign) (gnutls_pk_algorithm_t, gnutls_datum_t * signature,
- const gnutls_datum_t * data,
- const gnutls_pk_params_st *priv,
- const gnutls_x509_spki_st *sign);
- int (*verify) (gnutls_pk_algorithm_t, const gnutls_datum_t * data,
- const gnutls_datum_t * sig,
- const gnutls_pk_params_st *pub,
- const gnutls_x509_spki_st *sign);
+ unsigned char *plaintext,
+ size_t paintext_size, const gnutls_pk_params_st * priv);
+ int (*sign)(gnutls_pk_algorithm_t, gnutls_datum_t * signature,
+ const gnutls_datum_t * data,
+ const gnutls_pk_params_st * priv,
+ const gnutls_x509_spki_st * sign);
+ int (*verify)(gnutls_pk_algorithm_t, const gnutls_datum_t * data,
+ const gnutls_datum_t * sig,
+ const gnutls_pk_params_st * pub,
+ const gnutls_x509_spki_st * sign);
/* sanity checks the public key parameters */
- int (*verify_priv_params) (gnutls_pk_algorithm_t,
- const gnutls_pk_params_st * priv);
- int (*verify_pub_params) (gnutls_pk_algorithm_t,
- const gnutls_pk_params_st * pub);
- int (*generate_keys) (gnutls_pk_algorithm_t, unsigned int nbits,
- gnutls_pk_params_st *, unsigned ephemeral);
- int (*generate_params) (gnutls_pk_algorithm_t, unsigned int nbits,
- gnutls_pk_params_st *);
+ int (*verify_priv_params)(gnutls_pk_algorithm_t,
+ const gnutls_pk_params_st * priv);
+ int (*verify_pub_params)(gnutls_pk_algorithm_t,
+ const gnutls_pk_params_st * pub);
+ int (*generate_keys)(gnutls_pk_algorithm_t, unsigned int nbits,
+ gnutls_pk_params_st *, unsigned ephemeral);
+ int (*generate_params)(gnutls_pk_algorithm_t, unsigned int nbits,
+ gnutls_pk_params_st *);
/* this function should convert params to ones suitable
* for the above functions
*/
- int (*pk_fixup_private_params) (gnutls_pk_algorithm_t,
- gnutls_direction_t,
- gnutls_pk_params_st *);
-#define PK_DERIVE_TLS13 1
- int (*derive) (gnutls_pk_algorithm_t, gnutls_datum_t * out,
- const gnutls_pk_params_st * priv,
- const gnutls_pk_params_st * pub,
- const gnutls_datum_t *nonce,
- unsigned int flags);
-
- int (*curve_exists) (gnutls_ecc_curve_t); /* true/false */
- int (*pk_exists) (gnutls_pk_algorithm_t); /* true/false */
- int (*sign_exists) (gnutls_sign_algorithm_t); /* true/false */
+ int (*pk_fixup_private_params)(gnutls_pk_algorithm_t,
+ gnutls_direction_t,
+ gnutls_pk_params_st *);
+# define PK_DERIVE_TLS13 1
+ int (*derive)(gnutls_pk_algorithm_t, gnutls_datum_t * out,
+ const gnutls_pk_params_st * priv,
+ const gnutls_pk_params_st * pub,
+ const gnutls_datum_t * nonce, unsigned int flags);
+
+ int (*curve_exists)(gnutls_ecc_curve_t); /* true/false */
+ int (*pk_exists)(gnutls_pk_algorithm_t); /* true/false */
+ int (*sign_exists)(gnutls_sign_algorithm_t); /* true/false */
} gnutls_crypto_pk_st;
/* priority: infinity for backend algorithms, 90 for kernel
@@ -429,20 +414,18 @@ typedef struct gnutls_crypto_pk {
*/
int gnutls_crypto_single_cipher_register(gnutls_cipher_algorithm_t
algorithm, int priority,
- const gnutls_crypto_single_cipher_st *s,
- int free_s);
+ const gnutls_crypto_single_cipher_st *
+ s, int free_s);
int gnutls_crypto_single_mac_register(gnutls_mac_algorithm_t algorithm,
int priority,
- const gnutls_crypto_single_mac_st *
- s, int free_s);
-int gnutls_crypto_single_digest_register(gnutls_digest_algorithm_t
- algorithm, int priority,
- const
- gnutls_crypto_single_digest_st *
+ const gnutls_crypto_single_mac_st * s,
+ int free_s);
+int gnutls_crypto_single_digest_register(gnutls_digest_algorithm_t algorithm,
+ int priority,
+ const gnutls_crypto_single_digest_st *
s, int free_s);
-int gnutls_crypto_rnd_register(int priority,
- const gnutls_crypto_rnd_st * s);
+int gnutls_crypto_rnd_register(int priority, const gnutls_crypto_rnd_st * s);
int gnutls_crypto_pk_register(int priority, const gnutls_crypto_pk_st * s);
int gnutls_crypto_bigint_register(int priority,
const gnutls_crypto_bigint_st * s);
@@ -452,32 +435,30 @@ int
_gnutls_prf_raw(gnutls_mac_algorithm_t mac,
size_t master_size, const void *master,
size_t label_size, const char *label,
- size_t seed_size, const uint8_t *seed, size_t outsize,
+ size_t seed_size, const uint8_t * seed, size_t outsize,
char *out);
int _gnutls_gost_key_wrap(gnutls_gost_paramset_t gost_params,
- const gnutls_datum_t *kek,
- const gnutls_datum_t *ukm,
- const gnutls_datum_t *cek,
- gnutls_datum_t *enc,
- gnutls_datum_t *imit);
+ const gnutls_datum_t * kek,
+ const gnutls_datum_t * ukm,
+ const gnutls_datum_t * cek,
+ gnutls_datum_t * enc, gnutls_datum_t * imit);
int _gnutls_gost_key_unwrap(gnutls_gost_paramset_t gost_params,
- const gnutls_datum_t *kek,
- const gnutls_datum_t *ukm,
- const gnutls_datum_t *enc,
- const gnutls_datum_t *imit,
- gnutls_datum_t *cek);
+ const gnutls_datum_t * kek,
+ const gnutls_datum_t * ukm,
+ const gnutls_datum_t * enc,
+ const gnutls_datum_t * imit, gnutls_datum_t * cek);
int
_gnutls_rsa_pkcs1_sign_pad(size_t key_bits,
- const gnutls_datum_t *data,
+ const gnutls_datum_t * data,
unsigned char *buffer, size_t buffer_size);
int
-_gnutls_rsa_pss_sign_pad(gnutls_x509_spki_st *params,
+_gnutls_rsa_pss_sign_pad(gnutls_x509_spki_st * params,
size_t key_bits,
- const gnutls_datum_t *data,
+ const gnutls_datum_t * data,
unsigned char *buffer, size_t buffer_size);
-#endif /* GNUTLS_LIB_CRYPTO_BACKEND_H */
+#endif /* GNUTLS_LIB_CRYPTO_BACKEND_H */
diff --git a/lib/crypto-selftests-pk.c b/lib/crypto-selftests-pk.c
index 9b7c692a8f..9062199d40 100644
--- a/lib/crypto-selftests-pk.c
+++ b/lib/crypto-selftests-pk.c
@@ -34,194 +34,189 @@
#define DATASTR "Hello there!"
static const gnutls_datum_t signed_data = {
- .data = (void *) DATASTR,
+ .data = (void *)DATASTR,
.size = sizeof(DATASTR) - 1
};
static const gnutls_datum_t bad_data = {
- .data = (void *) DATASTR,
+ .data = (void *)DATASTR,
.size = sizeof(DATASTR) - 2
};
/* RSA 2048 private key and signature */
static const char rsa_2048_privkey[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIEogIBAAKCAQEA6yCv+BLrRP/dMPBXJWK21c0aqxIX6JkODL4K+zlyEURt8/Wp\n"
- "nw37CJwHD3VrimSnk2SJvBfTNhzYhCsLShDOPvi4qBrLZ1WozjoVJ8tRE4VCcjQJ\n"
- "snpJ7ldiV+Eos1Z3FkbV/uQcw5CYCb/TciSukaWlI+G/xas9EOOFt4aELbc1yDe0\n"
- "hyfPDtoaKfek4GhT9qT1I8pTC40P9OrA9Jt8lblqxHWwqmdunLTjPjB5zJT6QgI+\n"
- "j1xuq7ZOQhveNA/AOyzh574GIpgsuvPPLBQwsCQkscr7cFnCsyOPgYJrQW3De2+l\n"
- "wjp2D7gZeeQcFQKazXcFoiqNpJWoBWmU0qqsgwIDAQABAoIBAAghNzRioxPdrO42\n"
- "QS0fvqah0tw7Yew+7oduQr7w+4qxTQP0aIsBVr6zdmMIclF0rX6hKUoBoOHsGWho\n"
- "fJlw/1CaFPhrBMFr6sxGodigZQtBvkxolDVBmTDOgK39MQUSZke0501K4du5MiiU\n"
- "I2F89zQ9//m/onvZMeFVnJf95LAX5qHr/FLARQFtOpgWzcGVxdvJdJlYb1zMUril\n"
- "PqyAZXo1j0vgHWwSd54k8mBLus7l8KT57VFce8+9nBPrOrqW4rDVXzs/go3S+kiI\n"
- "OyzYeUs9czg1N1e3VhEaC+EdYUawc0ASuEkbsJ53L8pwDvS+2ly2ykYziJp95Fjv\n"
- "bzyd1dECgYEA8FzGCxu7A6/ei9Dn0Fmi8Ns/QvEgbdlGw4v4MlXHjrGJYdOB0BwG\n"
- "2D2k0ODNYKlUX2J4hi5x8aCH33y/v0EcOHyuqM33vOWBVbdcumCqcOmp341UebAO\n"
- "uCPgDJNhjxXaeDVPnizqnOBA1B9sTxwmCOmFIiFRLbR+XluvDh3t8L0CgYEA+my6\n"
- "124Rw7kcFx+9JoB/Z+bUJDYpefUT91gBUhhEdEMx5fujhMzAbLpIRjFQq+75Qb7v\n"
- "0NyIS09B4oKOqQYzVEJwqKY7H71BTl7QuzJ8Qtuh/DMZsVIt6xpvdeuAKpEOqz44\n"
- "ZD3fW1B59A3ja7kqZadCqq2b02UTk+gdeOrYBj8CgYACX3gZDfoHrEnPKY3QUcI5\n"
- "DIEQYR8H1phLP+uAW7ZvozMPAy6J5mzu35Tr9vwwExvhITC9amH3l7UfsLSX58Wm\n"
- "jRyQUBA9Dir7tKa2tFOab8Qcj+GgnetXSAtjNGVHK1kPzL7vedQLHm+laHYCRe3e\n"
- "Mqf80UVi5SBGQDN3OTZrJQKBgEkj2oozDqMwfGDQl0kYfJ2XEFynKQQCrVsva+tT\n"
- "RSMDwR4fmcmel5Dp81P08U/WExy9rIM+9duxAVgrs4jwU6uHYCoRqvEBMIK4NJSI\n"
- "ETzhsvTa4+UjUF/7L5SsPJmyFiuzl3rHi2W7InNCXyrGQPjBmjoJTJq4SbiIMZtw\n"
- "U7m3AoGACG2rE/Ud71kyOJcKwxzEt8kd+2CMuaZeE/xk+3zLSSjXJzKPficogM3I\n"
- "K37/N7N0FjhdQ5hRuD3GH1fcjv9AKdGHsH7RuaG+jHTRUjS1glr17SSQzh6xXnWj\n"
- "jG0M4UZm5P9STL09nZuWH0wfpr/eg+9+A6yOVfnADI13v+Ygk7k=\n"
- "-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEogIBAAKCAQEA6yCv+BLrRP/dMPBXJWK21c0aqxIX6JkODL4K+zlyEURt8/Wp\n"
+ "nw37CJwHD3VrimSnk2SJvBfTNhzYhCsLShDOPvi4qBrLZ1WozjoVJ8tRE4VCcjQJ\n"
+ "snpJ7ldiV+Eos1Z3FkbV/uQcw5CYCb/TciSukaWlI+G/xas9EOOFt4aELbc1yDe0\n"
+ "hyfPDtoaKfek4GhT9qT1I8pTC40P9OrA9Jt8lblqxHWwqmdunLTjPjB5zJT6QgI+\n"
+ "j1xuq7ZOQhveNA/AOyzh574GIpgsuvPPLBQwsCQkscr7cFnCsyOPgYJrQW3De2+l\n"
+ "wjp2D7gZeeQcFQKazXcFoiqNpJWoBWmU0qqsgwIDAQABAoIBAAghNzRioxPdrO42\n"
+ "QS0fvqah0tw7Yew+7oduQr7w+4qxTQP0aIsBVr6zdmMIclF0rX6hKUoBoOHsGWho\n"
+ "fJlw/1CaFPhrBMFr6sxGodigZQtBvkxolDVBmTDOgK39MQUSZke0501K4du5MiiU\n"
+ "I2F89zQ9//m/onvZMeFVnJf95LAX5qHr/FLARQFtOpgWzcGVxdvJdJlYb1zMUril\n"
+ "PqyAZXo1j0vgHWwSd54k8mBLus7l8KT57VFce8+9nBPrOrqW4rDVXzs/go3S+kiI\n"
+ "OyzYeUs9czg1N1e3VhEaC+EdYUawc0ASuEkbsJ53L8pwDvS+2ly2ykYziJp95Fjv\n"
+ "bzyd1dECgYEA8FzGCxu7A6/ei9Dn0Fmi8Ns/QvEgbdlGw4v4MlXHjrGJYdOB0BwG\n"
+ "2D2k0ODNYKlUX2J4hi5x8aCH33y/v0EcOHyuqM33vOWBVbdcumCqcOmp341UebAO\n"
+ "uCPgDJNhjxXaeDVPnizqnOBA1B9sTxwmCOmFIiFRLbR+XluvDh3t8L0CgYEA+my6\n"
+ "124Rw7kcFx+9JoB/Z+bUJDYpefUT91gBUhhEdEMx5fujhMzAbLpIRjFQq+75Qb7v\n"
+ "0NyIS09B4oKOqQYzVEJwqKY7H71BTl7QuzJ8Qtuh/DMZsVIt6xpvdeuAKpEOqz44\n"
+ "ZD3fW1B59A3ja7kqZadCqq2b02UTk+gdeOrYBj8CgYACX3gZDfoHrEnPKY3QUcI5\n"
+ "DIEQYR8H1phLP+uAW7ZvozMPAy6J5mzu35Tr9vwwExvhITC9amH3l7UfsLSX58Wm\n"
+ "jRyQUBA9Dir7tKa2tFOab8Qcj+GgnetXSAtjNGVHK1kPzL7vedQLHm+laHYCRe3e\n"
+ "Mqf80UVi5SBGQDN3OTZrJQKBgEkj2oozDqMwfGDQl0kYfJ2XEFynKQQCrVsva+tT\n"
+ "RSMDwR4fmcmel5Dp81P08U/WExy9rIM+9duxAVgrs4jwU6uHYCoRqvEBMIK4NJSI\n"
+ "ETzhsvTa4+UjUF/7L5SsPJmyFiuzl3rHi2W7InNCXyrGQPjBmjoJTJq4SbiIMZtw\n"
+ "U7m3AoGACG2rE/Ud71kyOJcKwxzEt8kd+2CMuaZeE/xk+3zLSSjXJzKPficogM3I\n"
+ "K37/N7N0FjhdQ5hRuD3GH1fcjv9AKdGHsH7RuaG+jHTRUjS1glr17SSQzh6xXnWj\n"
+ "jG0M4UZm5P9STL09nZuWH0wfpr/eg+9+A6yOVfnADI13v+Ygk7k=\n"
+ "-----END RSA PRIVATE KEY-----\n";
static const char rsa_2048_sig[] =
- "\x7a\xb3\xf8\xb0\xf9\xf0\x52\x88\x37\x17\x97\x9f\xbe\x61\xb4\xd2"
- "\x43\x78\x9f\x79\x92\xd0\xad\x08\xdb\xbd\x3c\x72\x7a\xb5\x51\x59"
- "\x63\xd6\x7d\xf1\x9c\x1e\x10\x7b\x27\xab\xf8\xd4\x9d\xcd\xc5\xf9"
- "\xae\xf7\x09\x6b\x40\x93\xc5\xe9\x1c\x0f\xb4\x82\xa1\x47\x86\x54"
- "\x63\xd2\x4d\x40\x9a\x80\xb9\x38\x45\x69\xa2\xd6\x92\xb6\x69\x7f"
- "\x3f\xf3\x5b\xa5\x1d\xac\x06\xad\xdf\x4e\xbb\xe6\xda\x68\x0d\xe5"
- "\xab\xef\xd2\xf0\xc5\xd8\xc0\xed\x80\xe2\xd4\x76\x98\xec\x44\xa2"
- "\xfc\x3f\xce\x2e\x8b\xc4\x4b\xab\xb0\x70\x24\x52\x85\x2a\x36\xcd"
- "\x9a\xb5\x05\x00\xea\x98\x7c\x72\x06\x68\xb1\x38\x44\x16\x80\x6a"
- "\x3b\x64\x72\xbb\xfd\x4b\xc9\xdd\xda\x2a\x68\xde\x7f\x6e\x48\x28"
- "\xc1\x63\x57\x2b\xde\x83\xa3\x27\x34\xd7\xa6\x87\x18\x35\x10\xff"
- "\x31\xd9\x47\xc9\x84\x35\xe1\xaa\xe2\xf7\x98\xfa\x19\xd3\xf1\x94"
- "\x25\x2a\x96\xe4\xa8\xa7\x05\x10\x93\x87\xde\x96\x85\xe5\x68\xb8"
- "\xe5\x4e\xbf\x66\x85\x91\xbd\x52\x5b\x3d\x9f\x1b\x79\xea\xe3\x8b"
- "\xef\x62\x18\x39\x7a\x50\x01\x46\x1b\xde\x8d\x37\xbc\x90\x6c\x07"
- "\xc0\x07\xed\x60\xce\x2e\x31\xd6\x8f\xe8\x75\xdb\x45\x21\xc6\xcb";
+ "\x7a\xb3\xf8\xb0\xf9\xf0\x52\x88\x37\x17\x97\x9f\xbe\x61\xb4\xd2"
+ "\x43\x78\x9f\x79\x92\xd0\xad\x08\xdb\xbd\x3c\x72\x7a\xb5\x51\x59"
+ "\x63\xd6\x7d\xf1\x9c\x1e\x10\x7b\x27\xab\xf8\xd4\x9d\xcd\xc5\xf9"
+ "\xae\xf7\x09\x6b\x40\x93\xc5\xe9\x1c\x0f\xb4\x82\xa1\x47\x86\x54"
+ "\x63\xd2\x4d\x40\x9a\x80\xb9\x38\x45\x69\xa2\xd6\x92\xb6\x69\x7f"
+ "\x3f\xf3\x5b\xa5\x1d\xac\x06\xad\xdf\x4e\xbb\xe6\xda\x68\x0d\xe5"
+ "\xab\xef\xd2\xf0\xc5\xd8\xc0\xed\x80\xe2\xd4\x76\x98\xec\x44\xa2"
+ "\xfc\x3f\xce\x2e\x8b\xc4\x4b\xab\xb0\x70\x24\x52\x85\x2a\x36\xcd"
+ "\x9a\xb5\x05\x00\xea\x98\x7c\x72\x06\x68\xb1\x38\x44\x16\x80\x6a"
+ "\x3b\x64\x72\xbb\xfd\x4b\xc9\xdd\xda\x2a\x68\xde\x7f\x6e\x48\x28"
+ "\xc1\x63\x57\x2b\xde\x83\xa3\x27\x34\xd7\xa6\x87\x18\x35\x10\xff"
+ "\x31\xd9\x47\xc9\x84\x35\xe1\xaa\xe2\xf7\x98\xfa\x19\xd3\xf1\x94"
+ "\x25\x2a\x96\xe4\xa8\xa7\x05\x10\x93\x87\xde\x96\x85\xe5\x68\xb8"
+ "\xe5\x4e\xbf\x66\x85\x91\xbd\x52\x5b\x3d\x9f\x1b\x79\xea\xe3\x8b"
+ "\xef\x62\x18\x39\x7a\x50\x01\x46\x1b\xde\x8d\x37\xbc\x90\x6c\x07"
+ "\xc0\x07\xed\x60\xce\x2e\x31\xd6\x8f\xe8\x75\xdb\x45\x21\xc6\xcb";
/* DSA 2048 private key and signature */
static const char dsa_2048_privkey[] =
- "-----BEGIN DSA PRIVATE KEY-----\n"
- "MIIDTQIBAAKCAQEAh60B6yPMRIT7udq2kKuwnQDohvT1U0w+RJcSr23C05cM/Ovn\n"
- "UP/8Rrj6T8K+uYhMbKgLaZiJJW9q04jaPQk0cfUphbLvRjzVHwE/0Bkb+Y1Rv7ni\n"
- "Jot2IFMq5iuNraf889PC0WREvFCcIkSFY2Ac4WT7mCcBtfx/raGFXDUjcUrJ0HwZ\n"
- "IOhjQDfcXUsztuyYsYA75ociEY8kyDZq/ixyr5++R1VjNf30Re8AbQlXOEGxEN5t\n"
- "t+Tvpq8K5L3prQs2KNSzyOUmedjb/ojH4T4qe/RL9EVjjeuIGHDNUT6F197yZ91y\n"
- "qLLTf1WjnUyZcKij5rryX0LJBBWawEZjNSHZawIdAMQlyycia4NigCdiDR+QptUn\n"
- "2xrj9o14fXkIrXcCggEAXRZm1rbPhsjSTo6cpCVrmDzO1grv83EHiBH4MvRQQnP8\n"
- "FpAREsBA5cYju97XvLaLhioZeMjLn08kU7TUbHRUB+ULTuVvE2dQbBpGuKiLRRt9\n"
- "6U2T0eD3xGLoM+o8EY/kpqaWGEpZv7hzM9xuo4vy55+viAZgFWULqmltwfG/7w7V\n"
- "NXUHNv5H4Ipw//fSDLTPqzUlNqSSswDLz6pCjWEs0rWAqNAMaOiLTz4id9pL48Oe\n"
- "oAfpcQR9tgTEnwyXfZBnrJVclHhkHKGeXvU05IgCzpKO76Z5R+By50T0i/JV7vzM\n"
- "l2yS9aAl/cprT6U7yI3oU/blldCVNpMcFAFb+fO8DAKCAQBVMo8xptyvQOJeSvbO\n"
- "SSYdJ3IiI/0GdkcGWXblWg9z7mrPaWEnT7OquEm/+vYtWd3GHDtyNM+jzsN4Xgjc\n"
- "TL3AEd2hLiozJQ1BFKw25VU08UHAYTzUxZhO4Vwtmp46Kwj8YLDQ3NHRWCBxpDQR\n"
- "fbiFvyXP+qXap6plMfrydnUD1mae/JSOWOYgdB7tFIehstLxVXx/cAnjwgFU03Df\n"
- "grjsad92zA1Hc9wIjbsgAQdTR5DWnFRkRt3UtayBwoyqm6QceZHsv1NAGvkQ4ion\n"
- "bEjkHkjF9YCkR9/rspR8cLghRIXMjOpypuSbaRPeeWq0gP2UOxFL/d3iWH0ETr/L\n"
- "kTlCAhxYGpVgtfB96qmJukyl9GOGvfkwFTgEyIDoV84M\n"
- "-----END DSA PRIVATE KEY-----\n";
+ "-----BEGIN DSA PRIVATE KEY-----\n"
+ "MIIDTQIBAAKCAQEAh60B6yPMRIT7udq2kKuwnQDohvT1U0w+RJcSr23C05cM/Ovn\n"
+ "UP/8Rrj6T8K+uYhMbKgLaZiJJW9q04jaPQk0cfUphbLvRjzVHwE/0Bkb+Y1Rv7ni\n"
+ "Jot2IFMq5iuNraf889PC0WREvFCcIkSFY2Ac4WT7mCcBtfx/raGFXDUjcUrJ0HwZ\n"
+ "IOhjQDfcXUsztuyYsYA75ociEY8kyDZq/ixyr5++R1VjNf30Re8AbQlXOEGxEN5t\n"
+ "t+Tvpq8K5L3prQs2KNSzyOUmedjb/ojH4T4qe/RL9EVjjeuIGHDNUT6F197yZ91y\n"
+ "qLLTf1WjnUyZcKij5rryX0LJBBWawEZjNSHZawIdAMQlyycia4NigCdiDR+QptUn\n"
+ "2xrj9o14fXkIrXcCggEAXRZm1rbPhsjSTo6cpCVrmDzO1grv83EHiBH4MvRQQnP8\n"
+ "FpAREsBA5cYju97XvLaLhioZeMjLn08kU7TUbHRUB+ULTuVvE2dQbBpGuKiLRRt9\n"
+ "6U2T0eD3xGLoM+o8EY/kpqaWGEpZv7hzM9xuo4vy55+viAZgFWULqmltwfG/7w7V\n"
+ "NXUHNv5H4Ipw//fSDLTPqzUlNqSSswDLz6pCjWEs0rWAqNAMaOiLTz4id9pL48Oe\n"
+ "oAfpcQR9tgTEnwyXfZBnrJVclHhkHKGeXvU05IgCzpKO76Z5R+By50T0i/JV7vzM\n"
+ "l2yS9aAl/cprT6U7yI3oU/blldCVNpMcFAFb+fO8DAKCAQBVMo8xptyvQOJeSvbO\n"
+ "SSYdJ3IiI/0GdkcGWXblWg9z7mrPaWEnT7OquEm/+vYtWd3GHDtyNM+jzsN4Xgjc\n"
+ "TL3AEd2hLiozJQ1BFKw25VU08UHAYTzUxZhO4Vwtmp46Kwj8YLDQ3NHRWCBxpDQR\n"
+ "fbiFvyXP+qXap6plMfrydnUD1mae/JSOWOYgdB7tFIehstLxVXx/cAnjwgFU03Df\n"
+ "grjsad92zA1Hc9wIjbsgAQdTR5DWnFRkRt3UtayBwoyqm6QceZHsv1NAGvkQ4ion\n"
+ "bEjkHkjF9YCkR9/rspR8cLghRIXMjOpypuSbaRPeeWq0gP2UOxFL/d3iWH0ETr/L\n"
+ "kTlCAhxYGpVgtfB96qmJukyl9GOGvfkwFTgEyIDoV84M\n"
+ "-----END DSA PRIVATE KEY-----\n";
static const char dsa_2048_sig[] =
- "\x30\x3d\x02\x1d\x00\xbe\x87\x2f\xcf\xa1\xe4\x86\x5c\x72\x58\x4a"
- "\x7b\x8f\x32\x7f\xa5\x1b\xdc\x5c\xae\xda\x98\xea\x15\x32\xed\x0c"
- "\x4e\x02\x1c\x4c\x76\x01\x2b\xcd\xb9\x33\x95\xf2\xfa\xde\x56\x01"
- "\xb7\xaa\xe4\x5a\x4a\x2e\xf1\x24\x5a\xd1\xb5\x83\x9a\x93\x61";
+ "\x30\x3d\x02\x1d\x00\xbe\x87\x2f\xcf\xa1\xe4\x86\x5c\x72\x58\x4a"
+ "\x7b\x8f\x32\x7f\xa5\x1b\xdc\x5c\xae\xda\x98\xea\x15\x32\xed\x0c"
+ "\x4e\x02\x1c\x4c\x76\x01\x2b\xcd\xb9\x33\x95\xf2\xfa\xde\x56\x01"
+ "\xb7\xaa\xe4\x5a\x4a\x2e\xf1\x24\x5a\xd1\xb5\x83\x9a\x93\x61";
/* secp256r1 private key and signature */
static const char ecdsa_secp256r1_privkey[] =
- "-----BEGIN EC PRIVATE KEY-----\n"
- "MHcCAQEEIPAKWV7+pZe9c5EubMNfAEKWRQtP/MvlO9HehwHmJssNoAoGCCqGSM49\n"
- "AwEHoUQDQgAE2CNONRio3ciuXtoomJKs3MdbzLbd44VPhtzJN30VLFm5gvnfiCj2\n"
- "zzz7pl9Cv0ECHl6yedNI8QEKdcwCDgEmkQ==\n"
- "-----END EC PRIVATE KEY-----\n";
+ "-----BEGIN EC PRIVATE KEY-----\n"
+ "MHcCAQEEIPAKWV7+pZe9c5EubMNfAEKWRQtP/MvlO9HehwHmJssNoAoGCCqGSM49\n"
+ "AwEHoUQDQgAE2CNONRio3ciuXtoomJKs3MdbzLbd44VPhtzJN30VLFm5gvnfiCj2\n"
+ "zzz7pl9Cv0ECHl6yedNI8QEKdcwCDgEmkQ==\n" "-----END EC PRIVATE KEY-----\n";
static const char ecdsa_secp256r1_sig[] =
- "\x30\x45\x02\x21\x00\x80\x67\x18\xb9\x72\xc6\x0b\xe1\xc9\x89\x9b"
- "\x85\x11\x49\x29\x08\xd9\x86\x76\xcc\xfb\xc1\xf4\xd0\xa2\x5e\xa7"
- "\xb9\x12\xfb\x1a\x68\x02\x20\x67\x12\xb1\x89\x9e\x1d\x9d\x5c\x0f"
- "\xef\x6e\xa7\x2a\x95\x8c\xfa\x54\x20\x80\xc8\x30\x7c\xff\x06\xbc"
- "\xc8\xe2\x9a\x2f\x05\x2f\x67";
+ "\x30\x45\x02\x21\x00\x80\x67\x18\xb9\x72\xc6\x0b\xe1\xc9\x89\x9b"
+ "\x85\x11\x49\x29\x08\xd9\x86\x76\xcc\xfb\xc1\xf4\xd0\xa2\x5e\xa7"
+ "\xb9\x12\xfb\x1a\x68\x02\x20\x67\x12\xb1\x89\x9e\x1d\x9d\x5c\x0f"
+ "\xef\x6e\xa7\x2a\x95\x8c\xfa\x54\x20\x80\xc8\x30\x7c\xff\x06\xbc"
+ "\xc8\xe2\x9a\x2f\x05\x2f\x67";
#ifdef ENABLE_NON_SUITEB_CURVES
/* secp192r1 private key and signature */
static const char ecdsa_secp192r1_privkey[] =
- "-----BEGIN EC PRIVATE KEY-----"
- "MF8CAQEEGLjezFcbgDMeApVrdtZHvu/k1a8/tVZ41KAKBggqhkjOPQMBAaE0AzIA"
- "BO1lciKdgxeRH8k64vxcaV1OYIK9akVrW02Dw21MXhRLP0l0wzCw6LGSr5rS6AaL"
- "Fg==" "-----END EC PRIVATE KEY-----";
+ "-----BEGIN EC PRIVATE KEY-----"
+ "MF8CAQEEGLjezFcbgDMeApVrdtZHvu/k1a8/tVZ41KAKBggqhkjOPQMBAaE0AzIA"
+ "BO1lciKdgxeRH8k64vxcaV1OYIK9akVrW02Dw21MXhRLP0l0wzCw6LGSr5rS6AaL"
+ "Fg==" "-----END EC PRIVATE KEY-----";
static const char ecdsa_secp192r1_sig[] =
- "\x30\x34\x02\x18\x7c\x43\xe3\xb7\x26\x90\x43\xb5\xf5\x63\x8f\xee"
- "\xac\x78\x3d\xac\x35\x35\xd0\x1e\x83\x17\x2b\x64\x02\x18\x14\x6e"
- "\x94\xd5\x7e\xac\x43\x42\x0b\x71\x7a\xc8\x29\xe6\xe3\xda\xf2\x95"
- "\x0e\xe0\x63\x24\xed\xf2";
+ "\x30\x34\x02\x18\x7c\x43\xe3\xb7\x26\x90\x43\xb5\xf5\x63\x8f\xee"
+ "\xac\x78\x3d\xac\x35\x35\xd0\x1e\x83\x17\x2b\x64\x02\x18\x14\x6e"
+ "\x94\xd5\x7e\xac\x43\x42\x0b\x71\x7a\xc8\x29\xe6\xe3\xda\xf2\x95"
+ "\x0e\xe0\x63\x24\xed\xf2";
/* secp224r1 private key and signature */
static const char ecdsa_secp224r1_privkey[] =
- "-----BEGIN EC PRIVATE KEY-----"
- "MGgCAQEEHOKWJFdWdrR/CgVrUeTeawOrJ9GozE9KKx2a8PmgBwYFK4EEACGhPAM6"
- "AAQKQj3YpenWT7lFR41SnBvmj/+Bj+kgzQnaF65qWAtPRJsZXFlLTu3/IUNqSRu9"
- "DqPsk8xBHAB7pA==" "-----END EC PRIVATE KEY-----";
+ "-----BEGIN EC PRIVATE KEY-----"
+ "MGgCAQEEHOKWJFdWdrR/CgVrUeTeawOrJ9GozE9KKx2a8PmgBwYFK4EEACGhPAM6"
+ "AAQKQj3YpenWT7lFR41SnBvmj/+Bj+kgzQnaF65qWAtPRJsZXFlLTu3/IUNqSRu9"
+ "DqPsk8xBHAB7pA==" "-----END EC PRIVATE KEY-----";
static const char ecdsa_secp224r1_sig[] =
- "\x30\x3d\x02\x1c\x14\x22\x09\xa1\x51\x33\x37\xfd\x78\x73\xbd\x84"
- "\x6e\x76\xa8\x60\x90\xf5\xb6\x57\x34\x25\xe0\x79\xe3\x01\x61\xa9"
- "\x02\x1d\x00\xb1\xee\xdb\xae\xb3\xe6\x9c\x04\x68\xd5\xe1\x0d\xb6"
- "\xfc\x5c\x45\xc3\x4f\xbf\x2b\xa5\xe0\x89\x37\x84\x04\x82\x5f";
+ "\x30\x3d\x02\x1c\x14\x22\x09\xa1\x51\x33\x37\xfd\x78\x73\xbd\x84"
+ "\x6e\x76\xa8\x60\x90\xf5\xb6\x57\x34\x25\xe0\x79\xe3\x01\x61\xa9"
+ "\x02\x1d\x00\xb1\xee\xdb\xae\xb3\xe6\x9c\x04\x68\xd5\xe1\x0d\xb6"
+ "\xfc\x5c\x45\xc3\x4f\xbf\x2b\xa5\xe0\x89\x37\x84\x04\x82\x5f";
#endif
/* secp384r1 private key and signature */
static const char ecdsa_secp384r1_privkey[] =
- "-----BEGIN EC PRIVATE KEY-----"
- "MIGkAgEBBDDevshD6gb+4rZpC9vwFcIwNs4KmGzdqCxyyN40a8uOWRbyf7aHdiSS"
- "03oAyKtc4JCgBwYFK4EEACKhZANiAARO1KkPMno2tnNXx1S9EZkp8SOpDCZ4aobH"
- "IYv8RHnSmKf8I3OKD6TaoeR+1MwJmNJUH90Bj45WXla68/vsPiFcfVKboxsZYe/n"
- "pv8e4ugXagVQVBXNZJ859iYPdJR24vo=" "-----END EC PRIVATE KEY-----";
+ "-----BEGIN EC PRIVATE KEY-----"
+ "MIGkAgEBBDDevshD6gb+4rZpC9vwFcIwNs4KmGzdqCxyyN40a8uOWRbyf7aHdiSS"
+ "03oAyKtc4JCgBwYFK4EEACKhZANiAARO1KkPMno2tnNXx1S9EZkp8SOpDCZ4aobH"
+ "IYv8RHnSmKf8I3OKD6TaoeR+1MwJmNJUH90Bj45WXla68/vsPiFcfVKboxsZYe/n"
+ "pv8e4ugXagVQVBXNZJ859iYPdJR24vo=" "-----END EC PRIVATE KEY-----";
static const char ecdsa_secp384r1_sig[] =
- "\x30\x65\x02\x31\x00\xa7\x73\x60\x16\xdb\xf9\x1f\xfc\x9e\xd2\x12"
- "\x23\xd4\x04\xa7\x31\x1f\x15\x28\xfd\x87\x9c\x2c\xb1\xf3\x38\x35"
- "\x23\x3b\x6e\xfe\x6a\x5d\x89\x34\xbe\x02\x82\xc6\x27\xea\x45\x53"
- "\xa9\x87\xc5\x31\x0a\x02\x30\x76\x32\x80\x6b\x43\x3c\xb4\xfd\x90"
- "\x03\xe0\x1d\x5d\x77\x18\x45\xf6\x71\x29\xa9\x05\x87\x49\x75\x3a"
- "\x78\x9c\x49\xe5\x6c\x8e\x18\xcd\x5d\xee\x2c\x6f\x92\xf7\x15\xd3"
- "\x38\xd5\xf9\x9b\x9d\x1a\xf4";
+ "\x30\x65\x02\x31\x00\xa7\x73\x60\x16\xdb\xf9\x1f\xfc\x9e\xd2\x12"
+ "\x23\xd4\x04\xa7\x31\x1f\x15\x28\xfd\x87\x9c\x2c\xb1\xf3\x38\x35"
+ "\x23\x3b\x6e\xfe\x6a\x5d\x89\x34\xbe\x02\x82\xc6\x27\xea\x45\x53"
+ "\xa9\x87\xc5\x31\x0a\x02\x30\x76\x32\x80\x6b\x43\x3c\xb4\xfd\x90"
+ "\x03\xe0\x1d\x5d\x77\x18\x45\xf6\x71\x29\xa9\x05\x87\x49\x75\x3a"
+ "\x78\x9c\x49\xe5\x6c\x8e\x18\xcd\x5d\xee\x2c\x6f\x92\xf7\x15\xd3"
+ "\x38\xd5\xf9\x9b\x9d\x1a\xf4";
/* secp521r1 private key and signature */
static const char ecdsa_secp521r1_privkey[] =
- "-----BEGIN EC PRIVATE KEY-----"
- "MIHbAgEBBEGO2n7NN363qSCvJVdlQtCvudtaW4o0fEufXRjE1AsCrle+VXX0Zh0w"
- "Y1slSeDHMndpakoiF+XkQ+bhcB867UV6aKAHBgUrgQQAI6GBiQOBhgAEAQb6jDpo"
- "byy1tF8Zucg0TMGUzIN2DK+RZJ3QQRdWdirO25OIC3FoFi1Yird6rpoB6HlNyJ7R"
- "0bNG9Uv34bSHMn8yAFoiqxUCdJZQbEenMoZsi6COaePe3e0QqvDMr0hEWT23Sr3t"
- "LpEV7eZGFfFIJw5wSUp2KOcs+O9WjmoukTWtDKNV"
- "-----END EC PRIVATE KEY-----";
+ "-----BEGIN EC PRIVATE KEY-----"
+ "MIHbAgEBBEGO2n7NN363qSCvJVdlQtCvudtaW4o0fEufXRjE1AsCrle+VXX0Zh0w"
+ "Y1slSeDHMndpakoiF+XkQ+bhcB867UV6aKAHBgUrgQQAI6GBiQOBhgAEAQb6jDpo"
+ "byy1tF8Zucg0TMGUzIN2DK+RZJ3QQRdWdirO25OIC3FoFi1Yird6rpoB6HlNyJ7R"
+ "0bNG9Uv34bSHMn8yAFoiqxUCdJZQbEenMoZsi6COaePe3e0QqvDMr0hEWT23Sr3t"
+ "LpEV7eZGFfFIJw5wSUp2KOcs+O9WjmoukTWtDKNV" "-----END EC PRIVATE KEY-----";
static const char ecdsa_secp521r1_sig[] =
- "\x30\x81\x88\x02\x42\x01\x9d\x13\x2e\xc9\x75\x1b\x60\x10\x62\xc5"
- "\x0d\xcb\x08\x9e\x86\x01\xd3\xc9\x8c\xee\x2e\x16\x3d\x8c\xc2\x65"
- "\x80\xe1\x32\x56\xc3\x02\x9d\xf0\x4a\x89\x8d\x2e\x33\x2a\x90\x4e"
- "\x72\x1d\xaa\x84\x14\xe8\xcb\xdf\x7a\x4a\xc9\x67\x2e\xba\xa3\xf2"
- "\xc2\x07\xf7\x1b\xa5\x91\xbd\x02\x42\x01\xe3\x32\xd2\x25\xeb\x2e"
- "\xaf\xb4\x6c\xc0\xaa\x5c\xc1\x56\x14\x13\x23\x7f\x62\xcf\x4c\xb8"
- "\xd1\x96\xe0\x29\x6d\xed\x74\xdd\x23\x64\xf9\x29\x86\x40\x22\x2f"
- "\xb6\x8d\x4c\x8e\x0b\x7a\xda\xdb\x03\x44\x01\x9b\x81\x1c\x3c\xab"
- "\x78\xee\xf2\xc5\x24\x33\x61\x65\x01\x87\x66";
+ "\x30\x81\x88\x02\x42\x01\x9d\x13\x2e\xc9\x75\x1b\x60\x10\x62\xc5"
+ "\x0d\xcb\x08\x9e\x86\x01\xd3\xc9\x8c\xee\x2e\x16\x3d\x8c\xc2\x65"
+ "\x80\xe1\x32\x56\xc3\x02\x9d\xf0\x4a\x89\x8d\x2e\x33\x2a\x90\x4e"
+ "\x72\x1d\xaa\x84\x14\xe8\xcb\xdf\x7a\x4a\xc9\x67\x2e\xba\xa3\xf2"
+ "\xc2\x07\xf7\x1b\xa5\x91\xbd\x02\x42\x01\xe3\x32\xd2\x25\xeb\x2e"
+ "\xaf\xb4\x6c\xc0\xaa\x5c\xc1\x56\x14\x13\x23\x7f\x62\xcf\x4c\xb8"
+ "\xd1\x96\xe0\x29\x6d\xed\x74\xdd\x23\x64\xf9\x29\x86\x40\x22\x2f"
+ "\xb6\x8d\x4c\x8e\x0b\x7a\xda\xdb\x03\x44\x01\x9b\x81\x1c\x3c\xab"
+ "\x78\xee\xf2\xc5\x24\x33\x61\x65\x01\x87\x66";
/* GOST01 private key */
static const char gost01_privkey[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEUCAQAwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEEIgQgdNfuHGmmTdPm\n"
- "p5dAa3ea9UYxpdYQPP9lbDwzQwG2bJM=\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MEUCAQAwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwICHgEEIgQgdNfuHGmmTdPm\n"
+ "p5dAa3ea9UYxpdYQPP9lbDwzQwG2bJM=\n" "-----END PRIVATE KEY-----\n";
/* GOST12 256 private key */
static const char gost12_256_privkey[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIEIgQgKOF96tom\n"
- "D61rhSnzKjyrmO3fv0gdlHei+6ovrc8SnBk=\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIEIgQgKOF96tom\n"
+ "D61rhSnzKjyrmO3fv0gdlHei+6ovrc8SnBk=\n" "-----END PRIVATE KEY-----\n";
/* GOST12 512 private key */
static const char gost12_512_privkey[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MGoCAQAwIQYIKoUDBwEBAQIwFQYJKoUDBwECAQIBBggqhQMHAQECAwRCBECjFpvp\n"
- "B0vdc7u59b99TCNXhHiB69JJtUjvieNkGYJpoaaIvoKZTNCjpSZASsZcQZCHOTof\n"
- "hsQ3JCCy4xnd5jWT\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MGoCAQAwIQYIKoUDBwEBAQIwFQYJKoUDBwECAQIBBggqhQMHAQECAwRCBECjFpvp\n"
+ "B0vdc7u59b99TCNXhHiB69JJtUjvieNkGYJpoaaIvoKZTNCjpSZASsZcQZCHOTof\n"
+ "hsQ3JCCy4xnd5jWT\n" "-----END PRIVATE KEY-----\n";
static int test_rsa_enc(gnutls_pk_algorithm_t pk,
unsigned bits, gnutls_digest_algorithm_t ign)
@@ -229,7 +224,8 @@ static int test_rsa_enc(gnutls_pk_algorithm_t pk,
int ret;
gnutls_datum_t enc = { NULL, 0 };
gnutls_datum_t dec = { NULL, 0 };
- gnutls_datum_t raw_rsa_key = { (void*)rsa_2048_privkey, sizeof(rsa_2048_privkey)-1 };
+ gnutls_datum_t raw_rsa_key =
+ { (void *)rsa_2048_privkey, sizeof(rsa_2048_privkey) - 1 };
gnutls_privkey_t key;
gnutls_pubkey_t pub = NULL;
unsigned char plaintext2[sizeof(DATASTR) - 1];
@@ -244,7 +240,9 @@ static int test_rsa_enc(gnutls_pk_algorithm_t pk,
goto cleanup;
}
- ret = gnutls_privkey_import_x509_raw(key, &raw_rsa_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &raw_rsa_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -263,7 +261,7 @@ static int test_rsa_enc(gnutls_pk_algorithm_t pk,
}
if (enc.size == signed_data.size && memcmp(signed_data.data, enc.data,
- enc.size) == 0) {
+ enc.size) == 0) {
gnutls_assert();
ret = GNUTLS_E_SELF_TEST_ERROR;
goto cleanup;
@@ -295,7 +293,7 @@ static int test_rsa_enc(gnutls_pk_algorithm_t pk,
}
ret = 0;
- cleanup:
+ cleanup:
if (pub != NULL)
gnutls_pubkey_deinit(pub);
gnutls_privkey_deinit(key);
@@ -336,83 +334,81 @@ static int test_sig(gnutls_pk_algorithm_t pk,
goto cleanup;
}
- switch(pk) {
- case GNUTLS_PK_RSA:
- raw_key.data = (void*)rsa_2048_privkey;
- raw_key.size = sizeof(rsa_2048_privkey) - 1;
- snprintf(param_name, sizeof(param_name), "%u", bits);
- break;
- case GNUTLS_PK_RSA_PSS:
- raw_key.data = (void*)rsa_2048_privkey;
- raw_key.size = sizeof(rsa_2048_privkey) - 1;
- snprintf(param_name, sizeof(param_name), "%u", bits);
+ switch (pk) {
+ case GNUTLS_PK_RSA:
+ raw_key.data = (void *)rsa_2048_privkey;
+ raw_key.size = sizeof(rsa_2048_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%u", bits);
+ break;
+ case GNUTLS_PK_RSA_PSS:
+ raw_key.data = (void *)rsa_2048_privkey;
+ raw_key.size = sizeof(rsa_2048_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%u", bits);
+ break;
+ case GNUTLS_PK_DSA:
+ raw_key.data = (void *)dsa_2048_privkey;
+ raw_key.size = sizeof(dsa_2048_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%u", bits);
+ break;
+ case GNUTLS_PK_ECC:
+ switch (bits) {
+#ifdef ENABLE_NON_SUITEB_CURVES
+ case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP192R1):
+ raw_key.data = (void *)ecdsa_secp192r1_privkey;
+ raw_key.size = sizeof(ecdsa_secp192r1_privkey) - 1;
break;
- case GNUTLS_PK_DSA:
- raw_key.data = (void*)dsa_2048_privkey;
- raw_key.size = sizeof(dsa_2048_privkey) - 1;
- snprintf(param_name, sizeof(param_name), "%u", bits);
+ case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP224R1):
+ raw_key.data = (void *)ecdsa_secp224r1_privkey;
+ raw_key.size = sizeof(ecdsa_secp224r1_privkey) - 1;
break;
- case GNUTLS_PK_ECC:
- switch(bits) {
-#ifdef ENABLE_NON_SUITEB_CURVES
- case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP192R1):
- raw_key.data = (void*)ecdsa_secp192r1_privkey;
- raw_key.size = sizeof(ecdsa_secp192r1_privkey) - 1;
- break;
- case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP224R1):
- raw_key.data = (void*)ecdsa_secp224r1_privkey;
- raw_key.size = sizeof(ecdsa_secp224r1_privkey) - 1;
- break;
#endif
- case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1):
- raw_key.data = (void*)ecdsa_secp256r1_privkey;
- raw_key.size = sizeof(ecdsa_secp256r1_privkey) - 1;
- break;
- case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP384R1):
- raw_key.data = (void*)ecdsa_secp384r1_privkey;
- raw_key.size = sizeof(ecdsa_secp384r1_privkey) - 1;
- break;
- case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP521R1):
- raw_key.data = (void*)ecdsa_secp521r1_privkey;
- raw_key.size = sizeof(ecdsa_secp521r1_privkey) - 1;
- break;
- default:
- gnutls_assert();
- ret = GNUTLS_E_INTERNAL_ERROR;
- goto cleanup;
- }
- snprintf(param_name, sizeof(param_name), "%s",
- gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
- (bits)));
+ case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1):
+ raw_key.data = (void *)ecdsa_secp256r1_privkey;
+ raw_key.size = sizeof(ecdsa_secp256r1_privkey) - 1;
break;
- case GNUTLS_PK_GOST_01:
- raw_key.data = (void*)gost01_privkey;
- raw_key.size = sizeof(gost01_privkey) - 1;
- snprintf(param_name, sizeof(param_name), "%s",
- gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
- (bits)));
+ case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP384R1):
+ raw_key.data = (void *)ecdsa_secp384r1_privkey;
+ raw_key.size = sizeof(ecdsa_secp384r1_privkey) - 1;
break;
- case GNUTLS_PK_GOST_12_256:
- raw_key.data = (void*)gost12_256_privkey;
- raw_key.size = sizeof(gost12_256_privkey) - 1;
- snprintf(param_name, sizeof(param_name), "%s",
- gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
- (bits)));
- break;
- case GNUTLS_PK_GOST_12_512:
- raw_key.data = (void*)gost12_512_privkey;
- raw_key.size = sizeof(gost12_512_privkey) - 1;
- snprintf(param_name, sizeof(param_name), "%s",
- gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
- (bits)));
+ case GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP521R1):
+ raw_key.data = (void *)ecdsa_secp521r1_privkey;
+ raw_key.size = sizeof(ecdsa_secp521r1_privkey) - 1;
break;
default:
gnutls_assert();
ret = GNUTLS_E_INTERNAL_ERROR;
goto cleanup;
+ }
+ snprintf(param_name, sizeof(param_name), "%s",
+ gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE(bits)));
+ break;
+ case GNUTLS_PK_GOST_01:
+ raw_key.data = (void *)gost01_privkey;
+ raw_key.size = sizeof(gost01_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%s",
+ gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE(bits)));
+ break;
+ case GNUTLS_PK_GOST_12_256:
+ raw_key.data = (void *)gost12_256_privkey;
+ raw_key.size = sizeof(gost12_256_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%s",
+ gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE(bits)));
+ break;
+ case GNUTLS_PK_GOST_12_512:
+ raw_key.data = (void *)gost12_512_privkey;
+ raw_key.size = sizeof(gost12_512_privkey) - 1;
+ snprintf(param_name, sizeof(param_name), "%s",
+ gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE(bits)));
+ break;
+ default:
+ gnutls_assert();
+ ret = GNUTLS_E_INTERNAL_ERROR;
+ goto cleanup;
}
- ret = gnutls_privkey_import_x509_raw(key, &raw_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &raw_key, GNUTLS_X509_FMT_PEM,
+ NULL, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -439,9 +435,7 @@ static int test_sig(gnutls_pk_algorithm_t pk,
goto cleanup;
}
- ret =
- gnutls_pubkey_verify_data2(pub, sigalgo, vflags,
- &bad_data, &sig);
+ ret = gnutls_pubkey_verify_data2(pub, sigalgo, vflags, &bad_data, &sig);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED) {
ret = GNUTLS_E_SELF_TEST_ERROR;
@@ -451,7 +445,7 @@ static int test_sig(gnutls_pk_algorithm_t pk,
ret = 0;
-cleanup:
+ cleanup:
if (pub != NULL)
gnutls_pubkey_deinit(pub);
gnutls_privkey_deinit(key);
@@ -483,12 +477,9 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
if (pk == GNUTLS_PK_EC ||
pk == GNUTLS_PK_GOST_01 ||
- pk == GNUTLS_PK_GOST_12_256 ||
- pk == GNUTLS_PK_GOST_12_512)
- {
+ pk == GNUTLS_PK_GOST_12_256 || pk == GNUTLS_PK_GOST_12_512) {
snprintf(param_name, sizeof(param_name), "%s",
- gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE
- (bits)));
+ gnutls_ecc_curve_get_name(GNUTLS_BITS_TO_CURVE(bits)));
if (dig == GNUTLS_DIG_GOSTR_94)
vflags |= GNUTLS_VERIFY_ALLOW_BROKEN;
} else {
@@ -505,7 +496,7 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
return ret;
}
- t.data = (void *) privkey;
+ t.data = (void *)privkey;
t.size = privkey_size;
ret =
@@ -516,7 +507,7 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
goto cleanup;
}
- if (pk != (unsigned) gnutls_privkey_get_pk_algorithm(key, NULL)) {
+ if (pk != (unsigned)gnutls_privkey_get_pk_algorithm(key, NULL)) {
ret = GNUTLS_E_SELF_TEST_ERROR;
goto cleanup;
}
@@ -528,16 +519,15 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
}
/* Test if the generated signature matches the stored */
- ssig.data = (void *) stored_sig;
+ ssig.data = (void *)stored_sig;
ssig.size = stored_sig_size;
- if (sig.size != ssig.size
- || memcmp(sig.data, ssig.data, sig.size) != 0) {
+ if (sig.size != ssig.size || memcmp(sig.data, ssig.data, sig.size) != 0) {
ret = GNUTLS_E_SELF_TEST_ERROR;
#if 0
unsigned i;
fprintf(stderr, "Algorithm: %s-%s\n",
- gnutls_pk_get_name(pk), param_name);
+ gnutls_pk_get_name(pk), param_name);
fprintf(stderr, "\nstored[%d]: ", ssig.size);
for (i = 0; i < ssig.size; i++)
fprintf(stderr, "\\x%.2x", ssig.data[i]);
@@ -582,7 +572,7 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
ret = 0;
- cleanup:
+ cleanup:
gnutls_free(sig.data);
if (pub != 0)
gnutls_pubkey_deinit(pub);
@@ -612,14 +602,13 @@ static int test_known_sig(gnutls_pk_algorithm_t pk, unsigned bits,
goto cleanup; \
}
-
/* Known answer tests for DH */
static int test_dh(void)
{
int ret;
gnutls_pk_params_st priv;
gnutls_pk_params_st pub;
- gnutls_datum_t out = {NULL, 0};
+ gnutls_datum_t out = { NULL, 0 };
/* FFDHE 3072 test vector provided by Stephan Mueller in:
* https://gitlab.com/gnutls/gnutls/-/merge_requests/1342#note_424430996
@@ -706,7 +695,7 @@ static int test_dh(void)
0x1d, 0x98, 0x17, 0x45, 0xa3, 0xee, 0x21, 0xa0, 0x97, 0x38,
0x80, 0xc5, 0x28, 0x1f,
};
- static const uint8_t test_y[] = { /* y=g^x mod p */
+ static const uint8_t test_y[] = { /* y=g^x mod p */
0x93, 0xeb, 0x5c, 0x37, 0x1d, 0x3c, 0x06, 0x6f, 0xbf, 0xbe,
0x96, 0x51, 0x26, 0x58, 0x81, 0x36, 0xc6, 0x4f, 0x9a, 0x34,
0xc4, 0xc5, 0xa8, 0xa3, 0x2c, 0x41, 0x76, 0xa8, 0xc6, 0xc0,
@@ -750,9 +739,9 @@ static int test_dh(void)
gnutls_pk_params_init(&priv);
gnutls_pk_params_init(&pub);
-
+
priv.algo = pub.algo = GNUTLS_PK_DH;
-
+
ret = _gnutls_mpi_init_scan(&priv.params[DH_P],
gnutls_ffdhe_3072_group_prime.data,
gnutls_ffdhe_3072_group_prime.size);
@@ -799,10 +788,9 @@ static int test_dh(void)
gnutls_assert();
goto cleanup;
}
-
-
+
ret = 0;
-cleanup:
+ cleanup:
_gnutls_mpi_release(&pub.params[DH_Y]);
_gnutls_mpi_release(&priv.params[DH_G]);
_gnutls_mpi_release(&priv.params[DH_P]);
@@ -824,48 +812,55 @@ static int test_ecdh(void)
int ret;
gnutls_pk_params_st priv;
gnutls_pk_params_st pub;
- gnutls_datum_t out = {NULL, 0};
- static const uint8_t known_key[] = {
- 0x22, 0x7a, 0x95, 0x98, 0x5f, 0xb1, 0x25, 0x79,
- 0xee, 0x07, 0xe3, 0x8b, 0x1a, 0x97, 0x1d, 0x63,
- 0x53, 0xa8, 0xbd, 0xde, 0x67, 0x4b, 0xcf, 0xa4,
- 0x5f, 0x5e, 0x67, 0x27, 0x6d, 0x86, 0x27, 0x26 };
- static const uint8_t test_k[] = { /* priv */
- 0x52, 0x9c, 0x30, 0xac, 0x6b, 0xce, 0x71, 0x9a,
- 0x37, 0xcd, 0x40, 0x93, 0xbf, 0xf0, 0x36, 0x89,
- 0x53, 0xcc, 0x0e, 0x17, 0xc6, 0xb6, 0xe2, 0x6a,
- 0x3c, 0x2c, 0x51, 0xdb, 0xa6, 0x69, 0x8c, 0xb1 };
+ gnutls_datum_t out = { NULL, 0 };
+ static const uint8_t known_key[] = {
+ 0x22, 0x7a, 0x95, 0x98, 0x5f, 0xb1, 0x25, 0x79,
+ 0xee, 0x07, 0xe3, 0x8b, 0x1a, 0x97, 0x1d, 0x63,
+ 0x53, 0xa8, 0xbd, 0xde, 0x67, 0x4b, 0xcf, 0xa4,
+ 0x5f, 0x5e, 0x67, 0x27, 0x6d, 0x86, 0x27, 0x26
+ };
+ static const uint8_t test_k[] = { /* priv */
+ 0x52, 0x9c, 0x30, 0xac, 0x6b, 0xce, 0x71, 0x9a,
+ 0x37, 0xcd, 0x40, 0x93, 0xbf, 0xf0, 0x36, 0x89,
+ 0x53, 0xcc, 0x0e, 0x17, 0xc6, 0xb6, 0xe2, 0x6a,
+ 0x3c, 0x2c, 0x51, 0xdb, 0xa6, 0x69, 0x8c, 0xb1
+ };
static const uint8_t test_x[] = {
- 0x51, 0x35, 0xd1, 0xd2, 0xb6, 0xad, 0x13, 0xf4,
- 0xa2, 0x25, 0xd3, 0x85, 0x83, 0xbe, 0x42, 0x1e,
- 0x19, 0x09, 0x54, 0x39, 0x00, 0x46, 0x91, 0x49,
- 0x0f, 0x3f, 0xaf, 0x3f, 0x67, 0xda, 0x10, 0x6f };
- static const uint8_t test_y[] = { /* y=g^x mod p */
- 0x07, 0x3a, 0xa1, 0xa2, 0x47, 0x3d, 0xa2, 0x74,
- 0x74, 0xc2, 0xde, 0x62, 0xb6, 0xb9, 0x59, 0xc9,
- 0x56, 0xf6, 0x9e, 0x17, 0xea, 0xbf, 0x7d, 0xa1,
- 0xd7, 0x65, 0xd6, 0x7b, 0xac, 0xca, 0xd5, 0xe3 };
+ 0x51, 0x35, 0xd1, 0xd2, 0xb6, 0xad, 0x13, 0xf4,
+ 0xa2, 0x25, 0xd3, 0x85, 0x83, 0xbe, 0x42, 0x1e,
+ 0x19, 0x09, 0x54, 0x39, 0x00, 0x46, 0x91, 0x49,
+ 0x0f, 0x3f, 0xaf, 0x3f, 0x67, 0xda, 0x10, 0x6f
+ };
+ static const uint8_t test_y[] = { /* y=g^x mod p */
+ 0x07, 0x3a, 0xa1, 0xa2, 0x47, 0x3d, 0xa2, 0x74,
+ 0x74, 0xc2, 0xde, 0x62, 0xb6, 0xb9, 0x59, 0xc9,
+ 0x56, 0xf6, 0x9e, 0x17, 0xea, 0xbf, 0x7d, 0xa1,
+ 0xd7, 0x65, 0xd6, 0x7b, 0xac, 0xca, 0xd5, 0xe3
+ };
gnutls_pk_params_init(&priv);
gnutls_pk_params_init(&pub);
-
+
priv.curve = GNUTLS_ECC_CURVE_SECP256R1;
pub.curve = GNUTLS_ECC_CURVE_SECP256R1;
-
+
priv.algo = pub.algo = GNUTLS_PK_EC;
-
- ret = _gnutls_mpi_init_scan(&priv.params[ECC_K], test_k, sizeof(test_k));
+
+ ret =
+ _gnutls_mpi_init_scan(&priv.params[ECC_K], test_k, sizeof(test_k));
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = _gnutls_mpi_init_scan(&priv.params[ECC_X], test_x, sizeof(test_x));
+ ret =
+ _gnutls_mpi_init_scan(&priv.params[ECC_X], test_x, sizeof(test_x));
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = _gnutls_mpi_init_scan(&priv.params[ECC_Y], test_y, sizeof(test_y));
+ ret =
+ _gnutls_mpi_init_scan(&priv.params[ECC_Y], test_y, sizeof(test_y));
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -901,9 +896,9 @@ static int test_ecdh(void)
gnutls_assert();
goto cleanup;
}
-
+
ret = 0;
-cleanup:
+ cleanup:
_gnutls_mpi_release(&pub.params[ECC_Y]);
_gnutls_mpi_release(&pub.params[ECC_X]);
_gnutls_mpi_release(&priv.params[ECC_K]);
@@ -1003,12 +998,16 @@ int gnutls_pk_self_test(unsigned flags, gnutls_pk_algorithm_t pk)
/* Test ECDSA */
if (is_post || !is_fips140_mode_enabled) {
PK_KNOWN_TEST(GNUTLS_PK_EC,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1),
- GNUTLS_DIG_SHA256, ecdsa_secp256r1_privkey,
- ecdsa_secp256r1_sig, GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ GNUTLS_CURVE_TO_BITS
+ (GNUTLS_ECC_CURVE_SECP256R1),
+ GNUTLS_DIG_SHA256,
+ ecdsa_secp256r1_privkey,
+ ecdsa_secp256r1_sig,
+ GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
} else {
PK_TEST(GNUTLS_PK_EC, test_sig,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1),
+ GNUTLS_CURVE_TO_BITS
+ (GNUTLS_ECC_CURVE_SECP256R1),
GNUTLS_SIGN_ECDSA_SHA256);
}
@@ -1017,51 +1016,66 @@ int gnutls_pk_self_test(unsigned flags, gnutls_pk_algorithm_t pk)
if (is_post || !is_fips140_mode_enabled) {
PK_KNOWN_TEST(GNUTLS_PK_EC,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP384R1),
- GNUTLS_DIG_SHA384, ecdsa_secp384r1_privkey,
- ecdsa_secp384r1_sig, GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ GNUTLS_CURVE_TO_BITS
+ (GNUTLS_ECC_CURVE_SECP384R1),
+ GNUTLS_DIG_SHA384,
+ ecdsa_secp384r1_privkey,
+ ecdsa_secp384r1_sig,
+ GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
} else {
PK_TEST(GNUTLS_PK_EC, test_sig,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP384R1),
+ GNUTLS_CURVE_TO_BITS
+ (GNUTLS_ECC_CURVE_SECP384R1),
GNUTLS_SIGN_ECDSA_SHA384);
}
if (is_post || !is_fips140_mode_enabled) {
PK_KNOWN_TEST(GNUTLS_PK_EC,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP521R1),
- GNUTLS_DIG_SHA512, ecdsa_secp521r1_privkey,
- ecdsa_secp521r1_sig, GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ GNUTLS_CURVE_TO_BITS
+ (GNUTLS_ECC_CURVE_SECP521R1),
+ GNUTLS_DIG_SHA512,
+ ecdsa_secp521r1_privkey,
+ ecdsa_secp521r1_sig,
+ GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
} else {
PK_TEST(GNUTLS_PK_EC, test_sig,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP521R1),
+ GNUTLS_CURVE_TO_BITS
+ (GNUTLS_ECC_CURVE_SECP521R1),
GNUTLS_SIGN_ECDSA_SHA512);
}
#ifdef ENABLE_NON_SUITEB_CURVES
if (is_post || !is_fips140_mode_enabled) {
PK_KNOWN_TEST(GNUTLS_PK_EC,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP192R1),
- GNUTLS_DIG_SHA256, ecdsa_secp192r1_privkey,
- ecdsa_secp192r1_sig, GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ GNUTLS_CURVE_TO_BITS
+ (GNUTLS_ECC_CURVE_SECP192R1),
+ GNUTLS_DIG_SHA256,
+ ecdsa_secp192r1_privkey,
+ ecdsa_secp192r1_sig,
+ GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
} else {
PK_TEST(GNUTLS_PK_EC, test_sig,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP192R1),
+ GNUTLS_CURVE_TO_BITS
+ (GNUTLS_ECC_CURVE_SECP192R1),
GNUTLS_SIGN_ECDSA_SHA256);
}
if (is_post || !is_fips140_mode_enabled) {
PK_KNOWN_TEST(GNUTLS_PK_EC,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP224R1),
- GNUTLS_DIG_SHA256, ecdsa_secp224r1_privkey,
- ecdsa_secp224r1_sig, GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
+ GNUTLS_CURVE_TO_BITS
+ (GNUTLS_ECC_CURVE_SECP224R1),
+ GNUTLS_DIG_SHA256,
+ ecdsa_secp224r1_privkey,
+ ecdsa_secp224r1_sig,
+ GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE);
} else {
PK_TEST(GNUTLS_PK_EC, test_sig,
- GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP224R1),
+ GNUTLS_CURVE_TO_BITS
+ (GNUTLS_ECC_CURVE_SECP224R1),
GNUTLS_SIGN_ECDSA_SHA256);
}
#endif
-
#if ENABLE_GOST
FALLTHROUGH;
case GNUTLS_PK_GOST_01:
@@ -1097,6 +1111,6 @@ int gnutls_pk_self_test(unsigned flags, gnutls_pk_algorithm_t pk)
ret = 0;
- cleanup:
+ cleanup:
return ret;
}
diff --git a/lib/crypto-selftests.c b/lib/crypto-selftests.c
index cf3b7e142e..5c9bd917b9 100644
--- a/lib/crypto-selftests.c
+++ b/lib/crypto-selftests.c
@@ -81,11 +81,13 @@ const struct cipher_aead_vectors_st chacha_poly1305_vectors[] = {
.compat_apis = 1,
STR(key, key_size,
"\x1c\x92\x40\xa5\xeb\x55\xd3\x8a\xf3\x33\x88\x86\x04\xf6\xb5\xf0\x47\x39\x17\xc1\x40\x2b\x80\x09\x9d\xca\x5c\xbc\x20\x70\x75\xc0"),
- .auth = (void*)"\xf3\x33\x88\x86\x00\x00\x00\x00\x00\x00\x4e\x91",
+ .auth = (void *)"\xf3\x33\x88\x86\x00\x00\x00\x00\x00\x00\x4e\x91",
.auth_size = 12,
- .plaintext = (void*)"\x49\x6e\x74\x65\x72\x6e\x65\x74\x2d\x44\x72\x61\x66\x74\x73\x20\x61\x72\x65\x20\x64\x72\x61\x66\x74\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x73\x20\x76\x61\x6c\x69\x64\x20\x66\x6f\x72\x20\x61\x20\x6d\x61\x78\x69\x6d\x75\x6d\x20\x6f\x66\x20\x73\x69\x78\x20\x6d\x6f\x6e\x74\x68\x73\x20\x61\x6e\x64\x20\x6d\x61\x79\x20\x62\x65\x20\x75\x70\x64\x61\x74\x65\x64\x2c\x20\x72\x65\x70\x6c\x61\x63\x65\x64\x2c\x20\x6f\x72\x20\x6f\x62\x73\x6f\x6c\x65\x74\x65\x64\x20\x62\x79\x20\x6f\x74\x68\x65\x72\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x73\x20\x61\x74\x20\x61\x6e\x79\x20\x74\x69\x6d\x65\x2e\x20\x49\x74\x20\x69\x73\x20\x69\x6e\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x20\x74\x6f\x20\x75\x73\x65\x20\x49\x6e\x74\x65\x72\x6e\x65\x74\x2d\x44\x72\x61\x66\x74\x73\x20\x61\x73\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x20\x6d\x61\x74\x65\x72\x69\x61\x6c\x20\x6f\x72\x20\x74\x6f\x20\x63\x69\x74\x65\x20\x74\x68\x65\x6d\x20\x6f\x74\x68\x65\x72\x20\x74\x68\x61\x6e\x20\x61\x73\x20\x2f\xe2\x80\x9c\x77\x6f\x72\x6b\x20\x69\x6e\x20\x70\x72\x6f\x67\x72\x65\x73\x73\x2e\x2f\xe2\x80\x9d",
+ .plaintext = (void *)
+ "\x49\x6e\x74\x65\x72\x6e\x65\x74\x2d\x44\x72\x61\x66\x74\x73\x20\x61\x72\x65\x20\x64\x72\x61\x66\x74\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x73\x20\x76\x61\x6c\x69\x64\x20\x66\x6f\x72\x20\x61\x20\x6d\x61\x78\x69\x6d\x75\x6d\x20\x6f\x66\x20\x73\x69\x78\x20\x6d\x6f\x6e\x74\x68\x73\x20\x61\x6e\x64\x20\x6d\x61\x79\x20\x62\x65\x20\x75\x70\x64\x61\x74\x65\x64\x2c\x20\x72\x65\x70\x6c\x61\x63\x65\x64\x2c\x20\x6f\x72\x20\x6f\x62\x73\x6f\x6c\x65\x74\x65\x64\x20\x62\x79\x20\x6f\x74\x68\x65\x72\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x73\x20\x61\x74\x20\x61\x6e\x79\x20\x74\x69\x6d\x65\x2e\x20\x49\x74\x20\x69\x73\x20\x69\x6e\x61\x70\x70\x72\x6f\x70\x72\x69\x61\x74\x65\x20\x74\x6f\x20\x75\x73\x65\x20\x49\x6e\x74\x65\x72\x6e\x65\x74\x2d\x44\x72\x61\x66\x74\x73\x20\x61\x73\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x20\x6d\x61\x74\x65\x72\x69\x61\x6c\x20\x6f\x72\x20\x74\x6f\x20\x63\x69\x74\x65\x20\x74\x68\x65\x6d\x20\x6f\x74\x68\x65\x72\x20\x74\x68\x61\x6e\x20\x61\x73\x20\x2f\xe2\x80\x9c\x77\x6f\x72\x6b\x20\x69\x6e\x20\x70\x72\x6f\x67\x72\x65\x73\x73\x2e\x2f\xe2\x80\x9d",
.plaintext_size = 265,
- .ciphertext = (void*)"\x64\xa0\x86\x15\x75\x86\x1a\xf4\x60\xf0\x62\xc7\x9b\xe6\x43\xbd\x5e\x80\x5c\xfd\x34\x5c\xf3\x89\xf1\x08\x67\x0a\xc7\x6c\x8c\xb2\x4c\x6c\xfc\x18\x75\x5d\x43\xee\xa0\x9e\xe9\x4e\x38\x2d\x26\xb0\xbd\xb7\xb7\x3c\x32\x1b\x01\x00\xd4\xf0\x3b\x7f\x35\x58\x94\xcf\x33\x2f\x83\x0e\x71\x0b\x97\xce\x98\xc8\xa8\x4a\xbd\x0b\x94\x81\x14\xad\x17\x6e\x00\x8d\x33\xbd\x60\xf9\x82\xb1\xff\x37\xc8\x55\x97\x97\xa0\x6e\xf4\xf0\xef\x61\xc1\x86\x32\x4e\x2b\x35\x06\x38\x36\x06\x90\x7b\x6a\x7c\x02\xb0\xf9\xf6\x15\x7b\x53\xc8\x67\xe4\xb9\x16\x6c\x76\x7b\x80\x4d\x46\xa5\x9b\x52\x16\xcd\xe7\xa4\xe9\x90\x40\xc5\xa4\x04\x33\x22\x5e\xe2\x82\xa1\xb0\xa0\x6c\x52\x3e\xaf\x45\x34\xd7\xf8\x3f\xa1\x15\x5b\x00\x47\x71\x8c\xbc\x54\x6a\x0d\x07\x2b\x04\xb3\x56\x4e\xea\x1b\x42\x22\x73\xf5\x48\x27\x1a\x0b\xb2\x31\x60\x53\xfa\x76\x99\x19\x55\xeb\xd6\x31\x59\x43\x4e\xce\xbb\x4e\x46\x6d\xae\x5a\x10\x73\xa6\x72\x76\x27\x09\x7a\x10\x49\xe6\x17\xd9\x1d\x36\x10\x94\xfa\x68\xf0\xff\x77\x98\x71\x30\x30\x5b\xea\xba\x2e\xda\x04\xdf\x99\x7b\x71\x4d\x6c\x6f\x2c\x29\xa6\xad\x5c\xb4\x02\x2b\x02\x70\x9b",
+ .ciphertext = (void *)
+ "\x64\xa0\x86\x15\x75\x86\x1a\xf4\x60\xf0\x62\xc7\x9b\xe6\x43\xbd\x5e\x80\x5c\xfd\x34\x5c\xf3\x89\xf1\x08\x67\x0a\xc7\x6c\x8c\xb2\x4c\x6c\xfc\x18\x75\x5d\x43\xee\xa0\x9e\xe9\x4e\x38\x2d\x26\xb0\xbd\xb7\xb7\x3c\x32\x1b\x01\x00\xd4\xf0\x3b\x7f\x35\x58\x94\xcf\x33\x2f\x83\x0e\x71\x0b\x97\xce\x98\xc8\xa8\x4a\xbd\x0b\x94\x81\x14\xad\x17\x6e\x00\x8d\x33\xbd\x60\xf9\x82\xb1\xff\x37\xc8\x55\x97\x97\xa0\x6e\xf4\xf0\xef\x61\xc1\x86\x32\x4e\x2b\x35\x06\x38\x36\x06\x90\x7b\x6a\x7c\x02\xb0\xf9\xf6\x15\x7b\x53\xc8\x67\xe4\xb9\x16\x6c\x76\x7b\x80\x4d\x46\xa5\x9b\x52\x16\xcd\xe7\xa4\xe9\x90\x40\xc5\xa4\x04\x33\x22\x5e\xe2\x82\xa1\xb0\xa0\x6c\x52\x3e\xaf\x45\x34\xd7\xf8\x3f\xa1\x15\x5b\x00\x47\x71\x8c\xbc\x54\x6a\x0d\x07\x2b\x04\xb3\x56\x4e\xea\x1b\x42\x22\x73\xf5\x48\x27\x1a\x0b\xb2\x31\x60\x53\xfa\x76\x99\x19\x55\xeb\xd6\x31\x59\x43\x4e\xce\xbb\x4e\x46\x6d\xae\x5a\x10\x73\xa6\x72\x76\x27\x09\x7a\x10\x49\xe6\x17\xd9\x1d\x36\x10\x94\xfa\x68\xf0\xff\x77\x98\x71\x30\x30\x5b\xea\xba\x2e\xda\x04\xdf\x99\x7b\x71\x4d\x6c\x6f\x2c\x29\xa6\xad\x5c\xb4\x02\x2b\x02\x70\x9b",
STR(iv, iv_size,
"\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08"),
.tag_size = 16,
@@ -150,14 +152,12 @@ const struct cipher_aead_vectors_st aes192_gcm_vectors[] = {
.auth_size = 0,
STR(plaintext, plaintext_size,
"\xd9\x31\x32\x25\xf8\x84\x06\xe5\xa5\x59\x09\xc5\xaf\xf5\x26\x9a\x86\xa7\xa9\x53\x15\x34\xf7\xda\x2e\x4c\x30\x3d\x8a\x31\x8a\x72\x1c\x3c\x0c\x95\x95\x68\x09\x53\x2f\xcf\x0e\x24\x49\xa6\xb5\x25\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57\xba\x63\x7b\x39\x1a\xaf\xd2\x55"),
- .ciphertext =
- (uint8_t *)
+ .ciphertext = (uint8_t *)
"\x39\x80\xca\x0b\x3c\x00\xe8\x41\xeb\x06\xfa\xc4\x87\x2a\x27\x57\x85\x9e\x1c\xea\xa6\xef\xd9\x84\x62\x85\x93\xb4\x0c\xa1\xe1\x9c\x7d\x77\x3d\x00\xc1\x44\xc5\x25\xac\x61\x9d\x18\xc8\x4a\x3f\x47\x18\xe2\x44\x8b\x2f\xe3\x24\xd9\xcc\xda\x27\x10\xac\xad\xe2\x56",
STR(iv, iv_size,
"\xca\xfe\xba\xbe\xfa\xce\xdb\xad\xde\xca\xf8\x88"),
.tag_size = 16,
- .tag =
- (void *)
+ .tag = (void *)
"\x99\x24\xa7\xc8\x58\x73\x36\xbf\xb1\x18\x02\x4d\xb8\x67\x4a\x14"},
};
@@ -171,14 +171,12 @@ const struct cipher_aead_vectors_st aes256_gcm_vectors[] = {
.auth_size = 0,
STR(plaintext, plaintext_size,
"\xd9\x31\x32\x25\xf8\x84\x06\xe5\xa5\x59\x09\xc5\xaf\xf5\x26\x9a\x86\xa7\xa9\x53\x15\x34\xf7\xda\x2e\x4c\x30\x3d\x8a\x31\x8a\x72\x1c\x3c\x0c\x95\x95\x68\x09\x53\x2f\xcf\x0e\x24\x49\xa6\xb5\x25\xb1\x6a\xed\xf5\xaa\x0d\xe6\x57\xba\x63\x7b\x39\x1a\xaf\xd2\x55"),
- .ciphertext =
- (uint8_t *)
+ .ciphertext = (uint8_t *)
"\x52\x2d\xc1\xf0\x99\x56\x7d\x07\xf4\x7f\x37\xa3\x2a\x84\x42\x7d\x64\x3a\x8c\xdc\xbf\xe5\xc0\xc9\x75\x98\xa2\xbd\x25\x55\xd1\xaa\x8c\xb0\x8e\x48\x59\x0d\xbb\x3d\xa7\xb0\x8b\x10\x56\x82\x88\x38\xc5\xf6\x1e\x63\x93\xba\x7a\x0a\xbc\xc9\xf6\x62\x89\x80\x15\xad",
STR(iv, iv_size,
"\xca\xfe\xba\xbe\xfa\xce\xdb\xad\xde\xca\xf8\x88"),
.tag_size = 16,
- .tag =
- (void *)
+ .tag = (void *)
"\xb0\x94\xda\xc5\xd9\x34\x71\xbd\xec\x1a\x50\x22\x70\xe3\xcc\x6c"},
};
@@ -193,12 +191,12 @@ const struct cipher_aead_vectors_st aes256_ccm_vectors[] = {
STR(plaintext, plaintext_size,
"\xa8\x45\x34\x8e\xc8\xc5\xb5\xf1\x26\xf5\x0e\x76\xfe\xfd\x1b\x1e"),
.ciphertext = (void *)
- "\xcc\x88\x12\x61\xc6\xa7\xfa\x72\xb9\x6a\x17\x39\x17\x6b\x27\x7f",
+ "\xcc\x88\x12\x61\xc6\xa7\xfa\x72\xb9\x6a\x17\x39\x17\x6b\x27\x7f",
STR(iv, iv_size,
"\xdb\xd1\xa3\x63\x60\x24\xb7\xb4\x02\xda\x7d\x6f"),
.tag_size = 16,
.tag = (void *)
- "\x34\x72\xe1\x14\x5f\x2c\x0c\xbe\x14\x63\x49\x06\x2c\xf0\xe4\x23"},
+ "\x34\x72\xe1\x14\x5f\x2c\x0c\xbe\x14\x63\x49\x06\x2c\xf0\xe4\x23"},
{
.compat_apis = 0,
STR(key, key_size,
@@ -207,12 +205,12 @@ const struct cipher_aead_vectors_st aes256_ccm_vectors[] = {
STR(plaintext, plaintext_size,
"\xa9"),
.ciphertext = (void *)
- "\x9d",
+ "\x9d",
STR(iv, iv_size,
"\xdb\xd1\xa3\x63\x60\x24\xb7\xb4\x02\xda\x7d\x6f"),
.tag_size = 16,
.tag = (void *)
- "\x32\x61\xb1\xcf\x93\x14\x31\xe9\x9a\x32\x80\x67\x38\xec\xbd\x2a"},
+ "\x32\x61\xb1\xcf\x93\x14\x31\xe9\x9a\x32\x80\x67\x38\xec\xbd\x2a"},
};
const struct cipher_aead_vectors_st aes128_ccm_vectors[] = {
@@ -220,14 +218,15 @@ const struct cipher_aead_vectors_st aes128_ccm_vectors[] = {
.compat_apis = 0,
STR(key, key_size,
"\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF"),
- STR(auth, auth_size, "\x08\xD0\x84\x21\x43\x01\x00\x00\x00\x00\x48\xDE\xAC\x02\x05\x00\x00\x00\x55\xCF\x00\x00\x51\x52\x53\x54"),
+ STR(auth, auth_size,
+ "\x08\xD0\x84\x21\x43\x01\x00\x00\x00\x00\x48\xDE\xAC\x02\x05\x00\x00\x00\x55\xCF\x00\x00\x51\x52\x53\x54"),
.plaintext = NULL,
.plaintext_size = 0,
STR(iv, iv_size,
"\xAC\xDE\x48\x00\x00\x00\x00\x01\x00\x00\x00\x05\x02"),
.tag_size = 8,
.tag = (void *)
- "\x22\x3B\xC1\xEC\x84\x1A\xB5\x53"},
+ "\x22\x3B\xC1\xEC\x84\x1A\xB5\x53"},
{
.compat_apis = 0,
STR(key, key_size,
@@ -236,12 +235,12 @@ const struct cipher_aead_vectors_st aes128_ccm_vectors[] = {
STR(plaintext, plaintext_size,
"\x20\x21\x22\x23"),
.ciphertext = (void *)
- "\x71\x62\x01\x5b",
+ "\x71\x62\x01\x5b",
STR(iv, iv_size,
"\x10\x11\x12\x13\x14\x15\x16"),
.tag_size = 4,
.tag = (void *)
- "\x4d\xac\x25\x5d"},
+ "\x4d\xac\x25\x5d"},
/* from rfc3610 */
{
.compat_apis = 0,
@@ -251,12 +250,12 @@ const struct cipher_aead_vectors_st aes128_ccm_vectors[] = {
STR(plaintext, plaintext_size,
"\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E"),
.ciphertext = (void *)
- "\x01\x35\xD1\xB2\xC9\x5F\x41\xD5\xD1\xD4\xFE\xC1\x85\xD1\x66\xB8\x09\x4E\x99\x9D\xFE\xD9\x6C",
+ "\x01\x35\xD1\xB2\xC9\x5F\x41\xD5\xD1\xD4\xFE\xC1\x85\xD1\x66\xB8\x09\x4E\x99\x9D\xFE\xD9\x6C",
STR(iv, iv_size,
"\x00\x00\x00\x09\x08\x07\x06\xA0\xA1\xA2\xA3\xA4\xA5"),
.tag_size = 10,
.tag = (void *)
- "\x04\x8C\x56\x60\x2C\x97\xAC\xBB\x74\x90"},
+ "\x04\x8C\x56\x60\x2C\x97\xAC\xBB\x74\x90"},
{
.compat_apis = 0,
STR(key, key_size,
@@ -265,12 +264,12 @@ const struct cipher_aead_vectors_st aes128_ccm_vectors[] = {
STR(plaintext, plaintext_size,
"\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E"),
.ciphertext = (void *)
- "\x58\x8C\x97\x9A\x61\xC6\x63\xD2\xF0\x66\xD0\xC2\xC0\xF9\x89\x80\x6D\x5F\x6B\x61\xDA\xC3\x84",
+ "\x58\x8C\x97\x9A\x61\xC6\x63\xD2\xF0\x66\xD0\xC2\xC0\xF9\x89\x80\x6D\x5F\x6B\x61\xDA\xC3\x84",
STR(iv, iv_size,
"\x00\x00\x00\x03\x02\x01\x00\xA0\xA1\xA2\xA3\xA4\xA5"),
.tag_size = 8,
.tag = (void *)
- "\x17\xE8\xD1\x2C\xFD\xF9\x26\xE0"},
+ "\x17\xE8\xD1\x2C\xFD\xF9\x26\xE0"},
};
const struct cipher_vectors_st aes128_cbc_vectors[] = {
@@ -289,8 +288,7 @@ const struct cipher_vectors_st aes128_cbc_vectors[] = {
"\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c"),
STR(plaintext, plaintext_size,
"\xae\x2d\x8a\x57\x1e\x03\xac\x9c\x9e\xb7\x6f\xac\x45\xaf\x8e\x51"),
- .ciphertext =
- (uint8_t *)
+ .ciphertext = (uint8_t *)
"\x50\x86\xcb\x9b\x50\x72\x19\xee\x95\xdb\x11\x3a\x91\x76\x78\xb2",
STR(iv, iv_size,
"\x76\x49\xab\xac\x81\x19\xb2\x46\xce\xe9\x8e\x9b\x12\xe9\x19\x7d"),
@@ -365,27 +363,25 @@ const struct cipher_vectors_st tdes_cbc_vectors[] = {
},
};
-const struct cipher_vectors_st arcfour_vectors[] = { /* RFC6229 */
+const struct cipher_vectors_st arcfour_vectors[] = { /* RFC6229 */
{
STR(key, key_size,
"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18"),
STR(plaintext, plaintext_size,
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"),
.ciphertext = (uint8_t *)
- "\x05\x95\xe5\x7f\xe5\xf0\xbb\x3c\x70\x6e\xda\xc8\xa4\xb2\xdb\x11",
+ "\x05\x95\xe5\x7f\xe5\xf0\xbb\x3c\x70\x6e\xda\xc8\xa4\xb2\xdb\x11",
.iv = NULL,
- .iv_size = 0
- },
+ .iv_size = 0},
{
STR(key, key_size,
"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"),
STR(plaintext, plaintext_size,
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"),
.ciphertext = (uint8_t *)
- "\xea\xa6\xbd\x25\x88\x0b\xf9\x3d\x3f\x5d\x1e\x4c\xa2\x61\x1d\x91",
+ "\xea\xa6\xbd\x25\x88\x0b\xf9\x3d\x3f\x5d\x1e\x4c\xa2\x61\x1d\x91",
.iv = NULL,
- .iv_size = 0
- },
+ .iv_size = 0},
{
STR(key, key_size,
"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"),
@@ -394,20 +390,19 @@ const struct cipher_vectors_st arcfour_vectors[] = { /* RFC6229 */
.ciphertext = (uint8_t *)
"\x9a\xc7\xcc\x9a\x60\x9d\x1e\xf7\xb2\x93\x28\x99\xcd\xe4\x1b\x97",
.iv = NULL,
- .iv_size = 0
- },
+ .iv_size = 0},
};
-const struct cipher_vectors_st aes128_cfb8_vectors[] = { /* NIST 800-38a */
+const struct cipher_vectors_st aes128_cfb8_vectors[] = { /* NIST 800-38a */
{
STR(key, key_size,
"\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c"),
STR(plaintext, plaintext_size,
"\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
- "\xae\x2d"),
+ "\xae\x2d"),
.ciphertext = (uint8_t *)
- "\x3b\x79\x42\x4c\x9c\x0d\xd4\x36\xba\xce\x9e\x0e\xd4\x58\x6a\x4f"
- "\x32\xb9",
+ "\x3b\x79\x42\x4c\x9c\x0d\xd4\x36\xba\xce\x9e\x0e\xd4\x58\x6a\x4f"
+ "\x32\xb9",
STR(iv, iv_size,
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"),
/* the least significant 16 bytes of ciphertext */
@@ -416,17 +411,17 @@ const struct cipher_vectors_st aes128_cfb8_vectors[] = { /* NIST 800-38a */
},
};
-const struct cipher_vectors_st aes192_cfb8_vectors[] = { /* NIST 800-38a */
+const struct cipher_vectors_st aes192_cfb8_vectors[] = { /* NIST 800-38a */
{
STR(key, key_size,
"\x8e\x73\xb0\xf7\xda\x0e\x64\x52\xc8\x10\xf3\x2b\x80\x90\x79\xe5"
- "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b"),
+ "\x62\xf8\xea\xd2\x52\x2c\x6b\x7b"),
STR(plaintext, plaintext_size,
"\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
- "\xae\x2d"),
+ "\xae\x2d"),
.ciphertext = (uint8_t *)
- "\xcd\xa2\x52\x1e\xf0\xa9\x05\xca\x44\xcd\x05\x7c\xbf\x0d\x47\xa0"
- "\x67\x8a",
+ "\xcd\xa2\x52\x1e\xf0\xa9\x05\xca\x44\xcd\x05\x7c\xbf\x0d\x47\xa0"
+ "\x67\x8a",
STR(iv, iv_size,
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"),
/* the least significant 16 bytes of ciphertext */
@@ -435,17 +430,17 @@ const struct cipher_vectors_st aes192_cfb8_vectors[] = { /* NIST 800-38a */
},
};
-const struct cipher_vectors_st aes256_cfb8_vectors[] = { /* NIST 800-38a */
+const struct cipher_vectors_st aes256_cfb8_vectors[] = { /* NIST 800-38a */
{
STR(key, key_size,
"\x60\x3d\xeb\x10\x15\xca\x71\xbe\x2b\x73\xae\xf0\x85\x7d\x77\x81"
- "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4"),
+ "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4"),
STR(plaintext, plaintext_size,
"\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a"
- "\xae\x2d"),
+ "\xae\x2d"),
.ciphertext = (uint8_t *)
- "\xdc\x1f\x1a\x85\x20\xa6\x4d\xb5\x5f\xcc\x8a\xc5\x54\x84\x4e\x88"
- "\x97\x00",
+ "\xdc\x1f\x1a\x85\x20\xa6\x4d\xb5\x5f\xcc\x8a\xc5\x54\x84\x4e\x88"
+ "\x97\x00",
STR(iv, iv_size,
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"),
/* the least significant 16 bytes of ciphertext */
@@ -465,10 +460,10 @@ const struct cipher_vectors_st gost28147_cpa_cfb_vectors[] = {
STR(plaintext, plaintext_size,
"\xd2\xfd\xf8\x3a\xc1\xb4\x39\x23\x2e\xaa\xcc\x98\x0a\x02\xda\x33"),
.ciphertext = (uint8_t *)
- "\x88\xb7\x75\x16\x74\xa5\xee\x2d\x14\xfe\x91\x67\xd0\x5c\xcc\x40",
+ "\x88\xb7\x75\x16\x74\xa5\xee\x2d\x14\xfe\x91\x67\xd0\x5c\xcc\x40",
STR(iv, iv_size,
"\x46\x60\x6f\x0d\x88\x34\x23\x5a"),
- },
+ },
};
const struct cipher_vectors_st gost28147_cpb_cfb_vectors[] = {
@@ -482,13 +477,13 @@ const struct cipher_vectors_st gost28147_cpb_cfb_vectors[] = {
"\x7d\x50\xf1\x6f\x97\x62\x29\xec\x80\x51\xe3\x7d\x6c\xc4\x07\x95"
"\x28\x63\xdc\xb4\xb9\x2d\xb8\x13\xb1\x05\xb5\xf9\xeb\x75\x37"),
.ciphertext = (uint8_t *)
- "\x23\xc6\x7f\x20\xa1\x23\x58\xbc\x7b\x05\xdb\x21\x15\xcf\x96\x41"
- "\xc7\x88\xef\x76\x5c\x49\xdb\x42\xbf\xf3\xc0\xf5\xbd\x5d\xd9\x8e"
- "\xaf\x3d\xf4\xe4\xda\x88\xbd\xbc\x47\x5d\x76\x07\xc9\x5f\x54\x1d"
- "\x1d\x6a\xa1\x2e\x18\xd6\x60\x84\x02\x18\x37\x92\x92\x15\xab",
+ "\x23\xc6\x7f\x20\xa1\x23\x58\xbc\x7b\x05\xdb\x21\x15\xcf\x96\x41"
+ "\xc7\x88\xef\x76\x5c\x49\xdb\x42\xbf\xf3\xc0\xf5\xbd\x5d\xd9\x8e"
+ "\xaf\x3d\xf4\xe4\xda\x88\xbd\xbc\x47\x5d\x76\x07\xc9\x5f\x54\x1d"
+ "\x1d\x6a\xa1\x2e\x18\xd6\x60\x84\x02\x18\x37\x92\x92\x15\xab",
STR(iv, iv_size,
"\x1f\x3f\x82\x1e\x0d\xd8\x1e\x22"),
- },
+ },
};
const struct cipher_vectors_st gost28147_cpc_cfb_vectors[] = {
@@ -499,10 +494,10 @@ const struct cipher_vectors_st gost28147_cpc_cfb_vectors[] = {
STR(plaintext, plaintext_size,
"\x07\x9c\x91\xbe"),
.ciphertext = (uint8_t *)
- "\x19\x35\x81\x34",
+ "\x19\x35\x81\x34",
STR(iv, iv_size,
"\x43\x7c\x3e\x8e\x2f\x2a\x00\x98"),
- },
+ },
};
const struct cipher_vectors_st gost28147_cpd_cfb_vectors[] = {
@@ -513,10 +508,10 @@ const struct cipher_vectors_st gost28147_cpd_cfb_vectors[] = {
STR(plaintext, plaintext_size,
"\x2f\x31\xd8\x83\xb4\x20\xe8\x6e\xda"),
.ciphertext = (uint8_t *)
- "\x6d\xa4\xed\x40\x08\x88\x71\xad\x16",
+ "\x6d\xa4\xed\x40\x08\x88\x71\xad\x16",
STR(iv, iv_size,
"\xc5\xa2\xd2\x1f\x2f\xdf\xb8\xeb"),
- },
+ },
};
const struct cipher_vectors_st gost28147_tc26z_cfb_vectors[] = {
@@ -527,10 +522,10 @@ const struct cipher_vectors_st gost28147_tc26z_cfb_vectors[] = {
STR(plaintext, plaintext_size,
"\xd2\xfd\xf8\x3a\xc1\xb4\x39\x23\x2e\xaa\xcc\x98\x0a\x02\xda\x33"),
.ciphertext = (uint8_t *)
- "\xed\xa7\xf1\x41\x01\x9c\xbd\xcd\x44\x6b\x00\x96\x87\xf7\xc7\xe6",
+ "\xed\xa7\xf1\x41\x01\x9c\xbd\xcd\x44\x6b\x00\x96\x87\xf7\xc7\xe6",
STR(iv, iv_size,
"\x46\x60\x6f\x0d\x88\x34\x23\x5a"),
- },
+ },
};
const struct cipher_vectors_st gost28147_tc26z_cnt_vectors[] = {
@@ -541,10 +536,10 @@ const struct cipher_vectors_st gost28147_tc26z_cnt_vectors[] = {
STR(plaintext, plaintext_size,
"\x90\xa2\x39\x66\xae\x01\xb9\xa3\x52\x4e\xc8\xed\x6c\xdd\x88\x30"),
.ciphertext = (uint8_t *)
- "\xe8\xb1\x4f\xc7\x30\xdc\x25\xbb\x36\xba\x64\x3c\x17\xdb\xff\x99",
+ "\xe8\xb1\x4f\xc7\x30\xdc\x25\xbb\x36\xba\x64\x3c\x17\xdb\xff\x99",
STR(iv, iv_size,
"\x8d\xaf\xa8\xd1\x58\xed\x05\x8d"),
- }
+ }
};
/* Manually calculated to overcome section size differences between TLS cipher
@@ -621,79 +616,76 @@ const struct cipher_vectors_st magma_ctr_acpkm_vectors[] = {
"\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
"\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
-
- "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
- ),
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"),
.ciphertext = (uint8_t *)
- "\x2a\xb8\x1d\xee\xeb\x1e\x4c\xab\x68\xe1\x04\xc4\xbd\x6b\x94\xea"
- "\xc0\x4d\xdb\x07\xea\x92\x8f\xa2\x22\x0d\x97\x91\x83\x20\x78\x6b"
- "\x17\x0d\x8e\xaf\x6e\x3c\xa1\xab\xf2\x92\x93\x9a\xb1\x19\x54\xbb"
- "\xd3\x3f\x07\x38\x54\x26\x56\xed\xe3\xed\x4d\x54\x42\xb3\x0d\x0d"
- "\x43\xa1\x2e\xe8\xcf\x83\x81\x30\xe5\x90\xf3\x71\xe6\x7a\x42\xc3"
- "\xf8\x75\x91\xeb\xb8\xf7\xea\x17\xb3\xc4\xec\x9f\xa0\xca\x54\xd5"
- "\xbc\x42\x9b\x60\xd8\x90\xce\x61\xc1\xb4\x0d\x20\x52\x45\x0a\xfa"
- "\x77\xb4\x83\x54\xb4\x43\x77\x11\x50\x8f\xdc\xf4\xc4\x8f\x24\x2b"
- "\x84\xec\x97\xc9\xc1\x76\x3c\xf3\x17\x3c\x5a\xe8\x57\x86\x41\x22"
- "\xb6\x5b\x57\x29\xae\x1b\xb0\x75\x06\x95\xe5\xe2\x37\x93\x3b\x5a"
- "\xbe\x85\x5d\xb0\x16\x70\x5b\x53\x35\x57\x52\xdb\x87\x50\x89\x34"
- "\xa3\xd2\x1e\xc3\x83\x03\xbd\xdc\xc1\x24\xc3\xc9\x9d\xd7\x1b\x45"
- "\xfb\xcb\x4e\xd5\x64\x10\x5c\xe6\xc5\x93\x4d\xa9\x9b\xea\xed\xc5"
- "\xf4\x02\x30\x13\xbc\x41\x97\x81\x05\xb0\xcc\x6a\x39\x83\xe9\x05"
- "\x25\x11\x6e\x04\x63\x14\x6d\x85\x78\x9a\x09\xa7\x0d\x4c\x7b\xd7"
- "\xdf\xb1\x33\xeb\xbf\xeb\x92\x58\xf3\xda\x9d\xed\x8e\xf9\x8a\x3c"
- "\x71\x8d\x19\x67\x1a\x12\x49\xdf\x0e\xb1\x88\x3c\x9e\xf5\x1b\x77"
- "\x13\x60\x80\x1a\x28\x46\xa0\x48\x31\xec\xc2\xcb\xe7\xe7\x72\xdb"
- "\x92\x2a\x7b\x04\xd0\xa3\xd0\x17\x8c\xb2\x4d\xb3\xa2\x43\x16\x17"
- "\x8d\xec\x78\xf0\xdd\xe5\x60\x07\x77\x49\x66\xad\xb3\x36\xdd\xe4"
- "\xc9\xef\xf7\x6d\xe4\x00\xfc\x9c\x5b\x9d\x8a\x65\x58\xbb\xbd\x5c"
- "\xfe\x18\xe6\x97\x83\xd1\xae\x20\xed\x12\xac\xe5\x29\x7f\x58\xab"
- "\x83\xea\xd2\x92\xea\x17\x00\xaf\x2b\x55\x43\x7c\x5b\x17\xf2\x91"
- "\x0e\x79\x0b\x95\xb4\xe0\x4a\xb0\x55\x62\xe5\x5d\xda\x55\x02\xd6"
- "\xa1\xea\x99\x73\x16\x59\xb3\x3e\xc9\x86\x92\x1d\xb2\x1a\xf1\x4e"
- "\x6b\x2e\xeb\x49\x7d\xf6\x35\xc0\x23\xae\xb5\x56\xff\x90\xe7\xc5"
- "\xc5\x4c\xef\xea\x8f\x9e\xf1\xc2\xd0\x1c\xee\xef\xb7\xac\x0c\x0c"
- "\x43\xdf\xcc\x8e\x95\xe2\xd3\xd5\x9f\x17\x81\x85\x66\x87\x7e\xdb"
- "\x5e\x45\xde\xb2\x45\x95\x69\x90\x75\x80\xc1\x5e\x0c\x3d\xe8\xd9"
- "\x9a\x17\xc5\x62\x49\x90\xa6\x54\x68\xc2\xfa\xb0\x96\xc9\xac\x42"
- "\x9e\xa9\x6f\x33\x0c\x5b\xc2\xc5\x81\xc1\xc5\x5d\x91\x44\xb7\x48"
- "\xd0\x32\xc6\x7d\x99\xa1\xad\x43\x6c\xba\xc5\xf5\x10\xbd\xf2\x44"
- "\x75\x36\xe8\x7e\x91\x21\x8c\x16\xce\x74\xa4\xc2\x3d\x18\x28\x1a"
- "\x82\x79\x04\x3e\x15\x73\x22\x30\x7a\x33\x7f\x76\x63\xbc\x9b\x0b"
- "\xcb\x3c\xe2\x3d\x66\x22\x28\x20\x1c\xc3\x43\x12\x89\x2d\x05\x51"
- "\x0b\x65\x2b\xf3\xca\x0f\x21\xd7\x57\xac\xa9\x4d\x4f\xd0\x03\x13"
- "\x89\x94\xec\xad\x38\x9b\x95\xaf\xf8\x0a\xc5\xb0\x8b\xb3\x57\xcd"
- "\xdd\xe7\xa3\xfe\x3e\x84\x35\xad\xe6\x87\x69\xd5\xb7\xc5\xf0\xde"
- "\xcc\xc7\x81\x59\xd7\x52\x4b\xa1\x77\x8f\xec\x6a\x9d\xcd\x0d\x08"
- "\xa7\xbf\x32\x6b\x5a\xa3\xc8\x4a\x0b\xde\x8c\xf8\x12\x86\xf1\x6b"
- "\x78\x86\xaf\xf3\x49\x78\x81\x5b\x9d\x6b\xe9\xf7\x59\xe2\x36\xea"
- "\xab\x40\x87\x1b\x0b\x2a\x70\x9b\x4c\x29\x3f\x3d\x5a\xfb\x09\x11"
- "\x9a\x39\xfc\x41\x65\xac\x64\xbd\xfd\x8b\xf3\x09\x1b\x13\xde\x38"
- "\x5b\x35\x0e\xce\x71\xab\x87\x99\x82\xd4\x26\x5c\x5d\x4d\x5b\xfe"
- "\xe8\x33\x11\x37\xf8\x3b\x16\x93\x20\xbe\x47\x68\xd9\x19\x94\x17"
- "\xdf\x56\xce\xbf\x82\x34\x75\x74\x7a\x39\xb3\xb5\xc3\x54\x86\x30"
- "\x33\x7e\xbd\xe7\xd9\x24\x18\x8f\xbf\xc1\x69\x28\x75\x37\xb6\x90"
- "\x2e\x4c\x71\x88\xcf\xfe\x90\xd6\xe5\x3d\xf3\xf2\x42\x8f\xee\x76"
- "\x00\xb8\x84\x5f\xeb\xbc\x5d\x46\xcd\xa6\x13\xaf\x3b\x37\xae\xb4"
- "\x82\xd5\x37\x88\x86\x94\x0f\xd8\x00\x0b\x97\x86\xa3\x91\x43\x8f"
- "\x05\x40\x04\xdb\x7c\x17\x5e\xbf\xf0\x07\x29\x94\x34\x04\x6b\x1f"
- "\x32\xa0\xa3\x30\x1a\xc8\x72\xde\xd7\x42\xfe\xb8\xe2\x2e\x6c\xe9"
- "\x71\x3e\xe5\x9a\x6c\x83\xc1\x75\xc2\x04\xfb\x8d\x45\x4a\x52\x7a"
- "\xac\xca\x87\x7a\xf3\x88\x42\x42\xfb\x40\x71\x67\xc0\xa7\xcc\x10"
- "\x30\x32\xc2\x7e\x3d\x93\x40\xb6\xb2\x53\xcd\xe4\x23\x4b\x5a\x99"
- "\x20\xfe\xe9\xef\xce\x82\xb0\x0f\x4e\x21\xa6\xc0\xad\x6a\x7b\x08"
- "\xb9\x33\x6b\xc2\x35\x5e\x0d\x6e\xd5\x9d\x65\xef\x70\x5d\xc7\x02"
- "\xa8\x4e\x5e\x80\xb1\x9c\xa8\x50\xfd\x25\x44\x0d\xe6\x78\x8c\xd9"
- "\x18\x01\x43\xd0\xee\x9f\xa7\x68\xd9\x37\xf3\x5e\xcb\xf6\x08\x92"
- "\x75\x02\x65\xee\xcf\xed\xdc\xe5\x3f\x6d\x9f\x84\x75\x39\x93\x27"
- "\xff\xc5\x97\x37\x6e\xc7\x60\x9c\x1d\x39\x4d\xbc\x27\xa2\xe5\x85"
- "\x05\xa4\x3d\x28\xce\x42\x51\x81\xd5\xcb\xbd\x83\x11\x13\x05\x93"
- "\x4f\x70\xb3\x97\xa9\xfa\x14\x95\x77\xc5\x1e\x40\xd0\x4d\x77\xef"
- "\xa8\x53\xfc\x26\x30\xd4\xfe\xda\xd0\x74\x58\x38\x21\xc0\xbb\x21"
-
- "\xd9\x6a\xf3\xcc\x57\x01\xcb\xbb\x01\x9a\x99\xe6\x4e\xaf\xf2\x32",
+ "\x2a\xb8\x1d\xee\xeb\x1e\x4c\xab\x68\xe1\x04\xc4\xbd\x6b\x94\xea"
+ "\xc0\x4d\xdb\x07\xea\x92\x8f\xa2\x22\x0d\x97\x91\x83\x20\x78\x6b"
+ "\x17\x0d\x8e\xaf\x6e\x3c\xa1\xab\xf2\x92\x93\x9a\xb1\x19\x54\xbb"
+ "\xd3\x3f\x07\x38\x54\x26\x56\xed\xe3\xed\x4d\x54\x42\xb3\x0d\x0d"
+ "\x43\xa1\x2e\xe8\xcf\x83\x81\x30\xe5\x90\xf3\x71\xe6\x7a\x42\xc3"
+ "\xf8\x75\x91\xeb\xb8\xf7\xea\x17\xb3\xc4\xec\x9f\xa0\xca\x54\xd5"
+ "\xbc\x42\x9b\x60\xd8\x90\xce\x61\xc1\xb4\x0d\x20\x52\x45\x0a\xfa"
+ "\x77\xb4\x83\x54\xb4\x43\x77\x11\x50\x8f\xdc\xf4\xc4\x8f\x24\x2b"
+ "\x84\xec\x97\xc9\xc1\x76\x3c\xf3\x17\x3c\x5a\xe8\x57\x86\x41\x22"
+ "\xb6\x5b\x57\x29\xae\x1b\xb0\x75\x06\x95\xe5\xe2\x37\x93\x3b\x5a"
+ "\xbe\x85\x5d\xb0\x16\x70\x5b\x53\x35\x57\x52\xdb\x87\x50\x89\x34"
+ "\xa3\xd2\x1e\xc3\x83\x03\xbd\xdc\xc1\x24\xc3\xc9\x9d\xd7\x1b\x45"
+ "\xfb\xcb\x4e\xd5\x64\x10\x5c\xe6\xc5\x93\x4d\xa9\x9b\xea\xed\xc5"
+ "\xf4\x02\x30\x13\xbc\x41\x97\x81\x05\xb0\xcc\x6a\x39\x83\xe9\x05"
+ "\x25\x11\x6e\x04\x63\x14\x6d\x85\x78\x9a\x09\xa7\x0d\x4c\x7b\xd7"
+ "\xdf\xb1\x33\xeb\xbf\xeb\x92\x58\xf3\xda\x9d\xed\x8e\xf9\x8a\x3c"
+ "\x71\x8d\x19\x67\x1a\x12\x49\xdf\x0e\xb1\x88\x3c\x9e\xf5\x1b\x77"
+ "\x13\x60\x80\x1a\x28\x46\xa0\x48\x31\xec\xc2\xcb\xe7\xe7\x72\xdb"
+ "\x92\x2a\x7b\x04\xd0\xa3\xd0\x17\x8c\xb2\x4d\xb3\xa2\x43\x16\x17"
+ "\x8d\xec\x78\xf0\xdd\xe5\x60\x07\x77\x49\x66\xad\xb3\x36\xdd\xe4"
+ "\xc9\xef\xf7\x6d\xe4\x00\xfc\x9c\x5b\x9d\x8a\x65\x58\xbb\xbd\x5c"
+ "\xfe\x18\xe6\x97\x83\xd1\xae\x20\xed\x12\xac\xe5\x29\x7f\x58\xab"
+ "\x83\xea\xd2\x92\xea\x17\x00\xaf\x2b\x55\x43\x7c\x5b\x17\xf2\x91"
+ "\x0e\x79\x0b\x95\xb4\xe0\x4a\xb0\x55\x62\xe5\x5d\xda\x55\x02\xd6"
+ "\xa1\xea\x99\x73\x16\x59\xb3\x3e\xc9\x86\x92\x1d\xb2\x1a\xf1\x4e"
+ "\x6b\x2e\xeb\x49\x7d\xf6\x35\xc0\x23\xae\xb5\x56\xff\x90\xe7\xc5"
+ "\xc5\x4c\xef\xea\x8f\x9e\xf1\xc2\xd0\x1c\xee\xef\xb7\xac\x0c\x0c"
+ "\x43\xdf\xcc\x8e\x95\xe2\xd3\xd5\x9f\x17\x81\x85\x66\x87\x7e\xdb"
+ "\x5e\x45\xde\xb2\x45\x95\x69\x90\x75\x80\xc1\x5e\x0c\x3d\xe8\xd9"
+ "\x9a\x17\xc5\x62\x49\x90\xa6\x54\x68\xc2\xfa\xb0\x96\xc9\xac\x42"
+ "\x9e\xa9\x6f\x33\x0c\x5b\xc2\xc5\x81\xc1\xc5\x5d\x91\x44\xb7\x48"
+ "\xd0\x32\xc6\x7d\x99\xa1\xad\x43\x6c\xba\xc5\xf5\x10\xbd\xf2\x44"
+ "\x75\x36\xe8\x7e\x91\x21\x8c\x16\xce\x74\xa4\xc2\x3d\x18\x28\x1a"
+ "\x82\x79\x04\x3e\x15\x73\x22\x30\x7a\x33\x7f\x76\x63\xbc\x9b\x0b"
+ "\xcb\x3c\xe2\x3d\x66\x22\x28\x20\x1c\xc3\x43\x12\x89\x2d\x05\x51"
+ "\x0b\x65\x2b\xf3\xca\x0f\x21\xd7\x57\xac\xa9\x4d\x4f\xd0\x03\x13"
+ "\x89\x94\xec\xad\x38\x9b\x95\xaf\xf8\x0a\xc5\xb0\x8b\xb3\x57\xcd"
+ "\xdd\xe7\xa3\xfe\x3e\x84\x35\xad\xe6\x87\x69\xd5\xb7\xc5\xf0\xde"
+ "\xcc\xc7\x81\x59\xd7\x52\x4b\xa1\x77\x8f\xec\x6a\x9d\xcd\x0d\x08"
+ "\xa7\xbf\x32\x6b\x5a\xa3\xc8\x4a\x0b\xde\x8c\xf8\x12\x86\xf1\x6b"
+ "\x78\x86\xaf\xf3\x49\x78\x81\x5b\x9d\x6b\xe9\xf7\x59\xe2\x36\xea"
+ "\xab\x40\x87\x1b\x0b\x2a\x70\x9b\x4c\x29\x3f\x3d\x5a\xfb\x09\x11"
+ "\x9a\x39\xfc\x41\x65\xac\x64\xbd\xfd\x8b\xf3\x09\x1b\x13\xde\x38"
+ "\x5b\x35\x0e\xce\x71\xab\x87\x99\x82\xd4\x26\x5c\x5d\x4d\x5b\xfe"
+ "\xe8\x33\x11\x37\xf8\x3b\x16\x93\x20\xbe\x47\x68\xd9\x19\x94\x17"
+ "\xdf\x56\xce\xbf\x82\x34\x75\x74\x7a\x39\xb3\xb5\xc3\x54\x86\x30"
+ "\x33\x7e\xbd\xe7\xd9\x24\x18\x8f\xbf\xc1\x69\x28\x75\x37\xb6\x90"
+ "\x2e\x4c\x71\x88\xcf\xfe\x90\xd6\xe5\x3d\xf3\xf2\x42\x8f\xee\x76"
+ "\x00\xb8\x84\x5f\xeb\xbc\x5d\x46\xcd\xa6\x13\xaf\x3b\x37\xae\xb4"
+ "\x82\xd5\x37\x88\x86\x94\x0f\xd8\x00\x0b\x97\x86\xa3\x91\x43\x8f"
+ "\x05\x40\x04\xdb\x7c\x17\x5e\xbf\xf0\x07\x29\x94\x34\x04\x6b\x1f"
+ "\x32\xa0\xa3\x30\x1a\xc8\x72\xde\xd7\x42\xfe\xb8\xe2\x2e\x6c\xe9"
+ "\x71\x3e\xe5\x9a\x6c\x83\xc1\x75\xc2\x04\xfb\x8d\x45\x4a\x52\x7a"
+ "\xac\xca\x87\x7a\xf3\x88\x42\x42\xfb\x40\x71\x67\xc0\xa7\xcc\x10"
+ "\x30\x32\xc2\x7e\x3d\x93\x40\xb6\xb2\x53\xcd\xe4\x23\x4b\x5a\x99"
+ "\x20\xfe\xe9\xef\xce\x82\xb0\x0f\x4e\x21\xa6\xc0\xad\x6a\x7b\x08"
+ "\xb9\x33\x6b\xc2\x35\x5e\x0d\x6e\xd5\x9d\x65\xef\x70\x5d\xc7\x02"
+ "\xa8\x4e\x5e\x80\xb1\x9c\xa8\x50\xfd\x25\x44\x0d\xe6\x78\x8c\xd9"
+ "\x18\x01\x43\xd0\xee\x9f\xa7\x68\xd9\x37\xf3\x5e\xcb\xf6\x08\x92"
+ "\x75\x02\x65\xee\xcf\xed\xdc\xe5\x3f\x6d\x9f\x84\x75\x39\x93\x27"
+ "\xff\xc5\x97\x37\x6e\xc7\x60\x9c\x1d\x39\x4d\xbc\x27\xa2\xe5\x85"
+ "\x05\xa4\x3d\x28\xce\x42\x51\x81\xd5\xcb\xbd\x83\x11\x13\x05\x93"
+ "\x4f\x70\xb3\x97\xa9\xfa\x14\x95\x77\xc5\x1e\x40\xd0\x4d\x77\xef"
+ "\xa8\x53\xfc\x26\x30\xd4\xfe\xda\xd0\x74\x58\x38\x21\xc0\xbb\x21"
+ "\xd9\x6a\xf3\xcc\x57\x01\xcb\xbb\x01\x9a\x99\xe6\x4e\xaf\xf2\x32",
STR(iv, iv_size,
"\x12\x34\x56\x78\x00\x00\x00\x00"),
- }
+ }
};
/* Manually calculated to overcome section size differences between TLS cipher
@@ -962,294 +954,292 @@ const struct cipher_vectors_st kuznyechik_ctr_acpkm_vectors[] = {
"\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
"\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
"\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"
-
- "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
- ),
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"),
.ciphertext = (uint8_t *)
- "\xf1\x95\xd8\xbe\xc1\x0e\xd1\xdb\xd5\x7b\x5f\xa2\x40\xbd\xa1\xb8"
- "\x85\xee\xe7\x33\xf6\xa1\x3e\x5d\xf3\x3c\xe4\xb3\x3c\x45\xde\xe4"
- "\xa5\xea\xe8\x8b\xe6\x35\x6e\xd3\xd5\xe8\x77\xf1\x35\x64\xa3\xa5"
- "\xcb\x91\xfa\xb1\xf2\x0c\xba\xb6\xd1\xc6\xd1\x58\x20\xbd\xba\x73"
- "\x7e\x08\xf5\x9f\x71\xb8\x56\x08\xe3\x89\x55\xb1\x7b\x53\xed\x27"
- "\xee\x04\xce\x2c\x02\xae\xf0\x75\x8f\x5d\x64\x77\xea\x0a\x79\xb2"
- "\x9f\xc0\xb0\x9a\xf0\x93\xd5\xbf\xb9\xdf\xab\x18\x25\xf7\x51\xc9"
- "\x82\x69\x88\x08\x00\x2b\x35\x8e\x2c\x2f\x7c\x01\xdc\x31\x56\x1d"
- "\x52\xb4\xca\x07\xbf\x02\xa5\x9a\x80\x88\x91\x19\xf1\x26\x0b\x7f"
- "\x9d\x3e\x1c\xe5\xf9\x92\x1a\xf5\xb5\x53\xed\x1e\x1a\xdf\xdc\x53"
- "\x9e\x2e\x79\x65\xbd\x7b\x48\x48\x57\x58\x90\x76\x40\x57\x86\x76"
- "\x7d\xe3\xb2\x82\x06\xed\xeb\xce\x35\x1b\xcc\x5c\xee\x54\xe4\x3f"
- "\x53\x4b\xb5\x0d\x07\x0a\x2d\x0c\xb7\xcf\x7c\xf8\x81\xad\x32\x01"
- "\x26\x50\x0f\xe9\x32\xf3\xd7\xc9\xf0\x86\xab\xb8\xf8\xea\x72\x3a"
- "\x9a\x17\x48\x12\xa5\xbb\x3b\xa9\x6d\x01\x51\x82\xc0\xe2\x98\x4d"
- "\x69\x3c\xbd\x67\x6a\xa0\xb1\x7d\x7a\xa8\x2c\xb8\xe2\xb9\xf6\x68"
- "\xfa\xeb\xae\x0d\x41\xcb\xb0\xfe\xe5\x55\x65\xb6\x5d\x56\xe5\x05"
- "\x20\x08\x51\x77\x7c\x18\x3a\x25\x69\xaa\xa2\x39\x68\xcf\xd1\x3e"
- "\x51\x47\xb5\xd8\x13\xcc\xaf\x2d\x31\xd5\x28\xae\x61\x48\xe6\x9a"
- "\x0a\xd8\x30\x0b\x1f\x7c\xef\x3d\x32\xa5\x40\x05\x41\xdf\x84\x1e"
- "\xce\xde\xca\x31\x42\xa6\xc4\xbc\x2b\x56\xb7\x7e\xa6\x22\x1f\x85"
- "\x7b\xe8\x80\x01\xc1\xff\x78\x45\x14\xb5\x4d\x9b\xe3\x21\xf7\xb8"
- "\x13\xd5\x44\x3d\x6f\x33\x85\x46\x56\x07\x79\x15\xb4\xec\xe5\xfd"
- "\x34\x35\xc8\x8a\x5f\x4d\x58\x84\x82\x9d\xb6\x4d\x0e\x90\x65\xb0"
- "\x5e\x61\x83\x30\x3d\x51\x34\xe3\x0e\x6e\x78\x05\xc8\x6d\x1e\x7d"
- "\x76\xe2\x3d\x85\x33\x82\x42\x7c\x7d\x67\x33\xbb\x60\x5e\x4d\xb0"
- "\xc8\xd0\x7a\x6c\xbe\x4e\xc8\xc4\x82\x9d\xb6\x25\x56\xc9\x1b\x52"
- "\x3b\x9b\x4a\xf5\x8f\x67\x12\xd5\x41\x60\xe6\x97\x08\x90\x7b\x17"
- "\x3b\xf9\x1c\x82\x0d\x15\x0a\x3d\x1b\x27\xd4\x46\xd6\x91\x5c\x74"
- "\x48\x45\x1a\x4c\x60\x26\xf3\xe3\x1f\xe7\x0a\xfc\x79\x42\x8a\x5f"
- "\x5f\x5b\x33\xf4\xb3\xda\xbd\x4c\x4a\x10\x5e\x3b\x9d\x09\xf8\xf2"
- "\x51\x25\x44\x37\x7b\xca\x88\xf0\x88\xa9\x5d\x2e\x9e\x42\xf6\xac"
- "\x3d\xd6\x01\x06\x06\x5c\x96\x4b\x13\xf5\x5f\xaa\x06\x34\x16\x67"
- "\xfd\xa5\x49\x12\xcc\x21\x8f\xb4\xb9\x33\xfc\x58\xf0\x36\xeb\xd7"
- "\x50\xf2\x38\x39\x9e\x93\x7b\xf7\xf5\xc7\x9c\x73\x36\x1f\xbe\xa9"
- "\x49\xf9\x2c\x4f\x17\xfc\xb3\x64\x51\x68\xaf\xed\xe3\x43\xbf\x2f"
- "\x3f\x57\xbb\x74\x93\x51\xc4\x93\x1e\x2e\x05\xed\xda\x74\x27\x1b"
- "\x7b\xa8\x98\x3e\xa6\x62\x75\xbd\x68\xab\x44\xe8\xe4\x2d\x2f\x08"
- "\x44\x64\x85\xa6\x42\xfe\xdb\x11\xb5\xbc\x1a\x83\xc4\x58\x7a\xd1"
- "\x0d\x64\xa2\xdb\xd5\x4c\x3a\xd7\x2a\xd8\xc7\x0b\xf5\x33\x80\xe2"
- "\xaa\xc6\xaf\xad\xee\x39\x83\x1c\xfb\xda\x39\xd6\xe4\xbe\x6f\xde"
- "\x46\xd1\xdc\xc8\x77\x3b\x42\x3a\x19\x83\xdb\x79\x5e\x9d\xd9\xef"
- "\xe7\x54\x9e\xfa\xde\x56\x26\x0e\x33\x44\xb6\xac\xc7\x25\x1f\x0b"
- "\xd0\x12\x4a\x75\x6f\xef\x9f\xb7\xe7\xf1\xc3\xb2\x77\xa7\x01\xc1"
- "\x24\xf2\x60\xf2\x04\xa4\x07\x47\x25\x81\x2a\x51\x36\x1d\xb3\x42"
- "\x3c\xc5\x12\xbb\x53\x89\xc3\x00\xb4\xe8\x0e\xd8\xed\x5d\x9c\x18"
- "\x08\x16\x05\x57\x22\x99\xc1\xcb\x97\x4d\x7d\x42\xb0\xbf\xf3\x35"
- "\x9e\xc9\xc0\x4e\xe6\x42\xec\x49\x06\x5e\x50\x7f\x6c\x86\x20\x9e"
- "\xe0\x49\x6a\x1d\x50\x45\x52\x3d\x66\xdc\x66\xb2\xa1\x57\xbb\x1d"
- "\x65\x30\xf9\x3e\x6c\x8b\xf8\x07\x5e\xf9\xb0\xcf\x15\x1f\xa4\x22"
- "\xe6\x28\xdf\x40\x44\x27\x80\x99\xbf\xcc\x86\x94\x3d\xe1\x97\xbc"
- "\x64\x7b\xc9\x8a\xc8\xb7\xdd\x8e\xd9\x95\xfa\x97\x44\x59\x70\xb6"
- "\xa4\x59\xdd\x94\x2a\x4e\x71\x76\xe1\xf8\xff\x2e\xef\xf7\xf3\x26"
- "\x0d\xeb\x63\x9b\x34\x74\xcf\xc7\xe4\x99\xb3\x8b\xe5\xf8\xfa\xf8"
- "\x60\x6a\x8f\x16\xfe\xb3\x12\xe8\x66\x5c\x26\x61\x11\xaa\x14\x85"
- "\x5e\x4c\x0f\xf8\x47\x99\x49\x4c\x22\xa5\x37\xb7\x4b\xed\x1d\x33"
- "\x54\xe4\x6f\xfe\x4b\x7e\x95\x44\x56\xa9\xa9\x48\x6f\x40\x08\x42"
- "\x28\xa0\xd6\x8e\x52\x72\x84\x87\xd5\xcc\x08\xf4\x34\x9b\xc7\xf7"
- "\x92\xac\x5d\x5a\x30\x4c\x87\xc2\x2c\x94\x68\x10\x03\x02\x8c\x38"
- "\x6e\xf6\xca\xd1\xd6\x55\x02\x3c\x3a\xf4\x21\x1c\x90\x03\x7c\x33"
- "\xcd\x81\x93\x3f\x4c\xa1\xe6\x7c\x7d\x27\xaf\x97\x7a\xd8\xb0\x32"
- "\xcb\x1f\xb6\x5d\xb0\x7c\x9e\xf7\x15\x6a\x29\xc9\xb3\x13\x8e\xb2"
- "\x2e\xf2\x9d\xb2\x64\xe9\xc7\x13\x86\xc3\x46\x97\x9e\x53\x37\xac"
- "\xd1\x75\x0b\xe2\x20\x4a\x5e\x3a\x47\xdf\xb3\x67\x78\x23\x22\xa6"
- "\xb6\x69\x83\x1b\x41\xe1\xdc\xe3\xbb\x63\x8e\x6a\x70\xe2\x91\x30"
- "\xa2\x48\x43\x07\x9b\xf1\x87\x9d\xd9\x2f\x36\x62\xaf\x51\x70\x10"
- "\x5d\x68\x42\x6e\x95\xe6\x86\x85\x90\x08\x80\x42\xc6\x11\x7d\x38"
- "\x37\x94\xc7\x7a\x9d\xec\xff\x87\x15\x0d\x30\x42\x7d\xbf\xb0\x21"
- "\xa8\x28\xc3\xa9\x56\x31\xda\x2e\x91\x8d\x0d\x78\x93\xe2\x4d\x7f"
- "\xb3\xdb\x87\x5b\xf2\x2a\x55\x54\xc4\x1a\x47\x9b\x51\x79\x2c\x55"
- "\xaa\xaf\x57\x89\x90\x32\x26\xfa\xcf\x26\x3d\xbd\xc3\x59\x7e\x4b"
- "\x53\x7a\xa3\xf8\xec\x31\x3e\x9f\x22\x33\x41\xec\xe5\xf1\x50\x41"
- "\x57\x64\x37\x0e\x24\x0f\x03\x0c\x93\xaf\xd7\x44\xef\x33\xf9\x96"
- "\x8e\x63\x9c\x79\x09\xdf\x58\xdb\xcd\xd2\xf2\x81\xed\x97\x28\x5e"
- "\x6d\x99\x45\xad\xf1\xa4\xe8\x59\xaa\xeb\x59\xbd\xfa\x54\x27\xe2"
- "\x01\x6d\xfa\x08\xe5\x1a\x46\x92\x31\xa0\xfd\x2e\x25\x21\x5e\x9d"
- "\x1d\x41\x82\x16\x21\xea\xe8\x29\x5a\xe7\xd4\xd8\x7c\x91\x6d\xa8"
- "\x69\xa8\x6b\xac\xf9\x3d\x2c\x07\xfa\xaf\x65\x5e\x84\x63\x5c\x1c"
- "\xb6\x71\x1c\x6e\x1a\x1a\xcf\x5f\x39\x08\x02\xeb\xde\x75\x28\x44"
- "\x90\x3b\x6d\x09\xf5\xa4\x3a\x00\x99\xc1\x6e\xb8\x23\x47\xb6\xe6"
- "\x44\x69\x24\x86\x0d\x93\x7d\xc2\x1a\xe7\xf8\x97\x97\x6d\x2f\x7d"
- "\x6a\x3e\xd7\x6d\x94\xbe\x9b\xfa\x7d\x40\xff\x35\x7e\x2d\x9c\x50"
- "\x71\xf8\x99\x5f\xf3\x53\x16\x59\x77\x72\x4b\xef\x8d\x21\x8c\x28"
- "\x15\x8a\x57\x6d\x3d\x35\xf4\x2c\x37\x39\x0e\x97\x8f\xd3\x45\x17"
- "\xac\x0b\xa2\xaa\x16\xe7\x98\x70\xbd\x91\x4b\x7b\xc9\x14\x5b\x85"
- "\x29\xe5\xd9\x20\xa6\xf3\x89\x63\xc8\x01\x94\x2c\x20\xb0\xf1\x1c"
- "\x61\x90\x5b\xe8\xaf\xdb\xe2\x20\x62\x4f\xd0\x3c\x51\x1f\x5f\x14"
- "\x28\x13\x07\x5e\xbc\x4a\xa0\x46\xa7\x9c\xc7\x00\x24\xb4\x67\x0d"
- "\x9c\xe8\x05\xa7\xe3\x37\x94\xd3\x97\xc5\xd6\x1d\xb3\x79\x0c\x7f"
- "\xf0\xeb\x68\xa7\xa9\x75\x30\x3c\xf1\xf8\xfb\x96\x4b\xa5\x99\xb1"
- "\xf0\x71\xab\xb4\x8a\xa6\x5d\x97\xb5\x6f\x42\x81\xef\x38\x0e\x41"
- "\x21\xcd\x15\xe4\xf1\xdc\x02\xc2\xe5\xe4\xb2\xf2\xdb\xc5\x42\x0f"
- "\xeb\x00\xb8\x49\x48\x90\x97\x59\x69\x8c\x3d\x90\xfa\x7f\xaf\x75"
- "\xff\xe8\x0f\xff\x13\x2f\x7a\xca\x33\xbc\xb0\x41\x7b\xd4\x94\xce"
- "\xd5\xd7\x53\xe5\x36\x9d\xea\x0c\x13\x60\x63\xd9\x79\x83\x53\x03"
- "\x3c\x5f\x33\x6b\x16\xd2\xd6\x07\xbd\xbc\xa9\xcd\xd6\x21\x58\x8a"
- "\x90\xac\x85\x7c\x0a\x85\xf1\x02\xfd\x6c\x5b\xac\x92\xa5\x6f\xfc"
- "\x02\x60\xb3\x05\x91\x31\x80\xd5\x75\x82\xa8\xab\xcc\x7b\x47\xdb"
- "\x79\xaf\x85\xea\x75\x2d\xf4\x46\x45\xa6\x24\x35\x2d\xba\x9e\x19"
- "\x4e\x48\xb3\x5f\x40\x96\x6c\x73\x44\x09\x67\x27\xee\xdb\xdb\xca"
- "\xf6\x14\x3f\x32\xdf\x3b\xd3\xcb\x87\x48\x6b\x03\xda\xfe\xb5\x20"
- "\xf8\x72\xd0\xe4\x65\xfd\x14\x5d\x9b\xd3\xc5\x67\x4b\x41\xf4\xcb"
- "\xac\xe4\xce\x61\xe0\x06\x8e\xb6\xca\xef\xa5\xe4\x70\xd4\xff\x4f"
- "\x4c\x81\xb7\xc7\xc1\xe3\x1d\x6b\xfe\x44\x37\xfe\x7e\xb4\xec\xda"
- "\x55\xbc\x26\xdd\x44\x08\x28\x49\x19\xc9\x52\x20\x4a\x5e\xe1\xae"
- "\x6b\x87\x35\xa2\x9a\x02\x17\xb0\x74\xe1\x19\x92\xca\x5d\x34\x81"
- "\xd7\x3f\xb1\x14\xe2\x44\x97\x7f\xab\x0a\xc3\x44\x8d\x9c\xe6\x27"
- "\x84\x5e\x2e\xe1\x0e\x7b\x74\xee\x47\xe2\x6f\x79\x3a\x0d\x25\x90"
- "\x9b\x32\x13\x78\xd3\xd1\x19\x10\xb7\x88\xc4\xb4\xb8\x0f\x84\x0c"
- "\xc4\x6d\xb3\xbc\xbc\xea\x1d\x84\xfe\x6f\x95\x1e\x44\x78\xbb\x73"
- "\xd0\x08\x8b\xbe\xae\x91\x6f\x84\xeb\x6c\x05\x58\x3a\xb7\x68\xee"
- "\x62\x14\x0b\xba\xd3\xd6\x78\x23\x35\x03\x2f\xed\xac\xf2\x35\xa7"
- "\x0b\xf5\x37\xa1\xa5\x4d\x57\x0e\x2e\x5e\x0d\x0c\xd6\x04\xc8\x07"
- "\x60\xe6\xda\xd9\x55\x16\xf6\xc6\x0c\x53\xc0\x46\xa8\x91\xa6\xdd"
- "\x22\x99\x88\x9f\x23\x93\x64\x81\xdb\x4b\xe8\x99\x1e\x16\x5c\xb5"
- "\x08\xc0\x74\xf9\x79\xd3\xc1\x6a\xe5\x38\x6b\xcd\xf0\xcb\x1e\xb8"
- "\x5c\x6b\x14\xd6\x85\x58\xa3\xc8\x3d\x5b\x14\x50\xc4\x70\x97\xb2"
- "\xcd\x93\xd6\x3a\x42\x2f\x3a\x88\x28\x8a\xd0\xa7\xe9\x98\x87\xbe"
- "\x66\x89\x69\xd9\xbd\x11\x91\xd3\x9b\xc4\x22\x14\xe6\x8f\xc8\xbd"
- "\x95\x5d\x3d\xd2\x1d\x10\xbd\x61\x69\x87\xf9\x4a\x9c\x61\x5b\x80"
- "\x9b\x3f\x32\xce\x17\xcd\x98\x79\xb9\xeb\x45\xf7\x54\x3c\xc9\xa6"
- "\x2e\xb4\x0b\x0d\x84\x0d\x35\xcc\x64\x5f\x5a\x92\xf8\xcb\xd6\xfa"
- "\xae\xd9\xce\x9c\x41\x83\xc2\xab\xd5\x73\x21\xea\x95\xd5\x73\x2f"
- "\xf1\xd0\x71\x95\x45\x07\x7c\x1f\xcc\xba\xf3\xb0\x75\xfa\x1a\xd4"
- "\x89\x66\x4e\x93\x93\x80\xb7\x67\xd5\xdf\x99\xd8\x43\x6d\xf6\xde"
- "\x19\xc8\x13\x56\xf8\x63\xe5\xf2\x53\xfd\x2e\x62\x8d\xde\x92\xd4"
- "\x98\xfc\x1c\x36\x08\x3d\x33\x0f\xee\xbc\xb8\x2f\x49\xa2\xb3\xb4"
- "\x9b\x0c\x7e\x16\xd4\xe8\xc0\x98\xd0\x5c\xda\x25\xaa\xe4\x60\x95"
- "\xe6\xc5\x7b\x62\xa5\xe9\xbc\xa1\x5e\x11\x4f\x5d\xb4\x19\x29\x33"
- "\x6f\xff\xf4\xef\x7f\x62\x2b\xf2\xbd\x47\x90\xcb\xba\xbc\xe8\xa8"
- "\xd7\xcf\xac\x44\x05\x67\xf3\xd3\x93\x22\xc0\x48\x23\xdf\xef\x54"
- "\x3d\x64\xc7\x13\xfd\x4f\x0a\x21\x20\x2b\xad\x34\x88\x02\x69\x84"
- "\xaf\x8a\xfb\xbb\x97\x7d\xca\x0e\x80\xdc\x8a\x50\x51\x49\xc8\x1f"
- "\xbd\x35\x46\x11\xf6\xdf\x52\x29\xc2\x52\xc4\xae\xd5\x16\xbb\x67"
- "\x21\x7b\x25\xeb\xc4\x21\x0d\xc7\x3f\x1b\xae\x42\xc2\x21\x58\x1e"
- "\x32\x46\x0d\x72\x15\x89\x75\xaa\xd9\x0b\x2d\xa7\x25\x3a\x2a\x3d"
- "\xc6\x46\xd1\xa3\x9d\xed\x52\xd8\xbb\x53\xb9\x1f\x6d\xfc\x63\xb7"
- "\x28\xa1\x78\x78\x18\x43\xa2\x3d\x6f\xcd\x6a\x40\x6a\xc2\x44\x88"
- "\x59\x03\xdd\xd3\x47\x8d\x3d\xe2\x24\xc2\x11\x00\xb1\x2e\xc7\x24"
- "\x81\x4b\xc0\x9c\x90\x64\xb7\x8b\xfb\x3a\xdc\x69\xe1\x4c\xf4\xc4"
- "\xc7\x78\x5a\xca\xf8\x6f\x16\xa0\xb8\xe3\xb0\x66\x94\xab\x7a\x86"
- "\x5c\xa8\xb9\x7f\xf7\x6a\x64\x1d\x8f\x03\xcf\x4b\x4b\xb0\xd8\xc2"
- "\xc2\xea\x02\x5a\xaa\x14\x19\x8f\x60\x49\x5b\xf4\x05\xc8\x98\x30"
- "\xeb\xbc\x00\x12\xa4\xc0\x27\x5f\x38\x91\x89\x73\xfa\xb7\xc1\x3a"
- "\xf4\x7c\x18\xe4\xe7\x7f\x8c\x82\x51\xb0\x64\x2b\x9d\xa3\x98\x47"
- "\x67\xe4\x0f\x1f\x30\x8e\x78\x0a\x3e\xc4\xa8\xc4\x1c\x79\x0a\x09"
- "\x91\xbd\xa1\x6a\xab\x47\xce\x54\x24\xda\x4b\xa6\x7b\x40\x43\x92"
- "\xd5\x43\xbb\x50\x53\x54\x1d\xf0\x0c\x87\x01\xc0\x82\x0a\xf0\xd8"
- "\x7d\xd7\x22\xfc\x33\x59\xf7\x54\x87\x5c\x45\xc8\x2d\x92\x6d\x3a"
- "\xfc\x90\x03\xa9\x23\xa8\xa3\xa5\x00\x3d\x3f\x7d\x9f\x6c\x7a\xba"
- "\xdd\xff\xfd\x09\x04\x9b\x82\xea\x9f\x0e\x05\x92\xed\x08\x24\x1d"
- "\x00\xfa\xac\x61\xf0\xe7\xc7\x37\x7e\x0d\x73\x38\x3e\x7a\x63\xcb"
- "\x4e\x26\x21\xd6\x50\x12\xe4\x95\x1e\xc7\xd0\xed\xcb\xf9\xbf\x1d"
- "\x34\x81\x81\xa4\x0e\xeb\xf6\xe8\xc5\x1e\x98\xca\x79\xad\x15\x3c"
- "\xdc\xf5\xe3\xa9\xfe\xe9\x4c\x6a\xc5\x79\x55\x89\x18\xf2\xd1\x86"
- "\x4e\xd6\x95\x38\xf8\x78\x0b\xfc\x50\x40\x72\xd4\x3c\x45\xdf\xaa"
- "\x13\x1e\x9e\x74\xff\xde\xa9\x33\x5e\xa8\xa1\x70\x75\xd7\x7c\x4f"
- "\x71\xf1\x03\xb3\xfb\x0f\xad\x19\x4f\x5d\xfe\xbb\xc5\x98\x81\x11"
- "\xee\x24\x24\x13\xa4\xa4\xfe\x40\x4b\x20\x38\x61\x6e\xe3\xec\x05"
- "\x15\x46\x35\x2d\xd4\x61\x7d\x0f\x4a\x34\xf1\x23\x87\x5e\xc6\x8e"
- "\xf5\x77\x8c\x03\x4b\x58\xe2\x3b\x35\x08\x2f\x40\x60\xd6\xe3\x3a"
- "\xf0\xb4\xdd\xb9\x18\xfc\x7d\x79\x7a\xf3\x0a\x5c\x89\x2e\xcc\x30"
- "\x9b\x8f\x7e\x3c\xd3\x1d\x45\xcb\xfb\xb5\x09\xe8\x6e\xd4\x87\xb0"
- "\xc5\x5c\x0e\x70\xec\xd9\x04\xb2\xc1\x44\x9b\x78\x4f\x46\x92\x4b"
- "\x18\x0b\x90\xaa\xe3\xf9\x11\x8d\xf8\x9e\x5e\xc6\x2e\xfb\x9f\xba"
- "\x31\x49\x9e\x9d\xb7\xb8\x5c\x0b\x09\xcf\x45\xb0\x82\x9d\x6a\xd7"
- "\xeb\x1d\x79\x6f\x26\x1a\xec\x5d\x16\xb1\xa8\xc5\x90\x00\x9a\x79"
- "\x51\x9b\xab\x79\x09\xa1\x7f\x65\x74\xa0\xf8\x54\xfd\xf3\x74\x52"
- "\x80\x09\x25\x33\xa4\xd5\x22\xba\x79\xc0\x77\xe0\x56\xfb\x19\xa9"
- "\x8f\x23\x16\x29\xa9\x39\x54\x10\x0d\x85\xb9\x20\xd3\x27\xa2\x7d"
- "\xe4\x81\x9e\x0a\x4a\xc4\xf6\xef\xc7\x0b\xb8\x6a\x50\xa9\xed\x72"
- "\xb4\x79\x01\xf3\xc3\x89\x5d\x19\x5e\x9a\xf1\x35\x14\xcc\x04\x4c"
- "\x2d\xe5\x0f\xd8\x07\xee\x50\xee\x3f\xaf\x74\x86\xcd\xc5\xf8\x34"
- "\x0f\xeb\x32\x7f\x36\xcc\x03\xa8\xbc\xde\xd9\xf8\xfc\x01\x73\x83"
- "\x74\x4a\x26\xdc\x70\x1a\x76\x71\x5a\xee\xac\x0b\xe0\xdb\x16\xd4"
- "\x26\x7c\xfb\xb8\x96\x74\x00\x7d\xb8\x5c\x4a\x07\xfc\x9e\xc9\xff"
- "\x4a\xd0\xaf\x86\x4b\xb0\xc6\x29\x8e\x3f\x2e\x9f\xa0\x33\xd3\xdf"
- "\xb9\xe0\xd5\x48\xb9\xf0\x08\x7e\xae\xdd\xd0\x2e\xf5\x41\xd8\xa3"
- "\x9a\xff\x76\x93\x04\x7a\xef\xd2\xf5\xb8\x05\xa1\x55\x8e\xe8\x03"
- "\x9f\x6e\xd9\xc4\x75\xd0\xfe\x75\xd1\x77\x3f\x22\xbe\x2e\xc7\x27"
- "\x10\x4e\x2c\xab\x2f\x38\x53\xcb\xe7\x27\x9d\xff\xd8\x86\xb7\xca"
- "\xc1\x7e\xeb\x23\xd8\x8f\x5e\x85\xa3\x2a\xa3\xe6\xc8\x8f\x71\x30"
- "\x98\x91\x1d\x11\x8d\x76\xdf\x42\xe8\x72\x6b\x41\x3a\x70\x46\x26"
- "\x78\x16\xc8\x6a\x21\x66\x81\xdc\xec\xac\x3e\x5d\x8a\x9a\x01\x03"
- "\xee\xee\x0a\x34\x1a\xad\xdc\xc9\x4f\x3d\x22\x3b\x48\x67\x43\x7d"
- "\x7e\x53\x08\x91\x26\xbf\x7d\x60\x4a\xf4\xfb\x21\xcf\x74\xc9\xc6"
- "\x47\x9b\x39\x58\x61\xde\x5d\x3c\xbe\x60\x2e\x2b\x6c\x08\x42\x3e"
- "\xe3\x03\x76\x6d\xa8\xac\xba\x11\xb2\xce\x0f\xdb\x95\x6a\x33\xf4"
- "\x00\xc9\x66\x13\xd4\x5f\xab\xe7\x1b\x17\x62\xa1\xe6\x4a\x82\x67"
- "\x28\xa3\x7b\xf7\x4b\xfc\x57\xcb\x16\x3e\xfe\xb5\xa4\xef\x3b\x35"
- "\xdd\x14\xd5\x48\x41\x5e\xa5\x62\xcc\x18\xba\x97\x6c\x75\xe9\x39"
- "\x63\xd4\x9d\xce\x2d\x9d\x4c\xc3\x82\xb1\x31\x69\x91\x90\x3e\x6d"
- "\x66\xc7\xea\xd3\x88\x02\xd3\x39\x10\x22\x04\x1a\xbf\xc5\x0d\x02"
- "\xb8\x7c\x9a\x86\xc5\x04\x87\xef\xaf\x75\xe5\xc7\xe6\x21\xba\xa1"
- "\xbd\x9c\x14\x90\xc3\x99\x80\xbb\x61\xe3\xe2\xc1\x79\xf0\xc6\x46"
- "\x4f\x38\x86\x35\x93\x1a\x55\xd8\x76\x0f\x7c\xa2\xae\x3b\x6a\xa8"
- "\xe4\x74\x74\xc2\x50\x38\xcf\xc5\xda\x85\xee\xe0\x2f\x23\x1a\x83"
- "\x17\x54\xa7\x34\xa0\x1f\xd7\xd3\xb2\x53\xe3\x77\xfe\x8e\x97\x49"
- "\xc5\x5b\xe0\x5f\xcb\x2c\x90\xe9\x09\x83\x40\x89\x81\x51\xf6\x40"
- "\x64\x2c\x89\xca\xcf\x61\xda\x04\x0d\xaf\x3b\x48\xf9\x8a\xfa\x74"
- "\x6a\x6a\xe5\x29\x5e\x3a\x6b\xee\xb5\x5e\xa3\x0c\x78\xf1\xe0\xcb"
- "\x74\x69\x2c\x7b\xf6\x73\xc1\x53\x20\x8c\x15\x54\x03\x5d\x96\xe3"
- "\x6a\x8d\x19\x5d\xec\x5a\xd4\xe3\x6b\x1a\x72\x27\x73\x73\xbb\x2e"
- "\x7c\x4e\xbb\x63\x26\xdb\x9d\x9c\xde\x67\xd8\x50\x7c\x85\x1a\xff"
- "\xf0\xd0\x12\x4d\x3e\x69\xb1\x2d\x2a\xd1\x28\x4a\xc9\x82\x1e\xd5"
- "\xfc\xa3\x64\x0b\x2f\xcc\x4c\xef\x17\xa6\xe5\x0b\xd5\x76\xb4\x33"
- "\xff\x3b\x3d\xc3\xb0\x28\xf7\x38\xf5\x7a\x76\x2c\x84\xf7\xcc\x4f"
- "\x3a\xdf\x68\xab\xbc\x6b\x24\xac\x84\x8a\x09\x5e\x0d\x89\x9d\x85"
- "\x98\xf5\x61\x60\x38\xb0\xdd\x86\xe1\xb5\x42\xa0\x6c\x25\x77\x28"
- "\x8f\xf1\x21\xb3\xa8\xed\x8c\xfd\x18\xcf\x23\xae\x2a\x9f\x1c\x67"
- "\xc3\x17\x48\x73\x3b\x6e\xbf\x02\x88\xed\x4d\xa2\x86\x07\x6a\x5d"
- "\x16\x55\x3b\x87\x29\x88\xd0\x8d\xe3\x30\x3b\x89\x22\x5c\xa2\xb6"
- "\xbb\xcf\xda\xd8\x1f\xe4\x7f\xa5\x50\xb9\x8b\xc2\x61\x73\x86\x61"
- "\x92\x44\x1b\xc2\x9d\x34\x72\x81\x30\xca\x22\x83\x78\xe0\xa5\xb5"
- "\x39\xba\xa3\x46\x7a\x4c\xd9\x2b\x5e\xaf\x42\xdf\xba\x80\x4a\x83"
- "\x9c\x20\xe0\x86\x90\x88\x4e\xbf\x7b\xa6\x44\x3d\x7f\x9c\xbe\xc8"
- "\xdf\x74\xe8\x2c\xf7\x4b\xc0\x06\x3f\x9e\x23\x30\xe8\x31\xc6\x07"
- "\x5b\xc9\x26\xf1\x1c\xc8\xbe\xe3\xc7\xcb\x4f\x1b\x37\x09\xf0\xcf"
- "\x0c\x5e\x1d\xac\x1c\xb8\x91\xcf\x0a\x54\x09\x6c\xa9\x4e\x9f\xa1"
- "\x36\xde\x41\xa8\x67\xe4\x4c\x65\xc9\x28\x20\x0f\xbd\x49\x74\x7f"
- "\x83\x26\x48\xb1\xe6\xca\x6f\xd8\x88\x27\x94\xdd\xa4\xaa\x03\x43"
- "\xc6\x19\xab\x8b\x83\x78\x4f\x2a\x51\x34\x98\xff\x27\x6b\xda\x39"
- "\xe4\x2e\xf6\xe9\xe7\xd6\x96\x86\x60\x3b\xc3\x80\xb8\xba\x51\x77"
- "\x8a\x79\x07\x62\xb1\xaa\xa9\x58\x96\x54\x84\x04\x9e\xee\x24\x8d"
- "\xf1\xac\x34\x03\x43\x8e\xd0\x92\xdc\x4d\xbc\xc7\x15\xdc\x82\xfc"
- "\x19\x9b\x7e\x43\xe1\x36\xc5\x6b\xfb\xb8\x9e\xf4\x22\x5e\x29\x6f"
- "\x4c\x45\xdd\xfe\xcb\x17\x77\xee\xd3\x6b\x80\x50\x96\xd0\x07\xa3"
- "\xb2\xf0\x68\xc7\x40\xeb\x24\x16\x23\xa7\x57\xc4\xbb\x9c\x69\x16"
- "\x49\x30\xb8\xd9\x4d\x41\x4e\x22\xc6\x24\x7f\x44\x59\x4e\x3c\x46"
- "\x61\x64\x60\xc5\x82\xc2\x60\xc5\x63\xe7\xb3\xe1\xb9\xd1\x71\x65"
- "\x32\xaa\x88\xa1\x4e\x98\xdb\x0b\x29\xe8\x5a\xa4\xbc\x61\x20\x62"
- "\xbc\xea\xb0\x90\x3c\x2f\x29\xef\x74\x87\x4b\x1b\x36\xf7\x01\xde"
- "\x30\xf0\x00\xe3\xd7\x2d\xf6\x52\x09\xe1\xe5\x84\x13\x04\xfe\x1f"
- "\x2c\x1c\xeb\xfb\x2c\x40\x7d\x4d\xf5\x9c\x6e\x47\xe9\x2d\xb0\xca"
- "\x88\x37\xf4\x8d\xbe\x50\xfb\xec\x5e\xee\x5d\x0f\x1a\x71\x42\xe3"
- "\xc0\x9c\x57\xe3\x50\xba\x98\x0d\x79\xfa\x56\xe9\x7a\x09\x03\x75"
- "\x21\x0f\x97\x69\xe0\xed\x9d\x10\x8f\x64\xdd\xd5\x10\xdc\x3b\x21"
- "\x08\xc2\x7e\x7e\xac\x6e\x7c\x0b\xb9\x71\x65\x3e\xfa\x1c\xf3\x13"
- "\xdc\x03\x9c\xf2\xa4\x21\xf1\xfc\x07\xaa\xef\xa0\x55\xd7\x21\xfc"
- "\x0c\x17\x6a\x06\x57\x6b\x0e\x8e\x1d\xea\xb2\xc8\x23\xb3\xad\x42"
- "\x00\x41\xe2\x9c\x1f\x2e\xa8\x51\x19\x3d\xdb\x24\x73\x4a\x8f\x08"
- "\x74\xb5\x6b\x58\x48\x7a\x4e\x7b\xa6\x5c\x4b\x81\xd6\x38\xf9\xe5"
- "\x66\xe3\x15\x9a\x74\x49\x68\x8e\x5b\x1e\xdd\x3f\x4f\xc8\xe3\x0c"
- "\x73\x32\xf0\x35\x16\x8c\xd9\x84\xc3\x9a\x65\x16\x93\x65\x0f\x47"
- "\x15\x97\xc8\xb4\x6a\x7f\x91\x0a\x05\xf2\x08\x36\xf0\x7e\x2c\xcb"
- "\x79\xc4\xc4\xcb\x5a\xa0\x25\xc9\xe9\xac\x35\x8f\x56\xf6\x87\x4e"
- "\x9b\x4b\x9d\x1a\x38\xb0\x43\x41\x94\x07\x17\x78\xec\xd3\x8c\x89"
- "\x58\x09\xef\x07\xe1\xd8\x65\x97\x3e\xce\x61\xad\x51\x0a\x48\x3d"
- "\x64\xd5\x6e\xa1\xe5\x86\x06\xb7\x22\xcd\x03\x44\xec\x94\x52\x15"
- "\x5d\xf6\x9b\xc6\xb6\x22\x49\x5e\xb1\xdb\x01\x24\xd2\xc2\xac\x13"
- "\xdc\xec\xb3\x93\x4c\x88\x3b\x11\x6d\x77\xab\x44\x67\x8c\xca\xa8"
- "\x18\x47\xe3\xdc\x58\x13\x45\x43\xb3\x7f\xdf\x3a\xdf\xef\x0e\x4f"
- "\xc0\xf3\x95\xb6\x7d\xdf\x97\xd7\x0d\x03\x9d\x14\x76\xd6\xae\x5f"
- "\xb4\x13\x7f\x2a\xdb\x00\xa2\xe7\xfd\x33\xa6\x4d\x3f\xc1\x14\x58"
- "\x7c\x55\x30\x6a\xae\x71\x0f\x73\xe3\x64\x1f\xc5\x2e\x6f\x82\x82"
- "\x62\xd2\x02\xde\xf8\x29\x1e\xd5\x71\x3a\xbe\xcd\x43\xf8\x71\x5e"
- "\xa1\xce\x68\xca\xcb\x23\xfa\x83\xba\xc2\x0f\x9b\x6b\x86\x5d\x9f",
+ "\xf1\x95\xd8\xbe\xc1\x0e\xd1\xdb\xd5\x7b\x5f\xa2\x40\xbd\xa1\xb8"
+ "\x85\xee\xe7\x33\xf6\xa1\x3e\x5d\xf3\x3c\xe4\xb3\x3c\x45\xde\xe4"
+ "\xa5\xea\xe8\x8b\xe6\x35\x6e\xd3\xd5\xe8\x77\xf1\x35\x64\xa3\xa5"
+ "\xcb\x91\xfa\xb1\xf2\x0c\xba\xb6\xd1\xc6\xd1\x58\x20\xbd\xba\x73"
+ "\x7e\x08\xf5\x9f\x71\xb8\x56\x08\xe3\x89\x55\xb1\x7b\x53\xed\x27"
+ "\xee\x04\xce\x2c\x02\xae\xf0\x75\x8f\x5d\x64\x77\xea\x0a\x79\xb2"
+ "\x9f\xc0\xb0\x9a\xf0\x93\xd5\xbf\xb9\xdf\xab\x18\x25\xf7\x51\xc9"
+ "\x82\x69\x88\x08\x00\x2b\x35\x8e\x2c\x2f\x7c\x01\xdc\x31\x56\x1d"
+ "\x52\xb4\xca\x07\xbf\x02\xa5\x9a\x80\x88\x91\x19\xf1\x26\x0b\x7f"
+ "\x9d\x3e\x1c\xe5\xf9\x92\x1a\xf5\xb5\x53\xed\x1e\x1a\xdf\xdc\x53"
+ "\x9e\x2e\x79\x65\xbd\x7b\x48\x48\x57\x58\x90\x76\x40\x57\x86\x76"
+ "\x7d\xe3\xb2\x82\x06\xed\xeb\xce\x35\x1b\xcc\x5c\xee\x54\xe4\x3f"
+ "\x53\x4b\xb5\x0d\x07\x0a\x2d\x0c\xb7\xcf\x7c\xf8\x81\xad\x32\x01"
+ "\x26\x50\x0f\xe9\x32\xf3\xd7\xc9\xf0\x86\xab\xb8\xf8\xea\x72\x3a"
+ "\x9a\x17\x48\x12\xa5\xbb\x3b\xa9\x6d\x01\x51\x82\xc0\xe2\x98\x4d"
+ "\x69\x3c\xbd\x67\x6a\xa0\xb1\x7d\x7a\xa8\x2c\xb8\xe2\xb9\xf6\x68"
+ "\xfa\xeb\xae\x0d\x41\xcb\xb0\xfe\xe5\x55\x65\xb6\x5d\x56\xe5\x05"
+ "\x20\x08\x51\x77\x7c\x18\x3a\x25\x69\xaa\xa2\x39\x68\xcf\xd1\x3e"
+ "\x51\x47\xb5\xd8\x13\xcc\xaf\x2d\x31\xd5\x28\xae\x61\x48\xe6\x9a"
+ "\x0a\xd8\x30\x0b\x1f\x7c\xef\x3d\x32\xa5\x40\x05\x41\xdf\x84\x1e"
+ "\xce\xde\xca\x31\x42\xa6\xc4\xbc\x2b\x56\xb7\x7e\xa6\x22\x1f\x85"
+ "\x7b\xe8\x80\x01\xc1\xff\x78\x45\x14\xb5\x4d\x9b\xe3\x21\xf7\xb8"
+ "\x13\xd5\x44\x3d\x6f\x33\x85\x46\x56\x07\x79\x15\xb4\xec\xe5\xfd"
+ "\x34\x35\xc8\x8a\x5f\x4d\x58\x84\x82\x9d\xb6\x4d\x0e\x90\x65\xb0"
+ "\x5e\x61\x83\x30\x3d\x51\x34\xe3\x0e\x6e\x78\x05\xc8\x6d\x1e\x7d"
+ "\x76\xe2\x3d\x85\x33\x82\x42\x7c\x7d\x67\x33\xbb\x60\x5e\x4d\xb0"
+ "\xc8\xd0\x7a\x6c\xbe\x4e\xc8\xc4\x82\x9d\xb6\x25\x56\xc9\x1b\x52"
+ "\x3b\x9b\x4a\xf5\x8f\x67\x12\xd5\x41\x60\xe6\x97\x08\x90\x7b\x17"
+ "\x3b\xf9\x1c\x82\x0d\x15\x0a\x3d\x1b\x27\xd4\x46\xd6\x91\x5c\x74"
+ "\x48\x45\x1a\x4c\x60\x26\xf3\xe3\x1f\xe7\x0a\xfc\x79\x42\x8a\x5f"
+ "\x5f\x5b\x33\xf4\xb3\xda\xbd\x4c\x4a\x10\x5e\x3b\x9d\x09\xf8\xf2"
+ "\x51\x25\x44\x37\x7b\xca\x88\xf0\x88\xa9\x5d\x2e\x9e\x42\xf6\xac"
+ "\x3d\xd6\x01\x06\x06\x5c\x96\x4b\x13\xf5\x5f\xaa\x06\x34\x16\x67"
+ "\xfd\xa5\x49\x12\xcc\x21\x8f\xb4\xb9\x33\xfc\x58\xf0\x36\xeb\xd7"
+ "\x50\xf2\x38\x39\x9e\x93\x7b\xf7\xf5\xc7\x9c\x73\x36\x1f\xbe\xa9"
+ "\x49\xf9\x2c\x4f\x17\xfc\xb3\x64\x51\x68\xaf\xed\xe3\x43\xbf\x2f"
+ "\x3f\x57\xbb\x74\x93\x51\xc4\x93\x1e\x2e\x05\xed\xda\x74\x27\x1b"
+ "\x7b\xa8\x98\x3e\xa6\x62\x75\xbd\x68\xab\x44\xe8\xe4\x2d\x2f\x08"
+ "\x44\x64\x85\xa6\x42\xfe\xdb\x11\xb5\xbc\x1a\x83\xc4\x58\x7a\xd1"
+ "\x0d\x64\xa2\xdb\xd5\x4c\x3a\xd7\x2a\xd8\xc7\x0b\xf5\x33\x80\xe2"
+ "\xaa\xc6\xaf\xad\xee\x39\x83\x1c\xfb\xda\x39\xd6\xe4\xbe\x6f\xde"
+ "\x46\xd1\xdc\xc8\x77\x3b\x42\x3a\x19\x83\xdb\x79\x5e\x9d\xd9\xef"
+ "\xe7\x54\x9e\xfa\xde\x56\x26\x0e\x33\x44\xb6\xac\xc7\x25\x1f\x0b"
+ "\xd0\x12\x4a\x75\x6f\xef\x9f\xb7\xe7\xf1\xc3\xb2\x77\xa7\x01\xc1"
+ "\x24\xf2\x60\xf2\x04\xa4\x07\x47\x25\x81\x2a\x51\x36\x1d\xb3\x42"
+ "\x3c\xc5\x12\xbb\x53\x89\xc3\x00\xb4\xe8\x0e\xd8\xed\x5d\x9c\x18"
+ "\x08\x16\x05\x57\x22\x99\xc1\xcb\x97\x4d\x7d\x42\xb0\xbf\xf3\x35"
+ "\x9e\xc9\xc0\x4e\xe6\x42\xec\x49\x06\x5e\x50\x7f\x6c\x86\x20\x9e"
+ "\xe0\x49\x6a\x1d\x50\x45\x52\x3d\x66\xdc\x66\xb2\xa1\x57\xbb\x1d"
+ "\x65\x30\xf9\x3e\x6c\x8b\xf8\x07\x5e\xf9\xb0\xcf\x15\x1f\xa4\x22"
+ "\xe6\x28\xdf\x40\x44\x27\x80\x99\xbf\xcc\x86\x94\x3d\xe1\x97\xbc"
+ "\x64\x7b\xc9\x8a\xc8\xb7\xdd\x8e\xd9\x95\xfa\x97\x44\x59\x70\xb6"
+ "\xa4\x59\xdd\x94\x2a\x4e\x71\x76\xe1\xf8\xff\x2e\xef\xf7\xf3\x26"
+ "\x0d\xeb\x63\x9b\x34\x74\xcf\xc7\xe4\x99\xb3\x8b\xe5\xf8\xfa\xf8"
+ "\x60\x6a\x8f\x16\xfe\xb3\x12\xe8\x66\x5c\x26\x61\x11\xaa\x14\x85"
+ "\x5e\x4c\x0f\xf8\x47\x99\x49\x4c\x22\xa5\x37\xb7\x4b\xed\x1d\x33"
+ "\x54\xe4\x6f\xfe\x4b\x7e\x95\x44\x56\xa9\xa9\x48\x6f\x40\x08\x42"
+ "\x28\xa0\xd6\x8e\x52\x72\x84\x87\xd5\xcc\x08\xf4\x34\x9b\xc7\xf7"
+ "\x92\xac\x5d\x5a\x30\x4c\x87\xc2\x2c\x94\x68\x10\x03\x02\x8c\x38"
+ "\x6e\xf6\xca\xd1\xd6\x55\x02\x3c\x3a\xf4\x21\x1c\x90\x03\x7c\x33"
+ "\xcd\x81\x93\x3f\x4c\xa1\xe6\x7c\x7d\x27\xaf\x97\x7a\xd8\xb0\x32"
+ "\xcb\x1f\xb6\x5d\xb0\x7c\x9e\xf7\x15\x6a\x29\xc9\xb3\x13\x8e\xb2"
+ "\x2e\xf2\x9d\xb2\x64\xe9\xc7\x13\x86\xc3\x46\x97\x9e\x53\x37\xac"
+ "\xd1\x75\x0b\xe2\x20\x4a\x5e\x3a\x47\xdf\xb3\x67\x78\x23\x22\xa6"
+ "\xb6\x69\x83\x1b\x41\xe1\xdc\xe3\xbb\x63\x8e\x6a\x70\xe2\x91\x30"
+ "\xa2\x48\x43\x07\x9b\xf1\x87\x9d\xd9\x2f\x36\x62\xaf\x51\x70\x10"
+ "\x5d\x68\x42\x6e\x95\xe6\x86\x85\x90\x08\x80\x42\xc6\x11\x7d\x38"
+ "\x37\x94\xc7\x7a\x9d\xec\xff\x87\x15\x0d\x30\x42\x7d\xbf\xb0\x21"
+ "\xa8\x28\xc3\xa9\x56\x31\xda\x2e\x91\x8d\x0d\x78\x93\xe2\x4d\x7f"
+ "\xb3\xdb\x87\x5b\xf2\x2a\x55\x54\xc4\x1a\x47\x9b\x51\x79\x2c\x55"
+ "\xaa\xaf\x57\x89\x90\x32\x26\xfa\xcf\x26\x3d\xbd\xc3\x59\x7e\x4b"
+ "\x53\x7a\xa3\xf8\xec\x31\x3e\x9f\x22\x33\x41\xec\xe5\xf1\x50\x41"
+ "\x57\x64\x37\x0e\x24\x0f\x03\x0c\x93\xaf\xd7\x44\xef\x33\xf9\x96"
+ "\x8e\x63\x9c\x79\x09\xdf\x58\xdb\xcd\xd2\xf2\x81\xed\x97\x28\x5e"
+ "\x6d\x99\x45\xad\xf1\xa4\xe8\x59\xaa\xeb\x59\xbd\xfa\x54\x27\xe2"
+ "\x01\x6d\xfa\x08\xe5\x1a\x46\x92\x31\xa0\xfd\x2e\x25\x21\x5e\x9d"
+ "\x1d\x41\x82\x16\x21\xea\xe8\x29\x5a\xe7\xd4\xd8\x7c\x91\x6d\xa8"
+ "\x69\xa8\x6b\xac\xf9\x3d\x2c\x07\xfa\xaf\x65\x5e\x84\x63\x5c\x1c"
+ "\xb6\x71\x1c\x6e\x1a\x1a\xcf\x5f\x39\x08\x02\xeb\xde\x75\x28\x44"
+ "\x90\x3b\x6d\x09\xf5\xa4\x3a\x00\x99\xc1\x6e\xb8\x23\x47\xb6\xe6"
+ "\x44\x69\x24\x86\x0d\x93\x7d\xc2\x1a\xe7\xf8\x97\x97\x6d\x2f\x7d"
+ "\x6a\x3e\xd7\x6d\x94\xbe\x9b\xfa\x7d\x40\xff\x35\x7e\x2d\x9c\x50"
+ "\x71\xf8\x99\x5f\xf3\x53\x16\x59\x77\x72\x4b\xef\x8d\x21\x8c\x28"
+ "\x15\x8a\x57\x6d\x3d\x35\xf4\x2c\x37\x39\x0e\x97\x8f\xd3\x45\x17"
+ "\xac\x0b\xa2\xaa\x16\xe7\x98\x70\xbd\x91\x4b\x7b\xc9\x14\x5b\x85"
+ "\x29\xe5\xd9\x20\xa6\xf3\x89\x63\xc8\x01\x94\x2c\x20\xb0\xf1\x1c"
+ "\x61\x90\x5b\xe8\xaf\xdb\xe2\x20\x62\x4f\xd0\x3c\x51\x1f\x5f\x14"
+ "\x28\x13\x07\x5e\xbc\x4a\xa0\x46\xa7\x9c\xc7\x00\x24\xb4\x67\x0d"
+ "\x9c\xe8\x05\xa7\xe3\x37\x94\xd3\x97\xc5\xd6\x1d\xb3\x79\x0c\x7f"
+ "\xf0\xeb\x68\xa7\xa9\x75\x30\x3c\xf1\xf8\xfb\x96\x4b\xa5\x99\xb1"
+ "\xf0\x71\xab\xb4\x8a\xa6\x5d\x97\xb5\x6f\x42\x81\xef\x38\x0e\x41"
+ "\x21\xcd\x15\xe4\xf1\xdc\x02\xc2\xe5\xe4\xb2\xf2\xdb\xc5\x42\x0f"
+ "\xeb\x00\xb8\x49\x48\x90\x97\x59\x69\x8c\x3d\x90\xfa\x7f\xaf\x75"
+ "\xff\xe8\x0f\xff\x13\x2f\x7a\xca\x33\xbc\xb0\x41\x7b\xd4\x94\xce"
+ "\xd5\xd7\x53\xe5\x36\x9d\xea\x0c\x13\x60\x63\xd9\x79\x83\x53\x03"
+ "\x3c\x5f\x33\x6b\x16\xd2\xd6\x07\xbd\xbc\xa9\xcd\xd6\x21\x58\x8a"
+ "\x90\xac\x85\x7c\x0a\x85\xf1\x02\xfd\x6c\x5b\xac\x92\xa5\x6f\xfc"
+ "\x02\x60\xb3\x05\x91\x31\x80\xd5\x75\x82\xa8\xab\xcc\x7b\x47\xdb"
+ "\x79\xaf\x85\xea\x75\x2d\xf4\x46\x45\xa6\x24\x35\x2d\xba\x9e\x19"
+ "\x4e\x48\xb3\x5f\x40\x96\x6c\x73\x44\x09\x67\x27\xee\xdb\xdb\xca"
+ "\xf6\x14\x3f\x32\xdf\x3b\xd3\xcb\x87\x48\x6b\x03\xda\xfe\xb5\x20"
+ "\xf8\x72\xd0\xe4\x65\xfd\x14\x5d\x9b\xd3\xc5\x67\x4b\x41\xf4\xcb"
+ "\xac\xe4\xce\x61\xe0\x06\x8e\xb6\xca\xef\xa5\xe4\x70\xd4\xff\x4f"
+ "\x4c\x81\xb7\xc7\xc1\xe3\x1d\x6b\xfe\x44\x37\xfe\x7e\xb4\xec\xda"
+ "\x55\xbc\x26\xdd\x44\x08\x28\x49\x19\xc9\x52\x20\x4a\x5e\xe1\xae"
+ "\x6b\x87\x35\xa2\x9a\x02\x17\xb0\x74\xe1\x19\x92\xca\x5d\x34\x81"
+ "\xd7\x3f\xb1\x14\xe2\x44\x97\x7f\xab\x0a\xc3\x44\x8d\x9c\xe6\x27"
+ "\x84\x5e\x2e\xe1\x0e\x7b\x74\xee\x47\xe2\x6f\x79\x3a\x0d\x25\x90"
+ "\x9b\x32\x13\x78\xd3\xd1\x19\x10\xb7\x88\xc4\xb4\xb8\x0f\x84\x0c"
+ "\xc4\x6d\xb3\xbc\xbc\xea\x1d\x84\xfe\x6f\x95\x1e\x44\x78\xbb\x73"
+ "\xd0\x08\x8b\xbe\xae\x91\x6f\x84\xeb\x6c\x05\x58\x3a\xb7\x68\xee"
+ "\x62\x14\x0b\xba\xd3\xd6\x78\x23\x35\x03\x2f\xed\xac\xf2\x35\xa7"
+ "\x0b\xf5\x37\xa1\xa5\x4d\x57\x0e\x2e\x5e\x0d\x0c\xd6\x04\xc8\x07"
+ "\x60\xe6\xda\xd9\x55\x16\xf6\xc6\x0c\x53\xc0\x46\xa8\x91\xa6\xdd"
+ "\x22\x99\x88\x9f\x23\x93\x64\x81\xdb\x4b\xe8\x99\x1e\x16\x5c\xb5"
+ "\x08\xc0\x74\xf9\x79\xd3\xc1\x6a\xe5\x38\x6b\xcd\xf0\xcb\x1e\xb8"
+ "\x5c\x6b\x14\xd6\x85\x58\xa3\xc8\x3d\x5b\x14\x50\xc4\x70\x97\xb2"
+ "\xcd\x93\xd6\x3a\x42\x2f\x3a\x88\x28\x8a\xd0\xa7\xe9\x98\x87\xbe"
+ "\x66\x89\x69\xd9\xbd\x11\x91\xd3\x9b\xc4\x22\x14\xe6\x8f\xc8\xbd"
+ "\x95\x5d\x3d\xd2\x1d\x10\xbd\x61\x69\x87\xf9\x4a\x9c\x61\x5b\x80"
+ "\x9b\x3f\x32\xce\x17\xcd\x98\x79\xb9\xeb\x45\xf7\x54\x3c\xc9\xa6"
+ "\x2e\xb4\x0b\x0d\x84\x0d\x35\xcc\x64\x5f\x5a\x92\xf8\xcb\xd6\xfa"
+ "\xae\xd9\xce\x9c\x41\x83\xc2\xab\xd5\x73\x21\xea\x95\xd5\x73\x2f"
+ "\xf1\xd0\x71\x95\x45\x07\x7c\x1f\xcc\xba\xf3\xb0\x75\xfa\x1a\xd4"
+ "\x89\x66\x4e\x93\x93\x80\xb7\x67\xd5\xdf\x99\xd8\x43\x6d\xf6\xde"
+ "\x19\xc8\x13\x56\xf8\x63\xe5\xf2\x53\xfd\x2e\x62\x8d\xde\x92\xd4"
+ "\x98\xfc\x1c\x36\x08\x3d\x33\x0f\xee\xbc\xb8\x2f\x49\xa2\xb3\xb4"
+ "\x9b\x0c\x7e\x16\xd4\xe8\xc0\x98\xd0\x5c\xda\x25\xaa\xe4\x60\x95"
+ "\xe6\xc5\x7b\x62\xa5\xe9\xbc\xa1\x5e\x11\x4f\x5d\xb4\x19\x29\x33"
+ "\x6f\xff\xf4\xef\x7f\x62\x2b\xf2\xbd\x47\x90\xcb\xba\xbc\xe8\xa8"
+ "\xd7\xcf\xac\x44\x05\x67\xf3\xd3\x93\x22\xc0\x48\x23\xdf\xef\x54"
+ "\x3d\x64\xc7\x13\xfd\x4f\x0a\x21\x20\x2b\xad\x34\x88\x02\x69\x84"
+ "\xaf\x8a\xfb\xbb\x97\x7d\xca\x0e\x80\xdc\x8a\x50\x51\x49\xc8\x1f"
+ "\xbd\x35\x46\x11\xf6\xdf\x52\x29\xc2\x52\xc4\xae\xd5\x16\xbb\x67"
+ "\x21\x7b\x25\xeb\xc4\x21\x0d\xc7\x3f\x1b\xae\x42\xc2\x21\x58\x1e"
+ "\x32\x46\x0d\x72\x15\x89\x75\xaa\xd9\x0b\x2d\xa7\x25\x3a\x2a\x3d"
+ "\xc6\x46\xd1\xa3\x9d\xed\x52\xd8\xbb\x53\xb9\x1f\x6d\xfc\x63\xb7"
+ "\x28\xa1\x78\x78\x18\x43\xa2\x3d\x6f\xcd\x6a\x40\x6a\xc2\x44\x88"
+ "\x59\x03\xdd\xd3\x47\x8d\x3d\xe2\x24\xc2\x11\x00\xb1\x2e\xc7\x24"
+ "\x81\x4b\xc0\x9c\x90\x64\xb7\x8b\xfb\x3a\xdc\x69\xe1\x4c\xf4\xc4"
+ "\xc7\x78\x5a\xca\xf8\x6f\x16\xa0\xb8\xe3\xb0\x66\x94\xab\x7a\x86"
+ "\x5c\xa8\xb9\x7f\xf7\x6a\x64\x1d\x8f\x03\xcf\x4b\x4b\xb0\xd8\xc2"
+ "\xc2\xea\x02\x5a\xaa\x14\x19\x8f\x60\x49\x5b\xf4\x05\xc8\x98\x30"
+ "\xeb\xbc\x00\x12\xa4\xc0\x27\x5f\x38\x91\x89\x73\xfa\xb7\xc1\x3a"
+ "\xf4\x7c\x18\xe4\xe7\x7f\x8c\x82\x51\xb0\x64\x2b\x9d\xa3\x98\x47"
+ "\x67\xe4\x0f\x1f\x30\x8e\x78\x0a\x3e\xc4\xa8\xc4\x1c\x79\x0a\x09"
+ "\x91\xbd\xa1\x6a\xab\x47\xce\x54\x24\xda\x4b\xa6\x7b\x40\x43\x92"
+ "\xd5\x43\xbb\x50\x53\x54\x1d\xf0\x0c\x87\x01\xc0\x82\x0a\xf0\xd8"
+ "\x7d\xd7\x22\xfc\x33\x59\xf7\x54\x87\x5c\x45\xc8\x2d\x92\x6d\x3a"
+ "\xfc\x90\x03\xa9\x23\xa8\xa3\xa5\x00\x3d\x3f\x7d\x9f\x6c\x7a\xba"
+ "\xdd\xff\xfd\x09\x04\x9b\x82\xea\x9f\x0e\x05\x92\xed\x08\x24\x1d"
+ "\x00\xfa\xac\x61\xf0\xe7\xc7\x37\x7e\x0d\x73\x38\x3e\x7a\x63\xcb"
+ "\x4e\x26\x21\xd6\x50\x12\xe4\x95\x1e\xc7\xd0\xed\xcb\xf9\xbf\x1d"
+ "\x34\x81\x81\xa4\x0e\xeb\xf6\xe8\xc5\x1e\x98\xca\x79\xad\x15\x3c"
+ "\xdc\xf5\xe3\xa9\xfe\xe9\x4c\x6a\xc5\x79\x55\x89\x18\xf2\xd1\x86"
+ "\x4e\xd6\x95\x38\xf8\x78\x0b\xfc\x50\x40\x72\xd4\x3c\x45\xdf\xaa"
+ "\x13\x1e\x9e\x74\xff\xde\xa9\x33\x5e\xa8\xa1\x70\x75\xd7\x7c\x4f"
+ "\x71\xf1\x03\xb3\xfb\x0f\xad\x19\x4f\x5d\xfe\xbb\xc5\x98\x81\x11"
+ "\xee\x24\x24\x13\xa4\xa4\xfe\x40\x4b\x20\x38\x61\x6e\xe3\xec\x05"
+ "\x15\x46\x35\x2d\xd4\x61\x7d\x0f\x4a\x34\xf1\x23\x87\x5e\xc6\x8e"
+ "\xf5\x77\x8c\x03\x4b\x58\xe2\x3b\x35\x08\x2f\x40\x60\xd6\xe3\x3a"
+ "\xf0\xb4\xdd\xb9\x18\xfc\x7d\x79\x7a\xf3\x0a\x5c\x89\x2e\xcc\x30"
+ "\x9b\x8f\x7e\x3c\xd3\x1d\x45\xcb\xfb\xb5\x09\xe8\x6e\xd4\x87\xb0"
+ "\xc5\x5c\x0e\x70\xec\xd9\x04\xb2\xc1\x44\x9b\x78\x4f\x46\x92\x4b"
+ "\x18\x0b\x90\xaa\xe3\xf9\x11\x8d\xf8\x9e\x5e\xc6\x2e\xfb\x9f\xba"
+ "\x31\x49\x9e\x9d\xb7\xb8\x5c\x0b\x09\xcf\x45\xb0\x82\x9d\x6a\xd7"
+ "\xeb\x1d\x79\x6f\x26\x1a\xec\x5d\x16\xb1\xa8\xc5\x90\x00\x9a\x79"
+ "\x51\x9b\xab\x79\x09\xa1\x7f\x65\x74\xa0\xf8\x54\xfd\xf3\x74\x52"
+ "\x80\x09\x25\x33\xa4\xd5\x22\xba\x79\xc0\x77\xe0\x56\xfb\x19\xa9"
+ "\x8f\x23\x16\x29\xa9\x39\x54\x10\x0d\x85\xb9\x20\xd3\x27\xa2\x7d"
+ "\xe4\x81\x9e\x0a\x4a\xc4\xf6\xef\xc7\x0b\xb8\x6a\x50\xa9\xed\x72"
+ "\xb4\x79\x01\xf3\xc3\x89\x5d\x19\x5e\x9a\xf1\x35\x14\xcc\x04\x4c"
+ "\x2d\xe5\x0f\xd8\x07\xee\x50\xee\x3f\xaf\x74\x86\xcd\xc5\xf8\x34"
+ "\x0f\xeb\x32\x7f\x36\xcc\x03\xa8\xbc\xde\xd9\xf8\xfc\x01\x73\x83"
+ "\x74\x4a\x26\xdc\x70\x1a\x76\x71\x5a\xee\xac\x0b\xe0\xdb\x16\xd4"
+ "\x26\x7c\xfb\xb8\x96\x74\x00\x7d\xb8\x5c\x4a\x07\xfc\x9e\xc9\xff"
+ "\x4a\xd0\xaf\x86\x4b\xb0\xc6\x29\x8e\x3f\x2e\x9f\xa0\x33\xd3\xdf"
+ "\xb9\xe0\xd5\x48\xb9\xf0\x08\x7e\xae\xdd\xd0\x2e\xf5\x41\xd8\xa3"
+ "\x9a\xff\x76\x93\x04\x7a\xef\xd2\xf5\xb8\x05\xa1\x55\x8e\xe8\x03"
+ "\x9f\x6e\xd9\xc4\x75\xd0\xfe\x75\xd1\x77\x3f\x22\xbe\x2e\xc7\x27"
+ "\x10\x4e\x2c\xab\x2f\x38\x53\xcb\xe7\x27\x9d\xff\xd8\x86\xb7\xca"
+ "\xc1\x7e\xeb\x23\xd8\x8f\x5e\x85\xa3\x2a\xa3\xe6\xc8\x8f\x71\x30"
+ "\x98\x91\x1d\x11\x8d\x76\xdf\x42\xe8\x72\x6b\x41\x3a\x70\x46\x26"
+ "\x78\x16\xc8\x6a\x21\x66\x81\xdc\xec\xac\x3e\x5d\x8a\x9a\x01\x03"
+ "\xee\xee\x0a\x34\x1a\xad\xdc\xc9\x4f\x3d\x22\x3b\x48\x67\x43\x7d"
+ "\x7e\x53\x08\x91\x26\xbf\x7d\x60\x4a\xf4\xfb\x21\xcf\x74\xc9\xc6"
+ "\x47\x9b\x39\x58\x61\xde\x5d\x3c\xbe\x60\x2e\x2b\x6c\x08\x42\x3e"
+ "\xe3\x03\x76\x6d\xa8\xac\xba\x11\xb2\xce\x0f\xdb\x95\x6a\x33\xf4"
+ "\x00\xc9\x66\x13\xd4\x5f\xab\xe7\x1b\x17\x62\xa1\xe6\x4a\x82\x67"
+ "\x28\xa3\x7b\xf7\x4b\xfc\x57\xcb\x16\x3e\xfe\xb5\xa4\xef\x3b\x35"
+ "\xdd\x14\xd5\x48\x41\x5e\xa5\x62\xcc\x18\xba\x97\x6c\x75\xe9\x39"
+ "\x63\xd4\x9d\xce\x2d\x9d\x4c\xc3\x82\xb1\x31\x69\x91\x90\x3e\x6d"
+ "\x66\xc7\xea\xd3\x88\x02\xd3\x39\x10\x22\x04\x1a\xbf\xc5\x0d\x02"
+ "\xb8\x7c\x9a\x86\xc5\x04\x87\xef\xaf\x75\xe5\xc7\xe6\x21\xba\xa1"
+ "\xbd\x9c\x14\x90\xc3\x99\x80\xbb\x61\xe3\xe2\xc1\x79\xf0\xc6\x46"
+ "\x4f\x38\x86\x35\x93\x1a\x55\xd8\x76\x0f\x7c\xa2\xae\x3b\x6a\xa8"
+ "\xe4\x74\x74\xc2\x50\x38\xcf\xc5\xda\x85\xee\xe0\x2f\x23\x1a\x83"
+ "\x17\x54\xa7\x34\xa0\x1f\xd7\xd3\xb2\x53\xe3\x77\xfe\x8e\x97\x49"
+ "\xc5\x5b\xe0\x5f\xcb\x2c\x90\xe9\x09\x83\x40\x89\x81\x51\xf6\x40"
+ "\x64\x2c\x89\xca\xcf\x61\xda\x04\x0d\xaf\x3b\x48\xf9\x8a\xfa\x74"
+ "\x6a\x6a\xe5\x29\x5e\x3a\x6b\xee\xb5\x5e\xa3\x0c\x78\xf1\xe0\xcb"
+ "\x74\x69\x2c\x7b\xf6\x73\xc1\x53\x20\x8c\x15\x54\x03\x5d\x96\xe3"
+ "\x6a\x8d\x19\x5d\xec\x5a\xd4\xe3\x6b\x1a\x72\x27\x73\x73\xbb\x2e"
+ "\x7c\x4e\xbb\x63\x26\xdb\x9d\x9c\xde\x67\xd8\x50\x7c\x85\x1a\xff"
+ "\xf0\xd0\x12\x4d\x3e\x69\xb1\x2d\x2a\xd1\x28\x4a\xc9\x82\x1e\xd5"
+ "\xfc\xa3\x64\x0b\x2f\xcc\x4c\xef\x17\xa6\xe5\x0b\xd5\x76\xb4\x33"
+ "\xff\x3b\x3d\xc3\xb0\x28\xf7\x38\xf5\x7a\x76\x2c\x84\xf7\xcc\x4f"
+ "\x3a\xdf\x68\xab\xbc\x6b\x24\xac\x84\x8a\x09\x5e\x0d\x89\x9d\x85"
+ "\x98\xf5\x61\x60\x38\xb0\xdd\x86\xe1\xb5\x42\xa0\x6c\x25\x77\x28"
+ "\x8f\xf1\x21\xb3\xa8\xed\x8c\xfd\x18\xcf\x23\xae\x2a\x9f\x1c\x67"
+ "\xc3\x17\x48\x73\x3b\x6e\xbf\x02\x88\xed\x4d\xa2\x86\x07\x6a\x5d"
+ "\x16\x55\x3b\x87\x29\x88\xd0\x8d\xe3\x30\x3b\x89\x22\x5c\xa2\xb6"
+ "\xbb\xcf\xda\xd8\x1f\xe4\x7f\xa5\x50\xb9\x8b\xc2\x61\x73\x86\x61"
+ "\x92\x44\x1b\xc2\x9d\x34\x72\x81\x30\xca\x22\x83\x78\xe0\xa5\xb5"
+ "\x39\xba\xa3\x46\x7a\x4c\xd9\x2b\x5e\xaf\x42\xdf\xba\x80\x4a\x83"
+ "\x9c\x20\xe0\x86\x90\x88\x4e\xbf\x7b\xa6\x44\x3d\x7f\x9c\xbe\xc8"
+ "\xdf\x74\xe8\x2c\xf7\x4b\xc0\x06\x3f\x9e\x23\x30\xe8\x31\xc6\x07"
+ "\x5b\xc9\x26\xf1\x1c\xc8\xbe\xe3\xc7\xcb\x4f\x1b\x37\x09\xf0\xcf"
+ "\x0c\x5e\x1d\xac\x1c\xb8\x91\xcf\x0a\x54\x09\x6c\xa9\x4e\x9f\xa1"
+ "\x36\xde\x41\xa8\x67\xe4\x4c\x65\xc9\x28\x20\x0f\xbd\x49\x74\x7f"
+ "\x83\x26\x48\xb1\xe6\xca\x6f\xd8\x88\x27\x94\xdd\xa4\xaa\x03\x43"
+ "\xc6\x19\xab\x8b\x83\x78\x4f\x2a\x51\x34\x98\xff\x27\x6b\xda\x39"
+ "\xe4\x2e\xf6\xe9\xe7\xd6\x96\x86\x60\x3b\xc3\x80\xb8\xba\x51\x77"
+ "\x8a\x79\x07\x62\xb1\xaa\xa9\x58\x96\x54\x84\x04\x9e\xee\x24\x8d"
+ "\xf1\xac\x34\x03\x43\x8e\xd0\x92\xdc\x4d\xbc\xc7\x15\xdc\x82\xfc"
+ "\x19\x9b\x7e\x43\xe1\x36\xc5\x6b\xfb\xb8\x9e\xf4\x22\x5e\x29\x6f"
+ "\x4c\x45\xdd\xfe\xcb\x17\x77\xee\xd3\x6b\x80\x50\x96\xd0\x07\xa3"
+ "\xb2\xf0\x68\xc7\x40\xeb\x24\x16\x23\xa7\x57\xc4\xbb\x9c\x69\x16"
+ "\x49\x30\xb8\xd9\x4d\x41\x4e\x22\xc6\x24\x7f\x44\x59\x4e\x3c\x46"
+ "\x61\x64\x60\xc5\x82\xc2\x60\xc5\x63\xe7\xb3\xe1\xb9\xd1\x71\x65"
+ "\x32\xaa\x88\xa1\x4e\x98\xdb\x0b\x29\xe8\x5a\xa4\xbc\x61\x20\x62"
+ "\xbc\xea\xb0\x90\x3c\x2f\x29\xef\x74\x87\x4b\x1b\x36\xf7\x01\xde"
+ "\x30\xf0\x00\xe3\xd7\x2d\xf6\x52\x09\xe1\xe5\x84\x13\x04\xfe\x1f"
+ "\x2c\x1c\xeb\xfb\x2c\x40\x7d\x4d\xf5\x9c\x6e\x47\xe9\x2d\xb0\xca"
+ "\x88\x37\xf4\x8d\xbe\x50\xfb\xec\x5e\xee\x5d\x0f\x1a\x71\x42\xe3"
+ "\xc0\x9c\x57\xe3\x50\xba\x98\x0d\x79\xfa\x56\xe9\x7a\x09\x03\x75"
+ "\x21\x0f\x97\x69\xe0\xed\x9d\x10\x8f\x64\xdd\xd5\x10\xdc\x3b\x21"
+ "\x08\xc2\x7e\x7e\xac\x6e\x7c\x0b\xb9\x71\x65\x3e\xfa\x1c\xf3\x13"
+ "\xdc\x03\x9c\xf2\xa4\x21\xf1\xfc\x07\xaa\xef\xa0\x55\xd7\x21\xfc"
+ "\x0c\x17\x6a\x06\x57\x6b\x0e\x8e\x1d\xea\xb2\xc8\x23\xb3\xad\x42"
+ "\x00\x41\xe2\x9c\x1f\x2e\xa8\x51\x19\x3d\xdb\x24\x73\x4a\x8f\x08"
+ "\x74\xb5\x6b\x58\x48\x7a\x4e\x7b\xa6\x5c\x4b\x81\xd6\x38\xf9\xe5"
+ "\x66\xe3\x15\x9a\x74\x49\x68\x8e\x5b\x1e\xdd\x3f\x4f\xc8\xe3\x0c"
+ "\x73\x32\xf0\x35\x16\x8c\xd9\x84\xc3\x9a\x65\x16\x93\x65\x0f\x47"
+ "\x15\x97\xc8\xb4\x6a\x7f\x91\x0a\x05\xf2\x08\x36\xf0\x7e\x2c\xcb"
+ "\x79\xc4\xc4\xcb\x5a\xa0\x25\xc9\xe9\xac\x35\x8f\x56\xf6\x87\x4e"
+ "\x9b\x4b\x9d\x1a\x38\xb0\x43\x41\x94\x07\x17\x78\xec\xd3\x8c\x89"
+ "\x58\x09\xef\x07\xe1\xd8\x65\x97\x3e\xce\x61\xad\x51\x0a\x48\x3d"
+ "\x64\xd5\x6e\xa1\xe5\x86\x06\xb7\x22\xcd\x03\x44\xec\x94\x52\x15"
+ "\x5d\xf6\x9b\xc6\xb6\x22\x49\x5e\xb1\xdb\x01\x24\xd2\xc2\xac\x13"
+ "\xdc\xec\xb3\x93\x4c\x88\x3b\x11\x6d\x77\xab\x44\x67\x8c\xca\xa8"
+ "\x18\x47\xe3\xdc\x58\x13\x45\x43\xb3\x7f\xdf\x3a\xdf\xef\x0e\x4f"
+ "\xc0\xf3\x95\xb6\x7d\xdf\x97\xd7\x0d\x03\x9d\x14\x76\xd6\xae\x5f"
+ "\xb4\x13\x7f\x2a\xdb\x00\xa2\xe7\xfd\x33\xa6\x4d\x3f\xc1\x14\x58"
+ "\x7c\x55\x30\x6a\xae\x71\x0f\x73\xe3\x64\x1f\xc5\x2e\x6f\x82\x82"
+ "\x62\xd2\x02\xde\xf8\x29\x1e\xd5\x71\x3a\xbe\xcd\x43\xf8\x71\x5e"
+ "\xa1\xce\x68\xca\xcb\x23\xfa\x83\xba\xc2\x0f\x9b\x6b\x86\x5d\x9f",
STR(iv, iv_size,
"\x12\x34\x56\x78\x90\xab\xce\xf0\x00\x00\x00\x00\x00\x00\x00\x00"),
- }
+ }
};
const struct cipher_vectors_st aes128_xts_vectors[] = {
{
STR(key, key_size,
"\xa1\xb9\x0c\xba\x3f\x06\xac\x35\x3b\x2c\x34\x38\x76\x08\x17\x62"
- "\x09\x09\x23\x02\x6e\x91\x77\x18\x15\xf2\x9d\xab\x01\x93\x2f\x2f"),
+ "\x09\x09\x23\x02\x6e\x91\x77\x18\x15\xf2\x9d\xab\x01\x93\x2f\x2f"),
STR(plaintext, plaintext_size,
"\xeb\xab\xce\x95\xb1\x4d\x3c\x8d\x6f\xb3\x50\x39\x07\x90\x31\x1c"),
.ciphertext = (uint8_t *)
- "\x77\x8a\xe8\xb4\x3c\xb9\x8d\x5a\x82\x50\x81\xd5\xbe\x47\x1c\x63",
+ "\x77\x8a\xe8\xb4\x3c\xb9\x8d\x5a\x82\x50\x81\xd5\xbe\x47\x1c\x63",
STR(iv, iv_size,
"\x4f\xae\xf7\x11\x7c\xda\x59\xc6\x6e\x4b\x92\x01\x3e\x76\x8a\xd5"),
},
{
STR(key, key_size,
"\x75\x03\x72\xc3\xd8\x2f\x63\x38\x28\x67\xbe\x66\x62\xac\xfa\x4a"
- "\x25\x9b\xe3\xfa\x9b\xc6\x62\xa1\x15\x4f\xfa\xae\xd8\xb4\x48\xa5"),
+ "\x25\x9b\xe3\xfa\x9b\xc6\x62\xa1\x15\x4f\xfa\xae\xd8\xb4\x48\xa5"),
STR(plaintext, plaintext_size,
"\xd8\xe3\xa5\x65\x59\xa4\x36\xce\x0d\x8b\x21\x2c\x80\xa8\x8b\x23"
- "\xaf\x62\xb0\xe5\x98\xf2\x08\xe0\x3c\x1f\x2e\x9f\xa5\x63\xa5\x4b"),
+ "\xaf\x62\xb0\xe5\x98\xf2\x08\xe0\x3c\x1f\x2e\x9f\xa5\x63\xa5\x4b"),
.ciphertext = (uint8_t *)
- "\x49\x5f\x78\x55\x53\x5e\xfd\x13\x34\x64\xdc\x9a\x9a\xbf\x8a\x0f"
- "\x28\xfa\xcb\xce\x21\xbd\x3c\x22\x17\x8e\xc4\x89\xb7\x99\xe4\x91",
+ "\x49\x5f\x78\x55\x53\x5e\xfd\x13\x34\x64\xdc\x9a\x9a\xbf\x8a\x0f"
+ "\x28\xfa\xcb\xce\x21\xbd\x3c\x22\x17\x8e\xc4\x89\xb7\x99\xe4\x91",
STR(iv, iv_size,
"\x93\xa2\x92\x54\xc4\x7e\x42\x60\x66\x96\x21\x30\x7d\x4f\x5c\xd3"),
},
@@ -1258,16 +1248,16 @@ const struct cipher_vectors_st aes128_xts_vectors[] = {
const struct cipher_vectors_st aes256_xts_vectors[] = {
{
STR(key, key_size,
- "\x1e\xa6\x61\xc5\x8d\x94\x3a\x0e\x48\x01\xe4\x2f\x4b\x09\x47\x14"
- "\x9e\x7f\x9f\x8e\x3e\x68\xd0\xc7\x50\x52\x10\xbd\x31\x1a\x0e\x7c"
- "\xd6\xe1\x3f\xfd\xf2\x41\x8d\x8d\x19\x11\xc0\x04\xcd\xa5\x8d\xa3"
- "\xd6\x19\xb7\xe2\xb9\x14\x1e\x58\x31\x8e\xea\x39\x2c\xf4\x1b\x08"),
+ "\x1e\xa6\x61\xc5\x8d\x94\x3a\x0e\x48\x01\xe4\x2f\x4b\x09\x47\x14"
+ "\x9e\x7f\x9f\x8e\x3e\x68\xd0\xc7\x50\x52\x10\xbd\x31\x1a\x0e\x7c"
+ "\xd6\xe1\x3f\xfd\xf2\x41\x8d\x8d\x19\x11\xc0\x04\xcd\xa5\x8d\xa3"
+ "\xd6\x19\xb7\xe2\xb9\x14\x1e\x58\x31\x8e\xea\x39\x2c\xf4\x1b\x08"),
STR(plaintext, plaintext_size,
"\x2e\xed\xea\x52\xcd\x82\x15\xe1\xac\xc6\x47\xe8\x10\xbb\xc3\x64"
- "\x2e\x87\x28\x7f\x8d\x2e\x57\xe3\x6c\x0a\x24\xfb\xc1\x2a\x20\x2e"),
+ "\x2e\x87\x28\x7f\x8d\x2e\x57\xe3\x6c\x0a\x24\xfb\xc1\x2a\x20\x2e"),
.ciphertext = (uint8_t *)
- "\xcb\xaa\xd0\xe2\xf6\xce\xa3\xf5\x0b\x37\xf9\x34\xd4\x6a\x9b\x13"
- "\x0b\x9d\x54\xf0\x7e\x34\xf3\x6a\xf7\x93\xe8\x6f\x73\xc6\xd7\xdb",
+ "\xcb\xaa\xd0\xe2\xf6\xce\xa3\xf5\x0b\x37\xf9\x34\xd4\x6a\x9b\x13"
+ "\x0b\x9d\x54\xf0\x7e\x34\xf3\x6a\xf7\x93\xe8\x6f\x73\xc6\xd7\xdb",
STR(iv, iv_size,
"\xad\xf8\xd9\x26\x27\x46\x4a\xd2\xf0\x42\x8e\x84\xa9\xf8\x75\x64"),
},
@@ -1287,16 +1277,16 @@ const struct cipher_aead_vectors_st aes128_siv_vectors[] = {
"\x69\x6e\x74\x65\x78\x74\x20\x74\x6f\x20\x65\x6e\x63\x72\x79\x70"
"\x74\x20\x75\x73\x69\x6e\x67\x20\x53\x49\x56\x2d\x41\x45\x53"),
.ciphertext = (uint8_t *)
- "\xa4\xff\xb8\x7f\xdb\xa9\x7c\x89\x44\xa6\x23\x25\xf1\x33\xb4\xe0"
- "\x1c\xa5\x52\x76\xe2\x26\x1c\x1a\x1d\x1d\x42\x48\xd1\xda\x30\xba"
- "\x52\xb9\xc8\xd7\x95\x5d\x65\xc8\xd2\xce\x6e\xb7\xe3\x67\xd0",
+ "\xa4\xff\xb8\x7f\xdb\xa9\x7c\x89\x44\xa6\x23\x25\xf1\x33\xb4\xe0"
+ "\x1c\xa5\x52\x76\xe2\x26\x1c\x1a\x1d\x1d\x42\x48\xd1\xda\x30\xba"
+ "\x52\xb9\xc8\xd7\x95\x5d\x65\xc8\xd2\xce\x6e\xb7\xe3\x67\xd0",
STR(iv, iv_size,
"\x02\x03\x04"),
.tag_size = 16,
.tag = (void *)
- "\xf1\xdb\xa3\x3d\xe5\xb3\x36\x9e\x88\x3f\x67\xb6\xfc\x82\x3c\xee",
+ "\xf1\xdb\xa3\x3d\xe5\xb3\x36\x9e\x88\x3f\x67\xb6\xfc\x82\x3c\xee",
.tag_prepended = 1,
- }
+ }
};
const struct cipher_aead_vectors_st aes256_siv_vectors[] = {
@@ -1315,29 +1305,29 @@ const struct cipher_aead_vectors_st aes256_siv_vectors[] = {
"\x69\x6e\x74\x65\x78\x74\x20\x74\x6f\x20\x65\x6e\x63\x72\x79\x70"
"\x74\x20\x75\x73\x69\x6e\x67\x20\x53\x49\x56\x2d\x41\x45\x53"),
.ciphertext = (uint8_t *)
- "\x50\x93\x3d\xa8\x04\x7b\xc3\x06\xfa\xba\xf0\xc3\xd9\xfa\x84\x71"
+ "\x50\x93\x3d\xa8\x04\x7b\xc3\x06\xfa\xba\xf0\xc3\xd9\xfa\x84\x71"
"\xc7\x0a\x7d\xef\x39\xa2\xf9\x1d\x68\xa2\x02\x1c\x99\xac\x7e\x2a\x24"
"\x53\x5a\x13\x4b\xa2\x3e\xc1\x57\x87\xce\xbe\x5c\x53\xcc",
STR(iv, iv_size,
"\x09\xf9\x11\x02\x9d\x74\xe3\x5b\xd8\x41\x56\xc5\x63\x56\x88\xc0"),
.tag_size = 16,
.tag = (void *)
- "\x5a\x97\x9b\x0d\xa5\x8f\xde\x80\x51\x62\x1a\xe6\xbf\x96\xfe\xda",
+ "\x5a\x97\x9b\x0d\xa5\x8f\xde\x80\x51\x62\x1a\xe6\xbf\x96\xfe\xda",
.tag_prepended = 1,
- }
+ }
};
-const struct cipher_vectors_st chacha20_32_vectors[] = { /* RFC8439 */
+const struct cipher_vectors_st chacha20_32_vectors[] = { /* RFC8439 */
{
STR(key, key_size,
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f"),
STR(plaintext, plaintext_size,
"\x4c\x61\x64\x69\x65\x73\x20\x61\x6e\x64\x20\x47\x65\x6e\x74\x6c\x65\x6d\x65\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x63\x6c\x61\x73\x73\x20\x6f\x66\x20\x27\x39\x39\x3a\x20\x49\x66\x20\x49\x20\x63\x6f\x75\x6c\x64\x20\x6f\x66\x66\x65\x72\x20\x79\x6f\x75\x20\x6f\x6e\x6c\x79\x20\x6f\x6e\x65\x20\x74\x69\x70\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x66\x75\x74\x75\x72\x65\x2c\x20\x73\x75\x6e\x73\x63\x72\x65\x65\x6e\x20\x77\x6f\x75\x6c\x64\x20\x62\x65\x20\x69\x74\x2e"),
.ciphertext = (uint8_t *)
- "\x6e\x2e\x35\x9a\x25\x68\xf9\x80\x41\xba\x07\x28\xdd\x0d\x69\x81\xe9\x7e\x7a\xec\x1d\x43\x60\xc2\x0a\x27\xaf\xcc\xfd\x9f\xae\x0b\xf9\x1b\x65\xc5\x52\x47\x33\xab\x8f\x59\x3d\xab\xcd\x62\xb3\x57\x16\x39\xd6\x24\xe6\x51\x52\xab\x8f\x53\x0c\x35\x9f\x08\x61\xd8\x07\xca\x0d\xbf\x50\x0d\x6a\x61\x56\xa3\x8e\x08\x8a\x22\xb6\x5e\x52\xbc\x51\x4d\x16\xcc\xf8\x06\x81\x8c\xe9\x1a\xb7\x79\x37\x36\x5a\xf9\x0b\xbf\x74\xa3\x5b\xe6\xb4\x0b\x8e\xed\xf2\x78\x5e\x42\x87\x4d",
+ "\x6e\x2e\x35\x9a\x25\x68\xf9\x80\x41\xba\x07\x28\xdd\x0d\x69\x81\xe9\x7e\x7a\xec\x1d\x43\x60\xc2\x0a\x27\xaf\xcc\xfd\x9f\xae\x0b\xf9\x1b\x65\xc5\x52\x47\x33\xab\x8f\x59\x3d\xab\xcd\x62\xb3\x57\x16\x39\xd6\x24\xe6\x51\x52\xab\x8f\x53\x0c\x35\x9f\x08\x61\xd8\x07\xca\x0d\xbf\x50\x0d\x6a\x61\x56\xa3\x8e\x08\x8a\x22\xb6\x5e\x52\xbc\x51\x4d\x16\xcc\xf8\x06\x81\x8c\xe9\x1a\xb7\x79\x37\x36\x5a\xf9\x0b\xbf\x74\xa3\x5b\xe6\xb4\x0b\x8e\xed\xf2\x78\x5e\x42\x87\x4d",
STR(iv, iv_size,
"\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x00\x00\x00")
- },
+ },
};
static int test_cipher(gnutls_cipher_algorithm_t cipher,
@@ -1348,14 +1338,14 @@ static int test_cipher(gnutls_cipher_algorithm_t cipher,
int ret;
unsigned int i;
uint8_t tmp[4096 + 16];
- gnutls_datum_t key, iv = {NULL, 0};
+ gnutls_datum_t key, iv = { NULL, 0 };
for (i = 0; i < vectors_size; i++) {
- key.data = (void *) vectors[i].key;
+ key.data = (void *)vectors[i].key;
key.size = vectors[i].key_size;
if (vectors[i].iv != NULL) {
- iv.data = (void *) vectors[i].iv;
+ iv.data = (void *)vectors[i].iv;
iv.size = gnutls_cipher_get_iv_size(cipher);
}
@@ -1381,28 +1371,37 @@ static int test_cipher(gnutls_cipher_algorithm_t cipher,
(tmp, vectors[i].ciphertext,
vectors[i].plaintext_size) != 0) {
_gnutls_debug_log("%s test vector %d failed!\n",
- gnutls_cipher_get_name(cipher),
- i);
+ gnutls_cipher_get_name(cipher), i);
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
/* check in-place encryption */
- if (cipher != GNUTLS_CIPHER_ARCFOUR_128) { /* arcfour is stream */
+ if (cipher != GNUTLS_CIPHER_ARCFOUR_128) { /* arcfour is stream */
if (cipher == GNUTLS_CIPHER_MAGMA_CTR_ACPKM ||
cipher == GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM)
- _gnutls_cipher_set_key(hd, (void*)vectors[i].key, vectors[i].key_size);
- gnutls_cipher_set_iv(hd, (void*)vectors[i].iv, vectors[i].iv_size);
-
- memcpy(tmp, vectors[i].plaintext, vectors[i].plaintext_size);
- ret = gnutls_cipher_encrypt(hd, tmp, vectors[i].plaintext_size);
+ _gnutls_cipher_set_key(hd,
+ (void *)vectors[i].key,
+ vectors[i].key_size);
+ gnutls_cipher_set_iv(hd, (void *)vectors[i].iv,
+ vectors[i].iv_size);
+
+ memcpy(tmp, vectors[i].plaintext,
+ vectors[i].plaintext_size);
+ ret =
+ gnutls_cipher_encrypt(hd, tmp,
+ vectors[i].plaintext_size);
if (ret < 0)
return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
- if (memcmp(tmp, vectors[i].ciphertext, vectors[i].plaintext_size) != 0) {
- _gnutls_debug_log("%s vector %d in-place encryption failed!\n", gnutls_cipher_get_name(cipher), i);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ if (memcmp
+ (tmp, vectors[i].ciphertext,
+ vectors[i].plaintext_size) != 0) {
+ _gnutls_debug_log
+ ("%s vector %d in-place encryption failed!\n",
+ gnutls_cipher_get_name(cipher), i);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
}
@@ -1410,13 +1409,15 @@ static int test_cipher(gnutls_cipher_algorithm_t cipher,
if (vectors[i].internal_iv_size > 0) {
ret = _gnutls_cipher_get_iv(hd, tmp, sizeof(tmp));
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
if (memcmp(tmp, vectors[i].internal_iv, ret) != 0) {
- _gnutls_debug_log("%s vector %d internal IV check failed!\n",
- gnutls_cipher_get_name(cipher),
- i);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ _gnutls_debug_log
+ ("%s vector %d internal IV check failed!\n",
+ gnutls_cipher_get_name(cipher), i);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
}
@@ -1426,10 +1427,10 @@ static int test_cipher(gnutls_cipher_algorithm_t cipher,
iv.size = gnutls_cipher_get_iv_size(cipher);
for (i = 0; i < vectors_size; i++) {
- key.data = (void *) vectors[i].key;
+ key.data = (void *)vectors[i].key;
key.size = vectors[i].key_size;
- iv.data = (void *) vectors[i].iv;
+ iv.data = (void *)vectors[i].iv;
ret = gnutls_cipher_init(&hd, cipher, &key, &iv);
if (ret < 0)
@@ -1451,28 +1452,37 @@ static int test_cipher(gnutls_cipher_algorithm_t cipher,
(tmp, vectors[i].plaintext,
vectors[i].plaintext_size) != 0) {
_gnutls_debug_log("%s test vector %d failed!\n",
- gnutls_cipher_get_name(cipher),
- i);
+ gnutls_cipher_get_name(cipher), i);
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
/* check in-place decryption */
- if (cipher != GNUTLS_CIPHER_ARCFOUR_128) { /* arcfour is stream */
+ if (cipher != GNUTLS_CIPHER_ARCFOUR_128) { /* arcfour is stream */
if (cipher == GNUTLS_CIPHER_MAGMA_CTR_ACPKM ||
cipher == GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM)
- _gnutls_cipher_set_key(hd, (void*)vectors[i].key, vectors[i].key_size);
- gnutls_cipher_set_iv(hd, (void*)vectors[i].iv, vectors[i].iv_size);
-
- memcpy(tmp, vectors[i].ciphertext, vectors[i].plaintext_size);
- ret = gnutls_cipher_decrypt(hd, tmp, vectors[i].plaintext_size);
+ _gnutls_cipher_set_key(hd,
+ (void *)vectors[i].key,
+ vectors[i].key_size);
+ gnutls_cipher_set_iv(hd, (void *)vectors[i].iv,
+ vectors[i].iv_size);
+
+ memcpy(tmp, vectors[i].ciphertext,
+ vectors[i].plaintext_size);
+ ret =
+ gnutls_cipher_decrypt(hd, tmp,
+ vectors[i].plaintext_size);
if (ret < 0)
return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
- if (memcmp(tmp, vectors[i].plaintext, vectors[i].plaintext_size) != 0) {
- _gnutls_debug_log("%s vector %d in-place decryption failed!\n", gnutls_cipher_get_name(cipher), i);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ if (memcmp
+ (tmp, vectors[i].plaintext,
+ vectors[i].plaintext_size) != 0) {
+ _gnutls_debug_log
+ ("%s vector %d in-place decryption failed!\n",
+ gnutls_cipher_get_name(cipher), i);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
}
@@ -1480,8 +1490,7 @@ static int test_cipher(gnutls_cipher_algorithm_t cipher,
}
_gnutls_debug_log
- ("%s self check succeeded\n",
- gnutls_cipher_get_name(cipher));
+ ("%s self check succeeded\n", gnutls_cipher_get_name(cipher));
return 0;
}
@@ -1494,26 +1503,29 @@ static int test_cipher_all_block_sizes(gnutls_cipher_algorithm_t cipher,
int ret;
unsigned int i;
uint8_t tmp[384];
- gnutls_datum_t key, iv = {NULL, 0};
+ gnutls_datum_t key, iv = { NULL, 0 };
size_t block;
size_t offset;
for (i = 0; i < vectors_size; i++) {
for (block = 1; block <= vectors[i].plaintext_size; block++) {
- key.data = (void *) vectors[i].key;
+ key.data = (void *)vectors[i].key;
key.size = vectors[i].key_size;
- iv.data = (void *) vectors[i].iv;
+ iv.data = (void *)vectors[i].iv;
iv.size = gnutls_cipher_get_iv_size(cipher);
if (iv.size != vectors[i].iv_size)
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
ret = gnutls_cipher_init(&hd, cipher, &key, &iv);
if (ret < 0) {
_gnutls_debug_log("error initializing: %s\n",
- gnutls_cipher_get_name(cipher));
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ gnutls_cipher_get_name
+ (cipher));
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
for (offset = 0;
@@ -1521,21 +1533,31 @@ static int test_cipher_all_block_sizes(gnutls_cipher_algorithm_t cipher,
offset += block) {
ret =
gnutls_cipher_encrypt2(hd,
- vectors[i].plaintext + offset,
- MIN(block, vectors[i].plaintext_size - offset),
+ vectors[i].plaintext
+ + offset, MIN(block,
+ vectors
+ [i].plaintext_size
+ -
+ offset),
tmp + offset,
- sizeof(tmp) - offset);
+ sizeof(tmp) -
+ offset);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_SELF_TEST_ERROR);
}
if (memcmp
(tmp, vectors[i].ciphertext,
vectors[i].plaintext_size) != 0) {
- _gnutls_debug_log("%s encryption of test vector %d failed with block size %d/%d!\n",
- gnutls_cipher_get_name(cipher),
- i, (int)block, (int)vectors[i].plaintext_size);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ _gnutls_debug_log
+ ("%s encryption of test vector %d failed with block size %d/%d!\n",
+ gnutls_cipher_get_name(cipher), i,
+ (int)block,
+ (int)vectors[i].plaintext_size);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
gnutls_cipher_deinit(hd);
@@ -1544,36 +1566,46 @@ static int test_cipher_all_block_sizes(gnutls_cipher_algorithm_t cipher,
for (i = 0; i < vectors_size; i++) {
for (block = 1; block <= vectors[i].plaintext_size; block++) {
- key.data = (void *) vectors[i].key;
+ key.data = (void *)vectors[i].key;
key.size = vectors[i].key_size;
- iv.data = (void *) vectors[i].iv;
+ iv.data = (void *)vectors[i].iv;
iv.size = gnutls_cipher_get_iv_size(cipher);
ret = gnutls_cipher_init(&hd, cipher, &key, &iv);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
for (offset = 0;
offset + block <= vectors[i].plaintext_size;
offset += block) {
ret =
gnutls_cipher_decrypt2(hd,
- vectors[i].ciphertext + offset,
- MIN(block, vectors[i].plaintext_size - offset),
+ vectors[i].ciphertext
+ + offset, MIN(block,
+ vectors
+ [i].plaintext_size
+ -
+ offset),
tmp + offset,
- sizeof(tmp) - offset);
+ sizeof(tmp) -
+ offset);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_SELF_TEST_ERROR);
}
if (memcmp
(tmp, vectors[i].plaintext,
vectors[i].plaintext_size) != 0) {
- _gnutls_debug_log("%s decryption of test vector %d failed with block size %d!\n",
- gnutls_cipher_get_name(cipher),
- i, (int)block);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ _gnutls_debug_log
+ ("%s decryption of test vector %d failed with block size %d!\n",
+ gnutls_cipher_get_name(cipher), i,
+ (int)block);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
gnutls_cipher_deinit(hd);
@@ -1581,16 +1613,15 @@ static int test_cipher_all_block_sizes(gnutls_cipher_algorithm_t cipher,
}
_gnutls_debug_log
- ("%s self check succeeded\n",
- gnutls_cipher_get_name(cipher));
+ ("%s self check succeeded\n", gnutls_cipher_get_name(cipher));
return 0;
}
/* AEAD modes (compat APIs) */
static int test_cipher_aead_compat(gnutls_cipher_algorithm_t cipher,
- const struct cipher_aead_vectors_st *vectors,
- size_t vectors_size)
+ const struct cipher_aead_vectors_st *vectors,
+ size_t vectors_size)
{
gnutls_cipher_hd_t hd;
int ret;
@@ -1601,18 +1632,17 @@ static int test_cipher_aead_compat(gnutls_cipher_algorithm_t cipher,
unsigned tag_size;
_gnutls_debug_log("compat: running tests for: %s\n",
- gnutls_cipher_get_name(cipher));
+ gnutls_cipher_get_name(cipher));
for (i = 0; i < vectors_size; i++) {
memset(tmp, 0, sizeof(tmp));
- key.data = (void *) vectors[i].key;
+ key.data = (void *)vectors[i].key;
key.size = vectors[i].key_size;
- iv.data = (void *) vectors[i].iv;
+ iv.data = (void *)vectors[i].iv;
iv.size = vectors[i].iv_size;
tag_size = vectors[i].tag_size;
-
if (tag_size > gnutls_cipher_get_tag_size(cipher)) {
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
@@ -1620,40 +1650,48 @@ static int test_cipher_aead_compat(gnutls_cipher_algorithm_t cipher,
ret = gnutls_cipher_init(&hd, cipher, &key, &iv);
if (ret < 0) {
if (vectors[i].compat_apis == 0) {
- return 0; /* expected */
+ return 0; /* expected */
} else {
- _gnutls_debug_log("compat: error initializing: %s\n",
- gnutls_cipher_get_name(cipher));
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ _gnutls_debug_log
+ ("compat: error initializing: %s\n",
+ gnutls_cipher_get_name(cipher));
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
}
if (vectors[i].compat_apis == 0) {
- _gnutls_debug_log("compat: initialized but shouldn't: %s\n",
- gnutls_cipher_get_name(cipher));
+ _gnutls_debug_log
+ ("compat: initialized but shouldn't: %s\n",
+ gnutls_cipher_get_name(cipher));
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
if (vectors[i].auth_size) {
- ret = gnutls_cipher_add_auth(hd, vectors[i].auth, vectors[i].auth_size);
+ ret =
+ gnutls_cipher_add_auth(hd, vectors[i].auth,
+ vectors[i].auth_size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
- ret = gnutls_cipher_encrypt2(hd, vectors[i].plaintext, vectors[i].plaintext_size,
- tmp, sizeof(tmp));
+ ret =
+ gnutls_cipher_encrypt2(hd, vectors[i].plaintext,
+ vectors[i].plaintext_size, tmp,
+ sizeof(tmp));
if (ret < 0)
- return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
- ret = gnutls_cipher_tag(hd, tmp+vectors[i].plaintext_size, tag_size);
+ ret =
+ gnutls_cipher_tag(hd, tmp + vectors[i].plaintext_size,
+ tag_size);
if (ret < 0)
- return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
- if (memcmp(tmp+vectors[i].plaintext_size, vectors[i].tag, tag_size) != 0) {
+ if (memcmp
+ (tmp + vectors[i].plaintext_size, vectors[i].tag,
+ tag_size) != 0) {
_gnutls_debug_log
("compat: %s test vector %d failed (tag)!\n",
gnutls_cipher_get_name(cipher), i);
@@ -1669,70 +1707,102 @@ static int test_cipher_aead_compat(gnutls_cipher_algorithm_t cipher,
gnutls_cipher_get_name(cipher), i);
return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
}
if (vectors[i].plaintext_size > 0) {
/* check inplace encryption */
- gnutls_cipher_set_iv(hd, (void*)vectors[i].iv, vectors[i].iv_size);
- memcpy(tmp2, vectors[i].plaintext, vectors[i].plaintext_size);
+ gnutls_cipher_set_iv(hd, (void *)vectors[i].iv,
+ vectors[i].iv_size);
+ memcpy(tmp2, vectors[i].plaintext,
+ vectors[i].plaintext_size);
- ret = gnutls_cipher_encrypt(hd, tmp2, vectors[i].plaintext_size);
+ ret =
+ gnutls_cipher_encrypt(hd, tmp2,
+ vectors[i].plaintext_size);
if (ret < 0)
return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
if (memcmp(tmp, tmp2, vectors[i].plaintext_size) != 0) {
- _gnutls_debug_log("compat: %s vector %d in-place encryption failed!\n", gnutls_cipher_get_name(cipher), i);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ _gnutls_debug_log
+ ("compat: %s vector %d in-place encryption failed!\n",
+ gnutls_cipher_get_name(cipher), i);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
/* check decryption with separate buffers */
- gnutls_cipher_set_iv(hd, (void*)vectors[i].iv, vectors[i].iv_size);
+ gnutls_cipher_set_iv(hd, (void *)vectors[i].iv,
+ vectors[i].iv_size);
if (vectors[i].auth_size) {
- ret = gnutls_cipher_add_auth(hd, vectors[i].auth, vectors[i].auth_size);
+ ret =
+ gnutls_cipher_add_auth(hd, vectors[i].auth,
+ vectors
+ [i].auth_size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_SELF_TEST_ERROR);
}
ret =
- gnutls_cipher_decrypt2(hd, tmp, vectors[i].plaintext_size,
+ gnutls_cipher_decrypt2(hd, tmp,
+ vectors[i].plaintext_size,
tmp2, sizeof(tmp2));
if (ret < 0)
return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
- if (memcmp(tmp2, vectors[i].plaintext, vectors[i].plaintext_size) != 0) {
- _gnutls_debug_log("compat: %s test vector %d failed (decryption)!\n",
- gnutls_cipher_get_name(cipher), i);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ if (memcmp
+ (tmp2, vectors[i].plaintext,
+ vectors[i].plaintext_size) != 0) {
+ _gnutls_debug_log
+ ("compat: %s test vector %d failed (decryption)!\n",
+ gnutls_cipher_get_name(cipher), i);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
/* check in-place decryption */
if (vectors[i].plaintext_size > 0) {
- gnutls_cipher_set_iv(hd, (void*)vectors[i].iv, vectors[i].iv_size);
+ gnutls_cipher_set_iv(hd, (void *)vectors[i].iv,
+ vectors[i].iv_size);
if (vectors[i].auth_size) {
- ret = gnutls_cipher_add_auth(hd, vectors[i].auth, vectors[i].auth_size);
+ ret =
+ gnutls_cipher_add_auth(hd,
+ vectors
+ [i].auth,
+ vectors
+ [i].auth_size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_SELF_TEST_ERROR);
}
memcpy(tmp2, tmp, vectors[i].plaintext_size);
- ret = gnutls_cipher_decrypt(hd, tmp2, vectors[i].plaintext_size);
+ ret =
+ gnutls_cipher_decrypt(hd, tmp2,
+ vectors
+ [i].plaintext_size);
if (ret < 0)
return
gnutls_assert_val
(GNUTLS_E_SELF_TEST_ERROR);
- if (memcmp(tmp2, vectors[i].plaintext, vectors[i].plaintext_size) != 0) {
- _gnutls_debug_log("compat: %s vector %d in-place decryption failed!\n", gnutls_cipher_get_name(cipher), i);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ if (memcmp
+ (tmp2, vectors[i].plaintext,
+ vectors[i].plaintext_size) != 0) {
+ _gnutls_debug_log
+ ("compat: %s vector %d in-place decryption failed!\n",
+ gnutls_cipher_get_name(cipher), i);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_SELF_TEST_ERROR);
}
}
}
@@ -1750,9 +1820,9 @@ static int test_cipher_aead_compat(gnutls_cipher_algorithm_t cipher,
#define IOV_PARTS 8
/* AEAD modes - scatter read */
-static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
- const struct cipher_aead_vectors_st *vectors,
- size_t vectors_size, unsigned flags)
+static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher, const struct cipher_aead_vectors_st
+ *vectors, size_t vectors_size,
+ unsigned flags)
{
gnutls_aead_cipher_hd_t hd;
int ret;
@@ -1769,14 +1839,14 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
uint8_t *ciphertext;
_gnutls_debug_log("running scatter (iovec) tests for: %s\n",
- gnutls_cipher_get_name(cipher));
+ gnutls_cipher_get_name(cipher));
for (i = 0; i < vectors_size; i++) {
memset(tmp, 0, sizeof(tmp));
- key.data = (void *) vectors[i].key;
+ key.data = (void *)vectors[i].key;
key.size = vectors[i].key_size;
- iv.data = (void *) vectors[i].iv;
+ iv.data = (void *)vectors[i].iv;
iv.size = vectors[i].iv_size;
tag_size = vectors[i].tag_size;
@@ -1795,11 +1865,11 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
/* single vector */
auth_iov_len = 1;
- auth_iov[0].iov_base = (void*)vectors[i].auth;
+ auth_iov[0].iov_base = (void *)vectors[i].auth;
auth_iov[0].iov_len = vectors[i].auth_size;
iov_len = 1;
- iov[0].iov_base = (void*)vectors[i].plaintext;
+ iov[0].iov_base = (void *)vectors[i].plaintext;
iov[0].iov_len = vectors[i].plaintext_size;
ret =
@@ -1807,23 +1877,18 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
iv.data, iv.size,
auth_iov, auth_iov_len,
vectors[i].tag_size,
- iov, iov_len,
- tmp, &s);
+ iov, iov_len, tmp, &s);
if (ret < 0)
- return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
if (s != vectors[i].plaintext_size + tag_size) {
- return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
if (vectors[i].tag_prepended)
tag = tmp;
else
- tag = tmp+vectors[i].plaintext_size;
+ tag = tmp + vectors[i].plaintext_size;
if (memcmp(tag, vectors[i].tag, tag_size) != 0) {
_gnutls_debug_log
@@ -1833,7 +1898,7 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
}
if (vectors[i].tag_prepended)
- ciphertext = tmp+vectors[i].tag_size;
+ ciphertext = tmp + vectors[i].tag_size;
else
ciphertext = tmp;
@@ -1846,8 +1911,7 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
gnutls_cipher_get_name(cipher), i);
return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
}
@@ -1855,37 +1919,43 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
auth_iov_len = 0;
if (vectors[i].auth_size > IOV_PARTS) {
unsigned split = vectors[i].auth_size / IOV_PARTS;
- assert(split>0);
- for (z=0;z<IOV_PARTS;z++) {
- auth_iov[z].iov_base = (void*)(vectors[i].auth+(z*split));
- if (z==IOV_PARTS-1)
- auth_iov[z].iov_len = vectors[i].auth_size - z*split;
+ assert(split > 0);
+ for (z = 0; z < IOV_PARTS; z++) {
+ auth_iov[z].iov_base =
+ (void *)(vectors[i].auth + (z * split));
+ if (z == IOV_PARTS - 1)
+ auth_iov[z].iov_len =
+ vectors[i].auth_size - z * split;
else
auth_iov[z].iov_len = split;
auth_iov_len++;
}
} else {
auth_iov_len = 1;
- auth_iov[0].iov_base = (void*)vectors[i].auth;
+ auth_iov[0].iov_base = (void *)vectors[i].auth;
auth_iov[0].iov_len = vectors[i].auth_size;
}
iov_len = 0;
if (vectors[i].plaintext_size > IOV_PARTS) {
unsigned split = vectors[i].plaintext_size / IOV_PARTS;
- assert(split>0);
-
- for (z=0;z<IOV_PARTS;z++) {
- iov[z].iov_base = (void*)(vectors[i].plaintext+(z*split));
- if (z==IOV_PARTS-1)
- iov[z].iov_len = vectors[i].plaintext_size - z*split;
+ assert(split > 0);
+
+ for (z = 0; z < IOV_PARTS; z++) {
+ iov[z].iov_base =
+ (void *)(vectors[i].plaintext +
+ (z * split));
+ if (z == IOV_PARTS - 1)
+ iov[z].iov_len =
+ vectors[i].plaintext_size -
+ z * split;
else
iov[z].iov_len = split;
iov_len++;
}
} else {
iov_len = 1;
- iov[0].iov_base = (void*)vectors[i].plaintext;
+ iov[0].iov_base = (void *)vectors[i].plaintext;
iov[0].iov_len = vectors[i].plaintext_size;
}
@@ -1896,23 +1966,18 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
iv.data, iv.size,
auth_iov, auth_iov_len,
vectors[i].tag_size,
- iov, iov_len,
- tmp, &s);
+ iov, iov_len, tmp, &s);
if (ret < 0)
- return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
if (s != vectors[i].plaintext_size + tag_size) {
- return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
if (vectors[i].tag_prepended)
tag = tmp;
else
- tag = tmp+vectors[i].plaintext_size;
+ tag = tmp + vectors[i].plaintext_size;
if (memcmp(tag, vectors[i].tag, tag_size) != 0) {
_gnutls_debug_log
@@ -1922,7 +1987,7 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
}
if (vectors[i].tag_prepended)
- ciphertext = tmp+vectors[i].tag_size;
+ ciphertext = tmp + vectors[i].tag_size;
else
ciphertext = tmp;
@@ -1935,13 +2000,10 @@ static int test_cipher_aead_scatter(gnutls_cipher_algorithm_t cipher,
gnutls_cipher_get_name(cipher), i);
return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
}
-
-
gnutls_aead_cipher_deinit(hd);
}
@@ -1972,14 +2034,14 @@ static int test_cipher_aead(gnutls_cipher_algorithm_t cipher,
uint8_t *ciphertext;
_gnutls_debug_log("running tests for: %s\n",
- gnutls_cipher_get_name(cipher));
+ gnutls_cipher_get_name(cipher));
for (i = 0; i < vectors_size; i++) {
memset(tmp, 0, sizeof(tmp));
- key.data = (void *) vectors[i].key;
+ key.data = (void *)vectors[i].key;
key.size = vectors[i].key_size;
- iv.data = (void *) vectors[i].iv;
+ iv.data = (void *)vectors[i].iv;
iv.size = vectors[i].iv_size;
tag_size = vectors[i].tag_size;
@@ -2001,27 +2063,24 @@ static int test_cipher_aead(gnutls_cipher_algorithm_t cipher,
ret =
gnutls_aead_cipher_encrypt(hd,
- iv.data, iv.size,
- vectors[i].auth, vectors[i].auth_size,
- vectors[i].tag_size,
- vectors[i].plaintext,
- vectors[i].plaintext_size,
- tmp, &s);
+ iv.data, iv.size,
+ vectors[i].auth,
+ vectors[i].auth_size,
+ vectors[i].tag_size,
+ vectors[i].plaintext,
+ vectors[i].plaintext_size, tmp,
+ &s);
if (ret < 0)
- return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
if (s != vectors[i].plaintext_size + tag_size) {
- return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
if (vectors[i].tag_prepended)
tag = tmp;
else
- tag = tmp+vectors[i].plaintext_size;
+ tag = tmp + vectors[i].plaintext_size;
if (memcmp(tag, vectors[i].tag, tag_size) != 0) {
_gnutls_debug_log
@@ -2031,7 +2090,7 @@ static int test_cipher_aead(gnutls_cipher_algorithm_t cipher,
}
if (vectors[i].tag_prepended)
- ciphertext = tmp+vectors[i].tag_size;
+ ciphertext = tmp + vectors[i].tag_size;
else
ciphertext = tmp;
@@ -2044,8 +2103,7 @@ static int test_cipher_aead(gnutls_cipher_algorithm_t cipher,
gnutls_cipher_get_name(cipher), i);
return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
}
@@ -2054,22 +2112,24 @@ static int test_cipher_aead(gnutls_cipher_algorithm_t cipher,
s2 = sizeof(tmp2);
ret =
gnutls_aead_cipher_decrypt(hd,
- iv.data, iv.size,
- vectors[i].auth, vectors[i].auth_size,
- vectors[i].tag_size,
- tmp, s,
- tmp2, &s2);
+ iv.data, iv.size,
+ vectors[i].auth,
+ vectors[i].auth_size,
+ vectors[i].tag_size, tmp,
+ s, tmp2, &s2);
if (ret < 0)
return
- gnutls_assert_val
- (GNUTLS_E_SELF_TEST_ERROR);
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
if (s2 != vectors[i].plaintext_size ||
(vectors[i].plaintext_size > 0 &&
- memcmp(tmp2, vectors[i].plaintext, vectors[i].plaintext_size) != 0)) {
- _gnutls_debug_log("%s test vector %d failed (decryption)!\n",
- gnutls_cipher_get_name(cipher), i);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ memcmp(tmp2, vectors[i].plaintext,
+ vectors[i].plaintext_size) != 0)) {
+ _gnutls_debug_log
+ ("%s test vector %d failed (decryption)!\n",
+ gnutls_cipher_get_name(cipher), i);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
/* test tag verification */
@@ -2079,14 +2139,19 @@ static int test_cipher_aead(gnutls_cipher_algorithm_t cipher,
s2 = sizeof(tmp2);
ret =
gnutls_aead_cipher_decrypt(hd,
- iv.data, iv.size,
- vectors[i].auth, vectors[i].auth_size,
- vectors[i].tag_size,
- tmp, s,
- tmp2, &s2);
+ iv.data, iv.size,
+ vectors[i].auth,
+ vectors
+ [i].auth_size,
+ vectors
+ [i].tag_size,
+ tmp, s, tmp2,
+ &s2);
if (ret >= 0) {
- _gnutls_debug_log("%s: tag check failed\n", gnutls_cipher_get_name(cipher));
+ _gnutls_debug_log
+ ("%s: tag check failed\n",
+ gnutls_cipher_get_name(cipher));
return
gnutls_assert_val
(GNUTLS_E_SELF_TEST_ERROR);
@@ -2098,14 +2163,11 @@ static int test_cipher_aead(gnutls_cipher_algorithm_t cipher,
}
_gnutls_debug_log
- ("%s self check succeeded\n",
- gnutls_cipher_get_name(cipher));
+ ("%s self check succeeded\n", gnutls_cipher_get_name(cipher));
return test_cipher_aead_scatter(cipher, vectors, vectors_size, flags);
}
-
-
struct hash_vectors_st {
const uint8_t *plaintext;
unsigned int plaintext_size;
@@ -2219,55 +2281,55 @@ const struct hash_vectors_st gostr_94_vectors[] = {
"The quick brown fox jumps over the lazy dog"),
STR(output, output_size,
"\x90\x04\x29\x4a\x36\x1a\x50\x8c\x58\x6f\xe5\x3d\x1f\x1b\x02\x74\x67\x65\xe7\x1b\x76\x54\x72\x78\x6e\x47\x70\xd5\x65\x83\x0a\x76"),
- },
+ },
};
/* GOST R 34.11-2012 */
const struct hash_vectors_st streebog_512_vectors[] = {
{
- STR(plaintext, plaintext_size,
- "\xd1\xe5\x20\xe2\xe5\xf2\xf0\xe8\x2c\x20\xd1\xf2\xf0\xe8\xe1\xee"
- "\xe6\xe8\x20\xe2\xed\xf3\xf6\xe8\x2c\x20\xe2\xe5\xfe\xf2\xfa\x20"
- "\xf1\x20\xec\xee\xf0\xff\x20\xf1\xf2\xf0\xe5\xeb\xe0\xec\xe8\x20"
- "\xed\xe0\x20\xf5\xf0\xe0\xe1\xf0\xfb\xff\x20\xef\xeb\xfa\xea\xfb"
- "\x20\xc8\xe3\xee\xf0\xe5\xe2\xfb"),
- STR(output, output_size,
- "\x1e\x88\xe6\x22\x26\xbf\xca\x6f\x99\x94\xf1\xf2\xd5\x15\x69\xe0"
- "\xda\xf8\x47\x5a\x3b\x0f\xe6\x1a\x53\x00\xee\xe4\x6d\x96\x13\x76"
- "\x03\x5f\xe8\x35\x49\xad\xa2\xb8\x62\x0f\xcd\x7c\x49\x6c\xe5\xb3"
- "\x3f\x0c\xb9\xdd\xdc\x2b\x64\x60\x14\x3b\x03\xda\xba\xc9\xfb\x28"),
- },
- {
- STR(plaintext, plaintext_size,
- "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
- "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
- "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
- "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
- "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
- "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
- "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
- "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"),
- STR(output, output_size,
- "\x90\xa1\x61\xd1\x2a\xd3\x09\x49\x8d\x3f\xe5\xd4\x82\x02\xd8\xa4"
- "\xe9\xc4\x06\xd6\xa2\x64\xae\xab\x25\x8a\xc5\xec\xc3\x7a\x79\x62"
- "\xaa\xf9\x58\x7a\x5a\xbb\x09\xb6\xbb\x81\xec\x4b\x37\x52\xa3\xff"
- "\x5a\x83\x8e\xf1\x75\xbe\x57\x72\x05\x6b\xc5\xfe\x54\xfc\xfc\x7e"),
- },
+ STR(plaintext, plaintext_size,
+ "\xd1\xe5\x20\xe2\xe5\xf2\xf0\xe8\x2c\x20\xd1\xf2\xf0\xe8\xe1\xee"
+ "\xe6\xe8\x20\xe2\xed\xf3\xf6\xe8\x2c\x20\xe2\xe5\xfe\xf2\xfa\x20"
+ "\xf1\x20\xec\xee\xf0\xff\x20\xf1\xf2\xf0\xe5\xeb\xe0\xec\xe8\x20"
+ "\xed\xe0\x20\xf5\xf0\xe0\xe1\xf0\xfb\xff\x20\xef\xeb\xfa\xea\xfb"
+ "\x20\xc8\xe3\xee\xf0\xe5\xe2\xfb"),
+ STR(output, output_size,
+ "\x1e\x88\xe6\x22\x26\xbf\xca\x6f\x99\x94\xf1\xf2\xd5\x15\x69\xe0"
+ "\xda\xf8\x47\x5a\x3b\x0f\xe6\x1a\x53\x00\xee\xe4\x6d\x96\x13\x76"
+ "\x03\x5f\xe8\x35\x49\xad\xa2\xb8\x62\x0f\xcd\x7c\x49\x6c\xe5\xb3"
+ "\x3f\x0c\xb9\xdd\xdc\x2b\x64\x60\x14\x3b\x03\xda\xba\xc9\xfb\x28"),
+ },
+ {
+ STR(plaintext, plaintext_size,
+ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
+ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
+ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
+ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
+ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
+ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
+ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
+ "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"),
+ STR(output, output_size,
+ "\x90\xa1\x61\xd1\x2a\xd3\x09\x49\x8d\x3f\xe5\xd4\x82\x02\xd8\xa4"
+ "\xe9\xc4\x06\xd6\xa2\x64\xae\xab\x25\x8a\xc5\xec\xc3\x7a\x79\x62"
+ "\xaa\xf9\x58\x7a\x5a\xbb\x09\xb6\xbb\x81\xec\x4b\x37\x52\xa3\xff"
+ "\x5a\x83\x8e\xf1\x75\xbe\x57\x72\x05\x6b\xc5\xfe\x54\xfc\xfc\x7e"),
+ },
};
/* GOST R 34.11-2012 */
const struct hash_vectors_st streebog_256_vectors[] = {
{
- STR(plaintext, plaintext_size,
- "\xd1\xe5\x20\xe2\xe5\xf2\xf0\xe8\x2c\x20\xd1\xf2\xf0\xe8\xe1\xee"
- "\xe6\xe8\x20\xe2\xed\xf3\xf6\xe8\x2c\x20\xe2\xe5\xfe\xf2\xfa\x20"
- "\xf1\x20\xec\xee\xf0\xff\x20\xf1\xf2\xf0\xe5\xeb\xe0\xec\xe8\x20"
- "\xed\xe0\x20\xf5\xf0\xe0\xe1\xf0\xfb\xff\x20\xef\xeb\xfa\xea\xfb"
- "\x20\xc8\xe3\xee\xf0\xe5\xe2\xfb"),
- STR(output, output_size,
- "\x9d\xd2\xfe\x4e\x90\x40\x9e\x5d\xa8\x7f\x53\x97\x6d\x74\x05\xb0"
- "\xc0\xca\xc6\x28\xfc\x66\x9a\x74\x1d\x50\x06\x3c\x55\x7e\x8f\x50"),
- },
+ STR(plaintext, plaintext_size,
+ "\xd1\xe5\x20\xe2\xe5\xf2\xf0\xe8\x2c\x20\xd1\xf2\xf0\xe8\xe1\xee"
+ "\xe6\xe8\x20\xe2\xed\xf3\xf6\xe8\x2c\x20\xe2\xe5\xfe\xf2\xfa\x20"
+ "\xf1\x20\xec\xee\xf0\xff\x20\xf1\xf2\xf0\xe5\xeb\xe0\xec\xe8\x20"
+ "\xed\xe0\x20\xf5\xf0\xe0\xe1\xf0\xfb\xff\x20\xef\xeb\xfa\xea\xfb"
+ "\x20\xc8\xe3\xee\xf0\xe5\xe2\xfb"),
+ STR(output, output_size,
+ "\x9d\xd2\xfe\x4e\x90\x40\x9e\x5d\xa8\x7f\x53\x97\x6d\x74\x05\xb0"
+ "\xc0\xca\xc6\x28\xfc\x66\x9a\x74\x1d\x50\x06\x3c\x55\x7e\x8f\x50"),
+ },
};
#define HASH_DATA_SIZE 64
@@ -2330,16 +2392,19 @@ static int test_digest(gnutls_digest_algorithm_t dig,
&vectors[i].plaintext[1],
vectors[i].plaintext_size - 1);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
memset(data, 0xaa, data_size);
gnutls_hash_deinit(copy, data);
if (memcmp(data, vectors[i].output,
- vectors[i].output_size) != 0) {
- _gnutls_debug_log("%s copy test vector %d failed!\n",
- gnutls_digest_get_name(dig), i);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ vectors[i].output_size) != 0) {
+ _gnutls_debug_log
+ ("%s copy test vector %d failed!\n",
+ gnutls_digest_get_name(dig), i);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
}
}
@@ -2350,7 +2415,6 @@ static int test_digest(gnutls_digest_algorithm_t dig,
return 0;
}
-
struct mac_vectors_st {
const uint8_t *key;
unsigned int key_size;
@@ -2433,7 +2497,7 @@ const struct mac_vectors_st hmac_gostr_94_vectors[] = {
STR(output, output_size,
"\xba\xd7\x0b\x61\xc4\x10\x95\xbc\x47\xe1\x14\x1c\xfa\xed\x42\x72"
"\x6a\x5c\xee\xbd\x62\xce\x75\xdb\xbb\x9a\xd7\x6c\xda\x9f\x72\xf7"),
- },
+ },
};
/* RFC 7836 */
@@ -2449,7 +2513,7 @@ const struct mac_vectors_st hmac_streebog_512_vectors[] = {
"\x54\x9d\x31\xf0\x37\xf9\xdf\x9b\x90\x55\x00\xe1\x71\x92\x3a\x77"
"\x3d\x5f\x15\x30\xf2\xed\x7e\x96\x4c\xb2\xee\xdc\x29\xe9\xad\x2f"
"\x3a\xfe\x93\xb2\x81\x4f\x79\xf5\x00\x0f\xfc\x03\x66\xc2\x51\xe6"),
- },
+ },
};
/* RFC 7836 */
@@ -2463,33 +2527,33 @@ const struct mac_vectors_st hmac_streebog_256_vectors[] = {
STR(output, output_size,
"\xa1\xaa\x5f\x7d\xe4\x02\xd7\xb3\xd3\x23\xf2\x99\x1c\x8d\x45\x34"
"\x01\x31\x37\x01\x0a\x83\x75\x4f\xd0\xaf\x6d\x7c\xd4\x92\x2e\xd9"),
- },
+ },
};
-const struct mac_vectors_st aes_cmac_128_vectors[] = { /* NIST SP800-38A */
+const struct mac_vectors_st aes_cmac_128_vectors[] = { /* NIST SP800-38A */
{
STR(key, key_size,
"\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c"),
STR(plaintext, plaintext_size,
- "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a"),
+ "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a"),
STR(output, output_size,
"\x07\x0a\x16\xb4\x6b\x4d\x41\x44\xf7\x9b\xdd\x9d\xd0\x4a\x28\x7c"),
},
};
-const struct mac_vectors_st aes_cmac_256_vectors[] = { /* NIST SP800-38A */
+const struct mac_vectors_st aes_cmac_256_vectors[] = { /* NIST SP800-38A */
{
STR(key, key_size,
"\x60\x3d\xeb\x10\x15\xca\x71\xbe\x2b\x73\xae\xf0\x85\x7d\x77\x81"
- "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4"),
+ "\x1f\x35\x2c\x07\x3b\x61\x08\xd7\x2d\x98\x10\xa3\x09\x14\xdf\xf4"),
STR(plaintext, plaintext_size,
- "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a"),
+ "\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a"),
STR(output, output_size,
"\x28\xa7\x02\x3f\x45\x2e\x8f\x82\xbd\x4b\xf2\x8d\x8c\x37\xc3\x5c"),
},
};
-const struct mac_vectors_st aes_gmac_128_vectors[] = { /* NIST test vectors */
+const struct mac_vectors_st aes_gmac_128_vectors[] = { /* NIST test vectors */
{
STR(key, key_size,
"\x23\x70\xe3\x20\xd4\x34\x42\x08\xe0\xff\x56\x83\xf2\x43\xb2\x13"),
@@ -2499,10 +2563,10 @@ const struct mac_vectors_st aes_gmac_128_vectors[] = { /* NIST test vectors */
"\xd4\x3a\x8e\x50\x89\xee\xa0\xd0\x26\xc0\x3a\x85\x17\x8b\x27\xda"),
STR(output, output_size,
"\x2a\x04\x9c\x04\x9d\x25\xaa\x95\x96\x9b\x45\x1d\x93\xc3\x1c\x6e"),
- },
+ },
};
-const struct mac_vectors_st aes_gmac_192_vectors[] = { /* NIST test vectors */
+const struct mac_vectors_st aes_gmac_192_vectors[] = { /* NIST test vectors */
{
STR(key, key_size,
"\xaa\x92\x1c\xb5\xa2\x43\xab\x08\x91\x1f\x32\x89\x26\x6b\x39\xda"
@@ -2513,10 +2577,10 @@ const struct mac_vectors_st aes_gmac_192_vectors[] = { /* NIST test vectors */
"\x48\x74\x43\xc7\xc1\x4c\xe4\x74\xcb\x3d\x29\x1f\x25\x70\x70\xa2"),
STR(output, output_size,
"\xb1\x26\x74\xfb\xea\xc6\x88\x9a\x24\x94\x8f\x27\x92\xe3\x0a\x50"),
- },
+ },
};
-const struct mac_vectors_st aes_gmac_256_vectors[] = { /* NIST test vectors */
+const struct mac_vectors_st aes_gmac_256_vectors[] = { /* NIST test vectors */
{
STR(key, key_size,
"\x6d\xfd\xaf\xd6\x70\x3c\x28\x5c\x01\xf1\x4f\xd1\x0a\x60\x12\x86"
@@ -2527,51 +2591,51 @@ const struct mac_vectors_st aes_gmac_256_vectors[] = { /* NIST test vectors */
"\xc0\xd2\x49\x87\x19\x92\xe7\x03\x02\xae\x00\x81\x93\xd1\xe8\x9f"),
STR(output, output_size,
"\x4a\xa4\xcc\x69\xf8\x4e\xe6\xac\x16\xd9\xbf\xb4\xe0\x5d\xe5\x00"),
- },
+ },
};
const struct mac_vectors_st gost28147_tc26z_imit_vectors[] = {
{
- STR(key, key_size,
- "\x9d\x05\xb7\x9e\x90\xca\xd0\x0a\x2c\xda\xd2\x2e\xf4\xe8\x6f\x5c"
- "\xf5\xdc\x37\x68\x19\x85\xb3\xbf\xaa\x18\xc1\xc3\x05\x0a\x91\xa2"),
- STR(plaintext, plaintext_size,
- "\xb5\xa1\xf0\xe3\xce\x2f\x02\x1d\x67\x61\x94\x34\x5c\x41\xe3\x6e"),
- STR(output, output_size,
- "\x03\xe5\x67\x66"),
- },
+ STR(key, key_size,
+ "\x9d\x05\xb7\x9e\x90\xca\xd0\x0a\x2c\xda\xd2\x2e\xf4\xe8\x6f\x5c"
+ "\xf5\xdc\x37\x68\x19\x85\xb3\xbf\xaa\x18\xc1\xc3\x05\x0a\x91\xa2"),
+ STR(plaintext, plaintext_size,
+ "\xb5\xa1\xf0\xe3\xce\x2f\x02\x1d\x67\x61\x94\x34\x5c\x41\xe3\x6e"),
+ STR(output, output_size,
+ "\x03\xe5\x67\x66"),
+ },
};
/* GOST R 34.13-2015 */
const struct mac_vectors_st magma_omac_vectors[] = {
{
- STR(key, key_size,
- "\xff\xee\xdd\xcc\xbb\xaa\x99\x88\x77\x66\x55\x44\x33\x22\x11\x00"
- "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"),
- STR(plaintext, plaintext_size,
- "\x92\xde\xf0\x6b\x3c\x13\x0a\x59"
- "\xdb\x54\xc7\x04\xf8\x18\x9d\x20"
- "\x4a\x98\xfb\x2e\x67\xa8\x02\x4c"
- "\x89\x12\x40\x9b\x17\xb5\x7e\x41"),
- STR(output, output_size,
- "\x15\x4e\x72\x10\x20\x30\xc5\xbb"),
- },
+ STR(key, key_size,
+ "\xff\xee\xdd\xcc\xbb\xaa\x99\x88\x77\x66\x55\x44\x33\x22\x11\x00"
+ "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"),
+ STR(plaintext, plaintext_size,
+ "\x92\xde\xf0\x6b\x3c\x13\x0a\x59"
+ "\xdb\x54\xc7\x04\xf8\x18\x9d\x20"
+ "\x4a\x98\xfb\x2e\x67\xa8\x02\x4c"
+ "\x89\x12\x40\x9b\x17\xb5\x7e\x41"),
+ STR(output, output_size,
+ "\x15\x4e\x72\x10\x20\x30\xc5\xbb"),
+ },
};
/* GOST R 34.13-2015 */
const struct mac_vectors_st kuznyechik_omac_vectors[] = {
{
- STR(key, key_size,
- "\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x00\x11\x22\x33\x44\x55\x66\x77"
- "\xfe\xdc\xba\x98\x76\x54\x32\x10\x01\x23\x45\x67\x89\xab\xcd\xef"),
- STR(plaintext, plaintext_size,
- "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
- "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
- "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
- "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"),
- STR(output, output_size,
- "\x33\x6f\x4d\x29\x60\x59\xfb\xe3\x4d\xde\xb3\x5b\x37\x74\x9c\x67"),
- },
+ STR(key, key_size,
+ "\x88\x99\xaa\xbb\xcc\xdd\xee\xff\x00\x11\x22\x33\x44\x55\x66\x77"
+ "\xfe\xdc\xba\x98\x76\x54\x32\x10\x01\x23\x45\x67\x89\xab\xcd\xef"),
+ STR(plaintext, plaintext_size,
+ "\x11\x22\x33\x44\x55\x66\x77\x00\xff\xee\xdd\xcc\xbb\xaa\x99\x88"
+ "\x00\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a"
+ "\x11\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00"
+ "\x22\x33\x44\x55\x66\x77\x88\x99\xaa\xbb\xcc\xee\xff\x0a\x00\x11"),
+ STR(output, output_size,
+ "\x33\x6f\x4d\x29\x60\x59\xfb\xe3\x4d\xde\xb3\x5b\x37\x74\x9c\x67"),
+ },
};
static int test_mac(gnutls_mac_algorithm_t mac,
@@ -2639,24 +2703,25 @@ static int test_mac(gnutls_mac_algorithm_t mac,
&vectors[i].plaintext[1],
vectors[i].plaintext_size - 1);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
memset(data, 0xaa, data_size);
gnutls_hmac_deinit(copy, data);
if (memcmp(data, vectors[i].output,
- vectors[i].output_size) != 0) {
+ vectors[i].output_size) != 0) {
_gnutls_debug_log
- ("MAC-%s copy test vector %d failed!\n",
- gnutls_mac_get_name(mac), i);
- return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
+ ("MAC-%s copy test vector %d failed!\n",
+ gnutls_mac_get_name(mac), i);
+ return
+ gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
}
}
_gnutls_debug_log
- ("MAC-%s self check succeeded\n",
- gnutls_mac_get_name(mac));
+ ("MAC-%s self check succeeded\n", gnutls_mac_get_name(mac));
return 0;
}
@@ -2718,10 +2783,10 @@ int gnutls_cipher_self_test(unsigned flags, gnutls_cipher_algorithm_t cipher)
aes256_cbc_vectors);
FALLTHROUGH;
NON_FIPS_CASE(GNUTLS_CIPHER_3DES_CBC, test_cipher,
- tdes_cbc_vectors);
+ tdes_cbc_vectors);
FALLTHROUGH;
NON_FIPS_CASE(GNUTLS_CIPHER_ARCFOUR_128, test_cipher,
- arcfour_vectors);
+ arcfour_vectors);
FALLTHROUGH;
CASE(GNUTLS_CIPHER_AES_128_GCM, test_cipher_aead,
aes128_gcm_vectors);
@@ -2733,19 +2798,16 @@ int gnutls_cipher_self_test(unsigned flags, gnutls_cipher_algorithm_t cipher)
aes256_gcm_vectors);
FALLTHROUGH;
NON_FIPS_CASE(GNUTLS_CIPHER_CHACHA20_POLY1305, test_cipher_aead,
- chacha_poly1305_vectors);
+ chacha_poly1305_vectors);
FALLTHROUGH;
CASE2(GNUTLS_CIPHER_AES_128_CFB8, test_cipher,
- test_cipher_all_block_sizes,
- aes128_cfb8_vectors);
+ test_cipher_all_block_sizes, aes128_cfb8_vectors);
FALLTHROUGH;
CASE2(GNUTLS_CIPHER_AES_192_CFB8, test_cipher,
- test_cipher_all_block_sizes,
- aes192_cfb8_vectors);
+ test_cipher_all_block_sizes, aes192_cfb8_vectors);
FALLTHROUGH;
CASE2(GNUTLS_CIPHER_AES_256_CFB8, test_cipher,
- test_cipher_all_block_sizes,
- aes256_cfb8_vectors);
+ test_cipher_all_block_sizes, aes256_cfb8_vectors);
FALLTHROUGH;
CASE(GNUTLS_CIPHER_AES_128_XTS, test_cipher,
aes128_xts_vectors);
@@ -2754,17 +2816,17 @@ int gnutls_cipher_self_test(unsigned flags, gnutls_cipher_algorithm_t cipher)
aes256_xts_vectors);
FALLTHROUGH;
NON_FIPS_CASE(GNUTLS_CIPHER_AES_128_SIV, test_cipher_aead,
- aes128_siv_vectors);
+ aes128_siv_vectors);
FALLTHROUGH;
NON_FIPS_CASE(GNUTLS_CIPHER_AES_256_SIV, test_cipher_aead,
- aes256_siv_vectors);
+ aes256_siv_vectors);
FALLTHROUGH;
NON_FIPS_CASE(GNUTLS_CIPHER_CHACHA20_32, test_cipher,
- chacha20_32_vectors);
+ chacha20_32_vectors);
FALLTHROUGH;
/* The same test vector for _32 variant should work */
NON_FIPS_CASE(GNUTLS_CIPHER_CHACHA20_64, test_cipher,
- chacha20_32_vectors);
+ chacha20_32_vectors);
#if ENABLE_GOST
FALLTHROUGH;
NON_FIPS_CASE(GNUTLS_CIPHER_GOST28147_CPA_CFB, test_cipher,
@@ -2832,17 +2894,23 @@ int gnutls_mac_self_test(unsigned flags, gnutls_mac_algorithm_t mac)
CASE(GNUTLS_MAC_SHA512, test_mac, hmac_sha512_vectors);
#if ENABLE_GOST
FALLTHROUGH;
- NON_FIPS_CASE(GNUTLS_MAC_GOSTR_94, test_mac, hmac_gostr_94_vectors);
+ NON_FIPS_CASE(GNUTLS_MAC_GOSTR_94, test_mac,
+ hmac_gostr_94_vectors);
FALLTHROUGH;
- NON_FIPS_CASE(GNUTLS_MAC_STREEBOG_512, test_mac, hmac_streebog_512_vectors);
+ NON_FIPS_CASE(GNUTLS_MAC_STREEBOG_512, test_mac,
+ hmac_streebog_512_vectors);
FALLTHROUGH;
- NON_FIPS_CASE(GNUTLS_MAC_STREEBOG_256, test_mac, hmac_streebog_256_vectors);
+ NON_FIPS_CASE(GNUTLS_MAC_STREEBOG_256, test_mac,
+ hmac_streebog_256_vectors);
FALLTHROUGH;
- NON_FIPS_CASE(GNUTLS_MAC_GOST28147_TC26Z_IMIT, test_mac, gost28147_tc26z_imit_vectors);
+ NON_FIPS_CASE(GNUTLS_MAC_GOST28147_TC26Z_IMIT, test_mac,
+ gost28147_tc26z_imit_vectors);
FALLTHROUGH;
- NON_FIPS_CASE(GNUTLS_MAC_MAGMA_OMAC, test_mac, magma_omac_vectors);
+ NON_FIPS_CASE(GNUTLS_MAC_MAGMA_OMAC, test_mac,
+ magma_omac_vectors);
FALLTHROUGH;
- NON_FIPS_CASE(GNUTLS_MAC_KUZNYECHIK_OMAC, test_mac, kuznyechik_omac_vectors);
+ NON_FIPS_CASE(GNUTLS_MAC_KUZNYECHIK_OMAC, test_mac,
+ kuznyechik_omac_vectors);
#endif
FALLTHROUGH;
CASE(GNUTLS_MAC_AES_CMAC_128, test_mac, aes_cmac_128_vectors);
@@ -2906,11 +2974,14 @@ int gnutls_digest_self_test(unsigned flags, gnutls_digest_algorithm_t digest)
#endif
#if ENABLE_GOST
FALLTHROUGH;
- NON_FIPS_CASE(GNUTLS_DIG_GOSTR_94, test_digest, gostr_94_vectors);
+ NON_FIPS_CASE(GNUTLS_DIG_GOSTR_94, test_digest,
+ gostr_94_vectors);
FALLTHROUGH;
- NON_FIPS_CASE(GNUTLS_DIG_STREEBOG_512, test_digest, streebog_512_vectors);
+ NON_FIPS_CASE(GNUTLS_DIG_STREEBOG_512, test_digest,
+ streebog_512_vectors);
FALLTHROUGH;
- NON_FIPS_CASE(GNUTLS_DIG_STREEBOG_256, test_digest, streebog_256_vectors);
+ NON_FIPS_CASE(GNUTLS_DIG_STREEBOG_256, test_digest,
+ streebog_256_vectors);
#endif
break;
default:
@@ -2936,57 +3007,57 @@ struct hkdf_vectors_st {
const struct hkdf_vectors_st hkdf_sha256_vectors[] = {
/* RFC 5869: A.1. Test Case 1: Basic test case with SHA-256 */
{
- STR(ikm, ikm_size,
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
- "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"),
- STR(salt, salt_size,
- "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c"),
- STR(prk, prk_size,
- "\x07\x77\x09\x36\x2c\x2e\x32\xdf\x0d\xdc\x3f\x0d\xc4\x7b"
- "\xba\x63\x90\xb6\xc7\x3b\xb5\x0f\x9c\x31\x22\xec\x84\x4a"
- "\xd7\xc2\xb3\xe5"),
- STR(info, info_size,
- "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9"),
- STR(okm, okm_size,
- "\x3c\xb2\x5f\x25\xfa\xac\xd5\x7a\x90\x43\x4f\x64\xd0\x36"
- "\x2f\x2a\x2d\x2d\x0a\x90\xcf\x1a\x5a\x4c\x5d\xb0\x2d\x56"
- "\xec\xc4\xc5\xbf\x34\x00\x72\x08\xd5\xb8\x87\x18\x58\x65"),
- },
+ STR(ikm, ikm_size,
+ "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"
+ "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b"),
+ STR(salt, salt_size,
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c"),
+ STR(prk, prk_size,
+ "\x07\x77\x09\x36\x2c\x2e\x32\xdf\x0d\xdc\x3f\x0d\xc4\x7b"
+ "\xba\x63\x90\xb6\xc7\x3b\xb5\x0f\x9c\x31\x22\xec\x84\x4a"
+ "\xd7\xc2\xb3\xe5"),
+ STR(info, info_size,
+ "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9"),
+ STR(okm, okm_size,
+ "\x3c\xb2\x5f\x25\xfa\xac\xd5\x7a\x90\x43\x4f\x64\xd0\x36"
+ "\x2f\x2a\x2d\x2d\x0a\x90\xcf\x1a\x5a\x4c\x5d\xb0\x2d\x56"
+ "\xec\xc4\xc5\xbf\x34\x00\x72\x08\xd5\xb8\x87\x18\x58\x65"),
+ },
/* RFC 5869: A.2. Test Case 2: Test with SHA-256 and longer inputs/outputs */
{
- STR(ikm, ikm_size,
- "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d"
- "\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b"
- "\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29"
- "\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37"
- "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45"
- "\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"),
- STR(salt, salt_size,
- "\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d"
- "\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b"
- "\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89"
- "\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97"
- "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5"
- "\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf"),
- STR(prk, prk_size,
- "\x06\xa6\xb8\x8c\x58\x53\x36\x1a\x06\x10\x4c\x9c\xeb\x35"
- "\xb4\x5c\xef\x76\x00\x14\x90\x46\x71\x01\x4a\x19\x3f\x40"
- "\xc1\x5f\xc2\x44"),
- STR(info, info_size,
- "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd"
- "\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb"
- "\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9"
- "\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
- "\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5"
- "\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"),
- STR(okm, okm_size,
- "\xb1\x1e\x39\x8d\xc8\x03\x27\xa1\xc8\xe7\xf7\x8c\x59\x6a"
- "\x49\x34\x4f\x01\x2e\xda\x2d\x4e\xfa\xd8\xa0\x50\xcc\x4c"
- "\x19\xaf\xa9\x7c\x59\x04\x5a\x99\xca\xc7\x82\x72\x71\xcb"
- "\x41\xc6\x5e\x59\x0e\x09\xda\x32\x75\x60\x0c\x2f\x09\xb8"
- "\x36\x77\x93\xa9\xac\xa3\xdb\x71\xcc\x30\xc5\x81\x79\xec"
- "\x3e\x87\xc1\x4c\x01\xd5\xc1\xf3\x43\x4f\x1d\x87"),
- },
+ STR(ikm, ikm_size,
+ "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d"
+ "\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b"
+ "\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29"
+ "\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37"
+ "\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45"
+ "\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f"),
+ STR(salt, salt_size,
+ "\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d"
+ "\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b"
+ "\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89"
+ "\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97"
+ "\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5"
+ "\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf"),
+ STR(prk, prk_size,
+ "\x06\xa6\xb8\x8c\x58\x53\x36\x1a\x06\x10\x4c\x9c\xeb\x35"
+ "\xb4\x5c\xef\x76\x00\x14\x90\x46\x71\x01\x4a\x19\x3f\x40"
+ "\xc1\x5f\xc2\x44"),
+ STR(info, info_size,
+ "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd"
+ "\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb"
+ "\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9"
+ "\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7"
+ "\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5"
+ "\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"),
+ STR(okm, okm_size,
+ "\xb1\x1e\x39\x8d\xc8\x03\x27\xa1\xc8\xe7\xf7\x8c\x59\x6a"
+ "\x49\x34\x4f\x01\x2e\xda\x2d\x4e\xfa\xd8\xa0\x50\xcc\x4c"
+ "\x19\xaf\xa9\x7c\x59\x04\x5a\x99\xca\xc7\x82\x72\x71\xcb"
+ "\x41\xc6\x5e\x59\x0e\x09\xda\x32\x75\x60\x0c\x2f\x09\xb8"
+ "\x36\x77\x93\xa9\xac\xa3\xdb\x71\xcc\x30\xc5\x81\x79\xec"
+ "\x3e\x87\xc1\x4c\x01\xd5\xc1\xf3\x43\x4f\x1d\x87"),
+ },
};
static int test_hkdf(gnutls_mac_algorithm_t mac,
@@ -3000,9 +3071,9 @@ static int test_hkdf(gnutls_mac_algorithm_t mac,
uint8_t output[4096];
int ret;
- ikm.data = (void *) vectors[i].ikm;
+ ikm.data = (void *)vectors[i].ikm;
ikm.size = vectors[i].ikm_size;
- salt.data = (void *) vectors[i].salt;
+ salt.data = (void *)vectors[i].salt;
salt.size = vectors[i].salt_size;
ret = gnutls_hkdf_extract(mac, &ikm, &salt, output);
@@ -3020,9 +3091,9 @@ static int test_hkdf(gnutls_mac_algorithm_t mac,
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
- prk.data = (void *) vectors[i].prk;
+ prk.data = (void *)vectors[i].prk;
prk.size = vectors[i].prk_size;
- info.data = (void *) vectors[i].info;
+ info.data = (void *)vectors[i].info;
info.size = vectors[i].info_size;
ret = gnutls_hkdf_expand(mac, &prk, &info,
@@ -3043,8 +3114,7 @@ static int test_hkdf(gnutls_mac_algorithm_t mac,
}
_gnutls_debug_log
- ("HKDF: MAC-%s self check succeeded\n",
- gnutls_mac_get_name(mac));
+ ("HKDF: MAC-%s self check succeeded\n", gnutls_mac_get_name(mac));
return 0;
}
@@ -3092,39 +3162,39 @@ struct pbkdf2_vectors_st {
const struct pbkdf2_vectors_st pbkdf2_sha256_vectors[] = {
/* RFC 7914: 11. Test Vectors for PBKDF2 with HMAC-SHA-256 */
{
- STR(key, key_size, "passwd"),
- STR(salt, salt_size, "salt"),
- .iter_count = 1,
- STR(output, output_size,
- "\x55\xac\x04\x6e\x56\xe3\x08\x9f\xec\x16\x91\xc2\x25\x44"
- "\xb6\x05\xf9\x41\x85\x21\x6d\xde\x04\x65\xe6\x8b\x9d\x57"
- "\xc2\x0d\xac\xbc\x49\xca\x9c\xcc\xf1\x79\xb6\x45\x99\x16"
- "\x64\xb3\x9d\x77\xef\x31\x7c\x71\xb8\x45\xb1\xe3\x0b\xd5"
- "\x09\x11\x20\x41\xd3\xa1\x97\x83"),
- },
+ STR(key, key_size, "passwd"),
+ STR(salt, salt_size, "salt"),
+ .iter_count = 1,
+ STR(output, output_size,
+ "\x55\xac\x04\x6e\x56\xe3\x08\x9f\xec\x16\x91\xc2\x25\x44"
+ "\xb6\x05\xf9\x41\x85\x21\x6d\xde\x04\x65\xe6\x8b\x9d\x57"
+ "\xc2\x0d\xac\xbc\x49\xca\x9c\xcc\xf1\x79\xb6\x45\x99\x16"
+ "\x64\xb3\x9d\x77\xef\x31\x7c\x71\xb8\x45\xb1\xe3\x0b\xd5"
+ "\x09\x11\x20\x41\xd3\xa1\x97\x83"),
+ },
/* RFC 7914: 11. Test Vectors for PBKDF2 with HMAC-SHA-256 */
{
- STR(key, key_size, "Password"),
- STR(salt, salt_size, "NaCl"),
- .iter_count = 80000,
- STR(output, output_size,
- "\x4d\xdc\xd8\xf6\x0b\x98\xbe\x21\x83\x0c\xee\x5e\xf2\x27"
- "\x01\xf9\x64\x1a\x44\x18\xd0\x4c\x04\x14\xae\xff\x08\x87"
- "\x6b\x34\xab\x56\xa1\xd4\x25\xa1\x22\x58\x33\x54\x9a\xdb"
- "\x84\x1b\x51\xc9\xb3\x17\x6a\x27\x2b\xde\xbb\xa1\xd0\x78"
- "\x47\x8f\x62\xb3\x97\xf3\x3c\x8d"),
- },
+ STR(key, key_size, "Password"),
+ STR(salt, salt_size, "NaCl"),
+ .iter_count = 80000,
+ STR(output, output_size,
+ "\x4d\xdc\xd8\xf6\x0b\x98\xbe\x21\x83\x0c\xee\x5e\xf2\x27"
+ "\x01\xf9\x64\x1a\x44\x18\xd0\x4c\x04\x14\xae\xff\x08\x87"
+ "\x6b\x34\xab\x56\xa1\xd4\x25\xa1\x22\x58\x33\x54\x9a\xdb"
+ "\x84\x1b\x51\xc9\xb3\x17\x6a\x27\x2b\xde\xbb\xa1\xd0\x78"
+ "\x47\x8f\x62\xb3\x97\xf3\x3c\x8d"),
+ },
/* Test vector extracted from:
* https://dev.gnupg.org/source/libgcrypt/browse/master/cipher/kdf.c */
{
- STR(key, key_size, "passwordPASSWORDpassword"),
- STR(salt, salt_size, "saltSALTsaltSALTsaltSALTsaltSALTsalt"),
- .iter_count = 4096,
- STR(output, output_size,
- "\x34\x8c\x89\xdb\xcb\xd3\x2b\x2f\x32\xd8\x14\xb8\x11\x6e"
- "\x84\xcf\x2b\x17\x34\x7e\xbc\x18\x00\x18\x1c\x4e\x2a\x1f"
- "\xb8\xdd\x53\xe1\xc6\x35\x51\x8c\x7d\xac\x47\xe9"),
- },
+ STR(key, key_size, "passwordPASSWORDpassword"),
+ STR(salt, salt_size, "saltSALTsaltSALTsaltSALTsaltSALTsalt"),
+ .iter_count = 4096,
+ STR(output, output_size,
+ "\x34\x8c\x89\xdb\xcb\xd3\x2b\x2f\x32\xd8\x14\xb8\x11\x6e"
+ "\x84\xcf\x2b\x17\x34\x7e\xbc\x18\x00\x18\x1c\x4e\x2a\x1f"
+ "\xb8\xdd\x53\xe1\xc6\x35\x51\x8c\x7d\xac\x47\xe9"),
+ },
};
static int test_pbkdf2(gnutls_mac_algorithm_t mac,
@@ -3138,9 +3208,9 @@ static int test_pbkdf2(gnutls_mac_algorithm_t mac,
uint8_t output[4096];
int ret;
- key.data = (void *) vectors[i].key;
+ key.data = (void *)vectors[i].key;
key.size = vectors[i].key_size;
- salt.data = (void *) vectors[i].salt;
+ salt.data = (void *)vectors[i].salt;
salt.size = vectors[i].salt_size;
ret = gnutls_pbkdf2(mac, &key, &salt, vectors[i].iter_count,
@@ -3151,7 +3221,8 @@ static int test_pbkdf2(gnutls_mac_algorithm_t mac,
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
- if (memcmp(output, vectors[i].output, vectors[i].output_size) != 0) {
+ if (memcmp(output, vectors[i].output, vectors[i].output_size) !=
+ 0) {
_gnutls_debug_log
("PBKDF2: MAC-%s test vector failed!\n",
gnutls_mac_get_name(mac));
@@ -3161,8 +3232,7 @@ static int test_pbkdf2(gnutls_mac_algorithm_t mac,
}
_gnutls_debug_log
- ("PBKDF2: MAC-%s self check succeeded\n",
- gnutls_mac_get_name(mac));
+ ("PBKDF2: MAC-%s self check succeeded\n", gnutls_mac_get_name(mac));
return 0;
}
@@ -3211,87 +3281,87 @@ struct tlsprf_vectors_st {
const struct tlsprf_vectors_st tls10prf_vectors[] = {
/* tests/tls10-prf.c: test1 */
{
- STR(key, key_size,
- "\x26\x3b\xdb\xbb\x6f\x6d\x4c\x66\x4e\x05\x8d\x0a\xa9\xd3"
- "\x21\xbe"),
- STR(label, label_size,
- "test label"),
- STR(seed, seed_size,
- "\xb9\x20\x57\x3b\x19\x96\x01\x02\x4f\x04\xd6\xdc\x61\x96"
- "\x6e\x65"),
- STR(output, output_size,
- "\x66\x17\x99\x37\x65\xfa\x6c\xa7\x03\xd1\x9e\xc7\x0d\xd5"
- "\xdd\x16\x0f\xfc\xc0\x77\x25\xfa\xfb\x71\x4a\x9f\x81\x5a"
- "\x2a\x30\xbf\xb7\xe3\xbb\xfb\x7e\xee\x57\x4b\x3b\x61\x3e"
- "\xb7\xfe\x80\xee\xc9\x69\x1d\x8c\x1b\x0e\x2d\x9b\x3c\x8b"
- "\x4b\x02\xb6\xb6\xd6\xdb\x88\xe2\x09\x46\x23\xef\x62\x40"
- "\x60\x7e\xda\x7a\xbe\x3c\x84\x6e\x82\xa3"),
- },
+ STR(key, key_size,
+ "\x26\x3b\xdb\xbb\x6f\x6d\x4c\x66\x4e\x05\x8d\x0a\xa9\xd3"
+ "\x21\xbe"),
+ STR(label, label_size,
+ "test label"),
+ STR(seed, seed_size,
+ "\xb9\x20\x57\x3b\x19\x96\x01\x02\x4f\x04\xd6\xdc\x61\x96"
+ "\x6e\x65"),
+ STR(output, output_size,
+ "\x66\x17\x99\x37\x65\xfa\x6c\xa7\x03\xd1\x9e\xc7\x0d\xd5"
+ "\xdd\x16\x0f\xfc\xc0\x77\x25\xfa\xfb\x71\x4a\x9f\x81\x5a"
+ "\x2a\x30\xbf\xb7\xe3\xbb\xfb\x7e\xee\x57\x4b\x3b\x61\x3e"
+ "\xb7\xfe\x80\xee\xc9\x69\x1d\x8c\x1b\x0e\x2d\x9b\x3c\x8b"
+ "\x4b\x02\xb6\xb6\xd6\xdb\x88\xe2\x09\x46\x23\xef\x62\x40"
+ "\x60\x7e\xda\x7a\xbe\x3c\x84\x6e\x82\xa3"),
+ },
};
const struct tlsprf_vectors_st tls12prf_sha256_vectors[] = {
/* tests/tls12-prf.c: sha256_test1 */
{
- STR(key, key_size,
- "\x04\x50\xb0\xea\x9e\xcd\x36\x02\xee\x0d\x76\xc5\xc3\xc8"
- "\x6f\x4a"),
- STR(label, label_size,
- "test label"),
- STR(seed, seed_size,
- "\x20\x7a\xcc\x02\x54\xb8\x67\xf5\xb9\x25\xb4\x5a\x33\x60"
- "\x1d\x8b"),
- STR(output, output_size,
- "\xae\x67\x9e\x0e\x71\x4f\x59\x75\x76\x37\x68\xb1\x66\x97"
- "\x9e\x1d"),
- },
+ STR(key, key_size,
+ "\x04\x50\xb0\xea\x9e\xcd\x36\x02\xee\x0d\x76\xc5\xc3\xc8"
+ "\x6f\x4a"),
+ STR(label, label_size,
+ "test label"),
+ STR(seed, seed_size,
+ "\x20\x7a\xcc\x02\x54\xb8\x67\xf5\xb9\x25\xb4\x5a\x33\x60"
+ "\x1d\x8b"),
+ STR(output, output_size,
+ "\xae\x67\x9e\x0e\x71\x4f\x59\x75\x76\x37\x68\xb1\x66\x97"
+ "\x9e\x1d"),
+ },
/* tests/tls12-prf.c: sha256_test2 */
{
- STR(key, key_size,
- "\x34\x20\x4a\x9d\xf0\xbe\x6e\xb4\xe9\x25\xa8\x02\x7c\xf6"
- "\xc6\x02"),
- STR(label, label_size,
- "test label"),
- STR(seed, seed_size,
- "\x98\xb2\xc4\x0b\xcd\x66\x4c\x83\xbb\x92\x0c\x18\x20\x1a"
- "\x63\x95"),
- STR(output, output_size,
- "\xaf\xa9\x31\x24\x53\xc2\x2f\xa8\x3d\x2b\x51\x1b\x37\x2d"
- "\x73\xa4\x02\xa2\xa6\x28\x73\x23\x9a\x51\xfa\xde\x45\x08"
- "\x2f\xaf\x3f\xd2\xbb\x7f\xfb\x3e\x9b\xf3\x6e\x28\xb3\x14"
- "\x1a\xab\xa4\x84\x00\x53\x32\xa9\xf9\xe3\x88\xa4\xd3\x29"
- "\xf1\x58\x7a\x4b\x31\x7d\xa0\x77\x08\xea\x1b\xa9\x5a\x53"
- "\xf8\x78\x67\x24\xbd\x83\xce\x4b\x03\xaf"),
- },
+ STR(key, key_size,
+ "\x34\x20\x4a\x9d\xf0\xbe\x6e\xb4\xe9\x25\xa8\x02\x7c\xf6"
+ "\xc6\x02"),
+ STR(label, label_size,
+ "test label"),
+ STR(seed, seed_size,
+ "\x98\xb2\xc4\x0b\xcd\x66\x4c\x83\xbb\x92\x0c\x18\x20\x1a"
+ "\x63\x95"),
+ STR(output, output_size,
+ "\xaf\xa9\x31\x24\x53\xc2\x2f\xa8\x3d\x2b\x51\x1b\x37\x2d"
+ "\x73\xa4\x02\xa2\xa6\x28\x73\x23\x9a\x51\xfa\xde\x45\x08"
+ "\x2f\xaf\x3f\xd2\xbb\x7f\xfb\x3e\x9b\xf3\x6e\x28\xb3\x14"
+ "\x1a\xab\xa4\x84\x00\x53\x32\xa9\xf9\xe3\x88\xa4\xd3\x29"
+ "\xf1\x58\x7a\x4b\x31\x7d\xa0\x77\x08\xea\x1b\xa9\x5a\x53"
+ "\xf8\x78\x67\x24\xbd\x83\xce\x4b\x03\xaf"),
+ },
/* tests/tls12-prf.c: sha256_test3 */
{
- STR(key, key_size,
- "\xa3\x69\x1a\xa1\xf6\x81\x4b\x80\x59\x2b\xf1\xcf\x2a\xcf"
- "\x16\x97"),
- STR(label, label_size,
- "test label"),
- STR(seed, seed_size,
- "\x55\x23\xd4\x1e\x32\x0e\x69\x4d\x0c\x1f\xf5\x73\x4d\x83"
- "\x0b\x93\x3e\x46\x92\x70\x71\xc9\x26\x21"),
- STR(output, output_size,
- "\x6a\xd0\x98\x4f\xa0\x6f\x78\xfe\x16\x1b\xd4\x6d\x7c\x26"
- "\x1d\xe4\x33\x40\xd7\x28\xdd\xdc\x3d\x0f\xf0\xdd\x7e\x0d"),
- },
+ STR(key, key_size,
+ "\xa3\x69\x1a\xa1\xf6\x81\x4b\x80\x59\x2b\xf1\xcf\x2a\xcf"
+ "\x16\x97"),
+ STR(label, label_size,
+ "test label"),
+ STR(seed, seed_size,
+ "\x55\x23\xd4\x1e\x32\x0e\x69\x4d\x0c\x1f\xf5\x73\x4d\x83"
+ "\x0b\x93\x3e\x46\x92\x70\x71\xc9\x26\x21"),
+ STR(output, output_size,
+ "\x6a\xd0\x98\x4f\xa0\x6f\x78\xfe\x16\x1b\xd4\x6d\x7c\x26"
+ "\x1d\xe4\x33\x40\xd7\x28\xdd\xdc\x3d\x0f\xf0\xdd\x7e\x0d"),
+ },
/* tests/tls12-prf.c: sha256_test4 */
{
- STR(key, key_size,
- "\x21\x0e\xc9\x37\x06\x97\x07\xe5\x46\x5b\xc4\x6b\xf7\x79"
- "\xe1\x04\x10\x8b\x18\xfd\xb7\x93\xbe\x7b\x21\x8d\xbf\x14"
- "\x5c\x86\x41\xf3"),
- STR(label, label_size,
- "test label"),
- STR(seed, seed_size,
- "\x1e\x35\x1a\x0b\xaf\x35\xc7\x99\x45\x92\x43\x94\xb8\x81"
- "\xcf\xe3\x1d\xae\x8f\x1c\x1e\xd5\x4d\x3b"),
- STR(output, output_size,
- "\x76\x53\xfa\x80\x9c\xde\x3b\x55\x3c\x4a\x17\xe2\xcd\xbc"
- "\xc9\x18\xf3\x65\x27\xf2\x22\x19\xa7\xd7\xf9\x5d\x97\x24"
- "\x3f\xf2\xd5\xde\xe8\x26\x5e\xf0\xaf\x03"),
- },
+ STR(key, key_size,
+ "\x21\x0e\xc9\x37\x06\x97\x07\xe5\x46\x5b\xc4\x6b\xf7\x79"
+ "\xe1\x04\x10\x8b\x18\xfd\xb7\x93\xbe\x7b\x21\x8d\xbf\x14"
+ "\x5c\x86\x41\xf3"),
+ STR(label, label_size,
+ "test label"),
+ STR(seed, seed_size,
+ "\x1e\x35\x1a\x0b\xaf\x35\xc7\x99\x45\x92\x43\x94\xb8\x81"
+ "\xcf\xe3\x1d\xae\x8f\x1c\x1e\xd5\x4d\x3b"),
+ STR(output, output_size,
+ "\x76\x53\xfa\x80\x9c\xde\x3b\x55\x3c\x4a\x17\xe2\xcd\xbc"
+ "\xc9\x18\xf3\x65\x27\xf2\x22\x19\xa7\xd7\xf9\x5d\x97\x24"
+ "\x3f\xf2\xd5\xde\xe8\x26\x5e\xf0\xaf\x03"),
+ },
};
const struct tlsprf_vectors_st tls12prf_sha384_vectors[] = {
@@ -3299,27 +3369,27 @@ const struct tlsprf_vectors_st tls12prf_sha384_vectors[] = {
* https://www.ietf.org/mail-archive/web/tls/current/msg03416.html
*/
{
- STR(key, key_size,
- "\xb8\x0b\x73\x3d\x6c\xee\xfc\xdc\x71\x56\x6e\xa4\x8e\x55"
- "\x67\xdf"),
- STR(label, label_size,
- "test label"),
- STR(seed, seed_size,
- "\xcd\x66\x5c\xf6\xa8\x44\x7d\xd6\xff\x8b\x27\x55\x5e\xdb"
- "\x74\x65"),
- STR(output, output_size,
- "\x7b\x0c\x18\xe9\xce\xd4\x10\xed\x18\x04\xf2\xcf\xa3\x4a"
- "\x33\x6a\x1c\x14\xdf\xfb\x49\x00\xbb\x5f\xd7\x94\x21\x07"
- "\xe8\x1c\x83\xcd\xe9\xca\x0f\xaa\x60\xbe\x9f\xe3\x4f\x82"
- "\xb1\x23\x3c\x91\x46\xa0\xe5\x34\xcb\x40\x0f\xed\x27\x00"
- "\x88\x4f\x9d\xc2\x36\xf8\x0e\xdd\x8b\xfa\x96\x11\x44\xc9"
- "\xe8\xd7\x92\xec\xa7\x22\xa7\xb3\x2f\xc3\xd4\x16\xd4\x73"
- "\xeb\xc2\xc5\xfd\x4a\xbf\xda\xd0\x5d\x91\x84\x25\x9b\x5b"
- "\xf8\xcd\x4d\x90\xfa\x0d\x31\xe2\xde\xc4\x79\xe4\xf1\xa2"
- "\x60\x66\xf2\xee\xa9\xa6\x92\x36\xa3\xe5\x26\x55\xc9\xe9"
- "\xae\xe6\x91\xc8\xf3\xa2\x68\x54\x30\x8d\x5e\xaa\x3b\xe8"
- "\x5e\x09\x90\x70\x3d\x73\xe5\x6f"),
- },
+ STR(key, key_size,
+ "\xb8\x0b\x73\x3d\x6c\xee\xfc\xdc\x71\x56\x6e\xa4\x8e\x55"
+ "\x67\xdf"),
+ STR(label, label_size,
+ "test label"),
+ STR(seed, seed_size,
+ "\xcd\x66\x5c\xf6\xa8\x44\x7d\xd6\xff\x8b\x27\x55\x5e\xdb"
+ "\x74\x65"),
+ STR(output, output_size,
+ "\x7b\x0c\x18\xe9\xce\xd4\x10\xed\x18\x04\xf2\xcf\xa3\x4a"
+ "\x33\x6a\x1c\x14\xdf\xfb\x49\x00\xbb\x5f\xd7\x94\x21\x07"
+ "\xe8\x1c\x83\xcd\xe9\xca\x0f\xaa\x60\xbe\x9f\xe3\x4f\x82"
+ "\xb1\x23\x3c\x91\x46\xa0\xe5\x34\xcb\x40\x0f\xed\x27\x00"
+ "\x88\x4f\x9d\xc2\x36\xf8\x0e\xdd\x8b\xfa\x96\x11\x44\xc9"
+ "\xe8\xd7\x92\xec\xa7\x22\xa7\xb3\x2f\xc3\xd4\x16\xd4\x73"
+ "\xeb\xc2\xc5\xfd\x4a\xbf\xda\xd0\x5d\x91\x84\x25\x9b\x5b"
+ "\xf8\xcd\x4d\x90\xfa\x0d\x31\xe2\xde\xc4\x79\xe4\xf1\xa2"
+ "\x60\x66\xf2\xee\xa9\xa6\x92\x36\xa3\xe5\x26\x55\xc9\xe9"
+ "\xae\xe6\x91\xc8\xf3\xa2\x68\x54\x30\x8d\x5e\xaa\x3b\xe8"
+ "\x5e\x09\x90\x70\x3d\x73\xe5\x6f"),
+ },
};
static int test_tlsprf(gnutls_mac_algorithm_t mac,
@@ -3334,7 +3404,8 @@ static int test_tlsprf(gnutls_mac_algorithm_t mac,
ret = _gnutls_prf_raw(mac,
vectors[i].key_size, vectors[i].key,
- vectors[i].label_size, (const char *)vectors[i].label,
+ vectors[i].label_size,
+ (const char *)vectors[i].label,
vectors[i].seed_size, vectors[i].seed,
vectors[i].output_size, output);
if (ret < 0) {
@@ -3343,7 +3414,8 @@ static int test_tlsprf(gnutls_mac_algorithm_t mac,
return gnutls_assert_val(GNUTLS_E_SELF_TEST_ERROR);
}
- if (memcmp(output, vectors[i].output, vectors[i].output_size) != 0) {
+ if (memcmp(output, vectors[i].output, vectors[i].output_size) !=
+ 0) {
_gnutls_debug_log
("TLS-PRF: MAC-%s test vector failed!\n",
gnutls_mac_get_name(mac));
@@ -3379,7 +3451,8 @@ int gnutls_tlsprf_self_test(unsigned flags, gnutls_mac_algorithm_t mac)
switch (mac) {
case GNUTLS_MAC_UNKNOWN:
- NON_FIPS_CASE(GNUTLS_MAC_MD5_SHA1, test_tlsprf, tls10prf_vectors);
+ NON_FIPS_CASE(GNUTLS_MAC_MD5_SHA1, test_tlsprf,
+ tls10prf_vectors);
FALLTHROUGH;
CASE(GNUTLS_MAC_SHA256, test_tlsprf, tls12prf_sha256_vectors);
FALLTHROUGH;
diff --git a/lib/crypto.h b/lib/crypto.h
index 10f36c82e3..8a5638ba03 100644
--- a/lib/crypto.h
+++ b/lib/crypto.h
@@ -21,14 +21,13 @@
*/
#ifndef GNUTLS_LIB_CRYPTO_H
-#define GNUTLS_LIB_CRYPTO_H
+# define GNUTLS_LIB_CRYPTO_H
const gnutls_crypto_cipher_st
* _gnutls_get_crypto_cipher(gnutls_cipher_algorithm_t algo);
const gnutls_crypto_digest_st
* _gnutls_get_crypto_digest(gnutls_digest_algorithm_t algo);
-const gnutls_crypto_mac_st *_gnutls_get_crypto_mac(gnutls_mac_algorithm_t
- algo);
+const gnutls_crypto_mac_st *_gnutls_get_crypto_mac(gnutls_mac_algorithm_t algo);
void _gnutls_crypto_deregister(void);
int _gnutls_crypto_register_cipher(gnutls_cipher_algorithm_t algorithm,
int priority,
@@ -39,4 +38,4 @@ int _gnutls_crypto_register_cipher(gnutls_cipher_algorithm_t algorithm,
gnutls_cipher_decrypt_func decrypt,
gnutls_cipher_deinit_func deinit);
-#endif /* GNUTLS_LIB_CRYPTO_H */
+#endif /* GNUTLS_LIB_CRYPTO_H */
diff --git a/lib/datum.c b/lib/datum.c
index bd0f216438..a374c905d4 100644
--- a/lib/datum.c
+++ b/lib/datum.c
@@ -31,8 +31,7 @@
#include "errors.h"
/* On error, @dat is not changed. */
-int
-_gnutls_set_datum(gnutls_datum_t * dat, const void *data, size_t data_size)
+int _gnutls_set_datum(gnutls_datum_t * dat, const void *data, size_t data_size)
{
if (data_size == 0 || data == NULL) {
dat->data = NULL;
@@ -73,4 +72,3 @@ _gnutls_set_strdatum(gnutls_datum_t * dat, const void *data, size_t data_size)
return 0;
}
-
diff --git a/lib/datum.h b/lib/datum.h
index 35b9e3b97c..87fb91b5fe 100644
--- a/lib/datum.h
+++ b/lib/datum.h
@@ -21,7 +21,7 @@
*/
#ifndef GNUTLS_LIB_DATUM_H
-#define GNUTLS_LIB_DATUM_H
+# define GNUTLS_LIB_DATUM_H
# include "gnutls_int.h"
@@ -29,8 +29,7 @@
* NULL or zero-size @dat will be NULL as well.
*/
NODISCARD ATTRIBUTE_NONNULL((1))
-int _gnutls_set_datum(gnutls_datum_t * dat, const void *data,
- size_t data_size);
+int _gnutls_set_datum(gnutls_datum_t * dat, const void *data, size_t data_size);
/* This will always return a non-NULL, and zero-terminated string in @dat.
*/
@@ -38,7 +37,6 @@ NODISCARD ATTRIBUTE_NONNULL((1))
int _gnutls_set_strdatum(gnutls_datum_t * dat, const void *data,
size_t data_size);
-
inline static
void _gnutls_free_datum(gnutls_datum_t * dat)
{
@@ -70,4 +68,4 @@ void _gnutls_free_key_datum(gnutls_datum_t * dat)
dat->size = 0;
}
-#endif /* GNUTLS_LIB_DATUM_H */
+#endif /* GNUTLS_LIB_DATUM_H */
diff --git a/lib/db.c b/lib/db.c
index 4ff76126cd..e2dcf9dfc4 100644
--- a/lib/db.c
+++ b/lib/db.c
@@ -160,8 +160,7 @@ unsigned gnutls_db_get_default_cache_expiration(void)
* Deprecated: This function is deprecated.
**/
int
-gnutls_db_check_entry(gnutls_session_t session,
- gnutls_datum_t session_entry)
+gnutls_db_check_entry(gnutls_session_t session, gnutls_datum_t session_entry)
{
return 0;
}
@@ -204,7 +203,7 @@ time_t gnutls_db_check_entry_time(gnutls_datum_t * entry)
*
* Since: 3.6.5
**/
-time_t gnutls_db_check_entry_expire_time(gnutls_datum_t *entry)
+time_t gnutls_db_check_entry_expire_time(gnutls_datum_t * entry)
{
uint32_t t;
uint32_t e;
@@ -311,7 +310,8 @@ int _gnutls_check_resumed_params(gnutls_session_t session)
*/
vers = get_version(session);
if (!vers || !vers->tls13_sem) {
- if (session->internals.resumed_security_parameters.ext_master_secret !=
+ if (session->internals.
+ resumed_security_parameters.ext_master_secret !=
session->security_parameters.ext_master_secret)
return gnutls_assert_val(GNUTLS_E_INVALID_SESSION);
@@ -355,8 +355,7 @@ _gnutls_server_restore_session(gnutls_session_t session,
}
data =
- session->internals.db_retrieve_func(session->internals.db_ptr,
- key);
+ session->internals.db_retrieve_func(session->internals.db_ptr, key);
if (data.data == NULL) {
gnutls_assert();
diff --git a/lib/db.h b/lib/db.h
index 6dc5f7f1ff..b45ee912e2 100644
--- a/lib/db.h
+++ b/lib/db.h
@@ -21,15 +21,14 @@
*/
#ifndef GNUTLS_LIB_DB_H
-#define GNUTLS_LIB_DB_H
+# define GNUTLS_LIB_DB_H
int _gnutls_server_register_current_session(gnutls_session_t session);
int _gnutls_server_restore_session(gnutls_session_t session,
- uint8_t * session_id,
- int session_id_size);
+ uint8_t * session_id, int session_id_size);
int _gnutls_check_resumed_params(gnutls_session_t session);
-#define PACKED_SESSION_MAGIC ((0xfadebadd)+(_gnutls_global_version))
+# define PACKED_SESSION_MAGIC ((0xfadebadd)+(_gnutls_global_version))
-#endif /* GNUTLS_LIB_DB_H */
+#endif /* GNUTLS_LIB_DB_H */
diff --git a/lib/debug.c b/lib/debug.c
index 991f7a7bed..532fa2a92d 100644
--- a/lib/debug.c
+++ b/lib/debug.c
@@ -36,17 +36,16 @@ void _gnutls_dump_mpi(const char *prefix, bigint_t a)
if (_gnutls_mpi_print(a, buf, &n))
strcpy(buf, "[can't print value]"); /* Flawfinder: ignore */
- _gnutls_debug_log("MPI: length: %d\n\t%s%s\n", (int) n, prefix,
+ _gnutls_debug_log("MPI: length: %d\n\t%s%s\n", (int)n, prefix,
_gnutls_bin2hex(buf, n, buf_hex, sizeof(buf_hex),
NULL));
}
-void
-_gnutls_dump_vector(const char *prefix, const uint8_t * a, size_t a_size)
+void _gnutls_dump_vector(const char *prefix, const uint8_t * a, size_t a_size)
{
char buf_hex[2 * a_size + 1];
- _gnutls_debug_log("Vector: length: %d\n\t%s%s\n", (int) a_size,
+ _gnutls_debug_log("Vector: length: %d\n\t%s%s\n", (int)a_size,
prefix, _gnutls_bin2hex(a, a_size, buf_hex,
sizeof(buf_hex), NULL));
}
@@ -80,8 +79,7 @@ const char *_gnutls_packet2str(content_type_t packet)
* message or %NULL.
**/
const char
- *gnutls_handshake_description_get_name(gnutls_handshake_description_t
- type)
+*gnutls_handshake_description_get_name(gnutls_handshake_description_t type)
{
switch (type) {
case GNUTLS_HANDSHAKE_END_OF_EARLY_DATA:
diff --git a/lib/debug.h b/lib/debug.h
index 231570f521..6455a59fe8 100644
--- a/lib/debug.h
+++ b/lib/debug.h
@@ -21,7 +21,7 @@
*/
#ifndef GNUTLS_LIB_DEBUG_H
-#define GNUTLS_LIB_DEBUG_H
+# define GNUTLS_LIB_DEBUG_H
const char *_gnutls_packet2str(content_type_t packet);
inline static const char *_gnutls_handshake2str(unsigned x)
@@ -34,7 +34,6 @@ inline static const char *_gnutls_handshake2str(unsigned x)
}
void _gnutls_dump_mpi(const char *prefix, bigint_t a);
-void _gnutls_dump_vector(const char *prefix, const uint8_t * a,
- size_t a_size);
+void _gnutls_dump_vector(const char *prefix, const uint8_t * a, size_t a_size);
-#endif /* GNUTLS_LIB_DEBUG_H */
+#endif /* GNUTLS_LIB_DEBUG_H */
diff --git a/lib/dh-primes.c b/lib/dh-primes.c
index 94b69e3450..c20b7df958 100644
--- a/lib/dh-primes.c
+++ b/lib/dh-primes.c
@@ -28,42 +28,42 @@
static const unsigned char ffdhe_generator = 0x02;
static const unsigned char ffdhe_params_2048[] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
- 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
- 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
- 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
- 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
- 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
- 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
- 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
- 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
- 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
- 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
- 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
- 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
- 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
- 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
- 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
- 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
- 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
- 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
- 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
- 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
- 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
- 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
- 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
- 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
- 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
- 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
- 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
- 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
- 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
- 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
- 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
- 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
- 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
- 0x28, 0x5C, 0x97, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
+ 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
+ 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
+ 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
+ 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
+ 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
+ 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
+ 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
+ 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
+ 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
+ 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
+ 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
+ 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
+ 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
+ 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
+ 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
+ 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
+ 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
+ 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
+ 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
+ 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
+ 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
+ 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
+ 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
+ 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
+ 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
+ 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
+ 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
+ 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
+ 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
+ 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
+ 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
+ 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
+ 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
+ 0x28, 0x5C, 0x97, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF
};
@@ -108,71 +108,74 @@ static const unsigned char ffdhe_q_2048[] = {
};
const gnutls_datum_t gnutls_ffdhe_2048_group_prime = {
- (void *) ffdhe_params_2048, sizeof(ffdhe_params_2048)
+ (void *)ffdhe_params_2048, sizeof(ffdhe_params_2048)
};
+
const gnutls_datum_t gnutls_ffdhe_2048_group_q = {
- (void *) ffdhe_q_2048, sizeof(ffdhe_q_2048)
+ (void *)ffdhe_q_2048, sizeof(ffdhe_q_2048)
};
+
const gnutls_datum_t gnutls_ffdhe_2048_group_generator = {
- (void *) &ffdhe_generator, sizeof(ffdhe_generator)
+ (void *)&ffdhe_generator, sizeof(ffdhe_generator)
};
+
const unsigned int gnutls_ffdhe_2048_key_bits = 256;
static const unsigned char ffdhe_params_3072[] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
- 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
- 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
- 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
- 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
- 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
- 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
- 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
- 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
- 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
- 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
- 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
- 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
- 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
- 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
- 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
- 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
- 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
- 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
- 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
- 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
- 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
- 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
- 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
- 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
- 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
- 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
- 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
- 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
- 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
- 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
- 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
- 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
- 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
- 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
- 0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4,
- 0xDE, 0xF9, 0x9C, 0x02, 0x38, 0x61, 0xB4,
- 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A,
- 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE,
- 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9,
- 0x1C, 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13,
- 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93, 0xBC,
- 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52,
- 0xE2, 0xD7, 0x4D, 0xD3, 0x64, 0xF2, 0xE2,
- 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE,
- 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, 0xE8,
- 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
- 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA,
- 0xDA, 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4,
- 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA,
- 0x53, 0xDD, 0xEF, 0x3C, 0x1B, 0x20, 0xEE,
- 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D,
- 0x2B, 0x66, 0xC6, 0x2E, 0x37, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
+ 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
+ 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
+ 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
+ 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
+ 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
+ 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
+ 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
+ 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
+ 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
+ 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
+ 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
+ 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
+ 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
+ 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
+ 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
+ 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
+ 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
+ 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
+ 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
+ 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
+ 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
+ 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
+ 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
+ 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
+ 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
+ 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
+ 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
+ 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
+ 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
+ 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
+ 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
+ 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
+ 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
+ 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
+ 0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4,
+ 0xDE, 0xF9, 0x9C, 0x02, 0x38, 0x61, 0xB4,
+ 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A,
+ 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE,
+ 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9,
+ 0x1C, 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13,
+ 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93, 0xBC,
+ 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52,
+ 0xE2, 0xD7, 0x4D, 0xD3, 0x64, 0xF2, 0xE2,
+ 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE,
+ 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, 0xE8,
+ 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
+ 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA,
+ 0xDA, 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4,
+ 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA,
+ 0x53, 0xDD, 0xEF, 0x3C, 0x1B, 0x20, 0xEE,
+ 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D,
+ 0x2B, 0x66, 0xC6, 0x2E, 0x37, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
@@ -235,90 +238,93 @@ static const unsigned char ffdhe_q_3072[] = {
};
const gnutls_datum_t gnutls_ffdhe_3072_group_prime = {
- (void *) ffdhe_params_3072, sizeof(ffdhe_params_3072)
+ (void *)ffdhe_params_3072, sizeof(ffdhe_params_3072)
};
+
const gnutls_datum_t gnutls_ffdhe_3072_group_q = {
- (void *) ffdhe_q_3072, sizeof(ffdhe_q_3072)
+ (void *)ffdhe_q_3072, sizeof(ffdhe_q_3072)
};
+
const gnutls_datum_t gnutls_ffdhe_3072_group_generator = {
- (void *) &ffdhe_generator, sizeof(ffdhe_generator)
+ (void *)&ffdhe_generator, sizeof(ffdhe_generator)
};
+
const unsigned int gnutls_ffdhe_3072_key_bits = 276;
static const unsigned char ffdhe_params_4096[] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
- 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
- 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
- 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
- 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
- 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
- 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
- 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
- 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
- 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
- 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
- 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
- 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
- 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
- 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
- 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
- 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
- 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
- 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
- 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
- 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
- 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
- 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
- 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
- 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
- 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
- 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
- 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
- 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
- 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
- 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
- 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
- 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
- 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
- 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
- 0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4,
- 0xDE, 0xF9, 0x9C, 0x02, 0x38, 0x61, 0xB4,
- 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A,
- 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE,
- 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9,
- 0x1C, 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13,
- 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93, 0xBC,
- 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52,
- 0xE2, 0xD7, 0x4D, 0xD3, 0x64, 0xF2, 0xE2,
- 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE,
- 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, 0xE8,
- 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
- 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA,
- 0xDA, 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4,
- 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA,
- 0x53, 0xDD, 0xEF, 0x3C, 0x1B, 0x20, 0xEE,
- 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D,
- 0x2B, 0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F,
- 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, 0x79,
- 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6,
- 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D,
- 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03,
- 0x40, 0x04, 0x87, 0xF5, 0x5B, 0xA5, 0x7E,
- 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
- 0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E,
- 0x01, 0x2D, 0x9E, 0x68, 0x32, 0xA9, 0x07,
- 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D,
- 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38,
- 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B,
- 0x7A, 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40,
- 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9, 0xF9,
- 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD,
- 0xCE, 0xC9, 0x7D, 0xCF, 0x8E, 0xC9, 0xB5,
- 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5,
- 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, 0xC6,
- 0x8A, 0x00, 0x7E, 0x5E, 0x65, 0x5F, 0x6A,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
+ 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
+ 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
+ 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
+ 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
+ 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
+ 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
+ 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
+ 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
+ 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
+ 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
+ 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
+ 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
+ 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
+ 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
+ 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
+ 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
+ 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
+ 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
+ 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
+ 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
+ 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
+ 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
+ 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
+ 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
+ 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
+ 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
+ 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
+ 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
+ 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
+ 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
+ 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
+ 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
+ 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
+ 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
+ 0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4,
+ 0xDE, 0xF9, 0x9C, 0x02, 0x38, 0x61, 0xB4,
+ 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A,
+ 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE,
+ 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9,
+ 0x1C, 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13,
+ 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93, 0xBC,
+ 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52,
+ 0xE2, 0xD7, 0x4D, 0xD3, 0x64, 0xF2, 0xE2,
+ 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE,
+ 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, 0xE8,
+ 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
+ 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA,
+ 0xDA, 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4,
+ 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA,
+ 0x53, 0xDD, 0xEF, 0x3C, 0x1B, 0x20, 0xEE,
+ 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D,
+ 0x2B, 0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F,
+ 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, 0x79,
+ 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6,
+ 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D,
+ 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03,
+ 0x40, 0x04, 0x87, 0xF5, 0x5B, 0xA5, 0x7E,
+ 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
+ 0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E,
+ 0x01, 0x2D, 0x9E, 0x68, 0x32, 0xA9, 0x07,
+ 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D,
+ 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38,
+ 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B,
+ 0x7A, 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40,
+ 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9, 0xF9,
+ 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD,
+ 0xCE, 0xC9, 0x7D, 0xCF, 0x8E, 0xC9, 0xB5,
+ 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5,
+ 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, 0xC6,
+ 0x8A, 0x00, 0x7E, 0x5E, 0x65, 0x5F, 0x6A,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF
};
@@ -400,14 +406,17 @@ static const unsigned char ffdhe_q_4096[] = {
};
const gnutls_datum_t gnutls_ffdhe_4096_group_prime = {
- (void *) ffdhe_params_4096, sizeof(ffdhe_params_4096)
+ (void *)ffdhe_params_4096, sizeof(ffdhe_params_4096)
};
+
const gnutls_datum_t gnutls_ffdhe_4096_group_q = {
- (void *) ffdhe_q_4096, sizeof(ffdhe_q_4096)
+ (void *)ffdhe_q_4096, sizeof(ffdhe_q_4096)
};
+
const gnutls_datum_t gnutls_ffdhe_4096_group_generator = {
- (void *) &ffdhe_generator, sizeof(ffdhe_generator)
+ (void *)&ffdhe_generator, sizeof(ffdhe_generator)
};
+
const unsigned int gnutls_ffdhe_4096_key_bits = 336;
static const unsigned char ffdhe_params_6144[] = {
@@ -637,163 +646,166 @@ static const unsigned char ffdhe_q_6144[] = {
};
const gnutls_datum_t gnutls_ffdhe_6144_group_prime = {
- (void *) ffdhe_params_6144, sizeof(ffdhe_params_6144)
+ (void *)ffdhe_params_6144, sizeof(ffdhe_params_6144)
};
+
const gnutls_datum_t gnutls_ffdhe_6144_group_q = {
- (void *) ffdhe_q_6144, sizeof(ffdhe_q_6144)
+ (void *)ffdhe_q_6144, sizeof(ffdhe_q_6144)
};
+
const gnutls_datum_t gnutls_ffdhe_6144_group_generator = {
- (void *) &ffdhe_generator, sizeof(ffdhe_generator)
+ (void *)&ffdhe_generator, sizeof(ffdhe_generator)
};
+
const unsigned int gnutls_ffdhe_6144_key_bits = 376;
static const unsigned char ffdhe_params_8192[] = {
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
- 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
- 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
- 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
- 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
- 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
- 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
- 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
- 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
- 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
- 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
- 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
- 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
- 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
- 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
- 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
- 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
- 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
- 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
- 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
- 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
- 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
- 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
- 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
- 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
- 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
- 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
- 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
- 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
- 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
- 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
- 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
- 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
- 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
- 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
- 0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4,
- 0xDE, 0xF9, 0x9C, 0x02, 0x38, 0x61, 0xB4,
- 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A,
- 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE,
- 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9,
- 0x1C, 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13,
- 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93, 0xBC,
- 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52,
- 0xE2, 0xD7, 0x4D, 0xD3, 0x64, 0xF2, 0xE2,
- 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE,
- 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, 0xE8,
- 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
- 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA,
- 0xDA, 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4,
- 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA,
- 0x53, 0xDD, 0xEF, 0x3C, 0x1B, 0x20, 0xEE,
- 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D,
- 0x2B, 0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F,
- 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, 0x79,
- 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6,
- 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D,
- 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03,
- 0x40, 0x04, 0x87, 0xF5, 0x5B, 0xA5, 0x7E,
- 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
- 0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E,
- 0x01, 0x2D, 0x9E, 0x68, 0x32, 0xA9, 0x07,
- 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D,
- 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38,
- 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B,
- 0x7A, 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40,
- 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9, 0xF9,
- 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD,
- 0xCE, 0xC9, 0x7D, 0xCF, 0x8E, 0xC9, 0xB5,
- 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5,
- 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, 0xC6,
- 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02,
- 0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C,
- 0x7A, 0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53,
- 0x2A, 0x3A, 0x23, 0xBA, 0x44, 0x42, 0xCA,
- 0xF5, 0x3E, 0xA6, 0x3B, 0xB4, 0x54, 0x32,
- 0x9B, 0x76, 0x24, 0xC8, 0x91, 0x7B, 0xDD,
- 0x64, 0xB1, 0xC0, 0xFD, 0x4C, 0xB3, 0x8E,
- 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, 0xCD,
- 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71,
- 0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04,
- 0x1F, 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD,
- 0xB4, 0x77, 0xA5, 0x24, 0x71, 0xF7, 0xA9,
- 0xA9, 0x69, 0x10, 0xB8, 0x55, 0x32, 0x2E,
- 0xDB, 0x63, 0x40, 0xD8, 0xA0, 0x0E, 0xF0,
- 0x92, 0x35, 0x05, 0x11, 0xE3, 0x0A, 0xBE,
- 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, 0x7F,
- 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3,
- 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9,
- 0xB4, 0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2,
- 0xBB, 0xC1, 0x94, 0xC6, 0x65, 0x1E, 0x77,
- 0xCA, 0xF9, 0x92, 0xEE, 0xAA, 0xC0, 0x23,
- 0x2A, 0x28, 0x1B, 0xF6, 0xB3, 0xA7, 0x39,
- 0xC1, 0x22, 0x61, 0x16, 0x82, 0x0A, 0xE8,
- 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, 0xF9,
- 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C,
- 0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F,
- 0x5E, 0x62, 0x29, 0x2C, 0x31, 0x15, 0x62,
- 0xA8, 0x46, 0x50, 0x5D, 0xC8, 0x2D, 0xB8,
- 0x54, 0x33, 0x8A, 0xE4, 0x9F, 0x52, 0x35,
- 0xC9, 0x5B, 0x91, 0x17, 0x8C, 0xCF, 0x2D,
- 0xD5, 0xCA, 0xCE, 0xF4, 0x03, 0xEC, 0x9D,
- 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, 0x5B,
- 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6,
- 0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E,
- 0x69, 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31,
- 0x61, 0xC1, 0xA4, 0x1D, 0x57, 0x0D, 0x79,
- 0x38, 0xDA, 0xD4, 0xA4, 0x0E, 0x32, 0x9C,
- 0xCF, 0xF4, 0x6A, 0xAA, 0x36, 0xAD, 0x00,
- 0x4C, 0xF6, 0x00, 0xC8, 0x38, 0x1E, 0x42,
- 0x5A, 0x31, 0xD9, 0x51, 0xAE, 0x64, 0xFD,
- 0xB2, 0x3F, 0xCE, 0xC9, 0x50, 0x9D, 0x43,
- 0x68, 0x7F, 0xEB, 0x69, 0xED, 0xD1, 0xCC,
- 0x5E, 0x0B, 0x8C, 0xC3, 0xBD, 0xF6, 0x4B,
- 0x10, 0xEF, 0x86, 0xB6, 0x31, 0x42, 0xA3,
- 0xAB, 0x88, 0x29, 0x55, 0x5B, 0x2F, 0x74,
- 0x7C, 0x93, 0x26, 0x65, 0xCB, 0x2C, 0x0F,
- 0x1C, 0xC0, 0x1B, 0xD7, 0x02, 0x29, 0x38,
- 0x88, 0x39, 0xD2, 0xAF, 0x05, 0xE4, 0x54,
- 0x50, 0x4A, 0xC7, 0x8B, 0x75, 0x82, 0x82,
- 0x28, 0x46, 0xC0, 0xBA, 0x35, 0xC3, 0x5F,
- 0x5C, 0x59, 0x16, 0x0C, 0xC0, 0x46, 0xFD,
- 0x82, 0x51, 0x54, 0x1F, 0xC6, 0x8C, 0x9C,
- 0x86, 0xB0, 0x22, 0xBB, 0x70, 0x99, 0x87,
- 0x6A, 0x46, 0x0E, 0x74, 0x51, 0xA8, 0xA9,
- 0x31, 0x09, 0x70, 0x3F, 0xEE, 0x1C, 0x21,
- 0x7E, 0x6C, 0x38, 0x26, 0xE5, 0x2C, 0x51,
- 0xAA, 0x69, 0x1E, 0x0E, 0x42, 0x3C, 0xFC,
- 0x99, 0xE9, 0xE3, 0x16, 0x50, 0xC1, 0x21,
- 0x7B, 0x62, 0x48, 0x16, 0xCD, 0xAD, 0x9A,
- 0x95, 0xF9, 0xD5, 0xB8, 0x01, 0x94, 0x88,
- 0xD9, 0xC0, 0xA0, 0xA1, 0xFE, 0x30, 0x75,
- 0xA5, 0x77, 0xE2, 0x31, 0x83, 0xF8, 0x1D,
- 0x4A, 0x3F, 0x2F, 0xA4, 0x57, 0x1E, 0xFC,
- 0x8C, 0xE0, 0xBA, 0x8A, 0x4F, 0xE8, 0xB6,
- 0x85, 0x5D, 0xFE, 0x72, 0xB0, 0xA6, 0x6E,
- 0xDE, 0xD2, 0xFB, 0xAB, 0xFB, 0xE5, 0x8A,
- 0x30, 0xFA, 0xFA, 0xBE, 0x1C, 0x5D, 0x71,
- 0xA8, 0x7E, 0x2F, 0x74, 0x1E, 0xF8, 0xC1,
- 0xFE, 0x86, 0xFE, 0xA6, 0xBB, 0xFD, 0xE5,
- 0x30, 0x67, 0x7F, 0x0D, 0x97, 0xD1, 0x1D,
- 0x49, 0xF7, 0xA8, 0x44, 0x3D, 0x08, 0x22,
- 0xE5, 0x06, 0xA9, 0xF4, 0x61, 0x4E, 0x01,
- 0x1E, 0x2A, 0x94, 0x83, 0x8F, 0xF8, 0x8C,
- 0xD6, 0x8C, 0x8B, 0xB7, 0xC5, 0xC6, 0x42,
- 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB,
+ 0x4A, 0x9A, 0xAF, 0xDC, 0x56, 0x20, 0x27,
+ 0x3D, 0x3C, 0xF1, 0xD8, 0xB9, 0xC5, 0x83,
+ 0xCE, 0x2D, 0x36, 0x95, 0xA9, 0xE1, 0x36,
+ 0x41, 0x14, 0x64, 0x33, 0xFB, 0xCC, 0x93,
+ 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, 0x7D,
+ 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8,
+ 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61,
+ 0x7A, 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD,
+ 0x65, 0x61, 0x24, 0x33, 0xF5, 0x1F, 0x5F,
+ 0x06, 0x6E, 0xD0, 0x85, 0x63, 0x65, 0x55,
+ 0x3D, 0xED, 0x1A, 0xF3, 0xB5, 0x57, 0x13,
+ 0x5E, 0x7F, 0x57, 0xC9, 0x35, 0x98, 0x4F,
+ 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, 0xE2,
+ 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72,
+ 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7,
+ 0x35, 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A,
+ 0x79, 0x7A, 0xBC, 0x0A, 0xB1, 0x82, 0xB3,
+ 0x24, 0xFB, 0x61, 0xD1, 0x08, 0xA9, 0x4B,
+ 0xB2, 0xC8, 0xE3, 0xFB, 0xB9, 0x6A, 0xDA,
+ 0xB7, 0x60, 0xD7, 0xF4, 0x68, 0x1D, 0x4F,
+ 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, 0xAE,
+ 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19,
+ 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D,
+ 0x70, 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7,
+ 0xE2, 0xEC, 0xC0, 0x34, 0x04, 0xCD, 0x28,
+ 0x34, 0x2F, 0x61, 0x91, 0x72, 0xFE, 0x9C,
+ 0xE9, 0x85, 0x83, 0xFF, 0x8E, 0x4F, 0x12,
+ 0x32, 0xEE, 0xF2, 0x81, 0x83, 0xC3, 0xFE,
+ 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, 0x3B,
+ 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05,
+ 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83,
+ 0xB2, 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2,
+ 0xEF, 0xFA, 0x88, 0x6B, 0x42, 0x38, 0x61,
+ 0x1F, 0xCF, 0xDC, 0xDE, 0x35, 0x5B, 0x3B,
+ 0x65, 0x19, 0x03, 0x5B, 0xBC, 0x34, 0xF4,
+ 0xDE, 0xF9, 0x9C, 0x02, 0x38, 0x61, 0xB4,
+ 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, 0x7A,
+ 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE,
+ 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9,
+ 0x1C, 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13,
+ 0x92, 0x70, 0xB4, 0x13, 0x0C, 0x93, 0xBC,
+ 0x43, 0x79, 0x44, 0xF4, 0xFD, 0x44, 0x52,
+ 0xE2, 0xD7, 0x4D, 0xD3, 0x64, 0xF2, 0xE2,
+ 0x1E, 0x71, 0xF5, 0x4B, 0xFF, 0x5C, 0xAE,
+ 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, 0xE8,
+ 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D,
+ 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA,
+ 0xDA, 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4,
+ 0x48, 0x4E, 0x0A, 0xBC, 0xD0, 0x6B, 0xFA,
+ 0x53, 0xDD, 0xEF, 0x3C, 0x1B, 0x20, 0xEE,
+ 0x3F, 0xD5, 0x9D, 0x7C, 0x25, 0xE4, 0x1D,
+ 0x2B, 0x66, 0x9E, 0x1E, 0xF1, 0x6E, 0x6F,
+ 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, 0x79,
+ 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6,
+ 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D,
+ 0x18, 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03,
+ 0x40, 0x04, 0x87, 0xF5, 0x5B, 0xA5, 0x7E,
+ 0x31, 0xCC, 0x7A, 0x71, 0x35, 0xC8, 0x86,
+ 0xEF, 0xB4, 0x31, 0x8A, 0xED, 0x6A, 0x1E,
+ 0x01, 0x2D, 0x9E, 0x68, 0x32, 0xA9, 0x07,
+ 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, 0x6D,
+ 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38,
+ 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B,
+ 0x7A, 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40,
+ 0x00, 0x3C, 0x2A, 0x4E, 0xCE, 0xA9, 0xF9,
+ 0x8D, 0x0A, 0xCC, 0x0A, 0x82, 0x91, 0xCD,
+ 0xCE, 0xC9, 0x7D, 0xCF, 0x8E, 0xC9, 0xB5,
+ 0x5A, 0x7F, 0x88, 0xA4, 0x6B, 0x4D, 0xB5,
+ 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, 0xC6,
+ 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02,
+ 0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C,
+ 0x7A, 0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53,
+ 0x2A, 0x3A, 0x23, 0xBA, 0x44, 0x42, 0xCA,
+ 0xF5, 0x3E, 0xA6, 0x3B, 0xB4, 0x54, 0x32,
+ 0x9B, 0x76, 0x24, 0xC8, 0x91, 0x7B, 0xDD,
+ 0x64, 0xB1, 0xC0, 0xFD, 0x4C, 0xB3, 0x8E,
+ 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, 0xCD,
+ 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71,
+ 0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04,
+ 0x1F, 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD,
+ 0xB4, 0x77, 0xA5, 0x24, 0x71, 0xF7, 0xA9,
+ 0xA9, 0x69, 0x10, 0xB8, 0x55, 0x32, 0x2E,
+ 0xDB, 0x63, 0x40, 0xD8, 0xA0, 0x0E, 0xF0,
+ 0x92, 0x35, 0x05, 0x11, 0xE3, 0x0A, 0xBE,
+ 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, 0x7F,
+ 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3,
+ 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9,
+ 0xB4, 0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2,
+ 0xBB, 0xC1, 0x94, 0xC6, 0x65, 0x1E, 0x77,
+ 0xCA, 0xF9, 0x92, 0xEE, 0xAA, 0xC0, 0x23,
+ 0x2A, 0x28, 0x1B, 0xF6, 0xB3, 0xA7, 0x39,
+ 0xC1, 0x22, 0x61, 0x16, 0x82, 0x0A, 0xE8,
+ 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, 0xF9,
+ 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C,
+ 0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F,
+ 0x5E, 0x62, 0x29, 0x2C, 0x31, 0x15, 0x62,
+ 0xA8, 0x46, 0x50, 0x5D, 0xC8, 0x2D, 0xB8,
+ 0x54, 0x33, 0x8A, 0xE4, 0x9F, 0x52, 0x35,
+ 0xC9, 0x5B, 0x91, 0x17, 0x8C, 0xCF, 0x2D,
+ 0xD5, 0xCA, 0xCE, 0xF4, 0x03, 0xEC, 0x9D,
+ 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, 0x5B,
+ 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6,
+ 0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E,
+ 0x69, 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31,
+ 0x61, 0xC1, 0xA4, 0x1D, 0x57, 0x0D, 0x79,
+ 0x38, 0xDA, 0xD4, 0xA4, 0x0E, 0x32, 0x9C,
+ 0xCF, 0xF4, 0x6A, 0xAA, 0x36, 0xAD, 0x00,
+ 0x4C, 0xF6, 0x00, 0xC8, 0x38, 0x1E, 0x42,
+ 0x5A, 0x31, 0xD9, 0x51, 0xAE, 0x64, 0xFD,
+ 0xB2, 0x3F, 0xCE, 0xC9, 0x50, 0x9D, 0x43,
+ 0x68, 0x7F, 0xEB, 0x69, 0xED, 0xD1, 0xCC,
+ 0x5E, 0x0B, 0x8C, 0xC3, 0xBD, 0xF6, 0x4B,
+ 0x10, 0xEF, 0x86, 0xB6, 0x31, 0x42, 0xA3,
+ 0xAB, 0x88, 0x29, 0x55, 0x5B, 0x2F, 0x74,
+ 0x7C, 0x93, 0x26, 0x65, 0xCB, 0x2C, 0x0F,
+ 0x1C, 0xC0, 0x1B, 0xD7, 0x02, 0x29, 0x38,
+ 0x88, 0x39, 0xD2, 0xAF, 0x05, 0xE4, 0x54,
+ 0x50, 0x4A, 0xC7, 0x8B, 0x75, 0x82, 0x82,
+ 0x28, 0x46, 0xC0, 0xBA, 0x35, 0xC3, 0x5F,
+ 0x5C, 0x59, 0x16, 0x0C, 0xC0, 0x46, 0xFD,
+ 0x82, 0x51, 0x54, 0x1F, 0xC6, 0x8C, 0x9C,
+ 0x86, 0xB0, 0x22, 0xBB, 0x70, 0x99, 0x87,
+ 0x6A, 0x46, 0x0E, 0x74, 0x51, 0xA8, 0xA9,
+ 0x31, 0x09, 0x70, 0x3F, 0xEE, 0x1C, 0x21,
+ 0x7E, 0x6C, 0x38, 0x26, 0xE5, 0x2C, 0x51,
+ 0xAA, 0x69, 0x1E, 0x0E, 0x42, 0x3C, 0xFC,
+ 0x99, 0xE9, 0xE3, 0x16, 0x50, 0xC1, 0x21,
+ 0x7B, 0x62, 0x48, 0x16, 0xCD, 0xAD, 0x9A,
+ 0x95, 0xF9, 0xD5, 0xB8, 0x01, 0x94, 0x88,
+ 0xD9, 0xC0, 0xA0, 0xA1, 0xFE, 0x30, 0x75,
+ 0xA5, 0x77, 0xE2, 0x31, 0x83, 0xF8, 0x1D,
+ 0x4A, 0x3F, 0x2F, 0xA4, 0x57, 0x1E, 0xFC,
+ 0x8C, 0xE0, 0xBA, 0x8A, 0x4F, 0xE8, 0xB6,
+ 0x85, 0x5D, 0xFE, 0x72, 0xB0, 0xA6, 0x6E,
+ 0xDE, 0xD2, 0xFB, 0xAB, 0xFB, 0xE5, 0x8A,
+ 0x30, 0xFA, 0xFA, 0xBE, 0x1C, 0x5D, 0x71,
+ 0xA8, 0x7E, 0x2F, 0x74, 0x1E, 0xF8, 0xC1,
+ 0xFE, 0x86, 0xFE, 0xA6, 0xBB, 0xFD, 0xE5,
+ 0x30, 0x67, 0x7F, 0x0D, 0x97, 0xD1, 0x1D,
+ 0x49, 0xF7, 0xA8, 0x44, 0x3D, 0x08, 0x22,
+ 0xE5, 0x06, 0xA9, 0xF4, 0x61, 0x4E, 0x01,
+ 0x1E, 0x2A, 0x94, 0x83, 0x8F, 0xF8, 0x8C,
+ 0xD6, 0x8C, 0x8B, 0xB7, 0xC5, 0xC6, 0x42,
+ 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF
};
@@ -948,14 +960,17 @@ static const unsigned char ffdhe_q_8192[] = {
};
const gnutls_datum_t gnutls_ffdhe_8192_group_prime = {
- (void *) ffdhe_params_8192, sizeof(ffdhe_params_8192)
+ (void *)ffdhe_params_8192, sizeof(ffdhe_params_8192)
};
+
const gnutls_datum_t gnutls_ffdhe_8192_group_q = {
- (void *) ffdhe_q_8192, sizeof(ffdhe_q_8192)
+ (void *)ffdhe_q_8192, sizeof(ffdhe_q_8192)
};
+
const gnutls_datum_t gnutls_ffdhe_8192_group_generator = {
- (void *) &ffdhe_generator, sizeof(ffdhe_generator)
+ (void *)&ffdhe_generator, sizeof(ffdhe_generator)
};
+
const unsigned int gnutls_ffdhe_8192_key_bits = 512;
static const unsigned char modp_generator = 0x02;
@@ -1041,14 +1056,17 @@ static const unsigned char modp_q_2048[] = {
};
const gnutls_datum_t gnutls_modp_2048_group_prime = {
- (void *) modp_params_2048, sizeof(modp_params_2048)
+ (void *)modp_params_2048, sizeof(modp_params_2048)
};
+
const gnutls_datum_t gnutls_modp_2048_group_q = {
- (void *) modp_q_2048, sizeof(modp_q_2048)
+ (void *)modp_q_2048, sizeof(modp_q_2048)
};
+
const gnutls_datum_t gnutls_modp_2048_group_generator = {
- (void *) &modp_generator, sizeof(modp_generator)
+ (void *)&modp_generator, sizeof(modp_generator)
};
+
const unsigned int gnutls_modp_2048_key_bits = 256;
static const unsigned char modp_params_3072[] = {
@@ -1168,14 +1186,17 @@ static const unsigned char modp_q_3072[] = {
};
const gnutls_datum_t gnutls_modp_3072_group_prime = {
- (void *) modp_params_3072, sizeof(modp_params_3072)
+ (void *)modp_params_3072, sizeof(modp_params_3072)
};
+
const gnutls_datum_t gnutls_modp_3072_group_q = {
- (void *) modp_q_3072, sizeof(modp_q_3072)
+ (void *)modp_q_3072, sizeof(modp_q_3072)
};
+
const gnutls_datum_t gnutls_modp_3072_group_generator = {
- (void *) &modp_generator, sizeof(modp_generator)
+ (void *)&modp_generator, sizeof(modp_generator)
};
+
const unsigned int gnutls_modp_3072_key_bits = 276;
static const unsigned char modp_params_4096[] = {
@@ -1333,14 +1354,17 @@ static const unsigned char modp_q_4096[] = {
};
const gnutls_datum_t gnutls_modp_4096_group_prime = {
- (void *) modp_params_4096, sizeof(modp_params_4096)
+ (void *)modp_params_4096, sizeof(modp_params_4096)
};
+
const gnutls_datum_t gnutls_modp_4096_group_q = {
- (void *) modp_q_4096, sizeof(modp_q_4096)
+ (void *)modp_q_4096, sizeof(modp_q_4096)
};
+
const gnutls_datum_t gnutls_modp_4096_group_generator = {
- (void *) &modp_generator, sizeof(modp_generator)
+ (void *)&modp_generator, sizeof(modp_generator)
};
+
const unsigned int gnutls_modp_4096_key_bits = 336;
static const unsigned char modp_params_6144[] = {
@@ -1570,14 +1594,17 @@ static const unsigned char modp_q_6144[] = {
};
const gnutls_datum_t gnutls_modp_6144_group_prime = {
- (void *) modp_params_6144, sizeof(modp_params_6144)
+ (void *)modp_params_6144, sizeof(modp_params_6144)
};
+
const gnutls_datum_t gnutls_modp_6144_group_q = {
- (void *) modp_q_6144, sizeof(modp_q_6144)
+ (void *)modp_q_6144, sizeof(modp_q_6144)
};
+
const gnutls_datum_t gnutls_modp_6144_group_generator = {
- (void *) &modp_generator, sizeof(modp_generator)
+ (void *)&modp_generator, sizeof(modp_generator)
};
+
const unsigned int gnutls_modp_6144_key_bits = 376;
static const unsigned char modp_params_8192[] = {
@@ -1881,47 +1908,66 @@ static const unsigned char modp_q_8192[] = {
};
const gnutls_datum_t gnutls_modp_8192_group_prime = {
- (void *) modp_params_8192, sizeof(modp_params_8192)
+ (void *)modp_params_8192, sizeof(modp_params_8192)
};
+
const gnutls_datum_t gnutls_modp_8192_group_q = {
- (void *) modp_q_8192, sizeof(modp_q_8192)
+ (void *)modp_q_8192, sizeof(modp_q_8192)
};
+
const gnutls_datum_t gnutls_modp_8192_group_generator = {
- (void *) &modp_generator, sizeof(modp_generator)
+ (void *)&modp_generator, sizeof(modp_generator)
};
+
const unsigned int gnutls_modp_8192_key_bits = 512;
unsigned
-_gnutls_dh_prime_match_fips_approved(const uint8_t *prime,
+_gnutls_dh_prime_match_fips_approved(const uint8_t * prime,
size_t prime_size,
- const uint8_t *generator,
+ const uint8_t * generator,
size_t generator_size,
- uint8_t **q,
- size_t *q_size)
+ uint8_t ** q, size_t *q_size)
{
static const struct {
const gnutls_datum_t *prime;
const gnutls_datum_t *generator;
const gnutls_datum_t *q;
} primes[] = {
- { &gnutls_ffdhe_8192_group_prime, &gnutls_ffdhe_8192_group_generator, &gnutls_ffdhe_8192_group_q },
- { &gnutls_ffdhe_6144_group_prime, &gnutls_ffdhe_6144_group_generator, &gnutls_ffdhe_6144_group_q },
- { &gnutls_ffdhe_4096_group_prime, &gnutls_ffdhe_4096_group_generator, &gnutls_ffdhe_4096_group_q },
- { &gnutls_ffdhe_3072_group_prime, &gnutls_ffdhe_3072_group_generator, &gnutls_ffdhe_3072_group_q },
- { &gnutls_ffdhe_2048_group_prime, &gnutls_ffdhe_2048_group_generator, &gnutls_ffdhe_2048_group_q },
- { &gnutls_modp_8192_group_prime, &gnutls_modp_8192_group_generator, &gnutls_modp_8192_group_q },
- { &gnutls_modp_6144_group_prime, &gnutls_modp_6144_group_generator, &gnutls_modp_6144_group_q },
- { &gnutls_modp_4096_group_prime, &gnutls_modp_4096_group_generator, &gnutls_modp_4096_group_q },
- { &gnutls_modp_3072_group_prime, &gnutls_modp_3072_group_generator, &gnutls_modp_3072_group_q },
- { &gnutls_modp_2048_group_prime, &gnutls_modp_2048_group_generator, &gnutls_modp_2048_group_q },
+ {&gnutls_ffdhe_8192_group_prime,
+ &gnutls_ffdhe_8192_group_generator,
+ &gnutls_ffdhe_8192_group_q},
+ {&gnutls_ffdhe_6144_group_prime,
+ &gnutls_ffdhe_6144_group_generator,
+ &gnutls_ffdhe_6144_group_q},
+ {&gnutls_ffdhe_4096_group_prime,
+ &gnutls_ffdhe_4096_group_generator,
+ &gnutls_ffdhe_4096_group_q},
+ {&gnutls_ffdhe_3072_group_prime,
+ &gnutls_ffdhe_3072_group_generator,
+ &gnutls_ffdhe_3072_group_q},
+ {&gnutls_ffdhe_2048_group_prime,
+ &gnutls_ffdhe_2048_group_generator,
+ &gnutls_ffdhe_2048_group_q},
+ {&gnutls_modp_8192_group_prime,
+ &gnutls_modp_8192_group_generator, &gnutls_modp_8192_group_q},
+ {&gnutls_modp_6144_group_prime,
+ &gnutls_modp_6144_group_generator, &gnutls_modp_6144_group_q},
+ {&gnutls_modp_4096_group_prime,
+ &gnutls_modp_4096_group_generator, &gnutls_modp_4096_group_q},
+ {&gnutls_modp_3072_group_prime,
+ &gnutls_modp_3072_group_generator, &gnutls_modp_3072_group_q},
+ {&gnutls_modp_2048_group_prime,
+ &gnutls_modp_2048_group_generator, &gnutls_modp_2048_group_q},
};
size_t i;
for (i = 0; i < sizeof(primes) / sizeof(primes[0]); i++) {
if (primes[i].prime->size == prime_size &&
- memcmp(primes[i].prime->data, prime, primes[i].prime->size) == 0 &&
- primes[i].generator->size == generator_size &&
- memcmp(primes[i].generator->data, generator, primes[i].generator->size) == 0) {
+ memcmp(primes[i].prime->data, prime,
+ primes[i].prime->size) == 0
+ && primes[i].generator->size == generator_size
+ && memcmp(primes[i].generator->data, generator,
+ primes[i].generator->size) == 0) {
if (q) {
*q = primes[i].q->data;
*q_size = primes[i].q->size;
diff --git a/lib/dh-session.c b/lib/dh-session.c
index accc71ce6e..6a0dccb353 100644
--- a/lib/dh-session.c
+++ b/lib/dh-session.c
@@ -67,15 +67,15 @@
**/
void gnutls_dh_set_prime_bits(gnutls_session_t session, unsigned int bits)
{
- if (bits < gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH, GNUTLS_SEC_PARAM_WEAK)
- && bits != 0)
+ if (bits <
+ gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH, GNUTLS_SEC_PARAM_WEAK)
+ && bits != 0)
_gnutls_audit_log(session,
"Note that the security level of the Diffie-Hellman key exchange has been lowered to %u bits and this may allow decryption of the session data\n",
bits);
session->internals.dh_prime_bits = bits;
}
-
/**
* gnutls_dh_get_group:
* @session: is a gnutls session
@@ -118,7 +118,8 @@ gnutls_dh_get_group(gnutls_session_t session,
dh = &psk_info->dh;
break;
case GNUTLS_CRD_CERTIFICATE:
- cert_info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ cert_info =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
if (cert_info == NULL)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &cert_info->dh;
@@ -135,8 +136,7 @@ gnutls_dh_get_group(gnutls_session_t session,
}
ret =
- _gnutls_set_datum(raw_gen, dh->generator.data,
- dh->generator.size);
+ _gnutls_set_datum(raw_gen, dh->generator.data, dh->generator.size);
if (ret < 0) {
gnutls_assert();
_gnutls_free_datum(raw_prime);
@@ -162,8 +162,7 @@ gnutls_dh_get_group(gnutls_session_t session,
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise
* an error code is returned.
**/
-int
-gnutls_dh_get_pubkey(gnutls_session_t session, gnutls_datum_t * raw_key)
+int gnutls_dh_get_pubkey(gnutls_session_t session, gnutls_datum_t * raw_key)
{
dh_info_st *dh;
anon_auth_info_t anon_info;
@@ -173,26 +172,33 @@ gnutls_dh_get_pubkey(gnutls_session_t session, gnutls_datum_t * raw_key)
switch (gnutls_auth_get_type(session)) {
case GNUTLS_CRD_ANON:
{
- anon_info = _gnutls_get_auth_info(session, GNUTLS_CRD_ANON);
+ anon_info =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_ANON);
if (anon_info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &anon_info->dh;
break;
}
case GNUTLS_CRD_PSK:
{
- psk_info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
+ psk_info =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
if (psk_info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &psk_info->dh;
break;
}
case GNUTLS_CRD_CERTIFICATE:
{
- cert_info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ cert_info =
+ _gnutls_get_auth_info(session,
+ GNUTLS_CRD_CERTIFICATE);
if (cert_info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &cert_info->dh;
break;
}
@@ -225,7 +231,8 @@ int gnutls_dh_get_secret_bits(gnutls_session_t session)
info = _gnutls_get_auth_info(session, GNUTLS_CRD_ANON);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
return info->dh.secret_bits;
}
case GNUTLS_CRD_PSK:
@@ -234,16 +241,20 @@ int gnutls_dh_get_secret_bits(gnutls_session_t session)
info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
return info->dh.secret_bits;
}
case GNUTLS_CRD_CERTIFICATE:
{
cert_auth_info_t info;
- info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ info =
+ _gnutls_get_auth_info(session,
+ GNUTLS_CRD_CERTIFICATE);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
return info->dh.secret_bits;
}
@@ -253,7 +264,6 @@ int gnutls_dh_get_secret_bits(gnutls_session_t session)
}
}
-
static int mpi_buf2bits(gnutls_datum_t * mpi_buf)
{
bigint_t mpi;
@@ -296,7 +306,8 @@ int gnutls_dh_get_prime_bits(gnutls_session_t session)
info = _gnutls_get_auth_info(session, GNUTLS_CRD_ANON);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
}
@@ -306,7 +317,8 @@ int gnutls_dh_get_prime_bits(gnutls_session_t session)
info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
}
@@ -314,9 +326,12 @@ int gnutls_dh_get_prime_bits(gnutls_session_t session)
{
cert_auth_info_t info;
- info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ info =
+ _gnutls_get_auth_info(session,
+ GNUTLS_CRD_CERTIFICATE);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
@@ -326,13 +341,12 @@ int gnutls_dh_get_prime_bits(gnutls_session_t session)
return GNUTLS_E_INVALID_REQUEST;
}
- if(dh->prime.size == 0)
+ if (dh->prime.size == 0)
return 0;
return mpi_buf2bits(&dh->prime);
}
-
/**
* gnutls_dh_get_peers_public_bits:
* @session: is a gnutls session
@@ -354,7 +368,8 @@ int gnutls_dh_get_peers_public_bits(gnutls_session_t session)
info = _gnutls_get_auth_info(session, GNUTLS_CRD_ANON);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
@@ -365,7 +380,8 @@ int gnutls_dh_get_peers_public_bits(gnutls_session_t session)
info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
@@ -374,9 +390,12 @@ int gnutls_dh_get_peers_public_bits(gnutls_session_t session)
{
cert_auth_info_t info;
- info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ info =
+ _gnutls_get_auth_info(session,
+ GNUTLS_CRD_CERTIFICATE);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
@@ -390,4 +409,3 @@ int gnutls_dh_get_peers_public_bits(gnutls_session_t session)
}
#endif /* DH */
-
diff --git a/lib/dh.c b/lib/dh.c
index 8f884670b6..8b4190ca04 100644
--- a/lib/dh.c
+++ b/lib/dh.c
@@ -50,15 +50,19 @@ int set_dh_pk_params(gnutls_session_t session, bigint_t g, bigint_t p,
session->key.proto.tls12.dh.params.params[DH_P] = _gnutls_mpi_copy(p);
if (session->key.proto.tls12.dh.params.params[DH_P] == NULL) {
- _gnutls_mpi_release(&session->key.proto.tls12.dh.params.params[DH_G]);
+ _gnutls_mpi_release(&session->key.proto.tls12.dh.
+ params.params[DH_G]);
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
if (q) {
- session->key.proto.tls12.dh.params.params[DH_Q] = _gnutls_mpi_copy(q);
+ session->key.proto.tls12.dh.params.params[DH_Q] =
+ _gnutls_mpi_copy(q);
if (session->key.proto.tls12.dh.params.params[DH_Q] == NULL) {
- _gnutls_mpi_release(&session->key.proto.tls12.dh.params.params[DH_P]);
- _gnutls_mpi_release(&session->key.proto.tls12.dh.params.params[DH_G]);
+ _gnutls_mpi_release(&session->key.proto.tls12.dh.
+ params.params[DH_P]);
+ _gnutls_mpi_release(&session->key.proto.tls12.dh.
+ params.params[DH_G]);
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
}
@@ -76,7 +80,8 @@ int set_dh_pk_params(gnutls_session_t session, bigint_t g, bigint_t p,
*/
int
_gnutls_figure_dh_params(gnutls_session_t session, gnutls_dh_params_t dh_params,
- gnutls_params_function * func, gnutls_sec_param_t sec_param)
+ gnutls_params_function * func,
+ gnutls_sec_param_t sec_param)
{
gnutls_params_st params;
bigint_t p, g, q = NULL;
@@ -91,34 +96,54 @@ _gnutls_figure_dh_params(gnutls_session_t session, gnutls_dh_params_t dh_params,
/* if we negotiated RFC7919 FFDHE */
if (group && group->pk == GNUTLS_PK_DH) {
- for (i=0;i<session->internals.priorities->groups.size;i++) {
- if (session->internals.priorities->groups.entry[i] == group) {
- ret = _gnutls_mpi_init_scan_nz(&p,
- session->internals.priorities->groups.entry[i]->prime->data,
- session->internals.priorities->groups.entry[i]->prime->size);
+ for (i = 0; i < session->internals.priorities->groups.size; i++) {
+ if (session->internals.priorities->groups.entry[i] ==
+ group) {
+ ret =
+ _gnutls_mpi_init_scan_nz(&p,
+ session->
+ internals.priorities->
+ groups.entry[i]->
+ prime->data,
+ session->
+ internals.priorities->
+ groups.entry[i]->
+ prime->size);
if (ret < 0)
return gnutls_assert_val(ret);
free_pg = 1;
ret = _gnutls_mpi_init_scan_nz(&g,
- session->internals.priorities->groups.entry[i]->generator->data,
- session->internals.priorities->groups.entry[i]->generator->size);
+ session->internals.priorities->groups.
+ entry
+ [i]->generator->
+ data,
+ session->internals.priorities->groups.
+ entry
+ [i]->generator->
+ size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
ret = _gnutls_mpi_init_scan_nz(&q,
- session->internals.priorities->groups.entry[i]->q->data,
- session->internals.priorities->groups.entry[i]->q->size);
+ session->internals.priorities->groups.
+ entry[i]->q->
+ data,
+ session->internals.priorities->groups.
+ entry[i]->q->
+ size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
session->internals.hsk_flags |= HSK_USED_FFDHE;
- q_bits = *session->internals.priorities->groups.entry[i]->q_bits;
+ q_bits =
+ *session->internals.priorities->
+ groups.entry[i]->q_bits;
goto finished;
}
}
@@ -127,30 +152,49 @@ _gnutls_figure_dh_params(gnutls_session_t session, gnutls_dh_params_t dh_params,
* as we received that extension */
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
} else if (sec_param) {
- unsigned bits = gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH, sec_param)/8;
+ unsigned bits =
+ gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH, sec_param) / 8;
- for (i=0;i<session->internals.priorities->groups.size;i++) {
- if (!session->internals.priorities->groups.entry[i]->prime)
+ for (i = 0; i < session->internals.priorities->groups.size; i++) {
+ if (!session->internals.priorities->groups.
+ entry[i]->prime)
continue;
- if (bits <= session->internals.priorities->groups.entry[i]->prime->size) {
- ret = _gnutls_mpi_init_scan_nz(&p,
- session->internals.priorities->groups.entry[i]->prime->data,
- session->internals.priorities->groups.entry[i]->prime->size);
+ if (bits <=
+ session->internals.priorities->groups.
+ entry[i]->prime->size) {
+ ret =
+ _gnutls_mpi_init_scan_nz(&p,
+ session->
+ internals.priorities->
+ groups.entry[i]->
+ prime->data,
+ session->
+ internals.priorities->
+ groups.entry[i]->
+ prime->size);
if (ret < 0)
return gnutls_assert_val(ret);
free_pg = 1;
ret = _gnutls_mpi_init_scan_nz(&g,
- session->internals.priorities->groups.entry[i]->generator->data,
- session->internals.priorities->groups.entry[i]->generator->size);
+ session->internals.priorities->groups.
+ entry
+ [i]->generator->
+ data,
+ session->internals.priorities->groups.
+ entry
+ [i]->generator->
+ size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- q_bits = *session->internals.priorities->groups.entry[i]->q_bits;
+ q_bits =
+ *session->internals.priorities->
+ groups.entry[i]->q_bits;
goto finished;
}
}
@@ -168,7 +212,8 @@ _gnutls_figure_dh_params(gnutls_session_t session, gnutls_dh_params_t dh_params,
g = params.params.dh->params[1];
q_bits = params.params.dh->q_bits;
} else
- return gnutls_assert_val(GNUTLS_E_NO_TEMPORARY_DH_PARAMS);
+ return
+ gnutls_assert_val(GNUTLS_E_NO_TEMPORARY_DH_PARAMS);
} else
return gnutls_assert_val(GNUTLS_E_NO_TEMPORARY_DH_PARAMS);
@@ -205,7 +250,6 @@ const bigint_t *_gnutls_dh_params_to_mpi(gnutls_dh_params_t dh_primes)
return dh_primes->params;
}
-
/**
* gnutls_dh_params_import_raw:
* @dh_params: The parameters
@@ -239,7 +283,8 @@ gnutls_dh_params_import_raw(gnutls_dh_params_t dh_params,
* otherwise a negative error code is returned.
**/
int
-gnutls_dh_params_import_dsa(gnutls_dh_params_t dh_params, gnutls_x509_privkey_t key)
+gnutls_dh_params_import_dsa(gnutls_dh_params_t dh_params,
+ gnutls_x509_privkey_t key)
{
gnutls_datum_t p, g, q;
int ret;
@@ -329,8 +374,7 @@ gnutls_dh_params_import_raw3(gnutls_dh_params_t dh_params,
return GNUTLS_E_MPI_SCAN_FAILED;
}
- if (_gnutls_mpi_init_scan_nz(&tmp_g, generator->data,
- generator->size)) {
+ if (_gnutls_mpi_init_scan_nz(&tmp_g, generator->data, generator->size)) {
_gnutls_mpi_release(&tmp_p);
gnutls_assert();
return GNUTLS_E_MPI_SCAN_FAILED;
@@ -429,7 +473,6 @@ int gnutls_dh_params_cpy(gnutls_dh_params_t dst, gnutls_dh_params_t src)
return 0;
}
-
/**
* gnutls_dh_params_generate2:
* @dparams: The parameters
@@ -457,8 +500,7 @@ int gnutls_dh_params_cpy(gnutls_dh_params_t dst, gnutls_dh_params_t src)
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned,
* otherwise a negative error code is returned.
**/
-int
-gnutls_dh_params_generate2(gnutls_dh_params_t dparams, unsigned int bits)
+int gnutls_dh_params_generate2(gnutls_dh_params_t dparams, unsigned int bits)
{
int ret;
gnutls_pk_params_st params;
@@ -507,8 +549,7 @@ gnutls_dh_params_import_pkcs3(gnutls_dh_params_t params,
result = _gnutls_fbase64_decode("DH PARAMETERS",
pkcs3_params->data,
- pkcs3_params->size,
- &_params);
+ pkcs3_params->size, &_params);
if (result < 0) {
gnutls_assert();
@@ -615,16 +656,16 @@ int
gnutls_dh_params_export_pkcs3(gnutls_dh_params_t params,
gnutls_x509_crt_fmt_t format,
unsigned char *params_data,
- size_t * params_data_size)
+ size_t *params_data_size)
{
- gnutls_datum_t out = {NULL, 0};
+ gnutls_datum_t out = { NULL, 0 };
int ret;
ret = gnutls_dh_params_export2_pkcs3(params, format, &out);
if (ret < 0)
return gnutls_assert_val(ret);
- if (*params_data_size < (unsigned) out.size + 1) {
+ if (*params_data_size < (unsigned)out.size + 1) {
gnutls_assert();
gnutls_free(out.data);
*params_data_size = out.size + 1;
@@ -687,7 +728,6 @@ gnutls_dh_params_export2_pkcs3(gnutls_dh_params_t params,
g_data = &all_data[p_size];
_gnutls_mpi_print_lz(params->params[1], g_data, &g_size);
-
/* Ok. Now we have the data. Create the asn1 structures
*/
@@ -714,8 +754,7 @@ gnutls_dh_params_export2_pkcs3(gnutls_dh_params_t params,
_gnutls_x509_write_uint32(c2, "privateValueLength",
params->q_bits);
else
- result =
- asn1_write_value(c2, "privateValueLength", NULL, 0);
+ result = asn1_write_value(c2, "privateValueLength", NULL, 0);
if (result < 0) {
gnutls_assert();
@@ -736,7 +775,6 @@ gnutls_dh_params_export2_pkcs3(gnutls_dh_params_t params,
gnutls_free(all_data);
-
if (format == GNUTLS_X509_FMT_DER) {
result = _gnutls_x509_der_encode(c2, "", out, 0);
diff --git a/lib/dh.h b/lib/dh.h
index f5c2c0924b..ea78715c9f 100644
--- a/lib/dh.h
+++ b/lib/dh.h
@@ -21,15 +21,17 @@
*/
#ifndef GNUTLS_LIB_DH_H
-#define GNUTLS_LIB_DH_H
+# define GNUTLS_LIB_DH_H
const bigint_t *_gnutls_dh_params_to_mpi(gnutls_dh_params_t);
int
_gnutls_figure_dh_params(gnutls_session_t session, gnutls_dh_params_t dh_params,
- gnutls_params_function * func, gnutls_sec_param_t sec_param);
+ gnutls_params_function * func,
+ gnutls_sec_param_t sec_param);
-int _gnutls_set_cred_dh_params(gnutls_dh_params_t *cparams, gnutls_sec_param_t sec_param);
+int _gnutls_set_cred_dh_params(gnutls_dh_params_t * cparams,
+ gnutls_sec_param_t sec_param);
/* The static parameters defined in RFC 3526, used for the approved
* primes check in SP800-56A (Appendix D).
@@ -61,11 +63,10 @@ extern const gnutls_datum_t gnutls_modp_2048_group_generator;
extern const unsigned int gnutls_modp_2048_key_bits;
unsigned
-_gnutls_dh_prime_match_fips_approved(const uint8_t *prime,
+_gnutls_dh_prime_match_fips_approved(const uint8_t * prime,
size_t prime_size,
- const uint8_t *generator,
+ const uint8_t * generator,
size_t generator_size,
- uint8_t **q,
- size_t *q_size);
+ uint8_t ** q, size_t *q_size);
-#endif /* GNUTLS_LIB_DH_H */
+#endif /* GNUTLS_LIB_DH_H */
diff --git a/lib/dtls-sw.c b/lib/dtls-sw.c
index 2511fb34a2..960604ad14 100644
--- a/lib/dtls-sw.c
+++ b/lib/dtls-sw.c
@@ -25,11 +25,11 @@
*/
#ifndef DTLS_SW_NO_INCLUDES
-#include "gnutls_int.h"
-#include "errors.h"
-#include "debug.h"
-#include "dtls.h"
-#include "record.h"
+# include "gnutls_int.h"
+# include "errors.h"
+# include "debug.h"
+# include "dtls.h"
+# include "record.h"
#endif
/*
@@ -128,7 +128,8 @@ int _dtls_record_check(struct record_parameters_st *rp, uint64_t seq_num)
return gnutls_assert_val(-3);
} else {
/* Within the sliding window, so we remember whether we've seen it or not */
- uint64_t mask = 1ULL << (rp->dtls_sw_next - seq_num - 2);
+ uint64_t mask =
+ 1ULL << (rp->dtls_sw_next - seq_num - 2);
if (!(rp->dtls_sw_bits & mask))
return gnutls_assert_val(-3);
diff --git a/lib/dtls.c b/lib/dtls.c
index 002c7145ef..65edb83acf 100644
--- a/lib/dtls.c
+++ b/lib/dtls.c
@@ -56,14 +56,12 @@ void _dtls_async_timer_delete(gnutls_session_t session)
* be reused (should be set to NULL initially).
*/
static inline int
-transmit_message(gnutls_session_t session,
- mbuffer_st * bufel, uint8_t ** buf)
+transmit_message(gnutls_session_t session, mbuffer_st * bufel, uint8_t ** buf)
{
uint8_t *data, *mtu_data;
int ret = 0;
unsigned int offset, frag_len, data_size;
- unsigned int mtu =
- gnutls_dtls_get_data_mtu(session);
+ unsigned int mtu = gnutls_dtls_get_data_mtu(session);
if (session->security_parameters.max_record_send_size < mtu)
mtu = session->security_parameters.max_record_send_size;
@@ -164,7 +162,6 @@ static int drop_usage_count(gnutls_session_t session,
return 0;
}
-
/* Checks whether the received packet contains a handshake
* packet with sequence higher that the previously received.
* It must be called only when an actual packet has been
@@ -190,20 +187,16 @@ static int is_next_hpacket_expected(gnutls_session_t session)
if (session->internals.handshake_recv_buffer_size > 0)
return 0;
else
- return
- gnutls_assert_val
- (GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET);
}
void _dtls_reset_hsk_state(gnutls_session_t session)
{
session->internals.dtls.flight_init = 0;
- drop_usage_count(session,
- &session->internals.handshake_send_buffer);
+ drop_usage_count(session, &session->internals.handshake_send_buffer);
_mbuffer_head_clear(&session->internals.handshake_send_buffer);
}
-
#define UPDATE_TIMER { \
session->internals.dtls.actual_retrans_timeout_ms *= 2; \
session->internals.dtls.actual_retrans_timeout_ms %= MAX_DTLS_TIMEOUT; \
@@ -258,17 +251,15 @@ int _dtls_transmit(gnutls_session_t session)
*/
if (timespec_sub_ms
(&now,
- &session->internals.dtls.
- last_retransmit) < TIMER_WINDOW) {
+ &session->internals.dtls.last_retransmit) <
+ TIMER_WINDOW) {
gnutls_assert();
goto nb_timeout;
}
} else { /* received something */
if (ret == 0) {
- ret =
- is_next_hpacket_expected
- (session);
+ ret = is_next_hpacket_expected(session);
if (ret == GNUTLS_E_AGAIN
|| ret == GNUTLS_E_INTERRUPTED)
goto nb_timeout;
@@ -302,8 +293,7 @@ int _dtls_transmit(gnutls_session_t session)
diff =
timespec_sub_ms(&now,
- &session->internals.dtls.
- last_retransmit);
+ &session->internals.dtls.last_retransmit);
if (session->internals.dtls.flight_init == 0
|| diff >= TIMER_WINDOW) {
_gnutls_dtls_log
@@ -321,7 +311,8 @@ int _dtls_transmit(gnutls_session_t session)
last_type = cur->htype;
}
- gnutls_gettime(&session->internals.dtls.last_retransmit);
+ gnutls_gettime(&session->internals.
+ dtls.last_retransmit);
if (session->internals.dtls.flight_init == 0) {
session->internals.dtls.flight_init = 1;
@@ -333,11 +324,9 @@ int _dtls_transmit(gnutls_session_t session)
* from here. _dtls_wait_and_retransmit() is being called
* by handshake.
*/
- session->internals.dtls.
- last_flight = 1;
+ session->internals.dtls.last_flight = 1;
} else
- session->internals.dtls.
- last_flight = 0;
+ session->internals.dtls.last_flight = 0;
} else {
UPDATE_TIMER;
}
@@ -361,9 +350,7 @@ int _dtls_transmit(gnutls_session_t session)
} else { /* all other messages -> implicit ack (receive of next flight) */
if (!(session->internals.flags & GNUTLS_NONBLOCK))
- ret =
- _gnutls_io_check_recv(session,
- timeout);
+ ret = _gnutls_io_check_recv(session, timeout);
else {
ret = _gnutls_io_check_recv(session, 0);
if (ret == GNUTLS_E_TIMEDOUT) {
@@ -377,8 +364,7 @@ int _dtls_transmit(gnutls_session_t session)
|| ret == GNUTLS_E_INTERRUPTED)
goto nb_timeout;
- if (ret ==
- GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET) {
+ if (ret == GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET) {
ret = GNUTLS_E_TIMEDOUT;
goto keep_up;
}
@@ -390,7 +376,7 @@ int _dtls_transmit(gnutls_session_t session)
}
}
- keep_up:
+ keep_up:
gnutls_gettime(&now);
} while (ret == GNUTLS_E_TIMEDOUT);
@@ -401,19 +387,18 @@ int _dtls_transmit(gnutls_session_t session)
ret = 0;
- end_flight:
- _gnutls_dtls_log("DTLS[%p]: End of flight transmission.\n",
- session);
+ end_flight:
+ _gnutls_dtls_log("DTLS[%p]: End of flight transmission.\n", session);
_dtls_reset_hsk_state(session);
- cleanup:
+ cleanup:
if (buf != NULL)
gnutls_free(buf);
/* SENDING -> WAITING state transition */
return ret;
- nb_timeout:
+ nb_timeout:
if (buf != NULL)
gnutls_free(buf);
@@ -496,10 +481,9 @@ void gnutls_dtls_set_mtu(gnutls_session_t session, unsigned int mtu)
/* when max is non-zero this function will return the maximum
* overhead that this ciphersuite may introduce, e.g., the maximum
* amount of padding required */
-unsigned _gnutls_record_overhead(const version_entry_st *ver,
- const cipher_entry_st *cipher,
- const mac_entry_st *mac,
- unsigned max)
+unsigned _gnutls_record_overhead(const version_entry_st * ver,
+ const cipher_entry_st * cipher,
+ const mac_entry_st * mac, unsigned max)
{
int total = 0;
int ret;
@@ -534,7 +518,7 @@ unsigned _gnutls_record_overhead(const version_entry_st *ver,
exp_iv = _gnutls_cipher_get_explicit_iv_size(cipher);
if (max)
- total += 2*exp_iv; /* block == iv size */
+ total += 2 * exp_iv; /* block == iv size */
else
total += exp_iv + 1;
}
@@ -613,7 +597,8 @@ static int record_overhead_rt(gnutls_session_t session)
if (ret < 0)
return gnutls_assert_val(ret);
- return _gnutls_record_overhead(get_version(session), params->cipher, params->mac, 1);
+ return _gnutls_record_overhead(get_version(session), params->cipher,
+ params->mac, 1);
}
/**
@@ -645,8 +630,6 @@ size_t gnutls_record_overhead_size(gnutls_session_t session)
return total;
}
-
-
/**
* gnutls_dtls_get_data_mtu:
* @session: is a #gnutls_session_t type.
@@ -674,8 +657,11 @@ unsigned int gnutls_dtls_get_data_mtu(gnutls_session_t session)
if (ret < 0)
return mtu;
- if (params->cipher->type == CIPHER_AEAD || params->cipher->type == CIPHER_STREAM)
- return mtu-_gnutls_record_overhead(get_version(session), params->cipher, params->mac, 0);
+ if (params->cipher->type == CIPHER_AEAD
+ || params->cipher->type == CIPHER_STREAM)
+ return mtu - _gnutls_record_overhead(get_version(session),
+ params->cipher,
+ params->mac, 0);
/* CIPHER_BLOCK: in CBC ciphers guess the data MTU as it depends on residues
*/
@@ -687,15 +673,15 @@ unsigned int gnutls_dtls_get_data_mtu(gnutls_session_t session)
/* the maximum data mtu satisfies:
* data mtu (mod block) = block-1
* or data mtu = (k+1)*(block) - 1
- *
+ *
* and data mtu + block + hash size + 1 = link_mtu
* (k+2) * (block) + hash size = link_mtu
*
* We try to find k, and thus data mtu
*/
- k = ((mtu-hash_size)/block) - 2;
+ k = ((mtu - hash_size) / block) - 2;
- return (k+1)*block - 1;
+ return (k + 1) * block - 1;
} else {
/* the maximum data mtu satisfies:
* data mtu + hash size (mod block) = block-1
@@ -706,9 +692,9 @@ unsigned int gnutls_dtls_get_data_mtu(gnutls_session_t session)
*
* We try to find k, and thus data mtu
*/
- k = ((mtu)/block) - 2;
+ k = ((mtu) / block) - 2;
- return (k+1)*block - hash_size - 1;
+ return (k + 1) * block - hash_size - 1;
}
}
@@ -791,9 +777,7 @@ unsigned int gnutls_dtls_get_timeout(gnutls_session_t session)
gnutls_gettime(&now);
- diff =
- timespec_sub_ms(&now,
- &session->internals.dtls.last_retransmit);
+ diff = timespec_sub_ms(&now, &session->internals.dtls.last_retransmit);
if (diff >= TIMER_WINDOW)
return 0;
else
@@ -969,28 +953,25 @@ int gnutls_dtls_cookie_verify(gnutls_datum_t * key,
pos = 34 + DTLS_RECORD_HEADER_SIZE + DTLS_HANDSHAKE_HEADER_SIZE;
if (msg_size < pos + 1)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
sid_size = msg[pos++];
if (sid_size > 32 || msg_size < pos + sid_size + 1)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
pos += sid_size;
cookie.size = msg[pos++];
if (msg_size < pos + cookie.size + 1)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
cookie.data = &msg[pos];
if (cookie.size != COOKIE_SIZE) {
if (cookie.size > 0)
_gnutls_audit_log(NULL,
"Received cookie with illegal size %d. Expected %d\n",
- (int) cookie.size, COOKIE_SIZE);
+ (int)cookie.size, COOKIE_SIZE);
return gnutls_assert_val(GNUTLS_E_BAD_COOKIE);
}
@@ -1043,8 +1024,7 @@ void gnutls_dtls_prestate_set(gnutls_session_t session,
params->write.sequence_number = prestate->record_seq;
session->internals.dtls.hsk_read_seq = prestate->hsk_read_seq;
- session->internals.dtls.hsk_write_seq =
- prestate->hsk_write_seq + 1;
+ session->internals.dtls.hsk_write_seq = prestate->hsk_write_seq + 1;
}
/**
diff --git a/lib/dtls.h b/lib/dtls.h
index 7d9fb40094..9ece15de86 100644
--- a/lib/dtls.h
+++ b/lib/dtls.h
@@ -21,23 +21,22 @@
*/
#ifndef GNUTLS_LIB_DTLS_H
-#define GNUTLS_LIB_DTLS_H
+# define GNUTLS_LIB_DTLS_H
-#include <config.h>
-#include "gnutls_int.h"
-#include <buffers.h>
-#include <mbuffers.h>
-#include <constate.h>
+# include <config.h>
+# include "gnutls_int.h"
+# include <buffers.h>
+# include <mbuffers.h>
+# include <constate.h>
int _dtls_transmit(gnutls_session_t session);
int _dtls_record_check(struct record_parameters_st *rp, uint64_t seq_num);
void _dtls_reset_hsk_state(gnutls_session_t session);
void _dtls_reset_window(struct record_parameters_st *rp);
-#define MAX_DTLS_TIMEOUT 60000
+# define MAX_DTLS_TIMEOUT 60000
-
-#define RETURN_DTLS_EAGAIN_OR_TIMEOUT(session, r) { \
+# define RETURN_DTLS_EAGAIN_OR_TIMEOUT(session, r) { \
struct timespec _now; \
unsigned int _diff; \
gnutls_gettime(&_now); \
@@ -59,7 +58,6 @@ void _dtls_reset_window(struct record_parameters_st *rp);
} \
}
-
int _dtls_wait_and_retransmit(gnutls_session_t session);
/* returns true or false depending on whether we need to
@@ -111,10 +109,9 @@ inline static void _dtls_async_timer_check(gnutls_session_t session)
}
}
-unsigned _gnutls_record_overhead(const version_entry_st *ver,
- const cipher_entry_st *cipher,
- const mac_entry_st *mac,
- unsigned max);
+unsigned _gnutls_record_overhead(const version_entry_st * ver,
+ const cipher_entry_st * cipher,
+ const mac_entry_st * mac, unsigned max);
/* Returns non-zero if the async timer is active */
inline static int _dtls_async_timer_active(gnutls_session_t session)
@@ -135,4 +132,4 @@ inline static int _dtls_retransmit(gnutls_session_t session)
return _dtls_transmit(session);
}
-#endif /* GNUTLS_LIB_DTLS_H */
+#endif /* GNUTLS_LIB_DTLS_H */
diff --git a/lib/ecc.c b/lib/ecc.c
index b4d7a23980..d486be492c 100644
--- a/lib/ecc.c
+++ b/lib/ecc.c
@@ -59,9 +59,7 @@ _gnutls_ecc_ansi_x962_export(gnutls_ecc_curve_t curve, bigint_t x,
}
size = out->size - (1 + (numlen - byte_size));
- ret =
- _gnutls_mpi_print(x, &out->data[1 + (numlen - byte_size)],
- &size);
+ ret = _gnutls_mpi_print(x, &out->data[1 + (numlen - byte_size)], &size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -90,12 +88,9 @@ _gnutls_ecc_ansi_x962_export(gnutls_ecc_curve_t curve, bigint_t x,
return ret;
}
-
-
int
_gnutls_ecc_ansi_x962_import(const uint8_t * in,
- unsigned long inlen, bigint_t * x,
- bigint_t * y)
+ unsigned long inlen, bigint_t * x, bigint_t * y)
{
int ret;
@@ -116,7 +111,7 @@ _gnutls_ecc_ansi_x962_import(const uint8_t * in,
ret =
_gnutls_mpi_init_scan(y, in + 1 + ((inlen - 1) >> 1),
- (inlen - 1) >> 1);
+ (inlen - 1) >> 1);
if (ret < 0) {
_gnutls_mpi_release(x);
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -124,4 +119,3 @@ _gnutls_ecc_ansi_x962_import(const uint8_t * in,
return 0;
}
-
diff --git a/lib/ecc.h b/lib/ecc.h
index 6e724b893a..de172674bb 100644
--- a/lib/ecc.h
+++ b/lib/ecc.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_LIB_ECC_H
-#define GNUTLS_LIB_ECC_H
+# define GNUTLS_LIB_ECC_H
int _gnutls_ecc_ansi_x962_import(const uint8_t * in, unsigned long inlen,
bigint_t * x, bigint_t * y);
int _gnutls_ecc_ansi_x962_export(gnutls_ecc_curve_t curve, bigint_t x,
bigint_t y, gnutls_datum_t * out);
-#endif /* GNUTLS_LIB_ECC_H */
+#endif /* GNUTLS_LIB_ECC_H */
diff --git a/lib/errors.c b/lib/errors.c
index 4e59d63eb2..e236d22a89 100644
--- a/lib/errors.c
+++ b/lib/errors.c
@@ -23,7 +23,7 @@
#include "gnutls_int.h"
#include "errors.h"
#ifdef STDC_HEADERS
-#include <stdarg.h>
+# include <stdarg.h>
#endif
#include "str.h"
@@ -47,8 +47,7 @@ static const gnutls_error_entry error_entries[] = {
GNUTLS_E_UNKNOWN_CIPHER_TYPE),
ERROR_ENTRY(N_("The certificate and the given key do not match."),
GNUTLS_E_CERTIFICATE_KEY_MISMATCH),
- ERROR_ENTRY(N_
- ("Could not negotiate a supported compression method."),
+ ERROR_ENTRY(N_("Could not negotiate a supported compression method."),
GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM),
ERROR_ENTRY(N_("An unknown public key algorithm was encountered."),
GNUTLS_E_UNKNOWN_PK_ALGORITHM),
@@ -61,11 +60,9 @@ static const gnutls_error_entry error_entries[] = {
ERROR_ENTRY(N_
("The Diffie-Hellman prime sent by the server is not acceptable (not long enough)."),
GNUTLS_E_DH_PRIME_UNACCEPTABLE),
- ERROR_ENTRY(N_
- ("Error decoding the received TLS packet."),
+ ERROR_ENTRY(N_("Error decoding the received TLS packet."),
GNUTLS_E_UNEXPECTED_PACKET_LENGTH),
- ERROR_ENTRY(N_
- ("A TLS record packet with invalid length was received."),
+ ERROR_ENTRY(N_("A TLS record packet with invalid length was received."),
GNUTLS_E_RECORD_OVERFLOW),
ERROR_ENTRY(N_("The TLS connection was non-properly terminated."),
GNUTLS_E_PREMATURE_TERMINATION),
@@ -74,8 +71,8 @@ static const gnutls_error_entry error_entries[] = {
GNUTLS_E_INVALID_SESSION),
ERROR_ENTRY(N_("GnuTLS internal error."), GNUTLS_E_INTERNAL_ERROR),
- ERROR_ENTRY(N_(
- "A connection with inappropriate fallback was attempted."),
+ ERROR_ENTRY(N_
+ ("A connection with inappropriate fallback was attempted."),
GNUTLS_E_INAPPROPRIATE_FALLBACK),
ERROR_ENTRY(N_("An illegal TLS extension was received."),
GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION),
@@ -123,8 +120,7 @@ static const gnutls_error_entry error_entries[] = {
GNUTLS_E_PK_SIGN_FAILED),
ERROR_ENTRY(N_("Public key signature verification has failed."),
GNUTLS_E_PK_SIG_VERIFY_FAILED),
- ERROR_ENTRY(N_
- ("Decompression of the TLS record packet has failed."),
+ ERROR_ENTRY(N_("Decompression of the TLS record packet has failed."),
GNUTLS_E_DECOMPRESSION_FAILED),
ERROR_ENTRY(N_("Compression of the TLS record packet has failed."),
GNUTLS_E_COMPRESSION_FAILED),
@@ -169,7 +165,8 @@ static const gnutls_error_entry error_entries[] = {
GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR),
ERROR_ENTRY(N_("Error in the CRL verification."),
GNUTLS_E_CRL_VERIFICATION_ERROR),
- ERROR_ENTRY(N_("Error in the private key verification; seed doesn't match."),
+ ERROR_ENTRY(N_
+ ("Error in the private key verification; seed doesn't match."),
GNUTLS_E_PRIVKEY_VERIFICATION_ERROR),
ERROR_ENTRY(N_("Could not authenticate peer."),
GNUTLS_E_AUTH_ERROR),
@@ -177,25 +174,24 @@ static const gnutls_error_entry error_entries[] = {
("Unknown Subject Alternative name in X.509 certificate."),
GNUTLS_E_X509_UNKNOWN_SAN),
ERROR_ENTRY(N_
- ("CIDR name constraint is malformed in size or structure."),
- GNUTLS_E_MALFORMED_CIDR),
+ ("CIDR name constraint is malformed in size or structure."),
+ GNUTLS_E_MALFORMED_CIDR),
- ERROR_ENTRY(N_
- ("Unsupported critical extension in X.509 certificate."),
+ ERROR_ENTRY(N_("Unsupported critical extension in X.509 certificate."),
GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION),
ERROR_ENTRY(N_("Unsupported extension in X.509 certificate."),
GNUTLS_E_X509_UNSUPPORTED_EXTENSION),
ERROR_ENTRY(N_("Duplicate extension in X.509 certificate."),
GNUTLS_E_X509_DUPLICATE_EXTENSION),
- ERROR_ENTRY(N_
- ("Key usage violation in certificate has been detected."),
+ ERROR_ENTRY(N_("Key usage violation in certificate has been detected."),
GNUTLS_E_KEY_USAGE_VIOLATION),
ERROR_ENTRY(N_("Function was interrupted."), GNUTLS_E_INTERRUPTED),
ERROR_ENTRY(N_
("TLS Application data were received, while expecting handshake data."),
GNUTLS_E_GOT_APPLICATION_DATA),
ERROR_ENTRY(N_("Error in Database backend."), GNUTLS_E_DB_ERROR),
- ERROR_ENTRY(N_("The Database entry already exists."), GNUTLS_E_DB_ENTRY_EXISTS),
+ ERROR_ENTRY(N_("The Database entry already exists."),
+ GNUTLS_E_DB_ENTRY_EXISTS),
ERROR_ENTRY(N_("The certificate type is not supported."),
GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE),
ERROR_ENTRY(N_
@@ -235,8 +231,7 @@ static const gnutls_error_entry error_entries[] = {
ERROR_ENTRY(N_("ASN1 parser: Overflow in DER parsing."),
GNUTLS_E_ASN1_DER_OVERFLOW),
- ERROR_ENTRY(N_
- ("Too many empty record packets have been received."),
+ ERROR_ENTRY(N_("Too many empty record packets have been received."),
GNUTLS_E_TOO_MANY_EMPTY_PACKETS),
ERROR_ENTRY(N_("Too many handshake packets have been received."),
GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS),
@@ -255,8 +250,7 @@ static const gnutls_error_entry error_entries[] = {
GNUTLS_E_OPENPGP_KEYRING_ERROR),
ERROR_ENTRY(N_("The initialization of crypto backend has failed."),
GNUTLS_E_CRYPTO_INIT_FAILED),
- ERROR_ENTRY(N_
- ("No supported compression algorithms have been found."),
+ ERROR_ENTRY(N_("No supported compression algorithms have been found."),
GNUTLS_E_NO_COMPRESSION_ALGORITHMS),
ERROR_ENTRY(N_("No supported cipher suites have been found."),
GNUTLS_E_NO_CIPHER_SUITES),
@@ -292,12 +286,12 @@ static const gnutls_error_entry error_entries[] = {
GNUTLS_E_INVALID_PASSWORD),
ERROR_ENTRY(N_("The given string contains invalid UTF-8 characters."),
GNUTLS_E_INVALID_UTF8_STRING),
- ERROR_ENTRY(N_("The given email string contains non-ASCII characters before '@'."),
+ ERROR_ENTRY(N_
+ ("The given email string contains non-ASCII characters before '@'."),
GNUTLS_E_INVALID_UTF8_EMAIL),
ERROR_ENTRY(N_("The given password contains invalid characters."),
GNUTLS_E_INVALID_PASSWORD_STRING),
- ERROR_ENTRY(N_
- ("The Message Authentication Code verification failed."),
+ ERROR_ENTRY(N_("The Message Authentication Code verification failed."),
GNUTLS_E_MAC_VERIFY_FAILED),
ERROR_ENTRY(N_("Some constraint limits were reached."),
GNUTLS_E_CONSTRAINT_ERROR),
@@ -386,20 +380,21 @@ static const gnutls_error_entry error_entries[] = {
GNUTLS_E_CERTIFICATE_LIST_UNSORTED),
ERROR_ENTRY(N_("The OCSP response is invalid"),
GNUTLS_E_OCSP_RESPONSE_ERROR),
- ERROR_ENTRY(N_("The OCSP response provided doesn't match the available certificates"),
+ ERROR_ENTRY(N_
+ ("The OCSP response provided doesn't match the available certificates"),
GNUTLS_E_OCSP_MISMATCH_WITH_CERTS),
ERROR_ENTRY(N_("There is no certificate status (OCSP)."),
GNUTLS_E_NO_CERTIFICATE_STATUS),
ERROR_ENTRY(N_("Error in the system's randomness device."),
GNUTLS_E_RANDOM_DEVICE_ERROR),
- ERROR_ENTRY(N_
- ("No common application protocol could be negotiated."),
+ ERROR_ENTRY(N_("No common application protocol could be negotiated."),
GNUTLS_E_NO_APPLICATION_PROTOCOL),
ERROR_ENTRY(N_("Error while performing self checks."),
GNUTLS_E_SELF_TEST_ERROR),
ERROR_ENTRY(N_("There is no self test for this algorithm."),
GNUTLS_E_NO_SELF_TEST),
- ERROR_ENTRY(N_("An error has been detected in the library and cannot continue operations."),
+ ERROR_ENTRY(N_
+ ("An error has been detected in the library and cannot continue operations."),
GNUTLS_E_LIB_IN_ERROR_STATE),
ERROR_ENTRY(N_("Error in sockets initialization."),
GNUTLS_E_SOCKETS_INIT_ERROR),
@@ -407,7 +402,8 @@ static const gnutls_error_entry error_entries[] = {
GNUTLS_E_PK_GENERATION_ERROR),
ERROR_ENTRY(N_("Invalid TLS extensions length field."),
GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH),
- ERROR_ENTRY(N_("Peer's certificate or username has changed during a rehandshake."),
+ ERROR_ENTRY(N_
+ ("Peer's certificate or username has changed during a rehandshake."),
GNUTLS_E_SESSION_USER_ID_CHANGED),
ERROR_ENTRY(N_("The provided string has an embedded null."),
GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING),
@@ -417,7 +413,8 @@ static const gnutls_error_entry error_entries[] = {
GNUTLS_E_UNRECOGNIZED_NAME),
ERROR_ENTRY(N_("There was an issue converting to or from UTF8."),
GNUTLS_E_IDNA_ERROR),
- ERROR_ENTRY(N_("Cannot perform this action while handshake is in progress."),
+ ERROR_ENTRY(N_
+ ("Cannot perform this action while handshake is in progress."),
GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE),
ERROR_ENTRY(N_("The public key is invalid."),
GNUTLS_E_PK_INVALID_PUBKEY),
@@ -431,7 +428,8 @@ static const gnutls_error_entry error_entries[] = {
GNUTLS_E_ASN1_TIME_ERROR),
ERROR_ENTRY(N_("The signature is incompatible with the public key."),
GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY),
- ERROR_ENTRY(N_("One of the involved algorithms has insufficient security level."),
+ ERROR_ENTRY(N_
+ ("One of the involved algorithms has insufficient security level."),
GNUTLS_E_INSUFFICIENT_SECURITY),
ERROR_ENTRY(N_("No common key share with peer."),
GNUTLS_E_NO_COMMON_KEY_SHARE),
@@ -511,7 +509,6 @@ void gnutls_perror(int error)
fprintf(stderr, "GnuTLS error: %s\n", gnutls_strerror(error));
}
-
/**
* gnutls_strerror:
* @error: is a GnuTLS error code, a negative error code
@@ -604,14 +601,14 @@ void _gnutls_mpi_log(const char *prefix, bigint_t a)
if (res < 0 && res != GNUTLS_E_SHORT_MEMORY_BUFFER) {
gnutls_assert();
_gnutls_hard_log("MPI: %s can't print value (%d/%d)\n",
- prefix, res, (int) binlen);
+ prefix, res, (int)binlen);
return;
}
if (binlen > 1024 * 1024) {
gnutls_assert();
_gnutls_hard_log("MPI: %s too large mpi (%d)\n", prefix,
- (int) binlen);
+ (int)binlen);
return;
}
@@ -619,7 +616,7 @@ void _gnutls_mpi_log(const char *prefix, bigint_t a)
if (!binbuf) {
gnutls_assert();
_gnutls_hard_log("MPI: %s out of memory (%d)\n", prefix,
- (int) binlen);
+ (int)binlen);
return;
}
@@ -627,7 +624,7 @@ void _gnutls_mpi_log(const char *prefix, bigint_t a)
if (res != 0) {
gnutls_assert();
_gnutls_hard_log("MPI: %s can't print value (%d/%d)\n",
- prefix, res, (int) binlen);
+ prefix, res, (int)binlen);
gnutls_free(binbuf);
return;
}
@@ -638,14 +635,14 @@ void _gnutls_mpi_log(const char *prefix, bigint_t a)
if (!hexbuf) {
gnutls_assert();
_gnutls_hard_log("MPI: %s out of memory (hex %d)\n",
- prefix, (int) hexlen);
+ prefix, (int)hexlen);
gnutls_free(binbuf);
return;
}
_gnutls_bin2hex(binbuf, binlen, hexbuf, hexlen, NULL);
- _gnutls_hard_log("MPI: length: %d\n\t%s%s\n", (int) binlen, prefix,
+ _gnutls_hard_log("MPI: length: %d\n\t%s%s\n", (int)binlen, prefix,
hexbuf);
gnutls_free(hexbuf);
@@ -697,7 +694,7 @@ void _gnutls_audit_log(gnutls_session_t session, const char *fmt, ...)
}
#ifndef DEBUG
-#ifndef C99_MACROS
+# ifndef C99_MACROS
/* Without C99 macros these functions have to
* be called. This may affect performance.
@@ -707,5 +704,5 @@ void _gnutls_null_log(void *x, ...)
return;
}
-#endif /* C99_MACROS */
+# endif /* C99_MACROS */
#endif /* DEBUG */
diff --git a/lib/errors.h b/lib/errors.h
index 86c6b02765..acc78c9bae 100644
--- a/lib/errors.h
+++ b/lib/errors.h
@@ -21,32 +21,32 @@
*/
#ifndef GNUTLS_LIB_ERRORS_H
-#define GNUTLS_LIB_ERRORS_H
-
-#include "gnutls_int.h"
-#include <global.h>
-#include <mpi.h>
-#include <gnutls/x509.h>
-
-#ifdef __FILE__
-#ifdef __LINE__
-#define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
-#else
-#define gnutls_assert()
-#endif
-#else /* __FILE__ not defined */
-#define gnutls_assert()
-#endif
+# define GNUTLS_LIB_ERRORS_H
+
+# include "gnutls_int.h"
+# include <global.h>
+# include <mpi.h>
+# include <gnutls/x509.h>
+
+# ifdef __FILE__
+# ifdef __LINE__
+# define gnutls_assert() _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", __FILE__,__func__,__LINE__);
+# else
+# define gnutls_assert()
+# endif
+# else /* __FILE__ not defined */
+# define gnutls_assert()
+# endif
inline static int _gnutls_asn2err(int asn_err) __GNUTLS_CONST__;
inline static int _gnutls_asn2err(int asn_err)
{
switch (asn_err) {
-#ifdef ASN1_TIME_ENCODING_ERROR
+# ifdef ASN1_TIME_ENCODING_ERROR
case ASN1_TIME_ENCODING_ERROR:
return GNUTLS_E_ASN1_TIME_ERROR;
-#endif
+# endif
case ASN1_FILE_NOT_FOUND:
return GNUTLS_E_FILE_ERROR;
case ASN1_ELEMENT_NOT_FOUND:
@@ -81,22 +81,22 @@ inline static int _gnutls_asn2err(int asn_err)
}
void _gnutls_log(int, const char *fmt, ...)
-#ifdef __GNUC__
- __attribute__ ((format(printf, 2, 3)));
-#else
+# ifdef __GNUC__
+ __attribute__((format(printf, 2, 3)));
+# else
;
-#endif
+# endif
void _gnutls_audit_log(gnutls_session_t, const char *fmt, ...)
-#ifdef __GNUC__
- __attribute__ ((format(printf, 2, 3)));
-#else
+# ifdef __GNUC__
+ __attribute__((format(printf, 2, 3)));
+# else
;
-#endif
+# endif
void _gnutls_mpi_log(const char *prefix, bigint_t a);
-#define _gnutls_cert_log(str, cert) \
+# define _gnutls_cert_log(str, cert) \
do { \
if (unlikely(_gnutls_log_level >= 3)) { \
gnutls_datum_t _cl_out; int _cl_ret; \
@@ -108,7 +108,7 @@ void _gnutls_mpi_log(const char *prefix, bigint_t a);
} \
} while(0)
-#define _gnutls_dn_log(str, dn) \
+# define _gnutls_dn_log(str, dn) \
do { \
if (unlikely(_gnutls_log_level >= 3)) { \
gnutls_datum_t _cl_out; int _cl_ret; \
@@ -120,7 +120,7 @@ void _gnutls_mpi_log(const char *prefix, bigint_t a);
} \
} while(0)
-#define _gnutls_reason_log(str, status) \
+# define _gnutls_reason_log(str, status) \
do { \
if (unlikely(_gnutls_log_level >= 3)) { \
gnutls_datum_t _cl_out; int _cl_ret; \
@@ -132,55 +132,55 @@ void _gnutls_mpi_log(const char *prefix, bigint_t a);
} \
} while(0)
-#ifdef C99_MACROS
-#define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
+# ifdef C99_MACROS
+# define LEVEL(l, ...) do { if (unlikely(_gnutls_log_level >= l)) \
_gnutls_log( l, __VA_ARGS__); } while(0)
-#define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
-#define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
-#define _gnutls_handshake_log(...) LEVEL(4, __VA_ARGS__)
-#define _gnutls_record_log(...) LEVEL(5, __VA_ARGS__)
-#define _gnutls_dtls_log(...) LEVEL(6, __VA_ARGS__)
-
-#define _gnutls_hard_log(...) LEVEL(9, __VA_ARGS__)
-
-#define _gnutls_read_log(...) LEVEL(10, __VA_ARGS__)
-#define _gnutls_write_log(...) LEVEL(11, __VA_ARGS__)
-#define _gnutls_io_log(...) LEVEL(12, __VA_ARGS__)
-#define _gnutls_buffers_log(...) LEVEL(13, __VA_ARGS__)
-#define _gnutls_no_log(...) LEVEL(INT_MAX, __VA_ARGS__)
-#else
-#define _gnutls_debug_log _gnutls_null_log
-#define _gnutls_assert_log _gnutls_null_log
-#define _gnutls_handshake_log _gnutls_null_log
-#define _gnutls_io_log _gnutls_null_log
-#define _gnutls_buffers_log _gnutls_null_log
-#define _gnutls_hard_log _gnutls_null_log
-#define _gnutls_record_log _gnutls_null_log
-#define _gnutls_dtls_log _gnutls_null_log
-#define _gnutls_read_log _gnutls_null_log
-#define _gnutls_write_log _gnutls_null_log
-#define _gnutls_no_log _gnutle_null_log
+# define _gnutls_debug_log(...) LEVEL(2, __VA_ARGS__)
+# define _gnutls_assert_log(...) LEVEL(3, __VA_ARGS__)
+# define _gnutls_handshake_log(...) LEVEL(4, __VA_ARGS__)
+# define _gnutls_record_log(...) LEVEL(5, __VA_ARGS__)
+# define _gnutls_dtls_log(...) LEVEL(6, __VA_ARGS__)
+
+# define _gnutls_hard_log(...) LEVEL(9, __VA_ARGS__)
+
+# define _gnutls_read_log(...) LEVEL(10, __VA_ARGS__)
+# define _gnutls_write_log(...) LEVEL(11, __VA_ARGS__)
+# define _gnutls_io_log(...) LEVEL(12, __VA_ARGS__)
+# define _gnutls_buffers_log(...) LEVEL(13, __VA_ARGS__)
+# define _gnutls_no_log(...) LEVEL(INT_MAX, __VA_ARGS__)
+# else
+# define _gnutls_debug_log _gnutls_null_log
+# define _gnutls_assert_log _gnutls_null_log
+# define _gnutls_handshake_log _gnutls_null_log
+# define _gnutls_io_log _gnutls_null_log
+# define _gnutls_buffers_log _gnutls_null_log
+# define _gnutls_hard_log _gnutls_null_log
+# define _gnutls_record_log _gnutls_null_log
+# define _gnutls_dtls_log _gnutls_null_log
+# define _gnutls_read_log _gnutls_null_log
+# define _gnutls_write_log _gnutls_null_log
+# define _gnutls_no_log _gnutle_null_log
void _gnutls_null_log(void *, ...);
-#endif /* C99_MACROS */
+# endif /* C99_MACROS */
/* GCC won't inline this by itself and results in a "fatal warning"
otherwise. Making this a macro has been tried, but it interacts
badly with the do..while in the expansion. Welcome to the dark
side. */
static inline
-#ifdef __GNUC__
- __attribute__ ((always_inline))
-#endif
+# ifdef __GNUC__
+ __attribute__((always_inline))
+# endif
int gnutls_assert_val_int(int val, const char *file, const char *func, int line)
{
- _gnutls_assert_log( "ASSERT: %s[%s]:%d\n", file,func,line);
+ _gnutls_assert_log("ASSERT: %s[%s]:%d\n", file, func, line);
return val;
}
-#define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
-#define gnutls_assert_val_fatal(x) (((x)!=GNUTLS_E_AGAIN && (x)!=GNUTLS_E_INTERRUPTED)?gnutls_assert_val_int(x, __FILE__, __func__, __LINE__):(x))
+# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __func__, __LINE__)
+# define gnutls_assert_val_fatal(x) (((x)!=GNUTLS_E_AGAIN && (x)!=GNUTLS_E_INTERRUPTED)?gnutls_assert_val_int(x, __FILE__, __func__, __LINE__):(x))
-#endif /* GNUTLS_LIB_ERRORS_H */
+#endif /* GNUTLS_LIB_ERRORS_H */
diff --git a/lib/ext/alpn.c b/lib/ext/alpn.c
index 7cc7997560..db96847dfe 100644
--- a/lib/ext/alpn.c
+++ b/lib/ext/alpn.c
@@ -26,14 +26,12 @@
#include <ext/alpn.h>
static int _gnutls_alpn_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data, size_t data_size);
static int _gnutls_alpn_send_params(gnutls_session_t session,
gnutls_buffer_st * extdata);
static void _gnutls_alpn_deinit_data(gnutls_ext_priv_data_t priv);
-
const hello_ext_entry_st ext_mod_alpn = {
.name = "ALPN",
.tls_id = 16,
@@ -42,8 +40,8 @@ const hello_ext_entry_st ext_mod_alpn = {
.client_parse_point = GNUTLS_EXT_MANDATORY,
.server_parse_point = GNUTLS_EXT_MANDATORY,
.validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
- GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_EE |
- GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_EE |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.recv_func = _gnutls_alpn_recv_params,
.send_func = _gnutls_alpn_send_params,
.deinit_func = _gnutls_alpn_deinit_data,
@@ -63,8 +61,7 @@ _gnutls_alpn_recv_params(gnutls_session_t session,
int selected_protocol_index;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_ALPN,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_ALPN, &epriv);
if (ret < 0)
return 0;
@@ -75,33 +72,42 @@ _gnutls_alpn_recv_params(gnutls_session_t session,
p += 2;
if (len == 0 || len > (size_t)data_size)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
if (session->security_parameters.entity == GNUTLS_SERVER) {
- selected_protocol_index = MAX_ALPN_PROTOCOLS+1;
+ selected_protocol_index = MAX_ALPN_PROTOCOLS + 1;
while (data_size > 0) {
- DECR_LENGTH_RET(data_size, 1, GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ DECR_LENGTH_RET(data_size, 1,
+ GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
len1 = *p;
p += 1;
- DECR_LENGTH_RET(data_size, len1, GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ DECR_LENGTH_RET(data_size, len1,
+ GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
if (len1 == 0)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
for (i = 0; i < priv->size; i++) {
if (priv->protocol_size[i] == len1
&& memcmp(p, priv->protocols[i],
len1) == 0) {
- if (priv->flags & GNUTLS_ALPN_SERVER_PRECEDENCE) {
- if (selected_protocol_index > (int)i) {
- selected_protocol_index = i;
- priv->selected_protocol =
+ if (priv->flags &
+ GNUTLS_ALPN_SERVER_PRECEDENCE) {
+ if (selected_protocol_index >
+ (int)i) {
+ selected_protocol_index
+ = i;
+ priv->selected_protocol
+ =
priv->protocols[i];
- priv->selected_protocol_size =
- priv->protocol_size[i];
+ priv->selected_protocol_size
+ =
+ priv->protocol_size
+ [i];
break;
}
} else {
@@ -116,34 +122,33 @@ _gnutls_alpn_recv_params(gnutls_session_t session,
p += len1;
}
} else {
- DECR_LENGTH_RET(data_size, 1, GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ DECR_LENGTH_RET(data_size, 1,
+ GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
len1 = *p;
p += 1;
- DECR_LENGTH_RET(data_size, len1, GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ DECR_LENGTH_RET(data_size, len1,
+ GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
for (i = 0; i < priv->size; i++) {
if (priv->protocol_size[i] == len1
&& memcmp(p, priv->protocols[i], len1) == 0) {
- priv->selected_protocol =
- priv->protocols[i];
+ priv->selected_protocol = priv->protocols[i];
priv->selected_protocol_size =
priv->protocol_size[i];
break;
}
}
- /*p += len1;*/
+ /*p += len1; */
}
- if (priv->selected_protocol == NULL
- && (priv->flags & GNUTLS_ALPN_MAND))
+ if (priv->selected_protocol == NULL && (priv->flags & GNUTLS_ALPN_MAND))
return gnutls_assert_val(GNUTLS_E_NO_APPLICATION_PROTOCOL);
return 0;
}
static int
-_gnutls_alpn_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+_gnutls_alpn_send_params(gnutls_session_t session, gnutls_buffer_st * extdata)
{
unsigned i;
int total_size = 0, ret;
@@ -151,8 +156,7 @@ _gnutls_alpn_send_params(gnutls_session_t session,
gnutls_ext_priv_data_t epriv;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_ALPN,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_ALPN, &epriv);
if (ret < 0)
return 0;
@@ -167,8 +171,7 @@ _gnutls_alpn_send_params(gnutls_session_t session,
ret =
_gnutls_buffer_append_prefix(extdata, 16,
- priv->
- selected_protocol_size +
+ priv->selected_protocol_size +
1);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -177,8 +180,7 @@ _gnutls_alpn_send_params(gnutls_session_t session,
ret =
_gnutls_buffer_append_data_prefix(extdata, 8,
- priv->
- selected_protocol,
+ priv->selected_protocol,
priv->
selected_protocol_size);
if (ret < 0)
@@ -199,11 +201,10 @@ _gnutls_alpn_send_params(gnutls_session_t session,
for (i = 0; i < priv->size; i++) {
ret =
_gnutls_buffer_append_data_prefix(extdata, 8,
+ priv->protocols
+ [i],
priv->
- protocols[i],
- priv->
- protocol_size
- [i]);
+ protocol_size[i]);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -240,8 +241,7 @@ gnutls_alpn_get_selected_protocol(gnutls_session_t session,
gnutls_ext_priv_data_t epriv;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_ALPN,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_ALPN, &epriv);
if (ret < 0) {
gnutls_assert();
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
@@ -250,9 +250,7 @@ gnutls_alpn_get_selected_protocol(gnutls_session_t session,
priv = epriv;
if (priv->selected_protocol_size == 0)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
protocol->data = priv->selected_protocol;
protocol->size = priv->selected_protocol_size;
@@ -289,8 +287,7 @@ gnutls_alpn_set_protocols(gnutls_session_t session,
unsigned i;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_ALPN,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_ALPN, &epriv);
if (ret < 0) {
priv = gnutls_calloc(1, sizeof(*priv));
if (priv == NULL) {
@@ -299,7 +296,7 @@ gnutls_alpn_set_protocols(gnutls_session_t session,
}
epriv = priv;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_ALPN, epriv);
+ GNUTLS_EXTENSION_ALPN, epriv);
} else
priv = epriv;
@@ -320,7 +317,6 @@ gnutls_alpn_set_protocols(gnutls_session_t session,
return 0;
}
-
static void _gnutls_alpn_deinit_data(gnutls_ext_priv_data_t priv)
{
gnutls_free(priv);
diff --git a/lib/ext/alpn.h b/lib/ext/alpn.h
index 0b32a3292d..514677e318 100644
--- a/lib/ext/alpn.h
+++ b/lib/ext/alpn.h
@@ -19,12 +19,12 @@
*/
#ifndef GNUTLS_LIB_EXT_ALPN_H
-#define GNUTLS_LIB_EXT_ALPN_H
+# define GNUTLS_LIB_EXT_ALPN_H
-#include <hello_ext.h>
+# include <hello_ext.h>
-#define MAX_ALPN_PROTOCOLS 8
-#define MAX_ALPN_PROTOCOL_NAME 32
+# define MAX_ALPN_PROTOCOLS 8
+# define MAX_ALPN_PROTOCOL_NAME 32
typedef struct {
uint8_t protocols[MAX_ALPN_PROTOCOLS][MAX_ALPN_PROTOCOL_NAME];
@@ -37,4 +37,4 @@ typedef struct {
extern const hello_ext_entry_st ext_mod_alpn;
-#endif /* GNUTLS_LIB_EXT_ALPN_H */
+#endif /* GNUTLS_LIB_EXT_ALPN_H */
diff --git a/lib/ext/cert_types.h b/lib/ext/cert_types.h
index 98dfdef101..2e80afce85 100644
--- a/lib/ext/cert_types.h
+++ b/lib/ext/cert_types.h
@@ -24,7 +24,7 @@
*/
#ifndef GNUTLS_LIB_EXT_CERT_TYPES_H
-#define GNUTLS_LIB_EXT_CERT_TYPES_H
+# define GNUTLS_LIB_EXT_CERT_TYPES_H
/* Maps IANA TLS Certificate Types identifiers to internal
* certificate type representation.
@@ -32,12 +32,12 @@
static inline gnutls_certificate_type_t IANA2cert_type(int num)
{
switch (num) {
- case 0:
- return GNUTLS_CRT_X509;
- case 2:
- return GNUTLS_CRT_RAWPK;
- default:
- return GNUTLS_CRT_UNKNOWN;
+ case 0:
+ return GNUTLS_CRT_X509;
+ case 2:
+ return GNUTLS_CRT_RAWPK;
+ default:
+ return GNUTLS_CRT_UNKNOWN;
}
}
@@ -47,28 +47,29 @@ static inline gnutls_certificate_type_t IANA2cert_type(int num)
static inline int cert_type2IANA(gnutls_certificate_type_t cert_type)
{
switch (cert_type) {
- case GNUTLS_CRT_X509:
- return 0;
- case GNUTLS_CRT_RAWPK:
- return 2;
- default:
- return GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE;
+ case GNUTLS_CRT_X509:
+ return 0;
+ case GNUTLS_CRT_RAWPK:
+ return 2;
+ default:
+ return GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE;
}
}
/* Checks whether the given cert type is enabled in the application
*/
-static inline bool is_cert_type_enabled(gnutls_session_t session, gnutls_certificate_type_t cert_type)
+static inline bool is_cert_type_enabled(gnutls_session_t session,
+ gnutls_certificate_type_t cert_type)
{
- switch(cert_type) {
- case GNUTLS_CRT_X509:
- // Default cert type, always enabled
- return true;
- case GNUTLS_CRT_RAWPK:
- return session->internals.flags & GNUTLS_ENABLE_RAWPK;
- default:
- // When not explicitly supported here disable it
- return false;
+ switch (cert_type) {
+ case GNUTLS_CRT_X509:
+ // Default cert type, always enabled
+ return true;
+ case GNUTLS_CRT_RAWPK:
+ return session->internals.flags & GNUTLS_ENABLE_RAWPK;
+ default:
+ // When not explicitly supported here disable it
+ return false;
}
}
@@ -78,11 +79,11 @@ static inline bool is_cert_type_enabled(gnutls_session_t session, gnutls_certifi
static inline bool are_alternative_cert_types_allowed(gnutls_session_t session)
{
// OR-ed list of defined cert type init flags
- #define CERT_TYPES_FLAGS GNUTLS_ENABLE_RAWPK
+# define CERT_TYPES_FLAGS GNUTLS_ENABLE_RAWPK
return session->internals.flags & CERT_TYPES_FLAGS;
- #undef CERT_TYPES_FLAGS
+# undef CERT_TYPES_FLAGS
}
-#endif /* GNUTLS_LIB_EXT_CERT_TYPES_H */
+#endif /* GNUTLS_LIB_EXT_CERT_TYPES_H */
diff --git a/lib/ext/client_cert_type.c b/lib/ext/client_cert_type.c
index 261b56c800..772f9da640 100644
--- a/lib/ext/client_cert_type.c
+++ b/lib/ext/client_cert_type.c
@@ -36,13 +36,11 @@
#include "state.h"
#include "datum.h"
-
static int _gnutls_client_cert_type_recv_params(gnutls_session_t session,
- const uint8_t* data,
+ const uint8_t * data,
size_t data_size);
static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
- gnutls_buffer_st* data);
-
+ gnutls_buffer_st * data);
const hello_ext_entry_st ext_mod_client_cert_type = {
.name = "Client Certificate Type",
@@ -51,10 +49,9 @@ const hello_ext_entry_st ext_mod_client_cert_type = {
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
.validity = GNUTLS_EXT_FLAG_TLS |
- GNUTLS_EXT_FLAG_DTLS |
- GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO |
- GNUTLS_EXT_FLAG_EE,
+ GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO | GNUTLS_EXT_FLAG_EE,
.recv_func = _gnutls_client_cert_type_recv_params,
.send_func = _gnutls_client_cert_type_send_params,
.pack_func = _gnutls_hello_ext_default_pack,
@@ -63,31 +60,31 @@ const hello_ext_entry_st ext_mod_client_cert_type = {
.cannot_be_overriden = 1
};
-
static int _gnutls_client_cert_type_recv_params(gnutls_session_t session,
- const uint8_t* data,
+ const uint8_t * data,
size_t data_size)
{
int ret;
gnutls_certificate_type_t cert_type;
size_t i;
bool found = false;
- const uint8_t* pdata = data;
+ const uint8_t *pdata = data;
/* Only activate this extension if we have cert credentials set
* and alternative cert types are allowed */
if (!are_alternative_cert_types_allowed(session) ||
- (_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE) == NULL))
+ (_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE) == NULL))
return 0;
if (!IS_SERVER(session)) { // client mode
- gnutls_datum_t sent_cert_types; // Holds the previously sent cert types
+ gnutls_datum_t sent_cert_types; // Holds the previously sent cert types
/* Compare packet length with expected packet length. For the
* client this is a single byte. */
if (data_size != 1) {
return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
}
/* The server picked one of the offered cert types if he supports
@@ -98,36 +95,40 @@ static int _gnutls_client_cert_type_recv_params(gnutls_session_t session,
* to check it nevertheless. */
cert_type = IANA2cert_type(pdata[0]);
- _gnutls_handshake_log("EXT[%p]: Received a %s client certificate type confirmation from the server.\n",
- session, gnutls_certificate_type_get_name(cert_type));
+ _gnutls_handshake_log
+ ("EXT[%p]: Received a %s client certificate type confirmation from the server.\n",
+ session, gnutls_certificate_type_get_name(cert_type));
// Check validity of cert type
if (cert_type == GNUTLS_CRT_UNKNOWN) {
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
}
/* Get the cert types that we sent to the server (they were stored
* in IANA representation.
*/
ret = _gnutls_hello_ext_get_datum(session,
- GNUTLS_EXTENSION_CLIENT_CERT_TYPE,
- &sent_cert_types);
+ GNUTLS_EXTENSION_CLIENT_CERT_TYPE,
+ &sent_cert_types);
if (ret < 0) {
/* This should not happen and indicate a memory corruption!
* Assertion are always on in production code so execution
* will halt here. */
assert(false);
}
-
// Check whether what we got back is actually offered by us
for (i = 0; i < sent_cert_types.size; i++) {
- if (IANA2cert_type(sent_cert_types.data[i]) == cert_type)
+ if (IANA2cert_type(sent_cert_types.data[i]) ==
+ cert_type)
found = true;
}
if (found) {
// Everything OK, now set the client certificate type
- _gnutls_session_client_cert_type_set(session, cert_type);
+ _gnutls_session_client_cert_type_set(session,
+ cert_type);
ret = GNUTLS_E_SUCCESS;
} else {
// No valid cert type found
@@ -136,25 +137,26 @@ static int _gnutls_client_cert_type_recv_params(gnutls_session_t session,
return ret;
- } else { // server mode
- gnutls_datum_t cert_types; // Holds the received cert types
+ } else { // server mode
+ gnutls_datum_t cert_types; // Holds the received cert types
// Compare packet length with expected packet length.
DECR_LEN(data_size, 1);
if (data[0] != data_size) {
return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
}
pdata += 1;
// Assign the contents of our data buffer to a gnutls_datum_t
- cert_types.data = (uint8_t*)pdata; // Need casting to get rid of 'discards const qualifier' warning
+ cert_types.data = (uint8_t *) pdata; // Need casting to get rid of 'discards const qualifier' warning
cert_types.size = data_size;
// Store the client certificate types in our session
_gnutls_hello_ext_set_datum(session,
- GNUTLS_EXTENSION_CLIENT_CERT_TYPE,
- &cert_types);
+ GNUTLS_EXTENSION_CLIENT_CERT_TYPE,
+ &cert_types);
/* We receive a list of supported certificate types that the client
* is able to provide when requested via a client certificate
@@ -170,11 +172,15 @@ static int _gnutls_client_cert_type_recv_params(gnutls_session_t session,
if (cert_type == GNUTLS_CRT_UNKNOWN)
continue;
- _gnutls_handshake_log("EXT[%p]: Checking compatibility of a %s client certificate type that was received from the client.\n",
- session, gnutls_certificate_type_get_name(cert_type));
+ _gnutls_handshake_log
+ ("EXT[%p]: Checking compatibility of a %s client certificate type that was received from the client.\n",
+ session,
+ gnutls_certificate_type_get_name(cert_type));
// Check for support of this cert type
- if (_gnutls_session_is_cert_type_supported(session, cert_type, false, GNUTLS_CTYPE_CLIENT) == 0) {
+ if (_gnutls_session_is_cert_type_supported
+ (session, cert_type, false,
+ GNUTLS_CTYPE_CLIENT) == 0) {
found = true;
break;
}
@@ -182,7 +188,8 @@ static int _gnutls_client_cert_type_recv_params(gnutls_session_t session,
// We found a matching ctype, we pick this one
if (found) {
- _gnutls_session_client_cert_type_set(session, cert_type);
+ _gnutls_session_client_cert_type_set(session,
+ cert_type);
ret = GNUTLS_E_SUCCESS;
} else {
/* If no supported certificate type can be found we terminate
@@ -190,8 +197,8 @@ static int _gnutls_client_cert_type_recv_params(gnutls_session_t session,
* (according to specification rfc7250).
*/
_gnutls_handshake_log
- ("EXT[%p]: No supported client certificate type was found. "
- "Aborting connection.\n", session);
+ ("EXT[%p]: No supported client certificate type was found. "
+ "Aborting connection.\n", session);
ret = GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE;
}
@@ -200,27 +207,26 @@ static int _gnutls_client_cert_type_recv_params(gnutls_session_t session,
}
static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
- gnutls_buffer_st* data)
+ gnutls_buffer_st * data)
{
int ret;
- uint8_t cert_type_IANA; // Holds an IANA cert type ID
+ uint8_t cert_type_IANA; // Holds an IANA cert type ID
gnutls_certificate_type_t cert_type;
/* Only activate this extension if we have cert credentials set
* and alternative cert types are allowed */
if (!are_alternative_cert_types_allowed(session) ||
- (_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE) == NULL))
+ (_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE) == NULL))
return 0;
if (!IS_SERVER(session)) { // Client mode
- uint8_t cert_types[GNUTLS_CRT_MAX]; // The list with supported (IANA) cert types. Inv: 0 <= cert type Id < 256
+ uint8_t cert_types[GNUTLS_CRT_MAX]; // The list with supported (IANA) cert types. Inv: 0 <= cert type Id < 256
size_t i, num_cert_types = 0;
- priority_st* cert_priorities;
- gnutls_datum_t tmp_cert_types; // For type conversion
+ priority_st *cert_priorities;
+ gnutls_datum_t tmp_cert_types; // For type conversion
// For brevity
- cert_priorities =
- &session->internals.priorities->client_ctype;
+ cert_priorities = &session->internals.priorities->client_ctype;
/* Retrieve client certificate type priorities if any. If no
* priorities are set then the default client certificate type
@@ -235,12 +241,14 @@ static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
* types.
*/
if (cert_priorities->num_priorities == 1 &&
- cert_priorities->priorities[0] == DEFAULT_CERT_TYPE) {
+ cert_priorities->priorities[0] ==
+ DEFAULT_CERT_TYPE) {
_gnutls_handshake_log
- ("EXT[%p]: Client certificate type was set to default cert type (%s). "
- "We therefore do not send this extension.\n",
- session,
- gnutls_certificate_type_get_name(DEFAULT_CERT_TYPE));
+ ("EXT[%p]: Client certificate type was set to default cert type (%s). "
+ "We therefore do not send this extension.\n",
+ session,
+ gnutls_certificate_type_get_name
+ (DEFAULT_CERT_TYPE));
// Explicitly set but default ctype, so don't send anything
return 0;
@@ -253,14 +261,17 @@ static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
for (i = 0; i < cert_priorities->num_priorities; i++) {
cert_type = cert_priorities->priorities[i];
- if (_gnutls_session_is_cert_type_supported(session, cert_type,
- true, GNUTLS_CTYPE_CLIENT) == 0) {
+ if (_gnutls_session_is_cert_type_supported
+ (session, cert_type, true,
+ GNUTLS_CTYPE_CLIENT) == 0) {
/* Check whether we are allowed to store another cert type
* in our buffer. In other words, prevent a possible buffer
* overflow. This situation can occur when a user sets
* duplicate cert types in the priority strings. */
if (num_cert_types >= GNUTLS_CRT_MAX)
- return gnutls_assert_val(GNUTLS_E_SHORT_MEMORY_BUFFER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_SHORT_MEMORY_BUFFER);
// Convert to IANA representation
ret = cert_type2IANA(cert_type);
@@ -268,17 +279,18 @@ static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
- cert_type_IANA = ret; // For readability
+ cert_type_IANA = ret; // For readability
// Add this cert type to our list with supported types
- cert_types[num_cert_types] = cert_type_IANA;
+ cert_types[num_cert_types] =
+ cert_type_IANA;
num_cert_types++;
_gnutls_handshake_log
- ("EXT[%p]: Client certificate type %s (%d) was queued.\n",
- session,
- gnutls_certificate_type_get_name(cert_type),
- cert_type_IANA);
+ ("EXT[%p]: Client certificate type %s (%d) was queued.\n",
+ session,
+ gnutls_certificate_type_get_name
+ (cert_type), cert_type_IANA);
}
}
@@ -289,19 +301,21 @@ static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
*/
if (num_cert_types == 0) {
_gnutls_handshake_log
- ("EXT[%p]: Client certificate types were set but none of them is supported. "
- "You might want to check your credentials or your priorities. "
- "We do not send this extension.\n",
- session);
+ ("EXT[%p]: Client certificate types were set but none of them is supported. "
+ "You might want to check your credentials or your priorities. "
+ "We do not send this extension.\n",
+ session);
return 0;
} else if (num_cert_types == 1 &&
- IANA2cert_type(cert_types[0]) == DEFAULT_CERT_TYPE) {
+ IANA2cert_type(cert_types[0]) ==
+ DEFAULT_CERT_TYPE) {
_gnutls_handshake_log
- ("EXT[%p]: The only supported client certificate type is (%s) which is the default. "
- "We therefore do not send this extension.\n",
- session,
- gnutls_certificate_type_get_name(DEFAULT_CERT_TYPE));
+ ("EXT[%p]: The only supported client certificate type is (%s) which is the default. "
+ "We therefore do not send this extension.\n",
+ session,
+ gnutls_certificate_type_get_name
+ (DEFAULT_CERT_TYPE));
return 0;
}
@@ -314,16 +328,16 @@ static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
tmp_cert_types.size = num_cert_types;
_gnutls_hello_ext_set_datum(session,
- GNUTLS_EXTENSION_CLIENT_CERT_TYPE,
- &tmp_cert_types);
+ GNUTLS_EXTENSION_CLIENT_CERT_TYPE,
+ &tmp_cert_types);
/* Serialize the certificate types into a sequence of octets
* uint8: length of sequence of cert types (1 octet)
* uint8: cert types (0 <= #octets <= 255)
*/
ret = _gnutls_buffer_append_data_prefix(data, 8,
- cert_types,
- num_cert_types);
+ cert_types,
+ num_cert_types);
// Check for errors
if (ret < 0) {
@@ -333,8 +347,8 @@ static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
return num_cert_types + 1;
}
}
- } else { // Server mode
- const version_entry_st* vers = get_version(session);
+ } else { // Server mode
+ const version_entry_st *vers = get_version(session);
/* TLS 1.2:
* Check whether we are going to send a certificate request,
* otherwise omit the response. This is conform spec.
@@ -347,8 +361,7 @@ static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
* complete the certificate type negotiation and therefore respond
* with a cert type message.
*/
- if (session->internals.send_cert_req != 0 ||
- vers->tls13_sem) {
+ if (session->internals.send_cert_req != 0 || vers->tls13_sem) {
/* Retrieve negotiated client certificate type and send it to
* the client.
* The scenario where we want to send a certificate request but
@@ -357,23 +370,27 @@ static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
* when we cannot find a matching client certificate. This is conform
* spec (RFC7250, 4.2 case 2.).
*/
- cert_type = get_certificate_type(session, GNUTLS_CTYPE_CLIENT);
+ cert_type =
+ get_certificate_type(session, GNUTLS_CTYPE_CLIENT);
ret = cert_type2IANA(cert_type);
if (ret < 0)
return gnutls_assert_val(ret);
- cert_type_IANA = ret; // For readability
+ cert_type_IANA = ret; // For readability
- _gnutls_handshake_log("EXT[%p]: Confirming to use a %s client certificate type.\n",
- session, gnutls_certificate_type_get_name(cert_type));
+ _gnutls_handshake_log
+ ("EXT[%p]: Confirming to use a %s client certificate type.\n",
+ session,
+ gnutls_certificate_type_get_name(cert_type));
- ret = gnutls_buffer_append_data(data, &cert_type_IANA, 1);
+ ret =
+ gnutls_buffer_append_data(data, &cert_type_IANA, 1);
if (ret < 0)
return gnutls_assert_val(ret);
- return 1; // sent one byte
+ return 1; // sent one byte
}
}
@@ -381,7 +398,6 @@ static int _gnutls_client_cert_type_send_params(gnutls_session_t session,
return 0;
}
-
/** Extension interface **/
/* The interface is defined in state.c:
diff --git a/lib/ext/client_cert_type.h b/lib/ext/client_cert_type.h
index 7e89ca816a..45208f7d37 100644
--- a/lib/ext/client_cert_type.h
+++ b/lib/ext/client_cert_type.h
@@ -27,10 +27,10 @@
*/
#ifndef GNUTLS_LIB_EXT_CLIENT_CERT_TYPE_H
-#define GNUTLS_LIB_EXT_CLIENT_CERT_TYPE_H
+# define GNUTLS_LIB_EXT_CLIENT_CERT_TYPE_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_client_cert_type;
-#endif /* GNUTLS_LIB_EXT_CLIENT_CERT_TYPE_H */
+#endif /* GNUTLS_LIB_EXT_CLIENT_CERT_TYPE_H */
diff --git a/lib/ext/compress_certificate.c b/lib/ext/compress_certificate.c
index 66dd9e9275..a72a2662e5 100644
--- a/lib/ext/compress_certificate.c
+++ b/lib/ext/compress_certificate.c
@@ -28,8 +28,7 @@
/* Check whether certificate compression method is valid, ie. supported by gnutls
*/
-static inline int
-is_valid_method(gnutls_compression_method_t method)
+static inline int is_valid_method(gnutls_compression_method_t method)
{
switch (method) {
#ifdef HAVE_LIBZ
@@ -51,10 +50,10 @@ is_valid_method(gnutls_compression_method_t method)
/* Converts compression algorithm number established in RFC8879 to internal compression method type
*/
-gnutls_compression_method_t
+gnutls_compression_method_t
_gnutls_compress_certificate_num2method(uint16_t num)
{
- switch (num) {
+ switch (num) {
case 1:
return GNUTLS_COMP_ZLIB;
case 2:
@@ -63,13 +62,12 @@ _gnutls_compress_certificate_num2method(uint16_t num)
return GNUTLS_COMP_ZSTD;
default:
return GNUTLS_COMP_UNKNOWN;
- }
+ }
}
/* Converts compression method type to compression algorithm number established in RFC8879
*/
-int
-_gnutls_compress_certificate_method2num(gnutls_compression_method_t method)
+int _gnutls_compress_certificate_method2num(gnutls_compression_method_t method)
{
switch (method) {
case GNUTLS_COMP_ZLIB:
@@ -88,14 +86,18 @@ _gnutls_compress_certificate_method2num(gnutls_compression_method_t method)
*/
bool
_gnutls_compress_certificate_is_method_enabled(gnutls_session_t session,
- gnutls_compression_method_t method)
+ gnutls_compression_method_t
+ method)
{
int ret;
unsigned i;
compress_certificate_ext_st *priv;
gnutls_ext_priv_data_t epriv;
- ret = _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_COMPRESS_CERTIFICATE, &epriv);
+ ret =
+ _gnutls_hello_ext_get_priv(session,
+ GNUTLS_EXTENSION_COMPRESS_CERTIFICATE,
+ &epriv);
if (ret < 0)
return false;
priv = epriv;
@@ -159,14 +161,15 @@ gnutls_compress_certificate_get_selected_method(gnutls_session_t session)
**/
int
gnutls_compress_certificate_set_methods(gnutls_session_t session,
- const gnutls_compression_method_t * methods,
- size_t methods_len)
+ const gnutls_compression_method_t *
+ methods, size_t methods_len)
{
unsigned i;
compress_certificate_ext_st *priv;
if (methods == NULL || methods_len == 0) {
- _gnutls_hello_ext_unset_priv(session, GNUTLS_EXTENSION_COMPRESS_CERTIFICATE);
+ _gnutls_hello_ext_unset_priv(session,
+ GNUTLS_EXTENSION_COMPRESS_CERTIFICATE);
return 0;
}
@@ -183,15 +186,15 @@ gnutls_compress_certificate_set_methods(gnutls_session_t session,
priv->methods_len = methods_len;
memcpy(priv->methods, methods, methods_len * sizeof(*methods));
- _gnutls_hello_ext_set_priv(session, GNUTLS_EXTENSION_COMPRESS_CERTIFICATE, priv);
+ _gnutls_hello_ext_set_priv(session,
+ GNUTLS_EXTENSION_COMPRESS_CERTIFICATE, priv);
return 0;
}
int
_gnutls_compress_certificate_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size)
+ const uint8_t * data, size_t data_size)
{
int ret;
unsigned i, j;
@@ -203,14 +206,17 @@ _gnutls_compress_certificate_recv_params(gnutls_session_t session,
compress_certificate_ext_st *priv;
gnutls_ext_priv_data_t epriv;
- ret = _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_COMPRESS_CERTIFICATE, &epriv);
+ ret =
+ _gnutls_hello_ext_get_priv(session,
+ GNUTLS_EXTENSION_COMPRESS_CERTIFICATE,
+ &epriv);
if (ret < 0)
return 0;
priv = epriv;
DECR_LEN(data_size, 1);
bytes_len = *data;
-
+
if (bytes_len < 2 || bytes_len > 254 || bytes_len % 2 == 1)
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
@@ -231,7 +237,7 @@ _gnutls_compress_certificate_recv_params(gnutls_session_t session,
method = methods[i];
goto endloop;
}
-endloop:
+ endloop:
session->internals.compress_certificate_method = method;
return 0;
@@ -248,7 +254,10 @@ _gnutls_compress_certificate_send_params(gnutls_session_t session,
compress_certificate_ext_st *priv;
gnutls_ext_priv_data_t epriv;
- ret = _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_COMPRESS_CERTIFICATE, &epriv);
+ ret =
+ _gnutls_hello_ext_get_priv(session,
+ GNUTLS_EXTENSION_COMPRESS_CERTIFICATE,
+ &epriv);
if (ret < 0)
return 0;
priv = epriv;
@@ -274,8 +283,8 @@ const hello_ext_entry_st ext_mod_compress_certificate = {
.gid = GNUTLS_EXTENSION_COMPRESS_CERTIFICATE,
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
- GNUTLS_EXT_FLAG_CLIENT_HELLO,
+ .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO,
.recv_func = _gnutls_compress_certificate_recv_params,
.send_func = _gnutls_compress_certificate_send_params,
.deinit_func = _gnutls_hello_ext_default_deinit
diff --git a/lib/ext/compress_certificate.h b/lib/ext/compress_certificate.h
index e0f445f620..d61189feff 100644
--- a/lib/ext/compress_certificate.h
+++ b/lib/ext/compress_certificate.h
@@ -21,12 +21,12 @@
*/
#ifndef GNUTLS_LIB_EXT_COMPRESS_CERTIFICATE_H
-#define GNUTLS_LIB_EXT_COMPRESS_CERTIFICATE_H
+# define GNUTLS_LIB_EXT_COMPRESS_CERTIFICATE_H
-#include <hello_ext.h>
+# include <hello_ext.h>
-#define MIN_COMPRESS_CERTIFICATE_METHODS 1
-#define MAX_COMPRESS_CERTIFICATE_METHODS 127
+# define MIN_COMPRESS_CERTIFICATE_METHODS 1
+# define MAX_COMPRESS_CERTIFICATE_METHODS 127
typedef struct {
gnutls_compression_method_t methods[MAX_COMPRESS_CERTIFICATE_METHODS];
@@ -38,12 +38,12 @@ extern const hello_ext_entry_st ext_mod_compress_certificate;
gnutls_compression_method_t
_gnutls_compress_certificate_num2method(uint16_t num);
-int
-_gnutls_compress_certificate_method2num(gnutls_compression_method_t method);
+int _gnutls_compress_certificate_method2num(gnutls_compression_method_t method);
bool
_gnutls_compress_certificate_is_method_enabled(gnutls_session_t session,
- gnutls_compression_method_t method);
+ gnutls_compression_method_t
+ method);
int
_gnutls_compress_certificate_recv_params(gnutls_session_t session,
@@ -54,4 +54,4 @@ int
_gnutls_compress_certificate_send_params(gnutls_session_t session,
gnutls_buffer_st * data);
-#endif /* GNUTLS_LIB_EXT_COMPRESS_CERTIFICATE_H */
+#endif /* GNUTLS_LIB_EXT_COMPRESS_CERTIFICATE_H */
diff --git a/lib/ext/cookie.c b/lib/ext/cookie.c
index b4608f3a91..05cc6b207e 100644
--- a/lib/ext/cookie.c
+++ b/lib/ext/cookie.c
@@ -30,19 +30,18 @@
#include <ext/cookie.h>
static int cookie_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data, size_t data_size);
static int cookie_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata);
+ gnutls_buffer_st * extdata);
const hello_ext_entry_st ext_mod_cookie = {
.name = "Cookie",
.tls_id = 44,
.gid = GNUTLS_EXTENSION_COOKIE,
.validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_HRR | GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST,
- .client_parse_point = GNUTLS_EXT_MANDATORY, /* force parsing prior to EXT_TLS extensions */
- .server_parse_point = GNUTLS_EXT_MANDATORY, /* force parsing prior to EXT_TLS extensions */
+ GNUTLS_EXT_FLAG_HRR | GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST,
+ .client_parse_point = GNUTLS_EXT_MANDATORY, /* force parsing prior to EXT_TLS extensions */
+ .server_parse_point = GNUTLS_EXT_MANDATORY, /* force parsing prior to EXT_TLS extensions */
.recv_func = cookie_recv_params,
.send_func = cookie_send_params,
.pack_func = NULL,
@@ -63,7 +62,7 @@ cookie_recv_params(gnutls_session_t session,
if (session->security_parameters.entity == GNUTLS_SERVER) {
/* we don't support it */
return 0;
- } else { /* client */
+ } else { /* client */
if (_gnutls_ext_get_msg(session) == GNUTLS_EXT_FLAG_HRR) {
DECR_LEN(data_size, 2);
@@ -73,12 +72,17 @@ cookie_recv_params(gnutls_session_t session,
DECR_LEN(data_size, csize);
if (data_size != 0)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
- tmp.data = (void*)data;
+ tmp.data = (void *)data;
tmp.size = csize;
- ret = _gnutls_hello_ext_set_datum(session, GNUTLS_EXTENSION_COOKIE, &tmp);
+ ret =
+ _gnutls_hello_ext_set_datum(session,
+ GNUTLS_EXTENSION_COOKIE,
+ &tmp);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -94,19 +98,22 @@ cookie_recv_params(gnutls_session_t session,
/* returns data_size or a negative number on failure
*/
static int
-cookie_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+cookie_send_params(gnutls_session_t session, gnutls_buffer_st * extdata)
{
gnutls_datum_t tmp;
int ret;
/* this function sends the client extension data (dnsname) */
if (session->security_parameters.entity == GNUTLS_CLIENT) {
- ret = _gnutls_hello_ext_get_datum(session, GNUTLS_EXTENSION_COOKIE, &tmp);
+ ret =
+ _gnutls_hello_ext_get_datum(session,
+ GNUTLS_EXTENSION_COOKIE, &tmp);
if (ret < 0)
return 0;
- ret = _gnutls_buffer_append_data_prefix(extdata, 16, tmp.data, tmp.size);
+ ret =
+ _gnutls_buffer_append_data_prefix(extdata, 16, tmp.data,
+ tmp.size);
if (ret < 0)
return gnutls_assert_val(ret);
diff --git a/lib/ext/cookie.h b/lib/ext/cookie.h
index 13ea7c7cde..4529824f10 100644
--- a/lib/ext/cookie.h
+++ b/lib/ext/cookie.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXT_COOKIE_H
-#define GNUTLS_LIB_EXT_COOKIE_H
+# define GNUTLS_LIB_EXT_COOKIE_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_cookie;
-#endif /* GNUTLS_LIB_EXT_COOKIE_H */
+#endif /* GNUTLS_LIB_EXT_COOKIE_H */
diff --git a/lib/ext/dumbfw.c b/lib/ext/dumbfw.c
index dfd2ee0181..ddc414827e 100644
--- a/lib/ext/dumbfw.c
+++ b/lib/ext/dumbfw.c
@@ -34,7 +34,7 @@
*/
static int _gnutls_dumbfw_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata);
+ gnutls_buffer_st * extdata);
const hello_ext_entry_st ext_mod_dumbfw = {
.name = "ClientHello Padding",
@@ -52,8 +52,7 @@ const hello_ext_entry_st ext_mod_dumbfw = {
};
static int
-_gnutls_dumbfw_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+_gnutls_dumbfw_send_params(gnutls_session_t session, gnutls_buffer_st * extdata)
{
int total_size = 0, ret;
uint8_t pad[257];
@@ -62,17 +61,14 @@ _gnutls_dumbfw_send_params(gnutls_session_t session,
if (session->security_parameters.entity == GNUTLS_SERVER ||
session->internals.dumbfw == 0 ||
- IS_DTLS(session) != 0 ||
- (len < 256 || len >= 512)) {
+ IS_DTLS(session) != 0 || (len < 256 || len >= 512)) {
return 0;
} else {
/* 256 <= extdata->length < 512 */
pad_size = 512 - len;
memset(pad, 0, pad_size);
- ret =
- gnutls_buffer_append_data(extdata, pad,
- pad_size);
+ ret = gnutls_buffer_append_data(extdata, pad, pad_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -81,4 +77,3 @@ _gnutls_dumbfw_send_params(gnutls_session_t session,
return total_size;
}
-
diff --git a/lib/ext/dumbfw.h b/lib/ext/dumbfw.h
index 87bb072e9f..234fa652a1 100644
--- a/lib/ext/dumbfw.h
+++ b/lib/ext/dumbfw.h
@@ -19,10 +19,10 @@
*/
#ifndef GNUTLS_LIB_EXT_DUMBFW_H
-#define GNUTLS_LIB_EXT_DUMBFW_H
+# define GNUTLS_LIB_EXT_DUMBFW_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_dumbfw;
-#endif /* GNUTLS_LIB_EXT_DUMBFW_H */
+#endif /* GNUTLS_LIB_EXT_DUMBFW_H */
diff --git a/lib/ext/early_data.c b/lib/ext/early_data.c
index 28c3182a80..cf89151962 100644
--- a/lib/ext/early_data.c
+++ b/lib/ext/early_data.c
@@ -30,8 +30,7 @@
#include <ext/early_data.h>
static int early_data_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data, size_t data_size);
static int early_data_send_params(gnutls_session_t session,
gnutls_buffer_st * extdata);
@@ -39,9 +38,11 @@ const hello_ext_entry_st ext_mod_early_data = {
.name = "Early Data",
.tls_id = 42,
.gid = GNUTLS_EXTENSION_EARLY_DATA,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_EE,
- .client_parse_point = GNUTLS_EXT_MANDATORY, /* force parsing prior to EXT_TLS extensions */
- .server_parse_point = GNUTLS_EXT_MANDATORY, /* force parsing prior to EXT_TLS extensions */
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_EE,
+ .client_parse_point = GNUTLS_EXT_MANDATORY, /* force parsing prior to EXT_TLS extensions */
+ .server_parse_point = GNUTLS_EXT_MANDATORY, /* force parsing prior to EXT_TLS extensions */
.recv_func = early_data_recv_params,
.send_func = early_data_send_params,
.pack_func = NULL,
@@ -75,8 +76,7 @@ early_data_recv_params(gnutls_session_t session,
/* returns data_size or a negative number on failure
*/
static int
-early_data_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+early_data_send_params(gnutls_session_t session, gnutls_buffer_st * extdata)
{
if (session->security_parameters.entity == GNUTLS_SERVER) {
if (session->internals.hsk_flags & HSK_EARLY_DATA_ACCEPTED)
@@ -87,8 +87,10 @@ early_data_send_params(gnutls_session_t session,
!(session->internals.resumption_requested == 0 &&
session->internals.premaster_set == 0) &&
session->internals.resumed_security_parameters.pversion &&
- session->internals.resumed_security_parameters.pversion->tls13_sem) {
- session->internals.hsk_flags |= HSK_EARLY_DATA_IN_FLIGHT;
+ session->internals.resumed_security_parameters.
+ pversion->tls13_sem) {
+ session->internals.hsk_flags |=
+ HSK_EARLY_DATA_IN_FLIGHT;
return GNUTLS_E_INT_RET_0;
}
}
@@ -109,8 +111,7 @@ early_data_send_params(gnutls_session_t session,
*
* Since: 3.6.5
**/
-size_t
-gnutls_record_get_max_early_data_size(gnutls_session_t session)
+size_t gnutls_record_get_max_early_data_size(gnutls_session_t session)
{
return session->security_parameters.max_early_data_size;
}
@@ -130,9 +131,7 @@ gnutls_record_get_max_early_data_size(gnutls_session_t session)
*
* Since: 3.6.4
**/
-int
-gnutls_record_set_max_early_data_size(gnutls_session_t session,
- size_t size)
+int gnutls_record_set_max_early_data_size(gnutls_session_t session, size_t size)
{
if (session->security_parameters.entity == GNUTLS_CLIENT)
return GNUTLS_E_INVALID_REQUEST;
diff --git a/lib/ext/early_data.h b/lib/ext/early_data.h
index d7178e8ac2..d6a314cbca 100644
--- a/lib/ext/early_data.h
+++ b/lib/ext/early_data.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXT_EARLY_DATA_H
-#define GNUTLS_LIB_EXT_EARLY_DATA_H
+# define GNUTLS_LIB_EXT_EARLY_DATA_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_early_data;
-#endif /* GNUTLS_LIB_EXT_EARLY_DATA_H */
+#endif /* GNUTLS_LIB_EXT_EARLY_DATA_H */
diff --git a/lib/ext/ec_point_formats.c b/lib/ext/ec_point_formats.c
index d426580b19..34db90f52c 100644
--- a/lib/ext/ec_point_formats.c
+++ b/lib/ext/ec_point_formats.c
@@ -29,13 +29,14 @@
#include "state.h"
#include <gnutls/gnutls.h>
-
-static int _gnutls_supported_ec_point_formats_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
-static int _gnutls_supported_ec_point_formats_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata);
-
+static int _gnutls_supported_ec_point_formats_recv_params(gnutls_session_t
+ session,
+ const uint8_t * data,
+ size_t data_size);
+static int _gnutls_supported_ec_point_formats_send_params(gnutls_session_t
+ session,
+ gnutls_buffer_st *
+ extdata);
const hello_ext_entry_st ext_mod_supported_ec_point_formats = {
.name = "Supported EC Point Formats",
@@ -44,7 +45,7 @@ const hello_ext_entry_st ext_mod_supported_ec_point_formats = {
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
.validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
- GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.recv_func = _gnutls_supported_ec_point_formats_recv_params,
.send_func = _gnutls_supported_ec_point_formats_send_params,
.pack_func = NULL,
@@ -52,13 +53,12 @@ const hello_ext_entry_st ext_mod_supported_ec_point_formats = {
.deinit_func = NULL
};
-
/* Receive point formats
*/
static int
_gnutls_supported_ec_point_formats_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size)
+ const uint8_t * data,
+ size_t data_size)
{
size_t len, i;
int uncompressed = 0;
@@ -84,9 +84,7 @@ _gnutls_supported_ec_point_formats_recv_params(gnutls_session_t session,
}
if (uncompressed == 0)
- return
- gnutls_assert_val
- (GNUTLS_E_UNKNOWN_PK_ALGORITHM);
+ return gnutls_assert_val(GNUTLS_E_UNKNOWN_PK_ALGORITHM);
} else {
/* only sanity check here. We only support uncompressed points
* and a client must support it thus nothing to check.
@@ -104,7 +102,7 @@ _gnutls_supported_ec_point_formats_recv_params(gnutls_session_t session,
*/
static int
_gnutls_supported_ec_point_formats_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+ gnutls_buffer_st * extdata)
{
const uint8_t p[2] = { 0x01, 0x00 }; /* only support uncompressed point format */
int ret;
diff --git a/lib/ext/ec_point_formats.h b/lib/ext/ec_point_formats.h
index cc65c04c38..0fb7b73ba7 100644
--- a/lib/ext/ec_point_formats.h
+++ b/lib/ext/ec_point_formats.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXT_EC_POINT_FORMATS_H
-#define GNUTLS_LIB_EXT_EC_POINT_FORMATS_H
+# define GNUTLS_LIB_EXT_EC_POINT_FORMATS_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_supported_ec_point_formats;
-#endif /* GNUTLS_LIB_EXT_EC_POINT_FORMATS_H */
+#endif /* GNUTLS_LIB_EXT_EC_POINT_FORMATS_H */
diff --git a/lib/ext/etm.c b/lib/ext/etm.c
index 273a31a8b6..e5a671893b 100644
--- a/lib/ext/etm.c
+++ b/lib/ext/etm.c
@@ -30,10 +30,9 @@
#include <ext/etm.h>
static int _gnutls_ext_etm_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data, size_t data_size);
static int _gnutls_ext_etm_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata);
+ gnutls_buffer_st * extdata);
const hello_ext_entry_st ext_mod_etm = {
.name = "Encrypt-then-MAC",
@@ -41,8 +40,9 @@ const hello_ext_entry_st ext_mod_etm = {
.gid = GNUTLS_EXTENSION_ETM,
.client_parse_point = GNUTLS_EXT_MANDATORY,
.server_parse_point = GNUTLS_EXT_MANDATORY,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.recv_func = _gnutls_ext_etm_recv_params,
.send_func = _gnutls_ext_etm_send_params,
.pack_func = NULL,
@@ -58,7 +58,7 @@ const hello_ext_entry_st ext_mod_etm = {
*/
static int
_gnutls_ext_etm_recv_params(gnutls_session_t session,
- const uint8_t * data, size_t _data_size)
+ const uint8_t * data, size_t _data_size)
{
ssize_t data_size = _data_size;
@@ -72,20 +72,21 @@ _gnutls_ext_etm_recv_params(gnutls_session_t session,
if (session->internals.no_etm != 0)
return 0;
- epriv = (void*)(intptr_t)1;
+ epriv = (void *)(intptr_t) 1;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_ETM,
- epriv);
+ GNUTLS_EXTENSION_ETM, epriv);
/* don't decide now, decide on send */
return 0;
- } else { /* client */
- const gnutls_cipher_suite_entry_st *e =
- session->security_parameters.cs;
+ } else { /* client */
+ const gnutls_cipher_suite_entry_st *e =
+ session->security_parameters.cs;
if (e != NULL) {
const cipher_entry_st *c;
c = cipher_to_entry(e->block_algorithm);
- if (c == NULL || (c->type == CIPHER_AEAD || c->type == CIPHER_STREAM))
+ if (c == NULL
+ || (c->type == CIPHER_AEAD
+ || c->type == CIPHER_STREAM))
return 0;
session->security_parameters.etm = 1;
@@ -99,7 +100,7 @@ _gnutls_ext_etm_recv_params(gnutls_session_t session,
*/
static int
_gnutls_ext_etm_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+ gnutls_buffer_st * extdata)
{
if (session->internals.no_etm != 0)
return 0;
@@ -110,7 +111,7 @@ _gnutls_ext_etm_send_params(gnutls_session_t session,
return GNUTLS_E_INT_RET_0;
else
return 0;
- } else { /* server side */
+ } else { /* server side */
const gnutls_cipher_suite_entry_st *e;
const cipher_entry_st *c;
int ret;
@@ -119,13 +120,15 @@ _gnutls_ext_etm_send_params(gnutls_session_t session,
e = session->security_parameters.cs;
if (e != NULL) {
c = cipher_to_entry(e->block_algorithm);
- if (c == NULL || (c->type == CIPHER_AEAD || c->type == CIPHER_STREAM))
+ if (c == NULL
+ || (c->type == CIPHER_AEAD
+ || c->type == CIPHER_STREAM))
return 0;
ret = _gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_ETM,
- &epriv);
- if (ret < 0 || ((intptr_t)epriv) == 0)
+ GNUTLS_EXTENSION_ETM,
+ &epriv);
+ if (ret < 0 || ((intptr_t) epriv) == 0)
return 0;
session->security_parameters.etm = 1;
diff --git a/lib/ext/etm.h b/lib/ext/etm.h
index 76f9dd5e51..2fd35cc0e5 100644
--- a/lib/ext/etm.h
+++ b/lib/ext/etm.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXT_ETM_H
-#define GNUTLS_LIB_EXT_ETM_H
+# define GNUTLS_LIB_EXT_ETM_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_etm;
-#endif /* GNUTLS_LIB_EXT_ETM_H */
+#endif /* GNUTLS_LIB_EXT_ETM_H */
diff --git a/lib/ext/ext_master_secret.c b/lib/ext/ext_master_secret.c
index bc704e6b6a..a438cd7b18 100644
--- a/lib/ext/ext_master_secret.c
+++ b/lib/ext/ext_master_secret.c
@@ -30,10 +30,10 @@
#include <ext/ext_master_secret.h>
static int _gnutls_ext_master_secret_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data,
+ size_t data_size);
static int _gnutls_ext_master_secret_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata);
+ gnutls_buffer_st * extdata);
const hello_ext_entry_st ext_mod_ext_master_secret = {
.name = "Extended Master Secret",
@@ -41,8 +41,9 @@ const hello_ext_entry_st ext_mod_ext_master_secret = {
.gid = GNUTLS_EXTENSION_EXT_MASTER_SECRET,
.client_parse_point = GNUTLS_EXT_MANDATORY,
.server_parse_point = GNUTLS_EXT_MANDATORY,
- .validity = GNUTLS_EXT_FLAG_TLS|GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.recv_func = _gnutls_ext_master_secret_recv_params,
.send_func = _gnutls_ext_master_secret_send_params,
.pack_func = NULL,
@@ -55,8 +56,9 @@ const hello_ext_entry_st ext_mod_ext_master_secret = {
static inline unsigned have_only_ssl3_enabled(gnutls_session_t session)
{
if (session->internals.priorities->protocol.num_priorities == 1 &&
- session->internals.priorities->protocol.priorities[0] == GNUTLS_SSL3)
- return 1;
+ session->internals.priorities->protocol.priorities[0] ==
+ GNUTLS_SSL3)
+ return 1;
return 0;
}
#endif
@@ -68,7 +70,7 @@ static inline unsigned have_only_ssl3_enabled(gnutls_session_t session)
*/
static int
_gnutls_ext_master_secret_recv_params(gnutls_session_t session,
- const uint8_t * data, size_t _data_size)
+ const uint8_t * data, size_t _data_size)
{
ssize_t data_size = _data_size;
@@ -81,7 +83,6 @@ _gnutls_ext_master_secret_recv_params(gnutls_session_t session,
if (data_size != 0) {
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
}
-
#ifdef ENABLE_SSL3
if (session->security_parameters.entity == GNUTLS_CLIENT) {
const version_entry_st *ver = get_version(session);
@@ -91,7 +92,7 @@ _gnutls_ext_master_secret_recv_params(gnutls_session_t session,
if (ver->id != GNUTLS_SSL3)
session->security_parameters.ext_master_secret = 1;
- /* do not enable ext master secret if SSL 3.0 is the only protocol supported by server */
+ /* do not enable ext master secret if SSL 3.0 is the only protocol supported by server */
} else if (!have_only_ssl3_enabled(session))
#endif
session->security_parameters.ext_master_secret = 1;
@@ -103,32 +104,32 @@ _gnutls_ext_master_secret_recv_params(gnutls_session_t session,
*/
static int
_gnutls_ext_master_secret_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+ gnutls_buffer_st * extdata)
{
if ((session->internals.flags & GNUTLS_NO_EXTENSIONS) ||
session->internals.priorities->no_extensions != 0 ||
session->internals.no_ext_master_secret != 0) {
- session->security_parameters.ext_master_secret = 0;
- return 0;
+ session->security_parameters.ext_master_secret = 0;
+ return 0;
}
/* this function sends the client extension data */
#ifdef ENABLE_SSL3
if (session->security_parameters.entity == GNUTLS_CLIENT) {
if (have_only_ssl3_enabled(session))
- return 0; /* this extension isn't available for SSL 3.0 */
+ return 0; /* this extension isn't available for SSL 3.0 */
return GNUTLS_E_INT_RET_0;
- } else { /* server side */
+ } else { /* server side */
const version_entry_st *ver = get_version(session);
if (unlikely(ver == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- if (ver->id != GNUTLS_SSL3 && session->security_parameters.ext_master_secret != 0)
+ if (ver->id != GNUTLS_SSL3
+ && session->security_parameters.ext_master_secret != 0)
return GNUTLS_E_INT_RET_0;
}
-
return 0;
#else
if (session->security_parameters.entity == GNUTLS_CLIENT ||
@@ -152,4 +153,3 @@ unsigned gnutls_session_ext_master_secret_status(gnutls_session_t session)
{
return session->security_parameters.ext_master_secret;
}
-
diff --git a/lib/ext/ext_master_secret.h b/lib/ext/ext_master_secret.h
index 419335b4e3..e99c97fc27 100644
--- a/lib/ext/ext_master_secret.h
+++ b/lib/ext/ext_master_secret.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXT_EXT_MASTER_SECRET_H
-#define GNUTLS_LIB_EXT_EXT_MASTER_SECRET_H
+# define GNUTLS_LIB_EXT_EXT_MASTER_SECRET_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_ext_master_secret;
-#endif /* GNUTLS_LIB_EXT_EXT_MASTER_SECRET_H */
+#endif /* GNUTLS_LIB_EXT_EXT_MASTER_SECRET_H */
diff --git a/lib/ext/heartbeat.c b/lib/ext/heartbeat.c
index 5d9e9f4f8e..0641ac9f2e 100644
--- a/lib/ext/heartbeat.c
+++ b/lib/ext/heartbeat.c
@@ -55,9 +55,8 @@ void gnutls_heartbeat_enable(gnutls_session_t session, unsigned int type)
{
gnutls_ext_priv_data_t epriv;
- epriv = (void*)(intptr_t)type;
- _gnutls_hello_ext_set_priv(session, GNUTLS_EXTENSION_HEARTBEAT,
- epriv);
+ epriv = (void *)(intptr_t) type;
+ _gnutls_hello_ext_set_priv(session, GNUTLS_EXTENSION_HEARTBEAT, epriv);
}
/**
@@ -77,22 +76,22 @@ unsigned gnutls_heartbeat_allowed(gnutls_session_t session, unsigned int type)
gnutls_ext_priv_data_t epriv;
if (session->internals.handshake_in_progress != 0)
- return 0; /* not allowed */
+ return 0; /* not allowed */
if (_gnutls_hello_ext_get_priv
(session, GNUTLS_EXTENSION_HEARTBEAT, &epriv) < 0)
return 0; /* Not enabled */
if (type == GNUTLS_HB_LOCAL_ALLOWED_TO_SEND) {
- if (((intptr_t)epriv) & LOCAL_ALLOWED_TO_SEND)
+ if (((intptr_t) epriv) & LOCAL_ALLOWED_TO_SEND)
return 1;
- } else if (((intptr_t)epriv) & GNUTLS_HB_PEER_ALLOWED_TO_SEND)
+ } else if (((intptr_t) epriv) & GNUTLS_HB_PEER_ALLOWED_TO_SEND)
return 1;
return 0;
}
-#define DEFAULT_PADDING_SIZE 16
+# define DEFAULT_PADDING_SIZE 16
/*
* Sends heartbeat data.
@@ -118,8 +117,7 @@ heartbeat_send_data(gnutls_session_t session, const void *data,
pos += data_size;
ret =
- gnutls_rnd(GNUTLS_RND_NONCE, &response[pos],
- DEFAULT_PADDING_SIZE);
+ gnutls_rnd(GNUTLS_RND_NONCE, &response[pos], DEFAULT_PADDING_SIZE);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -128,10 +126,9 @@ heartbeat_send_data(gnutls_session_t session, const void *data,
ret =
_gnutls_send_int(session, GNUTLS_HEARTBEAT, -1,
- EPOCH_WRITE_CURRENT, response, pos,
- MBUFFER_FLUSH);
+ EPOCH_WRITE_CURRENT, response, pos, MBUFFER_FLUSH);
- cleanup:
+ cleanup:
gnutls_free(response);
return ret;
}
@@ -166,8 +163,7 @@ gnutls_heartbeat_ping(gnutls_session_t session, size_t data_size,
struct timespec now;
if (data_size > MAX_HEARTBEAT_LENGTH)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
if (gnutls_heartbeat_allowed
(session, GNUTLS_HB_LOCAL_ALLOWED_TO_SEND) == 0)
@@ -190,15 +186,15 @@ gnutls_heartbeat_ping(gnutls_session_t session, size_t data_size,
_gnutls_buffer_reset(&session->internals.hb_local_data);
ret =
- _gnutls_buffer_resize(&session->internals.
- hb_local_data, data_size);
+ _gnutls_buffer_resize(&session->internals.hb_local_data,
+ data_size);
if (ret < 0)
return gnutls_assert_val(ret);
ret =
gnutls_rnd(GNUTLS_RND_NONCE,
- session->internals.hb_local_data.data,
- data_size);
+ session->internals.hb_local_data.data,
+ data_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -210,13 +206,12 @@ gnutls_heartbeat_ping(gnutls_session_t session, size_t data_size,
case SHB_SEND2:
session->internals.hb_actual_retrans_timeout_ms =
session->internals.hb_retrans_timeout_ms;
- retry:
+ retry:
ret =
heartbeat_send_data(session,
- session->internals.hb_local_data.
- data,
- session->internals.hb_local_data.
- length, HEARTBEAT_REQUEST);
+ session->internals.hb_local_data.data,
+ session->internals.hb_local_data.length,
+ HEARTBEAT_REQUEST);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -249,16 +244,13 @@ gnutls_heartbeat_ping(gnutls_session_t session, size_t data_size,
gnutls_gettime(&now);
diff =
timespec_sub_ms(&now,
- &session->internals.
- hb_ping_start);
+ &session->internals.hb_ping_start);
if (diff > session->internals.hb_total_timeout_ms) {
session->internals.hb_state = SHB_SEND1;
- return
- gnutls_assert_val(GNUTLS_E_TIMEDOUT);
+ return gnutls_assert_val(GNUTLS_E_TIMEDOUT);
}
- session->internals.hb_actual_retrans_timeout_ms *=
- 2;
+ session->internals.hb_actual_retrans_timeout_ms *= 2;
session->internals.hb_actual_retrans_timeout_ms %=
MAX_DTLS_TIMEOUT;
@@ -327,16 +319,14 @@ int _gnutls_heartbeat_handle(gnutls_session_t session, mbuffer_st * bufel)
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
if (len < 3 + DEFAULT_PADDING_SIZE)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
pos = 0;
type = msg[pos++];
hb_len = _gnutls_read_uint16(&msg[pos]);
if (hb_len > len - 3 - DEFAULT_PADDING_SIZE)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
pos += 2;
@@ -345,8 +335,8 @@ int _gnutls_heartbeat_handle(gnutls_session_t session, mbuffer_st * bufel)
_gnutls_buffer_reset(&session->internals.hb_remote_data);
ret =
- _gnutls_buffer_resize(&session->internals.
- hb_remote_data, hb_len);
+ _gnutls_buffer_resize(&session->internals.hb_remote_data,
+ hb_len);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -360,8 +350,7 @@ int _gnutls_heartbeat_handle(gnutls_session_t session, mbuffer_st * bufel)
case HEARTBEAT_RESPONSE:
if (hb_len != session->internals.hb_local_data.length)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
if (hb_len > 0 &&
memcmp(&msg[pos],
@@ -380,8 +369,7 @@ int _gnutls_heartbeat_handle(gnutls_session_t session, mbuffer_st * bufel)
return gnutls_assert_val(GNUTLS_E_HEARTBEAT_PONG_RECEIVED);
default:
_gnutls_record_log
- ("REC[%p]: HB: received unknown type %u\n", session,
- type);
+ ("REC[%p]: HB: received unknown type %u\n", session, type);
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
}
}
@@ -410,8 +398,7 @@ unsigned int gnutls_heartbeat_get_timeout(gnutls_session_t session)
if (diff >= session->internals.hb_actual_retrans_timeout_ms)
return 0;
else
- return session->internals.hb_actual_retrans_timeout_ms -
- diff;
+ return session->internals.hb_actual_retrans_timeout_ms - diff;
}
/**
@@ -436,7 +423,6 @@ void gnutls_heartbeat_set_timeouts(gnutls_session_t session,
session->internals.hb_total_timeout_ms = total_timeout;
}
-
static int
_gnutls_heartbeat_recv_params(gnutls_session_t session,
const uint8_t * data, size_t _data_size)
@@ -456,19 +442,17 @@ _gnutls_heartbeat_recv_params(gnutls_session_t session,
if (_data_size == 0)
return GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
- policy = (intptr_t)epriv;
+ policy = (intptr_t) epriv;
if (data[0] == 1)
policy |= LOCAL_ALLOWED_TO_SEND;
else if (data[0] == 2)
policy |= LOCAL_NOT_ALLOWED_TO_SEND;
else
- return
- gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- epriv = (void*)(intptr_t)policy;
- _gnutls_hello_ext_set_priv(session, GNUTLS_EXTENSION_HEARTBEAT,
- epriv);
+ epriv = (void *)(intptr_t) policy;
+ _gnutls_hello_ext_set_priv(session, GNUTLS_EXTENSION_HEARTBEAT, epriv);
return 0;
}
@@ -484,7 +468,7 @@ _gnutls_heartbeat_send_params(gnutls_session_t session,
(session, GNUTLS_EXTENSION_HEARTBEAT, &epriv) < 0)
return 0; /* nothing to send - not enabled */
- if (((intptr_t)epriv) & GNUTLS_HB_PEER_ALLOWED_TO_SEND)
+ if (((intptr_t) epriv) & GNUTLS_HB_PEER_ALLOWED_TO_SEND)
p = 1;
else /*if (epriv.num & GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND) */
p = 2;
@@ -500,15 +484,14 @@ _gnutls_heartbeat_pack(gnutls_ext_priv_data_t epriv, gnutls_buffer_st * ps)
{
int ret;
- BUFFER_APPEND_NUM(ps, (intptr_t)epriv);
+ BUFFER_APPEND_NUM(ps, (intptr_t) epriv);
return 0;
}
static int
-_gnutls_heartbeat_unpack(gnutls_buffer_st * ps,
- gnutls_ext_priv_data_t * _priv)
+_gnutls_heartbeat_unpack(gnutls_buffer_st * ps, gnutls_ext_priv_data_t * _priv)
{
gnutls_ext_priv_data_t epriv;
int ret;
@@ -518,7 +501,7 @@ _gnutls_heartbeat_unpack(gnutls_buffer_st * ps,
*_priv = epriv;
ret = 0;
- error:
+ error:
return ret;
}
@@ -528,8 +511,10 @@ const hello_ext_entry_st ext_mod_heartbeat = {
.gid = GNUTLS_EXTENSION_HEARTBEAT,
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_EE | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_EE |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.recv_func = _gnutls_heartbeat_recv_params,
.send_func = _gnutls_heartbeat_send_params,
.pack_func = _gnutls_heartbeat_pack,
diff --git a/lib/ext/heartbeat.h b/lib/ext/heartbeat.h
index 1a210040f5..a8b9014276 100644
--- a/lib/ext/heartbeat.h
+++ b/lib/ext/heartbeat.h
@@ -22,23 +22,23 @@
*/
#ifndef GNUTLS_LIB_EXT_HEARTBEAT_H
-#define GNUTLS_LIB_EXT_HEARTBEAT_H
+# define GNUTLS_LIB_EXT_HEARTBEAT_H
-#include <hello_ext.h>
+# include <hello_ext.h>
-#define HEARTBEAT_REQUEST 1
-#define HEARTBEAT_RESPONSE 2
+# define HEARTBEAT_REQUEST 1
+# define HEARTBEAT_RESPONSE 2
-#define MAX_HEARTBEAT_LENGTH DEFAULT_MAX_RECORD_SIZE
+# define MAX_HEARTBEAT_LENGTH DEFAULT_MAX_RECORD_SIZE
-#define LOCAL_ALLOWED_TO_SEND (1<<2)
-#define LOCAL_NOT_ALLOWED_TO_SEND (1<<3)
+# define LOCAL_ALLOWED_TO_SEND (1<<2)
+# define LOCAL_NOT_ALLOWED_TO_SEND (1<<3)
-#define HEARTBEAT_DEFAULT_POLICY PEER_NOT_ALLOWED_TO_SEND
+# define HEARTBEAT_DEFAULT_POLICY PEER_NOT_ALLOWED_TO_SEND
extern const hello_ext_entry_st ext_mod_heartbeat;
int _gnutls_heartbeat_handle(gnutls_session_t session, mbuffer_st * bufel);
int _gnutls_heartbeat_enabled(gnutls_session_t session, int local);
-#endif /* GNUTLS_LIB_EXT_HEARTBEAT_H */
+#endif /* GNUTLS_LIB_EXT_HEARTBEAT_H */
diff --git a/lib/ext/key_share.c b/lib/ext/key_share.c
index a4db3af950..2fc543cc9b 100644
--- a/lib/ext/key_share.c
+++ b/lib/ext/key_share.c
@@ -38,10 +38,9 @@
#include "pk.h"
static int key_share_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data, size_t data_size);
static int key_share_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata);
+ gnutls_buffer_st * extdata);
const hello_ext_entry_st ext_mod_key_share = {
.name = "Key Share",
@@ -49,8 +48,9 @@ const hello_ext_entry_st ext_mod_key_share = {
.gid = GNUTLS_EXTENSION_KEY_SHARE,
.client_parse_point = _GNUTLS_EXT_TLS_POST_CS,
.server_parse_point = _GNUTLS_EXT_TLS_POST_CS,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO |
- GNUTLS_EXT_FLAG_HRR,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO | GNUTLS_EXT_FLAG_HRR,
.recv_func = key_share_recv_params,
.send_func = key_share_send_params,
.pack_func = NULL,
@@ -69,22 +69,24 @@ const hello_ext_entry_st ext_mod_key_share = {
* } KeyShareEntry;
*
*/
-static int client_gen_key_share(gnutls_session_t session, const gnutls_group_entry_st *group, gnutls_buffer_st *extdata)
+static int client_gen_key_share(gnutls_session_t session,
+ const gnutls_group_entry_st * group,
+ gnutls_buffer_st * extdata)
{
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
int ret;
if (group->pk != GNUTLS_PK_EC && group->pk != GNUTLS_PK_ECDH_X25519 &&
- group->pk != GNUTLS_PK_ECDH_X448 &&
- group->pk != GNUTLS_PK_DH) {
- _gnutls_debug_log("Cannot send key share for group %s!\n", group->name);
+ group->pk != GNUTLS_PK_ECDH_X448 && group->pk != GNUTLS_PK_DH) {
+ _gnutls_debug_log("Cannot send key share for group %s!\n",
+ group->name);
return GNUTLS_E_INT_RET_0;
}
- _gnutls_handshake_log("EXT[%p]: sending key share for %s\n", session, group->name);
+ _gnutls_handshake_log("EXT[%p]: sending key share for %s\n", session,
+ group->name);
- ret =
- _gnutls_buffer_append_prefix(extdata, 16, group->tls_id);
+ ret = _gnutls_buffer_append_prefix(extdata, 16, group->tls_id);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -93,19 +95,24 @@ static int client_gen_key_share(gnutls_session_t session, const gnutls_group_ent
gnutls_pk_params_init(&session->key.kshare.ecdh_params);
ret = _gnutls_pk_generate_keys(group->pk, group->curve,
- &session->key.kshare.ecdh_params, 1);
+ &session->key.kshare.ecdh_params,
+ 1);
if (ret < 0)
return gnutls_assert_val(ret);
ret = _gnutls_ecc_ansi_x962_export(group->curve,
- session->key.kshare.ecdh_params.params[ECC_X],
- session->key.kshare.ecdh_params.params[ECC_Y],
- &tmp);
+ session->key.
+ kshare.ecdh_params.
+ params[ECC_X],
+ session->key.
+ kshare.ecdh_params.
+ params[ECC_Y], &tmp);
if (ret < 0)
return gnutls_assert_val(ret);
ret =
- _gnutls_buffer_append_data_prefix(extdata, 16, tmp.data, tmp.size);
+ _gnutls_buffer_append_data_prefix(extdata, 16, tmp.data,
+ tmp.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -122,14 +129,19 @@ static int client_gen_key_share(gnutls_session_t session, const gnutls_group_ent
gnutls_pk_params_init(&session->key.kshare.ecdhx_params);
ret = _gnutls_pk_generate_keys(group->pk, group->curve,
- &session->key.kshare.ecdhx_params, 1);
+ &session->key.
+ kshare.ecdhx_params, 1);
if (ret < 0)
return gnutls_assert_val(ret);
ret =
_gnutls_buffer_append_data_prefix(extdata, 16,
- session->key.kshare.ecdhx_params.raw_pub.data,
- session->key.kshare.ecdhx_params.raw_pub.size);
+ session->key.
+ kshare.ecdhx_params.
+ raw_pub.data,
+ session->key.
+ kshare.ecdhx_params.
+ raw_pub.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -145,37 +157,58 @@ static int client_gen_key_share(gnutls_session_t session, const gnutls_group_ent
gnutls_pk_params_release(&session->key.kshare.dh_params);
gnutls_pk_params_init(&session->key.kshare.dh_params);
- ret = _gnutls_mpi_init_scan_nz(&session->key.kshare.dh_params.params[DH_G],
- group->generator->data, group->generator->size);
+ ret =
+ _gnutls_mpi_init_scan_nz(&session->key.kshare.
+ dh_params.params[DH_G],
+ group->generator->data,
+ group->generator->size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- ret = _gnutls_mpi_init_scan_nz(&session->key.kshare.dh_params.params[DH_P],
- group->prime->data, group->prime->size);
+ ret =
+ _gnutls_mpi_init_scan_nz(&session->key.kshare.
+ dh_params.params[DH_P],
+ group->prime->data,
+ group->prime->size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- ret = _gnutls_mpi_init_scan_nz(&session->key.kshare.dh_params.params[DH_Q],
- group->q->data, group->q->size);
+ ret =
+ _gnutls_mpi_init_scan_nz(&session->key.kshare.
+ dh_params.params[DH_Q],
+ group->q->data, group->q->size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
session->key.kshare.dh_params.algo = group->pk;
- session->key.kshare.dh_params.dh_group = group->id; /* no curve in FFDH, we write the group */
+ session->key.kshare.dh_params.dh_group = group->id; /* no curve in FFDH, we write the group */
session->key.kshare.dh_params.qbits = *group->q_bits;
session->key.kshare.dh_params.params_nr = 3;
- ret = _gnutls_pk_generate_keys(group->pk, 0, &session->key.kshare.dh_params, 1);
+ ret =
+ _gnutls_pk_generate_keys(group->pk, 0,
+ &session->key.kshare.dh_params, 1);
if (ret < 0)
return gnutls_assert_val(ret);
ret =
- _gnutls_buffer_append_prefix(extdata, 16, group->prime->size);
+ _gnutls_buffer_append_prefix(extdata, 16,
+ group->prime->size);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _gnutls_buffer_append_fixed_mpi(extdata, session->key.kshare.dh_params.params[DH_Y],
- group->prime->size);
+ ret =
+ _gnutls_buffer_append_fixed_mpi(extdata,
+ session->key.
+ kshare.dh_params.
+ params[DH_Y],
+ group->prime->size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -191,35 +224,41 @@ static int client_gen_key_share(gnutls_session_t session, const gnutls_group_ent
* Sends server key exchange parameters
*
*/
-static int server_gen_key_share(gnutls_session_t session, const gnutls_group_entry_st *group, gnutls_buffer_st *extdata)
+static int server_gen_key_share(gnutls_session_t session,
+ const gnutls_group_entry_st * group,
+ gnutls_buffer_st * extdata)
{
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
int ret;
if (group->pk != GNUTLS_PK_EC && group->pk != GNUTLS_PK_ECDH_X25519 &&
- group->pk != GNUTLS_PK_ECDH_X448 &&
- group->pk != GNUTLS_PK_DH) {
- _gnutls_debug_log("Cannot send key share for group %s!\n", group->name);
+ group->pk != GNUTLS_PK_ECDH_X448 && group->pk != GNUTLS_PK_DH) {
+ _gnutls_debug_log("Cannot send key share for group %s!\n",
+ group->name);
return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
}
- _gnutls_handshake_log("EXT[%p]: sending key share for %s\n", session, group->name);
+ _gnutls_handshake_log("EXT[%p]: sending key share for %s\n", session,
+ group->name);
- ret =
- _gnutls_buffer_append_prefix(extdata, 16, group->tls_id);
+ ret = _gnutls_buffer_append_prefix(extdata, 16, group->tls_id);
if (ret < 0)
return gnutls_assert_val(ret);
if (group->pk == GNUTLS_PK_EC) {
ret = _gnutls_ecc_ansi_x962_export(group->curve,
- session->key.kshare.ecdh_params.params[ECC_X],
- session->key.kshare.ecdh_params.params[ECC_Y],
- &tmp);
+ session->key.
+ kshare.ecdh_params.
+ params[ECC_X],
+ session->key.
+ kshare.ecdh_params.
+ params[ECC_Y], &tmp);
if (ret < 0)
return gnutls_assert_val(ret);
ret =
- _gnutls_buffer_append_data_prefix(extdata, 16, tmp.data, tmp.size);
+ _gnutls_buffer_append_data_prefix(extdata, 16, tmp.data,
+ tmp.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -231,8 +270,12 @@ static int server_gen_key_share(gnutls_session_t session, const gnutls_group_ent
group->pk == GNUTLS_PK_ECDH_X448) {
ret =
_gnutls_buffer_append_data_prefix(extdata, 16,
- session->key.kshare.ecdhx_params.raw_pub.data,
- session->key.kshare.ecdhx_params.raw_pub.size);
+ session->key.
+ kshare.ecdhx_params.
+ raw_pub.data,
+ session->key.
+ kshare.ecdhx_params.
+ raw_pub.size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -240,12 +283,17 @@ static int server_gen_key_share(gnutls_session_t session, const gnutls_group_ent
} else if (group->pk == GNUTLS_PK_DH) {
ret =
- _gnutls_buffer_append_prefix(extdata, 16, group->prime->size);
+ _gnutls_buffer_append_prefix(extdata, 16,
+ group->prime->size);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _gnutls_buffer_append_fixed_mpi(extdata, session->key.kshare.dh_params.params[DH_Y],
- group->prime->size);
+ ret =
+ _gnutls_buffer_append_fixed_mpi(extdata,
+ session->key.
+ kshare.dh_params.
+ params[DH_Y],
+ group->prime->size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -260,8 +308,9 @@ static int server_gen_key_share(gnutls_session_t session, const gnutls_group_ent
/* Generates shared key and stores it in session->key.key
*/
static int
-server_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *group,
- const uint8_t * data, size_t data_size)
+server_use_key_share(gnutls_session_t session,
+ const gnutls_group_entry_st * group, const uint8_t * data,
+ size_t data_size)
{
const gnutls_ecc_curve_entry_st *curve;
int ret;
@@ -276,11 +325,16 @@ server_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
gnutls_pk_params_init(&pub);
- if (curve->size*2+1 != data_size)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ if (curve->size * 2 + 1 != data_size)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
/* generate our key */
- ret = _gnutls_pk_generate_keys(curve->pk, curve->id, &session->key.kshare.ecdh_params, 1);
+ ret =
+ _gnutls_pk_generate_keys(curve->pk, curve->id,
+ &session->key.kshare.ecdh_params,
+ 1);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -296,7 +350,10 @@ server_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
pub.params_nr = 2;
/* generate shared */
- ret = _gnutls_pk_derive_tls13(curve->pk, &session->key.key, &session->key.kshare.ecdh_params, &pub);
+ ret =
+ _gnutls_pk_derive_tls13(curve->pk, &session->key.key,
+ &session->key.kshare.ecdh_params,
+ &pub);
gnutls_pk_params_release(&pub);
if (ret < 0) {
return gnutls_assert_val(ret);
@@ -314,10 +371,15 @@ server_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
curve = _gnutls_ecc_curve_get_params(group->curve);
if (curve->size != data_size)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
/* generate our key */
- ret = _gnutls_pk_generate_keys(curve->pk, curve->id, &session->key.kshare.ecdhx_params, 1);
+ ret =
+ _gnutls_pk_generate_keys(curve->pk, curve->id,
+ &session->key.kshare.ecdhx_params,
+ 1);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -327,13 +389,16 @@ server_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
pub.algo = group->pk;
pub.curve = curve->id;
- pub.raw_pub.data = (void*)data;
+ pub.raw_pub.data = (void *)data;
pub.raw_pub.size = data_size;
/* We don't mask the MSB in the final byte as required
* by RFC7748. This will be done internally by nettle 3.3 or later.
*/
- ret = _gnutls_pk_derive_tls13(curve->pk, &session->key.key, &session->key.kshare.ecdhx_params, &pub);
+ ret =
+ _gnutls_pk_derive_tls13(curve->pk, &session->key.key,
+ &session->key.kshare.ecdhx_params,
+ &pub);
if (ret < 0) {
return gnutls_assert_val(ret);
}
@@ -348,30 +413,48 @@ server_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
gnutls_pk_params_init(&session->key.kshare.dh_params);
if (data_size != group->prime->size)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
/* set group params */
- ret = _gnutls_mpi_init_scan_nz(&session->key.kshare.dh_params.params[DH_G],
- group->generator->data, group->generator->size);
+ ret =
+ _gnutls_mpi_init_scan_nz(&session->key.kshare.
+ dh_params.params[DH_G],
+ group->generator->data,
+ group->generator->size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- ret = _gnutls_mpi_init_scan_nz(&session->key.kshare.dh_params.params[DH_P],
- group->prime->data, group->prime->size);
+ ret =
+ _gnutls_mpi_init_scan_nz(&session->key.kshare.
+ dh_params.params[DH_P],
+ group->prime->data,
+ group->prime->size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- ret = _gnutls_mpi_init_scan_nz(&session->key.kshare.dh_params.params[DH_Q],
- group->q->data, group->q->size);
+ ret =
+ _gnutls_mpi_init_scan_nz(&session->key.kshare.
+ dh_params.params[DH_Q],
+ group->q->data, group->q->size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
session->key.kshare.dh_params.algo = GNUTLS_PK_DH;
session->key.kshare.dh_params.qbits = *group->q_bits;
session->key.kshare.dh_params.params_nr = 3;
/* generate our keys */
- ret = _gnutls_pk_generate_keys(group->pk, 0, &session->key.kshare.dh_params, 1);
+ ret =
+ _gnutls_pk_generate_keys(group->pk, 0,
+ &session->key.kshare.dh_params, 1);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -379,14 +462,19 @@ server_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
gnutls_pk_params_init(&pub);
ret = _gnutls_mpi_init_scan_nz(&pub.params[DH_Y],
- data, data_size);
+ data, data_size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
pub.algo = group->pk;
/* generate shared key */
- ret = _gnutls_pk_derive_tls13(GNUTLS_PK_DH, &session->key.key, &session->key.kshare.dh_params, &pub);
+ ret =
+ _gnutls_pk_derive_tls13(GNUTLS_PK_DH, &session->key.key,
+ &session->key.kshare.dh_params,
+ &pub);
_gnutls_mpi_release(&pub.params[DH_Y]);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -396,7 +484,8 @@ server_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
- _gnutls_debug_log("EXT[%p]: server generated %s shared key\n", session, group->name);
+ _gnutls_debug_log("EXT[%p]: server generated %s shared key\n", session,
+ group->name);
return ret;
}
@@ -404,8 +493,9 @@ server_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
/* Generates shared key and stores it in session->key.key
*/
static int
-client_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *group,
- const uint8_t * data, size_t data_size)
+client_use_key_share(gnutls_session_t session,
+ const gnutls_group_entry_st * group, const uint8_t * data,
+ size_t data_size)
{
const gnutls_ecc_curve_entry_st *curve;
int ret;
@@ -417,11 +507,16 @@ client_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
gnutls_pk_params_init(&pub);
- if (session->key.kshare.ecdh_params.algo != group->pk || session->key.kshare.ecdh_params.curve != curve->id)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ if (session->key.kshare.ecdh_params.algo != group->pk
+ || session->key.kshare.ecdh_params.curve != curve->id)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- if (curve->size*2+1 != data_size)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ if (curve->size * 2 + 1 != data_size)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
/* read the server's public key */
ret = _gnutls_ecc_ansi_x962_import(data, data_size,
@@ -435,7 +530,10 @@ client_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
pub.params_nr = 2;
/* generate shared key */
- ret = _gnutls_pk_derive_tls13(curve->pk, &session->key.key, &session->key.kshare.ecdh_params, &pub);
+ ret =
+ _gnutls_pk_derive_tls13(curve->pk, &session->key.key,
+ &session->key.kshare.ecdh_params,
+ &pub);
gnutls_pk_params_release(&pub);
if (ret < 0) {
return gnutls_assert_val(ret);
@@ -449,11 +547,16 @@ client_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
curve = _gnutls_ecc_curve_get_params(group->curve);
- if (session->key.kshare.ecdhx_params.algo != group->pk || session->key.kshare.ecdhx_params.curve != curve->id)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ if (session->key.kshare.ecdhx_params.algo != group->pk
+ || session->key.kshare.ecdhx_params.curve != curve->id)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
if (curve->size != data_size)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
/* read the public key and generate shared */
gnutls_pk_params_init(&pub);
@@ -461,13 +564,16 @@ client_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
pub.algo = group->pk;
pub.curve = curve->id;
- pub.raw_pub.data = (void*)data;
+ pub.raw_pub.data = (void *)data;
pub.raw_pub.size = data_size;
/* We don't mask the MSB in the final byte as required
* by RFC7748. This will be done internally by nettle 3.3 or later.
*/
- ret = _gnutls_pk_derive_tls13(curve->pk, &session->key.key, &session->key.kshare.ecdhx_params, &pub);
+ ret =
+ _gnutls_pk_derive_tls13(curve->pk, &session->key.key,
+ &session->key.kshare.ecdhx_params,
+ &pub);
if (ret < 0) {
return gnutls_assert_val(ret);
}
@@ -477,24 +583,34 @@ client_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
} else if (group->pk == GNUTLS_PK_DH) {
gnutls_pk_params_st pub;
- if (session->key.kshare.dh_params.algo != group->pk || session->key.kshare.dh_params.dh_group != group->id)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ if (session->key.kshare.dh_params.algo != group->pk
+ || session->key.kshare.dh_params.dh_group != group->id)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
if (data_size != group->prime->size)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
/* read the public key and generate shared */
gnutls_pk_params_init(&pub);
ret = _gnutls_mpi_init_scan_nz(&pub.params[DH_Y],
- data, data_size);
+ data, data_size);
if (ret < 0)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
pub.algo = group->pk;
/* generate shared key */
- ret = _gnutls_pk_derive_tls13(GNUTLS_PK_DH, &session->key.key, &session->key.kshare.dh_params, &pub);
+ ret =
+ _gnutls_pk_derive_tls13(GNUTLS_PK_DH, &session->key.key,
+ &session->key.kshare.dh_params,
+ &pub);
_gnutls_mpi_release(&pub.params[DH_Y]);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -504,7 +620,8 @@ client_use_key_share(gnutls_session_t session, const gnutls_group_entry_st *grou
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
- _gnutls_debug_log("EXT[%p]: client generated %s shared key\n", session, group->name);
+ _gnutls_debug_log("EXT[%p]: client generated %s shared key\n", session,
+ group->name);
return ret;
}
@@ -530,7 +647,9 @@ key_share_recv_params(gnutls_session_t session,
data += 2;
if (data_size != size)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
/* if we do PSK without DH ignore that share */
if ((session->internals.hsk_flags & HSK_PSK_SELECTED) &&
@@ -539,7 +658,7 @@ key_share_recv_params(gnutls_session_t session,
return 0;
}
- while(data_size > 0) {
+ while (data_size > 0) {
DECR_LEN(data_size, 2);
gid = _gnutls_read_uint16(data);
data += 2;
@@ -555,12 +674,17 @@ key_share_recv_params(gnutls_session_t session,
group = _gnutls_tls_id_to_group(gid);
if (group != NULL)
- _gnutls_handshake_log("EXT[%p]: Received key share for %s\n", session, group->name);
+ _gnutls_handshake_log
+ ("EXT[%p]: Received key share for %s\n",
+ session, group->name);
- if (group != NULL && group == session->internals.cand_group) {
+ if (group != NULL
+ && group == session->internals.cand_group) {
_gnutls_session_group_set(session, group);
- ret = server_use_key_share(session, group, data, size);
+ ret =
+ server_use_key_share(session, group, data,
+ size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -592,28 +716,41 @@ key_share_recv_params(gnutls_session_t session,
}
session->internals.hsk_flags |= HSK_KEY_SHARE_RECEIVED;
- } else { /* Client */
+ } else { /* Client */
ver = get_version(session);
if (unlikely(ver == NULL || ver->key_shares == 0))
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
if (_gnutls_ext_get_msg(session) == GNUTLS_EXT_FLAG_HRR) {
- if (unlikely(!(session->internals.hsk_flags & HSK_HRR_RECEIVED)))
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ if (unlikely
+ (!(session->
+ internals.hsk_flags & HSK_HRR_RECEIVED)))
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
DECR_LEN(data_size, 2);
gid = _gnutls_read_uint16(data);
group = _gnutls_tls_id_to_group(gid);
if (group == NULL)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- _gnutls_handshake_log("EXT[%p]: HRR key share with %s\n", session, group->name);
+ _gnutls_handshake_log
+ ("EXT[%p]: HRR key share with %s\n", session,
+ group->name);
/* check if we support it */
- ret = _gnutls_session_supports_group(session, group->id);
+ ret =
+ _gnutls_session_supports_group(session, group->id);
if (ret < 0) {
- _gnutls_handshake_log("EXT[%p]: received share for %s which is disabled\n", session, group->name);
+ _gnutls_handshake_log
+ ("EXT[%p]: received share for %s which is disabled\n",
+ session, group->name);
return gnutls_assert_val(ret);
}
@@ -629,19 +766,25 @@ key_share_recv_params(gnutls_session_t session,
DECR_LEN(data_size, 2);
size = _gnutls_read_uint16(data);
- data+=2;
+ data += 2;
if (data_size != size)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
group = _gnutls_tls_id_to_group(gid);
if (group == NULL)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
/* check if we support it */
ret = _gnutls_session_supports_group(session, group->id);
if (ret < 0) {
- _gnutls_handshake_log("EXT[%p]: received share for %s which is disabled\n", session, group->name);
+ _gnutls_handshake_log
+ ("EXT[%p]: received share for %s which is disabled\n",
+ session, group->name);
return gnutls_assert_val(ret);
}
@@ -656,8 +799,7 @@ key_share_recv_params(gnutls_session_t session,
return 0;
}
-static inline bool
-pk_type_is_ecdhx(gnutls_pk_algorithm_t pk)
+static inline bool pk_type_is_ecdhx(gnutls_pk_algorithm_t pk)
{
return pk == GNUTLS_PK_ECDH_X25519 || pk == GNUTLS_PK_ECDH_X448;
}
@@ -671,8 +813,7 @@ pk_type_equal(gnutls_pk_algorithm_t a, gnutls_pk_algorithm_t b)
/* returns data_size or a negative number on failure
*/
static int
-key_share_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+key_share_send_params(gnutls_session_t session, gnutls_buffer_st * extdata)
{
unsigned i;
int ret;
@@ -693,41 +834,52 @@ key_share_send_params(gnutls_session_t session,
length_pos = extdata->length;
- ret =
- _gnutls_buffer_append_prefix(extdata, 16, 0);
+ ret = _gnutls_buffer_append_prefix(extdata, 16, 0);
if (ret < 0)
return gnutls_assert_val(ret);
- if (session->internals.hsk_flags & HSK_HRR_RECEIVED) { /* we know the group */
+ if (session->internals.hsk_flags & HSK_HRR_RECEIVED) { /* we know the group */
group = get_group(session);
if (unlikely(group == NULL))
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
ret = client_gen_key_share(session, group, extdata);
if (ret == GNUTLS_E_INT_RET_0)
- return gnutls_assert_val(GNUTLS_E_NO_COMMON_KEY_SHARE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_NO_COMMON_KEY_SHARE);
if (ret < 0)
return gnutls_assert_val(ret);
} else {
gnutls_pk_algorithm_t selected_groups[3];
- unsigned max_groups = 2; /* GNUTLS_KEY_SHARE_TOP2 */
+ unsigned max_groups = 2; /* GNUTLS_KEY_SHARE_TOP2 */
if (session->internals.flags & GNUTLS_KEY_SHARE_TOP)
max_groups = 1;
- else if (session->internals.flags & GNUTLS_KEY_SHARE_TOP3)
+ else if (session->
+ internals.flags & GNUTLS_KEY_SHARE_TOP3)
max_groups = 3;
- assert(max_groups <= sizeof(selected_groups)/sizeof(selected_groups[0]));
+ assert(max_groups <=
+ sizeof(selected_groups) /
+ sizeof(selected_groups[0]));
/* generate key shares for out top-(max_groups) groups
* if they are of different PK type. */
- for (i = 0; i < session->internals.priorities->groups.size; i++) {
+ for (i = 0;
+ i < session->internals.priorities->groups.size;
+ i++) {
unsigned int j;
- group = session->internals.priorities->groups.entry[i];
+ group =
+ session->internals.priorities->
+ groups.entry[i];
for (j = 0; j < generated; j++) {
- if (pk_type_equal(group->pk, selected_groups[j])) {
+ if (pk_type_equal
+ (group->pk, selected_groups[j])) {
break;
}
}
@@ -737,9 +889,11 @@ key_share_send_params(gnutls_session_t session,
selected_groups[generated] = group->pk;
- ret = client_gen_key_share(session, group, extdata);
+ ret =
+ client_gen_key_share(session, group,
+ extdata);
if (ret == GNUTLS_E_INT_RET_0)
- continue; /* no key share for this algorithm */
+ continue; /* no key share for this algorithm */
if (ret < 0)
return gnutls_assert_val(ret);
@@ -754,7 +908,7 @@ key_share_send_params(gnutls_session_t session,
_gnutls_write_uint16(extdata->length - length_pos - 2,
&extdata->data[length_pos]);
- } else { /* server */
+ } else { /* server */
ver = get_version(session);
if (unlikely(ver == NULL || ver->key_shares == 0))
return gnutls_assert_val(0);
@@ -763,24 +917,32 @@ key_share_send_params(gnutls_session_t session,
group = session->internals.cand_group;
if (group == NULL)
- return gnutls_assert_val(GNUTLS_E_NO_COMMON_KEY_SHARE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_NO_COMMON_KEY_SHARE);
_gnutls_session_group_set(session, group);
- _gnutls_handshake_log("EXT[%p]: requesting retry with group %s\n", session, group->name);
+ _gnutls_handshake_log
+ ("EXT[%p]: requesting retry with group %s\n",
+ session, group->name);
ret =
- _gnutls_buffer_append_prefix(extdata, 16, group->tls_id);
+ _gnutls_buffer_append_prefix(extdata, 16,
+ group->tls_id);
if (ret < 0)
return gnutls_assert_val(ret);
} else {
/* if we are negotiating PSK without DH, do not send a key share */
if ((session->internals.hsk_flags & HSK_PSK_SELECTED) &&
- (session->internals.hsk_flags & HSK_PSK_KE_MODE_PSK))
+ (session->
+ internals.hsk_flags & HSK_PSK_KE_MODE_PSK))
return gnutls_assert_val(0);
group = get_group(session);
if (unlikely(group == NULL))
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
ret = server_gen_key_share(session, group, extdata);
if (ret < 0)
diff --git a/lib/ext/key_share.h b/lib/ext/key_share.h
index ed9aa16800..2b7deb1266 100644
--- a/lib/ext/key_share.h
+++ b/lib/ext/key_share.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXT_KEY_SHARE_H
-#define GNUTLS_LIB_EXT_KEY_SHARE_H
+# define GNUTLS_LIB_EXT_KEY_SHARE_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_key_share;
-#endif /* GNUTLS_LIB_EXT_KEY_SHARE_H */
+#endif /* GNUTLS_LIB_EXT_KEY_SHARE_H */
diff --git a/lib/ext/max_record.c b/lib/ext/max_record.c
index 87302cbd4d..d6c076237e 100644
--- a/lib/ext/max_record.c
+++ b/lib/ext/max_record.c
@@ -41,15 +41,16 @@ static int _gnutls_max_record_send_params(gnutls_session_t session,
static int _gnutls_mre_num2record(int num);
static int _gnutls_mre_record2num(uint16_t record_size);
-
const hello_ext_entry_st ext_mod_max_record_size = {
.name = "Maximum Record Size",
.tls_id = 1,
.gid = GNUTLS_EXTENSION_MAX_RECORD_SIZE,
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_EE | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_EE |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.recv_func = _gnutls_max_record_recv_params,
.send_func = _gnutls_max_record_send_params
};
@@ -104,7 +105,8 @@ _gnutls_max_record_recv_params(gnutls_session_t session,
return new_size;
}
- if (new_size != session->security_parameters.
+ if (new_size !=
+ session->security_parameters.
max_user_record_send_size) {
gnutls_assert();
return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
@@ -117,7 +119,6 @@ _gnutls_max_record_recv_params(gnutls_session_t session,
}
-
}
return 0;
@@ -144,8 +145,8 @@ _gnutls_max_record_send_params(gnutls_session_t session,
if (session->security_parameters.max_user_record_send_size !=
DEFAULT_MAX_RECORD_SIZE) {
ret = _gnutls_mre_record2num
- (session->security_parameters.
- max_user_record_send_size);
+ (session->security_parameters.
+ max_user_record_send_size);
/* it's not an error, as long as we send the
* record_size_limit extension with that value */
@@ -168,8 +169,7 @@ _gnutls_max_record_send_params(gnutls_session_t session,
if (session->security_parameters.max_record_recv_size !=
DEFAULT_MAX_RECORD_SIZE) {
ret = _gnutls_mre_record2num
- (session->security_parameters.
- max_record_recv_size);
+ (session->security_parameters.max_record_recv_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -185,7 +185,6 @@ _gnutls_max_record_send_params(gnutls_session_t session,
return 0;
}
-
/* Maps numbers to record sizes according to the
* extensions draft.
*/
@@ -242,7 +241,6 @@ size_t gnutls_record_get_max_size(gnutls_session_t session)
return session->security_parameters.max_record_recv_size;
}
-
/**
* gnutls_record_set_max_size:
* @session: is a #gnutls_session_t type.
diff --git a/lib/ext/max_record.h b/lib/ext/max_record.h
index 758c8e12c8..bda3ecf49d 100644
--- a/lib/ext/max_record.h
+++ b/lib/ext/max_record.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXT_MAX_RECORD_H
-#define GNUTLS_LIB_EXT_MAX_RECORD_H
+# define GNUTLS_LIB_EXT_MAX_RECORD_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_max_record_size;
-#endif /* GNUTLS_LIB_EXT_MAX_RECORD_H */
+#endif /* GNUTLS_LIB_EXT_MAX_RECORD_H */
diff --git a/lib/ext/post_handshake.c b/lib/ext/post_handshake.c
index 27fe1e7343..fe89c46169 100644
--- a/lib/ext/post_handshake.c
+++ b/lib/ext/post_handshake.c
@@ -31,10 +31,10 @@
#include "auth/cert.h"
static int _gnutls_post_handshake_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data,
+ size_t data_size);
static int _gnutls_post_handshake_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata);
+ gnutls_buffer_st * extdata);
const hello_ext_entry_st ext_mod_post_handshake = {
.name = "Post Handshake Auth",
@@ -53,7 +53,7 @@ const hello_ext_entry_st ext_mod_post_handshake = {
static int
_gnutls_post_handshake_recv_params(gnutls_session_t session,
- const uint8_t * data, size_t _data_size)
+ const uint8_t * data, size_t _data_size)
{
const version_entry_st *vers;
@@ -74,7 +74,7 @@ _gnutls_post_handshake_recv_params(gnutls_session_t session,
*/
static int
_gnutls_post_handshake_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+ gnutls_buffer_st * extdata)
{
gnutls_certificate_credentials_t cred;
const version_entry_st *max;
diff --git a/lib/ext/post_handshake.h b/lib/ext/post_handshake.h
index 7a1cc7a367..329965861d 100644
--- a/lib/ext/post_handshake.h
+++ b/lib/ext/post_handshake.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXT_POST_HANDSHAKE_H
-#define GNUTLS_LIB_EXT_POST_HANDSHAKE_H
+# define GNUTLS_LIB_EXT_POST_HANDSHAKE_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_post_handshake;
-#endif /* GNUTLS_LIB_EXT_POST_HANDSHAKE_H */
+#endif /* GNUTLS_LIB_EXT_POST_HANDSHAKE_H */
diff --git a/lib/ext/pre_shared_key.c b/lib/ext/pre_shared_key.c
index 8dff2b495f..b6a442564d 100644
--- a/lib/ext/pre_shared_key.c
+++ b/lib/ext/pre_shared_key.c
@@ -36,7 +36,7 @@
#include <assert.h>
static int
-compute_psk_from_ticket(const tls13_ticket_st *ticket, gnutls_datum_t *key)
+compute_psk_from_ticket(const tls13_ticket_st * ticket, gnutls_datum_t * key)
{
int ret;
@@ -51,10 +51,10 @@ compute_psk_from_ticket(const tls13_ticket_st *ticket, gnutls_datum_t *key)
key->size = ticket->prf->output_size;
ret = _tls13_expand_secret2(ticket->prf,
- RESUMPTION_LABEL, sizeof(RESUMPTION_LABEL)-1,
- ticket->nonce, ticket->nonce_size,
- ticket->resumption_master_secret,
- key->size,
+ RESUMPTION_LABEL,
+ sizeof(RESUMPTION_LABEL) - 1, ticket->nonce,
+ ticket->nonce_size,
+ ticket->resumption_master_secret, key->size,
key->data);
if (ret < 0)
gnutls_assert();
@@ -63,10 +63,8 @@ compute_psk_from_ticket(const tls13_ticket_st *ticket, gnutls_datum_t *key)
}
static int
-compute_binder_key(const mac_entry_st *prf,
- const uint8_t *key, size_t keylen,
- bool resuming,
- void *out)
+compute_binder_key(const mac_entry_st * prf,
+ const uint8_t * key, size_t keylen, bool resuming, void *out)
{
int ret;
const char ext_label[] = EXT_BINDER_LABEL;
@@ -93,10 +91,11 @@ compute_binder_key(const mac_entry_st *prf,
static int
compute_psk_binder(gnutls_session_t session,
- const mac_entry_st *prf, unsigned binders_length,
+ const mac_entry_st * prf, unsigned binders_length,
int exts_length, int ext_offset,
- const gnutls_datum_t *psk, const gnutls_datum_t *client_hello,
- bool resuming, void *out)
+ const gnutls_datum_t * psk,
+ const gnutls_datum_t * client_hello, bool resuming,
+ void *out)
{
int ret;
unsigned client_hello_pos, extensions_len_pos;
@@ -108,8 +107,11 @@ compute_psk_binder(gnutls_session_t session,
if (session->security_parameters.entity == GNUTLS_CLIENT) {
if (session->internals.hsk_flags & HSK_HRR_RECEIVED) {
ret = gnutls_buffer_append_data(&handshake_buf,
- (const void *) session->internals.handshake_hash_buffer.data,
- session->internals.handshake_hash_buffer.length);
+ (const void *)
+ session->
+ internals.handshake_hash_buffer.data,
+ session->
+ internals.handshake_hash_buffer.length);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -117,36 +119,52 @@ compute_psk_binder(gnutls_session_t session,
}
client_hello_pos = handshake_buf.length;
- ret = gnutls_buffer_append_data(&handshake_buf, client_hello->data,
- client_hello->size);
+ ret =
+ gnutls_buffer_append_data(&handshake_buf,
+ client_hello->data,
+ client_hello->size);
if (ret < 0) {
gnutls_assert();
goto error;
}
/* This is a ClientHello message */
- handshake_buf.data[client_hello_pos] = GNUTLS_HANDSHAKE_CLIENT_HELLO;
+ handshake_buf.data[client_hello_pos] =
+ GNUTLS_HANDSHAKE_CLIENT_HELLO;
/* At this point we have not yet added the binders to the ClientHello,
* but we have to overwrite the size field, pretending as if binders
* of the correct length were present.
*/
- _gnutls_write_uint24(handshake_buf.length - client_hello_pos + binders_length - 2, &handshake_buf.data[client_hello_pos + 1]);
- _gnutls_write_uint16(handshake_buf.length - client_hello_pos + binders_length - ext_offset,
- &handshake_buf.data[client_hello_pos + ext_offset]);
- extensions_len_pos = handshake_buf.length - client_hello_pos - exts_length - 2;
+ _gnutls_write_uint24(handshake_buf.length - client_hello_pos +
+ binders_length - 2,
+ &handshake_buf.data[client_hello_pos + 1]);
+ _gnutls_write_uint16(handshake_buf.length - client_hello_pos +
+ binders_length - ext_offset,
+ &handshake_buf.data[client_hello_pos +
+ ext_offset]);
+ extensions_len_pos =
+ handshake_buf.length - client_hello_pos - exts_length - 2;
_gnutls_write_uint16(exts_length + binders_length + 2,
- &handshake_buf.data[client_hello_pos + extensions_len_pos]);
+ &handshake_buf.data[client_hello_pos +
+ extensions_len_pos]);
} else {
if (session->internals.hsk_flags & HSK_HRR_SENT) {
- if (unlikely(session->internals.handshake_hash_buffer.length <= client_hello->size)) {
- ret = gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ if (unlikely
+ (session->internals.handshake_hash_buffer.length <=
+ client_hello->size)) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
goto error;
}
ret = gnutls_buffer_append_data(&handshake_buf,
- session->internals.handshake_hash_buffer.data,
- session->internals.handshake_hash_buffer.length - client_hello->size);
+ session->
+ internals.handshake_hash_buffer.data,
+ session->
+ internals.handshake_hash_buffer.length
+ - client_hello->size);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -154,13 +172,16 @@ compute_psk_binder(gnutls_session_t session,
}
if (unlikely(client_hello->size <= binders_length)) {
- ret = gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
goto error;
}
- ret = gnutls_buffer_append_data(&handshake_buf,
- (const void *) client_hello->data,
- client_hello->size - binders_length);
+ ret = gnutls_buffer_append_data(&handshake_buf, (const void *)
+ client_hello->data,
+ client_hello->size -
+ binders_length);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -168,38 +189,37 @@ compute_psk_binder(gnutls_session_t session,
}
ret = compute_binder_key(prf,
- psk->data, psk->size, resuming,
- binder_key);
+ psk->data, psk->size, resuming, binder_key);
if (ret < 0) {
gnutls_assert();
goto error;
}
- ret = _gnutls13_compute_finished(prf, binder_key,
- &handshake_buf,
- out);
+ ret = _gnutls13_compute_finished(prf, binder_key, &handshake_buf, out);
if (ret < 0) {
gnutls_assert();
goto error;
}
ret = 0;
-error:
+ error:
_gnutls_buffer_clear(&handshake_buf);
return ret;
}
static int
-generate_early_secrets(gnutls_session_t session,
- const mac_entry_st *prf)
+generate_early_secrets(gnutls_session_t session, const mac_entry_st * prf)
{
int ret;
- ret = _tls13_derive_secret2(prf, EARLY_TRAFFIC_LABEL, sizeof(EARLY_TRAFFIC_LABEL)-1,
- session->internals.handshake_hash_buffer.data,
- session->internals.handshake_hash_buffer_client_hello_len,
- session->key.proto.tls13.temp_secret,
- session->key.proto.tls13.e_ckey);
+ ret =
+ _tls13_derive_secret2(prf, EARLY_TRAFFIC_LABEL,
+ sizeof(EARLY_TRAFFIC_LABEL) - 1,
+ session->internals.handshake_hash_buffer.data,
+ session->
+ internals.handshake_hash_buffer_client_hello_len,
+ session->key.proto.tls13.temp_secret,
+ session->key.proto.tls13.e_ckey);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -209,11 +229,14 @@ generate_early_secrets(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_derive_secret2(prf, EARLY_EXPORTER_MASTER_LABEL, sizeof(EARLY_EXPORTER_MASTER_LABEL)-1,
- session->internals.handshake_hash_buffer.data,
- session->internals.handshake_hash_buffer_client_hello_len,
- session->key.proto.tls13.temp_secret,
- session->key.proto.tls13.ap_expkey);
+ ret =
+ _tls13_derive_secret2(prf, EARLY_EXPORTER_MASTER_LABEL,
+ sizeof(EARLY_EXPORTER_MASTER_LABEL) - 1,
+ session->internals.handshake_hash_buffer.data,
+ session->
+ internals.handshake_hash_buffer_client_hello_len,
+ session->key.proto.tls13.temp_secret,
+ session->key.proto.tls13.ap_expkey);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -228,8 +251,7 @@ generate_early_secrets(gnutls_session_t session,
/* Calculate TLS 1.3 Early Secret and the derived secrets from the
* selected PSK. */
-int
-_gnutls_generate_early_secrets_for_psk(gnutls_session_t session)
+int _gnutls_generate_early_secrets_for_psk(gnutls_session_t session)
{
const uint8_t *psk;
size_t psk_size;
@@ -265,8 +287,8 @@ client_send_params(gnutls_session_t session,
int ret, ext_offset = 0;
uint8_t binder_value[MAX_HASH_SIZE];
size_t spos;
- gnutls_datum_t username = {NULL, 0};
- gnutls_datum_t user_key = {NULL, 0}, rkey = {NULL, 0};
+ gnutls_datum_t username = { NULL, 0 };
+ gnutls_datum_t user_key = { NULL, 0 }, rkey = { NULL, 0 };
unsigned client_hello_len;
unsigned next_idx;
const mac_entry_st *prf_res = NULL;
@@ -280,7 +302,7 @@ client_send_params(gnutls_session_t session,
tls13_ticket_st *ticket = &session->internals.tls13_ticket;
if (((session->internals.flags & GNUTLS_NO_TICKETS) ||
- session->internals.tls13_ticket.ticket.data == NULL) &&
+ session->internals.tls13_ticket.ticket.data == NULL) &&
(!cred || !_gnutls_have_psk_credentials(cred, session))) {
return 0;
@@ -332,14 +354,19 @@ client_send_params(gnutls_session_t session,
ob_ticket_age = ticket_age + ticket->age_add;
if ((ret = _gnutls_buffer_append_data_prefix(extdata, 16,
- ticket->ticket.data,
- ticket->ticket.size)) < 0) {
+ ticket->
+ ticket.data,
+ ticket->
+ ticket.size)) <
+ 0) {
gnutls_assert();
goto cleanup;
}
/* Now append the obfuscated ticket age */
- if ((ret = _gnutls_buffer_append_prefix(extdata, 32, ob_ticket_age)) < 0) {
+ if ((ret =
+ _gnutls_buffer_append_prefix(extdata, 32,
+ ob_ticket_age)) < 0) {
gnutls_assert();
goto cleanup;
}
@@ -354,13 +381,17 @@ client_send_params(gnutls_session_t session,
if (cred->binder_algo == NULL) {
gnutls_assert();
- ret = gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_INSUFFICIENT_CREDENTIALS);
goto cleanup;
}
prf_psk = cred->binder_algo;
- ret = _gnutls_find_psk_key(session, cred, &username, &tkey, &free_username);
+ ret =
+ _gnutls_find_psk_key(session, cred, &username, &tkey,
+ &free_username);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -373,7 +404,8 @@ client_send_params(gnutls_session_t session,
if (!free_username) {
/* we need to copy the key */
- ret = _gnutls_set_datum(&user_key, tkey.data, tkey.size);
+ ret =
+ _gnutls_set_datum(&user_key, tkey.data, tkey.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -383,7 +415,9 @@ client_send_params(gnutls_session_t session,
user_key.size = tkey.size;
}
- ret = _gnutls_auth_info_init(session, GNUTLS_CRD_PSK, sizeof(psk_auth_info_st), 1);
+ ret =
+ _gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
+ sizeof(psk_auth_info_st), 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -398,10 +432,10 @@ client_send_params(gnutls_session_t session,
goto cleanup;
}
-
if ((ret = _gnutls_buffer_append_data_prefix(extdata, 16,
username.data,
- username.size)) < 0) {
+ username.size)) <
+ 0) {
gnutls_assert();
goto cleanup;
}
@@ -425,15 +459,15 @@ client_send_params(gnutls_session_t session,
_gnutls_write_uint16(psk_id_len, &extdata->data[spos]);
- binders_pos = extdata->length-spos;
+ binders_pos = extdata->length - spos;
ext_offset = _gnutls_ext_get_extensions_offset(session);
/* Compute the binders. extdata->data points to the start
* of this client hello. */
assert(extdata->length >= sizeof(mbuffer_st));
- assert(ext_offset >= (ssize_t)sizeof(mbuffer_st));
+ assert(ext_offset >= (ssize_t) sizeof(mbuffer_st));
ext_offset -= sizeof(mbuffer_st);
- client_hello_len = extdata->length-sizeof(mbuffer_st);
+ client_hello_len = extdata->length - sizeof(mbuffer_st);
next_idx = 0;
@@ -446,7 +480,7 @@ client_send_params(gnutls_session_t session,
if (prf_res && rkey.size > 0) {
gnutls_datum_t client_hello;
- client_hello.data = extdata->data+sizeof(mbuffer_st);
+ client_hello.data = extdata->data + sizeof(mbuffer_st);
client_hello.size = client_hello_len;
ret = compute_psk_binder(session, prf_res,
@@ -468,12 +502,16 @@ client_send_params(gnutls_session_t session,
session->key.binders[next_idx].resumption = 1;
session->key.binders[next_idx].idx = next_idx;
- _gnutls_handshake_log("EXT[%p]: sent PSK resumption identity (%d)\n", session, next_idx);
+ _gnutls_handshake_log
+ ("EXT[%p]: sent PSK resumption identity (%d)\n", session,
+ next_idx);
next_idx++;
/* Add the binder */
- ret = _gnutls_buffer_append_data_prefix(extdata, 8, binder_value, prf_res->output_size);
+ ret =
+ _gnutls_buffer_append_data_prefix(extdata, 8, binder_value,
+ prf_res->output_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -485,13 +523,13 @@ client_send_params(gnutls_session_t session,
if (prf_psk && user_key.size > 0 && info) {
gnutls_datum_t client_hello;
- client_hello.data = extdata->data+sizeof(mbuffer_st);
+ client_hello.data = extdata->data + sizeof(mbuffer_st);
client_hello.size = client_hello_len;
ret = compute_psk_binder(session, prf_psk,
binders_len, binders_pos,
- ext_offset, &user_key, &client_hello, 0,
- binder_value);
+ ext_offset, &user_key, &client_hello,
+ 0, binder_value);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -507,12 +545,15 @@ client_send_params(gnutls_session_t session,
session->key.binders[next_idx].resumption = 0;
session->key.binders[next_idx].idx = next_idx;
- _gnutls_handshake_log("EXT[%p]: sent PSK identity '%s' (%d)\n", session, info->username, next_idx);
+ _gnutls_handshake_log("EXT[%p]: sent PSK identity '%s' (%d)\n",
+ session, info->username, next_idx);
next_idx++;
/* Add the binder */
- ret = _gnutls_buffer_append_data_prefix(extdata, 8, binder_value, prf_psk->output_size);
+ ret =
+ _gnutls_buffer_append_data_prefix(extdata, 8, binder_value,
+ prf_psk->output_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -521,7 +562,7 @@ client_send_params(gnutls_session_t session,
ret = 0;
-cleanup:
+ cleanup:
if (free_username)
_gnutls_free_datum(&username);
@@ -531,8 +572,7 @@ cleanup:
return ret;
}
-static int
-server_send_params(gnutls_session_t session, gnutls_buffer_t extdata)
+static int server_send_params(gnutls_session_t session, gnutls_buffer_t extdata)
{
int ret;
@@ -557,7 +597,7 @@ static int server_recv_params(gnutls_session_t session,
uint8_t binder_value[MAX_HASH_SIZE];
uint16_t psk_index, i;
gnutls_datum_t binder_recvd = { NULL, 0 };
- gnutls_datum_t key = {NULL, 0};
+ gnutls_datum_t key = { NULL, 0 };
psk_ext_parser_st psk_parser;
psk_ext_iter_st psk_iter;
struct psk_st psk;
@@ -578,7 +618,7 @@ static int server_recv_params(gnutls_session_t session,
}
_gnutls13_psk_ext_iter_init(&psk_iter, &psk_parser);
- for (psk_index = 0; ; psk_index++) {
+ for (psk_index = 0;; psk_index++) {
ret = _gnutls13_psk_ext_iter_next_identity(&psk_iter, &psk);
if (ret < 0) {
/* We couldn't find any usable PSK */
@@ -590,7 +630,8 @@ static int server_recv_params(gnutls_session_t session,
/* This will unpack the session ticket if it is well
* formed and has the expected name */
if (!(session->internals.flags & GNUTLS_NO_TICKETS) &&
- _gnutls13_unpack_session_ticket(session, &psk.identity, &ticket_data) == 0) {
+ _gnutls13_unpack_session_ticket(session, &psk.identity,
+ &ticket_data) == 0) {
prf = ticket_data.prf;
session->internals.resumption_requested = 1;
@@ -620,12 +661,17 @@ static int server_recv_params(gnutls_session_t session,
break;
} else if (pskcred &&
psk.ob_ticket_age == 0 &&
- psk.identity.size > 0 && psk.identity.size <= MAX_USERNAME_SIZE) {
+ psk.identity.size > 0
+ && psk.identity.size <= MAX_USERNAME_SIZE) {
prf = pskcred->binder_algo;
/* this fails only on configuration errors; as such we always
* return its error code in that case */
- ret = _gnutls_psk_pwd_find_entry(session, (char *) psk.identity.data, psk.identity.size, &key);
+ ret =
+ _gnutls_psk_pwd_find_entry(session,
+ (char *)psk.
+ identity.data,
+ psk.identity.size, &key);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -636,7 +682,9 @@ static int server_recv_params(gnutls_session_t session,
_gnutls13_psk_ext_iter_init(&psk_iter, &psk_parser);
for (i = 0; i <= psk_index; i++) {
- ret = _gnutls13_psk_ext_iter_next_binder(&psk_iter, &binder_recvd);
+ ret =
+ _gnutls13_psk_ext_iter_next_binder(&psk_iter,
+ &binder_recvd);
if (ret < 0) {
gnutls_assert();
/* We couldn't extract binder */
@@ -654,7 +702,7 @@ static int server_recv_params(gnutls_session_t session,
}
/* Compute the binder value for this PSK */
- ret = compute_psk_binder(session, prf, psk_parser.binders_len+2, 0, 0,
+ ret = compute_psk_binder(session, prf, psk_parser.binders_len + 2, 0, 0,
&key, &full_client_hello, resuming,
binder_value);
if (ret < 0) {
@@ -670,7 +718,8 @@ static int server_recv_params(gnutls_session_t session,
}
if (session->internals.hsk_flags & HSK_PSK_KE_MODE_DHE_PSK)
- _gnutls_handshake_log("EXT[%p]: selected DHE-PSK mode\n", session);
+ _gnutls_handshake_log("EXT[%p]: selected DHE-PSK mode\n",
+ session);
else {
reset_cand_groups(session);
_gnutls_handshake_log("EXT[%p]: selected PSK mode\n", session);
@@ -681,7 +730,9 @@ static int server_recv_params(gnutls_session_t session,
if (!resuming) {
assert(psk.identity.size <= MAX_USERNAME_SIZE);
- ret = _gnutls_auth_info_init(session, GNUTLS_CRD_PSK, sizeof(psk_auth_info_st), 1);
+ ret =
+ _gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
+ sizeof(psk_auth_info_st), 1);
if (ret < 0) {
gnutls_assert();
goto fail;
@@ -696,7 +747,9 @@ static int server_recv_params(gnutls_session_t session,
goto fail;
}
- _gnutls_handshake_log("EXT[%p]: selected PSK identity: %s (%d)\n", session, info->username, psk_index);
+ _gnutls_handshake_log
+ ("EXT[%p]: selected PSK identity: %s (%d)\n", session,
+ info->username, psk_index);
/* We currently only support early data in resuming connection,
* due to lack of API function to associate encryption
@@ -706,24 +759,28 @@ static int server_recv_params(gnutls_session_t session,
} else {
if (session->internals.hsk_flags & HSK_EARLY_DATA_IN_FLIGHT) {
if (session->internals.anti_replay) {
- ret = _gnutls_anti_replay_check(session->internals.anti_replay,
- ticket_age,
- &ticket_creation_time,
- &binder_recvd);
+ ret =
+ _gnutls_anti_replay_check
+ (session->internals.anti_replay, ticket_age,
+ &ticket_creation_time, &binder_recvd);
if (ret < 0) {
refuse_early_data = true;
- _gnutls_handshake_log("EXT[%p]: replay detected; rejecting early data\n",
- session);
+ _gnutls_handshake_log
+ ("EXT[%p]: replay detected; rejecting early data\n",
+ session);
}
} else {
refuse_early_data = true;
- _gnutls_handshake_log("EXT[%p]: anti-replay is not enabled; rejecting early data\n",
- session);
+ _gnutls_handshake_log
+ ("EXT[%p]: anti-replay is not enabled; rejecting early data\n",
+ session);
}
}
session->internals.resumed = true;
- _gnutls_handshake_log("EXT[%p]: selected resumption PSK identity (%d)\n", session, psk_index);
+ _gnutls_handshake_log
+ ("EXT[%p]: selected resumption PSK identity (%d)\n",
+ session, psk_index);
}
session->internals.hsk_flags |= HSK_PSK_SELECTED;
@@ -798,10 +855,11 @@ static int _gnutls_psk_send_params(gnutls_session_t session,
if (session->internals.hsk_flags & HSK_PSK_KE_MODES_SENT) {
cred = (gnutls_psk_client_credentials_t)
- _gnutls_get_cred(session, GNUTLS_CRD_PSK);
+ _gnutls_get_cred(session, GNUTLS_CRD_PSK);
}
- if ((session->internals.flags & GNUTLS_NO_TICKETS) && !session->internals.priorities->have_psk)
+ if ((session->internals.flags & GNUTLS_NO_TICKETS)
+ && !session->internals.priorities->have_psk)
return 0;
return client_send_params(session, extdata, cred);
@@ -811,7 +869,8 @@ static int _gnutls_psk_send_params(gnutls_session_t session,
if (!vers || !vers->tls13_sem)
return 0;
- if ((session->internals.flags & GNUTLS_NO_TICKETS) && !session->internals.priorities->have_psk)
+ if ((session->internals.flags & GNUTLS_NO_TICKETS)
+ && !session->internals.priorities->have_psk)
return 0;
if (session->internals.hsk_flags & HSK_PSK_KE_MODES_RECEIVED)
@@ -826,7 +885,8 @@ static void swap_binders(gnutls_session_t session)
struct binder_data_st tmp;
memcpy(&tmp, &session->key.binders[0], sizeof(struct binder_data_st));
- memcpy(&session->key.binders[0], &session->key.binders[1], sizeof(struct binder_data_st));
+ memcpy(&session->key.binders[0], &session->key.binders[1],
+ sizeof(struct binder_data_st));
memcpy(&session->key.binders[1], &tmp, sizeof(struct binder_data_st));
}
@@ -851,13 +911,23 @@ static int _gnutls_psk_recv_params(gnutls_session_t session,
if (session->internals.hsk_flags & HSK_PSK_KE_MODES_SENT) {
uint16_t selected_identity = _gnutls_read_uint16(data);
- for (i=0;i<sizeof(session->key.binders)/sizeof(session->key.binders[0]);i++) {
- if (session->key.binders[i].prf != NULL && session->key.binders[i].idx == selected_identity) {
+ for (i = 0;
+ i <
+ sizeof(session->key.binders) /
+ sizeof(session->key.binders[0]); i++) {
+ if (session->key.binders[i].prf != NULL
+ && session->key.binders[i].idx ==
+ selected_identity) {
if (session->key.binders[i].resumption) {
- session->internals.resumed = true;
- _gnutls_handshake_log("EXT[%p]: selected PSK-resumption mode\n", session);
+ session->internals.resumed =
+ true;
+ _gnutls_handshake_log
+ ("EXT[%p]: selected PSK-resumption mode\n",
+ session);
} else {
- _gnutls_handshake_log("EXT[%p]: selected PSK mode\n", session);
+ _gnutls_handshake_log
+ ("EXT[%p]: selected PSK mode\n",
+ session);
}
/* different PSK is selected, than the one we calculated early secrets */
@@ -865,36 +935,47 @@ static int _gnutls_psk_recv_params(gnutls_session_t session,
/* ensure that selected binder is set on (our) index zero */
swap_binders(session);
- ret = _gnutls_generate_early_secrets_for_psk(session);
+ ret =
+ _gnutls_generate_early_secrets_for_psk
+ (session);
if (ret < 0)
- return gnutls_assert_val(ret);
+ return
+ gnutls_assert_val
+ (ret);
}
- session->internals.hsk_flags |= HSK_PSK_SELECTED;
+ session->internals.hsk_flags |=
+ HSK_PSK_SELECTED;
}
}
return 0;
} else {
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
}
} else {
if (session->internals.hsk_flags & HSK_PSK_KE_MODES_RECEIVED) {
- if (session->internals.hsk_flags & HSK_PSK_KE_MODE_INVALID) {
+ if (session->
+ internals.hsk_flags & HSK_PSK_KE_MODE_INVALID) {
/* We received a "psk_ke_modes" extension, but with a value we don't support */
return 0;
}
pskcred = (gnutls_psk_server_credentials_t)
- _gnutls_get_cred(session, GNUTLS_CRD_PSK);
+ _gnutls_get_cred(session, GNUTLS_CRD_PSK);
/* If there are no PSK credentials, this extension is not applicable,
* so we return zero. */
- if (pskcred == NULL && (session->internals.flags & GNUTLS_NO_TICKETS))
+ if (pskcred == NULL
+ && (session->internals.flags & GNUTLS_NO_TICKETS))
return 0;
return server_recv_params(session, data, len, pskcred);
} else {
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
}
}
}
@@ -905,7 +986,9 @@ const hello_ext_entry_st ext_mod_pre_shared_key = {
.gid = GNUTLS_EXTENSION_PRE_SHARED_KEY,
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO,
.send_func = _gnutls_psk_send_params,
.recv_func = _gnutls_psk_recv_params
};
diff --git a/lib/ext/pre_shared_key.h b/lib/ext/pre_shared_key.h
index f1ea62c9ce..30444eda76 100644
--- a/lib/ext/pre_shared_key.h
+++ b/lib/ext/pre_shared_key.h
@@ -1,18 +1,20 @@
#ifndef GNUTLS_LIB_EXT_PRE_SHARED_KEY_H
-#define GNUTLS_LIB_EXT_PRE_SHARED_KEY_H
+# define GNUTLS_LIB_EXT_PRE_SHARED_KEY_H
-#include "auth/psk.h"
-#include <hello_ext.h>
-#include "tls13/session_ticket.h"
+# include "auth/psk.h"
+# include <hello_ext.h>
+# include "tls13/session_ticket.h"
-#define PRE_SHARED_KEY_TLS_ID 41
+# define PRE_SHARED_KEY_TLS_ID 41
extern const hello_ext_entry_st ext_mod_pre_shared_key;
inline static
-unsigned _gnutls_have_psk_credentials(const gnutls_psk_client_credentials_t cred, gnutls_session_t session)
+unsigned _gnutls_have_psk_credentials(const gnutls_psk_client_credentials_t
+ cred, gnutls_session_t session)
{
- if ((cred->get_function || cred->username.data) && session->internals.priorities->have_psk)
+ if ((cred->get_function || cred->username.data)
+ && session->internals.priorities->have_psk)
return 1;
else
return 0;
@@ -20,4 +22,4 @@ unsigned _gnutls_have_psk_credentials(const gnutls_psk_client_credentials_t cred
int _gnutls_generate_early_secrets_for_psk(gnutls_session_t session);
-#endif /* GNUTLS_LIB_EXT_PRE_SHARED_KEY_H */
+#endif /* GNUTLS_LIB_EXT_PRE_SHARED_KEY_H */
diff --git a/lib/ext/psk_ke_modes.c b/lib/ext/psk_ke_modes.c
index cc2853686d..be57e7c38f 100644
--- a/lib/ext/psk_ke_modes.c
+++ b/lib/ext/psk_ke_modes.c
@@ -29,8 +29,7 @@
#define PSK_DHE_KE 1
static int
-psk_ke_modes_send_params(gnutls_session_t session,
- gnutls_buffer_t extdata)
+psk_ke_modes_send_params(gnutls_session_t session, gnutls_buffer_t extdata)
{
int ret;
const version_entry_st *vers;
@@ -59,14 +58,18 @@ psk_ke_modes_send_params(gnutls_session_t session,
* prioritization when negotiating PSK or DHE-PSK. Receiving servers would
* very likely respect our prioritization if they parse the message serially. */
pos = 0;
- for (i=0;i<session->internals.priorities->_kx.num_priorities;i++) {
- if (session->internals.priorities->_kx.priorities[i] == GNUTLS_KX_PSK && !have_psk) {
+ for (i = 0; i < session->internals.priorities->_kx.num_priorities; i++) {
+ if (session->internals.priorities->_kx.priorities[i] ==
+ GNUTLS_KX_PSK && !have_psk) {
assert(pos <= 1);
data[pos++] = PSK_KE;
session->internals.hsk_flags |= HSK_PSK_KE_MODE_PSK;
have_psk = 1;
- } else if ((session->internals.priorities->_kx.priorities[i] == GNUTLS_KX_DHE_PSK ||
- session->internals.priorities->_kx.priorities[i] == GNUTLS_KX_ECDHE_PSK) && !have_dhpsk) {
+ } else
+ if ((session->internals.priorities->_kx.priorities[i] ==
+ GNUTLS_KX_DHE_PSK
+ || session->internals.priorities->_kx.priorities[i] ==
+ GNUTLS_KX_ECDHE_PSK) && !have_dhpsk) {
assert(pos <= 1);
data[pos++] = PSK_DHE_KE;
session->internals.hsk_flags |= HSK_PSK_KE_MODE_DHE_PSK;
@@ -129,7 +132,9 @@ psk_ke_modes_recv_params(gnutls_session_t session,
return gnutls_assert_val(0);
}
- cred = (gnutls_psk_server_credentials_t)_gnutls_get_cred(session, GNUTLS_CRD_PSK);
+ cred =
+ (gnutls_psk_server_credentials_t) _gnutls_get_cred(session,
+ GNUTLS_CRD_PSK);
if (cred == NULL && (session->internals.flags & GNUTLS_NO_TICKETS)) {
session->internals.hsk_flags |= HSK_PSK_KE_MODE_INVALID;
return gnutls_assert_val(0);
@@ -138,12 +143,15 @@ psk_ke_modes_recv_params(gnutls_session_t session,
DECR_LEN(len, 1);
ke_modes_len = *(data++);
- for (i=0;i<session->internals.priorities->_kx.num_priorities;i++) {
- if (session->internals.priorities->_kx.priorities[i] == GNUTLS_KX_PSK && psk_pos == MAX_POS) {
+ for (i = 0; i < session->internals.priorities->_kx.num_priorities; i++) {
+ if (session->internals.priorities->_kx.priorities[i] ==
+ GNUTLS_KX_PSK && psk_pos == MAX_POS) {
psk_pos = i;
- } else if ((session->internals.priorities->_kx.priorities[i] == GNUTLS_KX_DHE_PSK ||
- session->internals.priorities->_kx.priorities[i] == GNUTLS_KX_ECDHE_PSK) &&
- dhpsk_pos == MAX_POS) {
+ } else
+ if ((session->internals.priorities->_kx.priorities[i] ==
+ GNUTLS_KX_DHE_PSK
+ || session->internals.priorities->_kx.priorities[i] ==
+ GNUTLS_KX_ECDHE_PSK) && dhpsk_pos == MAX_POS) {
dhpsk_pos = i;
}
@@ -158,7 +166,7 @@ psk_ke_modes_recv_params(gnutls_session_t session,
return gnutls_assert_val(0);
}
- for (i=0;i<ke_modes_len;i++) {
+ for (i = 0; i < ke_modes_len; i++) {
DECR_LEN(len, 1);
if (data[i] == PSK_DHE_KE)
cli_dhpsk_pos = i;
@@ -172,14 +180,19 @@ psk_ke_modes_recv_params(gnutls_session_t session,
}
if (session->internals.priorities->server_precedence) {
- if (dhpsk_pos != MAX_POS && cli_dhpsk_pos != MAX_POS && (dhpsk_pos < psk_pos || cli_psk_pos == MAX_POS))
+ if (dhpsk_pos != MAX_POS && cli_dhpsk_pos != MAX_POS
+ && (dhpsk_pos < psk_pos || cli_psk_pos == MAX_POS))
session->internals.hsk_flags |= HSK_PSK_KE_MODE_DHE_PSK;
- else if (psk_pos != MAX_POS && cli_psk_pos != MAX_POS && (psk_pos < dhpsk_pos || cli_dhpsk_pos == MAX_POS))
+ else if (psk_pos != MAX_POS && cli_psk_pos != MAX_POS
+ && (psk_pos < dhpsk_pos || cli_dhpsk_pos == MAX_POS))
session->internals.hsk_flags |= HSK_PSK_KE_MODE_PSK;
} else {
- if (dhpsk_pos != MAX_POS && cli_dhpsk_pos != MAX_POS && (cli_dhpsk_pos < cli_psk_pos || psk_pos == MAX_POS))
+ if (dhpsk_pos != MAX_POS && cli_dhpsk_pos != MAX_POS
+ && (cli_dhpsk_pos < cli_psk_pos || psk_pos == MAX_POS))
session->internals.hsk_flags |= HSK_PSK_KE_MODE_DHE_PSK;
- else if (psk_pos != MAX_POS && cli_psk_pos != MAX_POS && (cli_psk_pos < cli_dhpsk_pos || dhpsk_pos == MAX_POS))
+ else if (psk_pos != MAX_POS && cli_psk_pos != MAX_POS
+ && (cli_psk_pos < cli_dhpsk_pos
+ || dhpsk_pos == MAX_POS))
session->internals.hsk_flags |= HSK_PSK_KE_MODE_PSK;
}
@@ -199,7 +212,9 @@ const hello_ext_entry_st ext_mod_psk_ke_modes = {
.gid = GNUTLS_EXTENSION_PSK_KE_MODES,
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO,
.send_func = psk_ke_modes_send_params,
.recv_func = psk_ke_modes_recv_params
};
diff --git a/lib/ext/psk_ke_modes.h b/lib/ext/psk_ke_modes.h
index 56876a97d8..eb96f09b92 100644
--- a/lib/ext/psk_ke_modes.h
+++ b/lib/ext/psk_ke_modes.h
@@ -1,8 +1,8 @@
#ifndef GNUTLS_LIB_EXT_PSK_KE_MODES_H
-#define GNUTLS_LIB_EXT_PSK_KE_MODES_H
+# define GNUTLS_LIB_EXT_PSK_KE_MODES_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_psk_ke_modes;
-#endif /* GNUTLS_LIB_EXT_PSK_KE_MODES_H */
+#endif /* GNUTLS_LIB_EXT_PSK_KE_MODES_H */
diff --git a/lib/ext/record_size_limit.c b/lib/ext/record_size_limit.c
index 9398b18882..9b14c5e97f 100644
--- a/lib/ext/record_size_limit.c
+++ b/lib/ext/record_size_limit.c
@@ -41,8 +41,10 @@ const hello_ext_entry_st ext_mod_record_size_limit = {
.gid = GNUTLS_EXTENSION_RECORD_SIZE_LIMIT,
.client_parse_point = GNUTLS_EXT_MANDATORY,
.server_parse_point = GNUTLS_EXT_MANDATORY,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_EE | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_EE |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.recv_func = _gnutls_record_size_limit_recv_params,
.send_func = _gnutls_record_size_limit_send_params
};
@@ -71,13 +73,17 @@ _gnutls_record_size_limit_recv_params(gnutls_session_t session,
MIN_RECORD_SIZE_SMALL : MIN_RECORD_SIZE)) {
/* for server, reject it by omitting the extension in the reply */
if (session->security_parameters.entity == GNUTLS_SERVER) {
- _gnutls_handshake_log("EXT[%p]: client requested too small record_size_limit %u; ignoring\n",
- session, (unsigned)new_size);
+ _gnutls_handshake_log
+ ("EXT[%p]: client requested too small record_size_limit %u; ignoring\n",
+ session, (unsigned)new_size);
return gnutls_assert_val(0);
} else {
- _gnutls_handshake_log("EXT[%p]: server requested too small record_size_limit %u; closing the connection\n",
- session, (unsigned)new_size);
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ _gnutls_handshake_log
+ ("EXT[%p]: server requested too small record_size_limit %u; closing the connection\n",
+ session, (unsigned)new_size);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
}
@@ -87,7 +93,7 @@ _gnutls_record_size_limit_recv_params(gnutls_session_t session,
* indication of the request was accepted by the server */
if (session->security_parameters.entity == GNUTLS_CLIENT)
session->security_parameters.max_record_recv_size =
- session->security_parameters.max_user_record_recv_size;
+ session->security_parameters.max_user_record_recv_size;
_gnutls_handshake_log("EXT[%p]: record_size_limit %u negotiated\n",
session, (unsigned)new_size);
@@ -98,8 +104,8 @@ _gnutls_record_size_limit_recv_params(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
session->security_parameters.max_record_send_size =
- MIN(new_size - vers->tls13_sem,
- session->security_parameters.max_user_record_send_size);
+ MIN(new_size - vers->tls13_sem,
+ session->security_parameters.max_user_record_send_size);
return 0;
}
@@ -123,8 +129,11 @@ _gnutls_record_size_limit_send_params(gnutls_session_t session,
const version_entry_st *vers;
/* if we had received the extension and rejected, don't send it */
- if (session->internals.hsk_flags & HSK_RECORD_SIZE_LIMIT_RECEIVED &&
- !(session->internals.hsk_flags & HSK_RECORD_SIZE_LIMIT_NEGOTIATED))
+ if (session->
+ internals.hsk_flags & HSK_RECORD_SIZE_LIMIT_RECEIVED
+ && !(session->
+ internals.hsk_flags &
+ HSK_RECORD_SIZE_LIMIT_NEGOTIATED))
return gnutls_assert_val(0);
/* add 1 octet for content type */
@@ -132,8 +141,7 @@ _gnutls_record_size_limit_send_params(gnutls_session_t session,
if (unlikely(vers == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- session->security_parameters.max_record_recv_size =
- send_size;
+ session->security_parameters.max_record_recv_size = send_size;
send_size += vers->tls13_sem;
} else {
diff --git a/lib/ext/record_size_limit.h b/lib/ext/record_size_limit.h
index da7cade58d..a4efa56da3 100644
--- a/lib/ext/record_size_limit.h
+++ b/lib/ext/record_size_limit.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXT_RECORD_SIZE_LIMIT_H
-#define GNUTLS_LIB_EXT_RECORD_SIZE_LIMIT_H
+# define GNUTLS_LIB_EXT_RECORD_SIZE_LIMIT_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_record_size_limit;
-#endif /* GNUTLS_LIB_EXT_RECORD_SIZE_LIMIT_H */
+#endif /* GNUTLS_LIB_EXT_RECORD_SIZE_LIMIT_H */
diff --git a/lib/ext/safe_renegotiation.c b/lib/ext/safe_renegotiation.c
index f76895d618..dce2e9bb6a 100644
--- a/lib/ext/safe_renegotiation.c
+++ b/lib/ext/safe_renegotiation.c
@@ -24,19 +24,18 @@
#include <ext/safe_renegotiation.h>
#include "errors.h"
-
static int _gnutls_sr_recv_params(gnutls_session_t state,
const uint8_t * data, size_t data_size);
-static int _gnutls_sr_send_params(gnutls_session_t state,
- gnutls_buffer_st *);
+static int _gnutls_sr_send_params(gnutls_session_t state, gnutls_buffer_st *);
static void _gnutls_sr_deinit_data(gnutls_ext_priv_data_t priv);
const hello_ext_entry_st ext_mod_sr = {
.name = "Safe Renegotiation",
.tls_id = 65281,
.gid = GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.client_parse_point = GNUTLS_EXT_MANDATORY,
.server_parse_point = GNUTLS_EXT_MANDATORY,
.recv_func = _gnutls_sr_recv_params,
@@ -61,8 +60,8 @@ _gnutls_ext_sr_finished(gnutls_session_t session, void *vdata,
}
ret = _gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- &epriv);
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ &epriv);
if (ret < 0) {
gnutls_assert();
/* if a client didn't advertise safe renegotiation, we treat
@@ -80,8 +79,7 @@ _gnutls_ext_sr_finished(gnutls_session_t session, void *vdata,
return GNUTLS_E_INTERNAL_ERROR;
}
- if ((session->security_parameters.entity == GNUTLS_CLIENT
- && dir == 0)
+ if ((session->security_parameters.entity == GNUTLS_CLIENT && dir == 0)
|| (session->security_parameters.entity == GNUTLS_SERVER
&& dir == 1)) {
priv->client_verify_data_len = vdata_size;
@@ -106,16 +104,15 @@ int _gnutls_ext_sr_verify(gnutls_session_t session)
}
ret = _gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- &epriv);
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ &epriv);
if (ret >= 0)
priv = epriv;
/* Safe renegotiation */
if (priv && priv->safe_renegotiation_received) {
- if ((priv->ri_extension_data_len <
- priv->client_verify_data_len)
+ if ((priv->ri_extension_data_len < priv->client_verify_data_len)
||
(memcmp
(priv->ri_extension_data, priv->client_verify_data,
@@ -176,8 +173,7 @@ int _gnutls_ext_sr_verify(gnutls_session_t session)
_gnutls_handshake_log
("HSK[%p]: Denying unsafe (re)negotiation\n",
session);
- return
- GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED;
+ return GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED;
}
} else {
if (session->internals.priorities->sr < SR_SAFE) {
@@ -206,8 +202,8 @@ int _gnutls_ext_sr_recv_cs(gnutls_session_t session)
gnutls_ext_priv_data_t epriv;
ret = _gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- &epriv);
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ &epriv);
if (ret < 0) {
set = 1;
}
@@ -228,8 +224,8 @@ int _gnutls_ext_sr_recv_cs(gnutls_session_t session)
if (set != 0)
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- epriv);
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ epriv);
return 0;
}
@@ -241,8 +237,8 @@ int _gnutls_ext_sr_send_cs(gnutls_session_t session)
gnutls_ext_priv_data_t epriv;
ret = _gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- &epriv);
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ &epriv);
if (ret < 0) {
set = 1;
}
@@ -256,8 +252,8 @@ int _gnutls_ext_sr_send_cs(gnutls_session_t session)
epriv = priv;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- epriv);
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ epriv);
}
return 0;
@@ -276,8 +272,7 @@ _gnutls_sr_recv_params(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
len = data[0];
- DECR_LEN(data_size,
- len + 1 /* count the first byte and payload */ );
+ DECR_LEN(data_size, len + 1 /* count the first byte and payload */ );
if (session->internals.priorities->sr == SR_DISABLED) {
gnutls_assert();
@@ -285,10 +280,9 @@ _gnutls_sr_recv_params(gnutls_session_t session,
}
ret = _gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- &epriv);
- if (ret < 0
- && session->security_parameters.entity == GNUTLS_SERVER) {
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ &epriv);
+ if (ret < 0 && session->security_parameters.entity == GNUTLS_SERVER) {
set = 1;
} else if (ret < 0) {
gnutls_assert();
@@ -304,8 +298,8 @@ _gnutls_sr_recv_params(gnutls_session_t session,
epriv = priv;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- epriv);
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ epriv);
} else {
priv = epriv;
}
@@ -339,8 +333,7 @@ _gnutls_sr_recv_params(gnutls_session_t session,
}
static int
-_gnutls_sr_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+_gnutls_sr_send_params(gnutls_session_t session, gnutls_buffer_st * extdata)
{
/* The format of this extension is a one-byte length of verify data followed
* by the verify data itself. Note that the length byte does not include
@@ -358,8 +351,8 @@ _gnutls_sr_send_params(gnutls_session_t session,
}
ret = _gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- &epriv);
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ &epriv);
if (ret < 0) {
set = 1;
}
@@ -373,8 +366,8 @@ _gnutls_sr_send_params(gnutls_session_t session,
epriv = priv;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- epriv);
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ epriv);
} else
priv = epriv;
@@ -392,16 +385,14 @@ _gnutls_sr_send_params(gnutls_session_t session,
ret =
_gnutls_buffer_append_data(extdata,
priv->client_verify_data,
- priv->
- client_verify_data_len);
+ priv->client_verify_data_len);
if (ret < 0)
return gnutls_assert_val(ret);
if (session->security_parameters.entity == GNUTLS_SERVER) {
ret =
_gnutls_buffer_append_data(extdata,
- priv->
- server_verify_data,
+ priv->server_verify_data,
priv->
server_verify_data_len);
if (ret < 0)
@@ -437,8 +428,8 @@ unsigned gnutls_safe_renegotiation_status(gnutls_session_t session)
gnutls_ext_priv_data_t epriv;
ret = _gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
- &epriv);
+ GNUTLS_EXTENSION_SAFE_RENEGOTIATION,
+ &epriv);
if (ret < 0) {
gnutls_assert();
return 0;
diff --git a/lib/ext/safe_renegotiation.h b/lib/ext/safe_renegotiation.h
index bc2024a9fc..fc9700c7cf 100644
--- a/lib/ext/safe_renegotiation.h
+++ b/lib/ext/safe_renegotiation.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_LIB_EXT_SAFE_RENEGOTIATION_H
-#define GNUTLS_LIB_EXT_SAFE_RENEGOTIATION_H
+# define GNUTLS_LIB_EXT_SAFE_RENEGOTIATION_H
-#include <hello_ext.h>
+# include <hello_ext.h>
typedef struct {
uint8_t client_verify_data[MAX_VERIFY_DATA_SIZE];
@@ -46,4 +46,4 @@ int _gnutls_ext_sr_recv_cs(gnutls_session_t session);
int _gnutls_ext_sr_verify(gnutls_session_t session);
int _gnutls_ext_sr_send_cs(gnutls_session_t);
-#endif /* GNUTLS_LIB_EXT_SAFE_RENEGOTIATION_H */
+#endif /* GNUTLS_LIB_EXT_SAFE_RENEGOTIATION_H */
diff --git a/lib/ext/server_cert_type.c b/lib/ext/server_cert_type.c
index 6db2a1f92e..1e489bf308 100644
--- a/lib/ext/server_cert_type.c
+++ b/lib/ext/server_cert_type.c
@@ -36,13 +36,11 @@
#include "state.h"
#include "datum.h"
-
static int _gnutls_server_cert_type_recv_params(gnutls_session_t session,
- const uint8_t* data,
+ const uint8_t * data,
size_t data_size);
static int _gnutls_server_cert_type_send_params(gnutls_session_t session,
- gnutls_buffer_st* data);
-
+ gnutls_buffer_st * data);
const hello_ext_entry_st ext_mod_server_cert_type = {
.name = "Server Certificate Type",
@@ -51,10 +49,9 @@ const hello_ext_entry_st ext_mod_server_cert_type = {
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
.validity = GNUTLS_EXT_FLAG_TLS |
- GNUTLS_EXT_FLAG_DTLS |
- GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO |
- GNUTLS_EXT_FLAG_EE,
+ GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO | GNUTLS_EXT_FLAG_EE,
.recv_func = _gnutls_server_cert_type_recv_params,
.send_func = _gnutls_server_cert_type_send_params,
.pack_func = _gnutls_hello_ext_default_pack,
@@ -63,31 +60,31 @@ const hello_ext_entry_st ext_mod_server_cert_type = {
.cannot_be_overriden = 1
};
-
static int _gnutls_server_cert_type_recv_params(gnutls_session_t session,
- const uint8_t* data,
+ const uint8_t * data,
size_t data_size)
{
int ret;
gnutls_certificate_type_t cert_type;
size_t i;
bool found = false;
- const uint8_t* pdata = data;
+ const uint8_t *pdata = data;
/* Only activate this extension if we have cert credentials set
* and alternative cert types are allowed */
if (!are_alternative_cert_types_allowed(session) ||
- (_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE) == NULL))
+ (_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE) == NULL))
return 0;
if (!IS_SERVER(session)) { // client mode
- gnutls_datum_t sent_cert_types; // Holds the previously sent cert types
+ gnutls_datum_t sent_cert_types; // Holds the previously sent cert types
/* Compare packet length with expected packet length. For the
* client this is a single byte. */
if (data_size != 1) {
return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
}
/* The server picked one of the offered cert types if he supports
@@ -97,36 +94,40 @@ static int _gnutls_server_cert_type_recv_params(gnutls_session_t session,
* we're going to check it nevertheless. */
cert_type = IANA2cert_type(pdata[0]);
- _gnutls_handshake_log("EXT[%p]: Received a %s server certificate type confirmation from the server.\n",
- session, gnutls_certificate_type_get_name(cert_type));
+ _gnutls_handshake_log
+ ("EXT[%p]: Received a %s server certificate type confirmation from the server.\n",
+ session, gnutls_certificate_type_get_name(cert_type));
// Check validity of cert type
if (cert_type == GNUTLS_CRT_UNKNOWN) {
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
}
/* Get the cert types that we sent to the server (they were stored
* in IANA representation.
*/
ret = _gnutls_hello_ext_get_datum(session,
- GNUTLS_EXTENSION_SERVER_CERT_TYPE,
- &sent_cert_types);
+ GNUTLS_EXTENSION_SERVER_CERT_TYPE,
+ &sent_cert_types);
if (ret < 0) {
/* This should not happen and indicate a memory corruption!
* Assertion are always on in production code so execution
* will halt here. */
assert(false);
}
-
// Check whether what we got back is actually offered by us
for (i = 0; i < sent_cert_types.size; i++) {
- if (IANA2cert_type(sent_cert_types.data[i]) == cert_type)
+ if (IANA2cert_type(sent_cert_types.data[i]) ==
+ cert_type)
found = true;
}
if (found) {
// Everything OK, now set the server certificate type
- _gnutls_session_server_cert_type_set(session, cert_type);
+ _gnutls_session_server_cert_type_set(session,
+ cert_type);
ret = GNUTLS_E_SUCCESS;
} else {
// No valid cert type found
@@ -136,24 +137,25 @@ static int _gnutls_server_cert_type_recv_params(gnutls_session_t session,
return ret;
} else { // server mode
- gnutls_datum_t cert_types; // Holds the received cert types
+ gnutls_datum_t cert_types; // Holds the received cert types
// Compare packet length with expected packet length.
DECR_LEN(data_size, 1);
if (data[0] != data_size) {
return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
}
pdata += 1;
// Assign the contents of our data buffer to a gnutls_datum_t
- cert_types.data = (uint8_t*)pdata; // Need casting to get rid of 'discards const qualifier' warning
+ cert_types.data = (uint8_t *) pdata; // Need casting to get rid of 'discards const qualifier' warning
cert_types.size = data_size;
// Store the server certificate types in our session
_gnutls_hello_ext_set_datum(session,
- GNUTLS_EXTENSION_SERVER_CERT_TYPE,
- &cert_types);
+ GNUTLS_EXTENSION_SERVER_CERT_TYPE,
+ &cert_types);
/* We receive a list of supported certificate types that the client
* is able to process when offered by the server via a subsequent
@@ -169,11 +171,15 @@ static int _gnutls_server_cert_type_recv_params(gnutls_session_t session,
if (cert_type == GNUTLS_CRT_UNKNOWN)
continue;
- _gnutls_handshake_log("EXT[%p]: Checking compatibility of a %s server certificate type that was received from the client.\n",
- session, gnutls_certificate_type_get_name(cert_type));
+ _gnutls_handshake_log
+ ("EXT[%p]: Checking compatibility of a %s server certificate type that was received from the client.\n",
+ session,
+ gnutls_certificate_type_get_name(cert_type));
// Check for support of this cert type
- if (_gnutls_session_is_cert_type_supported(session, cert_type, true, GNUTLS_CTYPE_SERVER) == 0) {
+ if (_gnutls_session_is_cert_type_supported
+ (session, cert_type, true,
+ GNUTLS_CTYPE_SERVER) == 0) {
found = true;
break;
}
@@ -181,7 +187,8 @@ static int _gnutls_server_cert_type_recv_params(gnutls_session_t session,
// We found a matching ctype, we pick this one
if (found) {
- _gnutls_session_server_cert_type_set(session, cert_type);
+ _gnutls_session_server_cert_type_set(session,
+ cert_type);
ret = GNUTLS_E_SUCCESS;
} else {
/* If no supported certificate type can be found we terminate
@@ -196,23 +203,23 @@ static int _gnutls_server_cert_type_recv_params(gnutls_session_t session,
}
static int _gnutls_server_cert_type_send_params(gnutls_session_t session,
- gnutls_buffer_st* data)
+ gnutls_buffer_st * data)
{
int ret;
- uint8_t cert_type_IANA; // Holds an IANA cert type ID
+ uint8_t cert_type_IANA; // Holds an IANA cert type ID
gnutls_certificate_type_t cert_type;
/* Only activate this extension if we have cert credentials set
* and alternative cert types are allowed */
if (!are_alternative_cert_types_allowed(session) ||
- (_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE) == NULL))
+ (_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE) == NULL))
return 0;
if (!IS_SERVER(session)) { // Client mode
- uint8_t cert_types[GNUTLS_CRT_MAX]; // The list with supported (IANA) cert types. Inv: 0 <= cert type Id < 256
+ uint8_t cert_types[GNUTLS_CRT_MAX]; // The list with supported (IANA) cert types. Inv: 0 <= cert type Id < 256
size_t i, num_cert_types = 0;
- priority_st* cert_priorities;
- gnutls_datum_t tmp_cert_types; // For type conversion
+ priority_st *cert_priorities;
+ gnutls_datum_t tmp_cert_types; // For type conversion
// For brevity
cert_priorities = &session->internals.priorities->server_ctype;
@@ -230,12 +237,14 @@ static int _gnutls_server_cert_type_send_params(gnutls_session_t session,
* types.
*/
if (cert_priorities->num_priorities == 1 &&
- cert_priorities->priorities[0] == DEFAULT_CERT_TYPE) {
+ cert_priorities->priorities[0] ==
+ DEFAULT_CERT_TYPE) {
_gnutls_handshake_log
- ("EXT[%p]: Server certificate type was set to default cert type (%s). "
- "We therefore do not send this extension.\n",
- session,
- gnutls_certificate_type_get_name(DEFAULT_CERT_TYPE));
+ ("EXT[%p]: Server certificate type was set to default cert type (%s). "
+ "We therefore do not send this extension.\n",
+ session,
+ gnutls_certificate_type_get_name
+ (DEFAULT_CERT_TYPE));
// Explicitly set but default ctype, so don't send anything
return 0;
@@ -254,14 +263,17 @@ static int _gnutls_server_cert_type_send_params(gnutls_session_t session,
cert_type = cert_priorities->priorities[i];
- if (_gnutls_session_is_cert_type_supported(session, cert_type,
- false, GNUTLS_CTYPE_SERVER) == 0) {
+ if (_gnutls_session_is_cert_type_supported
+ (session, cert_type, false,
+ GNUTLS_CTYPE_SERVER) == 0) {
/* Check whether we are allowed to store another cert type
* in our buffer. In other words, prevent a possible buffer
* overflow. This situation can occur when a user sets
* duplicate cert types in the priority strings. */
if (num_cert_types >= GNUTLS_CRT_MAX)
- return gnutls_assert_val(GNUTLS_E_SHORT_MEMORY_BUFFER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_SHORT_MEMORY_BUFFER);
// Convert to IANA representation
ret = cert_type2IANA(cert_type);
@@ -269,17 +281,18 @@ static int _gnutls_server_cert_type_send_params(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
- cert_type_IANA = ret; // For readability
+ cert_type_IANA = ret; // For readability
// Add this cert type to our list with supported types
- cert_types[num_cert_types] = cert_type_IANA;
+ cert_types[num_cert_types] =
+ cert_type_IANA;
num_cert_types++;
_gnutls_handshake_log
- ("EXT[%p]: Server certificate type %s (%d) was queued.\n",
- session,
- gnutls_certificate_type_get_name(cert_type),
- cert_type_IANA);
+ ("EXT[%p]: Server certificate type %s (%d) was queued.\n",
+ session,
+ gnutls_certificate_type_get_name
+ (cert_type), cert_type_IANA);
}
}
@@ -290,18 +303,20 @@ static int _gnutls_server_cert_type_send_params(gnutls_session_t session,
*/
if (num_cert_types == 0) { // For now, this should not occur since we only check priorities while pruning.
_gnutls_handshake_log
- ("EXT[%p]: Server certificate types were set but none of them is supported. "
- "We do not send this extension.\n",
- session);
+ ("EXT[%p]: Server certificate types were set but none of them is supported. "
+ "We do not send this extension.\n",
+ session);
return 0;
} else if (num_cert_types == 1 &&
- IANA2cert_type(cert_types[0]) == DEFAULT_CERT_TYPE) {
+ IANA2cert_type(cert_types[0]) ==
+ DEFAULT_CERT_TYPE) {
_gnutls_handshake_log
- ("EXT[%p]: The only supported server certificate type is (%s) which is the default. "
- "We therefore do not send this extension.\n",
- session,
- gnutls_certificate_type_get_name(DEFAULT_CERT_TYPE));
+ ("EXT[%p]: The only supported server certificate type is (%s) which is the default. "
+ "We therefore do not send this extension.\n",
+ session,
+ gnutls_certificate_type_get_name
+ (DEFAULT_CERT_TYPE));
return 0;
}
@@ -314,8 +329,8 @@ static int _gnutls_server_cert_type_send_params(gnutls_session_t session,
tmp_cert_types.size = num_cert_types;
_gnutls_hello_ext_set_datum(session,
- GNUTLS_EXTENSION_SERVER_CERT_TYPE,
- &tmp_cert_types);
+ GNUTLS_EXTENSION_SERVER_CERT_TYPE,
+ &tmp_cert_types);
/* Serialize the certificate types into a sequence of octets
* uint8: length of sequence of cert types (1 octet)
@@ -333,7 +348,7 @@ static int _gnutls_server_cert_type_send_params(gnutls_session_t session,
return num_cert_types + 1;
}
}
- } else { // Server mode
+ } else { // Server mode
// Retrieve negotiated server certificate type and send it
cert_type = get_certificate_type(session, GNUTLS_CTYPE_SERVER);
ret = cert_type2IANA(cert_type);
@@ -341,10 +356,11 @@ static int _gnutls_server_cert_type_send_params(gnutls_session_t session,
if (ret < 0)
return gnutls_assert_val(ret);
- cert_type_IANA = ret; // For readability
+ cert_type_IANA = ret; // For readability
- _gnutls_handshake_log("EXT[%p]: Confirming to use a %s server certificate type.\n",
- session, gnutls_certificate_type_get_name(cert_type));
+ _gnutls_handshake_log
+ ("EXT[%p]: Confirming to use a %s server certificate type.\n",
+ session, gnutls_certificate_type_get_name(cert_type));
ret = gnutls_buffer_append_data(data, &cert_type_IANA, 1);
@@ -358,7 +374,6 @@ static int _gnutls_server_cert_type_send_params(gnutls_session_t session,
return 0;
}
-
/** Extension interface **/
/* The interface is defined in state.c:
diff --git a/lib/ext/server_cert_type.h b/lib/ext/server_cert_type.h
index 3c15b0b7b8..18c3417f53 100644
--- a/lib/ext/server_cert_type.h
+++ b/lib/ext/server_cert_type.h
@@ -27,10 +27,10 @@
*/
#ifndef GNUTLS_LIB_EXT_SERVER_CERT_TYPE_H
-#define GNUTLS_LIB_EXT_SERVER_CERT_TYPE_H
+# define GNUTLS_LIB_EXT_SERVER_CERT_TYPE_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_server_cert_type;
-#endif /* GNUTLS_LIB_EXT_SERVER_CERT_TYPE_H */
+#endif /* GNUTLS_LIB_EXT_SERVER_CERT_TYPE_H */
diff --git a/lib/ext/server_name.c b/lib/ext/server_name.c
index d52c8d074d..e9923c49eb 100644
--- a/lib/ext/server_name.c
+++ b/lib/ext/server_name.c
@@ -44,8 +44,10 @@ const hello_ext_entry_st ext_mod_server_name = {
.name = "Server Name Indication",
.tls_id = 0,
.gid = GNUTLS_EXTENSION_SERVER_NAME,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_EE | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_EE |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.client_parse_point = GNUTLS_EXT_MANDATORY,
.server_parse_point = GNUTLS_EXT_MANDATORY,
.recv_func = _gnutls_server_name_recv_params,
@@ -74,10 +76,13 @@ _gnutls_server_name_recv_params(gnutls_session_t session,
gnutls_datum_t name;
if (session->security_parameters.entity == GNUTLS_SERVER) {
- DECR_LENGTH_RET(data_size, 2, GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ DECR_LENGTH_RET(data_size, 2,
+ GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
len = _gnutls_read_uint16(data);
if (len == 0)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
if (len != data_size) {
gnutls_assert();
@@ -99,32 +104,36 @@ _gnutls_server_name_recv_params(gnutls_session_t session,
_gnutls_handshake_log
("HSK[%p]: Received server name size of zero\n",
session);
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
}
DECR_LEN(data_size, len);
- if (type == 0) { /* NAME_DNS */
- if (!_gnutls_dnsname_is_valid((char*)p, len)) {
+ if (type == 0) { /* NAME_DNS */
+ if (!_gnutls_dnsname_is_valid((char *)p, len)) {
_gnutls_handshake_log
("HSK[%p]: Server name is not acceptable: '%.*s'\n",
- session, (int) len, p);
- return gnutls_assert_val(GNUTLS_E_RECEIVED_DISALLOWED_NAME);
+ session, (int)len, p);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_DISALLOWED_NAME);
}
- name.data = (void*)p;
+ name.data = (void *)p;
name.size = len;
- _gnutls_hello_ext_unset_priv(session, GNUTLS_EXTENSION_SERVER_NAME);
+ _gnutls_hello_ext_unset_priv(session,
+ GNUTLS_EXTENSION_SERVER_NAME);
return _gnutls_hello_ext_set_datum(session,
- GNUTLS_EXTENSION_SERVER_NAME,
- &name);
+ GNUTLS_EXTENSION_SERVER_NAME,
+ &name);
}
p += len;
}
-
}
return 0;
@@ -157,9 +166,7 @@ _gnutls_server_name_send_params(gnutls_session_t session,
/* UINT16: write total size of all names
*/
- ret =
- _gnutls_buffer_append_prefix(extdata, 16,
- total_size - 2);
+ ret = _gnutls_buffer_append_prefix(extdata, 16, total_size - 2);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -167,17 +174,16 @@ _gnutls_server_name_send_params(gnutls_session_t session,
* UINT16: size of the first name
* LEN: the actual server name.
*/
- ret =
- _gnutls_buffer_append_prefix(extdata, 8, 0);
+ ret = _gnutls_buffer_append_prefix(extdata, 8, 0);
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_debug_log("HSK[%p]: sent server name: '%.*s'\n", session, name.size, name.data);
+ _gnutls_debug_log("HSK[%p]: sent server name: '%.*s'\n",
+ session, name.size, name.data);
ret =
_gnutls_buffer_append_data_prefix
- (extdata, 16,
- name.data, name.size);
+ (extdata, 16, name.data, name.size);
if (ret < 0)
return gnutls_assert_val(ret);
} else {
@@ -218,7 +224,7 @@ _gnutls_server_name_send_params(gnutls_session_t session,
**/
int
gnutls_server_name_get(gnutls_session_t session, void *data,
- size_t * data_length,
+ size_t *data_length,
unsigned int *type, unsigned int indx)
{
char *_data = data;
@@ -234,7 +240,8 @@ gnutls_server_name_get(gnutls_session_t session, void *data,
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
ret =
- _gnutls_hello_ext_get_datum(session, GNUTLS_EXTENSION_SERVER_NAME, &name);
+ _gnutls_hello_ext_get_datum(session, GNUTLS_EXTENSION_SERVER_NAME,
+ &name);
if (ret < 0) {
gnutls_assert();
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
@@ -246,7 +253,7 @@ gnutls_server_name_get(gnutls_session_t session, void *data,
*type = GNUTLS_NAME_DNS;
- if (*data_length > name.size) { /* greater since we need one extra byte for the null */
+ if (*data_length > name.size) { /* greater since we need one extra byte for the null */
*data_length = name.size;
memcpy(data, name.data, *data_length);
@@ -279,10 +286,12 @@ _gnutls_server_name_set_raw(gnutls_session_t session,
_gnutls_hello_ext_unset_priv(session, GNUTLS_EXTENSION_SERVER_NAME);
- dname.data = (void*)name;
+ dname.data = (void *)name;
dname.size = name_length;
- ret = _gnutls_hello_ext_set_datum(session, GNUTLS_EXTENSION_SERVER_NAME, &dname);
+ ret =
+ _gnutls_hello_ext_set_datum(session, GNUTLS_EXTENSION_SERVER_NAME,
+ &dname);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -318,22 +327,25 @@ gnutls_server_name_set(gnutls_session_t session,
const void *name, size_t name_length)
{
int ret;
- gnutls_datum_t idn_name = {NULL,0};
+ gnutls_datum_t idn_name = { NULL, 0 };
if (session->security_parameters.entity == GNUTLS_SERVER) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
- if (name_length == 0) { /* unset extension */
- _gnutls_hello_ext_unset_priv(session, GNUTLS_EXTENSION_SERVER_NAME);
+ if (name_length == 0) { /* unset extension */
+ _gnutls_hello_ext_unset_priv(session,
+ GNUTLS_EXTENSION_SERVER_NAME);
return 0;
}
ret = gnutls_idna_map(name, name_length, &idn_name, 0);
if (ret < 0) {
- _gnutls_debug_log("unable to convert name %s to IDNA2008 format\n", (char*)name);
- return ret;
+ _gnutls_debug_log
+ ("unable to convert name %s to IDNA2008 format\n",
+ (char *)name);
+ return ret;
}
name = idn_name.data;
@@ -352,9 +364,8 @@ unsigned _gnutls_server_name_matches_resumed(gnutls_session_t session)
ret =
_gnutls_hello_ext_get_datum(session,
- GNUTLS_EXTENSION_SERVER_NAME,
- &name1);
- if (ret < 0) { /* no server name in this session */
+ GNUTLS_EXTENSION_SERVER_NAME, &name1);
+ if (ret < 0) { /* no server name in this session */
name1.data = NULL;
name1.size = 0;
}
@@ -363,7 +374,7 @@ unsigned _gnutls_server_name_matches_resumed(gnutls_session_t session)
_gnutls_hello_ext_get_resumed_datum(session,
GNUTLS_EXTENSION_SERVER_NAME,
&name2);
- if (ret < 0) { /* no server name in this session */
+ if (ret < 0) { /* no server name in this session */
name2.data = NULL;
name2.size = 0;
}
diff --git a/lib/ext/server_name.h b/lib/ext/server_name.h
index b5cdd0ea53..4730aa444b 100644
--- a/lib/ext/server_name.h
+++ b/lib/ext/server_name.h
@@ -22,12 +22,12 @@
*/
#ifndef GNUTLS_LIB_EXT_SERVER_NAME_H
-#define GNUTLS_LIB_EXT_SERVER_NAME_H
+# define GNUTLS_LIB_EXT_SERVER_NAME_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_server_name;
unsigned _gnutls_server_name_matches_resumed(gnutls_session_t);
-#endif /* GNUTLS_LIB_EXT_SERVER_NAME_H */
+#endif /* GNUTLS_LIB_EXT_SERVER_NAME_H */
diff --git a/lib/ext/session_ticket.c b/lib/ext/session_ticket.c
index 2e2627e618..07b6bca851 100644
--- a/lib/ext/session_ticket.c
+++ b/lib/ext/session_ticket.c
@@ -45,8 +45,7 @@
#include "db.h"
static int session_ticket_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data, size_t data_size);
static int session_ticket_send_params(gnutls_session_t session,
gnutls_buffer_st * extdata);
static int session_ticket_unpack(gnutls_buffer_st * ps,
@@ -59,8 +58,9 @@ const hello_ext_entry_st ext_mod_session_ticket = {
.name = "Session Ticket",
.tls_id = 35,
.gid = GNUTLS_EXTENSION_SESSION_TICKET,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
/* This extension must be parsed on session resumption as well; see
* https://gitlab.com/gnutls/gnutls/issues/841 */
.client_parse_point = GNUTLS_EXT_MANDATORY,
@@ -80,16 +80,15 @@ typedef struct {
int session_ticket_len;
} session_ticket_ext_st;
-static void
-deinit_ticket(struct ticket_st *ticket)
+static void deinit_ticket(struct ticket_st *ticket)
{
free(ticket->encrypted_state);
}
static int
-unpack_ticket(const gnutls_datum_t *ticket_data, struct ticket_st *ticket)
+unpack_ticket(const gnutls_datum_t * ticket_data, struct ticket_st *ticket)
{
- const uint8_t * data = ticket_data->data;
+ const uint8_t *data = ticket_data->data;
size_t data_size = ticket_data->size;
const uint8_t *encrypted_state;
@@ -120,8 +119,7 @@ unpack_ticket(const gnutls_datum_t *ticket_data, struct ticket_st *ticket)
DECR_LEN(data_size, TICKET_MAC_SIZE);
memcpy(ticket->mac, data, TICKET_MAC_SIZE);
- ticket->encrypted_state =
- gnutls_malloc(ticket->encrypted_state_len);
+ ticket->encrypted_state = gnutls_malloc(ticket->encrypted_state_len);
if (!ticket->encrypted_state) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -133,7 +131,7 @@ unpack_ticket(const gnutls_datum_t *ticket_data, struct ticket_st *ticket)
}
static void
-pack_ticket(const struct ticket_st *ticket, gnutls_datum_t *ticket_data)
+pack_ticket(const struct ticket_st *ticket, gnutls_datum_t * ticket_data)
{
uint8_t *p;
@@ -160,14 +158,14 @@ pack_ticket(const struct ticket_st *ticket, gnutls_datum_t *ticket_data)
static
int digest_ticket(const gnutls_datum_t * key, struct ticket_st *ticket,
- uint8_t * digest)
+ uint8_t * digest)
{
mac_hd_st digest_hd;
uint16_t length16;
int ret;
ret = _gnutls_mac_init(&digest_hd, mac_to_entry(TICKET_MAC_ALGO),
- key->data, key->size);
+ key->data, key->size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -178,7 +176,7 @@ int digest_ticket(const gnutls_datum_t * key, struct ticket_st *ticket,
length16 = _gnutls_conv_uint16(ticket->encrypted_state_len);
_gnutls_mac(&digest_hd, &length16, 2);
_gnutls_mac(&digest_hd, ticket->encrypted_state,
- ticket->encrypted_state_len);
+ ticket->encrypted_state_len);
_gnutls_mac_deinit(&digest_hd, digest);
return 0;
@@ -186,8 +184,8 @@ int digest_ticket(const gnutls_datum_t * key, struct ticket_st *ticket,
int
_gnutls_decrypt_session_ticket(gnutls_session_t session,
- const gnutls_datum_t *ticket_data,
- gnutls_datum_t *state)
+ const gnutls_datum_t * ticket_data,
+ gnutls_datum_t * state)
{
cipher_hd_st cipher_hd;
gnutls_datum_t IV;
@@ -210,9 +208,7 @@ _gnutls_decrypt_session_ticket(gnutls_session_t session,
/* If the key name of the ticket does not match the one that is currently active,
issue a new ticket. */
- if (memcmp
- (ticket.key_name, stek_key_name.data,
- stek_key_name.size)) {
+ if (memcmp(ticket.key_name, stek_key_name.data, stek_key_name.size)) {
ret = GNUTLS_E_DECRYPTION_FAILED;
goto cleanup;
}
@@ -262,10 +258,10 @@ _gnutls_decrypt_session_ticket(gnutls_session_t session,
ret = 0;
-cleanup2:
+ cleanup2:
_gnutls_cipher_deinit(&cipher_hd);
-cleanup:
+ cleanup:
deinit_ticket(&ticket);
return ret;
@@ -274,8 +270,8 @@ cleanup:
int
_gnutls_encrypt_session_ticket(gnutls_session_t session,
- const gnutls_datum_t *state,
- gnutls_datum_t *ticket_data)
+ const gnutls_datum_t * state,
+ gnutls_datum_t * ticket_data)
{
cipher_hd_st cipher_hd;
gnutls_datum_t IV;
@@ -286,14 +282,18 @@ _gnutls_encrypt_session_ticket(gnutls_session_t session,
struct ticket_st ticket;
int ret;
- encrypted_state.size = ((state->size + TICKET_BLOCK_SIZE - 1) / TICKET_BLOCK_SIZE) * TICKET_BLOCK_SIZE;
- result.size = TICKET_KEY_NAME_SIZE + TICKET_IV_SIZE + 2 +
- encrypted_state.size + TICKET_MAC_SIZE;
+ encrypted_state.size =
+ ((state->size + TICKET_BLOCK_SIZE -
+ 1) / TICKET_BLOCK_SIZE) * TICKET_BLOCK_SIZE;
+ result.size =
+ TICKET_KEY_NAME_SIZE + TICKET_IV_SIZE + 2 + encrypted_state.size +
+ TICKET_MAC_SIZE;
result.data = gnutls_calloc(1, result.size);
if (!result.data) {
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
- encrypted_state.data = result.data + TICKET_KEY_NAME_SIZE + TICKET_IV_SIZE + 2;
+ encrypted_state.data =
+ result.data + TICKET_KEY_NAME_SIZE + TICKET_IV_SIZE + 2;
memcpy(encrypted_state.data, state->data, state->size);
/* Retrieve ticket encryption keys */
@@ -333,7 +333,6 @@ _gnutls_encrypt_session_ticket(gnutls_session_t session,
goto cleanup2;
}
-
/* Fill the ticket structure to compute MAC. */
memcpy(ticket.key_name, stek_key_name.data, stek_key_name.size);
memcpy(ticket.IV, IV.data, IV.size);
@@ -351,17 +350,17 @@ _gnutls_encrypt_session_ticket(gnutls_session_t session,
ticket_data->size = result.size;
result.data = NULL;
-cleanup2:
+ cleanup2:
_gnutls_cipher_deinit(&cipher_hd);
-cleanup:
+ cleanup:
_gnutls_free_datum(&result);
return ret;
}
static int
-unpack_session(gnutls_session_t session, const gnutls_datum_t *state)
+unpack_session(gnutls_session_t session, const gnutls_datum_t * state)
{
int ret;
@@ -388,7 +387,8 @@ session_ticket_recv_params(gnutls_session_t session,
gnutls_datum_t state;
int ret;
- if (session->internals.flags & (GNUTLS_NO_TICKETS | GNUTLS_NO_TICKETS_TLS12))
+ if (session->
+ internals.flags & (GNUTLS_NO_TICKETS | GNUTLS_NO_TICKETS_TLS12))
return 0;
if (session->security_parameters.entity == GNUTLS_SERVER) {
@@ -400,7 +400,9 @@ session_ticket_recv_params(gnutls_session_t session,
ticket_data.data = (void *)data;
ticket_data.size = data_size;
- if ((ret = _gnutls_decrypt_session_ticket(session, &ticket_data, &state)) == 0) {
+ if ((ret =
+ _gnutls_decrypt_session_ticket(session, &ticket_data,
+ &state)) == 0) {
ret = unpack_session(session, &state);
_gnutls_free_datum(&state);
@@ -425,14 +427,14 @@ session_ticket_recv_params(gnutls_session_t session,
do not want to send it, and a negative number on failure.
*/
static int
-session_ticket_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+session_ticket_send_params(gnutls_session_t session, gnutls_buffer_st * extdata)
{
session_ticket_ext_st *priv = NULL;
gnutls_ext_priv_data_t epriv;
int ret;
- if (session->internals.flags & (GNUTLS_NO_TICKETS | GNUTLS_NO_TICKETS_TLS12))
+ if (session->
+ internals.flags & (GNUTLS_NO_TICKETS | GNUTLS_NO_TICKETS_TLS12))
return 0;
if (session->security_parameters.entity == GNUTLS_SERVER) {
@@ -442,8 +444,8 @@ session_ticket_send_params(gnutls_session_t session,
} else {
ret =
_gnutls_hello_ext_get_resumed_priv(session,
- GNUTLS_EXTENSION_SESSION_TICKET,
- &epriv);
+ GNUTLS_EXTENSION_SESSION_TICKET,
+ &epriv);
if (ret >= 0)
priv = epriv;
@@ -458,8 +460,7 @@ session_ticket_send_params(gnutls_session_t session,
if (priv->session_ticket_len > 0) {
ret =
_gnutls_buffer_append_data(extdata,
- priv->
- session_ticket,
+ priv->session_ticket,
priv->
session_ticket_len);
if (ret < 0)
@@ -471,7 +472,6 @@ session_ticket_send_params(gnutls_session_t session,
return 0;
}
-
static void session_ticket_deinit_data(gnutls_ext_priv_data_t epriv)
{
session_ticket_ext_st *priv = epriv;
@@ -486,8 +486,7 @@ session_ticket_pack(gnutls_ext_priv_data_t epriv, gnutls_buffer_st * ps)
session_ticket_ext_st *priv = epriv;
int ret;
- BUFFER_APPEND_PFX4(ps, priv->session_ticket,
- priv->session_ticket_len);
+ BUFFER_APPEND_PFX4(ps, priv->session_ticket, priv->session_ticket_len);
return 0;
}
@@ -515,13 +514,11 @@ session_ticket_unpack(gnutls_buffer_st * ps, gnutls_ext_priv_data_t * _priv)
return 0;
- error:
+ error:
gnutls_free(priv);
return ret;
}
-
-
/**
* gnutls_session_ticket_key_generate:
* @key: is a pointer to a #gnutls_datum_t which will contain a newly
@@ -610,7 +607,8 @@ gnutls_session_ticket_enable_server(gnutls_session_t session,
{
int ret;
- if (!session || !key || key->size != TICKET_MASTER_KEY_SIZE || !key->data) {
+ if (!session || !key || key->size != TICKET_MASTER_KEY_SIZE
+ || !key->data) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
@@ -624,8 +622,7 @@ gnutls_session_ticket_enable_server(gnutls_session_t session,
return 0;
}
-void
-_gnutls_session_ticket_disable_server(gnutls_session_t session)
+void _gnutls_session_ticket_disable_server(gnutls_session_t session)
{
session->internals.flags |= GNUTLS_NO_TICKETS;
}
@@ -675,10 +672,10 @@ int _gnutls_send_new_session_ticket(gnutls_session_t session, int again)
* purposes than the TLS1.0 session ID. Ensure that there is an internally
* set value which the server will see on the original and resumed sessions */
if (!session->internals.resumed) {
- ret = _gnutls_generate_session_id(session->security_parameters.
- session_id,
- &session->security_parameters.
- session_id_size);
+ ret =
+ _gnutls_generate_session_id
+ (session->security_parameters.session_id,
+ &session->security_parameters.session_id_size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -696,7 +693,9 @@ int _gnutls_send_new_session_ticket(gnutls_session_t session, int again)
}
/* Generate an encrypted ticket */
- ret = _gnutls_encrypt_session_ticket(session, &state, &ticket_data);
+ ret =
+ _gnutls_encrypt_session_ticket(session, &state,
+ &ticket_data);
session->security_parameters.epoch_write = epoch_saved;
_gnutls_free_datum(&state);
if (ret < 0) {
@@ -705,8 +704,7 @@ int _gnutls_send_new_session_ticket(gnutls_session_t session, int again)
}
bufel =
- _gnutls_handshake_alloc(session,
- 4 + 2 + ticket_data.size);
+ _gnutls_handshake_alloc(session, 4 + 2 + ticket_data.size);
if (!bufel) {
gnutls_assert();
_gnutls_free_datum(&ticket_data);
@@ -762,10 +760,13 @@ int _gnutls_recv_new_session_ticket(gnutls_session_t session)
mbuffer_st *bufel = NULL;
have = gnutls_record_check_pending(session) +
- record_check_unprocessed(session);
+ record_check_unprocessed(session);
if (have != 0) {
- bufel = _mbuffer_head_get_first(&session->internals.record_buffer, NULL);
+ bufel =
+ _mbuffer_head_get_first(&session->
+ internals.record_buffer,
+ NULL);
}
if (have == 0 || (bufel && bufel->type != GNUTLS_HANDSHAKE)) {
@@ -784,14 +785,12 @@ int _gnutls_recv_new_session_ticket(gnutls_session_t session)
p = buf.data;
data_size = buf.length;
- DECR_LENGTH_COM(data_size, 4, ret =
- GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
+ DECR_LENGTH_COM(data_size, 4, ret = GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
goto error);
/* skip over lifetime hint */
p += 4;
- DECR_LENGTH_COM(data_size, 2, ret =
- GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
+ DECR_LENGTH_COM(data_size, 2, ret = GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
goto error);
ticket_len = _gnutls_read_uint16(p);
p += 2;
@@ -822,8 +821,7 @@ int _gnutls_recv_new_session_ticket(gnutls_session_t session)
/* Discard the current session ID. (RFC5077 3.4) */
ret =
- _gnutls_generate_session_id(session->security_parameters.
- session_id,
+ _gnutls_generate_session_id(session->security_parameters.session_id,
&session->security_parameters.
session_id_size);
if (ret < 0) {
@@ -834,15 +832,13 @@ int _gnutls_recv_new_session_ticket(gnutls_session_t session)
}
ret = 0;
- _gnutls_handshake_log
- ("HSK[%p]: received session ticket\n", session);
+ _gnutls_handshake_log("HSK[%p]: received session ticket\n", session);
session->internals.hsk_flags |= HSK_TICKET_RECEIVED;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SESSION_TICKET,
- epriv);
+ GNUTLS_EXTENSION_SESSION_TICKET, epriv);
- error:
+ error:
_gnutls_buffer_clear(&buf);
return ret;
diff --git a/lib/ext/session_ticket.h b/lib/ext/session_ticket.h
index 660c9d3def..abc1c06616 100644
--- a/lib/ext/session_ticket.h
+++ b/lib/ext/session_ticket.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_LIB_EXT_SESSION_TICKET_H
-#define GNUTLS_LIB_EXT_SESSION_TICKET_H
+# define GNUTLS_LIB_EXT_SESSION_TICKET_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_session_ticket;
@@ -31,11 +31,11 @@ int _gnutls_send_new_session_ticket(gnutls_session_t session, int again);
int _gnutls_recv_new_session_ticket(gnutls_session_t session);
int _gnutls_encrypt_session_ticket(gnutls_session_t session,
- const gnutls_datum_t *state,
- gnutls_datum_t *ticket_data);
+ const gnutls_datum_t * state,
+ gnutls_datum_t * ticket_data);
int _gnutls_decrypt_session_ticket(gnutls_session_t session,
- const gnutls_datum_t *ticket_data,
- gnutls_datum_t *state);
+ const gnutls_datum_t * ticket_data,
+ gnutls_datum_t * state);
void _gnutls_session_ticket_disable_server(gnutls_session_t session);
-#endif /* GNUTLS_LIB_EXT_SESSION_TICKET_H */
+#endif /* GNUTLS_LIB_EXT_SESSION_TICKET_H */
diff --git a/lib/ext/signature.c b/lib/ext/signature.c
index bb350f5863..98aa80f8d3 100644
--- a/lib/ext/signature.c
+++ b/lib/ext/signature.c
@@ -40,7 +40,7 @@
* Patch the extension for them.
*/
#ifdef ENABLE_GOST
-#define GOST_SIG_FIXUP_SCHANNEL
+# define GOST_SIG_FIXUP_SCHANNEL
#endif
static int _gnutls_signature_algorithm_recv_params(gnutls_session_t
@@ -60,7 +60,9 @@ const hello_ext_entry_st ext_mod_sig = {
.name = "Signature Algorithms",
.tls_id = 13,
.gid = GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO,
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
.recv_func = _gnutls_signature_algorithm_recv_params,
@@ -87,7 +89,7 @@ _gnutls_sign_algorithm_write_params(gnutls_session_t session,
uint8_t *p;
unsigned int len, i;
const sign_algorithm_st *aid, *prev = NULL;
- uint8_t buffer[MAX_ALGOS*2];
+ uint8_t buffer[MAX_ALGOS * 2];
p = buffer;
len = 0;
@@ -96,19 +98,22 @@ _gnutls_sign_algorithm_write_params(gnutls_session_t session,
* limited duplicate detection, and does not add twice the same
* AID */
- for (i=0;i<session->internals.priorities->sigalg.size;i++) {
+ for (i = 0; i < session->internals.priorities->sigalg.size; i++) {
aid = &session->internals.priorities->sigalg.entry[i]->aid;
if (HAVE_UNKNOWN_SIGAID(aid))
continue;
- if (prev && prev->id[0] == aid->id[0] && prev->id[1] == aid->id[1])
+ if (prev && prev->id[0] == aid->id[0]
+ && prev->id[1] == aid->id[1])
continue;
/* Ignore non-GOST sign types for CertReq */
if (session->security_parameters.cs &&
- _gnutls_kx_is_vko_gost(session->security_parameters.cs->kx_algorithm) &&
- !_sign_is_gost(session->internals.priorities->sigalg.entry[i]))
+ _gnutls_kx_is_vko_gost(session->security_parameters.
+ cs->kx_algorithm)
+ && !_sign_is_gost(session->internals.priorities->
+ sigalg.entry[i]))
continue;
_gnutls_handshake_log
@@ -132,7 +137,6 @@ _gnutls_sign_algorithm_write_params(gnutls_session_t session,
return _gnutls_buffer_append_data_prefix(extdata, 16, buffer, len);
}
-
/* Parses the Signature Algorithm structure and stores data into
* session->security_parameters.extensions.
*/
@@ -148,7 +152,7 @@ _gnutls_sign_algorithm_parse_data(gnutls_session_t session,
if (data_size == 0 || data_size % 2 != 0)
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
- if (ver == NULL) { /* assume TLS 1.2 semantics */
+ if (ver == NULL) { /* assume TLS 1.2 semantics */
ver = version_to_entry(GNUTLS_TLS1_2);
if (unlikely(ver == NULL)) {
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
@@ -171,21 +175,20 @@ _gnutls_sign_algorithm_parse_data(gnutls_session_t session,
_gnutls_handshake_log
("EXT[%p]: rcvd signature algo (%d.%d) %s\n", session,
- (int)id[0], (int)id[1],
- gnutls_sign_get_name(sig));
+ (int)id[0], (int)id[1], gnutls_sign_get_name(sig));
if (sig != GNUTLS_SIGN_UNKNOWN) {
if (priv->sign_algorithms_size == MAX_ALGOS)
break;
- priv->sign_algorithms[priv->
- sign_algorithms_size++] = sig;
+ priv->sign_algorithms[priv->sign_algorithms_size++] =
+ sig;
}
}
epriv = priv;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
- epriv);
+ GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
+ epriv);
return 0;
}
@@ -201,8 +204,7 @@ _gnutls_sign_algorithm_parse_data(gnutls_session_t session,
static int
_gnutls_signature_algorithm_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size)
+ const uint8_t * data, size_t data_size)
{
int ret;
@@ -225,18 +227,21 @@ _gnutls_signature_algorithm_recv_params(gnutls_session_t session,
DECR_LEN(data_size, len);
if (data_size > 0)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
ret =
_gnutls_sign_algorithm_parse_data(session,
- data + 2,
- len);
+ data + 2, len);
if (ret < 0) {
gnutls_assert();
return ret;
}
} else {
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
}
}
@@ -261,7 +266,8 @@ _gnutls_signature_algorithm_send_params(gnutls_session_t session,
&& _gnutls_version_has_selectable_sighash(ver)) {
if (session->internals.priorities->sigalg.size > 0) {
ret =
- _gnutls_sign_algorithm_write_params(session, extdata);
+ _gnutls_sign_algorithm_write_params(session,
+ extdata);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -274,8 +280,7 @@ _gnutls_signature_algorithm_send_params(gnutls_session_t session,
}
#ifdef GOST_SIG_FIXUP_SCHANNEL
-static bool
-is_gost_sig_present(sig_ext_st *priv)
+static bool is_gost_sig_present(sig_ext_st * priv)
{
unsigned i;
const gnutls_sign_entry_st *se;
@@ -320,8 +325,8 @@ _gnutls_session_get_sign_algo(gnutls_session_t session,
ret =
_gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
- &epriv);
+ GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
+ &epriv);
if (ret < 0)
priv = NULL;
else
@@ -341,7 +346,9 @@ _gnutls_session_get_sign_algo(gnutls_session_t session,
!_gnutls_version_has_selectable_sighash(ver))) {
gnutls_digest_algorithm_t dig;
- _gnutls_handshake_log("EXT[%p]: GOST KX, but no GOST SigAlgs received, patching up.", session);
+ _gnutls_handshake_log
+ ("EXT[%p]: GOST KX, but no GOST SigAlgs received, patching up.",
+ session);
if (cert_algo == GNUTLS_PK_GOST_01)
dig = GNUTLS_DIG_GOSTR_94;
@@ -354,7 +361,8 @@ _gnutls_session_get_sign_algo(gnutls_session_t session,
ret = gnutls_pk_to_sign(cert_algo, dig);
- if (!client_cert && _gnutls_session_sign_algo_enabled(session, ret) < 0)
+ if (!client_cert
+ && _gnutls_session_sign_algo_enabled(session, ret) < 0)
goto fail;
return ret;
}
@@ -364,21 +372,22 @@ _gnutls_session_get_sign_algo(gnutls_session_t session,
/* none set, allow SHA-1 only */
ret = gnutls_pk_to_sign(cert_algo, GNUTLS_DIG_SHA1);
- if (!client_cert && _gnutls_session_sign_algo_enabled(session, ret) < 0)
+ if (!client_cert
+ && _gnutls_session_sign_algo_enabled(session, ret) < 0)
goto fail;
return ret;
}
-
-
for (i = 0; i < priv->sign_algorithms_size; i++) {
se = _gnutls_sign_to_entry(priv->sign_algorithms[i]);
if (se == NULL)
continue;
- _gnutls_handshake_log("checking cert compat with %s\n", se->name);
+ _gnutls_handshake_log("checking cert compat with %s\n",
+ se->name);
- if (_gnutls_privkey_compatible_with_sig(privkey, priv->sign_algorithms[i]) == 0)
+ if (_gnutls_privkey_compatible_with_sig
+ (privkey, priv->sign_algorithms[i]) == 0)
continue;
if (sign_supports_cert_pk_algorithm(se, cert_algo) != 0) {
@@ -398,7 +407,8 @@ _gnutls_session_get_sign_algo(gnutls_session_t session,
* using algorithms we don't always enable by default (e.g., DSA-SHA1),
* continue and sign with it. */
if (client_cert) {
- _gnutls_audit_log(session, "No shared signature schemes with peer for client certificate (%s). Is the certificate a legacy one?\n",
+ _gnutls_audit_log(session,
+ "No shared signature schemes with peer for client certificate (%s). Is the certificate a legacy one?\n",
gnutls_pk_get_name(cert_algo));
}
@@ -442,7 +452,8 @@ _gnutls_session_sign_algo_enabled(gnutls_session_t session,
}
disallowed:
- _gnutls_handshake_log("Signature algorithm %s is not enabled\n", gnutls_sign_algorithm_get_name(sig));
+ _gnutls_handshake_log("Signature algorithm %s is not enabled\n",
+ gnutls_sign_algorithm_get_name(sig));
return GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM;
}
@@ -452,8 +463,7 @@ static void signature_algorithms_deinit_data(gnutls_ext_priv_data_t priv)
}
static int
-signature_algorithms_pack(gnutls_ext_priv_data_t epriv,
- gnutls_buffer_st * ps)
+signature_algorithms_pack(gnutls_ext_priv_data_t epriv, gnutls_buffer_st * ps)
{
sig_ext_st *priv = epriv;
int ret, i;
@@ -489,13 +499,11 @@ signature_algorithms_unpack(gnutls_buffer_st * ps,
return 0;
- error:
+ error:
gnutls_free(priv);
return ret;
}
-
-
/**
* gnutls_sign_algorithm_get_requested:
* @session: is a #gnutls_session_t type.
@@ -519,8 +527,7 @@ signature_algorithms_unpack(gnutls_buffer_st * ps,
**/
int
gnutls_sign_algorithm_get_requested(gnutls_session_t session,
- size_t indx,
- gnutls_sign_algorithm_t * algo)
+ size_t indx, gnutls_sign_algorithm_t * algo)
{
const version_entry_st *ver = get_version(session);
sig_ext_st *priv;
@@ -532,8 +539,8 @@ gnutls_sign_algorithm_get_requested(gnutls_session_t session,
ret =
_gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
- &epriv);
+ GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS,
+ &epriv);
if (ret < 0) {
gnutls_assert();
return ret;
diff --git a/lib/ext/signature.h b/lib/ext/signature.h
index ef42763cfe..071dfd3658 100644
--- a/lib/ext/signature.h
+++ b/lib/ext/signature.h
@@ -21,12 +21,12 @@
*/
#ifndef GNUTLS_LIB_EXT_SIGNATURE_H
-#define GNUTLS_LIB_EXT_SIGNATURE_H
+# define GNUTLS_LIB_EXT_SIGNATURE_H
/* signature algorithms extension
*/
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_sig;
@@ -37,8 +37,7 @@ _gnutls_session_get_sign_algo(gnutls_session_t session,
unsigned client_cert,
gnutls_kx_algorithm_t kx_algorithm);
int _gnutls_sign_algorithm_parse_data(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data, size_t data_size);
int _gnutls_sign_algorithm_write_params(gnutls_session_t session,
gnutls_buffer_st * extdata);
int _gnutls_session_sign_algo_enabled(gnutls_session_t session,
@@ -58,4 +57,4 @@ gnutls_sign_algorithm_set_client(gnutls_session_t session,
session->security_parameters.client_sign_algo = sign;
}
-#endif /* GNUTLS_LIB_EXT_SIGNATURE_H */
+#endif /* GNUTLS_LIB_EXT_SIGNATURE_H */
diff --git a/lib/ext/srp.c b/lib/ext/srp.c
index f236c6443e..bb001e909e 100644
--- a/lib/ext/srp.c
+++ b/lib/ext/srp.c
@@ -25,12 +25,12 @@
#ifdef ENABLE_SRP
-#include "auth.h"
-#include <auth/srp_kx.h>
-#include "errors.h"
-#include "algorithms.h"
-#include <num.h>
-#include <hello_ext.h>
+# include "auth.h"
+# include <auth/srp_kx.h>
+# include "errors.h"
+# include "algorithms.h"
+# include <num.h>
+# include <hello_ext.h>
static int _gnutls_srp_unpack(gnutls_buffer_st * ps,
gnutls_ext_priv_data_t * _priv);
@@ -48,7 +48,9 @@ const hello_ext_entry_st ext_mod_srp = {
.gid = GNUTLS_EXTENSION_SRP,
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO,
.recv_func = _gnutls_srp_recv_params,
.send_func = _gnutls_srp_send_params,
.pack_func = _gnutls_srp_pack,
@@ -57,7 +59,6 @@ const hello_ext_entry_st ext_mod_srp = {
.cannot_be_overriden = 1
};
-
static int
_gnutls_srp_recv_params(gnutls_session_t session, const uint8_t * data,
size_t data_size)
@@ -88,8 +89,7 @@ _gnutls_srp_recv_params(gnutls_session_t session, const uint8_t * data,
epriv = priv;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SRP,
- epriv);
+ GNUTLS_EXTENSION_SRP, epriv);
}
}
return 0;
@@ -102,7 +102,8 @@ static unsigned have_srp_ciphersuites(gnutls_session_t session)
for (j = 0; j < session->internals.priorities->cs.size; j++) {
kx = session->internals.priorities->cs.entry[j]->kx_algorithm;
- if (kx == GNUTLS_KX_SRP || kx == GNUTLS_KX_SRP_RSA || kx == GNUTLS_KX_SRP_DSS)
+ if (kx == GNUTLS_KX_SRP || kx == GNUTLS_KX_SRP_RSA
+ || kx == GNUTLS_KX_SRP_DSS)
return 1;
}
@@ -113,17 +114,15 @@ static unsigned have_srp_ciphersuites(gnutls_session_t session)
* data is allocated locally
*/
static int
-_gnutls_srp_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+_gnutls_srp_send_params(gnutls_session_t session, gnutls_buffer_st * extdata)
{
unsigned len;
int ret;
gnutls_ext_priv_data_t epriv;
srp_ext_st *priv = NULL;
char *username = NULL, *password = NULL;
- gnutls_srp_client_credentials_t cred =
- (gnutls_srp_client_credentials_t)
- _gnutls_get_cred(session, GNUTLS_CRD_SRP);
+ gnutls_srp_client_credentials_t cred = (gnutls_srp_client_credentials_t)
+ _gnutls_get_cred(session, GNUTLS_CRD_SRP);
if (session->security_parameters.entity != GNUTLS_CLIENT)
return 0;
@@ -145,9 +144,7 @@ _gnutls_srp_send_params(gnutls_session_t session,
ret =
_gnutls_buffer_append_data_prefix(extdata, 8,
- cred->
- username,
- len);
+ cred->username, len);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -167,16 +164,14 @@ _gnutls_srp_send_params(gnutls_session_t session,
epriv = priv;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SRP,
- epriv);
+ GNUTLS_EXTENSION_SRP, epriv);
return len + 1;
} else if (cred->get_function != NULL) {
/* Try the callback
*/
- if (cred->
- get_function(session, &username, &password) < 0
+ if (cred->get_function(session, &username, &password) < 0
|| username == NULL || password == NULL) {
gnutls_assert();
return GNUTLS_E_ILLEGAL_SRP_USERNAME;
@@ -189,8 +184,7 @@ _gnutls_srp_send_params(gnutls_session_t session,
ret =
_gnutls_buffer_append_data_prefix(extdata, 8,
- username,
- len);
+ username, len);
if (ret < 0) {
ret = gnutls_assert_val(ret);
goto cleanup;
@@ -198,14 +192,13 @@ _gnutls_srp_send_params(gnutls_session_t session,
epriv = priv;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SRP,
- epriv);
+ GNUTLS_EXTENSION_SRP, epriv);
return len + 1;
}
return 0;
- cleanup:
+ cleanup:
gnutls_free(username);
gnutls_free(password);
gnutls_free(priv);
@@ -222,8 +215,7 @@ static void _gnutls_srp_deinit_data(gnutls_ext_priv_data_t epriv)
gnutls_free(priv);
}
-static int
-_gnutls_srp_pack(gnutls_ext_priv_data_t epriv, gnutls_buffer_st * ps)
+static int _gnutls_srp_pack(gnutls_ext_priv_data_t epriv, gnutls_buffer_st * ps)
{
srp_ext_st *priv = epriv;
int ret;
@@ -259,19 +251,18 @@ _gnutls_srp_unpack(gnutls_buffer_st * ps, gnutls_ext_priv_data_t * _priv)
BUFFER_POP_DATUM(ps, &username);
BUFFER_POP_DATUM(ps, &password);
- priv->username = (char *) username.data;
- priv->password = (char *) password.data;
+ priv->username = (char *)username.data;
+ priv->password = (char *)password.data;
epriv = priv;
*_priv = epriv;
return 0;
- error:
+ error:
_gnutls_free_datum(&username);
_gnutls_free_datum(&password);
return ret;
}
-
#endif /* ENABLE_SRP */
diff --git a/lib/ext/srp.h b/lib/ext/srp.h
index fd7576fef7..67398ba7b4 100644
--- a/lib/ext/srp.h
+++ b/lib/ext/srp.h
@@ -21,14 +21,14 @@
*/
#ifndef GNUTLS_LIB_EXT_SRP_H
-#define GNUTLS_LIB_EXT_SRP_H
+# define GNUTLS_LIB_EXT_SRP_H
-#include <hello_ext.h>
+# include <hello_ext.h>
-#define IS_SRP_KX(kx) ((kx == GNUTLS_KX_SRP || (kx == GNUTLS_KX_SRP_RSA) || \
+# define IS_SRP_KX(kx) ((kx == GNUTLS_KX_SRP || (kx == GNUTLS_KX_SRP_RSA) || \
kx == GNUTLS_KX_SRP_DSS)?1:0)
-#ifdef ENABLE_SRP
+# ifdef ENABLE_SRP
extern const hello_ext_entry_st ext_mod_srp;
@@ -37,6 +37,6 @@ typedef struct {
char *password;
} srp_ext_st;
-#endif
+# endif
-#endif /* GNUTLS_LIB_EXT_SRP_H */
+#endif /* GNUTLS_LIB_EXT_SRP_H */
diff --git a/lib/ext/srtp.c b/lib/ext/srtp.c
index ec9ae31acb..c4e93dae6c 100644
--- a/lib/ext/srtp.c
+++ b/lib/ext/srtp.c
@@ -27,8 +27,7 @@
#include <ext/srtp.h>
static int _gnutls_srtp_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data, size_t data_size);
static int _gnutls_srtp_send_params(gnutls_session_t session,
gnutls_buffer_st * extdata);
@@ -38,13 +37,14 @@ static int _gnutls_srtp_pack(gnutls_ext_priv_data_t _priv,
gnutls_buffer_st * ps);
static void _gnutls_srtp_deinit_data(gnutls_ext_priv_data_t priv);
-
const hello_ext_entry_st ext_mod_srtp = {
.name = "SRTP",
.tls_id = 14,
.gid = GNUTLS_EXTENSION_SRTP,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_EE | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_EE |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.client_parse_point = GNUTLS_EXT_APPLICATION,
.server_parse_point = GNUTLS_EXT_APPLICATION,
.recv_func = _gnutls_srtp_recv_params,
@@ -64,35 +64,29 @@ typedef struct {
static const srtp_profile_st profile_names[] = {
{
- "SRTP_AES128_CM_HMAC_SHA1_80",
- GNUTLS_SRTP_AES128_CM_HMAC_SHA1_80,
- 16, 14
- },
+ "SRTP_AES128_CM_HMAC_SHA1_80",
+ GNUTLS_SRTP_AES128_CM_HMAC_SHA1_80,
+ 16, 14},
{
- "SRTP_AES128_CM_HMAC_SHA1_32",
- GNUTLS_SRTP_AES128_CM_HMAC_SHA1_32,
- 16, 14
- },
+ "SRTP_AES128_CM_HMAC_SHA1_32",
+ GNUTLS_SRTP_AES128_CM_HMAC_SHA1_32,
+ 16, 14},
{
- "SRTP_NULL_HMAC_SHA1_80",
- GNUTLS_SRTP_NULL_HMAC_SHA1_80,
- 16, 14
- },
+ "SRTP_NULL_HMAC_SHA1_80",
+ GNUTLS_SRTP_NULL_HMAC_SHA1_80,
+ 16, 14},
{
- "SRTP_NULL_SHA1_32",
- GNUTLS_SRTP_NULL_HMAC_SHA1_32,
- 16, 14
- },
+ "SRTP_NULL_SHA1_32",
+ GNUTLS_SRTP_NULL_HMAC_SHA1_32,
+ 16, 14},
{
- "SRTP_AEAD_AES_128_GCM",
- GNUTLS_SRTP_AEAD_AES_128_GCM,
- 16, 12
- },
+ "SRTP_AEAD_AES_128_GCM",
+ GNUTLS_SRTP_AEAD_AES_128_GCM,
+ 16, 12},
{
- "SRTP_AEAD_AES_256_GCM",
- GNUTLS_SRTP_AEAD_AES_256_GCM,
- 32, 12
- },
+ "SRTP_AEAD_AES_256_GCM",
+ GNUTLS_SRTP_AEAD_AES_256_GCM,
+ 32, 12},
{
NULL,
0, 0, 0}
@@ -120,8 +114,7 @@ static gnutls_srtp_profile_t find_profile(const char *str, const char *end)
}
while (prof->name != NULL) {
- if (strlen(prof->name) == len
- && !strncmp(str, prof->name, len)) {
+ if (strlen(prof->name) == len && !strncmp(str, prof->name, len)) {
return prof->id;
}
prof++;
@@ -188,8 +181,7 @@ _gnutls_srtp_recv_params(gnutls_session_t session,
uint16_t profile;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP, &epriv);
if (ret < 0)
return 0;
@@ -200,8 +192,7 @@ _gnutls_srtp_recv_params(gnutls_session_t session,
p += 2;
if (len + 1 > data_size)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
if (session->security_parameters.entity == GNUTLS_SERVER) {
if (len > MAX_PROFILES_IN_SRTP_EXTENSION * 2)
@@ -245,8 +236,7 @@ _gnutls_srtp_recv_params(gnutls_session_t session,
}
static int
-_gnutls_srtp_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+_gnutls_srtp_send_params(gnutls_session_t session, gnutls_buffer_st * extdata)
{
unsigned i;
int total_size = 0, ret;
@@ -254,8 +244,7 @@ _gnutls_srtp_send_params(gnutls_session_t session,
gnutls_ext_priv_data_t epriv;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP, &epriv);
if (ret < 0)
return 0;
@@ -288,8 +277,7 @@ _gnutls_srtp_send_params(gnutls_session_t session,
for (i = 0; i < priv->profiles_size; i++) {
ret =
_gnutls_buffer_append_prefix(extdata, 16,
- priv->
- profiles[i]);
+ priv->profiles[i]);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -328,8 +316,7 @@ gnutls_srtp_get_selected_profile(gnutls_session_t session,
gnutls_ext_priv_data_t epriv;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP, &epriv);
if (ret < 0) {
gnutls_assert();
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
@@ -367,19 +354,14 @@ int gnutls_srtp_get_mki(gnutls_session_t session, gnutls_datum_t * mki)
gnutls_ext_priv_data_t epriv;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP, &epriv);
if (ret < 0)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
priv = epriv;
if (priv->mki_received == 0)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
mki->data = priv->mki;
mki->size = priv->mki_size;
@@ -400,16 +382,14 @@ int gnutls_srtp_get_mki(gnutls_session_t session, gnutls_datum_t * mki)
*
* Since 3.1.4
**/
-int
-gnutls_srtp_set_mki(gnutls_session_t session, const gnutls_datum_t * mki)
+int gnutls_srtp_set_mki(gnutls_session_t session, const gnutls_datum_t * mki)
{
int ret;
srtp_ext_st *priv;
gnutls_ext_priv_data_t epriv;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP, &epriv);
if (ret < 0) {
priv = gnutls_calloc(1, sizeof(*priv));
if (priv == NULL) {
@@ -418,7 +398,7 @@ gnutls_srtp_set_mki(gnutls_session_t session, const gnutls_datum_t * mki)
}
epriv = priv;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SRTP, epriv);
+ GNUTLS_EXTENSION_SRTP, epriv);
} else
priv = epriv;
@@ -445,16 +425,14 @@ gnutls_srtp_set_mki(gnutls_session_t session, const gnutls_datum_t * mki)
* Since 3.1.4
**/
int
-gnutls_srtp_set_profile(gnutls_session_t session,
- gnutls_srtp_profile_t profile)
+gnutls_srtp_set_profile(gnutls_session_t session, gnutls_srtp_profile_t profile)
{
int ret;
srtp_ext_st *priv;
gnutls_ext_priv_data_t epriv;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP, &epriv);
if (ret < 0) {
priv = gnutls_calloc(1, sizeof(*priv));
if (priv == NULL) {
@@ -463,7 +441,7 @@ gnutls_srtp_set_profile(gnutls_session_t session,
}
epriv = priv;
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SRTP, epriv);
+ GNUTLS_EXTENSION_SRTP, epriv);
} else
priv = epriv;
@@ -501,8 +479,7 @@ gnutls_srtp_set_profile_direct(gnutls_session_t session,
gnutls_srtp_profile_t id;
ret =
- _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP,
- &epriv);
+ _gnutls_hello_ext_get_priv(session, GNUTLS_EXTENSION_SRTP, &epriv);
if (ret < 0) {
set = 1;
priv = gnutls_calloc(1, sizeof(*priv));
@@ -536,7 +513,7 @@ gnutls_srtp_set_profile_direct(gnutls_session_t session,
if (set != 0)
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_SRTP, epriv);
+ GNUTLS_EXTENSION_SRTP, epriv);
return 0;
}
@@ -569,8 +546,7 @@ gnutls_srtp_get_keys(gnutls_session_t session,
unsigned int key_material_size,
gnutls_datum_t * client_key,
gnutls_datum_t * client_salt,
- gnutls_datum_t * server_key,
- gnutls_datum_t * server_salt)
+ gnutls_datum_t * server_key, gnutls_datum_t * server_salt)
{
int ret;
const srtp_profile_st *p;
@@ -595,8 +571,7 @@ gnutls_srtp_get_keys(gnutls_session_t session,
ret =
gnutls_prf(session, sizeof("EXTRACTOR-dtls_srtp") - 1,
- "EXTRACTOR-dtls_srtp", 0, 0, NULL, msize,
- key_material);
+ "EXTRACTOR-dtls_srtp", 0, 0, NULL, msize, key_material);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -616,8 +591,7 @@ gnutls_srtp_get_keys(gnutls_session_t session,
}
if (server_salt) {
- server_salt->data =
- km + 2 * p->key_length + p->salt_length;
+ server_salt->data = km + 2 * p->key_length + p->salt_length;
server_salt->size = p->salt_length;
}
@@ -680,7 +654,7 @@ _gnutls_srtp_unpack(gnutls_buffer_st * ps, gnutls_ext_priv_data_t * _priv)
return 0;
- error:
+ error:
gnutls_free(priv);
return ret;
}
diff --git a/lib/ext/srtp.h b/lib/ext/srtp.h
index d05454a477..d08223b90f 100644
--- a/lib/ext/srtp.h
+++ b/lib/ext/srtp.h
@@ -21,13 +21,13 @@
*/
#ifndef GNUTLS_LIB_EXT_SRTP_H
-#define GNUTLS_LIB_EXT_SRTP_H
-#ifndef EXT_SRTP_H
-#define EXT_SRTP_H
+# define GNUTLS_LIB_EXT_SRTP_H
+# ifndef EXT_SRTP_H
+# define EXT_SRTP_H
-#include <hello_ext.h>
+# include <hello_ext.h>
-#define MAX_SRTP_PROFILES 4
+# define MAX_SRTP_PROFILES 4
typedef struct {
gnutls_srtp_profile_t profiles[MAX_SRTP_PROFILES];
@@ -40,6 +40,6 @@ typedef struct {
extern const hello_ext_entry_st ext_mod_srtp;
-#endif
+# endif
-#endif /* GNUTLS_LIB_EXT_SRTP_H */
+#endif /* GNUTLS_LIB_EXT_SRTP_H */
diff --git a/lib/ext/status_request.c b/lib/ext/status_request.c
index 0c6bfaf47c..fe2162f8c8 100644
--- a/lib/ext/status_request.c
+++ b/lib/ext/status_request.c
@@ -65,7 +65,6 @@ typedef struct {
opaque Extensions<0..2^16-1>;
*/
-
static int
client_send(gnutls_session_t session,
gnutls_buffer_st * extdata, status_request_ext_st * priv)
@@ -86,16 +85,14 @@ client_send(gnutls_session_t session,
}
static int
-server_recv(gnutls_session_t session,
- const uint8_t * data, size_t data_size)
+server_recv(gnutls_session_t session, const uint8_t * data, size_t data_size)
{
unsigned rid_bytes = 0;
/* minimum message is type (1) + responder_id_list (2) +
request_extension (2) = 5 */
if (data_size < 5)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
/* We ignore non-ocsp CertificateStatusType. The spec is unclear
what should be done. */
@@ -111,13 +108,12 @@ server_recv(gnutls_session_t session,
rid_bytes = _gnutls_read_uint16(data);
DECR_LEN(data_size, 2);
- /*data += 2;*/
+ /*data += 2; */
/* sanity check only, we don't use any of the data below */
if (data_size < rid_bytes)
- return
- gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
_gnutls_handshake_log("EXT[%p]: OCSP status was requested\n", session);
session->internals.hsk_flags |= HSK_OCSP_REQUESTED;
@@ -125,22 +121,18 @@ server_recv(gnutls_session_t session,
return 0;
}
-
static int
client_recv(gnutls_session_t session,
- status_request_ext_st * priv,
- const uint8_t * data, size_t size)
+ status_request_ext_st * priv, const uint8_t * data, size_t size)
{
if (size != 0)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
else {
priv->expect_cstatus = 1;
return 0;
}
}
-
/*
* Servers return a certificate response along with their certificate
* by sending a "CertificateStatus" message immediately after the
@@ -186,14 +178,19 @@ server_send(gnutls_session_t session,
if (session->internals.selected_ocsp_length > 0) {
if (session->internals.selected_ocsp[0].response.data) {
if (session->internals.selected_ocsp[0].exptime != 0 &&
- (gnutls_time(0) >= session->internals.selected_ocsp[0].exptime)) {
+ (gnutls_time(0) >=
+ session->internals.selected_ocsp[0].exptime)) {
gnutls_assert();
return 0;
}
ret = _gnutls_set_datum(&priv->sresp,
- session->internals.selected_ocsp[0].response.data,
- session->internals.selected_ocsp[0].response.size);
+ session->
+ internals.selected_ocsp[0].
+ response.data,
+ session->
+ internals.selected_ocsp[0].
+ response.size);
if (ret < 0)
return gnutls_assert_val(ret);
return GNUTLS_E_INT_RET_0;
@@ -317,8 +314,7 @@ gnutls_ocsp_status_request_enable_client(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
_gnutls_hello_ext_set_priv(session,
- GNUTLS_EXTENSION_STATUS_REQUEST,
- epriv);
+ GNUTLS_EXTENSION_STATUS_REQUEST, epriv);
session->internals.flags &= ~GNUTLS_NO_STATUS_REQUEST;
if (session->internals.priorities)
@@ -327,7 +323,6 @@ gnutls_ocsp_status_request_enable_client(gnutls_session_t session,
return 0;
}
-
static void _gnutls_status_request_deinit_data(gnutls_ext_priv_data_t epriv)
{
status_request_ext_st *priv = epriv;
@@ -343,8 +338,9 @@ const hello_ext_entry_st ext_mod_status_request = {
.name = "OCSP Status Request",
.tls_id = STATUS_REQUEST_TLS_ID,
.gid = GNUTLS_EXTENSION_STATUS_REQUEST,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.client_parse_point = _GNUTLS_EXT_TLS_POST_CS,
.server_parse_point = _GNUTLS_EXT_TLS_POST_CS,
.recv_func = _gnutls_status_request_recv_params,
@@ -355,8 +351,7 @@ const hello_ext_entry_st ext_mod_status_request = {
/* Functions to be called from handshake */
-int
-_gnutls_send_server_certificate_status(gnutls_session_t session, int again)
+int _gnutls_send_server_certificate_status(gnutls_session_t session, int again)
{
mbuffer_st *bufel = NULL;
uint8_t *data;
@@ -371,8 +366,8 @@ _gnutls_send_server_certificate_status(gnutls_session_t session, int again)
if (again == 0) {
ret =
_gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_STATUS_REQUEST,
- &epriv);
+ GNUTLS_EXTENSION_STATUS_REQUEST,
+ &epriv);
if (ret < 0)
return 0;
@@ -382,8 +377,7 @@ _gnutls_send_server_certificate_status(gnutls_session_t session, int again)
return 0;
data_size = priv->sresp.size + 4;
- bufel =
- _gnutls_handshake_alloc(session, data_size);
+ bufel = _gnutls_handshake_alloc(session, data_size);
if (!bufel) {
_gnutls_free_datum(&priv->sresp);
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -401,7 +395,8 @@ _gnutls_send_server_certificate_status(gnutls_session_t session, int again)
GNUTLS_HANDSHAKE_CERTIFICATE_STATUS);
}
-int _gnutls_parse_ocsp_response(gnutls_session_t session, const uint8_t *data, ssize_t data_size, gnutls_datum_t *resp)
+int _gnutls_parse_ocsp_response(gnutls_session_t session, const uint8_t * data,
+ ssize_t data_size, gnutls_datum_t * resp)
{
int ret;
ssize_t r_size;
@@ -411,8 +406,7 @@ int _gnutls_parse_ocsp_response(gnutls_session_t session, const uint8_t *data, s
/* minimum message is type (1) + response (3) + data */
if (data_size < 4)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
if (data[0] != 0x01) {
gnutls_assert();
@@ -421,22 +415,18 @@ int _gnutls_parse_ocsp_response(gnutls_session_t session, const uint8_t *data, s
return 0;
}
- DECR_LENGTH_RET(data_size, 1,
- GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ DECR_LENGTH_RET(data_size, 1, GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
data++;
- DECR_LENGTH_RET(data_size, 3,
- GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ DECR_LENGTH_RET(data_size, 3, GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
r_size = _gnutls_read_uint24(data);
data += 3;
- DECR_LENGTH_RET(data_size, r_size,
- GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ DECR_LENGTH_RET(data_size, r_size, GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
if (r_size < 1)
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
ret = _gnutls_set_datum(resp, data, r_size);
if (ret < 0)
@@ -454,15 +444,15 @@ int _gnutls_recv_server_certificate_status(gnutls_session_t session)
gnutls_datum_t resp;
status_request_ext_st *priv = NULL;
gnutls_ext_priv_data_t epriv;
- cert_auth_info_t info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ cert_auth_info_t info =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
if (info == NULL)
return 0;
ret =
_gnutls_hello_ext_get_priv(session,
- GNUTLS_EXTENSION_STATUS_REQUEST,
- &epriv);
+ GNUTLS_EXTENSION_STATUS_REQUEST, &epriv);
if (ret < 0)
return 0;
@@ -510,7 +500,7 @@ int _gnutls_recv_server_certificate_status(gnutls_session_t session)
ret = 0;
- error:
+ error:
_gnutls_buffer_clear(&buf);
return ret;
diff --git a/lib/ext/status_request.h b/lib/ext/status_request.h
index dc1d233ea2..c2984d79a7 100644
--- a/lib/ext/status_request.h
+++ b/lib/ext/status_request.h
@@ -21,21 +21,18 @@
*/
#ifndef GNUTLS_LIB_EXT_STATUS_REQUEST_H
-#define GNUTLS_LIB_EXT_STATUS_REQUEST_H
+# define GNUTLS_LIB_EXT_STATUS_REQUEST_H
-#include <hello_ext.h>
+# include <hello_ext.h>
-#define STATUS_REQUEST_TLS_ID 5
+# define STATUS_REQUEST_TLS_ID 5
extern const hello_ext_entry_st ext_mod_status_request;
-int
-_gnutls_send_server_certificate_status(gnutls_session_t session,
- int again);
+int _gnutls_send_server_certificate_status(gnutls_session_t session, int again);
int _gnutls_recv_server_certificate_status(gnutls_session_t session);
-int _gnutls_parse_ocsp_response(gnutls_session_t session, const uint8_t *data,
- ssize_t data_size,
- gnutls_datum_t *resp);
+int _gnutls_parse_ocsp_response(gnutls_session_t session, const uint8_t * data,
+ ssize_t data_size, gnutls_datum_t * resp);
-#endif /* GNUTLS_LIB_EXT_STATUS_REQUEST_H */
+#endif /* GNUTLS_LIB_EXT_STATUS_REQUEST_H */
diff --git a/lib/ext/supported_groups.c b/lib/ext/supported_groups.c
index 56e514a087..821fb0f77d 100644
--- a/lib/ext/supported_groups.c
+++ b/lib/ext/supported_groups.c
@@ -34,13 +34,11 @@
#include "algorithms.h"
#include <gnutls/gnutls.h>
-
static int _gnutls_supported_groups_recv_params(gnutls_session_t session,
- const uint8_t * data,
- size_t data_size);
+ const uint8_t * data,
+ size_t data_size);
static int _gnutls_supported_groups_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata);
-
+ gnutls_buffer_st * extdata);
const hello_ext_entry_st ext_mod_supported_groups = {
.name = "Supported Groups",
@@ -48,8 +46,10 @@ const hello_ext_entry_st ext_mod_supported_groups = {
.gid = GNUTLS_EXTENSION_SUPPORTED_GROUPS,
.client_parse_point = GNUTLS_EXT_TLS,
.server_parse_point = GNUTLS_EXT_TLS,
- .validity = GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_CLIENT_HELLO |
- GNUTLS_EXT_FLAG_EE | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ .validity =
+ GNUTLS_EXT_FLAG_TLS | GNUTLS_EXT_FLAG_DTLS |
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_EE |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
.recv_func = _gnutls_supported_groups_recv_params,
.send_func = _gnutls_supported_groups_send_params,
.pack_func = NULL,
@@ -58,7 +58,6 @@ const hello_ext_entry_st ext_mod_supported_groups = {
.cannot_be_overriden = 1
};
-
static unsigned get_min_dh(gnutls_session_t session)
{
gnutls_certificate_credentials_t cert_cred;
@@ -66,9 +65,15 @@ static unsigned get_min_dh(gnutls_session_t session)
gnutls_anon_server_credentials_t anon_cred;
unsigned level = 0;
- cert_cred = (gnutls_certificate_credentials_t)_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE);
- psk_cred = (gnutls_psk_server_credentials_t)_gnutls_get_cred(session, GNUTLS_CRD_PSK);
- anon_cred = (gnutls_anon_server_credentials_t)_gnutls_get_cred(session, GNUTLS_CRD_ANON);
+ cert_cred =
+ (gnutls_certificate_credentials_t) _gnutls_get_cred(session,
+ GNUTLS_CRD_CERTIFICATE);
+ psk_cred =
+ (gnutls_psk_server_credentials_t) _gnutls_get_cred(session,
+ GNUTLS_CRD_PSK);
+ anon_cred =
+ (gnutls_anon_server_credentials_t) _gnutls_get_cred(session,
+ GNUTLS_CRD_ANON);
if (cert_cred) {
level = cert_cred->dh_sec_param;
@@ -94,7 +99,7 @@ static unsigned get_min_dh(gnutls_session_t session)
*/
static int
_gnutls_supported_groups_recv_params(gnutls_session_t session,
- const uint8_t * data, size_t data_size)
+ const uint8_t * data, size_t data_size)
{
int i;
uint16_t len;
@@ -104,8 +109,8 @@ _gnutls_supported_groups_recv_params(gnutls_session_t session,
unsigned tls_id;
unsigned min_dh;
unsigned j;
- int serv_ec_idx, serv_dh_idx; /* index in server's priority listing */
- int cli_ec_pos, cli_dh_pos; /* position in listing sent by client */
+ int serv_ec_idx, serv_dh_idx; /* index in server's priority listing */
+ int cli_ec_pos, cli_dh_pos; /* position in listing sent by client */
if (session->security_parameters.entity == GNUTLS_CLIENT) {
/* A client shouldn't receive this extension in TLS1.2. It is
@@ -124,7 +129,9 @@ _gnutls_supported_groups_recv_params(gnutls_session_t session,
p += 2;
if (len % 2 != 0)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
DECR_LEN(data_size, len);
@@ -143,25 +150,36 @@ _gnutls_supported_groups_recv_params(gnutls_session_t session,
tls_id = _gnutls_read_uint16(&p[i]);
group = _gnutls_tls_id_to_group(tls_id);
- _gnutls_handshake_log("EXT[%p]: Received group %s (0x%x)\n", session, group?group->name:"unknown", tls_id);
+ _gnutls_handshake_log
+ ("EXT[%p]: Received group %s (0x%x)\n", session,
+ group ? group->name : "unknown", tls_id);
if (group == NULL)
continue;
- if (min_dh > 0 && group->prime && group->prime->size*8 < min_dh)
+ if (min_dh > 0 && group->prime
+ && group->prime->size * 8 < min_dh)
continue;
/* we simulate _gnutls_session_supports_group, but we prioritize if
* %SERVER_PRECEDENCE is given */
- for (j = 0; j < session->internals.priorities->groups.size; j++) {
- if (session->internals.priorities->groups.entry[j]->id == group->id) {
- if (session->internals.priorities->server_precedence) {
+ for (j = 0;
+ j < session->internals.priorities->groups.size;
+ j++) {
+ if (session->internals.priorities->
+ groups.entry[j]->id == group->id) {
+ if (session->internals.
+ priorities->server_precedence) {
if (group->pk == GNUTLS_PK_DH) {
- if (serv_dh_idx != -1 && (int)j > serv_dh_idx)
+ if (serv_dh_idx != -1
+ && (int)j >
+ serv_dh_idx)
break;
serv_dh_idx = j;
cli_dh_pos = i;
} else if (IS_EC(group->pk)) {
- if (serv_ec_idx != -1 && (int)j > serv_ec_idx)
+ if (serv_ec_idx != -1
+ && (int)j >
+ serv_ec_idx)
break;
serv_ec_idx = j;
cli_ec_pos = i;
@@ -187,21 +205,33 @@ _gnutls_supported_groups_recv_params(gnutls_session_t session,
/* serv_dh/ec_pos contain the index of the groups we want to use.
*/
if (serv_dh_idx != -1) {
- session->internals.cand_dh_group = session->internals.priorities->groups.entry[serv_dh_idx];
- session->internals.cand_group = session->internals.cand_dh_group;
+ session->internals.cand_dh_group =
+ session->internals.priorities->
+ groups.entry[serv_dh_idx];
+ session->internals.cand_group =
+ session->internals.cand_dh_group;
}
if (serv_ec_idx != -1) {
- session->internals.cand_ec_group = session->internals.priorities->groups.entry[serv_ec_idx];
- if (session->internals.cand_group == NULL ||
- (session->internals.priorities->server_precedence && serv_ec_idx < serv_dh_idx) ||
- (!session->internals.priorities->server_precedence && cli_ec_pos < cli_dh_pos)) {
- session->internals.cand_group = session->internals.cand_ec_group;
+ session->internals.cand_ec_group =
+ session->internals.priorities->
+ groups.entry[serv_ec_idx];
+ if (session->internals.cand_group == NULL
+ || (session->internals.priorities->server_precedence
+ && serv_ec_idx < serv_dh_idx)
+ || (!session->internals.
+ priorities->server_precedence
+ && cli_ec_pos < cli_dh_pos)) {
+ session->internals.cand_group =
+ session->internals.cand_ec_group;
}
}
if (session->internals.cand_group)
- _gnutls_handshake_log("EXT[%p]: Selected group %s\n", session, session->internals.cand_group->name);
+ _gnutls_handshake_log("EXT[%p]: Selected group %s\n",
+ session,
+ session->internals.
+ cand_group->name);
if (have_ffdhe)
session->internals.hsk_flags |= HSK_HAVE_FFDHE;
@@ -214,7 +244,7 @@ _gnutls_supported_groups_recv_params(gnutls_session_t session,
*/
static int
_gnutls_supported_groups_send_params(gnutls_session_t session,
- gnutls_buffer_st * extdata)
+ gnutls_buffer_st * extdata)
{
unsigned len, i;
int ret;
@@ -226,16 +256,18 @@ _gnutls_supported_groups_send_params(gnutls_session_t session,
len = session->internals.priorities->groups.size;
if (len > 0) {
ret =
- _gnutls_buffer_append_prefix(extdata, 16,
- len * 2);
+ _gnutls_buffer_append_prefix(extdata, 16, len * 2);
if (ret < 0)
return gnutls_assert_val(ret);
for (i = 0; i < len; i++) {
- p = session->internals.priorities->groups.entry[i]->tls_id;
+ p = session->internals.priorities->
+ groups.entry[i]->tls_id;
- _gnutls_handshake_log("EXT[%p]: Sent group %s (0x%x)\n", session,
- session->internals.priorities->groups.entry[i]->name, (unsigned)p);
+ _gnutls_handshake_log
+ ("EXT[%p]: Sent group %s (0x%x)\n", session,
+ session->internals.priorities->
+ groups.entry[i]->name, (unsigned)p);
ret =
_gnutls_buffer_append_prefix(extdata,
@@ -254,9 +286,7 @@ _gnutls_supported_groups_send_params(gnutls_session_t session,
/* Returns 0 if the given ECC curve is allowed in the current
* session. A negative error value is returned otherwise.
*/
-int
-_gnutls_session_supports_group(gnutls_session_t session,
- unsigned int group)
+int _gnutls_session_supports_group(gnutls_session_t session, unsigned int group)
{
unsigned i;
diff --git a/lib/ext/supported_groups.h b/lib/ext/supported_groups.h
index 769b3be8e1..03a47939b8 100644
--- a/lib/ext/supported_groups.h
+++ b/lib/ext/supported_groups.h
@@ -21,14 +21,13 @@
*/
#ifndef GNUTLS_LIB_EXT_SUPPORTED_GROUPS_H
-#define GNUTLS_LIB_EXT_SUPPORTED_GROUPS_H
+# define GNUTLS_LIB_EXT_SUPPORTED_GROUPS_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_supported_groups;
int
-_gnutls_session_supports_group(gnutls_session_t session,
- unsigned int group);
+_gnutls_session_supports_group(gnutls_session_t session, unsigned int group);
-#endif /* GNUTLS_LIB_EXT_SUPPORTED_GROUPS_H */
+#endif /* GNUTLS_LIB_EXT_SUPPORTED_GROUPS_H */
diff --git a/lib/ext/supported_versions.c b/lib/ext/supported_versions.c
index 157a0a77ee..168b9b77e3 100644
--- a/lib/ext/supported_versions.c
+++ b/lib/ext/supported_versions.c
@@ -41,9 +41,11 @@ const hello_ext_entry_st ext_mod_supported_versions = {
.name = "Supported Versions",
.tls_id = 43,
.gid = GNUTLS_EXTENSION_SUPPORTED_VERSIONS,
- .validity = GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO |
- GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO | GNUTLS_EXT_FLAG_HRR|GNUTLS_EXT_FLAG_TLS,
- .client_parse_point = GNUTLS_EXT_VERSION_NEG, /* force parsing prior to EXT_TLS extensions */
+ .validity =
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO |
+ GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO | GNUTLS_EXT_FLAG_HRR |
+ GNUTLS_EXT_FLAG_TLS,
+ .client_parse_point = GNUTLS_EXT_VERSION_NEG, /* force parsing prior to EXT_TLS extensions */
.server_parse_point = GNUTLS_EXT_VERSION_NEG,
.recv_func = supported_versions_recv_params,
.send_func = supported_versions_send_params,
@@ -80,12 +82,16 @@ supported_versions_recv_params(gnutls_session_t session,
data++;
if (bytes % 2 == 1)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
DECR_LEN(data_size, bytes);
if (data_size != 0)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
while (bytes > 0) {
major = data[0];
@@ -96,7 +102,8 @@ supported_versions_recv_params(gnutls_session_t session,
_gnutls_handshake_log("EXT[%p]: Found version: %d.%d\n",
session, (int)major, (int)minor);
- if (!_gnutls_nversion_is_supported(session, major, minor))
+ if (!_gnutls_nversion_is_supported
+ (session, major, minor))
continue;
/* Prefer the latest possible version
@@ -112,7 +119,9 @@ supported_versions_recv_params(gnutls_session_t session,
}
if (!cli_vers)
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
session->security_parameters.pversion = cli_vers;
@@ -131,7 +140,7 @@ supported_versions_recv_params(gnutls_session_t session,
}
return 0;
- } else { /* client */
+ } else { /* client */
if (!have_creds_for_tls13(session)) {
/* if we don't have certificate or PSK (which work under TLS1.3)
@@ -144,14 +153,18 @@ supported_versions_recv_params(gnutls_session_t session,
DECR_LEN(data_size, 2);
if (data_size != 0)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
major = data[0];
minor = data[1];
vers = nversion_to_entry(major, minor);
if (!vers)
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
set_adv_version(session, major, minor);
@@ -159,7 +172,9 @@ supported_versions_recv_params(gnutls_session_t session,
session, (int)major, (int)minor);
if (!vers->tls13_sem)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
ret = _gnutls_negotiate_version(session, major, minor, 1);
if (ret < 0) {
@@ -202,17 +217,21 @@ supported_versions_send_params(gnutls_session_t session,
if (vers && !vers->tls13_sem)
return 0;
- ret = _gnutls_write_supported_versions(session, versions, sizeof(versions));
- if (ret <= 0) /* if this function doesn't succeed do not send anything */
+ ret =
+ _gnutls_write_supported_versions(session, versions,
+ sizeof(versions));
+ if (ret <= 0) /* if this function doesn't succeed do not send anything */
return 0;
versions_size = ret;
- ret = _gnutls_buffer_append_data_prefix(extdata, 8, versions, versions_size);
+ ret =
+ _gnutls_buffer_append_data_prefix(extdata, 8, versions,
+ versions_size);
if (ret < 0)
return gnutls_assert_val(ret);
- return versions_size+2;
+ return versions_size + 2;
} else {
vers = get_version(session);
if (unlikely(vers == NULL))
diff --git a/lib/ext/supported_versions.h b/lib/ext/supported_versions.h
index f7dfb9ebb9..494e80c520 100644
--- a/lib/ext/supported_versions.h
+++ b/lib/ext/supported_versions.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXT_SUPPORTED_VERSIONS_H
-#define GNUTLS_LIB_EXT_SUPPORTED_VERSIONS_H
+# define GNUTLS_LIB_EXT_SUPPORTED_VERSIONS_H
-#include <hello_ext.h>
+# include <hello_ext.h>
extern const hello_ext_entry_st ext_mod_supported_versions;
-#endif /* GNUTLS_LIB_EXT_SUPPORTED_VERSIONS_H */
+#endif /* GNUTLS_LIB_EXT_SUPPORTED_VERSIONS_H */
diff --git a/lib/extras/hex.h b/lib/extras/hex.h
index 5fcac98914..731c291157 100644
--- a/lib/extras/hex.h
+++ b/lib/extras/hex.h
@@ -1,11 +1,11 @@
/* CC0 (Public domain) - see LICENSE file for details */
#ifndef GNUTLS_LIB_EXTRAS_HEX_H
-#define GNUTLS_LIB_EXTRAS_HEX_H
+# define GNUTLS_LIB_EXTRAS_HEX_H
-#include "config.h"
-#include <stdbool.h>
-#include <stdlib.h>
+# include "config.h"
+# include <stdbool.h>
+# include <stdlib.h>
/**
* hex_decode - Unpack a hex string.
@@ -74,4 +74,4 @@ static inline size_t hex_data_size(size_t slen)
return slen / 2;
}
-#endif /* GNUTLS_LIB_EXTRAS_HEX_H */
+#endif /* GNUTLS_LIB_EXTRAS_HEX_H */
diff --git a/lib/extras/randomart.c b/lib/extras/randomart.c
index cfd7e1c9db..8ee9d2400a 100644
--- a/lib/extras/randomart.c
+++ b/lib/extras/randomart.c
@@ -84,8 +84,7 @@ char *_gnutls_key_fingerprint_randomart(uint8_t * dgst_raw,
prefix_len = strlen(prefix);
retval =
- gnutls_calloc(1,
- (FLDSIZE_X + 3 + prefix_len) * (FLDSIZE_Y + 2));
+ gnutls_calloc(1, (FLDSIZE_X + 3 + prefix_len) * (FLDSIZE_Y + 2));
if (retval == NULL) {
gnutls_assert();
return NULL;
@@ -133,8 +132,7 @@ char *_gnutls_key_fingerprint_randomart(uint8_t * dgst_raw,
snprintf(retval, FLDSIZE_X + prefix_len, "%s+--[%4s%s]",
prefix, key_type, size_txt);
else
- snprintf(retval, FLDSIZE_X, "+--[%4s%s]", key_type,
- size_txt);
+ snprintf(retval, FLDSIZE_X, "+--[%4s%s]", key_type, size_txt);
p = strchr(retval, '\0');
/* output upper border */
diff --git a/lib/extras/randomart.h b/lib/extras/randomart.h
index b468eb4e80..2bca9d0dc7 100644
--- a/lib/extras/randomart.h
+++ b/lib/extras/randomart.h
@@ -1,5 +1,5 @@
#ifndef GNUTLS_LIB_EXTRAS_RANDOMART_H
-#define GNUTLS_LIB_EXTRAS_RANDOMART_H
+# define GNUTLS_LIB_EXTRAS_RANDOMART_H
char *_gnutls_key_fingerprint_randomart(uint8_t * dgst_raw,
u_int dgst_raw_len,
@@ -7,4 +7,4 @@ char *_gnutls_key_fingerprint_randomart(uint8_t * dgst_raw,
unsigned int key_size,
const char *prefix);
-#endif /* GNUTLS_LIB_EXTRAS_RANDOMART_H */
+#endif /* GNUTLS_LIB_EXTRAS_RANDOMART_H */
diff --git a/lib/extv.c b/lib/extv.c
index 0c0c46f326..e75a4386dc 100644
--- a/lib/extv.c
+++ b/lib/extv.c
@@ -46,9 +46,9 @@ int _gnutls_extv_parse(void *ctx,
DECR_LENGTH_RET(data_size, next, GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH);
- if (next == 0 && data_size == 0) /* field is present, but has zero length? Ignore it. */
+ if (next == 0 && data_size == 0) /* field is present, but has zero length? Ignore it. */
return 0;
- else if (data_size > 0) /* forbid unaccounted data */
+ else if (data_size > 0) /* forbid unaccounted data */
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH);
do {
@@ -60,7 +60,8 @@ int _gnutls_extv_parse(void *ctx,
size = _gnutls_read_uint16(&data[pos]);
pos += 2;
- DECR_LENGTH_RET(next, size, GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH);
+ DECR_LENGTH_RET(next, size,
+ GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH);
sdata = &data[pos];
pos += size;
@@ -102,7 +103,7 @@ int _gnutls_extv_parse(void *ctx,
* Since: 3.6.3
**/
int gnutls_ext_raw_parse(void *ctx, gnutls_ext_raw_process_func cb,
- const gnutls_datum_t *data, unsigned int flags)
+ const gnutls_datum_t * data, unsigned int flags)
{
if (flags & GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO) {
size_t size = data->size;
@@ -112,7 +113,9 @@ int gnutls_ext_raw_parse(void *ctx, gnutls_ext_raw_process_func cb,
DECR_LEN(size, HANDSHAKE_SESSION_ID_POS);
if (p[0] != 0x03)
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
p += HANDSHAKE_SESSION_ID_POS;
@@ -138,7 +141,9 @@ int gnutls_ext_raw_parse(void *ctx, gnutls_ext_raw_process_func cb,
p += len;
if (size == 0)
- return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
return _gnutls_extv_parse(ctx, cb, p, size);
} else if (flags & GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO) {
@@ -149,7 +154,9 @@ int gnutls_ext_raw_parse(void *ctx, gnutls_ext_raw_process_func cb,
DECR_LEN(size, HANDSHAKE_SESSION_ID_POS);
if (p[0] != 254)
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
p += HANDSHAKE_SESSION_ID_POS;
@@ -182,7 +189,9 @@ int gnutls_ext_raw_parse(void *ctx, gnutls_ext_raw_process_func cb,
p += len;
if (size == 0)
- return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
return _gnutls_extv_parse(ctx, cb, p, size);
}
@@ -197,10 +206,9 @@ int gnutls_ext_raw_parse(void *ctx, gnutls_ext_raw_process_func cb,
* * On success the number of bytes appended (always positive), or zero if not sent
* * On failure, a negative error code.
*/
-int _gnutls_extv_append(gnutls_buffer_st *buf,
+int _gnutls_extv_append(gnutls_buffer_st * buf,
uint16_t tls_id,
- void *ctx,
- int (*cb)(void *ctx, gnutls_buffer_st *buf))
+ void *ctx, int (*cb)(void *ctx, gnutls_buffer_st * buf))
{
int size_pos, appended, ret;
size_t size_prev;
@@ -230,8 +238,7 @@ int _gnutls_extv_append(gnutls_buffer_st *buf,
appended = 0;
/* write the real size */
- _gnutls_write_uint16(appended,
- &buf->data[size_pos]);
+ _gnutls_write_uint16(appended, &buf->data[size_pos]);
} else if (appended == 0) {
buf->length -= 4; /* reset type and size */
return 0;
@@ -239,4 +246,3 @@ int _gnutls_extv_append(gnutls_buffer_st *buf,
return appended + 4;
}
-
diff --git a/lib/extv.h b/lib/extv.h
index 3c0bd33598..35e6d6acef 100644
--- a/lib/extv.h
+++ b/lib/extv.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_EXTV_H
-#define GNUTLS_LIB_EXTV_H
+# define GNUTLS_LIB_EXTV_H
-#include <gnutls/gnutls.h>
-#include "str.h"
+# include <gnutls/gnutls.h>
+# include "str.h"
/* Iterates through all TLS-type extensions in data, and
* calls the callback function for each of them. The ctx, flags
@@ -34,7 +34,7 @@ int _gnutls_extv_parse(void *ctx,
const uint8_t * data, int data_size);
inline static
-int _gnutls_extv_append_init(gnutls_buffer_st *buf)
+int _gnutls_extv_append_init(gnutls_buffer_st * buf)
{
unsigned pos;
int ret;
@@ -52,11 +52,12 @@ int _gnutls_extv_append_init(gnutls_buffer_st *buf)
* @is_hello: should be true for client and server hello messages.
*/
inline static
-int _gnutls_extv_append_final(gnutls_buffer_st *buf, unsigned init, unsigned is_hello)
+int _gnutls_extv_append_final(gnutls_buffer_st * buf, unsigned init,
+ unsigned is_hello)
{
unsigned size = buf->length - init - 2;
- if (size > UINT16_MAX) /* sent too many extensions */
+ if (size > UINT16_MAX) /* sent too many extensions */
return gnutls_assert_val(GNUTLS_E_HANDSHAKE_TOO_LARGE);
if (size > 0)
@@ -70,12 +71,9 @@ int _gnutls_extv_append_final(gnutls_buffer_st *buf, unsigned init, unsigned is_
return 0;
}
-typedef int (*extv_append_func)(void *ctx, gnutls_buffer_st *buf);
+typedef int (*extv_append_func)(void *ctx, gnutls_buffer_st * buf);
-int _gnutls_extv_append(gnutls_buffer_st *buf,
- uint16_t tls_id,
- void *ctx,
- extv_append_func cb);
+int _gnutls_extv_append(gnutls_buffer_st * buf,
+ uint16_t tls_id, void *ctx, extv_append_func cb);
-
-#endif /* GNUTLS_LIB_EXTV_H */
+#endif /* GNUTLS_LIB_EXTV_H */
diff --git a/lib/file.c b/lib/file.c
index 3ded84913b..4812de2a3f 100644
--- a/lib/file.c
+++ b/lib/file.c
@@ -59,7 +59,7 @@ int gnutls_load_file(const char *filename, gnutls_datum_t * data)
{
size_t len;
- data->data = (void *) read_file(filename, RF_BINARY, &len);
+ data->data = (void *)read_file(filename, RF_BINARY, &len);
if (data->data == NULL)
return GNUTLS_E_FILE_ERROR;
@@ -75,4 +75,3 @@ int gnutls_load_file(const char *filename, gnutls_datum_t * data)
return 0;
}
-
diff --git a/lib/file.h b/lib/file.h
index 98fb90ed0d..c521937cb6 100644
--- a/lib/file.h
+++ b/lib/file.h
@@ -21,8 +21,8 @@
*/
#ifndef GNUTLS_LIB_FILE_H
-#define GNUTLS_LIB_FILE_H
+# define GNUTLS_LIB_FILE_H
int _gnutls_file_exists(const char *file);
-#endif /* GNUTLS_LIB_FILE_H */
+#endif /* GNUTLS_LIB_FILE_H */
diff --git a/lib/fingerprint.c b/lib/fingerprint.c
index 62e0783d36..2d7774322a 100644
--- a/lib/fingerprint.c
+++ b/lib/fingerprint.c
@@ -54,27 +54,22 @@
int
gnutls_fingerprint(gnutls_digest_algorithm_t algo,
const gnutls_datum_t * data, void *result,
- size_t * result_size)
+ size_t *result_size)
{
int ret;
int hash_len = _gnutls_hash_get_algo_len(hash_to_entry(algo));
- if (hash_len < 0 || (unsigned) hash_len > *result_size
- || result == NULL) {
+ if (hash_len < 0 || (unsigned)hash_len > *result_size || result == NULL) {
*result_size = hash_len;
return GNUTLS_E_SHORT_MEMORY_BUFFER;
}
*result_size = hash_len;
if (result) {
- ret =
- _gnutls_hash_fast(algo, data->data, data->size,
- result);
+ ret = _gnutls_hash_fast(algo, data->data, data->size, result);
if (ret < 0)
return gnutls_assert_val(ret);
}
return 0;
}
-
-
diff --git a/lib/fips.c b/lib/fips.c
index c8277e50b1..dadc9161fc 100644
--- a/lib/fips.c
+++ b/lib/fips.c
@@ -37,7 +37,7 @@
#include "gthreads.h"
#ifdef HAVE_DL_ITERATE_PHDR
-#include <link.h>
+# include <link.h>
#endif
unsigned int _gnutls_lib_state = LIB_STATE_POWERON;
@@ -49,10 +49,10 @@ struct gnutls_fips140_context_st {
#ifdef ENABLE_FIPS140
-#include <dlfcn.h>
+# include <dlfcn.h>
-#define FIPS_KERNEL_FILE "/proc/sys/crypto/fips_enabled"
-#define FIPS_SYSTEM_FILE "/etc/system-fips"
+# define FIPS_KERNEL_FILE "/proc/sys/crypto/fips_enabled"
+# define FIPS_SYSTEM_FILE "/etc/system-fips"
/* We provide a per-thread FIPS-mode so that an application
* can use gnutls_fips140_set_mode() to override a specific
@@ -70,7 +70,7 @@ static int _skip_integrity_checks = 0;
unsigned _gnutls_fips_mode_enabled(void)
{
unsigned f1p = 0, f2p;
- FILE* fd;
+ FILE *fd;
const char *p;
unsigned ret;
@@ -81,10 +81,10 @@ unsigned _gnutls_fips_mode_enabled(void)
* is called on library initialization, the
* _global_fips_mode is always set during app run.
*/
- if (_tfips_mode != (gnutls_fips_mode_t)-1)
+ if (_tfips_mode != (gnutls_fips_mode_t) - 1)
return _tfips_mode;
- if (_global_fips_mode != (gnutls_fips_mode_t)-1) {
+ if (_global_fips_mode != (gnutls_fips_mode_t) - 1) {
return _global_fips_mode;
}
@@ -114,8 +114,10 @@ unsigned _gnutls_fips_mode_enabled(void)
f1p = fgetc(fd);
fclose(fd);
- if (f1p == '1') f1p = 1;
- else f1p = 0;
+ if (f1p == '1')
+ f1p = 1;
+ else
+ f1p = 0;
}
if (f1p != 0) {
@@ -152,23 +154,21 @@ void _gnutls_fips_mode_reset_zombie(void)
/* These only works with the platform where SONAME is part of the ABI.
* For example, *_SONAME will be set to "none" on Windows platforms. */
-#define GNUTLS_LIBRARY_NAME GNUTLS_LIBRARY_SONAME
-#define NETTLE_LIBRARY_NAME NETTLE_LIBRARY_SONAME
-#define HOGWEED_LIBRARY_NAME HOGWEED_LIBRARY_SONAME
-#define GMP_LIBRARY_NAME GMP_LIBRARY_SONAME
+# define GNUTLS_LIBRARY_NAME GNUTLS_LIBRARY_SONAME
+# define NETTLE_LIBRARY_NAME NETTLE_LIBRARY_SONAME
+# define HOGWEED_LIBRARY_NAME HOGWEED_LIBRARY_SONAME
+# define GMP_LIBRARY_NAME GMP_LIBRARY_SONAME
-#define HMAC_SIZE 32
-#define HMAC_ALGO GNUTLS_MAC_SHA256
-#define HMAC_FORMAT_VERSION 1
+# define HMAC_SIZE 32
+# define HMAC_ALGO GNUTLS_MAC_SHA256
+# define HMAC_FORMAT_VERSION 1
-struct hmac_entry
-{
+struct hmac_entry {
char path[GNUTLS_PATH_MAX];
uint8_t hmac[HMAC_SIZE];
};
-struct hmac_file
-{
+struct hmac_file {
int version;
struct hmac_entry gnutls;
struct hmac_entry nettle;
@@ -176,8 +176,7 @@ struct hmac_file
struct hmac_entry gmp;
};
-struct lib_paths
-{
+struct lib_paths {
char gnutls[GNUTLS_PATH_MAX];
char nettle[GNUTLS_PATH_MAX];
char hogweed[GNUTLS_PATH_MAX];
@@ -194,7 +193,7 @@ struct lib_paths
*
* Returns: 0 on success, a negative error code otherwise
*/
-static int get_hmac(uint8_t *dest, const char *value)
+static int get_hmac(uint8_t * dest, const char *value)
{
int ret;
size_t hmac_size;
@@ -229,7 +228,8 @@ lib_handler(struct hmac_entry *entry,
return 1;
}
-static int handler(void *user, const char *section, const char *name, const char *value)
+static int handler(void *user, const char *section, const char *name,
+ const char *value)
{
struct hmac_file *p = (struct hmac_file *)user;
@@ -263,7 +263,8 @@ static int handler(void *user, const char *section, const char *name, const char
*
* Returns: 0 on success, a negative error code otherwise
*/
-static int get_hmac_path(char *mac_file, size_t mac_file_size, const char *gnutls_path)
+static int get_hmac_path(char *mac_file, size_t mac_file_size,
+ const char *gnutls_path)
{
int ret;
char *p;
@@ -271,7 +272,8 @@ static int get_hmac_path(char *mac_file, size_t mac_file_size, const char *gnutl
p = strrchr(gnutls_path, '/');
if (p == NULL)
- ret = snprintf(mac_file, mac_file_size, ".%s.hmac", gnutls_path);
+ ret =
+ snprintf(mac_file, mac_file_size, ".%s.hmac", gnutls_path);
else
ret = snprintf(mac_file, mac_file_size, "%.*s/.%s.hmac",
(int)(p - gnutls_path), gnutls_path, p + 1);
@@ -284,10 +286,13 @@ static int get_hmac_path(char *mac_file, size_t mac_file_size, const char *gnutl
return GNUTLS_E_SUCCESS;
if (p == NULL)
- ret = snprintf(mac_file, mac_file_size, "fipscheck/.%s.hmac", gnutls_path);
+ ret =
+ snprintf(mac_file, mac_file_size, "fipscheck/.%s.hmac",
+ gnutls_path);
else
- ret = snprintf(mac_file, mac_file_size, "%.*s/fipscheck/.%s.hmac",
- (int)(p - gnutls_path), gnutls_path, p + 1);
+ ret =
+ snprintf(mac_file, mac_file_size, "%.*s/fipscheck/.%s.hmac",
+ (int)(p - gnutls_path), gnutls_path, p + 1);
if ((size_t)ret >= mac_file_size)
return gnutls_assert_val(GNUTLS_E_SHORT_MEMORY_BUFFER);
@@ -355,7 +360,7 @@ static int check_lib_hmac(struct hmac_entry *entry, const char *path)
prev = _gnutls_get_lib_state();
_gnutls_switch_lib_state(LIB_STATE_OPERATIONAL);
- ret = gnutls_hmac_fast(HMAC_ALGO, FIPS_KEY, sizeof(FIPS_KEY)-1,
+ ret = gnutls_hmac_fast(HMAC_ALGO, FIPS_KEY, sizeof(FIPS_KEY) - 1,
data.data, data.size, hmac);
_gnutls_switch_lib_state(prev);
@@ -367,7 +372,8 @@ static int check_lib_hmac(struct hmac_entry *entry, const char *path)
}
if (gnutls_memcmp(entry->hmac, hmac, HMAC_SIZE)) {
- _gnutls_debug_log("Calculated MAC for %s does not match\n", path);
+ _gnutls_debug_log("Calculated MAC for %s does not match\n",
+ path);
return gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
}
_gnutls_debug_log("Successfully verified MAC for %s\n", path);
@@ -375,7 +381,7 @@ static int check_lib_hmac(struct hmac_entry *entry, const char *path)
return 0;
}
-#ifdef HAVE_DL_ITERATE_PHDR
+# ifdef HAVE_DL_ITERATE_PHDR
static int callback(struct dl_phdr_info *info, size_t size, void *data)
{
@@ -398,7 +404,7 @@ static int load_lib_paths(struct lib_paths *paths)
{
memset(paths, 0, sizeof(*paths));
dl_iterate_phdr(callback, paths);
-
+
if (paths->gnutls[0] == '\0') {
_gnutls_debug_log("Gnutls library path was not found\n");
return gnutls_assert_val(GNUTLS_E_FILE_ERROR);
@@ -419,7 +425,7 @@ static int load_lib_paths(struct lib_paths *paths)
return GNUTLS_E_SUCCESS;
}
-#else
+# else
static int load_lib_paths(struct lib_paths *paths)
{
@@ -428,7 +434,7 @@ static int load_lib_paths(struct lib_paths *paths)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
-#endif /* HAVE_DL_ITERATE_PHDR */
+# endif /* HAVE_DL_ITERATE_PHDR */
static int check_binary_integrity(void)
{
@@ -694,24 +700,28 @@ void gnutls_fips140_set_mode(gnutls_fips_mode_t mode, unsigned flags)
gnutls_fips_mode_t prev = _gnutls_fips_mode_enabled();
if (prev == GNUTLS_FIPS140_DISABLED || prev == GNUTLS_FIPS140_SELFTESTS) {
/* we need to run self-tests first to be in FIPS140-2 mode */
- _gnutls_audit_log(NULL, "The library should be initialized in FIPS140-2 mode to do that operation\n");
+ _gnutls_audit_log(NULL,
+ "The library should be initialized in FIPS140-2 mode to do that operation\n");
return;
}
switch (mode) {
- case GNUTLS_FIPS140_STRICT:
- case GNUTLS_FIPS140_LAX:
- case GNUTLS_FIPS140_LOG:
- case GNUTLS_FIPS140_DISABLED:
- break;
- case GNUTLS_FIPS140_SELFTESTS:
- _gnutls_audit_log(NULL, "Cannot switch library to FIPS140-2 self-tests mode; defaulting to strict\n");
- mode = GNUTLS_FIPS140_STRICT;
- break;
- default:
- _gnutls_audit_log(NULL, "Cannot switch library to mode %u; defaulting to strict\n", (unsigned)mode);
- mode = GNUTLS_FIPS140_STRICT;
- break;
+ case GNUTLS_FIPS140_STRICT:
+ case GNUTLS_FIPS140_LAX:
+ case GNUTLS_FIPS140_LOG:
+ case GNUTLS_FIPS140_DISABLED:
+ break;
+ case GNUTLS_FIPS140_SELFTESTS:
+ _gnutls_audit_log(NULL,
+ "Cannot switch library to FIPS140-2 self-tests mode; defaulting to strict\n");
+ mode = GNUTLS_FIPS140_STRICT;
+ break;
+ default:
+ _gnutls_audit_log(NULL,
+ "Cannot switch library to mode %u; defaulting to strict\n",
+ (unsigned)mode);
+ mode = GNUTLS_FIPS140_STRICT;
+ break;
}
if (flags & GNUTLS_FIPS140_SET_MODE_THREAD)
@@ -743,8 +753,7 @@ void _gnutls_lib_force_operational(void)
*
* Since: 3.7.3
*/
-int
-gnutls_fips140_context_init(gnutls_fips140_context_t *context)
+int gnutls_fips140_context_init(gnutls_fips140_context_t * context)
{
*context = gnutls_malloc(sizeof(struct gnutls_fips140_context_st));
if (!*context) {
@@ -762,8 +771,7 @@ gnutls_fips140_context_init(gnutls_fips140_context_t *context)
*
* Since: 3.7.3
*/
-void
-gnutls_fips140_context_deinit(gnutls_fips140_context_t context)
+void gnutls_fips140_context_deinit(gnutls_fips140_context_t context)
{
gnutls_free(context);
}
@@ -804,8 +812,7 @@ gnutls_fips140_get_operation_state(gnutls_fips140_context_t context)
*
* Since: 3.7.3
*/
-int
-gnutls_fips140_push_context(gnutls_fips140_context_t context)
+int gnutls_fips140_push_context(gnutls_fips140_context_t context)
{
#ifdef ENABLE_FIPS140
if (_gnutls_fips_mode_enabled() != GNUTLS_FIPS140_DISABLED) {
@@ -837,8 +844,7 @@ gnutls_fips140_push_context(gnutls_fips140_context_t context)
*
* Since: 3.7.3
*/
-int
-gnutls_fips140_pop_context(void)
+int gnutls_fips140_pop_context(void)
{
#ifdef ENABLE_FIPS140
if (_gnutls_fips_mode_enabled() != GNUTLS_FIPS140_DISABLED) {
@@ -856,8 +862,8 @@ gnutls_fips140_pop_context(void)
#ifdef ENABLE_FIPS140
-static inline const char *
-operation_state_to_string(gnutls_fips140_operation_state_t state)
+static inline const char
+*operation_state_to_string(gnutls_fips140_operation_state_t state)
{
switch (state) {
case GNUTLS_FIPS140_OP_INITIAL:
@@ -869,14 +875,12 @@ operation_state_to_string(gnutls_fips140_operation_state_t state)
case GNUTLS_FIPS140_OP_ERROR:
return "error";
default:
- /*NOTREACHED*/
- assert(0);
+ /*NOTREACHED*/ assert(0);
return NULL;
}
}
-void
-_gnutls_switch_fips_state(gnutls_fips140_operation_state_t state)
+void _gnutls_switch_fips_state(gnutls_fips140_operation_state_t state)
{
gnutls_fips_mode_t mode = _gnutls_fips_mode_enabled();
if (mode == GNUTLS_FIPS140_DISABLED) {
@@ -896,7 +900,8 @@ _gnutls_switch_fips_state(gnutls_fips140_operation_state_t state)
case GNUTLS_FIPS140_OP_INITIAL:
/* initial can be transitioned to any state */
if (mode != GNUTLS_FIPS140_LAX) {
- _gnutls_audit_log(NULL, "FIPS140-2 operation mode switched from initial to %s\n",
+ _gnutls_audit_log(NULL,
+ "FIPS140-2 operation mode switched from initial to %s\n",
operation_state_to_string(state));
}
_tfips_context->state = state;
@@ -905,8 +910,10 @@ _gnutls_switch_fips_state(gnutls_fips140_operation_state_t state)
/* approved can only be transitioned to not-approved */
if (likely(state == GNUTLS_FIPS140_OP_NOT_APPROVED)) {
if (mode != GNUTLS_FIPS140_LAX) {
- _gnutls_audit_log(NULL, "FIPS140-2 operation mode switched from approved to %s\n",
- operation_state_to_string(state));
+ _gnutls_audit_log(NULL,
+ "FIPS140-2 operation mode switched from approved to %s\n",
+ operation_state_to_string
+ (state));
}
_tfips_context->state = state;
return;
@@ -915,8 +922,10 @@ _gnutls_switch_fips_state(gnutls_fips140_operation_state_t state)
default:
/* other transitions are prohibited */
if (mode != GNUTLS_FIPS140_LAX) {
- _gnutls_audit_log(NULL, "FIPS140-2 operation mode cannot be switched from %s to %s\n",
- operation_state_to_string(_tfips_context->state),
+ _gnutls_audit_log(NULL,
+ "FIPS140-2 operation mode cannot be switched from %s to %s\n",
+ operation_state_to_string
+ (_tfips_context->state),
operation_state_to_string(state));
}
break;
@@ -925,8 +934,7 @@ _gnutls_switch_fips_state(gnutls_fips140_operation_state_t state)
#else
-void
-_gnutls_switch_fips_state(gnutls_fips140_operation_state_t state)
+void _gnutls_switch_fips_state(gnutls_fips140_operation_state_t state)
{
(void)state;
}
@@ -950,8 +958,7 @@ _gnutls_switch_fips_state(gnutls_fips140_operation_state_t state)
*
* Since: 3.7.7
*/
-int
-gnutls_fips140_run_self_tests(void)
+int gnutls_fips140_run_self_tests(void)
{
#ifdef ENABLE_FIPS140
int ret;
@@ -974,20 +981,22 @@ gnutls_fips140_run_self_tests(void)
_gnutls_switch_lib_state(LIB_STATE_SELFTEST);
ret = _gnutls_fips_perform_self_checks2();
- if (gnutls_fips140_mode_enabled() != GNUTLS_FIPS140_DISABLED &&
- ret < 0) {
+ if (gnutls_fips140_mode_enabled() != GNUTLS_FIPS140_DISABLED && ret < 0) {
_gnutls_switch_lib_state(LIB_STATE_ERROR);
- _gnutls_audit_log(NULL, "FIPS140-2 self testing part 2 failed\n");
+ _gnutls_audit_log(NULL,
+ "FIPS140-2 self testing part 2 failed\n");
} else {
/* Restore the previous library state */
_gnutls_switch_lib_state(prev_lib_state);
}
/* Restore the previous FIPS context */
- if (gnutls_fips140_mode_enabled() != GNUTLS_FIPS140_DISABLED && fips_context) {
+ if (gnutls_fips140_mode_enabled() != GNUTLS_FIPS140_DISABLED
+ && fips_context) {
if (gnutls_fips140_pop_context() < 0) {
_gnutls_switch_lib_state(LIB_STATE_ERROR);
- _gnutls_audit_log(NULL, "FIPS140-2 context restoration failed\n");
+ _gnutls_audit_log(NULL,
+ "FIPS140-2 context restoration failed\n");
}
gnutls_fips140_context_deinit(fips_context);
}
diff --git a/lib/fips.h b/lib/fips.h
index bf61b36741..ef82a3227a 100644
--- a/lib/fips.h
+++ b/lib/fips.h
@@ -21,20 +21,20 @@
*/
#ifndef GNUTLS_LIB_FIPS_H
-#define GNUTLS_LIB_FIPS_H
+# define GNUTLS_LIB_FIPS_H
-#include "gnutls_int.h"
-#include <gnutls/gnutls.h>
+# include "gnutls_int.h"
+# include <gnutls/gnutls.h>
-#define FIPS140_RND_KEY_SIZE 32
+# define FIPS140_RND_KEY_SIZE 32
typedef enum {
- LIB_STATE_POWERON,
- LIB_STATE_INIT,
- LIB_STATE_SELFTEST,
- LIB_STATE_OPERATIONAL,
- LIB_STATE_ERROR,
- LIB_STATE_SHUTDOWN
+ LIB_STATE_POWERON,
+ LIB_STATE_INIT,
+ LIB_STATE_SELFTEST,
+ LIB_STATE_OPERATIONAL,
+ LIB_STATE_ERROR,
+ LIB_STATE_SHUTDOWN
} gnutls_lib_state_t;
/* do not access directly */
@@ -43,7 +43,7 @@ extern gnutls_crypto_rnd_st _gnutls_fips_rnd_ops;
void _gnutls_switch_fips_state(gnutls_fips140_operation_state_t state);
-inline static
+inline static
void _gnutls_switch_lib_state(gnutls_lib_state_t state)
{
/* Once into zombie state no errors can change us */
@@ -59,11 +59,11 @@ int _gnutls_fips_perform_self_checks1(void);
int _gnutls_fips_perform_self_checks2(void);
void _gnutls_fips_mode_reset_zombie(void);
-#ifdef ENABLE_FIPS140
+# ifdef ENABLE_FIPS140
unsigned _gnutls_fips_mode_enabled(void);
-#else
-# define _gnutls_fips_mode_enabled() 0
-#endif
+# else
+# define _gnutls_fips_mode_enabled() 0
+# endif
# define HAVE_LIB_ERROR() unlikely(_gnutls_get_lib_state() != LIB_STATE_OPERATIONAL && _gnutls_get_lib_state() != LIB_STATE_SELFTEST)
@@ -94,8 +94,7 @@ is_mac_algo_hmac_approved_in_fips(gnutls_mac_algorithm_t algo)
}
}
-inline static bool
-is_mac_algo_approved_in_fips(gnutls_mac_algorithm_t algo)
+inline static bool is_mac_algo_approved_in_fips(gnutls_mac_algorithm_t algo)
{
if (is_mac_algo_hmac_approved_in_fips(algo)) {
return true;
@@ -113,8 +112,7 @@ is_mac_algo_approved_in_fips(gnutls_mac_algorithm_t algo)
}
}
-inline static bool
-is_mac_algo_allowed_in_fips(gnutls_mac_algorithm_t algo)
+inline static bool is_mac_algo_allowed_in_fips(gnutls_mac_algorithm_t algo)
{
return is_mac_algo_approved_in_fips(algo);
}
@@ -159,10 +157,10 @@ is_cipher_algo_allowed_in_fips(gnutls_cipher_algorithm_t algo)
}
}
-#ifdef ENABLE_FIPS140
+# ifdef ENABLE_FIPS140
/* This will test the condition when in FIPS140-2 mode
* and return an error if necessary or ignore */
-# define FIPS_RULE(condition, ret_error, ...) { \
+# define FIPS_RULE(condition, ret_error, ...) { \
gnutls_fips_mode_t _mode = _gnutls_fips_mode_enabled(); \
if (_mode != GNUTLS_FIPS140_DISABLED) { \
if (condition) { \
@@ -175,8 +173,7 @@ is_cipher_algo_allowed_in_fips(gnutls_cipher_algorithm_t algo)
} \
}}
-inline static bool
-is_mac_algo_allowed(gnutls_mac_algorithm_t algo)
+inline static bool is_mac_algo_allowed(gnutls_mac_algorithm_t algo)
{
gnutls_fips_mode_t mode = _gnutls_fips_mode_enabled();
if (_gnutls_get_lib_state() != LIB_STATE_SELFTEST &&
@@ -198,15 +195,15 @@ is_mac_algo_allowed(gnutls_mac_algorithm_t algo)
return true;
}
-inline static bool
-is_cipher_algo_allowed(gnutls_cipher_algorithm_t algo)
+inline static bool is_cipher_algo_allowed(gnutls_cipher_algorithm_t algo)
{
gnutls_fips_mode_t mode = _gnutls_fips_mode_enabled();
if (_gnutls_get_lib_state() != LIB_STATE_SELFTEST &&
!is_cipher_algo_allowed_in_fips(algo)) {
switch (mode) {
case GNUTLS_FIPS140_LOG:
- _gnutls_audit_log(NULL, "fips140-2: allowing access to %s\n",
+ _gnutls_audit_log(NULL,
+ "fips140-2: allowing access to %s\n",
gnutls_cipher_get_name(algo));
FALLTHROUGH;
case GNUTLS_FIPS140_DISABLED:
@@ -219,10 +216,10 @@ is_cipher_algo_allowed(gnutls_cipher_algorithm_t algo)
return true;
}
-#else
-# define is_mac_algo_allowed(x) true
-# define is_cipher_algo_allowed(x) true
-# define FIPS_RULE(condition, ret_error, ...)
-#endif
+# else
+# define is_mac_algo_allowed(x) true
+# define is_cipher_algo_allowed(x) true
+# define FIPS_RULE(condition, ret_error, ...)
+# endif
-#endif /* GNUTLS_LIB_FIPS_H */
+#endif /* GNUTLS_LIB_FIPS_H */
diff --git a/lib/fipshmac.c b/lib/fipshmac.c
index 14944c53fc..fb8fee0d50 100644
--- a/lib/fipshmac.c
+++ b/lib/fipshmac.c
@@ -27,16 +27,16 @@
#ifdef HAVE_DL_ITERATE_PHDR
-#include <gnutls/gnutls.h>
-#include <gnutls/crypto.h>
-#include <link.h>
-#include "dirname.h"
-#include "errors.h"
+# include <gnutls/gnutls.h>
+# include <gnutls/crypto.h>
+# include <link.h>
+# include "dirname.h"
+# include "errors.h"
-#define FORMAT_VERSION 1
-#define HMAC_SIZE 32
-#define HMAC_ALGO GNUTLS_MAC_SHA256
-#define HMAC_STR_SIZE (2 * HMAC_SIZE + 1)
+# define FORMAT_VERSION 1
+# define HMAC_SIZE 32
+# define HMAC_ALGO GNUTLS_MAC_SHA256
+# define HMAC_STR_SIZE (2 * HMAC_SIZE + 1)
static int get_hmac(const char *path, char *hmac, size_t hmac_size)
{
@@ -52,7 +52,7 @@ static int get_hmac(const char *path, char *hmac, size_t hmac_size)
GNUTLS_FIPS140_SET_LAX_MODE();
ret = gnutls_hmac_fast(HMAC_ALGO, FIPS_KEY, sizeof(FIPS_KEY) - 1,
- data.data, data.size, buffer);
+ data.data, data.size, buffer);
GNUTLS_FIPS140_SET_STRICT_MODE();
gnutls_free(data.data);
@@ -83,7 +83,7 @@ static int print_lib(const char *path, const char *soname)
ret = get_hmac(real_path, hmac, sizeof(hmac));
if (ret < 0) {
fprintf(stderr, "Could not calculate HMAC for %s: %s\n",
- last_component(real_path), gnutls_strerror(ret));
+ last_component(real_path), gnutls_strerror(ret));
goto cleanup;
}
@@ -91,7 +91,7 @@ static int print_lib(const char *path, const char *soname)
printf("path = %s\n", real_path);
printf("hmac = %s\n", hmac);
-cleanup:
+ cleanup:
free(real_path);
return ret;
}
@@ -109,13 +109,14 @@ static int callback(struct dl_phdr_info *info, size_t size, void *data)
return print_lib(path, soname);
if (!strcmp(soname, GMP_LIBRARY_SONAME))
return print_lib(path, soname);
- return 0;
+ return 0;
}
int main(int argc, char **argv)
{
if (argc != 1 && argc != 2) {
- fprintf(stderr, "Usage: %s [gnutls_so_path]\n", last_component(argv[0]));
+ fprintf(stderr, "Usage: %s [gnutls_so_path]\n",
+ last_component(argv[0]));
return EXIT_FAILURE;
}
@@ -133,4 +134,4 @@ int main(void)
return EXIT_FAILURE;
}
-#endif /* HAVE_DL_ITERATE_PHDR */
+#endif /* HAVE_DL_ITERATE_PHDR */
diff --git a/lib/global.c b/lib/global.c
index 3d59951422..0ae68099cd 100644
--- a/lib/global.c
+++ b/lib/global.c
@@ -28,8 +28,8 @@
#include <random.h>
#include <gnutls/pkcs11.h>
-#include <hello_ext.h> /* for _gnutls_hello_ext_init */
-#include <supplemental.h> /* for _gnutls_supplemental_deinit */
+#include <hello_ext.h> /* for _gnutls_hello_ext_init */
+#include <supplemental.h> /* for _gnutls_supplemental_deinit */
#include <locks.h>
#include <system.h>
#include <accelerated/cryptodev.h>
@@ -83,7 +83,7 @@ unsigned int _gnutls_global_version = GNUTLS_VERSION_NUMBER;
static int _gnutls_global_init(unsigned constructor);
static void _gnutls_global_deinit(unsigned destructor);
-static void default_log_func(int level, const char* str)
+static void default_log_func(int level, const char *str)
{
fprintf(stderr, "gnutls[%d]: %s", level, str);
}
@@ -183,7 +183,8 @@ gnutls_global_set_mem_functions(gnutls_alloc_function alloc_func,
gnutls_realloc_function realloc_func,
gnutls_free_function free_func)
{
- _gnutls_debug_log("called the deprecated gnutls_global_set_mem_functions()\n");
+ _gnutls_debug_log
+ ("called the deprecated gnutls_global_set_mem_functions()\n");
}
GNUTLS_STATIC_MUTEX(global_init_mutex);
@@ -227,7 +228,7 @@ static int _gnutls_global_init(unsigned constructor)
{
int ret = 0, res;
int level;
- const char* e;
+ const char *e;
if (!constructor) {
ret = gnutls_static_mutex_lock(&global_init_mutex);
@@ -250,7 +251,7 @@ static int _gnutls_global_init(unsigned constructor)
gnutls_global_set_log_level(level);
if (_gnutls_log_func == NULL)
gnutls_global_set_log_function(default_log_func);
- _gnutls_debug_log("Enabled GnuTLS "VERSION" logging...\n");
+ _gnutls_debug_log("Enabled GnuTLS " VERSION " logging...\n");
}
#ifdef HAVE_DCGETTEXT
@@ -275,8 +276,7 @@ static int _gnutls_global_init(unsigned constructor)
gnutls_assert();
_gnutls_debug_log
("Checking for libtasn1 failed: %s < %s\n",
- asn1_check_version(NULL),
- GNUTLS_MIN_LIBTASN1_VERSION);
+ asn1_check_version(NULL), GNUTLS_MIN_LIBTASN1_VERSION);
ret = GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY;
goto out;
}
@@ -340,7 +340,8 @@ static int _gnutls_global_init(unsigned constructor)
ret = _gnutls_fips_perform_self_checks1();
if (ret < 0) {
_gnutls_switch_lib_state(LIB_STATE_ERROR);
- _gnutls_audit_log(NULL, "FIPS140-2 self testing part1 failed\n");
+ _gnutls_audit_log(NULL,
+ "FIPS140-2 self testing part1 failed\n");
if (res != 2) {
gnutls_assert();
goto out;
@@ -362,7 +363,8 @@ static int _gnutls_global_init(unsigned constructor)
ret = _gnutls_fips_perform_self_checks2();
if (ret < 0) {
_gnutls_switch_lib_state(LIB_STATE_ERROR);
- _gnutls_audit_log(NULL, "FIPS140-2 self testing part 2 failed\n");
+ _gnutls_audit_log(NULL,
+ "FIPS140-2 self testing part 2 failed\n");
if (res != 2) {
gnutls_assert();
goto out;
@@ -375,7 +377,7 @@ static int _gnutls_global_init(unsigned constructor)
_gnutls_switch_lib_state(LIB_STATE_OPERATIONAL);
ret = 0;
- out:
+ out:
_gnutls_init_ret = ret;
if (!constructor) {
(void)gnutls_static_mutex_unlock(&global_init_mutex);
@@ -499,7 +501,8 @@ static void _CONSTRUCTOR lib_init(void)
e = secure_getenv("GNUTLS_NO_EXPLICIT_INIT");
if (e != NULL) {
- _gnutls_debug_log("GNUTLS_NO_EXPLICIT_INIT is deprecated; use GNUTLS_NO_IMPLICIT_INIT\n");
+ _gnutls_debug_log
+ ("GNUTLS_NO_EXPLICIT_INIT is deprecated; use GNUTLS_NO_IMPLICIT_INIT\n");
ret = atoi(e);
if (ret == 1)
return;
@@ -507,7 +510,8 @@ static void _CONSTRUCTOR lib_init(void)
ret = _gnutls_global_init(1);
if (ret < 0) {
- fprintf(stderr, "Error in GnuTLS initialization: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error in GnuTLS initialization: %s\n",
+ gnutls_strerror(ret));
_gnutls_switch_lib_state(LIB_STATE_ERROR);
}
}
@@ -529,7 +533,8 @@ static void _DESTRUCTOR lib_deinit(void)
e = secure_getenv("GNUTLS_NO_EXPLICIT_INIT");
if (e != NULL) {
- _gnutls_debug_log("GNUTLS_NO_EXPLICIT_INIT is deprecated; use GNUTLS_NO_IMPLICIT_INIT\n");
+ _gnutls_debug_log
+ ("GNUTLS_NO_EXPLICIT_INIT is deprecated; use GNUTLS_NO_IMPLICIT_INIT\n");
ret = atoi(e);
if (ret == 1)
return;
@@ -540,19 +545,19 @@ static void _DESTRUCTOR lib_deinit(void)
static const struct gnutls_library_config_st _gnutls_library_config[] = {
#ifdef FIPS_MODULE_NAME
- { "fips-module-name", FIPS_MODULE_NAME },
+ {"fips-module-name", FIPS_MODULE_NAME},
#endif
#ifdef FIPS_MODULE_VERSION
- { "fips-module-version", FIPS_MODULE_VERSION },
+ {"fips-module-version", FIPS_MODULE_VERSION},
#endif
- { "libgnutls-soname", GNUTLS_LIBRARY_SONAME },
- { "libnettle-soname", NETTLE_LIBRARY_SONAME },
- { "libhogweed-soname", HOGWEED_LIBRARY_SONAME },
- { "libgmp-soname", GMP_LIBRARY_SONAME },
- { "hardware-features", HW_FEATURES },
- { "tls-features", TLS_FEATURES },
- { "default-system-config", SYSTEM_PRIORITY_FILE },
- { NULL, NULL }
+ {"libgnutls-soname", GNUTLS_LIBRARY_SONAME},
+ {"libnettle-soname", NETTLE_LIBRARY_SONAME},
+ {"libhogweed-soname", HOGWEED_LIBRARY_SONAME},
+ {"libgmp-soname", GMP_LIBRARY_SONAME},
+ {"hardware-features", HW_FEATURES},
+ {"tls-features", TLS_FEATURES},
+ {"default-system-config", SYSTEM_PRIORITY_FILE},
+ {NULL, NULL}
};
/**
@@ -581,8 +586,7 @@ static const struct gnutls_library_config_st _gnutls_library_config[] = {
*
* Since: 3.7.3
*/
-const gnutls_library_config_st *
-gnutls_get_library_config(void)
+const gnutls_library_config_st *gnutls_get_library_config(void)
{
return _gnutls_library_config;
}
diff --git a/lib/global.h b/lib/global.h
index 6bd70df8e3..72aeef9f4c 100644
--- a/lib/global.h
+++ b/lib/global.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_GLOBAL_H
-#define GNUTLS_LIB_GLOBAL_H
+# define GNUTLS_LIB_GLOBAL_H
-#include <libtasn1.h>
-#include <gnutls/gnutls.h>
+# include <libtasn1.h>
+# include <gnutls/gnutls.h>
int gnutls_is_secure_memory(const void *mem);
@@ -35,8 +35,8 @@ extern asn1_node _gnutls_gnutls_asn;
* prevent warnings, since libtasn1 doesn't
* use the const keyword in its functions.
*/
-#define _gnutls_get_gnutls_asn() ((asn1_node) _gnutls_gnutls_asn)
-#define _gnutls_get_pkix() ((asn1_node) _gnutls_pkix1_asn)
+# define _gnutls_get_gnutls_asn() ((asn1_node) _gnutls_gnutls_asn)
+# define _gnutls_get_pkix() ((asn1_node) _gnutls_pkix1_asn)
extern gnutls_log_func _gnutls_log_func;
extern gnutls_audit_log_func _gnutls_audit_log_func;
@@ -50,4 +50,4 @@ extern void _gnutls_prepare_to_load_system_priorities(void);
extern void _gnutls_unload_system_priorities(void);
extern bool _gnutls_allowlisting_mode(void);
-#endif /* GNUTLS_LIB_GLOBAL_H */
+#endif /* GNUTLS_LIB_GLOBAL_H */
diff --git a/lib/gnutls_int.h b/lib/gnutls_int.h
index 9b2afcf80c..969454b6a0 100644
--- a/lib/gnutls_int.h
+++ b/lib/gnutls_int.h
@@ -22,128 +22,128 @@
*/
#ifndef GNUTLS_LIB_GNUTLS_INT_H
-#define GNUTLS_LIB_GNUTLS_INT_H
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stddef.h>
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <limits.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include <assert.h>
-
-#ifdef NO_SSIZE_T
-#define HAVE_SSIZE_T
+# define GNUTLS_LIB_GNUTLS_INT_H
+
+# ifdef HAVE_CONFIG_H
+# include <config.h>
+# endif
+
+# include <stddef.h>
+# include <string.h>
+# include <stdlib.h>
+# include <stdio.h>
+# include <ctype.h>
+# include <limits.h>
+# include <stdint.h>
+# include <stdbool.h>
+# include <assert.h>
+
+# ifdef NO_SSIZE_T
+# define HAVE_SSIZE_T
typedef int ssize_t;
-#endif
+# endif
-#include <sys/types.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#elif HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-#include <time.h>
+# include <sys/types.h>
+# include <unistd.h>
+# include <sys/stat.h>
+# if HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+# elif HAVE_WS2TCPIP_H
+# include <ws2tcpip.h>
+# endif
+# include <time.h>
-#include "attribute.h"
+# include "attribute.h"
-#define ENABLE_ALIGN16
+# define ENABLE_ALIGN16
-#ifdef __clang_major
-# define _GNUTLS_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
-#else
-# define _GNUTLS_CLANG_VERSION 0
-#endif
+# ifdef __clang_major
+# define _GNUTLS_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
+# else
+# define _GNUTLS_CLANG_VERSION 0
+# endif
/* clang also defines __GNUC__. It promotes a GCC version of 4.2.1. */
-#ifdef __GNUC__
-# define _GNUTLS_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-#endif
-
-#if _GNUTLS_GCC_VERSION >= 30100
-# define likely(x) __builtin_expect((x), 1)
-# define unlikely(x) __builtin_expect((x), 0)
-#else
-# define likely
-# define unlikely
-#endif
-
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <gnutls/abstract.h>
-#include <gnutls/socket.h>
-#include <system.h>
+# ifdef __GNUC__
+# define _GNUTLS_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+# endif
+
+# if _GNUTLS_GCC_VERSION >= 30100
+# define likely(x) __builtin_expect((x), 1)
+# define unlikely(x) __builtin_expect((x), 0)
+# else
+# define likely
+# define unlikely
+# endif
+
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <gnutls/abstract.h>
+# include <gnutls/socket.h>
+# include <system.h>
/* in case we compile with system headers taking priority, we
* make sure that some new attributes are still available.
*/
-#ifndef __GNUTLS_CONST__
-# define __GNUTLS_CONST__
-#endif
+# ifndef __GNUTLS_CONST__
+# define __GNUTLS_CONST__
+# endif
/* The size of a handshake message should not
* be larger than this value.
*/
-#define MAX_HANDSHAKE_PACKET_SIZE 128*1024
+# define MAX_HANDSHAKE_PACKET_SIZE 128*1024
-#define GNUTLS_DEF_SESSION_ID_SIZE 32
+# define GNUTLS_DEF_SESSION_ID_SIZE 32
/* The maximum digest size of hash algorithms.
*/
-#define MAX_FILENAME 512
-#define MAX_HASH_SIZE 64
+# define MAX_FILENAME 512
+# define MAX_HASH_SIZE 64
-#define MAX_MAC_KEY_SIZE 64
+# define MAX_MAC_KEY_SIZE 64
-#define MAX_CIPHER_BLOCK_SIZE 64 /* CHACHA20 */
-#define MAX_CIPHER_KEY_SIZE 32
+# define MAX_CIPHER_BLOCK_SIZE 64 /* CHACHA20 */
+# define MAX_CIPHER_KEY_SIZE 32
-#define MAX_CIPHER_IV_SIZE 16
+# define MAX_CIPHER_IV_SIZE 16
/* Maximum size of 2^16-1 has been chosen so that usernames can hold
* PSK identities as defined in RFC 4279 section 2 and RFC 8446 section 4.2.11
*/
-#define MAX_USERNAME_SIZE 65535
-#define MAX_SERVER_NAME_SIZE 256
+# define MAX_USERNAME_SIZE 65535
+# define MAX_SERVER_NAME_SIZE 256
-#define AEAD_EXPLICIT_DATA_SIZE 8
-#define AEAD_IMPLICIT_DATA_SIZE 4
+# define AEAD_EXPLICIT_DATA_SIZE 8
+# define AEAD_IMPLICIT_DATA_SIZE 4
-#define GNUTLS_MASTER_SIZE 48
-#define GNUTLS_RANDOM_SIZE 32
+# define GNUTLS_MASTER_SIZE 48
+# define GNUTLS_RANDOM_SIZE 32
/* Under TLS1.3 a hello retry request is sent as server hello */
-#define REAL_HSK_TYPE(t) ((t)==GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST?GNUTLS_HANDSHAKE_SERVER_HELLO:t)
+# define REAL_HSK_TYPE(t) ((t)==GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST?GNUTLS_HANDSHAKE_SERVER_HELLO:t)
/* DTLS */
-#define DTLS_RETRANS_TIMEOUT 1000
+# define DTLS_RETRANS_TIMEOUT 1000
/* TLS Extensions */
/* we can receive up to MAX_EXT_TYPES extensions.
*/
-#define MAX_EXT_TYPES 64
+# define MAX_EXT_TYPES 64
/* TLS-internal extension (will be parsed after a ciphersuite is selected).
* This amends the gnutls_ext_parse_type_t. Not exported yet to allow more refining
* prior to finalizing an API. */
-#define _GNUTLS_EXT_TLS_POST_CS 177
+# define _GNUTLS_EXT_TLS_POST_CS 177
/* expire time for resuming sessions */
-#define DEFAULT_EXPIRE_TIME 21600
-#define STEK_ROTATION_PERIOD_PRODUCT 3
-#define DEFAULT_HANDSHAKE_TIMEOUT_MS 40*1000
+# define DEFAULT_EXPIRE_TIME 21600
+# define STEK_ROTATION_PERIOD_PRODUCT 3
+# define DEFAULT_HANDSHAKE_TIMEOUT_MS 40*1000
/* The EC group to be used when the extension
* supported groups/curves is not present */
-#define DEFAULT_EC_GROUP GNUTLS_GROUP_SECP256R1
+# define DEFAULT_EC_GROUP GNUTLS_GROUP_SECP256R1
typedef enum transport_t {
GNUTLS_STREAM,
@@ -161,8 +161,8 @@ typedef enum hs_stage_t {
typedef enum record_send_state_t {
RECORD_SEND_NORMAL = 0,
- RECORD_SEND_CORKED, /* corked and transition to NORMAL afterwards */
- RECORD_SEND_CORKED_TO_KU, /* corked but must transition to RECORD_SEND_KEY_UPDATE_1 */
+ RECORD_SEND_CORKED, /* corked and transition to NORMAL afterwards */
+ RECORD_SEND_CORKED_TO_KU, /* corked but must transition to RECORD_SEND_KEY_UPDATE_1 */
RECORD_SEND_KEY_UPDATE_1,
RECORD_SEND_KEY_UPDATE_2,
RECORD_SEND_KEY_UPDATE_3
@@ -173,80 +173,80 @@ typedef enum record_send_state_t {
* in the future when the internal structure changes than all the conditionals
* itself.
*/
-#define IS_SERVER(session) (session->security_parameters.entity == GNUTLS_SERVER)
+# define IS_SERVER(session) (session->security_parameters.entity == GNUTLS_SERVER)
/* To check whether we have a DTLS session */
-#define IS_DTLS(session) (session->internals.transport == GNUTLS_DGRAM)
+# define IS_DTLS(session) (session->internals.transport == GNUTLS_DGRAM)
/* To check whether we have a KTLS enabled */
-#define IS_KTLS_ENABLED(session, interface) (session->internals.ktls_enabled & interface)
+# define IS_KTLS_ENABLED(session, interface) (session->internals.ktls_enabled & interface)
/* the maximum size of encrypted packets */
-#define DEFAULT_MAX_RECORD_SIZE 16384
-#define DEFAULT_MAX_EARLY_DATA_SIZE 16384
-#define TLS_RECORD_HEADER_SIZE 5
-#define DTLS_RECORD_HEADER_SIZE (TLS_RECORD_HEADER_SIZE+8)
-#define RECORD_HEADER_SIZE(session) (IS_DTLS(session) ? DTLS_RECORD_HEADER_SIZE : TLS_RECORD_HEADER_SIZE)
-#define MAX_RECORD_HEADER_SIZE DTLS_RECORD_HEADER_SIZE
+# define DEFAULT_MAX_RECORD_SIZE 16384
+# define DEFAULT_MAX_EARLY_DATA_SIZE 16384
+# define TLS_RECORD_HEADER_SIZE 5
+# define DTLS_RECORD_HEADER_SIZE (TLS_RECORD_HEADER_SIZE+8)
+# define RECORD_HEADER_SIZE(session) (IS_DTLS(session) ? DTLS_RECORD_HEADER_SIZE : TLS_RECORD_HEADER_SIZE)
+# define MAX_RECORD_HEADER_SIZE DTLS_RECORD_HEADER_SIZE
-#define MIN_RECORD_SIZE 512
-#define MIN_RECORD_SIZE_SMALL 64
+# define MIN_RECORD_SIZE 512
+# define MIN_RECORD_SIZE_SMALL 64
/* The following macro is used to calculate the overhead when sending.
* when receiving we use a different way as there are implementations that
* store more data than allowed.
*/
-#define MAX_RECORD_SEND_OVERHEAD(session) (MAX_CIPHER_BLOCK_SIZE/*iv*/+MAX_PAD_SIZE+MAX_HASH_SIZE/*MAC*/)
-#define MAX_PAD_SIZE 255
-#define EXTRA_COMP_SIZE 2048
+# define MAX_RECORD_SEND_OVERHEAD(session) (MAX_CIPHER_BLOCK_SIZE/*iv*/+MAX_PAD_SIZE+MAX_HASH_SIZE/*MAC*/)
+# define MAX_PAD_SIZE 255
+# define EXTRA_COMP_SIZE 2048
-#define TLS_HANDSHAKE_HEADER_SIZE 4
-#define DTLS_HANDSHAKE_HEADER_SIZE (TLS_HANDSHAKE_HEADER_SIZE+8)
-#define HANDSHAKE_HEADER_SIZE(session) (IS_DTLS(session) ? DTLS_HANDSHAKE_HEADER_SIZE : TLS_HANDSHAKE_HEADER_SIZE)
-#define MAX_HANDSHAKE_HEADER_SIZE DTLS_HANDSHAKE_HEADER_SIZE
+# define TLS_HANDSHAKE_HEADER_SIZE 4
+# define DTLS_HANDSHAKE_HEADER_SIZE (TLS_HANDSHAKE_HEADER_SIZE+8)
+# define HANDSHAKE_HEADER_SIZE(session) (IS_DTLS(session) ? DTLS_HANDSHAKE_HEADER_SIZE : TLS_HANDSHAKE_HEADER_SIZE)
+# define MAX_HANDSHAKE_HEADER_SIZE DTLS_HANDSHAKE_HEADER_SIZE
/* Maximum seed size for provable parameters */
-#define MAX_PVP_SEED_SIZE 256
+# define MAX_PVP_SEED_SIZE 256
/* This is the maximum handshake message size we send without
fragmentation. This currently ignores record layer overhead. */
-#define DTLS_DEFAULT_MTU 1200
+# define DTLS_DEFAULT_MTU 1200
/* the maximum size of the DTLS cookie */
-#define DTLS_MAX_COOKIE_SIZE 32
+# define DTLS_MAX_COOKIE_SIZE 32
/* The maximum number of HELLO_VERIFY_REQUEST messages the client
processes before aborting. */
-#define MAX_HANDSHAKE_HELLO_VERIFY_REQUESTS 5
+# define MAX_HANDSHAKE_HELLO_VERIFY_REQUESTS 5
-#define MAX_PK_PARAM_SIZE 2048
+# define MAX_PK_PARAM_SIZE 2048
/* defaults for verification functions
*/
-#define DEFAULT_MAX_VERIFY_DEPTH 16
-#define DEFAULT_MAX_VERIFY_BITS (MAX_PK_PARAM_SIZE*8)
-#define MAX_VERIFY_DEPTH 4096
+# define DEFAULT_MAX_VERIFY_DEPTH 16
+# define DEFAULT_MAX_VERIFY_BITS (MAX_PK_PARAM_SIZE*8)
+# define MAX_VERIFY_DEPTH 4096
-#include <mem.h>
+# include <mem.h>
-#define MEMSUB(x,y) ((ssize_t)((ptrdiff_t)x-(ptrdiff_t)y))
+# define MEMSUB(x,y) ((ssize_t)((ptrdiff_t)x-(ptrdiff_t)y))
-#define DECR_LEN(len, x) DECR_LENGTH_RET(len, x, GNUTLS_E_UNEXPECTED_PACKET_LENGTH)
-#define DECR_LEN_FINAL(len, x) do { \
+# define DECR_LEN(len, x) DECR_LENGTH_RET(len, x, GNUTLS_E_UNEXPECTED_PACKET_LENGTH)
+# define DECR_LEN_FINAL(len, x) do { \
if (len != x) \
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH); \
else \
len = 0; \
} while (0)
-#define DECR_LENGTH_RET(len, x, RET) DECR_LENGTH_COM(len, x, return RET)
-#define DECR_LENGTH_COM(len, x, COM) do { if (len<x) {gnutls_assert(); COM;} else len-=x; } while (0)
+# define DECR_LENGTH_RET(len, x, RET) DECR_LENGTH_COM(len, x, return RET)
+# define DECR_LENGTH_COM(len, x, COM) do { if (len<x) {gnutls_assert(); COM;} else len-=x; } while (0)
-#define GNUTLS_POINTER_TO_INT(_) ((int) GNUTLS_POINTER_TO_INT_CAST (_))
-#define GNUTLS_INT_TO_POINTER(_) ((void*) GNUTLS_POINTER_TO_INT_CAST (_))
+# define GNUTLS_POINTER_TO_INT(_) ((int) GNUTLS_POINTER_TO_INT_CAST (_))
+# define GNUTLS_INT_TO_POINTER(_) ((void*) GNUTLS_POINTER_TO_INT_CAST (_))
-#define GNUTLS_KX_INVALID (-1)
+# define GNUTLS_KX_INVALID (-1)
-#include <mpi.h>
+# include <mpi.h>
typedef enum handshake_state_t { STATE0 = 0, STATE1, STATE2,
STATE3, STATE4, STATE5, STATE6, STATE7, STATE8,
@@ -254,11 +254,11 @@ typedef enum handshake_state_t { STATE0 = 0, STATE1, STATE2,
STATE15, STATE16, STATE17, STATE18, STATE19,
STATE20 = 20, STATE21, STATE22,
STATE30 = 30, STATE31, STATE40 = 40, STATE41, STATE50 = 50,
- STATE90=90, STATE91, STATE92, STATE93, STATE94, STATE99=99,
- STATE100=100, STATE101, STATE102, STATE103, STATE104,
+ STATE90 = 90, STATE91, STATE92, STATE93, STATE94, STATE99 = 99,
+ STATE100 = 100, STATE101, STATE102, STATE103, STATE104,
STATE105, STATE106, STATE107, STATE108, STATE109, STATE110,
STATE111, STATE112, STATE113, STATE114, STATE115,
- STATE150 /* key update */
+ STATE150 /* key update */
} handshake_state_t;
typedef enum bye_state_t {
@@ -274,9 +274,9 @@ typedef enum reauth_state_t {
REAUTH_STATE4, REAUTH_STATE5
} reauth_state_t;
-#define TICKET_STATE session->internals.ticket_state
-#define BYE_STATE session->internals.bye_state
-#define REAUTH_STATE session->internals.reauth_state
+# define TICKET_STATE session->internals.ticket_state
+# define BYE_STATE session->internals.bye_state
+# define REAUTH_STATE session->internals.reauth_state
typedef enum heartbeat_state_t {
SHB_SEND1 = 0,
@@ -288,23 +288,23 @@ typedef enum recv_state_t {
RECV_STATE_0 = 0,
RECV_STATE_DTLS_RETRANSMIT,
/* client-side false start state */
- RECV_STATE_FALSE_START_HANDLING, /* we are calling gnutls_handshake() within record_recv() */
- RECV_STATE_FALSE_START, /* gnutls_record_recv() should complete the handshake */
+ RECV_STATE_FALSE_START_HANDLING, /* we are calling gnutls_handshake() within record_recv() */
+ RECV_STATE_FALSE_START, /* gnutls_record_recv() should complete the handshake */
/* async handshake msg state */
- RECV_STATE_ASYNC_HANDSHAKE, /* an incomplete async handshake message was seen */
+ RECV_STATE_ASYNC_HANDSHAKE, /* an incomplete async handshake message was seen */
/* server-side early start under TLS1.3; enabled when no client cert is received */
- RECV_STATE_EARLY_START_HANDLING, /* we are calling gnutls_handshake() within record_recv() */
- RECV_STATE_EARLY_START, /* gnutls_record_recv() should complete the handshake */
- RECV_STATE_REHANDSHAKE, /* gnutls_record_recv() should complete any incoming re-handshake requests */
- RECV_STATE_REAUTH /* gnutls_record_recv() should complete any incoming reauthentication requests */
+ RECV_STATE_EARLY_START_HANDLING, /* we are calling gnutls_handshake() within record_recv() */
+ RECV_STATE_EARLY_START, /* gnutls_record_recv() should complete the handshake */
+ RECV_STATE_REHANDSHAKE, /* gnutls_record_recv() should complete any incoming re-handshake requests */
+ RECV_STATE_REAUTH /* gnutls_record_recv() should complete any incoming reauthentication requests */
} recv_state_t;
-#include "str.h"
+# include "str.h"
/* This is the maximum number of algorithms (ciphers or macs etc).
* keep it synced with GNUTLS_MAX_ALGORITHM_NUM in gnutls.h
*/
-#define MAX_ALGOS GNUTLS_MAX_ALGORITHM_NUM
+# define MAX_ALGOS GNUTLS_MAX_ALGORITHM_NUM
/* IDs are allocated in a way that all values fit in 64-bit integer as (1<<val) */
typedef enum extensions_t {
@@ -339,13 +339,13 @@ typedef enum extensions_t {
* in that order */
GNUTLS_EXTENSION_DUMBFW,
GNUTLS_EXTENSION_PRE_SHARED_KEY,
- GNUTLS_EXTENSION_MAX /* not real extension - used for iterators */
+ GNUTLS_EXTENSION_MAX /* not real extension - used for iterators */
} extensions_t;
-#define GNUTLS_EXTENSION_MAX_VALUE 63
-#define ext_track_t uint64_t
+# define GNUTLS_EXTENSION_MAX_VALUE 63
+# define ext_track_t uint64_t
-#include <verify.h>
+# include <verify.h>
verify(GNUTLS_EXTENSION_MAX < GNUTLS_EXTENSION_MAX_VALUE);
verify(GNUTLS_EXTENSION_MAX < MAX_EXT_TYPES);
@@ -359,7 +359,7 @@ verify(GNUTLS_EXTENSION_MAX_VALUE - GNUTLS_EXTENSION_MAX >= 16);
/* The 'verify' symbol from <verify.h> is used extensively in the
* code; undef it to avoid clash
*/
-#undef verify
+# undef verify
typedef enum { CIPHER_STREAM, CIPHER_BLOCK, CIPHER_AEAD } cipher_type_t;
@@ -370,18 +370,17 @@ typedef enum content_type_t {
GNUTLS_HEARTBEAT
} content_type_t;
+# define GNUTLS_PK_ANY (gnutls_pk_algorithm_t)-1
+# define GNUTLS_PK_NONE (gnutls_pk_algorithm_t)-2
-#define GNUTLS_PK_ANY (gnutls_pk_algorithm_t)-1
-#define GNUTLS_PK_NONE (gnutls_pk_algorithm_t)-2
-
-#define GNUTLS_PK_IS_RSA(pk) ((pk) == GNUTLS_PK_RSA || (pk) == GNUTLS_PK_RSA_PSS)
+# define GNUTLS_PK_IS_RSA(pk) ((pk) == GNUTLS_PK_RSA || (pk) == GNUTLS_PK_RSA_PSS)
/* Message buffers (mbuffers) structures */
/* this is actually the maximum number of distinct handshake
* messages that can arrive in a single flight
*/
-#define MAX_HANDSHAKE_MSGS 6
+# define MAX_HANDSHAKE_MSGS 6
typedef struct {
/* Handshake layer type and sequence of message */
gnutls_handshake_description_t htype;
@@ -416,7 +415,6 @@ typedef struct mbuffer_st {
head of the queue. */
size_t mark;
-
/* the data */
gnutls_datum_t msg;
size_t maximum_size;
@@ -468,18 +466,18 @@ typedef struct auth_cred_st {
} auth_cred_st;
/* session ticket definitions */
-#define TICKET_MASTER_KEY_SIZE (TICKET_KEY_NAME_SIZE+TICKET_CIPHER_KEY_SIZE+TICKET_MAC_SECRET_SIZE)
-#define TICKET_KEY_NAME_SIZE 16
-#define TICKET_CIPHER_KEY_SIZE 32
-#define TICKET_MAC_SECRET_SIZE 16
+# define TICKET_MASTER_KEY_SIZE (TICKET_KEY_NAME_SIZE+TICKET_CIPHER_KEY_SIZE+TICKET_MAC_SECRET_SIZE)
+# define TICKET_KEY_NAME_SIZE 16
+# define TICKET_CIPHER_KEY_SIZE 32
+# define TICKET_MAC_SECRET_SIZE 16
/* These are restricted by TICKET_CIPHER_KEY_SIZE and TICKET_MAC_SECRET_SIZE */
-#define TICKET_CIPHER GNUTLS_CIPHER_AES_256_CBC
-#define TICKET_IV_SIZE 16
-#define TICKET_BLOCK_SIZE 16
+# define TICKET_CIPHER GNUTLS_CIPHER_AES_256_CBC
+# define TICKET_IV_SIZE 16
+# define TICKET_BLOCK_SIZE 16
-#define TICKET_MAC_ALGO GNUTLS_MAC_SHA1
-#define TICKET_MAC_SIZE 20 /* HMAC-SHA1 */
+# define TICKET_MAC_ALGO GNUTLS_MAC_SHA1
+# define TICKET_MAC_SIZE 20 /* HMAC-SHA1 */
struct ticket_st {
uint8_t key_name[TICKET_KEY_NAME_SIZE];
@@ -490,23 +488,23 @@ struct ticket_st {
};
struct binder_data_st {
- const struct mac_entry_st *prf; /* non-null if this struct is set */
+ const struct mac_entry_st *prf; /* non-null if this struct is set */
gnutls_datum_t psk;
/* 0-based index of the selected PSK.
* This only applies if the HSK_PSK_SELECTED flag is set in internals.hsk_flags,
* which signals a PSK has indeed been selected. */
uint8_t idx;
- uint8_t resumption; /* whether it is a resumption binder */
+ uint8_t resumption; /* whether it is a resumption binder */
};
-typedef void (* gnutls_stek_rotation_callback_t) (const gnutls_datum_t *prev_key,
- const gnutls_datum_t *new_key,
+typedef void (*gnutls_stek_rotation_callback_t)(const gnutls_datum_t * prev_key,
+ const gnutls_datum_t * new_key,
uint64_t t);
struct gnutls_key_st {
- struct { /* These are kept outside the TLS1.3 union as they are
- * negotiated via extension, even before protocol is negotiated */
+ struct { /* These are kept outside the TLS1.3 union as they are
+ * negotiated via extension, even before protocol is negotiated */
gnutls_pk_params_st ecdh_params;
gnutls_pk_params_st ecdhx_params;
gnutls_pk_params_st dh_params;
@@ -522,25 +520,25 @@ struct gnutls_key_st {
/* the current (depending on state) secret, can be
* early_secret, client_early_traffic_secret, ... */
uint8_t temp_secret[MAX_HASH_SIZE];
- unsigned temp_secret_size; /* depends on negotiated PRF size */
- uint8_t e_ckey[MAX_HASH_SIZE]; /* client_early_traffic_secret */
- uint8_t hs_ckey[MAX_HASH_SIZE]; /* client_hs_traffic_secret */
- uint8_t hs_skey[MAX_HASH_SIZE]; /* server_hs_traffic_secret */
- uint8_t ap_ckey[MAX_HASH_SIZE]; /* client_ap_traffic_secret */
- uint8_t ap_skey[MAX_HASH_SIZE]; /* server_ap_traffic_secret */
- uint8_t ap_expkey[MAX_HASH_SIZE]; /* {early_,}exporter_master_secret */
- uint8_t ap_rms[MAX_HASH_SIZE]; /* resumption_master_secret */
- } tls13; /* tls1.3 */
+ unsigned temp_secret_size; /* depends on negotiated PRF size */
+ uint8_t e_ckey[MAX_HASH_SIZE]; /* client_early_traffic_secret */
+ uint8_t hs_ckey[MAX_HASH_SIZE]; /* client_hs_traffic_secret */
+ uint8_t hs_skey[MAX_HASH_SIZE]; /* server_hs_traffic_secret */
+ uint8_t ap_ckey[MAX_HASH_SIZE]; /* client_ap_traffic_secret */
+ uint8_t ap_skey[MAX_HASH_SIZE]; /* server_ap_traffic_secret */
+ uint8_t ap_expkey[MAX_HASH_SIZE]; /* {early_,}exporter_master_secret */
+ uint8_t ap_rms[MAX_HASH_SIZE]; /* resumption_master_secret */
+ } tls13; /* tls1.3 */
/* Follow the SSL3.0 and TLS1.2 key exchanges */
struct {
/* For ECDH KX */
struct {
- gnutls_pk_params_st params; /* private part */
+ gnutls_pk_params_st params; /* private part */
/* public part */
bigint_t x;
bigint_t y;
- gnutls_datum_t raw; /* public key used in ECDHX (point) */
+ gnutls_datum_t raw; /* public key used in ECDHX (point) */
} ecdh;
/* For DH KX */
@@ -561,7 +559,7 @@ struct gnutls_key_st {
bigint_t a;
bigint_t x;
} srp;
- } tls12; /* from ssl3.0 to tls12 */
+ } tls12; /* from ssl3.0 to tls12 */
} proto;
/* binders / pre-shared keys in use; temporary storage.
@@ -576,13 +574,13 @@ struct gnutls_key_st {
/* TLS pre-master key; applies to 1.2 and 1.3 */
gnutls_datum_t key;
- uint8_t
- /* The key to encrypt and decrypt session tickets */
- session_ticket_key[TICKET_MASTER_KEY_SIZE],
- /* Static buffer for the previous key, whenever we need it */
- previous_ticket_key[TICKET_MASTER_KEY_SIZE],
- /* Initial key supplied by the caller */
- initial_stek[TICKET_MASTER_KEY_SIZE];
+ uint8_t
+ /* The key to encrypt and decrypt session tickets */
+ session_ticket_key[TICKET_MASTER_KEY_SIZE],
+ /* Static buffer for the previous key, whenever we need it */
+ previous_ticket_key[TICKET_MASTER_KEY_SIZE],
+ /* Initial key supplied by the caller */
+ initial_stek[TICKET_MASTER_KEY_SIZE];
/* Whether the initial_stek is set through
* gnutls_session_ticket_enable_server() */
@@ -620,10 +618,10 @@ typedef struct record_state_st record_state_st;
struct record_parameters_st;
typedef struct record_parameters_st record_parameters_st;
-#define GNUTLS_CIPHER_FLAG_ONLY_AEAD (1 << 0) /* When set, this cipher is only available through the new AEAD API */
-#define GNUTLS_CIPHER_FLAG_XOR_NONCE (1 << 1) /* In this TLS AEAD cipher xor the implicit_iv with the nonce */
-#define GNUTLS_CIPHER_FLAG_NO_REKEY (1 << 2) /* whether this tls1.3 cipher doesn't need to rekey after 2^24 messages */
-#define GNUTLS_CIPHER_FLAG_TAG_PREFIXED (1 << 3) /* When set, this cipher prefixes authentication tag */
+# define GNUTLS_CIPHER_FLAG_ONLY_AEAD (1 << 0) /* When set, this cipher is only available through the new AEAD API */
+# define GNUTLS_CIPHER_FLAG_XOR_NONCE (1 << 1) /* In this TLS AEAD cipher xor the implicit_iv with the nonce */
+# define GNUTLS_CIPHER_FLAG_NO_REKEY (1 << 2) /* whether this tls1.3 cipher doesn't need to rekey after 2^24 messages */
+# define GNUTLS_CIPHER_FLAG_TAG_PREFIXED (1 << 3) /* When set, this cipher prefixes authentication tag */
/* cipher and mac parameters */
typedef struct cipher_entry_st {
@@ -657,7 +655,6 @@ typedef struct gnutls_cipher_suite_entry_st {
gnutls_mac_algorithm_t prf;
} gnutls_cipher_suite_entry_st;
-
typedef struct gnutls_group_entry_st {
const char *name;
gnutls_group_t id;
@@ -667,19 +664,19 @@ typedef struct gnutls_group_entry_st {
const unsigned *q_bits;
gnutls_ecc_curve_t curve;
gnutls_pk_algorithm_t pk;
- unsigned tls_id; /* The RFC4492 namedCurve ID or TLS 1.3 group ID */
+ unsigned tls_id; /* The RFC4492 namedCurve ID or TLS 1.3 group ID */
} gnutls_group_entry_st;
-#define GNUTLS_MAC_FLAG_PREIMAGE_INSECURE 1 /* if this algorithm should not be trusted for pre-image attacks */
-#define GNUTLS_MAC_FLAG_CONTINUOUS_MAC (1 << 1) /* if this MAC should be used in a 'continuous' way in TLS */
-#define GNUTLS_MAC_FLAG_PREIMAGE_INSECURE_REVERTIBLE (1 << 2) /* if this algorithm should not be trusted for pre-image attacks, but can be enabled through API */
-#define GNUTLS_MAC_FLAG_ALLOW_INSECURE_REVERTIBLE (1 << 3) /* when checking with _gnutls_digest_is_insecure2, don't treat revertible setting as fatal */
+# define GNUTLS_MAC_FLAG_PREIMAGE_INSECURE 1 /* if this algorithm should not be trusted for pre-image attacks */
+# define GNUTLS_MAC_FLAG_CONTINUOUS_MAC (1 << 1) /* if this MAC should be used in a 'continuous' way in TLS */
+# define GNUTLS_MAC_FLAG_PREIMAGE_INSECURE_REVERTIBLE (1 << 2) /* if this algorithm should not be trusted for pre-image attacks, but can be enabled through API */
+# define GNUTLS_MAC_FLAG_ALLOW_INSECURE_REVERTIBLE (1 << 3) /* when checking with _gnutls_digest_is_insecure2, don't treat revertible setting as fatal */
/* This structure is used both for MACs and digests
*/
typedef struct mac_entry_st {
const char *name;
const char *oid; /* OID of the hash - if it is a hash */
- const char *mac_oid; /* OID of the MAC algorithm - if it is a MAC */
+ const char *mac_oid; /* OID of the MAC algorithm - if it is a MAC */
gnutls_mac_algorithm_t id;
unsigned output_size;
unsigned key_size;
@@ -696,7 +693,7 @@ typedef struct {
uint8_t major; /* defined by the protocol */
uint8_t minor; /* defined by the protocol */
transport_t transport; /* Type of transport, stream or datagram */
- bool supported; /* 0 not supported, > 0 is supported */
+ bool supported; /* 0 not supported, > 0 is supported */
bool supported_revertible;
bool explicit_iv;
bool extensions; /* whether it supports extensions */
@@ -720,15 +717,14 @@ typedef struct {
uint8_t tls_sig_sem;
} version_entry_st;
-
/* STATE (cont) */
-#include <hash_int.h>
-#include <cipher_int.h>
+# include <hash_int.h>
+# include <cipher_int.h>
typedef struct {
- uint8_t id[2]; /* used to be (in TLS 1.2) hash algorithm , PK algorithm */
- uint8_t tls_sem; /* should match the protocol version's tls_sig_sem. */
+ uint8_t id[2]; /* used to be (in TLS 1.2) hash algorithm , PK algorithm */
+ uint8_t tls_sem; /* should match the protocol version's tls_sig_sem. */
} sign_algorithm_st;
/* This structure holds parameters got from TLS extension
@@ -736,7 +732,7 @@ typedef struct {
* structures also - see SRP).
*/
-#define MAX_VERIFY_DATA_SIZE 36 /* in SSL 3.0, 12 in TLS 1.0 */
+# define MAX_VERIFY_DATA_SIZE 36/* in SSL 3.0, 12 in TLS 1.0 */
/* auth_info_t structures now MAY contain malloced
* elements.
@@ -822,7 +818,7 @@ typedef struct {
/* encrypt-then-mac -> rfc7366 */
uint8_t etm;
- uint8_t client_auth_type; /* gnutls_credentials_type_t */
+ uint8_t client_auth_type; /* gnutls_credentials_type_t */
uint8_t server_auth_type;
/* Note: if you add anything in Security_Parameters struct, then
@@ -862,14 +858,13 @@ struct record_state_st {
gnutls_record_encryption_level_t level;
};
-
/* These are used to resolve relative epochs. These values are just
outside the 16 bit range to prevent off-by-one errors. An absolute
epoch may be referred to by its numeric id in the range
0x0000-0xffff. */
-#define EPOCH_READ_CURRENT 70000
-#define EPOCH_WRITE_CURRENT 70001
-#define EPOCH_NEXT 70002
+# define EPOCH_READ_CURRENT 70000
+# define EPOCH_WRITE_CURRENT 70001
+# define EPOCH_NEXT 70002
struct record_parameters_st {
uint16_t epoch;
@@ -880,9 +875,9 @@ struct record_parameters_st {
const mac_entry_st *mac;
/* for DTLS sliding window */
- uint64_t dtls_sw_next; /* The end point (next expected packet) of the sliding window without epoch */
+ uint64_t dtls_sw_next; /* The end point (next expected packet) of the sliding window without epoch */
uint64_t dtls_sw_bits;
- unsigned dtls_sw_have_recv; /* whether at least a packet has been received */
+ unsigned dtls_sw_have_recv; /* whether at least a packet has been received */
record_state_st read;
record_state_st write;
@@ -906,7 +901,7 @@ typedef enum {
SR_SAFE
} safe_renegotiation_t;
-#define MAX_CIPHERSUITE_SIZE 256
+# define MAX_CIPHERSUITE_SIZE 256
typedef struct ciphersuite_list_st {
const gnutls_cipher_suite_entry_st *entry[MAX_CIPHERSUITE_SIZE];
@@ -924,7 +919,7 @@ typedef struct sign_algo_list_st {
unsigned int size;
} sign_algo_list_st;
-#include "atomic.h"
+# include "atomic.h"
/* For the external api */
struct gnutls_priority_st {
@@ -953,11 +948,10 @@ struct gnutls_priority_st {
/* to disable record padding */
bool no_extensions;
-
safe_renegotiation_t sr;
bool min_record_version;
bool server_precedence;
- bool allow_server_key_usage_violation; /* for test suite purposes only */
+ bool allow_server_key_usage_violation; /* for test suite purposes only */
bool no_status_request;
bool no_tickets;
bool no_tickets_tls12;
@@ -987,15 +981,15 @@ struct gnutls_priority_st {
bool _dumbfw;
unsigned int _dh_prime_bits; /* old (deprecated) variable */
- DEF_ATOMIC_INT(usage_cnt);
+ DEF_ATOMIC_INT(usage_cnt);
};
/* Allow around 50KB of length-hiding padding
* when using legacy padding,
* or around 3.2MB when using new padding. */
-#define DEFAULT_MAX_EMPTY_RECORDS 200
+# define DEFAULT_MAX_EMPTY_RECORDS 200
-#define ENABLE_COMPAT(x) \
+# define ENABLE_COMPAT(x) \
(x)->allow_large_records = 1; \
(x)->allow_small_records = 1; \
(x)->no_etm = 1; \
@@ -1004,7 +998,7 @@ struct gnutls_priority_st {
(x)->allow_wrong_pms = 1; \
(x)->dumbfw = 1
-#define ENABLE_PRIO_COMPAT(x) \
+# define ENABLE_PRIO_COMPAT(x) \
(x)->_allow_large_records = 1; \
(x)->_allow_small_records = 1; \
(x)->_no_etm = 1; \
@@ -1076,7 +1070,7 @@ typedef struct {
typedef struct tfo_st {
int fd;
int flags;
- bool connect_only; /* a previous sendmsg() failed, attempting connect() */
+ bool connect_only; /* a previous sendmsg() failed, attempting connect() */
struct sockaddr_storage connect_addr;
socklen_t connect_addrlen;
} tfo_st;
@@ -1087,21 +1081,21 @@ typedef struct {
int handshake_hash_buffer_prev_len; /* keeps the length of handshake_hash_buffer, excluding
* the last received message */
- unsigned handshake_hash_buffer_client_hello_len; /* if non-zero it is the length of data until the client hello message */
- unsigned handshake_hash_buffer_client_kx_len;/* if non-zero it is the length of data until the
- * the client key exchange message */
- unsigned handshake_hash_buffer_server_finished_len;/* if non-zero it is the length of data until the
- * the server finished message */
- unsigned handshake_hash_buffer_client_finished_len;/* if non-zero it is the length of data until the
- * the client finished message */
+ unsigned handshake_hash_buffer_client_hello_len; /* if non-zero it is the length of data until the client hello message */
+ unsigned handshake_hash_buffer_client_kx_len; /* if non-zero it is the length of data until the
+ * the client key exchange message */
+ unsigned handshake_hash_buffer_server_finished_len; /* if non-zero it is the length of data until the
+ * the server finished message */
+ unsigned handshake_hash_buffer_client_finished_len; /* if non-zero it is the length of data until the
+ * the client finished message */
gnutls_buffer_st handshake_hash_buffer; /* used to keep the last received handshake
* message */
- bool resumable; /* if we can resume that session */
+ bool resumable; /* if we can resume that session */
- send_ticket_state_t ticket_state; /* used by gnutls_session_ticket_send() */
- bye_state_t bye_state; /* used by gnutls_bye() */
- reauth_state_t reauth_state; /* used by gnutls_reauth() */
+ send_ticket_state_t ticket_state; /* used by gnutls_session_ticket_send() */
+ bye_state_t bye_state; /* used by gnutls_bye() */
+ reauth_state_t reauth_state; /* used by gnutls_reauth() */
handshake_state_t handshake_final_state;
handshake_state_t handshake_state; /* holds
@@ -1143,16 +1137,16 @@ typedef struct {
/* For SRP: minimum bits to allow for SRP
* use gnutls_srp_set_prime_bits() to adjust it.
*/
- uint16_t dh_prime_bits; /* srp_prime_bits */
+ uint16_t dh_prime_bits; /* srp_prime_bits */
/* resumed session */
- bool resumed; /* if we are resuming a session */
+ bool resumed; /* if we are resuming a session */
/* server side: non-zero if resumption was requested by client
* client side: non-zero if we set resumption parameters */
bool resumption_requested;
security_parameters_st resumed_security_parameters;
- gnutls_datum_t resumption_data; /* copy of input to gnutls_session_set_data() */
+ gnutls_datum_t resumption_data; /* copy of input to gnutls_session_set_data() */
/* These buffers are used in the handshake
* protocol only. freed using _gnutls_handshake_io_buffer_clear();
@@ -1268,7 +1262,6 @@ typedef struct {
void *selected_ocsp_func_ptr;
bool selected_need_free;
-
/* This holds the default version that our first
* record packet will have. */
uint8_t default_record_version[2];
@@ -1304,9 +1297,9 @@ typedef struct {
/* A handshake process has been completed */
bool initial_negotiation_completed;
- void *post_negotiation_lock; /* protects access to the variable above
- * in the cases where negotiation is incomplete
- * after gnutls_handshake() - early/false start */
+ void *post_negotiation_lock; /* protects access to the variable above
+ * in the cases where negotiation is incomplete
+ * after gnutls_handshake() - early/false start */
/* The type of transport protocol; stream or datagram */
transport_t transport;
@@ -1347,51 +1340,51 @@ typedef struct {
gnutls_buffer_st post_handshake_hash_buffer;
/* When either of PSK or DHE-PSK is received */
-#define HSK_PSK_KE_MODES_RECEIVED (HSK_PSK_KE_MODE_PSK|HSK_PSK_KE_MODE_DHE_PSK|HSK_PSK_KE_MODE_INVALID)
-
-#define HSK_CRT_VRFY_EXPECTED 1
-#define HSK_CRT_ASKED (1<<2)
-#define HSK_HRR_SENT (1<<3)
-#define HSK_HRR_RECEIVED (1<<4)
-#define HSK_CRT_REQ_SENT (1<<5)
-#define HSK_COMP_CRT_REQ_SENT (1<<6) /* whether certificate compression has been requested */
-#define HSK_KEY_UPDATE_ASKED (1<<7) /* flag is not used during handshake */
-#define HSK_FALSE_START_USED (1<<8) /* TLS1.2 only */
-#define HSK_HAVE_FFDHE (1<<9) /* whether the peer has advertized at least an FFDHE group */
-#define HSK_USED_FFDHE (1<<10) /* whether ffdhe was actually negotiated and used */
-#define HSK_PSK_KE_MODES_SENT (1<<11)
-#define HSK_PSK_KE_MODE_PSK (1<<12) /* client: whether PSK without DH is allowed,
- * server: whether PSK without DH is selected. */
-#define HSK_PSK_KE_MODE_INVALID (1<<13) /* server: no compatible PSK modes were seen */
-#define HSK_PSK_KE_MODE_DHE_PSK (1<<14) /* server: whether PSK with DH is selected
+# define HSK_PSK_KE_MODES_RECEIVED (HSK_PSK_KE_MODE_PSK|HSK_PSK_KE_MODE_DHE_PSK|HSK_PSK_KE_MODE_INVALID)
+
+# define HSK_CRT_VRFY_EXPECTED 1
+# define HSK_CRT_ASKED (1<<2)
+# define HSK_HRR_SENT (1<<3)
+# define HSK_HRR_RECEIVED (1<<4)
+# define HSK_CRT_REQ_SENT (1<<5)
+# define HSK_COMP_CRT_REQ_SENT (1<<6) /* whether certificate compression has been requested */
+# define HSK_KEY_UPDATE_ASKED (1<<7) /* flag is not used during handshake */
+# define HSK_FALSE_START_USED (1<<8) /* TLS1.2 only */
+# define HSK_HAVE_FFDHE (1<<9) /* whether the peer has advertized at least an FFDHE group */
+# define HSK_USED_FFDHE (1<<10) /* whether ffdhe was actually negotiated and used */
+# define HSK_PSK_KE_MODES_SENT (1<<11)
+# define HSK_PSK_KE_MODE_PSK (1<<12) /* client: whether PSK without DH is allowed,
+ * server: whether PSK without DH is selected. */
+# define HSK_PSK_KE_MODE_INVALID (1<<13)/* server: no compatible PSK modes were seen */
+# define HSK_PSK_KE_MODE_DHE_PSK (1<<14)/* server: whether PSK with DH is selected
* client: whether PSK with DH is allowed
*/
-#define HSK_PSK_SELECTED (1<<15) /* server: whether PSK was selected, either for resumption or not;
- * on resumption session->internals.resumed will be set as well.
- * client: the same */
-#define HSK_KEY_SHARE_SENT (1<<16) /* server: key share was sent to client */
-#define HSK_KEY_SHARE_RECEIVED (1<<17) /* client: key share was received
- * server: key share was received and accepted */
-#define HSK_TLS13_TICKET_SENT (1<<18) /* client: sent a ticket under TLS1.3;
+# define HSK_PSK_SELECTED (1<<15) /* server: whether PSK was selected, either for resumption or not;
+ * on resumption session->internals.resumed will be set as well.
+ * client: the same */
+# define HSK_KEY_SHARE_SENT (1<<16) /* server: key share was sent to client */
+# define HSK_KEY_SHARE_RECEIVED (1<<17) /* client: key share was received
+ * server: key share was received and accepted */
+# define HSK_TLS13_TICKET_SENT (1<<18) /* client: sent a ticket under TLS1.3;
* server: a ticket was sent to client.
*/
-#define HSK_TLS12_TICKET_SENT (1<<19) /* client: sent a ticket under TLS1.2;
- * server: a ticket was sent to client.
- */
-#define HSK_TICKET_RECEIVED (1<<20) /* client: a session ticket was received */
-#define HSK_EARLY_START_USED (1<<21)
-#define HSK_EARLY_DATA_IN_FLIGHT (1<<22) /* client: sent early_data extension in ClientHello
- * server: early_data extension was seen in ClientHello
- */
-#define HSK_EARLY_DATA_ACCEPTED (1<<23) /* client: early_data extension was seen in EncryptedExtensions
+# define HSK_TLS12_TICKET_SENT (1<<19) /* client: sent a ticket under TLS1.2;
+ * server: a ticket was sent to client.
+ */
+# define HSK_TICKET_RECEIVED (1<<20) /* client: a session ticket was received */
+# define HSK_EARLY_START_USED (1<<21)
+# define HSK_EARLY_DATA_IN_FLIGHT (1<<22) /* client: sent early_data extension in ClientHello
+ * server: early_data extension was seen in ClientHello
+ */
+# define HSK_EARLY_DATA_ACCEPTED (1<<23)/* client: early_data extension was seen in EncryptedExtensions
* server: intend to process early data
*/
-#define HSK_RECORD_SIZE_LIMIT_NEGOTIATED (1<<24)
-#define HSK_RECORD_SIZE_LIMIT_SENT (1<<25) /* record_size_limit extension was sent */
-#define HSK_RECORD_SIZE_LIMIT_RECEIVED (1<<26) /* server: record_size_limit extension was seen but not accepted yet */
-#define HSK_OCSP_REQUESTED (1<<27) /* server: client requested OCSP stapling */
-#define HSK_CLIENT_OCSP_REQUESTED (1<<28) /* client: server requested OCSP stapling */
-#define HSK_SERVER_HELLO_RECEIVED (1<<29) /* client: Server Hello message has been received */
+# define HSK_RECORD_SIZE_LIMIT_NEGOTIATED (1<<24)
+# define HSK_RECORD_SIZE_LIMIT_SENT (1<<25) /* record_size_limit extension was sent */
+# define HSK_RECORD_SIZE_LIMIT_RECEIVED (1<<26) /* server: record_size_limit extension was seen but not accepted yet */
+# define HSK_OCSP_REQUESTED (1<<27) /* server: client requested OCSP stapling */
+# define HSK_CLIENT_OCSP_REQUESTED (1<<28) /* client: server requested OCSP stapling */
+# define HSK_SERVER_HELLO_RECEIVED (1<<29) /* client: Server Hello message has been received */
/* The hsk_flags are for use within the ongoing handshake;
* they are reset to zero prior to handshake start by gnutls_handshake. */
@@ -1412,7 +1405,7 @@ typedef struct {
unsigned int hb_total_timeout_ms; /* the total timeout, in milliseconds */
bool ocsp_check_ok; /* will be zero if the OCSP response TLS extension
- * check failed (OCSP was old/unrelated or so). */
+ * check failed (OCSP was old/unrelated or so). */
heartbeat_state_t hb_state; /* for ping */
@@ -1421,8 +1414,8 @@ typedef struct {
/* if set, server and client random were set by the application */
bool sc_random_set;
-#define INT_FLAG_NO_TLS13 (1LL<<60)
- uint64_t flags; /* the flags in gnutls_init() and GNUTLS_INT_FLAGS */
+# define INT_FLAG_NO_TLS13 (1LL<<60)
+ uint64_t flags; /* the flags in gnutls_init() and GNUTLS_INT_FLAGS */
/* a verify callback to override the verify callback from the credentials
* structure */
@@ -1431,12 +1424,12 @@ typedef struct {
gnutls_typed_vdata_st vc_sdata;
unsigned vc_elements;
unsigned vc_status;
- unsigned int additional_verify_flags; /* may be set by priorities or the vc functions */
+ unsigned int additional_verify_flags; /* may be set by priorities or the vc functions */
/* we append the verify flags because these can be set,
* either by this function or by gnutls_session_set_verify_cert().
* However, we ensure that a single profile is set. */
-#define ADD_PROFILE_VFLAGS(session, vflags) do { \
+# define ADD_PROFILE_VFLAGS(session, vflags) do { \
if ((session->internals.additional_verify_flags & GNUTLS_VFLAGS_PROFILE_MASK) && \
(vflags & GNUTLS_VFLAGS_PROFILE_MASK)) \
session->internals.additional_verify_flags &= ~GNUTLS_VFLAGS_PROFILE_MASK; \
@@ -1463,7 +1456,7 @@ typedef struct {
struct hello_ext_entry_st *rexts;
unsigned rexts_size;
- struct { /* ext_data[id] contains data for extension_t id */
+ struct { /* ext_data[id] contains data for extension_t id */
gnutls_ext_priv_data_t priv;
gnutls_ext_priv_data_t resumed_priv;
uint8_t set;
@@ -1476,7 +1469,7 @@ typedef struct {
*/
ext_track_t used_exts;
- gnutls_ext_flags_t ext_msg; /* accessed through _gnutls_ext_get/set_msg() */
+ gnutls_ext_flags_t ext_msg; /* accessed through _gnutls_ext_get/set_msg() */
/* this is not the negotiated max_record_recv_size, but the actual maximum
* receive size */
@@ -1518,9 +1511,9 @@ typedef struct {
} internals_st;
/* Maximum number of epochs we keep around. */
-#define MAX_EPOCH_INDEX 4
+# define MAX_EPOCH_INDEX 4
-#define reset_cand_groups(session) \
+# define reset_cand_groups(session) \
session->internals.cand_ec_group = session->internals.cand_dh_group = \
session->internals.cand_group = NULL
@@ -1531,7 +1524,6 @@ struct gnutls_session_int {
gnutls_key_st key;
};
-
/* functions
*/
void _gnutls_free_auth_info(gnutls_session_t session);
@@ -1539,13 +1531,13 @@ void _gnutls_free_auth_info(gnutls_session_t session);
/* These two macros return the advertised TLS version of
* the peer.
*/
-#define _gnutls_get_adv_version_major(session) \
+# define _gnutls_get_adv_version_major(session) \
session->internals.adv_version_major
-#define _gnutls_get_adv_version_minor(session) \
+# define _gnutls_get_adv_version_minor(session) \
session->internals.adv_version_minor
-#define set_adv_version(session, major, minor) \
+# define set_adv_version(session, major, minor) \
session->internals.adv_version_major = major; \
session->internals.adv_version_minor = minor
@@ -1568,12 +1560,13 @@ void _gnutls_priority_update_fips(void);
void _gnutls_priority_update_non_aesni(void);
extern unsigned _gnutls_disable_tls13;
-#define timespec_sub_ms _gnutls_timespec_sub_ms
+# define timespec_sub_ms _gnutls_timespec_sub_ms
unsigned int
/* returns a-b in ms */
timespec_sub_ms(struct timespec *a, struct timespec *b);
-inline static int _gnutls_timespec_cmp(struct timespec *a, struct timespec *b) {
+inline static int _gnutls_timespec_cmp(struct timespec *a, struct timespec *b)
+{
if (a->tv_sec < b->tv_sec)
return -1;
if (a->tv_sec > b->tv_sec)
@@ -1585,7 +1578,7 @@ inline static int _gnutls_timespec_cmp(struct timespec *a, struct timespec *b) {
return 0;
}
-#include <algorithms.h>
+# include <algorithms.h>
inline static int _gnutls_set_current_version(gnutls_session_t s, unsigned v)
{
s->security_parameters.pversion = version_to_entry(v);
@@ -1617,41 +1610,40 @@ inline static size_t max_record_send_size(gnutls_session_t session)
* This function is made static inline for optimization reasons.
*/
inline static gnutls_certificate_type_t
-get_certificate_type(gnutls_session_t session,
- gnutls_ctype_target_t target)
+get_certificate_type(gnutls_session_t session, gnutls_ctype_target_t target)
{
switch (target) {
- case GNUTLS_CTYPE_CLIENT:
+ case GNUTLS_CTYPE_CLIENT:
+ return session->security_parameters.client_ctype;
+ break;
+ case GNUTLS_CTYPE_SERVER:
+ return session->security_parameters.server_ctype;
+ break;
+ case GNUTLS_CTYPE_OURS:
+ if (IS_SERVER(session)) {
+ return session->security_parameters.server_ctype;
+ } else {
+ return session->security_parameters.client_ctype;
+ }
+ break;
+ case GNUTLS_CTYPE_PEERS:
+ if (IS_SERVER(session)) {
return session->security_parameters.client_ctype;
- break;
- case GNUTLS_CTYPE_SERVER:
+ } else {
return session->security_parameters.server_ctype;
- break;
- case GNUTLS_CTYPE_OURS:
- if (IS_SERVER(session)) {
- return session->security_parameters.server_ctype;
- } else {
- return session->security_parameters.client_ctype;
- }
- break;
- case GNUTLS_CTYPE_PEERS:
- if (IS_SERVER(session)) {
- return session->security_parameters.client_ctype;
- } else {
- return session->security_parameters.server_ctype;
- }
- break;
- default: // Illegal parameter passed
- return GNUTLS_CRT_UNKNOWN;
+ }
+ break;
+ default: // Illegal parameter passed
+ return GNUTLS_CRT_UNKNOWN;
}
}
/* Macros to aide constant time/mem checks */
-#define CONSTCHECK_NOT_EQUAL(a, b) ((-((uint32_t)(a) ^ (uint32_t)(b))) >> 31)
-#define CONSTCHECK_EQUAL(a, b) (1U - CONSTCHECK_NOT_EQUAL(a, b))
+# define CONSTCHECK_NOT_EQUAL(a, b) ((-((uint32_t)(a) ^ (uint32_t)(b))) >> 31)
+# define CONSTCHECK_EQUAL(a, b) (1U - CONSTCHECK_NOT_EQUAL(a, b))
extern unsigned int _gnutls_global_version;
bool _gnutls_config_is_ktls_enabled(void);
-#endif /* GNUTLS_LIB_GNUTLS_INT_H */
+#endif /* GNUTLS_LIB_GNUTLS_INT_H */
diff --git a/lib/gthreads.h b/lib/gthreads.h
index 72bdb56ae9..9d7846f8b1 100644
--- a/lib/gthreads.h
+++ b/lib/gthreads.h
@@ -21,20 +21,20 @@
*/
#ifndef GNUTLS_LIB_GTHREADS_H
-#define GNUTLS_LIB_GTHREADS_H
+# define GNUTLS_LIB_GTHREADS_H
-#include <config.h>
+# include <config.h>
/* Using a C99-only compiler installed in parallel with modern C11 environment
* will see HAVE_THREADS_H, but won't be able to use _Thread_local. */
-#if __STDC_VERSION__ >= 201112 && !defined(__STDC_NO_THREADS__) && defined(HAVE_THREADS_H)
-# include <threads.h>
-#elif defined(__GNUC__) || defined(__SUNPRO_C) || defined(__xlC__) /* clang is covered by __GNUC__ */
-# define _Thread_local __thread
-#elif defined(_MSC_VER)
-# define _Thread_local __declspec(thread)
-#else
-# error Unsupported platform
-#endif
+# if __STDC_VERSION__ >= 201112 && !defined(__STDC_NO_THREADS__) && defined(HAVE_THREADS_H)
+# include <threads.h>
+# elif defined(__GNUC__) || defined(__SUNPRO_C) || defined(__xlC__) /* clang is covered by __GNUC__ */
+# define _Thread_local __thread
+# elif defined(_MSC_VER)
+# define _Thread_local __declspec(thread)
+# else
+# error Unsupported platform
+# endif
-#endif /* GNUTLS_LIB_GTHREADS_H */
+#endif /* GNUTLS_LIB_GTHREADS_H */
diff --git a/lib/handshake-checks.c b/lib/handshake-checks.c
index f5a3a4d3d2..c7be9e9e19 100644
--- a/lib/handshake-checks.c
+++ b/lib/handshake-checks.c
@@ -57,15 +57,18 @@ int _gnutls_check_id_for_change(gnutls_session_t session)
ai = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
if (ai == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
username = ai->username;
username_length = ai->username_len;
#ifdef ENABLE_SRP
} else {
- srp_server_auth_info_t ai = _gnutls_get_auth_info(session, GNUTLS_CRD_SRP);
+ srp_server_auth_info_t ai =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_SRP);
if (ai == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
username = ai->username;
username_length = strlen(ai->username);
@@ -77,22 +80,29 @@ int _gnutls_check_id_for_change(gnutls_session_t session)
if (session->internals.saved_username &&
session->internals.saved_username_size != -1) {
- if (session->internals.saved_username_size == username_length &&
- strncmp(session->internals.saved_username, username, username_length)) {
- _gnutls_debug_log("Session's PSK username changed during rehandshake; aborting!\n");
- return gnutls_assert_val(GNUTLS_E_SESSION_USER_ID_CHANGED);
+ if (session->internals.saved_username_size ==
+ username_length
+ && strncmp(session->internals.saved_username,
+ username, username_length)) {
+ _gnutls_debug_log
+ ("Session's PSK username changed during rehandshake; aborting!\n");
+ return
+ gnutls_assert_val
+ (GNUTLS_E_SESSION_USER_ID_CHANGED);
}
} else if (session->internals.saved_username == NULL &&
session->internals.saved_username_size == -1) {
if (username_length > MAX_USERNAME_SIZE)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
char *tmp = gnutls_malloc(username_length + 1);
if (tmp == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
memcpy(tmp, username, username_length);
tmp[username_length] = '\0';
session->internals.saved_username = tmp;
- session->internals.saved_username_size = username_length;
+ session->internals.saved_username_size =
+ username_length;
} else
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
@@ -101,7 +111,8 @@ int _gnutls_check_id_for_change(gnutls_session_t session)
return 0;
}
-int _gnutls_check_if_cert_hash_is_same(gnutls_session_t session, gnutls_certificate_credentials_t cred)
+int _gnutls_check_if_cert_hash_is_same(gnutls_session_t session,
+ gnutls_certificate_credentials_t cred)
{
cert_auth_info_t ai;
char tmp[32];
@@ -114,17 +125,18 @@ int _gnutls_check_if_cert_hash_is_same(gnutls_session_t session, gnutls_certific
if (ai == NULL || ai->ncerts == 0)
return 0;
- ret = gnutls_hash_fast(GNUTLS_DIG_SHA256,
+ ret = gnutls_hash_fast(GNUTLS_DIG_SHA256,
ai->raw_certificate_list[0].data,
- ai->raw_certificate_list[0].size,
- tmp);
+ ai->raw_certificate_list[0].size, tmp);
if (ret < 0)
return gnutls_assert_val(ret);
if (session->internals.cert_hash_set) {
if (memcmp(tmp, session->internals.cert_hash, 32) != 0) {
- _gnutls_debug_log("Session certificate changed during rehandshake; aborting!\n");
- return gnutls_assert_val(GNUTLS_E_SESSION_USER_ID_CHANGED);
+ _gnutls_debug_log
+ ("Session certificate changed during rehandshake; aborting!\n");
+ return
+ gnutls_assert_val(GNUTLS_E_SESSION_USER_ID_CHANGED);
}
} else {
memcpy(session->internals.cert_hash, tmp, 32);
diff --git a/lib/handshake-defs.h b/lib/handshake-defs.h
index 0b89cca608..efff51a070 100644
--- a/lib/handshake-defs.h
+++ b/lib/handshake-defs.h
@@ -20,30 +20,30 @@
*
*/
#ifndef HANDSHAKE_DEFS_H
-#define HANDSHAKE_DEFS_H
+# define HANDSHAKE_DEFS_H
-#define EARLY_TRAFFIC_LABEL "c e traffic"
-#define EXT_BINDER_LABEL "ext binder"
-#define RES_BINDER_LABEL "res binder"
-#define EARLY_EXPORTER_MASTER_LABEL "e exp master"
-#define HANDSHAKE_CLIENT_TRAFFIC_LABEL "c hs traffic"
-#define HANDSHAKE_SERVER_TRAFFIC_LABEL "s hs traffic"
-#define DERIVED_LABEL "derived"
-#define APPLICATION_CLIENT_TRAFFIC_LABEL "c ap traffic"
-#define APPLICATION_SERVER_TRAFFIC_LABEL "s ap traffic"
-#define APPLICATION_TRAFFIC_UPDATE "traffic upd"
-#define EXPORTER_MASTER_LABEL "exp master"
-#define RMS_MASTER_LABEL "res master"
-#define EXPORTER_LABEL "exporter"
-#define RESUMPTION_LABEL "resumption"
+# define EARLY_TRAFFIC_LABEL "c e traffic"
+# define EXT_BINDER_LABEL "ext binder"
+# define RES_BINDER_LABEL "res binder"
+# define EARLY_EXPORTER_MASTER_LABEL "e exp master"
+# define HANDSHAKE_CLIENT_TRAFFIC_LABEL "c hs traffic"
+# define HANDSHAKE_SERVER_TRAFFIC_LABEL "s hs traffic"
+# define DERIVED_LABEL "derived"
+# define APPLICATION_CLIENT_TRAFFIC_LABEL "c ap traffic"
+# define APPLICATION_SERVER_TRAFFIC_LABEL "s ap traffic"
+# define APPLICATION_TRAFFIC_UPDATE "traffic upd"
+# define EXPORTER_MASTER_LABEL "exp master"
+# define RMS_MASTER_LABEL "res master"
+# define EXPORTER_LABEL "exporter"
+# define RESUMPTION_LABEL "resumption"
-#define HRR_RANDOM \
+# define HRR_RANDOM \
"\xCF\x21\xAD\x74\xE5\x9A\x61\x11\xBE\x1D\x8C\x02\x1E\x65\xB8\x91" \
"\xC2\xA2\x11\x16\x7A\xBB\x8C\x5E\x07\x9E\x09\xE2\xC8\xA8\x33\x9C"
-#define TLS13_TICKETS_TO_SEND 2
+# define TLS13_TICKETS_TO_SEND 2
/* Enable: Appendix D4. Middlebox Compatibility Mode */
-#define TLS13_APPENDIX_D4 1
+# define TLS13_APPENDIX_D4 1
-#endif /* HANDSHAKE_DEFS_H */
+#endif /* HANDSHAKE_DEFS_H */
diff --git a/lib/handshake-tls13.c b/lib/handshake-tls13.c
index d2c2c1389a..da124a1c7a 100644
--- a/lib/handshake-tls13.c
+++ b/lib/handshake-tls13.c
@@ -89,7 +89,9 @@ int _gnutls13_handshake_client(gnutls_session_t session)
!(session->internals.hsk_flags & HSK_EARLY_DATA_IN_FLIGHT)) {
/* We send it before keys are generated. That works because CCS
* is always being cached and queued and not being sent directly */
- ret = _gnutls_send_change_cipher_spec(session, AGAIN(STATE100));
+ ret =
+ _gnutls_send_change_cipher_spec(session,
+ AGAIN(STATE100));
STATE = STATE100;
IMED_RET("send change cipher spec", ret, 0);
}
@@ -103,7 +105,9 @@ int _gnutls13_handshake_client(gnutls_session_t session)
* speculatively. */
IMED_RET_FATAL("generate hs traffic keys", ret, 0);
if (session->internals.hsk_flags & HSK_EARLY_DATA_IN_FLIGHT)
- ret = _tls13_read_connection_state_init(session, STAGE_HS);
+ ret =
+ _tls13_read_connection_state_init(session,
+ STAGE_HS);
else
ret = _tls13_connection_state_init(session, STAGE_HS);
IMED_RET_FATAL("set hs traffic keys", ret, 0);
@@ -140,7 +144,8 @@ int _gnutls13_handshake_client(gnutls_session_t session)
IMED_RET("recv finished", ret, 0);
FALLTHROUGH;
case STATE108:
- ret = _gnutls13_send_end_of_early_data(session, AGAIN(STATE108));
+ ret =
+ _gnutls13_send_end_of_early_data(session, AGAIN(STATE108));
STATE = STATE108;
IMED_RET("send end of early data", ret, 0);
@@ -148,9 +153,14 @@ int _gnutls13_handshake_client(gnutls_session_t session)
* here. This is because the client sends early data
* speculatively. */
if (session->internals.hsk_flags & HSK_EARLY_DATA_IN_FLIGHT) {
- session->internals.hsk_flags &= ~HSK_EARLY_DATA_IN_FLIGHT;
- ret = _tls13_write_connection_state_init(session, STAGE_HS);
- IMED_RET_FATAL("set hs traffic key after sending early data", ret, 0);
+ session->internals.hsk_flags &=
+ ~HSK_EARLY_DATA_IN_FLIGHT;
+ ret =
+ _tls13_write_connection_state_init(session,
+ STAGE_HS);
+ IMED_RET_FATAL
+ ("set hs traffic key after sending early data", ret,
+ 0);
}
FALLTHROUGH;
case STATE109:
@@ -159,7 +169,8 @@ int _gnutls13_handshake_client(gnutls_session_t session)
IMED_RET("send certificate", ret, 0);
FALLTHROUGH;
case STATE110:
- ret = _gnutls13_send_certificate_verify(session, AGAIN(STATE110));
+ ret =
+ _gnutls13_send_certificate_verify(session, AGAIN(STATE110));
STATE = STATE110;
IMED_RET("send certificate verify", ret, 0);
FALLTHROUGH;
@@ -171,8 +182,7 @@ int _gnutls13_handshake_client(gnutls_session_t session)
case STATE112:
STATE = STATE112;
- ret =
- generate_ap_traffic_keys(session);
+ ret = generate_ap_traffic_keys(session);
IMED_RET_FATAL("generate app keys", ret, 0);
ret = generate_rms_keys(session);
@@ -205,31 +215,41 @@ static int generate_non_auth_rms_keys(gnutls_session_t session)
{
int ret;
/* we simulate client finished */
- uint8_t finished[MAX_HASH_SIZE+TLS_HANDSHAKE_HEADER_SIZE];
+ uint8_t finished[MAX_HASH_SIZE + TLS_HANDSHAKE_HEADER_SIZE];
unsigned spos;
ret = _gnutls13_compute_finished(session->security_parameters.prf,
session->key.proto.tls13.hs_ckey,
- &session->internals.handshake_hash_buffer,
- finished+TLS_HANDSHAKE_HEADER_SIZE);
+ &session->
+ internals.handshake_hash_buffer,
+ finished + TLS_HANDSHAKE_HEADER_SIZE);
if (ret < 0)
return gnutls_assert_val(ret);
spos = session->internals.handshake_hash_buffer.length;
finished[0] = GNUTLS_HANDSHAKE_FINISHED;
- _gnutls_write_uint24(session->security_parameters.prf->output_size, finished+1);
-
- ret = _gnutls_buffer_append_data(&session->internals.handshake_hash_buffer, finished,
- TLS_HANDSHAKE_HEADER_SIZE+session->security_parameters.prf->output_size);
+ _gnutls_write_uint24(session->security_parameters.prf->output_size,
+ finished + 1);
+
+ ret =
+ _gnutls_buffer_append_data(&session->
+ internals.handshake_hash_buffer,
+ finished,
+ TLS_HANDSHAKE_HEADER_SIZE +
+ session->security_parameters.
+ prf->output_size);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_derive_secret(session, RMS_MASTER_LABEL, sizeof(RMS_MASTER_LABEL)-1,
- session->internals.handshake_hash_buffer.data,
- session->internals.handshake_hash_buffer.length,
- session->key.proto.tls13.temp_secret,
- session->key.proto.tls13.ap_rms);
+ ret =
+ _tls13_derive_secret(session, RMS_MASTER_LABEL,
+ sizeof(RMS_MASTER_LABEL) - 1,
+ session->internals.handshake_hash_buffer.data,
+ session->internals.
+ handshake_hash_buffer.length,
+ session->key.proto.tls13.temp_secret,
+ session->key.proto.tls13.ap_rms);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -242,11 +262,14 @@ static int generate_rms_keys(gnutls_session_t session)
{
int ret;
- ret = _tls13_derive_secret(session, RMS_MASTER_LABEL, sizeof(RMS_MASTER_LABEL)-1,
- session->internals.handshake_hash_buffer.data,
- session->internals.handshake_hash_buffer_client_finished_len,
- session->key.proto.tls13.temp_secret,
- session->key.proto.tls13.ap_rms);
+ ret =
+ _tls13_derive_secret(session, RMS_MASTER_LABEL,
+ sizeof(RMS_MASTER_LABEL) - 1,
+ session->internals.handshake_hash_buffer.data,
+ session->
+ internals.handshake_hash_buffer_client_finished_len,
+ session->key.proto.tls13.temp_secret,
+ session->key.proto.tls13.ap_rms);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -258,28 +281,36 @@ static int generate_ap_traffic_keys(gnutls_session_t session)
int ret;
uint8_t zero[MAX_HASH_SIZE];
- ret = _tls13_derive_secret(session, DERIVED_LABEL, sizeof(DERIVED_LABEL)-1,
- NULL, 0, session->key.proto.tls13.temp_secret,
- session->key.proto.tls13.temp_secret);
+ ret =
+ _tls13_derive_secret(session, DERIVED_LABEL,
+ sizeof(DERIVED_LABEL) - 1, NULL, 0,
+ session->key.proto.tls13.temp_secret,
+ session->key.proto.tls13.temp_secret);
if (ret < 0)
return gnutls_assert_val(ret);
memset(zero, 0, session->security_parameters.prf->output_size);
- ret = _tls13_update_secret(session, zero, session->security_parameters.prf->output_size);
+ ret =
+ _tls13_update_secret(session, zero,
+ session->security_parameters.prf->output_size);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _tls13_derive_secret(session, EXPORTER_MASTER_LABEL, sizeof(EXPORTER_MASTER_LABEL)-1,
- session->internals.handshake_hash_buffer.data,
- session->internals.handshake_hash_buffer_server_finished_len,
- session->key.proto.tls13.temp_secret,
- session->key.proto.tls13.ap_expkey);
+ ret =
+ _tls13_derive_secret(session, EXPORTER_MASTER_LABEL,
+ sizeof(EXPORTER_MASTER_LABEL) - 1,
+ session->internals.handshake_hash_buffer.data,
+ session->
+ internals.handshake_hash_buffer_server_finished_len,
+ session->key.proto.tls13.temp_secret,
+ session->key.proto.tls13.ap_expkey);
if (ret < 0)
return gnutls_assert_val(ret);
ret = _gnutls_call_keylog_func(session, "EXPORTER_SECRET",
session->key.proto.tls13.ap_expkey,
- session->security_parameters.prf->output_size);
+ session->security_parameters.
+ prf->output_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -299,20 +330,22 @@ static int generate_hs_traffic_keys(gnutls_session_t session)
if (unlikely(session->key.proto.tls13.temp_secret_size == 0))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- ret = _tls13_derive_secret(session, DERIVED_LABEL, sizeof(DERIVED_LABEL)-1,
- NULL, 0, session->key.proto.tls13.temp_secret,
- session->key.proto.tls13.temp_secret);
+ ret =
+ _tls13_derive_secret(session, DERIVED_LABEL,
+ sizeof(DERIVED_LABEL) - 1, NULL, 0,
+ session->key.proto.tls13.temp_secret,
+ session->key.proto.tls13.temp_secret);
if (ret < 0) {
gnutls_assert();
return ret;
}
if ((session->security_parameters.entity == GNUTLS_CLIENT &&
- (!(session->internals.hsk_flags & HSK_KEY_SHARE_RECEIVED) ||
- (!(session->internals.hsk_flags & HSK_PSK_KE_MODE_DHE_PSK) &&
- session->internals.resumed))) ||
+ (!(session->internals.hsk_flags & HSK_KEY_SHARE_RECEIVED) ||
+ (!(session->internals.hsk_flags & HSK_PSK_KE_MODE_DHE_PSK) &&
+ session->internals.resumed))) ||
(session->security_parameters.entity == GNUTLS_SERVER &&
- !(session->internals.hsk_flags & HSK_KEY_SHARE_SENT))) {
+ !(session->internals.hsk_flags & HSK_KEY_SHARE_SENT))) {
if ((session->internals.hsk_flags & HSK_PSK_SELECTED) &&
(session->internals.hsk_flags & HSK_PSK_KE_MODE_PSK)) {
@@ -325,7 +358,9 @@ static int generate_hs_traffic_keys(gnutls_session_t session)
unsigned digest_size;
if (unlikely(session->security_parameters.prf == NULL))
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
digest_size = session->security_parameters.prf->output_size;
memset(digest, 0, digest_size);
@@ -337,9 +372,13 @@ static int generate_hs_traffic_keys(gnutls_session_t session)
}
} else {
if (unlikely(session->key.key.size == 0))
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- ret = _tls13_update_secret(session, session->key.key.data, session->key.key.size);
+ ret =
+ _tls13_update_secret(session, session->key.key.data,
+ session->key.key.size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -359,19 +398,25 @@ int _gnutls13_handshake_server(gnutls_session_t session)
switch (STATE) {
case STATE90:
- ret = _gnutls13_handshake_hash_buffers_synth(session, session->security_parameters.prf, 0);
+ ret =
+ _gnutls13_handshake_hash_buffers_synth(session,
+ session->security_parameters.prf,
+ 0);
STATE = STATE90;
IMED_RET_FATAL("reset handshake buffers", ret, 0);
FALLTHROUGH;
case STATE91:
- ret = _gnutls13_send_hello_retry_request(session, AGAIN(STATE91));
+ ret =
+ _gnutls13_send_hello_retry_request(session, AGAIN(STATE91));
STATE = STATE91;
IMED_RET("send hello retry request", ret, 0);
FALLTHROUGH;
case STATE92:
#ifdef TLS13_APPENDIX_D4
if (session->internals.priorities->tls13_compat_mode) {
- ret = _gnutls_send_change_cipher_spec(session, AGAIN(STATE92));
+ ret =
+ _gnutls_send_change_cipher_spec(session,
+ AGAIN(STATE92));
STATE = STATE92;
IMED_RET("send change cipher spec", ret, 0);
}
@@ -386,7 +431,7 @@ int _gnutls13_handshake_server(gnutls_session_t session)
/* this is triggered by post_client_hello, and instructs the
* handshake to proceed but be put on hold */
ret = GNUTLS_E_INTERRUPTED;
- STATE = STATE94; /* hello already parsed -> move to next state */
+ STATE = STATE94; /* hello already parsed -> move to next state */
} else {
STATE = STATE93;
}
@@ -405,7 +450,9 @@ int _gnutls13_handshake_server(gnutls_session_t session)
* sent, CCS should have followed it (see above) */
if (session->internals.priorities->tls13_compat_mode &&
!(session->internals.hsk_flags & HSK_HRR_SENT)) {
- ret = _gnutls_send_change_cipher_spec(session, AGAIN(STATE100));
+ ret =
+ _gnutls_send_change_cipher_spec(session,
+ AGAIN(STATE100));
STATE = STATE100;
IMED_RET("send change cipher spec", ret, 0);
}
@@ -418,19 +465,25 @@ int _gnutls13_handshake_server(gnutls_session_t session)
IMED_RET_FATAL("generate hs traffic keys", ret, 0);
if (session->internals.hsk_flags & HSK_EARLY_DATA_ACCEPTED) {
- ret = _tls13_write_connection_state_init(session, STAGE_HS);
+ ret =
+ _tls13_write_connection_state_init(session,
+ STAGE_HS);
} else {
ret = _tls13_connection_state_init(session, STAGE_HS);
}
IMED_RET_FATAL("set hs traffic keys", ret, 0);
FALLTHROUGH;
case STATE102:
- ret = _gnutls13_send_encrypted_extensions(session, AGAIN(STATE102));
+ ret =
+ _gnutls13_send_encrypted_extensions(session,
+ AGAIN(STATE102));
STATE = STATE102;
IMED_RET("send encrypted extensions", ret, 0);
FALLTHROUGH;
case STATE103:
- ret = _gnutls13_send_certificate_request(session, AGAIN(STATE103));
+ ret =
+ _gnutls13_send_certificate_request(session,
+ AGAIN(STATE103));
STATE = STATE103;
IMED_RET("send certificate request", ret, 0);
FALLTHROUGH;
@@ -440,7 +493,8 @@ int _gnutls13_handshake_server(gnutls_session_t session)
IMED_RET("send certificate", ret, 0);
FALLTHROUGH;
case STATE105:
- ret = _gnutls13_send_certificate_verify(session, AGAIN(STATE105));
+ ret =
+ _gnutls13_send_certificate_verify(session, AGAIN(STATE105));
STATE = STATE105;
IMED_RET("send certificate verify", ret, 0);
FALLTHROUGH;
@@ -455,33 +509,42 @@ int _gnutls13_handshake_server(gnutls_session_t session)
IMED_RET("recv end of early data", ret, 0);
if (session->internals.hsk_flags & HSK_EARLY_DATA_ACCEPTED) {
- ret = _tls13_read_connection_state_init(session, STAGE_HS);
- IMED_RET_FATAL("set hs traffic key after receiving early data", ret, 0);
+ ret =
+ _tls13_read_connection_state_init(session,
+ STAGE_HS);
+ IMED_RET_FATAL
+ ("set hs traffic key after receiving early data",
+ ret, 0);
}
FALLTHROUGH;
case STATE108:
/* At this point our sending keys should be the app keys
* see 4.4.4 at draft-ietf-tls-tls13-28 */
- ret =
- generate_ap_traffic_keys(session);
+ ret = generate_ap_traffic_keys(session);
IMED_RET_FATAL("generate app keys", ret, 0);
/* If the session is unauthenticated, try to optimize the handshake by
* sending the session ticket early. */
- if (!(session->internals.hsk_flags & (HSK_CRT_REQ_SENT|HSK_PSK_SELECTED))) {
+ if (!
+ (session->internals.hsk_flags & (HSK_CRT_REQ_SENT |
+ HSK_PSK_SELECTED))) {
STATE = STATE108;
ret = generate_non_auth_rms_keys(session);
IMED_RET_FATAL("generate rms keys", ret, 0);
session->internals.hsk_flags |= HSK_EARLY_START_USED;
- _gnutls_handshake_log("HSK[%p]: unauthenticated session eligible for early start\n", session);
+ _gnutls_handshake_log
+ ("HSK[%p]: unauthenticated session eligible for early start\n",
+ session);
}
ret = _tls13_write_connection_state_init(session, STAGE_APP);
IMED_RET_FATAL("set write app keys", ret, 0);
- _gnutls_handshake_log("HSK[%p]: switching early to application traffic keys\n", session);
+ _gnutls_handshake_log
+ ("HSK[%p]: switching early to application traffic keys\n",
+ session);
FALLTHROUGH;
case STATE109:
@@ -489,10 +552,15 @@ int _gnutls13_handshake_server(gnutls_session_t session)
_gnutls_set_resumed_parameters(session);
if (session->internals.hsk_flags & HSK_EARLY_START_USED) {
- if (!(session->internals.flags & GNUTLS_NO_AUTO_SEND_TICKET) &&
- _gnutls13_can_send_session_ticket(session)) {
- ret = _gnutls13_send_session_ticket(session, TLS13_TICKETS_TO_SEND,
- AGAIN(STATE109));
+ if (!
+ (session->
+ internals.flags & GNUTLS_NO_AUTO_SEND_TICKET)
+&& _gnutls13_can_send_session_ticket(session)) {
+ ret =
+ _gnutls13_send_session_ticket(session,
+ TLS13_TICKETS_TO_SEND,
+ AGAIN
+ (STATE109));
}
STATE = STATE109;
@@ -502,11 +570,13 @@ int _gnutls13_handshake_server(gnutls_session_t session)
* should be called again by gnutls_record_recv()
*/
- if (session->internals.flags & GNUTLS_ENABLE_EARLY_START) {
- STATE = STATE113; /* finished */
+ if (session->
+ internals.flags & GNUTLS_ENABLE_EARLY_START) {
+ STATE = STATE113; /* finished */
gnutls_assert();
- session->internals.recv_state = RECV_STATE_EARLY_START;
+ session->internals.recv_state =
+ RECV_STATE_EARLY_START;
return 0;
}
}
@@ -527,7 +597,7 @@ int _gnutls13_handshake_server(gnutls_session_t session)
if (ret < 0)
return gnutls_assert_val(ret);
FALLTHROUGH;
- case STATE113: /* can enter from STATE109 */
+ case STATE113: /* can enter from STATE109 */
ret = _gnutls13_recv_finished(session);
STATE = STATE113;
IMED_RET("recv finished", ret, 0);
@@ -547,11 +617,15 @@ int _gnutls13_handshake_server(gnutls_session_t session)
FALLTHROUGH;
case STATE115:
- if (!(session->internals.hsk_flags & (HSK_TLS13_TICKET_SENT|HSK_EARLY_START_USED)) &&
- !(session->internals.flags & GNUTLS_NO_AUTO_SEND_TICKET) &&
- _gnutls13_can_send_session_ticket(session)) {
- ret = _gnutls13_send_session_ticket(session, TLS13_TICKETS_TO_SEND,
- AGAIN(STATE115));
+ if (!
+ (session->internals.hsk_flags & (HSK_TLS13_TICKET_SENT |
+ HSK_EARLY_START_USED))
+&& !(session->internals.flags & GNUTLS_NO_AUTO_SEND_TICKET)
+&& _gnutls13_can_send_session_ticket(session)) {
+ ret =
+ _gnutls13_send_session_ticket(session,
+ TLS13_TICKETS_TO_SEND,
+ AGAIN(STATE115));
STATE = STATE115;
IMED_RET("send session ticket", ret, 0);
}
@@ -570,7 +644,6 @@ int _gnutls13_handshake_server(gnutls_session_t session)
SAVE_TRANSCRIPT;
-
return 0;
}
@@ -578,8 +651,7 @@ int _gnutls13_handshake_server(gnutls_session_t session)
*
* It is called once per message and should return success, or a fatal error code.
*/
-int
-_gnutls13_recv_async_handshake(gnutls_session_t session)
+int _gnutls13_recv_async_handshake(gnutls_session_t session)
{
int ret;
handshake_buffer_st hsk;
@@ -596,102 +668,125 @@ _gnutls13_recv_async_handshake(gnutls_session_t session)
/* the received handshake message has already been pushed into
* handshake buffers. As we do not need to use the handshake hash
* buffers we call the lower level receive functions */
- ret = _gnutls_handshake_io_recv_int(session, GNUTLS_HANDSHAKE_ANY, &hsk, 0);
+ ret =
+ _gnutls_handshake_io_recv_int(session, GNUTLS_HANDSHAKE_ANY,
+ &hsk, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
session->internals.last_handshake_in = hsk.htype;
- ret = _gnutls_call_hook_func(session, hsk.htype, GNUTLS_HOOK_PRE, 1,
- hsk.data.data, hsk.data.length);
+ ret =
+ _gnutls_call_hook_func(session, hsk.htype, GNUTLS_HOOK_PRE,
+ 1, hsk.data.data, hsk.data.length);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- switch(hsk.htype) {
- case GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST:
- if (!(session->security_parameters.entity == GNUTLS_CLIENT) ||
- !(session->internals.flags & GNUTLS_POST_HANDSHAKE_AUTH)) {
- ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
- goto cleanup;
- }
-
- _gnutls_buffer_reset(&session->internals.reauth_buffer);
-
- /* include the handshake headers in reauth buffer */
- ret = _gnutls_buffer_append_data(&session->internals.reauth_buffer,
- hsk.header, hsk.header_size);
- if (ret < 0) {
- gnutls_assert();
- goto cleanup;
- }
+ switch (hsk.htype) {
+ case GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST:
+ if (!
+ (session->security_parameters.entity ==
+ GNUTLS_CLIENT)
+|| !(session->internals.flags & GNUTLS_POST_HANDSHAKE_AUTH)) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET);
+ goto cleanup;
+ }
- ret = _gnutls_buffer_append_data(&session->internals.reauth_buffer,
- hsk.data.data, hsk.data.length);
- if (ret < 0) {
- gnutls_assert();
- goto cleanup;
- }
+ _gnutls_buffer_reset(&session->internals.reauth_buffer);
- if (session->internals.flags & GNUTLS_AUTO_REAUTH) {
- ret = gnutls_reauth(session, 0);
- if (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED) {
- next_state = RECV_STATE_REAUTH;
- } else if (ret < 0) {
- gnutls_assert();
- goto cleanup;
- }
- } else {
- /* Application is expected to handle re-authentication
- * explicitly. */
- ret = GNUTLS_E_REAUTH_REQUEST;
- }
+ /* include the handshake headers in reauth buffer */
+ ret =
+ _gnutls_buffer_append_data(&session->
+ internals.reauth_buffer,
+ hsk.header,
+ hsk.header_size);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
+ ret =
+ _gnutls_buffer_append_data(&session->
+ internals.reauth_buffer,
+ hsk.data.data,
+ hsk.data.length);
+ if (ret < 0) {
+ gnutls_assert();
goto cleanup;
+ }
- case GNUTLS_HANDSHAKE_KEY_UPDATE:
- ret = _gnutls13_recv_key_update(session, &hsk.data);
- if (ret < 0) {
+ if (session->internals.flags & GNUTLS_AUTO_REAUTH) {
+ ret = gnutls_reauth(session, 0);
+ if (ret == GNUTLS_E_AGAIN
+ || ret == GNUTLS_E_INTERRUPTED) {
+ next_state = RECV_STATE_REAUTH;
+ } else if (ret < 0) {
gnutls_assert();
goto cleanup;
}
+ } else {
+ /* Application is expected to handle re-authentication
+ * explicitly. */
+ ret = GNUTLS_E_REAUTH_REQUEST;
+ }
- /* Handshake messages MUST NOT span key changes, i.e., we
- * should not have any other pending handshake messages from
- * the same record. */
- if (session->internals.handshake_recv_buffer_size != 0) {
- ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
- goto cleanup;
- }
- break;
- case GNUTLS_HANDSHAKE_NEW_SESSION_TICKET:
- if (session->security_parameters.entity != GNUTLS_CLIENT) {
- ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
- goto cleanup;
- }
+ goto cleanup;
- ret = _gnutls13_recv_session_ticket(session, &hsk.data);
- if (ret < 0) {
- gnutls_assert();
- goto cleanup;
- }
+ case GNUTLS_HANDSHAKE_KEY_UPDATE:
+ ret = _gnutls13_recv_key_update(session, &hsk.data);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
- memcpy(session->internals.tls13_ticket.resumption_master_secret,
- session->key.proto.tls13.ap_rms,
- session->key.proto.tls13.temp_secret_size);
+ /* Handshake messages MUST NOT span key changes, i.e., we
+ * should not have any other pending handshake messages from
+ * the same record. */
+ if (session->internals.handshake_recv_buffer_size != 0) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET);
+ goto cleanup;
+ }
+ break;
+ case GNUTLS_HANDSHAKE_NEW_SESSION_TICKET:
+ if (session->security_parameters.entity !=
+ GNUTLS_CLIENT) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET);
+ goto cleanup;
+ }
- session->internals.tls13_ticket.prf = session->security_parameters.prf;
- session->internals.hsk_flags |= HSK_TICKET_RECEIVED;
- break;
- default:
+ ret = _gnutls13_recv_session_ticket(session, &hsk.data);
+ if (ret < 0) {
gnutls_assert();
- ret = GNUTLS_E_UNEXPECTED_PACKET;
goto cleanup;
+ }
+
+ memcpy(session->internals.
+ tls13_ticket.resumption_master_secret,
+ session->key.proto.tls13.ap_rms,
+ session->key.proto.tls13.temp_secret_size);
+
+ session->internals.tls13_ticket.prf =
+ session->security_parameters.prf;
+ session->internals.hsk_flags |= HSK_TICKET_RECEIVED;
+ break;
+ default:
+ gnutls_assert();
+ ret = GNUTLS_E_UNEXPECTED_PACKET;
+ goto cleanup;
}
- ret = _gnutls_call_hook_func(session, hsk.htype, GNUTLS_HOOK_POST, 1, hsk.data.data, hsk.data.length);
+ ret =
+ _gnutls_call_hook_func(session, hsk.htype, GNUTLS_HOOK_POST,
+ 1, hsk.data.data, hsk.data.length);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -728,12 +823,14 @@ _gnutls13_recv_async_handshake(gnutls_session_t session)
*
* Returns: %GNUTLS_E_SUCCESS on success, or a negative error code.
**/
-int gnutls_session_ticket_send(gnutls_session_t session, unsigned nr, unsigned flags)
+int gnutls_session_ticket_send(gnutls_session_t session, unsigned nr,
+ unsigned flags)
{
int ret = 0;
const version_entry_st *vers = get_version(session);
- if (!vers->tls13_sem || session->security_parameters.entity == GNUTLS_CLIENT)
+ if (!vers->tls13_sem
+ || session->security_parameters.entity == GNUTLS_CLIENT)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if (nr == 0)
@@ -750,7 +847,9 @@ int gnutls_session_ticket_send(gnutls_session_t session, unsigned nr, unsigned f
FALLTHROUGH;
case TICKET_STATE1:
ret =
- _gnutls13_send_session_ticket(session, nr, TICKET_STATE==TICKET_STATE1?1:0);
+ _gnutls13_send_session_ticket(session, nr,
+ TICKET_STATE ==
+ TICKET_STATE1 ? 1 : 0);
TICKET_STATE = TICKET_STATE1;
if (ret < 0) {
gnutls_assert();
diff --git a/lib/handshake.c b/lib/handshake.c
index 044b70e2a8..02da5117f5 100644
--- a/lib/handshake.c
+++ b/lib/handshake.c
@@ -60,25 +60,20 @@
#include "locks.h"
#include "system/ktls.h"
-
static int check_if_null_comp_present(gnutls_session_t session,
- uint8_t * data, int datalen);
+ uint8_t * data, int datalen);
static int handshake_client(gnutls_session_t session);
static int handshake_server(gnutls_session_t session);
static int
-read_server_hello(gnutls_session_t session,
- uint8_t * data, int datalen);
+read_server_hello(gnutls_session_t session, uint8_t * data, int datalen);
-static int
-recv_handshake_final(gnutls_session_t session, int init);
-static int
-send_handshake_final(gnutls_session_t session, int init);
+static int recv_handshake_final(gnutls_session_t session, int init);
+static int send_handshake_final(gnutls_session_t session, int init);
/* Empties but does not free the buffer
*/
-inline static void
-handshake_hash_buffer_reset(gnutls_session_t session)
+inline static void handshake_hash_buffer_reset(gnutls_session_t session)
{
_gnutls_buffers_log("BUF[HSK]: Emptied buffer\n");
@@ -107,7 +102,6 @@ static int
recv_hello_verify_request(gnutls_session_t session,
uint8_t * data, int datalen);
-
/* Clears the handshake hash buffers and handles.
*/
void _gnutls_handshake_hash_buffers_clear(gnutls_session_t session)
@@ -120,11 +114,11 @@ void _gnutls_handshake_hash_buffers_clear(gnutls_session_t session)
/* Replace handshake message buffer, with the special synthetic message
* needed by TLS1.3 when HRR is sent. */
int _gnutls13_handshake_hash_buffers_synth(gnutls_session_t session,
- const mac_entry_st *prf,
+ const mac_entry_st * prf,
unsigned client)
{
int ret;
- uint8_t hdata[4+MAX_HASH_SIZE];
+ uint8_t hdata[4 + MAX_HASH_SIZE];
size_t length;
if (client)
@@ -136,9 +130,9 @@ int _gnutls13_handshake_hash_buffers_synth(gnutls_session_t session,
hdata[0] = 254;
_gnutls_write_uint24(prf->output_size, &hdata[1]);
- ret = gnutls_hash_fast((gnutls_digest_algorithm_t)prf->id,
+ ret = gnutls_hash_fast((gnutls_digest_algorithm_t) prf->id,
session->internals.handshake_hash_buffer.data,
- length, hdata+4);
+ length, hdata + 4);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -146,13 +140,14 @@ int _gnutls13_handshake_hash_buffers_synth(gnutls_session_t session,
ret =
_gnutls_buffer_append_data(&session->internals.
- handshake_hash_buffer,
- hdata, prf->output_size+4);
+ handshake_hash_buffer, hdata,
+ prf->output_size + 4);
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_buffers_log("BUF[HSK]: Replaced handshake buffer with synth message (%d bytes)\n",
- prf->output_size+4);
+ _gnutls_buffers_log
+ ("BUF[HSK]: Replaced handshake buffer with synth message (%d bytes)\n",
+ prf->output_size + 4);
return 0;
}
@@ -161,26 +156,24 @@ int _gnutls13_handshake_hash_buffers_synth(gnutls_session_t session,
* internals, and to security_parameters.
* this will keep as less data to security_parameters.
*/
-static int tls12_resume_copy_required_vals(gnutls_session_t session, unsigned ticket)
+static int tls12_resume_copy_required_vals(gnutls_session_t session,
+ unsigned ticket)
{
int ret;
/* get the new random values */
- memcpy(session->internals.resumed_security_parameters.
- server_random, session->security_parameters.server_random,
- GNUTLS_RANDOM_SIZE);
- memcpy(session->internals.resumed_security_parameters.
- client_random, session->security_parameters.client_random,
- GNUTLS_RANDOM_SIZE);
+ memcpy(session->internals.resumed_security_parameters.server_random,
+ session->security_parameters.server_random, GNUTLS_RANDOM_SIZE);
+ memcpy(session->internals.resumed_security_parameters.client_random,
+ session->security_parameters.client_random, GNUTLS_RANDOM_SIZE);
/* keep the ciphersuite and compression
* That is because the client must see these in our
* hello message.
*/
ret = _gnutls_set_cipher_suite2(session,
- session->internals.
- resumed_security_parameters.
- cs);
+ session->internals.
+ resumed_security_parameters.cs);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -191,14 +184,13 @@ static int tls12_resume_copy_required_vals(gnutls_session_t session, unsigned ti
session->security_parameters.entity =
session->internals.resumed_security_parameters.entity;
- if (session->internals.resumed_security_parameters.pversion ==
- NULL)
+ if (session->internals.resumed_security_parameters.pversion == NULL)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
if (_gnutls_set_current_version(session,
- session->internals.
- resumed_security_parameters.pversion->
- id) < 0)
+ session->internals.
+ resumed_security_parameters.pversion->
+ id) < 0)
return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
session->security_parameters.client_ctype =
@@ -208,10 +200,12 @@ static int tls12_resume_copy_required_vals(gnutls_session_t session, unsigned ti
if (!ticket) {
memcpy(session->security_parameters.session_id,
- session->internals.resumed_security_parameters.session_id,
+ session->internals.
+ resumed_security_parameters.session_id,
sizeof(session->security_parameters.session_id));
session->security_parameters.session_id_size =
- session->internals.resumed_security_parameters.session_id_size;
+ session->internals.
+ resumed_security_parameters.session_id_size;
}
return 0;
@@ -232,21 +226,25 @@ int _gnutls_gen_client_random(gnutls_session_t session)
/* no random given, we generate. */
if (session->internals.sc_random_set != 0) {
- _gnutls_memory_mark_defined(session->security_parameters.client_random,
+ _gnutls_memory_mark_defined(session->
+ security_parameters.client_random,
GNUTLS_RANDOM_SIZE);
memcpy(session->security_parameters.client_random,
session->internals.
resumed_security_parameters.client_random,
GNUTLS_RANDOM_SIZE);
} else {
- _gnutls_memory_mark_defined(session->security_parameters.client_random,
+ _gnutls_memory_mark_defined(session->
+ security_parameters.client_random,
GNUTLS_RANDOM_SIZE);
- ret = gnutls_rnd(GNUTLS_RND_NONCE,
- session->security_parameters.client_random,
- GNUTLS_RANDOM_SIZE);
+ ret =
+ gnutls_rnd(GNUTLS_RND_NONCE,
+ session->security_parameters.client_random,
+ GNUTLS_RANDOM_SIZE);
if (ret < 0) {
- _gnutls_memory_mark_undefined(session->security_parameters.client_random,
- GNUTLS_RANDOM_SIZE);
+ _gnutls_memory_mark_undefined
+ (session->security_parameters.client_random,
+ GNUTLS_RANDOM_SIZE);
return gnutls_assert_val(ret);
}
}
@@ -255,7 +253,8 @@ int _gnutls_gen_client_random(gnutls_session_t session)
}
static
-int _gnutls_set_server_random(gnutls_session_t session, const version_entry_st *vers, uint8_t * rnd)
+int _gnutls_set_server_random(gnutls_session_t session,
+ const version_entry_st * vers, uint8_t * rnd)
{
const version_entry_st *max;
@@ -266,26 +265,35 @@ int _gnutls_set_server_random(gnutls_session_t session, const version_entry_st *
/* check whether the server random value is set according to
* to TLS 1.3. p4.1.3 requirements */
- if (!IS_DTLS(session) && vers->id <= GNUTLS_TLS1_2 && have_creds_for_tls13(session)) {
+ if (!IS_DTLS(session) && vers->id <= GNUTLS_TLS1_2
+ && have_creds_for_tls13(session)) {
max = _gnutls_version_max(session);
if (max->id <= GNUTLS_TLS1_2)
return 0;
if (vers->id == GNUTLS_TLS1_2 &&
- memcmp(&session->security_parameters.server_random[GNUTLS_RANDOM_SIZE-8],
- "\x44\x4F\x57\x4E\x47\x52\x44\x01", 8) == 0) {
+ memcmp(&session->
+ security_parameters.server_random[GNUTLS_RANDOM_SIZE
+ - 8],
+ "\x44\x4F\x57\x4E\x47\x52\x44\x01", 8) == 0) {
_gnutls_audit_log(session,
- "Detected downgrade to TLS 1.2 from TLS 1.3\n");
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- } else if (vers->id <= GNUTLS_TLS1_1 &&
- memcmp(&session->security_parameters.server_random[GNUTLS_RANDOM_SIZE-8],
- "\x44\x4F\x57\x4E\x47\x52\x44\x00", 8) == 0) {
+ "Detected downgrade to TLS 1.2 from TLS 1.3\n");
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ } else if (vers->id <= GNUTLS_TLS1_1
+ && memcmp(&session->security_parameters.server_random
+ [GNUTLS_RANDOM_SIZE - 8],
+ "\x44\x4F\x57\x4E\x47\x52\x44\x00",
+ 8) == 0) {
_gnutls_audit_log(session,
- "Detected downgrade to TLS 1.1 or earlier from TLS 1.3\n");
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ "Detected downgrade to TLS 1.1 or earlier from TLS 1.3\n");
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
}
@@ -298,7 +306,8 @@ int _gnutls_gen_server_random(gnutls_session_t session, int version)
const version_entry_st *max;
if (session->internals.sc_random_set != 0) {
- _gnutls_memory_mark_defined(session->security_parameters.server_random,
+ _gnutls_memory_mark_defined(session->
+ security_parameters.server_random,
GNUTLS_RANDOM_SIZE);
memcpy(session->security_parameters.server_random,
session->internals.
@@ -317,23 +326,30 @@ int _gnutls_gen_server_random(gnutls_session_t session, int version)
if (!IS_DTLS(session) && max->id >= GNUTLS_TLS1_3 &&
version <= GNUTLS_TLS1_2) {
if (version == GNUTLS_TLS1_2) {
- memcpy(&session->security_parameters.server_random[GNUTLS_RANDOM_SIZE-8],
- "\x44\x4F\x57\x4E\x47\x52\x44\x01", 8);
+ memcpy(&session->security_parameters.server_random
+ [GNUTLS_RANDOM_SIZE - 8],
+ "\x44\x4F\x57\x4E\x47\x52\x44\x01", 8);
} else {
- memcpy(&session->security_parameters.server_random[GNUTLS_RANDOM_SIZE-8],
- "\x44\x4F\x57\x4E\x47\x52\x44\x00", 8);
+ memcpy(&session->security_parameters.server_random
+ [GNUTLS_RANDOM_SIZE - 8],
+ "\x44\x4F\x57\x4E\x47\x52\x44\x00", 8);
}
ret =
- gnutls_rnd(GNUTLS_RND_NONCE, session->security_parameters.server_random, GNUTLS_RANDOM_SIZE-8);
+ gnutls_rnd(GNUTLS_RND_NONCE,
+ session->security_parameters.server_random,
+ GNUTLS_RANDOM_SIZE - 8);
} else {
ret =
- gnutls_rnd(GNUTLS_RND_NONCE, session->security_parameters.server_random, GNUTLS_RANDOM_SIZE);
+ gnutls_rnd(GNUTLS_RND_NONCE,
+ session->security_parameters.server_random,
+ GNUTLS_RANDOM_SIZE);
}
if (ret < 0) {
gnutls_assert();
- _gnutls_memory_mark_undefined(session->security_parameters.server_random,
+ _gnutls_memory_mark_undefined(session->
+ security_parameters.server_random,
GNUTLS_RANDOM_SIZE);
return ret;
}
@@ -344,9 +360,9 @@ int _gnutls_gen_server_random(gnutls_session_t session, int version)
#ifdef ENABLE_SSL3
/* Calculate The SSL3 Finished message
*/
-#define SSL3_CLIENT_MSG "CLNT"
-#define SSL3_SERVER_MSG "SRVR"
-#define SSL_MSG_LEN 4
+# define SSL3_CLIENT_MSG "CLNT"
+# define SSL3_SERVER_MSG "SRVR"
+# define SSL_MSG_LEN 4
static int
_gnutls_ssl3_finished(gnutls_session_t session, int type, uint8_t * ret,
int sending)
@@ -413,8 +429,7 @@ _gnutls_ssl3_finished(gnutls_session_t session, int type, uint8_t * ret,
#define CLIENT_MSG "client finished"
#define TLS_MSG_LEN 15
static int
-_gnutls_finished(gnutls_session_t session, int type, void *ret,
- int sending)
+_gnutls_finished(gnutls_session_t session, int type, void *ret, int sending)
{
const int siz = TLS_MSG_LEN;
uint8_t concat[MAX_HASH_SIZE];
@@ -429,9 +444,8 @@ _gnutls_finished(gnutls_session_t session, int type, void *ret,
algorithm = session->security_parameters.prf->id;
rc = _gnutls_hash_fast(algorithm,
- session->internals.
- handshake_hash_buffer.data, len,
- concat);
+ session->internals.handshake_hash_buffer.data,
+ len, concat);
if (rc < 0)
return gnutls_assert_val(rc);
@@ -450,13 +464,13 @@ _gnutls_finished(gnutls_session_t session, int type, void *ret,
GNUTLS_MASTER_SIZE, mesg, siz, concat, hash_len,
12, ret);
if (rc < 0) {
- _gnutls_memory_mark_undefined(session->security_parameters.master_secret,
+ _gnutls_memory_mark_undefined(session->
+ security_parameters.master_secret,
GNUTLS_MASTER_SIZE);
}
return rc;
}
-
/* returns the 0 on success or a negative error code.
*/
int
@@ -474,10 +488,13 @@ _gnutls_negotiate_version(gnutls_session_t session,
if (aversion && aversion->id == GNUTLS_TLS1_2) {
vers = _gnutls_version_max(session);
if (unlikely(vers == NULL))
- return gnutls_assert_val(GNUTLS_E_NO_CIPHER_SUITES);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_NO_CIPHER_SUITES);
if (vers->id >= GNUTLS_TLS1_2) {
- session->security_parameters.pversion = aversion;
+ session->security_parameters.pversion =
+ aversion;
return 0;
}
}
@@ -485,7 +502,9 @@ _gnutls_negotiate_version(gnutls_session_t session,
/* if we get an unknown/unsupported version, then fail if the version we
* got is too low to be supported */
if (!_gnutls_version_is_too_high(session, major, minor))
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
/* If he requested something we do not support
* then we send him the highest we support.
@@ -520,8 +539,7 @@ _gnutls_negotiate_version(gnutls_session_t session,
* - a negative error code on other error
*/
int
-_gnutls_user_hello_func(gnutls_session_t session,
- uint8_t major, uint8_t minor)
+_gnutls_user_hello_func(gnutls_session_t session, uint8_t major, uint8_t minor)
{
int ret, sret = 0;
const version_entry_st *vers, *old_vers;
@@ -546,14 +564,17 @@ _gnutls_user_hello_func(gnutls_session_t session,
new_max = _gnutls_version_max(session);
old_vers = get_version(session);
- if (!old_vers->tls13_sem || (new_max && !new_max->tls13_sem)) {
+ if (!old_vers->tls13_sem
+ || (new_max && !new_max->tls13_sem)) {
#if GNUTLS_TLS_VERSION_MAX != GNUTLS_TLS1_3
# error "Need to update the following logic"
#endif
/* Here we need to renegotiate the version since the callee might
* have disabled some TLS versions. This logic does not cope for
* protocols later than TLS1.3 if they have the tls13_sem set */
- ret = _gnutls_negotiate_version(session, major, minor, 0);
+ ret =
+ _gnutls_negotiate_version(session, major,
+ minor, 0);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -562,7 +583,9 @@ _gnutls_user_hello_func(gnutls_session_t session,
/* at this point we need to regenerate the random value to
* avoid the peer detecting this session as a rollback
* attempt. */
- ret = _gnutls_gen_server_random(session, vers->id);
+ ret =
+ _gnutls_gen_server_random(session,
+ vers->id);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -582,8 +605,10 @@ static int set_auth_types(gnutls_session_t session)
/* sanity check:
* we see TLS1.3 negotiated but no key share was sent */
if (ver->tls13_sem) {
- if (unlikely(!(session->internals.hsk_flags & HSK_PSK_KE_MODE_PSK) &&
- !(session->internals.hsk_flags & HSK_KEY_SHARE_RECEIVED))) {
+ if (unlikely
+ (!(session->internals.hsk_flags & HSK_PSK_KE_MODE_PSK)
+ && !(session->
+ internals.hsk_flags & HSK_KEY_SHARE_RECEIVED))) {
return gnutls_assert_val(GNUTLS_E_MISSING_EXTENSION);
}
@@ -600,8 +625,10 @@ static int set_auth_types(gnutls_session_t session)
}
if (kx != GNUTLS_KX_UNKNOWN) {
- session->security_parameters.server_auth_type = _gnutls_map_kx_get_cred(kx, 1);
- session->security_parameters.client_auth_type = _gnutls_map_kx_get_cred(kx, 0);
+ session->security_parameters.server_auth_type =
+ _gnutls_map_kx_get_cred(kx, 1);
+ session->security_parameters.client_auth_type =
+ _gnutls_map_kx_get_cred(kx, 0);
} else if (unlikely(!session->internals.resumed)) {
/* Here we can only arrive if something we received
* prevented the session from completing. */
@@ -617,8 +644,7 @@ static int set_auth_types(gnutls_session_t session)
* since SSL version 2.0 is not supported).
*/
static int
-read_client_hello(gnutls_session_t session, uint8_t * data,
- int datalen)
+read_client_hello(gnutls_session_t session, uint8_t * data, int datalen)
{
uint8_t session_id_len;
int pos = 0, ret;
@@ -635,7 +661,7 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
session, data[pos], data[pos + 1]);
major = data[pos];
- minor = data[pos+1];
+ minor = data[pos + 1];
set_adv_version(session, major, minor);
@@ -699,7 +725,7 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
pos += suite_size;
DECR_LEN(len, 1);
- comp_size = data[pos++]; /* the number of compression methods */
+ comp_size = data[pos++]; /* the number of compression methods */
if (comp_size == 0)
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
@@ -716,16 +742,18 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
* extensions since we don't want new extension values to override
* the resumed ones. */
ret =
- _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_CLIENT_HELLO,
- GNUTLS_EXT_VERSION_NEG,
- ext_ptr, ext_size);
+ _gnutls_parse_hello_extensions(session,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO,
+ GNUTLS_EXT_VERSION_NEG, ext_ptr,
+ ext_size);
if (ret < 0)
return gnutls_assert_val(ret);
ret =
- _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_CLIENT_HELLO,
- GNUTLS_EXT_MANDATORY,
- ext_ptr, ext_size);
+ _gnutls_parse_hello_extensions(session,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO,
+ GNUTLS_EXT_MANDATORY, ext_ptr,
+ ext_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -741,8 +769,10 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
if (session_id_len > 0)
session->internals.resumption_requested = 1;
- if (ret == 0) { /* resumed using default TLS resumption! */
- ret = _gnutls_server_select_suite(session, suite_ptr, suite_size, 1);
+ if (ret == 0) { /* resumed using default TLS resumption! */
+ ret =
+ _gnutls_server_select_suite(session, suite_ptr,
+ suite_size, 1);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -754,20 +784,21 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
return _gnutls_user_hello_func(session, major, minor);
} else {
- ret = _gnutls_generate_session_id(session->security_parameters.
- session_id,
- &session->security_parameters.
- session_id_size);
+ ret =
+ _gnutls_generate_session_id
+ (session->security_parameters.session_id,
+ &session->security_parameters.session_id_size);
if (ret < 0)
return gnutls_assert_val(ret);
session->internals.resumed = false;
}
- } else { /* TLS1.3 */
+ } else { /* TLS1.3 */
/* we echo client's session ID - length was checked previously */
assert(session_id_len <= GNUTLS_MAX_SESSION_ID_SIZE);
if (session_id_len > 0)
- memcpy(session->security_parameters.session_id, session_id, session_id_len);
+ memcpy(session->security_parameters.session_id,
+ session_id, session_id_len);
session->security_parameters.session_id_size = session_id_len;
}
@@ -776,9 +807,11 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
* Unconditionally try to parse extensions; safe renegotiation uses them in
* sslv3 and higher, even though sslv3 doesn't officially support them.
*/
- ret = _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_CLIENT_HELLO,
- GNUTLS_EXT_APPLICATION,
- ext_ptr, ext_size);
+ ret =
+ _gnutls_parse_hello_extensions(session,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO,
+ GNUTLS_EXT_APPLICATION, ext_ptr,
+ ext_size);
/* len is the rest of the parsed length */
if (ret < 0) {
gnutls_assert();
@@ -794,7 +827,8 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
/* Session tickets are parsed in this point */
ret =
- _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_CLIENT_HELLO,
+ _gnutls_parse_hello_extensions(session,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO,
GNUTLS_EXT_TLS, ext_ptr, ext_size);
if (ret < 0) {
gnutls_assert();
@@ -842,7 +876,9 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
max_record_send_size =
session->security_parameters.max_record_send_size;
- ret = _gnutls_server_select_suite(session, suite_ptr, suite_size, 1);
+ ret =
+ _gnutls_server_select_suite(session, suite_ptr, suite_size,
+ 1);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -851,7 +887,8 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
return gnutls_assert_val(ret);
/* to indicate to the client that the current session is resumed */
- memcpy(session->security_parameters.session_id, session_id, session_id_len);
+ memcpy(session->security_parameters.session_id, session_id,
+ session_id_len);
session->security_parameters.session_id_size = session_id_len;
return 0;
@@ -875,12 +912,11 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
if (_gnutls_version_priority(session, vers->id) < 0)
return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
- _gnutls_handshake_log("HSK[%p]: Selected version %s\n", session, vers->name);
+ _gnutls_handshake_log("HSK[%p]: Selected version %s\n", session,
+ vers->name);
/* select appropriate compression method */
- ret =
- check_if_null_comp_present(session, comp_ptr,
- comp_size);
+ ret = check_if_null_comp_present(session, comp_ptr, comp_size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -889,8 +925,10 @@ read_client_hello(gnutls_session_t session, uint8_t * data,
/* call extensions that are intended to be parsed after the ciphersuite/cert
* are known. */
ret =
- _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_CLIENT_HELLO,
- _GNUTLS_EXT_TLS_POST_CS, ext_ptr, ext_size);
+ _gnutls_parse_hello_extensions(session,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO,
+ _GNUTLS_EXT_TLS_POST_CS, ext_ptr,
+ ext_size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -926,9 +964,7 @@ int _gnutls_send_finished(gnutls_session_t session, int again)
const version_entry_st *vers;
if (again == 0) {
- bufel =
- _gnutls_handshake_alloc(session,
- MAX_VERIFY_DATA_SIZE);
+ bufel = _gnutls_handshake_alloc(session, MAX_VERIFY_DATA_SIZE);
if (bufel == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -943,16 +979,15 @@ int _gnutls_send_finished(gnutls_session_t session, int again)
if (vers->id == GNUTLS_SSL3) {
ret =
_gnutls_ssl3_finished(session,
- session->
- security_parameters.
+ session->security_parameters.
entity, data, 1);
_mbuffer_set_udata_size(bufel, 36);
} else { /* TLS 1.0+ */
#endif
ret = _gnutls_finished(session,
session->
- security_parameters.entity,
- data, 1);
+ security_parameters.entity, data,
+ 1);
_mbuffer_set_udata_size(bufel, 12);
#ifdef ENABLE_SSL3
}
@@ -965,16 +1000,14 @@ int _gnutls_send_finished(gnutls_session_t session, int again)
vdata_size = _mbuffer_get_udata_size(bufel);
- ret =
- _gnutls_ext_sr_finished(session, data, vdata_size, 0);
+ ret = _gnutls_ext_sr_finished(session, data, vdata_size, 0);
if (ret < 0) {
gnutls_assert();
return ret;
}
if ((!session->internals.resumed
- && session->security_parameters.entity ==
- GNUTLS_CLIENT)
+ && session->security_parameters.entity == GNUTLS_CLIENT)
|| (session->internals.resumed
&& session->security_parameters.entity ==
GNUTLS_SERVER)) {
@@ -1015,8 +1048,7 @@ int _gnutls_recv_finished(gnutls_session_t session)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
ret =
- _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_FINISHED,
- 0, &buf);
+ _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_FINISHED, 0, &buf);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1042,9 +1074,9 @@ int _gnutls_recv_finished(gnutls_session_t session)
if (vers->id == GNUTLS_SSL3) {
ret =
_gnutls_ssl3_finished(session,
- (session->security_parameters.
- entity + 1) % 2, data, 0);
- } else /* TLS 1.0+ */
+ (session->security_parameters.entity +
+ 1) % 2, data, 0);
+ } else /* TLS 1.0+ */
#endif
ret =
_gnutls_finished(session,
@@ -1059,7 +1091,7 @@ int _gnutls_recv_finished(gnutls_session_t session)
#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
/* When fuzzying allow to proceed without verifying the handshake
* consistency */
- (void) vrfy;
+ (void)vrfy;
# warning This is unsafe for production builds
#else
@@ -1087,8 +1119,7 @@ int _gnutls_recv_finished(gnutls_session_t session)
session->internals.cb_tls_unique_len = data_size;
}
-
- cleanup:
+ cleanup:
_gnutls_buffer_clear(&buf);
return ret;
@@ -1135,17 +1166,20 @@ _gnutls_server_select_suite(gnutls_session_t session, uint8_t * data,
/* TLS_FALLBACK_SCSV */
if (data[i] == GNUTLS_FALLBACK_SCSV_MAJOR &&
data[i + 1] == GNUTLS_FALLBACK_SCSV_MINOR) {
- const version_entry_st *max = _gnutls_version_max(session);
+ const version_entry_st *max =
+ _gnutls_version_max(session);
_gnutls_handshake_log
- ("HSK[%p]: Received fallback CS\n",
- session);
+ ("HSK[%p]: Received fallback CS\n", session);
if (vers != max)
- return gnutls_assert_val(GNUTLS_E_INAPPROPRIATE_FALLBACK);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INAPPROPRIATE_FALLBACK);
} else if (!scsv_only) {
if (peer_clist.size < MAX_CIPHERSUITE_SIZE) {
- peer_clist.entry[peer_clist.size] = ciphersuite_to_entry(&data[i]);
+ peer_clist.entry[peer_clist.size] =
+ ciphersuite_to_entry(&data[i]);
if (peer_clist.entry[peer_clist.size] != NULL)
peer_clist.size++;
}
@@ -1155,13 +1189,14 @@ _gnutls_server_select_suite(gnutls_session_t session, uint8_t * data,
if (scsv_only)
return 0;
- ret = _gnutls_figure_common_ciphersuite(session, &peer_clist, &selected);
+ ret =
+ _gnutls_figure_common_ciphersuite(session, &peer_clist, &selected);
if (ret < 0) {
return gnutls_assert_val(ret);
}
_gnutls_handshake_log
- ("HSK[%p]: Selected cipher suite: %s\n", session, selected->name);
+ ("HSK[%p]: Selected cipher suite: %s\n", session, selected->name);
ret = _gnutls_set_cipher_suite2(session, selected);
if (ret < 0) {
@@ -1196,12 +1231,11 @@ _gnutls_server_select_suite(gnutls_session_t session, uint8_t * data,
}
-
/* This checks whether the null compression method is present.
*/
static int
check_if_null_comp_present(gnutls_session_t session,
- uint8_t * data, int datalen)
+ uint8_t * data, int datalen)
{
int j;
@@ -1225,8 +1259,7 @@ check_if_null_comp_present(gnutls_session_t session,
*/
static int
_gnutls_send_empty_handshake(gnutls_session_t session,
- gnutls_handshake_description_t type,
- int again)
+ gnutls_handshake_description_t type, int again)
{
mbuffer_st *bufel;
@@ -1245,9 +1278,9 @@ _gnutls_send_empty_handshake(gnutls_session_t session,
int _gnutls_call_hook_func(gnutls_session_t session,
gnutls_handshake_description_t type,
int post, unsigned incoming,
- const uint8_t *data, unsigned data_size)
+ const uint8_t * data, unsigned data_size)
{
- gnutls_datum_t msg = {(void*)data, data_size};
+ gnutls_datum_t msg = { (void *)data, data_size };
if (session->internals.h_hook != NULL) {
if ((session->internals.h_type == type
@@ -1263,7 +1296,8 @@ int _gnutls_call_hook_func(gnutls_session_t session,
* consistently (only sending is tracked, not receiving).
*/
if (type == GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC &&
- session->internals.h_type != GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC)
+ session->internals.h_type !=
+ GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC)
return 0;
return session->internals.h_hook(session, type,
@@ -1294,7 +1328,8 @@ _gnutls_send_handshake(gnutls_session_t session, mbuffer_st * bufel,
*/
int
_gnutls_send_handshake2(gnutls_session_t session, mbuffer_st * bufel,
- gnutls_handshake_description_t type, unsigned queue_only)
+ gnutls_handshake_description_t type,
+ unsigned queue_only)
{
int ret;
uint8_t *data;
@@ -1325,8 +1360,8 @@ _gnutls_send_handshake2(gnutls_session_t session, mbuffer_st * bufel,
* be set properly for HMAC. The HMAC requires we pretend that the
* message was sent in a single fragment. */
if (IS_DTLS(session)) {
- _gnutls_write_uint16(session->internals.dtls.
- hsk_write_seq++, &data[pos]);
+ _gnutls_write_uint16(session->internals.dtls.hsk_write_seq++,
+ &data[pos]);
pos += 2;
/* Fragment offset */
@@ -1340,14 +1375,14 @@ _gnutls_send_handshake2(gnutls_session_t session, mbuffer_st * bufel,
_gnutls_handshake_log("HSK[%p]: %s was queued [%ld bytes]\n",
session, _gnutls_handshake2str(type),
- (long) datasize);
+ (long)datasize);
/* Here we keep the handshake messages in order to hash them...
*/
if (!IS_ASYNC(type, vers)) {
if ((ret =
handshake_hash_add_sent(session, type, data,
- datasize)) < 0) {
+ datasize)) < 0) {
gnutls_assert();
_mbuffer_xfree(&bufel);
return ret;
@@ -1367,7 +1402,8 @@ _gnutls_send_handshake2(gnutls_session_t session, mbuffer_st * bufel,
}
ret = _gnutls_call_hook_func(session, type, GNUTLS_HOOK_PRE, 0,
- _mbuffer_get_udata_ptr(bufel), _mbuffer_get_udata_size(bufel));
+ _mbuffer_get_udata_ptr(bufel),
+ _mbuffer_get_udata_size(bufel));
if (ret < 0) {
gnutls_assert();
_mbuffer_xfree(&bufel);
@@ -1384,7 +1420,8 @@ _gnutls_send_handshake2(gnutls_session_t session, mbuffer_st * bufel,
}
ret = _gnutls_call_hook_func(session, type, GNUTLS_HOOK_POST, 0,
- _mbuffer_get_udata_ptr(bufel), _mbuffer_get_udata_size(bufel));
+ _mbuffer_get_udata_ptr(bufel),
+ _mbuffer_get_udata_size(bufel));
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1406,12 +1443,12 @@ _gnutls_send_handshake2(gnutls_session_t session, mbuffer_st * bufel,
* but are cached instead */
switch (type) {
case GNUTLS_HANDSHAKE_SERVER_HELLO: /* always followed by something */
- case GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS: /* followed by finished or cert */
- case GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST: /* followed by certificate */
+ case GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS: /* followed by finished or cert */
+ case GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST: /* followed by certificate */
case GNUTLS_HANDSHAKE_CERTIFICATE_PKT: /* this one is followed by cert verify */
case GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT: /* as above */
- case GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY: /* followed by finished */
- ret = 0; /* cache */
+ case GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY: /* followed by finished */
+ ret = 0; /* cache */
break;
default:
/* send this and any cached messages */
@@ -1458,16 +1495,15 @@ _gnutls_send_handshake2(gnutls_session_t session, mbuffer_st * bufel,
return gnutls_assert_val(GNUTLS_E_HANDSHAKE_TOO_LARGE); \
}
-
/* This function add the handshake headers and the
* handshake data to the handshake hash buffers. Needed
* for the finished messages calculations.
*/
static int
handshake_hash_add_recvd(gnutls_session_t session,
- gnutls_handshake_description_t recv_type,
- uint8_t * header, uint16_t header_size,
- uint8_t * dataptr, uint32_t datalen)
+ gnutls_handshake_description_t recv_type,
+ uint8_t * header, uint16_t header_size,
+ uint8_t * dataptr, uint32_t datalen)
{
int ret;
const version_entry_st *vers = get_version(session);
@@ -1477,7 +1513,7 @@ handshake_hash_add_recvd(gnutls_session_t session,
if ((vers->id != GNUTLS_DTLS0_9 &&
recv_type == GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST) ||
- IS_ASYNC(recv_type, vers))
+ IS_ASYNC(recv_type, vers))
return 0;
CHECK_SIZE(header_size + datalen);
@@ -1488,16 +1524,16 @@ handshake_hash_add_recvd(gnutls_session_t session,
if (vers->id != GNUTLS_DTLS0_9) {
ret =
_gnutls_buffer_append_data(&session->internals.
- handshake_hash_buffer,
- header, header_size);
+ handshake_hash_buffer, header,
+ header_size);
if (ret < 0)
return gnutls_assert_val(ret);
}
if (datalen > 0) {
ret =
_gnutls_buffer_append_data(&session->internals.
- handshake_hash_buffer,
- dataptr, datalen);
+ handshake_hash_buffer, dataptr,
+ datalen);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -1507,16 +1543,18 @@ handshake_hash_add_recvd(gnutls_session_t session,
*/
if (recv_type == GNUTLS_HANDSHAKE_CLIENT_HELLO)
session->internals.handshake_hash_buffer_client_hello_len =
- session->internals.handshake_hash_buffer.length;
+ session->internals.handshake_hash_buffer.length;
if (recv_type == GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE)
session->internals.handshake_hash_buffer_client_kx_len =
- session->internals.handshake_hash_buffer.length;
- if (recv_type == GNUTLS_HANDSHAKE_FINISHED && session->security_parameters.entity == GNUTLS_CLIENT)
+ session->internals.handshake_hash_buffer.length;
+ if (recv_type == GNUTLS_HANDSHAKE_FINISHED
+ && session->security_parameters.entity == GNUTLS_CLIENT)
session->internals.handshake_hash_buffer_server_finished_len =
- session->internals.handshake_hash_buffer.length;
- if (recv_type == GNUTLS_HANDSHAKE_FINISHED && session->security_parameters.entity == GNUTLS_SERVER)
+ session->internals.handshake_hash_buffer.length;
+ if (recv_type == GNUTLS_HANDSHAKE_FINISHED
+ && session->security_parameters.entity == GNUTLS_SERVER)
session->internals.handshake_hash_buffer_client_finished_len =
- session->internals.handshake_hash_buffer.length;
+ session->internals.handshake_hash_buffer.length;
return 0;
}
@@ -1525,8 +1563,8 @@ handshake_hash_add_recvd(gnutls_session_t session,
*/
static int
handshake_hash_add_sent(gnutls_session_t session,
- gnutls_handshake_description_t type,
- uint8_t * dataptr, uint32_t datalen)
+ gnutls_handshake_description_t type,
+ uint8_t * dataptr, uint32_t datalen)
{
int ret;
const version_entry_st *vers = get_version(session);
@@ -1554,23 +1592,24 @@ handshake_hash_add_sent(gnutls_session_t session,
ret =
_gnutls_buffer_append_data(&session->internals.
- handshake_hash_buffer,
- dataptr, datalen);
+ handshake_hash_buffer, dataptr, datalen);
if (ret < 0)
return gnutls_assert_val(ret);
if (type == GNUTLS_HANDSHAKE_CLIENT_HELLO)
session->internals.handshake_hash_buffer_client_hello_len =
- session->internals.handshake_hash_buffer.length;
+ session->internals.handshake_hash_buffer.length;
if (type == GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE)
session->internals.handshake_hash_buffer_client_kx_len =
- session->internals.handshake_hash_buffer.length;
- if (type == GNUTLS_HANDSHAKE_FINISHED && session->security_parameters.entity == GNUTLS_SERVER)
+ session->internals.handshake_hash_buffer.length;
+ if (type == GNUTLS_HANDSHAKE_FINISHED
+ && session->security_parameters.entity == GNUTLS_SERVER)
session->internals.handshake_hash_buffer_server_finished_len =
- session->internals.handshake_hash_buffer.length;
- if (type == GNUTLS_HANDSHAKE_FINISHED && session->security_parameters.entity == GNUTLS_CLIENT)
+ session->internals.handshake_hash_buffer.length;
+ if (type == GNUTLS_HANDSHAKE_FINISHED
+ && session->security_parameters.entity == GNUTLS_CLIENT)
session->internals.handshake_hash_buffer_client_finished_len =
- session->internals.handshake_hash_buffer.length;
+ session->internals.handshake_hash_buffer.length;
return 0;
}
@@ -1601,7 +1640,9 @@ _gnutls_recv_handshake(gnutls_session_t session,
}
session->internals.last_handshake_in = hsk.htype;
- ret = _gnutls_call_hook_func(session, hsk.htype, GNUTLS_HOOK_PRE, 1, hsk.data.data, hsk.data.length);
+ ret =
+ _gnutls_call_hook_func(session, hsk.htype, GNUTLS_HOOK_PRE, 1,
+ hsk.data.data, hsk.data.length);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1609,8 +1650,7 @@ _gnutls_recv_handshake(gnutls_session_t session,
ret = handshake_hash_add_recvd(session, hsk.rtype,
hsk.header, hsk.header_size,
- hsk.data.data,
- hsk.data.length);
+ hsk.data.data, hsk.data.length);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1672,8 +1712,7 @@ _gnutls_recv_handshake(gnutls_session_t session,
ret =
recv_hello_verify_request(session,
- hsk.data.data,
- hsk.data.length);
+ hsk.data.data, hsk.data.length);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1684,40 +1723,44 @@ _gnutls_recv_handshake(gnutls_session_t session,
}
break;
- case GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST: {
- /* hash buffer synth message is generated during hello retry parsing */
- gnutls_datum_t hrr = {hsk.data.data, hsk.data.length};
-
- if (IS_SERVER(session)) {
- ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
- goto cleanup;
- }
+ case GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST:{
+ /* hash buffer synth message is generated during hello retry parsing */
+ gnutls_datum_t hrr = { hsk.data.data, hsk.data.length };
+
+ if (IS_SERVER(session)) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET);
+ goto cleanup;
+ }
- ret =
- _gnutls13_recv_hello_retry_request(session,
- &hsk.data);
- if (ret < 0) {
- gnutls_assert();
- goto cleanup;
- } else {
- /* during hello retry parsing, we reset handshake hash buffer,
- * re-add this message */
- ret = handshake_hash_add_recvd(session, hsk.htype,
- hsk.header, hsk.header_size,
- hrr.data,
- hrr.size);
+ ret =
+ _gnutls13_recv_hello_retry_request(session,
+ &hsk.data);
if (ret < 0) {
gnutls_assert();
goto cleanup;
+ } else {
+ /* during hello retry parsing, we reset handshake hash buffer,
+ * re-add this message */
+ ret =
+ handshake_hash_add_recvd(session, hsk.htype,
+ hsk.header,
+ hsk.header_size,
+ hrr.data,
+ hrr.size);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
+
+ /* Signal our caller we have received a retry request
+ and ClientHello needs to be sent again. */
+ ret = 1;
}
- /* Signal our caller we have received a retry request
- and ClientHello needs to be sent again. */
- ret = 1;
+ break;
}
-
- break;
- }
case GNUTLS_HANDSHAKE_SERVER_HELLO_DONE:
if (hsk.data.length == 0)
ret = 0;
@@ -1750,7 +1793,9 @@ _gnutls_recv_handshake(gnutls_session_t session,
goto cleanup;
}
- ret2 = _gnutls_call_hook_func(session, hsk.htype, GNUTLS_HOOK_POST, 1, hsk.data.data, hsk.data.length);
+ ret2 =
+ _gnutls_call_hook_func(session, hsk.htype, GNUTLS_HOOK_POST, 1,
+ hsk.data.data, hsk.data.length);
if (ret2 < 0) {
ret = ret2;
gnutls_assert();
@@ -1762,7 +1807,7 @@ _gnutls_recv_handshake(gnutls_session_t session,
return ret;
}
- cleanup:
+ cleanup:
_gnutls_handshake_buffer_clear(&hsk);
return ret;
}
@@ -1770,8 +1815,7 @@ _gnutls_recv_handshake(gnutls_session_t session,
/* This function checks if the given cipher suite is supported, and sets it
* to the session;
*/
-static int
-set_client_ciphersuite(gnutls_session_t session, uint8_t suite[2])
+static int set_client_ciphersuite(gnutls_session_t session, uint8_t suite[2])
{
unsigned j;
int ret;
@@ -1780,8 +1824,10 @@ set_client_ciphersuite(gnutls_session_t session, uint8_t suite[2])
gnutls_kx_algorithm_t kx;
for (j = 0; j < session->internals.priorities->cs.size; j++) {
- if (suite[0] == session->internals.priorities->cs.entry[j]->id[0] &&
- suite[1] == session->internals.priorities->cs.entry[j]->id[1]) {
+ if (suite[0] ==
+ session->internals.priorities->cs.entry[j]->id[0]
+ && suite[1] ==
+ session->internals.priorities->cs.entry[j]->id[1]) {
selected = session->internals.priorities->cs.entry[j];
break;
}
@@ -1791,8 +1837,7 @@ set_client_ciphersuite(gnutls_session_t session, uint8_t suite[2])
gnutls_assert();
_gnutls_handshake_log
("HSK[%p]: unsupported cipher suite %.2X.%.2X was negotiated\n",
- session, (unsigned int) suite[0],
- (unsigned int) suite[1]);
+ session, (unsigned int)suite[0], (unsigned int)suite[1]);
return GNUTLS_E_UNKNOWN_CIPHER_SUITE;
}
@@ -1801,8 +1846,7 @@ set_client_ciphersuite(gnutls_session_t session, uint8_t suite[2])
return gnutls_assert_val(ret);
_gnutls_handshake_log("HSK[%p]: Selected cipher suite: %s\n",
- session,
- selected->name);
+ session, selected->name);
/* check if the credentials (username, public key etc.) are ok.
* Actually checks if they exist.
@@ -1811,8 +1855,7 @@ set_client_ciphersuite(gnutls_session_t session, uint8_t suite[2])
kx = selected->kx_algorithm;
if (!session->internals.premaster_set &&
- _gnutls_get_kx_cred
- (session, kx) == NULL) {
+ _gnutls_get_kx_cred(session, kx) == NULL) {
gnutls_assert();
return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
}
@@ -1821,8 +1864,7 @@ set_client_ciphersuite(gnutls_session_t session, uint8_t suite[2])
* according to the KX algorithm. This is needed since all the
* handshake functions are read from there;
*/
- session->internals.auth_struct =
- _gnutls_kx_auth_struct(kx);
+ session->internals.auth_struct = _gnutls_kx_auth_struct(kx);
if (session->internals.auth_struct == NULL) {
_gnutls_handshake_log
@@ -1836,7 +1878,8 @@ set_client_ciphersuite(gnutls_session_t session, uint8_t suite[2])
if (session->key.binders[0].prf->id != selected->prf) {
_gnutls_handshake_log
("HSK[%p]: PRF of ciphersuite differs with the PSK identity (cs: %s, id: %s)\n",
- session, selected->name, session->key.binders[0].prf->name);
+ session, selected->name,
+ session->key.binders[0].prf->name);
gnutls_assert();
return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
}
@@ -1866,11 +1909,11 @@ client_check_if_resuming(gnutls_session_t session,
if ((session->internals.resumption_requested != 0 ||
session->internals.premaster_set != 0) &&
session_id_len > 0 &&
- session->internals.resumed_security_parameters.
- session_id_size == session_id_len
+ session->internals.resumed_security_parameters.session_id_size ==
+ session_id_len
&& memcmp(session_id,
- session->internals.resumed_security_parameters.
- session_id, session_id_len) == 0) {
+ session->internals.resumed_security_parameters.session_id,
+ session_id_len) == 0) {
/* resume session */
memcpy(session->internals.resumed_security_parameters.
server_random,
@@ -1883,8 +1926,7 @@ client_check_if_resuming(gnutls_session_t session,
ret = _gnutls_set_cipher_suite2
(session,
- session->internals.resumed_security_parameters.
- cs);
+ session->internals.resumed_security_parameters.cs);
if (ret < 0) {
gnutls_assert();
goto no_resume;
@@ -1894,21 +1936,19 @@ client_check_if_resuming(gnutls_session_t session,
return 0;
} else {
-no_resume:
+ no_resume:
/* keep the new session id */
session->internals.resumed = false; /* we are not resuming */
return -1;
}
}
-
/* This function reads and parses the server hello handshake message.
* This function also restores resumed parameters if we are resuming a
* session.
*/
static int
-read_server_hello(gnutls_session_t session,
- uint8_t * data, int datalen)
+read_server_hello(gnutls_session_t session, uint8_t * data, int datalen)
{
uint8_t session_id_len = 0;
uint8_t *session_id;
@@ -1920,7 +1960,7 @@ read_server_hello(gnutls_session_t session,
unsigned ext_parse_flag = 0;
const version_entry_st *vers, *saved_vers;
- if (datalen < GNUTLS_RANDOM_SIZE+2) {
+ if (datalen < GNUTLS_RANDOM_SIZE + 2) {
gnutls_assert();
return GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
}
@@ -1930,15 +1970,15 @@ read_server_hello(gnutls_session_t session,
DECR_LEN(len, 2);
major = data[pos];
- minor = data[pos+1];
+ minor = data[pos + 1];
- saved_vers = get_version(session); /* will be non-null if HRR has been received */
+ saved_vers = get_version(session); /* will be non-null if HRR has been received */
vers = nversion_to_entry(major, minor);
if (unlikely(vers == NULL))
return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
- if (vers->tls13_sem) /* that shouldn't have been negotiated here */
+ if (vers->tls13_sem) /* that shouldn't have been negotiated here */
return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
if (_gnutls_set_current_version(session, vers->id) < 0)
@@ -1975,10 +2015,11 @@ read_server_hello(gnutls_session_t session,
/* parse extensions to figure version */
ret =
- _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO|
+ _gnutls_parse_hello_extensions(session,
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO |
GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO,
- GNUTLS_EXT_VERSION_NEG,
- &data[pos], len);
+ GNUTLS_EXT_VERSION_NEG, &data[pos],
+ len);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1987,10 +2028,13 @@ read_server_hello(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
if (vers->tls13_sem) {
if (major != 0x03 || minor != 0x03)
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
}
- if (_gnutls_nversion_is_supported(session, vers->major, vers->minor) == 0)
+ if (_gnutls_nversion_is_supported(session, vers->major, vers->minor) ==
+ 0)
return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
/* set server random - done after final version is selected */
@@ -2009,9 +2053,11 @@ read_server_hello(gnutls_session_t session,
* values;
*/
if (!vers->tls13_sem &&
- client_check_if_resuming(session, session_id, session_id_len) == 0) {
+ client_check_if_resuming(session, session_id,
+ session_id_len) == 0) {
ret =
- _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ _gnutls_parse_hello_extensions(session,
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
GNUTLS_EXT_MANDATORY,
&data[pos], len);
if (ret < 0)
@@ -2021,8 +2067,8 @@ read_server_hello(gnutls_session_t session,
} else {
session->security_parameters.session_id_size = session_id_len;
if (session_id_len > 0)
- memcpy(session->security_parameters.session_id, session_id,
- session_id_len);
+ memcpy(session->security_parameters.session_id,
+ session_id, session_id_len);
}
/* Check if the given cipher suite is supported and copy
@@ -2037,11 +2083,15 @@ read_server_hello(gnutls_session_t session,
if (session->internals.hsk_flags & HSK_HRR_RECEIVED) {
/* check if ciphersuite matches */
if (memcmp(cs_pos, session->internals.hrr_cs, 2) != 0)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
/* check if HRR version matches this version */
if (vers != saved_vers)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
if (*comp_pos != 0)
@@ -2063,13 +2113,15 @@ read_server_hello(gnutls_session_t session,
return gnutls_assert_val(ret);
/* check if EtM is required */
- if (!vers->tls13_sem && session->internals.priorities->force_etm && !session->security_parameters.etm) {
- const cipher_entry_st *cipher = cipher_to_entry(session->security_parameters.cs->block_algorithm);
+ if (!vers->tls13_sem && session->internals.priorities->force_etm
+ && !session->security_parameters.etm) {
+ const cipher_entry_st *cipher =
+ cipher_to_entry(session->security_parameters.
+ cs->block_algorithm);
if (_gnutls_cipher_type(cipher) == CIPHER_BLOCK)
return gnutls_assert_val(GNUTLS_E_UNWANTED_ALGORITHM);
}
-
ret =
_gnutls_parse_hello_extensions(session,
ext_parse_flag,
@@ -2081,8 +2133,7 @@ read_server_hello(gnutls_session_t session,
ret =
_gnutls_parse_hello_extensions(session,
ext_parse_flag,
- GNUTLS_EXT_TLS,
- &data[pos], len);
+ GNUTLS_EXT_TLS, &data[pos], len);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -2114,16 +2165,13 @@ read_server_hello(gnutls_session_t session,
/* This function copies the appropriate compression methods, to a locally allocated buffer
* Needed in hello messages. Returns the new data length.
*/
-static int
-append_null_comp(gnutls_session_t session,
- gnutls_buffer_st * cdata)
+static int append_null_comp(gnutls_session_t session, gnutls_buffer_st * cdata)
{
- uint8_t compression_methods[2] = {0x01, 0x00};
+ uint8_t compression_methods[2] = { 0x01, 0x00 };
size_t init_length = cdata->length;
int ret;
- ret =
- _gnutls_buffer_append_data(cdata, compression_methods, 2);
+ ret = _gnutls_buffer_append_data(cdata, compression_methods, 2);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -2146,9 +2194,9 @@ static int send_client_hello(gnutls_session_t session, int again)
bool resuming = false;
unsigned add_sr_scsv = 0;
uint8_t *session_id =
- session->internals.resumed_security_parameters.session_id;
+ session->internals.resumed_security_parameters.session_id;
uint8_t session_id_len =
- session->internals.resumed_security_parameters.session_id_size;
+ session->internals.resumed_security_parameters.session_id_size;
if (again == 0) {
/* note that rehandshake is different than resuming
@@ -2214,12 +2262,15 @@ static int send_client_hello(gnutls_session_t session, int again)
}
/* if we are replying to an HRR the version is already negotiated */
- if (!(session->internals.hsk_flags & HSK_HRR_RECEIVED) || !get_version(session)) {
+ if (!(session->internals.hsk_flags & HSK_HRR_RECEIVED)
+ || !get_version(session)) {
/* Set the version we advertized as maximum
* (RSA uses it). */
set_adv_version(session, hver->major, hver->minor);
if (_gnutls_set_current_version(session, hver->id) < 0) {
- ret = gnutls_assert_val(GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
goto cleanup;
}
}
@@ -2243,7 +2294,9 @@ static int send_client_hello(gnutls_session_t session, int again)
/* Generate random data
*/
if (!(session->internals.hsk_flags & HSK_HRR_RECEIVED) &&
- !(IS_DTLS(session) && session->internals.dtls.hsk_hello_verify_requests != 0)) {
+ !(IS_DTLS(session)
+ && session->internals.dtls.hsk_hello_verify_requests !=
+ 0)) {
ret = _gnutls_gen_client_random(session);
if (ret < 0) {
gnutls_assert();
@@ -2253,7 +2306,8 @@ static int send_client_hello(gnutls_session_t session, int again)
}
ret = _gnutls_buffer_append_data(&extdata,
- session->security_parameters.client_random,
+ session->
+ security_parameters.client_random,
GNUTLS_RANDOM_SIZE);
if (ret < 0) {
gnutls_assert();
@@ -2267,17 +2321,19 @@ static int send_client_hello(gnutls_session_t session, int again)
if (!(session->internals.hsk_flags & HSK_HRR_RECEIVED)) {
/* Under TLS1.3 we generate a random session ID to make
* the TLS1.3 session look like a resumed TLS1.2 session */
- ret = _gnutls_generate_session_id(session->security_parameters.
- session_id,
- &session->security_parameters.
- session_id_size);
+ ret =
+ _gnutls_generate_session_id
+ (session->security_parameters.session_id,
+ &session->security_parameters.
+ session_id_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
}
session_id = session->security_parameters.session_id;
- session_id_len = session->security_parameters.session_id_size;
+ session_id_len =
+ session->security_parameters.session_id_size;
}
#endif
@@ -2295,8 +2351,12 @@ static int send_client_hello(gnutls_session_t session, int again)
*/
if (IS_DTLS(session)) {
ret = _gnutls_buffer_append_data_prefix(&extdata, 8,
- session->internals.dtls.dcookie.data,
- session->internals.dtls.dcookie.size);
+ session->internals.
+ dtls.dcookie.
+ data,
+ session->internals.
+ dtls.dcookie.
+ size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2318,7 +2378,9 @@ static int send_client_hello(gnutls_session_t session, int again)
add_sr_scsv = 1;
}
#endif
- ret = _gnutls_get_client_ciphersuites(session, &extdata, min_ver, add_sr_scsv);
+ ret =
+ _gnutls_get_client_ciphersuites(session, &extdata, min_ver,
+ add_sr_scsv);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2406,8 +2468,7 @@ int _gnutls_send_server_hello(gnutls_session_t session, int again)
mbuffer_st *bufel = NULL;
gnutls_buffer_st buf;
int ret;
- uint8_t session_id_len =
- session->security_parameters.session_id_size;
+ uint8_t session_id_len = session->security_parameters.session_id_size;
char tmpbuf[2 * GNUTLS_MAX_SESSION_ID_SIZE + 1];
const version_entry_st *vers;
uint8_t vbytes[2];
@@ -2418,11 +2479,12 @@ int _gnutls_send_server_hello(gnutls_session_t session, int again)
if (again == 0) {
vers = get_version(session);
- if (unlikely(vers == NULL || session->security_parameters.cs == NULL))
+ if (unlikely
+ (vers == NULL || session->security_parameters.cs == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
if (vers->tls13_sem) {
- vbytes[0] = 0x03; /* TLS1.2 */
+ vbytes[0] = 0x03; /* TLS1.2 */
vbytes[1] = 0x03;
extflag |= GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO;
} else {
@@ -2444,7 +2506,8 @@ int _gnutls_send_server_hello(gnutls_session_t session, int again)
}
ret = _gnutls_buffer_append_data(&buf,
- session->security_parameters.server_random,
+ session->
+ security_parameters.server_random,
GNUTLS_RANDOM_SIZE);
if (ret < 0) {
gnutls_assert();
@@ -2460,14 +2523,14 @@ int _gnutls_send_server_hello(gnutls_session_t session, int again)
}
_gnutls_handshake_log("HSK[%p]: SessionID: %s\n", session,
- _gnutls_bin2hex(session->
- security_parameters.session_id,
- session_id_len, tmpbuf,
- sizeof(tmpbuf), NULL));
+ _gnutls_bin2hex
+ (session->security_parameters.session_id,
+ session_id_len, tmpbuf, sizeof(tmpbuf),
+ NULL));
ret = _gnutls_buffer_append_data(&buf,
- session->security_parameters.cs->id,
- 2);
+ session->
+ security_parameters.cs->id, 2);
if (ret < 0) {
gnutls_assert();
goto fail;
@@ -2495,10 +2558,10 @@ int _gnutls_send_server_hello(gnutls_session_t session, int again)
/* Under TLS1.3, the session ID is used for different purposes than
* the TLS1.0 session ID. Ensure that there is an internally set
* value which the server will see on the original and resumed sessions */
- ret = _gnutls_generate_session_id(session->security_parameters.
- session_id,
- &session->security_parameters.
- session_id_size);
+ ret =
+ _gnutls_generate_session_id
+ (session->security_parameters.session_id,
+ &session->security_parameters.session_id_size);
if (ret < 0) {
gnutls_assert();
goto fail;
@@ -2512,14 +2575,13 @@ int _gnutls_send_server_hello(gnutls_session_t session, int again)
_gnutls_send_handshake(session, bufel,
GNUTLS_HANDSHAKE_SERVER_HELLO);
-fail:
+ fail:
_gnutls_buffer_clear(&buf);
return ret;
}
static int
-recv_hello_verify_request(gnutls_session_t session,
- uint8_t * data, int datalen)
+recv_hello_verify_request(gnutls_session_t session, uint8_t * data, int datalen)
{
ssize_t len = datalen;
size_t pos = 0;
@@ -2555,7 +2617,9 @@ recv_hello_verify_request(gnutls_session_t session,
DECR_LEN(len, cookie_len);
gnutls_free(session->internals.dtls.dcookie.data);
- ret = _gnutls_set_datum(&session->internals.dtls.dcookie, &data[pos], cookie_len);
+ ret =
+ _gnutls_set_datum(&session->internals.dtls.dcookie, &data[pos],
+ cookie_len);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -2682,14 +2746,14 @@ int gnutls_rehandshake(gnutls_session_t session)
* particular, in the case of a rehandshake abort it resets the
* handshake's internal state.
*/
-inline static int
-_gnutls_abort_handshake(gnutls_session_t session, int ret)
+inline static int _gnutls_abort_handshake(gnutls_session_t session, int ret)
{
switch (ret) {
case GNUTLS_E_WARNING_ALERT_RECEIVED:
if (gnutls_alert_get(session) == GNUTLS_A_NO_RENEGOTIATION) {
/* The server always toleretes a "no_renegotiation" alert. */
- if (session->security_parameters.entity == GNUTLS_SERVER) {
+ if (session->security_parameters.entity ==
+ GNUTLS_SERVER) {
STATE = STATE0;
return ret;
}
@@ -2699,7 +2763,9 @@ _gnutls_abort_handshake(gnutls_session_t session, int ret)
* - a Server Hello is not yet received
*/
if (session->internals.initial_negotiation_completed ||
- !(session->internals.hsk_flags & HSK_SERVER_HELLO_RECEIVED)) {
+ !(session->
+ internals.hsk_flags & HSK_SERVER_HELLO_RECEIVED))
+ {
STATE = STATE0;
return ret;
}
@@ -2715,7 +2781,6 @@ _gnutls_abort_handshake(gnutls_session_t session, int ret)
}
}
-
static int _gnutls_send_supplemental(gnutls_session_t session, int again)
{
mbuffer_st *bufel = NULL;
@@ -2748,8 +2813,7 @@ static int _gnutls_recv_supplemental(gnutls_session_t session)
gnutls_buffer_st buf;
int ret;
- _gnutls_debug_log("EXT[%p]: Expecting supplemental data\n",
- session);
+ _gnutls_debug_log("EXT[%p]: Expecting supplemental data\n", session);
ret =
_gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_SUPPLEMENTAL,
@@ -2765,7 +2829,7 @@ static int _gnutls_recv_supplemental(gnutls_session_t session)
goto cleanup;
}
- cleanup:
+ cleanup:
_gnutls_buffer_clear(&buf);
return ret;
@@ -2815,8 +2879,10 @@ int gnutls_handshake(gnutls_session_t session)
if (unlikely(session->internals.initial_negotiation_completed)) {
if (vers->tls13_sem) {
- if (session->security_parameters.entity == GNUTLS_CLIENT) {
- return gnutls_session_key_update(session, GNUTLS_KU_PEER);
+ if (session->security_parameters.entity ==
+ GNUTLS_CLIENT) {
+ return gnutls_session_key_update(session,
+ GNUTLS_KU_PEER);
} else {
/* This is a no-op for a server under TLS 1.3, as
* a server has already called gnutls_rehandshake()
@@ -2835,10 +2901,10 @@ int gnutls_handshake(gnutls_session_t session)
/* first call */
if (session->internals.priorities == NULL ||
session->internals.priorities->cs.size == 0)
- return gnutls_assert_val(GNUTLS_E_NO_PRIORITIES_WERE_SET);
+ return
+ gnutls_assert_val(GNUTLS_E_NO_PRIORITIES_WERE_SET);
- ret =
- _gnutls_epoch_setup_next(session, 0, NULL);
+ ret = _gnutls_epoch_setup_next(session, 0, NULL);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -2854,15 +2920,17 @@ int gnutls_handshake(gnutls_session_t session)
if (tmo_ms && end->tv_sec == 0 && end->tv_nsec == 0) {
end->tv_sec =
- start->tv_sec + (start->tv_nsec + tmo_ms * 1000000LL) / 1000000000LL;
+ start->tv_sec + (start->tv_nsec +
+ tmo_ms * 1000000LL) / 1000000000LL;
end->tv_nsec =
- (start->tv_nsec + tmo_ms * 1000000LL) % 1000000000LL;
+ (start->tv_nsec +
+ tmo_ms * 1000000LL) % 1000000000LL;
}
#ifdef ENABLE_KTLS
if (_gnutls_config_is_ktls_enabled()) {
if ((session->internals.pull_func &&
- session->internals.pull_func != system_read) ||
+ session->internals.pull_func != system_read) ||
session->internals.push_func) {
_gnutls_audit_log(session,
"Not enabling KTLS with "
@@ -2916,9 +2984,15 @@ int gnutls_handshake(gnutls_session_t session)
gnutls_gettime(&handshake_finish_time);
if (!(session->internals.hsk_flags & HSK_HRR_RECEIVED)) {
- session->internals.ertt = timespec_sub_ms(&handshake_finish_time, &session->internals.handshake_start_time)/2;
+ session->internals.ertt =
+ timespec_sub_ms(&handshake_finish_time,
+ &session->
+ internals.handshake_start_time) / 2;
} else {
- session->internals.ertt = timespec_sub_ms(&handshake_finish_time, &session->internals.handshake_start_time)/4;
+ session->internals.ertt =
+ timespec_sub_ms(&handshake_finish_time,
+ &session->
+ internals.handshake_start_time) / 4;
}
}
@@ -2953,8 +3027,7 @@ int gnutls_handshake(gnutls_session_t session)
*
* Since: 3.1.0
**/
-void
-gnutls_handshake_set_timeout(gnutls_session_t session, unsigned int ms)
+void gnutls_handshake_set_timeout(gnutls_session_t session, unsigned int ms)
{
if (ms == GNUTLS_INDEFINITE_TIMEOUT) {
session->internals.handshake_timeout_ms = 0;
@@ -3006,9 +3079,10 @@ int _gnutls_run_verify_callback(gnutls_session_t session, unsigned int side)
}
if (cred != NULL &&
- (cred->verify_callback != NULL || session->internals.verify_callback != NULL) &&
- (session->security_parameters.entity == GNUTLS_CLIENT ||
- session->internals.send_cert_req != GNUTLS_CERT_IGNORE)) {
+ (cred->verify_callback != NULL
+ || session->internals.verify_callback != NULL)
+ && (session->security_parameters.entity == GNUTLS_CLIENT
+ || session->internals.send_cert_req != GNUTLS_CERT_IGNORE)) {
if (session->internals.verify_callback)
ret = session->internals.verify_callback(session);
else
@@ -3097,7 +3171,7 @@ static int handshake_client(gnutls_session_t session)
FALLTHROUGH;
case STATE4:
ver = get_version(session);
- if (ver->tls13_sem) { /* TLS 1.3 state machine */
+ if (ver->tls13_sem) { /* TLS 1.3 state machine */
STATE = STATE99;
goto reset;
}
@@ -3124,9 +3198,7 @@ static int handshake_client(gnutls_session_t session)
#ifdef ENABLE_OCSP
/* RECV CERTIFICATE STATUS */
if (!session->internals.resumed) /* if we are not resuming */
- ret =
- _gnutls_recv_server_certificate_status
- (session);
+ ret = _gnutls_recv_server_certificate_status(session);
STATE = STATE7;
IMED_RET("recv server certificate", ret, 1);
#endif
@@ -3152,8 +3224,7 @@ static int handshake_client(gnutls_session_t session)
if (!session->internals.resumed) /* if we are not resuming */
ret = _gnutls_recv_server_crt_request(session);
STATE = STATE10;
- IMED_RET("recv server certificate request message", ret,
- 1);
+ IMED_RET("recv server certificate request message", ret, 1);
FALLTHROUGH;
case STATE11:
/* receive the server hello done */
@@ -3168,8 +3239,7 @@ static int handshake_client(gnutls_session_t session)
case STATE12:
if (session->security_parameters.do_send_supplemental) {
ret =
- _gnutls_send_supplemental(session,
- AGAIN(STATE12));
+ _gnutls_send_supplemental(session, AGAIN(STATE12));
STATE = STATE12;
IMED_RET("send supplemental", ret, 0);
}
@@ -3180,8 +3250,7 @@ static int handshake_client(gnutls_session_t session)
if (!session->internals.resumed) /* if we are not resuming */
ret =
_gnutls_send_client_certificate(session,
- AGAIN
- (STATE13));
+ AGAIN(STATE13));
STATE = STATE13;
IMED_RET("send client certificate", ret, 0);
FALLTHROUGH;
@@ -3210,13 +3279,14 @@ static int handshake_client(gnutls_session_t session)
IMED_RET("send handshake final 2", ret, 1);
} else {
ret = _gnutls_recv_new_session_ticket(session);
- IMED_RET("recv handshake new session ticket", ret,
- 1);
+ IMED_RET("recv handshake new session ticket", ret, 1);
}
FALLTHROUGH;
case STATE17:
STATE = STATE17;
- if (!session->internals.resumed && (session->internals.flags & GNUTLS_ENABLE_FALSE_START) && can_send_false_start(session)) {
+ if (!session->internals.resumed
+ && (session->internals.flags & GNUTLS_ENABLE_FALSE_START)
+ && can_send_false_start(session)) {
session->internals.hsk_flags |= HSK_FALSE_START_USED;
session->internals.recv_state = RECV_STATE_FALSE_START;
/* complete this phase of the handshake. We
@@ -3233,8 +3303,7 @@ static int handshake_client(gnutls_session_t session)
if (!session->internals.resumed) {
ret = _gnutls_recv_new_session_ticket(session);
- IMED_RET("recv handshake new session ticket", ret,
- 1);
+ IMED_RET("recv handshake new session ticket", ret, 1);
} else {
ret = recv_handshake_final(session, true);
IMED_RET("recv handshake final", ret, 1);
@@ -3265,8 +3334,6 @@ static int handshake_client(gnutls_session_t session)
return 0;
}
-
-
/* This function is to be called if the handshake was successfully
* completed. This sends a Change Cipher Spec packet to the peer.
*/
@@ -3278,7 +3345,7 @@ ssize_t _gnutls_send_change_cipher_spec(gnutls_session_t session, int again)
const version_entry_st *vers;
if (again == 0) {
- bufel = _gnutls_handshake_alloc(session, 3); /* max for DTLS0.9 */
+ bufel = _gnutls_handshake_alloc(session, 3); /* max for DTLS0.9 */
if (bufel == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -3301,8 +3368,10 @@ ssize_t _gnutls_send_change_cipher_spec(gnutls_session_t session, int again)
session->internals.dtls.hsk_write_seq++;
}
- ret = _gnutls_call_hook_func(session, GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC, GNUTLS_HOOK_PRE, 0,
- data, 1);
+ ret =
+ _gnutls_call_hook_func(session,
+ GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC,
+ GNUTLS_HOOK_PRE, 0, data, 1);
if (ret < 0) {
_mbuffer_xfree(&bufel);
return gnutls_assert_val(ret);
@@ -3317,8 +3386,10 @@ ssize_t _gnutls_send_change_cipher_spec(gnutls_session_t session, int again)
return gnutls_assert_val(ret);
}
- ret = _gnutls_call_hook_func(session, GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC, GNUTLS_HOOK_POST, 0,
- data, 1);
+ ret =
+ _gnutls_call_hook_func(session,
+ GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC,
+ GNUTLS_HOOK_POST, 0, data, 1);
if (ret < 0) {
return gnutls_assert_val(ret);
}
@@ -3436,7 +3507,7 @@ static int recv_handshake_final(gnutls_session_t session, int init)
ccs, ccs_len, NULL, tleft);
if (ret <= 0) {
gnutls_assert();
- return (ret<0)?ret:GNUTLS_E_UNEXPECTED_PACKET;
+ return (ret < 0) ? ret : GNUTLS_E_UNEXPECTED_PACKET;
}
if (vers->id == GNUTLS_DTLS0_9)
@@ -3507,7 +3578,7 @@ static int handshake_server(gnutls_session_t session)
/* this is triggered by post_client_hello, and instructs the
* handshake to proceed but be put on hold */
ret = GNUTLS_E_INTERRUPTED;
- STATE = STATE2; /* hello already parsed -> move on */
+ STATE = STATE2; /* hello already parsed -> move on */
} else {
STATE = STATE1;
}
@@ -3532,7 +3603,7 @@ static int handshake_server(gnutls_session_t session)
IMED_RET("send hello", ret, 1);
ver = get_version(session);
- if (ver->tls13_sem) { /* TLS 1.3 state machine */
+ if (ver->tls13_sem) { /* TLS 1.3 state machine */
STATE = STATE99;
goto reset;
}
@@ -3540,9 +3611,7 @@ static int handshake_server(gnutls_session_t session)
FALLTHROUGH;
case STATE4:
if (session->security_parameters.do_send_supplemental) {
- ret =
- _gnutls_send_supplemental(session,
- AGAIN(STATE4));
+ ret = _gnutls_send_supplemental(session, AGAIN(STATE4));
STATE = STATE4;
IMED_RET("send supplemental data", ret, 0);
}
@@ -3645,9 +3714,7 @@ static int handshake_server(gnutls_session_t session)
}
FALLTHROUGH;
case STATE16:
- ret =
- _gnutls_send_new_session_ticket(session,
- AGAIN(STATE16));
+ ret = _gnutls_send_new_session_ticket(session, AGAIN(STATE16));
STATE = STATE16;
IMED_RET("send handshake new session ticket", ret, 0);
FALLTHROUGH;
@@ -3659,7 +3726,8 @@ static int handshake_server(gnutls_session_t session)
if (session->security_parameters.entity ==
GNUTLS_SERVER
- && !(session->internals.hsk_flags & HSK_TLS12_TICKET_SENT)) {
+ && !(session->
+ internals.hsk_flags & HSK_TLS12_TICKET_SENT)) {
/* if no ticket, save session data */
_gnutls_server_register_current_session
(session);
@@ -3682,7 +3750,7 @@ static int handshake_server(gnutls_session_t session)
return _gnutls_check_id_for_change(session);
}
-int _gnutls_generate_session_id(uint8_t * session_id, uint8_t *len)
+int _gnutls_generate_session_id(uint8_t * session_id, uint8_t * len)
{
int ret;
@@ -3690,7 +3758,7 @@ int _gnutls_generate_session_id(uint8_t * session_id, uint8_t *len)
ret =
gnutls_rnd(GNUTLS_RND_NONCE, session_id,
- GNUTLS_DEF_SESSION_ID_SIZE);
+ GNUTLS_DEF_SESSION_ID_SIZE);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -3699,7 +3767,6 @@ int _gnutls_generate_session_id(uint8_t * session_id, uint8_t *len)
return 0;
}
-
/**
* gnutls_handshake_set_max_packet_length:
* @session: is a #gnutls_session_t type.
@@ -3718,8 +3785,7 @@ int _gnutls_generate_session_id(uint8_t * session_id, uint8_t *len)
* from 48kb in GnuTLS 3.5.5.
**/
void
-gnutls_handshake_set_max_packet_length(gnutls_session_t session,
- size_t max)
+gnutls_handshake_set_max_packet_length(gnutls_session_t session, size_t max)
{
session->internals.max_handshake_data_buffer_size = max;
}
@@ -3766,29 +3832,31 @@ gnutls_handshake_get_last_out(gnutls_session_t session)
/* This returns the session hash as in draft-ietf-tls-session-hash-02.
*/
-int _gnutls_handshake_get_session_hash(gnutls_session_t session, gnutls_datum_t *shash)
+int _gnutls_handshake_get_session_hash(gnutls_session_t session,
+ gnutls_datum_t * shash)
{
const version_entry_st *ver = get_version(session);
int ret;
- uint8_t concat[2*MAX_HASH_SIZE];
+ uint8_t concat[2 * MAX_HASH_SIZE];
if (unlikely(ver == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
if (session->internals.handshake_hash_buffer_client_kx_len == 0 ||
(session->internals.handshake_hash_buffer.length <
- session->internals.handshake_hash_buffer_client_kx_len)) {
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ session->internals.handshake_hash_buffer_client_kx_len)) {
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
- ret =
- _gnutls_hash_fast((gnutls_digest_algorithm_t)session->security_parameters.prf->id,
- session->internals.handshake_hash_buffer.
- data,
- session->internals.handshake_hash_buffer_client_kx_len,
- concat);
+ ret = _gnutls_hash_fast((gnutls_digest_algorithm_t)
+ session->security_parameters.prf->id,
+ session->internals.handshake_hash_buffer.data,
+ session->
+ internals.handshake_hash_buffer_client_kx_len,
+ concat);
if (ret < 0)
return gnutls_assert_val(ret);
- return _gnutls_set_datum(shash, concat, session->security_parameters.prf->output_size);
+ return _gnutls_set_datum(shash, concat,
+ session->security_parameters.prf->output_size);
}
diff --git a/lib/handshake.h b/lib/handshake.h
index 8d858f4ef2..f7dc626a2f 100644
--- a/lib/handshake.h
+++ b/lib/handshake.h
@@ -22,18 +22,18 @@
*/
#ifndef GNUTLS_LIB_HANDSHAKE_H
-#define GNUTLS_LIB_HANDSHAKE_H
+# define GNUTLS_LIB_HANDSHAKE_H
-#include "errors.h"
-#include "record.h"
-#include <assert.h>
+# include "errors.h"
+# include "record.h"
+# include <assert.h>
/* The following two macros are used in the handshake state machines; the first
* (IMED_RET) accounts for non-fatal errors and re-entry to current state, while
* the latter invalidates the handshake on any error (to be used by functions
* that are not expected to return non-fatal errors).
*/
-#define IMED_RET( str, ret, allow_alert) do { \
+# define IMED_RET( str, ret, allow_alert) do { \
if (ret < 0) { \
/* EAGAIN and INTERRUPTED are always non-fatal */ \
if (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED) \
@@ -59,7 +59,7 @@
return ret; \
} } while (0)
-#define IMED_RET_FATAL( str, ret, allow_alert) do { \
+# define IMED_RET_FATAL( str, ret, allow_alert) do { \
if (ret < 0) { \
gnutls_assert(); \
if (gnutls_error_is_fatal(ret) == 0) \
@@ -77,7 +77,8 @@ int _gnutls_recv_handshake(gnutls_session_t session,
int
_gnutls_send_handshake2(gnutls_session_t session, mbuffer_st * bufel,
- gnutls_handshake_description_t type, unsigned queue_only);
+ gnutls_handshake_description_t type,
+ unsigned queue_only);
int _gnutls_generate_session_id(uint8_t * session_id, uint8_t * len);
int _gnutls_gen_server_random(gnutls_session_t session, int version);
@@ -100,17 +101,17 @@ int _gnutls_user_hello_func(gnutls_session_t session,
void _gnutls_handshake_hash_buffers_clear(gnutls_session_t session);
int _gnutls13_handshake_hash_buffers_synth(gnutls_session_t session,
- const mac_entry_st *prf,
+ const mac_entry_st * prf,
unsigned client);
-#define STATE session->internals.handshake_state
-#define FINAL_STATE session->internals.handshake_final_state
+# define STATE session->internals.handshake_state
+# define FINAL_STATE session->internals.handshake_final_state
/* This returns true if we have got there
* before (and not finished due to an interrupt).
*/
-#define AGAIN(target) (STATE==target?1:0)
-#define FAGAIN(target) (FINAL_STATE==target?1:0)
-#define AGAIN2(state, target) (state==target?1:0)
+# define AGAIN(target) (STATE==target?1:0)
+# define FAGAIN(target) (FINAL_STATE==target?1:0)
+# define AGAIN2(state, target) (state==target?1:0)
/* return the remaining time in ms */
inline static int handshake_remaining_time(gnutls_session_t session)
@@ -122,10 +123,11 @@ inline static int handshake_remaining_time(gnutls_session_t session)
gnutls_gettime(&now);
if (now.tv_sec < end->tv_sec ||
- (now.tv_sec == end->tv_sec && now.tv_nsec < end->tv_nsec))
- {
- long long now_ms = now.tv_sec * 1000LL + now.tv_nsec / 1000000;
- long long end_ms = end->tv_sec * 1000LL + end->tv_nsec / 1000000;
+ (now.tv_sec == end->tv_sec && now.tv_nsec < end->tv_nsec)) {
+ long long now_ms =
+ now.tv_sec * 1000LL + now.tv_nsec / 1000000;
+ long long end_ms =
+ end->tv_sec * 1000LL + end->tv_nsec / 1000000;
return end_ms - now_ms;
} else
@@ -148,17 +150,19 @@ inline static unsigned have_creds_for_tls13(gnutls_session_t session)
return 0;
}
-int _gnutls_handshake_get_session_hash(gnutls_session_t session, gnutls_datum_t *shash);
+int _gnutls_handshake_get_session_hash(gnutls_session_t session,
+ gnutls_datum_t * shash);
int _gnutls_check_id_for_change(gnutls_session_t session);
-int _gnutls_check_if_cert_hash_is_same(gnutls_session_t session, gnutls_certificate_credentials_t cred);
+int _gnutls_check_if_cert_hash_is_same(gnutls_session_t session,
+ gnutls_certificate_credentials_t cred);
-#include "handshake-defs.h"
+# include "handshake-defs.h"
int _gnutls_call_hook_func(gnutls_session_t session,
gnutls_handshake_description_t type,
int post, unsigned incoming,
- const uint8_t *data, unsigned data_size);
+ const uint8_t * data, unsigned data_size);
int _gnutls_run_verify_callback(gnutls_session_t session, unsigned int side);
int _gnutls_recv_finished(gnutls_session_t session);
@@ -169,9 +173,8 @@ int _gnutls13_handshake_server(gnutls_session_t session);
int
_gnutls13_recv_hello_retry_request(gnutls_session_t session,
- gnutls_buffer_st *buf);
+ gnutls_buffer_st * buf);
-int
-_gnutls13_recv_async_handshake(gnutls_session_t session);
+int _gnutls13_recv_async_handshake(gnutls_session_t session);
-#endif /* GNUTLS_LIB_HANDSHAKE_H */
+#endif /* GNUTLS_LIB_HANDSHAKE_H */
diff --git a/lib/hash_int.c b/lib/hash_int.c
index 289b6b9dd6..e4652fa1a4 100644
--- a/lib/hash_int.c
+++ b/lib/hash_int.c
@@ -44,9 +44,10 @@ int _gnutls_hash_init(digest_hd_st * dig, const mac_entry_st * e)
/* check if a digest has been registered
*/
- cc = _gnutls_get_crypto_digest((gnutls_digest_algorithm_t)e->id);
+ cc = _gnutls_get_crypto_digest((gnutls_digest_algorithm_t) e->id);
if (cc != NULL && cc->init) {
- if (cc->init((gnutls_digest_algorithm_t)e->id, &dig->handle) < 0) {
+ if (cc->init((gnutls_digest_algorithm_t) e->id, &dig->handle) <
+ 0) {
gnutls_assert();
return GNUTLS_E_HASH_FAILED;
}
@@ -59,7 +60,9 @@ int _gnutls_hash_init(digest_hd_st * dig, const mac_entry_st * e)
return 0;
}
- result = _gnutls_digest_ops.init((gnutls_digest_algorithm_t)e->id, &dig->handle);
+ result =
+ _gnutls_digest_ops.init((gnutls_digest_algorithm_t) e->id,
+ &dig->handle);
if (result < 0) {
gnutls_assert();
return result;
@@ -95,7 +98,7 @@ int _gnutls_hash_copy(const digest_hd_st * handle, digest_hd_st * dst)
if (handle->copy == NULL)
return gnutls_assert_val(GNUTLS_E_HASH_FAILED);
- *dst = *handle; /* copy data */
+ *dst = *handle; /* copy data */
dst->handle = handle->copy(handle->handle);
if (dst->handle == NULL)
@@ -123,7 +126,7 @@ _gnutls_hash_fast(gnutls_digest_algorithm_t algorithm,
{
int ret;
const gnutls_crypto_digest_st *cc = NULL;
-
+
FAIL_IF_LIB_ERROR;
/* check if a digest has been registered
@@ -147,13 +150,11 @@ _gnutls_hash_fast(gnutls_digest_algorithm_t algorithm,
return 0;
}
-
/* HMAC interface */
int
_gnutls_mac_fast(gnutls_mac_algorithm_t algorithm, const void *key,
- int keylen, const void *text, size_t textlen,
- void *digest)
+ int keylen, const void *text, size_t textlen, void *digest)
{
int ret;
const gnutls_crypto_mac_st *cc = NULL;
@@ -164,9 +165,8 @@ _gnutls_mac_fast(gnutls_mac_algorithm_t algorithm, const void *key,
*/
cc = _gnutls_get_crypto_mac(algorithm);
if (cc != NULL) {
- if (cc->
- fast(algorithm, NULL, 0, key, keylen, text, textlen,
- digest) < 0) {
+ if (cc->fast(algorithm, NULL, 0, key, keylen, text, textlen,
+ digest) < 0) {
gnutls_assert();
return GNUTLS_E_HASH_FAILED;
}
@@ -274,7 +274,7 @@ int _gnutls_mac_copy(const mac_hd_st * handle, mac_hd_st * dst)
if (handle->copy == NULL)
return gnutls_assert_val(GNUTLS_E_HASH_FAILED);
- *dst = *handle; /* copy data */
+ *dst = *handle; /* copy data */
dst->handle = handle->copy(handle->handle);
if (dst->handle == NULL)
@@ -443,7 +443,7 @@ _gnutls_mac_deinit_ssl3_handshake(digest_hd_st * handle,
return 0;
- cleanup:
+ cleanup:
_gnutls_hash_deinit(handle, NULL);
return rc;
}
@@ -475,8 +475,8 @@ ssl3_sha(int i, uint8_t * secret, int secret_len,
return 0;
}
-#define SHA1_DIGEST_OUTPUT 20
-#define MD5_DIGEST_OUTPUT 16
+# define SHA1_DIGEST_OUTPUT 20
+# define MD5_DIGEST_OUTPUT 16
static int
ssl3_md5(int i, uint8_t * secret, int secret_len,
@@ -527,8 +527,7 @@ _gnutls_ssl3_generate_random(void *secret, int secret_len,
for (i = 0; i < times; i++) {
- result =
- ssl3_md5(i, secret, secret_len, rnd, rnd_len, digest);
+ result = ssl3_md5(i, secret, secret_len, rnd, rnd_len, digest);
if (result < 0) {
gnutls_assert();
return result;
diff --git a/lib/hash_int.h b/lib/hash_int.h
index 675ac4ef7f..9dda108eee 100644
--- a/lib/hash_int.h
+++ b/lib/hash_int.h
@@ -21,12 +21,12 @@
*/
#ifndef GNUTLS_LIB_HASH_INT_H
-#define GNUTLS_LIB_HASH_INT_H
+# define GNUTLS_LIB_HASH_INT_H
-#include "gnutls_int.h"
-#include <gnutls/crypto.h>
-#include <crypto-backend.h>
-#include <crypto.h>
+# include "gnutls_int.h"
+# include <gnutls/crypto.h>
+# include <crypto-backend.h>
+# include <crypto.h>
/* for message digests */
@@ -36,13 +36,12 @@ extern gnutls_crypto_mac_st _gnutls_mac_ops;
extern int crypto_digest_prio;
extern gnutls_crypto_digest_st _gnutls_digest_ops;
-typedef int (*hash_func) (void *handle, const void *text, size_t size);
-typedef int (*nonce_func) (void *handle, const void *text, size_t size);
-typedef int (*output_func) (void *src_ctx, void *digest,
- size_t digestsize);
-typedef void (*hash_deinit_func) (void *handle);
-typedef void *(*copy_func) (const void *handle);
-typedef int (*setkey_func) (void *handle, const void *key, size_t keysize);
+typedef int (*hash_func)(void *handle, const void *text, size_t size);
+typedef int (*nonce_func)(void *handle, const void *text, size_t size);
+typedef int (*output_func)(void *src_ctx, void *digest, size_t digestsize);
+typedef void (*hash_deinit_func)(void *handle);
+typedef void *(*copy_func)(const void *handle);
+typedef int (*setkey_func)(void *handle, const void *key, size_t keysize);
typedef struct {
const mac_entry_st *e;
@@ -114,7 +113,6 @@ _gnutls_mac_setkey(mac_hd_st * handle, const void *key, size_t key_size)
return handle->setkey(handle->handle, key, key_size);
}
-
void _gnutls_mac_deinit(mac_hd_st * handle, void *digest);
/* Hash interface */
@@ -131,7 +129,7 @@ _gnutls_hash(digest_hd_st * handle, const void *text, size_t textlen)
/* when the current output is needed without calling deinit
*/
-#define _gnutls_hash_output(h, d) \
+# define _gnutls_hash_output(h, d) \
(h)->output((h)->handle, d, _gnutls_hash_get_algo_len((h)->e))
void _gnutls_hash_deinit(digest_hd_st * handle, void *digest);
@@ -142,7 +140,7 @@ int
_gnutls_hash_fast(gnutls_digest_algorithm_t algorithm,
const void *text, size_t textlen, void *digest);
-#ifdef ENABLE_SSL3
+# ifdef ENABLE_SSL3
/* helper functions */
int _gnutls_mac_init_ssl3(digest_hd_st *, const mac_entry_st * e,
void *key, int keylen);
@@ -155,7 +153,7 @@ int _gnutls_ssl3_generate_random(void *secret, int secret_len,
int _gnutls_mac_deinit_ssl3_handshake(digest_hd_st * handle, void *digest,
uint8_t * key, uint32_t key_size);
-#endif
+# endif
inline static int IS_SHA(gnutls_digest_algorithm_t algo)
{
@@ -166,4 +164,4 @@ inline static int IS_SHA(gnutls_digest_algorithm_t algo)
return 0;
}
-#endif /* GNUTLS_LIB_HASH_INT_H */
+#endif /* GNUTLS_LIB_HASH_INT_H */
diff --git a/lib/hello_ext.c b/lib/hello_ext.c
index 779638bb83..6870db8a81 100644
--- a/lib/hello_ext.c
+++ b/lib/hello_ext.c
@@ -61,11 +61,14 @@
#include "intprops.h"
static void
-unset_ext_data(gnutls_session_t session, const struct hello_ext_entry_st *, unsigned idx);
+unset_ext_data(gnutls_session_t session, const struct hello_ext_entry_st *,
+ unsigned idx);
-static void unset_resumed_ext_data(gnutls_session_t session, const struct hello_ext_entry_st *, unsigned idx);
+static void unset_resumed_ext_data(gnutls_session_t session,
+ const struct hello_ext_entry_st *,
+ unsigned idx);
-static hello_ext_entry_st const *extfunc[MAX_EXT_TYPES+1] = {
+static hello_ext_entry_st const *extfunc[MAX_EXT_TYPES + 1] = {
[GNUTLS_EXTENSION_EXT_MASTER_SECRET] = &ext_mod_ext_master_secret,
[GNUTLS_EXTENSION_SUPPORTED_VERSIONS] = &ext_mod_supported_versions,
[GNUTLS_EXTENSION_POST_HANDSHAKE] = &ext_mod_post_handshake,
@@ -85,7 +88,8 @@ static hello_ext_entry_st const *extfunc[MAX_EXT_TYPES+1] = {
[GNUTLS_EXTENSION_CLIENT_CERT_TYPE] = &ext_mod_client_cert_type,
[GNUTLS_EXTENSION_SERVER_CERT_TYPE] = &ext_mod_server_cert_type,
[GNUTLS_EXTENSION_SUPPORTED_GROUPS] = &ext_mod_supported_groups,
- [GNUTLS_EXTENSION_SUPPORTED_EC_POINT_FORMATS] = &ext_mod_supported_ec_point_formats,
+ [GNUTLS_EXTENSION_SUPPORTED_EC_POINT_FORMATS] =
+ &ext_mod_supported_ec_point_formats,
[GNUTLS_EXTENSION_SIGNATURE_ALGORITHMS] = &ext_mod_sig,
[GNUTLS_EXTENSION_KEY_SHARE] = &ext_mod_key_share,
[GNUTLS_EXTENSION_COOKIE] = &ext_mod_cookie,
@@ -106,14 +110,14 @@ static hello_ext_entry_st const *extfunc[MAX_EXT_TYPES+1] = {
[GNUTLS_EXTENSION_DUMBFW] = &ext_mod_dumbfw,
};
-static const hello_ext_entry_st *
-gid_to_ext_entry(gnutls_session_t session, extensions_t id)
+static const hello_ext_entry_st *gid_to_ext_entry(gnutls_session_t session,
+ extensions_t id)
{
unsigned i;
assert(id < MAX_EXT_TYPES);
- for (i=0;i<session->internals.rexts_size;i++) {
+ for (i = 0; i < session->internals.rexts_size; i++) {
if (session->internals.rexts[i].gid == id) {
return &session->internals.rexts[i];
}
@@ -122,13 +126,15 @@ gid_to_ext_entry(gnutls_session_t session, extensions_t id)
return extfunc[id];
}
-static const hello_ext_entry_st *
-tls_id_to_ext_entry(gnutls_session_t session, uint16_t tls_id, gnutls_ext_parse_type_t parse_point)
+static const hello_ext_entry_st *tls_id_to_ext_entry(gnutls_session_t session,
+ uint16_t tls_id,
+ gnutls_ext_parse_type_t
+ parse_point)
{
unsigned i;
const hello_ext_entry_st *e;
- for (i=0;i<session->internals.rexts_size;i++) {
+ for (i = 0; i < session->internals.rexts_size; i++) {
if (session->internals.rexts[i].tls_id == tls_id) {
e = &session->internals.rexts[i];
goto done;
@@ -146,16 +152,16 @@ tls_id_to_ext_entry(gnutls_session_t session, uint16_t tls_id, gnutls_ext_parse_
}
return NULL;
-done:
- if (parse_point == GNUTLS_EXT_ANY || (IS_SERVER(session) && e->server_parse_point == parse_point) ||
- (!IS_SERVER(session) && e->client_parse_point == parse_point)) {
+ done:
+ if (parse_point == GNUTLS_EXT_ANY
+ || (IS_SERVER(session) && e->server_parse_point == parse_point)
+ || (!IS_SERVER(session) && e->client_parse_point == parse_point)) {
return e;
} else {
return NULL;
}
}
-
/**
* gnutls_ext_get_name:
* @ext: is a TLS extension numeric ID
@@ -186,7 +192,7 @@ static unsigned tls_id_to_gid(gnutls_session_t session, unsigned tls_id)
{
unsigned i;
- for (i=0; i < session->internals.rexts_size; i++) {
+ for (i = 0; i < session->internals.rexts_size; i++) {
if (session->internals.rexts[i].tls_id == tls_id)
return session->internals.rexts[i].gid;
}
@@ -206,12 +212,13 @@ typedef struct hello_ext_ctx_st {
gnutls_session_t session;
gnutls_ext_flags_t msg;
gnutls_ext_parse_type_t parse_point;
- const hello_ext_entry_st *ext; /* used during send */
+ const hello_ext_entry_st *ext; /* used during send */
unsigned seen_pre_shared_key;
} hello_ext_ctx_st;
static
-int hello_ext_parse(void *_ctx, unsigned tls_id, const uint8_t *data, unsigned data_size)
+int hello_ext_parse(void *_ctx, unsigned tls_id, const uint8_t * data,
+ unsigned data_size)
{
hello_ext_ctx_st *ctx = _ctx;
gnutls_session_t session = ctx->session;
@@ -220,7 +227,8 @@ int hello_ext_parse(void *_ctx, unsigned tls_id, const uint8_t *data, unsigned d
if (tls_id == PRE_SHARED_KEY_TLS_ID) {
ctx->seen_pre_shared_key = 1;
- } else if (ctx->seen_pre_shared_key && session->security_parameters.entity == GNUTLS_SERVER) {
+ } else if (ctx->seen_pre_shared_key
+ && session->security_parameters.entity == GNUTLS_SERVER) {
/* the pre-shared key extension must always be the last one,
* draft-ietf-tls-tls13-28: 4.2.11 */
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
@@ -248,29 +256,34 @@ int hello_ext_parse(void *_ctx, unsigned tls_id, const uint8_t *data, unsigned d
if (session->security_parameters.entity == GNUTLS_CLIENT) {
if (!(ext->validity & GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST) &&
!_gnutls_hello_ext_is_present(session, ext->gid)) {
- _gnutls_debug_log("EXT[%p]: Received unexpected extension '%s/%d'\n", session,
- ext->name, (int)tls_id);
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
+ _gnutls_debug_log
+ ("EXT[%p]: Received unexpected extension '%s/%d'\n",
+ session, ext->name, (int)tls_id);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
}
}
if ((ext->validity & ctx->msg) == 0) {
- _gnutls_debug_log("EXT[%p]: Received unexpected extension (%s/%d) for '%s'\n", session,
- ext->name, (int)tls_id,
- ext_msg_validity_to_str(ctx->msg));
+ _gnutls_debug_log
+ ("EXT[%p]: Received unexpected extension (%s/%d) for '%s'\n",
+ session, ext->name, (int)tls_id,
+ ext_msg_validity_to_str(ctx->msg));
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
}
if (session->security_parameters.entity == GNUTLS_SERVER) {
ret = _gnutls_hello_ext_save(session, ext->gid, 1);
if (ret == 0)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
}
_gnutls_handshake_log
("EXT[%p]: Parsing extension '%s/%d' (%d bytes)\n",
- session, ext->name, (int)tls_id,
- data_size);
+ session, ext->name, (int)tls_id, data_size);
_gnutls_ext_set_msg(session, ctx->msg);
if ((ret = ext->recv_func(session, data, data_size)) < 0) {
@@ -313,7 +326,7 @@ _gnutls_parse_hello_extensions(gnutls_session_t session,
}
static
-int hello_ext_send(void *_ctx, gnutls_buffer_st *buf)
+int hello_ext_send(void *_ctx, gnutls_buffer_st * buf)
{
hello_ext_ctx_st *ctx = _ctx;
int ret;
@@ -326,8 +339,9 @@ int hello_ext_send(void *_ctx, gnutls_buffer_st *buf)
return 0;
if (ctx->parse_point != GNUTLS_EXT_ANY &&
- ((IS_SERVER(session) && p->server_parse_point != ctx->parse_point) ||
- (!IS_SERVER(session) && p->client_parse_point != ctx->parse_point))) {
+ ((IS_SERVER(session) && p->server_parse_point != ctx->parse_point)
+ || (!IS_SERVER(session)
+ && p->client_parse_point != ctx->parse_point))) {
return 0;
}
@@ -346,9 +360,10 @@ int hello_ext_send(void *_ctx, gnutls_buffer_st *buf)
if ((ctx->msg & p->validity) == 0) {
goto skip;
} else {
- _gnutls_handshake_log("EXT[%p]: Preparing extension (%s/%d) for '%s'\n", session,
- p->name, (int)p->tls_id,
- ext_msg_validity_to_str(ctx->msg));
+ _gnutls_handshake_log
+ ("EXT[%p]: Preparing extension (%s/%d) for '%s'\n", session,
+ p->name, (int)p->tls_id,
+ ext_msg_validity_to_str(ctx->msg));
}
/* ensure we don't send something twice (i.e, overridden extensions in
@@ -357,14 +372,14 @@ int hello_ext_send(void *_ctx, gnutls_buffer_st *buf)
if (session->security_parameters.entity == GNUTLS_SERVER) {
/* if client didn't advertise and the override flag is not present */
- if (!(p->validity & GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST) && ret == 0)
+ if (!(p->validity & GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST)
+ && ret == 0)
return 0;
} else {
- if (ret != 0) /* already sent */
+ if (ret != 0) /* already sent */
return 0;
}
-
size_prev = buf->length;
_gnutls_ext_set_msg(session, ctx->msg);
@@ -387,9 +402,9 @@ int hello_ext_send(void *_ctx, gnutls_buffer_st *buf)
return ret;
skip:
- _gnutls_handshake_log("EXT[%p]: Not sending extension (%s/%d) for '%s'\n", session,
- p->name, (int)p->tls_id,
- ext_msg_validity_to_str(ctx->msg));
+ _gnutls_handshake_log
+ ("EXT[%p]: Not sending extension (%s/%d) for '%s'\n", session,
+ p->name, (int)p->tls_id, ext_msg_validity_to_str(ctx->msg));
return 0;
}
@@ -416,17 +431,19 @@ _gnutls_gen_hello_extensions(gnutls_session_t session,
pos = ret;
_gnutls_ext_set_extensions_offset(session, pos);
- for (i=0; i < session->internals.rexts_size; i++) {
+ for (i = 0; i < session->internals.rexts_size; i++) {
ctx.ext = &session->internals.rexts[i];
- ret = _gnutls_extv_append(buf, session->internals.rexts[i].tls_id,
- &ctx, hello_ext_send);
+ ret =
+ _gnutls_extv_append(buf, session->internals.rexts[i].tls_id,
+ &ctx, hello_ext_send);
if (ret < 0)
return gnutls_assert_val(ret);
if (ret > 0)
_gnutls_handshake_log
- ("EXT[%p]: Sending extension %s/%d (%d bytes)\n",
- session, ctx.ext->name, (int)ctx.ext->tls_id, ret-4);
+ ("EXT[%p]: Sending extension %s/%d (%d bytes)\n",
+ session, ctx.ext->name, (int)ctx.ext->tls_id,
+ ret - 4);
}
/* hello_ext_send() ensures we don't send duplicates, in case
@@ -443,8 +460,9 @@ _gnutls_gen_hello_extensions(gnutls_session_t session,
if (ret > 0)
_gnutls_handshake_log
- ("EXT[%p]: Sending extension %s/%d (%d bytes)\n",
- session, ctx.ext->name, (int)ctx.ext->tls_id, ret-4);
+ ("EXT[%p]: Sending extension %s/%d (%d bytes)\n",
+ session, ctx.ext->name, (int)ctx.ext->tls_id,
+ ret - 4);
}
ret = _gnutls_extv_append_final(buf, pos, !(msg & GNUTLS_EXT_FLAG_EE));
@@ -469,15 +487,16 @@ void _gnutls_hello_ext_deinit(void)
continue;
if (extfunc[i]->free_struct != 0) {
- gnutls_free(((hello_ext_entry_st *)extfunc[i])->name);
+ gnutls_free(((hello_ext_entry_st *) extfunc[i])->name);
gnutls_free(extfunc[i]);
}
}
}
/* Packing of extension data (for use in resumption) */
-static int pack_extension(gnutls_session_t session, const hello_ext_entry_st *extp,
- gnutls_buffer_st *packed)
+static int pack_extension(gnutls_session_t session,
+ const hello_ext_entry_st * extp,
+ gnutls_buffer_st * packed)
{
int ret;
int size_offset;
@@ -485,9 +504,7 @@ static int pack_extension(gnutls_session_t session, const hello_ext_entry_st *ex
gnutls_ext_priv_data_t data;
int rval = 0;
- ret =
- _gnutls_hello_ext_get_priv(session, extp->gid,
- &data);
+ ret = _gnutls_hello_ext_get_priv(session, extp->gid, &data);
if (ret >= 0 && extp->pack_func != NULL) {
BUFFER_APPEND_NUM(packed, extp->gid);
@@ -511,7 +528,7 @@ static int pack_extension(gnutls_session_t session, const hello_ext_entry_st *ex
return rval;
}
-int _gnutls_hello_ext_pack(gnutls_session_t session, gnutls_buffer_st *packed)
+int _gnutls_hello_ext_pack(gnutls_session_t session, gnutls_buffer_st * packed)
{
unsigned int i;
int ret;
@@ -523,7 +540,7 @@ int _gnutls_hello_ext_pack(gnutls_session_t session, gnutls_buffer_st *packed)
BUFFER_APPEND_NUM(packed, 0);
for (i = 0; i <= GNUTLS_EXTENSION_MAX_VALUE; i++) {
- if (session->internals.used_exts & ((ext_track_t)1 << i)) {
+ if (session->internals.used_exts & ((ext_track_t) 1 << i)) {
ext = gid_to_ext_entry(session, i);
if (ext == NULL)
@@ -544,7 +561,7 @@ int _gnutls_hello_ext_pack(gnutls_session_t session, gnutls_buffer_st *packed)
}
int _gnutls_ext_set_full_client_hello(gnutls_session_t session,
- handshake_buffer_st *recv_buf)
+ handshake_buffer_st * recv_buf)
{
int ret;
gnutls_buffer_st *buf = &session->internals.full_client_hello;
@@ -553,16 +570,19 @@ int _gnutls_ext_set_full_client_hello(gnutls_session_t session,
if ((ret = _gnutls_buffer_append_prefix(buf, 8, recv_buf->htype)) < 0)
return gnutls_assert_val(ret);
- if ((ret = _gnutls_buffer_append_prefix(buf, 24, recv_buf->data.length)) < 0)
+ if ((ret =
+ _gnutls_buffer_append_prefix(buf, 24, recv_buf->data.length)) < 0)
return gnutls_assert_val(ret);
- if ((ret = _gnutls_buffer_append_data(buf, recv_buf->data.data, recv_buf->data.length)) < 0)
+ if ((ret =
+ _gnutls_buffer_append_data(buf, recv_buf->data.data,
+ recv_buf->data.length)) < 0)
return gnutls_assert_val(ret);
return 0;
}
unsigned _gnutls_ext_get_full_client_hello(gnutls_session_t session,
- gnutls_datum_t *d)
+ gnutls_datum_t * d)
{
gnutls_buffer_st *buf = &session->internals.full_client_hello;
@@ -596,7 +616,8 @@ _gnutls_ext_set_resumed_session_data(gnutls_session_t session,
return;
}
-int _gnutls_hello_ext_unpack(gnutls_session_t session, gnutls_buffer_st * packed)
+int _gnutls_hello_ext_unpack(gnutls_session_t session,
+ gnutls_buffer_st * packed)
{
int i, ret;
gnutls_ext_priv_data_t data;
@@ -636,24 +657,24 @@ int _gnutls_hello_ext_unpack(gnutls_session_t session, gnutls_buffer_st * packed
return 0;
- error:
+ error:
return ret;
}
static void
-unset_ext_data(gnutls_session_t session, const struct hello_ext_entry_st *ext, unsigned idx)
+unset_ext_data(gnutls_session_t session, const struct hello_ext_entry_st *ext,
+ unsigned idx)
{
if (session->internals.ext_data[idx].set == 0)
return;
- if (ext && ext->deinit_func && session->internals.ext_data[idx].priv != NULL)
+ if (ext && ext->deinit_func
+ && session->internals.ext_data[idx].priv != NULL)
ext->deinit_func(session->internals.ext_data[idx].priv);
session->internals.ext_data[idx].set = 0;
}
-void
-_gnutls_hello_ext_unset_priv(gnutls_session_t session,
- extensions_t id)
+void _gnutls_hello_ext_unset_priv(gnutls_session_t session, extensions_t id)
{
const struct hello_ext_entry_st *ext;
@@ -662,12 +683,15 @@ _gnutls_hello_ext_unset_priv(gnutls_session_t session,
unset_ext_data(session, ext, id);
}
-static void unset_resumed_ext_data(gnutls_session_t session, const struct hello_ext_entry_st *ext, unsigned idx)
+static void unset_resumed_ext_data(gnutls_session_t session,
+ const struct hello_ext_entry_st *ext,
+ unsigned idx)
{
if (session->internals.ext_data[idx].resumed_set == 0)
return;
- if (ext && ext->deinit_func && session->internals.ext_data[idx].resumed_priv) {
+ if (ext && ext->deinit_func
+ && session->internals.ext_data[idx].resumed_priv) {
ext->deinit_func(session->internals.ext_data[idx].resumed_priv);
}
session->internals.ext_data[idx].resumed_set = 0;
@@ -681,7 +705,8 @@ void _gnutls_hello_ext_priv_deinit(gnutls_session_t session)
const struct hello_ext_entry_st *ext;
for (i = 0; i < MAX_EXT_TYPES; i++) {
- if (!session->internals.ext_data[i].set && !session->internals.ext_data[i].resumed_set)
+ if (!session->internals.ext_data[i].set
+ && !session->internals.ext_data[i].resumed_set)
continue;
ext = gid_to_ext_entry(session, i);
@@ -698,7 +723,7 @@ void _gnutls_hello_ext_priv_deinit(gnutls_session_t session)
*/
void
_gnutls_hello_ext_set_priv(gnutls_session_t session, extensions_t id,
- gnutls_ext_priv_data_t data)
+ gnutls_ext_priv_data_t data)
{
const struct hello_ext_entry_st *ext;
@@ -718,11 +743,10 @@ _gnutls_hello_ext_set_priv(gnutls_session_t session, extensions_t id,
int
_gnutls_hello_ext_get_priv(gnutls_session_t session,
- extensions_t id, gnutls_ext_priv_data_t * data)
+ extensions_t id, gnutls_ext_priv_data_t * data)
{
if (session->internals.ext_data[id].set != 0) {
- *data =
- session->internals.ext_data[id].priv;
+ *data = session->internals.ext_data[id].priv;
return 0;
}
@@ -731,12 +755,11 @@ _gnutls_hello_ext_get_priv(gnutls_session_t session,
int
_gnutls_hello_ext_get_resumed_priv(gnutls_session_t session,
- extensions_t id,
- gnutls_ext_priv_data_t * data)
+ extensions_t id,
+ gnutls_ext_priv_data_t * data)
{
if (session->internals.ext_data[id].resumed_set != 0) {
- *data =
- session->internals.ext_data[id].resumed_priv;
+ *data = session->internals.ext_data[id].resumed_priv;
return 0;
}
@@ -772,14 +795,17 @@ _gnutls_hello_ext_get_resumed_priv(gnutls_session_t session,
* Since: 3.4.0
**/
int
-gnutls_ext_register(const char *name, int id, gnutls_ext_parse_type_t parse_point,
- gnutls_ext_recv_func recv_func, gnutls_ext_send_func send_func,
- gnutls_ext_deinit_data_func deinit_func, gnutls_ext_pack_func pack_func,
+gnutls_ext_register(const char *name, int id,
+ gnutls_ext_parse_type_t parse_point,
+ gnutls_ext_recv_func recv_func,
+ gnutls_ext_send_func send_func,
+ gnutls_ext_deinit_data_func deinit_func,
+ gnutls_ext_pack_func pack_func,
gnutls_ext_unpack_func unpack_func)
{
hello_ext_entry_st *tmp_mod;
unsigned i;
- unsigned gid = GNUTLS_EXTENSION_MAX+1;
+ unsigned gid = GNUTLS_EXTENSION_MAX + 1;
for (i = 0; i < MAX_EXT_TYPES; i++) {
if (!extfunc[i])
@@ -792,7 +818,7 @@ gnutls_ext_register(const char *name, int id, gnutls_ext_parse_type_t parse_poin
gid = extfunc[i]->gid + 1;
}
- assert(gid < sizeof(extfunc)/sizeof(extfunc[0]));
+ assert(gid < sizeof(extfunc) / sizeof(extfunc[0]));
if (gid > GNUTLS_EXTENSION_MAX_VALUE)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -811,8 +837,9 @@ gnutls_ext_register(const char *name, int id, gnutls_ext_parse_type_t parse_poin
tmp_mod->deinit_func = deinit_func;
tmp_mod->pack_func = pack_func;
tmp_mod->unpack_func = unpack_func;
- tmp_mod->validity = GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO |
- GNUTLS_EXT_FLAG_EE | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_TLS;
+ tmp_mod->validity =
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO |
+ GNUTLS_EXT_FLAG_EE | GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_TLS;
assert(extfunc[gid] == NULL);
extfunc[gid] = tmp_mod;
@@ -860,15 +887,18 @@ gnutls_ext_register(const char *name, int id, gnutls_ext_parse_type_t parse_poin
**/
int
gnutls_session_ext_register(gnutls_session_t session,
- const char *name, int id, gnutls_ext_parse_type_t parse_point,
- gnutls_ext_recv_func recv_func, gnutls_ext_send_func send_func,
- gnutls_ext_deinit_data_func deinit_func, gnutls_ext_pack_func pack_func,
+ const char *name, int id,
+ gnutls_ext_parse_type_t parse_point,
+ gnutls_ext_recv_func recv_func,
+ gnutls_ext_send_func send_func,
+ gnutls_ext_deinit_data_func deinit_func,
+ gnutls_ext_pack_func pack_func,
gnutls_ext_unpack_func unpack_func, unsigned flags)
{
hello_ext_entry_st tmp_mod;
hello_ext_entry_st *exts;
unsigned i;
- unsigned gid = GNUTLS_EXTENSION_MAX+1;
+ unsigned gid = GNUTLS_EXTENSION_MAX + 1;
/* reject handling any extensions which modify the TLS handshake
* in any way, or are mapped to an exported API. */
@@ -878,9 +908,13 @@ gnutls_session_ext_register(gnutls_session_t session,
if (extfunc[i]->tls_id == id) {
if (!(flags & GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL)) {
- return gnutls_assert_val(GNUTLS_E_ALREADY_REGISTERED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_ALREADY_REGISTERED);
} else if (extfunc[i]->cannot_be_overriden) {
- return gnutls_assert_val(GNUTLS_E_ALREADY_REGISTERED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_ALREADY_REGISTERED);
}
break;
}
@@ -889,7 +923,7 @@ gnutls_session_ext_register(gnutls_session_t session,
gid = extfunc[i]->gid + 1;
}
- for (i=0;i<session->internals.rexts_size;i++) {
+ for (i = 0; i < session->internals.rexts_size; i++) {
if (session->internals.rexts[i].tls_id == id) {
return gnutls_assert_val(GNUTLS_E_ALREADY_REGISTERED);
}
@@ -916,11 +950,13 @@ gnutls_session_ext_register(gnutls_session_t session,
tmp_mod.validity = flags;
if ((tmp_mod.validity & VALIDITY_MASK) == 0) {
- tmp_mod.validity = GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO |
- GNUTLS_EXT_FLAG_EE;
+ tmp_mod.validity =
+ GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO | GNUTLS_EXT_FLAG_EE;
}
- if ((tmp_mod.validity & (GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_TLS)) == 0) {
+ if ((tmp_mod.validity & (GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_TLS)) ==
+ 0) {
if (IS_DTLS(session))
tmp_mod.validity |= GNUTLS_EXT_FLAG_DTLS;
else
@@ -940,7 +976,8 @@ gnutls_session_ext_register(gnutls_session_t session,
session->internals.rexts = exts;
- memcpy(&session->internals.rexts[session->internals.rexts_size], &tmp_mod, sizeof(hello_ext_entry_st));
+ memcpy(&session->internals.rexts[session->internals.rexts_size],
+ &tmp_mod, sizeof(hello_ext_entry_st));
session->internals.rexts_size++;
return 0;
@@ -983,7 +1020,7 @@ gnutls_ext_set_data(gnutls_session_t session, unsigned tls_id,
**/
int
gnutls_ext_get_data(gnutls_session_t session,
- unsigned tls_id, gnutls_ext_priv_data_t *data)
+ unsigned tls_id, gnutls_ext_priv_data_t * data)
{
unsigned id = tls_id_to_gid(session, tls_id);
if (id == GNUTLS_EXTENSION_INVALID)
@@ -1034,4 +1071,3 @@ const char *gnutls_ext_get_name2(gnutls_session_t session, unsigned int tls_id,
return NULL;
}
-
diff --git a/lib/hello_ext.h b/lib/hello_ext.h
index a7b921875d..aa342d9a9c 100644
--- a/lib/hello_ext.h
+++ b/lib/hello_ext.h
@@ -22,11 +22,11 @@
*/
#ifndef GNUTLS_LIB_HELLO_EXT_H
-#define GNUTLS_LIB_HELLO_EXT_H
+# define GNUTLS_LIB_HELLO_EXT_H
-#include "gnutls_int.h"
-#include <gnutls/gnutls.h>
-#include "str.h"
+# include "gnutls_int.h"
+# include <gnutls/gnutls.h>
+# include "str.h"
/* Functions for hello extension parsing.
*/
@@ -45,22 +45,21 @@ void _gnutls_hello_ext_priv_deinit(gnutls_session_t session);
/* functions to be used by extensions internally
*/
-void _gnutls_hello_ext_unset_priv(gnutls_session_t session,
- extensions_t ext);
+void _gnutls_hello_ext_unset_priv(gnutls_session_t session, extensions_t ext);
void _gnutls_hello_ext_set_priv(gnutls_session_t session, extensions_t ext,
- gnutls_ext_priv_data_t);
+ gnutls_ext_priv_data_t);
int _gnutls_hello_ext_get_priv(gnutls_session_t session, extensions_t ext,
- gnutls_ext_priv_data_t *);
+ gnutls_ext_priv_data_t *);
int _gnutls_hello_ext_get_resumed_priv(gnutls_session_t session,
- extensions_t ext,
- gnutls_ext_priv_data_t * data);
+ extensions_t ext,
+ gnutls_ext_priv_data_t * data);
-#define GNUTLS_EXT_FLAG_MSG_MASK (GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO| \
+# define GNUTLS_EXT_FLAG_MSG_MASK (GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO| \
GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO | GNUTLS_EXT_FLAG_EE | GNUTLS_EXT_FLAG_HRR)
/* these flags can only be set in the extensions, but cannot be requested;
* they are handled internally by the hello parsing/generating functions. */
-#define GNUTLS_EXT_FLAG_SET_ONLY_FLAGS_MASK ~(GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_TLS)
+# define GNUTLS_EXT_FLAG_SET_ONLY_FLAGS_MASK ~(GNUTLS_EXT_FLAG_DTLS | GNUTLS_EXT_FLAG_TLS)
/* obtain the message this extension was received at */
inline static gnutls_ext_flags_t _gnutls_ext_get_msg(gnutls_session_t session)
@@ -68,13 +67,14 @@ inline static gnutls_ext_flags_t _gnutls_ext_get_msg(gnutls_session_t session)
return session->internals.ext_msg & GNUTLS_EXT_FLAG_MSG_MASK;
}
-inline static void _gnutls_ext_set_msg(gnutls_session_t session, gnutls_ext_flags_t msg)
+inline static void _gnutls_ext_set_msg(gnutls_session_t session,
+ gnutls_ext_flags_t msg)
{
session->internals.ext_msg = msg;
}
inline static void _gnutls_ext_set_extensions_offset(gnutls_session_t session,
- int offset)
+ int offset)
{
session->internals.extensions_offset = offset;
}
@@ -85,45 +85,45 @@ inline static int _gnutls_ext_get_extensions_offset(gnutls_session_t session)
}
int _gnutls_ext_set_full_client_hello(gnutls_session_t session,
- handshake_buffer_st *recv_buf);
+ handshake_buffer_st * recv_buf);
unsigned _gnutls_ext_get_full_client_hello(gnutls_session_t session,
- gnutls_datum_t *datum);
+ gnutls_datum_t * datum);
/* for session packing */
int _gnutls_hello_ext_pack(gnutls_session_t session, gnutls_buffer_st * packed);
int _gnutls_hello_ext_unpack(gnutls_session_t session,
- gnutls_buffer_st * packed);
+ gnutls_buffer_st * packed);
inline static const char *ext_msg_validity_to_str(gnutls_ext_flags_t msg)
{
msg &= GNUTLS_EXT_FLAG_MSG_MASK;
- switch(msg) {
- case GNUTLS_EXT_FLAG_CLIENT_HELLO:
- return "client hello";
- case GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO:
- return "TLS 1.2 server hello";
- case GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO:
- return "TLS 1.3 server hello";
- case GNUTLS_EXT_FLAG_EE:
- return "encrypted extensions";
- case GNUTLS_EXT_FLAG_HRR:
- return "hello retry request";
- default:
- return "(unknown)";
+ switch (msg) {
+ case GNUTLS_EXT_FLAG_CLIENT_HELLO:
+ return "client hello";
+ case GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO:
+ return "TLS 1.2 server hello";
+ case GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO:
+ return "TLS 1.3 server hello";
+ case GNUTLS_EXT_FLAG_EE:
+ return "encrypted extensions";
+ case GNUTLS_EXT_FLAG_HRR:
+ return "hello retry request";
+ default:
+ return "(unknown)";
}
}
typedef struct hello_ext_entry_st {
- const char *name; /* const overridden when free_struct is set */
+ const char *name; /* const overridden when free_struct is set */
unsigned free_struct;
uint16_t tls_id;
- unsigned gid; /* gnutls internal ID */
+ unsigned gid; /* gnutls internal ID */
gnutls_ext_parse_type_t client_parse_point;
gnutls_ext_parse_type_t server_parse_point;
- unsigned validity; /* multiple items of gnutls_ext_flags_t */
+ unsigned validity; /* multiple items of gnutls_ext_flags_t */
/* this function must return 0 when Not Applicable
* size of extension data if ok
@@ -160,7 +160,7 @@ typedef struct hello_ext_entry_st {
inline static unsigned
_gnutls_hello_ext_is_present(gnutls_session_t session, extensions_t id)
{
- if (session->internals.used_exts & ((ext_track_t)1 << id))
+ if (session->internals.used_exts & ((ext_track_t) 1 << id))
return 1;
return 0;
@@ -177,14 +177,13 @@ _gnutls_hello_ext_is_present(gnutls_session_t session, extensions_t id)
*/
inline static
unsigned _gnutls_hello_ext_save(gnutls_session_t session,
- extensions_t id,
- unsigned check_dup)
+ extensions_t id, unsigned check_dup)
{
if (check_dup && _gnutls_hello_ext_is_present(session, id)) {
- return 0;
+ return 0;
}
- session->internals.used_exts |= ((ext_track_t)1 << id);
+ session->internals.used_exts |= ((ext_track_t) 1 << id);
return 1;
}
@@ -195,4 +194,4 @@ void _gnutls_hello_ext_save_sr(gnutls_session_t session)
_gnutls_hello_ext_save(session, GNUTLS_EXTENSION_SAFE_RENEGOTIATION, 1);
}
-#endif /* GNUTLS_LIB_HELLO_EXT_H */
+#endif /* GNUTLS_LIB_HELLO_EXT_H */
diff --git a/lib/hello_ext_lib.c b/lib/hello_ext_lib.c
index 4f9b74d7f2..84023b6a6b 100644
--- a/lib/hello_ext_lib.c
+++ b/lib/hello_ext_lib.c
@@ -39,7 +39,7 @@ void _gnutls_hello_ext_default_deinit(gnutls_ext_priv_data_t priv)
*/
int
_gnutls_hello_ext_set_datum(gnutls_session_t session,
- extensions_t id, const gnutls_datum_t *data)
+ extensions_t id, const gnutls_datum_t * data)
{
gnutls_ext_priv_data_t epriv;
@@ -49,12 +49,12 @@ _gnutls_hello_ext_set_datum(gnutls_session_t session,
if (data->size >= UINT16_MAX)
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- epriv = gnutls_malloc(data->size+2);
+ epriv = gnutls_malloc(data->size + 2);
if (epriv == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
_gnutls_write_uint16(data->size, epriv);
- memcpy(((uint8_t*)epriv)+2, data->data, data->size);
+ memcpy(((uint8_t *) epriv) + 2, data->data, data->size);
_gnutls_hello_ext_set_priv(session, id, epriv);
@@ -63,7 +63,8 @@ _gnutls_hello_ext_set_datum(gnutls_session_t session,
int
_gnutls_hello_ext_get_datum(gnutls_session_t session,
- extensions_t id, gnutls_datum_t *data /* constant contents */)
+ extensions_t id,
+ gnutls_datum_t * data /* constant contents */ )
{
gnutls_ext_priv_data_t epriv;
int ret;
@@ -73,14 +74,16 @@ _gnutls_hello_ext_get_datum(gnutls_session_t session,
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
data->size = _gnutls_read_uint16(epriv);
- data->data = ((uint8_t*)epriv)+2;
+ data->data = ((uint8_t *) epriv) + 2;
return 0;
}
int
_gnutls_hello_ext_get_resumed_datum(gnutls_session_t session,
- extensions_t id, gnutls_datum_t *data /* constant contents */)
+ extensions_t id,
+ gnutls_datum_t *
+ data /* constant contents */ )
{
gnutls_ext_priv_data_t epriv;
int ret;
@@ -90,23 +93,25 @@ _gnutls_hello_ext_get_resumed_datum(gnutls_session_t session,
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
data->size = _gnutls_read_uint16(epriv);
- data->data = ((uint8_t*)epriv)+2;
+ data->data = ((uint8_t *) epriv) + 2;
return 0;
}
int
-_gnutls_hello_ext_default_pack(gnutls_ext_priv_data_t epriv, gnutls_buffer_st *ps)
+_gnutls_hello_ext_default_pack(gnutls_ext_priv_data_t epriv,
+ gnutls_buffer_st * ps)
{
size_t size;
size = _gnutls_read_uint16(epriv);
- return _gnutls_buffer_append_data(ps, epriv, size+2);
+ return _gnutls_buffer_append_data(ps, epriv, size + 2);
}
int
-_gnutls_hello_ext_default_unpack(gnutls_buffer_st *ps, gnutls_ext_priv_data_t *epriv)
+_gnutls_hello_ext_default_unpack(gnutls_buffer_st * ps,
+ gnutls_ext_priv_data_t * epriv)
{
gnutls_datum_t data;
uint8_t *store;
@@ -116,12 +121,12 @@ _gnutls_hello_ext_default_unpack(gnutls_buffer_st *ps, gnutls_ext_priv_data_t *e
if (ret < 0)
return gnutls_assert_val(ret);
- store = gnutls_calloc(1, data.size+2);
+ store = gnutls_calloc(1, data.size + 2);
if (store == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
_gnutls_write_uint16(data.size, store);
- memcpy(store+2, data.data, data.size);
+ memcpy(store + 2, data.data, data.size);
*epriv = store;
return 0;
diff --git a/lib/hello_ext_lib.h b/lib/hello_ext_lib.h
index c1a79ec7e7..c0eb0655ca 100644
--- a/lib/hello_ext_lib.h
+++ b/lib/hello_ext_lib.h
@@ -21,31 +21,32 @@
*/
#ifndef GNUTLS_LIB_HELLO_EXT_LIB_H
-#define GNUTLS_LIB_HELLO_EXT_LIB_H
+# define GNUTLS_LIB_HELLO_EXT_LIB_H
-#include <gnutls/gnutls.h>
-#include "hello_ext.h"
+# include <gnutls/gnutls.h>
+# include "hello_ext.h"
/* Functions to use at the send() or recv() extension function to temporarily
* store and retrieve data related to the extension.
*/
int
_gnutls_hello_ext_set_datum(gnutls_session_t session,
- extensions_t id, const gnutls_datum_t *data);
+ extensions_t id, const gnutls_datum_t * data);
int
_gnutls_hello_ext_get_datum(gnutls_session_t session,
- extensions_t id, gnutls_datum_t *data /* constant contents */);
+ extensions_t id,
+ gnutls_datum_t * data /* constant contents */ );
int
_gnutls_hello_ext_get_resumed_datum(gnutls_session_t session,
- extensions_t id, gnutls_datum_t *data /* constant contents */);
+ extensions_t id,
+ gnutls_datum_t *
+ data /* constant contents */ );
/* clear up any set data for the extension */
-#if 0 /* defined in hello_ext.h */
-void
-_gnutls_hello_ext_unset_priv(gnutls_session_t session,
- extensions_t id);
-#endif
+# if 0 /* defined in hello_ext.h */
+void _gnutls_hello_ext_unset_priv(gnutls_session_t session, extensions_t id);
+# endif
/* Function that will deinitialize the temporal data. Must be set
* as the deinit_func in the hello_ext_entry_st if the functions above
@@ -59,9 +60,11 @@ void _gnutls_hello_ext_default_deinit(gnutls_ext_priv_data_t priv);
* and data must be accessible on resumed sessions.
*/
int
-_gnutls_hello_ext_default_pack(gnutls_ext_priv_data_t epriv, gnutls_buffer_st *ps);
+_gnutls_hello_ext_default_pack(gnutls_ext_priv_data_t epriv,
+ gnutls_buffer_st * ps);
int
-_gnutls_hello_ext_default_unpack(gnutls_buffer_st *ps, gnutls_ext_priv_data_t *epriv);
+_gnutls_hello_ext_default_unpack(gnutls_buffer_st * ps,
+ gnutls_ext_priv_data_t * epriv);
-#endif /* GNUTLS_LIB_HELLO_EXT_LIB_H */
+#endif /* GNUTLS_LIB_HELLO_EXT_LIB_H */
diff --git a/lib/includes/gnutls/abstract.h b/lib/includes/gnutls/abstract.h
index c9f8067c13..4b4a718416 100644
--- a/lib/includes/gnutls/abstract.h
+++ b/lib/includes/gnutls/abstract.h
@@ -22,13 +22,13 @@
*/
#ifndef GNUTLS_ABSTRACT_H
-#define GNUTLS_ABSTRACT_H
+# define GNUTLS_ABSTRACT_H
-#include <gnutls/gnutls.h>
-#include <gnutls/x509.h>
-#include <gnutls/pkcs11.h>
-#include <gnutls/openpgp.h>
-#include <gnutls/tpm.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/x509.h>
+# include <gnutls/pkcs11.h>
+# include <gnutls/openpgp.h>
+# include <gnutls/tpm.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -38,7 +38,7 @@ extern "C" {
/* Public key operations */
-#define GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA
+# define GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA
/**
* gnutls_pubkey_flags:
* @GNUTLS_PUBKEY_DISABLE_CALLBACKS: The following flag disables call to PIN callbacks. Only
@@ -62,24 +62,23 @@ typedef enum gnutls_abstract_export_flags {
GNUTLS_EXPORT_FLAG_NO_LZ = 1
} gnutls_abstract_export_flags_t;
-#define GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA GNUTLS_VERIFY_USE_TLS1_RSA
+# define GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA GNUTLS_VERIFY_USE_TLS1_RSA
-typedef int (*gnutls_privkey_sign_func) (gnutls_privkey_t key,
- void *userdata,
- const gnutls_datum_t *raw_data,
- gnutls_datum_t * signature);
+typedef int (*gnutls_privkey_sign_func)(gnutls_privkey_t key,
+ void *userdata,
+ const gnutls_datum_t * raw_data,
+ gnutls_datum_t * signature);
+typedef int (*gnutls_privkey_decrypt_func)(gnutls_privkey_t key,
+ void *userdata,
+ const gnutls_datum_t * ciphertext,
+ gnutls_datum_t * plaintext);
-typedef int (*gnutls_privkey_decrypt_func) (gnutls_privkey_t key,
+typedef int (*gnutls_privkey_decrypt_func2)(gnutls_privkey_t key,
void *userdata,
- const gnutls_datum_t *ciphertext,
- gnutls_datum_t * plaintext);
-
-typedef int (*gnutls_privkey_decrypt_func2) (gnutls_privkey_t key,
- void *userdata,
- const gnutls_datum_t *ciphertext,
- unsigned char * plaintext,
- size_t plaintext_size);
+ const gnutls_datum_t * ciphertext,
+ unsigned char *plaintext,
+ size_t plaintext_size);
/* to be called to sign pre-hashed data. The input will be
* the output of the hash (such as SHA256) corresponding to
@@ -87,46 +86,46 @@ typedef int (*gnutls_privkey_decrypt_func2) (gnutls_privkey_t key,
* will be provided when RSA PKCS#1 DigestInfo structure is provided
* as data (when this is called from a TLS 1.0 or 1.1 session).
*/
-typedef int (*gnutls_privkey_sign_hash_func) (gnutls_privkey_t key,
- gnutls_sign_algorithm_t algo,
- void *userdata,
- unsigned int flags,
- const gnutls_datum_t *hash,
- gnutls_datum_t * signature);
+typedef int (*gnutls_privkey_sign_hash_func)(gnutls_privkey_t key,
+ gnutls_sign_algorithm_t algo,
+ void *userdata,
+ unsigned int flags,
+ const gnutls_datum_t * hash,
+ gnutls_datum_t * signature);
/* to be called to sign data. The input data will be
* the data to be signed (and hashed), with the provided
* signature algorithm. This function is used for algorithms
* like ed25519 which cannot take pre-hashed data as input.
*/
-typedef int (*gnutls_privkey_sign_data_func) (gnutls_privkey_t key,
- gnutls_sign_algorithm_t algo,
- void *userdata,
- unsigned int flags,
- const gnutls_datum_t *data,
- gnutls_datum_t * signature);
-
-typedef void (*gnutls_privkey_deinit_func) (gnutls_privkey_t key,
- void *userdata);
+typedef int (*gnutls_privkey_sign_data_func)(gnutls_privkey_t key,
+ gnutls_sign_algorithm_t algo,
+ void *userdata,
+ unsigned int flags,
+ const gnutls_datum_t * data,
+ gnutls_datum_t * signature);
+typedef void (*gnutls_privkey_deinit_func)(gnutls_privkey_t key,
+ void *userdata);
-#define GNUTLS_SIGN_ALGO_TO_FLAGS(sig) (unsigned int)((sig)<<20)
-#define GNUTLS_FLAGS_TO_SIGN_ALGO(flags) (unsigned int)((flags)>>20)
+# define GNUTLS_SIGN_ALGO_TO_FLAGS(sig) (unsigned int)((sig)<<20)
+# define GNUTLS_FLAGS_TO_SIGN_ALGO(flags) (unsigned int)((flags)>>20)
/* Should return the public key algorithm (gnutls_pk_algorithm_t) */
-#define GNUTLS_PRIVKEY_INFO_PK_ALGO 1
+# define GNUTLS_PRIVKEY_INFO_PK_ALGO 1
/* Should return the preferred signature algorithm (gnutls_sign_algorithm_t) or 0. */
-#define GNUTLS_PRIVKEY_INFO_SIGN_ALGO (1<<1)
+# define GNUTLS_PRIVKEY_INFO_SIGN_ALGO (1<<1)
/* Should return true (1) or false (0) if the provided sign algorithm
* (obtained with GNUTLS_FLAGS_TO_SIGN_ALGO) is supported.
*/
-#define GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO (1<<2)
+# define GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO (1<<2)
/* Should return the number of bits of the public key algorithm (required for RSA-PSS)
* It is the value that should be returned by gnutls_pubkey_get_pk_algorithm() */
-#define GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS (1<<3)
+# define GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS (1<<3)
/* returns information on the public key associated with userdata */
-typedef int (*gnutls_privkey_info_func) (gnutls_privkey_t key, unsigned int flags, void *userdata);
+typedef int (*gnutls_privkey_info_func)(gnutls_privkey_t key,
+ unsigned int flags, void *userdata);
int gnutls_pubkey_init(gnutls_pubkey_t * key);
void gnutls_pubkey_deinit(gnutls_pubkey_t key);
@@ -134,33 +133,26 @@ void gnutls_pubkey_deinit(gnutls_pubkey_t key);
int gnutls_pubkey_verify_params(gnutls_pubkey_t key);
void gnutls_pubkey_set_pin_function(gnutls_pubkey_t key,
- gnutls_pin_callback_t fn,
- void *userdata);
+ gnutls_pin_callback_t fn, void *userdata);
-int gnutls_pubkey_get_pk_algorithm(gnutls_pubkey_t key,
- unsigned int *bits);
+int gnutls_pubkey_get_pk_algorithm(gnutls_pubkey_t key, unsigned int *bits);
int
gnutls_pubkey_set_spki(gnutls_pubkey_t key,
- const gnutls_x509_spki_t spki,
- unsigned int flags);
+ const gnutls_x509_spki_t spki, unsigned int flags);
int
gnutls_pubkey_get_spki(gnutls_pubkey_t key,
- const gnutls_x509_spki_t spki,
- unsigned int flags);
+ const gnutls_x509_spki_t spki, unsigned int flags);
int gnutls_pubkey_import_x509(gnutls_pubkey_t key,
gnutls_x509_crt_t crt, unsigned int flags);
int gnutls_pubkey_import_x509_crq(gnutls_pubkey_t key,
- gnutls_x509_crq_t crq,
- unsigned int flags);
+ gnutls_x509_crq_t crq, unsigned int flags);
int gnutls_pubkey_import_pkcs11(gnutls_pubkey_t key,
- gnutls_pkcs11_obj_t obj,
- unsigned int flags);
+ gnutls_pkcs11_obj_t obj, unsigned int flags);
int gnutls_pubkey_import_openpgp(gnutls_pubkey_t key,
- gnutls_openpgp_crt_t crt,
- unsigned int flags);
+ gnutls_openpgp_crt_t crt, unsigned int flags);
int gnutls_pubkey_import_openpgp_raw(gnutls_pubkey_t pkey,
const gnutls_datum_t * data,
@@ -197,7 +189,7 @@ int gnutls_pubkey_get_preferred_hash_algorithm(gnutls_pubkey_t key,
gnutls_digest_algorithm_t
* hash, unsigned int *mand);
-#define gnutls_pubkey_get_pk_rsa_raw gnutls_pubkey_export_rsa_raw
+# define gnutls_pubkey_get_pk_rsa_raw gnutls_pubkey_export_rsa_raw
int gnutls_pubkey_export_rsa_raw(gnutls_pubkey_t key,
gnutls_datum_t * m, gnutls_datum_t * e);
@@ -205,22 +197,22 @@ int gnutls_pubkey_export_rsa_raw2(gnutls_pubkey_t key,
gnutls_datum_t * m, gnutls_datum_t * e,
unsigned flags);
-#define gnutls_pubkey_get_pk_dsa_raw gnutls_pubkey_export_dsa_raw
+# define gnutls_pubkey_get_pk_dsa_raw gnutls_pubkey_export_dsa_raw
int gnutls_pubkey_export_dsa_raw(gnutls_pubkey_t key,
gnutls_datum_t * p,
gnutls_datum_t * q,
gnutls_datum_t * g, gnutls_datum_t * y);
int gnutls_pubkey_export_dsa_raw2(gnutls_pubkey_t key,
- gnutls_datum_t * p,
- gnutls_datum_t * q,
- gnutls_datum_t * g, gnutls_datum_t * y,
- unsigned flags);
+ gnutls_datum_t * p,
+ gnutls_datum_t * q,
+ gnutls_datum_t * g, gnutls_datum_t * y,
+ unsigned flags);
int gnutls_pubkey_export_ecc_raw2(gnutls_pubkey_t key,
- gnutls_ecc_curve_t * curve,
- gnutls_datum_t * x, gnutls_datum_t * y,
- unsigned flags);
+ gnutls_ecc_curve_t * curve,
+ gnutls_datum_t * x, gnutls_datum_t * y,
+ unsigned flags);
int gnutls_pubkey_export_gost_raw2(gnutls_pubkey_t key,
gnutls_ecc_curve_t * curve,
@@ -229,34 +221,33 @@ int gnutls_pubkey_export_gost_raw2(gnutls_pubkey_t key,
gnutls_datum_t * x, gnutls_datum_t * y,
unsigned int flags);
-#define gnutls_pubkey_get_pk_ecc_raw gnutls_pubkey_export_ecc_raw
+# define gnutls_pubkey_get_pk_ecc_raw gnutls_pubkey_export_ecc_raw
int gnutls_pubkey_export_ecc_raw(gnutls_pubkey_t key,
gnutls_ecc_curve_t * curve,
gnutls_datum_t * x, gnutls_datum_t * y);
-#define gnutls_pubkey_get_pk_ecc_x962 gnutls_pubkey_export_ecc_x962
+# define gnutls_pubkey_get_pk_ecc_x962 gnutls_pubkey_export_ecc_x962
int gnutls_pubkey_export_ecc_x962(gnutls_pubkey_t key,
gnutls_datum_t * parameters,
gnutls_datum_t * ecpoint);
int gnutls_pubkey_export(gnutls_pubkey_t key,
gnutls_x509_crt_fmt_t format,
- void *output_data, size_t * output_data_size);
+ void *output_data, size_t *output_data_size);
int gnutls_pubkey_export2(gnutls_pubkey_t key,
- gnutls_x509_crt_fmt_t format,
- gnutls_datum_t * out);
+ gnutls_x509_crt_fmt_t format, gnutls_datum_t * out);
int gnutls_pubkey_get_key_id(gnutls_pubkey_t key,
unsigned int flags,
unsigned char *output_data,
- size_t * output_data_size);
+ size_t *output_data_size);
int
gnutls_pubkey_get_openpgp_key_id(gnutls_pubkey_t key,
unsigned int flags,
unsigned char *output_data,
- size_t * output_data_size,
+ size_t *output_data_size,
unsigned int *subkey);
int gnutls_pubkey_get_key_usage(gnutls_pubkey_t key, unsigned int *usage);
@@ -266,8 +257,7 @@ int gnutls_pubkey_import(gnutls_pubkey_t key,
const gnutls_datum_t * data,
gnutls_x509_crt_fmt_t format);
-
-#define gnutls_pubkey_import_pkcs11_url(key, url, flags) gnutls_pubkey_import_url(key, url, flags)
+# define gnutls_pubkey_import_pkcs11_url(key, url, flags) gnutls_pubkey_import_url(key, url, flags)
int gnutls_pubkey_import_dsa_raw(gnutls_pubkey_t key,
const gnutls_datum_t * p,
@@ -291,11 +281,11 @@ gnutls_pubkey_import_ecc_raw(gnutls_pubkey_t key,
int
gnutls_pubkey_import_gost_raw(gnutls_pubkey_t key,
- gnutls_ecc_curve_t curve,
- gnutls_digest_algorithm_t digest,
- gnutls_gost_paramset_t paramset,
- const gnutls_datum_t * x,
- const gnutls_datum_t * y);
+ gnutls_ecc_curve_t curve,
+ gnutls_digest_algorithm_t digest,
+ gnutls_gost_paramset_t paramset,
+ const gnutls_datum_t * x,
+ const gnutls_datum_t * y);
int
gnutls_pubkey_encrypt_data(gnutls_pubkey_t key,
@@ -328,42 +318,42 @@ void gnutls_privkey_deinit(gnutls_privkey_t key);
/* macros to allow specifying a subgroup and group size in gnutls_privkey_generate()
* and gnutls_x509_privkey_generate() */
-#define GNUTLS_SUBGROUP_TO_BITS(group, subgroup) (unsigned int)((subgroup<<16)|(group))
-#define GNUTLS_BITS_TO_SUBGROUP(bits) ((bits >> 16) & 0xFFFF)
-#define GNUTLS_BITS_TO_GROUP(bits) (bits & 0xFFFF)
-#define GNUTLS_BITS_HAVE_SUBGROUP(bits) ((bits) & 0xFFFF0000)
+# define GNUTLS_SUBGROUP_TO_BITS(group, subgroup) (unsigned int)((subgroup<<16)|(group))
+# define GNUTLS_BITS_TO_SUBGROUP(bits) ((bits >> 16) & 0xFFFF)
+# define GNUTLS_BITS_TO_GROUP(bits) (bits & 0xFFFF)
+# define GNUTLS_BITS_HAVE_SUBGROUP(bits) ((bits) & 0xFFFF0000)
int
-gnutls_privkey_generate (gnutls_privkey_t key,
- gnutls_pk_algorithm_t algo, unsigned int bits,
- unsigned int flags);
+gnutls_privkey_generate(gnutls_privkey_t key,
+ gnutls_pk_algorithm_t algo, unsigned int bits,
+ unsigned int flags);
int
gnutls_privkey_generate2(gnutls_privkey_t pkey,
gnutls_pk_algorithm_t algo, unsigned int bits,
- unsigned int flags, const gnutls_keygen_data_st *data, unsigned data_size);
+ unsigned int flags, const gnutls_keygen_data_st * data,
+ unsigned data_size);
int
gnutls_privkey_set_spki(gnutls_privkey_t key,
- const gnutls_x509_spki_t spki,
- unsigned int flags);
+ const gnutls_x509_spki_t spki, unsigned int flags);
int
gnutls_privkey_get_spki(gnutls_privkey_t key,
- const gnutls_x509_spki_t spki,
- unsigned int flags);
+ const gnutls_x509_spki_t spki, unsigned int flags);
-int gnutls_privkey_verify_seed(gnutls_privkey_t key, gnutls_digest_algorithm_t, const void *seed, size_t seed_size);
-int gnutls_privkey_get_seed(gnutls_privkey_t key, gnutls_digest_algorithm_t*, void *seed, size_t *seed_size);
+int gnutls_privkey_verify_seed(gnutls_privkey_t key, gnutls_digest_algorithm_t,
+ const void *seed, size_t seed_size);
+int gnutls_privkey_get_seed(gnutls_privkey_t key, gnutls_digest_algorithm_t *,
+ void *seed, size_t *seed_size);
int gnutls_privkey_verify_params(gnutls_privkey_t key);
void gnutls_privkey_set_flags(gnutls_privkey_t key, unsigned int flags);
-void gnutls_privkey_set_pin_function (gnutls_privkey_t key,
- gnutls_pin_callback_t fn, void *userdata);
+void gnutls_privkey_set_pin_function(gnutls_privkey_t key,
+ gnutls_pin_callback_t fn, void *userdata);
-int gnutls_privkey_get_pk_algorithm(gnutls_privkey_t key,
- unsigned int *bits);
+int gnutls_privkey_get_pk_algorithm(gnutls_privkey_t key, unsigned int *bits);
gnutls_privkey_type_t gnutls_privkey_get_type(gnutls_privkey_t key);
int gnutls_privkey_status(gnutls_privkey_t key);
@@ -411,19 +401,18 @@ int gnutls_privkey_import_pkcs11(gnutls_privkey_t pkey,
gnutls_pkcs11_privkey_t key,
unsigned int flags);
int gnutls_privkey_import_x509(gnutls_privkey_t pkey,
- gnutls_x509_privkey_t key,
- unsigned int flags);
+ gnutls_x509_privkey_t key, unsigned int flags);
int gnutls_privkey_import_openpgp(gnutls_privkey_t pkey,
gnutls_openpgp_privkey_t key,
unsigned int flags);
int gnutls_privkey_export_x509(gnutls_privkey_t pkey,
- gnutls_x509_privkey_t * key);
+ gnutls_x509_privkey_t * key);
int gnutls_privkey_export_openpgp(gnutls_privkey_t pkey,
- gnutls_openpgp_privkey_t * key);
+ gnutls_openpgp_privkey_t * key);
int
gnutls_privkey_export_pkcs11(gnutls_privkey_t pkey,
- gnutls_pkcs11_privkey_t *key);
+ gnutls_pkcs11_privkey_t * key);
int gnutls_privkey_import_openpgp_raw(gnutls_privkey_t pkey,
const gnutls_datum_t * data,
@@ -435,33 +424,30 @@ int gnutls_privkey_import_openpgp_raw(gnutls_privkey_t pkey,
int gnutls_privkey_import_x509_raw(gnutls_privkey_t pkey,
const gnutls_datum_t * data,
gnutls_x509_crt_fmt_t format,
- const char *password,
- unsigned int flags);
+ const char *password, unsigned int flags);
int
gnutls_privkey_import_tpm_raw(gnutls_privkey_t pkey,
const gnutls_datum_t * fdata,
gnutls_tpmkey_fmt_t format,
const char *srk_password,
- const char *key_password,
- unsigned int flags);
+ const char *key_password, unsigned int flags);
int
gnutls_privkey_import_tpm_url(gnutls_privkey_t pkey,
const char *url,
const char *srk_password,
- const char *key_password,
- unsigned int flags);
+ const char *key_password, unsigned int flags);
int gnutls_privkey_import_url(gnutls_privkey_t key,
const char *url, unsigned int flags);
-#if 0
+# if 0
/* for documentation purposes */
int gnutls_privkey_import_pkcs11_url(gnutls_privkey_t key, const char *url);
-#endif
+# endif
-#define gnutls_privkey_import_pkcs11_url(key, url) gnutls_privkey_import_url(key, url, 0)
+# define gnutls_privkey_import_pkcs11_url(key, url) gnutls_privkey_import_url(key, url, 0)
int
gnutls_privkey_import_ext(gnutls_privkey_t pkey,
@@ -483,53 +469,52 @@ gnutls_privkey_import_ext2(gnutls_privkey_t pkey,
int
gnutls_privkey_import_ext3(gnutls_privkey_t pkey,
- void *userdata,
- gnutls_privkey_sign_func sign_func,
- gnutls_privkey_decrypt_func decrypt_func,
- gnutls_privkey_deinit_func deinit_func,
- gnutls_privkey_info_func info_func,
- unsigned int flags);
+ void *userdata,
+ gnutls_privkey_sign_func sign_func,
+ gnutls_privkey_decrypt_func decrypt_func,
+ gnutls_privkey_deinit_func deinit_func,
+ gnutls_privkey_info_func info_func,
+ unsigned int flags);
int
gnutls_privkey_import_ext4(gnutls_privkey_t pkey,
- void *userdata,
- gnutls_privkey_sign_data_func sign_data_func,
- gnutls_privkey_sign_hash_func sign_hash_func,
- gnutls_privkey_decrypt_func decrypt_func,
- gnutls_privkey_deinit_func deinit_func,
- gnutls_privkey_info_func info_func,
- unsigned int flags);
+ void *userdata,
+ gnutls_privkey_sign_data_func sign_data_func,
+ gnutls_privkey_sign_hash_func sign_hash_func,
+ gnutls_privkey_decrypt_func decrypt_func,
+ gnutls_privkey_deinit_func deinit_func,
+ gnutls_privkey_info_func info_func,
+ unsigned int flags);
int gnutls_privkey_import_dsa_raw(gnutls_privkey_t key,
- const gnutls_datum_t * p,
- const gnutls_datum_t * q,
- const gnutls_datum_t * g,
- const gnutls_datum_t * y,
- const gnutls_datum_t * x);
+ const gnutls_datum_t * p,
+ const gnutls_datum_t * q,
+ const gnutls_datum_t * g,
+ const gnutls_datum_t * y,
+ const gnutls_datum_t * x);
int gnutls_privkey_import_rsa_raw(gnutls_privkey_t key,
- const gnutls_datum_t * m,
- const gnutls_datum_t * e,
- const gnutls_datum_t * d,
- const gnutls_datum_t * p,
- const gnutls_datum_t * q,
- const gnutls_datum_t * u,
- const gnutls_datum_t * e1,
- const gnutls_datum_t * e2);
+ const gnutls_datum_t * m,
+ const gnutls_datum_t * e,
+ const gnutls_datum_t * d,
+ const gnutls_datum_t * p,
+ const gnutls_datum_t * q,
+ const gnutls_datum_t * u,
+ const gnutls_datum_t * e1,
+ const gnutls_datum_t * e2);
int gnutls_privkey_import_ecc_raw(gnutls_privkey_t key,
- gnutls_ecc_curve_t curve,
- const gnutls_datum_t * x,
- const gnutls_datum_t * y,
- const gnutls_datum_t * k);
+ gnutls_ecc_curve_t curve,
+ const gnutls_datum_t * x,
+ const gnutls_datum_t * y,
+ const gnutls_datum_t * k);
int gnutls_privkey_import_gost_raw(gnutls_privkey_t key,
- gnutls_ecc_curve_t curve,
- gnutls_digest_algorithm_t digest,
- gnutls_gost_paramset_t paramset,
- const gnutls_datum_t * x,
- const gnutls_datum_t * y,
- const gnutls_datum_t * k);
-
+ gnutls_ecc_curve_t curve,
+ gnutls_digest_algorithm_t digest,
+ gnutls_gost_paramset_t paramset,
+ const gnutls_datum_t * x,
+ const gnutls_datum_t * y,
+ const gnutls_datum_t * k);
int gnutls_privkey_sign_data(gnutls_privkey_t signer,
gnutls_digest_algorithm_t hash,
@@ -543,7 +528,7 @@ int gnutls_privkey_sign_data2(gnutls_privkey_t signer,
const gnutls_datum_t * data,
gnutls_datum_t * signature);
-#define gnutls_privkey_sign_raw_data(key, flags, data, sig) \
+# define gnutls_privkey_sign_raw_data(key, flags, data, sig) \
gnutls_privkey_sign_hash ( key, 0, GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA, data, sig)
int gnutls_privkey_sign_hash(gnutls_privkey_t signer,
@@ -566,62 +551,57 @@ int gnutls_privkey_decrypt_data(gnutls_privkey_t key,
int gnutls_privkey_decrypt_data2(gnutls_privkey_t key,
unsigned int flags,
const gnutls_datum_t * ciphertext,
- unsigned char * plaintext,
- size_t plaintext_size);
+ unsigned char *plaintext,
+ size_t plaintext_size);
int
gnutls_privkey_export_rsa_raw(gnutls_privkey_t key,
- gnutls_datum_t * m, gnutls_datum_t * e,
- gnutls_datum_t * d, gnutls_datum_t * p,
- gnutls_datum_t * q, gnutls_datum_t * u,
- gnutls_datum_t * e1,
- gnutls_datum_t * e2);
+ gnutls_datum_t * m, gnutls_datum_t * e,
+ gnutls_datum_t * d, gnutls_datum_t * p,
+ gnutls_datum_t * q, gnutls_datum_t * u,
+ gnutls_datum_t * e1, gnutls_datum_t * e2);
int
gnutls_privkey_export_rsa_raw2(gnutls_privkey_t key,
- gnutls_datum_t * m, gnutls_datum_t * e,
- gnutls_datum_t * d, gnutls_datum_t * p,
- gnutls_datum_t * q, gnutls_datum_t * u,
- gnutls_datum_t * e1,
- gnutls_datum_t * e2, unsigned flags);
+ gnutls_datum_t * m, gnutls_datum_t * e,
+ gnutls_datum_t * d, gnutls_datum_t * p,
+ gnutls_datum_t * q, gnutls_datum_t * u,
+ gnutls_datum_t * e1,
+ gnutls_datum_t * e2, unsigned flags);
int
gnutls_privkey_export_dsa_raw(gnutls_privkey_t key,
- gnutls_datum_t * p, gnutls_datum_t * q,
- gnutls_datum_t * g, gnutls_datum_t * y,
- gnutls_datum_t * x);
+ gnutls_datum_t * p, gnutls_datum_t * q,
+ gnutls_datum_t * g, gnutls_datum_t * y,
+ gnutls_datum_t * x);
int
gnutls_privkey_export_dsa_raw2(gnutls_privkey_t key,
- gnutls_datum_t * p, gnutls_datum_t * q,
- gnutls_datum_t * g, gnutls_datum_t * y,
- gnutls_datum_t * x, unsigned flags);
+ gnutls_datum_t * p, gnutls_datum_t * q,
+ gnutls_datum_t * g, gnutls_datum_t * y,
+ gnutls_datum_t * x, unsigned flags);
int
gnutls_privkey_export_ecc_raw(gnutls_privkey_t key,
- gnutls_ecc_curve_t * curve,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k);
+ gnutls_ecc_curve_t * curve,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y, gnutls_datum_t * k);
int
gnutls_privkey_export_ecc_raw2(gnutls_privkey_t key,
- gnutls_ecc_curve_t * curve,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k,
- unsigned flags);
+ gnutls_ecc_curve_t * curve,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y,
+ gnutls_datum_t * k, unsigned flags);
int
gnutls_privkey_export_gost_raw2(gnutls_privkey_t key,
- gnutls_ecc_curve_t * curve,
- gnutls_digest_algorithm_t * digest,
- gnutls_gost_paramset_t * paramset,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k,
- unsigned flags);
-
+ gnutls_ecc_curve_t * curve,
+ gnutls_digest_algorithm_t * digest,
+ gnutls_gost_paramset_t * paramset,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y,
+ gnutls_datum_t * k, unsigned flags);
int gnutls_x509_crt_privkey_sign(gnutls_x509_crt_t crt,
gnutls_x509_crt_t issuer,
@@ -655,17 +635,16 @@ typedef struct gnutls_pcert_st {
} gnutls_pcert_st;
/* This flag is unused/ignored */
-#define GNUTLS_PCERT_NO_CERT 1
+# define GNUTLS_PCERT_NO_CERT 1
int gnutls_pcert_import_x509(gnutls_pcert_st * pcert,
gnutls_x509_crt_t crt, unsigned int flags);
int gnutls_pcert_import_x509_list(gnutls_pcert_st * pcert,
- gnutls_x509_crt_t *crt, unsigned *ncrt,
+ gnutls_x509_crt_t * crt, unsigned *ncrt,
unsigned int flags);
-int gnutls_pcert_export_x509(gnutls_pcert_st * pcert,
- gnutls_x509_crt_t * crt);
+int gnutls_pcert_export_x509(gnutls_pcert_st * pcert, gnutls_x509_crt_t * crt);
int
gnutls_pcert_list_import_x509_raw(gnutls_pcert_st * pcerts,
@@ -674,7 +653,7 @@ gnutls_pcert_list_import_x509_raw(gnutls_pcert_st * pcerts,
gnutls_x509_crt_fmt_t format,
unsigned int flags);
-int gnutls_pcert_list_import_x509_file(gnutls_pcert_st *pcert_list,
+int gnutls_pcert_list_import_x509_file(gnutls_pcert_st * pcert_list,
unsigned *pcert_list_size,
const char *file,
gnutls_x509_crt_fmt_t format,
@@ -695,21 +674,20 @@ int gnutls_pcert_import_openpgp_raw(gnutls_pcert_st * pcert,
unsigned int flags);
int gnutls_pcert_import_openpgp(gnutls_pcert_st * pcert,
- gnutls_openpgp_crt_t crt,
- unsigned int flags);
+ gnutls_openpgp_crt_t crt, unsigned int flags);
int gnutls_pcert_export_openpgp(gnutls_pcert_st * pcert,
- gnutls_openpgp_crt_t * crt);
+ gnutls_openpgp_crt_t * crt);
void gnutls_pcert_deinit(gnutls_pcert_st * pcert);
-int gnutls_pcert_import_rawpk(gnutls_pcert_st* pcert,
- gnutls_pubkey_t key, unsigned int flags);
+int gnutls_pcert_import_rawpk(gnutls_pcert_st * pcert,
+ gnutls_pubkey_t key, unsigned int flags);
-int gnutls_pcert_import_rawpk_raw(gnutls_pcert_st* pcert,
- const gnutls_datum_t* rawpubkey,
- gnutls_x509_crt_fmt_t format,
- unsigned int key_usage, unsigned int flags);
+int gnutls_pcert_import_rawpk_raw(gnutls_pcert_st * pcert,
+ const gnutls_datum_t * rawpubkey,
+ gnutls_x509_crt_fmt_t format,
+ unsigned int key_usage, unsigned int flags);
/* For certificate credentials */
/* This is the same as gnutls_certificate_retrieve_function()
@@ -717,21 +695,20 @@ int gnutls_pcert_import_rawpk_raw(gnutls_pcert_st* pcert,
* within the library.
*/
typedef int gnutls_certificate_retrieve_function2(gnutls_session_t,
- const gnutls_datum_t *req_ca_rdn,
- int nreqs,
- const gnutls_pk_algorithm_t *pk_algos,
- int pk_algos_length,
- gnutls_pcert_st**,
- unsigned int *pcert_length,
- gnutls_privkey_t *privkey);
-
+ const gnutls_datum_t *
+ req_ca_rdn, int nreqs,
+ const gnutls_pk_algorithm_t *
+ pk_algos, int pk_algos_length,
+ gnutls_pcert_st **,
+ unsigned int *pcert_length,
+ gnutls_privkey_t * privkey);
void gnutls_certificate_set_retrieve_function2
(gnutls_certificate_credentials_t cred,
- gnutls_certificate_retrieve_function2 *func);
+ gnutls_certificate_retrieve_function2 * func);
struct gnutls_cert_retr_st {
- unsigned version; /* set to 1 */
+ unsigned version; /* set to 1 */
gnutls_certificate_credentials_t cred;
const gnutls_datum_t *req_ca_rdn;
unsigned nreqs;
@@ -744,22 +721,20 @@ struct gnutls_cert_retr_st {
/* When the callback sets this value, gnutls will deinitialize the given
* values after use */
-#define GNUTLS_CERT_RETR_DEINIT_ALL 1
-
-typedef int gnutls_certificate_retrieve_function3(
- gnutls_session_t,
- const struct gnutls_cert_retr_st *info,
- gnutls_pcert_st **certs,
- unsigned int *certs_length,
- gnutls_ocsp_data_st **ocsp,
- unsigned int *ocsp_length,
- gnutls_privkey_t *privkey,
- unsigned int *flags);
+# define GNUTLS_CERT_RETR_DEINIT_ALL 1
+typedef int gnutls_certificate_retrieve_function3(gnutls_session_t, const struct
+ gnutls_cert_retr_st *info,
+ gnutls_pcert_st ** certs,
+ unsigned int *certs_length,
+ gnutls_ocsp_data_st ** ocsp,
+ unsigned int *ocsp_length,
+ gnutls_privkey_t * privkey,
+ unsigned int *flags);
void gnutls_certificate_set_retrieve_function3
(gnutls_certificate_credentials_t cred,
- gnutls_certificate_retrieve_function3 *func);
+ gnutls_certificate_retrieve_function3 * func);
int
gnutls_certificate_set_key(gnutls_certificate_credentials_t res,
@@ -779,4 +754,4 @@ gnutls_pubkey_print(gnutls_pubkey_t pubkey,
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_ABSTRACT_H */
+#endif /* GNUTLS_ABSTRACT_H */
diff --git a/lib/includes/gnutls/compat.h b/lib/includes/gnutls/compat.h
index 2779ca9f3a..1fe33c839a 100644
--- a/lib/includes/gnutls/compat.h
+++ b/lib/includes/gnutls/compat.h
@@ -23,7 +23,7 @@
/* Typedefs for more compatibility with older GnuTLS. */
#ifndef GNUTLS_COMPAT_H
-#define GNUTLS_COMPAT_H
+# define GNUTLS_COMPAT_H
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -31,21 +31,21 @@ extern "C" {
#endif
/* *INDENT-ON* */
-#ifdef __GNUC__
+# ifdef __GNUC__
-#define _GNUTLS_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+# define _GNUTLS_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-#if !defined GNUTLS_INTERNAL_BUILD
-#if _GNUTLS_GCC_VERSION >= 30100
-#define _GNUTLS_GCC_ATTR_DEPRECATED __attribute__ ((__deprecated__))
-#endif
-#endif
+# if !defined GNUTLS_INTERNAL_BUILD
+# if _GNUTLS_GCC_VERSION >= 30100
+# define _GNUTLS_GCC_ATTR_DEPRECATED __attribute__ ((__deprecated__))
+# endif
+# endif
-#endif /* __GNUC__ */
+# endif /* __GNUC__ */
-#ifndef _GNUTLS_GCC_ATTR_DEPRECATED
-#define _GNUTLS_GCC_ATTR_DEPRECATED
-#endif
+# ifndef _GNUTLS_GCC_ATTR_DEPRECATED
+# define _GNUTLS_GCC_ATTR_DEPRECATED
+# endif
/* gnutls_connection_end_t was made redundant in 2.99.0 */
typedef unsigned int gnutls_connection_end_t _GNUTLS_GCC_ATTR_DEPRECATED;
@@ -53,31 +53,25 @@ typedef unsigned int gnutls_connection_end_t _GNUTLS_GCC_ATTR_DEPRECATED;
/* Stuff deprecated in 2.x */
typedef gnutls_cipher_algorithm_t gnutls_cipher_algorithm
_GNUTLS_GCC_ATTR_DEPRECATED;
-typedef gnutls_kx_algorithm_t gnutls_kx_algorithm
- _GNUTLS_GCC_ATTR_DEPRECATED;
-typedef gnutls_mac_algorithm_t gnutls_mac_algorithm
- _GNUTLS_GCC_ATTR_DEPRECATED;
+typedef gnutls_kx_algorithm_t gnutls_kx_algorithm _GNUTLS_GCC_ATTR_DEPRECATED;
+typedef gnutls_mac_algorithm_t gnutls_mac_algorithm _GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_digest_algorithm_t gnutls_digest_algorithm
_GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_compression_method_t gnutls_compression_method
_GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_connection_end_t gnutls_connection_end
_GNUTLS_GCC_ATTR_DEPRECATED;
-typedef gnutls_x509_crt_fmt_t gnutls_x509_crt_fmt
- _GNUTLS_GCC_ATTR_DEPRECATED;
-typedef gnutls_pk_algorithm_t gnutls_pk_algorithm
- _GNUTLS_GCC_ATTR_DEPRECATED;
+typedef gnutls_x509_crt_fmt_t gnutls_x509_crt_fmt _GNUTLS_GCC_ATTR_DEPRECATED;
+typedef gnutls_pk_algorithm_t gnutls_pk_algorithm _GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_sign_algorithm_t gnutls_sign_algorithm
_GNUTLS_GCC_ATTR_DEPRECATED;
-typedef gnutls_close_request_t gnutls_close_request
- _GNUTLS_GCC_ATTR_DEPRECATED;
+typedef gnutls_close_request_t gnutls_close_request _GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_certificate_request_t gnutls_certificate_request
_GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_certificate_status_t gnutls_certificate_status
_GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_session_t gnutls_session _GNUTLS_GCC_ATTR_DEPRECATED;
-typedef gnutls_alert_level_t gnutls_alert_level
- _GNUTLS_GCC_ATTR_DEPRECATED;
+typedef gnutls_alert_level_t gnutls_alert_level _GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_alert_description_t gnutls_alert_description
_GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_x509_subject_alt_name_t gnutls_x509_subject_alt_name
@@ -87,8 +81,7 @@ typedef gnutls_openpgp_privkey_t gnutls_openpgp_privkey
typedef gnutls_openpgp_keyring_t gnutls_openpgp_keyring
_GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_x509_crt_t gnutls_x509_crt _GNUTLS_GCC_ATTR_DEPRECATED;
-typedef gnutls_x509_privkey_t gnutls_x509_privkey
- _GNUTLS_GCC_ATTR_DEPRECATED;
+typedef gnutls_x509_privkey_t gnutls_x509_privkey _GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_x509_crl_t gnutls_x509_crl _GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_x509_crq_t gnutls_x509_crq _GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_certificate_credentials_t
@@ -103,62 +96,59 @@ typedef gnutls_srp_server_credentials_t
gnutls_srp_server_credentials _GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_dh_params_t gnutls_dh_params _GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_rsa_params_t gnutls_rsa_params _GNUTLS_GCC_ATTR_DEPRECATED;
-typedef gnutls_params_type_t gnutls_params_type
- _GNUTLS_GCC_ATTR_DEPRECATED;
+typedef gnutls_params_type_t gnutls_params_type _GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_credentials_type_t gnutls_credentials_type
_GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_certificate_type_t gnutls_certificate_type
_GNUTLS_GCC_ATTR_DEPRECATED;
typedef gnutls_datum_t gnutls_datum _GNUTLS_GCC_ATTR_DEPRECATED;
-typedef gnutls_transport_ptr_t gnutls_transport_ptr
- _GNUTLS_GCC_ATTR_DEPRECATED;
+typedef gnutls_transport_ptr_t gnutls_transport_ptr _GNUTLS_GCC_ATTR_DEPRECATED;
/* Old verification flags */
-#define GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT (0)
+# define GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT (0)
/* Old SRP alerts removed in 2.1.x because the TLS-SRP RFC was
modified to use the PSK alert. */
-#define GNUTLS_A_MISSING_SRP_USERNAME GNUTLS_A_UNKNOWN_PSK_IDENTITY
-#define GNUTLS_A_UNKNOWN_SRP_USERNAME GNUTLS_A_UNKNOWN_PSK_IDENTITY
+# define GNUTLS_A_MISSING_SRP_USERNAME GNUTLS_A_UNKNOWN_PSK_IDENTITY
+# define GNUTLS_A_UNKNOWN_SRP_USERNAME GNUTLS_A_UNKNOWN_PSK_IDENTITY
/* OpenPGP stuff renamed in 2.1.x. */
-#define GNUTLS_OPENPGP_KEY GNUTLS_OPENPGP_CERT
-#define GNUTLS_OPENPGP_KEY_FINGERPRINT GNUTLS_OPENPGP_CERT_FINGERPRINT
-#define gnutls_openpgp_send_key gnutls_openpgp_send_cert
+# define GNUTLS_OPENPGP_KEY GNUTLS_OPENPGP_CERT
+# define GNUTLS_OPENPGP_KEY_FINGERPRINT GNUTLS_OPENPGP_CERT_FINGERPRINT
+# define gnutls_openpgp_send_key gnutls_openpgp_send_cert
typedef gnutls_openpgp_crt_status_t gnutls_openpgp_key_status_t
_GNUTLS_GCC_ATTR_DEPRECATED;
-typedef gnutls_openpgp_crt_t gnutls_openpgp_key_t
- _GNUTLS_GCC_ATTR_DEPRECATED;
-#define gnutls_openpgp_key_init gnutls_openpgp_crt_init
-#define gnutls_openpgp_key_deinit gnutls_openpgp_crt_deinit
-#define gnutls_openpgp_key_import gnutls_openpgp_crt_import
-#define gnutls_openpgp_key_export gnutls_openpgp_crt_export
-#define gnutls_openpgp_key_get_key_usage gnutls_openpgp_crt_get_key_usage
-#define gnutls_openpgp_key_get_fingerprint gnutls_openpgp_crt_get_fingerprint
-#define gnutls_openpgp_key_get_pk_algorithm gnutls_openpgp_crt_get_pk_algorithm
-#define gnutls_openpgp_key_get_name gnutls_openpgp_crt_get_name
-#define gnutls_openpgp_key_get_version gnutls_openpgp_crt_get_version
-#define gnutls_openpgp_key_get_creation_time gnutls_openpgp_crt_get_creation_time
-#define gnutls_openpgp_key_get_expiration_time gnutls_openpgp_crt_get_expiration_time
-#define gnutls_openpgp_key_get_id gnutls_openpgp_crt_get_id
-#define gnutls_openpgp_key_check_hostname gnutls_openpgp_crt_check_hostname
+typedef gnutls_openpgp_crt_t gnutls_openpgp_key_t _GNUTLS_GCC_ATTR_DEPRECATED;
+# define gnutls_openpgp_key_init gnutls_openpgp_crt_init
+# define gnutls_openpgp_key_deinit gnutls_openpgp_crt_deinit
+# define gnutls_openpgp_key_import gnutls_openpgp_crt_import
+# define gnutls_openpgp_key_export gnutls_openpgp_crt_export
+# define gnutls_openpgp_key_get_key_usage gnutls_openpgp_crt_get_key_usage
+# define gnutls_openpgp_key_get_fingerprint gnutls_openpgp_crt_get_fingerprint
+# define gnutls_openpgp_key_get_pk_algorithm gnutls_openpgp_crt_get_pk_algorithm
+# define gnutls_openpgp_key_get_name gnutls_openpgp_crt_get_name
+# define gnutls_openpgp_key_get_version gnutls_openpgp_crt_get_version
+# define gnutls_openpgp_key_get_creation_time gnutls_openpgp_crt_get_creation_time
+# define gnutls_openpgp_key_get_expiration_time gnutls_openpgp_crt_get_expiration_time
+# define gnutls_openpgp_key_get_id gnutls_openpgp_crt_get_id
+# define gnutls_openpgp_key_check_hostname gnutls_openpgp_crt_check_hostname
/* OpenPGP stuff renamed in 2.3.x. */
-#define gnutls_openpgp_crt_get_id gnutls_openpgp_crt_get_key_id
+# define gnutls_openpgp_crt_get_id gnutls_openpgp_crt_get_key_id
/* New better names renamed in 2.3.x, add these for backwards
compatibility with old poor names.*/
-#define GNUTLS_X509_CRT_FULL GNUTLS_CRT_PRINT_FULL
-#define GNUTLS_X509_CRT_ONELINE GNUTLS_CRT_PRINT_ONELINE
-#define GNUTLS_X509_CRT_UNSIGNED_FULL GNUTLS_CRT_PRINT_UNSIGNED_FULL
+# define GNUTLS_X509_CRT_FULL GNUTLS_CRT_PRINT_FULL
+# define GNUTLS_X509_CRT_ONELINE GNUTLS_CRT_PRINT_ONELINE
+# define GNUTLS_X509_CRT_UNSIGNED_FULL GNUTLS_CRT_PRINT_UNSIGNED_FULL
/* Namespace problems. */
-#define LIBGNUTLS_VERSION GNUTLS_VERSION
-#define LIBGNUTLS_VERSION_MAJOR GNUTLS_VERSION_MAJOR
-#define LIBGNUTLS_VERSION_MINOR GNUTLS_VERSION_MINOR
-#define LIBGNUTLS_VERSION_PATCH GNUTLS_VERSION_PATCH
-#define LIBGNUTLS_VERSION_NUMBER GNUTLS_VERSION_NUMBER
-#define LIBGNUTLS_EXTRA_VERSION GNUTLS_VERSION
+# define LIBGNUTLS_VERSION GNUTLS_VERSION
+# define LIBGNUTLS_VERSION_MAJOR GNUTLS_VERSION_MAJOR
+# define LIBGNUTLS_VERSION_MINOR GNUTLS_VERSION_MINOR
+# define LIBGNUTLS_VERSION_PATCH GNUTLS_VERSION_PATCH
+# define LIBGNUTLS_VERSION_NUMBER GNUTLS_VERSION_NUMBER
+# define LIBGNUTLS_EXTRA_VERSION GNUTLS_VERSION
/* This is a very dangerous and error-prone function.
* Use gnutls_privkey_sign_hash() instead.
@@ -183,7 +173,7 @@ int gnutls_x509_crt_get_preferred_hash_algorithm(gnutls_x509_crt_t
/* use gnutls_privkey_sign_hash() with the GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA flag */
-#ifdef _ISOC99_SOURCE
+# ifdef _ISOC99_SOURCE
/* we provide older functions for compatibility as inline functions that
* depend on gnutls_session_get_random. */
@@ -208,34 +198,35 @@ static inline const void
gnutls_session_get_random(session, &rnd, NULL); /*doc-skip */
return rnd.data;
}
-#endif
+# endif
void
gnutls_global_set_mem_functions(gnutls_alloc_function alloc_func,
gnutls_alloc_function secure_alloc_func,
gnutls_is_secure_function is_secure_func,
gnutls_realloc_function realloc_func,
- gnutls_free_function free_func) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_free_function free_func)
+_GNUTLS_GCC_ATTR_DEPRECATED;
/* defined in old headers - unused nevertheless */
-#define GNUTLS_SUPPLEMENTAL_USER_MAPPING_DATA 0
+# define GNUTLS_SUPPLEMENTAL_USER_MAPPING_DATA 0
/* old compression related functions */
gnutls_compression_method_t
gnutls_compression_get(gnutls_session_t session) _GNUTLS_GCC_ATTR_DEPRECATED;
-const char *
-gnutls_compression_get_name(gnutls_compression_method_t
- algorithm) __GNUTLS_CONST__ _GNUTLS_GCC_ATTR_DEPRECATED;
+const char *gnutls_compression_get_name(gnutls_compression_method_t algorithm)
+__GNUTLS_CONST__ _GNUTLS_GCC_ATTR_DEPRECATED;
-gnutls_compression_method_t
- gnutls_compression_get_id(const char *name) __GNUTLS_CONST__ _GNUTLS_GCC_ATTR_DEPRECATED;
+gnutls_compression_method_t gnutls_compression_get_id(const char *name)
+__GNUTLS_CONST__ _GNUTLS_GCC_ATTR_DEPRECATED;
-const gnutls_compression_method_t *
- gnutls_compression_list(void) __GNUTLS_PURE__ _GNUTLS_GCC_ATTR_DEPRECATED;
+const gnutls_compression_method_t *gnutls_compression_list(void)
+__GNUTLS_PURE__ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_priority_compression_list(gnutls_priority_t pcache,
- const unsigned int **list) _GNUTLS_GCC_ATTR_DEPRECATED;
+ const unsigned int **list)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -243,4 +234,4 @@ int gnutls_priority_compression_list(gnutls_priority_t pcache,
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_COMPAT_H */
+#endif /* GNUTLS_COMPAT_H */
diff --git a/lib/includes/gnutls/crypto.h b/lib/includes/gnutls/crypto.h
index 47b4423ecf..a4a30b13c6 100644
--- a/lib/includes/gnutls/crypto.h
+++ b/lib/includes/gnutls/crypto.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_CRYPTO_H
-#define GNUTLS_CRYPTO_H
+# define GNUTLS_CRYPTO_H
-#include <gnutls/gnutls.h>
+# include <gnutls/gnutls.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -35,16 +35,14 @@ typedef struct api_cipher_hd_st *gnutls_cipher_hd_t;
int gnutls_cipher_init(gnutls_cipher_hd_t * handle,
gnutls_cipher_algorithm_t cipher,
- const gnutls_datum_t * key,
- const gnutls_datum_t * iv);
+ const gnutls_datum_t * key, const gnutls_datum_t * iv);
int gnutls_cipher_encrypt(const gnutls_cipher_hd_t handle,
void *text, size_t textlen);
int gnutls_cipher_decrypt(const gnutls_cipher_hd_t handle,
void *ciphertext, size_t ciphertextlen);
int gnutls_cipher_decrypt2(gnutls_cipher_hd_t handle,
const void *ciphertext,
- size_t ciphertextlen, void *text,
- size_t textlen);
+ size_t ciphertextlen, void *text, size_t textlen);
int gnutls_cipher_encrypt2(gnutls_cipher_hd_t handle,
const void *text, size_t textlen,
void *ciphertext, size_t ciphertextlen);
@@ -64,25 +62,24 @@ typedef enum gnutls_cipher_flags_t {
int gnutls_cipher_encrypt3(gnutls_cipher_hd_t handle,
const void *ptext, size_t ptext_len,
- void *ctext, size_t *ctext_len,
- unsigned flags);
+ void *ctext, size_t *ctext_len, unsigned flags);
int gnutls_cipher_decrypt3(gnutls_cipher_hd_t handle,
const void *ctext, size_t ctext_len,
- void *ptext, size_t *ptext_len,
- unsigned flags);
+ void *ptext, size_t *ptext_len, unsigned flags);
-void gnutls_cipher_set_iv(gnutls_cipher_hd_t handle, void *iv,
- size_t ivlen);
+void gnutls_cipher_set_iv(gnutls_cipher_hd_t handle, void *iv, size_t ivlen);
-int gnutls_cipher_tag(gnutls_cipher_hd_t handle, void *tag,
- size_t tag_size);
+int gnutls_cipher_tag(gnutls_cipher_hd_t handle, void *tag, size_t tag_size);
int gnutls_cipher_add_auth(gnutls_cipher_hd_t handle,
const void *text, size_t text_size);
void gnutls_cipher_deinit(gnutls_cipher_hd_t handle);
-unsigned gnutls_cipher_get_block_size(gnutls_cipher_algorithm_t algorithm) __GNUTLS_CONST__;
-unsigned gnutls_cipher_get_iv_size(gnutls_cipher_algorithm_t algorithm) __GNUTLS_CONST__;
-unsigned gnutls_cipher_get_tag_size(gnutls_cipher_algorithm_t algorithm) __GNUTLS_CONST__;
+unsigned gnutls_cipher_get_block_size(gnutls_cipher_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+unsigned gnutls_cipher_get_iv_size(gnutls_cipher_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+unsigned gnutls_cipher_get_tag_size(gnutls_cipher_algorithm_t algorithm)
+ __GNUTLS_CONST__;
/* AEAD API
*/
@@ -93,7 +90,7 @@ int gnutls_aead_cipher_init(gnutls_aead_cipher_hd_t * handle,
const gnutls_datum_t * key);
int gnutls_aead_cipher_set_key(gnutls_aead_cipher_hd_t handle,
- const gnutls_datum_t *key);
+ const gnutls_datum_t * key);
int
gnutls_aead_cipher_decrypt(gnutls_aead_cipher_hd_t handle,
@@ -113,23 +110,23 @@ gnutls_aead_cipher_encrypt(gnutls_aead_cipher_hd_t handle,
int
gnutls_aead_cipher_encryptv(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
size_t tag_size,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * iov, int iovcnt,
void *ctext, size_t *ctext_len);
int
gnutls_aead_cipher_encryptv2(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
+ const giovec_t * iov, int iovcnt,
void *tag, size_t *tag_size);
int
gnutls_aead_cipher_decryptv2(gnutls_aead_cipher_hd_t handle,
const void *nonce, size_t nonce_len,
- const giovec_t *auth_iov, int auth_iovcnt,
- const giovec_t *iov, int iovcnt,
+ const giovec_t * auth_iov, int auth_iovcnt,
+ const giovec_t * iov, int iovcnt,
void *tag, size_t tag_size);
void gnutls_aead_cipher_deinit(gnutls_aead_cipher_hd_t handle);
@@ -139,20 +136,21 @@ void gnutls_aead_cipher_deinit(gnutls_aead_cipher_hd_t handle);
typedef struct hash_hd_st *gnutls_hash_hd_t;
typedef struct hmac_hd_st *gnutls_hmac_hd_t;
-size_t gnutls_mac_get_nonce_size(gnutls_mac_algorithm_t algorithm) __GNUTLS_CONST__;
-int gnutls_hmac_init(gnutls_hmac_hd_t * dig,
- gnutls_mac_algorithm_t algorithm,
+size_t gnutls_mac_get_nonce_size(gnutls_mac_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+int gnutls_hmac_init(gnutls_hmac_hd_t * dig, gnutls_mac_algorithm_t algorithm,
const void *key, size_t keylen);
-void gnutls_hmac_set_nonce(gnutls_hmac_hd_t handle,
- const void *nonce, size_t nonce_len);
+void gnutls_hmac_set_nonce(gnutls_hmac_hd_t handle, const void *nonce,
+ size_t nonce_len);
int gnutls_hmac(gnutls_hmac_hd_t handle, const void *text, size_t textlen);
void gnutls_hmac_output(gnutls_hmac_hd_t handle, void *digest);
void gnutls_hmac_deinit(gnutls_hmac_hd_t handle, void *digest);
unsigned gnutls_hmac_get_len(gnutls_mac_algorithm_t algorithm) __GNUTLS_CONST__;
-unsigned gnutls_hmac_get_key_size(gnutls_mac_algorithm_t algorithm) __GNUTLS_CONST__;
-int gnutls_hmac_fast(gnutls_mac_algorithm_t algorithm,
- const void *key, size_t keylen,
- const void *text, size_t textlen, void *digest);
+unsigned gnutls_hmac_get_key_size(gnutls_mac_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+int gnutls_hmac_fast(gnutls_mac_algorithm_t algorithm, const void *key,
+ size_t keylen, const void *text, size_t textlen,
+ void *digest);
gnutls_hmac_hd_t gnutls_hmac_copy(gnutls_hmac_hd_t handle);
int gnutls_hash_init(gnutls_hash_hd_t * dig,
@@ -160,32 +158,30 @@ int gnutls_hash_init(gnutls_hash_hd_t * dig,
int gnutls_hash(gnutls_hash_hd_t handle, const void *text, size_t textlen);
void gnutls_hash_output(gnutls_hash_hd_t handle, void *digest);
void gnutls_hash_deinit(gnutls_hash_hd_t handle, void *digest);
-unsigned gnutls_hash_get_len(gnutls_digest_algorithm_t algorithm) __GNUTLS_CONST__;
-int gnutls_hash_fast(gnutls_digest_algorithm_t algorithm,
- const void *text, size_t textlen, void *digest);
+unsigned gnutls_hash_get_len(gnutls_digest_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+int gnutls_hash_fast(gnutls_digest_algorithm_t algorithm, const void *text,
+ size_t textlen, void *digest);
gnutls_hash_hd_t gnutls_hash_copy(gnutls_hash_hd_t handle);
/* KDF API */
int gnutls_hkdf_extract(gnutls_mac_algorithm_t mac,
- const gnutls_datum_t *key,
- const gnutls_datum_t *salt,
- void *output);
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * salt, void *output);
int gnutls_hkdf_expand(gnutls_mac_algorithm_t mac,
- const gnutls_datum_t *key,
- const gnutls_datum_t *info,
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * info,
void *output, size_t length);
int gnutls_pbkdf2(gnutls_mac_algorithm_t mac,
- const gnutls_datum_t *key,
- const gnutls_datum_t *salt,
- unsigned iter_count,
- void *output, size_t length);
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * salt,
+ unsigned iter_count, void *output, size_t length);
/* register ciphers */
-
/**
* gnutls_rnd_level_t:
* @GNUTLS_RND_NONCE: Non-predictable random number. Fatal in parts
@@ -207,37 +203,45 @@ int gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len);
void gnutls_rnd_refresh(void);
-
/* API to override ciphers and MAC algorithms
*/
-typedef int (*gnutls_cipher_init_func) (gnutls_cipher_algorithm_t, void **ctx, int enc);
-typedef int (*gnutls_cipher_setkey_func) (void *ctx, const void *key, size_t keysize);
+typedef int (*gnutls_cipher_init_func)(gnutls_cipher_algorithm_t, void **ctx,
+ int enc);
+typedef int (*gnutls_cipher_setkey_func)(void *ctx, const void *key,
+ size_t keysize);
/* old style ciphers */
-typedef int (*gnutls_cipher_setiv_func) (void *ctx, const void *iv, size_t ivsize);
-typedef int (*gnutls_cipher_getiv_func) (void *ctx, void *iv, size_t ivsize);
-typedef int (*gnutls_cipher_encrypt_func) (void *ctx, const void *plain, size_t plainsize,
- void *encr, size_t encrsize);
-typedef int (*gnutls_cipher_decrypt_func) (void *ctx, const void *encr, size_t encrsize,
- void *plain, size_t plainsize);
+typedef int (*gnutls_cipher_setiv_func)(void *ctx, const void *iv,
+ size_t ivsize);
+typedef int (*gnutls_cipher_getiv_func)(void *ctx, void *iv, size_t ivsize);
+typedef int (*gnutls_cipher_encrypt_func)(void *ctx, const void *plain,
+ size_t plainsize, void *encr,
+ size_t encrsize);
+typedef int (*gnutls_cipher_decrypt_func)(void *ctx, const void *encr,
+ size_t encrsize, void *plain,
+ size_t plainsize);
/* aead ciphers */
-typedef int (*gnutls_cipher_auth_func) (void *ctx, const void *data, size_t datasize);
-typedef void (*gnutls_cipher_tag_func) (void *ctx, void *tag, size_t tagsize);
-
-typedef int (*gnutls_cipher_aead_encrypt_func) (void *ctx,
- const void *nonce, size_t noncesize,
- const void *auth, size_t authsize,
- size_t tag_size,
- const void *plain, size_t plainsize,
- void *encr, size_t encrsize);
-typedef int (*gnutls_cipher_aead_decrypt_func) (void *ctx,
- const void *nonce, size_t noncesize,
- const void *auth, size_t authsize,
- size_t tag_size,
- const void *encr, size_t encrsize,
- void *plain, size_t plainsize);
-typedef void (*gnutls_cipher_deinit_func) (void *ctx);
+typedef int (*gnutls_cipher_auth_func)(void *ctx, const void *data,
+ size_t datasize);
+typedef void (*gnutls_cipher_tag_func)(void *ctx, void *tag, size_t tagsize);
+
+typedef int (*gnutls_cipher_aead_encrypt_func)(void *ctx,
+ const void *nonce,
+ size_t noncesize,
+ const void *auth,
+ size_t authsize, size_t tag_size,
+ const void *plain,
+ size_t plainsize, void *encr,
+ size_t encrsize);
+typedef int (*gnutls_cipher_aead_decrypt_func)(void *ctx, const void *nonce,
+ size_t noncesize,
+ const void *auth,
+ size_t authsize, size_t tag_size,
+ const void *encr,
+ size_t encrsize, void *plain,
+ size_t plainsize);
+typedef void (*gnutls_cipher_deinit_func)(void *ctx);
int
gnutls_crypto_register_cipher(gnutls_cipher_algorithm_t algorithm,
@@ -248,28 +252,33 @@ gnutls_crypto_register_cipher(gnutls_cipher_algorithm_t algorithm,
gnutls_cipher_encrypt_func encrypt,
gnutls_cipher_decrypt_func decrypt,
gnutls_cipher_deinit_func deinit)
- _GNUTLS_GCC_ATTR_DEPRECATED;
+_GNUTLS_GCC_ATTR_DEPRECATED;
int
gnutls_crypto_register_aead_cipher(gnutls_cipher_algorithm_t algorithm,
- int priority,
- gnutls_cipher_init_func init,
- gnutls_cipher_setkey_func setkey,
- gnutls_cipher_aead_encrypt_func aead_encrypt,
- gnutls_cipher_aead_decrypt_func aead_decrypt,
- gnutls_cipher_deinit_func deinit)
- _GNUTLS_GCC_ATTR_DEPRECATED;
-
-typedef int (*gnutls_mac_init_func) (gnutls_mac_algorithm_t, void **ctx);
-typedef int (*gnutls_mac_setkey_func) (void *ctx, const void *key, size_t keysize);
-typedef int (*gnutls_mac_setnonce_func) (void *ctx, const void *nonce, size_t noncesize);
-typedef int (*gnutls_mac_hash_func) (void *ctx, const void *text, size_t textsize);
-typedef int (*gnutls_mac_output_func) (void *src_ctx, void *digest, size_t digestsize);
-typedef void (*gnutls_mac_deinit_func) (void *ctx);
-typedef int (*gnutls_mac_fast_func) (gnutls_mac_algorithm_t, const void *nonce,
- size_t nonce_size, const void *key, size_t keysize,
- const void *text, size_t textsize, void *digest);
-typedef void *(*gnutls_mac_copy_func) (const void *ctx);
+ int priority,
+ gnutls_cipher_init_func init,
+ gnutls_cipher_setkey_func setkey,
+ gnutls_cipher_aead_encrypt_func aead_encrypt,
+ gnutls_cipher_aead_decrypt_func aead_decrypt,
+ gnutls_cipher_deinit_func deinit)
+_GNUTLS_GCC_ATTR_DEPRECATED;
+
+typedef int (*gnutls_mac_init_func)(gnutls_mac_algorithm_t, void **ctx);
+typedef int (*gnutls_mac_setkey_func)(void *ctx, const void *key,
+ size_t keysize);
+typedef int (*gnutls_mac_setnonce_func)(void *ctx, const void *nonce,
+ size_t noncesize);
+typedef int (*gnutls_mac_hash_func)(void *ctx, const void *text,
+ size_t textsize);
+typedef int (*gnutls_mac_output_func)(void *src_ctx, void *digest,
+ size_t digestsize);
+typedef void (*gnutls_mac_deinit_func)(void *ctx);
+typedef int (*gnutls_mac_fast_func)(gnutls_mac_algorithm_t, const void *nonce,
+ size_t nonce_size, const void *key,
+ size_t keysize, const void *text,
+ size_t textsize, void *digest);
+typedef void *(*gnutls_mac_copy_func)(const void *ctx);
int
gnutls_crypto_register_mac(gnutls_mac_algorithm_t mac,
@@ -281,25 +290,28 @@ gnutls_crypto_register_mac(gnutls_mac_algorithm_t mac,
gnutls_mac_output_func output,
gnutls_mac_deinit_func deinit,
gnutls_mac_fast_func hash_fast)
- _GNUTLS_GCC_ATTR_DEPRECATED;
-
-typedef int (*gnutls_digest_init_func) (gnutls_digest_algorithm_t, void **ctx);
-typedef int (*gnutls_digest_hash_func) (void *ctx, const void *text, size_t textsize);
-typedef int (*gnutls_digest_output_func) (void *src_ctx, void *digest, size_t digestsize);
-typedef void (*gnutls_digest_deinit_func) (void *ctx);
-typedef int (*gnutls_digest_fast_func) (gnutls_digest_algorithm_t,
- const void *text, size_t textsize, void *digest);
-typedef void *(*gnutls_digest_copy_func) (const void *ctx);
+_GNUTLS_GCC_ATTR_DEPRECATED;
+
+typedef int (*gnutls_digest_init_func)(gnutls_digest_algorithm_t, void **ctx);
+typedef int (*gnutls_digest_hash_func)(void *ctx, const void *text,
+ size_t textsize);
+typedef int (*gnutls_digest_output_func)(void *src_ctx, void *digest,
+ size_t digestsize);
+typedef void (*gnutls_digest_deinit_func)(void *ctx);
+typedef int (*gnutls_digest_fast_func)(gnutls_digest_algorithm_t,
+ const void *text, size_t textsize,
+ void *digest);
+typedef void *(*gnutls_digest_copy_func)(const void *ctx);
int
gnutls_crypto_register_digest(gnutls_digest_algorithm_t digest,
- int priority,
- gnutls_digest_init_func init,
- gnutls_digest_hash_func hash,
- gnutls_digest_output_func output,
- gnutls_digest_deinit_func deinit,
- gnutls_digest_fast_func hash_fast)
- _GNUTLS_GCC_ATTR_DEPRECATED;
+ int priority,
+ gnutls_digest_init_func init,
+ gnutls_digest_hash_func hash,
+ gnutls_digest_output_func output,
+ gnutls_digest_deinit_func deinit,
+ gnutls_digest_fast_func hash_fast)
+_GNUTLS_GCC_ATTR_DEPRECATED;
/* RSA-PKCS#1 1.5 helper functions */
int
@@ -309,14 +321,19 @@ gnutls_encode_ber_digest_info(gnutls_digest_algorithm_t hash,
int
gnutls_decode_ber_digest_info(const gnutls_datum_t * info,
- gnutls_digest_algorithm_t *hash,
+ gnutls_digest_algorithm_t * hash,
unsigned char *digest, unsigned int *digest_size);
-int gnutls_decode_rs_value(const gnutls_datum_t * sig_value, gnutls_datum_t *r, gnutls_datum_t *s);
-int gnutls_encode_rs_value(gnutls_datum_t * sig_value, const gnutls_datum_t * r, const gnutls_datum_t * s);
+int gnutls_decode_rs_value(const gnutls_datum_t * sig_value, gnutls_datum_t * r,
+ gnutls_datum_t * s);
+int gnutls_encode_rs_value(gnutls_datum_t * sig_value, const gnutls_datum_t * r,
+ const gnutls_datum_t * s);
-int gnutls_encode_gost_rs_value(gnutls_datum_t * sig_value, const gnutls_datum_t * r, const gnutls_datum_t *s);
-int gnutls_decode_gost_rs_value(const gnutls_datum_t * sig_value, gnutls_datum_t * r, gnutls_datum_t * s);
+int gnutls_encode_gost_rs_value(gnutls_datum_t * sig_value,
+ const gnutls_datum_t * r,
+ const gnutls_datum_t * s);
+int gnutls_decode_gost_rs_value(const gnutls_datum_t * sig_value,
+ gnutls_datum_t * r, gnutls_datum_t * s);
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -324,4 +341,4 @@ int gnutls_decode_gost_rs_value(const gnutls_datum_t * sig_value, gnutls_datum_t
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_CRYPTO_H */
+#endif /* GNUTLS_CRYPTO_H */
diff --git a/lib/includes/gnutls/dtls.h b/lib/includes/gnutls/dtls.h
index 972ec0a34c..225637e502 100644
--- a/lib/includes/gnutls/dtls.h
+++ b/lib/includes/gnutls/dtls.h
@@ -25,9 +25,9 @@
*/
#ifndef GNUTLS_DTLS_H
-#define GNUTLS_DTLS_H
+# define GNUTLS_DTLS_H
-#include <gnutls/gnutls.h>
+# include <gnutls/gnutls.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -35,7 +35,7 @@ extern "C" {
#endif
/* *INDENT-ON* */
-#define GNUTLS_COOKIE_KEY_SIZE 16
+# define GNUTLS_COOKIE_KEY_SIZE 16
void gnutls_dtls_set_timeouts(gnutls_session_t session,
unsigned int retrans_timeout,
@@ -90,4 +90,4 @@ unsigned int gnutls_record_get_discarded(gnutls_session_t session);
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_DTLS_H */
+#endif /* GNUTLS_DTLS_H */
diff --git a/lib/includes/gnutls/gnutls.h.in b/lib/includes/gnutls/gnutls.h.in
index ac3301dc58..c3ff442cb7 100644
--- a/lib/includes/gnutls/gnutls.h.in
+++ b/lib/includes/gnutls/gnutls.h.in
@@ -34,16 +34,16 @@
*/
#ifndef GNUTLS_GNUTLS_H
-#define GNUTLS_GNUTLS_H
+# define GNUTLS_GNUTLS_H
/* Get ssize_t. */
-#include <sys/types.h>
+# include <sys/types.h>
/* Get size_t. */
-#include <stddef.h>
+# include <stddef.h>
/* Get time_t. */
-#include <time.h>
+# include <time.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -51,37 +51,36 @@ extern "C" {
#endif
/* *INDENT-ON* */
-#define GNUTLS_VERSION "@VERSION@"
+# define GNUTLS_VERSION "@VERSION@"
-#define GNUTLS_VERSION_MAJOR @MAJOR_VERSION@
-#define GNUTLS_VERSION_MINOR @MINOR_VERSION@
-#define GNUTLS_VERSION_PATCH @PATCH_VERSION@
+# define GNUTLS_VERSION_MAJOR @MAJOR_VERSION@
+# define GNUTLS_VERSION_MINOR @MINOR_VERSION@
+# define GNUTLS_VERSION_PATCH @PATCH_VERSION@
-#define GNUTLS_VERSION_NUMBER @NUMBER_VERSION@
+# define GNUTLS_VERSION_NUMBER @NUMBER_VERSION@
-#define GNUTLS_CIPHER_RIJNDAEL_128_CBC GNUTLS_CIPHER_AES_128_CBC
-#define GNUTLS_CIPHER_RIJNDAEL_256_CBC GNUTLS_CIPHER_AES_256_CBC
-#define GNUTLS_CIPHER_RIJNDAEL_CBC GNUTLS_CIPHER_AES_128_CBC
-#define GNUTLS_CIPHER_ARCFOUR GNUTLS_CIPHER_ARCFOUR_128
+# define GNUTLS_CIPHER_RIJNDAEL_128_CBC GNUTLS_CIPHER_AES_128_CBC
+# define GNUTLS_CIPHER_RIJNDAEL_256_CBC GNUTLS_CIPHER_AES_256_CBC
+# define GNUTLS_CIPHER_RIJNDAEL_CBC GNUTLS_CIPHER_AES_128_CBC
+# define GNUTLS_CIPHER_ARCFOUR GNUTLS_CIPHER_ARCFOUR_128
-#if !defined(GNUTLS_INTERNAL_BUILD) && defined(_WIN32)
-# define _SYM_EXPORT __declspec(dllimport)
-#else
-# define _SYM_EXPORT
-#endif
-
-#ifdef __GNUC__
-# define __GNUTLS_CONST__ __attribute__((const))
-# define __GNUTLS_PURE__ __attribute__((pure))
-#else
-# define __GNUTLS_CONST__
-# define __GNUTLS_PURE__
-#endif
+# if !defined(GNUTLS_INTERNAL_BUILD) && defined(_WIN32)
+# define _SYM_EXPORT __declspec(dllimport)
+# else
+# define _SYM_EXPORT
+# endif
+# ifdef __GNUC__
+# define __GNUTLS_CONST__ __attribute__((const))
+# define __GNUTLS_PURE__ __attribute__((pure))
+# else
+# define __GNUTLS_CONST__
+# define __GNUTLS_PURE__
+# endif
/* Use the following definition globally in your program to disable
* implicit initialization of gnutls. */
-#define GNUTLS_SKIP_GLOBAL_INIT int _gnutls_global_init_skip(void); \
+# define GNUTLS_SKIP_GLOBAL_INIT int _gnutls_global_init_skip(void); \
int _gnutls_global_init_skip(void) {return 1;}
/**
@@ -279,8 +278,8 @@ typedef enum {
GNUTLS_CRD_IA
} gnutls_credentials_type_t;
-#define GNUTLS_MAC_SHA GNUTLS_MAC_SHA1
-#define GNUTLS_DIG_SHA GNUTLS_DIG_SHA1
+# define GNUTLS_MAC_SHA GNUTLS_MAC_SHA1
+# define GNUTLS_DIG_SHA GNUTLS_DIG_SHA1
/**
* gnutls_mac_algorithm_t:
@@ -330,11 +329,11 @@ typedef enum {
GNUTLS_MAC_SHA384 = 7,
GNUTLS_MAC_SHA512 = 8,
GNUTLS_MAC_SHA224 = 9,
- GNUTLS_MAC_SHA3_224 = 10, /* reserved: no implementation */
- GNUTLS_MAC_SHA3_256 = 11, /* reserved: no implementation */
- GNUTLS_MAC_SHA3_384 = 12, /* reserved: no implementation */
- GNUTLS_MAC_SHA3_512 = 13, /* reserved: no implementation */
- GNUTLS_MAC_MD5_SHA1 = 14, /* reserved: no implementation */
+ GNUTLS_MAC_SHA3_224 = 10, /* reserved: no implementation */
+ GNUTLS_MAC_SHA3_256 = 11, /* reserved: no implementation */
+ GNUTLS_MAC_SHA3_384 = 12, /* reserved: no implementation */
+ GNUTLS_MAC_SHA3_512 = 13, /* reserved: no implementation */
+ GNUTLS_MAC_MD5_SHA1 = 14, /* reserved: no implementation */
GNUTLS_MAC_GOSTR_94 = 15,
GNUTLS_MAC_STREEBOG_256 = 16,
GNUTLS_MAC_STREEBOG_512 = 17,
@@ -408,9 +407,8 @@ typedef enum {
/* exported for other gnutls headers. This is the maximum number of
* algorithms (ciphers, kx or macs).
*/
-#define GNUTLS_MAX_ALGORITHM_NUM 128
-#define GNUTLS_MAX_SESSION_ID_SIZE 32
-
+# define GNUTLS_MAX_ALGORITHM_NUM 128
+# define GNUTLS_MAX_SESSION_ID_SIZE 32
/**
* gnutls_compression_method_t:
@@ -432,7 +430,6 @@ typedef enum {
GNUTLS_COMP_ZSTD = 4
} gnutls_compression_method_t;
-
/**
* gnutls_init_flags_t:
*
@@ -499,46 +496,46 @@ typedef enum {
*/
typedef enum {
GNUTLS_SERVER = 1,
- GNUTLS_CLIENT = (1<<1),
- GNUTLS_DATAGRAM = (1<<2),
- GNUTLS_NONBLOCK = (1<<3),
- GNUTLS_NO_EXTENSIONS = (1<<4),
- GNUTLS_NO_REPLAY_PROTECTION = (1<<5),
- GNUTLS_NO_SIGNAL = (1<<6),
- GNUTLS_ALLOW_ID_CHANGE = (1<<7),
- GNUTLS_ENABLE_FALSE_START = (1<<8),
- GNUTLS_FORCE_CLIENT_CERT = (1<<9),
- GNUTLS_NO_TICKETS = (1<<10),
- GNUTLS_KEY_SHARE_TOP = (1<<11),
- GNUTLS_KEY_SHARE_TOP2 = (1<<12),
- GNUTLS_KEY_SHARE_TOP3 = (1<<13),
- GNUTLS_POST_HANDSHAKE_AUTH = (1<<14),
- GNUTLS_NO_AUTO_REKEY = (1<<15),
- GNUTLS_SAFE_PADDING_CHECK = (1<<16),
- GNUTLS_ENABLE_EARLY_START = (1<<17),
- GNUTLS_ENABLE_RAWPK = (1<<18),
- GNUTLS_AUTO_REAUTH = (1<<19),
- GNUTLS_ENABLE_EARLY_DATA = (1<<20),
- GNUTLS_NO_AUTO_SEND_TICKET = (1<<21),
- GNUTLS_NO_END_OF_EARLY_DATA = (1<<22),
- GNUTLS_NO_TICKETS_TLS12 = (1<<23),
- GNUTLS_NO_STATUS_REQUEST = (1<<24)
+ GNUTLS_CLIENT = (1 << 1),
+ GNUTLS_DATAGRAM = (1 << 2),
+ GNUTLS_NONBLOCK = (1 << 3),
+ GNUTLS_NO_EXTENSIONS = (1 << 4),
+ GNUTLS_NO_REPLAY_PROTECTION = (1 << 5),
+ GNUTLS_NO_SIGNAL = (1 << 6),
+ GNUTLS_ALLOW_ID_CHANGE = (1 << 7),
+ GNUTLS_ENABLE_FALSE_START = (1 << 8),
+ GNUTLS_FORCE_CLIENT_CERT = (1 << 9),
+ GNUTLS_NO_TICKETS = (1 << 10),
+ GNUTLS_KEY_SHARE_TOP = (1 << 11),
+ GNUTLS_KEY_SHARE_TOP2 = (1 << 12),
+ GNUTLS_KEY_SHARE_TOP3 = (1 << 13),
+ GNUTLS_POST_HANDSHAKE_AUTH = (1 << 14),
+ GNUTLS_NO_AUTO_REKEY = (1 << 15),
+ GNUTLS_SAFE_PADDING_CHECK = (1 << 16),
+ GNUTLS_ENABLE_EARLY_START = (1 << 17),
+ GNUTLS_ENABLE_RAWPK = (1 << 18),
+ GNUTLS_AUTO_REAUTH = (1 << 19),
+ GNUTLS_ENABLE_EARLY_DATA = (1 << 20),
+ GNUTLS_NO_AUTO_SEND_TICKET = (1 << 21),
+ GNUTLS_NO_END_OF_EARLY_DATA = (1 << 22),
+ GNUTLS_NO_TICKETS_TLS12 = (1 << 23),
+ GNUTLS_NO_STATUS_REQUEST = (1 << 24)
} gnutls_init_flags_t;
/* compatibility defines (previous versions of gnutls
* used defines instead of enumerated values). */
-#define GNUTLS_SERVER (1)
-#define GNUTLS_CLIENT (1<<1)
-#define GNUTLS_DATAGRAM (1<<2)
-#define GNUTLS_NONBLOCK (1<<3)
-#define GNUTLS_NO_EXTENSIONS (1<<4)
-#define GNUTLS_NO_REPLAY_PROTECTION (1<<5)
-#define GNUTLS_NO_SIGNAL (1<<6)
-#define GNUTLS_ALLOW_ID_CHANGE (1<<7)
-#define GNUTLS_ENABLE_FALSE_START (1<<8)
-#define GNUTLS_FORCE_CLIENT_CERT (1<<9)
-#define GNUTLS_NO_TICKETS (1<<10)
-#define GNUTLS_ENABLE_CERT_TYPE_NEG 0
+# define GNUTLS_SERVER (1)
+# define GNUTLS_CLIENT (1<<1)
+# define GNUTLS_DATAGRAM (1<<2)
+# define GNUTLS_NONBLOCK (1<<3)
+# define GNUTLS_NO_EXTENSIONS (1<<4)
+# define GNUTLS_NO_REPLAY_PROTECTION (1<<5)
+# define GNUTLS_NO_SIGNAL (1<<6)
+# define GNUTLS_ALLOW_ID_CHANGE (1<<7)
+# define GNUTLS_ENABLE_FALSE_START (1<<8)
+# define GNUTLS_FORCE_CLIENT_CERT (1<<9)
+# define GNUTLS_NO_TICKETS (1<<10)
+# define GNUTLS_ENABLE_CERT_TYPE_NEG 0
// Here for compatibility reasons
/**
@@ -681,11 +678,10 @@ typedef enum {
GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST = 1025,
} gnutls_handshake_description_t;
-#define GNUTLS_HANDSHAKE_ANY ((unsigned int)-1)
+# define GNUTLS_HANDSHAKE_ANY ((unsigned int)-1)
const char
- *gnutls_handshake_description_get_name(gnutls_handshake_description_t
- type);
+*gnutls_handshake_description_get_name(gnutls_handshake_description_t type);
/**
* gnutls_certificate_status_t:
@@ -812,7 +808,7 @@ typedef enum {
GNUTLS_VERSION_UNKNOWN = 0xff /* change it to 0xffff */
} gnutls_protocol_t;
-#define GNUTLS_CRT_RAW GNUTLS_CRT_RAWPK
+# define GNUTLS_CRT_RAW GNUTLS_CRT_RAWPK
/**
* gnutls_certificate_type_t:
@@ -861,10 +857,10 @@ typedef enum gnutls_certificate_print_formats {
GNUTLS_CRT_PRINT_FULL_NUMBERS = 4
} gnutls_certificate_print_formats_t;
-#define GNUTLS_PK_ECC GNUTLS_PK_ECDSA
-#define GNUTLS_PK_EC GNUTLS_PK_ECDSA
+# define GNUTLS_PK_ECC GNUTLS_PK_ECDSA
+# define GNUTLS_PK_EC GNUTLS_PK_ECDSA
-#define GNUTLS_PK_ECDHX GNUTLS_PK_ECDH_X25519
+# define GNUTLS_PK_ECDHX GNUTLS_PK_ECDH_X25519
/**
* gnutls_pk_algorithm_t:
* @GNUTLS_PK_UNKNOWN: Unknown public-key algorithm.
@@ -900,7 +896,6 @@ typedef enum {
GNUTLS_PK_MAX = GNUTLS_PK_EDDSA_ED448
} gnutls_pk_algorithm_t;
-
const char *gnutls_pk_algorithm_get_name(gnutls_pk_algorithm_t algorithm);
/**
@@ -1130,9 +1125,9 @@ typedef enum {
/* macros to allow specifying a specific curve in gnutls_privkey_generate()
* and gnutls_x509_privkey_generate() */
-#define GNUTLS_CURVE_TO_BITS(curve) (unsigned int)(((unsigned int)1<<31)|((unsigned int)(curve)))
-#define GNUTLS_BITS_TO_CURVE(bits) (((unsigned int)(bits)) & 0x7FFFFFFF)
-#define GNUTLS_BITS_ARE_CURVE(bits) (((unsigned int)(bits)) & 0x80000000)
+# define GNUTLS_CURVE_TO_BITS(curve) (unsigned int)(((unsigned int)1<<31)|((unsigned int)(curve)))
+# define GNUTLS_BITS_TO_CURVE(bits) (((unsigned int)(bits)) & 0x7FFFFFFF)
+# define GNUTLS_BITS_ARE_CURVE(bits) (((unsigned int)(bits)) & 0x80000000)
/**
* gnutls_sec_param_t:
@@ -1166,7 +1161,7 @@ typedef enum {
} gnutls_sec_param_t;
/* old name */
-#define GNUTLS_SEC_PARAM_NORMAL GNUTLS_SEC_PARAM_MEDIUM
+# define GNUTLS_SEC_PARAM_NORMAL GNUTLS_SEC_PARAM_MEDIUM
/**
* gnutls_channel_binding_t:
@@ -1248,7 +1243,6 @@ typedef struct gnutls_library_config_st {
const char *value;
} gnutls_library_config_st;
-
typedef struct gnutls_params_st {
gnutls_params_type_t type;
union params {
@@ -1265,7 +1259,7 @@ typedef int gnutls_params_function(gnutls_session_t, gnutls_params_type_t,
int gnutls_init(gnutls_session_t * session, unsigned int flags);
void gnutls_deinit(gnutls_session_t session);
-#define _gnutls_deinit(x) gnutls_deinit(x)
+# define _gnutls_deinit(x) gnutls_deinit(x)
int gnutls_bye(gnutls_session_t session, gnutls_close_request_t how);
@@ -1273,13 +1267,12 @@ int gnutls_handshake(gnutls_session_t session);
int gnutls_reauth(gnutls_session_t session, unsigned int flags);
-#define GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT ((unsigned int)-1)
-#define GNUTLS_INDEFINITE_TIMEOUT ((unsigned int)-2)
-void gnutls_handshake_set_timeout(gnutls_session_t session,
- unsigned int ms);
+# define GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT ((unsigned int)-1)
+# define GNUTLS_INDEFINITE_TIMEOUT ((unsigned int)-2)
+void gnutls_handshake_set_timeout(gnutls_session_t session, unsigned int ms);
int gnutls_rehandshake(gnutls_session_t session);
-#define GNUTLS_KU_PEER 1
+# define GNUTLS_KU_PEER 1
int gnutls_session_key_update(gnutls_session_t session, unsigned flags);
gnutls_alert_description_t gnutls_alert_get(gnutls_session_t session);
@@ -1296,19 +1289,16 @@ const char *gnutls_sec_param_get_name(gnutls_sec_param_t param);
unsigned int gnutls_sec_param_to_pk_bits(gnutls_pk_algorithm_t algo,
gnutls_sec_param_t param);
unsigned int
- gnutls_sec_param_to_symmetric_bits(gnutls_sec_param_t param) __GNUTLS_CONST__;
+gnutls_sec_param_to_symmetric_bits(gnutls_sec_param_t param) __GNUTLS_CONST__;
/* Elliptic curves */
-const char *
- gnutls_ecc_curve_get_name(gnutls_ecc_curve_t curve) __GNUTLS_CONST__;
-const char *
- gnutls_ecc_curve_get_oid(gnutls_ecc_curve_t curve) __GNUTLS_CONST__;
+const char *gnutls_ecc_curve_get_name(gnutls_ecc_curve_t curve)
+ __GNUTLS_CONST__;
+const char *gnutls_ecc_curve_get_oid(gnutls_ecc_curve_t curve) __GNUTLS_CONST__;
-const char *
- gnutls_group_get_name(gnutls_group_t group) __GNUTLS_CONST__;
+const char *gnutls_group_get_name(gnutls_group_t group) __GNUTLS_CONST__;
-int
- gnutls_ecc_curve_get_size(gnutls_ecc_curve_t curve) __GNUTLS_CONST__;
+int gnutls_ecc_curve_get_size(gnutls_ecc_curve_t curve) __GNUTLS_CONST__;
gnutls_ecc_curve_t gnutls_ecc_curve_get(gnutls_session_t session);
gnutls_group_t gnutls_group_get(gnutls_session_t session);
@@ -1321,8 +1311,7 @@ gnutls_mac_algorithm_t gnutls_mac_get(gnutls_session_t session);
gnutls_digest_algorithm_t gnutls_prf_hash_get(const gnutls_session_t session);
gnutls_digest_algorithm_t
gnutls_early_prf_hash_get(const gnutls_session_t session);
-gnutls_certificate_type_t
-gnutls_certificate_type_get(gnutls_session_t session);
+gnutls_certificate_type_t gnutls_certificate_type_get(gnutls_session_t session);
gnutls_certificate_type_t
gnutls_certificate_type_get2(gnutls_session_t session,
gnutls_ctype_target_t target);
@@ -1335,124 +1324,110 @@ int gnutls_sign_algorithm_get_requested(gnutls_session_t session,
gnutls_sign_algorithm_t * algo);
/* the name of the specified algorithms */
-const char *
- gnutls_cipher_get_name(gnutls_cipher_algorithm_t algorithm) __GNUTLS_CONST__;
-const char *
- gnutls_mac_get_name(gnutls_mac_algorithm_t algorithm) __GNUTLS_CONST__;
-
-const char *
- gnutls_digest_get_name(gnutls_digest_algorithm_t algorithm) __GNUTLS_CONST__;
-const char *
- gnutls_digest_get_oid(gnutls_digest_algorithm_t algorithm) __GNUTLS_CONST__;
-
-const char *
- gnutls_kx_get_name(gnutls_kx_algorithm_t algorithm) __GNUTLS_CONST__;
-const char *
- gnutls_certificate_type_get_name(gnutls_certificate_type_t
- type) __GNUTLS_CONST__;
-const char *
- gnutls_pk_get_name(gnutls_pk_algorithm_t algorithm) __GNUTLS_CONST__;
-const char *
- gnutls_pk_get_oid(gnutls_pk_algorithm_t algorithm) __GNUTLS_CONST__;
-
-const char *
- gnutls_sign_get_name(gnutls_sign_algorithm_t algorithm) __GNUTLS_CONST__;
+const char *gnutls_cipher_get_name(gnutls_cipher_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+const char *gnutls_mac_get_name(gnutls_mac_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+
+const char *gnutls_digest_get_name(gnutls_digest_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+const char *gnutls_digest_get_oid(gnutls_digest_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+
+const char *gnutls_kx_get_name(gnutls_kx_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+const char *gnutls_certificate_type_get_name(gnutls_certificate_type_t type)
+ __GNUTLS_CONST__;
+const char *gnutls_pk_get_name(gnutls_pk_algorithm_t algorithm)
+ __GNUTLS_CONST__;
+const char *gnutls_pk_get_oid(gnutls_pk_algorithm_t algorithm) __GNUTLS_CONST__;
+
+const char *gnutls_sign_get_name(gnutls_sign_algorithm_t algorithm)
+ __GNUTLS_CONST__;
const char *gnutls_sign_get_oid(gnutls_sign_algorithm_t sign) __GNUTLS_CONST__;
-const char *
- gnutls_gost_paramset_get_name(gnutls_gost_paramset_t param) __GNUTLS_CONST__;
-const char *
- gnutls_gost_paramset_get_oid(gnutls_gost_paramset_t param) __GNUTLS_CONST__;
+const char *gnutls_gost_paramset_get_name(gnutls_gost_paramset_t param)
+ __GNUTLS_CONST__;
+const char *gnutls_gost_paramset_get_oid(gnutls_gost_paramset_t param)
+ __GNUTLS_CONST__;
size_t
- gnutls_cipher_get_key_size(gnutls_cipher_algorithm_t algorithm) __GNUTLS_CONST__;
-size_t
- gnutls_mac_get_key_size(gnutls_mac_algorithm_t algorithm) __GNUTLS_CONST__;
+gnutls_cipher_get_key_size(gnutls_cipher_algorithm_t algorithm)
+__GNUTLS_CONST__;
+size_t gnutls_mac_get_key_size(gnutls_mac_algorithm_t algorithm)
+ __GNUTLS_CONST__;
-unsigned gnutls_sign_is_secure(gnutls_sign_algorithm_t algorithm) __GNUTLS_CONST__;
+unsigned gnutls_sign_is_secure(gnutls_sign_algorithm_t algorithm)
+ __GNUTLS_CONST__;
/* It is possible that a signature algorithm is ok to use for short-lived
* data (e.g., to sign a TLS session), but not for data that are long-lived
* like certificates. This flag is about checking the security of the algorithm
* for long-lived data. */
-#define GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS 1
-unsigned gnutls_sign_is_secure2(gnutls_sign_algorithm_t algorithm, unsigned int flags) __GNUTLS_CONST__;
+# define GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS 1
+unsigned gnutls_sign_is_secure2(gnutls_sign_algorithm_t algorithm,
+ unsigned int flags) __GNUTLS_CONST__;
gnutls_digest_algorithm_t
- gnutls_sign_get_hash_algorithm(gnutls_sign_algorithm_t sign) __GNUTLS_CONST__;
+gnutls_sign_get_hash_algorithm(gnutls_sign_algorithm_t sign) __GNUTLS_CONST__;
gnutls_pk_algorithm_t
- gnutls_sign_get_pk_algorithm(gnutls_sign_algorithm_t sign) __GNUTLS_CONST__;
+gnutls_sign_get_pk_algorithm(gnutls_sign_algorithm_t sign) __GNUTLS_CONST__;
gnutls_sign_algorithm_t
- gnutls_pk_to_sign(gnutls_pk_algorithm_t pk,
+gnutls_pk_to_sign(gnutls_pk_algorithm_t pk,
gnutls_digest_algorithm_t hash) __GNUTLS_CONST__;
unsigned
-gnutls_sign_supports_pk_algorithm(gnutls_sign_algorithm_t sign, gnutls_pk_algorithm_t pk) __GNUTLS_CONST__;
+gnutls_sign_supports_pk_algorithm(gnutls_sign_algorithm_t sign,
+ gnutls_pk_algorithm_t pk) __GNUTLS_CONST__;
-#define gnutls_sign_algorithm_get_name gnutls_sign_get_name
+# define gnutls_sign_algorithm_get_name gnutls_sign_get_name
gnutls_mac_algorithm_t gnutls_mac_get_id(const char *name) __GNUTLS_CONST__;
-gnutls_digest_algorithm_t gnutls_digest_get_id(const char *name) __GNUTLS_CONST__;
+gnutls_digest_algorithm_t gnutls_digest_get_id(const char *name)
+ __GNUTLS_CONST__;
gnutls_cipher_algorithm_t
- gnutls_cipher_get_id(const char *name) __GNUTLS_CONST__;
+gnutls_cipher_get_id(const char *name) __GNUTLS_CONST__;
-gnutls_kx_algorithm_t
- gnutls_kx_get_id(const char *name) __GNUTLS_CONST__;
-gnutls_protocol_t
- gnutls_protocol_get_id(const char *name) __GNUTLS_CONST__;
+gnutls_kx_algorithm_t gnutls_kx_get_id(const char *name) __GNUTLS_CONST__;
+gnutls_protocol_t gnutls_protocol_get_id(const char *name) __GNUTLS_CONST__;
gnutls_certificate_type_t
- gnutls_certificate_type_get_id(const char *name) __GNUTLS_CONST__;
-gnutls_pk_algorithm_t
- gnutls_pk_get_id(const char *name) __GNUTLS_CONST__;
-gnutls_sign_algorithm_t
- gnutls_sign_get_id(const char *name) __GNUTLS_CONST__;
-gnutls_ecc_curve_t gnutls_ecc_curve_get_id(const char *name) __GNUTLS_CONST__;
-gnutls_pk_algorithm_t gnutls_ecc_curve_get_pk(gnutls_ecc_curve_t curve) __GNUTLS_CONST__;
+gnutls_certificate_type_get_id(const char *name) __GNUTLS_CONST__;
+gnutls_pk_algorithm_t gnutls_pk_get_id(const char *name) __GNUTLS_CONST__;
+gnutls_sign_algorithm_t gnutls_sign_get_id(const char *name) __GNUTLS_CONST__;
+gnutls_ecc_curve_t gnutls_ecc_curve_get_id(const char *name) __GNUTLS_CONST__;
+gnutls_pk_algorithm_t gnutls_ecc_curve_get_pk(gnutls_ecc_curve_t curve)
+ __GNUTLS_CONST__;
gnutls_group_t gnutls_group_get_id(const char *name);
gnutls_digest_algorithm_t
- gnutls_oid_to_digest(const char *oid) __GNUTLS_CONST__;
-gnutls_mac_algorithm_t
- gnutls_oid_to_mac(const char *oid) __GNUTLS_CONST__;
-gnutls_pk_algorithm_t
- gnutls_oid_to_pk(const char *oid) __GNUTLS_CONST__;
-gnutls_sign_algorithm_t
- gnutls_oid_to_sign(const char *oid) __GNUTLS_CONST__;
-gnutls_ecc_curve_t
- gnutls_oid_to_ecc_curve(const char *oid) __GNUTLS_CONST__;
+gnutls_oid_to_digest(const char *oid) __GNUTLS_CONST__;
+gnutls_mac_algorithm_t gnutls_oid_to_mac(const char *oid) __GNUTLS_CONST__;
+gnutls_pk_algorithm_t gnutls_oid_to_pk(const char *oid) __GNUTLS_CONST__;
+gnutls_sign_algorithm_t gnutls_oid_to_sign(const char *oid) __GNUTLS_CONST__;
+gnutls_ecc_curve_t gnutls_oid_to_ecc_curve(const char *oid) __GNUTLS_CONST__;
gnutls_gost_paramset_t
- gnutls_oid_to_gost_paramset(const char *oid) __GNUTLS_CONST__;
+gnutls_oid_to_gost_paramset(const char *oid) __GNUTLS_CONST__;
/* list supported algorithms */
-const gnutls_ecc_curve_t *
- gnutls_ecc_curve_list(void) __GNUTLS_PURE__;
-const gnutls_group_t *
- gnutls_group_list(void) __GNUTLS_PURE__;
-const gnutls_cipher_algorithm_t *
- gnutls_cipher_list(void) __GNUTLS_PURE__;
-const gnutls_mac_algorithm_t *
- gnutls_mac_list(void) __GNUTLS_PURE__;
-const gnutls_digest_algorithm_t *
- gnutls_digest_list(void) __GNUTLS_PURE__;
-const gnutls_protocol_t *
- gnutls_protocol_list(void) __GNUTLS_PURE__;
-const gnutls_certificate_type_t *
- gnutls_certificate_type_list(void) __GNUTLS_PURE__;
-const gnutls_kx_algorithm_t *
- gnutls_kx_list(void) __GNUTLS_PURE__;
-const gnutls_pk_algorithm_t *
- gnutls_pk_list(void) __GNUTLS_PURE__;
-const gnutls_sign_algorithm_t *
- gnutls_sign_list(void) __GNUTLS_PURE__;
-const char *
- gnutls_cipher_suite_info(size_t idx,
- unsigned char *cs_id,
- gnutls_kx_algorithm_t * kx,
- gnutls_cipher_algorithm_t * cipher,
- gnutls_mac_algorithm_t * mac,
- gnutls_protocol_t * min_version);
+const gnutls_ecc_curve_t *gnutls_ecc_curve_list(void) __GNUTLS_PURE__;
+const gnutls_group_t *gnutls_group_list(void) __GNUTLS_PURE__;
+const gnutls_cipher_algorithm_t *gnutls_cipher_list(void) __GNUTLS_PURE__;
+const gnutls_mac_algorithm_t *gnutls_mac_list(void) __GNUTLS_PURE__;
+const gnutls_digest_algorithm_t *gnutls_digest_list(void) __GNUTLS_PURE__;
+const gnutls_protocol_t *gnutls_protocol_list(void) __GNUTLS_PURE__;
+const gnutls_certificate_type_t *gnutls_certificate_type_list(void)
+ __GNUTLS_PURE__;
+const gnutls_kx_algorithm_t *gnutls_kx_list(void) __GNUTLS_PURE__;
+const gnutls_pk_algorithm_t *gnutls_pk_list(void) __GNUTLS_PURE__;
+const gnutls_sign_algorithm_t *gnutls_sign_list(void) __GNUTLS_PURE__;
+const char *gnutls_cipher_suite_info(size_t idx,
+ unsigned char *cs_id,
+ gnutls_kx_algorithm_t * kx,
+ gnutls_cipher_algorithm_t * cipher,
+ gnutls_mac_algorithm_t * mac,
+ gnutls_protocol_t * min_version);
/* functions for run-time enablement of algorithms */
int gnutls_ecc_curve_set_enabled(gnutls_ecc_curve_t curve,
@@ -1470,8 +1445,8 @@ int gnutls_error_is_fatal(int error) __GNUTLS_CONST__;
int gnutls_error_to_alert(int err, int *level);
void gnutls_perror(int error);
-const char * gnutls_strerror(int error) __GNUTLS_CONST__;
-const char * gnutls_strerror_name(int error) __GNUTLS_CONST__;
+const char *gnutls_strerror(int error) __GNUTLS_CONST__;
+const char *gnutls_strerror_name(int error) __GNUTLS_CONST__;
/* Semi-internal functions.
*/
@@ -1487,7 +1462,7 @@ gnutls_handshake_get_last_in(gnutls_session_t session);
/* Record layer functions.
*/
-#define GNUTLS_HEARTBEAT_WAIT 1
+# define GNUTLS_HEARTBEAT_WAIT 1
int gnutls_heartbeat_ping(gnutls_session_t session, size_t data_size,
unsigned int max_tries, unsigned int flags);
int gnutls_heartbeat_pong(gnutls_session_t session, unsigned int flags);
@@ -1496,22 +1471,21 @@ void gnutls_record_set_timeout(gnutls_session_t session, unsigned int ms);
void gnutls_record_disable_padding(gnutls_session_t session);
void gnutls_record_cork(gnutls_session_t session);
-#define GNUTLS_RECORD_WAIT 1
+# define GNUTLS_RECORD_WAIT 1
int gnutls_record_uncork(gnutls_session_t session, unsigned int flags);
size_t gnutls_record_discard_queued(gnutls_session_t session);
int
gnutls_record_get_state(gnutls_session_t session,
unsigned read,
- gnutls_datum_t *mac_key,
- gnutls_datum_t *IV,
- gnutls_datum_t *cipher_key,
+ gnutls_datum_t * mac_key,
+ gnutls_datum_t * IV,
+ gnutls_datum_t * cipher_key,
unsigned char seq_number[8]);
int
gnutls_record_set_state(gnutls_session_t session,
- unsigned read,
- const unsigned char seq_number[8]);
+ unsigned read, const unsigned char seq_number[8]);
typedef struct {
size_t low;
@@ -1531,35 +1505,35 @@ ssize_t gnutls_record_send_range(gnutls_session_t session,
const void *data, size_t data_size,
const gnutls_range_st * range);
ssize_t gnutls_record_send_file(gnutls_session_t session, int fd,
- off_t *offset, size_t count);
+ off_t * offset, size_t count);
ssize_t gnutls_record_recv(gnutls_session_t session, void *data,
size_t data_size);
typedef struct mbuffer_st *gnutls_packet_t;
ssize_t
-gnutls_record_recv_packet(gnutls_session_t session,
- gnutls_packet_t *packet);
+gnutls_record_recv_packet(gnutls_session_t session, gnutls_packet_t * packet);
-void gnutls_packet_get(gnutls_packet_t packet, gnutls_datum_t *data, unsigned char *sequence);
+void gnutls_packet_get(gnutls_packet_t packet, gnutls_datum_t * data,
+ unsigned char *sequence);
void gnutls_packet_deinit(gnutls_packet_t packet);
-#define gnutls_read gnutls_record_recv
-#define gnutls_write gnutls_record_send
+# define gnutls_read gnutls_record_recv
+# define gnutls_write gnutls_record_send
ssize_t gnutls_record_recv_seq(gnutls_session_t session, void *data,
size_t data_size, unsigned char *seq);
size_t gnutls_record_overhead_size(gnutls_session_t session);
size_t
- gnutls_est_record_overhead_size(gnutls_protocol_t version,
- gnutls_cipher_algorithm_t cipher,
- gnutls_mac_algorithm_t mac,
- gnutls_compression_method_t comp,
- unsigned int flags) __GNUTLS_CONST__;
+gnutls_est_record_overhead_size(gnutls_protocol_t version,
+ gnutls_cipher_algorithm_t cipher,
+ gnutls_mac_algorithm_t mac,
+ gnutls_compression_method_t comp,
+ unsigned int flags) __GNUTLS_CONST__;
void gnutls_session_enable_compatibility_mode(gnutls_session_t session);
-#define gnutls_record_set_max_empty_records(session, x)
+# define gnutls_record_set_max_empty_records(session, x)
unsigned gnutls_record_can_use_length_hiding(gnutls_session_t session);
@@ -1573,12 +1547,11 @@ size_t gnutls_record_check_pending(gnutls_session_t session);
size_t gnutls_record_check_corked(gnutls_session_t session);
size_t gnutls_record_get_max_early_data_size(gnutls_session_t session);
-int gnutls_record_set_max_early_data_size(gnutls_session_t session, size_t size);
+int gnutls_record_set_max_early_data_size(gnutls_session_t session,
+ size_t size);
ssize_t gnutls_record_send_early_data(gnutls_session_t session,
- const void *data,
- size_t length);
-ssize_t gnutls_record_recv_early_data(gnutls_session_t session,
- void *data,
+ const void *data, size_t length);
+ssize_t gnutls_record_recv_early_data(gnutls_session_t session, void *data,
size_t data_size);
void gnutls_session_force_valid(gnutls_session_t session);
@@ -1586,12 +1559,11 @@ void gnutls_session_force_valid(gnutls_session_t session);
int gnutls_prf(gnutls_session_t session,
size_t label_size, const char *label,
int server_random_first,
- size_t extra_size, const char *extra,
- size_t outsize, char *out);
+ size_t extra_size, const char *extra, size_t outsize, char *out);
int gnutls_prf_rfc5705(gnutls_session_t session,
- size_t label_size, const char *label,
- size_t context_size, const char *context,
- size_t outsize, char *out);
+ size_t label_size, const char *label,
+ size_t context_size, const char *context,
+ size_t outsize, char *out);
int gnutls_prf_early(gnutls_session_t session,
size_t label_size, const char *label,
size_t context_size, const char *context,
@@ -1617,7 +1589,7 @@ int gnutls_server_name_set(gnutls_session_t session,
const void *name, size_t name_length);
int gnutls_server_name_get(gnutls_session_t session,
- void *data, size_t * data_length,
+ void *data, size_t *data_length,
unsigned int *type, unsigned int indx);
unsigned int gnutls_heartbeat_get_timeout(gnutls_session_t session);
@@ -1625,13 +1597,13 @@ void gnutls_heartbeat_set_timeouts(gnutls_session_t session,
unsigned int retrans_timeout,
unsigned int total_timeout);
-#define GNUTLS_HB_PEER_ALLOWED_TO_SEND (1)
-#define GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND (1<<1)
+# define GNUTLS_HB_PEER_ALLOWED_TO_SEND (1)
+# define GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND (1<<1)
/* Heartbeat */
void gnutls_heartbeat_enable(gnutls_session_t session, unsigned int type);
-#define GNUTLS_HB_LOCAL_ALLOWED_TO_SEND (1<<2)
+# define GNUTLS_HB_LOCAL_ALLOWED_TO_SEND (1<<2)
unsigned gnutls_heartbeat_allowed(gnutls_session_t session, unsigned int type);
/* Safe renegotiation */
@@ -1659,18 +1631,18 @@ unsigned gnutls_session_etm_status(gnutls_session_t session);
*/
typedef enum {
GNUTLS_SFLAGS_SAFE_RENEGOTIATION = 1,
- GNUTLS_SFLAGS_EXT_MASTER_SECRET = 1<<1,
- GNUTLS_SFLAGS_ETM = 1<<2,
- GNUTLS_SFLAGS_HB_LOCAL_SEND = 1<<3,
- GNUTLS_SFLAGS_HB_PEER_SEND = 1<<4,
- GNUTLS_SFLAGS_FALSE_START = 1<<5,
- GNUTLS_SFLAGS_RFC7919 = 1<<6,
- GNUTLS_SFLAGS_SESSION_TICKET = 1<<7,
- GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH = 1<<8,
- GNUTLS_SFLAGS_EARLY_START = 1<<9,
- GNUTLS_SFLAGS_EARLY_DATA = 1<<10,
- GNUTLS_SFLAGS_CLI_REQUESTED_OCSP = 1<<11,
- GNUTLS_SFLAGS_SERV_REQUESTED_OCSP = 1<<12
+ GNUTLS_SFLAGS_EXT_MASTER_SECRET = 1 << 1,
+ GNUTLS_SFLAGS_ETM = 1 << 2,
+ GNUTLS_SFLAGS_HB_LOCAL_SEND = 1 << 3,
+ GNUTLS_SFLAGS_HB_PEER_SEND = 1 << 4,
+ GNUTLS_SFLAGS_FALSE_START = 1 << 5,
+ GNUTLS_SFLAGS_RFC7919 = 1 << 6,
+ GNUTLS_SFLAGS_SESSION_TICKET = 1 << 7,
+ GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH = 1 << 8,
+ GNUTLS_SFLAGS_EARLY_START = 1 << 9,
+ GNUTLS_SFLAGS_EARLY_DATA = 1 << 10,
+ GNUTLS_SFLAGS_CLI_REQUESTED_OCSP = 1 << 11,
+ GNUTLS_SFLAGS_SERV_REQUESTED_OCSP = 1 << 12
} gnutls_session_flags_t;
unsigned gnutls_session_get_flags(gnutls_session_t session);
@@ -1694,7 +1666,8 @@ int gnutls_session_ticket_enable_client(gnutls_session_t session);
int gnutls_session_ticket_enable_server(gnutls_session_t session,
const gnutls_datum_t * key);
-int gnutls_session_ticket_send(gnutls_session_t session, unsigned nr, unsigned flags);
+int gnutls_session_ticket_send(gnutls_session_t session, unsigned nr,
+ unsigned flags);
/* SRTP, RFC 5764 */
@@ -1721,8 +1694,7 @@ typedef enum {
int gnutls_srtp_set_profile(gnutls_session_t session,
gnutls_srtp_profile_t profile);
int gnutls_srtp_set_profile_direct(gnutls_session_t session,
- const char *profiles,
- const char **err_pos);
+ const char *profiles, const char **err_pos);
int gnutls_srtp_get_selected_profile(gnutls_session_t session,
gnutls_srtp_profile_t * profile);
@@ -1737,16 +1709,15 @@ int gnutls_srtp_get_keys(gnutls_session_t session,
gnutls_datum_t * server_key,
gnutls_datum_t * server_salt);
-int gnutls_srtp_set_mki(gnutls_session_t session,
- const gnutls_datum_t * mki);
+int gnutls_srtp_set_mki(gnutls_session_t session, const gnutls_datum_t * mki);
int gnutls_srtp_get_mki(gnutls_session_t session, gnutls_datum_t * mki);
/* COMPRESS_CERTIFICATE extension, RFC8879 */
gnutls_compression_method_t
gnutls_compress_certificate_get_selected_method(gnutls_session_t session);
int gnutls_compress_certificate_set_methods(gnutls_session_t session,
- const gnutls_compression_method_t * methods,
- size_t methods_len);
+ const gnutls_compression_method_t *
+ methods, size_t methods_len);
/* ALPN TLS extension */
@@ -1761,10 +1732,10 @@ int gnutls_compress_certificate_set_methods(gnutls_session_t session,
*/
typedef enum {
GNUTLS_ALPN_MANDATORY = 1,
- GNUTLS_ALPN_SERVER_PRECEDENCE = (1<<1)
+ GNUTLS_ALPN_SERVER_PRECEDENCE = (1 << 1)
} gnutls_alpn_flags_t;
-#define GNUTLS_ALPN_MAND GNUTLS_ALPN_MANDATORY
+# define GNUTLS_ALPN_MAND GNUTLS_ALPN_MANDATORY
int gnutls_alpn_get_selected_protocol(gnutls_session_t session,
gnutls_datum_t * protocol);
int gnutls_alpn_set_protocols(gnutls_session_t session,
@@ -1773,8 +1744,7 @@ int gnutls_alpn_set_protocols(gnutls_session_t session,
int gnutls_key_generate(gnutls_datum_t * key, unsigned int key_size);
-
-#define GNUTLS_PRIORITY_INIT_DEF_APPEND 1
+# define GNUTLS_PRIORITY_INIT_DEF_APPEND 1
int gnutls_priority_init(gnutls_priority_t * priority_cache,
const char *priorities, const char **err_pos);
int gnutls_priority_init2(gnutls_priority_t * priority_cache,
@@ -1785,23 +1755,20 @@ int gnutls_priority_get_cipher_suite_index(gnutls_priority_t pcache,
unsigned int idx,
unsigned int *sidx);
-#define GNUTLS_PRIORITY_LIST_INIT_KEYWORDS 1
-#define GNUTLS_PRIORITY_LIST_SPECIAL 2
-const char *
-gnutls_priority_string_list(unsigned iter, unsigned int flags);
+# define GNUTLS_PRIORITY_LIST_INIT_KEYWORDS 1
+# define GNUTLS_PRIORITY_LIST_SPECIAL 2
+const char *gnutls_priority_string_list(unsigned iter, unsigned int flags);
-int gnutls_priority_set(gnutls_session_t session,
- gnutls_priority_t priority);
+int gnutls_priority_set(gnutls_session_t session, gnutls_priority_t priority);
int gnutls_priority_set_direct(gnutls_session_t session,
- const char *priorities,
- const char **err_pos);
+ const char *priorities, const char **err_pos);
int gnutls_priority_certificate_type_list(gnutls_priority_t pcache,
const unsigned int **list);
int gnutls_priority_certificate_type_list2(gnutls_priority_t pcache,
- const unsigned int **list,
- gnutls_ctype_target_t target);
+ const unsigned int **list,
+ gnutls_ctype_target_t target);
int gnutls_priority_sign_list(gnutls_priority_t pcache,
const unsigned int **list);
int gnutls_priority_protocol_list(gnutls_priority_t pcache,
@@ -1809,8 +1776,7 @@ int gnutls_priority_protocol_list(gnutls_priority_t pcache,
int gnutls_priority_ecc_curve_list(gnutls_priority_t pcache,
const unsigned int **list);
int
-gnutls_priority_group_list(gnutls_priority_t pcache,
- const unsigned int **list);
+gnutls_priority_group_list(gnutls_priority_t pcache, const unsigned int **list);
int gnutls_priority_kx_list(gnutls_priority_t pcache,
const unsigned int **list);
@@ -1824,45 +1790,43 @@ const char *gnutls_get_system_config_file(void);
int gnutls_set_default_priority(gnutls_session_t session);
int gnutls_set_default_priority_append(gnutls_session_t session,
const char *add_prio,
- const char **err_pos,
- unsigned flags);
+ const char **err_pos, unsigned flags);
/* Returns the name of a cipher suite */
-const char *
- gnutls_cipher_suite_get_name(gnutls_kx_algorithm_t kx_algorithm,
- gnutls_cipher_algorithm_t cipher_algorithm,
- gnutls_mac_algorithm_t mac_algorithm) __GNUTLS_CONST__;
+const char *gnutls_cipher_suite_get_name(gnutls_kx_algorithm_t kx_algorithm,
+ gnutls_cipher_algorithm_t
+ cipher_algorithm,
+ gnutls_mac_algorithm_t mac_algorithm)
+ __GNUTLS_CONST__;
-const char *
-gnutls_ciphersuite_get(gnutls_session_t session) __GNUTLS_CONST__;
+const char *gnutls_ciphersuite_get(gnutls_session_t session) __GNUTLS_CONST__;
/* get the currently used protocol version */
gnutls_protocol_t gnutls_protocol_get_version(gnutls_session_t session);
-const char *
- gnutls_protocol_get_name(gnutls_protocol_t version) __GNUTLS_CONST__;
-
+const char *gnutls_protocol_get_name(gnutls_protocol_t version)
+ __GNUTLS_CONST__;
/* get/set session
*/
int gnutls_session_set_data(gnutls_session_t session,
- const void *session_data,
- size_t session_data_size);
+ const void *session_data, size_t session_data_size);
int gnutls_session_get_data(gnutls_session_t session, void *session_data,
- size_t * session_data_size);
-int gnutls_session_get_data2(gnutls_session_t session,
- gnutls_datum_t * data);
+ size_t *session_data_size);
+int gnutls_session_get_data2(gnutls_session_t session, gnutls_datum_t * data);
void gnutls_session_get_random(gnutls_session_t session,
gnutls_datum_t * client,
gnutls_datum_t * server);
void gnutls_session_get_master_secret(gnutls_session_t session,
- gnutls_datum_t * secret);
+ gnutls_datum_t * secret);
char *gnutls_session_get_desc(gnutls_session_t session);
typedef int gnutls_certificate_verify_function(gnutls_session_t);
-void gnutls_session_set_verify_function(gnutls_session_t session, gnutls_certificate_verify_function * func);
+void gnutls_session_set_verify_function(gnutls_session_t session,
+ gnutls_certificate_verify_function *
+ func);
/**
* gnutls_vdata_types_t:
@@ -1901,7 +1865,7 @@ typedef struct {
} gnutls_typed_vdata_st;
void gnutls_session_set_verify_cert(gnutls_session_t session,
- const char *hostname, unsigned flags);
+ const char *hostname, unsigned flags);
void
gnutls_session_set_verify_cert2(gnutls_session_t session,
@@ -1921,14 +1885,13 @@ int gnutls_session_set_premaster(gnutls_session_t session,
const gnutls_datum_t * session_id);
/* returns the session ID */
-#define GNUTLS_MAX_SESSION_ID 32
+# define GNUTLS_MAX_SESSION_ID 32
int gnutls_session_get_id(gnutls_session_t session, void *session_id,
- size_t * session_id_size);
+ size_t *session_id_size);
int gnutls_session_get_id2(gnutls_session_t session,
gnutls_datum_t * session_id);
-int gnutls_session_set_id(gnutls_session_t session,
- const gnutls_datum_t * sid);
+int gnutls_session_set_id(gnutls_session_t session, const gnutls_datum_t * sid);
int gnutls_session_channel_binding(gnutls_session_t session,
gnutls_channel_binding_t cbtype,
@@ -1939,9 +1902,9 @@ int gnutls_session_channel_binding(gnutls_session_t session,
int gnutls_session_is_resumed(gnutls_session_t session);
int gnutls_session_resumption_requested(gnutls_session_t session);
-typedef int (*gnutls_db_store_func) (void *, gnutls_datum_t key,
- gnutls_datum_t data);
-typedef int (*gnutls_db_remove_func) (void *, gnutls_datum_t key);
+typedef int (*gnutls_db_store_func)(void *, gnutls_datum_t key,
+ gnutls_datum_t data);
+typedef int (*gnutls_db_remove_func)(void *, gnutls_datum_t key);
typedef gnutls_datum_t(*gnutls_db_retr_func) (void *, gnutls_datum_t key);
void gnutls_db_set_cache_expiration(gnutls_session_t session, int seconds);
@@ -1974,38 +1937,39 @@ time_t gnutls_db_check_entry_expire_time(gnutls_datum_t * entry);
*
* Returns: Non zero on error.
*/
-#define GNUTLS_HOOK_POST (1)
-#define GNUTLS_HOOK_PRE (0)
-#define GNUTLS_HOOK_BOTH (-1)
-
-typedef int (*gnutls_handshake_hook_func) (gnutls_session_t,
- unsigned int htype,
- unsigned when,
- unsigned int incoming,
- const gnutls_datum_t *msg);
+# define GNUTLS_HOOK_POST (1)
+# define GNUTLS_HOOK_PRE (0)
+# define GNUTLS_HOOK_BOTH (-1)
+
+typedef int (*gnutls_handshake_hook_func)(gnutls_session_t,
+ unsigned int htype,
+ unsigned when,
+ unsigned int incoming,
+ const gnutls_datum_t * msg);
void gnutls_handshake_set_hook_function(gnutls_session_t session,
unsigned int htype, int when,
gnutls_handshake_hook_func func);
-#define gnutls_handshake_post_client_hello_func gnutls_handshake_simple_hook_func
-typedef int (*gnutls_handshake_simple_hook_func) (gnutls_session_t);
+# define gnutls_handshake_post_client_hello_func gnutls_handshake_simple_hook_func
+typedef int (*gnutls_handshake_simple_hook_func)(gnutls_session_t);
void
gnutls_handshake_set_post_client_hello_function(gnutls_session_t session,
- gnutls_handshake_simple_hook_func func);
+ gnutls_handshake_simple_hook_func
+ func);
void gnutls_handshake_set_max_packet_length(gnutls_session_t session,
size_t max);
/* returns libgnutls version (call it with a NULL argument)
*/
-const char * gnutls_check_version(const char *req_version) __GNUTLS_CONST__;
+const char *gnutls_check_version(const char *req_version) __GNUTLS_CONST__;
/* A macro which will allow optimizing out calls to gnutls_check_version()
* when the version being compiled with is sufficient.
* Used as:
* if (gnutls_check_version_numerc(3,3,16)) {
*/
-#define gnutls_check_version_numeric(a,b,c) \
+# define gnutls_check_version_numeric(a,b,c) \
((GNUTLS_VERSION_MAJOR >= (a)) && \
((GNUTLS_VERSION_NUMBER >= ( ((a) << 16) + ((b) << 8) + (c) )) || \
gnutls_check_version(#a "." #b "." #c)))
@@ -2020,7 +1984,7 @@ int gnutls_credentials_set(gnutls_session_t session,
gnutls_credentials_type_t type, void *cred);
int gnutls_credentials_get(gnutls_session_t session,
gnutls_credentials_type_t type, void **cred);
-#define gnutls_cred_set gnutls_credentials_set
+# define gnutls_cred_set gnutls_credentials_set
/* x.509 types */
@@ -2045,59 +2009,49 @@ typedef struct gnutls_x509_crq_int *gnutls_x509_crq_t;
struct gnutls_openpgp_keyring_int;
typedef struct gnutls_openpgp_keyring_int *gnutls_openpgp_keyring_t;
-
/* Credential structures - used in gnutls_credentials_set(); */
struct gnutls_certificate_credentials_st;
typedef struct gnutls_certificate_credentials_st
*gnutls_certificate_credentials_t;
-typedef gnutls_certificate_credentials_t
- gnutls_certificate_server_credentials;
-typedef gnutls_certificate_credentials_t
- gnutls_certificate_client_credentials;
+typedef gnutls_certificate_credentials_t gnutls_certificate_server_credentials;
+typedef gnutls_certificate_credentials_t gnutls_certificate_client_credentials;
typedef struct gnutls_anon_server_credentials_st
*gnutls_anon_server_credentials_t;
typedef struct gnutls_anon_client_credentials_st
*gnutls_anon_client_credentials_t;
-void gnutls_anon_free_server_credentials(gnutls_anon_server_credentials_t
- sc);
+void gnutls_anon_free_server_credentials(gnutls_anon_server_credentials_t sc);
int
-gnutls_anon_allocate_server_credentials(gnutls_anon_server_credentials_t
- * sc);
+gnutls_anon_allocate_server_credentials(gnutls_anon_server_credentials_t * sc);
void gnutls_anon_set_server_dh_params(gnutls_anon_server_credentials_t res,
gnutls_dh_params_t dh_params);
int
gnutls_anon_set_server_known_dh_params(gnutls_anon_server_credentials_t res,
- gnutls_sec_param_t sec_param);
+ gnutls_sec_param_t sec_param);
void
gnutls_anon_set_server_params_function(gnutls_anon_server_credentials_t
res, gnutls_params_function * func);
-void
-gnutls_anon_free_client_credentials(gnutls_anon_client_credentials_t sc);
+void gnutls_anon_free_client_credentials(gnutls_anon_client_credentials_t sc);
int
-gnutls_anon_allocate_client_credentials(gnutls_anon_client_credentials_t
- * sc);
+gnutls_anon_allocate_client_credentials(gnutls_anon_client_credentials_t * sc);
/* CERTFILE is an x509 certificate in PEM form.
* KEYFILE is a pkcs-1 private key in PEM form (for RSA keys).
*/
-void
-gnutls_certificate_free_credentials(gnutls_certificate_credentials_t sc);
+void gnutls_certificate_free_credentials(gnutls_certificate_credentials_t sc);
int
-gnutls_certificate_allocate_credentials(gnutls_certificate_credentials_t
- * res);
+gnutls_certificate_allocate_credentials(gnutls_certificate_credentials_t * res);
int
gnutls_certificate_get_issuer(gnutls_certificate_credentials_t sc,
gnutls_x509_crt_t cert,
- gnutls_x509_crt_t * issuer,
- unsigned int flags);
+ gnutls_x509_crt_t * issuer, unsigned int flags);
int gnutls_certificate_get_crt_raw(gnutls_certificate_credentials_t sc,
unsigned idx1, unsigned idx2,
@@ -2131,9 +2085,9 @@ gnutls_certificate_get_verify_flags(gnutls_certificate_credentials_t res);
*/
typedef enum gnutls_certificate_flags {
GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH = 1,
- GNUTLS_CERTIFICATE_API_V2 = (1<<1),
- GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK = (1<<2),
- GNUTLS_CERTIFICATE_VERIFY_CRLS = (1<<3)
+ GNUTLS_CERTIFICATE_API_V2 = (1 << 1),
+ GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK = (1 << 2),
+ GNUTLS_CERTIFICATE_VERIFY_CRLS = (1 << 3)
} gnutls_certificate_flags;
void gnutls_certificate_set_flags(gnutls_certificate_credentials_t,
@@ -2144,8 +2098,7 @@ void gnutls_certificate_set_verify_limits(gnutls_certificate_credentials_t
unsigned int max_depth);
int
-gnutls_certificate_set_x509_system_trust(gnutls_certificate_credentials_t
- cred);
+gnutls_certificate_set_x509_system_trust(gnutls_certificate_credentials_t cred);
int
gnutls_certificate_set_x509_trust_file(gnutls_certificate_credentials_t
@@ -2179,8 +2132,7 @@ gnutls_certificate_set_x509_key_file2(gnutls_certificate_credentials_t
res, const char *certfile,
const char *keyfile,
gnutls_x509_crt_fmt_t type,
- const char *pass,
- unsigned int flags);
+ const char *pass, unsigned int flags);
int gnutls_certificate_set_x509_key_mem(gnutls_certificate_credentials_t
res, const gnutls_datum_t * cert,
@@ -2191,20 +2143,17 @@ int gnutls_certificate_set_x509_key_mem2(gnutls_certificate_credentials_t
res, const gnutls_datum_t * cert,
const gnutls_datum_t * key,
gnutls_x509_crt_fmt_t type,
- const char *pass,
- unsigned int flags);
+ const char *pass, unsigned int flags);
void gnutls_certificate_send_x509_rdn_sequence(gnutls_session_t session,
int status);
-int
-gnutls_certificate_set_x509_simple_pkcs12_file
-(gnutls_certificate_credentials_t res, const char *pkcs12file,
- gnutls_x509_crt_fmt_t type, const char *password);
-int
-gnutls_certificate_set_x509_simple_pkcs12_mem
-(gnutls_certificate_credentials_t res, const gnutls_datum_t * p12blob,
- gnutls_x509_crt_fmt_t type, const char *password);
+int gnutls_certificate_set_x509_simple_pkcs12_file
+ (gnutls_certificate_credentials_t res, const char *pkcs12file,
+ gnutls_x509_crt_fmt_t type, const char *password);
+int gnutls_certificate_set_x509_simple_pkcs12_mem
+ (gnutls_certificate_credentials_t res, const gnutls_datum_t * p12blob,
+ gnutls_x509_crt_fmt_t type, const char *password);
/* New functions to allow setting already parsed X.509 stuff.
*/
@@ -2221,44 +2170,39 @@ int gnutls_certificate_set_x509_crl(gnutls_certificate_credentials_t res,
int crl_list_size);
int gnutls_certificate_get_x509_key(gnutls_certificate_credentials_t res,
- unsigned index,
- gnutls_x509_privkey_t *key);
+ unsigned index,
+ gnutls_x509_privkey_t * key);
int gnutls_certificate_get_x509_crt(gnutls_certificate_credentials_t res,
- unsigned index,
- gnutls_x509_crt_t **crt_list,
- unsigned *crt_list_size);
+ unsigned index,
+ gnutls_x509_crt_t ** crt_list,
+ unsigned *crt_list_size);
/* OCSP status request extension, RFC 6066 */
typedef int (*gnutls_status_request_ocsp_func)
- (gnutls_session_t session, void *ptr, gnutls_datum_t *ocsp_response);
+ (gnutls_session_t session, void *ptr, gnutls_datum_t * ocsp_response);
-void
-gnutls_certificate_set_ocsp_status_request_function
-(gnutls_certificate_credentials_t res,
-gnutls_status_request_ocsp_func ocsp_func, void *ptr);
+void gnutls_certificate_set_ocsp_status_request_function
+ (gnutls_certificate_credentials_t res,
+ gnutls_status_request_ocsp_func ocsp_func, void *ptr);
-int
-gnutls_certificate_set_ocsp_status_request_function2
-(gnutls_certificate_credentials_t res, unsigned idx,
-gnutls_status_request_ocsp_func ocsp_func, void *ptr);
+int gnutls_certificate_set_ocsp_status_request_function2
+ (gnutls_certificate_credentials_t res, unsigned idx,
+ gnutls_status_request_ocsp_func ocsp_func, void *ptr);
-int
-gnutls_certificate_set_ocsp_status_request_file
-(gnutls_certificate_credentials_t res, const char *response_file,
- unsigned idx);
+int gnutls_certificate_set_ocsp_status_request_file
+ (gnutls_certificate_credentials_t res, const char *response_file,
+ unsigned idx);
-int
-gnutls_certificate_set_ocsp_status_request_file2
-(gnutls_certificate_credentials_t res, const char *response_file,
- unsigned idx, gnutls_x509_crt_fmt_t fmt);
+int gnutls_certificate_set_ocsp_status_request_file2
+ (gnutls_certificate_credentials_t res, const char *response_file,
+ unsigned idx, gnutls_x509_crt_fmt_t fmt);
-int
-gnutls_certificate_set_ocsp_status_request_mem
-(gnutls_certificate_credentials_t res, const gnutls_datum_t *resp,
- unsigned idx, gnutls_x509_crt_fmt_t fmt);
+int gnutls_certificate_set_ocsp_status_request_mem
+ (gnutls_certificate_credentials_t res, const gnutls_datum_t * resp,
+ unsigned idx, gnutls_x509_crt_fmt_t fmt);
typedef struct gnutls_ocsp_data_st {
- unsigned int version; /* must be zero */
+ unsigned int version; /* must be zero */
gnutls_datum_t response;
time_t exptime;
unsigned char padding[32];
@@ -2266,9 +2210,7 @@ typedef struct gnutls_ocsp_data_st {
time_t
gnutls_certificate_get_ocsp_expiration(gnutls_certificate_credentials_t sc,
- unsigned idx,
- int oidx,
- unsigned flags);
+ unsigned idx, int oidx, unsigned flags);
int gnutls_ocsp_status_request_enable_client(gnutls_session_t session,
gnutls_datum_t * responder_id,
@@ -2279,37 +2221,35 @@ int gnutls_ocsp_status_request_enable_client(gnutls_session_t session,
int gnutls_ocsp_status_request_get(gnutls_session_t session,
gnutls_datum_t * response);
-#define GNUTLS_OCSP_SR_IS_AVAIL 1
+# define GNUTLS_OCSP_SR_IS_AVAIL 1
unsigned gnutls_ocsp_status_request_is_checked(gnutls_session_t session,
unsigned int flags);
int
gnutls_ocsp_status_request_get2(gnutls_session_t session,
- unsigned idx,
- gnutls_datum_t * response);
+ unsigned idx, gnutls_datum_t * response);
/* RAW public key functions (RFC7250) */
int gnutls_certificate_set_rawpk_key_mem(gnutls_certificate_credentials_t cred,
- const gnutls_datum_t* spki,
- const gnutls_datum_t* pkey,
- gnutls_x509_crt_fmt_t format,
- const char* pass,
- unsigned int key_usage,
- const char **names,
- unsigned int names_length,
- unsigned int flags);
+ const gnutls_datum_t * spki,
+ const gnutls_datum_t * pkey,
+ gnutls_x509_crt_fmt_t format,
+ const char *pass,
+ unsigned int key_usage,
+ const char **names,
+ unsigned int names_length,
+ unsigned int flags);
int gnutls_certificate_set_rawpk_key_file(gnutls_certificate_credentials_t cred,
- const char* rawpkfile,
- const char* privkeyfile,
- gnutls_x509_crt_fmt_t format,
- const char *pass,
- unsigned int key_usage,
- const char **names,
- unsigned int names_length,
- unsigned int privkey_flags,
- unsigned int pkcs11_flags);
-
+ const char *rawpkfile,
+ const char *privkeyfile,
+ gnutls_x509_crt_fmt_t format,
+ const char *pass,
+ unsigned int key_usage,
+ const char **names,
+ unsigned int names_length,
+ unsigned int privkey_flags,
+ unsigned int pkcs11_flags);
/* global state functions
*/
@@ -2329,21 +2269,20 @@ const gnutls_library_config_st *gnutls_get_library_config(void);
*/
typedef time_t(*gnutls_time_func) (time_t * t);
-typedef int (*mutex_init_func) (void **mutex);
-typedef int (*mutex_lock_func) (void **mutex);
-typedef int (*mutex_unlock_func) (void **mutex);
-typedef int (*mutex_deinit_func) (void **mutex);
+typedef int (*mutex_init_func)(void **mutex);
+typedef int (*mutex_lock_func)(void **mutex);
+typedef int (*mutex_unlock_func)(void **mutex);
+typedef int (*mutex_deinit_func)(void **mutex);
void gnutls_global_set_mutex(mutex_init_func init,
mutex_deinit_func deinit,
- mutex_lock_func lock,
- mutex_unlock_func unlock);
+ mutex_lock_func lock, mutex_unlock_func unlock);
-typedef void *(*gnutls_alloc_function) (size_t);
-typedef void *(*gnutls_calloc_function) (size_t, size_t);
-typedef int (*gnutls_is_secure_function) (const void *);
-typedef void (*gnutls_free_function) (void *);
-typedef void *(*gnutls_realloc_function) (void *, size_t);
+typedef void *(*gnutls_alloc_function)(size_t);
+typedef void *(*gnutls_calloc_function)(size_t, size_t);
+typedef int (*gnutls_is_secure_function)(const void *);
+typedef void (*gnutls_free_function)(void *);
+typedef void *(*gnutls_realloc_function)(void *, size_t);
void gnutls_global_set_time_function(gnutls_time_func time_func);
@@ -2353,11 +2292,11 @@ extern _SYM_EXPORT gnutls_realloc_function gnutls_realloc;
extern _SYM_EXPORT gnutls_calloc_function gnutls_calloc;
extern _SYM_EXPORT gnutls_free_function gnutls_free;
-#ifdef GNUTLS_INTERNAL_BUILD
-#define gnutls_free(a) gnutls_free((void *) (a)), a=NULL
-#endif
+# ifdef GNUTLS_INTERNAL_BUILD
+# define gnutls_free(a) gnutls_free((void *) (a)), a=NULL
+# endif
-extern _SYM_EXPORT char *(*gnutls_strdup) (const char *);
+extern _SYM_EXPORT char *(*gnutls_strdup)(const char *);
/* a variant of memset that doesn't get optimized out */
void gnutls_memset(void *data, int c, size_t size);
@@ -2365,8 +2304,8 @@ void gnutls_memset(void *data, int c, size_t size);
/* constant time memcmp */
int gnutls_memcmp(const void *s1, const void *s2, size_t n);
-typedef void (*gnutls_log_func) (int, const char *);
-typedef void (*gnutls_audit_log_func) (gnutls_session_t, const char *);
+typedef void (*gnutls_log_func)(int, const char *);
+typedef void (*gnutls_audit_log_func)(gnutls_session_t, const char *);
void gnutls_global_set_log_function(gnutls_log_func log_func);
void gnutls_global_set_audit_log_function(gnutls_audit_log_func log_func);
void gnutls_global_set_log_level(int level);
@@ -2383,10 +2322,11 @@ void gnutls_global_set_log_level(int level);
* Returns: Non zero on error.
* Since: 3.6.13
*/
-typedef int (*gnutls_keylog_func) (gnutls_session_t session,
- const char *label,
- const gnutls_datum_t *secret);
-gnutls_keylog_func gnutls_session_get_keylog_function(const gnutls_session_t session);
+typedef int (*gnutls_keylog_func)(gnutls_session_t session,
+ const char *label,
+ const gnutls_datum_t * secret);
+gnutls_keylog_func gnutls_session_get_keylog_function(const gnutls_session_t
+ session);
void gnutls_session_set_keylog_function(gnutls_session_t session,
gnutls_keylog_func func);
@@ -2397,7 +2337,8 @@ void gnutls_dh_params_deinit(gnutls_dh_params_t dh_params);
int gnutls_dh_params_import_raw(gnutls_dh_params_t dh_params,
const gnutls_datum_t * prime,
const gnutls_datum_t * generator);
-int gnutls_dh_params_import_dsa(gnutls_dh_params_t dh_params, gnutls_x509_privkey_t key);
+int gnutls_dh_params_import_dsa(gnutls_dh_params_t dh_params,
+ gnutls_x509_privkey_t key);
int gnutls_dh_params_import_raw2(gnutls_dh_params_t dh_params,
const gnutls_datum_t * prime,
const gnutls_datum_t * generator,
@@ -2409,50 +2350,45 @@ int gnutls_dh_params_import_raw3(gnutls_dh_params_t dh_params,
int gnutls_dh_params_import_pkcs3(gnutls_dh_params_t params,
const gnutls_datum_t * pkcs3_params,
gnutls_x509_crt_fmt_t format);
-int gnutls_dh_params_generate2(gnutls_dh_params_t params,
- unsigned int bits);
+int gnutls_dh_params_generate2(gnutls_dh_params_t params, unsigned int bits);
int gnutls_dh_params_export_pkcs3(gnutls_dh_params_t params,
gnutls_x509_crt_fmt_t format,
unsigned char *params_data,
- size_t * params_data_size);
+ size_t *params_data_size);
int gnutls_dh_params_export2_pkcs3(gnutls_dh_params_t params,
gnutls_x509_crt_fmt_t format,
gnutls_datum_t * out);
int gnutls_dh_params_export_raw(gnutls_dh_params_t params,
gnutls_datum_t * prime,
- gnutls_datum_t * generator,
- unsigned int *bits);
+ gnutls_datum_t * generator, unsigned int *bits);
int gnutls_dh_params_cpy(gnutls_dh_params_t dst, gnutls_dh_params_t src);
-
-
/* Session stuff
*/
/* *INDENT-OFF* */
@DEFINE_IOVEC_T@
/* *INDENT-ON* */
-typedef ssize_t(*gnutls_pull_func) (gnutls_transport_ptr_t, void *,
- size_t);
+typedef ssize_t(*gnutls_pull_func) (gnutls_transport_ptr_t, void *, size_t);
typedef ssize_t(*gnutls_push_func) (gnutls_transport_ptr_t, const void *,
size_t);
int gnutls_system_recv_timeout(gnutls_transport_ptr_t ptr, unsigned int ms);
-typedef int (*gnutls_pull_timeout_func) (gnutls_transport_ptr_t,
- unsigned int ms);
+typedef int (*gnutls_pull_timeout_func)(gnutls_transport_ptr_t,
+ unsigned int ms);
typedef ssize_t(*gnutls_vec_push_func) (gnutls_transport_ptr_t,
const giovec_t * iov, int iovcnt);
-typedef int (*gnutls_errno_func) (gnutls_transport_ptr_t);
+typedef int (*gnutls_errno_func)(gnutls_transport_ptr_t);
-#if 0
+# if 0
/* This will be defined as macro. */
- void gnutls_transport_set_int (gnutls_session_t session, int r);
-#endif
+void gnutls_transport_set_int(gnutls_session_t session, int r);
+# endif
void gnutls_transport_set_int2(gnutls_session_t session, int r, int s);
-#define gnutls_transport_set_int(s, i) gnutls_transport_set_int2(s, i, i)
+# define gnutls_transport_set_int(s, i) gnutls_transport_set_int2(s, i, i)
void gnutls_transport_get_int2(gnutls_session_t session, int *r, int *s);
int gnutls_transport_get_int(gnutls_session_t session);
@@ -2476,8 +2412,7 @@ void gnutls_transport_set_pull_function(gnutls_session_t session,
gnutls_pull_func pull_func);
void gnutls_transport_set_pull_timeout_function(gnutls_session_t session,
- gnutls_pull_timeout_func
- func);
+ gnutls_pull_timeout_func func);
void gnutls_transport_set_errno_function(gnutls_session_t session,
gnutls_errno_func errno_func);
@@ -2496,7 +2431,7 @@ void gnutls_openpgp_send_cert(gnutls_session_t session,
*/
int gnutls_fingerprint(gnutls_digest_algorithm_t algo,
const gnutls_datum_t * data, void *result,
- size_t * result_size);
+ size_t *result_size);
/**
* gnutls_random_art_t:
@@ -2513,9 +2448,11 @@ int gnutls_random_art(gnutls_random_art_t type,
void *fpr, size_t fpr_size, gnutls_datum_t * art);
/* IDNA */
-#define GNUTLS_IDNA_FORCE_2008 (1<<1)
-int gnutls_idna_map(const char * input, unsigned ilen, gnutls_datum_t *out, unsigned flags);
-int gnutls_idna_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsigned flags);
+# define GNUTLS_IDNA_FORCE_2008 (1<<1)
+int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t * out,
+ unsigned flags);
+int gnutls_idna_reverse_map(const char *input, unsigned ilen,
+ gnutls_datum_t * out, unsigned flags);
/* SRP
*/
@@ -2525,35 +2462,29 @@ typedef struct gnutls_srp_server_credentials_st
typedef struct gnutls_srp_client_credentials_st
*gnutls_srp_client_credentials_t;
-void
-gnutls_srp_free_client_credentials(gnutls_srp_client_credentials_t sc);
+void gnutls_srp_free_client_credentials(gnutls_srp_client_credentials_t sc);
int
-gnutls_srp_allocate_client_credentials(gnutls_srp_client_credentials_t *
- sc);
+gnutls_srp_allocate_client_credentials(gnutls_srp_client_credentials_t * sc);
int gnutls_srp_set_client_credentials(gnutls_srp_client_credentials_t res,
const char *username,
const char *password);
-void
-gnutls_srp_free_server_credentials(gnutls_srp_server_credentials_t sc);
+void gnutls_srp_free_server_credentials(gnutls_srp_server_credentials_t sc);
int
-gnutls_srp_allocate_server_credentials(gnutls_srp_server_credentials_t *
- sc);
+gnutls_srp_allocate_server_credentials(gnutls_srp_server_credentials_t * sc);
int gnutls_srp_set_server_credentials_file(gnutls_srp_server_credentials_t
res, const char *password_file,
const char *password_conf_file);
const char *gnutls_srp_server_get_username(gnutls_session_t session);
-void gnutls_srp_set_prime_bits(gnutls_session_t session,
- unsigned int bits);
+void gnutls_srp_set_prime_bits(gnutls_session_t session, unsigned int bits);
int gnutls_srp_verifier(const char *username,
const char *password,
const gnutls_datum_t * salt,
const gnutls_datum_t * generator,
- const gnutls_datum_t * prime,
- gnutls_datum_t * res);
+ const gnutls_datum_t * prime, gnutls_datum_t * res);
/* The static parameters defined in draft-ietf-tls-srp-05
* Those should be used as input to gnutls_srp_verifier().
@@ -2627,17 +2558,17 @@ gnutls_srp_set_client_credentials_function(gnutls_srp_client_credentials_t
* func);
int gnutls_srp_base64_encode(const gnutls_datum_t * data, char *result,
- size_t * result_size);
+ size_t *result_size);
int gnutls_srp_base64_encode2(const gnutls_datum_t * data,
- gnutls_datum_t * result);
+ gnutls_datum_t * result);
int gnutls_srp_base64_decode(const gnutls_datum_t * b64_data, char *result,
- size_t * result_size);
+ size_t *result_size);
int gnutls_srp_base64_decode2(const gnutls_datum_t * b64_data,
- gnutls_datum_t * result);
+ gnutls_datum_t * result);
-#define gnutls_srp_base64_encode_alloc gnutls_srp_base64_encode2
-#define gnutls_srp_base64_decode_alloc gnutls_srp_base64_decode2
+# define gnutls_srp_base64_encode_alloc gnutls_srp_base64_encode2
+# define gnutls_srp_base64_decode_alloc gnutls_srp_base64_decode2
void
gnutls_srp_set_server_fake_salt_seed(gnutls_srp_server_credentials_t
@@ -2663,25 +2594,21 @@ typedef enum gnutls_psk_key_flags {
GNUTLS_PSK_KEY_HEX
} gnutls_psk_key_flags;
-void
-gnutls_psk_free_client_credentials(gnutls_psk_client_credentials_t sc);
+void gnutls_psk_free_client_credentials(gnutls_psk_client_credentials_t sc);
int
-gnutls_psk_allocate_client_credentials(gnutls_psk_client_credentials_t *
- sc);
+gnutls_psk_allocate_client_credentials(gnutls_psk_client_credentials_t * sc);
int gnutls_psk_set_client_credentials(gnutls_psk_client_credentials_t res,
const char *username,
const gnutls_datum_t * key,
gnutls_psk_key_flags flags);
int gnutls_psk_set_client_credentials2(gnutls_psk_client_credentials_t res,
- const gnutls_datum_t *username,
- const gnutls_datum_t *key,
+ const gnutls_datum_t * username,
+ const gnutls_datum_t * key,
gnutls_psk_key_flags flags);
-void
-gnutls_psk_free_server_credentials(gnutls_psk_server_credentials_t sc);
+void gnutls_psk_free_server_credentials(gnutls_psk_server_credentials_t sc);
int
-gnutls_psk_allocate_server_credentials(gnutls_psk_server_credentials_t *
- sc);
+gnutls_psk_allocate_server_credentials(gnutls_psk_server_credentials_t * sc);
int gnutls_psk_set_server_credentials_file(gnutls_psk_server_credentials_t
res, const char *password_file);
@@ -2691,46 +2618,49 @@ gnutls_psk_set_server_credentials_hint(gnutls_psk_server_credentials_t
const char *gnutls_psk_server_get_username(gnutls_session_t session);
int gnutls_psk_server_get_username2(gnutls_session_t session,
- gnutls_datum_t *out);
+ gnutls_datum_t * out);
const char *gnutls_psk_client_get_hint(gnutls_session_t session);
typedef int gnutls_psk_server_credentials_function(gnutls_session_t,
const char *username,
gnutls_datum_t * key);
typedef int gnutls_psk_server_credentials_function2(gnutls_session_t,
- const gnutls_datum_t *username,
- gnutls_datum_t *key);
-void
-gnutls_psk_set_server_credentials_function(gnutls_psk_server_credentials_t
- cred,
- gnutls_psk_server_credentials_function
- * func);
-void
-gnutls_psk_set_server_credentials_function2(gnutls_psk_server_credentials_t cred,
- gnutls_psk_server_credentials_function2 *func);
+ const gnutls_datum_t *
+ username,
+ gnutls_datum_t * key);
+void gnutls_psk_set_server_credentials_function(gnutls_psk_server_credentials_t
+ cred,
+ gnutls_psk_server_credentials_function
+ * func);
+void gnutls_psk_set_server_credentials_function2(gnutls_psk_server_credentials_t
+ cred,
+ gnutls_psk_server_credentials_function2
+ * func);
typedef int gnutls_psk_client_credentials_function(gnutls_session_t,
char **username,
gnutls_datum_t * key);
typedef int gnutls_psk_client_credentials_function2(gnutls_session_t,
- gnutls_datum_t *username,
- gnutls_datum_t *key);
+ gnutls_datum_t * username,
+ gnutls_datum_t * key);
void
gnutls_psk_set_client_credentials_function(gnutls_psk_client_credentials_t
cred,
gnutls_psk_client_credentials_function
* func);
void
-gnutls_psk_set_client_credentials_function2(gnutls_psk_client_credentials_t cred,
- gnutls_psk_client_credentials_function2 *func);
+gnutls_psk_set_client_credentials_function2(gnutls_psk_client_credentials_t
+ cred,
+ gnutls_psk_client_credentials_function2
+ * func);
int gnutls_hex_encode(const gnutls_datum_t * data, char *result,
- size_t * result_size);
+ size_t *result_size);
int gnutls_hex_decode(const gnutls_datum_t * hex_data, void *result,
- size_t * result_size);
+ size_t *result_size);
-int gnutls_hex_encode2(const gnutls_datum_t * data, gnutls_datum_t *result);
-int gnutls_hex_decode2(const gnutls_datum_t * data, gnutls_datum_t *result);
+int gnutls_hex_encode2(const gnutls_datum_t * data, gnutls_datum_t * result);
+int gnutls_hex_decode2(const gnutls_datum_t * data, gnutls_datum_t * result);
void
gnutls_psk_set_server_dh_params(gnutls_psk_server_credentials_t res,
@@ -2820,15 +2750,12 @@ typedef struct gnutls_retr2_st {
unsigned int deinit_all; /* if non zero all keys will be deinited */
} gnutls_retr2_st;
-
/* Functions that allow auth_info_t structures handling
*/
gnutls_credentials_type_t gnutls_auth_get_type(gnutls_session_t session);
-gnutls_credentials_type_t
-gnutls_auth_server_get_type(gnutls_session_t session);
-gnutls_credentials_type_t
-gnutls_auth_client_get_type(gnutls_session_t session);
+gnutls_credentials_type_t gnutls_auth_server_get_type(gnutls_session_t session);
+gnutls_credentials_type_t gnutls_auth_client_get_type(gnutls_session_t session);
/* DH */
@@ -2839,12 +2766,10 @@ int gnutls_dh_get_prime_bits(gnutls_session_t session);
int gnutls_dh_get_group(gnutls_session_t session, gnutls_datum_t * raw_gen,
gnutls_datum_t * raw_prime);
-int gnutls_dh_get_pubkey(gnutls_session_t session,
- gnutls_datum_t * raw_key);
+int gnutls_dh_get_pubkey(gnutls_session_t session, gnutls_datum_t * raw_key);
/* X509PKI */
-
/* These are set on the credentials structure.
*/
@@ -2864,7 +2789,6 @@ typedef int gnutls_certificate_retrieve_function(gnutls_session_t,
pk_algos_length,
gnutls_retr2_st *);
-
void
gnutls_certificate_set_retrieve_function(gnutls_certificate_credentials_t
cred,
@@ -2883,11 +2807,9 @@ gnutls_certificate_server_set_request(gnutls_session_t session,
/* get data from the session
*/
-const gnutls_datum_t *gnutls_certificate_get_peers(gnutls_session_t
- session, unsigned int
+const gnutls_datum_t *gnutls_certificate_get_peers(gnutls_session_t session, unsigned int
*list_size);
-const gnutls_datum_t *gnutls_certificate_get_ours(gnutls_session_t
- session);
+const gnutls_datum_t *gnutls_certificate_get_ours(gnutls_session_t session);
int gnutls_certificate_get_peers_subkey_id(gnutls_session_t session,
gnutls_datum_t * id);
@@ -2905,8 +2827,7 @@ int gnutls_certificate_verify_peers3(gnutls_session_t session,
int
gnutls_certificate_verify_peers(gnutls_session_t session,
gnutls_typed_vdata_st * data,
- unsigned int elements,
- unsigned int *status);
+ unsigned int elements, unsigned int *status);
int gnutls_certificate_verification_status_print(unsigned int status,
gnutls_certificate_type_t
@@ -2915,40 +2836,39 @@ int gnutls_certificate_verification_status_print(unsigned int status,
unsigned int flags);
int gnutls_pem_base64_encode(const char *msg, const gnutls_datum_t * data,
- char *result, size_t * result_size);
+ char *result, size_t *result_size);
int gnutls_pem_base64_decode(const char *header,
const gnutls_datum_t * b64_data,
- unsigned char *result, size_t * result_size);
+ unsigned char *result, size_t *result_size);
int gnutls_pem_base64_encode2(const char *msg,
- const gnutls_datum_t * data,
- gnutls_datum_t * result);
+ const gnutls_datum_t * data,
+ gnutls_datum_t * result);
int gnutls_pem_base64_decode2(const char *header,
- const gnutls_datum_t * b64_data,
- gnutls_datum_t * result);
+ const gnutls_datum_t * b64_data,
+ gnutls_datum_t * result);
-int gnutls_base64_encode2(const gnutls_datum_t * data,
- gnutls_datum_t * result);
+int gnutls_base64_encode2(const gnutls_datum_t * data, gnutls_datum_t * result);
int gnutls_base64_decode2(const gnutls_datum_t * b64_data,
gnutls_datum_t * result);
-#define gnutls_pem_base64_encode_alloc gnutls_pem_base64_encode2
-#define gnutls_pem_base64_decode_alloc gnutls_pem_base64_decode2
+# define gnutls_pem_base64_encode_alloc gnutls_pem_base64_encode2
+# define gnutls_pem_base64_decode_alloc gnutls_pem_base64_decode2
/* key_usage will be an OR of the following values:
*/
/* when the key is to be used for signing: */
-#define GNUTLS_KEY_DIGITAL_SIGNATURE 128
-#define GNUTLS_KEY_NON_REPUDIATION 64
+# define GNUTLS_KEY_DIGITAL_SIGNATURE 128
+# define GNUTLS_KEY_NON_REPUDIATION 64
/* when the key is to be used for encryption: */
-#define GNUTLS_KEY_KEY_ENCIPHERMENT 32
-#define GNUTLS_KEY_DATA_ENCIPHERMENT 16
-#define GNUTLS_KEY_KEY_AGREEMENT 8
-#define GNUTLS_KEY_KEY_CERT_SIGN 4
-#define GNUTLS_KEY_CRL_SIGN 2
-#define GNUTLS_KEY_ENCIPHER_ONLY 1
-#define GNUTLS_KEY_DECIPHER_ONLY 32768
+# define GNUTLS_KEY_KEY_ENCIPHERMENT 32
+# define GNUTLS_KEY_DATA_ENCIPHERMENT 16
+# define GNUTLS_KEY_KEY_AGREEMENT 8
+# define GNUTLS_KEY_KEY_CERT_SIGN 4
+# define GNUTLS_KEY_CRL_SIGN 2
+# define GNUTLS_KEY_ENCIPHER_ONLY 1
+# define GNUTLS_KEY_DECIPHER_ONLY 32768
void
gnutls_certificate_set_params_function(gnutls_certificate_credentials_t
@@ -2959,41 +2879,38 @@ void gnutls_psk_set_params_function(gnutls_psk_server_credentials_t res,
gnutls_params_function * func);
int gnutls_hex2bin(const char *hex_data, size_t hex_size,
- void *bin_data, size_t * bin_size);
+ void *bin_data, size_t *bin_size);
/* Trust on first use (or ssh like) functions */
/* stores the provided information to a database
*/
-typedef int (*gnutls_tdb_store_func) (const char *db_name,
- const char *host,
- const char *service,
- time_t expiration,
- const gnutls_datum_t * pubkey);
-
-typedef int (*gnutls_tdb_store_commitment_func) (const char *db_name,
- const char *host,
- const char *service,
- time_t expiration,
- gnutls_digest_algorithm_t
- hash_algo,
- const gnutls_datum_t *
- hash);
+typedef int (*gnutls_tdb_store_func)(const char *db_name,
+ const char *host,
+ const char *service,
+ time_t expiration,
+ const gnutls_datum_t * pubkey);
+
+typedef int (*gnutls_tdb_store_commitment_func)(const char *db_name,
+ const char *host,
+ const char *service,
+ time_t expiration,
+ gnutls_digest_algorithm_t
+ hash_algo,
+ const gnutls_datum_t * hash);
/* searches for the provided host/service pair that match the
* provided public key in the database. */
-typedef int (*gnutls_tdb_verify_func) (const char *db_name,
- const char *host,
- const char *service,
- const gnutls_datum_t * pubkey);
-
+typedef int (*gnutls_tdb_verify_func)(const char *db_name,
+ const char *host,
+ const char *service,
+ const gnutls_datum_t * pubkey);
struct gnutls_tdb_int;
typedef struct gnutls_tdb_int *gnutls_tdb_t;
int gnutls_tdb_init(gnutls_tdb_t * tdb);
-void gnutls_tdb_set_store_func(gnutls_tdb_t tdb,
- gnutls_tdb_store_func store);
+void gnutls_tdb_set_store_func(gnutls_tdb_t tdb, gnutls_tdb_store_func store);
void gnutls_tdb_set_store_commitment_func(gnutls_tdb_t tdb,
gnutls_tdb_store_commitment_func
cstore);
@@ -3009,7 +2926,7 @@ int gnutls_verify_stored_pubkey(const char *db_name,
const gnutls_datum_t * cert,
unsigned int flags);
-#define GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN 1
+# define GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN 1
int gnutls_store_commitment(const char *db_name,
gnutls_tdb_t tdb,
const char *host,
@@ -3053,12 +2970,12 @@ typedef enum {
GNUTLS_PIN_WRONG = (1 << 5)
} gnutls_pin_flag_t;
-#define GNUTLS_PKCS11_PIN_USER GNUTLS_PIN_USER
-#define GNUTLS_PKCS11_PIN_SO GNUTLS_PIN_SO
-#define GNUTLS_PKCS11_PIN_FINAL_TRY GNUTLS_PIN_FINAL_TRY
-#define GNUTLS_PKCS11_PIN_COUNT_LOW GNUTLS_PIN_COUNT_LOW
-#define GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC GNUTLS_PIN_CONTEXT_SPECIFIC
-#define GNUTLS_PKCS11_PIN_WRONG GNUTLS_PIN_WRONG
+# define GNUTLS_PKCS11_PIN_USER GNUTLS_PIN_USER
+# define GNUTLS_PKCS11_PIN_SO GNUTLS_PIN_SO
+# define GNUTLS_PKCS11_PIN_FINAL_TRY GNUTLS_PIN_FINAL_TRY
+# define GNUTLS_PKCS11_PIN_COUNT_LOW GNUTLS_PIN_COUNT_LOW
+# define GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC GNUTLS_PIN_CONTEXT_SPECIFIC
+# define GNUTLS_PKCS11_PIN_WRONG GNUTLS_PIN_WRONG
/**
* gnutls_pin_callback_t:
@@ -3093,11 +3010,11 @@ typedef enum {
*
* Since: 2.12.0
**/
-typedef int (*gnutls_pin_callback_t) (void *userdata, int attempt,
- const char *token_url,
- const char *token_label,
- unsigned int flags,
- char *pin, size_t pin_max);
+typedef int (*gnutls_pin_callback_t)(void *userdata, int attempt,
+ const char *token_url,
+ const char *token_label,
+ unsigned int flags,
+ char *pin, size_t pin_max);
void gnutls_certificate_set_pin_function(gnutls_certificate_credentials_t,
gnutls_pin_callback_t fn,
@@ -3106,11 +3023,13 @@ void gnutls_certificate_set_pin_function(gnutls_certificate_credentials_t,
/* Public string related functions */
typedef struct gnutls_buffer_st *gnutls_buffer_t;
-int gnutls_buffer_append_data(gnutls_buffer_t, const void *data, size_t data_size);
+int gnutls_buffer_append_data(gnutls_buffer_t, const void *data,
+ size_t data_size);
-#define GNUTLS_UTF8_IGNORE_ERRS 1
-int gnutls_utf8_password_normalize(const unsigned char *password, unsigned password_len,
- gnutls_datum_t *out, unsigned flags);
+# define GNUTLS_UTF8_IGNORE_ERRS 1
+int gnutls_utf8_password_normalize(const unsigned char *password,
+ unsigned password_len, gnutls_datum_t * out,
+ unsigned flags);
/* Public extensions related functions */
@@ -3123,26 +3042,27 @@ int gnutls_ext_get_data(gnutls_session_t session, unsigned type,
unsigned gnutls_ext_get_current_msg(gnutls_session_t session);
-typedef int (*gnutls_ext_recv_func) (gnutls_session_t session,
- const unsigned char *data,
- size_t len);
+typedef int (*gnutls_ext_recv_func)(gnutls_session_t session,
+ const unsigned char *data, size_t len);
-typedef int (*gnutls_ext_send_func) (gnutls_session_t session,
- gnutls_buffer_t extdata);
+typedef int (*gnutls_ext_send_func)(gnutls_session_t session,
+ gnutls_buffer_t extdata);
-typedef void (*gnutls_ext_deinit_data_func) (gnutls_ext_priv_data_t data);
+typedef void (*gnutls_ext_deinit_data_func)(gnutls_ext_priv_data_t data);
-typedef int (*gnutls_ext_pack_func) (gnutls_ext_priv_data_t data,
- gnutls_buffer_t packed_data);
+typedef int (*gnutls_ext_pack_func)(gnutls_ext_priv_data_t data,
+ gnutls_buffer_t packed_data);
-typedef int (*gnutls_ext_unpack_func) (gnutls_buffer_t packed_data,
- gnutls_ext_priv_data_t *data);
+typedef int (*gnutls_ext_unpack_func)(gnutls_buffer_t packed_data,
+ gnutls_ext_priv_data_t * data);
-#define GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO 1
-#define GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO (1<<1)
-typedef int (*gnutls_ext_raw_process_func)(void *ctx, unsigned tls_id, const unsigned char *data, unsigned data_size);
+# define GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO 1
+# define GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO (1<<1)
+typedef int (*gnutls_ext_raw_process_func)(void *ctx, unsigned tls_id,
+ const unsigned char *data,
+ unsigned data_size);
int gnutls_ext_raw_parse(void *ctx, gnutls_ext_raw_process_func cb,
- const gnutls_datum_t *data, unsigned int flags);
+ const gnutls_datum_t * data, unsigned int flags);
/**
* gnutls_ext_parse_type_t:
@@ -3158,12 +3078,12 @@ int gnutls_ext_raw_parse(void *ctx, gnutls_ext_raw_process_func cb,
*
*/
typedef enum {
- GNUTLS_EXT_ANY = 0,
- GNUTLS_EXT_APPLICATION = 1,
- GNUTLS_EXT_TLS = 2,
- GNUTLS_EXT_MANDATORY = 3,
- GNUTLS_EXT_NONE = 4,
- GNUTLS_EXT_VERSION_NEG = 5
+ GNUTLS_EXT_ANY = 0,
+ GNUTLS_EXT_APPLICATION = 1,
+ GNUTLS_EXT_TLS = 2,
+ GNUTLS_EXT_MANDATORY = 3,
+ GNUTLS_EXT_NONE = 4,
+ GNUTLS_EXT_VERSION_NEG = 5
} gnutls_ext_parse_type_t;
/**
@@ -3181,28 +3101,35 @@ typedef enum {
* Enumeration of different TLS extension registration flags.
*/
typedef enum {
- GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL = 1,
- GNUTLS_EXT_FLAG_CLIENT_HELLO = (1<<1),
- GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO = (1<<2),
- GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO = (1<<3),
- GNUTLS_EXT_FLAG_EE = (1<<4), /* ENCRYPTED */
- GNUTLS_EXT_FLAG_HRR = (1<<5),
- GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST = (1<<6),
- GNUTLS_EXT_FLAG_TLS = (1<<7),
- GNUTLS_EXT_FLAG_DTLS = (1<<8)
+ GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL = 1,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO = (1 << 1),
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO = (1 << 2),
+ GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO = (1 << 3),
+ GNUTLS_EXT_FLAG_EE = (1 << 4), /* ENCRYPTED */
+ GNUTLS_EXT_FLAG_HRR = (1 << 5),
+ GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST = (1 << 6),
+ GNUTLS_EXT_FLAG_TLS = (1 << 7),
+ GNUTLS_EXT_FLAG_DTLS = (1 << 8)
} gnutls_ext_flags_t;
/* Register a custom tls extension
*/
-int gnutls_ext_register(const char *name, int type, gnutls_ext_parse_type_t parse_point,
- gnutls_ext_recv_func recv_func, gnutls_ext_send_func send_func,
- gnutls_ext_deinit_data_func deinit_func, gnutls_ext_pack_func pack_func,
- gnutls_ext_unpack_func unpack_func);
-
-int gnutls_session_ext_register(gnutls_session_t, const char *name, int type, gnutls_ext_parse_type_t parse_point,
- gnutls_ext_recv_func recv_func, gnutls_ext_send_func send_func,
- gnutls_ext_deinit_data_func deinit_func, gnutls_ext_pack_func pack_func,
- gnutls_ext_unpack_func unpack_func, unsigned flags);
+int gnutls_ext_register(const char *name, int type,
+ gnutls_ext_parse_type_t parse_point,
+ gnutls_ext_recv_func recv_func,
+ gnutls_ext_send_func send_func,
+ gnutls_ext_deinit_data_func deinit_func,
+ gnutls_ext_pack_func pack_func,
+ gnutls_ext_unpack_func unpack_func);
+
+int gnutls_session_ext_register(gnutls_session_t, const char *name, int type,
+ gnutls_ext_parse_type_t parse_point,
+ gnutls_ext_recv_func recv_func,
+ gnutls_ext_send_func send_func,
+ gnutls_ext_deinit_data_func deinit_func,
+ gnutls_ext_pack_func pack_func,
+ gnutls_ext_unpack_func unpack_func,
+ unsigned flags);
const char *gnutls_ext_get_name(unsigned int ext);
const char *gnutls_ext_get_name2(gnutls_session_t session, unsigned int tls_id,
@@ -3210,46 +3137,51 @@ const char *gnutls_ext_get_name2(gnutls_session_t session, unsigned int tls_id,
/* Public supplemental data related functions */
-typedef int (*gnutls_supp_recv_func) (gnutls_session_t session,
- const unsigned char * data, size_t data_size);
-typedef int (*gnutls_supp_send_func) (gnutls_session_t session,
- gnutls_buffer_t buf);
+typedef int (*gnutls_supp_recv_func)(gnutls_session_t session,
+ const unsigned char *data,
+ size_t data_size);
+typedef int (*gnutls_supp_send_func)(gnutls_session_t session,
+ gnutls_buffer_t buf);
int gnutls_supplemental_register(const char *name,
- gnutls_supplemental_data_format_type_t type,
- gnutls_supp_recv_func supp_recv_func,
- gnutls_supp_send_func supp_send_func);
-
-int gnutls_session_supplemental_register(gnutls_session_t session, const char *name,
- gnutls_supplemental_data_format_type_t type,
- gnutls_supp_recv_func supp_recv_func,
- gnutls_supp_send_func supp_send_func,
- unsigned int flags);
+ gnutls_supplemental_data_format_type_t type,
+ gnutls_supp_recv_func supp_recv_func,
+ gnutls_supp_send_func supp_send_func);
+
+int gnutls_session_supplemental_register(gnutls_session_t session,
+ const char *name,
+ gnutls_supplemental_data_format_type_t
+ type,
+ gnutls_supp_recv_func supp_recv_func,
+ gnutls_supp_send_func supp_send_func,
+ unsigned int flags);
-void gnutls_supplemental_recv(gnutls_session_t session, unsigned do_recv_supplemental);
+void gnutls_supplemental_recv(gnutls_session_t session,
+ unsigned do_recv_supplemental);
-void gnutls_supplemental_send(gnutls_session_t session, unsigned do_send_supplemental);
+void gnutls_supplemental_send(gnutls_session_t session,
+ unsigned do_send_supplemental);
/* Anti-replay related functions */
typedef struct gnutls_anti_replay_st *gnutls_anti_replay_t;
-int gnutls_anti_replay_init(gnutls_anti_replay_t *anti_replay);
+int gnutls_anti_replay_init(gnutls_anti_replay_t * anti_replay);
void gnutls_anti_replay_deinit(gnutls_anti_replay_t anti_replay);
void gnutls_anti_replay_set_window(gnutls_anti_replay_t anti_replay,
unsigned int window);
void gnutls_anti_replay_enable(gnutls_session_t session,
gnutls_anti_replay_t anti_replay);
-typedef int (*gnutls_db_add_func) (void *, time_t exp_time, const gnutls_datum_t *key,
- const gnutls_datum_t *data);
+typedef int (*gnutls_db_add_func)(void *, time_t exp_time,
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * data);
void gnutls_anti_replay_set_add_function(gnutls_anti_replay_t,
gnutls_db_add_func add_func);
void gnutls_anti_replay_set_ptr(gnutls_anti_replay_t, void *ptr);
-
/**
* gnutls_record_encryption_level_t:
* @GNUTLS_ENCRYPTION_LEVEL_INITIAL: initial level that doesn't involve any
@@ -3285,10 +3217,11 @@ typedef enum {
* Returns: Non zero on error.
* Since: 3.7.0
*/
-typedef int (*gnutls_handshake_read_func) (gnutls_session_t session,
- gnutls_record_encryption_level_t level,
- gnutls_handshake_description_t htype,
- const void *data, size_t data_size);
+typedef int (*gnutls_handshake_read_func)(gnutls_session_t session,
+ gnutls_record_encryption_level_t
+ level,
+ gnutls_handshake_description_t htype,
+ const void *data, size_t data_size);
void
gnutls_handshake_set_read_function(gnutls_session_t session,
@@ -3313,11 +3246,11 @@ gnutls_handshake_write(gnutls_session_t session,
* Returns: Non zero on error.
* Since: 3.7.0
*/
-typedef int (*gnutls_handshake_secret_func) (gnutls_session_t session,
- gnutls_record_encryption_level_t level,
- const void *secret_read,
- const void *secret_write,
- size_t secret_size);
+typedef int (*gnutls_handshake_secret_func)(gnutls_session_t session,
+ gnutls_record_encryption_level_t
+ level, const void *secret_read,
+ const void *secret_write,
+ size_t secret_size);
void
gnutls_handshake_set_secret_function(gnutls_session_t session,
@@ -3336,10 +3269,10 @@ gnutls_handshake_set_secret_function(gnutls_session_t session,
* Returns: Non zero on error.
* Since: 3.7.0
*/
-typedef int (*gnutls_alert_read_func) (gnutls_session_t session,
- gnutls_record_encryption_level_t level,
- gnutls_alert_level_t alert_level,
- gnutls_alert_description_t alert_desc);
+typedef int (*gnutls_alert_read_func)(gnutls_session_t session,
+ gnutls_record_encryption_level_t level,
+ gnutls_alert_level_t alert_level,
+ gnutls_alert_description_t alert_desc);
void
gnutls_alert_set_read_function(gnutls_session_t session,
@@ -3365,30 +3298,30 @@ unsigned gnutls_fips140_mode_enabled(void);
* Enumeration of different operational modes under FIPS140-2.
*/
typedef enum gnutls_fips_mode_t {
- GNUTLS_FIPS140_DISABLED = 0,
- GNUTLS_FIPS140_STRICT = 1,
- GNUTLS_FIPS140_SELFTESTS = 2,
- GNUTLS_FIPS140_LAX = 3,
- GNUTLS_FIPS140_LOG = 4
+ GNUTLS_FIPS140_DISABLED = 0,
+ GNUTLS_FIPS140_STRICT = 1,
+ GNUTLS_FIPS140_SELFTESTS = 2,
+ GNUTLS_FIPS140_LAX = 3,
+ GNUTLS_FIPS140_LOG = 4
} gnutls_fips_mode_t;
-#define GNUTLS_FIPS140_SET_MODE_THREAD 1
+# define GNUTLS_FIPS140_SET_MODE_THREAD 1
void gnutls_fips140_set_mode(gnutls_fips_mode_t mode, unsigned flags);
-#define GNUTLS_FIPS140_SET_LAX_MODE() do { \
+# define GNUTLS_FIPS140_SET_LAX_MODE() do { \
if (gnutls_fips140_mode_enabled()) \
gnutls_fips140_set_mode(GNUTLS_FIPS140_LAX, GNUTLS_FIPS140_SET_MODE_THREAD); \
} while(0)
-#define GNUTLS_FIPS140_SET_STRICT_MODE() do { \
+# define GNUTLS_FIPS140_SET_STRICT_MODE() do { \
if (gnutls_fips140_mode_enabled()) \
gnutls_fips140_set_mode(GNUTLS_FIPS140_STRICT, GNUTLS_FIPS140_SET_MODE_THREAD); \
} while(0)
typedef struct gnutls_fips140_context_st *gnutls_fips140_context_t;
-int gnutls_fips140_context_init(gnutls_fips140_context_t *context);
+int gnutls_fips140_context_init(gnutls_fips140_context_t * context);
void gnutls_fips140_context_deinit(gnutls_fips140_context_t context);
/**
@@ -3413,10 +3346,10 @@ void gnutls_fips140_context_deinit(gnutls_fips140_context_t context);
* Since: 3.7.3
*/
typedef enum {
- GNUTLS_FIPS140_OP_INITIAL,
- GNUTLS_FIPS140_OP_APPROVED,
- GNUTLS_FIPS140_OP_NOT_APPROVED,
- GNUTLS_FIPS140_OP_ERROR
+ GNUTLS_FIPS140_OP_INITIAL,
+ GNUTLS_FIPS140_OP_APPROVED,
+ GNUTLS_FIPS140_OP_NOT_APPROVED,
+ GNUTLS_FIPS140_OP_ERROR
} gnutls_fips140_operation_state_t;
gnutls_fips140_operation_state_t
@@ -3444,7 +3377,6 @@ typedef enum {
GNUTLS_KTLS_DUPLEX = GNUTLS_KTLS_RECV | GNUTLS_KTLS_SEND,
} gnutls_transport_ktls_enable_flags_t;
-
gnutls_transport_ktls_enable_flags_t
gnutls_transport_is_ktls_enabled(gnutls_session_t session);
@@ -3452,254 +3384,255 @@ gnutls_transport_is_ktls_enabled(gnutls_session_t session);
* comments.
*/
-#define GNUTLS_E_SUCCESS 0
-#define GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM -3
-#define GNUTLS_E_UNKNOWN_CIPHER_TYPE -6
-#define GNUTLS_E_LARGE_PACKET -7
-#define GNUTLS_E_UNSUPPORTED_VERSION_PACKET -8 /* GNUTLS_A_PROTOCOL_VERSION */
-#define GNUTLS_E_TLS_PACKET_DECODING_ERROR GNUTLS_E_UNEXPECTED_PACKET_LENGTH
-#define GNUTLS_E_UNEXPECTED_PACKET_LENGTH -9 /* GNUTLS_A_DECODE_ERROR */
-#define GNUTLS_E_INVALID_SESSION -10
-#define GNUTLS_E_FATAL_ALERT_RECEIVED -12
-#define GNUTLS_E_UNEXPECTED_PACKET -15 /* GNUTLS_A_UNEXPECTED_MESSAGE */
-#define GNUTLS_E_WARNING_ALERT_RECEIVED -16
-#define GNUTLS_E_ERROR_IN_FINISHED_PACKET -18
-#define GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET -19
-#define GNUTLS_E_UNKNOWN_CIPHER_SUITE -21 /* GNUTLS_A_HANDSHAKE_FAILURE */
-#define GNUTLS_E_UNWANTED_ALGORITHM -22
-#define GNUTLS_E_MPI_SCAN_FAILED -23
-#define GNUTLS_E_DECRYPTION_FAILED -24 /* GNUTLS_A_DECRYPTION_FAILED, GNUTLS_A_BAD_RECORD_MAC */
-#define GNUTLS_E_MEMORY_ERROR -25
-#define GNUTLS_E_DECOMPRESSION_FAILED -26 /* GNUTLS_A_DECOMPRESSION_FAILURE */
-#define GNUTLS_E_COMPRESSION_FAILED -27
-#define GNUTLS_E_AGAIN -28
-#define GNUTLS_E_EXPIRED -29
-#define GNUTLS_E_DB_ERROR -30
-#define GNUTLS_E_SRP_PWD_ERROR GNUTLS_E_KEYFILE_ERROR
-#define GNUTLS_E_KEYFILE_ERROR -31
-#define GNUTLS_E_INSUFFICIENT_CREDENTIALS -32
-#define GNUTLS_E_INSUFICIENT_CREDENTIALS GNUTLS_E_INSUFFICIENT_CREDENTIALS /* for backwards compatibility only */
-#define GNUTLS_E_INSUFFICIENT_CRED GNUTLS_E_INSUFFICIENT_CREDENTIALS
-#define GNUTLS_E_INSUFICIENT_CRED GNUTLS_E_INSUFFICIENT_CREDENTIALS /* for backwards compatibility only */
-
-#define GNUTLS_E_HASH_FAILED -33
-#define GNUTLS_E_BASE64_DECODING_ERROR -34
-
-#define GNUTLS_E_MPI_PRINT_FAILED -35
-#define GNUTLS_E_REHANDSHAKE -37 /* GNUTLS_A_NO_RENEGOTIATION */
-#define GNUTLS_E_GOT_APPLICATION_DATA -38
-#define GNUTLS_E_RECORD_LIMIT_REACHED -39
-#define GNUTLS_E_ENCRYPTION_FAILED -40
-
-#define GNUTLS_E_PK_ENCRYPTION_FAILED -44
-#define GNUTLS_E_PK_DECRYPTION_FAILED -45
-#define GNUTLS_E_PK_SIGN_FAILED -46
-#define GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION -47
-#define GNUTLS_E_KEY_USAGE_VIOLATION -48
-#define GNUTLS_E_NO_CERTIFICATE_FOUND -49 /* GNUTLS_A_BAD_CERTIFICATE */
-#define GNUTLS_E_INVALID_REQUEST -50
-#define GNUTLS_E_SHORT_MEMORY_BUFFER -51
-#define GNUTLS_E_INTERRUPTED -52
-#define GNUTLS_E_PUSH_ERROR -53
-#define GNUTLS_E_PULL_ERROR -54
-#define GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER -55 /* GNUTLS_A_ILLEGAL_PARAMETER */
-#define GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE -56
-#define GNUTLS_E_PKCS1_WRONG_PAD -57
-#define GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION -58
-#define GNUTLS_E_INTERNAL_ERROR -59
-#define GNUTLS_E_DH_PRIME_UNACCEPTABLE -63
-#define GNUTLS_E_FILE_ERROR -64
-#define GNUTLS_E_TOO_MANY_EMPTY_PACKETS -78
-#define GNUTLS_E_UNKNOWN_PK_ALGORITHM -80
-#define GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS -81
-#define GNUTLS_E_RECEIVED_DISALLOWED_NAME -82 /* GNUTLS_A_ILLEGAL_PARAMETER */
-#define GNUTLS_E_CERTIFICATE_REQUIRED -112 /* GNUTLS_A_CERTIFICATE_REQUIRED */
+# define GNUTLS_E_SUCCESS 0
+# define GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM -3
+# define GNUTLS_E_UNKNOWN_CIPHER_TYPE -6
+# define GNUTLS_E_LARGE_PACKET -7
+# define GNUTLS_E_UNSUPPORTED_VERSION_PACKET -8 /* GNUTLS_A_PROTOCOL_VERSION */
+# define GNUTLS_E_TLS_PACKET_DECODING_ERROR GNUTLS_E_UNEXPECTED_PACKET_LENGTH
+# define GNUTLS_E_UNEXPECTED_PACKET_LENGTH -9 /* GNUTLS_A_DECODE_ERROR */
+# define GNUTLS_E_INVALID_SESSION -10
+# define GNUTLS_E_FATAL_ALERT_RECEIVED -12
+# define GNUTLS_E_UNEXPECTED_PACKET -15 /* GNUTLS_A_UNEXPECTED_MESSAGE */
+# define GNUTLS_E_WARNING_ALERT_RECEIVED -16
+# define GNUTLS_E_ERROR_IN_FINISHED_PACKET -18
+# define GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET -19
+# define GNUTLS_E_UNKNOWN_CIPHER_SUITE -21
+ /* GNUTLS_A_HANDSHAKE_FAILURE */
+# define GNUTLS_E_UNWANTED_ALGORITHM -22
+# define GNUTLS_E_MPI_SCAN_FAILED -23
+# define GNUTLS_E_DECRYPTION_FAILED -24 /* GNUTLS_A_DECRYPTION_FAILED, GNUTLS_A_BAD_RECORD_MAC */
+# define GNUTLS_E_MEMORY_ERROR -25
+# define GNUTLS_E_DECOMPRESSION_FAILED -26 /* GNUTLS_A_DECOMPRESSION_FAILURE */
+# define GNUTLS_E_COMPRESSION_FAILED -27
+# define GNUTLS_E_AGAIN -28
+# define GNUTLS_E_EXPIRED -29
+# define GNUTLS_E_DB_ERROR -30
+# define GNUTLS_E_SRP_PWD_ERROR GNUTLS_E_KEYFILE_ERROR
+# define GNUTLS_E_KEYFILE_ERROR -31
+# define GNUTLS_E_INSUFFICIENT_CREDENTIALS -32
+# define GNUTLS_E_INSUFICIENT_CREDENTIALS GNUTLS_E_INSUFFICIENT_CREDENTIALS /* for backwards compatibility only */
+# define GNUTLS_E_INSUFFICIENT_CRED GNUTLS_E_INSUFFICIENT_CREDENTIALS
+# define GNUTLS_E_INSUFICIENT_CRED GNUTLS_E_INSUFFICIENT_CREDENTIALS /* for backwards compatibility only */
+
+# define GNUTLS_E_HASH_FAILED -33
+# define GNUTLS_E_BASE64_DECODING_ERROR -34
+
+# define GNUTLS_E_MPI_PRINT_FAILED -35
+# define GNUTLS_E_REHANDSHAKE -37 /* GNUTLS_A_NO_RENEGOTIATION */
+# define GNUTLS_E_GOT_APPLICATION_DATA -38
+# define GNUTLS_E_RECORD_LIMIT_REACHED -39
+# define GNUTLS_E_ENCRYPTION_FAILED -40
+
+# define GNUTLS_E_PK_ENCRYPTION_FAILED -44
+# define GNUTLS_E_PK_DECRYPTION_FAILED -45
+# define GNUTLS_E_PK_SIGN_FAILED -46
+# define GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION -47
+# define GNUTLS_E_KEY_USAGE_VIOLATION -48
+# define GNUTLS_E_NO_CERTIFICATE_FOUND -49 /* GNUTLS_A_BAD_CERTIFICATE */
+# define GNUTLS_E_INVALID_REQUEST -50
+# define GNUTLS_E_SHORT_MEMORY_BUFFER -51
+# define GNUTLS_E_INTERRUPTED -52
+# define GNUTLS_E_PUSH_ERROR -53
+# define GNUTLS_E_PULL_ERROR -54
+# define GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER -55/* GNUTLS_A_ILLEGAL_PARAMETER */
+# define GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE -56
+# define GNUTLS_E_PKCS1_WRONG_PAD -57
+# define GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION -58
+# define GNUTLS_E_INTERNAL_ERROR -59
+# define GNUTLS_E_DH_PRIME_UNACCEPTABLE -63
+# define GNUTLS_E_FILE_ERROR -64
+# define GNUTLS_E_TOO_MANY_EMPTY_PACKETS -78
+# define GNUTLS_E_UNKNOWN_PK_ALGORITHM -80
+# define GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS -81
+# define GNUTLS_E_RECEIVED_DISALLOWED_NAME -82 /* GNUTLS_A_ILLEGAL_PARAMETER */
+# define GNUTLS_E_CERTIFICATE_REQUIRED -112 /* GNUTLS_A_CERTIFICATE_REQUIRED */
/* returned if you need to generate temporary RSA
* parameters. These are needed for export cipher suites.
*/
-#define GNUTLS_E_NO_TEMPORARY_RSA_PARAMS -84
+# define GNUTLS_E_NO_TEMPORARY_RSA_PARAMS -84
-#define GNUTLS_E_NO_COMPRESSION_ALGORITHMS -86
-#define GNUTLS_E_NO_CIPHER_SUITES -87
+# define GNUTLS_E_NO_COMPRESSION_ALGORITHMS -86
+# define GNUTLS_E_NO_CIPHER_SUITES -87
-#define GNUTLS_E_OPENPGP_GETKEY_FAILED -88
-#define GNUTLS_E_PK_SIG_VERIFY_FAILED -89
+# define GNUTLS_E_OPENPGP_GETKEY_FAILED -88
+# define GNUTLS_E_PK_SIG_VERIFY_FAILED -89
-#define GNUTLS_E_ILLEGAL_SRP_USERNAME -90
-#define GNUTLS_E_SRP_PWD_PARSING_ERROR GNUTLS_E_KEYFILE_PARSING_ERROR
-#define GNUTLS_E_KEYFILE_PARSING_ERROR -91
-#define GNUTLS_E_NO_TEMPORARY_DH_PARAMS -93
+# define GNUTLS_E_ILLEGAL_SRP_USERNAME -90
+# define GNUTLS_E_SRP_PWD_PARSING_ERROR GNUTLS_E_KEYFILE_PARSING_ERROR
+# define GNUTLS_E_KEYFILE_PARSING_ERROR -91
+# define GNUTLS_E_NO_TEMPORARY_DH_PARAMS -93
/* For certificate and key stuff
*/
-#define GNUTLS_E_ASN1_ELEMENT_NOT_FOUND -67
-#define GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND -68
-#define GNUTLS_E_ASN1_DER_ERROR -69
-#define GNUTLS_E_ASN1_VALUE_NOT_FOUND -70
-#define GNUTLS_E_ASN1_GENERIC_ERROR -71
-#define GNUTLS_E_ASN1_VALUE_NOT_VALID -72
-#define GNUTLS_E_ASN1_TAG_ERROR -73
-#define GNUTLS_E_ASN1_TAG_IMPLICIT -74
-#define GNUTLS_E_ASN1_TYPE_ANY_ERROR -75
-#define GNUTLS_E_ASN1_SYNTAX_ERROR -76
-#define GNUTLS_E_ASN1_DER_OVERFLOW -77
-#define GNUTLS_E_OPENPGP_UID_REVOKED -79
-#define GNUTLS_E_CERTIFICATE_ERROR -43
-#define GNUTLS_E_X509_CERTIFICATE_ERROR GNUTLS_E_CERTIFICATE_ERROR
-#define GNUTLS_E_CERTIFICATE_KEY_MISMATCH -60
-#define GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE -61 /* GNUTLS_A_UNSUPPORTED_CERTIFICATE */
-#define GNUTLS_E_X509_UNKNOWN_SAN -62
-#define GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED -94
-#define GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE -95
-#define GNUTLS_E_UNKNOWN_HASH_ALGORITHM -96
-#define GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE -97
-#define GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE -98
-#define GNUTLS_E_INVALID_PASSWORD -99
-#define GNUTLS_E_MAC_VERIFY_FAILED -100 /* for PKCS #12 MAC */
-#define GNUTLS_E_CONSTRAINT_ERROR -101
-
-#define GNUTLS_E_WARNING_IA_IPHF_RECEIVED -102
-#define GNUTLS_E_WARNING_IA_FPHF_RECEIVED -103
-
-#define GNUTLS_E_IA_VERIFY_FAILED -104
-#define GNUTLS_E_UNKNOWN_ALGORITHM -105
-#define GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM -106
-#define GNUTLS_E_SAFE_RENEGOTIATION_FAILED -107
-#define GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED -108
-#define GNUTLS_E_UNKNOWN_SRP_USERNAME -109
-#define GNUTLS_E_PREMATURE_TERMINATION -110
-
-#define GNUTLS_E_MALFORMED_CIDR -111
-
-#define GNUTLS_E_BASE64_ENCODING_ERROR -201
-#define GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY -202 /* obsolete */
-#define GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY -202
-#define GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY -203
-
-#define GNUTLS_E_OPENPGP_KEYRING_ERROR -204
-#define GNUTLS_E_X509_UNSUPPORTED_OID -205
-
-#define GNUTLS_E_RANDOM_FAILED -206
-#define GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR -207
-
-#define GNUTLS_E_OPENPGP_SUBKEY_ERROR -208
-
-#define GNUTLS_E_CRYPTO_ALREADY_REGISTERED GNUTLS_E_ALREADY_REGISTERED
-#define GNUTLS_E_ALREADY_REGISTERED -209
-
-#define GNUTLS_E_HANDSHAKE_TOO_LARGE -210
-
-#define GNUTLS_E_CRYPTODEV_IOCTL_ERROR -211
-#define GNUTLS_E_CRYPTODEV_DEVICE_ERROR -212
-
-#define GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE -213
-#define GNUTLS_E_BAD_COOKIE -214
-#define GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR -215
-#define GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL -216
-#define GNUTLS_E_INSUFFICIENT_SECURITY -217
-
-#define GNUTLS_E_HEARTBEAT_PONG_RECEIVED -292
-#define GNUTLS_E_HEARTBEAT_PING_RECEIVED -293
-
-#define GNUTLS_E_UNRECOGNIZED_NAME -294
+# define GNUTLS_E_ASN1_ELEMENT_NOT_FOUND -67
+# define GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND -68
+# define GNUTLS_E_ASN1_DER_ERROR -69
+# define GNUTLS_E_ASN1_VALUE_NOT_FOUND -70
+# define GNUTLS_E_ASN1_GENERIC_ERROR -71
+# define GNUTLS_E_ASN1_VALUE_NOT_VALID -72
+# define GNUTLS_E_ASN1_TAG_ERROR -73
+# define GNUTLS_E_ASN1_TAG_IMPLICIT -74
+# define GNUTLS_E_ASN1_TYPE_ANY_ERROR -75
+# define GNUTLS_E_ASN1_SYNTAX_ERROR -76
+# define GNUTLS_E_ASN1_DER_OVERFLOW -77
+# define GNUTLS_E_OPENPGP_UID_REVOKED -79
+# define GNUTLS_E_CERTIFICATE_ERROR -43
+# define GNUTLS_E_X509_CERTIFICATE_ERROR GNUTLS_E_CERTIFICATE_ERROR
+# define GNUTLS_E_CERTIFICATE_KEY_MISMATCH -60
+# define GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE -61 /* GNUTLS_A_UNSUPPORTED_CERTIFICATE */
+# define GNUTLS_E_X509_UNKNOWN_SAN -62
+# define GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED -94
+# define GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE -95
+# define GNUTLS_E_UNKNOWN_HASH_ALGORITHM -96
+# define GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE -97
+# define GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE -98
+# define GNUTLS_E_INVALID_PASSWORD -99
+# define GNUTLS_E_MAC_VERIFY_FAILED -100/* for PKCS #12 MAC */
+# define GNUTLS_E_CONSTRAINT_ERROR -101
+
+# define GNUTLS_E_WARNING_IA_IPHF_RECEIVED -102
+# define GNUTLS_E_WARNING_IA_FPHF_RECEIVED -103
+
+# define GNUTLS_E_IA_VERIFY_FAILED -104
+# define GNUTLS_E_UNKNOWN_ALGORITHM -105
+# define GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM -106
+# define GNUTLS_E_SAFE_RENEGOTIATION_FAILED -107
+# define GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED -108
+# define GNUTLS_E_UNKNOWN_SRP_USERNAME -109
+# define GNUTLS_E_PREMATURE_TERMINATION -110
+
+# define GNUTLS_E_MALFORMED_CIDR -111
+
+# define GNUTLS_E_BASE64_ENCODING_ERROR -201
+# define GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY -202 /* obsolete */
+# define GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY -202
+# define GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY -203
+
+# define GNUTLS_E_OPENPGP_KEYRING_ERROR -204
+# define GNUTLS_E_X509_UNSUPPORTED_OID -205
+
+# define GNUTLS_E_RANDOM_FAILED -206
+# define GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR -207
+
+# define GNUTLS_E_OPENPGP_SUBKEY_ERROR -208
+
+# define GNUTLS_E_CRYPTO_ALREADY_REGISTERED GNUTLS_E_ALREADY_REGISTERED
+# define GNUTLS_E_ALREADY_REGISTERED -209
+
+# define GNUTLS_E_HANDSHAKE_TOO_LARGE -210
+
+# define GNUTLS_E_CRYPTODEV_IOCTL_ERROR -211
+# define GNUTLS_E_CRYPTODEV_DEVICE_ERROR -212
+
+# define GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE -213
+# define GNUTLS_E_BAD_COOKIE -214
+# define GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR -215
+# define GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL -216
+# define GNUTLS_E_INSUFFICIENT_SECURITY -217
+
+# define GNUTLS_E_HEARTBEAT_PONG_RECEIVED -292
+# define GNUTLS_E_HEARTBEAT_PING_RECEIVED -293
+
+# define GNUTLS_E_UNRECOGNIZED_NAME -294
/* PKCS11 related */
-#define GNUTLS_E_PKCS11_ERROR -300
-#define GNUTLS_E_PKCS11_LOAD_ERROR -301
-#define GNUTLS_E_PARSING_ERROR -302
-#define GNUTLS_E_PKCS11_PIN_ERROR -303
-
-#define GNUTLS_E_PKCS11_SLOT_ERROR -305
-#define GNUTLS_E_LOCKING_ERROR -306
-#define GNUTLS_E_PKCS11_ATTRIBUTE_ERROR -307
-#define GNUTLS_E_PKCS11_DEVICE_ERROR -308
-#define GNUTLS_E_PKCS11_DATA_ERROR -309
-#define GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR -310
-#define GNUTLS_E_PKCS11_KEY_ERROR -311
-#define GNUTLS_E_PKCS11_PIN_EXPIRED -312
-#define GNUTLS_E_PKCS11_PIN_LOCKED -313
-#define GNUTLS_E_PKCS11_SESSION_ERROR -314
-#define GNUTLS_E_PKCS11_SIGNATURE_ERROR -315
-#define GNUTLS_E_PKCS11_TOKEN_ERROR -316
-#define GNUTLS_E_PKCS11_USER_ERROR -317
-
-#define GNUTLS_E_CRYPTO_INIT_FAILED -318
-#define GNUTLS_E_TIMEDOUT -319
-#define GNUTLS_E_USER_ERROR -320
-#define GNUTLS_E_ECC_NO_SUPPORTED_CURVES -321
-#define GNUTLS_E_ECC_UNSUPPORTED_CURVE -322
-#define GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE -323
-#define GNUTLS_E_CERTIFICATE_LIST_UNSORTED -324
-#define GNUTLS_E_ILLEGAL_PARAMETER -325 /* GNUTLS_A_ILLEGAL_PARAMETER */
-#define GNUTLS_E_NO_PRIORITIES_WERE_SET -326
-#define GNUTLS_E_X509_UNSUPPORTED_EXTENSION -327
-#define GNUTLS_E_SESSION_EOF -328
-
-#define GNUTLS_E_TPM_ERROR -329
-#define GNUTLS_E_TPM_KEY_PASSWORD_ERROR -330
-#define GNUTLS_E_TPM_SRK_PASSWORD_ERROR -331
-#define GNUTLS_E_TPM_SESSION_ERROR -332
-#define GNUTLS_E_TPM_KEY_NOT_FOUND -333
-#define GNUTLS_E_TPM_UNINITIALIZED -334
-#define GNUTLS_E_TPM_NO_LIB -335
-
-#define GNUTLS_E_NO_CERTIFICATE_STATUS -340
-#define GNUTLS_E_OCSP_RESPONSE_ERROR -341
-#define GNUTLS_E_RANDOM_DEVICE_ERROR -342
-#define GNUTLS_E_AUTH_ERROR -343
-#define GNUTLS_E_NO_APPLICATION_PROTOCOL -344
-#define GNUTLS_E_SOCKETS_INIT_ERROR -345
-#define GNUTLS_E_KEY_IMPORT_FAILED -346
-#define GNUTLS_E_INAPPROPRIATE_FALLBACK -347 /*GNUTLS_A_INAPPROPRIATE_FALLBACK*/
-#define GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR -348
-#define GNUTLS_E_PRIVKEY_VERIFICATION_ERROR -349
-#define GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH -350 /*GNUTLS_A_DECODE_ERROR*/
-#define GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING -351
-
-#define GNUTLS_E_SELF_TEST_ERROR -400
-#define GNUTLS_E_NO_SELF_TEST -401
-#define GNUTLS_E_LIB_IN_ERROR_STATE -402
-#define GNUTLS_E_PK_GENERATION_ERROR -403
-#define GNUTLS_E_IDNA_ERROR -404
-
-#define GNUTLS_E_NEED_FALLBACK -405
-#define GNUTLS_E_SESSION_USER_ID_CHANGED -406
-#define GNUTLS_E_HANDSHAKE_DURING_FALSE_START -407
-#define GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE -408
-#define GNUTLS_E_PK_INVALID_PUBKEY -409
-#define GNUTLS_E_PK_INVALID_PRIVKEY -410
-#define GNUTLS_E_NOT_YET_ACTIVATED -411
-#define GNUTLS_E_INVALID_UTF8_STRING -412
-#define GNUTLS_E_NO_EMBEDDED_DATA -413
-#define GNUTLS_E_INVALID_UTF8_EMAIL -414
-#define GNUTLS_E_INVALID_PASSWORD_STRING -415
-#define GNUTLS_E_CERTIFICATE_TIME_ERROR -416
-#define GNUTLS_E_RECORD_OVERFLOW -417 /* GNUTLS_A_RECORD_OVERFLOW */
-#define GNUTLS_E_ASN1_TIME_ERROR -418
-#define GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY -419
-#define GNUTLS_E_PK_INVALID_PUBKEY_PARAMS -420
-#define GNUTLS_E_PK_NO_VALIDATION_PARAMS -421
-#define GNUTLS_E_OCSP_MISMATCH_WITH_CERTS -422
-
-#define GNUTLS_E_NO_COMMON_KEY_SHARE -423
-#define GNUTLS_E_REAUTH_REQUEST -424
-#define GNUTLS_E_TOO_MANY_MATCHES -425
-#define GNUTLS_E_CRL_VERIFICATION_ERROR -426
-#define GNUTLS_E_MISSING_EXTENSION -427
-#define GNUTLS_E_DB_ENTRY_EXISTS -428
-#define GNUTLS_E_EARLY_DATA_REJECTED -429
-#define GNUTLS_E_X509_DUPLICATE_EXTENSION -430
-
-#define GNUTLS_E_UNIMPLEMENTED_FEATURE -1250
+# define GNUTLS_E_PKCS11_ERROR -300
+# define GNUTLS_E_PKCS11_LOAD_ERROR -301
+# define GNUTLS_E_PARSING_ERROR -302
+# define GNUTLS_E_PKCS11_PIN_ERROR -303
+
+# define GNUTLS_E_PKCS11_SLOT_ERROR -305
+# define GNUTLS_E_LOCKING_ERROR -306
+# define GNUTLS_E_PKCS11_ATTRIBUTE_ERROR -307
+# define GNUTLS_E_PKCS11_DEVICE_ERROR -308
+# define GNUTLS_E_PKCS11_DATA_ERROR -309
+# define GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR -310
+# define GNUTLS_E_PKCS11_KEY_ERROR -311
+# define GNUTLS_E_PKCS11_PIN_EXPIRED -312
+# define GNUTLS_E_PKCS11_PIN_LOCKED -313
+# define GNUTLS_E_PKCS11_SESSION_ERROR -314
+# define GNUTLS_E_PKCS11_SIGNATURE_ERROR -315
+# define GNUTLS_E_PKCS11_TOKEN_ERROR -316
+# define GNUTLS_E_PKCS11_USER_ERROR -317
+
+# define GNUTLS_E_CRYPTO_INIT_FAILED -318
+# define GNUTLS_E_TIMEDOUT -319
+# define GNUTLS_E_USER_ERROR -320
+# define GNUTLS_E_ECC_NO_SUPPORTED_CURVES -321
+# define GNUTLS_E_ECC_UNSUPPORTED_CURVE -322
+# define GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE -323
+# define GNUTLS_E_CERTIFICATE_LIST_UNSORTED -324
+# define GNUTLS_E_ILLEGAL_PARAMETER -325/* GNUTLS_A_ILLEGAL_PARAMETER */
+# define GNUTLS_E_NO_PRIORITIES_WERE_SET -326
+# define GNUTLS_E_X509_UNSUPPORTED_EXTENSION -327
+# define GNUTLS_E_SESSION_EOF -328
+
+# define GNUTLS_E_TPM_ERROR -329
+# define GNUTLS_E_TPM_KEY_PASSWORD_ERROR -330
+# define GNUTLS_E_TPM_SRK_PASSWORD_ERROR -331
+# define GNUTLS_E_TPM_SESSION_ERROR -332
+# define GNUTLS_E_TPM_KEY_NOT_FOUND -333
+# define GNUTLS_E_TPM_UNINITIALIZED -334
+# define GNUTLS_E_TPM_NO_LIB -335
+
+# define GNUTLS_E_NO_CERTIFICATE_STATUS -340
+# define GNUTLS_E_OCSP_RESPONSE_ERROR -341
+# define GNUTLS_E_RANDOM_DEVICE_ERROR -342
+# define GNUTLS_E_AUTH_ERROR -343
+# define GNUTLS_E_NO_APPLICATION_PROTOCOL -344
+# define GNUTLS_E_SOCKETS_INIT_ERROR -345
+# define GNUTLS_E_KEY_IMPORT_FAILED -346
+# define GNUTLS_E_INAPPROPRIATE_FALLBACK -347 /*GNUTLS_A_INAPPROPRIATE_FALLBACK */
+# define GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR -348
+# define GNUTLS_E_PRIVKEY_VERIFICATION_ERROR -349
+# define GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH -350 /*GNUTLS_A_DECODE_ERROR */
+# define GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING -351
+
+# define GNUTLS_E_SELF_TEST_ERROR -400
+# define GNUTLS_E_NO_SELF_TEST -401
+# define GNUTLS_E_LIB_IN_ERROR_STATE -402
+# define GNUTLS_E_PK_GENERATION_ERROR -403
+# define GNUTLS_E_IDNA_ERROR -404
+
+# define GNUTLS_E_NEED_FALLBACK -405
+# define GNUTLS_E_SESSION_USER_ID_CHANGED -406
+# define GNUTLS_E_HANDSHAKE_DURING_FALSE_START -407
+# define GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE -408
+# define GNUTLS_E_PK_INVALID_PUBKEY -409
+# define GNUTLS_E_PK_INVALID_PRIVKEY -410
+# define GNUTLS_E_NOT_YET_ACTIVATED -411
+# define GNUTLS_E_INVALID_UTF8_STRING -412
+# define GNUTLS_E_NO_EMBEDDED_DATA -413
+# define GNUTLS_E_INVALID_UTF8_EMAIL -414
+# define GNUTLS_E_INVALID_PASSWORD_STRING -415
+# define GNUTLS_E_CERTIFICATE_TIME_ERROR -416
+# define GNUTLS_E_RECORD_OVERFLOW -417 /* GNUTLS_A_RECORD_OVERFLOW */
+# define GNUTLS_E_ASN1_TIME_ERROR -418
+# define GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY -419
+# define GNUTLS_E_PK_INVALID_PUBKEY_PARAMS -420
+# define GNUTLS_E_PK_NO_VALIDATION_PARAMS -421
+# define GNUTLS_E_OCSP_MISMATCH_WITH_CERTS -422
+
+# define GNUTLS_E_NO_COMMON_KEY_SHARE -423
+# define GNUTLS_E_REAUTH_REQUEST -424
+# define GNUTLS_E_TOO_MANY_MATCHES -425
+# define GNUTLS_E_CRL_VERIFICATION_ERROR -426
+# define GNUTLS_E_MISSING_EXTENSION -427
+# define GNUTLS_E_DB_ENTRY_EXISTS -428
+# define GNUTLS_E_EARLY_DATA_REJECTED -429
+# define GNUTLS_E_X509_DUPLICATE_EXTENSION -430
+
+# define GNUTLS_E_UNIMPLEMENTED_FEATURE -1250
/* Internal errors of the library; will never be returned
* to a calling application */
-#define GNUTLS_E_INT_RET_0 -1251
-#define GNUTLS_E_INT_CHECK_AGAIN -1252
+# define GNUTLS_E_INT_RET_0 -1251
+# define GNUTLS_E_INT_CHECK_AGAIN -1252
-#define GNUTLS_E_APPLICATION_ERROR_MAX -65000
-#define GNUTLS_E_APPLICATION_ERROR_MIN -65500
+# define GNUTLS_E_APPLICATION_ERROR_MAX -65000
+# define GNUTLS_E_APPLICATION_ERROR_MIN -65500
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -3707,6 +3640,6 @@ gnutls_transport_is_ktls_enabled(gnutls_session_t session);
#endif
/* *INDENT-ON* */
-#include <gnutls/compat.h>
+# include <gnutls/compat.h>
-#endif /* GNUTLS_GNUTLS_H */
+#endif /* GNUTLS_GNUTLS_H */
diff --git a/lib/includes/gnutls/gnutlsxx.h b/lib/includes/gnutls/gnutlsxx.h
index 23bbd4ea36..2414f36b60 100644
--- a/lib/includes/gnutls/gnutlsxx.h
+++ b/lib/includes/gnutls/gnutlsxx.h
@@ -21,37 +21,35 @@
*/
#ifndef GNUTLS_GNUTLSXX_H
-#define GNUTLS_GNUTLSXX_H
+# define GNUTLS_GNUTLSXX_H
-#include <exception>
-#include <vector>
-#include <gnutls/gnutls.h>
+# include <exception>
+# include <vector>
+# include <gnutls/gnutls.h>
namespace gnutls {
class noncopyable {
- protected:
+ protected:
noncopyable() {
} ~noncopyable() {
- } private:
+ } private:
// These are non-implemented.
noncopyable(const noncopyable &);
noncopyable & operator=(const noncopyable &);
};
-
class exception:public std::exception {
- public:
+ public:
explicit exception(int x);
const char *what() const throw();
int get_code();
- protected:
+ protected:
int retcode;
};
-
class dh_params:private noncopyable {
- public:
+ public:
dh_params();
~dh_params();
void import_raw(const gnutls_datum_t & prime,
@@ -62,19 +60,18 @@ namespace gnutls {
void export_pkcs3(gnutls_x509_crt_fmt_t format,
unsigned char *params_data,
- size_t * params_data_size);
+ size_t *params_data_size);
void export_raw(gnutls_datum_t & prime,
gnutls_datum_t & generator);
gnutls_dh_params_t get_params_t() const;
dh_params & operator=(const dh_params & src);
- protected:
+ protected:
gnutls_dh_params_t params;
};
-
class rsa_params:private noncopyable {
- public:
+ public:
rsa_params();
~rsa_params();
void import_raw(const gnutls_datum_t & m,
@@ -89,21 +86,21 @@ namespace gnutls {
void export_pkcs1(gnutls_x509_crt_fmt_t format,
unsigned char *params_data,
- size_t * params_data_size);
+ size_t *params_data_size);
void export_raw(gnutls_datum_t & m, gnutls_datum_t & e,
gnutls_datum_t & d, gnutls_datum_t & p,
gnutls_datum_t & q, gnutls_datum_t & u);
gnutls_rsa_params_t get_params_t() const;
rsa_params & operator=(const rsa_params & src);
- protected:
+ protected:
gnutls_rsa_params_t params;
};
class session:private noncopyable {
- protected:
+ protected:
gnutls_session_t s;
- public:
+ public:
explicit session(unsigned int);
virtual ~ session();
@@ -162,11 +159,10 @@ namespace gnutls {
void set_data(const void *session_data,
size_t session_data_size);
void get_data(void *session_data,
- size_t * session_data_size) const;
+ size_t *session_data_size) const;
void get_data(gnutls_session_t session,
gnutls_datum_t & data) const;
- void get_id(void *session_id,
- size_t * session_id_size) const;
+ void get_id(void *session_id, size_t *session_id_size) const;
bool is_resumed() const;
@@ -184,13 +180,12 @@ namespace gnutls {
const;
void set_transport_lowat(size_t num);
- void set_transport_push_function(gnutls_push_func
- push_func);
+ void set_transport_push_function(gnutls_push_func push_func);
void set_transport_vec_push_function(gnutls_vec_push_func
vec_push_func);
- void set_transport_pull_function(gnutls_pull_func
- pull_func);
- void set_transport_pull_timeout_function (gnutls_pull_timeout_func pull_timeout_func);
+ void set_transport_pull_function(gnutls_pull_func pull_func);
+ void set_transport_pull_timeout_function
+ (gnutls_pull_timeout_func pull_timeout_func);
void set_user_ptr(void *ptr);
void *get_user_ptr() const;
@@ -227,7 +222,7 @@ namespace gnutls {
// interface for databases
class DB:private noncopyable {
- public:
+ public:
virtual ~ DB() = 0;
virtual bool store(const gnutls_datum_t & key,
const gnutls_datum_t & data) = 0;
@@ -237,7 +232,7 @@ namespace gnutls {
};
class server_session:public session {
- public:
+ public:
server_session();
explicit server_session(int flags);
~server_session();
@@ -253,7 +248,7 @@ namespace gnutls {
const char *get_srp_username() const;
const char *get_psk_username() const;
- void get_server_name(void *data, size_t * data_length,
+ void get_server_name(void *data, size_t *data_length,
unsigned int *type,
unsigned int indx) const;
@@ -262,7 +257,7 @@ namespace gnutls {
};
class client_session:public session {
- public:
+ public:
client_session();
explicit client_session(int flags);
~client_session();
@@ -274,23 +269,22 @@ namespace gnutls {
bool get_request_status();
};
-
class credentials:private noncopyable {
- public:
+ public:
virtual ~ credentials() {
} gnutls_credentials_type_t get_type() const;
- protected:
+ protected:
friend class session;
explicit credentials(gnutls_credentials_type_t t);
void *ptr() const;
void set_ptr(void *ptr);
gnutls_credentials_type_t type;
- private:
+ private:
void *cred;
};
class certificate_credentials:public credentials {
- public:
+ public:
~certificate_credentials();
certificate_credentials();
@@ -331,7 +325,6 @@ namespace gnutls {
int cert_list_size,
gnutls_x509_privkey_t key);
-
void set_simple_pkcs12_file(const char *pkcs12file,
gnutls_x509_crt_fmt_t type,
const char *password);
@@ -339,68 +332,63 @@ namespace gnutls {
void set_retrieve_function
(gnutls_certificate_retrieve_function * func);
- protected:
+ protected:
gnutls_certificate_credentials_t cred;
};
class certificate_server_credentials:public certificate_credentials {
- public:
+ public:
void set_params_function(gnutls_params_function * func);
};
class certificate_client_credentials:public certificate_credentials {
- public:
+ public:
};
-
-
-
class anon_server_credentials:public credentials {
- public:
+ public:
anon_server_credentials();
~anon_server_credentials();
void set_dh_params(const dh_params & params);
void set_params_function(gnutls_params_function * func);
- protected:
+ protected:
gnutls_anon_server_credentials_t cred;
};
class anon_client_credentials:public credentials {
- public:
+ public:
anon_client_credentials();
~anon_client_credentials();
- protected:
+ protected:
gnutls_anon_client_credentials_t cred;
};
-
class srp_server_credentials:public credentials {
- public:
+ public:
srp_server_credentials();
~srp_server_credentials();
void set_credentials_file(const char *password_file,
const char *password_conf_file);
void set_credentials_function
(gnutls_srp_server_credentials_function * func);
- protected:
+ protected:
gnutls_srp_server_credentials_t cred;
};
class srp_client_credentials:public credentials {
- public:
+ public:
srp_client_credentials();
~srp_client_credentials();
void set_credentials(const char *username,
const char *password);
void set_credentials_function
(gnutls_srp_client_credentials_function * func);
- protected:
+ protected:
gnutls_srp_client_credentials_t cred;
};
-
class psk_server_credentials:public credentials {
- public:
+ public:
psk_server_credentials();
~psk_server_credentials();
void set_credentials_file(const char *password_file);
@@ -408,12 +396,12 @@ namespace gnutls {
(gnutls_psk_server_credentials_function * func);
void set_dh_params(const dh_params & params);
void set_params_function(gnutls_params_function * func);
- protected:
+ protected:
gnutls_psk_server_credentials_t cred;
};
class psk_client_credentials:public credentials {
- public:
+ public:
psk_client_credentials();
~psk_client_credentials();
void set_credentials(const char *username,
@@ -421,11 +409,10 @@ namespace gnutls {
gnutls_psk_key_flags flags);
void set_credentials_function
(gnutls_psk_client_credentials_function * func);
- protected:
+ protected:
gnutls_psk_client_credentials_t cred;
};
-
} /* namespace */
-#endif /* GNUTLS_GNUTLSXX_H */
+#endif /* GNUTLS_GNUTLSXX_H */
diff --git a/lib/includes/gnutls/ocsp.h b/lib/includes/gnutls/ocsp.h
index 87806cfd70..63945c5c13 100644
--- a/lib/includes/gnutls/ocsp.h
+++ b/lib/includes/gnutls/ocsp.h
@@ -24,10 +24,10 @@
*/
#ifndef GNUTLS_OCSP_H
-#define GNUTLS_OCSP_H
+# define GNUTLS_OCSP_H
-#include <gnutls/gnutls.h>
-#include <gnutls/x509.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/x509.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -35,7 +35,7 @@ extern "C" {
#endif
/* *INDENT-ON* */
-#define GNUTLS_OCSP_NONCE "1.3.6.1.5.5.7.48.1.2"
+# define GNUTLS_OCSP_NONCE "1.3.6.1.5.5.7.48.1.2"
/**
* gnutls_ocsp_print_formats_t:
@@ -147,8 +147,7 @@ typedef const struct gnutls_ocsp_req_int *gnutls_ocsp_req_const_t;
int gnutls_ocsp_req_init(gnutls_ocsp_req_t * req);
void gnutls_ocsp_req_deinit(gnutls_ocsp_req_t req);
-int gnutls_ocsp_req_import(gnutls_ocsp_req_t req,
- const gnutls_datum_t * data);
+int gnutls_ocsp_req_import(gnutls_ocsp_req_t req, const gnutls_datum_t * data);
int gnutls_ocsp_req_export(gnutls_ocsp_req_const_t req, gnutls_datum_t * data);
int gnutls_ocsp_req_print(gnutls_ocsp_req_const_t req,
gnutls_ocsp_print_formats_t format,
@@ -171,8 +170,7 @@ int gnutls_ocsp_req_add_cert_id(gnutls_ocsp_req_t req,
const gnutls_datum_t * serial_number);
int gnutls_ocsp_req_add_cert(gnutls_ocsp_req_t req,
gnutls_digest_algorithm_t digest,
- gnutls_x509_crt_t issuer,
- gnutls_x509_crt_t cert);
+ gnutls_x509_crt_t issuer, gnutls_x509_crt_t cert);
int gnutls_ocsp_req_get_extension(gnutls_ocsp_req_const_t req,
unsigned indx,
@@ -185,8 +183,7 @@ int gnutls_ocsp_req_set_extension(gnutls_ocsp_req_t req,
const gnutls_datum_t * data);
int gnutls_ocsp_req_get_nonce(gnutls_ocsp_req_const_t req,
- unsigned int *critical,
- gnutls_datum_t * nonce);
+ unsigned int *critical, gnutls_datum_t * nonce);
int gnutls_ocsp_req_set_nonce(gnutls_ocsp_req_t req,
unsigned int critical,
const gnutls_datum_t * nonce);
@@ -207,8 +204,7 @@ int gnutls_ocsp_resp_import2(gnutls_ocsp_resp_t resp,
int gnutls_ocsp_resp_export(gnutls_ocsp_resp_const_t resp,
gnutls_datum_t * data);
int gnutls_ocsp_resp_export2(gnutls_ocsp_resp_const_t resp,
- gnutls_datum_t * data,
- gnutls_x509_crt_fmt_t fmt);
+ gnutls_datum_t * data, gnutls_x509_crt_fmt_t fmt);
int gnutls_ocsp_resp_print(gnutls_ocsp_resp_const_t resp,
gnutls_ocsp_print_formats_t format,
gnutls_datum_t * out);
@@ -216,24 +212,21 @@ int gnutls_ocsp_resp_print(gnutls_ocsp_resp_const_t resp,
int gnutls_ocsp_resp_get_status(gnutls_ocsp_resp_const_t resp);
int gnutls_ocsp_resp_get_response(gnutls_ocsp_resp_const_t resp,
gnutls_datum_t *
- response_type_oid,
- gnutls_datum_t * response);
+ response_type_oid, gnutls_datum_t * response);
int gnutls_ocsp_resp_get_version(gnutls_ocsp_resp_const_t resp);
int gnutls_ocsp_resp_get_responder(gnutls_ocsp_resp_const_t resp,
gnutls_datum_t * dn);
int gnutls_ocsp_resp_get_responder2(gnutls_ocsp_resp_const_t resp,
- gnutls_datum_t * dn,
- unsigned flags);
+ gnutls_datum_t * dn, unsigned flags);
/* the raw key ID of the responder */
-#define GNUTLS_OCSP_RESP_ID_KEY 1
+# define GNUTLS_OCSP_RESP_ID_KEY 1
/* the raw DN of the responder */
-#define GNUTLS_OCSP_RESP_ID_DN 2
+# define GNUTLS_OCSP_RESP_ID_DN 2
int
gnutls_ocsp_resp_get_responder_raw_id(gnutls_ocsp_resp_const_t resp,
- unsigned type,
- gnutls_datum_t * raw);
+ unsigned type, gnutls_datum_t * raw);
time_t gnutls_ocsp_resp_get_produced(gnutls_ocsp_resp_const_t resp);
int gnutls_ocsp_resp_get_single(gnutls_ocsp_resp_const_t resp,
@@ -253,19 +246,16 @@ int gnutls_ocsp_resp_get_extension(gnutls_ocsp_resp_const_t resp,
unsigned int *critical,
gnutls_datum_t * data);
int gnutls_ocsp_resp_get_nonce(gnutls_ocsp_resp_const_t resp,
- unsigned int *critical,
- gnutls_datum_t * nonce);
+ unsigned int *critical, gnutls_datum_t * nonce);
int gnutls_ocsp_resp_get_signature_algorithm(gnutls_ocsp_resp_const_t resp);
int gnutls_ocsp_resp_get_signature(gnutls_ocsp_resp_const_t resp,
gnutls_datum_t * sig);
int gnutls_ocsp_resp_get_certs(gnutls_ocsp_resp_const_t resp,
- gnutls_x509_crt_t ** certs,
- size_t * ncerts);
+ gnutls_x509_crt_t ** certs, size_t *ncerts);
int gnutls_ocsp_resp_verify_direct(gnutls_ocsp_resp_const_t resp,
gnutls_x509_crt_t issuer,
- unsigned int *verify,
- unsigned int flags);
+ unsigned int *verify, unsigned int flags);
int gnutls_ocsp_resp_verify(gnutls_ocsp_resp_const_t resp,
gnutls_x509_trust_list_t trustlist,
unsigned int *verify, unsigned int flags);
@@ -274,11 +264,10 @@ int gnutls_ocsp_resp_check_crt(gnutls_ocsp_resp_const_t resp,
unsigned int indx, gnutls_x509_crt_t crt);
int
-gnutls_ocsp_resp_list_import2(gnutls_ocsp_resp_t **ocsps,
- unsigned int *size,
- const gnutls_datum_t *resp_data,
- gnutls_x509_crt_fmt_t format,
- unsigned int flags);
+gnutls_ocsp_resp_list_import2(gnutls_ocsp_resp_t ** ocsps,
+ unsigned int *size,
+ const gnutls_datum_t * resp_data,
+ gnutls_x509_crt_fmt_t format, unsigned int flags);
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -286,4 +275,4 @@ gnutls_ocsp_resp_list_import2(gnutls_ocsp_resp_t **ocsps,
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_OCSP_H */
+#endif /* GNUTLS_OCSP_H */
diff --git a/lib/includes/gnutls/openpgp.h b/lib/includes/gnutls/openpgp.h
index 632ffb1dc0..6c4dd5d827 100644
--- a/lib/includes/gnutls/openpgp.h
+++ b/lib/includes/gnutls/openpgp.h
@@ -25,10 +25,10 @@
*/
#ifndef GNUTLS_OPENPGP_H
-#define GNUTLS_OPENPGP_H
+# define GNUTLS_OPENPGP_H
-#include <gnutls/gnutls.h>
-#include <limits.h>
+# include <gnutls/gnutls.h>
+# include <limits.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -51,8 +51,8 @@ typedef enum gnutls_openpgp_crt_fmt {
GNUTLS_OPENPGP_FMT_BASE64
} gnutls_openpgp_crt_fmt_t;
-#define GNUTLS_OPENPGP_KEYID_SIZE 8
-#define GNUTLS_OPENPGP_V4_FINGERPRINT_SIZE 20
+# define GNUTLS_OPENPGP_KEYID_SIZE 8
+# define GNUTLS_OPENPGP_V4_FINGERPRINT_SIZE 20
typedef unsigned char
gnutls_openpgp_keyid_t[GNUTLS_OPENPGP_KEYID_SIZE];
@@ -60,164 +60,202 @@ typedef unsigned char
*/
/* initializes the memory for gnutls_openpgp_crt_t struct */
-int gnutls_openpgp_crt_init(gnutls_openpgp_crt_t * key) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_init(gnutls_openpgp_crt_t *
+ key) _GNUTLS_GCC_ATTR_DEPRECATED;
/* frees all memory */
-void gnutls_openpgp_crt_deinit(gnutls_openpgp_crt_t key) _GNUTLS_GCC_ATTR_DEPRECATED;
+void gnutls_openpgp_crt_deinit(gnutls_openpgp_crt_t key)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_import(gnutls_openpgp_crt_t key,
const gnutls_datum_t * data,
- gnutls_openpgp_crt_fmt_t format) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_openpgp_crt_fmt_t format)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_export(gnutls_openpgp_crt_t key,
gnutls_openpgp_crt_fmt_t format,
void *output_data,
- size_t * output_data_size) _GNUTLS_GCC_ATTR_DEPRECATED;
+ size_t *output_data_size)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_export2(gnutls_openpgp_crt_t key,
gnutls_openpgp_crt_fmt_t format,
- gnutls_datum_t * out) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_datum_t *
+ out) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_print(gnutls_openpgp_crt_t cert,
gnutls_certificate_print_formats_t
- format, gnutls_datum_t * out) _GNUTLS_GCC_ATTR_DEPRECATED;
+ format,
+ gnutls_datum_t * out) _GNUTLS_GCC_ATTR_DEPRECATED;
/* The key_usage flags are defined in gnutls.h. They are
* the GNUTLS_KEY_* definitions.
*/
-#define GNUTLS_OPENPGP_MASTER_KEYID_IDX INT_MAX
+# define GNUTLS_OPENPGP_MASTER_KEYID_IDX INT_MAX
int gnutls_openpgp_crt_get_key_usage(gnutls_openpgp_crt_t key,
- unsigned int *key_usage) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_crt_get_fingerprint(gnutls_openpgp_crt_t key,
- void *fpr, size_t * fprlen) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_crt_get_subkey_fingerprint(gnutls_openpgp_crt_t
- key,
- unsigned int idx,
- void *fpr, size_t * fprlen) _GNUTLS_GCC_ATTR_DEPRECATED;
+ unsigned int *key_usage)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_get_fingerprint(gnutls_openpgp_crt_t key, void *fpr,
+ size_t *fprlen)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_get_subkey_fingerprint(gnutls_openpgp_crt_t key,
+ unsigned int idx, void *fpr,
+ size_t *fprlen)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_get_name(gnutls_openpgp_crt_t key,
- int idx, char *buf, size_t * sizeof_buf) _GNUTLS_GCC_ATTR_DEPRECATED;
+ int idx, char *buf,
+ size_t *sizeof_buf) _GNUTLS_GCC_ATTR_DEPRECATED;
gnutls_pk_algorithm_t
gnutls_openpgp_crt_get_pk_algorithm(gnutls_openpgp_crt_t key,
- unsigned int *bits) _GNUTLS_GCC_ATTR_DEPRECATED;
+ unsigned int *bits)
+_GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_crt_get_version(gnutls_openpgp_crt_t key) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_get_version(gnutls_openpgp_crt_t key)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
-time_t gnutls_openpgp_crt_get_creation_time(gnutls_openpgp_crt_t key) _GNUTLS_GCC_ATTR_DEPRECATED;
-time_t gnutls_openpgp_crt_get_expiration_time(gnutls_openpgp_crt_t key) _GNUTLS_GCC_ATTR_DEPRECATED;
+time_t gnutls_openpgp_crt_get_creation_time(gnutls_openpgp_crt_t key)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+time_t gnutls_openpgp_crt_get_expiration_time(gnutls_openpgp_crt_t key)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_get_key_id(gnutls_openpgp_crt_t key,
- gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_openpgp_keyid_t keyid)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_check_hostname(gnutls_openpgp_crt_t key,
- const char *hostname) _GNUTLS_GCC_ATTR_DEPRECATED;
+ const char *hostname)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_check_hostname2(gnutls_openpgp_crt_t key,
- const char *hostname, unsigned int flags) _GNUTLS_GCC_ATTR_DEPRECATED;
-int
-gnutls_openpgp_crt_check_email(gnutls_openpgp_crt_t key, const char *email, unsigned flags) _GNUTLS_GCC_ATTR_DEPRECATED;
+ const char *hostname,
+ unsigned int flags)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_check_email(gnutls_openpgp_crt_t key, const char *email,
+ unsigned flags) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_crt_get_revoked_status(gnutls_openpgp_crt_t key) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_get_revoked_status(gnutls_openpgp_crt_t key)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_crt_get_subkey_count(gnutls_openpgp_crt_t key) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_get_subkey_count(gnutls_openpgp_crt_t key)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_get_subkey_idx(gnutls_openpgp_crt_t key,
- const gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_crt_get_subkey_revoked_status
- (gnutls_openpgp_crt_t key, unsigned int idx) _GNUTLS_GCC_ATTR_DEPRECATED;
+ const gnutls_openpgp_keyid_t keyid)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_get_subkey_revoked_status(gnutls_openpgp_crt_t key,
+ unsigned int idx)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
gnutls_pk_algorithm_t
-gnutls_openpgp_crt_get_subkey_pk_algorithm(gnutls_openpgp_crt_t
- key,
+gnutls_openpgp_crt_get_subkey_pk_algorithm(gnutls_openpgp_crt_t key,
unsigned int idx,
- unsigned int *bits) _GNUTLS_GCC_ATTR_DEPRECATED;
-time_t
- gnutls_openpgp_crt_get_subkey_creation_time
- (gnutls_openpgp_crt_t key, unsigned int idx) _GNUTLS_GCC_ATTR_DEPRECATED;
-time_t
- gnutls_openpgp_crt_get_subkey_expiration_time
- (gnutls_openpgp_crt_t key, unsigned int idx) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_crt_get_subkey_id(gnutls_openpgp_crt_t key,
- unsigned int idx,
- gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
+ unsigned int *bits)
+_GNUTLS_GCC_ATTR_DEPRECATED;
+time_t gnutls_openpgp_crt_get_subkey_creation_time(gnutls_openpgp_crt_t key,
+ unsigned int idx)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+time_t gnutls_openpgp_crt_get_subkey_expiration_time(gnutls_openpgp_crt_t key,
+ unsigned int idx)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_get_subkey_id(gnutls_openpgp_crt_t key, unsigned int idx,
+ gnutls_openpgp_keyid_t keyid)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_get_subkey_usage(gnutls_openpgp_crt_t key,
unsigned int idx,
- unsigned int *key_usage) _GNUTLS_GCC_ATTR_DEPRECATED;
+ unsigned int *key_usage)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_get_subkey_pk_dsa_raw(gnutls_openpgp_crt_t
crt, unsigned int idx,
gnutls_datum_t * p,
gnutls_datum_t * q,
gnutls_datum_t * g,
- gnutls_datum_t * y) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_crt_get_subkey_pk_rsa_raw(gnutls_openpgp_crt_t
- crt, unsigned int idx,
+ gnutls_datum_t *
+ y) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_get_subkey_pk_rsa_raw(gnutls_openpgp_crt_t crt,
+ unsigned int idx,
gnutls_datum_t * m,
- gnutls_datum_t * e) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_datum_t *
+ e) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_get_pk_dsa_raw(gnutls_openpgp_crt_t crt,
- gnutls_datum_t * p,
- gnutls_datum_t * q,
+ gnutls_datum_t * p, gnutls_datum_t * q,
gnutls_datum_t * g,
- gnutls_datum_t * y) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_datum_t *
+ y) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_get_pk_rsa_raw(gnutls_openpgp_crt_t crt,
gnutls_datum_t * m,
- gnutls_datum_t * e) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_datum_t *
+ e) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_get_preferred_key_id(gnutls_openpgp_crt_t
key,
- gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
-int
-gnutls_openpgp_crt_set_preferred_key_id(gnutls_openpgp_crt_t key,
- const
- gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_openpgp_keyid_t keyid)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_crt_set_preferred_key_id(gnutls_openpgp_crt_t key,
+ const gnutls_openpgp_keyid_t keyid)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
/* privkey stuff.
*/
-int gnutls_openpgp_privkey_init(gnutls_openpgp_privkey_t * key) _GNUTLS_GCC_ATTR_DEPRECATED;
-void gnutls_openpgp_privkey_deinit(gnutls_openpgp_privkey_t key) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_privkey_init(gnutls_openpgp_privkey_t *
+ key) _GNUTLS_GCC_ATTR_DEPRECATED;
+void gnutls_openpgp_privkey_deinit(gnutls_openpgp_privkey_t key)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
gnutls_pk_algorithm_t
- gnutls_openpgp_privkey_get_pk_algorithm
- (gnutls_openpgp_privkey_t key, unsigned int *bits) _GNUTLS_GCC_ATTR_DEPRECATED;
+gnutls_openpgp_privkey_get_pk_algorithm(gnutls_openpgp_privkey_t key,
+ unsigned int *bits)
+_GNUTLS_GCC_ATTR_DEPRECATED;
gnutls_sec_param_t
-gnutls_openpgp_privkey_sec_param(gnutls_openpgp_privkey_t key) _GNUTLS_GCC_ATTR_DEPRECATED;
+gnutls_openpgp_privkey_sec_param(gnutls_openpgp_privkey_t key)
+_GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_import(gnutls_openpgp_privkey_t key,
const gnutls_datum_t * data,
gnutls_openpgp_crt_fmt_t format,
const char *password,
- unsigned int flags) _GNUTLS_GCC_ATTR_DEPRECATED;
+ unsigned int flags)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_get_fingerprint(gnutls_openpgp_privkey_t
key, void *fpr,
- size_t * fprlen) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_privkey_get_subkey_fingerprint
- (gnutls_openpgp_privkey_t key, unsigned int idx, void *fpr,
- size_t * fprlen) _GNUTLS_GCC_ATTR_DEPRECATED;
+ size_t *fprlen)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_privkey_get_subkey_fingerprint(gnutls_openpgp_privkey_t key,
+ unsigned int idx, void *fpr,
+ size_t *fprlen)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_get_key_id(gnutls_openpgp_privkey_t key,
- gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_privkey_get_subkey_count(gnutls_openpgp_privkey_t key) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_privkey_get_subkey_idx(gnutls_openpgp_privkey_t
- key,
- const
- gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_openpgp_keyid_t keyid)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_privkey_get_subkey_count(gnutls_openpgp_privkey_t key)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_privkey_get_subkey_idx(gnutls_openpgp_privkey_t key,
+ const gnutls_openpgp_keyid_t keyid)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_get_subkey_revoked_status
- (gnutls_openpgp_privkey_t key, unsigned int idx) _GNUTLS_GCC_ATTR_DEPRECATED;
+ (gnutls_openpgp_privkey_t key,
+ unsigned int idx) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_get_revoked_status
(gnutls_openpgp_privkey_t key) _GNUTLS_GCC_ATTR_DEPRECATED;
gnutls_pk_algorithm_t
gnutls_openpgp_privkey_get_subkey_pk_algorithm
- (gnutls_openpgp_privkey_t key, unsigned int idx, unsigned int *bits) _GNUTLS_GCC_ATTR_DEPRECATED;
+ (gnutls_openpgp_privkey_t key, unsigned int idx,
+ unsigned int *bits) _GNUTLS_GCC_ATTR_DEPRECATED;
time_t
gnutls_openpgp_privkey_get_subkey_expiration_time
- (gnutls_openpgp_privkey_t key, unsigned int idx) _GNUTLS_GCC_ATTR_DEPRECATED;
+ (gnutls_openpgp_privkey_t key,
+ unsigned int idx) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_get_subkey_id(gnutls_openpgp_privkey_t
key, unsigned int idx,
- gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_openpgp_keyid_t keyid)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
time_t
gnutls_openpgp_privkey_get_subkey_creation_time
- (gnutls_openpgp_privkey_t key, unsigned int idx) _GNUTLS_GCC_ATTR_DEPRECATED;
+ (gnutls_openpgp_privkey_t key,
+ unsigned int idx) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_export_subkey_dsa_raw
(gnutls_openpgp_privkey_t pkey, unsigned int idx,
@@ -226,76 +264,89 @@ int gnutls_openpgp_privkey_export_subkey_dsa_raw
int gnutls_openpgp_privkey_export_subkey_rsa_raw
(gnutls_openpgp_privkey_t pkey, unsigned int idx,
gnutls_datum_t * m, gnutls_datum_t * e, gnutls_datum_t * d,
- gnutls_datum_t * p, gnutls_datum_t * q, gnutls_datum_t * u) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_datum_t * p, gnutls_datum_t * q,
+ gnutls_datum_t * u) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_export_dsa_raw(gnutls_openpgp_privkey_t
pkey, gnutls_datum_t * p,
gnutls_datum_t * q,
gnutls_datum_t * g,
gnutls_datum_t * y,
- gnutls_datum_t * x) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_privkey_export_rsa_raw(gnutls_openpgp_privkey_t
- pkey, gnutls_datum_t * m,
+ gnutls_datum_t *
+ x) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_privkey_export_rsa_raw(gnutls_openpgp_privkey_t pkey,
+ gnutls_datum_t * m,
gnutls_datum_t * e,
gnutls_datum_t * d,
gnutls_datum_t * p,
gnutls_datum_t * q,
- gnutls_datum_t * u) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_datum_t *
+ u) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_export(gnutls_openpgp_privkey_t key,
gnutls_openpgp_crt_fmt_t format,
const char *password,
unsigned int flags,
void *output_data,
- size_t * output_data_size) _GNUTLS_GCC_ATTR_DEPRECATED;
+ size_t *output_data_size)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_export2(gnutls_openpgp_privkey_t key,
gnutls_openpgp_crt_fmt_t format,
- const char *password,
- unsigned int flags,
- gnutls_datum_t * out) _GNUTLS_GCC_ATTR_DEPRECATED;
+ const char *password, unsigned int flags,
+ gnutls_datum_t *
+ out) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_privkey_set_preferred_key_id
- (gnutls_openpgp_privkey_t key, const gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_openpgp_privkey_get_preferred_key_id
- (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
+ (gnutls_openpgp_privkey_t key,
+ const gnutls_openpgp_keyid_t keyid) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_privkey_get_preferred_key_id(gnutls_openpgp_privkey_t key,
+ gnutls_openpgp_keyid_t keyid)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_get_auth_subkey(gnutls_openpgp_crt_t crt,
gnutls_openpgp_keyid_t
- keyid, unsigned int flag) _GNUTLS_GCC_ATTR_DEPRECATED;
+ keyid,
+ unsigned int flag)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
/* Keyring stuff.
*/
-int gnutls_openpgp_keyring_init(gnutls_openpgp_keyring_t * keyring) _GNUTLS_GCC_ATTR_DEPRECATED;
-void gnutls_openpgp_keyring_deinit(gnutls_openpgp_keyring_t keyring) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_keyring_init(gnutls_openpgp_keyring_t *
+ keyring) _GNUTLS_GCC_ATTR_DEPRECATED;
+void gnutls_openpgp_keyring_deinit(gnutls_openpgp_keyring_t keyring)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_keyring_import(gnutls_openpgp_keyring_t keyring,
const gnutls_datum_t * data,
- gnutls_openpgp_crt_fmt_t format) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_openpgp_crt_fmt_t format)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_keyring_check_id(gnutls_openpgp_keyring_t ring,
const gnutls_openpgp_keyid_t
- keyid, unsigned int flags) _GNUTLS_GCC_ATTR_DEPRECATED;
-
+ keyid,
+ unsigned int flags)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_verify_ring(gnutls_openpgp_crt_t key,
gnutls_openpgp_keyring_t
keyring, unsigned int flags,
unsigned int *verify
/* the output of the verification */
- ) _GNUTLS_GCC_ATTR_DEPRECATED;
+) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_crt_verify_self(gnutls_openpgp_crt_t key,
unsigned int flags,
- unsigned int *verify) _GNUTLS_GCC_ATTR_DEPRECATED;
+ unsigned int *verify)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_openpgp_keyring_get_crt(gnutls_openpgp_keyring_t ring,
unsigned int idx,
- gnutls_openpgp_crt_t * cert) _GNUTLS_GCC_ATTR_DEPRECATED;
-
-int gnutls_openpgp_keyring_get_crt_count(gnutls_openpgp_keyring_t ring) _GNUTLS_GCC_ATTR_DEPRECATED;
-
+ gnutls_openpgp_crt_t *
+ cert) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_openpgp_keyring_get_crt_count(gnutls_openpgp_keyring_t ring)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
/**
* gnutls_openpgp_recv_key_func:
@@ -314,55 +365,56 @@ int gnutls_openpgp_keyring_get_crt_count(gnutls_openpgp_keyring_t ring) _GNUTLS_
* Returns: On success, %GNUTLS_E_SUCCESS (zero) is returned,
* otherwise an error code is returned.
*/
-typedef int (*gnutls_openpgp_recv_key_func) (gnutls_session_t
- session,
- const unsigned char
- *keyfpr,
- unsigned int
- keyfpr_length,
- gnutls_datum_t * key);
+typedef int (*gnutls_openpgp_recv_key_func)(gnutls_session_t
+ session,
+ const unsigned char
+ *keyfpr,
+ unsigned int
+ keyfpr_length,
+ gnutls_datum_t * key);
void
gnutls_openpgp_set_recv_key_function(gnutls_session_t session,
- gnutls_openpgp_recv_key_func func) _GNUTLS_GCC_ATTR_DEPRECATED;
-
-
+ gnutls_openpgp_recv_key_func func)
+_GNUTLS_GCC_ATTR_DEPRECATED;
/* certificate authentication stuff.
*/
int gnutls_certificate_set_openpgp_key
(gnutls_certificate_credentials_t res,
- gnutls_openpgp_crt_t crt, gnutls_openpgp_privkey_t pkey) _GNUTLS_GCC_ATTR_DEPRECATED;
+ gnutls_openpgp_crt_t crt,
+ gnutls_openpgp_privkey_t pkey) _GNUTLS_GCC_ATTR_DEPRECATED;
int
gnutls_certificate_get_openpgp_key(gnutls_certificate_credentials_t res,
- unsigned index,
- gnutls_openpgp_privkey_t *key) _GNUTLS_GCC_ATTR_DEPRECATED;
-int
-gnutls_certificate_get_openpgp_crt(gnutls_certificate_credentials_t res,
- unsigned index,
- gnutls_openpgp_crt_t **crt_list,
- unsigned *crt_list_size) _GNUTLS_GCC_ATTR_DEPRECATED;
-
-int
- gnutls_certificate_set_openpgp_key_file
+ unsigned index,
+ gnutls_openpgp_privkey_t *
+ key) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_certificate_get_openpgp_crt(gnutls_certificate_credentials_t res,
+ unsigned index,
+ gnutls_openpgp_crt_t ** crt_list,
+ unsigned *crt_list_size)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
+
+int gnutls_certificate_set_openpgp_key_file
(gnutls_certificate_credentials_t res, const char *certfile,
- const char *keyfile, gnutls_openpgp_crt_fmt_t format) _GNUTLS_GCC_ATTR_DEPRECATED;
-int gnutls_certificate_set_openpgp_key_mem
- (gnutls_certificate_credentials_t res,
- const gnutls_datum_t * cert, const gnutls_datum_t * key,
+ const char *keyfile,
gnutls_openpgp_crt_fmt_t format) _GNUTLS_GCC_ATTR_DEPRECATED;
+int gnutls_certificate_set_openpgp_key_mem(gnutls_certificate_credentials_t res,
+ const gnutls_datum_t * cert,
+ const gnutls_datum_t * key,
+ gnutls_openpgp_crt_fmt_t format)
+ _GNUTLS_GCC_ATTR_DEPRECATED;
-int
- gnutls_certificate_set_openpgp_key_file2
+int gnutls_certificate_set_openpgp_key_file2
(gnutls_certificate_credentials_t res, const char *certfile,
const char *keyfile, const char *subkey_id,
gnutls_openpgp_crt_fmt_t format) _GNUTLS_GCC_ATTR_DEPRECATED;
-int
- gnutls_certificate_set_openpgp_key_mem2
+int gnutls_certificate_set_openpgp_key_mem2
(gnutls_certificate_credentials_t res,
const gnutls_datum_t * cert, const gnutls_datum_t * key,
- const char *subkey_id, gnutls_openpgp_crt_fmt_t format) _GNUTLS_GCC_ATTR_DEPRECATED;
+ const char *subkey_id,
+ gnutls_openpgp_crt_fmt_t format) _GNUTLS_GCC_ATTR_DEPRECATED;
int gnutls_certificate_set_openpgp_keyring_mem
(gnutls_certificate_credentials_t c, const unsigned char *data,
@@ -378,4 +430,4 @@ int gnutls_certificate_set_openpgp_keyring_file
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_OPENPGP_H */
+#endif /* GNUTLS_OPENPGP_H */
diff --git a/lib/includes/gnutls/pkcs11.h b/lib/includes/gnutls/pkcs11.h
index 2436069849..ba0e1addc8 100644
--- a/lib/includes/gnutls/pkcs11.h
+++ b/lib/includes/gnutls/pkcs11.h
@@ -22,11 +22,11 @@
*/
#ifndef GNUTLS_PKCS11_H
-#define GNUTLS_PKCS11_H
+# define GNUTLS_PKCS11_H
-#include <stdarg.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/x509.h>
+# include <stdarg.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/x509.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -34,7 +34,7 @@ extern "C" {
#endif
/* *INDENT-ON* */
-#define GNUTLS_PKCS11_MAX_PIN_LEN 256
+# define GNUTLS_PKCS11_MAX_PIN_LEN 256
/**
* gnutls_pkcs11_token_callback_t:
@@ -54,34 +54,30 @@ extern "C" {
*
* Since: 2.12.0
**/
-typedef int (*gnutls_pkcs11_token_callback_t) (void *const
- userdata,
- const char *const
- label, unsigned retry);
-
+typedef int (*gnutls_pkcs11_token_callback_t)(void *const
+ userdata,
+ const char *const
+ label, unsigned retry);
struct gnutls_pkcs11_obj_st;
typedef struct gnutls_pkcs11_obj_st *gnutls_pkcs11_obj_t;
-
-#define GNUTLS_PKCS11_FLAG_MANUAL 0 /* Manual loading of libraries */
-#define GNUTLS_PKCS11_FLAG_AUTO 1 /* Automatically load libraries by reading /etc/gnutls/pkcs11.conf */
-#define GNUTLS_PKCS11_FLAG_AUTO_TRUSTED (1<<1) /* Automatically load trusted libraries by reading /etc/gnutls/pkcs11.conf */
+# define GNUTLS_PKCS11_FLAG_MANUAL 0 /* Manual loading of libraries */
+# define GNUTLS_PKCS11_FLAG_AUTO 1 /* Automatically load libraries by reading /etc/gnutls/pkcs11.conf */
+# define GNUTLS_PKCS11_FLAG_AUTO_TRUSTED (1<<1) /* Automatically load trusted libraries by reading /etc/gnutls/pkcs11.conf */
/* pkcs11.conf format:
* load = /lib/xxx-pkcs11.so
* load = /lib/yyy-pkcs11.so
*/
-int gnutls_pkcs11_init(unsigned int flags,
- const char *deprecated_config_file);
+int gnutls_pkcs11_init(unsigned int flags, const char *deprecated_config_file);
int gnutls_pkcs11_reinit(void);
void gnutls_pkcs11_deinit(void);
void gnutls_pkcs11_set_token_function
(gnutls_pkcs11_token_callback_t fn, void *userdata);
-void gnutls_pkcs11_set_pin_function(gnutls_pin_callback_t fn,
- void *userdata);
+void gnutls_pkcs11_set_pin_function(gnutls_pin_callback_t fn, void *userdata);
gnutls_pin_callback_t gnutls_pkcs11_get_pin_function(void
**userdata);
@@ -125,35 +121,37 @@ void gnutls_pkcs11_obj_set_pin_function(gnutls_pkcs11_obj_t obj,
* or retrieving objects.
*/
typedef enum gnutls_pkcs11_obj_flags {
- GNUTLS_PKCS11_OBJ_FLAG_LOGIN = (1<<0),
- GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED = (1<<1),
- GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE = (1<<2),
- GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO = (1<<3),
- GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE = (1<<4),
- GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE = (1<<5),
- GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_ANY = (1<<6),
- GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED = GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED,
- GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED = (1<<8),
- GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED = GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED,
- GNUTLS_PKCS11_OBJ_FLAG_COMPARE = (1<<9),
- GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE = (1<<10),
- GNUTLS_PKCS11_OBJ_FLAG_MARK_CA = (1<<11),
- GNUTLS_PKCS11_OBJ_FLAG_MARK_KEY_WRAP = (1<<12),
- GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY = (1<<13),
- GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT = (1<<14),
- GNUTLS_PKCS11_OBJ_FLAG_MARK_ALWAYS_AUTH = (1<<15),
- GNUTLS_PKCS11_OBJ_FLAG_MARK_EXTRACTABLE = (1<<16),
- GNUTLS_PKCS11_OBJ_FLAG_NEVER_EXTRACTABLE = (1<<17),
- GNUTLS_PKCS11_OBJ_FLAG_CRT = (1<<18),
- GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY = (1<<19),
- GNUTLS_PKCS11_OBJ_FLAG_PUBKEY = (1<<20),
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN = (1 << 0),
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED = (1 << 1),
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE = (1 << 2),
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO = (1 << 3),
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE = (1 << 4),
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE = (1 << 5),
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_ANY = (1 << 6),
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED =
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED,
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED = (1 << 8),
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED =
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED,
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE = (1 << 9),
+ GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE = (1 << 10),
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_CA = (1 << 11),
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_KEY_WRAP = (1 << 12),
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY = (1 << 13),
+ GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT = (1 << 14),
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_ALWAYS_AUTH = (1 << 15),
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_EXTRACTABLE = (1 << 16),
+ GNUTLS_PKCS11_OBJ_FLAG_NEVER_EXTRACTABLE = (1 << 17),
+ GNUTLS_PKCS11_OBJ_FLAG_CRT = (1 << 18),
+ GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY = (1 << 19),
+ GNUTLS_PKCS11_OBJ_FLAG_PUBKEY = (1 << 20),
GNUTLS_PKCS11_OBJ_FLAG_NO_STORE_PUBKEY = GNUTLS_PKCS11_OBJ_FLAG_PUBKEY,
- GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY = (1<<21),
- GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE = (1<<22),
+ GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY = (1 << 21),
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE = (1 << 22),
/* flags 1<<29 and later are reserved - see pkcs11_int.h */
} gnutls_pkcs11_obj_flags;
-#define gnutls_pkcs11_obj_attr_t gnutls_pkcs11_obj_flags
+# define gnutls_pkcs11_obj_attr_t gnutls_pkcs11_obj_flags
/**
* gnutls_pkcs11_url_type_t:
@@ -173,39 +171,37 @@ int gnutls_pkcs11_obj_import_url(gnutls_pkcs11_obj_t obj,
const char *url, unsigned int flags
/* GNUTLS_PKCS11_OBJ_FLAG_* */ );
int gnutls_pkcs11_obj_export_url(gnutls_pkcs11_obj_t obj,
- gnutls_pkcs11_url_type_t detailed,
- char **url);
+ gnutls_pkcs11_url_type_t detailed, char **url);
void gnutls_pkcs11_obj_deinit(gnutls_pkcs11_obj_t obj);
int gnutls_pkcs11_obj_export(gnutls_pkcs11_obj_t obj,
- void *output_data, size_t * output_data_size);
-int gnutls_pkcs11_obj_export2(gnutls_pkcs11_obj_t obj,
- gnutls_datum_t * out);
+ void *output_data, size_t *output_data_size);
+int gnutls_pkcs11_obj_export2(gnutls_pkcs11_obj_t obj, gnutls_datum_t * out);
-int gnutls_pkcs11_obj_export3(gnutls_pkcs11_obj_t obj, gnutls_x509_crt_fmt_t fmt,
- gnutls_datum_t * out);
+int gnutls_pkcs11_obj_export3(gnutls_pkcs11_obj_t obj,
+ gnutls_x509_crt_fmt_t fmt, gnutls_datum_t * out);
int gnutls_pkcs11_get_raw_issuer(const char *url, gnutls_x509_crt_t cert,
- gnutls_datum_t * issuer,
- gnutls_x509_crt_fmt_t fmt,
- unsigned int flags);
-
-int gnutls_pkcs11_get_raw_issuer_by_dn (const char *url, const gnutls_datum_t *dn,
- gnutls_datum_t *issuer,
- gnutls_x509_crt_fmt_t fmt,
- unsigned int flags);
-
-int gnutls_pkcs11_get_raw_issuer_by_subject_key_id (const char *url,
- const gnutls_datum_t *dn,
- const gnutls_datum_t *spki,
- gnutls_datum_t *issuer,
- gnutls_x509_crt_fmt_t fmt,
- unsigned int flags);
+ gnutls_datum_t * issuer,
+ gnutls_x509_crt_fmt_t fmt, unsigned int flags);
+
+int gnutls_pkcs11_get_raw_issuer_by_dn(const char *url,
+ const gnutls_datum_t * dn,
+ gnutls_datum_t * issuer,
+ gnutls_x509_crt_fmt_t fmt,
+ unsigned int flags);
+
+int gnutls_pkcs11_get_raw_issuer_by_subject_key_id(const char *url,
+ const gnutls_datum_t * dn,
+ const gnutls_datum_t * spki,
+ gnutls_datum_t * issuer,
+ gnutls_x509_crt_fmt_t fmt,
+ unsigned int flags);
unsigned gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
- unsigned int flags);
+ unsigned int flags);
-#if 0
+# if 0
/* for documentation */
int gnutls_pkcs11_copy_x509_crt(const char *token_url,
gnutls_x509_crt_t crt,
@@ -215,46 +211,44 @@ int gnutls_pkcs11_copy_x509_crt(const char *token_url,
int gnutls_pkcs11_copy_x509_privkey(const char *token_url,
gnutls_x509_privkey_t key,
const char *label,
- unsigned int key_usage,
- unsigned int flags);
+ unsigned int key_usage, unsigned int flags);
int
gnutls_pkcs11_privkey_generate2(const char *url, gnutls_pk_algorithm_t pk,
unsigned int bits, const char *label,
gnutls_x509_crt_fmt_t fmt,
- gnutls_datum_t * pubkey,
- unsigned int flags);
+ gnutls_datum_t * pubkey, unsigned int flags);
int
gnutls_pkcs11_privkey_generate(const char *url, gnutls_pk_algorithm_t pk,
unsigned int bits, const char *label,
unsigned int flags);
-#endif
+# endif
int
gnutls_pkcs11_copy_pubkey(const char *token_url,
gnutls_pubkey_t crt, const char *label,
- const gnutls_datum_t *cid,
+ const gnutls_datum_t * cid,
unsigned int key_usage, unsigned int flags);
-#define gnutls_pkcs11_copy_x509_crt(url, crt, label, flags) \
+# define gnutls_pkcs11_copy_x509_crt(url, crt, label, flags) \
gnutls_pkcs11_copy_x509_crt2(url, crt, label, NULL, flags)
int gnutls_pkcs11_copy_x509_crt2(const char *token_url,
- gnutls_x509_crt_t crt,
- const char *label,
- const gnutls_datum_t *id,
- unsigned int flags /* GNUTLS_PKCS11_OBJ_FLAG_* */);
+ gnutls_x509_crt_t crt,
+ const char *label,
+ const gnutls_datum_t * id, unsigned int flags
+ /* GNUTLS_PKCS11_OBJ_FLAG_* */ );
-#define gnutls_pkcs11_copy_x509_privkey(url, key, label, usage, flags) \
+# define gnutls_pkcs11_copy_x509_privkey(url, key, label, usage, flags) \
gnutls_pkcs11_copy_x509_privkey2(url, key, label, NULL, usage, flags)
int gnutls_pkcs11_copy_x509_privkey2(const char *token_url,
- gnutls_x509_privkey_t key,
- const char *label,
- const gnutls_datum_t *cid,
- unsigned int key_usage
- /*GNUTLS_KEY_* */ ,
- unsigned int flags
- /* GNUTLS_PKCS11_OBJ_FLAG_* */
-);
+ gnutls_x509_privkey_t key,
+ const char *label,
+ const gnutls_datum_t * cid,
+ unsigned int key_usage
+ /*GNUTLS_KEY_* */ ,
+ unsigned int flags
+ /* GNUTLS_PKCS11_OBJ_FLAG_* */
+ );
int gnutls_pkcs11_delete_url(const char *object_url, unsigned int flags
/* GNUTLS_PKCS11_OBJ_FLAG_* */ );
@@ -298,25 +292,24 @@ typedef enum {
int
gnutls_pkcs11_obj_get_ptr(gnutls_pkcs11_obj_t obj, void **ptr,
void **session, void **ohandle,
- unsigned long *slot_id,
- unsigned int flags);
+ unsigned long *slot_id, unsigned int flags);
int gnutls_pkcs11_obj_get_info(gnutls_pkcs11_obj_t obj,
gnutls_pkcs11_obj_info_t itype,
- void *output, size_t * output_size);
+ void *output, size_t *output_size);
int gnutls_pkcs11_obj_set_info(gnutls_pkcs11_obj_t obj,
gnutls_pkcs11_obj_info_t itype,
const void *data, size_t data_size,
unsigned flags);
-#define GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL GNUTLS_PKCS11_OBJ_FLAG_CRT
-#define GNUTLS_PKCS11_OBJ_ATTR_MATCH 0 /* always match the given URL */
-#define GNUTLS_PKCS11_OBJ_ATTR_ALL 0 /* match everything! */
-#define GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED (GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED)
-#define GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY (GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY)
-#define GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA (GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_MARK_CA|GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED)
-#define GNUTLS_PKCS11_OBJ_ATTR_PUBKEY GNUTLS_PKCS11_OBJ_FLAG_PUBKEY
-#define GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY
+# define GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL GNUTLS_PKCS11_OBJ_FLAG_CRT
+# define GNUTLS_PKCS11_OBJ_ATTR_MATCH 0 /* always match the given URL */
+# define GNUTLS_PKCS11_OBJ_ATTR_ALL 0 /* match everything! */
+# define GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED (GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED)
+# define GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY (GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY)
+# define GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA (GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_MARK_CA|GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED)
+# define GNUTLS_PKCS11_OBJ_ATTR_PUBKEY GNUTLS_PKCS11_OBJ_FLAG_PUBKEY
+# define GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY
/**
* gnutls_pkcs11_token_info_t:
@@ -369,72 +362,68 @@ gnutls_pkcs11_token_get_ptr(const char *url, void **ptr, unsigned long *slot_id,
int
gnutls_pkcs11_token_get_mechanism(const char *url,
- unsigned int idx,
- unsigned long *mechanism);
+ unsigned int idx, unsigned long *mechanism);
unsigned
gnutls_pkcs11_token_check_mechanism(const char *url,
unsigned long mechanism,
void *ptr, unsigned psize, unsigned flags);
-int gnutls_pkcs11_token_set_pin(const char *token_url, const char *oldpin, const char *newpin, unsigned int flags /*gnutls_pin_flag_t */);
+int gnutls_pkcs11_token_set_pin(const char *token_url, const char *oldpin,
+ const char *newpin,
+ unsigned int flags /*gnutls_pin_flag_t */ );
int gnutls_pkcs11_token_get_url(unsigned int seq,
- gnutls_pkcs11_url_type_t detailed,
- char **url);
+ gnutls_pkcs11_url_type_t detailed, char **url);
int gnutls_pkcs11_token_get_info(const char *url,
gnutls_pkcs11_token_info_t ttype,
- void *output, size_t * output_size);
-
-#define GNUTLS_PKCS11_TOKEN_HW 1
-#define GNUTLS_PKCS11_TOKEN_TRUSTED (1<<1) /* p11-kit trusted */
-#define GNUTLS_PKCS11_TOKEN_RNG (1<<2) /* CKF_RNG */
-#define GNUTLS_PKCS11_TOKEN_LOGIN_REQUIRED (1<<3) /* CKF_LOGIN_REQUIRED */
-#define GNUTLS_PKCS11_TOKEN_PROTECTED_AUTHENTICATION_PATH (1<<4) /* CKF_PROTECTED_AUTHENTICATION_PATH */
-#define GNUTLS_PKCS11_TOKEN_INITIALIZED (1<<5) /* CKF_TOKEN_INITIALIZED */
-#define GNUTLS_PKCS11_TOKEN_USER_PIN_COUNT_LOW (1<<6) /* CKF_USER_PIN_COUNT_LOW */
-#define GNUTLS_PKCS11_TOKEN_USER_PIN_FINAL_TRY (1<<7) /* CKF_USER_PIN_FINAL_TRY */
-#define GNUTLS_PKCS11_TOKEN_USER_PIN_LOCKED (1<<8) /* CKF_USER_PIN_LOCKED */
-#define GNUTLS_PKCS11_TOKEN_SO_PIN_COUNT_LOW (1<<9) /* CKF_SO_PIN_COUNT_LOW */
-#define GNUTLS_PKCS11_TOKEN_SO_PIN_FINAL_TRY (1<<10) /* CKF_SO_PIN_FINAL_TRY */
-#define GNUTLS_PKCS11_TOKEN_SO_PIN_LOCKED (1<<11) /* CKF_SO_PIN_LOCKED */
-#define GNUTLS_PKCS11_TOKEN_USER_PIN_INITIALIZED (1<<12) /* CKF_USER_PIN_INITIALIZED */
-#define GNUTLS_PKCS11_TOKEN_ERROR_STATE (1<<13) /* CKF_ERROR_STATE */
+ void *output, size_t *output_size);
+
+# define GNUTLS_PKCS11_TOKEN_HW 1
+# define GNUTLS_PKCS11_TOKEN_TRUSTED (1<<1) /* p11-kit trusted */
+# define GNUTLS_PKCS11_TOKEN_RNG (1<<2) /* CKF_RNG */
+# define GNUTLS_PKCS11_TOKEN_LOGIN_REQUIRED (1<<3) /* CKF_LOGIN_REQUIRED */
+# define GNUTLS_PKCS11_TOKEN_PROTECTED_AUTHENTICATION_PATH (1<<4) /* CKF_PROTECTED_AUTHENTICATION_PATH */
+# define GNUTLS_PKCS11_TOKEN_INITIALIZED (1<<5) /* CKF_TOKEN_INITIALIZED */
+# define GNUTLS_PKCS11_TOKEN_USER_PIN_COUNT_LOW (1<<6) /* CKF_USER_PIN_COUNT_LOW */
+# define GNUTLS_PKCS11_TOKEN_USER_PIN_FINAL_TRY (1<<7) /* CKF_USER_PIN_FINAL_TRY */
+# define GNUTLS_PKCS11_TOKEN_USER_PIN_LOCKED (1<<8) /* CKF_USER_PIN_LOCKED */
+# define GNUTLS_PKCS11_TOKEN_SO_PIN_COUNT_LOW (1<<9) /* CKF_SO_PIN_COUNT_LOW */
+# define GNUTLS_PKCS11_TOKEN_SO_PIN_FINAL_TRY (1<<10) /* CKF_SO_PIN_FINAL_TRY */
+# define GNUTLS_PKCS11_TOKEN_SO_PIN_LOCKED (1<<11) /* CKF_SO_PIN_LOCKED */
+# define GNUTLS_PKCS11_TOKEN_USER_PIN_INITIALIZED (1<<12) /* CKF_USER_PIN_INITIALIZED */
+# define GNUTLS_PKCS11_TOKEN_ERROR_STATE (1<<13)/* CKF_ERROR_STATE */
int gnutls_pkcs11_token_get_flags(const char *url, unsigned int *flags);
-#define gnutls_pkcs11_obj_list_import_url(p_list, n_list, url, attrs, flags) gnutls_pkcs11_obj_list_import_url3(p_list, n_list, url, attrs|flags)
-#define gnutls_pkcs11_obj_list_import_url2(p_list, n_list, url, attrs, flags) gnutls_pkcs11_obj_list_import_url4(p_list, n_list, url, attrs|flags)
+# define gnutls_pkcs11_obj_list_import_url(p_list, n_list, url, attrs, flags) gnutls_pkcs11_obj_list_import_url3(p_list, n_list, url, attrs|flags)
+# define gnutls_pkcs11_obj_list_import_url2(p_list, n_list, url, attrs, flags) gnutls_pkcs11_obj_list_import_url4(p_list, n_list, url, attrs|flags)
int gnutls_pkcs11_obj_list_import_url3(gnutls_pkcs11_obj_t * p_list,
- unsigned int *const n_list,
- const char *url,
- unsigned int flags
- /* GNUTLS_PKCS11_OBJ_FLAG_* */
+ unsigned int *const n_list,
+ const char *url, unsigned int flags
+ /* GNUTLS_PKCS11_OBJ_FLAG_* */
);
int
gnutls_pkcs11_obj_list_import_url4(gnutls_pkcs11_obj_t ** p_list,
unsigned int *n_list,
- const char *url,
- unsigned int flags
+ const char *url, unsigned int flags
/* GNUTLS_PKCS11_OBJ_FLAG_* */
);
int gnutls_x509_crt_import_pkcs11(gnutls_x509_crt_t crt,
gnutls_pkcs11_obj_t pkcs11_crt);
-gnutls_pkcs11_obj_type_t
-gnutls_pkcs11_obj_get_type(gnutls_pkcs11_obj_t obj);
+gnutls_pkcs11_obj_type_t gnutls_pkcs11_obj_get_type(gnutls_pkcs11_obj_t obj);
const char *gnutls_pkcs11_type_get_name(gnutls_pkcs11_obj_type_t type);
int
gnutls_pkcs11_obj_get_exts(gnutls_pkcs11_obj_t obj,
- struct gnutls_x509_ext_st **exts, unsigned int *exts_size,
- unsigned int flags);
+ struct gnutls_x509_ext_st **exts,
+ unsigned int *exts_size, unsigned int flags);
-int
-gnutls_pkcs11_obj_get_flags(gnutls_pkcs11_obj_t obj, unsigned int *oflags);
+int gnutls_pkcs11_obj_get_flags(gnutls_pkcs11_obj_t obj, unsigned int *oflags);
char *gnutls_pkcs11_obj_flags_get_str(unsigned int flags);
int gnutls_x509_crt_list_import_pkcs11(gnutls_x509_crt_t * certs,
@@ -459,7 +448,7 @@ int gnutls_pkcs11_privkey_get_pk_algorithm(gnutls_pkcs11_privkey_t
key, unsigned int *bits);
int gnutls_pkcs11_privkey_get_info(gnutls_pkcs11_privkey_t pkey,
gnutls_pkcs11_obj_info_t itype,
- void *output, size_t * output_size);
+ void *output, size_t *output_size);
int gnutls_pkcs11_privkey_import_url(gnutls_pkcs11_privkey_t pkey,
const char *url, unsigned int flags);
@@ -469,10 +458,10 @@ int gnutls_pkcs11_privkey_export_url(gnutls_pkcs11_privkey_t key,
detailed, char **url);
unsigned gnutls_pkcs11_privkey_status(gnutls_pkcs11_privkey_t key);
-#define gnutls_pkcs11_privkey_generate(url, pk, bits, label, flags) \
+# define gnutls_pkcs11_privkey_generate(url, pk, bits, label, flags) \
gnutls_pkcs11_privkey_generate3(url, pk, bits, label, NULL, 0, NULL, 0, flags)
-#define gnutls_pkcs11_privkey_generate2(url, pk, bits, label, fmt, pubkey, flags) \
+# define gnutls_pkcs11_privkey_generate2(url, pk, bits, label, fmt, pubkey, flags) \
gnutls_pkcs11_privkey_generate3(url, pk, bits, label, NULL, fmt, pubkey, 0, flags)
int
@@ -480,30 +469,27 @@ gnutls_pkcs11_privkey_generate3(const char *url,
gnutls_pk_algorithm_t pk,
unsigned int bits,
const char *label,
- const gnutls_datum_t *cid,
+ const gnutls_datum_t * cid,
gnutls_x509_crt_fmt_t fmt,
gnutls_datum_t * pubkey,
- unsigned int key_usage,
- unsigned int flags);
+ unsigned int key_usage, unsigned int flags);
int
gnutls_pkcs11_privkey_export_pubkey(gnutls_pkcs11_privkey_t pkey,
- gnutls_x509_crt_fmt_t fmt,
- gnutls_datum_t * pubkey,
- unsigned int flags);
+ gnutls_x509_crt_fmt_t fmt,
+ gnutls_datum_t * pubkey,
+ unsigned int flags);
int
-gnutls_pkcs11_token_get_random(const char *token_url,
- void *data, size_t len);
+gnutls_pkcs11_token_get_random(const char *token_url, void *data, size_t len);
int
gnutls_pkcs11_copy_attached_extension(const char *token_url,
gnutls_x509_crt_t crt,
- gnutls_datum_t *data,
- const char *label,
- unsigned int flags);
+ gnutls_datum_t * data,
+ const char *label, unsigned int flags);
-#define gnutls_x509_crt_import_pkcs11_url gnutls_x509_crt_import_url
+# define gnutls_x509_crt_import_pkcs11_url gnutls_x509_crt_import_url
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -511,4 +497,4 @@ gnutls_pkcs11_copy_attached_extension(const char *token_url,
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_PKCS11_H */
+#endif /* GNUTLS_PKCS11_H */
diff --git a/lib/includes/gnutls/pkcs12.h b/lib/includes/gnutls/pkcs12.h
index e613fe12f5..1f4874eb8c 100644
--- a/lib/includes/gnutls/pkcs12.h
+++ b/lib/includes/gnutls/pkcs12.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_PKCS12_H
-#define GNUTLS_PKCS12_H
+# define GNUTLS_PKCS12_H
-#include <gnutls/x509.h>
+# include <gnutls/x509.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -46,17 +46,17 @@ int gnutls_pkcs12_import(gnutls_pkcs12_t pkcs12,
gnutls_x509_crt_fmt_t format, unsigned int flags);
int gnutls_pkcs12_export(gnutls_pkcs12_t pkcs12,
gnutls_x509_crt_fmt_t format,
- void *output_data, size_t * output_data_size);
+ void *output_data, size_t *output_data_size);
int gnutls_pkcs12_export2(gnutls_pkcs12_t pkcs12,
- gnutls_x509_crt_fmt_t format,
- gnutls_datum_t * out);
+ gnutls_x509_crt_fmt_t format, gnutls_datum_t * out);
int gnutls_pkcs12_get_bag(gnutls_pkcs12_t pkcs12,
int indx, gnutls_pkcs12_bag_t bag);
int gnutls_pkcs12_set_bag(gnutls_pkcs12_t pkcs12, gnutls_pkcs12_bag_t bag);
int gnutls_pkcs12_generate_mac(gnutls_pkcs12_t pkcs12, const char *pass);
-int gnutls_pkcs12_generate_mac2(gnutls_pkcs12_t pkcs12, gnutls_mac_algorithm_t mac, const char *pass);
+int gnutls_pkcs12_generate_mac2(gnutls_pkcs12_t pkcs12,
+ gnutls_mac_algorithm_t mac, const char *pass);
int gnutls_pkcs12_verify_mac(gnutls_pkcs12_t pkcs12, const char *pass);
int gnutls_pkcs12_bag_decrypt(gnutls_pkcs12_bag_t bag, const char *pass);
@@ -64,13 +64,15 @@ int gnutls_pkcs12_bag_encrypt(gnutls_pkcs12_bag_t bag,
const char *pass, unsigned int flags);
int
-gnutls_pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, unsigned int *schema, unsigned int *cipher,
- void *salt, unsigned int *salt_size, unsigned int *iter_count, char **oid);
-int
-gnutls_pkcs12_mac_info(gnutls_pkcs12_t pkcs12, unsigned int *mac,
- void *salt, unsigned int *salt_size, unsigned int *iter_count, char **oid);
-
-#define GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED 1
+gnutls_pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, unsigned int *schema,
+ unsigned int *cipher, void *salt,
+ unsigned int *salt_size, unsigned int *iter_count,
+ char **oid);
+int gnutls_pkcs12_mac_info(gnutls_pkcs12_t pkcs12, unsigned int *mac,
+ void *salt, unsigned int *salt_size,
+ unsigned int *iter_count, char **oid);
+
+# define GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED 1
int gnutls_pkcs12_simple_parse(gnutls_pkcs12_t p12,
const char *password,
gnutls_x509_privkey_t * key,
@@ -78,8 +80,7 @@ int gnutls_pkcs12_simple_parse(gnutls_pkcs12_t p12,
unsigned int *chain_len,
gnutls_x509_crt_t ** extra_certs,
unsigned int *extra_certs_len,
- gnutls_x509_crl_t * crl,
- unsigned int flags);
+ gnutls_x509_crl_t * crl, unsigned int flags);
/**
* gnutls_pkcs12_bag_type_t:
@@ -109,17 +110,14 @@ typedef enum gnutls_pkcs12_bag_type_t {
GNUTLS_BAG_UNKNOWN = 20
} gnutls_pkcs12_bag_type_t;
-int
-gnutls_pkcs12_bag_get_type(gnutls_pkcs12_bag_t bag, unsigned indx);
+int gnutls_pkcs12_bag_get_type(gnutls_pkcs12_bag_t bag, unsigned indx);
int gnutls_pkcs12_bag_get_data(gnutls_pkcs12_bag_t bag, unsigned indx,
gnutls_datum_t * data);
int gnutls_pkcs12_bag_set_data(gnutls_pkcs12_bag_t bag,
gnutls_pkcs12_bag_type_t type,
const gnutls_datum_t * data);
-int gnutls_pkcs12_bag_set_crl(gnutls_pkcs12_bag_t bag,
- gnutls_x509_crl_t crl);
-int gnutls_pkcs12_bag_set_crt(gnutls_pkcs12_bag_t bag,
- gnutls_x509_crt_t crt);
+int gnutls_pkcs12_bag_set_crl(gnutls_pkcs12_bag_t bag, gnutls_x509_crl_t crl);
+int gnutls_pkcs12_bag_set_crt(gnutls_pkcs12_bag_t bag, gnutls_x509_crt_t crt);
int
gnutls_pkcs12_bag_set_privkey(gnutls_pkcs12_bag_t bag,
@@ -146,4 +144,4 @@ int gnutls_pkcs12_bag_set_friendly_name(gnutls_pkcs12_bag_t bag,
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_PKCS12_H */
+#endif /* GNUTLS_PKCS12_H */
diff --git a/lib/includes/gnutls/pkcs7.h b/lib/includes/gnutls/pkcs7.h
index 528427b484..b6a223ed9c 100644
--- a/lib/includes/gnutls/pkcs7.h
+++ b/lib/includes/gnutls/pkcs7.h
@@ -26,10 +26,10 @@
*/
#ifndef GNUTLS_PKCS7_H
-#define GNUTLS_PKCS7_H
+# define GNUTLS_PKCS7_H
-#include <gnutls/gnutls.h>
-#include <gnutls/x509.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/x509.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -49,34 +49,31 @@ int gnutls_pkcs7_import(gnutls_pkcs7_t pkcs7,
gnutls_x509_crt_fmt_t format);
int gnutls_pkcs7_export(gnutls_pkcs7_t pkcs7,
gnutls_x509_crt_fmt_t format,
- void *output_data, size_t * output_data_size);
+ void *output_data, size_t *output_data_size);
int gnutls_pkcs7_export2(gnutls_pkcs7_t pkcs7,
- gnutls_x509_crt_fmt_t format,
- gnutls_datum_t * out);
+ gnutls_x509_crt_fmt_t format, gnutls_datum_t * out);
int gnutls_pkcs7_get_signature_count(gnutls_pkcs7_t pkcs7);
-#define GNUTLS_PKCS7_EDATA_GET_RAW (1<<24)
-int gnutls_pkcs7_get_embedded_data(gnutls_pkcs7_t pkcs7, unsigned flags, gnutls_datum_t *data);
+# define GNUTLS_PKCS7_EDATA_GET_RAW (1<<24)
+int gnutls_pkcs7_get_embedded_data(gnutls_pkcs7_t pkcs7, unsigned flags,
+ gnutls_datum_t * data);
-const char *
-gnutls_pkcs7_get_embedded_data_oid(gnutls_pkcs7_t pkcs7);
+const char *gnutls_pkcs7_get_embedded_data_oid(gnutls_pkcs7_t pkcs7);
int gnutls_pkcs7_get_crt_count(gnutls_pkcs7_t pkcs7);
int gnutls_pkcs7_get_crt_raw(gnutls_pkcs7_t pkcs7, unsigned indx,
- void *certificate, size_t * certificate_size);
+ void *certificate, size_t *certificate_size);
-int gnutls_pkcs7_set_crt_raw(gnutls_pkcs7_t pkcs7,
- const gnutls_datum_t * crt);
+int gnutls_pkcs7_set_crt_raw(gnutls_pkcs7_t pkcs7, const gnutls_datum_t * crt);
int gnutls_pkcs7_set_crt(gnutls_pkcs7_t pkcs7, gnutls_x509_crt_t crt);
int gnutls_pkcs7_delete_crt(gnutls_pkcs7_t pkcs7, int indx);
int gnutls_pkcs7_get_crl_raw(gnutls_pkcs7_t pkcs7,
- unsigned indx, void *crl, size_t * crl_size);
+ unsigned indx, void *crl, size_t *crl_size);
int gnutls_pkcs7_get_crl_count(gnutls_pkcs7_t pkcs7);
-int gnutls_pkcs7_set_crl_raw(gnutls_pkcs7_t pkcs7,
- const gnutls_datum_t * crl);
+int gnutls_pkcs7_set_crl_raw(gnutls_pkcs7_t pkcs7, const gnutls_datum_t * crl);
int gnutls_pkcs7_set_crl(gnutls_pkcs7_t pkcs7, gnutls_x509_crl_t crl);
int gnutls_pkcs7_delete_crl(gnutls_pkcs7_t pkcs7, int indx);
@@ -94,19 +91,24 @@ typedef struct gnutls_pkcs7_signature_info_st {
char pad[64];
} gnutls_pkcs7_signature_info_st;
-void gnutls_pkcs7_signature_info_deinit(gnutls_pkcs7_signature_info_st *info);
-int gnutls_pkcs7_get_signature_info(gnutls_pkcs7_t pkcs7, unsigned idx, gnutls_pkcs7_signature_info_st *info);
+void gnutls_pkcs7_signature_info_deinit(gnutls_pkcs7_signature_info_st * info);
+int gnutls_pkcs7_get_signature_info(gnutls_pkcs7_t pkcs7, unsigned idx,
+ gnutls_pkcs7_signature_info_st * info);
int gnutls_pkcs7_verify_direct(gnutls_pkcs7_t pkcs7, gnutls_x509_crt_t signer,
- unsigned idx, const gnutls_datum_t *data, unsigned flags);
+ unsigned idx, const gnutls_datum_t * data,
+ unsigned flags);
int gnutls_pkcs7_verify(gnutls_pkcs7_t pkcs7, gnutls_x509_trust_list_t tl,
gnutls_typed_vdata_st * vdata, unsigned int vdata_size,
- unsigned idx, const gnutls_datum_t *data, unsigned flags);
+ unsigned idx, const gnutls_datum_t * data,
+ unsigned flags);
-#define GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING 1
-int gnutls_pkcs7_add_attr(gnutls_pkcs7_attrs_t *list, const char *oid, gnutls_datum_t *data, unsigned flags);
+# define GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING 1
+int gnutls_pkcs7_add_attr(gnutls_pkcs7_attrs_t * list, const char *oid,
+ gnutls_datum_t * data, unsigned flags);
void gnutls_pkcs7_attrs_deinit(gnutls_pkcs7_attrs_t list);
-int gnutls_pkcs7_get_attr(gnutls_pkcs7_attrs_t list, unsigned idx, char **oid, gnutls_datum_t *data, unsigned flags);
+int gnutls_pkcs7_get_attr(gnutls_pkcs7_attrs_t list, unsigned idx, char **oid,
+ gnutls_datum_t * data, unsigned flags);
/**
* gnutls_pkcs7_sign_flags:
@@ -119,26 +121,25 @@ int gnutls_pkcs7_get_attr(gnutls_pkcs7_attrs_t list, unsigned idx, char **oid, g
*/
typedef enum gnutls_pkcs7_sign_flags {
GNUTLS_PKCS7_EMBED_DATA = 1,
- GNUTLS_PKCS7_INCLUDE_TIME = (1<<1),
- GNUTLS_PKCS7_INCLUDE_CERT = (1<<2),
- GNUTLS_PKCS7_WRITE_SPKI = (1<<3)
+ GNUTLS_PKCS7_INCLUDE_TIME = (1 << 1),
+ GNUTLS_PKCS7_INCLUDE_CERT = (1 << 2),
+ GNUTLS_PKCS7_WRITE_SPKI = (1 << 3)
} gnutls_pkcs7_sign_flags;
int gnutls_pkcs7_sign(gnutls_pkcs7_t pkcs7,
gnutls_x509_crt_t signer,
gnutls_privkey_t signer_key,
- const gnutls_datum_t *data,
+ const gnutls_datum_t * data,
gnutls_pkcs7_attrs_t signed_attrs,
gnutls_pkcs7_attrs_t unsigned_attrs,
- gnutls_digest_algorithm_t dig,
- unsigned flags);
+ gnutls_digest_algorithm_t dig, unsigned flags);
int
gnutls_pkcs7_get_crt_raw2(gnutls_pkcs7_t pkcs7,
- unsigned indx, gnutls_datum_t *cert);
+ unsigned indx, gnutls_datum_t * cert);
int
gnutls_pkcs7_get_crl_raw2(gnutls_pkcs7_t pkcs7,
- unsigned indx, gnutls_datum_t *crl);
+ unsigned indx, gnutls_datum_t * crl);
int gnutls_pkcs7_print(gnutls_pkcs7_t pkcs7,
gnutls_certificate_print_formats_t format,
@@ -154,4 +155,4 @@ int gnutls_pkcs7_print_signature_info(gnutls_pkcs7_signature_info_st * info,
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_PKCS7_H */
+#endif /* GNUTLS_PKCS7_H */
diff --git a/lib/includes/gnutls/self-test.h b/lib/includes/gnutls/self-test.h
index 88b5a8dbf9..0d5989e63a 100644
--- a/lib/includes/gnutls/self-test.h
+++ b/lib/includes/gnutls/self-test.h
@@ -21,14 +21,14 @@
*/
#ifndef GNUTLS_SELF_TEST_H
-#define GNUTLS_SELF_TEST_H
+# define GNUTLS_SELF_TEST_H
-#include <gnutls/gnutls.h>
+# include <gnutls/gnutls.h>
/* Self checking functions */
-
-#define GNUTLS_SELF_TEST_FLAG_ALL 1
-#define GNUTLS_SELF_TEST_FLAG_NO_COMPAT (1<<1)
+
+# define GNUTLS_SELF_TEST_FLAG_ALL 1
+# define GNUTLS_SELF_TEST_FLAG_NO_COMPAT (1<<1)
int gnutls_cipher_self_test(unsigned flags, gnutls_cipher_algorithm_t cipher);
int gnutls_mac_self_test(unsigned flags, gnutls_mac_algorithm_t mac);
@@ -38,4 +38,4 @@ int gnutls_hkdf_self_test(unsigned flags, gnutls_mac_algorithm_t mac);
int gnutls_pbkdf2_self_test(unsigned flags, gnutls_mac_algorithm_t mac);
int gnutls_tlsprf_self_test(unsigned flags, gnutls_mac_algorithm_t mac);
-#endif /* GNUTLS_SELF_TEST_H */
+#endif /* GNUTLS_SELF_TEST_H */
diff --git a/lib/includes/gnutls/socket.h b/lib/includes/gnutls/socket.h
index 64eb19f896..9669e142eb 100644
--- a/lib/includes/gnutls/socket.h
+++ b/lib/includes/gnutls/socket.h
@@ -24,12 +24,12 @@
*/
#ifndef GNUTLS_SOCKET_H
-#define GNUTLS_SOCKET_H
+# define GNUTLS_SOCKET_H
-#include <gnutls/gnutls.h>
+# include <gnutls/gnutls.h>
/* Get socklen_t */
-#include <sys/socket.h>
+# include <sys/socket.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -38,10 +38,10 @@ extern "C" {
/* *INDENT-ON* */
void gnutls_transport_set_fastopen(gnutls_session_t session,
- int fd,
- struct sockaddr *connect_addr,
- socklen_t connect_addrlen,
- unsigned int flags);
+ int fd,
+ struct sockaddr *connect_addr,
+ socklen_t connect_addrlen,
+ unsigned int flags);
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -49,4 +49,4 @@ void gnutls_transport_set_fastopen(gnutls_session_t session,
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_SOCKET_H */
+#endif /* GNUTLS_SOCKET_H */
diff --git a/lib/includes/gnutls/system-keys.h b/lib/includes/gnutls/system-keys.h
index a0aa056dfa..9b58451462 100644
--- a/lib/includes/gnutls/system-keys.h
+++ b/lib/includes/gnutls/system-keys.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_SYSTEM_KEYS_H
-#define GNUTLS_SYSTEM_KEYS_H
+# define GNUTLS_SYSTEM_KEYS_H
-#include <gnutls/gnutls.h>
-#include <gnutls/x509.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/x509.h>
/* This API allows to access user key and certificate pairs that are
* available in the current system. If any passwords are required,
@@ -42,18 +42,17 @@ typedef struct system_key_iter_st *gnutls_system_key_iter_t;
void gnutls_system_key_iter_deinit(gnutls_system_key_iter_t iter);
int
-gnutls_system_key_iter_get_info(gnutls_system_key_iter_t *iter,
- unsigned cert_type /* gnutls_certificate_type_t */,
- char **cert_url,
- char **key_url,
- char **label,
- gnutls_datum_t *der,
- unsigned int flags);
+gnutls_system_key_iter_get_info(gnutls_system_key_iter_t * iter,
+ unsigned cert_type
+ /* gnutls_certificate_type_t */ ,
+ char **cert_url, char **key_url, char **label,
+ gnutls_datum_t * der, unsigned int flags);
int gnutls_system_key_delete(const char *cert_url, const char *key_url);
-int gnutls_system_key_add_x509(gnutls_x509_crt_t crt, gnutls_x509_privkey_t privkey,
- const char *label, char **cert_url, char **key_url);
+int gnutls_system_key_add_x509(gnutls_x509_crt_t crt,
+ gnutls_x509_privkey_t privkey, const char *label,
+ char **cert_url, char **key_url);
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -61,4 +60,4 @@ int gnutls_system_key_add_x509(gnutls_x509_crt_t crt, gnutls_x509_privkey_t priv
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_SYSTEM_KEYS_H */
+#endif /* GNUTLS_SYSTEM_KEYS_H */
diff --git a/lib/includes/gnutls/tpm.h b/lib/includes/gnutls/tpm.h
index b5da3e994f..f899bd46d6 100644
--- a/lib/includes/gnutls/tpm.h
+++ b/lib/includes/gnutls/tpm.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_TPM_H
-#define GNUTLS_TPM_H
+# define GNUTLS_TPM_H
-#include <gnutls/gnutls.h>
-#include <gnutls/x509.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/x509.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -35,9 +35,9 @@ extern "C" {
struct tpm_key_list_st;
typedef struct tpm_key_list_st *gnutls_tpm_key_list_t;
-#define GNUTLS_TPM_KEY_SIGNING (1<<1)
-#define GNUTLS_TPM_REGISTER_KEY (1<<2)
-#define GNUTLS_TPM_KEY_USER (1<<3)
+# define GNUTLS_TPM_KEY_SIGNING (1<<1)
+# define GNUTLS_TPM_REGISTER_KEY (1<<2)
+# define GNUTLS_TPM_KEY_USER (1<<3)
/**
* gnutls_tpmkey_fmt_t:
@@ -77,4 +77,4 @@ int gnutls_tpm_privkey_delete(const char *url, const char *srk_password);
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_TPM_H */
+#endif /* GNUTLS_TPM_H */
diff --git a/lib/includes/gnutls/urls.h b/lib/includes/gnutls/urls.h
index f4fd5a7915..87ab5e6db5 100644
--- a/lib/includes/gnutls/urls.h
+++ b/lib/includes/gnutls/urls.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_URLS_H
-#define GNUTLS_URLS_H
+# define GNUTLS_URLS_H
-#include <gnutls/gnutls.h>
-#include <gnutls/x509.h>
-#include <gnutls/abstract.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/x509.h>
+# include <gnutls/abstract.h>
/* This API allows to register application specific URLs for
* keys and certificates.
@@ -38,10 +38,10 @@ extern "C" {
/* *INDENT-ON* */
typedef int (*gnutls_privkey_import_url_func)(gnutls_privkey_t pkey,
- const char *url, unsigned flags);
+ const char *url, unsigned flags);
typedef int (*gnutls_x509_crt_import_url_func)(gnutls_x509_crt_t pkey,
- const char *url, unsigned flags);
+ const char *url, unsigned flags);
/* The following callbacks are optional */
@@ -53,8 +53,10 @@ typedef int (*gnutls_pubkey_import_url_func)(gnutls_pubkey_t pkey,
* the initial certificate URL and the certificate to find its issuer, and must
* return zero and the DER encoding of the issuer's certificate. If not available,
* it should return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE. */
-typedef int (*gnutls_get_raw_issuer_func)(const char *url, gnutls_x509_crt_t crt,
- gnutls_datum_t *issuer_der, unsigned flags);
+typedef int (*gnutls_get_raw_issuer_func)(const char *url,
+ gnutls_x509_crt_t crt,
+ gnutls_datum_t * issuer_der,
+ unsigned flags);
typedef struct gnutls_custom_url_st {
const char *name;
@@ -63,11 +65,11 @@ typedef struct gnutls_custom_url_st {
gnutls_x509_crt_import_url_func import_crt;
gnutls_pubkey_import_url_func import_pubkey;
gnutls_get_raw_issuer_func get_issuer;
- void *future1; /* replace in a future extension */
- void *future2; /* replace in a future extension */
+ void *future1; /* replace in a future extension */
+ void *future2; /* replace in a future extension */
} gnutls_custom_url_st;
-int gnutls_register_custom_url(const gnutls_custom_url_st *st);
+int gnutls_register_custom_url(const gnutls_custom_url_st * st);
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -75,4 +77,4 @@ int gnutls_register_custom_url(const gnutls_custom_url_st *st);
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_URLS_H */
+#endif /* GNUTLS_URLS_H */
diff --git a/lib/includes/gnutls/x509-ext.h b/lib/includes/gnutls/x509-ext.h
index 459c1e8b14..a164e4af73 100644
--- a/lib/includes/gnutls/x509-ext.h
+++ b/lib/includes/gnutls/x509-ext.h
@@ -23,10 +23,10 @@
/* Prototypes for direct handling of extension data */
#ifndef GNUTLS_X509_EXT_H
-#define GNUTLS_X509_EXT_H
+# define GNUTLS_X509_EXT_H
-#include <gnutls/gnutls.h>
-#include <gnutls/x509.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/x509.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -38,141 +38,140 @@ typedef struct gnutls_subject_alt_names_st *gnutls_subject_alt_names_t;
int gnutls_subject_alt_names_init(gnutls_subject_alt_names_t *);
void gnutls_subject_alt_names_deinit(gnutls_subject_alt_names_t sans);
-int gnutls_subject_alt_names_get(gnutls_subject_alt_names_t sans, unsigned int seq,
- unsigned int *san_type, gnutls_datum_t * san,
+int gnutls_subject_alt_names_get(gnutls_subject_alt_names_t sans,
+ unsigned int seq, unsigned int *san_type,
+ gnutls_datum_t * san,
gnutls_datum_t * othername_oid);
int gnutls_subject_alt_names_set(gnutls_subject_alt_names_t sans,
unsigned int san_type,
const gnutls_datum_t * san,
- const char* othername_oid);
-
+ const char *othername_oid);
int gnutls_x509_ext_import_subject_alt_names(const gnutls_datum_t * ext,
- gnutls_subject_alt_names_t,
- unsigned int flags);
+ gnutls_subject_alt_names_t,
+ unsigned int flags);
int gnutls_x509_ext_export_subject_alt_names(gnutls_subject_alt_names_t,
- gnutls_datum_t * ext);
+ gnutls_datum_t * ext);
/* They are exactly the same */
-#define gnutls_x509_ext_import_issuer_alt_name gnutls_x509_ext_import_subject_alt_name
-#define gnutls_x509_ext_export_issuer_alt_name gnutls_x509_ext_export_subject_alt_name
+# define gnutls_x509_ext_import_issuer_alt_name gnutls_x509_ext_import_subject_alt_name
+# define gnutls_x509_ext_export_issuer_alt_name gnutls_x509_ext_export_subject_alt_name
typedef struct gnutls_x509_crl_dist_points_st *gnutls_x509_crl_dist_points_t;
int gnutls_x509_crl_dist_points_init(gnutls_x509_crl_dist_points_t *);
void gnutls_x509_crl_dist_points_deinit(gnutls_x509_crl_dist_points_t);
-int gnutls_x509_crl_dist_points_get(gnutls_x509_crl_dist_points_t, unsigned int seq,
- unsigned int *type,
- gnutls_datum_t *dist, unsigned int *reason_flags);
+int gnutls_x509_crl_dist_points_get(gnutls_x509_crl_dist_points_t,
+ unsigned int seq, unsigned int *type,
+ gnutls_datum_t * dist,
+ unsigned int *reason_flags);
int gnutls_x509_crl_dist_points_set(gnutls_x509_crl_dist_points_t,
- gnutls_x509_subject_alt_name_t type,
- const gnutls_datum_t *dist, unsigned int reason_flags);
+ gnutls_x509_subject_alt_name_t type,
+ const gnutls_datum_t * dist,
+ unsigned int reason_flags);
int gnutls_x509_ext_import_crl_dist_points(const gnutls_datum_t * ext,
- gnutls_x509_crl_dist_points_t dp,
- unsigned int flags);
+ gnutls_x509_crl_dist_points_t dp,
+ unsigned int flags);
int gnutls_x509_ext_export_crl_dist_points(gnutls_x509_crl_dist_points_t dp,
- gnutls_datum_t * ext);
+ gnutls_datum_t * ext);
int gnutls_x509_ext_import_name_constraints(const gnutls_datum_t * ext,
- gnutls_x509_name_constraints_t nc,
- unsigned int flags);
+ gnutls_x509_name_constraints_t nc,
+ unsigned int flags);
int gnutls_x509_ext_export_name_constraints(gnutls_x509_name_constraints_t nc,
- gnutls_datum_t * ext);
+ gnutls_datum_t * ext);
typedef struct gnutls_x509_aia_st *gnutls_x509_aia_t;
int gnutls_x509_aia_init(gnutls_x509_aia_t *);
void gnutls_x509_aia_deinit(gnutls_x509_aia_t);
int gnutls_x509_aia_get(gnutls_x509_aia_t aia, unsigned int seq,
- gnutls_datum_t *oid,
- unsigned *san_type,
- gnutls_datum_t *san);
+ gnutls_datum_t * oid,
+ unsigned *san_type, gnutls_datum_t * san);
int gnutls_x509_aia_set(gnutls_x509_aia_t aia,
const char *oid,
- unsigned san_type,
- const gnutls_datum_t * san);
+ unsigned san_type, const gnutls_datum_t * san);
int gnutls_x509_ext_import_aia(const gnutls_datum_t * ext,
- gnutls_x509_aia_t,
- unsigned int flags);
-int gnutls_x509_ext_export_aia(gnutls_x509_aia_t aia,
- gnutls_datum_t * ext);
+ gnutls_x509_aia_t, unsigned int flags);
+int gnutls_x509_ext_export_aia(gnutls_x509_aia_t aia, gnutls_datum_t * ext);
int gnutls_x509_ext_import_subject_key_id(const gnutls_datum_t * ext,
- gnutls_datum_t * id);
+ gnutls_datum_t * id);
int gnutls_x509_ext_export_subject_key_id(const gnutls_datum_t * id,
- gnutls_datum_t * ext);
+ gnutls_datum_t * ext);
typedef struct gnutls_x509_aki_st *gnutls_x509_aki_t;
int gnutls_x509_ext_export_authority_key_id(gnutls_x509_aki_t,
- gnutls_datum_t * ext);
+ gnutls_datum_t * ext);
int gnutls_x509_ext_import_authority_key_id(const gnutls_datum_t * ext,
- gnutls_x509_aki_t,
- unsigned int flags);
+ gnutls_x509_aki_t,
+ unsigned int flags);
-int gnutls_x509_othername_to_virtual(const char *oid,
- const gnutls_datum_t *othername,
+int gnutls_x509_othername_to_virtual(const char *oid,
+ const gnutls_datum_t * othername,
unsigned int *virt_type,
- gnutls_datum_t *virt);
+ gnutls_datum_t * virt);
int gnutls_x509_aki_init(gnutls_x509_aki_t *);
-int gnutls_x509_aki_get_id(gnutls_x509_aki_t, gnutls_datum_t *id);
+int gnutls_x509_aki_get_id(gnutls_x509_aki_t, gnutls_datum_t * id);
int gnutls_x509_aki_get_cert_issuer(gnutls_x509_aki_t aki, unsigned int seq,
- unsigned int *san_type, gnutls_datum_t * san,
- gnutls_datum_t *othername_oid,
- gnutls_datum_t *serial);
-int gnutls_x509_aki_set_id(gnutls_x509_aki_t aki, const gnutls_datum_t *id);
-int gnutls_x509_aki_set_cert_issuer(gnutls_x509_aki_t aki,
- unsigned int san_type,
- const gnutls_datum_t * san,
- const char *othername_oid,
- const gnutls_datum_t * serial);
+ unsigned int *san_type,
+ gnutls_datum_t * san,
+ gnutls_datum_t * othername_oid,
+ gnutls_datum_t * serial);
+int gnutls_x509_aki_set_id(gnutls_x509_aki_t aki, const gnutls_datum_t * id);
+int gnutls_x509_aki_set_cert_issuer(gnutls_x509_aki_t aki,
+ unsigned int san_type,
+ const gnutls_datum_t * san,
+ const char *othername_oid,
+ const gnutls_datum_t * serial);
void gnutls_x509_aki_deinit(gnutls_x509_aki_t);
int gnutls_x509_ext_import_private_key_usage_period(const gnutls_datum_t * ext,
- time_t * activation,
- time_t * expiration);
+ time_t * activation,
+ time_t * expiration);
int gnutls_x509_ext_export_private_key_usage_period(time_t activation,
- time_t expiration,
- gnutls_datum_t * ext);
+ time_t expiration,
+ gnutls_datum_t * ext);
int gnutls_x509_ext_import_basic_constraints(const gnutls_datum_t * ext,
- unsigned int *ca, int *pathlen);
+ unsigned int *ca, int *pathlen);
int gnutls_x509_ext_export_basic_constraints(unsigned int ca, int pathlen,
- gnutls_datum_t * ext);
+ gnutls_datum_t * ext);
typedef struct gnutls_x509_key_purposes_st *gnutls_x509_key_purposes_t;
-int gnutls_x509_key_purpose_init(gnutls_x509_key_purposes_t *p);
+int gnutls_x509_key_purpose_init(gnutls_x509_key_purposes_t * p);
void gnutls_x509_key_purpose_deinit(gnutls_x509_key_purposes_t p);
int gnutls_x509_key_purpose_set(gnutls_x509_key_purposes_t p, const char *oid);
-int gnutls_x509_key_purpose_get(gnutls_x509_key_purposes_t p, unsigned idx, gnutls_datum_t *oid);
+int gnutls_x509_key_purpose_get(gnutls_x509_key_purposes_t p, unsigned idx,
+ gnutls_datum_t * oid);
int gnutls_x509_ext_import_key_purposes(const gnutls_datum_t * ext,
- gnutls_x509_key_purposes_t,
- unsigned int flags);
+ gnutls_x509_key_purposes_t,
+ unsigned int flags);
int gnutls_x509_ext_export_key_purposes(gnutls_x509_key_purposes_t,
- gnutls_datum_t * ext);
-
+ gnutls_datum_t * ext);
int gnutls_x509_ext_import_key_usage(const gnutls_datum_t * ext,
- unsigned int *key_usage);
+ unsigned int *key_usage);
int gnutls_x509_ext_export_key_usage(unsigned int key_usage,
- gnutls_datum_t * ext);
+ gnutls_datum_t * ext);
int gnutls_x509_ext_import_inhibit_anypolicy(const gnutls_datum_t * ext,
- unsigned int *skipcerts);
+ unsigned int *skipcerts);
int gnutls_x509_ext_export_inhibit_anypolicy(unsigned int skipcerts,
- gnutls_datum_t * ext);
+ gnutls_datum_t * ext);
int gnutls_x509_ext_import_proxy(const gnutls_datum_t * ext, int *pathlen,
- char **policyLanguage, char **policy,
- size_t * sizeof_policy);
-int gnutls_x509_ext_export_proxy(int pathLenConstraint, const char *policyLanguage,
- const char *policy, size_t sizeof_policy,
- gnutls_datum_t * ext);
+ char **policyLanguage, char **policy,
+ size_t *sizeof_policy);
+int gnutls_x509_ext_export_proxy(int pathLenConstraint,
+ const char *policyLanguage, const char *policy,
+ size_t sizeof_policy, gnutls_datum_t * ext);
typedef struct gnutls_x509_policies_st *gnutls_x509_policies_t;
@@ -180,40 +179,41 @@ int gnutls_x509_policies_init(gnutls_x509_policies_t *);
void gnutls_x509_policies_deinit(gnutls_x509_policies_t);
int gnutls_x509_policies_get(gnutls_x509_policies_t policies, unsigned int seq,
- struct gnutls_x509_policy_st *policy);
+ struct gnutls_x509_policy_st *policy);
int gnutls_x509_policies_set(gnutls_x509_policies_t policies,
- const struct gnutls_x509_policy_st *policy);
+ const struct gnutls_x509_policy_st *policy);
-int gnutls_x509_ext_import_policies(const gnutls_datum_t * ext, gnutls_x509_policies_t
- policies,
- unsigned int flags);
+int gnutls_x509_ext_import_policies(const gnutls_datum_t * ext,
+ gnutls_x509_policies_t policies,
+ unsigned int flags);
int gnutls_x509_ext_export_policies(gnutls_x509_policies_t policies,
- gnutls_datum_t * ext);
+ gnutls_datum_t * ext);
int gnutls_x509_ext_import_tlsfeatures(const gnutls_datum_t * ext,
- gnutls_x509_tlsfeatures_t,
- unsigned int flags);
+ gnutls_x509_tlsfeatures_t,
+ unsigned int flags);
int gnutls_x509_ext_export_tlsfeatures(gnutls_x509_tlsfeatures_t f,
- gnutls_datum_t * ext);
+ gnutls_datum_t * ext);
-int gnutls_x509_tlsfeatures_add(gnutls_x509_tlsfeatures_t f, unsigned int feature);
+int gnutls_x509_tlsfeatures_add(gnutls_x509_tlsfeatures_t f,
+ unsigned int feature);
typedef struct gnutls_x509_ct_scts_st *gnutls_x509_ct_scts_t;
int gnutls_x509_ext_ct_scts_init(gnutls_x509_ct_scts_t * scts);
void gnutls_x509_ext_ct_scts_deinit(gnutls_x509_ct_scts_t scts);
int gnutls_x509_ext_ct_import_scts(const gnutls_datum_t * ext,
- gnutls_x509_ct_scts_t scts, unsigned int flags);
-int gnutls_x509_ext_ct_export_scts(const gnutls_x509_ct_scts_t scts, gnutls_datum_t * ext);
-int gnutls_x509_ct_sct_get_version(const gnutls_x509_ct_scts_t scts, unsigned idx,
- unsigned int *version_out);
-int gnutls_x509_ct_sct_get(const gnutls_x509_ct_scts_t scts,
- unsigned idx,
- time_t *timestamp,
- gnutls_datum_t *logid,
- gnutls_sign_algorithm_t *sigalg,
- gnutls_datum_t *signature);
+ gnutls_x509_ct_scts_t scts,
+ unsigned int flags);
+int gnutls_x509_ext_ct_export_scts(const gnutls_x509_ct_scts_t scts,
+ gnutls_datum_t * ext);
+int gnutls_x509_ct_sct_get_version(const gnutls_x509_ct_scts_t scts,
+ unsigned idx, unsigned int *version_out);
+int gnutls_x509_ct_sct_get(const gnutls_x509_ct_scts_t scts, unsigned idx,
+ time_t * timestamp, gnutls_datum_t * logid,
+ gnutls_sign_algorithm_t * sigalg,
+ gnutls_datum_t * signature);
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -221,4 +221,4 @@ int gnutls_x509_ct_sct_get(const gnutls_x509_ct_scts_t scts,
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_X509_EXT_H */
+#endif /* GNUTLS_X509_EXT_H */
diff --git a/lib/includes/gnutls/x509.h b/lib/includes/gnutls/x509.h
index 5ac601a0a9..38db3082c0 100644
--- a/lib/includes/gnutls/x509.h
+++ b/lib/includes/gnutls/x509.h
@@ -26,9 +26,9 @@
*/
#ifndef GNUTLS_X509_H
-#define GNUTLS_X509_H
+# define GNUTLS_X509_H
-#include <gnutls/gnutls.h>
+# include <gnutls/gnutls.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -39,77 +39,77 @@ extern "C" {
/* Some OIDs usually found in Distinguished names, or
* in Subject Directory Attribute extensions.
*/
-#define GNUTLS_OID_X520_COUNTRY_NAME "2.5.4.6"
-#define GNUTLS_OID_X520_ORGANIZATION_NAME "2.5.4.10"
-#define GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME "2.5.4.11"
-#define GNUTLS_OID_X520_COMMON_NAME "2.5.4.3"
-#define GNUTLS_OID_X520_LOCALITY_NAME "2.5.4.7"
-#define GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME "2.5.4.8"
-
-#define GNUTLS_OID_X520_INITIALS "2.5.4.43"
-#define GNUTLS_OID_X520_GENERATION_QUALIFIER "2.5.4.44"
-#define GNUTLS_OID_X520_SURNAME "2.5.4.4"
-#define GNUTLS_OID_X520_GIVEN_NAME "2.5.4.42"
-#define GNUTLS_OID_X520_TITLE "2.5.4.12"
-#define GNUTLS_OID_X520_DN_QUALIFIER "2.5.4.46"
-#define GNUTLS_OID_X520_PSEUDONYM "2.5.4.65"
-#define GNUTLS_OID_X520_POSTALCODE "2.5.4.17"
-#define GNUTLS_OID_X520_NAME "2.5.4.41"
-
-#define GNUTLS_OID_LDAP_DC "0.9.2342.19200300.100.1.25"
-#define GNUTLS_OID_LDAP_UID "0.9.2342.19200300.100.1.1"
+# define GNUTLS_OID_X520_COUNTRY_NAME "2.5.4.6"
+# define GNUTLS_OID_X520_ORGANIZATION_NAME "2.5.4.10"
+# define GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME "2.5.4.11"
+# define GNUTLS_OID_X520_COMMON_NAME "2.5.4.3"
+# define GNUTLS_OID_X520_LOCALITY_NAME "2.5.4.7"
+# define GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME "2.5.4.8"
+
+# define GNUTLS_OID_X520_INITIALS "2.5.4.43"
+# define GNUTLS_OID_X520_GENERATION_QUALIFIER "2.5.4.44"
+# define GNUTLS_OID_X520_SURNAME "2.5.4.4"
+# define GNUTLS_OID_X520_GIVEN_NAME "2.5.4.42"
+# define GNUTLS_OID_X520_TITLE "2.5.4.12"
+# define GNUTLS_OID_X520_DN_QUALIFIER "2.5.4.46"
+# define GNUTLS_OID_X520_PSEUDONYM "2.5.4.65"
+# define GNUTLS_OID_X520_POSTALCODE "2.5.4.17"
+# define GNUTLS_OID_X520_NAME "2.5.4.41"
+
+# define GNUTLS_OID_LDAP_DC "0.9.2342.19200300.100.1.25"
+# define GNUTLS_OID_LDAP_UID "0.9.2342.19200300.100.1.1"
/* The following should not be included in DN.
*/
-#define GNUTLS_OID_PKCS9_EMAIL "1.2.840.113549.1.9.1"
+# define GNUTLS_OID_PKCS9_EMAIL "1.2.840.113549.1.9.1"
-#define GNUTLS_OID_PKIX_DATE_OF_BIRTH "1.3.6.1.5.5.7.9.1"
-#define GNUTLS_OID_PKIX_PLACE_OF_BIRTH "1.3.6.1.5.5.7.9.2"
-#define GNUTLS_OID_PKIX_GENDER "1.3.6.1.5.5.7.9.3"
-#define GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP "1.3.6.1.5.5.7.9.4"
-#define GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE "1.3.6.1.5.5.7.9.5"
+# define GNUTLS_OID_PKIX_DATE_OF_BIRTH "1.3.6.1.5.5.7.9.1"
+# define GNUTLS_OID_PKIX_PLACE_OF_BIRTH "1.3.6.1.5.5.7.9.2"
+# define GNUTLS_OID_PKIX_GENDER "1.3.6.1.5.5.7.9.3"
+# define GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP "1.3.6.1.5.5.7.9.4"
+# define GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE "1.3.6.1.5.5.7.9.5"
/* Key purpose Object Identifiers.
*/
-#define GNUTLS_KP_TLS_WWW_SERVER "1.3.6.1.5.5.7.3.1"
-#define GNUTLS_KP_TLS_WWW_CLIENT "1.3.6.1.5.5.7.3.2"
-#define GNUTLS_KP_CODE_SIGNING "1.3.6.1.5.5.7.3.3"
-#define GNUTLS_KP_MS_SMART_CARD_LOGON "1.3.6.1.4.1.311.20.2.2"
-#define GNUTLS_KP_EMAIL_PROTECTION "1.3.6.1.5.5.7.3.4"
-#define GNUTLS_KP_TIME_STAMPING "1.3.6.1.5.5.7.3.8"
-#define GNUTLS_KP_OCSP_SIGNING "1.3.6.1.5.5.7.3.9"
-#define GNUTLS_KP_IPSEC_IKE "1.3.6.1.5.5.7.3.17"
-#define GNUTLS_KP_ANY "2.5.29.37.0"
-
-#define GNUTLS_KP_FLAG_DISALLOW_ANY 1
-
-#define GNUTLS_OID_AIA "1.3.6.1.5.5.7.1.1"
-#define GNUTLS_OID_AD_OCSP "1.3.6.1.5.5.7.48.1"
-#define GNUTLS_OID_AD_CAISSUERS "1.3.6.1.5.5.7.48.2"
-
-#define GNUTLS_FSAN_SET 0
-#define GNUTLS_FSAN_APPEND 1
-#define GNUTLS_FSAN_ENCODE_OCTET_STRING (1<<1)
-#define GNUTLS_FSAN_ENCODE_UTF8_STRING (1<<2)
-
-#define GNUTLS_X509EXT_OID_SUBJECT_KEY_ID "2.5.29.14"
-#define GNUTLS_X509EXT_OID_KEY_USAGE "2.5.29.15"
-#define GNUTLS_X509EXT_OID_PRIVATE_KEY_USAGE_PERIOD "2.5.29.16"
-#define GNUTLS_X509EXT_OID_SAN "2.5.29.17"
-#define GNUTLS_X509EXT_OID_IAN "2.5.29.18"
-#define GNUTLS_X509EXT_OID_BASIC_CONSTRAINTS "2.5.29.19"
-#define GNUTLS_X509EXT_OID_NAME_CONSTRAINTS "2.5.29.30"
-#define GNUTLS_X509EXT_OID_CRL_DIST_POINTS "2.5.29.31"
-#define GNUTLS_X509EXT_OID_CRT_POLICY "2.5.29.32"
-#define GNUTLS_X509EXT_OID_AUTHORITY_KEY_ID "2.5.29.35"
-#define GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE "2.5.29.37"
-#define GNUTLS_X509EXT_OID_INHIBIT_ANYPOLICY "2.5.29.52"
-#define GNUTLS_X509EXT_OID_AUTHORITY_INFO_ACCESS "1.3.6.1.5.5.7.1.1"
-#define GNUTLS_X509EXT_OID_PROXY_CRT_INFO "1.3.6.1.5.5.7.1.14"
-#define GNUTLS_X509EXT_OID_TLSFEATURES "1.3.6.1.5.5.7.1.24"
-#define GNUTLS_X509EXT_OID_CT_SCT_V1 "1.3.6.1.4.1.11129.2.4.2"
-
-#define GNUTLS_X509_OID_POLICY_ANY "2.5.29.54"
+# define GNUTLS_KP_TLS_WWW_SERVER "1.3.6.1.5.5.7.3.1"
+# define GNUTLS_KP_TLS_WWW_CLIENT "1.3.6.1.5.5.7.3.2"
+# define GNUTLS_KP_CODE_SIGNING "1.3.6.1.5.5.7.3.3"
+# define GNUTLS_KP_MS_SMART_CARD_LOGON "1.3.6.1.4.1.311.20.2.2"
+# define GNUTLS_KP_EMAIL_PROTECTION "1.3.6.1.5.5.7.3.4"
+# define GNUTLS_KP_TIME_STAMPING "1.3.6.1.5.5.7.3.8"
+# define GNUTLS_KP_OCSP_SIGNING "1.3.6.1.5.5.7.3.9"
+# define GNUTLS_KP_IPSEC_IKE "1.3.6.1.5.5.7.3.17"
+# define GNUTLS_KP_ANY "2.5.29.37.0"
+
+# define GNUTLS_KP_FLAG_DISALLOW_ANY 1
+
+# define GNUTLS_OID_AIA "1.3.6.1.5.5.7.1.1"
+# define GNUTLS_OID_AD_OCSP "1.3.6.1.5.5.7.48.1"
+# define GNUTLS_OID_AD_CAISSUERS "1.3.6.1.5.5.7.48.2"
+
+# define GNUTLS_FSAN_SET 0
+# define GNUTLS_FSAN_APPEND 1
+# define GNUTLS_FSAN_ENCODE_OCTET_STRING (1<<1)
+# define GNUTLS_FSAN_ENCODE_UTF8_STRING (1<<2)
+
+# define GNUTLS_X509EXT_OID_SUBJECT_KEY_ID "2.5.29.14"
+# define GNUTLS_X509EXT_OID_KEY_USAGE "2.5.29.15"
+# define GNUTLS_X509EXT_OID_PRIVATE_KEY_USAGE_PERIOD "2.5.29.16"
+# define GNUTLS_X509EXT_OID_SAN "2.5.29.17"
+# define GNUTLS_X509EXT_OID_IAN "2.5.29.18"
+# define GNUTLS_X509EXT_OID_BASIC_CONSTRAINTS "2.5.29.19"
+# define GNUTLS_X509EXT_OID_NAME_CONSTRAINTS "2.5.29.30"
+# define GNUTLS_X509EXT_OID_CRL_DIST_POINTS "2.5.29.31"
+# define GNUTLS_X509EXT_OID_CRT_POLICY "2.5.29.32"
+# define GNUTLS_X509EXT_OID_AUTHORITY_KEY_ID "2.5.29.35"
+# define GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE "2.5.29.37"
+# define GNUTLS_X509EXT_OID_INHIBIT_ANYPOLICY "2.5.29.52"
+# define GNUTLS_X509EXT_OID_AUTHORITY_INFO_ACCESS "1.3.6.1.5.5.7.1.1"
+# define GNUTLS_X509EXT_OID_PROXY_CRT_INFO "1.3.6.1.5.5.7.1.14"
+# define GNUTLS_X509EXT_OID_TLSFEATURES "1.3.6.1.5.5.7.1.24"
+# define GNUTLS_X509EXT_OID_CT_SCT_V1 "1.3.6.1.4.1.11129.2.4.2"
+
+# define GNUTLS_X509_OID_POLICY_ANY "2.5.29.54"
/* Certificate handling functions.
*/
@@ -128,8 +128,8 @@ extern "C" {
*/
typedef enum gnutls_certificate_import_flags {
GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED = 1,
- GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED = 1<<1,
- GNUTLS_X509_CRT_LIST_SORT = 1<<2
+ GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED = 1 << 1,
+ GNUTLS_X509_CRT_LIST_SORT = 1 << 2
} gnutls_certificate_import_flags;
int gnutls_x509_crt_init(gnutls_x509_crt_t * cert);
@@ -148,8 +148,10 @@ typedef enum gnutls_x509_crt_flags {
} gnutls_x509_crt_flags;
void gnutls_x509_crt_set_flags(gnutls_x509_crt_t cert, unsigned flags);
-unsigned gnutls_x509_crt_equals(gnutls_x509_crt_t cert1, gnutls_x509_crt_t cert2);
-unsigned gnutls_x509_crt_equals2(gnutls_x509_crt_t cert1, const gnutls_datum_t * der);
+unsigned gnutls_x509_crt_equals(gnutls_x509_crt_t cert1,
+ gnutls_x509_crt_t cert2);
+unsigned gnutls_x509_crt_equals2(gnutls_x509_crt_t cert1,
+ const gnutls_datum_t * der);
int gnutls_x509_crt_import(gnutls_x509_crt_t cert,
const gnutls_datum_t * data,
@@ -166,24 +168,22 @@ int gnutls_x509_crt_list_import(gnutls_x509_crt_t * certs,
unsigned int flags);
int gnutls_x509_crt_import_url(gnutls_x509_crt_t crt,
- const char *url, unsigned int flags
- /* GNUTLS_PKCS11_OBJ_FLAG_* */
+ const char *url, unsigned int flags
+ /* GNUTLS_PKCS11_OBJ_FLAG_* */
);
int
-gnutls_x509_crt_list_import_url(gnutls_x509_crt_t **certs,
+gnutls_x509_crt_list_import_url(gnutls_x509_crt_t ** certs,
unsigned int *size,
const char *url,
gnutls_pin_callback_t pin_fn,
- void *pin_fn_userdata,
- unsigned int flags);
+ void *pin_fn_userdata, unsigned int flags);
int gnutls_x509_crt_export(gnutls_x509_crt_t cert,
gnutls_x509_crt_fmt_t format,
- void *output_data, size_t * output_data_size);
+ void *output_data, size_t *output_data_size);
int gnutls_x509_crt_export2(gnutls_x509_crt_t cert,
- gnutls_x509_crt_fmt_t format,
- gnutls_datum_t * out);
+ gnutls_x509_crt_fmt_t format, gnutls_datum_t * out);
int gnutls_x509_crt_get_private_key_usage_period(gnutls_x509_crt_t
cert,
time_t *
@@ -193,37 +193,36 @@ int gnutls_x509_crt_get_private_key_usage_period(gnutls_x509_crt_t
*critical);
int gnutls_x509_crt_get_issuer_dn(gnutls_x509_crt_t cert,
- char *buf, size_t * buf_size);
-int gnutls_x509_crt_get_issuer_dn2(gnutls_x509_crt_t cert,
- gnutls_datum_t * dn);
+ char *buf, size_t *buf_size);
+int gnutls_x509_crt_get_issuer_dn2(gnutls_x509_crt_t cert, gnutls_datum_t * dn);
int gnutls_x509_crt_get_issuer_dn3(gnutls_x509_crt_t cert,
gnutls_datum_t * dn, unsigned flags);
int gnutls_x509_crt_get_issuer_dn_oid(gnutls_x509_crt_t cert,
unsigned indx, void *oid,
- size_t * oid_size);
+ size_t *oid_size);
int gnutls_x509_crt_get_issuer_dn_by_oid(gnutls_x509_crt_t cert,
const char *oid, unsigned indx,
unsigned int raw_flag,
- void *buf, size_t * buf_size);
+ void *buf, size_t *buf_size);
-int gnutls_x509_crt_get_dn(gnutls_x509_crt_t cert, char *buf,
- size_t * buf_size);
+int gnutls_x509_crt_get_dn(gnutls_x509_crt_t cert, char *buf, size_t *buf_size);
int gnutls_x509_crt_get_dn2(gnutls_x509_crt_t cert, gnutls_datum_t * dn);
-int gnutls_x509_crt_get_dn3(gnutls_x509_crt_t cert, gnutls_datum_t * dn, unsigned flags);
+int gnutls_x509_crt_get_dn3(gnutls_x509_crt_t cert, gnutls_datum_t * dn,
+ unsigned flags);
int gnutls_x509_crt_get_dn_oid(gnutls_x509_crt_t cert, unsigned indx,
- void *oid, size_t * oid_size);
+ void *oid, size_t *oid_size);
int gnutls_x509_crt_get_dn_by_oid(gnutls_x509_crt_t cert,
const char *oid, unsigned indx,
unsigned int raw_flag, void *buf,
- size_t * buf_size);
+ size_t *buf_size);
unsigned gnutls_x509_crt_check_hostname(gnutls_x509_crt_t cert,
- const char *hostname);
+ const char *hostname);
unsigned gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert,
- const char *hostname, unsigned int flags);
-unsigned
-gnutls_x509_crt_check_email(gnutls_x509_crt_t cert,
- const char *email, unsigned int flags);
+ const char *hostname,
+ unsigned int flags);
+unsigned gnutls_x509_crt_check_email(gnutls_x509_crt_t cert, const char *email,
+ unsigned int flags);
unsigned
gnutls_x509_crt_check_ip(gnutls_x509_crt_t cert,
@@ -232,11 +231,13 @@ gnutls_x509_crt_check_ip(gnutls_x509_crt_t cert,
int gnutls_x509_crt_get_signature_algorithm(gnutls_x509_crt_t cert);
int gnutls_x509_crt_get_signature(gnutls_x509_crt_t cert,
- char *sig, size_t * sizeof_sig);
+ char *sig, size_t *sizeof_sig);
int gnutls_x509_crt_get_version(gnutls_x509_crt_t cert);
-int gnutls_x509_crt_get_pk_oid(gnutls_x509_crt_t cert, char *oid, size_t *oid_size);
-int gnutls_x509_crt_get_signature_oid(gnutls_x509_crt_t cert, char *oid, size_t *oid_size);
+int gnutls_x509_crt_get_pk_oid(gnutls_x509_crt_t cert, char *oid,
+ size_t *oid_size);
+int gnutls_x509_crt_get_signature_oid(gnutls_x509_crt_t cert, char *oid,
+ size_t *oid_size);
/**
* gnutls_keyid_flags_t:
@@ -250,14 +251,14 @@ int gnutls_x509_crt_get_signature_oid(gnutls_x509_crt_t cert, char *oid, size_t
*/
typedef enum {
GNUTLS_KEYID_USE_SHA1 = 0,
- GNUTLS_KEYID_USE_SHA256 = (1<<0),
- GNUTLS_KEYID_USE_SHA512 = (1<<1),
- GNUTLS_KEYID_USE_BEST_KNOWN = (1<<30)
+ GNUTLS_KEYID_USE_SHA256 = (1 << 0),
+ GNUTLS_KEYID_USE_SHA512 = (1 << 1),
+ GNUTLS_KEYID_USE_BEST_KNOWN = (1 << 30)
} gnutls_keyid_flags_t;
int gnutls_x509_crt_get_key_id(gnutls_x509_crt_t crt,
unsigned int flags,
unsigned char *output_data,
- size_t * output_data_size);
+ size_t *output_data_size);
int gnutls_x509_crt_set_private_key_usage_period(gnutls_x509_crt_t
crt,
@@ -267,34 +268,32 @@ int gnutls_x509_crt_set_authority_key_id(gnutls_x509_crt_t cert,
const void *id, size_t id_size);
int gnutls_x509_crt_get_authority_key_id(gnutls_x509_crt_t cert,
void *id,
- size_t * id_size,
+ size_t *id_size,
unsigned int *critical);
int gnutls_x509_crt_get_authority_key_gn_serial(gnutls_x509_crt_t
cert,
unsigned int seq,
void *alt,
- size_t * alt_size,
- unsigned int
+ size_t *alt_size, unsigned int
*alt_type,
void *serial,
- size_t *
- serial_size, unsigned int
+ size_t *serial_size,
+ unsigned int
*critical);
int gnutls_x509_crt_get_subject_key_id(gnutls_x509_crt_t cert,
void *ret,
- size_t * ret_size,
+ size_t *ret_size,
unsigned int *critical);
int gnutls_x509_crt_get_subject_unique_id(gnutls_x509_crt_t crt,
- char *buf, size_t * buf_size);
+ char *buf, size_t *buf_size);
int gnutls_x509_crt_get_issuer_unique_id(gnutls_x509_crt_t crt,
- char *buf, size_t * buf_size);
+ char *buf, size_t *buf_size);
void gnutls_x509_crt_set_pin_function(gnutls_x509_crt_t crt,
- gnutls_pin_callback_t fn,
- void *userdata);
+ gnutls_pin_callback_t fn, void *userdata);
/**
* gnutls_info_access_what_t:
@@ -329,41 +328,45 @@ int gnutls_x509_crt_get_authority_info_access(gnutls_x509_crt_t
typedef struct gnutls_name_constraints_st *gnutls_x509_name_constraints_t;
unsigned gnutls_x509_name_constraints_check(gnutls_x509_name_constraints_t nc,
- gnutls_x509_subject_alt_name_t type,
- const gnutls_datum_t * name);
-unsigned gnutls_x509_name_constraints_check_crt(gnutls_x509_name_constraints_t nc,
- gnutls_x509_subject_alt_name_t type,
- gnutls_x509_crt_t crt);
-
-int gnutls_x509_name_constraints_init(gnutls_x509_name_constraints_t *nc);
+ gnutls_x509_subject_alt_name_t type,
+ const gnutls_datum_t * name);
+unsigned gnutls_x509_name_constraints_check_crt(gnutls_x509_name_constraints_t
+ nc,
+ gnutls_x509_subject_alt_name_t
+ type, gnutls_x509_crt_t crt);
+
+int gnutls_x509_name_constraints_init(gnutls_x509_name_constraints_t * nc);
void gnutls_x509_name_constraints_deinit(gnutls_x509_name_constraints_t nc);
-#define GNUTLS_EXT_FLAG_APPEND 1
+# define GNUTLS_EXT_FLAG_APPEND 1
-#define GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND GNUTLS_EXT_FLAG_APPEND
+# define GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND GNUTLS_EXT_FLAG_APPEND
int gnutls_x509_crt_get_name_constraints(gnutls_x509_crt_t crt,
gnutls_x509_name_constraints_t nc,
unsigned int flags,
unsigned int *critical);
-int gnutls_x509_name_constraints_add_permitted(gnutls_x509_name_constraints_t nc,
- gnutls_x509_subject_alt_name_t type,
+int gnutls_x509_name_constraints_add_permitted(gnutls_x509_name_constraints_t
+ nc,
+ gnutls_x509_subject_alt_name_t
+ type,
const gnutls_datum_t * name);
int gnutls_x509_name_constraints_add_excluded(gnutls_x509_name_constraints_t nc,
- gnutls_x509_subject_alt_name_t type,
+ gnutls_x509_subject_alt_name_t
+ type,
const gnutls_datum_t * name);
-int gnutls_x509_crt_set_name_constraints(gnutls_x509_crt_t crt,
+int gnutls_x509_crt_set_name_constraints(gnutls_x509_crt_t crt,
gnutls_x509_name_constraints_t nc,
unsigned int critical);
-int gnutls_x509_name_constraints_get_permitted(gnutls_x509_name_constraints_t nc,
- unsigned idx,
- unsigned *type, gnutls_datum_t * name);
+int gnutls_x509_name_constraints_get_permitted(gnutls_x509_name_constraints_t
+ nc, unsigned idx, unsigned *type,
+ gnutls_datum_t * name);
int gnutls_x509_name_constraints_get_excluded(gnutls_x509_name_constraints_t nc,
- unsigned idx,
- unsigned *type, gnutls_datum_t * name);
-int gnutls_x509_cidr_to_rfc5280(const char *cidr, gnutls_datum_t *cidr_rfc5280);
+ unsigned idx, unsigned *type,
+ gnutls_datum_t * name);
+int gnutls_x509_cidr_to_rfc5280(const char *cidr,
+ gnutls_datum_t * cidr_rfc5280);
-
-#define GNUTLS_CRL_REASON_SUPERSEEDED GNUTLS_CRL_REASON_SUPERSEDED,
+# define GNUTLS_CRL_REASON_SUPERSEEDED GNUTLS_CRL_REASON_SUPERSEDED,
/**
* gnutls_x509_crl_reason_flags_t:
* @GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN: The privileges were withdrawn from the owner.
@@ -394,7 +397,7 @@ typedef enum gnutls_x509_crl_reason_flags_t {
int gnutls_x509_crt_get_crl_dist_points(gnutls_x509_crt_t cert,
unsigned int seq,
void *ret,
- size_t * ret_size,
+ size_t *ret_size,
unsigned int *reason_flags,
unsigned int *critical);
int gnutls_x509_crt_set_crl_dist_points2(gnutls_x509_crt_t crt,
@@ -417,33 +420,34 @@ int gnutls_x509_crl_sign(gnutls_x509_crl_t crl,
int gnutls_x509_crl_sign2(gnutls_x509_crl_t crl,
gnutls_x509_crt_t issuer,
gnutls_x509_privkey_t issuer_key,
- gnutls_digest_algorithm_t dig,
- unsigned int flags);
+ gnutls_digest_algorithm_t dig, unsigned int flags);
time_t gnutls_x509_crt_get_activation_time(gnutls_x509_crt_t cert);
/* This macro is deprecated and defunc; do not use */
-#define GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION ((time_t)4294197631)
+# define GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION ((time_t)4294197631)
time_t gnutls_x509_crt_get_expiration_time(gnutls_x509_crt_t cert);
int gnutls_x509_crt_get_serial(gnutls_x509_crt_t cert,
- void *result, size_t * result_size);
+ void *result, size_t *result_size);
typedef struct gnutls_x509_spki_st *gnutls_x509_spki_t;
-int gnutls_x509_spki_init(gnutls_x509_spki_t *spki);
+int gnutls_x509_spki_init(gnutls_x509_spki_t * spki);
void gnutls_x509_spki_deinit(gnutls_x509_spki_t spki);
int gnutls_x509_spki_get_rsa_pss_params(gnutls_x509_spki_t spki,
- gnutls_digest_algorithm_t *dig, unsigned int *salt_size);
+ gnutls_digest_algorithm_t * dig,
+ unsigned int *salt_size);
void gnutls_x509_spki_set_rsa_pss_params(gnutls_x509_spki_t spki,
- gnutls_digest_algorithm_t dig, unsigned int salt_size);
+ gnutls_digest_algorithm_t dig,
+ unsigned int salt_size);
int gnutls_x509_crt_get_pk_algorithm(gnutls_x509_crt_t cert,
unsigned int *bits);
-int gnutls_x509_crt_set_spki(gnutls_x509_crt_t crt, const gnutls_x509_spki_t spki,
- unsigned int flags);
+int gnutls_x509_crt_set_spki(gnutls_x509_crt_t crt,
+ const gnutls_x509_spki_t spki, unsigned int flags);
int gnutls_x509_crt_get_spki(gnutls_x509_crt_t cert, gnutls_x509_spki_t spki,
unsigned int flags);
@@ -455,49 +459,46 @@ int gnutls_x509_crt_get_pk_dsa_raw(gnutls_x509_crt_t crt,
gnutls_datum_t * g, gnutls_datum_t * y);
int gnutls_x509_crt_get_pk_ecc_raw(gnutls_x509_crt_t crt,
gnutls_ecc_curve_t * curve,
- gnutls_datum_t * x,
- gnutls_datum_t * y);
+ gnutls_datum_t * x, gnutls_datum_t * y);
int gnutls_x509_crt_get_pk_gost_raw(gnutls_x509_crt_t crt,
gnutls_ecc_curve_t * curve,
gnutls_digest_algorithm_t * digest,
- gnutls_gost_paramset_t *paramset,
+ gnutls_gost_paramset_t * paramset,
gnutls_datum_t * x, gnutls_datum_t * y);
int gnutls_x509_crt_get_subject_alt_name(gnutls_x509_crt_t cert,
unsigned int seq,
void *san,
- size_t * san_size,
+ size_t *san_size,
unsigned int *critical);
int gnutls_x509_crt_get_subject_alt_name2(gnutls_x509_crt_t cert,
unsigned int seq,
void *san,
- size_t * san_size,
+ size_t *san_size,
unsigned int *san_type,
unsigned int *critical);
int gnutls_x509_crt_get_subject_alt_othername_oid(gnutls_x509_crt_t
cert,
unsigned int seq,
- void *oid,
- size_t * oid_size);
+ void *oid, size_t *oid_size);
int gnutls_x509_crt_get_issuer_alt_name(gnutls_x509_crt_t cert,
unsigned int seq,
void *ian,
- size_t * ian_size,
+ size_t *ian_size,
unsigned int *critical);
int gnutls_x509_crt_get_issuer_alt_name2(gnutls_x509_crt_t cert,
unsigned int seq,
void *ian,
- size_t * ian_size,
+ size_t *ian_size,
unsigned int *ian_type,
unsigned int *critical);
int gnutls_x509_crt_get_issuer_alt_othername_oid(gnutls_x509_crt_t
cert,
unsigned int seq,
- void *ret,
- size_t * ret_size);
+ void *ret, size_t *ret_size);
int gnutls_x509_crt_get_ca_status(gnutls_x509_crt_t cert,
unsigned int *critical);
@@ -511,44 +512,42 @@ int gnutls_x509_crt_get_basic_constraints(gnutls_x509_crt_t cert,
int gnutls_x509_crt_get_key_usage(gnutls_x509_crt_t cert,
unsigned int *key_usage,
unsigned int *critical);
-int gnutls_x509_crt_set_key_usage(gnutls_x509_crt_t crt,
- unsigned int usage);
+int gnutls_x509_crt_set_key_usage(gnutls_x509_crt_t crt, unsigned int usage);
int gnutls_x509_crt_set_authority_info_access(gnutls_x509_crt_t
crt, int what,
gnutls_datum_t * data);
int gnutls_x509_crt_get_inhibit_anypolicy(gnutls_x509_crt_t cert,
- unsigned int *skipcerts,
- unsigned int *critical);
+ unsigned int *skipcerts,
+ unsigned int *critical);
int
-gnutls_x509_crt_set_inhibit_anypolicy(gnutls_x509_crt_t crt, unsigned int skipcerts);
+gnutls_x509_crt_set_inhibit_anypolicy(gnutls_x509_crt_t crt,
+ unsigned int skipcerts);
int gnutls_x509_crt_get_proxy(gnutls_x509_crt_t cert,
unsigned int *critical,
int *pathlen,
char **policyLanguage,
- char **policy, size_t * sizeof_policy);
-
+ char **policy, size_t *sizeof_policy);
typedef struct gnutls_x509_tlsfeatures_st *gnutls_x509_tlsfeatures_t;
-int gnutls_x509_tlsfeatures_init(gnutls_x509_tlsfeatures_t *features);
+int gnutls_x509_tlsfeatures_init(gnutls_x509_tlsfeatures_t * features);
void gnutls_x509_tlsfeatures_deinit(gnutls_x509_tlsfeatures_t);
-int gnutls_x509_tlsfeatures_get(gnutls_x509_tlsfeatures_t f, unsigned idx, unsigned int *feature);
+int gnutls_x509_tlsfeatures_get(gnutls_x509_tlsfeatures_t f, unsigned idx,
+ unsigned int *feature);
int gnutls_x509_crt_set_tlsfeatures(gnutls_x509_crt_t crt,
gnutls_x509_tlsfeatures_t features);
int gnutls_x509_crt_get_tlsfeatures(gnutls_x509_crt_t cert,
gnutls_x509_tlsfeatures_t features,
- unsigned int flags,
- unsigned int *critical);
+ unsigned int flags, unsigned int *critical);
unsigned gnutls_x509_tlsfeatures_check_crt(gnutls_x509_tlsfeatures_t feat,
- gnutls_x509_crt_t crt);
-
+ gnutls_x509_crt_t crt);
-#define GNUTLS_MAX_QUALIFIERS 8
+# define GNUTLS_MAX_QUALIFIERS 8
/**
* gnutls_x509_qualifier_t:
@@ -582,38 +581,37 @@ int gnutls_x509_crt_set_policy(gnutls_x509_crt_t crt, const struct gnutls_x509_p
int gnutls_x509_dn_oid_known(const char *oid);
-#define GNUTLS_X509_DN_OID_RETURN_OID 1
+# define GNUTLS_X509_DN_OID_RETURN_OID 1
const char *gnutls_x509_dn_oid_name(const char *oid, unsigned int flags);
/* Read extensions by OID. */
int gnutls_x509_crt_get_extension_oid(gnutls_x509_crt_t cert,
unsigned indx, void *oid,
- size_t * oid_size);
+ size_t *oid_size);
int gnutls_x509_crt_get_extension_by_oid(gnutls_x509_crt_t cert,
const char *oid, unsigned indx,
void *buf,
- size_t * buf_size,
+ size_t *buf_size,
unsigned int *critical);
int gnutls_x509_crq_get_signature_algorithm(gnutls_x509_crq_t crq);
int
gnutls_x509_crq_get_extension_by_oid2(gnutls_x509_crq_t crq,
- const char *oid, unsigned indx,
- gnutls_datum_t *output,
- unsigned int *critical);
+ const char *oid, unsigned indx,
+ gnutls_datum_t * output,
+ unsigned int *critical);
/* Read extensions by sequence number. */
int gnutls_x509_crt_get_extension_info(gnutls_x509_crt_t cert,
unsigned indx, void *oid,
- size_t * oid_size,
+ size_t *oid_size,
unsigned int *critical);
int gnutls_x509_crt_get_extension_data(gnutls_x509_crt_t cert,
unsigned indx, void *data,
- size_t * sizeof_data);
+ size_t *sizeof_data);
int
gnutls_x509_crt_get_extension_data2(gnutls_x509_crt_t cert,
- unsigned indx, gnutls_datum_t * data);
-
+ unsigned indx, gnutls_datum_t * data);
int gnutls_x509_crt_set_extension_by_oid(gnutls_x509_crt_t crt,
const char *oid,
@@ -629,8 +627,7 @@ int gnutls_x509_crt_set_dn(gnutls_x509_crt_t crt, const char *dn,
int gnutls_x509_crt_set_dn_by_oid(gnutls_x509_crt_t crt,
const char *oid,
unsigned int raw_flag,
- const void *name,
- unsigned int sizeof_name);
+ const void *name, unsigned int sizeof_name);
int gnutls_x509_crt_set_issuer_dn_by_oid(gnutls_x509_crt_t crt,
const char *oid,
unsigned int raw_flag,
@@ -639,10 +636,8 @@ int gnutls_x509_crt_set_issuer_dn_by_oid(gnutls_x509_crt_t crt,
int gnutls_x509_crt_set_issuer_dn(gnutls_x509_crt_t crt,
const char *dn, const char **err);
-int gnutls_x509_crt_set_version(gnutls_x509_crt_t crt,
- unsigned int version);
-int gnutls_x509_crt_set_key(gnutls_x509_crt_t crt,
- gnutls_x509_privkey_t key);
+int gnutls_x509_crt_set_version(gnutls_x509_crt_t crt, unsigned int version);
+int gnutls_x509_crt_set_key(gnutls_x509_crt_t crt, gnutls_x509_privkey_t key);
int gnutls_x509_crt_set_ca_status(gnutls_x509_crt_t crt, unsigned int ca);
int gnutls_x509_crt_set_basic_constraints(gnutls_x509_crt_t crt,
unsigned int ca,
@@ -650,10 +645,10 @@ int gnutls_x509_crt_set_basic_constraints(gnutls_x509_crt_t crt,
int
gnutls_x509_crt_set_subject_unique_id(gnutls_x509_crt_t cert, const void *id,
- size_t id_size);
+ size_t id_size);
int
gnutls_x509_crt_set_issuer_unique_id(gnutls_x509_crt_t cert, const void *id,
- size_t id_size);
+ size_t id_size);
int gnutls_x509_crt_set_subject_alternative_name(gnutls_x509_crt_t
crt,
@@ -668,23 +663,23 @@ int gnutls_x509_crt_set_subject_alt_name(gnutls_x509_crt_t crt,
int
gnutls_x509_crt_set_subject_alt_othername(gnutls_x509_crt_t crt,
- const char *oid,
- const void *data,
- unsigned int data_size,
- unsigned int flags);
+ const char *oid,
+ const void *data,
+ unsigned int data_size,
+ unsigned int flags);
int gnutls_x509_crt_set_issuer_alt_name(gnutls_x509_crt_t crt,
- gnutls_x509_subject_alt_name_t
- type, const void *data,
- unsigned int data_size,
- unsigned int flags);
+ gnutls_x509_subject_alt_name_t
+ type, const void *data,
+ unsigned int data_size,
+ unsigned int flags);
int
gnutls_x509_crt_set_issuer_alt_othername(gnutls_x509_crt_t crt,
- const char *oid,
- const void *data,
- unsigned int data_size,
- unsigned int flags);
+ const char *oid,
+ const void *data,
+ unsigned int data_size,
+ unsigned int flags);
int gnutls_x509_crt_sign(gnutls_x509_crt_t crt,
gnutls_x509_crt_t issuer,
@@ -692,8 +687,7 @@ int gnutls_x509_crt_sign(gnutls_x509_crt_t crt,
int gnutls_x509_crt_sign2(gnutls_x509_crt_t crt,
gnutls_x509_crt_t issuer,
gnutls_x509_privkey_t issuer_key,
- gnutls_digest_algorithm_t dig,
- unsigned int flags);
+ gnutls_digest_algorithm_t dig, unsigned int flags);
int gnutls_x509_crt_set_activation_time(gnutls_x509_crt_t cert,
time_t act_time);
int gnutls_x509_crt_set_expiration_time(gnutls_x509_crt_t cert,
@@ -707,8 +701,7 @@ int gnutls_x509_crt_set_subject_key_id(gnutls_x509_crt_t cert,
int gnutls_x509_crt_set_proxy_dn(gnutls_x509_crt_t crt,
gnutls_x509_crt_t eecrt,
unsigned int raw_flag,
- const void *name,
- unsigned int sizeof_name);
+ const void *name, unsigned int sizeof_name);
int gnutls_x509_crt_set_proxy(gnutls_x509_crt_t crt,
int pathLenConstraint,
const char *policyLanguage,
@@ -725,24 +718,23 @@ int gnutls_x509_crl_print(gnutls_x509_crl_t crl,
*/
int gnutls_x509_crt_get_raw_issuer_dn(gnutls_x509_crt_t cert,
gnutls_datum_t * start);
-int gnutls_x509_crt_get_raw_dn(gnutls_x509_crt_t cert,
- gnutls_datum_t * start);
+int gnutls_x509_crt_get_raw_dn(gnutls_x509_crt_t cert, gnutls_datum_t * start);
/* RDN handling.
*/
int gnutls_x509_rdn_get(const gnutls_datum_t * idn,
- char *buf, size_t * sizeof_buf);
+ char *buf, size_t *sizeof_buf);
int
gnutls_x509_rdn_get2(const gnutls_datum_t * idn,
- gnutls_datum_t *str, unsigned flags);
+ gnutls_datum_t * str, unsigned flags);
int gnutls_x509_rdn_get_oid(const gnutls_datum_t * idn,
- unsigned indx, void *buf, size_t * sizeof_buf);
+ unsigned indx, void *buf, size_t *sizeof_buf);
int gnutls_x509_rdn_get_by_oid(const gnutls_datum_t * idn,
const char *oid, unsigned indx,
unsigned int raw_flag, void *buf,
- size_t * sizeof_buf);
+ size_t *sizeof_buf);
typedef struct gnutls_x509_dn_st *gnutls_x509_dn_t;
@@ -752,36 +744,32 @@ typedef struct gnutls_x509_ava_st {
unsigned long value_tag;
} gnutls_x509_ava_st;
-int gnutls_x509_crt_get_subject(gnutls_x509_crt_t cert,
- gnutls_x509_dn_t * dn);
-int gnutls_x509_crt_get_issuer(gnutls_x509_crt_t cert,
- gnutls_x509_dn_t * dn);
+int gnutls_x509_crt_get_subject(gnutls_x509_crt_t cert, gnutls_x509_dn_t * dn);
+int gnutls_x509_crt_get_issuer(gnutls_x509_crt_t cert, gnutls_x509_dn_t * dn);
int gnutls_x509_dn_get_rdn_ava(gnutls_x509_dn_t dn, int irdn,
int iava, gnutls_x509_ava_st * ava);
-int gnutls_x509_dn_get_str(gnutls_x509_dn_t dn, gnutls_datum_t *str);
+int gnutls_x509_dn_get_str(gnutls_x509_dn_t dn, gnutls_datum_t * str);
-#define GNUTLS_X509_DN_FLAG_COMPAT 1
-int gnutls_x509_dn_get_str2(gnutls_x509_dn_t dn, gnutls_datum_t *str, unsigned flags);
+# define GNUTLS_X509_DN_FLAG_COMPAT 1
+int gnutls_x509_dn_get_str2(gnutls_x509_dn_t dn, gnutls_datum_t * str,
+ unsigned flags);
int
gnutls_x509_dn_set_str(gnutls_x509_dn_t dn, const char *str, const char **err);
int gnutls_x509_dn_init(gnutls_x509_dn_t * dn);
-int gnutls_x509_dn_import(gnutls_x509_dn_t dn,
- const gnutls_datum_t * data);
+int gnutls_x509_dn_import(gnutls_x509_dn_t dn, const gnutls_datum_t * data);
int gnutls_x509_dn_export(gnutls_x509_dn_t dn,
gnutls_x509_crt_fmt_t format,
- void *output_data, size_t * output_data_size);
+ void *output_data, size_t *output_data_size);
int gnutls_x509_dn_export2(gnutls_x509_dn_t dn,
- gnutls_x509_crt_fmt_t format,
- gnutls_datum_t * out);
+ gnutls_x509_crt_fmt_t format, gnutls_datum_t * out);
void gnutls_x509_dn_deinit(gnutls_x509_dn_t dn);
-
/* CRL handling functions.
*/
int gnutls_x509_crl_init(gnutls_x509_crl_t * crl);
@@ -792,35 +780,33 @@ int gnutls_x509_crl_import(gnutls_x509_crl_t crl,
gnutls_x509_crt_fmt_t format);
int gnutls_x509_crl_export(gnutls_x509_crl_t crl,
gnutls_x509_crt_fmt_t format,
- void *output_data, size_t * output_data_size);
+ void *output_data, size_t *output_data_size);
int gnutls_x509_crl_export2(gnutls_x509_crl_t crl,
- gnutls_x509_crt_fmt_t format,
- gnutls_datum_t * out);
+ gnutls_x509_crt_fmt_t format, gnutls_datum_t * out);
int
-gnutls_x509_crl_get_raw_issuer_dn(gnutls_x509_crl_t crl,
- gnutls_datum_t * dn);
+gnutls_x509_crl_get_raw_issuer_dn(gnutls_x509_crl_t crl, gnutls_datum_t * dn);
int gnutls_x509_crl_get_issuer_dn(gnutls_x509_crl_t crl,
- char *buf, size_t * sizeof_buf);
-int gnutls_x509_crl_get_issuer_dn2(gnutls_x509_crl_t crl,
- gnutls_datum_t * dn);
+ char *buf, size_t *sizeof_buf);
+int gnutls_x509_crl_get_issuer_dn2(gnutls_x509_crl_t crl, gnutls_datum_t * dn);
int gnutls_x509_crl_get_issuer_dn3(gnutls_x509_crl_t crl,
gnutls_datum_t * dn, unsigned flags);
int gnutls_x509_crl_get_issuer_dn_by_oid(gnutls_x509_crl_t crl,
const char *oid, unsigned indx,
unsigned int raw_flag,
- void *buf, size_t * sizeof_buf);
+ void *buf, size_t *sizeof_buf);
int gnutls_x509_crl_get_dn_oid(gnutls_x509_crl_t crl, unsigned indx,
- void *oid, size_t * sizeof_oid);
+ void *oid, size_t *sizeof_oid);
int gnutls_x509_crl_get_signature_algorithm(gnutls_x509_crl_t crl);
int gnutls_x509_crl_get_signature(gnutls_x509_crl_t crl,
- char *sig, size_t * sizeof_sig);
+ char *sig, size_t *sizeof_sig);
int gnutls_x509_crl_get_version(gnutls_x509_crl_t crl);
-int gnutls_x509_crl_get_signature_oid(gnutls_x509_crl_t crl, char *oid, size_t *oid_size);
+int gnutls_x509_crl_get_signature_oid(gnutls_x509_crl_t crl, char *oid,
+ size_t *oid_size);
time_t gnutls_x509_crl_get_this_update(gnutls_x509_crl_t crl);
time_t gnutls_x509_crl_get_next_update(gnutls_x509_crl_t crl);
@@ -828,22 +814,22 @@ time_t gnutls_x509_crl_get_next_update(gnutls_x509_crl_t crl);
int gnutls_x509_crl_get_crt_count(gnutls_x509_crl_t crl);
int gnutls_x509_crl_get_crt_serial(gnutls_x509_crl_t crl, unsigned indx,
unsigned char *serial,
- size_t * serial_size, time_t * t);
+ size_t *serial_size, time_t * t);
-typedef struct gnutls_x509_crl_iter * gnutls_x509_crl_iter_t;
+typedef struct gnutls_x509_crl_iter *gnutls_x509_crl_iter_t;
int gnutls_x509_crl_iter_crt_serial(gnutls_x509_crl_t crl,
gnutls_x509_crl_iter_t *,
unsigned char *serial,
- size_t * serial_size, time_t * t);
+ size_t *serial_size, time_t * t);
void gnutls_x509_crl_iter_deinit(gnutls_x509_crl_iter_t);
-#define gnutls_x509_crl_get_certificate_count gnutls_x509_crl_get_crt_count
-#define gnutls_x509_crl_get_certificate gnutls_x509_crl_get_crt_serial
+# define gnutls_x509_crl_get_certificate_count gnutls_x509_crl_get_crt_count
+# define gnutls_x509_crl_get_certificate gnutls_x509_crl_get_crt_serial
unsigned gnutls_x509_crl_check_issuer(gnutls_x509_crl_t crl,
- gnutls_x509_crt_t issuer);
+ gnutls_x509_crt_t issuer);
int gnutls_x509_crl_list_import2(gnutls_x509_crl_t ** crls,
unsigned int *size,
@@ -858,53 +844,48 @@ int gnutls_x509_crl_list_import(gnutls_x509_crl_t * crls,
unsigned int flags);
/* CRL writing.
*/
-int gnutls_x509_crl_set_version(gnutls_x509_crl_t crl,
- unsigned int version);
-int gnutls_x509_crl_set_this_update(gnutls_x509_crl_t crl,
- time_t act_time);
-int gnutls_x509_crl_set_next_update(gnutls_x509_crl_t crl,
- time_t exp_time);
+int gnutls_x509_crl_set_version(gnutls_x509_crl_t crl, unsigned int version);
+int gnutls_x509_crl_set_this_update(gnutls_x509_crl_t crl, time_t act_time);
+int gnutls_x509_crl_set_next_update(gnutls_x509_crl_t crl, time_t exp_time);
int gnutls_x509_crl_set_crt_serial(gnutls_x509_crl_t crl,
const void *serial,
- size_t serial_size,
- time_t revocation_time);
+ size_t serial_size, time_t revocation_time);
int gnutls_x509_crl_set_crt(gnutls_x509_crl_t crl,
gnutls_x509_crt_t crt, time_t revocation_time);
int gnutls_x509_crl_get_authority_key_id(gnutls_x509_crl_t crl,
void *id,
- size_t * id_size,
+ size_t *id_size,
unsigned int *critical);
int gnutls_x509_crl_get_authority_key_gn_serial(gnutls_x509_crl_t
crl,
unsigned int seq,
void *alt,
- size_t * alt_size,
- unsigned int
+ size_t *alt_size, unsigned int
*alt_type,
void *serial,
- size_t *
- serial_size, unsigned int
+ size_t *serial_size,
+ unsigned int
*critical);
int gnutls_x509_crl_get_number(gnutls_x509_crl_t crl, void *ret,
- size_t * ret_size, unsigned int *critical);
+ size_t *ret_size, unsigned int *critical);
int gnutls_x509_crl_get_extension_oid(gnutls_x509_crl_t crl,
unsigned indx, void *oid,
- size_t * sizeof_oid);
+ size_t *sizeof_oid);
int gnutls_x509_crl_get_extension_info(gnutls_x509_crl_t crl,
unsigned indx, void *oid,
- size_t * sizeof_oid,
+ size_t *sizeof_oid,
unsigned int *critical);
int gnutls_x509_crl_get_extension_data(gnutls_x509_crl_t crl,
unsigned indx, void *data,
- size_t * sizeof_data);
+ size_t *sizeof_data);
int
gnutls_x509_crl_get_extension_data2(gnutls_x509_crl_t crl,
- unsigned indx, gnutls_datum_t * data);
+ unsigned indx, gnutls_datum_t * data);
int gnutls_x509_crl_set_authority_key_id(gnutls_x509_crl_t crl,
const void *id, size_t id_size);
@@ -912,7 +893,6 @@ int gnutls_x509_crl_set_authority_key_id(gnutls_x509_crl_t crl,
int gnutls_x509_crl_set_number(gnutls_x509_crl_t crl,
const void *nr, size_t nr_size);
-
/* X.509 Certificate verification functions.
*/
@@ -970,7 +950,7 @@ int gnutls_x509_crl_set_number(gnutls_x509_crl_t crl,
*/
typedef enum gnutls_certificate_verify_flags {
GNUTLS_VERIFY_DISABLE_CA_SIGN = 1 << 0,
- GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES = 1<<1,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES = 1 << 1,
GNUTLS_VERIFY_DO_NOT_ALLOW_SAME = 1 << 2,
GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT = 1 << 3,
GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2 = 1 << 4,
@@ -986,10 +966,10 @@ typedef enum gnutls_certificate_verify_flags {
GNUTLS_VERIFY_IGNORE_UNKNOWN_CRIT_EXTENSIONS = 1 << 14,
GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1 = 1 << 15,
GNUTLS_VERIFY_RSA_PSS_FIXED_SALT_LENGTH = 1 << 16
- /* cannot exceed 2^24 due to GNUTLS_PROFILE_TO_VFLAGS() */
+ /* cannot exceed 2^24 due to GNUTLS_PROFILE_TO_VFLAGS() */
} gnutls_certificate_verify_flags;
-#define GNUTLS_VERIFY_ALLOW_BROKEN (GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2|GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5)
+# define GNUTLS_VERIFY_ALLOW_BROKEN (GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2|GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5)
/**
* gnutls_certificate_verification_profiles_t:
@@ -1024,26 +1004,29 @@ typedef enum gnutls_certificate_verification_profiles_t {
GNUTLS_PROFILE_HIGH = 6,
GNUTLS_PROFILE_ULTRA = 7,
GNUTLS_PROFILE_FUTURE = 8,
-
- GNUTLS_PROFILE_SUITEB128=32,
- GNUTLS_PROFILE_SUITEB192=33
- /*GNUTLS_PROFILE_MAX=255*/
+
+ GNUTLS_PROFILE_SUITEB128 = 32,
+ GNUTLS_PROFILE_SUITEB192 = 33
+ /*GNUTLS_PROFILE_MAX=255 */
} gnutls_certificate_verification_profiles_t;
-#define GNUTLS_PROFILE_TO_VFLAGS(x) \
+# define GNUTLS_PROFILE_TO_VFLAGS(x) \
(((unsigned)x)<<24)
-#define GNUTLS_VFLAGS_PROFILE_MASK (0xff000000)
+# define GNUTLS_VFLAGS_PROFILE_MASK (0xff000000)
-#define GNUTLS_VFLAGS_TO_PROFILE(x) \
+# define GNUTLS_VFLAGS_TO_PROFILE(x) \
((((unsigned)x)>>24)&0xff)
-const char *
- gnutls_certificate_verification_profile_get_name(gnutls_certificate_verification_profiles_t id) __GNUTLS_CONST__;
-gnutls_certificate_verification_profiles_t gnutls_certificate_verification_profile_get_id(const char *name) __GNUTLS_CONST__;
+const char
+*gnutls_certificate_verification_profile_get_name
+ (gnutls_certificate_verification_profiles_t id) __GNUTLS_CONST__;
+gnutls_certificate_verification_profiles_t
+gnutls_certificate_verification_profile_get_id(const char *name)
+__GNUTLS_CONST__;
unsigned gnutls_x509_crt_check_issuer(gnutls_x509_crt_t cert,
- gnutls_x509_crt_t issuer);
+ gnutls_x509_crt_t issuer);
int gnutls_x509_crt_list_verify(const gnutls_x509_crt_t *
cert_list, unsigned cert_list_length,
@@ -1064,10 +1047,10 @@ int gnutls_x509_crl_verify(gnutls_x509_crl_t crl,
int
gnutls_x509_crt_verify_data2(gnutls_x509_crt_t crt,
- gnutls_sign_algorithm_t algo,
- unsigned int flags,
- const gnutls_datum_t * data,
- const gnutls_datum_t * signature);
+ gnutls_sign_algorithm_t algo,
+ unsigned int flags,
+ const gnutls_datum_t * data,
+ const gnutls_datum_t * signature);
int gnutls_x509_crt_check_revocation(gnutls_x509_crt_t cert,
const gnutls_x509_crl_t *
@@ -1075,18 +1058,17 @@ int gnutls_x509_crt_check_revocation(gnutls_x509_crt_t cert,
int gnutls_x509_crt_get_fingerprint(gnutls_x509_crt_t cert,
gnutls_digest_algorithm_t algo,
- void *buf, size_t * buf_size);
+ void *buf, size_t *buf_size);
int gnutls_x509_crt_get_key_purpose_oid(gnutls_x509_crt_t cert,
unsigned indx, void *oid,
- size_t * oid_size,
+ size_t *oid_size,
unsigned int *critical);
int gnutls_x509_crt_set_key_purpose_oid(gnutls_x509_crt_t cert,
- const void *oid,
- unsigned int critical);
+ const void *oid, unsigned int critical);
unsigned gnutls_x509_crt_check_key_purpose(gnutls_x509_crt_t cert,
- const char *purpose, unsigned flags);
+ const char *purpose, unsigned flags);
/* Private key handling.
*/
@@ -1094,10 +1076,10 @@ unsigned gnutls_x509_crt_check_key_purpose(gnutls_x509_crt_t cert,
/* Flags for the gnutls_x509_privkey_export_pkcs8() function.
*/
-#define GNUTLS_PKCS8_PLAIN GNUTLS_PKCS_PLAIN
-#define GNUTLS_PKCS8_USE_PKCS12_3DES GNUTLS_PKCS_PKCS12_3DES
-#define GNUTLS_PKCS8_USE_PKCS12_ARCFOUR GNUTLS_PKCS_PKCS12_ARCFOUR
-#define GNUTLS_PKCS8_USE_PKCS12_RC2_40 GNUTLS_PKCS_PKCS12_RC2_40
+# define GNUTLS_PKCS8_PLAIN GNUTLS_PKCS_PLAIN
+# define GNUTLS_PKCS8_USE_PKCS12_3DES GNUTLS_PKCS_PKCS12_3DES
+# define GNUTLS_PKCS8_USE_PKCS12_ARCFOUR GNUTLS_PKCS_PKCS12_ARCFOUR
+# define GNUTLS_PKCS8_USE_PKCS12_RC2_40 GNUTLS_PKCS_PKCS12_RC2_40
/**
* gnutls_pkcs_encrypt_flags_t:
@@ -1122,49 +1104,48 @@ unsigned gnutls_x509_crt_check_key_purpose(gnutls_x509_crt_t cert,
*/
typedef enum gnutls_pkcs_encrypt_flags_t {
GNUTLS_PKCS_PLAIN = 1,
- GNUTLS_PKCS_PKCS12_3DES = 1<<1,
- GNUTLS_PKCS_PKCS12_ARCFOUR = 1<<2,
- GNUTLS_PKCS_PKCS12_RC2_40 = 1<<3,
- GNUTLS_PKCS_PBES2_3DES = 1<<4,
- GNUTLS_PKCS_PBES2_AES_128 = 1<<5,
- GNUTLS_PKCS_PBES2_AES_192 = 1<<6,
- GNUTLS_PKCS_PBES2_AES_256 = 1<<7,
- GNUTLS_PKCS_NULL_PASSWORD = 1<<8,
- GNUTLS_PKCS_PBES2_DES = 1<<9,
- GNUTLS_PKCS_PBES1_DES_MD5 = 1<<10,
- GNUTLS_PKCS_PBES2_GOST_TC26Z = 1<<11,
- GNUTLS_PKCS_PBES2_GOST_CPA = 1<<12,
- GNUTLS_PKCS_PBES2_GOST_CPB = 1<<13,
- GNUTLS_PKCS_PBES2_GOST_CPC = 1<<14,
- GNUTLS_PKCS_PBES2_GOST_CPD = 1<<15
+ GNUTLS_PKCS_PKCS12_3DES = 1 << 1,
+ GNUTLS_PKCS_PKCS12_ARCFOUR = 1 << 2,
+ GNUTLS_PKCS_PKCS12_RC2_40 = 1 << 3,
+ GNUTLS_PKCS_PBES2_3DES = 1 << 4,
+ GNUTLS_PKCS_PBES2_AES_128 = 1 << 5,
+ GNUTLS_PKCS_PBES2_AES_192 = 1 << 6,
+ GNUTLS_PKCS_PBES2_AES_256 = 1 << 7,
+ GNUTLS_PKCS_NULL_PASSWORD = 1 << 8,
+ GNUTLS_PKCS_PBES2_DES = 1 << 9,
+ GNUTLS_PKCS_PBES1_DES_MD5 = 1 << 10,
+ GNUTLS_PKCS_PBES2_GOST_TC26Z = 1 << 11,
+ GNUTLS_PKCS_PBES2_GOST_CPA = 1 << 12,
+ GNUTLS_PKCS_PBES2_GOST_CPB = 1 << 13,
+ GNUTLS_PKCS_PBES2_GOST_CPC = 1 << 14,
+ GNUTLS_PKCS_PBES2_GOST_CPD = 1 << 15
} gnutls_pkcs_encrypt_flags_t;
-#define GNUTLS_PKCS_CIPHER_MASK(x) ((x)&(~(GNUTLS_PKCS_NULL_PASSWORD)))
-
-#define GNUTLS_PKCS_USE_PKCS12_3DES GNUTLS_PKCS_PKCS12_3DES
-#define GNUTLS_PKCS_USE_PKCS12_ARCFOUR GNUTLS_PKCS_PKCS12_ARCFOUR
-#define GNUTLS_PKCS_USE_PKCS12_RC2_40 GNUTLS_PKCS_PKCS12_RC2_40
-#define GNUTLS_PKCS_USE_PBES2_3DES GNUTLS_PKCS_PBES2_3DES
-#define GNUTLS_PKCS_USE_PBES2_AES_128 GNUTLS_PKCS_PBES2_AES_128
-#define GNUTLS_PKCS_USE_PBES2_AES_192 GNUTLS_PKCS_PBES2_AES_192
-#define GNUTLS_PKCS_USE_PBES2_AES_256 GNUTLS_PKCS_PBES2_AES_256
-#define GNUTLS_PKCS_USE_PBES2_GOST_TC26Z GNUTLS_PKCS_PBES2_GOST_TC26Z
-#define GNUTLS_PKCS_USE_PBES2_GOST_CPA GNUTLS_PKCS_PBES2_GOST_CPA
-#define GNUTLS_PKCS_USE_PBES2_GOST_CPB GNUTLS_PKCS_PBES2_GOST_CPB
-#define GNUTLS_PKCS_USE_PBES2_GOST_CPC GNUTLS_PKCS_PBES2_GOST_CPC
-#define GNUTLS_PKCS_USE_PBES2_GOST_CPD GNUTLS_PKCS_PBES2_GOST_CPD
+# define GNUTLS_PKCS_CIPHER_MASK(x) ((x)&(~(GNUTLS_PKCS_NULL_PASSWORD)))
+
+# define GNUTLS_PKCS_USE_PKCS12_3DES GNUTLS_PKCS_PKCS12_3DES
+# define GNUTLS_PKCS_USE_PKCS12_ARCFOUR GNUTLS_PKCS_PKCS12_ARCFOUR
+# define GNUTLS_PKCS_USE_PKCS12_RC2_40 GNUTLS_PKCS_PKCS12_RC2_40
+# define GNUTLS_PKCS_USE_PBES2_3DES GNUTLS_PKCS_PBES2_3DES
+# define GNUTLS_PKCS_USE_PBES2_AES_128 GNUTLS_PKCS_PBES2_AES_128
+# define GNUTLS_PKCS_USE_PBES2_AES_192 GNUTLS_PKCS_PBES2_AES_192
+# define GNUTLS_PKCS_USE_PBES2_AES_256 GNUTLS_PKCS_PBES2_AES_256
+# define GNUTLS_PKCS_USE_PBES2_GOST_TC26Z GNUTLS_PKCS_PBES2_GOST_TC26Z
+# define GNUTLS_PKCS_USE_PBES2_GOST_CPA GNUTLS_PKCS_PBES2_GOST_CPA
+# define GNUTLS_PKCS_USE_PBES2_GOST_CPB GNUTLS_PKCS_PBES2_GOST_CPB
+# define GNUTLS_PKCS_USE_PBES2_GOST_CPC GNUTLS_PKCS_PBES2_GOST_CPC
+# define GNUTLS_PKCS_USE_PBES2_GOST_CPD GNUTLS_PKCS_PBES2_GOST_CPD
const char *gnutls_pkcs_schema_get_name(unsigned int schema);
const char *gnutls_pkcs_schema_get_oid(unsigned int schema);
int gnutls_x509_privkey_init(gnutls_x509_privkey_t * key);
void gnutls_x509_privkey_deinit(gnutls_x509_privkey_t key);
-gnutls_sec_param_t
-gnutls_x509_privkey_sec_param(gnutls_x509_privkey_t key);
+gnutls_sec_param_t gnutls_x509_privkey_sec_param(gnutls_x509_privkey_t key);
void gnutls_x509_privkey_set_pin_function(gnutls_x509_privkey_t key,
- gnutls_pin_callback_t fn,
- void *userdata);
+ gnutls_pin_callback_t fn,
+ void *userdata);
int gnutls_x509_privkey_cpy(gnutls_x509_privkey_t dst,
gnutls_x509_privkey_t src);
@@ -1174,8 +1155,7 @@ int gnutls_x509_privkey_import(gnutls_x509_privkey_t key,
int gnutls_x509_privkey_import_pkcs8(gnutls_x509_privkey_t key,
const gnutls_datum_t * data,
gnutls_x509_crt_fmt_t format,
- const char *password,
- unsigned int flags);
+ const char *password, unsigned int flags);
int gnutls_x509_privkey_import_openssl(gnutls_x509_privkey_t key,
const gnutls_datum_t * data,
const char *password);
@@ -1213,12 +1193,12 @@ int gnutls_x509_privkey_import_ecc_raw(gnutls_x509_privkey_t key,
const gnutls_datum_t * y,
const gnutls_datum_t * k);
int gnutls_x509_privkey_import_gost_raw(gnutls_x509_privkey_t key,
- gnutls_ecc_curve_t curve,
- gnutls_digest_algorithm_t digest,
- gnutls_gost_paramset_t paramset,
- const gnutls_datum_t * x,
- const gnutls_datum_t * y,
- const gnutls_datum_t * k);
+ gnutls_ecc_curve_t curve,
+ gnutls_digest_algorithm_t digest,
+ gnutls_gost_paramset_t paramset,
+ const gnutls_datum_t * x,
+ const gnutls_datum_t * y,
+ const gnutls_datum_t * k);
int gnutls_x509_privkey_fix(gnutls_x509_privkey_t key);
@@ -1226,8 +1206,7 @@ int gnutls_x509_privkey_export_dsa_raw(gnutls_x509_privkey_t key,
gnutls_datum_t * p,
gnutls_datum_t * q,
gnutls_datum_t * g,
- gnutls_datum_t * y,
- gnutls_datum_t * x);
+ gnutls_datum_t * y, gnutls_datum_t * x);
int gnutls_x509_privkey_import_dsa_raw(gnutls_x509_privkey_t key,
const gnutls_datum_t * p,
const gnutls_datum_t * q,
@@ -1239,23 +1218,22 @@ int gnutls_x509_privkey_get_pk_algorithm(gnutls_x509_privkey_t key);
int gnutls_x509_privkey_get_pk_algorithm2(gnutls_x509_privkey_t
key, unsigned int *bits);
int gnutls_x509_privkey_get_spki(gnutls_x509_privkey_t key,
- gnutls_x509_spki_t spki,
- unsigned int flags);
+ gnutls_x509_spki_t spki, unsigned int flags);
int
gnutls_x509_privkey_set_spki(gnutls_x509_privkey_t key,
- const gnutls_x509_spki_t spki,
- unsigned int flags);
+ const gnutls_x509_spki_t spki, unsigned int flags);
int gnutls_x509_privkey_get_key_id(gnutls_x509_privkey_t key,
unsigned int flags,
unsigned char *output_data,
- size_t * output_data_size);
+ size_t *output_data_size);
int gnutls_x509_privkey_generate(gnutls_x509_privkey_t key,
gnutls_pk_algorithm_t algo,
unsigned int bits, unsigned int flags);
-void gnutls_x509_privkey_set_flags(gnutls_x509_privkey_t key, unsigned int flags);
+void gnutls_x509_privkey_set_flags(gnutls_x509_privkey_t key,
+ unsigned int flags);
/**
* gnutls_keygen_types_t:
@@ -1280,17 +1258,22 @@ typedef struct {
int
gnutls_x509_privkey_generate2(gnutls_x509_privkey_t key,
gnutls_pk_algorithm_t algo, unsigned int bits,
- unsigned int flags, const gnutls_keygen_data_st *data, unsigned data_size);
+ unsigned int flags,
+ const gnutls_keygen_data_st * data,
+ unsigned data_size);
-int gnutls_x509_privkey_verify_seed(gnutls_x509_privkey_t key, gnutls_digest_algorithm_t, const void *seed, size_t seed_size);
-int gnutls_x509_privkey_get_seed(gnutls_x509_privkey_t key, gnutls_digest_algorithm_t*, void *seed, size_t *seed_size);
+int gnutls_x509_privkey_verify_seed(gnutls_x509_privkey_t key,
+ gnutls_digest_algorithm_t, const void *seed,
+ size_t seed_size);
+int gnutls_x509_privkey_get_seed(gnutls_x509_privkey_t key,
+ gnutls_digest_algorithm_t *, void *seed,
+ size_t *seed_size);
int gnutls_x509_privkey_verify_params(gnutls_x509_privkey_t key);
int gnutls_x509_privkey_export(gnutls_x509_privkey_t key,
gnutls_x509_crt_fmt_t format,
- void *output_data,
- size_t * output_data_size);
+ void *output_data, size_t *output_data_size);
int gnutls_x509_privkey_export2(gnutls_x509_privkey_t key,
gnutls_x509_crt_fmt_t format,
gnutls_datum_t * out);
@@ -1299,12 +1282,11 @@ int gnutls_x509_privkey_export_pkcs8(gnutls_x509_privkey_t key,
const char *password,
unsigned int flags,
void *output_data,
- size_t * output_data_size);
+ size_t *output_data_size);
int gnutls_x509_privkey_export2_pkcs8(gnutls_x509_privkey_t key,
gnutls_x509_crt_fmt_t format,
const char *password,
- unsigned int flags,
- gnutls_datum_t * out);
+ unsigned int flags, gnutls_datum_t * out);
int gnutls_x509_privkey_export_rsa_raw2(gnutls_x509_privkey_t key,
gnutls_datum_t * m,
gnutls_datum_t * e,
@@ -1319,37 +1301,31 @@ int gnutls_x509_privkey_export_rsa_raw(gnutls_x509_privkey_t key,
gnutls_datum_t * e,
gnutls_datum_t * d,
gnutls_datum_t * p,
- gnutls_datum_t * q,
- gnutls_datum_t * u);
+ gnutls_datum_t * q, gnutls_datum_t * u);
int gnutls_x509_privkey_export_ecc_raw(gnutls_x509_privkey_t key,
gnutls_ecc_curve_t * curve,
gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k);
+ gnutls_datum_t * y, gnutls_datum_t * k);
int gnutls_x509_privkey_export_gost_raw(gnutls_x509_privkey_t key,
- gnutls_ecc_curve_t * curve,
- gnutls_digest_algorithm_t * digest,
- gnutls_gost_paramset_t * paramset,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k);
+ gnutls_ecc_curve_t * curve,
+ gnutls_digest_algorithm_t * digest,
+ gnutls_gost_paramset_t * paramset,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y, gnutls_datum_t * k);
int gnutls_x509_privkey_sign_data(gnutls_x509_privkey_t key,
gnutls_digest_algorithm_t digest,
unsigned int flags,
const gnutls_datum_t * data,
- void *signature,
- size_t * signature_size);
+ void *signature, size_t *signature_size);
/* Certificate request stuff.
*/
-int gnutls_x509_crq_sign(gnutls_x509_crq_t crq,
- gnutls_x509_privkey_t key);
+int gnutls_x509_crq_sign(gnutls_x509_crq_t crq, gnutls_x509_privkey_t key);
int gnutls_x509_crq_sign2(gnutls_x509_crq_t crq,
gnutls_x509_privkey_t key,
- gnutls_digest_algorithm_t dig,
- unsigned int flags);
+ gnutls_digest_algorithm_t dig, unsigned int flags);
int gnutls_x509_crq_print(gnutls_x509_crq_t crq,
gnutls_certificate_print_formats_t
@@ -1372,53 +1348,46 @@ int gnutls_x509_crq_get_private_key_usage_period(gnutls_x509_crq_t
*critical);
int gnutls_x509_crq_get_dn(gnutls_x509_crq_t crq, char *buf,
- size_t * sizeof_buf);
+ size_t *sizeof_buf);
int gnutls_x509_crq_get_dn2(gnutls_x509_crq_t crq, gnutls_datum_t * dn);
-int gnutls_x509_crq_get_dn3(gnutls_x509_crq_t crq, gnutls_datum_t * dn, unsigned flags);
-int gnutls_x509_crq_get_dn_oid(gnutls_x509_crq_t crq, unsigned indx,
- void *oid, size_t * sizeof_oid);
-int gnutls_x509_crq_get_dn_by_oid(gnutls_x509_crq_t crq,
- const char *oid, unsigned indx,
- unsigned int raw_flag, void *buf,
- size_t * sizeof_buf);
+int gnutls_x509_crq_get_dn3(gnutls_x509_crq_t crq, gnutls_datum_t * dn,
+ unsigned flags);
+int gnutls_x509_crq_get_dn_oid(gnutls_x509_crq_t crq, unsigned indx, void *oid,
+ size_t *sizeof_oid);
+int gnutls_x509_crq_get_dn_by_oid(gnutls_x509_crq_t crq, const char *oid,
+ unsigned indx, unsigned int raw_flag,
+ void *buf, size_t *sizeof_buf);
int gnutls_x509_crq_set_dn(gnutls_x509_crq_t crq, const char *dn,
const char **err);
-int gnutls_x509_crq_set_dn_by_oid(gnutls_x509_crq_t crq,
- const char *oid,
- unsigned int raw_flag,
- const void *data,
+int gnutls_x509_crq_set_dn_by_oid(gnutls_x509_crq_t crq, const char *oid,
+ unsigned int raw_flag, const void *data,
unsigned int sizeof_data);
-int gnutls_x509_crq_set_version(gnutls_x509_crq_t crq,
- unsigned int version);
+int gnutls_x509_crq_set_version(gnutls_x509_crq_t crq, unsigned int version);
int gnutls_x509_crq_get_version(gnutls_x509_crq_t crq);
-int gnutls_x509_crq_set_key(gnutls_x509_crq_t crq,
- gnutls_x509_privkey_t key);
+int gnutls_x509_crq_set_key(gnutls_x509_crq_t crq, gnutls_x509_privkey_t key);
int
gnutls_x509_crq_set_extension_by_oid(gnutls_x509_crq_t crq,
const char *oid, const void *buf,
- size_t sizeof_buf,
- unsigned int critical);
+ size_t sizeof_buf, unsigned int critical);
int gnutls_x509_crq_set_challenge_password(gnutls_x509_crq_t crq,
const char *pass);
int gnutls_x509_crq_get_challenge_password(gnutls_x509_crq_t crq,
- char *pass,
- size_t * sizeof_pass);
+ char *pass, size_t *sizeof_pass);
int gnutls_x509_crq_set_attribute_by_oid(gnutls_x509_crq_t crq,
const char *oid,
void *buf, size_t sizeof_buf);
int gnutls_x509_crq_get_attribute_by_oid(gnutls_x509_crq_t crq,
const char *oid, unsigned indx,
- void *buf, size_t * sizeof_buf);
+ void *buf, size_t *sizeof_buf);
int gnutls_x509_crq_export(gnutls_x509_crq_t crq,
gnutls_x509_crt_fmt_t format,
- void *output_data, size_t * output_data_size);
+ void *output_data, size_t *output_data_size);
int gnutls_x509_crq_export2(gnutls_x509_crq_t crq,
- gnutls_x509_crt_fmt_t format,
- gnutls_datum_t * out);
+ gnutls_x509_crt_fmt_t format, gnutls_datum_t * out);
int gnutls_x509_crt_set_crq(gnutls_x509_crt_t crt, gnutls_x509_crq_t crq);
int gnutls_x509_crt_set_crq_extensions(gnutls_x509_crt_t crt,
@@ -1426,8 +1395,8 @@ int gnutls_x509_crt_set_crq_extensions(gnutls_x509_crt_t crt,
int
gnutls_x509_crt_set_crq_extension_by_oid(gnutls_x509_crt_t crt,
- gnutls_x509_crq_t crq, const char *oid,
- unsigned flags);
+ gnutls_x509_crq_t crq, const char *oid,
+ unsigned flags);
int gnutls_x509_crq_set_private_key_usage_period(gnutls_x509_crq_t
crq,
@@ -1444,59 +1413,56 @@ int gnutls_x509_crq_set_subject_alt_name(gnutls_x509_crq_t crq,
int
gnutls_x509_crq_set_subject_alt_othername(gnutls_x509_crq_t crq,
- const char *oid,
- const void *data,
- unsigned int data_size,
- unsigned int flags);
+ const char *oid,
+ const void *data,
+ unsigned int data_size,
+ unsigned int flags);
-int gnutls_x509_crq_set_key_usage(gnutls_x509_crq_t crq,
- unsigned int usage);
+int gnutls_x509_crq_set_key_usage(gnutls_x509_crq_t crq, unsigned int usage);
int gnutls_x509_crq_set_basic_constraints(gnutls_x509_crq_t crq,
unsigned int ca,
int pathLenConstraint);
int gnutls_x509_crq_set_key_purpose_oid(gnutls_x509_crq_t crq,
- const void *oid,
- unsigned int critical);
+ const void *oid, unsigned int critical);
int gnutls_x509_crq_get_key_purpose_oid(gnutls_x509_crq_t crq,
unsigned indx, void *oid,
- size_t * sizeof_oid,
+ size_t *sizeof_oid,
unsigned int *critical);
int gnutls_x509_crq_get_extension_data(gnutls_x509_crq_t crq,
unsigned indx, void *data,
- size_t * sizeof_data);
+ size_t *sizeof_data);
int
gnutls_x509_crq_get_extension_data2(gnutls_x509_crq_t crq,
- unsigned indx,
- gnutls_datum_t * data);
+ unsigned indx, gnutls_datum_t * data);
int gnutls_x509_crq_get_extension_info(gnutls_x509_crq_t crq,
unsigned indx, void *oid,
- size_t * sizeof_oid,
+ size_t *sizeof_oid,
unsigned int *critical);
int gnutls_x509_crq_get_attribute_data(gnutls_x509_crq_t crq,
unsigned indx, void *data,
- size_t * sizeof_data);
+ size_t *sizeof_data);
int gnutls_x509_crq_get_attribute_info(gnutls_x509_crq_t crq,
unsigned indx, void *oid,
- size_t * sizeof_oid);
-int gnutls_x509_crq_get_pk_algorithm(gnutls_x509_crq_t crq,
- unsigned int *bits);
+ size_t *sizeof_oid);
+int gnutls_x509_crq_get_pk_algorithm(gnutls_x509_crq_t crq, unsigned int *bits);
int gnutls_x509_crq_get_spki(gnutls_x509_crq_t crq, gnutls_x509_spki_t spki,
unsigned int flags);
-int gnutls_x509_crq_set_spki(gnutls_x509_crq_t crq, const gnutls_x509_spki_t spki,
- unsigned int flags);
+int gnutls_x509_crq_set_spki(gnutls_x509_crq_t crq,
+ const gnutls_x509_spki_t spki, unsigned int flags);
-int gnutls_x509_crq_get_signature_oid(gnutls_x509_crq_t crq, char *oid, size_t *oid_size);
-int gnutls_x509_crq_get_pk_oid(gnutls_x509_crq_t crq, char *oid, size_t *oid_size);
+int gnutls_x509_crq_get_signature_oid(gnutls_x509_crq_t crq, char *oid,
+ size_t *oid_size);
+int gnutls_x509_crq_get_pk_oid(gnutls_x509_crq_t crq, char *oid,
+ size_t *oid_size);
int gnutls_x509_crq_get_key_id(gnutls_x509_crq_t crq,
unsigned int flags,
unsigned char *output_data,
- size_t * output_data_size);
+ size_t *output_data_size);
int gnutls_x509_crq_get_key_rsa_raw(gnutls_x509_crq_t crq,
- gnutls_datum_t * m,
- gnutls_datum_t * e);
+ gnutls_datum_t * m, gnutls_datum_t * e);
int gnutls_x509_crq_get_key_usage(gnutls_x509_crq_t crq,
unsigned int *key_usage,
@@ -1507,44 +1473,40 @@ int gnutls_x509_crq_get_basic_constraints(gnutls_x509_crq_t crq,
int gnutls_x509_crq_get_subject_alt_name(gnutls_x509_crq_t crq,
unsigned int seq,
void *ret,
- size_t * ret_size,
+ size_t *ret_size,
unsigned int *ret_type,
unsigned int *critical);
int gnutls_x509_crq_get_subject_alt_othername_oid(gnutls_x509_crq_t
crq,
unsigned int seq,
- void *ret,
- size_t * ret_size);
+ void *ret, size_t *ret_size);
int gnutls_x509_crq_get_extension_by_oid(gnutls_x509_crq_t crq,
const char *oid, unsigned indx,
void *buf,
- size_t * sizeof_buf,
+ size_t *sizeof_buf,
unsigned int *critical);
int gnutls_x509_crq_get_tlsfeatures(gnutls_x509_crq_t crq,
gnutls_x509_tlsfeatures_t features,
- unsigned flags,
- unsigned int *critical);
+ unsigned flags, unsigned int *critical);
int gnutls_x509_crq_set_tlsfeatures(gnutls_x509_crq_t crq,
gnutls_x509_tlsfeatures_t features);
int
gnutls_x509_crt_get_extension_by_oid2(gnutls_x509_crt_t cert,
- const char *oid, unsigned indx,
- gnutls_datum_t *output,
- unsigned int *critical);
+ const char *oid, unsigned indx,
+ gnutls_datum_t * output,
+ unsigned int *critical);
typedef struct gnutls_x509_trust_list_st *gnutls_x509_trust_list_t;
typedef struct gnutls_x509_trust_list_iter *gnutls_x509_trust_list_iter_t;
int
-gnutls_x509_trust_list_init(gnutls_x509_trust_list_t * list,
- unsigned int size);
+gnutls_x509_trust_list_init(gnutls_x509_trust_list_t * list, unsigned int size);
void
-gnutls_x509_trust_list_deinit(gnutls_x509_trust_list_t list,
- unsigned int all);
+gnutls_x509_trust_list_deinit(gnutls_x509_trust_list_t list, unsigned int all);
int gnutls_x509_trust_list_get_issuer(gnutls_x509_trust_list_t
list, gnutls_x509_crt_t cert,
@@ -1552,15 +1514,19 @@ int gnutls_x509_trust_list_get_issuer(gnutls_x509_trust_list_t
unsigned int flags);
int gnutls_x509_trust_list_get_issuer_by_dn(gnutls_x509_trust_list_t list,
- const gnutls_datum_t *dn,
- gnutls_x509_crt_t *issuer,
- unsigned int flags);
-
-int gnutls_x509_trust_list_get_issuer_by_subject_key_id(gnutls_x509_trust_list_t list,
- const gnutls_datum_t *dn,
- const gnutls_datum_t *spki,
- gnutls_x509_crt_t *issuer,
- unsigned int flags);
+ const gnutls_datum_t * dn,
+ gnutls_x509_crt_t * issuer,
+ unsigned int flags);
+
+int gnutls_x509_trust_list_get_issuer_by_subject_key_id(gnutls_x509_trust_list_t
+ list,
+ const gnutls_datum_t *
+ dn,
+ const gnutls_datum_t *
+ spki,
+ gnutls_x509_crt_t *
+ issuer,
+ unsigned int flags);
/**
* gnutls_trust_list_flags_t:
* @GNUTLS_TL_VERIFY_CRL: If any CRLs are provided they will be verified for validity
@@ -1583,17 +1549,17 @@ int gnutls_x509_trust_list_get_issuer_by_subject_key_id(gnutls_x509_trust_list_t
*/
typedef enum gnutls_trust_list_flags_t {
GNUTLS_TL_VERIFY_CRL = 1,
-#define GNUTLS_TL_VERIFY_CRL 1
- GNUTLS_TL_USE_IN_TLS = (1<<1),
-#define GNUTLS_TL_USE_IN_TLS (1<<1)
- GNUTLS_TL_NO_DUPLICATES = (1<<2),
-#define GNUTLS_TL_NO_DUPLICATES (1<<2)
- GNUTLS_TL_NO_DUPLICATE_KEY = (1<<3),
-#define GNUTLS_TL_NO_DUPLICATE_KEY (1<<3)
- GNUTLS_TL_GET_COPY = (1<<4),
-#define GNUTLS_TL_GET_COPY (1<<4)
- GNUTLS_TL_FAIL_ON_INVALID_CRL = (1<<5)
-#define GNUTLS_TL_FAIL_ON_INVALID_CRL (1<<5)
+# define GNUTLS_TL_VERIFY_CRL 1
+ GNUTLS_TL_USE_IN_TLS = (1 << 1),
+# define GNUTLS_TL_USE_IN_TLS (1<<1)
+ GNUTLS_TL_NO_DUPLICATES = (1 << 2),
+# define GNUTLS_TL_NO_DUPLICATES (1<<2)
+ GNUTLS_TL_NO_DUPLICATE_KEY = (1 << 3),
+# define GNUTLS_TL_NO_DUPLICATE_KEY (1<<3)
+ GNUTLS_TL_GET_COPY = (1 << 4),
+# define GNUTLS_TL_GET_COPY (1<<4)
+ GNUTLS_TL_FAIL_ON_INVALID_CRL = (1 << 5)
+# define GNUTLS_TL_FAIL_ON_INVALID_CRL (1<<5)
} gnutls_trust_list_flags_t;
int
@@ -1609,8 +1575,7 @@ int gnutls_x509_trust_list_add_named_crt(gnutls_x509_trust_list_t
list,
gnutls_x509_crt_t cert,
const void *name,
- size_t name_size,
- unsigned int flags);
+ size_t name_size, unsigned int flags);
int
gnutls_x509_trust_list_add_crls(gnutls_x509_trust_list_t list,
@@ -1619,26 +1584,26 @@ gnutls_x509_trust_list_add_crls(gnutls_x509_trust_list_t list,
unsigned int flags,
unsigned int verification_flags);
-
int
gnutls_x509_trust_list_iter_get_ca(gnutls_x509_trust_list_t list,
- gnutls_x509_trust_list_iter_t *iter,
- gnutls_x509_crt_t *crt);
+ gnutls_x509_trust_list_iter_t * iter,
+ gnutls_x509_crt_t * crt);
void gnutls_x509_trust_list_iter_deinit(gnutls_x509_trust_list_iter_t iter);
-typedef int gnutls_verify_output_function(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
- /* The issuer if verification failed
- * because of him. might be null.
- */
+typedef int gnutls_verify_output_function(gnutls_x509_crt_t cert,
+ gnutls_x509_crt_t issuer,
+ /* The issuer if verification failed
+ * because of him. might be null.
+ */
gnutls_x509_crl_t crl, /* The CRL that caused verification failure
* if any. Might be null.
*/
- unsigned int
- verification_output);
+ unsigned int verification_output);
void gnutls_session_set_verify_output_function(gnutls_session_t session,
- gnutls_verify_output_function * func);
+ gnutls_verify_output_function *
+ func);
int gnutls_x509_trust_list_verify_named_crt
(gnutls_x509_trust_list_t list, gnutls_x509_crt_t cert,
@@ -1647,13 +1612,13 @@ int gnutls_x509_trust_list_verify_named_crt
int
gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
- gnutls_x509_crt_t * cert_list,
- unsigned int cert_list_size,
- gnutls_typed_vdata_st * data,
- unsigned int elements,
- unsigned int flags,
- unsigned int *voutput,
- gnutls_verify_output_function func);
+ gnutls_x509_crt_t * cert_list,
+ unsigned int cert_list_size,
+ gnutls_typed_vdata_st * data,
+ unsigned int elements,
+ unsigned int flags,
+ unsigned int *voutput,
+ gnutls_verify_output_function func);
int
gnutls_x509_trust_list_verify_crt(gnutls_x509_trust_list_t list,
@@ -1683,11 +1648,11 @@ gnutls_x509_trust_list_add_trust_file(gnutls_x509_trust_list_t
int
gnutls_x509_trust_list_add_trust_dir(gnutls_x509_trust_list_t list,
- const char *ca_dir,
- const char *crl_dir,
- gnutls_x509_crt_fmt_t type,
- unsigned int tl_flags,
- unsigned int tl_vflags);
+ const char *ca_dir,
+ const char *crl_dir,
+ gnutls_x509_crt_fmt_t type,
+ unsigned int tl_flags,
+ unsigned int tl_vflags);
int
gnutls_x509_trust_list_remove_trust_file(gnutls_x509_trust_list_t
@@ -1707,13 +1672,18 @@ gnutls_x509_trust_list_add_system_trust(gnutls_x509_trust_list_t
unsigned int tl_flags,
unsigned int tl_vflags);
-typedef int gnutls_x509_trust_list_getissuer_function(gnutls_x509_trust_list_t list,
- const gnutls_x509_crt_t cert,
- gnutls_x509_crt_t **issuers,
- unsigned int *issuers_size);
+typedef int gnutls_x509_trust_list_getissuer_function(gnutls_x509_trust_list_t
+ list,
+ const gnutls_x509_crt_t
+ cert,
+ gnutls_x509_crt_t **
+ issuers, unsigned int
+ *issuers_size);
-void gnutls_x509_trust_list_set_getissuer_function(gnutls_x509_trust_list_t tlist,
- gnutls_x509_trust_list_getissuer_function *func);
+void gnutls_x509_trust_list_set_getissuer_function(gnutls_x509_trust_list_t
+ tlist,
+ gnutls_x509_trust_list_getissuer_function
+ * func);
void gnutls_x509_trust_list_set_ptr(gnutls_x509_trust_list_t tlist, void *ptr);
@@ -1723,8 +1693,7 @@ void gnutls_certificate_set_trust_list
(gnutls_certificate_credentials_t res,
gnutls_x509_trust_list_t tlist, unsigned flags);
void gnutls_certificate_get_trust_list
- (gnutls_certificate_credentials_t res,
- gnutls_x509_trust_list_t *tlist);
+ (gnutls_certificate_credentials_t res, gnutls_x509_trust_list_t * tlist);
typedef struct gnutls_x509_ext_st {
char *oid;
@@ -1732,14 +1701,14 @@ typedef struct gnutls_x509_ext_st {
gnutls_datum_t data;
} gnutls_x509_ext_st;
-void gnutls_x509_ext_deinit(gnutls_x509_ext_st *ext);
+void gnutls_x509_ext_deinit(gnutls_x509_ext_st * ext);
int
-gnutls_x509_ext_print(gnutls_x509_ext_st *exts, unsigned int exts_size,
+gnutls_x509_ext_print(gnutls_x509_ext_st * exts, unsigned int exts_size,
gnutls_certificate_print_formats_t format,
gnutls_datum_t * out);
-#include <gnutls/pkcs7.h>
+# include <gnutls/pkcs7.h>
/* *INDENT-OFF* */
#ifdef __cplusplus
@@ -1747,4 +1716,4 @@ gnutls_x509_ext_print(gnutls_x509_ext_st *exts, unsigned int exts_size,
#endif
/* *INDENT-ON* */
-#endif /* GNUTLS_X509_H */
+#endif /* GNUTLS_X509_H */
diff --git a/lib/inih/ini.c b/lib/inih/ini.c
index 0393625b71..4e0ab33dde 100644
--- a/lib/inih/ini.c
+++ b/lib/inih/ini.c
@@ -8,7 +8,7 @@ https://github.com/benhoyt/inih
*/
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS)
-#define _CRT_SECURE_NO_WARNINGS
+# define _CRT_SECURE_NO_WARNINGS
#endif
#include <stdio.h>
@@ -18,188 +18,186 @@ https://github.com/benhoyt/inih
#include "ini.h"
#if !INI_USE_STACK
-#include <stdlib.h>
+# include <stdlib.h>
#endif
#define MAX_SECTION 50
#define MAX_NAME 50
/* Strip whitespace chars off end of given string, in place. Return s. */
-static char* rstrip(char* s)
+static char *rstrip(char *s)
{
- char* p = s + strlen(s);
- while (p > s && isspace((unsigned char)(*--p)))
- *p = '\0';
- return s;
+ char *p = s + strlen(s);
+ while (p > s && isspace((unsigned char)(*--p)))
+ *p = '\0';
+ return s;
}
/* Return pointer to first non-whitespace char in given string. */
-static char* lskip(const char* s)
+static char *lskip(const char *s)
{
- while (*s && isspace((unsigned char)(*s)))
- s++;
- return (char*)s;
+ while (*s && isspace((unsigned char)(*s)))
+ s++;
+ return (char *)s;
}
/* Return pointer to first char (of chars) or inline comment in given string,
or pointer to null at end of string if neither found. Inline comment must
be prefixed by a whitespace character to register as a comment. */
-static char* find_chars_or_comment(const char* s, const char* chars)
+static char *find_chars_or_comment(const char *s, const char *chars)
{
#if INI_ALLOW_INLINE_COMMENTS
- int was_space = 0;
- while (*s && (!chars || !strchr(chars, *s)) &&
- !(was_space && strchr(INI_INLINE_COMMENT_PREFIXES, *s))) {
- was_space = isspace((unsigned char)(*s));
- s++;
- }
+ int was_space = 0;
+ while (*s && (!chars || !strchr(chars, *s)) &&
+ !(was_space && strchr(INI_INLINE_COMMENT_PREFIXES, *s))) {
+ was_space = isspace((unsigned char)(*s));
+ s++;
+ }
#else
- while (*s && (!chars || !strchr(chars, *s))) {
- s++;
- }
+ while (*s && (!chars || !strchr(chars, *s))) {
+ s++;
+ }
#endif
- return (char*)s;
+ return (char *)s;
}
/* Version of strncpy that ensures dest (size bytes) is null-terminated. */
-static char* strncpy0(char* dest, const char* src, size_t size)
+static char *strncpy0(char *dest, const char *src, size_t size)
{
- strncpy(dest, src, size - 1);
- dest[size - 1] = '\0';
- return dest;
+ strncpy(dest, src, size - 1);
+ dest[size - 1] = '\0';
+ return dest;
}
/* See documentation in header file. */
-int ini_parse_file(FILE* file, ini_handler handler, void* user)
+int ini_parse_file(FILE * file, ini_handler handler, void *user)
{
- /* Uses a fair bit of stack (use heap instead if you need to) */
+ /* Uses a fair bit of stack (use heap instead if you need to) */
#if INI_USE_STACK
- char line[INI_MAX_LINE];
- int max_line = INI_MAX_LINE;
+ char line[INI_MAX_LINE];
+ int max_line = INI_MAX_LINE;
#else
- char* line;
- int max_line = INI_INITIAL_ALLOC;
+ char *line;
+ int max_line = INI_INITIAL_ALLOC;
#endif
#if INI_ALLOW_REALLOC && !INI_USE_STACK
- char* new_line;
- int offset;
+ char *new_line;
+ int offset;
#endif
- char section[MAX_SECTION] = "";
- char prev_name[MAX_NAME] = "";
+ char section[MAX_SECTION] = "";
+ char prev_name[MAX_NAME] = "";
- char* end;
- char* name;
- char* value;
- int lineno = 0;
- int error = 0;
+ char *end;
+ char *name;
+ char *value;
+ int lineno = 0;
+ int error = 0;
#if !INI_USE_STACK
- line = (char*)malloc(INI_INITIAL_ALLOC);
- if (!line) {
- return -2;
- }
+ line = (char *)malloc(INI_INITIAL_ALLOC);
+ if (!line) {
+ return -2;
+ }
#endif
#if INI_HANDLER_LINENO
-#define HANDLER(u, s, n, v) handler(u, s, n, v, lineno)
+# define HANDLER(u, s, n, v) handler(u, s, n, v, lineno)
#else
-#define HANDLER(u, s, n, v) handler(u, s, n, v)
+# define HANDLER(u, s, n, v) handler(u, s, n, v)
#endif
- /* Scan through stream line by line */
- while (fgets(line, max_line, file) != NULL) {
- char* start;
+ /* Scan through stream line by line */
+ while (fgets(line, max_line, file) != NULL) {
+ char *start;
#if INI_ALLOW_REALLOC && !INI_USE_STACK
- offset = strlen(line);
- while (offset == max_line - 1 && line[offset - 1] != '\n') {
- max_line *= 2;
- if (max_line > INI_MAX_LINE)
- max_line = INI_MAX_LINE;
- new_line = realloc(line, max_line);
- if (!new_line) {
- free(line);
- return -2;
- }
- line = new_line;
- if (fgets(line + offset, max_line - offset, file) == NULL)
- break;
- if (max_line >= INI_MAX_LINE)
- break;
- offset += strlen(line + offset);
- }
+ offset = strlen(line);
+ while (offset == max_line - 1 && line[offset - 1] != '\n') {
+ max_line *= 2;
+ if (max_line > INI_MAX_LINE)
+ max_line = INI_MAX_LINE;
+ new_line = realloc(line, max_line);
+ if (!new_line) {
+ free(line);
+ return -2;
+ }
+ line = new_line;
+ if (fgets(line + offset, max_line - offset, file) ==
+ NULL)
+ break;
+ if (max_line >= INI_MAX_LINE)
+ break;
+ offset += strlen(line + offset);
+ }
#endif
- lineno++;
+ lineno++;
- start = line;
+ start = line;
#if INI_ALLOW_BOM
- if (lineno == 1 && (unsigned char)start[0] == 0xEF &&
- (unsigned char)start[1] == 0xBB &&
- (unsigned char)start[2] == 0xBF) {
- start += 3;
- }
+ if (lineno == 1 && (unsigned char)start[0] == 0xEF &&
+ (unsigned char)start[1] == 0xBB &&
+ (unsigned char)start[2] == 0xBF) {
+ start += 3;
+ }
#endif
- start = lskip(rstrip(start));
+ start = lskip(rstrip(start));
- if (strchr(INI_START_COMMENT_PREFIXES, *start)) {
- /* Start-of-line comment */
- }
+ if (strchr(INI_START_COMMENT_PREFIXES, *start)) {
+ /* Start-of-line comment */
+ }
#if INI_ALLOW_MULTILINE
- else if (*prev_name && *start && start > line) {
- /* Non-blank line with leading whitespace, treat as continuation
- of previous name's value (as per Python configparser). */
- if (!HANDLER(user, section, prev_name, start) && !error)
- error = lineno;
- }
+ else if (*prev_name && *start && start > line) {
+ /* Non-blank line with leading whitespace, treat as continuation
+ of previous name's value (as per Python configparser). */
+ if (!HANDLER(user, section, prev_name, start) && !error)
+ error = lineno;
+ }
#endif
- else if (*start == '[') {
- /* A "[section]" line */
- end = find_chars_or_comment(start + 1, "]");
- if (*end == ']') {
- *end = '\0';
- strncpy0(section, start + 1, sizeof(section));
- *prev_name = '\0';
- }
- else if (!error) {
- /* No ']' found on section line */
- error = lineno;
- }
- }
- else if (*start) {
- /* Not a comment, must be a name[=:]value pair */
- end = find_chars_or_comment(start, "=:");
- if (*end == '=' || *end == ':') {
- *end = '\0';
- name = rstrip(start);
- value = end + 1;
+ else if (*start == '[') {
+ /* A "[section]" line */
+ end = find_chars_or_comment(start + 1, "]");
+ if (*end == ']') {
+ *end = '\0';
+ strncpy0(section, start + 1, sizeof(section));
+ *prev_name = '\0';
+ } else if (!error) {
+ /* No ']' found on section line */
+ error = lineno;
+ }
+ } else if (*start) {
+ /* Not a comment, must be a name[=:]value pair */
+ end = find_chars_or_comment(start, "=:");
+ if (*end == '=' || *end == ':') {
+ *end = '\0';
+ name = rstrip(start);
+ value = end + 1;
#if INI_ALLOW_INLINE_COMMENTS
- end = find_chars_or_comment(value, NULL);
- if (*end)
- *end = '\0';
+ end = find_chars_or_comment(value, NULL);
+ if (*end)
+ *end = '\0';
#endif
- value = lskip(value);
- rstrip(value);
-
- /* Valid name[=:]value pair found, call handler */
- strncpy0(prev_name, name, sizeof(prev_name));
- if (!HANDLER(user, section, name, value) && !error)
- error = lineno;
- }
- else if (!error) {
- /* No '=' or ':' found on name[=:]value line */
- error = lineno;
- }
- }
-
+ value = lskip(value);
+ rstrip(value);
+
+ /* Valid name[=:]value pair found, call handler */
+ strncpy0(prev_name, name, sizeof(prev_name));
+ if (!HANDLER(user, section, name, value)
+ && !error)
+ error = lineno;
+ } else if (!error) {
+ /* No '=' or ':' found on name[=:]value line */
+ error = lineno;
+ }
+ }
#if INI_STOP_ON_FIRST_ERROR
- if (error)
- break;
+ if (error)
+ break;
#endif
- }
+ }
#if !INI_USE_STACK
- free(line);
+ free(line);
#endif
- return error;
+ return error;
}
diff --git a/lib/inih/ini.h b/lib/inih/ini.h
index a8fef27f85..d9f2783dba 100644
--- a/lib/inih/ini.h
+++ b/lib/inih/ini.h
@@ -8,98 +8,97 @@ https://github.com/benhoyt/inih
*/
#ifndef __INI_H__
-#define __INI_H__
+# define __INI_H__
/* Make this header file easier to include in C++ code */
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
-#include <stdio.h>
-#include <config.h>
+# include <stdio.h>
+# include <config.h>
/* Nonzero if ini_handler callback should accept lineno parameter. */
-#ifndef INI_HANDLER_LINENO
-#define INI_HANDLER_LINENO 0
-#endif
+# ifndef INI_HANDLER_LINENO
+# define INI_HANDLER_LINENO 0
+# endif
/* Typedef for prototype of handler function. */
-#if INI_HANDLER_LINENO
-typedef int (*ini_handler)(void* user, const char* section,
- const char* name, const char* value,
- int lineno);
-#else
-typedef int (*ini_handler)(void* user, const char* section,
- const char* name, const char* value);
-#endif
+# if INI_HANDLER_LINENO
+ typedef int (*ini_handler)(void *user, const char *section,
+ const char *name, const char *value,
+ int lineno);
+# else
+ typedef int (*ini_handler)(void *user, const char *section,
+ const char *name, const char *value);
+# endif
/* Typedef for prototype of fgets-style reader function. */
-typedef char* (*ini_reader)(char* str, int num, void* stream);
+ typedef char *(*ini_reader)(char *str, int num, void *stream);
/* Same as ini_parse(), but takes a FILE* instead of filename. This doesn't
close the file when it's finished -- the caller must do that. */
-int ini_parse_file(FILE* file, ini_handler handler, void* user);
+ int ini_parse_file(FILE * file, ini_handler handler, void *user);
/* Nonzero to allow multi-line value parsing, in the style of Python's
configparser. If allowed, ini_parse() will call the handler with the same
name for each subsequent line parsed. */
-#ifndef INI_ALLOW_MULTILINE
-#define INI_ALLOW_MULTILINE 1
-#endif
+# ifndef INI_ALLOW_MULTILINE
+# define INI_ALLOW_MULTILINE 1
+# endif
/* Nonzero to allow a UTF-8 BOM sequence (0xEF 0xBB 0xBF) at the start of
the file. See https://github.com/benhoyt/inih/issues/21 */
-#ifndef INI_ALLOW_BOM
-#define INI_ALLOW_BOM 1
-#endif
+# ifndef INI_ALLOW_BOM
+# define INI_ALLOW_BOM 1
+# endif
/* Chars that begin a start-of-line comment. Per Python configparser, allow
both ; and # comments at the start of a line by default. */
-#ifndef INI_START_COMMENT_PREFIXES
-#define INI_START_COMMENT_PREFIXES ";#"
-#endif
+# ifndef INI_START_COMMENT_PREFIXES
+# define INI_START_COMMENT_PREFIXES ";#"
+# endif
/* Nonzero to allow inline comments (with valid inline comment characters
specified by INI_INLINE_COMMENT_PREFIXES). Set to 0 to turn off and match
Python 3.2+ configparser behaviour. */
-#ifndef INI_ALLOW_INLINE_COMMENTS
-#define INI_ALLOW_INLINE_COMMENTS 1
-#endif
-#ifndef INI_INLINE_COMMENT_PREFIXES
-#define INI_INLINE_COMMENT_PREFIXES ";"
-#endif
+# ifndef INI_ALLOW_INLINE_COMMENTS
+# define INI_ALLOW_INLINE_COMMENTS 1
+# endif
+# ifndef INI_INLINE_COMMENT_PREFIXES
+# define INI_INLINE_COMMENT_PREFIXES ";"
+# endif
/* Nonzero to use stack for line buffer, zero to use heap (malloc/free). */
-#ifndef INI_USE_STACK
-#define INI_USE_STACK 1
-#endif
+# ifndef INI_USE_STACK
+# define INI_USE_STACK 1
+# endif
/* Maximum line length for any line in INI file (stack or heap). Note that
this must be 3 more than the longest line (due to '\r', '\n', and '\0'). */
-#ifndef INI_MAX_LINE
-#define INI_MAX_LINE 200
-#endif
+# ifndef INI_MAX_LINE
+# define INI_MAX_LINE 200
+# endif
/* Nonzero to allow heap line buffer to grow via realloc(), zero for a
fixed-size buffer of INI_MAX_LINE bytes. Only applies if INI_USE_STACK is
zero. */
-#ifndef INI_ALLOW_REALLOC
-#define INI_ALLOW_REALLOC 0
-#endif
+# ifndef INI_ALLOW_REALLOC
+# define INI_ALLOW_REALLOC 0
+# endif
/* Initial size in bytes for heap line buffer. Only applies if INI_USE_STACK
is zero. */
-#ifndef INI_INITIAL_ALLOC
-#define INI_INITIAL_ALLOC 200
-#endif
+# ifndef INI_INITIAL_ALLOC
+# define INI_INITIAL_ALLOC 200
+# endif
/* Stop parsing on first error (default is to keep parsing). */
-#ifndef INI_STOP_ON_FIRST_ERROR
-#define INI_STOP_ON_FIRST_ERROR 0
-#endif
+# ifndef INI_STOP_ON_FIRST_ERROR
+# define INI_STOP_ON_FIRST_ERROR 0
+# endif
-#ifdef __cplusplus
+# ifdef __cplusplus
}
-#endif
-
-#endif /* __INI_H__ */
+# endif
+#endif /* __INI_H__ */
diff --git a/lib/iov.c b/lib/iov.c
index d148ac97e4..5900008c99 100644
--- a/lib/iov.c
+++ b/lib/iov.c
@@ -37,8 +37,7 @@
*/
int
_gnutls_iov_iter_init(struct iov_iter_st *iter,
- const giovec_t *iov, size_t iov_count,
- size_t block_size)
+ const giovec_t * iov, size_t iov_count, size_t block_size)
{
if (unlikely(block_size > MAX_CIPHER_BLOCK_SIZE))
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -68,8 +67,7 @@ _gnutls_iov_iter_init(struct iov_iter_st *iter,
* Returns: On success, a value greater than or equal to zero is
* returned, otherwise a negative error code is returned
*/
-ssize_t
-_gnutls_iov_iter_next(struct iov_iter_st *iter, uint8_t **data)
+ssize_t _gnutls_iov_iter_next(struct iov_iter_st *iter, uint8_t ** data)
{
while (iter->iov_index < iter->iov_count) {
const giovec_t *iov = &iter->iov[iter->iov_index];
@@ -84,7 +82,9 @@ _gnutls_iov_iter_next(struct iov_iter_st *iter, uint8_t **data)
}
if (unlikely(len < iter->iov_offset))
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
len -= iter->iov_offset;
p += iter->iov_offset;
@@ -149,7 +149,7 @@ _gnutls_iov_iter_next(struct iov_iter_st *iter, uint8_t **data)
* Flush the content of temp buffer (if any) to the data buffer.
*/
int
-_gnutls_iov_iter_sync(struct iov_iter_st *iter, const uint8_t *data,
+_gnutls_iov_iter_sync(struct iov_iter_st *iter, const uint8_t * data,
size_t data_size)
{
size_t iov_index;
@@ -180,7 +180,8 @@ _gnutls_iov_iter_sync(struct iov_iter_st *iter, const uint8_t *data,
while (iov_offset == 0) {
if (unlikely(iov_index == 0))
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
iov_index--;
iov_offset = iter->iov[iov_index].iov_len;
diff --git a/lib/iov.h b/lib/iov.h
index 5b99034607..9ec4a1562c 100644
--- a/lib/iov.h
+++ b/lib/iov.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_LIB_IOV_H
-#define GNUTLS_LIB_IOV_H
+# define GNUTLS_LIB_IOV_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
struct iov_iter_st {
const giovec_t *iov;
@@ -31,18 +31,18 @@ struct iov_iter_st {
size_t iov_index; /* index of the current buffer */
size_t iov_offset; /* byte offset in the current buffer */
- uint8_t block[MAX_CIPHER_BLOCK_SIZE]; /* incomplete block for reading */
+ uint8_t block[MAX_CIPHER_BLOCK_SIZE]; /* incomplete block for reading */
size_t block_size; /* actual block size of the cipher */
size_t block_offset; /* offset in block */
};
int _gnutls_iov_iter_init(struct iov_iter_st *iter,
- const giovec_t *iov, size_t iov_count,
+ const giovec_t * iov, size_t iov_count,
size_t block_size);
-ssize_t _gnutls_iov_iter_next(struct iov_iter_st *iter, uint8_t **data);
+ssize_t _gnutls_iov_iter_next(struct iov_iter_st *iter, uint8_t ** data);
-int _gnutls_iov_iter_sync(struct iov_iter_st *iter, const uint8_t *data,
+int _gnutls_iov_iter_sync(struct iov_iter_st *iter, const uint8_t * data,
size_t data_size);
-#endif /* GNUTLS_LIB_IOV_H */
+#endif /* GNUTLS_LIB_IOV_H */
diff --git a/lib/kx.c b/lib/kx.c
index b016779e3f..60c45fdb2f 100644
--- a/lib/kx.c
+++ b/lib/kx.c
@@ -106,12 +106,10 @@ gnutls_session_set_keylog_function(gnutls_session_t session,
int
_gnutls_call_keylog_func(gnutls_session_t session,
- const char *label,
- const uint8_t *data,
- unsigned size)
+ const char *label, const uint8_t * data, unsigned size)
{
if (session->internals.keylog_func) {
- gnutls_datum_t secret = {(void*)data, size};
+ gnutls_datum_t secret = { (void *)data, size };
return session->internals.keylog_func(session, label, &secret);
}
return 0;
@@ -119,8 +117,7 @@ _gnutls_call_keylog_func(gnutls_session_t session,
int
_gnutls_nss_keylog_func(gnutls_session_t session,
- const char *label,
- const gnutls_datum_t *secret)
+ const char *label, const gnutls_datum_t * secret)
{
/* ignore subsequent traffic secrets that are calculated from
* the previous traffic secret
@@ -138,8 +135,7 @@ _gnutls_nss_keylog_func(gnutls_session_t session,
GNUTLS_ONCE(keylog_once);
-static void
-keylog_once_init(void)
+static void keylog_once_init(void)
{
const char *keylogfile;
@@ -153,13 +149,13 @@ keylog_once_init(void)
void _gnutls_nss_keylog_write(gnutls_session_t session,
const char *label,
- const uint8_t *secret, size_t secret_size)
+ const uint8_t * secret, size_t secret_size)
{
(void)gnutls_once(&keylog_once, keylog_once_init);
if (keylog) {
- char client_random_hex[2*GNUTLS_RANDOM_SIZE+1];
- char secret_hex[2*MAX_HASH_SIZE+1];
+ char client_random_hex[2 * GNUTLS_RANDOM_SIZE + 1];
+ char secret_hex[2 * MAX_HASH_SIZE + 1];
if (gnutls_static_mutex_lock(&keylog_mutex) < 0) {
return;
@@ -170,8 +166,8 @@ void _gnutls_nss_keylog_write(gnutls_session_t session,
client_random, GNUTLS_RANDOM_SIZE,
client_random_hex,
sizeof(client_random_hex), NULL),
- _gnutls_bin2hex(secret, secret_size,
- secret_hex, sizeof(secret_hex), NULL));
+ _gnutls_bin2hex(secret, secret_size, secret_hex,
+ sizeof(secret_hex), NULL));
fflush(keylog);
(void)gnutls_static_mutex_unlock(&keylog_mutex);
}
@@ -203,12 +199,12 @@ generate_normal_master(gnutls_session_t session,
NULL));
_gnutls_hard_log("INT: CLIENT RANDOM[%d]: %s\n", 32,
_gnutls_bin2hex(session->security_parameters.
- client_random, 32, buf,
- sizeof(buf), NULL));
+ client_random, 32, buf, sizeof(buf),
+ NULL));
_gnutls_hard_log("INT: SERVER RANDOM[%d]: %s\n", 32,
_gnutls_bin2hex(session->security_parameters.
- server_random, 32, buf,
- sizeof(buf), NULL));
+ server_random, 32, buf, sizeof(buf),
+ NULL));
if (session->security_parameters.ext_master_secret == 0) {
uint8_t rnd[2 * GNUTLS_RANDOM_SIZE + 1];
@@ -218,7 +214,8 @@ generate_normal_master(gnutls_session_t session,
session->security_parameters.server_random,
GNUTLS_RANDOM_SIZE);
- _gnutls_memory_mark_defined(session->security_parameters.master_secret,
+ _gnutls_memory_mark_defined(session->
+ security_parameters.master_secret,
GNUTLS_MASTER_SIZE);
#ifdef ENABLE_SSL3
if (get_num_version(session) == GNUTLS_SSL3) {
@@ -232,17 +229,19 @@ generate_normal_master(gnutls_session_t session,
} else
#endif
ret =
- _gnutls_PRF(session, premaster->data, premaster->size,
- MASTER_SECRET, MASTER_SECRET_SIZE,
- rnd, 2 * GNUTLS_RANDOM_SIZE,
+ _gnutls_PRF(session, premaster->data,
+ premaster->size, MASTER_SECRET,
+ MASTER_SECRET_SIZE, rnd,
+ 2 * GNUTLS_RANDOM_SIZE,
GNUTLS_MASTER_SIZE,
session->security_parameters.
master_secret);
if (ret < 0)
- _gnutls_memory_mark_undefined(session->security_parameters.master_secret,
- GNUTLS_MASTER_SIZE);
+ _gnutls_memory_mark_undefined
+ (session->security_parameters.master_secret,
+ GNUTLS_MASTER_SIZE);
} else {
- gnutls_datum_t shash = {NULL, 0};
+ gnutls_datum_t shash = { NULL, 0 };
/* draft-ietf-tls-session-hash-02 */
ret = _gnutls_handshake_get_session_hash(session, &shash);
@@ -253,18 +252,18 @@ generate_normal_master(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
#endif
- _gnutls_memory_mark_defined(session->security_parameters.master_secret,
+ _gnutls_memory_mark_defined(session->
+ security_parameters.master_secret,
GNUTLS_MASTER_SIZE);
ret =
_gnutls_PRF(session, premaster->data, premaster->size,
EXT_MASTER_SECRET, EXT_MASTER_SECRET_SIZE,
- shash.data, shash.size,
- GNUTLS_MASTER_SIZE,
- session->security_parameters.
- master_secret);
+ shash.data, shash.size, GNUTLS_MASTER_SIZE,
+ session->security_parameters.master_secret);
if (ret < 0)
- _gnutls_memory_mark_undefined(session->security_parameters.master_secret,
- GNUTLS_MASTER_SIZE);
+ _gnutls_memory_mark_undefined
+ (session->security_parameters.master_secret,
+ GNUTLS_MASTER_SIZE);
gnutls_free(shash.data);
}
@@ -276,7 +275,8 @@ generate_normal_master(gnutls_session_t session,
return ret;
ret = _gnutls_call_keylog_func(session, "CLIENT_RANDOM",
- session->security_parameters.master_secret,
+ session->
+ security_parameters.master_secret,
GNUTLS_MASTER_SIZE);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -284,8 +284,8 @@ generate_normal_master(gnutls_session_t session,
_gnutls_hard_log("INT: MASTER SECRET[%d]: %s\n",
GNUTLS_MASTER_SIZE,
_gnutls_bin2hex(session->security_parameters.
- master_secret, GNUTLS_MASTER_SIZE,
- buf, sizeof(buf), NULL));
+ master_secret, GNUTLS_MASTER_SIZE, buf,
+ sizeof(buf), NULL));
return ret;
}
@@ -300,11 +300,9 @@ int _gnutls_send_server_kx_message(gnutls_session_t session, int again)
int ret = 0;
mbuffer_st *bufel = NULL;
- if (session->internals.auth_struct->gnutls_generate_server_kx ==
- NULL)
+ if (session->internals.auth_struct->gnutls_generate_server_kx == NULL)
return 0;
-
if (again == 0) {
ret = _gnutls_buffer_init_handshake_mbuffer(&buf);
if (ret < 0)
@@ -328,7 +326,8 @@ int _gnutls_send_server_kx_message(gnutls_session_t session, int again)
bufel = _gnutls_buffer_to_mbuffer(&buf);
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE);
cleanup:
_gnutls_buffer_clear(&buf);
@@ -351,7 +350,6 @@ int _gnutls_send_server_crt_request(gnutls_session_t session, int again)
if (session->internals.send_cert_req <= 0)
return 0;
-
if (again == 0) {
ret = _gnutls_buffer_init_handshake_mbuffer(&buf);
if (ret < 0)
@@ -369,14 +367,14 @@ int _gnutls_send_server_crt_request(gnutls_session_t session, int again)
bufel = _gnutls_buffer_to_mbuffer(&buf);
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST);
cleanup:
_gnutls_buffer_clear(&buf);
return ret;
}
-
/* This is the function for the client to send the key
* exchange message
*/
@@ -386,8 +384,7 @@ int _gnutls_send_client_kx_message(gnutls_session_t session, int again)
int ret = 0;
mbuffer_st *bufel = NULL;
- if (session->internals.auth_struct->gnutls_generate_client_kx ==
- NULL)
+ if (session->internals.auth_struct->gnutls_generate_client_kx == NULL)
return 0;
if (again == 0) {
@@ -406,19 +403,18 @@ int _gnutls_send_client_kx_message(gnutls_session_t session, int again)
bufel = _gnutls_buffer_to_mbuffer(&buf);
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE);
cleanup:
_gnutls_buffer_clear(&buf);
return ret;
}
-
/* This is the function for the client to send the certificate
* verify message
*/
-int
-_gnutls_send_client_certificate_verify(gnutls_session_t session, int again)
+int _gnutls_send_client_certificate_verify(gnutls_session_t session, int again)
{
gnutls_buffer_st buf;
int ret = 0;
@@ -434,9 +430,8 @@ _gnutls_send_client_certificate_verify(gnutls_session_t session, int again)
if (!(session->internals.hsk_flags & HSK_CRT_ASKED))
return 0;
-
- if (session->internals.auth_struct->
- gnutls_generate_client_crt_vrfy == NULL) {
+ if (session->internals.auth_struct->gnutls_generate_client_crt_vrfy ==
+ NULL) {
gnutls_assert();
return 0; /* this algorithm does not support cli_crt_vrfy
*/
@@ -458,11 +453,11 @@ _gnutls_send_client_certificate_verify(gnutls_session_t session, int again)
if (ret == 0)
goto cleanup;
-
bufel = _gnutls_buffer_to_mbuffer(&buf);
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY);
cleanup:
_gnutls_buffer_clear(&buf);
@@ -498,8 +493,7 @@ int _gnutls_send_client_certificate(gnutls_session_t session, int again)
*/
ret =
session->internals.auth_struct->
- gnutls_generate_client_certificate(session,
- &buf);
+ gnutls_generate_client_certificate(session, &buf);
if (ret < 0) {
gnutls_assert();
@@ -509,7 +503,6 @@ int _gnutls_send_client_certificate(gnutls_session_t session, int again)
bufel = _gnutls_buffer_to_mbuffer(&buf);
}
-
#ifdef ENABLE_SSL3
/* In the SSL 3.0 protocol we need to send a
* no certificate alert instead of an
@@ -522,17 +515,17 @@ int _gnutls_send_client_certificate(gnutls_session_t session, int again)
gnutls_alert_send(session, GNUTLS_AL_WARNING,
GNUTLS_A_SSL3_NO_CERTIFICATE);
- } else /* TLS 1.0 or SSL 3.0 with a valid certificate
- */
+ } else /* TLS 1.0 or SSL 3.0 with a valid certificate
+ */
#endif
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_CERTIFICATE_PKT);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_CERTIFICATE_PKT);
cleanup:
_gnutls_buffer_clear(&buf);
return ret;
}
-
/* This is called when we want send our certificate
*/
int _gnutls_send_server_certificate(gnutls_session_t session, int again)
@@ -562,22 +555,21 @@ int _gnutls_send_server_certificate(gnutls_session_t session, int again)
bufel = _gnutls_buffer_to_mbuffer(&buf);
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_CERTIFICATE_PKT);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_CERTIFICATE_PKT);
cleanup:
_gnutls_buffer_clear(&buf);
return ret;
}
-
int _gnutls_recv_server_kx_message(gnutls_session_t session)
{
gnutls_buffer_st buf;
int ret = 0;
unsigned int optflag = 0;
- if (session->internals.auth_struct->gnutls_process_server_kx !=
- NULL) {
+ if (session->internals.auth_struct->gnutls_process_server_kx != NULL) {
/* Server key exchange packet is optional for PSK. */
if (_gnutls_session_is_psk(session))
optflag = 1;
@@ -593,8 +585,7 @@ int _gnutls_recv_server_kx_message(gnutls_session_t session)
ret =
session->internals.auth_struct->
- gnutls_process_server_kx(session, buf.data,
- buf.length);
+ gnutls_process_server_kx(session, buf.data, buf.length);
_gnutls_buffer_clear(&buf);
if (ret < 0) {
@@ -611,8 +602,8 @@ int _gnutls_recv_server_crt_request(gnutls_session_t session)
gnutls_buffer_st buf;
int ret = 0;
- if (session->internals.auth_struct->
- gnutls_process_server_crt_request != NULL) {
+ if (session->internals.auth_struct->gnutls_process_server_crt_request !=
+ NULL) {
ret =
_gnutls_recv_handshake(session,
@@ -643,10 +634,8 @@ int _gnutls_recv_client_kx_message(gnutls_session_t session)
gnutls_buffer_st buf;
int ret = 0;
-
/* Do key exchange only if the algorithm permits it */
- if (session->internals.auth_struct->gnutls_process_client_kx !=
- NULL) {
+ if (session->internals.auth_struct->gnutls_process_client_kx != NULL) {
ret =
_gnutls_recv_handshake(session,
@@ -657,8 +646,7 @@ int _gnutls_recv_client_kx_message(gnutls_session_t session)
ret =
session->internals.auth_struct->
- gnutls_process_client_kx(session, buf.data,
- buf.length);
+ gnutls_process_client_kx(session, buf.data, buf.length);
_gnutls_buffer_clear(&buf);
if (ret < 0)
return ret;
@@ -668,15 +656,14 @@ int _gnutls_recv_client_kx_message(gnutls_session_t session)
return ret;
}
-
int _gnutls_recv_client_certificate(gnutls_session_t session)
{
gnutls_buffer_st buf;
int ret = 0;
int optional;
- if (session->internals.auth_struct->
- gnutls_process_client_certificate == NULL)
+ if (session->internals.auth_struct->gnutls_process_client_certificate ==
+ NULL)
return 0;
/* if we have not requested a certificate then just return
@@ -704,8 +691,7 @@ int _gnutls_recv_client_certificate(gnutls_session_t session)
if (optional != 0 &&
ret == GNUTLS_E_WARNING_ALERT_RECEIVED &&
get_num_version(session) == GNUTLS_SSL3 &&
- gnutls_alert_get(session) ==
- GNUTLS_A_SSL3_NO_CERTIFICATE) {
+ gnutls_alert_get(session) == GNUTLS_A_SSL3_NO_CERTIFICATE) {
/* SSL3 does not send an empty certificate,
* but this alert. So we just ignore it.
@@ -738,8 +724,7 @@ int _gnutls_recv_client_certificate(gnutls_session_t session)
}
ret =
session->internals.auth_struct->
- gnutls_process_client_certificate(session, buf.data,
- buf.length);
+ gnutls_process_client_certificate(session, buf.data, buf.length);
if (ret < 0 && ret != GNUTLS_E_NO_CERTIFICATE_FOUND) {
gnutls_assert();
@@ -753,7 +738,7 @@ int _gnutls_recv_client_certificate(gnutls_session_t session)
else
session->internals.hsk_flags |= HSK_CRT_VRFY_EXPECTED;
- cleanup:
+ cleanup:
_gnutls_buffer_clear(&buf);
return ret;
}
@@ -763,8 +748,8 @@ int _gnutls_recv_server_certificate(gnutls_session_t session)
gnutls_buffer_st buf;
int ret = 0;
- if (session->internals.auth_struct->
- gnutls_process_server_certificate != NULL) {
+ if (session->internals.auth_struct->gnutls_process_server_certificate !=
+ NULL) {
ret =
_gnutls_recv_handshake(session,
@@ -789,19 +774,16 @@ int _gnutls_recv_server_certificate(gnutls_session_t session)
return ret;
}
-
/* Recv the client certificate verify. This packet may not
* arrive if the peer did not send us a certificate.
*/
-int
-_gnutls_recv_client_certificate_verify_message(gnutls_session_t session)
+int _gnutls_recv_client_certificate_verify_message(gnutls_session_t session)
{
gnutls_buffer_st buf;
int ret = 0;
-
- if (session->internals.auth_struct->
- gnutls_process_client_crt_vrfy == NULL)
+ if (session->internals.auth_struct->gnutls_process_client_crt_vrfy ==
+ NULL)
return 0;
if (session->internals.send_cert_req == 0 ||
@@ -828,7 +810,7 @@ _gnutls_recv_client_certificate_verify_message(gnutls_session_t session)
session->internals.auth_struct->
gnutls_process_client_crt_vrfy(session, buf.data, buf.length);
- cleanup:
+ cleanup:
_gnutls_buffer_clear(&buf);
return ret;
}
diff --git a/lib/kx.h b/lib/kx.h
index 6b4a7fcae5..c4c992341d 100644
--- a/lib/kx.h
+++ b/lib/kx.h
@@ -21,14 +21,13 @@
*/
#ifndef GNUTLS_LIB_KX_H
-#define GNUTLS_LIB_KX_H
+# define GNUTLS_LIB_KX_H
int _gnutls_send_server_kx_message(gnutls_session_t session, int again);
int _gnutls_send_client_kx_message(gnutls_session_t session, int again);
int _gnutls_recv_server_kx_message(gnutls_session_t session);
int _gnutls_recv_client_kx_message(gnutls_session_t session);
-int _gnutls_send_client_certificate_verify(gnutls_session_t session,
- int again);
+int _gnutls_send_client_certificate_verify(gnutls_session_t session, int again);
int _gnutls_send_server_certificate(gnutls_session_t session, int again);
int _gnutls_generate_master(gnutls_session_t session, int keep_premaster);
int _gnutls_recv_client_certificate(gnutls_session_t session);
@@ -36,17 +35,14 @@ int _gnutls_recv_server_certificate(gnutls_session_t session);
int _gnutls_send_client_certificate(gnutls_session_t session, int again);
int _gnutls_recv_server_crt_request(gnutls_session_t session);
int _gnutls_send_server_crt_request(gnutls_session_t session, int again);
-int _gnutls_recv_client_certificate_verify_message(gnutls_session_t
- session);
+int _gnutls_recv_client_certificate_verify_message(gnutls_session_t session);
int _gnutls_call_keylog_func(gnutls_session_t session,
const char *label,
- const uint8_t *data,
- unsigned size);
+ const uint8_t * data, unsigned size);
void _gnutls_nss_keylog_write(gnutls_session_t session,
const char *label,
- const uint8_t *secret, size_t secret_size);
+ const uint8_t * secret, size_t secret_size);
int _gnutls_nss_keylog_func(gnutls_session_t session,
- const char *label,
- const gnutls_datum_t *secret);
+ const char *label, const gnutls_datum_t * secret);
-#endif /* GNUTLS_LIB_KX_H */
+#endif /* GNUTLS_LIB_KX_H */
diff --git a/lib/locks.c b/lib/locks.c
index 8888ed6b12..7faeb0b769 100644
--- a/lib/locks.c
+++ b/lib/locks.c
@@ -28,7 +28,6 @@
#include <locks.h>
-
/**
* gnutls_global_set_mutex:
* @init: mutex initialization function
diff --git a/lib/locks.h b/lib/locks.h
index 907adfc134..7f3f5ac64c 100644
--- a/lib/locks.h
+++ b/lib/locks.h
@@ -21,12 +21,12 @@
*/
#ifndef GNUTLS_LIB_LOCKS_H
-#define GNUTLS_LIB_LOCKS_H
+# define GNUTLS_LIB_LOCKS_H
-#include <gnutls/gnutls.h>
-#include "gnutls_int.h"
-#include "system.h"
-#include "glthread/lock.h"
+# include <gnutls/gnutls.h>
+# include "gnutls_int.h"
+# include "system.h"
+# include "glthread/lock.h"
extern mutex_init_func gnutls_mutex_init;
extern mutex_deinit_func gnutls_mutex_deinit;
@@ -38,14 +38,14 @@ extern mutex_unlock_func gnutls_mutex_unlock;
* below instead of the above gnutls_mutex_* functions, because the
* latter can be replaced with gnutls_global_set_mutex().
*/
-#define GNUTLS_STATIC_MUTEX(lock) gl_lock_define_initialized(static, lock)
+# define GNUTLS_STATIC_MUTEX(lock) gl_lock_define_initialized(static, lock)
typedef gl_lock_t *gnutls_static_mutex_t;
-#define gnutls_static_mutex_lock(LOCK) \
+# define gnutls_static_mutex_lock(LOCK) \
(unlikely(glthread_lock_lock(LOCK)) ? \
gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
-#define gnutls_static_mutex_unlock(LOCK) \
+# define gnutls_static_mutex_unlock(LOCK) \
(unlikely(glthread_lock_unlock(LOCK)) ? \
gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
@@ -53,26 +53,26 @@ typedef gl_lock_t *gnutls_static_mutex_t;
* the functions defined below, because there is no way to replace
* those functions.
*/
-#define GNUTLS_RWLOCK(rwlock) gl_rwlock_define_initialized(static, rwlock)
+# define GNUTLS_RWLOCK(rwlock) gl_rwlock_define_initialized(static, rwlock)
typedef gl_rwlock_t *gnutls_rwlock_t;
-#define gnutls_rwlock_rdlock(RWLOCK) \
+# define gnutls_rwlock_rdlock(RWLOCK) \
(unlikely(glthread_rwlock_rdlock(RWLOCK)) ? \
gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
-#define gnutls_rwlock_wrlock(RWLOCK) \
+# define gnutls_rwlock_wrlock(RWLOCK) \
(unlikely(glthread_rwlock_wrlock(RWLOCK)) ? \
gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
-#define gnutls_rwlock_unlock(RWLOCK) \
+# define gnutls_rwlock_unlock(RWLOCK) \
(unlikely(glthread_rwlock_unlock(RWLOCK)) ? \
gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
-#define GNUTLS_ONCE(once) gl_once_define(static, once)
+# define GNUTLS_ONCE(once) gl_once_define(static, once)
typedef gl_once_t *gnutls_once_t;
-#define gnutls_once(ONCE, INIT_FUNC) \
+# define gnutls_once(ONCE, INIT_FUNC) \
(unlikely(glthread_once(ONCE, INIT_FUNC)) ? \
gnutls_assert_val(GNUTLS_E_LOCKING_ERROR) : 0)
-#endif /* GNUTLS_LIB_LOCKS_H */
+#endif /* GNUTLS_LIB_LOCKS_H */
diff --git a/lib/mbuffers.c b/lib/mbuffers.c
index 7eabf04a51..2067ae140b 100644
--- a/lib/mbuffers.c
+++ b/lib/mbuffers.c
@@ -46,7 +46,6 @@
* of record boundaries.
*/
-
/* Initialize a buffer head.
*
* Cost: O(1)
@@ -170,8 +169,7 @@ mbuffer_st *_mbuffer_head_pop_first(mbuffer_head_st * buf)
*
* Cost: O(1)
*/
-mbuffer_st *_mbuffer_head_get_first(mbuffer_head_st * buf,
- gnutls_datum_t * msg)
+mbuffer_st *_mbuffer_head_get_first(mbuffer_head_st * buf, gnutls_datum_t * msg)
{
mbuffer_st *bufel = buf->head;
@@ -294,7 +292,6 @@ mbuffer_st *_mbuffer_alloc(size_t maximum_size)
return st;
}
-
/* Copy data into a segment. The segment must not be part of a buffer
* head when using this function.
*
@@ -305,9 +302,7 @@ mbuffer_st *_mbuffer_alloc(size_t maximum_size)
* Cost: O(n)
* n: number of bytes to copy
*/
-int
-_mbuffer_append_data(mbuffer_st * bufel, void *newdata,
- size_t newdata_size)
+int _mbuffer_append_data(mbuffer_st * bufel, void *newdata, size_t newdata_size)
{
if (bufel->msg.size + newdata_size <= bufel->maximum_size) {
memcpy(&bufel->msg.data[bufel->msg.size], newdata,
@@ -353,8 +348,8 @@ mbuffer_st *_mbuffer_alloc_align16(size_t maximum_size, unsigned align_pos)
/* payload points after the mbuffer_st structure */
st->msg.data = (uint8_t *) st + sizeof(mbuffer_st);
-
- cur_alignment = ((size_t)(st->msg.data+align_pos)) % ALIGN_SIZE;
+
+ cur_alignment = ((size_t)(st->msg.data + align_pos)) % ALIGN_SIZE;
if (cur_alignment > 0)
st->msg.data += ALIGN_SIZE - cur_alignment;
@@ -366,9 +361,9 @@ mbuffer_st *_mbuffer_alloc_align16(size_t maximum_size, unsigned align_pos)
static unsigned is_aligned16(mbuffer_st * bufel, unsigned align_pos)
{
- uint8_t * ptr = _mbuffer_get_udata_ptr(bufel);
+ uint8_t *ptr = _mbuffer_get_udata_ptr(bufel);
- if (((size_t)(ptr+align_pos)) % ALIGN_SIZE == 0)
+ if (((size_t)(ptr + align_pos)) % ALIGN_SIZE == 0)
return 1;
else
return 0;
@@ -392,7 +387,7 @@ int _mbuffer_linearize_align16(mbuffer_head_st * buf, unsigned align_pos)
/* Nothing to do */
return 0;
}
-
+
bufel = _mbuffer_head_get_first(buf, NULL);
if (buf->length == 1 && is_aligned16(bufel, align_pos))
return 0;
@@ -428,7 +423,7 @@ int _mbuffer_linearize(mbuffer_head_st * buf)
/* Nothing to do */
return 0;
}
-
+
bufel = _mbuffer_alloc(buf->byte_length);
if (!bufel) {
gnutls_assert();
diff --git a/lib/mbuffers.h b/lib/mbuffers.h
index a41850c504..c2aa1848db 100644
--- a/lib/mbuffers.h
+++ b/lib/mbuffers.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_LIB_MBUFFERS_H
-#define GNUTLS_LIB_MBUFFERS_H
+# define GNUTLS_LIB_MBUFFERS_H
-#include "gnutls_int.h"
-#include "errors.h"
-#include <assert.h>
+# include "gnutls_int.h"
+# include "errors.h"
+# include <assert.h>
void _mbuffer_head_init(mbuffer_head_st * buf);
void _mbuffer_head_clear(mbuffer_head_st * buf);
@@ -49,7 +49,6 @@ mbuffer_st *_mbuffer_head_pop_first(mbuffer_head_st * buf);
int _mbuffer_append_data(mbuffer_st * bufel, void *newdata,
size_t newdata_size);
-
/* For "user" use. One can have buffer data and header.
*/
@@ -71,8 +70,7 @@ inline static void _mbuffer_set_udata_size(mbuffer_st * bufel, size_t size)
inline static void
_mbuffer_set_udata(mbuffer_st * bufel, void *data, size_t data_size)
{
- memcpy(_mbuffer_get_udata_ptr(bufel), data,
- data_size);
+ memcpy(_mbuffer_get_udata_ptr(bufel), data, data_size);
_mbuffer_set_udata_size(bufel, data_size);
}
@@ -104,7 +102,7 @@ inline static void _mbuffer_set_uhead_size(mbuffer_st * bufel, size_t size)
bufel->uhead_mark = size;
}
-inline static void _mbuffer_init(mbuffer_st *bufel, size_t max)
+inline static void _mbuffer_init(mbuffer_st * bufel, size_t max)
{
memset(bufel, 0, sizeof(*bufel));
bufel->maximum_size = max;
@@ -116,29 +114,29 @@ inline static void _mbuffer_init(mbuffer_st *bufel, size_t max)
/* Helper functions to utilize a gnutls_buffer_st in order
* to generate a gnutls_mbuffer_st, without multiple allocations.
*/
-inline static int _gnutls_buffer_init_mbuffer(gnutls_buffer_st * buf, size_t header_size)
+inline static int _gnutls_buffer_init_mbuffer(gnutls_buffer_st * buf,
+ size_t header_size)
{
int ret;
mbuffer_st *bufel;
_gnutls_buffer_init(buf);
- ret = _gnutls_buffer_resize(buf, sizeof(mbuffer_st)+header_size);
+ ret = _gnutls_buffer_resize(buf, sizeof(mbuffer_st) + header_size);
if (ret < 0)
return gnutls_assert_val(ret);
/* we store the uhead size on the uninitialized bufel, only to read
* it back on _gnutls_buffer_to_mbuffer(). */
- bufel = (void*)buf->data;
+ bufel = (void *)buf->data;
_mbuffer_set_uhead_size(bufel, header_size);
- buf->length = sizeof(mbuffer_st)+header_size;
+ buf->length = sizeof(mbuffer_st) + header_size;
return 0;
}
-#define _gnutls_buffer_init_handshake_mbuffer(b) _gnutls_buffer_init_mbuffer(b, HANDSHAKE_HEADER_SIZE(session))
-
+# define _gnutls_buffer_init_handshake_mbuffer(b) _gnutls_buffer_init_mbuffer(b, HANDSHAKE_HEADER_SIZE(session))
/* Cannot fail */
inline static mbuffer_st *_gnutls_buffer_to_mbuffer(gnutls_buffer_st * buf)
@@ -146,17 +144,17 @@ inline static mbuffer_st *_gnutls_buffer_to_mbuffer(gnutls_buffer_st * buf)
mbuffer_st *bufel;
unsigned header_size;
- bufel = (void*)buf->data;
+ bufel = (void *)buf->data;
header_size = _mbuffer_get_uhead_size(bufel);
- assert(buf->length >= sizeof(mbuffer_st)+header_size);
+ assert(buf->length >= sizeof(mbuffer_st) + header_size);
_mbuffer_init(bufel, buf->length - sizeof(mbuffer_st));
_mbuffer_set_udata_size(bufel, buf->length - sizeof(mbuffer_st));
_mbuffer_set_uhead_size(bufel, header_size);
- _gnutls_buffer_init(buf); /* avoid double frees */
+ _gnutls_buffer_init(buf); /* avoid double frees */
return bufel;
}
@@ -190,12 +188,12 @@ inline static void _mbuffer_xfree(mbuffer_st ** bufel)
*bufel = NULL;
}
-#ifdef ENABLE_ALIGN16
+# ifdef ENABLE_ALIGN16
mbuffer_st *_mbuffer_alloc_align16(size_t maximum_size, unsigned align_pos);
int _mbuffer_linearize_align16(mbuffer_head_st * buf, unsigned align_pos);
-#else
-# define _mbuffer_alloc_align16(x,y) _mbuffer_alloc(x)
-# define _mbuffer_linearize_align16(x,y) _mbuffer_linearize(x)
-#endif
+# else
+# define _mbuffer_alloc_align16(x,y) _mbuffer_alloc(x)
+# define _mbuffer_linearize_align16(x,y) _mbuffer_linearize(x)
+# endif
-#endif /* GNUTLS_LIB_MBUFFERS_H */
+#endif /* GNUTLS_LIB_MBUFFERS_H */
diff --git a/lib/mem.c b/lib/mem.c
index c6a78b1edd..b5ea1582ef 100644
--- a/lib/mem.c
+++ b/lib/mem.c
@@ -30,8 +30,8 @@ gnutls_alloc_function gnutls_malloc = malloc;
gnutls_free_function gnutls_free = free;
gnutls_realloc_function gnutls_realloc = realloc;
-void *(*gnutls_calloc) (size_t, size_t) = calloc;
-char *(*gnutls_strdup) (const char *) = _gnutls_strdup;
+void *(*gnutls_calloc)(size_t, size_t) = calloc;
+char *(*gnutls_strdup)(const char *) = _gnutls_strdup;
/* This realloc will free ptr in case realloc
* fails.
@@ -73,7 +73,7 @@ char *_gnutls_strdup(const char *str)
size_t siz;
char *ret;
- if(unlikely(!str))
+ if (unlikely(!str))
return NULL;
siz = strlen(str) + 1;
@@ -87,7 +87,7 @@ char *_gnutls_strdup(const char *str)
void *_gnutls_reallocarray(void *ptr, size_t nmemb, size_t size)
{
return xalloc_oversized(nmemb, size) ? NULL :
- gnutls_realloc(ptr, nmemb * size);
+ gnutls_realloc(ptr, nmemb * size);
}
#if 0
@@ -130,14 +130,14 @@ void gnutls_free(void *ptr)
/* Returns 1 if the provided buffer is all zero.
* It leaks no information via timing.
*/
-unsigned _gnutls_mem_is_zero(const uint8_t *ptr, unsigned size)
+unsigned _gnutls_mem_is_zero(const uint8_t * ptr, unsigned size)
{
unsigned i;
uint8_t res = 0;
- for (i=0;i<size;i++) {
+ for (i = 0; i < size; i++) {
res |= ptr[i];
}
- return ((res==0)?1:0);
+ return ((res == 0) ? 1 : 0);
}
diff --git a/lib/mem.h b/lib/mem.h
index 3082aa82bf..a0e088ea0d 100644
--- a/lib/mem.h
+++ b/lib/mem.h
@@ -21,17 +21,17 @@
*/
#ifndef GNUTLS_LIB_MEM_H
-#define GNUTLS_LIB_MEM_H
+# define GNUTLS_LIB_MEM_H
-#include "config.h"
+# include "config.h"
-#ifdef HAVE_SANITIZER_ASAN_INTERFACE_H
-#include <sanitizer/asan_interface.h>
-#endif
+# ifdef HAVE_SANITIZER_ASAN_INTERFACE_H
+# include <sanitizer/asan_interface.h>
+# endif
-#ifdef HAVE_VALGRIND_MEMCHECK_H
-#include <valgrind/memcheck.h>
-#endif
+# ifdef HAVE_VALGRIND_MEMCHECK_H
+# include <valgrind/memcheck.h>
+# endif
/* These realloc functions will return ptr if size==0, and will free
* the ptr if the new allocation failed.
@@ -43,40 +43,38 @@ char *_gnutls_strdup(const char *);
void *_gnutls_reallocarray(void *, size_t, size_t);
-unsigned _gnutls_mem_is_zero(const uint8_t *ptr, unsigned size);
+unsigned _gnutls_mem_is_zero(const uint8_t * ptr, unsigned size);
-#define zrelease_mpi_key(mpi) if (*mpi!=NULL) { \
+# define zrelease_mpi_key(mpi) if (*mpi!=NULL) { \
_gnutls_mpi_clear(*mpi); \
_gnutls_mpi_release(mpi); \
}
-#define zeroize_key(x, size) gnutls_memset(x, 0, size)
+# define zeroize_key(x, size) gnutls_memset(x, 0, size)
-#define zeroize_temp_key zeroize_key
-#define zrelease_temp_mpi_key zrelease_mpi_key
+# define zeroize_temp_key zeroize_key
+# define zrelease_temp_mpi_key zrelease_mpi_key
-static inline void
-_gnutls_memory_mark_undefined(void *addr, size_t size)
+static inline void _gnutls_memory_mark_undefined(void *addr, size_t size)
{
-#ifdef HAVE_SANITIZER_ASAN_INTERFACE_H
+# ifdef HAVE_SANITIZER_ASAN_INTERFACE_H
ASAN_POISON_MEMORY_REGION(addr, size);
-#endif
-#ifdef HAVE_VALGRIND_MEMCHECK_H
+# endif
+# ifdef HAVE_VALGRIND_MEMCHECK_H
if (RUNNING_ON_VALGRIND)
VALGRIND_MAKE_MEM_UNDEFINED(addr, size);
-#endif
+# endif
}
-static inline void
-_gnutls_memory_mark_defined(void *addr, size_t size)
+static inline void _gnutls_memory_mark_defined(void *addr, size_t size)
{
-#ifdef HAVE_SANITIZER_ASAN_INTERFACE_H
+# ifdef HAVE_SANITIZER_ASAN_INTERFACE_H
ASAN_UNPOISON_MEMORY_REGION(addr, size);
-#endif
-#ifdef HAVE_VALGRIND_MEMCHECK_H
+# endif
+# ifdef HAVE_VALGRIND_MEMCHECK_H
if (RUNNING_ON_VALGRIND)
VALGRIND_MAKE_MEM_DEFINED(addr, size);
-#endif
+# endif
}
-#endif /* GNUTLS_LIB_MEM_H */
+#endif /* GNUTLS_LIB_MEM_H */
diff --git a/lib/mpi.c b/lib/mpi.c
index be6c29d5c1..3dc2261ef6 100644
--- a/lib/mpi.c
+++ b/lib/mpi.c
@@ -37,8 +37,7 @@
/* Returns a random number r, 0 < r < p */
bigint_t
-_gnutls_mpi_random_modp(bigint_t r, bigint_t p,
- gnutls_rnd_level_t level)
+_gnutls_mpi_random_modp(bigint_t r, bigint_t p, gnutls_rnd_level_t level)
{
size_t size;
int ret;
@@ -46,8 +45,8 @@ _gnutls_mpi_random_modp(bigint_t r, bigint_t p,
uint8_t tmpbuf[512];
uint8_t *buf;
int buf_release = 0;
-
- size = ((_gnutls_mpi_get_nbits(p)+64)/8) + 1;
+
+ size = ((_gnutls_mpi_get_nbits(p) + 64) / 8) + 1;
if (size < sizeof(tmpbuf)) {
buf = tmpbuf;
@@ -65,13 +64,13 @@ _gnutls_mpi_random_modp(bigint_t r, bigint_t p,
gnutls_assert();
goto cleanup;
}
-
+
ret = _gnutls_mpi_init_scan(&tmp, buf, size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
-
+
ret = _gnutls_mpi_modm(tmp, tmp, p);
if (ret < 0) {
gnutls_assert();
@@ -101,7 +100,7 @@ _gnutls_mpi_random_modp(bigint_t r, bigint_t p,
return tmp;
- cleanup:
+ cleanup:
if (buf_release != 0)
gnutls_free(buf);
return NULL;
@@ -111,15 +110,14 @@ _gnutls_mpi_random_modp(bigint_t r, bigint_t p,
*/
int _gnutls_mpi_init_scan(bigint_t * ret_mpi, const void *buffer, size_t nbytes)
{
-bigint_t r;
-int ret;
+ bigint_t r;
+ int ret;
ret = _gnutls_mpi_init(&r);
if (ret < 0)
return gnutls_assert_val(ret);
- ret =
- _gnutls_mpi_scan(r, buffer, nbytes);
+ ret = _gnutls_mpi_scan(r, buffer, nbytes);
if (ret < 0) {
gnutls_assert();
_gnutls_mpi_release(&r);
@@ -259,8 +257,7 @@ int _gnutls_mpi_dprint(const bigint_t a, gnutls_datum_t * dest)
* the output value is left padded with zeros.
*/
int
-_gnutls_mpi_dprint_size(const bigint_t a, gnutls_datum_t * dest,
- size_t size)
+_gnutls_mpi_dprint_size(const bigint_t a, gnutls_datum_t * dest, size_t size)
{
int ret;
uint8_t *buf = NULL;
@@ -296,8 +293,7 @@ _gnutls_mpi_dprint_size(const bigint_t a, gnutls_datum_t * dest,
}
/* like _gnutls_mpi_dprint_size, but prints into preallocated byte buffer */
-int
-_gnutls_mpi_bprint_size(const bigint_t a, uint8_t *buf, size_t size)
+int _gnutls_mpi_bprint_size(const bigint_t a, uint8_t * buf, size_t size)
{
int result;
size_t bytes = 0;
@@ -323,7 +319,7 @@ _gnutls_mpi_bprint_size(const bigint_t a, uint8_t *buf, size_t size)
/* Flags for __gnutls_x509_read_int() and __gnutls_x509_write_int */
#define GNUTLS_X509_INT_OVERWRITE (1 << 0)
#define GNUTLS_X509_INT_LE (1 << 1)
-#define GNUTLS_X509_INT_LZ (1 << 2) /* write only */
+#define GNUTLS_X509_INT_LZ (1 << 2) /* write only */
/* this function reads an integer
* from asn1 structs. Combines the read and mpi_scan
@@ -358,11 +354,9 @@ __gnutls_x509_read_int(asn1_node node, const char *value,
}
if (flags & GNUTLS_X509_INT_LE)
- result = _gnutls_mpi_init_scan_le(ret_mpi, tmpstr,
- tmpstr_size);
+ result = _gnutls_mpi_init_scan_le(ret_mpi, tmpstr, tmpstr_size);
else
- result = _gnutls_mpi_init_scan(ret_mpi, tmpstr,
- tmpstr_size);
+ result = _gnutls_mpi_init_scan(ret_mpi, tmpstr, tmpstr_size);
if (flags & GNUTLS_X509_INT_OVERWRITE)
zeroize_key(tmpstr, tmpstr_size);
@@ -376,17 +370,13 @@ __gnutls_x509_read_int(asn1_node node, const char *value,
return 0;
}
-int
-_gnutls_x509_read_int(asn1_node node, const char *value,
- bigint_t * ret_mpi)
+int _gnutls_x509_read_int(asn1_node node, const char *value, bigint_t * ret_mpi)
{
- return __gnutls_x509_read_int(node, value, ret_mpi,
- 0);
+ return __gnutls_x509_read_int(node, value, ret_mpi, 0);
}
int
-_gnutls_x509_read_key_int(asn1_node node, const char *value,
- bigint_t * ret_mpi)
+_gnutls_x509_read_key_int(asn1_node node, const char *value, bigint_t * ret_mpi)
{
return __gnutls_x509_read_int(node, value, ret_mpi,
GNUTLS_X509_INT_OVERWRITE);
@@ -459,8 +449,7 @@ __gnutls_x509_write_int(asn1_node node, const char *value, bigint_t mpi,
}
int
-_gnutls_x509_write_int(asn1_node node, const char *value, bigint_t mpi,
- int lz)
+_gnutls_x509_write_int(asn1_node node, const char *value, bigint_t mpi, int lz)
{
return __gnutls_x509_write_int(node, value, mpi,
lz ? GNUTLS_X509_INT_LZ : 0);
@@ -468,7 +457,7 @@ _gnutls_x509_write_int(asn1_node node, const char *value, bigint_t mpi,
int
_gnutls_x509_write_key_int(asn1_node node, const char *value, bigint_t mpi,
- int lz)
+ int lz)
{
return __gnutls_x509_write_int(node, value, mpi,
(lz ? GNUTLS_X509_INT_LZ : 0) |
diff --git a/lib/mpi.h b/lib/mpi.h
index a625094bbb..9770f72025 100644
--- a/lib/mpi.h
+++ b/lib/mpi.h
@@ -21,46 +21,46 @@
*/
#ifndef GNUTLS_LIB_MPI_H
-#define GNUTLS_LIB_MPI_H
+# define GNUTLS_LIB_MPI_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
-#include <crypto-backend.h>
+# include <crypto-backend.h>
extern int crypto_bigint_prio;
extern gnutls_crypto_bigint_st _gnutls_mpi_ops;
bigint_t _gnutls_mpi_random_modp(bigint_t, bigint_t p,
- gnutls_rnd_level_t level);
+ gnutls_rnd_level_t level);
-#define _gnutls_mpi_init _gnutls_mpi_ops.bigint_init
-#define _gnutls_mpi_init_multi _gnutls_mpi_ops.bigint_init_multi
-#define _gnutls_mpi_clear _gnutls_mpi_ops.bigint_clear
-#define _gnutls_mpi_cmp _gnutls_mpi_ops.bigint_cmp
-#define _gnutls_mpi_cmp_ui _gnutls_mpi_ops.bigint_cmp_ui
-#define _gnutls_mpi_mod _gnutls_mpi_ops.bigint_mod
-#define _gnutls_mpi_modm _gnutls_mpi_ops.bigint_modm
-#define _gnutls_mpi_set _gnutls_mpi_ops.bigint_set
-#define _gnutls_mpi_set_ui _gnutls_mpi_ops.bigint_set_ui
-#define _gnutls_mpi_get_nbits _gnutls_mpi_ops.bigint_get_nbits
-#define _gnutls_mpi_powm _gnutls_mpi_ops.bigint_powm
-#define _gnutls_mpi_addm _gnutls_mpi_ops.bigint_addm
-#define _gnutls_mpi_subm _gnutls_mpi_ops.bigint_subm
-#define _gnutls_mpi_mulm _gnutls_mpi_ops.bigint_mulm
-#define _gnutls_mpi_add _gnutls_mpi_ops.bigint_add
-#define _gnutls_mpi_sub _gnutls_mpi_ops.bigint_sub
-#define _gnutls_mpi_mul _gnutls_mpi_ops.bigint_mul
-#define _gnutls_mpi_div _gnutls_mpi_ops.bigint_div
-#define _gnutls_mpi_add_ui _gnutls_mpi_ops.bigint_add_ui
-#define _gnutls_mpi_sub_ui _gnutls_mpi_ops.bigint_sub_ui
-#define _gnutls_mpi_mul_ui _gnutls_mpi_ops.bigint_mul_ui
-#define _gnutls_prime_check _gnutls_mpi_ops.bigint_prime_check
-#define _gnutls_mpi_print(x,y,z) _gnutls_mpi_ops.bigint_print(x,y,z,GNUTLS_MPI_FORMAT_USG)
-#define _gnutls_mpi_print_lz(x,y,z) _gnutls_mpi_ops.bigint_print(x,y,z,GNUTLS_MPI_FORMAT_STD)
-#define _gnutls_mpi_print_le(x,y,z) _gnutls_mpi_ops.bigint_print(x,y,z,GNUTLS_MPI_FORMAT_ULE)
-#define _gnutls_mpi_copy _gnutls_mpi_ops.bigint_copy
-#define _gnutls_mpi_scan(r, b, s) _gnutls_mpi_ops.bigint_scan(r, b, s, GNUTLS_MPI_FORMAT_USG)
-#define _gnutls_mpi_scan_le(r, b, s) _gnutls_mpi_ops.bigint_scan(r, b, s, GNUTLS_MPI_FORMAT_ULE)
+# define _gnutls_mpi_init _gnutls_mpi_ops.bigint_init
+# define _gnutls_mpi_init_multi _gnutls_mpi_ops.bigint_init_multi
+# define _gnutls_mpi_clear _gnutls_mpi_ops.bigint_clear
+# define _gnutls_mpi_cmp _gnutls_mpi_ops.bigint_cmp
+# define _gnutls_mpi_cmp_ui _gnutls_mpi_ops.bigint_cmp_ui
+# define _gnutls_mpi_mod _gnutls_mpi_ops.bigint_mod
+# define _gnutls_mpi_modm _gnutls_mpi_ops.bigint_modm
+# define _gnutls_mpi_set _gnutls_mpi_ops.bigint_set
+# define _gnutls_mpi_set_ui _gnutls_mpi_ops.bigint_set_ui
+# define _gnutls_mpi_get_nbits _gnutls_mpi_ops.bigint_get_nbits
+# define _gnutls_mpi_powm _gnutls_mpi_ops.bigint_powm
+# define _gnutls_mpi_addm _gnutls_mpi_ops.bigint_addm
+# define _gnutls_mpi_subm _gnutls_mpi_ops.bigint_subm
+# define _gnutls_mpi_mulm _gnutls_mpi_ops.bigint_mulm
+# define _gnutls_mpi_add _gnutls_mpi_ops.bigint_add
+# define _gnutls_mpi_sub _gnutls_mpi_ops.bigint_sub
+# define _gnutls_mpi_mul _gnutls_mpi_ops.bigint_mul
+# define _gnutls_mpi_div _gnutls_mpi_ops.bigint_div
+# define _gnutls_mpi_add_ui _gnutls_mpi_ops.bigint_add_ui
+# define _gnutls_mpi_sub_ui _gnutls_mpi_ops.bigint_sub_ui
+# define _gnutls_mpi_mul_ui _gnutls_mpi_ops.bigint_mul_ui
+# define _gnutls_prime_check _gnutls_mpi_ops.bigint_prime_check
+# define _gnutls_mpi_print(x,y,z) _gnutls_mpi_ops.bigint_print(x,y,z,GNUTLS_MPI_FORMAT_USG)
+# define _gnutls_mpi_print_lz(x,y,z) _gnutls_mpi_ops.bigint_print(x,y,z,GNUTLS_MPI_FORMAT_STD)
+# define _gnutls_mpi_print_le(x,y,z) _gnutls_mpi_ops.bigint_print(x,y,z,GNUTLS_MPI_FORMAT_ULE)
+# define _gnutls_mpi_copy _gnutls_mpi_ops.bigint_copy
+# define _gnutls_mpi_scan(r, b, s) _gnutls_mpi_ops.bigint_scan(r, b, s, GNUTLS_MPI_FORMAT_USG)
+# define _gnutls_mpi_scan_le(r, b, s) _gnutls_mpi_ops.bigint_scan(r, b, s, GNUTLS_MPI_FORMAT_ULE)
inline static
void _gnutls_mpi_release(bigint_t * x)
@@ -73,9 +73,9 @@ void _gnutls_mpi_release(bigint_t * x)
}
int _gnutls_mpi_init_scan(bigint_t * ret_mpi, const void *buffer,
- size_t nbytes);
+ size_t nbytes);
int _gnutls_mpi_init_scan_nz(bigint_t * ret_mpi, const void *buffer,
- size_t nbytes);
+ size_t nbytes);
int _gnutls_mpi_init_scan_le(bigint_t * ret_mpi, const void *buffer,
size_t nbytes);
@@ -84,10 +84,10 @@ int _gnutls_mpi_dprint_lz(const bigint_t a, gnutls_datum_t * dest);
int _gnutls_mpi_dprint(const bigint_t a, gnutls_datum_t * dest);
int _gnutls_mpi_dprint_size(const bigint_t a, gnutls_datum_t * dest,
size_t size);
-int _gnutls_mpi_bprint_size(const bigint_t a, uint8_t *buf, size_t size);
+int _gnutls_mpi_bprint_size(const bigint_t a, uint8_t * buf, size_t size);
typedef int (*mpi_dprint_func)(const bigint_t a, gnutls_datum_t * dest);
-#define _gnutls_mpi_generate_group( gg, bits) _gnutls_mpi_ops.bigint_generate_group( gg, bits)
+# define _gnutls_mpi_generate_group( gg, bits) _gnutls_mpi_ops.bigint_generate_group( gg, bits)
-#endif /* GNUTLS_LIB_MPI_H */
+#endif /* GNUTLS_LIB_MPI_H */
diff --git a/lib/name_val_array.h b/lib/name_val_array.h
index 41e4df967d..211f93b250 100644
--- a/lib/name_val_array.h
+++ b/lib/name_val_array.h
@@ -22,10 +22,10 @@
*/
#ifndef GNUTLS_NAME_VAL_ARRAY_H
-#define GNUTLS_NAME_VAL_ARRAY_H
+# define GNUTLS_NAME_VAL_ARRAY_H
-#include "gnutls_int.h"
-#include "errors.h"
+# include "gnutls_int.h"
+# include "errors.h"
/* Functionality to allow an array of strings. Strings
* are allowed to be added to the list and matched against it.
@@ -51,7 +51,8 @@ inline static void _name_val_array_clear(name_val_array_t * head)
}
inline static const char *_name_val_array_value(name_val_array_t head,
- const char *name, unsigned name_size)
+ const char *name,
+ unsigned name_size)
{
name_val_array_t array = head;
@@ -67,15 +68,15 @@ inline static const char *_name_val_array_value(name_val_array_t head,
}
inline static void append(name_val_array_t array, const char *name,
- unsigned name_len, const char *val,
- unsigned val_len)
+ unsigned name_len, const char *val, unsigned val_len)
{
- array->name = ((char *) array) + sizeof(struct name_val_array_st);
+ array->name = ((char *)array) + sizeof(struct name_val_array_st);
memcpy(array->name, name, name_len);
array->name[name_len] = 0;
array->name_size = name_len;
- array->val = ((char *) array) + name_len + 1 + sizeof(struct name_val_array_st);
+ array->val =
+ ((char *)array) + name_len + 1 + sizeof(struct name_val_array_st);
if (val)
memcpy(array->val, val, val_len);
array->val[val_len] = 0;
@@ -84,12 +85,11 @@ inline static void append(name_val_array_t array, const char *name,
}
inline static int _name_val_array_append(name_val_array_t * head,
- const char *name,
- const char *val)
+ const char *name, const char *val)
{
name_val_array_t prev, array;
unsigned name_len = strlen(name);
- unsigned val_len = (val==NULL)?0:strlen(val);
+ unsigned val_len = (val == NULL) ? 0 : strlen(val);
if (*head == NULL) {
*head =
diff --git a/lib/nettle/cipher.c b/lib/nettle/cipher.c
index 8c23d11252..f34fbb19b0 100644
--- a/lib/nettle/cipher.c
+++ b/lib/nettle/cipher.c
@@ -35,23 +35,23 @@
#include <nettle/des.h>
#include <nettle/version.h>
#if ENABLE_GOST
-#ifndef HAVE_NETTLE_GOST28147_SET_KEY
-#include "gost/gost28147.h"
-#else
-#include <nettle/gost28147.h>
-#endif
-#ifndef HAVE_NETTLE_MAGMA_SET_KEY
-#include "gost/magma.h"
-#else
-#include <nettle/magma.h>
-#endif
-#ifndef HAVE_NETTLE_KUZNYECHIK_SET_KEY
-#include "gost/kuznyechik.h"
-#else
-#include <nettle/kuznyechik.h>
-#endif
-#include "gost/acpkm.h"
-#include <nettle/ctr.h>
+# ifndef HAVE_NETTLE_GOST28147_SET_KEY
+# include "gost/gost28147.h"
+# else
+# include <nettle/gost28147.h>
+# endif
+# ifndef HAVE_NETTLE_MAGMA_SET_KEY
+# include "gost/magma.h"
+# else
+# include <nettle/magma.h>
+# endif
+# ifndef HAVE_NETTLE_KUZNYECHIK_SET_KEY
+# include "gost/kuznyechik.h"
+# else
+# include <nettle/kuznyechik.h>
+# endif
+# include "gost/acpkm.h"
+# include <nettle/ctr.h>
#endif
#include <nettle/nettle-meta.h>
#include <nettle/cbc.h>
@@ -69,29 +69,26 @@ struct nettle_cipher_ctx;
/* Functions that refer to the nettle library.
*/
-typedef void (*encrypt_func) (struct nettle_cipher_ctx*,
- size_t length,
- uint8_t * dst,
- const uint8_t * src);
-typedef void (*decrypt_func) (struct nettle_cipher_ctx*,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-
-typedef void (*aead_encrypt_func) (struct nettle_cipher_ctx*,
- size_t nonce_size, const void *nonce,
- size_t auth_size, const void *auth,
- size_t tag_size,
- size_t length, uint8_t * dst,
- const uint8_t * src);
-typedef int (*aead_decrypt_func) (struct nettle_cipher_ctx*,
- size_t nonce_size, const void *nonce,
- size_t auth_size, const void *auth,
- size_t tag_size,
- size_t length, uint8_t * dst,
- const uint8_t * src);
-
-typedef void (*setiv_func) (void *ctx, size_t length, const uint8_t *);
-typedef void (*gen_setkey_func) (void *ctx, size_t length, const uint8_t *);
+typedef void (*encrypt_func)(struct nettle_cipher_ctx *,
+ size_t length, uint8_t * dst, const uint8_t * src);
+typedef void (*decrypt_func)(struct nettle_cipher_ctx *,
+ size_t length, uint8_t * dst, const uint8_t * src);
+
+typedef void (*aead_encrypt_func)(struct nettle_cipher_ctx *,
+ size_t nonce_size, const void *nonce,
+ size_t auth_size, const void *auth,
+ size_t tag_size,
+ size_t length, uint8_t * dst,
+ const uint8_t * src);
+typedef int (*aead_decrypt_func)(struct nettle_cipher_ctx *,
+ size_t nonce_size, const void *nonce,
+ size_t auth_size, const void *auth,
+ size_t tag_size,
+ size_t length, uint8_t * dst,
+ const uint8_t * src);
+
+typedef void (*setiv_func)(void *ctx, size_t length, const uint8_t *);
+typedef void (*gen_setkey_func)(void *ctx, size_t length, const uint8_t *);
struct nettle_cipher_st {
gnutls_cipher_algorithm_t algo;
@@ -106,17 +103,17 @@ struct nettle_cipher_st {
decrypt_func decrypt;
aead_encrypt_func aead_encrypt;
aead_decrypt_func aead_decrypt;
- nettle_hash_update_func* auth;
- nettle_hash_digest_func* tag;
- nettle_set_key_func* set_encrypt_key;
- nettle_set_key_func* set_decrypt_key;
- gen_setkey_func gen_set_key; /* for arcfour which has variable key size */
+ nettle_hash_update_func *auth;
+ nettle_hash_digest_func *tag;
+ nettle_set_key_func *set_encrypt_key;
+ nettle_set_key_func *set_decrypt_key;
+ gen_setkey_func gen_set_key; /* for arcfour which has variable key size */
setiv_func set_iv;
};
struct nettle_cipher_ctx {
const struct nettle_cipher_st *cipher;
- void *ctx_ptr; /* always 16-aligned */
+ void *ctx_ptr; /* always 16-aligned */
uint8_t iv[MAX_CIPHER_BLOCK_SIZE];
unsigned iv_size;
@@ -125,8 +122,8 @@ struct nettle_cipher_ctx {
};
#define AES_GCM_ENCRYPT_MAX_BYTES ((1ULL << 36) - 32)
-static inline int
-record_aes_gcm_encrypt_size(size_t *counter, size_t size) {
+static inline int record_aes_gcm_encrypt_size(size_t *counter, size_t size)
+{
size_t sum;
if (!INT_ADD_OK(*counter, size, &sum) ||
@@ -154,20 +151,18 @@ _stream_decrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
static void
_cbc_encrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
- const uint8_t * src)
+ const uint8_t * src)
{
cbc_encrypt(ctx->ctx_ptr, ctx->cipher->encrypt_block,
- ctx->iv_size, ctx->iv,
- length, dst, src);
+ ctx->iv_size, ctx->iv, length, dst, src);
}
static void
_cbc_decrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
- const uint8_t * src)
+ const uint8_t * src)
{
cbc_decrypt(ctx->ctx_ptr, ctx->cipher->decrypt_block,
- ctx->iv_size, ctx->iv,
- length, dst, src);
+ ctx->iv_size, ctx->iv, length, dst, src);
}
#if ENABLE_GOST
@@ -185,110 +180,98 @@ struct kuznyechik_acpkm_ctx {
static void
_cfb_encrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
- const uint8_t * src)
+ const uint8_t * src)
{
cfb_encrypt(ctx->ctx_ptr, ctx->cipher->encrypt_block,
- ctx->iv_size, ctx->iv,
- length, dst, src);
+ ctx->iv_size, ctx->iv, length, dst, src);
}
static void
_cfb_decrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
- const uint8_t * src)
+ const uint8_t * src)
{
cfb_decrypt(ctx->ctx_ptr, ctx->cipher->encrypt_block,
- ctx->iv_size, ctx->iv,
- length, dst, src);
+ ctx->iv_size, ctx->iv, length, dst, src);
}
static void
_ctr_acpkm_crypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
- const uint8_t * src)
+ const uint8_t * src)
{
/* Use context-specific IV which comes as a first field */
ctr_crypt(ctx->ctx_ptr, ctx->cipher->encrypt_block,
- ctx->cipher->block_size, ctx->ctx_ptr,
- length, dst, src);
+ ctx->cipher->block_size, ctx->ctx_ptr, length, dst, src);
}
-static void
-_gost28147_set_key_tc26z(void *ctx, const uint8_t *key)
+static void _gost28147_set_key_tc26z(void *ctx, const uint8_t * key)
{
gost28147_set_param(ctx, &gost28147_param_TC26_Z);
gost28147_set_key(ctx, key);
}
-static void
-_gost28147_set_key_cpa(void *ctx, const uint8_t *key)
+static void _gost28147_set_key_cpa(void *ctx, const uint8_t * key)
{
gost28147_set_param(ctx, &gost28147_param_CryptoPro_A);
gost28147_set_key(ctx, key);
}
-static void
-_gost28147_set_key_cpb(void *ctx, const uint8_t *key)
+static void _gost28147_set_key_cpb(void *ctx, const uint8_t * key)
{
gost28147_set_param(ctx, &gost28147_param_CryptoPro_B);
gost28147_set_key(ctx, key);
}
-static void
-_gost28147_set_key_cpc(void *ctx, const uint8_t *key)
+static void _gost28147_set_key_cpc(void *ctx, const uint8_t * key)
{
gost28147_set_param(ctx, &gost28147_param_CryptoPro_C);
gost28147_set_key(ctx, key);
}
-static void
-_gost28147_set_key_cpd(void *ctx, const uint8_t *key)
+static void _gost28147_set_key_cpd(void *ctx, const uint8_t * key)
{
gost28147_set_param(ctx, &gost28147_param_CryptoPro_D);
gost28147_set_key(ctx, key);
}
-static void
-_gost28147_cnt_set_key_tc26z(void *ctx, const uint8_t *key)
+static void _gost28147_cnt_set_key_tc26z(void *ctx, const uint8_t * key)
{
gost28147_cnt_init(ctx, key, &gost28147_param_TC26_Z);
}
static void
-_gost28147_cnt_set_nonce (void *ctx, size_t length, const uint8_t *nonce)
+_gost28147_cnt_set_nonce(void *ctx, size_t length, const uint8_t * nonce)
{
- gost28147_cnt_set_iv (ctx, nonce);
+ gost28147_cnt_set_iv(ctx, nonce);
}
static void
-_gost28147_cnt_crypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
- const uint8_t * src)
+_gost28147_cnt_crypt(struct nettle_cipher_ctx *ctx, size_t length,
+ uint8_t * dst, const uint8_t * src)
{
gost28147_cnt_crypt((void *)ctx->ctx_ptr, length, dst, src);
}
static void
_magma_acpkm_crypt(struct magma_acpkm_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- acpkm_crypt(&ctx->ctx, &ctx->cipher,
- (nettle_cipher_func *)magma_encrypt,
- (nettle_set_key_func *)magma_set_key,
- length, dst, src);
+ acpkm_crypt(&ctx->ctx, &ctx->cipher,
+ (nettle_cipher_func *) magma_encrypt,
+ (nettle_set_key_func *) magma_set_key, length, dst, src);
}
static void
_kuznyechik_acpkm_crypt(struct kuznyechik_acpkm_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- acpkm_crypt(&ctx->ctx, &ctx->cipher,
- (nettle_cipher_func *)kuznyechik_encrypt,
- (nettle_set_key_func *)kuznyechik_set_key,
- length, dst, src);
+ acpkm_crypt(&ctx->ctx, &ctx->cipher,
+ (nettle_cipher_func *) kuznyechik_encrypt,
+ (nettle_set_key_func *) kuznyechik_set_key,
+ length, dst, src);
}
static void
-_magma_ctr_acpkm_set_key(struct magma_acpkm_ctx *ctx, const uint8_t *key)
+_magma_ctr_acpkm_set_key(struct magma_acpkm_ctx *ctx, const uint8_t * key)
{
magma_set_key(&ctx->cipher, key);
ctx->ctx.pos = 0;
@@ -296,14 +279,16 @@ _magma_ctr_acpkm_set_key(struct magma_acpkm_ctx *ctx, const uint8_t *key)
}
static void
-_magma_ctr_acpkm_set_iv(struct magma_acpkm_ctx *ctx, size_t length, const uint8_t *iv)
+_magma_ctr_acpkm_set_iv(struct magma_acpkm_ctx *ctx, size_t length,
+ const uint8_t * iv)
{
memcpy(ctx->iv, iv, length);
memset(ctx->iv + length, 0, MAGMA_BLOCK_SIZE - length);
}
static void
-_kuznyechik_ctr_acpkm_set_key(struct kuznyechik_acpkm_ctx *ctx, const uint8_t *key)
+_kuznyechik_ctr_acpkm_set_key(struct kuznyechik_acpkm_ctx *ctx,
+ const uint8_t * key)
{
kuznyechik_set_key(&ctx->cipher, key);
ctx->ctx.pos = 0;
@@ -311,7 +296,8 @@ _kuznyechik_ctr_acpkm_set_key(struct kuznyechik_acpkm_ctx *ctx, const uint8_t *k
}
static void
-_kuznyechik_ctr_acpkm_set_iv(struct kuznyechik_acpkm_ctx *ctx, size_t length, const uint8_t *iv)
+_kuznyechik_ctr_acpkm_set_iv(struct kuznyechik_acpkm_ctx *ctx, size_t length,
+ const uint8_t * iv)
{
memcpy(ctx->iv, iv, length);
memset(ctx->iv + length, 0, KUZNYECHIK_BLOCK_SIZE - length);
@@ -320,30 +306,25 @@ _kuznyechik_ctr_acpkm_set_iv(struct kuznyechik_acpkm_ctx *ctx, size_t length, co
static void
_ccm_encrypt(struct nettle_cipher_ctx *ctx,
- size_t nonce_size, const void *nonce,
- size_t auth_size, const void *auth,
- size_t tag_size,
- size_t length, uint8_t * dst,
- const uint8_t * src)
+ size_t nonce_size, const void *nonce,
+ size_t auth_size, const void *auth,
+ size_t tag_size, size_t length, uint8_t * dst, const uint8_t * src)
{
- ccm_encrypt_message((void*)ctx->ctx_ptr, ctx->cipher->encrypt_block,
+ ccm_encrypt_message((void *)ctx->ctx_ptr, ctx->cipher->encrypt_block,
nonce_size, nonce,
- auth_size, auth,
- tag_size, length, dst, src);
+ auth_size, auth, tag_size, length, dst, src);
}
static int
_ccm_decrypt(struct nettle_cipher_ctx *ctx,
- size_t nonce_size, const void *nonce,
- size_t auth_size, const void *auth,
- size_t tag_size,
- size_t length, uint8_t * dst,
- const uint8_t * src)
+ size_t nonce_size, const void *nonce,
+ size_t auth_size, const void *auth,
+ size_t tag_size, size_t length, uint8_t * dst, const uint8_t * src)
{
- return ccm_decrypt_message((void*)ctx->ctx_ptr, ctx->cipher->encrypt_block,
- nonce_size, nonce,
- auth_size, auth,
- tag_size, length, dst, src);
+ return ccm_decrypt_message((void *)ctx->ctx_ptr,
+ ctx->cipher->encrypt_block, nonce_size,
+ nonce, auth_size, auth, tag_size, length,
+ dst, src);
}
static void
@@ -354,10 +335,9 @@ _siv_cmac_aes128_encrypt_message(struct nettle_cipher_ctx *ctx,
size_t length, uint8_t * dst,
const uint8_t * src)
{
- siv_cmac_aes128_encrypt_message((void*)ctx->ctx_ptr,
+ siv_cmac_aes128_encrypt_message((void *)ctx->ctx_ptr,
nonce_size, nonce,
- auth_size, auth,
- length, dst, src);
+ auth_size, auth, length, dst, src);
}
static int
@@ -368,7 +348,7 @@ _siv_cmac_aes128_decrypt_message(struct nettle_cipher_ctx *ctx,
size_t length, uint8_t * dst,
const uint8_t * src)
{
- return siv_cmac_aes128_decrypt_message((void*)ctx->ctx_ptr,
+ return siv_cmac_aes128_decrypt_message((void *)ctx->ctx_ptr,
nonce_size, nonce,
auth_size, auth,
length, dst, src);
@@ -382,10 +362,9 @@ _siv_cmac_aes256_encrypt_message(struct nettle_cipher_ctx *ctx,
size_t length, uint8_t * dst,
const uint8_t * src)
{
- siv_cmac_aes256_encrypt_message((void*)ctx->ctx_ptr,
+ siv_cmac_aes256_encrypt_message((void *)ctx->ctx_ptr,
nonce_size, nonce,
- auth_size, auth,
- length, dst, src);
+ auth_size, auth, length, dst, src);
}
static int
@@ -396,15 +375,14 @@ _siv_cmac_aes256_decrypt_message(struct nettle_cipher_ctx *ctx,
size_t length, uint8_t * dst,
const uint8_t * src)
{
- return siv_cmac_aes256_decrypt_message((void*)ctx->ctx_ptr,
+ return siv_cmac_aes256_decrypt_message((void *)ctx->ctx_ptr,
nonce_size, nonce,
auth_size, auth,
length, dst, src);
}
static void
-_chacha_set_nonce(struct chacha_ctx *ctx,
- size_t length, const uint8_t *nonce)
+_chacha_set_nonce(struct chacha_ctx *ctx, size_t length, const uint8_t * nonce)
{
chacha_set_nonce(ctx, nonce + CHACHA_COUNTER_SIZE);
chacha_set_counter(ctx, nonce);
@@ -412,50 +390,54 @@ _chacha_set_nonce(struct chacha_ctx *ctx,
static void
_chacha_set_nonce96(struct chacha_ctx *ctx,
- size_t length, const uint8_t *nonce)
+ size_t length, const uint8_t * nonce)
{
chacha_set_nonce96(ctx, nonce + CHACHA_COUNTER32_SIZE);
chacha_set_counter32(ctx, nonce);
}
static void
-_chacha_poly1305_set_nonce (struct chacha_poly1305_ctx *ctx,
- size_t length, const uint8_t *nonce)
+_chacha_poly1305_set_nonce(struct chacha_poly1305_ctx *ctx,
+ size_t length, const uint8_t * nonce)
{
chacha_poly1305_set_nonce(ctx, nonce);
}
-
-struct gcm_cast_st { struct gcm_key key; struct gcm_ctx gcm; unsigned long xx[1]; };
+
+struct gcm_cast_st {
+ struct gcm_key key;
+ struct gcm_ctx gcm;
+ unsigned long xx[1];
+};
#define GCM_CTX_GET_KEY(ptr) (&((struct gcm_cast_st*)ptr)->key)
#define GCM_CTX_GET_CTX(ptr) (&((struct gcm_cast_st*)ptr)->gcm)
#define GCM_CTX_GET_CIPHER(ptr) ((void*)&((struct gcm_cast_st*)ptr)->xx)
static void
_gcm_encrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
- const uint8_t * src)
+ const uint8_t * src)
{
- gcm_encrypt(GCM_CTX_GET_CTX(ctx->ctx_ptr), GCM_CTX_GET_KEY(ctx->ctx_ptr),
- GCM_CTX_GET_CIPHER(ctx->ctx_ptr), ctx->cipher->encrypt_block,
- length, dst, src);
+ gcm_encrypt(GCM_CTX_GET_CTX(ctx->ctx_ptr),
+ GCM_CTX_GET_KEY(ctx->ctx_ptr),
+ GCM_CTX_GET_CIPHER(ctx->ctx_ptr),
+ ctx->cipher->encrypt_block, length, dst, src);
}
static void
_gcm_decrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
- const uint8_t * src)
+ const uint8_t * src)
{
- gcm_decrypt(GCM_CTX_GET_CTX(ctx->ctx_ptr), GCM_CTX_GET_KEY(ctx->ctx_ptr),
- GCM_CTX_GET_CIPHER(ctx->ctx_ptr), ctx->cipher->encrypt_block,
- length, dst, src);
+ gcm_decrypt(GCM_CTX_GET_CTX(ctx->ctx_ptr),
+ GCM_CTX_GET_KEY(ctx->ctx_ptr),
+ GCM_CTX_GET_CIPHER(ctx->ctx_ptr),
+ ctx->cipher->encrypt_block, length, dst, src);
}
-static void
-_des_set_key(struct des_ctx *ctx, const uint8_t *key)
+static void _des_set_key(struct des_ctx *ctx, const uint8_t * key)
{
des_set_key(ctx, key);
}
-static void
-_des3_set_key(struct des3_ctx *ctx, const uint8_t *key)
+static void _des3_set_key(struct des3_ctx *ctx, const uint8_t * key)
{
des3_set_key(ctx, key);
}
@@ -465,8 +447,7 @@ _cfb8_encrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
const uint8_t * src)
{
cfb8_encrypt(ctx->ctx_ptr, ctx->cipher->encrypt_block,
- ctx->iv_size, ctx->iv,
- length, dst, src);
+ ctx->iv_size, ctx->iv, length, dst, src);
}
static void
@@ -474,8 +455,7 @@ _cfb8_decrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
const uint8_t * src)
{
cfb8_decrypt(ctx->ctx_ptr, ctx->cipher->encrypt_block,
- ctx->iv_size, ctx->iv,
- length, dst, src);
+ ctx->iv_size, ctx->iv, length, dst, src);
}
static void
@@ -507,541 +487,554 @@ _xts_aes256_decrypt(struct nettle_cipher_ctx *ctx, size_t length, uint8_t * dst,
}
static const struct nettle_cipher_st builtin_ciphers[] = {
- { .algo = GNUTLS_CIPHER_AES_128_GCM,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES128_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes128_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes128_decrypt,
-
- .ctx_size = sizeof(struct gcm_aes128_ctx),
- .encrypt = _gcm_encrypt,
- .decrypt = _gcm_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)gcm_aes128_set_key,
- .set_decrypt_key = (nettle_set_key_func*)gcm_aes128_set_key,
-
- .tag = (nettle_hash_digest_func*)gcm_aes128_digest,
- .auth = (nettle_hash_update_func*)gcm_aes128_update,
- .set_iv = (setiv_func)gcm_aes128_set_iv,
- .max_iv_size = GCM_IV_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_192_GCM,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES192_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes192_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes192_decrypt,
-
- .ctx_size = sizeof(struct gcm_aes192_ctx),
- .encrypt = _gcm_encrypt,
- .decrypt = _gcm_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)gcm_aes192_set_key,
- .set_decrypt_key = (nettle_set_key_func*)gcm_aes192_set_key,
-
- .tag = (nettle_hash_digest_func*)gcm_aes192_digest,
- .auth = (nettle_hash_update_func*)gcm_aes192_update,
- .set_iv = (setiv_func)gcm_aes192_set_iv,
- .max_iv_size = GCM_IV_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_256_GCM,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES256_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes256_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes256_decrypt,
-
- .ctx_size = sizeof(struct gcm_aes256_ctx),
- .encrypt = _gcm_encrypt,
- .decrypt = _gcm_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)gcm_aes256_set_key,
- .set_decrypt_key = (nettle_set_key_func*)gcm_aes256_set_key,
-
- .tag = (nettle_hash_digest_func*)gcm_aes256_digest,
- .auth = (nettle_hash_update_func*)gcm_aes256_update,
- .set_iv = (setiv_func)gcm_aes256_set_iv,
- .max_iv_size = GCM_IV_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_128_CCM,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES128_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes128_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes128_decrypt,
-
- .ctx_size = sizeof(struct aes128_ctx),
- .aead_encrypt = _ccm_encrypt,
- .aead_decrypt = _ccm_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)aes128_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)aes128_set_encrypt_key,
- .max_iv_size = CCM_MAX_NONCE_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_128_CCM_8,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES128_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes128_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes128_decrypt,
-
- .ctx_size = sizeof(struct aes128_ctx),
- .aead_encrypt = _ccm_encrypt,
- .aead_decrypt = _ccm_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)aes128_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)aes128_set_encrypt_key,
- .max_iv_size = CCM_MAX_NONCE_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_256_CCM,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES256_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes256_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes256_decrypt,
-
- .ctx_size = sizeof(struct aes256_ctx),
- .aead_encrypt = _ccm_encrypt,
- .aead_decrypt = _ccm_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)aes256_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)aes256_set_encrypt_key,
- .max_iv_size = CCM_MAX_NONCE_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_256_CCM_8,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES256_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes256_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes256_decrypt,
-
- .ctx_size = sizeof(struct aes256_ctx),
- .aead_encrypt = _ccm_encrypt,
- .aead_decrypt = _ccm_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)aes256_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)aes256_set_encrypt_key,
- .max_iv_size = CCM_MAX_NONCE_SIZE,
- },
- { .algo = GNUTLS_CIPHER_CAMELLIA_128_GCM,
- .block_size = CAMELLIA_BLOCK_SIZE,
- .key_size = CAMELLIA128_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)camellia128_crypt,
- .decrypt_block = (nettle_cipher_func*)camellia128_crypt,
-
- .ctx_size = sizeof(struct gcm_camellia128_ctx),
- .encrypt = _gcm_encrypt,
- .decrypt = _gcm_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)gcm_camellia128_set_key,
- .set_decrypt_key = (nettle_set_key_func*)gcm_camellia128_set_key,
- .tag = (nettle_hash_digest_func*)gcm_camellia128_digest,
- .auth = (nettle_hash_update_func*)gcm_camellia128_update,
- .max_iv_size = GCM_IV_SIZE,
- .set_iv = (setiv_func)gcm_camellia128_set_iv
- },
- { .algo = GNUTLS_CIPHER_CAMELLIA_256_GCM,
- .block_size = CAMELLIA_BLOCK_SIZE,
- .key_size = CAMELLIA256_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)camellia256_crypt,
- .decrypt_block = (nettle_cipher_func*)camellia256_crypt,
-
- .ctx_size = sizeof(struct gcm_camellia256_ctx),
- .encrypt = _gcm_encrypt,
- .decrypt = _gcm_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)gcm_camellia256_set_key,
- .set_decrypt_key = (nettle_set_key_func*)gcm_camellia256_set_key,
- .tag = (nettle_hash_digest_func*)gcm_camellia256_digest,
- .auth = (nettle_hash_update_func*)gcm_camellia256_update,
- .max_iv_size = GCM_IV_SIZE,
- .set_iv = (setiv_func)gcm_camellia256_set_iv
- },
- { .algo = GNUTLS_CIPHER_AES_128_CBC,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES128_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes128_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes128_decrypt,
-
- .ctx_size = sizeof(struct CBC_CTX(struct aes128_ctx, AES_BLOCK_SIZE)),
- .encrypt = _cbc_encrypt,
- .decrypt = _cbc_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)aes128_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)aes128_set_decrypt_key,
- .max_iv_size = AES_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_192_CBC,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES192_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes192_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes192_decrypt,
-
- .ctx_size = sizeof(struct CBC_CTX(struct aes192_ctx, AES_BLOCK_SIZE)),
- .encrypt = _cbc_encrypt,
- .decrypt = _cbc_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)aes192_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)aes192_set_decrypt_key,
- .max_iv_size = AES_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_256_CBC,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES256_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes256_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes256_decrypt,
-
- .ctx_size = sizeof(struct CBC_CTX(struct aes256_ctx, AES_BLOCK_SIZE)),
- .encrypt = _cbc_encrypt,
- .decrypt = _cbc_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)aes256_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)aes256_set_decrypt_key,
- .max_iv_size = AES_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_CAMELLIA_128_CBC,
- .block_size = CAMELLIA_BLOCK_SIZE,
- .key_size = CAMELLIA128_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)camellia128_crypt,
- .decrypt_block = (nettle_cipher_func*)camellia128_crypt,
-
- .ctx_size = sizeof(struct CBC_CTX(struct camellia128_ctx, CAMELLIA_BLOCK_SIZE)),
- .encrypt = _cbc_encrypt,
- .decrypt = _cbc_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)camellia128_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)camellia128_set_decrypt_key,
- .max_iv_size = CAMELLIA_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_CAMELLIA_192_CBC,
- .block_size = CAMELLIA_BLOCK_SIZE,
- .key_size = CAMELLIA192_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)camellia192_crypt,
- .decrypt_block = (nettle_cipher_func*)camellia192_crypt,
-
- .ctx_size = sizeof(struct CBC_CTX(struct camellia192_ctx, CAMELLIA_BLOCK_SIZE)),
- .encrypt = _cbc_encrypt,
- .decrypt = _cbc_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)camellia192_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)camellia192_set_decrypt_key,
- .max_iv_size = CAMELLIA_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_CAMELLIA_256_CBC,
- .block_size = CAMELLIA_BLOCK_SIZE,
- .key_size = CAMELLIA256_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)camellia256_crypt,
- .decrypt_block = (nettle_cipher_func*)camellia256_crypt,
-
- .ctx_size = sizeof(struct CBC_CTX(struct camellia256_ctx, CAMELLIA_BLOCK_SIZE)),
- .encrypt = _cbc_encrypt,
- .decrypt = _cbc_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)camellia256_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)camellia256_set_decrypt_key,
- .max_iv_size = CAMELLIA_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_RC2_40_CBC,
- .block_size = ARCTWO_BLOCK_SIZE,
- .key_size = 5,
- .encrypt_block = (nettle_cipher_func*)arctwo_encrypt,
- .decrypt_block = (nettle_cipher_func*)arctwo_decrypt,
-
- .ctx_size = sizeof(struct CBC_CTX(struct arctwo_ctx, ARCTWO_BLOCK_SIZE)),
- .encrypt = _cbc_encrypt,
- .decrypt = _cbc_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)arctwo40_set_key,
- .set_decrypt_key = (nettle_set_key_func*)arctwo40_set_key,
- .max_iv_size = ARCTWO_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_DES_CBC,
- .block_size = DES_BLOCK_SIZE,
- .key_size = DES_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)des_encrypt,
- .decrypt_block = (nettle_cipher_func*)des_decrypt,
-
- .ctx_size = sizeof(struct CBC_CTX(struct des_ctx, DES_BLOCK_SIZE)),
- .encrypt = _cbc_encrypt,
- .decrypt = _cbc_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)_des_set_key,
- .set_decrypt_key = (nettle_set_key_func*)_des_set_key,
- .max_iv_size = DES_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_3DES_CBC,
- .block_size = DES3_BLOCK_SIZE,
- .key_size = DES3_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)des3_encrypt,
- .decrypt_block = (nettle_cipher_func*)des3_decrypt,
-
- .ctx_size = sizeof(struct CBC_CTX(struct des3_ctx, DES3_BLOCK_SIZE)),
- .encrypt = _cbc_encrypt,
- .decrypt = _cbc_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)_des3_set_key,
- .set_decrypt_key = (nettle_set_key_func*)_des3_set_key,
- .max_iv_size = DES_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_ARCFOUR_128,
- .block_size = 1,
- .key_size = 0,
- .encrypt_block = (nettle_cipher_func*)arcfour_crypt,
- .decrypt_block = (nettle_cipher_func*)arcfour_crypt,
-
- .ctx_size = sizeof(struct arcfour_ctx),
- .encrypt = _stream_encrypt,
- .decrypt = _stream_encrypt,
- .gen_set_key = (gen_setkey_func)arcfour_set_key,
- .set_encrypt_key = (nettle_set_key_func*)arcfour128_set_key,
- .set_decrypt_key = (nettle_set_key_func*)arcfour128_set_key,
- },
- { .algo = GNUTLS_CIPHER_SALSA20_256,
- .block_size = 1,
- .key_size = SALSA20_256_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)salsa20_crypt,
- .decrypt_block = (nettle_cipher_func*)salsa20_crypt,
-
- .ctx_size = sizeof(struct salsa20_ctx),
- .encrypt = _stream_encrypt,
- .decrypt = _stream_encrypt,
- .set_encrypt_key = (nettle_set_key_func*)salsa20_256_set_key,
- .set_decrypt_key = (nettle_set_key_func*)salsa20_256_set_key,
- .max_iv_size = SALSA20_NONCE_SIZE,
- },
- { .algo = GNUTLS_CIPHER_ESTREAM_SALSA20_256,
- .block_size = 1,
- .key_size = SALSA20_256_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)salsa20r12_crypt,
- .decrypt_block = (nettle_cipher_func*)salsa20r12_crypt,
-
- .ctx_size = sizeof(struct salsa20_ctx),
- .encrypt = _stream_encrypt,
- .decrypt = _stream_encrypt,
- .set_encrypt_key = (nettle_set_key_func*)salsa20_256_set_key,
- .set_decrypt_key = (nettle_set_key_func*)salsa20_256_set_key,
- .max_iv_size = SALSA20_NONCE_SIZE,
- },
- { .algo = GNUTLS_CIPHER_CHACHA20_32,
- .block_size = 1,
- .key_size = CHACHA_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)chacha_crypt32,
- .decrypt_block = (nettle_cipher_func*)chacha_crypt32,
-
- .ctx_size = sizeof(struct chacha_ctx),
- .encrypt = _stream_encrypt,
- .decrypt = _stream_encrypt,
- .set_encrypt_key = (nettle_set_key_func*)chacha_set_key,
- .set_decrypt_key = (nettle_set_key_func*)chacha_set_key,
- .set_iv = (setiv_func)_chacha_set_nonce96,
- /* we allow setting the initial block counter as part of nonce */
- .max_iv_size = CHACHA_NONCE96_SIZE + CHACHA_COUNTER32_SIZE,
- },
- { .algo = GNUTLS_CIPHER_CHACHA20_64,
- .block_size = 1,
- .key_size = CHACHA_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)chacha_crypt,
- .decrypt_block = (nettle_cipher_func*)chacha_crypt,
-
- .ctx_size = sizeof(struct chacha_ctx),
- .encrypt = _stream_encrypt,
- .decrypt = _stream_encrypt,
- .set_encrypt_key = (nettle_set_key_func*)chacha_set_key,
- .set_decrypt_key = (nettle_set_key_func*)chacha_set_key,
- .set_iv = (setiv_func)_chacha_set_nonce,
- /* we allow setting the initial block counter as part of nonce */
- .max_iv_size = CHACHA_NONCE_SIZE + CHACHA_COUNTER_SIZE,
- },
- { .algo = GNUTLS_CIPHER_CHACHA20_POLY1305,
- .block_size = CHACHA_POLY1305_BLOCK_SIZE,
- .key_size = CHACHA_POLY1305_KEY_SIZE,
-
- .ctx_size = sizeof(struct chacha_poly1305_ctx),
- .encrypt_block = (nettle_cipher_func*)chacha_poly1305_encrypt,
- .decrypt_block = (nettle_cipher_func*)chacha_poly1305_decrypt,
- .encrypt = _stream_encrypt,
- .decrypt = _stream_decrypt,
- .auth = (nettle_hash_update_func*)chacha_poly1305_update,
- .tag = (nettle_hash_digest_func*)chacha_poly1305_digest,
- .set_encrypt_key = (nettle_set_key_func*)chacha_poly1305_set_key,
- .set_decrypt_key = (nettle_set_key_func*)chacha_poly1305_set_key,
- .set_iv = (setiv_func)_chacha_poly1305_set_nonce,
- .max_iv_size = CHACHA_POLY1305_NONCE_SIZE,
- },
+ {.algo = GNUTLS_CIPHER_AES_128_GCM,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES128_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes128_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes128_decrypt,
+
+ .ctx_size = sizeof(struct gcm_aes128_ctx),
+ .encrypt = _gcm_encrypt,
+ .decrypt = _gcm_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) gcm_aes128_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) gcm_aes128_set_key,
+
+ .tag = (nettle_hash_digest_func *) gcm_aes128_digest,
+ .auth = (nettle_hash_update_func *) gcm_aes128_update,
+ .set_iv = (setiv_func) gcm_aes128_set_iv,
+ .max_iv_size = GCM_IV_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_192_GCM,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES192_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes192_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes192_decrypt,
+
+ .ctx_size = sizeof(struct gcm_aes192_ctx),
+ .encrypt = _gcm_encrypt,
+ .decrypt = _gcm_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) gcm_aes192_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) gcm_aes192_set_key,
+
+ .tag = (nettle_hash_digest_func *) gcm_aes192_digest,
+ .auth = (nettle_hash_update_func *) gcm_aes192_update,
+ .set_iv = (setiv_func) gcm_aes192_set_iv,
+ .max_iv_size = GCM_IV_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_256_GCM,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES256_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes256_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes256_decrypt,
+
+ .ctx_size = sizeof(struct gcm_aes256_ctx),
+ .encrypt = _gcm_encrypt,
+ .decrypt = _gcm_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) gcm_aes256_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) gcm_aes256_set_key,
+
+ .tag = (nettle_hash_digest_func *) gcm_aes256_digest,
+ .auth = (nettle_hash_update_func *) gcm_aes256_update,
+ .set_iv = (setiv_func) gcm_aes256_set_iv,
+ .max_iv_size = GCM_IV_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_128_CCM,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES128_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes128_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes128_decrypt,
+
+ .ctx_size = sizeof(struct aes128_ctx),
+ .aead_encrypt = _ccm_encrypt,
+ .aead_decrypt = _ccm_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) aes128_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) aes128_set_encrypt_key,
+ .max_iv_size = CCM_MAX_NONCE_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_128_CCM_8,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES128_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes128_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes128_decrypt,
+
+ .ctx_size = sizeof(struct aes128_ctx),
+ .aead_encrypt = _ccm_encrypt,
+ .aead_decrypt = _ccm_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) aes128_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) aes128_set_encrypt_key,
+ .max_iv_size = CCM_MAX_NONCE_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_256_CCM,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES256_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes256_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes256_decrypt,
+
+ .ctx_size = sizeof(struct aes256_ctx),
+ .aead_encrypt = _ccm_encrypt,
+ .aead_decrypt = _ccm_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) aes256_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) aes256_set_encrypt_key,
+ .max_iv_size = CCM_MAX_NONCE_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_256_CCM_8,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES256_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes256_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes256_decrypt,
+
+ .ctx_size = sizeof(struct aes256_ctx),
+ .aead_encrypt = _ccm_encrypt,
+ .aead_decrypt = _ccm_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) aes256_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) aes256_set_encrypt_key,
+ .max_iv_size = CCM_MAX_NONCE_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_CAMELLIA_128_GCM,
+ .block_size = CAMELLIA_BLOCK_SIZE,
+ .key_size = CAMELLIA128_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) camellia128_crypt,
+ .decrypt_block = (nettle_cipher_func *) camellia128_crypt,
+
+ .ctx_size = sizeof(struct gcm_camellia128_ctx),
+ .encrypt = _gcm_encrypt,
+ .decrypt = _gcm_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) gcm_camellia128_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) gcm_camellia128_set_key,
+ .tag = (nettle_hash_digest_func *) gcm_camellia128_digest,
+ .auth = (nettle_hash_update_func *) gcm_camellia128_update,
+ .max_iv_size = GCM_IV_SIZE,
+ .set_iv = (setiv_func) gcm_camellia128_set_iv},
+ {.algo = GNUTLS_CIPHER_CAMELLIA_256_GCM,
+ .block_size = CAMELLIA_BLOCK_SIZE,
+ .key_size = CAMELLIA256_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) camellia256_crypt,
+ .decrypt_block = (nettle_cipher_func *) camellia256_crypt,
+
+ .ctx_size = sizeof(struct gcm_camellia256_ctx),
+ .encrypt = _gcm_encrypt,
+ .decrypt = _gcm_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) gcm_camellia256_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) gcm_camellia256_set_key,
+ .tag = (nettle_hash_digest_func *) gcm_camellia256_digest,
+ .auth = (nettle_hash_update_func *) gcm_camellia256_update,
+ .max_iv_size = GCM_IV_SIZE,
+ .set_iv = (setiv_func) gcm_camellia256_set_iv},
+ {.algo = GNUTLS_CIPHER_AES_128_CBC,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES128_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes128_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes128_decrypt,
+
+ .ctx_size = sizeof(struct CBC_CTX (struct aes128_ctx, AES_BLOCK_SIZE)),
+ .encrypt = _cbc_encrypt,
+ .decrypt = _cbc_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) aes128_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) aes128_set_decrypt_key,
+ .max_iv_size = AES_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_192_CBC,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES192_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes192_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes192_decrypt,
+
+ .ctx_size = sizeof(struct CBC_CTX (struct aes192_ctx, AES_BLOCK_SIZE)),
+ .encrypt = _cbc_encrypt,
+ .decrypt = _cbc_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) aes192_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) aes192_set_decrypt_key,
+ .max_iv_size = AES_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_256_CBC,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES256_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes256_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes256_decrypt,
+
+ .ctx_size = sizeof(struct CBC_CTX (struct aes256_ctx, AES_BLOCK_SIZE)),
+ .encrypt = _cbc_encrypt,
+ .decrypt = _cbc_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) aes256_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) aes256_set_decrypt_key,
+ .max_iv_size = AES_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_CAMELLIA_128_CBC,
+ .block_size = CAMELLIA_BLOCK_SIZE,
+ .key_size = CAMELLIA128_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) camellia128_crypt,
+ .decrypt_block = (nettle_cipher_func *) camellia128_crypt,
+
+ .ctx_size =
+ sizeof(struct CBC_CTX (struct camellia128_ctx, CAMELLIA_BLOCK_SIZE)),
+ .encrypt = _cbc_encrypt,
+ .decrypt = _cbc_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) camellia128_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) camellia128_set_decrypt_key,
+ .max_iv_size = CAMELLIA_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_CAMELLIA_192_CBC,
+ .block_size = CAMELLIA_BLOCK_SIZE,
+ .key_size = CAMELLIA192_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) camellia192_crypt,
+ .decrypt_block = (nettle_cipher_func *) camellia192_crypt,
+
+ .ctx_size =
+ sizeof(struct CBC_CTX (struct camellia192_ctx, CAMELLIA_BLOCK_SIZE)),
+ .encrypt = _cbc_encrypt,
+ .decrypt = _cbc_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) camellia192_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) camellia192_set_decrypt_key,
+ .max_iv_size = CAMELLIA_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_CAMELLIA_256_CBC,
+ .block_size = CAMELLIA_BLOCK_SIZE,
+ .key_size = CAMELLIA256_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) camellia256_crypt,
+ .decrypt_block = (nettle_cipher_func *) camellia256_crypt,
+
+ .ctx_size =
+ sizeof(struct CBC_CTX (struct camellia256_ctx, CAMELLIA_BLOCK_SIZE)),
+ .encrypt = _cbc_encrypt,
+ .decrypt = _cbc_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) camellia256_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) camellia256_set_decrypt_key,
+ .max_iv_size = CAMELLIA_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_RC2_40_CBC,
+ .block_size = ARCTWO_BLOCK_SIZE,
+ .key_size = 5,
+ .encrypt_block = (nettle_cipher_func *) arctwo_encrypt,
+ .decrypt_block = (nettle_cipher_func *) arctwo_decrypt,
+
+ .ctx_size =
+ sizeof(struct CBC_CTX (struct arctwo_ctx, ARCTWO_BLOCK_SIZE)),
+ .encrypt = _cbc_encrypt,
+ .decrypt = _cbc_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) arctwo40_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) arctwo40_set_key,
+ .max_iv_size = ARCTWO_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_DES_CBC,
+ .block_size = DES_BLOCK_SIZE,
+ .key_size = DES_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) des_encrypt,
+ .decrypt_block = (nettle_cipher_func *) des_decrypt,
+
+ .ctx_size = sizeof(struct CBC_CTX (struct des_ctx, DES_BLOCK_SIZE)),
+ .encrypt = _cbc_encrypt,
+ .decrypt = _cbc_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) _des_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) _des_set_key,
+ .max_iv_size = DES_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_3DES_CBC,
+ .block_size = DES3_BLOCK_SIZE,
+ .key_size = DES3_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) des3_encrypt,
+ .decrypt_block = (nettle_cipher_func *) des3_decrypt,
+
+ .ctx_size = sizeof(struct CBC_CTX (struct des3_ctx, DES3_BLOCK_SIZE)),
+ .encrypt = _cbc_encrypt,
+ .decrypt = _cbc_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) _des3_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) _des3_set_key,
+ .max_iv_size = DES_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_ARCFOUR_128,
+ .block_size = 1,
+ .key_size = 0,
+ .encrypt_block = (nettle_cipher_func *) arcfour_crypt,
+ .decrypt_block = (nettle_cipher_func *) arcfour_crypt,
+
+ .ctx_size = sizeof(struct arcfour_ctx),
+ .encrypt = _stream_encrypt,
+ .decrypt = _stream_encrypt,
+ .gen_set_key = (gen_setkey_func) arcfour_set_key,
+ .set_encrypt_key = (nettle_set_key_func *) arcfour128_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) arcfour128_set_key,
+ },
+ {.algo = GNUTLS_CIPHER_SALSA20_256,
+ .block_size = 1,
+ .key_size = SALSA20_256_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) salsa20_crypt,
+ .decrypt_block = (nettle_cipher_func *) salsa20_crypt,
+
+ .ctx_size = sizeof(struct salsa20_ctx),
+ .encrypt = _stream_encrypt,
+ .decrypt = _stream_encrypt,
+ .set_encrypt_key = (nettle_set_key_func *) salsa20_256_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) salsa20_256_set_key,
+ .max_iv_size = SALSA20_NONCE_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_ESTREAM_SALSA20_256,
+ .block_size = 1,
+ .key_size = SALSA20_256_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) salsa20r12_crypt,
+ .decrypt_block = (nettle_cipher_func *) salsa20r12_crypt,
+
+ .ctx_size = sizeof(struct salsa20_ctx),
+ .encrypt = _stream_encrypt,
+ .decrypt = _stream_encrypt,
+ .set_encrypt_key = (nettle_set_key_func *) salsa20_256_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) salsa20_256_set_key,
+ .max_iv_size = SALSA20_NONCE_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_CHACHA20_32,
+ .block_size = 1,
+ .key_size = CHACHA_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) chacha_crypt32,
+ .decrypt_block = (nettle_cipher_func *) chacha_crypt32,
+
+ .ctx_size = sizeof(struct chacha_ctx),
+ .encrypt = _stream_encrypt,
+ .decrypt = _stream_encrypt,
+ .set_encrypt_key = (nettle_set_key_func *) chacha_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) chacha_set_key,
+ .set_iv = (setiv_func) _chacha_set_nonce96,
+ /* we allow setting the initial block counter as part of nonce */
+ .max_iv_size = CHACHA_NONCE96_SIZE + CHACHA_COUNTER32_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_CHACHA20_64,
+ .block_size = 1,
+ .key_size = CHACHA_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) chacha_crypt,
+ .decrypt_block = (nettle_cipher_func *) chacha_crypt,
+
+ .ctx_size = sizeof(struct chacha_ctx),
+ .encrypt = _stream_encrypt,
+ .decrypt = _stream_encrypt,
+ .set_encrypt_key = (nettle_set_key_func *) chacha_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) chacha_set_key,
+ .set_iv = (setiv_func) _chacha_set_nonce,
+ /* we allow setting the initial block counter as part of nonce */
+ .max_iv_size = CHACHA_NONCE_SIZE + CHACHA_COUNTER_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_CHACHA20_POLY1305,
+ .block_size = CHACHA_POLY1305_BLOCK_SIZE,
+ .key_size = CHACHA_POLY1305_KEY_SIZE,
+
+ .ctx_size = sizeof(struct chacha_poly1305_ctx),
+ .encrypt_block = (nettle_cipher_func *) chacha_poly1305_encrypt,
+ .decrypt_block = (nettle_cipher_func *) chacha_poly1305_decrypt,
+ .encrypt = _stream_encrypt,
+ .decrypt = _stream_decrypt,
+ .auth = (nettle_hash_update_func *) chacha_poly1305_update,
+ .tag = (nettle_hash_digest_func *) chacha_poly1305_digest,
+ .set_encrypt_key = (nettle_set_key_func *) chacha_poly1305_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) chacha_poly1305_set_key,
+ .set_iv = (setiv_func) _chacha_poly1305_set_nonce,
+ .max_iv_size = CHACHA_POLY1305_NONCE_SIZE,
+ },
#if ENABLE_GOST
{
- .algo = GNUTLS_CIPHER_GOST28147_TC26Z_CFB,
- .block_size = GOST28147_BLOCK_SIZE,
- .key_size = GOST28147_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)gost28147_encrypt_for_cfb,
- .decrypt_block = (nettle_cipher_func*)gost28147_encrypt_for_cfb,
-
- .ctx_size = sizeof(struct CFB_CTX(struct gost28147_ctx, GOST28147_BLOCK_SIZE)),
- .encrypt = _cfb_encrypt,
- .decrypt = _cfb_decrypt,
- .set_encrypt_key = _gost28147_set_key_tc26z,
- .set_decrypt_key = _gost28147_set_key_tc26z,
- },
+ .algo = GNUTLS_CIPHER_GOST28147_TC26Z_CFB,
+ .block_size = GOST28147_BLOCK_SIZE,
+ .key_size = GOST28147_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) gost28147_encrypt_for_cfb,
+ .decrypt_block = (nettle_cipher_func *) gost28147_encrypt_for_cfb,
+
+ .ctx_size =
+ sizeof(struct CFB_CTX (struct gost28147_ctx, GOST28147_BLOCK_SIZE)),
+ .encrypt = _cfb_encrypt,
+ .decrypt = _cfb_decrypt,
+ .set_encrypt_key = _gost28147_set_key_tc26z,
+ .set_decrypt_key = _gost28147_set_key_tc26z,
+ },
{
- .algo = GNUTLS_CIPHER_GOST28147_CPA_CFB,
- .block_size = GOST28147_BLOCK_SIZE,
- .key_size = GOST28147_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)gost28147_encrypt_for_cfb,
- .decrypt_block = (nettle_cipher_func*)gost28147_encrypt_for_cfb,
-
- .ctx_size = sizeof(struct CFB_CTX(struct gost28147_ctx, GOST28147_BLOCK_SIZE)),
- .encrypt = _cfb_encrypt,
- .decrypt = _cfb_decrypt,
- .set_encrypt_key = _gost28147_set_key_cpa,
- .set_decrypt_key = _gost28147_set_key_cpa,
- },
+ .algo = GNUTLS_CIPHER_GOST28147_CPA_CFB,
+ .block_size = GOST28147_BLOCK_SIZE,
+ .key_size = GOST28147_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) gost28147_encrypt_for_cfb,
+ .decrypt_block = (nettle_cipher_func *) gost28147_encrypt_for_cfb,
+
+ .ctx_size =
+ sizeof(struct CFB_CTX (struct gost28147_ctx, GOST28147_BLOCK_SIZE)),
+ .encrypt = _cfb_encrypt,
+ .decrypt = _cfb_decrypt,
+ .set_encrypt_key = _gost28147_set_key_cpa,
+ .set_decrypt_key = _gost28147_set_key_cpa,
+ },
{
- .algo = GNUTLS_CIPHER_GOST28147_CPB_CFB,
- .block_size = GOST28147_BLOCK_SIZE,
- .key_size = GOST28147_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)gost28147_encrypt_for_cfb,
- .decrypt_block = (nettle_cipher_func*)gost28147_encrypt_for_cfb,
-
- .ctx_size = sizeof(struct CFB_CTX(struct gost28147_ctx, GOST28147_BLOCK_SIZE)),
- .encrypt = _cfb_encrypt,
- .decrypt = _cfb_decrypt,
- .set_encrypt_key = _gost28147_set_key_cpb,
- .set_decrypt_key = _gost28147_set_key_cpb,
- },
+ .algo = GNUTLS_CIPHER_GOST28147_CPB_CFB,
+ .block_size = GOST28147_BLOCK_SIZE,
+ .key_size = GOST28147_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) gost28147_encrypt_for_cfb,
+ .decrypt_block = (nettle_cipher_func *) gost28147_encrypt_for_cfb,
+
+ .ctx_size =
+ sizeof(struct CFB_CTX (struct gost28147_ctx, GOST28147_BLOCK_SIZE)),
+ .encrypt = _cfb_encrypt,
+ .decrypt = _cfb_decrypt,
+ .set_encrypt_key = _gost28147_set_key_cpb,
+ .set_decrypt_key = _gost28147_set_key_cpb,
+ },
{
- .algo = GNUTLS_CIPHER_GOST28147_CPC_CFB,
- .block_size = GOST28147_BLOCK_SIZE,
- .key_size = GOST28147_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)gost28147_encrypt_for_cfb,
- .decrypt_block = (nettle_cipher_func*)gost28147_encrypt_for_cfb,
-
- .ctx_size = sizeof(struct CFB_CTX(struct gost28147_ctx, GOST28147_BLOCK_SIZE)),
- .encrypt = _cfb_encrypt,
- .decrypt = _cfb_decrypt,
- .set_encrypt_key = _gost28147_set_key_cpc,
- .set_decrypt_key = _gost28147_set_key_cpc,
- },
+ .algo = GNUTLS_CIPHER_GOST28147_CPC_CFB,
+ .block_size = GOST28147_BLOCK_SIZE,
+ .key_size = GOST28147_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) gost28147_encrypt_for_cfb,
+ .decrypt_block = (nettle_cipher_func *) gost28147_encrypt_for_cfb,
+
+ .ctx_size =
+ sizeof(struct CFB_CTX (struct gost28147_ctx, GOST28147_BLOCK_SIZE)),
+ .encrypt = _cfb_encrypt,
+ .decrypt = _cfb_decrypt,
+ .set_encrypt_key = _gost28147_set_key_cpc,
+ .set_decrypt_key = _gost28147_set_key_cpc,
+ },
{
- .algo = GNUTLS_CIPHER_GOST28147_CPD_CFB,
- .block_size = GOST28147_BLOCK_SIZE,
- .key_size = GOST28147_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)gost28147_encrypt_for_cfb,
- .decrypt_block = (nettle_cipher_func*)gost28147_encrypt_for_cfb,
-
- .ctx_size = sizeof(struct CFB_CTX(struct gost28147_ctx, GOST28147_BLOCK_SIZE)),
- .encrypt = _cfb_encrypt,
- .decrypt = _cfb_decrypt,
- .set_encrypt_key = _gost28147_set_key_cpd,
- .set_decrypt_key = _gost28147_set_key_cpd,
- },
+ .algo = GNUTLS_CIPHER_GOST28147_CPD_CFB,
+ .block_size = GOST28147_BLOCK_SIZE,
+ .key_size = GOST28147_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) gost28147_encrypt_for_cfb,
+ .decrypt_block = (nettle_cipher_func *) gost28147_encrypt_for_cfb,
+
+ .ctx_size =
+ sizeof(struct CFB_CTX (struct gost28147_ctx, GOST28147_BLOCK_SIZE)),
+ .encrypt = _cfb_encrypt,
+ .decrypt = _cfb_decrypt,
+ .set_encrypt_key = _gost28147_set_key_cpd,
+ .set_decrypt_key = _gost28147_set_key_cpd,
+ },
{
- .algo = GNUTLS_CIPHER_GOST28147_TC26Z_CNT,
- .block_size = GOST28147_BLOCK_SIZE,
- .key_size = GOST28147_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)gost28147_encrypt, /* unused */
- .decrypt_block = (nettle_cipher_func*)gost28147_decrypt, /* unused */
-
- .ctx_size = sizeof(struct gost28147_cnt_ctx),
- .encrypt = _gost28147_cnt_crypt,
- .decrypt = _gost28147_cnt_crypt,
- .set_encrypt_key = _gost28147_cnt_set_key_tc26z,
- .set_decrypt_key = _gost28147_cnt_set_key_tc26z,
- .set_iv = (setiv_func)_gost28147_cnt_set_nonce,
- },
+ .algo = GNUTLS_CIPHER_GOST28147_TC26Z_CNT,
+ .block_size = GOST28147_BLOCK_SIZE,
+ .key_size = GOST28147_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) gost28147_encrypt, /* unused */
+ .decrypt_block = (nettle_cipher_func *) gost28147_decrypt, /* unused */
+
+ .ctx_size = sizeof(struct gost28147_cnt_ctx),
+ .encrypt = _gost28147_cnt_crypt,
+ .decrypt = _gost28147_cnt_crypt,
+ .set_encrypt_key = _gost28147_cnt_set_key_tc26z,
+ .set_decrypt_key = _gost28147_cnt_set_key_tc26z,
+ .set_iv = (setiv_func) _gost28147_cnt_set_nonce,
+ },
{
- .algo = GNUTLS_CIPHER_MAGMA_CTR_ACPKM,
- .block_size = MAGMA_BLOCK_SIZE,
- .key_size = MAGMA_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)_magma_acpkm_crypt,
- .decrypt_block = (nettle_cipher_func*)_magma_acpkm_crypt,
-
- .ctx_size = sizeof(struct magma_acpkm_ctx),
- .encrypt = _ctr_acpkm_crypt,
- .decrypt = _ctr_acpkm_crypt,
- .set_encrypt_key = (nettle_set_key_func*)_magma_ctr_acpkm_set_key,
- .set_decrypt_key = (nettle_set_key_func*)_magma_ctr_acpkm_set_key,
- .set_iv = (setiv_func)_magma_ctr_acpkm_set_iv,
- },
+ .algo = GNUTLS_CIPHER_MAGMA_CTR_ACPKM,
+ .block_size = MAGMA_BLOCK_SIZE,
+ .key_size = MAGMA_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) _magma_acpkm_crypt,
+ .decrypt_block = (nettle_cipher_func *) _magma_acpkm_crypt,
+
+ .ctx_size = sizeof(struct magma_acpkm_ctx),
+ .encrypt = _ctr_acpkm_crypt,
+ .decrypt = _ctr_acpkm_crypt,
+ .set_encrypt_key = (nettle_set_key_func *) _magma_ctr_acpkm_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) _magma_ctr_acpkm_set_key,
+ .set_iv = (setiv_func) _magma_ctr_acpkm_set_iv,
+ },
{
- .algo = GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM,
- .block_size = KUZNYECHIK_BLOCK_SIZE,
- .key_size = KUZNYECHIK_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)_kuznyechik_acpkm_crypt,
- .decrypt_block = (nettle_cipher_func*)_kuznyechik_acpkm_crypt,
-
- .ctx_size = sizeof(struct kuznyechik_acpkm_ctx),
- .encrypt = _ctr_acpkm_crypt,
- .decrypt = _ctr_acpkm_crypt,
- .set_encrypt_key = (nettle_set_key_func*)_kuznyechik_ctr_acpkm_set_key,
- .set_decrypt_key = (nettle_set_key_func*)_kuznyechik_ctr_acpkm_set_key,
- .set_iv = (setiv_func)_kuznyechik_ctr_acpkm_set_iv,
- },
+ .algo = GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM,
+ .block_size = KUZNYECHIK_BLOCK_SIZE,
+ .key_size = KUZNYECHIK_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) _kuznyechik_acpkm_crypt,
+ .decrypt_block = (nettle_cipher_func *) _kuznyechik_acpkm_crypt,
+
+ .ctx_size = sizeof(struct kuznyechik_acpkm_ctx),
+ .encrypt = _ctr_acpkm_crypt,
+ .decrypt = _ctr_acpkm_crypt,
+ .set_encrypt_key =
+ (nettle_set_key_func *) _kuznyechik_ctr_acpkm_set_key,
+ .set_decrypt_key =
+ (nettle_set_key_func *) _kuznyechik_ctr_acpkm_set_key,
+ .set_iv = (setiv_func) _kuznyechik_ctr_acpkm_set_iv,
+ },
#endif
- { .algo = GNUTLS_CIPHER_AES_128_CFB8,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES128_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes128_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes128_encrypt,
-
- .ctx_size = sizeof(struct CFB8_CTX(struct aes128_ctx, AES_BLOCK_SIZE)),
- .encrypt = _cfb8_encrypt,
- .decrypt = _cfb8_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)aes128_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)aes128_set_encrypt_key,
- .max_iv_size = AES_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_192_CFB8,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES192_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes192_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes192_encrypt,
-
- .ctx_size = sizeof(struct CFB8_CTX(struct aes192_ctx, AES_BLOCK_SIZE)),
- .encrypt = _cfb8_encrypt,
- .decrypt = _cfb8_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)aes192_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)aes192_set_encrypt_key,
- .max_iv_size = AES_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_256_CFB8,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES256_KEY_SIZE,
- .encrypt_block = (nettle_cipher_func*)aes256_encrypt,
- .decrypt_block = (nettle_cipher_func*)aes256_encrypt,
-
- .ctx_size = sizeof(struct CFB8_CTX(struct aes256_ctx, AES_BLOCK_SIZE)),
- .encrypt = _cfb8_encrypt,
- .decrypt = _cfb8_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)aes256_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)aes256_set_encrypt_key,
- .max_iv_size = AES_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_128_XTS,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES128_KEY_SIZE * 2,
-
- .ctx_size = sizeof(struct xts_aes128_key),
- .encrypt = _xts_aes128_encrypt,
- .decrypt = _xts_aes128_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)xts_aes128_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)xts_aes128_set_decrypt_key,
- .max_iv_size = AES_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_256_XTS,
- .block_size = AES_BLOCK_SIZE,
- .key_size = AES256_KEY_SIZE * 2,
-
- .ctx_size = sizeof(struct xts_aes256_key),
- .encrypt = _xts_aes256_encrypt,
- .decrypt = _xts_aes256_decrypt,
- .set_encrypt_key = (nettle_set_key_func*)xts_aes256_set_encrypt_key,
- .set_decrypt_key = (nettle_set_key_func*)xts_aes256_set_decrypt_key,
- .max_iv_size = AES_BLOCK_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_128_SIV,
- .block_size = SIV_BLOCK_SIZE,
- .key_size = SIV_CMAC_AES128_KEY_SIZE,
-
- .ctx_size = sizeof(struct siv_cmac_aes128_ctx),
- .aead_encrypt = (aead_encrypt_func)_siv_cmac_aes128_encrypt_message,
- .aead_decrypt = (aead_decrypt_func)_siv_cmac_aes128_decrypt_message,
- .set_encrypt_key = (nettle_set_key_func*)siv_cmac_aes128_set_key,
- .set_decrypt_key = (nettle_set_key_func*)siv_cmac_aes128_set_key,
- .max_iv_size = SIV_DIGEST_SIZE,
- },
- { .algo = GNUTLS_CIPHER_AES_256_SIV,
- .block_size = SIV_BLOCK_SIZE,
- .key_size = SIV_CMAC_AES256_KEY_SIZE,
-
- .ctx_size = sizeof(struct siv_cmac_aes256_ctx),
- .aead_encrypt = (aead_encrypt_func)_siv_cmac_aes256_encrypt_message,
- .aead_decrypt = (aead_decrypt_func)_siv_cmac_aes256_decrypt_message,
- .set_encrypt_key = (nettle_set_key_func*)siv_cmac_aes256_set_key,
- .set_decrypt_key = (nettle_set_key_func*)siv_cmac_aes256_set_key,
- .max_iv_size = SIV_DIGEST_SIZE,
- },
+ {.algo = GNUTLS_CIPHER_AES_128_CFB8,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES128_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes128_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes128_encrypt,
+
+ .ctx_size =
+ sizeof(struct CFB8_CTX (struct aes128_ctx, AES_BLOCK_SIZE)),
+ .encrypt = _cfb8_encrypt,
+ .decrypt = _cfb8_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) aes128_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) aes128_set_encrypt_key,
+ .max_iv_size = AES_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_192_CFB8,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES192_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes192_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes192_encrypt,
+
+ .ctx_size =
+ sizeof(struct CFB8_CTX (struct aes192_ctx, AES_BLOCK_SIZE)),
+ .encrypt = _cfb8_encrypt,
+ .decrypt = _cfb8_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) aes192_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) aes192_set_encrypt_key,
+ .max_iv_size = AES_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_256_CFB8,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES256_KEY_SIZE,
+ .encrypt_block = (nettle_cipher_func *) aes256_encrypt,
+ .decrypt_block = (nettle_cipher_func *) aes256_encrypt,
+
+ .ctx_size =
+ sizeof(struct CFB8_CTX (struct aes256_ctx, AES_BLOCK_SIZE)),
+ .encrypt = _cfb8_encrypt,
+ .decrypt = _cfb8_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) aes256_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) aes256_set_encrypt_key,
+ .max_iv_size = AES_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_128_XTS,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES128_KEY_SIZE * 2,
+
+ .ctx_size = sizeof(struct xts_aes128_key),
+ .encrypt = _xts_aes128_encrypt,
+ .decrypt = _xts_aes128_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) xts_aes128_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) xts_aes128_set_decrypt_key,
+ .max_iv_size = AES_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_256_XTS,
+ .block_size = AES_BLOCK_SIZE,
+ .key_size = AES256_KEY_SIZE * 2,
+
+ .ctx_size = sizeof(struct xts_aes256_key),
+ .encrypt = _xts_aes256_encrypt,
+ .decrypt = _xts_aes256_decrypt,
+ .set_encrypt_key = (nettle_set_key_func *) xts_aes256_set_encrypt_key,
+ .set_decrypt_key = (nettle_set_key_func *) xts_aes256_set_decrypt_key,
+ .max_iv_size = AES_BLOCK_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_128_SIV,
+ .block_size = SIV_BLOCK_SIZE,
+ .key_size = SIV_CMAC_AES128_KEY_SIZE,
+
+ .ctx_size = sizeof(struct siv_cmac_aes128_ctx),
+ .aead_encrypt = (aead_encrypt_func) _siv_cmac_aes128_encrypt_message,
+ .aead_decrypt = (aead_decrypt_func) _siv_cmac_aes128_decrypt_message,
+ .set_encrypt_key = (nettle_set_key_func *) siv_cmac_aes128_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) siv_cmac_aes128_set_key,
+ .max_iv_size = SIV_DIGEST_SIZE,
+ },
+ {.algo = GNUTLS_CIPHER_AES_256_SIV,
+ .block_size = SIV_BLOCK_SIZE,
+ .key_size = SIV_CMAC_AES256_KEY_SIZE,
+
+ .ctx_size = sizeof(struct siv_cmac_aes256_ctx),
+ .aead_encrypt = (aead_encrypt_func) _siv_cmac_aes256_encrypt_message,
+ .aead_decrypt = (aead_decrypt_func) _siv_cmac_aes256_decrypt_message,
+ .set_encrypt_key = (nettle_set_key_func *) siv_cmac_aes256_set_key,
+ .set_decrypt_key = (nettle_set_key_func *) siv_cmac_aes256_set_key,
+ .max_iv_size = SIV_DIGEST_SIZE,
+ },
};
static int wrap_nettle_cipher_exists(gnutls_cipher_algorithm_t algo)
{
unsigned i;
- for (i=0;i<sizeof(builtin_ciphers)/sizeof(builtin_ciphers[0]);i++) {
+ for (i = 0; i < sizeof(builtin_ciphers) / sizeof(builtin_ciphers[0]);
+ i++) {
if (algo == builtin_ciphers[i].algo) {
return 1;
}
@@ -1050,8 +1043,7 @@ static int wrap_nettle_cipher_exists(gnutls_cipher_algorithm_t algo)
}
static int
-wrap_nettle_cipher_init(gnutls_cipher_algorithm_t algo, void **_ctx,
- int enc)
+wrap_nettle_cipher_init(gnutls_cipher_algorithm_t algo, void **_ctx, int enc)
{
struct nettle_cipher_ctx *ctx;
uintptr_t cur_alignment;
@@ -1059,7 +1051,8 @@ wrap_nettle_cipher_init(gnutls_cipher_algorithm_t algo, void **_ctx,
unsigned i;
uint8_t *ctx_ptr;
- for (i=0;i<sizeof(builtin_ciphers)/sizeof(builtin_ciphers[0]);i++) {
+ for (i = 0; i < sizeof(builtin_ciphers) / sizeof(builtin_ciphers[0]);
+ i++) {
if (algo == builtin_ciphers[i].algo) {
idx = i;
break;
@@ -1069,16 +1062,17 @@ wrap_nettle_cipher_init(gnutls_cipher_algorithm_t algo, void **_ctx,
if (idx == -1)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- ctx = gnutls_calloc(1, sizeof(*ctx)+builtin_ciphers[idx].ctx_size+16);
+ ctx =
+ gnutls_calloc(1, sizeof(*ctx) + builtin_ciphers[idx].ctx_size + 16);
if (ctx == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
}
ctx->enc = enc;
- ctx_ptr = ((uint8_t*)ctx) + sizeof(*ctx);
+ ctx_ptr = ((uint8_t *) ctx) + sizeof(*ctx);
- cur_alignment = ((uintptr_t)ctx_ptr) % 16;
+ cur_alignment = ((uintptr_t) ctx_ptr) % 16;
if (cur_alignment > 0)
ctx_ptr += 16 - cur_alignment;
@@ -1095,7 +1089,8 @@ wrap_nettle_cipher_setkey(void *_ctx, const void *key, size_t keysize)
{
struct nettle_cipher_ctx *ctx = _ctx;
- if (ctx->cipher->key_size > 0 && unlikely(keysize != ctx->cipher->key_size)) {
+ if (ctx->cipher->key_size > 0
+ && unlikely(keysize != ctx->cipher->key_size)) {
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
} else if (ctx->cipher->key_size == 0) {
ctx->cipher->gen_set_key(ctx->ctx_ptr, keysize, key);
@@ -1105,12 +1100,14 @@ wrap_nettle_cipher_setkey(void *_ctx, const void *key, size_t keysize)
switch (ctx->cipher->algo) {
case GNUTLS_CIPHER_AES_128_XTS:
if (_gnutls_fips_mode_enabled() &&
- gnutls_memcmp(key, (char *)key + AES128_KEY_SIZE, AES128_KEY_SIZE) == 0)
+ gnutls_memcmp(key, (char *)key + AES128_KEY_SIZE,
+ AES128_KEY_SIZE) == 0)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
break;
case GNUTLS_CIPHER_AES_256_XTS:
if (_gnutls_fips_mode_enabled() &&
- gnutls_memcmp(key, (char *)key + AES256_KEY_SIZE, AES256_KEY_SIZE) == 0)
+ gnutls_memcmp(key, (char *)key + AES256_KEY_SIZE,
+ AES256_KEY_SIZE) == 0)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
break;
default:
@@ -1135,8 +1132,7 @@ wrap_nettle_cipher_setkey(void *_ctx, const void *key, size_t keysize)
return 0;
}
-static int
-wrap_nettle_cipher_setiv(void *_ctx, const void *iv, size_t iv_size)
+static int wrap_nettle_cipher_setiv(void *_ctx, const void *iv, size_t iv_size)
{
struct nettle_cipher_ctx *ctx = _ctx;
unsigned max_iv;
@@ -1145,7 +1141,8 @@ wrap_nettle_cipher_setiv(void *_ctx, const void *iv, size_t iv_size)
case GNUTLS_CIPHER_AES_128_GCM:
case GNUTLS_CIPHER_AES_192_GCM:
case GNUTLS_CIPHER_AES_256_GCM:
- FIPS_RULE(iv_size < GCM_IV_SIZE, GNUTLS_E_INVALID_REQUEST, "access to short GCM nonce size\n");
+ FIPS_RULE(iv_size < GCM_IV_SIZE, GNUTLS_E_INVALID_REQUEST,
+ "access to short GCM nonce size\n");
ctx->rekey_counter = 0;
break;
case GNUTLS_CIPHER_SALSA20_256:
@@ -1175,8 +1172,7 @@ wrap_nettle_cipher_setiv(void *_ctx, const void *iv, size_t iv_size)
return 0;
}
-static int
-wrap_nettle_cipher_getiv(void *_ctx, void *iv, size_t iv_size)
+static int wrap_nettle_cipher_getiv(void *_ctx, void *iv, size_t iv_size)
{
struct nettle_cipher_ctx *ctx = _ctx;
@@ -1185,7 +1181,7 @@ wrap_nettle_cipher_getiv(void *_ctx, void *iv, size_t iv_size)
memcpy(iv, ctx->iv, ctx->iv_size);
- return (int) ctx->iv_size;
+ return (int)ctx->iv_size;
}
static int
@@ -1216,7 +1212,9 @@ wrap_nettle_cipher_encrypt(void *_ctx, const void *plain, size_t plain_size,
case GNUTLS_CIPHER_AES_128_GCM:
case GNUTLS_CIPHER_AES_192_GCM:
case GNUTLS_CIPHER_AES_256_GCM:
- ret = record_aes_gcm_encrypt_size(&ctx->rekey_counter, plain_size);
+ ret =
+ record_aes_gcm_encrypt_size(&ctx->rekey_counter,
+ plain_size);
if (ret < 0) {
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -1250,7 +1248,8 @@ wrap_nettle_cipher_aead_encrypt(void *_ctx,
ctx->cipher->encrypt(ctx, plain_size, encr, plain);
- ctx->cipher->tag(ctx->ctx_ptr, tag_size, ((uint8_t*)encr) + plain_size);
+ ctx->cipher->tag(ctx->ctx_ptr, tag_size,
+ ((uint8_t *) encr) + plain_size);
} else {
/* CCM-style cipher */
@@ -1261,18 +1260,26 @@ wrap_nettle_cipher_aead_encrypt(void *_ctx,
* between 32 and 128.
*/
switch (tag_size) {
- case 4: case 6:
+ case 4:
+ case 6:
/* SP800-38C B.2 says Tlen smaller than 64
* should not be used under sufficient
* restriction. We simply allow those for now.
*/
FALLTHROUGH;
- case 8: case 10: case 12: case 14: case 16:
+ case 8:
+ case 10:
+ case 12:
+ case 14:
+ case 16:
break;
default:
if (_gnutls_fips_mode_enabled()) {
- _gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ _gnutls_switch_fips_state
+ (GNUTLS_FIPS140_OP_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INVALID_REQUEST);
}
break;
}
@@ -1285,8 +1292,7 @@ wrap_nettle_cipher_aead_encrypt(void *_ctx,
nonce_size, nonce,
auth_size, auth,
tag_size,
- tag_size+plain_size, encr,
- plain);
+ tag_size + plain_size, encr, plain);
}
return 0;
}
@@ -1321,7 +1327,8 @@ wrap_nettle_cipher_aead_decrypt(void *_ctx,
ctx->cipher->tag(ctx->ctx_ptr, tag_size, tag);
- if (gnutls_memcmp(((uint8_t*)encr)+encr_size, tag, tag_size) != 0)
+ if (gnutls_memcmp(((uint8_t *) encr) + encr_size, tag, tag_size)
+ != 0)
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
} else {
/* CCM-style cipher */
@@ -1337,18 +1344,26 @@ wrap_nettle_cipher_aead_decrypt(void *_ctx,
* between 32 and 128.
*/
switch (tag_size) {
- case 4: case 6:
+ case 4:
+ case 6:
/* SP800-38C B.2 says Tlen smaller than 64
* should not be used under sufficient
* restriction. We simply allow those for now.
*/
FALLTHROUGH;
- case 8: case 10: case 12: case 14: case 16:
+ case 8:
+ case 10:
+ case 12:
+ case 14:
+ case 16:
break;
default:
if (_gnutls_fips_mode_enabled()) {
- _gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ _gnutls_switch_fips_state
+ (GNUTLS_FIPS140_OP_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INVALID_REQUEST);
}
break;
}
@@ -1361,10 +1376,9 @@ wrap_nettle_cipher_aead_decrypt(void *_ctx,
nonce_size, nonce,
auth_size, auth,
tag_size,
- encr_size, plain,
- encr);
+ encr_size, plain, encr);
if (unlikely(ret == 0))
- return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
}
return 0;
}
diff --git a/lib/nettle/ecc-gost-curve.h b/lib/nettle/ecc-gost-curve.h
index c2b989c48e..abc7dfa260 100644
--- a/lib/nettle/ecc-gost-curve.h
+++ b/lib/nettle/ecc-gost-curve.h
@@ -32,42 +32,42 @@
/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
#ifndef GNUTLS_LIB_NETTLE_GOST_ECC_GOST_CURVE_H
-#define GNUTLS_LIB_NETTLE_GOST_ECC_GOST_CURVE_H
+# define GNUTLS_LIB_NETTLE_GOST_ECC_GOST_CURVE_H
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
/* The contents of this struct is internal. */
-struct ecc_curve;
-
-#ifndef NETTLE_PURE
-#ifdef __GNUC__
-#define NETTLE_PURE __attribute__((pure))
-#else
-#define NETTLE_PURE
-#endif
-#endif
-
-#define gost_point_mul_g _gnutls_nettle_ecc_gost_point_mul_g
-#define gost_point_set _gnutls_nettle_ecc_gost_point_set
-#define gostdsa_generate_keypair _gnutls_nettle_ecc_gostdsa_generate_keypair
-void
-gost_point_mul_g (struct ecc_point *r, const struct ecc_scalar *n);
-int
-gost_point_set (struct ecc_point *p, const mpz_t x, const mpz_t y);
-void
-gostdsa_generate_keypair (struct ecc_point *pub,
- struct ecc_scalar *key,
- void *random_ctx, nettle_random_func *random);
-
-#define nettle_get_gost_gc256b _gnutls_nettle_ecc_get_gost_gc256b
-#define nettle_get_gost_gc512a _gnutls_nettle_ecc_get_gost_gc512a
-const struct ecc_curve * NETTLE_PURE nettle_get_gost_gc256b(void);
-const struct ecc_curve * NETTLE_PURE nettle_get_gost_gc512a(void);
-
-#ifdef __cplusplus
+ struct ecc_curve;
+
+# ifndef NETTLE_PURE
+# ifdef __GNUC__
+# define NETTLE_PURE __attribute__((pure))
+# else
+# define NETTLE_PURE
+# endif
+# endif
+
+# define gost_point_mul_g _gnutls_nettle_ecc_gost_point_mul_g
+# define gost_point_set _gnutls_nettle_ecc_gost_point_set
+# define gostdsa_generate_keypair _gnutls_nettle_ecc_gostdsa_generate_keypair
+ void
+ gost_point_mul_g(struct ecc_point *r, const struct ecc_scalar *n);
+ int
+ gost_point_set(struct ecc_point *p, const mpz_t x, const mpz_t y);
+ void
+ gostdsa_generate_keypair(struct ecc_point *pub,
+ struct ecc_scalar *key,
+ void *random_ctx,
+ nettle_random_func * random);
+
+# define nettle_get_gost_gc256b _gnutls_nettle_ecc_get_gost_gc256b
+# define nettle_get_gost_gc512a _gnutls_nettle_ecc_get_gost_gc512a
+ const struct ecc_curve *NETTLE_PURE nettle_get_gost_gc256b(void);
+ const struct ecc_curve *NETTLE_PURE nettle_get_gost_gc512a(void);
+
+# ifdef __cplusplus
}
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_ECC_GOST_CURVE_H */
+# endif
+#endif /* GNUTLS_LIB_NETTLE_GOST_ECC_GOST_CURVE_H */
diff --git a/lib/nettle/gnettle.h b/lib/nettle/gnettle.h
index f47569bfc6..49f8858aab 100644
--- a/lib/nettle/gnettle.h
+++ b/lib/nettle/gnettle.h
@@ -1,8 +1,8 @@
#ifndef GNUTLS_LIB_NETTLE_GNETTLE_H
-#define GNUTLS_LIB_NETTLE_GNETTLE_H
+# define GNUTLS_LIB_NETTLE_GNETTLE_H
-#define PRIME_CHECK_PARAM 8
-#define TOMPZ(x) ((__mpz_struct*)(x))
-#define SIZEOF_MPZT sizeof(__mpz_struct)
+# define PRIME_CHECK_PARAM 8
+# define TOMPZ(x) ((__mpz_struct*)(x))
+# define SIZEOF_MPZT sizeof(__mpz_struct)
-#endif /* GNUTLS_LIB_NETTLE_GNETTLE_H */
+#endif /* GNUTLS_LIB_NETTLE_GNETTLE_H */
diff --git a/lib/nettle/gost/acpkm.c b/lib/nettle/gost/acpkm.c
index 9a04a155df..af4a8fc43d 100644
--- a/lib/nettle/gost/acpkm.c
+++ b/lib/nettle/gost/acpkm.c
@@ -37,47 +37,43 @@
#include "acpkm.h"
-static uint8_t acpkm_mesh_data[ACPKM_KEY_SIZE] =
-{
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
- 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
- 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
+static uint8_t acpkm_mesh_data[ACPKM_KEY_SIZE] = {
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
};
void acpkm_crypt(struct acpkm_ctx *ctx,
void *cipher,
- nettle_cipher_func *encrypt,
- nettle_set_key_func *set_key,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ nettle_cipher_func * encrypt,
+ nettle_set_key_func * set_key,
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- size_t N = ctx->N;
- size_t part;
- uint8_t new_key[ACPKM_KEY_SIZE];
-
- /* Less than a block, no rekeying */
- if (ctx->pos + length < N)
- {
- encrypt(cipher, length, dst, src);
- ctx->pos += length;
- return;
- }
-
- for (part = N - ctx->pos; length >= part; part = N)
- {
- encrypt(cipher, part, dst, src);
- src += part;
- dst += part;
- length -= part;
-
- /* Rekey */
- encrypt(cipher, ACPKM_KEY_SIZE, new_key, acpkm_mesh_data);
- set_key(cipher, new_key);
- }
-
- if (length != 0)
- encrypt(cipher, length, dst, src);
-
- ctx->pos = length;
+ size_t N = ctx->N;
+ size_t part;
+ uint8_t new_key[ACPKM_KEY_SIZE];
+
+ /* Less than a block, no rekeying */
+ if (ctx->pos + length < N) {
+ encrypt(cipher, length, dst, src);
+ ctx->pos += length;
+ return;
+ }
+
+ for (part = N - ctx->pos; length >= part; part = N) {
+ encrypt(cipher, part, dst, src);
+ src += part;
+ dst += part;
+ length -= part;
+
+ /* Rekey */
+ encrypt(cipher, ACPKM_KEY_SIZE, new_key, acpkm_mesh_data);
+ set_key(cipher, new_key);
+ }
+
+ if (length != 0)
+ encrypt(cipher, length, dst, src);
+
+ ctx->pos = length;
}
diff --git a/lib/nettle/gost/acpkm.h b/lib/nettle/gost/acpkm.h
index 6bf05ebc71..6c76951b5c 100644
--- a/lib/nettle/gost/acpkm.h
+++ b/lib/nettle/gost/acpkm.h
@@ -32,37 +32,33 @@
*/
#ifndef NETTLE_ACPKM_H_INCLUDED
-#define NETTLE_ACPKM_H_INCLUDED
+# define NETTLE_ACPKM_H_INCLUDED
-#include <nettle/nettle-types.h>
+# include <nettle/nettle-types.h>
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
-#define acpkm_crypt _gnutls_acpkm_crypt
+# define acpkm_crypt _gnutls_acpkm_crypt
-struct acpkm_ctx
-{
- size_t N;
- size_t pos;
-};
+ struct acpkm_ctx {
+ size_t N;
+ size_t pos;
+ };
-#define ACPKM_CTX(type) \
+# define ACPKM_CTX(type) \
{ struct acpkm_ctx ctx; type cipher; }
-#define ACPKM_KEY_SIZE 32
+# define ACPKM_KEY_SIZE 32
-void acpkm_crypt(struct acpkm_ctx *ctx,
- void *cipher,
- nettle_cipher_func *encrypt,
- nettle_set_key_func *set_key,
- size_t length, uint8_t *dst,
- const uint8_t *src);
+ void acpkm_crypt(struct acpkm_ctx *ctx,
+ void *cipher,
+ nettle_cipher_func * encrypt,
+ nettle_set_key_func * set_key,
+ size_t length, uint8_t * dst, const uint8_t * src);
-#ifdef __cplusplus
+# ifdef __cplusplus
}
-#endif
-
-#endif /* NETTLE_ACPKM_H_INCLUDED */
-
+# endif
+#endif /* NETTLE_ACPKM_H_INCLUDED */
diff --git a/lib/nettle/gost/bignum-le.c b/lib/nettle/gost/bignum-le.c
index 9faa2821a1..11203f05cd 100644
--- a/lib/nettle/gost/bignum-le.c
+++ b/lib/nettle/gost/bignum-le.c
@@ -42,37 +42,31 @@
#include <nettle/bignum.h>
#include "bignum-le.h"
-void
-nettle_mpz_get_str_256_u_le(size_t length, uint8_t *s, const mpz_t x)
+void nettle_mpz_get_str_256_u_le(size_t length, uint8_t * s, const mpz_t x)
{
- if (!length)
- {
- /* x must be zero */
- assert(!mpz_sgn(x));
- return;
- }
-
- size_t count;
-
- assert(nettle_mpz_sizeinbase_256_u(x) <= length);
- mpz_export(s, &count, -1, 1, 0, 0, x);
- memset(s + count, 0, length - count);
+ if (!length) {
+ /* x must be zero */
+ assert(!mpz_sgn(x));
+ return;
+ }
+
+ size_t count;
+
+ assert(nettle_mpz_sizeinbase_256_u(x) <= length);
+ mpz_export(s, &count, -1, 1, 0, 0, x);
+ memset(s + count, 0, length - count);
}
#define nettle_mpz_from_octets_le(x, length, s) \
mpz_import((x), (length), -1, 1, 0, 0, (s))
-void
-nettle_mpz_set_str_256_u_le(mpz_t x,
- size_t length, const uint8_t *s)
+void nettle_mpz_set_str_256_u_le(mpz_t x, size_t length, const uint8_t * s)
{
- nettle_mpz_from_octets_le(x, length, s);
+ nettle_mpz_from_octets_le(x, length, s);
}
-void
-nettle_mpz_init_set_str_256_u_le(mpz_t x,
- size_t length, const uint8_t *s)
+void nettle_mpz_init_set_str_256_u_le(mpz_t x, size_t length, const uint8_t * s)
{
- mpz_init(x);
- nettle_mpz_from_octets_le(x, length, s);
+ mpz_init(x);
+ nettle_mpz_from_octets_le(x, length, s);
}
diff --git a/lib/nettle/gost/bignum-le.h b/lib/nettle/gost/bignum-le.h
index 3672ad2ef3..51de1f32ac 100644
--- a/lib/nettle/gost/bignum-le.h
+++ b/lib/nettle/gost/bignum-le.h
@@ -30,42 +30,39 @@
the GNU Lesser General Public License along with this program. If
not, see https://www.gnu.org/licenses/.
*/
-
+
#ifndef GNUTLS_LIB_NETTLE_GOST_BIGNUM_LE_H
-#define GNUTLS_LIB_NETTLE_GOST_BIGNUM_LE_H
+# define GNUTLS_LIB_NETTLE_GOST_BIGNUM_LE_H
-#include <nettle/nettle-meta.h>
+# include <nettle/nettle-meta.h>
-#include <nettle/nettle-types.h>
+# include <nettle/nettle-types.h>
-#include <nettle/bignum.h>
+# include <nettle/bignum.h>
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
-#define nettle_mpz_sizeinbase_256_u_le nettle_mpz_sizeinbase_256_u
+# define nettle_mpz_sizeinbase_256_u_le nettle_mpz_sizeinbase_256_u
-#define nettle_mpz_get_str_256_u_le _gnutls_mpz_get_str_256_u_le
-#define nettle_mpz_set_str_256_u_le _gnutls_mpz_set_str_256_u_le
-#define nettle_mpz_init_set_str_256_u_le _gnutls_mpz_init_set_str_256_u_le
+# define nettle_mpz_get_str_256_u_le _gnutls_mpz_get_str_256_u_le
+# define nettle_mpz_set_str_256_u_le _gnutls_mpz_set_str_256_u_le
+# define nettle_mpz_init_set_str_256_u_le _gnutls_mpz_init_set_str_256_u_le
/* Writes an integer as length octets, using big endian byte order,
* and unsigned number format. */
-void
-nettle_mpz_get_str_256_u_le(size_t length, uint8_t *s, const mpz_t x);
-
+ void
+ nettle_mpz_get_str_256_u_le(size_t length, uint8_t * s, const mpz_t x);
-void
-nettle_mpz_set_str_256_u_le(mpz_t x,
- size_t length, const uint8_t *s);
+ void
+ nettle_mpz_set_str_256_u_le(mpz_t x, size_t length, const uint8_t * s);
-void
-nettle_mpz_init_set_str_256_u_le(mpz_t x,
- size_t length, const uint8_t *s);
+ void
+ nettle_mpz_init_set_str_256_u_le(mpz_t x,
+ size_t length, const uint8_t * s);
-#ifdef __cplusplus
+# ifdef __cplusplus
}
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_BIGNUM_LE_H */
+# endif
+#endif /* GNUTLS_LIB_NETTLE_GOST_BIGNUM_LE_H */
diff --git a/lib/nettle/gost/cmac-kuznyechik.c b/lib/nettle/gost/cmac-kuznyechik.c
index 0fd4af1017..4121400283 100644
--- a/lib/nettle/gost/cmac-kuznyechik.c
+++ b/lib/nettle/gost/cmac-kuznyechik.c
@@ -23,32 +23,32 @@
*/
#if HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#ifndef HAVE_NETTLE_CMAC_KUZNYECHIK_UPDATE
-#include <nettle/cmac.h>
+# include <nettle/cmac.h>
-#include "gost/cmac.h"
+# include "gost/cmac.h"
void
-cmac_kuznyechik_set_key(struct cmac_kuznyechik_ctx *ctx, const uint8_t *key)
+cmac_kuznyechik_set_key(struct cmac_kuznyechik_ctx *ctx, const uint8_t * key)
{
- CMAC128_SET_KEY(ctx, kuznyechik_set_key, kuznyechik_encrypt, key);
+ CMAC128_SET_KEY(ctx, kuznyechik_set_key, kuznyechik_encrypt, key);
}
void
-cmac_kuznyechik_update (struct cmac_kuznyechik_ctx *ctx,
- size_t length, const uint8_t *data)
+cmac_kuznyechik_update(struct cmac_kuznyechik_ctx *ctx,
+ size_t length, const uint8_t * data)
{
- CMAC128_UPDATE (ctx, kuznyechik_encrypt, length, data);
+ CMAC128_UPDATE(ctx, kuznyechik_encrypt, length, data);
}
void
cmac_kuznyechik_digest(struct cmac_kuznyechik_ctx *ctx,
- size_t length, uint8_t *digest)
+ size_t length, uint8_t * digest)
{
- CMAC128_DIGEST(ctx, kuznyechik_encrypt, length, digest);
+ CMAC128_DIGEST(ctx, kuznyechik_encrypt, length, digest);
}
#endif
diff --git a/lib/nettle/gost/cmac-magma.c b/lib/nettle/gost/cmac-magma.c
index 9191967c0e..c11ef81516 100644
--- a/lib/nettle/gost/cmac-magma.c
+++ b/lib/nettle/gost/cmac-magma.c
@@ -23,33 +23,31 @@
*/
#if HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#ifndef HAVE_NETTLE_CMAC_MAGMA_UPDATE
-#include <nettle/cmac.h>
+# include <nettle/cmac.h>
-#include "magma.h"
-#include "cmac.h"
+# include "magma.h"
+# include "cmac.h"
-void
-cmac_magma_set_key(struct cmac_magma_ctx *ctx, const uint8_t *key)
+void cmac_magma_set_key(struct cmac_magma_ctx *ctx, const uint8_t * key)
{
- CMAC64_SET_KEY(ctx, magma_set_key, magma_encrypt, key);
+ CMAC64_SET_KEY(ctx, magma_set_key, magma_encrypt, key);
}
void
-cmac_magma_update (struct cmac_magma_ctx *ctx,
- size_t length, const uint8_t *data)
+cmac_magma_update(struct cmac_magma_ctx *ctx,
+ size_t length, const uint8_t * data)
{
- CMAC64_UPDATE (ctx, magma_encrypt, length, data);
+ CMAC64_UPDATE(ctx, magma_encrypt, length, data);
}
void
-cmac_magma_digest(struct cmac_magma_ctx *ctx,
- size_t length, uint8_t *digest)
+cmac_magma_digest(struct cmac_magma_ctx *ctx, size_t length, uint8_t * digest)
{
- CMAC64_DIGEST(ctx, magma_encrypt, length, digest);
+ CMAC64_DIGEST(ctx, magma_encrypt, length, digest);
}
#endif
diff --git a/lib/nettle/gost/cmac.h b/lib/nettle/gost/cmac.h
index c792770f89..f1e61b8bc3 100644
--- a/lib/nettle/gost/cmac.h
+++ b/lib/nettle/gost/cmac.h
@@ -34,70 +34,66 @@
*/
#ifndef GOST_CMAC_H_INCLUDED
-#define GOST_CMAC_H_INCLUDED
+# define GOST_CMAC_H_INCLUDED
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
+# if HAVE_CONFIG_H
+# include <config.h>
+# endif
-#ifndef HAVE_NETTLE_CMAC_MAGMA_UPDATE
-#include "magma.h"
+# ifndef HAVE_NETTLE_CMAC_MAGMA_UPDATE
+# include "magma.h"
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
-#define cmac_magma_set_key _gnutls_cmac_magma_set_key
-#define cmac_magma_update _gnutls_cmac_magma_update
-#define cmac_magma_digest _gnutls_cmac_magma_digest
+# define cmac_magma_set_key _gnutls_cmac_magma_set_key
+# define cmac_magma_update _gnutls_cmac_magma_update
+# define cmac_magma_digest _gnutls_cmac_magma_digest
-struct cmac_magma_ctx CMAC64_CTX(struct magma_ctx);
+ struct cmac_magma_ctx CMAC64_CTX(struct magma_ctx);
-void
-cmac_magma_set_key(struct cmac_magma_ctx *ctx, const uint8_t *key);
+ void
+ cmac_magma_set_key(struct cmac_magma_ctx *ctx, const uint8_t * key);
-void
-cmac_magma_update(struct cmac_magma_ctx *ctx,
- size_t length, const uint8_t *data);
+ void
+ cmac_magma_update(struct cmac_magma_ctx *ctx,
+ size_t length, const uint8_t * data);
-void
-cmac_magma_digest(struct cmac_magma_ctx *ctx,
- size_t length, uint8_t *digest);
+ void
+ cmac_magma_digest(struct cmac_magma_ctx *ctx,
+ size_t length, uint8_t * digest);
-#ifdef __cplusplus
+# ifdef __cplusplus
}
-#endif
-
-#endif /* HAVE_NETTLE_CMAC_MAGMA_UPDATE */
-
-#ifndef HAVE_NETTLE_CMAC_KUZNYECHIK_UPDATE
-#include "kuznyechik.h"
-
-#ifdef __cplusplus
+# endif
+# endif /* HAVE_NETTLE_CMAC_MAGMA_UPDATE */
+# ifndef HAVE_NETTLE_CMAC_KUZNYECHIK_UPDATE
+# include "kuznyechik.h"
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
-#define cmac_kuznyechik_set_key _gnutls_cmac_kuznyechik_set_key
-#define cmac_kuznyechik_update _gnutls_cmac_kuznyechik_update
-#define cmac_kuznyechik_digest _gnutls_cmac_kuznyechik_digest
+# define cmac_kuznyechik_set_key _gnutls_cmac_kuznyechik_set_key
+# define cmac_kuznyechik_update _gnutls_cmac_kuznyechik_update
+# define cmac_kuznyechik_digest _gnutls_cmac_kuznyechik_digest
-struct cmac_kuznyechik_ctx CMAC128_CTX(struct kuznyechik_ctx);
+ struct cmac_kuznyechik_ctx CMAC128_CTX(struct kuznyechik_ctx);
-void
-cmac_kuznyechik_set_key(struct cmac_kuznyechik_ctx *ctx, const uint8_t *key);
+ void
+ cmac_kuznyechik_set_key(struct cmac_kuznyechik_ctx *ctx,
+ const uint8_t * key);
-void
-cmac_kuznyechik_update(struct cmac_kuznyechik_ctx *ctx,
- size_t length, const uint8_t *data);
+ void
+ cmac_kuznyechik_update(struct cmac_kuznyechik_ctx *ctx,
+ size_t length, const uint8_t * data);
-void
-cmac_kuznyechik_digest(struct cmac_kuznyechik_ctx *ctx,
- size_t length, uint8_t *digest);
+ void
+ cmac_kuznyechik_digest(struct cmac_kuznyechik_ctx *ctx,
+ size_t length, uint8_t * digest);
-#ifdef __cplusplus
+# ifdef __cplusplus
}
-#endif
-
-#endif
-
-#endif /* CMAC_H_INCLUDED */
+# endif
+# endif
+#endif /* CMAC_H_INCLUDED */
diff --git a/lib/nettle/gost/ecc-gost-hash.c b/lib/nettle/gost/ecc-gost-hash.c
index 622556c360..e1aee68e14 100644
--- a/lib/nettle/gost/ecc-gost-hash.c
+++ b/lib/nettle/gost/ecc-gost-hash.c
@@ -51,16 +51,15 @@
*/
void
-gost_hash (const struct ecc_modulo *m,
- mp_limb_t *hp,
- size_t length, const uint8_t *digest)
+gost_hash(const struct ecc_modulo *m,
+ mp_limb_t * hp, size_t length, const uint8_t * digest)
{
- if (length > ((size_t) m->bit_size + 7) / 8)
- length = (m->bit_size + 7) / 8;
+ if (length > ((size_t)m->bit_size + 7) / 8)
+ length = (m->bit_size + 7) / 8;
- mpn_set_base256_le (hp, m->size + 1, digest, length);
+ mpn_set_base256_le(hp, m->size + 1, digest, length);
- if (8 * length > m->bit_size)
- /* We got a few extra bits, at the low end. Discard them. */
- mpn_rshift (hp, hp, m->size + 1, 8*length - m->bit_size);
+ if (8 * length > m->bit_size)
+ /* We got a few extra bits, at the low end. Discard them. */
+ mpn_rshift(hp, hp, m->size + 1, 8 * length - m->bit_size);
}
diff --git a/lib/nettle/gost/gost-point-mul-g.c b/lib/nettle/gost/gost-point-mul-g.c
index fb551c01ab..e0d85cd6e0 100644
--- a/lib/nettle/gost/gost-point-mul-g.c
+++ b/lib/nettle/gost/gost-point-mul-g.c
@@ -41,18 +41,17 @@
#include "ecc/ecc-internal.h"
#include "ecc-gost-curve.h"
-void
-gost_point_mul_g (struct ecc_point *r, const struct ecc_scalar *n)
+void gost_point_mul_g(struct ecc_point *r, const struct ecc_scalar *n)
{
- const struct ecc_curve *ecc = r->ecc;
- mp_limb_t size = ecc->p.size;
- mp_size_t itch = 3*size + ecc->mul_g_itch;
- mp_limb_t *scratch = gmp_alloc_limbs (itch);
+ const struct ecc_curve *ecc = r->ecc;
+ mp_limb_t size = ecc->p.size;
+ mp_size_t itch = 3 * size + ecc->mul_g_itch;
+ mp_limb_t *scratch = gmp_alloc_limbs(itch);
- assert (n->ecc == ecc);
- assert (ecc->h_to_a_itch <= ecc->mul_g_itch);
+ assert(n->ecc == ecc);
+ assert(ecc->h_to_a_itch <= ecc->mul_g_itch);
- ecc->mul_g (ecc, scratch, n->p, scratch + 3*size);
- ecc->h_to_a (ecc, 0, r->p, scratch, scratch + 3*size);
- gmp_free_limbs (scratch, itch);
+ ecc->mul_g(ecc, scratch, n->p, scratch + 3 * size);
+ ecc->h_to_a(ecc, 0, r->p, scratch, scratch + 3 * size);
+ gmp_free_limbs(scratch, itch);
}
diff --git a/lib/nettle/gost/gost-point.c b/lib/nettle/gost/gost-point.c
index b8a760c06f..22eef214f2 100644
--- a/lib/nettle/gost/gost-point.c
+++ b/lib/nettle/gost/gost-point.c
@@ -39,74 +39,68 @@
#include "ecc/ecc-internal.h"
#include "ecc-gost-curve.h"
-int
-gost_point_set (struct ecc_point *p, const mpz_t x, const mpz_t y)
+int gost_point_set(struct ecc_point *p, const mpz_t x, const mpz_t y)
{
- mp_size_t size;
- mpz_t lhs, rhs;
- mpz_t t;
- int res;
-
- size = p->ecc->p.size;
-
- if (mpz_sgn (x) < 0 || mpz_limbs_cmp (x, p->ecc->p.m, size) >= 0
- || mpz_sgn (y) < 0 || mpz_limbs_cmp (y, p->ecc->p.m, size) >= 0)
- return 0;
-
- mpz_init (lhs);
- mpz_init (rhs);
-
- mpz_mul (lhs, y, y);
-
- if (p->ecc->p.bit_size == 255)
- {
- /* ed25519 special case. FIXME: Do in some cleaner way? */
- mpz_t x2;
- mpz_init (x2);
- mpz_mul (x2, x, x);
- mpz_mul (rhs, x2, lhs);
- /* Check that -x^2 + y^2 = 1 - (121665/121666) x^2 y^2
- or 121666 (1 + x^2 - y^2) = 121665 x^2 y^2 */
- mpz_sub (lhs, x2, lhs);
- mpz_add_ui (lhs, lhs, 1);
- mpz_mul_ui (lhs, lhs, 121666);
- mpz_mul_ui (rhs, rhs, 121665);
- mpz_clear (x2);
- }
- else if (p->ecc->p.bit_size == 448)
- {
- /* curve448 special case. FIXME: Do in some cleaner way? */
- mpz_t x2, d;
- mpz_init (x2);
- mpz_init_set_ui (d, 39081);
- mpz_mul (x2, x, x); /* x^2 */
- mpz_mul (d, d, x2); /* 39081 x^2 */
- mpz_set_ui (rhs, 1);
- mpz_submul (rhs, d, lhs); /* 1 - 39081 x^2 y^2 */
- /* Check that x^2 + y^2 = 1 - 39081 x^2 y^2 */
- mpz_add (lhs, x2, lhs); /* x^2 + y^2 */
- mpz_clear (d);
- mpz_clear (x2);
- }
- else
- {
- /* Check that y^2 = x^3 - 3*x + b (mod p) */
- mpz_mul (rhs, x, x);
- mpz_sub_ui (rhs, rhs, 3);
- mpz_mul (rhs, rhs, x);
- mpz_add (rhs, rhs, mpz_roinit_n (t, p->ecc->b, size));
- }
-
- res = mpz_congruent_p (lhs, rhs, mpz_roinit_n (t, p->ecc->p.m, size));
-
- mpz_clear (lhs);
- mpz_clear (rhs);
-
- if (!res)
- return 0;
-
- mpz_limbs_copy (p->p, x, size);
- mpz_limbs_copy (p->p + size, y, size);
-
- return 1;
+ mp_size_t size;
+ mpz_t lhs, rhs;
+ mpz_t t;
+ int res;
+
+ size = p->ecc->p.size;
+
+ if (mpz_sgn(x) < 0 || mpz_limbs_cmp(x, p->ecc->p.m, size) >= 0
+ || mpz_sgn(y) < 0 || mpz_limbs_cmp(y, p->ecc->p.m, size) >= 0)
+ return 0;
+
+ mpz_init(lhs);
+ mpz_init(rhs);
+
+ mpz_mul(lhs, y, y);
+
+ if (p->ecc->p.bit_size == 255) {
+ /* ed25519 special case. FIXME: Do in some cleaner way? */
+ mpz_t x2;
+ mpz_init(x2);
+ mpz_mul(x2, x, x);
+ mpz_mul(rhs, x2, lhs);
+ /* Check that -x^2 + y^2 = 1 - (121665/121666) x^2 y^2
+ or 121666 (1 + x^2 - y^2) = 121665 x^2 y^2 */
+ mpz_sub(lhs, x2, lhs);
+ mpz_add_ui(lhs, lhs, 1);
+ mpz_mul_ui(lhs, lhs, 121666);
+ mpz_mul_ui(rhs, rhs, 121665);
+ mpz_clear(x2);
+ } else if (p->ecc->p.bit_size == 448) {
+ /* curve448 special case. FIXME: Do in some cleaner way? */
+ mpz_t x2, d;
+ mpz_init(x2);
+ mpz_init_set_ui(d, 39081);
+ mpz_mul(x2, x, x); /* x^2 */
+ mpz_mul(d, d, x2); /* 39081 x^2 */
+ mpz_set_ui(rhs, 1);
+ mpz_submul(rhs, d, lhs); /* 1 - 39081 x^2 y^2 */
+ /* Check that x^2 + y^2 = 1 - 39081 x^2 y^2 */
+ mpz_add(lhs, x2, lhs); /* x^2 + y^2 */
+ mpz_clear(d);
+ mpz_clear(x2);
+ } else {
+ /* Check that y^2 = x^3 - 3*x + b (mod p) */
+ mpz_mul(rhs, x, x);
+ mpz_sub_ui(rhs, rhs, 3);
+ mpz_mul(rhs, rhs, x);
+ mpz_add(rhs, rhs, mpz_roinit_n(t, p->ecc->b, size));
+ }
+
+ res = mpz_congruent_p(lhs, rhs, mpz_roinit_n(t, p->ecc->p.m, size));
+
+ mpz_clear(lhs);
+ mpz_clear(rhs);
+
+ if (!res)
+ return 0;
+
+ mpz_limbs_copy(p->p, x, size);
+ mpz_limbs_copy(p->p + size, y, size);
+
+ return 1;
}
diff --git a/lib/nettle/gost/gost-wrap.c b/lib/nettle/gost/gost-wrap.c
index e4a616ed2c..d8a38f6173 100644
--- a/lib/nettle/gost/gost-wrap.c
+++ b/lib/nettle/gost/gost-wrap.c
@@ -24,7 +24,7 @@
*/
#if HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <gnutls_int.h>
@@ -38,9 +38,7 @@
void
gost28147_kdf_cryptopro(const struct gost28147_param *param,
- const uint8_t *in,
- const uint8_t *ukm,
- uint8_t *out)
+ const uint8_t * in, const uint8_t * ukm, uint8_t * out)
{
struct gost28147_ctx ctx;
int i;
@@ -50,7 +48,7 @@ gost28147_kdf_cryptopro(const struct gost28147_param *param,
uint8_t mask;
uint8_t *p;
uint8_t iv[GOST28147_BLOCK_SIZE];
- uint32_t block[2] = {0, 0};
+ uint32_t block[2] = { 0, 0 };
uint32_t t;
for (p = out, mask = 1; mask; mask <<= 1) {
@@ -68,7 +66,7 @@ gost28147_kdf_cryptopro(const struct gost28147_param *param,
gost28147_set_key(&ctx, out);
gost28147_set_param(&ctx, param);
cfb_encrypt(&ctx,
- (nettle_cipher_func*)gost28147_encrypt_for_cfb,
+ (nettle_cipher_func *) gost28147_encrypt_for_cfb,
GOST28147_BLOCK_SIZE, iv,
GOST28147_KEY_SIZE, out, out);
}
@@ -76,11 +74,9 @@ gost28147_kdf_cryptopro(const struct gost28147_param *param,
void
gost28147_key_wrap_cryptopro(const struct gost28147_param *param,
- const uint8_t *kek,
- const uint8_t *ukm, size_t ukm_size,
- const uint8_t *cek,
- uint8_t *enc,
- uint8_t *imit)
+ const uint8_t * kek,
+ const uint8_t * ukm, size_t ukm_size,
+ const uint8_t * cek, uint8_t * enc, uint8_t * imit)
{
uint8_t kd[GOST28147_KEY_SIZE];
struct gost28147_ctx ctx;
@@ -102,11 +98,10 @@ gost28147_key_wrap_cryptopro(const struct gost28147_param *param,
int
gost28147_key_unwrap_cryptopro(const struct gost28147_param *param,
- const uint8_t *kek,
- const uint8_t *ukm, size_t ukm_size,
- const uint8_t *enc,
- const uint8_t *imit,
- uint8_t *cek)
+ const uint8_t * kek,
+ const uint8_t * ukm, size_t ukm_size,
+ const uint8_t * enc,
+ const uint8_t * imit, uint8_t * cek)
{
uint8_t kd[GOST28147_KEY_SIZE];
uint8_t mac[GOST28147_IMIT_DIGEST_SIZE];
diff --git a/lib/nettle/gost/gost28147.c b/lib/nettle/gost/gost28147.c
index 67e820fef7..448d26bf8c 100644
--- a/lib/nettle/gost/gost28147.c
+++ b/lib/nettle/gost/gost28147.c
@@ -29,2155 +29,2147 @@
*/
#if HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#ifndef HAVE_NETTLE_GOST28147_SET_KEY
-#include <gnutls_int.h>
+# include <gnutls_int.h>
-#include <string.h>
+# include <string.h>
-#include <nettle/macros.h>
-#include "nettle-write.h"
-#include "gost28147.h"
-#include <nettle/memxor.h>
+# include <nettle/macros.h>
+# include "nettle-write.h"
+# include "gost28147.h"
+# include <nettle/memxor.h>
/* pre-initialized GOST lookup tables based on rotated S-Box */
-const struct gost28147_param gost28147_param_test_3411 =
-{
- 0,
- {
- /* 0 */
- 0x00072000, 0x00075000, 0x00074800, 0x00071000,
- 0x00076800, 0x00074000, 0x00070000, 0x00077000,
- 0x00073000, 0x00075800, 0x00070800, 0x00076000,
- 0x00073800, 0x00077800, 0x00072800, 0x00071800,
- 0x0005a000, 0x0005d000, 0x0005c800, 0x00059000,
- 0x0005e800, 0x0005c000, 0x00058000, 0x0005f000,
- 0x0005b000, 0x0005d800, 0x00058800, 0x0005e000,
- 0x0005b800, 0x0005f800, 0x0005a800, 0x00059800,
- 0x00022000, 0x00025000, 0x00024800, 0x00021000,
- 0x00026800, 0x00024000, 0x00020000, 0x00027000,
- 0x00023000, 0x00025800, 0x00020800, 0x00026000,
- 0x00023800, 0x00027800, 0x00022800, 0x00021800,
- 0x00062000, 0x00065000, 0x00064800, 0x00061000,
- 0x00066800, 0x00064000, 0x00060000, 0x00067000,
- 0x00063000, 0x00065800, 0x00060800, 0x00066000,
- 0x00063800, 0x00067800, 0x00062800, 0x00061800,
- 0x00032000, 0x00035000, 0x00034800, 0x00031000,
- 0x00036800, 0x00034000, 0x00030000, 0x00037000,
- 0x00033000, 0x00035800, 0x00030800, 0x00036000,
- 0x00033800, 0x00037800, 0x00032800, 0x00031800,
- 0x0006a000, 0x0006d000, 0x0006c800, 0x00069000,
- 0x0006e800, 0x0006c000, 0x00068000, 0x0006f000,
- 0x0006b000, 0x0006d800, 0x00068800, 0x0006e000,
- 0x0006b800, 0x0006f800, 0x0006a800, 0x00069800,
- 0x0007a000, 0x0007d000, 0x0007c800, 0x00079000,
- 0x0007e800, 0x0007c000, 0x00078000, 0x0007f000,
- 0x0007b000, 0x0007d800, 0x00078800, 0x0007e000,
- 0x0007b800, 0x0007f800, 0x0007a800, 0x00079800,
- 0x00052000, 0x00055000, 0x00054800, 0x00051000,
- 0x00056800, 0x00054000, 0x00050000, 0x00057000,
- 0x00053000, 0x00055800, 0x00050800, 0x00056000,
- 0x00053800, 0x00057800, 0x00052800, 0x00051800,
- 0x00012000, 0x00015000, 0x00014800, 0x00011000,
- 0x00016800, 0x00014000, 0x00010000, 0x00017000,
- 0x00013000, 0x00015800, 0x00010800, 0x00016000,
- 0x00013800, 0x00017800, 0x00012800, 0x00011800,
- 0x0001a000, 0x0001d000, 0x0001c800, 0x00019000,
- 0x0001e800, 0x0001c000, 0x00018000, 0x0001f000,
- 0x0001b000, 0x0001d800, 0x00018800, 0x0001e000,
- 0x0001b800, 0x0001f800, 0x0001a800, 0x00019800,
- 0x00042000, 0x00045000, 0x00044800, 0x00041000,
- 0x00046800, 0x00044000, 0x00040000, 0x00047000,
- 0x00043000, 0x00045800, 0x00040800, 0x00046000,
- 0x00043800, 0x00047800, 0x00042800, 0x00041800,
- 0x0000a000, 0x0000d000, 0x0000c800, 0x00009000,
- 0x0000e800, 0x0000c000, 0x00008000, 0x0000f000,
- 0x0000b000, 0x0000d800, 0x00008800, 0x0000e000,
- 0x0000b800, 0x0000f800, 0x0000a800, 0x00009800,
- 0x00002000, 0x00005000, 0x00004800, 0x00001000,
- 0x00006800, 0x00004000, 0x00000000, 0x00007000,
- 0x00003000, 0x00005800, 0x00000800, 0x00006000,
- 0x00003800, 0x00007800, 0x00002800, 0x00001800,
- 0x0003a000, 0x0003d000, 0x0003c800, 0x00039000,
- 0x0003e800, 0x0003c000, 0x00038000, 0x0003f000,
- 0x0003b000, 0x0003d800, 0x00038800, 0x0003e000,
- 0x0003b800, 0x0003f800, 0x0003a800, 0x00039800,
- 0x0002a000, 0x0002d000, 0x0002c800, 0x00029000,
- 0x0002e800, 0x0002c000, 0x00028000, 0x0002f000,
- 0x0002b000, 0x0002d800, 0x00028800, 0x0002e000,
- 0x0002b800, 0x0002f800, 0x0002a800, 0x00029800,
- 0x0004a000, 0x0004d000, 0x0004c800, 0x00049000,
- 0x0004e800, 0x0004c000, 0x00048000, 0x0004f000,
- 0x0004b000, 0x0004d800, 0x00048800, 0x0004e000,
- 0x0004b800, 0x0004f800, 0x0004a800, 0x00049800,
- /* 1 */
- 0x03a80000, 0x03c00000, 0x03880000, 0x03e80000,
- 0x03d00000, 0x03980000, 0x03a00000, 0x03900000,
- 0x03f00000, 0x03f80000, 0x03e00000, 0x03b80000,
- 0x03b00000, 0x03800000, 0x03c80000, 0x03d80000,
- 0x06a80000, 0x06c00000, 0x06880000, 0x06e80000,
- 0x06d00000, 0x06980000, 0x06a00000, 0x06900000,
- 0x06f00000, 0x06f80000, 0x06e00000, 0x06b80000,
- 0x06b00000, 0x06800000, 0x06c80000, 0x06d80000,
- 0x05280000, 0x05400000, 0x05080000, 0x05680000,
- 0x05500000, 0x05180000, 0x05200000, 0x05100000,
- 0x05700000, 0x05780000, 0x05600000, 0x05380000,
- 0x05300000, 0x05000000, 0x05480000, 0x05580000,
- 0x00a80000, 0x00c00000, 0x00880000, 0x00e80000,
- 0x00d00000, 0x00980000, 0x00a00000, 0x00900000,
- 0x00f00000, 0x00f80000, 0x00e00000, 0x00b80000,
- 0x00b00000, 0x00800000, 0x00c80000, 0x00d80000,
- 0x00280000, 0x00400000, 0x00080000, 0x00680000,
- 0x00500000, 0x00180000, 0x00200000, 0x00100000,
- 0x00700000, 0x00780000, 0x00600000, 0x00380000,
- 0x00300000, 0x00000000, 0x00480000, 0x00580000,
- 0x04280000, 0x04400000, 0x04080000, 0x04680000,
- 0x04500000, 0x04180000, 0x04200000, 0x04100000,
- 0x04700000, 0x04780000, 0x04600000, 0x04380000,
- 0x04300000, 0x04000000, 0x04480000, 0x04580000,
- 0x04a80000, 0x04c00000, 0x04880000, 0x04e80000,
- 0x04d00000, 0x04980000, 0x04a00000, 0x04900000,
- 0x04f00000, 0x04f80000, 0x04e00000, 0x04b80000,
- 0x04b00000, 0x04800000, 0x04c80000, 0x04d80000,
- 0x07a80000, 0x07c00000, 0x07880000, 0x07e80000,
- 0x07d00000, 0x07980000, 0x07a00000, 0x07900000,
- 0x07f00000, 0x07f80000, 0x07e00000, 0x07b80000,
- 0x07b00000, 0x07800000, 0x07c80000, 0x07d80000,
- 0x07280000, 0x07400000, 0x07080000, 0x07680000,
- 0x07500000, 0x07180000, 0x07200000, 0x07100000,
- 0x07700000, 0x07780000, 0x07600000, 0x07380000,
- 0x07300000, 0x07000000, 0x07480000, 0x07580000,
- 0x02280000, 0x02400000, 0x02080000, 0x02680000,
- 0x02500000, 0x02180000, 0x02200000, 0x02100000,
- 0x02700000, 0x02780000, 0x02600000, 0x02380000,
- 0x02300000, 0x02000000, 0x02480000, 0x02580000,
- 0x03280000, 0x03400000, 0x03080000, 0x03680000,
- 0x03500000, 0x03180000, 0x03200000, 0x03100000,
- 0x03700000, 0x03780000, 0x03600000, 0x03380000,
- 0x03300000, 0x03000000, 0x03480000, 0x03580000,
- 0x06280000, 0x06400000, 0x06080000, 0x06680000,
- 0x06500000, 0x06180000, 0x06200000, 0x06100000,
- 0x06700000, 0x06780000, 0x06600000, 0x06380000,
- 0x06300000, 0x06000000, 0x06480000, 0x06580000,
- 0x05a80000, 0x05c00000, 0x05880000, 0x05e80000,
- 0x05d00000, 0x05980000, 0x05a00000, 0x05900000,
- 0x05f00000, 0x05f80000, 0x05e00000, 0x05b80000,
- 0x05b00000, 0x05800000, 0x05c80000, 0x05d80000,
- 0x01280000, 0x01400000, 0x01080000, 0x01680000,
- 0x01500000, 0x01180000, 0x01200000, 0x01100000,
- 0x01700000, 0x01780000, 0x01600000, 0x01380000,
- 0x01300000, 0x01000000, 0x01480000, 0x01580000,
- 0x02a80000, 0x02c00000, 0x02880000, 0x02e80000,
- 0x02d00000, 0x02980000, 0x02a00000, 0x02900000,
- 0x02f00000, 0x02f80000, 0x02e00000, 0x02b80000,
- 0x02b00000, 0x02800000, 0x02c80000, 0x02d80000,
- 0x01a80000, 0x01c00000, 0x01880000, 0x01e80000,
- 0x01d00000, 0x01980000, 0x01a00000, 0x01900000,
- 0x01f00000, 0x01f80000, 0x01e00000, 0x01b80000,
- 0x01b00000, 0x01800000, 0x01c80000, 0x01d80000,
- /* 2 */
- 0x30000002, 0x60000002, 0x38000002, 0x08000002,
- 0x28000002, 0x78000002, 0x68000002, 0x40000002,
- 0x20000002, 0x50000002, 0x48000002, 0x70000002,
- 0x00000002, 0x18000002, 0x58000002, 0x10000002,
- 0xb0000005, 0xe0000005, 0xb8000005, 0x88000005,
- 0xa8000005, 0xf8000005, 0xe8000005, 0xc0000005,
- 0xa0000005, 0xd0000005, 0xc8000005, 0xf0000005,
- 0x80000005, 0x98000005, 0xd8000005, 0x90000005,
- 0x30000005, 0x60000005, 0x38000005, 0x08000005,
- 0x28000005, 0x78000005, 0x68000005, 0x40000005,
- 0x20000005, 0x50000005, 0x48000005, 0x70000005,
- 0x00000005, 0x18000005, 0x58000005, 0x10000005,
- 0x30000000, 0x60000000, 0x38000000, 0x08000000,
- 0x28000000, 0x78000000, 0x68000000, 0x40000000,
- 0x20000000, 0x50000000, 0x48000000, 0x70000000,
- 0x00000000, 0x18000000, 0x58000000, 0x10000000,
- 0xb0000003, 0xe0000003, 0xb8000003, 0x88000003,
- 0xa8000003, 0xf8000003, 0xe8000003, 0xc0000003,
- 0xa0000003, 0xd0000003, 0xc8000003, 0xf0000003,
- 0x80000003, 0x98000003, 0xd8000003, 0x90000003,
- 0x30000001, 0x60000001, 0x38000001, 0x08000001,
- 0x28000001, 0x78000001, 0x68000001, 0x40000001,
- 0x20000001, 0x50000001, 0x48000001, 0x70000001,
- 0x00000001, 0x18000001, 0x58000001, 0x10000001,
- 0xb0000000, 0xe0000000, 0xb8000000, 0x88000000,
- 0xa8000000, 0xf8000000, 0xe8000000, 0xc0000000,
- 0xa0000000, 0xd0000000, 0xc8000000, 0xf0000000,
- 0x80000000, 0x98000000, 0xd8000000, 0x90000000,
- 0xb0000006, 0xe0000006, 0xb8000006, 0x88000006,
- 0xa8000006, 0xf8000006, 0xe8000006, 0xc0000006,
- 0xa0000006, 0xd0000006, 0xc8000006, 0xf0000006,
- 0x80000006, 0x98000006, 0xd8000006, 0x90000006,
- 0xb0000001, 0xe0000001, 0xb8000001, 0x88000001,
- 0xa8000001, 0xf8000001, 0xe8000001, 0xc0000001,
- 0xa0000001, 0xd0000001, 0xc8000001, 0xf0000001,
- 0x80000001, 0x98000001, 0xd8000001, 0x90000001,
- 0x30000003, 0x60000003, 0x38000003, 0x08000003,
- 0x28000003, 0x78000003, 0x68000003, 0x40000003,
- 0x20000003, 0x50000003, 0x48000003, 0x70000003,
- 0x00000003, 0x18000003, 0x58000003, 0x10000003,
- 0x30000004, 0x60000004, 0x38000004, 0x08000004,
- 0x28000004, 0x78000004, 0x68000004, 0x40000004,
- 0x20000004, 0x50000004, 0x48000004, 0x70000004,
- 0x00000004, 0x18000004, 0x58000004, 0x10000004,
- 0xb0000002, 0xe0000002, 0xb8000002, 0x88000002,
- 0xa8000002, 0xf8000002, 0xe8000002, 0xc0000002,
- 0xa0000002, 0xd0000002, 0xc8000002, 0xf0000002,
- 0x80000002, 0x98000002, 0xd8000002, 0x90000002,
- 0xb0000004, 0xe0000004, 0xb8000004, 0x88000004,
- 0xa8000004, 0xf8000004, 0xe8000004, 0xc0000004,
- 0xa0000004, 0xd0000004, 0xc8000004, 0xf0000004,
- 0x80000004, 0x98000004, 0xd8000004, 0x90000004,
- 0x30000006, 0x60000006, 0x38000006, 0x08000006,
- 0x28000006, 0x78000006, 0x68000006, 0x40000006,
- 0x20000006, 0x50000006, 0x48000006, 0x70000006,
- 0x00000006, 0x18000006, 0x58000006, 0x10000006,
- 0xb0000007, 0xe0000007, 0xb8000007, 0x88000007,
- 0xa8000007, 0xf8000007, 0xe8000007, 0xc0000007,
- 0xa0000007, 0xd0000007, 0xc8000007, 0xf0000007,
- 0x80000007, 0x98000007, 0xd8000007, 0x90000007,
- 0x30000007, 0x60000007, 0x38000007, 0x08000007,
- 0x28000007, 0x78000007, 0x68000007, 0x40000007,
- 0x20000007, 0x50000007, 0x48000007, 0x70000007,
- 0x00000007, 0x18000007, 0x58000007, 0x10000007,
- /* 3 */
- 0x000000e8, 0x000000d8, 0x000000a0, 0x00000088,
- 0x00000098, 0x000000f8, 0x000000a8, 0x000000c8,
- 0x00000080, 0x000000d0, 0x000000f0, 0x000000b8,
- 0x000000b0, 0x000000c0, 0x00000090, 0x000000e0,
- 0x000007e8, 0x000007d8, 0x000007a0, 0x00000788,
- 0x00000798, 0x000007f8, 0x000007a8, 0x000007c8,
- 0x00000780, 0x000007d0, 0x000007f0, 0x000007b8,
- 0x000007b0, 0x000007c0, 0x00000790, 0x000007e0,
- 0x000006e8, 0x000006d8, 0x000006a0, 0x00000688,
- 0x00000698, 0x000006f8, 0x000006a8, 0x000006c8,
- 0x00000680, 0x000006d0, 0x000006f0, 0x000006b8,
- 0x000006b0, 0x000006c0, 0x00000690, 0x000006e0,
- 0x00000068, 0x00000058, 0x00000020, 0x00000008,
- 0x00000018, 0x00000078, 0x00000028, 0x00000048,
- 0x00000000, 0x00000050, 0x00000070, 0x00000038,
- 0x00000030, 0x00000040, 0x00000010, 0x00000060,
- 0x000002e8, 0x000002d8, 0x000002a0, 0x00000288,
- 0x00000298, 0x000002f8, 0x000002a8, 0x000002c8,
- 0x00000280, 0x000002d0, 0x000002f0, 0x000002b8,
- 0x000002b0, 0x000002c0, 0x00000290, 0x000002e0,
- 0x000003e8, 0x000003d8, 0x000003a0, 0x00000388,
- 0x00000398, 0x000003f8, 0x000003a8, 0x000003c8,
- 0x00000380, 0x000003d0, 0x000003f0, 0x000003b8,
- 0x000003b0, 0x000003c0, 0x00000390, 0x000003e0,
- 0x00000568, 0x00000558, 0x00000520, 0x00000508,
- 0x00000518, 0x00000578, 0x00000528, 0x00000548,
- 0x00000500, 0x00000550, 0x00000570, 0x00000538,
- 0x00000530, 0x00000540, 0x00000510, 0x00000560,
- 0x00000268, 0x00000258, 0x00000220, 0x00000208,
- 0x00000218, 0x00000278, 0x00000228, 0x00000248,
- 0x00000200, 0x00000250, 0x00000270, 0x00000238,
- 0x00000230, 0x00000240, 0x00000210, 0x00000260,
- 0x000004e8, 0x000004d8, 0x000004a0, 0x00000488,
- 0x00000498, 0x000004f8, 0x000004a8, 0x000004c8,
- 0x00000480, 0x000004d0, 0x000004f0, 0x000004b8,
- 0x000004b0, 0x000004c0, 0x00000490, 0x000004e0,
- 0x00000168, 0x00000158, 0x00000120, 0x00000108,
- 0x00000118, 0x00000178, 0x00000128, 0x00000148,
- 0x00000100, 0x00000150, 0x00000170, 0x00000138,
- 0x00000130, 0x00000140, 0x00000110, 0x00000160,
- 0x000001e8, 0x000001d8, 0x000001a0, 0x00000188,
- 0x00000198, 0x000001f8, 0x000001a8, 0x000001c8,
- 0x00000180, 0x000001d0, 0x000001f0, 0x000001b8,
- 0x000001b0, 0x000001c0, 0x00000190, 0x000001e0,
- 0x00000768, 0x00000758, 0x00000720, 0x00000708,
- 0x00000718, 0x00000778, 0x00000728, 0x00000748,
- 0x00000700, 0x00000750, 0x00000770, 0x00000738,
- 0x00000730, 0x00000740, 0x00000710, 0x00000760,
- 0x00000368, 0x00000358, 0x00000320, 0x00000308,
- 0x00000318, 0x00000378, 0x00000328, 0x00000348,
- 0x00000300, 0x00000350, 0x00000370, 0x00000338,
- 0x00000330, 0x00000340, 0x00000310, 0x00000360,
- 0x000005e8, 0x000005d8, 0x000005a0, 0x00000588,
- 0x00000598, 0x000005f8, 0x000005a8, 0x000005c8,
- 0x00000580, 0x000005d0, 0x000005f0, 0x000005b8,
- 0x000005b0, 0x000005c0, 0x00000590, 0x000005e0,
- 0x00000468, 0x00000458, 0x00000420, 0x00000408,
- 0x00000418, 0x00000478, 0x00000428, 0x00000448,
- 0x00000400, 0x00000450, 0x00000470, 0x00000438,
- 0x00000430, 0x00000440, 0x00000410, 0x00000460,
- 0x00000668, 0x00000658, 0x00000620, 0x00000608,
- 0x00000618, 0x00000678, 0x00000628, 0x00000648,
- 0x00000600, 0x00000650, 0x00000670, 0x00000638,
- 0x00000630, 0x00000640, 0x00000610, 0x00000660,
- }
+const struct gost28147_param gost28147_param_test_3411 = {
+ 0,
+ {
+ /* 0 */
+ 0x00072000, 0x00075000, 0x00074800, 0x00071000,
+ 0x00076800, 0x00074000, 0x00070000, 0x00077000,
+ 0x00073000, 0x00075800, 0x00070800, 0x00076000,
+ 0x00073800, 0x00077800, 0x00072800, 0x00071800,
+ 0x0005a000, 0x0005d000, 0x0005c800, 0x00059000,
+ 0x0005e800, 0x0005c000, 0x00058000, 0x0005f000,
+ 0x0005b000, 0x0005d800, 0x00058800, 0x0005e000,
+ 0x0005b800, 0x0005f800, 0x0005a800, 0x00059800,
+ 0x00022000, 0x00025000, 0x00024800, 0x00021000,
+ 0x00026800, 0x00024000, 0x00020000, 0x00027000,
+ 0x00023000, 0x00025800, 0x00020800, 0x00026000,
+ 0x00023800, 0x00027800, 0x00022800, 0x00021800,
+ 0x00062000, 0x00065000, 0x00064800, 0x00061000,
+ 0x00066800, 0x00064000, 0x00060000, 0x00067000,
+ 0x00063000, 0x00065800, 0x00060800, 0x00066000,
+ 0x00063800, 0x00067800, 0x00062800, 0x00061800,
+ 0x00032000, 0x00035000, 0x00034800, 0x00031000,
+ 0x00036800, 0x00034000, 0x00030000, 0x00037000,
+ 0x00033000, 0x00035800, 0x00030800, 0x00036000,
+ 0x00033800, 0x00037800, 0x00032800, 0x00031800,
+ 0x0006a000, 0x0006d000, 0x0006c800, 0x00069000,
+ 0x0006e800, 0x0006c000, 0x00068000, 0x0006f000,
+ 0x0006b000, 0x0006d800, 0x00068800, 0x0006e000,
+ 0x0006b800, 0x0006f800, 0x0006a800, 0x00069800,
+ 0x0007a000, 0x0007d000, 0x0007c800, 0x00079000,
+ 0x0007e800, 0x0007c000, 0x00078000, 0x0007f000,
+ 0x0007b000, 0x0007d800, 0x00078800, 0x0007e000,
+ 0x0007b800, 0x0007f800, 0x0007a800, 0x00079800,
+ 0x00052000, 0x00055000, 0x00054800, 0x00051000,
+ 0x00056800, 0x00054000, 0x00050000, 0x00057000,
+ 0x00053000, 0x00055800, 0x00050800, 0x00056000,
+ 0x00053800, 0x00057800, 0x00052800, 0x00051800,
+ 0x00012000, 0x00015000, 0x00014800, 0x00011000,
+ 0x00016800, 0x00014000, 0x00010000, 0x00017000,
+ 0x00013000, 0x00015800, 0x00010800, 0x00016000,
+ 0x00013800, 0x00017800, 0x00012800, 0x00011800,
+ 0x0001a000, 0x0001d000, 0x0001c800, 0x00019000,
+ 0x0001e800, 0x0001c000, 0x00018000, 0x0001f000,
+ 0x0001b000, 0x0001d800, 0x00018800, 0x0001e000,
+ 0x0001b800, 0x0001f800, 0x0001a800, 0x00019800,
+ 0x00042000, 0x00045000, 0x00044800, 0x00041000,
+ 0x00046800, 0x00044000, 0x00040000, 0x00047000,
+ 0x00043000, 0x00045800, 0x00040800, 0x00046000,
+ 0x00043800, 0x00047800, 0x00042800, 0x00041800,
+ 0x0000a000, 0x0000d000, 0x0000c800, 0x00009000,
+ 0x0000e800, 0x0000c000, 0x00008000, 0x0000f000,
+ 0x0000b000, 0x0000d800, 0x00008800, 0x0000e000,
+ 0x0000b800, 0x0000f800, 0x0000a800, 0x00009800,
+ 0x00002000, 0x00005000, 0x00004800, 0x00001000,
+ 0x00006800, 0x00004000, 0x00000000, 0x00007000,
+ 0x00003000, 0x00005800, 0x00000800, 0x00006000,
+ 0x00003800, 0x00007800, 0x00002800, 0x00001800,
+ 0x0003a000, 0x0003d000, 0x0003c800, 0x00039000,
+ 0x0003e800, 0x0003c000, 0x00038000, 0x0003f000,
+ 0x0003b000, 0x0003d800, 0x00038800, 0x0003e000,
+ 0x0003b800, 0x0003f800, 0x0003a800, 0x00039800,
+ 0x0002a000, 0x0002d000, 0x0002c800, 0x00029000,
+ 0x0002e800, 0x0002c000, 0x00028000, 0x0002f000,
+ 0x0002b000, 0x0002d800, 0x00028800, 0x0002e000,
+ 0x0002b800, 0x0002f800, 0x0002a800, 0x00029800,
+ 0x0004a000, 0x0004d000, 0x0004c800, 0x00049000,
+ 0x0004e800, 0x0004c000, 0x00048000, 0x0004f000,
+ 0x0004b000, 0x0004d800, 0x00048800, 0x0004e000,
+ 0x0004b800, 0x0004f800, 0x0004a800, 0x00049800,
+ /* 1 */
+ 0x03a80000, 0x03c00000, 0x03880000, 0x03e80000,
+ 0x03d00000, 0x03980000, 0x03a00000, 0x03900000,
+ 0x03f00000, 0x03f80000, 0x03e00000, 0x03b80000,
+ 0x03b00000, 0x03800000, 0x03c80000, 0x03d80000,
+ 0x06a80000, 0x06c00000, 0x06880000, 0x06e80000,
+ 0x06d00000, 0x06980000, 0x06a00000, 0x06900000,
+ 0x06f00000, 0x06f80000, 0x06e00000, 0x06b80000,
+ 0x06b00000, 0x06800000, 0x06c80000, 0x06d80000,
+ 0x05280000, 0x05400000, 0x05080000, 0x05680000,
+ 0x05500000, 0x05180000, 0x05200000, 0x05100000,
+ 0x05700000, 0x05780000, 0x05600000, 0x05380000,
+ 0x05300000, 0x05000000, 0x05480000, 0x05580000,
+ 0x00a80000, 0x00c00000, 0x00880000, 0x00e80000,
+ 0x00d00000, 0x00980000, 0x00a00000, 0x00900000,
+ 0x00f00000, 0x00f80000, 0x00e00000, 0x00b80000,
+ 0x00b00000, 0x00800000, 0x00c80000, 0x00d80000,
+ 0x00280000, 0x00400000, 0x00080000, 0x00680000,
+ 0x00500000, 0x00180000, 0x00200000, 0x00100000,
+ 0x00700000, 0x00780000, 0x00600000, 0x00380000,
+ 0x00300000, 0x00000000, 0x00480000, 0x00580000,
+ 0x04280000, 0x04400000, 0x04080000, 0x04680000,
+ 0x04500000, 0x04180000, 0x04200000, 0x04100000,
+ 0x04700000, 0x04780000, 0x04600000, 0x04380000,
+ 0x04300000, 0x04000000, 0x04480000, 0x04580000,
+ 0x04a80000, 0x04c00000, 0x04880000, 0x04e80000,
+ 0x04d00000, 0x04980000, 0x04a00000, 0x04900000,
+ 0x04f00000, 0x04f80000, 0x04e00000, 0x04b80000,
+ 0x04b00000, 0x04800000, 0x04c80000, 0x04d80000,
+ 0x07a80000, 0x07c00000, 0x07880000, 0x07e80000,
+ 0x07d00000, 0x07980000, 0x07a00000, 0x07900000,
+ 0x07f00000, 0x07f80000, 0x07e00000, 0x07b80000,
+ 0x07b00000, 0x07800000, 0x07c80000, 0x07d80000,
+ 0x07280000, 0x07400000, 0x07080000, 0x07680000,
+ 0x07500000, 0x07180000, 0x07200000, 0x07100000,
+ 0x07700000, 0x07780000, 0x07600000, 0x07380000,
+ 0x07300000, 0x07000000, 0x07480000, 0x07580000,
+ 0x02280000, 0x02400000, 0x02080000, 0x02680000,
+ 0x02500000, 0x02180000, 0x02200000, 0x02100000,
+ 0x02700000, 0x02780000, 0x02600000, 0x02380000,
+ 0x02300000, 0x02000000, 0x02480000, 0x02580000,
+ 0x03280000, 0x03400000, 0x03080000, 0x03680000,
+ 0x03500000, 0x03180000, 0x03200000, 0x03100000,
+ 0x03700000, 0x03780000, 0x03600000, 0x03380000,
+ 0x03300000, 0x03000000, 0x03480000, 0x03580000,
+ 0x06280000, 0x06400000, 0x06080000, 0x06680000,
+ 0x06500000, 0x06180000, 0x06200000, 0x06100000,
+ 0x06700000, 0x06780000, 0x06600000, 0x06380000,
+ 0x06300000, 0x06000000, 0x06480000, 0x06580000,
+ 0x05a80000, 0x05c00000, 0x05880000, 0x05e80000,
+ 0x05d00000, 0x05980000, 0x05a00000, 0x05900000,
+ 0x05f00000, 0x05f80000, 0x05e00000, 0x05b80000,
+ 0x05b00000, 0x05800000, 0x05c80000, 0x05d80000,
+ 0x01280000, 0x01400000, 0x01080000, 0x01680000,
+ 0x01500000, 0x01180000, 0x01200000, 0x01100000,
+ 0x01700000, 0x01780000, 0x01600000, 0x01380000,
+ 0x01300000, 0x01000000, 0x01480000, 0x01580000,
+ 0x02a80000, 0x02c00000, 0x02880000, 0x02e80000,
+ 0x02d00000, 0x02980000, 0x02a00000, 0x02900000,
+ 0x02f00000, 0x02f80000, 0x02e00000, 0x02b80000,
+ 0x02b00000, 0x02800000, 0x02c80000, 0x02d80000,
+ 0x01a80000, 0x01c00000, 0x01880000, 0x01e80000,
+ 0x01d00000, 0x01980000, 0x01a00000, 0x01900000,
+ 0x01f00000, 0x01f80000, 0x01e00000, 0x01b80000,
+ 0x01b00000, 0x01800000, 0x01c80000, 0x01d80000,
+ /* 2 */
+ 0x30000002, 0x60000002, 0x38000002, 0x08000002,
+ 0x28000002, 0x78000002, 0x68000002, 0x40000002,
+ 0x20000002, 0x50000002, 0x48000002, 0x70000002,
+ 0x00000002, 0x18000002, 0x58000002, 0x10000002,
+ 0xb0000005, 0xe0000005, 0xb8000005, 0x88000005,
+ 0xa8000005, 0xf8000005, 0xe8000005, 0xc0000005,
+ 0xa0000005, 0xd0000005, 0xc8000005, 0xf0000005,
+ 0x80000005, 0x98000005, 0xd8000005, 0x90000005,
+ 0x30000005, 0x60000005, 0x38000005, 0x08000005,
+ 0x28000005, 0x78000005, 0x68000005, 0x40000005,
+ 0x20000005, 0x50000005, 0x48000005, 0x70000005,
+ 0x00000005, 0x18000005, 0x58000005, 0x10000005,
+ 0x30000000, 0x60000000, 0x38000000, 0x08000000,
+ 0x28000000, 0x78000000, 0x68000000, 0x40000000,
+ 0x20000000, 0x50000000, 0x48000000, 0x70000000,
+ 0x00000000, 0x18000000, 0x58000000, 0x10000000,
+ 0xb0000003, 0xe0000003, 0xb8000003, 0x88000003,
+ 0xa8000003, 0xf8000003, 0xe8000003, 0xc0000003,
+ 0xa0000003, 0xd0000003, 0xc8000003, 0xf0000003,
+ 0x80000003, 0x98000003, 0xd8000003, 0x90000003,
+ 0x30000001, 0x60000001, 0x38000001, 0x08000001,
+ 0x28000001, 0x78000001, 0x68000001, 0x40000001,
+ 0x20000001, 0x50000001, 0x48000001, 0x70000001,
+ 0x00000001, 0x18000001, 0x58000001, 0x10000001,
+ 0xb0000000, 0xe0000000, 0xb8000000, 0x88000000,
+ 0xa8000000, 0xf8000000, 0xe8000000, 0xc0000000,
+ 0xa0000000, 0xd0000000, 0xc8000000, 0xf0000000,
+ 0x80000000, 0x98000000, 0xd8000000, 0x90000000,
+ 0xb0000006, 0xe0000006, 0xb8000006, 0x88000006,
+ 0xa8000006, 0xf8000006, 0xe8000006, 0xc0000006,
+ 0xa0000006, 0xd0000006, 0xc8000006, 0xf0000006,
+ 0x80000006, 0x98000006, 0xd8000006, 0x90000006,
+ 0xb0000001, 0xe0000001, 0xb8000001, 0x88000001,
+ 0xa8000001, 0xf8000001, 0xe8000001, 0xc0000001,
+ 0xa0000001, 0xd0000001, 0xc8000001, 0xf0000001,
+ 0x80000001, 0x98000001, 0xd8000001, 0x90000001,
+ 0x30000003, 0x60000003, 0x38000003, 0x08000003,
+ 0x28000003, 0x78000003, 0x68000003, 0x40000003,
+ 0x20000003, 0x50000003, 0x48000003, 0x70000003,
+ 0x00000003, 0x18000003, 0x58000003, 0x10000003,
+ 0x30000004, 0x60000004, 0x38000004, 0x08000004,
+ 0x28000004, 0x78000004, 0x68000004, 0x40000004,
+ 0x20000004, 0x50000004, 0x48000004, 0x70000004,
+ 0x00000004, 0x18000004, 0x58000004, 0x10000004,
+ 0xb0000002, 0xe0000002, 0xb8000002, 0x88000002,
+ 0xa8000002, 0xf8000002, 0xe8000002, 0xc0000002,
+ 0xa0000002, 0xd0000002, 0xc8000002, 0xf0000002,
+ 0x80000002, 0x98000002, 0xd8000002, 0x90000002,
+ 0xb0000004, 0xe0000004, 0xb8000004, 0x88000004,
+ 0xa8000004, 0xf8000004, 0xe8000004, 0xc0000004,
+ 0xa0000004, 0xd0000004, 0xc8000004, 0xf0000004,
+ 0x80000004, 0x98000004, 0xd8000004, 0x90000004,
+ 0x30000006, 0x60000006, 0x38000006, 0x08000006,
+ 0x28000006, 0x78000006, 0x68000006, 0x40000006,
+ 0x20000006, 0x50000006, 0x48000006, 0x70000006,
+ 0x00000006, 0x18000006, 0x58000006, 0x10000006,
+ 0xb0000007, 0xe0000007, 0xb8000007, 0x88000007,
+ 0xa8000007, 0xf8000007, 0xe8000007, 0xc0000007,
+ 0xa0000007, 0xd0000007, 0xc8000007, 0xf0000007,
+ 0x80000007, 0x98000007, 0xd8000007, 0x90000007,
+ 0x30000007, 0x60000007, 0x38000007, 0x08000007,
+ 0x28000007, 0x78000007, 0x68000007, 0x40000007,
+ 0x20000007, 0x50000007, 0x48000007, 0x70000007,
+ 0x00000007, 0x18000007, 0x58000007, 0x10000007,
+ /* 3 */
+ 0x000000e8, 0x000000d8, 0x000000a0, 0x00000088,
+ 0x00000098, 0x000000f8, 0x000000a8, 0x000000c8,
+ 0x00000080, 0x000000d0, 0x000000f0, 0x000000b8,
+ 0x000000b0, 0x000000c0, 0x00000090, 0x000000e0,
+ 0x000007e8, 0x000007d8, 0x000007a0, 0x00000788,
+ 0x00000798, 0x000007f8, 0x000007a8, 0x000007c8,
+ 0x00000780, 0x000007d0, 0x000007f0, 0x000007b8,
+ 0x000007b0, 0x000007c0, 0x00000790, 0x000007e0,
+ 0x000006e8, 0x000006d8, 0x000006a0, 0x00000688,
+ 0x00000698, 0x000006f8, 0x000006a8, 0x000006c8,
+ 0x00000680, 0x000006d0, 0x000006f0, 0x000006b8,
+ 0x000006b0, 0x000006c0, 0x00000690, 0x000006e0,
+ 0x00000068, 0x00000058, 0x00000020, 0x00000008,
+ 0x00000018, 0x00000078, 0x00000028, 0x00000048,
+ 0x00000000, 0x00000050, 0x00000070, 0x00000038,
+ 0x00000030, 0x00000040, 0x00000010, 0x00000060,
+ 0x000002e8, 0x000002d8, 0x000002a0, 0x00000288,
+ 0x00000298, 0x000002f8, 0x000002a8, 0x000002c8,
+ 0x00000280, 0x000002d0, 0x000002f0, 0x000002b8,
+ 0x000002b0, 0x000002c0, 0x00000290, 0x000002e0,
+ 0x000003e8, 0x000003d8, 0x000003a0, 0x00000388,
+ 0x00000398, 0x000003f8, 0x000003a8, 0x000003c8,
+ 0x00000380, 0x000003d0, 0x000003f0, 0x000003b8,
+ 0x000003b0, 0x000003c0, 0x00000390, 0x000003e0,
+ 0x00000568, 0x00000558, 0x00000520, 0x00000508,
+ 0x00000518, 0x00000578, 0x00000528, 0x00000548,
+ 0x00000500, 0x00000550, 0x00000570, 0x00000538,
+ 0x00000530, 0x00000540, 0x00000510, 0x00000560,
+ 0x00000268, 0x00000258, 0x00000220, 0x00000208,
+ 0x00000218, 0x00000278, 0x00000228, 0x00000248,
+ 0x00000200, 0x00000250, 0x00000270, 0x00000238,
+ 0x00000230, 0x00000240, 0x00000210, 0x00000260,
+ 0x000004e8, 0x000004d8, 0x000004a0, 0x00000488,
+ 0x00000498, 0x000004f8, 0x000004a8, 0x000004c8,
+ 0x00000480, 0x000004d0, 0x000004f0, 0x000004b8,
+ 0x000004b0, 0x000004c0, 0x00000490, 0x000004e0,
+ 0x00000168, 0x00000158, 0x00000120, 0x00000108,
+ 0x00000118, 0x00000178, 0x00000128, 0x00000148,
+ 0x00000100, 0x00000150, 0x00000170, 0x00000138,
+ 0x00000130, 0x00000140, 0x00000110, 0x00000160,
+ 0x000001e8, 0x000001d8, 0x000001a0, 0x00000188,
+ 0x00000198, 0x000001f8, 0x000001a8, 0x000001c8,
+ 0x00000180, 0x000001d0, 0x000001f0, 0x000001b8,
+ 0x000001b0, 0x000001c0, 0x00000190, 0x000001e0,
+ 0x00000768, 0x00000758, 0x00000720, 0x00000708,
+ 0x00000718, 0x00000778, 0x00000728, 0x00000748,
+ 0x00000700, 0x00000750, 0x00000770, 0x00000738,
+ 0x00000730, 0x00000740, 0x00000710, 0x00000760,
+ 0x00000368, 0x00000358, 0x00000320, 0x00000308,
+ 0x00000318, 0x00000378, 0x00000328, 0x00000348,
+ 0x00000300, 0x00000350, 0x00000370, 0x00000338,
+ 0x00000330, 0x00000340, 0x00000310, 0x00000360,
+ 0x000005e8, 0x000005d8, 0x000005a0, 0x00000588,
+ 0x00000598, 0x000005f8, 0x000005a8, 0x000005c8,
+ 0x00000580, 0x000005d0, 0x000005f0, 0x000005b8,
+ 0x000005b0, 0x000005c0, 0x00000590, 0x000005e0,
+ 0x00000468, 0x00000458, 0x00000420, 0x00000408,
+ 0x00000418, 0x00000478, 0x00000428, 0x00000448,
+ 0x00000400, 0x00000450, 0x00000470, 0x00000438,
+ 0x00000430, 0x00000440, 0x00000410, 0x00000460,
+ 0x00000668, 0x00000658, 0x00000620, 0x00000608,
+ 0x00000618, 0x00000678, 0x00000628, 0x00000648,
+ 0x00000600, 0x00000650, 0x00000670, 0x00000638,
+ 0x00000630, 0x00000640, 0x00000610, 0x00000660,
+ }
};
-const struct gost28147_param gost28147_param_CryptoPro_3411 =
-{
- 0,
- {
- /* 0 */
- 0x0002d000, 0x0002a000, 0x0002a800, 0x0002b000,
- 0x0002c000, 0x00028800, 0x00029800, 0x0002b800,
- 0x0002e800, 0x0002e000, 0x0002f000, 0x00028000,
- 0x0002c800, 0x00029000, 0x0002d800, 0x0002f800,
- 0x0007d000, 0x0007a000, 0x0007a800, 0x0007b000,
- 0x0007c000, 0x00078800, 0x00079800, 0x0007b800,
- 0x0007e800, 0x0007e000, 0x0007f000, 0x00078000,
- 0x0007c800, 0x00079000, 0x0007d800, 0x0007f800,
- 0x00025000, 0x00022000, 0x00022800, 0x00023000,
- 0x00024000, 0x00020800, 0x00021800, 0x00023800,
- 0x00026800, 0x00026000, 0x00027000, 0x00020000,
- 0x00024800, 0x00021000, 0x00025800, 0x00027800,
- 0x00005000, 0x00002000, 0x00002800, 0x00003000,
- 0x00004000, 0x00000800, 0x00001800, 0x00003800,
- 0x00006800, 0x00006000, 0x00007000, 0x00000000,
- 0x00004800, 0x00001000, 0x00005800, 0x00007800,
- 0x00015000, 0x00012000, 0x00012800, 0x00013000,
- 0x00014000, 0x00010800, 0x00011800, 0x00013800,
- 0x00016800, 0x00016000, 0x00017000, 0x00010000,
- 0x00014800, 0x00011000, 0x00015800, 0x00017800,
- 0x0006d000, 0x0006a000, 0x0006a800, 0x0006b000,
- 0x0006c000, 0x00068800, 0x00069800, 0x0006b800,
- 0x0006e800, 0x0006e000, 0x0006f000, 0x00068000,
- 0x0006c800, 0x00069000, 0x0006d800, 0x0006f800,
- 0x0005d000, 0x0005a000, 0x0005a800, 0x0005b000,
- 0x0005c000, 0x00058800, 0x00059800, 0x0005b800,
- 0x0005e800, 0x0005e000, 0x0005f000, 0x00058000,
- 0x0005c800, 0x00059000, 0x0005d800, 0x0005f800,
- 0x0004d000, 0x0004a000, 0x0004a800, 0x0004b000,
- 0x0004c000, 0x00048800, 0x00049800, 0x0004b800,
- 0x0004e800, 0x0004e000, 0x0004f000, 0x00048000,
- 0x0004c800, 0x00049000, 0x0004d800, 0x0004f800,
- 0x0000d000, 0x0000a000, 0x0000a800, 0x0000b000,
- 0x0000c000, 0x00008800, 0x00009800, 0x0000b800,
- 0x0000e800, 0x0000e000, 0x0000f000, 0x00008000,
- 0x0000c800, 0x00009000, 0x0000d800, 0x0000f800,
- 0x0003d000, 0x0003a000, 0x0003a800, 0x0003b000,
- 0x0003c000, 0x00038800, 0x00039800, 0x0003b800,
- 0x0003e800, 0x0003e000, 0x0003f000, 0x00038000,
- 0x0003c800, 0x00039000, 0x0003d800, 0x0003f800,
- 0x00035000, 0x00032000, 0x00032800, 0x00033000,
- 0x00034000, 0x00030800, 0x00031800, 0x00033800,
- 0x00036800, 0x00036000, 0x00037000, 0x00030000,
- 0x00034800, 0x00031000, 0x00035800, 0x00037800,
- 0x0001d000, 0x0001a000, 0x0001a800, 0x0001b000,
- 0x0001c000, 0x00018800, 0x00019800, 0x0001b800,
- 0x0001e800, 0x0001e000, 0x0001f000, 0x00018000,
- 0x0001c800, 0x00019000, 0x0001d800, 0x0001f800,
- 0x00065000, 0x00062000, 0x00062800, 0x00063000,
- 0x00064000, 0x00060800, 0x00061800, 0x00063800,
- 0x00066800, 0x00066000, 0x00067000, 0x00060000,
- 0x00064800, 0x00061000, 0x00065800, 0x00067800,
- 0x00075000, 0x00072000, 0x00072800, 0x00073000,
- 0x00074000, 0x00070800, 0x00071800, 0x00073800,
- 0x00076800, 0x00076000, 0x00077000, 0x00070000,
- 0x00074800, 0x00071000, 0x00075800, 0x00077800,
- 0x00055000, 0x00052000, 0x00052800, 0x00053000,
- 0x00054000, 0x00050800, 0x00051800, 0x00053800,
- 0x00056800, 0x00056000, 0x00057000, 0x00050000,
- 0x00054800, 0x00051000, 0x00055800, 0x00057800,
- 0x00045000, 0x00042000, 0x00042800, 0x00043000,
- 0x00044000, 0x00040800, 0x00041800, 0x00043800,
- 0x00046800, 0x00046000, 0x00047000, 0x00040000,
- 0x00044800, 0x00041000, 0x00045800, 0x00047800,
- /* 1 */
- 0x02380000, 0x02780000, 0x02600000, 0x02700000,
- 0x02480000, 0x02200000, 0x02080000, 0x02000000,
- 0x02180000, 0x02580000, 0x02280000, 0x02100000,
- 0x02300000, 0x02500000, 0x02400000, 0x02680000,
- 0x05380000, 0x05780000, 0x05600000, 0x05700000,
- 0x05480000, 0x05200000, 0x05080000, 0x05000000,
- 0x05180000, 0x05580000, 0x05280000, 0x05100000,
- 0x05300000, 0x05500000, 0x05400000, 0x05680000,
- 0x03b80000, 0x03f80000, 0x03e00000, 0x03f00000,
- 0x03c80000, 0x03a00000, 0x03880000, 0x03800000,
- 0x03980000, 0x03d80000, 0x03a80000, 0x03900000,
- 0x03b00000, 0x03d00000, 0x03c00000, 0x03e80000,
- 0x06380000, 0x06780000, 0x06600000, 0x06700000,
- 0x06480000, 0x06200000, 0x06080000, 0x06000000,
- 0x06180000, 0x06580000, 0x06280000, 0x06100000,
- 0x06300000, 0x06500000, 0x06400000, 0x06680000,
- 0x00380000, 0x00780000, 0x00600000, 0x00700000,
- 0x00480000, 0x00200000, 0x00080000, 0x00000000,
- 0x00180000, 0x00580000, 0x00280000, 0x00100000,
- 0x00300000, 0x00500000, 0x00400000, 0x00680000,
- 0x07b80000, 0x07f80000, 0x07e00000, 0x07f00000,
- 0x07c80000, 0x07a00000, 0x07880000, 0x07800000,
- 0x07980000, 0x07d80000, 0x07a80000, 0x07900000,
- 0x07b00000, 0x07d00000, 0x07c00000, 0x07e80000,
- 0x01380000, 0x01780000, 0x01600000, 0x01700000,
- 0x01480000, 0x01200000, 0x01080000, 0x01000000,
- 0x01180000, 0x01580000, 0x01280000, 0x01100000,
- 0x01300000, 0x01500000, 0x01400000, 0x01680000,
- 0x04380000, 0x04780000, 0x04600000, 0x04700000,
- 0x04480000, 0x04200000, 0x04080000, 0x04000000,
- 0x04180000, 0x04580000, 0x04280000, 0x04100000,
- 0x04300000, 0x04500000, 0x04400000, 0x04680000,
- 0x07380000, 0x07780000, 0x07600000, 0x07700000,
- 0x07480000, 0x07200000, 0x07080000, 0x07000000,
- 0x07180000, 0x07580000, 0x07280000, 0x07100000,
- 0x07300000, 0x07500000, 0x07400000, 0x07680000,
- 0x00b80000, 0x00f80000, 0x00e00000, 0x00f00000,
- 0x00c80000, 0x00a00000, 0x00880000, 0x00800000,
- 0x00980000, 0x00d80000, 0x00a80000, 0x00900000,
- 0x00b00000, 0x00d00000, 0x00c00000, 0x00e80000,
- 0x03380000, 0x03780000, 0x03600000, 0x03700000,
- 0x03480000, 0x03200000, 0x03080000, 0x03000000,
- 0x03180000, 0x03580000, 0x03280000, 0x03100000,
- 0x03300000, 0x03500000, 0x03400000, 0x03680000,
- 0x02b80000, 0x02f80000, 0x02e00000, 0x02f00000,
- 0x02c80000, 0x02a00000, 0x02880000, 0x02800000,
- 0x02980000, 0x02d80000, 0x02a80000, 0x02900000,
- 0x02b00000, 0x02d00000, 0x02c00000, 0x02e80000,
- 0x06b80000, 0x06f80000, 0x06e00000, 0x06f00000,
- 0x06c80000, 0x06a00000, 0x06880000, 0x06800000,
- 0x06980000, 0x06d80000, 0x06a80000, 0x06900000,
- 0x06b00000, 0x06d00000, 0x06c00000, 0x06e80000,
- 0x05b80000, 0x05f80000, 0x05e00000, 0x05f00000,
- 0x05c80000, 0x05a00000, 0x05880000, 0x05800000,
- 0x05980000, 0x05d80000, 0x05a80000, 0x05900000,
- 0x05b00000, 0x05d00000, 0x05c00000, 0x05e80000,
- 0x04b80000, 0x04f80000, 0x04e00000, 0x04f00000,
- 0x04c80000, 0x04a00000, 0x04880000, 0x04800000,
- 0x04980000, 0x04d80000, 0x04a80000, 0x04900000,
- 0x04b00000, 0x04d00000, 0x04c00000, 0x04e80000,
- 0x01b80000, 0x01f80000, 0x01e00000, 0x01f00000,
- 0x01c80000, 0x01a00000, 0x01880000, 0x01800000,
- 0x01980000, 0x01d80000, 0x01a80000, 0x01900000,
- 0x01b00000, 0x01d00000, 0x01c00000, 0x01e80000,
- /* 2 */
- 0xb8000003, 0xb0000003, 0xa0000003, 0xd8000003,
- 0xc8000003, 0xe0000003, 0x90000003, 0xd0000003,
- 0x88000003, 0xc0000003, 0x80000003, 0xf0000003,
- 0xf8000003, 0xe8000003, 0x98000003, 0xa8000003,
- 0x38000003, 0x30000003, 0x20000003, 0x58000003,
- 0x48000003, 0x60000003, 0x10000003, 0x50000003,
- 0x08000003, 0x40000003, 0x00000003, 0x70000003,
- 0x78000003, 0x68000003, 0x18000003, 0x28000003,
- 0x38000001, 0x30000001, 0x20000001, 0x58000001,
- 0x48000001, 0x60000001, 0x10000001, 0x50000001,
- 0x08000001, 0x40000001, 0x00000001, 0x70000001,
- 0x78000001, 0x68000001, 0x18000001, 0x28000001,
- 0x38000002, 0x30000002, 0x20000002, 0x58000002,
- 0x48000002, 0x60000002, 0x10000002, 0x50000002,
- 0x08000002, 0x40000002, 0x00000002, 0x70000002,
- 0x78000002, 0x68000002, 0x18000002, 0x28000002,
- 0xb8000006, 0xb0000006, 0xa0000006, 0xd8000006,
- 0xc8000006, 0xe0000006, 0x90000006, 0xd0000006,
- 0x88000006, 0xc0000006, 0x80000006, 0xf0000006,
- 0xf8000006, 0xe8000006, 0x98000006, 0xa8000006,
- 0xb8000004, 0xb0000004, 0xa0000004, 0xd8000004,
- 0xc8000004, 0xe0000004, 0x90000004, 0xd0000004,
- 0x88000004, 0xc0000004, 0x80000004, 0xf0000004,
- 0xf8000004, 0xe8000004, 0x98000004, 0xa8000004,
- 0xb8000007, 0xb0000007, 0xa0000007, 0xd8000007,
- 0xc8000007, 0xe0000007, 0x90000007, 0xd0000007,
- 0x88000007, 0xc0000007, 0x80000007, 0xf0000007,
- 0xf8000007, 0xe8000007, 0x98000007, 0xa8000007,
- 0x38000000, 0x30000000, 0x20000000, 0x58000000,
- 0x48000000, 0x60000000, 0x10000000, 0x50000000,
- 0x08000000, 0x40000000, 0x00000000, 0x70000000,
- 0x78000000, 0x68000000, 0x18000000, 0x28000000,
- 0x38000005, 0x30000005, 0x20000005, 0x58000005,
- 0x48000005, 0x60000005, 0x10000005, 0x50000005,
- 0x08000005, 0x40000005, 0x00000005, 0x70000005,
- 0x78000005, 0x68000005, 0x18000005, 0x28000005,
- 0xb8000000, 0xb0000000, 0xa0000000, 0xd8000000,
- 0xc8000000, 0xe0000000, 0x90000000, 0xd0000000,
- 0x88000000, 0xc0000000, 0x80000000, 0xf0000000,
- 0xf8000000, 0xe8000000, 0x98000000, 0xa8000000,
- 0xb8000002, 0xb0000002, 0xa0000002, 0xd8000002,
- 0xc8000002, 0xe0000002, 0x90000002, 0xd0000002,
- 0x88000002, 0xc0000002, 0x80000002, 0xf0000002,
- 0xf8000002, 0xe8000002, 0x98000002, 0xa8000002,
- 0xb8000005, 0xb0000005, 0xa0000005, 0xd8000005,
- 0xc8000005, 0xe0000005, 0x90000005, 0xd0000005,
- 0x88000005, 0xc0000005, 0x80000005, 0xf0000005,
- 0xf8000005, 0xe8000005, 0x98000005, 0xa8000005,
- 0x38000004, 0x30000004, 0x20000004, 0x58000004,
- 0x48000004, 0x60000004, 0x10000004, 0x50000004,
- 0x08000004, 0x40000004, 0x00000004, 0x70000004,
- 0x78000004, 0x68000004, 0x18000004, 0x28000004,
- 0x38000007, 0x30000007, 0x20000007, 0x58000007,
- 0x48000007, 0x60000007, 0x10000007, 0x50000007,
- 0x08000007, 0x40000007, 0x00000007, 0x70000007,
- 0x78000007, 0x68000007, 0x18000007, 0x28000007,
- 0x38000006, 0x30000006, 0x20000006, 0x58000006,
- 0x48000006, 0x60000006, 0x10000006, 0x50000006,
- 0x08000006, 0x40000006, 0x00000006, 0x70000006,
- 0x78000006, 0x68000006, 0x18000006, 0x28000006,
- 0xb8000001, 0xb0000001, 0xa0000001, 0xd8000001,
- 0xc8000001, 0xe0000001, 0x90000001, 0xd0000001,
- 0x88000001, 0xc0000001, 0x80000001, 0xf0000001,
- 0xf8000001, 0xe8000001, 0x98000001, 0xa8000001,
- /* 3 */
- 0x000000e8, 0x000000f0, 0x000000a0, 0x00000088,
- 0x000000b8, 0x00000080, 0x000000a8, 0x000000d0,
- 0x00000098, 0x000000e0, 0x000000c0, 0x000000f8,
- 0x000000b0, 0x00000090, 0x000000c8, 0x000000d8,
- 0x000001e8, 0x000001f0, 0x000001a0, 0x00000188,
- 0x000001b8, 0x00000180, 0x000001a8, 0x000001d0,
- 0x00000198, 0x000001e0, 0x000001c0, 0x000001f8,
- 0x000001b0, 0x00000190, 0x000001c8, 0x000001d8,
- 0x00000568, 0x00000570, 0x00000520, 0x00000508,
- 0x00000538, 0x00000500, 0x00000528, 0x00000550,
- 0x00000518, 0x00000560, 0x00000540, 0x00000578,
- 0x00000530, 0x00000510, 0x00000548, 0x00000558,
- 0x000004e8, 0x000004f0, 0x000004a0, 0x00000488,
- 0x000004b8, 0x00000480, 0x000004a8, 0x000004d0,
- 0x00000498, 0x000004e0, 0x000004c0, 0x000004f8,
- 0x000004b0, 0x00000490, 0x000004c8, 0x000004d8,
- 0x000002e8, 0x000002f0, 0x000002a0, 0x00000288,
- 0x000002b8, 0x00000280, 0x000002a8, 0x000002d0,
- 0x00000298, 0x000002e0, 0x000002c0, 0x000002f8,
- 0x000002b0, 0x00000290, 0x000002c8, 0x000002d8,
- 0x000005e8, 0x000005f0, 0x000005a0, 0x00000588,
- 0x000005b8, 0x00000580, 0x000005a8, 0x000005d0,
- 0x00000598, 0x000005e0, 0x000005c0, 0x000005f8,
- 0x000005b0, 0x00000590, 0x000005c8, 0x000005d8,
- 0x00000268, 0x00000270, 0x00000220, 0x00000208,
- 0x00000238, 0x00000200, 0x00000228, 0x00000250,
- 0x00000218, 0x00000260, 0x00000240, 0x00000278,
- 0x00000230, 0x00000210, 0x00000248, 0x00000258,
- 0x000007e8, 0x000007f0, 0x000007a0, 0x00000788,
- 0x000007b8, 0x00000780, 0x000007a8, 0x000007d0,
- 0x00000798, 0x000007e0, 0x000007c0, 0x000007f8,
- 0x000007b0, 0x00000790, 0x000007c8, 0x000007d8,
- 0x00000468, 0x00000470, 0x00000420, 0x00000408,
- 0x00000438, 0x00000400, 0x00000428, 0x00000450,
- 0x00000418, 0x00000460, 0x00000440, 0x00000478,
- 0x00000430, 0x00000410, 0x00000448, 0x00000458,
- 0x00000368, 0x00000370, 0x00000320, 0x00000308,
- 0x00000338, 0x00000300, 0x00000328, 0x00000350,
- 0x00000318, 0x00000360, 0x00000340, 0x00000378,
- 0x00000330, 0x00000310, 0x00000348, 0x00000358,
- 0x000003e8, 0x000003f0, 0x000003a0, 0x00000388,
- 0x000003b8, 0x00000380, 0x000003a8, 0x000003d0,
- 0x00000398, 0x000003e0, 0x000003c0, 0x000003f8,
- 0x000003b0, 0x00000390, 0x000003c8, 0x000003d8,
- 0x00000768, 0x00000770, 0x00000720, 0x00000708,
- 0x00000738, 0x00000700, 0x00000728, 0x00000750,
- 0x00000718, 0x00000760, 0x00000740, 0x00000778,
- 0x00000730, 0x00000710, 0x00000748, 0x00000758,
- 0x000006e8, 0x000006f0, 0x000006a0, 0x00000688,
- 0x000006b8, 0x00000680, 0x000006a8, 0x000006d0,
- 0x00000698, 0x000006e0, 0x000006c0, 0x000006f8,
- 0x000006b0, 0x00000690, 0x000006c8, 0x000006d8,
- 0x00000068, 0x00000070, 0x00000020, 0x00000008,
- 0x00000038, 0x00000000, 0x00000028, 0x00000050,
- 0x00000018, 0x00000060, 0x00000040, 0x00000078,
- 0x00000030, 0x00000010, 0x00000048, 0x00000058,
- 0x00000168, 0x00000170, 0x00000120, 0x00000108,
- 0x00000138, 0x00000100, 0x00000128, 0x00000150,
- 0x00000118, 0x00000160, 0x00000140, 0x00000178,
- 0x00000130, 0x00000110, 0x00000148, 0x00000158,
- 0x00000668, 0x00000670, 0x00000620, 0x00000608,
- 0x00000638, 0x00000600, 0x00000628, 0x00000650,
- 0x00000618, 0x00000660, 0x00000640, 0x00000678,
- 0x00000630, 0x00000610, 0x00000648, 0x00000658,
- }
+const struct gost28147_param gost28147_param_CryptoPro_3411 = {
+ 0,
+ {
+ /* 0 */
+ 0x0002d000, 0x0002a000, 0x0002a800, 0x0002b000,
+ 0x0002c000, 0x00028800, 0x00029800, 0x0002b800,
+ 0x0002e800, 0x0002e000, 0x0002f000, 0x00028000,
+ 0x0002c800, 0x00029000, 0x0002d800, 0x0002f800,
+ 0x0007d000, 0x0007a000, 0x0007a800, 0x0007b000,
+ 0x0007c000, 0x00078800, 0x00079800, 0x0007b800,
+ 0x0007e800, 0x0007e000, 0x0007f000, 0x00078000,
+ 0x0007c800, 0x00079000, 0x0007d800, 0x0007f800,
+ 0x00025000, 0x00022000, 0x00022800, 0x00023000,
+ 0x00024000, 0x00020800, 0x00021800, 0x00023800,
+ 0x00026800, 0x00026000, 0x00027000, 0x00020000,
+ 0x00024800, 0x00021000, 0x00025800, 0x00027800,
+ 0x00005000, 0x00002000, 0x00002800, 0x00003000,
+ 0x00004000, 0x00000800, 0x00001800, 0x00003800,
+ 0x00006800, 0x00006000, 0x00007000, 0x00000000,
+ 0x00004800, 0x00001000, 0x00005800, 0x00007800,
+ 0x00015000, 0x00012000, 0x00012800, 0x00013000,
+ 0x00014000, 0x00010800, 0x00011800, 0x00013800,
+ 0x00016800, 0x00016000, 0x00017000, 0x00010000,
+ 0x00014800, 0x00011000, 0x00015800, 0x00017800,
+ 0x0006d000, 0x0006a000, 0x0006a800, 0x0006b000,
+ 0x0006c000, 0x00068800, 0x00069800, 0x0006b800,
+ 0x0006e800, 0x0006e000, 0x0006f000, 0x00068000,
+ 0x0006c800, 0x00069000, 0x0006d800, 0x0006f800,
+ 0x0005d000, 0x0005a000, 0x0005a800, 0x0005b000,
+ 0x0005c000, 0x00058800, 0x00059800, 0x0005b800,
+ 0x0005e800, 0x0005e000, 0x0005f000, 0x00058000,
+ 0x0005c800, 0x00059000, 0x0005d800, 0x0005f800,
+ 0x0004d000, 0x0004a000, 0x0004a800, 0x0004b000,
+ 0x0004c000, 0x00048800, 0x00049800, 0x0004b800,
+ 0x0004e800, 0x0004e000, 0x0004f000, 0x00048000,
+ 0x0004c800, 0x00049000, 0x0004d800, 0x0004f800,
+ 0x0000d000, 0x0000a000, 0x0000a800, 0x0000b000,
+ 0x0000c000, 0x00008800, 0x00009800, 0x0000b800,
+ 0x0000e800, 0x0000e000, 0x0000f000, 0x00008000,
+ 0x0000c800, 0x00009000, 0x0000d800, 0x0000f800,
+ 0x0003d000, 0x0003a000, 0x0003a800, 0x0003b000,
+ 0x0003c000, 0x00038800, 0x00039800, 0x0003b800,
+ 0x0003e800, 0x0003e000, 0x0003f000, 0x00038000,
+ 0x0003c800, 0x00039000, 0x0003d800, 0x0003f800,
+ 0x00035000, 0x00032000, 0x00032800, 0x00033000,
+ 0x00034000, 0x00030800, 0x00031800, 0x00033800,
+ 0x00036800, 0x00036000, 0x00037000, 0x00030000,
+ 0x00034800, 0x00031000, 0x00035800, 0x00037800,
+ 0x0001d000, 0x0001a000, 0x0001a800, 0x0001b000,
+ 0x0001c000, 0x00018800, 0x00019800, 0x0001b800,
+ 0x0001e800, 0x0001e000, 0x0001f000, 0x00018000,
+ 0x0001c800, 0x00019000, 0x0001d800, 0x0001f800,
+ 0x00065000, 0x00062000, 0x00062800, 0x00063000,
+ 0x00064000, 0x00060800, 0x00061800, 0x00063800,
+ 0x00066800, 0x00066000, 0x00067000, 0x00060000,
+ 0x00064800, 0x00061000, 0x00065800, 0x00067800,
+ 0x00075000, 0x00072000, 0x00072800, 0x00073000,
+ 0x00074000, 0x00070800, 0x00071800, 0x00073800,
+ 0x00076800, 0x00076000, 0x00077000, 0x00070000,
+ 0x00074800, 0x00071000, 0x00075800, 0x00077800,
+ 0x00055000, 0x00052000, 0x00052800, 0x00053000,
+ 0x00054000, 0x00050800, 0x00051800, 0x00053800,
+ 0x00056800, 0x00056000, 0x00057000, 0x00050000,
+ 0x00054800, 0x00051000, 0x00055800, 0x00057800,
+ 0x00045000, 0x00042000, 0x00042800, 0x00043000,
+ 0x00044000, 0x00040800, 0x00041800, 0x00043800,
+ 0x00046800, 0x00046000, 0x00047000, 0x00040000,
+ 0x00044800, 0x00041000, 0x00045800, 0x00047800,
+ /* 1 */
+ 0x02380000, 0x02780000, 0x02600000, 0x02700000,
+ 0x02480000, 0x02200000, 0x02080000, 0x02000000,
+ 0x02180000, 0x02580000, 0x02280000, 0x02100000,
+ 0x02300000, 0x02500000, 0x02400000, 0x02680000,
+ 0x05380000, 0x05780000, 0x05600000, 0x05700000,
+ 0x05480000, 0x05200000, 0x05080000, 0x05000000,
+ 0x05180000, 0x05580000, 0x05280000, 0x05100000,
+ 0x05300000, 0x05500000, 0x05400000, 0x05680000,
+ 0x03b80000, 0x03f80000, 0x03e00000, 0x03f00000,
+ 0x03c80000, 0x03a00000, 0x03880000, 0x03800000,
+ 0x03980000, 0x03d80000, 0x03a80000, 0x03900000,
+ 0x03b00000, 0x03d00000, 0x03c00000, 0x03e80000,
+ 0x06380000, 0x06780000, 0x06600000, 0x06700000,
+ 0x06480000, 0x06200000, 0x06080000, 0x06000000,
+ 0x06180000, 0x06580000, 0x06280000, 0x06100000,
+ 0x06300000, 0x06500000, 0x06400000, 0x06680000,
+ 0x00380000, 0x00780000, 0x00600000, 0x00700000,
+ 0x00480000, 0x00200000, 0x00080000, 0x00000000,
+ 0x00180000, 0x00580000, 0x00280000, 0x00100000,
+ 0x00300000, 0x00500000, 0x00400000, 0x00680000,
+ 0x07b80000, 0x07f80000, 0x07e00000, 0x07f00000,
+ 0x07c80000, 0x07a00000, 0x07880000, 0x07800000,
+ 0x07980000, 0x07d80000, 0x07a80000, 0x07900000,
+ 0x07b00000, 0x07d00000, 0x07c00000, 0x07e80000,
+ 0x01380000, 0x01780000, 0x01600000, 0x01700000,
+ 0x01480000, 0x01200000, 0x01080000, 0x01000000,
+ 0x01180000, 0x01580000, 0x01280000, 0x01100000,
+ 0x01300000, 0x01500000, 0x01400000, 0x01680000,
+ 0x04380000, 0x04780000, 0x04600000, 0x04700000,
+ 0x04480000, 0x04200000, 0x04080000, 0x04000000,
+ 0x04180000, 0x04580000, 0x04280000, 0x04100000,
+ 0x04300000, 0x04500000, 0x04400000, 0x04680000,
+ 0x07380000, 0x07780000, 0x07600000, 0x07700000,
+ 0x07480000, 0x07200000, 0x07080000, 0x07000000,
+ 0x07180000, 0x07580000, 0x07280000, 0x07100000,
+ 0x07300000, 0x07500000, 0x07400000, 0x07680000,
+ 0x00b80000, 0x00f80000, 0x00e00000, 0x00f00000,
+ 0x00c80000, 0x00a00000, 0x00880000, 0x00800000,
+ 0x00980000, 0x00d80000, 0x00a80000, 0x00900000,
+ 0x00b00000, 0x00d00000, 0x00c00000, 0x00e80000,
+ 0x03380000, 0x03780000, 0x03600000, 0x03700000,
+ 0x03480000, 0x03200000, 0x03080000, 0x03000000,
+ 0x03180000, 0x03580000, 0x03280000, 0x03100000,
+ 0x03300000, 0x03500000, 0x03400000, 0x03680000,
+ 0x02b80000, 0x02f80000, 0x02e00000, 0x02f00000,
+ 0x02c80000, 0x02a00000, 0x02880000, 0x02800000,
+ 0x02980000, 0x02d80000, 0x02a80000, 0x02900000,
+ 0x02b00000, 0x02d00000, 0x02c00000, 0x02e80000,
+ 0x06b80000, 0x06f80000, 0x06e00000, 0x06f00000,
+ 0x06c80000, 0x06a00000, 0x06880000, 0x06800000,
+ 0x06980000, 0x06d80000, 0x06a80000, 0x06900000,
+ 0x06b00000, 0x06d00000, 0x06c00000, 0x06e80000,
+ 0x05b80000, 0x05f80000, 0x05e00000, 0x05f00000,
+ 0x05c80000, 0x05a00000, 0x05880000, 0x05800000,
+ 0x05980000, 0x05d80000, 0x05a80000, 0x05900000,
+ 0x05b00000, 0x05d00000, 0x05c00000, 0x05e80000,
+ 0x04b80000, 0x04f80000, 0x04e00000, 0x04f00000,
+ 0x04c80000, 0x04a00000, 0x04880000, 0x04800000,
+ 0x04980000, 0x04d80000, 0x04a80000, 0x04900000,
+ 0x04b00000, 0x04d00000, 0x04c00000, 0x04e80000,
+ 0x01b80000, 0x01f80000, 0x01e00000, 0x01f00000,
+ 0x01c80000, 0x01a00000, 0x01880000, 0x01800000,
+ 0x01980000, 0x01d80000, 0x01a80000, 0x01900000,
+ 0x01b00000, 0x01d00000, 0x01c00000, 0x01e80000,
+ /* 2 */
+ 0xb8000003, 0xb0000003, 0xa0000003, 0xd8000003,
+ 0xc8000003, 0xe0000003, 0x90000003, 0xd0000003,
+ 0x88000003, 0xc0000003, 0x80000003, 0xf0000003,
+ 0xf8000003, 0xe8000003, 0x98000003, 0xa8000003,
+ 0x38000003, 0x30000003, 0x20000003, 0x58000003,
+ 0x48000003, 0x60000003, 0x10000003, 0x50000003,
+ 0x08000003, 0x40000003, 0x00000003, 0x70000003,
+ 0x78000003, 0x68000003, 0x18000003, 0x28000003,
+ 0x38000001, 0x30000001, 0x20000001, 0x58000001,
+ 0x48000001, 0x60000001, 0x10000001, 0x50000001,
+ 0x08000001, 0x40000001, 0x00000001, 0x70000001,
+ 0x78000001, 0x68000001, 0x18000001, 0x28000001,
+ 0x38000002, 0x30000002, 0x20000002, 0x58000002,
+ 0x48000002, 0x60000002, 0x10000002, 0x50000002,
+ 0x08000002, 0x40000002, 0x00000002, 0x70000002,
+ 0x78000002, 0x68000002, 0x18000002, 0x28000002,
+ 0xb8000006, 0xb0000006, 0xa0000006, 0xd8000006,
+ 0xc8000006, 0xe0000006, 0x90000006, 0xd0000006,
+ 0x88000006, 0xc0000006, 0x80000006, 0xf0000006,
+ 0xf8000006, 0xe8000006, 0x98000006, 0xa8000006,
+ 0xb8000004, 0xb0000004, 0xa0000004, 0xd8000004,
+ 0xc8000004, 0xe0000004, 0x90000004, 0xd0000004,
+ 0x88000004, 0xc0000004, 0x80000004, 0xf0000004,
+ 0xf8000004, 0xe8000004, 0x98000004, 0xa8000004,
+ 0xb8000007, 0xb0000007, 0xa0000007, 0xd8000007,
+ 0xc8000007, 0xe0000007, 0x90000007, 0xd0000007,
+ 0x88000007, 0xc0000007, 0x80000007, 0xf0000007,
+ 0xf8000007, 0xe8000007, 0x98000007, 0xa8000007,
+ 0x38000000, 0x30000000, 0x20000000, 0x58000000,
+ 0x48000000, 0x60000000, 0x10000000, 0x50000000,
+ 0x08000000, 0x40000000, 0x00000000, 0x70000000,
+ 0x78000000, 0x68000000, 0x18000000, 0x28000000,
+ 0x38000005, 0x30000005, 0x20000005, 0x58000005,
+ 0x48000005, 0x60000005, 0x10000005, 0x50000005,
+ 0x08000005, 0x40000005, 0x00000005, 0x70000005,
+ 0x78000005, 0x68000005, 0x18000005, 0x28000005,
+ 0xb8000000, 0xb0000000, 0xa0000000, 0xd8000000,
+ 0xc8000000, 0xe0000000, 0x90000000, 0xd0000000,
+ 0x88000000, 0xc0000000, 0x80000000, 0xf0000000,
+ 0xf8000000, 0xe8000000, 0x98000000, 0xa8000000,
+ 0xb8000002, 0xb0000002, 0xa0000002, 0xd8000002,
+ 0xc8000002, 0xe0000002, 0x90000002, 0xd0000002,
+ 0x88000002, 0xc0000002, 0x80000002, 0xf0000002,
+ 0xf8000002, 0xe8000002, 0x98000002, 0xa8000002,
+ 0xb8000005, 0xb0000005, 0xa0000005, 0xd8000005,
+ 0xc8000005, 0xe0000005, 0x90000005, 0xd0000005,
+ 0x88000005, 0xc0000005, 0x80000005, 0xf0000005,
+ 0xf8000005, 0xe8000005, 0x98000005, 0xa8000005,
+ 0x38000004, 0x30000004, 0x20000004, 0x58000004,
+ 0x48000004, 0x60000004, 0x10000004, 0x50000004,
+ 0x08000004, 0x40000004, 0x00000004, 0x70000004,
+ 0x78000004, 0x68000004, 0x18000004, 0x28000004,
+ 0x38000007, 0x30000007, 0x20000007, 0x58000007,
+ 0x48000007, 0x60000007, 0x10000007, 0x50000007,
+ 0x08000007, 0x40000007, 0x00000007, 0x70000007,
+ 0x78000007, 0x68000007, 0x18000007, 0x28000007,
+ 0x38000006, 0x30000006, 0x20000006, 0x58000006,
+ 0x48000006, 0x60000006, 0x10000006, 0x50000006,
+ 0x08000006, 0x40000006, 0x00000006, 0x70000006,
+ 0x78000006, 0x68000006, 0x18000006, 0x28000006,
+ 0xb8000001, 0xb0000001, 0xa0000001, 0xd8000001,
+ 0xc8000001, 0xe0000001, 0x90000001, 0xd0000001,
+ 0x88000001, 0xc0000001, 0x80000001, 0xf0000001,
+ 0xf8000001, 0xe8000001, 0x98000001, 0xa8000001,
+ /* 3 */
+ 0x000000e8, 0x000000f0, 0x000000a0, 0x00000088,
+ 0x000000b8, 0x00000080, 0x000000a8, 0x000000d0,
+ 0x00000098, 0x000000e0, 0x000000c0, 0x000000f8,
+ 0x000000b0, 0x00000090, 0x000000c8, 0x000000d8,
+ 0x000001e8, 0x000001f0, 0x000001a0, 0x00000188,
+ 0x000001b8, 0x00000180, 0x000001a8, 0x000001d0,
+ 0x00000198, 0x000001e0, 0x000001c0, 0x000001f8,
+ 0x000001b0, 0x00000190, 0x000001c8, 0x000001d8,
+ 0x00000568, 0x00000570, 0x00000520, 0x00000508,
+ 0x00000538, 0x00000500, 0x00000528, 0x00000550,
+ 0x00000518, 0x00000560, 0x00000540, 0x00000578,
+ 0x00000530, 0x00000510, 0x00000548, 0x00000558,
+ 0x000004e8, 0x000004f0, 0x000004a0, 0x00000488,
+ 0x000004b8, 0x00000480, 0x000004a8, 0x000004d0,
+ 0x00000498, 0x000004e0, 0x000004c0, 0x000004f8,
+ 0x000004b0, 0x00000490, 0x000004c8, 0x000004d8,
+ 0x000002e8, 0x000002f0, 0x000002a0, 0x00000288,
+ 0x000002b8, 0x00000280, 0x000002a8, 0x000002d0,
+ 0x00000298, 0x000002e0, 0x000002c0, 0x000002f8,
+ 0x000002b0, 0x00000290, 0x000002c8, 0x000002d8,
+ 0x000005e8, 0x000005f0, 0x000005a0, 0x00000588,
+ 0x000005b8, 0x00000580, 0x000005a8, 0x000005d0,
+ 0x00000598, 0x000005e0, 0x000005c0, 0x000005f8,
+ 0x000005b0, 0x00000590, 0x000005c8, 0x000005d8,
+ 0x00000268, 0x00000270, 0x00000220, 0x00000208,
+ 0x00000238, 0x00000200, 0x00000228, 0x00000250,
+ 0x00000218, 0x00000260, 0x00000240, 0x00000278,
+ 0x00000230, 0x00000210, 0x00000248, 0x00000258,
+ 0x000007e8, 0x000007f0, 0x000007a0, 0x00000788,
+ 0x000007b8, 0x00000780, 0x000007a8, 0x000007d0,
+ 0x00000798, 0x000007e0, 0x000007c0, 0x000007f8,
+ 0x000007b0, 0x00000790, 0x000007c8, 0x000007d8,
+ 0x00000468, 0x00000470, 0x00000420, 0x00000408,
+ 0x00000438, 0x00000400, 0x00000428, 0x00000450,
+ 0x00000418, 0x00000460, 0x00000440, 0x00000478,
+ 0x00000430, 0x00000410, 0x00000448, 0x00000458,
+ 0x00000368, 0x00000370, 0x00000320, 0x00000308,
+ 0x00000338, 0x00000300, 0x00000328, 0x00000350,
+ 0x00000318, 0x00000360, 0x00000340, 0x00000378,
+ 0x00000330, 0x00000310, 0x00000348, 0x00000358,
+ 0x000003e8, 0x000003f0, 0x000003a0, 0x00000388,
+ 0x000003b8, 0x00000380, 0x000003a8, 0x000003d0,
+ 0x00000398, 0x000003e0, 0x000003c0, 0x000003f8,
+ 0x000003b0, 0x00000390, 0x000003c8, 0x000003d8,
+ 0x00000768, 0x00000770, 0x00000720, 0x00000708,
+ 0x00000738, 0x00000700, 0x00000728, 0x00000750,
+ 0x00000718, 0x00000760, 0x00000740, 0x00000778,
+ 0x00000730, 0x00000710, 0x00000748, 0x00000758,
+ 0x000006e8, 0x000006f0, 0x000006a0, 0x00000688,
+ 0x000006b8, 0x00000680, 0x000006a8, 0x000006d0,
+ 0x00000698, 0x000006e0, 0x000006c0, 0x000006f8,
+ 0x000006b0, 0x00000690, 0x000006c8, 0x000006d8,
+ 0x00000068, 0x00000070, 0x00000020, 0x00000008,
+ 0x00000038, 0x00000000, 0x00000028, 0x00000050,
+ 0x00000018, 0x00000060, 0x00000040, 0x00000078,
+ 0x00000030, 0x00000010, 0x00000048, 0x00000058,
+ 0x00000168, 0x00000170, 0x00000120, 0x00000108,
+ 0x00000138, 0x00000100, 0x00000128, 0x00000150,
+ 0x00000118, 0x00000160, 0x00000140, 0x00000178,
+ 0x00000130, 0x00000110, 0x00000148, 0x00000158,
+ 0x00000668, 0x00000670, 0x00000620, 0x00000608,
+ 0x00000638, 0x00000600, 0x00000628, 0x00000650,
+ 0x00000618, 0x00000660, 0x00000640, 0x00000678,
+ 0x00000630, 0x00000610, 0x00000648, 0x00000658,
+ }
};
-const struct gost28147_param gost28147_param_Test_89 =
-{
- 0,
- {
- /* 0 */
- 0x00062000, 0x00061000, 0x00067800, 0x00062800,
- 0x00064800, 0x00060800, 0x00060000, 0x00064000,
- 0x00067000, 0x00061800, 0x00065800, 0x00066000,
- 0x00066800, 0x00063800, 0x00065000, 0x00063000,
- 0x0004a000, 0x00049000, 0x0004f800, 0x0004a800,
- 0x0004c800, 0x00048800, 0x00048000, 0x0004c000,
- 0x0004f000, 0x00049800, 0x0004d800, 0x0004e000,
- 0x0004e800, 0x0004b800, 0x0004d000, 0x0004b000,
- 0x0007a000, 0x00079000, 0x0007f800, 0x0007a800,
- 0x0007c800, 0x00078800, 0x00078000, 0x0007c000,
- 0x0007f000, 0x00079800, 0x0007d800, 0x0007e000,
- 0x0007e800, 0x0007b800, 0x0007d000, 0x0007b000,
- 0x00072000, 0x00071000, 0x00077800, 0x00072800,
- 0x00074800, 0x00070800, 0x00070000, 0x00074000,
- 0x00077000, 0x00071800, 0x00075800, 0x00076000,
- 0x00076800, 0x00073800, 0x00075000, 0x00073000,
- 0x00042000, 0x00041000, 0x00047800, 0x00042800,
- 0x00044800, 0x00040800, 0x00040000, 0x00044000,
- 0x00047000, 0x00041800, 0x00045800, 0x00046000,
- 0x00046800, 0x00043800, 0x00045000, 0x00043000,
- 0x0000a000, 0x00009000, 0x0000f800, 0x0000a800,
- 0x0000c800, 0x00008800, 0x00008000, 0x0000c000,
- 0x0000f000, 0x00009800, 0x0000d800, 0x0000e000,
- 0x0000e800, 0x0000b800, 0x0000d000, 0x0000b000,
- 0x0001a000, 0x00019000, 0x0001f800, 0x0001a800,
- 0x0001c800, 0x00018800, 0x00018000, 0x0001c000,
- 0x0001f000, 0x00019800, 0x0001d800, 0x0001e000,
- 0x0001e800, 0x0001b800, 0x0001d000, 0x0001b000,
- 0x00052000, 0x00051000, 0x00057800, 0x00052800,
- 0x00054800, 0x00050800, 0x00050000, 0x00054000,
- 0x00057000, 0x00051800, 0x00055800, 0x00056000,
- 0x00056800, 0x00053800, 0x00055000, 0x00053000,
- 0x00012000, 0x00011000, 0x00017800, 0x00012800,
- 0x00014800, 0x00010800, 0x00010000, 0x00014000,
- 0x00017000, 0x00011800, 0x00015800, 0x00016000,
- 0x00016800, 0x00013800, 0x00015000, 0x00013000,
- 0x0003a000, 0x00039000, 0x0003f800, 0x0003a800,
- 0x0003c800, 0x00038800, 0x00038000, 0x0003c000,
- 0x0003f000, 0x00039800, 0x0003d800, 0x0003e000,
- 0x0003e800, 0x0003b800, 0x0003d000, 0x0003b000,
- 0x00022000, 0x00021000, 0x00027800, 0x00022800,
- 0x00024800, 0x00020800, 0x00020000, 0x00024000,
- 0x00027000, 0x00021800, 0x00025800, 0x00026000,
- 0x00026800, 0x00023800, 0x00025000, 0x00023000,
- 0x0006a000, 0x00069000, 0x0006f800, 0x0006a800,
- 0x0006c800, 0x00068800, 0x00068000, 0x0006c000,
- 0x0006f000, 0x00069800, 0x0006d800, 0x0006e000,
- 0x0006e800, 0x0006b800, 0x0006d000, 0x0006b000,
- 0x00032000, 0x00031000, 0x00037800, 0x00032800,
- 0x00034800, 0x00030800, 0x00030000, 0x00034000,
- 0x00037000, 0x00031800, 0x00035800, 0x00036000,
- 0x00036800, 0x00033800, 0x00035000, 0x00033000,
- 0x00002000, 0x00001000, 0x00007800, 0x00002800,
- 0x00004800, 0x00000800, 0x00000000, 0x00004000,
- 0x00007000, 0x00001800, 0x00005800, 0x00006000,
- 0x00006800, 0x00003800, 0x00005000, 0x00003000,
- 0x0005a000, 0x00059000, 0x0005f800, 0x0005a800,
- 0x0005c800, 0x00058800, 0x00058000, 0x0005c000,
- 0x0005f000, 0x00059800, 0x0005d800, 0x0005e000,
- 0x0005e800, 0x0005b800, 0x0005d000, 0x0005b000,
- 0x0002a000, 0x00029000, 0x0002f800, 0x0002a800,
- 0x0002c800, 0x00028800, 0x00028000, 0x0002c000,
- 0x0002f000, 0x00029800, 0x0002d800, 0x0002e000,
- 0x0002e800, 0x0002b800, 0x0002d000, 0x0002b000,
- /* 1 */
- 0x07680000, 0x07400000, 0x07700000, 0x07600000,
- 0x07380000, 0x07180000, 0x07480000, 0x07500000,
- 0x07080000, 0x07280000, 0x07100000, 0x07200000,
- 0x07300000, 0x07780000, 0x07000000, 0x07580000,
- 0x04e80000, 0x04c00000, 0x04f00000, 0x04e00000,
- 0x04b80000, 0x04980000, 0x04c80000, 0x04d00000,
- 0x04880000, 0x04a80000, 0x04900000, 0x04a00000,
- 0x04b00000, 0x04f80000, 0x04800000, 0x04d80000,
- 0x05e80000, 0x05c00000, 0x05f00000, 0x05e00000,
- 0x05b80000, 0x05980000, 0x05c80000, 0x05d00000,
- 0x05880000, 0x05a80000, 0x05900000, 0x05a00000,
- 0x05b00000, 0x05f80000, 0x05800000, 0x05d80000,
- 0x01680000, 0x01400000, 0x01700000, 0x01600000,
- 0x01380000, 0x01180000, 0x01480000, 0x01500000,
- 0x01080000, 0x01280000, 0x01100000, 0x01200000,
- 0x01300000, 0x01780000, 0x01000000, 0x01580000,
- 0x02e80000, 0x02c00000, 0x02f00000, 0x02e00000,
- 0x02b80000, 0x02980000, 0x02c80000, 0x02d00000,
- 0x02880000, 0x02a80000, 0x02900000, 0x02a00000,
- 0x02b00000, 0x02f80000, 0x02800000, 0x02d80000,
- 0x07e80000, 0x07c00000, 0x07f00000, 0x07e00000,
- 0x07b80000, 0x07980000, 0x07c80000, 0x07d00000,
- 0x07880000, 0x07a80000, 0x07900000, 0x07a00000,
- 0x07b00000, 0x07f80000, 0x07800000, 0x07d80000,
- 0x03e80000, 0x03c00000, 0x03f00000, 0x03e00000,
- 0x03b80000, 0x03980000, 0x03c80000, 0x03d00000,
- 0x03880000, 0x03a80000, 0x03900000, 0x03a00000,
- 0x03b00000, 0x03f80000, 0x03800000, 0x03d80000,
- 0x00e80000, 0x00c00000, 0x00f00000, 0x00e00000,
- 0x00b80000, 0x00980000, 0x00c80000, 0x00d00000,
- 0x00880000, 0x00a80000, 0x00900000, 0x00a00000,
- 0x00b00000, 0x00f80000, 0x00800000, 0x00d80000,
- 0x00680000, 0x00400000, 0x00700000, 0x00600000,
- 0x00380000, 0x00180000, 0x00480000, 0x00500000,
- 0x00080000, 0x00280000, 0x00100000, 0x00200000,
- 0x00300000, 0x00780000, 0x00000000, 0x00580000,
- 0x06e80000, 0x06c00000, 0x06f00000, 0x06e00000,
- 0x06b80000, 0x06980000, 0x06c80000, 0x06d00000,
- 0x06880000, 0x06a80000, 0x06900000, 0x06a00000,
- 0x06b00000, 0x06f80000, 0x06800000, 0x06d80000,
- 0x06680000, 0x06400000, 0x06700000, 0x06600000,
- 0x06380000, 0x06180000, 0x06480000, 0x06500000,
- 0x06080000, 0x06280000, 0x06100000, 0x06200000,
- 0x06300000, 0x06780000, 0x06000000, 0x06580000,
- 0x03680000, 0x03400000, 0x03700000, 0x03600000,
- 0x03380000, 0x03180000, 0x03480000, 0x03500000,
- 0x03080000, 0x03280000, 0x03100000, 0x03200000,
- 0x03300000, 0x03780000, 0x03000000, 0x03580000,
- 0x05680000, 0x05400000, 0x05700000, 0x05600000,
- 0x05380000, 0x05180000, 0x05480000, 0x05500000,
- 0x05080000, 0x05280000, 0x05100000, 0x05200000,
- 0x05300000, 0x05780000, 0x05000000, 0x05580000,
- 0x02680000, 0x02400000, 0x02700000, 0x02600000,
- 0x02380000, 0x02180000, 0x02480000, 0x02500000,
- 0x02080000, 0x02280000, 0x02100000, 0x02200000,
- 0x02300000, 0x02780000, 0x02000000, 0x02580000,
- 0x01e80000, 0x01c00000, 0x01f00000, 0x01e00000,
- 0x01b80000, 0x01980000, 0x01c80000, 0x01d00000,
- 0x01880000, 0x01a80000, 0x01900000, 0x01a00000,
- 0x01b00000, 0x01f80000, 0x01800000, 0x01d80000,
- 0x04680000, 0x04400000, 0x04700000, 0x04600000,
- 0x04380000, 0x04180000, 0x04480000, 0x04500000,
- 0x04080000, 0x04280000, 0x04100000, 0x04200000,
- 0x04300000, 0x04780000, 0x04000000, 0x04580000,
- /* 2 */
- 0x18000004, 0x70000004, 0x28000004, 0x48000004,
- 0x30000004, 0x40000004, 0x00000004, 0x68000004,
- 0x50000004, 0x58000004, 0x38000004, 0x60000004,
- 0x10000004, 0x08000004, 0x78000004, 0x20000004,
- 0x98000007, 0xf0000007, 0xa8000007, 0xc8000007,
- 0xb0000007, 0xc0000007, 0x80000007, 0xe8000007,
- 0xd0000007, 0xd8000007, 0xb8000007, 0xe0000007,
- 0x90000007, 0x88000007, 0xf8000007, 0xa0000007,
- 0x18000003, 0x70000003, 0x28000003, 0x48000003,
- 0x30000003, 0x40000003, 0x00000003, 0x68000003,
- 0x50000003, 0x58000003, 0x38000003, 0x60000003,
- 0x10000003, 0x08000003, 0x78000003, 0x20000003,
- 0x98000005, 0xf0000005, 0xa8000005, 0xc8000005,
- 0xb0000005, 0xc0000005, 0x80000005, 0xe8000005,
- 0xd0000005, 0xd8000005, 0xb8000005, 0xe0000005,
- 0x90000005, 0x88000005, 0xf8000005, 0xa0000005,
- 0x98000000, 0xf0000000, 0xa8000000, 0xc8000000,
- 0xb0000000, 0xc0000000, 0x80000000, 0xe8000000,
- 0xd0000000, 0xd8000000, 0xb8000000, 0xe0000000,
- 0x90000000, 0x88000000, 0xf8000000, 0xa0000000,
- 0x98000004, 0xf0000004, 0xa8000004, 0xc8000004,
- 0xb0000004, 0xc0000004, 0x80000004, 0xe8000004,
- 0xd0000004, 0xd8000004, 0xb8000004, 0xe0000004,
- 0x90000004, 0x88000004, 0xf8000004, 0xa0000004,
- 0x18000006, 0x70000006, 0x28000006, 0x48000006,
- 0x30000006, 0x40000006, 0x00000006, 0x68000006,
- 0x50000006, 0x58000006, 0x38000006, 0x60000006,
- 0x10000006, 0x08000006, 0x78000006, 0x20000006,
- 0x98000002, 0xf0000002, 0xa8000002, 0xc8000002,
- 0xb0000002, 0xc0000002, 0x80000002, 0xe8000002,
- 0xd0000002, 0xd8000002, 0xb8000002, 0xe0000002,
- 0x90000002, 0x88000002, 0xf8000002, 0xa0000002,
- 0x98000006, 0xf0000006, 0xa8000006, 0xc8000006,
- 0xb0000006, 0xc0000006, 0x80000006, 0xe8000006,
- 0xd0000006, 0xd8000006, 0xb8000006, 0xe0000006,
- 0x90000006, 0x88000006, 0xf8000006, 0xa0000006,
- 0x98000001, 0xf0000001, 0xa8000001, 0xc8000001,
- 0xb0000001, 0xc0000001, 0x80000001, 0xe8000001,
- 0xd0000001, 0xd8000001, 0xb8000001, 0xe0000001,
- 0x90000001, 0x88000001, 0xf8000001, 0xa0000001,
- 0x98000003, 0xf0000003, 0xa8000003, 0xc8000003,
- 0xb0000003, 0xc0000003, 0x80000003, 0xe8000003,
- 0xd0000003, 0xd8000003, 0xb8000003, 0xe0000003,
- 0x90000003, 0x88000003, 0xf8000003, 0xa0000003,
- 0x18000005, 0x70000005, 0x28000005, 0x48000005,
- 0x30000005, 0x40000005, 0x00000005, 0x68000005,
- 0x50000005, 0x58000005, 0x38000005, 0x60000005,
- 0x10000005, 0x08000005, 0x78000005, 0x20000005,
- 0x18000000, 0x70000000, 0x28000000, 0x48000000,
- 0x30000000, 0x40000000, 0x00000000, 0x68000000,
- 0x50000000, 0x58000000, 0x38000000, 0x60000000,
- 0x10000000, 0x08000000, 0x78000000, 0x20000000,
- 0x18000007, 0x70000007, 0x28000007, 0x48000007,
- 0x30000007, 0x40000007, 0x00000007, 0x68000007,
- 0x50000007, 0x58000007, 0x38000007, 0x60000007,
- 0x10000007, 0x08000007, 0x78000007, 0x20000007,
- 0x18000001, 0x70000001, 0x28000001, 0x48000001,
- 0x30000001, 0x40000001, 0x00000001, 0x68000001,
- 0x50000001, 0x58000001, 0x38000001, 0x60000001,
- 0x10000001, 0x08000001, 0x78000001, 0x20000001,
- 0x18000002, 0x70000002, 0x28000002, 0x48000002,
- 0x30000002, 0x40000002, 0x00000002, 0x68000002,
- 0x50000002, 0x58000002, 0x38000002, 0x60000002,
- 0x10000002, 0x08000002, 0x78000002, 0x20000002,
- /* 3 */
- 0x00000648, 0x00000658, 0x00000660, 0x00000600,
- 0x00000618, 0x00000630, 0x00000638, 0x00000628,
- 0x00000620, 0x00000640, 0x00000670, 0x00000678,
- 0x00000608, 0x00000650, 0x00000610, 0x00000668,
- 0x00000348, 0x00000358, 0x00000360, 0x00000300,
- 0x00000318, 0x00000330, 0x00000338, 0x00000328,
- 0x00000320, 0x00000340, 0x00000370, 0x00000378,
- 0x00000308, 0x00000350, 0x00000310, 0x00000368,
- 0x000002c8, 0x000002d8, 0x000002e0, 0x00000280,
- 0x00000298, 0x000002b0, 0x000002b8, 0x000002a8,
- 0x000002a0, 0x000002c0, 0x000002f0, 0x000002f8,
- 0x00000288, 0x000002d0, 0x00000290, 0x000002e8,
- 0x00000148, 0x00000158, 0x00000160, 0x00000100,
- 0x00000118, 0x00000130, 0x00000138, 0x00000128,
- 0x00000120, 0x00000140, 0x00000170, 0x00000178,
- 0x00000108, 0x00000150, 0x00000110, 0x00000168,
- 0x000005c8, 0x000005d8, 0x000005e0, 0x00000580,
- 0x00000598, 0x000005b0, 0x000005b8, 0x000005a8,
- 0x000005a0, 0x000005c0, 0x000005f0, 0x000005f8,
- 0x00000588, 0x000005d0, 0x00000590, 0x000005e8,
- 0x00000048, 0x00000058, 0x00000060, 0x00000000,
- 0x00000018, 0x00000030, 0x00000038, 0x00000028,
- 0x00000020, 0x00000040, 0x00000070, 0x00000078,
- 0x00000008, 0x00000050, 0x00000010, 0x00000068,
- 0x000004c8, 0x000004d8, 0x000004e0, 0x00000480,
- 0x00000498, 0x000004b0, 0x000004b8, 0x000004a8,
- 0x000004a0, 0x000004c0, 0x000004f0, 0x000004f8,
- 0x00000488, 0x000004d0, 0x00000490, 0x000004e8,
- 0x000006c8, 0x000006d8, 0x000006e0, 0x00000680,
- 0x00000698, 0x000006b0, 0x000006b8, 0x000006a8,
- 0x000006a0, 0x000006c0, 0x000006f0, 0x000006f8,
- 0x00000688, 0x000006d0, 0x00000690, 0x000006e8,
- 0x000001c8, 0x000001d8, 0x000001e0, 0x00000180,
- 0x00000198, 0x000001b0, 0x000001b8, 0x000001a8,
- 0x000001a0, 0x000001c0, 0x000001f0, 0x000001f8,
- 0x00000188, 0x000001d0, 0x00000190, 0x000001e8,
- 0x00000748, 0x00000758, 0x00000760, 0x00000700,
- 0x00000718, 0x00000730, 0x00000738, 0x00000728,
- 0x00000720, 0x00000740, 0x00000770, 0x00000778,
- 0x00000708, 0x00000750, 0x00000710, 0x00000768,
- 0x000003c8, 0x000003d8, 0x000003e0, 0x00000380,
- 0x00000398, 0x000003b0, 0x000003b8, 0x000003a8,
- 0x000003a0, 0x000003c0, 0x000003f0, 0x000003f8,
- 0x00000388, 0x000003d0, 0x00000390, 0x000003e8,
- 0x00000548, 0x00000558, 0x00000560, 0x00000500,
- 0x00000518, 0x00000530, 0x00000538, 0x00000528,
- 0x00000520, 0x00000540, 0x00000570, 0x00000578,
- 0x00000508, 0x00000550, 0x00000510, 0x00000568,
- 0x000007c8, 0x000007d8, 0x000007e0, 0x00000780,
- 0x00000798, 0x000007b0, 0x000007b8, 0x000007a8,
- 0x000007a0, 0x000007c0, 0x000007f0, 0x000007f8,
- 0x00000788, 0x000007d0, 0x00000790, 0x000007e8,
- 0x00000248, 0x00000258, 0x00000260, 0x00000200,
- 0x00000218, 0x00000230, 0x00000238, 0x00000228,
- 0x00000220, 0x00000240, 0x00000270, 0x00000278,
- 0x00000208, 0x00000250, 0x00000210, 0x00000268,
- 0x000000c8, 0x000000d8, 0x000000e0, 0x00000080,
- 0x00000098, 0x000000b0, 0x000000b8, 0x000000a8,
- 0x000000a0, 0x000000c0, 0x000000f0, 0x000000f8,
- 0x00000088, 0x000000d0, 0x00000090, 0x000000e8,
- 0x00000448, 0x00000458, 0x00000460, 0x00000400,
- 0x00000418, 0x00000430, 0x00000438, 0x00000428,
- 0x00000420, 0x00000440, 0x00000470, 0x00000478,
- 0x00000408, 0x00000450, 0x00000410, 0x00000468,
- }
+const struct gost28147_param gost28147_param_Test_89 = {
+ 0,
+ {
+ /* 0 */
+ 0x00062000, 0x00061000, 0x00067800, 0x00062800,
+ 0x00064800, 0x00060800, 0x00060000, 0x00064000,
+ 0x00067000, 0x00061800, 0x00065800, 0x00066000,
+ 0x00066800, 0x00063800, 0x00065000, 0x00063000,
+ 0x0004a000, 0x00049000, 0x0004f800, 0x0004a800,
+ 0x0004c800, 0x00048800, 0x00048000, 0x0004c000,
+ 0x0004f000, 0x00049800, 0x0004d800, 0x0004e000,
+ 0x0004e800, 0x0004b800, 0x0004d000, 0x0004b000,
+ 0x0007a000, 0x00079000, 0x0007f800, 0x0007a800,
+ 0x0007c800, 0x00078800, 0x00078000, 0x0007c000,
+ 0x0007f000, 0x00079800, 0x0007d800, 0x0007e000,
+ 0x0007e800, 0x0007b800, 0x0007d000, 0x0007b000,
+ 0x00072000, 0x00071000, 0x00077800, 0x00072800,
+ 0x00074800, 0x00070800, 0x00070000, 0x00074000,
+ 0x00077000, 0x00071800, 0x00075800, 0x00076000,
+ 0x00076800, 0x00073800, 0x00075000, 0x00073000,
+ 0x00042000, 0x00041000, 0x00047800, 0x00042800,
+ 0x00044800, 0x00040800, 0x00040000, 0x00044000,
+ 0x00047000, 0x00041800, 0x00045800, 0x00046000,
+ 0x00046800, 0x00043800, 0x00045000, 0x00043000,
+ 0x0000a000, 0x00009000, 0x0000f800, 0x0000a800,
+ 0x0000c800, 0x00008800, 0x00008000, 0x0000c000,
+ 0x0000f000, 0x00009800, 0x0000d800, 0x0000e000,
+ 0x0000e800, 0x0000b800, 0x0000d000, 0x0000b000,
+ 0x0001a000, 0x00019000, 0x0001f800, 0x0001a800,
+ 0x0001c800, 0x00018800, 0x00018000, 0x0001c000,
+ 0x0001f000, 0x00019800, 0x0001d800, 0x0001e000,
+ 0x0001e800, 0x0001b800, 0x0001d000, 0x0001b000,
+ 0x00052000, 0x00051000, 0x00057800, 0x00052800,
+ 0x00054800, 0x00050800, 0x00050000, 0x00054000,
+ 0x00057000, 0x00051800, 0x00055800, 0x00056000,
+ 0x00056800, 0x00053800, 0x00055000, 0x00053000,
+ 0x00012000, 0x00011000, 0x00017800, 0x00012800,
+ 0x00014800, 0x00010800, 0x00010000, 0x00014000,
+ 0x00017000, 0x00011800, 0x00015800, 0x00016000,
+ 0x00016800, 0x00013800, 0x00015000, 0x00013000,
+ 0x0003a000, 0x00039000, 0x0003f800, 0x0003a800,
+ 0x0003c800, 0x00038800, 0x00038000, 0x0003c000,
+ 0x0003f000, 0x00039800, 0x0003d800, 0x0003e000,
+ 0x0003e800, 0x0003b800, 0x0003d000, 0x0003b000,
+ 0x00022000, 0x00021000, 0x00027800, 0x00022800,
+ 0x00024800, 0x00020800, 0x00020000, 0x00024000,
+ 0x00027000, 0x00021800, 0x00025800, 0x00026000,
+ 0x00026800, 0x00023800, 0x00025000, 0x00023000,
+ 0x0006a000, 0x00069000, 0x0006f800, 0x0006a800,
+ 0x0006c800, 0x00068800, 0x00068000, 0x0006c000,
+ 0x0006f000, 0x00069800, 0x0006d800, 0x0006e000,
+ 0x0006e800, 0x0006b800, 0x0006d000, 0x0006b000,
+ 0x00032000, 0x00031000, 0x00037800, 0x00032800,
+ 0x00034800, 0x00030800, 0x00030000, 0x00034000,
+ 0x00037000, 0x00031800, 0x00035800, 0x00036000,
+ 0x00036800, 0x00033800, 0x00035000, 0x00033000,
+ 0x00002000, 0x00001000, 0x00007800, 0x00002800,
+ 0x00004800, 0x00000800, 0x00000000, 0x00004000,
+ 0x00007000, 0x00001800, 0x00005800, 0x00006000,
+ 0x00006800, 0x00003800, 0x00005000, 0x00003000,
+ 0x0005a000, 0x00059000, 0x0005f800, 0x0005a800,
+ 0x0005c800, 0x00058800, 0x00058000, 0x0005c000,
+ 0x0005f000, 0x00059800, 0x0005d800, 0x0005e000,
+ 0x0005e800, 0x0005b800, 0x0005d000, 0x0005b000,
+ 0x0002a000, 0x00029000, 0x0002f800, 0x0002a800,
+ 0x0002c800, 0x00028800, 0x00028000, 0x0002c000,
+ 0x0002f000, 0x00029800, 0x0002d800, 0x0002e000,
+ 0x0002e800, 0x0002b800, 0x0002d000, 0x0002b000,
+ /* 1 */
+ 0x07680000, 0x07400000, 0x07700000, 0x07600000,
+ 0x07380000, 0x07180000, 0x07480000, 0x07500000,
+ 0x07080000, 0x07280000, 0x07100000, 0x07200000,
+ 0x07300000, 0x07780000, 0x07000000, 0x07580000,
+ 0x04e80000, 0x04c00000, 0x04f00000, 0x04e00000,
+ 0x04b80000, 0x04980000, 0x04c80000, 0x04d00000,
+ 0x04880000, 0x04a80000, 0x04900000, 0x04a00000,
+ 0x04b00000, 0x04f80000, 0x04800000, 0x04d80000,
+ 0x05e80000, 0x05c00000, 0x05f00000, 0x05e00000,
+ 0x05b80000, 0x05980000, 0x05c80000, 0x05d00000,
+ 0x05880000, 0x05a80000, 0x05900000, 0x05a00000,
+ 0x05b00000, 0x05f80000, 0x05800000, 0x05d80000,
+ 0x01680000, 0x01400000, 0x01700000, 0x01600000,
+ 0x01380000, 0x01180000, 0x01480000, 0x01500000,
+ 0x01080000, 0x01280000, 0x01100000, 0x01200000,
+ 0x01300000, 0x01780000, 0x01000000, 0x01580000,
+ 0x02e80000, 0x02c00000, 0x02f00000, 0x02e00000,
+ 0x02b80000, 0x02980000, 0x02c80000, 0x02d00000,
+ 0x02880000, 0x02a80000, 0x02900000, 0x02a00000,
+ 0x02b00000, 0x02f80000, 0x02800000, 0x02d80000,
+ 0x07e80000, 0x07c00000, 0x07f00000, 0x07e00000,
+ 0x07b80000, 0x07980000, 0x07c80000, 0x07d00000,
+ 0x07880000, 0x07a80000, 0x07900000, 0x07a00000,
+ 0x07b00000, 0x07f80000, 0x07800000, 0x07d80000,
+ 0x03e80000, 0x03c00000, 0x03f00000, 0x03e00000,
+ 0x03b80000, 0x03980000, 0x03c80000, 0x03d00000,
+ 0x03880000, 0x03a80000, 0x03900000, 0x03a00000,
+ 0x03b00000, 0x03f80000, 0x03800000, 0x03d80000,
+ 0x00e80000, 0x00c00000, 0x00f00000, 0x00e00000,
+ 0x00b80000, 0x00980000, 0x00c80000, 0x00d00000,
+ 0x00880000, 0x00a80000, 0x00900000, 0x00a00000,
+ 0x00b00000, 0x00f80000, 0x00800000, 0x00d80000,
+ 0x00680000, 0x00400000, 0x00700000, 0x00600000,
+ 0x00380000, 0x00180000, 0x00480000, 0x00500000,
+ 0x00080000, 0x00280000, 0x00100000, 0x00200000,
+ 0x00300000, 0x00780000, 0x00000000, 0x00580000,
+ 0x06e80000, 0x06c00000, 0x06f00000, 0x06e00000,
+ 0x06b80000, 0x06980000, 0x06c80000, 0x06d00000,
+ 0x06880000, 0x06a80000, 0x06900000, 0x06a00000,
+ 0x06b00000, 0x06f80000, 0x06800000, 0x06d80000,
+ 0x06680000, 0x06400000, 0x06700000, 0x06600000,
+ 0x06380000, 0x06180000, 0x06480000, 0x06500000,
+ 0x06080000, 0x06280000, 0x06100000, 0x06200000,
+ 0x06300000, 0x06780000, 0x06000000, 0x06580000,
+ 0x03680000, 0x03400000, 0x03700000, 0x03600000,
+ 0x03380000, 0x03180000, 0x03480000, 0x03500000,
+ 0x03080000, 0x03280000, 0x03100000, 0x03200000,
+ 0x03300000, 0x03780000, 0x03000000, 0x03580000,
+ 0x05680000, 0x05400000, 0x05700000, 0x05600000,
+ 0x05380000, 0x05180000, 0x05480000, 0x05500000,
+ 0x05080000, 0x05280000, 0x05100000, 0x05200000,
+ 0x05300000, 0x05780000, 0x05000000, 0x05580000,
+ 0x02680000, 0x02400000, 0x02700000, 0x02600000,
+ 0x02380000, 0x02180000, 0x02480000, 0x02500000,
+ 0x02080000, 0x02280000, 0x02100000, 0x02200000,
+ 0x02300000, 0x02780000, 0x02000000, 0x02580000,
+ 0x01e80000, 0x01c00000, 0x01f00000, 0x01e00000,
+ 0x01b80000, 0x01980000, 0x01c80000, 0x01d00000,
+ 0x01880000, 0x01a80000, 0x01900000, 0x01a00000,
+ 0x01b00000, 0x01f80000, 0x01800000, 0x01d80000,
+ 0x04680000, 0x04400000, 0x04700000, 0x04600000,
+ 0x04380000, 0x04180000, 0x04480000, 0x04500000,
+ 0x04080000, 0x04280000, 0x04100000, 0x04200000,
+ 0x04300000, 0x04780000, 0x04000000, 0x04580000,
+ /* 2 */
+ 0x18000004, 0x70000004, 0x28000004, 0x48000004,
+ 0x30000004, 0x40000004, 0x00000004, 0x68000004,
+ 0x50000004, 0x58000004, 0x38000004, 0x60000004,
+ 0x10000004, 0x08000004, 0x78000004, 0x20000004,
+ 0x98000007, 0xf0000007, 0xa8000007, 0xc8000007,
+ 0xb0000007, 0xc0000007, 0x80000007, 0xe8000007,
+ 0xd0000007, 0xd8000007, 0xb8000007, 0xe0000007,
+ 0x90000007, 0x88000007, 0xf8000007, 0xa0000007,
+ 0x18000003, 0x70000003, 0x28000003, 0x48000003,
+ 0x30000003, 0x40000003, 0x00000003, 0x68000003,
+ 0x50000003, 0x58000003, 0x38000003, 0x60000003,
+ 0x10000003, 0x08000003, 0x78000003, 0x20000003,
+ 0x98000005, 0xf0000005, 0xa8000005, 0xc8000005,
+ 0xb0000005, 0xc0000005, 0x80000005, 0xe8000005,
+ 0xd0000005, 0xd8000005, 0xb8000005, 0xe0000005,
+ 0x90000005, 0x88000005, 0xf8000005, 0xa0000005,
+ 0x98000000, 0xf0000000, 0xa8000000, 0xc8000000,
+ 0xb0000000, 0xc0000000, 0x80000000, 0xe8000000,
+ 0xd0000000, 0xd8000000, 0xb8000000, 0xe0000000,
+ 0x90000000, 0x88000000, 0xf8000000, 0xa0000000,
+ 0x98000004, 0xf0000004, 0xa8000004, 0xc8000004,
+ 0xb0000004, 0xc0000004, 0x80000004, 0xe8000004,
+ 0xd0000004, 0xd8000004, 0xb8000004, 0xe0000004,
+ 0x90000004, 0x88000004, 0xf8000004, 0xa0000004,
+ 0x18000006, 0x70000006, 0x28000006, 0x48000006,
+ 0x30000006, 0x40000006, 0x00000006, 0x68000006,
+ 0x50000006, 0x58000006, 0x38000006, 0x60000006,
+ 0x10000006, 0x08000006, 0x78000006, 0x20000006,
+ 0x98000002, 0xf0000002, 0xa8000002, 0xc8000002,
+ 0xb0000002, 0xc0000002, 0x80000002, 0xe8000002,
+ 0xd0000002, 0xd8000002, 0xb8000002, 0xe0000002,
+ 0x90000002, 0x88000002, 0xf8000002, 0xa0000002,
+ 0x98000006, 0xf0000006, 0xa8000006, 0xc8000006,
+ 0xb0000006, 0xc0000006, 0x80000006, 0xe8000006,
+ 0xd0000006, 0xd8000006, 0xb8000006, 0xe0000006,
+ 0x90000006, 0x88000006, 0xf8000006, 0xa0000006,
+ 0x98000001, 0xf0000001, 0xa8000001, 0xc8000001,
+ 0xb0000001, 0xc0000001, 0x80000001, 0xe8000001,
+ 0xd0000001, 0xd8000001, 0xb8000001, 0xe0000001,
+ 0x90000001, 0x88000001, 0xf8000001, 0xa0000001,
+ 0x98000003, 0xf0000003, 0xa8000003, 0xc8000003,
+ 0xb0000003, 0xc0000003, 0x80000003, 0xe8000003,
+ 0xd0000003, 0xd8000003, 0xb8000003, 0xe0000003,
+ 0x90000003, 0x88000003, 0xf8000003, 0xa0000003,
+ 0x18000005, 0x70000005, 0x28000005, 0x48000005,
+ 0x30000005, 0x40000005, 0x00000005, 0x68000005,
+ 0x50000005, 0x58000005, 0x38000005, 0x60000005,
+ 0x10000005, 0x08000005, 0x78000005, 0x20000005,
+ 0x18000000, 0x70000000, 0x28000000, 0x48000000,
+ 0x30000000, 0x40000000, 0x00000000, 0x68000000,
+ 0x50000000, 0x58000000, 0x38000000, 0x60000000,
+ 0x10000000, 0x08000000, 0x78000000, 0x20000000,
+ 0x18000007, 0x70000007, 0x28000007, 0x48000007,
+ 0x30000007, 0x40000007, 0x00000007, 0x68000007,
+ 0x50000007, 0x58000007, 0x38000007, 0x60000007,
+ 0x10000007, 0x08000007, 0x78000007, 0x20000007,
+ 0x18000001, 0x70000001, 0x28000001, 0x48000001,
+ 0x30000001, 0x40000001, 0x00000001, 0x68000001,
+ 0x50000001, 0x58000001, 0x38000001, 0x60000001,
+ 0x10000001, 0x08000001, 0x78000001, 0x20000001,
+ 0x18000002, 0x70000002, 0x28000002, 0x48000002,
+ 0x30000002, 0x40000002, 0x00000002, 0x68000002,
+ 0x50000002, 0x58000002, 0x38000002, 0x60000002,
+ 0x10000002, 0x08000002, 0x78000002, 0x20000002,
+ /* 3 */
+ 0x00000648, 0x00000658, 0x00000660, 0x00000600,
+ 0x00000618, 0x00000630, 0x00000638, 0x00000628,
+ 0x00000620, 0x00000640, 0x00000670, 0x00000678,
+ 0x00000608, 0x00000650, 0x00000610, 0x00000668,
+ 0x00000348, 0x00000358, 0x00000360, 0x00000300,
+ 0x00000318, 0x00000330, 0x00000338, 0x00000328,
+ 0x00000320, 0x00000340, 0x00000370, 0x00000378,
+ 0x00000308, 0x00000350, 0x00000310, 0x00000368,
+ 0x000002c8, 0x000002d8, 0x000002e0, 0x00000280,
+ 0x00000298, 0x000002b0, 0x000002b8, 0x000002a8,
+ 0x000002a0, 0x000002c0, 0x000002f0, 0x000002f8,
+ 0x00000288, 0x000002d0, 0x00000290, 0x000002e8,
+ 0x00000148, 0x00000158, 0x00000160, 0x00000100,
+ 0x00000118, 0x00000130, 0x00000138, 0x00000128,
+ 0x00000120, 0x00000140, 0x00000170, 0x00000178,
+ 0x00000108, 0x00000150, 0x00000110, 0x00000168,
+ 0x000005c8, 0x000005d8, 0x000005e0, 0x00000580,
+ 0x00000598, 0x000005b0, 0x000005b8, 0x000005a8,
+ 0x000005a0, 0x000005c0, 0x000005f0, 0x000005f8,
+ 0x00000588, 0x000005d0, 0x00000590, 0x000005e8,
+ 0x00000048, 0x00000058, 0x00000060, 0x00000000,
+ 0x00000018, 0x00000030, 0x00000038, 0x00000028,
+ 0x00000020, 0x00000040, 0x00000070, 0x00000078,
+ 0x00000008, 0x00000050, 0x00000010, 0x00000068,
+ 0x000004c8, 0x000004d8, 0x000004e0, 0x00000480,
+ 0x00000498, 0x000004b0, 0x000004b8, 0x000004a8,
+ 0x000004a0, 0x000004c0, 0x000004f0, 0x000004f8,
+ 0x00000488, 0x000004d0, 0x00000490, 0x000004e8,
+ 0x000006c8, 0x000006d8, 0x000006e0, 0x00000680,
+ 0x00000698, 0x000006b0, 0x000006b8, 0x000006a8,
+ 0x000006a0, 0x000006c0, 0x000006f0, 0x000006f8,
+ 0x00000688, 0x000006d0, 0x00000690, 0x000006e8,
+ 0x000001c8, 0x000001d8, 0x000001e0, 0x00000180,
+ 0x00000198, 0x000001b0, 0x000001b8, 0x000001a8,
+ 0x000001a0, 0x000001c0, 0x000001f0, 0x000001f8,
+ 0x00000188, 0x000001d0, 0x00000190, 0x000001e8,
+ 0x00000748, 0x00000758, 0x00000760, 0x00000700,
+ 0x00000718, 0x00000730, 0x00000738, 0x00000728,
+ 0x00000720, 0x00000740, 0x00000770, 0x00000778,
+ 0x00000708, 0x00000750, 0x00000710, 0x00000768,
+ 0x000003c8, 0x000003d8, 0x000003e0, 0x00000380,
+ 0x00000398, 0x000003b0, 0x000003b8, 0x000003a8,
+ 0x000003a0, 0x000003c0, 0x000003f0, 0x000003f8,
+ 0x00000388, 0x000003d0, 0x00000390, 0x000003e8,
+ 0x00000548, 0x00000558, 0x00000560, 0x00000500,
+ 0x00000518, 0x00000530, 0x00000538, 0x00000528,
+ 0x00000520, 0x00000540, 0x00000570, 0x00000578,
+ 0x00000508, 0x00000550, 0x00000510, 0x00000568,
+ 0x000007c8, 0x000007d8, 0x000007e0, 0x00000780,
+ 0x00000798, 0x000007b0, 0x000007b8, 0x000007a8,
+ 0x000007a0, 0x000007c0, 0x000007f0, 0x000007f8,
+ 0x00000788, 0x000007d0, 0x00000790, 0x000007e8,
+ 0x00000248, 0x00000258, 0x00000260, 0x00000200,
+ 0x00000218, 0x00000230, 0x00000238, 0x00000228,
+ 0x00000220, 0x00000240, 0x00000270, 0x00000278,
+ 0x00000208, 0x00000250, 0x00000210, 0x00000268,
+ 0x000000c8, 0x000000d8, 0x000000e0, 0x00000080,
+ 0x00000098, 0x000000b0, 0x000000b8, 0x000000a8,
+ 0x000000a0, 0x000000c0, 0x000000f0, 0x000000f8,
+ 0x00000088, 0x000000d0, 0x00000090, 0x000000e8,
+ 0x00000448, 0x00000458, 0x00000460, 0x00000400,
+ 0x00000418, 0x00000430, 0x00000438, 0x00000428,
+ 0x00000420, 0x00000440, 0x00000470, 0x00000478,
+ 0x00000408, 0x00000450, 0x00000410, 0x00000468,
+ }
};
-const struct gost28147_param gost28147_param_CryptoPro_A =
-{
- 1,
- {
- /* 0 */
- 0x0001c800, 0x0001b000, 0x00019800, 0x00019000,
- 0x0001c000, 0x0001d800, 0x00018800, 0x0001b800,
- 0x0001d000, 0x0001a000, 0x0001f000, 0x0001f800,
- 0x0001e000, 0x00018000, 0x0001e800, 0x0001a800,
- 0x0003c800, 0x0003b000, 0x00039800, 0x00039000,
- 0x0003c000, 0x0003d800, 0x00038800, 0x0003b800,
- 0x0003d000, 0x0003a000, 0x0003f000, 0x0003f800,
- 0x0003e000, 0x00038000, 0x0003e800, 0x0003a800,
- 0x00074800, 0x00073000, 0x00071800, 0x00071000,
- 0x00074000, 0x00075800, 0x00070800, 0x00073800,
- 0x00075000, 0x00072000, 0x00077000, 0x00077800,
- 0x00076000, 0x00070000, 0x00076800, 0x00072800,
- 0x0004c800, 0x0004b000, 0x00049800, 0x00049000,
- 0x0004c000, 0x0004d800, 0x00048800, 0x0004b800,
- 0x0004d000, 0x0004a000, 0x0004f000, 0x0004f800,
- 0x0004e000, 0x00048000, 0x0004e800, 0x0004a800,
- 0x00044800, 0x00043000, 0x00041800, 0x00041000,
- 0x00044000, 0x00045800, 0x00040800, 0x00043800,
- 0x00045000, 0x00042000, 0x00047000, 0x00047800,
- 0x00046000, 0x00040000, 0x00046800, 0x00042800,
- 0x00054800, 0x00053000, 0x00051800, 0x00051000,
- 0x00054000, 0x00055800, 0x00050800, 0x00053800,
- 0x00055000, 0x00052000, 0x00057000, 0x00057800,
- 0x00056000, 0x00050000, 0x00056800, 0x00052800,
- 0x0007c800, 0x0007b000, 0x00079800, 0x00079000,
- 0x0007c000, 0x0007d800, 0x00078800, 0x0007b800,
- 0x0007d000, 0x0007a000, 0x0007f000, 0x0007f800,
- 0x0007e000, 0x00078000, 0x0007e800, 0x0007a800,
- 0x00004800, 0x00003000, 0x00001800, 0x00001000,
- 0x00004000, 0x00005800, 0x00000800, 0x00003800,
- 0x00005000, 0x00002000, 0x00007000, 0x00007800,
- 0x00006000, 0x00000000, 0x00006800, 0x00002800,
- 0x0002c800, 0x0002b000, 0x00029800, 0x00029000,
- 0x0002c000, 0x0002d800, 0x00028800, 0x0002b800,
- 0x0002d000, 0x0002a000, 0x0002f000, 0x0002f800,
- 0x0002e000, 0x00028000, 0x0002e800, 0x0002a800,
- 0x00014800, 0x00013000, 0x00011800, 0x00011000,
- 0x00014000, 0x00015800, 0x00010800, 0x00013800,
- 0x00015000, 0x00012000, 0x00017000, 0x00017800,
- 0x00016000, 0x00010000, 0x00016800, 0x00012800,
- 0x00034800, 0x00033000, 0x00031800, 0x00031000,
- 0x00034000, 0x00035800, 0x00030800, 0x00033800,
- 0x00035000, 0x00032000, 0x00037000, 0x00037800,
- 0x00036000, 0x00030000, 0x00036800, 0x00032800,
- 0x00064800, 0x00063000, 0x00061800, 0x00061000,
- 0x00064000, 0x00065800, 0x00060800, 0x00063800,
- 0x00065000, 0x00062000, 0x00067000, 0x00067800,
- 0x00066000, 0x00060000, 0x00066800, 0x00062800,
- 0x0005c800, 0x0005b000, 0x00059800, 0x00059000,
- 0x0005c000, 0x0005d800, 0x00058800, 0x0005b800,
- 0x0005d000, 0x0005a000, 0x0005f000, 0x0005f800,
- 0x0005e000, 0x00058000, 0x0005e800, 0x0005a800,
- 0x00024800, 0x00023000, 0x00021800, 0x00021000,
- 0x00024000, 0x00025800, 0x00020800, 0x00023800,
- 0x00025000, 0x00022000, 0x00027000, 0x00027800,
- 0x00026000, 0x00020000, 0x00026800, 0x00022800,
- 0x0006c800, 0x0006b000, 0x00069800, 0x00069000,
- 0x0006c000, 0x0006d800, 0x00068800, 0x0006b800,
- 0x0006d000, 0x0006a000, 0x0006f000, 0x0006f800,
- 0x0006e000, 0x00068000, 0x0006e800, 0x0006a800,
- 0x0000c800, 0x0000b000, 0x00009800, 0x00009000,
- 0x0000c000, 0x0000d800, 0x00008800, 0x0000b800,
- 0x0000d000, 0x0000a000, 0x0000f000, 0x0000f800,
- 0x0000e000, 0x00008000, 0x0000e800, 0x0000a800,
- /* 1 */
- 0x07700000, 0x07200000, 0x07300000, 0x07100000,
- 0x07580000, 0x07180000, 0x07680000, 0x07400000,
- 0x07600000, 0x07780000, 0x07280000, 0x07500000,
- 0x07000000, 0x07380000, 0x07080000, 0x07480000,
- 0x03f00000, 0x03a00000, 0x03b00000, 0x03900000,
- 0x03d80000, 0x03980000, 0x03e80000, 0x03c00000,
- 0x03e00000, 0x03f80000, 0x03a80000, 0x03d00000,
- 0x03800000, 0x03b80000, 0x03880000, 0x03c80000,
- 0x05700000, 0x05200000, 0x05300000, 0x05100000,
- 0x05580000, 0x05180000, 0x05680000, 0x05400000,
- 0x05600000, 0x05780000, 0x05280000, 0x05500000,
- 0x05000000, 0x05380000, 0x05080000, 0x05480000,
- 0x06700000, 0x06200000, 0x06300000, 0x06100000,
- 0x06580000, 0x06180000, 0x06680000, 0x06400000,
- 0x06600000, 0x06780000, 0x06280000, 0x06500000,
- 0x06000000, 0x06380000, 0x06080000, 0x06480000,
- 0x06f00000, 0x06a00000, 0x06b00000, 0x06900000,
- 0x06d80000, 0x06980000, 0x06e80000, 0x06c00000,
- 0x06e00000, 0x06f80000, 0x06a80000, 0x06d00000,
- 0x06800000, 0x06b80000, 0x06880000, 0x06c80000,
- 0x00f00000, 0x00a00000, 0x00b00000, 0x00900000,
- 0x00d80000, 0x00980000, 0x00e80000, 0x00c00000,
- 0x00e00000, 0x00f80000, 0x00a80000, 0x00d00000,
- 0x00800000, 0x00b80000, 0x00880000, 0x00c80000,
- 0x01f00000, 0x01a00000, 0x01b00000, 0x01900000,
- 0x01d80000, 0x01980000, 0x01e80000, 0x01c00000,
- 0x01e00000, 0x01f80000, 0x01a80000, 0x01d00000,
- 0x01800000, 0x01b80000, 0x01880000, 0x01c80000,
- 0x04f00000, 0x04a00000, 0x04b00000, 0x04900000,
- 0x04d80000, 0x04980000, 0x04e80000, 0x04c00000,
- 0x04e00000, 0x04f80000, 0x04a80000, 0x04d00000,
- 0x04800000, 0x04b80000, 0x04880000, 0x04c80000,
- 0x00700000, 0x00200000, 0x00300000, 0x00100000,
- 0x00580000, 0x00180000, 0x00680000, 0x00400000,
- 0x00600000, 0x00780000, 0x00280000, 0x00500000,
- 0x00000000, 0x00380000, 0x00080000, 0x00480000,
- 0x01700000, 0x01200000, 0x01300000, 0x01100000,
- 0x01580000, 0x01180000, 0x01680000, 0x01400000,
- 0x01600000, 0x01780000, 0x01280000, 0x01500000,
- 0x01000000, 0x01380000, 0x01080000, 0x01480000,
- 0x05f00000, 0x05a00000, 0x05b00000, 0x05900000,
- 0x05d80000, 0x05980000, 0x05e80000, 0x05c00000,
- 0x05e00000, 0x05f80000, 0x05a80000, 0x05d00000,
- 0x05800000, 0x05b80000, 0x05880000, 0x05c80000,
- 0x02700000, 0x02200000, 0x02300000, 0x02100000,
- 0x02580000, 0x02180000, 0x02680000, 0x02400000,
- 0x02600000, 0x02780000, 0x02280000, 0x02500000,
- 0x02000000, 0x02380000, 0x02080000, 0x02480000,
- 0x07f00000, 0x07a00000, 0x07b00000, 0x07900000,
- 0x07d80000, 0x07980000, 0x07e80000, 0x07c00000,
- 0x07e00000, 0x07f80000, 0x07a80000, 0x07d00000,
- 0x07800000, 0x07b80000, 0x07880000, 0x07c80000,
- 0x04700000, 0x04200000, 0x04300000, 0x04100000,
- 0x04580000, 0x04180000, 0x04680000, 0x04400000,
- 0x04600000, 0x04780000, 0x04280000, 0x04500000,
- 0x04000000, 0x04380000, 0x04080000, 0x04480000,
- 0x02f00000, 0x02a00000, 0x02b00000, 0x02900000,
- 0x02d80000, 0x02980000, 0x02e80000, 0x02c00000,
- 0x02e00000, 0x02f80000, 0x02a80000, 0x02d00000,
- 0x02800000, 0x02b80000, 0x02880000, 0x02c80000,
- 0x03700000, 0x03200000, 0x03300000, 0x03100000,
- 0x03580000, 0x03180000, 0x03680000, 0x03400000,
- 0x03600000, 0x03780000, 0x03280000, 0x03500000,
- 0x03000000, 0x03380000, 0x03080000, 0x03480000,
- /* 2 */
- 0xd8000001, 0xa8000001, 0x88000001, 0xc8000001,
- 0xc0000001, 0xe8000001, 0xf8000001, 0x80000001,
- 0xf0000001, 0xa0000001, 0x90000001, 0x98000001,
- 0xe0000001, 0xb8000001, 0xd0000001, 0xb0000001,
- 0x58000005, 0x28000005, 0x08000005, 0x48000005,
- 0x40000005, 0x68000005, 0x78000005, 0x00000005,
- 0x70000005, 0x20000005, 0x10000005, 0x18000005,
- 0x60000005, 0x38000005, 0x50000005, 0x30000005,
- 0xd8000006, 0xa8000006, 0x88000006, 0xc8000006,
- 0xc0000006, 0xe8000006, 0xf8000006, 0x80000006,
- 0xf0000006, 0xa0000006, 0x90000006, 0x98000006,
- 0xe0000006, 0xb8000006, 0xd0000006, 0xb0000006,
- 0x58000006, 0x28000006, 0x08000006, 0x48000006,
- 0x40000006, 0x68000006, 0x78000006, 0x00000006,
- 0x70000006, 0x20000006, 0x10000006, 0x18000006,
- 0x60000006, 0x38000006, 0x50000006, 0x30000006,
- 0xd8000000, 0xa8000000, 0x88000000, 0xc8000000,
- 0xc0000000, 0xe8000000, 0xf8000000, 0x80000000,
- 0xf0000000, 0xa0000000, 0x90000000, 0x98000000,
- 0xe0000000, 0xb8000000, 0xd0000000, 0xb0000000,
- 0x58000001, 0x28000001, 0x08000001, 0x48000001,
- 0x40000001, 0x68000001, 0x78000001, 0x00000001,
- 0x70000001, 0x20000001, 0x10000001, 0x18000001,
- 0x60000001, 0x38000001, 0x50000001, 0x30000001,
- 0x58000000, 0x28000000, 0x08000000, 0x48000000,
- 0x40000000, 0x68000000, 0x78000000, 0x00000000,
- 0x70000000, 0x20000000, 0x10000000, 0x18000000,
- 0x60000000, 0x38000000, 0x50000000, 0x30000000,
- 0xd8000005, 0xa8000005, 0x88000005, 0xc8000005,
- 0xc0000005, 0xe8000005, 0xf8000005, 0x80000005,
- 0xf0000005, 0xa0000005, 0x90000005, 0x98000005,
- 0xe0000005, 0xb8000005, 0xd0000005, 0xb0000005,
- 0xd8000003, 0xa8000003, 0x88000003, 0xc8000003,
- 0xc0000003, 0xe8000003, 0xf8000003, 0x80000003,
- 0xf0000003, 0xa0000003, 0x90000003, 0x98000003,
- 0xe0000003, 0xb8000003, 0xd0000003, 0xb0000003,
- 0xd8000002, 0xa8000002, 0x88000002, 0xc8000002,
- 0xc0000002, 0xe8000002, 0xf8000002, 0x80000002,
- 0xf0000002, 0xa0000002, 0x90000002, 0x98000002,
- 0xe0000002, 0xb8000002, 0xd0000002, 0xb0000002,
- 0xd8000004, 0xa8000004, 0x88000004, 0xc8000004,
- 0xc0000004, 0xe8000004, 0xf8000004, 0x80000004,
- 0xf0000004, 0xa0000004, 0x90000004, 0x98000004,
- 0xe0000004, 0xb8000004, 0xd0000004, 0xb0000004,
- 0x58000002, 0x28000002, 0x08000002, 0x48000002,
- 0x40000002, 0x68000002, 0x78000002, 0x00000002,
- 0x70000002, 0x20000002, 0x10000002, 0x18000002,
- 0x60000002, 0x38000002, 0x50000002, 0x30000002,
- 0x58000004, 0x28000004, 0x08000004, 0x48000004,
- 0x40000004, 0x68000004, 0x78000004, 0x00000004,
- 0x70000004, 0x20000004, 0x10000004, 0x18000004,
- 0x60000004, 0x38000004, 0x50000004, 0x30000004,
- 0xd8000007, 0xa8000007, 0x88000007, 0xc8000007,
- 0xc0000007, 0xe8000007, 0xf8000007, 0x80000007,
- 0xf0000007, 0xa0000007, 0x90000007, 0x98000007,
- 0xe0000007, 0xb8000007, 0xd0000007, 0xb0000007,
- 0x58000007, 0x28000007, 0x08000007, 0x48000007,
- 0x40000007, 0x68000007, 0x78000007, 0x00000007,
- 0x70000007, 0x20000007, 0x10000007, 0x18000007,
- 0x60000007, 0x38000007, 0x50000007, 0x30000007,
- 0x58000003, 0x28000003, 0x08000003, 0x48000003,
- 0x40000003, 0x68000003, 0x78000003, 0x00000003,
- 0x70000003, 0x20000003, 0x10000003, 0x18000003,
- 0x60000003, 0x38000003, 0x50000003, 0x30000003,
- /* 3 */
- 0x00000588, 0x000005e8, 0x00000590, 0x000005c8,
- 0x000005b8, 0x000005d0, 0x000005b0, 0x00000580,
- 0x000005c0, 0x000005e0, 0x000005a0, 0x000005a8,
- 0x000005f8, 0x00000598, 0x000005d8, 0x000005f0,
- 0x00000508, 0x00000568, 0x00000510, 0x00000548,
- 0x00000538, 0x00000550, 0x00000530, 0x00000500,
- 0x00000540, 0x00000560, 0x00000520, 0x00000528,
- 0x00000578, 0x00000518, 0x00000558, 0x00000570,
- 0x00000788, 0x000007e8, 0x00000790, 0x000007c8,
- 0x000007b8, 0x000007d0, 0x000007b0, 0x00000780,
- 0x000007c0, 0x000007e0, 0x000007a0, 0x000007a8,
- 0x000007f8, 0x00000798, 0x000007d8, 0x000007f0,
- 0x00000288, 0x000002e8, 0x00000290, 0x000002c8,
- 0x000002b8, 0x000002d0, 0x000002b0, 0x00000280,
- 0x000002c0, 0x000002e0, 0x000002a0, 0x000002a8,
- 0x000002f8, 0x00000298, 0x000002d8, 0x000002f0,
- 0x00000008, 0x00000068, 0x00000010, 0x00000048,
- 0x00000038, 0x00000050, 0x00000030, 0x00000000,
- 0x00000040, 0x00000060, 0x00000020, 0x00000028,
- 0x00000078, 0x00000018, 0x00000058, 0x00000070,
- 0x00000608, 0x00000668, 0x00000610, 0x00000648,
- 0x00000638, 0x00000650, 0x00000630, 0x00000600,
- 0x00000640, 0x00000660, 0x00000620, 0x00000628,
- 0x00000678, 0x00000618, 0x00000658, 0x00000670,
- 0x00000708, 0x00000768, 0x00000710, 0x00000748,
- 0x00000738, 0x00000750, 0x00000730, 0x00000700,
- 0x00000740, 0x00000760, 0x00000720, 0x00000728,
- 0x00000778, 0x00000718, 0x00000758, 0x00000770,
- 0x00000408, 0x00000468, 0x00000410, 0x00000448,
- 0x00000438, 0x00000450, 0x00000430, 0x00000400,
- 0x00000440, 0x00000460, 0x00000420, 0x00000428,
- 0x00000478, 0x00000418, 0x00000458, 0x00000470,
- 0x00000308, 0x00000368, 0x00000310, 0x00000348,
- 0x00000338, 0x00000350, 0x00000330, 0x00000300,
- 0x00000340, 0x00000360, 0x00000320, 0x00000328,
- 0x00000378, 0x00000318, 0x00000358, 0x00000370,
- 0x00000108, 0x00000168, 0x00000110, 0x00000148,
- 0x00000138, 0x00000150, 0x00000130, 0x00000100,
- 0x00000140, 0x00000160, 0x00000120, 0x00000128,
- 0x00000178, 0x00000118, 0x00000158, 0x00000170,
- 0x00000188, 0x000001e8, 0x00000190, 0x000001c8,
- 0x000001b8, 0x000001d0, 0x000001b0, 0x00000180,
- 0x000001c0, 0x000001e0, 0x000001a0, 0x000001a8,
- 0x000001f8, 0x00000198, 0x000001d8, 0x000001f0,
- 0x00000488, 0x000004e8, 0x00000490, 0x000004c8,
- 0x000004b8, 0x000004d0, 0x000004b0, 0x00000480,
- 0x000004c0, 0x000004e0, 0x000004a0, 0x000004a8,
- 0x000004f8, 0x00000498, 0x000004d8, 0x000004f0,
- 0x00000088, 0x000000e8, 0x00000090, 0x000000c8,
- 0x000000b8, 0x000000d0, 0x000000b0, 0x00000080,
- 0x000000c0, 0x000000e0, 0x000000a0, 0x000000a8,
- 0x000000f8, 0x00000098, 0x000000d8, 0x000000f0,
- 0x00000388, 0x000003e8, 0x00000390, 0x000003c8,
- 0x000003b8, 0x000003d0, 0x000003b0, 0x00000380,
- 0x000003c0, 0x000003e0, 0x000003a0, 0x000003a8,
- 0x000003f8, 0x00000398, 0x000003d8, 0x000003f0,
- 0x00000688, 0x000006e8, 0x00000690, 0x000006c8,
- 0x000006b8, 0x000006d0, 0x000006b0, 0x00000680,
- 0x000006c0, 0x000006e0, 0x000006a0, 0x000006a8,
- 0x000006f8, 0x00000698, 0x000006d8, 0x000006f0,
- 0x00000208, 0x00000268, 0x00000210, 0x00000248,
- 0x00000238, 0x00000250, 0x00000230, 0x00000200,
- 0x00000240, 0x00000260, 0x00000220, 0x00000228,
- 0x00000278, 0x00000218, 0x00000258, 0x00000270,
- }
+const struct gost28147_param gost28147_param_CryptoPro_A = {
+ 1,
+ {
+ /* 0 */
+ 0x0001c800, 0x0001b000, 0x00019800, 0x00019000,
+ 0x0001c000, 0x0001d800, 0x00018800, 0x0001b800,
+ 0x0001d000, 0x0001a000, 0x0001f000, 0x0001f800,
+ 0x0001e000, 0x00018000, 0x0001e800, 0x0001a800,
+ 0x0003c800, 0x0003b000, 0x00039800, 0x00039000,
+ 0x0003c000, 0x0003d800, 0x00038800, 0x0003b800,
+ 0x0003d000, 0x0003a000, 0x0003f000, 0x0003f800,
+ 0x0003e000, 0x00038000, 0x0003e800, 0x0003a800,
+ 0x00074800, 0x00073000, 0x00071800, 0x00071000,
+ 0x00074000, 0x00075800, 0x00070800, 0x00073800,
+ 0x00075000, 0x00072000, 0x00077000, 0x00077800,
+ 0x00076000, 0x00070000, 0x00076800, 0x00072800,
+ 0x0004c800, 0x0004b000, 0x00049800, 0x00049000,
+ 0x0004c000, 0x0004d800, 0x00048800, 0x0004b800,
+ 0x0004d000, 0x0004a000, 0x0004f000, 0x0004f800,
+ 0x0004e000, 0x00048000, 0x0004e800, 0x0004a800,
+ 0x00044800, 0x00043000, 0x00041800, 0x00041000,
+ 0x00044000, 0x00045800, 0x00040800, 0x00043800,
+ 0x00045000, 0x00042000, 0x00047000, 0x00047800,
+ 0x00046000, 0x00040000, 0x00046800, 0x00042800,
+ 0x00054800, 0x00053000, 0x00051800, 0x00051000,
+ 0x00054000, 0x00055800, 0x00050800, 0x00053800,
+ 0x00055000, 0x00052000, 0x00057000, 0x00057800,
+ 0x00056000, 0x00050000, 0x00056800, 0x00052800,
+ 0x0007c800, 0x0007b000, 0x00079800, 0x00079000,
+ 0x0007c000, 0x0007d800, 0x00078800, 0x0007b800,
+ 0x0007d000, 0x0007a000, 0x0007f000, 0x0007f800,
+ 0x0007e000, 0x00078000, 0x0007e800, 0x0007a800,
+ 0x00004800, 0x00003000, 0x00001800, 0x00001000,
+ 0x00004000, 0x00005800, 0x00000800, 0x00003800,
+ 0x00005000, 0x00002000, 0x00007000, 0x00007800,
+ 0x00006000, 0x00000000, 0x00006800, 0x00002800,
+ 0x0002c800, 0x0002b000, 0x00029800, 0x00029000,
+ 0x0002c000, 0x0002d800, 0x00028800, 0x0002b800,
+ 0x0002d000, 0x0002a000, 0x0002f000, 0x0002f800,
+ 0x0002e000, 0x00028000, 0x0002e800, 0x0002a800,
+ 0x00014800, 0x00013000, 0x00011800, 0x00011000,
+ 0x00014000, 0x00015800, 0x00010800, 0x00013800,
+ 0x00015000, 0x00012000, 0x00017000, 0x00017800,
+ 0x00016000, 0x00010000, 0x00016800, 0x00012800,
+ 0x00034800, 0x00033000, 0x00031800, 0x00031000,
+ 0x00034000, 0x00035800, 0x00030800, 0x00033800,
+ 0x00035000, 0x00032000, 0x00037000, 0x00037800,
+ 0x00036000, 0x00030000, 0x00036800, 0x00032800,
+ 0x00064800, 0x00063000, 0x00061800, 0x00061000,
+ 0x00064000, 0x00065800, 0x00060800, 0x00063800,
+ 0x00065000, 0x00062000, 0x00067000, 0x00067800,
+ 0x00066000, 0x00060000, 0x00066800, 0x00062800,
+ 0x0005c800, 0x0005b000, 0x00059800, 0x00059000,
+ 0x0005c000, 0x0005d800, 0x00058800, 0x0005b800,
+ 0x0005d000, 0x0005a000, 0x0005f000, 0x0005f800,
+ 0x0005e000, 0x00058000, 0x0005e800, 0x0005a800,
+ 0x00024800, 0x00023000, 0x00021800, 0x00021000,
+ 0x00024000, 0x00025800, 0x00020800, 0x00023800,
+ 0x00025000, 0x00022000, 0x00027000, 0x00027800,
+ 0x00026000, 0x00020000, 0x00026800, 0x00022800,
+ 0x0006c800, 0x0006b000, 0x00069800, 0x00069000,
+ 0x0006c000, 0x0006d800, 0x00068800, 0x0006b800,
+ 0x0006d000, 0x0006a000, 0x0006f000, 0x0006f800,
+ 0x0006e000, 0x00068000, 0x0006e800, 0x0006a800,
+ 0x0000c800, 0x0000b000, 0x00009800, 0x00009000,
+ 0x0000c000, 0x0000d800, 0x00008800, 0x0000b800,
+ 0x0000d000, 0x0000a000, 0x0000f000, 0x0000f800,
+ 0x0000e000, 0x00008000, 0x0000e800, 0x0000a800,
+ /* 1 */
+ 0x07700000, 0x07200000, 0x07300000, 0x07100000,
+ 0x07580000, 0x07180000, 0x07680000, 0x07400000,
+ 0x07600000, 0x07780000, 0x07280000, 0x07500000,
+ 0x07000000, 0x07380000, 0x07080000, 0x07480000,
+ 0x03f00000, 0x03a00000, 0x03b00000, 0x03900000,
+ 0x03d80000, 0x03980000, 0x03e80000, 0x03c00000,
+ 0x03e00000, 0x03f80000, 0x03a80000, 0x03d00000,
+ 0x03800000, 0x03b80000, 0x03880000, 0x03c80000,
+ 0x05700000, 0x05200000, 0x05300000, 0x05100000,
+ 0x05580000, 0x05180000, 0x05680000, 0x05400000,
+ 0x05600000, 0x05780000, 0x05280000, 0x05500000,
+ 0x05000000, 0x05380000, 0x05080000, 0x05480000,
+ 0x06700000, 0x06200000, 0x06300000, 0x06100000,
+ 0x06580000, 0x06180000, 0x06680000, 0x06400000,
+ 0x06600000, 0x06780000, 0x06280000, 0x06500000,
+ 0x06000000, 0x06380000, 0x06080000, 0x06480000,
+ 0x06f00000, 0x06a00000, 0x06b00000, 0x06900000,
+ 0x06d80000, 0x06980000, 0x06e80000, 0x06c00000,
+ 0x06e00000, 0x06f80000, 0x06a80000, 0x06d00000,
+ 0x06800000, 0x06b80000, 0x06880000, 0x06c80000,
+ 0x00f00000, 0x00a00000, 0x00b00000, 0x00900000,
+ 0x00d80000, 0x00980000, 0x00e80000, 0x00c00000,
+ 0x00e00000, 0x00f80000, 0x00a80000, 0x00d00000,
+ 0x00800000, 0x00b80000, 0x00880000, 0x00c80000,
+ 0x01f00000, 0x01a00000, 0x01b00000, 0x01900000,
+ 0x01d80000, 0x01980000, 0x01e80000, 0x01c00000,
+ 0x01e00000, 0x01f80000, 0x01a80000, 0x01d00000,
+ 0x01800000, 0x01b80000, 0x01880000, 0x01c80000,
+ 0x04f00000, 0x04a00000, 0x04b00000, 0x04900000,
+ 0x04d80000, 0x04980000, 0x04e80000, 0x04c00000,
+ 0x04e00000, 0x04f80000, 0x04a80000, 0x04d00000,
+ 0x04800000, 0x04b80000, 0x04880000, 0x04c80000,
+ 0x00700000, 0x00200000, 0x00300000, 0x00100000,
+ 0x00580000, 0x00180000, 0x00680000, 0x00400000,
+ 0x00600000, 0x00780000, 0x00280000, 0x00500000,
+ 0x00000000, 0x00380000, 0x00080000, 0x00480000,
+ 0x01700000, 0x01200000, 0x01300000, 0x01100000,
+ 0x01580000, 0x01180000, 0x01680000, 0x01400000,
+ 0x01600000, 0x01780000, 0x01280000, 0x01500000,
+ 0x01000000, 0x01380000, 0x01080000, 0x01480000,
+ 0x05f00000, 0x05a00000, 0x05b00000, 0x05900000,
+ 0x05d80000, 0x05980000, 0x05e80000, 0x05c00000,
+ 0x05e00000, 0x05f80000, 0x05a80000, 0x05d00000,
+ 0x05800000, 0x05b80000, 0x05880000, 0x05c80000,
+ 0x02700000, 0x02200000, 0x02300000, 0x02100000,
+ 0x02580000, 0x02180000, 0x02680000, 0x02400000,
+ 0x02600000, 0x02780000, 0x02280000, 0x02500000,
+ 0x02000000, 0x02380000, 0x02080000, 0x02480000,
+ 0x07f00000, 0x07a00000, 0x07b00000, 0x07900000,
+ 0x07d80000, 0x07980000, 0x07e80000, 0x07c00000,
+ 0x07e00000, 0x07f80000, 0x07a80000, 0x07d00000,
+ 0x07800000, 0x07b80000, 0x07880000, 0x07c80000,
+ 0x04700000, 0x04200000, 0x04300000, 0x04100000,
+ 0x04580000, 0x04180000, 0x04680000, 0x04400000,
+ 0x04600000, 0x04780000, 0x04280000, 0x04500000,
+ 0x04000000, 0x04380000, 0x04080000, 0x04480000,
+ 0x02f00000, 0x02a00000, 0x02b00000, 0x02900000,
+ 0x02d80000, 0x02980000, 0x02e80000, 0x02c00000,
+ 0x02e00000, 0x02f80000, 0x02a80000, 0x02d00000,
+ 0x02800000, 0x02b80000, 0x02880000, 0x02c80000,
+ 0x03700000, 0x03200000, 0x03300000, 0x03100000,
+ 0x03580000, 0x03180000, 0x03680000, 0x03400000,
+ 0x03600000, 0x03780000, 0x03280000, 0x03500000,
+ 0x03000000, 0x03380000, 0x03080000, 0x03480000,
+ /* 2 */
+ 0xd8000001, 0xa8000001, 0x88000001, 0xc8000001,
+ 0xc0000001, 0xe8000001, 0xf8000001, 0x80000001,
+ 0xf0000001, 0xa0000001, 0x90000001, 0x98000001,
+ 0xe0000001, 0xb8000001, 0xd0000001, 0xb0000001,
+ 0x58000005, 0x28000005, 0x08000005, 0x48000005,
+ 0x40000005, 0x68000005, 0x78000005, 0x00000005,
+ 0x70000005, 0x20000005, 0x10000005, 0x18000005,
+ 0x60000005, 0x38000005, 0x50000005, 0x30000005,
+ 0xd8000006, 0xa8000006, 0x88000006, 0xc8000006,
+ 0xc0000006, 0xe8000006, 0xf8000006, 0x80000006,
+ 0xf0000006, 0xa0000006, 0x90000006, 0x98000006,
+ 0xe0000006, 0xb8000006, 0xd0000006, 0xb0000006,
+ 0x58000006, 0x28000006, 0x08000006, 0x48000006,
+ 0x40000006, 0x68000006, 0x78000006, 0x00000006,
+ 0x70000006, 0x20000006, 0x10000006, 0x18000006,
+ 0x60000006, 0x38000006, 0x50000006, 0x30000006,
+ 0xd8000000, 0xa8000000, 0x88000000, 0xc8000000,
+ 0xc0000000, 0xe8000000, 0xf8000000, 0x80000000,
+ 0xf0000000, 0xa0000000, 0x90000000, 0x98000000,
+ 0xe0000000, 0xb8000000, 0xd0000000, 0xb0000000,
+ 0x58000001, 0x28000001, 0x08000001, 0x48000001,
+ 0x40000001, 0x68000001, 0x78000001, 0x00000001,
+ 0x70000001, 0x20000001, 0x10000001, 0x18000001,
+ 0x60000001, 0x38000001, 0x50000001, 0x30000001,
+ 0x58000000, 0x28000000, 0x08000000, 0x48000000,
+ 0x40000000, 0x68000000, 0x78000000, 0x00000000,
+ 0x70000000, 0x20000000, 0x10000000, 0x18000000,
+ 0x60000000, 0x38000000, 0x50000000, 0x30000000,
+ 0xd8000005, 0xa8000005, 0x88000005, 0xc8000005,
+ 0xc0000005, 0xe8000005, 0xf8000005, 0x80000005,
+ 0xf0000005, 0xa0000005, 0x90000005, 0x98000005,
+ 0xe0000005, 0xb8000005, 0xd0000005, 0xb0000005,
+ 0xd8000003, 0xa8000003, 0x88000003, 0xc8000003,
+ 0xc0000003, 0xe8000003, 0xf8000003, 0x80000003,
+ 0xf0000003, 0xa0000003, 0x90000003, 0x98000003,
+ 0xe0000003, 0xb8000003, 0xd0000003, 0xb0000003,
+ 0xd8000002, 0xa8000002, 0x88000002, 0xc8000002,
+ 0xc0000002, 0xe8000002, 0xf8000002, 0x80000002,
+ 0xf0000002, 0xa0000002, 0x90000002, 0x98000002,
+ 0xe0000002, 0xb8000002, 0xd0000002, 0xb0000002,
+ 0xd8000004, 0xa8000004, 0x88000004, 0xc8000004,
+ 0xc0000004, 0xe8000004, 0xf8000004, 0x80000004,
+ 0xf0000004, 0xa0000004, 0x90000004, 0x98000004,
+ 0xe0000004, 0xb8000004, 0xd0000004, 0xb0000004,
+ 0x58000002, 0x28000002, 0x08000002, 0x48000002,
+ 0x40000002, 0x68000002, 0x78000002, 0x00000002,
+ 0x70000002, 0x20000002, 0x10000002, 0x18000002,
+ 0x60000002, 0x38000002, 0x50000002, 0x30000002,
+ 0x58000004, 0x28000004, 0x08000004, 0x48000004,
+ 0x40000004, 0x68000004, 0x78000004, 0x00000004,
+ 0x70000004, 0x20000004, 0x10000004, 0x18000004,
+ 0x60000004, 0x38000004, 0x50000004, 0x30000004,
+ 0xd8000007, 0xa8000007, 0x88000007, 0xc8000007,
+ 0xc0000007, 0xe8000007, 0xf8000007, 0x80000007,
+ 0xf0000007, 0xa0000007, 0x90000007, 0x98000007,
+ 0xe0000007, 0xb8000007, 0xd0000007, 0xb0000007,
+ 0x58000007, 0x28000007, 0x08000007, 0x48000007,
+ 0x40000007, 0x68000007, 0x78000007, 0x00000007,
+ 0x70000007, 0x20000007, 0x10000007, 0x18000007,
+ 0x60000007, 0x38000007, 0x50000007, 0x30000007,
+ 0x58000003, 0x28000003, 0x08000003, 0x48000003,
+ 0x40000003, 0x68000003, 0x78000003, 0x00000003,
+ 0x70000003, 0x20000003, 0x10000003, 0x18000003,
+ 0x60000003, 0x38000003, 0x50000003, 0x30000003,
+ /* 3 */
+ 0x00000588, 0x000005e8, 0x00000590, 0x000005c8,
+ 0x000005b8, 0x000005d0, 0x000005b0, 0x00000580,
+ 0x000005c0, 0x000005e0, 0x000005a0, 0x000005a8,
+ 0x000005f8, 0x00000598, 0x000005d8, 0x000005f0,
+ 0x00000508, 0x00000568, 0x00000510, 0x00000548,
+ 0x00000538, 0x00000550, 0x00000530, 0x00000500,
+ 0x00000540, 0x00000560, 0x00000520, 0x00000528,
+ 0x00000578, 0x00000518, 0x00000558, 0x00000570,
+ 0x00000788, 0x000007e8, 0x00000790, 0x000007c8,
+ 0x000007b8, 0x000007d0, 0x000007b0, 0x00000780,
+ 0x000007c0, 0x000007e0, 0x000007a0, 0x000007a8,
+ 0x000007f8, 0x00000798, 0x000007d8, 0x000007f0,
+ 0x00000288, 0x000002e8, 0x00000290, 0x000002c8,
+ 0x000002b8, 0x000002d0, 0x000002b0, 0x00000280,
+ 0x000002c0, 0x000002e0, 0x000002a0, 0x000002a8,
+ 0x000002f8, 0x00000298, 0x000002d8, 0x000002f0,
+ 0x00000008, 0x00000068, 0x00000010, 0x00000048,
+ 0x00000038, 0x00000050, 0x00000030, 0x00000000,
+ 0x00000040, 0x00000060, 0x00000020, 0x00000028,
+ 0x00000078, 0x00000018, 0x00000058, 0x00000070,
+ 0x00000608, 0x00000668, 0x00000610, 0x00000648,
+ 0x00000638, 0x00000650, 0x00000630, 0x00000600,
+ 0x00000640, 0x00000660, 0x00000620, 0x00000628,
+ 0x00000678, 0x00000618, 0x00000658, 0x00000670,
+ 0x00000708, 0x00000768, 0x00000710, 0x00000748,
+ 0x00000738, 0x00000750, 0x00000730, 0x00000700,
+ 0x00000740, 0x00000760, 0x00000720, 0x00000728,
+ 0x00000778, 0x00000718, 0x00000758, 0x00000770,
+ 0x00000408, 0x00000468, 0x00000410, 0x00000448,
+ 0x00000438, 0x00000450, 0x00000430, 0x00000400,
+ 0x00000440, 0x00000460, 0x00000420, 0x00000428,
+ 0x00000478, 0x00000418, 0x00000458, 0x00000470,
+ 0x00000308, 0x00000368, 0x00000310, 0x00000348,
+ 0x00000338, 0x00000350, 0x00000330, 0x00000300,
+ 0x00000340, 0x00000360, 0x00000320, 0x00000328,
+ 0x00000378, 0x00000318, 0x00000358, 0x00000370,
+ 0x00000108, 0x00000168, 0x00000110, 0x00000148,
+ 0x00000138, 0x00000150, 0x00000130, 0x00000100,
+ 0x00000140, 0x00000160, 0x00000120, 0x00000128,
+ 0x00000178, 0x00000118, 0x00000158, 0x00000170,
+ 0x00000188, 0x000001e8, 0x00000190, 0x000001c8,
+ 0x000001b8, 0x000001d0, 0x000001b0, 0x00000180,
+ 0x000001c0, 0x000001e0, 0x000001a0, 0x000001a8,
+ 0x000001f8, 0x00000198, 0x000001d8, 0x000001f0,
+ 0x00000488, 0x000004e8, 0x00000490, 0x000004c8,
+ 0x000004b8, 0x000004d0, 0x000004b0, 0x00000480,
+ 0x000004c0, 0x000004e0, 0x000004a0, 0x000004a8,
+ 0x000004f8, 0x00000498, 0x000004d8, 0x000004f0,
+ 0x00000088, 0x000000e8, 0x00000090, 0x000000c8,
+ 0x000000b8, 0x000000d0, 0x000000b0, 0x00000080,
+ 0x000000c0, 0x000000e0, 0x000000a0, 0x000000a8,
+ 0x000000f8, 0x00000098, 0x000000d8, 0x000000f0,
+ 0x00000388, 0x000003e8, 0x00000390, 0x000003c8,
+ 0x000003b8, 0x000003d0, 0x000003b0, 0x00000380,
+ 0x000003c0, 0x000003e0, 0x000003a0, 0x000003a8,
+ 0x000003f8, 0x00000398, 0x000003d8, 0x000003f0,
+ 0x00000688, 0x000006e8, 0x00000690, 0x000006c8,
+ 0x000006b8, 0x000006d0, 0x000006b0, 0x00000680,
+ 0x000006c0, 0x000006e0, 0x000006a0, 0x000006a8,
+ 0x000006f8, 0x00000698, 0x000006d8, 0x000006f0,
+ 0x00000208, 0x00000268, 0x00000210, 0x00000248,
+ 0x00000238, 0x00000250, 0x00000230, 0x00000200,
+ 0x00000240, 0x00000260, 0x00000220, 0x00000228,
+ 0x00000278, 0x00000218, 0x00000258, 0x00000270,
+ }
};
-const struct gost28147_param gost28147_param_CryptoPro_B =
-{
- 1,
- {
- /* 0 */
- 0x00004000, 0x00002000, 0x00005800, 0x00000800,
- 0x00001800, 0x00002800, 0x00000000, 0x00004800,
- 0x00001000, 0x00007000, 0x00005000, 0x00006000,
- 0x00006800, 0x00003000, 0x00003800, 0x00007800,
- 0x0000c000, 0x0000a000, 0x0000d800, 0x00008800,
- 0x00009800, 0x0000a800, 0x00008000, 0x0000c800,
- 0x00009000, 0x0000f000, 0x0000d000, 0x0000e000,
- 0x0000e800, 0x0000b000, 0x0000b800, 0x0000f800,
- 0x00014000, 0x00012000, 0x00015800, 0x00010800,
- 0x00011800, 0x00012800, 0x00010000, 0x00014800,
- 0x00011000, 0x00017000, 0x00015000, 0x00016000,
- 0x00016800, 0x00013000, 0x00013800, 0x00017800,
- 0x00054000, 0x00052000, 0x00055800, 0x00050800,
- 0x00051800, 0x00052800, 0x00050000, 0x00054800,
- 0x00051000, 0x00057000, 0x00055000, 0x00056000,
- 0x00056800, 0x00053000, 0x00053800, 0x00057800,
- 0x00024000, 0x00022000, 0x00025800, 0x00020800,
- 0x00021800, 0x00022800, 0x00020000, 0x00024800,
- 0x00021000, 0x00027000, 0x00025000, 0x00026000,
- 0x00026800, 0x00023000, 0x00023800, 0x00027800,
- 0x0006c000, 0x0006a000, 0x0006d800, 0x00068800,
- 0x00069800, 0x0006a800, 0x00068000, 0x0006c800,
- 0x00069000, 0x0006f000, 0x0006d000, 0x0006e000,
- 0x0006e800, 0x0006b000, 0x0006b800, 0x0006f800,
- 0x0002c000, 0x0002a000, 0x0002d800, 0x00028800,
- 0x00029800, 0x0002a800, 0x00028000, 0x0002c800,
- 0x00029000, 0x0002f000, 0x0002d000, 0x0002e000,
- 0x0002e800, 0x0002b000, 0x0002b800, 0x0002f800,
- 0x00064000, 0x00062000, 0x00065800, 0x00060800,
- 0x00061800, 0x00062800, 0x00060000, 0x00064800,
- 0x00061000, 0x00067000, 0x00065000, 0x00066000,
- 0x00066800, 0x00063000, 0x00063800, 0x00067800,
- 0x0004c000, 0x0004a000, 0x0004d800, 0x00048800,
- 0x00049800, 0x0004a800, 0x00048000, 0x0004c800,
- 0x00049000, 0x0004f000, 0x0004d000, 0x0004e000,
- 0x0004e800, 0x0004b000, 0x0004b800, 0x0004f800,
- 0x0003c000, 0x0003a000, 0x0003d800, 0x00038800,
- 0x00039800, 0x0003a800, 0x00038000, 0x0003c800,
- 0x00039000, 0x0003f000, 0x0003d000, 0x0003e000,
- 0x0003e800, 0x0003b000, 0x0003b800, 0x0003f800,
- 0x0001c000, 0x0001a000, 0x0001d800, 0x00018800,
- 0x00019800, 0x0001a800, 0x00018000, 0x0001c800,
- 0x00019000, 0x0001f000, 0x0001d000, 0x0001e000,
- 0x0001e800, 0x0001b000, 0x0001b800, 0x0001f800,
- 0x0007c000, 0x0007a000, 0x0007d800, 0x00078800,
- 0x00079800, 0x0007a800, 0x00078000, 0x0007c800,
- 0x00079000, 0x0007f000, 0x0007d000, 0x0007e000,
- 0x0007e800, 0x0007b000, 0x0007b800, 0x0007f800,
- 0x0005c000, 0x0005a000, 0x0005d800, 0x00058800,
- 0x00059800, 0x0005a800, 0x00058000, 0x0005c800,
- 0x00059000, 0x0005f000, 0x0005d000, 0x0005e000,
- 0x0005e800, 0x0005b000, 0x0005b800, 0x0005f800,
- 0x00044000, 0x00042000, 0x00045800, 0x00040800,
- 0x00041800, 0x00042800, 0x00040000, 0x00044800,
- 0x00041000, 0x00047000, 0x00045000, 0x00046000,
- 0x00046800, 0x00043000, 0x00043800, 0x00047800,
- 0x00034000, 0x00032000, 0x00035800, 0x00030800,
- 0x00031800, 0x00032800, 0x00030000, 0x00034800,
- 0x00031000, 0x00037000, 0x00035000, 0x00036000,
- 0x00036800, 0x00033000, 0x00033800, 0x00037800,
- 0x00074000, 0x00072000, 0x00075800, 0x00070800,
- 0x00071800, 0x00072800, 0x00070000, 0x00074800,
- 0x00071000, 0x00077000, 0x00075000, 0x00076000,
- 0x00076800, 0x00073000, 0x00073800, 0x00077800,
- /* 1 */
- 0x03f00000, 0x03e00000, 0x03800000, 0x03d00000,
- 0x03c80000, 0x03900000, 0x03e80000, 0x03d80000,
- 0x03b80000, 0x03a80000, 0x03c00000, 0x03f80000,
- 0x03980000, 0x03b00000, 0x03880000, 0x03a00000,
- 0x02f00000, 0x02e00000, 0x02800000, 0x02d00000,
- 0x02c80000, 0x02900000, 0x02e80000, 0x02d80000,
- 0x02b80000, 0x02a80000, 0x02c00000, 0x02f80000,
- 0x02980000, 0x02b00000, 0x02880000, 0x02a00000,
- 0x00700000, 0x00600000, 0x00000000, 0x00500000,
- 0x00480000, 0x00100000, 0x00680000, 0x00580000,
- 0x00380000, 0x00280000, 0x00400000, 0x00780000,
- 0x00180000, 0x00300000, 0x00080000, 0x00200000,
- 0x06f00000, 0x06e00000, 0x06800000, 0x06d00000,
- 0x06c80000, 0x06900000, 0x06e80000, 0x06d80000,
- 0x06b80000, 0x06a80000, 0x06c00000, 0x06f80000,
- 0x06980000, 0x06b00000, 0x06880000, 0x06a00000,
- 0x05f00000, 0x05e00000, 0x05800000, 0x05d00000,
- 0x05c80000, 0x05900000, 0x05e80000, 0x05d80000,
- 0x05b80000, 0x05a80000, 0x05c00000, 0x05f80000,
- 0x05980000, 0x05b00000, 0x05880000, 0x05a00000,
- 0x03700000, 0x03600000, 0x03000000, 0x03500000,
- 0x03480000, 0x03100000, 0x03680000, 0x03580000,
- 0x03380000, 0x03280000, 0x03400000, 0x03780000,
- 0x03180000, 0x03300000, 0x03080000, 0x03200000,
- 0x00f00000, 0x00e00000, 0x00800000, 0x00d00000,
- 0x00c80000, 0x00900000, 0x00e80000, 0x00d80000,
- 0x00b80000, 0x00a80000, 0x00c00000, 0x00f80000,
- 0x00980000, 0x00b00000, 0x00880000, 0x00a00000,
- 0x01700000, 0x01600000, 0x01000000, 0x01500000,
- 0x01480000, 0x01100000, 0x01680000, 0x01580000,
- 0x01380000, 0x01280000, 0x01400000, 0x01780000,
- 0x01180000, 0x01300000, 0x01080000, 0x01200000,
- 0x01f00000, 0x01e00000, 0x01800000, 0x01d00000,
- 0x01c80000, 0x01900000, 0x01e80000, 0x01d80000,
- 0x01b80000, 0x01a80000, 0x01c00000, 0x01f80000,
- 0x01980000, 0x01b00000, 0x01880000, 0x01a00000,
- 0x05700000, 0x05600000, 0x05000000, 0x05500000,
- 0x05480000, 0x05100000, 0x05680000, 0x05580000,
- 0x05380000, 0x05280000, 0x05400000, 0x05780000,
- 0x05180000, 0x05300000, 0x05080000, 0x05200000,
- 0x06700000, 0x06600000, 0x06000000, 0x06500000,
- 0x06480000, 0x06100000, 0x06680000, 0x06580000,
- 0x06380000, 0x06280000, 0x06400000, 0x06780000,
- 0x06180000, 0x06300000, 0x06080000, 0x06200000,
- 0x07f00000, 0x07e00000, 0x07800000, 0x07d00000,
- 0x07c80000, 0x07900000, 0x07e80000, 0x07d80000,
- 0x07b80000, 0x07a80000, 0x07c00000, 0x07f80000,
- 0x07980000, 0x07b00000, 0x07880000, 0x07a00000,
- 0x02700000, 0x02600000, 0x02000000, 0x02500000,
- 0x02480000, 0x02100000, 0x02680000, 0x02580000,
- 0x02380000, 0x02280000, 0x02400000, 0x02780000,
- 0x02180000, 0x02300000, 0x02080000, 0x02200000,
- 0x07700000, 0x07600000, 0x07000000, 0x07500000,
- 0x07480000, 0x07100000, 0x07680000, 0x07580000,
- 0x07380000, 0x07280000, 0x07400000, 0x07780000,
- 0x07180000, 0x07300000, 0x07080000, 0x07200000,
- 0x04f00000, 0x04e00000, 0x04800000, 0x04d00000,
- 0x04c80000, 0x04900000, 0x04e80000, 0x04d80000,
- 0x04b80000, 0x04a80000, 0x04c00000, 0x04f80000,
- 0x04980000, 0x04b00000, 0x04880000, 0x04a00000,
- 0x04700000, 0x04600000, 0x04000000, 0x04500000,
- 0x04480000, 0x04100000, 0x04680000, 0x04580000,
- 0x04380000, 0x04280000, 0x04400000, 0x04780000,
- 0x04180000, 0x04300000, 0x04080000, 0x04200000,
- /* 2 */
- 0x10000004, 0x38000004, 0x60000004, 0x78000004,
- 0x48000004, 0x28000004, 0x50000004, 0x58000004,
- 0x08000004, 0x20000004, 0x00000004, 0x68000004,
- 0x30000004, 0x40000004, 0x70000004, 0x18000004,
- 0x90000001, 0xb8000001, 0xe0000001, 0xf8000001,
- 0xc8000001, 0xa8000001, 0xd0000001, 0xd8000001,
- 0x88000001, 0xa0000001, 0x80000001, 0xe8000001,
- 0xb0000001, 0xc0000001, 0xf0000001, 0x98000001,
- 0x10000001, 0x38000001, 0x60000001, 0x78000001,
- 0x48000001, 0x28000001, 0x50000001, 0x58000001,
- 0x08000001, 0x20000001, 0x00000001, 0x68000001,
- 0x30000001, 0x40000001, 0x70000001, 0x18000001,
- 0x10000003, 0x38000003, 0x60000003, 0x78000003,
- 0x48000003, 0x28000003, 0x50000003, 0x58000003,
- 0x08000003, 0x20000003, 0x00000003, 0x68000003,
- 0x30000003, 0x40000003, 0x70000003, 0x18000003,
- 0x10000002, 0x38000002, 0x60000002, 0x78000002,
- 0x48000002, 0x28000002, 0x50000002, 0x58000002,
- 0x08000002, 0x20000002, 0x00000002, 0x68000002,
- 0x30000002, 0x40000002, 0x70000002, 0x18000002,
- 0x90000006, 0xb8000006, 0xe0000006, 0xf8000006,
- 0xc8000006, 0xa8000006, 0xd0000006, 0xd8000006,
- 0x88000006, 0xa0000006, 0x80000006, 0xe8000006,
- 0xb0000006, 0xc0000006, 0xf0000006, 0x98000006,
- 0x10000007, 0x38000007, 0x60000007, 0x78000007,
- 0x48000007, 0x28000007, 0x50000007, 0x58000007,
- 0x08000007, 0x20000007, 0x00000007, 0x68000007,
- 0x30000007, 0x40000007, 0x70000007, 0x18000007,
- 0x90000005, 0xb8000005, 0xe0000005, 0xf8000005,
- 0xc8000005, 0xa8000005, 0xd0000005, 0xd8000005,
- 0x88000005, 0xa0000005, 0x80000005, 0xe8000005,
- 0xb0000005, 0xc0000005, 0xf0000005, 0x98000005,
- 0x10000006, 0x38000006, 0x60000006, 0x78000006,
- 0x48000006, 0x28000006, 0x50000006, 0x58000006,
- 0x08000006, 0x20000006, 0x00000006, 0x68000006,
- 0x30000006, 0x40000006, 0x70000006, 0x18000006,
- 0x90000000, 0xb8000000, 0xe0000000, 0xf8000000,
- 0xc8000000, 0xa8000000, 0xd0000000, 0xd8000000,
- 0x88000000, 0xa0000000, 0x80000000, 0xe8000000,
- 0xb0000000, 0xc0000000, 0xf0000000, 0x98000000,
- 0x90000003, 0xb8000003, 0xe0000003, 0xf8000003,
- 0xc8000003, 0xa8000003, 0xd0000003, 0xd8000003,
- 0x88000003, 0xa0000003, 0x80000003, 0xe8000003,
- 0xb0000003, 0xc0000003, 0xf0000003, 0x98000003,
- 0x90000007, 0xb8000007, 0xe0000007, 0xf8000007,
- 0xc8000007, 0xa8000007, 0xd0000007, 0xd8000007,
- 0x88000007, 0xa0000007, 0x80000007, 0xe8000007,
- 0xb0000007, 0xc0000007, 0xf0000007, 0x98000007,
- 0x10000005, 0x38000005, 0x60000005, 0x78000005,
- 0x48000005, 0x28000005, 0x50000005, 0x58000005,
- 0x08000005, 0x20000005, 0x00000005, 0x68000005,
- 0x30000005, 0x40000005, 0x70000005, 0x18000005,
- 0x10000000, 0x38000000, 0x60000000, 0x78000000,
- 0x48000000, 0x28000000, 0x50000000, 0x58000000,
- 0x08000000, 0x20000000, 0x00000000, 0x68000000,
- 0x30000000, 0x40000000, 0x70000000, 0x18000000,
- 0x90000004, 0xb8000004, 0xe0000004, 0xf8000004,
- 0xc8000004, 0xa8000004, 0xd0000004, 0xd8000004,
- 0x88000004, 0xa0000004, 0x80000004, 0xe8000004,
- 0xb0000004, 0xc0000004, 0xf0000004, 0x98000004,
- 0x90000002, 0xb8000002, 0xe0000002, 0xf8000002,
- 0xc8000002, 0xa8000002, 0xd0000002, 0xd8000002,
- 0x88000002, 0xa0000002, 0x80000002, 0xe8000002,
- 0xb0000002, 0xc0000002, 0xf0000002, 0x98000002,
- /* 3 */
- 0x00000028, 0x00000010, 0x00000050, 0x00000058,
- 0x00000048, 0x00000008, 0x00000060, 0x00000018,
- 0x00000038, 0x00000020, 0x00000068, 0x00000000,
- 0x00000030, 0x00000078, 0x00000040, 0x00000070,
- 0x00000228, 0x00000210, 0x00000250, 0x00000258,
- 0x00000248, 0x00000208, 0x00000260, 0x00000218,
- 0x00000238, 0x00000220, 0x00000268, 0x00000200,
- 0x00000230, 0x00000278, 0x00000240, 0x00000270,
- 0x000005a8, 0x00000590, 0x000005d0, 0x000005d8,
- 0x000005c8, 0x00000588, 0x000005e0, 0x00000598,
- 0x000005b8, 0x000005a0, 0x000005e8, 0x00000580,
- 0x000005b0, 0x000005f8, 0x000005c0, 0x000005f0,
- 0x00000728, 0x00000710, 0x00000750, 0x00000758,
- 0x00000748, 0x00000708, 0x00000760, 0x00000718,
- 0x00000738, 0x00000720, 0x00000768, 0x00000700,
- 0x00000730, 0x00000778, 0x00000740, 0x00000770,
- 0x00000428, 0x00000410, 0x00000450, 0x00000458,
- 0x00000448, 0x00000408, 0x00000460, 0x00000418,
- 0x00000438, 0x00000420, 0x00000468, 0x00000400,
- 0x00000430, 0x00000478, 0x00000440, 0x00000470,
- 0x000001a8, 0x00000190, 0x000001d0, 0x000001d8,
- 0x000001c8, 0x00000188, 0x000001e0, 0x00000198,
- 0x000001b8, 0x000001a0, 0x000001e8, 0x00000180,
- 0x000001b0, 0x000001f8, 0x000001c0, 0x000001f0,
- 0x000003a8, 0x00000390, 0x000003d0, 0x000003d8,
- 0x000003c8, 0x00000388, 0x000003e0, 0x00000398,
- 0x000003b8, 0x000003a0, 0x000003e8, 0x00000380,
- 0x000003b0, 0x000003f8, 0x000003c0, 0x000003f0,
- 0x000000a8, 0x00000090, 0x000000d0, 0x000000d8,
- 0x000000c8, 0x00000088, 0x000000e0, 0x00000098,
- 0x000000b8, 0x000000a0, 0x000000e8, 0x00000080,
- 0x000000b0, 0x000000f8, 0x000000c0, 0x000000f0,
- 0x00000528, 0x00000510, 0x00000550, 0x00000558,
- 0x00000548, 0x00000508, 0x00000560, 0x00000518,
- 0x00000538, 0x00000520, 0x00000568, 0x00000500,
- 0x00000530, 0x00000578, 0x00000540, 0x00000570,
- 0x00000128, 0x00000110, 0x00000150, 0x00000158,
- 0x00000148, 0x00000108, 0x00000160, 0x00000118,
- 0x00000138, 0x00000120, 0x00000168, 0x00000100,
- 0x00000130, 0x00000178, 0x00000140, 0x00000170,
- 0x000004a8, 0x00000490, 0x000004d0, 0x000004d8,
- 0x000004c8, 0x00000488, 0x000004e0, 0x00000498,
- 0x000004b8, 0x000004a0, 0x000004e8, 0x00000480,
- 0x000004b0, 0x000004f8, 0x000004c0, 0x000004f0,
- 0x00000328, 0x00000310, 0x00000350, 0x00000358,
- 0x00000348, 0x00000308, 0x00000360, 0x00000318,
- 0x00000338, 0x00000320, 0x00000368, 0x00000300,
- 0x00000330, 0x00000378, 0x00000340, 0x00000370,
- 0x000007a8, 0x00000790, 0x000007d0, 0x000007d8,
- 0x000007c8, 0x00000788, 0x000007e0, 0x00000798,
- 0x000007b8, 0x000007a0, 0x000007e8, 0x00000780,
- 0x000007b0, 0x000007f8, 0x000007c0, 0x000007f0,
- 0x000006a8, 0x00000690, 0x000006d0, 0x000006d8,
- 0x000006c8, 0x00000688, 0x000006e0, 0x00000698,
- 0x000006b8, 0x000006a0, 0x000006e8, 0x00000680,
- 0x000006b0, 0x000006f8, 0x000006c0, 0x000006f0,
- 0x000002a8, 0x00000290, 0x000002d0, 0x000002d8,
- 0x000002c8, 0x00000288, 0x000002e0, 0x00000298,
- 0x000002b8, 0x000002a0, 0x000002e8, 0x00000280,
- 0x000002b0, 0x000002f8, 0x000002c0, 0x000002f0,
- 0x00000628, 0x00000610, 0x00000650, 0x00000658,
- 0x00000648, 0x00000608, 0x00000660, 0x00000618,
- 0x00000638, 0x00000620, 0x00000668, 0x00000600,
- 0x00000630, 0x00000678, 0x00000640, 0x00000670,
- }
+const struct gost28147_param gost28147_param_CryptoPro_B = {
+ 1,
+ {
+ /* 0 */
+ 0x00004000, 0x00002000, 0x00005800, 0x00000800,
+ 0x00001800, 0x00002800, 0x00000000, 0x00004800,
+ 0x00001000, 0x00007000, 0x00005000, 0x00006000,
+ 0x00006800, 0x00003000, 0x00003800, 0x00007800,
+ 0x0000c000, 0x0000a000, 0x0000d800, 0x00008800,
+ 0x00009800, 0x0000a800, 0x00008000, 0x0000c800,
+ 0x00009000, 0x0000f000, 0x0000d000, 0x0000e000,
+ 0x0000e800, 0x0000b000, 0x0000b800, 0x0000f800,
+ 0x00014000, 0x00012000, 0x00015800, 0x00010800,
+ 0x00011800, 0x00012800, 0x00010000, 0x00014800,
+ 0x00011000, 0x00017000, 0x00015000, 0x00016000,
+ 0x00016800, 0x00013000, 0x00013800, 0x00017800,
+ 0x00054000, 0x00052000, 0x00055800, 0x00050800,
+ 0x00051800, 0x00052800, 0x00050000, 0x00054800,
+ 0x00051000, 0x00057000, 0x00055000, 0x00056000,
+ 0x00056800, 0x00053000, 0x00053800, 0x00057800,
+ 0x00024000, 0x00022000, 0x00025800, 0x00020800,
+ 0x00021800, 0x00022800, 0x00020000, 0x00024800,
+ 0x00021000, 0x00027000, 0x00025000, 0x00026000,
+ 0x00026800, 0x00023000, 0x00023800, 0x00027800,
+ 0x0006c000, 0x0006a000, 0x0006d800, 0x00068800,
+ 0x00069800, 0x0006a800, 0x00068000, 0x0006c800,
+ 0x00069000, 0x0006f000, 0x0006d000, 0x0006e000,
+ 0x0006e800, 0x0006b000, 0x0006b800, 0x0006f800,
+ 0x0002c000, 0x0002a000, 0x0002d800, 0x00028800,
+ 0x00029800, 0x0002a800, 0x00028000, 0x0002c800,
+ 0x00029000, 0x0002f000, 0x0002d000, 0x0002e000,
+ 0x0002e800, 0x0002b000, 0x0002b800, 0x0002f800,
+ 0x00064000, 0x00062000, 0x00065800, 0x00060800,
+ 0x00061800, 0x00062800, 0x00060000, 0x00064800,
+ 0x00061000, 0x00067000, 0x00065000, 0x00066000,
+ 0x00066800, 0x00063000, 0x00063800, 0x00067800,
+ 0x0004c000, 0x0004a000, 0x0004d800, 0x00048800,
+ 0x00049800, 0x0004a800, 0x00048000, 0x0004c800,
+ 0x00049000, 0x0004f000, 0x0004d000, 0x0004e000,
+ 0x0004e800, 0x0004b000, 0x0004b800, 0x0004f800,
+ 0x0003c000, 0x0003a000, 0x0003d800, 0x00038800,
+ 0x00039800, 0x0003a800, 0x00038000, 0x0003c800,
+ 0x00039000, 0x0003f000, 0x0003d000, 0x0003e000,
+ 0x0003e800, 0x0003b000, 0x0003b800, 0x0003f800,
+ 0x0001c000, 0x0001a000, 0x0001d800, 0x00018800,
+ 0x00019800, 0x0001a800, 0x00018000, 0x0001c800,
+ 0x00019000, 0x0001f000, 0x0001d000, 0x0001e000,
+ 0x0001e800, 0x0001b000, 0x0001b800, 0x0001f800,
+ 0x0007c000, 0x0007a000, 0x0007d800, 0x00078800,
+ 0x00079800, 0x0007a800, 0x00078000, 0x0007c800,
+ 0x00079000, 0x0007f000, 0x0007d000, 0x0007e000,
+ 0x0007e800, 0x0007b000, 0x0007b800, 0x0007f800,
+ 0x0005c000, 0x0005a000, 0x0005d800, 0x00058800,
+ 0x00059800, 0x0005a800, 0x00058000, 0x0005c800,
+ 0x00059000, 0x0005f000, 0x0005d000, 0x0005e000,
+ 0x0005e800, 0x0005b000, 0x0005b800, 0x0005f800,
+ 0x00044000, 0x00042000, 0x00045800, 0x00040800,
+ 0x00041800, 0x00042800, 0x00040000, 0x00044800,
+ 0x00041000, 0x00047000, 0x00045000, 0x00046000,
+ 0x00046800, 0x00043000, 0x00043800, 0x00047800,
+ 0x00034000, 0x00032000, 0x00035800, 0x00030800,
+ 0x00031800, 0x00032800, 0x00030000, 0x00034800,
+ 0x00031000, 0x00037000, 0x00035000, 0x00036000,
+ 0x00036800, 0x00033000, 0x00033800, 0x00037800,
+ 0x00074000, 0x00072000, 0x00075800, 0x00070800,
+ 0x00071800, 0x00072800, 0x00070000, 0x00074800,
+ 0x00071000, 0x00077000, 0x00075000, 0x00076000,
+ 0x00076800, 0x00073000, 0x00073800, 0x00077800,
+ /* 1 */
+ 0x03f00000, 0x03e00000, 0x03800000, 0x03d00000,
+ 0x03c80000, 0x03900000, 0x03e80000, 0x03d80000,
+ 0x03b80000, 0x03a80000, 0x03c00000, 0x03f80000,
+ 0x03980000, 0x03b00000, 0x03880000, 0x03a00000,
+ 0x02f00000, 0x02e00000, 0x02800000, 0x02d00000,
+ 0x02c80000, 0x02900000, 0x02e80000, 0x02d80000,
+ 0x02b80000, 0x02a80000, 0x02c00000, 0x02f80000,
+ 0x02980000, 0x02b00000, 0x02880000, 0x02a00000,
+ 0x00700000, 0x00600000, 0x00000000, 0x00500000,
+ 0x00480000, 0x00100000, 0x00680000, 0x00580000,
+ 0x00380000, 0x00280000, 0x00400000, 0x00780000,
+ 0x00180000, 0x00300000, 0x00080000, 0x00200000,
+ 0x06f00000, 0x06e00000, 0x06800000, 0x06d00000,
+ 0x06c80000, 0x06900000, 0x06e80000, 0x06d80000,
+ 0x06b80000, 0x06a80000, 0x06c00000, 0x06f80000,
+ 0x06980000, 0x06b00000, 0x06880000, 0x06a00000,
+ 0x05f00000, 0x05e00000, 0x05800000, 0x05d00000,
+ 0x05c80000, 0x05900000, 0x05e80000, 0x05d80000,
+ 0x05b80000, 0x05a80000, 0x05c00000, 0x05f80000,
+ 0x05980000, 0x05b00000, 0x05880000, 0x05a00000,
+ 0x03700000, 0x03600000, 0x03000000, 0x03500000,
+ 0x03480000, 0x03100000, 0x03680000, 0x03580000,
+ 0x03380000, 0x03280000, 0x03400000, 0x03780000,
+ 0x03180000, 0x03300000, 0x03080000, 0x03200000,
+ 0x00f00000, 0x00e00000, 0x00800000, 0x00d00000,
+ 0x00c80000, 0x00900000, 0x00e80000, 0x00d80000,
+ 0x00b80000, 0x00a80000, 0x00c00000, 0x00f80000,
+ 0x00980000, 0x00b00000, 0x00880000, 0x00a00000,
+ 0x01700000, 0x01600000, 0x01000000, 0x01500000,
+ 0x01480000, 0x01100000, 0x01680000, 0x01580000,
+ 0x01380000, 0x01280000, 0x01400000, 0x01780000,
+ 0x01180000, 0x01300000, 0x01080000, 0x01200000,
+ 0x01f00000, 0x01e00000, 0x01800000, 0x01d00000,
+ 0x01c80000, 0x01900000, 0x01e80000, 0x01d80000,
+ 0x01b80000, 0x01a80000, 0x01c00000, 0x01f80000,
+ 0x01980000, 0x01b00000, 0x01880000, 0x01a00000,
+ 0x05700000, 0x05600000, 0x05000000, 0x05500000,
+ 0x05480000, 0x05100000, 0x05680000, 0x05580000,
+ 0x05380000, 0x05280000, 0x05400000, 0x05780000,
+ 0x05180000, 0x05300000, 0x05080000, 0x05200000,
+ 0x06700000, 0x06600000, 0x06000000, 0x06500000,
+ 0x06480000, 0x06100000, 0x06680000, 0x06580000,
+ 0x06380000, 0x06280000, 0x06400000, 0x06780000,
+ 0x06180000, 0x06300000, 0x06080000, 0x06200000,
+ 0x07f00000, 0x07e00000, 0x07800000, 0x07d00000,
+ 0x07c80000, 0x07900000, 0x07e80000, 0x07d80000,
+ 0x07b80000, 0x07a80000, 0x07c00000, 0x07f80000,
+ 0x07980000, 0x07b00000, 0x07880000, 0x07a00000,
+ 0x02700000, 0x02600000, 0x02000000, 0x02500000,
+ 0x02480000, 0x02100000, 0x02680000, 0x02580000,
+ 0x02380000, 0x02280000, 0x02400000, 0x02780000,
+ 0x02180000, 0x02300000, 0x02080000, 0x02200000,
+ 0x07700000, 0x07600000, 0x07000000, 0x07500000,
+ 0x07480000, 0x07100000, 0x07680000, 0x07580000,
+ 0x07380000, 0x07280000, 0x07400000, 0x07780000,
+ 0x07180000, 0x07300000, 0x07080000, 0x07200000,
+ 0x04f00000, 0x04e00000, 0x04800000, 0x04d00000,
+ 0x04c80000, 0x04900000, 0x04e80000, 0x04d80000,
+ 0x04b80000, 0x04a80000, 0x04c00000, 0x04f80000,
+ 0x04980000, 0x04b00000, 0x04880000, 0x04a00000,
+ 0x04700000, 0x04600000, 0x04000000, 0x04500000,
+ 0x04480000, 0x04100000, 0x04680000, 0x04580000,
+ 0x04380000, 0x04280000, 0x04400000, 0x04780000,
+ 0x04180000, 0x04300000, 0x04080000, 0x04200000,
+ /* 2 */
+ 0x10000004, 0x38000004, 0x60000004, 0x78000004,
+ 0x48000004, 0x28000004, 0x50000004, 0x58000004,
+ 0x08000004, 0x20000004, 0x00000004, 0x68000004,
+ 0x30000004, 0x40000004, 0x70000004, 0x18000004,
+ 0x90000001, 0xb8000001, 0xe0000001, 0xf8000001,
+ 0xc8000001, 0xa8000001, 0xd0000001, 0xd8000001,
+ 0x88000001, 0xa0000001, 0x80000001, 0xe8000001,
+ 0xb0000001, 0xc0000001, 0xf0000001, 0x98000001,
+ 0x10000001, 0x38000001, 0x60000001, 0x78000001,
+ 0x48000001, 0x28000001, 0x50000001, 0x58000001,
+ 0x08000001, 0x20000001, 0x00000001, 0x68000001,
+ 0x30000001, 0x40000001, 0x70000001, 0x18000001,
+ 0x10000003, 0x38000003, 0x60000003, 0x78000003,
+ 0x48000003, 0x28000003, 0x50000003, 0x58000003,
+ 0x08000003, 0x20000003, 0x00000003, 0x68000003,
+ 0x30000003, 0x40000003, 0x70000003, 0x18000003,
+ 0x10000002, 0x38000002, 0x60000002, 0x78000002,
+ 0x48000002, 0x28000002, 0x50000002, 0x58000002,
+ 0x08000002, 0x20000002, 0x00000002, 0x68000002,
+ 0x30000002, 0x40000002, 0x70000002, 0x18000002,
+ 0x90000006, 0xb8000006, 0xe0000006, 0xf8000006,
+ 0xc8000006, 0xa8000006, 0xd0000006, 0xd8000006,
+ 0x88000006, 0xa0000006, 0x80000006, 0xe8000006,
+ 0xb0000006, 0xc0000006, 0xf0000006, 0x98000006,
+ 0x10000007, 0x38000007, 0x60000007, 0x78000007,
+ 0x48000007, 0x28000007, 0x50000007, 0x58000007,
+ 0x08000007, 0x20000007, 0x00000007, 0x68000007,
+ 0x30000007, 0x40000007, 0x70000007, 0x18000007,
+ 0x90000005, 0xb8000005, 0xe0000005, 0xf8000005,
+ 0xc8000005, 0xa8000005, 0xd0000005, 0xd8000005,
+ 0x88000005, 0xa0000005, 0x80000005, 0xe8000005,
+ 0xb0000005, 0xc0000005, 0xf0000005, 0x98000005,
+ 0x10000006, 0x38000006, 0x60000006, 0x78000006,
+ 0x48000006, 0x28000006, 0x50000006, 0x58000006,
+ 0x08000006, 0x20000006, 0x00000006, 0x68000006,
+ 0x30000006, 0x40000006, 0x70000006, 0x18000006,
+ 0x90000000, 0xb8000000, 0xe0000000, 0xf8000000,
+ 0xc8000000, 0xa8000000, 0xd0000000, 0xd8000000,
+ 0x88000000, 0xa0000000, 0x80000000, 0xe8000000,
+ 0xb0000000, 0xc0000000, 0xf0000000, 0x98000000,
+ 0x90000003, 0xb8000003, 0xe0000003, 0xf8000003,
+ 0xc8000003, 0xa8000003, 0xd0000003, 0xd8000003,
+ 0x88000003, 0xa0000003, 0x80000003, 0xe8000003,
+ 0xb0000003, 0xc0000003, 0xf0000003, 0x98000003,
+ 0x90000007, 0xb8000007, 0xe0000007, 0xf8000007,
+ 0xc8000007, 0xa8000007, 0xd0000007, 0xd8000007,
+ 0x88000007, 0xa0000007, 0x80000007, 0xe8000007,
+ 0xb0000007, 0xc0000007, 0xf0000007, 0x98000007,
+ 0x10000005, 0x38000005, 0x60000005, 0x78000005,
+ 0x48000005, 0x28000005, 0x50000005, 0x58000005,
+ 0x08000005, 0x20000005, 0x00000005, 0x68000005,
+ 0x30000005, 0x40000005, 0x70000005, 0x18000005,
+ 0x10000000, 0x38000000, 0x60000000, 0x78000000,
+ 0x48000000, 0x28000000, 0x50000000, 0x58000000,
+ 0x08000000, 0x20000000, 0x00000000, 0x68000000,
+ 0x30000000, 0x40000000, 0x70000000, 0x18000000,
+ 0x90000004, 0xb8000004, 0xe0000004, 0xf8000004,
+ 0xc8000004, 0xa8000004, 0xd0000004, 0xd8000004,
+ 0x88000004, 0xa0000004, 0x80000004, 0xe8000004,
+ 0xb0000004, 0xc0000004, 0xf0000004, 0x98000004,
+ 0x90000002, 0xb8000002, 0xe0000002, 0xf8000002,
+ 0xc8000002, 0xa8000002, 0xd0000002, 0xd8000002,
+ 0x88000002, 0xa0000002, 0x80000002, 0xe8000002,
+ 0xb0000002, 0xc0000002, 0xf0000002, 0x98000002,
+ /* 3 */
+ 0x00000028, 0x00000010, 0x00000050, 0x00000058,
+ 0x00000048, 0x00000008, 0x00000060, 0x00000018,
+ 0x00000038, 0x00000020, 0x00000068, 0x00000000,
+ 0x00000030, 0x00000078, 0x00000040, 0x00000070,
+ 0x00000228, 0x00000210, 0x00000250, 0x00000258,
+ 0x00000248, 0x00000208, 0x00000260, 0x00000218,
+ 0x00000238, 0x00000220, 0x00000268, 0x00000200,
+ 0x00000230, 0x00000278, 0x00000240, 0x00000270,
+ 0x000005a8, 0x00000590, 0x000005d0, 0x000005d8,
+ 0x000005c8, 0x00000588, 0x000005e0, 0x00000598,
+ 0x000005b8, 0x000005a0, 0x000005e8, 0x00000580,
+ 0x000005b0, 0x000005f8, 0x000005c0, 0x000005f0,
+ 0x00000728, 0x00000710, 0x00000750, 0x00000758,
+ 0x00000748, 0x00000708, 0x00000760, 0x00000718,
+ 0x00000738, 0x00000720, 0x00000768, 0x00000700,
+ 0x00000730, 0x00000778, 0x00000740, 0x00000770,
+ 0x00000428, 0x00000410, 0x00000450, 0x00000458,
+ 0x00000448, 0x00000408, 0x00000460, 0x00000418,
+ 0x00000438, 0x00000420, 0x00000468, 0x00000400,
+ 0x00000430, 0x00000478, 0x00000440, 0x00000470,
+ 0x000001a8, 0x00000190, 0x000001d0, 0x000001d8,
+ 0x000001c8, 0x00000188, 0x000001e0, 0x00000198,
+ 0x000001b8, 0x000001a0, 0x000001e8, 0x00000180,
+ 0x000001b0, 0x000001f8, 0x000001c0, 0x000001f0,
+ 0x000003a8, 0x00000390, 0x000003d0, 0x000003d8,
+ 0x000003c8, 0x00000388, 0x000003e0, 0x00000398,
+ 0x000003b8, 0x000003a0, 0x000003e8, 0x00000380,
+ 0x000003b0, 0x000003f8, 0x000003c0, 0x000003f0,
+ 0x000000a8, 0x00000090, 0x000000d0, 0x000000d8,
+ 0x000000c8, 0x00000088, 0x000000e0, 0x00000098,
+ 0x000000b8, 0x000000a0, 0x000000e8, 0x00000080,
+ 0x000000b0, 0x000000f8, 0x000000c0, 0x000000f0,
+ 0x00000528, 0x00000510, 0x00000550, 0x00000558,
+ 0x00000548, 0x00000508, 0x00000560, 0x00000518,
+ 0x00000538, 0x00000520, 0x00000568, 0x00000500,
+ 0x00000530, 0x00000578, 0x00000540, 0x00000570,
+ 0x00000128, 0x00000110, 0x00000150, 0x00000158,
+ 0x00000148, 0x00000108, 0x00000160, 0x00000118,
+ 0x00000138, 0x00000120, 0x00000168, 0x00000100,
+ 0x00000130, 0x00000178, 0x00000140, 0x00000170,
+ 0x000004a8, 0x00000490, 0x000004d0, 0x000004d8,
+ 0x000004c8, 0x00000488, 0x000004e0, 0x00000498,
+ 0x000004b8, 0x000004a0, 0x000004e8, 0x00000480,
+ 0x000004b0, 0x000004f8, 0x000004c0, 0x000004f0,
+ 0x00000328, 0x00000310, 0x00000350, 0x00000358,
+ 0x00000348, 0x00000308, 0x00000360, 0x00000318,
+ 0x00000338, 0x00000320, 0x00000368, 0x00000300,
+ 0x00000330, 0x00000378, 0x00000340, 0x00000370,
+ 0x000007a8, 0x00000790, 0x000007d0, 0x000007d8,
+ 0x000007c8, 0x00000788, 0x000007e0, 0x00000798,
+ 0x000007b8, 0x000007a0, 0x000007e8, 0x00000780,
+ 0x000007b0, 0x000007f8, 0x000007c0, 0x000007f0,
+ 0x000006a8, 0x00000690, 0x000006d0, 0x000006d8,
+ 0x000006c8, 0x00000688, 0x000006e0, 0x00000698,
+ 0x000006b8, 0x000006a0, 0x000006e8, 0x00000680,
+ 0x000006b0, 0x000006f8, 0x000006c0, 0x000006f0,
+ 0x000002a8, 0x00000290, 0x000002d0, 0x000002d8,
+ 0x000002c8, 0x00000288, 0x000002e0, 0x00000298,
+ 0x000002b8, 0x000002a0, 0x000002e8, 0x00000280,
+ 0x000002b0, 0x000002f8, 0x000002c0, 0x000002f0,
+ 0x00000628, 0x00000610, 0x00000650, 0x00000658,
+ 0x00000648, 0x00000608, 0x00000660, 0x00000618,
+ 0x00000638, 0x00000620, 0x00000668, 0x00000600,
+ 0x00000630, 0x00000678, 0x00000640, 0x00000670,
+ }
};
-const struct gost28147_param gost28147_param_CryptoPro_C =
-{
- 1,
- {
- /* 0 */
- 0x00000800, 0x00005800, 0x00006000, 0x00001000,
- 0x00004800, 0x00006800, 0x00000000, 0x00007800,
- 0x00002000, 0x00002800, 0x00004000, 0x00007000,
- 0x00005000, 0x00003800, 0x00003000, 0x00001800,
- 0x00008800, 0x0000d800, 0x0000e000, 0x00009000,
- 0x0000c800, 0x0000e800, 0x00008000, 0x0000f800,
- 0x0000a000, 0x0000a800, 0x0000c000, 0x0000f000,
- 0x0000d000, 0x0000b800, 0x0000b000, 0x00009800,
- 0x00038800, 0x0003d800, 0x0003e000, 0x00039000,
- 0x0003c800, 0x0003e800, 0x00038000, 0x0003f800,
- 0x0003a000, 0x0003a800, 0x0003c000, 0x0003f000,
- 0x0003d000, 0x0003b800, 0x0003b000, 0x00039800,
- 0x00068800, 0x0006d800, 0x0006e000, 0x00069000,
- 0x0006c800, 0x0006e800, 0x00068000, 0x0006f800,
- 0x0006a000, 0x0006a800, 0x0006c000, 0x0006f000,
- 0x0006d000, 0x0006b800, 0x0006b000, 0x00069800,
- 0x00058800, 0x0005d800, 0x0005e000, 0x00059000,
- 0x0005c800, 0x0005e800, 0x00058000, 0x0005f800,
- 0x0005a000, 0x0005a800, 0x0005c000, 0x0005f000,
- 0x0005d000, 0x0005b800, 0x0005b000, 0x00059800,
- 0x00020800, 0x00025800, 0x00026000, 0x00021000,
- 0x00024800, 0x00026800, 0x00020000, 0x00027800,
- 0x00022000, 0x00022800, 0x00024000, 0x00027000,
- 0x00025000, 0x00023800, 0x00023000, 0x00021800,
- 0x00028800, 0x0002d800, 0x0002e000, 0x00029000,
- 0x0002c800, 0x0002e800, 0x00028000, 0x0002f800,
- 0x0002a000, 0x0002a800, 0x0002c000, 0x0002f000,
- 0x0002d000, 0x0002b800, 0x0002b000, 0x00029800,
- 0x00010800, 0x00015800, 0x00016000, 0x00011000,
- 0x00014800, 0x00016800, 0x00010000, 0x00017800,
- 0x00012000, 0x00012800, 0x00014000, 0x00017000,
- 0x00015000, 0x00013800, 0x00013000, 0x00011800,
- 0x00040800, 0x00045800, 0x00046000, 0x00041000,
- 0x00044800, 0x00046800, 0x00040000, 0x00047800,
- 0x00042000, 0x00042800, 0x00044000, 0x00047000,
- 0x00045000, 0x00043800, 0x00043000, 0x00041800,
- 0x00070800, 0x00075800, 0x00076000, 0x00071000,
- 0x00074800, 0x00076800, 0x00070000, 0x00077800,
- 0x00072000, 0x00072800, 0x00074000, 0x00077000,
- 0x00075000, 0x00073800, 0x00073000, 0x00071800,
- 0x00078800, 0x0007d800, 0x0007e000, 0x00079000,
- 0x0007c800, 0x0007e800, 0x00078000, 0x0007f800,
- 0x0007a000, 0x0007a800, 0x0007c000, 0x0007f000,
- 0x0007d000, 0x0007b800, 0x0007b000, 0x00079800,
- 0x00060800, 0x00065800, 0x00066000, 0x00061000,
- 0x00064800, 0x00066800, 0x00060000, 0x00067800,
- 0x00062000, 0x00062800, 0x00064000, 0x00067000,
- 0x00065000, 0x00063800, 0x00063000, 0x00061800,
- 0x00048800, 0x0004d800, 0x0004e000, 0x00049000,
- 0x0004c800, 0x0004e800, 0x00048000, 0x0004f800,
- 0x0004a000, 0x0004a800, 0x0004c000, 0x0004f000,
- 0x0004d000, 0x0004b800, 0x0004b000, 0x00049800,
- 0x00050800, 0x00055800, 0x00056000, 0x00051000,
- 0x00054800, 0x00056800, 0x00050000, 0x00057800,
- 0x00052000, 0x00052800, 0x00054000, 0x00057000,
- 0x00055000, 0x00053800, 0x00053000, 0x00051800,
- 0x00030800, 0x00035800, 0x00036000, 0x00031000,
- 0x00034800, 0x00036800, 0x00030000, 0x00037800,
- 0x00032000, 0x00032800, 0x00034000, 0x00037000,
- 0x00035000, 0x00033800, 0x00033000, 0x00031800,
- 0x00018800, 0x0001d800, 0x0001e000, 0x00019000,
- 0x0001c800, 0x0001e800, 0x00018000, 0x0001f800,
- 0x0001a000, 0x0001a800, 0x0001c000, 0x0001f000,
- 0x0001d000, 0x0001b800, 0x0001b000, 0x00019800,
- /* 1 */
- 0x01c00000, 0x01900000, 0x01a80000, 0x01800000,
- 0x01a00000, 0x01c80000, 0x01f80000, 0x01d00000,
- 0x01980000, 0x01b80000, 0x01e00000, 0x01e80000,
- 0x01b00000, 0x01f00000, 0x01880000, 0x01d80000,
- 0x03400000, 0x03100000, 0x03280000, 0x03000000,
- 0x03200000, 0x03480000, 0x03780000, 0x03500000,
- 0x03180000, 0x03380000, 0x03600000, 0x03680000,
- 0x03300000, 0x03700000, 0x03080000, 0x03580000,
- 0x00400000, 0x00100000, 0x00280000, 0x00000000,
- 0x00200000, 0x00480000, 0x00780000, 0x00500000,
- 0x00180000, 0x00380000, 0x00600000, 0x00680000,
- 0x00300000, 0x00700000, 0x00080000, 0x00580000,
- 0x00c00000, 0x00900000, 0x00a80000, 0x00800000,
- 0x00a00000, 0x00c80000, 0x00f80000, 0x00d00000,
- 0x00980000, 0x00b80000, 0x00e00000, 0x00e80000,
- 0x00b00000, 0x00f00000, 0x00880000, 0x00d80000,
- 0x02c00000, 0x02900000, 0x02a80000, 0x02800000,
- 0x02a00000, 0x02c80000, 0x02f80000, 0x02d00000,
- 0x02980000, 0x02b80000, 0x02e00000, 0x02e80000,
- 0x02b00000, 0x02f00000, 0x02880000, 0x02d80000,
- 0x06c00000, 0x06900000, 0x06a80000, 0x06800000,
- 0x06a00000, 0x06c80000, 0x06f80000, 0x06d00000,
- 0x06980000, 0x06b80000, 0x06e00000, 0x06e80000,
- 0x06b00000, 0x06f00000, 0x06880000, 0x06d80000,
- 0x05400000, 0x05100000, 0x05280000, 0x05000000,
- 0x05200000, 0x05480000, 0x05780000, 0x05500000,
- 0x05180000, 0x05380000, 0x05600000, 0x05680000,
- 0x05300000, 0x05700000, 0x05080000, 0x05580000,
- 0x04400000, 0x04100000, 0x04280000, 0x04000000,
- 0x04200000, 0x04480000, 0x04780000, 0x04500000,
- 0x04180000, 0x04380000, 0x04600000, 0x04680000,
- 0x04300000, 0x04700000, 0x04080000, 0x04580000,
- 0x05c00000, 0x05900000, 0x05a80000, 0x05800000,
- 0x05a00000, 0x05c80000, 0x05f80000, 0x05d00000,
- 0x05980000, 0x05b80000, 0x05e00000, 0x05e80000,
- 0x05b00000, 0x05f00000, 0x05880000, 0x05d80000,
- 0x01400000, 0x01100000, 0x01280000, 0x01000000,
- 0x01200000, 0x01480000, 0x01780000, 0x01500000,
- 0x01180000, 0x01380000, 0x01600000, 0x01680000,
- 0x01300000, 0x01700000, 0x01080000, 0x01580000,
- 0x04c00000, 0x04900000, 0x04a80000, 0x04800000,
- 0x04a00000, 0x04c80000, 0x04f80000, 0x04d00000,
- 0x04980000, 0x04b80000, 0x04e00000, 0x04e80000,
- 0x04b00000, 0x04f00000, 0x04880000, 0x04d80000,
- 0x03c00000, 0x03900000, 0x03a80000, 0x03800000,
- 0x03a00000, 0x03c80000, 0x03f80000, 0x03d00000,
- 0x03980000, 0x03b80000, 0x03e00000, 0x03e80000,
- 0x03b00000, 0x03f00000, 0x03880000, 0x03d80000,
- 0x07400000, 0x07100000, 0x07280000, 0x07000000,
- 0x07200000, 0x07480000, 0x07780000, 0x07500000,
- 0x07180000, 0x07380000, 0x07600000, 0x07680000,
- 0x07300000, 0x07700000, 0x07080000, 0x07580000,
- 0x07c00000, 0x07900000, 0x07a80000, 0x07800000,
- 0x07a00000, 0x07c80000, 0x07f80000, 0x07d00000,
- 0x07980000, 0x07b80000, 0x07e00000, 0x07e80000,
- 0x07b00000, 0x07f00000, 0x07880000, 0x07d80000,
- 0x06400000, 0x06100000, 0x06280000, 0x06000000,
- 0x06200000, 0x06480000, 0x06780000, 0x06500000,
- 0x06180000, 0x06380000, 0x06600000, 0x06680000,
- 0x06300000, 0x06700000, 0x06080000, 0x06580000,
- 0x02400000, 0x02100000, 0x02280000, 0x02000000,
- 0x02200000, 0x02480000, 0x02780000, 0x02500000,
- 0x02180000, 0x02380000, 0x02600000, 0x02680000,
- 0x02300000, 0x02700000, 0x02080000, 0x02580000,
- /* 2 */
- 0x40000006, 0x68000006, 0x58000006, 0x00000006,
- 0x20000006, 0x28000006, 0x08000006, 0x10000006,
- 0x48000006, 0x18000006, 0x60000006, 0x70000006,
- 0x30000006, 0x78000006, 0x50000006, 0x38000006,
- 0xc0000004, 0xe8000004, 0xd8000004, 0x80000004,
- 0xa0000004, 0xa8000004, 0x88000004, 0x90000004,
- 0xc8000004, 0x98000004, 0xe0000004, 0xf0000004,
- 0xb0000004, 0xf8000004, 0xd0000004, 0xb8000004,
- 0xc0000005, 0xe8000005, 0xd8000005, 0x80000005,
- 0xa0000005, 0xa8000005, 0x88000005, 0x90000005,
- 0xc8000005, 0x98000005, 0xe0000005, 0xf0000005,
- 0xb0000005, 0xf8000005, 0xd0000005, 0xb8000005,
- 0xc0000000, 0xe8000000, 0xd8000000, 0x80000000,
- 0xa0000000, 0xa8000000, 0x88000000, 0x90000000,
- 0xc8000000, 0x98000000, 0xe0000000, 0xf0000000,
- 0xb0000000, 0xf8000000, 0xd0000000, 0xb8000000,
- 0x40000004, 0x68000004, 0x58000004, 0x00000004,
- 0x20000004, 0x28000004, 0x08000004, 0x10000004,
- 0x48000004, 0x18000004, 0x60000004, 0x70000004,
- 0x30000004, 0x78000004, 0x50000004, 0x38000004,
- 0x40000007, 0x68000007, 0x58000007, 0x00000007,
- 0x20000007, 0x28000007, 0x08000007, 0x10000007,
- 0x48000007, 0x18000007, 0x60000007, 0x70000007,
- 0x30000007, 0x78000007, 0x50000007, 0x38000007,
- 0x40000001, 0x68000001, 0x58000001, 0x00000001,
- 0x20000001, 0x28000001, 0x08000001, 0x10000001,
- 0x48000001, 0x18000001, 0x60000001, 0x70000001,
- 0x30000001, 0x78000001, 0x50000001, 0x38000001,
- 0x40000002, 0x68000002, 0x58000002, 0x00000002,
- 0x20000002, 0x28000002, 0x08000002, 0x10000002,
- 0x48000002, 0x18000002, 0x60000002, 0x70000002,
- 0x30000002, 0x78000002, 0x50000002, 0x38000002,
- 0xc0000003, 0xe8000003, 0xd8000003, 0x80000003,
- 0xa0000003, 0xa8000003, 0x88000003, 0x90000003,
- 0xc8000003, 0x98000003, 0xe0000003, 0xf0000003,
- 0xb0000003, 0xf8000003, 0xd0000003, 0xb8000003,
- 0xc0000001, 0xe8000001, 0xd8000001, 0x80000001,
- 0xa0000001, 0xa8000001, 0x88000001, 0x90000001,
- 0xc8000001, 0x98000001, 0xe0000001, 0xf0000001,
- 0xb0000001, 0xf8000001, 0xd0000001, 0xb8000001,
- 0x40000003, 0x68000003, 0x58000003, 0x00000003,
- 0x20000003, 0x28000003, 0x08000003, 0x10000003,
- 0x48000003, 0x18000003, 0x60000003, 0x70000003,
- 0x30000003, 0x78000003, 0x50000003, 0x38000003,
- 0xc0000002, 0xe8000002, 0xd8000002, 0x80000002,
- 0xa0000002, 0xa8000002, 0x88000002, 0x90000002,
- 0xc8000002, 0x98000002, 0xe0000002, 0xf0000002,
- 0xb0000002, 0xf8000002, 0xd0000002, 0xb8000002,
- 0x40000005, 0x68000005, 0x58000005, 0x00000005,
- 0x20000005, 0x28000005, 0x08000005, 0x10000005,
- 0x48000005, 0x18000005, 0x60000005, 0x70000005,
- 0x30000005, 0x78000005, 0x50000005, 0x38000005,
- 0x40000000, 0x68000000, 0x58000000, 0x00000000,
- 0x20000000, 0x28000000, 0x08000000, 0x10000000,
- 0x48000000, 0x18000000, 0x60000000, 0x70000000,
- 0x30000000, 0x78000000, 0x50000000, 0x38000000,
- 0xc0000007, 0xe8000007, 0xd8000007, 0x80000007,
- 0xa0000007, 0xa8000007, 0x88000007, 0x90000007,
- 0xc8000007, 0x98000007, 0xe0000007, 0xf0000007,
- 0xb0000007, 0xf8000007, 0xd0000007, 0xb8000007,
- 0xc0000006, 0xe8000006, 0xd8000006, 0x80000006,
- 0xa0000006, 0xa8000006, 0x88000006, 0x90000006,
- 0xc8000006, 0x98000006, 0xe0000006, 0xf0000006,
- 0xb0000006, 0xf8000006, 0xd0000006, 0xb8000006,
- /* 3 */
- 0x000003d0, 0x000003c8, 0x000003b0, 0x000003c0,
- 0x000003e8, 0x000003f0, 0x00000390, 0x00000380,
- 0x000003f8, 0x00000398, 0x000003a8, 0x000003d8,
- 0x000003a0, 0x00000388, 0x000003e0, 0x000003b8,
- 0x00000250, 0x00000248, 0x00000230, 0x00000240,
- 0x00000268, 0x00000270, 0x00000210, 0x00000200,
- 0x00000278, 0x00000218, 0x00000228, 0x00000258,
- 0x00000220, 0x00000208, 0x00000260, 0x00000238,
- 0x00000050, 0x00000048, 0x00000030, 0x00000040,
- 0x00000068, 0x00000070, 0x00000010, 0x00000000,
- 0x00000078, 0x00000018, 0x00000028, 0x00000058,
- 0x00000020, 0x00000008, 0x00000060, 0x00000038,
- 0x000002d0, 0x000002c8, 0x000002b0, 0x000002c0,
- 0x000002e8, 0x000002f0, 0x00000290, 0x00000280,
- 0x000002f8, 0x00000298, 0x000002a8, 0x000002d8,
- 0x000002a0, 0x00000288, 0x000002e0, 0x000002b8,
- 0x00000550, 0x00000548, 0x00000530, 0x00000540,
- 0x00000568, 0x00000570, 0x00000510, 0x00000500,
- 0x00000578, 0x00000518, 0x00000528, 0x00000558,
- 0x00000520, 0x00000508, 0x00000560, 0x00000538,
- 0x00000150, 0x00000148, 0x00000130, 0x00000140,
- 0x00000168, 0x00000170, 0x00000110, 0x00000100,
- 0x00000178, 0x00000118, 0x00000128, 0x00000158,
- 0x00000120, 0x00000108, 0x00000160, 0x00000138,
- 0x000007d0, 0x000007c8, 0x000007b0, 0x000007c0,
- 0x000007e8, 0x000007f0, 0x00000790, 0x00000780,
- 0x000007f8, 0x00000798, 0x000007a8, 0x000007d8,
- 0x000007a0, 0x00000788, 0x000007e0, 0x000007b8,
- 0x00000750, 0x00000748, 0x00000730, 0x00000740,
- 0x00000768, 0x00000770, 0x00000710, 0x00000700,
- 0x00000778, 0x00000718, 0x00000728, 0x00000758,
- 0x00000720, 0x00000708, 0x00000760, 0x00000738,
- 0x00000650, 0x00000648, 0x00000630, 0x00000640,
- 0x00000668, 0x00000670, 0x00000610, 0x00000600,
- 0x00000678, 0x00000618, 0x00000628, 0x00000658,
- 0x00000620, 0x00000608, 0x00000660, 0x00000638,
- 0x00000350, 0x00000348, 0x00000330, 0x00000340,
- 0x00000368, 0x00000370, 0x00000310, 0x00000300,
- 0x00000378, 0x00000318, 0x00000328, 0x00000358,
- 0x00000320, 0x00000308, 0x00000360, 0x00000338,
- 0x000000d0, 0x000000c8, 0x000000b0, 0x000000c0,
- 0x000000e8, 0x000000f0, 0x00000090, 0x00000080,
- 0x000000f8, 0x00000098, 0x000000a8, 0x000000d8,
- 0x000000a0, 0x00000088, 0x000000e0, 0x000000b8,
- 0x000005d0, 0x000005c8, 0x000005b0, 0x000005c0,
- 0x000005e8, 0x000005f0, 0x00000590, 0x00000580,
- 0x000005f8, 0x00000598, 0x000005a8, 0x000005d8,
- 0x000005a0, 0x00000588, 0x000005e0, 0x000005b8,
- 0x000006d0, 0x000006c8, 0x000006b0, 0x000006c0,
- 0x000006e8, 0x000006f0, 0x00000690, 0x00000680,
- 0x000006f8, 0x00000698, 0x000006a8, 0x000006d8,
- 0x000006a0, 0x00000688, 0x000006e0, 0x000006b8,
- 0x000004d0, 0x000004c8, 0x000004b0, 0x000004c0,
- 0x000004e8, 0x000004f0, 0x00000490, 0x00000480,
- 0x000004f8, 0x00000498, 0x000004a8, 0x000004d8,
- 0x000004a0, 0x00000488, 0x000004e0, 0x000004b8,
- 0x000001d0, 0x000001c8, 0x000001b0, 0x000001c0,
- 0x000001e8, 0x000001f0, 0x00000190, 0x00000180,
- 0x000001f8, 0x00000198, 0x000001a8, 0x000001d8,
- 0x000001a0, 0x00000188, 0x000001e0, 0x000001b8,
- 0x00000450, 0x00000448, 0x00000430, 0x00000440,
- 0x00000468, 0x00000470, 0x00000410, 0x00000400,
- 0x00000478, 0x00000418, 0x00000428, 0x00000458,
- 0x00000420, 0x00000408, 0x00000460, 0x00000438,
- }
+const struct gost28147_param gost28147_param_CryptoPro_C = {
+ 1,
+ {
+ /* 0 */
+ 0x00000800, 0x00005800, 0x00006000, 0x00001000,
+ 0x00004800, 0x00006800, 0x00000000, 0x00007800,
+ 0x00002000, 0x00002800, 0x00004000, 0x00007000,
+ 0x00005000, 0x00003800, 0x00003000, 0x00001800,
+ 0x00008800, 0x0000d800, 0x0000e000, 0x00009000,
+ 0x0000c800, 0x0000e800, 0x00008000, 0x0000f800,
+ 0x0000a000, 0x0000a800, 0x0000c000, 0x0000f000,
+ 0x0000d000, 0x0000b800, 0x0000b000, 0x00009800,
+ 0x00038800, 0x0003d800, 0x0003e000, 0x00039000,
+ 0x0003c800, 0x0003e800, 0x00038000, 0x0003f800,
+ 0x0003a000, 0x0003a800, 0x0003c000, 0x0003f000,
+ 0x0003d000, 0x0003b800, 0x0003b000, 0x00039800,
+ 0x00068800, 0x0006d800, 0x0006e000, 0x00069000,
+ 0x0006c800, 0x0006e800, 0x00068000, 0x0006f800,
+ 0x0006a000, 0x0006a800, 0x0006c000, 0x0006f000,
+ 0x0006d000, 0x0006b800, 0x0006b000, 0x00069800,
+ 0x00058800, 0x0005d800, 0x0005e000, 0x00059000,
+ 0x0005c800, 0x0005e800, 0x00058000, 0x0005f800,
+ 0x0005a000, 0x0005a800, 0x0005c000, 0x0005f000,
+ 0x0005d000, 0x0005b800, 0x0005b000, 0x00059800,
+ 0x00020800, 0x00025800, 0x00026000, 0x00021000,
+ 0x00024800, 0x00026800, 0x00020000, 0x00027800,
+ 0x00022000, 0x00022800, 0x00024000, 0x00027000,
+ 0x00025000, 0x00023800, 0x00023000, 0x00021800,
+ 0x00028800, 0x0002d800, 0x0002e000, 0x00029000,
+ 0x0002c800, 0x0002e800, 0x00028000, 0x0002f800,
+ 0x0002a000, 0x0002a800, 0x0002c000, 0x0002f000,
+ 0x0002d000, 0x0002b800, 0x0002b000, 0x00029800,
+ 0x00010800, 0x00015800, 0x00016000, 0x00011000,
+ 0x00014800, 0x00016800, 0x00010000, 0x00017800,
+ 0x00012000, 0x00012800, 0x00014000, 0x00017000,
+ 0x00015000, 0x00013800, 0x00013000, 0x00011800,
+ 0x00040800, 0x00045800, 0x00046000, 0x00041000,
+ 0x00044800, 0x00046800, 0x00040000, 0x00047800,
+ 0x00042000, 0x00042800, 0x00044000, 0x00047000,
+ 0x00045000, 0x00043800, 0x00043000, 0x00041800,
+ 0x00070800, 0x00075800, 0x00076000, 0x00071000,
+ 0x00074800, 0x00076800, 0x00070000, 0x00077800,
+ 0x00072000, 0x00072800, 0x00074000, 0x00077000,
+ 0x00075000, 0x00073800, 0x00073000, 0x00071800,
+ 0x00078800, 0x0007d800, 0x0007e000, 0x00079000,
+ 0x0007c800, 0x0007e800, 0x00078000, 0x0007f800,
+ 0x0007a000, 0x0007a800, 0x0007c000, 0x0007f000,
+ 0x0007d000, 0x0007b800, 0x0007b000, 0x00079800,
+ 0x00060800, 0x00065800, 0x00066000, 0x00061000,
+ 0x00064800, 0x00066800, 0x00060000, 0x00067800,
+ 0x00062000, 0x00062800, 0x00064000, 0x00067000,
+ 0x00065000, 0x00063800, 0x00063000, 0x00061800,
+ 0x00048800, 0x0004d800, 0x0004e000, 0x00049000,
+ 0x0004c800, 0x0004e800, 0x00048000, 0x0004f800,
+ 0x0004a000, 0x0004a800, 0x0004c000, 0x0004f000,
+ 0x0004d000, 0x0004b800, 0x0004b000, 0x00049800,
+ 0x00050800, 0x00055800, 0x00056000, 0x00051000,
+ 0x00054800, 0x00056800, 0x00050000, 0x00057800,
+ 0x00052000, 0x00052800, 0x00054000, 0x00057000,
+ 0x00055000, 0x00053800, 0x00053000, 0x00051800,
+ 0x00030800, 0x00035800, 0x00036000, 0x00031000,
+ 0x00034800, 0x00036800, 0x00030000, 0x00037800,
+ 0x00032000, 0x00032800, 0x00034000, 0x00037000,
+ 0x00035000, 0x00033800, 0x00033000, 0x00031800,
+ 0x00018800, 0x0001d800, 0x0001e000, 0x00019000,
+ 0x0001c800, 0x0001e800, 0x00018000, 0x0001f800,
+ 0x0001a000, 0x0001a800, 0x0001c000, 0x0001f000,
+ 0x0001d000, 0x0001b800, 0x0001b000, 0x00019800,
+ /* 1 */
+ 0x01c00000, 0x01900000, 0x01a80000, 0x01800000,
+ 0x01a00000, 0x01c80000, 0x01f80000, 0x01d00000,
+ 0x01980000, 0x01b80000, 0x01e00000, 0x01e80000,
+ 0x01b00000, 0x01f00000, 0x01880000, 0x01d80000,
+ 0x03400000, 0x03100000, 0x03280000, 0x03000000,
+ 0x03200000, 0x03480000, 0x03780000, 0x03500000,
+ 0x03180000, 0x03380000, 0x03600000, 0x03680000,
+ 0x03300000, 0x03700000, 0x03080000, 0x03580000,
+ 0x00400000, 0x00100000, 0x00280000, 0x00000000,
+ 0x00200000, 0x00480000, 0x00780000, 0x00500000,
+ 0x00180000, 0x00380000, 0x00600000, 0x00680000,
+ 0x00300000, 0x00700000, 0x00080000, 0x00580000,
+ 0x00c00000, 0x00900000, 0x00a80000, 0x00800000,
+ 0x00a00000, 0x00c80000, 0x00f80000, 0x00d00000,
+ 0x00980000, 0x00b80000, 0x00e00000, 0x00e80000,
+ 0x00b00000, 0x00f00000, 0x00880000, 0x00d80000,
+ 0x02c00000, 0x02900000, 0x02a80000, 0x02800000,
+ 0x02a00000, 0x02c80000, 0x02f80000, 0x02d00000,
+ 0x02980000, 0x02b80000, 0x02e00000, 0x02e80000,
+ 0x02b00000, 0x02f00000, 0x02880000, 0x02d80000,
+ 0x06c00000, 0x06900000, 0x06a80000, 0x06800000,
+ 0x06a00000, 0x06c80000, 0x06f80000, 0x06d00000,
+ 0x06980000, 0x06b80000, 0x06e00000, 0x06e80000,
+ 0x06b00000, 0x06f00000, 0x06880000, 0x06d80000,
+ 0x05400000, 0x05100000, 0x05280000, 0x05000000,
+ 0x05200000, 0x05480000, 0x05780000, 0x05500000,
+ 0x05180000, 0x05380000, 0x05600000, 0x05680000,
+ 0x05300000, 0x05700000, 0x05080000, 0x05580000,
+ 0x04400000, 0x04100000, 0x04280000, 0x04000000,
+ 0x04200000, 0x04480000, 0x04780000, 0x04500000,
+ 0x04180000, 0x04380000, 0x04600000, 0x04680000,
+ 0x04300000, 0x04700000, 0x04080000, 0x04580000,
+ 0x05c00000, 0x05900000, 0x05a80000, 0x05800000,
+ 0x05a00000, 0x05c80000, 0x05f80000, 0x05d00000,
+ 0x05980000, 0x05b80000, 0x05e00000, 0x05e80000,
+ 0x05b00000, 0x05f00000, 0x05880000, 0x05d80000,
+ 0x01400000, 0x01100000, 0x01280000, 0x01000000,
+ 0x01200000, 0x01480000, 0x01780000, 0x01500000,
+ 0x01180000, 0x01380000, 0x01600000, 0x01680000,
+ 0x01300000, 0x01700000, 0x01080000, 0x01580000,
+ 0x04c00000, 0x04900000, 0x04a80000, 0x04800000,
+ 0x04a00000, 0x04c80000, 0x04f80000, 0x04d00000,
+ 0x04980000, 0x04b80000, 0x04e00000, 0x04e80000,
+ 0x04b00000, 0x04f00000, 0x04880000, 0x04d80000,
+ 0x03c00000, 0x03900000, 0x03a80000, 0x03800000,
+ 0x03a00000, 0x03c80000, 0x03f80000, 0x03d00000,
+ 0x03980000, 0x03b80000, 0x03e00000, 0x03e80000,
+ 0x03b00000, 0x03f00000, 0x03880000, 0x03d80000,
+ 0x07400000, 0x07100000, 0x07280000, 0x07000000,
+ 0x07200000, 0x07480000, 0x07780000, 0x07500000,
+ 0x07180000, 0x07380000, 0x07600000, 0x07680000,
+ 0x07300000, 0x07700000, 0x07080000, 0x07580000,
+ 0x07c00000, 0x07900000, 0x07a80000, 0x07800000,
+ 0x07a00000, 0x07c80000, 0x07f80000, 0x07d00000,
+ 0x07980000, 0x07b80000, 0x07e00000, 0x07e80000,
+ 0x07b00000, 0x07f00000, 0x07880000, 0x07d80000,
+ 0x06400000, 0x06100000, 0x06280000, 0x06000000,
+ 0x06200000, 0x06480000, 0x06780000, 0x06500000,
+ 0x06180000, 0x06380000, 0x06600000, 0x06680000,
+ 0x06300000, 0x06700000, 0x06080000, 0x06580000,
+ 0x02400000, 0x02100000, 0x02280000, 0x02000000,
+ 0x02200000, 0x02480000, 0x02780000, 0x02500000,
+ 0x02180000, 0x02380000, 0x02600000, 0x02680000,
+ 0x02300000, 0x02700000, 0x02080000, 0x02580000,
+ /* 2 */
+ 0x40000006, 0x68000006, 0x58000006, 0x00000006,
+ 0x20000006, 0x28000006, 0x08000006, 0x10000006,
+ 0x48000006, 0x18000006, 0x60000006, 0x70000006,
+ 0x30000006, 0x78000006, 0x50000006, 0x38000006,
+ 0xc0000004, 0xe8000004, 0xd8000004, 0x80000004,
+ 0xa0000004, 0xa8000004, 0x88000004, 0x90000004,
+ 0xc8000004, 0x98000004, 0xe0000004, 0xf0000004,
+ 0xb0000004, 0xf8000004, 0xd0000004, 0xb8000004,
+ 0xc0000005, 0xe8000005, 0xd8000005, 0x80000005,
+ 0xa0000005, 0xa8000005, 0x88000005, 0x90000005,
+ 0xc8000005, 0x98000005, 0xe0000005, 0xf0000005,
+ 0xb0000005, 0xf8000005, 0xd0000005, 0xb8000005,
+ 0xc0000000, 0xe8000000, 0xd8000000, 0x80000000,
+ 0xa0000000, 0xa8000000, 0x88000000, 0x90000000,
+ 0xc8000000, 0x98000000, 0xe0000000, 0xf0000000,
+ 0xb0000000, 0xf8000000, 0xd0000000, 0xb8000000,
+ 0x40000004, 0x68000004, 0x58000004, 0x00000004,
+ 0x20000004, 0x28000004, 0x08000004, 0x10000004,
+ 0x48000004, 0x18000004, 0x60000004, 0x70000004,
+ 0x30000004, 0x78000004, 0x50000004, 0x38000004,
+ 0x40000007, 0x68000007, 0x58000007, 0x00000007,
+ 0x20000007, 0x28000007, 0x08000007, 0x10000007,
+ 0x48000007, 0x18000007, 0x60000007, 0x70000007,
+ 0x30000007, 0x78000007, 0x50000007, 0x38000007,
+ 0x40000001, 0x68000001, 0x58000001, 0x00000001,
+ 0x20000001, 0x28000001, 0x08000001, 0x10000001,
+ 0x48000001, 0x18000001, 0x60000001, 0x70000001,
+ 0x30000001, 0x78000001, 0x50000001, 0x38000001,
+ 0x40000002, 0x68000002, 0x58000002, 0x00000002,
+ 0x20000002, 0x28000002, 0x08000002, 0x10000002,
+ 0x48000002, 0x18000002, 0x60000002, 0x70000002,
+ 0x30000002, 0x78000002, 0x50000002, 0x38000002,
+ 0xc0000003, 0xe8000003, 0xd8000003, 0x80000003,
+ 0xa0000003, 0xa8000003, 0x88000003, 0x90000003,
+ 0xc8000003, 0x98000003, 0xe0000003, 0xf0000003,
+ 0xb0000003, 0xf8000003, 0xd0000003, 0xb8000003,
+ 0xc0000001, 0xe8000001, 0xd8000001, 0x80000001,
+ 0xa0000001, 0xa8000001, 0x88000001, 0x90000001,
+ 0xc8000001, 0x98000001, 0xe0000001, 0xf0000001,
+ 0xb0000001, 0xf8000001, 0xd0000001, 0xb8000001,
+ 0x40000003, 0x68000003, 0x58000003, 0x00000003,
+ 0x20000003, 0x28000003, 0x08000003, 0x10000003,
+ 0x48000003, 0x18000003, 0x60000003, 0x70000003,
+ 0x30000003, 0x78000003, 0x50000003, 0x38000003,
+ 0xc0000002, 0xe8000002, 0xd8000002, 0x80000002,
+ 0xa0000002, 0xa8000002, 0x88000002, 0x90000002,
+ 0xc8000002, 0x98000002, 0xe0000002, 0xf0000002,
+ 0xb0000002, 0xf8000002, 0xd0000002, 0xb8000002,
+ 0x40000005, 0x68000005, 0x58000005, 0x00000005,
+ 0x20000005, 0x28000005, 0x08000005, 0x10000005,
+ 0x48000005, 0x18000005, 0x60000005, 0x70000005,
+ 0x30000005, 0x78000005, 0x50000005, 0x38000005,
+ 0x40000000, 0x68000000, 0x58000000, 0x00000000,
+ 0x20000000, 0x28000000, 0x08000000, 0x10000000,
+ 0x48000000, 0x18000000, 0x60000000, 0x70000000,
+ 0x30000000, 0x78000000, 0x50000000, 0x38000000,
+ 0xc0000007, 0xe8000007, 0xd8000007, 0x80000007,
+ 0xa0000007, 0xa8000007, 0x88000007, 0x90000007,
+ 0xc8000007, 0x98000007, 0xe0000007, 0xf0000007,
+ 0xb0000007, 0xf8000007, 0xd0000007, 0xb8000007,
+ 0xc0000006, 0xe8000006, 0xd8000006, 0x80000006,
+ 0xa0000006, 0xa8000006, 0x88000006, 0x90000006,
+ 0xc8000006, 0x98000006, 0xe0000006, 0xf0000006,
+ 0xb0000006, 0xf8000006, 0xd0000006, 0xb8000006,
+ /* 3 */
+ 0x000003d0, 0x000003c8, 0x000003b0, 0x000003c0,
+ 0x000003e8, 0x000003f0, 0x00000390, 0x00000380,
+ 0x000003f8, 0x00000398, 0x000003a8, 0x000003d8,
+ 0x000003a0, 0x00000388, 0x000003e0, 0x000003b8,
+ 0x00000250, 0x00000248, 0x00000230, 0x00000240,
+ 0x00000268, 0x00000270, 0x00000210, 0x00000200,
+ 0x00000278, 0x00000218, 0x00000228, 0x00000258,
+ 0x00000220, 0x00000208, 0x00000260, 0x00000238,
+ 0x00000050, 0x00000048, 0x00000030, 0x00000040,
+ 0x00000068, 0x00000070, 0x00000010, 0x00000000,
+ 0x00000078, 0x00000018, 0x00000028, 0x00000058,
+ 0x00000020, 0x00000008, 0x00000060, 0x00000038,
+ 0x000002d0, 0x000002c8, 0x000002b0, 0x000002c0,
+ 0x000002e8, 0x000002f0, 0x00000290, 0x00000280,
+ 0x000002f8, 0x00000298, 0x000002a8, 0x000002d8,
+ 0x000002a0, 0x00000288, 0x000002e0, 0x000002b8,
+ 0x00000550, 0x00000548, 0x00000530, 0x00000540,
+ 0x00000568, 0x00000570, 0x00000510, 0x00000500,
+ 0x00000578, 0x00000518, 0x00000528, 0x00000558,
+ 0x00000520, 0x00000508, 0x00000560, 0x00000538,
+ 0x00000150, 0x00000148, 0x00000130, 0x00000140,
+ 0x00000168, 0x00000170, 0x00000110, 0x00000100,
+ 0x00000178, 0x00000118, 0x00000128, 0x00000158,
+ 0x00000120, 0x00000108, 0x00000160, 0x00000138,
+ 0x000007d0, 0x000007c8, 0x000007b0, 0x000007c0,
+ 0x000007e8, 0x000007f0, 0x00000790, 0x00000780,
+ 0x000007f8, 0x00000798, 0x000007a8, 0x000007d8,
+ 0x000007a0, 0x00000788, 0x000007e0, 0x000007b8,
+ 0x00000750, 0x00000748, 0x00000730, 0x00000740,
+ 0x00000768, 0x00000770, 0x00000710, 0x00000700,
+ 0x00000778, 0x00000718, 0x00000728, 0x00000758,
+ 0x00000720, 0x00000708, 0x00000760, 0x00000738,
+ 0x00000650, 0x00000648, 0x00000630, 0x00000640,
+ 0x00000668, 0x00000670, 0x00000610, 0x00000600,
+ 0x00000678, 0x00000618, 0x00000628, 0x00000658,
+ 0x00000620, 0x00000608, 0x00000660, 0x00000638,
+ 0x00000350, 0x00000348, 0x00000330, 0x00000340,
+ 0x00000368, 0x00000370, 0x00000310, 0x00000300,
+ 0x00000378, 0x00000318, 0x00000328, 0x00000358,
+ 0x00000320, 0x00000308, 0x00000360, 0x00000338,
+ 0x000000d0, 0x000000c8, 0x000000b0, 0x000000c0,
+ 0x000000e8, 0x000000f0, 0x00000090, 0x00000080,
+ 0x000000f8, 0x00000098, 0x000000a8, 0x000000d8,
+ 0x000000a0, 0x00000088, 0x000000e0, 0x000000b8,
+ 0x000005d0, 0x000005c8, 0x000005b0, 0x000005c0,
+ 0x000005e8, 0x000005f0, 0x00000590, 0x00000580,
+ 0x000005f8, 0x00000598, 0x000005a8, 0x000005d8,
+ 0x000005a0, 0x00000588, 0x000005e0, 0x000005b8,
+ 0x000006d0, 0x000006c8, 0x000006b0, 0x000006c0,
+ 0x000006e8, 0x000006f0, 0x00000690, 0x00000680,
+ 0x000006f8, 0x00000698, 0x000006a8, 0x000006d8,
+ 0x000006a0, 0x00000688, 0x000006e0, 0x000006b8,
+ 0x000004d0, 0x000004c8, 0x000004b0, 0x000004c0,
+ 0x000004e8, 0x000004f0, 0x00000490, 0x00000480,
+ 0x000004f8, 0x00000498, 0x000004a8, 0x000004d8,
+ 0x000004a0, 0x00000488, 0x000004e0, 0x000004b8,
+ 0x000001d0, 0x000001c8, 0x000001b0, 0x000001c0,
+ 0x000001e8, 0x000001f0, 0x00000190, 0x00000180,
+ 0x000001f8, 0x00000198, 0x000001a8, 0x000001d8,
+ 0x000001a0, 0x00000188, 0x000001e0, 0x000001b8,
+ 0x00000450, 0x00000448, 0x00000430, 0x00000440,
+ 0x00000468, 0x00000470, 0x00000410, 0x00000400,
+ 0x00000478, 0x00000418, 0x00000428, 0x00000458,
+ 0x00000420, 0x00000408, 0x00000460, 0x00000438,
+ }
};
-const struct gost28147_param gost28147_param_CryptoPro_D =
-{
- 1,
- {
- /* 0 */
- 0x0005f800, 0x0005e000, 0x00059000, 0x0005d000,
- 0x0005b000, 0x0005a000, 0x0005a800, 0x00058000,
- 0x0005b800, 0x0005c800, 0x0005f000, 0x0005e800,
- 0x00058800, 0x0005d800, 0x0005c000, 0x00059800,
- 0x00037800, 0x00036000, 0x00031000, 0x00035000,
- 0x00033000, 0x00032000, 0x00032800, 0x00030000,
- 0x00033800, 0x00034800, 0x00037000, 0x00036800,
- 0x00030800, 0x00035800, 0x00034000, 0x00031800,
- 0x0001f800, 0x0001e000, 0x00019000, 0x0001d000,
- 0x0001b000, 0x0001a000, 0x0001a800, 0x00018000,
- 0x0001b800, 0x0001c800, 0x0001f000, 0x0001e800,
- 0x00018800, 0x0001d800, 0x0001c000, 0x00019800,
- 0x00027800, 0x00026000, 0x00021000, 0x00025000,
- 0x00023000, 0x00022000, 0x00022800, 0x00020000,
- 0x00023800, 0x00024800, 0x00027000, 0x00026800,
- 0x00020800, 0x00025800, 0x00024000, 0x00021800,
- 0x00067800, 0x00066000, 0x00061000, 0x00065000,
- 0x00063000, 0x00062000, 0x00062800, 0x00060000,
- 0x00063800, 0x00064800, 0x00067000, 0x00066800,
- 0x00060800, 0x00065800, 0x00064000, 0x00061800,
- 0x0007f800, 0x0007e000, 0x00079000, 0x0007d000,
- 0x0007b000, 0x0007a000, 0x0007a800, 0x00078000,
- 0x0007b800, 0x0007c800, 0x0007f000, 0x0007e800,
- 0x00078800, 0x0007d800, 0x0007c000, 0x00079800,
- 0x00077800, 0x00076000, 0x00071000, 0x00075000,
- 0x00073000, 0x00072000, 0x00072800, 0x00070000,
- 0x00073800, 0x00074800, 0x00077000, 0x00076800,
- 0x00070800, 0x00075800, 0x00074000, 0x00071800,
- 0x00017800, 0x00016000, 0x00011000, 0x00015000,
- 0x00013000, 0x00012000, 0x00012800, 0x00010000,
- 0x00013800, 0x00014800, 0x00017000, 0x00016800,
- 0x00010800, 0x00015800, 0x00014000, 0x00011800,
- 0x0003f800, 0x0003e000, 0x00039000, 0x0003d000,
- 0x0003b000, 0x0003a000, 0x0003a800, 0x00038000,
- 0x0003b800, 0x0003c800, 0x0003f000, 0x0003e800,
- 0x00038800, 0x0003d800, 0x0003c000, 0x00039800,
- 0x0006f800, 0x0006e000, 0x00069000, 0x0006d000,
- 0x0006b000, 0x0006a000, 0x0006a800, 0x00068000,
- 0x0006b800, 0x0006c800, 0x0006f000, 0x0006e800,
- 0x00068800, 0x0006d800, 0x0006c000, 0x00069800,
- 0x00047800, 0x00046000, 0x00041000, 0x00045000,
- 0x00043000, 0x00042000, 0x00042800, 0x00040000,
- 0x00043800, 0x00044800, 0x00047000, 0x00046800,
- 0x00040800, 0x00045800, 0x00044000, 0x00041800,
- 0x00007800, 0x00006000, 0x00001000, 0x00005000,
- 0x00003000, 0x00002000, 0x00002800, 0x00000000,
- 0x00003800, 0x00004800, 0x00007000, 0x00006800,
- 0x00000800, 0x00005800, 0x00004000, 0x00001800,
- 0x0002f800, 0x0002e000, 0x00029000, 0x0002d000,
- 0x0002b000, 0x0002a000, 0x0002a800, 0x00028000,
- 0x0002b800, 0x0002c800, 0x0002f000, 0x0002e800,
- 0x00028800, 0x0002d800, 0x0002c000, 0x00029800,
- 0x00057800, 0x00056000, 0x00051000, 0x00055000,
- 0x00053000, 0x00052000, 0x00052800, 0x00050000,
- 0x00053800, 0x00054800, 0x00057000, 0x00056800,
- 0x00050800, 0x00055800, 0x00054000, 0x00051800,
- 0x0004f800, 0x0004e000, 0x00049000, 0x0004d000,
- 0x0004b000, 0x0004a000, 0x0004a800, 0x00048000,
- 0x0004b800, 0x0004c800, 0x0004f000, 0x0004e800,
- 0x00048800, 0x0004d800, 0x0004c000, 0x00049800,
- 0x0000f800, 0x0000e000, 0x00009000, 0x0000d000,
- 0x0000b000, 0x0000a000, 0x0000a800, 0x00008000,
- 0x0000b800, 0x0000c800, 0x0000f000, 0x0000e800,
- 0x00008800, 0x0000d800, 0x0000c000, 0x00009800,
- /* 1 */
- 0x00880000, 0x00e00000, 0x00d80000, 0x00800000,
- 0x00f80000, 0x00f00000, 0x00b00000, 0x00a80000,
- 0x00d00000, 0x00e80000, 0x00a00000, 0x00c00000,
- 0x00c80000, 0x00980000, 0x00b80000, 0x00900000,
- 0x02880000, 0x02e00000, 0x02d80000, 0x02800000,
- 0x02f80000, 0x02f00000, 0x02b00000, 0x02a80000,
- 0x02d00000, 0x02e80000, 0x02a00000, 0x02c00000,
- 0x02c80000, 0x02980000, 0x02b80000, 0x02900000,
- 0x07080000, 0x07600000, 0x07580000, 0x07000000,
- 0x07780000, 0x07700000, 0x07300000, 0x07280000,
- 0x07500000, 0x07680000, 0x07200000, 0x07400000,
- 0x07480000, 0x07180000, 0x07380000, 0x07100000,
- 0x06080000, 0x06600000, 0x06580000, 0x06000000,
- 0x06780000, 0x06700000, 0x06300000, 0x06280000,
- 0x06500000, 0x06680000, 0x06200000, 0x06400000,
- 0x06480000, 0x06180000, 0x06380000, 0x06100000,
- 0x05080000, 0x05600000, 0x05580000, 0x05000000,
- 0x05780000, 0x05700000, 0x05300000, 0x05280000,
- 0x05500000, 0x05680000, 0x05200000, 0x05400000,
- 0x05480000, 0x05180000, 0x05380000, 0x05100000,
- 0x03880000, 0x03e00000, 0x03d80000, 0x03800000,
- 0x03f80000, 0x03f00000, 0x03b00000, 0x03a80000,
- 0x03d00000, 0x03e80000, 0x03a00000, 0x03c00000,
- 0x03c80000, 0x03980000, 0x03b80000, 0x03900000,
- 0x00080000, 0x00600000, 0x00580000, 0x00000000,
- 0x00780000, 0x00700000, 0x00300000, 0x00280000,
- 0x00500000, 0x00680000, 0x00200000, 0x00400000,
- 0x00480000, 0x00180000, 0x00380000, 0x00100000,
- 0x06880000, 0x06e00000, 0x06d80000, 0x06800000,
- 0x06f80000, 0x06f00000, 0x06b00000, 0x06a80000,
- 0x06d00000, 0x06e80000, 0x06a00000, 0x06c00000,
- 0x06c80000, 0x06980000, 0x06b80000, 0x06900000,
- 0x03080000, 0x03600000, 0x03580000, 0x03000000,
- 0x03780000, 0x03700000, 0x03300000, 0x03280000,
- 0x03500000, 0x03680000, 0x03200000, 0x03400000,
- 0x03480000, 0x03180000, 0x03380000, 0x03100000,
- 0x01080000, 0x01600000, 0x01580000, 0x01000000,
- 0x01780000, 0x01700000, 0x01300000, 0x01280000,
- 0x01500000, 0x01680000, 0x01200000, 0x01400000,
- 0x01480000, 0x01180000, 0x01380000, 0x01100000,
- 0x05880000, 0x05e00000, 0x05d80000, 0x05800000,
- 0x05f80000, 0x05f00000, 0x05b00000, 0x05a80000,
- 0x05d00000, 0x05e80000, 0x05a00000, 0x05c00000,
- 0x05c80000, 0x05980000, 0x05b80000, 0x05900000,
- 0x02080000, 0x02600000, 0x02580000, 0x02000000,
- 0x02780000, 0x02700000, 0x02300000, 0x02280000,
- 0x02500000, 0x02680000, 0x02200000, 0x02400000,
- 0x02480000, 0x02180000, 0x02380000, 0x02100000,
- 0x04880000, 0x04e00000, 0x04d80000, 0x04800000,
- 0x04f80000, 0x04f00000, 0x04b00000, 0x04a80000,
- 0x04d00000, 0x04e80000, 0x04a00000, 0x04c00000,
- 0x04c80000, 0x04980000, 0x04b80000, 0x04900000,
- 0x01880000, 0x01e00000, 0x01d80000, 0x01800000,
- 0x01f80000, 0x01f00000, 0x01b00000, 0x01a80000,
- 0x01d00000, 0x01e80000, 0x01a00000, 0x01c00000,
- 0x01c80000, 0x01980000, 0x01b80000, 0x01900000,
- 0x07880000, 0x07e00000, 0x07d80000, 0x07800000,
- 0x07f80000, 0x07f00000, 0x07b00000, 0x07a80000,
- 0x07d00000, 0x07e80000, 0x07a00000, 0x07c00000,
- 0x07c80000, 0x07980000, 0x07b80000, 0x07900000,
- 0x04080000, 0x04600000, 0x04580000, 0x04000000,
- 0x04780000, 0x04700000, 0x04300000, 0x04280000,
- 0x04500000, 0x04680000, 0x04200000, 0x04400000,
- 0x04480000, 0x04180000, 0x04380000, 0x04100000,
- /* 2 */
- 0x00000004, 0x60000004, 0x40000004, 0x48000004,
- 0x68000004, 0x10000004, 0x50000004, 0x58000004,
- 0x38000004, 0x18000004, 0x30000004, 0x28000004,
- 0x20000004, 0x70000004, 0x78000004, 0x08000004,
- 0x00000000, 0x60000000, 0x40000000, 0x48000000,
- 0x68000000, 0x10000000, 0x50000000, 0x58000000,
- 0x38000000, 0x18000000, 0x30000000, 0x28000000,
- 0x20000000, 0x70000000, 0x78000000, 0x08000000,
- 0x80000007, 0xe0000007, 0xc0000007, 0xc8000007,
- 0xe8000007, 0x90000007, 0xd0000007, 0xd8000007,
- 0xb8000007, 0x98000007, 0xb0000007, 0xa8000007,
- 0xa0000007, 0xf0000007, 0xf8000007, 0x88000007,
- 0x80000001, 0xe0000001, 0xc0000001, 0xc8000001,
- 0xe8000001, 0x90000001, 0xd0000001, 0xd8000001,
- 0xb8000001, 0x98000001, 0xb0000001, 0xa8000001,
- 0xa0000001, 0xf0000001, 0xf8000001, 0x88000001,
- 0x00000001, 0x60000001, 0x40000001, 0x48000001,
- 0x68000001, 0x10000001, 0x50000001, 0x58000001,
- 0x38000001, 0x18000001, 0x30000001, 0x28000001,
- 0x20000001, 0x70000001, 0x78000001, 0x08000001,
- 0x80000002, 0xe0000002, 0xc0000002, 0xc8000002,
- 0xe8000002, 0x90000002, 0xd0000002, 0xd8000002,
- 0xb8000002, 0x98000002, 0xb0000002, 0xa8000002,
- 0xa0000002, 0xf0000002, 0xf8000002, 0x88000002,
- 0x00000007, 0x60000007, 0x40000007, 0x48000007,
- 0x68000007, 0x10000007, 0x50000007, 0x58000007,
- 0x38000007, 0x18000007, 0x30000007, 0x28000007,
- 0x20000007, 0x70000007, 0x78000007, 0x08000007,
- 0x80000005, 0xe0000005, 0xc0000005, 0xc8000005,
- 0xe8000005, 0x90000005, 0xd0000005, 0xd8000005,
- 0xb8000005, 0x98000005, 0xb0000005, 0xa8000005,
- 0xa0000005, 0xf0000005, 0xf8000005, 0x88000005,
- 0x80000000, 0xe0000000, 0xc0000000, 0xc8000000,
- 0xe8000000, 0x90000000, 0xd0000000, 0xd8000000,
- 0xb8000000, 0x98000000, 0xb0000000, 0xa8000000,
- 0xa0000000, 0xf0000000, 0xf8000000, 0x88000000,
- 0x00000005, 0x60000005, 0x40000005, 0x48000005,
- 0x68000005, 0x10000005, 0x50000005, 0x58000005,
- 0x38000005, 0x18000005, 0x30000005, 0x28000005,
- 0x20000005, 0x70000005, 0x78000005, 0x08000005,
- 0x00000002, 0x60000002, 0x40000002, 0x48000002,
- 0x68000002, 0x10000002, 0x50000002, 0x58000002,
- 0x38000002, 0x18000002, 0x30000002, 0x28000002,
- 0x20000002, 0x70000002, 0x78000002, 0x08000002,
- 0x80000003, 0xe0000003, 0xc0000003, 0xc8000003,
- 0xe8000003, 0x90000003, 0xd0000003, 0xd8000003,
- 0xb8000003, 0x98000003, 0xb0000003, 0xa8000003,
- 0xa0000003, 0xf0000003, 0xf8000003, 0x88000003,
- 0x00000006, 0x60000006, 0x40000006, 0x48000006,
- 0x68000006, 0x10000006, 0x50000006, 0x58000006,
- 0x38000006, 0x18000006, 0x30000006, 0x28000006,
- 0x20000006, 0x70000006, 0x78000006, 0x08000006,
- 0x80000004, 0xe0000004, 0xc0000004, 0xc8000004,
- 0xe8000004, 0x90000004, 0xd0000004, 0xd8000004,
- 0xb8000004, 0x98000004, 0xb0000004, 0xa8000004,
- 0xa0000004, 0xf0000004, 0xf8000004, 0x88000004,
- 0x80000006, 0xe0000006, 0xc0000006, 0xc8000006,
- 0xe8000006, 0x90000006, 0xd0000006, 0xd8000006,
- 0xb8000006, 0x98000006, 0xb0000006, 0xa8000006,
- 0xa0000006, 0xf0000006, 0xf8000006, 0x88000006,
- 0x00000003, 0x60000003, 0x40000003, 0x48000003,
- 0x68000003, 0x10000003, 0x50000003, 0x58000003,
- 0x38000003, 0x18000003, 0x30000003, 0x28000003,
- 0x20000003, 0x70000003, 0x78000003, 0x08000003,
- /* 3 */
- 0x00000098, 0x00000080, 0x000000b0, 0x000000f8,
- 0x00000088, 0x000000f0, 0x000000c8, 0x00000090,
- 0x000000e8, 0x000000c0, 0x000000e0, 0x000000a0,
- 0x000000d8, 0x000000d0, 0x000000a8, 0x000000b8,
- 0x00000518, 0x00000500, 0x00000530, 0x00000578,
- 0x00000508, 0x00000570, 0x00000548, 0x00000510,
- 0x00000568, 0x00000540, 0x00000560, 0x00000520,
- 0x00000558, 0x00000550, 0x00000528, 0x00000538,
- 0x00000318, 0x00000300, 0x00000330, 0x00000378,
- 0x00000308, 0x00000370, 0x00000348, 0x00000310,
- 0x00000368, 0x00000340, 0x00000360, 0x00000320,
- 0x00000358, 0x00000350, 0x00000328, 0x00000338,
- 0x00000418, 0x00000400, 0x00000430, 0x00000478,
- 0x00000408, 0x00000470, 0x00000448, 0x00000410,
- 0x00000468, 0x00000440, 0x00000460, 0x00000420,
- 0x00000458, 0x00000450, 0x00000428, 0x00000438,
- 0x00000798, 0x00000780, 0x000007b0, 0x000007f8,
- 0x00000788, 0x000007f0, 0x000007c8, 0x00000790,
- 0x000007e8, 0x000007c0, 0x000007e0, 0x000007a0,
- 0x000007d8, 0x000007d0, 0x000007a8, 0x000007b8,
- 0x00000598, 0x00000580, 0x000005b0, 0x000005f8,
- 0x00000588, 0x000005f0, 0x000005c8, 0x00000590,
- 0x000005e8, 0x000005c0, 0x000005e0, 0x000005a0,
- 0x000005d8, 0x000005d0, 0x000005a8, 0x000005b8,
- 0x00000018, 0x00000000, 0x00000030, 0x00000078,
- 0x00000008, 0x00000070, 0x00000048, 0x00000010,
- 0x00000068, 0x00000040, 0x00000060, 0x00000020,
- 0x00000058, 0x00000050, 0x00000028, 0x00000038,
- 0x00000218, 0x00000200, 0x00000230, 0x00000278,
- 0x00000208, 0x00000270, 0x00000248, 0x00000210,
- 0x00000268, 0x00000240, 0x00000260, 0x00000220,
- 0x00000258, 0x00000250, 0x00000228, 0x00000238,
- 0x00000618, 0x00000600, 0x00000630, 0x00000678,
- 0x00000608, 0x00000670, 0x00000648, 0x00000610,
- 0x00000668, 0x00000640, 0x00000660, 0x00000620,
- 0x00000658, 0x00000650, 0x00000628, 0x00000638,
- 0x00000198, 0x00000180, 0x000001b0, 0x000001f8,
- 0x00000188, 0x000001f0, 0x000001c8, 0x00000190,
- 0x000001e8, 0x000001c0, 0x000001e0, 0x000001a0,
- 0x000001d8, 0x000001d0, 0x000001a8, 0x000001b8,
- 0x00000298, 0x00000280, 0x000002b0, 0x000002f8,
- 0x00000288, 0x000002f0, 0x000002c8, 0x00000290,
- 0x000002e8, 0x000002c0, 0x000002e0, 0x000002a0,
- 0x000002d8, 0x000002d0, 0x000002a8, 0x000002b8,
- 0x00000498, 0x00000480, 0x000004b0, 0x000004f8,
- 0x00000488, 0x000004f0, 0x000004c8, 0x00000490,
- 0x000004e8, 0x000004c0, 0x000004e0, 0x000004a0,
- 0x000004d8, 0x000004d0, 0x000004a8, 0x000004b8,
- 0x00000398, 0x00000380, 0x000003b0, 0x000003f8,
- 0x00000388, 0x000003f0, 0x000003c8, 0x00000390,
- 0x000003e8, 0x000003c0, 0x000003e0, 0x000003a0,
- 0x000003d8, 0x000003d0, 0x000003a8, 0x000003b8,
- 0x00000698, 0x00000680, 0x000006b0, 0x000006f8,
- 0x00000688, 0x000006f0, 0x000006c8, 0x00000690,
- 0x000006e8, 0x000006c0, 0x000006e0, 0x000006a0,
- 0x000006d8, 0x000006d0, 0x000006a8, 0x000006b8,
- 0x00000118, 0x00000100, 0x00000130, 0x00000178,
- 0x00000108, 0x00000170, 0x00000148, 0x00000110,
- 0x00000168, 0x00000140, 0x00000160, 0x00000120,
- 0x00000158, 0x00000150, 0x00000128, 0x00000138,
- 0x00000718, 0x00000700, 0x00000730, 0x00000778,
- 0x00000708, 0x00000770, 0x00000748, 0x00000710,
- 0x00000768, 0x00000740, 0x00000760, 0x00000720,
- 0x00000758, 0x00000750, 0x00000728, 0x00000738,
- }
+const struct gost28147_param gost28147_param_CryptoPro_D = {
+ 1,
+ {
+ /* 0 */
+ 0x0005f800, 0x0005e000, 0x00059000, 0x0005d000,
+ 0x0005b000, 0x0005a000, 0x0005a800, 0x00058000,
+ 0x0005b800, 0x0005c800, 0x0005f000, 0x0005e800,
+ 0x00058800, 0x0005d800, 0x0005c000, 0x00059800,
+ 0x00037800, 0x00036000, 0x00031000, 0x00035000,
+ 0x00033000, 0x00032000, 0x00032800, 0x00030000,
+ 0x00033800, 0x00034800, 0x00037000, 0x00036800,
+ 0x00030800, 0x00035800, 0x00034000, 0x00031800,
+ 0x0001f800, 0x0001e000, 0x00019000, 0x0001d000,
+ 0x0001b000, 0x0001a000, 0x0001a800, 0x00018000,
+ 0x0001b800, 0x0001c800, 0x0001f000, 0x0001e800,
+ 0x00018800, 0x0001d800, 0x0001c000, 0x00019800,
+ 0x00027800, 0x00026000, 0x00021000, 0x00025000,
+ 0x00023000, 0x00022000, 0x00022800, 0x00020000,
+ 0x00023800, 0x00024800, 0x00027000, 0x00026800,
+ 0x00020800, 0x00025800, 0x00024000, 0x00021800,
+ 0x00067800, 0x00066000, 0x00061000, 0x00065000,
+ 0x00063000, 0x00062000, 0x00062800, 0x00060000,
+ 0x00063800, 0x00064800, 0x00067000, 0x00066800,
+ 0x00060800, 0x00065800, 0x00064000, 0x00061800,
+ 0x0007f800, 0x0007e000, 0x00079000, 0x0007d000,
+ 0x0007b000, 0x0007a000, 0x0007a800, 0x00078000,
+ 0x0007b800, 0x0007c800, 0x0007f000, 0x0007e800,
+ 0x00078800, 0x0007d800, 0x0007c000, 0x00079800,
+ 0x00077800, 0x00076000, 0x00071000, 0x00075000,
+ 0x00073000, 0x00072000, 0x00072800, 0x00070000,
+ 0x00073800, 0x00074800, 0x00077000, 0x00076800,
+ 0x00070800, 0x00075800, 0x00074000, 0x00071800,
+ 0x00017800, 0x00016000, 0x00011000, 0x00015000,
+ 0x00013000, 0x00012000, 0x00012800, 0x00010000,
+ 0x00013800, 0x00014800, 0x00017000, 0x00016800,
+ 0x00010800, 0x00015800, 0x00014000, 0x00011800,
+ 0x0003f800, 0x0003e000, 0x00039000, 0x0003d000,
+ 0x0003b000, 0x0003a000, 0x0003a800, 0x00038000,
+ 0x0003b800, 0x0003c800, 0x0003f000, 0x0003e800,
+ 0x00038800, 0x0003d800, 0x0003c000, 0x00039800,
+ 0x0006f800, 0x0006e000, 0x00069000, 0x0006d000,
+ 0x0006b000, 0x0006a000, 0x0006a800, 0x00068000,
+ 0x0006b800, 0x0006c800, 0x0006f000, 0x0006e800,
+ 0x00068800, 0x0006d800, 0x0006c000, 0x00069800,
+ 0x00047800, 0x00046000, 0x00041000, 0x00045000,
+ 0x00043000, 0x00042000, 0x00042800, 0x00040000,
+ 0x00043800, 0x00044800, 0x00047000, 0x00046800,
+ 0x00040800, 0x00045800, 0x00044000, 0x00041800,
+ 0x00007800, 0x00006000, 0x00001000, 0x00005000,
+ 0x00003000, 0x00002000, 0x00002800, 0x00000000,
+ 0x00003800, 0x00004800, 0x00007000, 0x00006800,
+ 0x00000800, 0x00005800, 0x00004000, 0x00001800,
+ 0x0002f800, 0x0002e000, 0x00029000, 0x0002d000,
+ 0x0002b000, 0x0002a000, 0x0002a800, 0x00028000,
+ 0x0002b800, 0x0002c800, 0x0002f000, 0x0002e800,
+ 0x00028800, 0x0002d800, 0x0002c000, 0x00029800,
+ 0x00057800, 0x00056000, 0x00051000, 0x00055000,
+ 0x00053000, 0x00052000, 0x00052800, 0x00050000,
+ 0x00053800, 0x00054800, 0x00057000, 0x00056800,
+ 0x00050800, 0x00055800, 0x00054000, 0x00051800,
+ 0x0004f800, 0x0004e000, 0x00049000, 0x0004d000,
+ 0x0004b000, 0x0004a000, 0x0004a800, 0x00048000,
+ 0x0004b800, 0x0004c800, 0x0004f000, 0x0004e800,
+ 0x00048800, 0x0004d800, 0x0004c000, 0x00049800,
+ 0x0000f800, 0x0000e000, 0x00009000, 0x0000d000,
+ 0x0000b000, 0x0000a000, 0x0000a800, 0x00008000,
+ 0x0000b800, 0x0000c800, 0x0000f000, 0x0000e800,
+ 0x00008800, 0x0000d800, 0x0000c000, 0x00009800,
+ /* 1 */
+ 0x00880000, 0x00e00000, 0x00d80000, 0x00800000,
+ 0x00f80000, 0x00f00000, 0x00b00000, 0x00a80000,
+ 0x00d00000, 0x00e80000, 0x00a00000, 0x00c00000,
+ 0x00c80000, 0x00980000, 0x00b80000, 0x00900000,
+ 0x02880000, 0x02e00000, 0x02d80000, 0x02800000,
+ 0x02f80000, 0x02f00000, 0x02b00000, 0x02a80000,
+ 0x02d00000, 0x02e80000, 0x02a00000, 0x02c00000,
+ 0x02c80000, 0x02980000, 0x02b80000, 0x02900000,
+ 0x07080000, 0x07600000, 0x07580000, 0x07000000,
+ 0x07780000, 0x07700000, 0x07300000, 0x07280000,
+ 0x07500000, 0x07680000, 0x07200000, 0x07400000,
+ 0x07480000, 0x07180000, 0x07380000, 0x07100000,
+ 0x06080000, 0x06600000, 0x06580000, 0x06000000,
+ 0x06780000, 0x06700000, 0x06300000, 0x06280000,
+ 0x06500000, 0x06680000, 0x06200000, 0x06400000,
+ 0x06480000, 0x06180000, 0x06380000, 0x06100000,
+ 0x05080000, 0x05600000, 0x05580000, 0x05000000,
+ 0x05780000, 0x05700000, 0x05300000, 0x05280000,
+ 0x05500000, 0x05680000, 0x05200000, 0x05400000,
+ 0x05480000, 0x05180000, 0x05380000, 0x05100000,
+ 0x03880000, 0x03e00000, 0x03d80000, 0x03800000,
+ 0x03f80000, 0x03f00000, 0x03b00000, 0x03a80000,
+ 0x03d00000, 0x03e80000, 0x03a00000, 0x03c00000,
+ 0x03c80000, 0x03980000, 0x03b80000, 0x03900000,
+ 0x00080000, 0x00600000, 0x00580000, 0x00000000,
+ 0x00780000, 0x00700000, 0x00300000, 0x00280000,
+ 0x00500000, 0x00680000, 0x00200000, 0x00400000,
+ 0x00480000, 0x00180000, 0x00380000, 0x00100000,
+ 0x06880000, 0x06e00000, 0x06d80000, 0x06800000,
+ 0x06f80000, 0x06f00000, 0x06b00000, 0x06a80000,
+ 0x06d00000, 0x06e80000, 0x06a00000, 0x06c00000,
+ 0x06c80000, 0x06980000, 0x06b80000, 0x06900000,
+ 0x03080000, 0x03600000, 0x03580000, 0x03000000,
+ 0x03780000, 0x03700000, 0x03300000, 0x03280000,
+ 0x03500000, 0x03680000, 0x03200000, 0x03400000,
+ 0x03480000, 0x03180000, 0x03380000, 0x03100000,
+ 0x01080000, 0x01600000, 0x01580000, 0x01000000,
+ 0x01780000, 0x01700000, 0x01300000, 0x01280000,
+ 0x01500000, 0x01680000, 0x01200000, 0x01400000,
+ 0x01480000, 0x01180000, 0x01380000, 0x01100000,
+ 0x05880000, 0x05e00000, 0x05d80000, 0x05800000,
+ 0x05f80000, 0x05f00000, 0x05b00000, 0x05a80000,
+ 0x05d00000, 0x05e80000, 0x05a00000, 0x05c00000,
+ 0x05c80000, 0x05980000, 0x05b80000, 0x05900000,
+ 0x02080000, 0x02600000, 0x02580000, 0x02000000,
+ 0x02780000, 0x02700000, 0x02300000, 0x02280000,
+ 0x02500000, 0x02680000, 0x02200000, 0x02400000,
+ 0x02480000, 0x02180000, 0x02380000, 0x02100000,
+ 0x04880000, 0x04e00000, 0x04d80000, 0x04800000,
+ 0x04f80000, 0x04f00000, 0x04b00000, 0x04a80000,
+ 0x04d00000, 0x04e80000, 0x04a00000, 0x04c00000,
+ 0x04c80000, 0x04980000, 0x04b80000, 0x04900000,
+ 0x01880000, 0x01e00000, 0x01d80000, 0x01800000,
+ 0x01f80000, 0x01f00000, 0x01b00000, 0x01a80000,
+ 0x01d00000, 0x01e80000, 0x01a00000, 0x01c00000,
+ 0x01c80000, 0x01980000, 0x01b80000, 0x01900000,
+ 0x07880000, 0x07e00000, 0x07d80000, 0x07800000,
+ 0x07f80000, 0x07f00000, 0x07b00000, 0x07a80000,
+ 0x07d00000, 0x07e80000, 0x07a00000, 0x07c00000,
+ 0x07c80000, 0x07980000, 0x07b80000, 0x07900000,
+ 0x04080000, 0x04600000, 0x04580000, 0x04000000,
+ 0x04780000, 0x04700000, 0x04300000, 0x04280000,
+ 0x04500000, 0x04680000, 0x04200000, 0x04400000,
+ 0x04480000, 0x04180000, 0x04380000, 0x04100000,
+ /* 2 */
+ 0x00000004, 0x60000004, 0x40000004, 0x48000004,
+ 0x68000004, 0x10000004, 0x50000004, 0x58000004,
+ 0x38000004, 0x18000004, 0x30000004, 0x28000004,
+ 0x20000004, 0x70000004, 0x78000004, 0x08000004,
+ 0x00000000, 0x60000000, 0x40000000, 0x48000000,
+ 0x68000000, 0x10000000, 0x50000000, 0x58000000,
+ 0x38000000, 0x18000000, 0x30000000, 0x28000000,
+ 0x20000000, 0x70000000, 0x78000000, 0x08000000,
+ 0x80000007, 0xe0000007, 0xc0000007, 0xc8000007,
+ 0xe8000007, 0x90000007, 0xd0000007, 0xd8000007,
+ 0xb8000007, 0x98000007, 0xb0000007, 0xa8000007,
+ 0xa0000007, 0xf0000007, 0xf8000007, 0x88000007,
+ 0x80000001, 0xe0000001, 0xc0000001, 0xc8000001,
+ 0xe8000001, 0x90000001, 0xd0000001, 0xd8000001,
+ 0xb8000001, 0x98000001, 0xb0000001, 0xa8000001,
+ 0xa0000001, 0xf0000001, 0xf8000001, 0x88000001,
+ 0x00000001, 0x60000001, 0x40000001, 0x48000001,
+ 0x68000001, 0x10000001, 0x50000001, 0x58000001,
+ 0x38000001, 0x18000001, 0x30000001, 0x28000001,
+ 0x20000001, 0x70000001, 0x78000001, 0x08000001,
+ 0x80000002, 0xe0000002, 0xc0000002, 0xc8000002,
+ 0xe8000002, 0x90000002, 0xd0000002, 0xd8000002,
+ 0xb8000002, 0x98000002, 0xb0000002, 0xa8000002,
+ 0xa0000002, 0xf0000002, 0xf8000002, 0x88000002,
+ 0x00000007, 0x60000007, 0x40000007, 0x48000007,
+ 0x68000007, 0x10000007, 0x50000007, 0x58000007,
+ 0x38000007, 0x18000007, 0x30000007, 0x28000007,
+ 0x20000007, 0x70000007, 0x78000007, 0x08000007,
+ 0x80000005, 0xe0000005, 0xc0000005, 0xc8000005,
+ 0xe8000005, 0x90000005, 0xd0000005, 0xd8000005,
+ 0xb8000005, 0x98000005, 0xb0000005, 0xa8000005,
+ 0xa0000005, 0xf0000005, 0xf8000005, 0x88000005,
+ 0x80000000, 0xe0000000, 0xc0000000, 0xc8000000,
+ 0xe8000000, 0x90000000, 0xd0000000, 0xd8000000,
+ 0xb8000000, 0x98000000, 0xb0000000, 0xa8000000,
+ 0xa0000000, 0xf0000000, 0xf8000000, 0x88000000,
+ 0x00000005, 0x60000005, 0x40000005, 0x48000005,
+ 0x68000005, 0x10000005, 0x50000005, 0x58000005,
+ 0x38000005, 0x18000005, 0x30000005, 0x28000005,
+ 0x20000005, 0x70000005, 0x78000005, 0x08000005,
+ 0x00000002, 0x60000002, 0x40000002, 0x48000002,
+ 0x68000002, 0x10000002, 0x50000002, 0x58000002,
+ 0x38000002, 0x18000002, 0x30000002, 0x28000002,
+ 0x20000002, 0x70000002, 0x78000002, 0x08000002,
+ 0x80000003, 0xe0000003, 0xc0000003, 0xc8000003,
+ 0xe8000003, 0x90000003, 0xd0000003, 0xd8000003,
+ 0xb8000003, 0x98000003, 0xb0000003, 0xa8000003,
+ 0xa0000003, 0xf0000003, 0xf8000003, 0x88000003,
+ 0x00000006, 0x60000006, 0x40000006, 0x48000006,
+ 0x68000006, 0x10000006, 0x50000006, 0x58000006,
+ 0x38000006, 0x18000006, 0x30000006, 0x28000006,
+ 0x20000006, 0x70000006, 0x78000006, 0x08000006,
+ 0x80000004, 0xe0000004, 0xc0000004, 0xc8000004,
+ 0xe8000004, 0x90000004, 0xd0000004, 0xd8000004,
+ 0xb8000004, 0x98000004, 0xb0000004, 0xa8000004,
+ 0xa0000004, 0xf0000004, 0xf8000004, 0x88000004,
+ 0x80000006, 0xe0000006, 0xc0000006, 0xc8000006,
+ 0xe8000006, 0x90000006, 0xd0000006, 0xd8000006,
+ 0xb8000006, 0x98000006, 0xb0000006, 0xa8000006,
+ 0xa0000006, 0xf0000006, 0xf8000006, 0x88000006,
+ 0x00000003, 0x60000003, 0x40000003, 0x48000003,
+ 0x68000003, 0x10000003, 0x50000003, 0x58000003,
+ 0x38000003, 0x18000003, 0x30000003, 0x28000003,
+ 0x20000003, 0x70000003, 0x78000003, 0x08000003,
+ /* 3 */
+ 0x00000098, 0x00000080, 0x000000b0, 0x000000f8,
+ 0x00000088, 0x000000f0, 0x000000c8, 0x00000090,
+ 0x000000e8, 0x000000c0, 0x000000e0, 0x000000a0,
+ 0x000000d8, 0x000000d0, 0x000000a8, 0x000000b8,
+ 0x00000518, 0x00000500, 0x00000530, 0x00000578,
+ 0x00000508, 0x00000570, 0x00000548, 0x00000510,
+ 0x00000568, 0x00000540, 0x00000560, 0x00000520,
+ 0x00000558, 0x00000550, 0x00000528, 0x00000538,
+ 0x00000318, 0x00000300, 0x00000330, 0x00000378,
+ 0x00000308, 0x00000370, 0x00000348, 0x00000310,
+ 0x00000368, 0x00000340, 0x00000360, 0x00000320,
+ 0x00000358, 0x00000350, 0x00000328, 0x00000338,
+ 0x00000418, 0x00000400, 0x00000430, 0x00000478,
+ 0x00000408, 0x00000470, 0x00000448, 0x00000410,
+ 0x00000468, 0x00000440, 0x00000460, 0x00000420,
+ 0x00000458, 0x00000450, 0x00000428, 0x00000438,
+ 0x00000798, 0x00000780, 0x000007b0, 0x000007f8,
+ 0x00000788, 0x000007f0, 0x000007c8, 0x00000790,
+ 0x000007e8, 0x000007c0, 0x000007e0, 0x000007a0,
+ 0x000007d8, 0x000007d0, 0x000007a8, 0x000007b8,
+ 0x00000598, 0x00000580, 0x000005b0, 0x000005f8,
+ 0x00000588, 0x000005f0, 0x000005c8, 0x00000590,
+ 0x000005e8, 0x000005c0, 0x000005e0, 0x000005a0,
+ 0x000005d8, 0x000005d0, 0x000005a8, 0x000005b8,
+ 0x00000018, 0x00000000, 0x00000030, 0x00000078,
+ 0x00000008, 0x00000070, 0x00000048, 0x00000010,
+ 0x00000068, 0x00000040, 0x00000060, 0x00000020,
+ 0x00000058, 0x00000050, 0x00000028, 0x00000038,
+ 0x00000218, 0x00000200, 0x00000230, 0x00000278,
+ 0x00000208, 0x00000270, 0x00000248, 0x00000210,
+ 0x00000268, 0x00000240, 0x00000260, 0x00000220,
+ 0x00000258, 0x00000250, 0x00000228, 0x00000238,
+ 0x00000618, 0x00000600, 0x00000630, 0x00000678,
+ 0x00000608, 0x00000670, 0x00000648, 0x00000610,
+ 0x00000668, 0x00000640, 0x00000660, 0x00000620,
+ 0x00000658, 0x00000650, 0x00000628, 0x00000638,
+ 0x00000198, 0x00000180, 0x000001b0, 0x000001f8,
+ 0x00000188, 0x000001f0, 0x000001c8, 0x00000190,
+ 0x000001e8, 0x000001c0, 0x000001e0, 0x000001a0,
+ 0x000001d8, 0x000001d0, 0x000001a8, 0x000001b8,
+ 0x00000298, 0x00000280, 0x000002b0, 0x000002f8,
+ 0x00000288, 0x000002f0, 0x000002c8, 0x00000290,
+ 0x000002e8, 0x000002c0, 0x000002e0, 0x000002a0,
+ 0x000002d8, 0x000002d0, 0x000002a8, 0x000002b8,
+ 0x00000498, 0x00000480, 0x000004b0, 0x000004f8,
+ 0x00000488, 0x000004f0, 0x000004c8, 0x00000490,
+ 0x000004e8, 0x000004c0, 0x000004e0, 0x000004a0,
+ 0x000004d8, 0x000004d0, 0x000004a8, 0x000004b8,
+ 0x00000398, 0x00000380, 0x000003b0, 0x000003f8,
+ 0x00000388, 0x000003f0, 0x000003c8, 0x00000390,
+ 0x000003e8, 0x000003c0, 0x000003e0, 0x000003a0,
+ 0x000003d8, 0x000003d0, 0x000003a8, 0x000003b8,
+ 0x00000698, 0x00000680, 0x000006b0, 0x000006f8,
+ 0x00000688, 0x000006f0, 0x000006c8, 0x00000690,
+ 0x000006e8, 0x000006c0, 0x000006e0, 0x000006a0,
+ 0x000006d8, 0x000006d0, 0x000006a8, 0x000006b8,
+ 0x00000118, 0x00000100, 0x00000130, 0x00000178,
+ 0x00000108, 0x00000170, 0x00000148, 0x00000110,
+ 0x00000168, 0x00000140, 0x00000160, 0x00000120,
+ 0x00000158, 0x00000150, 0x00000128, 0x00000138,
+ 0x00000718, 0x00000700, 0x00000730, 0x00000778,
+ 0x00000708, 0x00000770, 0x00000748, 0x00000710,
+ 0x00000768, 0x00000740, 0x00000760, 0x00000720,
+ 0x00000758, 0x00000750, 0x00000728, 0x00000738,
+ }
};
-const struct gost28147_param gost28147_param_TC26_Z =
-{
- 1,
- {
- /* 0 */
- 0x00036000, 0x00032000, 0x00033000, 0x00031000,
- 0x00035000, 0x00032800, 0x00035800, 0x00034800,
- 0x00037000, 0x00034000, 0x00036800, 0x00033800,
- 0x00030000, 0x00031800, 0x00037800, 0x00030800,
- 0x00046000, 0x00042000, 0x00043000, 0x00041000,
- 0x00045000, 0x00042800, 0x00045800, 0x00044800,
- 0x00047000, 0x00044000, 0x00046800, 0x00043800,
- 0x00040000, 0x00041800, 0x00047800, 0x00040800,
- 0x00016000, 0x00012000, 0x00013000, 0x00011000,
- 0x00015000, 0x00012800, 0x00015800, 0x00014800,
- 0x00017000, 0x00014000, 0x00016800, 0x00013800,
- 0x00010000, 0x00011800, 0x00017800, 0x00010800,
- 0x0001e000, 0x0001a000, 0x0001b000, 0x00019000,
- 0x0001d000, 0x0001a800, 0x0001d800, 0x0001c800,
- 0x0001f000, 0x0001c000, 0x0001e800, 0x0001b800,
- 0x00018000, 0x00019800, 0x0001f800, 0x00018800,
- 0x0004e000, 0x0004a000, 0x0004b000, 0x00049000,
- 0x0004d000, 0x0004a800, 0x0004d800, 0x0004c800,
- 0x0004f000, 0x0004c000, 0x0004e800, 0x0004b800,
- 0x00048000, 0x00049800, 0x0004f800, 0x00048800,
- 0x00056000, 0x00052000, 0x00053000, 0x00051000,
- 0x00055000, 0x00052800, 0x00055800, 0x00054800,
- 0x00057000, 0x00054000, 0x00056800, 0x00053800,
- 0x00050000, 0x00051800, 0x00057800, 0x00050800,
- 0x0002e000, 0x0002a000, 0x0002b000, 0x00029000,
- 0x0002d000, 0x0002a800, 0x0002d800, 0x0002c800,
- 0x0002f000, 0x0002c000, 0x0002e800, 0x0002b800,
- 0x00028000, 0x00029800, 0x0002f800, 0x00028800,
- 0x00066000, 0x00062000, 0x00063000, 0x00061000,
- 0x00065000, 0x00062800, 0x00065800, 0x00064800,
- 0x00067000, 0x00064000, 0x00066800, 0x00063800,
- 0x00060000, 0x00061800, 0x00067800, 0x00060800,
- 0x0000e000, 0x0000a000, 0x0000b000, 0x00009000,
- 0x0000d000, 0x0000a800, 0x0000d800, 0x0000c800,
- 0x0000f000, 0x0000c000, 0x0000e800, 0x0000b800,
- 0x00008000, 0x00009800, 0x0000f800, 0x00008800,
- 0x00076000, 0x00072000, 0x00073000, 0x00071000,
- 0x00075000, 0x00072800, 0x00075800, 0x00074800,
- 0x00077000, 0x00074000, 0x00076800, 0x00073800,
- 0x00070000, 0x00071800, 0x00077800, 0x00070800,
- 0x00026000, 0x00022000, 0x00023000, 0x00021000,
- 0x00025000, 0x00022800, 0x00025800, 0x00024800,
- 0x00027000, 0x00024000, 0x00026800, 0x00023800,
- 0x00020000, 0x00021800, 0x00027800, 0x00020800,
- 0x0003e000, 0x0003a000, 0x0003b000, 0x00039000,
- 0x0003d000, 0x0003a800, 0x0003d800, 0x0003c800,
- 0x0003f000, 0x0003c000, 0x0003e800, 0x0003b800,
- 0x00038000, 0x00039800, 0x0003f800, 0x00038800,
- 0x0005e000, 0x0005a000, 0x0005b000, 0x00059000,
- 0x0005d000, 0x0005a800, 0x0005d800, 0x0005c800,
- 0x0005f000, 0x0005c000, 0x0005e800, 0x0005b800,
- 0x00058000, 0x00059800, 0x0005f800, 0x00058800,
- 0x0006e000, 0x0006a000, 0x0006b000, 0x00069000,
- 0x0006d000, 0x0006a800, 0x0006d800, 0x0006c800,
- 0x0006f000, 0x0006c000, 0x0006e800, 0x0006b800,
- 0x00068000, 0x00069800, 0x0006f800, 0x00068800,
- 0x00006000, 0x00002000, 0x00003000, 0x00001000,
- 0x00005000, 0x00002800, 0x00005800, 0x00004800,
- 0x00007000, 0x00004000, 0x00006800, 0x00003800,
- 0x00000000, 0x00001800, 0x00007800, 0x00000800,
- 0x0007e000, 0x0007a000, 0x0007b000, 0x00079000,
- 0x0007d000, 0x0007a800, 0x0007d800, 0x0007c800,
- 0x0007f000, 0x0007c000, 0x0007e800, 0x0007b800,
- 0x00078000, 0x00079800, 0x0007f800, 0x00078800,
- /* 1 */
- 0x06580000, 0x06180000, 0x06280000, 0x06400000,
- 0x06100000, 0x06780000, 0x06500000, 0x06680000,
- 0x06700000, 0x06080000, 0x06380000, 0x06200000,
- 0x06600000, 0x06480000, 0x06300000, 0x06000000,
- 0x04580000, 0x04180000, 0x04280000, 0x04400000,
- 0x04100000, 0x04780000, 0x04500000, 0x04680000,
- 0x04700000, 0x04080000, 0x04380000, 0x04200000,
- 0x04600000, 0x04480000, 0x04300000, 0x04000000,
- 0x01580000, 0x01180000, 0x01280000, 0x01400000,
- 0x01100000, 0x01780000, 0x01500000, 0x01680000,
- 0x01700000, 0x01080000, 0x01380000, 0x01200000,
- 0x01600000, 0x01480000, 0x01300000, 0x01000000,
- 0x00d80000, 0x00980000, 0x00a80000, 0x00c00000,
- 0x00900000, 0x00f80000, 0x00d00000, 0x00e80000,
- 0x00f00000, 0x00880000, 0x00b80000, 0x00a00000,
- 0x00e00000, 0x00c80000, 0x00b00000, 0x00800000,
- 0x06d80000, 0x06980000, 0x06a80000, 0x06c00000,
- 0x06900000, 0x06f80000, 0x06d00000, 0x06e80000,
- 0x06f00000, 0x06880000, 0x06b80000, 0x06a00000,
- 0x06e00000, 0x06c80000, 0x06b00000, 0x06800000,
- 0x02580000, 0x02180000, 0x02280000, 0x02400000,
- 0x02100000, 0x02780000, 0x02500000, 0x02680000,
- 0x02700000, 0x02080000, 0x02380000, 0x02200000,
- 0x02600000, 0x02480000, 0x02300000, 0x02000000,
- 0x07d80000, 0x07980000, 0x07a80000, 0x07c00000,
- 0x07900000, 0x07f80000, 0x07d00000, 0x07e80000,
- 0x07f00000, 0x07880000, 0x07b80000, 0x07a00000,
- 0x07e00000, 0x07c80000, 0x07b00000, 0x07800000,
- 0x03580000, 0x03180000, 0x03280000, 0x03400000,
- 0x03100000, 0x03780000, 0x03500000, 0x03680000,
- 0x03700000, 0x03080000, 0x03380000, 0x03200000,
- 0x03600000, 0x03480000, 0x03300000, 0x03000000,
- 0x03d80000, 0x03980000, 0x03a80000, 0x03c00000,
- 0x03900000, 0x03f80000, 0x03d00000, 0x03e80000,
- 0x03f00000, 0x03880000, 0x03b80000, 0x03a00000,
- 0x03e00000, 0x03c80000, 0x03b00000, 0x03800000,
- 0x00580000, 0x00180000, 0x00280000, 0x00400000,
- 0x00100000, 0x00780000, 0x00500000, 0x00680000,
- 0x00700000, 0x00080000, 0x00380000, 0x00200000,
- 0x00600000, 0x00480000, 0x00300000, 0x00000000,
- 0x05580000, 0x05180000, 0x05280000, 0x05400000,
- 0x05100000, 0x05780000, 0x05500000, 0x05680000,
- 0x05700000, 0x05080000, 0x05380000, 0x05200000,
- 0x05600000, 0x05480000, 0x05300000, 0x05000000,
- 0x02d80000, 0x02980000, 0x02a80000, 0x02c00000,
- 0x02900000, 0x02f80000, 0x02d00000, 0x02e80000,
- 0x02f00000, 0x02880000, 0x02b80000, 0x02a00000,
- 0x02e00000, 0x02c80000, 0x02b00000, 0x02800000,
- 0x01d80000, 0x01980000, 0x01a80000, 0x01c00000,
- 0x01900000, 0x01f80000, 0x01d00000, 0x01e80000,
- 0x01f00000, 0x01880000, 0x01b80000, 0x01a00000,
- 0x01e00000, 0x01c80000, 0x01b00000, 0x01800000,
- 0x07580000, 0x07180000, 0x07280000, 0x07400000,
- 0x07100000, 0x07780000, 0x07500000, 0x07680000,
- 0x07700000, 0x07080000, 0x07380000, 0x07200000,
- 0x07600000, 0x07480000, 0x07300000, 0x07000000,
- 0x04d80000, 0x04980000, 0x04a80000, 0x04c00000,
- 0x04900000, 0x04f80000, 0x04d00000, 0x04e80000,
- 0x04f00000, 0x04880000, 0x04b80000, 0x04a00000,
- 0x04e00000, 0x04c80000, 0x04b00000, 0x04800000,
- 0x05d80000, 0x05980000, 0x05a80000, 0x05c00000,
- 0x05900000, 0x05f80000, 0x05d00000, 0x05e80000,
- 0x05f00000, 0x05880000, 0x05b80000, 0x05a00000,
- 0x05e00000, 0x05c80000, 0x05b00000, 0x05800000,
- /* 2 */
- 0xb8000002, 0xf8000002, 0xa8000002, 0xd0000002,
- 0xc0000002, 0x88000002, 0xb0000002, 0xe8000002,
- 0x80000002, 0xc8000002, 0x98000002, 0xf0000002,
- 0xd8000002, 0xa0000002, 0x90000002, 0xe0000002,
- 0xb8000006, 0xf8000006, 0xa8000006, 0xd0000006,
- 0xc0000006, 0x88000006, 0xb0000006, 0xe8000006,
- 0x80000006, 0xc8000006, 0x98000006, 0xf0000006,
- 0xd8000006, 0xa0000006, 0x90000006, 0xe0000006,
- 0xb8000007, 0xf8000007, 0xa8000007, 0xd0000007,
- 0xc0000007, 0x88000007, 0xb0000007, 0xe8000007,
- 0x80000007, 0xc8000007, 0x98000007, 0xf0000007,
- 0xd8000007, 0xa0000007, 0x90000007, 0xe0000007,
- 0x38000003, 0x78000003, 0x28000003, 0x50000003,
- 0x40000003, 0x08000003, 0x30000003, 0x68000003,
- 0x00000003, 0x48000003, 0x18000003, 0x70000003,
- 0x58000003, 0x20000003, 0x10000003, 0x60000003,
- 0xb8000004, 0xf8000004, 0xa8000004, 0xd0000004,
- 0xc0000004, 0x88000004, 0xb0000004, 0xe8000004,
- 0x80000004, 0xc8000004, 0x98000004, 0xf0000004,
- 0xd8000004, 0xa0000004, 0x90000004, 0xe0000004,
- 0x38000001, 0x78000001, 0x28000001, 0x50000001,
- 0x40000001, 0x08000001, 0x30000001, 0x68000001,
- 0x00000001, 0x48000001, 0x18000001, 0x70000001,
- 0x58000001, 0x20000001, 0x10000001, 0x60000001,
- 0x38000006, 0x78000006, 0x28000006, 0x50000006,
- 0x40000006, 0x08000006, 0x30000006, 0x68000006,
- 0x00000006, 0x48000006, 0x18000006, 0x70000006,
- 0x58000006, 0x20000006, 0x10000006, 0x60000006,
- 0x38000005, 0x78000005, 0x28000005, 0x50000005,
- 0x40000005, 0x08000005, 0x30000005, 0x68000005,
- 0x00000005, 0x48000005, 0x18000005, 0x70000005,
- 0x58000005, 0x20000005, 0x10000005, 0x60000005,
- 0xb8000005, 0xf8000005, 0xa8000005, 0xd0000005,
- 0xc0000005, 0x88000005, 0xb0000005, 0xe8000005,
- 0x80000005, 0xc8000005, 0x98000005, 0xf0000005,
- 0xd8000005, 0xa0000005, 0x90000005, 0xe0000005,
- 0xb8000003, 0xf8000003, 0xa8000003, 0xd0000003,
- 0xc0000003, 0x88000003, 0xb0000003, 0xe8000003,
- 0x80000003, 0xc8000003, 0x98000003, 0xf0000003,
- 0xd8000003, 0xa0000003, 0x90000003, 0xe0000003,
- 0x38000004, 0x78000004, 0x28000004, 0x50000004,
- 0x40000004, 0x08000004, 0x30000004, 0x68000004,
- 0x00000004, 0x48000004, 0x18000004, 0x70000004,
- 0x58000004, 0x20000004, 0x10000004, 0x60000004,
- 0xb8000000, 0xf8000000, 0xa8000000, 0xd0000000,
- 0xc0000000, 0x88000000, 0xb0000000, 0xe8000000,
- 0x80000000, 0xc8000000, 0x98000000, 0xf0000000,
- 0xd8000000, 0xa0000000, 0x90000000, 0xe0000000,
- 0x38000002, 0x78000002, 0x28000002, 0x50000002,
- 0x40000002, 0x08000002, 0x30000002, 0x68000002,
- 0x00000002, 0x48000002, 0x18000002, 0x70000002,
- 0x58000002, 0x20000002, 0x10000002, 0x60000002,
- 0xb8000001, 0xf8000001, 0xa8000001, 0xd0000001,
- 0xc0000001, 0x88000001, 0xb0000001, 0xe8000001,
- 0x80000001, 0xc8000001, 0x98000001, 0xf0000001,
- 0xd8000001, 0xa0000001, 0x90000001, 0xe0000001,
- 0x38000007, 0x78000007, 0x28000007, 0x50000007,
- 0x40000007, 0x08000007, 0x30000007, 0x68000007,
- 0x00000007, 0x48000007, 0x18000007, 0x70000007,
- 0x58000007, 0x20000007, 0x10000007, 0x60000007,
- 0x38000000, 0x78000000, 0x28000000, 0x50000000,
- 0x40000000, 0x08000000, 0x30000000, 0x68000000,
- 0x00000000, 0x48000000, 0x18000000, 0x70000000,
- 0x58000000, 0x20000000, 0x10000000, 0x60000000,
- /* 3 */
- 0x000000c0, 0x000000f0, 0x00000090, 0x000000a8,
- 0x000000b0, 0x000000c8, 0x00000088, 0x000000e0,
- 0x000000f8, 0x000000a0, 0x000000d8, 0x00000080,
- 0x000000e8, 0x000000d0, 0x00000098, 0x000000b8,
- 0x000003c0, 0x000003f0, 0x00000390, 0x000003a8,
- 0x000003b0, 0x000003c8, 0x00000388, 0x000003e0,
- 0x000003f8, 0x000003a0, 0x000003d8, 0x00000380,
- 0x000003e8, 0x000003d0, 0x00000398, 0x000003b8,
- 0x00000740, 0x00000770, 0x00000710, 0x00000728,
- 0x00000730, 0x00000748, 0x00000708, 0x00000760,
- 0x00000778, 0x00000720, 0x00000758, 0x00000700,
- 0x00000768, 0x00000750, 0x00000718, 0x00000738,
- 0x000006c0, 0x000006f0, 0x00000690, 0x000006a8,
- 0x000006b0, 0x000006c8, 0x00000688, 0x000006e0,
- 0x000006f8, 0x000006a0, 0x000006d8, 0x00000680,
- 0x000006e8, 0x000006d0, 0x00000698, 0x000006b8,
- 0x00000040, 0x00000070, 0x00000010, 0x00000028,
- 0x00000030, 0x00000048, 0x00000008, 0x00000060,
- 0x00000078, 0x00000020, 0x00000058, 0x00000000,
- 0x00000068, 0x00000050, 0x00000018, 0x00000038,
- 0x000002c0, 0x000002f0, 0x00000290, 0x000002a8,
- 0x000002b0, 0x000002c8, 0x00000288, 0x000002e0,
- 0x000002f8, 0x000002a0, 0x000002d8, 0x00000280,
- 0x000002e8, 0x000002d0, 0x00000298, 0x000002b8,
- 0x00000440, 0x00000470, 0x00000410, 0x00000428,
- 0x00000430, 0x00000448, 0x00000408, 0x00000460,
- 0x00000478, 0x00000420, 0x00000458, 0x00000400,
- 0x00000468, 0x00000450, 0x00000418, 0x00000438,
- 0x000001c0, 0x000001f0, 0x00000190, 0x000001a8,
- 0x000001b0, 0x000001c8, 0x00000188, 0x000001e0,
- 0x000001f8, 0x000001a0, 0x000001d8, 0x00000180,
- 0x000001e8, 0x000001d0, 0x00000198, 0x000001b8,
- 0x00000240, 0x00000270, 0x00000210, 0x00000228,
- 0x00000230, 0x00000248, 0x00000208, 0x00000260,
- 0x00000278, 0x00000220, 0x00000258, 0x00000200,
- 0x00000268, 0x00000250, 0x00000218, 0x00000238,
- 0x000007c0, 0x000007f0, 0x00000790, 0x000007a8,
- 0x000007b0, 0x000007c8, 0x00000788, 0x000007e0,
- 0x000007f8, 0x000007a0, 0x000007d8, 0x00000780,
- 0x000007e8, 0x000007d0, 0x00000798, 0x000007b8,
- 0x00000540, 0x00000570, 0x00000510, 0x00000528,
- 0x00000530, 0x00000548, 0x00000508, 0x00000560,
- 0x00000578, 0x00000520, 0x00000558, 0x00000500,
- 0x00000568, 0x00000550, 0x00000518, 0x00000538,
- 0x00000340, 0x00000370, 0x00000310, 0x00000328,
- 0x00000330, 0x00000348, 0x00000308, 0x00000360,
- 0x00000378, 0x00000320, 0x00000358, 0x00000300,
- 0x00000368, 0x00000350, 0x00000318, 0x00000338,
- 0x000004c0, 0x000004f0, 0x00000490, 0x000004a8,
- 0x000004b0, 0x000004c8, 0x00000488, 0x000004e0,
- 0x000004f8, 0x000004a0, 0x000004d8, 0x00000480,
- 0x000004e8, 0x000004d0, 0x00000498, 0x000004b8,
- 0x00000640, 0x00000670, 0x00000610, 0x00000628,
- 0x00000630, 0x00000648, 0x00000608, 0x00000660,
- 0x00000678, 0x00000620, 0x00000658, 0x00000600,
- 0x00000668, 0x00000650, 0x00000618, 0x00000638,
- 0x000005c0, 0x000005f0, 0x00000590, 0x000005a8,
- 0x000005b0, 0x000005c8, 0x00000588, 0x000005e0,
- 0x000005f8, 0x000005a0, 0x000005d8, 0x00000580,
- 0x000005e8, 0x000005d0, 0x00000598, 0x000005b8,
- 0x00000140, 0x00000170, 0x00000110, 0x00000128,
- 0x00000130, 0x00000148, 0x00000108, 0x00000160,
- 0x00000178, 0x00000120, 0x00000158, 0x00000100,
- 0x00000168, 0x00000150, 0x00000118, 0x00000138,
- }
+const struct gost28147_param gost28147_param_TC26_Z = {
+ 1,
+ {
+ /* 0 */
+ 0x00036000, 0x00032000, 0x00033000, 0x00031000,
+ 0x00035000, 0x00032800, 0x00035800, 0x00034800,
+ 0x00037000, 0x00034000, 0x00036800, 0x00033800,
+ 0x00030000, 0x00031800, 0x00037800, 0x00030800,
+ 0x00046000, 0x00042000, 0x00043000, 0x00041000,
+ 0x00045000, 0x00042800, 0x00045800, 0x00044800,
+ 0x00047000, 0x00044000, 0x00046800, 0x00043800,
+ 0x00040000, 0x00041800, 0x00047800, 0x00040800,
+ 0x00016000, 0x00012000, 0x00013000, 0x00011000,
+ 0x00015000, 0x00012800, 0x00015800, 0x00014800,
+ 0x00017000, 0x00014000, 0x00016800, 0x00013800,
+ 0x00010000, 0x00011800, 0x00017800, 0x00010800,
+ 0x0001e000, 0x0001a000, 0x0001b000, 0x00019000,
+ 0x0001d000, 0x0001a800, 0x0001d800, 0x0001c800,
+ 0x0001f000, 0x0001c000, 0x0001e800, 0x0001b800,
+ 0x00018000, 0x00019800, 0x0001f800, 0x00018800,
+ 0x0004e000, 0x0004a000, 0x0004b000, 0x00049000,
+ 0x0004d000, 0x0004a800, 0x0004d800, 0x0004c800,
+ 0x0004f000, 0x0004c000, 0x0004e800, 0x0004b800,
+ 0x00048000, 0x00049800, 0x0004f800, 0x00048800,
+ 0x00056000, 0x00052000, 0x00053000, 0x00051000,
+ 0x00055000, 0x00052800, 0x00055800, 0x00054800,
+ 0x00057000, 0x00054000, 0x00056800, 0x00053800,
+ 0x00050000, 0x00051800, 0x00057800, 0x00050800,
+ 0x0002e000, 0x0002a000, 0x0002b000, 0x00029000,
+ 0x0002d000, 0x0002a800, 0x0002d800, 0x0002c800,
+ 0x0002f000, 0x0002c000, 0x0002e800, 0x0002b800,
+ 0x00028000, 0x00029800, 0x0002f800, 0x00028800,
+ 0x00066000, 0x00062000, 0x00063000, 0x00061000,
+ 0x00065000, 0x00062800, 0x00065800, 0x00064800,
+ 0x00067000, 0x00064000, 0x00066800, 0x00063800,
+ 0x00060000, 0x00061800, 0x00067800, 0x00060800,
+ 0x0000e000, 0x0000a000, 0x0000b000, 0x00009000,
+ 0x0000d000, 0x0000a800, 0x0000d800, 0x0000c800,
+ 0x0000f000, 0x0000c000, 0x0000e800, 0x0000b800,
+ 0x00008000, 0x00009800, 0x0000f800, 0x00008800,
+ 0x00076000, 0x00072000, 0x00073000, 0x00071000,
+ 0x00075000, 0x00072800, 0x00075800, 0x00074800,
+ 0x00077000, 0x00074000, 0x00076800, 0x00073800,
+ 0x00070000, 0x00071800, 0x00077800, 0x00070800,
+ 0x00026000, 0x00022000, 0x00023000, 0x00021000,
+ 0x00025000, 0x00022800, 0x00025800, 0x00024800,
+ 0x00027000, 0x00024000, 0x00026800, 0x00023800,
+ 0x00020000, 0x00021800, 0x00027800, 0x00020800,
+ 0x0003e000, 0x0003a000, 0x0003b000, 0x00039000,
+ 0x0003d000, 0x0003a800, 0x0003d800, 0x0003c800,
+ 0x0003f000, 0x0003c000, 0x0003e800, 0x0003b800,
+ 0x00038000, 0x00039800, 0x0003f800, 0x00038800,
+ 0x0005e000, 0x0005a000, 0x0005b000, 0x00059000,
+ 0x0005d000, 0x0005a800, 0x0005d800, 0x0005c800,
+ 0x0005f000, 0x0005c000, 0x0005e800, 0x0005b800,
+ 0x00058000, 0x00059800, 0x0005f800, 0x00058800,
+ 0x0006e000, 0x0006a000, 0x0006b000, 0x00069000,
+ 0x0006d000, 0x0006a800, 0x0006d800, 0x0006c800,
+ 0x0006f000, 0x0006c000, 0x0006e800, 0x0006b800,
+ 0x00068000, 0x00069800, 0x0006f800, 0x00068800,
+ 0x00006000, 0x00002000, 0x00003000, 0x00001000,
+ 0x00005000, 0x00002800, 0x00005800, 0x00004800,
+ 0x00007000, 0x00004000, 0x00006800, 0x00003800,
+ 0x00000000, 0x00001800, 0x00007800, 0x00000800,
+ 0x0007e000, 0x0007a000, 0x0007b000, 0x00079000,
+ 0x0007d000, 0x0007a800, 0x0007d800, 0x0007c800,
+ 0x0007f000, 0x0007c000, 0x0007e800, 0x0007b800,
+ 0x00078000, 0x00079800, 0x0007f800, 0x00078800,
+ /* 1 */
+ 0x06580000, 0x06180000, 0x06280000, 0x06400000,
+ 0x06100000, 0x06780000, 0x06500000, 0x06680000,
+ 0x06700000, 0x06080000, 0x06380000, 0x06200000,
+ 0x06600000, 0x06480000, 0x06300000, 0x06000000,
+ 0x04580000, 0x04180000, 0x04280000, 0x04400000,
+ 0x04100000, 0x04780000, 0x04500000, 0x04680000,
+ 0x04700000, 0x04080000, 0x04380000, 0x04200000,
+ 0x04600000, 0x04480000, 0x04300000, 0x04000000,
+ 0x01580000, 0x01180000, 0x01280000, 0x01400000,
+ 0x01100000, 0x01780000, 0x01500000, 0x01680000,
+ 0x01700000, 0x01080000, 0x01380000, 0x01200000,
+ 0x01600000, 0x01480000, 0x01300000, 0x01000000,
+ 0x00d80000, 0x00980000, 0x00a80000, 0x00c00000,
+ 0x00900000, 0x00f80000, 0x00d00000, 0x00e80000,
+ 0x00f00000, 0x00880000, 0x00b80000, 0x00a00000,
+ 0x00e00000, 0x00c80000, 0x00b00000, 0x00800000,
+ 0x06d80000, 0x06980000, 0x06a80000, 0x06c00000,
+ 0x06900000, 0x06f80000, 0x06d00000, 0x06e80000,
+ 0x06f00000, 0x06880000, 0x06b80000, 0x06a00000,
+ 0x06e00000, 0x06c80000, 0x06b00000, 0x06800000,
+ 0x02580000, 0x02180000, 0x02280000, 0x02400000,
+ 0x02100000, 0x02780000, 0x02500000, 0x02680000,
+ 0x02700000, 0x02080000, 0x02380000, 0x02200000,
+ 0x02600000, 0x02480000, 0x02300000, 0x02000000,
+ 0x07d80000, 0x07980000, 0x07a80000, 0x07c00000,
+ 0x07900000, 0x07f80000, 0x07d00000, 0x07e80000,
+ 0x07f00000, 0x07880000, 0x07b80000, 0x07a00000,
+ 0x07e00000, 0x07c80000, 0x07b00000, 0x07800000,
+ 0x03580000, 0x03180000, 0x03280000, 0x03400000,
+ 0x03100000, 0x03780000, 0x03500000, 0x03680000,
+ 0x03700000, 0x03080000, 0x03380000, 0x03200000,
+ 0x03600000, 0x03480000, 0x03300000, 0x03000000,
+ 0x03d80000, 0x03980000, 0x03a80000, 0x03c00000,
+ 0x03900000, 0x03f80000, 0x03d00000, 0x03e80000,
+ 0x03f00000, 0x03880000, 0x03b80000, 0x03a00000,
+ 0x03e00000, 0x03c80000, 0x03b00000, 0x03800000,
+ 0x00580000, 0x00180000, 0x00280000, 0x00400000,
+ 0x00100000, 0x00780000, 0x00500000, 0x00680000,
+ 0x00700000, 0x00080000, 0x00380000, 0x00200000,
+ 0x00600000, 0x00480000, 0x00300000, 0x00000000,
+ 0x05580000, 0x05180000, 0x05280000, 0x05400000,
+ 0x05100000, 0x05780000, 0x05500000, 0x05680000,
+ 0x05700000, 0x05080000, 0x05380000, 0x05200000,
+ 0x05600000, 0x05480000, 0x05300000, 0x05000000,
+ 0x02d80000, 0x02980000, 0x02a80000, 0x02c00000,
+ 0x02900000, 0x02f80000, 0x02d00000, 0x02e80000,
+ 0x02f00000, 0x02880000, 0x02b80000, 0x02a00000,
+ 0x02e00000, 0x02c80000, 0x02b00000, 0x02800000,
+ 0x01d80000, 0x01980000, 0x01a80000, 0x01c00000,
+ 0x01900000, 0x01f80000, 0x01d00000, 0x01e80000,
+ 0x01f00000, 0x01880000, 0x01b80000, 0x01a00000,
+ 0x01e00000, 0x01c80000, 0x01b00000, 0x01800000,
+ 0x07580000, 0x07180000, 0x07280000, 0x07400000,
+ 0x07100000, 0x07780000, 0x07500000, 0x07680000,
+ 0x07700000, 0x07080000, 0x07380000, 0x07200000,
+ 0x07600000, 0x07480000, 0x07300000, 0x07000000,
+ 0x04d80000, 0x04980000, 0x04a80000, 0x04c00000,
+ 0x04900000, 0x04f80000, 0x04d00000, 0x04e80000,
+ 0x04f00000, 0x04880000, 0x04b80000, 0x04a00000,
+ 0x04e00000, 0x04c80000, 0x04b00000, 0x04800000,
+ 0x05d80000, 0x05980000, 0x05a80000, 0x05c00000,
+ 0x05900000, 0x05f80000, 0x05d00000, 0x05e80000,
+ 0x05f00000, 0x05880000, 0x05b80000, 0x05a00000,
+ 0x05e00000, 0x05c80000, 0x05b00000, 0x05800000,
+ /* 2 */
+ 0xb8000002, 0xf8000002, 0xa8000002, 0xd0000002,
+ 0xc0000002, 0x88000002, 0xb0000002, 0xe8000002,
+ 0x80000002, 0xc8000002, 0x98000002, 0xf0000002,
+ 0xd8000002, 0xa0000002, 0x90000002, 0xe0000002,
+ 0xb8000006, 0xf8000006, 0xa8000006, 0xd0000006,
+ 0xc0000006, 0x88000006, 0xb0000006, 0xe8000006,
+ 0x80000006, 0xc8000006, 0x98000006, 0xf0000006,
+ 0xd8000006, 0xa0000006, 0x90000006, 0xe0000006,
+ 0xb8000007, 0xf8000007, 0xa8000007, 0xd0000007,
+ 0xc0000007, 0x88000007, 0xb0000007, 0xe8000007,
+ 0x80000007, 0xc8000007, 0x98000007, 0xf0000007,
+ 0xd8000007, 0xa0000007, 0x90000007, 0xe0000007,
+ 0x38000003, 0x78000003, 0x28000003, 0x50000003,
+ 0x40000003, 0x08000003, 0x30000003, 0x68000003,
+ 0x00000003, 0x48000003, 0x18000003, 0x70000003,
+ 0x58000003, 0x20000003, 0x10000003, 0x60000003,
+ 0xb8000004, 0xf8000004, 0xa8000004, 0xd0000004,
+ 0xc0000004, 0x88000004, 0xb0000004, 0xe8000004,
+ 0x80000004, 0xc8000004, 0x98000004, 0xf0000004,
+ 0xd8000004, 0xa0000004, 0x90000004, 0xe0000004,
+ 0x38000001, 0x78000001, 0x28000001, 0x50000001,
+ 0x40000001, 0x08000001, 0x30000001, 0x68000001,
+ 0x00000001, 0x48000001, 0x18000001, 0x70000001,
+ 0x58000001, 0x20000001, 0x10000001, 0x60000001,
+ 0x38000006, 0x78000006, 0x28000006, 0x50000006,
+ 0x40000006, 0x08000006, 0x30000006, 0x68000006,
+ 0x00000006, 0x48000006, 0x18000006, 0x70000006,
+ 0x58000006, 0x20000006, 0x10000006, 0x60000006,
+ 0x38000005, 0x78000005, 0x28000005, 0x50000005,
+ 0x40000005, 0x08000005, 0x30000005, 0x68000005,
+ 0x00000005, 0x48000005, 0x18000005, 0x70000005,
+ 0x58000005, 0x20000005, 0x10000005, 0x60000005,
+ 0xb8000005, 0xf8000005, 0xa8000005, 0xd0000005,
+ 0xc0000005, 0x88000005, 0xb0000005, 0xe8000005,
+ 0x80000005, 0xc8000005, 0x98000005, 0xf0000005,
+ 0xd8000005, 0xa0000005, 0x90000005, 0xe0000005,
+ 0xb8000003, 0xf8000003, 0xa8000003, 0xd0000003,
+ 0xc0000003, 0x88000003, 0xb0000003, 0xe8000003,
+ 0x80000003, 0xc8000003, 0x98000003, 0xf0000003,
+ 0xd8000003, 0xa0000003, 0x90000003, 0xe0000003,
+ 0x38000004, 0x78000004, 0x28000004, 0x50000004,
+ 0x40000004, 0x08000004, 0x30000004, 0x68000004,
+ 0x00000004, 0x48000004, 0x18000004, 0x70000004,
+ 0x58000004, 0x20000004, 0x10000004, 0x60000004,
+ 0xb8000000, 0xf8000000, 0xa8000000, 0xd0000000,
+ 0xc0000000, 0x88000000, 0xb0000000, 0xe8000000,
+ 0x80000000, 0xc8000000, 0x98000000, 0xf0000000,
+ 0xd8000000, 0xa0000000, 0x90000000, 0xe0000000,
+ 0x38000002, 0x78000002, 0x28000002, 0x50000002,
+ 0x40000002, 0x08000002, 0x30000002, 0x68000002,
+ 0x00000002, 0x48000002, 0x18000002, 0x70000002,
+ 0x58000002, 0x20000002, 0x10000002, 0x60000002,
+ 0xb8000001, 0xf8000001, 0xa8000001, 0xd0000001,
+ 0xc0000001, 0x88000001, 0xb0000001, 0xe8000001,
+ 0x80000001, 0xc8000001, 0x98000001, 0xf0000001,
+ 0xd8000001, 0xa0000001, 0x90000001, 0xe0000001,
+ 0x38000007, 0x78000007, 0x28000007, 0x50000007,
+ 0x40000007, 0x08000007, 0x30000007, 0x68000007,
+ 0x00000007, 0x48000007, 0x18000007, 0x70000007,
+ 0x58000007, 0x20000007, 0x10000007, 0x60000007,
+ 0x38000000, 0x78000000, 0x28000000, 0x50000000,
+ 0x40000000, 0x08000000, 0x30000000, 0x68000000,
+ 0x00000000, 0x48000000, 0x18000000, 0x70000000,
+ 0x58000000, 0x20000000, 0x10000000, 0x60000000,
+ /* 3 */
+ 0x000000c0, 0x000000f0, 0x00000090, 0x000000a8,
+ 0x000000b0, 0x000000c8, 0x00000088, 0x000000e0,
+ 0x000000f8, 0x000000a0, 0x000000d8, 0x00000080,
+ 0x000000e8, 0x000000d0, 0x00000098, 0x000000b8,
+ 0x000003c0, 0x000003f0, 0x00000390, 0x000003a8,
+ 0x000003b0, 0x000003c8, 0x00000388, 0x000003e0,
+ 0x000003f8, 0x000003a0, 0x000003d8, 0x00000380,
+ 0x000003e8, 0x000003d0, 0x00000398, 0x000003b8,
+ 0x00000740, 0x00000770, 0x00000710, 0x00000728,
+ 0x00000730, 0x00000748, 0x00000708, 0x00000760,
+ 0x00000778, 0x00000720, 0x00000758, 0x00000700,
+ 0x00000768, 0x00000750, 0x00000718, 0x00000738,
+ 0x000006c0, 0x000006f0, 0x00000690, 0x000006a8,
+ 0x000006b0, 0x000006c8, 0x00000688, 0x000006e0,
+ 0x000006f8, 0x000006a0, 0x000006d8, 0x00000680,
+ 0x000006e8, 0x000006d0, 0x00000698, 0x000006b8,
+ 0x00000040, 0x00000070, 0x00000010, 0x00000028,
+ 0x00000030, 0x00000048, 0x00000008, 0x00000060,
+ 0x00000078, 0x00000020, 0x00000058, 0x00000000,
+ 0x00000068, 0x00000050, 0x00000018, 0x00000038,
+ 0x000002c0, 0x000002f0, 0x00000290, 0x000002a8,
+ 0x000002b0, 0x000002c8, 0x00000288, 0x000002e0,
+ 0x000002f8, 0x000002a0, 0x000002d8, 0x00000280,
+ 0x000002e8, 0x000002d0, 0x00000298, 0x000002b8,
+ 0x00000440, 0x00000470, 0x00000410, 0x00000428,
+ 0x00000430, 0x00000448, 0x00000408, 0x00000460,
+ 0x00000478, 0x00000420, 0x00000458, 0x00000400,
+ 0x00000468, 0x00000450, 0x00000418, 0x00000438,
+ 0x000001c0, 0x000001f0, 0x00000190, 0x000001a8,
+ 0x000001b0, 0x000001c8, 0x00000188, 0x000001e0,
+ 0x000001f8, 0x000001a0, 0x000001d8, 0x00000180,
+ 0x000001e8, 0x000001d0, 0x00000198, 0x000001b8,
+ 0x00000240, 0x00000270, 0x00000210, 0x00000228,
+ 0x00000230, 0x00000248, 0x00000208, 0x00000260,
+ 0x00000278, 0x00000220, 0x00000258, 0x00000200,
+ 0x00000268, 0x00000250, 0x00000218, 0x00000238,
+ 0x000007c0, 0x000007f0, 0x00000790, 0x000007a8,
+ 0x000007b0, 0x000007c8, 0x00000788, 0x000007e0,
+ 0x000007f8, 0x000007a0, 0x000007d8, 0x00000780,
+ 0x000007e8, 0x000007d0, 0x00000798, 0x000007b8,
+ 0x00000540, 0x00000570, 0x00000510, 0x00000528,
+ 0x00000530, 0x00000548, 0x00000508, 0x00000560,
+ 0x00000578, 0x00000520, 0x00000558, 0x00000500,
+ 0x00000568, 0x00000550, 0x00000518, 0x00000538,
+ 0x00000340, 0x00000370, 0x00000310, 0x00000328,
+ 0x00000330, 0x00000348, 0x00000308, 0x00000360,
+ 0x00000378, 0x00000320, 0x00000358, 0x00000300,
+ 0x00000368, 0x00000350, 0x00000318, 0x00000338,
+ 0x000004c0, 0x000004f0, 0x00000490, 0x000004a8,
+ 0x000004b0, 0x000004c8, 0x00000488, 0x000004e0,
+ 0x000004f8, 0x000004a0, 0x000004d8, 0x00000480,
+ 0x000004e8, 0x000004d0, 0x00000498, 0x000004b8,
+ 0x00000640, 0x00000670, 0x00000610, 0x00000628,
+ 0x00000630, 0x00000648, 0x00000608, 0x00000660,
+ 0x00000678, 0x00000620, 0x00000658, 0x00000600,
+ 0x00000668, 0x00000650, 0x00000618, 0x00000638,
+ 0x000005c0, 0x000005f0, 0x00000590, 0x000005a8,
+ 0x000005b0, 0x000005c8, 0x00000588, 0x000005e0,
+ 0x000005f8, 0x000005a0, 0x000005d8, 0x00000580,
+ 0x000005e8, 0x000005d0, 0x00000598, 0x000005b8,
+ 0x00000140, 0x00000170, 0x00000110, 0x00000128,
+ 0x00000130, 0x00000148, 0x00000108, 0x00000160,
+ 0x00000178, 0x00000120, 0x00000158, 0x00000100,
+ 0x00000168, 0x00000150, 0x00000118, 0x00000138,
+ }
};
/*
@@ -2185,7 +2177,7 @@ const struct gost28147_param gost28147_param_TC26_Z =
* Temporary variables tmp assumed and variables r and l for left and right
* blocks.
*/
-#define GOST_ENCRYPT_ROUND(key1, key2, sbox) \
+# define GOST_ENCRYPT_ROUND(key1, key2, sbox) \
tmp = (key1) + r; \
l ^= (sbox)[0*256 + (tmp & 0xff)] ^ (sbox)[1*256 + ((tmp >> 8) & 0xff)] ^ \
(sbox)[2*256 + ((tmp >> 16) & 0xff)] ^ (sbox)[3*256 + (tmp >> 24)]; \
@@ -2194,298 +2186,294 @@ const struct gost28147_param gost28147_param_TC26_Z =
(sbox)[2*256 + ((tmp >> 16) & 0xff)] ^ (sbox)[3*256 + (tmp >> 24)];
/* encrypt a block with the given key */
-void gost28147_encrypt_simple (const uint32_t *key, const uint32_t *sbox,
- const uint32_t *in, uint32_t *out)
+void gost28147_encrypt_simple(const uint32_t * key, const uint32_t * sbox,
+ const uint32_t * in, uint32_t * out)
{
- uint32_t l, r, tmp;
-
- r = in[0], l = in[1];
- GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
- GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
- GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
- GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
- GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
- GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
- GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
- GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
- GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
- GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
- GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
- GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
- GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
- GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
- GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
- GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
- *out = l, *(out + 1) = r;
+ uint32_t l, r, tmp;
+
+ r = in[0], l = in[1];
+ GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
+ GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
+ GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
+ GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
+ GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
+ GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
+ GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
+ GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
+ GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
+ GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
+ GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
+ GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
+ GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
+ GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
+ GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
+ GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
+ * out = l, *(out + 1) = r;
}
-void gost28147_decrypt_simple (const uint32_t *key, const uint32_t *sbox,
- const uint32_t *in, uint32_t *out)
+void gost28147_decrypt_simple(const uint32_t * key, const uint32_t * sbox,
+ const uint32_t * in, uint32_t * out)
{
- uint32_t l, r, tmp;
-
- r = in[0], l = in[1];
- GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
- GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
- GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
- GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
- GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
- GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
- GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
- GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
- GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
- GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
- GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
- GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
- GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
- GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
- GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
- GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
- *out = l, *(out + 1) = r;
+ uint32_t l, r, tmp;
+
+ r = in[0], l = in[1];
+ GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
+ GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
+ GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
+ GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
+ GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
+ GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
+ GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
+ GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
+ GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
+ GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
+ GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
+ GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
+ GOST_ENCRYPT_ROUND(key[7], key[6], sbox)
+ GOST_ENCRYPT_ROUND(key[5], key[4], sbox)
+ GOST_ENCRYPT_ROUND(key[3], key[2], sbox)
+ GOST_ENCRYPT_ROUND(key[1], key[0], sbox)
+ * out = l, *(out + 1) = r;
}
-static void gost28147_imit_simple (const uint32_t *key, const uint32_t *sbox,
- const uint32_t *in, uint32_t *out)
+static void gost28147_imit_simple(const uint32_t * key, const uint32_t * sbox,
+ const uint32_t * in, uint32_t * out)
{
- uint32_t l, r, tmp;
-
- r = in[0], l = in[1];
- GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
- GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
- GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
- GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
- GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
- GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
- GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
- GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
- *out = r, *(out + 1) = l;
+ uint32_t l, r, tmp;
+
+ r = in[0], l = in[1];
+ GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
+ GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
+ GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
+ GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
+ GOST_ENCRYPT_ROUND(key[0], key[1], sbox)
+ GOST_ENCRYPT_ROUND(key[2], key[3], sbox)
+ GOST_ENCRYPT_ROUND(key[4], key[5], sbox)
+ GOST_ENCRYPT_ROUND(key[6], key[7], sbox)
+ * out = r, *(out + 1) = l;
}
-static const uint32_t gost28147_key_mesh_cryptopro_data[GOST28147_KEY_SIZE / 4] = {
- 0x22720069, 0x2304c964,
- 0x96db3a8d, 0xc42ae946,
- 0x94acfe18, 0x1207ed00,
- 0xc2dc86c0, 0x2ba94cef,
+static const uint32_t gost28147_key_mesh_cryptopro_data[GOST28147_KEY_SIZE /
+ 4] = {
+ 0x22720069, 0x2304c964,
+ 0x96db3a8d, 0xc42ae946,
+ 0x94acfe18, 0x1207ed00,
+ 0xc2dc86c0, 0x2ba94cef,
};
static void gost28147_key_mesh_cryptopro(struct gost28147_ctx *ctx)
{
- uint32_t newkey[GOST28147_KEY_SIZE/4];
+ uint32_t newkey[GOST28147_KEY_SIZE / 4];
- gost28147_decrypt_simple(ctx->key, ctx->sbox,
- &gost28147_key_mesh_cryptopro_data[0],
- &newkey[0]);
+ gost28147_decrypt_simple(ctx->key, ctx->sbox,
+ &gost28147_key_mesh_cryptopro_data[0],
+ &newkey[0]);
- gost28147_decrypt_simple(ctx->key, ctx->sbox,
- &gost28147_key_mesh_cryptopro_data[2],
- &newkey[2]);
+ gost28147_decrypt_simple(ctx->key, ctx->sbox,
+ &gost28147_key_mesh_cryptopro_data[2],
+ &newkey[2]);
- gost28147_decrypt_simple(ctx->key, ctx->sbox,
- &gost28147_key_mesh_cryptopro_data[4],
- &newkey[4]);
+ gost28147_decrypt_simple(ctx->key, ctx->sbox,
+ &gost28147_key_mesh_cryptopro_data[4],
+ &newkey[4]);
- gost28147_decrypt_simple(ctx->key, ctx->sbox,
- &gost28147_key_mesh_cryptopro_data[6],
- &newkey[6]);
+ gost28147_decrypt_simple(ctx->key, ctx->sbox,
+ &gost28147_key_mesh_cryptopro_data[6],
+ &newkey[6]);
- memcpy(ctx->key, newkey, sizeof(newkey));
- ctx->key_count = 0;
+ memcpy(ctx->key, newkey, sizeof(newkey));
+ ctx->key_count = 0;
}
-void
-gost28147_set_key(struct gost28147_ctx *ctx, const uint8_t *key)
+void gost28147_set_key(struct gost28147_ctx *ctx, const uint8_t * key)
{
- unsigned i;
+ unsigned i;
- assert(key);
- for (i = 0; i < 8; i++, key += 4)
- ctx->key[i] = LE_READ_UINT32(key);
- ctx->key_count = 0;
+ assert(key);
+ for (i = 0; i < 8; i++, key += 4)
+ ctx->key[i] = LE_READ_UINT32(key);
+ ctx->key_count = 0;
}
void
-gost28147_set_param(struct gost28147_ctx *ctx, const struct gost28147_param *param)
+gost28147_set_param(struct gost28147_ctx *ctx,
+ const struct gost28147_param *param)
{
- assert(param);
- ctx->sbox = param->sbox;
- ctx->key_meshing = param->key_meshing;
+ assert(param);
+ ctx->sbox = param->sbox;
+ ctx->key_meshing = param->key_meshing;
}
void
gost28147_encrypt(const struct gost28147_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- uint32_t block[2];
-
- assert(!(length % GOST28147_BLOCK_SIZE));
-
- while (length)
- {
- block[0] = LE_READ_UINT32(src); src += 4;
- block[1] = LE_READ_UINT32(src); src += 4;
- gost28147_encrypt_simple(ctx->key, ctx->sbox, block, block);
- LE_WRITE_UINT32(dst, block[0]); dst += 4;
- LE_WRITE_UINT32(dst, block[1]); dst += 4;
- length -= GOST28147_BLOCK_SIZE;
- }
+ uint32_t block[2];
+
+ assert(!(length % GOST28147_BLOCK_SIZE));
+
+ while (length) {
+ block[0] = LE_READ_UINT32(src);
+ src += 4;
+ block[1] = LE_READ_UINT32(src);
+ src += 4;
+ gost28147_encrypt_simple(ctx->key, ctx->sbox, block, block);
+ LE_WRITE_UINT32(dst, block[0]);
+ dst += 4;
+ LE_WRITE_UINT32(dst, block[1]);
+ dst += 4;
+ length -= GOST28147_BLOCK_SIZE;
+ }
}
void
gost28147_decrypt(const struct gost28147_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- uint32_t block[2];
-
- assert(!(length % GOST28147_BLOCK_SIZE));
-
- while (length)
- {
- block[0] = LE_READ_UINT32(src); src += 4;
- block[1] = LE_READ_UINT32(src); src += 4;
- gost28147_decrypt_simple(ctx->key, ctx->sbox, block, block);
- LE_WRITE_UINT32(dst, block[0]); dst += 4;
- LE_WRITE_UINT32(dst, block[1]); dst += 4;
- length -= GOST28147_BLOCK_SIZE;
- }
+ uint32_t block[2];
+
+ assert(!(length % GOST28147_BLOCK_SIZE));
+
+ while (length) {
+ block[0] = LE_READ_UINT32(src);
+ src += 4;
+ block[1] = LE_READ_UINT32(src);
+ src += 4;
+ gost28147_decrypt_simple(ctx->key, ctx->sbox, block, block);
+ LE_WRITE_UINT32(dst, block[0]);
+ dst += 4;
+ LE_WRITE_UINT32(dst, block[1]);
+ dst += 4;
+ length -= GOST28147_BLOCK_SIZE;
+ }
}
void
gost28147_encrypt_for_cfb(struct gost28147_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- uint32_t block[2];
-
- assert(!(length % GOST28147_BLOCK_SIZE));
-
- while (length)
- {
- block[0] = LE_READ_UINT32(src); src += 4;
- block[1] = LE_READ_UINT32(src); src += 4;
- if (ctx->key_meshing && ctx->key_count == 1024)
- {
- gost28147_key_mesh_cryptopro(ctx);
- gost28147_encrypt_simple(ctx->key, ctx->sbox, block, block);
- ctx->key_count = 0;
+ uint32_t block[2];
+
+ assert(!(length % GOST28147_BLOCK_SIZE));
+
+ while (length) {
+ block[0] = LE_READ_UINT32(src);
+ src += 4;
+ block[1] = LE_READ_UINT32(src);
+ src += 4;
+ if (ctx->key_meshing && ctx->key_count == 1024) {
+ gost28147_key_mesh_cryptopro(ctx);
+ gost28147_encrypt_simple(ctx->key, ctx->sbox, block,
+ block);
+ ctx->key_count = 0;
+ }
+ gost28147_encrypt_simple(ctx->key, ctx->sbox, block, block);
+ LE_WRITE_UINT32(dst, block[0]);
+ dst += 4;
+ LE_WRITE_UINT32(dst, block[1]);
+ dst += 4;
+ length -= GOST28147_BLOCK_SIZE;
+ ctx->key_count += GOST28147_BLOCK_SIZE;
}
- gost28147_encrypt_simple(ctx->key, ctx->sbox, block, block);
- LE_WRITE_UINT32(dst, block[0]); dst += 4;
- LE_WRITE_UINT32(dst, block[1]); dst += 4;
- length -= GOST28147_BLOCK_SIZE;
- ctx->key_count += GOST28147_BLOCK_SIZE;
- }
}
-static void
-gost28147_cnt_next_iv(struct gost28147_cnt_ctx *ctx,
- uint8_t *out)
+static void gost28147_cnt_next_iv(struct gost28147_cnt_ctx *ctx, uint8_t * out)
{
- uint32_t block[2];
- uint32_t temp;
-
- if (ctx->ctx.key_meshing && ctx->ctx.key_count == 1024)
- {
- gost28147_key_mesh_cryptopro(&ctx->ctx);
- gost28147_encrypt_simple(ctx->ctx.key, ctx->ctx.sbox, ctx->iv, ctx->iv);
- ctx->ctx.key_count = 0;
- }
+ uint32_t block[2];
+ uint32_t temp;
+
+ if (ctx->ctx.key_meshing && ctx->ctx.key_count == 1024) {
+ gost28147_key_mesh_cryptopro(&ctx->ctx);
+ gost28147_encrypt_simple(ctx->ctx.key, ctx->ctx.sbox, ctx->iv,
+ ctx->iv);
+ ctx->ctx.key_count = 0;
+ }
- ctx->iv[0] += 0x01010101;
- temp = ctx->iv[1] + 0x01010104;
- if (temp < ctx->iv[1])
- ctx->iv[1] = temp + 1; /* Overflow */
- else
- ctx->iv[1] = temp;
+ ctx->iv[0] += 0x01010101;
+ temp = ctx->iv[1] + 0x01010104;
+ if (temp < ctx->iv[1])
+ ctx->iv[1] = temp + 1; /* Overflow */
+ else
+ ctx->iv[1] = temp;
- gost28147_encrypt_simple(ctx->ctx.key, ctx->ctx.sbox, ctx->iv, block);
+ gost28147_encrypt_simple(ctx->ctx.key, ctx->ctx.sbox, ctx->iv, block);
- LE_WRITE_UINT32(out + 0, block[0]);
- LE_WRITE_UINT32(out + 4, block[1]);
+ LE_WRITE_UINT32(out + 0, block[0]);
+ LE_WRITE_UINT32(out + 4, block[1]);
- ctx->ctx.key_count += GOST28147_BLOCK_SIZE;
+ ctx->ctx.key_count += GOST28147_BLOCK_SIZE;
}
void
gost28147_cnt_init(struct gost28147_cnt_ctx *ctx,
- const uint8_t *key,
- const struct gost28147_param *param)
+ const uint8_t * key, const struct gost28147_param *param)
{
- gost28147_set_param(&ctx->ctx, param);
- gost28147_set_key(&ctx->ctx, key);
- ctx->bytes = 0;
+ gost28147_set_param(&ctx->ctx, param);
+ gost28147_set_key(&ctx->ctx, key);
+ ctx->bytes = 0;
}
-void
-gost28147_cnt_set_iv(struct gost28147_cnt_ctx *ctx,
- const uint8_t *iv)
+void gost28147_cnt_set_iv(struct gost28147_cnt_ctx *ctx, const uint8_t * iv)
{
- uint32_t block[2];
+ uint32_t block[2];
- block[0] = LE_READ_UINT32(iv + 0);
- block[1] = LE_READ_UINT32(iv + 4);
+ block[0] = LE_READ_UINT32(iv + 0);
+ block[1] = LE_READ_UINT32(iv + 4);
- gost28147_encrypt_simple(ctx->ctx.key, ctx->ctx.sbox, block, ctx->iv);
+ gost28147_encrypt_simple(ctx->ctx.key, ctx->ctx.sbox, block, ctx->iv);
}
void
gost28147_cnt_crypt(struct gost28147_cnt_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- size_t block_size = GOST28147_BLOCK_SIZE;
-
- if (ctx->bytes)
- {
- size_t part = ctx->bytes < length ? ctx->bytes : length;
- memxor3(dst, src, ctx->buffer + block_size - ctx->bytes, part);
- dst += part;
- src += part;
- length -= part;
- ctx->bytes -= part;
- ctx->bytes %= block_size;
- }
- while (length >= block_size)
- {
- gost28147_cnt_next_iv(ctx, ctx->buffer);
- memxor3(dst, src, ctx->buffer, block_size);
- length -= block_size;
- src += block_size;
- dst += block_size;
- }
-
- if (length != 0)
- {
- gost28147_cnt_next_iv(ctx, ctx->buffer);
- memxor3(dst, src, ctx->buffer, length);
- ctx->bytes = block_size - length;
- }
+ size_t block_size = GOST28147_BLOCK_SIZE;
+
+ if (ctx->bytes) {
+ size_t part = ctx->bytes < length ? ctx->bytes : length;
+ memxor3(dst, src, ctx->buffer + block_size - ctx->bytes, part);
+ dst += part;
+ src += part;
+ length -= part;
+ ctx->bytes -= part;
+ ctx->bytes %= block_size;
+ }
+ while (length >= block_size) {
+ gost28147_cnt_next_iv(ctx, ctx->buffer);
+ memxor3(dst, src, ctx->buffer, block_size);
+ length -= block_size;
+ src += block_size;
+ dst += block_size;
+ }
+
+ if (length != 0) {
+ gost28147_cnt_next_iv(ctx, ctx->buffer);
+ memxor3(dst, src, ctx->buffer, length);
+ ctx->bytes = block_size - length;
+ }
}
-static void
-_gost28147_imit_reinit(struct gost28147_imit_ctx *ctx)
+static void _gost28147_imit_reinit(struct gost28147_imit_ctx *ctx)
{
- ctx->state[0] = 0;
- ctx->state[1] = 0;
- ctx->index = 0;
- ctx->count = 0;
+ ctx->state[0] = 0;
+ ctx->state[1] = 0;
+ ctx->index = 0;
+ ctx->count = 0;
}
void
gost28147_imit_set_key(struct gost28147_imit_ctx *ctx,
- size_t length,
- const uint8_t *key)
+ size_t length, const uint8_t * key)
{
- assert(length == GOST28147_IMIT_KEY_SIZE);
- assert(key);
+ assert(length == GOST28147_IMIT_KEY_SIZE);
+ assert(key);
- _gost28147_imit_reinit(ctx);
- gost28147_set_key(&ctx->cctx, key);
+ _gost28147_imit_reinit(ctx);
+ gost28147_set_key(&ctx->cctx, key);
}
void
-gost28147_imit_set_nonce(struct gost28147_imit_ctx *ctx, const uint8_t *nonce)
+gost28147_imit_set_nonce(struct gost28147_imit_ctx *ctx, const uint8_t * nonce)
{
ctx->state[0] = LE_READ_UINT32(nonce + 0);
ctx->state[1] = LE_READ_UINT32(nonce + 4);
@@ -2495,53 +2483,50 @@ void
gost28147_imit_set_param(struct gost28147_imit_ctx *ctx,
const struct gost28147_param *param)
{
- assert(param);
- gost28147_set_param(&ctx->cctx, param);
+ assert(param);
+ gost28147_set_param(&ctx->cctx, param);
}
static void
-gost28147_imit_compress(struct gost28147_imit_ctx *ctx,
- const uint8_t *data)
+gost28147_imit_compress(struct gost28147_imit_ctx *ctx, const uint8_t * data)
{
- uint32_t block[2];
+ uint32_t block[2];
- if (ctx->cctx.key_meshing && ctx->cctx.key_count == 1024)
- gost28147_key_mesh_cryptopro(&ctx->cctx);
+ if (ctx->cctx.key_meshing && ctx->cctx.key_count == 1024)
+ gost28147_key_mesh_cryptopro(&ctx->cctx);
- block[0] = LE_READ_UINT32(data + 0) ^ ctx->state[0];
- block[1] = LE_READ_UINT32(data + 4) ^ ctx->state[1];
- gost28147_imit_simple(ctx->cctx.key, ctx->cctx.sbox, block, ctx->state);
- ctx->cctx.key_count += 8;
+ block[0] = LE_READ_UINT32(data + 0) ^ ctx->state[0];
+ block[1] = LE_READ_UINT32(data + 4) ^ ctx->state[1];
+ gost28147_imit_simple(ctx->cctx.key, ctx->cctx.sbox, block, ctx->state);
+ ctx->cctx.key_count += 8;
}
void
gost28147_imit_update(struct gost28147_imit_ctx *ctx,
- size_t length,
- const uint8_t *data)
+ size_t length, const uint8_t * data)
{
- MD_UPDATE(ctx, length, data, gost28147_imit_compress, ctx->count++);
+ MD_UPDATE(ctx, length, data, gost28147_imit_compress, ctx->count++);
}
void
gost28147_imit_digest(struct gost28147_imit_ctx *ctx,
- size_t length,
- uint8_t *digest)
+ size_t length, uint8_t * digest)
{
- assert(length <= GOST28147_IMIT_DIGEST_SIZE);
- const uint8_t zero[GOST28147_IMIT_BLOCK_SIZE] = { 0 };
-
- if (ctx->index)
- {
- assert(ctx->index < GOST28147_IMIT_BLOCK_SIZE);
- gost28147_imit_update(ctx, GOST28147_IMIT_BLOCK_SIZE - ctx->index, zero);
- }
-
- if (ctx->count == 1)
- {
- gost28147_imit_update(ctx, GOST28147_IMIT_BLOCK_SIZE, zero);
- }
-
- _nettle_write_le32(length, digest, ctx->state);
- _gost28147_imit_reinit(ctx);
+ assert(length <= GOST28147_IMIT_DIGEST_SIZE);
+ const uint8_t zero[GOST28147_IMIT_BLOCK_SIZE] = { 0 };
+
+ if (ctx->index) {
+ assert(ctx->index < GOST28147_IMIT_BLOCK_SIZE);
+ gost28147_imit_update(ctx,
+ GOST28147_IMIT_BLOCK_SIZE - ctx->index,
+ zero);
+ }
+
+ if (ctx->count == 1) {
+ gost28147_imit_update(ctx, GOST28147_IMIT_BLOCK_SIZE, zero);
+ }
+
+ _nettle_write_le32(length, digest, ctx->state);
+ _gost28147_imit_reinit(ctx);
}
#endif
diff --git a/lib/nettle/gost/gost28147.h b/lib/nettle/gost/gost28147.h
index a514ff42dd..a9375cedb3 100644
--- a/lib/nettle/gost/gost28147.h
+++ b/lib/nettle/gost/gost28147.h
@@ -33,187 +33,175 @@
*/
#ifndef GNUTLS_LIB_NETTLE_GOST_GOST28147_H
-#define GNUTLS_LIB_NETTLE_GOST_GOST28147_H
+# define GNUTLS_LIB_NETTLE_GOST_GOST28147_H
-#include "config.h"
+# include "config.h"
-#ifndef HAVE_NETTLE_GOST28147_SET_KEY
+# ifndef HAVE_NETTLE_GOST28147_SET_KEY
-#include <nettle/nettle-types.h>
+# include <nettle/nettle-types.h>
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
/* S-Boxes & parameters */
-#define gost28147_param_test_3411 _gnutls_gost28147_param_test_3411
-#define gost28147_param_CryptoPro_3411 _gnutls_gost28147_param_CryptoPro_3411
-#define gost28147_param_Test_89 _gnutls_gost28147_param_Test_89
-#define gost28147_param_CryptoPro_A _gnutls_gost28147_param_CryptoPro_A
-#define gost28147_param_CryptoPro_B _gnutls_gost28147_param_CryptoPro_B
-#define gost28147_param_CryptoPro_C _gnutls_gost28147_param_CryptoPro_C
-#define gost28147_param_CryptoPro_D _gnutls_gost28147_param_CryptoPro_D
-#define gost28147_param_TC26_Z _gnutls_gost28147_param_TC26_Z
+# define gost28147_param_test_3411 _gnutls_gost28147_param_test_3411
+# define gost28147_param_CryptoPro_3411 _gnutls_gost28147_param_CryptoPro_3411
+# define gost28147_param_Test_89 _gnutls_gost28147_param_Test_89
+# define gost28147_param_CryptoPro_A _gnutls_gost28147_param_CryptoPro_A
+# define gost28147_param_CryptoPro_B _gnutls_gost28147_param_CryptoPro_B
+# define gost28147_param_CryptoPro_C _gnutls_gost28147_param_CryptoPro_C
+# define gost28147_param_CryptoPro_D _gnutls_gost28147_param_CryptoPro_D
+# define gost28147_param_TC26_Z _gnutls_gost28147_param_TC26_Z
/* Private */
-#define gost28147_encrypt_simple _gnutls_gost28147_encrypt_simple
-#define gost28147_decrypt_simple _gnutls_gost28147_decrypt_simple
+# define gost28147_encrypt_simple _gnutls_gost28147_encrypt_simple
+# define gost28147_decrypt_simple _gnutls_gost28147_decrypt_simple
/* Public functions */
-#define gost28147_set_key _gnutls_gost28147_set_key
-#define gost28147_set_param _gnutls_gost28147_set_param
-#define gost28147_encrypt _gnutls_gost28147_encrypt
-#define gost28147_encrypt_for_cfb _gnutls_gost28147_encrypt_for_cfb
-#define gost28147_decrypt _gnutls_gost28147_decrypt
-
-#define gost28147_cnt_init _gnutls_gost28147_cnt_init
-#define gost28147_cnt_set_iv _gnutls_gost28147_cnt_set_iv
-#define gost28147_cnt_crypt _gnutls_gost28147_cnt_crypt
-
-#define gost28147_kdf_cryptopro _gnutls_gost28147_kdf_cryptopro
-#define gost28147_key_wrap_cryptopro _gnutls_gost28147_key_wrap_cryptopro
-#define gost28147_key_unwrap_cryptopro _gnutls_gost28147_key_unwrap_cryptopro
-
-#define gost28147_imit_set_key _gnutls_gost28147_imit_set_key
-#define gost28147_imit_set_nonce _gnutls_gost28147_imit_set_nonce
-#define gost28147_imit_set_param _gnutls_gost28147_imit_set_param
-#define gost28147_imit_update _gnutls_gost28147_imit_update
-#define gost28147_imit_digest _gnutls_gost28147_imit_digest
-
-#define GOST28147_KEY_SIZE 32
-#define GOST28147_BLOCK_SIZE 8
-
-struct gost28147_ctx
-{
- uint32_t key[GOST28147_KEY_SIZE/4];
- const uint32_t *sbox;
- int key_meshing;
- int key_count; /* Used for key meshing */
-};
-
-struct gost28147_param
-{
- int key_meshing;
- uint32_t sbox[4*256];
-};
-
-extern const struct gost28147_param gost28147_param_test_3411;
-extern const struct gost28147_param gost28147_param_CryptoPro_3411;
-extern const struct gost28147_param gost28147_param_Test_89;
-extern const struct gost28147_param gost28147_param_CryptoPro_A;
-extern const struct gost28147_param gost28147_param_CryptoPro_B;
-extern const struct gost28147_param gost28147_param_CryptoPro_C;
-extern const struct gost28147_param gost28147_param_CryptoPro_D;
-extern const struct gost28147_param gost28147_param_TC26_Z;
+# define gost28147_set_key _gnutls_gost28147_set_key
+# define gost28147_set_param _gnutls_gost28147_set_param
+# define gost28147_encrypt _gnutls_gost28147_encrypt
+# define gost28147_encrypt_for_cfb _gnutls_gost28147_encrypt_for_cfb
+# define gost28147_decrypt _gnutls_gost28147_decrypt
+
+# define gost28147_cnt_init _gnutls_gost28147_cnt_init
+# define gost28147_cnt_set_iv _gnutls_gost28147_cnt_set_iv
+# define gost28147_cnt_crypt _gnutls_gost28147_cnt_crypt
+
+# define gost28147_kdf_cryptopro _gnutls_gost28147_kdf_cryptopro
+# define gost28147_key_wrap_cryptopro _gnutls_gost28147_key_wrap_cryptopro
+# define gost28147_key_unwrap_cryptopro _gnutls_gost28147_key_unwrap_cryptopro
+
+# define gost28147_imit_set_key _gnutls_gost28147_imit_set_key
+# define gost28147_imit_set_nonce _gnutls_gost28147_imit_set_nonce
+# define gost28147_imit_set_param _gnutls_gost28147_imit_set_param
+# define gost28147_imit_update _gnutls_gost28147_imit_update
+# define gost28147_imit_digest _gnutls_gost28147_imit_digest
+
+# define GOST28147_KEY_SIZE 32
+# define GOST28147_BLOCK_SIZE 8
+
+ struct gost28147_ctx {
+ uint32_t key[GOST28147_KEY_SIZE / 4];
+ const uint32_t *sbox;
+ int key_meshing;
+ int key_count; /* Used for key meshing */
+ };
+
+ struct gost28147_param {
+ int key_meshing;
+ uint32_t sbox[4 * 256];
+ };
+
+ extern const struct gost28147_param gost28147_param_test_3411;
+ extern const struct gost28147_param gost28147_param_CryptoPro_3411;
+ extern const struct gost28147_param gost28147_param_Test_89;
+ extern const struct gost28147_param gost28147_param_CryptoPro_A;
+ extern const struct gost28147_param gost28147_param_CryptoPro_B;
+ extern const struct gost28147_param gost28147_param_CryptoPro_C;
+ extern const struct gost28147_param gost28147_param_CryptoPro_D;
+ extern const struct gost28147_param gost28147_param_TC26_Z;
/* Internal interface for use by GOST R 34.11-94 */
-void gost28147_encrypt_simple (const uint32_t *key, const uint32_t *sbox,
- const uint32_t *in, uint32_t *out);
-void gost28147_decrypt_simple (const uint32_t *key, const uint32_t *sbox,
- const uint32_t *in, uint32_t *out);
-
-void
-gost28147_set_key(struct gost28147_ctx *ctx, const uint8_t *key);
-
-void
-gost28147_set_param(struct gost28147_ctx *ctx,
- const struct gost28147_param *param);
-
-void
-gost28147_encrypt(const struct gost28147_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-void
-gost28147_decrypt(const struct gost28147_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-void
-gost28147_encrypt_for_cfb(struct gost28147_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-
-struct gost28147_cnt_ctx {
- struct gost28147_ctx ctx;
- size_t bytes;
- uint32_t iv[2];
- uint8_t buffer[GOST28147_BLOCK_SIZE];
-};
-
-void
-gost28147_cnt_init(struct gost28147_cnt_ctx *ctx,
- const uint8_t *key,
- const struct gost28147_param *param);
-
-void
-gost28147_cnt_set_iv(struct gost28147_cnt_ctx *ctx,
- const uint8_t *iv);
-
-void
-gost28147_cnt_crypt(struct gost28147_cnt_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-
-void
-gost28147_kdf_cryptopro(const struct gost28147_param *param,
- const uint8_t *in,
- const uint8_t *ukm,
- uint8_t *out);
-void
-gost28147_key_wrap_cryptopro(const struct gost28147_param *param,
- const uint8_t *kek,
- const uint8_t *ukm, size_t ukm_size,
- const uint8_t *cek,
- uint8_t *enc,
- uint8_t *imit);
-
-int
-gost28147_key_unwrap_cryptopro(const struct gost28147_param *param,
- const uint8_t *kek,
- const uint8_t *ukm, size_t ukm_size,
- const uint8_t *enc,
- const uint8_t *imit,
- uint8_t *cek);
-
-#define GOST28147_IMIT_DIGEST_SIZE 4
-#define GOST28147_IMIT_BLOCK_SIZE GOST28147_BLOCK_SIZE
-#define GOST28147_IMIT_KEY_SIZE GOST28147_KEY_SIZE
-
-struct gost28147_imit_ctx
-{
- struct gost28147_ctx cctx;
- uint64_t count; /* Block count */
- uint8_t block[GOST28147_IMIT_BLOCK_SIZE]; /* Block buffer */
- unsigned index; /* Into buffer */
- uint32_t state[GOST28147_IMIT_BLOCK_SIZE/4];
-};
-
-void
-gost28147_imit_set_key(struct gost28147_imit_ctx *ctx,
- size_t length,
- const uint8_t *key);
-
-void
-gost28147_imit_set_nonce(struct gost28147_imit_ctx *ctx,
- const uint8_t *nonce);
-
-void
-gost28147_imit_set_param(struct gost28147_imit_ctx *ctx,
- const struct gost28147_param *param);
-
-void
-gost28147_imit_update(struct gost28147_imit_ctx *ctx,
- size_t length,
- const uint8_t *data);
-
-void
-gost28147_imit_digest(struct gost28147_imit_ctx *ctx,
- size_t length,
- uint8_t *digest);
-
-#ifdef __cplusplus
+ void gost28147_encrypt_simple(const uint32_t * key,
+ const uint32_t * sbox,
+ const uint32_t * in, uint32_t * out);
+ void gost28147_decrypt_simple(const uint32_t * key,
+ const uint32_t * sbox,
+ const uint32_t * in, uint32_t * out);
+
+ void
+ gost28147_set_key(struct gost28147_ctx *ctx, const uint8_t * key);
+
+ void
+ gost28147_set_param(struct gost28147_ctx *ctx,
+ const struct gost28147_param *param);
+
+ void
+ gost28147_encrypt(const struct gost28147_ctx *ctx,
+ size_t length, uint8_t * dst, const uint8_t * src);
+ void
+ gost28147_decrypt(const struct gost28147_ctx *ctx,
+ size_t length, uint8_t * dst, const uint8_t * src);
+ void
+ gost28147_encrypt_for_cfb(struct gost28147_ctx *ctx,
+ size_t length, uint8_t * dst,
+ const uint8_t * src);
+
+ struct gost28147_cnt_ctx {
+ struct gost28147_ctx ctx;
+ size_t bytes;
+ uint32_t iv[2];
+ uint8_t buffer[GOST28147_BLOCK_SIZE];
+ };
+
+ void
+ gost28147_cnt_init(struct gost28147_cnt_ctx *ctx,
+ const uint8_t * key,
+ const struct gost28147_param *param);
+
+ void
+ gost28147_cnt_set_iv(struct gost28147_cnt_ctx *ctx,
+ const uint8_t * iv);
+
+ void
+ gost28147_cnt_crypt(struct gost28147_cnt_ctx *ctx,
+ size_t length, uint8_t * dst, const uint8_t * src);
+
+ void
+ gost28147_kdf_cryptopro(const struct gost28147_param *param,
+ const uint8_t * in,
+ const uint8_t * ukm, uint8_t * out);
+ void
+ gost28147_key_wrap_cryptopro(const struct gost28147_param *param,
+ const uint8_t * kek,
+ const uint8_t * ukm, size_t ukm_size,
+ const uint8_t * cek,
+ uint8_t * enc, uint8_t * imit);
+
+ int
+ gost28147_key_unwrap_cryptopro(const struct gost28147_param *param,
+ const uint8_t * kek,
+ const uint8_t * ukm, size_t ukm_size,
+ const uint8_t * enc,
+ const uint8_t * imit, uint8_t * cek);
+
+# define GOST28147_IMIT_DIGEST_SIZE 4
+# define GOST28147_IMIT_BLOCK_SIZE GOST28147_BLOCK_SIZE
+# define GOST28147_IMIT_KEY_SIZE GOST28147_KEY_SIZE
+
+ struct gost28147_imit_ctx {
+ struct gost28147_ctx cctx;
+ uint64_t count; /* Block count */
+ uint8_t block[GOST28147_IMIT_BLOCK_SIZE]; /* Block buffer */
+ unsigned index; /* Into buffer */
+ uint32_t state[GOST28147_IMIT_BLOCK_SIZE / 4];
+ };
+
+ void
+ gost28147_imit_set_key(struct gost28147_imit_ctx *ctx,
+ size_t length, const uint8_t * key);
+
+ void
+ gost28147_imit_set_nonce(struct gost28147_imit_ctx *ctx,
+ const uint8_t * nonce);
+
+ void
+ gost28147_imit_set_param(struct gost28147_imit_ctx *ctx,
+ const struct gost28147_param *param);
+
+ void
+ gost28147_imit_update(struct gost28147_imit_ctx *ctx,
+ size_t length, const uint8_t * data);
+
+ void
+ gost28147_imit_digest(struct gost28147_imit_ctx *ctx,
+ size_t length, uint8_t * digest);
+
+# ifdef __cplusplus
}
-#endif
-
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_GOST28147_H */
+# endif
+# endif
+#endif /* GNUTLS_LIB_NETTLE_GOST_GOST28147_H */
diff --git a/lib/nettle/gost/gostdsa-keygen.c b/lib/nettle/gost/gostdsa-keygen.c
index 619acb1e04..823908b98e 100644
--- a/lib/nettle/gost/gostdsa-keygen.c
+++ b/lib/nettle/gost/gostdsa-keygen.c
@@ -44,20 +44,20 @@
#include "nettle-alloca.h"
void
-gostdsa_generate_keypair (struct ecc_point *pub,
- struct ecc_scalar *key,
- void *random_ctx, nettle_random_func *random)
+gostdsa_generate_keypair(struct ecc_point *pub,
+ struct ecc_scalar *key,
+ void *random_ctx, nettle_random_func * random)
{
- TMP_DECL(p, mp_limb_t, 3*ECC_MAX_SIZE + ECC_MUL_G_ITCH (ECC_MAX_SIZE));
- const struct ecc_curve *ecc = pub->ecc;
- mp_size_t itch = 3*ecc->p.size + ecc->mul_g_itch;
+ TMP_DECL(p, mp_limb_t, 3 * ECC_MAX_SIZE + ECC_MUL_G_ITCH(ECC_MAX_SIZE));
+ const struct ecc_curve *ecc = pub->ecc;
+ mp_size_t itch = 3 * ecc->p.size + ecc->mul_g_itch;
- assert (key->ecc == ecc);
- assert (ecc->h_to_a_itch <= ecc->mul_g_itch);
+ assert(key->ecc == ecc);
+ assert(ecc->h_to_a_itch <= ecc->mul_g_itch);
- TMP_ALLOC (p, itch);
+ TMP_ALLOC(p, itch);
- ecc_mod_random (&ecc->q, key->p, random_ctx, random, p);
- ecc->mul_g (ecc, p, key->p, p + 3*ecc->p.size);
- ecc->h_to_a (ecc, 0, pub->p, p, p + 3*ecc->p.size);
+ ecc_mod_random(&ecc->q, key->p, random_ctx, random, p);
+ ecc->mul_g(ecc, p, key->p, p + 3 * ecc->p.size);
+ ecc->h_to_a(ecc, 0, pub->p, p, p + 3 * ecc->p.size);
}
diff --git a/lib/nettle/gost/gostdsa-mask.c b/lib/nettle/gost/gostdsa-mask.c
index 7fb20862e8..018ca446ec 100644
--- a/lib/nettle/gost/gostdsa-mask.c
+++ b/lib/nettle/gost/gostdsa-mask.c
@@ -49,46 +49,43 @@
/* Key comes in form .... M_2 M_1 K_0,
unmask is K_i = K_i-1 * M_i mod Q */
-int
-gostdsa_unmask_key (const struct ecc_curve *ecc,
- mpz_t key)
+int gostdsa_unmask_key(const struct ecc_curve *ecc, mpz_t key)
{
- unsigned bits = ecc_bit_size (ecc);
- unsigned keybits = mpz_sizeinbase (key, 2);
- mpz_t unmasked, temp, temp2, q;
-
- if (keybits <= bits)
- return 0;
-
- mpz_init (unmasked);
- mpz_init (temp);
- mpz_init (temp2);
-
- if (ecc == nettle_get_gost_gc256b ())
- mpz_init_set_str (q, GOST_GC256B_Q, 16);
- else if (ecc == nettle_get_gost_gc512a ())
- mpz_init_set_str (q, GOST_GC512A_Q, 16);
- else
- abort ();
-
- mpz_tdiv_r_2exp (unmasked, key, bits);
- mpz_tdiv_q_2exp (key, key, bits);
- keybits -= bits;
- while (keybits > bits)
- {
- mpz_tdiv_r_2exp (temp2, key, bits);
- mpz_tdiv_q_2exp (key, key, bits);
- keybits -= bits;
- mpz_mul (temp, unmasked, temp2);
- mpz_mod (unmasked, temp, q);
- }
- mpz_mul (temp, unmasked, key);
- mpz_mod (key, temp, q);
-
- mpz_clear (q);
- mpz_clear (temp2);
- mpz_clear (temp);
- mpz_clear (unmasked);
-
- return 0;
+ unsigned bits = ecc_bit_size(ecc);
+ unsigned keybits = mpz_sizeinbase(key, 2);
+ mpz_t unmasked, temp, temp2, q;
+
+ if (keybits <= bits)
+ return 0;
+
+ mpz_init(unmasked);
+ mpz_init(temp);
+ mpz_init(temp2);
+
+ if (ecc == nettle_get_gost_gc256b())
+ mpz_init_set_str(q, GOST_GC256B_Q, 16);
+ else if (ecc == nettle_get_gost_gc512a())
+ mpz_init_set_str(q, GOST_GC512A_Q, 16);
+ else
+ abort();
+
+ mpz_tdiv_r_2exp(unmasked, key, bits);
+ mpz_tdiv_q_2exp(key, key, bits);
+ keybits -= bits;
+ while (keybits > bits) {
+ mpz_tdiv_r_2exp(temp2, key, bits);
+ mpz_tdiv_q_2exp(key, key, bits);
+ keybits -= bits;
+ mpz_mul(temp, unmasked, temp2);
+ mpz_mod(unmasked, temp, q);
+ }
+ mpz_mul(temp, unmasked, key);
+ mpz_mod(key, temp, q);
+
+ mpz_clear(q);
+ mpz_clear(temp2);
+ mpz_clear(temp);
+ mpz_clear(unmasked);
+
+ return 0;
}
diff --git a/lib/nettle/gost/gostdsa2.h b/lib/nettle/gost/gostdsa2.h
index 9328a8af73..7e8c50eeaa 100644
--- a/lib/nettle/gost/gostdsa2.h
+++ b/lib/nettle/gost/gostdsa2.h
@@ -33,27 +33,25 @@
/* Development of Nettle's ECC support was funded by the .SE Internet Fund. */
#ifndef GNUTLS_LIB_NETTLE_GOST_GOSTDSA2_H
-#define GNUTLS_LIB_NETTLE_GOST_GOSTDSA2_H
+# define GNUTLS_LIB_NETTLE_GOST_GOSTDSA2_H
-#include <nettle/ecc.h>
+# include <nettle/ecc.h>
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
+# if HAVE_CONFIG_H
+# include "config.h"
+# endif
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
/* Name mangling */
-#define gostdsa_unmask_key _gnutls_gostdsa_unmask_key
+# define gostdsa_unmask_key _gnutls_gostdsa_unmask_key
-int
-gostdsa_unmask_key (const struct ecc_curve *ecc,
- mpz_t key);
+ int
+ gostdsa_unmask_key(const struct ecc_curve *ecc, mpz_t key);
-#ifdef __cplusplus
+# ifdef __cplusplus
}
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_GOSTDSA2_H */
+# endif
+#endif /* GNUTLS_LIB_NETTLE_GOST_GOSTDSA2_H */
diff --git a/lib/nettle/gost/hmac-gost.h b/lib/nettle/gost/hmac-gost.h
index c8212ab54e..64facd5d61 100644
--- a/lib/nettle/gost/hmac-gost.h
+++ b/lib/nettle/gost/hmac-gost.h
@@ -32,60 +32,59 @@
*/
#ifndef GNUTLS_LIB_NETTLE_GOST_HMAC_GOST_H
-#define GNUTLS_LIB_NETTLE_GOST_HMAC_GOST_H
+# define GNUTLS_LIB_NETTLE_GOST_HMAC_GOST_H
-#include "config.h"
+# include "config.h"
-#include <nettle/hmac.h>
+# include <nettle/hmac.h>
-#ifndef HAVE_NETTLE_STREEBOG512_UPDATE
-#include "streebog.h"
-#endif
+# ifndef HAVE_NETTLE_STREEBOG512_UPDATE
+# include "streebog.h"
+# endif
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
/* Namespace mangling */
-#ifndef HAVE_NETTLE_STREEBOG512_UPDATE
-#define hmac_streebog256_set_key _gnutls_hmac_streebog256_set_key
-#define hmac_streebog256_digest _gnutls_hmac_streebog256_digest
-#define hmac_streebog512_set_key _gnutls_hmac_streebog512_set_key
-#define hmac_streebog512_update _gnutls_hmac_streebog512_update
-#define hmac_streebog512_digest _gnutls_hmac_streebog512_digest
-#endif
+# ifndef HAVE_NETTLE_STREEBOG512_UPDATE
+# define hmac_streebog256_set_key _gnutls_hmac_streebog256_set_key
+# define hmac_streebog256_digest _gnutls_hmac_streebog256_digest
+# define hmac_streebog512_set_key _gnutls_hmac_streebog512_set_key
+# define hmac_streebog512_update _gnutls_hmac_streebog512_update
+# define hmac_streebog512_digest _gnutls_hmac_streebog512_digest
+# endif
/* hmac-streebog */
-#ifndef HAVE_NETTLE_STREEBOG512_UPDATE
-struct hmac_streebog512_ctx HMAC_CTX(struct streebog512_ctx);
+# ifndef HAVE_NETTLE_STREEBOG512_UPDATE
+ struct hmac_streebog512_ctx HMAC_CTX(struct streebog512_ctx);
-void
-hmac_streebog512_set_key(struct hmac_streebog512_ctx *ctx,
- size_t key_length, const uint8_t *key);
+ void
+ hmac_streebog512_set_key(struct hmac_streebog512_ctx *ctx,
+ size_t key_length, const uint8_t * key);
-void
-hmac_streebog512_update(struct hmac_streebog512_ctx *ctx,
- size_t length, const uint8_t *data);
+ void
+ hmac_streebog512_update(struct hmac_streebog512_ctx *ctx,
+ size_t length, const uint8_t * data);
-void
-hmac_streebog512_digest(struct hmac_streebog512_ctx *ctx,
- size_t length, uint8_t *digest);
+ void
+ hmac_streebog512_digest(struct hmac_streebog512_ctx *ctx,
+ size_t length, uint8_t * digest);
-#define hmac_streebog256_ctx hmac_streebog512_ctx
+# define hmac_streebog256_ctx hmac_streebog512_ctx
-void
-hmac_streebog256_set_key(struct hmac_streebog256_ctx *ctx,
- size_t key_length, const uint8_t *key);
+ void
+ hmac_streebog256_set_key(struct hmac_streebog256_ctx *ctx,
+ size_t key_length, const uint8_t * key);
-#define hmac_streebog256_update hmac_streebog512_update
+# define hmac_streebog256_update hmac_streebog512_update
-void
-hmac_streebog256_digest(struct hmac_streebog256_ctx *ctx,
- size_t length, uint8_t *digest);
-#endif
+ void
+ hmac_streebog256_digest(struct hmac_streebog256_ctx *ctx,
+ size_t length, uint8_t * digest);
+# endif
-#ifdef __cplusplus
+# ifdef __cplusplus
}
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_HMAC_GOST_H */
+# endif
+#endif /* GNUTLS_LIB_NETTLE_GOST_HMAC_GOST_H */
diff --git a/lib/nettle/gost/hmac-streebog.c b/lib/nettle/gost/hmac-streebog.c
index 00fcdb9132..c14fda20d5 100644
--- a/lib/nettle/gost/hmac-streebog.c
+++ b/lib/nettle/gost/hmac-streebog.c
@@ -36,43 +36,43 @@
#endif
#ifndef HAVE_NETTLE_STREEBOG512_UPDATE
-#include <gnutls_int.h>
+# include <gnutls_int.h>
-#include <nettle/hmac.h>
-#include "hmac-gost.h"
+# include <nettle/hmac.h>
+# include "hmac-gost.h"
void
hmac_streebog512_set_key(struct hmac_streebog512_ctx *ctx,
- size_t key_length, const uint8_t *key)
+ size_t key_length, const uint8_t * key)
{
- HMAC_SET_KEY(ctx, &nettle_streebog512, key_length, key);
+ HMAC_SET_KEY(ctx, &nettle_streebog512, key_length, key);
}
void
hmac_streebog512_update(struct hmac_streebog512_ctx *ctx,
- size_t length, const uint8_t *data)
+ size_t length, const uint8_t * data)
{
- streebog512_update(&ctx->state, length, data);
+ streebog512_update(&ctx->state, length, data);
}
void
hmac_streebog512_digest(struct hmac_streebog512_ctx *ctx,
- size_t length, uint8_t *digest)
+ size_t length, uint8_t * digest)
{
- HMAC_DIGEST(ctx, &nettle_streebog512, length, digest);
+ HMAC_DIGEST(ctx, &nettle_streebog512, length, digest);
}
void
hmac_streebog256_set_key(struct hmac_streebog256_ctx *ctx,
- size_t key_length, const uint8_t *key)
+ size_t key_length, const uint8_t * key)
{
- HMAC_SET_KEY(ctx, &nettle_streebog256, key_length, key);
+ HMAC_SET_KEY(ctx, &nettle_streebog256, key_length, key);
}
void
hmac_streebog256_digest(struct hmac_streebog256_ctx *ctx,
- size_t length, uint8_t *digest)
+ size_t length, uint8_t * digest)
{
- HMAC_DIGEST(ctx, &nettle_streebog256, length, digest);
+ HMAC_DIGEST(ctx, &nettle_streebog256, length, digest);
}
#endif
diff --git a/lib/nettle/gost/kuznyechik.c b/lib/nettle/gost/kuznyechik.c
index 9e09914e72..ef2fcfc59a 100644
--- a/lib/nettle/gost/kuznyechik.c
+++ b/lib/nettle/gost/kuznyechik.c
@@ -30,221 +30,217 @@
*/
#if HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#ifndef HAVE_NETTLE_KUZNYECHIK_SET_KEY
-#include <assert.h>
-#include <string.h>
+# include <assert.h>
+# include <string.h>
-#include <nettle/macros.h>
-#include <nettle/memxor.h>
-#include "nettle-write.h"
-#include "kuznyechik.h"
+# include <nettle/macros.h>
+# include <nettle/memxor.h>
+# include "nettle-write.h"
+# include "kuznyechik.h"
-#include "kuztable.h"
+# include "kuztable.h"
-static void S(uint8_t *a, const uint8_t *b)
+static void S(uint8_t * a, const uint8_t * b)
{
- a[0] = pi[b[0]];
- a[1] = pi[b[1]];
- a[2] = pi[b[2]];
- a[3] = pi[b[3]];
- a[4] = pi[b[4]];
- a[5] = pi[b[5]];
- a[6] = pi[b[6]];
- a[7] = pi[b[7]];
- a[8] = pi[b[8]];
- a[9] = pi[b[9]];
- a[10] = pi[b[10]];
- a[11] = pi[b[11]];
- a[12] = pi[b[12]];
- a[13] = pi[b[13]];
- a[14] = pi[b[14]];
- a[15] = pi[b[15]];
+ a[0] = pi[b[0]];
+ a[1] = pi[b[1]];
+ a[2] = pi[b[2]];
+ a[3] = pi[b[3]];
+ a[4] = pi[b[4]];
+ a[5] = pi[b[5]];
+ a[6] = pi[b[6]];
+ a[7] = pi[b[7]];
+ a[8] = pi[b[8]];
+ a[9] = pi[b[9]];
+ a[10] = pi[b[10]];
+ a[11] = pi[b[11]];
+ a[12] = pi[b[12]];
+ a[13] = pi[b[13]];
+ a[14] = pi[b[14]];
+ a[15] = pi[b[15]];
}
-static void Sinv(uint8_t *a, const uint8_t *b)
+static void Sinv(uint8_t * a, const uint8_t * b)
{
- a[0] = pi_inv[b[0]];
- a[1] = pi_inv[b[1]];
- a[2] = pi_inv[b[2]];
- a[3] = pi_inv[b[3]];
- a[4] = pi_inv[b[4]];
- a[5] = pi_inv[b[5]];
- a[6] = pi_inv[b[6]];
- a[7] = pi_inv[b[7]];
- a[8] = pi_inv[b[8]];
- a[9] = pi_inv[b[9]];
- a[10] = pi_inv[b[10]];
- a[11] = pi_inv[b[11]];
- a[12] = pi_inv[b[12]];
- a[13] = pi_inv[b[13]];
- a[14] = pi_inv[b[14]];
- a[15] = pi_inv[b[15]];
+ a[0] = pi_inv[b[0]];
+ a[1] = pi_inv[b[1]];
+ a[2] = pi_inv[b[2]];
+ a[3] = pi_inv[b[3]];
+ a[4] = pi_inv[b[4]];
+ a[5] = pi_inv[b[5]];
+ a[6] = pi_inv[b[6]];
+ a[7] = pi_inv[b[7]];
+ a[8] = pi_inv[b[8]];
+ a[9] = pi_inv[b[9]];
+ a[10] = pi_inv[b[10]];
+ a[11] = pi_inv[b[11]];
+ a[12] = pi_inv[b[12]];
+ a[13] = pi_inv[b[13]];
+ a[14] = pi_inv[b[14]];
+ a[15] = pi_inv[b[15]];
}
-static void Linv(uint8_t *a, const uint8_t *b)
+static void Linv(uint8_t * a, const uint8_t * b)
{
- memcpy(a, &kuz_table_inv[0][b[0] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[1][b[1] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[2][b[2] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[3][b[3] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[4][b[4] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[5][b[5] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[6][b[6] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[7][b[7] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[8][b[8] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[9][b[9] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[10][b[10] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[11][b[11] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[12][b[12] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[13][b[13] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[14][b[14] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(a, &kuz_table_inv[15][b[15] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memcpy(a, &kuz_table_inv[0][b[0] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[1][b[1] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[2][b[2] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[3][b[3] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[4][b[4] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[5][b[5] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[6][b[6] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[7][b[7] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[8][b[8] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[9][b[9] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[10][b[10] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[11][b[11] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[12][b[12] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[13][b[13] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[14][b[14] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(a, &kuz_table_inv[15][b[15] * 16], KUZNYECHIK_BLOCK_SIZE);
}
-static void LSX(uint8_t *a, const uint8_t *b, const uint8_t *c)
+static void LSX(uint8_t * a, const uint8_t * b, const uint8_t * c)
{
- uint8_t t[16];
+ uint8_t t[16];
- /* https://github.com/llvm/llvm-project/issues/53518 */
-#if defined(__clang_analyzer__) && \
+ /* https://github.com/llvm/llvm-project/issues/53518 */
+# if defined(__clang_analyzer__) && \
(defined(__clang_major__) && __clang_major__ == 13)
- assert(0);
-#else
- memcpy(t, &kuz_table[0][(b[0] ^ c[0]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[1][(b[1] ^ c[1]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[2][(b[2] ^ c[2]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[3][(b[3] ^ c[3]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[4][(b[4] ^ c[4]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[5][(b[5] ^ c[5]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[6][(b[6] ^ c[6]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[7][(b[7] ^ c[7]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[8][(b[8] ^ c[8]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[9][(b[9] ^ c[9]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[10][(b[10] ^ c[10]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[11][(b[11] ^ c[11]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[12][(b[12] ^ c[12]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[13][(b[13] ^ c[13]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table[14][(b[14] ^ c[14]) * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor3(a, t, &kuz_table[15][(b[15] ^ c[15]) * 16], KUZNYECHIK_BLOCK_SIZE);
-#endif
+ assert(0);
+# else
+ memcpy(t, &kuz_table[0][(b[0] ^ c[0]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[1][(b[1] ^ c[1]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[2][(b[2] ^ c[2]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[3][(b[3] ^ c[3]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[4][(b[4] ^ c[4]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[5][(b[5] ^ c[5]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[6][(b[6] ^ c[6]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[7][(b[7] ^ c[7]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[8][(b[8] ^ c[8]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[9][(b[9] ^ c[9]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[10][(b[10] ^ c[10]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[11][(b[11] ^ c[11]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[12][(b[12] ^ c[12]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[13][(b[13] ^ c[13]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table[14][(b[14] ^ c[14]) * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor3(a, t, &kuz_table[15][(b[15] ^ c[15]) * 16],
+ KUZNYECHIK_BLOCK_SIZE);
+# endif
}
-static void XLiSi(uint8_t *a, const uint8_t *b, const uint8_t *c)
+static void XLiSi(uint8_t * a, const uint8_t * b, const uint8_t * c)
{
- uint8_t t[16];
-
- memcpy(t, &kuz_table_inv_LS[0][b[0] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[1][b[1] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[2][b[2] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[3][b[3] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[4][b[4] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[5][b[5] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[6][b[6] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[7][b[7] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[8][b[8] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[9][b[9] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[10][b[10] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[11][b[11] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[12][b[12] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[13][b[13] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[14][b[14] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor(t, &kuz_table_inv_LS[15][b[15] * 16], KUZNYECHIK_BLOCK_SIZE);
- memxor3(a, t, c, 16);
+ uint8_t t[16];
+
+ memcpy(t, &kuz_table_inv_LS[0][b[0] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[1][b[1] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[2][b[2] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[3][b[3] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[4][b[4] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[5][b[5] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[6][b[6] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[7][b[7] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[8][b[8] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[9][b[9] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[10][b[10] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[11][b[11] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[12][b[12] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[13][b[13] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[14][b[14] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor(t, &kuz_table_inv_LS[15][b[15] * 16], KUZNYECHIK_BLOCK_SIZE);
+ memxor3(a, t, c, 16);
}
-static void subkey(uint8_t *out, const uint8_t *key, unsigned i)
+static void subkey(uint8_t * out, const uint8_t * key, unsigned i)
{
- uint8_t test[16];
-
- LSX(test, key+0, kuz_key_table[i + 0]);
- memxor3(out+16, test, key + 16, 16);
- LSX(test, out+16, kuz_key_table[i + 1]);
- memxor3(out+0, test, key + 0, 16);
- LSX(test, out+0, kuz_key_table[i + 2]);
- memxor(out+16, test, 16);
- LSX(test, out+16, kuz_key_table[i + 3]);
- memxor(out+0, test, 16);
- LSX(test, out+0, kuz_key_table[i + 4]);
- memxor(out+16, test, 16);
- LSX(test, out+16, kuz_key_table[i + 5]);
- memxor(out+0, test, 16);
- LSX(test, out+0, kuz_key_table[i + 6]);
- memxor(out+16, test, 16);
- LSX(test, out+16, kuz_key_table[i + 7]);
- memxor(out+0, test, 16);
+ uint8_t test[16];
+
+ LSX(test, key + 0, kuz_key_table[i + 0]);
+ memxor3(out + 16, test, key + 16, 16);
+ LSX(test, out + 16, kuz_key_table[i + 1]);
+ memxor3(out + 0, test, key + 0, 16);
+ LSX(test, out + 0, kuz_key_table[i + 2]);
+ memxor(out + 16, test, 16);
+ LSX(test, out + 16, kuz_key_table[i + 3]);
+ memxor(out + 0, test, 16);
+ LSX(test, out + 0, kuz_key_table[i + 4]);
+ memxor(out + 16, test, 16);
+ LSX(test, out + 16, kuz_key_table[i + 5]);
+ memxor(out + 0, test, 16);
+ LSX(test, out + 0, kuz_key_table[i + 6]);
+ memxor(out + 16, test, 16);
+ LSX(test, out + 16, kuz_key_table[i + 7]);
+ memxor(out + 0, test, 16);
}
-void
-kuznyechik_set_key(struct kuznyechik_ctx *ctx, const uint8_t *key)
+void kuznyechik_set_key(struct kuznyechik_ctx *ctx, const uint8_t * key)
{
- unsigned i;
-
- memcpy(ctx->key, key, 32);
- subkey(ctx->key + 32, ctx->key, 0);
- subkey(ctx->key + 64, ctx->key + 32, 8);
- subkey(ctx->key + 96, ctx->key + 64, 16);
- subkey(ctx->key + 128, ctx->key + 96, 24);
- for (i = 0; i < 10; i++)
- Linv(ctx->dekey + 16 * i, ctx->key + 16 * i);
+ unsigned i;
+
+ memcpy(ctx->key, key, 32);
+ subkey(ctx->key + 32, ctx->key, 0);
+ subkey(ctx->key + 64, ctx->key + 32, 8);
+ subkey(ctx->key + 96, ctx->key + 64, 16);
+ subkey(ctx->key + 128, ctx->key + 96, 24);
+ for (i = 0; i < 10; i++)
+ Linv(ctx->dekey + 16 * i, ctx->key + 16 * i);
}
void
kuznyechik_encrypt(const struct kuznyechik_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- uint8_t temp[KUZNYECHIK_BLOCK_SIZE];
-
- assert(!(length % KUZNYECHIK_BLOCK_SIZE));
-
- while (length)
- {
- LSX(temp, ctx->key + 16 * 0, src);
- LSX(temp, ctx->key + 16 * 1, temp);
- LSX(temp, ctx->key + 16 * 2, temp);
- LSX(temp, ctx->key + 16 * 3, temp);
- LSX(temp, ctx->key + 16 * 4, temp);
- LSX(temp, ctx->key + 16 * 5, temp);
- LSX(temp, ctx->key + 16 * 6, temp);
- LSX(temp, ctx->key + 16 * 7, temp);
- LSX(temp, ctx->key + 16 * 8, temp);
- memxor3(dst, ctx->key + 16 * 9, temp, 16);
- src += KUZNYECHIK_BLOCK_SIZE;
- dst+= KUZNYECHIK_BLOCK_SIZE;
- length -= KUZNYECHIK_BLOCK_SIZE;
- }
+ uint8_t temp[KUZNYECHIK_BLOCK_SIZE];
+
+ assert(!(length % KUZNYECHIK_BLOCK_SIZE));
+
+ while (length) {
+ LSX(temp, ctx->key + 16 * 0, src);
+ LSX(temp, ctx->key + 16 * 1, temp);
+ LSX(temp, ctx->key + 16 * 2, temp);
+ LSX(temp, ctx->key + 16 * 3, temp);
+ LSX(temp, ctx->key + 16 * 4, temp);
+ LSX(temp, ctx->key + 16 * 5, temp);
+ LSX(temp, ctx->key + 16 * 6, temp);
+ LSX(temp, ctx->key + 16 * 7, temp);
+ LSX(temp, ctx->key + 16 * 8, temp);
+ memxor3(dst, ctx->key + 16 * 9, temp, 16);
+ src += KUZNYECHIK_BLOCK_SIZE;
+ dst += KUZNYECHIK_BLOCK_SIZE;
+ length -= KUZNYECHIK_BLOCK_SIZE;
+ }
}
void
kuznyechik_decrypt(const struct kuznyechik_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- uint8_t temp[KUZNYECHIK_BLOCK_SIZE];
-
- assert(!(length % KUZNYECHIK_BLOCK_SIZE));
-
- while (length)
- {
- S(temp, src);
- XLiSi(temp, temp, ctx->dekey + 16 * 9);
- XLiSi(temp, temp, ctx->dekey + 16 * 8);
- XLiSi(temp, temp, ctx->dekey + 16 * 7);
- XLiSi(temp, temp, ctx->dekey + 16 * 6);
- XLiSi(temp, temp, ctx->dekey + 16 * 5);
- XLiSi(temp, temp, ctx->dekey + 16 * 4);
- XLiSi(temp, temp, ctx->dekey + 16 * 3);
- XLiSi(temp, temp, ctx->dekey + 16 * 2);
- XLiSi(temp, temp, ctx->dekey + 16 * 1);
- Sinv(dst, temp);
- memxor(dst, ctx->key + 16 * 0, 16);
- src += KUZNYECHIK_BLOCK_SIZE;
- dst+= KUZNYECHIK_BLOCK_SIZE;
- length -= KUZNYECHIK_BLOCK_SIZE;
- }
+ uint8_t temp[KUZNYECHIK_BLOCK_SIZE];
+
+ assert(!(length % KUZNYECHIK_BLOCK_SIZE));
+
+ while (length) {
+ S(temp, src);
+ XLiSi(temp, temp, ctx->dekey + 16 * 9);
+ XLiSi(temp, temp, ctx->dekey + 16 * 8);
+ XLiSi(temp, temp, ctx->dekey + 16 * 7);
+ XLiSi(temp, temp, ctx->dekey + 16 * 6);
+ XLiSi(temp, temp, ctx->dekey + 16 * 5);
+ XLiSi(temp, temp, ctx->dekey + 16 * 4);
+ XLiSi(temp, temp, ctx->dekey + 16 * 3);
+ XLiSi(temp, temp, ctx->dekey + 16 * 2);
+ XLiSi(temp, temp, ctx->dekey + 16 * 1);
+ Sinv(dst, temp);
+ memxor(dst, ctx->key + 16 * 0, 16);
+ src += KUZNYECHIK_BLOCK_SIZE;
+ dst += KUZNYECHIK_BLOCK_SIZE;
+ length -= KUZNYECHIK_BLOCK_SIZE;
+ }
}
-#endif /* HAVE_NETTLE_KUZNYECHIK_SET_KEY */
+#endif /* HAVE_NETTLE_KUZNYECHIK_SET_KEY */
diff --git a/lib/nettle/gost/kuznyechik.h b/lib/nettle/gost/kuznyechik.h
index 5d5b3bb58f..207f700450 100644
--- a/lib/nettle/gost/kuznyechik.h
+++ b/lib/nettle/gost/kuznyechik.h
@@ -32,49 +32,44 @@
*/
#ifndef GNUTLS_LIB_NETTLE_KUZNYECHIK_H_INCLUDED
-#define GNUTLS_LIB_NETTLE_KUZNYECHIK_H_INCLUDED
+# define GNUTLS_LIB_NETTLE_KUZNYECHIK_H_INCLUDED
-#include <nettle/nettle-types.h>
+# include <nettle/nettle-types.h>
-#include "config.h"
+# include "config.h"
-#ifndef HAVE_NETTLE_KUZNYECHIK_SET_KEY
+# ifndef HAVE_NETTLE_KUZNYECHIK_SET_KEY
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
-
-#define kuznyechik_set_key _gnutls_kuznyechik_set_key
-#define kuznyechik_set_param _gnutls_kuznyechik_set_param
-#define kuznyechik_encrypt _gnutls_kuznyechik_encrypt
-#define kuznyechik_decrypt _gnutls_kuznyechik_decrypt
-
-#define KUZNYECHIK_KEY_SIZE 32
-#define KUZNYECHIK_SUBKEYS_SIZE (16 * 10)
-#define KUZNYECHIK_BLOCK_SIZE 16
-
-struct kuznyechik_ctx
-{
- uint8_t key[KUZNYECHIK_SUBKEYS_SIZE];
- uint8_t dekey[KUZNYECHIK_SUBKEYS_SIZE];
-};
-
-void
-kuznyechik_set_key(struct kuznyechik_ctx *ctx, const uint8_t *key);
-
-void
-kuznyechik_encrypt(const struct kuznyechik_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-void
-kuznyechik_decrypt(const struct kuznyechik_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-
-#ifdef __cplusplus
-}
-#endif
+# endif
+
+# define kuznyechik_set_key _gnutls_kuznyechik_set_key
+# define kuznyechik_set_param _gnutls_kuznyechik_set_param
+# define kuznyechik_encrypt _gnutls_kuznyechik_encrypt
+# define kuznyechik_decrypt _gnutls_kuznyechik_decrypt
+
+# define KUZNYECHIK_KEY_SIZE 32
+# define KUZNYECHIK_SUBKEYS_SIZE (16 * 10)
+# define KUZNYECHIK_BLOCK_SIZE 16
-#endif
+ struct kuznyechik_ctx {
+ uint8_t key[KUZNYECHIK_SUBKEYS_SIZE];
+ uint8_t dekey[KUZNYECHIK_SUBKEYS_SIZE];
+ };
-#endif /* GNUTLS_LIB_NETTLE_KUZNYECHIK_H_INCLUDED */
+ void
+ kuznyechik_set_key(struct kuznyechik_ctx *ctx, const uint8_t * key);
+
+ void
+ kuznyechik_encrypt(const struct kuznyechik_ctx *ctx,
+ size_t length, uint8_t * dst, const uint8_t * src);
+ void
+ kuznyechik_decrypt(const struct kuznyechik_ctx *ctx,
+ size_t length, uint8_t * dst, const uint8_t * src);
+
+# ifdef __cplusplus
+}
+# endif
+# endif
+#endif /* GNUTLS_LIB_NETTLE_KUZNYECHIK_H_INCLUDED */
diff --git a/lib/nettle/gost/kuztable.h b/lib/nettle/gost/kuztable.h
index a436911c36..8a950af58d 100644
--- a/lib/nettle/gost/kuztable.h
+++ b/lib/nettle/gost/kuztable.h
@@ -1,12503 +1,24817 @@
-static const uint8_t pi[256] =
-{
- 0xfc, 0xee, 0xdd, 0x11, 0xcf, 0x6e, 0x31, 0x16,
- 0xfb, 0xc4, 0xfa, 0xda, 0x23, 0xc5, 0x04, 0x4d,
- 0xe9, 0x77, 0xf0, 0xdb, 0x93, 0x2e, 0x99, 0xba,
- 0x17, 0x36, 0xf1, 0xbb, 0x14, 0xcd, 0x5f, 0xc1,
- 0xf9, 0x18, 0x65, 0x5a, 0xe2, 0x5c, 0xef, 0x21,
- 0x81, 0x1c, 0x3c, 0x42, 0x8b, 0x01, 0x8e, 0x4f,
- 0x05, 0x84, 0x02, 0xae, 0xe3, 0x6a, 0x8f, 0xa0,
- 0x06, 0x0b, 0xed, 0x98, 0x7f, 0xd4, 0xd3, 0x1f,
- 0xeb, 0x34, 0x2c, 0x51, 0xea, 0xc8, 0x48, 0xab,
- 0xf2, 0x2a, 0x68, 0xa2, 0xfd, 0x3a, 0xce, 0xcc,
- 0xb5, 0x70, 0x0e, 0x56, 0x08, 0x0c, 0x76, 0x12,
- 0xbf, 0x72, 0x13, 0x47, 0x9c, 0xb7, 0x5d, 0x87,
- 0x15, 0xa1, 0x96, 0x29, 0x10, 0x7b, 0x9a, 0xc7,
- 0xf3, 0x91, 0x78, 0x6f, 0x9d, 0x9e, 0xb2, 0xb1,
- 0x32, 0x75, 0x19, 0x3d, 0xff, 0x35, 0x8a, 0x7e,
- 0x6d, 0x54, 0xc6, 0x80, 0xc3, 0xbd, 0x0d, 0x57,
- 0xdf, 0xf5, 0x24, 0xa9, 0x3e, 0xa8, 0x43, 0xc9,
- 0xd7, 0x79, 0xd6, 0xf6, 0x7c, 0x22, 0xb9, 0x03,
- 0xe0, 0x0f, 0xec, 0xde, 0x7a, 0x94, 0xb0, 0xbc,
- 0xdc, 0xe8, 0x28, 0x50, 0x4e, 0x33, 0x0a, 0x4a,
- 0xa7, 0x97, 0x60, 0x73, 0x1e, 0x00, 0x62, 0x44,
- 0x1a, 0xb8, 0x38, 0x82, 0x64, 0x9f, 0x26, 0x41,
- 0xad, 0x45, 0x46, 0x92, 0x27, 0x5e, 0x55, 0x2f,
- 0x8c, 0xa3, 0xa5, 0x7d, 0x69, 0xd5, 0x95, 0x3b,
- 0x07, 0x58, 0xb3, 0x40, 0x86, 0xac, 0x1d, 0xf7,
- 0x30, 0x37, 0x6b, 0xe4, 0x88, 0xd9, 0xe7, 0x89,
- 0xe1, 0x1b, 0x83, 0x49, 0x4c, 0x3f, 0xf8, 0xfe,
- 0x8d, 0x53, 0xaa, 0x90, 0xca, 0xd8, 0x85, 0x61,
- 0x20, 0x71, 0x67, 0xa4, 0x2d, 0x2b, 0x09, 0x5b,
- 0xcb, 0x9b, 0x25, 0xd0, 0xbe, 0xe5, 0x6c, 0x52,
- 0x59, 0xa6, 0x74, 0xd2, 0xe6, 0xf4, 0xb4, 0xc0,
- 0xd1, 0x66, 0xaf, 0xc2, 0x39, 0x4b, 0x63, 0xb6,
+static const uint8_t pi[256] = {
+ 0xfc, 0xee, 0xdd, 0x11, 0xcf, 0x6e, 0x31, 0x16,
+ 0xfb, 0xc4, 0xfa, 0xda, 0x23, 0xc5, 0x04, 0x4d,
+ 0xe9, 0x77, 0xf0, 0xdb, 0x93, 0x2e, 0x99, 0xba,
+ 0x17, 0x36, 0xf1, 0xbb, 0x14, 0xcd, 0x5f, 0xc1,
+ 0xf9, 0x18, 0x65, 0x5a, 0xe2, 0x5c, 0xef, 0x21,
+ 0x81, 0x1c, 0x3c, 0x42, 0x8b, 0x01, 0x8e, 0x4f,
+ 0x05, 0x84, 0x02, 0xae, 0xe3, 0x6a, 0x8f, 0xa0,
+ 0x06, 0x0b, 0xed, 0x98, 0x7f, 0xd4, 0xd3, 0x1f,
+ 0xeb, 0x34, 0x2c, 0x51, 0xea, 0xc8, 0x48, 0xab,
+ 0xf2, 0x2a, 0x68, 0xa2, 0xfd, 0x3a, 0xce, 0xcc,
+ 0xb5, 0x70, 0x0e, 0x56, 0x08, 0x0c, 0x76, 0x12,
+ 0xbf, 0x72, 0x13, 0x47, 0x9c, 0xb7, 0x5d, 0x87,
+ 0x15, 0xa1, 0x96, 0x29, 0x10, 0x7b, 0x9a, 0xc7,
+ 0xf3, 0x91, 0x78, 0x6f, 0x9d, 0x9e, 0xb2, 0xb1,
+ 0x32, 0x75, 0x19, 0x3d, 0xff, 0x35, 0x8a, 0x7e,
+ 0x6d, 0x54, 0xc6, 0x80, 0xc3, 0xbd, 0x0d, 0x57,
+ 0xdf, 0xf5, 0x24, 0xa9, 0x3e, 0xa8, 0x43, 0xc9,
+ 0xd7, 0x79, 0xd6, 0xf6, 0x7c, 0x22, 0xb9, 0x03,
+ 0xe0, 0x0f, 0xec, 0xde, 0x7a, 0x94, 0xb0, 0xbc,
+ 0xdc, 0xe8, 0x28, 0x50, 0x4e, 0x33, 0x0a, 0x4a,
+ 0xa7, 0x97, 0x60, 0x73, 0x1e, 0x00, 0x62, 0x44,
+ 0x1a, 0xb8, 0x38, 0x82, 0x64, 0x9f, 0x26, 0x41,
+ 0xad, 0x45, 0x46, 0x92, 0x27, 0x5e, 0x55, 0x2f,
+ 0x8c, 0xa3, 0xa5, 0x7d, 0x69, 0xd5, 0x95, 0x3b,
+ 0x07, 0x58, 0xb3, 0x40, 0x86, 0xac, 0x1d, 0xf7,
+ 0x30, 0x37, 0x6b, 0xe4, 0x88, 0xd9, 0xe7, 0x89,
+ 0xe1, 0x1b, 0x83, 0x49, 0x4c, 0x3f, 0xf8, 0xfe,
+ 0x8d, 0x53, 0xaa, 0x90, 0xca, 0xd8, 0x85, 0x61,
+ 0x20, 0x71, 0x67, 0xa4, 0x2d, 0x2b, 0x09, 0x5b,
+ 0xcb, 0x9b, 0x25, 0xd0, 0xbe, 0xe5, 0x6c, 0x52,
+ 0x59, 0xa6, 0x74, 0xd2, 0xe6, 0xf4, 0xb4, 0xc0,
+ 0xd1, 0x66, 0xaf, 0xc2, 0x39, 0x4b, 0x63, 0xb6,
};
-static const uint8_t pi_inv[256] =
-{
- 0xa5, 0x2d, 0x32, 0x8f, 0x0e, 0x30, 0x38, 0xc0,
- 0x54, 0xe6, 0x9e, 0x39, 0x55, 0x7e, 0x52, 0x91,
- 0x64, 0x03, 0x57, 0x5a, 0x1c, 0x60, 0x07, 0x18,
- 0x21, 0x72, 0xa8, 0xd1, 0x29, 0xc6, 0xa4, 0x3f,
- 0xe0, 0x27, 0x8d, 0x0c, 0x82, 0xea, 0xae, 0xb4,
- 0x9a, 0x63, 0x49, 0xe5, 0x42, 0xe4, 0x15, 0xb7,
- 0xc8, 0x06, 0x70, 0x9d, 0x41, 0x75, 0x19, 0xc9,
- 0xaa, 0xfc, 0x4d, 0xbf, 0x2a, 0x73, 0x84, 0xd5,
- 0xc3, 0xaf, 0x2b, 0x86, 0xa7, 0xb1, 0xb2, 0x5b,
- 0x46, 0xd3, 0x9f, 0xfd, 0xd4, 0x0f, 0x9c, 0x2f,
- 0x9b, 0x43, 0xef, 0xd9, 0x79, 0xb6, 0x53, 0x7f,
- 0xc1, 0xf0, 0x23, 0xe7, 0x25, 0x5e, 0xb5, 0x1e,
- 0xa2, 0xdf, 0xa6, 0xfe, 0xac, 0x22, 0xf9, 0xe2,
- 0x4a, 0xbc, 0x35, 0xca, 0xee, 0x78, 0x05, 0x6b,
- 0x51, 0xe1, 0x59, 0xa3, 0xf2, 0x71, 0x56, 0x11,
- 0x6a, 0x89, 0x94, 0x65, 0x8c, 0xbb, 0x77, 0x3c,
- 0x7b, 0x28, 0xab, 0xd2, 0x31, 0xde, 0xc4, 0x5f,
- 0xcc, 0xcf, 0x76, 0x2c, 0xb8, 0xd8, 0x2e, 0x36,
- 0xdb, 0x69, 0xb3, 0x14, 0x95, 0xbe, 0x62, 0xa1,
- 0x3b, 0x16, 0x66, 0xe9, 0x5c, 0x6c, 0x6d, 0xad,
- 0x37, 0x61, 0x4b, 0xb9, 0xe3, 0xba, 0xf1, 0xa0,
- 0x85, 0x83, 0xda, 0x47, 0xc5, 0xb0, 0x33, 0xfa,
- 0x96, 0x6f, 0x6e, 0xc2, 0xf6, 0x50, 0xff, 0x5d,
- 0xa9, 0x8e, 0x17, 0x1b, 0x97, 0x7d, 0xec, 0x58,
- 0xf7, 0x1f, 0xfb, 0x7c, 0x09, 0x0d, 0x7a, 0x67,
- 0x45, 0x87, 0xdc, 0xe8, 0x4f, 0x1d, 0x4e, 0x04,
- 0xeb, 0xf8, 0xf3, 0x3e, 0x3d, 0xbd, 0x8a, 0x88,
- 0xdd, 0xcd, 0x0b, 0x13, 0x98, 0x02, 0x93, 0x80,
- 0x90, 0xd0, 0x24, 0x34, 0xcb, 0xed, 0xf4, 0xce,
- 0x99, 0x10, 0x44, 0x40, 0x92, 0x3a, 0x01, 0x26,
- 0x12, 0x1a, 0x48, 0x68, 0xf5, 0x81, 0x8b, 0xc7,
- 0xd6, 0x20, 0x0a, 0x08, 0x00, 0x4c, 0xd7, 0x74,
+static const uint8_t pi_inv[256] = {
+ 0xa5, 0x2d, 0x32, 0x8f, 0x0e, 0x30, 0x38, 0xc0,
+ 0x54, 0xe6, 0x9e, 0x39, 0x55, 0x7e, 0x52, 0x91,
+ 0x64, 0x03, 0x57, 0x5a, 0x1c, 0x60, 0x07, 0x18,
+ 0x21, 0x72, 0xa8, 0xd1, 0x29, 0xc6, 0xa4, 0x3f,
+ 0xe0, 0x27, 0x8d, 0x0c, 0x82, 0xea, 0xae, 0xb4,
+ 0x9a, 0x63, 0x49, 0xe5, 0x42, 0xe4, 0x15, 0xb7,
+ 0xc8, 0x06, 0x70, 0x9d, 0x41, 0x75, 0x19, 0xc9,
+ 0xaa, 0xfc, 0x4d, 0xbf, 0x2a, 0x73, 0x84, 0xd5,
+ 0xc3, 0xaf, 0x2b, 0x86, 0xa7, 0xb1, 0xb2, 0x5b,
+ 0x46, 0xd3, 0x9f, 0xfd, 0xd4, 0x0f, 0x9c, 0x2f,
+ 0x9b, 0x43, 0xef, 0xd9, 0x79, 0xb6, 0x53, 0x7f,
+ 0xc1, 0xf0, 0x23, 0xe7, 0x25, 0x5e, 0xb5, 0x1e,
+ 0xa2, 0xdf, 0xa6, 0xfe, 0xac, 0x22, 0xf9, 0xe2,
+ 0x4a, 0xbc, 0x35, 0xca, 0xee, 0x78, 0x05, 0x6b,
+ 0x51, 0xe1, 0x59, 0xa3, 0xf2, 0x71, 0x56, 0x11,
+ 0x6a, 0x89, 0x94, 0x65, 0x8c, 0xbb, 0x77, 0x3c,
+ 0x7b, 0x28, 0xab, 0xd2, 0x31, 0xde, 0xc4, 0x5f,
+ 0xcc, 0xcf, 0x76, 0x2c, 0xb8, 0xd8, 0x2e, 0x36,
+ 0xdb, 0x69, 0xb3, 0x14, 0x95, 0xbe, 0x62, 0xa1,
+ 0x3b, 0x16, 0x66, 0xe9, 0x5c, 0x6c, 0x6d, 0xad,
+ 0x37, 0x61, 0x4b, 0xb9, 0xe3, 0xba, 0xf1, 0xa0,
+ 0x85, 0x83, 0xda, 0x47, 0xc5, 0xb0, 0x33, 0xfa,
+ 0x96, 0x6f, 0x6e, 0xc2, 0xf6, 0x50, 0xff, 0x5d,
+ 0xa9, 0x8e, 0x17, 0x1b, 0x97, 0x7d, 0xec, 0x58,
+ 0xf7, 0x1f, 0xfb, 0x7c, 0x09, 0x0d, 0x7a, 0x67,
+ 0x45, 0x87, 0xdc, 0xe8, 0x4f, 0x1d, 0x4e, 0x04,
+ 0xeb, 0xf8, 0xf3, 0x3e, 0x3d, 0xbd, 0x8a, 0x88,
+ 0xdd, 0xcd, 0x0b, 0x13, 0x98, 0x02, 0x93, 0x80,
+ 0x90, 0xd0, 0x24, 0x34, 0xcb, 0xed, 0xf4, 0xce,
+ 0x99, 0x10, 0x44, 0x40, 0x92, 0x3a, 0x01, 0x26,
+ 0x12, 0x1a, 0x48, 0x68, 0xf5, 0x81, 0x8b, 0xc7,
+ 0xd6, 0x20, 0x0a, 0x08, 0x00, 0x4c, 0xd7, 0x74,
};
-static const uint8_t kuz_key_table[32][16] =
-{
- { 0x6e, 0xa2, 0x76, 0x72, 0x6c, 0x48, 0x7a, 0xb8, 0x5d, 0x27, 0xbd, 0x10, 0xdd, 0x84, 0x94, 0x01,},
- { 0xdc, 0x87, 0xec, 0xe4, 0xd8, 0x90, 0xf4, 0xb3, 0xba, 0x4e, 0xb9, 0x20, 0x79, 0xcb, 0xeb, 0x02,},
- { 0xb2, 0x25, 0x9a, 0x96, 0xb4, 0xd8, 0x8e, 0x0b, 0xe7, 0x69, 0x04, 0x30, 0xa4, 0x4f, 0x7f, 0x03,},
- { 0x7b, 0xcd, 0x1b, 0x0b, 0x73, 0xe3, 0x2b, 0xa5, 0xb7, 0x9c, 0xb1, 0x40, 0xf2, 0x55, 0x15, 0x04,},
- { 0x15, 0x6f, 0x6d, 0x79, 0x1f, 0xab, 0x51, 0x1d, 0xea, 0xbb, 0x0c, 0x50, 0x2f, 0xd1, 0x81, 0x05,},
- { 0xa7, 0x4a, 0xf7, 0xef, 0xab, 0x73, 0xdf, 0x16, 0x0d, 0xd2, 0x08, 0x60, 0x8b, 0x9e, 0xfe, 0x06,},
- { 0xc9, 0xe8, 0x81, 0x9d, 0xc7, 0x3b, 0xa5, 0xae, 0x50, 0xf5, 0xb5, 0x70, 0x56, 0x1a, 0x6a, 0x07,},
- { 0xf6, 0x59, 0x36, 0x16, 0xe6, 0x05, 0x56, 0x89, 0xad, 0xfb, 0xa1, 0x80, 0x27, 0xaa, 0x2a, 0x08,},
- { 0x98, 0xfb, 0x40, 0x64, 0x8a, 0x4d, 0x2c, 0x31, 0xf0, 0xdc, 0x1c, 0x90, 0xfa, 0x2e, 0xbe, 0x09,},
- { 0x2a, 0xde, 0xda, 0xf2, 0x3e, 0x95, 0xa2, 0x3a, 0x17, 0xb5, 0x18, 0xa0, 0x5e, 0x61, 0xc1, 0x0a,},
- { 0x44, 0x7c, 0xac, 0x80, 0x52, 0xdd, 0xd8, 0x82, 0x4a, 0x92, 0xa5, 0xb0, 0x83, 0xe5, 0x55, 0x0b,},
- { 0x8d, 0x94, 0x2d, 0x1d, 0x95, 0xe6, 0x7d, 0x2c, 0x1a, 0x67, 0x10, 0xc0, 0xd5, 0xff, 0x3f, 0x0c,},
- { 0xe3, 0x36, 0x5b, 0x6f, 0xf9, 0xae, 0x07, 0x94, 0x47, 0x40, 0xad, 0xd0, 0x08, 0x7b, 0xab, 0x0d,},
- { 0x51, 0x13, 0xc1, 0xf9, 0x4d, 0x76, 0x89, 0x9f, 0xa0, 0x29, 0xa9, 0xe0, 0xac, 0x34, 0xd4, 0x0e,},
- { 0x3f, 0xb1, 0xb7, 0x8b, 0x21, 0x3e, 0xf3, 0x27, 0xfd, 0x0e, 0x14, 0xf0, 0x71, 0xb0, 0x40, 0x0f,},
- { 0x2f, 0xb2, 0x6c, 0x2c, 0x0f, 0x0a, 0xac, 0xd1, 0x99, 0x35, 0x81, 0xc3, 0x4e, 0x97, 0x54, 0x10,},
- { 0x41, 0x10, 0x1a, 0x5e, 0x63, 0x42, 0xd6, 0x69, 0xc4, 0x12, 0x3c, 0xd3, 0x93, 0x13, 0xc0, 0x11,},
- { 0xf3, 0x35, 0x80, 0xc8, 0xd7, 0x9a, 0x58, 0x62, 0x23, 0x7b, 0x38, 0xe3, 0x37, 0x5c, 0xbf, 0x12,},
- { 0x9d, 0x97, 0xf6, 0xba, 0xbb, 0xd2, 0x22, 0xda, 0x7e, 0x5c, 0x85, 0xf3, 0xea, 0xd8, 0x2b, 0x13,},
- { 0x54, 0x7f, 0x77, 0x27, 0x7c, 0xe9, 0x87, 0x74, 0x2e, 0xa9, 0x30, 0x83, 0xbc, 0xc2, 0x41, 0x14,},
- { 0x3a, 0xdd, 0x01, 0x55, 0x10, 0xa1, 0xfd, 0xcc, 0x73, 0x8e, 0x8d, 0x93, 0x61, 0x46, 0xd5, 0x15,},
- { 0x88, 0xf8, 0x9b, 0xc3, 0xa4, 0x79, 0x73, 0xc7, 0x94, 0xe7, 0x89, 0xa3, 0xc5, 0x09, 0xaa, 0x16,},
- { 0xe6, 0x5a, 0xed, 0xb1, 0xc8, 0x31, 0x09, 0x7f, 0xc9, 0xc0, 0x34, 0xb3, 0x18, 0x8d, 0x3e, 0x17,},
- { 0xd9, 0xeb, 0x5a, 0x3a, 0xe9, 0x0f, 0xfa, 0x58, 0x34, 0xce, 0x20, 0x43, 0x69, 0x3d, 0x7e, 0x18,},
- { 0xb7, 0x49, 0x2c, 0x48, 0x85, 0x47, 0x80, 0xe0, 0x69, 0xe9, 0x9d, 0x53, 0xb4, 0xb9, 0xea, 0x19,},
- { 0x05, 0x6c, 0xb6, 0xde, 0x31, 0x9f, 0x0e, 0xeb, 0x8e, 0x80, 0x99, 0x63, 0x10, 0xf6, 0x95, 0x1a,},
- { 0x6b, 0xce, 0xc0, 0xac, 0x5d, 0xd7, 0x74, 0x53, 0xd3, 0xa7, 0x24, 0x73, 0xcd, 0x72, 0x01, 0x1b,},
- { 0xa2, 0x26, 0x41, 0x31, 0x9a, 0xec, 0xd1, 0xfd, 0x83, 0x52, 0x91, 0x03, 0x9b, 0x68, 0x6b, 0x1c,},
- { 0xcc, 0x84, 0x37, 0x43, 0xf6, 0xa4, 0xab, 0x45, 0xde, 0x75, 0x2c, 0x13, 0x46, 0xec, 0xff, 0x1d,},
- { 0x7e, 0xa1, 0xad, 0xd5, 0x42, 0x7c, 0x25, 0x4e, 0x39, 0x1c, 0x28, 0x23, 0xe2, 0xa3, 0x80, 0x1e,},
- { 0x10, 0x03, 0xdb, 0xa7, 0x2e, 0x34, 0x5f, 0xf6, 0x64, 0x3b, 0x95, 0x33, 0x3f, 0x27, 0x14, 0x1f,},
- { 0x5e, 0xa7, 0xd8, 0x58, 0x1e, 0x14, 0x9b, 0x61, 0xf1, 0x6a, 0xc1, 0x45, 0x9c, 0xed, 0xa8, 0x20,},
+static const uint8_t kuz_key_table[32][16] = {
+ {0x6e, 0xa2, 0x76, 0x72, 0x6c, 0x48, 0x7a, 0xb8, 0x5d, 0x27, 0xbd, 0x10,
+ 0xdd, 0x84, 0x94, 0x01,},
+ {0xdc, 0x87, 0xec, 0xe4, 0xd8, 0x90, 0xf4, 0xb3, 0xba, 0x4e, 0xb9, 0x20,
+ 0x79, 0xcb, 0xeb, 0x02,},
+ {0xb2, 0x25, 0x9a, 0x96, 0xb4, 0xd8, 0x8e, 0x0b, 0xe7, 0x69, 0x04, 0x30,
+ 0xa4, 0x4f, 0x7f, 0x03,},
+ {0x7b, 0xcd, 0x1b, 0x0b, 0x73, 0xe3, 0x2b, 0xa5, 0xb7, 0x9c, 0xb1, 0x40,
+ 0xf2, 0x55, 0x15, 0x04,},
+ {0x15, 0x6f, 0x6d, 0x79, 0x1f, 0xab, 0x51, 0x1d, 0xea, 0xbb, 0x0c, 0x50,
+ 0x2f, 0xd1, 0x81, 0x05,},
+ {0xa7, 0x4a, 0xf7, 0xef, 0xab, 0x73, 0xdf, 0x16, 0x0d, 0xd2, 0x08, 0x60,
+ 0x8b, 0x9e, 0xfe, 0x06,},
+ {0xc9, 0xe8, 0x81, 0x9d, 0xc7, 0x3b, 0xa5, 0xae, 0x50, 0xf5, 0xb5, 0x70,
+ 0x56, 0x1a, 0x6a, 0x07,},
+ {0xf6, 0x59, 0x36, 0x16, 0xe6, 0x05, 0x56, 0x89, 0xad, 0xfb, 0xa1, 0x80,
+ 0x27, 0xaa, 0x2a, 0x08,},
+ {0x98, 0xfb, 0x40, 0x64, 0x8a, 0x4d, 0x2c, 0x31, 0xf0, 0xdc, 0x1c, 0x90,
+ 0xfa, 0x2e, 0xbe, 0x09,},
+ {0x2a, 0xde, 0xda, 0xf2, 0x3e, 0x95, 0xa2, 0x3a, 0x17, 0xb5, 0x18, 0xa0,
+ 0x5e, 0x61, 0xc1, 0x0a,},
+ {0x44, 0x7c, 0xac, 0x80, 0x52, 0xdd, 0xd8, 0x82, 0x4a, 0x92, 0xa5, 0xb0,
+ 0x83, 0xe5, 0x55, 0x0b,},
+ {0x8d, 0x94, 0x2d, 0x1d, 0x95, 0xe6, 0x7d, 0x2c, 0x1a, 0x67, 0x10, 0xc0,
+ 0xd5, 0xff, 0x3f, 0x0c,},
+ {0xe3, 0x36, 0x5b, 0x6f, 0xf9, 0xae, 0x07, 0x94, 0x47, 0x40, 0xad, 0xd0,
+ 0x08, 0x7b, 0xab, 0x0d,},
+ {0x51, 0x13, 0xc1, 0xf9, 0x4d, 0x76, 0x89, 0x9f, 0xa0, 0x29, 0xa9, 0xe0,
+ 0xac, 0x34, 0xd4, 0x0e,},
+ {0x3f, 0xb1, 0xb7, 0x8b, 0x21, 0x3e, 0xf3, 0x27, 0xfd, 0x0e, 0x14, 0xf0,
+ 0x71, 0xb0, 0x40, 0x0f,},
+ {0x2f, 0xb2, 0x6c, 0x2c, 0x0f, 0x0a, 0xac, 0xd1, 0x99, 0x35, 0x81, 0xc3,
+ 0x4e, 0x97, 0x54, 0x10,},
+ {0x41, 0x10, 0x1a, 0x5e, 0x63, 0x42, 0xd6, 0x69, 0xc4, 0x12, 0x3c, 0xd3,
+ 0x93, 0x13, 0xc0, 0x11,},
+ {0xf3, 0x35, 0x80, 0xc8, 0xd7, 0x9a, 0x58, 0x62, 0x23, 0x7b, 0x38, 0xe3,
+ 0x37, 0x5c, 0xbf, 0x12,},
+ {0x9d, 0x97, 0xf6, 0xba, 0xbb, 0xd2, 0x22, 0xda, 0x7e, 0x5c, 0x85, 0xf3,
+ 0xea, 0xd8, 0x2b, 0x13,},
+ {0x54, 0x7f, 0x77, 0x27, 0x7c, 0xe9, 0x87, 0x74, 0x2e, 0xa9, 0x30, 0x83,
+ 0xbc, 0xc2, 0x41, 0x14,},
+ {0x3a, 0xdd, 0x01, 0x55, 0x10, 0xa1, 0xfd, 0xcc, 0x73, 0x8e, 0x8d, 0x93,
+ 0x61, 0x46, 0xd5, 0x15,},
+ {0x88, 0xf8, 0x9b, 0xc3, 0xa4, 0x79, 0x73, 0xc7, 0x94, 0xe7, 0x89, 0xa3,
+ 0xc5, 0x09, 0xaa, 0x16,},
+ {0xe6, 0x5a, 0xed, 0xb1, 0xc8, 0x31, 0x09, 0x7f, 0xc9, 0xc0, 0x34, 0xb3,
+ 0x18, 0x8d, 0x3e, 0x17,},
+ {0xd9, 0xeb, 0x5a, 0x3a, 0xe9, 0x0f, 0xfa, 0x58, 0x34, 0xce, 0x20, 0x43,
+ 0x69, 0x3d, 0x7e, 0x18,},
+ {0xb7, 0x49, 0x2c, 0x48, 0x85, 0x47, 0x80, 0xe0, 0x69, 0xe9, 0x9d, 0x53,
+ 0xb4, 0xb9, 0xea, 0x19,},
+ {0x05, 0x6c, 0xb6, 0xde, 0x31, 0x9f, 0x0e, 0xeb, 0x8e, 0x80, 0x99, 0x63,
+ 0x10, 0xf6, 0x95, 0x1a,},
+ {0x6b, 0xce, 0xc0, 0xac, 0x5d, 0xd7, 0x74, 0x53, 0xd3, 0xa7, 0x24, 0x73,
+ 0xcd, 0x72, 0x01, 0x1b,},
+ {0xa2, 0x26, 0x41, 0x31, 0x9a, 0xec, 0xd1, 0xfd, 0x83, 0x52, 0x91, 0x03,
+ 0x9b, 0x68, 0x6b, 0x1c,},
+ {0xcc, 0x84, 0x37, 0x43, 0xf6, 0xa4, 0xab, 0x45, 0xde, 0x75, 0x2c, 0x13,
+ 0x46, 0xec, 0xff, 0x1d,},
+ {0x7e, 0xa1, 0xad, 0xd5, 0x42, 0x7c, 0x25, 0x4e, 0x39, 0x1c, 0x28, 0x23,
+ 0xe2, 0xa3, 0x80, 0x1e,},
+ {0x10, 0x03, 0xdb, 0xa7, 0x2e, 0x34, 0x5f, 0xf6, 0x64, 0x3b, 0x95, 0x33,
+ 0x3f, 0x27, 0x14, 0x1f,},
+ {0x5e, 0xa7, 0xd8, 0x58, 0x1e, 0x14, 0x9b, 0x61, 0xf1, 0x6a, 0xc1, 0x45,
+ 0x9c, 0xed, 0xa8, 0x20,},
};
-static const uint8_t kuz_table[16][256 * 16] =
-{
- { /* 0 */
- 0xe9, 0xfb, 0xd5, 0x0c, 0x7a, 0xc0, 0x80, 0x96, 0x19, 0x11, 0x87, 0x93, 0x1b, 0xc9, 0xae, 0xb5,
- 0x19, 0x08, 0xe0, 0x8c, 0xb2, 0x17, 0x1a, 0xce, 0x7b, 0x32, 0xfc, 0xab, 0xf8, 0xfe, 0xf2, 0x0a,
- 0xbf, 0xcb, 0xd0, 0xa2, 0x50, 0xb2, 0xdc, 0x77, 0xc0, 0xbd, 0xca, 0xef, 0x4e, 0x88, 0xc7, 0x89,
- 0x62, 0x41, 0x10, 0x1a, 0x5e, 0x63, 0x42, 0xd6, 0x69, 0xc4, 0x12, 0x3c, 0xd3, 0x93, 0x13, 0xc0,
- 0x4f, 0x38, 0xe5, 0x22, 0x98, 0x65, 0x46, 0x2f, 0xa2, 0x9e, 0xb1, 0xd7, 0xad, 0xbf, 0x9b, 0x36,
- 0x38, 0xb3, 0x39, 0x6a, 0x11, 0x6f, 0x4a, 0xe7, 0x3c, 0x70, 0x97, 0x29, 0x2f, 0xcb, 0xc0, 0xef,
- 0xfb, 0x1f, 0xb7, 0xc2, 0x06, 0x7d, 0x56, 0x4d, 0x08, 0x35, 0x78, 0xfd, 0x96, 0x0f, 0xfe, 0x68,
- 0x4a, 0x88, 0xf8, 0x9b, 0xc3, 0xa4, 0x79, 0x73, 0xc7, 0x94, 0xe7, 0x89, 0xa3, 0xc5, 0x09, 0xaa,
- 0xc1, 0x32, 0x3d, 0x8d, 0xe7, 0x07, 0xbb, 0x33, 0xb7, 0x41, 0x72, 0x26, 0x6b, 0x9f, 0xb4, 0xdf,
- 0x6a, 0x7c, 0x99, 0x8e, 0x18, 0x37, 0x9b, 0xf7, 0x20, 0xd4, 0x23, 0x72, 0x1d, 0x3c, 0x7e, 0x63,
- 0x0e, 0x5c, 0x9f, 0xfb, 0x95, 0x6b, 0xf3, 0x49, 0x0f, 0x1c, 0x55, 0x9b, 0x7b, 0x42, 0x30, 0x4b,
- 0x97, 0x02, 0x38, 0x23, 0xcd, 0x75, 0xe7, 0xd2, 0x6e, 0xed, 0x3f, 0x5a, 0x3e, 0xde, 0xdd, 0xe3,
- 0x0b, 0xec, 0x82, 0x42, 0xce, 0xaa, 0xcc, 0x15, 0x6a, 0x16, 0x03, 0xc5, 0x75, 0x38, 0xa2, 0xd7,
- 0xa5, 0x12, 0x3b, 0xf8, 0x6a, 0x5b, 0xd3, 0x8d, 0x98, 0x89, 0x04, 0xcf, 0x0d, 0xe1, 0xfa, 0xf7,
- 0xba, 0x7b, 0xcd, 0x1b, 0x0b, 0x73, 0xe3, 0x2b, 0xa5, 0xb7, 0x9c, 0xb1, 0x40, 0xf2, 0x55, 0x15,
- 0x33, 0x5f, 0xbb, 0x28, 0xdf, 0xc5, 0x86, 0xf2, 0x56, 0x66, 0x94, 0xec, 0x5a, 0xf3, 0x62, 0x38,
- 0x31, 0xc1, 0x08, 0x0d, 0x2f, 0xd0, 0x21, 0x6b, 0xd5, 0x62, 0x09, 0x1e, 0x88, 0xa8, 0xe8, 0x60,
- 0xed, 0x04, 0x70, 0x46, 0x59, 0xea, 0x0d, 0x67, 0xdc, 0x19, 0x7e, 0xb4, 0x7c, 0x7f, 0x79, 0x05,
- 0xe4, 0x76, 0x41, 0x21, 0x67, 0x55, 0x66, 0xeb, 0x35, 0x0b, 0xe0, 0x83, 0xdb, 0x1c, 0x51, 0x8a,
- 0x58, 0x6c, 0x9a, 0x55, 0xbf, 0x19, 0xaf, 0xa8, 0xd6, 0xb0, 0x18, 0xe7, 0x2e, 0x03, 0x59, 0x77,
- 0x1e, 0x26, 0x4e, 0x10, 0x19, 0xc3, 0x82, 0x0b, 0x9d, 0x3c, 0x37, 0x07, 0x24, 0xdf, 0xea, 0xce,
- 0xc9, 0x0f, 0xb4, 0x19, 0xa1, 0x53, 0x62, 0x12, 0xfe, 0x51, 0x43, 0x68, 0xa5, 0x30, 0xd9, 0x7c,
- 0xf4, 0x0c, 0x90, 0xca, 0xeb, 0xfd, 0x17, 0xa9, 0xa7, 0x2b, 0x82, 0x1f, 0x84, 0x81, 0x8b, 0x0f,
- 0xff, 0xe0, 0x12, 0x88, 0x25, 0x57, 0xdb, 0xbc, 0xcd, 0x3d, 0x81, 0xda, 0xf1, 0xb9, 0x29, 0xd8,
- 0x85, 0xe6, 0x5a, 0xed, 0xb1, 0xc8, 0x31, 0x09, 0x7f, 0xc9, 0xc0, 0x34, 0xb3, 0x18, 0x8d, 0x3e,
- 0xd3, 0xd6, 0x5f, 0x43, 0x9b, 0xba, 0x6d, 0xe8, 0xa6, 0x65, 0x8d, 0x48, 0xe6, 0x59, 0xe4, 0x02,
- 0x2b, 0x18, 0xe3, 0x57, 0x15, 0x39, 0x2e, 0x91, 0x8d, 0x56, 0xc7, 0x3e, 0xcb, 0xc1, 0xd5, 0x1e,
- 0x30, 0x8e, 0xb0, 0xfe, 0x57, 0x3b, 0x93, 0xc6, 0x75, 0x60, 0xa6, 0x67, 0xe1, 0x64, 0xad, 0x4c,
- 0x17, 0x54, 0x7f, 0x77, 0x27, 0x7c, 0xe9, 0x87, 0x74, 0x2e, 0xa9, 0x30, 0x83, 0xbc, 0xc2, 0x41,
- 0x12, 0xe4, 0x62, 0xce, 0x7c, 0xbd, 0xd6, 0xdb, 0x11, 0x24, 0xff, 0x6e, 0x8d, 0xc6, 0x50, 0xdd,
- 0xc3, 0xac, 0x8e, 0xa8, 0x17, 0x12, 0x1c, 0xaa, 0x34, 0x45, 0xef, 0xd4, 0xb9, 0xc4, 0x3e, 0x87,
- 0x1f, 0x69, 0xf6, 0xe3, 0x61, 0x28, 0x30, 0xa6, 0x3d, 0x3e, 0x98, 0x7e, 0x4d, 0x13, 0xaf, 0xe2,
- 0x9c, 0xee, 0xba, 0x61, 0x03, 0xdf, 0x2b, 0xc7, 0x04, 0xfb, 0x3c, 0x9f, 0x4b, 0xe6, 0x7f, 0x34,
- 0x1a, 0xd9, 0xeb, 0x5a, 0x3a, 0xe9, 0x0f, 0xfa, 0x58, 0x34, 0xce, 0x20, 0x43, 0x69, 0x3d, 0x7e,
- 0x1d, 0xf7, 0x45, 0xc6, 0x91, 0x3d, 0x97, 0x3f, 0xbe, 0x3a, 0x05, 0x8c, 0x9f, 0x48, 0x25, 0xba,
- 0xb6, 0xb9, 0xe1, 0xc5, 0x6e, 0x0d, 0xb7, 0xfb, 0x29, 0xaf, 0x54, 0xd8, 0xe9, 0xeb, 0xef, 0x06,
- 0x14, 0x85, 0x74, 0xa1, 0xaf, 0x82, 0xfc, 0xb3, 0x57, 0x28, 0x9b, 0xbb, 0x38, 0x2b, 0x0d, 0x35,
- 0x51, 0x1e, 0xab, 0x32, 0x81, 0xa6, 0xc4, 0x24, 0x3f, 0xa2, 0x86, 0xd0, 0x89, 0x60, 0x71, 0xf8,
- 0xd6, 0x66, 0x42, 0xfa, 0xc0, 0x7b, 0x52, 0xb4, 0xc3, 0x6f, 0xdb, 0x16, 0xe8, 0x23, 0x76, 0x9e,
- 0x56, 0x30, 0x05, 0xae, 0x2a, 0x72, 0x5c, 0xe1, 0xd9, 0xac, 0x4d, 0x7c, 0x55, 0x41, 0x69, 0x3c,
- 0xee, 0xd5, 0x7b, 0x90, 0xd1, 0x14, 0x18, 0x53, 0xff, 0x1f, 0x4c, 0x3f, 0xc7, 0xe8, 0xb6, 0x71,
- 0xa0, 0xa2, 0x26, 0x41, 0x31, 0x9a, 0xec, 0xd1, 0xfd, 0x83, 0x52, 0x91, 0x03, 0x9b, 0x68, 0x6b,
- 0x39, 0xfc, 0x81, 0x99, 0x69, 0x84, 0xf8, 0x4a, 0x9c, 0x72, 0x38, 0x50, 0x46, 0x07, 0x85, 0xc3,
- 0xac, 0x60, 0x0a, 0x9f, 0x54, 0xe4, 0xb8, 0x01, 0x71, 0x9b, 0x9a, 0xf8, 0xaa, 0x82, 0xd2, 0x78,
- 0x04, 0xff, 0xa5, 0x4a, 0x23, 0x2a, 0x8d, 0xf1, 0xc5, 0x08, 0xf9, 0x27, 0x67, 0xb6, 0xd7, 0xb0,
- 0xcf, 0x6e, 0xa2, 0x76, 0x72, 0x6c, 0x48, 0x7a, 0xb8, 0x5d, 0x27, 0xbd, 0x10, 0xdd, 0x84, 0x94,
- 0x71, 0xea, 0xca, 0x27, 0x5a, 0x35, 0x26, 0xa0, 0xd8, 0xe2, 0x42, 0x2b, 0x37, 0x99, 0x06, 0x31,
- 0x6e, 0x83, 0x3c, 0xc4, 0x3b, 0x1d, 0x16, 0x06, 0xe5, 0xdc, 0xda, 0x55, 0x7a, 0x8a, 0xa9, 0xd3,
- 0x75, 0x15, 0x6f, 0x6d, 0x79, 0x1f, 0xab, 0x51, 0x1d, 0xea, 0xbb, 0x0c, 0x50, 0x2f, 0xd1, 0x81,
- 0x9b, 0xc0, 0x14, 0xfd, 0xa8, 0x0b, 0xb3, 0x02, 0xe2, 0xf5, 0xf7, 0x33, 0x97, 0xc7, 0x67, 0xf0,
- 0x5d, 0xdc, 0x87, 0xec, 0xe4, 0xd8, 0x90, 0xf4, 0xb3, 0xba, 0x4e, 0xb9, 0x20, 0x79, 0xcb, 0xeb,
- 0xe8, 0xb4, 0x6d, 0xff, 0x02, 0x2b, 0x32, 0x3b, 0xb9, 0x13, 0x28, 0xea, 0x72, 0x05, 0xeb, 0x99,
- 0xdb, 0xeb, 0xd6, 0xd7, 0xdd, 0xee, 0xb4, 0xc9, 0xef, 0x75, 0xbc, 0x06, 0x28, 0xf6, 0x89, 0xa1,
- 0x82, 0xc8, 0xf4, 0x71, 0x1a, 0x1c, 0xa9, 0xcc, 0x99, 0xc7, 0x0b, 0x98, 0x6f, 0x39, 0x95, 0xfa,
- 0xbe, 0x84, 0x68, 0x51, 0x28, 0x59, 0x6e, 0xda, 0x60, 0xbf, 0x65, 0x96, 0x27, 0x44, 0x82, 0xa5,
- 0xb8, 0xe5, 0x7e, 0x3e, 0xfb, 0x66, 0x44, 0xb2, 0x26, 0xb3, 0x01, 0x43, 0x92, 0xa9, 0xdf, 0x4d,
- 0xe7, 0xa7, 0x4a, 0xf7, 0xef, 0xab, 0x73, 0xdf, 0x16, 0x0d, 0xd2, 0x08, 0x60, 0x8b, 0x9e, 0xfe,
- 0x25, 0x44, 0x7c, 0xac, 0x80, 0x52, 0xdd, 0xd8, 0x82, 0x4a, 0x92, 0xa5, 0xb0, 0x83, 0xe5, 0x55,
- 0x8b, 0xba, 0xc5, 0x16, 0x24, 0xa3, 0xc2, 0x40, 0x70, 0xd5, 0x95, 0xaf, 0xc8, 0x5a, 0xbd, 0x75,
- 0x3b, 0x62, 0x32, 0xbc, 0x99, 0x91, 0x5f, 0xd3, 0x1f, 0x76, 0xa5, 0xa2, 0x94, 0x5c, 0x0f, 0x9b,
- 0x5a, 0xf2, 0x29, 0x70, 0x4f, 0x0c, 0x08, 0x31, 0x55, 0xb4, 0x85, 0x15, 0xfc, 0x58, 0xd3, 0x2f,
- 0xc7, 0x53, 0x2b, 0xe2, 0x34, 0x38, 0x91, 0x5b, 0xf1, 0x4d, 0x16, 0xf3, 0xde, 0x72, 0xe9, 0x37,
- 0xef, 0x9a, 0xc3, 0x63, 0xa9, 0xff, 0xaa, 0xfe, 0x5f, 0x1d, 0xe3, 0x46, 0xae, 0x24, 0xf3, 0x5d,
- 0x32, 0x10, 0x03, 0xdb, 0xa7, 0x2e, 0x34, 0x5f, 0xf6, 0x64, 0x3b, 0x95, 0x33, 0x3f, 0x27, 0x14,
- 0x6c, 0x1d, 0x8f, 0xe1, 0xcb, 0x08, 0xb1, 0x9f, 0x66, 0xd8, 0x47, 0xa7, 0xa8, 0xd1, 0x23, 0x8b,
- 0x8e, 0x0a, 0xd8, 0xaf, 0x7f, 0x62, 0xfd, 0x1c, 0x15, 0xdf, 0xc3, 0xf1, 0xc6, 0x20, 0x2f, 0xe9,
- 0x94, 0xd3, 0x33, 0xf5, 0x45, 0x8b, 0xf2, 0xe6, 0x4d, 0xeb, 0x0d, 0xd1, 0x85, 0x49, 0x12, 0x97,
- 0x93, 0xfd, 0x9d, 0x69, 0xee, 0x5f, 0x6a, 0x23, 0xab, 0xe5, 0xc6, 0x7d, 0x59, 0x68, 0x0a, 0x53,
- 0xa3, 0x73, 0x2d, 0x97, 0xb9, 0x64, 0xf9, 0xe5, 0xde, 0x85, 0x60, 0x1a, 0xb8, 0x0c, 0xa7, 0x1f,
- 0x67, 0xf1, 0x0d, 0xa3, 0x05, 0xa2, 0x7d, 0x8a, 0x0c, 0xce, 0x44, 0x62, 0xdd, 0xe9, 0x81, 0x5c,
- 0x46, 0x4a, 0xd4, 0x45, 0xa6, 0xda, 0x2d, 0xa3, 0x4b, 0x8c, 0x2f, 0xe0, 0x0a, 0xdc, 0xb3, 0xb9,
- 0x9d, 0xa1, 0x02, 0x92, 0x7b, 0x34, 0x99, 0x6a, 0xa4, 0xf9, 0x93, 0xe6, 0x22, 0x2a, 0x3a, 0x18,
- 0xb9, 0xaa, 0xc6, 0xcd, 0x83, 0x8d, 0xf6, 0x1f, 0x86, 0xb1, 0xae, 0x3a, 0xfb, 0x65, 0x9a, 0x61,
- 0x73, 0x74, 0x79, 0x02, 0xaa, 0x20, 0x81, 0x39, 0x5b, 0xe6, 0xdf, 0xd9, 0xe5, 0xc2, 0x8c, 0x69,
- 0xdf, 0x14, 0x73, 0x9d, 0xfe, 0xc4, 0x39, 0x38, 0x2a, 0x7d, 0x45, 0x21, 0x4f, 0x40, 0x5e, 0x11,
- 0xe5, 0x39, 0xf9, 0xd2, 0x1f, 0xbe, 0xd4, 0x46, 0x95, 0x09, 0x4f, 0xfa, 0xb2, 0xd0, 0x14, 0xa6,
- 0x26, 0x95, 0x77, 0x7a, 0x08, 0xac, 0xc8, 0xec, 0xa1, 0x4c, 0xa0, 0x2e, 0x0b, 0x14, 0x2a, 0x21,
- 0xde, 0x5b, 0xcb, 0x6e, 0x86, 0x2f, 0x8b, 0x95, 0x8a, 0x7f, 0xea, 0x58, 0x26, 0x8c, 0x1b, 0x3d,
- 0x80, 0x56, 0x47, 0x54, 0xea, 0x09, 0x0e, 0x55, 0x1a, 0xc3, 0x96, 0x6a, 0xbd, 0x62, 0x1f, 0xa2,
- 0xdd, 0x8a, 0xc0, 0xb8, 0x0e, 0xd1, 0x9e, 0xa1, 0xa9, 0x79, 0xd8, 0xd3, 0x9d, 0x1b, 0xd4, 0x49,
- 0x60, 0xdf, 0xa3, 0x3f, 0xae, 0x76, 0xe5, 0x4f, 0xea, 0xc0, 0x8f, 0xce, 0x01, 0xc8, 0x99, 0x98,
- 0xc5, 0xcd, 0x98, 0xc7, 0xc4, 0x2d, 0x36, 0xc2, 0x72, 0x49, 0x8b, 0x01, 0x0c, 0x29, 0x63, 0x6f,
- 0x50, 0x51, 0x13, 0xc1, 0xf9, 0x4d, 0x76, 0x89, 0x9f, 0xa0, 0x29, 0xa9, 0xe0, 0xac, 0x34, 0xd4,
- 0xbb, 0x34, 0x75, 0xe8, 0x73, 0x98, 0x51, 0x86, 0x05, 0xb5, 0x33, 0xc8, 0x29, 0x3e, 0x10, 0x39,
- 0xb7, 0xf6, 0x59, 0x36, 0x16, 0xe6, 0x05, 0x56, 0x89, 0xad, 0xfb, 0xa1, 0x80, 0x27, 0xaa, 0x2a,
- 0x0d, 0x8d, 0x94, 0x2d, 0x1d, 0x95, 0xe6, 0x7d, 0x2c, 0x1a, 0x67, 0x10, 0xc0, 0xd5, 0xff, 0x3f,
- 0x22, 0x6a, 0xd2, 0x30, 0x2b, 0x86, 0x45, 0x1d, 0x64, 0x44, 0x59, 0x09, 0x6c, 0xa2, 0xfd, 0x91,
- 0xf0, 0xf3, 0x35, 0x80, 0xc8, 0xd7, 0x9a, 0x58, 0x62, 0x23, 0x7b, 0x38, 0xe3, 0x37, 0x5c, 0xbf,
- 0x8a, 0xf5, 0x7d, 0xe5, 0x5c, 0x48, 0x70, 0xed, 0xd0, 0xd7, 0x3a, 0xd6, 0xa1, 0x96, 0xf8, 0x59,
- 0x98, 0x11, 0x1f, 0x2b, 0x20, 0xf5, 0xa6, 0x36, 0xc1, 0xf3, 0xc5, 0xb8, 0x2c, 0x50, 0xa8, 0x84,
- 0x3f, 0x9d, 0x97, 0xf6, 0xba, 0xbb, 0xd2, 0x22, 0xda, 0x7e, 0x5c, 0x85, 0xf3, 0xea, 0xd8, 0x2b,
- 0xd9, 0x75, 0x65, 0xf2, 0x2d, 0xfb, 0x13, 0x50, 0x6c, 0x71, 0x21, 0xf4, 0xfa, 0xad, 0x03, 0xf9,
- 0x81, 0x19, 0xff, 0xa7, 0x92, 0xe2, 0xbc, 0xf8, 0xba, 0xc1, 0x39, 0x13, 0xd4, 0xae, 0x5a, 0x8e,
- 0x3d, 0x03, 0x24, 0xd3, 0x4a, 0xae, 0x75, 0xbb, 0x59, 0x7a, 0xc1, 0x77, 0x21, 0xb1, 0x52, 0x73,
- 0x9e, 0x70, 0x09, 0x44, 0xf3, 0xca, 0x8c, 0x5e, 0x87, 0xff, 0xa1, 0x6d, 0x99, 0xbd, 0xf5, 0x6c,
- 0x09, 0x72, 0x31, 0x67, 0x3e, 0xbf, 0x6b, 0x8c, 0xe9, 0x12, 0x9e, 0x37, 0xa7, 0x63, 0x28, 0x8f,
- 0xd8, 0x3a, 0xdd, 0x01, 0x55, 0x10, 0xa1, 0xfd, 0xcc, 0x73, 0x8e, 0x8d, 0x93, 0x61, 0x46, 0xd5,
- 0x77, 0x8b, 0xdc, 0x48, 0x89, 0x0a, 0x0c, 0xc8, 0x9e, 0xee, 0x26, 0xfe, 0x82, 0x74, 0x5b, 0xd9,
- 0x6b, 0x33, 0x21, 0x7d, 0x60, 0xdc, 0x29, 0x5a, 0x80, 0xd6, 0x8c, 0x0b, 0x74, 0xf0, 0x3b, 0x4f,
- 0xe1, 0xc6, 0x5c, 0x98, 0x3c, 0x94, 0x59, 0xb7, 0x50, 0x01, 0xb6, 0xdd, 0xd5, 0x66, 0xc3, 0x16,
- 0xad, 0x2f, 0xb2, 0x6c, 0x2c, 0x0f, 0x0a, 0xac, 0xd1, 0x99, 0x35, 0x81, 0xc3, 0x4e, 0x97, 0x54,
- 0xe0, 0x89, 0xe4, 0x6b, 0x44, 0x7f, 0xeb, 0x1a, 0xf0, 0x03, 0x19, 0xa4, 0xbc, 0xaa, 0x86, 0x3a,
- 0x66, 0xbe, 0xb5, 0x50, 0x7d, 0x49, 0xcf, 0x27, 0xac, 0xcc, 0xeb, 0x1b, 0xb4, 0x25, 0xc4, 0x70,
- 0xf8, 0xce, 0xbc, 0x14, 0x8e, 0x83, 0x43, 0x79, 0x2b, 0x33, 0x4a, 0x76, 0x2d, 0x98, 0x31, 0x1c,
- 0x76, 0xc4, 0x64, 0xbb, 0xf1, 0xe1, 0xbe, 0x65, 0x3e, 0xec, 0x89, 0x87, 0xeb, 0xb8, 0x1e, 0xf5,
- 0x43, 0xfa, 0xc9, 0xfc, 0xfd, 0x1b, 0x12, 0xff, 0x2e, 0x86, 0x79, 0xbe, 0x04, 0xa6, 0x21, 0x25,
- 0x72, 0x3b, 0xc1, 0xf1, 0xd2, 0xcb, 0x33, 0x94, 0xfb, 0xe4, 0x70, 0xa0, 0x8c, 0x0e, 0xc9, 0x45,
- 0xf7, 0xdd, 0x9b, 0x1c, 0x63, 0x03, 0x02, 0x9d, 0x84, 0x2d, 0xb0, 0x94, 0x3f, 0x16, 0x44, 0x7b,
- 0x4e, 0x77, 0x5d, 0xd1, 0xe0, 0x8e, 0xf4, 0x82, 0x02, 0x9c, 0x1e, 0xae, 0xc4, 0x73, 0xde, 0x1a,
- 0xdc, 0xc5, 0x78, 0x4b, 0x76, 0x3a, 0x2c, 0x0c, 0x09, 0x7b, 0x77, 0xaa, 0xf4, 0xd7, 0x91, 0x65,
- 0x48, 0x16, 0x4b, 0xbe, 0x33, 0xb1, 0xde, 0xea, 0x44, 0x90, 0x7a, 0x7b, 0x71, 0x9e, 0x83, 0xf2,
- 0xda, 0xa4, 0x6e, 0x24, 0xa5, 0x05, 0x06, 0x64, 0x4f, 0x77, 0x13, 0x7f, 0x41, 0x3a, 0xcc, 0x8d,
- 0x69, 0xad, 0x92, 0x58, 0x90, 0xc9, 0x8e, 0xc3, 0x03, 0xd2, 0x11, 0xf9, 0xa6, 0xab, 0xb1, 0x17,
- 0xb0, 0xd8, 0xf7, 0xaa, 0xbd, 0x32, 0x9d, 0x93, 0x6f, 0xa3, 0x30, 0x0d, 0x5c, 0x06, 0xb2, 0xee,
- 0xd5, 0xb7, 0x49, 0x2c, 0x48, 0x85, 0x47, 0x80, 0xe0, 0x69, 0xe9, 0x9d, 0x53, 0xb4, 0xb9, 0xea,
- 0xf6, 0x92, 0x23, 0xef, 0x1b, 0xe8, 0xb0, 0x30, 0x24, 0x2f, 0x1f, 0xed, 0x56, 0xda, 0x01, 0x57,
- 0x7b, 0x49, 0xf0, 0x96, 0xec, 0x74, 0x58, 0x18, 0x12, 0xf6, 0xee, 0x97, 0x2b, 0x6d, 0xe1, 0xca,
- 0x41, 0x64, 0x7a, 0xd9, 0x0d, 0x0e, 0xb5, 0x66, 0xad, 0x82, 0xe4, 0x4c, 0xd6, 0xfd, 0xab, 0x7d,
- 0xcb, 0x91, 0x07, 0x3c, 0x51, 0x46, 0xc5, 0x8b, 0x7d, 0x55, 0xde, 0x9a, 0x77, 0x6b, 0x53, 0x24,
- 0x95, 0x9c, 0x8b, 0x06, 0x3d, 0x60, 0x40, 0x4b, 0xed, 0xe9, 0xa2, 0xa8, 0xec, 0x85, 0x57, 0xbb,
- 0xaa, 0x01, 0x1c, 0xf0, 0x87, 0xdb, 0x92, 0x69, 0x37, 0x97, 0xfe, 0x2d, 0x1f, 0x6f, 0x8f, 0x90,
- 0xe6, 0xe8, 0xf2, 0x04, 0x97, 0x40, 0xc1, 0x72, 0xb6, 0x0f, 0x7d, 0x71, 0x09, 0x47, 0xdb, 0xd2,
- 0x37, 0xa0, 0x1e, 0x62, 0xfc, 0xef, 0x0b, 0x03, 0x93, 0x6e, 0x6d, 0xcb, 0x3d, 0x45, 0xb5, 0x88,
- 0x21, 0xbb, 0xd9, 0xe6, 0xa3, 0x78, 0x50, 0x29, 0x47, 0x42, 0x6b, 0x82, 0xd7, 0x35, 0x32, 0xe5,
- 0x42, 0xb5, 0x71, 0x0f, 0x85, 0xf0, 0xa0, 0x52, 0x8e, 0x84, 0xd6, 0xc7, 0x6d, 0x6a, 0x64, 0x09,
- 0xd7, 0x29, 0xfa, 0x09, 0xb8, 0x90, 0xe0, 0x19, 0x63, 0x6d, 0x74, 0x6f, 0x81, 0xef, 0x33, 0xb2,
- 0xc2, 0xe3, 0x36, 0x5b, 0x6f, 0xf9, 0xae, 0x07, 0x94, 0x47, 0x40, 0xad, 0xd0, 0x08, 0x7b, 0xab,
- 0x74, 0x5a, 0xd7, 0x9e, 0x01, 0xf4, 0x19, 0xfc, 0xbd, 0xe8, 0x14, 0x75, 0x39, 0xe3, 0x94, 0xad,
- 0xe2, 0x17, 0x57, 0x4e, 0xb4, 0x6a, 0x4c, 0x83, 0x73, 0x07, 0x84, 0x56, 0x6e, 0xf1, 0x0c, 0x62,
- 0x91, 0x63, 0x2e, 0x4c, 0x1e, 0x4a, 0xcd, 0xba, 0x28, 0xe1, 0x5b, 0x8f, 0x8b, 0x33, 0x80, 0x0b,
- 0x23, 0x25, 0x6a, 0xc3, 0x53, 0x6d, 0xf7, 0xb0, 0xc4, 0x46, 0xf6, 0x70, 0x05, 0x6e, 0xb8, 0xbd,
- 0xc0, 0x7d, 0x85, 0x7e, 0x9f, 0xec, 0x09, 0x9e, 0x17, 0x43, 0xdd, 0x5f, 0x02, 0x53, 0xf1, 0xf3,
- 0x64, 0x20, 0x06, 0x75, 0x8d, 0x5c, 0x68, 0xbe, 0x2f, 0xc8, 0x76, 0xe9, 0x66, 0x7e, 0x4e, 0x28,
- 0x0f, 0x13, 0x27, 0x08, 0xed, 0x80, 0x41, 0xe4, 0xaf, 0x1e, 0xfa, 0xe2, 0x12, 0x8e, 0x75, 0x67,
- 0x63, 0x0e, 0xa8, 0xe9, 0x26, 0x88, 0xf0, 0x7b, 0xc9, 0xc6, 0xbd, 0x45, 0xba, 0x5f, 0x56, 0xec,
- 0xa8, 0x9f, 0xaf, 0xd5, 0x77, 0xce, 0x35, 0xf0, 0xb4, 0x93, 0x63, 0xdf, 0xcd, 0x34, 0x05, 0xc8,
- 0x55, 0xe1, 0x0e, 0x78, 0xa2, 0x8c, 0x49, 0xd5, 0xfa, 0xaa, 0x7f, 0xf7, 0xee, 0xd6, 0xa6, 0x48,
- 0xbd, 0x55, 0x63, 0x87, 0xa0, 0xa7, 0x7b, 0xee, 0x43, 0xb9, 0x57, 0x1d, 0x9c, 0xd3, 0x4d, 0xd1,
- 0x9a, 0x8f, 0xac, 0x0e, 0xd0, 0xe0, 0x01, 0xaf, 0x42, 0xf7, 0x58, 0x4a, 0xfe, 0x0b, 0x22, 0xdc,
- 0x03, 0xd1, 0x0b, 0xd6, 0x88, 0xfe, 0x15, 0x34, 0x23, 0x06, 0x32, 0x8b, 0xbb, 0x97, 0xcf, 0x74,
- 0xc8, 0x40, 0x0c, 0xea, 0xd9, 0xb8, 0xd0, 0xbf, 0x5e, 0x53, 0xec, 0x11, 0xcc, 0xfc, 0x9c, 0x50,
- 0xc4, 0x82, 0x20, 0x34, 0xbc, 0xc6, 0x84, 0x6f, 0xd2, 0x4b, 0x24, 0x78, 0x65, 0xe5, 0x26, 0x43,
- 0x6d, 0x52, 0x37, 0x12, 0xb3, 0xe3, 0x03, 0x32, 0xc6, 0xda, 0xe8, 0xde, 0xc1, 0x1d, 0x66, 0xa7,
- 0x92, 0xb2, 0x25, 0x9a, 0x96, 0xb4, 0xd8, 0x8e, 0x0b, 0xe7, 0x69, 0x04, 0x30, 0xa4, 0x4f, 0x7f,
- 0x49, 0x59, 0xf3, 0x4d, 0x4b, 0x5a, 0x6c, 0x47, 0xe4, 0x92, 0xd5, 0x02, 0x18, 0x52, 0xc6, 0xde,
- 0x9f, 0x3f, 0xb1, 0xb7, 0x8b, 0x21, 0x3e, 0xf3, 0x27, 0xfd, 0x0e, 0x14, 0xf0, 0x71, 0xb0, 0x40,
- 0x44, 0xd4, 0x67, 0x60, 0x56, 0xcf, 0x8a, 0x3a, 0xc8, 0x88, 0xb2, 0x12, 0xd8, 0x87, 0x39, 0xe1,
- 0x2d, 0x79, 0xf5, 0x38, 0xc6, 0x06, 0x04, 0xf9, 0xcb, 0x5a, 0xa3, 0xeb, 0x7e, 0x2c, 0x88, 0xf6,
- 0x2f, 0xe7, 0x46, 0x1d, 0x36, 0x13, 0xa3, 0x60, 0x48, 0x5e, 0x3e, 0x19, 0xac, 0x77, 0x02, 0xae,
- 0x36, 0xef, 0xa6, 0x91, 0x84, 0x04, 0xb9, 0xae, 0x33, 0x6c, 0xc2, 0xb2, 0x54, 0x89, 0xf0, 0xa4,
- 0x15, 0xca, 0xcc, 0x52, 0xd7, 0x69, 0x4e, 0x1e, 0xf7, 0x2a, 0x34, 0xc2, 0x51, 0xe7, 0x48, 0x19,
- 0x18, 0x47, 0x58, 0x7f, 0xca, 0xfc, 0xa8, 0x63, 0xdb, 0x30, 0x53, 0xd2, 0x91, 0x32, 0xb7, 0x26,
- 0x70, 0xa5, 0x72, 0xd4, 0x22, 0xde, 0x94, 0x0d, 0x78, 0xe0, 0xed, 0x52, 0x5e, 0x55, 0x43, 0x1d,
- 0xfe, 0xaf, 0xaa, 0x7b, 0x5d, 0xbc, 0x69, 0x11, 0x6d, 0x3f, 0x2e, 0xa3, 0x98, 0x75, 0x6c, 0xf4,
- 0x2e, 0xa8, 0xfe, 0xee, 0x4e, 0xf8, 0x11, 0xcd, 0xe8, 0x5c, 0x91, 0x60, 0xc5, 0xbb, 0x47, 0x82,
- 0x5c, 0x93, 0x3f, 0x1f, 0x9c, 0x33, 0x22, 0x59, 0x13, 0xb8, 0xe1, 0xc0, 0x49, 0xb5, 0x8e, 0xc7,
- 0xa1, 0xed, 0x9e, 0xb2, 0x49, 0x71, 0x5e, 0x7c, 0x5d, 0x81, 0xfd, 0xe8, 0x6a, 0x57, 0x2d, 0x47,
- 0xa6, 0xc3, 0x30, 0x2e, 0xe2, 0xa5, 0xc6, 0xb9, 0xbb, 0x8f, 0x36, 0x44, 0xb6, 0x76, 0x35, 0x83,
- 0xea, 0x2a, 0xde, 0xda, 0xf2, 0x3e, 0x95, 0xa2, 0x3a, 0x17, 0xb5, 0x18, 0xa0, 0x5e, 0x61, 0xc1,
- 0x1b, 0x96, 0x53, 0xa9, 0x42, 0x02, 0xbd, 0x57, 0xf8, 0x36, 0x61, 0x59, 0x2a, 0xa5, 0x78, 0x52,
- 0x90, 0x2c, 0x96, 0xbf, 0x66, 0xa1, 0x7f, 0x17, 0x88, 0xe3, 0xf4, 0xf6, 0xe2, 0xff, 0xc5, 0x27,
- 0xa4, 0x5d, 0x83, 0x0b, 0x12, 0xb0, 0x61, 0x20, 0x38, 0x8b, 0xab, 0xb6, 0x64, 0x2d, 0xbf, 0xdb,
- 0x68, 0xe2, 0x2a, 0xab, 0xe8, 0x22, 0x3c, 0x6e, 0xa3, 0xd0, 0xbe, 0x80, 0xcf, 0x67, 0xf4, 0x3b,
- 0x57, 0x7f, 0xbd, 0x5d, 0x52, 0x99, 0xee, 0x4c, 0x79, 0xae, 0xe2, 0x05, 0x3c, 0x8d, 0x2c, 0x10,
- 0xfd, 0x7e, 0xa1, 0xad, 0xd5, 0x42, 0x7c, 0x25, 0x4e, 0x39, 0x1c, 0x28, 0x23, 0xe2, 0xa3, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x35, 0x3e, 0xad, 0x47, 0x0c, 0xfa, 0xac, 0x9a, 0x10, 0x6a, 0xf0, 0x39, 0xef, 0x1e, 0x3f, 0xd0,
- 0x4b, 0xc7, 0x40, 0x68, 0xbb, 0x4f, 0xcb, 0xde, 0x67, 0x96, 0x48, 0xf0, 0xca, 0x09, 0x4c, 0x86,
- 0x47, 0x05, 0x6c, 0xb6, 0xde, 0x31, 0x9f, 0x0e, 0xeb, 0x8e, 0x80, 0x99, 0x63, 0x10, 0xf6, 0x95,
- 0xa2, 0x3c, 0x95, 0x64, 0xc1, 0x8f, 0x4b, 0x48, 0x7e, 0x87, 0xcf, 0x63, 0xd1, 0xc0, 0xe2, 0x33,
- 0x83, 0x87, 0x4c, 0x82, 0x62, 0xf7, 0x1b, 0x61, 0x39, 0xc5, 0xa4, 0xe1, 0x06, 0xf5, 0xd0, 0xd6,
- 0x7c, 0x67, 0x5e, 0x0a, 0x47, 0xa0, 0xc0, 0xdd, 0xf4, 0xf8, 0x25, 0x3b, 0xf7, 0x4c, 0xf9, 0x0e,
- 0xd2, 0x99, 0xe7, 0xb0, 0xe3, 0x51, 0xdf, 0x45, 0x06, 0x67, 0x22, 0x31, 0x8f, 0x95, 0xa1, 0x2e,
- 0x13, 0xab, 0xda, 0x3d, 0x04, 0x56, 0x64, 0x76, 0xb1, 0x26, 0x50, 0x17, 0xe4, 0x0a, 0x15, 0xf1,
- 0x7e, 0xf9, 0xed, 0x2f, 0xb7, 0xb5, 0x67, 0x44, 0x77, 0xfc, 0xb8, 0xc9, 0x25, 0x17, 0x73, 0x56,
- 0x3e, 0xd2, 0x2f, 0x05, 0xc2, 0x50, 0x60, 0x8f, 0x7a, 0x7c, 0xf3, 0xfc, 0x9a, 0x26, 0x9d, 0x07,
- 0x7a, 0x06, 0x48, 0x65, 0x94, 0x9f, 0xea, 0xb5, 0xb2, 0xf4, 0x41, 0xee, 0x42, 0xa1, 0xa4, 0xe6,
- 0x84, 0xa9, 0xe2, 0x1e, 0xc9, 0x23, 0x83, 0xa4, 0xdf, 0xcb, 0x6f, 0x4d, 0xda, 0xd4, 0xc8, 0x12,
- 0x16, 0x1b, 0xc7, 0x84, 0x5f, 0x97, 0x5b, 0x2a, 0xd4, 0x2c, 0x06, 0x49, 0xea, 0x70, 0x87, 0x6d,
- 0xd1, 0x48, 0xec, 0x66, 0x6b, 0xaf, 0xca, 0x71, 0x25, 0x61, 0x10, 0xba, 0x34, 0x02, 0x6e, 0x5a,
- 0xb1, 0x97, 0x4f, 0x59, 0xc5, 0xd9, 0x2f, 0x3e, 0xcf, 0xa1, 0x9f, 0x74, 0x35, 0xca, 0xf7, 0xc2,
- 0x0c, 0xc2, 0x2c, 0xde, 0x65, 0x7e, 0x54, 0xd0, 0x8c, 0x18, 0xc8, 0x69, 0xa9, 0x19, 0xba, 0x13,
- 0x29, 0x86, 0x50, 0x72, 0xe5, 0x2c, 0x89, 0x08, 0x0e, 0x52, 0x5a, 0xcc, 0x19, 0x9a, 0x5f, 0x46,
- 0x06, 0x61, 0x16, 0x6f, 0xd3, 0x3f, 0x2a, 0x68, 0x46, 0x0c, 0x64, 0xd5, 0xb5, 0xed, 0x5d, 0xe8,
- 0x2c, 0x36, 0x4d, 0xcb, 0xbe, 0xed, 0xb6, 0x54, 0x6b, 0x58, 0x0c, 0x92, 0x17, 0xe0, 0xcd, 0xda,
- 0x2a, 0x57, 0x5b, 0xa4, 0x6d, 0xd2, 0x9c, 0x3c, 0x2d, 0x54, 0x68, 0x47, 0xa2, 0x0d, 0x90, 0x32,
- 0xcd, 0xf0, 0x11, 0x53, 0x82, 0x79, 0xef, 0xe3, 0x3b, 0x59, 0xba, 0x4f, 0xc2, 0x86, 0x0e, 0xcc,
- 0x07, 0x2e, 0xae, 0x9c, 0xab, 0xd4, 0x98, 0xc5, 0xe6, 0x0e, 0xcb, 0xac, 0xdc, 0x21, 0x18, 0xc4,
- 0x10, 0x7a, 0xd1, 0xeb, 0x8c, 0xa8, 0x71, 0x42, 0x92, 0x20, 0x62, 0x9c, 0x5f, 0x9d, 0xda, 0x85,
- 0x08, 0x3d, 0x89, 0x94, 0x46, 0x54, 0xd9, 0x21, 0x49, 0x10, 0x31, 0x4e, 0xce, 0xaf, 0x6d, 0xa3,
- 0xf9, 0x81, 0x04, 0xe7, 0xf6, 0x68, 0xf1, 0xd4, 0x8b, 0x31, 0xe5, 0x0f, 0x44, 0x54, 0x74, 0x30,
- 0x11, 0x35, 0x69, 0x18, 0xf4, 0x43, 0xc3, 0xef, 0x32, 0x22, 0xcd, 0xe5, 0x36, 0x51, 0x9f, 0xa9,
- 0x28, 0xc9, 0xe8, 0x81, 0x9d, 0xc7, 0x3b, 0xa5, 0xae, 0x50, 0xf5, 0xb5, 0x70, 0x56, 0x1a, 0x6a,
- 0xeb, 0x65, 0x66, 0x29, 0x8a, 0xd5, 0x27, 0x0f, 0x9a, 0x15, 0x1a, 0x61, 0xc9, 0x92, 0x24, 0xed,
- 0x87, 0x78, 0xe9, 0xc8, 0x41, 0xdd, 0x96, 0x90, 0xfc, 0xcd, 0x5d, 0xc6, 0x61, 0x43, 0x07, 0x66,
- 0xf1, 0xbc, 0x8d, 0x73, 0xb0, 0x3c, 0x28, 0xf5, 0xc2, 0x21, 0xd4, 0x41, 0x8a, 0xfb, 0x19, 0x93,
- 0xc6, 0x1c, 0x93, 0x11, 0x4c, 0xd3, 0x23, 0xf6, 0x51, 0x4f, 0xb9, 0x8a, 0xb7, 0xbe, 0xac, 0x1b,
- 0xb5, 0x68, 0xea, 0x13, 0xe6, 0xf3, 0xa2, 0xcf, 0x0a, 0xa9, 0x66, 0x53, 0x52, 0x7c, 0x20, 0x72,
- 0x6f, 0xcc, 0x84, 0x37, 0x43, 0xf6, 0xa4, 0xab, 0x45, 0xde, 0x75, 0x2c, 0x13, 0x46, 0xec, 0xff,
- 0xcc, 0xbf, 0xa9, 0xa0, 0xfa, 0x92, 0x5d, 0x4e, 0x9b, 0x5b, 0x15, 0x36, 0xab, 0x4a, 0x4b, 0xe0,
- 0x34, 0x71, 0x15, 0xb4, 0x74, 0x11, 0x1e, 0x37, 0xb0, 0x68, 0x5f, 0x40, 0x86, 0xd2, 0x7a, 0xfc,
- 0x1c, 0xb8, 0xfd, 0x35, 0xe9, 0xd6, 0x25, 0x92, 0x1e, 0x38, 0xaa, 0xf5, 0xf6, 0x84, 0x60, 0x96,
- 0x4d, 0xa6, 0x56, 0x07, 0x68, 0x70, 0xe1, 0xb6, 0x21, 0x9a, 0x2c, 0x25, 0x7f, 0xe4, 0x11, 0x6e,
- 0xf3, 0x22, 0x3e, 0x56, 0x40, 0x29, 0x8f, 0x6c, 0x41, 0x25, 0x49, 0xb3, 0x58, 0xa0, 0x93, 0xcb,
- 0x96, 0x4d, 0x80, 0xd0, 0xb5, 0x9e, 0x55, 0x7f, 0xce, 0xef, 0x90, 0x23, 0x57, 0x12, 0x98, 0xcf,
- 0x05, 0xb0, 0x1d, 0xb9, 0x5b, 0xc1, 0x3f, 0x5c, 0x65, 0x0a, 0x56, 0x5e, 0x0e, 0x7a, 0x92, 0x9c,
- 0x61, 0x90, 0x1b, 0xcc, 0xd6, 0x9d, 0x57, 0xe2, 0x4a, 0xc2, 0x20, 0xb7, 0x68, 0x04, 0xdc, 0xb4,
- 0x59, 0x23, 0x22, 0xa6, 0xc7, 0xf2, 0x1d, 0x05, 0x76, 0xb2, 0xb7, 0x9e, 0x47, 0xcf, 0x1c, 0x5b,
- 0x86, 0x37, 0x51, 0x3b, 0x39, 0x36, 0x24, 0x3d, 0x5c, 0xcf, 0xf2, 0xbf, 0x08, 0x8f, 0x42, 0x4a,
- 0x88, 0x6b, 0xce, 0xc0, 0xac, 0x5d, 0xd7, 0x74, 0x53, 0xd3, 0xa7, 0x24, 0x73, 0xcd, 0x72, 0x01,
- 0xb3, 0x09, 0xfc, 0x7c, 0x35, 0xcc, 0x88, 0xa7, 0x4c, 0xa5, 0x02, 0x86, 0xe7, 0x91, 0x7d, 0x9a,
- 0x89, 0x24, 0x76, 0x33, 0xd4, 0xb6, 0x65, 0xd9, 0xf3, 0xd1, 0x08, 0x5d, 0x1a, 0x01, 0x37, 0x2d,
- 0xfc, 0x31, 0x19, 0x5e, 0xad, 0xa9, 0xce, 0x88, 0xee, 0x3b, 0xb3, 0x51, 0x4a, 0x2e, 0xe6, 0xac,
- 0xab, 0x4e, 0xa4, 0x03, 0xff, 0x30, 0x20, 0xc4, 0x97, 0x95, 0x51, 0x54, 0x76, 0xa3, 0xca, 0xbc,
- 0x53, 0x80, 0x18, 0x17, 0x71, 0xb3, 0x63, 0xbd, 0xbc, 0xa6, 0x1b, 0x22, 0x5b, 0x3b, 0xfb, 0xa0,
- 0xb4, 0x27, 0x52, 0xe0, 0x9e, 0x18, 0x10, 0x62, 0xaa, 0xab, 0xc9, 0x2a, 0x3b, 0xb0, 0x65, 0x5e,
- 0xe3, 0x58, 0xef, 0xbd, 0xcc, 0x81, 0xfe, 0x2e, 0xd3, 0x05, 0x2b, 0x2f, 0x07, 0x3d, 0x49, 0x4e,
- 0xce, 0x21, 0x1a, 0x85, 0x0a, 0x87, 0xfa, 0xd7, 0x18, 0x5f, 0x88, 0xc4, 0x79, 0x11, 0xc1, 0xb8,
- 0x52, 0xcf, 0xa0, 0xe4, 0x09, 0x58, 0xd1, 0x10, 0x1c, 0xa4, 0xb4, 0x5b, 0x32, 0xf7, 0xbe, 0x8c,
- 0x8c, 0x94, 0x6b, 0x8a, 0x8f, 0x77, 0x5a, 0x85, 0x96, 0xdb, 0x5e, 0x03, 0x14, 0x7b, 0xa5, 0xb1,
- 0x3a, 0x2d, 0x8a, 0x4f, 0xe1, 0x7a, 0xed, 0x7e, 0xbf, 0x74, 0x0a, 0xdb, 0xfd, 0x90, 0x4a, 0xb7,
- 0xca, 0xde, 0xbf, 0xcf, 0x29, 0xad, 0x77, 0x26, 0xdd, 0x57, 0x71, 0xe3, 0x1e, 0xa7, 0x16, 0x08,
- 0x54, 0xae, 0xb6, 0x8b, 0xda, 0x67, 0xfb, 0x78, 0x5a, 0xa8, 0xd0, 0x8e, 0x87, 0x1a, 0xe3, 0x64,
- 0xa7, 0x8c, 0x88, 0xdd, 0x9a, 0x4e, 0x74, 0x14, 0x1b, 0x8d, 0x99, 0x3d, 0xdf, 0xba, 0x70, 0xaf,
- 0x99, 0x5e, 0xa7, 0xd8, 0x58, 0x1e, 0x14, 0x9b, 0x61, 0xf1, 0x6a, 0xc1, 0x45, 0x9c, 0xed, 0xa8,
- 0x0a, 0xa3, 0x3a, 0xb1, 0xb6, 0x41, 0x7e, 0xb8, 0xca, 0x14, 0xac, 0xbc, 0x1c, 0xf4, 0xe7, 0xfb,
- 0x40, 0x2b, 0xc2, 0x2a, 0x75, 0xe5, 0x07, 0xcb, 0x0d, 0x80, 0x4b, 0x35, 0xbf, 0x31, 0xee, 0x51,
- 0x02, 0x9e, 0xb3, 0x25, 0xf0, 0x15, 0xa7, 0x99, 0x83, 0x04, 0x9d, 0xf2, 0xd2, 0x5b, 0x8a, 0x58,
- 0x5b, 0xbd, 0x91, 0x83, 0x37, 0xe7, 0xba, 0x9c, 0xf5, 0xb6, 0x2a, 0x6c, 0x95, 0x94, 0x96, 0x03,
- 0xbc, 0x1a, 0xdb, 0x74, 0xd8, 0x4c, 0xc9, 0x43, 0xe3, 0xbb, 0xf8, 0x64, 0xf5, 0x1f, 0x08, 0xfd,
- 0x78, 0x98, 0xfb, 0x40, 0x64, 0x8a, 0x4d, 0x2c, 0x31, 0xf0, 0xdc, 0x1c, 0x90, 0xfa, 0x2e, 0xbe,
- 0x79, 0xd7, 0x43, 0xb3, 0x1c, 0x61, 0xff, 0x81, 0x91, 0xf2, 0x73, 0x65, 0xf9, 0x36, 0x6b, 0x92,
- 0xf5, 0x43, 0x28, 0x39, 0x93, 0x16, 0xa5, 0x04, 0x07, 0x29, 0x2d, 0x66, 0xed, 0x4d, 0xce, 0x23,
- 0xa9, 0xd0, 0x17, 0x26, 0x0f, 0x25, 0x87, 0x5d, 0x14, 0x91, 0xcc, 0xa6, 0xa4, 0xf8, 0x40, 0xe4,
- 0xec, 0x4b, 0xc8, 0xb5, 0x21, 0x01, 0xbf, 0xca, 0x7c, 0x1b, 0xd1, 0xcd, 0x15, 0xb3, 0x3c, 0x29,
- 0x7d, 0x28, 0xe6, 0xf9, 0x3f, 0x4b, 0x72, 0x70, 0x54, 0xfa, 0x8a, 0x42, 0x9e, 0x80, 0xbc, 0x22,
- 0x45, 0x9b, 0xdf, 0x93, 0x2e, 0x24, 0x38, 0x97, 0x68, 0x8a, 0x1d, 0x6b, 0xb1, 0x4b, 0x7c, 0xcd,
- 0x3c, 0x4c, 0x9c, 0x20, 0x32, 0x45, 0xc7, 0x16, 0xf9, 0x78, 0x6e, 0x0e, 0x48, 0x7d, 0x17, 0x5f,
- 0x65, 0x6f, 0xbe, 0x86, 0xf5, 0xb7, 0xda, 0x13, 0x8f, 0xca, 0xd9, 0x90, 0x0f, 0xb2, 0x0b, 0x04,
- 0x01, 0x4f, 0xb8, 0xf3, 0x78, 0xeb, 0xb2, 0xad, 0xa0, 0x02, 0xaf, 0x79, 0x69, 0xcc, 0x45, 0x2c,
- 0x24, 0x0b, 0xc4, 0x5f, 0xf8, 0xb9, 0x6f, 0x75, 0x22, 0x48, 0x3d, 0xdc, 0xd9, 0x4f, 0xa0, 0x79,
- 0x5f, 0x42, 0x34, 0xc9, 0x14, 0xcd, 0x37, 0x6d, 0x30, 0xbe, 0xd3, 0x4b, 0xf2, 0x22, 0x41, 0xb3,
- 0x7f, 0xb6, 0x55, 0xdc, 0xcf, 0x5e, 0xd5, 0xe9, 0xd7, 0xfe, 0x17, 0xb0, 0x4c, 0xdb, 0x36, 0x7a,
- 0x20, 0xf4, 0x61, 0x15, 0xdb, 0x93, 0xe2, 0x84, 0xe7, 0x40, 0xc4, 0xfb, 0xbe, 0xf9, 0x77, 0xc9,
- 0xae, 0xfe, 0xb9, 0xba, 0xa4, 0xf1, 0x1f, 0x98, 0xf2, 0x9f, 0x07, 0x0a, 0x78, 0xd9, 0x58, 0x20,
- 0x5e, 0x0d, 0x8c, 0x3a, 0x6c, 0x26, 0x85, 0xc0, 0x90, 0xbc, 0x7c, 0x32, 0x9b, 0xee, 0x04, 0x9f,
- 0xaf, 0xb1, 0x01, 0x49, 0xdc, 0x1a, 0xad, 0x35, 0x52, 0x9d, 0xa8, 0x73, 0x11, 0x15, 0x1d, 0x0c,
- 0xd0, 0x07, 0x54, 0x95, 0x13, 0x44, 0x78, 0xdc, 0x85, 0x63, 0xbf, 0xc3, 0x5d, 0xce, 0x2b, 0x76,
- 0xb2, 0x46, 0x44, 0x8f, 0x4d, 0x27, 0x3a, 0x0a, 0xec, 0xa7, 0xad, 0xff, 0x8e, 0x5d, 0x38, 0xb6,
- 0x8f, 0x45, 0x60, 0x5c, 0x07, 0x89, 0x4f, 0xb1, 0xb5, 0xdd, 0x6c, 0x88, 0xaf, 0xec, 0x6a, 0xc5,
- 0x27, 0xda, 0xcf, 0x89, 0x70, 0x47, 0x7a, 0x41, 0x01, 0x4e, 0x0f, 0x57, 0x62, 0xd8, 0x6f, 0x0d,
- 0x8d, 0xdb, 0xd3, 0x79, 0xf7, 0x9c, 0xe8, 0x28, 0x36, 0xd9, 0xf1, 0x7a, 0x7d, 0xb7, 0xe0, 0x9d,
- 0x4c, 0xe9, 0xee, 0xf4, 0x10, 0x9b, 0x53, 0x1b, 0x81, 0x98, 0x83, 0x5c, 0x16, 0x28, 0x54, 0x42,
- 0xd4, 0xf8, 0xf1, 0xdf, 0x30, 0x6e, 0xf5, 0x2d, 0x40, 0x6b, 0x46, 0xe4, 0x3a, 0x78, 0xfc, 0xc6,
- 0xfa, 0x50, 0x0f, 0x31, 0x7e, 0x96, 0xe4, 0xe0, 0xa8, 0x37, 0xd7, 0x84, 0xff, 0xc3, 0xbb, 0x44,
- 0xf2, 0x6d, 0x86, 0xa5, 0x38, 0xc2, 0x3d, 0xc1, 0xe1, 0x27, 0xe6, 0xca, 0x31, 0x6c, 0xd6, 0xe7,
- },
- { /* 1 */
- 0x2f, 0x36, 0x58, 0xea, 0xa2, 0x0c, 0x25, 0xcf, 0x7c, 0xd9, 0x9e, 0x49, 0x92, 0xd3, 0x50, 0x36,
- 0x48, 0x33, 0xd6, 0x3a, 0x7e, 0x8c, 0x82, 0xb8, 0xf4, 0x6c, 0x87, 0xe4, 0x0b, 0xa6, 0x9f, 0x33,
- 0x5c, 0x9c, 0xe9, 0x76, 0x65, 0xa2, 0xaf, 0xd9, 0x01, 0x72, 0x0a, 0x54, 0xa8, 0x81, 0x94, 0x9c,
- 0x0c, 0x65, 0x15, 0x85, 0x09, 0x1a, 0x1b, 0x9e, 0x53, 0x0a, 0x7b, 0xd1, 0x61, 0x1d, 0xb8, 0x65,
- 0x3b, 0x99, 0x67, 0xa6, 0xb9, 0x22, 0x08, 0xae, 0x89, 0xc7, 0x13, 0xf9, 0x31, 0xf4, 0x5b, 0x99,
- 0x62, 0x5e, 0xf1, 0xc3, 0xaa, 0x6a, 0x3d, 0xfe, 0x24, 0x53, 0xab, 0x81, 0xc1, 0x0c, 0xbd, 0x5e,
- 0xe7, 0xef, 0x6c, 0x2a, 0x3c, 0xc2, 0x44, 0x6e, 0x67, 0x75, 0x70, 0x59, 0xb2, 0xd6, 0x51, 0xef,
- 0x42, 0x85, 0x28, 0x1c, 0x92, 0x9b, 0x75, 0x69, 0x6f, 0x63, 0x20, 0xbc, 0xbb, 0x54, 0x7b, 0x85,
- 0x61, 0xd6, 0x65, 0x73, 0x39, 0x8d, 0x4b, 0x38, 0x40, 0xb0, 0xc5, 0x24, 0x48, 0x9a, 0x93, 0xd6,
- 0x1a, 0x3a, 0x73, 0xa8, 0xf0, 0x8e, 0xd3, 0x7b, 0x5f, 0x17, 0x03, 0xa7, 0x8d, 0xde, 0x87, 0x3a,
- 0xf9, 0xf6, 0xad, 0x40, 0xcb, 0xfb, 0x9e, 0xde, 0x09, 0x64, 0x5a, 0xb1, 0xa1, 0x03, 0xbe, 0xf6,
- 0x12, 0x7c, 0xd4, 0xef, 0xfe, 0x23, 0xc1, 0x2e, 0x3d, 0x1b, 0x51, 0x39, 0x72, 0xc8, 0x57, 0x7c,
- 0x80, 0xea, 0xe2, 0xfa, 0xe0, 0x42, 0xe3, 0x19, 0xef, 0xc0, 0x69, 0xf4, 0x2b, 0xa3, 0x9e, 0xea,
- 0x82, 0x1a, 0xbb, 0x9b, 0x02, 0xf8, 0x06, 0x9d, 0x16, 0xc3, 0x9c, 0x32, 0x64, 0x47, 0xaa, 0x1a,
- 0x25, 0x80, 0xa6, 0xcc, 0x4e, 0x1b, 0xd2, 0x1e, 0xe7, 0xd6, 0x39, 0x11, 0x22, 0x21, 0xb4, 0x80,
- 0xe2, 0xb4, 0x13, 0x39, 0x4a, 0x28, 0xde, 0xe7, 0xcb, 0x93, 0xc2, 0x75, 0xea, 0xaf, 0x23, 0xb4,
- 0x06, 0xd3, 0xeb, 0xa3, 0xe5, 0x0d, 0xec, 0x4f, 0xc8, 0x05, 0xdc, 0x89, 0xd1, 0xef, 0x5c, 0xd3,
- 0x24, 0xf8, 0x6b, 0x1d, 0x3f, 0x46, 0x41, 0x5c, 0x7a, 0x36, 0xa2, 0x72, 0xe4, 0x53, 0xae, 0xf8,
- 0x40, 0x75, 0x71, 0x7d, 0x70, 0x21, 0x90, 0xed, 0x96, 0x60, 0xd5, 0x7a, 0xf4, 0xb0, 0x4f, 0x75,
- 0x8a, 0x5c, 0x1c, 0xdc, 0x0c, 0x55, 0x14, 0xc8, 0x74, 0xcf, 0xce, 0xac, 0x9b, 0x51, 0x7a, 0x5c,
- 0xd5, 0x48, 0x61, 0x1a, 0xfa, 0x10, 0xcd, 0xd7, 0x11, 0x5e, 0xaa, 0x5d, 0xba, 0x46, 0xc0, 0x48,
- 0x77, 0x89, 0x03, 0x5e, 0xc0, 0x19, 0x83, 0xdd, 0x4c, 0xad, 0xbd, 0x52, 0xa4, 0x59, 0xac, 0x89,
- 0x6c, 0xcb, 0xbd, 0x27, 0x41, 0xca, 0xc3, 0xe4, 0x8e, 0x5a, 0x25, 0x96, 0xef, 0xf5, 0x31, 0xcb,
- 0xec, 0x21, 0x5f, 0xdd, 0xa1, 0x88, 0x20, 0xfd, 0x61, 0x9a, 0x4c, 0x62, 0xc4, 0x56, 0xaf, 0x21,
- 0xda, 0xa5, 0xe0, 0x2f, 0x60, 0xed, 0xa0, 0x8f, 0x26, 0xb7, 0xbf, 0x29, 0x52, 0xcd, 0x56, 0xa5,
- 0xa9, 0x0f, 0x51, 0xb3, 0xa7, 0x43, 0x2a, 0x99, 0x5b, 0x1c, 0x2b, 0x34, 0x68, 0x9f, 0x92, 0x0f,
- 0xd8, 0x55, 0xb9, 0x4e, 0x82, 0x57, 0x45, 0x0b, 0xdf, 0xb4, 0x4a, 0xef, 0x1d, 0x29, 0x62, 0x55,
- 0x74, 0x01, 0x97, 0xee, 0x53, 0xfe, 0xf5, 0x1b, 0x28, 0x4e, 0xd3, 0xf7, 0x2d, 0xcf, 0x82, 0x01,
- 0xb1, 0xc5, 0x7b, 0x7a, 0xb5, 0x77, 0x1c, 0x66, 0xfd, 0x08, 0xdd, 0x55, 0xaa, 0xa5, 0x21, 0xc5,
- 0xc8, 0xd9, 0x34, 0xc0, 0x9e, 0xce, 0x61, 0xa1, 0x1b, 0xac, 0xee, 0x10, 0x20, 0x05, 0x01, 0xd9,
- 0x85, 0xb1, 0x9d, 0xe9, 0x96, 0xa8, 0x79, 0x90, 0x43, 0x26, 0xdb, 0xd8, 0x73, 0xda, 0xec, 0xb1,
- 0xa7, 0x9a, 0x1d, 0x57, 0x4c, 0xe3, 0xd4, 0x83, 0xf1, 0x15, 0xa5, 0x23, 0x46, 0x66, 0x1e, 0x9a,
- 0x92, 0x96, 0x36, 0x15, 0x1e, 0x61, 0x22, 0x37, 0xd2, 0xdb, 0x38, 0xcd, 0x59, 0x6b, 0xc9, 0x96,
- 0xde, 0x86, 0x52, 0xed, 0x67, 0x5a, 0xa9, 0x44, 0x17, 0xb1, 0x96, 0x66, 0xcc, 0xc6, 0x3e, 0x86,
- 0x43, 0xfd, 0xe5, 0xcd, 0xe3, 0xc6, 0xe6, 0x2b, 0xf2, 0x83, 0xbb, 0xdf, 0x7d, 0x26, 0x61, 0xfd,
- 0x38, 0x11, 0xf3, 0x16, 0x2a, 0xc5, 0x7e, 0x68, 0xed, 0x24, 0x7d, 0x5c, 0xb8, 0x62, 0x75, 0x11,
- 0x27, 0x70, 0xff, 0xad, 0xac, 0xa1, 0x37, 0x9a, 0x1e, 0xd5, 0xcc, 0xd7, 0x6d, 0xc5, 0x80, 0x70,
- 0xee, 0xd1, 0x06, 0xbc, 0x43, 0x32, 0xc5, 0x79, 0x98, 0x99, 0xb9, 0xa4, 0x8b, 0xb2, 0x9b, 0xd1,
- 0xd0, 0x13, 0x1e, 0x09, 0x8c, 0xfa, 0x57, 0x5e, 0xbd, 0xb8, 0x18, 0x71, 0xe2, 0x3f, 0xb2, 0x13,
- 0x73, 0xaa, 0xb1, 0x9c, 0xc7, 0xae, 0x8a, 0x16, 0x7d, 0xab, 0x94, 0x1d, 0x3a, 0x52, 0xc4, 0xaa,
- 0xb2, 0x4d, 0xef, 0xca, 0x26, 0x90, 0x6a, 0xa0, 0x99, 0xeb, 0xb3, 0xf0, 0x23, 0x33, 0x0f, 0x4d,
- 0xfb, 0x06, 0xf4, 0x21, 0x29, 0x41, 0x7b, 0x5a, 0xf0, 0x67, 0xaf, 0x77, 0xee, 0xe7, 0x8a, 0x06,
- 0x10, 0x8c, 0x8d, 0x8e, 0x1c, 0x99, 0x24, 0xaa, 0xc4, 0x18, 0xa4, 0xff, 0x3d, 0x2c, 0x63, 0x8c,
- 0xe6, 0x97, 0xa1, 0xfb, 0x4d, 0x9f, 0xd7, 0x2c, 0xfa, 0x95, 0xeb, 0x3a, 0x74, 0xa4, 0x4b, 0x97,
- 0x0b, 0xce, 0x33, 0xf7, 0x9d, 0x4a, 0x64, 0x93, 0x06, 0xef, 0x3c, 0x3b, 0x76, 0x80, 0xfe, 0xce,
- 0x98, 0x20, 0xc8, 0x33, 0xf2, 0x76, 0xd5, 0xe6, 0x49, 0xd4, 0x9f, 0x95, 0xe9, 0x99, 0x2d, 0x20,
- 0xb6, 0x6e, 0x5d, 0x08, 0x21, 0x27, 0x63, 0x6b, 0xa8, 0xed, 0x9a, 0xbf, 0xbd, 0x38, 0x67, 0x6e,
- 0x11, 0xf4, 0x40, 0x5f, 0x6d, 0xc4, 0xb7, 0xe8, 0x59, 0xf8, 0x3f, 0x9c, 0xfb, 0x5e, 0x79, 0xf4,
- 0xbd, 0xa0, 0x6e, 0xff, 0xbc, 0x6d, 0x07, 0xf8, 0xae, 0x02, 0xa6, 0x84, 0xcb, 0xb8, 0x99, 0xa0,
- 0x0f, 0xed, 0x81, 0x35, 0x9a, 0xfd, 0x6d, 0x58, 0x37, 0xe9, 0x15, 0x74, 0xe8, 0x8b, 0x96, 0xed,
- 0xf3, 0x40, 0x53, 0x66, 0x27, 0xec, 0x69, 0x0f, 0x92, 0x6b, 0xfd, 0xe9, 0x11, 0xf1, 0x5a, 0x40,
- 0x5d, 0xe4, 0x24, 0xa7, 0x14, 0xff, 0x3c, 0x9b, 0x9c, 0x92, 0x91, 0x37, 0x6e, 0xf3, 0x8e, 0xe4,
- 0xbf, 0x50, 0x37, 0x9e, 0x5e, 0xd7, 0xe2, 0x7c, 0x57, 0x01, 0x53, 0x42, 0x84, 0x5c, 0xad, 0x50,
- 0x47, 0xde, 0x57, 0x0f, 0xe4, 0x71, 0xef, 0xe0, 0xc3, 0x85, 0x92, 0x90, 0xe3, 0x2d, 0x09, 0xde,
- 0x2e, 0x4e, 0x95, 0x3b, 0xd3, 0x51, 0xb6, 0x8d, 0xe1, 0x39, 0x05, 0x2a, 0x54, 0xa1, 0x4a, 0x4e,
- 0xc1, 0xe7, 0x5e, 0x56, 0xe1, 0x3e, 0xe0, 0xb6, 0xe4, 0x40, 0x27, 0xed, 0x19, 0x61, 0xcb, 0xe7,
- 0xd6, 0xc0, 0xf5, 0xaa, 0x69, 0xf7, 0xbb, 0x11, 0x75, 0xbd, 0xc4, 0xf8, 0x33, 0xd0, 0xee, 0xc0,
- 0x21, 0xa3, 0x14, 0x0e, 0x49, 0xac, 0xdb, 0xd5, 0xd6, 0xd0, 0x10, 0x5e, 0xbc, 0x2a, 0xdc, 0xa3,
- 0x23, 0x53, 0x4d, 0x6f, 0xab, 0x16, 0x3e, 0x51, 0x2f, 0xd3, 0xe5, 0x98, 0xf3, 0xce, 0xe8, 0x53,
- 0xf4, 0xeb, 0x75, 0x14, 0xb3, 0xbc, 0x16, 0x02, 0xc7, 0x8e, 0xba, 0x03, 0x06, 0x6c, 0x1c, 0xeb,
- 0x6e, 0x3b, 0xe4, 0x46, 0xa3, 0x70, 0x26, 0x60, 0x77, 0x59, 0xd0, 0x50, 0xa0, 0x11, 0x05, 0x3b,
- 0x8e, 0x7f, 0xae, 0x1e, 0x0b, 0xe2, 0x1d, 0x03, 0x45, 0xc9, 0xe7, 0xe3, 0x05, 0x5a, 0x12, 0x7f,
- 0xc0, 0x9f, 0x93, 0x87, 0x90, 0x63, 0x73, 0xf4, 0x79, 0xa0, 0xbc, 0x8e, 0xdf, 0x13, 0xd1, 0x9f,
- 0x90, 0x66, 0x6f, 0x74, 0xfc, 0xdb, 0xc7, 0xb3, 0x2b, 0xd8, 0xcd, 0x0b, 0x16, 0x8f, 0xfd, 0x66,
- 0xf5, 0x93, 0xb8, 0xc5, 0xc2, 0xe1, 0x85, 0x40, 0x5a, 0x6e, 0x21, 0x60, 0xc0, 0x1e, 0x06, 0x93,
- 0x5a, 0x4f, 0x02, 0xd5, 0x80, 0xaf, 0x43, 0x96, 0xc9, 0x77, 0xd6, 0xdd, 0x79, 0x6e, 0xc8, 0x4f,
- 0x84, 0xc9, 0x50, 0x38, 0xe7, 0xf5, 0xea, 0xd2, 0xde, 0xc6, 0x40, 0xbb, 0xb5, 0xa8, 0xf6, 0xc9,
- 0x19, 0xb2, 0xe7, 0x18, 0x63, 0x69, 0xa5, 0xbd, 0x3b, 0xf4, 0x6d, 0x02, 0x04, 0x48, 0xa9, 0xb2,
- 0x6d, 0xb3, 0x70, 0xf6, 0x30, 0x97, 0x50, 0xa6, 0x13, 0xba, 0xbe, 0xf5, 0x29, 0x87, 0x2b, 0xb3,
- 0x75, 0x79, 0x5a, 0x3f, 0x22, 0xa3, 0x66, 0x59, 0xb5, 0xae, 0x48, 0x94, 0xeb, 0xbd, 0x98, 0x79,
- 0x5f, 0x14, 0x7d, 0xc6, 0xf6, 0x45, 0xd9, 0x1f, 0x65, 0x91, 0x64, 0xf1, 0x21, 0x17, 0xba, 0x14,
- 0xe0, 0x44, 0x4a, 0x58, 0xa8, 0x92, 0x3b, 0x63, 0x32, 0x90, 0x37, 0xb3, 0xa5, 0x4b, 0x17, 0x44,
- 0xb3, 0x35, 0x22, 0x1b, 0x57, 0xcd, 0xf9, 0xe2, 0x04, 0x0b, 0x28, 0x93, 0xe5, 0x41, 0x15, 0x35,
- 0x52, 0x09, 0xa5, 0x92, 0x8e, 0x02, 0x51, 0xc3, 0xab, 0x7b, 0x84, 0x43, 0x86, 0x78, 0x18, 0x09,
- 0xb4, 0x9e, 0x04, 0x69, 0xc3, 0x9d, 0x86, 0xef, 0x51, 0xee, 0x6f, 0x79, 0xf2, 0xdc, 0x53, 0x9e,
- 0x32, 0xa7, 0x0d, 0x30, 0xc6, 0xd2, 0x89, 0xb9, 0x76, 0x2b, 0xda, 0x04, 0x08, 0x90, 0x91, 0xa7,
- 0xb7, 0x16, 0x90, 0xd9, 0x50, 0x7a, 0xf0, 0x29, 0x35, 0x0d, 0x01, 0xdc, 0x7b, 0x4a, 0x7d, 0x16,
- 0xc6, 0x4c, 0x78, 0x24, 0x75, 0x6e, 0x9f, 0xbb, 0xb1, 0xa5, 0x60, 0x07, 0x0e, 0xfc, 0x8d, 0x4c,
- 0xa3, 0xb9, 0xaf, 0x95, 0x4b, 0x54, 0xdd, 0x48, 0xc0, 0x13, 0x8c, 0x6c, 0xd8, 0x6d, 0x76, 0xb9,
- 0x50, 0xf9, 0xfc, 0xf3, 0x6c, 0xb8, 0xb4, 0x47, 0x52, 0x78, 0x71, 0x85, 0xc9, 0x9c, 0x2c, 0xf9,
- 0xe8, 0x02, 0xed, 0x1f, 0xa6, 0x3f, 0x29, 0x36, 0x50, 0x9c, 0x65, 0x2d, 0x5a, 0x5d, 0xc7, 0x02,
- 0x6a, 0x18, 0x56, 0x84, 0xa4, 0xc7, 0x2f, 0xab, 0x46, 0x5f, 0xf9, 0x1f, 0x3e, 0x1a, 0x6d, 0x18,
- 0x9c, 0x03, 0x7a, 0xf1, 0xf5, 0xc1, 0xdc, 0x2d, 0x78, 0xd2, 0xb6, 0xda, 0x77, 0x92, 0x45, 0x03,
- 0x57, 0x52, 0xda, 0x81, 0xf8, 0xe8, 0xcb, 0x4a, 0x07, 0x9d, 0x36, 0x6f, 0xde, 0x01, 0x6a, 0x52,
- 0x4a, 0xc3, 0x8f, 0x5b, 0x9c, 0x36, 0x67, 0x3c, 0x0d, 0x6f, 0x72, 0x22, 0x44, 0x42, 0xab, 0xc3,
- 0x6f, 0x43, 0x29, 0x97, 0xd2, 0x2d, 0xb5, 0x22, 0xea, 0xb9, 0x4b, 0x33, 0x66, 0x63, 0x1f, 0x43,
- 0xbc, 0xd8, 0xa3, 0x2e, 0xcd, 0x30, 0x94, 0xba, 0x33, 0xe2, 0x3d, 0xe7, 0x0d, 0xca, 0x83, 0xd8,
- 0x67, 0x05, 0x8e, 0xd0, 0xdc, 0x80, 0xa7, 0x77, 0x88, 0xb5, 0x19, 0xad, 0x99, 0x75, 0xcf, 0x05,
- 0x51, 0x81, 0x31, 0x22, 0x1d, 0xe5, 0x27, 0x05, 0xcf, 0x98, 0xea, 0xe6, 0x0f, 0xee, 0x36, 0x81,
- 0x99, 0x58, 0x05, 0xe2, 0x83, 0x2b, 0x46, 0xa4, 0xd4, 0x34, 0x04, 0xf6, 0x2f, 0xeb, 0x37, 0x58,
- 0xff, 0x25, 0x46, 0xe3, 0x2e, 0xf6, 0x72, 0x91, 0xc1, 0x61, 0x86, 0x38, 0x70, 0xec, 0xe2, 0x25,
- 0x5b, 0x37, 0xcf, 0x04, 0xf1, 0xf2, 0xd0, 0xd4, 0x54, 0x97, 0x4d, 0xbe, 0xbf, 0x1c, 0xd2, 0x37,
- 0xd1, 0x6b, 0xd3, 0xd8, 0xfd, 0xa7, 0xc4, 0x1c, 0x20, 0x58, 0x83, 0x12, 0x24, 0x4d, 0xa8, 0x6b,
- 0x1b, 0x42, 0xbe, 0x79, 0x81, 0xd3, 0x40, 0x39, 0xc2, 0xf7, 0x98, 0xc4, 0x4b, 0xac, 0x9d, 0x42,
- 0x76, 0xf1, 0xce, 0x8f, 0xb1, 0x44, 0x10, 0x9f, 0xd1, 0x4d, 0x26, 0x31, 0x62, 0x2b, 0xb6, 0xf1,
- 0x64, 0x8d, 0x1a, 0x60, 0x4f, 0x67, 0xd1, 0xb1, 0xec, 0x56, 0x77, 0x08, 0x10, 0xe3, 0xe1, 0x8d,
- 0x29, 0xe5, 0xb3, 0x49, 0x47, 0x01, 0xc9, 0x80, 0xb4, 0xdc, 0x42, 0xc0, 0x43, 0x3c, 0x0c, 0xe5,
- 0x59, 0xc7, 0x96, 0x65, 0x13, 0x48, 0x35, 0x50, 0xad, 0x94, 0xb8, 0x78, 0xf0, 0xf8, 0xe6, 0xc7,
- 0x68, 0xe8, 0x0f, 0xe5, 0x46, 0x7d, 0xca, 0x2f, 0xbf, 0x5c, 0x0c, 0xd9, 0x71, 0xfe, 0x59, 0xe8,
- 0x39, 0x69, 0x3e, 0xc7, 0x5b, 0x98, 0xed, 0x2a, 0x70, 0xc4, 0xe6, 0x3f, 0x7e, 0x10, 0x6f, 0x69,
- 0x94, 0x45, 0xdd, 0xb6, 0xfb, 0x6c, 0xce, 0x78, 0x1a, 0xde, 0xe4, 0x44, 0x88, 0x84, 0x95, 0x45,
- 0x4b, 0xbb, 0x42, 0x8a, 0xed, 0x6b, 0xf4, 0x7e, 0x90, 0x8f, 0xe9, 0x41, 0x82, 0x30, 0xb1, 0xbb,
- 0x07, 0xab, 0x26, 0x72, 0x94, 0x50, 0x7f, 0x0d, 0x55, 0xe5, 0x47, 0xea, 0x17, 0x9d, 0x46, 0xab,
- 0x71, 0x5a, 0xe8, 0xfd, 0x25, 0x14, 0x6f, 0x92, 0x84, 0xa8, 0x61, 0xdb, 0x75, 0xb6, 0xf0, 0x5a,
- 0x2b, 0x15, 0xea, 0x28, 0xa5, 0xbb, 0x2c, 0x04, 0x4d, 0xdf, 0xb7, 0x06, 0x0c, 0xd8, 0x38, 0x15,
- 0x26, 0x08, 0x32, 0x7c, 0xdd, 0xfc, 0xa4, 0xd8, 0x83, 0x35, 0x57, 0xb4, 0xab, 0xb7, 0x9a, 0x08,
- 0x20, 0xdb, 0xd9, 0xdf, 0x38, 0xf1, 0x48, 0x97, 0x4b, 0x30, 0x8b, 0x3d, 0x7a, 0x58, 0xc6, 0xdb,
- 0xfa, 0x7e, 0x39, 0xf0, 0x58, 0x1c, 0xe8, 0x18, 0x6d, 0x87, 0x34, 0x14, 0x28, 0x95, 0x90, 0x7e,
- 0x49, 0x4b, 0x1b, 0xeb, 0x0f, 0xd1, 0x11, 0xfa, 0x69, 0x8c, 0x1c, 0x87, 0xcd, 0xd4, 0x85, 0x4b,
- 0x22, 0x2b, 0x80, 0xbe, 0xda, 0x4b, 0xad, 0x13, 0xb2, 0x33, 0x7e, 0xfb, 0x35, 0xbc, 0xf2, 0x2b,
- 0xa6, 0xe2, 0xd0, 0x86, 0x3d, 0xbe, 0x47, 0xc1, 0x6c, 0xf5, 0x3e, 0x40, 0x80, 0x14, 0x04, 0xe2,
- 0xcd, 0x82, 0x4b, 0xd3, 0xe8, 0x24, 0xfb, 0x28, 0xb7, 0x4a, 0x5c, 0x3c, 0x78, 0x7c, 0x73, 0x82,
- 0x8c, 0x8f, 0xf7, 0x7f, 0xe9, 0x58, 0xf8, 0x87, 0xbc, 0xca, 0x12, 0x25, 0x4a, 0xbe, 0x26, 0x8f,
- 0xd7, 0xb8, 0x38, 0x7b, 0x18, 0xaa, 0x28, 0x53, 0xe8, 0x5d, 0x5f, 0x9b, 0xf5, 0xa2, 0xf4, 0xb8,
- 0x46, 0xa6, 0x9a, 0xde, 0x95, 0x2c, 0x7c, 0xa2, 0x5e, 0x65, 0x09, 0xf3, 0x25, 0x5f, 0x13, 0xa6,
- 0x88, 0xac, 0x45, 0xbd, 0xee, 0xef, 0xf1, 0x4c, 0x8d, 0xcc, 0x3b, 0x6a, 0xd4, 0xb5, 0x4e, 0xac,
- 0x44, 0x56, 0xc3, 0xbf, 0x77, 0x96, 0x99, 0x26, 0xa7, 0x66, 0xfc, 0x35, 0x6a, 0xbb, 0x27, 0x56,
- 0xc2, 0x6f, 0xca, 0xe6, 0x72, 0xd9, 0x96, 0x70, 0x80, 0xa3, 0x49, 0x48, 0x90, 0xf7, 0xe5, 0x6f,
- 0x93, 0xee, 0xfb, 0xc4, 0x6f, 0x3c, 0xb1, 0x75, 0x4f, 0x3b, 0xa3, 0xae, 0x9f, 0x19, 0xd3, 0xee,
- 0xf6, 0x1b, 0x2c, 0x75, 0x51, 0x06, 0xf3, 0x86, 0x3e, 0x8d, 0x4f, 0xc5, 0x49, 0x88, 0x28, 0x1b,
- 0x09, 0x3e, 0x6a, 0x96, 0x7f, 0xf0, 0x81, 0x17, 0xff, 0xec, 0xc9, 0xfd, 0x39, 0x64, 0xca, 0x3e,
- 0xa4, 0x12, 0x89, 0xe7, 0xdf, 0x04, 0xa2, 0x45, 0x95, 0xf6, 0xcb, 0x86, 0xcf, 0xf0, 0x30, 0x12,
- 0xe9, 0x7a, 0x20, 0xce, 0xd7, 0x62, 0xba, 0x74, 0xcd, 0x7c, 0xfe, 0x4e, 0x9c, 0x2f, 0xdd, 0x7a,
- 0x2a, 0x6d, 0x27, 0xf9, 0xd4, 0xe6, 0xbf, 0x46, 0xd0, 0x3f, 0x2c, 0x65, 0xca, 0xaa, 0x22, 0x6d,
- 0x54, 0xda, 0x4e, 0x31, 0x6b, 0x0f, 0xbd, 0x8c, 0x63, 0x7e, 0x58, 0xca, 0x57, 0x97, 0x44, 0xda,
- 0xa2, 0xc1, 0x62, 0x44, 0x3a, 0x09, 0x4e, 0x0a, 0x5d, 0xf3, 0x17, 0x0f, 0x1e, 0x1f, 0x6c, 0xc1,
- 0xf7, 0x63, 0xe1, 0xa4, 0x20, 0x5b, 0x60, 0xc4, 0xa3, 0x6d, 0xd4, 0xa6, 0x8f, 0xfa, 0x32, 0x63,
- 0xcf, 0x72, 0x12, 0xb2, 0x0a, 0x9e, 0x1e, 0xac, 0x4e, 0x49, 0xa9, 0xfa, 0x37, 0x98, 0x47, 0x72,
- 0xaf, 0xdc, 0xba, 0x10, 0x42, 0x4e, 0xc6, 0xd6, 0x93, 0x19, 0xf7, 0xbd, 0xb9, 0x70, 0xce, 0xdc,
- 0xfd, 0xd5, 0x1f, 0x82, 0xcc, 0x4c, 0x97, 0x15, 0x38, 0x62, 0x73, 0xfe, 0x3f, 0x08, 0xd6, 0xd5,
- 0xce, 0x0a, 0xdf, 0x63, 0x7b, 0xc3, 0x8d, 0xee, 0xd3, 0xa9, 0x32, 0x99, 0xf1, 0xea, 0x5d, 0x0a,
- 0x13, 0x04, 0x19, 0x3e, 0x8f, 0x7e, 0x52, 0x6c, 0xa0, 0xfb, 0xca, 0x5a, 0xb4, 0xba, 0x4d, 0x04,
- 0xe3, 0xcc, 0xde, 0xe8, 0x3b, 0x75, 0x4d, 0xa5, 0x56, 0x73, 0x59, 0x16, 0x2c, 0xdd, 0x39, 0xcc,
- 0x8b, 0x24, 0xd1, 0x0d, 0x7d, 0x08, 0x87, 0x8a, 0xe9, 0x2f, 0x55, 0xcf, 0x5d, 0x23, 0x60, 0x24,
- 0x7e, 0xb7, 0x69, 0xc8, 0xbf, 0xe9, 0x02, 0xca, 0xb3, 0x41, 0x74, 0xaf, 0x9d, 0x3d, 0x66, 0xb7,
- 0xed, 0x59, 0x92, 0x0c, 0xd0, 0xd5, 0xb3, 0xbf, 0xfc, 0x7a, 0xd7, 0x01, 0x02, 0x24, 0xb5, 0x59,
- 0xe5, 0x1f, 0x35, 0x4b, 0xde, 0x78, 0xa1, 0xea, 0x9e, 0x76, 0x85, 0x9f, 0xfd, 0x32, 0x65, 0x1f,
- 0xb8, 0xfb, 0x11, 0xec, 0xca, 0x87, 0x9d, 0x71, 0x02, 0xe4, 0x14, 0xa8, 0x93, 0xc1, 0xeb, 0xfb,
- 0x7d, 0x3f, 0xfd, 0x78, 0x2c, 0x0e, 0x74, 0x0c, 0xd7, 0xa2, 0x1a, 0x0a, 0x14, 0xab, 0x48, 0x3f,
- 0x96, 0xb5, 0x84, 0xd7, 0x19, 0xd6, 0x2b, 0xfc, 0xe3, 0xdd, 0x11, 0x82, 0xc7, 0x60, 0xa1, 0xb5,
- 0x05, 0x5b, 0x7f, 0x13, 0x76, 0xea, 0x9a, 0x89, 0xac, 0xe6, 0xb2, 0x2c, 0x58, 0x79, 0x72, 0x5b,
- 0x18, 0xca, 0x2a, 0xc9, 0x12, 0x34, 0x36, 0xff, 0xa6, 0x14, 0xf6, 0x61, 0xc2, 0x3a, 0xb3, 0xca,
- 0x87, 0x41, 0xc4, 0x88, 0x74, 0x12, 0x9c, 0x14, 0xba, 0x25, 0x2e, 0x1e, 0x3c, 0x3e, 0xd8, 0x41,
- 0x6b, 0x60, 0x9b, 0x55, 0xd5, 0x9a, 0xbc, 0xe9, 0xdb, 0xbf, 0x62, 0x7c, 0xf8, 0x68, 0x77, 0x60,
- 0xd4, 0x30, 0xac, 0xcb, 0x8b, 0x4d, 0x5e, 0x95, 0x8c, 0xbe, 0x31, 0x3e, 0x7c, 0x34, 0xda, 0x30,
- 0x04, 0x23, 0xb2, 0xc2, 0x07, 0xb7, 0x09, 0xcb, 0x31, 0x06, 0x29, 0x4f, 0x9e, 0x0b, 0x68, 0x23,
- 0xbb, 0x73, 0x85, 0x5c, 0x59, 0x60, 0xeb, 0xb7, 0x66, 0x07, 0x7a, 0x0d, 0x1a, 0x57, 0xc5, 0x73,
- 0x37, 0xfc, 0x72, 0x23, 0xb0, 0x38, 0x13, 0x30, 0xda, 0xcd, 0x68, 0x28, 0x50, 0xe9, 0xe3, 0xfc,
- 0xd3, 0x9b, 0x8a, 0xb9, 0x1f, 0x1d, 0x21, 0x98, 0xd9, 0x5b, 0x76, 0xd4, 0x6b, 0xa9, 0x9c, 0x9b,
- 0x9b, 0xa8, 0x5c, 0x83, 0x61, 0x91, 0xa3, 0x20, 0x2d, 0x37, 0xf1, 0x30, 0x60, 0x0f, 0x03, 0xa8,
- 0x55, 0xa2, 0x83, 0xe0, 0x1a, 0x52, 0x2e, 0xce, 0xfe, 0x9e, 0xc3, 0xa9, 0x91, 0xe5, 0x5e, 0xa2,
- 0x3a, 0xe1, 0xaa, 0x77, 0xc8, 0x7f, 0x9b, 0xec, 0x14, 0x27, 0x88, 0x9a, 0xf7, 0x86, 0x41, 0xe1,
- 0xc4, 0xbc, 0x21, 0x45, 0x97, 0xd4, 0x7a, 0x3f, 0x48, 0xa6, 0x95, 0xc1, 0x41, 0x18, 0xb9, 0xbc,
- 0x9e, 0xf3, 0x23, 0x90, 0x17, 0x7b, 0x39, 0xa9, 0x81, 0xd1, 0x43, 0x1c, 0x38, 0x76, 0x71, 0xf3,
- 0xa1, 0x49, 0xf6, 0xf4, 0xa9, 0xee, 0x38, 0xcc, 0x39, 0x10, 0x79, 0xaa, 0x97, 0x89, 0x42, 0x49,
- 0x81, 0x92, 0x2f, 0x2b, 0x91, 0x1f, 0x70, 0x5b, 0x72, 0x20, 0xf2, 0x97, 0xed, 0xd1, 0x84, 0x92,
- 0x89, 0xd4, 0x88, 0x6c, 0x9f, 0xb2, 0x62, 0x0e, 0x10, 0x2c, 0xa0, 0x09, 0x12, 0xc7, 0x54, 0xd4,
- 0x14, 0xaf, 0x3f, 0x4c, 0x1b, 0x2e, 0x2d, 0x61, 0xf5, 0x1e, 0x8d, 0xb0, 0xa3, 0x27, 0x0b, 0xaf,
- 0xb9, 0x83, 0xdc, 0x3d, 0xbb, 0xda, 0x0e, 0x33, 0x9f, 0x04, 0x8f, 0xcb, 0x55, 0xb3, 0xf1, 0x83,
- 0xac, 0x54, 0x2e, 0xa0, 0xd1, 0xa9, 0xb0, 0x10, 0xf7, 0xfa, 0x99, 0x18, 0x30, 0xe6, 0xe0, 0x54,
- 0x8f, 0x07, 0x63, 0xcf, 0x7a, 0xbf, 0x8e, 0x41, 0xd8, 0x29, 0x7c, 0x80, 0xc3, 0x28, 0x08, 0x07,
- 0xf0, 0xc8, 0xc7, 0xd6, 0xb4, 0x0b, 0x1f, 0xc9, 0xf6, 0x88, 0x93, 0x4c, 0x98, 0x67, 0x74, 0xc8,
- 0xfe, 0x5d, 0x8b, 0x32, 0x5f, 0xab, 0xe1, 0xd3, 0x5c, 0x81, 0x1d, 0x5b, 0xb6, 0x9e, 0xf8, 0x5d,
- 0x01, 0x78, 0xcd, 0xd1, 0x71, 0x5d, 0x93, 0x42, 0x9d, 0xe0, 0x9b, 0x63, 0xc6, 0x72, 0x1a, 0x78,
- 0x08, 0x46, 0xa7, 0x47, 0x0e, 0xad, 0x12, 0x55, 0x62, 0x0c, 0x52, 0x9e, 0xff, 0x16, 0xd0, 0x46,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x0d, 0x1d, 0xd8, 0x54, 0x78, 0x47, 0x88, 0xdc, 0xce, 0xea, 0xe0, 0xb2, 0xa7, 0x6f, 0xa2, 0x1d,
- 0x30, 0x57, 0x54, 0x51, 0x24, 0x68, 0x6c, 0x3d, 0x8f, 0x28, 0x2f, 0xc2, 0x47, 0x74, 0xa5, 0x57,
- 0x2d, 0xc6, 0x01, 0x8b, 0x40, 0xb6, 0xc0, 0x4b, 0x85, 0xda, 0x6b, 0x8f, 0xdd, 0x37, 0x64, 0xc6,
- 0x1f, 0x61, 0x0c, 0xbb, 0x86, 0x64, 0x49, 0xf2, 0xf3, 0xf1, 0xb1, 0x8b, 0xd5, 0xa7, 0xf5, 0x61,
- 0x35, 0x0c, 0x2b, 0x42, 0x52, 0x82, 0xf6, 0xb4, 0x23, 0xce, 0x9d, 0xee, 0x1f, 0x0d, 0xd7, 0x0c,
- 0xd9, 0x2d, 0x74, 0x9f, 0xf3, 0x0a, 0xd6, 0x49, 0x42, 0x54, 0xd1, 0x8c, 0xdb, 0x5b, 0x78, 0x2d,
- 0xdb, 0xdd, 0x2d, 0xfe, 0x11, 0xb0, 0x33, 0xcd, 0xbb, 0x57, 0x24, 0x4a, 0x94, 0xbf, 0x4c, 0xdd,
- 0xba, 0x0b, 0x48, 0x8d, 0x28, 0x3d, 0x78, 0xf5, 0xfb, 0xe7, 0xe1, 0x6e, 0xdc, 0x25, 0xdf, 0x0b,
- 0x3d, 0x4a, 0x8c, 0x05, 0x5c, 0x2f, 0xe4, 0xe1, 0x41, 0xc2, 0xcf, 0x70, 0xe0, 0x1b, 0x07, 0x4a,
- 0x8d, 0xf7, 0x3a, 0xae, 0x98, 0x05, 0x6b, 0xc5, 0x21, 0x2a, 0x89, 0x46, 0x8c, 0xcc, 0x3c, 0xf7,
- 0x36, 0x84, 0xbf, 0xf2, 0xc1, 0x65, 0x80, 0x72, 0x47, 0x2d, 0xf3, 0x4b, 0x96, 0x9b, 0xf9, 0x84,
- 0xa8, 0x77, 0x9c, 0x62, 0xd6, 0x1e, 0xb9, 0xdb, 0xc6, 0xfc, 0xb0, 0x57, 0xae, 0xed, 0x88, 0x77,
- 0xc3, 0x17, 0x07, 0x37, 0x03, 0x84, 0x05, 0x32, 0x1d, 0x43, 0xd2, 0x2b, 0x56, 0x85, 0xff, 0x17,
- 0x4d, 0x68, 0xa9, 0x29, 0x08, 0x66, 0x18, 0x31, 0x58, 0x8a, 0x35, 0xc8, 0x53, 0xdf, 0xed, 0x68,
- 0xa5, 0x6a, 0x44, 0x36, 0xae, 0x59, 0x31, 0x07, 0x08, 0x16, 0x50, 0xe5, 0x09, 0x82, 0x2a, 0x6a,
- 0x1d, 0x91, 0x55, 0xda, 0x64, 0xde, 0xac, 0x76, 0x0a, 0xf2, 0x44, 0x4d, 0x9a, 0x43, 0xc1, 0x91,
- 0x3c, 0x32, 0x41, 0xd4, 0x2d, 0x72, 0x77, 0xa3, 0xdc, 0x22, 0x54, 0x13, 0x26, 0x69, 0x1d, 0x32,
- 0xef, 0xa9, 0xcb, 0x6d, 0x32, 0x6f, 0x56, 0x3b, 0x05, 0x79, 0x22, 0xc7, 0x4d, 0xc0, 0x81, 0xa9,
- 0x45, 0x2e, 0x0e, 0x6e, 0x06, 0xcb, 0x0a, 0x64, 0x3a, 0x86, 0x67, 0x56, 0xac, 0xc9, 0x3d, 0x2e,
- 0xaa, 0x87, 0xc5, 0x03, 0x34, 0xa4, 0x5c, 0x5f, 0x3f, 0xff, 0x45, 0x91, 0xe1, 0x09, 0xbc, 0x87,
- 0x7c, 0x47, 0x30, 0xa9, 0x5d, 0x53, 0xe7, 0x4e, 0x4a, 0x42, 0x81, 0x69, 0xd2, 0xd9, 0x52, 0x47,
- 0x9d, 0x7b, 0xb7, 0x20, 0x84, 0x9c, 0x4f, 0x6f, 0xe5, 0x32, 0x2d, 0xb9, 0xb1, 0xe0, 0x5f, 0x7b,
- 0x2c, 0xbe, 0xcc, 0x5a, 0x31, 0xeb, 0x53, 0x09, 0x18, 0x3a, 0xf0, 0xec, 0x1b, 0x45, 0x7e, 0xbe,
- 0x16, 0x5f, 0x66, 0x2d, 0xf9, 0x94, 0xc8, 0xe5, 0x0c, 0x1d, 0x78, 0x76, 0xec, 0xc3, 0x3f, 0x5f,
- 0x03, 0x88, 0x94, 0xb0, 0x93, 0xe7, 0x76, 0xc6, 0x64, 0xe3, 0x6e, 0xa5, 0x89, 0x96, 0x2e, 0x88,
- 0x5e, 0x6c, 0xb0, 0x17, 0x87, 0x18, 0x4a, 0x5d, 0xf8, 0x71, 0xff, 0x92, 0xe7, 0x65, 0xa0, 0x6c,
- 0x4e, 0xe0, 0x3d, 0x99, 0x9b, 0x81, 0x6e, 0xf7, 0x3c, 0x69, 0x5b, 0x6d, 0xda, 0x49, 0xc3, 0xe0,
- 0xcb, 0x51, 0xa0, 0x70, 0x0d, 0x29, 0x17, 0x67, 0x7f, 0x4f, 0x80, 0xb5, 0xa9, 0x93, 0x2f, 0x51,
- 0x3e, 0xc2, 0x18, 0xb5, 0xcf, 0xc8, 0x92, 0x27, 0x25, 0x21, 0xa1, 0xd5, 0x69, 0x8d, 0x29, 0xc2,
- 0x15, 0xd7, 0xf2, 0x9d, 0x6a, 0x73, 0xbe, 0x23, 0x68, 0xfe, 0x16, 0xd3, 0x65, 0x55, 0x11, 0xd7,
- 0xfc, 0xad, 0xd2, 0x53, 0xbd, 0x11, 0x04, 0x57, 0xa5, 0x82, 0xe8, 0x9d, 0xf9, 0x7a, 0xcc, 0xad,
- 0xae, 0xa4, 0x77, 0xc1, 0x33, 0x13, 0x55, 0x94, 0x0e, 0xf9, 0x6c, 0xde, 0x7f, 0x02, 0xd4, 0xa4,
- 0x63, 0x26, 0x3c, 0x12, 0xdb, 0x37, 0xae, 0xbc, 0xb9, 0xb3, 0x30, 0xe2, 0x07, 0x7e, 0xa7, 0x26,
- 0x0e, 0x95, 0x4c, 0xe4, 0xeb, 0xa0, 0xfe, 0x1a, 0xaa, 0x09, 0x8e, 0x17, 0x2e, 0xf9, 0x8c, 0x95,
- 0x7f, 0xcf, 0xa4, 0x19, 0xce, 0xb4, 0x91, 0x88, 0x2e, 0xa1, 0xef, 0xcc, 0x5b, 0x4f, 0x7c, 0xcf,
- 0x31, 0x2f, 0x99, 0x80, 0x55, 0x35, 0xff, 0x7f, 0x12, 0xc8, 0xb4, 0xa1, 0x81, 0x06, 0xbf, 0x2f,
- 0xdf, 0xfe, 0x9f, 0x3c, 0x16, 0x07, 0x3a, 0x06, 0x8a, 0x51, 0x0d, 0x05, 0x0a, 0xb4, 0x24, 0xfe,
- 0xf1, 0xb0, 0x0a, 0x07, 0xc5, 0x56, 0x8c, 0x8b, 0x6b, 0x68, 0x08, 0x2f, 0x5e, 0x15, 0x6e, 0xb0,
- 0x60, 0xae, 0xa8, 0xa2, 0x48, 0xd0, 0xd8, 0x7a, 0xdd, 0x50, 0x5e, 0x47, 0x8e, 0xe8, 0x89, 0xae,
- 0x79, 0x1c, 0x4f, 0xba, 0x2b, 0xb9, 0x7d, 0xc7, 0xe6, 0xa4, 0x33, 0x45, 0x8a, 0xa0, 0x20, 0x1c,
- 0x9a, 0xd0, 0x91, 0x52, 0x10, 0xcc, 0x30, 0x62, 0xb0, 0xd7, 0x6a, 0x53, 0xa6, 0x7d, 0x19, 0xd0,
- 0xf8, 0x8e, 0x60, 0x91, 0xba, 0xa6, 0x0d, 0x9c, 0x94, 0x84, 0xc1, 0xd2, 0x67, 0x71, 0xa4, 0x8e,
- 0x4c, 0x10, 0x64, 0xf8, 0x79, 0x3b, 0x8b, 0x73, 0xc5, 0x6a, 0xae, 0xab, 0x95, 0xad, 0xf7, 0x10,
- 0xb5, 0xe6, 0xc9, 0xb8, 0xb2, 0xc0, 0x15, 0xad, 0xcc, 0x0e, 0xf4, 0x1a, 0x34, 0xae, 0x49, 0xe6,
- 0x41, 0x0d, 0xbc, 0xac, 0x01, 0x7c, 0x03, 0xaf, 0x0b, 0x80, 0x4e, 0x19, 0x32, 0xc2, 0x55, 0x0d,
- 0xc7, 0x34, 0xb5, 0xf5, 0x04, 0x33, 0x0c, 0xf9, 0x2c, 0x45, 0xfb, 0x64, 0xc8, 0x8e, 0x97, 0x34,
- 0x7a, 0x94, 0xdb, 0x0a, 0xb8, 0x5e, 0x0b, 0x01, 0x82, 0x47, 0x5d, 0xe0, 0x03, 0x36, 0x0e, 0x94,
- 0x7b, 0xec, 0x16, 0xdb, 0xc9, 0x03, 0x98, 0x43, 0x1f, 0xa7, 0xc6, 0x83, 0xc5, 0x44, 0x14, 0xec,
- 0x0a, 0xb6, 0xfe, 0x26, 0xec, 0x17, 0xf7, 0xd1, 0x9b, 0x0f, 0xa7, 0x58, 0xb0, 0xf2, 0xe4, 0xb6,
- 0xdc, 0x76, 0x0b, 0x8c, 0x85, 0xe0, 0x4c, 0xc0, 0xee, 0xb2, 0x63, 0xa0, 0x83, 0x22, 0x0a, 0x76,
- 0xdd, 0x0e, 0xc6, 0x5d, 0xf4, 0xbd, 0xdf, 0x82, 0x73, 0x52, 0xf8, 0xc3, 0x45, 0x50, 0x10, 0x0e,
- 0xea, 0xf2, 0xb4, 0x7e, 0x44, 0x85, 0xcc, 0xb2, 0xa9, 0x9f, 0x90, 0xeb, 0x15, 0xb9, 0xf3, 0xf2,
- 0x78, 0x64, 0x82, 0x6b, 0x5a, 0xe4, 0xee, 0x85, 0x7b, 0x44, 0xa8, 0x26, 0x4c, 0xd2, 0x3a, 0x64,
- 0xbe, 0x28, 0xfa, 0x4f, 0x2f, 0x8a, 0x71, 0x3e, 0xca, 0xe1, 0xc8, 0x21, 0x42, 0x2e, 0xb7, 0x28,
- 0x86, 0x39, 0x09, 0x59, 0x05, 0x4f, 0x0f, 0x56, 0x27, 0xc5, 0xb5, 0x7d, 0xfa, 0x4c, 0xc2, 0x39,
- 0xe1, 0x3c, 0x87, 0x89, 0xd9, 0xcf, 0xa8, 0x21, 0xaf, 0x70, 0xac, 0xd0, 0x63, 0x39, 0x0d, 0x3c,
- 0x97, 0xcd, 0x49, 0x06, 0x68, 0x8b, 0xb8, 0xbe, 0x7e, 0x3d, 0x8a, 0xe1, 0x01, 0x12, 0xbb, 0xcd,
- 0x66, 0x7d, 0x43, 0x01, 0xad, 0xdd, 0x34, 0x35, 0x15, 0x55, 0x82, 0xce, 0x5f, 0x07, 0xd5, 0x7d,
- 0xeb, 0x8a, 0x79, 0xaf, 0x35, 0xd8, 0x5f, 0xf0, 0x34, 0x7f, 0x0b, 0x88, 0xd3, 0xcb, 0xe9, 0x8a,
- 0xf2, 0x38, 0x9e, 0xb7, 0x56, 0xb1, 0xfa, 0x4d, 0x0f, 0x8b, 0x66, 0x8a, 0xd7, 0x83, 0x40, 0x38,
- 0xb0, 0xbd, 0xb6, 0xab, 0xc4, 0x2a, 0x8f, 0x24, 0x60, 0xe8, 0x46, 0x36, 0x6c, 0xd7, 0x3b, 0xbd,
- 0xe4, 0x67, 0xf8, 0x9a, 0xaf, 0x25, 0x32, 0xa8, 0x03, 0x96, 0x1e, 0xfc, 0x3b, 0x40, 0x7f, 0x67,
- 0x1c, 0xe9, 0x98, 0x0b, 0x15, 0x83, 0x3f, 0x34, 0x97, 0x12, 0xdf, 0x2e, 0x5c, 0x31, 0xdb, 0xe9,
- 0xca, 0x29, 0x6d, 0xa1, 0x7c, 0x74, 0x84, 0x25, 0xe2, 0xaf, 0x1b, 0xd6, 0x6f, 0xe1, 0x35, 0x29,
- 0xd2, 0xe3, 0x47, 0x68, 0x6e, 0x40, 0xb2, 0xda, 0x44, 0xbb, 0xed, 0xb7, 0xad, 0xdb, 0x86, 0xe3,
- 0xa0, 0x31, 0x3b, 0x25, 0xd8, 0xb3, 0xab, 0x8e, 0xa4, 0xf0, 0xe2, 0xc9, 0x51, 0xfb, 0x58, 0x31,
- 0x1e, 0x19, 0xc1, 0x6a, 0xf7, 0x39, 0xda, 0xb0, 0x6e, 0x11, 0x2a, 0xe8, 0x13, 0xd5, 0xef, 0x19,
- 0x9f, 0x8b, 0xee, 0x41, 0x66, 0x26, 0xaa, 0xeb, 0x1c, 0x31, 0xd8, 0x7f, 0xfe, 0x04, 0x6b, 0x8b,
- 0x56, 0x2a, 0x17, 0x50, 0x89, 0xb5, 0x58, 0x08, 0x9a, 0x7d, 0xad, 0x0c, 0x18, 0x73, 0x70, 0x2a,
- 0xab, 0xff, 0x08, 0xd2, 0x45, 0xf9, 0xcf, 0x1d, 0xa2, 0x1f, 0xde, 0xf2, 0x27, 0x7b, 0xa6, 0xff,
- 0xc9, 0xa1, 0xf9, 0x11, 0xef, 0x93, 0xf2, 0xe3, 0x86, 0x4c, 0x75, 0x73, 0xe6, 0x77, 0x1b, 0xa1,
- 0x69, 0x90, 0xc2, 0x34, 0x37, 0x20, 0x59, 0x6d, 0x22, 0xbc, 0x97, 0xba, 0xb7, 0x8c, 0x43, 0x90,
- 0x91, 0x1e, 0xa2, 0xa5, 0x8d, 0x86, 0x54, 0xf1, 0xb6, 0x38, 0x56, 0x68, 0xd0, 0xfd, 0xe7, 0x1e,
- 0x72, 0xd2, 0x7c, 0x4d, 0xb6, 0xf3, 0x19, 0x54, 0xe0, 0x4b, 0x0f, 0x7e, 0xfc, 0x20, 0xde, 0xd2,
- 0x53, 0x71, 0x68, 0x43, 0xff, 0x5f, 0xc2, 0x81, 0x36, 0x9b, 0x1f, 0x20, 0x40, 0x0a, 0x02, 0x71,
- 0x17, 0x27, 0xab, 0xfc, 0x88, 0xc9, 0x5b, 0xa7, 0x91, 0xfd, 0xe3, 0x15, 0x2a, 0xb1, 0x25, 0x27,
- 0x4f, 0x98, 0xf0, 0x48, 0xea, 0xdc, 0xfd, 0xb5, 0xa1, 0x89, 0xc0, 0x0e, 0x1c, 0x3b, 0xd9, 0x98,
- 0x58, 0xbf, 0x5b, 0xb4, 0x62, 0x15, 0xa6, 0x12, 0x30, 0x74, 0x23, 0x1b, 0x36, 0x8a, 0xfc, 0xbf,
- 0x02, 0xf0, 0x59, 0x61, 0xe2, 0xba, 0xe5, 0x84, 0xf9, 0x03, 0xf5, 0xc6, 0x4f, 0xe4, 0x34, 0xf0,
- 0x65, 0xf5, 0xd7, 0xb1, 0x3e, 0x3a, 0x42, 0xf3, 0x71, 0xb6, 0xec, 0x6b, 0xd6, 0x91, 0xfb, 0xf5,
- 0x70, 0x22, 0x25, 0x2c, 0x54, 0x49, 0xfc, 0xd0, 0x19, 0x48, 0xfa, 0xb8, 0xb3, 0xc4, 0xea, 0x22,
- 0x3f, 0xba, 0xd5, 0x64, 0xbe, 0x95, 0x01, 0x65, 0xb8, 0xc1, 0x3a, 0xb6, 0xaf, 0xff, 0x33, 0xba,
- 0x33, 0xdf, 0xc0, 0xe1, 0xb7, 0x8f, 0x1a, 0xfb, 0xeb, 0xcb, 0x41, 0x67, 0xce, 0xe2, 0x8b, 0xdf,
- 0x28, 0x9d, 0x7e, 0x98, 0x36, 0x5c, 0x5a, 0xc2, 0x29, 0x3c, 0xd9, 0xa3, 0x85, 0x4e, 0x16, 0x9d,
- 0xc5, 0xc4, 0xec, 0x94, 0xe6, 0x89, 0xe9, 0x7d, 0xd5, 0x46, 0x0e, 0xa2, 0x87, 0x6a, 0xa3, 0xc4,
- 0xcc, 0xfa, 0x86, 0x02, 0x99, 0x79, 0x68, 0x6a, 0x2a, 0xaa, 0xc7, 0x5f, 0xbe, 0x0e, 0x69, 0xfa,
- 0xad, 0x2c, 0xe3, 0x71, 0xa0, 0xf4, 0x23, 0x52, 0x6a, 0x1a, 0x02, 0x7b, 0xf6, 0x94, 0xfa, 0x2c,
- 0x34, 0x74, 0xe6, 0x93, 0x23, 0xdf, 0x65, 0xf6, 0xbe, 0x2e, 0x06, 0x8d, 0xd9, 0x7f, 0xcd, 0x74,
- 0x95, 0x3d, 0x10, 0x67, 0x8a, 0x31, 0x5d, 0x3a, 0x87, 0x3e, 0x7f, 0x27, 0x4e, 0xf6, 0x8f, 0x3d,
- 0x83, 0x62, 0x76, 0x4a, 0x73, 0xa5, 0x95, 0xdf, 0x8b, 0x23, 0x07, 0x51, 0xa2, 0x35, 0xb0, 0x62,
- },
- { /* 2 */
- 0x37, 0xf9, 0x69, 0x1b, 0x71, 0x18, 0x61, 0xcd, 0x69, 0x19, 0x54, 0xd6, 0xaf, 0xcb, 0x37, 0x52,
- 0x93, 0x8b, 0x03, 0xf8, 0xd8, 0xdb, 0x4a, 0x3b, 0x03, 0x7b, 0x5a, 0xc3, 0x52, 0x7d, 0x93, 0x1c,
- 0xdb, 0x45, 0x63, 0x4e, 0xe4, 0x87, 0x1e, 0x57, 0x63, 0xc0, 0x4b, 0x19, 0x80, 0x06, 0xdb, 0x1a,
- 0x38, 0xfb, 0x20, 0xd3, 0x14, 0x34, 0x8d, 0x24, 0x20, 0x69, 0x0f, 0xf7, 0x4e, 0x29, 0x38, 0x02,
- 0x7f, 0x37, 0x09, 0xad, 0x4d, 0x44, 0x35, 0xa1, 0x09, 0xa2, 0x45, 0x0c, 0x7d, 0xb0, 0x7f, 0x54,
- 0xb6, 0xa0, 0x72, 0x2f, 0xa6, 0xd4, 0x3e, 0xed, 0x72, 0x3c, 0x9b, 0xc2, 0x28, 0xd8, 0xb6, 0xae,
- 0xa0, 0x81, 0xad, 0x96, 0xea, 0x47, 0x90, 0xf0, 0xad, 0x08, 0xae, 0x66, 0xb1, 0x91, 0xa0, 0xcf,
- 0xb7, 0xec, 0x33, 0xa3, 0xc6, 0xf5, 0x60, 0x0d, 0x33, 0xc7, 0xb3, 0xae, 0x3b, 0xa1, 0xb7, 0x1f,
- 0xb8, 0xee, 0x7a, 0x6b, 0xa3, 0xd9, 0x8c, 0xe4, 0x7a, 0xb7, 0xe8, 0x8f, 0xda, 0x43, 0xb8, 0x4f,
- 0xc5, 0x41, 0xf1, 0x1d, 0x2e, 0xdf, 0x05, 0x46, 0xf1, 0x20, 0xfd, 0x5b, 0x81, 0x01, 0xc5, 0xba,
- 0xcc, 0x28, 0xfd, 0x7b, 0xc8, 0x35, 0xee, 0xaa, 0xfd, 0x0f, 0x56, 0xd1, 0x0a, 0x36, 0xcc, 0xca,
- 0x54, 0x52, 0x70, 0x3e, 0x36, 0x46, 0xf3, 0x7e, 0x70, 0x6e, 0xf7, 0x40, 0xf5, 0x8e, 0x54, 0x07,
- 0x04, 0xf3, 0xc7, 0x75, 0x43, 0x84, 0xbb, 0x06, 0xc7, 0x6a, 0xa0, 0x73, 0x4c, 0x27, 0x04, 0x81,
- 0xb1, 0x87, 0x76, 0x0d, 0x45, 0x33, 0x67, 0x08, 0x76, 0x98, 0x43, 0x05, 0x51, 0x74, 0xb1, 0x3f,
- 0x13, 0x9e, 0x59, 0x40, 0x6f, 0x36, 0x4b, 0xfb, 0x59, 0xa5, 0xbd, 0xbb, 0xc6, 0x17, 0x13, 0x51,
- 0xb2, 0x53, 0xb5, 0x5a, 0xe5, 0x50, 0x85, 0xeb, 0xb5, 0x56, 0x3b, 0xb1, 0x64, 0xff, 0xb2, 0x2f,
- 0x1c, 0x9c, 0x10, 0x88, 0x0a, 0x1a, 0xa7, 0x12, 0x10, 0xd5, 0xe6, 0x9a, 0x27, 0xf5, 0x1c, 0x01,
- 0xa8, 0xa4, 0xe0, 0x7c, 0x6c, 0x8c, 0x25, 0xfc, 0xe0, 0xdc, 0x2d, 0x80, 0x29, 0xdf, 0xa8, 0x0e,
- 0x02, 0x98, 0x82, 0xdb, 0xc0, 0x42, 0xbc, 0x03, 0x82, 0x35, 0x50, 0xd8, 0x26, 0xf2, 0x02, 0xa1,
- 0x20, 0x94, 0xf7, 0x2e, 0x5d, 0xaa, 0x91, 0x30, 0xf7, 0xd6, 0x49, 0x1e, 0x25, 0xfb, 0x20, 0x82,
- 0xf5, 0x9f, 0x9c, 0x24, 0xbc, 0x20, 0x3d, 0x6e, 0x9c, 0x9d, 0x71, 0x4a, 0x57, 0x66, 0xf5, 0x79,
- 0x45, 0x54, 0xab, 0xa5, 0x99, 0x32, 0x04, 0x86, 0xab, 0xfe, 0x1a, 0x23, 0x15, 0x6b, 0x45, 0xf7,
- 0x3b, 0x2f, 0xe3, 0x84, 0xb4, 0x57, 0x6f, 0xc7, 0xe3, 0xa7, 0x77, 0x43, 0x7b, 0xa2, 0x3b, 0x12,
- 0x3f, 0xdc, 0x24, 0xf1, 0xf7, 0xd3, 0xd4, 0xc1, 0x24, 0xcd, 0xd7, 0x30, 0x37, 0x85, 0x3f, 0x93,
- 0xc3, 0x2a, 0xb4, 0xb3, 0xad, 0x19, 0x02, 0x43, 0xb4, 0x7f, 0x0d, 0xf0, 0xeb, 0xd4, 0xc3, 0x9a,
- 0x2f, 0x96, 0xbe, 0xe6, 0x38, 0x86, 0x7d, 0xd9, 0xbe, 0xa6, 0x12, 0x3f, 0xc4, 0x19, 0x2f, 0xd2,
- 0x76, 0x5e, 0x05, 0xcb, 0xab, 0xae, 0xde, 0x4d, 0x05, 0x8d, 0xee, 0x86, 0xf6, 0x87, 0x76, 0x24,
- 0x4b, 0x1a, 0xa3, 0xe1, 0x9c, 0x3f, 0xb6, 0x8f, 0xa3, 0x75, 0x69, 0x6e, 0xe7, 0xf0, 0x4b, 0x16,
- 0x5f, 0xa3, 0xfe, 0x83, 0x10, 0xee, 0xa4, 0x91, 0xfe, 0x74, 0x0c, 0x12, 0x58, 0x4b, 0x5f, 0xd6,
- 0x97, 0x78, 0xc4, 0x8d, 0x9b, 0x5f, 0xf1, 0x3d, 0xc4, 0x11, 0xfa, 0xb0, 0x1e, 0x5a, 0x97, 0x9d,
- 0x16, 0x21, 0xdf, 0xb9, 0x4c, 0x93, 0xae, 0x1d, 0xdf, 0x34, 0x35, 0xa4, 0x99, 0x49, 0x16, 0x61,
- 0xa2, 0x19, 0x2f, 0x4d, 0x2a, 0x05, 0x2c, 0xf3, 0x2f, 0x3d, 0xfe, 0xbe, 0x97, 0x63, 0xa2, 0x6e,
- 0x50, 0xa1, 0xb7, 0x4b, 0x75, 0xc2, 0x48, 0x78, 0xb7, 0x04, 0x57, 0x33, 0xb9, 0xa9, 0x50, 0x86,
- 0x6a, 0xc2, 0x15, 0x43, 0xa1, 0xb4, 0x79, 0x5f, 0x15, 0x58, 0x08, 0x1c, 0xd1, 0x72, 0x6a, 0x25,
- 0x0c, 0xd6, 0x8a, 0x9f, 0xc5, 0x4f, 0x0e, 0x0a, 0x8a, 0xbe, 0x23, 0x95, 0xd4, 0x69, 0x0c, 0x40,
- 0x71, 0x79, 0x01, 0xe9, 0x48, 0x49, 0x87, 0xa8, 0x01, 0x29, 0x36, 0x41, 0x8f, 0x2b, 0x71, 0xb5,
- 0xa6, 0xea, 0xe8, 0x38, 0x69, 0x81, 0x97, 0xf5, 0xe8, 0x57, 0x5e, 0xcd, 0xdb, 0x44, 0xa6, 0xef,
- 0x8a, 0xa8, 0x95, 0x89, 0xf1, 0x64, 0x08, 0xcf, 0x95, 0x3f, 0x34, 0x46, 0x2a, 0xd6, 0x8a, 0x2d,
- 0xe7, 0x4d, 0x84, 0xe8, 0xb3, 0x37, 0x28, 0x75, 0x84, 0xc3, 0xe4, 0x9d, 0x82, 0x08, 0xe7, 0x99,
- 0xec, 0xbc, 0x0a, 0x55, 0x95, 0x9f, 0x7f, 0x9a, 0x0a, 0xd9, 0x1f, 0xcf, 0x2f, 0xcd, 0xec, 0x48,
- 0x51, 0xed, 0xf6, 0xc7, 0x15, 0xe3, 0x16, 0x98, 0xf6, 0xff, 0x7f, 0x5f, 0xaa, 0xd0, 0x51, 0x37,
- 0x79, 0x5c, 0x4c, 0x03, 0xce, 0x82, 0x32, 0xa4, 0x4c, 0xfd, 0xb5, 0xa7, 0x17, 0x65, 0x79, 0x74,
- 0xe1, 0x26, 0xc1, 0x46, 0x30, 0xf1, 0x2f, 0x70, 0xc1, 0x9c, 0x14, 0x36, 0xe8, 0xdd, 0xe1, 0xb9,
- 0x1b, 0xbb, 0x14, 0xaa, 0xe9, 0xfd, 0xfe, 0xf7, 0x14, 0x71, 0x3e, 0x5d, 0x5e, 0x59, 0x1b, 0x90,
- 0x9f, 0x5d, 0x89, 0x67, 0x1d, 0x94, 0x44, 0x31, 0x89, 0xc5, 0x79, 0x56, 0x86, 0x14, 0x9f, 0x5c,
- 0x74, 0xc6, 0x87, 0x10, 0x6b, 0xec, 0x62, 0x4e, 0x87, 0xb8, 0xbe, 0x5e, 0xd0, 0x75, 0x74, 0x85,
- 0xf8, 0x05, 0x57, 0x37, 0x19, 0x4e, 0x6d, 0x84, 0x57, 0xd8, 0x7a, 0xb3, 0x90, 0x76, 0xf8, 0x88,
- 0x5a, 0x1c, 0x78, 0x7a, 0x33, 0x4b, 0x41, 0x77, 0x78, 0xe5, 0x84, 0x0d, 0x07, 0x15, 0x5a, 0xe6,
- 0x67, 0x58, 0xde, 0x50, 0x04, 0xda, 0x29, 0xb5, 0xde, 0x1d, 0x03, 0xe5, 0x16, 0x62, 0x67, 0xd4,
- 0x36, 0xb5, 0x28, 0x97, 0x11, 0x39, 0x3f, 0x2d, 0x28, 0xe2, 0x7c, 0xba, 0xbc, 0xb2, 0x36, 0xe3,
- 0xe8, 0x4f, 0xcd, 0x20, 0xd6, 0x1b, 0xc4, 0x9c, 0xcd, 0xb3, 0xbf, 0xbc, 0x63, 0xea, 0xe8, 0xc9,
- 0x60, 0x7f, 0xda, 0x72, 0xe7, 0x3d, 0x70, 0x50, 0xda, 0xb9, 0xdb, 0x22, 0x6f, 0xce, 0x60, 0x45,
- 0xd2, 0x2c, 0x6f, 0x28, 0x02, 0x6d, 0xf5, 0xbb, 0x6f, 0xef, 0xe0, 0x93, 0x0b, 0x31, 0xd2, 0x6a,
- 0xa5, 0x3e, 0x2b, 0x6f, 0xc9, 0xe2, 0x75, 0x16, 0x2b, 0x99, 0x26, 0x79, 0xee, 0xcf, 0xa5, 0xff,
- 0x8c, 0xc3, 0xd0, 0x27, 0x72, 0xa2, 0x0f, 0xca, 0xd0, 0x60, 0xc4, 0xed, 0x40, 0x03, 0x8c, 0x0d,
- 0xbd, 0x51, 0xfc, 0x92, 0x80, 0x7c, 0x69, 0x02, 0xfc, 0x26, 0x60, 0x90, 0x85, 0x1d, 0xbd, 0x7f,
- 0xfb, 0xd1, 0x94, 0x60, 0xb9, 0x2d, 0x8f, 0x67, 0x94, 0x16, 0x02, 0x07, 0xa5, 0xfd, 0xfb, 0x98,
- 0xba, 0x76, 0xf8, 0xb0, 0x63, 0x9b, 0x30, 0xe7, 0xf8, 0x82, 0xb8, 0x57, 0xfc, 0xb1, 0xba, 0xee,
- 0x0f, 0x02, 0x49, 0xc8, 0x65, 0x2c, 0xec, 0xe9, 0x49, 0x70, 0x5b, 0x21, 0xe1, 0xe2, 0x0f, 0x50,
- 0x4f, 0xe9, 0x64, 0x94, 0xdf, 0xbb, 0x0d, 0x89, 0x64, 0x1f, 0xc9, 0x1d, 0xab, 0xd7, 0x4f, 0x97,
- 0x8e, 0x5b, 0x52, 0xfc, 0xb2, 0xe0, 0xb3, 0xc9, 0x52, 0x55, 0x94, 0x35, 0x66, 0xf1, 0x8e, 0xac,
- 0x89, 0x7c, 0x56, 0xde, 0x51, 0x07, 0xea, 0x2c, 0x56, 0xf1, 0x4c, 0xf2, 0x1f, 0x5d, 0x89, 0x3d,
- 0x06, 0x6b, 0x45, 0xae, 0x83, 0xc6, 0x07, 0x05, 0x45, 0x5f, 0xf0, 0xab, 0x6a, 0xd5, 0x06, 0x20,
- 0xe5, 0xd5, 0x06, 0x33, 0x73, 0x75, 0x94, 0x76, 0x06, 0xf6, 0xb4, 0x45, 0xa4, 0xfa, 0xe5, 0x38,
- 0xf4, 0xd3, 0xdd, 0xa8, 0xdc, 0x01, 0x63, 0x8e, 0xdd, 0x66, 0x59, 0x26, 0x44, 0x1f, 0xf4, 0xc8,
- 0xc7, 0xd9, 0x73, 0xc6, 0xee, 0x9d, 0xb9, 0x45, 0x73, 0x15, 0xad, 0x83, 0xa7, 0xf3, 0xc7, 0x1b,
- 0xad, 0x1b, 0x66, 0x85, 0x4f, 0x29, 0xc0, 0x1a, 0x66, 0x4d, 0xa5, 0x9f, 0x76, 0x81, 0xad, 0x3e,
- 0xcb, 0x0f, 0xf9, 0x59, 0x2b, 0xd2, 0xb7, 0x4f, 0xf9, 0xab, 0x8e, 0x16, 0x73, 0x9a, 0xcb, 0x5b,
- 0x80, 0x15, 0x5a, 0xb8, 0xb7, 0xed, 0x01, 0xc0, 0x5a, 0xde, 0xe7, 0x78, 0x94, 0x6a, 0x80, 0x4d,
- 0xf0, 0x20, 0x1a, 0xdd, 0x9f, 0x85, 0xd8, 0x88, 0x1a, 0x0c, 0xf9, 0x55, 0x08, 0x38, 0xf0, 0x49,
- 0xd5, 0x0b, 0x6b, 0x0a, 0xe1, 0x8a, 0xac, 0x5e, 0x6b, 0x4b, 0x38, 0x54, 0x72, 0x9d, 0xd5, 0xfb,
- 0x07, 0x27, 0x04, 0x22, 0xe3, 0xe7, 0x59, 0xe5, 0x04, 0xa4, 0xd8, 0xc7, 0x79, 0xac, 0x07, 0x91,
- 0xea, 0xd7, 0x4f, 0xfb, 0x16, 0x59, 0x78, 0x9f, 0x4f, 0x86, 0xef, 0x64, 0x45, 0x18, 0xea, 0x68,
- 0x56, 0xca, 0xf2, 0xe5, 0xf6, 0x04, 0x4f, 0x7d, 0xf2, 0x5b, 0xa7, 0x98, 0xd3, 0x7c, 0x56, 0xa6,
- 0x4d, 0x71, 0xe6, 0x4f, 0x1f, 0xf9, 0xb1, 0x8a, 0xe6, 0x2a, 0x99, 0xc5, 0x8d, 0x25, 0x4d, 0x36,
- 0x55, 0x1e, 0x31, 0xb2, 0x56, 0x67, 0xad, 0x9e, 0x31, 0x95, 0xdf, 0x2c, 0xe6, 0xf7, 0x55, 0xb6,
- 0x43, 0x3f, 0xee, 0x0b, 0x1a, 0xf4, 0x03, 0x83, 0xee, 0xa1, 0xea, 0x88, 0x7f, 0xbe, 0x43, 0xd7,
- 0x1a, 0xf7, 0x55, 0x26, 0x89, 0xdc, 0xa0, 0x17, 0x55, 0x8a, 0x16, 0x31, 0x4d, 0x20, 0x1a, 0x21,
- 0x0b, 0xf1, 0x8e, 0xbd, 0x26, 0xa8, 0x57, 0xef, 0x8e, 0x1a, 0xfb, 0x52, 0xad, 0xc5, 0x0b, 0xd1,
- 0xe3, 0xbe, 0x43, 0x9d, 0xf0, 0xb3, 0x93, 0x73, 0x43, 0xa9, 0x44, 0xee, 0xce, 0x2f, 0xe3, 0x18,
- 0x96, 0x34, 0x85, 0x01, 0xfb, 0x7e, 0xaf, 0xdd, 0x85, 0xea, 0xd2, 0xdc, 0x0d, 0x23, 0x96, 0x2c,
- 0x27, 0xb3, 0xf3, 0x0c, 0xbe, 0x4d, 0xc8, 0xd5, 0xf3, 0x72, 0x91, 0xd9, 0x5c, 0x57, 0x27, 0x13,
- 0xdd, 0x2e, 0x26, 0xe0, 0x67, 0x41, 0x19, 0x52, 0x26, 0x9f, 0xbb, 0xb2, 0xea, 0xd3, 0xdd, 0x3a,
- 0x44, 0x18, 0xea, 0x29, 0xf9, 0x13, 0x5a, 0x66, 0xea, 0x05, 0x32, 0x4f, 0x06, 0x12, 0x44, 0x46,
- 0x26, 0xff, 0xb2, 0x80, 0xde, 0x6c, 0x96, 0x35, 0xb2, 0x89, 0xb9, 0xb5, 0x4f, 0x2e, 0x26, 0xa2,
- 0x35, 0x61, 0xeb, 0xc0, 0xb1, 0x5a, 0xdd, 0xce, 0xeb, 0x2c, 0x04, 0x0e, 0x89, 0x39, 0x35, 0xf3,
- 0xdc, 0x62, 0x67, 0x6c, 0x07, 0x60, 0x47, 0xb2, 0x67, 0x64, 0x93, 0xde, 0xf9, 0xaa, 0xdc, 0x8b,
- 0xa4, 0x72, 0x6a, 0xe3, 0xa9, 0xc3, 0x2b, 0xf6, 0x6a, 0x62, 0x0e, 0x15, 0xfd, 0xb6, 0xa4, 0x4e,
- 0x58, 0x84, 0xfa, 0xa1, 0xf3, 0x09, 0xfd, 0x74, 0xfa, 0xd0, 0xd4, 0xd5, 0x21, 0xe7, 0x58, 0x47,
- 0xcf, 0xfc, 0x3e, 0x2c, 0x68, 0x56, 0x0c, 0x49, 0x3e, 0xc1, 0x2e, 0x65, 0x3f, 0xbd, 0xcf, 0xda,
- 0xd0, 0xb4, 0xed, 0xf3, 0xc2, 0x2f, 0x49, 0xb8, 0xed, 0xda, 0xb0, 0x4b, 0x2d, 0xc3, 0xd0, 0xcb,
- 0x7c, 0xe3, 0xca, 0xfa, 0xed, 0x27, 0xd7, 0x42, 0xca, 0x6c, 0x3d, 0xb8, 0x48, 0x3b, 0x7c, 0x44,
- 0x5c, 0x77, 0x3d, 0xd4, 0xb0, 0x8d, 0x46, 0x72, 0x3d, 0xba, 0x74, 0xa6, 0x6d, 0xc0, 0x5c, 0xc6,
- 0x7e, 0x7b, 0x48, 0x21, 0x2d, 0x65, 0x6b, 0x41, 0x48, 0x59, 0x6d, 0x60, 0x6e, 0xc9, 0x7e, 0xe5,
- 0xfe, 0x6e, 0x12, 0x99, 0x9a, 0x88, 0x6a, 0x81, 0x12, 0x87, 0x8a, 0x18, 0xfa, 0xa3, 0xfe, 0xa8,
- 0xaa, 0x3c, 0x62, 0xa7, 0xac, 0xce, 0x99, 0xff, 0x62, 0xe9, 0x7d, 0x58, 0x0f, 0x2d, 0xaa, 0xaf,
- 0x2b, 0x65, 0x79, 0x93, 0x7b, 0x02, 0xc6, 0xdf, 0x79, 0xcc, 0xb2, 0x4c, 0x88, 0x3e, 0x2b, 0x53,
- 0xc9, 0x97, 0x7b, 0x82, 0xeb, 0x90, 0x0b, 0x4c, 0x7b, 0x9e, 0xde, 0xce, 0x55, 0x68, 0xc9, 0xfa,
- 0x92, 0xc7, 0x42, 0x74, 0xb8, 0xfa, 0x14, 0xdb, 0x42, 0x80, 0x72, 0xaf, 0x41, 0x04, 0x92, 0xad,
- 0xca, 0x43, 0xb8, 0xd5, 0x4b, 0xf3, 0xe9, 0xaf, 0xb8, 0x50, 0xa6, 0x7a, 0x60, 0xe3, 0xca, 0xea,
- 0x4c, 0x3d, 0xa7, 0xc3, 0x7f, 0xd8, 0xef, 0x6a, 0xa7, 0xd1, 0xb1, 0xa9, 0x9e, 0x5c, 0x4c, 0x87,
- 0x9d, 0xc5, 0x0b, 0xbc, 0xdd, 0xd6, 0xf8, 0x32, 0x0b, 0xf0, 0x29, 0x8e, 0xa0, 0xe6, 0x9d, 0xfd,
- 0xa7, 0xa6, 0xa9, 0xb4, 0x09, 0xa0, 0xc9, 0x15, 0xa9, 0xac, 0x76, 0xa1, 0xc8, 0x3d, 0xa7, 0x5e,
- 0x59, 0xc8, 0xbb, 0x2d, 0x93, 0x28, 0xa3, 0x94, 0xbb, 0x2b, 0xfc, 0xb9, 0x32, 0x9e, 0x59, 0xf6,
- 0x9e, 0x11, 0xc8, 0xeb, 0x7d, 0xb5, 0x1a, 0xd1, 0xc8, 0x3e, 0x51, 0x3a, 0x95, 0x6d, 0x9e, 0xed,
- 0x1d, 0xd0, 0x51, 0x04, 0x6a, 0x3b, 0xf9, 0xf2, 0x51, 0x2e, 0xce, 0xf6, 0x34, 0x8c, 0x1d, 0xb0,
- 0x01, 0x4c, 0x41, 0x8c, 0x60, 0x21, 0x5e, 0xe0, 0x41, 0xfb, 0x28, 0x6c, 0x13, 0x79, 0x01, 0xb1,
- 0xc2, 0x66, 0xf5, 0x3f, 0xcd, 0x38, 0x5c, 0xa3, 0xf5, 0x84, 0x25, 0x9c, 0xf8, 0xad, 0xc2, 0x2b,
- 0x28, 0xb1, 0xba, 0xc4, 0xdb, 0x61, 0x24, 0x3c, 0xba, 0x02, 0xca, 0xf8, 0xbd, 0xb5, 0x28, 0x43,
- 0xb4, 0x38, 0xf0, 0xf4, 0x66, 0x96, 0x82, 0xee, 0xf0, 0x09, 0xcb, 0x1a, 0x0e, 0x2a, 0xb4, 0x0f,
- 0x19, 0x23, 0x96, 0x71, 0x29, 0xbf, 0x42, 0xf4, 0x96, 0x44, 0x6e, 0x85, 0x78, 0xab, 0x19, 0x31,
- 0x85, 0xaa, 0xdc, 0x41, 0x94, 0x48, 0xe4, 0x26, 0xdc, 0x4f, 0x6f, 0x67, 0xcb, 0x34, 0x85, 0x7d,
- 0x3c, 0x08, 0xe7, 0xa6, 0x57, 0xb0, 0x36, 0x22, 0xe7, 0x03, 0xaf, 0x84, 0x02, 0x0e, 0x3c, 0x83,
- 0x40, 0xeb, 0x2d, 0x5c, 0xba, 0x97, 0xe1, 0x60, 0x2d, 0x6f, 0x92, 0x3c, 0x4a, 0x35, 0x40, 0xc7,
- 0x1e, 0x04, 0x92, 0x53, 0xca, 0x58, 0x1b, 0x11, 0x92, 0xe0, 0xb6, 0x42, 0x01, 0x07, 0x1e, 0xa0,
- 0x95, 0xe0, 0x46, 0x56, 0x5b, 0x1d, 0x4d, 0x3e, 0x46, 0x24, 0xaa, 0x68, 0x38, 0xa8, 0x95, 0x3c,
- 0xab, 0x70, 0x23, 0x2b, 0xcc, 0xef, 0xc7, 0x1f, 0x23, 0x12, 0x55, 0x34, 0x1c, 0x54, 0xab, 0x1e,
- 0xb3, 0x1f, 0xf4, 0xd6, 0x85, 0x71, 0xdb, 0x0b, 0xf4, 0xad, 0x13, 0xdd, 0x77, 0x86, 0xb3, 0x9e,
- 0xeb, 0x9b, 0x0e, 0x77, 0x76, 0x78, 0x26, 0x7f, 0x0e, 0x7d, 0xc7, 0x08, 0x56, 0x61, 0xeb, 0xd9,
- 0xfa, 0x9d, 0xd5, 0xec, 0xd9, 0x0c, 0xd1, 0x87, 0xd5, 0xed, 0x2a, 0x6b, 0xb6, 0x84, 0xfa, 0x29,
- 0x2a, 0x29, 0x38, 0x1f, 0x1b, 0x23, 0x98, 0x3f, 0x38, 0x37, 0x9a, 0x20, 0x9b, 0x47, 0x2a, 0xe2,
- 0xac, 0x57, 0x27, 0x09, 0x2f, 0x08, 0x9e, 0xfa, 0x27, 0xb6, 0x8d, 0xf3, 0x65, 0xf8, 0xac, 0x8f,
- 0x2d, 0x0e, 0x3c, 0x3d, 0xf8, 0xc4, 0xc1, 0xda, 0x3c, 0x93, 0x42, 0xe7, 0xe2, 0xeb, 0x2d, 0x73,
- 0x25, 0x2b, 0x71, 0xd7, 0x7e, 0x0f, 0x74, 0xd6, 0x71, 0x47, 0xc1, 0x01, 0x7a, 0xa5, 0x25, 0xb2,
- 0x4a, 0x56, 0xe2, 0x6d, 0xfc, 0x1e, 0xe8, 0x6f, 0xe2, 0x8e, 0x41, 0x02, 0xf4, 0x89, 0x4a, 0xa7,
- 0xb0, 0xcb, 0x37, 0x81, 0x25, 0x12, 0x39, 0xe8, 0x37, 0x63, 0x6b, 0x69, 0x42, 0x0d, 0xb0, 0x8e,
- 0x41, 0xa7, 0x6c, 0xd0, 0xda, 0xb6, 0xbf, 0x80, 0x6c, 0x94, 0xba, 0x50, 0x59, 0x4c, 0x41, 0x76,
- 0x30, 0xde, 0x6d, 0x39, 0x92, 0xff, 0x38, 0x28, 0x6d, 0xbd, 0x8c, 0x11, 0xd6, 0x67, 0x30, 0xc3,
- 0x33, 0x0a, 0xae, 0x6e, 0x32, 0x9c, 0xda, 0xcb, 0xae, 0x73, 0xf4, 0xa5, 0xe3, 0xec, 0x33, 0xd3,
- 0x65, 0xc0, 0x5c, 0x8b, 0xc4, 0x98, 0x95, 0xb6, 0x5c, 0x28, 0x53, 0x3d, 0x30, 0x90, 0x65, 0x75,
- 0x8b, 0xe4, 0xd4, 0x05, 0x91, 0x45, 0x56, 0x2f, 0xd4, 0xc4, 0x1c, 0x2a, 0x39, 0xaf, 0x8b, 0x9c,
- 0xef, 0x68, 0xc9, 0x02, 0x35, 0xfc, 0x9d, 0x79, 0xc9, 0x17, 0x67, 0x7b, 0x1a, 0x46, 0xef, 0x58,
- 0x09, 0x69, 0x0c, 0x66, 0xe6, 0xea, 0xeb, 0xec, 0x0c, 0x2f, 0xab, 0x8a, 0x8b, 0x37, 0x09, 0x70,
- 0x9b, 0xae, 0x4e, 0x12, 0x5e, 0x10, 0xff, 0x37, 0x4e, 0xaf, 0xd9, 0x25, 0xca, 0x33, 0x9b, 0xdd,
- 0x6f, 0x7d, 0x93, 0xba, 0x82, 0x11, 0x9c, 0xb9, 0x93, 0xc9, 0x80, 0x03, 0x8e, 0x2c, 0x6f, 0x15,
- 0x84, 0xe6, 0x9d, 0xcd, 0xf4, 0x69, 0xba, 0xc6, 0x9d, 0xb4, 0x47, 0x0b, 0xd8, 0x4d, 0x84, 0xcc,
- 0x15, 0xf5, 0x1c, 0xee, 0xec, 0xf0, 0x4c, 0xfe, 0x1c, 0xfa, 0x4d, 0x10, 0xac, 0xc2, 0x15, 0x71,
- 0x75, 0x8a, 0xc6, 0x9c, 0x0b, 0xcd, 0x3c, 0xae, 0xc6, 0x43, 0x96, 0x32, 0xc3, 0x0c, 0x75, 0x34,
- 0x61, 0x33, 0x9b, 0xfe, 0x87, 0x1c, 0x2e, 0xb0, 0x9b, 0x42, 0xf3, 0x4e, 0x7c, 0xb7, 0x61, 0xf4,
- 0xf9, 0x49, 0x16, 0xbb, 0x79, 0x6f, 0x33, 0x64, 0x16, 0x23, 0x52, 0xdf, 0x83, 0x0f, 0xf9, 0x39,
- 0x12, 0xd2, 0x18, 0xcc, 0x0f, 0x17, 0x15, 0x1b, 0x18, 0x5e, 0x95, 0xd7, 0xd5, 0x6e, 0x12, 0xe0,
- 0x70, 0x35, 0x40, 0x65, 0x28, 0x68, 0xd9, 0x48, 0x40, 0xd2, 0x1e, 0x2d, 0x9c, 0x52, 0x70, 0x04,
- 0xa3, 0x55, 0x6e, 0xc1, 0x4a, 0x24, 0x72, 0x13, 0x6e, 0xc6, 0xd6, 0xd2, 0x84, 0x1a, 0xa3, 0xdf,
- 0x9c, 0x89, 0x4a, 0x30, 0xbd, 0xf7, 0xa6, 0xd2, 0x4a, 0x0b, 0x01, 0xe2, 0xb3, 0x9f, 0x9c, 0x4c,
- 0x4e, 0xa5, 0x25, 0x18, 0xbf, 0x9a, 0x53, 0x69, 0x25, 0xe4, 0xe1, 0x71, 0xb8, 0xae, 0x4e, 0x26,
- 0xa9, 0xe8, 0xa1, 0xf0, 0x0c, 0xad, 0x7b, 0x1c, 0xa1, 0x27, 0x05, 0xec, 0x3a, 0xa6, 0xa9, 0xbf,
- 0x7b, 0xc4, 0xce, 0xd8, 0x0e, 0xc0, 0x8e, 0xa7, 0xce, 0xc8, 0xe5, 0x7f, 0x31, 0x97, 0x7b, 0xd5,
- 0x47, 0xcc, 0x29, 0x7e, 0x59, 0x70, 0xb8, 0x85, 0x29, 0xcb, 0x4a, 0xfb, 0x33, 0x99, 0x47, 0x56,
- 0xe9, 0x03, 0x8c, 0xac, 0xb6, 0x3a, 0x9a, 0x7c, 0x8c, 0x48, 0x97, 0xd0, 0x70, 0x93, 0xe9, 0x78,
- 0x7a, 0x88, 0x8f, 0x54, 0x6e, 0xe1, 0xd0, 0x47, 0x8f, 0x33, 0xcd, 0x13, 0x22, 0xee, 0x7a, 0x64,
- 0xf1, 0x6c, 0x5b, 0x51, 0xff, 0xa4, 0x86, 0x68, 0x5b, 0xf7, 0xd1, 0x39, 0x1b, 0x41, 0xf1, 0xf8,
- 0xc4, 0x0d, 0xb0, 0x91, 0x4e, 0xfe, 0x5b, 0xa6, 0xb0, 0xdb, 0xd5, 0x37, 0x92, 0x78, 0xc4, 0x0b,
- 0xaf, 0x83, 0xe4, 0x5e, 0x8f, 0x6b, 0x7c, 0x19, 0xe4, 0x78, 0xf5, 0x47, 0x50, 0x73, 0xaf, 0x9f,
- 0x68, 0x5a, 0x97, 0x98, 0x61, 0xf6, 0xc5, 0x5c, 0x97, 0x6d, 0x58, 0xc4, 0xf7, 0x80, 0x68, 0x84,
- 0xbe, 0x85, 0x3f, 0xc5, 0x20, 0x1f, 0x8b, 0xe1, 0x3f, 0xe8, 0x18, 0x24, 0xb0, 0x96, 0xbe, 0x6f,
- 0xbf, 0xc9, 0x7e, 0x49, 0x40, 0x3e, 0xd5, 0x01, 0x7e, 0x13, 0x30, 0x48, 0xa3, 0xef, 0xbf, 0xde,
- 0x2e, 0xda, 0xff, 0x6a, 0x58, 0xa7, 0x23, 0x39, 0xff, 0x5d, 0x3a, 0x53, 0xd7, 0x60, 0x2e, 0x63,
- 0x48, 0xce, 0x60, 0xb6, 0x3c, 0x5c, 0x54, 0x6c, 0x60, 0xbb, 0x11, 0xda, 0xd2, 0x7b, 0x48, 0x06,
- 0xce, 0xb0, 0x7f, 0xa0, 0x08, 0x77, 0x52, 0xa9, 0x7f, 0x3a, 0x06, 0x09, 0x2c, 0xc4, 0xce, 0x6b,
- 0x3d, 0x44, 0xa6, 0x2a, 0x37, 0x91, 0x68, 0xc2, 0xa6, 0xf8, 0x87, 0xe8, 0x11, 0x77, 0x3d, 0x32,
- 0x32, 0x46, 0xef, 0xe2, 0x52, 0xbd, 0x84, 0x2b, 0xef, 0x88, 0xdc, 0xc9, 0xf0, 0x95, 0x32, 0x62,
- 0xe6, 0x01, 0xc5, 0x64, 0xd3, 0x16, 0x76, 0x95, 0xc5, 0x38, 0xcc, 0xf1, 0x91, 0x71, 0xe6, 0x28,
- 0x6b, 0x8e, 0x54, 0xcf, 0xc1, 0x95, 0x27, 0xbf, 0x54, 0xa3, 0x20, 0x70, 0xc2, 0x0b, 0x6b, 0x94,
- 0xbb, 0x3a, 0xb9, 0x3c, 0x03, 0xba, 0x6e, 0x07, 0xb9, 0x79, 0x90, 0x3b, 0xef, 0xc8, 0xbb, 0x5f,
- 0x91, 0x13, 0x81, 0x23, 0x18, 0x99, 0xf6, 0x38, 0x81, 0x4e, 0x0a, 0x1b, 0x74, 0x8f, 0x91, 0xbd,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x83, 0xc1, 0x99, 0xef, 0x17, 0x8e, 0xe3, 0x23, 0x99, 0x10, 0x9f, 0xcc, 0xa1, 0xe1, 0x83, 0x5d,
- 0xe0, 0x6a, 0x80, 0xca, 0x50, 0xd0, 0x71, 0x90, 0x80, 0x67, 0x3c, 0x5a, 0xfb, 0xa4, 0xe0, 0x08,
- 0x82, 0x8d, 0xd8, 0x63, 0x77, 0xaf, 0xbd, 0xc3, 0xd8, 0xeb, 0xb7, 0xa0, 0xb2, 0x98, 0x82, 0xec,
- 0xd7, 0x93, 0xe9, 0xd1, 0x21, 0xc8, 0x10, 0x5d, 0xe9, 0x7e, 0x68, 0x8c, 0x54, 0x6f, 0xd7, 0x5a,
- 0xf2, 0xb8, 0x98, 0x06, 0x5f, 0xc7, 0x64, 0x8b, 0x98, 0x39, 0xa9, 0x8d, 0x2e, 0xca, 0xf2, 0xe8,
- 0xcd, 0x64, 0xbc, 0xf7, 0xa8, 0x14, 0xb0, 0x4a, 0xbc, 0xf4, 0x7e, 0xbd, 0x19, 0x4f, 0xcd, 0x7b,
- 0x78, 0x10, 0x0d, 0x8f, 0xae, 0xa3, 0x6c, 0x44, 0x0d, 0x06, 0x9d, 0xcb, 0x04, 0x1c, 0x78, 0xc5,
- 0xc0, 0xfe, 0x77, 0xe4, 0x0d, 0x7a, 0xe0, 0xa0, 0x77, 0xb1, 0x75, 0x44, 0xde, 0x5f, 0xc0, 0x8a,
- 0x63, 0xab, 0x19, 0x25, 0x47, 0x5e, 0x92, 0xb3, 0x19, 0x77, 0xa3, 0x96, 0x5a, 0x45, 0x63, 0x55,
- 0x87, 0x32, 0x5e, 0x9a, 0x54, 0x0a, 0x58, 0x25, 0x5e, 0x7a, 0x3f, 0xbf, 0xed, 0xc6, 0x87, 0xdc,
- 0xfc, 0xf6, 0x90, 0x42, 0x5a, 0xca, 0xd6, 0x82, 0x90, 0xb2, 0xda, 0xc0, 0xdc, 0x51, 0xfc, 0x09,
- 0x94, 0xac, 0x07, 0xda, 0x3b, 0x3c, 0x13, 0xde, 0x07, 0xdf, 0x82, 0x04, 0x2b, 0xd1, 0x94, 0x8d,
- 0x08, 0x25, 0x4d, 0xea, 0x86, 0xcb, 0xb5, 0x0c, 0x4d, 0xd4, 0x83, 0xe6, 0x98, 0x4e, 0x08, 0xc1,
- 0x81, 0x59, 0x1b, 0x34, 0xd7, 0xcc, 0x5f, 0x20, 0x1b, 0x25, 0xcf, 0x14, 0x87, 0x13, 0x81, 0xfc,
- 0x17, 0x6d, 0x9e, 0x35, 0x2c, 0xb2, 0xf0, 0xfd, 0x9e, 0xcf, 0x1d, 0xc8, 0x8a, 0x30, 0x17, 0xd0,
- 0x62, 0xe7, 0x58, 0xa9, 0x27, 0x7f, 0xcc, 0x53, 0x58, 0x8c, 0x8b, 0xfa, 0x49, 0x3c, 0x62, 0xe4,
- 0xd8, 0x91, 0xa0, 0x19, 0x44, 0xe4, 0xfc, 0xb4, 0xa0, 0x0e, 0x33, 0xad, 0xb5, 0x8d, 0xd8, 0x0a,
- 0x31, 0x92, 0x2c, 0xb5, 0xf2, 0xde, 0x66, 0xc8, 0x2c, 0x46, 0xa4, 0x7d, 0xc5, 0x1e, 0x31, 0x72,
- 0x10, 0x4a, 0x9a, 0x17, 0xcf, 0x55, 0xa9, 0x18, 0x9a, 0x6b, 0xc5, 0x0f, 0xf3, 0x9c, 0x10, 0x41,
- 0x21, 0xd8, 0xb6, 0xa2, 0x3d, 0x8b, 0xcf, 0xd0, 0xb6, 0x2d, 0x61, 0x72, 0x36, 0x82, 0x21, 0x33,
- 0xda, 0x09, 0x22, 0xc2, 0x84, 0xa6, 0x40, 0xb7, 0x22, 0x3b, 0x63, 0x75, 0x93, 0x7f, 0xda, 0xab,
- 0x66, 0x14, 0x9f, 0xdc, 0x64, 0xfb, 0x77, 0x55, 0x9f, 0xe6, 0x2b, 0x89, 0x05, 0x1b, 0x66, 0x65,
- 0x39, 0xb7, 0x61, 0x5f, 0x74, 0x15, 0xd3, 0xc4, 0x61, 0x92, 0x27, 0x9b, 0x5d, 0x50, 0x39, 0xb3,
- 0xfd, 0xba, 0xd1, 0xce, 0x3a, 0xeb, 0x88, 0x62, 0xd1, 0x49, 0xf2, 0xac, 0xcf, 0x28, 0xfd, 0xb8,
- 0x0e, 0x4e, 0x08, 0x44, 0x05, 0x0d, 0xb2, 0x09, 0x08, 0x8b, 0x73, 0x4d, 0xf2, 0x9b, 0x0e, 0xe1,
- 0x6e, 0x31, 0xd2, 0x36, 0xe2, 0x30, 0xc2, 0x59, 0xd2, 0x32, 0xa8, 0x6f, 0x9d, 0x55, 0x6e, 0xa4,
- 0x8f, 0x17, 0x13, 0x70, 0xd2, 0xc1, 0xed, 0x29, 0x13, 0xae, 0xbc, 0x59, 0x75, 0x88, 0x8f, 0x1d,
- 0x99, 0x36, 0xcc, 0xc9, 0x9e, 0x52, 0x43, 0x34, 0xcc, 0x9a, 0x89, 0xfd, 0xec, 0xc1, 0x99, 0x7c,
- 0x6d, 0xe5, 0x11, 0x61, 0x42, 0x53, 0x20, 0xba, 0x11, 0xfc, 0xd0, 0xdb, 0xa8, 0xde, 0x6d, 0xb4,
- 0xf3, 0xf4, 0xd9, 0x8a, 0x3f, 0xe6, 0x3a, 0x6b, 0xd9, 0xc2, 0x81, 0xe1, 0x3d, 0xb3, 0xf3, 0x59,
- 0xde, 0xfa, 0xe5, 0xb7, 0xc7, 0x22, 0xfb, 0xb1, 0xe5, 0x51, 0xc3, 0x06, 0xdf, 0x58, 0xde, 0x2a,
- 0x88, 0x30, 0x17, 0x52, 0x31, 0x26, 0xb4, 0xcc, 0x17, 0x0a, 0x64, 0x9e, 0x0c, 0x24, 0x88, 0x8c,
- 0x0d, 0x9a, 0xcb, 0x13, 0xa5, 0x6e, 0x50, 0xea, 0xcb, 0x45, 0x0b, 0xf9, 0xc7, 0x10, 0x0d, 0xf1,
- 0x8d, 0x8f, 0x91, 0xab, 0x12, 0x83, 0x51, 0x2a, 0x91, 0x9b, 0xec, 0x81, 0x53, 0x7a, 0x8d, 0xbc,
- 0xd4, 0x47, 0x2a, 0x86, 0x81, 0xab, 0xf2, 0xbe, 0x2a, 0xb0, 0x10, 0x38, 0x61, 0xe4, 0xd4, 0x4a,
- 0x5b, 0x50, 0x39, 0xf6, 0x53, 0x6a, 0x1f, 0x97, 0x39, 0x1e, 0xac, 0x61, 0x14, 0x6c, 0x5b, 0x57,
- 0xd1, 0xf8, 0xac, 0x7f, 0xa2, 0x0e, 0x17, 0x58, 0xac, 0x21, 0x98, 0x27, 0x3e, 0xba, 0xd1, 0x7a,
- 0x5d, 0x3b, 0x7c, 0x58, 0xd0, 0xac, 0x18, 0x92, 0x7c, 0x41, 0x5c, 0xca, 0x7e, 0xb9, 0x5d, 0x77,
- 0x03, 0xd4, 0xc3, 0x57, 0xa0, 0x63, 0xe2, 0xe3, 0xc3, 0xce, 0x78, 0xb4, 0x35, 0x8b, 0x03, 0x10,
- 0xc8, 0xdb, 0x3a, 0x0e, 0x8b, 0xb1, 0x55, 0xac, 0x3a, 0x65, 0xf6, 0xa2, 0x46, 0x11, 0xc8, 0x4b,
- 0xc1, 0xb2, 0x36, 0x68, 0x6d, 0x5b, 0xbe, 0x40, 0x36, 0x4a, 0x5d, 0x28, 0xcd, 0x26, 0xc1, 0x3b,
- 0x77, 0x12, 0x44, 0x47, 0xcb, 0x8f, 0x80, 0xad, 0x44, 0x76, 0xc6, 0xea, 0xe5, 0xfe, 0x77, 0x95,
- 0x3a, 0x63, 0xa2, 0x08, 0xd4, 0x76, 0x31, 0x27, 0xa2, 0x5c, 0x5f, 0x2f, 0x68, 0xdb, 0x3a, 0xa3,
- 0xf6, 0x4b, 0x5f, 0x73, 0x1c, 0x43, 0xdf, 0x8d, 0x5f, 0x53, 0x09, 0xfe, 0x62, 0xed, 0xf6, 0x69,
- 0xb9, 0xa2, 0x3b, 0xe7, 0xc3, 0xf8, 0xd2, 0x04, 0x3b, 0x4c, 0xc0, 0xe3, 0xc9, 0x3a, 0xb9, 0xfe,
- 0xa1, 0xcd, 0xec, 0x1a, 0x8a, 0x66, 0xce, 0x10, 0xec, 0xf3, 0x86, 0x0a, 0xa2, 0xe8, 0xa1, 0x7e,
- 0xc6, 0x95, 0x32, 0x4a, 0x8e, 0xbc, 0xe7, 0xa5, 0x32, 0xee, 0x85, 0xef, 0xb4, 0x8a, 0xc6, 0xaa,
- 0x7d, 0xaf, 0x8b, 0x76, 0x8d, 0x06, 0x89, 0xa2, 0x8b, 0x97, 0x15, 0xd4, 0x5b, 0x42, 0x7d, 0xf5,
- 0x24, 0x67, 0x30, 0x5b, 0x1e, 0x2e, 0x2a, 0x36, 0x30, 0xbc, 0xe9, 0x6d, 0x69, 0xdc, 0x24, 0x03,
- 0xdf, 0xb6, 0xa4, 0x3b, 0xa7, 0x03, 0xa5, 0x51, 0xa4, 0xaa, 0xeb, 0x6a, 0xcc, 0x21, 0xdf, 0x9b,
- 0x64, 0x8c, 0x1d, 0x07, 0xa4, 0xb9, 0xcb, 0x56, 0x1d, 0xd3, 0x7b, 0x51, 0x23, 0xe9, 0x64, 0xc4,
- 0x23, 0x40, 0x34, 0x79, 0xfd, 0xc9, 0x73, 0xd3, 0x34, 0x18, 0x31, 0xaa, 0x10, 0x70, 0x23, 0x92,
- 0x73, 0xe1, 0x83, 0x32, 0x88, 0x0b, 0x3b, 0xab, 0x83, 0x1c, 0x66, 0x99, 0xa9, 0xd9, 0x73, 0x14,
- 0x69, 0x16, 0xd6, 0x14, 0x01, 0xd7, 0x9b, 0xbc, 0xd6, 0x96, 0x70, 0xa8, 0xe4, 0xf9, 0x69, 0x35,
- 0x18, 0x6f, 0xd7, 0xfd, 0x49, 0x9e, 0x1c, 0x14, 0xd7, 0xbf, 0x46, 0xe9, 0x6b, 0xd2, 0x18, 0x80,
- 0xbc, 0x1d, 0xbd, 0x1e, 0xe0, 0x5d, 0x37, 0xe2, 0xbd, 0xdd, 0x48, 0xfc, 0x96, 0x64, 0xbc, 0xce,
- 0x42, 0x73, 0xaf, 0x87, 0x7a, 0xd5, 0x5d, 0x63, 0xaf, 0x5a, 0xc2, 0xe4, 0x6c, 0xc7, 0x42, 0x66,
- 0x1f, 0x48, 0xd3, 0xdf, 0xaa, 0x79, 0x45, 0xf1, 0xd3, 0x1b, 0x9e, 0x2e, 0x12, 0x7e, 0x1f, 0x11,
- 0x98, 0x7a, 0x8d, 0x45, 0xfe, 0x73, 0x1d, 0xd4, 0x8d, 0x61, 0xa1, 0x91, 0xff, 0xb8, 0x98, 0xcd,
- 0x53, 0x75, 0x74, 0x1c, 0xd5, 0xa1, 0xaa, 0x9b, 0x74, 0xca, 0x2f, 0x87, 0x8c, 0x22, 0x53, 0x96,
- 0xe4, 0x99, 0x47, 0xbf, 0x13, 0x54, 0xca, 0x96, 0x47, 0x0d, 0x9c, 0x29, 0xb7, 0x83, 0xe4, 0x89,
- 0xae, 0xcf, 0xa5, 0xd2, 0xef, 0x4a, 0x22, 0xf9, 0xa5, 0x83, 0xdd, 0x2b, 0x43, 0x0a, 0xae, 0x2e,
- 0xd9, 0xdd, 0xe1, 0x95, 0x24, 0xc5, 0xa2, 0x54, 0xe1, 0xf5, 0x1b, 0xc1, 0xa6, 0xf4, 0xd9, 0xbb,
- 0x22, 0x0c, 0x75, 0xf5, 0x9d, 0xe8, 0x2d, 0x33, 0x75, 0xe3, 0x19, 0xc6, 0x03, 0x09, 0x22, 0x23,
- 0x52, 0x39, 0x35, 0x90, 0xb5, 0x80, 0xf4, 0x7b, 0x35, 0x31, 0x07, 0xeb, 0x9f, 0x5b, 0x52, 0x27,
- 0x05, 0xbf, 0x86, 0xf9, 0x23, 0xa5, 0xe5, 0xe6, 0x86, 0x91, 0x88, 0x1f, 0x5f, 0x5e, 0x05, 0x30,
- 0x6c, 0xa9, 0x50, 0xed, 0x22, 0x72, 0x7e, 0x5a, 0x50, 0x07, 0xf8, 0xb7, 0xbb, 0xa7, 0x6c, 0x05,
- 0xd3, 0x60, 0x2e, 0xa4, 0x62, 0x4c, 0xab, 0x5b, 0x2e, 0x14, 0xc8, 0xff, 0x18, 0x48, 0xd3, 0xdb,
- 0xff, 0x22, 0x53, 0x15, 0xfa, 0xa9, 0x34, 0x61, 0x53, 0x7c, 0xa2, 0x74, 0xe9, 0xda, 0xff, 0x19,
- 0x9a, 0xe2, 0x0f, 0x9e, 0x3e, 0x31, 0xa1, 0xd7, 0x0f, 0x54, 0xf1, 0x49, 0xd9, 0x4a, 0x9a, 0x6c,
- 0x2c, 0x42, 0x7d, 0xb1, 0x98, 0xe5, 0x9f, 0x3a, 0x7d, 0x68, 0x6a, 0x8b, 0xf1, 0x92, 0x2c, 0xc2,
- 0x29, 0xfd, 0xfb, 0x48, 0xbb, 0x40, 0x7a, 0xdc, 0xfb, 0xf9, 0xe2, 0x94, 0xae, 0xcc, 0x29, 0xf2,
- 0x5e, 0xef, 0xbf, 0x0f, 0x70, 0xcf, 0xfa, 0x71, 0xbf, 0x8f, 0x24, 0x7e, 0x4b, 0x32, 0x5e, 0x67,
- 0x57, 0x86, 0xb3, 0x69, 0x96, 0x25, 0x11, 0x9d, 0xb3, 0xa0, 0x8f, 0xf4, 0xc0, 0x05, 0x57, 0x17,
- 0xed, 0xf0, 0x4b, 0xd9, 0xf5, 0xbe, 0x21, 0x7a, 0x4b, 0x22, 0x37, 0xa3, 0x3c, 0xb4, 0xed, 0xf9,
- 0x46, 0x80, 0x68, 0xf2, 0x39, 0x51, 0xe6, 0x65, 0x68, 0x30, 0x62, 0x97, 0x20, 0xe0, 0x46, 0xe7,
- 0x34, 0x2d, 0xaa, 0x4c, 0xd1, 0x7b, 0x83, 0x2e, 0xaa, 0xd7, 0x2c, 0x62, 0x9a, 0x40, 0x34, 0x42,
- 0x72, 0xad, 0xc2, 0xbe, 0xe8, 0x2a, 0x65, 0x4b, 0xc2, 0xe7, 0x4e, 0xf5, 0xba, 0xa0, 0x72, 0xa5,
- 0xb5, 0x74, 0xb1, 0x78, 0x06, 0xb7, 0xdc, 0x0e, 0xb1, 0xf2, 0xe3, 0x76, 0x1d, 0x53, 0xb5, 0xbe,
- 0x11, 0x06, 0xdb, 0x9b, 0xaf, 0x74, 0xf7, 0xf8, 0xdb, 0x90, 0xed, 0x63, 0xe0, 0xe5, 0x11, 0xf0,
- 0xe2, 0xf2, 0x02, 0x11, 0x90, 0x92, 0xcd, 0x93, 0x02, 0x52, 0x6c, 0x82, 0xdd, 0x56, 0xe2, 0xa9,
- 0xd6, 0xdf, 0xa8, 0x5d, 0x41, 0xe9, 0x4e, 0xbd, 0xa8, 0x85, 0x40, 0xe0, 0x47, 0x16, 0xd6, 0xeb,
- 0xee, 0x24, 0x88, 0x8e, 0x55, 0xdd, 0xc3, 0x99, 0x88, 0xec, 0x4f, 0x17, 0x09, 0x3f, 0xee, 0xe9,
- 0x90, 0x5f, 0xc0, 0xaf, 0x78, 0xb8, 0xa8, 0xd8, 0xc0, 0xb5, 0x22, 0x77, 0x67, 0xf6, 0x90, 0x0c,
- 0x14, 0xb9, 0x5d, 0x62, 0x8c, 0xd1, 0x12, 0x1e, 0x5d, 0x01, 0x65, 0x7c, 0xbf, 0xbb, 0x14, 0xc0,
- 0x3e, 0x90, 0x65, 0x7d, 0x97, 0xf2, 0x8a, 0x21, 0x65, 0x36, 0xff, 0x5c, 0x24, 0xfc, 0x3e, 0x22,
- 0x86, 0x7e, 0x1f, 0x16, 0x34, 0x2b, 0x06, 0xc5, 0x1f, 0x81, 0x17, 0xd3, 0xfe, 0xbf, 0x86, 0x6d,
- 0x49, 0x82, 0x21, 0x3a, 0x5c, 0x7d, 0x0a, 0x8c, 0x21, 0x40, 0x39, 0xb6, 0xc1, 0x02, 0x49, 0xb7,
- 0xf7, 0x07, 0x1e, 0xff, 0x7c, 0x62, 0x81, 0x6d, 0x1e, 0xa8, 0x21, 0x92, 0x71, 0x94, 0xf7, 0xd8,
- 0x0a, 0xbd, 0xcf, 0x31, 0x46, 0x89, 0x09, 0x0f, 0xcf, 0xe1, 0xd3, 0x3e, 0xbe, 0xbc, 0x0a, 0x60,
- },
- { /* 3 */
- 0xa8, 0x78, 0x41, 0x9a, 0x63, 0x9a, 0xaa, 0xcc, 0x6d, 0x6b, 0xb6, 0x2d, 0xbf, 0x63, 0x8e, 0x1b,
- 0xb4, 0x31, 0xad, 0x42, 0xc9, 0x42, 0x37, 0x9b, 0xc6, 0x80, 0x29, 0xcb, 0xc0, 0xc9, 0x15, 0xf8,
- 0x96, 0xde, 0x29, 0xd5, 0x90, 0xd5, 0x18, 0x10, 0xbc, 0xed, 0x40, 0xd2, 0x7a, 0x90, 0xf0, 0x4e,
- 0x1e, 0xe4, 0x7c, 0xcc, 0x37, 0xcc, 0xa4, 0x79, 0x97, 0x9a, 0x27, 0xb6, 0xd7, 0x37, 0xe2, 0xd3,
- 0x8a, 0x97, 0xc5, 0x0d, 0x3a, 0x0d, 0x85, 0x47, 0x17, 0x06, 0xdf, 0x34, 0x05, 0x3a, 0x6b, 0xad,
- 0xf5, 0x02, 0xcd, 0x8d, 0x2d, 0x8d, 0xe6, 0x05, 0x54, 0x61, 0x14, 0x71, 0xb0, 0x2d, 0x33, 0x2f,
- 0x9f, 0x98, 0x64, 0x8f, 0x0e, 0x8f, 0x01, 0xbf, 0x52, 0x33, 0xb9, 0x79, 0xcb, 0x0e, 0x0a, 0x96,
- 0xa5, 0xa7, 0xef, 0xe8, 0x04, 0xe8, 0xc1, 0x3f, 0xfb, 0x57, 0xfc, 0x26, 0x9d, 0x04, 0x86, 0xa3,
- 0x13, 0x3b, 0xd2, 0xbe, 0x50, 0xbe, 0xcf, 0x8a, 0x01, 0xa6, 0x6d, 0xbd, 0xf5, 0x50, 0xea, 0x6b,
- 0x39, 0x25, 0x53, 0x79, 0x38, 0x79, 0x04, 0xb9, 0x8b, 0xcc, 0xa1, 0x27, 0xaa, 0x38, 0x28, 0x1d,
- 0xac, 0xe1, 0xa2, 0xb2, 0x9a, 0xb2, 0xd8, 0x90, 0x15, 0x89, 0x05, 0x8d, 0x2c, 0x9a, 0x7c, 0x7b,
- 0x2d, 0x9d, 0xba, 0xf1, 0xa3, 0xf1, 0x7d, 0x56, 0xd0, 0x20, 0x9b, 0x42, 0x30, 0xa3, 0x94, 0x3e,
- 0x83, 0xd1, 0x88, 0x57, 0xa4, 0x57, 0x9c, 0xe8, 0xf9, 0xd8, 0x26, 0x9f, 0xb4, 0xa4, 0x91, 0x75,
- 0x86, 0xff, 0x23, 0x75, 0xf2, 0x75, 0x13, 0xa3, 0x9f, 0xe3, 0xc9, 0x17, 0x73, 0xf2, 0xbe, 0x0d,
- 0xb9, 0xee, 0x03, 0x30, 0xae, 0x30, 0x5c, 0x68, 0x50, 0xbc, 0x63, 0xc0, 0xe2, 0xae, 0x1d, 0x40,
- 0x76, 0xd3, 0x45, 0xda, 0x89, 0xda, 0x7a, 0xed, 0xad, 0xb9, 0x32, 0xee, 0x04, 0x89, 0xa2, 0x5a,
- 0x0f, 0x72, 0x3e, 0x66, 0xfa, 0x66, 0x52, 0xdd, 0xaa, 0x4d, 0xf2, 0x5b, 0x8a, 0xfa, 0x71, 0x88,
- 0x5a, 0xf9, 0xb7, 0x21, 0x85, 0x21, 0xfa, 0xac, 0x63, 0x40, 0xf5, 0x84, 0x60, 0x85, 0xeb, 0x7c,
- 0xa0, 0x89, 0x44, 0xca, 0x52, 0xca, 0x4e, 0x74, 0x9d, 0x6c, 0x13, 0xae, 0x5a, 0x52, 0xa9, 0xdb,
- 0x92, 0x47, 0xca, 0xfd, 0x69, 0xfd, 0x6a, 0x4c, 0xc4, 0x0f, 0xf3, 0x72, 0xe9, 0x69, 0x02, 0x2e,
- 0xe2, 0xa0, 0xfc, 0x1b, 0x84, 0x1b, 0x5b, 0xd3, 0x2d, 0x25, 0xca, 0x6c, 0xd6, 0x84, 0x2b, 0x24,
- 0x34, 0xfa, 0xfd, 0x0b, 0x5f, 0x0b, 0x6f, 0x4a, 0x1d, 0xf0, 0xeb, 0x2c, 0x88, 0x5f, 0x20, 0xa5,
- 0xee, 0xc8, 0x1a, 0x63, 0x4c, 0x63, 0xcd, 0x37, 0xa5, 0xc0, 0xdc, 0x4f, 0xa0, 0x4c, 0xfe, 0x84,
- 0x6d, 0x19, 0x92, 0x34, 0xe8, 0x34, 0x51, 0xdf, 0x5c, 0x18, 0xfa, 0xd0, 0x14, 0xe8, 0x6f, 0xf1,
- 0x1a, 0x7d, 0x9f, 0xe4, 0xce, 0xe4, 0xd6, 0x25, 0xef, 0x78, 0x94, 0x16, 0x44, 0xce, 0x10, 0xb3,
- 0x24, 0xdb, 0xf7, 0xab, 0x3d, 0xab, 0x64, 0xf9, 0x3e, 0xfe, 0x62, 0xe9, 0x81, 0x3d, 0x6e, 0xe6,
- 0x1f, 0x53, 0x34, 0xc6, 0x98, 0xc6, 0x59, 0x6e, 0x89, 0x43, 0x7b, 0x9e, 0x83, 0x98, 0x3f, 0xcb,
- 0xd2, 0xc3, 0xe2, 0x38, 0x22, 0x38, 0x46, 0xc5, 0x48, 0x37, 0x92, 0xe0, 0xcd, 0x22, 0xf9, 0xe1,
- 0x18, 0xd0, 0x0f, 0xf0, 0x53, 0xf0, 0xef, 0x0b, 0xd3, 0x09, 0x2c, 0x46, 0xec, 0x53, 0x69, 0x83,
- 0x37, 0xe0, 0x25, 0x15, 0x6d, 0x15, 0xab, 0x73, 0x3f, 0x58, 0x0f, 0x54, 0x74, 0x6d, 0x84, 0x8d,
- 0x6a, 0x9a, 0xa9, 0x02, 0x23, 0x02, 0xe7, 0xba, 0x06, 0x52, 0xad, 0x08, 0x7b, 0x23, 0x39, 0xb9,
- 0x3f, 0x11, 0x20, 0x45, 0x5c, 0x45, 0x4f, 0xcb, 0xcf, 0x5f, 0xaa, 0xd7, 0x91, 0x5c, 0xa3, 0x4d,
- 0xae, 0x4c, 0x32, 0xa6, 0x07, 0xa6, 0xe1, 0xbe, 0x29, 0xf8, 0xbd, 0xdd, 0x84, 0x07, 0x05, 0x4b,
- 0x10, 0x21, 0x0a, 0xa0, 0x62, 0xa0, 0x0b, 0xb3, 0x23, 0x0e, 0x89, 0xc5, 0x09, 0x62, 0x4e, 0x43,
- 0x46, 0xb0, 0x5b, 0xf9, 0x2f, 0xf9, 0x67, 0xfb, 0xc8, 0xab, 0x6a, 0x62, 0x1f, 0x2f, 0x70, 0x9f,
- 0x6c, 0xae, 0xda, 0x3e, 0x47, 0x3e, 0xac, 0xc8, 0x42, 0xc1, 0xa6, 0xf8, 0x40, 0x47, 0xb2, 0xe9,
- 0xbc, 0xc0, 0xa8, 0x12, 0xf8, 0x12, 0xd3, 0x23, 0x36, 0x87, 0x8c, 0x48, 0x25, 0xf8, 0x32, 0x38,
- 0x68, 0x37, 0x39, 0x16, 0xbe, 0x16, 0xde, 0x94, 0x3a, 0x23, 0x15, 0x58, 0xd3, 0xbe, 0x40, 0x89,
- 0x0b, 0xeb, 0xdd, 0x4e, 0x03, 0x4e, 0x20, 0x81, 0xd2, 0xaf, 0x41, 0xfb, 0x19, 0x03, 0x83, 0xe8,
- 0x3e, 0xa6, 0x68, 0x4f, 0xf3, 0x4f, 0xb2, 0xdc, 0xd1, 0x86, 0xf6, 0xff, 0xc5, 0xf3, 0x7e, 0x55,
- 0xfe, 0xe9, 0x10, 0xc3, 0x2e, 0xc3, 0xc6, 0x84, 0x86, 0xce, 0x55, 0x8a, 0xa9, 0x2e, 0xb0, 0xc7,
- 0xa9, 0xcf, 0x09, 0x90, 0xcc, 0x90, 0x57, 0xdb, 0x73, 0xb2, 0xea, 0x05, 0xeb, 0xcc, 0x53, 0x03,
- 0x28, 0xb3, 0x11, 0xd3, 0xf5, 0xd3, 0xf2, 0x1d, 0xb6, 0x1b, 0x74, 0xca, 0xf7, 0xf5, 0xbb, 0x46,
- 0x7c, 0x8f, 0xd0, 0x9e, 0x25, 0x9e, 0xa7, 0x7b, 0x61, 0xcf, 0x2f, 0x3d, 0x49, 0x25, 0xfc, 0xaa,
- 0xf2, 0x81, 0xf6, 0xbb, 0xe6, 0xbb, 0x50, 0x60, 0x0e, 0x2b, 0x43, 0xa9, 0xdf, 0xe6, 0x65, 0x67,
- 0xbf, 0xda, 0x70, 0x0c, 0xca, 0x0c, 0x17, 0x1a, 0x14, 0x2f, 0x68, 0x30, 0xd9, 0xca, 0x96, 0x10,
- 0xf4, 0xb5, 0x85, 0x87, 0x82, 0x87, 0x1b, 0x12, 0x4a, 0xb8, 0x48, 0x59, 0xe4, 0x82, 0xee, 0x37,
- 0xcb, 0xa4, 0xa5, 0xc2, 0xde, 0xc2, 0x54, 0xd9, 0x85, 0xe7, 0xe2, 0x8e, 0x75, 0xde, 0x4d, 0x7a,
- 0x06, 0x34, 0x73, 0x3c, 0x64, 0x3c, 0x4b, 0x72, 0x44, 0x93, 0x0b, 0xf0, 0x3b, 0x64, 0x8b, 0x50,
- 0xf8, 0xdd, 0x63, 0xff, 0x4a, 0xff, 0x8d, 0xf6, 0xc2, 0x5d, 0x5e, 0x7a, 0x92, 0x4a, 0x3b, 0x97,
- 0xbd, 0x77, 0xe0, 0x18, 0x57, 0x18, 0x2e, 0x34, 0x28, 0x5e, 0xd0, 0x60, 0x71, 0x57, 0xef, 0x20,
- 0x75, 0xc9, 0x9d, 0xc4, 0xbb, 0xc4, 0xbe, 0xd4, 0x8f, 0x11, 0xd6, 0x96, 0xf8, 0xbb, 0x06, 0x72,
- 0x03, 0x1a, 0xd8, 0x1e, 0x32, 0x1e, 0xc4, 0x39, 0x22, 0xa8, 0xe4, 0x78, 0xfc, 0x32, 0xa4, 0x28,
- 0x4c, 0xec, 0xce, 0xbd, 0x83, 0xbd, 0xba, 0x6d, 0x04, 0xdd, 0x77, 0xb1, 0x52, 0x83, 0x2e, 0x6f,
- 0x4b, 0x6f, 0xf5, 0x8b, 0x48, 0x8b, 0x0c, 0x08, 0x5e, 0x97, 0x20, 0x69, 0x3d, 0x48, 0x78, 0x27,
- 0xc0, 0x4f, 0x78, 0x8c, 0xdd, 0x8c, 0x74, 0x58, 0x57, 0x48, 0xa3, 0x75, 0x6c, 0xdd, 0xce, 0x92,
- 0x04, 0x99, 0xe3, 0x28, 0xf9, 0x28, 0x72, 0x5c, 0x78, 0xe2, 0xb3, 0xa0, 0x93, 0xf9, 0xf2, 0x60,
- 0xb3, 0xb2, 0x96, 0x74, 0x02, 0x74, 0x81, 0xfe, 0x9c, 0xca, 0x7e, 0x13, 0xaf, 0x02, 0x43, 0xb0,
- 0xb6, 0x9c, 0x3d, 0x56, 0x54, 0x56, 0x0e, 0xb5, 0xfa, 0xf1, 0x91, 0x9b, 0x68, 0x54, 0x6c, 0xc8,
- 0x51, 0x12, 0x6a, 0x6f, 0x86, 0x6f, 0xda, 0x2d, 0xb1, 0xef, 0xb4, 0x7f, 0x79, 0x86, 0x68, 0x94,
- 0xeb, 0xe6, 0xb1, 0x41, 0x1a, 0x41, 0x42, 0x7c, 0xc3, 0xfb, 0x33, 0xc7, 0x67, 0x1a, 0xd1, 0xfc,
- 0x98, 0x1b, 0x5f, 0xb9, 0xc5, 0xb9, 0xb7, 0xda, 0x08, 0x79, 0xee, 0xa1, 0xa4, 0xc5, 0x5c, 0xde,
- 0x23, 0x58, 0xcc, 0x9d, 0xf6, 0x9d, 0xd2, 0x9c, 0x64, 0xb4, 0x35, 0x31, 0xee, 0xf6, 0x38, 0xae,
- 0xab, 0x62, 0x99, 0x84, 0x51, 0x84, 0x6e, 0xf5, 0x4f, 0xc3, 0x52, 0x55, 0x43, 0x51, 0x2a, 0x33,
- 0xb2, 0x05, 0xde, 0x7e, 0xad, 0x7e, 0x7c, 0xe9, 0x82, 0x13, 0x22, 0x3b, 0xfb, 0xad, 0x9e, 0xa8,
- 0x99, 0xac, 0x17, 0xb3, 0x6a, 0xb3, 0x4a, 0xcd, 0x16, 0xa0, 0xb2, 0x89, 0xf0, 0x6a, 0x81, 0xc6,
- 0x89, 0x8d, 0x1d, 0x13, 0x08, 0x13, 0x41, 0x7e, 0x35, 0xae, 0x3b, 0x4c, 0xf9, 0x08, 0xcf, 0x85,
- 0xdf, 0x1c, 0x4c, 0x4a, 0x45, 0x4a, 0x2d, 0x36, 0xde, 0x0b, 0xd8, 0xeb, 0xef, 0x45, 0xf1, 0x59,
- 0x0d, 0xdf, 0xae, 0x72, 0x67, 0x72, 0x6b, 0xf3, 0x96, 0x3c, 0x4a, 0x0b, 0x22, 0x67, 0x08, 0xb8,
- 0x31, 0xd4, 0x56, 0x29, 0x09, 0x29, 0xe0, 0x01, 0x7b, 0xcb, 0x04, 0xa4, 0x4f, 0x09, 0x0f, 0xdd,
- 0x70, 0xe7, 0x36, 0xe6, 0xed, 0xe6, 0x31, 0x9f, 0xe9, 0x2a, 0x39, 0x1e, 0x3f, 0xed, 0x29, 0x0a,
- 0x73, 0xfd, 0xee, 0xf8, 0xdf, 0xf8, 0xf5, 0xa6, 0xcb, 0x82, 0xdd, 0x66, 0xc3, 0xdf, 0x8d, 0x22,
- 0x1d, 0xfe, 0xa4, 0xd2, 0x05, 0xd2, 0x60, 0x40, 0xb5, 0x32, 0xc3, 0xce, 0x2b, 0x05, 0x46, 0xfb,
- 0x8d, 0x14, 0xfe, 0x3b, 0xf1, 0x3b, 0x33, 0x22, 0x4d, 0x4c, 0x88, 0xec, 0x6a, 0xf1, 0x3d, 0xe5,
- 0xf1, 0x9b, 0x2e, 0xa5, 0xd4, 0xa5, 0x94, 0x59, 0x2c, 0x83, 0xa7, 0xd1, 0x23, 0xd4, 0xc1, 0x4f,
- 0x7d, 0x38, 0x98, 0x94, 0x8a, 0x94, 0x5a, 0x6c, 0x7f, 0x16, 0x73, 0x15, 0x1d, 0x8a, 0x21, 0xb2,
- 0x17, 0xa2, 0x31, 0x96, 0xa9, 0x96, 0xbd, 0xd6, 0x79, 0x44, 0xde, 0x1d, 0x66, 0xa9, 0x18, 0x0b,
- 0x2c, 0x2a, 0xf2, 0xfb, 0x0c, 0xfb, 0x80, 0x41, 0xce, 0xf9, 0xc7, 0x6a, 0x64, 0x0c, 0x49, 0x26,
- 0x35, 0x4d, 0xb5, 0x01, 0xf0, 0x01, 0x92, 0x5d, 0x03, 0x29, 0xb7, 0x04, 0xdc, 0xf0, 0xfd, 0xbd,
- 0x88, 0x3a, 0x55, 0x19, 0xa7, 0x19, 0xbc, 0x69, 0x2b, 0x77, 0x67, 0x64, 0xad, 0xa7, 0x12, 0x9d,
- 0x67, 0x45, 0x07, 0x70, 0x44, 0x70, 0x8c, 0x49, 0x90, 0x6e, 0xe7, 0x03, 0x59, 0x44, 0x31, 0x01,
- 0xe1, 0xba, 0x24, 0x05, 0xb6, 0x05, 0x9f, 0xea, 0x0f, 0x8d, 0x2e, 0x14, 0x2a, 0xb6, 0x8f, 0x0c,
- 0xb5, 0x86, 0xe5, 0x48, 0x66, 0x48, 0xca, 0x8c, 0xd8, 0x59, 0x75, 0xe3, 0x94, 0x66, 0xc8, 0xe0,
- 0x64, 0x5f, 0xdf, 0x6e, 0x76, 0x6e, 0x48, 0x70, 0xb2, 0xc6, 0x03, 0x7b, 0xa5, 0x76, 0x95, 0x29,
- 0xb1, 0x1f, 0x06, 0x60, 0x9f, 0x60, 0xb8, 0xd0, 0xa0, 0xbb, 0xc6, 0x43, 0x07, 0x9f, 0x3a, 0x80,
- 0x08, 0xf1, 0x05, 0x50, 0x31, 0x50, 0xe4, 0xb8, 0xf0, 0x07, 0xa5, 0x83, 0xe5, 0x31, 0x27, 0xc0,
- 0xe5, 0x23, 0xc7, 0x2d, 0x4f, 0x2d, 0xed, 0xb6, 0x77, 0x6f, 0x9d, 0xb4, 0xb9, 0x4f, 0x7d, 0x6c,
- 0x1c, 0x49, 0xec, 0xd8, 0xaa, 0xd8, 0x9d, 0x57, 0xab, 0xeb, 0x9f, 0xe6, 0x7f, 0xaa, 0x9b, 0xe3,
- 0x6b, 0x2d, 0xe1, 0x08, 0x8c, 0x08, 0x1a, 0xad, 0x18, 0x8b, 0xf1, 0x20, 0x2f, 0x8c, 0xe4, 0xa1,
- 0x5c, 0xcd, 0xc4, 0x1d, 0xe1, 0x1d, 0xb1, 0xde, 0x27, 0xd3, 0xfe, 0x74, 0x5b, 0xe1, 0x60, 0x2c,
- 0xa3, 0x93, 0x9c, 0xd4, 0x60, 0xd4, 0x8a, 0x4d, 0xbf, 0xc4, 0xf7, 0xd6, 0xa6, 0x60, 0x0d, 0xf3,
- 0x7a, 0xbb, 0xa3, 0xa2, 0x41, 0xa2, 0xec, 0x09, 0x25, 0x5c, 0x24, 0xcd, 0x72, 0x41, 0x77, 0xfa,
- 0xe8, 0xfc, 0x69, 0x5f, 0x28, 0x5f, 0x86, 0x45, 0xe1, 0x53, 0xd7, 0xbf, 0x9b, 0x28, 0x75, 0xd4,
- 0xda, 0x32, 0xe7, 0x68, 0x13, 0x68, 0xa2, 0x7d, 0xb8, 0x30, 0x37, 0x63, 0x28, 0x13, 0xde, 0x21,
- 0xd7, 0xed, 0x49, 0x1a, 0x74, 0x1a, 0xc9, 0x8e, 0x2e, 0x0c, 0x7d, 0x68, 0x0a, 0x74, 0xd6, 0x99,
- 0xfa, 0x70, 0xf3, 0xeb, 0xd7, 0xeb, 0xb4, 0xd8, 0xfe, 0x2c, 0xe6, 0x2a, 0x3a, 0xd7, 0x42, 0xa7,
- 0xa7, 0x0a, 0x7f, 0xfc, 0x99, 0xfc, 0xf8, 0x11, 0xc7, 0x26, 0x44, 0x76, 0x35, 0x99, 0xff, 0x93,
- 0x7f, 0x95, 0x08, 0x80, 0x17, 0x80, 0x63, 0x42, 0x43, 0x67, 0xcb, 0x45, 0xb5, 0x17, 0x58, 0x82,
- 0xe4, 0x94, 0x8f, 0x27, 0xe0, 0x27, 0x10, 0xa1, 0x69, 0xb6, 0xc1, 0x9c, 0xed, 0xe0, 0xa0, 0x74,
- 0x8f, 0xb9, 0x6e, 0x2f, 0x6c, 0x2f, 0x0a, 0x0c, 0x71, 0x3d, 0x30, 0xbc, 0xc2, 0x6c, 0x44, 0xd5,
- 0xa1, 0x3e, 0x0c, 0xc0, 0xfd, 0xc0, 0xb3, 0x63, 0x83, 0xb5, 0x4f, 0x86, 0x0e, 0xfd, 0x74, 0xc3,
- 0x52, 0x08, 0xb2, 0x71, 0xb4, 0x71, 0x1e, 0x14, 0x93, 0x47, 0x50, 0x07, 0x85, 0xb4, 0xcc, 0xbc,
- 0xec, 0x65, 0x8a, 0x77, 0xd1, 0x77, 0xf4, 0x19, 0x99, 0xb1, 0x64, 0x1f, 0x08, 0xd1, 0x87, 0xb4,
- 0x3b, 0x88, 0xc3, 0x6d, 0xa5, 0x6d, 0x3d, 0x97, 0xb7, 0xbd, 0x19, 0x77, 0x02, 0xa5, 0x51, 0x2d,
- 0xa2, 0x24, 0xd4, 0xde, 0xcf, 0xde, 0x77, 0x5a, 0xa1, 0x1d, 0xab, 0xfe, 0xf2, 0xcf, 0xd0, 0xeb,
- 0x5f, 0xd7, 0x1c, 0x03, 0xd3, 0x03, 0x75, 0xe7, 0x05, 0x7b, 0x1a, 0x0c, 0xa7, 0xd3, 0xc4, 0x04,
- 0x50, 0xa5, 0x22, 0x65, 0x29, 0x65, 0x27, 0x3a, 0xaf, 0x36, 0xe8, 0x57, 0x2d, 0x29, 0xb5, 0x8c,
- 0x4a, 0xd8, 0xbd, 0x81, 0xe7, 0x81, 0xf1, 0x1f, 0x40, 0x4e, 0x7c, 0x41, 0x69, 0xe7, 0xa5, 0x3f,
- 0x57, 0x26, 0x19, 0x53, 0xe2, 0x53, 0x91, 0x5f, 0xf5, 0x7c, 0xbf, 0x8f, 0x42, 0xe2, 0xe3, 0xc4,
- 0x55, 0x8b, 0x89, 0x47, 0x7f, 0x47, 0xa8, 0x71, 0xc9, 0x0d, 0x07, 0xdf, 0xea, 0x7f, 0x9a, 0xf4,
- 0xdc, 0x06, 0x94, 0x54, 0x77, 0x54, 0xe9, 0x0f, 0xfc, 0xa3, 0x3c, 0x93, 0x13, 0x77, 0x55, 0x71,
- 0xde, 0xab, 0x04, 0x40, 0xea, 0x40, 0xd0, 0x21, 0xc0, 0xd2, 0x84, 0xc3, 0xbb, 0xea, 0x2c, 0x41,
- 0x9d, 0x35, 0xf4, 0x9b, 0x93, 0x9b, 0x38, 0x91, 0x6e, 0x42, 0x01, 0x29, 0x63, 0x93, 0x73, 0xa6,
- 0xe7, 0x8e, 0x57, 0x39, 0xd2, 0x39, 0xd4, 0x98, 0x4b, 0x1e, 0x25, 0xe4, 0x11, 0xd2, 0x04, 0x5c,
- 0xaf, 0xfb, 0x7a, 0xac, 0xa8, 0xac, 0x1c, 0xa9, 0x37, 0x21, 0xe1, 0xf5, 0xd0, 0xa8, 0xd8, 0x53,
- 0x97, 0x69, 0x61, 0xdf, 0x3f, 0xdf, 0xe5, 0x07, 0xa2, 0x34, 0x1c, 0xfa, 0x2e, 0x3f, 0x2d, 0x56,
- 0xaa, 0xd5, 0xd1, 0x8e, 0xfe, 0x8e, 0x93, 0xe2, 0x51, 0x1a, 0x0e, 0x7d, 0x17, 0xfe, 0xf7, 0x2b,
- 0x26, 0x76, 0x67, 0xbf, 0xa0, 0xbf, 0x5d, 0xd7, 0x02, 0x8f, 0xda, 0xb9, 0x29, 0xa0, 0x17, 0xd6,
- 0x4d, 0x5b, 0x86, 0xb7, 0x2c, 0xb7, 0x47, 0x7a, 0x1a, 0x04, 0x2b, 0x99, 0x06, 0x2c, 0xf3, 0x77,
- 0x54, 0x3c, 0xc1, 0x4d, 0xd0, 0x4d, 0x55, 0x66, 0xd7, 0xd4, 0x5b, 0xf7, 0xbe, 0xd0, 0x47, 0xec,
- 0xf7, 0xaf, 0x5d, 0x99, 0xb0, 0x99, 0xdf, 0x2b, 0x68, 0x10, 0xac, 0x21, 0x18, 0xb0, 0x4a, 0x1f,
- 0xd9, 0x28, 0x3f, 0x76, 0x21, 0x76, 0x66, 0x44, 0x9a, 0x98, 0xd3, 0x1b, 0xd4, 0x21, 0x7a, 0x09,
- 0x84, 0x52, 0xb3, 0x61, 0x6f, 0x61, 0x2a, 0x8d, 0xa3, 0x92, 0x71, 0x47, 0xdb, 0x6f, 0xc7, 0x3d,
- 0x41, 0x33, 0x60, 0xcf, 0xe4, 0xcf, 0xd1, 0x9e, 0x92, 0xe1, 0x3d, 0xba, 0x70, 0xe4, 0x26, 0xd7,
- 0x82, 0x66, 0xc0, 0x5d, 0x0b, 0x5d, 0x61, 0xff, 0xe7, 0x01, 0x7a, 0xb7, 0xe0, 0x0b, 0x4c, 0x6d,
- 0xd6, 0x5a, 0x01, 0x10, 0xdb, 0x10, 0x34, 0x99, 0x30, 0xd5, 0x21, 0x40, 0x5e, 0xdb, 0x0b, 0x81,
- 0xb7, 0x2b, 0x75, 0x5c, 0xfb, 0x5c, 0xf3, 0xa2, 0xe4, 0x28, 0xcd, 0xb3, 0x3c, 0xfb, 0xb1, 0xd0,
- 0xdb, 0x85, 0xaf, 0x62, 0xbc, 0x62, 0x5f, 0x6a, 0xa6, 0xe9, 0x6b, 0x4b, 0x7c, 0xbc, 0x03, 0x39,
- 0x2b, 0xa9, 0xc9, 0xcd, 0xc7, 0xcd, 0x36, 0x24, 0x94, 0xb3, 0x90, 0xb2, 0x0b, 0xc7, 0x1f, 0x6e,
- 0xa6, 0xbd, 0x37, 0xf6, 0x36, 0xf6, 0x05, 0x06, 0xd9, 0xff, 0x18, 0x5e, 0x61, 0x36, 0x22, 0x8b,
- 0x38, 0x92, 0x1b, 0x73, 0x97, 0x73, 0xf9, 0xae, 0x95, 0x15, 0xfd, 0x0f, 0xfe, 0x97, 0xf5, 0x05,
- 0xce, 0x8a, 0x0e, 0xe0, 0x88, 0xe0, 0xdb, 0x92, 0xe3, 0xdc, 0x0d, 0x06, 0xb2, 0x88, 0x62, 0x02,
- 0x95, 0xc4, 0xf1, 0xcb, 0xa2, 0xcb, 0xdc, 0x29, 0x9e, 0x45, 0xa4, 0xaa, 0x86, 0xa2, 0x54, 0x66,
- 0x71, 0x50, 0x7e, 0xec, 0x42, 0xec, 0xcc, 0x88, 0xf7, 0xf3, 0x65, 0x36, 0x6b, 0x42, 0xf4, 0x12,
- 0xc3, 0x55, 0xa0, 0x92, 0xef, 0x92, 0xb0, 0x61, 0x75, 0xe0, 0x47, 0x0d, 0x90, 0xef, 0x6a, 0xba,
- 0x8e, 0x0e, 0x26, 0x25, 0xc3, 0x25, 0xf7, 0x1b, 0x6f, 0xe4, 0x6c, 0x94, 0x96, 0xc3, 0x99, 0xcd,
- 0x9a, 0xb6, 0xcf, 0xad, 0x58, 0xad, 0x8e, 0xf4, 0x34, 0x08, 0x56, 0xf1, 0x0c, 0x58, 0x25, 0xee,
- 0xef, 0x7f, 0x52, 0x69, 0xe3, 0x69, 0x30, 0x20, 0xbb, 0x19, 0x80, 0x67, 0xf4, 0xe3, 0x23, 0x9c,
- 0x25, 0x6c, 0xbf, 0xa1, 0x92, 0xa1, 0x99, 0xee, 0x20, 0x27, 0x3e, 0xc1, 0xd5, 0x92, 0xb3, 0xfe,
- 0xa4, 0x10, 0xa7, 0xe2, 0xab, 0xe2, 0x3c, 0x28, 0xe5, 0x8e, 0xa0, 0x0e, 0xc9, 0xab, 0x5b, 0xbb,
- 0xe9, 0x4b, 0x21, 0x55, 0x87, 0x55, 0x7b, 0x52, 0xff, 0x8a, 0x8b, 0x97, 0xcf, 0x87, 0xa8, 0xcc,
- 0x3c, 0x0b, 0xf8, 0x5b, 0x6e, 0x5b, 0x8b, 0xf2, 0xed, 0xf7, 0x4e, 0xaf, 0x6d, 0x6e, 0x07, 0x65,
- 0x6f, 0xb4, 0x02, 0x20, 0x75, 0x20, 0x68, 0xf1, 0x60, 0x69, 0x42, 0x80, 0xbc, 0x75, 0x16, 0xc1,
- 0x02, 0xad, 0x90, 0x14, 0x9d, 0x14, 0x39, 0x2e, 0x3c, 0x71, 0xb8, 0x50, 0xa8, 0x9d, 0x79, 0x30,
- 0x01, 0xb7, 0x48, 0x0a, 0xaf, 0x0a, 0xfd, 0x17, 0x1e, 0xd9, 0x5c, 0x28, 0x54, 0xaf, 0xdd, 0x18,
- 0x0a, 0x5c, 0x95, 0x44, 0xac, 0x44, 0xdd, 0x96, 0xcc, 0x76, 0x1d, 0xd3, 0x4d, 0xac, 0x5e, 0xf0,
- 0x09, 0x46, 0x4d, 0x5a, 0x9e, 0x5a, 0x19, 0xaf, 0xee, 0xde, 0xf9, 0xab, 0xb1, 0x9e, 0xfa, 0xd8,
- 0x94, 0x73, 0xb9, 0xc1, 0x0d, 0xc1, 0x21, 0x3e, 0x80, 0x9c, 0xf8, 0x82, 0xd2, 0x0d, 0x89, 0x7e,
- 0xed, 0xd2, 0xc2, 0x7d, 0x7e, 0x7d, 0x09, 0x0e, 0x87, 0x68, 0x38, 0x37, 0x5c, 0x7e, 0x5a, 0xac,
- 0x59, 0xe3, 0x6f, 0x3f, 0xb7, 0x3f, 0x3e, 0x95, 0x41, 0xe8, 0x11, 0xfc, 0x9c, 0xb7, 0x4f, 0x54,
- 0x61, 0x71, 0x74, 0x4c, 0x20, 0x4c, 0xc7, 0x3b, 0xd4, 0xfd, 0xec, 0xf3, 0x62, 0x20, 0xba, 0x51,
- 0x69, 0x80, 0x71, 0x1c, 0x11, 0x1c, 0x23, 0x83, 0x24, 0xfa, 0x49, 0x70, 0x87, 0x11, 0x9d, 0x91,
- 0x29, 0x04, 0x59, 0xd9, 0x5a, 0xd9, 0x0f, 0x0a, 0xa8, 0xc2, 0x28, 0xe2, 0xa3, 0x5a, 0x66, 0x5e,
- 0xb0, 0xa8, 0x4e, 0x6a, 0x30, 0x6a, 0x45, 0xc7, 0xbe, 0x62, 0x9a, 0x6b, 0x53, 0x30, 0xe7, 0x98,
- 0x30, 0x63, 0x1e, 0x23, 0xa6, 0x23, 0x1d, 0x16, 0x65, 0x12, 0x58, 0x8c, 0x1b, 0xa6, 0xd2, 0xc5,
- 0x60, 0xc6, 0x3c, 0x46, 0x8f, 0x46, 0x3a, 0x2c, 0xca, 0x24, 0xb0, 0xdb, 0x36, 0x8f, 0x67, 0x49,
- 0x74, 0x7e, 0xd5, 0xce, 0x14, 0xce, 0x43, 0xc3, 0x91, 0xc8, 0x8a, 0xbe, 0xac, 0x14, 0xdb, 0x6a,
- 0x22, 0xef, 0x84, 0x97, 0x59, 0x97, 0x2f, 0x8b, 0x7a, 0x6d, 0x69, 0x19, 0xba, 0x59, 0xe5, 0xb6,
- 0x0c, 0x68, 0xe6, 0x78, 0xc8, 0x78, 0x96, 0xe4, 0x88, 0xe5, 0x16, 0x23, 0x76, 0xc8, 0xd5, 0xa0,
- 0xcd, 0x90, 0xd6, 0xfe, 0xba, 0xfe, 0x1f, 0xab, 0xc1, 0x74, 0xe9, 0x7e, 0x4e, 0xba, 0xc6, 0x2a,
- 0x7b, 0x0c, 0xeb, 0xa8, 0xee, 0xa8, 0x11, 0x1e, 0x3b, 0x85, 0x78, 0xe5, 0x26, 0xee, 0xaa, 0xe2,
- 0x5b, 0x4e, 0xff, 0x2b, 0x2a, 0x2b, 0x07, 0xbb, 0x7d, 0x99, 0xa9, 0xac, 0x34, 0x2a, 0x36, 0x64,
- 0x40, 0x84, 0x28, 0xc5, 0x4b, 0xc5, 0x2c, 0x89, 0x8c, 0x38, 0x61, 0x92, 0x24, 0x4b, 0xfb, 0xcf,
- 0xe3, 0x17, 0xb4, 0x11, 0x2b, 0x11, 0xa6, 0xc4, 0x33, 0xfc, 0x96, 0x44, 0x82, 0x2b, 0xf6, 0x3c,
- 0x14, 0xb8, 0xe9, 0x88, 0x9b, 0x88, 0x79, 0xef, 0x5b, 0xec, 0x3a, 0x65, 0x9a, 0x9b, 0xbc, 0x23,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xfd, 0xf3, 0xc8, 0xdd, 0x1c, 0xdd, 0x02, 0xbd, 0xa4, 0x66, 0xb1, 0xf2, 0x55, 0x1c, 0x14, 0xef,
- 0x78, 0x16, 0x33, 0xb6, 0xdc, 0xb6, 0xd5, 0x27, 0x19, 0x2d, 0x9c, 0x9d, 0xda, 0xdc, 0x0e, 0xca,
- 0xad, 0x56, 0xea, 0xb8, 0x35, 0xb8, 0x25, 0x87, 0x0b, 0x50, 0x59, 0xa5, 0x78, 0x35, 0xa1, 0x63,
- 0xd0, 0x6e, 0x72, 0x2c, 0xbf, 0x2c, 0x7f, 0xeb, 0x74, 0x46, 0x2a, 0xb0, 0x65, 0xbf, 0x80, 0xd1,
- 0x91, 0x5d, 0x12, 0xe3, 0x5b, 0xe3, 0xae, 0x75, 0xe6, 0xa7, 0x17, 0x0a, 0x15, 0x5b, 0xa6, 0x06,
- 0xfc, 0x44, 0x80, 0xd7, 0xb3, 0xd7, 0xff, 0xaa, 0xba, 0xbf, 0xed, 0xda, 0x01, 0xb3, 0xc9, 0xf7,
- 0xf9, 0x6a, 0x2b, 0xf5, 0xe5, 0xf5, 0x70, 0xe1, 0xdc, 0x84, 0x02, 0x52, 0xc6, 0xe5, 0xe6, 0x8f,
- 0xea, 0x51, 0xf9, 0x4b, 0xb5, 0x4b, 0xbf, 0x6b, 0xdd, 0x22, 0x6f, 0xef, 0x33, 0xb5, 0x0c, 0xe4,
- 0x85, 0xe5, 0xfb, 0x6b, 0xc0, 0x6b, 0xd7, 0x9a, 0xbd, 0x4b, 0x2d, 0x6f, 0x8f, 0xc0, 0x1a, 0x25,
- 0x7e, 0x22, 0x40, 0x8a, 0xb8, 0x8a, 0x9e, 0x55, 0x5d, 0xbe, 0x97, 0x6d, 0xe1, 0xb8, 0x85, 0x9a,
- 0x77, 0x64, 0x0d, 0xd0, 0x26, 0xd0, 0x87, 0xfa, 0xb3, 0x60, 0x6e, 0xc6, 0x50, 0x26, 0x7f, 0x42,
- 0xc7, 0xcc, 0x43, 0xba, 0x16, 0xba, 0xc2, 0x3d, 0x0d, 0x02, 0xf4, 0xad, 0x03, 0x16, 0x98, 0xda,
- 0xc5, 0x61, 0xd3, 0xae, 0x8b, 0xae, 0xfb, 0x13, 0x31, 0x73, 0x4c, 0xfd, 0xab, 0x8b, 0xe1, 0xea,
- 0x5d, 0x7a, 0x8c, 0x17, 0x4e, 0x17, 0x4c, 0xc9, 0x39, 0x0a, 0xa2, 0x5c, 0x0f, 0x4e, 0xbd, 0x34,
- 0x3a, 0x3f, 0x8b, 0x67, 0x0a, 0x67, 0xc0, 0x80, 0xa9, 0x64, 0x45, 0x5f, 0x56, 0x0a, 0x8c, 0x35,
- 0xd5, 0x40, 0xd9, 0x0e, 0xe9, 0x0e, 0xf0, 0xa0, 0x12, 0x7d, 0xc5, 0x38, 0xa2, 0xe9, 0xaf, 0xa9,
- 0x66, 0xf2, 0x4f, 0x7a, 0xeb, 0x7a, 0x71, 0x5e, 0x8e, 0xb7, 0xbb, 0x2b, 0x0d, 0xeb, 0xec, 0x19,
- 0x8b, 0x20, 0x8d, 0x07, 0x95, 0x07, 0x78, 0x50, 0x09, 0xdf, 0x83, 0x1c, 0x51, 0x95, 0xb6, 0xb5,
- 0x49, 0xc2, 0x65, 0x9f, 0xd5, 0x9f, 0x35, 0x26, 0x62, 0xe6, 0x98, 0x39, 0x95, 0xd5, 0x01, 0x17,
- 0xc2, 0xe2, 0xe8, 0x98, 0x40, 0x98, 0x4d, 0x76, 0x6b, 0x39, 0x1b, 0x25, 0xc4, 0x40, 0xb7, 0xa2,
- 0xc6, 0x7b, 0x0b, 0xb0, 0xb9, 0xb0, 0x3f, 0x2a, 0x13, 0xdb, 0xa8, 0x85, 0x57, 0xb9, 0x45, 0xc2,
- 0x56, 0x91, 0x51, 0x59, 0x4d, 0x59, 0x6c, 0x48, 0xeb, 0xa5, 0xe3, 0xa7, 0x16, 0x4d, 0x3e, 0xdc,
- 0x4e, 0x41, 0x5e, 0xa9, 0x1e, 0xa9, 0x83, 0x43, 0x38, 0xac, 0xcf, 0xe1, 0xfa, 0x1e, 0x57, 0x5f,
- 0x27, 0xc1, 0x2f, 0xb5, 0x0f, 0xb5, 0xa0, 0xc0, 0x1c, 0x56, 0x86, 0x91, 0x7d, 0x0f, 0xca, 0xce,
- 0xe6, 0x39, 0x1f, 0x33, 0x7d, 0x33, 0x29, 0x8f, 0x55, 0xc7, 0x79, 0xcc, 0x45, 0x7d, 0xd9, 0x44,
- 0x93, 0xf0, 0x82, 0xf7, 0xc6, 0xf7, 0x97, 0x5b, 0xda, 0xd6, 0xaf, 0x5a, 0xbd, 0xc6, 0xdf, 0x36,
- 0xbb, 0x43, 0x93, 0x24, 0x33, 0x24, 0x65, 0x46, 0x6c, 0xcd, 0xdb, 0x90, 0x4a, 0x33, 0x64, 0x70,
- 0xd1, 0xd9, 0x3a, 0x26, 0x10, 0x26, 0x82, 0xfc, 0x6a, 0x9f, 0x76, 0x98, 0x31, 0x10, 0x5d, 0xc9,
- 0x63, 0xdc, 0xe4, 0x58, 0xbd, 0x58, 0xfe, 0x15, 0xe8, 0x8c, 0x54, 0xa3, 0xca, 0xbd, 0xc3, 0x61,
- 0xc1, 0xf8, 0x30, 0x86, 0x72, 0x86, 0x89, 0x4f, 0x49, 0x91, 0xff, 0x5d, 0x38, 0x72, 0x13, 0x8a,
- 0x45, 0xaa, 0x83, 0xe7, 0x1d, 0xe7, 0xa3, 0xc2, 0xea, 0x03, 0x8e, 0x1a, 0xe3, 0x1d, 0xd4, 0xb7,
- 0xc8, 0xbe, 0x7d, 0xdc, 0xec, 0xdc, 0x90, 0xe0, 0xa7, 0x4f, 0x06, 0xf6, 0x89, 0xec, 0xe9, 0x52,
- 0x16, 0x15, 0x79, 0x9c, 0x06, 0x9c, 0x40, 0xc1, 0x67, 0x9d, 0x82, 0x35, 0x32, 0x06, 0xc5, 0x13,
- 0x1b, 0xca, 0xd7, 0xee, 0x61, 0xee, 0x2b, 0x32, 0xf1, 0xa1, 0xc8, 0x3e, 0x10, 0x61, 0xcd, 0xab,
- 0x20, 0x42, 0x14, 0x83, 0xc4, 0x83, 0x16, 0xa5, 0x46, 0x1c, 0xd1, 0x49, 0x12, 0xc4, 0x9c, 0x86,
- 0x9b, 0x01, 0x87, 0xa7, 0xf7, 0xa7, 0x73, 0xe3, 0x2a, 0xd1, 0x0a, 0xd9, 0x58, 0xf7, 0xf8, 0xf6,
- 0xf3, 0x36, 0xbe, 0xb1, 0x49, 0xb1, 0xad, 0x77, 0x10, 0xf2, 0x1f, 0x81, 0x8b, 0x49, 0xb8, 0x7f,
- 0xb8, 0x59, 0x4b, 0x3a, 0x01, 0x3a, 0xa1, 0x7f, 0x4e, 0x65, 0x3f, 0xe8, 0xb6, 0x01, 0xc0, 0x58,
- 0xf0, 0x2c, 0x66, 0xaf, 0x7b, 0xaf, 0x69, 0x4e, 0x32, 0x5a, 0xfb, 0xf9, 0x77, 0x7b, 0x1c, 0x57,
- 0x2f, 0x30, 0x2a, 0xe5, 0x3e, 0xe5, 0x44, 0x78, 0xec, 0x51, 0x23, 0x12, 0x98, 0x3e, 0xed, 0x0e,
- 0xba, 0xf4, 0xdb, 0x2e, 0x9c, 0x2e, 0x98, 0x51, 0x72, 0x14, 0x87, 0xb8, 0x1e, 0x9c, 0xb9, 0x68,
- 0x4f, 0xf6, 0x16, 0xa3, 0xb1, 0xa3, 0x7e, 0x54, 0x26, 0x75, 0x93, 0xc9, 0xae, 0xb1, 0x8a, 0x47,
- 0xbe, 0x6d, 0x38, 0x06, 0x65, 0x06, 0xea, 0x0d, 0x0a, 0xf6, 0x34, 0x18, 0x8d, 0x65, 0x4b, 0x08,
- 0x12, 0x8c, 0x9a, 0xb4, 0xff, 0xb4, 0x32, 0x9d, 0x1f, 0x7f, 0x31, 0x95, 0xa1, 0xff, 0x37, 0x73,
- 0x43, 0x9e, 0xf0, 0xdb, 0x79, 0xdb, 0xe8, 0xb0, 0xae, 0x90, 0x85, 0xea, 0xd8, 0x79, 0x5f, 0xe7,
- 0xcf, 0x3d, 0x46, 0xea, 0x27, 0xea, 0x26, 0x85, 0xfd, 0x05, 0x51, 0x2e, 0xe6, 0x27, 0xbf, 0x1a,
- 0xc9, 0x09, 0x35, 0xd6, 0x43, 0xd6, 0x6d, 0xf7, 0xb9, 0x96, 0x5a, 0xde, 0xdd, 0x43, 0x34, 0x4a,
- 0x2a, 0x1e, 0x81, 0xc7, 0x68, 0xc7, 0xcb, 0x33, 0x8a, 0x6a, 0xcc, 0x9a, 0x5f, 0x68, 0xc2, 0x76,
- 0x11, 0x96, 0x42, 0xaa, 0xcd, 0xaa, 0xf6, 0xa4, 0x3d, 0xd7, 0xd5, 0xed, 0x5d, 0xcd, 0x93, 0x5b,
- 0x15, 0x0f, 0xa1, 0x82, 0x34, 0x82, 0x84, 0xf8, 0x45, 0x35, 0x66, 0x4d, 0xce, 0x34, 0x61, 0x3b,
- 0xf6, 0x18, 0x15, 0x93, 0x1f, 0x93, 0x22, 0x3c, 0x76, 0xc9, 0xf0, 0x09, 0x4c, 0x1f, 0x97, 0x07,
- 0x62, 0x6b, 0xac, 0x52, 0x12, 0x52, 0x03, 0x02, 0xf6, 0x55, 0x08, 0x8b, 0x9e, 0x12, 0x1e, 0x79,
- 0xcc, 0x27, 0x9e, 0xf4, 0x15, 0xf4, 0xe2, 0xbc, 0xdf, 0xad, 0xb5, 0x56, 0x1a, 0x15, 0x1b, 0x32,
- 0xe0, 0x0d, 0x6c, 0x0f, 0x19, 0x0f, 0x62, 0xfd, 0x11, 0x54, 0x72, 0x3c, 0x7e, 0x19, 0x52, 0x14,
- 0x8c, 0xa3, 0xb6, 0x31, 0x5e, 0x31, 0xce, 0x35, 0x53, 0x95, 0xd4, 0xc4, 0x3e, 0x5e, 0xe0, 0xfd,
- 0x90, 0xea, 0x5a, 0xe9, 0xf4, 0xe9, 0x53, 0x62, 0xf8, 0x7e, 0x4b, 0x22, 0x41, 0xf4, 0x7b, 0x1e,
- 0x47, 0x07, 0x13, 0xf3, 0x80, 0xf3, 0x9a, 0xec, 0xd6, 0x72, 0x36, 0x4a, 0x4b, 0x80, 0xad, 0x87,
- 0xff, 0x5e, 0x58, 0xc9, 0x81, 0xc9, 0x3b, 0x93, 0x98, 0x17, 0x09, 0xa2, 0xfd, 0x81, 0x6d, 0xdf,
- 0x81, 0x7c, 0x18, 0x43, 0x39, 0x43, 0xa5, 0xc6, 0xc5, 0xa9, 0x9e, 0xcf, 0x1c, 0x39, 0xe8, 0x45,
- 0x5e, 0x60, 0x54, 0x09, 0x7c, 0x09, 0x88, 0xf0, 0x1b, 0xa2, 0x46, 0x24, 0xf3, 0x7c, 0x19, 0x1c,
- 0xfb, 0xc7, 0xbb, 0xe1, 0x78, 0xe1, 0x49, 0xcf, 0xe0, 0xf5, 0xba, 0x02, 0x6e, 0x78, 0x9f, 0xbf,
- 0x79, 0xa1, 0x7b, 0xbc, 0x73, 0xbc, 0x28, 0x30, 0x07, 0xf4, 0xc0, 0xb5, 0x8e, 0x73, 0xd3, 0xd2,
- 0x36, 0x57, 0x6d, 0x1f, 0xc2, 0x1f, 0x56, 0x64, 0x21, 0x81, 0x53, 0x7c, 0x20, 0xc2, 0x59, 0x95,
- 0x32, 0xce, 0x8e, 0x37, 0x3b, 0x37, 0x24, 0x38, 0x59, 0x63, 0xe0, 0xdc, 0xb3, 0x3b, 0xab, 0xf5,
- 0x0e, 0xc5, 0x76, 0x6c, 0x55, 0x6c, 0xaf, 0xca, 0xb4, 0x94, 0xae, 0x73, 0xde, 0x55, 0xac, 0x90,
- 0xd3, 0x74, 0xaa, 0x32, 0x8d, 0x32, 0xbb, 0xd2, 0x56, 0xee, 0xce, 0xc8, 0x99, 0x8d, 0x24, 0xf9,
- 0x33, 0x79, 0xc6, 0x3d, 0x94, 0x3d, 0xd9, 0x2f, 0x47, 0xba, 0xbc, 0xf4, 0xe7, 0x94, 0x76, 0xed,
- 0x53, 0xbf, 0xfa, 0x7b, 0x1b, 0x7b, 0xe3, 0x03, 0x8d, 0x9e, 0x0c, 0x2f, 0xd1, 0x1b, 0x11, 0xa4,
- 0x87, 0x48, 0x6b, 0x7f, 0x5d, 0x7f, 0xee, 0xb4, 0x81, 0x3a, 0x95, 0x3f, 0x27, 0x5d, 0x63, 0x15,
- 0x21, 0xf5, 0x5c, 0x89, 0x6b, 0x89, 0xeb, 0xb2, 0x58, 0xc5, 0x8d, 0x61, 0x46, 0x6b, 0x41, 0x9e,
- 0xd4, 0xf7, 0x91, 0x04, 0x46, 0x04, 0x0d, 0xb7, 0x0c, 0xa4, 0x99, 0x10, 0xf6, 0x46, 0x72, 0xb1,
- 0x07, 0x83, 0x3b, 0x36, 0xcb, 0x36, 0xb6, 0x65, 0x5a, 0x4a, 0x57, 0xd8, 0x6f, 0xcb, 0x56, 0x48,
- 0x48, 0x75, 0x2d, 0x95, 0x7a, 0x95, 0xc8, 0x31, 0x7c, 0x3f, 0xc4, 0x11, 0xc1, 0x7a, 0xdc, 0x0f,
- 0xdd, 0xb1, 0xdc, 0x5e, 0xd8, 0x5e, 0x14, 0x18, 0xe2, 0x7a, 0x60, 0xbb, 0x47, 0xd8, 0x88, 0x69,
- 0x6e, 0x03, 0x4a, 0x2a, 0xda, 0x2a, 0x95, 0xe6, 0x7e, 0xb0, 0x1e, 0xa8, 0xe8, 0xda, 0xcb, 0xd9,
- 0xc4, 0xd6, 0x9b, 0xa4, 0x24, 0xa4, 0x06, 0x04, 0x2f, 0xaa, 0x10, 0xd5, 0xff, 0x24, 0x3c, 0xf2,
- 0x58, 0x54, 0x27, 0x35, 0x18, 0x35, 0xc3, 0x82, 0x5f, 0x31, 0x4d, 0xd4, 0xc8, 0x18, 0x92, 0x4c,
- 0x9c, 0x82, 0xbc, 0x91, 0x3c, 0x91, 0xc5, 0x86, 0x70, 0x9b, 0x5d, 0x01, 0x37, 0x3c, 0xae, 0xbe,
- 0x05, 0x2e, 0xab, 0x22, 0x56, 0x22, 0x8f, 0x4b, 0x66, 0x3b, 0xef, 0x88, 0xc7, 0x56, 0x2f, 0x78,
- 0x19, 0x67, 0x47, 0xfa, 0xfc, 0xfa, 0x12, 0x1c, 0xcd, 0xd0, 0x70, 0x6e, 0xb8, 0xfc, 0xb4, 0x9b,
- 0xd8, 0x9f, 0x77, 0x7c, 0x8e, 0x7c, 0x9b, 0x53, 0x84, 0x41, 0x8f, 0x33, 0x80, 0x8e, 0xa7, 0x11,
- 0x80, 0xcb, 0x50, 0x49, 0x96, 0x49, 0x58, 0xd1, 0xdb, 0x70, 0xc2, 0xe7, 0x48, 0x96, 0x35, 0x5d,
- 0x9e, 0x2f, 0x2c, 0x85, 0xa1, 0x85, 0xfc, 0xa8, 0x4c, 0xea, 0xe5, 0x51, 0x9f, 0xa1, 0xd7, 0x8e,
- 0x44, 0x1d, 0xcb, 0xed, 0xb2, 0xed, 0x5e, 0xd5, 0xf4, 0xda, 0xd2, 0x32, 0xb7, 0xb2, 0x09, 0xaf,
- 0xca, 0x13, 0xed, 0xc8, 0x71, 0xc8, 0xa9, 0xce, 0x9b, 0x3e, 0xbe, 0xa6, 0x21, 0x71, 0x90, 0x62,
- 0x3d, 0xbc, 0xb0, 0x51, 0xc1, 0x51, 0x76, 0xe5, 0xf3, 0x2e, 0x12, 0x87, 0x39, 0xc1, 0xda, 0x7d,
- 0x2e, 0x87, 0x62, 0xef, 0x91, 0xef, 0xb9, 0x6f, 0xf2, 0x88, 0x7f, 0x3a, 0xcc, 0x91, 0x30, 0x16,
- 0x72, 0x4a, 0xa6, 0xf2, 0x70, 0xf2, 0x08, 0xb1, 0xd5, 0x5b, 0x81, 0x4e, 0x97, 0x70, 0x50, 0x3a,
- 0x42, 0x29, 0xb8, 0xd1, 0xd6, 0xd1, 0x15, 0xa7, 0xb0, 0x49, 0xd9, 0xc2, 0x8c, 0xd6, 0x82, 0xff,
- 0x65, 0xe8, 0x97, 0x64, 0xd9, 0x64, 0xb5, 0x67, 0xac, 0x1f, 0x5f, 0x53, 0xf1, 0xd9, 0x48, 0x31,
- },
- { /* 4 */
- 0x04, 0xc3, 0xb6, 0x81, 0x36, 0x3e, 0x4d, 0xde, 0x9f, 0xbe, 0xcc, 0x92, 0x5e, 0x72, 0x11, 0x8f,
- 0xc5, 0x34, 0x29, 0xba, 0x33, 0x7a, 0x21, 0x8a, 0x27, 0x60, 0x9b, 0x0b, 0x90, 0xfb, 0x32, 0xb5,
- 0xdf, 0x7b, 0x40, 0x9b, 0x9c, 0xe1, 0x8b, 0x64, 0x4d, 0x3d, 0x10, 0xa8, 0xb8, 0x2d, 0xbd, 0xb7,
- 0xb7, 0x84, 0x27, 0x1f, 0x65, 0xc8, 0x66, 0x5a, 0x26, 0x8a, 0x79, 0x61, 0x18, 0xf3, 0xc4, 0xbf,
- 0x1e, 0x8c, 0xdf, 0xa0, 0x99, 0xa5, 0xe7, 0x30, 0xf5, 0xe3, 0x47, 0x31, 0x76, 0xa4, 0x9e, 0x8d,
- 0x26, 0x94, 0x14, 0xa2, 0x5e, 0x12, 0xa7, 0x8e, 0x43, 0x58, 0x05, 0xc1, 0xc4, 0x5d, 0x70, 0xdb,
- 0xff, 0xac, 0xb9, 0x19, 0xef, 0xd2, 0xa6, 0x5b, 0x3f, 0x84, 0xbf, 0xb2, 0x0d, 0x3b, 0x35, 0x45,
- 0xc8, 0xf2, 0xfc, 0x4b, 0x85, 0xd6, 0x74, 0xfd, 0x12, 0xaf, 0x3f, 0xbb, 0x84, 0x90, 0x94, 0xb4,
- 0x7b, 0xb5, 0x6d, 0xd5, 0xd6, 0x20, 0x5f, 0x79, 0xab, 0x9b, 0x8a, 0x48, 0xc2, 0x11, 0x41, 0x84,
- 0x7a, 0xf5, 0xa1, 0x64, 0x3a, 0xce, 0xdd, 0xaf, 0xfc, 0x55, 0xb9, 0x8d, 0x34, 0xec, 0xd4, 0xd7,
- 0xe8, 0x25, 0x05, 0xc9, 0xf6, 0xe5, 0x59, 0xc2, 0x60, 0x16, 0x90, 0xa1, 0x31, 0x86, 0x1c, 0x46,
- 0xa0, 0x0d, 0x9b, 0xcf, 0x7c, 0xff, 0x99, 0xc3, 0x79, 0x18, 0x56, 0x72, 0x24, 0x4e, 0xed, 0xbc,
- 0x3e, 0x5b, 0x26, 0x22, 0xea, 0x96, 0xca, 0x0f, 0x87, 0x5a, 0xe8, 0x2b, 0xc3, 0xb2, 0x16, 0x7f,
- 0xe9, 0x65, 0xc9, 0x78, 0x1a, 0x0b, 0xdb, 0x14, 0x37, 0xd8, 0xa3, 0x64, 0xc7, 0x7b, 0x89, 0x15,
- 0x09, 0x05, 0x63, 0x70, 0x80, 0x92, 0x18, 0xa9, 0xaa, 0x71, 0x68, 0x22, 0x4a, 0x19, 0xb7, 0x8e,
- 0x18, 0xcf, 0x32, 0x80, 0xb4, 0x84, 0x6d, 0x81, 0xc4, 0x02, 0xed, 0xea, 0x07, 0xef, 0x66, 0xa4,
- 0xba, 0x42, 0xf2, 0xee, 0xd3, 0x64, 0x33, 0x2d, 0x13, 0x45, 0xdd, 0xd1, 0x0c, 0x98, 0x62, 0xbe,
- 0x83, 0x1a, 0xf5, 0x5d, 0xf8, 0x3d, 0xf1, 0x45, 0xf2, 0x30, 0xac, 0xe4, 0x48, 0x9c, 0x19, 0xbb,
- 0x1f, 0xcc, 0x13, 0x11, 0x75, 0x4b, 0x65, 0xe6, 0xa2, 0x2d, 0x74, 0xf4, 0x80, 0x59, 0x0b, 0xde,
- 0x33, 0x9d, 0xf3, 0xd3, 0x5c, 0x3a, 0x9f, 0x78, 0xb2, 0x95, 0x4c, 0x9b, 0xd7, 0xd9, 0xb0, 0x7e,
- 0xb1, 0xc7, 0xca, 0x3f, 0x48, 0xe9, 0xec, 0xeb, 0x17, 0x6b, 0xd3, 0xba, 0x69, 0xb8, 0x3c, 0x96,
- 0xb6, 0xc4, 0xeb, 0xae, 0x89, 0x26, 0xe4, 0x8c, 0x71, 0x44, 0x4a, 0xa4, 0xee, 0x0e, 0x51, 0xec,
- 0x46, 0x2e, 0xdc, 0xe7, 0xcb, 0x47, 0xd0, 0xcf, 0xd5, 0x50, 0x37, 0xef, 0xd8, 0x67, 0x2b, 0x0e,
- 0x78, 0x75, 0xfa, 0xc5, 0x21, 0xd1, 0x1a, 0xc0, 0x52, 0x0a, 0xdf, 0xc4, 0x1b, 0xd5, 0x3d, 0x71,
- 0x5b, 0x62, 0x94, 0x57, 0xa5, 0x13, 0x72, 0x46, 0xd9, 0x22, 0x25, 0x52, 0x77, 0x07, 0xc9, 0x76,
- 0x80, 0xda, 0x62, 0x4d, 0x0f, 0xcc, 0xb4, 0xfc, 0x0b, 0xa1, 0xf9, 0x68, 0x91, 0x58, 0x65, 0x4e,
- 0x8c, 0x5c, 0x7b, 0x0d, 0x55, 0x8e, 0x63, 0x5d, 0x69, 0xa0, 0x6e, 0x1d, 0x73, 0xce, 0x56, 0x1c,
- 0xeb, 0xe5, 0x92, 0xd9, 0x01, 0x14, 0x1c, 0x7b, 0x99, 0x87, 0xc5, 0x2d, 0xe8, 0x42, 0x60, 0xb3,
- 0x2d, 0x11, 0x2c, 0x73, 0xc5, 0x9f, 0x78, 0x48, 0x47, 0x76, 0x0b, 0xaa, 0xa1, 0x7d, 0x2e, 0xf3,
- 0xfb, 0x6f, 0x0f, 0x98, 0xd9, 0xec, 0xeb, 0x85, 0xa0, 0x3a, 0x73, 0x20, 0x53, 0x49, 0x24, 0xca,
- 0xd9, 0x38, 0xad, 0xbb, 0xb1, 0xc0, 0x01, 0xd5, 0x7c, 0xdc, 0xba, 0x73, 0xc9, 0x66, 0x45, 0x9e,
- 0xe0, 0x60, 0xaa, 0x08, 0x9a, 0x99, 0xc3, 0xbd, 0x9d, 0xa9, 0xcb, 0x46, 0x8d, 0x62, 0x3e, 0x9b,
- 0x9e, 0x56, 0xbd, 0xed, 0x96, 0x69, 0x53, 0xcc, 0xfe, 0x42, 0xbe, 0x59, 0xe7, 0xfc, 0xfb, 0xc3,
- 0x36, 0x1e, 0x89, 0xe3, 0x86, 0xea, 0x50, 0x70, 0x7a, 0xe5, 0xb3, 0xcc, 0x7f, 0x56, 0x34, 0xa2,
- 0x42, 0xed, 0x6a, 0x66, 0xfd, 0x79, 0x9d, 0x11, 0x4a, 0xee, 0xfb, 0x7d, 0x86, 0x15, 0x3a, 0x81,
- 0x43, 0xad, 0xa6, 0xd7, 0x11, 0x97, 0x1f, 0xc7, 0x1d, 0x20, 0xc8, 0xb8, 0x70, 0xe8, 0xaf, 0xd2,
- 0xde, 0x3b, 0x8c, 0x2a, 0x70, 0x0f, 0x09, 0xb2, 0x1a, 0xf3, 0x23, 0x6d, 0x4e, 0xd0, 0x28, 0xe4,
- 0xaf, 0x4b, 0x15, 0x9f, 0xd1, 0x4c, 0x0b, 0xdb, 0xe2, 0x88, 0x94, 0x8b, 0x1f, 0x1c, 0xa2, 0x1b,
- 0x56, 0xa4, 0x41, 0xa6, 0x13, 0xbf, 0x27, 0x31, 0xec, 0xed, 0x81, 0xe2, 0x63, 0x6c, 0x6f, 0x77,
- 0xdb, 0xb8, 0xf6, 0x1a, 0xaa, 0xdf, 0xc6, 0xba, 0xd2, 0x83, 0xdc, 0x3a, 0xe6, 0x5f, 0xac, 0x38,
- 0x70, 0x30, 0x55, 0x04, 0x4d, 0xad, 0x80, 0xbf, 0xaf, 0xb5, 0x84, 0x23, 0xa7, 0x31, 0x1f, 0xac,
- 0x3f, 0x1b, 0xea, 0x93, 0x06, 0x78, 0x48, 0xd9, 0xd0, 0x94, 0xdb, 0xee, 0x35, 0x4f, 0x83, 0x2c,
- 0x77, 0x33, 0x74, 0x95, 0x8c, 0x62, 0x88, 0xd8, 0xc9, 0x9a, 0x1d, 0x3d, 0x20, 0x87, 0x72, 0xd6,
- 0x75, 0xb3, 0x2f, 0x34, 0x97, 0x7d, 0x4f, 0xb7, 0x67, 0xc5, 0x7b, 0x74, 0x0f, 0xbe, 0x9b, 0x70,
- 0x87, 0xd9, 0x43, 0xdc, 0xce, 0x03, 0xbc, 0x9b, 0x6d, 0x8e, 0x60, 0x76, 0x16, 0xee, 0x08, 0x34,
- 0x93, 0x90, 0x68, 0x1c, 0x20, 0xc5, 0x06, 0xbb, 0xcb, 0x8d, 0x1a, 0xe9, 0xf3, 0x97, 0x5d, 0xc2,
- 0x1d, 0x4c, 0x48, 0xb0, 0x6e, 0x54, 0xa2, 0x89, 0x0c, 0x72, 0x12, 0xbd, 0xaf, 0x60, 0xe2, 0x78,
- 0xfd, 0x2c, 0xe2, 0xb8, 0xf4, 0xcd, 0x61, 0x34, 0x91, 0xdb, 0xd9, 0xfb, 0x22, 0x02, 0xdc, 0xe3,
- 0x9a, 0x95, 0x0b, 0x6c, 0xa0, 0x57, 0x1e, 0x12, 0x61, 0xfc, 0x72, 0xcb, 0xb9, 0x8e, 0xea, 0x4c,
- 0xea, 0xa5, 0x5e, 0x68, 0xed, 0xfa, 0x9e, 0xad, 0xce, 0x49, 0xf6, 0xe8, 0x1e, 0xbf, 0xf5, 0xe0,
- 0xe5, 0xe3, 0xd0, 0x38, 0x40, 0x49, 0x0c, 0xb5, 0x55, 0xd9, 0x34, 0x11, 0x25, 0xed, 0xba, 0x47,
- 0x55, 0x64, 0xd6, 0xb6, 0xe4, 0x4e, 0x62, 0x88, 0x15, 0x7c, 0xd4, 0x6e, 0xba, 0xa8, 0x13, 0x82,
- 0x4d, 0xab, 0xe4, 0x36, 0x50, 0xca, 0x0f, 0x09, 0xd1, 0x7e, 0x39, 0x84, 0xbd, 0x47, 0x75, 0x26,
- 0x2f, 0x91, 0x77, 0xd2, 0xde, 0x80, 0xbf, 0x27, 0xe9, 0x29, 0x6d, 0xe3, 0x8e, 0x44, 0xc7, 0x55,
- 0x8e, 0xdc, 0x20, 0xac, 0x4e, 0x91, 0xa4, 0x32, 0xc7, 0xff, 0x08, 0x54, 0x5c, 0xf7, 0xbf, 0xba,
- 0xab, 0x88, 0xa3, 0x1e, 0xe7, 0x72, 0x46, 0x05, 0x7d, 0x36, 0x58, 0x19, 0x41, 0x6e, 0xb3, 0x94,
- 0xec, 0xe6, 0xb3, 0x48, 0xc0, 0xdb, 0x14, 0x1c, 0xff, 0xa8, 0x5c, 0x33, 0x6f, 0xf4, 0x0d, 0xc9,
- 0x64, 0x79, 0x7e, 0xc4, 0xa3, 0x6b, 0x3a, 0x9f, 0x09, 0xb6, 0xfe, 0xbc, 0x42, 0x48, 0x4a, 0x5a,
- 0xb3, 0x47, 0x91, 0x9e, 0x53, 0xf6, 0x2b, 0x84, 0xb9, 0x34, 0xb5, 0xf3, 0x46, 0x81, 0xd5, 0x30,
- 0xd5, 0xbe, 0xb4, 0xfb, 0xeb, 0x82, 0xd6, 0x74, 0x1e, 0xdd, 0x2d, 0x06, 0x2b, 0xf0, 0x76, 0xcc,
- 0x91, 0x10, 0x33, 0xbd, 0x3b, 0xda, 0xc1, 0xd4, 0x65, 0xd2, 0x7c, 0xa0, 0xdc, 0xae, 0xb4, 0x64,
- 0x5e, 0xe1, 0xee, 0x67, 0x7f, 0xc3, 0xbd, 0x4e, 0x11, 0x52, 0xda, 0x05, 0xdf, 0x88, 0x4d, 0xaa,
- 0x21, 0x97, 0x35, 0x33, 0x9f, 0xdd, 0xaf, 0xe9, 0x25, 0x77, 0x9c, 0xdf, 0x43, 0xeb, 0x1d, 0xa1,
- 0x49, 0x68, 0x52, 0xb7, 0x66, 0xf4, 0x42, 0xd7, 0x4e, 0xc0, 0xf5, 0x16, 0xe3, 0x35, 0x64, 0xa9,
- 0x5f, 0xa1, 0x22, 0xd6, 0x93, 0x2d, 0x3f, 0x98, 0x46, 0x9c, 0xe9, 0xc0, 0x29, 0x75, 0xd8, 0xf9,
- 0x65, 0x39, 0xb2, 0x75, 0x4f, 0x85, 0xb8, 0x49, 0x5e, 0x78, 0xcd, 0x79, 0xb4, 0xb5, 0xdf, 0x09,
- 0x53, 0x27, 0x3b, 0x96, 0xc9, 0x6f, 0xe8, 0x39, 0x24, 0x9d, 0x7e, 0xb5, 0xcb, 0xe3, 0xeb, 0xab,
- 0x27, 0xd4, 0xd8, 0x13, 0xb2, 0xfc, 0x25, 0x58, 0x14, 0x96, 0x36, 0x04, 0x32, 0xa0, 0xe5, 0x88,
- 0xcc, 0x31, 0x4a, 0xca, 0xb3, 0xe8, 0x39, 0x23, 0x8d, 0x11, 0xf3, 0x29, 0xda, 0xe2, 0x85, 0x3b,
- 0x61, 0xfa, 0x04, 0xf4, 0x79, 0xbb, 0xf5, 0x97, 0xc1, 0xc6, 0x01, 0xeb, 0xea, 0xc7, 0xce, 0x86,
- 0x82, 0x5a, 0x39, 0xec, 0x14, 0xd3, 0x73, 0x93, 0xa5, 0xfe, 0x9f, 0x21, 0xbe, 0x61, 0x8c, 0xe8,
- 0xcf, 0xf1, 0xdd, 0xda, 0x44, 0x19, 0x7c, 0x9a, 0x74, 0x80, 0xa6, 0xa5, 0x03, 0x26, 0xf9, 0xce,
- 0xfa, 0x2f, 0xc3, 0x29, 0x35, 0x02, 0x69, 0x53, 0xf7, 0xf4, 0x40, 0xe5, 0xa5, 0xb4, 0xb1, 0x99,
- 0xbf, 0xc1, 0x88, 0xde, 0x09, 0xb4, 0xfc, 0x25, 0xdb, 0x35, 0x22, 0x86, 0xa4, 0x17, 0xe6, 0x62,
- 0xca, 0x72, 0xa7, 0xea, 0x9e, 0xc9, 0xb3, 0x92, 0xbc, 0xf0, 0x59, 0xf2, 0xab, 0xa9, 0x7d, 0x12,
- 0x4e, 0x6b, 0x73, 0x26, 0xa7, 0x3b, 0x4a, 0xb0, 0x28, 0xef, 0x6c, 0x08, 0x64, 0x83, 0x09, 0xd3,
- 0x97, 0x53, 0xde, 0x9d, 0x16, 0xfb, 0x4b, 0x65, 0x54, 0x33, 0xd6, 0x7b, 0xad, 0xe5, 0x4c, 0x4d,
- 0x9b, 0xd5, 0xc7, 0xdd, 0x4c, 0xb9, 0x9c, 0xc4, 0x36, 0x32, 0x41, 0x0e, 0x4f, 0x73, 0x7f, 0x1f,
- 0x8d, 0x1c, 0xb7, 0xbc, 0xb9, 0x60, 0xe1, 0x8b, 0x3e, 0x6e, 0x5d, 0xd8, 0x85, 0x33, 0xc3, 0x4f,
- 0x68, 0xff, 0x67, 0x84, 0xf9, 0x29, 0xed, 0x3e, 0x6b, 0xb7, 0x69, 0xc9, 0xa0, 0xde, 0x79, 0x08,
- 0x15, 0x09, 0xe7, 0x71, 0x02, 0x28, 0x38, 0xf6, 0xf1, 0xcd, 0x49, 0x5a, 0x13, 0x84, 0xc0, 0xa5,
- 0xfc, 0x6c, 0x2e, 0x09, 0x18, 0x23, 0xe3, 0xe2, 0xc6, 0x15, 0xea, 0x3e, 0xd4, 0xff, 0x49, 0xb0,
- 0xfe, 0xec, 0x75, 0xa8, 0x03, 0x3c, 0x24, 0x8d, 0x68, 0x4a, 0x8c, 0x77, 0xfb, 0xc6, 0xa0, 0x16,
- 0x58, 0xa2, 0x03, 0x47, 0x52, 0xe2, 0x37, 0xff, 0x20, 0xb3, 0x70, 0xde, 0xae, 0xc3, 0xb5, 0x83,
- 0x12, 0x0a, 0xc6, 0xe0, 0xc3, 0xe7, 0x30, 0x91, 0x97, 0xe2, 0xd0, 0x44, 0x94, 0x32, 0xad, 0xdf,
- 0x1b, 0x0f, 0xa5, 0x90, 0x43, 0x75, 0x28, 0x38, 0x3d, 0x93, 0xb8, 0x66, 0xde, 0x2b, 0x1a, 0x51,
- 0x10, 0x8a, 0x9d, 0x41, 0xd8, 0xf8, 0xf7, 0xfe, 0x39, 0xbd, 0xb6, 0x0d, 0xbb, 0x0b, 0x44, 0x79,
- 0xc1, 0xf7, 0x9f, 0x3b, 0x05, 0x44, 0x6c, 0x54, 0xb8, 0xde, 0x57, 0x99, 0xce, 0x89, 0x23, 0x3a,
- 0xe2, 0xe0, 0xf1, 0xa9, 0x81, 0x86, 0x04, 0xd2, 0x33, 0xf6, 0xad, 0x0f, 0xa2, 0x5b, 0xd7, 0x3d,
- 0x19, 0x8f, 0xfe, 0x31, 0x58, 0x6a, 0xef, 0x57, 0x93, 0xcc, 0xde, 0x2f, 0xf1, 0x12, 0xf3, 0xf7,
- 0x52, 0x67, 0xf7, 0x27, 0x25, 0x81, 0x6a, 0xef, 0x73, 0x53, 0x4d, 0x70, 0x3d, 0x1e, 0x7e, 0xf8,
- 0xef, 0x26, 0x24, 0x58, 0x37, 0x2a, 0x51, 0xa5, 0x06, 0x39, 0x09, 0xbf, 0xb6, 0x30, 0x71, 0x3c,
- 0xdc, 0xbb, 0xd7, 0x8b, 0x6b, 0x10, 0xce, 0xdd, 0xb4, 0xac, 0x45, 0x24, 0x61, 0xe9, 0xc1, 0x42,
- 0xf0, 0xea, 0x37, 0x49, 0x42, 0x61, 0x34, 0x43, 0xa4, 0x14, 0x7d, 0x4b, 0x36, 0x69, 0x7a, 0xe2,
- 0x3c, 0xdb, 0x7d, 0x83, 0xf1, 0x89, 0x0d, 0x60, 0x29, 0x05, 0x8e, 0x62, 0xec, 0x8b, 0xff, 0xd9,
- 0x9c, 0xd6, 0xe6, 0x4c, 0x8d, 0x76, 0x94, 0xa3, 0x50, 0x1d, 0xd8, 0x10, 0xc8, 0xc5, 0x12, 0x65,
- 0xbe, 0x81, 0x44, 0x6f, 0xe5, 0x5a, 0x7e, 0xf3, 0x8c, 0xfb, 0x11, 0x43, 0x52, 0xea, 0x73, 0x31,
- 0x38, 0x18, 0xcb, 0x02, 0xc7, 0xb7, 0x40, 0xbe, 0xb6, 0xbb, 0x42, 0xf0, 0xb2, 0xf9, 0xee, 0x56,
- 0x2b, 0x52, 0xc1, 0x53, 0xe8, 0xbe, 0xf2, 0xf9, 0x76, 0x97, 0xa1, 0x71, 0xd0, 0x36, 0xd6, 0xda,
- 0xc9, 0xb2, 0x30, 0xfa, 0x69, 0x38, 0xf6, 0x2b, 0x45, 0x61, 0x0c, 0x7e, 0x72, 0x6d, 0x01, 0xe7,
- 0x24, 0x14, 0x4f, 0x03, 0x45, 0x0d, 0x60, 0xe1, 0xed, 0x07, 0x63, 0x88, 0xeb, 0x64, 0x99, 0x7d,
- 0x98, 0x15, 0x50, 0xcd, 0xbb, 0x48, 0xd9, 0x7d, 0xcf, 0xa3, 0x14, 0x82, 0x96, 0xb7, 0x03, 0xea,
- 0x30, 0x5d, 0x64, 0xc3, 0xab, 0xcb, 0xda, 0xc1, 0x4b, 0x04, 0x19, 0x17, 0x0e, 0x1d, 0xcc, 0x8b,
- 0x0c, 0x86, 0x19, 0x40, 0x5a, 0x42, 0xd7, 0xa1, 0x62, 0x01, 0x97, 0x75, 0xe2, 0x96, 0x33, 0x52,
- 0x69, 0xbf, 0xab, 0x35, 0x15, 0xc7, 0x6f, 0xe8, 0x3c, 0x79, 0x5a, 0x0c, 0x56, 0x23, 0xec, 0x5b,
- 0x54, 0x24, 0x1a, 0x07, 0x08, 0xa0, 0xe0, 0x5e, 0x42, 0xb2, 0xe7, 0xab, 0x4c, 0x55, 0x86, 0xd1,
- 0xee, 0x66, 0xe8, 0xe9, 0xdb, 0xc4, 0xd3, 0x73, 0x51, 0xf7, 0x3a, 0x7a, 0x40, 0xcd, 0xe4, 0x6f,
- 0xb5, 0x04, 0x7c, 0xbe, 0x7e, 0xd7, 0xa1, 0x35, 0x88, 0xd5, 0x1f, 0x28, 0x37, 0xca, 0x2d, 0x19,
- 0x4f, 0x2b, 0xbf, 0x97, 0x4b, 0xd5, 0xc8, 0x66, 0x7f, 0x21, 0x5f, 0xcd, 0x92, 0x7e, 0x9c, 0x80,
- 0x39, 0x58, 0x07, 0xb3, 0x2b, 0x59, 0xc2, 0x68, 0xe1, 0x75, 0x71, 0x35, 0x44, 0x04, 0x7b, 0x05,
- 0x6a, 0x7f, 0x3c, 0x25, 0xe2, 0x36, 0x2a, 0x51, 0xc5, 0xe8, 0x0f, 0x80, 0x8f, 0xe7, 0x90, 0xae,
- 0x1c, 0x0c, 0x84, 0x01, 0x82, 0xba, 0x20, 0x5f, 0x5b, 0xbc, 0x21, 0x78, 0x59, 0x9d, 0x77, 0x2b,
- 0x89, 0xdf, 0x01, 0x3d, 0x8f, 0x5e, 0xac, 0x55, 0xa1, 0xd0, 0x91, 0x4a, 0xdb, 0x41, 0xd2, 0xc0,
- 0x66, 0xf9, 0x25, 0x65, 0xb8, 0x74, 0xfd, 0xf0, 0xa7, 0xe9, 0x98, 0xf5, 0x6d, 0x71, 0xa3, 0xfc,
- 0xa5, 0x8e, 0xe1, 0xff, 0xa6, 0x2f, 0x56, 0xcb, 0xb1, 0x68, 0xa9, 0x25, 0x8c, 0xc1, 0x69, 0x60,
- 0xe4, 0xa3, 0x1c, 0x89, 0xac, 0xa7, 0x8e, 0x63, 0x02, 0x17, 0x07, 0xd4, 0xd3, 0x10, 0x2f, 0x14,
- 0x72, 0xb0, 0x0e, 0xa5, 0x56, 0xb2, 0x47, 0xd0, 0x01, 0xea, 0xe2, 0x6a, 0x88, 0x08, 0xf6, 0x0a,
- 0xf6, 0xa9, 0xda, 0x69, 0x6f, 0x40, 0xbe, 0xf2, 0x95, 0xf5, 0xd7, 0x90, 0x47, 0x22, 0x82, 0xcb,
- 0x14, 0x49, 0x2b, 0xc0, 0xee, 0xc6, 0xba, 0x20, 0xa6, 0x03, 0x7a, 0x9f, 0xe5, 0x79, 0x55, 0xf6,
- 0x02, 0x80, 0x5b, 0xa1, 0x1b, 0x1f, 0xc7, 0x6f, 0xae, 0x5f, 0x66, 0x49, 0x2f, 0x39, 0xe9, 0xa6,
- 0x50, 0xe7, 0xac, 0x86, 0x3e, 0x9e, 0xad, 0x80, 0xdd, 0x0c, 0x2b, 0x39, 0x12, 0x27, 0x97, 0x5e,
- 0xbd, 0x41, 0xd3, 0x7f, 0x12, 0xab, 0x3b, 0x4a, 0x75, 0x6a, 0x44, 0xcf, 0x8b, 0x2e, 0x0f, 0xc4,
- 0x9f, 0x16, 0x71, 0x5c, 0x7a, 0x87, 0xd1, 0x1a, 0xa9, 0x8c, 0x8d, 0x9c, 0x11, 0x01, 0x6e, 0x90,
- 0xe3, 0xa0, 0x3d, 0x18, 0x6d, 0x68, 0x86, 0x04, 0x64, 0x38, 0x9e, 0xca, 0x54, 0xa6, 0x42, 0x6e,
- 0x05, 0x83, 0x7a, 0x30, 0xda, 0xd0, 0xcf, 0x08, 0xc8, 0x70, 0xff, 0x57, 0xa8, 0x8f, 0x84, 0xdc,
- 0x07, 0x03, 0x21, 0x91, 0xc1, 0xcf, 0x08, 0x67, 0x66, 0x2f, 0x99, 0x1e, 0x87, 0xb6, 0x6d, 0x7a,
- 0x88, 0x9f, 0xcd, 0x8c, 0x63, 0xb0, 0x2e, 0x83, 0xf6, 0x1e, 0xa2, 0x8f, 0x2d, 0xbc, 0x47, 0x93,
- 0xcb, 0x32, 0x6b, 0x5b, 0x72, 0x27, 0x31, 0x44, 0xeb, 0x3e, 0x6a, 0x37, 0x5d, 0x54, 0xe8, 0x41,
- 0x3a, 0x98, 0x90, 0xa3, 0xdc, 0xa8, 0x87, 0xd1, 0x18, 0xe4, 0x24, 0xb9, 0x9d, 0xc0, 0x07, 0xf0,
- 0x85, 0x59, 0x18, 0x7d, 0xd5, 0x1c, 0x7b, 0xf4, 0xc3, 0xd1, 0x06, 0x3f, 0x39, 0xd7, 0xe1, 0x92,
- 0x41, 0x2d, 0xfd, 0x76, 0x0a, 0x88, 0xd8, 0xa8, 0xb3, 0x7f, 0xae, 0xf1, 0x5f, 0xd1, 0x46, 0x74,
- 0x2a, 0x12, 0x0d, 0xe2, 0x04, 0x50, 0x70, 0x2f, 0x21, 0x59, 0x92, 0xb4, 0x26, 0xcb, 0x43, 0x89,
- 0x92, 0xd0, 0xa4, 0xad, 0xcc, 0x2b, 0x84, 0x6d, 0x9c, 0x43, 0x29, 0x2c, 0x05, 0x6a, 0xc8, 0x91,
- 0xb9, 0x82, 0x65, 0xfe, 0x24, 0x95, 0x76, 0x94, 0xea, 0xd4, 0x88, 0x5d, 0xd5, 0x5c, 0x1e, 0x4b,
- 0xe6, 0x23, 0x47, 0x28, 0xb7, 0xb8, 0x49, 0x0c, 0xac, 0x48, 0x61, 0x9d, 0xfc, 0x29, 0xc6, 0xb2,
- 0xf2, 0x6a, 0x6c, 0xe8, 0x59, 0x7e, 0xf3, 0x2c, 0x0a, 0x4b, 0x1b, 0x02, 0x19, 0x50, 0x93, 0x44,
- 0x28, 0x92, 0x56, 0x43, 0x1f, 0x4f, 0xb7, 0x40, 0x8f, 0x06, 0xf4, 0xfd, 0x09, 0xf2, 0xaa, 0x2f,
- 0x7d, 0xf6, 0x80, 0xf5, 0xfb, 0x01, 0xd5, 0xc8, 0x9a, 0x7a, 0x20, 0x93, 0xb3, 0x5a, 0xb9, 0xad,
- 0xbb, 0x02, 0x3e, 0x5f, 0x3f, 0x8a, 0xb1, 0xfb, 0x44, 0x8b, 0xee, 0x14, 0xfa, 0x65, 0xf7, 0xed,
- 0xf3, 0x2a, 0xa0, 0x59, 0xb5, 0x90, 0x71, 0xfa, 0x5d, 0x85, 0x28, 0xc7, 0xef, 0xad, 0x06, 0x17,
- 0xe7, 0x63, 0x8b, 0x99, 0x5b, 0x56, 0xcb, 0xda, 0xfb, 0x86, 0x52, 0x58, 0x0a, 0xd4, 0x53, 0xe1,
- 0xad, 0xcb, 0x4e, 0x3e, 0xca, 0x53, 0xcc, 0xb4, 0x4c, 0xd7, 0xf2, 0xc2, 0x30, 0x25, 0x4b, 0xbd,
- 0x0e, 0x06, 0x42, 0xe1, 0x41, 0x5d, 0x10, 0xce, 0xcc, 0x5e, 0xf1, 0x3c, 0xcd, 0xaf, 0xda, 0xf4,
- 0x76, 0x73, 0xb8, 0x24, 0x60, 0x8c, 0x0a, 0x0e, 0x9e, 0x54, 0x2e, 0xf8, 0xd6, 0x7a, 0xe7, 0x85,
- 0x3b, 0xd8, 0x5c, 0x12, 0x30, 0x46, 0x05, 0x07, 0x4f, 0x2a, 0x17, 0x7c, 0x6b, 0x3d, 0x92, 0xa3,
- 0x6d, 0x7c, 0x1d, 0xb4, 0x23, 0xf9, 0x22, 0x36, 0xa3, 0xc7, 0x96, 0x9e, 0x08, 0x51, 0xfd, 0xd4,
- 0x20, 0xd7, 0xf9, 0x82, 0x73, 0x33, 0x2d, 0x3f, 0x72, 0xb9, 0xaf, 0x1a, 0xb5, 0x16, 0x88, 0xf2,
- 0xa9, 0x08, 0xf8, 0xbf, 0xfc, 0x6d, 0x81, 0x6a, 0xd3, 0x69, 0x3e, 0x50, 0x6e, 0x57, 0x5a, 0x32,
- 0x0b, 0x85, 0x38, 0xd1, 0x9b, 0x8d, 0xdf, 0xc6, 0x04, 0x2e, 0x0e, 0x6b, 0x65, 0x20, 0x5e, 0x28,
- 0xce, 0xb1, 0x11, 0x6b, 0xa8, 0xf7, 0xfe, 0x4c, 0x23, 0x4e, 0x95, 0x60, 0xf5, 0xdb, 0x6c, 0x9d,
- 0x8f, 0x9c, 0xec, 0x1d, 0xa2, 0x7f, 0x26, 0xe4, 0x90, 0x31, 0x3b, 0x91, 0xaa, 0x0a, 0x2a, 0xe9,
- 0x94, 0x93, 0x49, 0x8d, 0xe1, 0x0a, 0x0e, 0xdc, 0xad, 0xa2, 0x83, 0xf7, 0x74, 0x21, 0x30, 0xb8,
- 0x4c, 0xeb, 0x28, 0x87, 0xbc, 0x24, 0x8d, 0xdf, 0x86, 0xb0, 0x0a, 0x41, 0x4b, 0xba, 0xe0, 0x75,
- 0x29, 0xd2, 0x9a, 0xf2, 0xf3, 0xa1, 0x35, 0x96, 0xd8, 0xc8, 0xc7, 0x38, 0xff, 0x0f, 0x3f, 0x7c,
- 0x5a, 0x22, 0x58, 0xe6, 0x49, 0xfd, 0xf0, 0x90, 0x8e, 0xec, 0x16, 0x97, 0x81, 0xfa, 0x5c, 0x25,
- 0xb4, 0x44, 0xb0, 0x0f, 0x92, 0x39, 0x23, 0xe3, 0xdf, 0x1b, 0x2c, 0xed, 0xc1, 0x37, 0xb8, 0x4a,
- 0x6e, 0xbc, 0x8a, 0xa4, 0xd4, 0x08, 0x67, 0x8f, 0x5a, 0x56, 0xc3, 0x12, 0xd1, 0x95, 0x81, 0x21,
- 0x1a, 0x4f, 0x69, 0x21, 0xaf, 0x9b, 0xaa, 0xee, 0x6a, 0x5d, 0x8b, 0xa3, 0x28, 0xd6, 0x8f, 0x02,
- 0xf7, 0xe9, 0x16, 0xd8, 0x83, 0xae, 0x3c, 0x24, 0xc2, 0x3b, 0xe4, 0x55, 0xb1, 0xdf, 0x17, 0x98,
- 0x67, 0xb9, 0xe9, 0xd4, 0x54, 0x9a, 0x7f, 0x26, 0xf0, 0x27, 0xab, 0x30, 0x9b, 0x8c, 0x36, 0xaf,
- 0xd4, 0xfe, 0x78, 0x4a, 0x07, 0x6c, 0x54, 0xa2, 0x49, 0x13, 0x1e, 0xc3, 0xdd, 0x0d, 0xe3, 0x9f,
- 0xb8, 0xc2, 0xa9, 0x4f, 0xc8, 0x7b, 0xf4, 0x42, 0xbd, 0x1a, 0xbb, 0x98, 0x23, 0xa1, 0x8b, 0x18,
- 0xd8, 0x78, 0x61, 0x0a, 0x5d, 0x2e, 0x83, 0x03, 0x2b, 0x12, 0x89, 0xb6, 0x3f, 0x9b, 0xd0, 0xcd,
- 0x8a, 0x1f, 0x96, 0x2d, 0x78, 0xaf, 0xe9, 0xec, 0x58, 0x41, 0xc4, 0xc6, 0x02, 0x85, 0xae, 0x35,
- 0xda, 0xf8, 0x3a, 0xab, 0x46, 0x31, 0x44, 0x6c, 0x85, 0x4d, 0xef, 0xff, 0x10, 0xa2, 0x39, 0x6b,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3d, 0x9b, 0xb1, 0x32, 0x1d, 0x67, 0x8f, 0xb6, 0x7e, 0xcb, 0xbd, 0xa7, 0x1a, 0x76, 0x6a, 0x8a,
- 0x99, 0x55, 0x9c, 0x7c, 0x57, 0xa6, 0x5b, 0xab, 0x98, 0x6d, 0x27, 0x47, 0x60, 0x4a, 0x96, 0xb9,
- 0xd3, 0xfd, 0x59, 0xdb, 0xc6, 0xa3, 0x5c, 0xc5, 0x2f, 0x3c, 0x87, 0xdd, 0x5a, 0xbb, 0x8e, 0xe5,
- 0x9d, 0x96, 0x2a, 0xfd, 0x61, 0x98, 0x16, 0x75, 0x07, 0xd3, 0xeb, 0xd5, 0x3e, 0x38, 0x87, 0x36,
- 0x7e, 0x36, 0x17, 0xe5, 0x0c, 0xf0, 0x90, 0x71, 0x63, 0xeb, 0x75, 0x1f, 0x6a, 0x9e, 0xc5, 0x58,
- 0x06, 0x43, 0xed, 0x20, 0x2d, 0x21, 0x8a, 0xb1, 0x31, 0xe1, 0xaa, 0xdb, 0x71, 0x4b, 0xf8, 0x29,
- 0xd1, 0x7d, 0x02, 0x7a, 0xdd, 0xbc, 0x9b, 0xaa, 0x81, 0x63, 0xe1, 0x94, 0x75, 0x82, 0x67, 0x43,
- 0xaa, 0xc8, 0x6f, 0xaf, 0x0b, 0x9c, 0xc4, 0xd3, 0x2a, 0xf8, 0x6b, 0xdc, 0xb7, 0x93, 0x26, 0xc7,
- 0xa4, 0xce, 0x2d, 0x4e, 0x4a, 0xc1, 0xd4, 0x1d, 0xe6, 0xa6, 0x9a, 0xe0, 0x7a, 0x3c, 0xfc, 0x33,
- 0x03, 0xc0, 0x97, 0x10, 0xf7, 0xf1, 0x45, 0xb9, 0xf9, 0x91, 0x55, 0x8c, 0xd9, 0xc4, 0x7c, 0xf5,
- 0x23, 0x17, 0x6e, 0x92, 0x84, 0xc2, 0x68, 0x86, 0x8b, 0x28, 0xfa, 0x96, 0x6c, 0xd2, 0xf4, 0x07,
- 0x0a, 0xc5, 0xf4, 0x60, 0x77, 0x63, 0x5d, 0x10, 0x53, 0xe0, 0x3d, 0xae, 0x93, 0xdd, 0xcb, 0x7b,
- 0x7c, 0xb6, 0x4c, 0x44, 0x17, 0xef, 0x57, 0x1e, 0xcd, 0xb4, 0x13, 0x56, 0x45, 0xa7, 0x2c, 0xfe,
- 0x22, 0x57, 0xa2, 0x23, 0x68, 0x2c, 0xea, 0x50, 0xdc, 0xe6, 0xc9, 0x53, 0x9a, 0x2f, 0x61, 0x54,
- 0x37, 0x5e, 0x45, 0x52, 0x6a, 0x04, 0xd2, 0xa6, 0x2d, 0x2b, 0x80, 0x09, 0x89, 0xab, 0xa1, 0xf1,
- 0x4a, 0xa8, 0xc5, 0xa7, 0x91, 0x05, 0x07, 0x6e, 0xb7, 0x51, 0xa0, 0x9a, 0x3a, 0xf1, 0x18, 0x5c,
- 0x2e, 0xd1, 0xbb, 0x63, 0x32, 0x6e, 0x3d, 0xf1, 0xbe, 0xe7, 0x5e, 0x26, 0x78, 0xb9, 0x52, 0x06,
- 0x25, 0x54, 0x83, 0xb2, 0xa9, 0xe3, 0xe2, 0x37, 0xba, 0xc9, 0x50, 0x4d, 0x1d, 0x99, 0x0c, 0x2e,
- 0xf8, 0xaf, 0x98, 0x88, 0x2e, 0x1d, 0xae, 0x3c, 0x59, 0xab, 0x26, 0xac, 0x8a, 0x8d, 0x58, 0x3f,
- 0xdd, 0xfb, 0x1b, 0x3a, 0x87, 0xfe, 0x4c, 0x0b, 0xe3, 0x62, 0x76, 0xe1, 0x97, 0x14, 0x54, 0x11,
- 0x31, 0x1d, 0xa8, 0x72, 0x47, 0x25, 0x58, 0x17, 0x1c, 0xca, 0x2a, 0xd2, 0xf8, 0xe0, 0x59, 0xd8,
- 0x74, 0xf3, 0xe3, 0x85, 0x7b, 0x93, 0xcd, 0x61, 0x30, 0x0b, 0x48, 0xb1, 0xf9, 0x43, 0x0e, 0x23,
- 0x59, 0xe2, 0xcf, 0xf6, 0xbe, 0x0c, 0xb5, 0x29, 0x77, 0x7d, 0x43, 0x1b, 0x58, 0x3e, 0x20, 0xd0,
- 0xcd, 0x71, 0x86, 0x7b, 0x5f, 0x06, 0xbb, 0xf5, 0xda, 0xdf, 0xc0, 0xec, 0x2c, 0x1f, 0x10, 0x68,
- 0x5d, 0x21, 0x79, 0x77, 0x88, 0x32, 0xf8, 0xf7, 0xe8, 0xc3, 0x8f, 0x89, 0x06, 0x4c, 0x31, 0x5f,
- 0x08, 0x45, 0xaf, 0xc1, 0x6c, 0x7c, 0x9a, 0x7f, 0xfd, 0xbf, 0x5b, 0xe7, 0xbc, 0xe4, 0x22, 0xdd,
- 0x7f, 0x76, 0xdb, 0x54, 0xe0, 0x1e, 0x12, 0xa7, 0x34, 0x25, 0x46, 0xda, 0x9c, 0x63, 0x50, 0x0b,
- 0xa6, 0x4e, 0x76, 0xef, 0x51, 0xde, 0x13, 0x72, 0x48, 0xf9, 0xfc, 0xa9, 0x55, 0x05, 0x15, 0x95,
- 0xf9, 0xef, 0x54, 0x39, 0xc2, 0xf3, 0x2c, 0xea, 0x0e, 0x65, 0x15, 0x69, 0x7c, 0x70, 0xcd, 0x6c,
- 0x90, 0x50, 0xff, 0x0c, 0xd7, 0x34, 0x43, 0x02, 0x32, 0x1c, 0x4f, 0x65, 0x2a, 0x53, 0x21, 0x37,
- 0x0f, 0x46, 0x8e, 0x50, 0xad, 0xb3, 0x92, 0x18, 0x9b, 0x90, 0xc2, 0xf9, 0x3b, 0x52, 0x4f, 0xa7,
- 0xb0, 0x87, 0x06, 0x8e, 0xa4, 0x07, 0x6e, 0x3d, 0x40, 0xa5, 0xe0, 0x7f, 0x9f, 0x45, 0xa9, 0xc5,
- 0xac, 0x8b, 0x82, 0x8f, 0x26, 0xbd, 0x4e, 0x62, 0x1b, 0x19, 0xc1, 0x07, 0xc6, 0xd8, 0xde, 0xee,
- 0x60, 0xba, 0xc8, 0x45, 0x95, 0x55, 0x77, 0x41, 0x96, 0x08, 0x32, 0x2e, 0x1c, 0x3a, 0x5b, 0xd5,
- 0x6c, 0x3c, 0xd1, 0x05, 0xcf, 0x17, 0xa0, 0xe0, 0xf4, 0x09, 0xa5, 0x5b, 0xfe, 0xac, 0x68, 0x87,
- 0x13, 0x4a, 0x0a, 0x51, 0x2f, 0x09, 0xb2, 0x47, 0xc0, 0x2c, 0xe3, 0x81, 0x62, 0xcf, 0x38, 0x8c,
- 0xbc, 0x01, 0x1f, 0xce, 0xfe, 0x45, 0xb9, 0x9c, 0x22, 0xa4, 0x77, 0x0a, 0x7d, 0xd3, 0x9a, 0x97,
- 0x32, 0xdd, 0x3f, 0x62, 0xb0, 0xd4, 0x1d, 0xae, 0xe5, 0x5b, 0x7f, 0x5e, 0x21, 0x24, 0x25, 0x2d,
- 0xf1, 0xaa, 0xfb, 0xf8, 0xae, 0x8f, 0xb6, 0x95, 0xf3, 0xda, 0x4e, 0x8e, 0xc0, 0x94, 0xef, 0xb1,
- 0xd6, 0x7e, 0x23, 0xeb, 0x1c, 0x73, 0x93, 0xcd, 0xe7, 0x4c, 0x78, 0x8a, 0xf2, 0x34, 0x0a, 0x39,
- 0x44, 0xae, 0x87, 0x46, 0xd0, 0x58, 0x17, 0xa0, 0x7b, 0x0f, 0x51, 0xa6, 0xf7, 0x5e, 0xc2, 0xa8,
- 0x62, 0x3a, 0x93, 0xe4, 0x8e, 0x4a, 0xb0, 0x2e, 0x38, 0x57, 0x54, 0x67, 0x33, 0x03, 0xb2, 0x73,
- 0xa8, 0x48, 0x34, 0x0e, 0x10, 0x83, 0x03, 0xbc, 0x84, 0xa7, 0x0d, 0x95, 0x98, 0xaa, 0xcf, 0x61,
- 0x40, 0x6d, 0x31, 0xc7, 0xe6, 0x66, 0x5a, 0x7e, 0xe4, 0xb1, 0x9d, 0x34, 0xa9, 0x2c, 0xd3, 0x27,
- 0x95, 0xd3, 0x85, 0x3c, 0x0d, 0xe4, 0x8c, 0x0a, 0xfa, 0x6c, 0xb0, 0x32, 0x82, 0xdc, 0xa5, 0xeb,
- 0x11, 0xca, 0x51, 0xf0, 0x34, 0x16, 0x75, 0x28, 0x6e, 0x73, 0x85, 0xc8, 0x4d, 0xf6, 0xd1, 0x2a,
- 0x8b, 0x5f, 0x5a, 0x9c, 0x94, 0x41, 0x6b, 0x3a, 0x0f, 0x8f, 0xf7, 0x03, 0xf4, 0x78, 0x3b, 0x66,
- 0x01, 0x40, 0xcc, 0xb1, 0xec, 0xee, 0x82, 0xd6, 0x57, 0xce, 0x33, 0xc5, 0xf6, 0xfd, 0x95, 0x53,
- 0x0d, 0xc6, 0xd5, 0xf1, 0xb6, 0xac, 0x55, 0x77, 0x35, 0xcf, 0xa4, 0xb0, 0x14, 0x6b, 0xa6, 0x01,
- 0xe1, 0x20, 0x66, 0xb9, 0x76, 0x77, 0x41, 0x6b, 0xca, 0x67, 0xf8, 0x83, 0x7b, 0x9f, 0xab, 0xc8,
- 0x6b, 0x3f, 0xf0, 0x94, 0x0e, 0xd8, 0xa8, 0x87, 0x92, 0x26, 0x3c, 0x45, 0x79, 0x1a, 0x05, 0xfd,
- 0xc2, 0x37, 0x08, 0x2b, 0xf2, 0xb5, 0x29, 0xed, 0x41, 0x4f, 0x02, 0x15, 0x17, 0x4d, 0x5f, 0xcf,
- 0x5c, 0x61, 0xb5, 0xc6, 0x64, 0xdc, 0x7a, 0x21, 0xbf, 0x0d, 0xbc, 0x4c, 0xf0, 0xb1, 0xa4, 0x0c,
- 0xc7, 0xb4, 0x72, 0x1b, 0x28, 0x65, 0xe6, 0xe5, 0x89, 0x3f, 0xfd, 0x42, 0xbf, 0xc2, 0xdb, 0x13,
- 0x84, 0x19, 0xd4, 0xcc, 0x39, 0xf2, 0xf9, 0x22, 0x94, 0x1f, 0x35, 0xfa, 0xcf, 0x2a, 0x74, 0xc1,
- 0x45, 0xee, 0x4b, 0xf7, 0x3c, 0xb6, 0x95, 0x76, 0x2c, 0xc1, 0x62, 0x63, 0x01, 0xa3, 0x57, 0xfb,
- 0x79, 0x35, 0x36, 0x74, 0xcd, 0x3f, 0x98, 0x16, 0x05, 0xc4, 0xec, 0x01, 0xed, 0x28, 0xa8, 0x22,
- 0x4b, 0xe8, 0x09, 0x16, 0x7d, 0xeb, 0x85, 0xb8, 0xe0, 0x9f, 0x93, 0x5f, 0xcc, 0x0c, 0x8d, 0x0f,
- 0x48, 0x28, 0x9e, 0x06, 0x8a, 0x1a, 0xc0, 0x01, 0x19, 0x0e, 0xc6, 0xd3, 0x15, 0xc8, 0xf1, 0xfa,
- 0x6f, 0xfc, 0x46, 0x15, 0x38, 0xe6, 0xe5, 0x59, 0x0d, 0x98, 0xf0, 0xd7, 0x27, 0x68, 0x14, 0x72,
- 0xa7, 0x0e, 0xba, 0x5e, 0xbd, 0x30, 0x91, 0xa4, 0x1f, 0x37, 0xcf, 0x6c, 0xa3, 0xf8, 0x80, 0xc6,
- 0xa2, 0x8d, 0xc0, 0x6e, 0x67, 0xe0, 0x5e, 0xac, 0xd7, 0x47, 0x30, 0x3b, 0x0b, 0x77, 0x04, 0x1a,
- 0xc0, 0xb7, 0x53, 0x8a, 0xe9, 0xaa, 0xee, 0x82, 0xef, 0x10, 0x64, 0x5c, 0x38, 0x74, 0xb6, 0x69,
- 0x2c, 0x51, 0xe0, 0xc2, 0x29, 0x71, 0xfa, 0x9e, 0x10, 0xb8, 0x38, 0x6f, 0x57, 0x80, 0xbb, 0xa0,
- 0x81, 0x9a, 0xae, 0xfc, 0xe3, 0x22, 0x36, 0x2a, 0x5c, 0x6f, 0xca, 0xad, 0x67, 0xa5, 0xf0, 0x1d,
- 0xd0, 0x3d, 0xce, 0xcb, 0x31, 0x52, 0x19, 0x7c, 0xd6, 0xad, 0xd2, 0x51, 0x83, 0x7f, 0xf2, 0x10,
- 0x17, 0x89, 0xbc, 0xd0, 0x19, 0x37, 0xff, 0x99, 0x5f, 0x92, 0x2f, 0x13, 0x3c, 0xbd, 0x29, 0x03,
- 0xa3, 0xcd, 0x0c, 0xdf, 0x8b, 0x0e, 0xdc, 0x7a, 0x80, 0x89, 0x03, 0xfe, 0xfd, 0x8a, 0x91, 0x49,
- 0xd2, 0xbd, 0x95, 0x6a, 0x2a, 0x4d, 0xde, 0x13, 0x78, 0xf2, 0xb4, 0x18, 0xac, 0x46, 0x1b, 0xb6,
- 0x57, 0xe4, 0x8d, 0x17, 0xff, 0x51, 0xa5, 0xe7, 0xbb, 0x23, 0xb2, 0x27, 0x95, 0x91, 0xfa, 0x24,
- 0x71, 0x70, 0x99, 0xb5, 0xa1, 0x43, 0x02, 0x69, 0xf8, 0x7b, 0xb7, 0xe6, 0x51, 0xcc, 0x8a, 0xff,
- 0xa1, 0x4d, 0x57, 0x7e, 0x90, 0x11, 0x1b, 0x15, 0x2e, 0xd6, 0x65, 0xb7, 0xd2, 0xb3, 0x78, 0xef,
- 0xc3, 0x77, 0xc4, 0x9a, 0x1e, 0x5b, 0xab, 0x3b, 0x16, 0x81, 0x31, 0xd0, 0xe1, 0xb0, 0xca, 0x9c,
- 0x51, 0xa7, 0x60, 0x37, 0xd2, 0x70, 0x2f, 0x56, 0x8a, 0xc2, 0x18, 0xfc, 0xe4, 0xda, 0x02, 0x0d,
- 0x35, 0xde, 0x1e, 0xf3, 0x71, 0x1b, 0x15, 0xc9, 0x83, 0x74, 0xe6, 0x40, 0xa6, 0x92, 0x48, 0x57,
- 0x47, 0x6e, 0x10, 0x56, 0x27, 0xa9, 0x52, 0x19, 0x82, 0x9e, 0x04, 0x2a, 0x2e, 0x9a, 0xbe, 0x5d,
- 0xf5, 0x69, 0x4d, 0x79, 0x98, 0xb1, 0xfb, 0x4b, 0x6c, 0x64, 0x82, 0x1c, 0x9e, 0xe6, 0xfe, 0x3e,
- 0xb2, 0x07, 0x5d, 0x2f, 0xbf, 0x18, 0xa9, 0x52, 0xee, 0xfa, 0x86, 0x36, 0xb0, 0x7c, 0x40, 0x63,
- 0xd7, 0x3e, 0xef, 0x5a, 0xf0, 0x9d, 0x11, 0x1b, 0xb0, 0x82, 0x4b, 0x4f, 0x04, 0xc9, 0x9f, 0x6a,
- 0x16, 0xc9, 0x70, 0x61, 0xf5, 0xd9, 0x7d, 0x4f, 0x08, 0x5c, 0x1c, 0xd6, 0xca, 0x40, 0xbc, 0x50,
- 0x86, 0x99, 0x8f, 0x6d, 0x22, 0xed, 0x3e, 0x4d, 0x3a, 0x40, 0x53, 0xb3, 0xe0, 0x13, 0x9d, 0x67,
- 0x73, 0xf0, 0xc2, 0x14, 0xba, 0x5c, 0xc5, 0x06, 0x56, 0x24, 0xd1, 0xaf, 0x7e, 0xf5, 0x63, 0x59,
- 0xc4, 0x74, 0xe5, 0x0b, 0xdf, 0x94, 0xa3, 0x5c, 0x70, 0xae, 0xa8, 0xce, 0x66, 0x06, 0xa7, 0xe6,
- 0x34, 0x9e, 0xd2, 0x42, 0x9d, 0xf5, 0x97, 0x1f, 0xd4, 0xba, 0xd5, 0x85, 0x50, 0x6f, 0xdd, 0x04,
- 0xc6, 0xf4, 0xbe, 0xaa, 0xc4, 0x8b, 0x64, 0x33, 0xde, 0xf1, 0xce, 0x87, 0x49, 0x3f, 0x4e, 0x40,
- 0x96, 0x13, 0x12, 0x2c, 0xfa, 0x15, 0xc9, 0xb3, 0x03, 0xfd, 0xe5, 0xbe, 0x5b, 0x18, 0xd9, 0x1e,
- 0xed, 0xa6, 0x7f, 0xf9, 0x2c, 0x35, 0x96, 0xca, 0xa8, 0x66, 0x6f, 0xf6, 0x99, 0x09, 0x98, 0x9a,
- 0xf4, 0x29, 0x81, 0xc8, 0x74, 0x5f, 0x79, 0x9d, 0x3b, 0xaa, 0xb1, 0xd9, 0x68, 0x1b, 0x6b, 0x6d,
- 0xae, 0x0b, 0xd9, 0x2e, 0x3d, 0xa2, 0x89, 0x0d, 0xb5, 0x46, 0xa7, 0x4e, 0xe9, 0xe1, 0x37, 0x48,
- 0x63, 0x7a, 0x5f, 0x55, 0x62, 0xa4, 0x32, 0xf8, 0x6f, 0x99, 0x67, 0xa2, 0xc5, 0xfe, 0x27, 0x20,
- },
- { /* 5 */
- 0x79, 0x80, 0xab, 0xe7, 0xa9, 0x6f, 0x50, 0x97, 0xbe, 0x20, 0xdb, 0x5a, 0xb5, 0x1a, 0xf0, 0xb4,
- 0x91, 0x1a, 0x97, 0x16, 0x14, 0x45, 0x9f, 0x6e, 0x60, 0xe7, 0xef, 0x55, 0x0a, 0x58, 0x62, 0xaa,
- 0x99, 0xdc, 0x5f, 0x93, 0xd1, 0x32, 0x94, 0x30, 0x3d, 0x37, 0xfc, 0x67, 0x89, 0x09, 0x7f, 0xce,
- 0xb9, 0x42, 0xf9, 0xc2, 0x43, 0x2d, 0xb8, 0x8b, 0x8a, 0xf1, 0xb0, 0xaf, 0xc0, 0x8e, 0x0b, 0x9d,
- 0x71, 0x46, 0x63, 0x62, 0x6c, 0x18, 0x5b, 0xc9, 0xe3, 0xf0, 0xc8, 0x68, 0x36, 0x4b, 0xed, 0xd0,
- 0xea, 0x4a, 0x0e, 0x41, 0x1d, 0x47, 0xbd, 0x0f, 0x58, 0xf3, 0x40, 0xe2, 0xef, 0xc7, 0x04, 0x07,
- 0xd7, 0x56, 0x4e, 0xa7, 0xd0, 0xcc, 0x51, 0x02, 0x84, 0xf4, 0xeb, 0xf2, 0x68, 0xd9, 0xf3, 0x27,
- 0x95, 0x79, 0xf3, 0xb5, 0x97, 0x9f, 0x7b, 0x41, 0xaf, 0x8f, 0x07, 0x4c, 0xaa, 0x91, 0x8d, 0x98,
- 0x55, 0xbb, 0xa1, 0x90, 0x7d, 0xdd, 0x93, 0x5d, 0x9b, 0x5e, 0x6c, 0xb9, 0xdf, 0x05, 0x76, 0xb1,
- 0xda, 0x9b, 0xfb, 0xd9, 0xc6, 0xb6, 0x87, 0x08, 0x55, 0x56, 0x2a, 0x4e, 0x63, 0xe2, 0x4a, 0x9c,
- 0xdb, 0xf3, 0xe2, 0x81, 0x96, 0x61, 0xbe, 0x73, 0x16, 0x4c, 0x10, 0xd9, 0x4b, 0x41, 0x01, 0x71,
- 0xb5, 0xe7, 0x55, 0xe4, 0x05, 0x80, 0x57, 0xfa, 0x18, 0x49, 0x4b, 0x84, 0xe3, 0x16, 0xf9, 0xcb,
- 0x3f, 0xcc, 0x72, 0x56, 0x6d, 0xe6, 0x9e, 0xfb, 0x5a, 0x33, 0xdf, 0xfd, 0xd7, 0x9b, 0x61, 0x39,
- 0x54, 0xd3, 0xb8, 0xc8, 0x2d, 0x0a, 0xaa, 0x26, 0xd8, 0x44, 0x56, 0x2e, 0xf7, 0xa6, 0x3d, 0x5c,
- 0x7d, 0xe3, 0xcf, 0x44, 0x2a, 0xb5, 0xb4, 0xb8, 0x71, 0x48, 0x33, 0x43, 0x15, 0xd3, 0x1f, 0x86,
- 0xd5, 0x86, 0x7c, 0x17, 0x70, 0xa1, 0x23, 0xf4, 0x02, 0xc0, 0x9f, 0x1f, 0x38, 0x5c, 0x65, 0x3e,
- 0xbd, 0x21, 0x9d, 0x61, 0xc0, 0xf7, 0x5c, 0xa4, 0x45, 0x99, 0x58, 0xb6, 0x60, 0x47, 0xe4, 0xaf,
- 0xa9, 0x0d, 0xaa, 0x0b, 0x0a, 0xc3, 0xae, 0x37, 0x30, 0x92, 0x96, 0xcb, 0x05, 0x2c, 0x31, 0x55,
- 0xfe, 0x66, 0x39, 0x2b, 0xd7, 0x73, 0x4f, 0x9c, 0x2d, 0xf8, 0x8e, 0x9f, 0x8a, 0xac, 0xd1, 0xfd,
- 0x3b, 0xaf, 0x16, 0xf5, 0xee, 0x3c, 0x7a, 0xd4, 0x95, 0x5b, 0x37, 0xe4, 0x77, 0x52, 0x8e, 0x0b,
- 0x1d, 0x82, 0xe6, 0xb7, 0x5f, 0x94, 0xc0, 0xb6, 0x6b, 0xc1, 0xe7, 0xd8, 0xce, 0x99, 0x83, 0x73,
- 0x36, 0x62, 0xa3, 0x8b, 0xf8, 0x46, 0xac, 0xde, 0x44, 0xf9, 0xf6, 0x58, 0x7c, 0x69, 0x37, 0xb0,
- 0x38, 0x17, 0x3d, 0x1d, 0x1e, 0x86, 0x31, 0x59, 0x50, 0x75, 0x79, 0x9e, 0x0f, 0x74, 0x53, 0xff,
- 0x07, 0xdb, 0x4f, 0x4b, 0x73, 0x60, 0xaf, 0xa2, 0x0a, 0x46, 0xa6, 0x63, 0xd8, 0xef, 0x32, 0xc6,
- 0x1b, 0x31, 0xb0, 0xa4, 0x7c, 0x23, 0x56, 0x6f, 0x22, 0x9d, 0x7b, 0x2c, 0x3e, 0xd5, 0xfa, 0x58,
- 0xfb, 0x6d, 0x44, 0xd0, 0x04, 0x7e, 0x92, 0xc8, 0xa1, 0x8a, 0x5c, 0x11, 0x02, 0xc6, 0x75, 0x22,
- 0x70, 0x2e, 0x7a, 0x3a, 0x3c, 0xcf, 0x62, 0xb2, 0xa0, 0xea, 0xf2, 0xff, 0x1e, 0xe8, 0xa6, 0x3d,
- 0x89, 0x93, 0x0c, 0x5a, 0x98, 0xdc, 0x82, 0x8c, 0x87, 0x54, 0xda, 0x03, 0x4c, 0xab, 0x45, 0x06,
- 0x4a, 0xe9, 0x75, 0x97, 0x82, 0x24, 0x21, 0x1d, 0x76, 0xab, 0xff, 0x8c, 0x41, 0x19, 0x63, 0xdb,
- 0xae, 0xd6, 0xe5, 0x40, 0x79, 0xa3, 0x01, 0x95, 0x3a, 0xd4, 0x30, 0xa8, 0xdd, 0xc3, 0x03, 0x93,
- 0x3d, 0x1c, 0x40, 0xe6, 0xcd, 0x8b, 0xec, 0x0d, 0xdc, 0x07, 0xab, 0x10, 0x87, 0x1e, 0xf7, 0x20,
- 0x29, 0x30, 0x77, 0x8c, 0x07, 0xbf, 0x1e, 0x9e, 0xa9, 0x0c, 0x65, 0x6d, 0xe2, 0x75, 0x22, 0xda,
- 0x8a, 0x2b, 0x27, 0xb2, 0x68, 0x66, 0xc9, 0x01, 0x42, 0x7a, 0x94, 0x79, 0x34, 0x8d, 0x98, 0xf2,
- 0xcd, 0x0f, 0xe7, 0x5b, 0xfc, 0x38, 0x3e, 0x16, 0xe5, 0x73, 0xaa, 0x49, 0x7e, 0xaf, 0x42, 0x92,
- 0x41, 0x97, 0x96, 0xfa, 0xb7, 0xe9, 0x61, 0xce, 0xee, 0x55, 0xa2, 0xc4, 0xba, 0x6e, 0xa3, 0x4b,
- 0xce, 0xb7, 0xcc, 0xb3, 0x0c, 0x82, 0x75, 0x9b, 0x20, 0x5d, 0xe4, 0x33, 0x06, 0x89, 0x9f, 0x66,
- 0x16, 0xfc, 0x05, 0xda, 0x6a, 0x59, 0x80, 0x65, 0xf3, 0x3f, 0xba, 0x90, 0x35, 0xee, 0x43, 0xe3,
- 0x6c, 0xc4, 0x85, 0xd5, 0x33, 0x8c, 0x9b, 0x7f, 0x88, 0x31, 0x2f, 0xb0, 0xf8, 0xd2, 0x6e, 0xa3,
- 0x1f, 0x52, 0xd4, 0x07, 0xff, 0xf9, 0xb2, 0x40, 0xed, 0xf5, 0x93, 0x35, 0x9e, 0x1c, 0x15, 0x6a,
- 0xe0, 0x5c, 0xf4, 0x74, 0x78, 0x5d, 0xc4, 0xa7, 0x83, 0x17, 0x27, 0x3d, 0x3c, 0x13, 0x8f, 0x7a,
- 0xf5, 0x18, 0xda, 0x46, 0xe2, 0xbe, 0x0f, 0x4f, 0xb5, 0x06, 0xd3, 0xd7, 0x71, 0xdb, 0x11, 0x6d,
- 0xb0, 0xec, 0x28, 0x1f, 0xd6, 0x8d, 0x8a, 0xae, 0x94, 0x3b, 0x99, 0x0a, 0x6b, 0x7c, 0x5d, 0x14,
- 0xde, 0xf8, 0x9f, 0x7a, 0x45, 0x6c, 0x63, 0x27, 0x9a, 0x3e, 0xc2, 0x57, 0xc3, 0x2b, 0xa5, 0xae,
- 0x03, 0xb8, 0x2b, 0xe8, 0xf0, 0xba, 0x4b, 0x8d, 0xc5, 0x2e, 0x4e, 0x7a, 0x78, 0x26, 0xdd, 0xf4,
- 0xd0, 0x8d, 0x01, 0xec, 0xa3, 0xac, 0xfe, 0xa0, 0x8e, 0xb2, 0x4d, 0x91, 0xb0, 0x36, 0xc1, 0xe1,
- 0x8e, 0x48, 0x43, 0x11, 0xeb, 0xbc, 0x2d, 0x2e, 0x8d, 0x12, 0x7c, 0x60, 0x94, 0x44, 0x77, 0xc0,
- 0x23, 0x26, 0x8d, 0xb9, 0x62, 0xa5, 0x67, 0x36, 0x72, 0xe8, 0x02, 0xb2, 0x31, 0xa1, 0xa9, 0xa7,
- 0x0a, 0x16, 0xfa, 0x35, 0x65, 0x1a, 0x79, 0xa8, 0xdb, 0xe4, 0x67, 0xdf, 0xd3, 0xd4, 0x8b, 0x7d,
- 0xf3, 0xab, 0x8c, 0x55, 0xc1, 0x09, 0x99, 0x96, 0xfc, 0x5a, 0x4f, 0x23, 0x81, 0x97, 0x68, 0x46,
- 0x06, 0xb3, 0x56, 0x13, 0x23, 0xb7, 0x96, 0xd9, 0x49, 0x5c, 0x9c, 0xf4, 0xf0, 0x4c, 0x79, 0x2b,
- 0xdf, 0x90, 0x86, 0x22, 0x15, 0xbb, 0x5a, 0x5c, 0xd9, 0x24, 0xf8, 0xc0, 0xeb, 0x88, 0xee, 0x43,
- 0x4d, 0x32, 0x3a, 0xdc, 0xf1, 0x44, 0x8e, 0xbf, 0x7c, 0xed, 0x59, 0xef, 0x99, 0xf6, 0x51, 0x1d,
- 0x98, 0xb4, 0x46, 0xcb, 0x81, 0xe5, 0xad, 0x4b, 0x7e, 0x2d, 0xc6, 0xf0, 0xa1, 0xaa, 0x34, 0x23,
- 0x97, 0xa9, 0xc1, 0x05, 0x37, 0xf2, 0x09, 0xb7, 0x29, 0xbb, 0x73, 0xa1, 0xfa, 0x14, 0x1b, 0x81,
- 0xad, 0x6e, 0xce, 0xa8, 0x89, 0x19, 0x4a, 0x18, 0xff, 0xfa, 0x7e, 0xd2, 0xa5, 0xe5, 0xde, 0x67,
- 0x15, 0x44, 0x2e, 0x32, 0x9a, 0xe3, 0xcb, 0xe8, 0x36, 0x11, 0xf4, 0xea, 0x4d, 0xc8, 0x9e, 0x17,
- 0xa2, 0x73, 0x49, 0x66, 0x3f, 0x0e, 0xee, 0xe4, 0xa8, 0x6c, 0xcb, 0x83, 0xfe, 0x5b, 0xf1, 0xc5,
- 0xab, 0xdd, 0x98, 0xbb, 0xaa, 0xae, 0xdc, 0xc1, 0xb6, 0xa6, 0xe2, 0x26, 0x55, 0xa9, 0xa7, 0x4c,
- 0xc0, 0xc2, 0x52, 0x25, 0xea, 0x42, 0xe8, 0x1c, 0x34, 0xd1, 0x6b, 0xf5, 0x75, 0x94, 0xfb, 0x29,
- 0xb6, 0x5f, 0x7e, 0x0c, 0xf5, 0x3a, 0x1c, 0x77, 0xdd, 0x67, 0x05, 0xfe, 0x9b, 0x30, 0x24, 0x3f,
- 0x53, 0x08, 0xf7, 0x83, 0x5e, 0x6a, 0x05, 0x84, 0xd2, 0x02, 0xf0, 0x4d, 0x2f, 0x49, 0x0f, 0x9a,
- 0xed, 0x91, 0x41, 0x0a, 0x6e, 0x27, 0x12, 0xad, 0x52, 0xb5, 0xe6, 0x81, 0x37, 0x28, 0x36, 0xc1,
- 0xc1, 0xaa, 0x4b, 0x7d, 0xba, 0x95, 0xd1, 0x67, 0x77, 0xcb, 0x51, 0x62, 0x5d, 0x37, 0xb0, 0xc4,
- 0xe1, 0x34, 0xed, 0x2c, 0x28, 0x8a, 0xfd, 0xdc, 0xc0, 0x0d, 0x1d, 0xaa, 0x14, 0xb0, 0xc4, 0x97,
- 0x62, 0xb1, 0x1b, 0x43, 0xd5, 0x4c, 0x06, 0xf8, 0x9c, 0xbd, 0xa0, 0x76, 0x8b, 0xcf, 0x0a, 0xec,
- 0x24, 0xfd, 0xc2, 0xf2, 0x11, 0xc5, 0xc8, 0x94, 0x78, 0xae, 0xa4, 0xd1, 0xe9, 0x4e, 0x9b, 0x61,
- 0xe9, 0xf2, 0x25, 0xa9, 0xed, 0xfd, 0xf6, 0x82, 0x9d, 0xdd, 0x0e, 0x98, 0x97, 0xe1, 0xd9, 0xf3,
- 0x65, 0x6a, 0x54, 0x08, 0xa6, 0x2c, 0xa9, 0x5a, 0x96, 0xfb, 0x06, 0x15, 0x53, 0x20, 0x38, 0x2a,
- 0xec, 0xf9, 0x58, 0x52, 0x3e, 0xf0, 0x2b, 0xd6, 0x11, 0xaf, 0xdc, 0x16, 0x1f, 0x8b, 0x7d, 0x2c,
- 0x5d, 0x7d, 0x69, 0x15, 0xb8, 0xaa, 0x98, 0x03, 0xc6, 0x8e, 0x7f, 0x8b, 0x5c, 0x54, 0x6b, 0xd5,
- 0x26, 0x2d, 0xf0, 0x42, 0xb1, 0xa8, 0xba, 0x62, 0xfe, 0x9a, 0xd0, 0x3c, 0xb9, 0xcb, 0x0d, 0x78,
- 0xbe, 0x99, 0xb6, 0x89, 0x30, 0x4d, 0x17, 0x29, 0x80, 0xb7, 0x16, 0xcc, 0x18, 0x61, 0x39, 0x5b,
- 0x21, 0xf6, 0xbf, 0x09, 0xc2, 0xc8, 0x15, 0xc0, 0xf4, 0xdc, 0x76, 0x5f, 0x61, 0x24, 0x3f, 0xbe,
- 0x4b, 0x81, 0x6c, 0xcf, 0xd2, 0xf3, 0x18, 0x66, 0x35, 0xb1, 0xc5, 0x1b, 0x69, 0xba, 0x28, 0x36,
- 0x48, 0x39, 0x47, 0x27, 0x22, 0x49, 0x53, 0xeb, 0xf0, 0x9f, 0x8b, 0x61, 0x11, 0x9c, 0xf5, 0xc2,
- 0xca, 0xd4, 0xa8, 0x10, 0x8f, 0x58, 0x91, 0xb4, 0xef, 0x35, 0x0c, 0x2a, 0xa6, 0x40, 0x70, 0x54,
- 0xf7, 0xc8, 0xe8, 0xf6, 0x42, 0xd3, 0x7d, 0xb9, 0x33, 0x32, 0xa7, 0x3a, 0x21, 0x5e, 0x87, 0x74,
- 0x7c, 0x8b, 0xd6, 0x1c, 0x7a, 0x62, 0x8d, 0xc3, 0x32, 0x52, 0x09, 0xd4, 0x3d, 0x70, 0x54, 0x6b,
- 0xff, 0x0e, 0x20, 0x73, 0x87, 0xa4, 0x76, 0xe7, 0x6e, 0xe2, 0xb4, 0x08, 0xa2, 0x0f, 0x9a, 0x10,
- 0x20, 0x9e, 0xa6, 0x51, 0x92, 0x1f, 0x2c, 0xbb, 0xb7, 0xc6, 0x4c, 0xc8, 0x49, 0x87, 0x74, 0x53,
- 0xd1, 0xe5, 0x18, 0xb4, 0xf3, 0x7b, 0xc7, 0xdb, 0xcd, 0xa8, 0x77, 0x06, 0x98, 0x95, 0x8a, 0x0c,
- 0x85, 0x36, 0xa0, 0x7c, 0xde, 0x71, 0x6d, 0xfd, 0x15, 0xec, 0x21, 0x28, 0x6f, 0x33, 0xb7, 0x50,
- 0x58, 0x76, 0x14, 0xee, 0x6b, 0xa7, 0x45, 0x57, 0x4a, 0xfc, 0xad, 0x05, 0xd4, 0x3e, 0xcf, 0x0a,
- 0x49, 0x51, 0x5e, 0x7f, 0x72, 0x9e, 0x6a, 0x90, 0xb3, 0x85, 0xb1, 0xf6, 0x39, 0x3f, 0xbe, 0x2f,
- 0xfa, 0x05, 0x5d, 0x88, 0x54, 0xa9, 0xab, 0xb3, 0xe2, 0x90, 0x66, 0x86, 0x2a, 0x65, 0x3e, 0xcf,
- 0x87, 0xe6, 0x92, 0xcc, 0x7e, 0x1c, 0x1f, 0x0b, 0x93, 0xd8, 0x55, 0xc5, 0x3f, 0xb6, 0x21, 0x49,
- 0x27, 0x45, 0xe9, 0x1a, 0xe1, 0x7f, 0x83, 0x19, 0xbd, 0x80, 0xea, 0xab, 0x91, 0x68, 0x46, 0x95,
- 0xe8, 0x9a, 0x3c, 0xf1, 0xbd, 0x2a, 0xcf, 0xf9, 0xde, 0xc7, 0x34, 0x0f, 0xbf, 0x42, 0x92, 0x1e,
- 0xf4, 0x70, 0xc3, 0x1e, 0xb2, 0x69, 0x36, 0x34, 0xf6, 0x1c, 0xe9, 0x40, 0x59, 0x78, 0x5a, 0x80,
- 0x5a, 0xa6, 0x26, 0x5e, 0xcb, 0xca, 0x37, 0xa1, 0xcc, 0xc8, 0xd9, 0xe8, 0x84, 0xbb, 0x59, 0x13,
- 0x66, 0xd2, 0x7f, 0xe0, 0x56, 0x96, 0xe2, 0xd7, 0x53, 0xd5, 0x48, 0x6f, 0x2b, 0x06, 0xe5, 0xde,
- 0xf0, 0x13, 0xa7, 0xbd, 0x31, 0xb3, 0xd2, 0x1b, 0x39, 0x74, 0x01, 0x59, 0xf9, 0xb1, 0xb5, 0xb2,
- 0xcb, 0xbc, 0xb1, 0x48, 0xdf, 0x8f, 0xa8, 0xcf, 0xac, 0x2f, 0x36, 0xbd, 0x8e, 0xe3, 0x3b, 0xb9,
- 0x0e, 0x75, 0x9e, 0x96, 0xe6, 0xc0, 0x9d, 0x87, 0x14, 0x8c, 0x8f, 0xc6, 0x73, 0x1d, 0x64, 0x4f,
- 0xe2, 0x8c, 0xc6, 0xc4, 0xd8, 0x30, 0xb6, 0x51, 0x05, 0x23, 0x53, 0xd0, 0x6c, 0x96, 0x19, 0x63,
- 0x57, 0x6b, 0x93, 0x20, 0xdd, 0xb0, 0xe1, 0xab, 0x1d, 0x6a, 0x18, 0x54, 0x8f, 0x80, 0xe0, 0xa8,
- 0xc4, 0xa1, 0x36, 0x86, 0x69, 0x98, 0x0c, 0x33, 0xfb, 0xb9, 0x83, 0xec, 0xd5, 0x5d, 0x14, 0x1b,
- 0x9b, 0x0c, 0x6d, 0x23, 0x71, 0x5f, 0xe6, 0xc6, 0xbb, 0x03, 0x88, 0x8a, 0xd9, 0x8c, 0xe9, 0xd7,
- 0xee, 0x29, 0x6a, 0xe2, 0x9e, 0x9d, 0x59, 0x20, 0x97, 0x9b, 0xa8, 0xfb, 0x4f, 0x0e, 0xeb, 0x35,
- 0x1a, 0x59, 0xa9, 0xfc, 0x2c, 0xf4, 0x6f, 0x14, 0x61, 0x87, 0x41, 0xbb, 0x16, 0x76, 0xb1, 0xb5,
- 0x37, 0x0a, 0xba, 0xd3, 0xa8, 0x91, 0x95, 0xa5, 0x07, 0xe3, 0xcc, 0xcf, 0x54, 0xca, 0x7c, 0x5d,
- 0x2e, 0xeb, 0x38, 0xc7, 0x74, 0xdf, 0xb1, 0x3c, 0xa3, 0x4a, 0xc3, 0x0e, 0x3a, 0x9a, 0x10, 0x1c,
- 0x69, 0xcf, 0xf8, 0x2e, 0xe0, 0x81, 0x46, 0x2b, 0x04, 0x43, 0xfd, 0x3e, 0x70, 0xb8, 0xca, 0x7c,
- 0x8b, 0x43, 0x3e, 0xea, 0x38, 0xb1, 0xf0, 0x7a, 0x01, 0x60, 0xae, 0xee, 0x1c, 0x2e, 0xd3, 0x1f,
- 0xaf, 0xbe, 0xfc, 0x18, 0x29, 0x74, 0x38, 0xee, 0x79, 0xce, 0x0a, 0x3f, 0xf5, 0x60, 0x48, 0x7e,
- 0xc2, 0x12, 0x60, 0x95, 0x4a, 0x2f, 0x9a, 0xea, 0xb2, 0xe5, 0x1f, 0x18, 0x25, 0x11, 0x6d, 0x30,
- 0x7f, 0x33, 0xfd, 0xf4, 0x8a, 0xd8, 0xc6, 0x4e, 0xf7, 0x7c, 0x47, 0xae, 0x45, 0x56, 0x89, 0x9f,
- 0x64, 0x02, 0x4d, 0x50, 0xf6, 0xfb, 0x90, 0x21, 0xd5, 0xe1, 0x3c, 0x82, 0x7b, 0x83, 0x73, 0xc7,
- 0x45, 0xf4, 0xf2, 0x59, 0x34, 0x33, 0x85, 0xe1, 0x21, 0x3d, 0x4a, 0xdd, 0x1a, 0xa7, 0x4c, 0x79,
- 0x14, 0x2c, 0x37, 0x6a, 0xca, 0x34, 0xf2, 0x93, 0x75, 0x0b, 0xce, 0x7d, 0x65, 0x6b, 0xd5, 0xfa,
- 0xfd, 0xde, 0x12, 0xc3, 0x27, 0xc9, 0x04, 0x11, 0xe8, 0xd6, 0xc0, 0xe5, 0xf2, 0x8a, 0x0c, 0x09,
- 0xac, 0x06, 0xd7, 0xf0, 0xd9, 0xce, 0x73, 0x63, 0xbc, 0xe0, 0x44, 0x45, 0x8d, 0x46, 0x95, 0x8a,
- 0x86, 0x8e, 0x8b, 0x94, 0x2e, 0xcb, 0x26, 0x70, 0xd0, 0xc2, 0x6f, 0x52, 0x17, 0x15, 0x6a, 0xa4,
- 0x76, 0x9d, 0x2c, 0x29, 0x1f, 0x78, 0xf4, 0x6b, 0xe9, 0xb6, 0x6e, 0x0b, 0xee, 0xa4, 0xdf, 0x16,
- 0x43, 0x47, 0xa4, 0x4a, 0x17, 0x84, 0x13, 0x38, 0x68, 0x61, 0xd6, 0x29, 0xea, 0xeb, 0x35, 0x52,
- 0x50, 0xb0, 0xdc, 0x6b, 0xae, 0xd0, 0x4e, 0x09, 0x17, 0x2c, 0xbe, 0x37, 0x57, 0x6f, 0xd2, 0x6e,
- 0x28, 0x58, 0x6e, 0xd4, 0x57, 0x68, 0x27, 0xe5, 0xea, 0x16, 0x5f, 0xfa, 0xca, 0xd6, 0x69, 0x37,
- 0xaa, 0xb5, 0x81, 0xe3, 0xfa, 0x79, 0xe5, 0xba, 0xf5, 0xbc, 0xd8, 0xb1, 0x7d, 0x0a, 0xec, 0xa1,
- 0x5e, 0xc5, 0x42, 0xfd, 0x48, 0x10, 0xd3, 0x8e, 0x03, 0xa0, 0x31, 0xf1, 0x24, 0x72, 0xb6, 0x21,
- 0xdd, 0x40, 0xb4, 0x92, 0xb5, 0xd6, 0x28, 0xaa, 0x5f, 0x10, 0x8c, 0x2d, 0xbb, 0x0d, 0x78, 0x5a,
- 0xbb, 0x92, 0xcb, 0x72, 0xe3, 0x40, 0xca, 0x7d, 0x0c, 0xc5, 0xc4, 0x42, 0x90, 0x0b, 0x9d, 0x84,
- 0x96, 0xc1, 0xd8, 0x5d, 0x67, 0x25, 0x30, 0xcc, 0x6a, 0xa1, 0x49, 0x36, 0xd2, 0xb7, 0x50, 0x6c,
- 0x05, 0x0b, 0x7d, 0xfb, 0xd3, 0x0d, 0xdd, 0x54, 0x8c, 0x72, 0xd2, 0x8e, 0x88, 0x6a, 0xa4, 0xdf,
- 0x7b, 0x50, 0x99, 0x57, 0x09, 0x02, 0x22, 0x61, 0x38, 0x14, 0xaf, 0xb7, 0xe5, 0x9f, 0x66, 0xad,
- 0xf6, 0xa0, 0xf1, 0xae, 0x12, 0x04, 0x44, 0xc2, 0x70, 0x28, 0x9d, 0xad, 0x09, 0xfd, 0xcc, 0x99,
- 0x2b, 0xe0, 0x45, 0x3c, 0xa7, 0xd2, 0x6c, 0x68, 0x2f, 0x38, 0x11, 0x80, 0xb2, 0xf0, 0xb4, 0xc3,
- 0x09, 0xae, 0xd1, 0xdd, 0x95, 0xa0, 0x32, 0x25, 0x1e, 0xca, 0x29, 0xa5, 0xab, 0xf2, 0x56, 0x89,
- 0xc7, 0x19, 0x1d, 0x6e, 0x99, 0x22, 0x47, 0xbe, 0x3e, 0x97, 0xcd, 0x96, 0xad, 0x7b, 0xc9, 0xef,
- 0x46, 0x4c, 0xd9, 0xb1, 0xc4, 0x89, 0xce, 0x6c, 0xe4, 0x13, 0x04, 0xa7, 0x62, 0x81, 0x91, 0x8d,
- 0x0d, 0xcd, 0xb5, 0x7e, 0x16, 0x7a, 0xd6, 0x0a, 0xd1, 0xa2, 0xc1, 0xbc, 0x0b, 0x3b, 0xb9, 0xbb,
- 0x13, 0xf7, 0x78, 0x21, 0xb9, 0x54, 0x5d, 0x31, 0x7f, 0x4d, 0x68, 0x1e, 0xbd, 0x84, 0xe7, 0x3c,
- 0x61, 0x09, 0x30, 0xab, 0x25, 0xf6, 0x4d, 0x75, 0x59, 0x93, 0xee, 0x0c, 0xf3, 0xe9, 0xd7, 0x18,
- 0x01, 0x68, 0x19, 0x58, 0x50, 0xd7, 0x39, 0x7b, 0x43, 0x1a, 0x3a, 0x97, 0x28, 0xa3, 0x4b, 0xed,
- 0xef, 0x41, 0x73, 0xba, 0xce, 0x4a, 0x60, 0x5b, 0xd4, 0x81, 0x92, 0x6c, 0x67, 0xad, 0xa0, 0xd8,
- 0x8d, 0xf0, 0x68, 0xf9, 0x1b, 0x06, 0x66, 0xa3, 0x48, 0x3c, 0x32, 0x1a, 0xec, 0x62, 0xaa, 0x34,
- 0xd3, 0x35, 0x2a, 0x04, 0x53, 0x16, 0xb5, 0x2d, 0x4b, 0x9c, 0x03, 0xeb, 0xc8, 0x10, 0x1c, 0x15,
- 0xbc, 0x49, 0x84, 0x39, 0x90, 0x20, 0x65, 0xdf, 0x06, 0x83, 0x62, 0x21, 0x48, 0xe4, 0xaf, 0x42,
- 0xf1, 0x7b, 0xbe, 0xe5, 0x61, 0x64, 0xeb, 0x60, 0x7a, 0x6e, 0x3b, 0xce, 0xd1, 0x12, 0xfe, 0x5f,
- 0x32, 0x01, 0xc7, 0x28, 0x7b, 0x9c, 0x48, 0xf1, 0x8b, 0x91, 0x1e, 0x41, 0xdc, 0xa0, 0xd8, 0x82,
- 0x5c, 0x15, 0x70, 0x4d, 0xe8, 0x7d, 0xa1, 0x78, 0x85, 0x94, 0x45, 0x1c, 0x74, 0xf7, 0x20, 0x38,
- 0x02, 0xd0, 0x32, 0xb0, 0xa0, 0x6d, 0x72, 0xf6, 0x86, 0x34, 0x74, 0xed, 0x50, 0x85, 0x96, 0x19,
- 0xb1, 0x84, 0x31, 0x47, 0x86, 0x5a, 0xb3, 0xd5, 0xd7, 0x21, 0xa3, 0x9d, 0x43, 0xdf, 0x16, 0xf9,
- 0x56, 0x03, 0x8a, 0x78, 0x8d, 0x67, 0xd8, 0xd0, 0x5e, 0x70, 0x22, 0xc3, 0xa7, 0x23, 0xab, 0x45,
- 0x51, 0xd8, 0xc5, 0x33, 0xfe, 0x07, 0x77, 0x72, 0x54, 0x36, 0x84, 0xa0, 0x7f, 0xcc, 0x99, 0x83,
- 0xc9, 0x6c, 0x83, 0xf8, 0x7f, 0xe2, 0xda, 0x39, 0x2a, 0x1b, 0x42, 0x50, 0xde, 0x66, 0xad, 0xa0,
- 0xd6, 0x3e, 0x57, 0xff, 0x80, 0x1b, 0x68, 0x79, 0xc7, 0xee, 0xd1, 0x65, 0x40, 0x7a, 0xb8, 0xca,
- 0x4e, 0x8a, 0x11, 0x34, 0x01, 0xfe, 0xc5, 0x32, 0xb9, 0xc3, 0x17, 0x95, 0xe1, 0xd0, 0x8c, 0xe9,
- 0xc8, 0x04, 0x9a, 0xa0, 0x2f, 0x35, 0xe3, 0x42, 0x69, 0x01, 0x78, 0xc7, 0xf6, 0xc5, 0xe6, 0x4d,
- 0xa0, 0xa3, 0x7b, 0xd6, 0x9f, 0x63, 0x9c, 0x12, 0x2e, 0x58, 0xbf, 0x6e, 0xae, 0xde, 0x67, 0xdc,
- 0x31, 0xb9, 0xec, 0xc0, 0x8b, 0x26, 0x03, 0x7c, 0x4e, 0xbf, 0x50, 0x3b, 0xa4, 0x86, 0x05, 0x76,
- 0x22, 0x4e, 0x94, 0xe1, 0x32, 0x72, 0x5e, 0x4d, 0x31, 0xf2, 0x38, 0x25, 0x19, 0x02, 0xe2, 0x4a,
- 0xa5, 0xa8, 0x06, 0x2d, 0x4c, 0x6e, 0x41, 0x46, 0xa2, 0x2a, 0x6d, 0xe0, 0x26, 0xb4, 0xc3, 0x03,
- 0x17, 0x94, 0x1c, 0x82, 0x3a, 0x8e, 0xb9, 0x1e, 0xb0, 0x25, 0x80, 0x07, 0x1d, 0x4d, 0x08, 0x0e,
- 0x33, 0x69, 0xde, 0x70, 0x2b, 0x4b, 0x71, 0x8a, 0xc8, 0x8b, 0x24, 0xd6, 0xf4, 0x03, 0x93, 0x6f,
- 0x94, 0x11, 0xea, 0xed, 0xc7, 0x48, 0x42, 0x3a, 0xec, 0x95, 0x3d, 0xdb, 0x82, 0x32, 0xc6, 0x75,
- 0xeb, 0x22, 0x17, 0x19, 0x4d, 0x90, 0x84, 0x74, 0x1b, 0xe9, 0x7a, 0x75, 0xc7, 0x64, 0x4f, 0xea,
- 0x84, 0x5e, 0xb9, 0x24, 0x8e, 0xa6, 0x54, 0x86, 0x56, 0xf6, 0x1b, 0xbf, 0x47, 0x90, 0xfc, 0xbd,
- 0x08, 0xc6, 0xc8, 0x85, 0xc5, 0x77, 0x0b, 0x5e, 0x5d, 0xd0, 0x13, 0x32, 0x83, 0x51, 0x1d, 0x64,
- 0x25, 0x95, 0xdb, 0xaa, 0x41, 0x12, 0xf1, 0xef, 0x3b, 0xb4, 0x9e, 0x46, 0xc1, 0xed, 0xd0, 0x8c,
- 0xf9, 0xbd, 0x76, 0x60, 0xa4, 0x13, 0xe0, 0x3e, 0x27, 0xbe, 0x28, 0xfc, 0x52, 0x43, 0xe3, 0x3b,
- 0x39, 0x7f, 0x24, 0x45, 0x4e, 0x51, 0x08, 0x22, 0x13, 0x6f, 0x43, 0x09, 0x27, 0xd7, 0x18, 0x12,
- 0x60, 0x61, 0x29, 0xf3, 0x75, 0x21, 0x74, 0x0e, 0x1a, 0x89, 0xd4, 0x9b, 0xdb, 0x4a, 0x9c, 0xf5,
- 0xb2, 0x3c, 0x1a, 0xaf, 0x76, 0xe0, 0xf8, 0x58, 0x12, 0x0f, 0xed, 0xe7, 0x3b, 0xf9, 0xcb, 0x0d,
- 0xd4, 0xee, 0x65, 0x4f, 0x20, 0x76, 0x1a, 0x8f, 0x41, 0xda, 0xa5, 0x88, 0x10, 0xff, 0x2e, 0xd3,
- 0x6f, 0x7c, 0xae, 0x3d, 0xc3, 0x36, 0xd0, 0xf2, 0x4d, 0x1f, 0x61, 0xca, 0x80, 0xf4, 0xb3, 0x57,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x6d, 0xac, 0x9c, 0x8d, 0x63, 0x5b, 0xa2, 0x04, 0xcb, 0x2b, 0x15, 0x27, 0xd0, 0x71, 0x25, 0x4e,
- 0xa1, 0xcb, 0x62, 0x8e, 0xcf, 0xb4, 0xa5, 0x69, 0x6d, 0x42, 0x85, 0xf9, 0x86, 0x7d, 0x2c, 0x31,
- 0x12, 0x9f, 0x61, 0x79, 0xe9, 0x83, 0x64, 0x4a, 0x3c, 0x57, 0x52, 0x89, 0x95, 0x27, 0xac, 0xd1,
- 0xd8, 0x4b, 0xc9, 0x69, 0x66, 0xdb, 0xf5, 0xfe, 0xd3, 0x62, 0x5e, 0xa3, 0x33, 0x67, 0xdc, 0x85,
- 0xa3, 0x1b, 0x50, 0x3e, 0x6f, 0xd9, 0xd7, 0x9f, 0xeb, 0x76, 0xf1, 0x14, 0xd6, 0xf8, 0xba, 0x28,
- 0xa4, 0xc0, 0x1f, 0x75, 0x1c, 0xb9, 0x78, 0x3d, 0xe1, 0x30, 0x57, 0x77, 0x0e, 0x17, 0x88, 0xee,
- 0xcf, 0xdf, 0xd5, 0xeb, 0x5c, 0x55, 0x4c, 0xe0, 0x63, 0x47, 0xde, 0xa4, 0x2e, 0x2a, 0xd4, 0x8b,
- 0x9a, 0x64, 0x74, 0x7b, 0x21, 0x88, 0xdf, 0xbd, 0xf8, 0x19, 0xb2, 0x1d, 0xf1, 0x2f, 0xa2, 0x3a,
- 0xcc, 0x67, 0xfe, 0x03, 0xac, 0xef, 0x07, 0x6d, 0xa6, 0x69, 0x90, 0xde, 0x56, 0x0c, 0x09, 0x7f,
- 0x52, 0x60, 0xee, 0xdb, 0x0e, 0xbd, 0x3c, 0xff, 0x91, 0x18, 0xca, 0xda, 0x07, 0xea, 0x44, 0x77,
- 0x1c, 0xea, 0xff, 0xef, 0x0f, 0x43, 0xf9, 0xcd, 0x28, 0xdb, 0xdd, 0x4f, 0xe6, 0x3a, 0xc8, 0x9e,
- 0x2f, 0x83, 0x21, 0x9f, 0x24, 0x08, 0x88, 0x47, 0xe0, 0x50, 0xf9, 0x99, 0x12, 0x39, 0x5b, 0xf1,
- 0x7e, 0x5b, 0xe4, 0xac, 0xda, 0x0f, 0xff, 0x35, 0xb4, 0x66, 0x7d, 0x39, 0x6d, 0xf5, 0xc2, 0x72,
- 0x93, 0xca, 0xa5, 0xa6, 0xb4, 0x28, 0xed, 0x98, 0xe6, 0xd3, 0x9b, 0xb8, 0x5a, 0xdd, 0xf4, 0xb3,
- 0x42, 0x2f, 0xbd, 0x12, 0x47, 0x53, 0x2a, 0x43, 0x2b, 0x7b, 0xec, 0xbe, 0xc2, 0x48, 0x7e, 0xbf,
- 0xb3, 0x54, 0x03, 0xf7, 0x26, 0x37, 0xc1, 0x23, 0x51, 0x15, 0xd7, 0x70, 0x13, 0x5a, 0x80, 0xe0,
- 0x18, 0x89, 0x9b, 0x4c, 0x8c, 0x99, 0x1d, 0xe2, 0xe7, 0xb3, 0x35, 0x56, 0x46, 0xf3, 0x27, 0xac,
- 0xb8, 0x2a, 0xe0, 0x9a, 0x13, 0xfa, 0x81, 0xf0, 0xc9, 0xeb, 0x8a, 0x38, 0xe8, 0x2d, 0x40, 0x70,
- 0xfc, 0xb6, 0x0b, 0x9b, 0x77, 0x1e, 0x3d, 0x6a, 0xab, 0xcc, 0xfa, 0x72, 0xda, 0x29, 0x47, 0xe4,
- 0x44, 0x9c, 0xeb, 0x01, 0x64, 0xe4, 0xbc, 0x9a, 0x62, 0x27, 0x70, 0x4a, 0x32, 0x04, 0x07, 0x94,
- 0xe6, 0xef, 0xa2, 0x67, 0x5b, 0xea, 0x52, 0x7e, 0xca, 0x4b, 0xbb, 0xc9, 0xcc, 0x5f, 0xf6, 0x51,
- 0x8c, 0x98, 0x71, 0xa1, 0x4b, 0xd1, 0x5f, 0xd8, 0x0b, 0x26, 0x08, 0x8d, 0xc4, 0xc1, 0xe1, 0xd9,
- 0xc6, 0x71, 0x04, 0x36, 0xc9, 0xf5, 0x7e, 0xc5, 0x7d, 0x8d, 0xf7, 0x01, 0x85, 0xd8, 0x82, 0x02,
- 0x63, 0xd9, 0x02, 0x1b, 0x85, 0x9b, 0x3f, 0x83, 0xdf, 0xa7, 0x9a, 0xe1, 0xa3, 0x6c, 0x41, 0x01,
- 0xbf, 0xf1, 0xaf, 0xd1, 0x60, 0x9a, 0x2e, 0x52, 0xc3, 0xad, 0x2c, 0x5b, 0x30, 0xc2, 0x72, 0xb6,
- 0xf2, 0xc3, 0x95, 0x0d, 0x91, 0xde, 0xa0, 0xed, 0xbf, 0x40, 0x75, 0xb4, 0xa9, 0x34, 0x23, 0xab,
- 0x2c, 0x3b, 0x0a, 0x77, 0xd4, 0xb2, 0xc3, 0xca, 0x25, 0x7e, 0xb7, 0xe3, 0x6a, 0x1f, 0x86, 0x05,
- 0x11, 0x27, 0x4a, 0x91, 0x19, 0x39, 0x2f, 0xc7, 0xf9, 0x79, 0x1c, 0xf3, 0xed, 0x01, 0x71, 0x25,
- 0x73, 0x96, 0x51, 0xd2, 0xcc, 0x75, 0x29, 0x3f, 0x65, 0xc4, 0xbc, 0x85, 0x66, 0xce, 0x7b, 0xc9,
- 0xdc, 0x28, 0xad, 0xca, 0xe5, 0x01, 0x11, 0xd1, 0x1c, 0x0a, 0xb6, 0xba, 0x93, 0xae, 0x33, 0xb7,
- 0xd9, 0x23, 0xd0, 0x31, 0x36, 0x0c, 0xcc, 0x85, 0x90, 0x78, 0x64, 0x34, 0x1b, 0xc4, 0x97, 0x68,
- 0x92, 0xa2, 0xbc, 0xfe, 0xe4, 0xff, 0xd4, 0xe3, 0xa5, 0xc9, 0xa1, 0x2f, 0x72, 0x7e, 0xbf, 0x5e,
- 0x3e, 0xa4, 0x6b, 0x0e, 0x3d, 0x31, 0xa7, 0x80, 0x19, 0x29, 0xe5, 0x6a, 0xff, 0x38, 0x2a, 0xd4,
- 0xd2, 0x5d, 0x33, 0x5c, 0x03, 0xc1, 0x8c, 0x56, 0x08, 0x86, 0x39, 0x7c, 0xe0, 0xb3, 0x57, 0xf8,
- 0x59, 0x1e, 0x0d, 0xb6, 0x3b, 0x70, 0x7c, 0x2c, 0x09, 0xe6, 0x97, 0x92, 0xfc, 0x9d, 0x84, 0xe7,
- 0x75, 0x25, 0x07, 0xc1, 0xef, 0xc2, 0xbf, 0xe6, 0x2c, 0x98, 0x20, 0x71, 0x96, 0x82, 0x02, 0xe2,
- 0x19, 0xe1, 0x82, 0x14, 0xdc, 0x4e, 0x24, 0x99, 0xa4, 0xa9, 0x0f, 0xc1, 0x6e, 0x50, 0x6c, 0x41,
- 0xb4, 0x8f, 0x4c, 0xbc, 0x55, 0x57, 0x6e, 0x81, 0x5b, 0x53, 0x71, 0x13, 0xcb, 0xb5, 0xb2, 0x26,
- 0x81, 0x55, 0xc4, 0xdf, 0x5d, 0xab, 0x89, 0xd2, 0xda, 0x84, 0xc9, 0x31, 0xcf, 0xfa, 0x58, 0x62,
- 0xe4, 0x3f, 0x90, 0xd7, 0xfb, 0x87, 0x20, 0x88, 0x4c, 0x7f, 0xcf, 0x24, 0x9c, 0xda, 0x60, 0x48,
- 0xe5, 0x57, 0x89, 0x8f, 0xab, 0x50, 0x19, 0xf3, 0x0f, 0x65, 0xf5, 0xb3, 0xb4, 0x79, 0x2b, 0xa5,
- 0x0f, 0x1d, 0x87, 0xce, 0xb6, 0x17, 0xa4, 0xfc, 0x57, 0x96, 0xb5, 0x51, 0x5b, 0xbe, 0x2f, 0xa2,
- 0x47, 0x24, 0xc0, 0xe9, 0x94, 0x5e, 0xf7, 0x17, 0xa7, 0x09, 0x3e, 0x30, 0x4a, 0x22, 0xda, 0x60,
- 0x9c, 0xd7, 0x22, 0x68, 0x02, 0x3f, 0x49, 0x64, 0xb1, 0x45, 0x2e, 0xe9, 0x01, 0x63, 0xdb, 0x11,
- 0x2a, 0x88, 0x5c, 0x64, 0xf7, 0x05, 0x55, 0x13, 0x6c, 0x22, 0x2b, 0x17, 0x9a, 0x53, 0xff, 0x2e,
- 0xa8, 0x65, 0xb3, 0x53, 0x5a, 0x14, 0x97, 0x4c, 0x73, 0x88, 0xac, 0x5c, 0x2d, 0x8f, 0x7a, 0xb8,
- 0x5b, 0xce, 0x3f, 0x06, 0x9b, 0x1d, 0x0e, 0xda, 0x8f, 0xd2, 0xe3, 0x7f, 0xac, 0x18, 0x12, 0xfe,
- 0x8f, 0x20, 0x5a, 0x49, 0xbb, 0x6b, 0x14, 0x55, 0xce, 0x08, 0x46, 0xf7, 0xbc, 0xe7, 0x3c, 0x2d,
- 0x04, 0x63, 0x64, 0xa3, 0x83, 0xda, 0xe4, 0x2f, 0xcf, 0x68, 0xe8, 0x19, 0xa0, 0xc9, 0xef, 0x32,
- 0xa6, 0x10, 0x2d, 0xc5, 0xbc, 0xd4, 0x0a, 0xcb, 0x67, 0x04, 0x23, 0x9a, 0x5e, 0x92, 0x1e, 0xf7,
- 0x72, 0xfe, 0x48, 0x8a, 0x9c, 0xa2, 0x10, 0x44, 0x26, 0xde, 0x86, 0x12, 0x4e, 0x6d, 0x30, 0x24,
- 0xba, 0xfa, 0xd2, 0x2a, 0xb3, 0x97, 0xf3, 0x06, 0x4f, 0xdf, 0xfe, 0xd5, 0xb8, 0xa8, 0xd6, 0x69,
- 0x30, 0xd1, 0xf5, 0x98, 0xdb, 0xf1, 0x3a, 0x07, 0x0d, 0xa5, 0x6a, 0xac, 0x8c, 0x25, 0x4e, 0x9b,
- 0x4c, 0x5a, 0x23, 0x84, 0xa1, 0x93, 0xb7, 0xc4, 0x3f, 0xf7, 0x63, 0x78, 0xb1, 0x55, 0x1a, 0xf0,
- 0x82, 0xed, 0xef, 0x37, 0xad, 0x11, 0xc2, 0x5f, 0x1f, 0xaa, 0x87, 0x4b, 0xb7, 0xdc, 0x85, 0x96,
- 0x6a, 0x77, 0xd3, 0xc6, 0x10, 0x3b, 0x0d, 0xa6, 0xc1, 0x6d, 0xb3, 0x44, 0x08, 0x9e, 0x17, 0x88,
- 0x88, 0xfb, 0x15, 0x02, 0xc8, 0x0b, 0xbb, 0xf7, 0xc4, 0x4e, 0xe0, 0x94, 0x64, 0x08, 0x0e, 0xeb,
- 0x3c, 0x74, 0x59, 0xbe, 0x9d, 0x5c, 0xd5, 0x76, 0x9f, 0x1d, 0x91, 0x87, 0xaf, 0xbd, 0xbc, 0xcd,
- 0x6e, 0x14, 0xb7, 0x65, 0x93, 0xe1, 0xe9, 0x89, 0x0e, 0x05, 0x5b, 0x5d, 0xa8, 0x57, 0xf8, 0xba,
- 0x0b, 0x7e, 0xe3, 0x6d, 0x35, 0xcd, 0x40, 0xd3, 0x98, 0xfe, 0x5d, 0x48, 0xfb, 0x77, 0xc0, 0x90,
- 0x9e, 0x07, 0x10, 0xd8, 0xa2, 0x52, 0x3b, 0x92, 0x37, 0x71, 0x5a, 0x04, 0x51, 0xe6, 0x4d, 0x08,
- 0x68, 0xa7, 0xe1, 0x76, 0xb0, 0x56, 0x7f, 0x50, 0x47, 0x59, 0xc7, 0xa9, 0x58, 0x1b, 0x81, 0x91,
- 0x67, 0xba, 0x66, 0xb8, 0x06, 0x41, 0xdb, 0xac, 0x10, 0xcf, 0x72, 0xf8, 0x03, 0xa5, 0xae, 0x33,
- 0xc5, 0xc9, 0x2f, 0xde, 0x39, 0x4f, 0x35, 0x48, 0xb8, 0xa3, 0xb9, 0x7b, 0xfd, 0xfe, 0x5f, 0xf6,
- 0x74, 0x4d, 0x1e, 0x99, 0xbf, 0x15, 0x86, 0x9d, 0x6f, 0x82, 0x1a, 0xe6, 0xbe, 0x21, 0x49, 0x0f,
- 0x40, 0xff, 0x8f, 0xa2, 0xe7, 0x3e, 0x58, 0xb5, 0xad, 0x4f, 0x98, 0x53, 0x92, 0xcd, 0xe8, 0xa6,
- 0x0c, 0xa5, 0xac, 0x26, 0x46, 0xad, 0xef, 0x71, 0x92, 0xb8, 0xfb, 0x2b, 0x23, 0x98, 0xf2, 0x56,
- 0xe7, 0x87, 0xbb, 0x3f, 0x0b, 0x3d, 0x6b, 0x05, 0x89, 0x51, 0x81, 0x5e, 0xe4, 0xfc, 0xbd, 0xbc,
- 0x9d, 0xbf, 0x3b, 0x30, 0x52, 0xe8, 0x70, 0x1f, 0xf2, 0x5f, 0x14, 0x7e, 0x29, 0xc0, 0x90, 0xfc,
- 0x90, 0x72, 0x8e, 0x4e, 0x44, 0x92, 0xa6, 0x15, 0x23, 0xfd, 0xd5, 0xc2, 0x22, 0xfb, 0x29, 0x47,
- 0x7a, 0x38, 0x80, 0x0f, 0x59, 0xd5, 0x1b, 0x1a, 0x7b, 0x0e, 0x95, 0x20, 0xcd, 0x3c, 0x2d, 0x40,
- 0x3a, 0xc7, 0x0f, 0xad, 0xbe, 0xeb, 0x43, 0xaf, 0xd6, 0x41, 0x0d, 0x73, 0x5f, 0xf1, 0xc5, 0xe6,
- 0x35, 0xda, 0x88, 0x63, 0x08, 0xfc, 0xe7, 0x53, 0x81, 0xd7, 0xb8, 0x22, 0x04, 0x4f, 0xea, 0x44,
- 0x34, 0xb2, 0x91, 0x3b, 0x58, 0x2b, 0xde, 0x28, 0xc2, 0xcd, 0x82, 0xb5, 0x2c, 0xec, 0xa1, 0xa9,
- 0x9f, 0x6f, 0x09, 0x80, 0xf2, 0x85, 0x02, 0xe9, 0x74, 0x6b, 0x60, 0x93, 0x79, 0x45, 0x06, 0xe5,
- 0xb7, 0x37, 0x67, 0x54, 0xa5, 0xed, 0x25, 0x0c, 0x9e, 0x7d, 0x3f, 0x69, 0xb3, 0x93, 0x6f, 0xd2,
- 0xf8, 0xd5, 0x6f, 0x38, 0xf4, 0xc4, 0xd9, 0x45, 0x64, 0xa4, 0x12, 0x6b, 0x7a, 0xe0, 0xa8, 0xd6,
- 0x4f, 0xe2, 0x08, 0x6c, 0x51, 0x29, 0xfc, 0x49, 0xfa, 0xd9, 0x2d, 0x02, 0xc9, 0x73, 0xc7, 0x04,
- 0x6b, 0x1f, 0xca, 0x9e, 0x40, 0xec, 0x34, 0xdd, 0x82, 0x77, 0x89, 0xd3, 0x20, 0x3d, 0x5c, 0x65,
- 0x83, 0x85, 0xf6, 0x6f, 0xfd, 0xc6, 0xfb, 0x24, 0x5c, 0xb0, 0xbd, 0xdc, 0x9f, 0x7f, 0xce, 0x7b,
- 0x5f, 0xad, 0x5b, 0xa5, 0x18, 0xc7, 0xea, 0xf5, 0x40, 0xba, 0x0b, 0x66, 0x0c, 0xd1, 0xfd, 0xcc,
- 0xa7, 0x78, 0x34, 0x9d, 0xec, 0x03, 0x33, 0xb0, 0x24, 0x1e, 0x19, 0x0d, 0x76, 0x31, 0x55, 0x1a,
- 0x1e, 0x3a, 0xcd, 0x5f, 0xaf, 0x2e, 0x8b, 0x3b, 0xae, 0xef, 0xa9, 0xa2, 0xb6, 0xbf, 0x5e, 0x87,
- 0x10, 0x4f, 0x53, 0xc9, 0x49, 0xee, 0x16, 0xbc, 0xba, 0x63, 0x26, 0x64, 0xc5, 0xa2, 0x3a, 0xc8,
- 0xc3, 0x7a, 0x79, 0xcd, 0x1a, 0xf8, 0xa3, 0x91, 0xf1, 0xff, 0x25, 0x8f, 0x0d, 0xb2, 0x26, 0xdd,
- 0x78, 0xe8, 0xb2, 0xbf, 0xf9, 0xb8, 0x69, 0xec, 0xfd, 0x3a, 0xe1, 0xcd, 0x9d, 0xb9, 0xbb, 0x59,
- 0x2d, 0x53, 0x13, 0x2f, 0x84, 0x65, 0xfa, 0xb1, 0x66, 0x64, 0x8d, 0x74, 0x42, 0xbc, 0xcd, 0xe8,
- 0x77, 0xf5, 0x35, 0x71, 0x4f, 0xaf, 0xcd, 0x10, 0xaa, 0xac, 0x54, 0x9c, 0xc6, 0x07, 0x94, 0xfb,
- 0xe3, 0xe4, 0xdf, 0x9c, 0x88, 0xe7, 0x8f, 0x2a, 0x46, 0x39, 0x69, 0x47, 0x44, 0x35, 0x52, 0x8e,
- 0x80, 0x3d, 0xdd, 0x87, 0x0d, 0x7c, 0xb0, 0xa9, 0x99, 0x9e, 0xf3, 0xa6, 0xe7, 0x59, 0x13, 0x8f,
- },
- { /* 6 */
- 0xa2, 0xc8, 0x81, 0xe2, 0x3b, 0xb3, 0xc2, 0x65, 0xc5, 0x23, 0x88, 0xa8, 0x4b, 0xa0, 0x07, 0xfc,
- 0x7e, 0x5e, 0xba, 0x73, 0x1f, 0x4c, 0x94, 0x8f, 0x72, 0xc4, 0x53, 0xb4, 0x67, 0xfd, 0xe6, 0xee,
- 0x65, 0xcf, 0x9b, 0x0b, 0x79, 0xd8, 0x3c, 0xc1, 0x2a, 0xfe, 0xa1, 0x96, 0xda, 0xeb, 0x16, 0xdd,
- 0x09, 0xce, 0x1f, 0x28, 0x22, 0xcd, 0xd9, 0x3a, 0x89, 0x16, 0xef, 0x1e, 0x6b, 0xb3, 0x50, 0x11,
- 0xb9, 0x59, 0xa0, 0x9a, 0x5d, 0x27, 0x6a, 0x2b, 0x9d, 0x19, 0x7a, 0x8a, 0xf6, 0xb6, 0xf7, 0xcf,
- 0xaa, 0x23, 0xa2, 0x8f, 0xdc, 0xda, 0x7c, 0x18, 0xa1, 0x08, 0x06, 0xf5, 0x92, 0xb9, 0xdd, 0x6e,
- 0x3c, 0x40, 0x19, 0x17, 0x62, 0x09, 0xe3, 0x6f, 0xcd, 0x25, 0x6b, 0x9f, 0xc7, 0xa2, 0x2e, 0x31,
- 0x92, 0xf7, 0x4b, 0x4f, 0x2c, 0x06, 0xc0, 0xa8, 0x5e, 0xd9, 0x2a, 0xa5, 0xd8, 0xf6, 0x9e, 0x16,
- 0x39, 0xf1, 0xd5, 0x85, 0x35, 0x78, 0xdb, 0xf7, 0x12, 0xec, 0x4d, 0x13, 0xf8, 0xe5, 0xc9, 0xfb,
- 0xf0, 0xc3, 0x64, 0x5c, 0x4b, 0x24, 0x0a, 0x7f, 0xb2, 0x94, 0x6f, 0x39, 0x9a, 0xcd, 0xb8, 0xc4,
- 0xcb, 0x78, 0xc9, 0x53, 0x37, 0xd7, 0x1f, 0x06, 0xb9, 0x02, 0xe0, 0xac, 0xc5, 0xbf, 0xa6, 0xfa,
- 0xfe, 0xf6, 0xcf, 0x6c, 0x77, 0x13, 0x25, 0x53, 0xfd, 0x31, 0x64, 0x2d, 0x69, 0xae, 0xd8, 0xda,
- 0xe0, 0xd6, 0x22, 0x86, 0x46, 0xf6, 0xb5, 0x85, 0x7a, 0xc2, 0xb0, 0x83, 0xeb, 0xff, 0xcf, 0x23,
- 0x02, 0x4a, 0x78, 0x8a, 0x49, 0x8b, 0xce, 0x8e, 0x19, 0x7a, 0xc2, 0x86, 0xa7, 0x97, 0xd7, 0xc5,
- 0x4e, 0x61, 0x70, 0xde, 0x08, 0xf9, 0x96, 0x42, 0xe9, 0x3e, 0xf1, 0xb9, 0xf4, 0xab, 0x7f, 0x04,
- 0x4a, 0xf5, 0x80, 0x09, 0x9a, 0x2c, 0xc9, 0x9d, 0xdb, 0xca, 0xb6, 0x76, 0x79, 0x46, 0x12, 0x4d,
- 0xe5, 0x67, 0xee, 0x14, 0x11, 0x87, 0x8d, 0x1d, 0xa5, 0x0b, 0x96, 0x0f, 0xd4, 0xb8, 0x28, 0xe9,
- 0x3f, 0x2f, 0x5d, 0xd8, 0xee, 0x26, 0x4a, 0xa6, 0x39, 0x62, 0xc8, 0x5a, 0xd2, 0x9f, 0x73, 0x77,
- 0x70, 0x6b, 0x11, 0x43, 0x23, 0x7b, 0xbb, 0xa3, 0x3d, 0x61, 0x58, 0xa0, 0x94, 0x9e, 0x86, 0xf0,
- 0x0c, 0x7f, 0xd3, 0xba, 0x75, 0xbc, 0xe1, 0xa2, 0x56, 0xdf, 0xc9, 0x92, 0x54, 0xf4, 0xb7, 0xdb,
- 0xfa, 0x62, 0x3f, 0xbb, 0xe5, 0xc6, 0x7a, 0x8c, 0xcf, 0xc5, 0x23, 0xe2, 0xe4, 0x43, 0xb5, 0x93,
- 0xc0, 0xfc, 0xae, 0xf1, 0x5c, 0x91, 0x08, 0xb2, 0x29, 0x6e, 0xcd, 0x34, 0x09, 0x9b, 0x21, 0x2e,
- 0x41, 0x71, 0xe7, 0xab, 0xf1, 0x6a, 0xde, 0x29, 0x4b, 0xa6, 0x9b, 0xee, 0xb5, 0x62, 0x95, 0x99,
- 0xa1, 0xa7, 0xc5, 0x2d, 0xb7, 0x9c, 0x6b, 0xac, 0x31, 0x64, 0x2b, 0x6d, 0x5e, 0x9d, 0x5a, 0xba,
- 0x60, 0x7e, 0x57, 0x99, 0x2e, 0xa9, 0x04, 0x59, 0xf5, 0x37, 0x87, 0x1a, 0xe5, 0xac, 0xf1, 0x17,
- 0xa7, 0x79, 0x4d, 0x70, 0x6c, 0xc2, 0xfa, 0xfd, 0x1a, 0xea, 0xae, 0x24, 0x74, 0xe7, 0xe0, 0x36,
- 0x82, 0xe2, 0x0d, 0x95, 0x21, 0xd4, 0x7f, 0x52, 0x96, 0x8f, 0xf5, 0x1f, 0xa9, 0xc4, 0xe9, 0xf1,
- 0x53, 0x2e, 0xd9, 0xfb, 0xb5, 0x33, 0xaf, 0x5d, 0x9a, 0x8a, 0x86, 0xd2, 0x63, 0xc7, 0x35, 0xbb,
- 0xb5, 0x26, 0x73, 0x20, 0x28, 0x9b, 0x8b, 0x89, 0xcb, 0xc6, 0xb3, 0x18, 0xa2, 0x42, 0x40, 0x14,
- 0x9e, 0x88, 0x98, 0xf5, 0x59, 0xba, 0x21, 0x0a, 0x08, 0x06, 0xe3, 0x37, 0x8c, 0x02, 0x29, 0xcd,
- 0x96, 0x63, 0xbb, 0x98, 0xbe, 0xd3, 0x9f, 0x77, 0x6c, 0x2d, 0x6d, 0x6a, 0x55, 0x1b, 0xf3, 0x5f,
- 0x4c, 0x2b, 0x08, 0x54, 0x41, 0x72, 0x58, 0xcc, 0xf0, 0x44, 0x33, 0x3f, 0x53, 0x3c, 0xa8, 0xc1,
- 0x1e, 0x20, 0xed, 0xea, 0x31, 0xe5, 0x90, 0xd6, 0x87, 0xf3, 0xd4, 0xae, 0x82, 0x51, 0x17, 0xf9,
- 0x67, 0x85, 0xe3, 0x81, 0x30, 0x53, 0xf2, 0x4f, 0x33, 0x84, 0x63, 0x10, 0x7d, 0x7c, 0xc1, 0x18,
- 0xe3, 0xb9, 0x66, 0x49, 0xca, 0xd9, 0x1c, 0x4c, 0x8e, 0x85, 0x13, 0x46, 0xfe, 0xc2, 0x92, 0x65,
- 0x2a, 0x8b, 0xd7, 0x90, 0xb4, 0x85, 0xcd, 0xc4, 0x2e, 0xfd, 0x31, 0x6c, 0x9c, 0xea, 0xe3, 0x5a,
- 0xac, 0xfd, 0x2a, 0xd2, 0x07, 0x84, 0xed, 0x49, 0x8a, 0x86, 0x83, 0xbc, 0xb8, 0xc3, 0x67, 0xe2,
- 0x43, 0x3b, 0x9f, 0x21, 0xb8, 0xe1, 0x10, 0xa7, 0x52, 0xdc, 0x59, 0x68, 0x12, 0xf5, 0x42, 0x5c,
- 0x8c, 0xd7, 0xa6, 0xa5, 0x1d, 0xe3, 0x50, 0x7e, 0xd9, 0x2a, 0xfe, 0x0b, 0x5a, 0xa7, 0x89, 0xef,
- 0xc7, 0x07, 0x1a, 0xe9, 0x42, 0x6b, 0xfe, 0xa4, 0xef, 0xdd, 0x29, 0x3e, 0x91, 0x4b, 0x11, 0x21,
- 0x26, 0xf4, 0x04, 0x2a, 0xc1, 0x39, 0x2c, 0x66, 0x78, 0x22, 0xf8, 0xfe, 0xc8, 0x1e, 0x54, 0x81,
- 0x29, 0xe4, 0x93, 0x5f, 0x38, 0xaa, 0x64, 0x0d, 0xda, 0xba, 0x92, 0xa9, 0x89, 0xd7, 0xbe, 0x1c,
- 0x1c, 0x6a, 0x95, 0x60, 0x78, 0x6e, 0x5e, 0x58, 0x9e, 0x89, 0x16, 0x28, 0x25, 0xc6, 0xc0, 0x3c,
- 0x4d, 0x0e, 0x34, 0x11, 0x84, 0xd6, 0x3f, 0x8b, 0x1d, 0x79, 0x52, 0x7c, 0xe1, 0x96, 0x22, 0x42,
- 0x9d, 0xe7, 0xdc, 0x3a, 0xd5, 0x95, 0x88, 0xc3, 0xfc, 0x41, 0x40, 0xf2, 0x99, 0x3f, 0x74, 0x8b,
- 0xf2, 0x89, 0x1c, 0xd6, 0x02, 0xaf, 0xc4, 0xf1, 0xab, 0xee, 0xad, 0xbf, 0x3d, 0x5a, 0x6f, 0x01,
- 0x21, 0x0f, 0xb0, 0x32, 0xdf, 0xc3, 0xda, 0x70, 0xbe, 0x91, 0x1c, 0xf4, 0x50, 0xce, 0x64, 0x8e,
- 0x6d, 0x24, 0xb8, 0x66, 0x9e, 0xb1, 0x82, 0xbc, 0x4e, 0xd5, 0x2f, 0xcb, 0x03, 0xf2, 0xcc, 0x4f,
- 0xbc, 0xe8, 0x6c, 0x08, 0x0a, 0x56, 0x52, 0xb3, 0x42, 0xd0, 0x5c, 0x06, 0xc9, 0xf1, 0x10, 0x05,
- 0x9a, 0x1c, 0x68, 0x22, 0xcb, 0x6f, 0x7e, 0xd5, 0x3a, 0xf2, 0xa4, 0xf8, 0x01, 0xef, 0x44, 0x84,
- 0x27, 0xd1, 0x38, 0x6f, 0x04, 0x9d, 0x4b, 0x21, 0x95, 0x1f, 0x99, 0xbd, 0x7a, 0xb4, 0xde, 0x02,
- 0x14, 0x81, 0xb6, 0x0d, 0x9f, 0x07, 0xe0, 0x25, 0xfa, 0xa2, 0x98, 0x75, 0xfc, 0xdf, 0x1a, 0xae,
- 0x5e, 0x74, 0x36, 0x04, 0x05, 0x2b, 0x29, 0xb8, 0x21, 0x68, 0x2e, 0x03, 0x85, 0x99, 0x08, 0xe3,
- 0xe4, 0x42, 0xd2, 0x51, 0xd4, 0x23, 0xea, 0x5a, 0x48, 0x36, 0xf7, 0x4c, 0x66, 0x12, 0xa2, 0x6a,
- 0xd3, 0x86, 0xac, 0xe4, 0xdd, 0x6c, 0x1e, 0x81, 0x15, 0x7f, 0xb1, 0x4b, 0x6d, 0x94, 0x0b, 0x8f,
- 0xe1, 0xf3, 0x1e, 0xc3, 0x83, 0x52, 0xd2, 0xc2, 0x97, 0xff, 0xd1, 0xc0, 0x59, 0x55, 0x45, 0xa0,
- 0x69, 0xb0, 0x48, 0xb1, 0x0c, 0x64, 0xdd, 0x63, 0x7c, 0x21, 0x68, 0x04, 0x8e, 0x1f, 0xa1, 0x06,
- 0x49, 0x9a, 0xc4, 0xc6, 0x16, 0x03, 0x60, 0x54, 0x2f, 0x8d, 0x15, 0xb3, 0x6c, 0x7b, 0x4f, 0x0b,
- 0xab, 0x06, 0x9e, 0xca, 0x19, 0x7e, 0x1b, 0x5f, 0x4c, 0x35, 0x67, 0xb6, 0x20, 0x13, 0x57, 0xed,
- 0xb3, 0xf8, 0xfb, 0x7d, 0xf3, 0xc5, 0x1a, 0xd8, 0xe0, 0x48, 0x36, 0x51, 0x88, 0x38, 0xfa, 0x98,
- 0xa3, 0xed, 0xbd, 0xa7, 0xfe, 0x17, 0xa5, 0x22, 0x28, 0x1e, 0xe9, 0xeb, 0xf9, 0x0a, 0x8d, 0x7f,
- 0x0b, 0x84, 0x67, 0xa2, 0x6b, 0x46, 0x17, 0xb4, 0x90, 0x6c, 0x2d, 0x98, 0xcc, 0x24, 0x87, 0xd4,
- 0x90, 0xbd, 0x33, 0xc5, 0x65, 0x8d, 0x0e, 0x26, 0x47, 0xa3, 0xe8, 0x23, 0x7f, 0x61, 0x49, 0xd3,
- 0xfc, 0xbc, 0xb7, 0xe6, 0x3e, 0x98, 0xeb, 0xdd, 0xe4, 0x4b, 0xa6, 0xab, 0xce, 0x39, 0x0f, 0x1f,
- 0xc2, 0xb6, 0xd6, 0x7b, 0x15, 0x1a, 0xc6, 0x3c, 0x30, 0x14, 0x0f, 0xb2, 0xae, 0x0c, 0xf6, 0xeb,
- 0x80, 0xa8, 0x75, 0x1f, 0x68, 0x5f, 0xb1, 0xdc, 0x8f, 0xf5, 0x37, 0x99, 0x0e, 0x53, 0x3e, 0x34,
- 0xe7, 0x2d, 0x96, 0x9e, 0x58, 0x0c, 0x43, 0x93, 0xbc, 0x71, 0x54, 0x89, 0x73, 0x2f, 0xff, 0x2c,
- 0x63, 0x11, 0x13, 0x56, 0xa2, 0x86, 0xad, 0x90, 0x01, 0x70, 0x24, 0xdf, 0xf0, 0x91, 0xac, 0x51,
- 0x30, 0x3f, 0xca, 0xad, 0x17, 0xb5, 0x02, 0xcd, 0x9b, 0xfa, 0xa2, 0x0d, 0x93, 0x56, 0x99, 0xea,
- 0x22, 0x60, 0xf4, 0xfd, 0x53, 0xec, 0x73, 0xb9, 0x4a, 0xd6, 0xbf, 0x31, 0x45, 0xf3, 0x39, 0xc8,
- 0xf6, 0x1d, 0xec, 0x01, 0x90, 0x7a, 0x9b, 0x2e, 0x99, 0x1a, 0xea, 0x70, 0xb0, 0xb7, 0x02, 0x48,
- 0xa8, 0x69, 0xda, 0x05, 0x95, 0x51, 0xb2, 0x96, 0xb8, 0x72, 0xc4, 0x73, 0x35, 0x2e, 0x0a, 0xab,
- 0x57, 0xba, 0x29, 0x2c, 0x27, 0xe6, 0xf0, 0x82, 0xa8, 0x7e, 0xc1, 0x1d, 0xee, 0x2a, 0x58, 0xf2,
- 0x8e, 0x9d, 0xde, 0x2f, 0x54, 0x68, 0x9e, 0xf0, 0xc0, 0x50, 0x3c, 0x8d, 0xfd, 0x30, 0x5e, 0x2a,
- 0xc3, 0x93, 0xea, 0x3e, 0xd0, 0xbe, 0xa1, 0x7b, 0xdd, 0x29, 0x6e, 0xf1, 0x1c, 0xa6, 0x7c, 0x68,
- 0xc6, 0x22, 0x26, 0xac, 0x87, 0xcf, 0x99, 0xe3, 0x02, 0xe0, 0x48, 0x7d, 0x23, 0xe1, 0x9b, 0xa2,
- 0x50, 0x41, 0x9d, 0x34, 0x39, 0x1c, 0x06, 0x94, 0x6e, 0xcd, 0x25, 0x17, 0x76, 0xfa, 0x68, 0xfd,
- 0x75, 0xda, 0xdd, 0xd1, 0x74, 0x0a, 0x83, 0x3b, 0xe2, 0xa8, 0x7e, 0x2c, 0xab, 0xd9, 0x61, 0x3a,
- 0x4b, 0xd0, 0xbc, 0x4c, 0x5f, 0x88, 0xae, 0xda, 0x36, 0xf7, 0xd7, 0x35, 0xcb, 0xec, 0x98, 0xce,
- 0x6c, 0x01, 0x84, 0x23, 0x5b, 0x15, 0xe5, 0xfb, 0xa3, 0xe8, 0x4e, 0x88, 0xb1, 0x58, 0x46, 0xcc,
- 0xa6, 0x5c, 0x71, 0x35, 0xa9, 0x66, 0x9d, 0xba, 0xf7, 0xd7, 0xcf, 0x67, 0xc6, 0x4d, 0x6a, 0xb5,
- 0xa4, 0x16, 0x09, 0xbf, 0xe0, 0xed, 0x53, 0x34, 0xee, 0xad, 0x0d, 0xe1, 0x61, 0xda, 0xbd, 0x70,
- 0xf5, 0x72, 0xa8, 0xce, 0x1c, 0x55, 0x32, 0xe7, 0x6d, 0x5d, 0x49, 0xb5, 0xa5, 0x8a, 0x5f, 0x0e,
- 0xf8, 0x28, 0x47, 0x31, 0xac, 0x4d, 0xb4, 0x02, 0xd6, 0xbf, 0xe1, 0x64, 0x43, 0xd4, 0x62, 0x56,
- 0x9c, 0xc2, 0xe0, 0x7f, 0x10, 0x31, 0xef, 0x84, 0x11, 0x7c, 0x21, 0xb1, 0x2b, 0x95, 0xfe, 0x08,
- 0xd2, 0xa3, 0x90, 0xa1, 0x18, 0xc8, 0x79, 0xc6, 0xf8, 0x42, 0xd0, 0x08, 0xdf, 0x3e, 0x81, 0x0c,
- 0xcd, 0xa6, 0x41, 0x0e, 0xec, 0x89, 0x8e, 0x57, 0x92, 0x8c, 0x65, 0xe5, 0xef, 0xc5, 0x1c, 0x76,
- 0xdc, 0x96, 0x3b, 0x91, 0x24, 0xff, 0x56, 0xea, 0xb7, 0xe7, 0xdb, 0x1c, 0x2c, 0x5d, 0xe1, 0x12,
- 0x1d, 0x4f, 0xa9, 0x25, 0xbd, 0xca, 0x39, 0x1f, 0x73, 0xb4, 0x77, 0x6b, 0x97, 0x6c, 0x4a, 0xbf,
- 0x83, 0xc7, 0x31, 0xd0, 0xe4, 0x70, 0x18, 0x15, 0x7b, 0xb2, 0x94, 0x5c, 0x1b, 0x6e, 0x63, 0x72,
- 0x2e, 0x1f, 0x27, 0x47, 0x26, 0x50, 0x92, 0x1b, 0x1c, 0x09, 0x76, 0xa3, 0x11, 0x07, 0x8e, 0x13,
- 0xf1, 0xe6, 0x58, 0x19, 0x8e, 0x80, 0x6d, 0x38, 0x5f, 0xa9, 0x0e, 0x7a, 0x28, 0x67, 0x32, 0x47,
- 0xfd, 0x99, 0x8b, 0xa3, 0xfb, 0x3c, 0x8c, 0x9a, 0x09, 0x76, 0xc7, 0xe8, 0x7c, 0x93, 0x85, 0x9c,
- 0x81, 0x8d, 0x49, 0x5a, 0xad, 0xfb, 0xd6, 0x9b, 0x62, 0xc8, 0x56, 0xda, 0xbc, 0xf9, 0xb4, 0xb7,
- 0xb1, 0xb2, 0x83, 0xf7, 0xba, 0x4e, 0xd4, 0x56, 0xf9, 0x32, 0xf4, 0xd7, 0x2f, 0xaf, 0x2d, 0x5d,
- 0x4f, 0x44, 0x4c, 0x9b, 0xcd, 0x5d, 0xf1, 0x05, 0x04, 0x03, 0x90, 0xfa, 0x46, 0x01, 0xf5, 0x87,
- 0x47, 0xaf, 0x6f, 0xf6, 0x2a, 0x34, 0x4f, 0x78, 0x60, 0x28, 0x1e, 0xa7, 0x9f, 0x18, 0x2f, 0x15,
- 0x13, 0x7a, 0x02, 0x15, 0x81, 0xfd, 0x16, 0x33, 0x3c, 0x11, 0x7c, 0x7f, 0x64, 0x0f, 0x2a, 0xa1,
- 0x46, 0x8a, 0x53, 0xb3, 0xef, 0x90, 0x28, 0x3f, 0x8d, 0x15, 0x7f, 0xe4, 0x2d, 0xb2, 0xa5, 0x96,
- 0x5b, 0xc5, 0xfa, 0x96, 0x52, 0x5a, 0x11, 0x20, 0xfe, 0xa1, 0x08, 0x8f, 0xba, 0xde, 0xef, 0x29,
- 0xfb, 0x47, 0x03, 0xfe, 0x20, 0x62, 0x1d, 0xcb, 0x22, 0xf8, 0x42, 0xa1, 0x56, 0xe9, 0x3f, 0x10,
- 0xed, 0x8c, 0xcd, 0x79, 0xf6, 0xee, 0x33, 0x60, 0xc1, 0x20, 0x18, 0x52, 0x0d, 0xa1, 0xf2, 0x7b,
- 0x94, 0x29, 0xc3, 0x12, 0xf7, 0x58, 0x51, 0xf9, 0x75, 0x57, 0xaf, 0xec, 0xf2, 0x8c, 0x24, 0x9a,
- 0x25, 0x9b, 0x40, 0xe5, 0x4d, 0x16, 0x85, 0xaf, 0x8c, 0x65, 0x5b, 0x3b, 0xdd, 0x23, 0x09, 0xc7,
- 0xa5, 0x33, 0x35, 0xfa, 0x25, 0x49, 0x34, 0x73, 0x03, 0x90, 0x6c, 0xa2, 0xd3, 0x70, 0x37, 0xf3,
- 0xdd, 0xb3, 0x07, 0xd4, 0xe1, 0x5b, 0x31, 0xad, 0x5a, 0xda, 0xba, 0x5f, 0x9e, 0xf7, 0x6b, 0x91,
- 0x38, 0xd4, 0xe9, 0xc0, 0xf0, 0xdc, 0xbc, 0xb0, 0xff, 0xd1, 0x2c, 0x50, 0x4a, 0x4f, 0x43, 0x78,
- 0x58, 0xaa, 0xbe, 0x59, 0xde, 0x75, 0xb8, 0xe9, 0x0a, 0xe6, 0xab, 0x4a, 0xaf, 0xe3, 0xb2, 0x6f,
- 0x0f, 0x10, 0x97, 0x75, 0xf9, 0x93, 0x48, 0x6b, 0xa2, 0x98, 0x6a, 0x57, 0x41, 0xc9, 0xea, 0x9d,
- 0xda, 0x48, 0xb3, 0xcc, 0xff, 0xa1, 0xc7, 0xbb, 0x9c, 0x69, 0x5e, 0x55, 0x06, 0x27, 0x5b, 0x9e,
- 0x3d, 0x65, 0x25, 0x52, 0xa7, 0xad, 0x84, 0x28, 0x20, 0x18, 0x0a, 0xdc, 0x75, 0x08, 0xa4, 0xb2,
- 0xe8, 0x3d, 0x01, 0xeb, 0xa1, 0x9f, 0x0b, 0xf8, 0x1e, 0xe9, 0x3e, 0xde, 0x32, 0xe6, 0x15, 0xb1,
- 0xe9, 0x18, 0x3d, 0xae, 0x64, 0x3b, 0x6c, 0xbf, 0xf3, 0xd4, 0x5f, 0x9d, 0x80, 0x4c, 0x9f, 0x32,
- 0x18, 0xfe, 0x65, 0xb7, 0xea, 0xbb, 0x01, 0x87, 0xac, 0x7d, 0x51, 0xe7, 0xa8, 0x2b, 0xad, 0x75,
- 0x95, 0x0c, 0xff, 0x57, 0x32, 0xfc, 0x36, 0xbe, 0x98, 0x6a, 0xce, 0xaf, 0x40, 0x26, 0xae, 0x19,
- 0xee, 0xe3, 0x89, 0xb6, 0x7a, 0xc1, 0x9a, 0xa9, 0x35, 0x67, 0xbb, 0x97, 0x18, 0x9c, 0xaf, 0x3d,
- 0x77, 0x90, 0xa5, 0x5b, 0x3d, 0x81, 0x4d, 0xb5, 0xfb, 0xd2, 0xbc, 0xaa, 0x0c, 0x4e, 0xb6, 0xff,
- 0x72, 0x21, 0x69, 0xc9, 0x6a, 0xf0, 0x75, 0x2d, 0x24, 0x1b, 0x9a, 0x26, 0x33, 0x09, 0x51, 0x35,
- 0x6f, 0x6e, 0xc0, 0xec, 0xd7, 0x3a, 0x4c, 0x32, 0x57, 0xaf, 0xed, 0x4d, 0xa4, 0x65, 0x1b, 0x8a,
- 0x51, 0x64, 0xa1, 0x71, 0xfc, 0xb8, 0x61, 0xd3, 0x83, 0xf0, 0x44, 0x54, 0xc4, 0x50, 0xe2, 0x7e,
- 0x7f, 0x7b, 0x86, 0x36, 0xda, 0xe8, 0xf3, 0xc8, 0x9f, 0xf9, 0x32, 0xf7, 0xd5, 0x57, 0x6c, 0x6d,
- 0xdf, 0xf9, 0x7f, 0x5e, 0xa8, 0xd0, 0xff, 0x23, 0x43, 0xa0, 0x78, 0xd9, 0x39, 0x60, 0xbc, 0x54,
- 0xd7, 0x12, 0x5c, 0x33, 0x4f, 0xb9, 0x41, 0x5e, 0x27, 0x8b, 0xf6, 0x84, 0xe0, 0x79, 0x66, 0xc6,
- 0xd4, 0x7d, 0x18, 0xfc, 0xc3, 0x96, 0xe8, 0x97, 0xd3, 0xcc, 0x55, 0x41, 0xf5, 0x44, 0x3b, 0x80,
- 0x6b, 0xfa, 0x30, 0x3b, 0x45, 0xef, 0x13, 0xed, 0x65, 0x5b, 0xaa, 0x82, 0x29, 0x88, 0x76, 0xc3,
- 0x3a, 0x9e, 0x91, 0x4a, 0xb9, 0x57, 0x72, 0x3e, 0xe6, 0xab, 0xee, 0xd6, 0xed, 0xd8, 0x94, 0xbd,
- 0x20, 0x2a, 0x8c, 0x77, 0x1a, 0x67, 0xbd, 0x37, 0x53, 0xac, 0x7d, 0xb7, 0xe2, 0x64, 0xee, 0x0d,
- 0x0a, 0xa1, 0x5b, 0xe7, 0xae, 0xe2, 0x70, 0xf3, 0x7d, 0x51, 0x4c, 0xdb, 0x7e, 0x8e, 0x0d, 0x57,
- 0x42, 0x1e, 0xa3, 0x64, 0x7d, 0x45, 0x77, 0xe0, 0xbf, 0xe1, 0x38, 0x2b, 0xa0, 0x5f, 0xc8, 0xdf,
- 0xcc, 0x83, 0x7d, 0x4b, 0x29, 0x2d, 0xe9, 0x10, 0x7f, 0xb1, 0x04, 0xa6, 0x5d, 0x6f, 0x96, 0xf5,
- 0x7b, 0xef, 0x76, 0xe1, 0x48, 0x3d, 0xac, 0x17, 0xad, 0x0d, 0x75, 0x38, 0x58, 0xba, 0x01, 0x24,
- 0x8f, 0xb8, 0xe2, 0x6a, 0x91, 0xcc, 0xf9, 0xb7, 0x2d, 0x6d, 0x5d, 0xce, 0x4f, 0x9a, 0xd4, 0xa9,
- 0x3b, 0xbb, 0xad, 0x0f, 0x7c, 0xf3, 0x15, 0x79, 0x0b, 0x96, 0x8f, 0x95, 0x5f, 0x72, 0x1e, 0x3e,
- 0x7d, 0x31, 0xfe, 0xbc, 0x93, 0x63, 0x3d, 0x46, 0x86, 0x83, 0xf0, 0x71, 0x72, 0xc0, 0xbb, 0xa8,
- 0xbf, 0x87, 0x28, 0xc7, 0x86, 0x79, 0xfb, 0x7a, 0xb6, 0x97, 0xff, 0xc3, 0xdc, 0xcc, 0x4d, 0x43,
- 0xd0, 0xe9, 0xe8, 0x2b, 0x51, 0x43, 0xb7, 0x48, 0xe1, 0x38, 0x12, 0x8e, 0x78, 0xa9, 0x56, 0xc9,
- 0xde, 0xdc, 0x43, 0x1b, 0x6d, 0x74, 0x98, 0x64, 0xae, 0x9d, 0x19, 0x9a, 0x8b, 0xca, 0x36, 0xd7,
- 0xca, 0x5d, 0xf5, 0x16, 0xf2, 0x73, 0x78, 0x41, 0x54, 0x3f, 0x81, 0xef, 0x77, 0x15, 0x2c, 0x79,
- 0x2c, 0x55, 0x5f, 0xcd, 0x6f, 0xdb, 0x5c, 0x95, 0x05, 0x73, 0xb4, 0x25, 0xb6, 0x90, 0x59, 0xd6,
- 0x19, 0xdb, 0x59, 0xf2, 0x2f, 0x1f, 0x66, 0xc0, 0x41, 0x40, 0x30, 0xa4, 0x1a, 0x81, 0x27, 0xf6,
- 0x76, 0xb5, 0x99, 0x1e, 0xf8, 0x25, 0x2a, 0xf2, 0x16, 0xef, 0xdd, 0xe9, 0xbe, 0xe4, 0x3c, 0x7c,
- 0x12, 0x5f, 0x3e, 0x50, 0x44, 0x59, 0x71, 0x74, 0xd1, 0x2c, 0x1d, 0x3c, 0xd6, 0xa5, 0xa0, 0x22,
- 0x74, 0xff, 0xe1, 0x94, 0xb1, 0xae, 0xe4, 0x7c, 0x0f, 0x95, 0x1f, 0x6f, 0x19, 0x73, 0xeb, 0xb9,
- 0xd5, 0x58, 0x24, 0xb9, 0x06, 0x32, 0x8f, 0xd0, 0x3e, 0xf1, 0x34, 0x02, 0x47, 0xee, 0xb1, 0x03,
- 0x8b, 0x2c, 0x12, 0xbd, 0x03, 0x19, 0xa6, 0x68, 0x1f, 0x99, 0x1a, 0x01, 0xc2, 0x77, 0xb9, 0xe0,
- 0x07, 0xfb, 0xb4, 0x18, 0x1e, 0xfa, 0xf6, 0x16, 0xc6, 0xb3, 0xe4, 0x0a, 0x98, 0xd0, 0x30, 0x0f,
- 0x59, 0x8f, 0x82, 0x1c, 0x1b, 0xd1, 0xdf, 0xae, 0xe7, 0xdb, 0xca, 0x09, 0x1d, 0x49, 0x38, 0xec,
- 0xb0, 0x97, 0xbf, 0xb2, 0x7f, 0xea, 0xb3, 0x11, 0x14, 0x0f, 0x95, 0x94, 0x9d, 0x05, 0xa7, 0xde,
- 0x1f, 0x05, 0xd1, 0xaf, 0xf4, 0x41, 0xf7, 0x91, 0x6a, 0xce, 0xb5, 0xed, 0x30, 0xfb, 0x9d, 0x7a,
- 0x61, 0x5b, 0x6b, 0xdc, 0xeb, 0x0d, 0x63, 0x1e, 0x18, 0x0a, 0xe6, 0x59, 0x57, 0x06, 0x7b, 0x94,
- 0x1a, 0xb4, 0x1d, 0x3d, 0xa3, 0x30, 0xcf, 0x09, 0xb5, 0x07, 0x93, 0x61, 0x0f, 0xbc, 0x7a, 0xb0,
- 0xc8, 0x17, 0x8d, 0x9c, 0xbb, 0xf8, 0xb6, 0xcf, 0x4d, 0x45, 0x43, 0x69, 0xd0, 0x82, 0xfb, 0xbc,
- 0x97, 0x46, 0x87, 0xdd, 0x7b, 0x77, 0xf8, 0x30, 0x81, 0x10, 0x0c, 0x29, 0xe7, 0xb1, 0x79, 0xdc,
- 0x17, 0xee, 0xf2, 0xc2, 0x13, 0x28, 0x49, 0xec, 0x0e, 0xe5, 0x3b, 0xb0, 0xe9, 0xe2, 0x47, 0xe8,
- 0xa9, 0x4c, 0xe6, 0x40, 0x50, 0xf5, 0xd5, 0xd1, 0x55, 0x4f, 0xa5, 0x30, 0x87, 0x84, 0x80, 0x28,
- 0x91, 0x98, 0x0f, 0x80, 0xa0, 0x29, 0x69, 0x61, 0xaa, 0x9e, 0x89, 0x60, 0xcd, 0xcb, 0xc3, 0x50,
- 0x9f, 0xad, 0xa4, 0xb0, 0x9c, 0x1e, 0x46, 0x4d, 0xe5, 0x3b, 0x82, 0x74, 0x3e, 0xa8, 0xa3, 0x4e,
- 0x1b, 0x91, 0x21, 0x78, 0x66, 0x94, 0xa8, 0x4e, 0x58, 0x3a, 0xf2, 0x22, 0xbd, 0x16, 0xf0, 0x33,
- 0xbb, 0x13, 0xd8, 0x10, 0x14, 0xac, 0xa4, 0xa5, 0x84, 0x63, 0xb8, 0x0c, 0x51, 0x21, 0x20, 0x0a,
- 0xd1, 0xcc, 0xd4, 0x6e, 0x94, 0xe7, 0xd0, 0x0f, 0x0c, 0x05, 0x73, 0xcd, 0xca, 0x03, 0xdc, 0x4a,
- 0x7a, 0xca, 0x4a, 0xa4, 0x8d, 0x99, 0xcb, 0x50, 0x40, 0x30, 0x14, 0x7b, 0xea, 0x10, 0x8b, 0xa7,
- 0xb4, 0x03, 0x4f, 0x65, 0xed, 0x3f, 0xec, 0xce, 0x26, 0xfb, 0xd2, 0x5b, 0x10, 0xe8, 0xca, 0x97,
- 0x5f, 0x51, 0x0a, 0x41, 0xc0, 0x8f, 0x4e, 0xff, 0xcc, 0x55, 0x4f, 0x40, 0x37, 0x33, 0x82, 0x60,
- 0x71, 0x4e, 0x2d, 0x06, 0xe6, 0xdf, 0xdc, 0xe4, 0xd0, 0x5c, 0x39, 0xe3, 0x26, 0x34, 0x0c, 0x73,
- 0x0e, 0x35, 0xab, 0x30, 0x3c, 0x37, 0x2f, 0x2c, 0x4f, 0xa5, 0x0b, 0x14, 0xf3, 0x63, 0x60, 0x1e,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x78, 0x80, 0x32, 0x2e, 0xc4, 0x12, 0x05, 0xde, 0x59, 0x4a, 0xd6, 0xfd, 0x4d, 0x87, 0x5c, 0x62,
- 0x24, 0xbe, 0x7c, 0xa0, 0x88, 0xb2, 0xe2, 0xe8, 0x61, 0x58, 0x3a, 0x78, 0x6f, 0x89, 0x83, 0x44,
- 0x40, 0x54, 0xdb, 0xee, 0x34, 0xce, 0xb9, 0x6e, 0xa6, 0x9b, 0xfa, 0xad, 0x07, 0xc8, 0x1f, 0x1a,
- 0x86, 0x76, 0xfd, 0x42, 0xb3, 0x01, 0x20, 0x8d, 0xa4, 0x7b, 0xb2, 0xd0, 0x24, 0x29, 0x84, 0xb8,
- 0x52, 0x0b, 0xe5, 0xbe, 0x70, 0x97, 0xc8, 0x1a, 0x77, 0xb7, 0xe7, 0x91, 0xd1, 0x6d, 0xbf, 0x38,
- 0xf3, 0xac, 0x20, 0x93, 0xc7, 0x0b, 0xa3, 0xb6, 0x46, 0xd3, 0xcc, 0xfc, 0x8f, 0xf0, 0xe5, 0x82,
- 0x11, 0x30, 0x7a, 0x9f, 0xc8, 0x76, 0xd8, 0xbd, 0x25, 0x6b, 0xbe, 0xf9, 0xc3, 0x98, 0xfd, 0x64,
- 0x28, 0xc1, 0xaf, 0x1a, 0xfd, 0x0e, 0x03, 0x4a, 0x37, 0x87, 0xf3, 0xea, 0x3b, 0x7d, 0x34, 0x9f,
- 0x5c, 0x3e, 0x4e, 0x8e, 0x4c, 0xa0, 0xe7, 0x36, 0x38, 0x12, 0xec, 0x85, 0x22, 0x0e, 0xdf, 0x26,
- 0x98, 0x56, 0x10, 0xa8, 0x82, 0xe4, 0xb0, 0x5b, 0x23, 0x88, 0x66, 0x7e, 0xa6, 0x78, 0x93, 0x41,
- 0xc1, 0xd9, 0x92, 0xb4, 0x99, 0x35, 0x6f, 0xf5, 0xc4, 0x53, 0xac, 0x77, 0xbb, 0x31, 0xab, 0xad,
- 0xd6, 0x37, 0x60, 0x76, 0x8a, 0x1d, 0x26, 0x19, 0xca, 0xb6, 0x97, 0xc7, 0x52, 0xd3, 0xec, 0x45,
- 0x03, 0x6f, 0x44, 0xcf, 0x8c, 0x2f, 0xa9, 0xc9, 0xf4, 0x47, 0xa3, 0xc5, 0x15, 0x3d, 0x5d, 0x46,
- 0x08, 0xeb, 0x23, 0x6d, 0xe7, 0x69, 0xbe, 0x7d, 0x64, 0x2b, 0x8e, 0x5d, 0xd9, 0x19, 0xda, 0x92,
- 0xae, 0xb7, 0x52, 0x58, 0x4e, 0x0f, 0x23, 0xc7, 0x93, 0xfc, 0x41, 0x3a, 0x1f, 0x54, 0xb0, 0x27,
- 0x64, 0xea, 0xa7, 0x4e, 0xbc, 0x7c, 0x5b, 0x86, 0xc7, 0xc3, 0xc0, 0xd5, 0x68, 0x41, 0x9c, 0x5e,
- 0x2d, 0x70, 0x63, 0x88, 0xaa, 0x7f, 0x3b, 0xd2, 0xe8, 0x4e, 0xd5, 0x66, 0x04, 0x3a, 0xd3, 0x55,
- 0x32, 0x75, 0xb2, 0x27, 0x5e, 0x3e, 0xcc, 0x43, 0x82, 0x80, 0x60, 0x8b, 0x34, 0xc1, 0x4e, 0x2f,
- 0x06, 0xde, 0x88, 0x5d, 0xdb, 0x5e, 0x91, 0x51, 0x2b, 0x8e, 0x85, 0x49, 0x2a, 0x7a, 0xba, 0x8c,
- 0x34, 0xab, 0x3a, 0x7a, 0x85, 0x60, 0x5d, 0x12, 0xa9, 0x0e, 0xe5, 0xc2, 0x1e, 0xbb, 0xf4, 0xa3,
- 0x5d, 0x1b, 0x72, 0xcb, 0x89, 0x04, 0x80, 0x71, 0xd5, 0x2f, 0x8d, 0xc6, 0x90, 0xa4, 0x55, 0xa5,
- 0x84, 0x3c, 0x85, 0xc8, 0xfa, 0x8a, 0xee, 0x03, 0xbd, 0x01, 0x70, 0x56, 0x83, 0xbe, 0x53, 0x7d,
- 0x31, 0x1a, 0xf6, 0xe8, 0xd2, 0x11, 0x65, 0x8a, 0x76, 0xc7, 0xc3, 0x4e, 0x21, 0xfc, 0x13, 0x69,
- 0xf9, 0x0d, 0x7b, 0x74, 0x69, 0xe9, 0xd3, 0x45, 0x3b, 0x82, 0x80, 0x27, 0xf1, 0x7e, 0xe8, 0xd5,
- 0x93, 0xd2, 0x77, 0x0a, 0xe9, 0xa2, 0xa7, 0xef, 0xb3, 0xe4, 0x4b, 0xe6, 0x6a, 0x5c, 0x14, 0x95,
- 0x87, 0x53, 0xc1, 0x07, 0x76, 0xa5, 0x47, 0xca, 0x49, 0x46, 0xd3, 0x93, 0x96, 0x83, 0x0e, 0x3b,
- 0x9b, 0x39, 0x54, 0x67, 0x0e, 0xcb, 0x19, 0x92, 0xd7, 0xcf, 0xc5, 0xbb, 0xb3, 0x45, 0xce, 0x07,
- 0x0d, 0x5a, 0xef, 0xff, 0xb0, 0x18, 0x86, 0xe5, 0xbb, 0xe2, 0xa8, 0xd1, 0xe6, 0x5e, 0x3d, 0x58,
- 0xcf, 0xec, 0x39, 0x84, 0xa5, 0x02, 0x40, 0xd9, 0x8b, 0xf6, 0xa7, 0x63, 0x48, 0x52, 0xcb, 0xb3,
- 0x6a, 0xdf, 0x0c, 0x7e, 0x80, 0x4b, 0x74, 0xaa, 0x88, 0x66, 0xcb, 0xc1, 0x9b, 0x22, 0xfc, 0x40,
- 0xbd, 0xcd, 0x50, 0x4d, 0xcf, 0xf2, 0x35, 0xf4, 0xaf, 0xed, 0x3d, 0x45, 0x7b, 0x5b, 0x9a, 0x86,
- 0x33, 0x50, 0x8e, 0x62, 0x9b, 0x9a, 0xab, 0x04, 0x6f, 0xbd, 0x01, 0xc8, 0x86, 0x6b, 0xc4, 0xac,
- 0xdb, 0x6d, 0x8f, 0x89, 0x3a, 0x05, 0xa0, 0xfc, 0x71, 0x54, 0x3f, 0x16, 0xb4, 0x8d, 0xd1, 0x1d,
- 0xeb, 0x52, 0x45, 0x24, 0x2d, 0xb0, 0xa2, 0x31, 0xea, 0xae, 0x9d, 0x1b, 0x27, 0xdb, 0x48, 0xf7,
- 0xce, 0xc9, 0x05, 0xc1, 0x60, 0xa6, 0x27, 0x9e, 0x66, 0xcb, 0xc6, 0x20, 0xfa, 0xf8, 0x41, 0x30,
- 0x55, 0xf0, 0x51, 0xa6, 0x6e, 0x6d, 0x3e, 0x0c, 0xb1, 0x04, 0x03, 0x9b, 0x49, 0xbd, 0x8f, 0x37,
- 0x16, 0xcb, 0xce, 0x87, 0xd6, 0x8c, 0x2e, 0xab, 0xe3, 0xd8, 0x5a, 0xf3, 0x5b, 0x48, 0xcd, 0x6b,
- 0xc5, 0x4d, 0x62, 0x63, 0x0b, 0xe0, 0x30, 0x2a, 0xf6, 0xa7, 0xeb, 0xb8, 0x36, 0xdc, 0xc6, 0xe4,
- 0x48, 0xbf, 0xf8, 0x83, 0xd3, 0xa7, 0x07, 0x13, 0xc2, 0xb0, 0x74, 0xf0, 0xde, 0xd1, 0xc5, 0x88,
- 0x2b, 0xae, 0xeb, 0xd5, 0x71, 0x21, 0xaa, 0x83, 0xc3, 0xc0, 0x50, 0x2f, 0x2e, 0x40, 0x69, 0xd9,
- 0x10, 0x15, 0x46, 0xda, 0x0d, 0xd2, 0xbf, 0xfa, 0xc8, 0x56, 0xdf, 0xba, 0x71, 0x32, 0x77, 0xe7,
- 0xba, 0x36, 0xe4, 0x55, 0xd1, 0x08, 0xc3, 0xe2, 0x69, 0x5e, 0xd9, 0x4f, 0xe3, 0x8b, 0xaa, 0x89,
- 0x79, 0xa5, 0x0e, 0x6b, 0x01, 0xb6, 0x62, 0x99, 0xb4, 0x77, 0xb7, 0xbe, 0xff, 0x2d, 0xd6, 0xe1,
- 0xb2, 0xdd, 0xc7, 0x38, 0x36, 0x61, 0x7d, 0x9f, 0x0d, 0x75, 0x57, 0x12, 0x3a, 0x92, 0x70, 0x1b,
- 0x01, 0x25, 0x3c, 0x45, 0xc5, 0xa4, 0x67, 0x47, 0xed, 0x3d, 0x61, 0x43, 0xb2, 0xaa, 0x8a, 0x83,
- 0x04, 0x94, 0xf0, 0xd7, 0x92, 0xd5, 0x5f, 0xdf, 0x32, 0xf4, 0x47, 0xcf, 0x8d, 0xed, 0x6d, 0x49,
- 0xb8, 0x7c, 0x9c, 0xdf, 0x98, 0x83, 0x0d, 0x6c, 0x70, 0x24, 0x1b, 0xc9, 0x44, 0x1c, 0x7d, 0x4c,
- 0xc9, 0x32, 0xb1, 0xd9, 0x7e, 0x5c, 0xd1, 0x88, 0xa0, 0x78, 0x22, 0x2a, 0x62, 0x28, 0x71, 0x3f,
- 0xec, 0xa9, 0xf1, 0x3c, 0x33, 0x4a, 0x54, 0x27, 0x2c, 0x1d, 0x79, 0x11, 0xbf, 0x0b, 0x78, 0xf8,
- 0x85, 0x19, 0xb9, 0x8d, 0x3f, 0x2e, 0x89, 0x44, 0x50, 0x3c, 0x11, 0x15, 0x31, 0x14, 0xd9, 0xfe,
- 0xf4, 0x57, 0x94, 0x8b, 0xd9, 0xf1, 0x55, 0xa0, 0x80, 0x60, 0x28, 0xf6, 0x17, 0x20, 0xd5, 0x8d,
- 0x44, 0xc0, 0x2b, 0x39, 0xa6, 0x1b, 0xe6, 0xb1, 0x94, 0x6f, 0xbd, 0x62, 0x8a, 0x25, 0x72, 0x53,
- 0x5a, 0xe0, 0xc6, 0xd3, 0x97, 0xfe, 0x76, 0x67, 0x13, 0x9c, 0x69, 0xcc, 0x08, 0x74, 0x65, 0xaa,
- 0x2f, 0x3a, 0x1b, 0x02, 0xe3, 0xf4, 0xf5, 0x5c, 0xf1, 0x34, 0x17, 0xe0, 0xa3, 0xad, 0x04, 0x90,
- 0x05, 0xb1, 0xcc, 0x92, 0x57, 0x71, 0x38, 0x98, 0xdf, 0xc9, 0x26, 0x8c, 0x3f, 0x47, 0xe7, 0xca,
- 0xd9, 0x27, 0xf7, 0x03, 0x73, 0x8e, 0x6e, 0x72, 0x68, 0x2e, 0xfd, 0x90, 0x13, 0x1a, 0x06, 0xd8,
- 0x68, 0x95, 0x74, 0xf4, 0xc9, 0xc0, 0xba, 0x24, 0x91, 0x1c, 0x09, 0x47, 0x3c, 0xb5, 0x2b, 0x85,
- 0xad, 0xd8, 0x16, 0x97, 0xc2, 0x20, 0x8a, 0x0e, 0x67, 0xbb, 0xe2, 0xff, 0x0a, 0x69, 0xed, 0x61,
- 0x35, 0x8e, 0x06, 0x3f, 0x40, 0xc4, 0x3a, 0x55, 0x44, 0x33, 0x84, 0x81, 0xac, 0x11, 0x7e, 0x20,
- 0x56, 0x9f, 0x15, 0x69, 0xe2, 0x42, 0x97, 0xc5, 0x45, 0x43, 0xa0, 0x5e, 0x5c, 0x80, 0xd2, 0x71,
- 0xc4, 0x68, 0x5e, 0x26, 0xce, 0x44, 0x57, 0x6d, 0x1b, 0x9a, 0x8a, 0xfb, 0x84, 0x76, 0x4c, 0x67,
- 0xaf, 0x92, 0x6e, 0x1d, 0x8b, 0xab, 0x44, 0x80, 0x7e, 0xc1, 0x20, 0x79, 0xad, 0xfe, 0x3a, 0xa4,
- 0x15, 0xa4, 0x8a, 0x48, 0x5a, 0xa3, 0x87, 0x62, 0x17, 0x9f, 0xf9, 0x36, 0x4e, 0x75, 0x90, 0x2d,
- 0x7c, 0x14, 0xc2, 0xf9, 0x56, 0xc7, 0x5a, 0x01, 0x6b, 0xbe, 0x91, 0x32, 0xc0, 0x6a, 0x31, 0x2b,
- 0x6e, 0x4b, 0xfc, 0xa9, 0x12, 0x9e, 0x2b, 0x75, 0xba, 0x92, 0x8c, 0x0e, 0x16, 0xcf, 0x91, 0x09,
- 0xd8, 0x02, 0xcb, 0x46, 0xb6, 0x2a, 0x09, 0x35, 0x85, 0x13, 0x9c, 0xd3, 0xa1, 0xb0, 0x8c, 0x5b,
- 0xf7, 0x38, 0xd0, 0x44, 0x55, 0xde, 0xfc, 0x69, 0x74, 0x27, 0x8b, 0x33, 0x02, 0x1d, 0x88, 0xcb,
- 0x66, 0xa0, 0xdf, 0xc4, 0xf5, 0xf7, 0x95, 0x08, 0xde, 0xb9, 0x02, 0x53, 0xcf, 0xd6, 0x4b, 0x9b,
- 0x89, 0x66, 0x6a, 0x37, 0x4a, 0x92, 0x68, 0xe6, 0x06, 0xe3, 0xd8, 0x87, 0x65, 0xe0, 0x6e, 0x25,
- 0x45, 0xe5, 0x17, 0x7c, 0x63, 0xbf, 0x81, 0xf6, 0x79, 0x52, 0xdc, 0x21, 0x38, 0x8f, 0xf8, 0xd0,
- 0xef, 0xc6, 0xb5, 0xf3, 0xbf, 0x65, 0xfd, 0xee, 0xd8, 0x5a, 0xda, 0xd4, 0xaa, 0x36, 0x25, 0xbe,
- 0x37, 0xc4, 0x7e, 0xb5, 0x09, 0x4f, 0xf4, 0xdb, 0x5d, 0x49, 0x46, 0x07, 0x0b, 0x86, 0xa9, 0xe5,
- 0x8d, 0xf2, 0x9a, 0xe0, 0xd8, 0x47, 0x37, 0x39, 0x34, 0x17, 0x9f, 0x48, 0xe8, 0x0d, 0x03, 0x6c,
- 0xb6, 0x49, 0x37, 0xef, 0xa4, 0xb4, 0x22, 0x40, 0x3f, 0x81, 0x10, 0xdd, 0xb7, 0x7f, 0x1d, 0x52,
- 0xff, 0xd3, 0xf3, 0x29, 0xb2, 0xb7, 0x42, 0x14, 0x10, 0x0c, 0x05, 0x6e, 0xdb, 0x04, 0x52, 0x59,
- 0x88, 0x43, 0x56, 0x72, 0x8f, 0x36, 0x0f, 0xa1, 0xeb, 0xde, 0xb9, 0xc4, 0xd7, 0x4a, 0xe4, 0xa6,
- 0xea, 0x77, 0x79, 0x61, 0xe8, 0x14, 0xc5, 0x76, 0x07, 0x93, 0xfc, 0x58, 0x95, 0x71, 0xc2, 0x74,
- 0x62, 0x34, 0x2f, 0x13, 0x67, 0x22, 0xca, 0xd7, 0xec, 0x4d, 0x45, 0x9c, 0x42, 0x3b, 0x26, 0xd2,
- 0xe2, 0x9c, 0x5a, 0x0c, 0x0f, 0x7d, 0x7b, 0x0b, 0x63, 0xb8, 0x72, 0x05, 0x4c, 0x68, 0x18, 0xe6,
- 0x3e, 0x0a, 0x61, 0x9d, 0x2b, 0x82, 0x2d, 0xe1, 0xd4, 0x5f, 0xa9, 0x19, 0x60, 0x35, 0xf9, 0xf4,
- 0x54, 0xd5, 0x6d, 0xe3, 0xab, 0xc9, 0x59, 0x4b, 0x5c, 0x39, 0x62, 0xd8, 0xfb, 0x17, 0x05, 0xb4,
- 0xbe, 0xa2, 0x14, 0x82, 0x43, 0xdd, 0x9c, 0x3d, 0x5b, 0xaa, 0x9e, 0x80, 0x6e, 0x66, 0xc7, 0xc0,
- 0xb7, 0x6c, 0x0b, 0xaa, 0x61, 0x10, 0x45, 0x07, 0xd2, 0xbc, 0x71, 0x9e, 0x05, 0xd5, 0x97, 0xd1,
- 0x36, 0xe1, 0x42, 0xf0, 0xcc, 0xeb, 0x93, 0x9c, 0xb0, 0x74, 0x27, 0x44, 0xb9, 0x2c, 0x23, 0x66,
- 0xe6, 0x08, 0xaa, 0xdb, 0x9d, 0xa8, 0x24, 0xd4, 0x51, 0x4c, 0x35, 0xca, 0xc1, 0x85, 0x75, 0xaf,
- 0x99, 0x73, 0x2c, 0xed, 0x47, 0x40, 0xd7, 0x1c, 0xce, 0xb5, 0x07, 0x3d, 0x14, 0xd2, 0x19, 0xc2,
- 0xa0, 0x82, 0xf9, 0x68, 0x72, 0x38, 0x0c, 0xeb, 0xdc, 0x59, 0x4a, 0x2e, 0xec, 0x37, 0xd0, 0x39,
- 0x23, 0x45, 0xc8, 0xb8, 0x96, 0x48, 0x14, 0xfe, 0xa7, 0xeb, 0xde, 0x72, 0xf7, 0x59, 0xb3, 0x4b,
- 0x8a, 0x09, 0x2e, 0xf8, 0xc6, 0xbd, 0xc1, 0x2f, 0xf2, 0xa4, 0x7b, 0x42, 0x70, 0xdd, 0x33, 0x63,
- 0x73, 0x04, 0x55, 0x8c, 0xaf, 0x54, 0x12, 0x6a, 0xc9, 0x26, 0xfb, 0x65, 0x81, 0xa3, 0xdb, 0xb6,
- },
- { /* 7 */
- 0x5e, 0x59, 0x1d, 0x8d, 0x98, 0xfb, 0x33, 0x54, 0x7c, 0xd4, 0xa4, 0x1b, 0xb3, 0x82, 0x0e, 0xb2,
- 0x90, 0x76, 0xbe, 0x36, 0xc1, 0x08, 0x56, 0x5a, 0xf4, 0x40, 0x38, 0xf8, 0x4c, 0x99, 0x0f, 0xec,
- 0xb8, 0xae, 0x1f, 0x39, 0x5b, 0xcb, 0x04, 0x4b, 0x01, 0x97, 0x34, 0x4e, 0xd8, 0x52, 0x2c, 0x9f,
- 0x18, 0x48, 0xde, 0x05, 0x76, 0x41, 0x8f, 0x0f, 0x53, 0x4d, 0x04, 0xd3, 0xcd, 0xf8, 0xa0, 0x90,
- 0x76, 0x81, 0xbc, 0x82, 0x02, 0x38, 0x61, 0x45, 0x89, 0x03, 0xa8, 0xad, 0x27, 0x49, 0x2d, 0xc1,
- 0xc4, 0x19, 0x1a, 0xc8, 0x9e, 0xb3, 0x90, 0x9b, 0x24, 0xd1, 0x9f, 0x2f, 0xda, 0x59, 0x79, 0x32,
- 0x0d, 0x23, 0xf7, 0xdb, 0x11, 0x1f, 0x5f, 0xae, 0x67, 0xf8, 0x5d, 0x96, 0x09, 0xc8, 0x5c, 0x46,
- 0x84, 0x1a, 0x0f, 0xd0, 0x8c, 0x88, 0x7f, 0xb3, 0x6f, 0xca, 0x3e, 0xa3, 0x06, 0x1d, 0xff, 0x34,
- 0xc2, 0x0b, 0xcc, 0x58, 0x62, 0x32, 0xc3, 0xe8, 0x40, 0x53, 0x9e, 0x6b, 0x78, 0x67, 0x51, 0x16,
- 0x34, 0x8c, 0x5a, 0xea, 0x44, 0x7c, 0xbf, 0xfd, 0x5f, 0x66, 0xb7, 0x1d, 0x24, 0xa6, 0xb3, 0xdb,
- 0x31, 0x97, 0xe7, 0x32, 0xc6, 0x5c, 0x24, 0x56, 0x09, 0xa5, 0x57, 0x7b, 0xd7, 0x87, 0x8f, 0xed,
- 0x24, 0xfc, 0xce, 0xec, 0xa1, 0x02, 0xf4, 0xf7, 0x3d, 0x10, 0x0e, 0x3e, 0x13, 0xb7, 0x73, 0x3b,
- 0xc3, 0x0c, 0x54, 0x60, 0x48, 0xec, 0x3a, 0xa0, 0xef, 0x6c, 0xc1, 0x75, 0xf6, 0xd3, 0x5d, 0x18,
- 0xc7, 0x10, 0x71, 0x80, 0xe0, 0x12, 0x58, 0x43, 0x16, 0x90, 0x7e, 0x0d, 0x8b, 0x46, 0x6d, 0x20,
- 0x4a, 0x35, 0xac, 0x6b, 0xd5, 0x7b, 0x1a, 0xbd, 0xe7, 0x5e, 0xa2, 0x40, 0xf9, 0x06, 0xfe, 0x6a,
- 0x07, 0x15, 0x4e, 0xa8, 0xd6, 0x5f, 0xaa, 0x3b, 0xcb, 0xbd, 0x5e, 0x5a, 0x2c, 0x8a, 0x24, 0x2a,
- 0x0c, 0x24, 0x6f, 0xe3, 0x3b, 0xc1, 0xa6, 0xe6, 0xc8, 0xc7, 0x02, 0x88, 0x87, 0x7c, 0x50, 0x48,
- 0x48, 0x3b, 0x5f, 0x1b, 0x81, 0x04, 0x2b, 0x2d, 0x7a, 0x20, 0x1c, 0x7c, 0x26, 0xad, 0xe6, 0x76,
- 0x80, 0x06, 0x2a, 0x30, 0x24, 0x76, 0x1d, 0x50, 0x96, 0x36, 0x81, 0xdb, 0x7b, 0x88, 0xcf, 0x0c,
- 0xd7, 0x60, 0xe5, 0x86, 0x05, 0x6c, 0x13, 0x49, 0x74, 0xe6, 0xc7, 0x2e, 0xbc, 0x57, 0xad, 0xc0,
- 0x69, 0xdc, 0x2c, 0x2f, 0xa2, 0x26, 0x44, 0x71, 0x11, 0xf3, 0xf2, 0x24, 0xc6, 0x3b, 0xa9, 0x7b,
- 0xee, 0xcf, 0x48, 0xb7, 0x50, 0x0f, 0xf3, 0x1a, 0x4c, 0x78, 0x2d, 0xa5, 0x91, 0x39, 0x42, 0x5d,
- 0xd8, 0x4d, 0xe1, 0x2d, 0x40, 0x0c, 0x7d, 0x77, 0x8e, 0x60, 0x24, 0x84, 0x6a, 0x34, 0xe9, 0x9a,
- 0x1b, 0x41, 0xb5, 0x4d, 0x08, 0xe0, 0x47, 0xd7, 0x61, 0x0c, 0xe5, 0xf1, 0x9c, 0xe7, 0xb4, 0x82,
- 0x77, 0x86, 0x24, 0xba, 0x28, 0xe6, 0x98, 0x0d, 0x26, 0x3c, 0xf7, 0xb3, 0xa9, 0xfd, 0x21, 0xcf,
- 0x91, 0x71, 0x26, 0x0e, 0xeb, 0xd6, 0xaf, 0x12, 0x5b, 0x7f, 0x67, 0xe6, 0xc2, 0x2d, 0x03, 0xe2,
- 0x73, 0x9a, 0x01, 0x5a, 0x80, 0x18, 0xfa, 0xee, 0xdf, 0xc0, 0x48, 0xcb, 0xd4, 0x68, 0x11, 0xf7,
- 0xe8, 0xdd, 0x9e, 0x27, 0xac, 0x8e, 0xa0, 0x69, 0x28, 0xfa, 0x2c, 0xe1, 0x33, 0x07, 0x6a, 0x79,
- 0xa1, 0xe1, 0x59, 0x04, 0x07, 0x54, 0x72, 0x0c, 0xfd, 0xe5, 0x6f, 0x83, 0x9b, 0x1e, 0x80, 0x01,
- 0x53, 0x7a, 0xea, 0x56, 0x89, 0xe4, 0x6c, 0xfa, 0x1b, 0x2c, 0xf9, 0x8d, 0xba, 0x4a, 0x52, 0xf4,
- 0xc9, 0x3a, 0xed, 0x13, 0x8f, 0xac, 0xcf, 0x35, 0x43, 0x29, 0xc2, 0xb9, 0xd3, 0x91, 0x25, 0x74,
- 0x8d, 0x25, 0xdd, 0xeb, 0x35, 0x69, 0x42, 0xfe, 0xf1, 0xce, 0xdc, 0x4d, 0x72, 0x40, 0x93, 0x4a,
- 0xe7, 0xf0, 0x9a, 0x8c, 0xe9, 0xee, 0xce, 0x57, 0xd2, 0x7c, 0xcf, 0x4b, 0xe5, 0x64, 0x2e, 0x23,
- 0x7f, 0xbe, 0x6e, 0xb9, 0xbb, 0xd9, 0x5c, 0x08, 0x17, 0x07, 0x4a, 0x43, 0x53, 0x14, 0x41, 0xbf,
- 0x86, 0x14, 0xfc, 0xa0, 0xd8, 0xf7, 0x4e, 0x23, 0xf2, 0xb4, 0x80, 0x9f, 0xd9, 0xb6, 0xe7, 0x28,
- 0x70, 0x93, 0x6a, 0x12, 0xfe, 0xb9, 0x32, 0x36, 0xed, 0x81, 0xa9, 0xe9, 0x85, 0x77, 0x05, 0xe5,
- 0x4e, 0x29, 0x89, 0x8b, 0x7d, 0x85, 0x78, 0x5e, 0x1e, 0xa2, 0x1d, 0x38, 0x84, 0x93, 0xce, 0x52,
- 0x1f, 0x5d, 0x90, 0xad, 0xa0, 0x1e, 0x25, 0x34, 0x98, 0xf0, 0x5a, 0x89, 0xe1, 0x72, 0x84, 0xba,
- 0x63, 0xea, 0x95, 0x5c, 0x65, 0x66, 0xb1, 0xe4, 0xbd, 0xb6, 0xf1, 0xe8, 0xe3, 0x79, 0xd1, 0x17,
- 0xe6, 0xf7, 0x02, 0xb4, 0xc3, 0x30, 0x37, 0x1f, 0x7d, 0x43, 0x90, 0x55, 0x6b, 0xd0, 0x22, 0x2d,
- 0xa7, 0xf3, 0x8f, 0x94, 0xfb, 0xd5, 0x21, 0x7f, 0x99, 0x67, 0x6e, 0xc7, 0x39, 0x20, 0xa8, 0x25,
- 0x35, 0x8b, 0xc2, 0xd2, 0x6e, 0xa2, 0x46, 0xb5, 0xf0, 0x59, 0xe8, 0x03, 0xaa, 0x12, 0xbf, 0xd5,
- 0x20, 0xe0, 0xeb, 0x0c, 0x09, 0xfc, 0x96, 0x14, 0xc4, 0xec, 0xb1, 0x46, 0x6e, 0x22, 0x43, 0x03,
- 0x0f, 0x2d, 0x04, 0xab, 0x45, 0x60, 0x6e, 0x3e, 0xfa, 0x86, 0xe3, 0xaa, 0xd6, 0x63, 0x44, 0x5a,
- 0x16, 0x62, 0x42, 0x96, 0x19, 0xff, 0x18, 0x79, 0x06, 0xf4, 0xb8, 0x67, 0x95, 0x2f, 0xe8, 0xc4,
- 0xf3, 0x9c, 0x2b, 0x6a, 0xa4, 0x6e, 0xe7, 0xbe, 0x49, 0xf6, 0xc9, 0x10, 0xaf, 0xe0, 0xde, 0xfb,
- 0xaf, 0xcb, 0xc5, 0x97, 0x68, 0xea, 0xe5, 0x7a, 0xa8, 0x5c, 0xd3, 0x37, 0xc3, 0xc9, 0xc8, 0x55,
- 0x22, 0xee, 0x18, 0x7c, 0x5d, 0x83, 0xa7, 0x84, 0x59, 0x92, 0x0f, 0x7a, 0xb1, 0x89, 0x5b, 0x1f,
- 0xb9, 0xa9, 0x87, 0x01, 0x71, 0x15, 0xfd, 0x03, 0xae, 0xa8, 0x6b, 0x50, 0x56, 0xe6, 0x20, 0x91,
- 0x1e, 0x5a, 0x08, 0x95, 0x8a, 0xc0, 0xdc, 0x7c, 0x37, 0xcf, 0x05, 0x97, 0x6f, 0xc6, 0x88, 0xb4,
- 0x25, 0xfb, 0x56, 0xd4, 0x8b, 0xdc, 0x0d, 0xbf, 0x92, 0x2f, 0x51, 0x20, 0x9d, 0x03, 0x7f, 0x35,
- 0xba, 0xa0, 0xec, 0x49, 0x0f, 0xb4, 0x35, 0xdb, 0x9c, 0xe9, 0x8a, 0x72, 0x07, 0xf9, 0x34, 0x83,
- 0xbd, 0xb5, 0xa2, 0xe1, 0xd9, 0xeb, 0x9f, 0xe0, 0x57, 0x54, 0xd4, 0x28, 0x2b, 0x73, 0x10, 0xa9,
- 0x8e, 0x2c, 0xb6, 0xa3, 0x4b, 0xc8, 0x8a, 0x26, 0xc3, 0x8f, 0x3d, 0x6f, 0x23, 0x5f, 0x87, 0x58,
- 0x5c, 0x57, 0xee, 0xfd, 0xcc, 0x84, 0x02, 0xc4, 0xe1, 0xaa, 0x1a, 0x27, 0x6c, 0x29, 0x16, 0xae,
- 0x41, 0x04, 0x8d, 0x20, 0x38, 0xe5, 0x16, 0x60, 0xe4, 0x24, 0xfe, 0x92, 0x52, 0xf0, 0x8a, 0x08,
- 0x6f, 0xce, 0xfa, 0xbf, 0x5e, 0xa7, 0x17, 0x02, 0x75, 0x71, 0xf3, 0x60, 0x64, 0x05, 0x81, 0x5f,
- 0x42, 0x0d, 0xe6, 0x68, 0x46, 0x44, 0xde, 0xb8, 0xd6, 0x65, 0x1f, 0xb0, 0x03, 0xef, 0x9e, 0x1a,
- 0x46, 0x11, 0xc3, 0x88, 0xee, 0xba, 0xbc, 0x5b, 0x2f, 0x99, 0xa0, 0xc8, 0x7e, 0x7a, 0xae, 0x22,
- 0x2b, 0xd1, 0xca, 0x47, 0xe4, 0x62, 0x9a, 0xc9, 0xc7, 0x96, 0xed, 0x94, 0xc5, 0xd4, 0x37, 0x61,
- 0xdc, 0x51, 0xc4, 0xcd, 0xe8, 0xf2, 0x1f, 0x94, 0x77, 0x9c, 0x9b, 0xfc, 0x17, 0xa1, 0xd9, 0xa2,
- 0xdf, 0x58, 0xaf, 0x85, 0x96, 0x53, 0xd7, 0x4c, 0x45, 0xdd, 0x7a, 0xde, 0x46, 0xbe, 0xcd, 0xb0,
- 0x43, 0x0a, 0x7e, 0x50, 0x6c, 0x9a, 0x27, 0xf0, 0x79, 0x5a, 0x40, 0xae, 0x8d, 0x5b, 0x92, 0x14,
- 0xe3, 0xec, 0xbf, 0x6c, 0x41, 0x10, 0xac, 0xb4, 0x2b, 0x80, 0x70, 0x33, 0x98, 0xf1, 0x1e, 0x1b,
- 0x29, 0xdf, 0x39, 0x37, 0xb0, 0x1d, 0xab, 0x59, 0x5a, 0xe8, 0x53, 0xa8, 0x1a, 0x7f, 0x2f, 0x7d,
- 0xb4, 0x8a, 0x70, 0xda, 0x60, 0x0a, 0xa2, 0xad, 0xc9, 0x50, 0x36, 0xc6, 0x5f, 0x2e, 0x7c, 0xd7,
- 0xcb, 0x34, 0x1e, 0x63, 0xdb, 0xd3, 0xfe, 0xa5, 0xde, 0x57, 0x7c, 0x85, 0x0c, 0x3a, 0x3d, 0x68,
- 0x32, 0x9e, 0x8c, 0x7a, 0xb8, 0xfd, 0xec, 0x8e, 0x3b, 0xe4, 0xb6, 0x59, 0x86, 0x98, 0x9b, 0xff,
- 0xda, 0x43, 0x12, 0x5d, 0x14, 0x73, 0x4c, 0xe7, 0x13, 0x1e, 0x9a, 0xb8, 0xb5, 0x9f, 0xf1, 0x86,
- 0xea, 0xd3, 0x6d, 0x57, 0xf8, 0xf1, 0x91, 0xf9, 0xb5, 0x84, 0x92, 0xdd, 0xec, 0xac, 0x72, 0x65,
- 0xbe, 0xbc, 0xc9, 0xa9, 0xa7, 0x4a, 0x57, 0x38, 0x65, 0x15, 0x35, 0x0a, 0x7a, 0x6c, 0x04, 0xbb,
- 0x03, 0x09, 0x6b, 0x48, 0x7e, 0xa1, 0xc8, 0xd8, 0x32, 0x41, 0xe1, 0x22, 0x51, 0x1f, 0x14, 0x12,
- 0xa5, 0xfd, 0x7c, 0xe4, 0xaf, 0xaa, 0x10, 0xef, 0x04, 0x19, 0xd0, 0xfb, 0xe6, 0x8b, 0xb0, 0x39,
- 0xa4, 0xfa, 0xe4, 0xdc, 0x85, 0x74, 0xe9, 0xa7, 0xab, 0x26, 0x8f, 0xe5, 0x68, 0x3f, 0xbc, 0x37,
- 0xab, 0xd7, 0xe0, 0x77, 0xc0, 0x14, 0x87, 0x99, 0x51, 0xa0, 0x6c, 0x4f, 0xbe, 0x5c, 0xf8, 0x6d,
- 0x64, 0xff, 0xdb, 0xf4, 0xb3, 0x39, 0x1b, 0xdf, 0x76, 0x0b, 0xaf, 0xb2, 0xcf, 0xf3, 0xf5, 0x3d,
- 0xad, 0xc5, 0x36, 0xe7, 0x3c, 0x95, 0xd4, 0xea, 0x35, 0x22, 0x6d, 0x0b, 0x1c, 0x62, 0xd0, 0x49,
- 0x4f, 0x2e, 0x11, 0xb3, 0x57, 0x5b, 0x81, 0x16, 0xb1, 0x9d, 0x42, 0x26, 0x0a, 0x27, 0xc2, 0x5c,
- 0x85, 0x1d, 0x97, 0xe8, 0xa6, 0x56, 0x86, 0xfb, 0xc0, 0xf5, 0x61, 0xbd, 0x88, 0xa9, 0xf3, 0x3a,
- 0xa0, 0xe6, 0xc1, 0x3c, 0x2d, 0x8a, 0x8b, 0x44, 0x52, 0xda, 0x30, 0x9d, 0x15, 0xaa, 0x8c, 0x0f,
- 0x13, 0x79, 0xff, 0x4e, 0x9b, 0xdf, 0x83, 0xd2, 0x50, 0x37, 0x58, 0x01, 0x66, 0x0e, 0xd4, 0xf2,
- 0xd4, 0x69, 0x8e, 0xce, 0x7b, 0xcd, 0xdb, 0x91, 0x46, 0xa7, 0x26, 0x0c, 0xed, 0x48, 0xb9, 0xd2,
- 0xfb, 0xa4, 0x61, 0x69, 0x37, 0x51, 0x23, 0xbb, 0x78, 0xcd, 0x74, 0xe0, 0x55, 0x09, 0xbe, 0x8b,
- 0xae, 0xcc, 0x5d, 0xaf, 0x42, 0x34, 0x1c, 0x32, 0x07, 0x63, 0x8c, 0x29, 0x4d, 0x7d, 0xc4, 0x5b,
- 0x94, 0x6a, 0x9b, 0xd6, 0x69, 0xf6, 0x34, 0xb9, 0x0d, 0xbc, 0x87, 0x80, 0x31, 0x0c, 0x3f, 0xd4,
- 0xde, 0x5f, 0x37, 0xbd, 0xbc, 0x8d, 0x2e, 0x04, 0xea, 0xe2, 0x25, 0xc0, 0xc8, 0x0a, 0xc1, 0xbe,
- 0xbb, 0xa7, 0x74, 0x71, 0x25, 0x6a, 0xcc, 0x93, 0x33, 0xd6, 0xd5, 0x6c, 0x89, 0x4d, 0x38, 0x8d,
- 0xce, 0x2f, 0xa3, 0xbb, 0x59, 0xf3, 0x65, 0x0e, 0x88, 0x94, 0x9c, 0xe3, 0xff, 0x1b, 0x01, 0x5e,
- 0xa2, 0xe8, 0x32, 0x4c, 0x79, 0xf5, 0xba, 0xd4, 0xcf, 0xa4, 0x8e, 0xa1, 0xca, 0x01, 0x94, 0x13,
- 0xf1, 0x92, 0xd8, 0x1a, 0xf0, 0x11, 0xd6, 0x2e, 0xd4, 0x88, 0x77, 0x2c, 0x70, 0x4b, 0xc6, 0xe7,
- 0x3d, 0xb3, 0x88, 0xd1, 0xfd, 0x9d, 0x82, 0xb0, 0xc1, 0x62, 0x55, 0xf3, 0x50, 0xfb, 0xdf, 0xa5,
- 0xb6, 0x84, 0x83, 0xaa, 0x34, 0x75, 0x93, 0x3d, 0x54, 0x2e, 0x88, 0xfa, 0x80, 0x85, 0x64, 0xcb,
- 0x61, 0xe4, 0x66, 0x2c, 0x31, 0x19, 0x80, 0x74, 0x20, 0xc8, 0x4f, 0xd4, 0x3c, 0xd2, 0xc9, 0x0b,
- 0x36, 0x82, 0xa9, 0x9a, 0x10, 0x03, 0x8e, 0x6d, 0xc2, 0x18, 0x09, 0x21, 0xfb, 0x0d, 0xab, 0xc7,
- 0xec, 0xc1, 0xbb, 0xc7, 0x04, 0x70, 0xc2, 0x8a, 0xd1, 0x06, 0x93, 0x99, 0x4e, 0x92, 0x5a, 0x41,
- 0xc8, 0x3d, 0x75, 0x2b, 0xa5, 0x72, 0x36, 0x7d, 0xec, 0x16, 0x9d, 0xa7, 0x5d, 0x25, 0x29, 0x7a,
- 0x52, 0x7d, 0x72, 0x6e, 0xa3, 0x3a, 0x95, 0xb2, 0xb4, 0x13, 0xa6, 0x93, 0x34, 0xfe, 0x5e, 0xfa,
- 0xb2, 0x98, 0xa6, 0x4a, 0x9c, 0x8b, 0xf1, 0xde, 0xad, 0xd2, 0x37, 0x82, 0xfd, 0x10, 0x54, 0xf3,
- 0xd0, 0x75, 0xab, 0x2e, 0xd3, 0x33, 0xb9, 0x72, 0xbf, 0x5b, 0x99, 0x74, 0x90, 0xdd, 0x89, 0xea,
- 0x72, 0x9d, 0x99, 0x62, 0xaa, 0xc6, 0x03, 0xa6, 0x70, 0xff, 0x17, 0xd5, 0x5a, 0xdc, 0x1d, 0xf9,
- 0xeb, 0xd4, 0xf5, 0x6f, 0xd2, 0x2f, 0x68, 0xb1, 0x1a, 0xbb, 0xcd, 0xc3, 0x62, 0x18, 0x7e, 0x6b,
- 0x96, 0x64, 0x68, 0xa6, 0x3d, 0x89, 0x05, 0x29, 0x90, 0xc2, 0x39, 0xbc, 0xee, 0xa7, 0x27, 0xc8,
- 0x0e, 0x2a, 0x9c, 0x93, 0x6f, 0xbe, 0x97, 0x76, 0x55, 0xb9, 0xbc, 0xb4, 0x58, 0xd7, 0x48, 0x54,
- 0xe2, 0xeb, 0x27, 0x54, 0x6b, 0xce, 0x55, 0xfc, 0x84, 0xbf, 0x2f, 0x2d, 0x16, 0x45, 0x12, 0x15,
- 0x56, 0x61, 0x57, 0x8e, 0x0b, 0xc4, 0xf7, 0x51, 0x4d, 0xef, 0x19, 0xeb, 0x49, 0x6b, 0x6e, 0xc2,
- 0x4c, 0x27, 0x7a, 0xfb, 0x29, 0xfa, 0x49, 0xce, 0x83, 0xdc, 0xa3, 0x04, 0x5b, 0x38, 0xd6, 0x4e,
- 0x40, 0x03, 0x15, 0x18, 0x12, 0x3b, 0xef, 0x28, 0x4b, 0x1b, 0xa1, 0x8c, 0xdc, 0x44, 0x86, 0x06,
- 0x37, 0x85, 0x31, 0xa2, 0x3a, 0xdd, 0x77, 0x25, 0x6d, 0x27, 0x56, 0x3f, 0x75, 0xb9, 0xa7, 0xc9,
- 0x92, 0x78, 0x4d, 0x46, 0x95, 0x77, 0x67, 0xca, 0x69, 0x3e, 0x86, 0xc4, 0x93, 0x32, 0x17, 0xf0,
- 0x44, 0x1f, 0x30, 0xf8, 0xba, 0xc5, 0x8d, 0xcb, 0xb2, 0xe7, 0x1e, 0xf4, 0xa1, 0xd1, 0xb6, 0x3e,
- 0x8f, 0x2b, 0x2e, 0x9b, 0x61, 0x16, 0x73, 0x6e, 0x6c, 0xb0, 0x62, 0x71, 0xad, 0xeb, 0x8b, 0x56,
- 0x59, 0x4c, 0x53, 0x25, 0x4e, 0xa4, 0x99, 0x6f, 0xb7, 0x69, 0xfa, 0x41, 0x9f, 0x08, 0x2a, 0x98,
- 0xdb, 0x44, 0x8a, 0x65, 0x3e, 0xad, 0xb5, 0xaf, 0xbc, 0x21, 0xc5, 0xa6, 0x3b, 0x2b, 0xfd, 0x88,
- 0x6d, 0xc0, 0x09, 0xcf, 0x0a, 0xd8, 0x26, 0x92, 0xe8, 0x0f, 0x4d, 0x5c, 0xbb, 0xae, 0x99, 0x43,
- 0x8c, 0x22, 0x45, 0xd3, 0x1f, 0xb7, 0xbb, 0xb6, 0x5e, 0xf1, 0x83, 0x53, 0xfc, 0xf4, 0x9f, 0x44,
- 0xd3, 0x7c, 0xc0, 0x66, 0xad, 0x92, 0x71, 0xaa, 0x8d, 0x1a, 0x78, 0x56, 0xc1, 0xc2, 0x9d, 0xf8,
- 0x88, 0x3e, 0x60, 0x33, 0xb7, 0x49, 0xd9, 0x55, 0xa7, 0x0d, 0x3c, 0x2b, 0x81, 0x61, 0xaf, 0x7c,
- 0x47, 0x16, 0x5b, 0xb0, 0xc4, 0x64, 0x45, 0x13, 0x80, 0xa6, 0xff, 0xd6, 0xf0, 0xce, 0xa2, 0x2c,
- 0xe5, 0xfe, 0x69, 0xfc, 0xbd, 0x91, 0xff, 0xc7, 0x4f, 0x02, 0x71, 0x77, 0x3a, 0xcf, 0x36, 0x3f,
- 0x2f, 0xcd, 0xef, 0xa7, 0x4c, 0x9c, 0xf8, 0x2a, 0x3e, 0x6a, 0x52, 0xec, 0xb8, 0x41, 0x07, 0x59,
- 0x12, 0x7e, 0x67, 0x76, 0xb1, 0x01, 0x7a, 0x9a, 0xff, 0x08, 0x07, 0x1f, 0xe8, 0xba, 0xd8, 0xfc,
- 0x8b, 0x37, 0x0b, 0x7b, 0xc9, 0xe8, 0x11, 0x8d, 0x95, 0x4c, 0xdd, 0x09, 0xd0, 0x7e, 0xbb, 0x6e,
- 0x11, 0x77, 0x0c, 0x3e, 0xcf, 0xa0, 0xb2, 0x42, 0xcd, 0x49, 0xe6, 0x3d, 0xb9, 0xa5, 0xcc, 0xee,
- 0x54, 0x6f, 0xa4, 0xfe, 0x5f, 0xbb, 0xc6, 0xc1, 0xd0, 0x91, 0xa7, 0xd7, 0x96, 0xc0, 0x76, 0xde,
- 0xa8, 0xde, 0x8b, 0x3f, 0xbe, 0xb5, 0x4f, 0x41, 0x63, 0xe1, 0x8d, 0x6d, 0xef, 0x43, 0xec, 0x7f,
- 0x87, 0x13, 0x64, 0x98, 0xf2, 0x29, 0xb7, 0x6b, 0x5d, 0x8b, 0xdf, 0x81, 0x57, 0x02, 0xeb, 0x26,
- 0x2d, 0xc3, 0x1c, 0xd7, 0x18, 0xe3, 0xc9, 0xba, 0xa3, 0x14, 0xec, 0xd0, 0x67, 0xea, 0x1f, 0x45,
- 0x5d, 0x50, 0x76, 0xc5, 0xe6, 0x5a, 0xfb, 0x8c, 0x4e, 0x95, 0x45, 0x39, 0xe2, 0x9d, 0x1a, 0xa0,
- 0x9d, 0x55, 0x49, 0xed, 0xd0, 0x17, 0x09, 0xf4, 0x93, 0xb8, 0x65, 0x6e, 0x45, 0x51, 0x53, 0xaa,
- 0x39, 0xaf, 0xad, 0x31, 0x55, 0x63, 0xe0, 0x53, 0x38, 0x9e, 0xea, 0x8b, 0x2d, 0x6e, 0xef, 0x9d,
- 0x5f, 0x5e, 0x85, 0xb5, 0xb2, 0x25, 0xca, 0x1c, 0xd3, 0xeb, 0xfb, 0x05, 0x3d, 0x36, 0x02, 0xbc,
- 0x26, 0xf2, 0x3d, 0x9c, 0xf5, 0x7d, 0xc5, 0x67, 0xa0, 0x6e, 0xb0, 0x02, 0xcc, 0x1c, 0x6b, 0x27,
- 0x05, 0x1b, 0xbd, 0xd8, 0x82, 0x20, 0x9b, 0xab, 0x56, 0xc3, 0xe0, 0x66, 0xf3, 0x21, 0x3c, 0x36,
- 0xd5, 0x6e, 0x16, 0xf6, 0x51, 0x13, 0x22, 0xd9, 0xe9, 0x98, 0x79, 0x12, 0x63, 0xfc, 0xb5, 0xdc,
- 0xfc, 0xb1, 0x2f, 0xc1, 0xe1, 0x0e, 0x89, 0x80, 0xb3, 0x70, 0x2a, 0xba, 0x79, 0x83, 0x9a, 0xa1,
- 0x19, 0x4f, 0x46, 0x3d, 0x5c, 0x9f, 0x76, 0x47, 0xfc, 0x72, 0x5b, 0xcd, 0x43, 0x4c, 0xac, 0x9e,
- 0x09, 0x3f, 0xd2, 0x3b, 0xb9, 0xe1, 0x3d, 0x4d, 0x9e, 0x04, 0xe2, 0xee, 0x74, 0x5d, 0x6c, 0x7e,
- 0xb3, 0x9f, 0x3e, 0x72, 0xb6, 0x55, 0x08, 0x96, 0x02, 0xed, 0x68, 0x9c, 0x73, 0xa4, 0x58, 0xfd,
- 0xfa, 0xa3, 0xf9, 0x51, 0x1d, 0x8f, 0xda, 0xf3, 0xd7, 0xf2, 0x2b, 0xfe, 0xdb, 0xbd, 0xb2, 0x85,
- 0xef, 0xc8, 0xd0, 0x8f, 0x7a, 0xd1, 0x0a, 0x52, 0xe3, 0x47, 0x72, 0xbb, 0x1f, 0x8d, 0x4e, 0x53,
- 0x0a, 0x36, 0xb9, 0x73, 0xc7, 0x40, 0xf5, 0x95, 0xac, 0x45, 0x03, 0xcc, 0x25, 0x42, 0x78, 0x6c,
- 0x30, 0x90, 0x7f, 0x0a, 0xec, 0x82, 0xdd, 0x1e, 0xa6, 0x9a, 0x08, 0x65, 0x59, 0x33, 0x83, 0xe3,
- 0xcd, 0x26, 0xc8, 0xf3, 0x27, 0x52, 0xad, 0xd6, 0xba, 0xd5, 0x7d, 0xc1, 0xae, 0x04, 0x15, 0x4c,
- 0xd6, 0x67, 0x7d, 0xbe, 0x2f, 0xb2, 0xea, 0x01, 0xdb, 0xd9, 0x98, 0x30, 0x32, 0xe3, 0xa1, 0xce,
- 0x6b, 0xd2, 0xdf, 0x5f, 0xf6, 0x59, 0x75, 0xe1, 0x8c, 0x8d, 0x4c, 0x18, 0x19, 0x90, 0xb1, 0x67,
- 0x08, 0x38, 0x4a, 0x03, 0x93, 0x3f, 0xc4, 0x05, 0x31, 0x3b, 0xbd, 0xf0, 0xfa, 0xe9, 0x60, 0x70,
- 0xb5, 0x8d, 0xe8, 0xe2, 0x4a, 0xd4, 0x5b, 0xe5, 0x66, 0x6f, 0x69, 0xd8, 0xd1, 0x9a, 0x70, 0xd9,
- 0x6e, 0xc9, 0x62, 0x87, 0x74, 0x79, 0xee, 0x4a, 0xda, 0x4e, 0xac, 0x7e, 0xea, 0xb1, 0x8d, 0x51,
- 0x65, 0xf8, 0x43, 0xcc, 0x99, 0xe7, 0xe2, 0x97, 0xd9, 0x34, 0xf0, 0xac, 0x41, 0x47, 0xf9, 0x33,
- 0xf5, 0x8e, 0xfd, 0xfa, 0x58, 0xef, 0xb4, 0xcd, 0x2d, 0x74, 0xc8, 0x54, 0x0d, 0xde, 0xf6, 0xdf,
- 0xaa, 0xd0, 0x78, 0x4f, 0xea, 0xca, 0x7e, 0xd1, 0xfe, 0x9f, 0x33, 0x51, 0x30, 0xe8, 0xf4, 0x63,
- 0x74, 0x8f, 0x4f, 0xf2, 0x56, 0x47, 0x50, 0xd5, 0x14, 0x7d, 0x16, 0x91, 0xf8, 0xe2, 0x35, 0xdd,
- 0x4b, 0x32, 0x34, 0x53, 0xff, 0xa5, 0xe3, 0xf5, 0x48, 0x61, 0xfd, 0x5e, 0x77, 0xb2, 0xf2, 0x64,
- 0xff, 0xb8, 0x44, 0x89, 0x9f, 0xaf, 0x41, 0x58, 0x81, 0x31, 0xcb, 0x98, 0x28, 0x9c, 0x8e, 0xb3,
- 0x81, 0x01, 0xb2, 0x08, 0x0e, 0xa8, 0xe4, 0x18, 0x39, 0x09, 0xde, 0xc5, 0xf5, 0x3c, 0xc3, 0x02,
- 0xc1, 0x02, 0xa7, 0x10, 0x1c, 0x93, 0x0b, 0x30, 0x72, 0x12, 0x7f, 0x49, 0x29, 0x78, 0x45, 0x04,
- 0xd1, 0x72, 0x33, 0x16, 0xf9, 0xed, 0x40, 0x3a, 0x10, 0x64, 0xc6, 0x6a, 0x1e, 0x69, 0x85, 0xe4,
- 0x28, 0xd8, 0xa1, 0x0f, 0x9a, 0xc3, 0x52, 0x11, 0xf5, 0xd7, 0x0c, 0xb6, 0x94, 0xcb, 0x23, 0x73,
- 0xb1, 0x91, 0xcd, 0x02, 0xe2, 0x2a, 0x39, 0x06, 0x9f, 0x93, 0xd6, 0xa0, 0xac, 0x0f, 0x40, 0xe1,
- 0x9b, 0x47, 0x9f, 0x7d, 0x2c, 0x96, 0x5a, 0x87, 0xf7, 0x3a, 0x64, 0x2a, 0xe7, 0x6f, 0x7b, 0x8e,
- 0xdd, 0x56, 0x5c, 0xf5, 0xc2, 0x2c, 0xe6, 0xdc, 0xd8, 0xa3, 0xc4, 0xe2, 0x99, 0x15, 0xd5, 0xac,
- 0x23, 0xe9, 0x80, 0x44, 0x77, 0x5d, 0x5e, 0xcc, 0xf6, 0xad, 0x50, 0x64, 0x3f, 0x3d, 0x57, 0x11,
- 0x3f, 0xbd, 0x7b, 0xa1, 0xa9, 0xe2, 0xb3, 0x20, 0x5c, 0x1c, 0xeb, 0xcf, 0x8f, 0x50, 0xc7, 0xb9,
- 0x02, 0x0e, 0xf3, 0x70, 0x54, 0x7f, 0x31, 0x90, 0x9d, 0x7e, 0xbe, 0x3c, 0xdf, 0xab, 0x18, 0x1c,
- 0x10, 0x70, 0x94, 0x06, 0xe5, 0x7e, 0x4b, 0x0a, 0x62, 0x76, 0xb9, 0x23, 0x37, 0x11, 0xc0, 0xe0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x1a, 0x46, 0x2d, 0x75, 0x22, 0x3e, 0xbe, 0x9f, 0xce, 0x33, 0xba, 0xef, 0x12, 0x53, 0xb8, 0x8c,
- 0x60, 0xe3, 0xfe, 0x14, 0x1b, 0xc7, 0x79, 0x3c, 0x8f, 0xf7, 0x10, 0xca, 0xb2, 0x66, 0xc5, 0x05,
- 0x5a, 0x45, 0x38, 0x6d, 0x30, 0x05, 0x51, 0xb7, 0x85, 0x28, 0x1b, 0x63, 0xce, 0x17, 0x3e, 0x8a,
- 0x3e, 0xba, 0xe3, 0x99, 0x83, 0x3c, 0x4a, 0x68, 0xf3, 0x23, 0xb4, 0xd1, 0x01, 0xe4, 0xcb, 0xb7,
- 0x6a, 0xd5, 0x47, 0x67, 0xdc, 0x87, 0x8c, 0xa9, 0x23, 0xb2, 0x13, 0x06, 0x97, 0x24, 0xbd, 0x69,
- 0x71, 0x94, 0xf2, 0x2a, 0xd4, 0x67, 0xcb, 0x7e, 0x42, 0xbe, 0xf6, 0xf7, 0x0b, 0xc3, 0x09, 0xeb,
- 0x75, 0x88, 0xd7, 0xca, 0x7c, 0x99, 0xa9, 0x9d, 0xbb, 0x42, 0x49, 0x8f, 0x76, 0x56, 0x39, 0xd3,
- 0xb7, 0x83, 0x1b, 0x92, 0x1e, 0xab, 0x6a, 0x75, 0xfb, 0x11, 0xd7, 0xe4, 0x0e, 0x31, 0x68, 0xc5,
- 0x7a, 0xa5, 0xd3, 0x61, 0x39, 0xf9, 0xc7, 0xa3, 0x41, 0xc4, 0xaa, 0x25, 0xa0, 0x35, 0x7d, 0x89,
- 0xd9, 0x4a, 0x79, 0x15, 0x6a, 0xd2, 0x84, 0x3f, 0x21, 0x5f, 0x7b, 0x9a, 0xe4, 0x80, 0xe5, 0x94,
- 0x6c, 0xc7, 0x91, 0xf7, 0x20, 0x06, 0xdf, 0xda, 0x47, 0x30, 0x12, 0x42, 0x35, 0x1a, 0x95, 0x4d,
- 0x93, 0x7f, 0xd5, 0x7e, 0xbf, 0xa9, 0x9e, 0x82, 0xc6, 0x01, 0xd9, 0xda, 0x1d, 0x86, 0x1b, 0xfe,
- 0x45, 0x18, 0xa8, 0xc0, 0x90, 0x1b, 0x74, 0x83, 0x1d, 0xd8, 0x41, 0xea, 0x2f, 0x65, 0xba, 0x30,
- 0x9a, 0x40, 0x07, 0x45, 0x06, 0x48, 0xa3, 0xcf, 0x58, 0x05, 0x3b, 0x34, 0x69, 0xdb, 0x77, 0x80,
- 0x89, 0x39, 0xf8, 0x0b, 0x9d, 0x97, 0x20, 0x1d, 0x08, 0x32, 0x63, 0x35, 0x0f, 0xd5, 0xa3, 0x72,
- 0x3a, 0xa6, 0xc6, 0x79, 0x2b, 0xc2, 0x28, 0x8b, 0x0a, 0xdf, 0x0b, 0xa9, 0x7c, 0x71, 0xfb, 0x8f,
- 0x78, 0xab, 0x20, 0x11, 0x6d, 0x86, 0xf6, 0x33, 0xdc, 0xba, 0x14, 0x19, 0x7f, 0x9e, 0x65, 0x95,
- 0x1d, 0x53, 0x63, 0xdd, 0xf4, 0x61, 0x14, 0xa4, 0x05, 0x8e, 0xe4, 0xb5, 0x3e, 0xd9, 0x9c, 0xa6,
- 0x8a, 0x30, 0x93, 0x43, 0xe3, 0x36, 0xe8, 0xc5, 0x3a, 0x73, 0x82, 0x17, 0x5e, 0xca, 0xb7, 0x60,
- 0x97, 0x63, 0xf0, 0x9e, 0x17, 0x57, 0xfc, 0x61, 0x3f, 0xfd, 0x66, 0xa2, 0x60, 0x13, 0x2b, 0xc6,
- 0xf8, 0xad, 0x0a, 0x21, 0x49, 0xf0, 0xeb, 0x63, 0x4a, 0x8c, 0x95, 0xc2, 0x04, 0x16, 0xaa, 0x99,
- 0xf9, 0xaa, 0x92, 0x19, 0x63, 0x2e, 0x12, 0x2b, 0xe5, 0xb3, 0xca, 0xdc, 0x8a, 0xa2, 0xa6, 0x97,
- 0x58, 0x4b, 0xcb, 0x1d, 0x64, 0x7a, 0x60, 0x27, 0x18, 0x56, 0xa5, 0x5f, 0x11, 0xbc, 0x26, 0x96,
- 0x2c, 0xc4, 0x84, 0xef, 0x32, 0x3d, 0x30, 0xf2, 0x0c, 0x2b, 0xb3, 0xce, 0xe9, 0x5e, 0x13, 0x4b,
- 0x06, 0x12, 0xd6, 0x90, 0xfc, 0x81, 0x53, 0x73, 0x64, 0x82, 0x01, 0x44, 0xa2, 0x3e, 0x28, 0x24,
- 0xbc, 0xb2, 0x3a, 0xd9, 0xf3, 0x35, 0x66, 0xa8, 0xf8, 0x6b, 0x8b, 0x36, 0xa5, 0xc7, 0x1c, 0xa7,
- 0x9c, 0x52, 0xd1, 0xd5, 0xfa, 0xc9, 0xf0, 0xbc, 0x3c, 0x87, 0x3a, 0x70, 0xcb, 0xe5, 0x5f, 0xa4,
- 0x55, 0x68, 0x3c, 0xc6, 0x75, 0x65, 0x3f, 0x89, 0x7f, 0xae, 0xf8, 0xc9, 0x18, 0x74, 0x7a, 0xd0,
- 0x7c, 0xb7, 0x05, 0xf1, 0xc5, 0x78, 0x94, 0xd0, 0x25, 0x46, 0xab, 0x61, 0x02, 0x0b, 0x55, 0xad,
- 0x2a, 0xd6, 0x52, 0x7f, 0xce, 0xbc, 0x63, 0x81, 0x68, 0xa9, 0xb2, 0x8a, 0x4b, 0x60, 0x3b, 0x6f,
- 0x3b, 0xa1, 0x5e, 0x41, 0x01, 0x1c, 0xd1, 0xc3, 0xa5, 0xe0, 0x54, 0xb7, 0xf2, 0xc5, 0xf7, 0x81,
- 0x9f, 0x5b, 0xba, 0x9d, 0x84, 0x68, 0x38, 0x64, 0x0e, 0xc6, 0xdb, 0x52, 0x9a, 0xfa, 0x4b, 0xb6,
- 0xc6, 0x17, 0xe9, 0xb8, 0xca, 0xcc, 0xa1, 0x0b, 0xb9, 0xaf, 0x21, 0x13, 0x05, 0xf2, 0x61, 0x2e,
- 0x1c, 0x54, 0xfb, 0xe5, 0xde, 0xbf, 0xed, 0xec, 0xaa, 0xb1, 0xbb, 0xab, 0xb0, 0x6d, 0x90, 0xa8,
- 0xfe, 0xbf, 0xdc, 0xb1, 0xb5, 0x71, 0xb8, 0x10, 0x2e, 0x0e, 0x94, 0x86, 0xa6, 0x28, 0x82, 0xbd,
- 0x62, 0xed, 0x0d, 0x64, 0x4f, 0xb8, 0x48, 0xac, 0x12, 0x89, 0xae, 0xf6, 0x6d, 0xcd, 0xdd, 0x19,
- 0x7d, 0xb0, 0x9d, 0xc9, 0xef, 0xa6, 0x6d, 0x98, 0x8a, 0x79, 0xf4, 0x7f, 0x8c, 0xbf, 0x59, 0xa3,
- 0x21, 0xe7, 0x73, 0x34, 0x23, 0x22, 0x6f, 0x5c, 0x6b, 0xd3, 0xee, 0x58, 0xe0, 0x96, 0x4f, 0x0d,
- 0xc0, 0x05, 0x3f, 0x28, 0x36, 0x4d, 0xf2, 0x78, 0xdd, 0x2d, 0x20, 0x57, 0xa7, 0xcc, 0x49, 0x0a,
- 0xf2, 0x9b, 0xb3, 0x52, 0x8e, 0xb0, 0x1e, 0xf6, 0xe6, 0xc9, 0x96, 0x0e, 0x21, 0x54, 0xd2, 0xf5,
- 0xf7, 0x80, 0x0e, 0x8a, 0x0c, 0x90, 0x85, 0x5d, 0xb0, 0x0a, 0x76, 0x68, 0xd2, 0x75, 0xee, 0xc3,
- 0x33, 0x99, 0x14, 0x42, 0x92, 0x23, 0x15, 0xc6, 0x94, 0xdb, 0xe9, 0x47, 0x08, 0x2c, 0x97, 0xf1,
- 0x98, 0x4e, 0xf4, 0x35, 0x52, 0x37, 0x92, 0x5f, 0xc5, 0x7b, 0x85, 0x08, 0xb6, 0x70, 0x6f, 0x9c,
- 0xa9, 0xd9, 0x13, 0x07, 0x94, 0x6b, 0xb6, 0x09, 0xcc, 0xde, 0xd2, 0x73, 0x61, 0xf7, 0xe0, 0x71,
- 0x82, 0x08, 0xd9, 0x40, 0x70, 0x09, 0x2c, 0xc0, 0x0b, 0x48, 0x3f, 0xe7, 0xa4, 0x23, 0xd7, 0x10,
- 0x4d, 0x20, 0xe2, 0xc3, 0x03, 0x24, 0xb0, 0x86, 0x2c, 0xe3, 0xfc, 0x1a, 0xd5, 0x8c, 0xda, 0x40,
- 0xf4, 0x89, 0x65, 0xc2, 0x72, 0x31, 0x4d, 0x85, 0x82, 0x4b, 0x97, 0x4a, 0x83, 0x6a, 0xfa, 0xd1,
- 0xf6, 0x87, 0x96, 0xb2, 0x26, 0x4e, 0x7c, 0x15, 0x1f, 0x35, 0x29, 0x76, 0x5c, 0xc1, 0xe2, 0xcd,
- 0x14, 0x6c, 0xb1, 0xe6, 0x4d, 0x80, 0x29, 0xe9, 0x9b, 0x8a, 0x06, 0x5b, 0x4a, 0x84, 0xf0, 0xd8,
- 0x7b, 0xa2, 0x4b, 0x59, 0x13, 0x27, 0x3e, 0xeb, 0xee, 0xfb, 0xf5, 0x3b, 0x2e, 0x81, 0x71, 0x87,
- 0x79, 0xac, 0xb8, 0x29, 0x47, 0x58, 0x0f, 0x7b, 0x73, 0x85, 0x4b, 0x07, 0xf1, 0x2a, 0x69, 0x9b,
- 0x17, 0x65, 0xda, 0xae, 0x33, 0x21, 0xe1, 0x31, 0xa9, 0xcb, 0xe7, 0x79, 0x1b, 0x9b, 0xe4, 0xca,
- 0xf0, 0x95, 0x40, 0x22, 0xda, 0xcf, 0x2f, 0x66, 0x7b, 0xb7, 0x28, 0x32, 0xfe, 0xff, 0xca, 0xe9,
- 0xbf, 0xbb, 0x51, 0x91, 0x8d, 0x94, 0xae, 0x70, 0xca, 0x2a, 0x6a, 0x14, 0xf4, 0xd8, 0x08, 0xb5,
- 0xcf, 0x28, 0x3b, 0x83, 0x73, 0x2d, 0x9c, 0x46, 0x27, 0xab, 0xc3, 0xfd, 0x71, 0xaf, 0x0d, 0x50,
- 0x01, 0x07, 0x98, 0x38, 0x2a, 0xde, 0xf9, 0x48, 0xaf, 0x3f, 0x5f, 0x1e, 0x8e, 0xb4, 0x0c, 0x0e,
- 0xed, 0xc6, 0x23, 0xff, 0x2e, 0xae, 0x3b, 0xc2, 0x7e, 0x39, 0xcc, 0x87, 0xc0, 0x26, 0x56, 0x4f,
- 0xcc, 0x21, 0x50, 0xcb, 0x0d, 0x8c, 0x54, 0x9e, 0x15, 0xea, 0x22, 0xdf, 0x20, 0xb0, 0x19, 0x42,
- 0x15, 0x6b, 0x29, 0xde, 0x67, 0x5e, 0xd0, 0xa1, 0x34, 0xb5, 0x59, 0x45, 0xc4, 0x30, 0xfc, 0xd6,
- 0x27, 0xf5, 0xa5, 0xa4, 0xdf, 0xa3, 0x3c, 0x2f, 0x0f, 0x51, 0xef, 0x1c, 0x42, 0xa8, 0x67, 0x29,
- 0xa3, 0xef, 0xaa, 0x74, 0x53, 0x2b, 0x43, 0x9c, 0x60, 0x9b, 0xd1, 0xbf, 0x44, 0xb5, 0x98, 0x1d,
- 0x0b, 0x31, 0x21, 0x4b, 0xed, 0x9e, 0x0c, 0xdd, 0x03, 0x7a, 0x5c, 0xd2, 0xab, 0xf6, 0x74, 0x62,
- 0x38, 0xa8, 0x35, 0x09, 0x7f, 0xbd, 0x19, 0x1b, 0x97, 0xa1, 0xb5, 0x95, 0xa3, 0xda, 0xe3, 0x93,
- 0x57, 0x66, 0xcf, 0xb6, 0x21, 0x1a, 0x0e, 0x19, 0xe2, 0xd0, 0x46, 0xf5, 0xc7, 0xdf, 0x62, 0xcc,
- 0x67, 0xf6, 0xb0, 0xbc, 0xcd, 0x98, 0xd3, 0x07, 0x44, 0x4a, 0x4e, 0x90, 0x9e, 0xec, 0xe1, 0x2f,
- 0x83, 0x0f, 0x41, 0x78, 0x5a, 0xd7, 0xd5, 0x88, 0xa4, 0x77, 0x60, 0xf9, 0x2a, 0x97, 0xdb, 0x1e,
- 0x3c, 0xb4, 0x10, 0xe9, 0xd7, 0x43, 0x7b, 0xf8, 0x6e, 0x5d, 0x0a, 0xed, 0xde, 0x4f, 0xd3, 0xab,
- 0xfd, 0xb6, 0xb7, 0xf9, 0xcb, 0xd0, 0x70, 0xc8, 0x1c, 0x4f, 0x75, 0xa4, 0xf7, 0x37, 0x96, 0xaf,
- 0xac, 0xc2, 0xae, 0xdf, 0x16, 0x4b, 0x2d, 0xa2, 0x9a, 0x1d, 0x32, 0x15, 0x92, 0xd6, 0xdc, 0x47,
- 0x95, 0x6d, 0x03, 0xee, 0x43, 0x28, 0xcd, 0xf1, 0xa2, 0x83, 0xd8, 0x9e, 0xbf, 0xb8, 0x33, 0xda,
- 0x51, 0x74, 0x19, 0x26, 0xdd, 0x9b, 0x5d, 0x6a, 0x86, 0x52, 0x47, 0xb1, 0x65, 0xe1, 0x4a, 0xe8,
- 0xd2, 0x7b, 0x58, 0x5e, 0x87, 0x4c, 0x88, 0xe2, 0x22, 0x25, 0x27, 0x48, 0x4f, 0x76, 0x91, 0xf6,
- 0xe1, 0xe2, 0x4c, 0x1c, 0x15, 0x6f, 0x9d, 0x24, 0xb6, 0xfe, 0xce, 0x0f, 0x47, 0x5a, 0x06, 0x07,
- 0xe4, 0xf9, 0xf1, 0xc4, 0x97, 0x4f, 0x06, 0x8f, 0xe0, 0x3d, 0x2e, 0x69, 0xb4, 0x7b, 0x3a, 0x31,
- 0xa6, 0xf4, 0x17, 0xac, 0xd1, 0x0b, 0xd8, 0x37, 0x36, 0x58, 0x31, 0xd9, 0xb7, 0x94, 0xa4, 0x2b,
- 0x2e, 0xca, 0x77, 0x9f, 0x66, 0x42, 0x01, 0x62, 0x91, 0x55, 0x0d, 0xf2, 0x36, 0xf5, 0x0b, 0x57,
- 0x9e, 0x5c, 0x22, 0xa5, 0xae, 0xb6, 0xc1, 0x2c, 0xa1, 0xf9, 0x84, 0x4c, 0x14, 0x4e, 0x47, 0xb8,
- 0xb0, 0x96, 0x55, 0x3a, 0xc8, 0xf4, 0xc0, 0x4e, 0x30, 0xac, 0x89, 0xbe, 0x22, 0xbb, 0x4c, 0xef,
- 0x04, 0x1c, 0x25, 0xe0, 0xa8, 0xfe, 0x62, 0xe3, 0xf9, 0xfc, 0xbf, 0x78, 0x7d, 0x95, 0x30, 0x38,
- 0xca, 0x33, 0x86, 0x5b, 0xf1, 0x0d, 0x07, 0xed, 0x71, 0x68, 0x23, 0x9b, 0x82, 0x8e, 0x31, 0x66,
- 0xe0, 0xe5, 0xd4, 0x24, 0x3f, 0xb1, 0x64, 0x6c, 0x19, 0xc1, 0x91, 0x11, 0xc9, 0xee, 0x0a, 0x09,
- 0x7e, 0xb9, 0xf6, 0x81, 0x91, 0x07, 0xa5, 0x40, 0xb8, 0x38, 0x15, 0x5d, 0xdd, 0xa0, 0x4d, 0xb1,
- 0x66, 0xf1, 0x28, 0x84, 0xe7, 0x46, 0x2a, 0x4f, 0xeb, 0x75, 0x11, 0x8e, 0x10, 0x58, 0xed, 0x21,
- 0x50, 0x73, 0x81, 0x1e, 0xf7, 0x45, 0xa4, 0x22, 0x29, 0x6d, 0x18, 0xaf, 0xeb, 0x55, 0x46, 0xe6,
- 0x49, 0x3c, 0xc7, 0x23, 0xab, 0xda, 0xd2, 0x65, 0xd5, 0x1f, 0x43, 0x62, 0xa8, 0x19, 0xea, 0x78,
- 0x5b, 0x42, 0xa0, 0x55, 0x1a, 0xdb, 0xa8, 0xff, 0x2a, 0x17, 0x44, 0x7d, 0x40, 0xa3, 0x32, 0x84,
- 0x99, 0x49, 0x6c, 0x0d, 0x78, 0xe9, 0x6b, 0x17, 0x6a, 0x44, 0xda, 0x16, 0x38, 0xc4, 0x63, 0x92,
- 0x68, 0xdb, 0xb4, 0x17, 0x88, 0xf8, 0xbd, 0x39, 0xbe, 0xcc, 0xad, 0x3a, 0x48, 0x8f, 0xa5, 0x75,
- 0xe9, 0xda, 0x06, 0x1f, 0x86, 0x50, 0x59, 0x21, 0x87, 0xc5, 0x73, 0xff, 0xbd, 0xb3, 0x66, 0x77,
- 0xc5, 0x1e, 0x82, 0xf0, 0xb4, 0x6d, 0x69, 0xd3, 0x8b, 0xee, 0xc0, 0x31, 0x54, 0xed, 0x75, 0x3c,
- },
- { /* 8 */
- 0xd7, 0x48, 0x12, 0xa3, 0xbe, 0x29, 0x25, 0xd9, 0x10, 0xec, 0xae, 0xdf, 0x6a, 0x2d, 0x01, 0xfc,
- 0x63, 0x44, 0x11, 0xde, 0x60, 0x0e, 0x82, 0x6c, 0x92, 0x7c, 0xf2, 0x2a, 0x20, 0xcb, 0xa0, 0xee,
- 0x5e, 0x13, 0x74, 0x22, 0x3d, 0x0d, 0xaf, 0x72, 0xfa, 0x27, 0xc7, 0x23, 0xaa, 0xd2, 0x47, 0xdd,
- 0xaa, 0x8c, 0x23, 0x54, 0x8a, 0x01, 0x1b, 0x0a, 0x99, 0x88, 0x13, 0x07, 0xc7, 0xb6, 0x5d, 0x11,
- 0xea, 0x1f, 0x77, 0x5f, 0xe3, 0x2a, 0x08, 0xc7, 0x78, 0xb7, 0x9b, 0xd6, 0xe0, 0x34, 0xe6, 0xcf,
- 0x2a, 0x69, 0x8b, 0x42, 0x58, 0x57, 0x3d, 0x53, 0x98, 0xf6, 0xc0, 0x66, 0x89, 0x71, 0xe8, 0x6e,
- 0x29, 0x16, 0xe4, 0x73, 0x84, 0x86, 0x44, 0x75, 0x7a, 0x4b, 0xfe, 0x14, 0x7c, 0x79, 0x4f, 0x31,
- 0x9c, 0x8e, 0xc2, 0xa0, 0xaf, 0xee, 0x75, 0x63, 0xa6, 0xb0, 0x09, 0xcf, 0x65, 0x26, 0x32, 0x16,
- 0xe1, 0x4a, 0xf3, 0x57, 0x9b, 0xc6, 0x4b, 0xb0, 0x2f, 0xd4, 0xb4, 0x17, 0xc8, 0xbd, 0x6e, 0xfb,
- 0xa4, 0x58, 0x16, 0x0f, 0x55, 0x5d, 0xd3, 0x17, 0x2b, 0xef, 0x7e, 0x50, 0x33, 0x27, 0xff, 0xc4,
- 0xeb, 0x8b, 0x52, 0xf1, 0x16, 0x65, 0x9e, 0x64, 0x26, 0xdc, 0x30, 0xf8, 0xb3, 0x8d, 0x3a, 0xfa,
- 0x68, 0x11, 0x95, 0xd6, 0x18, 0xe2, 0xc1, 0x1b, 0xc5, 0x1f, 0xdd, 0xeb, 0x08, 0x42, 0x28, 0xda,
- 0x9d, 0x1a, 0xe7, 0x0e, 0x5a, 0xa1, 0xe3, 0xc0, 0xf8, 0xdb, 0xa2, 0xe1, 0x36, 0x9f, 0xee, 0x23,
- 0xae, 0x99, 0xb7, 0xa9, 0xd8, 0xfe, 0x06, 0xc3, 0x22, 0xe7, 0xfa, 0xbf, 0x48, 0x17, 0xab, 0xc5,
- 0x28, 0x82, 0xc1, 0xdd, 0x71, 0xc9, 0xd2, 0xd6, 0x24, 0x20, 0x55, 0x3a, 0x2f, 0xc0, 0x93, 0x04,
- 0xb7, 0x73, 0x6c, 0x4c, 0x02, 0xf6, 0xde, 0x93, 0x60, 0x2d, 0x62, 0x87, 0xbf, 0xee, 0x06, 0x4d,
- 0x55, 0x46, 0xf0, 0x2a, 0x45, 0xe1, 0xec, 0x05, 0xad, 0x44, 0xe8, 0xe2, 0x82, 0x5b, 0xcf, 0xe9,
- 0xd0, 0x22, 0xe9, 0x6f, 0x30, 0x07, 0x41, 0x36, 0x49, 0x3e, 0x79, 0x15, 0x10, 0x84, 0x50, 0x77,
- 0xaf, 0x0d, 0x92, 0x07, 0x2d, 0xb1, 0x90, 0x60, 0x7c, 0x8c, 0x51, 0x91, 0x1b, 0xae, 0x77, 0xf0,
- 0x62, 0xd0, 0x34, 0x70, 0x95, 0x41, 0x14, 0xcf, 0xcc, 0x17, 0x59, 0x04, 0x73, 0x72, 0x7c, 0xdb,
- 0xf7, 0xe0, 0x38, 0x47, 0x6b, 0xdd, 0xcd, 0x5e, 0x81, 0x12, 0xea, 0x56, 0x98, 0x6c, 0xbd, 0x93,
- 0xef, 0x9e, 0xc6, 0x0c, 0x44, 0x9a, 0x83, 0xad, 0x9d, 0xb3, 0xd9, 0x40, 0x3c, 0x2c, 0xcc, 0x2e,
- 0xb3, 0x66, 0xf8, 0xb1, 0x50, 0x09, 0xc3, 0x5a, 0xdb, 0x42, 0x8b, 0x3f, 0x30, 0x4f, 0xf0, 0x99,
- 0x2e, 0x7c, 0x1f, 0xbf, 0x0a, 0xa8, 0x20, 0x9a, 0x23, 0x99, 0x29, 0xde, 0x06, 0xd0, 0x1e, 0xba,
- 0x96, 0x4f, 0x63, 0x06, 0x22, 0x4d, 0xa0, 0xb7, 0xaf, 0xb8, 0x8d, 0x20, 0x1e, 0x16, 0x66, 0x17,
- 0x1f, 0x14, 0x05, 0x87, 0xa1, 0x69, 0x2a, 0x1c, 0x45, 0x73, 0xe4, 0xdc, 0xde, 0xe9, 0x20, 0x36,
- 0xa5, 0xcc, 0x33, 0xa1, 0xa0, 0x12, 0x45, 0xb4, 0x75, 0x84, 0xd5, 0x7e, 0x60, 0x9e, 0x23, 0xf1,
- 0x24, 0xbd, 0xbe, 0x19, 0x87, 0x0b, 0xf5, 0x4e, 0x2a, 0x91, 0xad, 0x31, 0x7d, 0xe0, 0x4a, 0xbb,
- 0x88, 0xcf, 0x43, 0x2f, 0x76, 0x6b, 0x1c, 0x08, 0xb4, 0xa0, 0xc2, 0xd2, 0x93, 0x46, 0x9a, 0x14,
- 0xfe, 0x5e, 0xf6, 0xd0, 0x3a, 0xaf, 0x61, 0xac, 0x6a, 0xa7, 0x50, 0xcb, 0x16, 0x54, 0x4e, 0xcd,
- 0x03, 0x7f, 0x6f, 0x31, 0xdc, 0xd1, 0x79, 0x26, 0xe2, 0xbd, 0x3e, 0x72, 0xf5, 0x08, 0xa7, 0x5f,
- 0x86, 0x1b, 0x76, 0x74, 0xa9, 0x37, 0xd4, 0x15, 0x06, 0xc7, 0xaf, 0x85, 0x67, 0xd7, 0x38, 0xc1,
- 0xf5, 0x0b, 0x72, 0xd8, 0x42, 0x43, 0x22, 0xdb, 0x3d, 0xc4, 0x7f, 0x0a, 0x3e, 0xdd, 0xc6, 0xf9,
- 0xf0, 0x8a, 0xc3, 0x8b, 0xe5, 0xf3, 0xa9, 0xb1, 0xd8, 0xc0, 0x3d, 0x9c, 0xe2, 0xc5, 0xec, 0x18,
- 0x64, 0x2e, 0xea, 0x12, 0xee, 0x20, 0xe6, 0x83, 0xcb, 0xae, 0x25, 0xe0, 0x5a, 0x62, 0xf1, 0x65,
- 0x21, 0x3c, 0x0f, 0x4a, 0x20, 0xbb, 0x7e, 0x24, 0xcf, 0x95, 0xef, 0xa7, 0xa1, 0xf8, 0x60, 0x5a,
- 0x1b, 0x01, 0x91, 0x7a, 0xf3, 0x96, 0x37, 0xd5, 0xfe, 0x1c, 0x0d, 0x64, 0x51, 0x48, 0xd6, 0xe2,
- 0x1d, 0xff, 0x4f, 0x18, 0x88, 0xf7, 0xc5, 0x99, 0xf9, 0xa5, 0x71, 0x80, 0x78, 0x58, 0x5b, 0x5c,
- 0x69, 0x85, 0xb0, 0x78, 0xed, 0xad, 0x57, 0xb8, 0x9b, 0x74, 0x76, 0xc5, 0x5b, 0xfb, 0xf4, 0xef,
- 0x89, 0x5b, 0x66, 0x81, 0x83, 0x24, 0x8a, 0xab, 0xea, 0xcb, 0x69, 0xfc, 0xc0, 0xff, 0x46, 0x21,
- 0x43, 0xec, 0x3b, 0x3a, 0xb5, 0xfa, 0x6a, 0xeb, 0x03, 0x82, 0xb6, 0xa3, 0xd2, 0x8a, 0x1c, 0x81,
- 0xd8, 0x08, 0x02, 0x56, 0x94, 0x3a, 0x7b, 0x67, 0xfc, 0xe0, 0x68, 0xa6, 0xcd, 0x05, 0x7f, 0x1c,
- 0x5b, 0x92, 0xc5, 0x71, 0x9a, 0xbd, 0x24, 0x18, 0x1f, 0x23, 0x85, 0xb5, 0x76, 0xca, 0x6d, 0x3c,
- 0xd1, 0xb6, 0xcc, 0xc1, 0xc5, 0x48, 0xd7, 0x95, 0x17, 0x55, 0xd2, 0x3b, 0x43, 0x3d, 0x8c, 0x42,
- 0x07, 0x6a, 0xfb, 0xcc, 0x8e, 0x2e, 0x64, 0xef, 0x59, 0xd2, 0xd7, 0xca, 0x7a, 0xa9, 0x51, 0x8b,
- 0x0a, 0xc1, 0xa1, 0xa6, 0x8d, 0xa3, 0xd5, 0xd4, 0x09, 0x08, 0x84, 0xef, 0x7b, 0x30, 0x54, 0x01,
- 0x25, 0x29, 0x9b, 0xb7, 0x72, 0x44, 0x63, 0xed, 0x74, 0xfa, 0x06, 0x1f, 0x2e, 0x59, 0x96, 0x8e,
- 0xa3, 0x32, 0xed, 0xc3, 0xdb, 0x73, 0xb7, 0xf8, 0x72, 0x3d, 0xa9, 0x9a, 0x49, 0x8e, 0xae, 0x4f,
- 0x22, 0x43, 0x60, 0x7b, 0xfc, 0x6a, 0x07, 0x02, 0x2d, 0x28, 0xd1, 0xd5, 0x54, 0xf0, 0xc7, 0x05,
- 0x61, 0xaf, 0x5b, 0x41, 0x49, 0x90, 0x6d, 0xe9, 0x2e, 0xaa, 0x67, 0x76, 0x86, 0x7a, 0xdb, 0x84,
- 0x14, 0x41, 0x81, 0x8f, 0xd9, 0x85, 0x69, 0x6b, 0x12, 0x10, 0xcb, 0x1d, 0xf6, 0x60, 0xa8, 0x02,
- 0xa6, 0xb3, 0x5c, 0x90, 0x7c, 0xc3, 0x3c, 0x92, 0x97, 0x39, 0xeb, 0x0c, 0x95, 0x96, 0x84, 0xae,
- 0x11, 0xc0, 0x30, 0xdc, 0x7e, 0x35, 0xe2, 0x01, 0xf7, 0x14, 0x89, 0x8b, 0x2a, 0x78, 0x82, 0xe3,
- 0x02, 0xeb, 0x4a, 0x9f, 0x29, 0x9e, 0xef, 0x85, 0xbc, 0xd6, 0x95, 0x5c, 0xa6, 0xb1, 0x7b, 0x6a,
- 0x2f, 0xe8, 0x3a, 0x11, 0xff, 0xe7, 0xb6, 0x39, 0x7d, 0xf2, 0x82, 0xf0, 0x55, 0x69, 0xc2, 0x8f,
- 0xca, 0xb7, 0x5d, 0xbb, 0x36, 0xde, 0xe0, 0x40, 0xe9, 0x49, 0xdf, 0x5f, 0x12, 0x75, 0x5a, 0xa0,
- 0x3c, 0xc3, 0x40, 0x52, 0xa8, 0x4c, 0xbb, 0xbd, 0x36, 0x30, 0x9e, 0x27, 0xd9, 0xa0, 0x3b, 0x06,
- 0x4e, 0x47, 0x61, 0x50, 0xb6, 0x77, 0xdb, 0xd0, 0x53, 0x58, 0xe5, 0x86, 0xd3, 0x13, 0x19, 0x0b,
- 0x7d, 0xc4, 0x31, 0xf7, 0x34, 0x28, 0x3e, 0xd3, 0x89, 0x64, 0xbd, 0xd8, 0xad, 0x9b, 0x5c, 0xed,
- 0xb9, 0xa7, 0x59, 0x17, 0xdd, 0xaa, 0x16, 0x8e, 0xd2, 0x4a, 0x0f, 0xd0, 0x4b, 0x7f, 0xa4, 0x98,
- 0x80, 0xe5, 0xa8, 0x16, 0xd2, 0x56, 0x26, 0x59, 0x01, 0x7e, 0xd3, 0x61, 0x4e, 0xc7, 0xb5, 0x7f,
- 0x04, 0x15, 0x94, 0xfd, 0x52, 0xff, 0x1d, 0xc9, 0xbb, 0x6f, 0xe9, 0xb8, 0x8f, 0xa1, 0xf6, 0xd4,
- 0x32, 0x17, 0x75, 0x09, 0x77, 0x10, 0x73, 0xa0, 0x84, 0x57, 0xf3, 0x70, 0x2d, 0x31, 0x99, 0xd3,
- 0xc6, 0x88, 0x22, 0x7f, 0xc0, 0x1c, 0xc7, 0xd8, 0xe7, 0xf8, 0x27, 0x54, 0x40, 0x55, 0x83, 0x1f,
- 0x41, 0x07, 0x71, 0xa5, 0x9c, 0x64, 0x85, 0x6e, 0xbf, 0x54, 0x23, 0xff, 0x74, 0x3b, 0x67, 0xeb,
- 0x0b, 0x55, 0x84, 0x08, 0x78, 0xec, 0x43, 0x77, 0x57, 0x63, 0x2f, 0xc1, 0x28, 0x89, 0x88, 0x34,
- 0xfb, 0xdf, 0x47, 0x83, 0x9d, 0x1f, 0xea, 0xc6, 0x8f, 0xa3, 0x12, 0x5d, 0xca, 0x4c, 0x64, 0x2c,
- 0x6f, 0x7b, 0x6e, 0x1a, 0x96, 0xcc, 0xa5, 0xf4, 0x9c, 0xcd, 0x0a, 0x21, 0x72, 0xeb, 0x79, 0x51,
- 0x4b, 0xc6, 0xd0, 0x03, 0x11, 0xc7, 0x50, 0xba, 0xb6, 0x5c, 0xa7, 0x10, 0x0f, 0x0b, 0x33, 0xea,
- 0xdc, 0x1d, 0x96, 0xab, 0xc6, 0xc5, 0x66, 0xae, 0x47, 0x8f, 0x81, 0x1e, 0x42, 0xa4, 0x89, 0xc8,
- 0x95, 0x30, 0x0c, 0x37, 0xfe, 0x9c, 0xd9, 0x91, 0x4d, 0x05, 0xb3, 0x52, 0xeb, 0x1e, 0xc1, 0x48,
- 0x84, 0xf0, 0x3c, 0xeb, 0x80, 0xa9, 0x3b, 0x90, 0xba, 0x11, 0x3a, 0xd9, 0xc1, 0x66, 0x43, 0xab,
- 0xbb, 0x4c, 0x13, 0x88, 0xf4, 0x34, 0xf9, 0x0b, 0x6e, 0x9c, 0x9a, 0x8c, 0xed, 0xce, 0xdf, 0xf2,
- 0xc7, 0x1c, 0x07, 0xd1, 0x35, 0x53, 0x51, 0x7b, 0xb9, 0x93, 0x8c, 0x7a, 0x13, 0xec, 0x5f, 0x2a,
- 0x16, 0xaa, 0xcb, 0x10, 0xf0, 0x1b, 0x86, 0xee, 0xae, 0xc6, 0x5e, 0x41, 0x50, 0xd1, 0xd3, 0x68,
- 0xde, 0xf6, 0xdc, 0x34, 0xef, 0x5b, 0x89, 0x2b, 0xfb, 0x59, 0x14, 0x42, 0xe4, 0x15, 0xf2, 0xa2,
- 0xdd, 0x89, 0xb3, 0x05, 0x33, 0x8a, 0xf0, 0x0d, 0x19, 0xe4, 0x2a, 0x30, 0x11, 0x1d, 0x55, 0xfd,
- 0x67, 0x51, 0x85, 0x23, 0x32, 0xf1, 0x9f, 0xa5, 0x29, 0x13, 0x1b, 0x92, 0xaf, 0x6a, 0x56, 0x3a,
- 0xe0, 0xde, 0xd6, 0xf9, 0x6e, 0x89, 0xdd, 0x13, 0x71, 0xbf, 0x1f, 0x39, 0x9b, 0x04, 0xb2, 0xce,
- 0xf4, 0x9f, 0x57, 0x76, 0xb7, 0x0c, 0xb4, 0x78, 0x63, 0xaf, 0xd4, 0x24, 0x6d, 0x64, 0x1a, 0xcc,
- 0x48, 0xb9, 0xbf, 0x32, 0xcd, 0x16, 0x29, 0x9c, 0x54, 0xe1, 0x99, 0x62, 0xfa, 0x03, 0x94, 0xb5,
- 0xe6, 0x20, 0x08, 0x9b, 0x15, 0xe8, 0x2f, 0x5f, 0x76, 0x06, 0x63, 0xdd, 0xb2, 0x14, 0x3f, 0x70,
- 0x6c, 0x04, 0x01, 0x2b, 0x4a, 0x1d, 0xdc, 0xd2, 0x7e, 0x70, 0x34, 0x53, 0x87, 0xe3, 0xde, 0x0e,
- 0x59, 0x79, 0x8f, 0xee, 0xb3, 0x23, 0xcb, 0x9d, 0xa3, 0xf5, 0x10, 0xe9, 0xd0, 0x7b, 0x16, 0x56,
- 0x50, 0xc7, 0x41, 0x79, 0xe2, 0x51, 0x67, 0x6f, 0x48, 0x40, 0xaa, 0x74, 0x5e, 0x43, 0xe5, 0x08,
- 0x78, 0x45, 0x80, 0xa4, 0x93, 0x98, 0xb5, 0xb9, 0x6c, 0x60, 0xff, 0x4e, 0x71, 0x83, 0x76, 0x0c,
- 0xda, 0xe3, 0x48, 0xc9, 0xbd, 0xa4, 0x94, 0xe2, 0x40, 0x36, 0xfd, 0xfa, 0x6b, 0xb4, 0x04, 0x76,
- 0xb4, 0x0c, 0x03, 0x7d, 0xde, 0x27, 0xa7, 0xb5, 0x82, 0x90, 0x5c, 0xf5, 0x4a, 0xe6, 0xa1, 0x12,
- 0x0c, 0x3f, 0x7f, 0xc4, 0xf6, 0xc2, 0x27, 0x98, 0x0e, 0xb1, 0xf8, 0x0b, 0x52, 0x20, 0xd9, 0xbf,
- 0xf2, 0x61, 0x89, 0x14, 0xcc, 0x6d, 0x46, 0x34, 0x64, 0x16, 0xa8, 0xc0, 0x44, 0x74, 0x97, 0x72,
- 0xbe, 0xcd, 0xa2, 0xdb, 0x53, 0x84, 0x72, 0x61, 0x8b, 0x98, 0xd8, 0x1a, 0x31, 0xd6, 0xf5, 0x13,
- 0xf3, 0xf5, 0xac, 0xba, 0x39, 0x22, 0xd0, 0x97, 0x3a, 0x7d, 0x03, 0xee, 0x17, 0xcd, 0x4b, 0x47,
- 0x91, 0x25, 0x98, 0xca, 0xac, 0x63, 0xc4, 0x58, 0xf6, 0x6a, 0x5a, 0xea, 0x64, 0xbf, 0x37, 0x9c,
- 0x5c, 0xf8, 0x3e, 0xbd, 0x14, 0x93, 0x40, 0xf7, 0x46, 0xf1, 0x52, 0x7f, 0x0c, 0x63, 0x3c, 0xb7,
- 0x17, 0x3e, 0xee, 0xbe, 0x05, 0x54, 0x10, 0x4d, 0xf0, 0xad, 0xf5, 0x6f, 0x03, 0x68, 0x0f, 0x5d,
- 0x7f, 0x2f, 0x7b, 0x68, 0x1d, 0xb6, 0xd1, 0x56, 0x35, 0xb2, 0x28, 0x84, 0x0b, 0x2a, 0x27, 0x87,
- 0x82, 0x0e, 0xe2, 0x89, 0xfb, 0xc8, 0xc9, 0xdc, 0xbd, 0xa8, 0x46, 0x3d, 0xe8, 0x76, 0xce, 0x15,
- 0xc0, 0x76, 0xfc, 0x1d, 0xbb, 0x7d, 0x35, 0x94, 0xe0, 0x41, 0x5b, 0xb0, 0x69, 0x45, 0x0e, 0xa1,
- 0xd5, 0xa3, 0x58, 0x3c, 0x97, 0xb7, 0xca, 0x5c, 0xac, 0x3a, 0x3b, 0x83, 0xcc, 0x9c, 0x7a, 0x96,
- 0xd9, 0x9c, 0x27, 0xf8, 0x61, 0x75, 0xed, 0xc4, 0xa2, 0x8b, 0xc3, 0x88, 0x9e, 0xbc, 0xa3, 0x29,
- 0xa0, 0x4d, 0x82, 0xf2, 0x07, 0xa2, 0xce, 0xde, 0x90, 0x80, 0x97, 0xe8, 0xbc, 0x86, 0x09, 0x10,
- 0xa8, 0x67, 0x69, 0xcb, 0xa3, 0x9f, 0xf4, 0x8f, 0x25, 0x5e, 0x86, 0x5b, 0x61, 0x07, 0x26, 0x7b,
- 0xad, 0xe6, 0xd8, 0x98, 0x04, 0x2f, 0x7f, 0xe5, 0xc0, 0x5a, 0xc4, 0xcd, 0xbd, 0x1f, 0x0c, 0x9a,
- 0xba, 0xd8, 0x36, 0x26, 0x01, 0x7b, 0x6f, 0xa8, 0x30, 0xf7, 0x31, 0xa2, 0xbe, 0x77, 0x03, 0xc7,
- 0xb1, 0x8d, 0xb2, 0x2e, 0x79, 0x97, 0x2c, 0xdf, 0x67, 0x94, 0x1e, 0x63, 0x96, 0xfe, 0x8b, 0xf3,
- 0xe3, 0xa1, 0xb9, 0xc8, 0xb2, 0x58, 0xa4, 0x35, 0x93, 0x02, 0x21, 0x4b, 0x6e, 0x0c, 0x15, 0x91,
- 0xb6, 0xe7, 0x49, 0xe2, 0xf7, 0xb9, 0x48, 0x30, 0x3e, 0x46, 0xc9, 0xa9, 0xec, 0x57, 0xda, 0x78,
- 0x20, 0xa8, 0x2a, 0xe4, 0xd5, 0xf4, 0xe8, 0x87, 0x91, 0xfe, 0x44, 0x89, 0xf2, 0x41, 0xbc, 0x6f,
- 0x9b, 0xe4, 0x39, 0x6c, 0x21, 0xc0, 0x11, 0x8c, 0xff, 0x62, 0xde, 0x05, 0x1f, 0x8f, 0x63, 0x9d,
- 0x85, 0x64, 0x19, 0x45, 0x75, 0xe6, 0xad, 0x33, 0xe4, 0x7a, 0x91, 0xf7, 0x92, 0xdf, 0x9f, 0x9e,
- 0x7e, 0xbb, 0x5e, 0xc6, 0xe8, 0xf9, 0x47, 0xf5, 0x6b, 0xd9, 0x83, 0xaa, 0x58, 0x93, 0xfb, 0xb2,
- 0x60, 0x3b, 0x7e, 0xef, 0xbc, 0xdf, 0xfb, 0x4a, 0x70, 0xc1, 0xcc, 0x58, 0xd5, 0xc3, 0x07, 0xb1,
- 0x37, 0x96, 0xc4, 0x5a, 0xd0, 0xa0, 0xf8, 0xca, 0x61, 0x53, 0xb1, 0xe6, 0xf1, 0x29, 0xb3, 0x32,
- 0xc4, 0x63, 0x68, 0xe0, 0xe9, 0x82, 0x28, 0x5d, 0x5b, 0x2e, 0xb2, 0x08, 0xe6, 0xe4, 0xf8, 0x75,
- 0xfa, 0x4b, 0x62, 0x2d, 0x68, 0x50, 0x7c, 0x65, 0xd1, 0xc8, 0xb9, 0x73, 0x99, 0xf5, 0xb8, 0x19,
- 0x51, 0x53, 0x64, 0xd7, 0x17, 0x1e, 0xf1, 0xcc, 0x16, 0x2b, 0x01, 0x5a, 0x0d, 0xfa, 0x39, 0x3d,
- 0xc9, 0xc8, 0x32, 0x8a, 0xea, 0x0f, 0x99, 0x66, 0x0b, 0xf4, 0xe1, 0x2d, 0xe7, 0x7d, 0xfd, 0xff,
- 0x01, 0x94, 0x25, 0xae, 0xf5, 0x4f, 0x96, 0xa3, 0x5e, 0x6b, 0xab, 0x2e, 0x53, 0xb9, 0xdc, 0x35,
- 0x0d, 0xab, 0x5a, 0x6a, 0x03, 0x8d, 0xb1, 0x3b, 0x50, 0xda, 0x53, 0x25, 0x01, 0x99, 0x05, 0x8a,
- 0x8a, 0x24, 0x09, 0xb0, 0x5f, 0xf5, 0xf3, 0x8d, 0x08, 0x76, 0x57, 0x8e, 0x35, 0xf7, 0xe1, 0x7e,
- 0x34, 0xe9, 0xab, 0x6b, 0x0c, 0x71, 0x81, 0xec, 0x83, 0xee, 0x8f, 0x94, 0x04, 0x21, 0x14, 0x6d,
- 0x4d, 0x38, 0x0e, 0x61, 0x6a, 0xa6, 0xa2, 0xf6, 0xb1, 0xe5, 0xdb, 0xf4, 0x26, 0x1b, 0xbe, 0x54,
- 0xb0, 0x19, 0x97, 0x80, 0x8c, 0xd8, 0xba, 0x7c, 0x39, 0xff, 0xb5, 0x4d, 0xc5, 0x47, 0x57, 0xc6,
- 0x49, 0x2d, 0x9a, 0x9c, 0x38, 0x59, 0xbf, 0x3f, 0x0a, 0x8a, 0x32, 0x4c, 0xa9, 0xba, 0x48, 0x80,
- 0x92, 0x5a, 0xf7, 0xfb, 0x70, 0xb2, 0xbd, 0x7e, 0x14, 0xd7, 0x64, 0x98, 0x91, 0xb7, 0x90, 0xc3,
- 0x18, 0x7e, 0xfe, 0x4b, 0x2f, 0x47, 0x4e, 0xf3, 0x1c, 0xa1, 0x33, 0x16, 0xa4, 0x40, 0x71, 0xbd,
- 0x72, 0x84, 0x21, 0x02, 0x1e, 0x3b, 0x60, 0x6d, 0x65, 0x68, 0x7b, 0xa1, 0x0a, 0xb3, 0x22, 0x0d,
- 0x53, 0xb8, 0x2e, 0x48, 0x3e, 0x80, 0x1e, 0x49, 0xaa, 0xfd, 0x94, 0x06, 0xab, 0x4b, 0x42, 0x57,
- 0x4a, 0x52, 0xf5, 0xad, 0xe4, 0x88, 0xc6, 0x19, 0xe8, 0x37, 0x0c, 0x3e, 0x5c, 0xb2, 0xef, 0xdf,
- 0x8d, 0x4e, 0xf2, 0x7c, 0xd1, 0xdb, 0x97, 0x62, 0x51, 0xa4, 0x80, 0x44, 0x4f, 0x5e, 0xb0, 0xf5,
- 0xab, 0x18, 0x06, 0xfa, 0x7f, 0x4e, 0x8d, 0xa9, 0xc7, 0xe3, 0xb8, 0x29, 0x94, 0x0f, 0x81, 0x24,
- 0x90, 0xb1, 0xbd, 0x64, 0x59, 0x2c, 0x52, 0xfb, 0xa8, 0x01, 0xf1, 0xc4, 0x37, 0x06, 0xeb, 0xa9,
- 0x4f, 0xd3, 0x44, 0xfe, 0x43, 0x38, 0x4d, 0x73, 0x0d, 0x33, 0x4e, 0xa8, 0x80, 0xaa, 0xc5, 0x3e,
- 0x9a, 0x70, 0x1c, 0xc2, 0xd4, 0x8f, 0x87, 0x2f, 0xa1, 0x09, 0x75, 0x2b, 0x4c, 0x36, 0xbf, 0xa8,
- 0xdb, 0x77, 0x6d, 0x67, 0x48, 0xeb, 0x02, 0x41, 0x1e, 0x5d, 0x56, 0xd4, 0x38, 0x0d, 0xd8, 0x43,
- 0xd6, 0xdc, 0x37, 0x0d, 0x4b, 0x66, 0xb3, 0x7a, 0x4e, 0x87, 0x05, 0xf1, 0x39, 0x94, 0xdd, 0xc9,
- 0x1a, 0x95, 0xb4, 0xd4, 0x06, 0xd9, 0xa1, 0x76, 0xa0, 0x77, 0xa6, 0x4a, 0x02, 0xf1, 0x0a, 0xd7,
- 0xbc, 0x26, 0xe8, 0x44, 0x7a, 0x1a, 0x9d, 0xe4, 0x37, 0x4e, 0x4d, 0x46, 0x97, 0x67, 0x8e, 0x79,
- 0x10, 0x54, 0x15, 0x72, 0x8b, 0x7a, 0x74, 0xa2, 0xa9, 0x7f, 0x22, 0xa5, 0x79, 0xc1, 0x5e, 0xd6,
- 0x93, 0xce, 0xd2, 0x55, 0x85, 0xfd, 0x2b, 0xdd, 0x4a, 0xbc, 0xcf, 0xb6, 0xc2, 0x0e, 0x4c, 0xf6,
- 0x9e, 0x65, 0x88, 0x3f, 0x86, 0x70, 0x9a, 0xe6, 0x1a, 0x66, 0x9c, 0x93, 0xc3, 0x97, 0x49, 0x7c,
- 0x97, 0xdb, 0x46, 0xa8, 0xd7, 0x02, 0x36, 0x14, 0xf1, 0xd3, 0x26, 0x0e, 0x4d, 0xaf, 0xba, 0x22,
- 0x30, 0xfc, 0x3f, 0x96, 0x5e, 0x8e, 0x9c, 0x25, 0x38, 0x81, 0x66, 0x2c, 0x8b, 0x80, 0xe2, 0xb9,
- 0x1e, 0x80, 0x20, 0x29, 0x54, 0x26, 0xbc, 0xbf, 0x1b, 0x18, 0x4f, 0xf2, 0x8d, 0x50, 0xfc, 0x03,
- 0x0f, 0x40, 0x10, 0xf5, 0x2a, 0x13, 0x5e, 0xbe, 0xec, 0x0c, 0xc6, 0x79, 0xa7, 0x28, 0x7e, 0xe0,
- 0x66, 0xc5, 0xa0, 0x8d, 0xc7, 0xbe, 0x09, 0x06, 0x77, 0x78, 0xb0, 0xbc, 0xfc, 0xd3, 0x8a, 0x0f,
- 0x77, 0x05, 0x90, 0x51, 0xb9, 0x8b, 0xeb, 0x07, 0x80, 0x6c, 0x39, 0x37, 0xd6, 0xab, 0x08, 0xec,
- 0x40, 0x93, 0x54, 0x0b, 0x69, 0x2b, 0x13, 0xcd, 0xe1, 0x3f, 0x88, 0xd1, 0x27, 0x82, 0xbb, 0xde,
- 0xa2, 0xa6, 0xc8, 0x6d, 0x2e, 0x3c, 0x21, 0x5b, 0x2c, 0x56, 0x02, 0xb4, 0x1a, 0x37, 0x72, 0x7a,
- 0xc1, 0xe2, 0xd9, 0xb3, 0x4e, 0x32, 0xa3, 0x37, 0xbe, 0x2a, 0xf0, 0x9e, 0x3a, 0xfc, 0xd2, 0x94,
- 0x6a, 0xfa, 0xdf, 0x49, 0x31, 0x7c, 0x2e, 0x9e, 0x79, 0xc9, 0x48, 0xb7, 0xae, 0xf3, 0x53, 0xb0,
- 0x12, 0xbf, 0x5f, 0xed, 0xa2, 0xe4, 0x9b, 0x27, 0x15, 0xa9, 0xb7, 0xf9, 0xdf, 0x70, 0x25, 0xbc,
- 0x54, 0xd2, 0xd5, 0x84, 0xb0, 0xae, 0x7a, 0xa6, 0xf3, 0x2f, 0x43, 0xcc, 0xd1, 0xe2, 0x13, 0xdc,
- 0x5f, 0x87, 0x51, 0x8c, 0xc8, 0x42, 0x39, 0xd1, 0xa4, 0x4c, 0x6c, 0x0d, 0xf9, 0x6b, 0x9b, 0xe8,
- 0xd3, 0x5d, 0x86, 0x5e, 0xec, 0xd6, 0x38, 0x10, 0xab, 0x83, 0x47, 0x67, 0xe5, 0x8c, 0xf7, 0x28,
- 0x65, 0xba, 0xcf, 0xbc, 0x1b, 0x6f, 0x70, 0x20, 0x95, 0xc5, 0x8e, 0xce, 0x09, 0xdb, 0x2d, 0x50,
- 0xa9, 0xf3, 0x4c, 0x65, 0x56, 0xd0, 0x62, 0x2c, 0x7b, 0x35, 0x2d, 0x75, 0x32, 0xbe, 0xfa, 0x4e,
- 0x3d, 0x57, 0x65, 0xfc, 0x5d, 0x03, 0x2d, 0x1e, 0x68, 0x5b, 0x35, 0x09, 0x8a, 0x19, 0xe7, 0x33,
- 0x44, 0x86, 0xc0, 0xf6, 0x3b, 0xd4, 0x0e, 0x04, 0x5a, 0x50, 0x61, 0x69, 0xa8, 0x23, 0x4d, 0x0a,
- 0x81, 0x71, 0x8d, 0xb8, 0x27, 0x19, 0xb0, 0xfa, 0x5f, 0x15, 0x78, 0x4f, 0x1d, 0x7e, 0x69, 0x4a,
- 0xfc, 0xb5, 0xbc, 0x4f, 0x13, 0x31, 0x8e, 0x29, 0xd6, 0x71, 0xc5, 0x97, 0xb0, 0xe5, 0x35, 0xa7,
- 0xdf, 0x62, 0xf9, 0x9a, 0x1a, 0x14, 0x1f, 0x88, 0xa5, 0x32, 0xbf, 0x6c, 0xb7, 0xac, 0x2e, 0x97,
- 0x46, 0x6d, 0x8a, 0x69, 0x12, 0x4a, 0xe1, 0x81, 0xe6, 0x86, 0xf4, 0x35, 0x0e, 0x92, 0x36, 0x60,
- 0xf8, 0xa0, 0x28, 0xb2, 0x41, 0xce, 0x93, 0xe0, 0x6d, 0x1e, 0x2c, 0x2f, 0x3f, 0x44, 0xc3, 0x73,
- 0xcc, 0x49, 0x83, 0xd9, 0x4d, 0xbf, 0x12, 0x0c, 0xee, 0xf0, 0xa3, 0xbb, 0x3b, 0x65, 0xd7, 0x1e,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x52, 0x2c, 0x0b, 0xe6, 0xcb, 0xcf, 0x88, 0xea, 0xf4, 0x96, 0x3f, 0x28, 0xf8, 0xf2, 0x9e, 0x62,
- 0xed, 0x75, 0x8c, 0x93, 0x6d, 0x04, 0x6c, 0x28, 0x21, 0x65, 0x4c, 0x1c, 0x9a, 0x9d, 0xb7, 0x44,
- 0xe4, 0xcb, 0x42, 0x04, 0x3c, 0x76, 0xc0, 0xda, 0xca, 0xd0, 0xf6, 0x81, 0x14, 0xa5, 0x44, 0x1a,
- 0x3a, 0x3d, 0x9e, 0x30, 0xd3, 0x2d, 0x49, 0xf1, 0x31, 0x89, 0xe2, 0xc3, 0xf0, 0xb0, 0xb6, 0xb8,
- 0x73, 0x10, 0x04, 0xac, 0xeb, 0x74, 0xf6, 0xce, 0x3b, 0x03, 0xd0, 0x8f, 0x59, 0x0a, 0xfe, 0x38,
- 0x5d, 0x6c, 0x1b, 0x13, 0xe1, 0xdc, 0xd6, 0x54, 0x18, 0x9a, 0xf9, 0x51, 0x5f, 0xda, 0xe0, 0x82,
- 0x6e, 0xef, 0x4b, 0xb4, 0x63, 0x83, 0x33, 0x57, 0xc2, 0xa6, 0xa1, 0x0f, 0x21, 0x52, 0xa5, 0x64,
- 0x8f, 0xa5, 0xb8, 0xe3, 0xf8, 0x45, 0x78, 0xe7, 0xed, 0x72, 0x15, 0x18, 0xe9, 0xef, 0xcb, 0x9f,
- 0xbf, 0x59, 0x87, 0x75, 0xa6, 0xcb, 0xe4, 0xc2, 0xd5, 0xf3, 0x73, 0x34, 0x62, 0x6f, 0x29, 0x26,
- 0xcf, 0x36, 0xec, 0xe8, 0x91, 0x6e, 0x6b, 0x2a, 0x0c, 0x4d, 0x9d, 0xc9, 0xce, 0x6d, 0x70, 0x41,
- 0xb8, 0x33, 0x7c, 0xb9, 0x28, 0xe5, 0x80, 0x2d, 0x8c, 0x21, 0xa4, 0xfe, 0x18, 0xc6, 0x78, 0xad,
- 0xe7, 0xb4, 0x2d, 0x35, 0xe0, 0xa7, 0xb9, 0xfc, 0x28, 0x6d, 0xc8, 0xf3, 0xe1, 0xad, 0xe3, 0x45,
- 0xf9, 0x34, 0x0d, 0x1c, 0xb4, 0x81, 0x05, 0x43, 0x33, 0x75, 0x87, 0x01, 0x6c, 0xfd, 0x1f, 0x46,
- 0xfd, 0x21, 0x99, 0xe1, 0xe6, 0x7e, 0x18, 0x8a, 0x88, 0x1a, 0x6e, 0xb9, 0xe3, 0x5c, 0xe9, 0x92,
- 0xb5, 0x98, 0x26, 0xd3, 0x2b, 0x68, 0x31, 0x16, 0xdc, 0xfb, 0xf7, 0xdb, 0x19, 0x5f, 0x7d, 0x27,
- 0x09, 0xbe, 0xce, 0x97, 0x51, 0x72, 0xac, 0xf2, 0xeb, 0xb5, 0xba, 0x9d, 0x8e, 0x38, 0xf3, 0x5e,
- 0x47, 0xf9, 0xaf, 0xc7, 0xe7, 0x05, 0x77, 0x22, 0xb8, 0xed, 0x5f, 0x1b, 0x5d, 0x2b, 0xea, 0x55,
- 0xe5, 0x5f, 0x67, 0xaa, 0xc9, 0x39, 0x56, 0x79, 0x94, 0xbb, 0x5d, 0xaf, 0x47, 0x1c, 0x98, 0x2f,
- 0x31, 0x68, 0x1a, 0x38, 0xab, 0xc1, 0x0a, 0x86, 0x66, 0xea, 0xcd, 0x02, 0xd8, 0x39, 0x3e, 0x8c,
- 0xd4, 0x37, 0x7d, 0x92, 0x62, 0xf8, 0x5c, 0xff, 0xf2, 0x51, 0x90, 0xad, 0x9f, 0x25, 0xa6, 0xa3,
- 0xe8, 0xf4, 0x3d, 0xc0, 0xca, 0xb4, 0xe7, 0x42, 0xc4, 0x61, 0x0e, 0x8a, 0x46, 0x85, 0x9d, 0xa5,
- 0x94, 0xa4, 0x29, 0x99, 0x0b, 0xd3, 0x4f, 0x32, 0x13, 0x6e, 0x18, 0x7c, 0xb8, 0xa7, 0x1d, 0x7d,
- 0x1c, 0x6b, 0x6a, 0xb6, 0x7d, 0xb8, 0x53, 0x3a, 0xa7, 0xce, 0xda, 0xae, 0x2b, 0xe1, 0x87, 0x69,
- 0x0e, 0xd4, 0x35, 0x5b, 0xdf, 0x5c, 0xc8, 0x1d, 0xb2, 0x67, 0x6d, 0x57, 0xf4, 0x91, 0xa2, 0xd5,
- 0xcb, 0x23, 0x78, 0x15, 0xc3, 0x91, 0x76, 0xe3, 0xb7, 0x22, 0x74, 0x71, 0x41, 0xcc, 0x86, 0x95,
- 0x6d, 0x90, 0x24, 0x85, 0xbf, 0x52, 0x4a, 0x71, 0x20, 0x1b, 0x9f, 0x7d, 0xd4, 0x5a, 0x02, 0x3b,
- 0x36, 0x02, 0xe1, 0xf4, 0x25, 0xef, 0x6e, 0x69, 0x3f, 0x38, 0x1a, 0xc8, 0xa2, 0x90, 0x6f, 0x07,
- 0x35, 0x7d, 0x8e, 0xc5, 0xf9, 0x3e, 0x17, 0x4f, 0xdd, 0x85, 0x24, 0xba, 0x57, 0x98, 0xc8, 0x58,
- 0x74, 0x7a, 0xff, 0x60, 0x65, 0x5a, 0x92, 0x21, 0x62, 0xd1, 0x07, 0x45, 0x23, 0xa3, 0xaf, 0xb3,
- 0xc5, 0xf7, 0x4d, 0x4e, 0x1c, 0xcd, 0xbe, 0xfe, 0x05, 0x45, 0x19, 0x26, 0xb5, 0x5d, 0x24, 0x40,
- 0x75, 0xee, 0xda, 0xce, 0x90, 0x15, 0x04, 0x82, 0x3c, 0xba, 0xac, 0x6b, 0x70, 0x1a, 0x73, 0x86,
- 0xb2, 0xf2, 0xdd, 0x1f, 0xa5, 0x46, 0x55, 0xf9, 0x85, 0x29, 0x20, 0x11, 0x63, 0xf6, 0x2c, 0xac,
- 0xd2, 0xc9, 0xa3, 0xf0, 0x19, 0x99, 0xae, 0xb3, 0xf5, 0xe8, 0xec, 0x49, 0xb6, 0x35, 0x2b, 0x1d,
- 0x99, 0x0f, 0x73, 0xf3, 0x08, 0x5e, 0xfe, 0x09, 0x43, 0xb4, 0x4b, 0x59, 0xb9, 0x3e, 0x18, 0xf7,
- 0x23, 0xd7, 0x45, 0xd5, 0x09, 0x25, 0x91, 0xa1, 0x73, 0x43, 0x7a, 0xfb, 0x07, 0x49, 0x1b, 0x30,
- 0x15, 0xd5, 0xa4, 0x21, 0x2c, 0xca, 0xff, 0xc8, 0x4c, 0x7b, 0x60, 0x33, 0xa5, 0xd9, 0x74, 0x37,
- 0x08, 0x2a, 0xeb, 0x39, 0xa4, 0x3d, 0x3a, 0x51, 0xb5, 0xde, 0x11, 0xb3, 0xdd, 0x81, 0x2f, 0x6b,
- 0x27, 0xc2, 0xd1, 0x28, 0x5b, 0xda, 0x8c, 0x68, 0xc8, 0x2c, 0x93, 0x43, 0x88, 0xe8, 0xed, 0xe4,
- 0x19, 0xea, 0xdb, 0xe5, 0xda, 0x08, 0xd8, 0x50, 0x42, 0xca, 0x98, 0x38, 0xf7, 0xf9, 0xad, 0x88,
- 0x76, 0x91, 0xb5, 0xff, 0x4c, 0xc4, 0x7d, 0xa4, 0xde, 0x07, 0x92, 0x19, 0x85, 0x12, 0xd4, 0xd9,
- 0x39, 0x42, 0xf1, 0x01, 0x0f, 0xfc, 0x30, 0xd7, 0xd3, 0x34, 0xdc, 0xb1, 0x05, 0xb8, 0x11, 0xe7,
- 0x13, 0x2b, 0x7a, 0x43, 0x57, 0xab, 0x0d, 0x84, 0x4b, 0xc2, 0x1c, 0xd7, 0x8c, 0xc9, 0xf9, 0x89,
- 0x05, 0x81, 0xb1, 0x53, 0xa7, 0xb0, 0x8b, 0x6a, 0xe5, 0x04, 0x42, 0x96, 0xdc, 0x18, 0x2a, 0xe1,
- 0xee, 0x0a, 0xe3, 0xa2, 0xb1, 0xd5, 0x15, 0x0e, 0xc3, 0xd8, 0x72, 0x6e, 0x6f, 0x95, 0x10, 0x1b,
- 0x57, 0xad, 0xba, 0xb5, 0x6c, 0x7f, 0x03, 0x80, 0x11, 0x92, 0x7d, 0xbe, 0x24, 0xea, 0xb4, 0x83,
- 0x9f, 0xf1, 0xad, 0x91, 0x73, 0x3f, 0x0c, 0x45, 0x44, 0x0d, 0x37, 0xbd, 0x90, 0x2e, 0x95, 0x49,
- 0xbd, 0xb2, 0xcd, 0xea, 0x8f, 0x55, 0x0b, 0x47, 0x69, 0x25, 0xe6, 0x68, 0xc4, 0xde, 0x52, 0x4c,
- 0x45, 0x12, 0xe5, 0x58, 0xce, 0x9b, 0x98, 0xa7, 0x04, 0x3b, 0xca, 0x47, 0xfb, 0x9a, 0x91, 0x3f,
- 0xff, 0xca, 0xd3, 0x7e, 0xcf, 0xe0, 0xf7, 0x0f, 0x34, 0xcc, 0xfb, 0xe5, 0x45, 0xed, 0x92, 0xf8,
- 0xc3, 0x09, 0x93, 0x2c, 0x67, 0xac, 0x4c, 0xb2, 0x02, 0xfc, 0x65, 0xc2, 0x9c, 0x4d, 0xa9, 0xfe,
- 0x3b, 0xa9, 0xbb, 0x9e, 0x26, 0x62, 0xdf, 0x52, 0x6f, 0xe2, 0x49, 0xed, 0xa3, 0x09, 0x6a, 0x8d,
- 0x7b, 0x3a, 0xef, 0x95, 0x4f, 0x49, 0xcc, 0x9f, 0x8e, 0xdd, 0xc1, 0x3c, 0x84, 0x8b, 0xd1, 0x53,
- 0x8e, 0x31, 0x9d, 0x4d, 0x0d, 0x0a, 0xee, 0x44, 0xb3, 0x19, 0xbe, 0x36, 0xba, 0x56, 0x17, 0xaa,
- 0xe9, 0x60, 0x18, 0x6e, 0x3f, 0xfb, 0x71, 0xe1, 0x9a, 0x0a, 0xa5, 0xa4, 0x15, 0x3c, 0x41, 0x90,
- 0xc8, 0x5c, 0x17, 0x24, 0x1f, 0x40, 0x0f, 0xc5, 0x55, 0x9f, 0x4a, 0x03, 0xb4, 0xc4, 0x21, 0xca,
- 0x7c, 0x50, 0x14, 0x59, 0xc1, 0x67, 0xa8, 0x70, 0xd7, 0x0f, 0x16, 0xf6, 0xfe, 0x22, 0x80, 0xd8,
- 0x6b, 0x6e, 0xfa, 0xe7, 0xc4, 0x33, 0xb8, 0x3d, 0x27, 0xa2, 0xe3, 0x99, 0xfd, 0x4a, 0x8f, 0x85,
- 0x4c, 0xac, 0x2b, 0xcf, 0x9f, 0xe9, 0x34, 0x55, 0xef, 0x8e, 0x70, 0xda, 0x75, 0xa2, 0x62, 0x61,
- 0x83, 0x9a, 0xc7, 0x27, 0x0e, 0x87, 0x5f, 0x7f, 0xe3, 0xc3, 0xed, 0x13, 0xbb, 0xcf, 0x12, 0x20,
- 0xec, 0xe1, 0xa9, 0x3d, 0x98, 0x4b, 0xfa, 0x8b, 0x7f, 0x0e, 0xe7, 0x32, 0xc9, 0x24, 0x6b, 0x71,
- 0x70, 0x6f, 0x6b, 0x9d, 0x37, 0xa5, 0x8f, 0xe8, 0xd9, 0xbe, 0xee, 0xfd, 0xac, 0x02, 0x59, 0x67,
- 0xe2, 0x35, 0x9c, 0x66, 0x47, 0x17, 0x32, 0x96, 0xcd, 0x69, 0x8a, 0x65, 0x3d, 0xb5, 0xc9, 0xa4,
- 0xf1, 0x1e, 0xe6, 0x25, 0x10, 0xbc, 0x3f, 0x12, 0x86, 0xab, 0x96, 0xb2, 0xb1, 0x7c, 0x30, 0x2d,
- 0xcd, 0xdd, 0xa6, 0x77, 0xb8, 0xf0, 0x84, 0xaf, 0xb0, 0x9b, 0x08, 0x95, 0x68, 0xdc, 0x0b, 0x2b,
- 0x5a, 0x06, 0xe0, 0xdf, 0x6f, 0xf2, 0xb2, 0xbb, 0x41, 0x48, 0x2e, 0x9b, 0x25, 0x73, 0xb1, 0x09,
- 0x2b, 0xfd, 0xae, 0xec, 0xad, 0x18, 0xab, 0xf0, 0xc6, 0x9d, 0x6b, 0x48, 0xda, 0xc8, 0x34, 0x5b,
- 0xc2, 0x9d, 0xb6, 0x82, 0x92, 0xe3, 0xda, 0x11, 0x5c, 0x97, 0xce, 0xec, 0xcf, 0xf4, 0x75, 0xcb,
- 0xa7, 0x27, 0x79, 0x3e, 0x89, 0x8c, 0xaa, 0x31, 0xc9, 0x52, 0x40, 0x22, 0xc6, 0x2f, 0x58, 0x9b,
- 0xa1, 0xd9, 0xa7, 0x5c, 0xf2, 0xed, 0x58, 0x7d, 0xce, 0xeb, 0x3c, 0xc6, 0xef, 0x3f, 0xd5, 0x25,
- 0x2c, 0x97, 0x55, 0x20, 0x23, 0x36, 0xcf, 0x1f, 0x9f, 0x4f, 0xbc, 0x82, 0xa0, 0x61, 0x65, 0xd0,
- 0x06, 0xfe, 0xde, 0x62, 0x7b, 0x61, 0xf2, 0x4c, 0x07, 0xb9, 0x7c, 0xe4, 0x29, 0x10, 0x8d, 0xbe,
- 0x2d, 0x03, 0x70, 0x8e, 0xd6, 0x79, 0x59, 0xbc, 0xc1, 0x24, 0x17, 0xac, 0xf3, 0xd8, 0xb9, 0xe5,
- 0x3e, 0x28, 0x0a, 0xcd, 0x81, 0xd2, 0x54, 0x38, 0x8a, 0xe6, 0x0b, 0x7b, 0x7f, 0x11, 0x40, 0x6c,
- 0x71, 0xfb, 0x4e, 0x33, 0xc2, 0xea, 0x19, 0x4b, 0x87, 0xd5, 0x45, 0xd3, 0xff, 0xbb, 0x85, 0x52,
- 0x3f, 0xbc, 0x2f, 0x63, 0x74, 0x9d, 0xc2, 0x9b, 0xd4, 0x8d, 0xa0, 0x55, 0x2c, 0xa8, 0x9c, 0x59,
- 0xf6, 0x74, 0x1d, 0xe9, 0x9e, 0x92, 0x5b, 0xfd, 0xdf, 0x79, 0x41, 0x78, 0xcb, 0xd5, 0x61, 0xa6,
- 0xce, 0xa2, 0xc9, 0x46, 0x64, 0x21, 0xfd, 0x89, 0x52, 0x26, 0x36, 0xe7, 0x9d, 0xd4, 0xac, 0x74,
- 0x38, 0xd6, 0xd4, 0xaf, 0xfa, 0xb3, 0xa6, 0x74, 0x8d, 0x5f, 0x77, 0x9f, 0x56, 0x01, 0xcd, 0xd2,
- 0x33, 0x83, 0x50, 0xa7, 0x82, 0x5f, 0xe5, 0x03, 0xda, 0x3c, 0x58, 0x5e, 0x7e, 0x88, 0x45, 0xe6,
- 0x87, 0x8f, 0x53, 0xda, 0x5c, 0x78, 0x42, 0xb6, 0x58, 0xac, 0x04, 0xab, 0x34, 0x6e, 0xe4, 0xf4,
- 0x42, 0x78, 0x1e, 0x94, 0x40, 0xb5, 0xfc, 0x48, 0x5d, 0xe9, 0x1d, 0x8d, 0x81, 0x33, 0xc0, 0xb4,
- 0x8c, 0xda, 0xd7, 0xd2, 0x24, 0x94, 0x01, 0xc1, 0x0f, 0xcf, 0x2b, 0x6a, 0x1c, 0xe7, 0x6c, 0xc0,
- 0x26, 0x56, 0xf4, 0x86, 0xae, 0x95, 0x1a, 0xcb, 0x96, 0x47, 0x38, 0x6d, 0xdb, 0x51, 0x31, 0xd1,
- 0x7a, 0xae, 0xca, 0x3b, 0xba, 0x06, 0x5a, 0x3c, 0xd0, 0xb6, 0x6a, 0x12, 0xd7, 0x32, 0x0d, 0x66,
- 0xac, 0x72, 0xfd, 0x36, 0xf1, 0x60, 0xe9, 0x46, 0x9e, 0x31, 0x6f, 0xe3, 0xee, 0xa6, 0xd0, 0xaf,
- 0x98, 0x9b, 0x56, 0x5d, 0xfd, 0x11, 0x68, 0xaa, 0x1d, 0xdf, 0xe0, 0x77, 0xea, 0x87, 0xc4, 0xc2,
- 0x79, 0xd1, 0xa5, 0x0a, 0x66, 0xd7, 0x23, 0x1a, 0x32, 0x0b, 0x54, 0x60, 0x22, 0x3a, 0xaa, 0x39,
- 0x8b, 0xb0, 0x2c, 0x1e, 0xaa, 0xba, 0x65, 0x2e, 0x56, 0x1d, 0xfc, 0xa0, 0x66, 0x4e, 0x3d, 0x4b,
- 0x58, 0xed, 0xaa, 0x40, 0x46, 0x6c, 0x5d, 0x3e, 0xfd, 0x9e, 0xbb, 0xc7, 0x83, 0xc2, 0xca, 0x63,
- 0x56, 0x39, 0x9f, 0x1b, 0x99, 0x30, 0x95, 0x23, 0x4f, 0xf9, 0xd6, 0x90, 0x77, 0x53, 0x68, 0xb6,
- },
- { /* 9 */
- 0xa8, 0x2c, 0x9d, 0x1e, 0xd9, 0x7e, 0xa9, 0xb3, 0xc0, 0x01, 0x6b, 0x3d, 0xc4, 0xa3, 0x83, 0xb4,
- 0xb4, 0x6b, 0xa4, 0x9d, 0x6c, 0x77, 0x14, 0x4c, 0x17, 0xa0, 0x80, 0x59, 0xd2, 0xde, 0x39, 0xaa,
- 0x96, 0x95, 0xc3, 0xd6, 0x72, 0x8f, 0xd1, 0xd8, 0xb2, 0x47, 0xed, 0x28, 0x6d, 0x22, 0x15, 0xce,
- 0x1e, 0xeb, 0x9c, 0x39, 0x0a, 0xe9, 0x43, 0xcd, 0x63, 0x5d, 0x9a, 0x2f, 0xd4, 0x54, 0xa5, 0x9d,
- 0x8a, 0xd2, 0xfa, 0x55, 0xc7, 0x86, 0x6c, 0x27, 0x65, 0xe6, 0x06, 0x4c, 0x7b, 0x5f, 0xaf, 0xd0,
- 0xf5, 0x99, 0x50, 0xe1, 0x53, 0x37, 0x1d, 0xda, 0x6f, 0xe8, 0x61, 0xe9, 0x49, 0x42, 0xb1, 0x07,
- 0x9f, 0x36, 0xa1, 0x26, 0x75, 0xf9, 0xd0, 0x09, 0x7d, 0x4f, 0x33, 0x03, 0x82, 0x73, 0x87, 0x27,
- 0xa5, 0x14, 0x76, 0x59, 0x63, 0x0b, 0x97, 0x06, 0xa4, 0x32, 0x57, 0x80, 0x6c, 0xa0, 0x2f, 0x98,
- 0x13, 0xd3, 0x77, 0x7e, 0xb0, 0x9c, 0x7d, 0x78, 0x07, 0x6e, 0xa6, 0x92, 0x7c, 0x57, 0x09, 0xb1,
- 0x39, 0xd8, 0xc1, 0x98, 0x17, 0x62, 0xc6, 0x24, 0x37, 0xff, 0xcc, 0x0c, 0x4d, 0x0f, 0x59, 0x9c,
- 0xac, 0xb7, 0x14, 0xa9, 0x64, 0x7d, 0x96, 0xd7, 0x6b, 0x3a, 0x89, 0xab, 0x83, 0xf1, 0xbd, 0x71,
- 0x2d, 0x6a, 0x29, 0xb6, 0x1b, 0x6d, 0x05, 0x13, 0x75, 0x28, 0x20, 0x87, 0xd5, 0xd6, 0x9f, 0xcb,
- 0x83, 0x71, 0x98, 0xa5, 0xc0, 0xf0, 0x6d, 0xf6, 0xaa, 0xee, 0xd8, 0x67, 0x94, 0x0e, 0x3d, 0x39,
- 0x86, 0xbc, 0xa2, 0x4f, 0xc3, 0x83, 0x2d, 0x8b, 0x5b, 0xab, 0xe3, 0x35, 0xb2, 0xa9, 0xed, 0x5c,
- 0xb9, 0x53, 0x4f, 0xda, 0xd6, 0x02, 0x2a, 0xf9, 0x73, 0x93, 0xbc, 0xe4, 0x7a, 0xdd, 0x95, 0x86,
- 0x76, 0xe8, 0xc8, 0x44, 0x93, 0xc7, 0x70, 0x2c, 0xc5, 0x06, 0xb9, 0x8e, 0xdd, 0x4c, 0x8c, 0x3e,
- 0x0f, 0x94, 0x4e, 0xfd, 0x05, 0x95, 0xc0, 0x87, 0xd0, 0xcf, 0x4d, 0xf6, 0x6a, 0x2a, 0xb3, 0xaf,
- 0x5a, 0xd4, 0x52, 0xaf, 0x36, 0xda, 0x0a, 0x26, 0xea, 0x50, 0x40, 0xcd, 0x69, 0x6f, 0xfd, 0x55,
- 0xa0, 0xd9, 0x4c, 0xb3, 0x60, 0x78, 0xd7, 0x7b, 0x55, 0x77, 0x6c, 0xd2, 0x4a, 0x07, 0xff, 0xfd,
- 0x92, 0x0e, 0x4a, 0x61, 0xcf, 0x8c, 0xee, 0xbc, 0x19, 0x7c, 0x0f, 0xbe, 0x2a, 0x70, 0x2b, 0x0b,
- 0xe2, 0xd1, 0xae, 0x28, 0x5e, 0xa8, 0x5f, 0xc6, 0xc3, 0xbd, 0x25, 0xed, 0x72, 0x47, 0x86, 0x73,
- 0x34, 0xe0, 0x2a, 0xdf, 0xad, 0x17, 0xf8, 0x91, 0x53, 0xcc, 0xf0, 0xb1, 0xe5, 0x0c, 0xf5, 0xb0,
- 0xee, 0xbf, 0xf6, 0x32, 0x5a, 0xad, 0x1e, 0x6a, 0xfd, 0xf0, 0xc0, 0x94, 0xbb, 0xb1, 0xc4, 0xff,
- 0x6d, 0xce, 0x6e, 0x97, 0x9a, 0x5d, 0x73, 0x9c, 0x57, 0x1e, 0x18, 0xf3, 0x2f, 0xbf, 0xf9, 0xc6,
- 0x1a, 0x70, 0x15, 0x8e, 0xb7, 0xea, 0x7c, 0xa9, 0xc8, 0x66, 0x78, 0xb9, 0x93, 0x06, 0x9b, 0x58,
- 0x24, 0xc9, 0x4b, 0x46, 0x1c, 0x1b, 0x04, 0xc2, 0xba, 0x20, 0xfe, 0xac, 0x3a, 0x87, 0x0d, 0x22,
- 0x1f, 0xbd, 0x2f, 0x64, 0xb4, 0x99, 0x3c, 0xd4, 0x39, 0x23, 0x43, 0xeb, 0xb5, 0xa1, 0x4b, 0x3d,
- 0xd2, 0xaa, 0x0d, 0x40, 0x4e, 0xbc, 0x98, 0x33, 0x3b, 0x4a, 0x37, 0xca, 0xd0, 0x19, 0x4d, 0x06,
- 0x18, 0xdc, 0xb0, 0x34, 0x08, 0x0a, 0x82, 0x9b, 0x7c, 0x9a, 0x09, 0xf2, 0x51, 0x2f, 0x84, 0xdb,
- 0x37, 0x1a, 0x3c, 0x38, 0xac, 0x87, 0x79, 0xba, 0xbd, 0x4e, 0x58, 0x3e, 0x46, 0xd0, 0x04, 0x93,
- 0x6a, 0xaf, 0xf1, 0xc7, 0x26, 0xce, 0xcd, 0xd3, 0x12, 0xa7, 0x52, 0xea, 0xcb, 0x31, 0x36, 0x20,
- 0x3f, 0xef, 0xed, 0x95, 0x15, 0x81, 0x07, 0x72, 0x28, 0x38, 0x5f, 0xd1, 0xc8, 0x74, 0x78, 0xda,
- 0xae, 0x1b, 0xb1, 0x13, 0xdb, 0x9d, 0x68, 0xe5, 0xdf, 0xc6, 0xf8, 0xe0, 0x41, 0xd8, 0xa2, 0xf2,
- 0x10, 0x29, 0x61, 0x99, 0xb1, 0x0c, 0xfc, 0x53, 0xe9, 0xec, 0x0e, 0x1d, 0xdf, 0x8b, 0xf8, 0x92,
- 0x46, 0x93, 0x6b, 0x2c, 0x83, 0xd3, 0xb7, 0xd9, 0x3d, 0xf1, 0xab, 0xa9, 0x7f, 0x12, 0x47, 0x4b,
- 0x6c, 0x98, 0xdd, 0xca, 0x24, 0x2d, 0x0c, 0x85, 0x0d, 0x60, 0xc1, 0x37, 0x4e, 0x4a, 0x17, 0x66,
- 0xbc, 0x9e, 0x75, 0x30, 0xd5, 0x71, 0x6a, 0x84, 0x82, 0xd6, 0x87, 0xb6, 0x5c, 0x7a, 0x45, 0xe3,
- 0x68, 0x03, 0x54, 0x7d, 0x99, 0x2e, 0x33, 0xe1, 0xa6, 0x5b, 0x23, 0xa1, 0x09, 0x18, 0x29, 0xa3,
- 0x0b, 0x0f, 0xc7, 0x4a, 0xb8, 0x96, 0xff, 0xe3, 0x7b, 0xf4, 0xaf, 0x60, 0x2d, 0x78, 0x8d, 0x6a,
- 0x3e, 0xb9, 0x5e, 0xc8, 0xab, 0xf1, 0x78, 0x6b, 0x72, 0x46, 0x86, 0x15, 0xa9, 0x81, 0x96, 0x7a,
- 0xfe, 0x96, 0x97, 0xab, 0xeb, 0xa1, 0xe2, 0x39, 0x14, 0x1c, 0xce, 0x89, 0x64, 0x3a, 0x3c, 0x6d,
- 0xa9, 0x7a, 0x2e, 0x43, 0x67, 0x0e, 0xd6, 0xaa, 0x9a, 0x7f, 0xb2, 0xf9, 0xa5, 0x56, 0x6d, 0x14,
- 0x28, 0xa7, 0x13, 0x5c, 0x18, 0x1e, 0x45, 0x6e, 0x84, 0x6d, 0x1b, 0xd5, 0xf3, 0x71, 0x4f, 0xae,
- 0x7c, 0xb1, 0xbc, 0x53, 0x95, 0x21, 0xf0, 0xd6, 0xe4, 0x8c, 0xcf, 0x2a, 0x91, 0xc1, 0xef, 0xf4,
- 0xf2, 0xf8, 0xcf, 0xb1, 0xef, 0xa4, 0xa3, 0x95, 0x2a, 0x51, 0x2b, 0xf0, 0xad, 0xcc, 0x7e, 0xe1,
- 0xbf, 0x64, 0x63, 0xd7, 0xd4, 0xe1, 0xeb, 0xaf, 0x6c, 0x54, 0x2f, 0x39, 0xff, 0xa6, 0xb4, 0xc0,
- 0xf4, 0xcf, 0xe3, 0xbc, 0xed, 0x47, 0x62, 0xc3, 0x35, 0x96, 0xb8, 0x2d, 0x28, 0xb7, 0x5f, 0xa7,
- 0xcb, 0x20, 0x0e, 0x29, 0xf8, 0xc6, 0x65, 0xb1, 0x1d, 0xae, 0xe7, 0xfc, 0xe0, 0xc3, 0x27, 0x7d,
- 0x06, 0x37, 0x2c, 0x0d, 0x02, 0xe3, 0xc1, 0x56, 0x1f, 0xc7, 0x93, 0xdd, 0x85, 0x7b, 0x21, 0x46,
- 0xf8, 0xa1, 0xbb, 0xa6, 0xe9, 0x42, 0x23, 0x6f, 0x0b, 0xdb, 0x5d, 0x54, 0xe1, 0x41, 0x1d, 0x2b,
- 0xbd, 0xc8, 0xc6, 0x6d, 0x6b, 0x01, 0x15, 0x9d, 0xd8, 0xa8, 0x5e, 0x72, 0x3d, 0x8f, 0xab, 0x43,
- 0x75, 0x12, 0xde, 0xa3, 0x92, 0x57, 0xf1, 0x07, 0x2b, 0x84, 0x11, 0x01, 0x7e, 0x90, 0x7d, 0x1d,
- 0x03, 0xfa, 0x16, 0xe7, 0x01, 0x90, 0x81, 0x2b, 0xee, 0x82, 0xa8, 0x8f, 0xa3, 0xdc, 0xf1, 0x23,
- 0x4c, 0xca, 0x1f, 0x3b, 0x85, 0x35, 0x37, 0x23, 0x1c, 0x7b, 0xdd, 0x0d, 0x33, 0x9f, 0x24, 0x81,
- 0x4b, 0xab, 0x80, 0x6b, 0x39, 0xa6, 0x89, 0x6c, 0x59, 0xc2, 0x97, 0x14, 0xd7, 0x11, 0xeb, 0x67,
- 0xc0, 0x2f, 0xc9, 0x63, 0x40, 0x50, 0x9a, 0x52, 0x66, 0x5a, 0x48, 0x9c, 0xcd, 0xbb, 0xaa, 0x17,
- 0x04, 0x9b, 0x89, 0xb7, 0xbd, 0x03, 0x3f, 0x64, 0xab, 0x3b, 0xe2, 0x96, 0x47, 0x52, 0x3e, 0xc5,
- 0xb3, 0x0a, 0x3b, 0xcd, 0xd0, 0xe4, 0xaa, 0x03, 0x52, 0x19, 0xca, 0x40, 0x36, 0x50, 0xf6, 0x4c,
- 0xb6, 0xc7, 0x01, 0x27, 0xd3, 0x97, 0xea, 0x7e, 0xa3, 0x5c, 0xf1, 0x12, 0x10, 0xf7, 0x26, 0x29,
- 0x51, 0xdb, 0x95, 0xe5, 0x8e, 0x4c, 0xf5, 0xc5, 0x91, 0xa4, 0xef, 0xad, 0x44, 0x17, 0x70, 0x3f,
- 0xeb, 0x72, 0xcc, 0xd8, 0x59, 0xde, 0x5e, 0x17, 0x0c, 0xb5, 0xfb, 0xc6, 0x9d, 0x16, 0x14, 0x9a,
- 0x98, 0x57, 0x3e, 0x76, 0xc9, 0x6a, 0x6e, 0x46, 0x38, 0xf6, 0x79, 0x1a, 0x66, 0xfd, 0x48, 0xc1,
- 0x23, 0xa8, 0xd4, 0x16, 0xa0, 0x88, 0xba, 0x8d, 0xff, 0x99, 0xb4, 0xb5, 0xde, 0x09, 0xc2, 0xc4,
- 0xab, 0xd6, 0x8b, 0xf9, 0xd8, 0xee, 0x28, 0x98, 0x2e, 0x83, 0xc3, 0xb2, 0x67, 0x7f, 0x72, 0x97,
- 0xb2, 0x5c, 0x88, 0x90, 0x6e, 0x94, 0xd5, 0x1a, 0x08, 0x67, 0x13, 0x84, 0x57, 0xa5, 0x18, 0xec,
- 0x99, 0x01, 0x8d, 0x2b, 0x77, 0x1a, 0x11, 0x5f, 0x62, 0x88, 0xa0, 0xde, 0x07, 0x08, 0xa6, 0x61,
- 0x89, 0x28, 0xec, 0xb2, 0xc6, 0x16, 0xed, 0x0c, 0x8b, 0x64, 0xae, 0xc3, 0xd8, 0x83, 0x5e, 0xf3,
- 0xdf, 0x92, 0xe6, 0x07, 0xf4, 0xc9, 0xa6, 0x86, 0x5f, 0x79, 0x0b, 0x77, 0x78, 0x1a, 0xe1, 0x2a,
- 0x0d, 0x38, 0xeb, 0x47, 0xba, 0x75, 0x3e, 0xb5, 0x64, 0x33, 0x3c, 0xbd, 0xa8, 0x03, 0xac, 0x2c,
- 0x31, 0x2d, 0x10, 0x35, 0xae, 0x64, 0xb8, 0xec, 0xa2, 0x89, 0xcb, 0xe3, 0xc3, 0xab, 0x25, 0xd5,
- 0x70, 0xdf, 0xe4, 0x49, 0x91, 0x24, 0xb1, 0x7a, 0xda, 0xc1, 0x2a, 0x53, 0x58, 0x37, 0xad, 0x78,
- 0x73, 0x25, 0xf2, 0xae, 0x90, 0xb4, 0x30, 0x51, 0x34, 0x43, 0x82, 0xdc, 0xfb, 0xeb, 0x5c, 0x5b,
- 0x1d, 0x11, 0x8a, 0xde, 0x0b, 0x79, 0xc2, 0xe6, 0x8d, 0xdf, 0x32, 0xa0, 0x77, 0x88, 0x54, 0xbe,
- 0x8d, 0xb3, 0x65, 0x05, 0x7b, 0x15, 0xd2, 0x68, 0x20, 0x5f, 0x4c, 0x55, 0x9f, 0xd1, 0x60, 0x36,
- 0xf1, 0x02, 0xd9, 0x56, 0xee, 0x34, 0x22, 0xbe, 0xc4, 0xd3, 0x83, 0x7f, 0x0e, 0x10, 0x8f, 0xc2,
- 0x7d, 0xe7, 0x0f, 0x0e, 0x2b, 0x51, 0x8f, 0xcf, 0xbe, 0xf2, 0x16, 0xee, 0xf0, 0x34, 0x01, 0x54,
- 0x17, 0x48, 0xfe, 0xc9, 0x0d, 0x9f, 0x42, 0x1c, 0xac, 0x55, 0x44, 0x04, 0x3b, 0x05, 0x37, 0x74,
- 0x2c, 0x3c, 0x9a, 0xeb, 0xa5, 0x1d, 0x7a, 0x0a, 0x2f, 0x56, 0xf9, 0x43, 0xb4, 0x23, 0x71, 0x6b,
- 0x35, 0xb6, 0x99, 0x82, 0x13, 0x67, 0x87, 0x88, 0x09, 0xb2, 0x29, 0x75, 0x84, 0xf9, 0x1b, 0x10,
- 0x88, 0x7e, 0x5f, 0xef, 0x78, 0x66, 0x92, 0x15, 0xd1, 0x1a, 0x77, 0x07, 0xb9, 0x76, 0xb0, 0x53,
- 0x67, 0x97, 0x1a, 0x80, 0x9c, 0xbb, 0xf3, 0x66, 0x76, 0x94, 0x6e, 0x57, 0x63, 0x32, 0x9a, 0x0c,
- 0xe1, 0x2b, 0xb8, 0xcf, 0x5f, 0x38, 0xde, 0xed, 0x2d, 0x3f, 0x8d, 0x62, 0xd1, 0x9b, 0x77, 0x50,
- 0xb5, 0x3d, 0x17, 0xc0, 0xd2, 0x07, 0x6b, 0x55, 0x4d, 0xde, 0x59, 0x9d, 0xb3, 0x2b, 0xd7, 0x0a,
- 0x64, 0x6d, 0x0c, 0x67, 0x9d, 0x2b, 0x72, 0x4d, 0x98, 0x16, 0xc6, 0xd8, 0xc0, 0xee, 0x6b, 0x2f,
- 0xb1, 0xa6, 0x9e, 0x77, 0x6f, 0x04, 0x54, 0x31, 0xe6, 0xe5, 0xbb, 0x0b, 0xf4, 0x79, 0xe9, 0xcf,
- 0x08, 0xf5, 0xd1, 0xad, 0xb9, 0x06, 0x7e, 0xc8, 0x95, 0x76, 0x07, 0xef, 0x8e, 0xa4, 0x7c, 0x49,
- 0xe5, 0xb0, 0x31, 0x78, 0xe2, 0x3b, 0xe1, 0x89, 0x86, 0x04, 0x6f, 0xf4, 0x96, 0xc9, 0x49, 0x95,
- 0x1c, 0x47, 0x39, 0x83, 0xb5, 0x09, 0xbd, 0xff, 0xd7, 0xa1, 0xeb, 0x64, 0x16, 0x7d, 0xba, 0x1e,
- 0x6b, 0xf9, 0x42, 0x9a, 0x98, 0xbe, 0xb2, 0xca, 0x48, 0xd9, 0x8b, 0x2e, 0xaa, 0xc4, 0xd8, 0x80,
- 0x5c, 0xe3, 0x7e, 0xa2, 0x34, 0x39, 0xcb, 0x70, 0xf5, 0x97, 0xd3, 0x10, 0xec, 0x14, 0xdc, 0x13,
- 0xa3, 0x23, 0x5a, 0x54, 0x61, 0xe8, 0x56, 0x50, 0xbb, 0xf5, 0xc4, 0x5d, 0xe9, 0xdb, 0x0e, 0xde,
- 0x7a, 0x86, 0x90, 0x5e, 0x97, 0xc2, 0x31, 0x80, 0xfb, 0x4b, 0x5c, 0xf7, 0x14, 0xba, 0xce, 0xb2,
- 0xe8, 0x88, 0xda, 0x3f, 0x58, 0x4e, 0xdf, 0x3c, 0xe2, 0x37, 0x53, 0x49, 0x3e, 0xca, 0xe5, 0xb9,
- 0xda, 0x5f, 0xdc, 0xed, 0xf7, 0xba, 0xe6, 0xfb, 0xae, 0x3c, 0x30, 0x25, 0x5e, 0xbd, 0x31, 0x4f,
- 0xd7, 0x67, 0x37, 0xaa, 0x4d, 0xcf, 0xd8, 0x4e, 0xca, 0x0f, 0x0c, 0x98, 0xf6, 0xbe, 0x9d, 0x63,
- 0xfa, 0x0d, 0x1e, 0x1c, 0x56, 0xa2, 0xdd, 0x5d, 0xbf, 0x27, 0x2c, 0x1f, 0x23, 0x68, 0x02, 0xa8,
- 0xa7, 0xb8, 0xd3, 0xe3, 0xdc, 0xeb, 0x69, 0x34, 0x10, 0xce, 0x26, 0xcb, 0xae, 0x89, 0x30, 0x1b,
- 0x7f, 0x4b, 0xaa, 0xb4, 0x94, 0xb1, 0x71, 0xfd, 0x0a, 0x0e, 0x67, 0xa5, 0x32, 0x1d, 0x1e, 0xd7,
- 0xe4, 0xe6, 0x82, 0x25, 0x5c, 0x4b, 0x9e, 0x90, 0xdc, 0x7a, 0xb6, 0x30, 0xf7, 0x3c, 0xa7, 0x35,
- 0x8f, 0x1f, 0xc0, 0xbf, 0xc4, 0xf5, 0x2c, 0x5a, 0x94, 0xa3, 0x3d, 0x1e, 0x5d, 0xf8, 0x7f, 0xb5,
- 0xa1, 0x8f, 0xff, 0xee, 0xde, 0x08, 0xa8, 0x62, 0x0f, 0x09, 0xb5, 0x16, 0x2b, 0xf2, 0x11, 0x5d,
- 0x52, 0x21, 0x83, 0x02, 0x8f, 0xdc, 0x74, 0xee, 0x7f, 0x26, 0x47, 0x22, 0xe7, 0xcb, 0x81, 0x1c,
- 0xec, 0x13, 0x53, 0x88, 0xe5, 0x4d, 0xe0, 0x58, 0x49, 0x0c, 0xb1, 0xdf, 0x79, 0x98, 0xdb, 0x7c,
- 0x3b, 0x74, 0x64, 0x22, 0xa8, 0x82, 0x38, 0x16, 0x83, 0x03, 0xbd, 0x47, 0x8f, 0x26, 0x46, 0x1f,
- 0xa2, 0x75, 0xe9, 0x09, 0xdf, 0x98, 0x29, 0x49, 0xe1, 0x8b, 0x1d, 0x99, 0x88, 0x2e, 0xe0, 0x7e,
- 0x5f, 0x19, 0x68, 0x45, 0x35, 0xa9, 0x4a, 0x5b, 0x1b, 0x15, 0x7b, 0x9f, 0x4f, 0xc8, 0x2d, 0x30,
- 0x50, 0x8d, 0x26, 0xb8, 0x30, 0x3c, 0x8a, 0xdc, 0xcb, 0xda, 0x36, 0x69, 0x25, 0xe2, 0x9e, 0x9f,
- 0x4a, 0xfd, 0x33, 0x36, 0x87, 0xd6, 0xf6, 0x75, 0x03, 0xbc, 0x4e, 0xd0, 0xb6, 0xe4, 0x05, 0xc7,
- 0x57, 0xec, 0xb9, 0xe8, 0x8c, 0xaf, 0x34, 0x93, 0x8e, 0x63, 0x7c, 0x70, 0xc1, 0x6c, 0x51, 0x79,
- 0x55, 0x40, 0x1c, 0x52, 0x33, 0x4f, 0xca, 0xa1, 0x3a, 0x9f, 0x0d, 0x3b, 0x03, 0x45, 0x4e, 0xfa,
- 0xdc, 0x68, 0xf0, 0xe0, 0xf5, 0x59, 0x27, 0xad, 0xb1, 0xfb, 0xa3, 0xf8, 0xdb, 0xc6, 0x10, 0x09,
- 0xde, 0xc4, 0x55, 0x5a, 0x4a, 0xb9, 0xd9, 0x9f, 0x05, 0x07, 0xd2, 0xb3, 0x19, 0xef, 0x0f, 0x8a,
- 0x9d, 0x9a, 0x04, 0x9c, 0xca, 0x19, 0x2e, 0x3b, 0xc9, 0xb3, 0x42, 0x48, 0x40, 0x5a, 0x98, 0xa4,
- 0xe7, 0x1c, 0x94, 0xc2, 0x5d, 0xdb, 0x1f, 0xbb, 0x32, 0xf8, 0x1e, 0xbf, 0x54, 0xe0, 0x56, 0x16,
- 0xaf, 0x4d, 0x02, 0x4e, 0x65, 0xed, 0x17, 0xfc, 0x85, 0xb8, 0x21, 0x24, 0x20, 0x2d, 0x4c, 0x52,
- 0x97, 0xc3, 0x70, 0x8b, 0xcc, 0xff, 0xae, 0xc1, 0xe8, 0x39, 0x34, 0xec, 0x0c, 0xd7, 0xfb, 0x6e,
- 0xaa, 0x80, 0x38, 0xa4, 0x66, 0x9e, 0x57, 0x81, 0x74, 0xfd, 0x1a, 0x76, 0x06, 0x8a, 0x9c, 0x37,
- 0x26, 0x65, 0xee, 0xfc, 0xa3, 0xfb, 0xfa, 0xf0, 0x0e, 0xdc, 0x8f, 0xe7, 0xf8, 0xae, 0x12, 0xa1,
- 0x4d, 0x9c, 0xac, 0x66, 0x3b, 0x45, 0x48, 0x3a, 0x46, 0x05, 0x04, 0xc9, 0x52, 0x6a, 0xca, 0x21,
- 0x54, 0x16, 0xaf, 0x0f, 0x8d, 0x3f, 0xb5, 0xb8, 0x60, 0xe1, 0xd4, 0xff, 0x62, 0xb0, 0xa0, 0x5a,
- 0xf7, 0x35, 0xf5, 0x5b, 0xec, 0xd7, 0xe3, 0xe8, 0xdb, 0x14, 0x10, 0xa2, 0x8b, 0x6b, 0xae, 0x84,
- 0xd9, 0xa5, 0xca, 0x0a, 0xf6, 0x2a, 0x67, 0xd0, 0x40, 0xbe, 0x98, 0xaa, 0xfd, 0x61, 0xc0, 0x6c,
- 0x84, 0x10, 0x07, 0xf5, 0x7c, 0x63, 0xd3, 0xb9, 0xef, 0x57, 0x92, 0x7e, 0x70, 0x80, 0xf2, 0xdf,
- 0x41, 0xf2, 0xf4, 0x7c, 0x3f, 0x40, 0x09, 0x96, 0x78, 0x48, 0xe1, 0xb0, 0x9b, 0x9c, 0x88, 0xad,
- 0x82, 0x27, 0x2b, 0xf8, 0x7e, 0x80, 0x12, 0xef, 0xf0, 0x90, 0x01, 0xa3, 0xf5, 0xfb, 0xd3, 0x99,
- 0xd6, 0x31, 0x84, 0xf7, 0xf3, 0xbf, 0xa7, 0x57, 0x90, 0x71, 0xd5, 0x5c, 0x97, 0x4b, 0x73, 0xc3,
- 0xb7, 0x91, 0xb2, 0x7a, 0x6d, 0xe7, 0x95, 0x67, 0xf9, 0x22, 0x28, 0xd6, 0x71, 0x02, 0xc8, 0x89,
- 0xdb, 0x09, 0x6f, 0xb0, 0x49, 0xca, 0x99, 0xe2, 0xf4, 0x42, 0xe9, 0xe1, 0x3f, 0x48, 0xdf, 0xef,
- 0x2b, 0x5d, 0x05, 0xbb, 0x19, 0x8e, 0xc4, 0x45, 0x6a, 0xef, 0xb3, 0x5a, 0x50, 0xad, 0xbe, 0x8d,
- 0xa6, 0xee, 0x60, 0xbe, 0x62, 0x9b, 0x16, 0x2d, 0x4a, 0xb0, 0xff, 0x0f, 0xcf, 0x7c, 0xde, 0xbb,
- 0x38, 0x8e, 0x72, 0xc5, 0xa9, 0x12, 0xb9, 0x3d, 0x6d, 0x81, 0x15, 0xc8, 0x2c, 0xfa, 0xb7, 0x3c,
- 0xce, 0xed, 0x34, 0xc3, 0xfb, 0xb5, 0x25, 0xcc, 0xec, 0xeb, 0xdc, 0xae, 0xc6, 0x64, 0xf7, 0x18,
- 0x95, 0x6f, 0xd5, 0x31, 0x73, 0x1f, 0x50, 0xf3, 0x5c, 0xc5, 0x45, 0xa7, 0xce, 0xfe, 0xe4, 0xed,
- 0x71, 0x89, 0x57, 0x14, 0x2f, 0x54, 0xce, 0x63, 0x80, 0xbf, 0xf3, 0x97, 0x39, 0xc2, 0x43, 0xd8,
- 0xc3, 0xd5, 0xdf, 0x84, 0x41, 0xc0, 0x1b, 0x79, 0x88, 0xd8, 0xe0, 0x13, 0x6e, 0x67, 0x5b, 0x34,
- 0x8e, 0x49, 0x73, 0xe2, 0x7a, 0x85, 0x53, 0x43, 0xce, 0xdd, 0xe4, 0xda, 0x3c, 0x0d, 0x91, 0x15,
- 0x9a, 0xfb, 0x9b, 0xcc, 0x76, 0x8a, 0x90, 0x74, 0x8c, 0x0a, 0x08, 0x51, 0xa4, 0xd4, 0x57, 0x42,
- 0xef, 0xe9, 0x45, 0x6f, 0xe4, 0xdd, 0x61, 0x73, 0xa7, 0x8e, 0x19, 0x50, 0xda, 0x44, 0x2a, 0x5f,
- 0x25, 0x9f, 0xf8, 0x1b, 0xa2, 0x6b, 0x7b, 0xdb, 0xe0, 0x5e, 0x27, 0x68, 0x5b, 0x72, 0xe3, 0x82,
- 0xa4, 0x42, 0xc5, 0x04, 0xdd, 0x7b, 0xe8, 0x1f, 0xfe, 0x4c, 0x8e, 0x44, 0x0d, 0x55, 0xc1, 0x38,
- 0xe9, 0xde, 0x69, 0x62, 0xe6, 0x3e, 0xa0, 0x25, 0xb8, 0x49, 0x8a, 0x8d, 0x5f, 0x3f, 0x0b, 0x19,
- 0x3c, 0x15, 0xfb, 0x72, 0x14, 0x11, 0x86, 0x59, 0xc6, 0xba, 0xf7, 0x5e, 0x6b, 0xa8, 0x89, 0xf9,
- 0x6f, 0x62, 0xcb, 0x2d, 0x25, 0xbd, 0x8d, 0xae, 0xe3, 0xe2, 0x69, 0xb8, 0xed, 0x96, 0xe6, 0x45,
- 0x02, 0xac, 0xa5, 0xba, 0xbf, 0xe0, 0xfe, 0x32, 0xb4, 0xfc, 0x71, 0x4b, 0xc2, 0x29, 0x1f, 0x83,
- 0x01, 0x56, 0xb3, 0x5d, 0xbe, 0x70, 0x7f, 0x19, 0x5a, 0x7e, 0xd9, 0xc4, 0x61, 0xf5, 0xee, 0xa0,
- 0x0a, 0x59, 0x74, 0x17, 0x06, 0xe6, 0x80, 0xfa, 0x21, 0x8a, 0x76, 0xa4, 0x4c, 0x8d, 0x63, 0xca,
- 0x09, 0xa3, 0x62, 0xf0, 0x07, 0x76, 0x01, 0xd1, 0xcf, 0x08, 0xde, 0x2b, 0xef, 0x51, 0x92, 0xe9,
- 0x94, 0x39, 0x66, 0x6c, 0xcd, 0x6f, 0x2f, 0xea, 0x06, 0xbb, 0x9c, 0x63, 0xaf, 0x0b, 0x0a, 0x4d,
- 0xed, 0x45, 0xe0, 0xd5, 0x5b, 0x3d, 0x9f, 0x41, 0x13, 0x72, 0x68, 0x1b, 0x18, 0x6d, 0x35, 0xdc,
- 0x59, 0x2e, 0x44, 0x48, 0x37, 0x4a, 0x8b, 0x0d, 0x04, 0xd2, 0xe8, 0x42, 0xca, 0xb3, 0x0c, 0x76,
- 0x61, 0xa0, 0x36, 0x8d, 0x9e, 0x58, 0x32, 0x30, 0x69, 0x53, 0xfd, 0x8a, 0xe6, 0x49, 0xbb, 0x4a,
- 0x69, 0x55, 0xe7, 0x20, 0x27, 0x5e, 0x4c, 0xf8, 0xfc, 0x25, 0xfa, 0x65, 0x68, 0xed, 0xc7, 0x03,
- 0x29, 0xf1, 0xa0, 0x01, 0xa6, 0x6e, 0x3a, 0x77, 0xde, 0x13, 0xc2, 0x11, 0x92, 0x84, 0xa1, 0x0e,
- 0xb0, 0xf0, 0x2d, 0x2a, 0xd1, 0x74, 0x2b, 0x28, 0xbc, 0x9b, 0x62, 0xcf, 0x95, 0x8c, 0x07, 0x6f,
- 0x30, 0x7b, 0xa3, 0x68, 0x10, 0x14, 0xc7, 0xf5, 0xf8, 0xf7, 0x12, 0x27, 0xa2, 0x5e, 0xcb, 0x75,
- 0x60, 0xf6, 0x85, 0xd0, 0x20, 0x28, 0x4d, 0x29, 0x33, 0x2d, 0x24, 0x4e, 0x87, 0xbc, 0x55, 0xea,
- 0x74, 0x44, 0x6d, 0xfe, 0x2c, 0x27, 0x8e, 0x1e, 0x71, 0xfa, 0xc8, 0xc5, 0x1f, 0x65, 0x93, 0xbd,
- 0x22, 0xfe, 0x67, 0x4b, 0x1e, 0xf8, 0xc5, 0x94, 0xa5, 0xe7, 0x6d, 0x71, 0xbf, 0xfc, 0x2c, 0x64,
- 0x0c, 0x6e, 0x58, 0x1a, 0x04, 0x05, 0x41, 0xac, 0x3e, 0x4d, 0xe5, 0x79, 0xc9, 0xf6, 0x42, 0x8c,
- 0xcd, 0x17, 0x22, 0x24, 0xfa, 0x25, 0xa4, 0xe7, 0x02, 0x69, 0x74, 0x21, 0x65, 0xb8, 0x06, 0x3b,
- 0x7b, 0xd0, 0x23, 0x03, 0x29, 0xb2, 0x4e, 0x99, 0xa1, 0x35, 0x85, 0x33, 0x75, 0x4f, 0x20, 0x12,
- 0x5b, 0x82, 0xe1, 0xf2, 0x88, 0xaa, 0x75, 0x3f, 0xb0, 0x2e, 0x99, 0x09, 0x08, 0x9a, 0x13, 0xf5,
- 0x40, 0xa4, 0x47, 0x21, 0x81, 0x30, 0x76, 0x8f, 0x22, 0x36, 0x38, 0x74, 0xfa, 0x69, 0x66, 0x0d,
- 0xe3, 0x87, 0x1d, 0x75, 0xe0, 0xd8, 0x20, 0xdf, 0x99, 0xc3, 0xfc, 0x29, 0x13, 0xb2, 0x68, 0xd3,
- 0x14, 0xb2, 0xe8, 0x2e, 0x0c, 0x0f, 0xc3, 0x37, 0x42, 0xd7, 0xec, 0x8b, 0x98, 0xd9, 0xc6, 0x57,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xfd, 0x6c, 0x81, 0x4c, 0xea, 0x31, 0x63, 0x12, 0xfa, 0x9e, 0x66, 0x06, 0xc7, 0xe6, 0xcd, 0x4e,
- 0x78, 0x2a, 0x35, 0xe4, 0x28, 0x22, 0xcf, 0xb2, 0x4f, 0xb7, 0x2d, 0xbc, 0xd6, 0x93, 0xd1, 0x31,
- 0xad, 0xe1, 0xa7, 0xf4, 0xda, 0x0d, 0xe9, 0xce, 0x31, 0x44, 0x50, 0x6f, 0xe2, 0x04, 0x53, 0xd1,
- 0xd0, 0x06, 0xa8, 0xfa, 0xf1, 0x5c, 0x66, 0x01, 0x8f, 0xb6, 0x46, 0x81, 0x12, 0x30, 0x52, 0x85,
- 0x91, 0xf4, 0x5c, 0x86, 0xce, 0x1c, 0x6f, 0x97, 0xf7, 0xfe, 0xa7, 0x31, 0x89, 0xac, 0xda, 0x28,
- 0xfc, 0x3a, 0x32, 0x11, 0x54, 0x41, 0x1c, 0x0b, 0xa0, 0xe0, 0xbf, 0xc2, 0xa6, 0x13, 0x23, 0xee,
- 0xf9, 0xf7, 0x08, 0xfb, 0x57, 0x32, 0x5c, 0x76, 0x51, 0xa5, 0x84, 0x90, 0x80, 0xb4, 0xf3, 0x8b,
- 0xea, 0x24, 0x7f, 0x85, 0xe7, 0xae, 0x21, 0x0e, 0x56, 0xcb, 0x22, 0x02, 0xfc, 0xe3, 0xfa, 0x3a,
- 0x85, 0x46, 0xb4, 0xa8, 0xc2, 0x13, 0xac, 0xa0, 0xb5, 0x29, 0x4b, 0xba, 0x11, 0x75, 0x1c, 0x7f,
- 0x7e, 0x1d, 0x19, 0xe9, 0x2a, 0xc1, 0x0e, 0xe4, 0x50, 0x70, 0xbe, 0x61, 0x53, 0xe8, 0xf0, 0x77,
- 0x77, 0xbe, 0x7b, 0x19, 0x2d, 0xb7, 0x0f, 0x35, 0x9f, 0x78, 0x60, 0x4a, 0xbc, 0xb9, 0x62, 0x9e,
- 0xc7, 0x4e, 0x56, 0x33, 0xfc, 0xc3, 0x24, 0x1d, 0x23, 0xe3, 0x02, 0x85, 0x29, 0x35, 0x65, 0xf1,
- 0xc5, 0xe2, 0xf3, 0x89, 0x43, 0x23, 0xda, 0x2f, 0x97, 0x1f, 0x73, 0xce, 0xeb, 0x1c, 0x7a, 0x72,
- 0x5d, 0xb5, 0xcd, 0xff, 0x8a, 0x49, 0xb4, 0x69, 0xaf, 0xe9, 0x0a, 0xd4, 0x8d, 0xe1, 0x32, 0xb3,
- 0x3a, 0x22, 0xd7, 0x7f, 0x16, 0xf2, 0x47, 0x0f, 0xd9, 0x7d, 0x64, 0x83, 0xee, 0xd3, 0xa8, 0xbf,
- 0xd5, 0xcb, 0x92, 0x10, 0xf2, 0x2f, 0x26, 0x7c, 0x7e, 0xf3, 0x7d, 0xd3, 0x34, 0x97, 0x82, 0xe0,
- 0x66, 0xc1, 0xa9, 0xdd, 0x22, 0xcb, 0x8c, 0x7f, 0x2c, 0xea, 0xb7, 0x93, 0x02, 0xc7, 0x74, 0xac,
- 0x8b, 0x84, 0x49, 0x08, 0x79, 0xf6, 0x13, 0x3e, 0x3f, 0x98, 0xdf, 0x88, 0x1a, 0xaa, 0x41, 0x70,
- 0x49, 0x07, 0x25, 0xd1, 0x86, 0x46, 0x77, 0x5e, 0xed, 0x3e, 0xe6, 0x5f, 0x15, 0x38, 0xf4, 0xe4,
- 0xc2, 0x83, 0x6c, 0xd9, 0xff, 0xb0, 0x64, 0x60, 0xd2, 0xa6, 0x39, 0xd7, 0x0f, 0x92, 0xb5, 0x94,
- 0xc6, 0x18, 0xe5, 0x6e, 0x42, 0xb3, 0x5b, 0x04, 0x79, 0x9d, 0xdb, 0x41, 0x48, 0xc0, 0x8b, 0x51,
- 0x56, 0xba, 0x0a, 0xb5, 0x32, 0xdf, 0x4b, 0x8a, 0xd4, 0x1d, 0xa5, 0xb4, 0xa0, 0x99, 0xbf, 0xd9,
- 0x4e, 0x66, 0xba, 0x81, 0x3a, 0xd5, 0xc9, 0x11, 0xa8, 0x87, 0xac, 0x46, 0xf1, 0xb6, 0x3b, 0x02,
- 0x27, 0x33, 0x5d, 0xa1, 0x1d, 0x8b, 0x85, 0xe9, 0x54, 0xa2, 0x56, 0x23, 0x99, 0x5b, 0xfc, 0x01,
- 0xe6, 0x4a, 0x27, 0x9f, 0xe3, 0xab, 0x60, 0xa2, 0x68, 0x86, 0xc7, 0x7b, 0x35, 0x15, 0xb8, 0xb6,
- 0x93, 0x58, 0xf9, 0x3c, 0x71, 0xfc, 0x91, 0xa5, 0x43, 0x02, 0xd6, 0x7a, 0x4b, 0x85, 0xc5, 0xab,
- 0xbb, 0xff, 0xea, 0x60, 0x69, 0xe2, 0xd4, 0xcb, 0xc7, 0x6f, 0xcd, 0xaf, 0xb8, 0xf4, 0x8a, 0x05,
- 0xd1, 0x50, 0x1b, 0xa7, 0x4f, 0x2c, 0x19, 0x18, 0xd5, 0xc8, 0x9f, 0x45, 0x73, 0xc5, 0xbc, 0x25,
- 0x63, 0x0c, 0x93, 0x37, 0x21, 0xb8, 0xcc, 0x02, 0xdd, 0xaf, 0x8c, 0xc1, 0x24, 0x60, 0xa4, 0xc9,
- 0xc1, 0x79, 0x7a, 0x3e, 0xfe, 0x20, 0xe5, 0x4b, 0x3c, 0x24, 0x91, 0x58, 0xac, 0x4e, 0x44, 0xb7,
- 0x45, 0x69, 0x7d, 0xcb, 0x82, 0x43, 0x36, 0xf2, 0xd3, 0x73, 0x03, 0x26, 0xdc, 0xce, 0xb6, 0x68,
- 0xc8, 0xda, 0x18, 0xce, 0xf9, 0x56, 0xe4, 0x9a, 0xf3, 0x2c, 0x4f, 0x73, 0x43, 0x1f, 0xd6, 0x5e,
- 0x16, 0x1e, 0x4d, 0x94, 0xb3, 0xef, 0x3d, 0x05, 0xf6, 0x2b, 0x9d, 0xc0, 0x5a, 0xf0, 0xd9, 0xd4,
- 0x1b, 0x26, 0xa6, 0xd3, 0x09, 0x9a, 0x03, 0xb0, 0x92, 0x18, 0xa1, 0x7d, 0xf2, 0xf3, 0x75, 0xf8,
- 0x20, 0x52, 0xc2, 0xf1, 0xa1, 0x18, 0x3b, 0xa6, 0x11, 0x1b, 0x1c, 0x3a, 0x7d, 0xd5, 0x33, 0xe7,
- 0x9b, 0xad, 0x28, 0x91, 0xc8, 0xfa, 0xef, 0x6d, 0xd6, 0x74, 0xd1, 0x95, 0xc5, 0x21, 0xb9, 0xe2,
- 0xf3, 0xae, 0x7c, 0xec, 0x51, 0xd4, 0xdc, 0x8c, 0x70, 0x2f, 0xf2, 0x34, 0xcc, 0x39, 0x90, 0x41,
- 0xb8, 0x05, 0xfc, 0x87, 0x68, 0x72, 0x55, 0xe0, 0x29, 0xed, 0x65, 0x20, 0x1b, 0x28, 0x7b, 0x26,
- 0xf0, 0x54, 0x6a, 0x0b, 0x50, 0x44, 0x5d, 0xa7, 0x9e, 0xad, 0x5a, 0xbb, 0x6f, 0xe5, 0x61, 0x62,
- 0x2f, 0xc6, 0x8c, 0x0c, 0xa4, 0x8d, 0xfb, 0x21, 0xc1, 0xd4, 0x51, 0xcc, 0x17, 0xff, 0x80, 0x48,
- 0xba, 0xa9, 0x59, 0x3d, 0xd7, 0x92, 0xab, 0xd2, 0x9d, 0x11, 0x14, 0x6b, 0xd9, 0x01, 0x64, 0xa5,
- 0x4f, 0x30, 0x09, 0xdc, 0x84, 0xa5, 0xb6, 0x08, 0xf2, 0xf9, 0x75, 0x82, 0x90, 0x43, 0xd5, 0xa2,
- 0xbe, 0x32, 0xd0, 0x8a, 0x6a, 0x91, 0x94, 0xb6, 0x36, 0x2a, 0xf6, 0xfd, 0x9e, 0x53, 0x5a, 0x60,
- 0x12, 0x85, 0xc4, 0x23, 0x0e, 0xec, 0x02, 0x61, 0x5d, 0x10, 0x7f, 0x56, 0x1d, 0xa2, 0xe7, 0x11,
- 0x43, 0x5e, 0x51, 0xc6, 0x80, 0xa0, 0xf7, 0xa4, 0xcc, 0xb4, 0x90, 0xfb, 0x59, 0xb5, 0x97, 0x2e,
- 0xcf, 0xbb, 0x87, 0x9e, 0x45, 0xc5, 0x5a, 0xd5, 0xb6, 0x95, 0x05, 0x6a, 0xa7, 0x91, 0x19, 0xb8,
- 0xc9, 0x8c, 0xab, 0x93, 0x47, 0x26, 0x9b, 0x83, 0xa9, 0x52, 0x96, 0xb7, 0x22, 0xea, 0x38, 0xfe,
- 0x2a, 0x0b, 0xb6, 0xe6, 0xa7, 0xfe, 0xbb, 0x5c, 0x30, 0x91, 0x6a, 0x9e, 0x31, 0x58, 0x50, 0x2d,
- 0x11, 0x7f, 0xd2, 0xc4, 0x0f, 0x7c, 0x83, 0x4a, 0xb3, 0x92, 0xd7, 0xd9, 0xbe, 0x7e, 0x16, 0x32,
- 0x15, 0xe4, 0x5b, 0x73, 0xb2, 0x7f, 0xbc, 0x2e, 0x18, 0xa9, 0x35, 0x4f, 0xf9, 0x2c, 0x28, 0xf7,
- 0xf6, 0x63, 0x46, 0x06, 0x52, 0xa7, 0x9c, 0xf1, 0x81, 0x6a, 0xc9, 0x66, 0xea, 0x9e, 0x40, 0x24,
- 0x62, 0x5a, 0x20, 0x6a, 0x9f, 0xc8, 0xb3, 0x1b, 0x87, 0xd1, 0x55, 0x05, 0x45, 0x95, 0x4a, 0x69,
- 0xcc, 0x41, 0x91, 0x79, 0x44, 0x55, 0xdb, 0xfe, 0x58, 0x17, 0xad, 0xe5, 0x04, 0x4d, 0xe8, 0x9b,
- 0xe0, 0x7d, 0x0b, 0x92, 0xe1, 0x48, 0xa1, 0xf4, 0x77, 0x41, 0x54, 0xa6, 0xb0, 0x6e, 0x99, 0xf0,
- 0x8c, 0xe5, 0xd6, 0x58, 0xc5, 0x65, 0xad, 0x71, 0x7a, 0x21, 0x95, 0x91, 0xfe, 0x24, 0x8e, 0x96,
- 0x90, 0xa2, 0xef, 0xdb, 0x70, 0x6c, 0x10, 0x8e, 0xad, 0x80, 0x7e, 0xf5, 0xe8, 0x59, 0x34, 0x88,
- 0x47, 0xc5, 0xd8, 0x71, 0x3d, 0xa3, 0xc8, 0xc0, 0x67, 0x8f, 0x72, 0x6d, 0x1e, 0xe7, 0xa9, 0xeb,
- 0xff, 0xc0, 0x24, 0xf6, 0x55, 0xd1, 0x9d, 0x20, 0x4e, 0x62, 0x17, 0x4d, 0x05, 0xcf, 0xd2, 0xcd,
- 0x81, 0xdd, 0x3d, 0x1f, 0x7f, 0x10, 0x93, 0xc4, 0x1e, 0x12, 0xa9, 0x2c, 0x56, 0x27, 0x22, 0xba,
- 0x5e, 0x4f, 0xdb, 0x18, 0x8b, 0xd9, 0x35, 0x42, 0x41, 0x6b, 0xa2, 0x5b, 0x2e, 0x3d, 0xc3, 0x90,
- 0xfb, 0x5b, 0xad, 0x41, 0xe8, 0xd2, 0xa2, 0x44, 0xe5, 0x59, 0xf5, 0xdb, 0x42, 0x9d, 0xec, 0x08,
- 0x79, 0x7c, 0x86, 0xb9, 0x96, 0x52, 0xb0, 0xab, 0x15, 0xc9, 0xf4, 0x78, 0xb7, 0x66, 0x3f, 0x91,
- 0x36, 0x4c, 0x8f, 0x65, 0x12, 0xf7, 0x06, 0xa3, 0xe7, 0x30, 0x81, 0xfa, 0x27, 0x25, 0xea, 0x33,
- 0x32, 0xd7, 0x06, 0xd2, 0xaf, 0xf4, 0x39, 0xc7, 0x4c, 0x0b, 0x63, 0x6c, 0x60, 0x77, 0xd4, 0xf6,
- 0x0e, 0xc2, 0xfd, 0xa0, 0xbb, 0xe5, 0xbf, 0x9e, 0x8a, 0xb1, 0x94, 0x32, 0x0b, 0xdf, 0x5d, 0x0f,
- 0xd3, 0xfc, 0xbe, 0x1d, 0xf0, 0xcc, 0xe7, 0x2a, 0x61, 0x34, 0xee, 0x0e, 0xb1, 0xec, 0xa3, 0xa6,
- 0x33, 0x81, 0xb5, 0x8f, 0x11, 0x84, 0x46, 0xde, 0x16, 0x75, 0xba, 0xa8, 0x01, 0x82, 0x3a, 0x56,
- 0x53, 0x77, 0x30, 0x5f, 0x31, 0xac, 0x0b, 0xf7, 0x25, 0x58, 0x9e, 0xe6, 0x86, 0x3e, 0x6f, 0xbc,
- 0x87, 0xea, 0x11, 0x12, 0x7d, 0xf3, 0x52, 0x92, 0x01, 0xd5, 0x3a, 0xf1, 0xd3, 0x5c, 0x03, 0xfc,
- 0x21, 0x04, 0x71, 0xac, 0x1f, 0x68, 0x44, 0xbf, 0x4b, 0x65, 0xc5, 0xfe, 0x1c, 0x20, 0xdd, 0x47,
- 0xd4, 0x9d, 0x21, 0x4d, 0x4c, 0x5f, 0x59, 0x65, 0x24, 0x8d, 0xa4, 0x17, 0x55, 0x62, 0x6c, 0x40,
- 0x07, 0x61, 0x9f, 0x50, 0xbc, 0x93, 0xbe, 0x4f, 0x45, 0xb9, 0x4a, 0x19, 0xe4, 0x8e, 0xcf, 0xe6,
- 0x48, 0x51, 0x96, 0x8c, 0x38, 0x36, 0x08, 0x47, 0xb7, 0x40, 0x3f, 0x9b, 0x74, 0xcd, 0x1a, 0x44,
- 0xdd, 0x3e, 0x43, 0xbd, 0x4b, 0x29, 0x58, 0xb4, 0xeb, 0x85, 0x7a, 0x3c, 0xba, 0x33, 0xfe, 0xa9,
- 0x6e, 0x34, 0x78, 0x70, 0x9b, 0xcd, 0xf2, 0xb7, 0xb9, 0x9c, 0xb0, 0x7c, 0x8c, 0x63, 0x08, 0xe5,
- 0xc4, 0xb4, 0x40, 0xd4, 0xfd, 0x53, 0xa5, 0x36, 0xcd, 0x61, 0xaa, 0x0a, 0x8a, 0xe9, 0x94, 0xd2,
- 0x58, 0x78, 0xf7, 0x15, 0x89, 0x3a, 0xf4, 0x14, 0x5e, 0xac, 0x31, 0x86, 0xab, 0x46, 0xe2, 0xd6,
- 0x9c, 0xcc, 0xb7, 0xc1, 0x74, 0x69, 0x51, 0x22, 0x93, 0xcd, 0x9b, 0x8c, 0x21, 0xaf, 0x76, 0x04,
- 0x05, 0xcd, 0x3a, 0xea, 0x03, 0x73, 0x40, 0x7d, 0xf1, 0x45, 0x3b, 0x52, 0x26, 0xa7, 0xd0, 0x65,
- 0x19, 0x8a, 0x03, 0x69, 0xb6, 0x7a, 0xfd, 0x82, 0x26, 0xe4, 0xd0, 0x36, 0x30, 0xda, 0x6a, 0x7b,
- 0xd8, 0xf3, 0x79, 0x57, 0x48, 0x5a, 0x18, 0xc9, 0x1a, 0xc0, 0x41, 0x6e, 0x9c, 0x94, 0x2e, 0xcc,
- 0x80, 0x8b, 0x8e, 0x42, 0xc1, 0x60, 0xec, 0xdd, 0x44, 0x6c, 0x70, 0xe8, 0x37, 0xd2, 0xcc, 0x1a,
- 0x9e, 0x60, 0x12, 0x7b, 0xcb, 0x89, 0xaf, 0x10, 0x27, 0x31, 0xea, 0xc7, 0xe3, 0x86, 0x69, 0x87,
- 0x44, 0x3f, 0xce, 0x96, 0x3c, 0x33, 0x49, 0xeb, 0x89, 0x0d, 0xda, 0xe2, 0xbd, 0x3b, 0x58, 0xc8,
- 0xca, 0x76, 0xbd, 0x74, 0x46, 0xb6, 0x1a, 0xa8, 0x47, 0xd0, 0x3e, 0x38, 0x81, 0x36, 0xc9, 0xdd,
- 0x3d, 0x43, 0x48, 0x2f, 0xaa, 0x61, 0xf9, 0x40, 0x9c, 0xc4, 0x2e, 0x9a, 0x0a, 0x5d, 0x67, 0x59,
- 0x2e, 0x90, 0x3f, 0x51, 0x1a, 0xfd, 0x84, 0x38, 0x9b, 0xaa, 0x88, 0x08, 0x76, 0x0a, 0x6e, 0xe8,
- 0x72, 0x73, 0x41, 0xf3, 0x2e, 0xc4, 0x4f, 0x48, 0x6e, 0x3d, 0x5b, 0x18, 0x9a, 0x1e, 0xb2, 0xfb,
- 0x42, 0x08, 0xe2, 0x9b, 0x3e, 0xd0, 0x88, 0xbd, 0x96, 0xca, 0x49, 0x3f, 0x38, 0x40, 0x79, 0x8e,
- 0x65, 0x3b, 0xbf, 0x3a, 0x23, 0x5b, 0x0d, 0x54, 0xc2, 0x68, 0x1f, 0x1c, 0xa1, 0x1b, 0x85, 0x8f,
- },
- { /* 10 */
- 0xd4, 0x19, 0x2d, 0xd4, 0xc2, 0xc3, 0xd3, 0x9c, 0xe1, 0x5d, 0xa9, 0x18, 0x2c, 0xd1, 0xbe, 0x8f,
- 0x40, 0x7b, 0xcb, 0x40, 0x94, 0x34, 0xa6, 0x04, 0x50, 0xb3, 0x14, 0xdb, 0x6b, 0x25, 0x60, 0xb5,
- 0x97, 0xc0, 0xd2, 0x97, 0x3c, 0x7b, 0x81, 0x84, 0xc2, 0x71, 0xd1, 0x87, 0x95, 0x0f, 0x3d, 0xb7,
- 0x4d, 0x69, 0xb6, 0x4d, 0xd9, 0x84, 0x1d, 0xc1, 0xcf, 0xff, 0x43, 0x34, 0xeb, 0xa7, 0x8a, 0xbf,
- 0x03, 0xa2, 0x34, 0x03, 0x6a, 0x8c, 0xf4, 0x1c, 0x73, 0x9f, 0x6c, 0x44, 0xd2, 0xfb, 0xe3, 0x8d,
- 0xd1, 0x3c, 0x71, 0xd1, 0x7c, 0x94, 0x0c, 0xb8, 0x74, 0x3f, 0x1d, 0xd4, 0x99, 0x1f, 0x58, 0xdb,
- 0xf8, 0x08, 0x79, 0xf8, 0xe3, 0xac, 0xd6, 0xee, 0xc6, 0xdc, 0xd0, 0x47, 0x36, 0x48, 0x84, 0x45,
- 0xca, 0xc7, 0x26, 0xca, 0xc0, 0xf2, 0x54, 0x44, 0x19, 0xd2, 0x97, 0xf5, 0x14, 0x30, 0xaf, 0xb4,
- 0x53, 0xb7, 0xbd, 0x53, 0xdb, 0xb5, 0x9a, 0x19, 0x37, 0x70, 0x7d, 0xd9, 0xd3, 0x46, 0x9b, 0x84,
- 0x66, 0x20, 0x27, 0x66, 0x0a, 0xf5, 0xde, 0x3e, 0x9e, 0xf6, 0xc6, 0xdf, 0xd8, 0xe3, 0x55, 0xd7,
- 0xa5, 0x0f, 0x8d, 0xa5, 0x1f, 0x25, 0x03, 0x2e, 0x1d, 0x7f, 0x96, 0x35, 0xb7, 0x77, 0x16, 0x46,
- 0x10, 0x6e, 0x42, 0x10, 0x25, 0x0d, 0xc8, 0x01, 0x14, 0x5c, 0x05, 0x46, 0x6a, 0x98, 0x18, 0xbc,
- 0x6c, 0x6a, 0x9f, 0x6c, 0xb5, 0x5b, 0xa3, 0x76, 0x77, 0x32, 0x6d, 0x84, 0x71, 0xbc, 0x5a, 0x7f,
- 0x90, 0x98, 0x17, 0x90, 0xce, 0x65, 0x47, 0x09, 0xb4, 0xf9, 0x2d, 0x33, 0xbc, 0xd2, 0xd8, 0x15,
- 0x5e, 0xa5, 0xc0, 0x5e, 0x96, 0x05, 0x21, 0xdc, 0xa8, 0x3c, 0x2a, 0x36, 0x53, 0xc4, 0x71, 0x8e,
- 0xbd, 0x56, 0xee, 0xbd, 0xc9, 0xcf, 0xaf, 0xce, 0x03, 0x0d, 0x70, 0x50, 0xe8, 0xa3, 0x02, 0xa4,
- 0xc7, 0xd5, 0x5b, 0xc7, 0x8d, 0x42, 0xef, 0x81, 0x86, 0x9e, 0xc0, 0x1a, 0x94, 0xb2, 0x45, 0xbe,
- 0x20, 0xdc, 0x84, 0x20, 0x4a, 0x1a, 0x53, 0x02, 0x28, 0xb8, 0x0a, 0x8c, 0xd4, 0xf3, 0x30, 0xbb,
- 0x36, 0x35, 0xae, 0x36, 0xbb, 0xcc, 0xb0, 0x3b, 0xda, 0x19, 0xd7, 0x42, 0xd9, 0x5e, 0x2d, 0xde,
- 0xe6, 0xd6, 0x72, 0xe6, 0xe1, 0x9d, 0x51, 0x36, 0x3e, 0x53, 0xee, 0xaa, 0x0e, 0xa9, 0x95, 0x7e,
- 0xf3, 0x9d, 0x6c, 0xf3, 0x7a, 0xc7, 0x46, 0x13, 0xbf, 0x6d, 0x5f, 0x20, 0xd1, 0xff, 0x6b, 0x96,
- 0x78, 0xfe, 0x2c, 0x78, 0x08, 0xc4, 0x59, 0xe6, 0x66, 0x79, 0xf8, 0x32, 0xe0, 0x02, 0x44, 0xec,
- 0x60, 0xa7, 0x4f, 0x60, 0xde, 0x2e, 0xf5, 0x06, 0x78, 0x0b, 0x1e, 0x57, 0xbf, 0xd6, 0x50, 0x0e,
- 0x0c, 0xcd, 0xd0, 0x0c, 0x6b, 0x75, 0x56, 0x70, 0x0f, 0x39, 0x73, 0xd3, 0xce, 0x6a, 0x0a, 0x71,
- 0x3c, 0x7f, 0x16, 0x3c, 0x04, 0x62, 0xcd, 0x73, 0x33, 0xdd, 0x7c, 0x19, 0x70, 0x01, 0x22, 0x76,
- 0x7f, 0xa6, 0xe9, 0x7f, 0xfa, 0xda, 0x9f, 0x6b, 0x10, 0xf1, 0x04, 0x86, 0xc9, 0xdf, 0xa1, 0x4e,
- 0xc0, 0x8d, 0x9e, 0xc0, 0x7f, 0x5c, 0x29, 0x0c, 0xf0, 0x16, 0x3c, 0xae, 0xbd, 0x6f, 0xa0, 0x1c,
- 0xfa, 0x75, 0xe0, 0xfa, 0xaf, 0xe5, 0xcf, 0x47, 0x25, 0x36, 0x98, 0x3f, 0xaa, 0x5b, 0x87, 0xb3,
- 0xe5, 0x74, 0x46, 0xe5, 0x8b, 0x11, 0xa5, 0x2a, 0x4d, 0xcc, 0x82, 0xee, 0xdc, 0x52, 0x76, 0xf3,
- 0x2c, 0x11, 0x54, 0x2c, 0x21, 0x6f, 0x05, 0x72, 0x27, 0x81, 0x79, 0x5f, 0x1a, 0x99, 0x3a, 0xca,
- 0x29, 0x34, 0x08, 0x29, 0x9f, 0x38, 0xda, 0x56, 0xb2, 0xe3, 0xcd, 0x93, 0xaf, 0x57, 0xdc, 0x9e,
- 0xce, 0x3d, 0xd7, 0xce, 0x58, 0x60, 0x66, 0xd5, 0x1c, 0xc5, 0x07, 0x05, 0xef, 0x16, 0xa9, 0x9b,
- 0x7c, 0x04, 0xdd, 0x7c, 0x90, 0x56, 0x6b, 0x77, 0x63, 0x6e, 0x68, 0xc2, 0x1b, 0x24, 0x42, 0xc3,
- 0x07, 0x58, 0xc5, 0x07, 0xf2, 0x1e, 0xc6, 0x8d, 0x76, 0x88, 0xfc, 0xb4, 0x29, 0xdd, 0xe5, 0xa2,
- 0xb4, 0xbe, 0x62, 0xb4, 0x1c, 0xed, 0x26, 0x9a, 0x99, 0x56, 0xb7, 0x4f, 0x93, 0x07, 0xee, 0x81,
- 0x81, 0x29, 0xf8, 0x81, 0xcd, 0xad, 0x62, 0xbd, 0x30, 0xd0, 0x0c, 0x49, 0x98, 0xa2, 0x20, 0xd2,
- 0xa2, 0x57, 0x48, 0xa2, 0xed, 0x3b, 0xc5, 0xa3, 0x6b, 0xf7, 0x6a, 0x81, 0x9e, 0xaa, 0xf3, 0xe4,
- 0xf0, 0x3f, 0x58, 0xf0, 0x10, 0x4b, 0xb2, 0x0f, 0xcc, 0xf2, 0x33, 0x64, 0x03, 0x04, 0x88, 0x1b,
- 0xb6, 0xc3, 0xfb, 0xb6, 0x50, 0xa4, 0x3f, 0x33, 0x7a, 0xbc, 0xff, 0x37, 0x0f, 0x14, 0xed, 0x77,
- 0x43, 0xd9, 0xff, 0x43, 0xfe, 0xb8, 0x52, 0x18, 0x23, 0x2c, 0x78, 0x9f, 0xb9, 0xde, 0x83, 0x38,
- 0x67, 0xff, 0x8a, 0x67, 0x2c, 0x30, 0x33, 0x8b, 0x0e, 0x83, 0xe2, 0xe3, 0x96, 0x0b, 0xb5, 0xac,
- 0x59, 0xfd, 0x05, 0x59, 0x64, 0x1b, 0xe7, 0x51, 0xde, 0xb4, 0xd6, 0x82, 0x7a, 0x19, 0x94, 0x2c,
- 0xec, 0x9c, 0xca, 0xec, 0x5e, 0x33, 0x2c, 0x7e, 0xd7, 0x97, 0x45, 0xf1, 0xa7, 0xf6, 0x9a, 0xd6,
- 0x86, 0x71, 0x3d, 0x86, 0x3f, 0xb3, 0xa4, 0x30, 0x46, 0x58, 0xf0, 0xfd, 0xb1, 0x7f, 0xc5, 0x70,
- 0xf4, 0xc5, 0xa9, 0xf4, 0x88, 0xd9, 0x80, 0x9e, 0xc9, 0xe5, 0xa3, 0x94, 0xf8, 0x22, 0x8e, 0x34,
- 0xf6, 0xb8, 0x30, 0xf6, 0xc4, 0x90, 0x99, 0x37, 0x2a, 0x0f, 0xeb, 0xec, 0x64, 0x31, 0x8d, 0xc2,
- 0x5c, 0xd8, 0x59, 0x5c, 0xda, 0x4c, 0x38, 0x75, 0x4b, 0xd6, 0x62, 0x4e, 0xcf, 0xd7, 0x72, 0x78,
- 0x92, 0xe5, 0x8e, 0x92, 0x82, 0x2c, 0x5e, 0xa0, 0x57, 0x13, 0x65, 0x4b, 0x20, 0xc1, 0xdb, 0xe3,
- 0xa8, 0x1d, 0xf0, 0xa8, 0x52, 0x95, 0xb8, 0xeb, 0x82, 0x33, 0xc1, 0xda, 0x37, 0xf5, 0xfc, 0x4c,
- 0xcf, 0xe2, 0x7a, 0xcf, 0x7e, 0xa5, 0x8b, 0x60, 0x8c, 0xb0, 0x23, 0x39, 0xa1, 0xfe, 0x49, 0xe0,
- 0x2f, 0xb3, 0x60, 0x2f, 0x4b, 0xe3, 0xf1, 0x6e, 0x54, 0x1e, 0x15, 0x1b, 0xc8, 0x62, 0xd9, 0x47,
- 0xe9, 0xb9, 0x96, 0xe9, 0xe0, 0x64, 0xf3, 0x5a, 0x42, 0xf5, 0xf1, 0x3d, 0x12, 0x38, 0x7c, 0x82,
- 0x54, 0xef, 0x78, 0x54, 0x29, 0xab, 0x5c, 0x94, 0x41, 0xf8, 0x81, 0x6d, 0xfa, 0x9b, 0x7e, 0x26,
- 0x8f, 0x99, 0xb1, 0x8f, 0xea, 0x91, 0x2d, 0x64, 0xdc, 0x03, 0x37, 0xe2, 0xca, 0xdb, 0x29, 0x55,
- 0xaa, 0x60, 0x69, 0xaa, 0x1e, 0xdc, 0xa1, 0x42, 0x61, 0xd9, 0x89, 0xa2, 0xab, 0xe6, 0xff, 0xba,
- 0x24, 0x26, 0x75, 0x24, 0xd2, 0x88, 0x61, 0x93, 0x2d, 0xaf, 0x9a, 0x7c, 0x2f, 0xd5, 0x36, 0x94,
- 0x71, 0x16, 0xa0, 0x71, 0xdd, 0xe6, 0xd0, 0xb2, 0xfc, 0x22, 0x3f, 0x2d, 0x9b, 0xa6, 0xa8, 0xc9,
- 0x65, 0x82, 0x13, 0x65, 0x60, 0x79, 0x2a, 0x22, 0xed, 0x69, 0xaa, 0x9b, 0x0a, 0x18, 0xb6, 0x5a,
- 0x99, 0x70, 0x9b, 0x99, 0x1b, 0x47, 0xce, 0x5d, 0x2e, 0xa2, 0xea, 0x2c, 0xc7, 0x76, 0x34, 0x30,
- 0x96, 0x1f, 0x7f, 0x96, 0x1a, 0xbe, 0x6c, 0x31, 0x52, 0x04, 0xf5, 0xbb, 0xdb, 0xe7, 0xdd, 0xcc,
- 0x9c, 0x55, 0xc7, 0x9c, 0xa5, 0x10, 0x11, 0x79, 0xbb, 0xc0, 0x5e, 0xe0, 0x72, 0xb8, 0xd2, 0x64,
- 0xdd, 0xf1, 0xa1, 0xdd, 0x17, 0xe1, 0x5a, 0xc8, 0x7b, 0x06, 0x6e, 0x07, 0x57, 0x75, 0x52, 0xaa,
- 0x5a, 0x5f, 0x31, 0x5a, 0x0e, 0x97, 0x13, 0x4d, 0xad, 0x2b, 0xba, 0xc6, 0xa8, 0xe2, 0x77, 0xa1,
- 0x80, 0xf6, 0x55, 0x80, 0xeb, 0x68, 0x8f, 0x08, 0xa0, 0xa5, 0x28, 0x75, 0xd6, 0x4a, 0xc0, 0xa9,
- 0xe8, 0x66, 0x3b, 0xe8, 0xc6, 0xa1, 0x1e, 0xef, 0xd2, 0x80, 0xd5, 0x01, 0x5c, 0xd0, 0x9c, 0xf9,
- 0x50, 0x15, 0x89, 0x50, 0xb1, 0x39, 0x6e, 0x05, 0x44, 0xef, 0x11, 0x9d, 0x01, 0xbd, 0x78, 0x09,
- 0x57, 0x4d, 0x4c, 0x57, 0x43, 0x27, 0xa8, 0x88, 0x32, 0x67, 0xed, 0x29, 0x28, 0x60, 0x9d, 0xab,
- 0xe4, 0xab, 0xeb, 0xe4, 0xad, 0xd4, 0x48, 0x9f, 0xdd, 0xb9, 0xa6, 0xd2, 0x92, 0xba, 0x96, 0x88,
- 0x1e, 0xde, 0x0b, 0x1e, 0x02, 0x31, 0x87, 0xd8, 0xf8, 0x8f, 0x3e, 0xed, 0x38, 0xe1, 0x11, 0x3b,
- 0x84, 0x0c, 0xa4, 0x84, 0x73, 0xfa, 0xbd, 0x99, 0xa5, 0xb2, 0xb8, 0x85, 0x2d, 0x6c, 0xc6, 0x86,
- 0x15, 0x4b, 0x1e, 0x15, 0x9b, 0x5a, 0x17, 0x25, 0x81, 0x3e, 0xb1, 0x8a, 0xdf, 0x56, 0xfe, 0xe8,
- 0x41, 0xa4, 0x66, 0x41, 0xb2, 0xf1, 0x4b, 0xb1, 0xc0, 0xc6, 0x30, 0xe7, 0x25, 0xcd, 0x80, 0xce,
- 0x19, 0x86, 0xce, 0x19, 0xf0, 0x2f, 0x41, 0x55, 0x8e, 0x07, 0xc2, 0x59, 0x11, 0x3c, 0xf4, 0x99,
- 0x26, 0x5b, 0xec, 0x26, 0x9e, 0xc1, 0x78, 0x3a, 0xce, 0x45, 0xd2, 0x04, 0xb3, 0xc6, 0x35, 0x62,
- 0xa0, 0x2a, 0xd1, 0xa0, 0xa1, 0x72, 0xdc, 0x0a, 0x88, 0x1d, 0x22, 0xf9, 0x02, 0xb9, 0xf0, 0x12,
- 0x0b, 0x95, 0x15, 0x0b, 0x99, 0x6b, 0x90, 0xfd, 0x79, 0xb1, 0x8f, 0x67, 0xe7, 0xb7, 0xef, 0xd3,
- 0x22, 0xa1, 0x1d, 0x22, 0x06, 0x53, 0x4a, 0xab, 0xcb, 0x52, 0x42, 0xf4, 0x48, 0xe0, 0x33, 0x4d,
- 0x9d, 0x8a, 0x6a, 0x9d, 0x83, 0xd5, 0xfc, 0xcc, 0x2b, 0xb5, 0x7a, 0xdc, 0x3c, 0x50, 0x32, 0x1f,
- 0xf5, 0x1a, 0x04, 0xf5, 0xae, 0x1c, 0x6d, 0x2b, 0x59, 0x90, 0x87, 0xa8, 0xb6, 0xca, 0x6e, 0x4f,
- 0xda, 0xa9, 0x64, 0xda, 0xe5, 0xff, 0x9c, 0x45, 0x0d, 0x8e, 0x92, 0xb3, 0x7e, 0xa8, 0xb7, 0x08,
- 0x37, 0xea, 0x03, 0x37, 0x9d, 0x09, 0x5d, 0x8e, 0x4a, 0x6c, 0xf3, 0x7e, 0x97, 0xb6, 0xcd, 0xa5,
- 0xa7, 0x72, 0x14, 0xa7, 0x53, 0x6c, 0x1a, 0x87, 0xfe, 0x95, 0xde, 0x4d, 0x2b, 0x64, 0x15, 0xb0,
- 0xcd, 0x9f, 0xe3, 0xcd, 0x32, 0xec, 0x92, 0xc9, 0x6f, 0x5a, 0x6b, 0x41, 0x3d, 0xed, 0x4a, 0x16,
- 0x63, 0x05, 0x7b, 0x63, 0xb4, 0xa2, 0x01, 0x1a, 0x0b, 0x94, 0x72, 0x13, 0x6d, 0x2d, 0xb3, 0x83,
- 0xbc, 0x89, 0x43, 0xbc, 0xef, 0x0a, 0x42, 0x7b, 0x93, 0x78, 0x54, 0x6c, 0xa6, 0x4b, 0xe2, 0xdf,
- 0xe2, 0x2c, 0x83, 0xe2, 0x79, 0x0f, 0x63, 0xa7, 0x3b, 0x44, 0x7e, 0x5a, 0xf5, 0x8f, 0x93, 0x51,
- 0xd6, 0x64, 0xb4, 0xd6, 0x8e, 0x8a, 0xca, 0x35, 0x02, 0xb7, 0xe1, 0x60, 0xb0, 0xc2, 0xbd, 0x79,
- 0x94, 0x62, 0xe6, 0x94, 0x56, 0xf7, 0x75, 0x98, 0xb1, 0xee, 0xbd, 0xc3, 0x47, 0xf4, 0xde, 0x3a,
- 0xa4, 0xd0, 0x20, 0xa4, 0x39, 0xe0, 0xee, 0x9b, 0x8d, 0x0a, 0xb2, 0x09, 0xf9, 0x9f, 0xf6, 0x3d,
- 0x88, 0xc1, 0x74, 0x88, 0x18, 0x8f, 0xeb, 0xe9, 0xaa, 0x8b, 0xcb, 0x56, 0xe3, 0x06, 0xcc, 0xf7,
- 0x62, 0xda, 0xd6, 0x62, 0x92, 0x67, 0xec, 0xaf, 0x9b, 0xe1, 0x56, 0x2f, 0x23, 0xc5, 0x53, 0xf8,
- 0x2e, 0x6c, 0xcd, 0x2e, 0x6d, 0x26, 0x1c, 0xdb, 0xc4, 0x6b, 0x31, 0x27, 0x86, 0x8a, 0x39, 0x3c,
- 0xc8, 0xba, 0xbf, 0xc8, 0x8c, 0xbb, 0x4d, 0xed, 0xfa, 0x38, 0xdf, 0x8d, 0x88, 0x23, 0xac, 0x42,
- 0x18, 0x59, 0x63, 0x18, 0xd6, 0xea, 0xac, 0xe0, 0x1e, 0x72, 0xe6, 0x65, 0x5f, 0xd4, 0x14, 0xe2,
- 0x06, 0x87, 0x68, 0x06, 0xd4, 0xdb, 0x2b, 0x38, 0xe6, 0xfd, 0xd8, 0x88, 0x67, 0x35, 0x05, 0xd9,
- 0x16, 0xe9, 0x2a, 0x16, 0xf1, 0xd6, 0xe3, 0x39, 0xf2, 0xa1, 0xdd, 0xce, 0x0d, 0xad, 0x1d, 0x65,
- 0x13, 0xcc, 0x76, 0x13, 0x4f, 0x81, 0x3c, 0x1d, 0x67, 0xc3, 0x69, 0x02, 0xb8, 0x63, 0xfb, 0x31,
- 0xd2, 0x9e, 0x45, 0xd2, 0x16, 0x18, 0xf8, 0xa4, 0x07, 0xa0, 0x71, 0x90, 0x4b, 0xe4, 0xbb, 0x56,
- 0x5b, 0x80, 0x9c, 0x5b, 0x28, 0x52, 0xfe, 0xf8, 0x3d, 0x5e, 0x9e, 0xfa, 0xe6, 0x0a, 0x97, 0xda,
- 0xff, 0x50, 0xbc, 0xff, 0x11, 0xb2, 0x10, 0x63, 0xb0, 0x54, 0x2c, 0xf3, 0x1f, 0x95, 0x61, 0xe7,
- 0xbb, 0xd1, 0x86, 0xbb, 0x1d, 0x14, 0x84, 0xf6, 0xe5, 0xf0, 0xa8, 0xd8, 0x8f, 0x96, 0x07, 0x7d,
- 0xc2, 0xf0, 0x07, 0xc2, 0x33, 0x15, 0x30, 0xa5, 0x13, 0xfc, 0x74, 0xd6, 0x21, 0x7c, 0xa3, 0xea,
- 0xb9, 0xac, 0x1f, 0xb9, 0x51, 0x5d, 0x9d, 0x5f, 0x06, 0x1a, 0xe0, 0xa0, 0x13, 0x85, 0x04, 0x8b,
- 0xbf, 0x2b, 0x77, 0xbf, 0x85, 0x86, 0xb6, 0x67, 0xe0, 0xe7, 0x38, 0x28, 0x74, 0xb0, 0x01, 0x52,
- 0xef, 0x3e, 0xfe, 0xef, 0x34, 0xbf, 0xd8, 0x62, 0xa4, 0x08, 0x29, 0xb5, 0x75, 0x0d, 0x79, 0x5b,
- 0xdc, 0x2e, 0x0c, 0xdc, 0x31, 0x24, 0xb7, 0x7d, 0xeb, 0x73, 0x4a, 0x3b, 0x19, 0x9d, 0xb2, 0xd1,
- 0x1b, 0xfb, 0x57, 0x1b, 0xbc, 0x66, 0x58, 0xfc, 0x6d, 0xed, 0x8a, 0x21, 0x8d, 0x2f, 0xf7, 0x6f,
- 0x27, 0x84, 0x41, 0x27, 0xb8, 0x04, 0x95, 0x8f, 0x5e, 0x30, 0xf6, 0x38, 0xfd, 0x2e, 0xd5, 0x19,
- 0x3e, 0x02, 0x8f, 0x3e, 0x48, 0x2b, 0xd4, 0xda, 0xd0, 0x37, 0x34, 0x61, 0xec, 0x12, 0x21, 0x80,
- 0xe7, 0x09, 0xdf, 0xe7, 0xc7, 0x58, 0xbc, 0x83, 0xae, 0x26, 0xca, 0x96, 0x40, 0x41, 0x75, 0x05,
- 0xb0, 0x44, 0x93, 0xb0, 0x84, 0x7f, 0x14, 0x0b, 0x9c, 0x41, 0x27, 0xbf, 0x68, 0x21, 0xe8, 0xae,
- 0x69, 0x4f, 0xc3, 0x69, 0x0b, 0x0c, 0x7c, 0x52, 0xe2, 0x50, 0xd9, 0x48, 0xc4, 0x72, 0xbc, 0x2b,
- 0x21, 0x03, 0x29, 0x21, 0x6c, 0xdf, 0xbe, 0xb7, 0xb8, 0xcd, 0x2e, 0xb0, 0x9a, 0x1b, 0xd0, 0xc0,
- 0x0f, 0x6f, 0xe4, 0x0f, 0x01, 0xf9, 0xa2, 0x6c, 0x7c, 0xa6, 0x1f, 0x97, 0x1c, 0x91, 0xe9, 0xfc,
- 0xf1, 0xe0, 0xf5, 0xf1, 0x36, 0x8e, 0x5f, 0xba, 0x5c, 0x87, 0x17, 0x58, 0x4d, 0xec, 0x68, 0x60,
- 0x1a, 0x24, 0xfa, 0x1a, 0x9a, 0xa3, 0xb5, 0x49, 0xfd, 0x98, 0xae, 0x1d, 0xc3, 0xc7, 0x17, 0x14,
- 0x0d, 0x12, 0x7d, 0x0d, 0x4d, 0xb0, 0xbb, 0xc5, 0x9f, 0x4c, 0x57, 0xef, 0x80, 0x82, 0xea, 0x0a,
- 0xa6, 0xad, 0xb9, 0xa6, 0x75, 0xa9, 0xf7, 0x32, 0x6e, 0xe0, 0xfa, 0x71, 0x65, 0x8c, 0xf5, 0xcb,
- 0x02, 0x7d, 0x99, 0x02, 0x4c, 0x49, 0x19, 0xa9, 0xe3, 0xea, 0x48, 0x78, 0x9c, 0x13, 0x03, 0xf6,
- 0x6a, 0xed, 0xf7, 0x6a, 0x61, 0x80, 0x88, 0x4e, 0x91, 0xcf, 0xb5, 0x0c, 0x16, 0x89, 0x5f, 0xa6,
- 0x08, 0x37, 0x21, 0x08, 0xf3, 0xe7, 0x64, 0xe1, 0x0a, 0x2e, 0xe3, 0x23, 0x35, 0x4c, 0x0c, 0x5e,
- 0x4c, 0xb6, 0x1b, 0x4c, 0xff, 0x41, 0xf0, 0x74, 0x5f, 0x8a, 0x67, 0x08, 0xa5, 0x4f, 0x6a, 0xc4,
- 0x49, 0x93, 0x47, 0x49, 0x41, 0x16, 0x2f, 0x50, 0xca, 0xe8, 0xd3, 0xc4, 0x10, 0x81, 0x8c, 0x90,
- 0x91, 0x47, 0xba, 0x91, 0xe8, 0xa0, 0xaa, 0xbc, 0x24, 0x8c, 0x09, 0x0f, 0xf2, 0x3a, 0x38, 0x6e,
- 0xe1, 0x8e, 0xb7, 0xe1, 0x13, 0x83, 0x97, 0xbb, 0x48, 0xdb, 0x12, 0x1e, 0x27, 0x74, 0x70, 0xdc,
- 0x8b, 0x63, 0x40, 0x8b, 0x72, 0x03, 0x1f, 0xf5, 0xd9, 0x14, 0xa7, 0x12, 0x31, 0xfd, 0x2f, 0x7a,
- 0x14, 0x94, 0xb3, 0x14, 0xbd, 0x9f, 0xfa, 0x90, 0x11, 0x4b, 0x95, 0xb6, 0x91, 0xbe, 0x1e, 0x93,
- 0x95, 0xbd, 0x4b, 0x95, 0x70, 0x32, 0x98, 0x2d, 0x21, 0x9b, 0x99, 0xff, 0x09, 0x1c, 0x3e, 0x41,
- 0xb8, 0x73, 0xb2, 0xb8, 0x77, 0x98, 0x70, 0xea, 0x96, 0x6f, 0xc4, 0x9c, 0x5d, 0x6d, 0xe4, 0xf0,
- 0x9e, 0x28, 0x5e, 0x9e, 0xe9, 0x59, 0x08, 0xd0, 0x58, 0x2a, 0x16, 0x98, 0xee, 0xab, 0xd1, 0x92,
- 0xeb, 0xc4, 0x0f, 0xeb, 0xac, 0x2d, 0xea, 0xf3, 0xa1, 0x1f, 0xb9, 0x45, 0x8e, 0x2b, 0x7f, 0x74,
- 0x6e, 0x17, 0x06, 0x6e, 0xf9, 0x12, 0xba, 0xdf, 0x94, 0xd8, 0x25, 0xfc, 0xed, 0xaf, 0x59, 0x89,
- 0xc3, 0x2f, 0xaa, 0xc3, 0x15, 0xd0, 0xdd, 0x10, 0x83, 0x89, 0x50, 0xea, 0x6f, 0x94, 0x43, 0x91,
- 0x98, 0xaf, 0x36, 0x98, 0x3d, 0x82, 0x23, 0xe8, 0xbe, 0xd7, 0xce, 0x10, 0x89, 0x9e, 0xd4, 0x4b,
- 0x70, 0xc9, 0x0d, 0x70, 0xfb, 0x23, 0x3d, 0x07, 0x6c, 0x57, 0x1b, 0x11, 0xd5, 0x4e, 0x48, 0xb2,
- 0x72, 0xb4, 0x94, 0x72, 0xb7, 0x6a, 0x24, 0xae, 0x8f, 0xbd, 0x53, 0x69, 0x49, 0x5d, 0x4b, 0x44,
- 0x04, 0xfa, 0xf1, 0x04, 0x98, 0x92, 0x32, 0x91, 0x05, 0x17, 0x90, 0xf0, 0xfb, 0x26, 0x06, 0x2f,
- 0xed, 0x43, 0x67, 0xed, 0x78, 0xf6, 0xc1, 0xcb, 0x47, 0xe2, 0x61, 0xcd, 0xe9, 0x1e, 0x7a, 0xad,
- 0xf2, 0x42, 0xc1, 0xf2, 0x5c, 0x02, 0xab, 0xa6, 0x2f, 0x18, 0x7b, 0x1c, 0x9f, 0x17, 0x8b, 0xed,
- 0x47, 0x23, 0x0e, 0x47, 0x66, 0x2a, 0x60, 0x89, 0x26, 0x3b, 0xe8, 0x6f, 0x42, 0xf8, 0x85, 0x17,
- 0x45, 0x5e, 0x97, 0x45, 0x2a, 0x63, 0x79, 0x20, 0xc5, 0xd1, 0xa0, 0x17, 0xde, 0xeb, 0x86, 0xe1,
- 0x9a, 0xd2, 0xaf, 0x9a, 0x71, 0xcb, 0x3a, 0x41, 0x5d, 0x3d, 0x86, 0x68, 0x15, 0x8d, 0xd7, 0xbd,
- 0xd5, 0xc6, 0x80, 0xd5, 0xe4, 0x06, 0x3e, 0x29, 0x71, 0x28, 0x8d, 0x24, 0x62, 0x39, 0x5e, 0xf4,
- 0xd9, 0x0b, 0x50, 0xd9, 0x8f, 0x73, 0x68, 0x59, 0x7e, 0x11, 0xfe, 0xf7, 0xac, 0x53, 0x54, 0x85,
- 0x8d, 0xe4, 0x28, 0x8d, 0xa6, 0xd8, 0x34, 0xcd, 0x3f, 0xe9, 0x7f, 0x9a, 0x56, 0xc8, 0x2a, 0xa3,
- 0x3b, 0x27, 0xd3, 0x3b, 0xf6, 0x7c, 0x0b, 0xfe, 0x45, 0x55, 0x80, 0xad, 0x59, 0xdc, 0xc7, 0xd4,
- 0x6f, 0xc8, 0xab, 0x6f, 0xdf, 0xd7, 0x57, 0x6a, 0x04, 0xad, 0x01, 0xc0, 0xa3, 0x47, 0xb9, 0xf2,
- 0x4e, 0xcb, 0x82, 0x4e, 0xb3, 0x08, 0xe9, 0xdd, 0xbc, 0x60, 0x2f, 0x70, 0x39, 0x5c, 0x69, 0x32,
- 0x34, 0x48, 0x37, 0x34, 0xf7, 0x85, 0xa9, 0x92, 0x39, 0xf3, 0x9f, 0x3a, 0x45, 0x4d, 0x2e, 0x28,
- 0x74, 0x33, 0xfc, 0x74, 0x63, 0xb1, 0x0f, 0x96, 0x69, 0x40, 0x8b, 0xe1, 0x2e, 0x68, 0x4e, 0x9d,
- 0x9f, 0xf7, 0xf3, 0x9f, 0xcf, 0x9c, 0xe5, 0x65, 0xc8, 0x5f, 0x32, 0xa4, 0xa0, 0x43, 0x31, 0xe9,
- 0x7d, 0xdb, 0x70, 0x7d, 0xb6, 0x93, 0x86, 0xc2, 0xf3, 0x1b, 0x4c, 0xfe, 0x55, 0xcc, 0xa2, 0xb8,
- 0x61, 0x78, 0xe2, 0x61, 0xf8, 0xeb, 0x18, 0xb3, 0xe8, 0x7e, 0x3a, 0x6b, 0xf1, 0x3e, 0xb0, 0x75,
- 0x31, 0x6d, 0x6b, 0x31, 0x49, 0xd2, 0x76, 0xb6, 0xac, 0x91, 0x2b, 0xf6, 0xf0, 0x83, 0xc8, 0x7c,
- 0x09, 0xe8, 0x8c, 0x09, 0xd5, 0x22, 0x89, 0x54, 0x9a, 0x5b, 0xc7, 0x1f, 0x7b, 0xa4, 0xec, 0x25,
- 0x12, 0x13, 0xdb, 0x12, 0x69, 0x44, 0xd1, 0xa8, 0xf7, 0xb6, 0x4d, 0x3e, 0xf6, 0x8b, 0x1b, 0x4a,
- 0x64, 0x5d, 0xbe, 0x64, 0x46, 0xbc, 0xc7, 0x97, 0x7d, 0x1c, 0x8e, 0xa7, 0x44, 0xf0, 0x56, 0x21,
- 0xd7, 0xbb, 0x19, 0xd7, 0xa8, 0x4f, 0x27, 0x80, 0x92, 0xc2, 0xc5, 0x5c, 0xfe, 0x2a, 0x5d, 0x02,
- 0x93, 0x3a, 0x23, 0x93, 0xa4, 0xe9, 0xb3, 0x15, 0xc7, 0x66, 0x41, 0x77, 0x6e, 0x29, 0x3b, 0x98,
- 0x3a, 0xf8, 0x7e, 0x3a, 0xd0, 0xb9, 0xe6, 0x4b, 0xd5, 0x20, 0xa4, 0x91, 0x17, 0x34, 0x27, 0xaf,
- 0xa3, 0x88, 0xe5, 0xa3, 0xcb, 0xfe, 0x28, 0x16, 0xfb, 0x82, 0x4e, 0xbd, 0xd0, 0x42, 0x13, 0x9f,
- 0xad, 0x38, 0xac, 0xad, 0xec, 0xc2, 0x67, 0xcf, 0x17, 0x51, 0x75, 0x16, 0x82, 0x3b, 0x1a, 0x18,
- 0x1c, 0xa3, 0x92, 0x1c, 0x4e, 0x78, 0x9e, 0x71, 0x1b, 0x65, 0x76, 0x95, 0xa4, 0xf2, 0x12, 0xcd,
- 0x7e, 0x79, 0x44, 0x7e, 0xdc, 0x1f, 0x72, 0xde, 0x80, 0x84, 0x20, 0xba, 0x87, 0x37, 0x41, 0x35,
- 0x76, 0x4e, 0x65, 0x76, 0x2f, 0xf8, 0x16, 0x3f, 0x8a, 0xaa, 0xc3, 0x99, 0xb2, 0x7b, 0x4d, 0x6b,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x33, 0x10, 0xf2, 0x33, 0x05, 0x9b, 0x6f, 0x1f, 0x4f, 0x7b, 0x63, 0x8e, 0x6c, 0x90, 0xcb, 0x8a,
- 0xf7, 0x67, 0x9d, 0xf7, 0xe2, 0x55, 0x74, 0x82, 0xba, 0x7a, 0xcf, 0xd0, 0x2a, 0xd9, 0x6d, 0xb9,
- 0x28, 0xeb, 0xa5, 0x28, 0xb9, 0xfd, 0x37, 0xe3, 0x22, 0x96, 0xe9, 0xaf, 0xe1, 0xbf, 0x3c, 0xe5,
- 0x23, 0x7e, 0xb0, 0x23, 0x20, 0x96, 0xa7, 0x1e, 0x5b, 0x27, 0x66, 0xc8, 0x06, 0x08, 0xd3, 0x36,
- 0xb2, 0x39, 0x0a, 0xb2, 0xc8, 0x36, 0x0d, 0xa2, 0x7f, 0xab, 0x6f, 0xc7, 0xf4, 0x32, 0xeb, 0x58,
- 0xbe, 0xf4, 0xda, 0xbe, 0xa3, 0x43, 0x5b, 0xd2, 0x70, 0x92, 0x1c, 0x14, 0x3a, 0x58, 0xe1, 0x29,
- 0x42, 0x06, 0x52, 0x42, 0xd8, 0x7d, 0xbf, 0xad, 0xb3, 0x59, 0x5c, 0xa3, 0xf7, 0x36, 0x63, 0x43,
- 0x11, 0xb1, 0xef, 0x11, 0x03, 0xc8, 0x25, 0xb4, 0x84, 0x29, 0x21, 0x7a, 0x24, 0x70, 0xf8, 0xc7,
- 0xc4, 0x77, 0x6f, 0xc4, 0xe7, 0xce, 0x1b, 0x9d, 0xf5, 0x01, 0xac, 0x5e, 0x46, 0x49, 0xa6, 0x33,
- 0x5f, 0x7a, 0x6d, 0x5f, 0xb0, 0xc0, 0xcc, 0x69, 0x38, 0x49, 0x0e, 0x0a, 0x1d, 0x2c, 0x91, 0xf5,
- 0x30, 0xb2, 0xc6, 0x30, 0x6f, 0x17, 0x9b, 0x03, 0x3c, 0xe4, 0x0f, 0xca, 0xbe, 0x6b, 0x28, 0x07,
- 0x01, 0xdf, 0xad, 0x01, 0x26, 0xc5, 0xed, 0xb5, 0x90, 0x75, 0x24, 0x3c, 0x4e, 0xe8, 0xe0, 0x7b,
- 0xd8, 0xd4, 0xfd, 0xd8, 0xa9, 0xb6, 0x85, 0xec, 0xee, 0x64, 0xda, 0xcb, 0xe2, 0xbb, 0xb4, 0xfe,
- 0x05, 0x25, 0x5c, 0x05, 0xbe, 0x57, 0xdf, 0x24, 0x95, 0x62, 0xb4, 0xcc, 0xb5, 0xce, 0xe6, 0x54,
- 0x32, 0xcf, 0x5f, 0x32, 0x23, 0x5e, 0x82, 0xaa, 0xdf, 0x0e, 0x47, 0xb2, 0x22, 0x78, 0x2b, 0xf1,
- 0xdf, 0x8c, 0x38, 0xdf, 0x5b, 0xa8, 0x43, 0x61, 0x98, 0xec, 0x26, 0x7f, 0xcb, 0x66, 0x51, 0x5c,
- 0xba, 0x0e, 0x2b, 0xba, 0x3b, 0xd1, 0x69, 0x43, 0x75, 0x85, 0x8c, 0xe4, 0xc1, 0x7e, 0xe7, 0x06,
- 0x8e, 0x46, 0x1c, 0x8e, 0xcc, 0x54, 0xc0, 0xd1, 0x4c, 0x76, 0x13, 0xde, 0x84, 0x33, 0xc9, 0x2e,
- 0x73, 0x6b, 0x39, 0x73, 0x91, 0xaf, 0xc9, 0x1b, 0x1f, 0xc8, 0x77, 0x55, 0x07, 0xb5, 0xab, 0x3f,
- 0xfd, 0x2d, 0x25, 0xfd, 0x5d, 0xfb, 0x09, 0xca, 0x53, 0xbe, 0x64, 0x8b, 0x83, 0x86, 0x62, 0x11,
- 0x8c, 0x3b, 0x85, 0x8c, 0x80, 0x1d, 0xd9, 0x78, 0xaf, 0x9c, 0x5b, 0xa6, 0x18, 0x20, 0xca, 0xd8,
- 0xb3, 0xe6, 0xa7, 0xb3, 0xee, 0xf3, 0xe0, 0x17, 0xef, 0xde, 0x4b, 0xfb, 0xba, 0xda, 0x0b, 0x23,
- 0x56, 0x92, 0xe1, 0x56, 0x65, 0xe2, 0x45, 0x3d, 0xa2, 0x12, 0xc9, 0x15, 0x66, 0x88, 0x7d, 0xd0,
- 0x2b, 0x49, 0x91, 0x2b, 0xd3, 0x71, 0xc3, 0xff, 0x51, 0x09, 0x85, 0xeb, 0x33, 0x44, 0xdf, 0x68,
- 0x82, 0x8b, 0xcc, 0x82, 0xa7, 0x21, 0x96, 0xa1, 0x43, 0x4f, 0x60, 0x0d, 0x4a, 0x59, 0xc3, 0x5f,
- 0x6b, 0x32, 0x5a, 0x6b, 0x47, 0x45, 0x65, 0xfb, 0x01, 0xba, 0x91, 0x30, 0x58, 0x61, 0xbf, 0xdd,
- 0x87, 0xae, 0x90, 0x87, 0x19, 0x76, 0x49, 0x85, 0xd6, 0x2d, 0xd4, 0xc1, 0xff, 0x97, 0x25, 0x0b,
- 0xae, 0x9a, 0x98, 0xae, 0x86, 0x4e, 0x93, 0xd3, 0x64, 0xce, 0x19, 0x52, 0x50, 0xc0, 0xf9, 0x95,
- 0x46, 0xfc, 0xa3, 0x46, 0x40, 0xef, 0x8d, 0x3c, 0xb6, 0x4e, 0xcc, 0x53, 0x0c, 0x10, 0x65, 0x6c,
- 0xa9, 0xc2, 0x5d, 0xa9, 0x74, 0x50, 0x55, 0x5e, 0x12, 0x46, 0xe5, 0xe6, 0x79, 0x1d, 0x1c, 0x37,
- 0xe0, 0x51, 0x1a, 0xe0, 0x35, 0x46, 0x7a, 0x0e, 0xd8, 0xae, 0x36, 0x22, 0x69, 0x9c, 0x90, 0xa7,
- 0xc6, 0x0a, 0xf6, 0xc6, 0xab, 0x87, 0x02, 0x34, 0x16, 0xeb, 0xe4, 0x26, 0xda, 0x5a, 0xa5, 0xc5,
- 0xaf, 0x45, 0x35, 0xaf, 0xa0, 0x8b, 0x7e, 0x66, 0xf4, 0xbb, 0x3d, 0x6e, 0x1e, 0x28, 0x19, 0xee,
- 0xb1, 0x9b, 0x3e, 0xb1, 0xa2, 0xba, 0xf9, 0xbe, 0x0c, 0x34, 0x03, 0x83, 0x26, 0xc9, 0x08, 0xd5,
- 0x0e, 0xb0, 0x49, 0x0e, 0x27, 0x3c, 0x4f, 0xd9, 0xec, 0xd3, 0x3b, 0xab, 0x52, 0x79, 0x09, 0x87,
- 0x89, 0x1e, 0xd9, 0x89, 0x3e, 0x4a, 0x06, 0x5c, 0x3a, 0xfe, 0xef, 0x6a, 0xad, 0xee, 0x2c, 0x8c,
- 0x79, 0x21, 0x81, 0x79, 0x2e, 0x01, 0xb4, 0x53, 0xf6, 0x0c, 0xdc, 0x0e, 0xae, 0xea, 0xa4, 0x97,
- 0xd3, 0x41, 0xe8, 0xd3, 0x30, 0xdd, 0x15, 0x11, 0x97, 0xd5, 0x55, 0xac, 0x05, 0x0c, 0x5b, 0x2d,
- 0x2d, 0xce, 0xf9, 0x2d, 0x07, 0xaa, 0xe8, 0xc7, 0xb7, 0xf4, 0x5d, 0x63, 0x54, 0x71, 0xda, 0xb1,
- 0xc9, 0x65, 0x12, 0xc9, 0xaa, 0x7e, 0xa0, 0x58, 0x6a, 0x4d, 0xfb, 0xb1, 0xc6, 0xcb, 0x4c, 0x39,
- 0x0a, 0x4a, 0xb8, 0x0a, 0xbf, 0xae, 0x7d, 0x48, 0xe9, 0xc4, 0xab, 0x5b, 0xa9, 0x5f, 0x0f, 0xa8,
- 0xdb, 0x76, 0xc9, 0xdb, 0xc3, 0x3a, 0x71, 0xf0, 0x9d, 0xfb, 0xb6, 0x8f, 0x30, 0x40, 0x57, 0x73,
- 0x7b, 0x5c, 0x18, 0x7b, 0x62, 0x48, 0xad, 0xfa, 0x15, 0xe6, 0x94, 0x76, 0x32, 0xf9, 0xa7, 0x61,
- 0xde, 0x53, 0x95, 0xde, 0x7d, 0x6d, 0xae, 0xd4, 0x08, 0x99, 0x02, 0x43, 0x85, 0x8e, 0xb1, 0x27,
- 0x48, 0x4c, 0xea, 0x48, 0x67, 0xd3, 0xc2, 0xe5, 0x5a, 0x9d, 0xf7, 0xf8, 0x5e, 0x69, 0x6c, 0xeb,
- 0xe3, 0xf3, 0x2e, 0xe3, 0x5f, 0xca, 0x8e, 0x12, 0xab, 0x31, 0x5a, 0x66, 0xbb, 0x67, 0x73, 0x2a,
- 0x4b, 0xee, 0xde, 0x4b, 0x0d, 0x5f, 0x36, 0xf9, 0x29, 0x02, 0x9b, 0xbc, 0x8c, 0x92, 0x8f, 0x66,
- 0x35, 0x97, 0x9a, 0x35, 0xd1, 0x40, 0x44, 0x27, 0xa9, 0x86, 0xbb, 0x06, 0x0b, 0xa5, 0xce, 0x53,
- 0x8a, 0xbc, 0xed, 0x8a, 0x54, 0xc6, 0xf2, 0x40, 0x49, 0x61, 0x83, 0x2e, 0x7f, 0x15, 0xcf, 0x01,
- 0xfb, 0xaa, 0x4d, 0xfb, 0x89, 0x20, 0x22, 0xf2, 0xb5, 0x43, 0xbc, 0x03, 0xe4, 0xb3, 0x67, 0xc8,
- 0x85, 0xd3, 0x09, 0x85, 0x55, 0x3f, 0x50, 0x2c, 0x35, 0xc7, 0x9c, 0xb9, 0x63, 0x84, 0x26, 0xfd,
- 0xcb, 0x18, 0x8b, 0xcb, 0xe6, 0x37, 0xb9, 0xf1, 0x89, 0xa7, 0xb3, 0xc9, 0x5a, 0xd8, 0x4f, 0xcf,
- 0xb7, 0x1c, 0x56, 0xb7, 0x76, 0x61, 0xd2, 0x86, 0xea, 0xc9, 0xdb, 0x0b, 0x41, 0xfc, 0x0d, 0x0c,
- 0x2a, 0x96, 0x3c, 0x2a, 0xf5, 0xb4, 0x2e, 0x4a, 0xc1, 0x7c, 0xa1, 0xd7, 0x7d, 0xac, 0x3f, 0x13,
- 0xab, 0xbf, 0xc4, 0xab, 0x38, 0x19, 0x4c, 0xf7, 0xf1, 0xac, 0xad, 0x9e, 0xe5, 0x0e, 0x1f, 0xc1,
- 0x3f, 0xdd, 0x22, 0x3f, 0x6e, 0xee, 0x39, 0x6f, 0x40, 0x42, 0x10, 0x5d, 0xa2, 0xfa, 0xc1, 0xfb,
- 0x39, 0x5a, 0x4a, 0x39, 0xba, 0x35, 0x12, 0x57, 0xa6, 0xbf, 0xc8, 0xd5, 0xc5, 0xcf, 0xc4, 0x22,
- 0xea, 0x1b, 0xa2, 0xea, 0x8a, 0xe8, 0x07, 0x46, 0x31, 0x6a, 0x9d, 0x79, 0xc0, 0xc3, 0x9f, 0x0f,
- 0xb5, 0x61, 0xcf, 0xb5, 0x3a, 0x28, 0xcb, 0x2f, 0x09, 0x23, 0x93, 0x73, 0xdd, 0xef, 0x0e, 0xfa,
- 0x51, 0xca, 0x24, 0x51, 0x97, 0xfc, 0x83, 0xb0, 0xd4, 0x9a, 0x35, 0xa1, 0x4f, 0x55, 0x98, 0x72,
- 0x9b, 0x0d, 0x02, 0x9b, 0x57, 0x0e, 0xd7, 0xf4, 0xcd, 0x48, 0xa2, 0x54, 0x5b, 0x65, 0x37, 0xc6,
- 0x7a, 0x83, 0xb5, 0x7a, 0x44, 0x8d, 0x40, 0x4f, 0x85, 0x93, 0xb0, 0x4a, 0x7c, 0x11, 0x47, 0x1a,
- 0xa1, 0xf5, 0x7c, 0xa1, 0x87, 0xb7, 0x31, 0xbf, 0x18, 0x68, 0x06, 0xc5, 0x4c, 0x51, 0x10, 0x69,
- 0xd0, 0xe3, 0xdc, 0xd0, 0x5a, 0x51, 0xe1, 0x0d, 0xe4, 0x4a, 0x39, 0xe8, 0xd7, 0xf7, 0xb8, 0xa0,
- 0x4a, 0x31, 0x73, 0x4a, 0x2b, 0x9a, 0xdb, 0x4c, 0xb9, 0x77, 0xbf, 0x80, 0xc2, 0x7a, 0x6f, 0x1d,
- 0x77, 0x91, 0xc8, 0x77, 0x09, 0x3d, 0xfb, 0x8a, 0x1a, 0xdf, 0xe7, 0xa5, 0xfc, 0x93, 0xad, 0x10,
- 0x5d, 0x07, 0xf4, 0x5d, 0xfc, 0x89, 0xd5, 0xc0, 0xdb, 0xa3, 0x46, 0x72, 0x81, 0x3f, 0x92, 0x03,
- 0x4f, 0x14, 0x2f, 0x4f, 0x95, 0xcd, 0x04, 0x68, 0x2c, 0x15, 0x0b, 0x4c, 0x77, 0xb4, 0x89, 0x49,
- 0x1d, 0x7c, 0x3f, 0x1d, 0x68, 0xbd, 0x73, 0xc4, 0x8b, 0x10, 0x52, 0xa9, 0xea, 0x1a, 0xf2, 0xb6,
- 0x83, 0x54, 0x61, 0x83, 0x81, 0xe4, 0x7b, 0x14, 0xd3, 0x3a, 0x44, 0x31, 0x04, 0xb1, 0x23, 0x24,
- 0x52, 0x68, 0x10, 0x52, 0xfd, 0x70, 0x77, 0xac, 0xa7, 0x05, 0x59, 0xe5, 0x9d, 0xae, 0x7b, 0xff,
- 0x25, 0xf9, 0xd8, 0x25, 0xf4, 0x4d, 0x8c, 0x26, 0xbd, 0xda, 0xbe, 0x40, 0x61, 0x3d, 0xd6, 0xef,
- 0xfe, 0x8f, 0x11, 0xfe, 0x37, 0x77, 0xfd, 0xd6, 0x20, 0x21, 0x08, 0xcf, 0x51, 0x7d, 0x81, 0x9c,
- 0x3d, 0xa0, 0xbb, 0x3d, 0x22, 0xa7, 0x20, 0xc6, 0xa3, 0xa8, 0x58, 0x25, 0x3e, 0xe9, 0xc2, 0x0d,
- 0x58, 0x22, 0xa8, 0x58, 0x42, 0xde, 0x0a, 0xe4, 0x4e, 0xc1, 0xf2, 0xbe, 0x34, 0xf1, 0x74, 0x57,
- 0x55, 0x30, 0xd5, 0x55, 0x0f, 0x6e, 0xb1, 0x21, 0xd1, 0x8d, 0xa5, 0x51, 0xb4, 0x73, 0x9e, 0x5d,
- 0xf9, 0xd7, 0xd4, 0xf9, 0xc5, 0x69, 0x3b, 0x5b, 0x56, 0xa9, 0xf4, 0x7b, 0x78, 0xa0, 0x64, 0x3e,
- 0xac, 0xe7, 0x01, 0xac, 0xca, 0x07, 0x8a, 0x7a, 0x87, 0x24, 0x51, 0x2a, 0xcc, 0xd3, 0xfa, 0x63,
- 0xfc, 0xf2, 0x88, 0xfc, 0x7b, 0x3e, 0xe4, 0x7f, 0xc3, 0xcb, 0x40, 0xb7, 0xcd, 0x6e, 0x82, 0x6a,
- 0x68, 0x90, 0x6e, 0x68, 0x2d, 0xc9, 0x91, 0xe7, 0x72, 0x25, 0xfd, 0x74, 0x8a, 0x9a, 0x5c, 0x50,
- 0xc1, 0x52, 0x33, 0xc1, 0x59, 0x99, 0xc4, 0xb9, 0x60, 0x63, 0x18, 0x92, 0xf3, 0x87, 0x40, 0x67,
- 0x38, 0x85, 0xe7, 0x38, 0x9c, 0xf0, 0xff, 0xe2, 0x36, 0xca, 0xec, 0xe9, 0x8b, 0x27, 0x24, 0x59,
- 0x75, 0xec, 0x51, 0x75, 0x45, 0x74, 0xe2, 0x23, 0xf9, 0x35, 0xaf, 0xdd, 0x60, 0x80, 0xae, 0xe6,
- 0x6d, 0xb5, 0x32, 0x6d, 0x93, 0x9e, 0x4e, 0xc3, 0xe7, 0x47, 0x49, 0xb8, 0x3f, 0x54, 0xba, 0x04,
- 0x1f, 0x01, 0xa6, 0x1f, 0x24, 0xf4, 0x6a, 0x6d, 0x68, 0xfa, 0x1a, 0xd1, 0x76, 0x09, 0xf1, 0x40,
- 0x17, 0x36, 0x87, 0x17, 0xd7, 0x13, 0x0e, 0x8c, 0x62, 0xd4, 0xf9, 0xf2, 0x43, 0x45, 0xfd, 0x1e,
- 0x44, 0x81, 0x3a, 0x44, 0x0c, 0xa6, 0x94, 0x95, 0x55, 0xa4, 0x84, 0x2b, 0x90, 0x03, 0x66, 0x9a,
- 0xcc, 0x40, 0x4e, 0xcc, 0x14, 0x29, 0x7f, 0x7c, 0xff, 0x2f, 0x4f, 0x7d, 0x73, 0x05, 0xaa, 0x6d,
- 0xc5, 0xa8, 0xc2, 0xc5, 0xc1, 0x0b, 0xf6, 0x28, 0x65, 0x74, 0x88, 0x62, 0x08, 0xa1, 0x46, 0x48,
- 0xee, 0xe1, 0x53, 0xee, 0x12, 0x7a, 0x35, 0xd7, 0x34, 0x7d, 0x0d, 0x89, 0x3b, 0xe5, 0x99, 0x20,
- },
- { /* 11 */
- 0xfe, 0x50, 0x71, 0x7c, 0xfc, 0x9b, 0xad, 0x09, 0xfc, 0x5e, 0x38, 0x3f, 0x3f, 0x68, 0x53, 0x1b,
- 0x6d, 0x9f, 0xd8, 0xf4, 0xee, 0xe2, 0xd1, 0xe9, 0xee, 0x90, 0x3c, 0xda, 0xda, 0xa3, 0xbc, 0xf8,
- 0x53, 0x94, 0xe4, 0x01, 0xdd, 0x92, 0x0e, 0x3a, 0xdd, 0xb8, 0xb0, 0xa6, 0xa6, 0x24, 0x5d, 0x4e,
- 0xab, 0xb8, 0x14, 0x53, 0x11, 0x91, 0xf4, 0xf0, 0x11, 0x18, 0xc5, 0x95, 0x95, 0x7d, 0x5f, 0xd3,
- 0xc0, 0x5b, 0x4d, 0x89, 0xcf, 0xeb, 0x72, 0xda, 0xcf, 0x76, 0xb4, 0x43, 0x43, 0xef, 0xb2, 0xad,
- 0x7d, 0xbd, 0xa6, 0x24, 0x6e, 0x65, 0x3b, 0xa4, 0x6e, 0xc4, 0x27, 0xfa, 0xfa, 0x9a, 0x46, 0x2f,
- 0xaf, 0x51, 0xea, 0x67, 0x31, 0xc0, 0x2f, 0x72, 0x31, 0x0d, 0xb3, 0x9d, 0x9d, 0xe2, 0x80, 0x96,
- 0x72, 0x7b, 0xc6, 0x6f, 0x16, 0xda, 0x5f, 0x61, 0x16, 0x84, 0x7a, 0xe4, 0xe4, 0x01, 0x2d, 0xa3,
- 0x27, 0x93, 0xa3, 0x40, 0xfb, 0xd0, 0x06, 0x98, 0xfb, 0xc2, 0x87, 0x4e, 0x4e, 0x14, 0x21, 0x6b,
- 0xf9, 0x87, 0x2e, 0x5f, 0xc4, 0x86, 0xbc, 0x0b, 0xc4, 0x34, 0x89, 0x31, 0x31, 0x0e, 0x45, 0x1d,
- 0x8e, 0xbe, 0xc8, 0x09, 0xfa, 0x88, 0x7e, 0x29, 0xfa, 0x31, 0x79, 0xdf, 0xdf, 0xc7, 0xf0, 0x7b,
- 0x8a, 0x57, 0x36, 0x3d, 0xda, 0xd9, 0xa5, 0xab, 0xda, 0x24, 0x0f, 0xd7, 0xd7, 0x58, 0x2f, 0x3e,
- 0x3c, 0x9e, 0x43, 0xef, 0x23, 0xb9, 0x53, 0x92, 0x23, 0xc3, 0xb7, 0x78, 0x78, 0x29, 0x6f, 0x75,
- 0x50, 0xaa, 0x45, 0x16, 0xc5, 0xde, 0xc4, 0xba, 0xc5, 0xc7, 0x77, 0xa0, 0xa0, 0xdd, 0x94, 0x0d,
- 0xe1, 0xb4, 0x6f, 0xe7, 0x04, 0xa3, 0x23, 0x81, 0x04, 0x4a, 0x7e, 0x01, 0x01, 0xca, 0xc2, 0x40,
- 0x41, 0x23, 0xe5, 0xcb, 0x4d, 0xdc, 0x68, 0x36, 0x4d, 0x07, 0x90, 0x82, 0x82, 0xb3, 0x29, 0x5a,
- 0xb4, 0x5c, 0x0a, 0xc8, 0xe9, 0xa9, 0x7a, 0x78, 0xe9, 0x0c, 0x83, 0xab, 0xab, 0xdf, 0xce, 0x88,
- 0xd7, 0xae, 0x6c, 0x7a, 0x77, 0x71, 0x89, 0x95, 0x77, 0x48, 0x1e, 0x6d, 0x6d, 0xb0, 0x5e, 0x7c,
- 0x1e, 0x4f, 0xc0, 0x96, 0xf0, 0xbd, 0xc8, 0x49, 0xf0, 0x80, 0xba, 0x3c, 0x3c, 0xf5, 0xd6, 0xdb,
- 0x23, 0x7a, 0x5d, 0x74, 0xdb, 0x81, 0xdd, 0x1a, 0xdb, 0xd7, 0xf1, 0x46, 0x46, 0x8b, 0xfe, 0x2e,
- 0x2a, 0xc0, 0xbc, 0x11, 0x93, 0xa6, 0xee, 0x1c, 0x93, 0x69, 0xe1, 0x54, 0x54, 0x21, 0xc4, 0x24,
- 0x75, 0xac, 0x99, 0x4c, 0x2e, 0xc7, 0x4e, 0x63, 0x2e, 0xee, 0xcb, 0xea, 0xea, 0x67, 0x3b, 0xa5,
- 0xba, 0x31, 0xb4, 0x8e, 0x99, 0x93, 0x58, 0x7c, 0x99, 0xd8, 0x22, 0xb7, 0xb7, 0x13, 0xe2, 0x84,
- 0x86, 0xaf, 0xf7, 0x61, 0xba, 0x2a, 0x0b, 0xee, 0xba, 0x1b, 0x95, 0xcf, 0xcf, 0x3a, 0x8d, 0xf1,
- 0xdb, 0x56, 0xad, 0x26, 0x17, 0x82, 0x27, 0xd0, 0x17, 0x77, 0x84, 0x75, 0x75, 0xd2, 0xfc, 0xb3,
- 0x76, 0x92, 0x38, 0x5b, 0x36, 0x8b, 0x84, 0xe3, 0x36, 0x91, 0x0c, 0xec, 0xec, 0x9e, 0xf2, 0xe6,
- 0xb7, 0x62, 0xab, 0xdf, 0xf1, 0xe5, 0xb0, 0xf8, 0xf1, 0x73, 0x44, 0xad, 0xad, 0x26, 0x07, 0xcb,
- 0x2f, 0x82, 0x9c, 0x28, 0xbb, 0x72, 0x73, 0x5f, 0xbb, 0xe8, 0x6b, 0x5e, 0x5e, 0xe9, 0x5c, 0xe1,
- 0xe3, 0x21, 0x10, 0xfd, 0x14, 0x6a, 0xaf, 0xc0, 0x14, 0xa1, 0x45, 0x05, 0x05, 0x64, 0x4c, 0x83,
- 0x51, 0x01, 0x9b, 0x1b, 0xcd, 0x5b, 0x82, 0x7b, 0xcd, 0x53, 0x8b, 0xa2, 0xa2, 0x8a, 0xd3, 0x8d,
- 0xd2, 0xec, 0x4c, 0x43, 0x5f, 0xa5, 0x14, 0xd6, 0x5f, 0xc9, 0x94, 0x67, 0x67, 0x78, 0xc6, 0xb9,
- 0xb1, 0x1e, 0x2a, 0xf1, 0xc1, 0x7d, 0xe7, 0x3b, 0xc1, 0x8d, 0x09, 0xa1, 0xa1, 0x17, 0x56, 0x4d,
- 0xb6, 0xc9, 0x75, 0xd2, 0xf9, 0x60, 0xf6, 0x39, 0xf9, 0xe7, 0xb8, 0xaf, 0xaf, 0x71, 0x40, 0x4b,
- 0x03, 0x3e, 0xa1, 0x17, 0x18, 0x4c, 0xca, 0x80, 0x18, 0x7f, 0xc7, 0x06, 0x06, 0xf9, 0xc9, 0x43,
- 0x44, 0x61, 0xc5, 0xf2, 0x65, 0x08, 0xf5, 0x75, 0x65, 0x86, 0x1a, 0x88, 0x88, 0x7b, 0xb1, 0x9f,
- 0x9a, 0x75, 0x48, 0xed, 0x5a, 0x5e, 0x4f, 0xe6, 0x5a, 0x70, 0x14, 0xf7, 0xf7, 0x61, 0xd5, 0xe9,
- 0x8d, 0x80, 0x69, 0x1e, 0xe2, 0xc4, 0xb4, 0xa9, 0xe2, 0x4e, 0xbe, 0xd9, 0xd9, 0x3e, 0x39, 0x38,
- 0xea, 0x9b, 0xf1, 0x98, 0x5c, 0x4d, 0x9c, 0xc6, 0x5c, 0x1f, 0x55, 0x17, 0x17, 0xce, 0x76, 0x89,
- 0xc4, 0xb2, 0xb3, 0xbd, 0xef, 0xba, 0xa9, 0x58, 0xef, 0x63, 0xc2, 0x4b, 0x4b, 0x70, 0x6d, 0xe8,
- 0xad, 0xc4, 0x95, 0x7d, 0x21, 0x09, 0xa3, 0x33, 0x21, 0xe6, 0x88, 0x99, 0x99, 0x4c, 0x0e, 0x55,
- 0xb9, 0x0f, 0x15, 0x99, 0x81, 0xdf, 0x92, 0xfc, 0x81, 0xa7, 0xe5, 0xb1, 0xb1, 0xea, 0x2b, 0xc7,
- 0xe2, 0x8a, 0xce, 0xf0, 0x1c, 0xef, 0xe9, 0x01, 0x1c, 0x35, 0xb9, 0x07, 0x07, 0x33, 0x0b, 0x03,
- 0xe6, 0x63, 0x30, 0xc4, 0x3c, 0xbe, 0x32, 0x83, 0x3c, 0x20, 0xcf, 0x0f, 0x0f, 0xac, 0xd4, 0x46,
- 0x99, 0x4b, 0xe9, 0xfa, 0x42, 0x12, 0x85, 0x66, 0x42, 0x0f, 0xd3, 0xf1, 0xf1, 0x98, 0x1c, 0xaa,
- 0x29, 0xfe, 0x1d, 0x06, 0x8b, 0xea, 0x24, 0x9c, 0x8b, 0x16, 0x26, 0x52, 0x52, 0xd8, 0x0d, 0x67,
- 0xa9, 0x2d, 0x6b, 0x49, 0x01, 0x58, 0x78, 0xb1, 0x01, 0xf3, 0xfe, 0x91, 0x91, 0xd3, 0xd1, 0x10,
- 0x61, 0x67, 0x19, 0xa8, 0x8e, 0x11, 0x7f, 0xac, 0x8e, 0xaf, 0xa6, 0xc2, 0xc2, 0xc1, 0x1e, 0x37,
- 0xd0, 0x79, 0x33, 0x59, 0x4f, 0x6c, 0x98, 0x97, 0x4f, 0x22, 0xaf, 0x63, 0x63, 0xd6, 0x48, 0x7a,
- 0x48, 0x99, 0x04, 0xae, 0x05, 0xfb, 0x5b, 0x30, 0x05, 0xb9, 0x80, 0x90, 0x90, 0x19, 0x13, 0x50,
- 0xf1, 0x96, 0x11, 0x37, 0x84, 0x24, 0xc9, 0xcc, 0x84, 0x1e, 0x65, 0x21, 0x21, 0xf3, 0x38, 0x97,
- 0x91, 0x5a, 0xd6, 0x92, 0x02, 0xb0, 0xf0, 0xa1, 0x02, 0x25, 0x3f, 0xe1, 0xe1, 0x65, 0x61, 0x20,
- 0x65, 0x8e, 0xe7, 0x9c, 0xae, 0x40, 0xa4, 0x2e, 0xae, 0xba, 0xd0, 0xca, 0xca, 0x5e, 0xc1, 0x72,
- 0x24, 0xad, 0x02, 0x57, 0xe3, 0x9c, 0xcc, 0x18, 0xe3, 0xbd, 0x40, 0x48, 0x48, 0xed, 0xe8, 0x28,
- 0x9c, 0x09, 0xc9, 0xc3, 0x6a, 0xc6, 0x18, 0x25, 0x6a, 0x8e, 0x59, 0xfb, 0xfb, 0x50, 0x84, 0x6f,
- 0xc8, 0x4a, 0x72, 0xe1, 0x8f, 0x49, 0x07, 0x1d, 0x8f, 0x5c, 0x58, 0x53, 0x53, 0x12, 0xcf, 0x27,
- 0x14, 0xcb, 0x80, 0xe4, 0xa0, 0xd6, 0x31, 0xcf, 0xa0, 0x41, 0x6d, 0x28, 0x28, 0xa6, 0x25, 0x92,
- 0x70, 0xee, 0xb9, 0x75, 0x06, 0x13, 0xd3, 0x20, 0x06, 0x6f, 0x41, 0xe0, 0xe0, 0xaf, 0xa3, 0x60,
- 0x39, 0xdc, 0x63, 0xd6, 0x0b, 0x6d, 0xce, 0xd1, 0x0b, 0x42, 0x3d, 0x72, 0x72, 0xe1, 0xf7, 0xb0,
- 0x55, 0xe8, 0x65, 0x2f, 0xed, 0x0a, 0x59, 0xf9, 0xed, 0x46, 0xfd, 0xaa, 0xaa, 0x15, 0x0c, 0xc8,
- 0x13, 0x1c, 0xdf, 0xc7, 0x98, 0xcb, 0x20, 0xcd, 0x98, 0x2b, 0xdc, 0x26, 0x26, 0xc0, 0x33, 0x94,
- 0xd6, 0x05, 0xb2, 0x77, 0x7f, 0xf4, 0xcf, 0x54, 0x7f, 0xdc, 0xe2, 0x6f, 0x6f, 0xe7, 0x19, 0xfc,
- 0xfb, 0x12, 0x51, 0x45, 0xd4, 0x4f, 0x30, 0x4a, 0xd4, 0xdf, 0xb2, 0x35, 0x35, 0xa0, 0xcb, 0xde,
- 0x22, 0xd1, 0x83, 0x79, 0xd3, 0x04, 0x9b, 0xdb, 0xd3, 0x43, 0x0d, 0x44, 0x44, 0xdc, 0xb9, 0xae,
- 0xda, 0xfd, 0x73, 0x2b, 0x1f, 0x07, 0x61, 0x11, 0x1f, 0xe3, 0x78, 0x77, 0x77, 0x85, 0xbb, 0x33,
- 0x25, 0x06, 0xdc, 0x5a, 0xeb, 0x19, 0x8a, 0xd9, 0xeb, 0x29, 0xbc, 0x4a, 0x4a, 0xba, 0xaf, 0xa8,
- 0xe7, 0xc8, 0xee, 0xc9, 0x34, 0x3b, 0x74, 0x42, 0x34, 0xb4, 0x33, 0x0d, 0x0d, 0xfb, 0x93, 0xc6,
- 0xe4, 0xf6, 0x4f, 0xde, 0x2c, 0x77, 0xbe, 0xc2, 0x2c, 0xcb, 0xf4, 0x0b, 0x0b, 0x02, 0x5a, 0x85,
- 0xa3, 0xa9, 0x2b, 0x3b, 0x51, 0x33, 0x81, 0x37, 0x51, 0x32, 0x29, 0x85, 0x85, 0x80, 0x22, 0x59,
- 0x8c, 0x2b, 0xb7, 0x13, 0xea, 0x41, 0xf2, 0x68, 0xea, 0xda, 0x42, 0xdb, 0xdb, 0x69, 0x7e, 0xb8,
- 0x19, 0x98, 0x9f, 0xb5, 0xc8, 0xa0, 0xd9, 0x4b, 0xc8, 0xea, 0x0b, 0x32, 0x32, 0x93, 0xc0, 0xdd,
- 0x09, 0xba, 0xe1, 0x65, 0x48, 0x27, 0x33, 0x06, 0x48, 0xbe, 0x10, 0x12, 0x12, 0xaa, 0x3a, 0x0a,
- 0x2d, 0x17, 0xe3, 0x32, 0xab, 0xbb, 0xff, 0x1e, 0xab, 0x03, 0x50, 0x5a, 0x5a, 0x47, 0xd2, 0x22,
- 0x8f, 0x15, 0x16, 0x04, 0xf2, 0x0d, 0x38, 0xe8, 0xf2, 0xa5, 0x85, 0xdd, 0xdd, 0x90, 0xb7, 0xfb,
- 0x94, 0x18, 0xf6, 0xab, 0x2a, 0x64, 0x6d, 0xe2, 0x2a, 0xa4, 0xb5, 0xeb, 0xeb, 0xad, 0xf9, 0xe5,
- 0x0d, 0x53, 0x1f, 0x51, 0x68, 0x76, 0xe8, 0x84, 0x68, 0xab, 0x66, 0x1a, 0x1a, 0x35, 0xe5, 0x4f,
- 0x85, 0x91, 0x56, 0x76, 0xa2, 0x66, 0xc1, 0x6e, 0xa2, 0x64, 0x52, 0xc9, 0xc9, 0xc3, 0x44, 0xb2,
- 0x57, 0x7d, 0x1a, 0x35, 0xfd, 0xc3, 0xd5, 0xb8, 0xfd, 0xad, 0xc6, 0xae, 0xae, 0xbb, 0x82, 0x0b,
- 0x96, 0x8d, 0x89, 0xb1, 0x3a, 0xad, 0xe1, 0xa3, 0x3a, 0x4f, 0x8e, 0xef, 0xef, 0x03, 0x77, 0x26,
- 0x69, 0x76, 0x26, 0xc0, 0xce, 0xb3, 0x0a, 0x6b, 0xce, 0x85, 0x4a, 0xd2, 0xd2, 0x3c, 0x63, 0xbd,
- 0xf8, 0x2c, 0xf0, 0x52, 0xcc, 0x03, 0xfa, 0xca, 0xcc, 0xa0, 0x75, 0x33, 0x33, 0x59, 0x02, 0x9d,
- 0x5e, 0xc7, 0xfb, 0x50, 0xb5, 0xe4, 0xe6, 0xbe, 0xb5, 0x13, 0xd6, 0xbc, 0xbc, 0x11, 0xb8, 0x01,
- 0x0e, 0x6d, 0xbe, 0x46, 0x70, 0x3a, 0x22, 0x04, 0x70, 0xd4, 0xa1, 0x1c, 0x1c, 0xcc, 0x2c, 0x0c,
- 0x71, 0x45, 0x67, 0x78, 0x0e, 0x96, 0x95, 0xe1, 0x0e, 0xfb, 0xbd, 0xe2, 0xe2, 0xf8, 0xe4, 0xe0,
- 0x7a, 0x6a, 0xf9, 0x07, 0x56, 0x78, 0x2a, 0xa6, 0x56, 0xae, 0x96, 0xf4, 0xf4, 0xfc, 0x50, 0x29,
- 0x01, 0xab, 0xde, 0x0d, 0x08, 0x85, 0x46, 0xc1, 0x08, 0x94, 0xfc, 0x02, 0x02, 0x57, 0x47, 0x80,
- 0xe0, 0x1f, 0xb1, 0xea, 0x0c, 0x26, 0x65, 0x40, 0x0c, 0xde, 0x82, 0x03, 0x03, 0x9d, 0x85, 0xc0,
- 0x7e, 0x83, 0x07, 0x33, 0x76, 0x29, 0xf1, 0x24, 0x76, 0xbb, 0xe0, 0xfc, 0xfc, 0x63, 0x8f, 0x6c,
- 0x93, 0xcf, 0xa9, 0x88, 0x12, 0x79, 0x7c, 0xe0, 0x12, 0xce, 0x04, 0xe5, 0xe5, 0xcb, 0xef, 0xe3,
- 0xce, 0x36, 0xf3, 0xcf, 0xbf, 0xd1, 0x50, 0xde, 0xbf, 0xa2, 0x15, 0x5f, 0x5f, 0x23, 0x9e, 0xa1,
- 0x9f, 0x37, 0x68, 0xd4, 0x72, 0x8a, 0xd2, 0xa5, 0x72, 0xf1, 0x9e, 0xfd, 0xfd, 0xa9, 0x4d, 0x2c,
- 0x3a, 0xe2, 0xc2, 0xc1, 0x13, 0x21, 0x04, 0x51, 0x13, 0x3d, 0xfa, 0x74, 0x74, 0x18, 0x3e, 0xf3,
- 0xd1, 0xd2, 0xed, 0x54, 0x47, 0xe9, 0xde, 0x56, 0x47, 0xb6, 0x53, 0x61, 0x61, 0x81, 0x0f, 0xfa,
- 0xf2, 0xa8, 0xb0, 0x20, 0x9c, 0x68, 0x03, 0x4c, 0x9c, 0x61, 0xa2, 0x27, 0x27, 0x0a, 0xf1, 0xd4,
- 0xcf, 0x9d, 0x2d, 0xc2, 0xb7, 0x54, 0x16, 0x1f, 0xb7, 0x36, 0xe9, 0x5d, 0x5d, 0x74, 0xd9, 0x21,
- 0x43, 0xb6, 0x9a, 0xd1, 0x5d, 0x15, 0xe4, 0x77, 0x5d, 0xec, 0xab, 0x86, 0x86, 0x1d, 0xa7, 0x99,
- 0xc9, 0xe1, 0xac, 0xec, 0x87, 0xcc, 0x41, 0xdc, 0x87, 0xc8, 0xa4, 0x51, 0x51, 0x45, 0x88, 0xa7,
- 0x4a, 0x0c, 0x7b, 0xb4, 0x15, 0x32, 0xd7, 0x71, 0x15, 0x52, 0xbb, 0x94, 0x94, 0xb7, 0x9d, 0x93,
- 0xbd, 0xe6, 0xeb, 0xad, 0xa1, 0x8e, 0x49, 0x7e, 0xa1, 0xb2, 0x93, 0xb9, 0xb9, 0x75, 0xf4, 0x82,
- 0x62, 0x59, 0xb8, 0xbf, 0x96, 0x5d, 0xb5, 0x2c, 0x96, 0xd0, 0x61, 0xc4, 0xc4, 0x38, 0xd7, 0x74,
- 0xac, 0x6f, 0x4b, 0x70, 0x29, 0x8c, 0xe5, 0xf2, 0x29, 0x72, 0x74, 0x9b, 0x9b, 0x1b, 0x49, 0xd5,
- 0x02, 0x95, 0x7f, 0x1a, 0x10, 0xc9, 0x8c, 0x41, 0x10, 0xeb, 0x3b, 0x04, 0x04, 0xae, 0x8e, 0xc3,
- 0x37, 0xb1, 0xdd, 0x90, 0x7b, 0x57, 0xec, 0xd5, 0x7b, 0x96, 0x9c, 0x6e, 0x6e, 0x2d, 0xdb, 0xbc,
- 0x82, 0x46, 0x09, 0x55, 0x9a, 0x7b, 0xd0, 0x6c, 0x9a, 0x0e, 0xe3, 0xc7, 0xc7, 0xa5, 0x52, 0xb4,
- 0xc1, 0xf0, 0x93, 0x84, 0xc7, 0x6e, 0x34, 0x1b, 0xc7, 0xe2, 0x48, 0x41, 0x41, 0xb8, 0xf5, 0x2d,
- 0x26, 0x38, 0x7d, 0x4d, 0xf3, 0x55, 0x40, 0x59, 0xf3, 0x56, 0x7b, 0x4c, 0x4c, 0x43, 0x66, 0xeb,
- 0xbb, 0x9a, 0x6a, 0x83, 0x91, 0x16, 0x1e, 0xbd, 0x91, 0x4c, 0xde, 0xb5, 0xb5, 0x44, 0xa5, 0x04,
- 0x0f, 0xc6, 0x60, 0x4b, 0x78, 0xbf, 0x64, 0xc5, 0x78, 0x40, 0x5d, 0x1e, 0x1e, 0x9b, 0x6b, 0x8c,
- 0xd4, 0x90, 0xcd, 0x6d, 0x6f, 0x3d, 0x43, 0x15, 0x6f, 0x37, 0xd9, 0x6b, 0x6b, 0x49, 0x97, 0x3f,
- 0x5b, 0x85, 0xdb, 0x69, 0x9d, 0x30, 0x7b, 0xfd, 0x9d, 0x92, 0x5c, 0xb6, 0xb6, 0xd9, 0x20, 0xc4,
- 0x63, 0xf2, 0x66, 0xb2, 0x9e, 0xd8, 0xf3, 0xed, 0x9e, 0x44, 0x9d, 0xc6, 0xc6, 0x6f, 0x90, 0xf4,
- 0x87, 0x04, 0x29, 0x6c, 0xb2, 0xaf, 0x4d, 0x2f, 0xb2, 0x8f, 0x69, 0xcd, 0xcd, 0x6d, 0xca, 0x71,
- 0xbf, 0x73, 0x94, 0xb7, 0xb1, 0x47, 0xc5, 0x3f, 0xb1, 0x59, 0xa8, 0xbd, 0xbd, 0xdb, 0x7a, 0x41,
- 0x97, 0x26, 0x57, 0xbc, 0x32, 0x28, 0xa7, 0x62, 0x32, 0xdb, 0x72, 0xed, 0xed, 0x54, 0x30, 0xa6,
- 0x46, 0xf4, 0xba, 0xe8, 0x75, 0xc1, 0x79, 0x34, 0x75, 0x6d, 0x21, 0x8c, 0x8c, 0xd5, 0x3f, 0x5c,
- 0xaa, 0x13, 0xca, 0x5e, 0x19, 0x14, 0xb2, 0x31, 0x19, 0x8c, 0x39, 0x97, 0x97, 0x2a, 0x18, 0x53,
- 0x4f, 0x4e, 0x5b, 0x8d, 0x3d, 0xe6, 0x4a, 0x32, 0x3d, 0xd3, 0x31, 0x9e, 0x9e, 0x7f, 0x05, 0x56,
- 0xc6, 0x27, 0xcc, 0xa7, 0xff, 0x73, 0x25, 0x19, 0xff, 0x88, 0xf9, 0x4f, 0x4f, 0xde, 0xe3, 0x2b,
- 0x4e, 0xe5, 0x85, 0x80, 0x35, 0x63, 0x0c, 0xf3, 0x35, 0x47, 0xcd, 0x9c, 0x9c, 0x28, 0x42, 0xd6,
- 0x80, 0xd3, 0x76, 0x4f, 0x8a, 0xb2, 0x5c, 0x2d, 0x8a, 0xe5, 0xd8, 0xc3, 0xc3, 0x0b, 0xdc, 0x77,
- 0x7f, 0x28, 0xd9, 0x3e, 0x7e, 0xac, 0xb7, 0xe5, 0x7e, 0x2f, 0x1c, 0xfe, 0xfe, 0x34, 0xc8, 0xec,
- 0x45, 0xca, 0x1b, 0xff, 0x6d, 0x8d, 0xb3, 0xb4, 0x6d, 0x12, 0xe6, 0x8a, 0x8a, 0x2c, 0xf6, 0x1f,
- 0xeb, 0x30, 0x2f, 0x95, 0x54, 0xc8, 0xda, 0x07, 0x54, 0x8b, 0xa9, 0x15, 0x15, 0x99, 0x31, 0x09,
- 0x68, 0xdd, 0xf8, 0xcd, 0xc6, 0x36, 0x4c, 0xaa, 0xc6, 0x11, 0xb6, 0xd0, 0xd0, 0x6b, 0x24, 0x3d,
- 0x10, 0x22, 0x7e, 0xd0, 0x80, 0x87, 0xea, 0x4d, 0x80, 0x54, 0x1b, 0x20, 0x20, 0x39, 0xfa, 0xd7,
- 0x20, 0x44, 0xfc, 0x63, 0xc3, 0xcd, 0x17, 0x9a, 0xc3, 0xa8, 0x36, 0x40, 0x40, 0x72, 0x37, 0x6d,
- 0x5f, 0x6c, 0x25, 0x5d, 0xbd, 0x61, 0xa0, 0x7f, 0xbd, 0x87, 0x2a, 0xbe, 0xbe, 0x46, 0xff, 0x81,
- 0x49, 0x32, 0xda, 0xa3, 0x0d, 0x7e, 0x1d, 0xf1, 0x0d, 0x2d, 0x7c, 0x92, 0x92, 0x4e, 0x54, 0xd0,
- 0xd3, 0x47, 0x92, 0x4e, 0x57, 0x20, 0x52, 0x17, 0x57, 0x5d, 0x68, 0x65, 0x65, 0x2f, 0x81, 0x39,
- 0xc2, 0xce, 0x32, 0x93, 0xdf, 0x22, 0xfe, 0x9b, 0xdf, 0x9d, 0x8f, 0x47, 0x47, 0x41, 0x3c, 0x6e,
- 0x56, 0xd6, 0xc4, 0x38, 0xf5, 0x46, 0x93, 0x79, 0xf5, 0x39, 0x3a, 0xac, 0xac, 0xec, 0xc5, 0x8b,
- 0xe5, 0x5d, 0x91, 0xd3, 0x24, 0xf2, 0xf8, 0x03, 0x24, 0x5f, 0x08, 0x09, 0x09, 0x55, 0x1d, 0x05,
- 0xbc, 0x4d, 0x35, 0xa0, 0xa9, 0x0b, 0x0f, 0xbf, 0xa9, 0x26, 0x6f, 0xbb, 0xbb, 0x22, 0xb3, 0x02,
- 0x77, 0x39, 0xe6, 0x56, 0x3e, 0x0e, 0xc2, 0x22, 0x3e, 0x05, 0xf0, 0xee, 0xee, 0xc9, 0xb5, 0x66,
- 0x15, 0x60, 0x5e, 0xe9, 0xa8, 0x53, 0x77, 0x0e, 0xa8, 0xd5, 0x91, 0x2a, 0x2a, 0xf1, 0x62, 0x12,
- 0x30, 0x66, 0x82, 0xb3, 0x43, 0x4a, 0xfd, 0xd7, 0x43, 0xfc, 0x2d, 0x60, 0x60, 0x4b, 0xcd, 0xba,
- 0xb0, 0xb5, 0xf4, 0xfc, 0xc9, 0xf8, 0xa1, 0xfa, 0xc9, 0x19, 0xf5, 0xa3, 0xa3, 0x40, 0x11, 0xcd,
- 0xc3, 0x65, 0xec, 0x9e, 0xd7, 0xa7, 0xb8, 0x5a, 0xd7, 0x09, 0x73, 0x45, 0x45, 0x16, 0x7b, 0xee,
- 0xa6, 0xeb, 0x0b, 0x02, 0x79, 0xe7, 0x1c, 0x74, 0x79, 0xb3, 0xa3, 0x8f, 0x8f, 0x48, 0xba, 0x9c,
- 0x6a, 0x48, 0x87, 0xd7, 0xd6, 0xff, 0xc0, 0xeb, 0xd6, 0xfa, 0x8d, 0xd4, 0xd4, 0xc5, 0xaa, 0xfe,
- 0x6e, 0xa1, 0x79, 0xe3, 0xf6, 0xae, 0x1b, 0x69, 0xf6, 0xef, 0xfb, 0xdc, 0xdc, 0x5a, 0x75, 0xbb,
- 0xee, 0x72, 0x0f, 0xac, 0x7c, 0x1c, 0x47, 0x44, 0x7c, 0x0a, 0x23, 0x1f, 0x1f, 0x51, 0xa9, 0xcc,
- 0x95, 0xb3, 0x28, 0xa6, 0x22, 0xe1, 0x2b, 0x23, 0x22, 0x30, 0x49, 0xe9, 0xe9, 0xfa, 0xbe, 0x65,
- 0xbe, 0xd8, 0x4a, 0xba, 0xb9, 0xc2, 0x83, 0xfe, 0xb9, 0xcd, 0x54, 0xbf, 0xbf, 0x8c, 0x3d, 0xc1,
- 0x38, 0x77, 0xbd, 0xdb, 0x03, 0xe8, 0x88, 0x10, 0x03, 0xd6, 0xc1, 0x70, 0x70, 0xb6, 0xb0, 0x30,
- 0x1c, 0xda, 0xbf, 0x8c, 0xe0, 0x74, 0x44, 0x08, 0xe0, 0x6b, 0x81, 0x38, 0x38, 0x5b, 0x58, 0x18,
- 0xd8, 0x68, 0x0c, 0x31, 0x0f, 0xce, 0xed, 0x50, 0x0f, 0x08, 0x43, 0x73, 0x73, 0x2b, 0x35, 0xf0,
- 0xfc, 0xc5, 0x0e, 0x66, 0xec, 0x52, 0x21, 0x48, 0xec, 0xb5, 0x03, 0x3b, 0x3b, 0xc6, 0xdd, 0xd8,
- 0x6b, 0xe3, 0x59, 0xda, 0xde, 0x7a, 0x86, 0x2a, 0xde, 0x6e, 0x71, 0xd6, 0xd6, 0x92, 0xed, 0x7e,
- 0x9e, 0x9c, 0xb6, 0xd9, 0x7a, 0x0f, 0x94, 0x64, 0x7a, 0x65, 0x62, 0xff, 0xff, 0xfe, 0x0a, 0xac,
- 0xf3, 0x03, 0x6e, 0x2d, 0x94, 0xed, 0x45, 0x8d, 0x94, 0xf5, 0x5e, 0x25, 0x25, 0x5d, 0xb6, 0x54,
- 0x16, 0x5e, 0xff, 0xfe, 0xb0, 0x1f, 0xbd, 0x8e, 0xb0, 0xaa, 0x56, 0x2c, 0x2c, 0x08, 0xab, 0x51,
- 0xf6, 0x41, 0x4e, 0x14, 0xbc, 0x39, 0xd8, 0xce, 0xbc, 0x74, 0xd4, 0x2f, 0x2f, 0x95, 0x2e, 0x91,
- 0xfa, 0xb9, 0x8f, 0x48, 0xdc, 0xca, 0x76, 0x8b, 0xdc, 0x4b, 0x4e, 0x37, 0x37, 0xf7, 0x8c, 0x5e,
- 0x1d, 0x71, 0x61, 0x81, 0xe8, 0xf1, 0x02, 0xc9, 0xe8, 0xff, 0x7d, 0x3a, 0x3a, 0x0c, 0x1f, 0x98,
- 0x05, 0x42, 0x20, 0x39, 0x28, 0xd4, 0x9d, 0x43, 0x28, 0x81, 0x8a, 0x0a, 0x0a, 0xc8, 0x98, 0xc5,
- 0x0a, 0x84, 0x40, 0x72, 0x50, 0x6b, 0xf9, 0x86, 0x50, 0xc1, 0xd7, 0x14, 0x14, 0x53, 0xf3, 0x49,
- 0x79, 0x54, 0x58, 0x10, 0x4e, 0x34, 0xe0, 0x26, 0x4e, 0xd1, 0x51, 0xf2, 0xf2, 0x05, 0x99, 0x6a,
- 0x3e, 0x0b, 0x3c, 0xf5, 0x33, 0x70, 0xdf, 0xd3, 0x33, 0x28, 0x8c, 0x7c, 0x7c, 0x87, 0xe1, 0xb6,
- 0x90, 0xf1, 0x08, 0x9f, 0x0a, 0x35, 0xb6, 0x60, 0x0a, 0xb1, 0xc3, 0xe3, 0xe3, 0x32, 0x26, 0xa0,
- 0x98, 0xe0, 0x37, 0xf7, 0x4a, 0x97, 0xc3, 0xa7, 0x4a, 0x9b, 0x2f, 0xf3, 0xf3, 0xcf, 0x5b, 0x2a,
- 0xcd, 0x08, 0x52, 0xd8, 0xa7, 0x9d, 0x9a, 0x5e, 0xa7, 0xdd, 0xd2, 0x59, 0x59, 0xda, 0x57, 0xe2,
- 0xcb, 0x74, 0xd3, 0xf6, 0x97, 0x05, 0xcd, 0x9d, 0x97, 0x23, 0x9f, 0x55, 0x55, 0xeb, 0x06, 0x64,
- 0x0c, 0xf8, 0xc1, 0x5c, 0x60, 0xf3, 0xae, 0x45, 0x60, 0x3f, 0x9a, 0x18, 0x18, 0x62, 0xa2, 0xcf,
- 0x36, 0x1a, 0x03, 0x9d, 0x73, 0xd2, 0xaa, 0x14, 0x73, 0x02, 0x60, 0x6c, 0x6c, 0x7a, 0x9c, 0x3c,
- 0x73, 0xd0, 0x18, 0x62, 0x1e, 0x5f, 0x19, 0xa0, 0x1e, 0x10, 0x86, 0xe6, 0xe6, 0x56, 0x6a, 0x23,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x9d, 0xa2, 0x17, 0xce, 0x62, 0x43, 0x5e, 0xe4, 0x62, 0x1a, 0xa5, 0xf9, 0xf9, 0x07, 0xc3, 0xef,
- 0xe9, 0xa5, 0x50, 0x8f, 0x44, 0x01, 0x56, 0x46, 0x44, 0x60, 0x92, 0x11, 0x11, 0x37, 0xbf, 0xca,
- 0x92, 0x64, 0x77, 0x85, 0x1a, 0xfc, 0x3a, 0x21, 0x1a, 0x5a, 0xf8, 0xe7, 0xe7, 0x9c, 0xa8, 0x63,
- 0x17, 0xf5, 0x21, 0xf3, 0xb8, 0x9a, 0xfb, 0x4f, 0xb8, 0x3e, 0xaa, 0x2e, 0x2e, 0x5f, 0xec, 0xd1,
- 0x07, 0xd7, 0x5f, 0x23, 0x38, 0x1d, 0x11, 0x02, 0x38, 0x6a, 0xb1, 0x0e, 0x0e, 0x66, 0x16, 0x06,
- 0x81, 0x78, 0xa8, 0x42, 0x82, 0x37, 0x1a, 0xec, 0x82, 0x71, 0x24, 0xc1, 0xc1, 0x5c, 0x9b, 0xf7,
- 0xed, 0x4c, 0xae, 0xbb, 0x64, 0x50, 0x8d, 0xc4, 0x64, 0x75, 0xe4, 0x19, 0x19, 0xa8, 0x60, 0x8f,
- 0xca, 0xdf, 0x0d, 0xfb, 0x9f, 0x80, 0x8b, 0x5c, 0x9f, 0xb7, 0x63, 0x57, 0x57, 0xbc, 0x41, 0xe4,
- 0x74, 0x07, 0x47, 0x41, 0x26, 0x42, 0x08, 0xa2, 0x26, 0x7a, 0x37, 0xe8, 0xe8, 0x30, 0x7c, 0x25,
- 0xa1, 0x3c, 0x54, 0x21, 0x41, 0xfa, 0x0d, 0x76, 0x41, 0xd9, 0x12, 0x81, 0x81, 0x2e, 0xac, 0x9a,
- 0x5d, 0xf9, 0x5a, 0x47, 0xad, 0xa8, 0x2c, 0x3e, 0xad, 0x6c, 0x11, 0xba, 0xba, 0xe8, 0x71, 0x42,
- 0x40, 0x88, 0x3b, 0xc6, 0x45, 0x59, 0x2e, 0xf7, 0x45, 0x93, 0x6c, 0x80, 0x80, 0xe4, 0x6e, 0xda,
- 0x78, 0xff, 0x86, 0x1d, 0x46, 0xb1, 0xa6, 0xe7, 0x46, 0x45, 0xad, 0xf0, 0xf0, 0x52, 0xde, 0xea,
- 0x83, 0xed, 0xd7, 0x58, 0x92, 0xfe, 0x96, 0xad, 0x92, 0x9a, 0x1f, 0xc5, 0xc5, 0xf2, 0x15, 0x34,
- 0xdd, 0x2a, 0x2c, 0x08, 0x27, 0x1a, 0x70, 0x13, 0x27, 0x89, 0xc9, 0x79, 0x79, 0xe3, 0xad, 0x35,
- 0x7b, 0xc1, 0x27, 0x0a, 0x5e, 0xfd, 0x6c, 0x67, 0x5e, 0x3a, 0x6a, 0xf6, 0xf6, 0xab, 0x17, 0xa9,
- 0x42, 0x1d, 0x44, 0xdc, 0x55, 0x90, 0xa2, 0xb6, 0x55, 0x78, 0x57, 0x84, 0x84, 0x4a, 0xe0, 0x19,
- 0xdc, 0x81, 0xf2, 0x05, 0x2f, 0x9f, 0x36, 0xd2, 0x2f, 0x1d, 0x35, 0x7b, 0x7b, 0xb4, 0xea, 0xb5,
- 0xf0, 0x3d, 0xcf, 0x3a, 0x8c, 0xa1, 0x8f, 0x0d, 0x8c, 0x8a, 0x99, 0x23, 0x23, 0xa4, 0x7f, 0x17,
- 0x2c, 0xbc, 0x3d, 0x3f, 0xa3, 0x3e, 0xb9, 0xdf, 0xa3, 0x97, 0xac, 0x58, 0x58, 0x10, 0x95, 0xa2,
- 0x5c, 0x52, 0x84, 0x4a, 0xa5, 0x2d, 0x6a, 0xff, 0xa5, 0xf8, 0xed, 0xb8, 0xb8, 0xbf, 0x36, 0xc2,
- 0x47, 0x5f, 0x64, 0xe5, 0x7d, 0x44, 0x3f, 0xf5, 0x7d, 0xf9, 0xdd, 0x8e, 0x8e, 0x82, 0x78, 0xdc,
- 0xa4, 0x7e, 0x74, 0x18, 0x69, 0x2e, 0x90, 0x35, 0x69, 0x58, 0x98, 0x8b, 0x8b, 0xe6, 0x34, 0x5f,
- 0x52, 0x3f, 0x3a, 0x0c, 0xd5, 0x17, 0x48, 0xfb, 0xd5, 0x2c, 0x4c, 0xa4, 0xa4, 0x73, 0x1a, 0xce,
- 0x5a, 0x2e, 0x05, 0x64, 0x95, 0xb5, 0x3d, 0x3c, 0x95, 0x06, 0xa0, 0xb4, 0xb4, 0x8e, 0x67, 0x44,
- 0x3f, 0xa0, 0xe2, 0xf8, 0x3b, 0xf5, 0x99, 0x12, 0x3b, 0xbc, 0x70, 0x7e, 0x7e, 0xd0, 0xa6, 0x36,
- 0xd9, 0xc3, 0xd2, 0x3c, 0x07, 0x4b, 0xab, 0x91, 0x07, 0x9c, 0xbf, 0x71, 0x71, 0x7c, 0x72, 0x70,
- 0x0b, 0x2f, 0x9e, 0x7f, 0x58, 0xee, 0xbf, 0x47, 0x58, 0x55, 0x2b, 0x16, 0x16, 0x04, 0xb4, 0xc9,
- 0x2e, 0x29, 0x42, 0x25, 0xb3, 0xf7, 0x35, 0x9e, 0xb3, 0x7c, 0x97, 0x5c, 0x5c, 0xbe, 0x1b, 0x61,
- 0x08, 0x11, 0x3f, 0x68, 0x40, 0xa2, 0x75, 0xc7, 0x40, 0x2a, 0xec, 0x10, 0x10, 0xfd, 0x7d, 0x8a,
- 0x60, 0xcc, 0xc7, 0xa5, 0x86, 0x94, 0x39, 0x6d, 0x86, 0x3b, 0x5a, 0xc0, 0xc0, 0x96, 0x59, 0xb7,
- 0xf4, 0xd4, 0x31, 0x0e, 0xac, 0xf0, 0x54, 0x8f, 0xac, 0x9f, 0xef, 0x2b, 0x2b, 0x3b, 0xa0, 0x52,
- 0x4b, 0xa7, 0xa5, 0xb9, 0x1d, 0xb7, 0x91, 0xb0, 0x1d, 0xc6, 0x47, 0x96, 0x96, 0xe0, 0xda, 0x13,
- 0xc7, 0x8c, 0x12, 0xaa, 0xf7, 0xf6, 0x63, 0xd8, 0xf7, 0x1c, 0x05, 0x4d, 0x4d, 0x89, 0xa4, 0xab,
- 0x06, 0x7c, 0x81, 0x2e, 0x30, 0x98, 0x57, 0xc3, 0x30, 0xfe, 0x4d, 0x0c, 0x0c, 0x31, 0x51, 0x86,
- 0xdf, 0xbf, 0x53, 0x12, 0x37, 0xd3, 0xfc, 0x52, 0x37, 0x62, 0xf2, 0x7d, 0x7d, 0x4d, 0x23, 0xf6,
- 0x35, 0x24, 0xa2, 0x8a, 0x6b, 0x9e, 0x60, 0x94, 0x6b, 0x7d, 0xa7, 0x6a, 0x6a, 0x83, 0x55, 0x7f,
- 0xfd, 0x6e, 0xd0, 0x6b, 0xe4, 0xd7, 0x67, 0x89, 0xe4, 0x21, 0xff, 0x39, 0x39, 0x91, 0x9a, 0x58,
- 0x11, 0x89, 0xa0, 0xdd, 0x88, 0x02, 0xac, 0x8c, 0x88, 0xc0, 0xe7, 0x22, 0x22, 0x6e, 0xbd, 0x57,
- 0xb2, 0x20, 0x8b, 0xe6, 0xd9, 0x31, 0x2d, 0xbb, 0xd9, 0xf2, 0xce, 0xa7, 0xa7, 0xee, 0x9f, 0x0e,
- 0xc5, 0x19, 0x6d, 0xb0, 0xe7, 0x3f, 0xef, 0x99, 0xe7, 0xf7, 0x3e, 0x49, 0x49, 0x27, 0x2a, 0x68,
- 0xb8, 0xa4, 0xcb, 0x94, 0x89, 0x5a, 0xd4, 0x3d, 0x89, 0x33, 0x19, 0xb3, 0xb3, 0xbd, 0x6c, 0x47,
- 0xb5, 0xf7, 0xd4, 0xc5, 0xe1, 0x2c, 0x3c, 0xb9, 0xe1, 0x98, 0x7f, 0xa9, 0xa9, 0x88, 0x89, 0x08,
- 0x3b, 0x49, 0x1c, 0xcc, 0x1b, 0xa4, 0x42, 0x90, 0x1b, 0xa9, 0x06, 0x76, 0x76, 0x4f, 0x79, 0x73,
- 0x28, 0x55, 0xc3, 0x0b, 0x83, 0x6f, 0x62, 0x5d, 0x83, 0x82, 0xda, 0x50, 0x50, 0x8f, 0x4a, 0xe7,
- 0xa0, 0x97, 0x8a, 0x2c, 0x49, 0x7f, 0x4b, 0xb7, 0x49, 0x4d, 0xee, 0x83, 0x83, 0x79, 0xeb, 0x1a,
- 0xe8, 0x0e, 0x8e, 0x82, 0x4c, 0x84, 0x10, 0x87, 0x4c, 0xf4, 0x6e, 0x13, 0x13, 0x60, 0xf8, 0x4a,
- 0xde, 0x14, 0x8d, 0x1f, 0x3f, 0x56, 0xba, 0x93, 0x3f, 0xf6, 0x0e, 0x7f, 0x7f, 0x1a, 0x64, 0x76,
- 0x1f, 0xe4, 0x1e, 0x9b, 0xf8, 0x38, 0x8e, 0x88, 0xf8, 0x14, 0x46, 0x3e, 0x3e, 0xa2, 0x91, 0x5b,
- 0x6f, 0x0a, 0xa7, 0xee, 0xfe, 0x2b, 0x5d, 0xa8, 0xfe, 0x7b, 0x07, 0xde, 0xde, 0x0d, 0x32, 0x3b,
- 0x59, 0x10, 0xa4, 0x73, 0x8d, 0xf9, 0xf7, 0xbc, 0x8d, 0x79, 0x67, 0xb2, 0xb2, 0x77, 0xae, 0x07,
- 0x32, 0xf3, 0xfd, 0xa9, 0x53, 0x83, 0x71, 0x96, 0x53, 0x17, 0x16, 0x64, 0x64, 0xe5, 0x43, 0x79,
- 0x84, 0x3a, 0x88, 0x7b, 0xaa, 0xe3, 0x87, 0xaf, 0xaa, 0xf0, 0xae, 0xcb, 0xcb, 0x94, 0x03, 0x32,
- 0x12, 0xb7, 0x01, 0xca, 0x90, 0x4e, 0x66, 0x0c, 0x90, 0xbf, 0x20, 0x24, 0x24, 0x97, 0x74, 0x14,
- 0x88, 0xc2, 0x49, 0x27, 0xca, 0x10, 0x29, 0xea, 0xca, 0xcf, 0x34, 0xd3, 0xd3, 0xf6, 0xa1, 0xfd,
- 0x1b, 0x0d, 0xe0, 0xaf, 0xd8, 0x69, 0x55, 0x0a, 0xd8, 0x01, 0x30, 0x36, 0x36, 0x3d, 0x4e, 0x1e,
- 0x58, 0xbb, 0x7a, 0x7e, 0x85, 0x7c, 0xb1, 0x7d, 0x85, 0xed, 0x9b, 0xb0, 0xb0, 0x20, 0xe9, 0x87,
- 0xa5, 0xd5, 0xaa, 0x15, 0x61, 0xab, 0xd6, 0xf4, 0x61, 0xcc, 0x64, 0x89, 0x89, 0xb1, 0x73, 0xdf,
- 0x04, 0xe9, 0xfe, 0x34, 0x20, 0x51, 0xdb, 0x82, 0x20, 0x15, 0x76, 0x08, 0x08, 0x9f, 0xdf, 0x45,
- 0xa7, 0x40, 0xd5, 0x0f, 0x71, 0x62, 0x5a, 0xb5, 0x71, 0x27, 0x5f, 0x8d, 0x8d, 0x1f, 0xfd, 0x1c,
- 0xd5, 0x3b, 0x13, 0x60, 0x67, 0xb8, 0x05, 0xd4, 0x67, 0xa3, 0x25, 0x69, 0x69, 0x1e, 0xd0, 0xbf,
- 0xf5, 0x7f, 0xef, 0x03, 0xa4, 0x75, 0x12, 0x4e, 0xa4, 0x0b, 0x13, 0x29, 0x29, 0x6c, 0xe7, 0xd2,
- 0x4d, 0xdb, 0x24, 0x97, 0x2d, 0x2f, 0xc6, 0x73, 0x2d, 0x38, 0x0a, 0x9a, 0x9a, 0xd1, 0x8b, 0x95,
- 0x3d, 0x35, 0x9d, 0xe2, 0x2b, 0x3c, 0x15, 0x53, 0x2b, 0x57, 0x4b, 0x7a, 0x7a, 0x7e, 0x28, 0xf5,
- 0xa8, 0x86, 0xb5, 0x44, 0x09, 0xdd, 0x3e, 0x70, 0x09, 0x67, 0x02, 0x93, 0x93, 0x84, 0x96, 0x90,
- 0x33, 0x58, 0x23, 0xa4, 0x5b, 0x06, 0x37, 0x57, 0x5b, 0x83, 0xea, 0x66, 0x66, 0xb2, 0x04, 0xf9,
- 0x21, 0xef, 0x22, 0x6e, 0xcb, 0x48, 0x51, 0x5b, 0xcb, 0x3c, 0xca, 0x42, 0x42, 0x25, 0x70, 0xed,
- 0x2b, 0x6b, 0x62, 0x1c, 0x9b, 0x23, 0xa8, 0xdd, 0x9b, 0xfd, 0x1d, 0x56, 0x56, 0x76, 0x83, 0xa4,
- 0x4c, 0x70, 0xfa, 0x9a, 0x25, 0xaa, 0x80, 0xb2, 0x25, 0xac, 0xf6, 0x98, 0x98, 0x86, 0xcc, 0x15,
- 0x1a, 0xa6, 0x3e, 0xa2, 0xd0, 0xec, 0x13, 0xcb, 0xd0, 0x95, 0xcc, 0x34, 0x34, 0x6a, 0x09, 0x9e,
- 0x67, 0x1b, 0x98, 0x86, 0xbe, 0x89, 0x28, 0x6f, 0xbe, 0x51, 0xeb, 0xce, 0xce, 0xf0, 0x4f, 0xb1,
- 0x54, 0x43, 0xbb, 0x22, 0xe5, 0x8f, 0x1f, 0x38, 0xe5, 0xd2, 0x01, 0xa8, 0xa8, 0x42, 0x4b, 0x48,
- 0xec, 0xe7, 0x70, 0xb6, 0x6c, 0xd5, 0xcb, 0x05, 0x6c, 0xe1, 0x18, 0x1b, 0x1b, 0xff, 0x27, 0x0f,
- 0x9b, 0xde, 0x96, 0xe0, 0x52, 0xdb, 0x09, 0x27, 0x52, 0xe4, 0xe8, 0xf5, 0xf5, 0x36, 0x92, 0x69,
- 0xa2, 0x02, 0xf5, 0x36, 0x59, 0xb6, 0xc7, 0xf6, 0x59, 0xa6, 0xd5, 0x87, 0x87, 0xd7, 0x65, 0xd9,
- 0x64, 0x25, 0x39, 0x91, 0xa6, 0xc5, 0xe2, 0xef, 0xa6, 0x2e, 0x2c, 0xc8, 0xc8, 0x09, 0x86, 0xf2,
- 0xef, 0xd9, 0xd1, 0xa1, 0x74, 0x99, 0x01, 0x85, 0x74, 0x9e, 0xdf, 0x1d, 0x1d, 0x06, 0xee, 0x4c,
- 0x8b, 0xfc, 0xe8, 0x30, 0xd2, 0x5c, 0xe3, 0x6a, 0xd2, 0xb0, 0xf3, 0xd5, 0xd5, 0x0f, 0x68, 0xbe,
- 0x6c, 0x34, 0x06, 0xf9, 0xe6, 0x67, 0x97, 0x28, 0xe6, 0x04, 0xc0, 0xd8, 0xd8, 0xf4, 0xfb, 0x78,
- 0xff, 0xfb, 0xaf, 0x71, 0xf4, 0x1e, 0xeb, 0xc8, 0xf4, 0xca, 0xc4, 0x3d, 0x3d, 0x3f, 0x14, 0x9b,
- 0xf7, 0xea, 0x90, 0x19, 0xb4, 0xbc, 0x9e, 0x0f, 0xb4, 0xe0, 0x28, 0x2d, 0x2d, 0xc2, 0x69, 0x11,
- 0x18, 0x33, 0x41, 0xb8, 0xc0, 0x25, 0x9f, 0x8a, 0xc0, 0x7e, 0xf7, 0x30, 0x30, 0xc4, 0x87, 0x5d,
- 0xb3, 0x8b, 0x55, 0xeb, 0xd1, 0xb4, 0x6b, 0x7a, 0xd1, 0x66, 0x32, 0xa5, 0xa5, 0xb9, 0xd8, 0x8e,
- 0x7c, 0x16, 0x78, 0x29, 0x66, 0xe0, 0x7d, 0x65, 0x66, 0x50, 0xdb, 0xf8, 0xf8, 0xcd, 0x01, 0xaf,
- 0xcc, 0xa3, 0x8c, 0xd5, 0xaf, 0x18, 0xdc, 0x9f, 0xaf, 0x49, 0x2e, 0x5b, 0x5b, 0x8d, 0x10, 0x62,
- 0x89, 0x69, 0x97, 0x2a, 0xc2, 0x95, 0x6f, 0x2b, 0xc2, 0x5b, 0xc8, 0xd1, 0xd1, 0xa1, 0xe6, 0x7d,
- 0xae, 0xfa, 0x34, 0x6a, 0x39, 0x45, 0x69, 0xb3, 0x39, 0x99, 0x4f, 0x9f, 0x9f, 0xb5, 0xc7, 0x16,
- 0x31, 0xcd, 0x5c, 0xbe, 0x4b, 0xcf, 0xbb, 0x16, 0x4b, 0x68, 0xd1, 0x62, 0x62, 0x1c, 0x8a, 0x3a,
- 0x34, 0x8f, 0x7c, 0x87, 0x63, 0x1b, 0x26, 0x55, 0x63, 0xe9, 0x5b, 0x68, 0x68, 0xd4, 0x12, 0xff,
- 0x66, 0xb0, 0x46, 0x8b, 0xb6, 0x0c, 0x6e, 0xae, 0xb6, 0xc5, 0x17, 0xcc, 0xcc, 0xa7, 0x08, 0x31,
- },
- { /* 12 */
- 0x55, 0x95, 0x9e, 0xb1, 0xd0, 0xa1, 0x4c, 0xd9, 0x5a, 0x2f, 0xf9, 0x1c, 0x4c, 0xf2, 0x1a, 0x52,
- 0xfa, 0xed, 0x87, 0xcf, 0x85, 0x5d, 0x81, 0x6c, 0x55, 0x48, 0x8b, 0x1e, 0x81, 0xe1, 0x58, 0x1c,
- 0x0c, 0xbe, 0x0a, 0x56, 0x48, 0xac, 0xcc, 0x72, 0x67, 0x5c, 0x45, 0x58, 0xcc, 0xf1, 0x09, 0x1a,
- 0x52, 0x31, 0x7b, 0x77, 0xfa, 0xee, 0x3b, 0x0a, 0xaf, 0x0c, 0xfb, 0x83, 0x3b, 0xb1, 0x8e, 0x02,
- 0xa3, 0xc6, 0x13, 0x28, 0x1d, 0x50, 0x01, 0xc7, 0x68, 0x3b, 0x37, 0x5a, 0x01, 0xe2, 0x4b, 0x54,
- 0x73, 0x1c, 0xab, 0xc9, 0xf7, 0x51, 0x4f, 0x53, 0xe2, 0x62, 0xa0, 0xf2, 0x4f, 0x17, 0xc7, 0xae,
- 0xe1, 0x9c, 0x70, 0x97, 0x07, 0xed, 0xe9, 0x75, 0xf2, 0xe7, 0x81, 0xb8, 0xe9, 0x6d, 0xd9, 0xcf,
- 0x81, 0x25, 0x20, 0x62, 0x02, 0xc4, 0x46, 0x63, 0x4c, 0x42, 0xec, 0x3d, 0x46, 0xe9, 0x91, 0x1f,
- 0x86, 0x81, 0xc5, 0xa4, 0x28, 0x8b, 0x31, 0xb0, 0xb9, 0x61, 0xee, 0xa2, 0x31, 0xaa, 0x05, 0x4f,
- 0x02, 0x35, 0x03, 0x19, 0x1c, 0x32, 0x22, 0x17, 0x4e, 0x1a, 0x41, 0xa5, 0x22, 0x77, 0xe2, 0xba,
- 0x6c, 0x07, 0x5a, 0xa3, 0x4d, 0x85, 0x63, 0x64, 0xd9, 0xf9, 0x28, 0xdd, 0x63, 0x75, 0x41, 0xca,
- 0xdf, 0xaa, 0x51, 0x43, 0xb0, 0x86, 0xb1, 0x1b, 0x84, 0x12, 0x52, 0xe6, 0xb1, 0xa9, 0x16, 0x07,
- 0x4e, 0xe4, 0x69, 0xe9, 0x52, 0x11, 0x24, 0xc0, 0xfd, 0x80, 0xf3, 0xba, 0x24, 0x7e, 0x9b, 0x81,
- 0xe8, 0xb3, 0x9c, 0x1e, 0x79, 0x3c, 0x70, 0xc3, 0x2e, 0x82, 0x87, 0xda, 0x70, 0xa8, 0xa6, 0x3f,
- 0x2e, 0x5d, 0x39, 0x1c, 0x57, 0x38, 0x8b, 0xd6, 0x43, 0x25, 0x9e, 0x3f, 0x8b, 0xfa, 0xd3, 0x51,
- 0x3d, 0xf8, 0xc2, 0x20, 0xa5, 0x40, 0x6b, 0x93, 0x1f, 0xe2, 0x53, 0x48, 0x6b, 0x69, 0x5c, 0x2f,
- 0x29, 0xf9, 0xdc, 0xda, 0x7d, 0x77, 0xfc, 0x05, 0xb6, 0x06, 0x9c, 0xa0, 0xfc, 0xb9, 0x47, 0x01,
- 0x7d, 0x97, 0xa2, 0x86, 0xa3, 0xcf, 0xa1, 0x36, 0xcb, 0x24, 0xa4, 0x0f, 0xa1, 0x91, 0x2c, 0x0e,
- 0x27, 0x72, 0xd5, 0x95, 0x29, 0xe9, 0x12, 0x60, 0x9f, 0x40, 0x98, 0x5d, 0x12, 0x3f, 0xac, 0xa1,
- 0x35, 0x2c, 0xce, 0x44, 0xd5, 0x88, 0xe3, 0xcf, 0xe4, 0x8a, 0x94, 0x99, 0xe3, 0x76, 0x52, 0x82,
- 0xcc, 0x0f, 0xaa, 0x7f, 0x42, 0xfe, 0x51, 0x5e, 0xd8, 0xd5, 0x9f, 0x91, 0x51, 0x3a, 0x99, 0x79,
- 0xd6, 0x85, 0xbd, 0xca, 0xce, 0x57, 0x28, 0xad, 0x58, 0x77, 0x54, 0x84, 0x28, 0x6c, 0x69, 0xf7,
- 0x87, 0x7a, 0x25, 0x49, 0x26, 0x92, 0x20, 0x5a, 0x9e, 0x6c, 0x2f, 0x11, 0x20, 0x70, 0x74, 0x12,
- 0xc9, 0x9e, 0x4c, 0xa0, 0x74, 0x83, 0x04, 0x9a, 0x63, 0xec, 0xdc, 0xab, 0x04, 0x0e, 0xef, 0x93,
- 0x6b, 0xa3, 0xbf, 0x65, 0x67, 0xca, 0x14, 0xb7, 0x2c, 0xda, 0x2a, 0x42, 0x14, 0x36, 0xd5, 0x9a,
- 0x32, 0x88, 0x2b, 0x82, 0xff, 0xc7, 0x94, 0x1c, 0x11, 0xa9, 0x96, 0x06, 0x94, 0x35, 0xc6, 0xd2,
- 0xcd, 0xf4, 0x4a, 0x92, 0x4c, 0xe7, 0x40, 0xb4, 0xff, 0xd8, 0x5e, 0x22, 0x40, 0xe0, 0xe8, 0x24,
- 0x23, 0x18, 0xd3, 0xa7, 0x11, 0x8d, 0x56, 0x4e, 0x03, 0x74, 0x1a, 0xd4, 0x56, 0xd1, 0xab, 0x16,
- 0x96, 0xea, 0xdd, 0x6c, 0xc8, 0xd8, 0xe2, 0x08, 0x8c, 0xb1, 0xa3, 0xc3, 0xe2, 0x94, 0x19, 0xd6,
- 0xb4, 0x09, 0xee, 0x26, 0xd7, 0x4c, 0xa5, 0xac, 0xa8, 0xc8, 0x78, 0xa4, 0xa5, 0x9f, 0xc3, 0x9d,
- 0x92, 0x80, 0xdb, 0x5e, 0xf0, 0xbc, 0xa6, 0x26, 0x10, 0x85, 0x21, 0x4a, 0xa6, 0x7a, 0x1e, 0x61,
- 0xc6, 0xee, 0xa5, 0x02, 0x2e, 0x04, 0xfb, 0x15, 0x6d, 0xa7, 0x19, 0xe5, 0xfb, 0x52, 0x75, 0x6e,
- 0x91, 0x4e, 0x38, 0xaa, 0xe2, 0x97, 0x95, 0xdb, 0x79, 0x92, 0xa1, 0x5c, 0x95, 0xd7, 0x8d, 0x86,
- 0xe4, 0x0d, 0x96, 0x48, 0x31, 0x90, 0xbc, 0xb1, 0x49, 0xde, 0xc2, 0x82, 0xbc, 0x59, 0xaf, 0x25,
- 0xd2, 0xef, 0xbb, 0xf8, 0xf6, 0x33, 0x6c, 0x83, 0xc4, 0x43, 0xd6, 0x0d, 0x6c, 0x82, 0x6e, 0x40,
- 0x56, 0x5b, 0x7d, 0x45, 0xc2, 0x8a, 0x7f, 0x24, 0x33, 0x38, 0x79, 0x0a, 0x7f, 0x5f, 0x89, 0xb5,
- 0x88, 0x0a, 0xcc, 0xeb, 0x7c, 0x15, 0xdf, 0xd5, 0x90, 0x27, 0xea, 0x5f, 0xdf, 0x2c, 0xee, 0xef,
- 0x6f, 0xc9, 0xb9, 0x57, 0x5f, 0xae, 0x50, 0x99, 0xb0, 0xee, 0xa8, 0xcb, 0x50, 0xd8, 0xd2, 0x2d,
- 0x10, 0x6b, 0x18, 0xc8, 0xe0, 0x53, 0xd3, 0xb8, 0x35, 0xd0, 0x4d, 0x61, 0xd3, 0x3e, 0x1c, 0x99,
- 0x59, 0x2b, 0x94, 0xe7, 0x98, 0x0d, 0x80, 0xab, 0x3d, 0x73, 0xbc, 0x44, 0x80, 0x03, 0x13, 0x48,
- 0x63, 0x77, 0xb3, 0x01, 0x17, 0x02, 0x9c, 0xeb, 0xd7, 0xb2, 0xed, 0x93, 0x9c, 0x29, 0xdb, 0x37,
- 0xca, 0x50, 0xaf, 0x54, 0x66, 0xa8, 0x37, 0x67, 0x0a, 0xfb, 0x5c, 0xbd, 0x37, 0xa3, 0x7c, 0x74,
- 0x79, 0xfd, 0xa4, 0xb4, 0x9b, 0xab, 0xe5, 0x18, 0x57, 0x10, 0x26, 0x86, 0xe5, 0x7f, 0x2b, 0xb9,
- 0xb2, 0x56, 0xeb, 0x0d, 0xf3, 0x1a, 0xc3, 0x95, 0x7a, 0xe6, 0xbb, 0x88, 0xc3, 0x06, 0x26, 0x90,
- 0x28, 0x02, 0x3c, 0x37, 0x73, 0x6e, 0xed, 0xef, 0x91, 0x0b, 0x5d, 0x13, 0xed, 0x63, 0x36, 0x5c,
- 0xea, 0x86, 0x9f, 0x07, 0x65, 0x0e, 0x52, 0xd4, 0x60, 0x98, 0xc6, 0x7f, 0x52, 0xdf, 0x44, 0x85,
- 0xec, 0xd9, 0x9a, 0x2c, 0x41, 0x58, 0x34, 0xed, 0xb2, 0xb6, 0x05, 0x53, 0x34, 0x46, 0xa1, 0x88,
- 0x2a, 0x37, 0x3f, 0x2e, 0x6f, 0x5c, 0xcf, 0xf8, 0xdf, 0x11, 0x1c, 0xb6, 0xcf, 0x14, 0xd4, 0xe6,
- 0xc4, 0xdb, 0xa6, 0x1b, 0x32, 0x36, 0xd9, 0x02, 0x23, 0xbd, 0x58, 0x40, 0xd9, 0x25, 0x97, 0xd4,
- 0xa7, 0xac, 0x15, 0x1a, 0x25, 0x34, 0x45, 0xe9, 0xf4, 0x0f, 0xb5, 0xd3, 0x45, 0x0c, 0x4c, 0xe3,
- 0x17, 0xcf, 0xfd, 0x0e, 0xca, 0x1c, 0xa4, 0x6b, 0xc0, 0xf3, 0x4f, 0xfe, 0xa4, 0x7d, 0x88, 0xc9,
- 0x5f, 0x74, 0x91, 0xcc, 0xbc, 0x5b, 0xe6, 0x92, 0xef, 0x5d, 0x7f, 0x68, 0xe6, 0x9a, 0xf6, 0x45,
- 0x62, 0x8c, 0x53, 0xec, 0x19, 0x1b, 0x8d, 0x01, 0xf0, 0xbf, 0x2c, 0x20, 0x8d, 0xf3, 0xaa, 0x6a,
- 0x5d, 0x41, 0x92, 0xd5, 0xa0, 0x69, 0xc4, 0x85, 0xa1, 0x47, 0x3e, 0xcd, 0xc4, 0xed, 0x14, 0xff,
- 0x06, 0x5f, 0x05, 0x2b, 0x24, 0x56, 0x66, 0x39, 0xd2, 0x2e, 0xc3, 0x2c, 0x66, 0x99, 0xe5, 0x0d,
- 0x3a, 0x5c, 0x27, 0xe6, 0x8f, 0x0f, 0x1c, 0x40, 0xea, 0xc1, 0x51, 0xd7, 0x1c, 0x2a, 0xc8, 0x7f,
- 0x39, 0x92, 0xc4, 0x12, 0x9d, 0x24, 0x2f, 0xbd, 0x83, 0xd6, 0xd1, 0xc1, 0x2f, 0x87, 0x5b, 0x98,
- 0xa1, 0xf3, 0x10, 0x31, 0x01, 0x62, 0x23, 0xd0, 0x26, 0x21, 0x76, 0xff, 0x23, 0x95, 0xa9, 0xee,
- 0x07, 0xa4, 0xe5, 0xc6, 0x2a, 0x4f, 0x77, 0xd3, 0xf5, 0x23, 0x02, 0x9f, 0x77, 0x43, 0x94, 0x50,
- 0x6d, 0xfc, 0xba, 0x4e, 0x43, 0x9c, 0x72, 0x8e, 0xfe, 0xf4, 0xe9, 0x6e, 0x72, 0xaf, 0x30, 0x97,
- 0x21, 0x2d, 0xd0, 0xbe, 0x0d, 0xbf, 0x74, 0x59, 0x4d, 0x6e, 0x5b, 0x71, 0x74, 0xa6, 0x49, 0xac,
- 0xba, 0x82, 0xe7, 0x69, 0x83, 0xd2, 0x4b, 0xc9, 0x81, 0x8e, 0x7c, 0x59, 0x4b, 0x19, 0x28, 0x3d,
- 0x69, 0x96, 0xbc, 0x7c, 0x7b, 0xf8, 0x36, 0xa0, 0x62, 0xc0, 0x6b, 0xe7, 0x36, 0x41, 0x37, 0x20,
- 0x37, 0x19, 0xcd, 0x5d, 0xc9, 0xba, 0xc1, 0xd8, 0xaa, 0x90, 0xd5, 0x3c, 0xc1, 0x01, 0xb0, 0x38,
- 0x3e, 0x36, 0x21, 0xd4, 0xb7, 0x6b, 0x58, 0x6e, 0x76, 0xf5, 0xd3, 0x5e, 0x58, 0xc4, 0xcf, 0xc8,
- 0x25, 0x47, 0xd6, 0x8c, 0x35, 0xdb, 0x30, 0x77, 0xd1, 0x5a, 0xd9, 0xf8, 0x30, 0x48, 0x4e, 0x1b,
- 0xc1, 0x4a, 0x40, 0xc4, 0x04, 0x4b, 0x8c, 0xc6, 0x98, 0x84, 0x1b, 0x7a, 0x8c, 0x11, 0xe1, 0x3e,
- 0xf7, 0xa8, 0x6d, 0x74, 0xc3, 0xe8, 0x5c, 0xf4, 0x15, 0x19, 0x0f, 0xf5, 0x5c, 0xca, 0x20, 0x5b,
- 0xd4, 0xb0, 0xbe, 0xd3, 0xd2, 0x65, 0x0a, 0xba, 0x16, 0x6d, 0x15, 0x21, 0x0a, 0x1b, 0x8b, 0x4d,
- 0x70, 0xd2, 0x48, 0x3d, 0xe5, 0x7a, 0x7c, 0xae, 0x8b, 0x75, 0x20, 0xe4, 0x7c, 0xba, 0x54, 0x49,
- 0xf9, 0x23, 0x64, 0x3b, 0x97, 0x76, 0xb2, 0x91, 0x3c, 0x5f, 0x0b, 0x08, 0xb2, 0x4c, 0xcb, 0xfb,
- 0x9b, 0xaf, 0x37, 0xd7, 0x8e, 0x6d, 0x3f, 0x90, 0xcc, 0xe0, 0x27, 0x28, 0x3f, 0xbf, 0x61, 0x91,
- 0x30, 0xbd, 0x28, 0x9b, 0xe3, 0xf5, 0xb6, 0x0b, 0x5f, 0xb3, 0xd7, 0xa3, 0xb6, 0x42, 0x24, 0x68,
- 0xf8, 0xd8, 0x84, 0xd6, 0x99, 0x6f, 0xa3, 0x7b, 0x1b, 0x52, 0xca, 0xbb, 0xa3, 0x96, 0xba, 0xa6,
- 0x4a, 0x8e, 0x6f, 0xdb, 0x6a, 0x75, 0x60, 0xee, 0x61, 0xb4, 0x71, 0x33, 0x60, 0x90, 0x9c, 0x36,
- 0x2d, 0x93, 0xda, 0xe8, 0x45, 0x13, 0xb8, 0x2b, 0x2a, 0x32, 0x1e, 0x29, 0xb8, 0x57, 0x40, 0xb6,
- 0xbf, 0x13, 0x01, 0xb6, 0xb5, 0xaf, 0x1e, 0x0d, 0x3a, 0xb7, 0x3f, 0x63, 0x1e, 0x2d, 0x5e, 0xd7,
- 0x40, 0x6f, 0x60, 0xa6, 0x06, 0x8f, 0xca, 0xa5, 0xd4, 0xc6, 0xf7, 0x47, 0xca, 0xf8, 0x70, 0x21,
- 0x49, 0x40, 0x8c, 0x2f, 0x78, 0x5e, 0x53, 0x13, 0x08, 0xa3, 0xf1, 0x25, 0x53, 0x3d, 0x0f, 0xd1,
- 0x5e, 0x8f, 0x71, 0x21, 0xb2, 0x42, 0xf7, 0x78, 0xc8, 0x50, 0xbe, 0xdb, 0xf7, 0x40, 0x87, 0x18,
- 0x46, 0x30, 0x65, 0x8d, 0x22, 0xd9, 0xac, 0x9c, 0x06, 0xe8, 0x34, 0x6b, 0xac, 0x61, 0x95, 0x2c,
- 0xae, 0x83, 0xf9, 0x93, 0x5b, 0xe5, 0xdc, 0x5f, 0x28, 0x6a, 0xb3, 0xb1, 0xdc, 0xc9, 0x33, 0x13,
- 0x65, 0x28, 0xb6, 0x2a, 0x33, 0x54, 0xfa, 0xd2, 0x05, 0x9c, 0x2e, 0xbf, 0xfa, 0xb0, 0x3e, 0x3a,
- 0x24, 0xbc, 0x36, 0x61, 0x3b, 0xc2, 0x21, 0x9d, 0xf6, 0x57, 0x18, 0x4b, 0x21, 0x92, 0x3f, 0x46,
- 0x5c, 0xba, 0x72, 0x38, 0xae, 0x70, 0xd5, 0x6f, 0x86, 0x4a, 0xff, 0x7e, 0xd5, 0x37, 0x65, 0xa2,
- 0x72, 0xe7, 0x4b, 0x24, 0xf9, 0x48, 0x5e, 0xb9, 0xc5, 0x6f, 0x61, 0x41, 0x5e, 0xcd, 0xb6, 0xf3,
- 0x97, 0x11, 0x3d, 0x81, 0xc6, 0xc1, 0xf3, 0xe2, 0xab, 0xbc, 0x62, 0x70, 0xf3, 0x4e, 0x68, 0x8b,
- 0xaf, 0x78, 0x19, 0x7e, 0x55, 0xfc, 0xcd, 0xb5, 0x0f, 0x67, 0x72, 0x02, 0xcd, 0x13, 0x42, 0x4e,
- 0x0d, 0x45, 0xea, 0xbb, 0x46, 0xb5, 0xdd, 0x98, 0x40, 0x51, 0x84, 0xeb, 0xdd, 0x2b, 0x78, 0x47,
- 0xb9, 0x4c, 0x04, 0x9d, 0x91, 0xf9, 0x78, 0x34, 0xe8, 0x99, 0xfc, 0x4f, 0x78, 0xb4, 0xbb, 0xda,
- 0x45, 0xfe, 0x86, 0x79, 0x30, 0xf2, 0x9f, 0x61, 0x6f, 0xff, 0xb4, 0x7d, 0x9f, 0xcc, 0x06, 0xcb,
- 0x76, 0x8d, 0x4d, 0x16, 0xc1, 0x2c, 0x1a, 0x97, 0x59, 0x5b, 0xe3, 0xc8, 0x1a, 0x23, 0xb1, 0x44,
- 0x43, 0xa1, 0x83, 0x52, 0x14, 0xa4, 0xf9, 0x58, 0xbd, 0xd1, 0x77, 0x51, 0xf9, 0x55, 0xe3, 0xc6,
- 0x51, 0xff, 0x98, 0x83, 0xe8, 0xc5, 0x08, 0xf7, 0xc6, 0x1b, 0x7b, 0x95, 0x08, 0x1c, 0x1d, 0xe5,
- 0x85, 0x4f, 0x26, 0x50, 0x3a, 0xa0, 0x02, 0x4d, 0xd0, 0x76, 0x6e, 0xb4, 0x02, 0x07, 0x96, 0xa8,
- 0x5a, 0xe5, 0x77, 0x13, 0x8a, 0x26, 0xb3, 0x56, 0x54, 0x64, 0x3c, 0x52, 0xb3, 0xae, 0x80, 0xaf,
- 0x7c, 0x6c, 0x42, 0x6b, 0xad, 0xd6, 0xb0, 0xdc, 0xec, 0x29, 0x65, 0xbc, 0xb0, 0x4b, 0x5d, 0x53,
- 0xd0, 0xda, 0xb8, 0xe1, 0xea, 0x01, 0x4e, 0x94, 0x8a, 0x59, 0x97, 0xa8, 0x4e, 0xf5, 0x8c, 0xfa,
- 0x08, 0xd4, 0x0c, 0x64, 0x70, 0xc8, 0x88, 0x5c, 0xfb, 0x68, 0xc7, 0xd1, 0x88, 0x1f, 0x0e, 0xad,
- 0x05, 0x91, 0xe6, 0xdf, 0x36, 0x7d, 0x55, 0xc4, 0xbb, 0x39, 0x43, 0x3a, 0x55, 0x34, 0x76, 0xea,
- 0xb8, 0xb7, 0xe4, 0x70, 0x9f, 0xe0, 0x69, 0xde, 0xcf, 0x94, 0x3d, 0xfc, 0x69, 0x6e, 0xca, 0x87,
- 0x0f, 0x70, 0xe9, 0xa2, 0x5a, 0x87, 0xff, 0x8f, 0x0e, 0x4b, 0xc5, 0x4e, 0xff, 0x5c, 0x9a, 0xfd,
- 0x7a, 0x33, 0x47, 0x40, 0x89, 0x80, 0xd6, 0xe5, 0x3e, 0x07, 0xa6, 0x90, 0xd6, 0xd2, 0xb8, 0x5e,
- 0xff, 0x7c, 0x61, 0x10, 0xb3, 0x20, 0xd4, 0xa8, 0xee, 0x71, 0xc8, 0x24, 0xd4, 0xd5, 0x2e, 0xf6,
- 0xda, 0x3b, 0xb7, 0x9c, 0x86, 0xfb, 0xe4, 0xdf, 0x3f, 0x2b, 0x11, 0xdc, 0xe4, 0x9d, 0x60, 0xed,
- 0xdb, 0xc0, 0x57, 0x71, 0x88, 0xe2, 0xf5, 0x35, 0x18, 0x26, 0xd0, 0x6f, 0xf5, 0x47, 0x11, 0xb0,
- 0xf2, 0x39, 0x8b, 0xab, 0xf5, 0x95, 0x09, 0x30, 0xae, 0x20, 0x4c, 0xcf, 0x09, 0xfe, 0x56, 0xb1,
- 0x99, 0x9a, 0x34, 0xce, 0x92, 0x5f, 0x1d, 0x87, 0x82, 0xfa, 0x66, 0x8d, 0x1d, 0xc8, 0x83, 0x2b,
- 0xa9, 0x27, 0x1c, 0x55, 0x71, 0xaa, 0xab, 0x8c, 0xdd, 0x49, 0xb1, 0x2e, 0xab, 0x8a, 0xa7, 0x43,
- 0x54, 0x6e, 0x7e, 0x5c, 0xde, 0xb8, 0x5d, 0x33, 0x7d, 0x22, 0x38, 0xaf, 0x5d, 0x28, 0x6b, 0x0f,
- 0x95, 0x24, 0x3e, 0x98, 0xda, 0xf3, 0xd1, 0xf5, 0xe5, 0xa6, 0x23, 0xd5, 0xd1, 0x39, 0x8a, 0x31,
- 0x68, 0x6d, 0x5c, 0x91, 0x75, 0xe1, 0x27, 0x4a, 0x45, 0xcd, 0xaa, 0x54, 0x27, 0x9b, 0x46, 0x7d,
- 0x1c, 0xd5, 0x12, 0x9e, 0xa8, 0xff, 0x1f, 0xca, 0x52, 0x8c, 0x08, 0x39, 0x1f, 0xcf, 0x15, 0x83,
- 0x6a, 0x58, 0x5f, 0x88, 0x69, 0xd3, 0x05, 0x5d, 0x0b, 0xd7, 0xeb, 0xf1, 0x05, 0xec, 0xa4, 0xc7,
- 0x0e, 0x8b, 0x09, 0x4f, 0x54, 0x9e, 0xee, 0x65, 0x29, 0x46, 0x04, 0xfd, 0xee, 0x86, 0xeb, 0xa0,
- 0x93, 0x7b, 0x3b, 0xb3, 0xfe, 0xa5, 0xb7, 0xcc, 0x37, 0x88, 0xe0, 0xf9, 0xb7, 0xa0, 0x6f, 0x3c,
- 0xa8, 0xdc, 0xfc, 0xb8, 0x7f, 0xb3, 0xba, 0x66, 0xfa, 0x44, 0x70, 0x9d, 0xba, 0x50, 0xd6, 0x1e,
- 0xcf, 0xc1, 0x49, 0x8b, 0x50, 0xd5, 0x62, 0xa3, 0xb1, 0xc2, 0x1f, 0x87, 0x62, 0x97, 0x0a, 0x9e,
- 0xc2, 0x84, 0xa3, 0x30, 0x16, 0x60, 0xbf, 0x3b, 0xf1, 0x93, 0x9b, 0x6c, 0xbf, 0xbc, 0x72, 0xd9,
- 0xcb, 0xab, 0x4f, 0xb9, 0x68, 0xb1, 0x26, 0x8d, 0x2d, 0xf6, 0x9d, 0x0e, 0x26, 0x79, 0x0d, 0x29,
- 0x8e, 0x55, 0xc9, 0xc0, 0x58, 0x43, 0xb9, 0xec, 0x42, 0x09, 0x29, 0x73, 0xb9, 0xb5, 0x0b, 0xe2,
- 0x33, 0x73, 0xcb, 0x6f, 0xf1, 0xde, 0x85, 0xf6, 0x36, 0xa4, 0x57, 0xb5, 0x85, 0xef, 0xb7, 0x8f,
- 0x15, 0xfa, 0xfe, 0x17, 0xd6, 0x2e, 0x86, 0x7c, 0x8e, 0xe9, 0x0e, 0x5b, 0x86, 0x0a, 0x6a, 0x73,
- 0x89, 0xf1, 0x2c, 0x06, 0x72, 0x0c, 0xce, 0x3f, 0xb7, 0x2a, 0x2b, 0xec, 0xce, 0xf6, 0x9f, 0xb2,
- 0xd1, 0x21, 0x58, 0x0c, 0xe4, 0x18, 0x5f, 0x7e, 0xad, 0x54, 0x56, 0x1b, 0x5f, 0x2f, 0xfd, 0xa7,
- 0x1a, 0x8a, 0x17, 0xb5, 0x8c, 0xa9, 0x79, 0xf3, 0x80, 0xa2, 0xcb, 0x15, 0x79, 0x56, 0xf0, 0x8e,
- 0x98, 0x61, 0xd4, 0x23, 0x9c, 0x46, 0x0c, 0x6d, 0xa5, 0xf7, 0xa7, 0x3e, 0x0c, 0x12, 0xf2, 0x76,
- 0xce, 0x3a, 0xa9, 0x66, 0x5e, 0xcc, 0x73, 0x49, 0x96, 0xcf, 0xde, 0x34, 0x73, 0x4d, 0x7b, 0xc3,
- 0x1b, 0x71, 0xf7, 0x58, 0x82, 0xb0, 0x68, 0x19, 0xa7, 0xaf, 0x0a, 0xa6, 0x68, 0x8c, 0x81, 0xd3,
- 0xe3, 0xa9, 0x73, 0x8e, 0x1b, 0xdf, 0xcb, 0x62, 0xbc, 0xfd, 0xc0, 0x1d, 0xcb, 0x1a, 0x3b, 0x75,
- 0x9d, 0xf0, 0x32, 0xfc, 0xaa, 0x3b, 0x59, 0xa9, 0x1e, 0xce, 0xe4, 0x04, 0x59, 0x26, 0x84, 0x9c,
- 0x8c, 0x60, 0xca, 0xd9, 0x44, 0x71, 0x9b, 0xfb, 0x0c, 0x13, 0x68, 0xd6, 0x9b, 0xc2, 0xe9, 0x58,
- 0x6e, 0x32, 0x59, 0xba, 0x51, 0xb7, 0x41, 0x73, 0x97, 0xe3, 0x69, 0x78, 0x41, 0x02, 0xa3, 0x70,
- 0x66, 0xe6, 0x55, 0xde, 0x21, 0x7f, 0xc9, 0x2f, 0x6c, 0x8b, 0xae, 0xa9, 0xc9, 0x1d, 0xad, 0xdd,
- 0x58, 0xd0, 0x74, 0x0a, 0x96, 0x14, 0x91, 0x41, 0x1a, 0x7e, 0x7d, 0xf7, 0x91, 0xd9, 0x62, 0x15,
- 0x9a, 0x54, 0xd7, 0x3a, 0x80, 0x74, 0x2e, 0x7a, 0xeb, 0xed, 0xe6, 0x9b, 0x2e, 0x65, 0x10, 0xcc,
- 0x47, 0xcb, 0x85, 0x60, 0x2c, 0xc0, 0xbd, 0x76, 0x21, 0xe5, 0xf5, 0xd8, 0xbd, 0xbb, 0xe4, 0x71,
- 0x18, 0xbf, 0x14, 0xac, 0x90, 0x9b, 0x5b, 0xe4, 0xce, 0xb8, 0x8a, 0xb0, 0x5b, 0x21, 0x12, 0x34,
- 0xad, 0x4d, 0x1a, 0x67, 0x49, 0xce, 0xef, 0xa2, 0x41, 0x7d, 0x33, 0xa7, 0xef, 0x64, 0xa0, 0xf4,
- 0x1e, 0xe0, 0x11, 0x87, 0xb4, 0xcd, 0x3d, 0xdd, 0x1c, 0x96, 0x49, 0x9c, 0x3d, 0xb8, 0xf7, 0x39,
- 0xdc, 0x64, 0xb2, 0xb7, 0xa2, 0xad, 0x82, 0xe6, 0xed, 0x05, 0xd2, 0xf0, 0x82, 0x04, 0x85, 0xe0,
- 0xa4, 0x62, 0xf6, 0xee, 0x37, 0x1f, 0x76, 0x14, 0x9d, 0x18, 0x35, 0xc5, 0x76, 0xa1, 0xdf, 0x04,
- 0x34, 0xd7, 0x2e, 0xa9, 0xdb, 0x91, 0xf2, 0x25, 0xc3, 0x87, 0x55, 0x2a, 0xf2, 0xac, 0x23, 0xdf,
- 0xfd, 0x49, 0x62, 0x09, 0xaf, 0x12, 0xf6, 0xbf, 0xa0, 0x6b, 0x89, 0x81, 0xf6, 0xa2, 0xcc, 0x4c,
- 0x9f, 0xc5, 0x31, 0xe5, 0xb6, 0x09, 0x7b, 0xbe, 0x50, 0xd4, 0xa5, 0xa1, 0x7b, 0x51, 0x66, 0x26,
- 0x8f, 0xae, 0x29, 0x2d, 0x56, 0x5a, 0xa8, 0x06, 0x65, 0x04, 0xe8, 0xc0, 0xa8, 0x6f, 0x7a, 0xbf,
- 0xed, 0x22, 0x7a, 0xc1, 0x4f, 0x41, 0x25, 0x07, 0x95, 0xbb, 0xc4, 0xe0, 0x25, 0x9c, 0xd0, 0xd5,
- 0xf1, 0xf7, 0x68, 0x5f, 0xe7, 0xbe, 0x3a, 0xcd, 0xc7, 0x37, 0xcc, 0xd9, 0x3a, 0x53, 0xc5, 0x56,
- 0xe5, 0xf6, 0x76, 0xa5, 0x3f, 0x89, 0xad, 0x5b, 0x6e, 0xd3, 0x03, 0x31, 0xad, 0x83, 0xde, 0x78,
- 0x1f, 0x1b, 0xf1, 0x6a, 0xba, 0xd4, 0x2c, 0x37, 0x3b, 0x9b, 0x88, 0x2f, 0x2c, 0x62, 0x86, 0x64,
- 0x82, 0xeb, 0xc3, 0x96, 0x10, 0xef, 0x75, 0x9e, 0x25, 0x55, 0x6c, 0x2b, 0x75, 0x44, 0x02, 0xf8,
- 0xf0, 0x0c, 0x88, 0xb2, 0xe9, 0xa7, 0x2b, 0x27, 0xe0, 0x3a, 0x0d, 0x6a, 0x2b, 0x89, 0xb4, 0x0b,
- 0xe6, 0x38, 0x95, 0x51, 0x2d, 0xa2, 0x9e, 0xa6, 0x07, 0xc4, 0x83, 0x27, 0x9e, 0x2e, 0x4d, 0x9f,
- 0xc3, 0x7f, 0x43, 0xdd, 0x18, 0x79, 0xae, 0xd1, 0xd6, 0x9e, 0x5a, 0xdf, 0xae, 0x66, 0x03, 0x84,
- 0xef, 0x17, 0x79, 0xd8, 0x53, 0x73, 0x07, 0x10, 0xdb, 0xa1, 0x85, 0x45, 0x07, 0xeb, 0x32, 0x6f,
- 0x1d, 0x2e, 0xf2, 0x73, 0xa6, 0xe6, 0x0e, 0x20, 0x75, 0x81, 0xc9, 0x8a, 0x0e, 0x15, 0x64, 0xde,
- 0xc0, 0xb1, 0xa0, 0x29, 0x0a, 0x52, 0x9d, 0x2c, 0xbf, 0x89, 0xda, 0xc9, 0x9d, 0xcb, 0x90, 0x63,
- 0xf6, 0x53, 0x8d, 0x99, 0xcd, 0xf1, 0x4d, 0x1e, 0x32, 0x14, 0xce, 0x46, 0x4d, 0x10, 0x51, 0x06,
- 0x4b, 0x75, 0x8f, 0x36, 0x64, 0x6c, 0x71, 0x04, 0x46, 0xb9, 0xb0, 0x80, 0x71, 0x4a, 0xed, 0x6b,
- 0xee, 0xec, 0x99, 0x35, 0x5d, 0x6a, 0x16, 0xfa, 0xfc, 0xac, 0x44, 0xf6, 0x16, 0x31, 0x43, 0x32,
- 0xe9, 0x48, 0x7c, 0xf3, 0x77, 0x25, 0x61, 0x29, 0x09, 0x8f, 0x46, 0x69, 0x61, 0x72, 0xd7, 0x62,
- 0xe2, 0x52, 0x93, 0x63, 0x15, 0xc6, 0xda, 0x88, 0x9b, 0xf0, 0x01, 0xae, 0xda, 0xc0, 0x4a, 0x28,
- 0x16, 0x34, 0x1d, 0xe3, 0xc4, 0x05, 0xb5, 0x81, 0xe7, 0xfe, 0x8e, 0x4d, 0xb5, 0xa7, 0xf9, 0x94,
- 0x53, 0xca, 0x9b, 0x9a, 0xf4, 0xf7, 0x2a, 0xe0, 0x88, 0x01, 0x3a, 0x30, 0x2a, 0x6b, 0xff, 0x5f,
- 0xdd, 0x9f, 0x52, 0x5a, 0xac, 0xb4, 0x93, 0x0c, 0xca, 0x08, 0x13, 0x43, 0x93, 0xde, 0xf4, 0xbd,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0xfb, 0xe0, 0xed, 0x0e, 0x19, 0x11, 0xea, 0x27, 0x0d, 0xc1, 0xb3, 0x11, 0xda, 0x71, 0x5d,
- 0x8b, 0xc4, 0x2f, 0x1f, 0x6e, 0x3e, 0xec, 0x28, 0xf9, 0x30, 0x6a, 0x49, 0xec, 0x81, 0x7d, 0x08,
- 0xf3, 0xc2, 0x6b, 0x46, 0xfb, 0x8c, 0x18, 0xda, 0x89, 0x2d, 0x8d, 0x7c, 0x18, 0x24, 0x27, 0xec,
- 0xde, 0x51, 0xb1, 0xae, 0xbe, 0x9f, 0xa0, 0xf1, 0xa3, 0x1f, 0x93, 0x55, 0xa0, 0x73, 0x67, 0x5a,
- 0x57, 0xa0, 0x9d, 0xa8, 0xcc, 0x93, 0x6e, 0xce, 0x14, 0x35, 0xb8, 0xb9, 0x6e, 0x85, 0xf8, 0xe8,
- 0x9e, 0x3e, 0xd1, 0x08, 0xb8, 0x10, 0x6a, 0x54, 0x77, 0xd9, 0x64, 0x12, 0x6a, 0x8b, 0x17, 0x7b,
- 0x38, 0x69, 0x24, 0xff, 0x93, 0x3d, 0x3e, 0x57, 0xa4, 0xdb, 0x10, 0x72, 0x3e, 0x5d, 0x2a, 0xc5,
- 0xbe, 0xe8, 0xe1, 0x5b, 0xbb, 0xb6, 0x0f, 0xe7, 0x1d, 0xba, 0xfe, 0xd0, 0x0f, 0xf7, 0x2f, 0x8a,
- 0x8a, 0x3f, 0xcf, 0xf2, 0x60, 0x27, 0xfd, 0xc2, 0xde, 0x3d, 0xab, 0xfa, 0xfd, 0x5b, 0x0c, 0x55,
- 0x4f, 0x1f, 0x89, 0x04, 0x5c, 0x08, 0x35, 0x2a, 0xda, 0x8d, 0x32, 0x09, 0x35, 0xa4, 0xea, 0xdc,
- 0xa2, 0x3d, 0xf3, 0xc5, 0x13, 0x49, 0x10, 0x2d, 0x4f, 0x36, 0xf6, 0xe9, 0x10, 0x38, 0x3a, 0x09,
- 0x61, 0x42, 0xb0, 0x18, 0x0b, 0x30, 0xbe, 0xfc, 0x99, 0xa8, 0xac, 0x36, 0xbe, 0x5e, 0x39, 0x8d,
- 0x9c, 0x0b, 0xd2, 0x11, 0xa4, 0x22, 0x48, 0x43, 0x39, 0xc3, 0x25, 0xb7, 0x48, 0xfc, 0xf5, 0xc1,
- 0x26, 0x89, 0x35, 0x78, 0x27, 0xf0, 0x03, 0x8a, 0xb8, 0x4d, 0x59, 0xee, 0x03, 0xe5, 0xdd, 0xfc,
- 0x60, 0xb9, 0x50, 0xf5, 0x05, 0x29, 0xaf, 0x16, 0xbe, 0xa5, 0x6d, 0x85, 0xaf, 0x84, 0x48, 0xd0,
- 0x78, 0x06, 0x44, 0x59, 0x95, 0xb2, 0xf4, 0xf2, 0x70, 0x1d, 0xe7, 0x35, 0xf4, 0xa5, 0x5a, 0xe4,
- 0xd9, 0xf5, 0x54, 0x68, 0x94, 0xd0, 0xd7, 0x22, 0x56, 0x3c, 0x91, 0xca, 0xd7, 0x30, 0xf3, 0x0a,
- 0x3c, 0x03, 0x22, 0xcd, 0xab, 0x59, 0x7a, 0x79, 0x38, 0xef, 0x92, 0xfb, 0x7a, 0xb3, 0x2d, 0x72,
- 0xfb, 0x16, 0x67, 0x22, 0x8b, 0x44, 0x90, 0x86, 0x72, 0x45, 0x4a, 0xad, 0x90, 0x3b, 0x29, 0x41,
- 0xc7, 0x15, 0x45, 0xef, 0x20, 0x1d, 0xea, 0xff, 0x4a, 0xaa, 0xd8, 0x56, 0xea, 0x88, 0x04, 0x33,
- 0xfe, 0x87, 0x81, 0xfd, 0xbd, 0x39, 0xc5, 0x42, 0xc9, 0x7c, 0x09, 0x97, 0xc5, 0x0f, 0x5f, 0xab,
- 0x36, 0xe2, 0x2d, 0xb0, 0xc7, 0xa3, 0xd0, 0x32, 0x8d, 0x9d, 0x14, 0x8f, 0xd0, 0xdb, 0xc1, 0x65,
- 0xa0, 0x08, 0xf0, 0xdc, 0x0f, 0x7b, 0x32, 0x3a, 0x01, 0x2c, 0xb7, 0x4c, 0x32, 0x4f, 0xd8, 0xb3,
- 0x50, 0x04, 0x78, 0x6e, 0xe6, 0xdc, 0x19, 0x1d, 0xe1, 0x16, 0xba, 0x26, 0x19, 0xc6, 0x6c, 0xb8,
- 0xf5, 0x9d, 0x6e, 0x6d, 0xdf, 0xda, 0x7e, 0xe3, 0x5b, 0x03, 0x4e, 0x50, 0x7e, 0xbd, 0xc2, 0xe1,
- 0xaa, 0xe9, 0xff, 0xa1, 0x63, 0x81, 0x98, 0x71, 0xb4, 0x5e, 0x31, 0x38, 0x98, 0x27, 0x34, 0xa4,
- 0xd3, 0x14, 0x5b, 0x15, 0xf8, 0x2a, 0x7d, 0x69, 0xe3, 0x4e, 0x17, 0xbe, 0x7d, 0x58, 0x1f, 0x1d,
- 0x41, 0x94, 0x80, 0x4b, 0x08, 0x96, 0xdb, 0x4f, 0xf3, 0xcb, 0x36, 0xf4, 0xdb, 0x22, 0x01, 0x7c,
- 0x7f, 0xa2, 0xa1, 0x9f, 0xbf, 0xfd, 0x83, 0x21, 0x85, 0x3e, 0xe5, 0xaa, 0x83, 0xe6, 0xce, 0xb4,
- 0xa5, 0x99, 0x16, 0x03, 0x39, 0x06, 0x67, 0xfe, 0xba, 0x15, 0xf4, 0x76, 0x67, 0x7b, 0xae, 0x59,
- 0xb0, 0x63, 0xe8, 0x14, 0xef, 0x28, 0xe1, 0x82, 0x34, 0xfc, 0xfa, 0x2d, 0xe1, 0x71, 0xc4, 0x2a,
- 0x48, 0xbb, 0x6c, 0xc2, 0x76, 0x47, 0x42, 0xf9, 0x2f, 0xae, 0x30, 0x96, 0x42, 0xe7, 0x7e, 0x8c,
- 0x20, 0xd6, 0x30, 0x53, 0x03, 0xa6, 0x65, 0xb3, 0x6a, 0x63, 0x9a, 0xc2, 0x65, 0x7c, 0x38, 0xf1,
- 0xf4, 0x66, 0x8e, 0x80, 0xd1, 0xc3, 0x6f, 0x09, 0x7c, 0x0e, 0x8f, 0xe3, 0x6f, 0x67, 0xb3, 0xbc,
- 0x0b, 0x1a, 0xef, 0x90, 0x62, 0xe3, 0xbb, 0xa1, 0x92, 0x7f, 0x47, 0xc7, 0xbb, 0xb2, 0x9d, 0x4a,
- 0xd8, 0x0e, 0xb4, 0x85, 0x9a, 0xc9, 0xc6, 0xc8, 0x71, 0x31, 0x50, 0x79, 0xc6, 0xea, 0x82, 0x57,
- 0xb7, 0xc7, 0x0d, 0xd2, 0xc5, 0x67, 0x96, 0x51, 0xc1, 0xdf, 0xf8, 0xb2, 0x96, 0x32, 0x50, 0x7a,
- 0xb1, 0x98, 0x08, 0xf9, 0xe1, 0x31, 0xf0, 0x68, 0x13, 0xf1, 0x3b, 0x9e, 0xf0, 0xab, 0xb5, 0x77,
- 0xd5, 0x4b, 0x5e, 0x3e, 0xdc, 0x7c, 0x1b, 0x50, 0x31, 0x60, 0xd4, 0x92, 0x1b, 0xc1, 0xfa, 0x10,
- 0x22, 0xe3, 0x33, 0x4a, 0x1f, 0x94, 0x47, 0xa4, 0x24, 0x79, 0xdb, 0x67, 0x47, 0x0b, 0xda, 0x4b,
- 0x4c, 0xd1, 0x6a, 0xf0, 0x4e, 0x23, 0x06, 0xd7, 0xb3, 0x9a, 0xb2, 0x1f, 0x06, 0x09, 0x79, 0x3b,
- 0x3f, 0xcd, 0xc1, 0x39, 0xb9, 0x72, 0x49, 0x84, 0x51, 0xf8, 0x12, 0xed, 0x49, 0x1e, 0xbe, 0x95,
- 0x75, 0x43, 0xae, 0xe2, 0xd3, 0x07, 0x29, 0x6a, 0x30, 0x4c, 0x63, 0xde, 0x29, 0x8e, 0x22, 0xa3,
- 0x19, 0x44, 0xf4, 0x41, 0x9e, 0x82, 0x4a, 0x0e, 0xe9, 0xb5, 0x4b, 0x03, 0x4a, 0xfb, 0x63, 0x69,
- 0x74, 0xb8, 0x4e, 0x0f, 0xdd, 0x1e, 0x38, 0x80, 0x17, 0x41, 0xa2, 0x6d, 0x38, 0x54, 0x53, 0xfe,
- 0x13, 0xa5, 0xfb, 0x3c, 0xf2, 0x78, 0xe0, 0x45, 0x5c, 0xc7, 0xcd, 0x77, 0xe0, 0x93, 0x8f, 0x7e,
- 0xd7, 0x7e, 0x5d, 0x27, 0xc0, 0x4e, 0x39, 0x47, 0x7f, 0x7a, 0x95, 0x37, 0x39, 0xb6, 0x18, 0xaa,
- 0x84, 0xb4, 0xc6, 0xbd, 0x34, 0xb9, 0x13, 0xa7, 0xf7, 0x7b, 0xaf, 0x07, 0x13, 0xdd, 0xe7, 0xf5,
- 0x7b, 0xc8, 0xa7, 0xad, 0x87, 0x99, 0xc7, 0x0f, 0x19, 0x0a, 0x67, 0x23, 0xc7, 0x08, 0xc9, 0x03,
- 0x42, 0x5a, 0x63, 0xbf, 0x1a, 0xbd, 0xe8, 0xb2, 0x9a, 0xdc, 0xb6, 0xe2, 0xe8, 0x8f, 0x92, 0x9b,
- 0x11, 0x90, 0xf8, 0x25, 0xee, 0x4a, 0xc2, 0x52, 0x12, 0xdd, 0x8c, 0xd2, 0xc2, 0xe4, 0x6d, 0xc4,
- 0xe0, 0x67, 0x90, 0x7a, 0x09, 0xf4, 0xf8, 0x9f, 0xd5, 0xea, 0x40, 0x0b, 0xf8, 0xb7, 0xa8, 0x92,
- 0x71, 0x29, 0xa8, 0xd0, 0xeb, 0x63, 0x6d, 0x44, 0xac, 0x78, 0xe1, 0x57, 0x6d, 0x60, 0x25, 0x14,
- 0x31, 0x46, 0xc8, 0x76, 0xed, 0xec, 0xa7, 0xe1, 0x78, 0xbe, 0x16, 0x10, 0xa7, 0x98, 0x55, 0x35,
- 0x67, 0x1d, 0xb5, 0x33, 0x2f, 0x66, 0xd8, 0xc5, 0x4b, 0x86, 0x6f, 0x1a, 0xd8, 0xc7, 0xdc, 0x80,
- 0xc8, 0x65, 0xac, 0x4d, 0x7a, 0x9a, 0x15, 0x70, 0x44, 0xe1, 0x1d, 0x18, 0x15, 0xd4, 0x9e, 0xce,
- 0x4d, 0x2a, 0x8a, 0x1d, 0x40, 0x3a, 0x17, 0x3d, 0x94, 0x97, 0x73, 0xac, 0x17, 0xd3, 0x08, 0x66,
- 0xfc, 0xb2, 0x82, 0xe4, 0xa1, 0x0b, 0xe7, 0x55, 0x87, 0x66, 0x48, 0x32, 0xe7, 0x78, 0xbd, 0x11,
- 0xb3, 0xad, 0x0b, 0xe0, 0xfd, 0x03, 0xd2, 0x7f, 0x5d, 0xeb, 0x7a, 0x3b, 0xd2, 0xdc, 0x57, 0xcd,
- 0x44, 0x05, 0x66, 0x94, 0x3e, 0xeb, 0x8e, 0x8b, 0x48, 0xf2, 0x75, 0xce, 0x8e, 0x16, 0x77, 0x96,
- 0xc5, 0x20, 0x46, 0xf6, 0x3c, 0x2f, 0xc8, 0xe8, 0x04, 0xb0, 0x99, 0xf3, 0xc8, 0xff, 0xe6, 0x89,
- 0x14, 0x01, 0x1e, 0xfa, 0xd8, 0x37, 0x97, 0x96, 0xa9, 0xe4, 0xcf, 0xe8, 0x97, 0xd0, 0x1b, 0x2e,
- 0x2b, 0xcc, 0xdf, 0xc3, 0x61, 0x45, 0xde, 0x12, 0xf8, 0x1c, 0xdd, 0x05, 0xde, 0xce, 0xa5, 0xbb,
- 0x12, 0x5e, 0x1b, 0xd1, 0xfc, 0x61, 0xf1, 0xaf, 0x7b, 0xca, 0x0c, 0xc4, 0xf1, 0x49, 0xfe, 0x23,
- 0xb6, 0x3c, 0xed, 0x3f, 0xcb, 0x7e, 0x87, 0xbb, 0xe6, 0xd2, 0x39, 0x01, 0x87, 0xe8, 0x21, 0x27,
- 0xbc, 0xdd, 0xe2, 0x42, 0xa7, 0x84, 0x2d, 0xf0, 0x53, 0xa0, 0xbf, 0x75, 0x2d, 0x80, 0xcd, 0x30,
- 0x8d, 0x9b, 0x2a, 0x34, 0x4a, 0x68, 0x8a, 0x11, 0x2b, 0x1e, 0xa9, 0x65, 0x8a, 0x18, 0x98, 0x05,
- 0x90, 0xb5, 0xd8, 0x47, 0xec, 0x8e, 0x84, 0x31, 0x5e, 0x9f, 0x60, 0xef, 0x84, 0x0d, 0xfc, 0xdb,
- 0x77, 0x76, 0xad, 0xfb, 0xcf, 0x35, 0x0b, 0x7d, 0x7e, 0x56, 0x22, 0x7b, 0x0b, 0xf9, 0xc0, 0x19,
- 0x94, 0xdf, 0xde, 0x75, 0xd4, 0xea, 0xc0, 0x1f, 0xc2, 0xab, 0xe2, 0x66, 0xc0, 0xe3, 0xfb, 0x6c,
- 0xe7, 0xc3, 0x75, 0xbc, 0x23, 0xbb, 0x8f, 0x4c, 0x20, 0xc9, 0x42, 0x94, 0x8f, 0xf4, 0x3c, 0xc2,
- 0x5b, 0x1e, 0x97, 0xfe, 0x84, 0x3f, 0xa2, 0xbc, 0x73, 0x69, 0xfd, 0xe1, 0xa2, 0x74, 0xf1, 0xf2,
- 0x64, 0xd3, 0x56, 0xc7, 0x3d, 0x4d, 0xeb, 0x38, 0x22, 0x91, 0xef, 0x0c, 0xeb, 0x6a, 0x4f, 0x67,
- 0x0a, 0xe1, 0x0f, 0x7d, 0x6c, 0xfa, 0xaa, 0x4b, 0xb5, 0x72, 0x86, 0x74, 0xaa, 0x68, 0xec, 0x17,
- 0xab, 0x12, 0x1f, 0x4c, 0x6d, 0x98, 0x89, 0x9b, 0x93, 0x53, 0xf0, 0x8b, 0x89, 0xfd, 0x45, 0xf9,
- 0x03, 0xce, 0xe3, 0xf4, 0x12, 0x2b, 0x33, 0xfd, 0x69, 0x17, 0x80, 0x16, 0x33, 0xad, 0x93, 0xe7,
- 0x80, 0xde, 0xc0, 0x8f, 0x0c, 0xdd, 0x57, 0x89, 0x6b, 0x4f, 0x2d, 0x8e, 0x57, 0x33, 0xe0, 0x42,
- 0x83, 0x10, 0x23, 0x7b, 0x1e, 0xf6, 0x64, 0x74, 0x02, 0x58, 0xad, 0x98, 0x64, 0x9e, 0x73, 0xa5,
- 0xa6, 0x57, 0xf5, 0xf7, 0x2b, 0x2d, 0x54, 0x03, 0xd3, 0x02, 0x74, 0x60, 0x54, 0xd6, 0x3d, 0xbe,
- 0x09, 0x2f, 0xec, 0x89, 0x7e, 0xd1, 0x99, 0xb6, 0xdc, 0x65, 0x06, 0x62, 0x99, 0xc5, 0x7f, 0xf0,
- 0xac, 0xb6, 0xfa, 0x8a, 0x47, 0xd7, 0xfe, 0x48, 0x66, 0x70, 0xf2, 0x14, 0xfe, 0xbe, 0xd1, 0xa9,
- 0x2c, 0x68, 0x3a, 0x05, 0x4b, 0x0a, 0xa9, 0xc1, 0x0d, 0x3f, 0xdf, 0x9a, 0xa9, 0x8d, 0x31, 0xeb,
- 0x7e, 0x59, 0x41, 0x72, 0xb1, 0xe4, 0x92, 0xcb, 0xa2, 0x33, 0x24, 0x19, 0x92, 0x3c, 0xbf, 0xe9,
- 0x2f, 0xa6, 0xd9, 0xf1, 0x59, 0x21, 0x9a, 0x3c, 0x64, 0x28, 0x5f, 0x8c, 0x9a, 0x20, 0xa2, 0x0c,
- 0xb5, 0xf2, 0x0e, 0xcb, 0xd9, 0x55, 0xb4, 0x46, 0x8f, 0xc5, 0xb9, 0x17, 0xb4, 0x45, 0xb2, 0xc0,
- 0x3b, 0xa7, 0xc7, 0x0b, 0x81, 0x16, 0x0d, 0xaa, 0xcd, 0xcc, 0x90, 0x64, 0x0d, 0xf0, 0xb9, 0x22,
- 0xbd, 0x26, 0x02, 0xaf, 0xa9, 0x9d, 0x3c, 0x1a, 0x74, 0xad, 0x7e, 0xc6, 0x3c, 0x5a, 0xbc, 0x6d,
- 0x04, 0x6a, 0x06, 0x32, 0x38, 0x64, 0x44, 0x2e, 0x9c, 0x34, 0x82, 0x89, 0x44, 0xee, 0x07, 0xb7,
- 0xeb, 0x7d, 0x7f, 0xea, 0x6b, 0x17, 0x43, 0x3e, 0x47, 0x95, 0x07, 0xcc, 0x43, 0x05, 0x35, 0xd8,
- 0xbb, 0x79, 0x07, 0x84, 0x8d, 0xcb, 0x5a, 0x23, 0xa6, 0x83, 0xbd, 0xea, 0x5a, 0xc3, 0x59, 0x60,
- },
- { /* 13 */
- 0x79, 0x1a, 0x2d, 0x6d, 0xc9, 0x3b, 0x13, 0xe1, 0x79, 0x58, 0x80, 0x80, 0x75, 0x80, 0xb7, 0x36,
- 0x91, 0x58, 0xcb, 0xc6, 0xfe, 0x1f, 0xb1, 0x50, 0x91, 0xd6, 0x1a, 0x1a, 0x1d, 0x1a, 0x89, 0x33,
- 0x99, 0x09, 0xd2, 0xbc, 0x88, 0x79, 0x33, 0xc2, 0x99, 0xe9, 0xdc, 0xdc, 0x3b, 0xdc, 0x07, 0x9c,
- 0xb9, 0x8e, 0xb6, 0x97, 0x93, 0x22, 0x7e, 0xcf, 0xb9, 0x15, 0x42, 0x42, 0xa3, 0x42, 0x7a, 0x65,
- 0x71, 0x4b, 0x34, 0x17, 0xbf, 0x5d, 0x91, 0x73, 0x71, 0x67, 0x46, 0x46, 0x53, 0x46, 0x39, 0x99,
- 0xea, 0xc7, 0x71, 0x54, 0xcb, 0xdc, 0x63, 0x74, 0xea, 0xf1, 0x4a, 0x4a, 0x80, 0x4a, 0xfc, 0x5e,
- 0xd7, 0xd9, 0x79, 0x52, 0x0f, 0x62, 0xab, 0xc6, 0xd7, 0x6c, 0x56, 0x56, 0x15, 0x56, 0xf6, 0xef,
- 0x95, 0x91, 0x26, 0xfb, 0xc5, 0x2c, 0xf0, 0x19, 0x95, 0x28, 0x79, 0x79, 0x0e, 0x79, 0xce, 0x85,
- 0x55, 0x05, 0xbd, 0x01, 0x9f, 0x35, 0x9d, 0x37, 0x55, 0x65, 0xbb, 0xbb, 0xd8, 0xbb, 0x03, 0xd6,
- 0xda, 0xe2, 0x27, 0x8b, 0x3c, 0x4b, 0xe9, 0x9e, 0xda, 0x73, 0x9b, 0x9b, 0x54, 0x9b, 0x5e, 0x3a,
- 0xdb, 0x41, 0x8d, 0x15, 0x42, 0x37, 0x68, 0x1d, 0xdb, 0xad, 0xf3, 0xf3, 0x20, 0xf3, 0x3f, 0xf6,
- 0xb5, 0x16, 0x42, 0xd0, 0xde, 0x77, 0xbd, 0x14, 0xb5, 0xd4, 0xe7, 0xe7, 0x96, 0xe7, 0xb3, 0x7c,
- 0x3f, 0x9b, 0x9f, 0xf9, 0x38, 0x46, 0x09, 0x77, 0x3f, 0xe2, 0xcc, 0xcc, 0x7d, 0xcc, 0xc8, 0xea,
- 0x54, 0xa6, 0x17, 0x9f, 0xe1, 0x49, 0x1c, 0xb4, 0x54, 0xbb, 0xd3, 0xd3, 0xac, 0xd3, 0x62, 0x1a,
- 0x7d, 0xd3, 0xc0, 0x50, 0xf2, 0x08, 0x52, 0xa8, 0x7d, 0xa6, 0xe3, 0xe3, 0x66, 0xe3, 0xf0, 0x80,
- 0xd5, 0x5c, 0xee, 0xad, 0xf3, 0x9a, 0x6a, 0x03, 0xd5, 0x13, 0x86, 0x86, 0xfd, 0x86, 0x34, 0xb4,
- 0xbd, 0x47, 0x5b, 0xaa, 0xa8, 0x11, 0x3f, 0x86, 0xbd, 0xeb, 0x21, 0x21, 0xb0, 0x21, 0x3d, 0xd3,
- 0xa9, 0x2c, 0x84, 0x63, 0x7f, 0xee, 0xb9, 0x28, 0xa9, 0x6b, 0x0d, 0x0d, 0xef, 0x0d, 0xa5, 0xf8,
- 0xfe, 0xac, 0xae, 0x9d, 0x1c, 0x23, 0xe5, 0xda, 0xfe, 0x71, 0x66, 0x66, 0xdf, 0x66, 0x64, 0x75,
- 0x3b, 0x52, 0x72, 0xc4, 0x03, 0x75, 0x48, 0x3e, 0x3b, 0x1c, 0xaf, 0xaf, 0x6e, 0xaf, 0x8f, 0x5c,
- 0x1d, 0x99, 0x6c, 0x2d, 0xdf, 0xe5, 0x85, 0xbf, 0x1d, 0x61, 0x82, 0x82, 0x0d, 0x82, 0x77, 0x48,
- 0x36, 0x69, 0x2c, 0x1d, 0x30, 0x5c, 0x0a, 0x66, 0x36, 0x03, 0x62, 0x62, 0x2f, 0x62, 0x27, 0x89,
- 0x38, 0x74, 0x4f, 0xa5, 0x81, 0xf1, 0x08, 0x78, 0x38, 0xbd, 0x17, 0x17, 0xf2, 0x17, 0x2c, 0xcb,
- 0x07, 0xef, 0xd0, 0x5c, 0xb9, 0xb7, 0x01, 0x0f, 0x07, 0x5f, 0xdb, 0xdb, 0x8f, 0xdb, 0xe4, 0x21,
- 0x1b, 0xd5, 0x16, 0xef, 0x18, 0x2e, 0x05, 0x33, 0x1b, 0xe0, 0x31, 0x31, 0xf6, 0x31, 0xf2, 0xa5,
- 0xfb, 0xc6, 0xe9, 0x3e, 0x59, 0x6c, 0x25, 0x10, 0xfb, 0x51, 0x6d, 0x6d, 0xb8, 0x6d, 0x42, 0x0f,
- 0x70, 0xe8, 0x9e, 0x89, 0xc1, 0x21, 0x10, 0xf0, 0x70, 0xb9, 0x2e, 0x2e, 0x27, 0x2e, 0x58, 0x55,
- 0x89, 0xab, 0xe0, 0x48, 0x64, 0xb5, 0xf4, 0x25, 0x89, 0x97, 0x93, 0x93, 0x77, 0x93, 0xd8, 0x01,
- 0x4a, 0x19, 0x46, 0xd3, 0xbc, 0x28, 0xd9, 0x4d, 0x4a, 0x7b, 0xe9, 0xe9, 0x3d, 0xe9, 0xb6, 0xc5,
- 0xae, 0xc3, 0x54, 0x3f, 0xc6, 0x59, 0xb8, 0x27, 0xae, 0x34, 0xd6, 0xd6, 0x60, 0xd6, 0x41, 0xd9,
- 0x3d, 0x1e, 0x08, 0x06, 0xc4, 0xbe, 0xc8, 0xb2, 0x3d, 0x9d, 0x1c, 0x1c, 0x95, 0x1c, 0x0a, 0xb1,
- 0x29, 0x75, 0xd7, 0xcf, 0x13, 0x41, 0x4e, 0x1c, 0x29, 0x1d, 0x30, 0x30, 0xca, 0x30, 0x92, 0x9a,
- 0x8a, 0x8d, 0xdd, 0x29, 0xe6, 0x31, 0xb4, 0x63, 0x8a, 0x36, 0x2b, 0x2b, 0xeb, 0x2b, 0x7b, 0x96,
- 0xcd, 0xaf, 0xc5, 0x23, 0x69, 0x30, 0x2f, 0x76, 0xcd, 0x52, 0x0f, 0x0f, 0x97, 0x0f, 0x65, 0x86,
- 0x41, 0x6e, 0x62, 0xc8, 0x48, 0xca, 0x1b, 0x99, 0x41, 0xe5, 0x97, 0x97, 0x87, 0x97, 0x9b, 0xfd,
- 0xce, 0x89, 0xf8, 0x42, 0xeb, 0xb4, 0x6f, 0x30, 0xce, 0xf3, 0xb7, 0xb7, 0x0b, 0xb7, 0xc6, 0x11,
- 0x16, 0xee, 0x48, 0x36, 0x2b, 0x07, 0x47, 0x6b, 0x16, 0xff, 0xfc, 0xfc, 0xb7, 0xfc, 0x5a, 0x70,
- 0x6c, 0xd2, 0x58, 0x3a, 0x60, 0xb8, 0x14, 0xcc, 0x6c, 0x06, 0xc4, 0xc4, 0x5e, 0xc4, 0x4e, 0xd1,
- 0x1f, 0x1c, 0xfb, 0xd2, 0x23, 0x1d, 0x44, 0x7a, 0x1f, 0x1e, 0x52, 0x52, 0xe5, 0x52, 0xb5, 0x13,
- 0xe0, 0x13, 0xff, 0xd1, 0x41, 0x42, 0x20, 0x23, 0xe0, 0xb1, 0x5c, 0x5c, 0x4e, 0x5c, 0xb0, 0xaa,
- 0xf5, 0xdb, 0x8a, 0x86, 0xe8, 0xc1, 0x27, 0x0e, 0xf5, 0xef, 0x18, 0x18, 0x65, 0x18, 0x49, 0x4d,
- 0xb0, 0x7c, 0x05, 0x73, 0x9b, 0x38, 0x7d, 0xde, 0xb0, 0xf4, 0xec, 0xec, 0xf1, 0xec, 0x95, 0x06,
- 0xde, 0x2b, 0xca, 0xb6, 0x07, 0x78, 0xa8, 0xd7, 0xde, 0x8d, 0xf8, 0xf8, 0x47, 0xf8, 0x19, 0x8c,
- 0x03, 0x26, 0x3d, 0x61, 0x82, 0x84, 0x40, 0x46, 0x03, 0xa1, 0xb8, 0xb8, 0x9c, 0xb8, 0xa3, 0x97,
- 0xd0, 0x36, 0xa9, 0x0e, 0xb6, 0xd5, 0xaa, 0xc9, 0xd0, 0x33, 0x8d, 0x8d, 0x9a, 0x8d, 0x12, 0xce,
- 0x8e, 0x44, 0x30, 0x14, 0xdd, 0x02, 0xf5, 0x2a, 0x8e, 0xc8, 0x48, 0x48, 0xf8, 0x48, 0x3c, 0x20,
- 0x23, 0xa1, 0x59, 0x4a, 0x99, 0xdf, 0x0d, 0x4b, 0x23, 0x5d, 0x26, 0x26, 0x04, 0x26, 0xde, 0x6e,
- 0x0a, 0xd4, 0x8e, 0x85, 0x8a, 0x9e, 0x43, 0x57, 0x0a, 0x40, 0x16, 0x16, 0xce, 0x16, 0x4c, 0xf4,
- 0xf3, 0x97, 0xf0, 0x44, 0x2f, 0x0a, 0xa7, 0x82, 0xf3, 0x6e, 0xab, 0xab, 0x9e, 0xab, 0xcc, 0xa0,
- 0x06, 0x4c, 0x7a, 0xc2, 0xc7, 0xcb, 0x80, 0x8c, 0x06, 0x81, 0xb3, 0xb3, 0xfb, 0xb3, 0x85, 0xed,
- 0xdf, 0x88, 0x60, 0x28, 0x79, 0x04, 0x29, 0x54, 0xdf, 0x53, 0x90, 0x90, 0x33, 0x90, 0x78, 0x40,
- 0x4d, 0xf6, 0x96, 0x8f, 0x05, 0x9f, 0xd8, 0x42, 0x4d, 0x24, 0x32, 0x32, 0xb2, 0x32, 0x52, 0xe4,
- 0x98, 0xaa, 0x78, 0x22, 0xf6, 0x05, 0xb2, 0x41, 0x98, 0x37, 0xb4, 0xb4, 0x4f, 0xb4, 0x66, 0x50,
- 0x97, 0x14, 0xb1, 0x04, 0x39, 0xd4, 0x31, 0xdc, 0x97, 0x57, 0xa9, 0xa9, 0xe6, 0xa9, 0x0c, 0xde,
- 0xad, 0xe5, 0x69, 0x5e, 0x44, 0xdd, 0xf8, 0x61, 0xad, 0x95, 0x6e, 0x6e, 0xfc, 0x6e, 0xe2, 0x4e,
- 0x15, 0xc8, 0x75, 0x57, 0xa9, 0x83, 0x07, 0x2d, 0x15, 0x5e, 0x44, 0x44, 0x2b, 0x44, 0xf9, 0xe7,
- 0xa2, 0x5b, 0xa0, 0x78, 0x8b, 0x0c, 0x7b, 0xfc, 0xa2, 0xf5, 0x73, 0x73, 0x55, 0x73, 0x88, 0xc0,
- 0xab, 0xa9, 0x13, 0x9c, 0x83, 0x16, 0x78, 0xed, 0xab, 0x14, 0xdd, 0xdd, 0x07, 0xdd, 0x67, 0xa3,
- 0xc0, 0x94, 0x9b, 0xfa, 0x5a, 0x19, 0x6d, 0x2e, 0xc0, 0x4d, 0xc2, 0xc2, 0xd6, 0xc2, 0xcd, 0x53,
- 0xb6, 0x30, 0x7f, 0xb1, 0x5c, 0xf3, 0xfd, 0x52, 0xb6, 0x75, 0x5f, 0x5f, 0x0a, 0x5f, 0x10, 0xeb,
- 0x53, 0x49, 0xc7, 0xc3, 0x58, 0xfe, 0x1d, 0xbb, 0x53, 0xe4, 0x08, 0x08, 0x23, 0x08, 0x86, 0x3b,
- 0xed, 0x28, 0xa1, 0x08, 0x72, 0x6b, 0x62, 0x7b, 0xed, 0xae, 0x91, 0x91, 0x0f, 0x91, 0x18, 0x7f,
- 0xc1, 0x37, 0x31, 0x64, 0x24, 0x65, 0xec, 0xad, 0xc1, 0x93, 0xaa, 0xaa, 0xa2, 0xaa, 0xac, 0x9f,
- 0xe1, 0xb0, 0x55, 0x4f, 0x3f, 0x3e, 0xa1, 0xa0, 0xe1, 0x6f, 0x34, 0x34, 0x3a, 0x34, 0xd1, 0x66,
- 0x62, 0xcf, 0x3b, 0x82, 0xd1, 0x15, 0x16, 0xd2, 0x62, 0xb8, 0xb1, 0xb1, 0x83, 0xb1, 0x45, 0x93,
- 0x24, 0x4e, 0x89, 0x16, 0x20, 0x68, 0x0c, 0x44, 0x24, 0x02, 0xfd, 0xfd, 0x8b, 0xfd, 0x3a, 0x4f,
- 0xe9, 0xe1, 0x4c, 0x35, 0x49, 0x58, 0x23, 0x32, 0xe9, 0x50, 0xf2, 0xf2, 0x1c, 0xf2, 0x5f, 0xc9,
- 0x65, 0x20, 0xeb, 0xde, 0x68, 0xa2, 0x17, 0xdd, 0x65, 0xe7, 0x6a, 0x6a, 0x0c, 0x6a, 0xa1, 0xb2,
- 0xec, 0x8b, 0x0b, 0x96, 0x0c, 0x17, 0xe3, 0xf8, 0xec, 0x70, 0xf9, 0xf9, 0x7b, 0xf9, 0x79, 0xb3,
- 0x5d, 0x54, 0xa4, 0x7b, 0xe9, 0x53, 0x1f, 0xa5, 0x5d, 0x5a, 0x7d, 0x7d, 0xfe, 0x7d, 0x8d, 0x79,
- 0x26, 0xcb, 0x1e, 0xe9, 0xdc, 0x90, 0xcd, 0x81, 0x26, 0x7d, 0x2d, 0x2d, 0x63, 0x2d, 0xf8, 0x14,
- 0xbe, 0x61, 0x66, 0xcb, 0x2a, 0x95, 0x7f, 0xc0, 0xbe, 0x4a, 0x99, 0x99, 0x2c, 0x99, 0x9e, 0x44,
- 0x21, 0x24, 0xce, 0xb5, 0x65, 0x27, 0xcc, 0x8e, 0x21, 0x22, 0xf6, 0xf6, 0xec, 0xf6, 0x1c, 0x35,
- 0x4b, 0xba, 0xec, 0x4d, 0xc2, 0x54, 0x58, 0xce, 0x4b, 0xa5, 0x81, 0x81, 0x49, 0x81, 0xd7, 0x09,
- 0x48, 0x9c, 0xd1, 0x2c, 0x40, 0xd0, 0x18, 0x88, 0x48, 0x04, 0x39, 0x39, 0xd5, 0x39, 0x74, 0x9e,
- 0xca, 0x40, 0x15, 0x7f, 0xd0, 0x87, 0x2e, 0x79, 0xca, 0x0d, 0xd4, 0xd4, 0x18, 0xd4, 0x81, 0xa7,
- 0xf7, 0x5e, 0x1d, 0x79, 0x14, 0x39, 0xe6, 0xcb, 0xf7, 0x90, 0xc8, 0xc8, 0x8d, 0xc8, 0x8b, 0x16,
- 0x7c, 0x70, 0x6a, 0xce, 0x8c, 0x74, 0xd3, 0x2b, 0x7c, 0x78, 0x8b, 0x8b, 0x12, 0x8b, 0x91, 0x4c,
- 0xff, 0x0f, 0x04, 0x03, 0x62, 0x5f, 0x64, 0x59, 0xff, 0xaf, 0x0e, 0x0e, 0xab, 0x0e, 0x05, 0xb9,
- 0x20, 0x87, 0x64, 0x2b, 0x1b, 0x5b, 0x4d, 0x0d, 0x20, 0xfc, 0x9e, 0x9e, 0x98, 0x9e, 0x7d, 0xf9,
- 0xd1, 0x95, 0x03, 0x90, 0xc8, 0xa9, 0x2b, 0x4a, 0xd1, 0xed, 0xe5, 0xe5, 0xee, 0xe5, 0x73, 0x02,
- 0x85, 0x33, 0x14, 0x0f, 0x29, 0xe0, 0x37, 0xfe, 0x85, 0x56, 0x36, 0x36, 0x42, 0x36, 0x11, 0x18,
- 0x58, 0x3e, 0xe3, 0xd8, 0xac, 0x1c, 0xdf, 0x6f, 0x58, 0x7a, 0x76, 0x76, 0x99, 0x76, 0xab, 0x03,
- 0x49, 0x3f, 0x7b, 0xb2, 0x3e, 0xac, 0x99, 0x0b, 0x49, 0xda, 0x51, 0x51, 0xa1, 0x51, 0x15, 0x52,
- 0xfa, 0x65, 0x43, 0xa0, 0x27, 0x10, 0xa4, 0x93, 0xfa, 0x8f, 0x05, 0x05, 0xcc, 0x05, 0x23, 0xc3,
- 0x87, 0xb6, 0x83, 0xf0, 0xd5, 0x18, 0xf6, 0x3b, 0x87, 0x29, 0xe6, 0xe6, 0xaa, 0xe6, 0xd3, 0x43,
- 0x27, 0x68, 0xb4, 0x77, 0xa2, 0xec, 0x4c, 0x02, 0x27, 0xa3, 0x45, 0x45, 0x17, 0x45, 0x99, 0xd8,
- 0xe8, 0x42, 0xe6, 0xab, 0x37, 0x24, 0xa2, 0xb1, 0xe8, 0x8e, 0x9a, 0x9a, 0x68, 0x9a, 0x3e, 0x05,
- 0xf4, 0x78, 0x20, 0x18, 0x96, 0xbd, 0xa6, 0x8d, 0xf4, 0x31, 0x70, 0x70, 0x11, 0x70, 0x28, 0x81,
- 0x5a, 0xbb, 0x74, 0x27, 0x50, 0xe4, 0x1e, 0xaa, 0x5a, 0x05, 0xa6, 0xa6, 0x71, 0xa6, 0x69, 0x58,
- 0x66, 0x06, 0xd6, 0xbf, 0xea, 0x26, 0x57, 0x9b, 0x66, 0x46, 0xd2, 0xd2, 0x90, 0xd2, 0x02, 0x25,
- 0xf0, 0xb1, 0xcd, 0x25, 0xad, 0x8e, 0xe7, 0xc4, 0xf0, 0xcf, 0x13, 0x13, 0x02, 0x13, 0x6f, 0x37,
- 0xcb, 0xe3, 0xbf, 0xe1, 0xae, 0xfb, 0xaf, 0xfa, 0xcb, 0xd3, 0xbc, 0xbc, 0x6c, 0xbc, 0xe0, 0x6b,
- 0x0e, 0x1d, 0x63, 0xb8, 0xb1, 0xad, 0x02, 0x1e, 0x0e, 0xbe, 0x75, 0x75, 0xdd, 0x75, 0x0b, 0x42,
- 0xe2, 0x96, 0x68, 0x2e, 0xbd, 0xba, 0xe1, 0xe6, 0xe2, 0xce, 0x8c, 0x8c, 0xa6, 0x8c, 0x72, 0xf1,
- 0x57, 0x80, 0x2a, 0xfe, 0x63, 0xcd, 0x5c, 0xf2, 0x57, 0x1a, 0x6b, 0x6b, 0x30, 0x6b, 0xc1, 0x8d,
- 0xc4, 0x5d, 0x76, 0xc7, 0x61, 0x2a, 0x2c, 0x67, 0xc4, 0xb3, 0xa1, 0xa1, 0xc5, 0xa1, 0x8a, 0xe5,
- 0x9b, 0x8c, 0x45, 0x43, 0x74, 0x81, 0xf2, 0x07, 0x9b, 0x96, 0x0c, 0x0c, 0xd3, 0x0c, 0xc5, 0xc7,
- 0xee, 0x0e, 0x9c, 0x69, 0xf0, 0xef, 0x22, 0x3d, 0xee, 0x0f, 0x29, 0x29, 0x93, 0x29, 0xbb, 0xe8,
- 0x1a, 0x76, 0xbc, 0x71, 0x66, 0x52, 0x84, 0xb0, 0x1a, 0x3e, 0x59, 0x59, 0x82, 0x59, 0x93, 0x69,
- 0x37, 0xca, 0x86, 0x83, 0x4e, 0x20, 0x8b, 0xe5, 0x37, 0xdd, 0x0a, 0x0a, 0x5b, 0x0a, 0x46, 0x45,
- 0x2e, 0x9a, 0x07, 0x93, 0xaa, 0xf6, 0x4f, 0x13, 0x2e, 0x42, 0xeb, 0xeb, 0x45, 0xeb, 0x76, 0xbb,
- 0x69, 0xb8, 0x1f, 0x99, 0x25, 0xf7, 0xd4, 0x06, 0x69, 0x26, 0xcf, 0xcf, 0x39, 0xcf, 0x68, 0xab,
- 0x8b, 0x2e, 0x77, 0xb7, 0x98, 0x4d, 0x35, 0xe0, 0x8b, 0xe8, 0x43, 0x43, 0x9f, 0x43, 0x1a, 0x5a,
- 0xaf, 0x60, 0xfe, 0xa1, 0xb8, 0x25, 0x39, 0xa4, 0xaf, 0xea, 0xbe, 0xbe, 0x14, 0xbe, 0x20, 0x15,
- 0xc2, 0x11, 0x0c, 0x05, 0xa6, 0xe1, 0xac, 0xeb, 0xc2, 0x32, 0x12, 0x12, 0x3e, 0x12, 0x0f, 0x08,
- 0x7f, 0x56, 0x57, 0xaf, 0x0e, 0xf0, 0x93, 0x6d, 0x7f, 0xd9, 0x33, 0x33, 0x8e, 0x33, 0x32, 0xdb,
- 0x64, 0x83, 0x41, 0x40, 0x16, 0xde, 0x96, 0x5e, 0x64, 0x39, 0x02, 0x02, 0x78, 0x02, 0xc0, 0x7e,
- 0x45, 0xa7, 0x8f, 0xf5, 0x73, 0xf9, 0x5a, 0xd0, 0x45, 0x1b, 0xf4, 0xf4, 0x94, 0xf4, 0xdc, 0x4b,
- 0x14, 0x6b, 0xdf, 0xc9, 0xd7, 0xff, 0x86, 0xae, 0x14, 0x80, 0x2c, 0x2c, 0x5f, 0x2c, 0x98, 0x2b,
- 0xfd, 0x8a, 0x93, 0xfc, 0x9e, 0xa7, 0xa5, 0x9c, 0xfd, 0xd0, 0xde, 0xde, 0x43, 0xde, 0xc7, 0xe2,
- 0xac, 0x46, 0xc3, 0xc0, 0x3a, 0xa1, 0x79, 0xe2, 0xac, 0x4b, 0x06, 0x06, 0x88, 0x06, 0x83, 0x82,
- 0x86, 0x15, 0x29, 0x6e, 0xab, 0x64, 0x77, 0xb8, 0x86, 0xf7, 0x8e, 0x8e, 0xde, 0x8e, 0xb2, 0x8f,
- 0x76, 0xa4, 0xe4, 0x4b, 0x06, 0xea, 0x90, 0x7c, 0x76, 0x38, 0x9d, 0x9d, 0xdc, 0x9d, 0xdd, 0xb8,
- 0x43, 0xeb, 0xf5, 0x37, 0xb4, 0x32, 0xda, 0x5c, 0x43, 0x9a, 0x47, 0x47, 0x6f, 0x47, 0x59, 0xa6,
- 0x50, 0x6f, 0xfa, 0xa2, 0xda, 0x7a, 0x5d, 0xfd, 0x50, 0x45, 0xb0, 0xb0, 0xbf, 0xb0, 0x25, 0xac,
- 0x28, 0xd6, 0x7d, 0x51, 0x6d, 0x3d, 0xcf, 0x9f, 0x28, 0xc3, 0x58, 0x58, 0xbe, 0x58, 0xf3, 0x56,
- 0xaa, 0x0a, 0xb9, 0x02, 0xfd, 0x6a, 0xf9, 0x6e, 0xaa, 0xca, 0xb5, 0xb5, 0x73, 0xb5, 0x06, 0x6f,
- 0x5e, 0x72, 0x99, 0x1a, 0x6b, 0xd7, 0x5f, 0xe3, 0x5e, 0xfb, 0xc5, 0xc5, 0x62, 0xc5, 0x2e, 0xee,
- 0xdd, 0x0d, 0xf7, 0xd7, 0x85, 0xfc, 0xe8, 0x91, 0xdd, 0x2c, 0x40, 0x40, 0xdb, 0x40, 0xba, 0x1b,
- 0xbb, 0x0b, 0x21, 0x68, 0x6f, 0xda, 0xbf, 0x0a, 0xbb, 0x6a, 0x92, 0x92, 0x4b, 0x92, 0xb8, 0x3e,
- 0x96, 0xb7, 0x1b, 0x9a, 0x47, 0xa8, 0xb0, 0x5f, 0x96, 0x89, 0xc1, 0xc1, 0x92, 0xc1, 0x6d, 0x12,
- 0x05, 0x6a, 0x47, 0xa3, 0x45, 0x4f, 0xc0, 0xca, 0x05, 0x20, 0x0b, 0x0b, 0x67, 0x0b, 0x26, 0x7a,
- 0x7b, 0x9f, 0xba, 0x92, 0x35, 0xc3, 0xd2, 0x24, 0x7b, 0x27, 0x50, 0x50, 0x9d, 0x50, 0x75, 0x6d,
- 0xf6, 0xfd, 0xb7, 0xe7, 0x6a, 0x45, 0x67, 0x48, 0xf6, 0x4e, 0xa0, 0xa0, 0xf9, 0xa0, 0xea, 0xda,
- 0x2b, 0xf0, 0x40, 0x30, 0xef, 0xb9, 0x8f, 0xd9, 0x2b, 0x62, 0xe0, 0xe0, 0x22, 0xe0, 0x50, 0xc1,
- 0x09, 0xf2, 0xb3, 0xe4, 0x08, 0x1a, 0x03, 0x11, 0x09, 0xe1, 0xae, 0xae, 0x52, 0xae, 0xef, 0x63,
- 0xc7, 0x7b, 0x4b, 0xa6, 0xe3, 0xae, 0x6c, 0x21, 0xc7, 0x12, 0x19, 0x19, 0x59, 0x19, 0x29, 0x72,
- 0x46, 0x81, 0xb2, 0x94, 0xf1, 0x7d, 0x1a, 0x96, 0x46, 0xba, 0x4c, 0x4c, 0x08, 0x4c, 0x7f, 0xdc,
- 0x0d, 0x3b, 0x5e, 0xd9, 0x33, 0x29, 0x42, 0x58, 0x0d, 0x1f, 0xcd, 0xcd, 0x41, 0xcd, 0xa8, 0xd5,
- 0x13, 0x84, 0x0f, 0x95, 0x6e, 0x48, 0x87, 0xa1, 0x13, 0xdf, 0xf7, 0xf7, 0xd0, 0xf7, 0x7c, 0x0a,
- 0x61, 0xe9, 0x06, 0xe3, 0x53, 0x91, 0x56, 0x94, 0x61, 0x19, 0x09, 0x09, 0x1f, 0x09, 0xe6, 0x04,
- 0x01, 0xa3, 0xaa, 0x9e, 0x7e, 0x7c, 0x81, 0x83, 0x01, 0xde, 0x68, 0x68, 0x74, 0x68, 0x61, 0xcc,
- 0xef, 0xad, 0x36, 0xf7, 0x8e, 0x93, 0xa3, 0xbe, 0xef, 0xd1, 0x41, 0x41, 0xe7, 0x41, 0xda, 0x24,
- 0x8d, 0x62, 0x0d, 0x75, 0x5f, 0x86, 0xb5, 0x6c, 0x8d, 0x69, 0xf0, 0xf0, 0x64, 0xf0, 0x9f, 0xb7,
- 0xd3, 0x10, 0x94, 0x6f, 0x34, 0x51, 0xea, 0x8f, 0xd3, 0x92, 0x35, 0x35, 0x06, 0x35, 0xb1, 0x59,
- 0xbc, 0xe4, 0xf1, 0x34, 0xd6, 0x6d, 0xbe, 0x05, 0xbc, 0x35, 0x49, 0x49, 0xc4, 0x49, 0x5c, 0x1f,
- 0xf1, 0x12, 0x67, 0xbb, 0xd3, 0xf2, 0x66, 0x47, 0xf1, 0x11, 0x7b, 0x7b, 0x76, 0x7b, 0x0e, 0xfb,
- 0x32, 0xa0, 0xc1, 0x20, 0x0b, 0x6f, 0x4b, 0x2f, 0x32, 0xfd, 0x01, 0x01, 0x3c, 0x01, 0x60, 0x3f,
- 0x5c, 0xf7, 0x0e, 0xe5, 0x97, 0x2f, 0x9e, 0x26, 0x5c, 0x84, 0x15, 0x15, 0x8a, 0x15, 0xec, 0xb5,
- 0x02, 0x85, 0x97, 0xff, 0xfc, 0xf8, 0xc1, 0xc5, 0x02, 0x7f, 0xd0, 0xd0, 0xe8, 0xd0, 0xc2, 0x5b,
- 0xb1, 0xdf, 0xaf, 0xed, 0xe5, 0x44, 0xfc, 0x5d, 0xb1, 0x2a, 0x84, 0x84, 0x85, 0x84, 0xf4, 0xca,
- 0x56, 0x23, 0x80, 0x60, 0x1d, 0xb1, 0xdd, 0x71, 0x56, 0xc4, 0x03, 0x03, 0x44, 0x03, 0xa0, 0x41,
- 0x51, 0xcc, 0x50, 0x3c, 0xa4, 0x06, 0xdc, 0x7e, 0x51, 0x9b, 0xd8, 0xd8, 0xcb, 0xd8, 0x44, 0x60,
- 0xc9, 0x66, 0x28, 0x1e, 0x52, 0x03, 0x6e, 0x3f, 0xc9, 0xac, 0x6c, 0x6c, 0x84, 0x6c, 0x22, 0x30,
- 0xd6, 0x7a, 0xd3, 0xcc, 0x71, 0x1e, 0x2a, 0x45, 0xd6, 0xb2, 0x3e, 0x3e, 0x61, 0x3e, 0x97, 0x23,
- 0x4e, 0xd0, 0xab, 0xee, 0x87, 0x1b, 0x98, 0x04, 0x4e, 0x85, 0x8a, 0x8a, 0x2e, 0x8a, 0xf1, 0x73,
- 0xc8, 0xc5, 0x82, 0x80, 0x2c, 0x7f, 0xef, 0xbc, 0xc8, 0x72, 0x04, 0x04, 0xf0, 0x04, 0x43, 0xfc,
- 0xa0, 0xde, 0x37, 0x87, 0x77, 0xf4, 0xba, 0x39, 0xa0, 0x8a, 0xa3, 0xa3, 0xbd, 0xa3, 0x4a, 0x9b,
- 0x31, 0x86, 0xfc, 0x41, 0x89, 0xeb, 0x0b, 0x69, 0x31, 0x5c, 0xb9, 0xb9, 0xa0, 0xb9, 0xc3, 0xa8,
- 0x22, 0x02, 0xf3, 0xd4, 0xe7, 0xa3, 0x8c, 0xc8, 0x22, 0x83, 0x4e, 0x4e, 0x70, 0x4e, 0xbf, 0xa2,
- 0xa5, 0xb4, 0x70, 0x24, 0x32, 0xbb, 0x7a, 0xf3, 0xa5, 0xaa, 0xa8, 0xa8, 0xda, 0xa8, 0x6c, 0xe1,
- 0x17, 0x4d, 0xe2, 0xa8, 0x55, 0x7b, 0xc6, 0xe8, 0x17, 0x21, 0x94, 0x94, 0xc3, 0x94, 0x3b, 0xbc,
- 0x33, 0x03, 0x6b, 0xbe, 0x75, 0x13, 0xca, 0xac, 0x33, 0x23, 0x69, 0x69, 0x48, 0x69, 0x01, 0xf3,
- 0x94, 0x32, 0x8c, 0x65, 0xbb, 0x50, 0x71, 0x9a, 0x94, 0xf6, 0x11, 0x11, 0x7a, 0x11, 0xaf, 0x49,
- 0xeb, 0x64, 0xdb, 0xca, 0xb5, 0xa0, 0xe2, 0xf7, 0xeb, 0x2f, 0x22, 0x22, 0xf4, 0x22, 0x9d, 0x92,
- 0x84, 0x90, 0xbe, 0x91, 0x57, 0x9c, 0xb6, 0x7d, 0x84, 0x88, 0x5e, 0x5e, 0x36, 0x5e, 0x70, 0xd4,
- 0x08, 0x51, 0x19, 0x7a, 0x76, 0x66, 0x82, 0x92, 0x08, 0x3f, 0xc6, 0xc6, 0x26, 0xc6, 0x8e, 0xaf,
- 0x25, 0xed, 0x23, 0x88, 0x5e, 0x14, 0x8d, 0xc7, 0x25, 0xdc, 0x95, 0x95, 0xff, 0x95, 0x5b, 0x83,
- 0xf9, 0x43, 0x7e, 0xc1, 0xa5, 0x94, 0xe4, 0xd5, 0xf9, 0x2e, 0xbd, 0xbd, 0x50, 0xbd, 0x80, 0x54,
- 0x39, 0xd7, 0xe5, 0x3b, 0xff, 0x8d, 0x89, 0xfb, 0x39, 0x63, 0x7f, 0x7f, 0x86, 0x7f, 0x4d, 0x07,
- 0x60, 0x4a, 0xac, 0x7d, 0x2d, 0xed, 0xd7, 0x17, 0x60, 0xc7, 0x61, 0x61, 0x6b, 0x61, 0x87, 0xc8,
- 0xb2, 0xf9, 0x92, 0x8c, 0x67, 0xc0, 0xbc, 0x1b, 0xb2, 0x8b, 0x3c, 0x3c, 0x19, 0x3c, 0x57, 0x5d,
- 0xd4, 0xff, 0x44, 0x33, 0x8d, 0xe6, 0xeb, 0x80, 0xd4, 0xcd, 0xee, 0xee, 0x89, 0xee, 0x55, 0x78,
- 0x6f, 0xf4, 0x65, 0x5b, 0xe2, 0x3c, 0x54, 0x8a, 0x6f, 0xa7, 0x7c, 0x7c, 0xc2, 0x7c, 0xed, 0x46,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x6d, 0x71, 0xf2, 0xa4, 0x1e, 0xc4, 0x95, 0x4f, 0x6d, 0xd8, 0xac, 0xac, 0x2a, 0xac, 0x2f, 0x1d,
- 0xa1, 0x7d, 0x9d, 0x19, 0x09, 0x88, 0x3b, 0xba, 0xa1, 0x54, 0xcb, 0xcb, 0xc9, 0xcb, 0x2b, 0x57,
- 0x12, 0x27, 0xa5, 0x0b, 0x10, 0x34, 0x06, 0x22, 0x12, 0x01, 0x9f, 0x9f, 0xa4, 0x9f, 0x1d, 0xc6,
- 0xd8, 0x67, 0xb0, 0x74, 0xc0, 0xb3, 0x28, 0x5b, 0xd8, 0x0c, 0x4b, 0x4b, 0xbc, 0x4b, 0x9c, 0x61,
- 0xa3, 0xf8, 0x0a, 0xe6, 0xf5, 0x70, 0xfa, 0x7f, 0xa3, 0x2b, 0x1b, 0x1b, 0x21, 0x1b, 0xe9, 0x0c,
- 0xa4, 0x17, 0xda, 0xba, 0x4c, 0xc7, 0xfb, 0x70, 0xa4, 0x74, 0xc0, 0xc0, 0xae, 0xc0, 0x0d, 0x2d,
- 0xcf, 0x2a, 0x52, 0xdc, 0x95, 0xc8, 0xee, 0xb3, 0xcf, 0x2d, 0xdf, 0xdf, 0x7f, 0xdf, 0xa7, 0xdd,
- 0x9a, 0x2f, 0xef, 0xdd, 0x0a, 0xfd, 0x73, 0x84, 0x9a, 0x48, 0x64, 0x64, 0xa7, 0x64, 0xa4, 0x0b,
- 0xcc, 0x0c, 0x6f, 0xbd, 0x17, 0x4c, 0xae, 0xf5, 0xcc, 0x8c, 0x67, 0x67, 0xe3, 0x67, 0x04, 0x4a,
- 0x52, 0xea, 0x6d, 0x5d, 0x26, 0x82, 0x9c, 0x38, 0x52, 0x3a, 0x60, 0x60, 0x57, 0x60, 0xe7, 0xf7,
- 0x1c, 0x3a, 0xc6, 0xb3, 0xa1, 0x99, 0x04, 0x3c, 0x1c, 0xbf, 0xea, 0xea, 0x79, 0xea, 0x16, 0x84,
- 0x2f, 0x39, 0xad, 0x0d, 0xd4, 0x8a, 0xce, 0x90, 0x2f, 0x9c, 0x83, 0x83, 0x31, 0x83, 0x17, 0x77,
- 0x7e, 0xf5, 0xfd, 0x31, 0x70, 0x8c, 0x12, 0xee, 0x7e, 0x07, 0x5b, 0x5b, 0xfa, 0x5b, 0x53, 0x17,
- 0x93, 0xdd, 0x5c, 0x39, 0x02, 0xe7, 0x70, 0x95, 0x93, 0xa9, 0xca, 0xca, 0xf5, 0xca, 0x4b, 0x68,
- 0x42, 0x48, 0x5f, 0xa9, 0xca, 0x4e, 0x5b, 0xdf, 0x42, 0x44, 0x2f, 0x2f, 0x1b, 0x2f, 0x38, 0x6a,
- 0xb3, 0x5a, 0x38, 0x12, 0x19, 0xbc, 0x3d, 0x98, 0xb3, 0x55, 0x54, 0x54, 0x6d, 0x54, 0x36, 0x91,
- 0x18, 0xf3, 0x2b, 0x8e, 0x9a, 0xaa, 0x45, 0x75, 0x18, 0x41, 0x89, 0x89, 0x6a, 0x89, 0x51, 0x32,
- 0xb8, 0x2d, 0x1c, 0x09, 0xed, 0x5e, 0xff, 0x4c, 0xb8, 0xcb, 0x2a, 0x2a, 0xd7, 0x2a, 0x1b, 0xa9,
- 0xfc, 0x29, 0x39, 0x62, 0xe0, 0xdb, 0x24, 0x1f, 0xfc, 0x0e, 0xb6, 0xb6, 0x37, 0xb6, 0xa6, 0x2e,
- 0x44, 0x04, 0x25, 0x6b, 0x0d, 0x85, 0xdb, 0x53, 0x44, 0xc5, 0x9c, 0x9c, 0xe0, 0x9c, 0xbd, 0x87,
- 0xe6, 0x5f, 0x85, 0x13, 0x86, 0x89, 0xa0, 0xaf, 0xe6, 0x30, 0xef, 0xef, 0xb5, 0xef, 0x35, 0x47,
- 0x8c, 0xc1, 0xa7, 0xeb, 0x21, 0xfa, 0x34, 0xef, 0x8c, 0xb7, 0x98, 0x98, 0x10, 0x98, 0xfe, 0x7b,
- 0xc6, 0xd8, 0xe1, 0x38, 0x9d, 0xd2, 0xed, 0xa2, 0xc6, 0xcc, 0x71, 0x71, 0x2d, 0x71, 0x48, 0xbe,
- 0x63, 0x6c, 0x91, 0x1c, 0xaf, 0x69, 0x97, 0x51, 0x63, 0x66, 0xd9, 0xd9, 0xf7, 0xd9, 0x24, 0x5f,
- 0xbf, 0xc2, 0xcc, 0x55, 0x54, 0xe9, 0xfe, 0x43, 0xbf, 0x94, 0xf1, 0xf1, 0x58, 0xf1, 0xff, 0x88,
- 0xf2, 0x34, 0x5a, 0xda, 0x51, 0x76, 0x26, 0x01, 0xf2, 0xb0, 0xc3, 0xc3, 0xea, 0xc3, 0xad, 0x6c,
- 0x2c, 0x1f, 0x90, 0x6c, 0x56, 0x0e, 0x8e, 0xd6, 0x2c, 0x3d, 0x3b, 0x3b, 0xad, 0x3b, 0xb4, 0xe0,
- 0x11, 0x01, 0x98, 0x6a, 0x92, 0xb0, 0x46, 0x64, 0x11, 0xa0, 0x27, 0x27, 0x38, 0x27, 0xbe, 0x51,
- 0x73, 0xce, 0xa3, 0xe8, 0x43, 0xa5, 0x50, 0xb6, 0x73, 0x18, 0x96, 0x96, 0xbb, 0x96, 0xfb, 0xc2,
- 0xdc, 0xae, 0x5d, 0x49, 0xfb, 0x80, 0x69, 0x12, 0xdc, 0xf2, 0x28, 0x28, 0xaf, 0x28, 0xdb, 0xd7,
- 0xd9, 0xc4, 0x1a, 0xea, 0xbe, 0xcf, 0xa9, 0xd8, 0xd9, 0xd2, 0x23, 0x23, 0xc8, 0x23, 0xfd, 0xad,
- 0x92, 0x7e, 0xf6, 0xa7, 0x7c, 0x9b, 0xf1, 0x16, 0x92, 0x77, 0xa2, 0xa2, 0x81, 0xa2, 0x2a, 0xa4,
- 0x3e, 0x38, 0x35, 0x67, 0x46, 0x3a, 0x88, 0xf4, 0x3e, 0x3c, 0xa4, 0xa4, 0x09, 0xa4, 0xa9, 0x26,
- 0xd2, 0xb3, 0x3e, 0xf1, 0x4a, 0x2d, 0x6b, 0x0c, 0xd2, 0x4c, 0x5d, 0x5d, 0x72, 0x5d, 0xd0, 0x95,
- 0x59, 0x9d, 0x49, 0x46, 0xd2, 0x60, 0x5e, 0xec, 0x59, 0xa4, 0x1e, 0x1e, 0xed, 0x1e, 0xca, 0xcf,
- 0x75, 0x82, 0xd9, 0x2a, 0x84, 0x6e, 0xd0, 0x3a, 0x75, 0x99, 0x25, 0x25, 0x40, 0x25, 0x7e, 0x2f,
- 0x19, 0x50, 0x81, 0x10, 0xe4, 0xd6, 0xc4, 0xf6, 0x19, 0x9f, 0xe1, 0xe1, 0x1e, 0xe1, 0x30, 0xfe,
- 0xb4, 0xb5, 0xe8, 0x4e, 0xa0, 0x0b, 0x3c, 0x97, 0xb4, 0x0a, 0x8f, 0x8f, 0xe2, 0x8f, 0xd2, 0xb0,
- 0x81, 0xfa, 0xf9, 0x32, 0x12, 0xd3, 0x76, 0xb7, 0x81, 0xa8, 0x55, 0x55, 0x51, 0x55, 0x56, 0xae,
- 0xe4, 0xda, 0x12, 0xec, 0x7a, 0x71, 0x61, 0x6a, 0xe4, 0x4f, 0x3f, 0x3f, 0x5d, 0x3f, 0xf7, 0x1c,
- 0xe5, 0x79, 0xb8, 0x72, 0x04, 0x0d, 0xe0, 0xe9, 0xe5, 0x91, 0x57, 0x57, 0x29, 0x57, 0x96, 0xd0,
- 0x0f, 0xbe, 0xc9, 0x26, 0xcf, 0xd1, 0x83, 0x9d, 0x0f, 0x60, 0x1d, 0x1d, 0xa9, 0x1d, 0x6a, 0x8e,
- 0x47, 0x22, 0x18, 0x0a, 0x8f, 0x01, 0x9b, 0x15, 0x47, 0x64, 0x24, 0x24, 0x7c, 0x24, 0x1e, 0x10,
- 0x9c, 0x63, 0x95, 0x1f, 0xcd, 0x36, 0xf3, 0x08, 0x9c, 0xc9, 0xd7, 0xd7, 0x5c, 0xd7, 0x21, 0xe6,
- 0x2a, 0x53, 0xea, 0xae, 0x91, 0xc5, 0x0e, 0x5a, 0x2a, 0xbc, 0x88, 0x88, 0x56, 0x88, 0x31, 0x0d,
- 0xa8, 0x8f, 0x2e, 0xfd, 0x01, 0x92, 0x38, 0xab, 0xa8, 0xb5, 0x65, 0x65, 0x9b, 0x65, 0xc4, 0x34,
- 0x5b, 0x18, 0xde, 0xb9, 0x2e, 0x98, 0x9f, 0x29, 0x5b, 0xdb, 0xce, 0xce, 0x05, 0xce, 0x08, 0x94,
- 0x8f, 0xe7, 0x9a, 0x8a, 0xa3, 0x7e, 0x74, 0xa9, 0x8f, 0x16, 0x20, 0x20, 0x8c, 0x20, 0x5d, 0xec,
- 0x04, 0xc9, 0xed, 0x3d, 0x3b, 0x33, 0x41, 0x49, 0x04, 0xfe, 0x63, 0x63, 0x13, 0x63, 0x47, 0xb6,
- 0xa6, 0x92, 0x4d, 0x45, 0xb0, 0x3f, 0x3a, 0xb5, 0xa6, 0x0b, 0x10, 0x10, 0x46, 0x10, 0xcf, 0x76,
- 0x72, 0x6d, 0x09, 0x76, 0x3d, 0xd9, 0xd1, 0x35, 0x72, 0xc6, 0xfe, 0xfe, 0xcf, 0xfe, 0x9a, 0x0e,
- 0xba, 0xa8, 0x8b, 0xf6, 0x11, 0xa6, 0x3e, 0x89, 0xba, 0xb4, 0xfa, 0xfa, 0x3f, 0xfa, 0xd9, 0xf2,
- 0x30, 0x25, 0x56, 0xdf, 0xf7, 0x97, 0x8a, 0xea, 0x30, 0x82, 0xd1, 0xd1, 0xd4, 0xd1, 0xa2, 0x64,
- 0x4c, 0x55, 0x3c, 0x11, 0x7b, 0xe3, 0x59, 0xc1, 0x4c, 0xfa, 0x5a, 0x5a, 0xc6, 0x5a, 0x33, 0x28,
- 0x82, 0xdc, 0xc4, 0x53, 0x90, 0x57, 0x36, 0xf1, 0x82, 0x09, 0xed, 0xed, 0xcd, 0xed, 0xf5, 0x39,
- 0x6a, 0x9e, 0x22, 0xf8, 0xa7, 0x73, 0x94, 0x40, 0x6a, 0x87, 0x77, 0x77, 0xa5, 0x77, 0xcb, 0x3c,
- 0x88, 0x08, 0x4a, 0xd6, 0x1a, 0xc9, 0x75, 0xa6, 0x88, 0x49, 0xfb, 0xfb, 0x03, 0xfb, 0xb9, 0xcd,
- 0x3c, 0xbd, 0xa2, 0x98, 0xba, 0xc2, 0x49, 0x31, 0x3c, 0x43, 0x74, 0x74, 0xe1, 0x74, 0x6b, 0x7d,
- 0x6e, 0x57, 0xcf, 0xc5, 0x9c, 0x40, 0xd5, 0x09, 0x6e, 0x79, 0x14, 0x14, 0xb6, 0x14, 0x8c, 0x8a,
- 0x0b, 0x77, 0x24, 0x1b, 0xf4, 0xe2, 0xc2, 0xd4, 0x0b, 0x9e, 0x7e, 0x7e, 0xba, 0x7e, 0x2d, 0x38,
- 0x9e, 0xe6, 0x02, 0xe0, 0x31, 0xce, 0x32, 0xcd, 0x9e, 0xb6, 0x07, 0x07, 0xb4, 0x07, 0xe3, 0xbd,
- 0x68, 0x1b, 0xb5, 0x07, 0x5b, 0x8b, 0x55, 0x85, 0x68, 0xf8, 0xa7, 0xa7, 0x4d, 0xa7, 0x09, 0x67,
- 0x67, 0xa5, 0x7c, 0x21, 0x94, 0x5a, 0xd6, 0x18, 0x67, 0x98, 0xba, 0xba, 0xe4, 0xba, 0x63, 0xe9,
- 0xc5, 0xfe, 0xdc, 0x59, 0x1f, 0x56, 0xad, 0xe4, 0xc5, 0x6d, 0xc9, 0xc9, 0xb1, 0xc9, 0xeb, 0x29,
- 0x74, 0x21, 0x73, 0xb4, 0xfa, 0x12, 0x51, 0xb9, 0x74, 0x47, 0x4d, 0x4d, 0x34, 0x4d, 0x1f, 0xe3,
- 0x40, 0xcd, 0xc8, 0x56, 0x36, 0xb6, 0x9a, 0x1a, 0x40, 0x3b, 0xff, 0xff, 0xf3, 0xff, 0xfa, 0x31,
- 0x0c, 0x98, 0xf4, 0x47, 0x4d, 0x55, 0xc3, 0xdb, 0x0c, 0xc1, 0xa5, 0xa5, 0x35, 0xa5, 0xc9, 0x19,
- 0xe7, 0xfc, 0x2f, 0x8d, 0xf8, 0xf5, 0x21, 0x2c, 0xe7, 0xee, 0x87, 0x87, 0xc1, 0x87, 0x54, 0x8b,
- 0x9d, 0xc0, 0x3f, 0x81, 0xb3, 0x4a, 0x72, 0x8b, 0x9d, 0x17, 0xbf, 0xbf, 0x28, 0xbf, 0x40, 0x2a,
- 0x90, 0xfb, 0x61, 0x58, 0x80, 0x63, 0x30, 0xd3, 0x90, 0x08, 0x72, 0x72, 0x69, 0x72, 0xe8, 0xff,
- 0x7a, 0x3c, 0x10, 0x0c, 0x4b, 0xbf, 0x53, 0xa7, 0x7a, 0xf9, 0x38, 0x38, 0xe9, 0x38, 0x14, 0xa1,
- 0x3a, 0xf1, 0xd8, 0x5a, 0x7d, 0x09, 0xc9, 0xbd, 0x3a, 0xc2, 0xc7, 0xc7, 0x1a, 0xc7, 0xee, 0x90,
- 0x35, 0x4f, 0x11, 0x7c, 0xb2, 0xd8, 0x4a, 0x20, 0x35, 0xa2, 0xda, 0xda, 0xb3, 0xda, 0x84, 0x1e,
- 0x34, 0xec, 0xbb, 0xe2, 0xcc, 0xa4, 0xcb, 0xa3, 0x34, 0x7c, 0xb2, 0xb2, 0xc7, 0xb2, 0xe5, 0xd2,
- 0x9f, 0x45, 0xa8, 0x7e, 0x4f, 0xb2, 0xb3, 0x4e, 0x9f, 0x68, 0x6f, 0x6f, 0xc0, 0x6f, 0x82, 0x71,
- 0xb7, 0x93, 0xd5, 0x2f, 0x22, 0x8f, 0x7c, 0xd1, 0xb7, 0xab, 0x37, 0x37, 0x7e, 0x37, 0x71, 0x27,
- 0xf8, 0xe0, 0xd4, 0x5f, 0xdb, 0xe8, 0x65, 0x56, 0xf8, 0xf0, 0xd5, 0xd5, 0x24, 0xd5, 0xe1, 0x98,
- 0x4f, 0x73, 0x01, 0x70, 0xf9, 0x67, 0x19, 0x87, 0x4f, 0x5b, 0xe2, 0xe2, 0x5a, 0xe2, 0x90, 0xbf,
- 0x6b, 0x3d, 0x88, 0x66, 0xd9, 0x0f, 0x15, 0xc3, 0x6b, 0x59, 0x1f, 0x1f, 0xd1, 0x1f, 0xaa, 0xf0,
- 0x83, 0x7f, 0x6e, 0xcd, 0xee, 0x2b, 0xb7, 0x72, 0x83, 0xd7, 0x85, 0x85, 0xb9, 0x85, 0x94, 0xf5,
- 0x5f, 0xd1, 0x33, 0x84, 0x15, 0xab, 0xde, 0x60, 0x5f, 0x25, 0xad, 0xad, 0x16, 0xad, 0x4f, 0x22,
- 0xa7, 0x31, 0xe7, 0xdb, 0xce, 0x43, 0xbb, 0x36, 0xa7, 0xd5, 0x78, 0x78, 0x32, 0x78, 0xae, 0xba,
- 0x1e, 0xbf, 0x51, 0x4c, 0x5d, 0x61, 0xc5, 0xf9, 0x1e, 0xc0, 0x3a, 0x3a, 0x91, 0x3a, 0xd4, 0xdf,
- 0x10, 0xa2, 0x32, 0xf4, 0xec, 0xcc, 0xc7, 0xe7, 0x10, 0x7e, 0x4f, 0x4f, 0x4c, 0x4f, 0xdf, 0x9d,
- 0xc3, 0xb2, 0xa6, 0x9b, 0xd8, 0x9d, 0x2d, 0x68, 0xc3, 0xec, 0x7a, 0x7a, 0x4a, 0x7a, 0x6e, 0xc4,
- 0x78, 0xb9, 0x87, 0xf3, 0xb7, 0x47, 0x92, 0x62, 0x78, 0x86, 0xe8, 0xe8, 0x01, 0xe8, 0xd6, 0xfa,
- 0x2d, 0xbc, 0x3a, 0xf2, 0x28, 0x72, 0x0f, 0x55, 0x2d, 0xe3, 0x53, 0x53, 0xd9, 0x53, 0xd5, 0x2c,
- 0x77, 0x07, 0x4e, 0xd5, 0x78, 0x96, 0x11, 0xff, 0x77, 0xe6, 0xf5, 0xf5, 0xa8, 0xf5, 0xbc, 0x74,
- 0xe3, 0x35, 0xc2, 0xb0, 0xc3, 0xc6, 0x60, 0x65, 0xe3, 0x10, 0xe4, 0xe4, 0xd2, 0xe4, 0x13, 0x3d,
- 0x80, 0x59, 0x53, 0xac, 0x6c, 0xaf, 0xf7, 0x34, 0x80, 0x76, 0x3d, 0x3d, 0x25, 0x3d, 0x37, 0x62,
- },
- { /* 14 */
- 0x0a, 0xaf, 0x45, 0x6e, 0xf6, 0x73, 0x56, 0xfb, 0x47, 0x1c, 0xd5, 0xc8, 0x66, 0x2c, 0x64, 0xb5,
- 0xca, 0x52, 0x68, 0xe5, 0x24, 0x5b, 0xd9, 0x08, 0xeb, 0x1e, 0xe0, 0x5e, 0xac, 0x6b, 0x2f, 0x0a,
- 0xf3, 0x80, 0xf6, 0x75, 0x2e, 0x6a, 0xc5, 0xcb, 0x78, 0x58, 0xd0, 0xcf, 0x08, 0x95, 0x86, 0x89,
- 0x17, 0x4e, 0xcb, 0x70, 0x06, 0xae, 0xb5, 0x41, 0x71, 0x83, 0x10, 0xce, 0xdd, 0xeb, 0x67, 0xc0,
- 0x33, 0x7d, 0xdb, 0xfe, 0xfc, 0x42, 0x4a, 0x38, 0xd4, 0x5a, 0xe5, 0x59, 0xc2, 0xd2, 0xcd, 0x36,
- 0x5f, 0x28, 0xeb, 0xaf, 0x31, 0xb5, 0x88, 0xb3, 0xf8, 0xf2, 0x39, 0x23, 0xe3, 0x99, 0xf0, 0xef,
- 0xa3, 0xb1, 0x9b, 0x83, 0x92, 0x74, 0x30, 0x1f, 0x05, 0xb8, 0xb7, 0x40, 0xbe, 0x36, 0x20, 0x68,
- 0x37, 0x3b, 0x27, 0xad, 0x21, 0xa2, 0xd7, 0x88, 0x43, 0x3d, 0xf8, 0xf7, 0xfe, 0x14, 0x9a, 0xaa,
- 0x2a, 0xda, 0xa9, 0xb3, 0xd1, 0x7f, 0x34, 0x32, 0x75, 0xa2, 0x3d, 0xf1, 0x45, 0xd3, 0x99, 0xdf,
- 0xc9, 0x81, 0x29, 0x49, 0x0d, 0x13, 0xc0, 0x7c, 0x14, 0xa5, 0x99, 0xc3, 0xbd, 0xd8, 0x80, 0x63,
- 0x67, 0x0a, 0x4a, 0x5b, 0x9d, 0xbc, 0x22, 0x5c, 0x3e, 0xdd, 0x9f, 0x78, 0x48, 0xb7, 0x3c, 0x4b,
- 0xd3, 0xf5, 0x1a, 0xa8, 0x09, 0x66, 0xa7, 0x02, 0x4a, 0xe6, 0x38, 0xf6, 0x2b, 0x6a, 0x7b, 0xe3,
- 0x63, 0x4c, 0xb6, 0x08, 0x40, 0x5c, 0xbf, 0xec, 0xa9, 0xba, 0x82, 0xd6, 0x74, 0x71, 0x6b, 0xd7,
- 0x84, 0x51, 0xca, 0xa1, 0x41, 0xd0, 0xd6, 0x12, 0x5f, 0xda, 0x3b, 0x4a, 0xb0, 0xbc, 0x25, 0xf7,
- 0xf7, 0xc6, 0x0a, 0x26, 0xf3, 0x8a, 0x58, 0x7b, 0xef, 0x3f, 0xcd, 0x61, 0x34, 0x53, 0xd1, 0x15,
- 0x3c, 0x64, 0x5d, 0xa7, 0x71, 0xe9, 0x37, 0x5f, 0x51, 0x48, 0xbb, 0xf5, 0x97, 0xe8, 0x9b, 0x38,
- 0xea, 0x27, 0x84, 0x38, 0x03, 0x57, 0xbb, 0xc1, 0xd9, 0xa0, 0x08, 0x67, 0x8f, 0x94, 0xd2, 0x60,
- 0x65, 0x29, 0x34, 0x93, 0x12, 0xcc, 0x8d, 0x04, 0x94, 0x0f, 0x70, 0x2f, 0x56, 0xd4, 0xf6, 0x05,
- 0xd0, 0x26, 0x5b, 0x04, 0x20, 0x2e, 0xbe, 0x76, 0xb5, 0x5d, 0x41, 0x6b, 0x3a, 0xd9, 0xd4, 0x8a,
- 0x9e, 0x25, 0xf9, 0x40, 0x45, 0xa5, 0xb1, 0x6c, 0x01, 0x99, 0x9a, 0x7f, 0x26, 0x0e, 0xde, 0x77,
- 0x18, 0x57, 0x4d, 0x29, 0x8b, 0x05, 0xc8, 0x26, 0xf4, 0x91, 0x4e, 0x62, 0x88, 0xd1, 0x31, 0xce,
- 0xf4, 0x15, 0x4b, 0x8a, 0xda, 0xc2, 0x41, 0x0f, 0x10, 0x84, 0xb4, 0xfc, 0x25, 0xe0, 0x7e, 0x7c,
- 0xaf, 0x7b, 0x5c, 0x76, 0x36, 0x97, 0x54, 0x0c, 0x7f, 0x11, 0x90, 0x71, 0xfa, 0xbf, 0xd9, 0x0f,
- 0xcc, 0x37, 0xea, 0x7e, 0x76, 0xcb, 0xeb, 0xe0, 0xd6, 0xab, 0x12, 0xa7, 0x8e, 0xce, 0xb2, 0xd8,
- 0x7a, 0xeb, 0xc4, 0x45, 0x6d, 0x61, 0xc1, 0xe6, 0x08, 0x42, 0x5a, 0x7e, 0xf3, 0x70, 0x3f, 0x3e,
- 0x83, 0xc4, 0x77, 0x5e, 0xb5, 0x78, 0x52, 0xd6, 0x37, 0x06, 0x5f, 0x79, 0x9d, 0xc9, 0xdd, 0x02,
- 0x9d, 0xf6, 0xb8, 0xec, 0x6c, 0xed, 0xa8, 0x18, 0xfe, 0x22, 0xe3, 0xe2, 0x37, 0xbd, 0x71, 0x1e,
- 0x81, 0xe7, 0x09, 0x96, 0x3a, 0x08, 0xfd, 0x8e, 0x9d, 0xd4, 0xb0, 0x2e, 0x83, 0xaa, 0x17, 0x4c,
- 0xad, 0x58, 0x22, 0xbe, 0xb9, 0xe7, 0xfb, 0x54, 0xd5, 0xc3, 0x7f, 0x26, 0xe4, 0xdc, 0x13, 0x41,
- 0xa9, 0x1e, 0xde, 0xed, 0x64, 0x07, 0x66, 0xe4, 0x42, 0xa4, 0x62, 0x88, 0xd8, 0x1a, 0x44, 0xdd,
- 0xfc, 0x99, 0x70, 0x2c, 0xa3, 0xc1, 0xb8, 0xac, 0xfd, 0x4a, 0x8e, 0x63, 0x5d, 0xaf, 0xd0, 0x87,
- 0x73, 0x97, 0xc0, 0x87, 0xb2, 0x5a, 0x8e, 0x69, 0xb0, 0xe5, 0xf6, 0x2b, 0x84, 0xef, 0xf4, 0xe2,
- 0xb0, 0xb9, 0xac, 0xa0, 0x49, 0x3a, 0x18, 0xee, 0xe3, 0x5c, 0xba, 0x20, 0x5f, 0x1b, 0x10, 0x34,
- 0x77, 0xd1, 0x3c, 0xd4, 0x6f, 0xba, 0x13, 0xd9, 0x27, 0x82, 0xeb, 0x85, 0xb8, 0x29, 0xa3, 0x7e,
- 0xa5, 0xd4, 0x19, 0x18, 0xc0, 0xe4, 0x02, 0xf7, 0x38, 0x0d, 0x45, 0xb9, 0x9c, 0x93, 0xbd, 0xba,
- 0x46, 0x8f, 0x99, 0xe2, 0x1c, 0x88, 0xf6, 0xb9, 0x59, 0x0a, 0xe1, 0x8b, 0x64, 0x98, 0xa4, 0x06,
- 0x10, 0xdb, 0x76, 0x8f, 0xf2, 0x06, 0x31, 0x85, 0x19, 0x5f, 0x74, 0xfd, 0xf0, 0x9e, 0x9f, 0x35,
- 0x2b, 0x2a, 0x96, 0xd7, 0x77, 0x47, 0x82, 0x1e, 0x20, 0xcb, 0xab, 0x3b, 0x4a, 0x03, 0xfc, 0xf8,
- 0x87, 0x82, 0x8b, 0x0d, 0x68, 0x98, 0xcf, 0x66, 0xa0, 0x61, 0x42, 0xd7, 0xa1, 0x0f, 0x8a, 0x9e,
- 0xf9, 0x2f, 0xb3, 0x1b, 0xd8, 0x19, 0x93, 0x30, 0x3f, 0x44, 0x05, 0x07, 0x6e, 0xb9, 0xe2, 0x3c,
- 0xd8, 0xaa, 0x60, 0xa2, 0x59, 0x2d, 0x47, 0xd5, 0x58, 0x93, 0x7b, 0xf4, 0x42, 0x96, 0x7a, 0x71,
- 0x80, 0x17, 0x36, 0xf2, 0x9c, 0x30, 0x4b, 0xa2, 0xc8, 0xbd, 0x26, 0xe4, 0x8c, 0x7a, 0x72, 0x6b,
- 0x34, 0xe8, 0x66, 0x01, 0x08, 0xea, 0xce, 0xfc, 0xbc, 0x86, 0x81, 0x6a, 0xef, 0xa7, 0x35, 0xc3,
- 0x31, 0x5e, 0xa5, 0x36, 0x73, 0x32, 0xe5, 0x60, 0x7e, 0x88, 0x0a, 0x0e, 0xdc, 0xb1, 0x07, 0x78,
- 0x6f, 0x86, 0x71, 0xfd, 0xe4, 0xbf, 0xdb, 0xff, 0xd3, 0x13, 0xa5, 0xe7, 0x30, 0xf8, 0x92, 0xb0,
- 0x4d, 0xd0, 0xe3, 0xe8, 0x4c, 0xc3, 0x16, 0x6e, 0x4b, 0x7f, 0xa2, 0x89, 0x0d, 0x64, 0xa5, 0x94,
- 0xd5, 0x90, 0x98, 0x33, 0x5b, 0xf6, 0x95, 0xea, 0x77, 0x53, 0xca, 0x0f, 0x09, 0xcf, 0xe6, 0x31,
- 0xa6, 0x07, 0x58, 0xb4, 0xe9, 0xac, 0x1b, 0x83, 0xc7, 0xb6, 0x3c, 0x24, 0x8d, 0x20, 0x12, 0xd3,
- 0xba, 0x16, 0xe9, 0xce, 0xbf, 0x49, 0x4e, 0x15, 0xa4, 0x40, 0x6f, 0xe8, 0x39, 0x37, 0x74, 0x81,
- 0x62, 0xbc, 0x89, 0x6c, 0xe6, 0x64, 0x09, 0xc0, 0xfc, 0xd3, 0x14, 0x1c, 0x7b, 0xa1, 0x0e, 0xf0,
- 0x9a, 0x63, 0x05, 0x13, 0x98, 0x45, 0x2c, 0xdc, 0x96, 0xfe, 0x87, 0xd1, 0x1a, 0xc8, 0x89, 0xeb,
- 0x61, 0x6f, 0xc8, 0xc0, 0xcf, 0x2c, 0x10, 0xb4, 0x03, 0x68, 0x6d, 0x81, 0x6a, 0x12, 0xa1, 0x99,
- 0x5d, 0x0b, 0x95, 0x67, 0xbe, 0xc5, 0x27, 0xeb, 0x52, 0x20, 0xd6, 0x74, 0xfd, 0xfa, 0x3a, 0xa1,
- 0xa8, 0xee, 0xe1, 0x89, 0xc2, 0x3f, 0xd0, 0xc8, 0x17, 0xcd, 0xf4, 0x42, 0xd7, 0xca, 0x21, 0xfa,
- 0x98, 0x40, 0x7b, 0xdb, 0x17, 0x35, 0x83, 0x84, 0x3c, 0x2c, 0x68, 0x86, 0x04, 0xab, 0x43, 0xa5,
- 0x21, 0x85, 0xd3, 0xb9, 0x81, 0x34, 0xd4, 0xe5, 0x67, 0xd7, 0x7e, 0xf3, 0x2c, 0x2f, 0x98, 0x4d,
- 0x6d, 0xa5, 0x0f, 0x35, 0x6b, 0xcf, 0x74, 0xa7, 0x79, 0xc1, 0x4a, 0xb0, 0x2e, 0x9b, 0x58, 0xfe,
- 0xfa, 0xfc, 0xf2, 0xb7, 0xf1, 0x51, 0x8a, 0x44, 0xc0, 0xff, 0x7c, 0x9a, 0x7f, 0x0a, 0x4d, 0x55,
- 0x1d, 0xe1, 0x8e, 0x1e, 0xf0, 0xdd, 0xe3, 0xba, 0x36, 0x9f, 0xc5, 0x06, 0xbb, 0xc7, 0x03, 0x75,
- 0xe2, 0xab, 0xbf, 0x9e, 0x7a, 0x54, 0x42, 0x62, 0x34, 0x6e, 0x32, 0xf8, 0xf7, 0xdb, 0x7c, 0x9b,
- 0x48, 0x66, 0x20, 0xdf, 0x37, 0x1b, 0x3d, 0xf2, 0x89, 0x71, 0x29, 0xed, 0x3e, 0x72, 0x97, 0x2f,
- 0x93, 0x1f, 0x01, 0xd1, 0x47, 0x7e, 0x63, 0x53, 0x2e, 0x59, 0x2b, 0x84, 0x6d, 0x57, 0x42, 0x37,
- 0xb3, 0x6a, 0xed, 0x0c, 0x60, 0x72, 0x01, 0x9a, 0x1c, 0xe7, 0xc3, 0xbd, 0x4e, 0xa8, 0xbf, 0x5d,
- 0x57, 0xa4, 0xd0, 0x09, 0x48, 0xb6, 0x71, 0x10, 0x15, 0x3c, 0x03, 0xbc, 0x9b, 0xd6, 0x5e, 0x14,
- 0x70, 0x44, 0x81, 0x2b, 0x9b, 0x12, 0x97, 0x1d, 0x4f, 0x5e, 0x8f, 0xb6, 0x95, 0x5c, 0x5b, 0x8b,
- 0x19, 0xa7, 0x72, 0x4d, 0x2d, 0x3d, 0x7e, 0x0a, 0xa1, 0xf8, 0xd8, 0xa8, 0x87, 0x01, 0x54, 0xe9,
- 0x6e, 0x76, 0x4e, 0x99, 0x42, 0x87, 0x6d, 0xd3, 0x86, 0x7a, 0x33, 0x2d, 0x3f, 0x28, 0xf7, 0x97,
- 0xbc, 0x73, 0x6b, 0x55, 0xed, 0xd9, 0x7c, 0xfd, 0x99, 0xf5, 0x9d, 0x11, 0x1b, 0x92, 0xe9, 0x53,
- 0x3d, 0x94, 0x62, 0xc3, 0xd7, 0xd1, 0x81, 0x73, 0x04, 0x21, 0x2d, 0x3f, 0x98, 0x38, 0xfe, 0x1f,
- 0x13, 0x08, 0x37, 0x23, 0xdb, 0x4e, 0x28, 0xf1, 0xe6, 0xe4, 0x0d, 0x60, 0xe1, 0x2d, 0x30, 0x5c,
- 0x86, 0x72, 0xb4, 0x69, 0xce, 0xa0, 0x79, 0x4a, 0xf5, 0x08, 0xd4, 0x1d, 0xae, 0xdf, 0xef, 0xb9,
- 0xdb, 0x79, 0x21, 0x0e, 0x70, 0x65, 0x5e, 0xa1, 0xa7, 0x28, 0x02, 0x69, 0x53, 0x25, 0xd5, 0x18,
- 0x4a, 0x45, 0x5e, 0x17, 0xb8, 0x6b, 0x92, 0xaa, 0x23, 0xa3, 0xc6, 0xba, 0x20, 0x11, 0x5d, 0x61,
- 0x03, 0xd3, 0x41, 0xac, 0x29, 0x48, 0x19, 0x74, 0xff, 0xbb, 0x79, 0x9d, 0x11, 0xb3, 0xaf, 0x69,
- 0x32, 0x8d, 0xe4, 0x9a, 0x5a, 0x7a, 0xfc, 0x14, 0x81, 0x33, 0x73, 0x93, 0xcd, 0x02, 0xa8, 0x11,
- 0xbb, 0xe6, 0xd6, 0xaa, 0x19, 0x71, 0xf8, 0x39, 0xf1, 0x29, 0xf9, 0x22, 0x36, 0xe7, 0x11, 0xa6,
- 0x47, 0x7f, 0xa6, 0x86, 0xba, 0xb0, 0x40, 0x95, 0x0c, 0x63, 0x77, 0x41, 0x6b, 0x48, 0xc1, 0x21,
- 0x59, 0x4d, 0x69, 0x34, 0x63, 0x25, 0xba, 0x5b, 0xc5, 0x47, 0xcb, 0xda, 0xc1, 0x3c, 0x6d, 0x3d,
- 0x7e, 0xad, 0x38, 0x16, 0xb0, 0x81, 0x5c, 0x56, 0x9f, 0x25, 0x47, 0xd0, 0xcf, 0xb6, 0x68, 0xa2,
- 0xe4, 0xce, 0x3d, 0x05, 0x28, 0xc4, 0x70, 0x8a, 0x09, 0xdb, 0xc0, 0x01, 0xd5, 0x7e, 0xe1, 0x49,
- 0xc1, 0x0d, 0x12, 0xef, 0x74, 0x10, 0x39, 0xdf, 0xf9, 0x6b, 0xa3, 0x5c, 0xc5, 0x97, 0x2e, 0x98,
- 0x45, 0x5c, 0xd8, 0x4e, 0x35, 0xc0, 0xef, 0xcd, 0xa6, 0xb1, 0x98, 0x16, 0x75, 0x2b, 0x0b, 0x6f,
- 0x40, 0xea, 0x1b, 0x79, 0x4e, 0x18, 0xc4, 0x51, 0x64, 0xbf, 0x13, 0x72, 0x46, 0x3d, 0x39, 0xd4,
- 0x9c, 0x06, 0x87, 0x88, 0xca, 0xd5, 0x1e, 0x34, 0xab, 0x4b, 0x75, 0x28, 0x38, 0x6d, 0x14, 0x39,
- 0x2d, 0x4f, 0x14, 0x4c, 0x25, 0xd7, 0xb0, 0xf6, 0x1d, 0x7e, 0x59, 0xc2, 0x68, 0xa6, 0x61, 0x2a,
- 0xda, 0x89, 0x1e, 0x6a, 0xd6, 0x5d, 0xe8, 0x8d, 0xf2, 0x41, 0x94, 0xa3, 0x5c, 0xf5, 0xb0, 0x3f,
- 0x28, 0xf9, 0xd7, 0x7b, 0x5e, 0x0f, 0x9b, 0x6a, 0xdf, 0x70, 0xd2, 0xa6, 0x5b, 0xb0, 0x53, 0x91,
- 0xc0, 0xfd, 0x2d, 0x8b, 0xd2, 0x28, 0x8f, 0xf3, 0xac, 0x02, 0x35, 0x96, 0xca, 0x47, 0x4b, 0xbf,
- 0x76, 0x21, 0x03, 0xb0, 0xc9, 0x82, 0xa5, 0xf5, 0x72, 0xeb, 0x7d, 0x4f, 0xb7, 0xf9, 0xc6, 0x59,
- 0xdf, 0x3f, 0xdd, 0x5d, 0xad, 0x85, 0xc3, 0x11, 0x30, 0x4f, 0x1f, 0xc7, 0x6f, 0xe3, 0x82, 0x84,
- 0x8d, 0x2d, 0xce, 0x63, 0x9e, 0xeb, 0x99, 0x9d, 0xe7, 0x7d, 0x97, 0x1f, 0xc7, 0x23, 0xee, 0x2b,
- 0x8b, 0x48, 0x4c, 0xf8, 0xcc, 0x7b, 0xab, 0x75, 0xda, 0xc8, 0x65, 0xe6, 0xe5, 0x86, 0x73, 0xf9,
- 0x15, 0x6d, 0xb5, 0xb8, 0x89, 0xde, 0x1a, 0x19, 0xdb, 0x51, 0xff, 0x99, 0xc3, 0x88, 0xad, 0x8e,
- 0x5b, 0x6e, 0x17, 0xfc, 0xec, 0x55, 0x15, 0x03, 0x6f, 0x95, 0x24, 0x8d, 0xdf, 0x5f, 0xa7, 0x73,
- 0x66, 0xfa, 0x75, 0x3f, 0x3b, 0x84, 0x94, 0x70, 0x6b, 0xb4, 0x09, 0xb2, 0x47, 0x67, 0x59, 0x6c,
- 0xb5, 0x0f, 0x6f, 0x97, 0x32, 0xe2, 0x33, 0x72, 0x21, 0x52, 0x31, 0x44, 0x6c, 0x0d, 0x22, 0x8f,
- 0xe0, 0x88, 0xc1, 0x56, 0xf5, 0x24, 0xed, 0x3a, 0x9e, 0xbc, 0xdd, 0xaf, 0xe9, 0xb8, 0xb6, 0xd5,
- 0x6c, 0x55, 0x30, 0x51, 0xcd, 0xf7, 0xc2, 0x8b, 0x2c, 0xa8, 0xdc, 0x7a, 0x21, 0x4b, 0x3d, 0xd9,
- 0xa2, 0x41, 0xa4, 0xe7, 0x34, 0x4c, 0x86, 0x33, 0x50, 0xd1, 0x21, 0x8a, 0xb1, 0xe6, 0x45, 0x4f,
- 0xd4, 0x60, 0xa7, 0x57, 0xfd, 0xce, 0x23, 0xc6, 0x22, 0x3a, 0x5c, 0xc5, 0x06, 0x1f, 0x83, 0x16,
- 0x5a, 0x9e, 0x28, 0x98, 0x4a, 0x6d, 0xa3, 0x2f, 0x3a, 0xfc, 0xb2, 0x47, 0xd0, 0x8f, 0xc2, 0x54,
- 0xbf, 0xa0, 0x2a, 0xf9, 0xc4, 0x91, 0x65, 0x89, 0x66, 0x4e, 0xe4, 0x8c, 0x0a, 0x21, 0x46, 0x3a,
- 0x78, 0xc8, 0xba, 0x8d, 0xe2, 0x11, 0x6e, 0xbe, 0xa2, 0x90, 0xb5, 0x29, 0xed, 0x13, 0xf5, 0x70,
- 0x1e, 0x32, 0xcf, 0xb2, 0xd9, 0x95, 0xfa, 0xce, 0xc9, 0x24, 0xbc, 0x9b, 0xaa, 0x74, 0xac, 0x1c,
- 0x07, 0x95, 0xbd, 0xff, 0xf4, 0xa8, 0x84, 0xc4, 0x68, 0xdc, 0x64, 0x33, 0x2d, 0x75, 0xf8, 0xf5,
- 0x82, 0x34, 0x48, 0x3a, 0x13, 0x40, 0xe4, 0xfa, 0x62, 0x6f, 0xc9, 0xb3, 0x92, 0x19, 0xb8, 0x25,
- 0x68, 0x13, 0xcc, 0x02, 0x10, 0x17, 0x5f, 0x3b, 0xbb, 0xcf, 0xc1, 0xd4, 0x1d, 0x8d, 0x6a, 0x45,
- 0x12, 0xf8, 0x08, 0x47, 0x7d, 0x76, 0x9e, 0xdd, 0xb3, 0x8d, 0x9b, 0xaa, 0xee, 0xfd, 0x55, 0x7b,
- 0x58, 0xbd, 0x56, 0x50, 0xc5, 0x1d, 0x0c, 0x77, 0x90, 0x2e, 0x5d, 0x10, 0xce, 0xec, 0x08, 0x1a,
- 0x8f, 0x0e, 0xb0, 0xab, 0x11, 0x9b, 0x36, 0xc5, 0x4d, 0xaf, 0x78, 0x48, 0xd9, 0x40, 0x24, 0x65,
- 0xe1, 0x78, 0xfe, 0x32, 0x53, 0x1c, 0x5b, 0x16, 0xcb, 0xd5, 0x4b, 0x65, 0xe6, 0x68, 0xd3, 0xf2,
- 0x36, 0xcb, 0x18, 0xc9, 0x87, 0x9a, 0x61, 0xa4, 0x16, 0x54, 0x6e, 0x3d, 0xf1, 0xc4, 0xff, 0x8d,
- 0x74, 0x02, 0x7d, 0x78, 0x46, 0xf2, 0x0a, 0xad, 0xd8, 0x39, 0x92, 0x18, 0xa9, 0x9a, 0x0c, 0x17,
- 0xff, 0x4a, 0x31, 0x80, 0x8a, 0x89, 0xa1, 0xd8, 0x02, 0xf1, 0xf7, 0xfe, 0x4c, 0x1c, 0x7f, 0xee,
- 0x3a, 0x01, 0xdf, 0x3c, 0x23, 0x79, 0x05, 0xb7, 0x6c, 0xfd, 0x49, 0x0c, 0xb5, 0x4d, 0x06, 0xea,
- 0x79, 0x38, 0x85, 0xe9, 0x44, 0x29, 0xd8, 0x92, 0xf7, 0xf9, 0x23, 0xe3, 0xe2, 0xc3, 0x90, 0x57,
- 0xdd, 0x1c, 0xa3, 0x95, 0x22, 0xf5, 0x6c, 0x49, 0x9a, 0x9d, 0xf0, 0x90, 0x71, 0x80, 0x48, 0xca,
- 0x54, 0x77, 0x91, 0xa5, 0x61, 0xfe, 0x68, 0x64, 0xea, 0x87, 0x7a, 0x21, 0x8a, 0x65, 0xf1, 0x7d,
- 0x22, 0x56, 0x92, 0x15, 0xa8, 0x7c, 0xcd, 0x91, 0x98, 0x6c, 0x07, 0x6e, 0x3d, 0x9c, 0x37, 0x24,
- 0x05, 0xb6, 0xc3, 0x37, 0x7b, 0xd8, 0x2b, 0x9c, 0xc2, 0x0e, 0x8b, 0x64, 0x33, 0x16, 0x32, 0xbb,
- 0x88, 0x9b, 0x0d, 0x54, 0xe5, 0x33, 0xb2, 0x01, 0x25, 0x73, 0x1c, 0x7b, 0xf4, 0x35, 0xdc, 0x90,
- 0x06, 0x65, 0x82, 0x9b, 0x52, 0x90, 0x32, 0xe8, 0x3d, 0xb5, 0xf2, 0xf9, 0x22, 0xa5, 0x9d, 0xd2,
- 0x53, 0xe2, 0x2c, 0x5a, 0x95, 0x56, 0xec, 0xa0, 0x82, 0x5b, 0x1e, 0x12, 0xa7, 0x10, 0x09, 0x88,
- 0x95, 0x7a, 0x83, 0x4a, 0x15, 0xee, 0x51, 0xbb, 0x13, 0xec, 0xd9, 0x7d, 0x4f, 0xf2, 0xdf, 0xe5,
- 0xe9, 0xf4, 0xc5, 0x94, 0x2a, 0x1f, 0xa2, 0xb5, 0x26, 0x1b, 0x71, 0xfa, 0x9e, 0x27, 0x7d, 0x09,
- 0xec, 0x42, 0x06, 0xa3, 0x51, 0xc7, 0x89, 0x29, 0xe4, 0x15, 0xfa, 0x9e, 0xad, 0x31, 0x4f, 0xb2,
- 0x97, 0x59, 0xfd, 0x82, 0x9a, 0x9e, 0xfe, 0xe3, 0xb9, 0x3e, 0x36, 0x2a, 0x51, 0x91, 0x15, 0xab,
- 0xd1, 0xd6, 0x64, 0x60, 0x86, 0x16, 0x08, 0x5a, 0xe0, 0x34, 0xd7, 0xa1, 0x35, 0x09, 0xb1, 0xad,
- 0x69, 0xe3, 0xf3, 0x66, 0xb6, 0x2f, 0xe9, 0x17, 0xee, 0xa6, 0x57, 0x1e, 0x12, 0x5d, 0x0f, 0x62,
- 0x6a, 0x30, 0xb2, 0xca, 0x9f, 0x67, 0xf0, 0x63, 0x11, 0x1d, 0x2e, 0x83, 0x03, 0xee, 0xa0, 0x0b,
- 0x43, 0x39, 0x5a, 0xd5, 0x67, 0x50, 0xdd, 0x25, 0x9b, 0x04, 0x6a, 0xef, 0x57, 0x8e, 0x96, 0xbd,
- 0x41, 0x1a, 0x24, 0x1d, 0xe8, 0x20, 0x72, 0x7d, 0x31, 0xd6, 0x85, 0xb8, 0x49, 0xed, 0x5c, 0xf3,
- 0xae, 0x8b, 0x63, 0x12, 0x90, 0xaf, 0xe2, 0x20, 0x2a, 0x78, 0x06, 0xbb, 0xf5, 0x6f, 0xbc, 0x28,
- 0x0c, 0xca, 0xc7, 0xf5, 0xa4, 0xe3, 0x64, 0x13, 0x7a, 0xa9, 0x27, 0x31, 0x44, 0x89, 0xf9, 0x67,
- 0x7c, 0x8e, 0x46, 0xde, 0x3f, 0xf1, 0xf3, 0x0e, 0x35, 0xf7, 0xa8, 0x87, 0xd1, 0xd5, 0xa2, 0xec,
- 0x5e, 0xd8, 0xd4, 0xcb, 0x97, 0x8d, 0x3e, 0x9f, 0xad, 0x9b, 0xaf, 0xe9, 0xec, 0x49, 0x95, 0xc8,
- 0x44, 0xac, 0xe7, 0x2a, 0x93, 0xf8, 0x59, 0xe1, 0xf3, 0xd8, 0x0e, 0xdc, 0x7a, 0xfb, 0x6e, 0x48,
- 0x25, 0xc3, 0x2f, 0xea, 0x5c, 0xd4, 0x49, 0x55, 0xf0, 0xb0, 0x63, 0x5d, 0x10, 0xe9, 0xcf, 0xd1,
- 0x09, 0x7c, 0x04, 0xc2, 0xdf, 0x3b, 0x4f, 0x8f, 0xb8, 0xa7, 0xac, 0x55, 0x77, 0x9f, 0xcb, 0xdc,
- 0xbd, 0x83, 0x54, 0x31, 0x4b, 0xe1, 0xca, 0xd1, 0xcc, 0x9c, 0x0b, 0xdb, 0x14, 0x42, 0x8c, 0x74,
- 0x9f, 0xd5, 0xc6, 0x24, 0xe3, 0x9d, 0x07, 0x40, 0x54, 0xf0, 0x0c, 0xb5, 0x29, 0xde, 0xbb, 0x50,
- 0x2e, 0x9c, 0x55, 0xe0, 0x0c, 0x9f, 0xa9, 0x82, 0xe2, 0xc5, 0x20, 0x5f, 0x79, 0x15, 0xce, 0x43,
- 0x1b, 0x84, 0x0c, 0x85, 0xa2, 0x4d, 0xd1, 0x52, 0x0b, 0x2a, 0x37, 0xff, 0x99, 0x62, 0x9e, 0xa7,
- 0xd7, 0xb3, 0xe6, 0xfb, 0xd4, 0x86, 0x3a, 0xb2, 0xdd, 0x81, 0x25, 0x58, 0x17, 0xac, 0x2c, 0x7f,
- 0x8a, 0xb8, 0x73, 0x9c, 0x6a, 0x43, 0x1d, 0x59, 0x8f, 0xa1, 0xf3, 0x2c, 0xea, 0x56, 0x16, 0xde,
- 0x0d, 0x3a, 0xf8, 0x91, 0x02, 0xdb, 0xd2, 0x3f, 0x2f, 0xc0, 0xb1, 0xfb, 0x4b, 0x59, 0x9c, 0x40,
- 0x50, 0x31, 0x6d, 0xf6, 0xbc, 0x1e, 0xf5, 0xd4, 0x7d, 0xe0, 0x67, 0x8f, 0xb6, 0xa3, 0xa6, 0xe1,
- 0x24, 0x33, 0x10, 0x8e, 0xfa, 0xec, 0xff, 0x79, 0xa5, 0xd9, 0xf5, 0x97, 0x1f, 0x39, 0xaa, 0xf6,
- 0xf2, 0x70, 0xc9, 0x11, 0x88, 0x52, 0x73, 0xe7, 0x2d, 0x31, 0x46, 0x05, 0x07, 0x45, 0xe3, 0xae,
- 0x38, 0x22, 0xa1, 0xf4, 0xac, 0x09, 0xaa, 0xef, 0xc6, 0x2f, 0xa6, 0x5b, 0xab, 0x2e, 0xcc, 0xa4,
- 0x7b, 0x1b, 0xfb, 0x21, 0xcb, 0x59, 0x77, 0xca, 0x5d, 0x2b, 0xcc, 0xb4, 0xfc, 0xa0, 0x5a, 0x19,
- 0xa1, 0x92, 0xe5, 0x4b, 0x1d, 0x04, 0x9f, 0x47, 0xaf, 0x6a, 0x58, 0x17, 0xa0, 0x55, 0xea, 0x26,
- 0xbe, 0x50, 0x15, 0x9d, 0x62, 0xa9, 0xd3, 0xa5, 0x33, 0x27, 0x72, 0x46, 0x05, 0xf1, 0x23, 0x1d,
- 0xa7, 0xf7, 0x67, 0xd0, 0x4f, 0x94, 0xad, 0xaf, 0x92, 0xdf, 0xaa, 0xee, 0x82, 0xf0, 0x77, 0xf4,
- 0x99, 0xb0, 0x44, 0xbf, 0xb1, 0x0d, 0x35, 0xa8, 0x69, 0x45, 0xfe, 0x4c, 0x0b, 0x7b, 0x26, 0x82,
- 0xf1, 0xa3, 0x88, 0xbd, 0xa1, 0x1a, 0x6a, 0x93, 0xd2, 0x8a, 0x3f, 0x98, 0x16, 0xf6, 0x4c, 0xc7,
- 0xeb, 0xd7, 0xbb, 0x5c, 0xa5, 0x6f, 0x0d, 0xed, 0x8c, 0xc9, 0x9e, 0xad, 0x80, 0x44, 0xb7, 0x47,
- 0x39, 0xd2, 0x9e, 0x90, 0x0a, 0x31, 0x1c, 0xc3, 0x93, 0x46, 0x30, 0x91, 0xa4, 0xfe, 0xa9, 0x83,
- 0xb7, 0x2c, 0x11, 0x5f, 0xbd, 0x92, 0x9c, 0x2a, 0x8b, 0x80, 0xde, 0x13, 0x72, 0x6e, 0xe8, 0xc1,
- 0x1c, 0x11, 0xb1, 0x7a, 0x56, 0xe5, 0x55, 0x96, 0x63, 0xf6, 0x53, 0xcc, 0xb4, 0x17, 0x66, 0x52,
- 0x01, 0xf0, 0x3f, 0x64, 0xa6, 0x38, 0xb6, 0x2c, 0x55, 0x69, 0x96, 0xca, 0x0f, 0xd0, 0x65, 0x27,
- 0xef, 0x91, 0x47, 0x0f, 0x78, 0x8f, 0x90, 0x5d, 0x1b, 0xae, 0x83, 0x03, 0xbc, 0x82, 0xe0, 0xdb,
- 0x1f, 0xc2, 0xf0, 0xd6, 0x7f, 0xad, 0x4c, 0xe2, 0x9c, 0x4d, 0x2a, 0x51, 0xa5, 0xa4, 0xc9, 0x3b,
- 0x92, 0xef, 0x3e, 0xb5, 0xe1, 0x46, 0xd5, 0x7f, 0x7b, 0x30, 0xbd, 0x4e, 0x62, 0x87, 0x27, 0x10,
- 0x1a, 0x74, 0x33, 0xe1, 0x04, 0x75, 0x67, 0x7e, 0x5e, 0x43, 0xa1, 0x35, 0x96, 0xb2, 0xfb, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x85, 0xa1, 0xf5, 0xc5, 0xe7, 0xe8, 0x60, 0x3e, 0x0a, 0xb3, 0xad, 0x80, 0xbf, 0x6c, 0x40, 0xd0,
- 0x5c, 0xfb, 0xaa, 0x03, 0x18, 0xfd, 0x91, 0xc7, 0x07, 0x49, 0x40, 0xbe, 0xf2, 0x2a, 0x5f, 0x86,
- 0xed, 0xb2, 0x39, 0xc7, 0xf7, 0xff, 0x3f, 0x05, 0xb1, 0x7c, 0x6c, 0x54, 0xa2, 0xe1, 0x2a, 0x95,
- 0x56, 0x54, 0xef, 0x6d, 0xee, 0x8e, 0xc7, 0x3c, 0x40, 0x55, 0x95, 0x76, 0x94, 0x06, 0x3b, 0x33,
- 0xc3, 0x2e, 0x6c, 0x27, 0xfb, 0x60, 0x96, 0x87, 0x53, 0xb9, 0x4c, 0x0b, 0xdb, 0xf4, 0xe4, 0xd6,
- 0x0f, 0x19, 0x86, 0x59, 0x8d, 0xab, 0x7d, 0x67, 0x85, 0x12, 0x5e, 0xac, 0x55, 0x3a, 0x56, 0x0e,
- 0xe8, 0x04, 0xfa, 0xf0, 0x8c, 0x27, 0x14, 0x99, 0x73, 0x72, 0xe7, 0x30, 0x91, 0xf7, 0x18, 0x2e,
- 0xc2, 0xde, 0x53, 0x43, 0x5d, 0x58, 0x20, 0xab, 0x06, 0xd0, 0xda, 0xc1, 0xd4, 0x24, 0x81, 0xf1,
- 0xd9, 0x5a, 0x5f, 0xc6, 0xff, 0x15, 0xf1, 0xf9, 0x0d, 0xfa, 0xed, 0x3e, 0x4d, 0x46, 0x1f, 0x56,
- 0xe6, 0xed, 0x43, 0xcd, 0xa7, 0xb4, 0xdf, 0xd2, 0xa3, 0x09, 0x2f, 0x56, 0xcb, 0x1d, 0x2b, 0x07,
- 0xb6, 0xdc, 0x2e, 0x3b, 0x1b, 0xaa, 0x2a, 0x06, 0xde, 0xe9, 0x48, 0xd9, 0x7d, 0xbe, 0x8d, 0xe6,
- 0x11, 0x2b, 0x49, 0xeb, 0x54, 0x3e, 0x87, 0xa9, 0x4c, 0x36, 0xe2, 0x37, 0xff, 0x4e, 0xfa, 0x12,
- 0xc6, 0x98, 0xaf, 0x10, 0x80, 0xb8, 0xbd, 0x1b, 0x91, 0xb7, 0xc7, 0x6f, 0xe8, 0xe2, 0xd6, 0x6d,
- 0x55, 0x87, 0xae, 0xc1, 0xc7, 0xc6, 0xde, 0x48, 0xbf, 0xee, 0xec, 0xeb, 0x85, 0xb5, 0x94, 0x5a,
- 0x94, 0x8a, 0xbc, 0x2e, 0xb3, 0xd6, 0xe7, 0x97, 0x46, 0x85, 0x4f, 0xb7, 0x40, 0x22, 0xba, 0xc2,
- 0xb1, 0x49, 0x93, 0xc4, 0xef, 0x02, 0xae, 0xc2, 0xb6, 0x35, 0x2c, 0xea, 0x50, 0xcb, 0x75, 0x13,
- 0x4b, 0xb5, 0x61, 0x73, 0x1e, 0x53, 0x24, 0x86, 0x76, 0xca, 0x50, 0x70, 0x2f, 0xc1, 0x38, 0x46,
- 0xb9, 0xc5, 0xa8, 0x62, 0x96, 0x01, 0x57, 0x61, 0x5b, 0xfb, 0x16, 0x75, 0x28, 0x84, 0xdb, 0xe8,
- 0x4f, 0xf3, 0x9d, 0x20, 0xc3, 0xb3, 0xb9, 0x36, 0xe1, 0xad, 0x4d, 0xde, 0x13, 0x07, 0x6f, 0xda,
- 0xf6, 0x36, 0x35, 0x42, 0x55, 0xb2, 0xee, 0x57, 0xba, 0x56, 0x5b, 0xab, 0x3b, 0x83, 0xb4, 0x32,
- 0x9b, 0x93, 0x3a, 0x77, 0x3e, 0x7d, 0x9a, 0xf0, 0xc3, 0x97, 0x11, 0x1b, 0x15, 0x18, 0xec, 0xcc,
- 0xd2, 0x05, 0x25, 0xcc, 0xaf, 0x5e, 0x11, 0x2e, 0x1f, 0x8f, 0xae, 0x3c, 0x24, 0xba, 0x1e, 0xc4,
- 0x7f, 0x5d, 0x07, 0x72, 0x16, 0xb9, 0xea, 0x7a, 0xca, 0x4c, 0xd1, 0x1a, 0xc0, 0x66, 0x0d, 0x85,
- 0xde, 0xcf, 0xe2, 0x39, 0x0b, 0xbd, 0x75, 0x3d, 0x65, 0x26, 0x89, 0x0d, 0x60, 0x33, 0xe7, 0xa3,
- 0x75, 0xf2, 0x42, 0x1c, 0xe0, 0xca, 0xbc, 0x81, 0x8d, 0x50, 0x04, 0xd2, 0xa6, 0x4a, 0x69, 0x30,
- 0x14, 0x9d, 0x8a, 0xdc, 0x2f, 0xe6, 0xac, 0x35, 0x8e, 0x38, 0x69, 0x53, 0xcc, 0x58, 0xc8, 0xa9,
- 0x20, 0x75, 0xec, 0xdd, 0x27, 0x0c, 0x62, 0xc9, 0x32, 0xbe, 0xe8, 0x39, 0x23, 0xff, 0xfd, 0x6a,
- 0xdc, 0xec, 0x9c, 0xf1, 0x84, 0xcd, 0xda, 0x65, 0xcf, 0xf4, 0x66, 0x5a, 0x7e, 0x50, 0x2d, 0xed,
- 0xac, 0xa8, 0x1d, 0xda, 0x1f, 0xdf, 0x4d, 0x78, 0x80, 0xaa, 0xe9, 0xec, 0xeb, 0x0c, 0x76, 0x66,
- 0xab, 0x3d, 0xa0, 0x25, 0xeb, 0x77, 0xc9, 0xbc, 0xe8, 0x76, 0x8d, 0xdf, 0xc6, 0x79, 0x8e, 0x93,
- 0xf8, 0xdf, 0x8c, 0x7f, 0x7e, 0x21, 0x25, 0x1c, 0x6a, 0x2d, 0x93, 0xcd, 0x61, 0x69, 0x87, 0x1b,
- 0xfb, 0x0c, 0xcd, 0xd3, 0x57, 0x69, 0x3c, 0x68, 0x95, 0x96, 0xea, 0x50, 0x70, 0xda, 0x28, 0x72,
- 0xcd, 0xc7, 0xd5, 0x1a, 0xd0, 0xf3, 0x5d, 0xcc, 0x83, 0xc2, 0x84, 0x6d, 0x81, 0x1e, 0xd7, 0xff,
- 0xf0, 0x53, 0xb7, 0xd9, 0x07, 0x22, 0xdc, 0xbf, 0x87, 0xe3, 0xa9, 0x52, 0x19, 0x26, 0x29, 0xe0,
- 0xee, 0x61, 0x78, 0x6b, 0xde, 0xb7, 0x26, 0x71, 0x4e, 0xc7, 0x15, 0xc9, 0xb3, 0x52, 0x85, 0xfc,
- 0xce, 0x14, 0x94, 0xb6, 0xf9, 0xbb, 0x44, 0xb8, 0x7c, 0x79, 0xfd, 0xf0, 0x90, 0xad, 0x78, 0x96,
- 0xe5, 0x3e, 0x02, 0x61, 0x8e, 0xfc, 0xc6, 0xa6, 0x5c, 0xb2, 0x56, 0xcb, 0xda, 0xae, 0x84, 0x6e,
- 0x7d, 0x7e, 0x79, 0xba, 0x99, 0xc9, 0x45, 0x22, 0x60, 0x9e, 0x3e, 0x4d, 0xde, 0x05, 0xc7, 0xcb,
- 0xb8, 0x35, 0x97, 0x06, 0x30, 0x39, 0xe1, 0x4d, 0x0e, 0x92, 0x80, 0xbf, 0x27, 0x54, 0xbe, 0xcf,
- 0x04, 0x46, 0xfc, 0x53, 0xdd, 0xe0, 0x9d, 0xb0, 0x97, 0x67, 0x1d, 0xae, 0x3c, 0xc6, 0x57, 0x9c,
- 0xaa, 0xcd, 0x9f, 0x41, 0x4d, 0x4f, 0x7f, 0x90, 0xbd, 0x1f, 0x1b, 0x15, 0xc9, 0xa9, 0xeb, 0xb4,
- 0xf5, 0xe5, 0x74, 0xee, 0x7c, 0xfa, 0xf7, 0x23, 0x45, 0xed, 0x22, 0x36, 0x2a, 0x30, 0x1b, 0x5b,
- 0xc7, 0x68, 0x90, 0x74, 0x26, 0x80, 0x0b, 0x37, 0xc4, 0xde, 0x51, 0xa5, 0xe7, 0x32, 0xb3, 0x4a,
- 0xa0, 0x62, 0xda, 0x2f, 0xbb, 0x3c, 0x29, 0x6b, 0xfa, 0x03, 0xce, 0xdd, 0xaf, 0x85, 0x8f, 0x01,
- 0x42, 0xc9, 0x65, 0xb1, 0xc1, 0x68, 0x6b, 0x09, 0xce, 0x6d, 0xfc, 0x25, 0x58, 0x5e, 0xf3, 0x9a,
- 0xcb, 0xa2, 0x57, 0x81, 0x82, 0x63, 0x6f, 0x24, 0xbe, 0x77, 0x76, 0x94, 0xa3, 0xbb, 0x4a, 0x2d,
- 0x71, 0xb4, 0xbe, 0x4f, 0x3d, 0x2a, 0x21, 0x31, 0x1a, 0x37, 0x19, 0x7c, 0x9a, 0x8c, 0x3e, 0xac,
- 0xe3, 0x5b, 0x80, 0xfa, 0xdc, 0x6c, 0xf4, 0x4e, 0x61, 0x07, 0xa4, 0x32, 0xf8, 0x0b, 0x19, 0xbc,
- 0xfd, 0x69, 0x4f, 0x48, 0x05, 0xf9, 0x0e, 0x80, 0xa8, 0x23, 0x18, 0xa9, 0x52, 0x7f, 0xb5, 0xa0,
- 0x90, 0xcc, 0x40, 0x7d, 0x6e, 0x36, 0x7a, 0x27, 0xd1, 0xe2, 0x52, 0x19, 0x7c, 0xe4, 0xed, 0x5e,
- 0x02, 0x23, 0x7e, 0xc8, 0x8f, 0x70, 0xaf, 0x58, 0xaa, 0xd2, 0xef, 0x57, 0x1e, 0x63, 0xca, 0x4e,
- 0x26, 0x10, 0x6e, 0x46, 0x75, 0x9c, 0x50, 0x21, 0x0f, 0x0b, 0x1a, 0xc0, 0x01, 0x5a, 0x60, 0xb8,
- 0x96, 0xa9, 0xc2, 0xe6, 0x3c, 0xa6, 0x48, 0xcf, 0xec, 0x57, 0xa0, 0xe0, 0x5e, 0x41, 0x70, 0x8c,
- 0xcf, 0xe4, 0xab, 0xd2, 0x5f, 0x83, 0xf2, 0x94, 0x29, 0x10, 0x6b, 0x3a, 0x9f, 0x7d, 0x1d, 0xb1,
- 0x89, 0x6b, 0x32, 0x30, 0x43, 0x0b, 0x04, 0x2d, 0x70, 0x1a, 0x8a, 0xb1, 0xfb, 0xe5, 0xb9, 0xb7,
- 0x49, 0x96, 0x1f, 0xbb, 0x91, 0x23, 0x8b, 0xde, 0xdc, 0x18, 0xbf, 0x27, 0x31, 0xa2, 0xf2, 0x08,
- 0x2f, 0x6c, 0x6a, 0x84, 0xaa, 0xa7, 0x1f, 0xae, 0xb7, 0xac, 0xb6, 0x95, 0x76, 0xc5, 0xab, 0x64,
- 0x52, 0x12, 0x13, 0x3e, 0x33, 0x6e, 0x5a, 0x8c, 0xd7, 0x32, 0x88, 0xd8, 0xa8, 0xc0, 0x6c, 0xaf,
- 0xb4, 0xff, 0x50, 0xf3, 0x94, 0xda, 0x85, 0x5e, 0x74, 0x3b, 0xa7, 0x8e, 0x63, 0xdd, 0x47, 0xa8,
- 0x08, 0x8c, 0x3b, 0xa6, 0x79, 0x03, 0xf9, 0xa3, 0xed, 0xce, 0x3a, 0x9f, 0x78, 0x4f, 0xae, 0xfb,
- 0x3f, 0xb7, 0x1c, 0x0b, 0x58, 0xa1, 0x2e, 0x2b, 0xae, 0xf3, 0xc2, 0x68, 0x86, 0x5b, 0x34, 0x51,
- 0xd6, 0x43, 0xd9, 0x9f, 0x72, 0xbe, 0x8c, 0x9e, 0x88, 0xe8, 0xb3, 0x92, 0x18, 0x7c, 0x49, 0x58,
- 0x23, 0xa6, 0xad, 0x71, 0x0e, 0x44, 0x7b, 0xbd, 0xcd, 0x05, 0x91, 0xa4, 0x32, 0x4c, 0x52, 0x03,
- 0x4e, 0x03, 0xa2, 0x44, 0x65, 0x8b, 0x0f, 0x1a, 0xb4, 0xc4, 0xdb, 0x14, 0x1c, 0xd7, 0x0a, 0xfd,
- 0x60, 0x9f, 0xf7, 0xa4, 0x69, 0x14, 0xa6, 0x98, 0x56, 0x01, 0xfb, 0x4b, 0x65, 0xc2, 0xc4, 0xbe,
- 0x0b, 0x5f, 0x7a, 0x0a, 0x50, 0x4b, 0xe0, 0xd7, 0x12, 0x75, 0x43, 0x02, 0x69, 0xfc, 0x01, 0x92,
- 0xc4, 0xbb, 0xd1, 0xd8, 0x0f, 0xc8, 0x12, 0x43, 0x3b, 0x65, 0x28, 0x38, 0xf6, 0x81, 0x1c, 0x23,
- 0x35, 0x18, 0x59, 0x65, 0xae, 0xd2, 0x78, 0xd0, 0xe9, 0xef, 0x17, 0xa0, 0xe0, 0x77, 0x50, 0xe4,
- 0x0e, 0xe9, 0xb9, 0x3d, 0x2b, 0x93, 0xcb, 0x4b, 0xd0, 0x7b, 0xc8, 0x66, 0x5a, 0xea, 0x33, 0x29,
- 0x64, 0xd9, 0x0b, 0xf7, 0xb4, 0xf4, 0x3b, 0x28, 0xc1, 0x66, 0xe6, 0xe5, 0x59, 0x04, 0x93, 0x22,
- 0x3b, 0xf1, 0xe0, 0x58, 0x85, 0x41, 0xb3, 0x9b, 0x39, 0x94, 0xdf, 0xc6, 0xba, 0x9d, 0x63, 0xcd,
- 0x30, 0xae, 0x9a, 0x52, 0xd5, 0x0a, 0x53, 0x4c, 0x2b, 0xe1, 0x9c, 0xc4, 0xd3, 0x61, 0x62, 0x5f,
- 0xc5, 0x4b, 0xee, 0xbc, 0xa9, 0xf0, 0xa4, 0x6f, 0x6e, 0x0c, 0xbe, 0xf2, 0xf9, 0x51, 0x79, 0x04,
- 0x6b, 0xc0, 0x8d, 0xae, 0x39, 0x5f, 0x46, 0x4f, 0x44, 0x74, 0xb8, 0x49, 0x0c, 0x3e, 0xc5, 0x2c,
- 0x91, 0x3c, 0x7f, 0x19, 0xc8, 0x0e, 0xcc, 0x0b, 0x84, 0x8b, 0xc4, 0xd3, 0x73, 0x34, 0x88, 0x79,
- 0x4c, 0x20, 0xdc, 0x8c, 0xea, 0xfb, 0xa0, 0x42, 0x1e, 0x16, 0x34, 0x43, 0x02, 0xb4, 0xc0, 0xb3,
- 0xb2, 0x9a, 0xd2, 0x68, 0xc6, 0x4a, 0xb7, 0xb6, 0x49, 0x8e, 0x55, 0x77, 0x41, 0x78, 0xda, 0x7a,
- 0xfe, 0xba, 0x0e, 0xe4, 0x2c, 0xb1, 0x17, 0xf4, 0x57, 0x98, 0x61, 0x34, 0x43, 0xcc, 0x1a, 0xc9,
- 0xe7, 0x1d, 0x7c, 0xa9, 0x01, 0x8c, 0x69, 0xfe, 0xf6, 0x60, 0xb9, 0x9c, 0xc4, 0xcd, 0x4e, 0x20,
- 0x27, 0xe0, 0x51, 0x22, 0xd3, 0xa4, 0xe6, 0x0d, 0x5a, 0x62, 0x8c, 0x0a, 0x0e, 0x8a, 0x05, 0x9f,
- 0x8c, 0xdd, 0xf1, 0x07, 0x38, 0xd3, 0x2f, 0xb1, 0xb2, 0x14, 0x01, 0xd5, 0xc8, 0xf3, 0x8b, 0x0c,
- 0x3e, 0x47, 0x23, 0x6f, 0xfe, 0x99, 0x98, 0x07, 0xfb, 0x9a, 0x54, 0xa2, 0x89, 0x8b, 0x51, 0x76,
- 0x29, 0x09, 0xe8, 0x1f, 0xf8, 0x37, 0x2d, 0x46, 0x8a, 0x19, 0x44, 0x6c, 0x54, 0x60, 0x36, 0xb6,
- 0x72, 0x67, 0xff, 0xe3, 0x14, 0x62, 0x38, 0x45, 0xe5, 0x8c, 0x60, 0xe1, 0x8b, 0x3f, 0x91, 0xc5,
- 0x2c, 0xbf, 0x2b, 0x28, 0x83, 0xef, 0x06, 0xda, 0x48, 0x17, 0xcf, 0x08, 0x67, 0x76, 0x04, 0x0d,
- 0xa4, 0x24, 0x26, 0x7c, 0x66, 0xdc, 0xb4, 0xdb, 0x6d, 0x64, 0xd3, 0x73, 0x93, 0x43, 0xd8, 0x9d,
- 0x8e, 0xfe, 0x8f, 0xcf, 0xb7, 0xa3, 0x80, 0xe9, 0x18, 0xc6, 0xee, 0x82, 0xd6, 0x90, 0x41, 0x42,
- 0x51, 0xc1, 0x52, 0x92, 0x1a, 0x26, 0x43, 0xf8, 0x28, 0x89, 0xf1, 0x45, 0xb9, 0x73, 0xc3, 0xc6,
- 0xc8, 0x71, 0x16, 0x2d, 0xab, 0x2b, 0x76, 0x50, 0x41, 0xcc, 0x0f, 0x09, 0xb2, 0x08, 0xe5, 0x44,
- 0x16, 0xbe, 0xf4, 0x14, 0xa0, 0x96, 0x03, 0x6d, 0x24, 0xea, 0x86, 0x04, 0xd2, 0x3b, 0x02, 0xe7,
- },
- { /* 15 */
- 0xfb, 0xd5, 0x0c, 0x7a, 0xc0, 0x80, 0x96, 0x19, 0x11, 0x87, 0x93, 0x1b, 0xc9, 0xae, 0xb5, 0xfc,
- 0x08, 0xe0, 0x8c, 0xb2, 0x17, 0x1a, 0xce, 0x7b, 0x32, 0xfc, 0xab, 0xf8, 0xfe, 0xf2, 0x0a, 0xee,
- 0xcb, 0xd0, 0xa2, 0x50, 0xb2, 0xdc, 0x77, 0xc0, 0xbd, 0xca, 0xef, 0x4e, 0x88, 0xc7, 0x89, 0xdd,
- 0x41, 0x10, 0x1a, 0x5e, 0x63, 0x42, 0xd6, 0x69, 0xc4, 0x12, 0x3c, 0xd3, 0x93, 0x13, 0xc0, 0x11,
- 0x38, 0xe5, 0x22, 0x98, 0x65, 0x46, 0x2f, 0xa2, 0x9e, 0xb1, 0xd7, 0xad, 0xbf, 0x9b, 0x36, 0xcf,
- 0xb3, 0x39, 0x6a, 0x11, 0x6f, 0x4a, 0xe7, 0x3c, 0x70, 0x97, 0x29, 0x2f, 0xcb, 0xc0, 0xef, 0x6e,
- 0x1f, 0xb7, 0xc2, 0x06, 0x7d, 0x56, 0x4d, 0x08, 0x35, 0x78, 0xfd, 0x96, 0x0f, 0xfe, 0x68, 0x31,
- 0x88, 0xf8, 0x9b, 0xc3, 0xa4, 0x79, 0x73, 0xc7, 0x94, 0xe7, 0x89, 0xa3, 0xc5, 0x09, 0xaa, 0x16,
- 0x32, 0x3d, 0x8d, 0xe7, 0x07, 0xbb, 0x33, 0xb7, 0x41, 0x72, 0x26, 0x6b, 0x9f, 0xb4, 0xdf, 0xfb,
- 0x7c, 0x99, 0x8e, 0x18, 0x37, 0x9b, 0xf7, 0x20, 0xd4, 0x23, 0x72, 0x1d, 0x3c, 0x7e, 0x63, 0xc4,
- 0x5c, 0x9f, 0xfb, 0x95, 0x6b, 0xf3, 0x49, 0x0f, 0x1c, 0x55, 0x9b, 0x7b, 0x42, 0x30, 0x4b, 0xfa,
- 0x02, 0x38, 0x23, 0xcd, 0x75, 0xe7, 0xd2, 0x6e, 0xed, 0x3f, 0x5a, 0x3e, 0xde, 0xdd, 0xe3, 0xda,
- 0xec, 0x82, 0x42, 0xce, 0xaa, 0xcc, 0x15, 0x6a, 0x16, 0x03, 0xc5, 0x75, 0x38, 0xa2, 0xd7, 0x23,
- 0x12, 0x3b, 0xf8, 0x6a, 0x5b, 0xd3, 0x8d, 0x98, 0x89, 0x04, 0xcf, 0x0d, 0xe1, 0xfa, 0xf7, 0xc5,
- 0x7b, 0xcd, 0x1b, 0x0b, 0x73, 0xe3, 0x2b, 0xa5, 0xb7, 0x9c, 0xb1, 0x40, 0xf2, 0x55, 0x15, 0x04,
- 0x5f, 0xbb, 0x28, 0xdf, 0xc5, 0x86, 0xf2, 0x56, 0x66, 0x94, 0xec, 0x5a, 0xf3, 0x62, 0x38, 0x4d,
- 0xc1, 0x08, 0x0d, 0x2f, 0xd0, 0x21, 0x6b, 0xd5, 0x62, 0x09, 0x1e, 0x88, 0xa8, 0xe8, 0x60, 0xe9,
- 0x04, 0x70, 0x46, 0x59, 0xea, 0x0d, 0x67, 0xdc, 0x19, 0x7e, 0xb4, 0x7c, 0x7f, 0x79, 0x05, 0x77,
- 0x76, 0x41, 0x21, 0x67, 0x55, 0x66, 0xeb, 0x35, 0x0b, 0xe0, 0x83, 0xdb, 0x1c, 0x51, 0x8a, 0xf0,
- 0x6c, 0x9a, 0x55, 0xbf, 0x19, 0xaf, 0xa8, 0xd6, 0xb0, 0x18, 0xe7, 0x2e, 0x03, 0x59, 0x77, 0xdb,
- 0x26, 0x4e, 0x10, 0x19, 0xc3, 0x82, 0x0b, 0x9d, 0x3c, 0x37, 0x07, 0x24, 0xdf, 0xea, 0xce, 0x93,
- 0x0f, 0xb4, 0x19, 0xa1, 0x53, 0x62, 0x12, 0xfe, 0x51, 0x43, 0x68, 0xa5, 0x30, 0xd9, 0x7c, 0x2e,
- 0x0c, 0x90, 0xca, 0xeb, 0xfd, 0x17, 0xa9, 0xa7, 0x2b, 0x82, 0x1f, 0x84, 0x81, 0x8b, 0x0f, 0x99,
- 0xe0, 0x12, 0x88, 0x25, 0x57, 0xdb, 0xbc, 0xcd, 0x3d, 0x81, 0xda, 0xf1, 0xb9, 0x29, 0xd8, 0xba,
- 0xe6, 0x5a, 0xed, 0xb1, 0xc8, 0x31, 0x09, 0x7f, 0xc9, 0xc0, 0x34, 0xb3, 0x18, 0x8d, 0x3e, 0x17,
- 0xd6, 0x5f, 0x43, 0x9b, 0xba, 0x6d, 0xe8, 0xa6, 0x65, 0x8d, 0x48, 0xe6, 0x59, 0xe4, 0x02, 0x36,
- 0x18, 0xe3, 0x57, 0x15, 0x39, 0x2e, 0x91, 0x8d, 0x56, 0xc7, 0x3e, 0xcb, 0xc1, 0xd5, 0x1e, 0xf1,
- 0x8e, 0xb0, 0xfe, 0x57, 0x3b, 0x93, 0xc6, 0x75, 0x60, 0xa6, 0x67, 0xe1, 0x64, 0xad, 0x4c, 0xbb,
- 0x54, 0x7f, 0x77, 0x27, 0x7c, 0xe9, 0x87, 0x74, 0x2e, 0xa9, 0x30, 0x83, 0xbc, 0xc2, 0x41, 0x14,
- 0xe4, 0x62, 0xce, 0x7c, 0xbd, 0xd6, 0xdb, 0x11, 0x24, 0xff, 0x6e, 0x8d, 0xc6, 0x50, 0xdd, 0xcd,
- 0xac, 0x8e, 0xa8, 0x17, 0x12, 0x1c, 0xaa, 0x34, 0x45, 0xef, 0xd4, 0xb9, 0xc4, 0x3e, 0x87, 0x5f,
- 0x69, 0xf6, 0xe3, 0x61, 0x28, 0x30, 0xa6, 0x3d, 0x3e, 0x98, 0x7e, 0x4d, 0x13, 0xaf, 0xe2, 0xc1,
- 0xee, 0xba, 0x61, 0x03, 0xdf, 0x2b, 0xc7, 0x04, 0xfb, 0x3c, 0x9f, 0x4b, 0xe6, 0x7f, 0x34, 0xf9,
- 0xd9, 0xeb, 0x5a, 0x3a, 0xe9, 0x0f, 0xfa, 0x58, 0x34, 0xce, 0x20, 0x43, 0x69, 0x3d, 0x7e, 0x18,
- 0xf7, 0x45, 0xc6, 0x91, 0x3d, 0x97, 0x3f, 0xbe, 0x3a, 0x05, 0x8c, 0x9f, 0x48, 0x25, 0xba, 0x65,
- 0xb9, 0xe1, 0xc5, 0x6e, 0x0d, 0xb7, 0xfb, 0x29, 0xaf, 0x54, 0xd8, 0xe9, 0xeb, 0xef, 0x06, 0x5a,
- 0x85, 0x74, 0xa1, 0xaf, 0x82, 0xfc, 0xb3, 0x57, 0x28, 0x9b, 0xbb, 0x38, 0x2b, 0x0d, 0x35, 0xe2,
- 0x1e, 0xab, 0x32, 0x81, 0xa6, 0xc4, 0x24, 0x3f, 0xa2, 0x86, 0xd0, 0x89, 0x60, 0x71, 0xf8, 0x5c,
- 0x66, 0x42, 0xfa, 0xc0, 0x7b, 0x52, 0xb4, 0xc3, 0x6f, 0xdb, 0x16, 0xe8, 0x23, 0x76, 0x9e, 0xef,
- 0x30, 0x05, 0xae, 0x2a, 0x72, 0x5c, 0xe1, 0xd9, 0xac, 0x4d, 0x7c, 0x55, 0x41, 0x69, 0x3c, 0x21,
- 0xd5, 0x7b, 0x90, 0xd1, 0x14, 0x18, 0x53, 0xff, 0x1f, 0x4c, 0x3f, 0xc7, 0xe8, 0xb6, 0x71, 0x81,
- 0xa2, 0x26, 0x41, 0x31, 0x9a, 0xec, 0xd1, 0xfd, 0x83, 0x52, 0x91, 0x03, 0x9b, 0x68, 0x6b, 0x1c,
- 0xfc, 0x81, 0x99, 0x69, 0x84, 0xf8, 0x4a, 0x9c, 0x72, 0x38, 0x50, 0x46, 0x07, 0x85, 0xc3, 0x3c,
- 0x60, 0x0a, 0x9f, 0x54, 0xe4, 0xb8, 0x01, 0x71, 0x9b, 0x9a, 0xf8, 0xaa, 0x82, 0xd2, 0x78, 0x42,
- 0xff, 0xa5, 0x4a, 0x23, 0x2a, 0x8d, 0xf1, 0xc5, 0x08, 0xf9, 0x27, 0x67, 0xb6, 0xd7, 0xb0, 0x8b,
- 0x6e, 0xa2, 0x76, 0x72, 0x6c, 0x48, 0x7a, 0xb8, 0x5d, 0x27, 0xbd, 0x10, 0xdd, 0x84, 0x94, 0x01,
- 0xea, 0xca, 0x27, 0x5a, 0x35, 0x26, 0xa0, 0xd8, 0xe2, 0x42, 0x2b, 0x37, 0x99, 0x06, 0x31, 0x8e,
- 0x83, 0x3c, 0xc4, 0x3b, 0x1d, 0x16, 0x06, 0xe5, 0xdc, 0xda, 0x55, 0x7a, 0x8a, 0xa9, 0xd3, 0x4f,
- 0x15, 0x6f, 0x6d, 0x79, 0x1f, 0xab, 0x51, 0x1d, 0xea, 0xbb, 0x0c, 0x50, 0x2f, 0xd1, 0x81, 0x05,
- 0xc0, 0x14, 0xfd, 0xa8, 0x0b, 0xb3, 0x02, 0xe2, 0xf5, 0xf7, 0x33, 0x97, 0xc7, 0x67, 0xf0, 0x84,
- 0xdc, 0x87, 0xec, 0xe4, 0xd8, 0x90, 0xf4, 0xb3, 0xba, 0x4e, 0xb9, 0x20, 0x79, 0xcb, 0xeb, 0x02,
- 0xb4, 0x6d, 0xff, 0x02, 0x2b, 0x32, 0x3b, 0xb9, 0x13, 0x28, 0xea, 0x72, 0x05, 0xeb, 0x99, 0xae,
- 0xeb, 0xd6, 0xd7, 0xdd, 0xee, 0xb4, 0xc9, 0xef, 0x75, 0xbc, 0x06, 0x28, 0xf6, 0x89, 0xa1, 0xe3,
- 0xc8, 0xf4, 0x71, 0x1a, 0x1c, 0xa9, 0xcc, 0x99, 0xc7, 0x0b, 0x98, 0x6f, 0x39, 0x95, 0xfa, 0x6a,
- 0x84, 0x68, 0x51, 0x28, 0x59, 0x6e, 0xda, 0x60, 0xbf, 0x65, 0x96, 0x27, 0x44, 0x82, 0xa5, 0x8f,
- 0xe5, 0x7e, 0x3e, 0xfb, 0x66, 0x44, 0xb2, 0x26, 0xb3, 0x01, 0x43, 0x92, 0xa9, 0xdf, 0x4d, 0xa0,
- 0xa7, 0x4a, 0xf7, 0xef, 0xab, 0x73, 0xdf, 0x16, 0x0d, 0xd2, 0x08, 0x60, 0x8b, 0x9e, 0xfe, 0x06,
- 0x44, 0x7c, 0xac, 0x80, 0x52, 0xdd, 0xd8, 0x82, 0x4a, 0x92, 0xa5, 0xb0, 0x83, 0xe5, 0x55, 0x0b,
- 0xba, 0xc5, 0x16, 0x24, 0xa3, 0xc2, 0x40, 0x70, 0xd5, 0x95, 0xaf, 0xc8, 0x5a, 0xbd, 0x75, 0xed,
- 0x62, 0x32, 0xbc, 0x99, 0x91, 0x5f, 0xd3, 0x1f, 0x76, 0xa5, 0xa2, 0x94, 0x5c, 0x0f, 0x9b, 0x98,
- 0xf2, 0x29, 0x70, 0x4f, 0x0c, 0x08, 0x31, 0x55, 0xb4, 0x85, 0x15, 0xfc, 0x58, 0xd3, 0x2f, 0x7f,
- 0x53, 0x2b, 0xe2, 0x34, 0x38, 0x91, 0x5b, 0xf1, 0x4d, 0x16, 0xf3, 0xde, 0x72, 0xe9, 0x37, 0xd4,
- 0x9a, 0xc3, 0x63, 0xa9, 0xff, 0xaa, 0xfe, 0x5f, 0x1d, 0xe3, 0x46, 0xae, 0x24, 0xf3, 0x5d, 0xd3,
- 0x10, 0x03, 0xdb, 0xa7, 0x2e, 0x34, 0x5f, 0xf6, 0x64, 0x3b, 0x95, 0x33, 0x3f, 0x27, 0x14, 0x1f,
- 0x1d, 0x8f, 0xe1, 0xcb, 0x08, 0xb1, 0x9f, 0x66, 0xd8, 0x47, 0xa7, 0xa8, 0xd1, 0x23, 0x8b, 0xeb,
- 0x0a, 0xd8, 0xaf, 0x7f, 0x62, 0xfd, 0x1c, 0x15, 0xdf, 0xc3, 0xf1, 0xc6, 0x20, 0x2f, 0xe9, 0x34,
- 0xd3, 0x33, 0xf5, 0x45, 0x8b, 0xf2, 0xe6, 0x4d, 0xeb, 0x0d, 0xd1, 0x85, 0x49, 0x12, 0x97, 0x2c,
- 0xfd, 0x9d, 0x69, 0xee, 0x5f, 0x6a, 0x23, 0xab, 0xe5, 0xc6, 0x7d, 0x59, 0x68, 0x0a, 0x53, 0x51,
- 0x73, 0x2d, 0x97, 0xb9, 0x64, 0xf9, 0xe5, 0xde, 0x85, 0x60, 0x1a, 0xb8, 0x0c, 0xa7, 0x1f, 0xea,
- 0xf1, 0x0d, 0xa3, 0x05, 0xa2, 0x7d, 0x8a, 0x0c, 0xce, 0x44, 0x62, 0xdd, 0xe9, 0x81, 0x5c, 0xc8,
- 0x4a, 0xd4, 0x45, 0xa6, 0xda, 0x2d, 0xa3, 0x4b, 0x8c, 0x2f, 0xe0, 0x0a, 0xdc, 0xb3, 0xb9, 0x48,
- 0xa1, 0x02, 0x92, 0x7b, 0x34, 0x99, 0x6a, 0xa4, 0xf9, 0x93, 0xe6, 0x22, 0x2a, 0x3a, 0x18, 0xab,
- 0xaa, 0xc6, 0xcd, 0x83, 0x8d, 0xf6, 0x1f, 0x86, 0xb1, 0xae, 0x3a, 0xfb, 0x65, 0x9a, 0x61, 0xf2,
- 0x74, 0x79, 0x02, 0xaa, 0x20, 0x81, 0x39, 0x5b, 0xe6, 0xdf, 0xd9, 0xe5, 0xc2, 0x8c, 0x69, 0x2a,
- 0x14, 0x73, 0x9d, 0xfe, 0xc4, 0x39, 0x38, 0x2a, 0x7d, 0x45, 0x21, 0x4f, 0x40, 0x5e, 0x11, 0x68,
- 0x39, 0xf9, 0xd2, 0x1f, 0xbe, 0xd4, 0x46, 0x95, 0x09, 0x4f, 0xfa, 0xb2, 0xd0, 0x14, 0xa6, 0xa2,
- 0x95, 0x77, 0x7a, 0x08, 0xac, 0xc8, 0xec, 0xa1, 0x4c, 0xa0, 0x2e, 0x0b, 0x14, 0x2a, 0x21, 0xfd,
- 0x5b, 0xcb, 0x6e, 0x86, 0x2f, 0x8b, 0x95, 0x8a, 0x7f, 0xea, 0x58, 0x26, 0x8c, 0x1b, 0x3d, 0x3a,
- 0x56, 0x47, 0x54, 0xea, 0x09, 0x0e, 0x55, 0x1a, 0xc3, 0x96, 0x6a, 0xbd, 0x62, 0x1f, 0xa2, 0xce,
- 0x8a, 0xc0, 0xb8, 0x0e, 0xd1, 0x9e, 0xa1, 0xa9, 0x79, 0xd8, 0xd3, 0x9d, 0x1b, 0xd4, 0x49, 0xcc,
- 0xdf, 0xa3, 0x3f, 0xae, 0x76, 0xe5, 0x4f, 0xea, 0xc0, 0x8f, 0xce, 0x01, 0xc8, 0x99, 0x98, 0xb5,
- 0xcd, 0x98, 0xc7, 0xc4, 0x2d, 0x36, 0xc2, 0x72, 0x49, 0x8b, 0x01, 0x0c, 0x29, 0x63, 0x6f, 0x70,
- 0x51, 0x13, 0xc1, 0xf9, 0x4d, 0x76, 0x89, 0x9f, 0xa0, 0x29, 0xa9, 0xe0, 0xac, 0x34, 0xd4, 0x0e,
- 0x34, 0x75, 0xe8, 0x73, 0x98, 0x51, 0x86, 0x05, 0xb5, 0x33, 0xc8, 0x29, 0x3e, 0x10, 0x39, 0x56,
- 0xf6, 0x59, 0x36, 0x16, 0xe6, 0x05, 0x56, 0x89, 0xad, 0xfb, 0xa1, 0x80, 0x27, 0xaa, 0x2a, 0x08,
- 0x8d, 0x94, 0x2d, 0x1d, 0x95, 0xe6, 0x7d, 0x2c, 0x1a, 0x67, 0x10, 0xc0, 0xd5, 0xff, 0x3f, 0x0c,
- 0x6a, 0xd2, 0x30, 0x2b, 0x86, 0x45, 0x1d, 0x64, 0x44, 0x59, 0x09, 0x6c, 0xa2, 0xfd, 0x91, 0x76,
- 0xf3, 0x35, 0x80, 0xc8, 0xd7, 0x9a, 0x58, 0x62, 0x23, 0x7b, 0x38, 0xe3, 0x37, 0x5c, 0xbf, 0x12,
- 0xf5, 0x7d, 0xe5, 0x5c, 0x48, 0x70, 0xed, 0xd0, 0xd7, 0x3a, 0xd6, 0xa1, 0x96, 0xf8, 0x59, 0xbf,
- 0x11, 0x1f, 0x2b, 0x20, 0xf5, 0xa6, 0x36, 0xc1, 0xf3, 0xc5, 0xb8, 0x2c, 0x50, 0xa8, 0x84, 0x72,
- 0x9d, 0x97, 0xf6, 0xba, 0xbb, 0xd2, 0x22, 0xda, 0x7e, 0x5c, 0x85, 0xf3, 0xea, 0xd8, 0x2b, 0x13,
- 0x75, 0x65, 0xf2, 0x2d, 0xfb, 0x13, 0x50, 0x6c, 0x71, 0x21, 0xf4, 0xfa, 0xad, 0x03, 0xf9, 0x47,
- 0x19, 0xff, 0xa7, 0x92, 0xe2, 0xbc, 0xf8, 0xba, 0xc1, 0x39, 0x13, 0xd4, 0xae, 0x5a, 0x8e, 0x9c,
- 0x03, 0x24, 0xd3, 0x4a, 0xae, 0x75, 0xbb, 0x59, 0x7a, 0xc1, 0x77, 0x21, 0xb1, 0x52, 0x73, 0xb7,
- 0x70, 0x09, 0x44, 0xf3, 0xca, 0x8c, 0x5e, 0x87, 0xff, 0xa1, 0x6d, 0x99, 0xbd, 0xf5, 0x6c, 0x5d,
- 0x72, 0x31, 0x67, 0x3e, 0xbf, 0x6b, 0x8c, 0xe9, 0x12, 0x9e, 0x37, 0xa7, 0x63, 0x28, 0x8f, 0x87,
- 0x3a, 0xdd, 0x01, 0x55, 0x10, 0xa1, 0xfd, 0xcc, 0x73, 0x8e, 0x8d, 0x93, 0x61, 0x46, 0xd5, 0x15,
- 0x8b, 0xdc, 0x48, 0x89, 0x0a, 0x0c, 0xc8, 0x9e, 0xee, 0x26, 0xfe, 0x82, 0x74, 0x5b, 0xd9, 0xa1,
- 0x33, 0x21, 0x7d, 0x60, 0xdc, 0x29, 0x5a, 0x80, 0xd6, 0x8c, 0x0b, 0x74, 0xf0, 0x3b, 0x4f, 0x96,
- 0xc6, 0x5c, 0x98, 0x3c, 0x94, 0x59, 0xb7, 0x50, 0x01, 0xb6, 0xdd, 0xd5, 0x66, 0xc3, 0x16, 0x29,
- 0x2f, 0xb2, 0x6c, 0x2c, 0x0f, 0x0a, 0xac, 0xd1, 0x99, 0x35, 0x81, 0xc3, 0x4e, 0x97, 0x54, 0x10,
- 0x89, 0xe4, 0x6b, 0x44, 0x7f, 0xeb, 0x1a, 0xf0, 0x03, 0x19, 0xa4, 0xbc, 0xaa, 0x86, 0x3a, 0x7b,
- 0xbe, 0xb5, 0x50, 0x7d, 0x49, 0xcf, 0x27, 0xac, 0xcc, 0xeb, 0x1b, 0xb4, 0x25, 0xc4, 0x70, 0x9a,
- 0xce, 0xbc, 0x14, 0x8e, 0x83, 0x43, 0x79, 0x2b, 0x33, 0x4a, 0x76, 0x2d, 0x98, 0x31, 0x1c, 0xc7,
- 0xc4, 0x64, 0xbb, 0xf1, 0xe1, 0xbe, 0x65, 0x3e, 0xec, 0x89, 0x87, 0xeb, 0xb8, 0x1e, 0xf5, 0xf3,
- 0xfa, 0xc9, 0xfc, 0xfd, 0x1b, 0x12, 0xff, 0x2e, 0x86, 0x79, 0xbe, 0x04, 0xa6, 0x21, 0x25, 0x91,
- 0x3b, 0xc1, 0xf1, 0xd2, 0xcb, 0x33, 0x94, 0xfb, 0xe4, 0x70, 0xa0, 0x8c, 0x0e, 0xc9, 0x45, 0x78,
- 0xdd, 0x9b, 0x1c, 0x63, 0x03, 0x02, 0x9d, 0x84, 0x2d, 0xb0, 0x94, 0x3f, 0x16, 0x44, 0x7b, 0x6f,
- 0x77, 0x5d, 0xd1, 0xe0, 0x8e, 0xf4, 0x82, 0x02, 0x9c, 0x1e, 0xae, 0xc4, 0x73, 0xde, 0x1a, 0x9d,
- 0xc5, 0x78, 0x4b, 0x76, 0x3a, 0x2c, 0x0c, 0x09, 0x7b, 0x77, 0xaa, 0xf4, 0xd7, 0x91, 0x65, 0x9e,
- 0x16, 0x4b, 0xbe, 0x33, 0xb1, 0xde, 0xea, 0x44, 0x90, 0x7a, 0x7b, 0x71, 0x9e, 0x83, 0xf2, 0xb2,
- 0xa4, 0x6e, 0x24, 0xa5, 0x05, 0x06, 0x64, 0x4f, 0x77, 0x13, 0x7f, 0x41, 0x3a, 0xcc, 0x8d, 0xb1,
- 0xad, 0x92, 0x58, 0x90, 0xc9, 0x8e, 0xc3, 0x03, 0xd2, 0x11, 0xf9, 0xa6, 0xab, 0xb1, 0x17, 0x32,
- 0xd8, 0xf7, 0xaa, 0xbd, 0x32, 0x9d, 0x93, 0x6f, 0xa3, 0x30, 0x0d, 0x5c, 0x06, 0xb2, 0xee, 0x75,
- 0xb7, 0x49, 0x2c, 0x48, 0x85, 0x47, 0x80, 0xe0, 0x69, 0xe9, 0x9d, 0x53, 0xb4, 0xb9, 0xea, 0x19,
- 0x92, 0x23, 0xef, 0x1b, 0xe8, 0xb0, 0x30, 0x24, 0x2f, 0x1f, 0xed, 0x56, 0xda, 0x01, 0x57, 0x3d,
- 0x49, 0xf0, 0x96, 0xec, 0x74, 0x58, 0x18, 0x12, 0xf6, 0xee, 0x97, 0x2b, 0x6d, 0xe1, 0xca, 0xff,
- 0x64, 0x7a, 0xd9, 0x0d, 0x0e, 0xb5, 0x66, 0xad, 0x82, 0xe4, 0x4c, 0xd6, 0xfd, 0xab, 0x7d, 0x35,
- 0x91, 0x07, 0x3c, 0x51, 0x46, 0xc5, 0x8b, 0x7d, 0x55, 0xde, 0x9a, 0x77, 0x6b, 0x53, 0x24, 0x8a,
- 0x9c, 0x8b, 0x06, 0x3d, 0x60, 0x40, 0x4b, 0xed, 0xe9, 0xa2, 0xa8, 0xec, 0x85, 0x57, 0xbb, 0x7e,
- 0x01, 0x1c, 0xf0, 0x87, 0xdb, 0x92, 0x69, 0x37, 0x97, 0xfe, 0x2d, 0x1f, 0x6f, 0x8f, 0x90, 0x6d,
- 0xe8, 0xf2, 0x04, 0x97, 0x40, 0xc1, 0x72, 0xb6, 0x0f, 0x7d, 0x71, 0x09, 0x47, 0xdb, 0xd2, 0x54,
- 0xa0, 0x1e, 0x62, 0xfc, 0xef, 0x0b, 0x03, 0x93, 0x6e, 0x6d, 0xcb, 0x3d, 0x45, 0xb5, 0x88, 0xc6,
- 0xbb, 0xd9, 0xe6, 0xa3, 0x78, 0x50, 0x29, 0x47, 0x42, 0x6b, 0x82, 0xd7, 0x35, 0x32, 0xe5, 0x80,
- 0xb5, 0x71, 0x0f, 0x85, 0xf0, 0xa0, 0x52, 0x8e, 0x84, 0xd6, 0xc7, 0x6d, 0x6a, 0x64, 0x09, 0xc3,
- 0x29, 0xfa, 0x09, 0xb8, 0x90, 0xe0, 0x19, 0x63, 0x6d, 0x74, 0x6f, 0x81, 0xef, 0x33, 0xb2, 0xbd,
- 0xe3, 0x36, 0x5b, 0x6f, 0xf9, 0xae, 0x07, 0x94, 0x47, 0x40, 0xad, 0xd0, 0x08, 0x7b, 0xab, 0x0d,
- 0x5a, 0xd7, 0x9e, 0x01, 0xf4, 0x19, 0xfc, 0xbd, 0xe8, 0x14, 0x75, 0x39, 0xe3, 0x94, 0xad, 0x57,
- 0x17, 0x57, 0x4e, 0xb4, 0x6a, 0x4c, 0x83, 0x73, 0x07, 0x84, 0x56, 0x6e, 0xf1, 0x0c, 0x62, 0xdf,
- 0x63, 0x2e, 0x4c, 0x1e, 0x4a, 0xcd, 0xba, 0x28, 0xe1, 0x5b, 0x8f, 0x8b, 0x33, 0x80, 0x0b, 0xf5,
- 0x25, 0x6a, 0xc3, 0x53, 0x6d, 0xf7, 0xb0, 0xc4, 0x46, 0xf6, 0x70, 0x05, 0x6e, 0xb8, 0xbd, 0x24,
- 0x7d, 0x85, 0x7e, 0x9f, 0xec, 0x09, 0x9e, 0x17, 0x43, 0xdd, 0x5f, 0x02, 0x53, 0xf1, 0xf3, 0xa9,
- 0x20, 0x06, 0x75, 0x8d, 0x5c, 0x68, 0xbe, 0x2f, 0xc8, 0x76, 0xe9, 0x66, 0x7e, 0x4e, 0x28, 0x3e,
- 0x13, 0x27, 0x08, 0xed, 0x80, 0x41, 0xe4, 0xaf, 0x1e, 0xfa, 0xe2, 0x12, 0x8e, 0x75, 0x67, 0xa8,
- 0x0e, 0xa8, 0xe9, 0x26, 0x88, 0xf0, 0x7b, 0xc9, 0xc6, 0xbd, 0x45, 0xba, 0x5f, 0x56, 0xec, 0x43,
- 0x9f, 0xaf, 0xd5, 0x77, 0xce, 0x35, 0xf0, 0xb4, 0x93, 0x63, 0xdf, 0xcd, 0x34, 0x05, 0xc8, 0xc9,
- 0xe1, 0x0e, 0x78, 0xa2, 0x8c, 0x49, 0xd5, 0xfa, 0xaa, 0x7f, 0xf7, 0xee, 0xd6, 0xa6, 0x48, 0xd7,
- 0x55, 0x63, 0x87, 0xa0, 0xa7, 0x7b, 0xee, 0x43, 0xb9, 0x57, 0x1d, 0x9c, 0xd3, 0x4d, 0xd1, 0x79,
- 0x8f, 0xac, 0x0e, 0xd0, 0xe0, 0x01, 0xaf, 0x42, 0xf7, 0x58, 0x4a, 0xfe, 0x0b, 0x22, 0xdc, 0xd6,
- 0xd1, 0x0b, 0xd6, 0x88, 0xfe, 0x15, 0x34, 0x23, 0x06, 0x32, 0x8b, 0xbb, 0x97, 0xcf, 0x74, 0xf6,
- 0x40, 0x0c, 0xea, 0xd9, 0xb8, 0xd0, 0xbf, 0x5e, 0x53, 0xec, 0x11, 0xcc, 0xfc, 0x9c, 0x50, 0x7c,
- 0x82, 0x20, 0x34, 0xbc, 0xc6, 0x84, 0x6f, 0xd2, 0x4b, 0x24, 0x78, 0x65, 0xe5, 0x26, 0x43, 0x22,
- 0x52, 0x37, 0x12, 0xb3, 0xe3, 0x03, 0x32, 0xc6, 0xda, 0xe8, 0xde, 0xc1, 0x1d, 0x66, 0xa7, 0xb9,
- 0xb2, 0x25, 0x9a, 0x96, 0xb4, 0xd8, 0x8e, 0x0b, 0xe7, 0x69, 0x04, 0x30, 0xa4, 0x4f, 0x7f, 0x03,
- 0x59, 0xf3, 0x4d, 0x4b, 0x5a, 0x6c, 0x47, 0xe4, 0x92, 0xd5, 0x02, 0x18, 0x52, 0xc6, 0xde, 0xe0,
- 0x3f, 0xb1, 0xb7, 0x8b, 0x21, 0x3e, 0xf3, 0x27, 0xfd, 0x0e, 0x14, 0xf0, 0x71, 0xb0, 0x40, 0x0f,
- 0xd4, 0x67, 0x60, 0x56, 0xcf, 0x8a, 0x3a, 0xc8, 0x88, 0xb2, 0x12, 0xd8, 0x87, 0x39, 0xe1, 0xec,
- 0x79, 0xf5, 0x38, 0xc6, 0x06, 0x04, 0xf9, 0xcb, 0x5a, 0xa3, 0xeb, 0x7e, 0x2c, 0x88, 0xf6, 0xde,
- 0xe7, 0x46, 0x1d, 0x36, 0x13, 0xa3, 0x60, 0x48, 0x5e, 0x3e, 0x19, 0xac, 0x77, 0x02, 0xae, 0x7a,
- 0xef, 0xa6, 0x91, 0x84, 0x04, 0xb9, 0xae, 0x33, 0x6c, 0xc2, 0xb2, 0x54, 0x89, 0xf0, 0xa4, 0x94,
- 0xca, 0xcc, 0x52, 0xd7, 0x69, 0x4e, 0x1e, 0xf7, 0x2a, 0x34, 0xc2, 0x51, 0xe7, 0x48, 0x19, 0xb0,
- 0x47, 0x58, 0x7f, 0xca, 0xfc, 0xa8, 0x63, 0xdb, 0x30, 0x53, 0xd2, 0x91, 0x32, 0xb7, 0x26, 0xbc,
- 0xa5, 0x72, 0xd4, 0x22, 0xde, 0x94, 0x0d, 0x78, 0xe0, 0xed, 0x52, 0x5e, 0x55, 0x43, 0x1d, 0xdc,
- 0xaf, 0xaa, 0x7b, 0x5d, 0xbc, 0x69, 0x11, 0x6d, 0x3f, 0x2e, 0xa3, 0x98, 0x75, 0x6c, 0xf4, 0xe8,
- 0xa8, 0xfe, 0xee, 0x4e, 0xf8, 0x11, 0xcd, 0xe8, 0x5c, 0x91, 0x60, 0xc5, 0xbb, 0x47, 0x82, 0x28,
- 0x93, 0x3f, 0x1f, 0x9c, 0x33, 0x22, 0x59, 0x13, 0xb8, 0xe1, 0xc0, 0x49, 0xb5, 0x8e, 0xc7, 0x50,
- 0xed, 0x9e, 0xb2, 0x49, 0x71, 0x5e, 0x7c, 0x5d, 0x81, 0xfd, 0xe8, 0x6a, 0x57, 0x2d, 0x47, 0x4e,
- 0xc3, 0x30, 0x2e, 0xe2, 0xa5, 0xc6, 0xb9, 0xbb, 0x8f, 0x36, 0x44, 0xb6, 0x76, 0x35, 0x83, 0x33,
- 0x2a, 0xde, 0xda, 0xf2, 0x3e, 0x95, 0xa2, 0x3a, 0x17, 0xb5, 0x18, 0xa0, 0x5e, 0x61, 0xc1, 0x0a,
- 0x96, 0x53, 0xa9, 0x42, 0x02, 0xbd, 0x57, 0xf8, 0x36, 0x61, 0x59, 0x2a, 0xa5, 0x78, 0x52, 0x4a,
- 0x2c, 0x96, 0xbf, 0x66, 0xa1, 0x7f, 0x17, 0x88, 0xe3, 0xf4, 0xf6, 0xe2, 0xff, 0xc5, 0x27, 0xa7,
- 0x5d, 0x83, 0x0b, 0x12, 0xb0, 0x61, 0x20, 0x38, 0x8b, 0xab, 0xb6, 0x64, 0x2d, 0xbf, 0xdb, 0x97,
- 0xe2, 0x2a, 0xab, 0xe8, 0x22, 0x3c, 0x6e, 0xa3, 0xd0, 0xbe, 0x80, 0xcf, 0x67, 0xf4, 0x3b, 0x60,
- 0x7f, 0xbd, 0x5d, 0x52, 0x99, 0xee, 0x4c, 0x79, 0xae, 0xe2, 0x05, 0x3c, 0x8d, 0x2c, 0x10, 0x73,
- 0x7e, 0xa1, 0xad, 0xd5, 0x42, 0x7c, 0x25, 0x4e, 0x39, 0x1c, 0x28, 0x23, 0xe2, 0xa3, 0x80, 0x1e,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3e, 0xad, 0x47, 0x0c, 0xfa, 0xac, 0x9a, 0x10, 0x6a, 0xf0, 0x39, 0xef, 0x1e, 0x3f, 0xd0, 0x62,
- 0xc7, 0x40, 0x68, 0xbb, 0x4f, 0xcb, 0xde, 0x67, 0x96, 0x48, 0xf0, 0xca, 0x09, 0x4c, 0x86, 0x44,
- 0x05, 0x6c, 0xb6, 0xde, 0x31, 0x9f, 0x0e, 0xeb, 0x8e, 0x80, 0x99, 0x63, 0x10, 0xf6, 0x95, 0x1a,
- 0x3c, 0x95, 0x64, 0xc1, 0x8f, 0x4b, 0x48, 0x7e, 0x87, 0xcf, 0x63, 0xd1, 0xc0, 0xe2, 0x33, 0xb8,
- 0x87, 0x4c, 0x82, 0x62, 0xf7, 0x1b, 0x61, 0x39, 0xc5, 0xa4, 0xe1, 0x06, 0xf5, 0xd0, 0xd6, 0x38,
- 0x67, 0x5e, 0x0a, 0x47, 0xa0, 0xc0, 0xdd, 0xf4, 0xf8, 0x25, 0x3b, 0xf7, 0x4c, 0xf9, 0x0e, 0x82,
- 0x99, 0xe7, 0xb0, 0xe3, 0x51, 0xdf, 0x45, 0x06, 0x67, 0x22, 0x31, 0x8f, 0x95, 0xa1, 0x2e, 0x64,
- 0xab, 0xda, 0x3d, 0x04, 0x56, 0x64, 0x76, 0xb1, 0x26, 0x50, 0x17, 0xe4, 0x0a, 0x15, 0xf1, 0x9f,
- 0xf9, 0xed, 0x2f, 0xb7, 0xb5, 0x67, 0x44, 0x77, 0xfc, 0xb8, 0xc9, 0x25, 0x17, 0x73, 0x56, 0x26,
- 0xd2, 0x2f, 0x05, 0xc2, 0x50, 0x60, 0x8f, 0x7a, 0x7c, 0xf3, 0xfc, 0x9a, 0x26, 0x9d, 0x07, 0x41,
- 0x06, 0x48, 0x65, 0x94, 0x9f, 0xea, 0xb5, 0xb2, 0xf4, 0x41, 0xee, 0x42, 0xa1, 0xa4, 0xe6, 0xad,
- 0xa9, 0xe2, 0x1e, 0xc9, 0x23, 0x83, 0xa4, 0xdf, 0xcb, 0x6f, 0x4d, 0xda, 0xd4, 0xc8, 0x12, 0x45,
- 0x1b, 0xc7, 0x84, 0x5f, 0x97, 0x5b, 0x2a, 0xd4, 0x2c, 0x06, 0x49, 0xea, 0x70, 0x87, 0x6d, 0x46,
- 0x48, 0xec, 0x66, 0x6b, 0xaf, 0xca, 0x71, 0x25, 0x61, 0x10, 0xba, 0x34, 0x02, 0x6e, 0x5a, 0x92,
- 0x97, 0x4f, 0x59, 0xc5, 0xd9, 0x2f, 0x3e, 0xcf, 0xa1, 0x9f, 0x74, 0x35, 0xca, 0xf7, 0xc2, 0x27,
- 0xc2, 0x2c, 0xde, 0x65, 0x7e, 0x54, 0xd0, 0x8c, 0x18, 0xc8, 0x69, 0xa9, 0x19, 0xba, 0x13, 0x5e,
- 0x86, 0x50, 0x72, 0xe5, 0x2c, 0x89, 0x08, 0x0e, 0x52, 0x5a, 0xcc, 0x19, 0x9a, 0x5f, 0x46, 0x55,
- 0x61, 0x16, 0x6f, 0xd3, 0x3f, 0x2a, 0x68, 0x46, 0x0c, 0x64, 0xd5, 0xb5, 0xed, 0x5d, 0xe8, 0x2f,
- 0x36, 0x4d, 0xcb, 0xbe, 0xed, 0xb6, 0x54, 0x6b, 0x58, 0x0c, 0x92, 0x17, 0xe0, 0xcd, 0xda, 0x8c,
- 0x57, 0x5b, 0xa4, 0x6d, 0xd2, 0x9c, 0x3c, 0x2d, 0x54, 0x68, 0x47, 0xa2, 0x0d, 0x90, 0x32, 0xa3,
- 0xf0, 0x11, 0x53, 0x82, 0x79, 0xef, 0xe3, 0x3b, 0x59, 0xba, 0x4f, 0xc2, 0x86, 0x0e, 0xcc, 0xa5,
- 0x2e, 0xae, 0x9c, 0xab, 0xd4, 0x98, 0xc5, 0xe6, 0x0e, 0xcb, 0xac, 0xdc, 0x21, 0x18, 0xc4, 0x7d,
- 0x7a, 0xd1, 0xeb, 0x8c, 0xa8, 0x71, 0x42, 0x92, 0x20, 0x62, 0x9c, 0x5f, 0x9d, 0xda, 0x85, 0x69,
- 0x3d, 0x89, 0x94, 0x46, 0x54, 0xd9, 0x21, 0x49, 0x10, 0x31, 0x4e, 0xce, 0xaf, 0x6d, 0xa3, 0xd5,
- 0x81, 0x04, 0xe7, 0xf6, 0x68, 0xf1, 0xd4, 0x8b, 0x31, 0xe5, 0x0f, 0x44, 0x54, 0x74, 0x30, 0x95,
- 0x35, 0x69, 0x18, 0xf4, 0x43, 0xc3, 0xef, 0x32, 0x22, 0xcd, 0xe5, 0x36, 0x51, 0x9f, 0xa9, 0x3b,
- 0xc9, 0xe8, 0x81, 0x9d, 0xc7, 0x3b, 0xa5, 0xae, 0x50, 0xf5, 0xb5, 0x70, 0x56, 0x1a, 0x6a, 0x07,
- 0x65, 0x66, 0x29, 0x8a, 0xd5, 0x27, 0x0f, 0x9a, 0x15, 0x1a, 0x61, 0xc9, 0x92, 0x24, 0xed, 0x58,
- 0x78, 0xe9, 0xc8, 0x41, 0xdd, 0x96, 0x90, 0xfc, 0xcd, 0x5d, 0xc6, 0x61, 0x43, 0x07, 0x66, 0xb3,
- 0xbc, 0x8d, 0x73, 0xb0, 0x3c, 0x28, 0xf5, 0xc2, 0x21, 0xd4, 0x41, 0x8a, 0xfb, 0x19, 0x93, 0x40,
- 0x1c, 0x93, 0x11, 0x4c, 0xd3, 0x23, 0xf6, 0x51, 0x4f, 0xb9, 0x8a, 0xb7, 0xbe, 0xac, 0x1b, 0x86,
- 0x68, 0xea, 0x13, 0xe6, 0xf3, 0xa2, 0xcf, 0x0a, 0xa9, 0x66, 0x53, 0x52, 0x7c, 0x20, 0x72, 0xac,
- 0xcc, 0x84, 0x37, 0x43, 0xf6, 0xa4, 0xab, 0x45, 0xde, 0x75, 0x2c, 0x13, 0x46, 0xec, 0xff, 0x1d,
- 0xbf, 0xa9, 0xa0, 0xfa, 0x92, 0x5d, 0x4e, 0x9b, 0x5b, 0x15, 0x36, 0xab, 0x4a, 0x4b, 0xe0, 0xf7,
- 0x71, 0x15, 0xb4, 0x74, 0x11, 0x1e, 0x37, 0xb0, 0x68, 0x5f, 0x40, 0x86, 0xd2, 0x7a, 0xfc, 0x30,
- 0xb8, 0xfd, 0x35, 0xe9, 0xd6, 0x25, 0x92, 0x1e, 0x38, 0xaa, 0xf5, 0xf6, 0x84, 0x60, 0x96, 0x37,
- 0xa6, 0x56, 0x07, 0x68, 0x70, 0xe1, 0xb6, 0x21, 0x9a, 0x2c, 0x25, 0x7f, 0xe4, 0x11, 0x6e, 0x6b,
- 0x22, 0x3e, 0x56, 0x40, 0x29, 0x8f, 0x6c, 0x41, 0x25, 0x49, 0xb3, 0x58, 0xa0, 0x93, 0xcb, 0xe4,
- 0x4d, 0x80, 0xd0, 0xb5, 0x9e, 0x55, 0x7f, 0xce, 0xef, 0x90, 0x23, 0x57, 0x12, 0x98, 0xcf, 0x88,
- 0xb0, 0x1d, 0xb9, 0x5b, 0xc1, 0x3f, 0x5c, 0x65, 0x0a, 0x56, 0x5e, 0x0e, 0x7a, 0x92, 0x9c, 0xd9,
- 0x90, 0x1b, 0xcc, 0xd6, 0x9d, 0x57, 0xe2, 0x4a, 0xc2, 0x20, 0xb7, 0x68, 0x04, 0xdc, 0xb4, 0xe7,
- 0x23, 0x22, 0xa6, 0xc7, 0xf2, 0x1d, 0x05, 0x76, 0xb2, 0xb7, 0x9e, 0x47, 0xcf, 0x1c, 0x5b, 0x89,
- 0x37, 0x51, 0x3b, 0x39, 0x36, 0x24, 0x3d, 0x5c, 0xcf, 0xf2, 0xbf, 0x08, 0x8f, 0x42, 0x4a, 0xe1,
- 0x6b, 0xce, 0xc0, 0xac, 0x5d, 0xd7, 0x74, 0x53, 0xd3, 0xa7, 0x24, 0x73, 0xcd, 0x72, 0x01, 0x1b,
- 0x09, 0xfc, 0x7c, 0x35, 0xcc, 0x88, 0xa7, 0x4c, 0xa5, 0x02, 0x86, 0xe7, 0x91, 0x7d, 0x9a, 0x83,
- 0x24, 0x76, 0x33, 0xd4, 0xb6, 0x65, 0xd9, 0xf3, 0xd1, 0x08, 0x5d, 0x1a, 0x01, 0x37, 0x2d, 0x49,
- 0x31, 0x19, 0x5e, 0xad, 0xa9, 0xce, 0x88, 0xee, 0x3b, 0xb3, 0x51, 0x4a, 0x2e, 0xe6, 0xac, 0x4c,
- 0x4e, 0xa4, 0x03, 0xff, 0x30, 0x20, 0xc4, 0x97, 0x95, 0x51, 0x54, 0x76, 0xa3, 0xca, 0xbc, 0x3f,
- 0x80, 0x18, 0x17, 0x71, 0xb3, 0x63, 0xbd, 0xbc, 0xa6, 0x1b, 0x22, 0x5b, 0x3b, 0xfb, 0xa0, 0xf8,
- 0x27, 0x52, 0xe0, 0x9e, 0x18, 0x10, 0x62, 0xaa, 0xab, 0xc9, 0x2a, 0x3b, 0xb0, 0x65, 0x5e, 0xfe,
- 0x58, 0xef, 0xbd, 0xcc, 0x81, 0xfe, 0x2e, 0xd3, 0x05, 0x2b, 0x2f, 0x07, 0x3d, 0x49, 0x4e, 0x8d,
- 0x21, 0x1a, 0x85, 0x0a, 0x87, 0xfa, 0xd7, 0x18, 0x5f, 0x88, 0xc4, 0x79, 0x11, 0xc1, 0xb8, 0x53,
- 0xcf, 0xa0, 0xe4, 0x09, 0x58, 0xd1, 0x10, 0x1c, 0xa4, 0xb4, 0x5b, 0x32, 0xf7, 0xbe, 0x8c, 0xaa,
- 0x94, 0x6b, 0x8a, 0x8f, 0x77, 0x5a, 0x85, 0x96, 0xdb, 0x5e, 0x03, 0x14, 0x7b, 0xa5, 0xb1, 0x90,
- 0x2d, 0x8a, 0x4f, 0xe1, 0x7a, 0xed, 0x7e, 0xbf, 0x74, 0x0a, 0xdb, 0xfd, 0x90, 0x4a, 0xb7, 0xca,
- 0xde, 0xbf, 0xcf, 0x29, 0xad, 0x77, 0x26, 0xdd, 0x57, 0x71, 0xe3, 0x1e, 0xa7, 0x16, 0x08, 0xd8,
- 0xae, 0xb6, 0x8b, 0xda, 0x67, 0xfb, 0x78, 0x5a, 0xa8, 0xd0, 0x8e, 0x87, 0x1a, 0xe3, 0x64, 0x85,
- 0x8c, 0x88, 0xdd, 0x9a, 0x4e, 0x74, 0x14, 0x1b, 0x8d, 0x99, 0x3d, 0xdf, 0xba, 0x70, 0xaf, 0x61,
- 0x5e, 0xa7, 0xd8, 0x58, 0x1e, 0x14, 0x9b, 0x61, 0xf1, 0x6a, 0xc1, 0x45, 0x9c, 0xed, 0xa8, 0x20,
- 0xa3, 0x3a, 0xb1, 0xb6, 0x41, 0x7e, 0xb8, 0xca, 0x14, 0xac, 0xbc, 0x1c, 0xf4, 0xe7, 0xfb, 0x71,
- 0x2b, 0xc2, 0x2a, 0x75, 0xe5, 0x07, 0xcb, 0x0d, 0x80, 0x4b, 0x35, 0xbf, 0x31, 0xee, 0x51, 0x67,
- 0x9e, 0xb3, 0x25, 0xf0, 0x15, 0xa7, 0x99, 0x83, 0x04, 0x9d, 0xf2, 0xd2, 0x5b, 0x8a, 0x58, 0xa4,
- 0xbd, 0x91, 0x83, 0x37, 0xe7, 0xba, 0x9c, 0xf5, 0xb6, 0x2a, 0x6c, 0x95, 0x94, 0x96, 0x03, 0x2d,
- 0x1a, 0xdb, 0x74, 0xd8, 0x4c, 0xc9, 0x43, 0xe3, 0xbb, 0xf8, 0x64, 0xf5, 0x1f, 0x08, 0xfd, 0x2b,
- 0x98, 0xfb, 0x40, 0x64, 0x8a, 0x4d, 0x2c, 0x31, 0xf0, 0xdc, 0x1c, 0x90, 0xfa, 0x2e, 0xbe, 0x09,
- 0xd7, 0x43, 0xb3, 0x1c, 0x61, 0xff, 0x81, 0x91, 0xf2, 0x73, 0x65, 0xf9, 0x36, 0x6b, 0x92, 0x5b,
- 0x43, 0x28, 0x39, 0x93, 0x16, 0xa5, 0x04, 0x07, 0x29, 0x2d, 0x66, 0xed, 0x4d, 0xce, 0x23, 0xcb,
- 0xd0, 0x17, 0x26, 0x0f, 0x25, 0x87, 0x5d, 0x14, 0x91, 0xcc, 0xa6, 0xa4, 0xf8, 0x40, 0xe4, 0x9b,
- 0x4b, 0xc8, 0xb5, 0x21, 0x01, 0xbf, 0xca, 0x7c, 0x1b, 0xd1, 0xcd, 0x15, 0xb3, 0x3c, 0x29, 0x25,
- 0x28, 0xe6, 0xf9, 0x3f, 0x4b, 0x72, 0x70, 0x54, 0xfa, 0x8a, 0x42, 0x9e, 0x80, 0xbc, 0x22, 0xd0,
- 0x9b, 0xdf, 0x93, 0x2e, 0x24, 0x38, 0x97, 0x68, 0x8a, 0x1d, 0x6b, 0xb1, 0x4b, 0x7c, 0xcd, 0xbe,
- 0x4c, 0x9c, 0x20, 0x32, 0x45, 0xc7, 0x16, 0xf9, 0x78, 0x6e, 0x0e, 0x48, 0x7d, 0x17, 0x5f, 0xe5,
- 0x6f, 0xbe, 0x86, 0xf5, 0xb7, 0xda, 0x13, 0x8f, 0xca, 0xd9, 0x90, 0x0f, 0xb2, 0x0b, 0x04, 0x6c,
- 0x4f, 0xb8, 0xf3, 0x78, 0xeb, 0xb2, 0xad, 0xa0, 0x02, 0xaf, 0x79, 0x69, 0xcc, 0x45, 0x2c, 0x52,
- 0x0b, 0xc4, 0x5f, 0xf8, 0xb9, 0x6f, 0x75, 0x22, 0x48, 0x3d, 0xdc, 0xd9, 0x4f, 0xa0, 0x79, 0x59,
- 0x42, 0x34, 0xc9, 0x14, 0xcd, 0x37, 0x6d, 0x30, 0xbe, 0xd3, 0x4b, 0xf2, 0x22, 0x41, 0xb3, 0xa6,
- 0xb6, 0x55, 0xdc, 0xcf, 0x5e, 0xd5, 0xe9, 0xd7, 0xfe, 0x17, 0xb0, 0x4c, 0xdb, 0x36, 0x7a, 0x74,
- 0xf4, 0x61, 0x15, 0xdb, 0x93, 0xe2, 0x84, 0xe7, 0x40, 0xc4, 0xfb, 0xbe, 0xf9, 0x77, 0xc9, 0xd2,
- 0xfe, 0xb9, 0xba, 0xa4, 0xf1, 0x1f, 0x98, 0xf2, 0x9f, 0x07, 0x0a, 0x78, 0xd9, 0x58, 0x20, 0xe6,
- 0x0d, 0x8c, 0x3a, 0x6c, 0x26, 0x85, 0xc0, 0x90, 0xbc, 0x7c, 0x32, 0x9b, 0xee, 0x04, 0x9f, 0xf4,
- 0xb1, 0x01, 0x49, 0xdc, 0x1a, 0xad, 0x35, 0x52, 0x9d, 0xa8, 0x73, 0x11, 0x15, 0x1d, 0x0c, 0xb4,
- 0x07, 0x54, 0x95, 0x13, 0x44, 0x78, 0xdc, 0x85, 0x63, 0xbf, 0xc3, 0x5d, 0xce, 0x2b, 0x76, 0xc0,
- 0x46, 0x44, 0x8f, 0x4d, 0x27, 0x3a, 0x0a, 0xec, 0xa7, 0xad, 0xff, 0x8e, 0x5d, 0x38, 0xb6, 0xd1,
- 0x45, 0x60, 0x5c, 0x07, 0x89, 0x4f, 0xb1, 0xb5, 0xdd, 0x6c, 0x88, 0xaf, 0xec, 0x6a, 0xc5, 0x66,
- 0xda, 0xcf, 0x89, 0x70, 0x47, 0x7a, 0x41, 0x01, 0x4e, 0x0f, 0x57, 0x62, 0xd8, 0x6f, 0x0d, 0xaf,
- 0xdb, 0xd3, 0x79, 0xf7, 0x9c, 0xe8, 0x28, 0x36, 0xd9, 0xf1, 0x7a, 0x7d, 0xb7, 0xe0, 0x9d, 0xc2,
- 0xe9, 0xee, 0xf4, 0x10, 0x9b, 0x53, 0x1b, 0x81, 0x98, 0x83, 0x5c, 0x16, 0x28, 0x54, 0x42, 0x39,
- 0xf8, 0xf1, 0xdf, 0x30, 0x6e, 0xf5, 0x2d, 0x40, 0x6b, 0x46, 0xe4, 0x3a, 0x78, 0xfc, 0xc6, 0x4b,
- 0x50, 0x0f, 0x31, 0x7e, 0x96, 0xe4, 0xe0, 0xa8, 0x37, 0xd7, 0x84, 0xff, 0xc3, 0xbb, 0x44, 0x63,
- 0x6d, 0x86, 0xa5, 0x38, 0xc2, 0x3d, 0xc1, 0xe1, 0x27, 0xe6, 0xca, 0x31, 0x6c, 0xd6, 0xe7, 0xb6,
- },
+static const uint8_t kuz_table[16][256 * 16] = {
+ { /* 0 */
+ 0xe9, 0xfb, 0xd5, 0x0c, 0x7a, 0xc0, 0x80, 0x96, 0x19, 0x11, 0x87, 0x93,
+ 0x1b, 0xc9, 0xae, 0xb5,
+ 0x19, 0x08, 0xe0, 0x8c, 0xb2, 0x17, 0x1a, 0xce, 0x7b, 0x32, 0xfc, 0xab,
+ 0xf8, 0xfe, 0xf2, 0x0a,
+ 0xbf, 0xcb, 0xd0, 0xa2, 0x50, 0xb2, 0xdc, 0x77, 0xc0, 0xbd, 0xca, 0xef,
+ 0x4e, 0x88, 0xc7, 0x89,
+ 0x62, 0x41, 0x10, 0x1a, 0x5e, 0x63, 0x42, 0xd6, 0x69, 0xc4, 0x12, 0x3c,
+ 0xd3, 0x93, 0x13, 0xc0,
+ 0x4f, 0x38, 0xe5, 0x22, 0x98, 0x65, 0x46, 0x2f, 0xa2, 0x9e, 0xb1, 0xd7,
+ 0xad, 0xbf, 0x9b, 0x36,
+ 0x38, 0xb3, 0x39, 0x6a, 0x11, 0x6f, 0x4a, 0xe7, 0x3c, 0x70, 0x97, 0x29,
+ 0x2f, 0xcb, 0xc0, 0xef,
+ 0xfb, 0x1f, 0xb7, 0xc2, 0x06, 0x7d, 0x56, 0x4d, 0x08, 0x35, 0x78, 0xfd,
+ 0x96, 0x0f, 0xfe, 0x68,
+ 0x4a, 0x88, 0xf8, 0x9b, 0xc3, 0xa4, 0x79, 0x73, 0xc7, 0x94, 0xe7, 0x89,
+ 0xa3, 0xc5, 0x09, 0xaa,
+ 0xc1, 0x32, 0x3d, 0x8d, 0xe7, 0x07, 0xbb, 0x33, 0xb7, 0x41, 0x72, 0x26,
+ 0x6b, 0x9f, 0xb4, 0xdf,
+ 0x6a, 0x7c, 0x99, 0x8e, 0x18, 0x37, 0x9b, 0xf7, 0x20, 0xd4, 0x23, 0x72,
+ 0x1d, 0x3c, 0x7e, 0x63,
+ 0x0e, 0x5c, 0x9f, 0xfb, 0x95, 0x6b, 0xf3, 0x49, 0x0f, 0x1c, 0x55, 0x9b,
+ 0x7b, 0x42, 0x30, 0x4b,
+ 0x97, 0x02, 0x38, 0x23, 0xcd, 0x75, 0xe7, 0xd2, 0x6e, 0xed, 0x3f, 0x5a,
+ 0x3e, 0xde, 0xdd, 0xe3,
+ 0x0b, 0xec, 0x82, 0x42, 0xce, 0xaa, 0xcc, 0x15, 0x6a, 0x16, 0x03, 0xc5,
+ 0x75, 0x38, 0xa2, 0xd7,
+ 0xa5, 0x12, 0x3b, 0xf8, 0x6a, 0x5b, 0xd3, 0x8d, 0x98, 0x89, 0x04, 0xcf,
+ 0x0d, 0xe1, 0xfa, 0xf7,
+ 0xba, 0x7b, 0xcd, 0x1b, 0x0b, 0x73, 0xe3, 0x2b, 0xa5, 0xb7, 0x9c, 0xb1,
+ 0x40, 0xf2, 0x55, 0x15,
+ 0x33, 0x5f, 0xbb, 0x28, 0xdf, 0xc5, 0x86, 0xf2, 0x56, 0x66, 0x94, 0xec,
+ 0x5a, 0xf3, 0x62, 0x38,
+ 0x31, 0xc1, 0x08, 0x0d, 0x2f, 0xd0, 0x21, 0x6b, 0xd5, 0x62, 0x09, 0x1e,
+ 0x88, 0xa8, 0xe8, 0x60,
+ 0xed, 0x04, 0x70, 0x46, 0x59, 0xea, 0x0d, 0x67, 0xdc, 0x19, 0x7e, 0xb4,
+ 0x7c, 0x7f, 0x79, 0x05,
+ 0xe4, 0x76, 0x41, 0x21, 0x67, 0x55, 0x66, 0xeb, 0x35, 0x0b, 0xe0, 0x83,
+ 0xdb, 0x1c, 0x51, 0x8a,
+ 0x58, 0x6c, 0x9a, 0x55, 0xbf, 0x19, 0xaf, 0xa8, 0xd6, 0xb0, 0x18, 0xe7,
+ 0x2e, 0x03, 0x59, 0x77,
+ 0x1e, 0x26, 0x4e, 0x10, 0x19, 0xc3, 0x82, 0x0b, 0x9d, 0x3c, 0x37, 0x07,
+ 0x24, 0xdf, 0xea, 0xce,
+ 0xc9, 0x0f, 0xb4, 0x19, 0xa1, 0x53, 0x62, 0x12, 0xfe, 0x51, 0x43, 0x68,
+ 0xa5, 0x30, 0xd9, 0x7c,
+ 0xf4, 0x0c, 0x90, 0xca, 0xeb, 0xfd, 0x17, 0xa9, 0xa7, 0x2b, 0x82, 0x1f,
+ 0x84, 0x81, 0x8b, 0x0f,
+ 0xff, 0xe0, 0x12, 0x88, 0x25, 0x57, 0xdb, 0xbc, 0xcd, 0x3d, 0x81, 0xda,
+ 0xf1, 0xb9, 0x29, 0xd8,
+ 0x85, 0xe6, 0x5a, 0xed, 0xb1, 0xc8, 0x31, 0x09, 0x7f, 0xc9, 0xc0, 0x34,
+ 0xb3, 0x18, 0x8d, 0x3e,
+ 0xd3, 0xd6, 0x5f, 0x43, 0x9b, 0xba, 0x6d, 0xe8, 0xa6, 0x65, 0x8d, 0x48,
+ 0xe6, 0x59, 0xe4, 0x02,
+ 0x2b, 0x18, 0xe3, 0x57, 0x15, 0x39, 0x2e, 0x91, 0x8d, 0x56, 0xc7, 0x3e,
+ 0xcb, 0xc1, 0xd5, 0x1e,
+ 0x30, 0x8e, 0xb0, 0xfe, 0x57, 0x3b, 0x93, 0xc6, 0x75, 0x60, 0xa6, 0x67,
+ 0xe1, 0x64, 0xad, 0x4c,
+ 0x17, 0x54, 0x7f, 0x77, 0x27, 0x7c, 0xe9, 0x87, 0x74, 0x2e, 0xa9, 0x30,
+ 0x83, 0xbc, 0xc2, 0x41,
+ 0x12, 0xe4, 0x62, 0xce, 0x7c, 0xbd, 0xd6, 0xdb, 0x11, 0x24, 0xff, 0x6e,
+ 0x8d, 0xc6, 0x50, 0xdd,
+ 0xc3, 0xac, 0x8e, 0xa8, 0x17, 0x12, 0x1c, 0xaa, 0x34, 0x45, 0xef, 0xd4,
+ 0xb9, 0xc4, 0x3e, 0x87,
+ 0x1f, 0x69, 0xf6, 0xe3, 0x61, 0x28, 0x30, 0xa6, 0x3d, 0x3e, 0x98, 0x7e,
+ 0x4d, 0x13, 0xaf, 0xe2,
+ 0x9c, 0xee, 0xba, 0x61, 0x03, 0xdf, 0x2b, 0xc7, 0x04, 0xfb, 0x3c, 0x9f,
+ 0x4b, 0xe6, 0x7f, 0x34,
+ 0x1a, 0xd9, 0xeb, 0x5a, 0x3a, 0xe9, 0x0f, 0xfa, 0x58, 0x34, 0xce, 0x20,
+ 0x43, 0x69, 0x3d, 0x7e,
+ 0x1d, 0xf7, 0x45, 0xc6, 0x91, 0x3d, 0x97, 0x3f, 0xbe, 0x3a, 0x05, 0x8c,
+ 0x9f, 0x48, 0x25, 0xba,
+ 0xb6, 0xb9, 0xe1, 0xc5, 0x6e, 0x0d, 0xb7, 0xfb, 0x29, 0xaf, 0x54, 0xd8,
+ 0xe9, 0xeb, 0xef, 0x06,
+ 0x14, 0x85, 0x74, 0xa1, 0xaf, 0x82, 0xfc, 0xb3, 0x57, 0x28, 0x9b, 0xbb,
+ 0x38, 0x2b, 0x0d, 0x35,
+ 0x51, 0x1e, 0xab, 0x32, 0x81, 0xa6, 0xc4, 0x24, 0x3f, 0xa2, 0x86, 0xd0,
+ 0x89, 0x60, 0x71, 0xf8,
+ 0xd6, 0x66, 0x42, 0xfa, 0xc0, 0x7b, 0x52, 0xb4, 0xc3, 0x6f, 0xdb, 0x16,
+ 0xe8, 0x23, 0x76, 0x9e,
+ 0x56, 0x30, 0x05, 0xae, 0x2a, 0x72, 0x5c, 0xe1, 0xd9, 0xac, 0x4d, 0x7c,
+ 0x55, 0x41, 0x69, 0x3c,
+ 0xee, 0xd5, 0x7b, 0x90, 0xd1, 0x14, 0x18, 0x53, 0xff, 0x1f, 0x4c, 0x3f,
+ 0xc7, 0xe8, 0xb6, 0x71,
+ 0xa0, 0xa2, 0x26, 0x41, 0x31, 0x9a, 0xec, 0xd1, 0xfd, 0x83, 0x52, 0x91,
+ 0x03, 0x9b, 0x68, 0x6b,
+ 0x39, 0xfc, 0x81, 0x99, 0x69, 0x84, 0xf8, 0x4a, 0x9c, 0x72, 0x38, 0x50,
+ 0x46, 0x07, 0x85, 0xc3,
+ 0xac, 0x60, 0x0a, 0x9f, 0x54, 0xe4, 0xb8, 0x01, 0x71, 0x9b, 0x9a, 0xf8,
+ 0xaa, 0x82, 0xd2, 0x78,
+ 0x04, 0xff, 0xa5, 0x4a, 0x23, 0x2a, 0x8d, 0xf1, 0xc5, 0x08, 0xf9, 0x27,
+ 0x67, 0xb6, 0xd7, 0xb0,
+ 0xcf, 0x6e, 0xa2, 0x76, 0x72, 0x6c, 0x48, 0x7a, 0xb8, 0x5d, 0x27, 0xbd,
+ 0x10, 0xdd, 0x84, 0x94,
+ 0x71, 0xea, 0xca, 0x27, 0x5a, 0x35, 0x26, 0xa0, 0xd8, 0xe2, 0x42, 0x2b,
+ 0x37, 0x99, 0x06, 0x31,
+ 0x6e, 0x83, 0x3c, 0xc4, 0x3b, 0x1d, 0x16, 0x06, 0xe5, 0xdc, 0xda, 0x55,
+ 0x7a, 0x8a, 0xa9, 0xd3,
+ 0x75, 0x15, 0x6f, 0x6d, 0x79, 0x1f, 0xab, 0x51, 0x1d, 0xea, 0xbb, 0x0c,
+ 0x50, 0x2f, 0xd1, 0x81,
+ 0x9b, 0xc0, 0x14, 0xfd, 0xa8, 0x0b, 0xb3, 0x02, 0xe2, 0xf5, 0xf7, 0x33,
+ 0x97, 0xc7, 0x67, 0xf0,
+ 0x5d, 0xdc, 0x87, 0xec, 0xe4, 0xd8, 0x90, 0xf4, 0xb3, 0xba, 0x4e, 0xb9,
+ 0x20, 0x79, 0xcb, 0xeb,
+ 0xe8, 0xb4, 0x6d, 0xff, 0x02, 0x2b, 0x32, 0x3b, 0xb9, 0x13, 0x28, 0xea,
+ 0x72, 0x05, 0xeb, 0x99,
+ 0xdb, 0xeb, 0xd6, 0xd7, 0xdd, 0xee, 0xb4, 0xc9, 0xef, 0x75, 0xbc, 0x06,
+ 0x28, 0xf6, 0x89, 0xa1,
+ 0x82, 0xc8, 0xf4, 0x71, 0x1a, 0x1c, 0xa9, 0xcc, 0x99, 0xc7, 0x0b, 0x98,
+ 0x6f, 0x39, 0x95, 0xfa,
+ 0xbe, 0x84, 0x68, 0x51, 0x28, 0x59, 0x6e, 0xda, 0x60, 0xbf, 0x65, 0x96,
+ 0x27, 0x44, 0x82, 0xa5,
+ 0xb8, 0xe5, 0x7e, 0x3e, 0xfb, 0x66, 0x44, 0xb2, 0x26, 0xb3, 0x01, 0x43,
+ 0x92, 0xa9, 0xdf, 0x4d,
+ 0xe7, 0xa7, 0x4a, 0xf7, 0xef, 0xab, 0x73, 0xdf, 0x16, 0x0d, 0xd2, 0x08,
+ 0x60, 0x8b, 0x9e, 0xfe,
+ 0x25, 0x44, 0x7c, 0xac, 0x80, 0x52, 0xdd, 0xd8, 0x82, 0x4a, 0x92, 0xa5,
+ 0xb0, 0x83, 0xe5, 0x55,
+ 0x8b, 0xba, 0xc5, 0x16, 0x24, 0xa3, 0xc2, 0x40, 0x70, 0xd5, 0x95, 0xaf,
+ 0xc8, 0x5a, 0xbd, 0x75,
+ 0x3b, 0x62, 0x32, 0xbc, 0x99, 0x91, 0x5f, 0xd3, 0x1f, 0x76, 0xa5, 0xa2,
+ 0x94, 0x5c, 0x0f, 0x9b,
+ 0x5a, 0xf2, 0x29, 0x70, 0x4f, 0x0c, 0x08, 0x31, 0x55, 0xb4, 0x85, 0x15,
+ 0xfc, 0x58, 0xd3, 0x2f,
+ 0xc7, 0x53, 0x2b, 0xe2, 0x34, 0x38, 0x91, 0x5b, 0xf1, 0x4d, 0x16, 0xf3,
+ 0xde, 0x72, 0xe9, 0x37,
+ 0xef, 0x9a, 0xc3, 0x63, 0xa9, 0xff, 0xaa, 0xfe, 0x5f, 0x1d, 0xe3, 0x46,
+ 0xae, 0x24, 0xf3, 0x5d,
+ 0x32, 0x10, 0x03, 0xdb, 0xa7, 0x2e, 0x34, 0x5f, 0xf6, 0x64, 0x3b, 0x95,
+ 0x33, 0x3f, 0x27, 0x14,
+ 0x6c, 0x1d, 0x8f, 0xe1, 0xcb, 0x08, 0xb1, 0x9f, 0x66, 0xd8, 0x47, 0xa7,
+ 0xa8, 0xd1, 0x23, 0x8b,
+ 0x8e, 0x0a, 0xd8, 0xaf, 0x7f, 0x62, 0xfd, 0x1c, 0x15, 0xdf, 0xc3, 0xf1,
+ 0xc6, 0x20, 0x2f, 0xe9,
+ 0x94, 0xd3, 0x33, 0xf5, 0x45, 0x8b, 0xf2, 0xe6, 0x4d, 0xeb, 0x0d, 0xd1,
+ 0x85, 0x49, 0x12, 0x97,
+ 0x93, 0xfd, 0x9d, 0x69, 0xee, 0x5f, 0x6a, 0x23, 0xab, 0xe5, 0xc6, 0x7d,
+ 0x59, 0x68, 0x0a, 0x53,
+ 0xa3, 0x73, 0x2d, 0x97, 0xb9, 0x64, 0xf9, 0xe5, 0xde, 0x85, 0x60, 0x1a,
+ 0xb8, 0x0c, 0xa7, 0x1f,
+ 0x67, 0xf1, 0x0d, 0xa3, 0x05, 0xa2, 0x7d, 0x8a, 0x0c, 0xce, 0x44, 0x62,
+ 0xdd, 0xe9, 0x81, 0x5c,
+ 0x46, 0x4a, 0xd4, 0x45, 0xa6, 0xda, 0x2d, 0xa3, 0x4b, 0x8c, 0x2f, 0xe0,
+ 0x0a, 0xdc, 0xb3, 0xb9,
+ 0x9d, 0xa1, 0x02, 0x92, 0x7b, 0x34, 0x99, 0x6a, 0xa4, 0xf9, 0x93, 0xe6,
+ 0x22, 0x2a, 0x3a, 0x18,
+ 0xb9, 0xaa, 0xc6, 0xcd, 0x83, 0x8d, 0xf6, 0x1f, 0x86, 0xb1, 0xae, 0x3a,
+ 0xfb, 0x65, 0x9a, 0x61,
+ 0x73, 0x74, 0x79, 0x02, 0xaa, 0x20, 0x81, 0x39, 0x5b, 0xe6, 0xdf, 0xd9,
+ 0xe5, 0xc2, 0x8c, 0x69,
+ 0xdf, 0x14, 0x73, 0x9d, 0xfe, 0xc4, 0x39, 0x38, 0x2a, 0x7d, 0x45, 0x21,
+ 0x4f, 0x40, 0x5e, 0x11,
+ 0xe5, 0x39, 0xf9, 0xd2, 0x1f, 0xbe, 0xd4, 0x46, 0x95, 0x09, 0x4f, 0xfa,
+ 0xb2, 0xd0, 0x14, 0xa6,
+ 0x26, 0x95, 0x77, 0x7a, 0x08, 0xac, 0xc8, 0xec, 0xa1, 0x4c, 0xa0, 0x2e,
+ 0x0b, 0x14, 0x2a, 0x21,
+ 0xde, 0x5b, 0xcb, 0x6e, 0x86, 0x2f, 0x8b, 0x95, 0x8a, 0x7f, 0xea, 0x58,
+ 0x26, 0x8c, 0x1b, 0x3d,
+ 0x80, 0x56, 0x47, 0x54, 0xea, 0x09, 0x0e, 0x55, 0x1a, 0xc3, 0x96, 0x6a,
+ 0xbd, 0x62, 0x1f, 0xa2,
+ 0xdd, 0x8a, 0xc0, 0xb8, 0x0e, 0xd1, 0x9e, 0xa1, 0xa9, 0x79, 0xd8, 0xd3,
+ 0x9d, 0x1b, 0xd4, 0x49,
+ 0x60, 0xdf, 0xa3, 0x3f, 0xae, 0x76, 0xe5, 0x4f, 0xea, 0xc0, 0x8f, 0xce,
+ 0x01, 0xc8, 0x99, 0x98,
+ 0xc5, 0xcd, 0x98, 0xc7, 0xc4, 0x2d, 0x36, 0xc2, 0x72, 0x49, 0x8b, 0x01,
+ 0x0c, 0x29, 0x63, 0x6f,
+ 0x50, 0x51, 0x13, 0xc1, 0xf9, 0x4d, 0x76, 0x89, 0x9f, 0xa0, 0x29, 0xa9,
+ 0xe0, 0xac, 0x34, 0xd4,
+ 0xbb, 0x34, 0x75, 0xe8, 0x73, 0x98, 0x51, 0x86, 0x05, 0xb5, 0x33, 0xc8,
+ 0x29, 0x3e, 0x10, 0x39,
+ 0xb7, 0xf6, 0x59, 0x36, 0x16, 0xe6, 0x05, 0x56, 0x89, 0xad, 0xfb, 0xa1,
+ 0x80, 0x27, 0xaa, 0x2a,
+ 0x0d, 0x8d, 0x94, 0x2d, 0x1d, 0x95, 0xe6, 0x7d, 0x2c, 0x1a, 0x67, 0x10,
+ 0xc0, 0xd5, 0xff, 0x3f,
+ 0x22, 0x6a, 0xd2, 0x30, 0x2b, 0x86, 0x45, 0x1d, 0x64, 0x44, 0x59, 0x09,
+ 0x6c, 0xa2, 0xfd, 0x91,
+ 0xf0, 0xf3, 0x35, 0x80, 0xc8, 0xd7, 0x9a, 0x58, 0x62, 0x23, 0x7b, 0x38,
+ 0xe3, 0x37, 0x5c, 0xbf,
+ 0x8a, 0xf5, 0x7d, 0xe5, 0x5c, 0x48, 0x70, 0xed, 0xd0, 0xd7, 0x3a, 0xd6,
+ 0xa1, 0x96, 0xf8, 0x59,
+ 0x98, 0x11, 0x1f, 0x2b, 0x20, 0xf5, 0xa6, 0x36, 0xc1, 0xf3, 0xc5, 0xb8,
+ 0x2c, 0x50, 0xa8, 0x84,
+ 0x3f, 0x9d, 0x97, 0xf6, 0xba, 0xbb, 0xd2, 0x22, 0xda, 0x7e, 0x5c, 0x85,
+ 0xf3, 0xea, 0xd8, 0x2b,
+ 0xd9, 0x75, 0x65, 0xf2, 0x2d, 0xfb, 0x13, 0x50, 0x6c, 0x71, 0x21, 0xf4,
+ 0xfa, 0xad, 0x03, 0xf9,
+ 0x81, 0x19, 0xff, 0xa7, 0x92, 0xe2, 0xbc, 0xf8, 0xba, 0xc1, 0x39, 0x13,
+ 0xd4, 0xae, 0x5a, 0x8e,
+ 0x3d, 0x03, 0x24, 0xd3, 0x4a, 0xae, 0x75, 0xbb, 0x59, 0x7a, 0xc1, 0x77,
+ 0x21, 0xb1, 0x52, 0x73,
+ 0x9e, 0x70, 0x09, 0x44, 0xf3, 0xca, 0x8c, 0x5e, 0x87, 0xff, 0xa1, 0x6d,
+ 0x99, 0xbd, 0xf5, 0x6c,
+ 0x09, 0x72, 0x31, 0x67, 0x3e, 0xbf, 0x6b, 0x8c, 0xe9, 0x12, 0x9e, 0x37,
+ 0xa7, 0x63, 0x28, 0x8f,
+ 0xd8, 0x3a, 0xdd, 0x01, 0x55, 0x10, 0xa1, 0xfd, 0xcc, 0x73, 0x8e, 0x8d,
+ 0x93, 0x61, 0x46, 0xd5,
+ 0x77, 0x8b, 0xdc, 0x48, 0x89, 0x0a, 0x0c, 0xc8, 0x9e, 0xee, 0x26, 0xfe,
+ 0x82, 0x74, 0x5b, 0xd9,
+ 0x6b, 0x33, 0x21, 0x7d, 0x60, 0xdc, 0x29, 0x5a, 0x80, 0xd6, 0x8c, 0x0b,
+ 0x74, 0xf0, 0x3b, 0x4f,
+ 0xe1, 0xc6, 0x5c, 0x98, 0x3c, 0x94, 0x59, 0xb7, 0x50, 0x01, 0xb6, 0xdd,
+ 0xd5, 0x66, 0xc3, 0x16,
+ 0xad, 0x2f, 0xb2, 0x6c, 0x2c, 0x0f, 0x0a, 0xac, 0xd1, 0x99, 0x35, 0x81,
+ 0xc3, 0x4e, 0x97, 0x54,
+ 0xe0, 0x89, 0xe4, 0x6b, 0x44, 0x7f, 0xeb, 0x1a, 0xf0, 0x03, 0x19, 0xa4,
+ 0xbc, 0xaa, 0x86, 0x3a,
+ 0x66, 0xbe, 0xb5, 0x50, 0x7d, 0x49, 0xcf, 0x27, 0xac, 0xcc, 0xeb, 0x1b,
+ 0xb4, 0x25, 0xc4, 0x70,
+ 0xf8, 0xce, 0xbc, 0x14, 0x8e, 0x83, 0x43, 0x79, 0x2b, 0x33, 0x4a, 0x76,
+ 0x2d, 0x98, 0x31, 0x1c,
+ 0x76, 0xc4, 0x64, 0xbb, 0xf1, 0xe1, 0xbe, 0x65, 0x3e, 0xec, 0x89, 0x87,
+ 0xeb, 0xb8, 0x1e, 0xf5,
+ 0x43, 0xfa, 0xc9, 0xfc, 0xfd, 0x1b, 0x12, 0xff, 0x2e, 0x86, 0x79, 0xbe,
+ 0x04, 0xa6, 0x21, 0x25,
+ 0x72, 0x3b, 0xc1, 0xf1, 0xd2, 0xcb, 0x33, 0x94, 0xfb, 0xe4, 0x70, 0xa0,
+ 0x8c, 0x0e, 0xc9, 0x45,
+ 0xf7, 0xdd, 0x9b, 0x1c, 0x63, 0x03, 0x02, 0x9d, 0x84, 0x2d, 0xb0, 0x94,
+ 0x3f, 0x16, 0x44, 0x7b,
+ 0x4e, 0x77, 0x5d, 0xd1, 0xe0, 0x8e, 0xf4, 0x82, 0x02, 0x9c, 0x1e, 0xae,
+ 0xc4, 0x73, 0xde, 0x1a,
+ 0xdc, 0xc5, 0x78, 0x4b, 0x76, 0x3a, 0x2c, 0x0c, 0x09, 0x7b, 0x77, 0xaa,
+ 0xf4, 0xd7, 0x91, 0x65,
+ 0x48, 0x16, 0x4b, 0xbe, 0x33, 0xb1, 0xde, 0xea, 0x44, 0x90, 0x7a, 0x7b,
+ 0x71, 0x9e, 0x83, 0xf2,
+ 0xda, 0xa4, 0x6e, 0x24, 0xa5, 0x05, 0x06, 0x64, 0x4f, 0x77, 0x13, 0x7f,
+ 0x41, 0x3a, 0xcc, 0x8d,
+ 0x69, 0xad, 0x92, 0x58, 0x90, 0xc9, 0x8e, 0xc3, 0x03, 0xd2, 0x11, 0xf9,
+ 0xa6, 0xab, 0xb1, 0x17,
+ 0xb0, 0xd8, 0xf7, 0xaa, 0xbd, 0x32, 0x9d, 0x93, 0x6f, 0xa3, 0x30, 0x0d,
+ 0x5c, 0x06, 0xb2, 0xee,
+ 0xd5, 0xb7, 0x49, 0x2c, 0x48, 0x85, 0x47, 0x80, 0xe0, 0x69, 0xe9, 0x9d,
+ 0x53, 0xb4, 0xb9, 0xea,
+ 0xf6, 0x92, 0x23, 0xef, 0x1b, 0xe8, 0xb0, 0x30, 0x24, 0x2f, 0x1f, 0xed,
+ 0x56, 0xda, 0x01, 0x57,
+ 0x7b, 0x49, 0xf0, 0x96, 0xec, 0x74, 0x58, 0x18, 0x12, 0xf6, 0xee, 0x97,
+ 0x2b, 0x6d, 0xe1, 0xca,
+ 0x41, 0x64, 0x7a, 0xd9, 0x0d, 0x0e, 0xb5, 0x66, 0xad, 0x82, 0xe4, 0x4c,
+ 0xd6, 0xfd, 0xab, 0x7d,
+ 0xcb, 0x91, 0x07, 0x3c, 0x51, 0x46, 0xc5, 0x8b, 0x7d, 0x55, 0xde, 0x9a,
+ 0x77, 0x6b, 0x53, 0x24,
+ 0x95, 0x9c, 0x8b, 0x06, 0x3d, 0x60, 0x40, 0x4b, 0xed, 0xe9, 0xa2, 0xa8,
+ 0xec, 0x85, 0x57, 0xbb,
+ 0xaa, 0x01, 0x1c, 0xf0, 0x87, 0xdb, 0x92, 0x69, 0x37, 0x97, 0xfe, 0x2d,
+ 0x1f, 0x6f, 0x8f, 0x90,
+ 0xe6, 0xe8, 0xf2, 0x04, 0x97, 0x40, 0xc1, 0x72, 0xb6, 0x0f, 0x7d, 0x71,
+ 0x09, 0x47, 0xdb, 0xd2,
+ 0x37, 0xa0, 0x1e, 0x62, 0xfc, 0xef, 0x0b, 0x03, 0x93, 0x6e, 0x6d, 0xcb,
+ 0x3d, 0x45, 0xb5, 0x88,
+ 0x21, 0xbb, 0xd9, 0xe6, 0xa3, 0x78, 0x50, 0x29, 0x47, 0x42, 0x6b, 0x82,
+ 0xd7, 0x35, 0x32, 0xe5,
+ 0x42, 0xb5, 0x71, 0x0f, 0x85, 0xf0, 0xa0, 0x52, 0x8e, 0x84, 0xd6, 0xc7,
+ 0x6d, 0x6a, 0x64, 0x09,
+ 0xd7, 0x29, 0xfa, 0x09, 0xb8, 0x90, 0xe0, 0x19, 0x63, 0x6d, 0x74, 0x6f,
+ 0x81, 0xef, 0x33, 0xb2,
+ 0xc2, 0xe3, 0x36, 0x5b, 0x6f, 0xf9, 0xae, 0x07, 0x94, 0x47, 0x40, 0xad,
+ 0xd0, 0x08, 0x7b, 0xab,
+ 0x74, 0x5a, 0xd7, 0x9e, 0x01, 0xf4, 0x19, 0xfc, 0xbd, 0xe8, 0x14, 0x75,
+ 0x39, 0xe3, 0x94, 0xad,
+ 0xe2, 0x17, 0x57, 0x4e, 0xb4, 0x6a, 0x4c, 0x83, 0x73, 0x07, 0x84, 0x56,
+ 0x6e, 0xf1, 0x0c, 0x62,
+ 0x91, 0x63, 0x2e, 0x4c, 0x1e, 0x4a, 0xcd, 0xba, 0x28, 0xe1, 0x5b, 0x8f,
+ 0x8b, 0x33, 0x80, 0x0b,
+ 0x23, 0x25, 0x6a, 0xc3, 0x53, 0x6d, 0xf7, 0xb0, 0xc4, 0x46, 0xf6, 0x70,
+ 0x05, 0x6e, 0xb8, 0xbd,
+ 0xc0, 0x7d, 0x85, 0x7e, 0x9f, 0xec, 0x09, 0x9e, 0x17, 0x43, 0xdd, 0x5f,
+ 0x02, 0x53, 0xf1, 0xf3,
+ 0x64, 0x20, 0x06, 0x75, 0x8d, 0x5c, 0x68, 0xbe, 0x2f, 0xc8, 0x76, 0xe9,
+ 0x66, 0x7e, 0x4e, 0x28,
+ 0x0f, 0x13, 0x27, 0x08, 0xed, 0x80, 0x41, 0xe4, 0xaf, 0x1e, 0xfa, 0xe2,
+ 0x12, 0x8e, 0x75, 0x67,
+ 0x63, 0x0e, 0xa8, 0xe9, 0x26, 0x88, 0xf0, 0x7b, 0xc9, 0xc6, 0xbd, 0x45,
+ 0xba, 0x5f, 0x56, 0xec,
+ 0xa8, 0x9f, 0xaf, 0xd5, 0x77, 0xce, 0x35, 0xf0, 0xb4, 0x93, 0x63, 0xdf,
+ 0xcd, 0x34, 0x05, 0xc8,
+ 0x55, 0xe1, 0x0e, 0x78, 0xa2, 0x8c, 0x49, 0xd5, 0xfa, 0xaa, 0x7f, 0xf7,
+ 0xee, 0xd6, 0xa6, 0x48,
+ 0xbd, 0x55, 0x63, 0x87, 0xa0, 0xa7, 0x7b, 0xee, 0x43, 0xb9, 0x57, 0x1d,
+ 0x9c, 0xd3, 0x4d, 0xd1,
+ 0x9a, 0x8f, 0xac, 0x0e, 0xd0, 0xe0, 0x01, 0xaf, 0x42, 0xf7, 0x58, 0x4a,
+ 0xfe, 0x0b, 0x22, 0xdc,
+ 0x03, 0xd1, 0x0b, 0xd6, 0x88, 0xfe, 0x15, 0x34, 0x23, 0x06, 0x32, 0x8b,
+ 0xbb, 0x97, 0xcf, 0x74,
+ 0xc8, 0x40, 0x0c, 0xea, 0xd9, 0xb8, 0xd0, 0xbf, 0x5e, 0x53, 0xec, 0x11,
+ 0xcc, 0xfc, 0x9c, 0x50,
+ 0xc4, 0x82, 0x20, 0x34, 0xbc, 0xc6, 0x84, 0x6f, 0xd2, 0x4b, 0x24, 0x78,
+ 0x65, 0xe5, 0x26, 0x43,
+ 0x6d, 0x52, 0x37, 0x12, 0xb3, 0xe3, 0x03, 0x32, 0xc6, 0xda, 0xe8, 0xde,
+ 0xc1, 0x1d, 0x66, 0xa7,
+ 0x92, 0xb2, 0x25, 0x9a, 0x96, 0xb4, 0xd8, 0x8e, 0x0b, 0xe7, 0x69, 0x04,
+ 0x30, 0xa4, 0x4f, 0x7f,
+ 0x49, 0x59, 0xf3, 0x4d, 0x4b, 0x5a, 0x6c, 0x47, 0xe4, 0x92, 0xd5, 0x02,
+ 0x18, 0x52, 0xc6, 0xde,
+ 0x9f, 0x3f, 0xb1, 0xb7, 0x8b, 0x21, 0x3e, 0xf3, 0x27, 0xfd, 0x0e, 0x14,
+ 0xf0, 0x71, 0xb0, 0x40,
+ 0x44, 0xd4, 0x67, 0x60, 0x56, 0xcf, 0x8a, 0x3a, 0xc8, 0x88, 0xb2, 0x12,
+ 0xd8, 0x87, 0x39, 0xe1,
+ 0x2d, 0x79, 0xf5, 0x38, 0xc6, 0x06, 0x04, 0xf9, 0xcb, 0x5a, 0xa3, 0xeb,
+ 0x7e, 0x2c, 0x88, 0xf6,
+ 0x2f, 0xe7, 0x46, 0x1d, 0x36, 0x13, 0xa3, 0x60, 0x48, 0x5e, 0x3e, 0x19,
+ 0xac, 0x77, 0x02, 0xae,
+ 0x36, 0xef, 0xa6, 0x91, 0x84, 0x04, 0xb9, 0xae, 0x33, 0x6c, 0xc2, 0xb2,
+ 0x54, 0x89, 0xf0, 0xa4,
+ 0x15, 0xca, 0xcc, 0x52, 0xd7, 0x69, 0x4e, 0x1e, 0xf7, 0x2a, 0x34, 0xc2,
+ 0x51, 0xe7, 0x48, 0x19,
+ 0x18, 0x47, 0x58, 0x7f, 0xca, 0xfc, 0xa8, 0x63, 0xdb, 0x30, 0x53, 0xd2,
+ 0x91, 0x32, 0xb7, 0x26,
+ 0x70, 0xa5, 0x72, 0xd4, 0x22, 0xde, 0x94, 0x0d, 0x78, 0xe0, 0xed, 0x52,
+ 0x5e, 0x55, 0x43, 0x1d,
+ 0xfe, 0xaf, 0xaa, 0x7b, 0x5d, 0xbc, 0x69, 0x11, 0x6d, 0x3f, 0x2e, 0xa3,
+ 0x98, 0x75, 0x6c, 0xf4,
+ 0x2e, 0xa8, 0xfe, 0xee, 0x4e, 0xf8, 0x11, 0xcd, 0xe8, 0x5c, 0x91, 0x60,
+ 0xc5, 0xbb, 0x47, 0x82,
+ 0x5c, 0x93, 0x3f, 0x1f, 0x9c, 0x33, 0x22, 0x59, 0x13, 0xb8, 0xe1, 0xc0,
+ 0x49, 0xb5, 0x8e, 0xc7,
+ 0xa1, 0xed, 0x9e, 0xb2, 0x49, 0x71, 0x5e, 0x7c, 0x5d, 0x81, 0xfd, 0xe8,
+ 0x6a, 0x57, 0x2d, 0x47,
+ 0xa6, 0xc3, 0x30, 0x2e, 0xe2, 0xa5, 0xc6, 0xb9, 0xbb, 0x8f, 0x36, 0x44,
+ 0xb6, 0x76, 0x35, 0x83,
+ 0xea, 0x2a, 0xde, 0xda, 0xf2, 0x3e, 0x95, 0xa2, 0x3a, 0x17, 0xb5, 0x18,
+ 0xa0, 0x5e, 0x61, 0xc1,
+ 0x1b, 0x96, 0x53, 0xa9, 0x42, 0x02, 0xbd, 0x57, 0xf8, 0x36, 0x61, 0x59,
+ 0x2a, 0xa5, 0x78, 0x52,
+ 0x90, 0x2c, 0x96, 0xbf, 0x66, 0xa1, 0x7f, 0x17, 0x88, 0xe3, 0xf4, 0xf6,
+ 0xe2, 0xff, 0xc5, 0x27,
+ 0xa4, 0x5d, 0x83, 0x0b, 0x12, 0xb0, 0x61, 0x20, 0x38, 0x8b, 0xab, 0xb6,
+ 0x64, 0x2d, 0xbf, 0xdb,
+ 0x68, 0xe2, 0x2a, 0xab, 0xe8, 0x22, 0x3c, 0x6e, 0xa3, 0xd0, 0xbe, 0x80,
+ 0xcf, 0x67, 0xf4, 0x3b,
+ 0x57, 0x7f, 0xbd, 0x5d, 0x52, 0x99, 0xee, 0x4c, 0x79, 0xae, 0xe2, 0x05,
+ 0x3c, 0x8d, 0x2c, 0x10,
+ 0xfd, 0x7e, 0xa1, 0xad, 0xd5, 0x42, 0x7c, 0x25, 0x4e, 0x39, 0x1c, 0x28,
+ 0x23, 0xe2, 0xa3, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x35, 0x3e, 0xad, 0x47, 0x0c, 0xfa, 0xac, 0x9a, 0x10, 0x6a, 0xf0, 0x39,
+ 0xef, 0x1e, 0x3f, 0xd0,
+ 0x4b, 0xc7, 0x40, 0x68, 0xbb, 0x4f, 0xcb, 0xde, 0x67, 0x96, 0x48, 0xf0,
+ 0xca, 0x09, 0x4c, 0x86,
+ 0x47, 0x05, 0x6c, 0xb6, 0xde, 0x31, 0x9f, 0x0e, 0xeb, 0x8e, 0x80, 0x99,
+ 0x63, 0x10, 0xf6, 0x95,
+ 0xa2, 0x3c, 0x95, 0x64, 0xc1, 0x8f, 0x4b, 0x48, 0x7e, 0x87, 0xcf, 0x63,
+ 0xd1, 0xc0, 0xe2, 0x33,
+ 0x83, 0x87, 0x4c, 0x82, 0x62, 0xf7, 0x1b, 0x61, 0x39, 0xc5, 0xa4, 0xe1,
+ 0x06, 0xf5, 0xd0, 0xd6,
+ 0x7c, 0x67, 0x5e, 0x0a, 0x47, 0xa0, 0xc0, 0xdd, 0xf4, 0xf8, 0x25, 0x3b,
+ 0xf7, 0x4c, 0xf9, 0x0e,
+ 0xd2, 0x99, 0xe7, 0xb0, 0xe3, 0x51, 0xdf, 0x45, 0x06, 0x67, 0x22, 0x31,
+ 0x8f, 0x95, 0xa1, 0x2e,
+ 0x13, 0xab, 0xda, 0x3d, 0x04, 0x56, 0x64, 0x76, 0xb1, 0x26, 0x50, 0x17,
+ 0xe4, 0x0a, 0x15, 0xf1,
+ 0x7e, 0xf9, 0xed, 0x2f, 0xb7, 0xb5, 0x67, 0x44, 0x77, 0xfc, 0xb8, 0xc9,
+ 0x25, 0x17, 0x73, 0x56,
+ 0x3e, 0xd2, 0x2f, 0x05, 0xc2, 0x50, 0x60, 0x8f, 0x7a, 0x7c, 0xf3, 0xfc,
+ 0x9a, 0x26, 0x9d, 0x07,
+ 0x7a, 0x06, 0x48, 0x65, 0x94, 0x9f, 0xea, 0xb5, 0xb2, 0xf4, 0x41, 0xee,
+ 0x42, 0xa1, 0xa4, 0xe6,
+ 0x84, 0xa9, 0xe2, 0x1e, 0xc9, 0x23, 0x83, 0xa4, 0xdf, 0xcb, 0x6f, 0x4d,
+ 0xda, 0xd4, 0xc8, 0x12,
+ 0x16, 0x1b, 0xc7, 0x84, 0x5f, 0x97, 0x5b, 0x2a, 0xd4, 0x2c, 0x06, 0x49,
+ 0xea, 0x70, 0x87, 0x6d,
+ 0xd1, 0x48, 0xec, 0x66, 0x6b, 0xaf, 0xca, 0x71, 0x25, 0x61, 0x10, 0xba,
+ 0x34, 0x02, 0x6e, 0x5a,
+ 0xb1, 0x97, 0x4f, 0x59, 0xc5, 0xd9, 0x2f, 0x3e, 0xcf, 0xa1, 0x9f, 0x74,
+ 0x35, 0xca, 0xf7, 0xc2,
+ 0x0c, 0xc2, 0x2c, 0xde, 0x65, 0x7e, 0x54, 0xd0, 0x8c, 0x18, 0xc8, 0x69,
+ 0xa9, 0x19, 0xba, 0x13,
+ 0x29, 0x86, 0x50, 0x72, 0xe5, 0x2c, 0x89, 0x08, 0x0e, 0x52, 0x5a, 0xcc,
+ 0x19, 0x9a, 0x5f, 0x46,
+ 0x06, 0x61, 0x16, 0x6f, 0xd3, 0x3f, 0x2a, 0x68, 0x46, 0x0c, 0x64, 0xd5,
+ 0xb5, 0xed, 0x5d, 0xe8,
+ 0x2c, 0x36, 0x4d, 0xcb, 0xbe, 0xed, 0xb6, 0x54, 0x6b, 0x58, 0x0c, 0x92,
+ 0x17, 0xe0, 0xcd, 0xda,
+ 0x2a, 0x57, 0x5b, 0xa4, 0x6d, 0xd2, 0x9c, 0x3c, 0x2d, 0x54, 0x68, 0x47,
+ 0xa2, 0x0d, 0x90, 0x32,
+ 0xcd, 0xf0, 0x11, 0x53, 0x82, 0x79, 0xef, 0xe3, 0x3b, 0x59, 0xba, 0x4f,
+ 0xc2, 0x86, 0x0e, 0xcc,
+ 0x07, 0x2e, 0xae, 0x9c, 0xab, 0xd4, 0x98, 0xc5, 0xe6, 0x0e, 0xcb, 0xac,
+ 0xdc, 0x21, 0x18, 0xc4,
+ 0x10, 0x7a, 0xd1, 0xeb, 0x8c, 0xa8, 0x71, 0x42, 0x92, 0x20, 0x62, 0x9c,
+ 0x5f, 0x9d, 0xda, 0x85,
+ 0x08, 0x3d, 0x89, 0x94, 0x46, 0x54, 0xd9, 0x21, 0x49, 0x10, 0x31, 0x4e,
+ 0xce, 0xaf, 0x6d, 0xa3,
+ 0xf9, 0x81, 0x04, 0xe7, 0xf6, 0x68, 0xf1, 0xd4, 0x8b, 0x31, 0xe5, 0x0f,
+ 0x44, 0x54, 0x74, 0x30,
+ 0x11, 0x35, 0x69, 0x18, 0xf4, 0x43, 0xc3, 0xef, 0x32, 0x22, 0xcd, 0xe5,
+ 0x36, 0x51, 0x9f, 0xa9,
+ 0x28, 0xc9, 0xe8, 0x81, 0x9d, 0xc7, 0x3b, 0xa5, 0xae, 0x50, 0xf5, 0xb5,
+ 0x70, 0x56, 0x1a, 0x6a,
+ 0xeb, 0x65, 0x66, 0x29, 0x8a, 0xd5, 0x27, 0x0f, 0x9a, 0x15, 0x1a, 0x61,
+ 0xc9, 0x92, 0x24, 0xed,
+ 0x87, 0x78, 0xe9, 0xc8, 0x41, 0xdd, 0x96, 0x90, 0xfc, 0xcd, 0x5d, 0xc6,
+ 0x61, 0x43, 0x07, 0x66,
+ 0xf1, 0xbc, 0x8d, 0x73, 0xb0, 0x3c, 0x28, 0xf5, 0xc2, 0x21, 0xd4, 0x41,
+ 0x8a, 0xfb, 0x19, 0x93,
+ 0xc6, 0x1c, 0x93, 0x11, 0x4c, 0xd3, 0x23, 0xf6, 0x51, 0x4f, 0xb9, 0x8a,
+ 0xb7, 0xbe, 0xac, 0x1b,
+ 0xb5, 0x68, 0xea, 0x13, 0xe6, 0xf3, 0xa2, 0xcf, 0x0a, 0xa9, 0x66, 0x53,
+ 0x52, 0x7c, 0x20, 0x72,
+ 0x6f, 0xcc, 0x84, 0x37, 0x43, 0xf6, 0xa4, 0xab, 0x45, 0xde, 0x75, 0x2c,
+ 0x13, 0x46, 0xec, 0xff,
+ 0xcc, 0xbf, 0xa9, 0xa0, 0xfa, 0x92, 0x5d, 0x4e, 0x9b, 0x5b, 0x15, 0x36,
+ 0xab, 0x4a, 0x4b, 0xe0,
+ 0x34, 0x71, 0x15, 0xb4, 0x74, 0x11, 0x1e, 0x37, 0xb0, 0x68, 0x5f, 0x40,
+ 0x86, 0xd2, 0x7a, 0xfc,
+ 0x1c, 0xb8, 0xfd, 0x35, 0xe9, 0xd6, 0x25, 0x92, 0x1e, 0x38, 0xaa, 0xf5,
+ 0xf6, 0x84, 0x60, 0x96,
+ 0x4d, 0xa6, 0x56, 0x07, 0x68, 0x70, 0xe1, 0xb6, 0x21, 0x9a, 0x2c, 0x25,
+ 0x7f, 0xe4, 0x11, 0x6e,
+ 0xf3, 0x22, 0x3e, 0x56, 0x40, 0x29, 0x8f, 0x6c, 0x41, 0x25, 0x49, 0xb3,
+ 0x58, 0xa0, 0x93, 0xcb,
+ 0x96, 0x4d, 0x80, 0xd0, 0xb5, 0x9e, 0x55, 0x7f, 0xce, 0xef, 0x90, 0x23,
+ 0x57, 0x12, 0x98, 0xcf,
+ 0x05, 0xb0, 0x1d, 0xb9, 0x5b, 0xc1, 0x3f, 0x5c, 0x65, 0x0a, 0x56, 0x5e,
+ 0x0e, 0x7a, 0x92, 0x9c,
+ 0x61, 0x90, 0x1b, 0xcc, 0xd6, 0x9d, 0x57, 0xe2, 0x4a, 0xc2, 0x20, 0xb7,
+ 0x68, 0x04, 0xdc, 0xb4,
+ 0x59, 0x23, 0x22, 0xa6, 0xc7, 0xf2, 0x1d, 0x05, 0x76, 0xb2, 0xb7, 0x9e,
+ 0x47, 0xcf, 0x1c, 0x5b,
+ 0x86, 0x37, 0x51, 0x3b, 0x39, 0x36, 0x24, 0x3d, 0x5c, 0xcf, 0xf2, 0xbf,
+ 0x08, 0x8f, 0x42, 0x4a,
+ 0x88, 0x6b, 0xce, 0xc0, 0xac, 0x5d, 0xd7, 0x74, 0x53, 0xd3, 0xa7, 0x24,
+ 0x73, 0xcd, 0x72, 0x01,
+ 0xb3, 0x09, 0xfc, 0x7c, 0x35, 0xcc, 0x88, 0xa7, 0x4c, 0xa5, 0x02, 0x86,
+ 0xe7, 0x91, 0x7d, 0x9a,
+ 0x89, 0x24, 0x76, 0x33, 0xd4, 0xb6, 0x65, 0xd9, 0xf3, 0xd1, 0x08, 0x5d,
+ 0x1a, 0x01, 0x37, 0x2d,
+ 0xfc, 0x31, 0x19, 0x5e, 0xad, 0xa9, 0xce, 0x88, 0xee, 0x3b, 0xb3, 0x51,
+ 0x4a, 0x2e, 0xe6, 0xac,
+ 0xab, 0x4e, 0xa4, 0x03, 0xff, 0x30, 0x20, 0xc4, 0x97, 0x95, 0x51, 0x54,
+ 0x76, 0xa3, 0xca, 0xbc,
+ 0x53, 0x80, 0x18, 0x17, 0x71, 0xb3, 0x63, 0xbd, 0xbc, 0xa6, 0x1b, 0x22,
+ 0x5b, 0x3b, 0xfb, 0xa0,
+ 0xb4, 0x27, 0x52, 0xe0, 0x9e, 0x18, 0x10, 0x62, 0xaa, 0xab, 0xc9, 0x2a,
+ 0x3b, 0xb0, 0x65, 0x5e,
+ 0xe3, 0x58, 0xef, 0xbd, 0xcc, 0x81, 0xfe, 0x2e, 0xd3, 0x05, 0x2b, 0x2f,
+ 0x07, 0x3d, 0x49, 0x4e,
+ 0xce, 0x21, 0x1a, 0x85, 0x0a, 0x87, 0xfa, 0xd7, 0x18, 0x5f, 0x88, 0xc4,
+ 0x79, 0x11, 0xc1, 0xb8,
+ 0x52, 0xcf, 0xa0, 0xe4, 0x09, 0x58, 0xd1, 0x10, 0x1c, 0xa4, 0xb4, 0x5b,
+ 0x32, 0xf7, 0xbe, 0x8c,
+ 0x8c, 0x94, 0x6b, 0x8a, 0x8f, 0x77, 0x5a, 0x85, 0x96, 0xdb, 0x5e, 0x03,
+ 0x14, 0x7b, 0xa5, 0xb1,
+ 0x3a, 0x2d, 0x8a, 0x4f, 0xe1, 0x7a, 0xed, 0x7e, 0xbf, 0x74, 0x0a, 0xdb,
+ 0xfd, 0x90, 0x4a, 0xb7,
+ 0xca, 0xde, 0xbf, 0xcf, 0x29, 0xad, 0x77, 0x26, 0xdd, 0x57, 0x71, 0xe3,
+ 0x1e, 0xa7, 0x16, 0x08,
+ 0x54, 0xae, 0xb6, 0x8b, 0xda, 0x67, 0xfb, 0x78, 0x5a, 0xa8, 0xd0, 0x8e,
+ 0x87, 0x1a, 0xe3, 0x64,
+ 0xa7, 0x8c, 0x88, 0xdd, 0x9a, 0x4e, 0x74, 0x14, 0x1b, 0x8d, 0x99, 0x3d,
+ 0xdf, 0xba, 0x70, 0xaf,
+ 0x99, 0x5e, 0xa7, 0xd8, 0x58, 0x1e, 0x14, 0x9b, 0x61, 0xf1, 0x6a, 0xc1,
+ 0x45, 0x9c, 0xed, 0xa8,
+ 0x0a, 0xa3, 0x3a, 0xb1, 0xb6, 0x41, 0x7e, 0xb8, 0xca, 0x14, 0xac, 0xbc,
+ 0x1c, 0xf4, 0xe7, 0xfb,
+ 0x40, 0x2b, 0xc2, 0x2a, 0x75, 0xe5, 0x07, 0xcb, 0x0d, 0x80, 0x4b, 0x35,
+ 0xbf, 0x31, 0xee, 0x51,
+ 0x02, 0x9e, 0xb3, 0x25, 0xf0, 0x15, 0xa7, 0x99, 0x83, 0x04, 0x9d, 0xf2,
+ 0xd2, 0x5b, 0x8a, 0x58,
+ 0x5b, 0xbd, 0x91, 0x83, 0x37, 0xe7, 0xba, 0x9c, 0xf5, 0xb6, 0x2a, 0x6c,
+ 0x95, 0x94, 0x96, 0x03,
+ 0xbc, 0x1a, 0xdb, 0x74, 0xd8, 0x4c, 0xc9, 0x43, 0xe3, 0xbb, 0xf8, 0x64,
+ 0xf5, 0x1f, 0x08, 0xfd,
+ 0x78, 0x98, 0xfb, 0x40, 0x64, 0x8a, 0x4d, 0x2c, 0x31, 0xf0, 0xdc, 0x1c,
+ 0x90, 0xfa, 0x2e, 0xbe,
+ 0x79, 0xd7, 0x43, 0xb3, 0x1c, 0x61, 0xff, 0x81, 0x91, 0xf2, 0x73, 0x65,
+ 0xf9, 0x36, 0x6b, 0x92,
+ 0xf5, 0x43, 0x28, 0x39, 0x93, 0x16, 0xa5, 0x04, 0x07, 0x29, 0x2d, 0x66,
+ 0xed, 0x4d, 0xce, 0x23,
+ 0xa9, 0xd0, 0x17, 0x26, 0x0f, 0x25, 0x87, 0x5d, 0x14, 0x91, 0xcc, 0xa6,
+ 0xa4, 0xf8, 0x40, 0xe4,
+ 0xec, 0x4b, 0xc8, 0xb5, 0x21, 0x01, 0xbf, 0xca, 0x7c, 0x1b, 0xd1, 0xcd,
+ 0x15, 0xb3, 0x3c, 0x29,
+ 0x7d, 0x28, 0xe6, 0xf9, 0x3f, 0x4b, 0x72, 0x70, 0x54, 0xfa, 0x8a, 0x42,
+ 0x9e, 0x80, 0xbc, 0x22,
+ 0x45, 0x9b, 0xdf, 0x93, 0x2e, 0x24, 0x38, 0x97, 0x68, 0x8a, 0x1d, 0x6b,
+ 0xb1, 0x4b, 0x7c, 0xcd,
+ 0x3c, 0x4c, 0x9c, 0x20, 0x32, 0x45, 0xc7, 0x16, 0xf9, 0x78, 0x6e, 0x0e,
+ 0x48, 0x7d, 0x17, 0x5f,
+ 0x65, 0x6f, 0xbe, 0x86, 0xf5, 0xb7, 0xda, 0x13, 0x8f, 0xca, 0xd9, 0x90,
+ 0x0f, 0xb2, 0x0b, 0x04,
+ 0x01, 0x4f, 0xb8, 0xf3, 0x78, 0xeb, 0xb2, 0xad, 0xa0, 0x02, 0xaf, 0x79,
+ 0x69, 0xcc, 0x45, 0x2c,
+ 0x24, 0x0b, 0xc4, 0x5f, 0xf8, 0xb9, 0x6f, 0x75, 0x22, 0x48, 0x3d, 0xdc,
+ 0xd9, 0x4f, 0xa0, 0x79,
+ 0x5f, 0x42, 0x34, 0xc9, 0x14, 0xcd, 0x37, 0x6d, 0x30, 0xbe, 0xd3, 0x4b,
+ 0xf2, 0x22, 0x41, 0xb3,
+ 0x7f, 0xb6, 0x55, 0xdc, 0xcf, 0x5e, 0xd5, 0xe9, 0xd7, 0xfe, 0x17, 0xb0,
+ 0x4c, 0xdb, 0x36, 0x7a,
+ 0x20, 0xf4, 0x61, 0x15, 0xdb, 0x93, 0xe2, 0x84, 0xe7, 0x40, 0xc4, 0xfb,
+ 0xbe, 0xf9, 0x77, 0xc9,
+ 0xae, 0xfe, 0xb9, 0xba, 0xa4, 0xf1, 0x1f, 0x98, 0xf2, 0x9f, 0x07, 0x0a,
+ 0x78, 0xd9, 0x58, 0x20,
+ 0x5e, 0x0d, 0x8c, 0x3a, 0x6c, 0x26, 0x85, 0xc0, 0x90, 0xbc, 0x7c, 0x32,
+ 0x9b, 0xee, 0x04, 0x9f,
+ 0xaf, 0xb1, 0x01, 0x49, 0xdc, 0x1a, 0xad, 0x35, 0x52, 0x9d, 0xa8, 0x73,
+ 0x11, 0x15, 0x1d, 0x0c,
+ 0xd0, 0x07, 0x54, 0x95, 0x13, 0x44, 0x78, 0xdc, 0x85, 0x63, 0xbf, 0xc3,
+ 0x5d, 0xce, 0x2b, 0x76,
+ 0xb2, 0x46, 0x44, 0x8f, 0x4d, 0x27, 0x3a, 0x0a, 0xec, 0xa7, 0xad, 0xff,
+ 0x8e, 0x5d, 0x38, 0xb6,
+ 0x8f, 0x45, 0x60, 0x5c, 0x07, 0x89, 0x4f, 0xb1, 0xb5, 0xdd, 0x6c, 0x88,
+ 0xaf, 0xec, 0x6a, 0xc5,
+ 0x27, 0xda, 0xcf, 0x89, 0x70, 0x47, 0x7a, 0x41, 0x01, 0x4e, 0x0f, 0x57,
+ 0x62, 0xd8, 0x6f, 0x0d,
+ 0x8d, 0xdb, 0xd3, 0x79, 0xf7, 0x9c, 0xe8, 0x28, 0x36, 0xd9, 0xf1, 0x7a,
+ 0x7d, 0xb7, 0xe0, 0x9d,
+ 0x4c, 0xe9, 0xee, 0xf4, 0x10, 0x9b, 0x53, 0x1b, 0x81, 0x98, 0x83, 0x5c,
+ 0x16, 0x28, 0x54, 0x42,
+ 0xd4, 0xf8, 0xf1, 0xdf, 0x30, 0x6e, 0xf5, 0x2d, 0x40, 0x6b, 0x46, 0xe4,
+ 0x3a, 0x78, 0xfc, 0xc6,
+ 0xfa, 0x50, 0x0f, 0x31, 0x7e, 0x96, 0xe4, 0xe0, 0xa8, 0x37, 0xd7, 0x84,
+ 0xff, 0xc3, 0xbb, 0x44,
+ 0xf2, 0x6d, 0x86, 0xa5, 0x38, 0xc2, 0x3d, 0xc1, 0xe1, 0x27, 0xe6, 0xca,
+ 0x31, 0x6c, 0xd6, 0xe7,
+ },
+ { /* 1 */
+ 0x2f, 0x36, 0x58, 0xea, 0xa2, 0x0c, 0x25, 0xcf, 0x7c, 0xd9, 0x9e, 0x49,
+ 0x92, 0xd3, 0x50, 0x36,
+ 0x48, 0x33, 0xd6, 0x3a, 0x7e, 0x8c, 0x82, 0xb8, 0xf4, 0x6c, 0x87, 0xe4,
+ 0x0b, 0xa6, 0x9f, 0x33,
+ 0x5c, 0x9c, 0xe9, 0x76, 0x65, 0xa2, 0xaf, 0xd9, 0x01, 0x72, 0x0a, 0x54,
+ 0xa8, 0x81, 0x94, 0x9c,
+ 0x0c, 0x65, 0x15, 0x85, 0x09, 0x1a, 0x1b, 0x9e, 0x53, 0x0a, 0x7b, 0xd1,
+ 0x61, 0x1d, 0xb8, 0x65,
+ 0x3b, 0x99, 0x67, 0xa6, 0xb9, 0x22, 0x08, 0xae, 0x89, 0xc7, 0x13, 0xf9,
+ 0x31, 0xf4, 0x5b, 0x99,
+ 0x62, 0x5e, 0xf1, 0xc3, 0xaa, 0x6a, 0x3d, 0xfe, 0x24, 0x53, 0xab, 0x81,
+ 0xc1, 0x0c, 0xbd, 0x5e,
+ 0xe7, 0xef, 0x6c, 0x2a, 0x3c, 0xc2, 0x44, 0x6e, 0x67, 0x75, 0x70, 0x59,
+ 0xb2, 0xd6, 0x51, 0xef,
+ 0x42, 0x85, 0x28, 0x1c, 0x92, 0x9b, 0x75, 0x69, 0x6f, 0x63, 0x20, 0xbc,
+ 0xbb, 0x54, 0x7b, 0x85,
+ 0x61, 0xd6, 0x65, 0x73, 0x39, 0x8d, 0x4b, 0x38, 0x40, 0xb0, 0xc5, 0x24,
+ 0x48, 0x9a, 0x93, 0xd6,
+ 0x1a, 0x3a, 0x73, 0xa8, 0xf0, 0x8e, 0xd3, 0x7b, 0x5f, 0x17, 0x03, 0xa7,
+ 0x8d, 0xde, 0x87, 0x3a,
+ 0xf9, 0xf6, 0xad, 0x40, 0xcb, 0xfb, 0x9e, 0xde, 0x09, 0x64, 0x5a, 0xb1,
+ 0xa1, 0x03, 0xbe, 0xf6,
+ 0x12, 0x7c, 0xd4, 0xef, 0xfe, 0x23, 0xc1, 0x2e, 0x3d, 0x1b, 0x51, 0x39,
+ 0x72, 0xc8, 0x57, 0x7c,
+ 0x80, 0xea, 0xe2, 0xfa, 0xe0, 0x42, 0xe3, 0x19, 0xef, 0xc0, 0x69, 0xf4,
+ 0x2b, 0xa3, 0x9e, 0xea,
+ 0x82, 0x1a, 0xbb, 0x9b, 0x02, 0xf8, 0x06, 0x9d, 0x16, 0xc3, 0x9c, 0x32,
+ 0x64, 0x47, 0xaa, 0x1a,
+ 0x25, 0x80, 0xa6, 0xcc, 0x4e, 0x1b, 0xd2, 0x1e, 0xe7, 0xd6, 0x39, 0x11,
+ 0x22, 0x21, 0xb4, 0x80,
+ 0xe2, 0xb4, 0x13, 0x39, 0x4a, 0x28, 0xde, 0xe7, 0xcb, 0x93, 0xc2, 0x75,
+ 0xea, 0xaf, 0x23, 0xb4,
+ 0x06, 0xd3, 0xeb, 0xa3, 0xe5, 0x0d, 0xec, 0x4f, 0xc8, 0x05, 0xdc, 0x89,
+ 0xd1, 0xef, 0x5c, 0xd3,
+ 0x24, 0xf8, 0x6b, 0x1d, 0x3f, 0x46, 0x41, 0x5c, 0x7a, 0x36, 0xa2, 0x72,
+ 0xe4, 0x53, 0xae, 0xf8,
+ 0x40, 0x75, 0x71, 0x7d, 0x70, 0x21, 0x90, 0xed, 0x96, 0x60, 0xd5, 0x7a,
+ 0xf4, 0xb0, 0x4f, 0x75,
+ 0x8a, 0x5c, 0x1c, 0xdc, 0x0c, 0x55, 0x14, 0xc8, 0x74, 0xcf, 0xce, 0xac,
+ 0x9b, 0x51, 0x7a, 0x5c,
+ 0xd5, 0x48, 0x61, 0x1a, 0xfa, 0x10, 0xcd, 0xd7, 0x11, 0x5e, 0xaa, 0x5d,
+ 0xba, 0x46, 0xc0, 0x48,
+ 0x77, 0x89, 0x03, 0x5e, 0xc0, 0x19, 0x83, 0xdd, 0x4c, 0xad, 0xbd, 0x52,
+ 0xa4, 0x59, 0xac, 0x89,
+ 0x6c, 0xcb, 0xbd, 0x27, 0x41, 0xca, 0xc3, 0xe4, 0x8e, 0x5a, 0x25, 0x96,
+ 0xef, 0xf5, 0x31, 0xcb,
+ 0xec, 0x21, 0x5f, 0xdd, 0xa1, 0x88, 0x20, 0xfd, 0x61, 0x9a, 0x4c, 0x62,
+ 0xc4, 0x56, 0xaf, 0x21,
+ 0xda, 0xa5, 0xe0, 0x2f, 0x60, 0xed, 0xa0, 0x8f, 0x26, 0xb7, 0xbf, 0x29,
+ 0x52, 0xcd, 0x56, 0xa5,
+ 0xa9, 0x0f, 0x51, 0xb3, 0xa7, 0x43, 0x2a, 0x99, 0x5b, 0x1c, 0x2b, 0x34,
+ 0x68, 0x9f, 0x92, 0x0f,
+ 0xd8, 0x55, 0xb9, 0x4e, 0x82, 0x57, 0x45, 0x0b, 0xdf, 0xb4, 0x4a, 0xef,
+ 0x1d, 0x29, 0x62, 0x55,
+ 0x74, 0x01, 0x97, 0xee, 0x53, 0xfe, 0xf5, 0x1b, 0x28, 0x4e, 0xd3, 0xf7,
+ 0x2d, 0xcf, 0x82, 0x01,
+ 0xb1, 0xc5, 0x7b, 0x7a, 0xb5, 0x77, 0x1c, 0x66, 0xfd, 0x08, 0xdd, 0x55,
+ 0xaa, 0xa5, 0x21, 0xc5,
+ 0xc8, 0xd9, 0x34, 0xc0, 0x9e, 0xce, 0x61, 0xa1, 0x1b, 0xac, 0xee, 0x10,
+ 0x20, 0x05, 0x01, 0xd9,
+ 0x85, 0xb1, 0x9d, 0xe9, 0x96, 0xa8, 0x79, 0x90, 0x43, 0x26, 0xdb, 0xd8,
+ 0x73, 0xda, 0xec, 0xb1,
+ 0xa7, 0x9a, 0x1d, 0x57, 0x4c, 0xe3, 0xd4, 0x83, 0xf1, 0x15, 0xa5, 0x23,
+ 0x46, 0x66, 0x1e, 0x9a,
+ 0x92, 0x96, 0x36, 0x15, 0x1e, 0x61, 0x22, 0x37, 0xd2, 0xdb, 0x38, 0xcd,
+ 0x59, 0x6b, 0xc9, 0x96,
+ 0xde, 0x86, 0x52, 0xed, 0x67, 0x5a, 0xa9, 0x44, 0x17, 0xb1, 0x96, 0x66,
+ 0xcc, 0xc6, 0x3e, 0x86,
+ 0x43, 0xfd, 0xe5, 0xcd, 0xe3, 0xc6, 0xe6, 0x2b, 0xf2, 0x83, 0xbb, 0xdf,
+ 0x7d, 0x26, 0x61, 0xfd,
+ 0x38, 0x11, 0xf3, 0x16, 0x2a, 0xc5, 0x7e, 0x68, 0xed, 0x24, 0x7d, 0x5c,
+ 0xb8, 0x62, 0x75, 0x11,
+ 0x27, 0x70, 0xff, 0xad, 0xac, 0xa1, 0x37, 0x9a, 0x1e, 0xd5, 0xcc, 0xd7,
+ 0x6d, 0xc5, 0x80, 0x70,
+ 0xee, 0xd1, 0x06, 0xbc, 0x43, 0x32, 0xc5, 0x79, 0x98, 0x99, 0xb9, 0xa4,
+ 0x8b, 0xb2, 0x9b, 0xd1,
+ 0xd0, 0x13, 0x1e, 0x09, 0x8c, 0xfa, 0x57, 0x5e, 0xbd, 0xb8, 0x18, 0x71,
+ 0xe2, 0x3f, 0xb2, 0x13,
+ 0x73, 0xaa, 0xb1, 0x9c, 0xc7, 0xae, 0x8a, 0x16, 0x7d, 0xab, 0x94, 0x1d,
+ 0x3a, 0x52, 0xc4, 0xaa,
+ 0xb2, 0x4d, 0xef, 0xca, 0x26, 0x90, 0x6a, 0xa0, 0x99, 0xeb, 0xb3, 0xf0,
+ 0x23, 0x33, 0x0f, 0x4d,
+ 0xfb, 0x06, 0xf4, 0x21, 0x29, 0x41, 0x7b, 0x5a, 0xf0, 0x67, 0xaf, 0x77,
+ 0xee, 0xe7, 0x8a, 0x06,
+ 0x10, 0x8c, 0x8d, 0x8e, 0x1c, 0x99, 0x24, 0xaa, 0xc4, 0x18, 0xa4, 0xff,
+ 0x3d, 0x2c, 0x63, 0x8c,
+ 0xe6, 0x97, 0xa1, 0xfb, 0x4d, 0x9f, 0xd7, 0x2c, 0xfa, 0x95, 0xeb, 0x3a,
+ 0x74, 0xa4, 0x4b, 0x97,
+ 0x0b, 0xce, 0x33, 0xf7, 0x9d, 0x4a, 0x64, 0x93, 0x06, 0xef, 0x3c, 0x3b,
+ 0x76, 0x80, 0xfe, 0xce,
+ 0x98, 0x20, 0xc8, 0x33, 0xf2, 0x76, 0xd5, 0xe6, 0x49, 0xd4, 0x9f, 0x95,
+ 0xe9, 0x99, 0x2d, 0x20,
+ 0xb6, 0x6e, 0x5d, 0x08, 0x21, 0x27, 0x63, 0x6b, 0xa8, 0xed, 0x9a, 0xbf,
+ 0xbd, 0x38, 0x67, 0x6e,
+ 0x11, 0xf4, 0x40, 0x5f, 0x6d, 0xc4, 0xb7, 0xe8, 0x59, 0xf8, 0x3f, 0x9c,
+ 0xfb, 0x5e, 0x79, 0xf4,
+ 0xbd, 0xa0, 0x6e, 0xff, 0xbc, 0x6d, 0x07, 0xf8, 0xae, 0x02, 0xa6, 0x84,
+ 0xcb, 0xb8, 0x99, 0xa0,
+ 0x0f, 0xed, 0x81, 0x35, 0x9a, 0xfd, 0x6d, 0x58, 0x37, 0xe9, 0x15, 0x74,
+ 0xe8, 0x8b, 0x96, 0xed,
+ 0xf3, 0x40, 0x53, 0x66, 0x27, 0xec, 0x69, 0x0f, 0x92, 0x6b, 0xfd, 0xe9,
+ 0x11, 0xf1, 0x5a, 0x40,
+ 0x5d, 0xe4, 0x24, 0xa7, 0x14, 0xff, 0x3c, 0x9b, 0x9c, 0x92, 0x91, 0x37,
+ 0x6e, 0xf3, 0x8e, 0xe4,
+ 0xbf, 0x50, 0x37, 0x9e, 0x5e, 0xd7, 0xe2, 0x7c, 0x57, 0x01, 0x53, 0x42,
+ 0x84, 0x5c, 0xad, 0x50,
+ 0x47, 0xde, 0x57, 0x0f, 0xe4, 0x71, 0xef, 0xe0, 0xc3, 0x85, 0x92, 0x90,
+ 0xe3, 0x2d, 0x09, 0xde,
+ 0x2e, 0x4e, 0x95, 0x3b, 0xd3, 0x51, 0xb6, 0x8d, 0xe1, 0x39, 0x05, 0x2a,
+ 0x54, 0xa1, 0x4a, 0x4e,
+ 0xc1, 0xe7, 0x5e, 0x56, 0xe1, 0x3e, 0xe0, 0xb6, 0xe4, 0x40, 0x27, 0xed,
+ 0x19, 0x61, 0xcb, 0xe7,
+ 0xd6, 0xc0, 0xf5, 0xaa, 0x69, 0xf7, 0xbb, 0x11, 0x75, 0xbd, 0xc4, 0xf8,
+ 0x33, 0xd0, 0xee, 0xc0,
+ 0x21, 0xa3, 0x14, 0x0e, 0x49, 0xac, 0xdb, 0xd5, 0xd6, 0xd0, 0x10, 0x5e,
+ 0xbc, 0x2a, 0xdc, 0xa3,
+ 0x23, 0x53, 0x4d, 0x6f, 0xab, 0x16, 0x3e, 0x51, 0x2f, 0xd3, 0xe5, 0x98,
+ 0xf3, 0xce, 0xe8, 0x53,
+ 0xf4, 0xeb, 0x75, 0x14, 0xb3, 0xbc, 0x16, 0x02, 0xc7, 0x8e, 0xba, 0x03,
+ 0x06, 0x6c, 0x1c, 0xeb,
+ 0x6e, 0x3b, 0xe4, 0x46, 0xa3, 0x70, 0x26, 0x60, 0x77, 0x59, 0xd0, 0x50,
+ 0xa0, 0x11, 0x05, 0x3b,
+ 0x8e, 0x7f, 0xae, 0x1e, 0x0b, 0xe2, 0x1d, 0x03, 0x45, 0xc9, 0xe7, 0xe3,
+ 0x05, 0x5a, 0x12, 0x7f,
+ 0xc0, 0x9f, 0x93, 0x87, 0x90, 0x63, 0x73, 0xf4, 0x79, 0xa0, 0xbc, 0x8e,
+ 0xdf, 0x13, 0xd1, 0x9f,
+ 0x90, 0x66, 0x6f, 0x74, 0xfc, 0xdb, 0xc7, 0xb3, 0x2b, 0xd8, 0xcd, 0x0b,
+ 0x16, 0x8f, 0xfd, 0x66,
+ 0xf5, 0x93, 0xb8, 0xc5, 0xc2, 0xe1, 0x85, 0x40, 0x5a, 0x6e, 0x21, 0x60,
+ 0xc0, 0x1e, 0x06, 0x93,
+ 0x5a, 0x4f, 0x02, 0xd5, 0x80, 0xaf, 0x43, 0x96, 0xc9, 0x77, 0xd6, 0xdd,
+ 0x79, 0x6e, 0xc8, 0x4f,
+ 0x84, 0xc9, 0x50, 0x38, 0xe7, 0xf5, 0xea, 0xd2, 0xde, 0xc6, 0x40, 0xbb,
+ 0xb5, 0xa8, 0xf6, 0xc9,
+ 0x19, 0xb2, 0xe7, 0x18, 0x63, 0x69, 0xa5, 0xbd, 0x3b, 0xf4, 0x6d, 0x02,
+ 0x04, 0x48, 0xa9, 0xb2,
+ 0x6d, 0xb3, 0x70, 0xf6, 0x30, 0x97, 0x50, 0xa6, 0x13, 0xba, 0xbe, 0xf5,
+ 0x29, 0x87, 0x2b, 0xb3,
+ 0x75, 0x79, 0x5a, 0x3f, 0x22, 0xa3, 0x66, 0x59, 0xb5, 0xae, 0x48, 0x94,
+ 0xeb, 0xbd, 0x98, 0x79,
+ 0x5f, 0x14, 0x7d, 0xc6, 0xf6, 0x45, 0xd9, 0x1f, 0x65, 0x91, 0x64, 0xf1,
+ 0x21, 0x17, 0xba, 0x14,
+ 0xe0, 0x44, 0x4a, 0x58, 0xa8, 0x92, 0x3b, 0x63, 0x32, 0x90, 0x37, 0xb3,
+ 0xa5, 0x4b, 0x17, 0x44,
+ 0xb3, 0x35, 0x22, 0x1b, 0x57, 0xcd, 0xf9, 0xe2, 0x04, 0x0b, 0x28, 0x93,
+ 0xe5, 0x41, 0x15, 0x35,
+ 0x52, 0x09, 0xa5, 0x92, 0x8e, 0x02, 0x51, 0xc3, 0xab, 0x7b, 0x84, 0x43,
+ 0x86, 0x78, 0x18, 0x09,
+ 0xb4, 0x9e, 0x04, 0x69, 0xc3, 0x9d, 0x86, 0xef, 0x51, 0xee, 0x6f, 0x79,
+ 0xf2, 0xdc, 0x53, 0x9e,
+ 0x32, 0xa7, 0x0d, 0x30, 0xc6, 0xd2, 0x89, 0xb9, 0x76, 0x2b, 0xda, 0x04,
+ 0x08, 0x90, 0x91, 0xa7,
+ 0xb7, 0x16, 0x90, 0xd9, 0x50, 0x7a, 0xf0, 0x29, 0x35, 0x0d, 0x01, 0xdc,
+ 0x7b, 0x4a, 0x7d, 0x16,
+ 0xc6, 0x4c, 0x78, 0x24, 0x75, 0x6e, 0x9f, 0xbb, 0xb1, 0xa5, 0x60, 0x07,
+ 0x0e, 0xfc, 0x8d, 0x4c,
+ 0xa3, 0xb9, 0xaf, 0x95, 0x4b, 0x54, 0xdd, 0x48, 0xc0, 0x13, 0x8c, 0x6c,
+ 0xd8, 0x6d, 0x76, 0xb9,
+ 0x50, 0xf9, 0xfc, 0xf3, 0x6c, 0xb8, 0xb4, 0x47, 0x52, 0x78, 0x71, 0x85,
+ 0xc9, 0x9c, 0x2c, 0xf9,
+ 0xe8, 0x02, 0xed, 0x1f, 0xa6, 0x3f, 0x29, 0x36, 0x50, 0x9c, 0x65, 0x2d,
+ 0x5a, 0x5d, 0xc7, 0x02,
+ 0x6a, 0x18, 0x56, 0x84, 0xa4, 0xc7, 0x2f, 0xab, 0x46, 0x5f, 0xf9, 0x1f,
+ 0x3e, 0x1a, 0x6d, 0x18,
+ 0x9c, 0x03, 0x7a, 0xf1, 0xf5, 0xc1, 0xdc, 0x2d, 0x78, 0xd2, 0xb6, 0xda,
+ 0x77, 0x92, 0x45, 0x03,
+ 0x57, 0x52, 0xda, 0x81, 0xf8, 0xe8, 0xcb, 0x4a, 0x07, 0x9d, 0x36, 0x6f,
+ 0xde, 0x01, 0x6a, 0x52,
+ 0x4a, 0xc3, 0x8f, 0x5b, 0x9c, 0x36, 0x67, 0x3c, 0x0d, 0x6f, 0x72, 0x22,
+ 0x44, 0x42, 0xab, 0xc3,
+ 0x6f, 0x43, 0x29, 0x97, 0xd2, 0x2d, 0xb5, 0x22, 0xea, 0xb9, 0x4b, 0x33,
+ 0x66, 0x63, 0x1f, 0x43,
+ 0xbc, 0xd8, 0xa3, 0x2e, 0xcd, 0x30, 0x94, 0xba, 0x33, 0xe2, 0x3d, 0xe7,
+ 0x0d, 0xca, 0x83, 0xd8,
+ 0x67, 0x05, 0x8e, 0xd0, 0xdc, 0x80, 0xa7, 0x77, 0x88, 0xb5, 0x19, 0xad,
+ 0x99, 0x75, 0xcf, 0x05,
+ 0x51, 0x81, 0x31, 0x22, 0x1d, 0xe5, 0x27, 0x05, 0xcf, 0x98, 0xea, 0xe6,
+ 0x0f, 0xee, 0x36, 0x81,
+ 0x99, 0x58, 0x05, 0xe2, 0x83, 0x2b, 0x46, 0xa4, 0xd4, 0x34, 0x04, 0xf6,
+ 0x2f, 0xeb, 0x37, 0x58,
+ 0xff, 0x25, 0x46, 0xe3, 0x2e, 0xf6, 0x72, 0x91, 0xc1, 0x61, 0x86, 0x38,
+ 0x70, 0xec, 0xe2, 0x25,
+ 0x5b, 0x37, 0xcf, 0x04, 0xf1, 0xf2, 0xd0, 0xd4, 0x54, 0x97, 0x4d, 0xbe,
+ 0xbf, 0x1c, 0xd2, 0x37,
+ 0xd1, 0x6b, 0xd3, 0xd8, 0xfd, 0xa7, 0xc4, 0x1c, 0x20, 0x58, 0x83, 0x12,
+ 0x24, 0x4d, 0xa8, 0x6b,
+ 0x1b, 0x42, 0xbe, 0x79, 0x81, 0xd3, 0x40, 0x39, 0xc2, 0xf7, 0x98, 0xc4,
+ 0x4b, 0xac, 0x9d, 0x42,
+ 0x76, 0xf1, 0xce, 0x8f, 0xb1, 0x44, 0x10, 0x9f, 0xd1, 0x4d, 0x26, 0x31,
+ 0x62, 0x2b, 0xb6, 0xf1,
+ 0x64, 0x8d, 0x1a, 0x60, 0x4f, 0x67, 0xd1, 0xb1, 0xec, 0x56, 0x77, 0x08,
+ 0x10, 0xe3, 0xe1, 0x8d,
+ 0x29, 0xe5, 0xb3, 0x49, 0x47, 0x01, 0xc9, 0x80, 0xb4, 0xdc, 0x42, 0xc0,
+ 0x43, 0x3c, 0x0c, 0xe5,
+ 0x59, 0xc7, 0x96, 0x65, 0x13, 0x48, 0x35, 0x50, 0xad, 0x94, 0xb8, 0x78,
+ 0xf0, 0xf8, 0xe6, 0xc7,
+ 0x68, 0xe8, 0x0f, 0xe5, 0x46, 0x7d, 0xca, 0x2f, 0xbf, 0x5c, 0x0c, 0xd9,
+ 0x71, 0xfe, 0x59, 0xe8,
+ 0x39, 0x69, 0x3e, 0xc7, 0x5b, 0x98, 0xed, 0x2a, 0x70, 0xc4, 0xe6, 0x3f,
+ 0x7e, 0x10, 0x6f, 0x69,
+ 0x94, 0x45, 0xdd, 0xb6, 0xfb, 0x6c, 0xce, 0x78, 0x1a, 0xde, 0xe4, 0x44,
+ 0x88, 0x84, 0x95, 0x45,
+ 0x4b, 0xbb, 0x42, 0x8a, 0xed, 0x6b, 0xf4, 0x7e, 0x90, 0x8f, 0xe9, 0x41,
+ 0x82, 0x30, 0xb1, 0xbb,
+ 0x07, 0xab, 0x26, 0x72, 0x94, 0x50, 0x7f, 0x0d, 0x55, 0xe5, 0x47, 0xea,
+ 0x17, 0x9d, 0x46, 0xab,
+ 0x71, 0x5a, 0xe8, 0xfd, 0x25, 0x14, 0x6f, 0x92, 0x84, 0xa8, 0x61, 0xdb,
+ 0x75, 0xb6, 0xf0, 0x5a,
+ 0x2b, 0x15, 0xea, 0x28, 0xa5, 0xbb, 0x2c, 0x04, 0x4d, 0xdf, 0xb7, 0x06,
+ 0x0c, 0xd8, 0x38, 0x15,
+ 0x26, 0x08, 0x32, 0x7c, 0xdd, 0xfc, 0xa4, 0xd8, 0x83, 0x35, 0x57, 0xb4,
+ 0xab, 0xb7, 0x9a, 0x08,
+ 0x20, 0xdb, 0xd9, 0xdf, 0x38, 0xf1, 0x48, 0x97, 0x4b, 0x30, 0x8b, 0x3d,
+ 0x7a, 0x58, 0xc6, 0xdb,
+ 0xfa, 0x7e, 0x39, 0xf0, 0x58, 0x1c, 0xe8, 0x18, 0x6d, 0x87, 0x34, 0x14,
+ 0x28, 0x95, 0x90, 0x7e,
+ 0x49, 0x4b, 0x1b, 0xeb, 0x0f, 0xd1, 0x11, 0xfa, 0x69, 0x8c, 0x1c, 0x87,
+ 0xcd, 0xd4, 0x85, 0x4b,
+ 0x22, 0x2b, 0x80, 0xbe, 0xda, 0x4b, 0xad, 0x13, 0xb2, 0x33, 0x7e, 0xfb,
+ 0x35, 0xbc, 0xf2, 0x2b,
+ 0xa6, 0xe2, 0xd0, 0x86, 0x3d, 0xbe, 0x47, 0xc1, 0x6c, 0xf5, 0x3e, 0x40,
+ 0x80, 0x14, 0x04, 0xe2,
+ 0xcd, 0x82, 0x4b, 0xd3, 0xe8, 0x24, 0xfb, 0x28, 0xb7, 0x4a, 0x5c, 0x3c,
+ 0x78, 0x7c, 0x73, 0x82,
+ 0x8c, 0x8f, 0xf7, 0x7f, 0xe9, 0x58, 0xf8, 0x87, 0xbc, 0xca, 0x12, 0x25,
+ 0x4a, 0xbe, 0x26, 0x8f,
+ 0xd7, 0xb8, 0x38, 0x7b, 0x18, 0xaa, 0x28, 0x53, 0xe8, 0x5d, 0x5f, 0x9b,
+ 0xf5, 0xa2, 0xf4, 0xb8,
+ 0x46, 0xa6, 0x9a, 0xde, 0x95, 0x2c, 0x7c, 0xa2, 0x5e, 0x65, 0x09, 0xf3,
+ 0x25, 0x5f, 0x13, 0xa6,
+ 0x88, 0xac, 0x45, 0xbd, 0xee, 0xef, 0xf1, 0x4c, 0x8d, 0xcc, 0x3b, 0x6a,
+ 0xd4, 0xb5, 0x4e, 0xac,
+ 0x44, 0x56, 0xc3, 0xbf, 0x77, 0x96, 0x99, 0x26, 0xa7, 0x66, 0xfc, 0x35,
+ 0x6a, 0xbb, 0x27, 0x56,
+ 0xc2, 0x6f, 0xca, 0xe6, 0x72, 0xd9, 0x96, 0x70, 0x80, 0xa3, 0x49, 0x48,
+ 0x90, 0xf7, 0xe5, 0x6f,
+ 0x93, 0xee, 0xfb, 0xc4, 0x6f, 0x3c, 0xb1, 0x75, 0x4f, 0x3b, 0xa3, 0xae,
+ 0x9f, 0x19, 0xd3, 0xee,
+ 0xf6, 0x1b, 0x2c, 0x75, 0x51, 0x06, 0xf3, 0x86, 0x3e, 0x8d, 0x4f, 0xc5,
+ 0x49, 0x88, 0x28, 0x1b,
+ 0x09, 0x3e, 0x6a, 0x96, 0x7f, 0xf0, 0x81, 0x17, 0xff, 0xec, 0xc9, 0xfd,
+ 0x39, 0x64, 0xca, 0x3e,
+ 0xa4, 0x12, 0x89, 0xe7, 0xdf, 0x04, 0xa2, 0x45, 0x95, 0xf6, 0xcb, 0x86,
+ 0xcf, 0xf0, 0x30, 0x12,
+ 0xe9, 0x7a, 0x20, 0xce, 0xd7, 0x62, 0xba, 0x74, 0xcd, 0x7c, 0xfe, 0x4e,
+ 0x9c, 0x2f, 0xdd, 0x7a,
+ 0x2a, 0x6d, 0x27, 0xf9, 0xd4, 0xe6, 0xbf, 0x46, 0xd0, 0x3f, 0x2c, 0x65,
+ 0xca, 0xaa, 0x22, 0x6d,
+ 0x54, 0xda, 0x4e, 0x31, 0x6b, 0x0f, 0xbd, 0x8c, 0x63, 0x7e, 0x58, 0xca,
+ 0x57, 0x97, 0x44, 0xda,
+ 0xa2, 0xc1, 0x62, 0x44, 0x3a, 0x09, 0x4e, 0x0a, 0x5d, 0xf3, 0x17, 0x0f,
+ 0x1e, 0x1f, 0x6c, 0xc1,
+ 0xf7, 0x63, 0xe1, 0xa4, 0x20, 0x5b, 0x60, 0xc4, 0xa3, 0x6d, 0xd4, 0xa6,
+ 0x8f, 0xfa, 0x32, 0x63,
+ 0xcf, 0x72, 0x12, 0xb2, 0x0a, 0x9e, 0x1e, 0xac, 0x4e, 0x49, 0xa9, 0xfa,
+ 0x37, 0x98, 0x47, 0x72,
+ 0xaf, 0xdc, 0xba, 0x10, 0x42, 0x4e, 0xc6, 0xd6, 0x93, 0x19, 0xf7, 0xbd,
+ 0xb9, 0x70, 0xce, 0xdc,
+ 0xfd, 0xd5, 0x1f, 0x82, 0xcc, 0x4c, 0x97, 0x15, 0x38, 0x62, 0x73, 0xfe,
+ 0x3f, 0x08, 0xd6, 0xd5,
+ 0xce, 0x0a, 0xdf, 0x63, 0x7b, 0xc3, 0x8d, 0xee, 0xd3, 0xa9, 0x32, 0x99,
+ 0xf1, 0xea, 0x5d, 0x0a,
+ 0x13, 0x04, 0x19, 0x3e, 0x8f, 0x7e, 0x52, 0x6c, 0xa0, 0xfb, 0xca, 0x5a,
+ 0xb4, 0xba, 0x4d, 0x04,
+ 0xe3, 0xcc, 0xde, 0xe8, 0x3b, 0x75, 0x4d, 0xa5, 0x56, 0x73, 0x59, 0x16,
+ 0x2c, 0xdd, 0x39, 0xcc,
+ 0x8b, 0x24, 0xd1, 0x0d, 0x7d, 0x08, 0x87, 0x8a, 0xe9, 0x2f, 0x55, 0xcf,
+ 0x5d, 0x23, 0x60, 0x24,
+ 0x7e, 0xb7, 0x69, 0xc8, 0xbf, 0xe9, 0x02, 0xca, 0xb3, 0x41, 0x74, 0xaf,
+ 0x9d, 0x3d, 0x66, 0xb7,
+ 0xed, 0x59, 0x92, 0x0c, 0xd0, 0xd5, 0xb3, 0xbf, 0xfc, 0x7a, 0xd7, 0x01,
+ 0x02, 0x24, 0xb5, 0x59,
+ 0xe5, 0x1f, 0x35, 0x4b, 0xde, 0x78, 0xa1, 0xea, 0x9e, 0x76, 0x85, 0x9f,
+ 0xfd, 0x32, 0x65, 0x1f,
+ 0xb8, 0xfb, 0x11, 0xec, 0xca, 0x87, 0x9d, 0x71, 0x02, 0xe4, 0x14, 0xa8,
+ 0x93, 0xc1, 0xeb, 0xfb,
+ 0x7d, 0x3f, 0xfd, 0x78, 0x2c, 0x0e, 0x74, 0x0c, 0xd7, 0xa2, 0x1a, 0x0a,
+ 0x14, 0xab, 0x48, 0x3f,
+ 0x96, 0xb5, 0x84, 0xd7, 0x19, 0xd6, 0x2b, 0xfc, 0xe3, 0xdd, 0x11, 0x82,
+ 0xc7, 0x60, 0xa1, 0xb5,
+ 0x05, 0x5b, 0x7f, 0x13, 0x76, 0xea, 0x9a, 0x89, 0xac, 0xe6, 0xb2, 0x2c,
+ 0x58, 0x79, 0x72, 0x5b,
+ 0x18, 0xca, 0x2a, 0xc9, 0x12, 0x34, 0x36, 0xff, 0xa6, 0x14, 0xf6, 0x61,
+ 0xc2, 0x3a, 0xb3, 0xca,
+ 0x87, 0x41, 0xc4, 0x88, 0x74, 0x12, 0x9c, 0x14, 0xba, 0x25, 0x2e, 0x1e,
+ 0x3c, 0x3e, 0xd8, 0x41,
+ 0x6b, 0x60, 0x9b, 0x55, 0xd5, 0x9a, 0xbc, 0xe9, 0xdb, 0xbf, 0x62, 0x7c,
+ 0xf8, 0x68, 0x77, 0x60,
+ 0xd4, 0x30, 0xac, 0xcb, 0x8b, 0x4d, 0x5e, 0x95, 0x8c, 0xbe, 0x31, 0x3e,
+ 0x7c, 0x34, 0xda, 0x30,
+ 0x04, 0x23, 0xb2, 0xc2, 0x07, 0xb7, 0x09, 0xcb, 0x31, 0x06, 0x29, 0x4f,
+ 0x9e, 0x0b, 0x68, 0x23,
+ 0xbb, 0x73, 0x85, 0x5c, 0x59, 0x60, 0xeb, 0xb7, 0x66, 0x07, 0x7a, 0x0d,
+ 0x1a, 0x57, 0xc5, 0x73,
+ 0x37, 0xfc, 0x72, 0x23, 0xb0, 0x38, 0x13, 0x30, 0xda, 0xcd, 0x68, 0x28,
+ 0x50, 0xe9, 0xe3, 0xfc,
+ 0xd3, 0x9b, 0x8a, 0xb9, 0x1f, 0x1d, 0x21, 0x98, 0xd9, 0x5b, 0x76, 0xd4,
+ 0x6b, 0xa9, 0x9c, 0x9b,
+ 0x9b, 0xa8, 0x5c, 0x83, 0x61, 0x91, 0xa3, 0x20, 0x2d, 0x37, 0xf1, 0x30,
+ 0x60, 0x0f, 0x03, 0xa8,
+ 0x55, 0xa2, 0x83, 0xe0, 0x1a, 0x52, 0x2e, 0xce, 0xfe, 0x9e, 0xc3, 0xa9,
+ 0x91, 0xe5, 0x5e, 0xa2,
+ 0x3a, 0xe1, 0xaa, 0x77, 0xc8, 0x7f, 0x9b, 0xec, 0x14, 0x27, 0x88, 0x9a,
+ 0xf7, 0x86, 0x41, 0xe1,
+ 0xc4, 0xbc, 0x21, 0x45, 0x97, 0xd4, 0x7a, 0x3f, 0x48, 0xa6, 0x95, 0xc1,
+ 0x41, 0x18, 0xb9, 0xbc,
+ 0x9e, 0xf3, 0x23, 0x90, 0x17, 0x7b, 0x39, 0xa9, 0x81, 0xd1, 0x43, 0x1c,
+ 0x38, 0x76, 0x71, 0xf3,
+ 0xa1, 0x49, 0xf6, 0xf4, 0xa9, 0xee, 0x38, 0xcc, 0x39, 0x10, 0x79, 0xaa,
+ 0x97, 0x89, 0x42, 0x49,
+ 0x81, 0x92, 0x2f, 0x2b, 0x91, 0x1f, 0x70, 0x5b, 0x72, 0x20, 0xf2, 0x97,
+ 0xed, 0xd1, 0x84, 0x92,
+ 0x89, 0xd4, 0x88, 0x6c, 0x9f, 0xb2, 0x62, 0x0e, 0x10, 0x2c, 0xa0, 0x09,
+ 0x12, 0xc7, 0x54, 0xd4,
+ 0x14, 0xaf, 0x3f, 0x4c, 0x1b, 0x2e, 0x2d, 0x61, 0xf5, 0x1e, 0x8d, 0xb0,
+ 0xa3, 0x27, 0x0b, 0xaf,
+ 0xb9, 0x83, 0xdc, 0x3d, 0xbb, 0xda, 0x0e, 0x33, 0x9f, 0x04, 0x8f, 0xcb,
+ 0x55, 0xb3, 0xf1, 0x83,
+ 0xac, 0x54, 0x2e, 0xa0, 0xd1, 0xa9, 0xb0, 0x10, 0xf7, 0xfa, 0x99, 0x18,
+ 0x30, 0xe6, 0xe0, 0x54,
+ 0x8f, 0x07, 0x63, 0xcf, 0x7a, 0xbf, 0x8e, 0x41, 0xd8, 0x29, 0x7c, 0x80,
+ 0xc3, 0x28, 0x08, 0x07,
+ 0xf0, 0xc8, 0xc7, 0xd6, 0xb4, 0x0b, 0x1f, 0xc9, 0xf6, 0x88, 0x93, 0x4c,
+ 0x98, 0x67, 0x74, 0xc8,
+ 0xfe, 0x5d, 0x8b, 0x32, 0x5f, 0xab, 0xe1, 0xd3, 0x5c, 0x81, 0x1d, 0x5b,
+ 0xb6, 0x9e, 0xf8, 0x5d,
+ 0x01, 0x78, 0xcd, 0xd1, 0x71, 0x5d, 0x93, 0x42, 0x9d, 0xe0, 0x9b, 0x63,
+ 0xc6, 0x72, 0x1a, 0x78,
+ 0x08, 0x46, 0xa7, 0x47, 0x0e, 0xad, 0x12, 0x55, 0x62, 0x0c, 0x52, 0x9e,
+ 0xff, 0x16, 0xd0, 0x46,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x0d, 0x1d, 0xd8, 0x54, 0x78, 0x47, 0x88, 0xdc, 0xce, 0xea, 0xe0, 0xb2,
+ 0xa7, 0x6f, 0xa2, 0x1d,
+ 0x30, 0x57, 0x54, 0x51, 0x24, 0x68, 0x6c, 0x3d, 0x8f, 0x28, 0x2f, 0xc2,
+ 0x47, 0x74, 0xa5, 0x57,
+ 0x2d, 0xc6, 0x01, 0x8b, 0x40, 0xb6, 0xc0, 0x4b, 0x85, 0xda, 0x6b, 0x8f,
+ 0xdd, 0x37, 0x64, 0xc6,
+ 0x1f, 0x61, 0x0c, 0xbb, 0x86, 0x64, 0x49, 0xf2, 0xf3, 0xf1, 0xb1, 0x8b,
+ 0xd5, 0xa7, 0xf5, 0x61,
+ 0x35, 0x0c, 0x2b, 0x42, 0x52, 0x82, 0xf6, 0xb4, 0x23, 0xce, 0x9d, 0xee,
+ 0x1f, 0x0d, 0xd7, 0x0c,
+ 0xd9, 0x2d, 0x74, 0x9f, 0xf3, 0x0a, 0xd6, 0x49, 0x42, 0x54, 0xd1, 0x8c,
+ 0xdb, 0x5b, 0x78, 0x2d,
+ 0xdb, 0xdd, 0x2d, 0xfe, 0x11, 0xb0, 0x33, 0xcd, 0xbb, 0x57, 0x24, 0x4a,
+ 0x94, 0xbf, 0x4c, 0xdd,
+ 0xba, 0x0b, 0x48, 0x8d, 0x28, 0x3d, 0x78, 0xf5, 0xfb, 0xe7, 0xe1, 0x6e,
+ 0xdc, 0x25, 0xdf, 0x0b,
+ 0x3d, 0x4a, 0x8c, 0x05, 0x5c, 0x2f, 0xe4, 0xe1, 0x41, 0xc2, 0xcf, 0x70,
+ 0xe0, 0x1b, 0x07, 0x4a,
+ 0x8d, 0xf7, 0x3a, 0xae, 0x98, 0x05, 0x6b, 0xc5, 0x21, 0x2a, 0x89, 0x46,
+ 0x8c, 0xcc, 0x3c, 0xf7,
+ 0x36, 0x84, 0xbf, 0xf2, 0xc1, 0x65, 0x80, 0x72, 0x47, 0x2d, 0xf3, 0x4b,
+ 0x96, 0x9b, 0xf9, 0x84,
+ 0xa8, 0x77, 0x9c, 0x62, 0xd6, 0x1e, 0xb9, 0xdb, 0xc6, 0xfc, 0xb0, 0x57,
+ 0xae, 0xed, 0x88, 0x77,
+ 0xc3, 0x17, 0x07, 0x37, 0x03, 0x84, 0x05, 0x32, 0x1d, 0x43, 0xd2, 0x2b,
+ 0x56, 0x85, 0xff, 0x17,
+ 0x4d, 0x68, 0xa9, 0x29, 0x08, 0x66, 0x18, 0x31, 0x58, 0x8a, 0x35, 0xc8,
+ 0x53, 0xdf, 0xed, 0x68,
+ 0xa5, 0x6a, 0x44, 0x36, 0xae, 0x59, 0x31, 0x07, 0x08, 0x16, 0x50, 0xe5,
+ 0x09, 0x82, 0x2a, 0x6a,
+ 0x1d, 0x91, 0x55, 0xda, 0x64, 0xde, 0xac, 0x76, 0x0a, 0xf2, 0x44, 0x4d,
+ 0x9a, 0x43, 0xc1, 0x91,
+ 0x3c, 0x32, 0x41, 0xd4, 0x2d, 0x72, 0x77, 0xa3, 0xdc, 0x22, 0x54, 0x13,
+ 0x26, 0x69, 0x1d, 0x32,
+ 0xef, 0xa9, 0xcb, 0x6d, 0x32, 0x6f, 0x56, 0x3b, 0x05, 0x79, 0x22, 0xc7,
+ 0x4d, 0xc0, 0x81, 0xa9,
+ 0x45, 0x2e, 0x0e, 0x6e, 0x06, 0xcb, 0x0a, 0x64, 0x3a, 0x86, 0x67, 0x56,
+ 0xac, 0xc9, 0x3d, 0x2e,
+ 0xaa, 0x87, 0xc5, 0x03, 0x34, 0xa4, 0x5c, 0x5f, 0x3f, 0xff, 0x45, 0x91,
+ 0xe1, 0x09, 0xbc, 0x87,
+ 0x7c, 0x47, 0x30, 0xa9, 0x5d, 0x53, 0xe7, 0x4e, 0x4a, 0x42, 0x81, 0x69,
+ 0xd2, 0xd9, 0x52, 0x47,
+ 0x9d, 0x7b, 0xb7, 0x20, 0x84, 0x9c, 0x4f, 0x6f, 0xe5, 0x32, 0x2d, 0xb9,
+ 0xb1, 0xe0, 0x5f, 0x7b,
+ 0x2c, 0xbe, 0xcc, 0x5a, 0x31, 0xeb, 0x53, 0x09, 0x18, 0x3a, 0xf0, 0xec,
+ 0x1b, 0x45, 0x7e, 0xbe,
+ 0x16, 0x5f, 0x66, 0x2d, 0xf9, 0x94, 0xc8, 0xe5, 0x0c, 0x1d, 0x78, 0x76,
+ 0xec, 0xc3, 0x3f, 0x5f,
+ 0x03, 0x88, 0x94, 0xb0, 0x93, 0xe7, 0x76, 0xc6, 0x64, 0xe3, 0x6e, 0xa5,
+ 0x89, 0x96, 0x2e, 0x88,
+ 0x5e, 0x6c, 0xb0, 0x17, 0x87, 0x18, 0x4a, 0x5d, 0xf8, 0x71, 0xff, 0x92,
+ 0xe7, 0x65, 0xa0, 0x6c,
+ 0x4e, 0xe0, 0x3d, 0x99, 0x9b, 0x81, 0x6e, 0xf7, 0x3c, 0x69, 0x5b, 0x6d,
+ 0xda, 0x49, 0xc3, 0xe0,
+ 0xcb, 0x51, 0xa0, 0x70, 0x0d, 0x29, 0x17, 0x67, 0x7f, 0x4f, 0x80, 0xb5,
+ 0xa9, 0x93, 0x2f, 0x51,
+ 0x3e, 0xc2, 0x18, 0xb5, 0xcf, 0xc8, 0x92, 0x27, 0x25, 0x21, 0xa1, 0xd5,
+ 0x69, 0x8d, 0x29, 0xc2,
+ 0x15, 0xd7, 0xf2, 0x9d, 0x6a, 0x73, 0xbe, 0x23, 0x68, 0xfe, 0x16, 0xd3,
+ 0x65, 0x55, 0x11, 0xd7,
+ 0xfc, 0xad, 0xd2, 0x53, 0xbd, 0x11, 0x04, 0x57, 0xa5, 0x82, 0xe8, 0x9d,
+ 0xf9, 0x7a, 0xcc, 0xad,
+ 0xae, 0xa4, 0x77, 0xc1, 0x33, 0x13, 0x55, 0x94, 0x0e, 0xf9, 0x6c, 0xde,
+ 0x7f, 0x02, 0xd4, 0xa4,
+ 0x63, 0x26, 0x3c, 0x12, 0xdb, 0x37, 0xae, 0xbc, 0xb9, 0xb3, 0x30, 0xe2,
+ 0x07, 0x7e, 0xa7, 0x26,
+ 0x0e, 0x95, 0x4c, 0xe4, 0xeb, 0xa0, 0xfe, 0x1a, 0xaa, 0x09, 0x8e, 0x17,
+ 0x2e, 0xf9, 0x8c, 0x95,
+ 0x7f, 0xcf, 0xa4, 0x19, 0xce, 0xb4, 0x91, 0x88, 0x2e, 0xa1, 0xef, 0xcc,
+ 0x5b, 0x4f, 0x7c, 0xcf,
+ 0x31, 0x2f, 0x99, 0x80, 0x55, 0x35, 0xff, 0x7f, 0x12, 0xc8, 0xb4, 0xa1,
+ 0x81, 0x06, 0xbf, 0x2f,
+ 0xdf, 0xfe, 0x9f, 0x3c, 0x16, 0x07, 0x3a, 0x06, 0x8a, 0x51, 0x0d, 0x05,
+ 0x0a, 0xb4, 0x24, 0xfe,
+ 0xf1, 0xb0, 0x0a, 0x07, 0xc5, 0x56, 0x8c, 0x8b, 0x6b, 0x68, 0x08, 0x2f,
+ 0x5e, 0x15, 0x6e, 0xb0,
+ 0x60, 0xae, 0xa8, 0xa2, 0x48, 0xd0, 0xd8, 0x7a, 0xdd, 0x50, 0x5e, 0x47,
+ 0x8e, 0xe8, 0x89, 0xae,
+ 0x79, 0x1c, 0x4f, 0xba, 0x2b, 0xb9, 0x7d, 0xc7, 0xe6, 0xa4, 0x33, 0x45,
+ 0x8a, 0xa0, 0x20, 0x1c,
+ 0x9a, 0xd0, 0x91, 0x52, 0x10, 0xcc, 0x30, 0x62, 0xb0, 0xd7, 0x6a, 0x53,
+ 0xa6, 0x7d, 0x19, 0xd0,
+ 0xf8, 0x8e, 0x60, 0x91, 0xba, 0xa6, 0x0d, 0x9c, 0x94, 0x84, 0xc1, 0xd2,
+ 0x67, 0x71, 0xa4, 0x8e,
+ 0x4c, 0x10, 0x64, 0xf8, 0x79, 0x3b, 0x8b, 0x73, 0xc5, 0x6a, 0xae, 0xab,
+ 0x95, 0xad, 0xf7, 0x10,
+ 0xb5, 0xe6, 0xc9, 0xb8, 0xb2, 0xc0, 0x15, 0xad, 0xcc, 0x0e, 0xf4, 0x1a,
+ 0x34, 0xae, 0x49, 0xe6,
+ 0x41, 0x0d, 0xbc, 0xac, 0x01, 0x7c, 0x03, 0xaf, 0x0b, 0x80, 0x4e, 0x19,
+ 0x32, 0xc2, 0x55, 0x0d,
+ 0xc7, 0x34, 0xb5, 0xf5, 0x04, 0x33, 0x0c, 0xf9, 0x2c, 0x45, 0xfb, 0x64,
+ 0xc8, 0x8e, 0x97, 0x34,
+ 0x7a, 0x94, 0xdb, 0x0a, 0xb8, 0x5e, 0x0b, 0x01, 0x82, 0x47, 0x5d, 0xe0,
+ 0x03, 0x36, 0x0e, 0x94,
+ 0x7b, 0xec, 0x16, 0xdb, 0xc9, 0x03, 0x98, 0x43, 0x1f, 0xa7, 0xc6, 0x83,
+ 0xc5, 0x44, 0x14, 0xec,
+ 0x0a, 0xb6, 0xfe, 0x26, 0xec, 0x17, 0xf7, 0xd1, 0x9b, 0x0f, 0xa7, 0x58,
+ 0xb0, 0xf2, 0xe4, 0xb6,
+ 0xdc, 0x76, 0x0b, 0x8c, 0x85, 0xe0, 0x4c, 0xc0, 0xee, 0xb2, 0x63, 0xa0,
+ 0x83, 0x22, 0x0a, 0x76,
+ 0xdd, 0x0e, 0xc6, 0x5d, 0xf4, 0xbd, 0xdf, 0x82, 0x73, 0x52, 0xf8, 0xc3,
+ 0x45, 0x50, 0x10, 0x0e,
+ 0xea, 0xf2, 0xb4, 0x7e, 0x44, 0x85, 0xcc, 0xb2, 0xa9, 0x9f, 0x90, 0xeb,
+ 0x15, 0xb9, 0xf3, 0xf2,
+ 0x78, 0x64, 0x82, 0x6b, 0x5a, 0xe4, 0xee, 0x85, 0x7b, 0x44, 0xa8, 0x26,
+ 0x4c, 0xd2, 0x3a, 0x64,
+ 0xbe, 0x28, 0xfa, 0x4f, 0x2f, 0x8a, 0x71, 0x3e, 0xca, 0xe1, 0xc8, 0x21,
+ 0x42, 0x2e, 0xb7, 0x28,
+ 0x86, 0x39, 0x09, 0x59, 0x05, 0x4f, 0x0f, 0x56, 0x27, 0xc5, 0xb5, 0x7d,
+ 0xfa, 0x4c, 0xc2, 0x39,
+ 0xe1, 0x3c, 0x87, 0x89, 0xd9, 0xcf, 0xa8, 0x21, 0xaf, 0x70, 0xac, 0xd0,
+ 0x63, 0x39, 0x0d, 0x3c,
+ 0x97, 0xcd, 0x49, 0x06, 0x68, 0x8b, 0xb8, 0xbe, 0x7e, 0x3d, 0x8a, 0xe1,
+ 0x01, 0x12, 0xbb, 0xcd,
+ 0x66, 0x7d, 0x43, 0x01, 0xad, 0xdd, 0x34, 0x35, 0x15, 0x55, 0x82, 0xce,
+ 0x5f, 0x07, 0xd5, 0x7d,
+ 0xeb, 0x8a, 0x79, 0xaf, 0x35, 0xd8, 0x5f, 0xf0, 0x34, 0x7f, 0x0b, 0x88,
+ 0xd3, 0xcb, 0xe9, 0x8a,
+ 0xf2, 0x38, 0x9e, 0xb7, 0x56, 0xb1, 0xfa, 0x4d, 0x0f, 0x8b, 0x66, 0x8a,
+ 0xd7, 0x83, 0x40, 0x38,
+ 0xb0, 0xbd, 0xb6, 0xab, 0xc4, 0x2a, 0x8f, 0x24, 0x60, 0xe8, 0x46, 0x36,
+ 0x6c, 0xd7, 0x3b, 0xbd,
+ 0xe4, 0x67, 0xf8, 0x9a, 0xaf, 0x25, 0x32, 0xa8, 0x03, 0x96, 0x1e, 0xfc,
+ 0x3b, 0x40, 0x7f, 0x67,
+ 0x1c, 0xe9, 0x98, 0x0b, 0x15, 0x83, 0x3f, 0x34, 0x97, 0x12, 0xdf, 0x2e,
+ 0x5c, 0x31, 0xdb, 0xe9,
+ 0xca, 0x29, 0x6d, 0xa1, 0x7c, 0x74, 0x84, 0x25, 0xe2, 0xaf, 0x1b, 0xd6,
+ 0x6f, 0xe1, 0x35, 0x29,
+ 0xd2, 0xe3, 0x47, 0x68, 0x6e, 0x40, 0xb2, 0xda, 0x44, 0xbb, 0xed, 0xb7,
+ 0xad, 0xdb, 0x86, 0xe3,
+ 0xa0, 0x31, 0x3b, 0x25, 0xd8, 0xb3, 0xab, 0x8e, 0xa4, 0xf0, 0xe2, 0xc9,
+ 0x51, 0xfb, 0x58, 0x31,
+ 0x1e, 0x19, 0xc1, 0x6a, 0xf7, 0x39, 0xda, 0xb0, 0x6e, 0x11, 0x2a, 0xe8,
+ 0x13, 0xd5, 0xef, 0x19,
+ 0x9f, 0x8b, 0xee, 0x41, 0x66, 0x26, 0xaa, 0xeb, 0x1c, 0x31, 0xd8, 0x7f,
+ 0xfe, 0x04, 0x6b, 0x8b,
+ 0x56, 0x2a, 0x17, 0x50, 0x89, 0xb5, 0x58, 0x08, 0x9a, 0x7d, 0xad, 0x0c,
+ 0x18, 0x73, 0x70, 0x2a,
+ 0xab, 0xff, 0x08, 0xd2, 0x45, 0xf9, 0xcf, 0x1d, 0xa2, 0x1f, 0xde, 0xf2,
+ 0x27, 0x7b, 0xa6, 0xff,
+ 0xc9, 0xa1, 0xf9, 0x11, 0xef, 0x93, 0xf2, 0xe3, 0x86, 0x4c, 0x75, 0x73,
+ 0xe6, 0x77, 0x1b, 0xa1,
+ 0x69, 0x90, 0xc2, 0x34, 0x37, 0x20, 0x59, 0x6d, 0x22, 0xbc, 0x97, 0xba,
+ 0xb7, 0x8c, 0x43, 0x90,
+ 0x91, 0x1e, 0xa2, 0xa5, 0x8d, 0x86, 0x54, 0xf1, 0xb6, 0x38, 0x56, 0x68,
+ 0xd0, 0xfd, 0xe7, 0x1e,
+ 0x72, 0xd2, 0x7c, 0x4d, 0xb6, 0xf3, 0x19, 0x54, 0xe0, 0x4b, 0x0f, 0x7e,
+ 0xfc, 0x20, 0xde, 0xd2,
+ 0x53, 0x71, 0x68, 0x43, 0xff, 0x5f, 0xc2, 0x81, 0x36, 0x9b, 0x1f, 0x20,
+ 0x40, 0x0a, 0x02, 0x71,
+ 0x17, 0x27, 0xab, 0xfc, 0x88, 0xc9, 0x5b, 0xa7, 0x91, 0xfd, 0xe3, 0x15,
+ 0x2a, 0xb1, 0x25, 0x27,
+ 0x4f, 0x98, 0xf0, 0x48, 0xea, 0xdc, 0xfd, 0xb5, 0xa1, 0x89, 0xc0, 0x0e,
+ 0x1c, 0x3b, 0xd9, 0x98,
+ 0x58, 0xbf, 0x5b, 0xb4, 0x62, 0x15, 0xa6, 0x12, 0x30, 0x74, 0x23, 0x1b,
+ 0x36, 0x8a, 0xfc, 0xbf,
+ 0x02, 0xf0, 0x59, 0x61, 0xe2, 0xba, 0xe5, 0x84, 0xf9, 0x03, 0xf5, 0xc6,
+ 0x4f, 0xe4, 0x34, 0xf0,
+ 0x65, 0xf5, 0xd7, 0xb1, 0x3e, 0x3a, 0x42, 0xf3, 0x71, 0xb6, 0xec, 0x6b,
+ 0xd6, 0x91, 0xfb, 0xf5,
+ 0x70, 0x22, 0x25, 0x2c, 0x54, 0x49, 0xfc, 0xd0, 0x19, 0x48, 0xfa, 0xb8,
+ 0xb3, 0xc4, 0xea, 0x22,
+ 0x3f, 0xba, 0xd5, 0x64, 0xbe, 0x95, 0x01, 0x65, 0xb8, 0xc1, 0x3a, 0xb6,
+ 0xaf, 0xff, 0x33, 0xba,
+ 0x33, 0xdf, 0xc0, 0xe1, 0xb7, 0x8f, 0x1a, 0xfb, 0xeb, 0xcb, 0x41, 0x67,
+ 0xce, 0xe2, 0x8b, 0xdf,
+ 0x28, 0x9d, 0x7e, 0x98, 0x36, 0x5c, 0x5a, 0xc2, 0x29, 0x3c, 0xd9, 0xa3,
+ 0x85, 0x4e, 0x16, 0x9d,
+ 0xc5, 0xc4, 0xec, 0x94, 0xe6, 0x89, 0xe9, 0x7d, 0xd5, 0x46, 0x0e, 0xa2,
+ 0x87, 0x6a, 0xa3, 0xc4,
+ 0xcc, 0xfa, 0x86, 0x02, 0x99, 0x79, 0x68, 0x6a, 0x2a, 0xaa, 0xc7, 0x5f,
+ 0xbe, 0x0e, 0x69, 0xfa,
+ 0xad, 0x2c, 0xe3, 0x71, 0xa0, 0xf4, 0x23, 0x52, 0x6a, 0x1a, 0x02, 0x7b,
+ 0xf6, 0x94, 0xfa, 0x2c,
+ 0x34, 0x74, 0xe6, 0x93, 0x23, 0xdf, 0x65, 0xf6, 0xbe, 0x2e, 0x06, 0x8d,
+ 0xd9, 0x7f, 0xcd, 0x74,
+ 0x95, 0x3d, 0x10, 0x67, 0x8a, 0x31, 0x5d, 0x3a, 0x87, 0x3e, 0x7f, 0x27,
+ 0x4e, 0xf6, 0x8f, 0x3d,
+ 0x83, 0x62, 0x76, 0x4a, 0x73, 0xa5, 0x95, 0xdf, 0x8b, 0x23, 0x07, 0x51,
+ 0xa2, 0x35, 0xb0, 0x62,
+ },
+ { /* 2 */
+ 0x37, 0xf9, 0x69, 0x1b, 0x71, 0x18, 0x61, 0xcd, 0x69, 0x19, 0x54, 0xd6,
+ 0xaf, 0xcb, 0x37, 0x52,
+ 0x93, 0x8b, 0x03, 0xf8, 0xd8, 0xdb, 0x4a, 0x3b, 0x03, 0x7b, 0x5a, 0xc3,
+ 0x52, 0x7d, 0x93, 0x1c,
+ 0xdb, 0x45, 0x63, 0x4e, 0xe4, 0x87, 0x1e, 0x57, 0x63, 0xc0, 0x4b, 0x19,
+ 0x80, 0x06, 0xdb, 0x1a,
+ 0x38, 0xfb, 0x20, 0xd3, 0x14, 0x34, 0x8d, 0x24, 0x20, 0x69, 0x0f, 0xf7,
+ 0x4e, 0x29, 0x38, 0x02,
+ 0x7f, 0x37, 0x09, 0xad, 0x4d, 0x44, 0x35, 0xa1, 0x09, 0xa2, 0x45, 0x0c,
+ 0x7d, 0xb0, 0x7f, 0x54,
+ 0xb6, 0xa0, 0x72, 0x2f, 0xa6, 0xd4, 0x3e, 0xed, 0x72, 0x3c, 0x9b, 0xc2,
+ 0x28, 0xd8, 0xb6, 0xae,
+ 0xa0, 0x81, 0xad, 0x96, 0xea, 0x47, 0x90, 0xf0, 0xad, 0x08, 0xae, 0x66,
+ 0xb1, 0x91, 0xa0, 0xcf,
+ 0xb7, 0xec, 0x33, 0xa3, 0xc6, 0xf5, 0x60, 0x0d, 0x33, 0xc7, 0xb3, 0xae,
+ 0x3b, 0xa1, 0xb7, 0x1f,
+ 0xb8, 0xee, 0x7a, 0x6b, 0xa3, 0xd9, 0x8c, 0xe4, 0x7a, 0xb7, 0xe8, 0x8f,
+ 0xda, 0x43, 0xb8, 0x4f,
+ 0xc5, 0x41, 0xf1, 0x1d, 0x2e, 0xdf, 0x05, 0x46, 0xf1, 0x20, 0xfd, 0x5b,
+ 0x81, 0x01, 0xc5, 0xba,
+ 0xcc, 0x28, 0xfd, 0x7b, 0xc8, 0x35, 0xee, 0xaa, 0xfd, 0x0f, 0x56, 0xd1,
+ 0x0a, 0x36, 0xcc, 0xca,
+ 0x54, 0x52, 0x70, 0x3e, 0x36, 0x46, 0xf3, 0x7e, 0x70, 0x6e, 0xf7, 0x40,
+ 0xf5, 0x8e, 0x54, 0x07,
+ 0x04, 0xf3, 0xc7, 0x75, 0x43, 0x84, 0xbb, 0x06, 0xc7, 0x6a, 0xa0, 0x73,
+ 0x4c, 0x27, 0x04, 0x81,
+ 0xb1, 0x87, 0x76, 0x0d, 0x45, 0x33, 0x67, 0x08, 0x76, 0x98, 0x43, 0x05,
+ 0x51, 0x74, 0xb1, 0x3f,
+ 0x13, 0x9e, 0x59, 0x40, 0x6f, 0x36, 0x4b, 0xfb, 0x59, 0xa5, 0xbd, 0xbb,
+ 0xc6, 0x17, 0x13, 0x51,
+ 0xb2, 0x53, 0xb5, 0x5a, 0xe5, 0x50, 0x85, 0xeb, 0xb5, 0x56, 0x3b, 0xb1,
+ 0x64, 0xff, 0xb2, 0x2f,
+ 0x1c, 0x9c, 0x10, 0x88, 0x0a, 0x1a, 0xa7, 0x12, 0x10, 0xd5, 0xe6, 0x9a,
+ 0x27, 0xf5, 0x1c, 0x01,
+ 0xa8, 0xa4, 0xe0, 0x7c, 0x6c, 0x8c, 0x25, 0xfc, 0xe0, 0xdc, 0x2d, 0x80,
+ 0x29, 0xdf, 0xa8, 0x0e,
+ 0x02, 0x98, 0x82, 0xdb, 0xc0, 0x42, 0xbc, 0x03, 0x82, 0x35, 0x50, 0xd8,
+ 0x26, 0xf2, 0x02, 0xa1,
+ 0x20, 0x94, 0xf7, 0x2e, 0x5d, 0xaa, 0x91, 0x30, 0xf7, 0xd6, 0x49, 0x1e,
+ 0x25, 0xfb, 0x20, 0x82,
+ 0xf5, 0x9f, 0x9c, 0x24, 0xbc, 0x20, 0x3d, 0x6e, 0x9c, 0x9d, 0x71, 0x4a,
+ 0x57, 0x66, 0xf5, 0x79,
+ 0x45, 0x54, 0xab, 0xa5, 0x99, 0x32, 0x04, 0x86, 0xab, 0xfe, 0x1a, 0x23,
+ 0x15, 0x6b, 0x45, 0xf7,
+ 0x3b, 0x2f, 0xe3, 0x84, 0xb4, 0x57, 0x6f, 0xc7, 0xe3, 0xa7, 0x77, 0x43,
+ 0x7b, 0xa2, 0x3b, 0x12,
+ 0x3f, 0xdc, 0x24, 0xf1, 0xf7, 0xd3, 0xd4, 0xc1, 0x24, 0xcd, 0xd7, 0x30,
+ 0x37, 0x85, 0x3f, 0x93,
+ 0xc3, 0x2a, 0xb4, 0xb3, 0xad, 0x19, 0x02, 0x43, 0xb4, 0x7f, 0x0d, 0xf0,
+ 0xeb, 0xd4, 0xc3, 0x9a,
+ 0x2f, 0x96, 0xbe, 0xe6, 0x38, 0x86, 0x7d, 0xd9, 0xbe, 0xa6, 0x12, 0x3f,
+ 0xc4, 0x19, 0x2f, 0xd2,
+ 0x76, 0x5e, 0x05, 0xcb, 0xab, 0xae, 0xde, 0x4d, 0x05, 0x8d, 0xee, 0x86,
+ 0xf6, 0x87, 0x76, 0x24,
+ 0x4b, 0x1a, 0xa3, 0xe1, 0x9c, 0x3f, 0xb6, 0x8f, 0xa3, 0x75, 0x69, 0x6e,
+ 0xe7, 0xf0, 0x4b, 0x16,
+ 0x5f, 0xa3, 0xfe, 0x83, 0x10, 0xee, 0xa4, 0x91, 0xfe, 0x74, 0x0c, 0x12,
+ 0x58, 0x4b, 0x5f, 0xd6,
+ 0x97, 0x78, 0xc4, 0x8d, 0x9b, 0x5f, 0xf1, 0x3d, 0xc4, 0x11, 0xfa, 0xb0,
+ 0x1e, 0x5a, 0x97, 0x9d,
+ 0x16, 0x21, 0xdf, 0xb9, 0x4c, 0x93, 0xae, 0x1d, 0xdf, 0x34, 0x35, 0xa4,
+ 0x99, 0x49, 0x16, 0x61,
+ 0xa2, 0x19, 0x2f, 0x4d, 0x2a, 0x05, 0x2c, 0xf3, 0x2f, 0x3d, 0xfe, 0xbe,
+ 0x97, 0x63, 0xa2, 0x6e,
+ 0x50, 0xa1, 0xb7, 0x4b, 0x75, 0xc2, 0x48, 0x78, 0xb7, 0x04, 0x57, 0x33,
+ 0xb9, 0xa9, 0x50, 0x86,
+ 0x6a, 0xc2, 0x15, 0x43, 0xa1, 0xb4, 0x79, 0x5f, 0x15, 0x58, 0x08, 0x1c,
+ 0xd1, 0x72, 0x6a, 0x25,
+ 0x0c, 0xd6, 0x8a, 0x9f, 0xc5, 0x4f, 0x0e, 0x0a, 0x8a, 0xbe, 0x23, 0x95,
+ 0xd4, 0x69, 0x0c, 0x40,
+ 0x71, 0x79, 0x01, 0xe9, 0x48, 0x49, 0x87, 0xa8, 0x01, 0x29, 0x36, 0x41,
+ 0x8f, 0x2b, 0x71, 0xb5,
+ 0xa6, 0xea, 0xe8, 0x38, 0x69, 0x81, 0x97, 0xf5, 0xe8, 0x57, 0x5e, 0xcd,
+ 0xdb, 0x44, 0xa6, 0xef,
+ 0x8a, 0xa8, 0x95, 0x89, 0xf1, 0x64, 0x08, 0xcf, 0x95, 0x3f, 0x34, 0x46,
+ 0x2a, 0xd6, 0x8a, 0x2d,
+ 0xe7, 0x4d, 0x84, 0xe8, 0xb3, 0x37, 0x28, 0x75, 0x84, 0xc3, 0xe4, 0x9d,
+ 0x82, 0x08, 0xe7, 0x99,
+ 0xec, 0xbc, 0x0a, 0x55, 0x95, 0x9f, 0x7f, 0x9a, 0x0a, 0xd9, 0x1f, 0xcf,
+ 0x2f, 0xcd, 0xec, 0x48,
+ 0x51, 0xed, 0xf6, 0xc7, 0x15, 0xe3, 0x16, 0x98, 0xf6, 0xff, 0x7f, 0x5f,
+ 0xaa, 0xd0, 0x51, 0x37,
+ 0x79, 0x5c, 0x4c, 0x03, 0xce, 0x82, 0x32, 0xa4, 0x4c, 0xfd, 0xb5, 0xa7,
+ 0x17, 0x65, 0x79, 0x74,
+ 0xe1, 0x26, 0xc1, 0x46, 0x30, 0xf1, 0x2f, 0x70, 0xc1, 0x9c, 0x14, 0x36,
+ 0xe8, 0xdd, 0xe1, 0xb9,
+ 0x1b, 0xbb, 0x14, 0xaa, 0xe9, 0xfd, 0xfe, 0xf7, 0x14, 0x71, 0x3e, 0x5d,
+ 0x5e, 0x59, 0x1b, 0x90,
+ 0x9f, 0x5d, 0x89, 0x67, 0x1d, 0x94, 0x44, 0x31, 0x89, 0xc5, 0x79, 0x56,
+ 0x86, 0x14, 0x9f, 0x5c,
+ 0x74, 0xc6, 0x87, 0x10, 0x6b, 0xec, 0x62, 0x4e, 0x87, 0xb8, 0xbe, 0x5e,
+ 0xd0, 0x75, 0x74, 0x85,
+ 0xf8, 0x05, 0x57, 0x37, 0x19, 0x4e, 0x6d, 0x84, 0x57, 0xd8, 0x7a, 0xb3,
+ 0x90, 0x76, 0xf8, 0x88,
+ 0x5a, 0x1c, 0x78, 0x7a, 0x33, 0x4b, 0x41, 0x77, 0x78, 0xe5, 0x84, 0x0d,
+ 0x07, 0x15, 0x5a, 0xe6,
+ 0x67, 0x58, 0xde, 0x50, 0x04, 0xda, 0x29, 0xb5, 0xde, 0x1d, 0x03, 0xe5,
+ 0x16, 0x62, 0x67, 0xd4,
+ 0x36, 0xb5, 0x28, 0x97, 0x11, 0x39, 0x3f, 0x2d, 0x28, 0xe2, 0x7c, 0xba,
+ 0xbc, 0xb2, 0x36, 0xe3,
+ 0xe8, 0x4f, 0xcd, 0x20, 0xd6, 0x1b, 0xc4, 0x9c, 0xcd, 0xb3, 0xbf, 0xbc,
+ 0x63, 0xea, 0xe8, 0xc9,
+ 0x60, 0x7f, 0xda, 0x72, 0xe7, 0x3d, 0x70, 0x50, 0xda, 0xb9, 0xdb, 0x22,
+ 0x6f, 0xce, 0x60, 0x45,
+ 0xd2, 0x2c, 0x6f, 0x28, 0x02, 0x6d, 0xf5, 0xbb, 0x6f, 0xef, 0xe0, 0x93,
+ 0x0b, 0x31, 0xd2, 0x6a,
+ 0xa5, 0x3e, 0x2b, 0x6f, 0xc9, 0xe2, 0x75, 0x16, 0x2b, 0x99, 0x26, 0x79,
+ 0xee, 0xcf, 0xa5, 0xff,
+ 0x8c, 0xc3, 0xd0, 0x27, 0x72, 0xa2, 0x0f, 0xca, 0xd0, 0x60, 0xc4, 0xed,
+ 0x40, 0x03, 0x8c, 0x0d,
+ 0xbd, 0x51, 0xfc, 0x92, 0x80, 0x7c, 0x69, 0x02, 0xfc, 0x26, 0x60, 0x90,
+ 0x85, 0x1d, 0xbd, 0x7f,
+ 0xfb, 0xd1, 0x94, 0x60, 0xb9, 0x2d, 0x8f, 0x67, 0x94, 0x16, 0x02, 0x07,
+ 0xa5, 0xfd, 0xfb, 0x98,
+ 0xba, 0x76, 0xf8, 0xb0, 0x63, 0x9b, 0x30, 0xe7, 0xf8, 0x82, 0xb8, 0x57,
+ 0xfc, 0xb1, 0xba, 0xee,
+ 0x0f, 0x02, 0x49, 0xc8, 0x65, 0x2c, 0xec, 0xe9, 0x49, 0x70, 0x5b, 0x21,
+ 0xe1, 0xe2, 0x0f, 0x50,
+ 0x4f, 0xe9, 0x64, 0x94, 0xdf, 0xbb, 0x0d, 0x89, 0x64, 0x1f, 0xc9, 0x1d,
+ 0xab, 0xd7, 0x4f, 0x97,
+ 0x8e, 0x5b, 0x52, 0xfc, 0xb2, 0xe0, 0xb3, 0xc9, 0x52, 0x55, 0x94, 0x35,
+ 0x66, 0xf1, 0x8e, 0xac,
+ 0x89, 0x7c, 0x56, 0xde, 0x51, 0x07, 0xea, 0x2c, 0x56, 0xf1, 0x4c, 0xf2,
+ 0x1f, 0x5d, 0x89, 0x3d,
+ 0x06, 0x6b, 0x45, 0xae, 0x83, 0xc6, 0x07, 0x05, 0x45, 0x5f, 0xf0, 0xab,
+ 0x6a, 0xd5, 0x06, 0x20,
+ 0xe5, 0xd5, 0x06, 0x33, 0x73, 0x75, 0x94, 0x76, 0x06, 0xf6, 0xb4, 0x45,
+ 0xa4, 0xfa, 0xe5, 0x38,
+ 0xf4, 0xd3, 0xdd, 0xa8, 0xdc, 0x01, 0x63, 0x8e, 0xdd, 0x66, 0x59, 0x26,
+ 0x44, 0x1f, 0xf4, 0xc8,
+ 0xc7, 0xd9, 0x73, 0xc6, 0xee, 0x9d, 0xb9, 0x45, 0x73, 0x15, 0xad, 0x83,
+ 0xa7, 0xf3, 0xc7, 0x1b,
+ 0xad, 0x1b, 0x66, 0x85, 0x4f, 0x29, 0xc0, 0x1a, 0x66, 0x4d, 0xa5, 0x9f,
+ 0x76, 0x81, 0xad, 0x3e,
+ 0xcb, 0x0f, 0xf9, 0x59, 0x2b, 0xd2, 0xb7, 0x4f, 0xf9, 0xab, 0x8e, 0x16,
+ 0x73, 0x9a, 0xcb, 0x5b,
+ 0x80, 0x15, 0x5a, 0xb8, 0xb7, 0xed, 0x01, 0xc0, 0x5a, 0xde, 0xe7, 0x78,
+ 0x94, 0x6a, 0x80, 0x4d,
+ 0xf0, 0x20, 0x1a, 0xdd, 0x9f, 0x85, 0xd8, 0x88, 0x1a, 0x0c, 0xf9, 0x55,
+ 0x08, 0x38, 0xf0, 0x49,
+ 0xd5, 0x0b, 0x6b, 0x0a, 0xe1, 0x8a, 0xac, 0x5e, 0x6b, 0x4b, 0x38, 0x54,
+ 0x72, 0x9d, 0xd5, 0xfb,
+ 0x07, 0x27, 0x04, 0x22, 0xe3, 0xe7, 0x59, 0xe5, 0x04, 0xa4, 0xd8, 0xc7,
+ 0x79, 0xac, 0x07, 0x91,
+ 0xea, 0xd7, 0x4f, 0xfb, 0x16, 0x59, 0x78, 0x9f, 0x4f, 0x86, 0xef, 0x64,
+ 0x45, 0x18, 0xea, 0x68,
+ 0x56, 0xca, 0xf2, 0xe5, 0xf6, 0x04, 0x4f, 0x7d, 0xf2, 0x5b, 0xa7, 0x98,
+ 0xd3, 0x7c, 0x56, 0xa6,
+ 0x4d, 0x71, 0xe6, 0x4f, 0x1f, 0xf9, 0xb1, 0x8a, 0xe6, 0x2a, 0x99, 0xc5,
+ 0x8d, 0x25, 0x4d, 0x36,
+ 0x55, 0x1e, 0x31, 0xb2, 0x56, 0x67, 0xad, 0x9e, 0x31, 0x95, 0xdf, 0x2c,
+ 0xe6, 0xf7, 0x55, 0xb6,
+ 0x43, 0x3f, 0xee, 0x0b, 0x1a, 0xf4, 0x03, 0x83, 0xee, 0xa1, 0xea, 0x88,
+ 0x7f, 0xbe, 0x43, 0xd7,
+ 0x1a, 0xf7, 0x55, 0x26, 0x89, 0xdc, 0xa0, 0x17, 0x55, 0x8a, 0x16, 0x31,
+ 0x4d, 0x20, 0x1a, 0x21,
+ 0x0b, 0xf1, 0x8e, 0xbd, 0x26, 0xa8, 0x57, 0xef, 0x8e, 0x1a, 0xfb, 0x52,
+ 0xad, 0xc5, 0x0b, 0xd1,
+ 0xe3, 0xbe, 0x43, 0x9d, 0xf0, 0xb3, 0x93, 0x73, 0x43, 0xa9, 0x44, 0xee,
+ 0xce, 0x2f, 0xe3, 0x18,
+ 0x96, 0x34, 0x85, 0x01, 0xfb, 0x7e, 0xaf, 0xdd, 0x85, 0xea, 0xd2, 0xdc,
+ 0x0d, 0x23, 0x96, 0x2c,
+ 0x27, 0xb3, 0xf3, 0x0c, 0xbe, 0x4d, 0xc8, 0xd5, 0xf3, 0x72, 0x91, 0xd9,
+ 0x5c, 0x57, 0x27, 0x13,
+ 0xdd, 0x2e, 0x26, 0xe0, 0x67, 0x41, 0x19, 0x52, 0x26, 0x9f, 0xbb, 0xb2,
+ 0xea, 0xd3, 0xdd, 0x3a,
+ 0x44, 0x18, 0xea, 0x29, 0xf9, 0x13, 0x5a, 0x66, 0xea, 0x05, 0x32, 0x4f,
+ 0x06, 0x12, 0x44, 0x46,
+ 0x26, 0xff, 0xb2, 0x80, 0xde, 0x6c, 0x96, 0x35, 0xb2, 0x89, 0xb9, 0xb5,
+ 0x4f, 0x2e, 0x26, 0xa2,
+ 0x35, 0x61, 0xeb, 0xc0, 0xb1, 0x5a, 0xdd, 0xce, 0xeb, 0x2c, 0x04, 0x0e,
+ 0x89, 0x39, 0x35, 0xf3,
+ 0xdc, 0x62, 0x67, 0x6c, 0x07, 0x60, 0x47, 0xb2, 0x67, 0x64, 0x93, 0xde,
+ 0xf9, 0xaa, 0xdc, 0x8b,
+ 0xa4, 0x72, 0x6a, 0xe3, 0xa9, 0xc3, 0x2b, 0xf6, 0x6a, 0x62, 0x0e, 0x15,
+ 0xfd, 0xb6, 0xa4, 0x4e,
+ 0x58, 0x84, 0xfa, 0xa1, 0xf3, 0x09, 0xfd, 0x74, 0xfa, 0xd0, 0xd4, 0xd5,
+ 0x21, 0xe7, 0x58, 0x47,
+ 0xcf, 0xfc, 0x3e, 0x2c, 0x68, 0x56, 0x0c, 0x49, 0x3e, 0xc1, 0x2e, 0x65,
+ 0x3f, 0xbd, 0xcf, 0xda,
+ 0xd0, 0xb4, 0xed, 0xf3, 0xc2, 0x2f, 0x49, 0xb8, 0xed, 0xda, 0xb0, 0x4b,
+ 0x2d, 0xc3, 0xd0, 0xcb,
+ 0x7c, 0xe3, 0xca, 0xfa, 0xed, 0x27, 0xd7, 0x42, 0xca, 0x6c, 0x3d, 0xb8,
+ 0x48, 0x3b, 0x7c, 0x44,
+ 0x5c, 0x77, 0x3d, 0xd4, 0xb0, 0x8d, 0x46, 0x72, 0x3d, 0xba, 0x74, 0xa6,
+ 0x6d, 0xc0, 0x5c, 0xc6,
+ 0x7e, 0x7b, 0x48, 0x21, 0x2d, 0x65, 0x6b, 0x41, 0x48, 0x59, 0x6d, 0x60,
+ 0x6e, 0xc9, 0x7e, 0xe5,
+ 0xfe, 0x6e, 0x12, 0x99, 0x9a, 0x88, 0x6a, 0x81, 0x12, 0x87, 0x8a, 0x18,
+ 0xfa, 0xa3, 0xfe, 0xa8,
+ 0xaa, 0x3c, 0x62, 0xa7, 0xac, 0xce, 0x99, 0xff, 0x62, 0xe9, 0x7d, 0x58,
+ 0x0f, 0x2d, 0xaa, 0xaf,
+ 0x2b, 0x65, 0x79, 0x93, 0x7b, 0x02, 0xc6, 0xdf, 0x79, 0xcc, 0xb2, 0x4c,
+ 0x88, 0x3e, 0x2b, 0x53,
+ 0xc9, 0x97, 0x7b, 0x82, 0xeb, 0x90, 0x0b, 0x4c, 0x7b, 0x9e, 0xde, 0xce,
+ 0x55, 0x68, 0xc9, 0xfa,
+ 0x92, 0xc7, 0x42, 0x74, 0xb8, 0xfa, 0x14, 0xdb, 0x42, 0x80, 0x72, 0xaf,
+ 0x41, 0x04, 0x92, 0xad,
+ 0xca, 0x43, 0xb8, 0xd5, 0x4b, 0xf3, 0xe9, 0xaf, 0xb8, 0x50, 0xa6, 0x7a,
+ 0x60, 0xe3, 0xca, 0xea,
+ 0x4c, 0x3d, 0xa7, 0xc3, 0x7f, 0xd8, 0xef, 0x6a, 0xa7, 0xd1, 0xb1, 0xa9,
+ 0x9e, 0x5c, 0x4c, 0x87,
+ 0x9d, 0xc5, 0x0b, 0xbc, 0xdd, 0xd6, 0xf8, 0x32, 0x0b, 0xf0, 0x29, 0x8e,
+ 0xa0, 0xe6, 0x9d, 0xfd,
+ 0xa7, 0xa6, 0xa9, 0xb4, 0x09, 0xa0, 0xc9, 0x15, 0xa9, 0xac, 0x76, 0xa1,
+ 0xc8, 0x3d, 0xa7, 0x5e,
+ 0x59, 0xc8, 0xbb, 0x2d, 0x93, 0x28, 0xa3, 0x94, 0xbb, 0x2b, 0xfc, 0xb9,
+ 0x32, 0x9e, 0x59, 0xf6,
+ 0x9e, 0x11, 0xc8, 0xeb, 0x7d, 0xb5, 0x1a, 0xd1, 0xc8, 0x3e, 0x51, 0x3a,
+ 0x95, 0x6d, 0x9e, 0xed,
+ 0x1d, 0xd0, 0x51, 0x04, 0x6a, 0x3b, 0xf9, 0xf2, 0x51, 0x2e, 0xce, 0xf6,
+ 0x34, 0x8c, 0x1d, 0xb0,
+ 0x01, 0x4c, 0x41, 0x8c, 0x60, 0x21, 0x5e, 0xe0, 0x41, 0xfb, 0x28, 0x6c,
+ 0x13, 0x79, 0x01, 0xb1,
+ 0xc2, 0x66, 0xf5, 0x3f, 0xcd, 0x38, 0x5c, 0xa3, 0xf5, 0x84, 0x25, 0x9c,
+ 0xf8, 0xad, 0xc2, 0x2b,
+ 0x28, 0xb1, 0xba, 0xc4, 0xdb, 0x61, 0x24, 0x3c, 0xba, 0x02, 0xca, 0xf8,
+ 0xbd, 0xb5, 0x28, 0x43,
+ 0xb4, 0x38, 0xf0, 0xf4, 0x66, 0x96, 0x82, 0xee, 0xf0, 0x09, 0xcb, 0x1a,
+ 0x0e, 0x2a, 0xb4, 0x0f,
+ 0x19, 0x23, 0x96, 0x71, 0x29, 0xbf, 0x42, 0xf4, 0x96, 0x44, 0x6e, 0x85,
+ 0x78, 0xab, 0x19, 0x31,
+ 0x85, 0xaa, 0xdc, 0x41, 0x94, 0x48, 0xe4, 0x26, 0xdc, 0x4f, 0x6f, 0x67,
+ 0xcb, 0x34, 0x85, 0x7d,
+ 0x3c, 0x08, 0xe7, 0xa6, 0x57, 0xb0, 0x36, 0x22, 0xe7, 0x03, 0xaf, 0x84,
+ 0x02, 0x0e, 0x3c, 0x83,
+ 0x40, 0xeb, 0x2d, 0x5c, 0xba, 0x97, 0xe1, 0x60, 0x2d, 0x6f, 0x92, 0x3c,
+ 0x4a, 0x35, 0x40, 0xc7,
+ 0x1e, 0x04, 0x92, 0x53, 0xca, 0x58, 0x1b, 0x11, 0x92, 0xe0, 0xb6, 0x42,
+ 0x01, 0x07, 0x1e, 0xa0,
+ 0x95, 0xe0, 0x46, 0x56, 0x5b, 0x1d, 0x4d, 0x3e, 0x46, 0x24, 0xaa, 0x68,
+ 0x38, 0xa8, 0x95, 0x3c,
+ 0xab, 0x70, 0x23, 0x2b, 0xcc, 0xef, 0xc7, 0x1f, 0x23, 0x12, 0x55, 0x34,
+ 0x1c, 0x54, 0xab, 0x1e,
+ 0xb3, 0x1f, 0xf4, 0xd6, 0x85, 0x71, 0xdb, 0x0b, 0xf4, 0xad, 0x13, 0xdd,
+ 0x77, 0x86, 0xb3, 0x9e,
+ 0xeb, 0x9b, 0x0e, 0x77, 0x76, 0x78, 0x26, 0x7f, 0x0e, 0x7d, 0xc7, 0x08,
+ 0x56, 0x61, 0xeb, 0xd9,
+ 0xfa, 0x9d, 0xd5, 0xec, 0xd9, 0x0c, 0xd1, 0x87, 0xd5, 0xed, 0x2a, 0x6b,
+ 0xb6, 0x84, 0xfa, 0x29,
+ 0x2a, 0x29, 0x38, 0x1f, 0x1b, 0x23, 0x98, 0x3f, 0x38, 0x37, 0x9a, 0x20,
+ 0x9b, 0x47, 0x2a, 0xe2,
+ 0xac, 0x57, 0x27, 0x09, 0x2f, 0x08, 0x9e, 0xfa, 0x27, 0xb6, 0x8d, 0xf3,
+ 0x65, 0xf8, 0xac, 0x8f,
+ 0x2d, 0x0e, 0x3c, 0x3d, 0xf8, 0xc4, 0xc1, 0xda, 0x3c, 0x93, 0x42, 0xe7,
+ 0xe2, 0xeb, 0x2d, 0x73,
+ 0x25, 0x2b, 0x71, 0xd7, 0x7e, 0x0f, 0x74, 0xd6, 0x71, 0x47, 0xc1, 0x01,
+ 0x7a, 0xa5, 0x25, 0xb2,
+ 0x4a, 0x56, 0xe2, 0x6d, 0xfc, 0x1e, 0xe8, 0x6f, 0xe2, 0x8e, 0x41, 0x02,
+ 0xf4, 0x89, 0x4a, 0xa7,
+ 0xb0, 0xcb, 0x37, 0x81, 0x25, 0x12, 0x39, 0xe8, 0x37, 0x63, 0x6b, 0x69,
+ 0x42, 0x0d, 0xb0, 0x8e,
+ 0x41, 0xa7, 0x6c, 0xd0, 0xda, 0xb6, 0xbf, 0x80, 0x6c, 0x94, 0xba, 0x50,
+ 0x59, 0x4c, 0x41, 0x76,
+ 0x30, 0xde, 0x6d, 0x39, 0x92, 0xff, 0x38, 0x28, 0x6d, 0xbd, 0x8c, 0x11,
+ 0xd6, 0x67, 0x30, 0xc3,
+ 0x33, 0x0a, 0xae, 0x6e, 0x32, 0x9c, 0xda, 0xcb, 0xae, 0x73, 0xf4, 0xa5,
+ 0xe3, 0xec, 0x33, 0xd3,
+ 0x65, 0xc0, 0x5c, 0x8b, 0xc4, 0x98, 0x95, 0xb6, 0x5c, 0x28, 0x53, 0x3d,
+ 0x30, 0x90, 0x65, 0x75,
+ 0x8b, 0xe4, 0xd4, 0x05, 0x91, 0x45, 0x56, 0x2f, 0xd4, 0xc4, 0x1c, 0x2a,
+ 0x39, 0xaf, 0x8b, 0x9c,
+ 0xef, 0x68, 0xc9, 0x02, 0x35, 0xfc, 0x9d, 0x79, 0xc9, 0x17, 0x67, 0x7b,
+ 0x1a, 0x46, 0xef, 0x58,
+ 0x09, 0x69, 0x0c, 0x66, 0xe6, 0xea, 0xeb, 0xec, 0x0c, 0x2f, 0xab, 0x8a,
+ 0x8b, 0x37, 0x09, 0x70,
+ 0x9b, 0xae, 0x4e, 0x12, 0x5e, 0x10, 0xff, 0x37, 0x4e, 0xaf, 0xd9, 0x25,
+ 0xca, 0x33, 0x9b, 0xdd,
+ 0x6f, 0x7d, 0x93, 0xba, 0x82, 0x11, 0x9c, 0xb9, 0x93, 0xc9, 0x80, 0x03,
+ 0x8e, 0x2c, 0x6f, 0x15,
+ 0x84, 0xe6, 0x9d, 0xcd, 0xf4, 0x69, 0xba, 0xc6, 0x9d, 0xb4, 0x47, 0x0b,
+ 0xd8, 0x4d, 0x84, 0xcc,
+ 0x15, 0xf5, 0x1c, 0xee, 0xec, 0xf0, 0x4c, 0xfe, 0x1c, 0xfa, 0x4d, 0x10,
+ 0xac, 0xc2, 0x15, 0x71,
+ 0x75, 0x8a, 0xc6, 0x9c, 0x0b, 0xcd, 0x3c, 0xae, 0xc6, 0x43, 0x96, 0x32,
+ 0xc3, 0x0c, 0x75, 0x34,
+ 0x61, 0x33, 0x9b, 0xfe, 0x87, 0x1c, 0x2e, 0xb0, 0x9b, 0x42, 0xf3, 0x4e,
+ 0x7c, 0xb7, 0x61, 0xf4,
+ 0xf9, 0x49, 0x16, 0xbb, 0x79, 0x6f, 0x33, 0x64, 0x16, 0x23, 0x52, 0xdf,
+ 0x83, 0x0f, 0xf9, 0x39,
+ 0x12, 0xd2, 0x18, 0xcc, 0x0f, 0x17, 0x15, 0x1b, 0x18, 0x5e, 0x95, 0xd7,
+ 0xd5, 0x6e, 0x12, 0xe0,
+ 0x70, 0x35, 0x40, 0x65, 0x28, 0x68, 0xd9, 0x48, 0x40, 0xd2, 0x1e, 0x2d,
+ 0x9c, 0x52, 0x70, 0x04,
+ 0xa3, 0x55, 0x6e, 0xc1, 0x4a, 0x24, 0x72, 0x13, 0x6e, 0xc6, 0xd6, 0xd2,
+ 0x84, 0x1a, 0xa3, 0xdf,
+ 0x9c, 0x89, 0x4a, 0x30, 0xbd, 0xf7, 0xa6, 0xd2, 0x4a, 0x0b, 0x01, 0xe2,
+ 0xb3, 0x9f, 0x9c, 0x4c,
+ 0x4e, 0xa5, 0x25, 0x18, 0xbf, 0x9a, 0x53, 0x69, 0x25, 0xe4, 0xe1, 0x71,
+ 0xb8, 0xae, 0x4e, 0x26,
+ 0xa9, 0xe8, 0xa1, 0xf0, 0x0c, 0xad, 0x7b, 0x1c, 0xa1, 0x27, 0x05, 0xec,
+ 0x3a, 0xa6, 0xa9, 0xbf,
+ 0x7b, 0xc4, 0xce, 0xd8, 0x0e, 0xc0, 0x8e, 0xa7, 0xce, 0xc8, 0xe5, 0x7f,
+ 0x31, 0x97, 0x7b, 0xd5,
+ 0x47, 0xcc, 0x29, 0x7e, 0x59, 0x70, 0xb8, 0x85, 0x29, 0xcb, 0x4a, 0xfb,
+ 0x33, 0x99, 0x47, 0x56,
+ 0xe9, 0x03, 0x8c, 0xac, 0xb6, 0x3a, 0x9a, 0x7c, 0x8c, 0x48, 0x97, 0xd0,
+ 0x70, 0x93, 0xe9, 0x78,
+ 0x7a, 0x88, 0x8f, 0x54, 0x6e, 0xe1, 0xd0, 0x47, 0x8f, 0x33, 0xcd, 0x13,
+ 0x22, 0xee, 0x7a, 0x64,
+ 0xf1, 0x6c, 0x5b, 0x51, 0xff, 0xa4, 0x86, 0x68, 0x5b, 0xf7, 0xd1, 0x39,
+ 0x1b, 0x41, 0xf1, 0xf8,
+ 0xc4, 0x0d, 0xb0, 0x91, 0x4e, 0xfe, 0x5b, 0xa6, 0xb0, 0xdb, 0xd5, 0x37,
+ 0x92, 0x78, 0xc4, 0x0b,
+ 0xaf, 0x83, 0xe4, 0x5e, 0x8f, 0x6b, 0x7c, 0x19, 0xe4, 0x78, 0xf5, 0x47,
+ 0x50, 0x73, 0xaf, 0x9f,
+ 0x68, 0x5a, 0x97, 0x98, 0x61, 0xf6, 0xc5, 0x5c, 0x97, 0x6d, 0x58, 0xc4,
+ 0xf7, 0x80, 0x68, 0x84,
+ 0xbe, 0x85, 0x3f, 0xc5, 0x20, 0x1f, 0x8b, 0xe1, 0x3f, 0xe8, 0x18, 0x24,
+ 0xb0, 0x96, 0xbe, 0x6f,
+ 0xbf, 0xc9, 0x7e, 0x49, 0x40, 0x3e, 0xd5, 0x01, 0x7e, 0x13, 0x30, 0x48,
+ 0xa3, 0xef, 0xbf, 0xde,
+ 0x2e, 0xda, 0xff, 0x6a, 0x58, 0xa7, 0x23, 0x39, 0xff, 0x5d, 0x3a, 0x53,
+ 0xd7, 0x60, 0x2e, 0x63,
+ 0x48, 0xce, 0x60, 0xb6, 0x3c, 0x5c, 0x54, 0x6c, 0x60, 0xbb, 0x11, 0xda,
+ 0xd2, 0x7b, 0x48, 0x06,
+ 0xce, 0xb0, 0x7f, 0xa0, 0x08, 0x77, 0x52, 0xa9, 0x7f, 0x3a, 0x06, 0x09,
+ 0x2c, 0xc4, 0xce, 0x6b,
+ 0x3d, 0x44, 0xa6, 0x2a, 0x37, 0x91, 0x68, 0xc2, 0xa6, 0xf8, 0x87, 0xe8,
+ 0x11, 0x77, 0x3d, 0x32,
+ 0x32, 0x46, 0xef, 0xe2, 0x52, 0xbd, 0x84, 0x2b, 0xef, 0x88, 0xdc, 0xc9,
+ 0xf0, 0x95, 0x32, 0x62,
+ 0xe6, 0x01, 0xc5, 0x64, 0xd3, 0x16, 0x76, 0x95, 0xc5, 0x38, 0xcc, 0xf1,
+ 0x91, 0x71, 0xe6, 0x28,
+ 0x6b, 0x8e, 0x54, 0xcf, 0xc1, 0x95, 0x27, 0xbf, 0x54, 0xa3, 0x20, 0x70,
+ 0xc2, 0x0b, 0x6b, 0x94,
+ 0xbb, 0x3a, 0xb9, 0x3c, 0x03, 0xba, 0x6e, 0x07, 0xb9, 0x79, 0x90, 0x3b,
+ 0xef, 0xc8, 0xbb, 0x5f,
+ 0x91, 0x13, 0x81, 0x23, 0x18, 0x99, 0xf6, 0x38, 0x81, 0x4e, 0x0a, 0x1b,
+ 0x74, 0x8f, 0x91, 0xbd,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x83, 0xc1, 0x99, 0xef, 0x17, 0x8e, 0xe3, 0x23, 0x99, 0x10, 0x9f, 0xcc,
+ 0xa1, 0xe1, 0x83, 0x5d,
+ 0xe0, 0x6a, 0x80, 0xca, 0x50, 0xd0, 0x71, 0x90, 0x80, 0x67, 0x3c, 0x5a,
+ 0xfb, 0xa4, 0xe0, 0x08,
+ 0x82, 0x8d, 0xd8, 0x63, 0x77, 0xaf, 0xbd, 0xc3, 0xd8, 0xeb, 0xb7, 0xa0,
+ 0xb2, 0x98, 0x82, 0xec,
+ 0xd7, 0x93, 0xe9, 0xd1, 0x21, 0xc8, 0x10, 0x5d, 0xe9, 0x7e, 0x68, 0x8c,
+ 0x54, 0x6f, 0xd7, 0x5a,
+ 0xf2, 0xb8, 0x98, 0x06, 0x5f, 0xc7, 0x64, 0x8b, 0x98, 0x39, 0xa9, 0x8d,
+ 0x2e, 0xca, 0xf2, 0xe8,
+ 0xcd, 0x64, 0xbc, 0xf7, 0xa8, 0x14, 0xb0, 0x4a, 0xbc, 0xf4, 0x7e, 0xbd,
+ 0x19, 0x4f, 0xcd, 0x7b,
+ 0x78, 0x10, 0x0d, 0x8f, 0xae, 0xa3, 0x6c, 0x44, 0x0d, 0x06, 0x9d, 0xcb,
+ 0x04, 0x1c, 0x78, 0xc5,
+ 0xc0, 0xfe, 0x77, 0xe4, 0x0d, 0x7a, 0xe0, 0xa0, 0x77, 0xb1, 0x75, 0x44,
+ 0xde, 0x5f, 0xc0, 0x8a,
+ 0x63, 0xab, 0x19, 0x25, 0x47, 0x5e, 0x92, 0xb3, 0x19, 0x77, 0xa3, 0x96,
+ 0x5a, 0x45, 0x63, 0x55,
+ 0x87, 0x32, 0x5e, 0x9a, 0x54, 0x0a, 0x58, 0x25, 0x5e, 0x7a, 0x3f, 0xbf,
+ 0xed, 0xc6, 0x87, 0xdc,
+ 0xfc, 0xf6, 0x90, 0x42, 0x5a, 0xca, 0xd6, 0x82, 0x90, 0xb2, 0xda, 0xc0,
+ 0xdc, 0x51, 0xfc, 0x09,
+ 0x94, 0xac, 0x07, 0xda, 0x3b, 0x3c, 0x13, 0xde, 0x07, 0xdf, 0x82, 0x04,
+ 0x2b, 0xd1, 0x94, 0x8d,
+ 0x08, 0x25, 0x4d, 0xea, 0x86, 0xcb, 0xb5, 0x0c, 0x4d, 0xd4, 0x83, 0xe6,
+ 0x98, 0x4e, 0x08, 0xc1,
+ 0x81, 0x59, 0x1b, 0x34, 0xd7, 0xcc, 0x5f, 0x20, 0x1b, 0x25, 0xcf, 0x14,
+ 0x87, 0x13, 0x81, 0xfc,
+ 0x17, 0x6d, 0x9e, 0x35, 0x2c, 0xb2, 0xf0, 0xfd, 0x9e, 0xcf, 0x1d, 0xc8,
+ 0x8a, 0x30, 0x17, 0xd0,
+ 0x62, 0xe7, 0x58, 0xa9, 0x27, 0x7f, 0xcc, 0x53, 0x58, 0x8c, 0x8b, 0xfa,
+ 0x49, 0x3c, 0x62, 0xe4,
+ 0xd8, 0x91, 0xa0, 0x19, 0x44, 0xe4, 0xfc, 0xb4, 0xa0, 0x0e, 0x33, 0xad,
+ 0xb5, 0x8d, 0xd8, 0x0a,
+ 0x31, 0x92, 0x2c, 0xb5, 0xf2, 0xde, 0x66, 0xc8, 0x2c, 0x46, 0xa4, 0x7d,
+ 0xc5, 0x1e, 0x31, 0x72,
+ 0x10, 0x4a, 0x9a, 0x17, 0xcf, 0x55, 0xa9, 0x18, 0x9a, 0x6b, 0xc5, 0x0f,
+ 0xf3, 0x9c, 0x10, 0x41,
+ 0x21, 0xd8, 0xb6, 0xa2, 0x3d, 0x8b, 0xcf, 0xd0, 0xb6, 0x2d, 0x61, 0x72,
+ 0x36, 0x82, 0x21, 0x33,
+ 0xda, 0x09, 0x22, 0xc2, 0x84, 0xa6, 0x40, 0xb7, 0x22, 0x3b, 0x63, 0x75,
+ 0x93, 0x7f, 0xda, 0xab,
+ 0x66, 0x14, 0x9f, 0xdc, 0x64, 0xfb, 0x77, 0x55, 0x9f, 0xe6, 0x2b, 0x89,
+ 0x05, 0x1b, 0x66, 0x65,
+ 0x39, 0xb7, 0x61, 0x5f, 0x74, 0x15, 0xd3, 0xc4, 0x61, 0x92, 0x27, 0x9b,
+ 0x5d, 0x50, 0x39, 0xb3,
+ 0xfd, 0xba, 0xd1, 0xce, 0x3a, 0xeb, 0x88, 0x62, 0xd1, 0x49, 0xf2, 0xac,
+ 0xcf, 0x28, 0xfd, 0xb8,
+ 0x0e, 0x4e, 0x08, 0x44, 0x05, 0x0d, 0xb2, 0x09, 0x08, 0x8b, 0x73, 0x4d,
+ 0xf2, 0x9b, 0x0e, 0xe1,
+ 0x6e, 0x31, 0xd2, 0x36, 0xe2, 0x30, 0xc2, 0x59, 0xd2, 0x32, 0xa8, 0x6f,
+ 0x9d, 0x55, 0x6e, 0xa4,
+ 0x8f, 0x17, 0x13, 0x70, 0xd2, 0xc1, 0xed, 0x29, 0x13, 0xae, 0xbc, 0x59,
+ 0x75, 0x88, 0x8f, 0x1d,
+ 0x99, 0x36, 0xcc, 0xc9, 0x9e, 0x52, 0x43, 0x34, 0xcc, 0x9a, 0x89, 0xfd,
+ 0xec, 0xc1, 0x99, 0x7c,
+ 0x6d, 0xe5, 0x11, 0x61, 0x42, 0x53, 0x20, 0xba, 0x11, 0xfc, 0xd0, 0xdb,
+ 0xa8, 0xde, 0x6d, 0xb4,
+ 0xf3, 0xf4, 0xd9, 0x8a, 0x3f, 0xe6, 0x3a, 0x6b, 0xd9, 0xc2, 0x81, 0xe1,
+ 0x3d, 0xb3, 0xf3, 0x59,
+ 0xde, 0xfa, 0xe5, 0xb7, 0xc7, 0x22, 0xfb, 0xb1, 0xe5, 0x51, 0xc3, 0x06,
+ 0xdf, 0x58, 0xde, 0x2a,
+ 0x88, 0x30, 0x17, 0x52, 0x31, 0x26, 0xb4, 0xcc, 0x17, 0x0a, 0x64, 0x9e,
+ 0x0c, 0x24, 0x88, 0x8c,
+ 0x0d, 0x9a, 0xcb, 0x13, 0xa5, 0x6e, 0x50, 0xea, 0xcb, 0x45, 0x0b, 0xf9,
+ 0xc7, 0x10, 0x0d, 0xf1,
+ 0x8d, 0x8f, 0x91, 0xab, 0x12, 0x83, 0x51, 0x2a, 0x91, 0x9b, 0xec, 0x81,
+ 0x53, 0x7a, 0x8d, 0xbc,
+ 0xd4, 0x47, 0x2a, 0x86, 0x81, 0xab, 0xf2, 0xbe, 0x2a, 0xb0, 0x10, 0x38,
+ 0x61, 0xe4, 0xd4, 0x4a,
+ 0x5b, 0x50, 0x39, 0xf6, 0x53, 0x6a, 0x1f, 0x97, 0x39, 0x1e, 0xac, 0x61,
+ 0x14, 0x6c, 0x5b, 0x57,
+ 0xd1, 0xf8, 0xac, 0x7f, 0xa2, 0x0e, 0x17, 0x58, 0xac, 0x21, 0x98, 0x27,
+ 0x3e, 0xba, 0xd1, 0x7a,
+ 0x5d, 0x3b, 0x7c, 0x58, 0xd0, 0xac, 0x18, 0x92, 0x7c, 0x41, 0x5c, 0xca,
+ 0x7e, 0xb9, 0x5d, 0x77,
+ 0x03, 0xd4, 0xc3, 0x57, 0xa0, 0x63, 0xe2, 0xe3, 0xc3, 0xce, 0x78, 0xb4,
+ 0x35, 0x8b, 0x03, 0x10,
+ 0xc8, 0xdb, 0x3a, 0x0e, 0x8b, 0xb1, 0x55, 0xac, 0x3a, 0x65, 0xf6, 0xa2,
+ 0x46, 0x11, 0xc8, 0x4b,
+ 0xc1, 0xb2, 0x36, 0x68, 0x6d, 0x5b, 0xbe, 0x40, 0x36, 0x4a, 0x5d, 0x28,
+ 0xcd, 0x26, 0xc1, 0x3b,
+ 0x77, 0x12, 0x44, 0x47, 0xcb, 0x8f, 0x80, 0xad, 0x44, 0x76, 0xc6, 0xea,
+ 0xe5, 0xfe, 0x77, 0x95,
+ 0x3a, 0x63, 0xa2, 0x08, 0xd4, 0x76, 0x31, 0x27, 0xa2, 0x5c, 0x5f, 0x2f,
+ 0x68, 0xdb, 0x3a, 0xa3,
+ 0xf6, 0x4b, 0x5f, 0x73, 0x1c, 0x43, 0xdf, 0x8d, 0x5f, 0x53, 0x09, 0xfe,
+ 0x62, 0xed, 0xf6, 0x69,
+ 0xb9, 0xa2, 0x3b, 0xe7, 0xc3, 0xf8, 0xd2, 0x04, 0x3b, 0x4c, 0xc0, 0xe3,
+ 0xc9, 0x3a, 0xb9, 0xfe,
+ 0xa1, 0xcd, 0xec, 0x1a, 0x8a, 0x66, 0xce, 0x10, 0xec, 0xf3, 0x86, 0x0a,
+ 0xa2, 0xe8, 0xa1, 0x7e,
+ 0xc6, 0x95, 0x32, 0x4a, 0x8e, 0xbc, 0xe7, 0xa5, 0x32, 0xee, 0x85, 0xef,
+ 0xb4, 0x8a, 0xc6, 0xaa,
+ 0x7d, 0xaf, 0x8b, 0x76, 0x8d, 0x06, 0x89, 0xa2, 0x8b, 0x97, 0x15, 0xd4,
+ 0x5b, 0x42, 0x7d, 0xf5,
+ 0x24, 0x67, 0x30, 0x5b, 0x1e, 0x2e, 0x2a, 0x36, 0x30, 0xbc, 0xe9, 0x6d,
+ 0x69, 0xdc, 0x24, 0x03,
+ 0xdf, 0xb6, 0xa4, 0x3b, 0xa7, 0x03, 0xa5, 0x51, 0xa4, 0xaa, 0xeb, 0x6a,
+ 0xcc, 0x21, 0xdf, 0x9b,
+ 0x64, 0x8c, 0x1d, 0x07, 0xa4, 0xb9, 0xcb, 0x56, 0x1d, 0xd3, 0x7b, 0x51,
+ 0x23, 0xe9, 0x64, 0xc4,
+ 0x23, 0x40, 0x34, 0x79, 0xfd, 0xc9, 0x73, 0xd3, 0x34, 0x18, 0x31, 0xaa,
+ 0x10, 0x70, 0x23, 0x92,
+ 0x73, 0xe1, 0x83, 0x32, 0x88, 0x0b, 0x3b, 0xab, 0x83, 0x1c, 0x66, 0x99,
+ 0xa9, 0xd9, 0x73, 0x14,
+ 0x69, 0x16, 0xd6, 0x14, 0x01, 0xd7, 0x9b, 0xbc, 0xd6, 0x96, 0x70, 0xa8,
+ 0xe4, 0xf9, 0x69, 0x35,
+ 0x18, 0x6f, 0xd7, 0xfd, 0x49, 0x9e, 0x1c, 0x14, 0xd7, 0xbf, 0x46, 0xe9,
+ 0x6b, 0xd2, 0x18, 0x80,
+ 0xbc, 0x1d, 0xbd, 0x1e, 0xe0, 0x5d, 0x37, 0xe2, 0xbd, 0xdd, 0x48, 0xfc,
+ 0x96, 0x64, 0xbc, 0xce,
+ 0x42, 0x73, 0xaf, 0x87, 0x7a, 0xd5, 0x5d, 0x63, 0xaf, 0x5a, 0xc2, 0xe4,
+ 0x6c, 0xc7, 0x42, 0x66,
+ 0x1f, 0x48, 0xd3, 0xdf, 0xaa, 0x79, 0x45, 0xf1, 0xd3, 0x1b, 0x9e, 0x2e,
+ 0x12, 0x7e, 0x1f, 0x11,
+ 0x98, 0x7a, 0x8d, 0x45, 0xfe, 0x73, 0x1d, 0xd4, 0x8d, 0x61, 0xa1, 0x91,
+ 0xff, 0xb8, 0x98, 0xcd,
+ 0x53, 0x75, 0x74, 0x1c, 0xd5, 0xa1, 0xaa, 0x9b, 0x74, 0xca, 0x2f, 0x87,
+ 0x8c, 0x22, 0x53, 0x96,
+ 0xe4, 0x99, 0x47, 0xbf, 0x13, 0x54, 0xca, 0x96, 0x47, 0x0d, 0x9c, 0x29,
+ 0xb7, 0x83, 0xe4, 0x89,
+ 0xae, 0xcf, 0xa5, 0xd2, 0xef, 0x4a, 0x22, 0xf9, 0xa5, 0x83, 0xdd, 0x2b,
+ 0x43, 0x0a, 0xae, 0x2e,
+ 0xd9, 0xdd, 0xe1, 0x95, 0x24, 0xc5, 0xa2, 0x54, 0xe1, 0xf5, 0x1b, 0xc1,
+ 0xa6, 0xf4, 0xd9, 0xbb,
+ 0x22, 0x0c, 0x75, 0xf5, 0x9d, 0xe8, 0x2d, 0x33, 0x75, 0xe3, 0x19, 0xc6,
+ 0x03, 0x09, 0x22, 0x23,
+ 0x52, 0x39, 0x35, 0x90, 0xb5, 0x80, 0xf4, 0x7b, 0x35, 0x31, 0x07, 0xeb,
+ 0x9f, 0x5b, 0x52, 0x27,
+ 0x05, 0xbf, 0x86, 0xf9, 0x23, 0xa5, 0xe5, 0xe6, 0x86, 0x91, 0x88, 0x1f,
+ 0x5f, 0x5e, 0x05, 0x30,
+ 0x6c, 0xa9, 0x50, 0xed, 0x22, 0x72, 0x7e, 0x5a, 0x50, 0x07, 0xf8, 0xb7,
+ 0xbb, 0xa7, 0x6c, 0x05,
+ 0xd3, 0x60, 0x2e, 0xa4, 0x62, 0x4c, 0xab, 0x5b, 0x2e, 0x14, 0xc8, 0xff,
+ 0x18, 0x48, 0xd3, 0xdb,
+ 0xff, 0x22, 0x53, 0x15, 0xfa, 0xa9, 0x34, 0x61, 0x53, 0x7c, 0xa2, 0x74,
+ 0xe9, 0xda, 0xff, 0x19,
+ 0x9a, 0xe2, 0x0f, 0x9e, 0x3e, 0x31, 0xa1, 0xd7, 0x0f, 0x54, 0xf1, 0x49,
+ 0xd9, 0x4a, 0x9a, 0x6c,
+ 0x2c, 0x42, 0x7d, 0xb1, 0x98, 0xe5, 0x9f, 0x3a, 0x7d, 0x68, 0x6a, 0x8b,
+ 0xf1, 0x92, 0x2c, 0xc2,
+ 0x29, 0xfd, 0xfb, 0x48, 0xbb, 0x40, 0x7a, 0xdc, 0xfb, 0xf9, 0xe2, 0x94,
+ 0xae, 0xcc, 0x29, 0xf2,
+ 0x5e, 0xef, 0xbf, 0x0f, 0x70, 0xcf, 0xfa, 0x71, 0xbf, 0x8f, 0x24, 0x7e,
+ 0x4b, 0x32, 0x5e, 0x67,
+ 0x57, 0x86, 0xb3, 0x69, 0x96, 0x25, 0x11, 0x9d, 0xb3, 0xa0, 0x8f, 0xf4,
+ 0xc0, 0x05, 0x57, 0x17,
+ 0xed, 0xf0, 0x4b, 0xd9, 0xf5, 0xbe, 0x21, 0x7a, 0x4b, 0x22, 0x37, 0xa3,
+ 0x3c, 0xb4, 0xed, 0xf9,
+ 0x46, 0x80, 0x68, 0xf2, 0x39, 0x51, 0xe6, 0x65, 0x68, 0x30, 0x62, 0x97,
+ 0x20, 0xe0, 0x46, 0xe7,
+ 0x34, 0x2d, 0xaa, 0x4c, 0xd1, 0x7b, 0x83, 0x2e, 0xaa, 0xd7, 0x2c, 0x62,
+ 0x9a, 0x40, 0x34, 0x42,
+ 0x72, 0xad, 0xc2, 0xbe, 0xe8, 0x2a, 0x65, 0x4b, 0xc2, 0xe7, 0x4e, 0xf5,
+ 0xba, 0xa0, 0x72, 0xa5,
+ 0xb5, 0x74, 0xb1, 0x78, 0x06, 0xb7, 0xdc, 0x0e, 0xb1, 0xf2, 0xe3, 0x76,
+ 0x1d, 0x53, 0xb5, 0xbe,
+ 0x11, 0x06, 0xdb, 0x9b, 0xaf, 0x74, 0xf7, 0xf8, 0xdb, 0x90, 0xed, 0x63,
+ 0xe0, 0xe5, 0x11, 0xf0,
+ 0xe2, 0xf2, 0x02, 0x11, 0x90, 0x92, 0xcd, 0x93, 0x02, 0x52, 0x6c, 0x82,
+ 0xdd, 0x56, 0xe2, 0xa9,
+ 0xd6, 0xdf, 0xa8, 0x5d, 0x41, 0xe9, 0x4e, 0xbd, 0xa8, 0x85, 0x40, 0xe0,
+ 0x47, 0x16, 0xd6, 0xeb,
+ 0xee, 0x24, 0x88, 0x8e, 0x55, 0xdd, 0xc3, 0x99, 0x88, 0xec, 0x4f, 0x17,
+ 0x09, 0x3f, 0xee, 0xe9,
+ 0x90, 0x5f, 0xc0, 0xaf, 0x78, 0xb8, 0xa8, 0xd8, 0xc0, 0xb5, 0x22, 0x77,
+ 0x67, 0xf6, 0x90, 0x0c,
+ 0x14, 0xb9, 0x5d, 0x62, 0x8c, 0xd1, 0x12, 0x1e, 0x5d, 0x01, 0x65, 0x7c,
+ 0xbf, 0xbb, 0x14, 0xc0,
+ 0x3e, 0x90, 0x65, 0x7d, 0x97, 0xf2, 0x8a, 0x21, 0x65, 0x36, 0xff, 0x5c,
+ 0x24, 0xfc, 0x3e, 0x22,
+ 0x86, 0x7e, 0x1f, 0x16, 0x34, 0x2b, 0x06, 0xc5, 0x1f, 0x81, 0x17, 0xd3,
+ 0xfe, 0xbf, 0x86, 0x6d,
+ 0x49, 0x82, 0x21, 0x3a, 0x5c, 0x7d, 0x0a, 0x8c, 0x21, 0x40, 0x39, 0xb6,
+ 0xc1, 0x02, 0x49, 0xb7,
+ 0xf7, 0x07, 0x1e, 0xff, 0x7c, 0x62, 0x81, 0x6d, 0x1e, 0xa8, 0x21, 0x92,
+ 0x71, 0x94, 0xf7, 0xd8,
+ 0x0a, 0xbd, 0xcf, 0x31, 0x46, 0x89, 0x09, 0x0f, 0xcf, 0xe1, 0xd3, 0x3e,
+ 0xbe, 0xbc, 0x0a, 0x60,
+ },
+ { /* 3 */
+ 0xa8, 0x78, 0x41, 0x9a, 0x63, 0x9a, 0xaa, 0xcc, 0x6d, 0x6b, 0xb6, 0x2d,
+ 0xbf, 0x63, 0x8e, 0x1b,
+ 0xb4, 0x31, 0xad, 0x42, 0xc9, 0x42, 0x37, 0x9b, 0xc6, 0x80, 0x29, 0xcb,
+ 0xc0, 0xc9, 0x15, 0xf8,
+ 0x96, 0xde, 0x29, 0xd5, 0x90, 0xd5, 0x18, 0x10, 0xbc, 0xed, 0x40, 0xd2,
+ 0x7a, 0x90, 0xf0, 0x4e,
+ 0x1e, 0xe4, 0x7c, 0xcc, 0x37, 0xcc, 0xa4, 0x79, 0x97, 0x9a, 0x27, 0xb6,
+ 0xd7, 0x37, 0xe2, 0xd3,
+ 0x8a, 0x97, 0xc5, 0x0d, 0x3a, 0x0d, 0x85, 0x47, 0x17, 0x06, 0xdf, 0x34,
+ 0x05, 0x3a, 0x6b, 0xad,
+ 0xf5, 0x02, 0xcd, 0x8d, 0x2d, 0x8d, 0xe6, 0x05, 0x54, 0x61, 0x14, 0x71,
+ 0xb0, 0x2d, 0x33, 0x2f,
+ 0x9f, 0x98, 0x64, 0x8f, 0x0e, 0x8f, 0x01, 0xbf, 0x52, 0x33, 0xb9, 0x79,
+ 0xcb, 0x0e, 0x0a, 0x96,
+ 0xa5, 0xa7, 0xef, 0xe8, 0x04, 0xe8, 0xc1, 0x3f, 0xfb, 0x57, 0xfc, 0x26,
+ 0x9d, 0x04, 0x86, 0xa3,
+ 0x13, 0x3b, 0xd2, 0xbe, 0x50, 0xbe, 0xcf, 0x8a, 0x01, 0xa6, 0x6d, 0xbd,
+ 0xf5, 0x50, 0xea, 0x6b,
+ 0x39, 0x25, 0x53, 0x79, 0x38, 0x79, 0x04, 0xb9, 0x8b, 0xcc, 0xa1, 0x27,
+ 0xaa, 0x38, 0x28, 0x1d,
+ 0xac, 0xe1, 0xa2, 0xb2, 0x9a, 0xb2, 0xd8, 0x90, 0x15, 0x89, 0x05, 0x8d,
+ 0x2c, 0x9a, 0x7c, 0x7b,
+ 0x2d, 0x9d, 0xba, 0xf1, 0xa3, 0xf1, 0x7d, 0x56, 0xd0, 0x20, 0x9b, 0x42,
+ 0x30, 0xa3, 0x94, 0x3e,
+ 0x83, 0xd1, 0x88, 0x57, 0xa4, 0x57, 0x9c, 0xe8, 0xf9, 0xd8, 0x26, 0x9f,
+ 0xb4, 0xa4, 0x91, 0x75,
+ 0x86, 0xff, 0x23, 0x75, 0xf2, 0x75, 0x13, 0xa3, 0x9f, 0xe3, 0xc9, 0x17,
+ 0x73, 0xf2, 0xbe, 0x0d,
+ 0xb9, 0xee, 0x03, 0x30, 0xae, 0x30, 0x5c, 0x68, 0x50, 0xbc, 0x63, 0xc0,
+ 0xe2, 0xae, 0x1d, 0x40,
+ 0x76, 0xd3, 0x45, 0xda, 0x89, 0xda, 0x7a, 0xed, 0xad, 0xb9, 0x32, 0xee,
+ 0x04, 0x89, 0xa2, 0x5a,
+ 0x0f, 0x72, 0x3e, 0x66, 0xfa, 0x66, 0x52, 0xdd, 0xaa, 0x4d, 0xf2, 0x5b,
+ 0x8a, 0xfa, 0x71, 0x88,
+ 0x5a, 0xf9, 0xb7, 0x21, 0x85, 0x21, 0xfa, 0xac, 0x63, 0x40, 0xf5, 0x84,
+ 0x60, 0x85, 0xeb, 0x7c,
+ 0xa0, 0x89, 0x44, 0xca, 0x52, 0xca, 0x4e, 0x74, 0x9d, 0x6c, 0x13, 0xae,
+ 0x5a, 0x52, 0xa9, 0xdb,
+ 0x92, 0x47, 0xca, 0xfd, 0x69, 0xfd, 0x6a, 0x4c, 0xc4, 0x0f, 0xf3, 0x72,
+ 0xe9, 0x69, 0x02, 0x2e,
+ 0xe2, 0xa0, 0xfc, 0x1b, 0x84, 0x1b, 0x5b, 0xd3, 0x2d, 0x25, 0xca, 0x6c,
+ 0xd6, 0x84, 0x2b, 0x24,
+ 0x34, 0xfa, 0xfd, 0x0b, 0x5f, 0x0b, 0x6f, 0x4a, 0x1d, 0xf0, 0xeb, 0x2c,
+ 0x88, 0x5f, 0x20, 0xa5,
+ 0xee, 0xc8, 0x1a, 0x63, 0x4c, 0x63, 0xcd, 0x37, 0xa5, 0xc0, 0xdc, 0x4f,
+ 0xa0, 0x4c, 0xfe, 0x84,
+ 0x6d, 0x19, 0x92, 0x34, 0xe8, 0x34, 0x51, 0xdf, 0x5c, 0x18, 0xfa, 0xd0,
+ 0x14, 0xe8, 0x6f, 0xf1,
+ 0x1a, 0x7d, 0x9f, 0xe4, 0xce, 0xe4, 0xd6, 0x25, 0xef, 0x78, 0x94, 0x16,
+ 0x44, 0xce, 0x10, 0xb3,
+ 0x24, 0xdb, 0xf7, 0xab, 0x3d, 0xab, 0x64, 0xf9, 0x3e, 0xfe, 0x62, 0xe9,
+ 0x81, 0x3d, 0x6e, 0xe6,
+ 0x1f, 0x53, 0x34, 0xc6, 0x98, 0xc6, 0x59, 0x6e, 0x89, 0x43, 0x7b, 0x9e,
+ 0x83, 0x98, 0x3f, 0xcb,
+ 0xd2, 0xc3, 0xe2, 0x38, 0x22, 0x38, 0x46, 0xc5, 0x48, 0x37, 0x92, 0xe0,
+ 0xcd, 0x22, 0xf9, 0xe1,
+ 0x18, 0xd0, 0x0f, 0xf0, 0x53, 0xf0, 0xef, 0x0b, 0xd3, 0x09, 0x2c, 0x46,
+ 0xec, 0x53, 0x69, 0x83,
+ 0x37, 0xe0, 0x25, 0x15, 0x6d, 0x15, 0xab, 0x73, 0x3f, 0x58, 0x0f, 0x54,
+ 0x74, 0x6d, 0x84, 0x8d,
+ 0x6a, 0x9a, 0xa9, 0x02, 0x23, 0x02, 0xe7, 0xba, 0x06, 0x52, 0xad, 0x08,
+ 0x7b, 0x23, 0x39, 0xb9,
+ 0x3f, 0x11, 0x20, 0x45, 0x5c, 0x45, 0x4f, 0xcb, 0xcf, 0x5f, 0xaa, 0xd7,
+ 0x91, 0x5c, 0xa3, 0x4d,
+ 0xae, 0x4c, 0x32, 0xa6, 0x07, 0xa6, 0xe1, 0xbe, 0x29, 0xf8, 0xbd, 0xdd,
+ 0x84, 0x07, 0x05, 0x4b,
+ 0x10, 0x21, 0x0a, 0xa0, 0x62, 0xa0, 0x0b, 0xb3, 0x23, 0x0e, 0x89, 0xc5,
+ 0x09, 0x62, 0x4e, 0x43,
+ 0x46, 0xb0, 0x5b, 0xf9, 0x2f, 0xf9, 0x67, 0xfb, 0xc8, 0xab, 0x6a, 0x62,
+ 0x1f, 0x2f, 0x70, 0x9f,
+ 0x6c, 0xae, 0xda, 0x3e, 0x47, 0x3e, 0xac, 0xc8, 0x42, 0xc1, 0xa6, 0xf8,
+ 0x40, 0x47, 0xb2, 0xe9,
+ 0xbc, 0xc0, 0xa8, 0x12, 0xf8, 0x12, 0xd3, 0x23, 0x36, 0x87, 0x8c, 0x48,
+ 0x25, 0xf8, 0x32, 0x38,
+ 0x68, 0x37, 0x39, 0x16, 0xbe, 0x16, 0xde, 0x94, 0x3a, 0x23, 0x15, 0x58,
+ 0xd3, 0xbe, 0x40, 0x89,
+ 0x0b, 0xeb, 0xdd, 0x4e, 0x03, 0x4e, 0x20, 0x81, 0xd2, 0xaf, 0x41, 0xfb,
+ 0x19, 0x03, 0x83, 0xe8,
+ 0x3e, 0xa6, 0x68, 0x4f, 0xf3, 0x4f, 0xb2, 0xdc, 0xd1, 0x86, 0xf6, 0xff,
+ 0xc5, 0xf3, 0x7e, 0x55,
+ 0xfe, 0xe9, 0x10, 0xc3, 0x2e, 0xc3, 0xc6, 0x84, 0x86, 0xce, 0x55, 0x8a,
+ 0xa9, 0x2e, 0xb0, 0xc7,
+ 0xa9, 0xcf, 0x09, 0x90, 0xcc, 0x90, 0x57, 0xdb, 0x73, 0xb2, 0xea, 0x05,
+ 0xeb, 0xcc, 0x53, 0x03,
+ 0x28, 0xb3, 0x11, 0xd3, 0xf5, 0xd3, 0xf2, 0x1d, 0xb6, 0x1b, 0x74, 0xca,
+ 0xf7, 0xf5, 0xbb, 0x46,
+ 0x7c, 0x8f, 0xd0, 0x9e, 0x25, 0x9e, 0xa7, 0x7b, 0x61, 0xcf, 0x2f, 0x3d,
+ 0x49, 0x25, 0xfc, 0xaa,
+ 0xf2, 0x81, 0xf6, 0xbb, 0xe6, 0xbb, 0x50, 0x60, 0x0e, 0x2b, 0x43, 0xa9,
+ 0xdf, 0xe6, 0x65, 0x67,
+ 0xbf, 0xda, 0x70, 0x0c, 0xca, 0x0c, 0x17, 0x1a, 0x14, 0x2f, 0x68, 0x30,
+ 0xd9, 0xca, 0x96, 0x10,
+ 0xf4, 0xb5, 0x85, 0x87, 0x82, 0x87, 0x1b, 0x12, 0x4a, 0xb8, 0x48, 0x59,
+ 0xe4, 0x82, 0xee, 0x37,
+ 0xcb, 0xa4, 0xa5, 0xc2, 0xde, 0xc2, 0x54, 0xd9, 0x85, 0xe7, 0xe2, 0x8e,
+ 0x75, 0xde, 0x4d, 0x7a,
+ 0x06, 0x34, 0x73, 0x3c, 0x64, 0x3c, 0x4b, 0x72, 0x44, 0x93, 0x0b, 0xf0,
+ 0x3b, 0x64, 0x8b, 0x50,
+ 0xf8, 0xdd, 0x63, 0xff, 0x4a, 0xff, 0x8d, 0xf6, 0xc2, 0x5d, 0x5e, 0x7a,
+ 0x92, 0x4a, 0x3b, 0x97,
+ 0xbd, 0x77, 0xe0, 0x18, 0x57, 0x18, 0x2e, 0x34, 0x28, 0x5e, 0xd0, 0x60,
+ 0x71, 0x57, 0xef, 0x20,
+ 0x75, 0xc9, 0x9d, 0xc4, 0xbb, 0xc4, 0xbe, 0xd4, 0x8f, 0x11, 0xd6, 0x96,
+ 0xf8, 0xbb, 0x06, 0x72,
+ 0x03, 0x1a, 0xd8, 0x1e, 0x32, 0x1e, 0xc4, 0x39, 0x22, 0xa8, 0xe4, 0x78,
+ 0xfc, 0x32, 0xa4, 0x28,
+ 0x4c, 0xec, 0xce, 0xbd, 0x83, 0xbd, 0xba, 0x6d, 0x04, 0xdd, 0x77, 0xb1,
+ 0x52, 0x83, 0x2e, 0x6f,
+ 0x4b, 0x6f, 0xf5, 0x8b, 0x48, 0x8b, 0x0c, 0x08, 0x5e, 0x97, 0x20, 0x69,
+ 0x3d, 0x48, 0x78, 0x27,
+ 0xc0, 0x4f, 0x78, 0x8c, 0xdd, 0x8c, 0x74, 0x58, 0x57, 0x48, 0xa3, 0x75,
+ 0x6c, 0xdd, 0xce, 0x92,
+ 0x04, 0x99, 0xe3, 0x28, 0xf9, 0x28, 0x72, 0x5c, 0x78, 0xe2, 0xb3, 0xa0,
+ 0x93, 0xf9, 0xf2, 0x60,
+ 0xb3, 0xb2, 0x96, 0x74, 0x02, 0x74, 0x81, 0xfe, 0x9c, 0xca, 0x7e, 0x13,
+ 0xaf, 0x02, 0x43, 0xb0,
+ 0xb6, 0x9c, 0x3d, 0x56, 0x54, 0x56, 0x0e, 0xb5, 0xfa, 0xf1, 0x91, 0x9b,
+ 0x68, 0x54, 0x6c, 0xc8,
+ 0x51, 0x12, 0x6a, 0x6f, 0x86, 0x6f, 0xda, 0x2d, 0xb1, 0xef, 0xb4, 0x7f,
+ 0x79, 0x86, 0x68, 0x94,
+ 0xeb, 0xe6, 0xb1, 0x41, 0x1a, 0x41, 0x42, 0x7c, 0xc3, 0xfb, 0x33, 0xc7,
+ 0x67, 0x1a, 0xd1, 0xfc,
+ 0x98, 0x1b, 0x5f, 0xb9, 0xc5, 0xb9, 0xb7, 0xda, 0x08, 0x79, 0xee, 0xa1,
+ 0xa4, 0xc5, 0x5c, 0xde,
+ 0x23, 0x58, 0xcc, 0x9d, 0xf6, 0x9d, 0xd2, 0x9c, 0x64, 0xb4, 0x35, 0x31,
+ 0xee, 0xf6, 0x38, 0xae,
+ 0xab, 0x62, 0x99, 0x84, 0x51, 0x84, 0x6e, 0xf5, 0x4f, 0xc3, 0x52, 0x55,
+ 0x43, 0x51, 0x2a, 0x33,
+ 0xb2, 0x05, 0xde, 0x7e, 0xad, 0x7e, 0x7c, 0xe9, 0x82, 0x13, 0x22, 0x3b,
+ 0xfb, 0xad, 0x9e, 0xa8,
+ 0x99, 0xac, 0x17, 0xb3, 0x6a, 0xb3, 0x4a, 0xcd, 0x16, 0xa0, 0xb2, 0x89,
+ 0xf0, 0x6a, 0x81, 0xc6,
+ 0x89, 0x8d, 0x1d, 0x13, 0x08, 0x13, 0x41, 0x7e, 0x35, 0xae, 0x3b, 0x4c,
+ 0xf9, 0x08, 0xcf, 0x85,
+ 0xdf, 0x1c, 0x4c, 0x4a, 0x45, 0x4a, 0x2d, 0x36, 0xde, 0x0b, 0xd8, 0xeb,
+ 0xef, 0x45, 0xf1, 0x59,
+ 0x0d, 0xdf, 0xae, 0x72, 0x67, 0x72, 0x6b, 0xf3, 0x96, 0x3c, 0x4a, 0x0b,
+ 0x22, 0x67, 0x08, 0xb8,
+ 0x31, 0xd4, 0x56, 0x29, 0x09, 0x29, 0xe0, 0x01, 0x7b, 0xcb, 0x04, 0xa4,
+ 0x4f, 0x09, 0x0f, 0xdd,
+ 0x70, 0xe7, 0x36, 0xe6, 0xed, 0xe6, 0x31, 0x9f, 0xe9, 0x2a, 0x39, 0x1e,
+ 0x3f, 0xed, 0x29, 0x0a,
+ 0x73, 0xfd, 0xee, 0xf8, 0xdf, 0xf8, 0xf5, 0xa6, 0xcb, 0x82, 0xdd, 0x66,
+ 0xc3, 0xdf, 0x8d, 0x22,
+ 0x1d, 0xfe, 0xa4, 0xd2, 0x05, 0xd2, 0x60, 0x40, 0xb5, 0x32, 0xc3, 0xce,
+ 0x2b, 0x05, 0x46, 0xfb,
+ 0x8d, 0x14, 0xfe, 0x3b, 0xf1, 0x3b, 0x33, 0x22, 0x4d, 0x4c, 0x88, 0xec,
+ 0x6a, 0xf1, 0x3d, 0xe5,
+ 0xf1, 0x9b, 0x2e, 0xa5, 0xd4, 0xa5, 0x94, 0x59, 0x2c, 0x83, 0xa7, 0xd1,
+ 0x23, 0xd4, 0xc1, 0x4f,
+ 0x7d, 0x38, 0x98, 0x94, 0x8a, 0x94, 0x5a, 0x6c, 0x7f, 0x16, 0x73, 0x15,
+ 0x1d, 0x8a, 0x21, 0xb2,
+ 0x17, 0xa2, 0x31, 0x96, 0xa9, 0x96, 0xbd, 0xd6, 0x79, 0x44, 0xde, 0x1d,
+ 0x66, 0xa9, 0x18, 0x0b,
+ 0x2c, 0x2a, 0xf2, 0xfb, 0x0c, 0xfb, 0x80, 0x41, 0xce, 0xf9, 0xc7, 0x6a,
+ 0x64, 0x0c, 0x49, 0x26,
+ 0x35, 0x4d, 0xb5, 0x01, 0xf0, 0x01, 0x92, 0x5d, 0x03, 0x29, 0xb7, 0x04,
+ 0xdc, 0xf0, 0xfd, 0xbd,
+ 0x88, 0x3a, 0x55, 0x19, 0xa7, 0x19, 0xbc, 0x69, 0x2b, 0x77, 0x67, 0x64,
+ 0xad, 0xa7, 0x12, 0x9d,
+ 0x67, 0x45, 0x07, 0x70, 0x44, 0x70, 0x8c, 0x49, 0x90, 0x6e, 0xe7, 0x03,
+ 0x59, 0x44, 0x31, 0x01,
+ 0xe1, 0xba, 0x24, 0x05, 0xb6, 0x05, 0x9f, 0xea, 0x0f, 0x8d, 0x2e, 0x14,
+ 0x2a, 0xb6, 0x8f, 0x0c,
+ 0xb5, 0x86, 0xe5, 0x48, 0x66, 0x48, 0xca, 0x8c, 0xd8, 0x59, 0x75, 0xe3,
+ 0x94, 0x66, 0xc8, 0xe0,
+ 0x64, 0x5f, 0xdf, 0x6e, 0x76, 0x6e, 0x48, 0x70, 0xb2, 0xc6, 0x03, 0x7b,
+ 0xa5, 0x76, 0x95, 0x29,
+ 0xb1, 0x1f, 0x06, 0x60, 0x9f, 0x60, 0xb8, 0xd0, 0xa0, 0xbb, 0xc6, 0x43,
+ 0x07, 0x9f, 0x3a, 0x80,
+ 0x08, 0xf1, 0x05, 0x50, 0x31, 0x50, 0xe4, 0xb8, 0xf0, 0x07, 0xa5, 0x83,
+ 0xe5, 0x31, 0x27, 0xc0,
+ 0xe5, 0x23, 0xc7, 0x2d, 0x4f, 0x2d, 0xed, 0xb6, 0x77, 0x6f, 0x9d, 0xb4,
+ 0xb9, 0x4f, 0x7d, 0x6c,
+ 0x1c, 0x49, 0xec, 0xd8, 0xaa, 0xd8, 0x9d, 0x57, 0xab, 0xeb, 0x9f, 0xe6,
+ 0x7f, 0xaa, 0x9b, 0xe3,
+ 0x6b, 0x2d, 0xe1, 0x08, 0x8c, 0x08, 0x1a, 0xad, 0x18, 0x8b, 0xf1, 0x20,
+ 0x2f, 0x8c, 0xe4, 0xa1,
+ 0x5c, 0xcd, 0xc4, 0x1d, 0xe1, 0x1d, 0xb1, 0xde, 0x27, 0xd3, 0xfe, 0x74,
+ 0x5b, 0xe1, 0x60, 0x2c,
+ 0xa3, 0x93, 0x9c, 0xd4, 0x60, 0xd4, 0x8a, 0x4d, 0xbf, 0xc4, 0xf7, 0xd6,
+ 0xa6, 0x60, 0x0d, 0xf3,
+ 0x7a, 0xbb, 0xa3, 0xa2, 0x41, 0xa2, 0xec, 0x09, 0x25, 0x5c, 0x24, 0xcd,
+ 0x72, 0x41, 0x77, 0xfa,
+ 0xe8, 0xfc, 0x69, 0x5f, 0x28, 0x5f, 0x86, 0x45, 0xe1, 0x53, 0xd7, 0xbf,
+ 0x9b, 0x28, 0x75, 0xd4,
+ 0xda, 0x32, 0xe7, 0x68, 0x13, 0x68, 0xa2, 0x7d, 0xb8, 0x30, 0x37, 0x63,
+ 0x28, 0x13, 0xde, 0x21,
+ 0xd7, 0xed, 0x49, 0x1a, 0x74, 0x1a, 0xc9, 0x8e, 0x2e, 0x0c, 0x7d, 0x68,
+ 0x0a, 0x74, 0xd6, 0x99,
+ 0xfa, 0x70, 0xf3, 0xeb, 0xd7, 0xeb, 0xb4, 0xd8, 0xfe, 0x2c, 0xe6, 0x2a,
+ 0x3a, 0xd7, 0x42, 0xa7,
+ 0xa7, 0x0a, 0x7f, 0xfc, 0x99, 0xfc, 0xf8, 0x11, 0xc7, 0x26, 0x44, 0x76,
+ 0x35, 0x99, 0xff, 0x93,
+ 0x7f, 0x95, 0x08, 0x80, 0x17, 0x80, 0x63, 0x42, 0x43, 0x67, 0xcb, 0x45,
+ 0xb5, 0x17, 0x58, 0x82,
+ 0xe4, 0x94, 0x8f, 0x27, 0xe0, 0x27, 0x10, 0xa1, 0x69, 0xb6, 0xc1, 0x9c,
+ 0xed, 0xe0, 0xa0, 0x74,
+ 0x8f, 0xb9, 0x6e, 0x2f, 0x6c, 0x2f, 0x0a, 0x0c, 0x71, 0x3d, 0x30, 0xbc,
+ 0xc2, 0x6c, 0x44, 0xd5,
+ 0xa1, 0x3e, 0x0c, 0xc0, 0xfd, 0xc0, 0xb3, 0x63, 0x83, 0xb5, 0x4f, 0x86,
+ 0x0e, 0xfd, 0x74, 0xc3,
+ 0x52, 0x08, 0xb2, 0x71, 0xb4, 0x71, 0x1e, 0x14, 0x93, 0x47, 0x50, 0x07,
+ 0x85, 0xb4, 0xcc, 0xbc,
+ 0xec, 0x65, 0x8a, 0x77, 0xd1, 0x77, 0xf4, 0x19, 0x99, 0xb1, 0x64, 0x1f,
+ 0x08, 0xd1, 0x87, 0xb4,
+ 0x3b, 0x88, 0xc3, 0x6d, 0xa5, 0x6d, 0x3d, 0x97, 0xb7, 0xbd, 0x19, 0x77,
+ 0x02, 0xa5, 0x51, 0x2d,
+ 0xa2, 0x24, 0xd4, 0xde, 0xcf, 0xde, 0x77, 0x5a, 0xa1, 0x1d, 0xab, 0xfe,
+ 0xf2, 0xcf, 0xd0, 0xeb,
+ 0x5f, 0xd7, 0x1c, 0x03, 0xd3, 0x03, 0x75, 0xe7, 0x05, 0x7b, 0x1a, 0x0c,
+ 0xa7, 0xd3, 0xc4, 0x04,
+ 0x50, 0xa5, 0x22, 0x65, 0x29, 0x65, 0x27, 0x3a, 0xaf, 0x36, 0xe8, 0x57,
+ 0x2d, 0x29, 0xb5, 0x8c,
+ 0x4a, 0xd8, 0xbd, 0x81, 0xe7, 0x81, 0xf1, 0x1f, 0x40, 0x4e, 0x7c, 0x41,
+ 0x69, 0xe7, 0xa5, 0x3f,
+ 0x57, 0x26, 0x19, 0x53, 0xe2, 0x53, 0x91, 0x5f, 0xf5, 0x7c, 0xbf, 0x8f,
+ 0x42, 0xe2, 0xe3, 0xc4,
+ 0x55, 0x8b, 0x89, 0x47, 0x7f, 0x47, 0xa8, 0x71, 0xc9, 0x0d, 0x07, 0xdf,
+ 0xea, 0x7f, 0x9a, 0xf4,
+ 0xdc, 0x06, 0x94, 0x54, 0x77, 0x54, 0xe9, 0x0f, 0xfc, 0xa3, 0x3c, 0x93,
+ 0x13, 0x77, 0x55, 0x71,
+ 0xde, 0xab, 0x04, 0x40, 0xea, 0x40, 0xd0, 0x21, 0xc0, 0xd2, 0x84, 0xc3,
+ 0xbb, 0xea, 0x2c, 0x41,
+ 0x9d, 0x35, 0xf4, 0x9b, 0x93, 0x9b, 0x38, 0x91, 0x6e, 0x42, 0x01, 0x29,
+ 0x63, 0x93, 0x73, 0xa6,
+ 0xe7, 0x8e, 0x57, 0x39, 0xd2, 0x39, 0xd4, 0x98, 0x4b, 0x1e, 0x25, 0xe4,
+ 0x11, 0xd2, 0x04, 0x5c,
+ 0xaf, 0xfb, 0x7a, 0xac, 0xa8, 0xac, 0x1c, 0xa9, 0x37, 0x21, 0xe1, 0xf5,
+ 0xd0, 0xa8, 0xd8, 0x53,
+ 0x97, 0x69, 0x61, 0xdf, 0x3f, 0xdf, 0xe5, 0x07, 0xa2, 0x34, 0x1c, 0xfa,
+ 0x2e, 0x3f, 0x2d, 0x56,
+ 0xaa, 0xd5, 0xd1, 0x8e, 0xfe, 0x8e, 0x93, 0xe2, 0x51, 0x1a, 0x0e, 0x7d,
+ 0x17, 0xfe, 0xf7, 0x2b,
+ 0x26, 0x76, 0x67, 0xbf, 0xa0, 0xbf, 0x5d, 0xd7, 0x02, 0x8f, 0xda, 0xb9,
+ 0x29, 0xa0, 0x17, 0xd6,
+ 0x4d, 0x5b, 0x86, 0xb7, 0x2c, 0xb7, 0x47, 0x7a, 0x1a, 0x04, 0x2b, 0x99,
+ 0x06, 0x2c, 0xf3, 0x77,
+ 0x54, 0x3c, 0xc1, 0x4d, 0xd0, 0x4d, 0x55, 0x66, 0xd7, 0xd4, 0x5b, 0xf7,
+ 0xbe, 0xd0, 0x47, 0xec,
+ 0xf7, 0xaf, 0x5d, 0x99, 0xb0, 0x99, 0xdf, 0x2b, 0x68, 0x10, 0xac, 0x21,
+ 0x18, 0xb0, 0x4a, 0x1f,
+ 0xd9, 0x28, 0x3f, 0x76, 0x21, 0x76, 0x66, 0x44, 0x9a, 0x98, 0xd3, 0x1b,
+ 0xd4, 0x21, 0x7a, 0x09,
+ 0x84, 0x52, 0xb3, 0x61, 0x6f, 0x61, 0x2a, 0x8d, 0xa3, 0x92, 0x71, 0x47,
+ 0xdb, 0x6f, 0xc7, 0x3d,
+ 0x41, 0x33, 0x60, 0xcf, 0xe4, 0xcf, 0xd1, 0x9e, 0x92, 0xe1, 0x3d, 0xba,
+ 0x70, 0xe4, 0x26, 0xd7,
+ 0x82, 0x66, 0xc0, 0x5d, 0x0b, 0x5d, 0x61, 0xff, 0xe7, 0x01, 0x7a, 0xb7,
+ 0xe0, 0x0b, 0x4c, 0x6d,
+ 0xd6, 0x5a, 0x01, 0x10, 0xdb, 0x10, 0x34, 0x99, 0x30, 0xd5, 0x21, 0x40,
+ 0x5e, 0xdb, 0x0b, 0x81,
+ 0xb7, 0x2b, 0x75, 0x5c, 0xfb, 0x5c, 0xf3, 0xa2, 0xe4, 0x28, 0xcd, 0xb3,
+ 0x3c, 0xfb, 0xb1, 0xd0,
+ 0xdb, 0x85, 0xaf, 0x62, 0xbc, 0x62, 0x5f, 0x6a, 0xa6, 0xe9, 0x6b, 0x4b,
+ 0x7c, 0xbc, 0x03, 0x39,
+ 0x2b, 0xa9, 0xc9, 0xcd, 0xc7, 0xcd, 0x36, 0x24, 0x94, 0xb3, 0x90, 0xb2,
+ 0x0b, 0xc7, 0x1f, 0x6e,
+ 0xa6, 0xbd, 0x37, 0xf6, 0x36, 0xf6, 0x05, 0x06, 0xd9, 0xff, 0x18, 0x5e,
+ 0x61, 0x36, 0x22, 0x8b,
+ 0x38, 0x92, 0x1b, 0x73, 0x97, 0x73, 0xf9, 0xae, 0x95, 0x15, 0xfd, 0x0f,
+ 0xfe, 0x97, 0xf5, 0x05,
+ 0xce, 0x8a, 0x0e, 0xe0, 0x88, 0xe0, 0xdb, 0x92, 0xe3, 0xdc, 0x0d, 0x06,
+ 0xb2, 0x88, 0x62, 0x02,
+ 0x95, 0xc4, 0xf1, 0xcb, 0xa2, 0xcb, 0xdc, 0x29, 0x9e, 0x45, 0xa4, 0xaa,
+ 0x86, 0xa2, 0x54, 0x66,
+ 0x71, 0x50, 0x7e, 0xec, 0x42, 0xec, 0xcc, 0x88, 0xf7, 0xf3, 0x65, 0x36,
+ 0x6b, 0x42, 0xf4, 0x12,
+ 0xc3, 0x55, 0xa0, 0x92, 0xef, 0x92, 0xb0, 0x61, 0x75, 0xe0, 0x47, 0x0d,
+ 0x90, 0xef, 0x6a, 0xba,
+ 0x8e, 0x0e, 0x26, 0x25, 0xc3, 0x25, 0xf7, 0x1b, 0x6f, 0xe4, 0x6c, 0x94,
+ 0x96, 0xc3, 0x99, 0xcd,
+ 0x9a, 0xb6, 0xcf, 0xad, 0x58, 0xad, 0x8e, 0xf4, 0x34, 0x08, 0x56, 0xf1,
+ 0x0c, 0x58, 0x25, 0xee,
+ 0xef, 0x7f, 0x52, 0x69, 0xe3, 0x69, 0x30, 0x20, 0xbb, 0x19, 0x80, 0x67,
+ 0xf4, 0xe3, 0x23, 0x9c,
+ 0x25, 0x6c, 0xbf, 0xa1, 0x92, 0xa1, 0x99, 0xee, 0x20, 0x27, 0x3e, 0xc1,
+ 0xd5, 0x92, 0xb3, 0xfe,
+ 0xa4, 0x10, 0xa7, 0xe2, 0xab, 0xe2, 0x3c, 0x28, 0xe5, 0x8e, 0xa0, 0x0e,
+ 0xc9, 0xab, 0x5b, 0xbb,
+ 0xe9, 0x4b, 0x21, 0x55, 0x87, 0x55, 0x7b, 0x52, 0xff, 0x8a, 0x8b, 0x97,
+ 0xcf, 0x87, 0xa8, 0xcc,
+ 0x3c, 0x0b, 0xf8, 0x5b, 0x6e, 0x5b, 0x8b, 0xf2, 0xed, 0xf7, 0x4e, 0xaf,
+ 0x6d, 0x6e, 0x07, 0x65,
+ 0x6f, 0xb4, 0x02, 0x20, 0x75, 0x20, 0x68, 0xf1, 0x60, 0x69, 0x42, 0x80,
+ 0xbc, 0x75, 0x16, 0xc1,
+ 0x02, 0xad, 0x90, 0x14, 0x9d, 0x14, 0x39, 0x2e, 0x3c, 0x71, 0xb8, 0x50,
+ 0xa8, 0x9d, 0x79, 0x30,
+ 0x01, 0xb7, 0x48, 0x0a, 0xaf, 0x0a, 0xfd, 0x17, 0x1e, 0xd9, 0x5c, 0x28,
+ 0x54, 0xaf, 0xdd, 0x18,
+ 0x0a, 0x5c, 0x95, 0x44, 0xac, 0x44, 0xdd, 0x96, 0xcc, 0x76, 0x1d, 0xd3,
+ 0x4d, 0xac, 0x5e, 0xf0,
+ 0x09, 0x46, 0x4d, 0x5a, 0x9e, 0x5a, 0x19, 0xaf, 0xee, 0xde, 0xf9, 0xab,
+ 0xb1, 0x9e, 0xfa, 0xd8,
+ 0x94, 0x73, 0xb9, 0xc1, 0x0d, 0xc1, 0x21, 0x3e, 0x80, 0x9c, 0xf8, 0x82,
+ 0xd2, 0x0d, 0x89, 0x7e,
+ 0xed, 0xd2, 0xc2, 0x7d, 0x7e, 0x7d, 0x09, 0x0e, 0x87, 0x68, 0x38, 0x37,
+ 0x5c, 0x7e, 0x5a, 0xac,
+ 0x59, 0xe3, 0x6f, 0x3f, 0xb7, 0x3f, 0x3e, 0x95, 0x41, 0xe8, 0x11, 0xfc,
+ 0x9c, 0xb7, 0x4f, 0x54,
+ 0x61, 0x71, 0x74, 0x4c, 0x20, 0x4c, 0xc7, 0x3b, 0xd4, 0xfd, 0xec, 0xf3,
+ 0x62, 0x20, 0xba, 0x51,
+ 0x69, 0x80, 0x71, 0x1c, 0x11, 0x1c, 0x23, 0x83, 0x24, 0xfa, 0x49, 0x70,
+ 0x87, 0x11, 0x9d, 0x91,
+ 0x29, 0x04, 0x59, 0xd9, 0x5a, 0xd9, 0x0f, 0x0a, 0xa8, 0xc2, 0x28, 0xe2,
+ 0xa3, 0x5a, 0x66, 0x5e,
+ 0xb0, 0xa8, 0x4e, 0x6a, 0x30, 0x6a, 0x45, 0xc7, 0xbe, 0x62, 0x9a, 0x6b,
+ 0x53, 0x30, 0xe7, 0x98,
+ 0x30, 0x63, 0x1e, 0x23, 0xa6, 0x23, 0x1d, 0x16, 0x65, 0x12, 0x58, 0x8c,
+ 0x1b, 0xa6, 0xd2, 0xc5,
+ 0x60, 0xc6, 0x3c, 0x46, 0x8f, 0x46, 0x3a, 0x2c, 0xca, 0x24, 0xb0, 0xdb,
+ 0x36, 0x8f, 0x67, 0x49,
+ 0x74, 0x7e, 0xd5, 0xce, 0x14, 0xce, 0x43, 0xc3, 0x91, 0xc8, 0x8a, 0xbe,
+ 0xac, 0x14, 0xdb, 0x6a,
+ 0x22, 0xef, 0x84, 0x97, 0x59, 0x97, 0x2f, 0x8b, 0x7a, 0x6d, 0x69, 0x19,
+ 0xba, 0x59, 0xe5, 0xb6,
+ 0x0c, 0x68, 0xe6, 0x78, 0xc8, 0x78, 0x96, 0xe4, 0x88, 0xe5, 0x16, 0x23,
+ 0x76, 0xc8, 0xd5, 0xa0,
+ 0xcd, 0x90, 0xd6, 0xfe, 0xba, 0xfe, 0x1f, 0xab, 0xc1, 0x74, 0xe9, 0x7e,
+ 0x4e, 0xba, 0xc6, 0x2a,
+ 0x7b, 0x0c, 0xeb, 0xa8, 0xee, 0xa8, 0x11, 0x1e, 0x3b, 0x85, 0x78, 0xe5,
+ 0x26, 0xee, 0xaa, 0xe2,
+ 0x5b, 0x4e, 0xff, 0x2b, 0x2a, 0x2b, 0x07, 0xbb, 0x7d, 0x99, 0xa9, 0xac,
+ 0x34, 0x2a, 0x36, 0x64,
+ 0x40, 0x84, 0x28, 0xc5, 0x4b, 0xc5, 0x2c, 0x89, 0x8c, 0x38, 0x61, 0x92,
+ 0x24, 0x4b, 0xfb, 0xcf,
+ 0xe3, 0x17, 0xb4, 0x11, 0x2b, 0x11, 0xa6, 0xc4, 0x33, 0xfc, 0x96, 0x44,
+ 0x82, 0x2b, 0xf6, 0x3c,
+ 0x14, 0xb8, 0xe9, 0x88, 0x9b, 0x88, 0x79, 0xef, 0x5b, 0xec, 0x3a, 0x65,
+ 0x9a, 0x9b, 0xbc, 0x23,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xfd, 0xf3, 0xc8, 0xdd, 0x1c, 0xdd, 0x02, 0xbd, 0xa4, 0x66, 0xb1, 0xf2,
+ 0x55, 0x1c, 0x14, 0xef,
+ 0x78, 0x16, 0x33, 0xb6, 0xdc, 0xb6, 0xd5, 0x27, 0x19, 0x2d, 0x9c, 0x9d,
+ 0xda, 0xdc, 0x0e, 0xca,
+ 0xad, 0x56, 0xea, 0xb8, 0x35, 0xb8, 0x25, 0x87, 0x0b, 0x50, 0x59, 0xa5,
+ 0x78, 0x35, 0xa1, 0x63,
+ 0xd0, 0x6e, 0x72, 0x2c, 0xbf, 0x2c, 0x7f, 0xeb, 0x74, 0x46, 0x2a, 0xb0,
+ 0x65, 0xbf, 0x80, 0xd1,
+ 0x91, 0x5d, 0x12, 0xe3, 0x5b, 0xe3, 0xae, 0x75, 0xe6, 0xa7, 0x17, 0x0a,
+ 0x15, 0x5b, 0xa6, 0x06,
+ 0xfc, 0x44, 0x80, 0xd7, 0xb3, 0xd7, 0xff, 0xaa, 0xba, 0xbf, 0xed, 0xda,
+ 0x01, 0xb3, 0xc9, 0xf7,
+ 0xf9, 0x6a, 0x2b, 0xf5, 0xe5, 0xf5, 0x70, 0xe1, 0xdc, 0x84, 0x02, 0x52,
+ 0xc6, 0xe5, 0xe6, 0x8f,
+ 0xea, 0x51, 0xf9, 0x4b, 0xb5, 0x4b, 0xbf, 0x6b, 0xdd, 0x22, 0x6f, 0xef,
+ 0x33, 0xb5, 0x0c, 0xe4,
+ 0x85, 0xe5, 0xfb, 0x6b, 0xc0, 0x6b, 0xd7, 0x9a, 0xbd, 0x4b, 0x2d, 0x6f,
+ 0x8f, 0xc0, 0x1a, 0x25,
+ 0x7e, 0x22, 0x40, 0x8a, 0xb8, 0x8a, 0x9e, 0x55, 0x5d, 0xbe, 0x97, 0x6d,
+ 0xe1, 0xb8, 0x85, 0x9a,
+ 0x77, 0x64, 0x0d, 0xd0, 0x26, 0xd0, 0x87, 0xfa, 0xb3, 0x60, 0x6e, 0xc6,
+ 0x50, 0x26, 0x7f, 0x42,
+ 0xc7, 0xcc, 0x43, 0xba, 0x16, 0xba, 0xc2, 0x3d, 0x0d, 0x02, 0xf4, 0xad,
+ 0x03, 0x16, 0x98, 0xda,
+ 0xc5, 0x61, 0xd3, 0xae, 0x8b, 0xae, 0xfb, 0x13, 0x31, 0x73, 0x4c, 0xfd,
+ 0xab, 0x8b, 0xe1, 0xea,
+ 0x5d, 0x7a, 0x8c, 0x17, 0x4e, 0x17, 0x4c, 0xc9, 0x39, 0x0a, 0xa2, 0x5c,
+ 0x0f, 0x4e, 0xbd, 0x34,
+ 0x3a, 0x3f, 0x8b, 0x67, 0x0a, 0x67, 0xc0, 0x80, 0xa9, 0x64, 0x45, 0x5f,
+ 0x56, 0x0a, 0x8c, 0x35,
+ 0xd5, 0x40, 0xd9, 0x0e, 0xe9, 0x0e, 0xf0, 0xa0, 0x12, 0x7d, 0xc5, 0x38,
+ 0xa2, 0xe9, 0xaf, 0xa9,
+ 0x66, 0xf2, 0x4f, 0x7a, 0xeb, 0x7a, 0x71, 0x5e, 0x8e, 0xb7, 0xbb, 0x2b,
+ 0x0d, 0xeb, 0xec, 0x19,
+ 0x8b, 0x20, 0x8d, 0x07, 0x95, 0x07, 0x78, 0x50, 0x09, 0xdf, 0x83, 0x1c,
+ 0x51, 0x95, 0xb6, 0xb5,
+ 0x49, 0xc2, 0x65, 0x9f, 0xd5, 0x9f, 0x35, 0x26, 0x62, 0xe6, 0x98, 0x39,
+ 0x95, 0xd5, 0x01, 0x17,
+ 0xc2, 0xe2, 0xe8, 0x98, 0x40, 0x98, 0x4d, 0x76, 0x6b, 0x39, 0x1b, 0x25,
+ 0xc4, 0x40, 0xb7, 0xa2,
+ 0xc6, 0x7b, 0x0b, 0xb0, 0xb9, 0xb0, 0x3f, 0x2a, 0x13, 0xdb, 0xa8, 0x85,
+ 0x57, 0xb9, 0x45, 0xc2,
+ 0x56, 0x91, 0x51, 0x59, 0x4d, 0x59, 0x6c, 0x48, 0xeb, 0xa5, 0xe3, 0xa7,
+ 0x16, 0x4d, 0x3e, 0xdc,
+ 0x4e, 0x41, 0x5e, 0xa9, 0x1e, 0xa9, 0x83, 0x43, 0x38, 0xac, 0xcf, 0xe1,
+ 0xfa, 0x1e, 0x57, 0x5f,
+ 0x27, 0xc1, 0x2f, 0xb5, 0x0f, 0xb5, 0xa0, 0xc0, 0x1c, 0x56, 0x86, 0x91,
+ 0x7d, 0x0f, 0xca, 0xce,
+ 0xe6, 0x39, 0x1f, 0x33, 0x7d, 0x33, 0x29, 0x8f, 0x55, 0xc7, 0x79, 0xcc,
+ 0x45, 0x7d, 0xd9, 0x44,
+ 0x93, 0xf0, 0x82, 0xf7, 0xc6, 0xf7, 0x97, 0x5b, 0xda, 0xd6, 0xaf, 0x5a,
+ 0xbd, 0xc6, 0xdf, 0x36,
+ 0xbb, 0x43, 0x93, 0x24, 0x33, 0x24, 0x65, 0x46, 0x6c, 0xcd, 0xdb, 0x90,
+ 0x4a, 0x33, 0x64, 0x70,
+ 0xd1, 0xd9, 0x3a, 0x26, 0x10, 0x26, 0x82, 0xfc, 0x6a, 0x9f, 0x76, 0x98,
+ 0x31, 0x10, 0x5d, 0xc9,
+ 0x63, 0xdc, 0xe4, 0x58, 0xbd, 0x58, 0xfe, 0x15, 0xe8, 0x8c, 0x54, 0xa3,
+ 0xca, 0xbd, 0xc3, 0x61,
+ 0xc1, 0xf8, 0x30, 0x86, 0x72, 0x86, 0x89, 0x4f, 0x49, 0x91, 0xff, 0x5d,
+ 0x38, 0x72, 0x13, 0x8a,
+ 0x45, 0xaa, 0x83, 0xe7, 0x1d, 0xe7, 0xa3, 0xc2, 0xea, 0x03, 0x8e, 0x1a,
+ 0xe3, 0x1d, 0xd4, 0xb7,
+ 0xc8, 0xbe, 0x7d, 0xdc, 0xec, 0xdc, 0x90, 0xe0, 0xa7, 0x4f, 0x06, 0xf6,
+ 0x89, 0xec, 0xe9, 0x52,
+ 0x16, 0x15, 0x79, 0x9c, 0x06, 0x9c, 0x40, 0xc1, 0x67, 0x9d, 0x82, 0x35,
+ 0x32, 0x06, 0xc5, 0x13,
+ 0x1b, 0xca, 0xd7, 0xee, 0x61, 0xee, 0x2b, 0x32, 0xf1, 0xa1, 0xc8, 0x3e,
+ 0x10, 0x61, 0xcd, 0xab,
+ 0x20, 0x42, 0x14, 0x83, 0xc4, 0x83, 0x16, 0xa5, 0x46, 0x1c, 0xd1, 0x49,
+ 0x12, 0xc4, 0x9c, 0x86,
+ 0x9b, 0x01, 0x87, 0xa7, 0xf7, 0xa7, 0x73, 0xe3, 0x2a, 0xd1, 0x0a, 0xd9,
+ 0x58, 0xf7, 0xf8, 0xf6,
+ 0xf3, 0x36, 0xbe, 0xb1, 0x49, 0xb1, 0xad, 0x77, 0x10, 0xf2, 0x1f, 0x81,
+ 0x8b, 0x49, 0xb8, 0x7f,
+ 0xb8, 0x59, 0x4b, 0x3a, 0x01, 0x3a, 0xa1, 0x7f, 0x4e, 0x65, 0x3f, 0xe8,
+ 0xb6, 0x01, 0xc0, 0x58,
+ 0xf0, 0x2c, 0x66, 0xaf, 0x7b, 0xaf, 0x69, 0x4e, 0x32, 0x5a, 0xfb, 0xf9,
+ 0x77, 0x7b, 0x1c, 0x57,
+ 0x2f, 0x30, 0x2a, 0xe5, 0x3e, 0xe5, 0x44, 0x78, 0xec, 0x51, 0x23, 0x12,
+ 0x98, 0x3e, 0xed, 0x0e,
+ 0xba, 0xf4, 0xdb, 0x2e, 0x9c, 0x2e, 0x98, 0x51, 0x72, 0x14, 0x87, 0xb8,
+ 0x1e, 0x9c, 0xb9, 0x68,
+ 0x4f, 0xf6, 0x16, 0xa3, 0xb1, 0xa3, 0x7e, 0x54, 0x26, 0x75, 0x93, 0xc9,
+ 0xae, 0xb1, 0x8a, 0x47,
+ 0xbe, 0x6d, 0x38, 0x06, 0x65, 0x06, 0xea, 0x0d, 0x0a, 0xf6, 0x34, 0x18,
+ 0x8d, 0x65, 0x4b, 0x08,
+ 0x12, 0x8c, 0x9a, 0xb4, 0xff, 0xb4, 0x32, 0x9d, 0x1f, 0x7f, 0x31, 0x95,
+ 0xa1, 0xff, 0x37, 0x73,
+ 0x43, 0x9e, 0xf0, 0xdb, 0x79, 0xdb, 0xe8, 0xb0, 0xae, 0x90, 0x85, 0xea,
+ 0xd8, 0x79, 0x5f, 0xe7,
+ 0xcf, 0x3d, 0x46, 0xea, 0x27, 0xea, 0x26, 0x85, 0xfd, 0x05, 0x51, 0x2e,
+ 0xe6, 0x27, 0xbf, 0x1a,
+ 0xc9, 0x09, 0x35, 0xd6, 0x43, 0xd6, 0x6d, 0xf7, 0xb9, 0x96, 0x5a, 0xde,
+ 0xdd, 0x43, 0x34, 0x4a,
+ 0x2a, 0x1e, 0x81, 0xc7, 0x68, 0xc7, 0xcb, 0x33, 0x8a, 0x6a, 0xcc, 0x9a,
+ 0x5f, 0x68, 0xc2, 0x76,
+ 0x11, 0x96, 0x42, 0xaa, 0xcd, 0xaa, 0xf6, 0xa4, 0x3d, 0xd7, 0xd5, 0xed,
+ 0x5d, 0xcd, 0x93, 0x5b,
+ 0x15, 0x0f, 0xa1, 0x82, 0x34, 0x82, 0x84, 0xf8, 0x45, 0x35, 0x66, 0x4d,
+ 0xce, 0x34, 0x61, 0x3b,
+ 0xf6, 0x18, 0x15, 0x93, 0x1f, 0x93, 0x22, 0x3c, 0x76, 0xc9, 0xf0, 0x09,
+ 0x4c, 0x1f, 0x97, 0x07,
+ 0x62, 0x6b, 0xac, 0x52, 0x12, 0x52, 0x03, 0x02, 0xf6, 0x55, 0x08, 0x8b,
+ 0x9e, 0x12, 0x1e, 0x79,
+ 0xcc, 0x27, 0x9e, 0xf4, 0x15, 0xf4, 0xe2, 0xbc, 0xdf, 0xad, 0xb5, 0x56,
+ 0x1a, 0x15, 0x1b, 0x32,
+ 0xe0, 0x0d, 0x6c, 0x0f, 0x19, 0x0f, 0x62, 0xfd, 0x11, 0x54, 0x72, 0x3c,
+ 0x7e, 0x19, 0x52, 0x14,
+ 0x8c, 0xa3, 0xb6, 0x31, 0x5e, 0x31, 0xce, 0x35, 0x53, 0x95, 0xd4, 0xc4,
+ 0x3e, 0x5e, 0xe0, 0xfd,
+ 0x90, 0xea, 0x5a, 0xe9, 0xf4, 0xe9, 0x53, 0x62, 0xf8, 0x7e, 0x4b, 0x22,
+ 0x41, 0xf4, 0x7b, 0x1e,
+ 0x47, 0x07, 0x13, 0xf3, 0x80, 0xf3, 0x9a, 0xec, 0xd6, 0x72, 0x36, 0x4a,
+ 0x4b, 0x80, 0xad, 0x87,
+ 0xff, 0x5e, 0x58, 0xc9, 0x81, 0xc9, 0x3b, 0x93, 0x98, 0x17, 0x09, 0xa2,
+ 0xfd, 0x81, 0x6d, 0xdf,
+ 0x81, 0x7c, 0x18, 0x43, 0x39, 0x43, 0xa5, 0xc6, 0xc5, 0xa9, 0x9e, 0xcf,
+ 0x1c, 0x39, 0xe8, 0x45,
+ 0x5e, 0x60, 0x54, 0x09, 0x7c, 0x09, 0x88, 0xf0, 0x1b, 0xa2, 0x46, 0x24,
+ 0xf3, 0x7c, 0x19, 0x1c,
+ 0xfb, 0xc7, 0xbb, 0xe1, 0x78, 0xe1, 0x49, 0xcf, 0xe0, 0xf5, 0xba, 0x02,
+ 0x6e, 0x78, 0x9f, 0xbf,
+ 0x79, 0xa1, 0x7b, 0xbc, 0x73, 0xbc, 0x28, 0x30, 0x07, 0xf4, 0xc0, 0xb5,
+ 0x8e, 0x73, 0xd3, 0xd2,
+ 0x36, 0x57, 0x6d, 0x1f, 0xc2, 0x1f, 0x56, 0x64, 0x21, 0x81, 0x53, 0x7c,
+ 0x20, 0xc2, 0x59, 0x95,
+ 0x32, 0xce, 0x8e, 0x37, 0x3b, 0x37, 0x24, 0x38, 0x59, 0x63, 0xe0, 0xdc,
+ 0xb3, 0x3b, 0xab, 0xf5,
+ 0x0e, 0xc5, 0x76, 0x6c, 0x55, 0x6c, 0xaf, 0xca, 0xb4, 0x94, 0xae, 0x73,
+ 0xde, 0x55, 0xac, 0x90,
+ 0xd3, 0x74, 0xaa, 0x32, 0x8d, 0x32, 0xbb, 0xd2, 0x56, 0xee, 0xce, 0xc8,
+ 0x99, 0x8d, 0x24, 0xf9,
+ 0x33, 0x79, 0xc6, 0x3d, 0x94, 0x3d, 0xd9, 0x2f, 0x47, 0xba, 0xbc, 0xf4,
+ 0xe7, 0x94, 0x76, 0xed,
+ 0x53, 0xbf, 0xfa, 0x7b, 0x1b, 0x7b, 0xe3, 0x03, 0x8d, 0x9e, 0x0c, 0x2f,
+ 0xd1, 0x1b, 0x11, 0xa4,
+ 0x87, 0x48, 0x6b, 0x7f, 0x5d, 0x7f, 0xee, 0xb4, 0x81, 0x3a, 0x95, 0x3f,
+ 0x27, 0x5d, 0x63, 0x15,
+ 0x21, 0xf5, 0x5c, 0x89, 0x6b, 0x89, 0xeb, 0xb2, 0x58, 0xc5, 0x8d, 0x61,
+ 0x46, 0x6b, 0x41, 0x9e,
+ 0xd4, 0xf7, 0x91, 0x04, 0x46, 0x04, 0x0d, 0xb7, 0x0c, 0xa4, 0x99, 0x10,
+ 0xf6, 0x46, 0x72, 0xb1,
+ 0x07, 0x83, 0x3b, 0x36, 0xcb, 0x36, 0xb6, 0x65, 0x5a, 0x4a, 0x57, 0xd8,
+ 0x6f, 0xcb, 0x56, 0x48,
+ 0x48, 0x75, 0x2d, 0x95, 0x7a, 0x95, 0xc8, 0x31, 0x7c, 0x3f, 0xc4, 0x11,
+ 0xc1, 0x7a, 0xdc, 0x0f,
+ 0xdd, 0xb1, 0xdc, 0x5e, 0xd8, 0x5e, 0x14, 0x18, 0xe2, 0x7a, 0x60, 0xbb,
+ 0x47, 0xd8, 0x88, 0x69,
+ 0x6e, 0x03, 0x4a, 0x2a, 0xda, 0x2a, 0x95, 0xe6, 0x7e, 0xb0, 0x1e, 0xa8,
+ 0xe8, 0xda, 0xcb, 0xd9,
+ 0xc4, 0xd6, 0x9b, 0xa4, 0x24, 0xa4, 0x06, 0x04, 0x2f, 0xaa, 0x10, 0xd5,
+ 0xff, 0x24, 0x3c, 0xf2,
+ 0x58, 0x54, 0x27, 0x35, 0x18, 0x35, 0xc3, 0x82, 0x5f, 0x31, 0x4d, 0xd4,
+ 0xc8, 0x18, 0x92, 0x4c,
+ 0x9c, 0x82, 0xbc, 0x91, 0x3c, 0x91, 0xc5, 0x86, 0x70, 0x9b, 0x5d, 0x01,
+ 0x37, 0x3c, 0xae, 0xbe,
+ 0x05, 0x2e, 0xab, 0x22, 0x56, 0x22, 0x8f, 0x4b, 0x66, 0x3b, 0xef, 0x88,
+ 0xc7, 0x56, 0x2f, 0x78,
+ 0x19, 0x67, 0x47, 0xfa, 0xfc, 0xfa, 0x12, 0x1c, 0xcd, 0xd0, 0x70, 0x6e,
+ 0xb8, 0xfc, 0xb4, 0x9b,
+ 0xd8, 0x9f, 0x77, 0x7c, 0x8e, 0x7c, 0x9b, 0x53, 0x84, 0x41, 0x8f, 0x33,
+ 0x80, 0x8e, 0xa7, 0x11,
+ 0x80, 0xcb, 0x50, 0x49, 0x96, 0x49, 0x58, 0xd1, 0xdb, 0x70, 0xc2, 0xe7,
+ 0x48, 0x96, 0x35, 0x5d,
+ 0x9e, 0x2f, 0x2c, 0x85, 0xa1, 0x85, 0xfc, 0xa8, 0x4c, 0xea, 0xe5, 0x51,
+ 0x9f, 0xa1, 0xd7, 0x8e,
+ 0x44, 0x1d, 0xcb, 0xed, 0xb2, 0xed, 0x5e, 0xd5, 0xf4, 0xda, 0xd2, 0x32,
+ 0xb7, 0xb2, 0x09, 0xaf,
+ 0xca, 0x13, 0xed, 0xc8, 0x71, 0xc8, 0xa9, 0xce, 0x9b, 0x3e, 0xbe, 0xa6,
+ 0x21, 0x71, 0x90, 0x62,
+ 0x3d, 0xbc, 0xb0, 0x51, 0xc1, 0x51, 0x76, 0xe5, 0xf3, 0x2e, 0x12, 0x87,
+ 0x39, 0xc1, 0xda, 0x7d,
+ 0x2e, 0x87, 0x62, 0xef, 0x91, 0xef, 0xb9, 0x6f, 0xf2, 0x88, 0x7f, 0x3a,
+ 0xcc, 0x91, 0x30, 0x16,
+ 0x72, 0x4a, 0xa6, 0xf2, 0x70, 0xf2, 0x08, 0xb1, 0xd5, 0x5b, 0x81, 0x4e,
+ 0x97, 0x70, 0x50, 0x3a,
+ 0x42, 0x29, 0xb8, 0xd1, 0xd6, 0xd1, 0x15, 0xa7, 0xb0, 0x49, 0xd9, 0xc2,
+ 0x8c, 0xd6, 0x82, 0xff,
+ 0x65, 0xe8, 0x97, 0x64, 0xd9, 0x64, 0xb5, 0x67, 0xac, 0x1f, 0x5f, 0x53,
+ 0xf1, 0xd9, 0x48, 0x31,
+ },
+ { /* 4 */
+ 0x04, 0xc3, 0xb6, 0x81, 0x36, 0x3e, 0x4d, 0xde, 0x9f, 0xbe, 0xcc, 0x92,
+ 0x5e, 0x72, 0x11, 0x8f,
+ 0xc5, 0x34, 0x29, 0xba, 0x33, 0x7a, 0x21, 0x8a, 0x27, 0x60, 0x9b, 0x0b,
+ 0x90, 0xfb, 0x32, 0xb5,
+ 0xdf, 0x7b, 0x40, 0x9b, 0x9c, 0xe1, 0x8b, 0x64, 0x4d, 0x3d, 0x10, 0xa8,
+ 0xb8, 0x2d, 0xbd, 0xb7,
+ 0xb7, 0x84, 0x27, 0x1f, 0x65, 0xc8, 0x66, 0x5a, 0x26, 0x8a, 0x79, 0x61,
+ 0x18, 0xf3, 0xc4, 0xbf,
+ 0x1e, 0x8c, 0xdf, 0xa0, 0x99, 0xa5, 0xe7, 0x30, 0xf5, 0xe3, 0x47, 0x31,
+ 0x76, 0xa4, 0x9e, 0x8d,
+ 0x26, 0x94, 0x14, 0xa2, 0x5e, 0x12, 0xa7, 0x8e, 0x43, 0x58, 0x05, 0xc1,
+ 0xc4, 0x5d, 0x70, 0xdb,
+ 0xff, 0xac, 0xb9, 0x19, 0xef, 0xd2, 0xa6, 0x5b, 0x3f, 0x84, 0xbf, 0xb2,
+ 0x0d, 0x3b, 0x35, 0x45,
+ 0xc8, 0xf2, 0xfc, 0x4b, 0x85, 0xd6, 0x74, 0xfd, 0x12, 0xaf, 0x3f, 0xbb,
+ 0x84, 0x90, 0x94, 0xb4,
+ 0x7b, 0xb5, 0x6d, 0xd5, 0xd6, 0x20, 0x5f, 0x79, 0xab, 0x9b, 0x8a, 0x48,
+ 0xc2, 0x11, 0x41, 0x84,
+ 0x7a, 0xf5, 0xa1, 0x64, 0x3a, 0xce, 0xdd, 0xaf, 0xfc, 0x55, 0xb9, 0x8d,
+ 0x34, 0xec, 0xd4, 0xd7,
+ 0xe8, 0x25, 0x05, 0xc9, 0xf6, 0xe5, 0x59, 0xc2, 0x60, 0x16, 0x90, 0xa1,
+ 0x31, 0x86, 0x1c, 0x46,
+ 0xa0, 0x0d, 0x9b, 0xcf, 0x7c, 0xff, 0x99, 0xc3, 0x79, 0x18, 0x56, 0x72,
+ 0x24, 0x4e, 0xed, 0xbc,
+ 0x3e, 0x5b, 0x26, 0x22, 0xea, 0x96, 0xca, 0x0f, 0x87, 0x5a, 0xe8, 0x2b,
+ 0xc3, 0xb2, 0x16, 0x7f,
+ 0xe9, 0x65, 0xc9, 0x78, 0x1a, 0x0b, 0xdb, 0x14, 0x37, 0xd8, 0xa3, 0x64,
+ 0xc7, 0x7b, 0x89, 0x15,
+ 0x09, 0x05, 0x63, 0x70, 0x80, 0x92, 0x18, 0xa9, 0xaa, 0x71, 0x68, 0x22,
+ 0x4a, 0x19, 0xb7, 0x8e,
+ 0x18, 0xcf, 0x32, 0x80, 0xb4, 0x84, 0x6d, 0x81, 0xc4, 0x02, 0xed, 0xea,
+ 0x07, 0xef, 0x66, 0xa4,
+ 0xba, 0x42, 0xf2, 0xee, 0xd3, 0x64, 0x33, 0x2d, 0x13, 0x45, 0xdd, 0xd1,
+ 0x0c, 0x98, 0x62, 0xbe,
+ 0x83, 0x1a, 0xf5, 0x5d, 0xf8, 0x3d, 0xf1, 0x45, 0xf2, 0x30, 0xac, 0xe4,
+ 0x48, 0x9c, 0x19, 0xbb,
+ 0x1f, 0xcc, 0x13, 0x11, 0x75, 0x4b, 0x65, 0xe6, 0xa2, 0x2d, 0x74, 0xf4,
+ 0x80, 0x59, 0x0b, 0xde,
+ 0x33, 0x9d, 0xf3, 0xd3, 0x5c, 0x3a, 0x9f, 0x78, 0xb2, 0x95, 0x4c, 0x9b,
+ 0xd7, 0xd9, 0xb0, 0x7e,
+ 0xb1, 0xc7, 0xca, 0x3f, 0x48, 0xe9, 0xec, 0xeb, 0x17, 0x6b, 0xd3, 0xba,
+ 0x69, 0xb8, 0x3c, 0x96,
+ 0xb6, 0xc4, 0xeb, 0xae, 0x89, 0x26, 0xe4, 0x8c, 0x71, 0x44, 0x4a, 0xa4,
+ 0xee, 0x0e, 0x51, 0xec,
+ 0x46, 0x2e, 0xdc, 0xe7, 0xcb, 0x47, 0xd0, 0xcf, 0xd5, 0x50, 0x37, 0xef,
+ 0xd8, 0x67, 0x2b, 0x0e,
+ 0x78, 0x75, 0xfa, 0xc5, 0x21, 0xd1, 0x1a, 0xc0, 0x52, 0x0a, 0xdf, 0xc4,
+ 0x1b, 0xd5, 0x3d, 0x71,
+ 0x5b, 0x62, 0x94, 0x57, 0xa5, 0x13, 0x72, 0x46, 0xd9, 0x22, 0x25, 0x52,
+ 0x77, 0x07, 0xc9, 0x76,
+ 0x80, 0xda, 0x62, 0x4d, 0x0f, 0xcc, 0xb4, 0xfc, 0x0b, 0xa1, 0xf9, 0x68,
+ 0x91, 0x58, 0x65, 0x4e,
+ 0x8c, 0x5c, 0x7b, 0x0d, 0x55, 0x8e, 0x63, 0x5d, 0x69, 0xa0, 0x6e, 0x1d,
+ 0x73, 0xce, 0x56, 0x1c,
+ 0xeb, 0xe5, 0x92, 0xd9, 0x01, 0x14, 0x1c, 0x7b, 0x99, 0x87, 0xc5, 0x2d,
+ 0xe8, 0x42, 0x60, 0xb3,
+ 0x2d, 0x11, 0x2c, 0x73, 0xc5, 0x9f, 0x78, 0x48, 0x47, 0x76, 0x0b, 0xaa,
+ 0xa1, 0x7d, 0x2e, 0xf3,
+ 0xfb, 0x6f, 0x0f, 0x98, 0xd9, 0xec, 0xeb, 0x85, 0xa0, 0x3a, 0x73, 0x20,
+ 0x53, 0x49, 0x24, 0xca,
+ 0xd9, 0x38, 0xad, 0xbb, 0xb1, 0xc0, 0x01, 0xd5, 0x7c, 0xdc, 0xba, 0x73,
+ 0xc9, 0x66, 0x45, 0x9e,
+ 0xe0, 0x60, 0xaa, 0x08, 0x9a, 0x99, 0xc3, 0xbd, 0x9d, 0xa9, 0xcb, 0x46,
+ 0x8d, 0x62, 0x3e, 0x9b,
+ 0x9e, 0x56, 0xbd, 0xed, 0x96, 0x69, 0x53, 0xcc, 0xfe, 0x42, 0xbe, 0x59,
+ 0xe7, 0xfc, 0xfb, 0xc3,
+ 0x36, 0x1e, 0x89, 0xe3, 0x86, 0xea, 0x50, 0x70, 0x7a, 0xe5, 0xb3, 0xcc,
+ 0x7f, 0x56, 0x34, 0xa2,
+ 0x42, 0xed, 0x6a, 0x66, 0xfd, 0x79, 0x9d, 0x11, 0x4a, 0xee, 0xfb, 0x7d,
+ 0x86, 0x15, 0x3a, 0x81,
+ 0x43, 0xad, 0xa6, 0xd7, 0x11, 0x97, 0x1f, 0xc7, 0x1d, 0x20, 0xc8, 0xb8,
+ 0x70, 0xe8, 0xaf, 0xd2,
+ 0xde, 0x3b, 0x8c, 0x2a, 0x70, 0x0f, 0x09, 0xb2, 0x1a, 0xf3, 0x23, 0x6d,
+ 0x4e, 0xd0, 0x28, 0xe4,
+ 0xaf, 0x4b, 0x15, 0x9f, 0xd1, 0x4c, 0x0b, 0xdb, 0xe2, 0x88, 0x94, 0x8b,
+ 0x1f, 0x1c, 0xa2, 0x1b,
+ 0x56, 0xa4, 0x41, 0xa6, 0x13, 0xbf, 0x27, 0x31, 0xec, 0xed, 0x81, 0xe2,
+ 0x63, 0x6c, 0x6f, 0x77,
+ 0xdb, 0xb8, 0xf6, 0x1a, 0xaa, 0xdf, 0xc6, 0xba, 0xd2, 0x83, 0xdc, 0x3a,
+ 0xe6, 0x5f, 0xac, 0x38,
+ 0x70, 0x30, 0x55, 0x04, 0x4d, 0xad, 0x80, 0xbf, 0xaf, 0xb5, 0x84, 0x23,
+ 0xa7, 0x31, 0x1f, 0xac,
+ 0x3f, 0x1b, 0xea, 0x93, 0x06, 0x78, 0x48, 0xd9, 0xd0, 0x94, 0xdb, 0xee,
+ 0x35, 0x4f, 0x83, 0x2c,
+ 0x77, 0x33, 0x74, 0x95, 0x8c, 0x62, 0x88, 0xd8, 0xc9, 0x9a, 0x1d, 0x3d,
+ 0x20, 0x87, 0x72, 0xd6,
+ 0x75, 0xb3, 0x2f, 0x34, 0x97, 0x7d, 0x4f, 0xb7, 0x67, 0xc5, 0x7b, 0x74,
+ 0x0f, 0xbe, 0x9b, 0x70,
+ 0x87, 0xd9, 0x43, 0xdc, 0xce, 0x03, 0xbc, 0x9b, 0x6d, 0x8e, 0x60, 0x76,
+ 0x16, 0xee, 0x08, 0x34,
+ 0x93, 0x90, 0x68, 0x1c, 0x20, 0xc5, 0x06, 0xbb, 0xcb, 0x8d, 0x1a, 0xe9,
+ 0xf3, 0x97, 0x5d, 0xc2,
+ 0x1d, 0x4c, 0x48, 0xb0, 0x6e, 0x54, 0xa2, 0x89, 0x0c, 0x72, 0x12, 0xbd,
+ 0xaf, 0x60, 0xe2, 0x78,
+ 0xfd, 0x2c, 0xe2, 0xb8, 0xf4, 0xcd, 0x61, 0x34, 0x91, 0xdb, 0xd9, 0xfb,
+ 0x22, 0x02, 0xdc, 0xe3,
+ 0x9a, 0x95, 0x0b, 0x6c, 0xa0, 0x57, 0x1e, 0x12, 0x61, 0xfc, 0x72, 0xcb,
+ 0xb9, 0x8e, 0xea, 0x4c,
+ 0xea, 0xa5, 0x5e, 0x68, 0xed, 0xfa, 0x9e, 0xad, 0xce, 0x49, 0xf6, 0xe8,
+ 0x1e, 0xbf, 0xf5, 0xe0,
+ 0xe5, 0xe3, 0xd0, 0x38, 0x40, 0x49, 0x0c, 0xb5, 0x55, 0xd9, 0x34, 0x11,
+ 0x25, 0xed, 0xba, 0x47,
+ 0x55, 0x64, 0xd6, 0xb6, 0xe4, 0x4e, 0x62, 0x88, 0x15, 0x7c, 0xd4, 0x6e,
+ 0xba, 0xa8, 0x13, 0x82,
+ 0x4d, 0xab, 0xe4, 0x36, 0x50, 0xca, 0x0f, 0x09, 0xd1, 0x7e, 0x39, 0x84,
+ 0xbd, 0x47, 0x75, 0x26,
+ 0x2f, 0x91, 0x77, 0xd2, 0xde, 0x80, 0xbf, 0x27, 0xe9, 0x29, 0x6d, 0xe3,
+ 0x8e, 0x44, 0xc7, 0x55,
+ 0x8e, 0xdc, 0x20, 0xac, 0x4e, 0x91, 0xa4, 0x32, 0xc7, 0xff, 0x08, 0x54,
+ 0x5c, 0xf7, 0xbf, 0xba,
+ 0xab, 0x88, 0xa3, 0x1e, 0xe7, 0x72, 0x46, 0x05, 0x7d, 0x36, 0x58, 0x19,
+ 0x41, 0x6e, 0xb3, 0x94,
+ 0xec, 0xe6, 0xb3, 0x48, 0xc0, 0xdb, 0x14, 0x1c, 0xff, 0xa8, 0x5c, 0x33,
+ 0x6f, 0xf4, 0x0d, 0xc9,
+ 0x64, 0x79, 0x7e, 0xc4, 0xa3, 0x6b, 0x3a, 0x9f, 0x09, 0xb6, 0xfe, 0xbc,
+ 0x42, 0x48, 0x4a, 0x5a,
+ 0xb3, 0x47, 0x91, 0x9e, 0x53, 0xf6, 0x2b, 0x84, 0xb9, 0x34, 0xb5, 0xf3,
+ 0x46, 0x81, 0xd5, 0x30,
+ 0xd5, 0xbe, 0xb4, 0xfb, 0xeb, 0x82, 0xd6, 0x74, 0x1e, 0xdd, 0x2d, 0x06,
+ 0x2b, 0xf0, 0x76, 0xcc,
+ 0x91, 0x10, 0x33, 0xbd, 0x3b, 0xda, 0xc1, 0xd4, 0x65, 0xd2, 0x7c, 0xa0,
+ 0xdc, 0xae, 0xb4, 0x64,
+ 0x5e, 0xe1, 0xee, 0x67, 0x7f, 0xc3, 0xbd, 0x4e, 0x11, 0x52, 0xda, 0x05,
+ 0xdf, 0x88, 0x4d, 0xaa,
+ 0x21, 0x97, 0x35, 0x33, 0x9f, 0xdd, 0xaf, 0xe9, 0x25, 0x77, 0x9c, 0xdf,
+ 0x43, 0xeb, 0x1d, 0xa1,
+ 0x49, 0x68, 0x52, 0xb7, 0x66, 0xf4, 0x42, 0xd7, 0x4e, 0xc0, 0xf5, 0x16,
+ 0xe3, 0x35, 0x64, 0xa9,
+ 0x5f, 0xa1, 0x22, 0xd6, 0x93, 0x2d, 0x3f, 0x98, 0x46, 0x9c, 0xe9, 0xc0,
+ 0x29, 0x75, 0xd8, 0xf9,
+ 0x65, 0x39, 0xb2, 0x75, 0x4f, 0x85, 0xb8, 0x49, 0x5e, 0x78, 0xcd, 0x79,
+ 0xb4, 0xb5, 0xdf, 0x09,
+ 0x53, 0x27, 0x3b, 0x96, 0xc9, 0x6f, 0xe8, 0x39, 0x24, 0x9d, 0x7e, 0xb5,
+ 0xcb, 0xe3, 0xeb, 0xab,
+ 0x27, 0xd4, 0xd8, 0x13, 0xb2, 0xfc, 0x25, 0x58, 0x14, 0x96, 0x36, 0x04,
+ 0x32, 0xa0, 0xe5, 0x88,
+ 0xcc, 0x31, 0x4a, 0xca, 0xb3, 0xe8, 0x39, 0x23, 0x8d, 0x11, 0xf3, 0x29,
+ 0xda, 0xe2, 0x85, 0x3b,
+ 0x61, 0xfa, 0x04, 0xf4, 0x79, 0xbb, 0xf5, 0x97, 0xc1, 0xc6, 0x01, 0xeb,
+ 0xea, 0xc7, 0xce, 0x86,
+ 0x82, 0x5a, 0x39, 0xec, 0x14, 0xd3, 0x73, 0x93, 0xa5, 0xfe, 0x9f, 0x21,
+ 0xbe, 0x61, 0x8c, 0xe8,
+ 0xcf, 0xf1, 0xdd, 0xda, 0x44, 0x19, 0x7c, 0x9a, 0x74, 0x80, 0xa6, 0xa5,
+ 0x03, 0x26, 0xf9, 0xce,
+ 0xfa, 0x2f, 0xc3, 0x29, 0x35, 0x02, 0x69, 0x53, 0xf7, 0xf4, 0x40, 0xe5,
+ 0xa5, 0xb4, 0xb1, 0x99,
+ 0xbf, 0xc1, 0x88, 0xde, 0x09, 0xb4, 0xfc, 0x25, 0xdb, 0x35, 0x22, 0x86,
+ 0xa4, 0x17, 0xe6, 0x62,
+ 0xca, 0x72, 0xa7, 0xea, 0x9e, 0xc9, 0xb3, 0x92, 0xbc, 0xf0, 0x59, 0xf2,
+ 0xab, 0xa9, 0x7d, 0x12,
+ 0x4e, 0x6b, 0x73, 0x26, 0xa7, 0x3b, 0x4a, 0xb0, 0x28, 0xef, 0x6c, 0x08,
+ 0x64, 0x83, 0x09, 0xd3,
+ 0x97, 0x53, 0xde, 0x9d, 0x16, 0xfb, 0x4b, 0x65, 0x54, 0x33, 0xd6, 0x7b,
+ 0xad, 0xe5, 0x4c, 0x4d,
+ 0x9b, 0xd5, 0xc7, 0xdd, 0x4c, 0xb9, 0x9c, 0xc4, 0x36, 0x32, 0x41, 0x0e,
+ 0x4f, 0x73, 0x7f, 0x1f,
+ 0x8d, 0x1c, 0xb7, 0xbc, 0xb9, 0x60, 0xe1, 0x8b, 0x3e, 0x6e, 0x5d, 0xd8,
+ 0x85, 0x33, 0xc3, 0x4f,
+ 0x68, 0xff, 0x67, 0x84, 0xf9, 0x29, 0xed, 0x3e, 0x6b, 0xb7, 0x69, 0xc9,
+ 0xa0, 0xde, 0x79, 0x08,
+ 0x15, 0x09, 0xe7, 0x71, 0x02, 0x28, 0x38, 0xf6, 0xf1, 0xcd, 0x49, 0x5a,
+ 0x13, 0x84, 0xc0, 0xa5,
+ 0xfc, 0x6c, 0x2e, 0x09, 0x18, 0x23, 0xe3, 0xe2, 0xc6, 0x15, 0xea, 0x3e,
+ 0xd4, 0xff, 0x49, 0xb0,
+ 0xfe, 0xec, 0x75, 0xa8, 0x03, 0x3c, 0x24, 0x8d, 0x68, 0x4a, 0x8c, 0x77,
+ 0xfb, 0xc6, 0xa0, 0x16,
+ 0x58, 0xa2, 0x03, 0x47, 0x52, 0xe2, 0x37, 0xff, 0x20, 0xb3, 0x70, 0xde,
+ 0xae, 0xc3, 0xb5, 0x83,
+ 0x12, 0x0a, 0xc6, 0xe0, 0xc3, 0xe7, 0x30, 0x91, 0x97, 0xe2, 0xd0, 0x44,
+ 0x94, 0x32, 0xad, 0xdf,
+ 0x1b, 0x0f, 0xa5, 0x90, 0x43, 0x75, 0x28, 0x38, 0x3d, 0x93, 0xb8, 0x66,
+ 0xde, 0x2b, 0x1a, 0x51,
+ 0x10, 0x8a, 0x9d, 0x41, 0xd8, 0xf8, 0xf7, 0xfe, 0x39, 0xbd, 0xb6, 0x0d,
+ 0xbb, 0x0b, 0x44, 0x79,
+ 0xc1, 0xf7, 0x9f, 0x3b, 0x05, 0x44, 0x6c, 0x54, 0xb8, 0xde, 0x57, 0x99,
+ 0xce, 0x89, 0x23, 0x3a,
+ 0xe2, 0xe0, 0xf1, 0xa9, 0x81, 0x86, 0x04, 0xd2, 0x33, 0xf6, 0xad, 0x0f,
+ 0xa2, 0x5b, 0xd7, 0x3d,
+ 0x19, 0x8f, 0xfe, 0x31, 0x58, 0x6a, 0xef, 0x57, 0x93, 0xcc, 0xde, 0x2f,
+ 0xf1, 0x12, 0xf3, 0xf7,
+ 0x52, 0x67, 0xf7, 0x27, 0x25, 0x81, 0x6a, 0xef, 0x73, 0x53, 0x4d, 0x70,
+ 0x3d, 0x1e, 0x7e, 0xf8,
+ 0xef, 0x26, 0x24, 0x58, 0x37, 0x2a, 0x51, 0xa5, 0x06, 0x39, 0x09, 0xbf,
+ 0xb6, 0x30, 0x71, 0x3c,
+ 0xdc, 0xbb, 0xd7, 0x8b, 0x6b, 0x10, 0xce, 0xdd, 0xb4, 0xac, 0x45, 0x24,
+ 0x61, 0xe9, 0xc1, 0x42,
+ 0xf0, 0xea, 0x37, 0x49, 0x42, 0x61, 0x34, 0x43, 0xa4, 0x14, 0x7d, 0x4b,
+ 0x36, 0x69, 0x7a, 0xe2,
+ 0x3c, 0xdb, 0x7d, 0x83, 0xf1, 0x89, 0x0d, 0x60, 0x29, 0x05, 0x8e, 0x62,
+ 0xec, 0x8b, 0xff, 0xd9,
+ 0x9c, 0xd6, 0xe6, 0x4c, 0x8d, 0x76, 0x94, 0xa3, 0x50, 0x1d, 0xd8, 0x10,
+ 0xc8, 0xc5, 0x12, 0x65,
+ 0xbe, 0x81, 0x44, 0x6f, 0xe5, 0x5a, 0x7e, 0xf3, 0x8c, 0xfb, 0x11, 0x43,
+ 0x52, 0xea, 0x73, 0x31,
+ 0x38, 0x18, 0xcb, 0x02, 0xc7, 0xb7, 0x40, 0xbe, 0xb6, 0xbb, 0x42, 0xf0,
+ 0xb2, 0xf9, 0xee, 0x56,
+ 0x2b, 0x52, 0xc1, 0x53, 0xe8, 0xbe, 0xf2, 0xf9, 0x76, 0x97, 0xa1, 0x71,
+ 0xd0, 0x36, 0xd6, 0xda,
+ 0xc9, 0xb2, 0x30, 0xfa, 0x69, 0x38, 0xf6, 0x2b, 0x45, 0x61, 0x0c, 0x7e,
+ 0x72, 0x6d, 0x01, 0xe7,
+ 0x24, 0x14, 0x4f, 0x03, 0x45, 0x0d, 0x60, 0xe1, 0xed, 0x07, 0x63, 0x88,
+ 0xeb, 0x64, 0x99, 0x7d,
+ 0x98, 0x15, 0x50, 0xcd, 0xbb, 0x48, 0xd9, 0x7d, 0xcf, 0xa3, 0x14, 0x82,
+ 0x96, 0xb7, 0x03, 0xea,
+ 0x30, 0x5d, 0x64, 0xc3, 0xab, 0xcb, 0xda, 0xc1, 0x4b, 0x04, 0x19, 0x17,
+ 0x0e, 0x1d, 0xcc, 0x8b,
+ 0x0c, 0x86, 0x19, 0x40, 0x5a, 0x42, 0xd7, 0xa1, 0x62, 0x01, 0x97, 0x75,
+ 0xe2, 0x96, 0x33, 0x52,
+ 0x69, 0xbf, 0xab, 0x35, 0x15, 0xc7, 0x6f, 0xe8, 0x3c, 0x79, 0x5a, 0x0c,
+ 0x56, 0x23, 0xec, 0x5b,
+ 0x54, 0x24, 0x1a, 0x07, 0x08, 0xa0, 0xe0, 0x5e, 0x42, 0xb2, 0xe7, 0xab,
+ 0x4c, 0x55, 0x86, 0xd1,
+ 0xee, 0x66, 0xe8, 0xe9, 0xdb, 0xc4, 0xd3, 0x73, 0x51, 0xf7, 0x3a, 0x7a,
+ 0x40, 0xcd, 0xe4, 0x6f,
+ 0xb5, 0x04, 0x7c, 0xbe, 0x7e, 0xd7, 0xa1, 0x35, 0x88, 0xd5, 0x1f, 0x28,
+ 0x37, 0xca, 0x2d, 0x19,
+ 0x4f, 0x2b, 0xbf, 0x97, 0x4b, 0xd5, 0xc8, 0x66, 0x7f, 0x21, 0x5f, 0xcd,
+ 0x92, 0x7e, 0x9c, 0x80,
+ 0x39, 0x58, 0x07, 0xb3, 0x2b, 0x59, 0xc2, 0x68, 0xe1, 0x75, 0x71, 0x35,
+ 0x44, 0x04, 0x7b, 0x05,
+ 0x6a, 0x7f, 0x3c, 0x25, 0xe2, 0x36, 0x2a, 0x51, 0xc5, 0xe8, 0x0f, 0x80,
+ 0x8f, 0xe7, 0x90, 0xae,
+ 0x1c, 0x0c, 0x84, 0x01, 0x82, 0xba, 0x20, 0x5f, 0x5b, 0xbc, 0x21, 0x78,
+ 0x59, 0x9d, 0x77, 0x2b,
+ 0x89, 0xdf, 0x01, 0x3d, 0x8f, 0x5e, 0xac, 0x55, 0xa1, 0xd0, 0x91, 0x4a,
+ 0xdb, 0x41, 0xd2, 0xc0,
+ 0x66, 0xf9, 0x25, 0x65, 0xb8, 0x74, 0xfd, 0xf0, 0xa7, 0xe9, 0x98, 0xf5,
+ 0x6d, 0x71, 0xa3, 0xfc,
+ 0xa5, 0x8e, 0xe1, 0xff, 0xa6, 0x2f, 0x56, 0xcb, 0xb1, 0x68, 0xa9, 0x25,
+ 0x8c, 0xc1, 0x69, 0x60,
+ 0xe4, 0xa3, 0x1c, 0x89, 0xac, 0xa7, 0x8e, 0x63, 0x02, 0x17, 0x07, 0xd4,
+ 0xd3, 0x10, 0x2f, 0x14,
+ 0x72, 0xb0, 0x0e, 0xa5, 0x56, 0xb2, 0x47, 0xd0, 0x01, 0xea, 0xe2, 0x6a,
+ 0x88, 0x08, 0xf6, 0x0a,
+ 0xf6, 0xa9, 0xda, 0x69, 0x6f, 0x40, 0xbe, 0xf2, 0x95, 0xf5, 0xd7, 0x90,
+ 0x47, 0x22, 0x82, 0xcb,
+ 0x14, 0x49, 0x2b, 0xc0, 0xee, 0xc6, 0xba, 0x20, 0xa6, 0x03, 0x7a, 0x9f,
+ 0xe5, 0x79, 0x55, 0xf6,
+ 0x02, 0x80, 0x5b, 0xa1, 0x1b, 0x1f, 0xc7, 0x6f, 0xae, 0x5f, 0x66, 0x49,
+ 0x2f, 0x39, 0xe9, 0xa6,
+ 0x50, 0xe7, 0xac, 0x86, 0x3e, 0x9e, 0xad, 0x80, 0xdd, 0x0c, 0x2b, 0x39,
+ 0x12, 0x27, 0x97, 0x5e,
+ 0xbd, 0x41, 0xd3, 0x7f, 0x12, 0xab, 0x3b, 0x4a, 0x75, 0x6a, 0x44, 0xcf,
+ 0x8b, 0x2e, 0x0f, 0xc4,
+ 0x9f, 0x16, 0x71, 0x5c, 0x7a, 0x87, 0xd1, 0x1a, 0xa9, 0x8c, 0x8d, 0x9c,
+ 0x11, 0x01, 0x6e, 0x90,
+ 0xe3, 0xa0, 0x3d, 0x18, 0x6d, 0x68, 0x86, 0x04, 0x64, 0x38, 0x9e, 0xca,
+ 0x54, 0xa6, 0x42, 0x6e,
+ 0x05, 0x83, 0x7a, 0x30, 0xda, 0xd0, 0xcf, 0x08, 0xc8, 0x70, 0xff, 0x57,
+ 0xa8, 0x8f, 0x84, 0xdc,
+ 0x07, 0x03, 0x21, 0x91, 0xc1, 0xcf, 0x08, 0x67, 0x66, 0x2f, 0x99, 0x1e,
+ 0x87, 0xb6, 0x6d, 0x7a,
+ 0x88, 0x9f, 0xcd, 0x8c, 0x63, 0xb0, 0x2e, 0x83, 0xf6, 0x1e, 0xa2, 0x8f,
+ 0x2d, 0xbc, 0x47, 0x93,
+ 0xcb, 0x32, 0x6b, 0x5b, 0x72, 0x27, 0x31, 0x44, 0xeb, 0x3e, 0x6a, 0x37,
+ 0x5d, 0x54, 0xe8, 0x41,
+ 0x3a, 0x98, 0x90, 0xa3, 0xdc, 0xa8, 0x87, 0xd1, 0x18, 0xe4, 0x24, 0xb9,
+ 0x9d, 0xc0, 0x07, 0xf0,
+ 0x85, 0x59, 0x18, 0x7d, 0xd5, 0x1c, 0x7b, 0xf4, 0xc3, 0xd1, 0x06, 0x3f,
+ 0x39, 0xd7, 0xe1, 0x92,
+ 0x41, 0x2d, 0xfd, 0x76, 0x0a, 0x88, 0xd8, 0xa8, 0xb3, 0x7f, 0xae, 0xf1,
+ 0x5f, 0xd1, 0x46, 0x74,
+ 0x2a, 0x12, 0x0d, 0xe2, 0x04, 0x50, 0x70, 0x2f, 0x21, 0x59, 0x92, 0xb4,
+ 0x26, 0xcb, 0x43, 0x89,
+ 0x92, 0xd0, 0xa4, 0xad, 0xcc, 0x2b, 0x84, 0x6d, 0x9c, 0x43, 0x29, 0x2c,
+ 0x05, 0x6a, 0xc8, 0x91,
+ 0xb9, 0x82, 0x65, 0xfe, 0x24, 0x95, 0x76, 0x94, 0xea, 0xd4, 0x88, 0x5d,
+ 0xd5, 0x5c, 0x1e, 0x4b,
+ 0xe6, 0x23, 0x47, 0x28, 0xb7, 0xb8, 0x49, 0x0c, 0xac, 0x48, 0x61, 0x9d,
+ 0xfc, 0x29, 0xc6, 0xb2,
+ 0xf2, 0x6a, 0x6c, 0xe8, 0x59, 0x7e, 0xf3, 0x2c, 0x0a, 0x4b, 0x1b, 0x02,
+ 0x19, 0x50, 0x93, 0x44,
+ 0x28, 0x92, 0x56, 0x43, 0x1f, 0x4f, 0xb7, 0x40, 0x8f, 0x06, 0xf4, 0xfd,
+ 0x09, 0xf2, 0xaa, 0x2f,
+ 0x7d, 0xf6, 0x80, 0xf5, 0xfb, 0x01, 0xd5, 0xc8, 0x9a, 0x7a, 0x20, 0x93,
+ 0xb3, 0x5a, 0xb9, 0xad,
+ 0xbb, 0x02, 0x3e, 0x5f, 0x3f, 0x8a, 0xb1, 0xfb, 0x44, 0x8b, 0xee, 0x14,
+ 0xfa, 0x65, 0xf7, 0xed,
+ 0xf3, 0x2a, 0xa0, 0x59, 0xb5, 0x90, 0x71, 0xfa, 0x5d, 0x85, 0x28, 0xc7,
+ 0xef, 0xad, 0x06, 0x17,
+ 0xe7, 0x63, 0x8b, 0x99, 0x5b, 0x56, 0xcb, 0xda, 0xfb, 0x86, 0x52, 0x58,
+ 0x0a, 0xd4, 0x53, 0xe1,
+ 0xad, 0xcb, 0x4e, 0x3e, 0xca, 0x53, 0xcc, 0xb4, 0x4c, 0xd7, 0xf2, 0xc2,
+ 0x30, 0x25, 0x4b, 0xbd,
+ 0x0e, 0x06, 0x42, 0xe1, 0x41, 0x5d, 0x10, 0xce, 0xcc, 0x5e, 0xf1, 0x3c,
+ 0xcd, 0xaf, 0xda, 0xf4,
+ 0x76, 0x73, 0xb8, 0x24, 0x60, 0x8c, 0x0a, 0x0e, 0x9e, 0x54, 0x2e, 0xf8,
+ 0xd6, 0x7a, 0xe7, 0x85,
+ 0x3b, 0xd8, 0x5c, 0x12, 0x30, 0x46, 0x05, 0x07, 0x4f, 0x2a, 0x17, 0x7c,
+ 0x6b, 0x3d, 0x92, 0xa3,
+ 0x6d, 0x7c, 0x1d, 0xb4, 0x23, 0xf9, 0x22, 0x36, 0xa3, 0xc7, 0x96, 0x9e,
+ 0x08, 0x51, 0xfd, 0xd4,
+ 0x20, 0xd7, 0xf9, 0x82, 0x73, 0x33, 0x2d, 0x3f, 0x72, 0xb9, 0xaf, 0x1a,
+ 0xb5, 0x16, 0x88, 0xf2,
+ 0xa9, 0x08, 0xf8, 0xbf, 0xfc, 0x6d, 0x81, 0x6a, 0xd3, 0x69, 0x3e, 0x50,
+ 0x6e, 0x57, 0x5a, 0x32,
+ 0x0b, 0x85, 0x38, 0xd1, 0x9b, 0x8d, 0xdf, 0xc6, 0x04, 0x2e, 0x0e, 0x6b,
+ 0x65, 0x20, 0x5e, 0x28,
+ 0xce, 0xb1, 0x11, 0x6b, 0xa8, 0xf7, 0xfe, 0x4c, 0x23, 0x4e, 0x95, 0x60,
+ 0xf5, 0xdb, 0x6c, 0x9d,
+ 0x8f, 0x9c, 0xec, 0x1d, 0xa2, 0x7f, 0x26, 0xe4, 0x90, 0x31, 0x3b, 0x91,
+ 0xaa, 0x0a, 0x2a, 0xe9,
+ 0x94, 0x93, 0x49, 0x8d, 0xe1, 0x0a, 0x0e, 0xdc, 0xad, 0xa2, 0x83, 0xf7,
+ 0x74, 0x21, 0x30, 0xb8,
+ 0x4c, 0xeb, 0x28, 0x87, 0xbc, 0x24, 0x8d, 0xdf, 0x86, 0xb0, 0x0a, 0x41,
+ 0x4b, 0xba, 0xe0, 0x75,
+ 0x29, 0xd2, 0x9a, 0xf2, 0xf3, 0xa1, 0x35, 0x96, 0xd8, 0xc8, 0xc7, 0x38,
+ 0xff, 0x0f, 0x3f, 0x7c,
+ 0x5a, 0x22, 0x58, 0xe6, 0x49, 0xfd, 0xf0, 0x90, 0x8e, 0xec, 0x16, 0x97,
+ 0x81, 0xfa, 0x5c, 0x25,
+ 0xb4, 0x44, 0xb0, 0x0f, 0x92, 0x39, 0x23, 0xe3, 0xdf, 0x1b, 0x2c, 0xed,
+ 0xc1, 0x37, 0xb8, 0x4a,
+ 0x6e, 0xbc, 0x8a, 0xa4, 0xd4, 0x08, 0x67, 0x8f, 0x5a, 0x56, 0xc3, 0x12,
+ 0xd1, 0x95, 0x81, 0x21,
+ 0x1a, 0x4f, 0x69, 0x21, 0xaf, 0x9b, 0xaa, 0xee, 0x6a, 0x5d, 0x8b, 0xa3,
+ 0x28, 0xd6, 0x8f, 0x02,
+ 0xf7, 0xe9, 0x16, 0xd8, 0x83, 0xae, 0x3c, 0x24, 0xc2, 0x3b, 0xe4, 0x55,
+ 0xb1, 0xdf, 0x17, 0x98,
+ 0x67, 0xb9, 0xe9, 0xd4, 0x54, 0x9a, 0x7f, 0x26, 0xf0, 0x27, 0xab, 0x30,
+ 0x9b, 0x8c, 0x36, 0xaf,
+ 0xd4, 0xfe, 0x78, 0x4a, 0x07, 0x6c, 0x54, 0xa2, 0x49, 0x13, 0x1e, 0xc3,
+ 0xdd, 0x0d, 0xe3, 0x9f,
+ 0xb8, 0xc2, 0xa9, 0x4f, 0xc8, 0x7b, 0xf4, 0x42, 0xbd, 0x1a, 0xbb, 0x98,
+ 0x23, 0xa1, 0x8b, 0x18,
+ 0xd8, 0x78, 0x61, 0x0a, 0x5d, 0x2e, 0x83, 0x03, 0x2b, 0x12, 0x89, 0xb6,
+ 0x3f, 0x9b, 0xd0, 0xcd,
+ 0x8a, 0x1f, 0x96, 0x2d, 0x78, 0xaf, 0xe9, 0xec, 0x58, 0x41, 0xc4, 0xc6,
+ 0x02, 0x85, 0xae, 0x35,
+ 0xda, 0xf8, 0x3a, 0xab, 0x46, 0x31, 0x44, 0x6c, 0x85, 0x4d, 0xef, 0xff,
+ 0x10, 0xa2, 0x39, 0x6b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x3d, 0x9b, 0xb1, 0x32, 0x1d, 0x67, 0x8f, 0xb6, 0x7e, 0xcb, 0xbd, 0xa7,
+ 0x1a, 0x76, 0x6a, 0x8a,
+ 0x99, 0x55, 0x9c, 0x7c, 0x57, 0xa6, 0x5b, 0xab, 0x98, 0x6d, 0x27, 0x47,
+ 0x60, 0x4a, 0x96, 0xb9,
+ 0xd3, 0xfd, 0x59, 0xdb, 0xc6, 0xa3, 0x5c, 0xc5, 0x2f, 0x3c, 0x87, 0xdd,
+ 0x5a, 0xbb, 0x8e, 0xe5,
+ 0x9d, 0x96, 0x2a, 0xfd, 0x61, 0x98, 0x16, 0x75, 0x07, 0xd3, 0xeb, 0xd5,
+ 0x3e, 0x38, 0x87, 0x36,
+ 0x7e, 0x36, 0x17, 0xe5, 0x0c, 0xf0, 0x90, 0x71, 0x63, 0xeb, 0x75, 0x1f,
+ 0x6a, 0x9e, 0xc5, 0x58,
+ 0x06, 0x43, 0xed, 0x20, 0x2d, 0x21, 0x8a, 0xb1, 0x31, 0xe1, 0xaa, 0xdb,
+ 0x71, 0x4b, 0xf8, 0x29,
+ 0xd1, 0x7d, 0x02, 0x7a, 0xdd, 0xbc, 0x9b, 0xaa, 0x81, 0x63, 0xe1, 0x94,
+ 0x75, 0x82, 0x67, 0x43,
+ 0xaa, 0xc8, 0x6f, 0xaf, 0x0b, 0x9c, 0xc4, 0xd3, 0x2a, 0xf8, 0x6b, 0xdc,
+ 0xb7, 0x93, 0x26, 0xc7,
+ 0xa4, 0xce, 0x2d, 0x4e, 0x4a, 0xc1, 0xd4, 0x1d, 0xe6, 0xa6, 0x9a, 0xe0,
+ 0x7a, 0x3c, 0xfc, 0x33,
+ 0x03, 0xc0, 0x97, 0x10, 0xf7, 0xf1, 0x45, 0xb9, 0xf9, 0x91, 0x55, 0x8c,
+ 0xd9, 0xc4, 0x7c, 0xf5,
+ 0x23, 0x17, 0x6e, 0x92, 0x84, 0xc2, 0x68, 0x86, 0x8b, 0x28, 0xfa, 0x96,
+ 0x6c, 0xd2, 0xf4, 0x07,
+ 0x0a, 0xc5, 0xf4, 0x60, 0x77, 0x63, 0x5d, 0x10, 0x53, 0xe0, 0x3d, 0xae,
+ 0x93, 0xdd, 0xcb, 0x7b,
+ 0x7c, 0xb6, 0x4c, 0x44, 0x17, 0xef, 0x57, 0x1e, 0xcd, 0xb4, 0x13, 0x56,
+ 0x45, 0xa7, 0x2c, 0xfe,
+ 0x22, 0x57, 0xa2, 0x23, 0x68, 0x2c, 0xea, 0x50, 0xdc, 0xe6, 0xc9, 0x53,
+ 0x9a, 0x2f, 0x61, 0x54,
+ 0x37, 0x5e, 0x45, 0x52, 0x6a, 0x04, 0xd2, 0xa6, 0x2d, 0x2b, 0x80, 0x09,
+ 0x89, 0xab, 0xa1, 0xf1,
+ 0x4a, 0xa8, 0xc5, 0xa7, 0x91, 0x05, 0x07, 0x6e, 0xb7, 0x51, 0xa0, 0x9a,
+ 0x3a, 0xf1, 0x18, 0x5c,
+ 0x2e, 0xd1, 0xbb, 0x63, 0x32, 0x6e, 0x3d, 0xf1, 0xbe, 0xe7, 0x5e, 0x26,
+ 0x78, 0xb9, 0x52, 0x06,
+ 0x25, 0x54, 0x83, 0xb2, 0xa9, 0xe3, 0xe2, 0x37, 0xba, 0xc9, 0x50, 0x4d,
+ 0x1d, 0x99, 0x0c, 0x2e,
+ 0xf8, 0xaf, 0x98, 0x88, 0x2e, 0x1d, 0xae, 0x3c, 0x59, 0xab, 0x26, 0xac,
+ 0x8a, 0x8d, 0x58, 0x3f,
+ 0xdd, 0xfb, 0x1b, 0x3a, 0x87, 0xfe, 0x4c, 0x0b, 0xe3, 0x62, 0x76, 0xe1,
+ 0x97, 0x14, 0x54, 0x11,
+ 0x31, 0x1d, 0xa8, 0x72, 0x47, 0x25, 0x58, 0x17, 0x1c, 0xca, 0x2a, 0xd2,
+ 0xf8, 0xe0, 0x59, 0xd8,
+ 0x74, 0xf3, 0xe3, 0x85, 0x7b, 0x93, 0xcd, 0x61, 0x30, 0x0b, 0x48, 0xb1,
+ 0xf9, 0x43, 0x0e, 0x23,
+ 0x59, 0xe2, 0xcf, 0xf6, 0xbe, 0x0c, 0xb5, 0x29, 0x77, 0x7d, 0x43, 0x1b,
+ 0x58, 0x3e, 0x20, 0xd0,
+ 0xcd, 0x71, 0x86, 0x7b, 0x5f, 0x06, 0xbb, 0xf5, 0xda, 0xdf, 0xc0, 0xec,
+ 0x2c, 0x1f, 0x10, 0x68,
+ 0x5d, 0x21, 0x79, 0x77, 0x88, 0x32, 0xf8, 0xf7, 0xe8, 0xc3, 0x8f, 0x89,
+ 0x06, 0x4c, 0x31, 0x5f,
+ 0x08, 0x45, 0xaf, 0xc1, 0x6c, 0x7c, 0x9a, 0x7f, 0xfd, 0xbf, 0x5b, 0xe7,
+ 0xbc, 0xe4, 0x22, 0xdd,
+ 0x7f, 0x76, 0xdb, 0x54, 0xe0, 0x1e, 0x12, 0xa7, 0x34, 0x25, 0x46, 0xda,
+ 0x9c, 0x63, 0x50, 0x0b,
+ 0xa6, 0x4e, 0x76, 0xef, 0x51, 0xde, 0x13, 0x72, 0x48, 0xf9, 0xfc, 0xa9,
+ 0x55, 0x05, 0x15, 0x95,
+ 0xf9, 0xef, 0x54, 0x39, 0xc2, 0xf3, 0x2c, 0xea, 0x0e, 0x65, 0x15, 0x69,
+ 0x7c, 0x70, 0xcd, 0x6c,
+ 0x90, 0x50, 0xff, 0x0c, 0xd7, 0x34, 0x43, 0x02, 0x32, 0x1c, 0x4f, 0x65,
+ 0x2a, 0x53, 0x21, 0x37,
+ 0x0f, 0x46, 0x8e, 0x50, 0xad, 0xb3, 0x92, 0x18, 0x9b, 0x90, 0xc2, 0xf9,
+ 0x3b, 0x52, 0x4f, 0xa7,
+ 0xb0, 0x87, 0x06, 0x8e, 0xa4, 0x07, 0x6e, 0x3d, 0x40, 0xa5, 0xe0, 0x7f,
+ 0x9f, 0x45, 0xa9, 0xc5,
+ 0xac, 0x8b, 0x82, 0x8f, 0x26, 0xbd, 0x4e, 0x62, 0x1b, 0x19, 0xc1, 0x07,
+ 0xc6, 0xd8, 0xde, 0xee,
+ 0x60, 0xba, 0xc8, 0x45, 0x95, 0x55, 0x77, 0x41, 0x96, 0x08, 0x32, 0x2e,
+ 0x1c, 0x3a, 0x5b, 0xd5,
+ 0x6c, 0x3c, 0xd1, 0x05, 0xcf, 0x17, 0xa0, 0xe0, 0xf4, 0x09, 0xa5, 0x5b,
+ 0xfe, 0xac, 0x68, 0x87,
+ 0x13, 0x4a, 0x0a, 0x51, 0x2f, 0x09, 0xb2, 0x47, 0xc0, 0x2c, 0xe3, 0x81,
+ 0x62, 0xcf, 0x38, 0x8c,
+ 0xbc, 0x01, 0x1f, 0xce, 0xfe, 0x45, 0xb9, 0x9c, 0x22, 0xa4, 0x77, 0x0a,
+ 0x7d, 0xd3, 0x9a, 0x97,
+ 0x32, 0xdd, 0x3f, 0x62, 0xb0, 0xd4, 0x1d, 0xae, 0xe5, 0x5b, 0x7f, 0x5e,
+ 0x21, 0x24, 0x25, 0x2d,
+ 0xf1, 0xaa, 0xfb, 0xf8, 0xae, 0x8f, 0xb6, 0x95, 0xf3, 0xda, 0x4e, 0x8e,
+ 0xc0, 0x94, 0xef, 0xb1,
+ 0xd6, 0x7e, 0x23, 0xeb, 0x1c, 0x73, 0x93, 0xcd, 0xe7, 0x4c, 0x78, 0x8a,
+ 0xf2, 0x34, 0x0a, 0x39,
+ 0x44, 0xae, 0x87, 0x46, 0xd0, 0x58, 0x17, 0xa0, 0x7b, 0x0f, 0x51, 0xa6,
+ 0xf7, 0x5e, 0xc2, 0xa8,
+ 0x62, 0x3a, 0x93, 0xe4, 0x8e, 0x4a, 0xb0, 0x2e, 0x38, 0x57, 0x54, 0x67,
+ 0x33, 0x03, 0xb2, 0x73,
+ 0xa8, 0x48, 0x34, 0x0e, 0x10, 0x83, 0x03, 0xbc, 0x84, 0xa7, 0x0d, 0x95,
+ 0x98, 0xaa, 0xcf, 0x61,
+ 0x40, 0x6d, 0x31, 0xc7, 0xe6, 0x66, 0x5a, 0x7e, 0xe4, 0xb1, 0x9d, 0x34,
+ 0xa9, 0x2c, 0xd3, 0x27,
+ 0x95, 0xd3, 0x85, 0x3c, 0x0d, 0xe4, 0x8c, 0x0a, 0xfa, 0x6c, 0xb0, 0x32,
+ 0x82, 0xdc, 0xa5, 0xeb,
+ 0x11, 0xca, 0x51, 0xf0, 0x34, 0x16, 0x75, 0x28, 0x6e, 0x73, 0x85, 0xc8,
+ 0x4d, 0xf6, 0xd1, 0x2a,
+ 0x8b, 0x5f, 0x5a, 0x9c, 0x94, 0x41, 0x6b, 0x3a, 0x0f, 0x8f, 0xf7, 0x03,
+ 0xf4, 0x78, 0x3b, 0x66,
+ 0x01, 0x40, 0xcc, 0xb1, 0xec, 0xee, 0x82, 0xd6, 0x57, 0xce, 0x33, 0xc5,
+ 0xf6, 0xfd, 0x95, 0x53,
+ 0x0d, 0xc6, 0xd5, 0xf1, 0xb6, 0xac, 0x55, 0x77, 0x35, 0xcf, 0xa4, 0xb0,
+ 0x14, 0x6b, 0xa6, 0x01,
+ 0xe1, 0x20, 0x66, 0xb9, 0x76, 0x77, 0x41, 0x6b, 0xca, 0x67, 0xf8, 0x83,
+ 0x7b, 0x9f, 0xab, 0xc8,
+ 0x6b, 0x3f, 0xf0, 0x94, 0x0e, 0xd8, 0xa8, 0x87, 0x92, 0x26, 0x3c, 0x45,
+ 0x79, 0x1a, 0x05, 0xfd,
+ 0xc2, 0x37, 0x08, 0x2b, 0xf2, 0xb5, 0x29, 0xed, 0x41, 0x4f, 0x02, 0x15,
+ 0x17, 0x4d, 0x5f, 0xcf,
+ 0x5c, 0x61, 0xb5, 0xc6, 0x64, 0xdc, 0x7a, 0x21, 0xbf, 0x0d, 0xbc, 0x4c,
+ 0xf0, 0xb1, 0xa4, 0x0c,
+ 0xc7, 0xb4, 0x72, 0x1b, 0x28, 0x65, 0xe6, 0xe5, 0x89, 0x3f, 0xfd, 0x42,
+ 0xbf, 0xc2, 0xdb, 0x13,
+ 0x84, 0x19, 0xd4, 0xcc, 0x39, 0xf2, 0xf9, 0x22, 0x94, 0x1f, 0x35, 0xfa,
+ 0xcf, 0x2a, 0x74, 0xc1,
+ 0x45, 0xee, 0x4b, 0xf7, 0x3c, 0xb6, 0x95, 0x76, 0x2c, 0xc1, 0x62, 0x63,
+ 0x01, 0xa3, 0x57, 0xfb,
+ 0x79, 0x35, 0x36, 0x74, 0xcd, 0x3f, 0x98, 0x16, 0x05, 0xc4, 0xec, 0x01,
+ 0xed, 0x28, 0xa8, 0x22,
+ 0x4b, 0xe8, 0x09, 0x16, 0x7d, 0xeb, 0x85, 0xb8, 0xe0, 0x9f, 0x93, 0x5f,
+ 0xcc, 0x0c, 0x8d, 0x0f,
+ 0x48, 0x28, 0x9e, 0x06, 0x8a, 0x1a, 0xc0, 0x01, 0x19, 0x0e, 0xc6, 0xd3,
+ 0x15, 0xc8, 0xf1, 0xfa,
+ 0x6f, 0xfc, 0x46, 0x15, 0x38, 0xe6, 0xe5, 0x59, 0x0d, 0x98, 0xf0, 0xd7,
+ 0x27, 0x68, 0x14, 0x72,
+ 0xa7, 0x0e, 0xba, 0x5e, 0xbd, 0x30, 0x91, 0xa4, 0x1f, 0x37, 0xcf, 0x6c,
+ 0xa3, 0xf8, 0x80, 0xc6,
+ 0xa2, 0x8d, 0xc0, 0x6e, 0x67, 0xe0, 0x5e, 0xac, 0xd7, 0x47, 0x30, 0x3b,
+ 0x0b, 0x77, 0x04, 0x1a,
+ 0xc0, 0xb7, 0x53, 0x8a, 0xe9, 0xaa, 0xee, 0x82, 0xef, 0x10, 0x64, 0x5c,
+ 0x38, 0x74, 0xb6, 0x69,
+ 0x2c, 0x51, 0xe0, 0xc2, 0x29, 0x71, 0xfa, 0x9e, 0x10, 0xb8, 0x38, 0x6f,
+ 0x57, 0x80, 0xbb, 0xa0,
+ 0x81, 0x9a, 0xae, 0xfc, 0xe3, 0x22, 0x36, 0x2a, 0x5c, 0x6f, 0xca, 0xad,
+ 0x67, 0xa5, 0xf0, 0x1d,
+ 0xd0, 0x3d, 0xce, 0xcb, 0x31, 0x52, 0x19, 0x7c, 0xd6, 0xad, 0xd2, 0x51,
+ 0x83, 0x7f, 0xf2, 0x10,
+ 0x17, 0x89, 0xbc, 0xd0, 0x19, 0x37, 0xff, 0x99, 0x5f, 0x92, 0x2f, 0x13,
+ 0x3c, 0xbd, 0x29, 0x03,
+ 0xa3, 0xcd, 0x0c, 0xdf, 0x8b, 0x0e, 0xdc, 0x7a, 0x80, 0x89, 0x03, 0xfe,
+ 0xfd, 0x8a, 0x91, 0x49,
+ 0xd2, 0xbd, 0x95, 0x6a, 0x2a, 0x4d, 0xde, 0x13, 0x78, 0xf2, 0xb4, 0x18,
+ 0xac, 0x46, 0x1b, 0xb6,
+ 0x57, 0xe4, 0x8d, 0x17, 0xff, 0x51, 0xa5, 0xe7, 0xbb, 0x23, 0xb2, 0x27,
+ 0x95, 0x91, 0xfa, 0x24,
+ 0x71, 0x70, 0x99, 0xb5, 0xa1, 0x43, 0x02, 0x69, 0xf8, 0x7b, 0xb7, 0xe6,
+ 0x51, 0xcc, 0x8a, 0xff,
+ 0xa1, 0x4d, 0x57, 0x7e, 0x90, 0x11, 0x1b, 0x15, 0x2e, 0xd6, 0x65, 0xb7,
+ 0xd2, 0xb3, 0x78, 0xef,
+ 0xc3, 0x77, 0xc4, 0x9a, 0x1e, 0x5b, 0xab, 0x3b, 0x16, 0x81, 0x31, 0xd0,
+ 0xe1, 0xb0, 0xca, 0x9c,
+ 0x51, 0xa7, 0x60, 0x37, 0xd2, 0x70, 0x2f, 0x56, 0x8a, 0xc2, 0x18, 0xfc,
+ 0xe4, 0xda, 0x02, 0x0d,
+ 0x35, 0xde, 0x1e, 0xf3, 0x71, 0x1b, 0x15, 0xc9, 0x83, 0x74, 0xe6, 0x40,
+ 0xa6, 0x92, 0x48, 0x57,
+ 0x47, 0x6e, 0x10, 0x56, 0x27, 0xa9, 0x52, 0x19, 0x82, 0x9e, 0x04, 0x2a,
+ 0x2e, 0x9a, 0xbe, 0x5d,
+ 0xf5, 0x69, 0x4d, 0x79, 0x98, 0xb1, 0xfb, 0x4b, 0x6c, 0x64, 0x82, 0x1c,
+ 0x9e, 0xe6, 0xfe, 0x3e,
+ 0xb2, 0x07, 0x5d, 0x2f, 0xbf, 0x18, 0xa9, 0x52, 0xee, 0xfa, 0x86, 0x36,
+ 0xb0, 0x7c, 0x40, 0x63,
+ 0xd7, 0x3e, 0xef, 0x5a, 0xf0, 0x9d, 0x11, 0x1b, 0xb0, 0x82, 0x4b, 0x4f,
+ 0x04, 0xc9, 0x9f, 0x6a,
+ 0x16, 0xc9, 0x70, 0x61, 0xf5, 0xd9, 0x7d, 0x4f, 0x08, 0x5c, 0x1c, 0xd6,
+ 0xca, 0x40, 0xbc, 0x50,
+ 0x86, 0x99, 0x8f, 0x6d, 0x22, 0xed, 0x3e, 0x4d, 0x3a, 0x40, 0x53, 0xb3,
+ 0xe0, 0x13, 0x9d, 0x67,
+ 0x73, 0xf0, 0xc2, 0x14, 0xba, 0x5c, 0xc5, 0x06, 0x56, 0x24, 0xd1, 0xaf,
+ 0x7e, 0xf5, 0x63, 0x59,
+ 0xc4, 0x74, 0xe5, 0x0b, 0xdf, 0x94, 0xa3, 0x5c, 0x70, 0xae, 0xa8, 0xce,
+ 0x66, 0x06, 0xa7, 0xe6,
+ 0x34, 0x9e, 0xd2, 0x42, 0x9d, 0xf5, 0x97, 0x1f, 0xd4, 0xba, 0xd5, 0x85,
+ 0x50, 0x6f, 0xdd, 0x04,
+ 0xc6, 0xf4, 0xbe, 0xaa, 0xc4, 0x8b, 0x64, 0x33, 0xde, 0xf1, 0xce, 0x87,
+ 0x49, 0x3f, 0x4e, 0x40,
+ 0x96, 0x13, 0x12, 0x2c, 0xfa, 0x15, 0xc9, 0xb3, 0x03, 0xfd, 0xe5, 0xbe,
+ 0x5b, 0x18, 0xd9, 0x1e,
+ 0xed, 0xa6, 0x7f, 0xf9, 0x2c, 0x35, 0x96, 0xca, 0xa8, 0x66, 0x6f, 0xf6,
+ 0x99, 0x09, 0x98, 0x9a,
+ 0xf4, 0x29, 0x81, 0xc8, 0x74, 0x5f, 0x79, 0x9d, 0x3b, 0xaa, 0xb1, 0xd9,
+ 0x68, 0x1b, 0x6b, 0x6d,
+ 0xae, 0x0b, 0xd9, 0x2e, 0x3d, 0xa2, 0x89, 0x0d, 0xb5, 0x46, 0xa7, 0x4e,
+ 0xe9, 0xe1, 0x37, 0x48,
+ 0x63, 0x7a, 0x5f, 0x55, 0x62, 0xa4, 0x32, 0xf8, 0x6f, 0x99, 0x67, 0xa2,
+ 0xc5, 0xfe, 0x27, 0x20,
+ },
+ { /* 5 */
+ 0x79, 0x80, 0xab, 0xe7, 0xa9, 0x6f, 0x50, 0x97, 0xbe, 0x20, 0xdb, 0x5a,
+ 0xb5, 0x1a, 0xf0, 0xb4,
+ 0x91, 0x1a, 0x97, 0x16, 0x14, 0x45, 0x9f, 0x6e, 0x60, 0xe7, 0xef, 0x55,
+ 0x0a, 0x58, 0x62, 0xaa,
+ 0x99, 0xdc, 0x5f, 0x93, 0xd1, 0x32, 0x94, 0x30, 0x3d, 0x37, 0xfc, 0x67,
+ 0x89, 0x09, 0x7f, 0xce,
+ 0xb9, 0x42, 0xf9, 0xc2, 0x43, 0x2d, 0xb8, 0x8b, 0x8a, 0xf1, 0xb0, 0xaf,
+ 0xc0, 0x8e, 0x0b, 0x9d,
+ 0x71, 0x46, 0x63, 0x62, 0x6c, 0x18, 0x5b, 0xc9, 0xe3, 0xf0, 0xc8, 0x68,
+ 0x36, 0x4b, 0xed, 0xd0,
+ 0xea, 0x4a, 0x0e, 0x41, 0x1d, 0x47, 0xbd, 0x0f, 0x58, 0xf3, 0x40, 0xe2,
+ 0xef, 0xc7, 0x04, 0x07,
+ 0xd7, 0x56, 0x4e, 0xa7, 0xd0, 0xcc, 0x51, 0x02, 0x84, 0xf4, 0xeb, 0xf2,
+ 0x68, 0xd9, 0xf3, 0x27,
+ 0x95, 0x79, 0xf3, 0xb5, 0x97, 0x9f, 0x7b, 0x41, 0xaf, 0x8f, 0x07, 0x4c,
+ 0xaa, 0x91, 0x8d, 0x98,
+ 0x55, 0xbb, 0xa1, 0x90, 0x7d, 0xdd, 0x93, 0x5d, 0x9b, 0x5e, 0x6c, 0xb9,
+ 0xdf, 0x05, 0x76, 0xb1,
+ 0xda, 0x9b, 0xfb, 0xd9, 0xc6, 0xb6, 0x87, 0x08, 0x55, 0x56, 0x2a, 0x4e,
+ 0x63, 0xe2, 0x4a, 0x9c,
+ 0xdb, 0xf3, 0xe2, 0x81, 0x96, 0x61, 0xbe, 0x73, 0x16, 0x4c, 0x10, 0xd9,
+ 0x4b, 0x41, 0x01, 0x71,
+ 0xb5, 0xe7, 0x55, 0xe4, 0x05, 0x80, 0x57, 0xfa, 0x18, 0x49, 0x4b, 0x84,
+ 0xe3, 0x16, 0xf9, 0xcb,
+ 0x3f, 0xcc, 0x72, 0x56, 0x6d, 0xe6, 0x9e, 0xfb, 0x5a, 0x33, 0xdf, 0xfd,
+ 0xd7, 0x9b, 0x61, 0x39,
+ 0x54, 0xd3, 0xb8, 0xc8, 0x2d, 0x0a, 0xaa, 0x26, 0xd8, 0x44, 0x56, 0x2e,
+ 0xf7, 0xa6, 0x3d, 0x5c,
+ 0x7d, 0xe3, 0xcf, 0x44, 0x2a, 0xb5, 0xb4, 0xb8, 0x71, 0x48, 0x33, 0x43,
+ 0x15, 0xd3, 0x1f, 0x86,
+ 0xd5, 0x86, 0x7c, 0x17, 0x70, 0xa1, 0x23, 0xf4, 0x02, 0xc0, 0x9f, 0x1f,
+ 0x38, 0x5c, 0x65, 0x3e,
+ 0xbd, 0x21, 0x9d, 0x61, 0xc0, 0xf7, 0x5c, 0xa4, 0x45, 0x99, 0x58, 0xb6,
+ 0x60, 0x47, 0xe4, 0xaf,
+ 0xa9, 0x0d, 0xaa, 0x0b, 0x0a, 0xc3, 0xae, 0x37, 0x30, 0x92, 0x96, 0xcb,
+ 0x05, 0x2c, 0x31, 0x55,
+ 0xfe, 0x66, 0x39, 0x2b, 0xd7, 0x73, 0x4f, 0x9c, 0x2d, 0xf8, 0x8e, 0x9f,
+ 0x8a, 0xac, 0xd1, 0xfd,
+ 0x3b, 0xaf, 0x16, 0xf5, 0xee, 0x3c, 0x7a, 0xd4, 0x95, 0x5b, 0x37, 0xe4,
+ 0x77, 0x52, 0x8e, 0x0b,
+ 0x1d, 0x82, 0xe6, 0xb7, 0x5f, 0x94, 0xc0, 0xb6, 0x6b, 0xc1, 0xe7, 0xd8,
+ 0xce, 0x99, 0x83, 0x73,
+ 0x36, 0x62, 0xa3, 0x8b, 0xf8, 0x46, 0xac, 0xde, 0x44, 0xf9, 0xf6, 0x58,
+ 0x7c, 0x69, 0x37, 0xb0,
+ 0x38, 0x17, 0x3d, 0x1d, 0x1e, 0x86, 0x31, 0x59, 0x50, 0x75, 0x79, 0x9e,
+ 0x0f, 0x74, 0x53, 0xff,
+ 0x07, 0xdb, 0x4f, 0x4b, 0x73, 0x60, 0xaf, 0xa2, 0x0a, 0x46, 0xa6, 0x63,
+ 0xd8, 0xef, 0x32, 0xc6,
+ 0x1b, 0x31, 0xb0, 0xa4, 0x7c, 0x23, 0x56, 0x6f, 0x22, 0x9d, 0x7b, 0x2c,
+ 0x3e, 0xd5, 0xfa, 0x58,
+ 0xfb, 0x6d, 0x44, 0xd0, 0x04, 0x7e, 0x92, 0xc8, 0xa1, 0x8a, 0x5c, 0x11,
+ 0x02, 0xc6, 0x75, 0x22,
+ 0x70, 0x2e, 0x7a, 0x3a, 0x3c, 0xcf, 0x62, 0xb2, 0xa0, 0xea, 0xf2, 0xff,
+ 0x1e, 0xe8, 0xa6, 0x3d,
+ 0x89, 0x93, 0x0c, 0x5a, 0x98, 0xdc, 0x82, 0x8c, 0x87, 0x54, 0xda, 0x03,
+ 0x4c, 0xab, 0x45, 0x06,
+ 0x4a, 0xe9, 0x75, 0x97, 0x82, 0x24, 0x21, 0x1d, 0x76, 0xab, 0xff, 0x8c,
+ 0x41, 0x19, 0x63, 0xdb,
+ 0xae, 0xd6, 0xe5, 0x40, 0x79, 0xa3, 0x01, 0x95, 0x3a, 0xd4, 0x30, 0xa8,
+ 0xdd, 0xc3, 0x03, 0x93,
+ 0x3d, 0x1c, 0x40, 0xe6, 0xcd, 0x8b, 0xec, 0x0d, 0xdc, 0x07, 0xab, 0x10,
+ 0x87, 0x1e, 0xf7, 0x20,
+ 0x29, 0x30, 0x77, 0x8c, 0x07, 0xbf, 0x1e, 0x9e, 0xa9, 0x0c, 0x65, 0x6d,
+ 0xe2, 0x75, 0x22, 0xda,
+ 0x8a, 0x2b, 0x27, 0xb2, 0x68, 0x66, 0xc9, 0x01, 0x42, 0x7a, 0x94, 0x79,
+ 0x34, 0x8d, 0x98, 0xf2,
+ 0xcd, 0x0f, 0xe7, 0x5b, 0xfc, 0x38, 0x3e, 0x16, 0xe5, 0x73, 0xaa, 0x49,
+ 0x7e, 0xaf, 0x42, 0x92,
+ 0x41, 0x97, 0x96, 0xfa, 0xb7, 0xe9, 0x61, 0xce, 0xee, 0x55, 0xa2, 0xc4,
+ 0xba, 0x6e, 0xa3, 0x4b,
+ 0xce, 0xb7, 0xcc, 0xb3, 0x0c, 0x82, 0x75, 0x9b, 0x20, 0x5d, 0xe4, 0x33,
+ 0x06, 0x89, 0x9f, 0x66,
+ 0x16, 0xfc, 0x05, 0xda, 0x6a, 0x59, 0x80, 0x65, 0xf3, 0x3f, 0xba, 0x90,
+ 0x35, 0xee, 0x43, 0xe3,
+ 0x6c, 0xc4, 0x85, 0xd5, 0x33, 0x8c, 0x9b, 0x7f, 0x88, 0x31, 0x2f, 0xb0,
+ 0xf8, 0xd2, 0x6e, 0xa3,
+ 0x1f, 0x52, 0xd4, 0x07, 0xff, 0xf9, 0xb2, 0x40, 0xed, 0xf5, 0x93, 0x35,
+ 0x9e, 0x1c, 0x15, 0x6a,
+ 0xe0, 0x5c, 0xf4, 0x74, 0x78, 0x5d, 0xc4, 0xa7, 0x83, 0x17, 0x27, 0x3d,
+ 0x3c, 0x13, 0x8f, 0x7a,
+ 0xf5, 0x18, 0xda, 0x46, 0xe2, 0xbe, 0x0f, 0x4f, 0xb5, 0x06, 0xd3, 0xd7,
+ 0x71, 0xdb, 0x11, 0x6d,
+ 0xb0, 0xec, 0x28, 0x1f, 0xd6, 0x8d, 0x8a, 0xae, 0x94, 0x3b, 0x99, 0x0a,
+ 0x6b, 0x7c, 0x5d, 0x14,
+ 0xde, 0xf8, 0x9f, 0x7a, 0x45, 0x6c, 0x63, 0x27, 0x9a, 0x3e, 0xc2, 0x57,
+ 0xc3, 0x2b, 0xa5, 0xae,
+ 0x03, 0xb8, 0x2b, 0xe8, 0xf0, 0xba, 0x4b, 0x8d, 0xc5, 0x2e, 0x4e, 0x7a,
+ 0x78, 0x26, 0xdd, 0xf4,
+ 0xd0, 0x8d, 0x01, 0xec, 0xa3, 0xac, 0xfe, 0xa0, 0x8e, 0xb2, 0x4d, 0x91,
+ 0xb0, 0x36, 0xc1, 0xe1,
+ 0x8e, 0x48, 0x43, 0x11, 0xeb, 0xbc, 0x2d, 0x2e, 0x8d, 0x12, 0x7c, 0x60,
+ 0x94, 0x44, 0x77, 0xc0,
+ 0x23, 0x26, 0x8d, 0xb9, 0x62, 0xa5, 0x67, 0x36, 0x72, 0xe8, 0x02, 0xb2,
+ 0x31, 0xa1, 0xa9, 0xa7,
+ 0x0a, 0x16, 0xfa, 0x35, 0x65, 0x1a, 0x79, 0xa8, 0xdb, 0xe4, 0x67, 0xdf,
+ 0xd3, 0xd4, 0x8b, 0x7d,
+ 0xf3, 0xab, 0x8c, 0x55, 0xc1, 0x09, 0x99, 0x96, 0xfc, 0x5a, 0x4f, 0x23,
+ 0x81, 0x97, 0x68, 0x46,
+ 0x06, 0xb3, 0x56, 0x13, 0x23, 0xb7, 0x96, 0xd9, 0x49, 0x5c, 0x9c, 0xf4,
+ 0xf0, 0x4c, 0x79, 0x2b,
+ 0xdf, 0x90, 0x86, 0x22, 0x15, 0xbb, 0x5a, 0x5c, 0xd9, 0x24, 0xf8, 0xc0,
+ 0xeb, 0x88, 0xee, 0x43,
+ 0x4d, 0x32, 0x3a, 0xdc, 0xf1, 0x44, 0x8e, 0xbf, 0x7c, 0xed, 0x59, 0xef,
+ 0x99, 0xf6, 0x51, 0x1d,
+ 0x98, 0xb4, 0x46, 0xcb, 0x81, 0xe5, 0xad, 0x4b, 0x7e, 0x2d, 0xc6, 0xf0,
+ 0xa1, 0xaa, 0x34, 0x23,
+ 0x97, 0xa9, 0xc1, 0x05, 0x37, 0xf2, 0x09, 0xb7, 0x29, 0xbb, 0x73, 0xa1,
+ 0xfa, 0x14, 0x1b, 0x81,
+ 0xad, 0x6e, 0xce, 0xa8, 0x89, 0x19, 0x4a, 0x18, 0xff, 0xfa, 0x7e, 0xd2,
+ 0xa5, 0xe5, 0xde, 0x67,
+ 0x15, 0x44, 0x2e, 0x32, 0x9a, 0xe3, 0xcb, 0xe8, 0x36, 0x11, 0xf4, 0xea,
+ 0x4d, 0xc8, 0x9e, 0x17,
+ 0xa2, 0x73, 0x49, 0x66, 0x3f, 0x0e, 0xee, 0xe4, 0xa8, 0x6c, 0xcb, 0x83,
+ 0xfe, 0x5b, 0xf1, 0xc5,
+ 0xab, 0xdd, 0x98, 0xbb, 0xaa, 0xae, 0xdc, 0xc1, 0xb6, 0xa6, 0xe2, 0x26,
+ 0x55, 0xa9, 0xa7, 0x4c,
+ 0xc0, 0xc2, 0x52, 0x25, 0xea, 0x42, 0xe8, 0x1c, 0x34, 0xd1, 0x6b, 0xf5,
+ 0x75, 0x94, 0xfb, 0x29,
+ 0xb6, 0x5f, 0x7e, 0x0c, 0xf5, 0x3a, 0x1c, 0x77, 0xdd, 0x67, 0x05, 0xfe,
+ 0x9b, 0x30, 0x24, 0x3f,
+ 0x53, 0x08, 0xf7, 0x83, 0x5e, 0x6a, 0x05, 0x84, 0xd2, 0x02, 0xf0, 0x4d,
+ 0x2f, 0x49, 0x0f, 0x9a,
+ 0xed, 0x91, 0x41, 0x0a, 0x6e, 0x27, 0x12, 0xad, 0x52, 0xb5, 0xe6, 0x81,
+ 0x37, 0x28, 0x36, 0xc1,
+ 0xc1, 0xaa, 0x4b, 0x7d, 0xba, 0x95, 0xd1, 0x67, 0x77, 0xcb, 0x51, 0x62,
+ 0x5d, 0x37, 0xb0, 0xc4,
+ 0xe1, 0x34, 0xed, 0x2c, 0x28, 0x8a, 0xfd, 0xdc, 0xc0, 0x0d, 0x1d, 0xaa,
+ 0x14, 0xb0, 0xc4, 0x97,
+ 0x62, 0xb1, 0x1b, 0x43, 0xd5, 0x4c, 0x06, 0xf8, 0x9c, 0xbd, 0xa0, 0x76,
+ 0x8b, 0xcf, 0x0a, 0xec,
+ 0x24, 0xfd, 0xc2, 0xf2, 0x11, 0xc5, 0xc8, 0x94, 0x78, 0xae, 0xa4, 0xd1,
+ 0xe9, 0x4e, 0x9b, 0x61,
+ 0xe9, 0xf2, 0x25, 0xa9, 0xed, 0xfd, 0xf6, 0x82, 0x9d, 0xdd, 0x0e, 0x98,
+ 0x97, 0xe1, 0xd9, 0xf3,
+ 0x65, 0x6a, 0x54, 0x08, 0xa6, 0x2c, 0xa9, 0x5a, 0x96, 0xfb, 0x06, 0x15,
+ 0x53, 0x20, 0x38, 0x2a,
+ 0xec, 0xf9, 0x58, 0x52, 0x3e, 0xf0, 0x2b, 0xd6, 0x11, 0xaf, 0xdc, 0x16,
+ 0x1f, 0x8b, 0x7d, 0x2c,
+ 0x5d, 0x7d, 0x69, 0x15, 0xb8, 0xaa, 0x98, 0x03, 0xc6, 0x8e, 0x7f, 0x8b,
+ 0x5c, 0x54, 0x6b, 0xd5,
+ 0x26, 0x2d, 0xf0, 0x42, 0xb1, 0xa8, 0xba, 0x62, 0xfe, 0x9a, 0xd0, 0x3c,
+ 0xb9, 0xcb, 0x0d, 0x78,
+ 0xbe, 0x99, 0xb6, 0x89, 0x30, 0x4d, 0x17, 0x29, 0x80, 0xb7, 0x16, 0xcc,
+ 0x18, 0x61, 0x39, 0x5b,
+ 0x21, 0xf6, 0xbf, 0x09, 0xc2, 0xc8, 0x15, 0xc0, 0xf4, 0xdc, 0x76, 0x5f,
+ 0x61, 0x24, 0x3f, 0xbe,
+ 0x4b, 0x81, 0x6c, 0xcf, 0xd2, 0xf3, 0x18, 0x66, 0x35, 0xb1, 0xc5, 0x1b,
+ 0x69, 0xba, 0x28, 0x36,
+ 0x48, 0x39, 0x47, 0x27, 0x22, 0x49, 0x53, 0xeb, 0xf0, 0x9f, 0x8b, 0x61,
+ 0x11, 0x9c, 0xf5, 0xc2,
+ 0xca, 0xd4, 0xa8, 0x10, 0x8f, 0x58, 0x91, 0xb4, 0xef, 0x35, 0x0c, 0x2a,
+ 0xa6, 0x40, 0x70, 0x54,
+ 0xf7, 0xc8, 0xe8, 0xf6, 0x42, 0xd3, 0x7d, 0xb9, 0x33, 0x32, 0xa7, 0x3a,
+ 0x21, 0x5e, 0x87, 0x74,
+ 0x7c, 0x8b, 0xd6, 0x1c, 0x7a, 0x62, 0x8d, 0xc3, 0x32, 0x52, 0x09, 0xd4,
+ 0x3d, 0x70, 0x54, 0x6b,
+ 0xff, 0x0e, 0x20, 0x73, 0x87, 0xa4, 0x76, 0xe7, 0x6e, 0xe2, 0xb4, 0x08,
+ 0xa2, 0x0f, 0x9a, 0x10,
+ 0x20, 0x9e, 0xa6, 0x51, 0x92, 0x1f, 0x2c, 0xbb, 0xb7, 0xc6, 0x4c, 0xc8,
+ 0x49, 0x87, 0x74, 0x53,
+ 0xd1, 0xe5, 0x18, 0xb4, 0xf3, 0x7b, 0xc7, 0xdb, 0xcd, 0xa8, 0x77, 0x06,
+ 0x98, 0x95, 0x8a, 0x0c,
+ 0x85, 0x36, 0xa0, 0x7c, 0xde, 0x71, 0x6d, 0xfd, 0x15, 0xec, 0x21, 0x28,
+ 0x6f, 0x33, 0xb7, 0x50,
+ 0x58, 0x76, 0x14, 0xee, 0x6b, 0xa7, 0x45, 0x57, 0x4a, 0xfc, 0xad, 0x05,
+ 0xd4, 0x3e, 0xcf, 0x0a,
+ 0x49, 0x51, 0x5e, 0x7f, 0x72, 0x9e, 0x6a, 0x90, 0xb3, 0x85, 0xb1, 0xf6,
+ 0x39, 0x3f, 0xbe, 0x2f,
+ 0xfa, 0x05, 0x5d, 0x88, 0x54, 0xa9, 0xab, 0xb3, 0xe2, 0x90, 0x66, 0x86,
+ 0x2a, 0x65, 0x3e, 0xcf,
+ 0x87, 0xe6, 0x92, 0xcc, 0x7e, 0x1c, 0x1f, 0x0b, 0x93, 0xd8, 0x55, 0xc5,
+ 0x3f, 0xb6, 0x21, 0x49,
+ 0x27, 0x45, 0xe9, 0x1a, 0xe1, 0x7f, 0x83, 0x19, 0xbd, 0x80, 0xea, 0xab,
+ 0x91, 0x68, 0x46, 0x95,
+ 0xe8, 0x9a, 0x3c, 0xf1, 0xbd, 0x2a, 0xcf, 0xf9, 0xde, 0xc7, 0x34, 0x0f,
+ 0xbf, 0x42, 0x92, 0x1e,
+ 0xf4, 0x70, 0xc3, 0x1e, 0xb2, 0x69, 0x36, 0x34, 0xf6, 0x1c, 0xe9, 0x40,
+ 0x59, 0x78, 0x5a, 0x80,
+ 0x5a, 0xa6, 0x26, 0x5e, 0xcb, 0xca, 0x37, 0xa1, 0xcc, 0xc8, 0xd9, 0xe8,
+ 0x84, 0xbb, 0x59, 0x13,
+ 0x66, 0xd2, 0x7f, 0xe0, 0x56, 0x96, 0xe2, 0xd7, 0x53, 0xd5, 0x48, 0x6f,
+ 0x2b, 0x06, 0xe5, 0xde,
+ 0xf0, 0x13, 0xa7, 0xbd, 0x31, 0xb3, 0xd2, 0x1b, 0x39, 0x74, 0x01, 0x59,
+ 0xf9, 0xb1, 0xb5, 0xb2,
+ 0xcb, 0xbc, 0xb1, 0x48, 0xdf, 0x8f, 0xa8, 0xcf, 0xac, 0x2f, 0x36, 0xbd,
+ 0x8e, 0xe3, 0x3b, 0xb9,
+ 0x0e, 0x75, 0x9e, 0x96, 0xe6, 0xc0, 0x9d, 0x87, 0x14, 0x8c, 0x8f, 0xc6,
+ 0x73, 0x1d, 0x64, 0x4f,
+ 0xe2, 0x8c, 0xc6, 0xc4, 0xd8, 0x30, 0xb6, 0x51, 0x05, 0x23, 0x53, 0xd0,
+ 0x6c, 0x96, 0x19, 0x63,
+ 0x57, 0x6b, 0x93, 0x20, 0xdd, 0xb0, 0xe1, 0xab, 0x1d, 0x6a, 0x18, 0x54,
+ 0x8f, 0x80, 0xe0, 0xa8,
+ 0xc4, 0xa1, 0x36, 0x86, 0x69, 0x98, 0x0c, 0x33, 0xfb, 0xb9, 0x83, 0xec,
+ 0xd5, 0x5d, 0x14, 0x1b,
+ 0x9b, 0x0c, 0x6d, 0x23, 0x71, 0x5f, 0xe6, 0xc6, 0xbb, 0x03, 0x88, 0x8a,
+ 0xd9, 0x8c, 0xe9, 0xd7,
+ 0xee, 0x29, 0x6a, 0xe2, 0x9e, 0x9d, 0x59, 0x20, 0x97, 0x9b, 0xa8, 0xfb,
+ 0x4f, 0x0e, 0xeb, 0x35,
+ 0x1a, 0x59, 0xa9, 0xfc, 0x2c, 0xf4, 0x6f, 0x14, 0x61, 0x87, 0x41, 0xbb,
+ 0x16, 0x76, 0xb1, 0xb5,
+ 0x37, 0x0a, 0xba, 0xd3, 0xa8, 0x91, 0x95, 0xa5, 0x07, 0xe3, 0xcc, 0xcf,
+ 0x54, 0xca, 0x7c, 0x5d,
+ 0x2e, 0xeb, 0x38, 0xc7, 0x74, 0xdf, 0xb1, 0x3c, 0xa3, 0x4a, 0xc3, 0x0e,
+ 0x3a, 0x9a, 0x10, 0x1c,
+ 0x69, 0xcf, 0xf8, 0x2e, 0xe0, 0x81, 0x46, 0x2b, 0x04, 0x43, 0xfd, 0x3e,
+ 0x70, 0xb8, 0xca, 0x7c,
+ 0x8b, 0x43, 0x3e, 0xea, 0x38, 0xb1, 0xf0, 0x7a, 0x01, 0x60, 0xae, 0xee,
+ 0x1c, 0x2e, 0xd3, 0x1f,
+ 0xaf, 0xbe, 0xfc, 0x18, 0x29, 0x74, 0x38, 0xee, 0x79, 0xce, 0x0a, 0x3f,
+ 0xf5, 0x60, 0x48, 0x7e,
+ 0xc2, 0x12, 0x60, 0x95, 0x4a, 0x2f, 0x9a, 0xea, 0xb2, 0xe5, 0x1f, 0x18,
+ 0x25, 0x11, 0x6d, 0x30,
+ 0x7f, 0x33, 0xfd, 0xf4, 0x8a, 0xd8, 0xc6, 0x4e, 0xf7, 0x7c, 0x47, 0xae,
+ 0x45, 0x56, 0x89, 0x9f,
+ 0x64, 0x02, 0x4d, 0x50, 0xf6, 0xfb, 0x90, 0x21, 0xd5, 0xe1, 0x3c, 0x82,
+ 0x7b, 0x83, 0x73, 0xc7,
+ 0x45, 0xf4, 0xf2, 0x59, 0x34, 0x33, 0x85, 0xe1, 0x21, 0x3d, 0x4a, 0xdd,
+ 0x1a, 0xa7, 0x4c, 0x79,
+ 0x14, 0x2c, 0x37, 0x6a, 0xca, 0x34, 0xf2, 0x93, 0x75, 0x0b, 0xce, 0x7d,
+ 0x65, 0x6b, 0xd5, 0xfa,
+ 0xfd, 0xde, 0x12, 0xc3, 0x27, 0xc9, 0x04, 0x11, 0xe8, 0xd6, 0xc0, 0xe5,
+ 0xf2, 0x8a, 0x0c, 0x09,
+ 0xac, 0x06, 0xd7, 0xf0, 0xd9, 0xce, 0x73, 0x63, 0xbc, 0xe0, 0x44, 0x45,
+ 0x8d, 0x46, 0x95, 0x8a,
+ 0x86, 0x8e, 0x8b, 0x94, 0x2e, 0xcb, 0x26, 0x70, 0xd0, 0xc2, 0x6f, 0x52,
+ 0x17, 0x15, 0x6a, 0xa4,
+ 0x76, 0x9d, 0x2c, 0x29, 0x1f, 0x78, 0xf4, 0x6b, 0xe9, 0xb6, 0x6e, 0x0b,
+ 0xee, 0xa4, 0xdf, 0x16,
+ 0x43, 0x47, 0xa4, 0x4a, 0x17, 0x84, 0x13, 0x38, 0x68, 0x61, 0xd6, 0x29,
+ 0xea, 0xeb, 0x35, 0x52,
+ 0x50, 0xb0, 0xdc, 0x6b, 0xae, 0xd0, 0x4e, 0x09, 0x17, 0x2c, 0xbe, 0x37,
+ 0x57, 0x6f, 0xd2, 0x6e,
+ 0x28, 0x58, 0x6e, 0xd4, 0x57, 0x68, 0x27, 0xe5, 0xea, 0x16, 0x5f, 0xfa,
+ 0xca, 0xd6, 0x69, 0x37,
+ 0xaa, 0xb5, 0x81, 0xe3, 0xfa, 0x79, 0xe5, 0xba, 0xf5, 0xbc, 0xd8, 0xb1,
+ 0x7d, 0x0a, 0xec, 0xa1,
+ 0x5e, 0xc5, 0x42, 0xfd, 0x48, 0x10, 0xd3, 0x8e, 0x03, 0xa0, 0x31, 0xf1,
+ 0x24, 0x72, 0xb6, 0x21,
+ 0xdd, 0x40, 0xb4, 0x92, 0xb5, 0xd6, 0x28, 0xaa, 0x5f, 0x10, 0x8c, 0x2d,
+ 0xbb, 0x0d, 0x78, 0x5a,
+ 0xbb, 0x92, 0xcb, 0x72, 0xe3, 0x40, 0xca, 0x7d, 0x0c, 0xc5, 0xc4, 0x42,
+ 0x90, 0x0b, 0x9d, 0x84,
+ 0x96, 0xc1, 0xd8, 0x5d, 0x67, 0x25, 0x30, 0xcc, 0x6a, 0xa1, 0x49, 0x36,
+ 0xd2, 0xb7, 0x50, 0x6c,
+ 0x05, 0x0b, 0x7d, 0xfb, 0xd3, 0x0d, 0xdd, 0x54, 0x8c, 0x72, 0xd2, 0x8e,
+ 0x88, 0x6a, 0xa4, 0xdf,
+ 0x7b, 0x50, 0x99, 0x57, 0x09, 0x02, 0x22, 0x61, 0x38, 0x14, 0xaf, 0xb7,
+ 0xe5, 0x9f, 0x66, 0xad,
+ 0xf6, 0xa0, 0xf1, 0xae, 0x12, 0x04, 0x44, 0xc2, 0x70, 0x28, 0x9d, 0xad,
+ 0x09, 0xfd, 0xcc, 0x99,
+ 0x2b, 0xe0, 0x45, 0x3c, 0xa7, 0xd2, 0x6c, 0x68, 0x2f, 0x38, 0x11, 0x80,
+ 0xb2, 0xf0, 0xb4, 0xc3,
+ 0x09, 0xae, 0xd1, 0xdd, 0x95, 0xa0, 0x32, 0x25, 0x1e, 0xca, 0x29, 0xa5,
+ 0xab, 0xf2, 0x56, 0x89,
+ 0xc7, 0x19, 0x1d, 0x6e, 0x99, 0x22, 0x47, 0xbe, 0x3e, 0x97, 0xcd, 0x96,
+ 0xad, 0x7b, 0xc9, 0xef,
+ 0x46, 0x4c, 0xd9, 0xb1, 0xc4, 0x89, 0xce, 0x6c, 0xe4, 0x13, 0x04, 0xa7,
+ 0x62, 0x81, 0x91, 0x8d,
+ 0x0d, 0xcd, 0xb5, 0x7e, 0x16, 0x7a, 0xd6, 0x0a, 0xd1, 0xa2, 0xc1, 0xbc,
+ 0x0b, 0x3b, 0xb9, 0xbb,
+ 0x13, 0xf7, 0x78, 0x21, 0xb9, 0x54, 0x5d, 0x31, 0x7f, 0x4d, 0x68, 0x1e,
+ 0xbd, 0x84, 0xe7, 0x3c,
+ 0x61, 0x09, 0x30, 0xab, 0x25, 0xf6, 0x4d, 0x75, 0x59, 0x93, 0xee, 0x0c,
+ 0xf3, 0xe9, 0xd7, 0x18,
+ 0x01, 0x68, 0x19, 0x58, 0x50, 0xd7, 0x39, 0x7b, 0x43, 0x1a, 0x3a, 0x97,
+ 0x28, 0xa3, 0x4b, 0xed,
+ 0xef, 0x41, 0x73, 0xba, 0xce, 0x4a, 0x60, 0x5b, 0xd4, 0x81, 0x92, 0x6c,
+ 0x67, 0xad, 0xa0, 0xd8,
+ 0x8d, 0xf0, 0x68, 0xf9, 0x1b, 0x06, 0x66, 0xa3, 0x48, 0x3c, 0x32, 0x1a,
+ 0xec, 0x62, 0xaa, 0x34,
+ 0xd3, 0x35, 0x2a, 0x04, 0x53, 0x16, 0xb5, 0x2d, 0x4b, 0x9c, 0x03, 0xeb,
+ 0xc8, 0x10, 0x1c, 0x15,
+ 0xbc, 0x49, 0x84, 0x39, 0x90, 0x20, 0x65, 0xdf, 0x06, 0x83, 0x62, 0x21,
+ 0x48, 0xe4, 0xaf, 0x42,
+ 0xf1, 0x7b, 0xbe, 0xe5, 0x61, 0x64, 0xeb, 0x60, 0x7a, 0x6e, 0x3b, 0xce,
+ 0xd1, 0x12, 0xfe, 0x5f,
+ 0x32, 0x01, 0xc7, 0x28, 0x7b, 0x9c, 0x48, 0xf1, 0x8b, 0x91, 0x1e, 0x41,
+ 0xdc, 0xa0, 0xd8, 0x82,
+ 0x5c, 0x15, 0x70, 0x4d, 0xe8, 0x7d, 0xa1, 0x78, 0x85, 0x94, 0x45, 0x1c,
+ 0x74, 0xf7, 0x20, 0x38,
+ 0x02, 0xd0, 0x32, 0xb0, 0xa0, 0x6d, 0x72, 0xf6, 0x86, 0x34, 0x74, 0xed,
+ 0x50, 0x85, 0x96, 0x19,
+ 0xb1, 0x84, 0x31, 0x47, 0x86, 0x5a, 0xb3, 0xd5, 0xd7, 0x21, 0xa3, 0x9d,
+ 0x43, 0xdf, 0x16, 0xf9,
+ 0x56, 0x03, 0x8a, 0x78, 0x8d, 0x67, 0xd8, 0xd0, 0x5e, 0x70, 0x22, 0xc3,
+ 0xa7, 0x23, 0xab, 0x45,
+ 0x51, 0xd8, 0xc5, 0x33, 0xfe, 0x07, 0x77, 0x72, 0x54, 0x36, 0x84, 0xa0,
+ 0x7f, 0xcc, 0x99, 0x83,
+ 0xc9, 0x6c, 0x83, 0xf8, 0x7f, 0xe2, 0xda, 0x39, 0x2a, 0x1b, 0x42, 0x50,
+ 0xde, 0x66, 0xad, 0xa0,
+ 0xd6, 0x3e, 0x57, 0xff, 0x80, 0x1b, 0x68, 0x79, 0xc7, 0xee, 0xd1, 0x65,
+ 0x40, 0x7a, 0xb8, 0xca,
+ 0x4e, 0x8a, 0x11, 0x34, 0x01, 0xfe, 0xc5, 0x32, 0xb9, 0xc3, 0x17, 0x95,
+ 0xe1, 0xd0, 0x8c, 0xe9,
+ 0xc8, 0x04, 0x9a, 0xa0, 0x2f, 0x35, 0xe3, 0x42, 0x69, 0x01, 0x78, 0xc7,
+ 0xf6, 0xc5, 0xe6, 0x4d,
+ 0xa0, 0xa3, 0x7b, 0xd6, 0x9f, 0x63, 0x9c, 0x12, 0x2e, 0x58, 0xbf, 0x6e,
+ 0xae, 0xde, 0x67, 0xdc,
+ 0x31, 0xb9, 0xec, 0xc0, 0x8b, 0x26, 0x03, 0x7c, 0x4e, 0xbf, 0x50, 0x3b,
+ 0xa4, 0x86, 0x05, 0x76,
+ 0x22, 0x4e, 0x94, 0xe1, 0x32, 0x72, 0x5e, 0x4d, 0x31, 0xf2, 0x38, 0x25,
+ 0x19, 0x02, 0xe2, 0x4a,
+ 0xa5, 0xa8, 0x06, 0x2d, 0x4c, 0x6e, 0x41, 0x46, 0xa2, 0x2a, 0x6d, 0xe0,
+ 0x26, 0xb4, 0xc3, 0x03,
+ 0x17, 0x94, 0x1c, 0x82, 0x3a, 0x8e, 0xb9, 0x1e, 0xb0, 0x25, 0x80, 0x07,
+ 0x1d, 0x4d, 0x08, 0x0e,
+ 0x33, 0x69, 0xde, 0x70, 0x2b, 0x4b, 0x71, 0x8a, 0xc8, 0x8b, 0x24, 0xd6,
+ 0xf4, 0x03, 0x93, 0x6f,
+ 0x94, 0x11, 0xea, 0xed, 0xc7, 0x48, 0x42, 0x3a, 0xec, 0x95, 0x3d, 0xdb,
+ 0x82, 0x32, 0xc6, 0x75,
+ 0xeb, 0x22, 0x17, 0x19, 0x4d, 0x90, 0x84, 0x74, 0x1b, 0xe9, 0x7a, 0x75,
+ 0xc7, 0x64, 0x4f, 0xea,
+ 0x84, 0x5e, 0xb9, 0x24, 0x8e, 0xa6, 0x54, 0x86, 0x56, 0xf6, 0x1b, 0xbf,
+ 0x47, 0x90, 0xfc, 0xbd,
+ 0x08, 0xc6, 0xc8, 0x85, 0xc5, 0x77, 0x0b, 0x5e, 0x5d, 0xd0, 0x13, 0x32,
+ 0x83, 0x51, 0x1d, 0x64,
+ 0x25, 0x95, 0xdb, 0xaa, 0x41, 0x12, 0xf1, 0xef, 0x3b, 0xb4, 0x9e, 0x46,
+ 0xc1, 0xed, 0xd0, 0x8c,
+ 0xf9, 0xbd, 0x76, 0x60, 0xa4, 0x13, 0xe0, 0x3e, 0x27, 0xbe, 0x28, 0xfc,
+ 0x52, 0x43, 0xe3, 0x3b,
+ 0x39, 0x7f, 0x24, 0x45, 0x4e, 0x51, 0x08, 0x22, 0x13, 0x6f, 0x43, 0x09,
+ 0x27, 0xd7, 0x18, 0x12,
+ 0x60, 0x61, 0x29, 0xf3, 0x75, 0x21, 0x74, 0x0e, 0x1a, 0x89, 0xd4, 0x9b,
+ 0xdb, 0x4a, 0x9c, 0xf5,
+ 0xb2, 0x3c, 0x1a, 0xaf, 0x76, 0xe0, 0xf8, 0x58, 0x12, 0x0f, 0xed, 0xe7,
+ 0x3b, 0xf9, 0xcb, 0x0d,
+ 0xd4, 0xee, 0x65, 0x4f, 0x20, 0x76, 0x1a, 0x8f, 0x41, 0xda, 0xa5, 0x88,
+ 0x10, 0xff, 0x2e, 0xd3,
+ 0x6f, 0x7c, 0xae, 0x3d, 0xc3, 0x36, 0xd0, 0xf2, 0x4d, 0x1f, 0x61, 0xca,
+ 0x80, 0xf4, 0xb3, 0x57,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x6d, 0xac, 0x9c, 0x8d, 0x63, 0x5b, 0xa2, 0x04, 0xcb, 0x2b, 0x15, 0x27,
+ 0xd0, 0x71, 0x25, 0x4e,
+ 0xa1, 0xcb, 0x62, 0x8e, 0xcf, 0xb4, 0xa5, 0x69, 0x6d, 0x42, 0x85, 0xf9,
+ 0x86, 0x7d, 0x2c, 0x31,
+ 0x12, 0x9f, 0x61, 0x79, 0xe9, 0x83, 0x64, 0x4a, 0x3c, 0x57, 0x52, 0x89,
+ 0x95, 0x27, 0xac, 0xd1,
+ 0xd8, 0x4b, 0xc9, 0x69, 0x66, 0xdb, 0xf5, 0xfe, 0xd3, 0x62, 0x5e, 0xa3,
+ 0x33, 0x67, 0xdc, 0x85,
+ 0xa3, 0x1b, 0x50, 0x3e, 0x6f, 0xd9, 0xd7, 0x9f, 0xeb, 0x76, 0xf1, 0x14,
+ 0xd6, 0xf8, 0xba, 0x28,
+ 0xa4, 0xc0, 0x1f, 0x75, 0x1c, 0xb9, 0x78, 0x3d, 0xe1, 0x30, 0x57, 0x77,
+ 0x0e, 0x17, 0x88, 0xee,
+ 0xcf, 0xdf, 0xd5, 0xeb, 0x5c, 0x55, 0x4c, 0xe0, 0x63, 0x47, 0xde, 0xa4,
+ 0x2e, 0x2a, 0xd4, 0x8b,
+ 0x9a, 0x64, 0x74, 0x7b, 0x21, 0x88, 0xdf, 0xbd, 0xf8, 0x19, 0xb2, 0x1d,
+ 0xf1, 0x2f, 0xa2, 0x3a,
+ 0xcc, 0x67, 0xfe, 0x03, 0xac, 0xef, 0x07, 0x6d, 0xa6, 0x69, 0x90, 0xde,
+ 0x56, 0x0c, 0x09, 0x7f,
+ 0x52, 0x60, 0xee, 0xdb, 0x0e, 0xbd, 0x3c, 0xff, 0x91, 0x18, 0xca, 0xda,
+ 0x07, 0xea, 0x44, 0x77,
+ 0x1c, 0xea, 0xff, 0xef, 0x0f, 0x43, 0xf9, 0xcd, 0x28, 0xdb, 0xdd, 0x4f,
+ 0xe6, 0x3a, 0xc8, 0x9e,
+ 0x2f, 0x83, 0x21, 0x9f, 0x24, 0x08, 0x88, 0x47, 0xe0, 0x50, 0xf9, 0x99,
+ 0x12, 0x39, 0x5b, 0xf1,
+ 0x7e, 0x5b, 0xe4, 0xac, 0xda, 0x0f, 0xff, 0x35, 0xb4, 0x66, 0x7d, 0x39,
+ 0x6d, 0xf5, 0xc2, 0x72,
+ 0x93, 0xca, 0xa5, 0xa6, 0xb4, 0x28, 0xed, 0x98, 0xe6, 0xd3, 0x9b, 0xb8,
+ 0x5a, 0xdd, 0xf4, 0xb3,
+ 0x42, 0x2f, 0xbd, 0x12, 0x47, 0x53, 0x2a, 0x43, 0x2b, 0x7b, 0xec, 0xbe,
+ 0xc2, 0x48, 0x7e, 0xbf,
+ 0xb3, 0x54, 0x03, 0xf7, 0x26, 0x37, 0xc1, 0x23, 0x51, 0x15, 0xd7, 0x70,
+ 0x13, 0x5a, 0x80, 0xe0,
+ 0x18, 0x89, 0x9b, 0x4c, 0x8c, 0x99, 0x1d, 0xe2, 0xe7, 0xb3, 0x35, 0x56,
+ 0x46, 0xf3, 0x27, 0xac,
+ 0xb8, 0x2a, 0xe0, 0x9a, 0x13, 0xfa, 0x81, 0xf0, 0xc9, 0xeb, 0x8a, 0x38,
+ 0xe8, 0x2d, 0x40, 0x70,
+ 0xfc, 0xb6, 0x0b, 0x9b, 0x77, 0x1e, 0x3d, 0x6a, 0xab, 0xcc, 0xfa, 0x72,
+ 0xda, 0x29, 0x47, 0xe4,
+ 0x44, 0x9c, 0xeb, 0x01, 0x64, 0xe4, 0xbc, 0x9a, 0x62, 0x27, 0x70, 0x4a,
+ 0x32, 0x04, 0x07, 0x94,
+ 0xe6, 0xef, 0xa2, 0x67, 0x5b, 0xea, 0x52, 0x7e, 0xca, 0x4b, 0xbb, 0xc9,
+ 0xcc, 0x5f, 0xf6, 0x51,
+ 0x8c, 0x98, 0x71, 0xa1, 0x4b, 0xd1, 0x5f, 0xd8, 0x0b, 0x26, 0x08, 0x8d,
+ 0xc4, 0xc1, 0xe1, 0xd9,
+ 0xc6, 0x71, 0x04, 0x36, 0xc9, 0xf5, 0x7e, 0xc5, 0x7d, 0x8d, 0xf7, 0x01,
+ 0x85, 0xd8, 0x82, 0x02,
+ 0x63, 0xd9, 0x02, 0x1b, 0x85, 0x9b, 0x3f, 0x83, 0xdf, 0xa7, 0x9a, 0xe1,
+ 0xa3, 0x6c, 0x41, 0x01,
+ 0xbf, 0xf1, 0xaf, 0xd1, 0x60, 0x9a, 0x2e, 0x52, 0xc3, 0xad, 0x2c, 0x5b,
+ 0x30, 0xc2, 0x72, 0xb6,
+ 0xf2, 0xc3, 0x95, 0x0d, 0x91, 0xde, 0xa0, 0xed, 0xbf, 0x40, 0x75, 0xb4,
+ 0xa9, 0x34, 0x23, 0xab,
+ 0x2c, 0x3b, 0x0a, 0x77, 0xd4, 0xb2, 0xc3, 0xca, 0x25, 0x7e, 0xb7, 0xe3,
+ 0x6a, 0x1f, 0x86, 0x05,
+ 0x11, 0x27, 0x4a, 0x91, 0x19, 0x39, 0x2f, 0xc7, 0xf9, 0x79, 0x1c, 0xf3,
+ 0xed, 0x01, 0x71, 0x25,
+ 0x73, 0x96, 0x51, 0xd2, 0xcc, 0x75, 0x29, 0x3f, 0x65, 0xc4, 0xbc, 0x85,
+ 0x66, 0xce, 0x7b, 0xc9,
+ 0xdc, 0x28, 0xad, 0xca, 0xe5, 0x01, 0x11, 0xd1, 0x1c, 0x0a, 0xb6, 0xba,
+ 0x93, 0xae, 0x33, 0xb7,
+ 0xd9, 0x23, 0xd0, 0x31, 0x36, 0x0c, 0xcc, 0x85, 0x90, 0x78, 0x64, 0x34,
+ 0x1b, 0xc4, 0x97, 0x68,
+ 0x92, 0xa2, 0xbc, 0xfe, 0xe4, 0xff, 0xd4, 0xe3, 0xa5, 0xc9, 0xa1, 0x2f,
+ 0x72, 0x7e, 0xbf, 0x5e,
+ 0x3e, 0xa4, 0x6b, 0x0e, 0x3d, 0x31, 0xa7, 0x80, 0x19, 0x29, 0xe5, 0x6a,
+ 0xff, 0x38, 0x2a, 0xd4,
+ 0xd2, 0x5d, 0x33, 0x5c, 0x03, 0xc1, 0x8c, 0x56, 0x08, 0x86, 0x39, 0x7c,
+ 0xe0, 0xb3, 0x57, 0xf8,
+ 0x59, 0x1e, 0x0d, 0xb6, 0x3b, 0x70, 0x7c, 0x2c, 0x09, 0xe6, 0x97, 0x92,
+ 0xfc, 0x9d, 0x84, 0xe7,
+ 0x75, 0x25, 0x07, 0xc1, 0xef, 0xc2, 0xbf, 0xe6, 0x2c, 0x98, 0x20, 0x71,
+ 0x96, 0x82, 0x02, 0xe2,
+ 0x19, 0xe1, 0x82, 0x14, 0xdc, 0x4e, 0x24, 0x99, 0xa4, 0xa9, 0x0f, 0xc1,
+ 0x6e, 0x50, 0x6c, 0x41,
+ 0xb4, 0x8f, 0x4c, 0xbc, 0x55, 0x57, 0x6e, 0x81, 0x5b, 0x53, 0x71, 0x13,
+ 0xcb, 0xb5, 0xb2, 0x26,
+ 0x81, 0x55, 0xc4, 0xdf, 0x5d, 0xab, 0x89, 0xd2, 0xda, 0x84, 0xc9, 0x31,
+ 0xcf, 0xfa, 0x58, 0x62,
+ 0xe4, 0x3f, 0x90, 0xd7, 0xfb, 0x87, 0x20, 0x88, 0x4c, 0x7f, 0xcf, 0x24,
+ 0x9c, 0xda, 0x60, 0x48,
+ 0xe5, 0x57, 0x89, 0x8f, 0xab, 0x50, 0x19, 0xf3, 0x0f, 0x65, 0xf5, 0xb3,
+ 0xb4, 0x79, 0x2b, 0xa5,
+ 0x0f, 0x1d, 0x87, 0xce, 0xb6, 0x17, 0xa4, 0xfc, 0x57, 0x96, 0xb5, 0x51,
+ 0x5b, 0xbe, 0x2f, 0xa2,
+ 0x47, 0x24, 0xc0, 0xe9, 0x94, 0x5e, 0xf7, 0x17, 0xa7, 0x09, 0x3e, 0x30,
+ 0x4a, 0x22, 0xda, 0x60,
+ 0x9c, 0xd7, 0x22, 0x68, 0x02, 0x3f, 0x49, 0x64, 0xb1, 0x45, 0x2e, 0xe9,
+ 0x01, 0x63, 0xdb, 0x11,
+ 0x2a, 0x88, 0x5c, 0x64, 0xf7, 0x05, 0x55, 0x13, 0x6c, 0x22, 0x2b, 0x17,
+ 0x9a, 0x53, 0xff, 0x2e,
+ 0xa8, 0x65, 0xb3, 0x53, 0x5a, 0x14, 0x97, 0x4c, 0x73, 0x88, 0xac, 0x5c,
+ 0x2d, 0x8f, 0x7a, 0xb8,
+ 0x5b, 0xce, 0x3f, 0x06, 0x9b, 0x1d, 0x0e, 0xda, 0x8f, 0xd2, 0xe3, 0x7f,
+ 0xac, 0x18, 0x12, 0xfe,
+ 0x8f, 0x20, 0x5a, 0x49, 0xbb, 0x6b, 0x14, 0x55, 0xce, 0x08, 0x46, 0xf7,
+ 0xbc, 0xe7, 0x3c, 0x2d,
+ 0x04, 0x63, 0x64, 0xa3, 0x83, 0xda, 0xe4, 0x2f, 0xcf, 0x68, 0xe8, 0x19,
+ 0xa0, 0xc9, 0xef, 0x32,
+ 0xa6, 0x10, 0x2d, 0xc5, 0xbc, 0xd4, 0x0a, 0xcb, 0x67, 0x04, 0x23, 0x9a,
+ 0x5e, 0x92, 0x1e, 0xf7,
+ 0x72, 0xfe, 0x48, 0x8a, 0x9c, 0xa2, 0x10, 0x44, 0x26, 0xde, 0x86, 0x12,
+ 0x4e, 0x6d, 0x30, 0x24,
+ 0xba, 0xfa, 0xd2, 0x2a, 0xb3, 0x97, 0xf3, 0x06, 0x4f, 0xdf, 0xfe, 0xd5,
+ 0xb8, 0xa8, 0xd6, 0x69,
+ 0x30, 0xd1, 0xf5, 0x98, 0xdb, 0xf1, 0x3a, 0x07, 0x0d, 0xa5, 0x6a, 0xac,
+ 0x8c, 0x25, 0x4e, 0x9b,
+ 0x4c, 0x5a, 0x23, 0x84, 0xa1, 0x93, 0xb7, 0xc4, 0x3f, 0xf7, 0x63, 0x78,
+ 0xb1, 0x55, 0x1a, 0xf0,
+ 0x82, 0xed, 0xef, 0x37, 0xad, 0x11, 0xc2, 0x5f, 0x1f, 0xaa, 0x87, 0x4b,
+ 0xb7, 0xdc, 0x85, 0x96,
+ 0x6a, 0x77, 0xd3, 0xc6, 0x10, 0x3b, 0x0d, 0xa6, 0xc1, 0x6d, 0xb3, 0x44,
+ 0x08, 0x9e, 0x17, 0x88,
+ 0x88, 0xfb, 0x15, 0x02, 0xc8, 0x0b, 0xbb, 0xf7, 0xc4, 0x4e, 0xe0, 0x94,
+ 0x64, 0x08, 0x0e, 0xeb,
+ 0x3c, 0x74, 0x59, 0xbe, 0x9d, 0x5c, 0xd5, 0x76, 0x9f, 0x1d, 0x91, 0x87,
+ 0xaf, 0xbd, 0xbc, 0xcd,
+ 0x6e, 0x14, 0xb7, 0x65, 0x93, 0xe1, 0xe9, 0x89, 0x0e, 0x05, 0x5b, 0x5d,
+ 0xa8, 0x57, 0xf8, 0xba,
+ 0x0b, 0x7e, 0xe3, 0x6d, 0x35, 0xcd, 0x40, 0xd3, 0x98, 0xfe, 0x5d, 0x48,
+ 0xfb, 0x77, 0xc0, 0x90,
+ 0x9e, 0x07, 0x10, 0xd8, 0xa2, 0x52, 0x3b, 0x92, 0x37, 0x71, 0x5a, 0x04,
+ 0x51, 0xe6, 0x4d, 0x08,
+ 0x68, 0xa7, 0xe1, 0x76, 0xb0, 0x56, 0x7f, 0x50, 0x47, 0x59, 0xc7, 0xa9,
+ 0x58, 0x1b, 0x81, 0x91,
+ 0x67, 0xba, 0x66, 0xb8, 0x06, 0x41, 0xdb, 0xac, 0x10, 0xcf, 0x72, 0xf8,
+ 0x03, 0xa5, 0xae, 0x33,
+ 0xc5, 0xc9, 0x2f, 0xde, 0x39, 0x4f, 0x35, 0x48, 0xb8, 0xa3, 0xb9, 0x7b,
+ 0xfd, 0xfe, 0x5f, 0xf6,
+ 0x74, 0x4d, 0x1e, 0x99, 0xbf, 0x15, 0x86, 0x9d, 0x6f, 0x82, 0x1a, 0xe6,
+ 0xbe, 0x21, 0x49, 0x0f,
+ 0x40, 0xff, 0x8f, 0xa2, 0xe7, 0x3e, 0x58, 0xb5, 0xad, 0x4f, 0x98, 0x53,
+ 0x92, 0xcd, 0xe8, 0xa6,
+ 0x0c, 0xa5, 0xac, 0x26, 0x46, 0xad, 0xef, 0x71, 0x92, 0xb8, 0xfb, 0x2b,
+ 0x23, 0x98, 0xf2, 0x56,
+ 0xe7, 0x87, 0xbb, 0x3f, 0x0b, 0x3d, 0x6b, 0x05, 0x89, 0x51, 0x81, 0x5e,
+ 0xe4, 0xfc, 0xbd, 0xbc,
+ 0x9d, 0xbf, 0x3b, 0x30, 0x52, 0xe8, 0x70, 0x1f, 0xf2, 0x5f, 0x14, 0x7e,
+ 0x29, 0xc0, 0x90, 0xfc,
+ 0x90, 0x72, 0x8e, 0x4e, 0x44, 0x92, 0xa6, 0x15, 0x23, 0xfd, 0xd5, 0xc2,
+ 0x22, 0xfb, 0x29, 0x47,
+ 0x7a, 0x38, 0x80, 0x0f, 0x59, 0xd5, 0x1b, 0x1a, 0x7b, 0x0e, 0x95, 0x20,
+ 0xcd, 0x3c, 0x2d, 0x40,
+ 0x3a, 0xc7, 0x0f, 0xad, 0xbe, 0xeb, 0x43, 0xaf, 0xd6, 0x41, 0x0d, 0x73,
+ 0x5f, 0xf1, 0xc5, 0xe6,
+ 0x35, 0xda, 0x88, 0x63, 0x08, 0xfc, 0xe7, 0x53, 0x81, 0xd7, 0xb8, 0x22,
+ 0x04, 0x4f, 0xea, 0x44,
+ 0x34, 0xb2, 0x91, 0x3b, 0x58, 0x2b, 0xde, 0x28, 0xc2, 0xcd, 0x82, 0xb5,
+ 0x2c, 0xec, 0xa1, 0xa9,
+ 0x9f, 0x6f, 0x09, 0x80, 0xf2, 0x85, 0x02, 0xe9, 0x74, 0x6b, 0x60, 0x93,
+ 0x79, 0x45, 0x06, 0xe5,
+ 0xb7, 0x37, 0x67, 0x54, 0xa5, 0xed, 0x25, 0x0c, 0x9e, 0x7d, 0x3f, 0x69,
+ 0xb3, 0x93, 0x6f, 0xd2,
+ 0xf8, 0xd5, 0x6f, 0x38, 0xf4, 0xc4, 0xd9, 0x45, 0x64, 0xa4, 0x12, 0x6b,
+ 0x7a, 0xe0, 0xa8, 0xd6,
+ 0x4f, 0xe2, 0x08, 0x6c, 0x51, 0x29, 0xfc, 0x49, 0xfa, 0xd9, 0x2d, 0x02,
+ 0xc9, 0x73, 0xc7, 0x04,
+ 0x6b, 0x1f, 0xca, 0x9e, 0x40, 0xec, 0x34, 0xdd, 0x82, 0x77, 0x89, 0xd3,
+ 0x20, 0x3d, 0x5c, 0x65,
+ 0x83, 0x85, 0xf6, 0x6f, 0xfd, 0xc6, 0xfb, 0x24, 0x5c, 0xb0, 0xbd, 0xdc,
+ 0x9f, 0x7f, 0xce, 0x7b,
+ 0x5f, 0xad, 0x5b, 0xa5, 0x18, 0xc7, 0xea, 0xf5, 0x40, 0xba, 0x0b, 0x66,
+ 0x0c, 0xd1, 0xfd, 0xcc,
+ 0xa7, 0x78, 0x34, 0x9d, 0xec, 0x03, 0x33, 0xb0, 0x24, 0x1e, 0x19, 0x0d,
+ 0x76, 0x31, 0x55, 0x1a,
+ 0x1e, 0x3a, 0xcd, 0x5f, 0xaf, 0x2e, 0x8b, 0x3b, 0xae, 0xef, 0xa9, 0xa2,
+ 0xb6, 0xbf, 0x5e, 0x87,
+ 0x10, 0x4f, 0x53, 0xc9, 0x49, 0xee, 0x16, 0xbc, 0xba, 0x63, 0x26, 0x64,
+ 0xc5, 0xa2, 0x3a, 0xc8,
+ 0xc3, 0x7a, 0x79, 0xcd, 0x1a, 0xf8, 0xa3, 0x91, 0xf1, 0xff, 0x25, 0x8f,
+ 0x0d, 0xb2, 0x26, 0xdd,
+ 0x78, 0xe8, 0xb2, 0xbf, 0xf9, 0xb8, 0x69, 0xec, 0xfd, 0x3a, 0xe1, 0xcd,
+ 0x9d, 0xb9, 0xbb, 0x59,
+ 0x2d, 0x53, 0x13, 0x2f, 0x84, 0x65, 0xfa, 0xb1, 0x66, 0x64, 0x8d, 0x74,
+ 0x42, 0xbc, 0xcd, 0xe8,
+ 0x77, 0xf5, 0x35, 0x71, 0x4f, 0xaf, 0xcd, 0x10, 0xaa, 0xac, 0x54, 0x9c,
+ 0xc6, 0x07, 0x94, 0xfb,
+ 0xe3, 0xe4, 0xdf, 0x9c, 0x88, 0xe7, 0x8f, 0x2a, 0x46, 0x39, 0x69, 0x47,
+ 0x44, 0x35, 0x52, 0x8e,
+ 0x80, 0x3d, 0xdd, 0x87, 0x0d, 0x7c, 0xb0, 0xa9, 0x99, 0x9e, 0xf3, 0xa6,
+ 0xe7, 0x59, 0x13, 0x8f,
+ },
+ { /* 6 */
+ 0xa2, 0xc8, 0x81, 0xe2, 0x3b, 0xb3, 0xc2, 0x65, 0xc5, 0x23, 0x88, 0xa8,
+ 0x4b, 0xa0, 0x07, 0xfc,
+ 0x7e, 0x5e, 0xba, 0x73, 0x1f, 0x4c, 0x94, 0x8f, 0x72, 0xc4, 0x53, 0xb4,
+ 0x67, 0xfd, 0xe6, 0xee,
+ 0x65, 0xcf, 0x9b, 0x0b, 0x79, 0xd8, 0x3c, 0xc1, 0x2a, 0xfe, 0xa1, 0x96,
+ 0xda, 0xeb, 0x16, 0xdd,
+ 0x09, 0xce, 0x1f, 0x28, 0x22, 0xcd, 0xd9, 0x3a, 0x89, 0x16, 0xef, 0x1e,
+ 0x6b, 0xb3, 0x50, 0x11,
+ 0xb9, 0x59, 0xa0, 0x9a, 0x5d, 0x27, 0x6a, 0x2b, 0x9d, 0x19, 0x7a, 0x8a,
+ 0xf6, 0xb6, 0xf7, 0xcf,
+ 0xaa, 0x23, 0xa2, 0x8f, 0xdc, 0xda, 0x7c, 0x18, 0xa1, 0x08, 0x06, 0xf5,
+ 0x92, 0xb9, 0xdd, 0x6e,
+ 0x3c, 0x40, 0x19, 0x17, 0x62, 0x09, 0xe3, 0x6f, 0xcd, 0x25, 0x6b, 0x9f,
+ 0xc7, 0xa2, 0x2e, 0x31,
+ 0x92, 0xf7, 0x4b, 0x4f, 0x2c, 0x06, 0xc0, 0xa8, 0x5e, 0xd9, 0x2a, 0xa5,
+ 0xd8, 0xf6, 0x9e, 0x16,
+ 0x39, 0xf1, 0xd5, 0x85, 0x35, 0x78, 0xdb, 0xf7, 0x12, 0xec, 0x4d, 0x13,
+ 0xf8, 0xe5, 0xc9, 0xfb,
+ 0xf0, 0xc3, 0x64, 0x5c, 0x4b, 0x24, 0x0a, 0x7f, 0xb2, 0x94, 0x6f, 0x39,
+ 0x9a, 0xcd, 0xb8, 0xc4,
+ 0xcb, 0x78, 0xc9, 0x53, 0x37, 0xd7, 0x1f, 0x06, 0xb9, 0x02, 0xe0, 0xac,
+ 0xc5, 0xbf, 0xa6, 0xfa,
+ 0xfe, 0xf6, 0xcf, 0x6c, 0x77, 0x13, 0x25, 0x53, 0xfd, 0x31, 0x64, 0x2d,
+ 0x69, 0xae, 0xd8, 0xda,
+ 0xe0, 0xd6, 0x22, 0x86, 0x46, 0xf6, 0xb5, 0x85, 0x7a, 0xc2, 0xb0, 0x83,
+ 0xeb, 0xff, 0xcf, 0x23,
+ 0x02, 0x4a, 0x78, 0x8a, 0x49, 0x8b, 0xce, 0x8e, 0x19, 0x7a, 0xc2, 0x86,
+ 0xa7, 0x97, 0xd7, 0xc5,
+ 0x4e, 0x61, 0x70, 0xde, 0x08, 0xf9, 0x96, 0x42, 0xe9, 0x3e, 0xf1, 0xb9,
+ 0xf4, 0xab, 0x7f, 0x04,
+ 0x4a, 0xf5, 0x80, 0x09, 0x9a, 0x2c, 0xc9, 0x9d, 0xdb, 0xca, 0xb6, 0x76,
+ 0x79, 0x46, 0x12, 0x4d,
+ 0xe5, 0x67, 0xee, 0x14, 0x11, 0x87, 0x8d, 0x1d, 0xa5, 0x0b, 0x96, 0x0f,
+ 0xd4, 0xb8, 0x28, 0xe9,
+ 0x3f, 0x2f, 0x5d, 0xd8, 0xee, 0x26, 0x4a, 0xa6, 0x39, 0x62, 0xc8, 0x5a,
+ 0xd2, 0x9f, 0x73, 0x77,
+ 0x70, 0x6b, 0x11, 0x43, 0x23, 0x7b, 0xbb, 0xa3, 0x3d, 0x61, 0x58, 0xa0,
+ 0x94, 0x9e, 0x86, 0xf0,
+ 0x0c, 0x7f, 0xd3, 0xba, 0x75, 0xbc, 0xe1, 0xa2, 0x56, 0xdf, 0xc9, 0x92,
+ 0x54, 0xf4, 0xb7, 0xdb,
+ 0xfa, 0x62, 0x3f, 0xbb, 0xe5, 0xc6, 0x7a, 0x8c, 0xcf, 0xc5, 0x23, 0xe2,
+ 0xe4, 0x43, 0xb5, 0x93,
+ 0xc0, 0xfc, 0xae, 0xf1, 0x5c, 0x91, 0x08, 0xb2, 0x29, 0x6e, 0xcd, 0x34,
+ 0x09, 0x9b, 0x21, 0x2e,
+ 0x41, 0x71, 0xe7, 0xab, 0xf1, 0x6a, 0xde, 0x29, 0x4b, 0xa6, 0x9b, 0xee,
+ 0xb5, 0x62, 0x95, 0x99,
+ 0xa1, 0xa7, 0xc5, 0x2d, 0xb7, 0x9c, 0x6b, 0xac, 0x31, 0x64, 0x2b, 0x6d,
+ 0x5e, 0x9d, 0x5a, 0xba,
+ 0x60, 0x7e, 0x57, 0x99, 0x2e, 0xa9, 0x04, 0x59, 0xf5, 0x37, 0x87, 0x1a,
+ 0xe5, 0xac, 0xf1, 0x17,
+ 0xa7, 0x79, 0x4d, 0x70, 0x6c, 0xc2, 0xfa, 0xfd, 0x1a, 0xea, 0xae, 0x24,
+ 0x74, 0xe7, 0xe0, 0x36,
+ 0x82, 0xe2, 0x0d, 0x95, 0x21, 0xd4, 0x7f, 0x52, 0x96, 0x8f, 0xf5, 0x1f,
+ 0xa9, 0xc4, 0xe9, 0xf1,
+ 0x53, 0x2e, 0xd9, 0xfb, 0xb5, 0x33, 0xaf, 0x5d, 0x9a, 0x8a, 0x86, 0xd2,
+ 0x63, 0xc7, 0x35, 0xbb,
+ 0xb5, 0x26, 0x73, 0x20, 0x28, 0x9b, 0x8b, 0x89, 0xcb, 0xc6, 0xb3, 0x18,
+ 0xa2, 0x42, 0x40, 0x14,
+ 0x9e, 0x88, 0x98, 0xf5, 0x59, 0xba, 0x21, 0x0a, 0x08, 0x06, 0xe3, 0x37,
+ 0x8c, 0x02, 0x29, 0xcd,
+ 0x96, 0x63, 0xbb, 0x98, 0xbe, 0xd3, 0x9f, 0x77, 0x6c, 0x2d, 0x6d, 0x6a,
+ 0x55, 0x1b, 0xf3, 0x5f,
+ 0x4c, 0x2b, 0x08, 0x54, 0x41, 0x72, 0x58, 0xcc, 0xf0, 0x44, 0x33, 0x3f,
+ 0x53, 0x3c, 0xa8, 0xc1,
+ 0x1e, 0x20, 0xed, 0xea, 0x31, 0xe5, 0x90, 0xd6, 0x87, 0xf3, 0xd4, 0xae,
+ 0x82, 0x51, 0x17, 0xf9,
+ 0x67, 0x85, 0xe3, 0x81, 0x30, 0x53, 0xf2, 0x4f, 0x33, 0x84, 0x63, 0x10,
+ 0x7d, 0x7c, 0xc1, 0x18,
+ 0xe3, 0xb9, 0x66, 0x49, 0xca, 0xd9, 0x1c, 0x4c, 0x8e, 0x85, 0x13, 0x46,
+ 0xfe, 0xc2, 0x92, 0x65,
+ 0x2a, 0x8b, 0xd7, 0x90, 0xb4, 0x85, 0xcd, 0xc4, 0x2e, 0xfd, 0x31, 0x6c,
+ 0x9c, 0xea, 0xe3, 0x5a,
+ 0xac, 0xfd, 0x2a, 0xd2, 0x07, 0x84, 0xed, 0x49, 0x8a, 0x86, 0x83, 0xbc,
+ 0xb8, 0xc3, 0x67, 0xe2,
+ 0x43, 0x3b, 0x9f, 0x21, 0xb8, 0xe1, 0x10, 0xa7, 0x52, 0xdc, 0x59, 0x68,
+ 0x12, 0xf5, 0x42, 0x5c,
+ 0x8c, 0xd7, 0xa6, 0xa5, 0x1d, 0xe3, 0x50, 0x7e, 0xd9, 0x2a, 0xfe, 0x0b,
+ 0x5a, 0xa7, 0x89, 0xef,
+ 0xc7, 0x07, 0x1a, 0xe9, 0x42, 0x6b, 0xfe, 0xa4, 0xef, 0xdd, 0x29, 0x3e,
+ 0x91, 0x4b, 0x11, 0x21,
+ 0x26, 0xf4, 0x04, 0x2a, 0xc1, 0x39, 0x2c, 0x66, 0x78, 0x22, 0xf8, 0xfe,
+ 0xc8, 0x1e, 0x54, 0x81,
+ 0x29, 0xe4, 0x93, 0x5f, 0x38, 0xaa, 0x64, 0x0d, 0xda, 0xba, 0x92, 0xa9,
+ 0x89, 0xd7, 0xbe, 0x1c,
+ 0x1c, 0x6a, 0x95, 0x60, 0x78, 0x6e, 0x5e, 0x58, 0x9e, 0x89, 0x16, 0x28,
+ 0x25, 0xc6, 0xc0, 0x3c,
+ 0x4d, 0x0e, 0x34, 0x11, 0x84, 0xd6, 0x3f, 0x8b, 0x1d, 0x79, 0x52, 0x7c,
+ 0xe1, 0x96, 0x22, 0x42,
+ 0x9d, 0xe7, 0xdc, 0x3a, 0xd5, 0x95, 0x88, 0xc3, 0xfc, 0x41, 0x40, 0xf2,
+ 0x99, 0x3f, 0x74, 0x8b,
+ 0xf2, 0x89, 0x1c, 0xd6, 0x02, 0xaf, 0xc4, 0xf1, 0xab, 0xee, 0xad, 0xbf,
+ 0x3d, 0x5a, 0x6f, 0x01,
+ 0x21, 0x0f, 0xb0, 0x32, 0xdf, 0xc3, 0xda, 0x70, 0xbe, 0x91, 0x1c, 0xf4,
+ 0x50, 0xce, 0x64, 0x8e,
+ 0x6d, 0x24, 0xb8, 0x66, 0x9e, 0xb1, 0x82, 0xbc, 0x4e, 0xd5, 0x2f, 0xcb,
+ 0x03, 0xf2, 0xcc, 0x4f,
+ 0xbc, 0xe8, 0x6c, 0x08, 0x0a, 0x56, 0x52, 0xb3, 0x42, 0xd0, 0x5c, 0x06,
+ 0xc9, 0xf1, 0x10, 0x05,
+ 0x9a, 0x1c, 0x68, 0x22, 0xcb, 0x6f, 0x7e, 0xd5, 0x3a, 0xf2, 0xa4, 0xf8,
+ 0x01, 0xef, 0x44, 0x84,
+ 0x27, 0xd1, 0x38, 0x6f, 0x04, 0x9d, 0x4b, 0x21, 0x95, 0x1f, 0x99, 0xbd,
+ 0x7a, 0xb4, 0xde, 0x02,
+ 0x14, 0x81, 0xb6, 0x0d, 0x9f, 0x07, 0xe0, 0x25, 0xfa, 0xa2, 0x98, 0x75,
+ 0xfc, 0xdf, 0x1a, 0xae,
+ 0x5e, 0x74, 0x36, 0x04, 0x05, 0x2b, 0x29, 0xb8, 0x21, 0x68, 0x2e, 0x03,
+ 0x85, 0x99, 0x08, 0xe3,
+ 0xe4, 0x42, 0xd2, 0x51, 0xd4, 0x23, 0xea, 0x5a, 0x48, 0x36, 0xf7, 0x4c,
+ 0x66, 0x12, 0xa2, 0x6a,
+ 0xd3, 0x86, 0xac, 0xe4, 0xdd, 0x6c, 0x1e, 0x81, 0x15, 0x7f, 0xb1, 0x4b,
+ 0x6d, 0x94, 0x0b, 0x8f,
+ 0xe1, 0xf3, 0x1e, 0xc3, 0x83, 0x52, 0xd2, 0xc2, 0x97, 0xff, 0xd1, 0xc0,
+ 0x59, 0x55, 0x45, 0xa0,
+ 0x69, 0xb0, 0x48, 0xb1, 0x0c, 0x64, 0xdd, 0x63, 0x7c, 0x21, 0x68, 0x04,
+ 0x8e, 0x1f, 0xa1, 0x06,
+ 0x49, 0x9a, 0xc4, 0xc6, 0x16, 0x03, 0x60, 0x54, 0x2f, 0x8d, 0x15, 0xb3,
+ 0x6c, 0x7b, 0x4f, 0x0b,
+ 0xab, 0x06, 0x9e, 0xca, 0x19, 0x7e, 0x1b, 0x5f, 0x4c, 0x35, 0x67, 0xb6,
+ 0x20, 0x13, 0x57, 0xed,
+ 0xb3, 0xf8, 0xfb, 0x7d, 0xf3, 0xc5, 0x1a, 0xd8, 0xe0, 0x48, 0x36, 0x51,
+ 0x88, 0x38, 0xfa, 0x98,
+ 0xa3, 0xed, 0xbd, 0xa7, 0xfe, 0x17, 0xa5, 0x22, 0x28, 0x1e, 0xe9, 0xeb,
+ 0xf9, 0x0a, 0x8d, 0x7f,
+ 0x0b, 0x84, 0x67, 0xa2, 0x6b, 0x46, 0x17, 0xb4, 0x90, 0x6c, 0x2d, 0x98,
+ 0xcc, 0x24, 0x87, 0xd4,
+ 0x90, 0xbd, 0x33, 0xc5, 0x65, 0x8d, 0x0e, 0x26, 0x47, 0xa3, 0xe8, 0x23,
+ 0x7f, 0x61, 0x49, 0xd3,
+ 0xfc, 0xbc, 0xb7, 0xe6, 0x3e, 0x98, 0xeb, 0xdd, 0xe4, 0x4b, 0xa6, 0xab,
+ 0xce, 0x39, 0x0f, 0x1f,
+ 0xc2, 0xb6, 0xd6, 0x7b, 0x15, 0x1a, 0xc6, 0x3c, 0x30, 0x14, 0x0f, 0xb2,
+ 0xae, 0x0c, 0xf6, 0xeb,
+ 0x80, 0xa8, 0x75, 0x1f, 0x68, 0x5f, 0xb1, 0xdc, 0x8f, 0xf5, 0x37, 0x99,
+ 0x0e, 0x53, 0x3e, 0x34,
+ 0xe7, 0x2d, 0x96, 0x9e, 0x58, 0x0c, 0x43, 0x93, 0xbc, 0x71, 0x54, 0x89,
+ 0x73, 0x2f, 0xff, 0x2c,
+ 0x63, 0x11, 0x13, 0x56, 0xa2, 0x86, 0xad, 0x90, 0x01, 0x70, 0x24, 0xdf,
+ 0xf0, 0x91, 0xac, 0x51,
+ 0x30, 0x3f, 0xca, 0xad, 0x17, 0xb5, 0x02, 0xcd, 0x9b, 0xfa, 0xa2, 0x0d,
+ 0x93, 0x56, 0x99, 0xea,
+ 0x22, 0x60, 0xf4, 0xfd, 0x53, 0xec, 0x73, 0xb9, 0x4a, 0xd6, 0xbf, 0x31,
+ 0x45, 0xf3, 0x39, 0xc8,
+ 0xf6, 0x1d, 0xec, 0x01, 0x90, 0x7a, 0x9b, 0x2e, 0x99, 0x1a, 0xea, 0x70,
+ 0xb0, 0xb7, 0x02, 0x48,
+ 0xa8, 0x69, 0xda, 0x05, 0x95, 0x51, 0xb2, 0x96, 0xb8, 0x72, 0xc4, 0x73,
+ 0x35, 0x2e, 0x0a, 0xab,
+ 0x57, 0xba, 0x29, 0x2c, 0x27, 0xe6, 0xf0, 0x82, 0xa8, 0x7e, 0xc1, 0x1d,
+ 0xee, 0x2a, 0x58, 0xf2,
+ 0x8e, 0x9d, 0xde, 0x2f, 0x54, 0x68, 0x9e, 0xf0, 0xc0, 0x50, 0x3c, 0x8d,
+ 0xfd, 0x30, 0x5e, 0x2a,
+ 0xc3, 0x93, 0xea, 0x3e, 0xd0, 0xbe, 0xa1, 0x7b, 0xdd, 0x29, 0x6e, 0xf1,
+ 0x1c, 0xa6, 0x7c, 0x68,
+ 0xc6, 0x22, 0x26, 0xac, 0x87, 0xcf, 0x99, 0xe3, 0x02, 0xe0, 0x48, 0x7d,
+ 0x23, 0xe1, 0x9b, 0xa2,
+ 0x50, 0x41, 0x9d, 0x34, 0x39, 0x1c, 0x06, 0x94, 0x6e, 0xcd, 0x25, 0x17,
+ 0x76, 0xfa, 0x68, 0xfd,
+ 0x75, 0xda, 0xdd, 0xd1, 0x74, 0x0a, 0x83, 0x3b, 0xe2, 0xa8, 0x7e, 0x2c,
+ 0xab, 0xd9, 0x61, 0x3a,
+ 0x4b, 0xd0, 0xbc, 0x4c, 0x5f, 0x88, 0xae, 0xda, 0x36, 0xf7, 0xd7, 0x35,
+ 0xcb, 0xec, 0x98, 0xce,
+ 0x6c, 0x01, 0x84, 0x23, 0x5b, 0x15, 0xe5, 0xfb, 0xa3, 0xe8, 0x4e, 0x88,
+ 0xb1, 0x58, 0x46, 0xcc,
+ 0xa6, 0x5c, 0x71, 0x35, 0xa9, 0x66, 0x9d, 0xba, 0xf7, 0xd7, 0xcf, 0x67,
+ 0xc6, 0x4d, 0x6a, 0xb5,
+ 0xa4, 0x16, 0x09, 0xbf, 0xe0, 0xed, 0x53, 0x34, 0xee, 0xad, 0x0d, 0xe1,
+ 0x61, 0xda, 0xbd, 0x70,
+ 0xf5, 0x72, 0xa8, 0xce, 0x1c, 0x55, 0x32, 0xe7, 0x6d, 0x5d, 0x49, 0xb5,
+ 0xa5, 0x8a, 0x5f, 0x0e,
+ 0xf8, 0x28, 0x47, 0x31, 0xac, 0x4d, 0xb4, 0x02, 0xd6, 0xbf, 0xe1, 0x64,
+ 0x43, 0xd4, 0x62, 0x56,
+ 0x9c, 0xc2, 0xe0, 0x7f, 0x10, 0x31, 0xef, 0x84, 0x11, 0x7c, 0x21, 0xb1,
+ 0x2b, 0x95, 0xfe, 0x08,
+ 0xd2, 0xa3, 0x90, 0xa1, 0x18, 0xc8, 0x79, 0xc6, 0xf8, 0x42, 0xd0, 0x08,
+ 0xdf, 0x3e, 0x81, 0x0c,
+ 0xcd, 0xa6, 0x41, 0x0e, 0xec, 0x89, 0x8e, 0x57, 0x92, 0x8c, 0x65, 0xe5,
+ 0xef, 0xc5, 0x1c, 0x76,
+ 0xdc, 0x96, 0x3b, 0x91, 0x24, 0xff, 0x56, 0xea, 0xb7, 0xe7, 0xdb, 0x1c,
+ 0x2c, 0x5d, 0xe1, 0x12,
+ 0x1d, 0x4f, 0xa9, 0x25, 0xbd, 0xca, 0x39, 0x1f, 0x73, 0xb4, 0x77, 0x6b,
+ 0x97, 0x6c, 0x4a, 0xbf,
+ 0x83, 0xc7, 0x31, 0xd0, 0xe4, 0x70, 0x18, 0x15, 0x7b, 0xb2, 0x94, 0x5c,
+ 0x1b, 0x6e, 0x63, 0x72,
+ 0x2e, 0x1f, 0x27, 0x47, 0x26, 0x50, 0x92, 0x1b, 0x1c, 0x09, 0x76, 0xa3,
+ 0x11, 0x07, 0x8e, 0x13,
+ 0xf1, 0xe6, 0x58, 0x19, 0x8e, 0x80, 0x6d, 0x38, 0x5f, 0xa9, 0x0e, 0x7a,
+ 0x28, 0x67, 0x32, 0x47,
+ 0xfd, 0x99, 0x8b, 0xa3, 0xfb, 0x3c, 0x8c, 0x9a, 0x09, 0x76, 0xc7, 0xe8,
+ 0x7c, 0x93, 0x85, 0x9c,
+ 0x81, 0x8d, 0x49, 0x5a, 0xad, 0xfb, 0xd6, 0x9b, 0x62, 0xc8, 0x56, 0xda,
+ 0xbc, 0xf9, 0xb4, 0xb7,
+ 0xb1, 0xb2, 0x83, 0xf7, 0xba, 0x4e, 0xd4, 0x56, 0xf9, 0x32, 0xf4, 0xd7,
+ 0x2f, 0xaf, 0x2d, 0x5d,
+ 0x4f, 0x44, 0x4c, 0x9b, 0xcd, 0x5d, 0xf1, 0x05, 0x04, 0x03, 0x90, 0xfa,
+ 0x46, 0x01, 0xf5, 0x87,
+ 0x47, 0xaf, 0x6f, 0xf6, 0x2a, 0x34, 0x4f, 0x78, 0x60, 0x28, 0x1e, 0xa7,
+ 0x9f, 0x18, 0x2f, 0x15,
+ 0x13, 0x7a, 0x02, 0x15, 0x81, 0xfd, 0x16, 0x33, 0x3c, 0x11, 0x7c, 0x7f,
+ 0x64, 0x0f, 0x2a, 0xa1,
+ 0x46, 0x8a, 0x53, 0xb3, 0xef, 0x90, 0x28, 0x3f, 0x8d, 0x15, 0x7f, 0xe4,
+ 0x2d, 0xb2, 0xa5, 0x96,
+ 0x5b, 0xc5, 0xfa, 0x96, 0x52, 0x5a, 0x11, 0x20, 0xfe, 0xa1, 0x08, 0x8f,
+ 0xba, 0xde, 0xef, 0x29,
+ 0xfb, 0x47, 0x03, 0xfe, 0x20, 0x62, 0x1d, 0xcb, 0x22, 0xf8, 0x42, 0xa1,
+ 0x56, 0xe9, 0x3f, 0x10,
+ 0xed, 0x8c, 0xcd, 0x79, 0xf6, 0xee, 0x33, 0x60, 0xc1, 0x20, 0x18, 0x52,
+ 0x0d, 0xa1, 0xf2, 0x7b,
+ 0x94, 0x29, 0xc3, 0x12, 0xf7, 0x58, 0x51, 0xf9, 0x75, 0x57, 0xaf, 0xec,
+ 0xf2, 0x8c, 0x24, 0x9a,
+ 0x25, 0x9b, 0x40, 0xe5, 0x4d, 0x16, 0x85, 0xaf, 0x8c, 0x65, 0x5b, 0x3b,
+ 0xdd, 0x23, 0x09, 0xc7,
+ 0xa5, 0x33, 0x35, 0xfa, 0x25, 0x49, 0x34, 0x73, 0x03, 0x90, 0x6c, 0xa2,
+ 0xd3, 0x70, 0x37, 0xf3,
+ 0xdd, 0xb3, 0x07, 0xd4, 0xe1, 0x5b, 0x31, 0xad, 0x5a, 0xda, 0xba, 0x5f,
+ 0x9e, 0xf7, 0x6b, 0x91,
+ 0x38, 0xd4, 0xe9, 0xc0, 0xf0, 0xdc, 0xbc, 0xb0, 0xff, 0xd1, 0x2c, 0x50,
+ 0x4a, 0x4f, 0x43, 0x78,
+ 0x58, 0xaa, 0xbe, 0x59, 0xde, 0x75, 0xb8, 0xe9, 0x0a, 0xe6, 0xab, 0x4a,
+ 0xaf, 0xe3, 0xb2, 0x6f,
+ 0x0f, 0x10, 0x97, 0x75, 0xf9, 0x93, 0x48, 0x6b, 0xa2, 0x98, 0x6a, 0x57,
+ 0x41, 0xc9, 0xea, 0x9d,
+ 0xda, 0x48, 0xb3, 0xcc, 0xff, 0xa1, 0xc7, 0xbb, 0x9c, 0x69, 0x5e, 0x55,
+ 0x06, 0x27, 0x5b, 0x9e,
+ 0x3d, 0x65, 0x25, 0x52, 0xa7, 0xad, 0x84, 0x28, 0x20, 0x18, 0x0a, 0xdc,
+ 0x75, 0x08, 0xa4, 0xb2,
+ 0xe8, 0x3d, 0x01, 0xeb, 0xa1, 0x9f, 0x0b, 0xf8, 0x1e, 0xe9, 0x3e, 0xde,
+ 0x32, 0xe6, 0x15, 0xb1,
+ 0xe9, 0x18, 0x3d, 0xae, 0x64, 0x3b, 0x6c, 0xbf, 0xf3, 0xd4, 0x5f, 0x9d,
+ 0x80, 0x4c, 0x9f, 0x32,
+ 0x18, 0xfe, 0x65, 0xb7, 0xea, 0xbb, 0x01, 0x87, 0xac, 0x7d, 0x51, 0xe7,
+ 0xa8, 0x2b, 0xad, 0x75,
+ 0x95, 0x0c, 0xff, 0x57, 0x32, 0xfc, 0x36, 0xbe, 0x98, 0x6a, 0xce, 0xaf,
+ 0x40, 0x26, 0xae, 0x19,
+ 0xee, 0xe3, 0x89, 0xb6, 0x7a, 0xc1, 0x9a, 0xa9, 0x35, 0x67, 0xbb, 0x97,
+ 0x18, 0x9c, 0xaf, 0x3d,
+ 0x77, 0x90, 0xa5, 0x5b, 0x3d, 0x81, 0x4d, 0xb5, 0xfb, 0xd2, 0xbc, 0xaa,
+ 0x0c, 0x4e, 0xb6, 0xff,
+ 0x72, 0x21, 0x69, 0xc9, 0x6a, 0xf0, 0x75, 0x2d, 0x24, 0x1b, 0x9a, 0x26,
+ 0x33, 0x09, 0x51, 0x35,
+ 0x6f, 0x6e, 0xc0, 0xec, 0xd7, 0x3a, 0x4c, 0x32, 0x57, 0xaf, 0xed, 0x4d,
+ 0xa4, 0x65, 0x1b, 0x8a,
+ 0x51, 0x64, 0xa1, 0x71, 0xfc, 0xb8, 0x61, 0xd3, 0x83, 0xf0, 0x44, 0x54,
+ 0xc4, 0x50, 0xe2, 0x7e,
+ 0x7f, 0x7b, 0x86, 0x36, 0xda, 0xe8, 0xf3, 0xc8, 0x9f, 0xf9, 0x32, 0xf7,
+ 0xd5, 0x57, 0x6c, 0x6d,
+ 0xdf, 0xf9, 0x7f, 0x5e, 0xa8, 0xd0, 0xff, 0x23, 0x43, 0xa0, 0x78, 0xd9,
+ 0x39, 0x60, 0xbc, 0x54,
+ 0xd7, 0x12, 0x5c, 0x33, 0x4f, 0xb9, 0x41, 0x5e, 0x27, 0x8b, 0xf6, 0x84,
+ 0xe0, 0x79, 0x66, 0xc6,
+ 0xd4, 0x7d, 0x18, 0xfc, 0xc3, 0x96, 0xe8, 0x97, 0xd3, 0xcc, 0x55, 0x41,
+ 0xf5, 0x44, 0x3b, 0x80,
+ 0x6b, 0xfa, 0x30, 0x3b, 0x45, 0xef, 0x13, 0xed, 0x65, 0x5b, 0xaa, 0x82,
+ 0x29, 0x88, 0x76, 0xc3,
+ 0x3a, 0x9e, 0x91, 0x4a, 0xb9, 0x57, 0x72, 0x3e, 0xe6, 0xab, 0xee, 0xd6,
+ 0xed, 0xd8, 0x94, 0xbd,
+ 0x20, 0x2a, 0x8c, 0x77, 0x1a, 0x67, 0xbd, 0x37, 0x53, 0xac, 0x7d, 0xb7,
+ 0xe2, 0x64, 0xee, 0x0d,
+ 0x0a, 0xa1, 0x5b, 0xe7, 0xae, 0xe2, 0x70, 0xf3, 0x7d, 0x51, 0x4c, 0xdb,
+ 0x7e, 0x8e, 0x0d, 0x57,
+ 0x42, 0x1e, 0xa3, 0x64, 0x7d, 0x45, 0x77, 0xe0, 0xbf, 0xe1, 0x38, 0x2b,
+ 0xa0, 0x5f, 0xc8, 0xdf,
+ 0xcc, 0x83, 0x7d, 0x4b, 0x29, 0x2d, 0xe9, 0x10, 0x7f, 0xb1, 0x04, 0xa6,
+ 0x5d, 0x6f, 0x96, 0xf5,
+ 0x7b, 0xef, 0x76, 0xe1, 0x48, 0x3d, 0xac, 0x17, 0xad, 0x0d, 0x75, 0x38,
+ 0x58, 0xba, 0x01, 0x24,
+ 0x8f, 0xb8, 0xe2, 0x6a, 0x91, 0xcc, 0xf9, 0xb7, 0x2d, 0x6d, 0x5d, 0xce,
+ 0x4f, 0x9a, 0xd4, 0xa9,
+ 0x3b, 0xbb, 0xad, 0x0f, 0x7c, 0xf3, 0x15, 0x79, 0x0b, 0x96, 0x8f, 0x95,
+ 0x5f, 0x72, 0x1e, 0x3e,
+ 0x7d, 0x31, 0xfe, 0xbc, 0x93, 0x63, 0x3d, 0x46, 0x86, 0x83, 0xf0, 0x71,
+ 0x72, 0xc0, 0xbb, 0xa8,
+ 0xbf, 0x87, 0x28, 0xc7, 0x86, 0x79, 0xfb, 0x7a, 0xb6, 0x97, 0xff, 0xc3,
+ 0xdc, 0xcc, 0x4d, 0x43,
+ 0xd0, 0xe9, 0xe8, 0x2b, 0x51, 0x43, 0xb7, 0x48, 0xe1, 0x38, 0x12, 0x8e,
+ 0x78, 0xa9, 0x56, 0xc9,
+ 0xde, 0xdc, 0x43, 0x1b, 0x6d, 0x74, 0x98, 0x64, 0xae, 0x9d, 0x19, 0x9a,
+ 0x8b, 0xca, 0x36, 0xd7,
+ 0xca, 0x5d, 0xf5, 0x16, 0xf2, 0x73, 0x78, 0x41, 0x54, 0x3f, 0x81, 0xef,
+ 0x77, 0x15, 0x2c, 0x79,
+ 0x2c, 0x55, 0x5f, 0xcd, 0x6f, 0xdb, 0x5c, 0x95, 0x05, 0x73, 0xb4, 0x25,
+ 0xb6, 0x90, 0x59, 0xd6,
+ 0x19, 0xdb, 0x59, 0xf2, 0x2f, 0x1f, 0x66, 0xc0, 0x41, 0x40, 0x30, 0xa4,
+ 0x1a, 0x81, 0x27, 0xf6,
+ 0x76, 0xb5, 0x99, 0x1e, 0xf8, 0x25, 0x2a, 0xf2, 0x16, 0xef, 0xdd, 0xe9,
+ 0xbe, 0xe4, 0x3c, 0x7c,
+ 0x12, 0x5f, 0x3e, 0x50, 0x44, 0x59, 0x71, 0x74, 0xd1, 0x2c, 0x1d, 0x3c,
+ 0xd6, 0xa5, 0xa0, 0x22,
+ 0x74, 0xff, 0xe1, 0x94, 0xb1, 0xae, 0xe4, 0x7c, 0x0f, 0x95, 0x1f, 0x6f,
+ 0x19, 0x73, 0xeb, 0xb9,
+ 0xd5, 0x58, 0x24, 0xb9, 0x06, 0x32, 0x8f, 0xd0, 0x3e, 0xf1, 0x34, 0x02,
+ 0x47, 0xee, 0xb1, 0x03,
+ 0x8b, 0x2c, 0x12, 0xbd, 0x03, 0x19, 0xa6, 0x68, 0x1f, 0x99, 0x1a, 0x01,
+ 0xc2, 0x77, 0xb9, 0xe0,
+ 0x07, 0xfb, 0xb4, 0x18, 0x1e, 0xfa, 0xf6, 0x16, 0xc6, 0xb3, 0xe4, 0x0a,
+ 0x98, 0xd0, 0x30, 0x0f,
+ 0x59, 0x8f, 0x82, 0x1c, 0x1b, 0xd1, 0xdf, 0xae, 0xe7, 0xdb, 0xca, 0x09,
+ 0x1d, 0x49, 0x38, 0xec,
+ 0xb0, 0x97, 0xbf, 0xb2, 0x7f, 0xea, 0xb3, 0x11, 0x14, 0x0f, 0x95, 0x94,
+ 0x9d, 0x05, 0xa7, 0xde,
+ 0x1f, 0x05, 0xd1, 0xaf, 0xf4, 0x41, 0xf7, 0x91, 0x6a, 0xce, 0xb5, 0xed,
+ 0x30, 0xfb, 0x9d, 0x7a,
+ 0x61, 0x5b, 0x6b, 0xdc, 0xeb, 0x0d, 0x63, 0x1e, 0x18, 0x0a, 0xe6, 0x59,
+ 0x57, 0x06, 0x7b, 0x94,
+ 0x1a, 0xb4, 0x1d, 0x3d, 0xa3, 0x30, 0xcf, 0x09, 0xb5, 0x07, 0x93, 0x61,
+ 0x0f, 0xbc, 0x7a, 0xb0,
+ 0xc8, 0x17, 0x8d, 0x9c, 0xbb, 0xf8, 0xb6, 0xcf, 0x4d, 0x45, 0x43, 0x69,
+ 0xd0, 0x82, 0xfb, 0xbc,
+ 0x97, 0x46, 0x87, 0xdd, 0x7b, 0x77, 0xf8, 0x30, 0x81, 0x10, 0x0c, 0x29,
+ 0xe7, 0xb1, 0x79, 0xdc,
+ 0x17, 0xee, 0xf2, 0xc2, 0x13, 0x28, 0x49, 0xec, 0x0e, 0xe5, 0x3b, 0xb0,
+ 0xe9, 0xe2, 0x47, 0xe8,
+ 0xa9, 0x4c, 0xe6, 0x40, 0x50, 0xf5, 0xd5, 0xd1, 0x55, 0x4f, 0xa5, 0x30,
+ 0x87, 0x84, 0x80, 0x28,
+ 0x91, 0x98, 0x0f, 0x80, 0xa0, 0x29, 0x69, 0x61, 0xaa, 0x9e, 0x89, 0x60,
+ 0xcd, 0xcb, 0xc3, 0x50,
+ 0x9f, 0xad, 0xa4, 0xb0, 0x9c, 0x1e, 0x46, 0x4d, 0xe5, 0x3b, 0x82, 0x74,
+ 0x3e, 0xa8, 0xa3, 0x4e,
+ 0x1b, 0x91, 0x21, 0x78, 0x66, 0x94, 0xa8, 0x4e, 0x58, 0x3a, 0xf2, 0x22,
+ 0xbd, 0x16, 0xf0, 0x33,
+ 0xbb, 0x13, 0xd8, 0x10, 0x14, 0xac, 0xa4, 0xa5, 0x84, 0x63, 0xb8, 0x0c,
+ 0x51, 0x21, 0x20, 0x0a,
+ 0xd1, 0xcc, 0xd4, 0x6e, 0x94, 0xe7, 0xd0, 0x0f, 0x0c, 0x05, 0x73, 0xcd,
+ 0xca, 0x03, 0xdc, 0x4a,
+ 0x7a, 0xca, 0x4a, 0xa4, 0x8d, 0x99, 0xcb, 0x50, 0x40, 0x30, 0x14, 0x7b,
+ 0xea, 0x10, 0x8b, 0xa7,
+ 0xb4, 0x03, 0x4f, 0x65, 0xed, 0x3f, 0xec, 0xce, 0x26, 0xfb, 0xd2, 0x5b,
+ 0x10, 0xe8, 0xca, 0x97,
+ 0x5f, 0x51, 0x0a, 0x41, 0xc0, 0x8f, 0x4e, 0xff, 0xcc, 0x55, 0x4f, 0x40,
+ 0x37, 0x33, 0x82, 0x60,
+ 0x71, 0x4e, 0x2d, 0x06, 0xe6, 0xdf, 0xdc, 0xe4, 0xd0, 0x5c, 0x39, 0xe3,
+ 0x26, 0x34, 0x0c, 0x73,
+ 0x0e, 0x35, 0xab, 0x30, 0x3c, 0x37, 0x2f, 0x2c, 0x4f, 0xa5, 0x0b, 0x14,
+ 0xf3, 0x63, 0x60, 0x1e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x78, 0x80, 0x32, 0x2e, 0xc4, 0x12, 0x05, 0xde, 0x59, 0x4a, 0xd6, 0xfd,
+ 0x4d, 0x87, 0x5c, 0x62,
+ 0x24, 0xbe, 0x7c, 0xa0, 0x88, 0xb2, 0xe2, 0xe8, 0x61, 0x58, 0x3a, 0x78,
+ 0x6f, 0x89, 0x83, 0x44,
+ 0x40, 0x54, 0xdb, 0xee, 0x34, 0xce, 0xb9, 0x6e, 0xa6, 0x9b, 0xfa, 0xad,
+ 0x07, 0xc8, 0x1f, 0x1a,
+ 0x86, 0x76, 0xfd, 0x42, 0xb3, 0x01, 0x20, 0x8d, 0xa4, 0x7b, 0xb2, 0xd0,
+ 0x24, 0x29, 0x84, 0xb8,
+ 0x52, 0x0b, 0xe5, 0xbe, 0x70, 0x97, 0xc8, 0x1a, 0x77, 0xb7, 0xe7, 0x91,
+ 0xd1, 0x6d, 0xbf, 0x38,
+ 0xf3, 0xac, 0x20, 0x93, 0xc7, 0x0b, 0xa3, 0xb6, 0x46, 0xd3, 0xcc, 0xfc,
+ 0x8f, 0xf0, 0xe5, 0x82,
+ 0x11, 0x30, 0x7a, 0x9f, 0xc8, 0x76, 0xd8, 0xbd, 0x25, 0x6b, 0xbe, 0xf9,
+ 0xc3, 0x98, 0xfd, 0x64,
+ 0x28, 0xc1, 0xaf, 0x1a, 0xfd, 0x0e, 0x03, 0x4a, 0x37, 0x87, 0xf3, 0xea,
+ 0x3b, 0x7d, 0x34, 0x9f,
+ 0x5c, 0x3e, 0x4e, 0x8e, 0x4c, 0xa0, 0xe7, 0x36, 0x38, 0x12, 0xec, 0x85,
+ 0x22, 0x0e, 0xdf, 0x26,
+ 0x98, 0x56, 0x10, 0xa8, 0x82, 0xe4, 0xb0, 0x5b, 0x23, 0x88, 0x66, 0x7e,
+ 0xa6, 0x78, 0x93, 0x41,
+ 0xc1, 0xd9, 0x92, 0xb4, 0x99, 0x35, 0x6f, 0xf5, 0xc4, 0x53, 0xac, 0x77,
+ 0xbb, 0x31, 0xab, 0xad,
+ 0xd6, 0x37, 0x60, 0x76, 0x8a, 0x1d, 0x26, 0x19, 0xca, 0xb6, 0x97, 0xc7,
+ 0x52, 0xd3, 0xec, 0x45,
+ 0x03, 0x6f, 0x44, 0xcf, 0x8c, 0x2f, 0xa9, 0xc9, 0xf4, 0x47, 0xa3, 0xc5,
+ 0x15, 0x3d, 0x5d, 0x46,
+ 0x08, 0xeb, 0x23, 0x6d, 0xe7, 0x69, 0xbe, 0x7d, 0x64, 0x2b, 0x8e, 0x5d,
+ 0xd9, 0x19, 0xda, 0x92,
+ 0xae, 0xb7, 0x52, 0x58, 0x4e, 0x0f, 0x23, 0xc7, 0x93, 0xfc, 0x41, 0x3a,
+ 0x1f, 0x54, 0xb0, 0x27,
+ 0x64, 0xea, 0xa7, 0x4e, 0xbc, 0x7c, 0x5b, 0x86, 0xc7, 0xc3, 0xc0, 0xd5,
+ 0x68, 0x41, 0x9c, 0x5e,
+ 0x2d, 0x70, 0x63, 0x88, 0xaa, 0x7f, 0x3b, 0xd2, 0xe8, 0x4e, 0xd5, 0x66,
+ 0x04, 0x3a, 0xd3, 0x55,
+ 0x32, 0x75, 0xb2, 0x27, 0x5e, 0x3e, 0xcc, 0x43, 0x82, 0x80, 0x60, 0x8b,
+ 0x34, 0xc1, 0x4e, 0x2f,
+ 0x06, 0xde, 0x88, 0x5d, 0xdb, 0x5e, 0x91, 0x51, 0x2b, 0x8e, 0x85, 0x49,
+ 0x2a, 0x7a, 0xba, 0x8c,
+ 0x34, 0xab, 0x3a, 0x7a, 0x85, 0x60, 0x5d, 0x12, 0xa9, 0x0e, 0xe5, 0xc2,
+ 0x1e, 0xbb, 0xf4, 0xa3,
+ 0x5d, 0x1b, 0x72, 0xcb, 0x89, 0x04, 0x80, 0x71, 0xd5, 0x2f, 0x8d, 0xc6,
+ 0x90, 0xa4, 0x55, 0xa5,
+ 0x84, 0x3c, 0x85, 0xc8, 0xfa, 0x8a, 0xee, 0x03, 0xbd, 0x01, 0x70, 0x56,
+ 0x83, 0xbe, 0x53, 0x7d,
+ 0x31, 0x1a, 0xf6, 0xe8, 0xd2, 0x11, 0x65, 0x8a, 0x76, 0xc7, 0xc3, 0x4e,
+ 0x21, 0xfc, 0x13, 0x69,
+ 0xf9, 0x0d, 0x7b, 0x74, 0x69, 0xe9, 0xd3, 0x45, 0x3b, 0x82, 0x80, 0x27,
+ 0xf1, 0x7e, 0xe8, 0xd5,
+ 0x93, 0xd2, 0x77, 0x0a, 0xe9, 0xa2, 0xa7, 0xef, 0xb3, 0xe4, 0x4b, 0xe6,
+ 0x6a, 0x5c, 0x14, 0x95,
+ 0x87, 0x53, 0xc1, 0x07, 0x76, 0xa5, 0x47, 0xca, 0x49, 0x46, 0xd3, 0x93,
+ 0x96, 0x83, 0x0e, 0x3b,
+ 0x9b, 0x39, 0x54, 0x67, 0x0e, 0xcb, 0x19, 0x92, 0xd7, 0xcf, 0xc5, 0xbb,
+ 0xb3, 0x45, 0xce, 0x07,
+ 0x0d, 0x5a, 0xef, 0xff, 0xb0, 0x18, 0x86, 0xe5, 0xbb, 0xe2, 0xa8, 0xd1,
+ 0xe6, 0x5e, 0x3d, 0x58,
+ 0xcf, 0xec, 0x39, 0x84, 0xa5, 0x02, 0x40, 0xd9, 0x8b, 0xf6, 0xa7, 0x63,
+ 0x48, 0x52, 0xcb, 0xb3,
+ 0x6a, 0xdf, 0x0c, 0x7e, 0x80, 0x4b, 0x74, 0xaa, 0x88, 0x66, 0xcb, 0xc1,
+ 0x9b, 0x22, 0xfc, 0x40,
+ 0xbd, 0xcd, 0x50, 0x4d, 0xcf, 0xf2, 0x35, 0xf4, 0xaf, 0xed, 0x3d, 0x45,
+ 0x7b, 0x5b, 0x9a, 0x86,
+ 0x33, 0x50, 0x8e, 0x62, 0x9b, 0x9a, 0xab, 0x04, 0x6f, 0xbd, 0x01, 0xc8,
+ 0x86, 0x6b, 0xc4, 0xac,
+ 0xdb, 0x6d, 0x8f, 0x89, 0x3a, 0x05, 0xa0, 0xfc, 0x71, 0x54, 0x3f, 0x16,
+ 0xb4, 0x8d, 0xd1, 0x1d,
+ 0xeb, 0x52, 0x45, 0x24, 0x2d, 0xb0, 0xa2, 0x31, 0xea, 0xae, 0x9d, 0x1b,
+ 0x27, 0xdb, 0x48, 0xf7,
+ 0xce, 0xc9, 0x05, 0xc1, 0x60, 0xa6, 0x27, 0x9e, 0x66, 0xcb, 0xc6, 0x20,
+ 0xfa, 0xf8, 0x41, 0x30,
+ 0x55, 0xf0, 0x51, 0xa6, 0x6e, 0x6d, 0x3e, 0x0c, 0xb1, 0x04, 0x03, 0x9b,
+ 0x49, 0xbd, 0x8f, 0x37,
+ 0x16, 0xcb, 0xce, 0x87, 0xd6, 0x8c, 0x2e, 0xab, 0xe3, 0xd8, 0x5a, 0xf3,
+ 0x5b, 0x48, 0xcd, 0x6b,
+ 0xc5, 0x4d, 0x62, 0x63, 0x0b, 0xe0, 0x30, 0x2a, 0xf6, 0xa7, 0xeb, 0xb8,
+ 0x36, 0xdc, 0xc6, 0xe4,
+ 0x48, 0xbf, 0xf8, 0x83, 0xd3, 0xa7, 0x07, 0x13, 0xc2, 0xb0, 0x74, 0xf0,
+ 0xde, 0xd1, 0xc5, 0x88,
+ 0x2b, 0xae, 0xeb, 0xd5, 0x71, 0x21, 0xaa, 0x83, 0xc3, 0xc0, 0x50, 0x2f,
+ 0x2e, 0x40, 0x69, 0xd9,
+ 0x10, 0x15, 0x46, 0xda, 0x0d, 0xd2, 0xbf, 0xfa, 0xc8, 0x56, 0xdf, 0xba,
+ 0x71, 0x32, 0x77, 0xe7,
+ 0xba, 0x36, 0xe4, 0x55, 0xd1, 0x08, 0xc3, 0xe2, 0x69, 0x5e, 0xd9, 0x4f,
+ 0xe3, 0x8b, 0xaa, 0x89,
+ 0x79, 0xa5, 0x0e, 0x6b, 0x01, 0xb6, 0x62, 0x99, 0xb4, 0x77, 0xb7, 0xbe,
+ 0xff, 0x2d, 0xd6, 0xe1,
+ 0xb2, 0xdd, 0xc7, 0x38, 0x36, 0x61, 0x7d, 0x9f, 0x0d, 0x75, 0x57, 0x12,
+ 0x3a, 0x92, 0x70, 0x1b,
+ 0x01, 0x25, 0x3c, 0x45, 0xc5, 0xa4, 0x67, 0x47, 0xed, 0x3d, 0x61, 0x43,
+ 0xb2, 0xaa, 0x8a, 0x83,
+ 0x04, 0x94, 0xf0, 0xd7, 0x92, 0xd5, 0x5f, 0xdf, 0x32, 0xf4, 0x47, 0xcf,
+ 0x8d, 0xed, 0x6d, 0x49,
+ 0xb8, 0x7c, 0x9c, 0xdf, 0x98, 0x83, 0x0d, 0x6c, 0x70, 0x24, 0x1b, 0xc9,
+ 0x44, 0x1c, 0x7d, 0x4c,
+ 0xc9, 0x32, 0xb1, 0xd9, 0x7e, 0x5c, 0xd1, 0x88, 0xa0, 0x78, 0x22, 0x2a,
+ 0x62, 0x28, 0x71, 0x3f,
+ 0xec, 0xa9, 0xf1, 0x3c, 0x33, 0x4a, 0x54, 0x27, 0x2c, 0x1d, 0x79, 0x11,
+ 0xbf, 0x0b, 0x78, 0xf8,
+ 0x85, 0x19, 0xb9, 0x8d, 0x3f, 0x2e, 0x89, 0x44, 0x50, 0x3c, 0x11, 0x15,
+ 0x31, 0x14, 0xd9, 0xfe,
+ 0xf4, 0x57, 0x94, 0x8b, 0xd9, 0xf1, 0x55, 0xa0, 0x80, 0x60, 0x28, 0xf6,
+ 0x17, 0x20, 0xd5, 0x8d,
+ 0x44, 0xc0, 0x2b, 0x39, 0xa6, 0x1b, 0xe6, 0xb1, 0x94, 0x6f, 0xbd, 0x62,
+ 0x8a, 0x25, 0x72, 0x53,
+ 0x5a, 0xe0, 0xc6, 0xd3, 0x97, 0xfe, 0x76, 0x67, 0x13, 0x9c, 0x69, 0xcc,
+ 0x08, 0x74, 0x65, 0xaa,
+ 0x2f, 0x3a, 0x1b, 0x02, 0xe3, 0xf4, 0xf5, 0x5c, 0xf1, 0x34, 0x17, 0xe0,
+ 0xa3, 0xad, 0x04, 0x90,
+ 0x05, 0xb1, 0xcc, 0x92, 0x57, 0x71, 0x38, 0x98, 0xdf, 0xc9, 0x26, 0x8c,
+ 0x3f, 0x47, 0xe7, 0xca,
+ 0xd9, 0x27, 0xf7, 0x03, 0x73, 0x8e, 0x6e, 0x72, 0x68, 0x2e, 0xfd, 0x90,
+ 0x13, 0x1a, 0x06, 0xd8,
+ 0x68, 0x95, 0x74, 0xf4, 0xc9, 0xc0, 0xba, 0x24, 0x91, 0x1c, 0x09, 0x47,
+ 0x3c, 0xb5, 0x2b, 0x85,
+ 0xad, 0xd8, 0x16, 0x97, 0xc2, 0x20, 0x8a, 0x0e, 0x67, 0xbb, 0xe2, 0xff,
+ 0x0a, 0x69, 0xed, 0x61,
+ 0x35, 0x8e, 0x06, 0x3f, 0x40, 0xc4, 0x3a, 0x55, 0x44, 0x33, 0x84, 0x81,
+ 0xac, 0x11, 0x7e, 0x20,
+ 0x56, 0x9f, 0x15, 0x69, 0xe2, 0x42, 0x97, 0xc5, 0x45, 0x43, 0xa0, 0x5e,
+ 0x5c, 0x80, 0xd2, 0x71,
+ 0xc4, 0x68, 0x5e, 0x26, 0xce, 0x44, 0x57, 0x6d, 0x1b, 0x9a, 0x8a, 0xfb,
+ 0x84, 0x76, 0x4c, 0x67,
+ 0xaf, 0x92, 0x6e, 0x1d, 0x8b, 0xab, 0x44, 0x80, 0x7e, 0xc1, 0x20, 0x79,
+ 0xad, 0xfe, 0x3a, 0xa4,
+ 0x15, 0xa4, 0x8a, 0x48, 0x5a, 0xa3, 0x87, 0x62, 0x17, 0x9f, 0xf9, 0x36,
+ 0x4e, 0x75, 0x90, 0x2d,
+ 0x7c, 0x14, 0xc2, 0xf9, 0x56, 0xc7, 0x5a, 0x01, 0x6b, 0xbe, 0x91, 0x32,
+ 0xc0, 0x6a, 0x31, 0x2b,
+ 0x6e, 0x4b, 0xfc, 0xa9, 0x12, 0x9e, 0x2b, 0x75, 0xba, 0x92, 0x8c, 0x0e,
+ 0x16, 0xcf, 0x91, 0x09,
+ 0xd8, 0x02, 0xcb, 0x46, 0xb6, 0x2a, 0x09, 0x35, 0x85, 0x13, 0x9c, 0xd3,
+ 0xa1, 0xb0, 0x8c, 0x5b,
+ 0xf7, 0x38, 0xd0, 0x44, 0x55, 0xde, 0xfc, 0x69, 0x74, 0x27, 0x8b, 0x33,
+ 0x02, 0x1d, 0x88, 0xcb,
+ 0x66, 0xa0, 0xdf, 0xc4, 0xf5, 0xf7, 0x95, 0x08, 0xde, 0xb9, 0x02, 0x53,
+ 0xcf, 0xd6, 0x4b, 0x9b,
+ 0x89, 0x66, 0x6a, 0x37, 0x4a, 0x92, 0x68, 0xe6, 0x06, 0xe3, 0xd8, 0x87,
+ 0x65, 0xe0, 0x6e, 0x25,
+ 0x45, 0xe5, 0x17, 0x7c, 0x63, 0xbf, 0x81, 0xf6, 0x79, 0x52, 0xdc, 0x21,
+ 0x38, 0x8f, 0xf8, 0xd0,
+ 0xef, 0xc6, 0xb5, 0xf3, 0xbf, 0x65, 0xfd, 0xee, 0xd8, 0x5a, 0xda, 0xd4,
+ 0xaa, 0x36, 0x25, 0xbe,
+ 0x37, 0xc4, 0x7e, 0xb5, 0x09, 0x4f, 0xf4, 0xdb, 0x5d, 0x49, 0x46, 0x07,
+ 0x0b, 0x86, 0xa9, 0xe5,
+ 0x8d, 0xf2, 0x9a, 0xe0, 0xd8, 0x47, 0x37, 0x39, 0x34, 0x17, 0x9f, 0x48,
+ 0xe8, 0x0d, 0x03, 0x6c,
+ 0xb6, 0x49, 0x37, 0xef, 0xa4, 0xb4, 0x22, 0x40, 0x3f, 0x81, 0x10, 0xdd,
+ 0xb7, 0x7f, 0x1d, 0x52,
+ 0xff, 0xd3, 0xf3, 0x29, 0xb2, 0xb7, 0x42, 0x14, 0x10, 0x0c, 0x05, 0x6e,
+ 0xdb, 0x04, 0x52, 0x59,
+ 0x88, 0x43, 0x56, 0x72, 0x8f, 0x36, 0x0f, 0xa1, 0xeb, 0xde, 0xb9, 0xc4,
+ 0xd7, 0x4a, 0xe4, 0xa6,
+ 0xea, 0x77, 0x79, 0x61, 0xe8, 0x14, 0xc5, 0x76, 0x07, 0x93, 0xfc, 0x58,
+ 0x95, 0x71, 0xc2, 0x74,
+ 0x62, 0x34, 0x2f, 0x13, 0x67, 0x22, 0xca, 0xd7, 0xec, 0x4d, 0x45, 0x9c,
+ 0x42, 0x3b, 0x26, 0xd2,
+ 0xe2, 0x9c, 0x5a, 0x0c, 0x0f, 0x7d, 0x7b, 0x0b, 0x63, 0xb8, 0x72, 0x05,
+ 0x4c, 0x68, 0x18, 0xe6,
+ 0x3e, 0x0a, 0x61, 0x9d, 0x2b, 0x82, 0x2d, 0xe1, 0xd4, 0x5f, 0xa9, 0x19,
+ 0x60, 0x35, 0xf9, 0xf4,
+ 0x54, 0xd5, 0x6d, 0xe3, 0xab, 0xc9, 0x59, 0x4b, 0x5c, 0x39, 0x62, 0xd8,
+ 0xfb, 0x17, 0x05, 0xb4,
+ 0xbe, 0xa2, 0x14, 0x82, 0x43, 0xdd, 0x9c, 0x3d, 0x5b, 0xaa, 0x9e, 0x80,
+ 0x6e, 0x66, 0xc7, 0xc0,
+ 0xb7, 0x6c, 0x0b, 0xaa, 0x61, 0x10, 0x45, 0x07, 0xd2, 0xbc, 0x71, 0x9e,
+ 0x05, 0xd5, 0x97, 0xd1,
+ 0x36, 0xe1, 0x42, 0xf0, 0xcc, 0xeb, 0x93, 0x9c, 0xb0, 0x74, 0x27, 0x44,
+ 0xb9, 0x2c, 0x23, 0x66,
+ 0xe6, 0x08, 0xaa, 0xdb, 0x9d, 0xa8, 0x24, 0xd4, 0x51, 0x4c, 0x35, 0xca,
+ 0xc1, 0x85, 0x75, 0xaf,
+ 0x99, 0x73, 0x2c, 0xed, 0x47, 0x40, 0xd7, 0x1c, 0xce, 0xb5, 0x07, 0x3d,
+ 0x14, 0xd2, 0x19, 0xc2,
+ 0xa0, 0x82, 0xf9, 0x68, 0x72, 0x38, 0x0c, 0xeb, 0xdc, 0x59, 0x4a, 0x2e,
+ 0xec, 0x37, 0xd0, 0x39,
+ 0x23, 0x45, 0xc8, 0xb8, 0x96, 0x48, 0x14, 0xfe, 0xa7, 0xeb, 0xde, 0x72,
+ 0xf7, 0x59, 0xb3, 0x4b,
+ 0x8a, 0x09, 0x2e, 0xf8, 0xc6, 0xbd, 0xc1, 0x2f, 0xf2, 0xa4, 0x7b, 0x42,
+ 0x70, 0xdd, 0x33, 0x63,
+ 0x73, 0x04, 0x55, 0x8c, 0xaf, 0x54, 0x12, 0x6a, 0xc9, 0x26, 0xfb, 0x65,
+ 0x81, 0xa3, 0xdb, 0xb6,
+ },
+ { /* 7 */
+ 0x5e, 0x59, 0x1d, 0x8d, 0x98, 0xfb, 0x33, 0x54, 0x7c, 0xd4, 0xa4, 0x1b,
+ 0xb3, 0x82, 0x0e, 0xb2,
+ 0x90, 0x76, 0xbe, 0x36, 0xc1, 0x08, 0x56, 0x5a, 0xf4, 0x40, 0x38, 0xf8,
+ 0x4c, 0x99, 0x0f, 0xec,
+ 0xb8, 0xae, 0x1f, 0x39, 0x5b, 0xcb, 0x04, 0x4b, 0x01, 0x97, 0x34, 0x4e,
+ 0xd8, 0x52, 0x2c, 0x9f,
+ 0x18, 0x48, 0xde, 0x05, 0x76, 0x41, 0x8f, 0x0f, 0x53, 0x4d, 0x04, 0xd3,
+ 0xcd, 0xf8, 0xa0, 0x90,
+ 0x76, 0x81, 0xbc, 0x82, 0x02, 0x38, 0x61, 0x45, 0x89, 0x03, 0xa8, 0xad,
+ 0x27, 0x49, 0x2d, 0xc1,
+ 0xc4, 0x19, 0x1a, 0xc8, 0x9e, 0xb3, 0x90, 0x9b, 0x24, 0xd1, 0x9f, 0x2f,
+ 0xda, 0x59, 0x79, 0x32,
+ 0x0d, 0x23, 0xf7, 0xdb, 0x11, 0x1f, 0x5f, 0xae, 0x67, 0xf8, 0x5d, 0x96,
+ 0x09, 0xc8, 0x5c, 0x46,
+ 0x84, 0x1a, 0x0f, 0xd0, 0x8c, 0x88, 0x7f, 0xb3, 0x6f, 0xca, 0x3e, 0xa3,
+ 0x06, 0x1d, 0xff, 0x34,
+ 0xc2, 0x0b, 0xcc, 0x58, 0x62, 0x32, 0xc3, 0xe8, 0x40, 0x53, 0x9e, 0x6b,
+ 0x78, 0x67, 0x51, 0x16,
+ 0x34, 0x8c, 0x5a, 0xea, 0x44, 0x7c, 0xbf, 0xfd, 0x5f, 0x66, 0xb7, 0x1d,
+ 0x24, 0xa6, 0xb3, 0xdb,
+ 0x31, 0x97, 0xe7, 0x32, 0xc6, 0x5c, 0x24, 0x56, 0x09, 0xa5, 0x57, 0x7b,
+ 0xd7, 0x87, 0x8f, 0xed,
+ 0x24, 0xfc, 0xce, 0xec, 0xa1, 0x02, 0xf4, 0xf7, 0x3d, 0x10, 0x0e, 0x3e,
+ 0x13, 0xb7, 0x73, 0x3b,
+ 0xc3, 0x0c, 0x54, 0x60, 0x48, 0xec, 0x3a, 0xa0, 0xef, 0x6c, 0xc1, 0x75,
+ 0xf6, 0xd3, 0x5d, 0x18,
+ 0xc7, 0x10, 0x71, 0x80, 0xe0, 0x12, 0x58, 0x43, 0x16, 0x90, 0x7e, 0x0d,
+ 0x8b, 0x46, 0x6d, 0x20,
+ 0x4a, 0x35, 0xac, 0x6b, 0xd5, 0x7b, 0x1a, 0xbd, 0xe7, 0x5e, 0xa2, 0x40,
+ 0xf9, 0x06, 0xfe, 0x6a,
+ 0x07, 0x15, 0x4e, 0xa8, 0xd6, 0x5f, 0xaa, 0x3b, 0xcb, 0xbd, 0x5e, 0x5a,
+ 0x2c, 0x8a, 0x24, 0x2a,
+ 0x0c, 0x24, 0x6f, 0xe3, 0x3b, 0xc1, 0xa6, 0xe6, 0xc8, 0xc7, 0x02, 0x88,
+ 0x87, 0x7c, 0x50, 0x48,
+ 0x48, 0x3b, 0x5f, 0x1b, 0x81, 0x04, 0x2b, 0x2d, 0x7a, 0x20, 0x1c, 0x7c,
+ 0x26, 0xad, 0xe6, 0x76,
+ 0x80, 0x06, 0x2a, 0x30, 0x24, 0x76, 0x1d, 0x50, 0x96, 0x36, 0x81, 0xdb,
+ 0x7b, 0x88, 0xcf, 0x0c,
+ 0xd7, 0x60, 0xe5, 0x86, 0x05, 0x6c, 0x13, 0x49, 0x74, 0xe6, 0xc7, 0x2e,
+ 0xbc, 0x57, 0xad, 0xc0,
+ 0x69, 0xdc, 0x2c, 0x2f, 0xa2, 0x26, 0x44, 0x71, 0x11, 0xf3, 0xf2, 0x24,
+ 0xc6, 0x3b, 0xa9, 0x7b,
+ 0xee, 0xcf, 0x48, 0xb7, 0x50, 0x0f, 0xf3, 0x1a, 0x4c, 0x78, 0x2d, 0xa5,
+ 0x91, 0x39, 0x42, 0x5d,
+ 0xd8, 0x4d, 0xe1, 0x2d, 0x40, 0x0c, 0x7d, 0x77, 0x8e, 0x60, 0x24, 0x84,
+ 0x6a, 0x34, 0xe9, 0x9a,
+ 0x1b, 0x41, 0xb5, 0x4d, 0x08, 0xe0, 0x47, 0xd7, 0x61, 0x0c, 0xe5, 0xf1,
+ 0x9c, 0xe7, 0xb4, 0x82,
+ 0x77, 0x86, 0x24, 0xba, 0x28, 0xe6, 0x98, 0x0d, 0x26, 0x3c, 0xf7, 0xb3,
+ 0xa9, 0xfd, 0x21, 0xcf,
+ 0x91, 0x71, 0x26, 0x0e, 0xeb, 0xd6, 0xaf, 0x12, 0x5b, 0x7f, 0x67, 0xe6,
+ 0xc2, 0x2d, 0x03, 0xe2,
+ 0x73, 0x9a, 0x01, 0x5a, 0x80, 0x18, 0xfa, 0xee, 0xdf, 0xc0, 0x48, 0xcb,
+ 0xd4, 0x68, 0x11, 0xf7,
+ 0xe8, 0xdd, 0x9e, 0x27, 0xac, 0x8e, 0xa0, 0x69, 0x28, 0xfa, 0x2c, 0xe1,
+ 0x33, 0x07, 0x6a, 0x79,
+ 0xa1, 0xe1, 0x59, 0x04, 0x07, 0x54, 0x72, 0x0c, 0xfd, 0xe5, 0x6f, 0x83,
+ 0x9b, 0x1e, 0x80, 0x01,
+ 0x53, 0x7a, 0xea, 0x56, 0x89, 0xe4, 0x6c, 0xfa, 0x1b, 0x2c, 0xf9, 0x8d,
+ 0xba, 0x4a, 0x52, 0xf4,
+ 0xc9, 0x3a, 0xed, 0x13, 0x8f, 0xac, 0xcf, 0x35, 0x43, 0x29, 0xc2, 0xb9,
+ 0xd3, 0x91, 0x25, 0x74,
+ 0x8d, 0x25, 0xdd, 0xeb, 0x35, 0x69, 0x42, 0xfe, 0xf1, 0xce, 0xdc, 0x4d,
+ 0x72, 0x40, 0x93, 0x4a,
+ 0xe7, 0xf0, 0x9a, 0x8c, 0xe9, 0xee, 0xce, 0x57, 0xd2, 0x7c, 0xcf, 0x4b,
+ 0xe5, 0x64, 0x2e, 0x23,
+ 0x7f, 0xbe, 0x6e, 0xb9, 0xbb, 0xd9, 0x5c, 0x08, 0x17, 0x07, 0x4a, 0x43,
+ 0x53, 0x14, 0x41, 0xbf,
+ 0x86, 0x14, 0xfc, 0xa0, 0xd8, 0xf7, 0x4e, 0x23, 0xf2, 0xb4, 0x80, 0x9f,
+ 0xd9, 0xb6, 0xe7, 0x28,
+ 0x70, 0x93, 0x6a, 0x12, 0xfe, 0xb9, 0x32, 0x36, 0xed, 0x81, 0xa9, 0xe9,
+ 0x85, 0x77, 0x05, 0xe5,
+ 0x4e, 0x29, 0x89, 0x8b, 0x7d, 0x85, 0x78, 0x5e, 0x1e, 0xa2, 0x1d, 0x38,
+ 0x84, 0x93, 0xce, 0x52,
+ 0x1f, 0x5d, 0x90, 0xad, 0xa0, 0x1e, 0x25, 0x34, 0x98, 0xf0, 0x5a, 0x89,
+ 0xe1, 0x72, 0x84, 0xba,
+ 0x63, 0xea, 0x95, 0x5c, 0x65, 0x66, 0xb1, 0xe4, 0xbd, 0xb6, 0xf1, 0xe8,
+ 0xe3, 0x79, 0xd1, 0x17,
+ 0xe6, 0xf7, 0x02, 0xb4, 0xc3, 0x30, 0x37, 0x1f, 0x7d, 0x43, 0x90, 0x55,
+ 0x6b, 0xd0, 0x22, 0x2d,
+ 0xa7, 0xf3, 0x8f, 0x94, 0xfb, 0xd5, 0x21, 0x7f, 0x99, 0x67, 0x6e, 0xc7,
+ 0x39, 0x20, 0xa8, 0x25,
+ 0x35, 0x8b, 0xc2, 0xd2, 0x6e, 0xa2, 0x46, 0xb5, 0xf0, 0x59, 0xe8, 0x03,
+ 0xaa, 0x12, 0xbf, 0xd5,
+ 0x20, 0xe0, 0xeb, 0x0c, 0x09, 0xfc, 0x96, 0x14, 0xc4, 0xec, 0xb1, 0x46,
+ 0x6e, 0x22, 0x43, 0x03,
+ 0x0f, 0x2d, 0x04, 0xab, 0x45, 0x60, 0x6e, 0x3e, 0xfa, 0x86, 0xe3, 0xaa,
+ 0xd6, 0x63, 0x44, 0x5a,
+ 0x16, 0x62, 0x42, 0x96, 0x19, 0xff, 0x18, 0x79, 0x06, 0xf4, 0xb8, 0x67,
+ 0x95, 0x2f, 0xe8, 0xc4,
+ 0xf3, 0x9c, 0x2b, 0x6a, 0xa4, 0x6e, 0xe7, 0xbe, 0x49, 0xf6, 0xc9, 0x10,
+ 0xaf, 0xe0, 0xde, 0xfb,
+ 0xaf, 0xcb, 0xc5, 0x97, 0x68, 0xea, 0xe5, 0x7a, 0xa8, 0x5c, 0xd3, 0x37,
+ 0xc3, 0xc9, 0xc8, 0x55,
+ 0x22, 0xee, 0x18, 0x7c, 0x5d, 0x83, 0xa7, 0x84, 0x59, 0x92, 0x0f, 0x7a,
+ 0xb1, 0x89, 0x5b, 0x1f,
+ 0xb9, 0xa9, 0x87, 0x01, 0x71, 0x15, 0xfd, 0x03, 0xae, 0xa8, 0x6b, 0x50,
+ 0x56, 0xe6, 0x20, 0x91,
+ 0x1e, 0x5a, 0x08, 0x95, 0x8a, 0xc0, 0xdc, 0x7c, 0x37, 0xcf, 0x05, 0x97,
+ 0x6f, 0xc6, 0x88, 0xb4,
+ 0x25, 0xfb, 0x56, 0xd4, 0x8b, 0xdc, 0x0d, 0xbf, 0x92, 0x2f, 0x51, 0x20,
+ 0x9d, 0x03, 0x7f, 0x35,
+ 0xba, 0xa0, 0xec, 0x49, 0x0f, 0xb4, 0x35, 0xdb, 0x9c, 0xe9, 0x8a, 0x72,
+ 0x07, 0xf9, 0x34, 0x83,
+ 0xbd, 0xb5, 0xa2, 0xe1, 0xd9, 0xeb, 0x9f, 0xe0, 0x57, 0x54, 0xd4, 0x28,
+ 0x2b, 0x73, 0x10, 0xa9,
+ 0x8e, 0x2c, 0xb6, 0xa3, 0x4b, 0xc8, 0x8a, 0x26, 0xc3, 0x8f, 0x3d, 0x6f,
+ 0x23, 0x5f, 0x87, 0x58,
+ 0x5c, 0x57, 0xee, 0xfd, 0xcc, 0x84, 0x02, 0xc4, 0xe1, 0xaa, 0x1a, 0x27,
+ 0x6c, 0x29, 0x16, 0xae,
+ 0x41, 0x04, 0x8d, 0x20, 0x38, 0xe5, 0x16, 0x60, 0xe4, 0x24, 0xfe, 0x92,
+ 0x52, 0xf0, 0x8a, 0x08,
+ 0x6f, 0xce, 0xfa, 0xbf, 0x5e, 0xa7, 0x17, 0x02, 0x75, 0x71, 0xf3, 0x60,
+ 0x64, 0x05, 0x81, 0x5f,
+ 0x42, 0x0d, 0xe6, 0x68, 0x46, 0x44, 0xde, 0xb8, 0xd6, 0x65, 0x1f, 0xb0,
+ 0x03, 0xef, 0x9e, 0x1a,
+ 0x46, 0x11, 0xc3, 0x88, 0xee, 0xba, 0xbc, 0x5b, 0x2f, 0x99, 0xa0, 0xc8,
+ 0x7e, 0x7a, 0xae, 0x22,
+ 0x2b, 0xd1, 0xca, 0x47, 0xe4, 0x62, 0x9a, 0xc9, 0xc7, 0x96, 0xed, 0x94,
+ 0xc5, 0xd4, 0x37, 0x61,
+ 0xdc, 0x51, 0xc4, 0xcd, 0xe8, 0xf2, 0x1f, 0x94, 0x77, 0x9c, 0x9b, 0xfc,
+ 0x17, 0xa1, 0xd9, 0xa2,
+ 0xdf, 0x58, 0xaf, 0x85, 0x96, 0x53, 0xd7, 0x4c, 0x45, 0xdd, 0x7a, 0xde,
+ 0x46, 0xbe, 0xcd, 0xb0,
+ 0x43, 0x0a, 0x7e, 0x50, 0x6c, 0x9a, 0x27, 0xf0, 0x79, 0x5a, 0x40, 0xae,
+ 0x8d, 0x5b, 0x92, 0x14,
+ 0xe3, 0xec, 0xbf, 0x6c, 0x41, 0x10, 0xac, 0xb4, 0x2b, 0x80, 0x70, 0x33,
+ 0x98, 0xf1, 0x1e, 0x1b,
+ 0x29, 0xdf, 0x39, 0x37, 0xb0, 0x1d, 0xab, 0x59, 0x5a, 0xe8, 0x53, 0xa8,
+ 0x1a, 0x7f, 0x2f, 0x7d,
+ 0xb4, 0x8a, 0x70, 0xda, 0x60, 0x0a, 0xa2, 0xad, 0xc9, 0x50, 0x36, 0xc6,
+ 0x5f, 0x2e, 0x7c, 0xd7,
+ 0xcb, 0x34, 0x1e, 0x63, 0xdb, 0xd3, 0xfe, 0xa5, 0xde, 0x57, 0x7c, 0x85,
+ 0x0c, 0x3a, 0x3d, 0x68,
+ 0x32, 0x9e, 0x8c, 0x7a, 0xb8, 0xfd, 0xec, 0x8e, 0x3b, 0xe4, 0xb6, 0x59,
+ 0x86, 0x98, 0x9b, 0xff,
+ 0xda, 0x43, 0x12, 0x5d, 0x14, 0x73, 0x4c, 0xe7, 0x13, 0x1e, 0x9a, 0xb8,
+ 0xb5, 0x9f, 0xf1, 0x86,
+ 0xea, 0xd3, 0x6d, 0x57, 0xf8, 0xf1, 0x91, 0xf9, 0xb5, 0x84, 0x92, 0xdd,
+ 0xec, 0xac, 0x72, 0x65,
+ 0xbe, 0xbc, 0xc9, 0xa9, 0xa7, 0x4a, 0x57, 0x38, 0x65, 0x15, 0x35, 0x0a,
+ 0x7a, 0x6c, 0x04, 0xbb,
+ 0x03, 0x09, 0x6b, 0x48, 0x7e, 0xa1, 0xc8, 0xd8, 0x32, 0x41, 0xe1, 0x22,
+ 0x51, 0x1f, 0x14, 0x12,
+ 0xa5, 0xfd, 0x7c, 0xe4, 0xaf, 0xaa, 0x10, 0xef, 0x04, 0x19, 0xd0, 0xfb,
+ 0xe6, 0x8b, 0xb0, 0x39,
+ 0xa4, 0xfa, 0xe4, 0xdc, 0x85, 0x74, 0xe9, 0xa7, 0xab, 0x26, 0x8f, 0xe5,
+ 0x68, 0x3f, 0xbc, 0x37,
+ 0xab, 0xd7, 0xe0, 0x77, 0xc0, 0x14, 0x87, 0x99, 0x51, 0xa0, 0x6c, 0x4f,
+ 0xbe, 0x5c, 0xf8, 0x6d,
+ 0x64, 0xff, 0xdb, 0xf4, 0xb3, 0x39, 0x1b, 0xdf, 0x76, 0x0b, 0xaf, 0xb2,
+ 0xcf, 0xf3, 0xf5, 0x3d,
+ 0xad, 0xc5, 0x36, 0xe7, 0x3c, 0x95, 0xd4, 0xea, 0x35, 0x22, 0x6d, 0x0b,
+ 0x1c, 0x62, 0xd0, 0x49,
+ 0x4f, 0x2e, 0x11, 0xb3, 0x57, 0x5b, 0x81, 0x16, 0xb1, 0x9d, 0x42, 0x26,
+ 0x0a, 0x27, 0xc2, 0x5c,
+ 0x85, 0x1d, 0x97, 0xe8, 0xa6, 0x56, 0x86, 0xfb, 0xc0, 0xf5, 0x61, 0xbd,
+ 0x88, 0xa9, 0xf3, 0x3a,
+ 0xa0, 0xe6, 0xc1, 0x3c, 0x2d, 0x8a, 0x8b, 0x44, 0x52, 0xda, 0x30, 0x9d,
+ 0x15, 0xaa, 0x8c, 0x0f,
+ 0x13, 0x79, 0xff, 0x4e, 0x9b, 0xdf, 0x83, 0xd2, 0x50, 0x37, 0x58, 0x01,
+ 0x66, 0x0e, 0xd4, 0xf2,
+ 0xd4, 0x69, 0x8e, 0xce, 0x7b, 0xcd, 0xdb, 0x91, 0x46, 0xa7, 0x26, 0x0c,
+ 0xed, 0x48, 0xb9, 0xd2,
+ 0xfb, 0xa4, 0x61, 0x69, 0x37, 0x51, 0x23, 0xbb, 0x78, 0xcd, 0x74, 0xe0,
+ 0x55, 0x09, 0xbe, 0x8b,
+ 0xae, 0xcc, 0x5d, 0xaf, 0x42, 0x34, 0x1c, 0x32, 0x07, 0x63, 0x8c, 0x29,
+ 0x4d, 0x7d, 0xc4, 0x5b,
+ 0x94, 0x6a, 0x9b, 0xd6, 0x69, 0xf6, 0x34, 0xb9, 0x0d, 0xbc, 0x87, 0x80,
+ 0x31, 0x0c, 0x3f, 0xd4,
+ 0xde, 0x5f, 0x37, 0xbd, 0xbc, 0x8d, 0x2e, 0x04, 0xea, 0xe2, 0x25, 0xc0,
+ 0xc8, 0x0a, 0xc1, 0xbe,
+ 0xbb, 0xa7, 0x74, 0x71, 0x25, 0x6a, 0xcc, 0x93, 0x33, 0xd6, 0xd5, 0x6c,
+ 0x89, 0x4d, 0x38, 0x8d,
+ 0xce, 0x2f, 0xa3, 0xbb, 0x59, 0xf3, 0x65, 0x0e, 0x88, 0x94, 0x9c, 0xe3,
+ 0xff, 0x1b, 0x01, 0x5e,
+ 0xa2, 0xe8, 0x32, 0x4c, 0x79, 0xf5, 0xba, 0xd4, 0xcf, 0xa4, 0x8e, 0xa1,
+ 0xca, 0x01, 0x94, 0x13,
+ 0xf1, 0x92, 0xd8, 0x1a, 0xf0, 0x11, 0xd6, 0x2e, 0xd4, 0x88, 0x77, 0x2c,
+ 0x70, 0x4b, 0xc6, 0xe7,
+ 0x3d, 0xb3, 0x88, 0xd1, 0xfd, 0x9d, 0x82, 0xb0, 0xc1, 0x62, 0x55, 0xf3,
+ 0x50, 0xfb, 0xdf, 0xa5,
+ 0xb6, 0x84, 0x83, 0xaa, 0x34, 0x75, 0x93, 0x3d, 0x54, 0x2e, 0x88, 0xfa,
+ 0x80, 0x85, 0x64, 0xcb,
+ 0x61, 0xe4, 0x66, 0x2c, 0x31, 0x19, 0x80, 0x74, 0x20, 0xc8, 0x4f, 0xd4,
+ 0x3c, 0xd2, 0xc9, 0x0b,
+ 0x36, 0x82, 0xa9, 0x9a, 0x10, 0x03, 0x8e, 0x6d, 0xc2, 0x18, 0x09, 0x21,
+ 0xfb, 0x0d, 0xab, 0xc7,
+ 0xec, 0xc1, 0xbb, 0xc7, 0x04, 0x70, 0xc2, 0x8a, 0xd1, 0x06, 0x93, 0x99,
+ 0x4e, 0x92, 0x5a, 0x41,
+ 0xc8, 0x3d, 0x75, 0x2b, 0xa5, 0x72, 0x36, 0x7d, 0xec, 0x16, 0x9d, 0xa7,
+ 0x5d, 0x25, 0x29, 0x7a,
+ 0x52, 0x7d, 0x72, 0x6e, 0xa3, 0x3a, 0x95, 0xb2, 0xb4, 0x13, 0xa6, 0x93,
+ 0x34, 0xfe, 0x5e, 0xfa,
+ 0xb2, 0x98, 0xa6, 0x4a, 0x9c, 0x8b, 0xf1, 0xde, 0xad, 0xd2, 0x37, 0x82,
+ 0xfd, 0x10, 0x54, 0xf3,
+ 0xd0, 0x75, 0xab, 0x2e, 0xd3, 0x33, 0xb9, 0x72, 0xbf, 0x5b, 0x99, 0x74,
+ 0x90, 0xdd, 0x89, 0xea,
+ 0x72, 0x9d, 0x99, 0x62, 0xaa, 0xc6, 0x03, 0xa6, 0x70, 0xff, 0x17, 0xd5,
+ 0x5a, 0xdc, 0x1d, 0xf9,
+ 0xeb, 0xd4, 0xf5, 0x6f, 0xd2, 0x2f, 0x68, 0xb1, 0x1a, 0xbb, 0xcd, 0xc3,
+ 0x62, 0x18, 0x7e, 0x6b,
+ 0x96, 0x64, 0x68, 0xa6, 0x3d, 0x89, 0x05, 0x29, 0x90, 0xc2, 0x39, 0xbc,
+ 0xee, 0xa7, 0x27, 0xc8,
+ 0x0e, 0x2a, 0x9c, 0x93, 0x6f, 0xbe, 0x97, 0x76, 0x55, 0xb9, 0xbc, 0xb4,
+ 0x58, 0xd7, 0x48, 0x54,
+ 0xe2, 0xeb, 0x27, 0x54, 0x6b, 0xce, 0x55, 0xfc, 0x84, 0xbf, 0x2f, 0x2d,
+ 0x16, 0x45, 0x12, 0x15,
+ 0x56, 0x61, 0x57, 0x8e, 0x0b, 0xc4, 0xf7, 0x51, 0x4d, 0xef, 0x19, 0xeb,
+ 0x49, 0x6b, 0x6e, 0xc2,
+ 0x4c, 0x27, 0x7a, 0xfb, 0x29, 0xfa, 0x49, 0xce, 0x83, 0xdc, 0xa3, 0x04,
+ 0x5b, 0x38, 0xd6, 0x4e,
+ 0x40, 0x03, 0x15, 0x18, 0x12, 0x3b, 0xef, 0x28, 0x4b, 0x1b, 0xa1, 0x8c,
+ 0xdc, 0x44, 0x86, 0x06,
+ 0x37, 0x85, 0x31, 0xa2, 0x3a, 0xdd, 0x77, 0x25, 0x6d, 0x27, 0x56, 0x3f,
+ 0x75, 0xb9, 0xa7, 0xc9,
+ 0x92, 0x78, 0x4d, 0x46, 0x95, 0x77, 0x67, 0xca, 0x69, 0x3e, 0x86, 0xc4,
+ 0x93, 0x32, 0x17, 0xf0,
+ 0x44, 0x1f, 0x30, 0xf8, 0xba, 0xc5, 0x8d, 0xcb, 0xb2, 0xe7, 0x1e, 0xf4,
+ 0xa1, 0xd1, 0xb6, 0x3e,
+ 0x8f, 0x2b, 0x2e, 0x9b, 0x61, 0x16, 0x73, 0x6e, 0x6c, 0xb0, 0x62, 0x71,
+ 0xad, 0xeb, 0x8b, 0x56,
+ 0x59, 0x4c, 0x53, 0x25, 0x4e, 0xa4, 0x99, 0x6f, 0xb7, 0x69, 0xfa, 0x41,
+ 0x9f, 0x08, 0x2a, 0x98,
+ 0xdb, 0x44, 0x8a, 0x65, 0x3e, 0xad, 0xb5, 0xaf, 0xbc, 0x21, 0xc5, 0xa6,
+ 0x3b, 0x2b, 0xfd, 0x88,
+ 0x6d, 0xc0, 0x09, 0xcf, 0x0a, 0xd8, 0x26, 0x92, 0xe8, 0x0f, 0x4d, 0x5c,
+ 0xbb, 0xae, 0x99, 0x43,
+ 0x8c, 0x22, 0x45, 0xd3, 0x1f, 0xb7, 0xbb, 0xb6, 0x5e, 0xf1, 0x83, 0x53,
+ 0xfc, 0xf4, 0x9f, 0x44,
+ 0xd3, 0x7c, 0xc0, 0x66, 0xad, 0x92, 0x71, 0xaa, 0x8d, 0x1a, 0x78, 0x56,
+ 0xc1, 0xc2, 0x9d, 0xf8,
+ 0x88, 0x3e, 0x60, 0x33, 0xb7, 0x49, 0xd9, 0x55, 0xa7, 0x0d, 0x3c, 0x2b,
+ 0x81, 0x61, 0xaf, 0x7c,
+ 0x47, 0x16, 0x5b, 0xb0, 0xc4, 0x64, 0x45, 0x13, 0x80, 0xa6, 0xff, 0xd6,
+ 0xf0, 0xce, 0xa2, 0x2c,
+ 0xe5, 0xfe, 0x69, 0xfc, 0xbd, 0x91, 0xff, 0xc7, 0x4f, 0x02, 0x71, 0x77,
+ 0x3a, 0xcf, 0x36, 0x3f,
+ 0x2f, 0xcd, 0xef, 0xa7, 0x4c, 0x9c, 0xf8, 0x2a, 0x3e, 0x6a, 0x52, 0xec,
+ 0xb8, 0x41, 0x07, 0x59,
+ 0x12, 0x7e, 0x67, 0x76, 0xb1, 0x01, 0x7a, 0x9a, 0xff, 0x08, 0x07, 0x1f,
+ 0xe8, 0xba, 0xd8, 0xfc,
+ 0x8b, 0x37, 0x0b, 0x7b, 0xc9, 0xe8, 0x11, 0x8d, 0x95, 0x4c, 0xdd, 0x09,
+ 0xd0, 0x7e, 0xbb, 0x6e,
+ 0x11, 0x77, 0x0c, 0x3e, 0xcf, 0xa0, 0xb2, 0x42, 0xcd, 0x49, 0xe6, 0x3d,
+ 0xb9, 0xa5, 0xcc, 0xee,
+ 0x54, 0x6f, 0xa4, 0xfe, 0x5f, 0xbb, 0xc6, 0xc1, 0xd0, 0x91, 0xa7, 0xd7,
+ 0x96, 0xc0, 0x76, 0xde,
+ 0xa8, 0xde, 0x8b, 0x3f, 0xbe, 0xb5, 0x4f, 0x41, 0x63, 0xe1, 0x8d, 0x6d,
+ 0xef, 0x43, 0xec, 0x7f,
+ 0x87, 0x13, 0x64, 0x98, 0xf2, 0x29, 0xb7, 0x6b, 0x5d, 0x8b, 0xdf, 0x81,
+ 0x57, 0x02, 0xeb, 0x26,
+ 0x2d, 0xc3, 0x1c, 0xd7, 0x18, 0xe3, 0xc9, 0xba, 0xa3, 0x14, 0xec, 0xd0,
+ 0x67, 0xea, 0x1f, 0x45,
+ 0x5d, 0x50, 0x76, 0xc5, 0xe6, 0x5a, 0xfb, 0x8c, 0x4e, 0x95, 0x45, 0x39,
+ 0xe2, 0x9d, 0x1a, 0xa0,
+ 0x9d, 0x55, 0x49, 0xed, 0xd0, 0x17, 0x09, 0xf4, 0x93, 0xb8, 0x65, 0x6e,
+ 0x45, 0x51, 0x53, 0xaa,
+ 0x39, 0xaf, 0xad, 0x31, 0x55, 0x63, 0xe0, 0x53, 0x38, 0x9e, 0xea, 0x8b,
+ 0x2d, 0x6e, 0xef, 0x9d,
+ 0x5f, 0x5e, 0x85, 0xb5, 0xb2, 0x25, 0xca, 0x1c, 0xd3, 0xeb, 0xfb, 0x05,
+ 0x3d, 0x36, 0x02, 0xbc,
+ 0x26, 0xf2, 0x3d, 0x9c, 0xf5, 0x7d, 0xc5, 0x67, 0xa0, 0x6e, 0xb0, 0x02,
+ 0xcc, 0x1c, 0x6b, 0x27,
+ 0x05, 0x1b, 0xbd, 0xd8, 0x82, 0x20, 0x9b, 0xab, 0x56, 0xc3, 0xe0, 0x66,
+ 0xf3, 0x21, 0x3c, 0x36,
+ 0xd5, 0x6e, 0x16, 0xf6, 0x51, 0x13, 0x22, 0xd9, 0xe9, 0x98, 0x79, 0x12,
+ 0x63, 0xfc, 0xb5, 0xdc,
+ 0xfc, 0xb1, 0x2f, 0xc1, 0xe1, 0x0e, 0x89, 0x80, 0xb3, 0x70, 0x2a, 0xba,
+ 0x79, 0x83, 0x9a, 0xa1,
+ 0x19, 0x4f, 0x46, 0x3d, 0x5c, 0x9f, 0x76, 0x47, 0xfc, 0x72, 0x5b, 0xcd,
+ 0x43, 0x4c, 0xac, 0x9e,
+ 0x09, 0x3f, 0xd2, 0x3b, 0xb9, 0xe1, 0x3d, 0x4d, 0x9e, 0x04, 0xe2, 0xee,
+ 0x74, 0x5d, 0x6c, 0x7e,
+ 0xb3, 0x9f, 0x3e, 0x72, 0xb6, 0x55, 0x08, 0x96, 0x02, 0xed, 0x68, 0x9c,
+ 0x73, 0xa4, 0x58, 0xfd,
+ 0xfa, 0xa3, 0xf9, 0x51, 0x1d, 0x8f, 0xda, 0xf3, 0xd7, 0xf2, 0x2b, 0xfe,
+ 0xdb, 0xbd, 0xb2, 0x85,
+ 0xef, 0xc8, 0xd0, 0x8f, 0x7a, 0xd1, 0x0a, 0x52, 0xe3, 0x47, 0x72, 0xbb,
+ 0x1f, 0x8d, 0x4e, 0x53,
+ 0x0a, 0x36, 0xb9, 0x73, 0xc7, 0x40, 0xf5, 0x95, 0xac, 0x45, 0x03, 0xcc,
+ 0x25, 0x42, 0x78, 0x6c,
+ 0x30, 0x90, 0x7f, 0x0a, 0xec, 0x82, 0xdd, 0x1e, 0xa6, 0x9a, 0x08, 0x65,
+ 0x59, 0x33, 0x83, 0xe3,
+ 0xcd, 0x26, 0xc8, 0xf3, 0x27, 0x52, 0xad, 0xd6, 0xba, 0xd5, 0x7d, 0xc1,
+ 0xae, 0x04, 0x15, 0x4c,
+ 0xd6, 0x67, 0x7d, 0xbe, 0x2f, 0xb2, 0xea, 0x01, 0xdb, 0xd9, 0x98, 0x30,
+ 0x32, 0xe3, 0xa1, 0xce,
+ 0x6b, 0xd2, 0xdf, 0x5f, 0xf6, 0x59, 0x75, 0xe1, 0x8c, 0x8d, 0x4c, 0x18,
+ 0x19, 0x90, 0xb1, 0x67,
+ 0x08, 0x38, 0x4a, 0x03, 0x93, 0x3f, 0xc4, 0x05, 0x31, 0x3b, 0xbd, 0xf0,
+ 0xfa, 0xe9, 0x60, 0x70,
+ 0xb5, 0x8d, 0xe8, 0xe2, 0x4a, 0xd4, 0x5b, 0xe5, 0x66, 0x6f, 0x69, 0xd8,
+ 0xd1, 0x9a, 0x70, 0xd9,
+ 0x6e, 0xc9, 0x62, 0x87, 0x74, 0x79, 0xee, 0x4a, 0xda, 0x4e, 0xac, 0x7e,
+ 0xea, 0xb1, 0x8d, 0x51,
+ 0x65, 0xf8, 0x43, 0xcc, 0x99, 0xe7, 0xe2, 0x97, 0xd9, 0x34, 0xf0, 0xac,
+ 0x41, 0x47, 0xf9, 0x33,
+ 0xf5, 0x8e, 0xfd, 0xfa, 0x58, 0xef, 0xb4, 0xcd, 0x2d, 0x74, 0xc8, 0x54,
+ 0x0d, 0xde, 0xf6, 0xdf,
+ 0xaa, 0xd0, 0x78, 0x4f, 0xea, 0xca, 0x7e, 0xd1, 0xfe, 0x9f, 0x33, 0x51,
+ 0x30, 0xe8, 0xf4, 0x63,
+ 0x74, 0x8f, 0x4f, 0xf2, 0x56, 0x47, 0x50, 0xd5, 0x14, 0x7d, 0x16, 0x91,
+ 0xf8, 0xe2, 0x35, 0xdd,
+ 0x4b, 0x32, 0x34, 0x53, 0xff, 0xa5, 0xe3, 0xf5, 0x48, 0x61, 0xfd, 0x5e,
+ 0x77, 0xb2, 0xf2, 0x64,
+ 0xff, 0xb8, 0x44, 0x89, 0x9f, 0xaf, 0x41, 0x58, 0x81, 0x31, 0xcb, 0x98,
+ 0x28, 0x9c, 0x8e, 0xb3,
+ 0x81, 0x01, 0xb2, 0x08, 0x0e, 0xa8, 0xe4, 0x18, 0x39, 0x09, 0xde, 0xc5,
+ 0xf5, 0x3c, 0xc3, 0x02,
+ 0xc1, 0x02, 0xa7, 0x10, 0x1c, 0x93, 0x0b, 0x30, 0x72, 0x12, 0x7f, 0x49,
+ 0x29, 0x78, 0x45, 0x04,
+ 0xd1, 0x72, 0x33, 0x16, 0xf9, 0xed, 0x40, 0x3a, 0x10, 0x64, 0xc6, 0x6a,
+ 0x1e, 0x69, 0x85, 0xe4,
+ 0x28, 0xd8, 0xa1, 0x0f, 0x9a, 0xc3, 0x52, 0x11, 0xf5, 0xd7, 0x0c, 0xb6,
+ 0x94, 0xcb, 0x23, 0x73,
+ 0xb1, 0x91, 0xcd, 0x02, 0xe2, 0x2a, 0x39, 0x06, 0x9f, 0x93, 0xd6, 0xa0,
+ 0xac, 0x0f, 0x40, 0xe1,
+ 0x9b, 0x47, 0x9f, 0x7d, 0x2c, 0x96, 0x5a, 0x87, 0xf7, 0x3a, 0x64, 0x2a,
+ 0xe7, 0x6f, 0x7b, 0x8e,
+ 0xdd, 0x56, 0x5c, 0xf5, 0xc2, 0x2c, 0xe6, 0xdc, 0xd8, 0xa3, 0xc4, 0xe2,
+ 0x99, 0x15, 0xd5, 0xac,
+ 0x23, 0xe9, 0x80, 0x44, 0x77, 0x5d, 0x5e, 0xcc, 0xf6, 0xad, 0x50, 0x64,
+ 0x3f, 0x3d, 0x57, 0x11,
+ 0x3f, 0xbd, 0x7b, 0xa1, 0xa9, 0xe2, 0xb3, 0x20, 0x5c, 0x1c, 0xeb, 0xcf,
+ 0x8f, 0x50, 0xc7, 0xb9,
+ 0x02, 0x0e, 0xf3, 0x70, 0x54, 0x7f, 0x31, 0x90, 0x9d, 0x7e, 0xbe, 0x3c,
+ 0xdf, 0xab, 0x18, 0x1c,
+ 0x10, 0x70, 0x94, 0x06, 0xe5, 0x7e, 0x4b, 0x0a, 0x62, 0x76, 0xb9, 0x23,
+ 0x37, 0x11, 0xc0, 0xe0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x1a, 0x46, 0x2d, 0x75, 0x22, 0x3e, 0xbe, 0x9f, 0xce, 0x33, 0xba, 0xef,
+ 0x12, 0x53, 0xb8, 0x8c,
+ 0x60, 0xe3, 0xfe, 0x14, 0x1b, 0xc7, 0x79, 0x3c, 0x8f, 0xf7, 0x10, 0xca,
+ 0xb2, 0x66, 0xc5, 0x05,
+ 0x5a, 0x45, 0x38, 0x6d, 0x30, 0x05, 0x51, 0xb7, 0x85, 0x28, 0x1b, 0x63,
+ 0xce, 0x17, 0x3e, 0x8a,
+ 0x3e, 0xba, 0xe3, 0x99, 0x83, 0x3c, 0x4a, 0x68, 0xf3, 0x23, 0xb4, 0xd1,
+ 0x01, 0xe4, 0xcb, 0xb7,
+ 0x6a, 0xd5, 0x47, 0x67, 0xdc, 0x87, 0x8c, 0xa9, 0x23, 0xb2, 0x13, 0x06,
+ 0x97, 0x24, 0xbd, 0x69,
+ 0x71, 0x94, 0xf2, 0x2a, 0xd4, 0x67, 0xcb, 0x7e, 0x42, 0xbe, 0xf6, 0xf7,
+ 0x0b, 0xc3, 0x09, 0xeb,
+ 0x75, 0x88, 0xd7, 0xca, 0x7c, 0x99, 0xa9, 0x9d, 0xbb, 0x42, 0x49, 0x8f,
+ 0x76, 0x56, 0x39, 0xd3,
+ 0xb7, 0x83, 0x1b, 0x92, 0x1e, 0xab, 0x6a, 0x75, 0xfb, 0x11, 0xd7, 0xe4,
+ 0x0e, 0x31, 0x68, 0xc5,
+ 0x7a, 0xa5, 0xd3, 0x61, 0x39, 0xf9, 0xc7, 0xa3, 0x41, 0xc4, 0xaa, 0x25,
+ 0xa0, 0x35, 0x7d, 0x89,
+ 0xd9, 0x4a, 0x79, 0x15, 0x6a, 0xd2, 0x84, 0x3f, 0x21, 0x5f, 0x7b, 0x9a,
+ 0xe4, 0x80, 0xe5, 0x94,
+ 0x6c, 0xc7, 0x91, 0xf7, 0x20, 0x06, 0xdf, 0xda, 0x47, 0x30, 0x12, 0x42,
+ 0x35, 0x1a, 0x95, 0x4d,
+ 0x93, 0x7f, 0xd5, 0x7e, 0xbf, 0xa9, 0x9e, 0x82, 0xc6, 0x01, 0xd9, 0xda,
+ 0x1d, 0x86, 0x1b, 0xfe,
+ 0x45, 0x18, 0xa8, 0xc0, 0x90, 0x1b, 0x74, 0x83, 0x1d, 0xd8, 0x41, 0xea,
+ 0x2f, 0x65, 0xba, 0x30,
+ 0x9a, 0x40, 0x07, 0x45, 0x06, 0x48, 0xa3, 0xcf, 0x58, 0x05, 0x3b, 0x34,
+ 0x69, 0xdb, 0x77, 0x80,
+ 0x89, 0x39, 0xf8, 0x0b, 0x9d, 0x97, 0x20, 0x1d, 0x08, 0x32, 0x63, 0x35,
+ 0x0f, 0xd5, 0xa3, 0x72,
+ 0x3a, 0xa6, 0xc6, 0x79, 0x2b, 0xc2, 0x28, 0x8b, 0x0a, 0xdf, 0x0b, 0xa9,
+ 0x7c, 0x71, 0xfb, 0x8f,
+ 0x78, 0xab, 0x20, 0x11, 0x6d, 0x86, 0xf6, 0x33, 0xdc, 0xba, 0x14, 0x19,
+ 0x7f, 0x9e, 0x65, 0x95,
+ 0x1d, 0x53, 0x63, 0xdd, 0xf4, 0x61, 0x14, 0xa4, 0x05, 0x8e, 0xe4, 0xb5,
+ 0x3e, 0xd9, 0x9c, 0xa6,
+ 0x8a, 0x30, 0x93, 0x43, 0xe3, 0x36, 0xe8, 0xc5, 0x3a, 0x73, 0x82, 0x17,
+ 0x5e, 0xca, 0xb7, 0x60,
+ 0x97, 0x63, 0xf0, 0x9e, 0x17, 0x57, 0xfc, 0x61, 0x3f, 0xfd, 0x66, 0xa2,
+ 0x60, 0x13, 0x2b, 0xc6,
+ 0xf8, 0xad, 0x0a, 0x21, 0x49, 0xf0, 0xeb, 0x63, 0x4a, 0x8c, 0x95, 0xc2,
+ 0x04, 0x16, 0xaa, 0x99,
+ 0xf9, 0xaa, 0x92, 0x19, 0x63, 0x2e, 0x12, 0x2b, 0xe5, 0xb3, 0xca, 0xdc,
+ 0x8a, 0xa2, 0xa6, 0x97,
+ 0x58, 0x4b, 0xcb, 0x1d, 0x64, 0x7a, 0x60, 0x27, 0x18, 0x56, 0xa5, 0x5f,
+ 0x11, 0xbc, 0x26, 0x96,
+ 0x2c, 0xc4, 0x84, 0xef, 0x32, 0x3d, 0x30, 0xf2, 0x0c, 0x2b, 0xb3, 0xce,
+ 0xe9, 0x5e, 0x13, 0x4b,
+ 0x06, 0x12, 0xd6, 0x90, 0xfc, 0x81, 0x53, 0x73, 0x64, 0x82, 0x01, 0x44,
+ 0xa2, 0x3e, 0x28, 0x24,
+ 0xbc, 0xb2, 0x3a, 0xd9, 0xf3, 0x35, 0x66, 0xa8, 0xf8, 0x6b, 0x8b, 0x36,
+ 0xa5, 0xc7, 0x1c, 0xa7,
+ 0x9c, 0x52, 0xd1, 0xd5, 0xfa, 0xc9, 0xf0, 0xbc, 0x3c, 0x87, 0x3a, 0x70,
+ 0xcb, 0xe5, 0x5f, 0xa4,
+ 0x55, 0x68, 0x3c, 0xc6, 0x75, 0x65, 0x3f, 0x89, 0x7f, 0xae, 0xf8, 0xc9,
+ 0x18, 0x74, 0x7a, 0xd0,
+ 0x7c, 0xb7, 0x05, 0xf1, 0xc5, 0x78, 0x94, 0xd0, 0x25, 0x46, 0xab, 0x61,
+ 0x02, 0x0b, 0x55, 0xad,
+ 0x2a, 0xd6, 0x52, 0x7f, 0xce, 0xbc, 0x63, 0x81, 0x68, 0xa9, 0xb2, 0x8a,
+ 0x4b, 0x60, 0x3b, 0x6f,
+ 0x3b, 0xa1, 0x5e, 0x41, 0x01, 0x1c, 0xd1, 0xc3, 0xa5, 0xe0, 0x54, 0xb7,
+ 0xf2, 0xc5, 0xf7, 0x81,
+ 0x9f, 0x5b, 0xba, 0x9d, 0x84, 0x68, 0x38, 0x64, 0x0e, 0xc6, 0xdb, 0x52,
+ 0x9a, 0xfa, 0x4b, 0xb6,
+ 0xc6, 0x17, 0xe9, 0xb8, 0xca, 0xcc, 0xa1, 0x0b, 0xb9, 0xaf, 0x21, 0x13,
+ 0x05, 0xf2, 0x61, 0x2e,
+ 0x1c, 0x54, 0xfb, 0xe5, 0xde, 0xbf, 0xed, 0xec, 0xaa, 0xb1, 0xbb, 0xab,
+ 0xb0, 0x6d, 0x90, 0xa8,
+ 0xfe, 0xbf, 0xdc, 0xb1, 0xb5, 0x71, 0xb8, 0x10, 0x2e, 0x0e, 0x94, 0x86,
+ 0xa6, 0x28, 0x82, 0xbd,
+ 0x62, 0xed, 0x0d, 0x64, 0x4f, 0xb8, 0x48, 0xac, 0x12, 0x89, 0xae, 0xf6,
+ 0x6d, 0xcd, 0xdd, 0x19,
+ 0x7d, 0xb0, 0x9d, 0xc9, 0xef, 0xa6, 0x6d, 0x98, 0x8a, 0x79, 0xf4, 0x7f,
+ 0x8c, 0xbf, 0x59, 0xa3,
+ 0x21, 0xe7, 0x73, 0x34, 0x23, 0x22, 0x6f, 0x5c, 0x6b, 0xd3, 0xee, 0x58,
+ 0xe0, 0x96, 0x4f, 0x0d,
+ 0xc0, 0x05, 0x3f, 0x28, 0x36, 0x4d, 0xf2, 0x78, 0xdd, 0x2d, 0x20, 0x57,
+ 0xa7, 0xcc, 0x49, 0x0a,
+ 0xf2, 0x9b, 0xb3, 0x52, 0x8e, 0xb0, 0x1e, 0xf6, 0xe6, 0xc9, 0x96, 0x0e,
+ 0x21, 0x54, 0xd2, 0xf5,
+ 0xf7, 0x80, 0x0e, 0x8a, 0x0c, 0x90, 0x85, 0x5d, 0xb0, 0x0a, 0x76, 0x68,
+ 0xd2, 0x75, 0xee, 0xc3,
+ 0x33, 0x99, 0x14, 0x42, 0x92, 0x23, 0x15, 0xc6, 0x94, 0xdb, 0xe9, 0x47,
+ 0x08, 0x2c, 0x97, 0xf1,
+ 0x98, 0x4e, 0xf4, 0x35, 0x52, 0x37, 0x92, 0x5f, 0xc5, 0x7b, 0x85, 0x08,
+ 0xb6, 0x70, 0x6f, 0x9c,
+ 0xa9, 0xd9, 0x13, 0x07, 0x94, 0x6b, 0xb6, 0x09, 0xcc, 0xde, 0xd2, 0x73,
+ 0x61, 0xf7, 0xe0, 0x71,
+ 0x82, 0x08, 0xd9, 0x40, 0x70, 0x09, 0x2c, 0xc0, 0x0b, 0x48, 0x3f, 0xe7,
+ 0xa4, 0x23, 0xd7, 0x10,
+ 0x4d, 0x20, 0xe2, 0xc3, 0x03, 0x24, 0xb0, 0x86, 0x2c, 0xe3, 0xfc, 0x1a,
+ 0xd5, 0x8c, 0xda, 0x40,
+ 0xf4, 0x89, 0x65, 0xc2, 0x72, 0x31, 0x4d, 0x85, 0x82, 0x4b, 0x97, 0x4a,
+ 0x83, 0x6a, 0xfa, 0xd1,
+ 0xf6, 0x87, 0x96, 0xb2, 0x26, 0x4e, 0x7c, 0x15, 0x1f, 0x35, 0x29, 0x76,
+ 0x5c, 0xc1, 0xe2, 0xcd,
+ 0x14, 0x6c, 0xb1, 0xe6, 0x4d, 0x80, 0x29, 0xe9, 0x9b, 0x8a, 0x06, 0x5b,
+ 0x4a, 0x84, 0xf0, 0xd8,
+ 0x7b, 0xa2, 0x4b, 0x59, 0x13, 0x27, 0x3e, 0xeb, 0xee, 0xfb, 0xf5, 0x3b,
+ 0x2e, 0x81, 0x71, 0x87,
+ 0x79, 0xac, 0xb8, 0x29, 0x47, 0x58, 0x0f, 0x7b, 0x73, 0x85, 0x4b, 0x07,
+ 0xf1, 0x2a, 0x69, 0x9b,
+ 0x17, 0x65, 0xda, 0xae, 0x33, 0x21, 0xe1, 0x31, 0xa9, 0xcb, 0xe7, 0x79,
+ 0x1b, 0x9b, 0xe4, 0xca,
+ 0xf0, 0x95, 0x40, 0x22, 0xda, 0xcf, 0x2f, 0x66, 0x7b, 0xb7, 0x28, 0x32,
+ 0xfe, 0xff, 0xca, 0xe9,
+ 0xbf, 0xbb, 0x51, 0x91, 0x8d, 0x94, 0xae, 0x70, 0xca, 0x2a, 0x6a, 0x14,
+ 0xf4, 0xd8, 0x08, 0xb5,
+ 0xcf, 0x28, 0x3b, 0x83, 0x73, 0x2d, 0x9c, 0x46, 0x27, 0xab, 0xc3, 0xfd,
+ 0x71, 0xaf, 0x0d, 0x50,
+ 0x01, 0x07, 0x98, 0x38, 0x2a, 0xde, 0xf9, 0x48, 0xaf, 0x3f, 0x5f, 0x1e,
+ 0x8e, 0xb4, 0x0c, 0x0e,
+ 0xed, 0xc6, 0x23, 0xff, 0x2e, 0xae, 0x3b, 0xc2, 0x7e, 0x39, 0xcc, 0x87,
+ 0xc0, 0x26, 0x56, 0x4f,
+ 0xcc, 0x21, 0x50, 0xcb, 0x0d, 0x8c, 0x54, 0x9e, 0x15, 0xea, 0x22, 0xdf,
+ 0x20, 0xb0, 0x19, 0x42,
+ 0x15, 0x6b, 0x29, 0xde, 0x67, 0x5e, 0xd0, 0xa1, 0x34, 0xb5, 0x59, 0x45,
+ 0xc4, 0x30, 0xfc, 0xd6,
+ 0x27, 0xf5, 0xa5, 0xa4, 0xdf, 0xa3, 0x3c, 0x2f, 0x0f, 0x51, 0xef, 0x1c,
+ 0x42, 0xa8, 0x67, 0x29,
+ 0xa3, 0xef, 0xaa, 0x74, 0x53, 0x2b, 0x43, 0x9c, 0x60, 0x9b, 0xd1, 0xbf,
+ 0x44, 0xb5, 0x98, 0x1d,
+ 0x0b, 0x31, 0x21, 0x4b, 0xed, 0x9e, 0x0c, 0xdd, 0x03, 0x7a, 0x5c, 0xd2,
+ 0xab, 0xf6, 0x74, 0x62,
+ 0x38, 0xa8, 0x35, 0x09, 0x7f, 0xbd, 0x19, 0x1b, 0x97, 0xa1, 0xb5, 0x95,
+ 0xa3, 0xda, 0xe3, 0x93,
+ 0x57, 0x66, 0xcf, 0xb6, 0x21, 0x1a, 0x0e, 0x19, 0xe2, 0xd0, 0x46, 0xf5,
+ 0xc7, 0xdf, 0x62, 0xcc,
+ 0x67, 0xf6, 0xb0, 0xbc, 0xcd, 0x98, 0xd3, 0x07, 0x44, 0x4a, 0x4e, 0x90,
+ 0x9e, 0xec, 0xe1, 0x2f,
+ 0x83, 0x0f, 0x41, 0x78, 0x5a, 0xd7, 0xd5, 0x88, 0xa4, 0x77, 0x60, 0xf9,
+ 0x2a, 0x97, 0xdb, 0x1e,
+ 0x3c, 0xb4, 0x10, 0xe9, 0xd7, 0x43, 0x7b, 0xf8, 0x6e, 0x5d, 0x0a, 0xed,
+ 0xde, 0x4f, 0xd3, 0xab,
+ 0xfd, 0xb6, 0xb7, 0xf9, 0xcb, 0xd0, 0x70, 0xc8, 0x1c, 0x4f, 0x75, 0xa4,
+ 0xf7, 0x37, 0x96, 0xaf,
+ 0xac, 0xc2, 0xae, 0xdf, 0x16, 0x4b, 0x2d, 0xa2, 0x9a, 0x1d, 0x32, 0x15,
+ 0x92, 0xd6, 0xdc, 0x47,
+ 0x95, 0x6d, 0x03, 0xee, 0x43, 0x28, 0xcd, 0xf1, 0xa2, 0x83, 0xd8, 0x9e,
+ 0xbf, 0xb8, 0x33, 0xda,
+ 0x51, 0x74, 0x19, 0x26, 0xdd, 0x9b, 0x5d, 0x6a, 0x86, 0x52, 0x47, 0xb1,
+ 0x65, 0xe1, 0x4a, 0xe8,
+ 0xd2, 0x7b, 0x58, 0x5e, 0x87, 0x4c, 0x88, 0xe2, 0x22, 0x25, 0x27, 0x48,
+ 0x4f, 0x76, 0x91, 0xf6,
+ 0xe1, 0xe2, 0x4c, 0x1c, 0x15, 0x6f, 0x9d, 0x24, 0xb6, 0xfe, 0xce, 0x0f,
+ 0x47, 0x5a, 0x06, 0x07,
+ 0xe4, 0xf9, 0xf1, 0xc4, 0x97, 0x4f, 0x06, 0x8f, 0xe0, 0x3d, 0x2e, 0x69,
+ 0xb4, 0x7b, 0x3a, 0x31,
+ 0xa6, 0xf4, 0x17, 0xac, 0xd1, 0x0b, 0xd8, 0x37, 0x36, 0x58, 0x31, 0xd9,
+ 0xb7, 0x94, 0xa4, 0x2b,
+ 0x2e, 0xca, 0x77, 0x9f, 0x66, 0x42, 0x01, 0x62, 0x91, 0x55, 0x0d, 0xf2,
+ 0x36, 0xf5, 0x0b, 0x57,
+ 0x9e, 0x5c, 0x22, 0xa5, 0xae, 0xb6, 0xc1, 0x2c, 0xa1, 0xf9, 0x84, 0x4c,
+ 0x14, 0x4e, 0x47, 0xb8,
+ 0xb0, 0x96, 0x55, 0x3a, 0xc8, 0xf4, 0xc0, 0x4e, 0x30, 0xac, 0x89, 0xbe,
+ 0x22, 0xbb, 0x4c, 0xef,
+ 0x04, 0x1c, 0x25, 0xe0, 0xa8, 0xfe, 0x62, 0xe3, 0xf9, 0xfc, 0xbf, 0x78,
+ 0x7d, 0x95, 0x30, 0x38,
+ 0xca, 0x33, 0x86, 0x5b, 0xf1, 0x0d, 0x07, 0xed, 0x71, 0x68, 0x23, 0x9b,
+ 0x82, 0x8e, 0x31, 0x66,
+ 0xe0, 0xe5, 0xd4, 0x24, 0x3f, 0xb1, 0x64, 0x6c, 0x19, 0xc1, 0x91, 0x11,
+ 0xc9, 0xee, 0x0a, 0x09,
+ 0x7e, 0xb9, 0xf6, 0x81, 0x91, 0x07, 0xa5, 0x40, 0xb8, 0x38, 0x15, 0x5d,
+ 0xdd, 0xa0, 0x4d, 0xb1,
+ 0x66, 0xf1, 0x28, 0x84, 0xe7, 0x46, 0x2a, 0x4f, 0xeb, 0x75, 0x11, 0x8e,
+ 0x10, 0x58, 0xed, 0x21,
+ 0x50, 0x73, 0x81, 0x1e, 0xf7, 0x45, 0xa4, 0x22, 0x29, 0x6d, 0x18, 0xaf,
+ 0xeb, 0x55, 0x46, 0xe6,
+ 0x49, 0x3c, 0xc7, 0x23, 0xab, 0xda, 0xd2, 0x65, 0xd5, 0x1f, 0x43, 0x62,
+ 0xa8, 0x19, 0xea, 0x78,
+ 0x5b, 0x42, 0xa0, 0x55, 0x1a, 0xdb, 0xa8, 0xff, 0x2a, 0x17, 0x44, 0x7d,
+ 0x40, 0xa3, 0x32, 0x84,
+ 0x99, 0x49, 0x6c, 0x0d, 0x78, 0xe9, 0x6b, 0x17, 0x6a, 0x44, 0xda, 0x16,
+ 0x38, 0xc4, 0x63, 0x92,
+ 0x68, 0xdb, 0xb4, 0x17, 0x88, 0xf8, 0xbd, 0x39, 0xbe, 0xcc, 0xad, 0x3a,
+ 0x48, 0x8f, 0xa5, 0x75,
+ 0xe9, 0xda, 0x06, 0x1f, 0x86, 0x50, 0x59, 0x21, 0x87, 0xc5, 0x73, 0xff,
+ 0xbd, 0xb3, 0x66, 0x77,
+ 0xc5, 0x1e, 0x82, 0xf0, 0xb4, 0x6d, 0x69, 0xd3, 0x8b, 0xee, 0xc0, 0x31,
+ 0x54, 0xed, 0x75, 0x3c,
+ },
+ { /* 8 */
+ 0xd7, 0x48, 0x12, 0xa3, 0xbe, 0x29, 0x25, 0xd9, 0x10, 0xec, 0xae, 0xdf,
+ 0x6a, 0x2d, 0x01, 0xfc,
+ 0x63, 0x44, 0x11, 0xde, 0x60, 0x0e, 0x82, 0x6c, 0x92, 0x7c, 0xf2, 0x2a,
+ 0x20, 0xcb, 0xa0, 0xee,
+ 0x5e, 0x13, 0x74, 0x22, 0x3d, 0x0d, 0xaf, 0x72, 0xfa, 0x27, 0xc7, 0x23,
+ 0xaa, 0xd2, 0x47, 0xdd,
+ 0xaa, 0x8c, 0x23, 0x54, 0x8a, 0x01, 0x1b, 0x0a, 0x99, 0x88, 0x13, 0x07,
+ 0xc7, 0xb6, 0x5d, 0x11,
+ 0xea, 0x1f, 0x77, 0x5f, 0xe3, 0x2a, 0x08, 0xc7, 0x78, 0xb7, 0x9b, 0xd6,
+ 0xe0, 0x34, 0xe6, 0xcf,
+ 0x2a, 0x69, 0x8b, 0x42, 0x58, 0x57, 0x3d, 0x53, 0x98, 0xf6, 0xc0, 0x66,
+ 0x89, 0x71, 0xe8, 0x6e,
+ 0x29, 0x16, 0xe4, 0x73, 0x84, 0x86, 0x44, 0x75, 0x7a, 0x4b, 0xfe, 0x14,
+ 0x7c, 0x79, 0x4f, 0x31,
+ 0x9c, 0x8e, 0xc2, 0xa0, 0xaf, 0xee, 0x75, 0x63, 0xa6, 0xb0, 0x09, 0xcf,
+ 0x65, 0x26, 0x32, 0x16,
+ 0xe1, 0x4a, 0xf3, 0x57, 0x9b, 0xc6, 0x4b, 0xb0, 0x2f, 0xd4, 0xb4, 0x17,
+ 0xc8, 0xbd, 0x6e, 0xfb,
+ 0xa4, 0x58, 0x16, 0x0f, 0x55, 0x5d, 0xd3, 0x17, 0x2b, 0xef, 0x7e, 0x50,
+ 0x33, 0x27, 0xff, 0xc4,
+ 0xeb, 0x8b, 0x52, 0xf1, 0x16, 0x65, 0x9e, 0x64, 0x26, 0xdc, 0x30, 0xf8,
+ 0xb3, 0x8d, 0x3a, 0xfa,
+ 0x68, 0x11, 0x95, 0xd6, 0x18, 0xe2, 0xc1, 0x1b, 0xc5, 0x1f, 0xdd, 0xeb,
+ 0x08, 0x42, 0x28, 0xda,
+ 0x9d, 0x1a, 0xe7, 0x0e, 0x5a, 0xa1, 0xe3, 0xc0, 0xf8, 0xdb, 0xa2, 0xe1,
+ 0x36, 0x9f, 0xee, 0x23,
+ 0xae, 0x99, 0xb7, 0xa9, 0xd8, 0xfe, 0x06, 0xc3, 0x22, 0xe7, 0xfa, 0xbf,
+ 0x48, 0x17, 0xab, 0xc5,
+ 0x28, 0x82, 0xc1, 0xdd, 0x71, 0xc9, 0xd2, 0xd6, 0x24, 0x20, 0x55, 0x3a,
+ 0x2f, 0xc0, 0x93, 0x04,
+ 0xb7, 0x73, 0x6c, 0x4c, 0x02, 0xf6, 0xde, 0x93, 0x60, 0x2d, 0x62, 0x87,
+ 0xbf, 0xee, 0x06, 0x4d,
+ 0x55, 0x46, 0xf0, 0x2a, 0x45, 0xe1, 0xec, 0x05, 0xad, 0x44, 0xe8, 0xe2,
+ 0x82, 0x5b, 0xcf, 0xe9,
+ 0xd0, 0x22, 0xe9, 0x6f, 0x30, 0x07, 0x41, 0x36, 0x49, 0x3e, 0x79, 0x15,
+ 0x10, 0x84, 0x50, 0x77,
+ 0xaf, 0x0d, 0x92, 0x07, 0x2d, 0xb1, 0x90, 0x60, 0x7c, 0x8c, 0x51, 0x91,
+ 0x1b, 0xae, 0x77, 0xf0,
+ 0x62, 0xd0, 0x34, 0x70, 0x95, 0x41, 0x14, 0xcf, 0xcc, 0x17, 0x59, 0x04,
+ 0x73, 0x72, 0x7c, 0xdb,
+ 0xf7, 0xe0, 0x38, 0x47, 0x6b, 0xdd, 0xcd, 0x5e, 0x81, 0x12, 0xea, 0x56,
+ 0x98, 0x6c, 0xbd, 0x93,
+ 0xef, 0x9e, 0xc6, 0x0c, 0x44, 0x9a, 0x83, 0xad, 0x9d, 0xb3, 0xd9, 0x40,
+ 0x3c, 0x2c, 0xcc, 0x2e,
+ 0xb3, 0x66, 0xf8, 0xb1, 0x50, 0x09, 0xc3, 0x5a, 0xdb, 0x42, 0x8b, 0x3f,
+ 0x30, 0x4f, 0xf0, 0x99,
+ 0x2e, 0x7c, 0x1f, 0xbf, 0x0a, 0xa8, 0x20, 0x9a, 0x23, 0x99, 0x29, 0xde,
+ 0x06, 0xd0, 0x1e, 0xba,
+ 0x96, 0x4f, 0x63, 0x06, 0x22, 0x4d, 0xa0, 0xb7, 0xaf, 0xb8, 0x8d, 0x20,
+ 0x1e, 0x16, 0x66, 0x17,
+ 0x1f, 0x14, 0x05, 0x87, 0xa1, 0x69, 0x2a, 0x1c, 0x45, 0x73, 0xe4, 0xdc,
+ 0xde, 0xe9, 0x20, 0x36,
+ 0xa5, 0xcc, 0x33, 0xa1, 0xa0, 0x12, 0x45, 0xb4, 0x75, 0x84, 0xd5, 0x7e,
+ 0x60, 0x9e, 0x23, 0xf1,
+ 0x24, 0xbd, 0xbe, 0x19, 0x87, 0x0b, 0xf5, 0x4e, 0x2a, 0x91, 0xad, 0x31,
+ 0x7d, 0xe0, 0x4a, 0xbb,
+ 0x88, 0xcf, 0x43, 0x2f, 0x76, 0x6b, 0x1c, 0x08, 0xb4, 0xa0, 0xc2, 0xd2,
+ 0x93, 0x46, 0x9a, 0x14,
+ 0xfe, 0x5e, 0xf6, 0xd0, 0x3a, 0xaf, 0x61, 0xac, 0x6a, 0xa7, 0x50, 0xcb,
+ 0x16, 0x54, 0x4e, 0xcd,
+ 0x03, 0x7f, 0x6f, 0x31, 0xdc, 0xd1, 0x79, 0x26, 0xe2, 0xbd, 0x3e, 0x72,
+ 0xf5, 0x08, 0xa7, 0x5f,
+ 0x86, 0x1b, 0x76, 0x74, 0xa9, 0x37, 0xd4, 0x15, 0x06, 0xc7, 0xaf, 0x85,
+ 0x67, 0xd7, 0x38, 0xc1,
+ 0xf5, 0x0b, 0x72, 0xd8, 0x42, 0x43, 0x22, 0xdb, 0x3d, 0xc4, 0x7f, 0x0a,
+ 0x3e, 0xdd, 0xc6, 0xf9,
+ 0xf0, 0x8a, 0xc3, 0x8b, 0xe5, 0xf3, 0xa9, 0xb1, 0xd8, 0xc0, 0x3d, 0x9c,
+ 0xe2, 0xc5, 0xec, 0x18,
+ 0x64, 0x2e, 0xea, 0x12, 0xee, 0x20, 0xe6, 0x83, 0xcb, 0xae, 0x25, 0xe0,
+ 0x5a, 0x62, 0xf1, 0x65,
+ 0x21, 0x3c, 0x0f, 0x4a, 0x20, 0xbb, 0x7e, 0x24, 0xcf, 0x95, 0xef, 0xa7,
+ 0xa1, 0xf8, 0x60, 0x5a,
+ 0x1b, 0x01, 0x91, 0x7a, 0xf3, 0x96, 0x37, 0xd5, 0xfe, 0x1c, 0x0d, 0x64,
+ 0x51, 0x48, 0xd6, 0xe2,
+ 0x1d, 0xff, 0x4f, 0x18, 0x88, 0xf7, 0xc5, 0x99, 0xf9, 0xa5, 0x71, 0x80,
+ 0x78, 0x58, 0x5b, 0x5c,
+ 0x69, 0x85, 0xb0, 0x78, 0xed, 0xad, 0x57, 0xb8, 0x9b, 0x74, 0x76, 0xc5,
+ 0x5b, 0xfb, 0xf4, 0xef,
+ 0x89, 0x5b, 0x66, 0x81, 0x83, 0x24, 0x8a, 0xab, 0xea, 0xcb, 0x69, 0xfc,
+ 0xc0, 0xff, 0x46, 0x21,
+ 0x43, 0xec, 0x3b, 0x3a, 0xb5, 0xfa, 0x6a, 0xeb, 0x03, 0x82, 0xb6, 0xa3,
+ 0xd2, 0x8a, 0x1c, 0x81,
+ 0xd8, 0x08, 0x02, 0x56, 0x94, 0x3a, 0x7b, 0x67, 0xfc, 0xe0, 0x68, 0xa6,
+ 0xcd, 0x05, 0x7f, 0x1c,
+ 0x5b, 0x92, 0xc5, 0x71, 0x9a, 0xbd, 0x24, 0x18, 0x1f, 0x23, 0x85, 0xb5,
+ 0x76, 0xca, 0x6d, 0x3c,
+ 0xd1, 0xb6, 0xcc, 0xc1, 0xc5, 0x48, 0xd7, 0x95, 0x17, 0x55, 0xd2, 0x3b,
+ 0x43, 0x3d, 0x8c, 0x42,
+ 0x07, 0x6a, 0xfb, 0xcc, 0x8e, 0x2e, 0x64, 0xef, 0x59, 0xd2, 0xd7, 0xca,
+ 0x7a, 0xa9, 0x51, 0x8b,
+ 0x0a, 0xc1, 0xa1, 0xa6, 0x8d, 0xa3, 0xd5, 0xd4, 0x09, 0x08, 0x84, 0xef,
+ 0x7b, 0x30, 0x54, 0x01,
+ 0x25, 0x29, 0x9b, 0xb7, 0x72, 0x44, 0x63, 0xed, 0x74, 0xfa, 0x06, 0x1f,
+ 0x2e, 0x59, 0x96, 0x8e,
+ 0xa3, 0x32, 0xed, 0xc3, 0xdb, 0x73, 0xb7, 0xf8, 0x72, 0x3d, 0xa9, 0x9a,
+ 0x49, 0x8e, 0xae, 0x4f,
+ 0x22, 0x43, 0x60, 0x7b, 0xfc, 0x6a, 0x07, 0x02, 0x2d, 0x28, 0xd1, 0xd5,
+ 0x54, 0xf0, 0xc7, 0x05,
+ 0x61, 0xaf, 0x5b, 0x41, 0x49, 0x90, 0x6d, 0xe9, 0x2e, 0xaa, 0x67, 0x76,
+ 0x86, 0x7a, 0xdb, 0x84,
+ 0x14, 0x41, 0x81, 0x8f, 0xd9, 0x85, 0x69, 0x6b, 0x12, 0x10, 0xcb, 0x1d,
+ 0xf6, 0x60, 0xa8, 0x02,
+ 0xa6, 0xb3, 0x5c, 0x90, 0x7c, 0xc3, 0x3c, 0x92, 0x97, 0x39, 0xeb, 0x0c,
+ 0x95, 0x96, 0x84, 0xae,
+ 0x11, 0xc0, 0x30, 0xdc, 0x7e, 0x35, 0xe2, 0x01, 0xf7, 0x14, 0x89, 0x8b,
+ 0x2a, 0x78, 0x82, 0xe3,
+ 0x02, 0xeb, 0x4a, 0x9f, 0x29, 0x9e, 0xef, 0x85, 0xbc, 0xd6, 0x95, 0x5c,
+ 0xa6, 0xb1, 0x7b, 0x6a,
+ 0x2f, 0xe8, 0x3a, 0x11, 0xff, 0xe7, 0xb6, 0x39, 0x7d, 0xf2, 0x82, 0xf0,
+ 0x55, 0x69, 0xc2, 0x8f,
+ 0xca, 0xb7, 0x5d, 0xbb, 0x36, 0xde, 0xe0, 0x40, 0xe9, 0x49, 0xdf, 0x5f,
+ 0x12, 0x75, 0x5a, 0xa0,
+ 0x3c, 0xc3, 0x40, 0x52, 0xa8, 0x4c, 0xbb, 0xbd, 0x36, 0x30, 0x9e, 0x27,
+ 0xd9, 0xa0, 0x3b, 0x06,
+ 0x4e, 0x47, 0x61, 0x50, 0xb6, 0x77, 0xdb, 0xd0, 0x53, 0x58, 0xe5, 0x86,
+ 0xd3, 0x13, 0x19, 0x0b,
+ 0x7d, 0xc4, 0x31, 0xf7, 0x34, 0x28, 0x3e, 0xd3, 0x89, 0x64, 0xbd, 0xd8,
+ 0xad, 0x9b, 0x5c, 0xed,
+ 0xb9, 0xa7, 0x59, 0x17, 0xdd, 0xaa, 0x16, 0x8e, 0xd2, 0x4a, 0x0f, 0xd0,
+ 0x4b, 0x7f, 0xa4, 0x98,
+ 0x80, 0xe5, 0xa8, 0x16, 0xd2, 0x56, 0x26, 0x59, 0x01, 0x7e, 0xd3, 0x61,
+ 0x4e, 0xc7, 0xb5, 0x7f,
+ 0x04, 0x15, 0x94, 0xfd, 0x52, 0xff, 0x1d, 0xc9, 0xbb, 0x6f, 0xe9, 0xb8,
+ 0x8f, 0xa1, 0xf6, 0xd4,
+ 0x32, 0x17, 0x75, 0x09, 0x77, 0x10, 0x73, 0xa0, 0x84, 0x57, 0xf3, 0x70,
+ 0x2d, 0x31, 0x99, 0xd3,
+ 0xc6, 0x88, 0x22, 0x7f, 0xc0, 0x1c, 0xc7, 0xd8, 0xe7, 0xf8, 0x27, 0x54,
+ 0x40, 0x55, 0x83, 0x1f,
+ 0x41, 0x07, 0x71, 0xa5, 0x9c, 0x64, 0x85, 0x6e, 0xbf, 0x54, 0x23, 0xff,
+ 0x74, 0x3b, 0x67, 0xeb,
+ 0x0b, 0x55, 0x84, 0x08, 0x78, 0xec, 0x43, 0x77, 0x57, 0x63, 0x2f, 0xc1,
+ 0x28, 0x89, 0x88, 0x34,
+ 0xfb, 0xdf, 0x47, 0x83, 0x9d, 0x1f, 0xea, 0xc6, 0x8f, 0xa3, 0x12, 0x5d,
+ 0xca, 0x4c, 0x64, 0x2c,
+ 0x6f, 0x7b, 0x6e, 0x1a, 0x96, 0xcc, 0xa5, 0xf4, 0x9c, 0xcd, 0x0a, 0x21,
+ 0x72, 0xeb, 0x79, 0x51,
+ 0x4b, 0xc6, 0xd0, 0x03, 0x11, 0xc7, 0x50, 0xba, 0xb6, 0x5c, 0xa7, 0x10,
+ 0x0f, 0x0b, 0x33, 0xea,
+ 0xdc, 0x1d, 0x96, 0xab, 0xc6, 0xc5, 0x66, 0xae, 0x47, 0x8f, 0x81, 0x1e,
+ 0x42, 0xa4, 0x89, 0xc8,
+ 0x95, 0x30, 0x0c, 0x37, 0xfe, 0x9c, 0xd9, 0x91, 0x4d, 0x05, 0xb3, 0x52,
+ 0xeb, 0x1e, 0xc1, 0x48,
+ 0x84, 0xf0, 0x3c, 0xeb, 0x80, 0xa9, 0x3b, 0x90, 0xba, 0x11, 0x3a, 0xd9,
+ 0xc1, 0x66, 0x43, 0xab,
+ 0xbb, 0x4c, 0x13, 0x88, 0xf4, 0x34, 0xf9, 0x0b, 0x6e, 0x9c, 0x9a, 0x8c,
+ 0xed, 0xce, 0xdf, 0xf2,
+ 0xc7, 0x1c, 0x07, 0xd1, 0x35, 0x53, 0x51, 0x7b, 0xb9, 0x93, 0x8c, 0x7a,
+ 0x13, 0xec, 0x5f, 0x2a,
+ 0x16, 0xaa, 0xcb, 0x10, 0xf0, 0x1b, 0x86, 0xee, 0xae, 0xc6, 0x5e, 0x41,
+ 0x50, 0xd1, 0xd3, 0x68,
+ 0xde, 0xf6, 0xdc, 0x34, 0xef, 0x5b, 0x89, 0x2b, 0xfb, 0x59, 0x14, 0x42,
+ 0xe4, 0x15, 0xf2, 0xa2,
+ 0xdd, 0x89, 0xb3, 0x05, 0x33, 0x8a, 0xf0, 0x0d, 0x19, 0xe4, 0x2a, 0x30,
+ 0x11, 0x1d, 0x55, 0xfd,
+ 0x67, 0x51, 0x85, 0x23, 0x32, 0xf1, 0x9f, 0xa5, 0x29, 0x13, 0x1b, 0x92,
+ 0xaf, 0x6a, 0x56, 0x3a,
+ 0xe0, 0xde, 0xd6, 0xf9, 0x6e, 0x89, 0xdd, 0x13, 0x71, 0xbf, 0x1f, 0x39,
+ 0x9b, 0x04, 0xb2, 0xce,
+ 0xf4, 0x9f, 0x57, 0x76, 0xb7, 0x0c, 0xb4, 0x78, 0x63, 0xaf, 0xd4, 0x24,
+ 0x6d, 0x64, 0x1a, 0xcc,
+ 0x48, 0xb9, 0xbf, 0x32, 0xcd, 0x16, 0x29, 0x9c, 0x54, 0xe1, 0x99, 0x62,
+ 0xfa, 0x03, 0x94, 0xb5,
+ 0xe6, 0x20, 0x08, 0x9b, 0x15, 0xe8, 0x2f, 0x5f, 0x76, 0x06, 0x63, 0xdd,
+ 0xb2, 0x14, 0x3f, 0x70,
+ 0x6c, 0x04, 0x01, 0x2b, 0x4a, 0x1d, 0xdc, 0xd2, 0x7e, 0x70, 0x34, 0x53,
+ 0x87, 0xe3, 0xde, 0x0e,
+ 0x59, 0x79, 0x8f, 0xee, 0xb3, 0x23, 0xcb, 0x9d, 0xa3, 0xf5, 0x10, 0xe9,
+ 0xd0, 0x7b, 0x16, 0x56,
+ 0x50, 0xc7, 0x41, 0x79, 0xe2, 0x51, 0x67, 0x6f, 0x48, 0x40, 0xaa, 0x74,
+ 0x5e, 0x43, 0xe5, 0x08,
+ 0x78, 0x45, 0x80, 0xa4, 0x93, 0x98, 0xb5, 0xb9, 0x6c, 0x60, 0xff, 0x4e,
+ 0x71, 0x83, 0x76, 0x0c,
+ 0xda, 0xe3, 0x48, 0xc9, 0xbd, 0xa4, 0x94, 0xe2, 0x40, 0x36, 0xfd, 0xfa,
+ 0x6b, 0xb4, 0x04, 0x76,
+ 0xb4, 0x0c, 0x03, 0x7d, 0xde, 0x27, 0xa7, 0xb5, 0x82, 0x90, 0x5c, 0xf5,
+ 0x4a, 0xe6, 0xa1, 0x12,
+ 0x0c, 0x3f, 0x7f, 0xc4, 0xf6, 0xc2, 0x27, 0x98, 0x0e, 0xb1, 0xf8, 0x0b,
+ 0x52, 0x20, 0xd9, 0xbf,
+ 0xf2, 0x61, 0x89, 0x14, 0xcc, 0x6d, 0x46, 0x34, 0x64, 0x16, 0xa8, 0xc0,
+ 0x44, 0x74, 0x97, 0x72,
+ 0xbe, 0xcd, 0xa2, 0xdb, 0x53, 0x84, 0x72, 0x61, 0x8b, 0x98, 0xd8, 0x1a,
+ 0x31, 0xd6, 0xf5, 0x13,
+ 0xf3, 0xf5, 0xac, 0xba, 0x39, 0x22, 0xd0, 0x97, 0x3a, 0x7d, 0x03, 0xee,
+ 0x17, 0xcd, 0x4b, 0x47,
+ 0x91, 0x25, 0x98, 0xca, 0xac, 0x63, 0xc4, 0x58, 0xf6, 0x6a, 0x5a, 0xea,
+ 0x64, 0xbf, 0x37, 0x9c,
+ 0x5c, 0xf8, 0x3e, 0xbd, 0x14, 0x93, 0x40, 0xf7, 0x46, 0xf1, 0x52, 0x7f,
+ 0x0c, 0x63, 0x3c, 0xb7,
+ 0x17, 0x3e, 0xee, 0xbe, 0x05, 0x54, 0x10, 0x4d, 0xf0, 0xad, 0xf5, 0x6f,
+ 0x03, 0x68, 0x0f, 0x5d,
+ 0x7f, 0x2f, 0x7b, 0x68, 0x1d, 0xb6, 0xd1, 0x56, 0x35, 0xb2, 0x28, 0x84,
+ 0x0b, 0x2a, 0x27, 0x87,
+ 0x82, 0x0e, 0xe2, 0x89, 0xfb, 0xc8, 0xc9, 0xdc, 0xbd, 0xa8, 0x46, 0x3d,
+ 0xe8, 0x76, 0xce, 0x15,
+ 0xc0, 0x76, 0xfc, 0x1d, 0xbb, 0x7d, 0x35, 0x94, 0xe0, 0x41, 0x5b, 0xb0,
+ 0x69, 0x45, 0x0e, 0xa1,
+ 0xd5, 0xa3, 0x58, 0x3c, 0x97, 0xb7, 0xca, 0x5c, 0xac, 0x3a, 0x3b, 0x83,
+ 0xcc, 0x9c, 0x7a, 0x96,
+ 0xd9, 0x9c, 0x27, 0xf8, 0x61, 0x75, 0xed, 0xc4, 0xa2, 0x8b, 0xc3, 0x88,
+ 0x9e, 0xbc, 0xa3, 0x29,
+ 0xa0, 0x4d, 0x82, 0xf2, 0x07, 0xa2, 0xce, 0xde, 0x90, 0x80, 0x97, 0xe8,
+ 0xbc, 0x86, 0x09, 0x10,
+ 0xa8, 0x67, 0x69, 0xcb, 0xa3, 0x9f, 0xf4, 0x8f, 0x25, 0x5e, 0x86, 0x5b,
+ 0x61, 0x07, 0x26, 0x7b,
+ 0xad, 0xe6, 0xd8, 0x98, 0x04, 0x2f, 0x7f, 0xe5, 0xc0, 0x5a, 0xc4, 0xcd,
+ 0xbd, 0x1f, 0x0c, 0x9a,
+ 0xba, 0xd8, 0x36, 0x26, 0x01, 0x7b, 0x6f, 0xa8, 0x30, 0xf7, 0x31, 0xa2,
+ 0xbe, 0x77, 0x03, 0xc7,
+ 0xb1, 0x8d, 0xb2, 0x2e, 0x79, 0x97, 0x2c, 0xdf, 0x67, 0x94, 0x1e, 0x63,
+ 0x96, 0xfe, 0x8b, 0xf3,
+ 0xe3, 0xa1, 0xb9, 0xc8, 0xb2, 0x58, 0xa4, 0x35, 0x93, 0x02, 0x21, 0x4b,
+ 0x6e, 0x0c, 0x15, 0x91,
+ 0xb6, 0xe7, 0x49, 0xe2, 0xf7, 0xb9, 0x48, 0x30, 0x3e, 0x46, 0xc9, 0xa9,
+ 0xec, 0x57, 0xda, 0x78,
+ 0x20, 0xa8, 0x2a, 0xe4, 0xd5, 0xf4, 0xe8, 0x87, 0x91, 0xfe, 0x44, 0x89,
+ 0xf2, 0x41, 0xbc, 0x6f,
+ 0x9b, 0xe4, 0x39, 0x6c, 0x21, 0xc0, 0x11, 0x8c, 0xff, 0x62, 0xde, 0x05,
+ 0x1f, 0x8f, 0x63, 0x9d,
+ 0x85, 0x64, 0x19, 0x45, 0x75, 0xe6, 0xad, 0x33, 0xe4, 0x7a, 0x91, 0xf7,
+ 0x92, 0xdf, 0x9f, 0x9e,
+ 0x7e, 0xbb, 0x5e, 0xc6, 0xe8, 0xf9, 0x47, 0xf5, 0x6b, 0xd9, 0x83, 0xaa,
+ 0x58, 0x93, 0xfb, 0xb2,
+ 0x60, 0x3b, 0x7e, 0xef, 0xbc, 0xdf, 0xfb, 0x4a, 0x70, 0xc1, 0xcc, 0x58,
+ 0xd5, 0xc3, 0x07, 0xb1,
+ 0x37, 0x96, 0xc4, 0x5a, 0xd0, 0xa0, 0xf8, 0xca, 0x61, 0x53, 0xb1, 0xe6,
+ 0xf1, 0x29, 0xb3, 0x32,
+ 0xc4, 0x63, 0x68, 0xe0, 0xe9, 0x82, 0x28, 0x5d, 0x5b, 0x2e, 0xb2, 0x08,
+ 0xe6, 0xe4, 0xf8, 0x75,
+ 0xfa, 0x4b, 0x62, 0x2d, 0x68, 0x50, 0x7c, 0x65, 0xd1, 0xc8, 0xb9, 0x73,
+ 0x99, 0xf5, 0xb8, 0x19,
+ 0x51, 0x53, 0x64, 0xd7, 0x17, 0x1e, 0xf1, 0xcc, 0x16, 0x2b, 0x01, 0x5a,
+ 0x0d, 0xfa, 0x39, 0x3d,
+ 0xc9, 0xc8, 0x32, 0x8a, 0xea, 0x0f, 0x99, 0x66, 0x0b, 0xf4, 0xe1, 0x2d,
+ 0xe7, 0x7d, 0xfd, 0xff,
+ 0x01, 0x94, 0x25, 0xae, 0xf5, 0x4f, 0x96, 0xa3, 0x5e, 0x6b, 0xab, 0x2e,
+ 0x53, 0xb9, 0xdc, 0x35,
+ 0x0d, 0xab, 0x5a, 0x6a, 0x03, 0x8d, 0xb1, 0x3b, 0x50, 0xda, 0x53, 0x25,
+ 0x01, 0x99, 0x05, 0x8a,
+ 0x8a, 0x24, 0x09, 0xb0, 0x5f, 0xf5, 0xf3, 0x8d, 0x08, 0x76, 0x57, 0x8e,
+ 0x35, 0xf7, 0xe1, 0x7e,
+ 0x34, 0xe9, 0xab, 0x6b, 0x0c, 0x71, 0x81, 0xec, 0x83, 0xee, 0x8f, 0x94,
+ 0x04, 0x21, 0x14, 0x6d,
+ 0x4d, 0x38, 0x0e, 0x61, 0x6a, 0xa6, 0xa2, 0xf6, 0xb1, 0xe5, 0xdb, 0xf4,
+ 0x26, 0x1b, 0xbe, 0x54,
+ 0xb0, 0x19, 0x97, 0x80, 0x8c, 0xd8, 0xba, 0x7c, 0x39, 0xff, 0xb5, 0x4d,
+ 0xc5, 0x47, 0x57, 0xc6,
+ 0x49, 0x2d, 0x9a, 0x9c, 0x38, 0x59, 0xbf, 0x3f, 0x0a, 0x8a, 0x32, 0x4c,
+ 0xa9, 0xba, 0x48, 0x80,
+ 0x92, 0x5a, 0xf7, 0xfb, 0x70, 0xb2, 0xbd, 0x7e, 0x14, 0xd7, 0x64, 0x98,
+ 0x91, 0xb7, 0x90, 0xc3,
+ 0x18, 0x7e, 0xfe, 0x4b, 0x2f, 0x47, 0x4e, 0xf3, 0x1c, 0xa1, 0x33, 0x16,
+ 0xa4, 0x40, 0x71, 0xbd,
+ 0x72, 0x84, 0x21, 0x02, 0x1e, 0x3b, 0x60, 0x6d, 0x65, 0x68, 0x7b, 0xa1,
+ 0x0a, 0xb3, 0x22, 0x0d,
+ 0x53, 0xb8, 0x2e, 0x48, 0x3e, 0x80, 0x1e, 0x49, 0xaa, 0xfd, 0x94, 0x06,
+ 0xab, 0x4b, 0x42, 0x57,
+ 0x4a, 0x52, 0xf5, 0xad, 0xe4, 0x88, 0xc6, 0x19, 0xe8, 0x37, 0x0c, 0x3e,
+ 0x5c, 0xb2, 0xef, 0xdf,
+ 0x8d, 0x4e, 0xf2, 0x7c, 0xd1, 0xdb, 0x97, 0x62, 0x51, 0xa4, 0x80, 0x44,
+ 0x4f, 0x5e, 0xb0, 0xf5,
+ 0xab, 0x18, 0x06, 0xfa, 0x7f, 0x4e, 0x8d, 0xa9, 0xc7, 0xe3, 0xb8, 0x29,
+ 0x94, 0x0f, 0x81, 0x24,
+ 0x90, 0xb1, 0xbd, 0x64, 0x59, 0x2c, 0x52, 0xfb, 0xa8, 0x01, 0xf1, 0xc4,
+ 0x37, 0x06, 0xeb, 0xa9,
+ 0x4f, 0xd3, 0x44, 0xfe, 0x43, 0x38, 0x4d, 0x73, 0x0d, 0x33, 0x4e, 0xa8,
+ 0x80, 0xaa, 0xc5, 0x3e,
+ 0x9a, 0x70, 0x1c, 0xc2, 0xd4, 0x8f, 0x87, 0x2f, 0xa1, 0x09, 0x75, 0x2b,
+ 0x4c, 0x36, 0xbf, 0xa8,
+ 0xdb, 0x77, 0x6d, 0x67, 0x48, 0xeb, 0x02, 0x41, 0x1e, 0x5d, 0x56, 0xd4,
+ 0x38, 0x0d, 0xd8, 0x43,
+ 0xd6, 0xdc, 0x37, 0x0d, 0x4b, 0x66, 0xb3, 0x7a, 0x4e, 0x87, 0x05, 0xf1,
+ 0x39, 0x94, 0xdd, 0xc9,
+ 0x1a, 0x95, 0xb4, 0xd4, 0x06, 0xd9, 0xa1, 0x76, 0xa0, 0x77, 0xa6, 0x4a,
+ 0x02, 0xf1, 0x0a, 0xd7,
+ 0xbc, 0x26, 0xe8, 0x44, 0x7a, 0x1a, 0x9d, 0xe4, 0x37, 0x4e, 0x4d, 0x46,
+ 0x97, 0x67, 0x8e, 0x79,
+ 0x10, 0x54, 0x15, 0x72, 0x8b, 0x7a, 0x74, 0xa2, 0xa9, 0x7f, 0x22, 0xa5,
+ 0x79, 0xc1, 0x5e, 0xd6,
+ 0x93, 0xce, 0xd2, 0x55, 0x85, 0xfd, 0x2b, 0xdd, 0x4a, 0xbc, 0xcf, 0xb6,
+ 0xc2, 0x0e, 0x4c, 0xf6,
+ 0x9e, 0x65, 0x88, 0x3f, 0x86, 0x70, 0x9a, 0xe6, 0x1a, 0x66, 0x9c, 0x93,
+ 0xc3, 0x97, 0x49, 0x7c,
+ 0x97, 0xdb, 0x46, 0xa8, 0xd7, 0x02, 0x36, 0x14, 0xf1, 0xd3, 0x26, 0x0e,
+ 0x4d, 0xaf, 0xba, 0x22,
+ 0x30, 0xfc, 0x3f, 0x96, 0x5e, 0x8e, 0x9c, 0x25, 0x38, 0x81, 0x66, 0x2c,
+ 0x8b, 0x80, 0xe2, 0xb9,
+ 0x1e, 0x80, 0x20, 0x29, 0x54, 0x26, 0xbc, 0xbf, 0x1b, 0x18, 0x4f, 0xf2,
+ 0x8d, 0x50, 0xfc, 0x03,
+ 0x0f, 0x40, 0x10, 0xf5, 0x2a, 0x13, 0x5e, 0xbe, 0xec, 0x0c, 0xc6, 0x79,
+ 0xa7, 0x28, 0x7e, 0xe0,
+ 0x66, 0xc5, 0xa0, 0x8d, 0xc7, 0xbe, 0x09, 0x06, 0x77, 0x78, 0xb0, 0xbc,
+ 0xfc, 0xd3, 0x8a, 0x0f,
+ 0x77, 0x05, 0x90, 0x51, 0xb9, 0x8b, 0xeb, 0x07, 0x80, 0x6c, 0x39, 0x37,
+ 0xd6, 0xab, 0x08, 0xec,
+ 0x40, 0x93, 0x54, 0x0b, 0x69, 0x2b, 0x13, 0xcd, 0xe1, 0x3f, 0x88, 0xd1,
+ 0x27, 0x82, 0xbb, 0xde,
+ 0xa2, 0xa6, 0xc8, 0x6d, 0x2e, 0x3c, 0x21, 0x5b, 0x2c, 0x56, 0x02, 0xb4,
+ 0x1a, 0x37, 0x72, 0x7a,
+ 0xc1, 0xe2, 0xd9, 0xb3, 0x4e, 0x32, 0xa3, 0x37, 0xbe, 0x2a, 0xf0, 0x9e,
+ 0x3a, 0xfc, 0xd2, 0x94,
+ 0x6a, 0xfa, 0xdf, 0x49, 0x31, 0x7c, 0x2e, 0x9e, 0x79, 0xc9, 0x48, 0xb7,
+ 0xae, 0xf3, 0x53, 0xb0,
+ 0x12, 0xbf, 0x5f, 0xed, 0xa2, 0xe4, 0x9b, 0x27, 0x15, 0xa9, 0xb7, 0xf9,
+ 0xdf, 0x70, 0x25, 0xbc,
+ 0x54, 0xd2, 0xd5, 0x84, 0xb0, 0xae, 0x7a, 0xa6, 0xf3, 0x2f, 0x43, 0xcc,
+ 0xd1, 0xe2, 0x13, 0xdc,
+ 0x5f, 0x87, 0x51, 0x8c, 0xc8, 0x42, 0x39, 0xd1, 0xa4, 0x4c, 0x6c, 0x0d,
+ 0xf9, 0x6b, 0x9b, 0xe8,
+ 0xd3, 0x5d, 0x86, 0x5e, 0xec, 0xd6, 0x38, 0x10, 0xab, 0x83, 0x47, 0x67,
+ 0xe5, 0x8c, 0xf7, 0x28,
+ 0x65, 0xba, 0xcf, 0xbc, 0x1b, 0x6f, 0x70, 0x20, 0x95, 0xc5, 0x8e, 0xce,
+ 0x09, 0xdb, 0x2d, 0x50,
+ 0xa9, 0xf3, 0x4c, 0x65, 0x56, 0xd0, 0x62, 0x2c, 0x7b, 0x35, 0x2d, 0x75,
+ 0x32, 0xbe, 0xfa, 0x4e,
+ 0x3d, 0x57, 0x65, 0xfc, 0x5d, 0x03, 0x2d, 0x1e, 0x68, 0x5b, 0x35, 0x09,
+ 0x8a, 0x19, 0xe7, 0x33,
+ 0x44, 0x86, 0xc0, 0xf6, 0x3b, 0xd4, 0x0e, 0x04, 0x5a, 0x50, 0x61, 0x69,
+ 0xa8, 0x23, 0x4d, 0x0a,
+ 0x81, 0x71, 0x8d, 0xb8, 0x27, 0x19, 0xb0, 0xfa, 0x5f, 0x15, 0x78, 0x4f,
+ 0x1d, 0x7e, 0x69, 0x4a,
+ 0xfc, 0xb5, 0xbc, 0x4f, 0x13, 0x31, 0x8e, 0x29, 0xd6, 0x71, 0xc5, 0x97,
+ 0xb0, 0xe5, 0x35, 0xa7,
+ 0xdf, 0x62, 0xf9, 0x9a, 0x1a, 0x14, 0x1f, 0x88, 0xa5, 0x32, 0xbf, 0x6c,
+ 0xb7, 0xac, 0x2e, 0x97,
+ 0x46, 0x6d, 0x8a, 0x69, 0x12, 0x4a, 0xe1, 0x81, 0xe6, 0x86, 0xf4, 0x35,
+ 0x0e, 0x92, 0x36, 0x60,
+ 0xf8, 0xa0, 0x28, 0xb2, 0x41, 0xce, 0x93, 0xe0, 0x6d, 0x1e, 0x2c, 0x2f,
+ 0x3f, 0x44, 0xc3, 0x73,
+ 0xcc, 0x49, 0x83, 0xd9, 0x4d, 0xbf, 0x12, 0x0c, 0xee, 0xf0, 0xa3, 0xbb,
+ 0x3b, 0x65, 0xd7, 0x1e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x52, 0x2c, 0x0b, 0xe6, 0xcb, 0xcf, 0x88, 0xea, 0xf4, 0x96, 0x3f, 0x28,
+ 0xf8, 0xf2, 0x9e, 0x62,
+ 0xed, 0x75, 0x8c, 0x93, 0x6d, 0x04, 0x6c, 0x28, 0x21, 0x65, 0x4c, 0x1c,
+ 0x9a, 0x9d, 0xb7, 0x44,
+ 0xe4, 0xcb, 0x42, 0x04, 0x3c, 0x76, 0xc0, 0xda, 0xca, 0xd0, 0xf6, 0x81,
+ 0x14, 0xa5, 0x44, 0x1a,
+ 0x3a, 0x3d, 0x9e, 0x30, 0xd3, 0x2d, 0x49, 0xf1, 0x31, 0x89, 0xe2, 0xc3,
+ 0xf0, 0xb0, 0xb6, 0xb8,
+ 0x73, 0x10, 0x04, 0xac, 0xeb, 0x74, 0xf6, 0xce, 0x3b, 0x03, 0xd0, 0x8f,
+ 0x59, 0x0a, 0xfe, 0x38,
+ 0x5d, 0x6c, 0x1b, 0x13, 0xe1, 0xdc, 0xd6, 0x54, 0x18, 0x9a, 0xf9, 0x51,
+ 0x5f, 0xda, 0xe0, 0x82,
+ 0x6e, 0xef, 0x4b, 0xb4, 0x63, 0x83, 0x33, 0x57, 0xc2, 0xa6, 0xa1, 0x0f,
+ 0x21, 0x52, 0xa5, 0x64,
+ 0x8f, 0xa5, 0xb8, 0xe3, 0xf8, 0x45, 0x78, 0xe7, 0xed, 0x72, 0x15, 0x18,
+ 0xe9, 0xef, 0xcb, 0x9f,
+ 0xbf, 0x59, 0x87, 0x75, 0xa6, 0xcb, 0xe4, 0xc2, 0xd5, 0xf3, 0x73, 0x34,
+ 0x62, 0x6f, 0x29, 0x26,
+ 0xcf, 0x36, 0xec, 0xe8, 0x91, 0x6e, 0x6b, 0x2a, 0x0c, 0x4d, 0x9d, 0xc9,
+ 0xce, 0x6d, 0x70, 0x41,
+ 0xb8, 0x33, 0x7c, 0xb9, 0x28, 0xe5, 0x80, 0x2d, 0x8c, 0x21, 0xa4, 0xfe,
+ 0x18, 0xc6, 0x78, 0xad,
+ 0xe7, 0xb4, 0x2d, 0x35, 0xe0, 0xa7, 0xb9, 0xfc, 0x28, 0x6d, 0xc8, 0xf3,
+ 0xe1, 0xad, 0xe3, 0x45,
+ 0xf9, 0x34, 0x0d, 0x1c, 0xb4, 0x81, 0x05, 0x43, 0x33, 0x75, 0x87, 0x01,
+ 0x6c, 0xfd, 0x1f, 0x46,
+ 0xfd, 0x21, 0x99, 0xe1, 0xe6, 0x7e, 0x18, 0x8a, 0x88, 0x1a, 0x6e, 0xb9,
+ 0xe3, 0x5c, 0xe9, 0x92,
+ 0xb5, 0x98, 0x26, 0xd3, 0x2b, 0x68, 0x31, 0x16, 0xdc, 0xfb, 0xf7, 0xdb,
+ 0x19, 0x5f, 0x7d, 0x27,
+ 0x09, 0xbe, 0xce, 0x97, 0x51, 0x72, 0xac, 0xf2, 0xeb, 0xb5, 0xba, 0x9d,
+ 0x8e, 0x38, 0xf3, 0x5e,
+ 0x47, 0xf9, 0xaf, 0xc7, 0xe7, 0x05, 0x77, 0x22, 0xb8, 0xed, 0x5f, 0x1b,
+ 0x5d, 0x2b, 0xea, 0x55,
+ 0xe5, 0x5f, 0x67, 0xaa, 0xc9, 0x39, 0x56, 0x79, 0x94, 0xbb, 0x5d, 0xaf,
+ 0x47, 0x1c, 0x98, 0x2f,
+ 0x31, 0x68, 0x1a, 0x38, 0xab, 0xc1, 0x0a, 0x86, 0x66, 0xea, 0xcd, 0x02,
+ 0xd8, 0x39, 0x3e, 0x8c,
+ 0xd4, 0x37, 0x7d, 0x92, 0x62, 0xf8, 0x5c, 0xff, 0xf2, 0x51, 0x90, 0xad,
+ 0x9f, 0x25, 0xa6, 0xa3,
+ 0xe8, 0xf4, 0x3d, 0xc0, 0xca, 0xb4, 0xe7, 0x42, 0xc4, 0x61, 0x0e, 0x8a,
+ 0x46, 0x85, 0x9d, 0xa5,
+ 0x94, 0xa4, 0x29, 0x99, 0x0b, 0xd3, 0x4f, 0x32, 0x13, 0x6e, 0x18, 0x7c,
+ 0xb8, 0xa7, 0x1d, 0x7d,
+ 0x1c, 0x6b, 0x6a, 0xb6, 0x7d, 0xb8, 0x53, 0x3a, 0xa7, 0xce, 0xda, 0xae,
+ 0x2b, 0xe1, 0x87, 0x69,
+ 0x0e, 0xd4, 0x35, 0x5b, 0xdf, 0x5c, 0xc8, 0x1d, 0xb2, 0x67, 0x6d, 0x57,
+ 0xf4, 0x91, 0xa2, 0xd5,
+ 0xcb, 0x23, 0x78, 0x15, 0xc3, 0x91, 0x76, 0xe3, 0xb7, 0x22, 0x74, 0x71,
+ 0x41, 0xcc, 0x86, 0x95,
+ 0x6d, 0x90, 0x24, 0x85, 0xbf, 0x52, 0x4a, 0x71, 0x20, 0x1b, 0x9f, 0x7d,
+ 0xd4, 0x5a, 0x02, 0x3b,
+ 0x36, 0x02, 0xe1, 0xf4, 0x25, 0xef, 0x6e, 0x69, 0x3f, 0x38, 0x1a, 0xc8,
+ 0xa2, 0x90, 0x6f, 0x07,
+ 0x35, 0x7d, 0x8e, 0xc5, 0xf9, 0x3e, 0x17, 0x4f, 0xdd, 0x85, 0x24, 0xba,
+ 0x57, 0x98, 0xc8, 0x58,
+ 0x74, 0x7a, 0xff, 0x60, 0x65, 0x5a, 0x92, 0x21, 0x62, 0xd1, 0x07, 0x45,
+ 0x23, 0xa3, 0xaf, 0xb3,
+ 0xc5, 0xf7, 0x4d, 0x4e, 0x1c, 0xcd, 0xbe, 0xfe, 0x05, 0x45, 0x19, 0x26,
+ 0xb5, 0x5d, 0x24, 0x40,
+ 0x75, 0xee, 0xda, 0xce, 0x90, 0x15, 0x04, 0x82, 0x3c, 0xba, 0xac, 0x6b,
+ 0x70, 0x1a, 0x73, 0x86,
+ 0xb2, 0xf2, 0xdd, 0x1f, 0xa5, 0x46, 0x55, 0xf9, 0x85, 0x29, 0x20, 0x11,
+ 0x63, 0xf6, 0x2c, 0xac,
+ 0xd2, 0xc9, 0xa3, 0xf0, 0x19, 0x99, 0xae, 0xb3, 0xf5, 0xe8, 0xec, 0x49,
+ 0xb6, 0x35, 0x2b, 0x1d,
+ 0x99, 0x0f, 0x73, 0xf3, 0x08, 0x5e, 0xfe, 0x09, 0x43, 0xb4, 0x4b, 0x59,
+ 0xb9, 0x3e, 0x18, 0xf7,
+ 0x23, 0xd7, 0x45, 0xd5, 0x09, 0x25, 0x91, 0xa1, 0x73, 0x43, 0x7a, 0xfb,
+ 0x07, 0x49, 0x1b, 0x30,
+ 0x15, 0xd5, 0xa4, 0x21, 0x2c, 0xca, 0xff, 0xc8, 0x4c, 0x7b, 0x60, 0x33,
+ 0xa5, 0xd9, 0x74, 0x37,
+ 0x08, 0x2a, 0xeb, 0x39, 0xa4, 0x3d, 0x3a, 0x51, 0xb5, 0xde, 0x11, 0xb3,
+ 0xdd, 0x81, 0x2f, 0x6b,
+ 0x27, 0xc2, 0xd1, 0x28, 0x5b, 0xda, 0x8c, 0x68, 0xc8, 0x2c, 0x93, 0x43,
+ 0x88, 0xe8, 0xed, 0xe4,
+ 0x19, 0xea, 0xdb, 0xe5, 0xda, 0x08, 0xd8, 0x50, 0x42, 0xca, 0x98, 0x38,
+ 0xf7, 0xf9, 0xad, 0x88,
+ 0x76, 0x91, 0xb5, 0xff, 0x4c, 0xc4, 0x7d, 0xa4, 0xde, 0x07, 0x92, 0x19,
+ 0x85, 0x12, 0xd4, 0xd9,
+ 0x39, 0x42, 0xf1, 0x01, 0x0f, 0xfc, 0x30, 0xd7, 0xd3, 0x34, 0xdc, 0xb1,
+ 0x05, 0xb8, 0x11, 0xe7,
+ 0x13, 0x2b, 0x7a, 0x43, 0x57, 0xab, 0x0d, 0x84, 0x4b, 0xc2, 0x1c, 0xd7,
+ 0x8c, 0xc9, 0xf9, 0x89,
+ 0x05, 0x81, 0xb1, 0x53, 0xa7, 0xb0, 0x8b, 0x6a, 0xe5, 0x04, 0x42, 0x96,
+ 0xdc, 0x18, 0x2a, 0xe1,
+ 0xee, 0x0a, 0xe3, 0xa2, 0xb1, 0xd5, 0x15, 0x0e, 0xc3, 0xd8, 0x72, 0x6e,
+ 0x6f, 0x95, 0x10, 0x1b,
+ 0x57, 0xad, 0xba, 0xb5, 0x6c, 0x7f, 0x03, 0x80, 0x11, 0x92, 0x7d, 0xbe,
+ 0x24, 0xea, 0xb4, 0x83,
+ 0x9f, 0xf1, 0xad, 0x91, 0x73, 0x3f, 0x0c, 0x45, 0x44, 0x0d, 0x37, 0xbd,
+ 0x90, 0x2e, 0x95, 0x49,
+ 0xbd, 0xb2, 0xcd, 0xea, 0x8f, 0x55, 0x0b, 0x47, 0x69, 0x25, 0xe6, 0x68,
+ 0xc4, 0xde, 0x52, 0x4c,
+ 0x45, 0x12, 0xe5, 0x58, 0xce, 0x9b, 0x98, 0xa7, 0x04, 0x3b, 0xca, 0x47,
+ 0xfb, 0x9a, 0x91, 0x3f,
+ 0xff, 0xca, 0xd3, 0x7e, 0xcf, 0xe0, 0xf7, 0x0f, 0x34, 0xcc, 0xfb, 0xe5,
+ 0x45, 0xed, 0x92, 0xf8,
+ 0xc3, 0x09, 0x93, 0x2c, 0x67, 0xac, 0x4c, 0xb2, 0x02, 0xfc, 0x65, 0xc2,
+ 0x9c, 0x4d, 0xa9, 0xfe,
+ 0x3b, 0xa9, 0xbb, 0x9e, 0x26, 0x62, 0xdf, 0x52, 0x6f, 0xe2, 0x49, 0xed,
+ 0xa3, 0x09, 0x6a, 0x8d,
+ 0x7b, 0x3a, 0xef, 0x95, 0x4f, 0x49, 0xcc, 0x9f, 0x8e, 0xdd, 0xc1, 0x3c,
+ 0x84, 0x8b, 0xd1, 0x53,
+ 0x8e, 0x31, 0x9d, 0x4d, 0x0d, 0x0a, 0xee, 0x44, 0xb3, 0x19, 0xbe, 0x36,
+ 0xba, 0x56, 0x17, 0xaa,
+ 0xe9, 0x60, 0x18, 0x6e, 0x3f, 0xfb, 0x71, 0xe1, 0x9a, 0x0a, 0xa5, 0xa4,
+ 0x15, 0x3c, 0x41, 0x90,
+ 0xc8, 0x5c, 0x17, 0x24, 0x1f, 0x40, 0x0f, 0xc5, 0x55, 0x9f, 0x4a, 0x03,
+ 0xb4, 0xc4, 0x21, 0xca,
+ 0x7c, 0x50, 0x14, 0x59, 0xc1, 0x67, 0xa8, 0x70, 0xd7, 0x0f, 0x16, 0xf6,
+ 0xfe, 0x22, 0x80, 0xd8,
+ 0x6b, 0x6e, 0xfa, 0xe7, 0xc4, 0x33, 0xb8, 0x3d, 0x27, 0xa2, 0xe3, 0x99,
+ 0xfd, 0x4a, 0x8f, 0x85,
+ 0x4c, 0xac, 0x2b, 0xcf, 0x9f, 0xe9, 0x34, 0x55, 0xef, 0x8e, 0x70, 0xda,
+ 0x75, 0xa2, 0x62, 0x61,
+ 0x83, 0x9a, 0xc7, 0x27, 0x0e, 0x87, 0x5f, 0x7f, 0xe3, 0xc3, 0xed, 0x13,
+ 0xbb, 0xcf, 0x12, 0x20,
+ 0xec, 0xe1, 0xa9, 0x3d, 0x98, 0x4b, 0xfa, 0x8b, 0x7f, 0x0e, 0xe7, 0x32,
+ 0xc9, 0x24, 0x6b, 0x71,
+ 0x70, 0x6f, 0x6b, 0x9d, 0x37, 0xa5, 0x8f, 0xe8, 0xd9, 0xbe, 0xee, 0xfd,
+ 0xac, 0x02, 0x59, 0x67,
+ 0xe2, 0x35, 0x9c, 0x66, 0x47, 0x17, 0x32, 0x96, 0xcd, 0x69, 0x8a, 0x65,
+ 0x3d, 0xb5, 0xc9, 0xa4,
+ 0xf1, 0x1e, 0xe6, 0x25, 0x10, 0xbc, 0x3f, 0x12, 0x86, 0xab, 0x96, 0xb2,
+ 0xb1, 0x7c, 0x30, 0x2d,
+ 0xcd, 0xdd, 0xa6, 0x77, 0xb8, 0xf0, 0x84, 0xaf, 0xb0, 0x9b, 0x08, 0x95,
+ 0x68, 0xdc, 0x0b, 0x2b,
+ 0x5a, 0x06, 0xe0, 0xdf, 0x6f, 0xf2, 0xb2, 0xbb, 0x41, 0x48, 0x2e, 0x9b,
+ 0x25, 0x73, 0xb1, 0x09,
+ 0x2b, 0xfd, 0xae, 0xec, 0xad, 0x18, 0xab, 0xf0, 0xc6, 0x9d, 0x6b, 0x48,
+ 0xda, 0xc8, 0x34, 0x5b,
+ 0xc2, 0x9d, 0xb6, 0x82, 0x92, 0xe3, 0xda, 0x11, 0x5c, 0x97, 0xce, 0xec,
+ 0xcf, 0xf4, 0x75, 0xcb,
+ 0xa7, 0x27, 0x79, 0x3e, 0x89, 0x8c, 0xaa, 0x31, 0xc9, 0x52, 0x40, 0x22,
+ 0xc6, 0x2f, 0x58, 0x9b,
+ 0xa1, 0xd9, 0xa7, 0x5c, 0xf2, 0xed, 0x58, 0x7d, 0xce, 0xeb, 0x3c, 0xc6,
+ 0xef, 0x3f, 0xd5, 0x25,
+ 0x2c, 0x97, 0x55, 0x20, 0x23, 0x36, 0xcf, 0x1f, 0x9f, 0x4f, 0xbc, 0x82,
+ 0xa0, 0x61, 0x65, 0xd0,
+ 0x06, 0xfe, 0xde, 0x62, 0x7b, 0x61, 0xf2, 0x4c, 0x07, 0xb9, 0x7c, 0xe4,
+ 0x29, 0x10, 0x8d, 0xbe,
+ 0x2d, 0x03, 0x70, 0x8e, 0xd6, 0x79, 0x59, 0xbc, 0xc1, 0x24, 0x17, 0xac,
+ 0xf3, 0xd8, 0xb9, 0xe5,
+ 0x3e, 0x28, 0x0a, 0xcd, 0x81, 0xd2, 0x54, 0x38, 0x8a, 0xe6, 0x0b, 0x7b,
+ 0x7f, 0x11, 0x40, 0x6c,
+ 0x71, 0xfb, 0x4e, 0x33, 0xc2, 0xea, 0x19, 0x4b, 0x87, 0xd5, 0x45, 0xd3,
+ 0xff, 0xbb, 0x85, 0x52,
+ 0x3f, 0xbc, 0x2f, 0x63, 0x74, 0x9d, 0xc2, 0x9b, 0xd4, 0x8d, 0xa0, 0x55,
+ 0x2c, 0xa8, 0x9c, 0x59,
+ 0xf6, 0x74, 0x1d, 0xe9, 0x9e, 0x92, 0x5b, 0xfd, 0xdf, 0x79, 0x41, 0x78,
+ 0xcb, 0xd5, 0x61, 0xa6,
+ 0xce, 0xa2, 0xc9, 0x46, 0x64, 0x21, 0xfd, 0x89, 0x52, 0x26, 0x36, 0xe7,
+ 0x9d, 0xd4, 0xac, 0x74,
+ 0x38, 0xd6, 0xd4, 0xaf, 0xfa, 0xb3, 0xa6, 0x74, 0x8d, 0x5f, 0x77, 0x9f,
+ 0x56, 0x01, 0xcd, 0xd2,
+ 0x33, 0x83, 0x50, 0xa7, 0x82, 0x5f, 0xe5, 0x03, 0xda, 0x3c, 0x58, 0x5e,
+ 0x7e, 0x88, 0x45, 0xe6,
+ 0x87, 0x8f, 0x53, 0xda, 0x5c, 0x78, 0x42, 0xb6, 0x58, 0xac, 0x04, 0xab,
+ 0x34, 0x6e, 0xe4, 0xf4,
+ 0x42, 0x78, 0x1e, 0x94, 0x40, 0xb5, 0xfc, 0x48, 0x5d, 0xe9, 0x1d, 0x8d,
+ 0x81, 0x33, 0xc0, 0xb4,
+ 0x8c, 0xda, 0xd7, 0xd2, 0x24, 0x94, 0x01, 0xc1, 0x0f, 0xcf, 0x2b, 0x6a,
+ 0x1c, 0xe7, 0x6c, 0xc0,
+ 0x26, 0x56, 0xf4, 0x86, 0xae, 0x95, 0x1a, 0xcb, 0x96, 0x47, 0x38, 0x6d,
+ 0xdb, 0x51, 0x31, 0xd1,
+ 0x7a, 0xae, 0xca, 0x3b, 0xba, 0x06, 0x5a, 0x3c, 0xd0, 0xb6, 0x6a, 0x12,
+ 0xd7, 0x32, 0x0d, 0x66,
+ 0xac, 0x72, 0xfd, 0x36, 0xf1, 0x60, 0xe9, 0x46, 0x9e, 0x31, 0x6f, 0xe3,
+ 0xee, 0xa6, 0xd0, 0xaf,
+ 0x98, 0x9b, 0x56, 0x5d, 0xfd, 0x11, 0x68, 0xaa, 0x1d, 0xdf, 0xe0, 0x77,
+ 0xea, 0x87, 0xc4, 0xc2,
+ 0x79, 0xd1, 0xa5, 0x0a, 0x66, 0xd7, 0x23, 0x1a, 0x32, 0x0b, 0x54, 0x60,
+ 0x22, 0x3a, 0xaa, 0x39,
+ 0x8b, 0xb0, 0x2c, 0x1e, 0xaa, 0xba, 0x65, 0x2e, 0x56, 0x1d, 0xfc, 0xa0,
+ 0x66, 0x4e, 0x3d, 0x4b,
+ 0x58, 0xed, 0xaa, 0x40, 0x46, 0x6c, 0x5d, 0x3e, 0xfd, 0x9e, 0xbb, 0xc7,
+ 0x83, 0xc2, 0xca, 0x63,
+ 0x56, 0x39, 0x9f, 0x1b, 0x99, 0x30, 0x95, 0x23, 0x4f, 0xf9, 0xd6, 0x90,
+ 0x77, 0x53, 0x68, 0xb6,
+ },
+ { /* 9 */
+ 0xa8, 0x2c, 0x9d, 0x1e, 0xd9, 0x7e, 0xa9, 0xb3, 0xc0, 0x01, 0x6b, 0x3d,
+ 0xc4, 0xa3, 0x83, 0xb4,
+ 0xb4, 0x6b, 0xa4, 0x9d, 0x6c, 0x77, 0x14, 0x4c, 0x17, 0xa0, 0x80, 0x59,
+ 0xd2, 0xde, 0x39, 0xaa,
+ 0x96, 0x95, 0xc3, 0xd6, 0x72, 0x8f, 0xd1, 0xd8, 0xb2, 0x47, 0xed, 0x28,
+ 0x6d, 0x22, 0x15, 0xce,
+ 0x1e, 0xeb, 0x9c, 0x39, 0x0a, 0xe9, 0x43, 0xcd, 0x63, 0x5d, 0x9a, 0x2f,
+ 0xd4, 0x54, 0xa5, 0x9d,
+ 0x8a, 0xd2, 0xfa, 0x55, 0xc7, 0x86, 0x6c, 0x27, 0x65, 0xe6, 0x06, 0x4c,
+ 0x7b, 0x5f, 0xaf, 0xd0,
+ 0xf5, 0x99, 0x50, 0xe1, 0x53, 0x37, 0x1d, 0xda, 0x6f, 0xe8, 0x61, 0xe9,
+ 0x49, 0x42, 0xb1, 0x07,
+ 0x9f, 0x36, 0xa1, 0x26, 0x75, 0xf9, 0xd0, 0x09, 0x7d, 0x4f, 0x33, 0x03,
+ 0x82, 0x73, 0x87, 0x27,
+ 0xa5, 0x14, 0x76, 0x59, 0x63, 0x0b, 0x97, 0x06, 0xa4, 0x32, 0x57, 0x80,
+ 0x6c, 0xa0, 0x2f, 0x98,
+ 0x13, 0xd3, 0x77, 0x7e, 0xb0, 0x9c, 0x7d, 0x78, 0x07, 0x6e, 0xa6, 0x92,
+ 0x7c, 0x57, 0x09, 0xb1,
+ 0x39, 0xd8, 0xc1, 0x98, 0x17, 0x62, 0xc6, 0x24, 0x37, 0xff, 0xcc, 0x0c,
+ 0x4d, 0x0f, 0x59, 0x9c,
+ 0xac, 0xb7, 0x14, 0xa9, 0x64, 0x7d, 0x96, 0xd7, 0x6b, 0x3a, 0x89, 0xab,
+ 0x83, 0xf1, 0xbd, 0x71,
+ 0x2d, 0x6a, 0x29, 0xb6, 0x1b, 0x6d, 0x05, 0x13, 0x75, 0x28, 0x20, 0x87,
+ 0xd5, 0xd6, 0x9f, 0xcb,
+ 0x83, 0x71, 0x98, 0xa5, 0xc0, 0xf0, 0x6d, 0xf6, 0xaa, 0xee, 0xd8, 0x67,
+ 0x94, 0x0e, 0x3d, 0x39,
+ 0x86, 0xbc, 0xa2, 0x4f, 0xc3, 0x83, 0x2d, 0x8b, 0x5b, 0xab, 0xe3, 0x35,
+ 0xb2, 0xa9, 0xed, 0x5c,
+ 0xb9, 0x53, 0x4f, 0xda, 0xd6, 0x02, 0x2a, 0xf9, 0x73, 0x93, 0xbc, 0xe4,
+ 0x7a, 0xdd, 0x95, 0x86,
+ 0x76, 0xe8, 0xc8, 0x44, 0x93, 0xc7, 0x70, 0x2c, 0xc5, 0x06, 0xb9, 0x8e,
+ 0xdd, 0x4c, 0x8c, 0x3e,
+ 0x0f, 0x94, 0x4e, 0xfd, 0x05, 0x95, 0xc0, 0x87, 0xd0, 0xcf, 0x4d, 0xf6,
+ 0x6a, 0x2a, 0xb3, 0xaf,
+ 0x5a, 0xd4, 0x52, 0xaf, 0x36, 0xda, 0x0a, 0x26, 0xea, 0x50, 0x40, 0xcd,
+ 0x69, 0x6f, 0xfd, 0x55,
+ 0xa0, 0xd9, 0x4c, 0xb3, 0x60, 0x78, 0xd7, 0x7b, 0x55, 0x77, 0x6c, 0xd2,
+ 0x4a, 0x07, 0xff, 0xfd,
+ 0x92, 0x0e, 0x4a, 0x61, 0xcf, 0x8c, 0xee, 0xbc, 0x19, 0x7c, 0x0f, 0xbe,
+ 0x2a, 0x70, 0x2b, 0x0b,
+ 0xe2, 0xd1, 0xae, 0x28, 0x5e, 0xa8, 0x5f, 0xc6, 0xc3, 0xbd, 0x25, 0xed,
+ 0x72, 0x47, 0x86, 0x73,
+ 0x34, 0xe0, 0x2a, 0xdf, 0xad, 0x17, 0xf8, 0x91, 0x53, 0xcc, 0xf0, 0xb1,
+ 0xe5, 0x0c, 0xf5, 0xb0,
+ 0xee, 0xbf, 0xf6, 0x32, 0x5a, 0xad, 0x1e, 0x6a, 0xfd, 0xf0, 0xc0, 0x94,
+ 0xbb, 0xb1, 0xc4, 0xff,
+ 0x6d, 0xce, 0x6e, 0x97, 0x9a, 0x5d, 0x73, 0x9c, 0x57, 0x1e, 0x18, 0xf3,
+ 0x2f, 0xbf, 0xf9, 0xc6,
+ 0x1a, 0x70, 0x15, 0x8e, 0xb7, 0xea, 0x7c, 0xa9, 0xc8, 0x66, 0x78, 0xb9,
+ 0x93, 0x06, 0x9b, 0x58,
+ 0x24, 0xc9, 0x4b, 0x46, 0x1c, 0x1b, 0x04, 0xc2, 0xba, 0x20, 0xfe, 0xac,
+ 0x3a, 0x87, 0x0d, 0x22,
+ 0x1f, 0xbd, 0x2f, 0x64, 0xb4, 0x99, 0x3c, 0xd4, 0x39, 0x23, 0x43, 0xeb,
+ 0xb5, 0xa1, 0x4b, 0x3d,
+ 0xd2, 0xaa, 0x0d, 0x40, 0x4e, 0xbc, 0x98, 0x33, 0x3b, 0x4a, 0x37, 0xca,
+ 0xd0, 0x19, 0x4d, 0x06,
+ 0x18, 0xdc, 0xb0, 0x34, 0x08, 0x0a, 0x82, 0x9b, 0x7c, 0x9a, 0x09, 0xf2,
+ 0x51, 0x2f, 0x84, 0xdb,
+ 0x37, 0x1a, 0x3c, 0x38, 0xac, 0x87, 0x79, 0xba, 0xbd, 0x4e, 0x58, 0x3e,
+ 0x46, 0xd0, 0x04, 0x93,
+ 0x6a, 0xaf, 0xf1, 0xc7, 0x26, 0xce, 0xcd, 0xd3, 0x12, 0xa7, 0x52, 0xea,
+ 0xcb, 0x31, 0x36, 0x20,
+ 0x3f, 0xef, 0xed, 0x95, 0x15, 0x81, 0x07, 0x72, 0x28, 0x38, 0x5f, 0xd1,
+ 0xc8, 0x74, 0x78, 0xda,
+ 0xae, 0x1b, 0xb1, 0x13, 0xdb, 0x9d, 0x68, 0xe5, 0xdf, 0xc6, 0xf8, 0xe0,
+ 0x41, 0xd8, 0xa2, 0xf2,
+ 0x10, 0x29, 0x61, 0x99, 0xb1, 0x0c, 0xfc, 0x53, 0xe9, 0xec, 0x0e, 0x1d,
+ 0xdf, 0x8b, 0xf8, 0x92,
+ 0x46, 0x93, 0x6b, 0x2c, 0x83, 0xd3, 0xb7, 0xd9, 0x3d, 0xf1, 0xab, 0xa9,
+ 0x7f, 0x12, 0x47, 0x4b,
+ 0x6c, 0x98, 0xdd, 0xca, 0x24, 0x2d, 0x0c, 0x85, 0x0d, 0x60, 0xc1, 0x37,
+ 0x4e, 0x4a, 0x17, 0x66,
+ 0xbc, 0x9e, 0x75, 0x30, 0xd5, 0x71, 0x6a, 0x84, 0x82, 0xd6, 0x87, 0xb6,
+ 0x5c, 0x7a, 0x45, 0xe3,
+ 0x68, 0x03, 0x54, 0x7d, 0x99, 0x2e, 0x33, 0xe1, 0xa6, 0x5b, 0x23, 0xa1,
+ 0x09, 0x18, 0x29, 0xa3,
+ 0x0b, 0x0f, 0xc7, 0x4a, 0xb8, 0x96, 0xff, 0xe3, 0x7b, 0xf4, 0xaf, 0x60,
+ 0x2d, 0x78, 0x8d, 0x6a,
+ 0x3e, 0xb9, 0x5e, 0xc8, 0xab, 0xf1, 0x78, 0x6b, 0x72, 0x46, 0x86, 0x15,
+ 0xa9, 0x81, 0x96, 0x7a,
+ 0xfe, 0x96, 0x97, 0xab, 0xeb, 0xa1, 0xe2, 0x39, 0x14, 0x1c, 0xce, 0x89,
+ 0x64, 0x3a, 0x3c, 0x6d,
+ 0xa9, 0x7a, 0x2e, 0x43, 0x67, 0x0e, 0xd6, 0xaa, 0x9a, 0x7f, 0xb2, 0xf9,
+ 0xa5, 0x56, 0x6d, 0x14,
+ 0x28, 0xa7, 0x13, 0x5c, 0x18, 0x1e, 0x45, 0x6e, 0x84, 0x6d, 0x1b, 0xd5,
+ 0xf3, 0x71, 0x4f, 0xae,
+ 0x7c, 0xb1, 0xbc, 0x53, 0x95, 0x21, 0xf0, 0xd6, 0xe4, 0x8c, 0xcf, 0x2a,
+ 0x91, 0xc1, 0xef, 0xf4,
+ 0xf2, 0xf8, 0xcf, 0xb1, 0xef, 0xa4, 0xa3, 0x95, 0x2a, 0x51, 0x2b, 0xf0,
+ 0xad, 0xcc, 0x7e, 0xe1,
+ 0xbf, 0x64, 0x63, 0xd7, 0xd4, 0xe1, 0xeb, 0xaf, 0x6c, 0x54, 0x2f, 0x39,
+ 0xff, 0xa6, 0xb4, 0xc0,
+ 0xf4, 0xcf, 0xe3, 0xbc, 0xed, 0x47, 0x62, 0xc3, 0x35, 0x96, 0xb8, 0x2d,
+ 0x28, 0xb7, 0x5f, 0xa7,
+ 0xcb, 0x20, 0x0e, 0x29, 0xf8, 0xc6, 0x65, 0xb1, 0x1d, 0xae, 0xe7, 0xfc,
+ 0xe0, 0xc3, 0x27, 0x7d,
+ 0x06, 0x37, 0x2c, 0x0d, 0x02, 0xe3, 0xc1, 0x56, 0x1f, 0xc7, 0x93, 0xdd,
+ 0x85, 0x7b, 0x21, 0x46,
+ 0xf8, 0xa1, 0xbb, 0xa6, 0xe9, 0x42, 0x23, 0x6f, 0x0b, 0xdb, 0x5d, 0x54,
+ 0xe1, 0x41, 0x1d, 0x2b,
+ 0xbd, 0xc8, 0xc6, 0x6d, 0x6b, 0x01, 0x15, 0x9d, 0xd8, 0xa8, 0x5e, 0x72,
+ 0x3d, 0x8f, 0xab, 0x43,
+ 0x75, 0x12, 0xde, 0xa3, 0x92, 0x57, 0xf1, 0x07, 0x2b, 0x84, 0x11, 0x01,
+ 0x7e, 0x90, 0x7d, 0x1d,
+ 0x03, 0xfa, 0x16, 0xe7, 0x01, 0x90, 0x81, 0x2b, 0xee, 0x82, 0xa8, 0x8f,
+ 0xa3, 0xdc, 0xf1, 0x23,
+ 0x4c, 0xca, 0x1f, 0x3b, 0x85, 0x35, 0x37, 0x23, 0x1c, 0x7b, 0xdd, 0x0d,
+ 0x33, 0x9f, 0x24, 0x81,
+ 0x4b, 0xab, 0x80, 0x6b, 0x39, 0xa6, 0x89, 0x6c, 0x59, 0xc2, 0x97, 0x14,
+ 0xd7, 0x11, 0xeb, 0x67,
+ 0xc0, 0x2f, 0xc9, 0x63, 0x40, 0x50, 0x9a, 0x52, 0x66, 0x5a, 0x48, 0x9c,
+ 0xcd, 0xbb, 0xaa, 0x17,
+ 0x04, 0x9b, 0x89, 0xb7, 0xbd, 0x03, 0x3f, 0x64, 0xab, 0x3b, 0xe2, 0x96,
+ 0x47, 0x52, 0x3e, 0xc5,
+ 0xb3, 0x0a, 0x3b, 0xcd, 0xd0, 0xe4, 0xaa, 0x03, 0x52, 0x19, 0xca, 0x40,
+ 0x36, 0x50, 0xf6, 0x4c,
+ 0xb6, 0xc7, 0x01, 0x27, 0xd3, 0x97, 0xea, 0x7e, 0xa3, 0x5c, 0xf1, 0x12,
+ 0x10, 0xf7, 0x26, 0x29,
+ 0x51, 0xdb, 0x95, 0xe5, 0x8e, 0x4c, 0xf5, 0xc5, 0x91, 0xa4, 0xef, 0xad,
+ 0x44, 0x17, 0x70, 0x3f,
+ 0xeb, 0x72, 0xcc, 0xd8, 0x59, 0xde, 0x5e, 0x17, 0x0c, 0xb5, 0xfb, 0xc6,
+ 0x9d, 0x16, 0x14, 0x9a,
+ 0x98, 0x57, 0x3e, 0x76, 0xc9, 0x6a, 0x6e, 0x46, 0x38, 0xf6, 0x79, 0x1a,
+ 0x66, 0xfd, 0x48, 0xc1,
+ 0x23, 0xa8, 0xd4, 0x16, 0xa0, 0x88, 0xba, 0x8d, 0xff, 0x99, 0xb4, 0xb5,
+ 0xde, 0x09, 0xc2, 0xc4,
+ 0xab, 0xd6, 0x8b, 0xf9, 0xd8, 0xee, 0x28, 0x98, 0x2e, 0x83, 0xc3, 0xb2,
+ 0x67, 0x7f, 0x72, 0x97,
+ 0xb2, 0x5c, 0x88, 0x90, 0x6e, 0x94, 0xd5, 0x1a, 0x08, 0x67, 0x13, 0x84,
+ 0x57, 0xa5, 0x18, 0xec,
+ 0x99, 0x01, 0x8d, 0x2b, 0x77, 0x1a, 0x11, 0x5f, 0x62, 0x88, 0xa0, 0xde,
+ 0x07, 0x08, 0xa6, 0x61,
+ 0x89, 0x28, 0xec, 0xb2, 0xc6, 0x16, 0xed, 0x0c, 0x8b, 0x64, 0xae, 0xc3,
+ 0xd8, 0x83, 0x5e, 0xf3,
+ 0xdf, 0x92, 0xe6, 0x07, 0xf4, 0xc9, 0xa6, 0x86, 0x5f, 0x79, 0x0b, 0x77,
+ 0x78, 0x1a, 0xe1, 0x2a,
+ 0x0d, 0x38, 0xeb, 0x47, 0xba, 0x75, 0x3e, 0xb5, 0x64, 0x33, 0x3c, 0xbd,
+ 0xa8, 0x03, 0xac, 0x2c,
+ 0x31, 0x2d, 0x10, 0x35, 0xae, 0x64, 0xb8, 0xec, 0xa2, 0x89, 0xcb, 0xe3,
+ 0xc3, 0xab, 0x25, 0xd5,
+ 0x70, 0xdf, 0xe4, 0x49, 0x91, 0x24, 0xb1, 0x7a, 0xda, 0xc1, 0x2a, 0x53,
+ 0x58, 0x37, 0xad, 0x78,
+ 0x73, 0x25, 0xf2, 0xae, 0x90, 0xb4, 0x30, 0x51, 0x34, 0x43, 0x82, 0xdc,
+ 0xfb, 0xeb, 0x5c, 0x5b,
+ 0x1d, 0x11, 0x8a, 0xde, 0x0b, 0x79, 0xc2, 0xe6, 0x8d, 0xdf, 0x32, 0xa0,
+ 0x77, 0x88, 0x54, 0xbe,
+ 0x8d, 0xb3, 0x65, 0x05, 0x7b, 0x15, 0xd2, 0x68, 0x20, 0x5f, 0x4c, 0x55,
+ 0x9f, 0xd1, 0x60, 0x36,
+ 0xf1, 0x02, 0xd9, 0x56, 0xee, 0x34, 0x22, 0xbe, 0xc4, 0xd3, 0x83, 0x7f,
+ 0x0e, 0x10, 0x8f, 0xc2,
+ 0x7d, 0xe7, 0x0f, 0x0e, 0x2b, 0x51, 0x8f, 0xcf, 0xbe, 0xf2, 0x16, 0xee,
+ 0xf0, 0x34, 0x01, 0x54,
+ 0x17, 0x48, 0xfe, 0xc9, 0x0d, 0x9f, 0x42, 0x1c, 0xac, 0x55, 0x44, 0x04,
+ 0x3b, 0x05, 0x37, 0x74,
+ 0x2c, 0x3c, 0x9a, 0xeb, 0xa5, 0x1d, 0x7a, 0x0a, 0x2f, 0x56, 0xf9, 0x43,
+ 0xb4, 0x23, 0x71, 0x6b,
+ 0x35, 0xb6, 0x99, 0x82, 0x13, 0x67, 0x87, 0x88, 0x09, 0xb2, 0x29, 0x75,
+ 0x84, 0xf9, 0x1b, 0x10,
+ 0x88, 0x7e, 0x5f, 0xef, 0x78, 0x66, 0x92, 0x15, 0xd1, 0x1a, 0x77, 0x07,
+ 0xb9, 0x76, 0xb0, 0x53,
+ 0x67, 0x97, 0x1a, 0x80, 0x9c, 0xbb, 0xf3, 0x66, 0x76, 0x94, 0x6e, 0x57,
+ 0x63, 0x32, 0x9a, 0x0c,
+ 0xe1, 0x2b, 0xb8, 0xcf, 0x5f, 0x38, 0xde, 0xed, 0x2d, 0x3f, 0x8d, 0x62,
+ 0xd1, 0x9b, 0x77, 0x50,
+ 0xb5, 0x3d, 0x17, 0xc0, 0xd2, 0x07, 0x6b, 0x55, 0x4d, 0xde, 0x59, 0x9d,
+ 0xb3, 0x2b, 0xd7, 0x0a,
+ 0x64, 0x6d, 0x0c, 0x67, 0x9d, 0x2b, 0x72, 0x4d, 0x98, 0x16, 0xc6, 0xd8,
+ 0xc0, 0xee, 0x6b, 0x2f,
+ 0xb1, 0xa6, 0x9e, 0x77, 0x6f, 0x04, 0x54, 0x31, 0xe6, 0xe5, 0xbb, 0x0b,
+ 0xf4, 0x79, 0xe9, 0xcf,
+ 0x08, 0xf5, 0xd1, 0xad, 0xb9, 0x06, 0x7e, 0xc8, 0x95, 0x76, 0x07, 0xef,
+ 0x8e, 0xa4, 0x7c, 0x49,
+ 0xe5, 0xb0, 0x31, 0x78, 0xe2, 0x3b, 0xe1, 0x89, 0x86, 0x04, 0x6f, 0xf4,
+ 0x96, 0xc9, 0x49, 0x95,
+ 0x1c, 0x47, 0x39, 0x83, 0xb5, 0x09, 0xbd, 0xff, 0xd7, 0xa1, 0xeb, 0x64,
+ 0x16, 0x7d, 0xba, 0x1e,
+ 0x6b, 0xf9, 0x42, 0x9a, 0x98, 0xbe, 0xb2, 0xca, 0x48, 0xd9, 0x8b, 0x2e,
+ 0xaa, 0xc4, 0xd8, 0x80,
+ 0x5c, 0xe3, 0x7e, 0xa2, 0x34, 0x39, 0xcb, 0x70, 0xf5, 0x97, 0xd3, 0x10,
+ 0xec, 0x14, 0xdc, 0x13,
+ 0xa3, 0x23, 0x5a, 0x54, 0x61, 0xe8, 0x56, 0x50, 0xbb, 0xf5, 0xc4, 0x5d,
+ 0xe9, 0xdb, 0x0e, 0xde,
+ 0x7a, 0x86, 0x90, 0x5e, 0x97, 0xc2, 0x31, 0x80, 0xfb, 0x4b, 0x5c, 0xf7,
+ 0x14, 0xba, 0xce, 0xb2,
+ 0xe8, 0x88, 0xda, 0x3f, 0x58, 0x4e, 0xdf, 0x3c, 0xe2, 0x37, 0x53, 0x49,
+ 0x3e, 0xca, 0xe5, 0xb9,
+ 0xda, 0x5f, 0xdc, 0xed, 0xf7, 0xba, 0xe6, 0xfb, 0xae, 0x3c, 0x30, 0x25,
+ 0x5e, 0xbd, 0x31, 0x4f,
+ 0xd7, 0x67, 0x37, 0xaa, 0x4d, 0xcf, 0xd8, 0x4e, 0xca, 0x0f, 0x0c, 0x98,
+ 0xf6, 0xbe, 0x9d, 0x63,
+ 0xfa, 0x0d, 0x1e, 0x1c, 0x56, 0xa2, 0xdd, 0x5d, 0xbf, 0x27, 0x2c, 0x1f,
+ 0x23, 0x68, 0x02, 0xa8,
+ 0xa7, 0xb8, 0xd3, 0xe3, 0xdc, 0xeb, 0x69, 0x34, 0x10, 0xce, 0x26, 0xcb,
+ 0xae, 0x89, 0x30, 0x1b,
+ 0x7f, 0x4b, 0xaa, 0xb4, 0x94, 0xb1, 0x71, 0xfd, 0x0a, 0x0e, 0x67, 0xa5,
+ 0x32, 0x1d, 0x1e, 0xd7,
+ 0xe4, 0xe6, 0x82, 0x25, 0x5c, 0x4b, 0x9e, 0x90, 0xdc, 0x7a, 0xb6, 0x30,
+ 0xf7, 0x3c, 0xa7, 0x35,
+ 0x8f, 0x1f, 0xc0, 0xbf, 0xc4, 0xf5, 0x2c, 0x5a, 0x94, 0xa3, 0x3d, 0x1e,
+ 0x5d, 0xf8, 0x7f, 0xb5,
+ 0xa1, 0x8f, 0xff, 0xee, 0xde, 0x08, 0xa8, 0x62, 0x0f, 0x09, 0xb5, 0x16,
+ 0x2b, 0xf2, 0x11, 0x5d,
+ 0x52, 0x21, 0x83, 0x02, 0x8f, 0xdc, 0x74, 0xee, 0x7f, 0x26, 0x47, 0x22,
+ 0xe7, 0xcb, 0x81, 0x1c,
+ 0xec, 0x13, 0x53, 0x88, 0xe5, 0x4d, 0xe0, 0x58, 0x49, 0x0c, 0xb1, 0xdf,
+ 0x79, 0x98, 0xdb, 0x7c,
+ 0x3b, 0x74, 0x64, 0x22, 0xa8, 0x82, 0x38, 0x16, 0x83, 0x03, 0xbd, 0x47,
+ 0x8f, 0x26, 0x46, 0x1f,
+ 0xa2, 0x75, 0xe9, 0x09, 0xdf, 0x98, 0x29, 0x49, 0xe1, 0x8b, 0x1d, 0x99,
+ 0x88, 0x2e, 0xe0, 0x7e,
+ 0x5f, 0x19, 0x68, 0x45, 0x35, 0xa9, 0x4a, 0x5b, 0x1b, 0x15, 0x7b, 0x9f,
+ 0x4f, 0xc8, 0x2d, 0x30,
+ 0x50, 0x8d, 0x26, 0xb8, 0x30, 0x3c, 0x8a, 0xdc, 0xcb, 0xda, 0x36, 0x69,
+ 0x25, 0xe2, 0x9e, 0x9f,
+ 0x4a, 0xfd, 0x33, 0x36, 0x87, 0xd6, 0xf6, 0x75, 0x03, 0xbc, 0x4e, 0xd0,
+ 0xb6, 0xe4, 0x05, 0xc7,
+ 0x57, 0xec, 0xb9, 0xe8, 0x8c, 0xaf, 0x34, 0x93, 0x8e, 0x63, 0x7c, 0x70,
+ 0xc1, 0x6c, 0x51, 0x79,
+ 0x55, 0x40, 0x1c, 0x52, 0x33, 0x4f, 0xca, 0xa1, 0x3a, 0x9f, 0x0d, 0x3b,
+ 0x03, 0x45, 0x4e, 0xfa,
+ 0xdc, 0x68, 0xf0, 0xe0, 0xf5, 0x59, 0x27, 0xad, 0xb1, 0xfb, 0xa3, 0xf8,
+ 0xdb, 0xc6, 0x10, 0x09,
+ 0xde, 0xc4, 0x55, 0x5a, 0x4a, 0xb9, 0xd9, 0x9f, 0x05, 0x07, 0xd2, 0xb3,
+ 0x19, 0xef, 0x0f, 0x8a,
+ 0x9d, 0x9a, 0x04, 0x9c, 0xca, 0x19, 0x2e, 0x3b, 0xc9, 0xb3, 0x42, 0x48,
+ 0x40, 0x5a, 0x98, 0xa4,
+ 0xe7, 0x1c, 0x94, 0xc2, 0x5d, 0xdb, 0x1f, 0xbb, 0x32, 0xf8, 0x1e, 0xbf,
+ 0x54, 0xe0, 0x56, 0x16,
+ 0xaf, 0x4d, 0x02, 0x4e, 0x65, 0xed, 0x17, 0xfc, 0x85, 0xb8, 0x21, 0x24,
+ 0x20, 0x2d, 0x4c, 0x52,
+ 0x97, 0xc3, 0x70, 0x8b, 0xcc, 0xff, 0xae, 0xc1, 0xe8, 0x39, 0x34, 0xec,
+ 0x0c, 0xd7, 0xfb, 0x6e,
+ 0xaa, 0x80, 0x38, 0xa4, 0x66, 0x9e, 0x57, 0x81, 0x74, 0xfd, 0x1a, 0x76,
+ 0x06, 0x8a, 0x9c, 0x37,
+ 0x26, 0x65, 0xee, 0xfc, 0xa3, 0xfb, 0xfa, 0xf0, 0x0e, 0xdc, 0x8f, 0xe7,
+ 0xf8, 0xae, 0x12, 0xa1,
+ 0x4d, 0x9c, 0xac, 0x66, 0x3b, 0x45, 0x48, 0x3a, 0x46, 0x05, 0x04, 0xc9,
+ 0x52, 0x6a, 0xca, 0x21,
+ 0x54, 0x16, 0xaf, 0x0f, 0x8d, 0x3f, 0xb5, 0xb8, 0x60, 0xe1, 0xd4, 0xff,
+ 0x62, 0xb0, 0xa0, 0x5a,
+ 0xf7, 0x35, 0xf5, 0x5b, 0xec, 0xd7, 0xe3, 0xe8, 0xdb, 0x14, 0x10, 0xa2,
+ 0x8b, 0x6b, 0xae, 0x84,
+ 0xd9, 0xa5, 0xca, 0x0a, 0xf6, 0x2a, 0x67, 0xd0, 0x40, 0xbe, 0x98, 0xaa,
+ 0xfd, 0x61, 0xc0, 0x6c,
+ 0x84, 0x10, 0x07, 0xf5, 0x7c, 0x63, 0xd3, 0xb9, 0xef, 0x57, 0x92, 0x7e,
+ 0x70, 0x80, 0xf2, 0xdf,
+ 0x41, 0xf2, 0xf4, 0x7c, 0x3f, 0x40, 0x09, 0x96, 0x78, 0x48, 0xe1, 0xb0,
+ 0x9b, 0x9c, 0x88, 0xad,
+ 0x82, 0x27, 0x2b, 0xf8, 0x7e, 0x80, 0x12, 0xef, 0xf0, 0x90, 0x01, 0xa3,
+ 0xf5, 0xfb, 0xd3, 0x99,
+ 0xd6, 0x31, 0x84, 0xf7, 0xf3, 0xbf, 0xa7, 0x57, 0x90, 0x71, 0xd5, 0x5c,
+ 0x97, 0x4b, 0x73, 0xc3,
+ 0xb7, 0x91, 0xb2, 0x7a, 0x6d, 0xe7, 0x95, 0x67, 0xf9, 0x22, 0x28, 0xd6,
+ 0x71, 0x02, 0xc8, 0x89,
+ 0xdb, 0x09, 0x6f, 0xb0, 0x49, 0xca, 0x99, 0xe2, 0xf4, 0x42, 0xe9, 0xe1,
+ 0x3f, 0x48, 0xdf, 0xef,
+ 0x2b, 0x5d, 0x05, 0xbb, 0x19, 0x8e, 0xc4, 0x45, 0x6a, 0xef, 0xb3, 0x5a,
+ 0x50, 0xad, 0xbe, 0x8d,
+ 0xa6, 0xee, 0x60, 0xbe, 0x62, 0x9b, 0x16, 0x2d, 0x4a, 0xb0, 0xff, 0x0f,
+ 0xcf, 0x7c, 0xde, 0xbb,
+ 0x38, 0x8e, 0x72, 0xc5, 0xa9, 0x12, 0xb9, 0x3d, 0x6d, 0x81, 0x15, 0xc8,
+ 0x2c, 0xfa, 0xb7, 0x3c,
+ 0xce, 0xed, 0x34, 0xc3, 0xfb, 0xb5, 0x25, 0xcc, 0xec, 0xeb, 0xdc, 0xae,
+ 0xc6, 0x64, 0xf7, 0x18,
+ 0x95, 0x6f, 0xd5, 0x31, 0x73, 0x1f, 0x50, 0xf3, 0x5c, 0xc5, 0x45, 0xa7,
+ 0xce, 0xfe, 0xe4, 0xed,
+ 0x71, 0x89, 0x57, 0x14, 0x2f, 0x54, 0xce, 0x63, 0x80, 0xbf, 0xf3, 0x97,
+ 0x39, 0xc2, 0x43, 0xd8,
+ 0xc3, 0xd5, 0xdf, 0x84, 0x41, 0xc0, 0x1b, 0x79, 0x88, 0xd8, 0xe0, 0x13,
+ 0x6e, 0x67, 0x5b, 0x34,
+ 0x8e, 0x49, 0x73, 0xe2, 0x7a, 0x85, 0x53, 0x43, 0xce, 0xdd, 0xe4, 0xda,
+ 0x3c, 0x0d, 0x91, 0x15,
+ 0x9a, 0xfb, 0x9b, 0xcc, 0x76, 0x8a, 0x90, 0x74, 0x8c, 0x0a, 0x08, 0x51,
+ 0xa4, 0xd4, 0x57, 0x42,
+ 0xef, 0xe9, 0x45, 0x6f, 0xe4, 0xdd, 0x61, 0x73, 0xa7, 0x8e, 0x19, 0x50,
+ 0xda, 0x44, 0x2a, 0x5f,
+ 0x25, 0x9f, 0xf8, 0x1b, 0xa2, 0x6b, 0x7b, 0xdb, 0xe0, 0x5e, 0x27, 0x68,
+ 0x5b, 0x72, 0xe3, 0x82,
+ 0xa4, 0x42, 0xc5, 0x04, 0xdd, 0x7b, 0xe8, 0x1f, 0xfe, 0x4c, 0x8e, 0x44,
+ 0x0d, 0x55, 0xc1, 0x38,
+ 0xe9, 0xde, 0x69, 0x62, 0xe6, 0x3e, 0xa0, 0x25, 0xb8, 0x49, 0x8a, 0x8d,
+ 0x5f, 0x3f, 0x0b, 0x19,
+ 0x3c, 0x15, 0xfb, 0x72, 0x14, 0x11, 0x86, 0x59, 0xc6, 0xba, 0xf7, 0x5e,
+ 0x6b, 0xa8, 0x89, 0xf9,
+ 0x6f, 0x62, 0xcb, 0x2d, 0x25, 0xbd, 0x8d, 0xae, 0xe3, 0xe2, 0x69, 0xb8,
+ 0xed, 0x96, 0xe6, 0x45,
+ 0x02, 0xac, 0xa5, 0xba, 0xbf, 0xe0, 0xfe, 0x32, 0xb4, 0xfc, 0x71, 0x4b,
+ 0xc2, 0x29, 0x1f, 0x83,
+ 0x01, 0x56, 0xb3, 0x5d, 0xbe, 0x70, 0x7f, 0x19, 0x5a, 0x7e, 0xd9, 0xc4,
+ 0x61, 0xf5, 0xee, 0xa0,
+ 0x0a, 0x59, 0x74, 0x17, 0x06, 0xe6, 0x80, 0xfa, 0x21, 0x8a, 0x76, 0xa4,
+ 0x4c, 0x8d, 0x63, 0xca,
+ 0x09, 0xa3, 0x62, 0xf0, 0x07, 0x76, 0x01, 0xd1, 0xcf, 0x08, 0xde, 0x2b,
+ 0xef, 0x51, 0x92, 0xe9,
+ 0x94, 0x39, 0x66, 0x6c, 0xcd, 0x6f, 0x2f, 0xea, 0x06, 0xbb, 0x9c, 0x63,
+ 0xaf, 0x0b, 0x0a, 0x4d,
+ 0xed, 0x45, 0xe0, 0xd5, 0x5b, 0x3d, 0x9f, 0x41, 0x13, 0x72, 0x68, 0x1b,
+ 0x18, 0x6d, 0x35, 0xdc,
+ 0x59, 0x2e, 0x44, 0x48, 0x37, 0x4a, 0x8b, 0x0d, 0x04, 0xd2, 0xe8, 0x42,
+ 0xca, 0xb3, 0x0c, 0x76,
+ 0x61, 0xa0, 0x36, 0x8d, 0x9e, 0x58, 0x32, 0x30, 0x69, 0x53, 0xfd, 0x8a,
+ 0xe6, 0x49, 0xbb, 0x4a,
+ 0x69, 0x55, 0xe7, 0x20, 0x27, 0x5e, 0x4c, 0xf8, 0xfc, 0x25, 0xfa, 0x65,
+ 0x68, 0xed, 0xc7, 0x03,
+ 0x29, 0xf1, 0xa0, 0x01, 0xa6, 0x6e, 0x3a, 0x77, 0xde, 0x13, 0xc2, 0x11,
+ 0x92, 0x84, 0xa1, 0x0e,
+ 0xb0, 0xf0, 0x2d, 0x2a, 0xd1, 0x74, 0x2b, 0x28, 0xbc, 0x9b, 0x62, 0xcf,
+ 0x95, 0x8c, 0x07, 0x6f,
+ 0x30, 0x7b, 0xa3, 0x68, 0x10, 0x14, 0xc7, 0xf5, 0xf8, 0xf7, 0x12, 0x27,
+ 0xa2, 0x5e, 0xcb, 0x75,
+ 0x60, 0xf6, 0x85, 0xd0, 0x20, 0x28, 0x4d, 0x29, 0x33, 0x2d, 0x24, 0x4e,
+ 0x87, 0xbc, 0x55, 0xea,
+ 0x74, 0x44, 0x6d, 0xfe, 0x2c, 0x27, 0x8e, 0x1e, 0x71, 0xfa, 0xc8, 0xc5,
+ 0x1f, 0x65, 0x93, 0xbd,
+ 0x22, 0xfe, 0x67, 0x4b, 0x1e, 0xf8, 0xc5, 0x94, 0xa5, 0xe7, 0x6d, 0x71,
+ 0xbf, 0xfc, 0x2c, 0x64,
+ 0x0c, 0x6e, 0x58, 0x1a, 0x04, 0x05, 0x41, 0xac, 0x3e, 0x4d, 0xe5, 0x79,
+ 0xc9, 0xf6, 0x42, 0x8c,
+ 0xcd, 0x17, 0x22, 0x24, 0xfa, 0x25, 0xa4, 0xe7, 0x02, 0x69, 0x74, 0x21,
+ 0x65, 0xb8, 0x06, 0x3b,
+ 0x7b, 0xd0, 0x23, 0x03, 0x29, 0xb2, 0x4e, 0x99, 0xa1, 0x35, 0x85, 0x33,
+ 0x75, 0x4f, 0x20, 0x12,
+ 0x5b, 0x82, 0xe1, 0xf2, 0x88, 0xaa, 0x75, 0x3f, 0xb0, 0x2e, 0x99, 0x09,
+ 0x08, 0x9a, 0x13, 0xf5,
+ 0x40, 0xa4, 0x47, 0x21, 0x81, 0x30, 0x76, 0x8f, 0x22, 0x36, 0x38, 0x74,
+ 0xfa, 0x69, 0x66, 0x0d,
+ 0xe3, 0x87, 0x1d, 0x75, 0xe0, 0xd8, 0x20, 0xdf, 0x99, 0xc3, 0xfc, 0x29,
+ 0x13, 0xb2, 0x68, 0xd3,
+ 0x14, 0xb2, 0xe8, 0x2e, 0x0c, 0x0f, 0xc3, 0x37, 0x42, 0xd7, 0xec, 0x8b,
+ 0x98, 0xd9, 0xc6, 0x57,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xfd, 0x6c, 0x81, 0x4c, 0xea, 0x31, 0x63, 0x12, 0xfa, 0x9e, 0x66, 0x06,
+ 0xc7, 0xe6, 0xcd, 0x4e,
+ 0x78, 0x2a, 0x35, 0xe4, 0x28, 0x22, 0xcf, 0xb2, 0x4f, 0xb7, 0x2d, 0xbc,
+ 0xd6, 0x93, 0xd1, 0x31,
+ 0xad, 0xe1, 0xa7, 0xf4, 0xda, 0x0d, 0xe9, 0xce, 0x31, 0x44, 0x50, 0x6f,
+ 0xe2, 0x04, 0x53, 0xd1,
+ 0xd0, 0x06, 0xa8, 0xfa, 0xf1, 0x5c, 0x66, 0x01, 0x8f, 0xb6, 0x46, 0x81,
+ 0x12, 0x30, 0x52, 0x85,
+ 0x91, 0xf4, 0x5c, 0x86, 0xce, 0x1c, 0x6f, 0x97, 0xf7, 0xfe, 0xa7, 0x31,
+ 0x89, 0xac, 0xda, 0x28,
+ 0xfc, 0x3a, 0x32, 0x11, 0x54, 0x41, 0x1c, 0x0b, 0xa0, 0xe0, 0xbf, 0xc2,
+ 0xa6, 0x13, 0x23, 0xee,
+ 0xf9, 0xf7, 0x08, 0xfb, 0x57, 0x32, 0x5c, 0x76, 0x51, 0xa5, 0x84, 0x90,
+ 0x80, 0xb4, 0xf3, 0x8b,
+ 0xea, 0x24, 0x7f, 0x85, 0xe7, 0xae, 0x21, 0x0e, 0x56, 0xcb, 0x22, 0x02,
+ 0xfc, 0xe3, 0xfa, 0x3a,
+ 0x85, 0x46, 0xb4, 0xa8, 0xc2, 0x13, 0xac, 0xa0, 0xb5, 0x29, 0x4b, 0xba,
+ 0x11, 0x75, 0x1c, 0x7f,
+ 0x7e, 0x1d, 0x19, 0xe9, 0x2a, 0xc1, 0x0e, 0xe4, 0x50, 0x70, 0xbe, 0x61,
+ 0x53, 0xe8, 0xf0, 0x77,
+ 0x77, 0xbe, 0x7b, 0x19, 0x2d, 0xb7, 0x0f, 0x35, 0x9f, 0x78, 0x60, 0x4a,
+ 0xbc, 0xb9, 0x62, 0x9e,
+ 0xc7, 0x4e, 0x56, 0x33, 0xfc, 0xc3, 0x24, 0x1d, 0x23, 0xe3, 0x02, 0x85,
+ 0x29, 0x35, 0x65, 0xf1,
+ 0xc5, 0xe2, 0xf3, 0x89, 0x43, 0x23, 0xda, 0x2f, 0x97, 0x1f, 0x73, 0xce,
+ 0xeb, 0x1c, 0x7a, 0x72,
+ 0x5d, 0xb5, 0xcd, 0xff, 0x8a, 0x49, 0xb4, 0x69, 0xaf, 0xe9, 0x0a, 0xd4,
+ 0x8d, 0xe1, 0x32, 0xb3,
+ 0x3a, 0x22, 0xd7, 0x7f, 0x16, 0xf2, 0x47, 0x0f, 0xd9, 0x7d, 0x64, 0x83,
+ 0xee, 0xd3, 0xa8, 0xbf,
+ 0xd5, 0xcb, 0x92, 0x10, 0xf2, 0x2f, 0x26, 0x7c, 0x7e, 0xf3, 0x7d, 0xd3,
+ 0x34, 0x97, 0x82, 0xe0,
+ 0x66, 0xc1, 0xa9, 0xdd, 0x22, 0xcb, 0x8c, 0x7f, 0x2c, 0xea, 0xb7, 0x93,
+ 0x02, 0xc7, 0x74, 0xac,
+ 0x8b, 0x84, 0x49, 0x08, 0x79, 0xf6, 0x13, 0x3e, 0x3f, 0x98, 0xdf, 0x88,
+ 0x1a, 0xaa, 0x41, 0x70,
+ 0x49, 0x07, 0x25, 0xd1, 0x86, 0x46, 0x77, 0x5e, 0xed, 0x3e, 0xe6, 0x5f,
+ 0x15, 0x38, 0xf4, 0xe4,
+ 0xc2, 0x83, 0x6c, 0xd9, 0xff, 0xb0, 0x64, 0x60, 0xd2, 0xa6, 0x39, 0xd7,
+ 0x0f, 0x92, 0xb5, 0x94,
+ 0xc6, 0x18, 0xe5, 0x6e, 0x42, 0xb3, 0x5b, 0x04, 0x79, 0x9d, 0xdb, 0x41,
+ 0x48, 0xc0, 0x8b, 0x51,
+ 0x56, 0xba, 0x0a, 0xb5, 0x32, 0xdf, 0x4b, 0x8a, 0xd4, 0x1d, 0xa5, 0xb4,
+ 0xa0, 0x99, 0xbf, 0xd9,
+ 0x4e, 0x66, 0xba, 0x81, 0x3a, 0xd5, 0xc9, 0x11, 0xa8, 0x87, 0xac, 0x46,
+ 0xf1, 0xb6, 0x3b, 0x02,
+ 0x27, 0x33, 0x5d, 0xa1, 0x1d, 0x8b, 0x85, 0xe9, 0x54, 0xa2, 0x56, 0x23,
+ 0x99, 0x5b, 0xfc, 0x01,
+ 0xe6, 0x4a, 0x27, 0x9f, 0xe3, 0xab, 0x60, 0xa2, 0x68, 0x86, 0xc7, 0x7b,
+ 0x35, 0x15, 0xb8, 0xb6,
+ 0x93, 0x58, 0xf9, 0x3c, 0x71, 0xfc, 0x91, 0xa5, 0x43, 0x02, 0xd6, 0x7a,
+ 0x4b, 0x85, 0xc5, 0xab,
+ 0xbb, 0xff, 0xea, 0x60, 0x69, 0xe2, 0xd4, 0xcb, 0xc7, 0x6f, 0xcd, 0xaf,
+ 0xb8, 0xf4, 0x8a, 0x05,
+ 0xd1, 0x50, 0x1b, 0xa7, 0x4f, 0x2c, 0x19, 0x18, 0xd5, 0xc8, 0x9f, 0x45,
+ 0x73, 0xc5, 0xbc, 0x25,
+ 0x63, 0x0c, 0x93, 0x37, 0x21, 0xb8, 0xcc, 0x02, 0xdd, 0xaf, 0x8c, 0xc1,
+ 0x24, 0x60, 0xa4, 0xc9,
+ 0xc1, 0x79, 0x7a, 0x3e, 0xfe, 0x20, 0xe5, 0x4b, 0x3c, 0x24, 0x91, 0x58,
+ 0xac, 0x4e, 0x44, 0xb7,
+ 0x45, 0x69, 0x7d, 0xcb, 0x82, 0x43, 0x36, 0xf2, 0xd3, 0x73, 0x03, 0x26,
+ 0xdc, 0xce, 0xb6, 0x68,
+ 0xc8, 0xda, 0x18, 0xce, 0xf9, 0x56, 0xe4, 0x9a, 0xf3, 0x2c, 0x4f, 0x73,
+ 0x43, 0x1f, 0xd6, 0x5e,
+ 0x16, 0x1e, 0x4d, 0x94, 0xb3, 0xef, 0x3d, 0x05, 0xf6, 0x2b, 0x9d, 0xc0,
+ 0x5a, 0xf0, 0xd9, 0xd4,
+ 0x1b, 0x26, 0xa6, 0xd3, 0x09, 0x9a, 0x03, 0xb0, 0x92, 0x18, 0xa1, 0x7d,
+ 0xf2, 0xf3, 0x75, 0xf8,
+ 0x20, 0x52, 0xc2, 0xf1, 0xa1, 0x18, 0x3b, 0xa6, 0x11, 0x1b, 0x1c, 0x3a,
+ 0x7d, 0xd5, 0x33, 0xe7,
+ 0x9b, 0xad, 0x28, 0x91, 0xc8, 0xfa, 0xef, 0x6d, 0xd6, 0x74, 0xd1, 0x95,
+ 0xc5, 0x21, 0xb9, 0xe2,
+ 0xf3, 0xae, 0x7c, 0xec, 0x51, 0xd4, 0xdc, 0x8c, 0x70, 0x2f, 0xf2, 0x34,
+ 0xcc, 0x39, 0x90, 0x41,
+ 0xb8, 0x05, 0xfc, 0x87, 0x68, 0x72, 0x55, 0xe0, 0x29, 0xed, 0x65, 0x20,
+ 0x1b, 0x28, 0x7b, 0x26,
+ 0xf0, 0x54, 0x6a, 0x0b, 0x50, 0x44, 0x5d, 0xa7, 0x9e, 0xad, 0x5a, 0xbb,
+ 0x6f, 0xe5, 0x61, 0x62,
+ 0x2f, 0xc6, 0x8c, 0x0c, 0xa4, 0x8d, 0xfb, 0x21, 0xc1, 0xd4, 0x51, 0xcc,
+ 0x17, 0xff, 0x80, 0x48,
+ 0xba, 0xa9, 0x59, 0x3d, 0xd7, 0x92, 0xab, 0xd2, 0x9d, 0x11, 0x14, 0x6b,
+ 0xd9, 0x01, 0x64, 0xa5,
+ 0x4f, 0x30, 0x09, 0xdc, 0x84, 0xa5, 0xb6, 0x08, 0xf2, 0xf9, 0x75, 0x82,
+ 0x90, 0x43, 0xd5, 0xa2,
+ 0xbe, 0x32, 0xd0, 0x8a, 0x6a, 0x91, 0x94, 0xb6, 0x36, 0x2a, 0xf6, 0xfd,
+ 0x9e, 0x53, 0x5a, 0x60,
+ 0x12, 0x85, 0xc4, 0x23, 0x0e, 0xec, 0x02, 0x61, 0x5d, 0x10, 0x7f, 0x56,
+ 0x1d, 0xa2, 0xe7, 0x11,
+ 0x43, 0x5e, 0x51, 0xc6, 0x80, 0xa0, 0xf7, 0xa4, 0xcc, 0xb4, 0x90, 0xfb,
+ 0x59, 0xb5, 0x97, 0x2e,
+ 0xcf, 0xbb, 0x87, 0x9e, 0x45, 0xc5, 0x5a, 0xd5, 0xb6, 0x95, 0x05, 0x6a,
+ 0xa7, 0x91, 0x19, 0xb8,
+ 0xc9, 0x8c, 0xab, 0x93, 0x47, 0x26, 0x9b, 0x83, 0xa9, 0x52, 0x96, 0xb7,
+ 0x22, 0xea, 0x38, 0xfe,
+ 0x2a, 0x0b, 0xb6, 0xe6, 0xa7, 0xfe, 0xbb, 0x5c, 0x30, 0x91, 0x6a, 0x9e,
+ 0x31, 0x58, 0x50, 0x2d,
+ 0x11, 0x7f, 0xd2, 0xc4, 0x0f, 0x7c, 0x83, 0x4a, 0xb3, 0x92, 0xd7, 0xd9,
+ 0xbe, 0x7e, 0x16, 0x32,
+ 0x15, 0xe4, 0x5b, 0x73, 0xb2, 0x7f, 0xbc, 0x2e, 0x18, 0xa9, 0x35, 0x4f,
+ 0xf9, 0x2c, 0x28, 0xf7,
+ 0xf6, 0x63, 0x46, 0x06, 0x52, 0xa7, 0x9c, 0xf1, 0x81, 0x6a, 0xc9, 0x66,
+ 0xea, 0x9e, 0x40, 0x24,
+ 0x62, 0x5a, 0x20, 0x6a, 0x9f, 0xc8, 0xb3, 0x1b, 0x87, 0xd1, 0x55, 0x05,
+ 0x45, 0x95, 0x4a, 0x69,
+ 0xcc, 0x41, 0x91, 0x79, 0x44, 0x55, 0xdb, 0xfe, 0x58, 0x17, 0xad, 0xe5,
+ 0x04, 0x4d, 0xe8, 0x9b,
+ 0xe0, 0x7d, 0x0b, 0x92, 0xe1, 0x48, 0xa1, 0xf4, 0x77, 0x41, 0x54, 0xa6,
+ 0xb0, 0x6e, 0x99, 0xf0,
+ 0x8c, 0xe5, 0xd6, 0x58, 0xc5, 0x65, 0xad, 0x71, 0x7a, 0x21, 0x95, 0x91,
+ 0xfe, 0x24, 0x8e, 0x96,
+ 0x90, 0xa2, 0xef, 0xdb, 0x70, 0x6c, 0x10, 0x8e, 0xad, 0x80, 0x7e, 0xf5,
+ 0xe8, 0x59, 0x34, 0x88,
+ 0x47, 0xc5, 0xd8, 0x71, 0x3d, 0xa3, 0xc8, 0xc0, 0x67, 0x8f, 0x72, 0x6d,
+ 0x1e, 0xe7, 0xa9, 0xeb,
+ 0xff, 0xc0, 0x24, 0xf6, 0x55, 0xd1, 0x9d, 0x20, 0x4e, 0x62, 0x17, 0x4d,
+ 0x05, 0xcf, 0xd2, 0xcd,
+ 0x81, 0xdd, 0x3d, 0x1f, 0x7f, 0x10, 0x93, 0xc4, 0x1e, 0x12, 0xa9, 0x2c,
+ 0x56, 0x27, 0x22, 0xba,
+ 0x5e, 0x4f, 0xdb, 0x18, 0x8b, 0xd9, 0x35, 0x42, 0x41, 0x6b, 0xa2, 0x5b,
+ 0x2e, 0x3d, 0xc3, 0x90,
+ 0xfb, 0x5b, 0xad, 0x41, 0xe8, 0xd2, 0xa2, 0x44, 0xe5, 0x59, 0xf5, 0xdb,
+ 0x42, 0x9d, 0xec, 0x08,
+ 0x79, 0x7c, 0x86, 0xb9, 0x96, 0x52, 0xb0, 0xab, 0x15, 0xc9, 0xf4, 0x78,
+ 0xb7, 0x66, 0x3f, 0x91,
+ 0x36, 0x4c, 0x8f, 0x65, 0x12, 0xf7, 0x06, 0xa3, 0xe7, 0x30, 0x81, 0xfa,
+ 0x27, 0x25, 0xea, 0x33,
+ 0x32, 0xd7, 0x06, 0xd2, 0xaf, 0xf4, 0x39, 0xc7, 0x4c, 0x0b, 0x63, 0x6c,
+ 0x60, 0x77, 0xd4, 0xf6,
+ 0x0e, 0xc2, 0xfd, 0xa0, 0xbb, 0xe5, 0xbf, 0x9e, 0x8a, 0xb1, 0x94, 0x32,
+ 0x0b, 0xdf, 0x5d, 0x0f,
+ 0xd3, 0xfc, 0xbe, 0x1d, 0xf0, 0xcc, 0xe7, 0x2a, 0x61, 0x34, 0xee, 0x0e,
+ 0xb1, 0xec, 0xa3, 0xa6,
+ 0x33, 0x81, 0xb5, 0x8f, 0x11, 0x84, 0x46, 0xde, 0x16, 0x75, 0xba, 0xa8,
+ 0x01, 0x82, 0x3a, 0x56,
+ 0x53, 0x77, 0x30, 0x5f, 0x31, 0xac, 0x0b, 0xf7, 0x25, 0x58, 0x9e, 0xe6,
+ 0x86, 0x3e, 0x6f, 0xbc,
+ 0x87, 0xea, 0x11, 0x12, 0x7d, 0xf3, 0x52, 0x92, 0x01, 0xd5, 0x3a, 0xf1,
+ 0xd3, 0x5c, 0x03, 0xfc,
+ 0x21, 0x04, 0x71, 0xac, 0x1f, 0x68, 0x44, 0xbf, 0x4b, 0x65, 0xc5, 0xfe,
+ 0x1c, 0x20, 0xdd, 0x47,
+ 0xd4, 0x9d, 0x21, 0x4d, 0x4c, 0x5f, 0x59, 0x65, 0x24, 0x8d, 0xa4, 0x17,
+ 0x55, 0x62, 0x6c, 0x40,
+ 0x07, 0x61, 0x9f, 0x50, 0xbc, 0x93, 0xbe, 0x4f, 0x45, 0xb9, 0x4a, 0x19,
+ 0xe4, 0x8e, 0xcf, 0xe6,
+ 0x48, 0x51, 0x96, 0x8c, 0x38, 0x36, 0x08, 0x47, 0xb7, 0x40, 0x3f, 0x9b,
+ 0x74, 0xcd, 0x1a, 0x44,
+ 0xdd, 0x3e, 0x43, 0xbd, 0x4b, 0x29, 0x58, 0xb4, 0xeb, 0x85, 0x7a, 0x3c,
+ 0xba, 0x33, 0xfe, 0xa9,
+ 0x6e, 0x34, 0x78, 0x70, 0x9b, 0xcd, 0xf2, 0xb7, 0xb9, 0x9c, 0xb0, 0x7c,
+ 0x8c, 0x63, 0x08, 0xe5,
+ 0xc4, 0xb4, 0x40, 0xd4, 0xfd, 0x53, 0xa5, 0x36, 0xcd, 0x61, 0xaa, 0x0a,
+ 0x8a, 0xe9, 0x94, 0xd2,
+ 0x58, 0x78, 0xf7, 0x15, 0x89, 0x3a, 0xf4, 0x14, 0x5e, 0xac, 0x31, 0x86,
+ 0xab, 0x46, 0xe2, 0xd6,
+ 0x9c, 0xcc, 0xb7, 0xc1, 0x74, 0x69, 0x51, 0x22, 0x93, 0xcd, 0x9b, 0x8c,
+ 0x21, 0xaf, 0x76, 0x04,
+ 0x05, 0xcd, 0x3a, 0xea, 0x03, 0x73, 0x40, 0x7d, 0xf1, 0x45, 0x3b, 0x52,
+ 0x26, 0xa7, 0xd0, 0x65,
+ 0x19, 0x8a, 0x03, 0x69, 0xb6, 0x7a, 0xfd, 0x82, 0x26, 0xe4, 0xd0, 0x36,
+ 0x30, 0xda, 0x6a, 0x7b,
+ 0xd8, 0xf3, 0x79, 0x57, 0x48, 0x5a, 0x18, 0xc9, 0x1a, 0xc0, 0x41, 0x6e,
+ 0x9c, 0x94, 0x2e, 0xcc,
+ 0x80, 0x8b, 0x8e, 0x42, 0xc1, 0x60, 0xec, 0xdd, 0x44, 0x6c, 0x70, 0xe8,
+ 0x37, 0xd2, 0xcc, 0x1a,
+ 0x9e, 0x60, 0x12, 0x7b, 0xcb, 0x89, 0xaf, 0x10, 0x27, 0x31, 0xea, 0xc7,
+ 0xe3, 0x86, 0x69, 0x87,
+ 0x44, 0x3f, 0xce, 0x96, 0x3c, 0x33, 0x49, 0xeb, 0x89, 0x0d, 0xda, 0xe2,
+ 0xbd, 0x3b, 0x58, 0xc8,
+ 0xca, 0x76, 0xbd, 0x74, 0x46, 0xb6, 0x1a, 0xa8, 0x47, 0xd0, 0x3e, 0x38,
+ 0x81, 0x36, 0xc9, 0xdd,
+ 0x3d, 0x43, 0x48, 0x2f, 0xaa, 0x61, 0xf9, 0x40, 0x9c, 0xc4, 0x2e, 0x9a,
+ 0x0a, 0x5d, 0x67, 0x59,
+ 0x2e, 0x90, 0x3f, 0x51, 0x1a, 0xfd, 0x84, 0x38, 0x9b, 0xaa, 0x88, 0x08,
+ 0x76, 0x0a, 0x6e, 0xe8,
+ 0x72, 0x73, 0x41, 0xf3, 0x2e, 0xc4, 0x4f, 0x48, 0x6e, 0x3d, 0x5b, 0x18,
+ 0x9a, 0x1e, 0xb2, 0xfb,
+ 0x42, 0x08, 0xe2, 0x9b, 0x3e, 0xd0, 0x88, 0xbd, 0x96, 0xca, 0x49, 0x3f,
+ 0x38, 0x40, 0x79, 0x8e,
+ 0x65, 0x3b, 0xbf, 0x3a, 0x23, 0x5b, 0x0d, 0x54, 0xc2, 0x68, 0x1f, 0x1c,
+ 0xa1, 0x1b, 0x85, 0x8f,
+ },
+ { /* 10 */
+ 0xd4, 0x19, 0x2d, 0xd4, 0xc2, 0xc3, 0xd3, 0x9c, 0xe1, 0x5d, 0xa9, 0x18,
+ 0x2c, 0xd1, 0xbe, 0x8f,
+ 0x40, 0x7b, 0xcb, 0x40, 0x94, 0x34, 0xa6, 0x04, 0x50, 0xb3, 0x14, 0xdb,
+ 0x6b, 0x25, 0x60, 0xb5,
+ 0x97, 0xc0, 0xd2, 0x97, 0x3c, 0x7b, 0x81, 0x84, 0xc2, 0x71, 0xd1, 0x87,
+ 0x95, 0x0f, 0x3d, 0xb7,
+ 0x4d, 0x69, 0xb6, 0x4d, 0xd9, 0x84, 0x1d, 0xc1, 0xcf, 0xff, 0x43, 0x34,
+ 0xeb, 0xa7, 0x8a, 0xbf,
+ 0x03, 0xa2, 0x34, 0x03, 0x6a, 0x8c, 0xf4, 0x1c, 0x73, 0x9f, 0x6c, 0x44,
+ 0xd2, 0xfb, 0xe3, 0x8d,
+ 0xd1, 0x3c, 0x71, 0xd1, 0x7c, 0x94, 0x0c, 0xb8, 0x74, 0x3f, 0x1d, 0xd4,
+ 0x99, 0x1f, 0x58, 0xdb,
+ 0xf8, 0x08, 0x79, 0xf8, 0xe3, 0xac, 0xd6, 0xee, 0xc6, 0xdc, 0xd0, 0x47,
+ 0x36, 0x48, 0x84, 0x45,
+ 0xca, 0xc7, 0x26, 0xca, 0xc0, 0xf2, 0x54, 0x44, 0x19, 0xd2, 0x97, 0xf5,
+ 0x14, 0x30, 0xaf, 0xb4,
+ 0x53, 0xb7, 0xbd, 0x53, 0xdb, 0xb5, 0x9a, 0x19, 0x37, 0x70, 0x7d, 0xd9,
+ 0xd3, 0x46, 0x9b, 0x84,
+ 0x66, 0x20, 0x27, 0x66, 0x0a, 0xf5, 0xde, 0x3e, 0x9e, 0xf6, 0xc6, 0xdf,
+ 0xd8, 0xe3, 0x55, 0xd7,
+ 0xa5, 0x0f, 0x8d, 0xa5, 0x1f, 0x25, 0x03, 0x2e, 0x1d, 0x7f, 0x96, 0x35,
+ 0xb7, 0x77, 0x16, 0x46,
+ 0x10, 0x6e, 0x42, 0x10, 0x25, 0x0d, 0xc8, 0x01, 0x14, 0x5c, 0x05, 0x46,
+ 0x6a, 0x98, 0x18, 0xbc,
+ 0x6c, 0x6a, 0x9f, 0x6c, 0xb5, 0x5b, 0xa3, 0x76, 0x77, 0x32, 0x6d, 0x84,
+ 0x71, 0xbc, 0x5a, 0x7f,
+ 0x90, 0x98, 0x17, 0x90, 0xce, 0x65, 0x47, 0x09, 0xb4, 0xf9, 0x2d, 0x33,
+ 0xbc, 0xd2, 0xd8, 0x15,
+ 0x5e, 0xa5, 0xc0, 0x5e, 0x96, 0x05, 0x21, 0xdc, 0xa8, 0x3c, 0x2a, 0x36,
+ 0x53, 0xc4, 0x71, 0x8e,
+ 0xbd, 0x56, 0xee, 0xbd, 0xc9, 0xcf, 0xaf, 0xce, 0x03, 0x0d, 0x70, 0x50,
+ 0xe8, 0xa3, 0x02, 0xa4,
+ 0xc7, 0xd5, 0x5b, 0xc7, 0x8d, 0x42, 0xef, 0x81, 0x86, 0x9e, 0xc0, 0x1a,
+ 0x94, 0xb2, 0x45, 0xbe,
+ 0x20, 0xdc, 0x84, 0x20, 0x4a, 0x1a, 0x53, 0x02, 0x28, 0xb8, 0x0a, 0x8c,
+ 0xd4, 0xf3, 0x30, 0xbb,
+ 0x36, 0x35, 0xae, 0x36, 0xbb, 0xcc, 0xb0, 0x3b, 0xda, 0x19, 0xd7, 0x42,
+ 0xd9, 0x5e, 0x2d, 0xde,
+ 0xe6, 0xd6, 0x72, 0xe6, 0xe1, 0x9d, 0x51, 0x36, 0x3e, 0x53, 0xee, 0xaa,
+ 0x0e, 0xa9, 0x95, 0x7e,
+ 0xf3, 0x9d, 0x6c, 0xf3, 0x7a, 0xc7, 0x46, 0x13, 0xbf, 0x6d, 0x5f, 0x20,
+ 0xd1, 0xff, 0x6b, 0x96,
+ 0x78, 0xfe, 0x2c, 0x78, 0x08, 0xc4, 0x59, 0xe6, 0x66, 0x79, 0xf8, 0x32,
+ 0xe0, 0x02, 0x44, 0xec,
+ 0x60, 0xa7, 0x4f, 0x60, 0xde, 0x2e, 0xf5, 0x06, 0x78, 0x0b, 0x1e, 0x57,
+ 0xbf, 0xd6, 0x50, 0x0e,
+ 0x0c, 0xcd, 0xd0, 0x0c, 0x6b, 0x75, 0x56, 0x70, 0x0f, 0x39, 0x73, 0xd3,
+ 0xce, 0x6a, 0x0a, 0x71,
+ 0x3c, 0x7f, 0x16, 0x3c, 0x04, 0x62, 0xcd, 0x73, 0x33, 0xdd, 0x7c, 0x19,
+ 0x70, 0x01, 0x22, 0x76,
+ 0x7f, 0xa6, 0xe9, 0x7f, 0xfa, 0xda, 0x9f, 0x6b, 0x10, 0xf1, 0x04, 0x86,
+ 0xc9, 0xdf, 0xa1, 0x4e,
+ 0xc0, 0x8d, 0x9e, 0xc0, 0x7f, 0x5c, 0x29, 0x0c, 0xf0, 0x16, 0x3c, 0xae,
+ 0xbd, 0x6f, 0xa0, 0x1c,
+ 0xfa, 0x75, 0xe0, 0xfa, 0xaf, 0xe5, 0xcf, 0x47, 0x25, 0x36, 0x98, 0x3f,
+ 0xaa, 0x5b, 0x87, 0xb3,
+ 0xe5, 0x74, 0x46, 0xe5, 0x8b, 0x11, 0xa5, 0x2a, 0x4d, 0xcc, 0x82, 0xee,
+ 0xdc, 0x52, 0x76, 0xf3,
+ 0x2c, 0x11, 0x54, 0x2c, 0x21, 0x6f, 0x05, 0x72, 0x27, 0x81, 0x79, 0x5f,
+ 0x1a, 0x99, 0x3a, 0xca,
+ 0x29, 0x34, 0x08, 0x29, 0x9f, 0x38, 0xda, 0x56, 0xb2, 0xe3, 0xcd, 0x93,
+ 0xaf, 0x57, 0xdc, 0x9e,
+ 0xce, 0x3d, 0xd7, 0xce, 0x58, 0x60, 0x66, 0xd5, 0x1c, 0xc5, 0x07, 0x05,
+ 0xef, 0x16, 0xa9, 0x9b,
+ 0x7c, 0x04, 0xdd, 0x7c, 0x90, 0x56, 0x6b, 0x77, 0x63, 0x6e, 0x68, 0xc2,
+ 0x1b, 0x24, 0x42, 0xc3,
+ 0x07, 0x58, 0xc5, 0x07, 0xf2, 0x1e, 0xc6, 0x8d, 0x76, 0x88, 0xfc, 0xb4,
+ 0x29, 0xdd, 0xe5, 0xa2,
+ 0xb4, 0xbe, 0x62, 0xb4, 0x1c, 0xed, 0x26, 0x9a, 0x99, 0x56, 0xb7, 0x4f,
+ 0x93, 0x07, 0xee, 0x81,
+ 0x81, 0x29, 0xf8, 0x81, 0xcd, 0xad, 0x62, 0xbd, 0x30, 0xd0, 0x0c, 0x49,
+ 0x98, 0xa2, 0x20, 0xd2,
+ 0xa2, 0x57, 0x48, 0xa2, 0xed, 0x3b, 0xc5, 0xa3, 0x6b, 0xf7, 0x6a, 0x81,
+ 0x9e, 0xaa, 0xf3, 0xe4,
+ 0xf0, 0x3f, 0x58, 0xf0, 0x10, 0x4b, 0xb2, 0x0f, 0xcc, 0xf2, 0x33, 0x64,
+ 0x03, 0x04, 0x88, 0x1b,
+ 0xb6, 0xc3, 0xfb, 0xb6, 0x50, 0xa4, 0x3f, 0x33, 0x7a, 0xbc, 0xff, 0x37,
+ 0x0f, 0x14, 0xed, 0x77,
+ 0x43, 0xd9, 0xff, 0x43, 0xfe, 0xb8, 0x52, 0x18, 0x23, 0x2c, 0x78, 0x9f,
+ 0xb9, 0xde, 0x83, 0x38,
+ 0x67, 0xff, 0x8a, 0x67, 0x2c, 0x30, 0x33, 0x8b, 0x0e, 0x83, 0xe2, 0xe3,
+ 0x96, 0x0b, 0xb5, 0xac,
+ 0x59, 0xfd, 0x05, 0x59, 0x64, 0x1b, 0xe7, 0x51, 0xde, 0xb4, 0xd6, 0x82,
+ 0x7a, 0x19, 0x94, 0x2c,
+ 0xec, 0x9c, 0xca, 0xec, 0x5e, 0x33, 0x2c, 0x7e, 0xd7, 0x97, 0x45, 0xf1,
+ 0xa7, 0xf6, 0x9a, 0xd6,
+ 0x86, 0x71, 0x3d, 0x86, 0x3f, 0xb3, 0xa4, 0x30, 0x46, 0x58, 0xf0, 0xfd,
+ 0xb1, 0x7f, 0xc5, 0x70,
+ 0xf4, 0xc5, 0xa9, 0xf4, 0x88, 0xd9, 0x80, 0x9e, 0xc9, 0xe5, 0xa3, 0x94,
+ 0xf8, 0x22, 0x8e, 0x34,
+ 0xf6, 0xb8, 0x30, 0xf6, 0xc4, 0x90, 0x99, 0x37, 0x2a, 0x0f, 0xeb, 0xec,
+ 0x64, 0x31, 0x8d, 0xc2,
+ 0x5c, 0xd8, 0x59, 0x5c, 0xda, 0x4c, 0x38, 0x75, 0x4b, 0xd6, 0x62, 0x4e,
+ 0xcf, 0xd7, 0x72, 0x78,
+ 0x92, 0xe5, 0x8e, 0x92, 0x82, 0x2c, 0x5e, 0xa0, 0x57, 0x13, 0x65, 0x4b,
+ 0x20, 0xc1, 0xdb, 0xe3,
+ 0xa8, 0x1d, 0xf0, 0xa8, 0x52, 0x95, 0xb8, 0xeb, 0x82, 0x33, 0xc1, 0xda,
+ 0x37, 0xf5, 0xfc, 0x4c,
+ 0xcf, 0xe2, 0x7a, 0xcf, 0x7e, 0xa5, 0x8b, 0x60, 0x8c, 0xb0, 0x23, 0x39,
+ 0xa1, 0xfe, 0x49, 0xe0,
+ 0x2f, 0xb3, 0x60, 0x2f, 0x4b, 0xe3, 0xf1, 0x6e, 0x54, 0x1e, 0x15, 0x1b,
+ 0xc8, 0x62, 0xd9, 0x47,
+ 0xe9, 0xb9, 0x96, 0xe9, 0xe0, 0x64, 0xf3, 0x5a, 0x42, 0xf5, 0xf1, 0x3d,
+ 0x12, 0x38, 0x7c, 0x82,
+ 0x54, 0xef, 0x78, 0x54, 0x29, 0xab, 0x5c, 0x94, 0x41, 0xf8, 0x81, 0x6d,
+ 0xfa, 0x9b, 0x7e, 0x26,
+ 0x8f, 0x99, 0xb1, 0x8f, 0xea, 0x91, 0x2d, 0x64, 0xdc, 0x03, 0x37, 0xe2,
+ 0xca, 0xdb, 0x29, 0x55,
+ 0xaa, 0x60, 0x69, 0xaa, 0x1e, 0xdc, 0xa1, 0x42, 0x61, 0xd9, 0x89, 0xa2,
+ 0xab, 0xe6, 0xff, 0xba,
+ 0x24, 0x26, 0x75, 0x24, 0xd2, 0x88, 0x61, 0x93, 0x2d, 0xaf, 0x9a, 0x7c,
+ 0x2f, 0xd5, 0x36, 0x94,
+ 0x71, 0x16, 0xa0, 0x71, 0xdd, 0xe6, 0xd0, 0xb2, 0xfc, 0x22, 0x3f, 0x2d,
+ 0x9b, 0xa6, 0xa8, 0xc9,
+ 0x65, 0x82, 0x13, 0x65, 0x60, 0x79, 0x2a, 0x22, 0xed, 0x69, 0xaa, 0x9b,
+ 0x0a, 0x18, 0xb6, 0x5a,
+ 0x99, 0x70, 0x9b, 0x99, 0x1b, 0x47, 0xce, 0x5d, 0x2e, 0xa2, 0xea, 0x2c,
+ 0xc7, 0x76, 0x34, 0x30,
+ 0x96, 0x1f, 0x7f, 0x96, 0x1a, 0xbe, 0x6c, 0x31, 0x52, 0x04, 0xf5, 0xbb,
+ 0xdb, 0xe7, 0xdd, 0xcc,
+ 0x9c, 0x55, 0xc7, 0x9c, 0xa5, 0x10, 0x11, 0x79, 0xbb, 0xc0, 0x5e, 0xe0,
+ 0x72, 0xb8, 0xd2, 0x64,
+ 0xdd, 0xf1, 0xa1, 0xdd, 0x17, 0xe1, 0x5a, 0xc8, 0x7b, 0x06, 0x6e, 0x07,
+ 0x57, 0x75, 0x52, 0xaa,
+ 0x5a, 0x5f, 0x31, 0x5a, 0x0e, 0x97, 0x13, 0x4d, 0xad, 0x2b, 0xba, 0xc6,
+ 0xa8, 0xe2, 0x77, 0xa1,
+ 0x80, 0xf6, 0x55, 0x80, 0xeb, 0x68, 0x8f, 0x08, 0xa0, 0xa5, 0x28, 0x75,
+ 0xd6, 0x4a, 0xc0, 0xa9,
+ 0xe8, 0x66, 0x3b, 0xe8, 0xc6, 0xa1, 0x1e, 0xef, 0xd2, 0x80, 0xd5, 0x01,
+ 0x5c, 0xd0, 0x9c, 0xf9,
+ 0x50, 0x15, 0x89, 0x50, 0xb1, 0x39, 0x6e, 0x05, 0x44, 0xef, 0x11, 0x9d,
+ 0x01, 0xbd, 0x78, 0x09,
+ 0x57, 0x4d, 0x4c, 0x57, 0x43, 0x27, 0xa8, 0x88, 0x32, 0x67, 0xed, 0x29,
+ 0x28, 0x60, 0x9d, 0xab,
+ 0xe4, 0xab, 0xeb, 0xe4, 0xad, 0xd4, 0x48, 0x9f, 0xdd, 0xb9, 0xa6, 0xd2,
+ 0x92, 0xba, 0x96, 0x88,
+ 0x1e, 0xde, 0x0b, 0x1e, 0x02, 0x31, 0x87, 0xd8, 0xf8, 0x8f, 0x3e, 0xed,
+ 0x38, 0xe1, 0x11, 0x3b,
+ 0x84, 0x0c, 0xa4, 0x84, 0x73, 0xfa, 0xbd, 0x99, 0xa5, 0xb2, 0xb8, 0x85,
+ 0x2d, 0x6c, 0xc6, 0x86,
+ 0x15, 0x4b, 0x1e, 0x15, 0x9b, 0x5a, 0x17, 0x25, 0x81, 0x3e, 0xb1, 0x8a,
+ 0xdf, 0x56, 0xfe, 0xe8,
+ 0x41, 0xa4, 0x66, 0x41, 0xb2, 0xf1, 0x4b, 0xb1, 0xc0, 0xc6, 0x30, 0xe7,
+ 0x25, 0xcd, 0x80, 0xce,
+ 0x19, 0x86, 0xce, 0x19, 0xf0, 0x2f, 0x41, 0x55, 0x8e, 0x07, 0xc2, 0x59,
+ 0x11, 0x3c, 0xf4, 0x99,
+ 0x26, 0x5b, 0xec, 0x26, 0x9e, 0xc1, 0x78, 0x3a, 0xce, 0x45, 0xd2, 0x04,
+ 0xb3, 0xc6, 0x35, 0x62,
+ 0xa0, 0x2a, 0xd1, 0xa0, 0xa1, 0x72, 0xdc, 0x0a, 0x88, 0x1d, 0x22, 0xf9,
+ 0x02, 0xb9, 0xf0, 0x12,
+ 0x0b, 0x95, 0x15, 0x0b, 0x99, 0x6b, 0x90, 0xfd, 0x79, 0xb1, 0x8f, 0x67,
+ 0xe7, 0xb7, 0xef, 0xd3,
+ 0x22, 0xa1, 0x1d, 0x22, 0x06, 0x53, 0x4a, 0xab, 0xcb, 0x52, 0x42, 0xf4,
+ 0x48, 0xe0, 0x33, 0x4d,
+ 0x9d, 0x8a, 0x6a, 0x9d, 0x83, 0xd5, 0xfc, 0xcc, 0x2b, 0xb5, 0x7a, 0xdc,
+ 0x3c, 0x50, 0x32, 0x1f,
+ 0xf5, 0x1a, 0x04, 0xf5, 0xae, 0x1c, 0x6d, 0x2b, 0x59, 0x90, 0x87, 0xa8,
+ 0xb6, 0xca, 0x6e, 0x4f,
+ 0xda, 0xa9, 0x64, 0xda, 0xe5, 0xff, 0x9c, 0x45, 0x0d, 0x8e, 0x92, 0xb3,
+ 0x7e, 0xa8, 0xb7, 0x08,
+ 0x37, 0xea, 0x03, 0x37, 0x9d, 0x09, 0x5d, 0x8e, 0x4a, 0x6c, 0xf3, 0x7e,
+ 0x97, 0xb6, 0xcd, 0xa5,
+ 0xa7, 0x72, 0x14, 0xa7, 0x53, 0x6c, 0x1a, 0x87, 0xfe, 0x95, 0xde, 0x4d,
+ 0x2b, 0x64, 0x15, 0xb0,
+ 0xcd, 0x9f, 0xe3, 0xcd, 0x32, 0xec, 0x92, 0xc9, 0x6f, 0x5a, 0x6b, 0x41,
+ 0x3d, 0xed, 0x4a, 0x16,
+ 0x63, 0x05, 0x7b, 0x63, 0xb4, 0xa2, 0x01, 0x1a, 0x0b, 0x94, 0x72, 0x13,
+ 0x6d, 0x2d, 0xb3, 0x83,
+ 0xbc, 0x89, 0x43, 0xbc, 0xef, 0x0a, 0x42, 0x7b, 0x93, 0x78, 0x54, 0x6c,
+ 0xa6, 0x4b, 0xe2, 0xdf,
+ 0xe2, 0x2c, 0x83, 0xe2, 0x79, 0x0f, 0x63, 0xa7, 0x3b, 0x44, 0x7e, 0x5a,
+ 0xf5, 0x8f, 0x93, 0x51,
+ 0xd6, 0x64, 0xb4, 0xd6, 0x8e, 0x8a, 0xca, 0x35, 0x02, 0xb7, 0xe1, 0x60,
+ 0xb0, 0xc2, 0xbd, 0x79,
+ 0x94, 0x62, 0xe6, 0x94, 0x56, 0xf7, 0x75, 0x98, 0xb1, 0xee, 0xbd, 0xc3,
+ 0x47, 0xf4, 0xde, 0x3a,
+ 0xa4, 0xd0, 0x20, 0xa4, 0x39, 0xe0, 0xee, 0x9b, 0x8d, 0x0a, 0xb2, 0x09,
+ 0xf9, 0x9f, 0xf6, 0x3d,
+ 0x88, 0xc1, 0x74, 0x88, 0x18, 0x8f, 0xeb, 0xe9, 0xaa, 0x8b, 0xcb, 0x56,
+ 0xe3, 0x06, 0xcc, 0xf7,
+ 0x62, 0xda, 0xd6, 0x62, 0x92, 0x67, 0xec, 0xaf, 0x9b, 0xe1, 0x56, 0x2f,
+ 0x23, 0xc5, 0x53, 0xf8,
+ 0x2e, 0x6c, 0xcd, 0x2e, 0x6d, 0x26, 0x1c, 0xdb, 0xc4, 0x6b, 0x31, 0x27,
+ 0x86, 0x8a, 0x39, 0x3c,
+ 0xc8, 0xba, 0xbf, 0xc8, 0x8c, 0xbb, 0x4d, 0xed, 0xfa, 0x38, 0xdf, 0x8d,
+ 0x88, 0x23, 0xac, 0x42,
+ 0x18, 0x59, 0x63, 0x18, 0xd6, 0xea, 0xac, 0xe0, 0x1e, 0x72, 0xe6, 0x65,
+ 0x5f, 0xd4, 0x14, 0xe2,
+ 0x06, 0x87, 0x68, 0x06, 0xd4, 0xdb, 0x2b, 0x38, 0xe6, 0xfd, 0xd8, 0x88,
+ 0x67, 0x35, 0x05, 0xd9,
+ 0x16, 0xe9, 0x2a, 0x16, 0xf1, 0xd6, 0xe3, 0x39, 0xf2, 0xa1, 0xdd, 0xce,
+ 0x0d, 0xad, 0x1d, 0x65,
+ 0x13, 0xcc, 0x76, 0x13, 0x4f, 0x81, 0x3c, 0x1d, 0x67, 0xc3, 0x69, 0x02,
+ 0xb8, 0x63, 0xfb, 0x31,
+ 0xd2, 0x9e, 0x45, 0xd2, 0x16, 0x18, 0xf8, 0xa4, 0x07, 0xa0, 0x71, 0x90,
+ 0x4b, 0xe4, 0xbb, 0x56,
+ 0x5b, 0x80, 0x9c, 0x5b, 0x28, 0x52, 0xfe, 0xf8, 0x3d, 0x5e, 0x9e, 0xfa,
+ 0xe6, 0x0a, 0x97, 0xda,
+ 0xff, 0x50, 0xbc, 0xff, 0x11, 0xb2, 0x10, 0x63, 0xb0, 0x54, 0x2c, 0xf3,
+ 0x1f, 0x95, 0x61, 0xe7,
+ 0xbb, 0xd1, 0x86, 0xbb, 0x1d, 0x14, 0x84, 0xf6, 0xe5, 0xf0, 0xa8, 0xd8,
+ 0x8f, 0x96, 0x07, 0x7d,
+ 0xc2, 0xf0, 0x07, 0xc2, 0x33, 0x15, 0x30, 0xa5, 0x13, 0xfc, 0x74, 0xd6,
+ 0x21, 0x7c, 0xa3, 0xea,
+ 0xb9, 0xac, 0x1f, 0xb9, 0x51, 0x5d, 0x9d, 0x5f, 0x06, 0x1a, 0xe0, 0xa0,
+ 0x13, 0x85, 0x04, 0x8b,
+ 0xbf, 0x2b, 0x77, 0xbf, 0x85, 0x86, 0xb6, 0x67, 0xe0, 0xe7, 0x38, 0x28,
+ 0x74, 0xb0, 0x01, 0x52,
+ 0xef, 0x3e, 0xfe, 0xef, 0x34, 0xbf, 0xd8, 0x62, 0xa4, 0x08, 0x29, 0xb5,
+ 0x75, 0x0d, 0x79, 0x5b,
+ 0xdc, 0x2e, 0x0c, 0xdc, 0x31, 0x24, 0xb7, 0x7d, 0xeb, 0x73, 0x4a, 0x3b,
+ 0x19, 0x9d, 0xb2, 0xd1,
+ 0x1b, 0xfb, 0x57, 0x1b, 0xbc, 0x66, 0x58, 0xfc, 0x6d, 0xed, 0x8a, 0x21,
+ 0x8d, 0x2f, 0xf7, 0x6f,
+ 0x27, 0x84, 0x41, 0x27, 0xb8, 0x04, 0x95, 0x8f, 0x5e, 0x30, 0xf6, 0x38,
+ 0xfd, 0x2e, 0xd5, 0x19,
+ 0x3e, 0x02, 0x8f, 0x3e, 0x48, 0x2b, 0xd4, 0xda, 0xd0, 0x37, 0x34, 0x61,
+ 0xec, 0x12, 0x21, 0x80,
+ 0xe7, 0x09, 0xdf, 0xe7, 0xc7, 0x58, 0xbc, 0x83, 0xae, 0x26, 0xca, 0x96,
+ 0x40, 0x41, 0x75, 0x05,
+ 0xb0, 0x44, 0x93, 0xb0, 0x84, 0x7f, 0x14, 0x0b, 0x9c, 0x41, 0x27, 0xbf,
+ 0x68, 0x21, 0xe8, 0xae,
+ 0x69, 0x4f, 0xc3, 0x69, 0x0b, 0x0c, 0x7c, 0x52, 0xe2, 0x50, 0xd9, 0x48,
+ 0xc4, 0x72, 0xbc, 0x2b,
+ 0x21, 0x03, 0x29, 0x21, 0x6c, 0xdf, 0xbe, 0xb7, 0xb8, 0xcd, 0x2e, 0xb0,
+ 0x9a, 0x1b, 0xd0, 0xc0,
+ 0x0f, 0x6f, 0xe4, 0x0f, 0x01, 0xf9, 0xa2, 0x6c, 0x7c, 0xa6, 0x1f, 0x97,
+ 0x1c, 0x91, 0xe9, 0xfc,
+ 0xf1, 0xe0, 0xf5, 0xf1, 0x36, 0x8e, 0x5f, 0xba, 0x5c, 0x87, 0x17, 0x58,
+ 0x4d, 0xec, 0x68, 0x60,
+ 0x1a, 0x24, 0xfa, 0x1a, 0x9a, 0xa3, 0xb5, 0x49, 0xfd, 0x98, 0xae, 0x1d,
+ 0xc3, 0xc7, 0x17, 0x14,
+ 0x0d, 0x12, 0x7d, 0x0d, 0x4d, 0xb0, 0xbb, 0xc5, 0x9f, 0x4c, 0x57, 0xef,
+ 0x80, 0x82, 0xea, 0x0a,
+ 0xa6, 0xad, 0xb9, 0xa6, 0x75, 0xa9, 0xf7, 0x32, 0x6e, 0xe0, 0xfa, 0x71,
+ 0x65, 0x8c, 0xf5, 0xcb,
+ 0x02, 0x7d, 0x99, 0x02, 0x4c, 0x49, 0x19, 0xa9, 0xe3, 0xea, 0x48, 0x78,
+ 0x9c, 0x13, 0x03, 0xf6,
+ 0x6a, 0xed, 0xf7, 0x6a, 0x61, 0x80, 0x88, 0x4e, 0x91, 0xcf, 0xb5, 0x0c,
+ 0x16, 0x89, 0x5f, 0xa6,
+ 0x08, 0x37, 0x21, 0x08, 0xf3, 0xe7, 0x64, 0xe1, 0x0a, 0x2e, 0xe3, 0x23,
+ 0x35, 0x4c, 0x0c, 0x5e,
+ 0x4c, 0xb6, 0x1b, 0x4c, 0xff, 0x41, 0xf0, 0x74, 0x5f, 0x8a, 0x67, 0x08,
+ 0xa5, 0x4f, 0x6a, 0xc4,
+ 0x49, 0x93, 0x47, 0x49, 0x41, 0x16, 0x2f, 0x50, 0xca, 0xe8, 0xd3, 0xc4,
+ 0x10, 0x81, 0x8c, 0x90,
+ 0x91, 0x47, 0xba, 0x91, 0xe8, 0xa0, 0xaa, 0xbc, 0x24, 0x8c, 0x09, 0x0f,
+ 0xf2, 0x3a, 0x38, 0x6e,
+ 0xe1, 0x8e, 0xb7, 0xe1, 0x13, 0x83, 0x97, 0xbb, 0x48, 0xdb, 0x12, 0x1e,
+ 0x27, 0x74, 0x70, 0xdc,
+ 0x8b, 0x63, 0x40, 0x8b, 0x72, 0x03, 0x1f, 0xf5, 0xd9, 0x14, 0xa7, 0x12,
+ 0x31, 0xfd, 0x2f, 0x7a,
+ 0x14, 0x94, 0xb3, 0x14, 0xbd, 0x9f, 0xfa, 0x90, 0x11, 0x4b, 0x95, 0xb6,
+ 0x91, 0xbe, 0x1e, 0x93,
+ 0x95, 0xbd, 0x4b, 0x95, 0x70, 0x32, 0x98, 0x2d, 0x21, 0x9b, 0x99, 0xff,
+ 0x09, 0x1c, 0x3e, 0x41,
+ 0xb8, 0x73, 0xb2, 0xb8, 0x77, 0x98, 0x70, 0xea, 0x96, 0x6f, 0xc4, 0x9c,
+ 0x5d, 0x6d, 0xe4, 0xf0,
+ 0x9e, 0x28, 0x5e, 0x9e, 0xe9, 0x59, 0x08, 0xd0, 0x58, 0x2a, 0x16, 0x98,
+ 0xee, 0xab, 0xd1, 0x92,
+ 0xeb, 0xc4, 0x0f, 0xeb, 0xac, 0x2d, 0xea, 0xf3, 0xa1, 0x1f, 0xb9, 0x45,
+ 0x8e, 0x2b, 0x7f, 0x74,
+ 0x6e, 0x17, 0x06, 0x6e, 0xf9, 0x12, 0xba, 0xdf, 0x94, 0xd8, 0x25, 0xfc,
+ 0xed, 0xaf, 0x59, 0x89,
+ 0xc3, 0x2f, 0xaa, 0xc3, 0x15, 0xd0, 0xdd, 0x10, 0x83, 0x89, 0x50, 0xea,
+ 0x6f, 0x94, 0x43, 0x91,
+ 0x98, 0xaf, 0x36, 0x98, 0x3d, 0x82, 0x23, 0xe8, 0xbe, 0xd7, 0xce, 0x10,
+ 0x89, 0x9e, 0xd4, 0x4b,
+ 0x70, 0xc9, 0x0d, 0x70, 0xfb, 0x23, 0x3d, 0x07, 0x6c, 0x57, 0x1b, 0x11,
+ 0xd5, 0x4e, 0x48, 0xb2,
+ 0x72, 0xb4, 0x94, 0x72, 0xb7, 0x6a, 0x24, 0xae, 0x8f, 0xbd, 0x53, 0x69,
+ 0x49, 0x5d, 0x4b, 0x44,
+ 0x04, 0xfa, 0xf1, 0x04, 0x98, 0x92, 0x32, 0x91, 0x05, 0x17, 0x90, 0xf0,
+ 0xfb, 0x26, 0x06, 0x2f,
+ 0xed, 0x43, 0x67, 0xed, 0x78, 0xf6, 0xc1, 0xcb, 0x47, 0xe2, 0x61, 0xcd,
+ 0xe9, 0x1e, 0x7a, 0xad,
+ 0xf2, 0x42, 0xc1, 0xf2, 0x5c, 0x02, 0xab, 0xa6, 0x2f, 0x18, 0x7b, 0x1c,
+ 0x9f, 0x17, 0x8b, 0xed,
+ 0x47, 0x23, 0x0e, 0x47, 0x66, 0x2a, 0x60, 0x89, 0x26, 0x3b, 0xe8, 0x6f,
+ 0x42, 0xf8, 0x85, 0x17,
+ 0x45, 0x5e, 0x97, 0x45, 0x2a, 0x63, 0x79, 0x20, 0xc5, 0xd1, 0xa0, 0x17,
+ 0xde, 0xeb, 0x86, 0xe1,
+ 0x9a, 0xd2, 0xaf, 0x9a, 0x71, 0xcb, 0x3a, 0x41, 0x5d, 0x3d, 0x86, 0x68,
+ 0x15, 0x8d, 0xd7, 0xbd,
+ 0xd5, 0xc6, 0x80, 0xd5, 0xe4, 0x06, 0x3e, 0x29, 0x71, 0x28, 0x8d, 0x24,
+ 0x62, 0x39, 0x5e, 0xf4,
+ 0xd9, 0x0b, 0x50, 0xd9, 0x8f, 0x73, 0x68, 0x59, 0x7e, 0x11, 0xfe, 0xf7,
+ 0xac, 0x53, 0x54, 0x85,
+ 0x8d, 0xe4, 0x28, 0x8d, 0xa6, 0xd8, 0x34, 0xcd, 0x3f, 0xe9, 0x7f, 0x9a,
+ 0x56, 0xc8, 0x2a, 0xa3,
+ 0x3b, 0x27, 0xd3, 0x3b, 0xf6, 0x7c, 0x0b, 0xfe, 0x45, 0x55, 0x80, 0xad,
+ 0x59, 0xdc, 0xc7, 0xd4,
+ 0x6f, 0xc8, 0xab, 0x6f, 0xdf, 0xd7, 0x57, 0x6a, 0x04, 0xad, 0x01, 0xc0,
+ 0xa3, 0x47, 0xb9, 0xf2,
+ 0x4e, 0xcb, 0x82, 0x4e, 0xb3, 0x08, 0xe9, 0xdd, 0xbc, 0x60, 0x2f, 0x70,
+ 0x39, 0x5c, 0x69, 0x32,
+ 0x34, 0x48, 0x37, 0x34, 0xf7, 0x85, 0xa9, 0x92, 0x39, 0xf3, 0x9f, 0x3a,
+ 0x45, 0x4d, 0x2e, 0x28,
+ 0x74, 0x33, 0xfc, 0x74, 0x63, 0xb1, 0x0f, 0x96, 0x69, 0x40, 0x8b, 0xe1,
+ 0x2e, 0x68, 0x4e, 0x9d,
+ 0x9f, 0xf7, 0xf3, 0x9f, 0xcf, 0x9c, 0xe5, 0x65, 0xc8, 0x5f, 0x32, 0xa4,
+ 0xa0, 0x43, 0x31, 0xe9,
+ 0x7d, 0xdb, 0x70, 0x7d, 0xb6, 0x93, 0x86, 0xc2, 0xf3, 0x1b, 0x4c, 0xfe,
+ 0x55, 0xcc, 0xa2, 0xb8,
+ 0x61, 0x78, 0xe2, 0x61, 0xf8, 0xeb, 0x18, 0xb3, 0xe8, 0x7e, 0x3a, 0x6b,
+ 0xf1, 0x3e, 0xb0, 0x75,
+ 0x31, 0x6d, 0x6b, 0x31, 0x49, 0xd2, 0x76, 0xb6, 0xac, 0x91, 0x2b, 0xf6,
+ 0xf0, 0x83, 0xc8, 0x7c,
+ 0x09, 0xe8, 0x8c, 0x09, 0xd5, 0x22, 0x89, 0x54, 0x9a, 0x5b, 0xc7, 0x1f,
+ 0x7b, 0xa4, 0xec, 0x25,
+ 0x12, 0x13, 0xdb, 0x12, 0x69, 0x44, 0xd1, 0xa8, 0xf7, 0xb6, 0x4d, 0x3e,
+ 0xf6, 0x8b, 0x1b, 0x4a,
+ 0x64, 0x5d, 0xbe, 0x64, 0x46, 0xbc, 0xc7, 0x97, 0x7d, 0x1c, 0x8e, 0xa7,
+ 0x44, 0xf0, 0x56, 0x21,
+ 0xd7, 0xbb, 0x19, 0xd7, 0xa8, 0x4f, 0x27, 0x80, 0x92, 0xc2, 0xc5, 0x5c,
+ 0xfe, 0x2a, 0x5d, 0x02,
+ 0x93, 0x3a, 0x23, 0x93, 0xa4, 0xe9, 0xb3, 0x15, 0xc7, 0x66, 0x41, 0x77,
+ 0x6e, 0x29, 0x3b, 0x98,
+ 0x3a, 0xf8, 0x7e, 0x3a, 0xd0, 0xb9, 0xe6, 0x4b, 0xd5, 0x20, 0xa4, 0x91,
+ 0x17, 0x34, 0x27, 0xaf,
+ 0xa3, 0x88, 0xe5, 0xa3, 0xcb, 0xfe, 0x28, 0x16, 0xfb, 0x82, 0x4e, 0xbd,
+ 0xd0, 0x42, 0x13, 0x9f,
+ 0xad, 0x38, 0xac, 0xad, 0xec, 0xc2, 0x67, 0xcf, 0x17, 0x51, 0x75, 0x16,
+ 0x82, 0x3b, 0x1a, 0x18,
+ 0x1c, 0xa3, 0x92, 0x1c, 0x4e, 0x78, 0x9e, 0x71, 0x1b, 0x65, 0x76, 0x95,
+ 0xa4, 0xf2, 0x12, 0xcd,
+ 0x7e, 0x79, 0x44, 0x7e, 0xdc, 0x1f, 0x72, 0xde, 0x80, 0x84, 0x20, 0xba,
+ 0x87, 0x37, 0x41, 0x35,
+ 0x76, 0x4e, 0x65, 0x76, 0x2f, 0xf8, 0x16, 0x3f, 0x8a, 0xaa, 0xc3, 0x99,
+ 0xb2, 0x7b, 0x4d, 0x6b,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x33, 0x10, 0xf2, 0x33, 0x05, 0x9b, 0x6f, 0x1f, 0x4f, 0x7b, 0x63, 0x8e,
+ 0x6c, 0x90, 0xcb, 0x8a,
+ 0xf7, 0x67, 0x9d, 0xf7, 0xe2, 0x55, 0x74, 0x82, 0xba, 0x7a, 0xcf, 0xd0,
+ 0x2a, 0xd9, 0x6d, 0xb9,
+ 0x28, 0xeb, 0xa5, 0x28, 0xb9, 0xfd, 0x37, 0xe3, 0x22, 0x96, 0xe9, 0xaf,
+ 0xe1, 0xbf, 0x3c, 0xe5,
+ 0x23, 0x7e, 0xb0, 0x23, 0x20, 0x96, 0xa7, 0x1e, 0x5b, 0x27, 0x66, 0xc8,
+ 0x06, 0x08, 0xd3, 0x36,
+ 0xb2, 0x39, 0x0a, 0xb2, 0xc8, 0x36, 0x0d, 0xa2, 0x7f, 0xab, 0x6f, 0xc7,
+ 0xf4, 0x32, 0xeb, 0x58,
+ 0xbe, 0xf4, 0xda, 0xbe, 0xa3, 0x43, 0x5b, 0xd2, 0x70, 0x92, 0x1c, 0x14,
+ 0x3a, 0x58, 0xe1, 0x29,
+ 0x42, 0x06, 0x52, 0x42, 0xd8, 0x7d, 0xbf, 0xad, 0xb3, 0x59, 0x5c, 0xa3,
+ 0xf7, 0x36, 0x63, 0x43,
+ 0x11, 0xb1, 0xef, 0x11, 0x03, 0xc8, 0x25, 0xb4, 0x84, 0x29, 0x21, 0x7a,
+ 0x24, 0x70, 0xf8, 0xc7,
+ 0xc4, 0x77, 0x6f, 0xc4, 0xe7, 0xce, 0x1b, 0x9d, 0xf5, 0x01, 0xac, 0x5e,
+ 0x46, 0x49, 0xa6, 0x33,
+ 0x5f, 0x7a, 0x6d, 0x5f, 0xb0, 0xc0, 0xcc, 0x69, 0x38, 0x49, 0x0e, 0x0a,
+ 0x1d, 0x2c, 0x91, 0xf5,
+ 0x30, 0xb2, 0xc6, 0x30, 0x6f, 0x17, 0x9b, 0x03, 0x3c, 0xe4, 0x0f, 0xca,
+ 0xbe, 0x6b, 0x28, 0x07,
+ 0x01, 0xdf, 0xad, 0x01, 0x26, 0xc5, 0xed, 0xb5, 0x90, 0x75, 0x24, 0x3c,
+ 0x4e, 0xe8, 0xe0, 0x7b,
+ 0xd8, 0xd4, 0xfd, 0xd8, 0xa9, 0xb6, 0x85, 0xec, 0xee, 0x64, 0xda, 0xcb,
+ 0xe2, 0xbb, 0xb4, 0xfe,
+ 0x05, 0x25, 0x5c, 0x05, 0xbe, 0x57, 0xdf, 0x24, 0x95, 0x62, 0xb4, 0xcc,
+ 0xb5, 0xce, 0xe6, 0x54,
+ 0x32, 0xcf, 0x5f, 0x32, 0x23, 0x5e, 0x82, 0xaa, 0xdf, 0x0e, 0x47, 0xb2,
+ 0x22, 0x78, 0x2b, 0xf1,
+ 0xdf, 0x8c, 0x38, 0xdf, 0x5b, 0xa8, 0x43, 0x61, 0x98, 0xec, 0x26, 0x7f,
+ 0xcb, 0x66, 0x51, 0x5c,
+ 0xba, 0x0e, 0x2b, 0xba, 0x3b, 0xd1, 0x69, 0x43, 0x75, 0x85, 0x8c, 0xe4,
+ 0xc1, 0x7e, 0xe7, 0x06,
+ 0x8e, 0x46, 0x1c, 0x8e, 0xcc, 0x54, 0xc0, 0xd1, 0x4c, 0x76, 0x13, 0xde,
+ 0x84, 0x33, 0xc9, 0x2e,
+ 0x73, 0x6b, 0x39, 0x73, 0x91, 0xaf, 0xc9, 0x1b, 0x1f, 0xc8, 0x77, 0x55,
+ 0x07, 0xb5, 0xab, 0x3f,
+ 0xfd, 0x2d, 0x25, 0xfd, 0x5d, 0xfb, 0x09, 0xca, 0x53, 0xbe, 0x64, 0x8b,
+ 0x83, 0x86, 0x62, 0x11,
+ 0x8c, 0x3b, 0x85, 0x8c, 0x80, 0x1d, 0xd9, 0x78, 0xaf, 0x9c, 0x5b, 0xa6,
+ 0x18, 0x20, 0xca, 0xd8,
+ 0xb3, 0xe6, 0xa7, 0xb3, 0xee, 0xf3, 0xe0, 0x17, 0xef, 0xde, 0x4b, 0xfb,
+ 0xba, 0xda, 0x0b, 0x23,
+ 0x56, 0x92, 0xe1, 0x56, 0x65, 0xe2, 0x45, 0x3d, 0xa2, 0x12, 0xc9, 0x15,
+ 0x66, 0x88, 0x7d, 0xd0,
+ 0x2b, 0x49, 0x91, 0x2b, 0xd3, 0x71, 0xc3, 0xff, 0x51, 0x09, 0x85, 0xeb,
+ 0x33, 0x44, 0xdf, 0x68,
+ 0x82, 0x8b, 0xcc, 0x82, 0xa7, 0x21, 0x96, 0xa1, 0x43, 0x4f, 0x60, 0x0d,
+ 0x4a, 0x59, 0xc3, 0x5f,
+ 0x6b, 0x32, 0x5a, 0x6b, 0x47, 0x45, 0x65, 0xfb, 0x01, 0xba, 0x91, 0x30,
+ 0x58, 0x61, 0xbf, 0xdd,
+ 0x87, 0xae, 0x90, 0x87, 0x19, 0x76, 0x49, 0x85, 0xd6, 0x2d, 0xd4, 0xc1,
+ 0xff, 0x97, 0x25, 0x0b,
+ 0xae, 0x9a, 0x98, 0xae, 0x86, 0x4e, 0x93, 0xd3, 0x64, 0xce, 0x19, 0x52,
+ 0x50, 0xc0, 0xf9, 0x95,
+ 0x46, 0xfc, 0xa3, 0x46, 0x40, 0xef, 0x8d, 0x3c, 0xb6, 0x4e, 0xcc, 0x53,
+ 0x0c, 0x10, 0x65, 0x6c,
+ 0xa9, 0xc2, 0x5d, 0xa9, 0x74, 0x50, 0x55, 0x5e, 0x12, 0x46, 0xe5, 0xe6,
+ 0x79, 0x1d, 0x1c, 0x37,
+ 0xe0, 0x51, 0x1a, 0xe0, 0x35, 0x46, 0x7a, 0x0e, 0xd8, 0xae, 0x36, 0x22,
+ 0x69, 0x9c, 0x90, 0xa7,
+ 0xc6, 0x0a, 0xf6, 0xc6, 0xab, 0x87, 0x02, 0x34, 0x16, 0xeb, 0xe4, 0x26,
+ 0xda, 0x5a, 0xa5, 0xc5,
+ 0xaf, 0x45, 0x35, 0xaf, 0xa0, 0x8b, 0x7e, 0x66, 0xf4, 0xbb, 0x3d, 0x6e,
+ 0x1e, 0x28, 0x19, 0xee,
+ 0xb1, 0x9b, 0x3e, 0xb1, 0xa2, 0xba, 0xf9, 0xbe, 0x0c, 0x34, 0x03, 0x83,
+ 0x26, 0xc9, 0x08, 0xd5,
+ 0x0e, 0xb0, 0x49, 0x0e, 0x27, 0x3c, 0x4f, 0xd9, 0xec, 0xd3, 0x3b, 0xab,
+ 0x52, 0x79, 0x09, 0x87,
+ 0x89, 0x1e, 0xd9, 0x89, 0x3e, 0x4a, 0x06, 0x5c, 0x3a, 0xfe, 0xef, 0x6a,
+ 0xad, 0xee, 0x2c, 0x8c,
+ 0x79, 0x21, 0x81, 0x79, 0x2e, 0x01, 0xb4, 0x53, 0xf6, 0x0c, 0xdc, 0x0e,
+ 0xae, 0xea, 0xa4, 0x97,
+ 0xd3, 0x41, 0xe8, 0xd3, 0x30, 0xdd, 0x15, 0x11, 0x97, 0xd5, 0x55, 0xac,
+ 0x05, 0x0c, 0x5b, 0x2d,
+ 0x2d, 0xce, 0xf9, 0x2d, 0x07, 0xaa, 0xe8, 0xc7, 0xb7, 0xf4, 0x5d, 0x63,
+ 0x54, 0x71, 0xda, 0xb1,
+ 0xc9, 0x65, 0x12, 0xc9, 0xaa, 0x7e, 0xa0, 0x58, 0x6a, 0x4d, 0xfb, 0xb1,
+ 0xc6, 0xcb, 0x4c, 0x39,
+ 0x0a, 0x4a, 0xb8, 0x0a, 0xbf, 0xae, 0x7d, 0x48, 0xe9, 0xc4, 0xab, 0x5b,
+ 0xa9, 0x5f, 0x0f, 0xa8,
+ 0xdb, 0x76, 0xc9, 0xdb, 0xc3, 0x3a, 0x71, 0xf0, 0x9d, 0xfb, 0xb6, 0x8f,
+ 0x30, 0x40, 0x57, 0x73,
+ 0x7b, 0x5c, 0x18, 0x7b, 0x62, 0x48, 0xad, 0xfa, 0x15, 0xe6, 0x94, 0x76,
+ 0x32, 0xf9, 0xa7, 0x61,
+ 0xde, 0x53, 0x95, 0xde, 0x7d, 0x6d, 0xae, 0xd4, 0x08, 0x99, 0x02, 0x43,
+ 0x85, 0x8e, 0xb1, 0x27,
+ 0x48, 0x4c, 0xea, 0x48, 0x67, 0xd3, 0xc2, 0xe5, 0x5a, 0x9d, 0xf7, 0xf8,
+ 0x5e, 0x69, 0x6c, 0xeb,
+ 0xe3, 0xf3, 0x2e, 0xe3, 0x5f, 0xca, 0x8e, 0x12, 0xab, 0x31, 0x5a, 0x66,
+ 0xbb, 0x67, 0x73, 0x2a,
+ 0x4b, 0xee, 0xde, 0x4b, 0x0d, 0x5f, 0x36, 0xf9, 0x29, 0x02, 0x9b, 0xbc,
+ 0x8c, 0x92, 0x8f, 0x66,
+ 0x35, 0x97, 0x9a, 0x35, 0xd1, 0x40, 0x44, 0x27, 0xa9, 0x86, 0xbb, 0x06,
+ 0x0b, 0xa5, 0xce, 0x53,
+ 0x8a, 0xbc, 0xed, 0x8a, 0x54, 0xc6, 0xf2, 0x40, 0x49, 0x61, 0x83, 0x2e,
+ 0x7f, 0x15, 0xcf, 0x01,
+ 0xfb, 0xaa, 0x4d, 0xfb, 0x89, 0x20, 0x22, 0xf2, 0xb5, 0x43, 0xbc, 0x03,
+ 0xe4, 0xb3, 0x67, 0xc8,
+ 0x85, 0xd3, 0x09, 0x85, 0x55, 0x3f, 0x50, 0x2c, 0x35, 0xc7, 0x9c, 0xb9,
+ 0x63, 0x84, 0x26, 0xfd,
+ 0xcb, 0x18, 0x8b, 0xcb, 0xe6, 0x37, 0xb9, 0xf1, 0x89, 0xa7, 0xb3, 0xc9,
+ 0x5a, 0xd8, 0x4f, 0xcf,
+ 0xb7, 0x1c, 0x56, 0xb7, 0x76, 0x61, 0xd2, 0x86, 0xea, 0xc9, 0xdb, 0x0b,
+ 0x41, 0xfc, 0x0d, 0x0c,
+ 0x2a, 0x96, 0x3c, 0x2a, 0xf5, 0xb4, 0x2e, 0x4a, 0xc1, 0x7c, 0xa1, 0xd7,
+ 0x7d, 0xac, 0x3f, 0x13,
+ 0xab, 0xbf, 0xc4, 0xab, 0x38, 0x19, 0x4c, 0xf7, 0xf1, 0xac, 0xad, 0x9e,
+ 0xe5, 0x0e, 0x1f, 0xc1,
+ 0x3f, 0xdd, 0x22, 0x3f, 0x6e, 0xee, 0x39, 0x6f, 0x40, 0x42, 0x10, 0x5d,
+ 0xa2, 0xfa, 0xc1, 0xfb,
+ 0x39, 0x5a, 0x4a, 0x39, 0xba, 0x35, 0x12, 0x57, 0xa6, 0xbf, 0xc8, 0xd5,
+ 0xc5, 0xcf, 0xc4, 0x22,
+ 0xea, 0x1b, 0xa2, 0xea, 0x8a, 0xe8, 0x07, 0x46, 0x31, 0x6a, 0x9d, 0x79,
+ 0xc0, 0xc3, 0x9f, 0x0f,
+ 0xb5, 0x61, 0xcf, 0xb5, 0x3a, 0x28, 0xcb, 0x2f, 0x09, 0x23, 0x93, 0x73,
+ 0xdd, 0xef, 0x0e, 0xfa,
+ 0x51, 0xca, 0x24, 0x51, 0x97, 0xfc, 0x83, 0xb0, 0xd4, 0x9a, 0x35, 0xa1,
+ 0x4f, 0x55, 0x98, 0x72,
+ 0x9b, 0x0d, 0x02, 0x9b, 0x57, 0x0e, 0xd7, 0xf4, 0xcd, 0x48, 0xa2, 0x54,
+ 0x5b, 0x65, 0x37, 0xc6,
+ 0x7a, 0x83, 0xb5, 0x7a, 0x44, 0x8d, 0x40, 0x4f, 0x85, 0x93, 0xb0, 0x4a,
+ 0x7c, 0x11, 0x47, 0x1a,
+ 0xa1, 0xf5, 0x7c, 0xa1, 0x87, 0xb7, 0x31, 0xbf, 0x18, 0x68, 0x06, 0xc5,
+ 0x4c, 0x51, 0x10, 0x69,
+ 0xd0, 0xe3, 0xdc, 0xd0, 0x5a, 0x51, 0xe1, 0x0d, 0xe4, 0x4a, 0x39, 0xe8,
+ 0xd7, 0xf7, 0xb8, 0xa0,
+ 0x4a, 0x31, 0x73, 0x4a, 0x2b, 0x9a, 0xdb, 0x4c, 0xb9, 0x77, 0xbf, 0x80,
+ 0xc2, 0x7a, 0x6f, 0x1d,
+ 0x77, 0x91, 0xc8, 0x77, 0x09, 0x3d, 0xfb, 0x8a, 0x1a, 0xdf, 0xe7, 0xa5,
+ 0xfc, 0x93, 0xad, 0x10,
+ 0x5d, 0x07, 0xf4, 0x5d, 0xfc, 0x89, 0xd5, 0xc0, 0xdb, 0xa3, 0x46, 0x72,
+ 0x81, 0x3f, 0x92, 0x03,
+ 0x4f, 0x14, 0x2f, 0x4f, 0x95, 0xcd, 0x04, 0x68, 0x2c, 0x15, 0x0b, 0x4c,
+ 0x77, 0xb4, 0x89, 0x49,
+ 0x1d, 0x7c, 0x3f, 0x1d, 0x68, 0xbd, 0x73, 0xc4, 0x8b, 0x10, 0x52, 0xa9,
+ 0xea, 0x1a, 0xf2, 0xb6,
+ 0x83, 0x54, 0x61, 0x83, 0x81, 0xe4, 0x7b, 0x14, 0xd3, 0x3a, 0x44, 0x31,
+ 0x04, 0xb1, 0x23, 0x24,
+ 0x52, 0x68, 0x10, 0x52, 0xfd, 0x70, 0x77, 0xac, 0xa7, 0x05, 0x59, 0xe5,
+ 0x9d, 0xae, 0x7b, 0xff,
+ 0x25, 0xf9, 0xd8, 0x25, 0xf4, 0x4d, 0x8c, 0x26, 0xbd, 0xda, 0xbe, 0x40,
+ 0x61, 0x3d, 0xd6, 0xef,
+ 0xfe, 0x8f, 0x11, 0xfe, 0x37, 0x77, 0xfd, 0xd6, 0x20, 0x21, 0x08, 0xcf,
+ 0x51, 0x7d, 0x81, 0x9c,
+ 0x3d, 0xa0, 0xbb, 0x3d, 0x22, 0xa7, 0x20, 0xc6, 0xa3, 0xa8, 0x58, 0x25,
+ 0x3e, 0xe9, 0xc2, 0x0d,
+ 0x58, 0x22, 0xa8, 0x58, 0x42, 0xde, 0x0a, 0xe4, 0x4e, 0xc1, 0xf2, 0xbe,
+ 0x34, 0xf1, 0x74, 0x57,
+ 0x55, 0x30, 0xd5, 0x55, 0x0f, 0x6e, 0xb1, 0x21, 0xd1, 0x8d, 0xa5, 0x51,
+ 0xb4, 0x73, 0x9e, 0x5d,
+ 0xf9, 0xd7, 0xd4, 0xf9, 0xc5, 0x69, 0x3b, 0x5b, 0x56, 0xa9, 0xf4, 0x7b,
+ 0x78, 0xa0, 0x64, 0x3e,
+ 0xac, 0xe7, 0x01, 0xac, 0xca, 0x07, 0x8a, 0x7a, 0x87, 0x24, 0x51, 0x2a,
+ 0xcc, 0xd3, 0xfa, 0x63,
+ 0xfc, 0xf2, 0x88, 0xfc, 0x7b, 0x3e, 0xe4, 0x7f, 0xc3, 0xcb, 0x40, 0xb7,
+ 0xcd, 0x6e, 0x82, 0x6a,
+ 0x68, 0x90, 0x6e, 0x68, 0x2d, 0xc9, 0x91, 0xe7, 0x72, 0x25, 0xfd, 0x74,
+ 0x8a, 0x9a, 0x5c, 0x50,
+ 0xc1, 0x52, 0x33, 0xc1, 0x59, 0x99, 0xc4, 0xb9, 0x60, 0x63, 0x18, 0x92,
+ 0xf3, 0x87, 0x40, 0x67,
+ 0x38, 0x85, 0xe7, 0x38, 0x9c, 0xf0, 0xff, 0xe2, 0x36, 0xca, 0xec, 0xe9,
+ 0x8b, 0x27, 0x24, 0x59,
+ 0x75, 0xec, 0x51, 0x75, 0x45, 0x74, 0xe2, 0x23, 0xf9, 0x35, 0xaf, 0xdd,
+ 0x60, 0x80, 0xae, 0xe6,
+ 0x6d, 0xb5, 0x32, 0x6d, 0x93, 0x9e, 0x4e, 0xc3, 0xe7, 0x47, 0x49, 0xb8,
+ 0x3f, 0x54, 0xba, 0x04,
+ 0x1f, 0x01, 0xa6, 0x1f, 0x24, 0xf4, 0x6a, 0x6d, 0x68, 0xfa, 0x1a, 0xd1,
+ 0x76, 0x09, 0xf1, 0x40,
+ 0x17, 0x36, 0x87, 0x17, 0xd7, 0x13, 0x0e, 0x8c, 0x62, 0xd4, 0xf9, 0xf2,
+ 0x43, 0x45, 0xfd, 0x1e,
+ 0x44, 0x81, 0x3a, 0x44, 0x0c, 0xa6, 0x94, 0x95, 0x55, 0xa4, 0x84, 0x2b,
+ 0x90, 0x03, 0x66, 0x9a,
+ 0xcc, 0x40, 0x4e, 0xcc, 0x14, 0x29, 0x7f, 0x7c, 0xff, 0x2f, 0x4f, 0x7d,
+ 0x73, 0x05, 0xaa, 0x6d,
+ 0xc5, 0xa8, 0xc2, 0xc5, 0xc1, 0x0b, 0xf6, 0x28, 0x65, 0x74, 0x88, 0x62,
+ 0x08, 0xa1, 0x46, 0x48,
+ 0xee, 0xe1, 0x53, 0xee, 0x12, 0x7a, 0x35, 0xd7, 0x34, 0x7d, 0x0d, 0x89,
+ 0x3b, 0xe5, 0x99, 0x20,
+ },
+ { /* 11 */
+ 0xfe, 0x50, 0x71, 0x7c, 0xfc, 0x9b, 0xad, 0x09, 0xfc, 0x5e, 0x38, 0x3f,
+ 0x3f, 0x68, 0x53, 0x1b,
+ 0x6d, 0x9f, 0xd8, 0xf4, 0xee, 0xe2, 0xd1, 0xe9, 0xee, 0x90, 0x3c, 0xda,
+ 0xda, 0xa3, 0xbc, 0xf8,
+ 0x53, 0x94, 0xe4, 0x01, 0xdd, 0x92, 0x0e, 0x3a, 0xdd, 0xb8, 0xb0, 0xa6,
+ 0xa6, 0x24, 0x5d, 0x4e,
+ 0xab, 0xb8, 0x14, 0x53, 0x11, 0x91, 0xf4, 0xf0, 0x11, 0x18, 0xc5, 0x95,
+ 0x95, 0x7d, 0x5f, 0xd3,
+ 0xc0, 0x5b, 0x4d, 0x89, 0xcf, 0xeb, 0x72, 0xda, 0xcf, 0x76, 0xb4, 0x43,
+ 0x43, 0xef, 0xb2, 0xad,
+ 0x7d, 0xbd, 0xa6, 0x24, 0x6e, 0x65, 0x3b, 0xa4, 0x6e, 0xc4, 0x27, 0xfa,
+ 0xfa, 0x9a, 0x46, 0x2f,
+ 0xaf, 0x51, 0xea, 0x67, 0x31, 0xc0, 0x2f, 0x72, 0x31, 0x0d, 0xb3, 0x9d,
+ 0x9d, 0xe2, 0x80, 0x96,
+ 0x72, 0x7b, 0xc6, 0x6f, 0x16, 0xda, 0x5f, 0x61, 0x16, 0x84, 0x7a, 0xe4,
+ 0xe4, 0x01, 0x2d, 0xa3,
+ 0x27, 0x93, 0xa3, 0x40, 0xfb, 0xd0, 0x06, 0x98, 0xfb, 0xc2, 0x87, 0x4e,
+ 0x4e, 0x14, 0x21, 0x6b,
+ 0xf9, 0x87, 0x2e, 0x5f, 0xc4, 0x86, 0xbc, 0x0b, 0xc4, 0x34, 0x89, 0x31,
+ 0x31, 0x0e, 0x45, 0x1d,
+ 0x8e, 0xbe, 0xc8, 0x09, 0xfa, 0x88, 0x7e, 0x29, 0xfa, 0x31, 0x79, 0xdf,
+ 0xdf, 0xc7, 0xf0, 0x7b,
+ 0x8a, 0x57, 0x36, 0x3d, 0xda, 0xd9, 0xa5, 0xab, 0xda, 0x24, 0x0f, 0xd7,
+ 0xd7, 0x58, 0x2f, 0x3e,
+ 0x3c, 0x9e, 0x43, 0xef, 0x23, 0xb9, 0x53, 0x92, 0x23, 0xc3, 0xb7, 0x78,
+ 0x78, 0x29, 0x6f, 0x75,
+ 0x50, 0xaa, 0x45, 0x16, 0xc5, 0xde, 0xc4, 0xba, 0xc5, 0xc7, 0x77, 0xa0,
+ 0xa0, 0xdd, 0x94, 0x0d,
+ 0xe1, 0xb4, 0x6f, 0xe7, 0x04, 0xa3, 0x23, 0x81, 0x04, 0x4a, 0x7e, 0x01,
+ 0x01, 0xca, 0xc2, 0x40,
+ 0x41, 0x23, 0xe5, 0xcb, 0x4d, 0xdc, 0x68, 0x36, 0x4d, 0x07, 0x90, 0x82,
+ 0x82, 0xb3, 0x29, 0x5a,
+ 0xb4, 0x5c, 0x0a, 0xc8, 0xe9, 0xa9, 0x7a, 0x78, 0xe9, 0x0c, 0x83, 0xab,
+ 0xab, 0xdf, 0xce, 0x88,
+ 0xd7, 0xae, 0x6c, 0x7a, 0x77, 0x71, 0x89, 0x95, 0x77, 0x48, 0x1e, 0x6d,
+ 0x6d, 0xb0, 0x5e, 0x7c,
+ 0x1e, 0x4f, 0xc0, 0x96, 0xf0, 0xbd, 0xc8, 0x49, 0xf0, 0x80, 0xba, 0x3c,
+ 0x3c, 0xf5, 0xd6, 0xdb,
+ 0x23, 0x7a, 0x5d, 0x74, 0xdb, 0x81, 0xdd, 0x1a, 0xdb, 0xd7, 0xf1, 0x46,
+ 0x46, 0x8b, 0xfe, 0x2e,
+ 0x2a, 0xc0, 0xbc, 0x11, 0x93, 0xa6, 0xee, 0x1c, 0x93, 0x69, 0xe1, 0x54,
+ 0x54, 0x21, 0xc4, 0x24,
+ 0x75, 0xac, 0x99, 0x4c, 0x2e, 0xc7, 0x4e, 0x63, 0x2e, 0xee, 0xcb, 0xea,
+ 0xea, 0x67, 0x3b, 0xa5,
+ 0xba, 0x31, 0xb4, 0x8e, 0x99, 0x93, 0x58, 0x7c, 0x99, 0xd8, 0x22, 0xb7,
+ 0xb7, 0x13, 0xe2, 0x84,
+ 0x86, 0xaf, 0xf7, 0x61, 0xba, 0x2a, 0x0b, 0xee, 0xba, 0x1b, 0x95, 0xcf,
+ 0xcf, 0x3a, 0x8d, 0xf1,
+ 0xdb, 0x56, 0xad, 0x26, 0x17, 0x82, 0x27, 0xd0, 0x17, 0x77, 0x84, 0x75,
+ 0x75, 0xd2, 0xfc, 0xb3,
+ 0x76, 0x92, 0x38, 0x5b, 0x36, 0x8b, 0x84, 0xe3, 0x36, 0x91, 0x0c, 0xec,
+ 0xec, 0x9e, 0xf2, 0xe6,
+ 0xb7, 0x62, 0xab, 0xdf, 0xf1, 0xe5, 0xb0, 0xf8, 0xf1, 0x73, 0x44, 0xad,
+ 0xad, 0x26, 0x07, 0xcb,
+ 0x2f, 0x82, 0x9c, 0x28, 0xbb, 0x72, 0x73, 0x5f, 0xbb, 0xe8, 0x6b, 0x5e,
+ 0x5e, 0xe9, 0x5c, 0xe1,
+ 0xe3, 0x21, 0x10, 0xfd, 0x14, 0x6a, 0xaf, 0xc0, 0x14, 0xa1, 0x45, 0x05,
+ 0x05, 0x64, 0x4c, 0x83,
+ 0x51, 0x01, 0x9b, 0x1b, 0xcd, 0x5b, 0x82, 0x7b, 0xcd, 0x53, 0x8b, 0xa2,
+ 0xa2, 0x8a, 0xd3, 0x8d,
+ 0xd2, 0xec, 0x4c, 0x43, 0x5f, 0xa5, 0x14, 0xd6, 0x5f, 0xc9, 0x94, 0x67,
+ 0x67, 0x78, 0xc6, 0xb9,
+ 0xb1, 0x1e, 0x2a, 0xf1, 0xc1, 0x7d, 0xe7, 0x3b, 0xc1, 0x8d, 0x09, 0xa1,
+ 0xa1, 0x17, 0x56, 0x4d,
+ 0xb6, 0xc9, 0x75, 0xd2, 0xf9, 0x60, 0xf6, 0x39, 0xf9, 0xe7, 0xb8, 0xaf,
+ 0xaf, 0x71, 0x40, 0x4b,
+ 0x03, 0x3e, 0xa1, 0x17, 0x18, 0x4c, 0xca, 0x80, 0x18, 0x7f, 0xc7, 0x06,
+ 0x06, 0xf9, 0xc9, 0x43,
+ 0x44, 0x61, 0xc5, 0xf2, 0x65, 0x08, 0xf5, 0x75, 0x65, 0x86, 0x1a, 0x88,
+ 0x88, 0x7b, 0xb1, 0x9f,
+ 0x9a, 0x75, 0x48, 0xed, 0x5a, 0x5e, 0x4f, 0xe6, 0x5a, 0x70, 0x14, 0xf7,
+ 0xf7, 0x61, 0xd5, 0xe9,
+ 0x8d, 0x80, 0x69, 0x1e, 0xe2, 0xc4, 0xb4, 0xa9, 0xe2, 0x4e, 0xbe, 0xd9,
+ 0xd9, 0x3e, 0x39, 0x38,
+ 0xea, 0x9b, 0xf1, 0x98, 0x5c, 0x4d, 0x9c, 0xc6, 0x5c, 0x1f, 0x55, 0x17,
+ 0x17, 0xce, 0x76, 0x89,
+ 0xc4, 0xb2, 0xb3, 0xbd, 0xef, 0xba, 0xa9, 0x58, 0xef, 0x63, 0xc2, 0x4b,
+ 0x4b, 0x70, 0x6d, 0xe8,
+ 0xad, 0xc4, 0x95, 0x7d, 0x21, 0x09, 0xa3, 0x33, 0x21, 0xe6, 0x88, 0x99,
+ 0x99, 0x4c, 0x0e, 0x55,
+ 0xb9, 0x0f, 0x15, 0x99, 0x81, 0xdf, 0x92, 0xfc, 0x81, 0xa7, 0xe5, 0xb1,
+ 0xb1, 0xea, 0x2b, 0xc7,
+ 0xe2, 0x8a, 0xce, 0xf0, 0x1c, 0xef, 0xe9, 0x01, 0x1c, 0x35, 0xb9, 0x07,
+ 0x07, 0x33, 0x0b, 0x03,
+ 0xe6, 0x63, 0x30, 0xc4, 0x3c, 0xbe, 0x32, 0x83, 0x3c, 0x20, 0xcf, 0x0f,
+ 0x0f, 0xac, 0xd4, 0x46,
+ 0x99, 0x4b, 0xe9, 0xfa, 0x42, 0x12, 0x85, 0x66, 0x42, 0x0f, 0xd3, 0xf1,
+ 0xf1, 0x98, 0x1c, 0xaa,
+ 0x29, 0xfe, 0x1d, 0x06, 0x8b, 0xea, 0x24, 0x9c, 0x8b, 0x16, 0x26, 0x52,
+ 0x52, 0xd8, 0x0d, 0x67,
+ 0xa9, 0x2d, 0x6b, 0x49, 0x01, 0x58, 0x78, 0xb1, 0x01, 0xf3, 0xfe, 0x91,
+ 0x91, 0xd3, 0xd1, 0x10,
+ 0x61, 0x67, 0x19, 0xa8, 0x8e, 0x11, 0x7f, 0xac, 0x8e, 0xaf, 0xa6, 0xc2,
+ 0xc2, 0xc1, 0x1e, 0x37,
+ 0xd0, 0x79, 0x33, 0x59, 0x4f, 0x6c, 0x98, 0x97, 0x4f, 0x22, 0xaf, 0x63,
+ 0x63, 0xd6, 0x48, 0x7a,
+ 0x48, 0x99, 0x04, 0xae, 0x05, 0xfb, 0x5b, 0x30, 0x05, 0xb9, 0x80, 0x90,
+ 0x90, 0x19, 0x13, 0x50,
+ 0xf1, 0x96, 0x11, 0x37, 0x84, 0x24, 0xc9, 0xcc, 0x84, 0x1e, 0x65, 0x21,
+ 0x21, 0xf3, 0x38, 0x97,
+ 0x91, 0x5a, 0xd6, 0x92, 0x02, 0xb0, 0xf0, 0xa1, 0x02, 0x25, 0x3f, 0xe1,
+ 0xe1, 0x65, 0x61, 0x20,
+ 0x65, 0x8e, 0xe7, 0x9c, 0xae, 0x40, 0xa4, 0x2e, 0xae, 0xba, 0xd0, 0xca,
+ 0xca, 0x5e, 0xc1, 0x72,
+ 0x24, 0xad, 0x02, 0x57, 0xe3, 0x9c, 0xcc, 0x18, 0xe3, 0xbd, 0x40, 0x48,
+ 0x48, 0xed, 0xe8, 0x28,
+ 0x9c, 0x09, 0xc9, 0xc3, 0x6a, 0xc6, 0x18, 0x25, 0x6a, 0x8e, 0x59, 0xfb,
+ 0xfb, 0x50, 0x84, 0x6f,
+ 0xc8, 0x4a, 0x72, 0xe1, 0x8f, 0x49, 0x07, 0x1d, 0x8f, 0x5c, 0x58, 0x53,
+ 0x53, 0x12, 0xcf, 0x27,
+ 0x14, 0xcb, 0x80, 0xe4, 0xa0, 0xd6, 0x31, 0xcf, 0xa0, 0x41, 0x6d, 0x28,
+ 0x28, 0xa6, 0x25, 0x92,
+ 0x70, 0xee, 0xb9, 0x75, 0x06, 0x13, 0xd3, 0x20, 0x06, 0x6f, 0x41, 0xe0,
+ 0xe0, 0xaf, 0xa3, 0x60,
+ 0x39, 0xdc, 0x63, 0xd6, 0x0b, 0x6d, 0xce, 0xd1, 0x0b, 0x42, 0x3d, 0x72,
+ 0x72, 0xe1, 0xf7, 0xb0,
+ 0x55, 0xe8, 0x65, 0x2f, 0xed, 0x0a, 0x59, 0xf9, 0xed, 0x46, 0xfd, 0xaa,
+ 0xaa, 0x15, 0x0c, 0xc8,
+ 0x13, 0x1c, 0xdf, 0xc7, 0x98, 0xcb, 0x20, 0xcd, 0x98, 0x2b, 0xdc, 0x26,
+ 0x26, 0xc0, 0x33, 0x94,
+ 0xd6, 0x05, 0xb2, 0x77, 0x7f, 0xf4, 0xcf, 0x54, 0x7f, 0xdc, 0xe2, 0x6f,
+ 0x6f, 0xe7, 0x19, 0xfc,
+ 0xfb, 0x12, 0x51, 0x45, 0xd4, 0x4f, 0x30, 0x4a, 0xd4, 0xdf, 0xb2, 0x35,
+ 0x35, 0xa0, 0xcb, 0xde,
+ 0x22, 0xd1, 0x83, 0x79, 0xd3, 0x04, 0x9b, 0xdb, 0xd3, 0x43, 0x0d, 0x44,
+ 0x44, 0xdc, 0xb9, 0xae,
+ 0xda, 0xfd, 0x73, 0x2b, 0x1f, 0x07, 0x61, 0x11, 0x1f, 0xe3, 0x78, 0x77,
+ 0x77, 0x85, 0xbb, 0x33,
+ 0x25, 0x06, 0xdc, 0x5a, 0xeb, 0x19, 0x8a, 0xd9, 0xeb, 0x29, 0xbc, 0x4a,
+ 0x4a, 0xba, 0xaf, 0xa8,
+ 0xe7, 0xc8, 0xee, 0xc9, 0x34, 0x3b, 0x74, 0x42, 0x34, 0xb4, 0x33, 0x0d,
+ 0x0d, 0xfb, 0x93, 0xc6,
+ 0xe4, 0xf6, 0x4f, 0xde, 0x2c, 0x77, 0xbe, 0xc2, 0x2c, 0xcb, 0xf4, 0x0b,
+ 0x0b, 0x02, 0x5a, 0x85,
+ 0xa3, 0xa9, 0x2b, 0x3b, 0x51, 0x33, 0x81, 0x37, 0x51, 0x32, 0x29, 0x85,
+ 0x85, 0x80, 0x22, 0x59,
+ 0x8c, 0x2b, 0xb7, 0x13, 0xea, 0x41, 0xf2, 0x68, 0xea, 0xda, 0x42, 0xdb,
+ 0xdb, 0x69, 0x7e, 0xb8,
+ 0x19, 0x98, 0x9f, 0xb5, 0xc8, 0xa0, 0xd9, 0x4b, 0xc8, 0xea, 0x0b, 0x32,
+ 0x32, 0x93, 0xc0, 0xdd,
+ 0x09, 0xba, 0xe1, 0x65, 0x48, 0x27, 0x33, 0x06, 0x48, 0xbe, 0x10, 0x12,
+ 0x12, 0xaa, 0x3a, 0x0a,
+ 0x2d, 0x17, 0xe3, 0x32, 0xab, 0xbb, 0xff, 0x1e, 0xab, 0x03, 0x50, 0x5a,
+ 0x5a, 0x47, 0xd2, 0x22,
+ 0x8f, 0x15, 0x16, 0x04, 0xf2, 0x0d, 0x38, 0xe8, 0xf2, 0xa5, 0x85, 0xdd,
+ 0xdd, 0x90, 0xb7, 0xfb,
+ 0x94, 0x18, 0xf6, 0xab, 0x2a, 0x64, 0x6d, 0xe2, 0x2a, 0xa4, 0xb5, 0xeb,
+ 0xeb, 0xad, 0xf9, 0xe5,
+ 0x0d, 0x53, 0x1f, 0x51, 0x68, 0x76, 0xe8, 0x84, 0x68, 0xab, 0x66, 0x1a,
+ 0x1a, 0x35, 0xe5, 0x4f,
+ 0x85, 0x91, 0x56, 0x76, 0xa2, 0x66, 0xc1, 0x6e, 0xa2, 0x64, 0x52, 0xc9,
+ 0xc9, 0xc3, 0x44, 0xb2,
+ 0x57, 0x7d, 0x1a, 0x35, 0xfd, 0xc3, 0xd5, 0xb8, 0xfd, 0xad, 0xc6, 0xae,
+ 0xae, 0xbb, 0x82, 0x0b,
+ 0x96, 0x8d, 0x89, 0xb1, 0x3a, 0xad, 0xe1, 0xa3, 0x3a, 0x4f, 0x8e, 0xef,
+ 0xef, 0x03, 0x77, 0x26,
+ 0x69, 0x76, 0x26, 0xc0, 0xce, 0xb3, 0x0a, 0x6b, 0xce, 0x85, 0x4a, 0xd2,
+ 0xd2, 0x3c, 0x63, 0xbd,
+ 0xf8, 0x2c, 0xf0, 0x52, 0xcc, 0x03, 0xfa, 0xca, 0xcc, 0xa0, 0x75, 0x33,
+ 0x33, 0x59, 0x02, 0x9d,
+ 0x5e, 0xc7, 0xfb, 0x50, 0xb5, 0xe4, 0xe6, 0xbe, 0xb5, 0x13, 0xd6, 0xbc,
+ 0xbc, 0x11, 0xb8, 0x01,
+ 0x0e, 0x6d, 0xbe, 0x46, 0x70, 0x3a, 0x22, 0x04, 0x70, 0xd4, 0xa1, 0x1c,
+ 0x1c, 0xcc, 0x2c, 0x0c,
+ 0x71, 0x45, 0x67, 0x78, 0x0e, 0x96, 0x95, 0xe1, 0x0e, 0xfb, 0xbd, 0xe2,
+ 0xe2, 0xf8, 0xe4, 0xe0,
+ 0x7a, 0x6a, 0xf9, 0x07, 0x56, 0x78, 0x2a, 0xa6, 0x56, 0xae, 0x96, 0xf4,
+ 0xf4, 0xfc, 0x50, 0x29,
+ 0x01, 0xab, 0xde, 0x0d, 0x08, 0x85, 0x46, 0xc1, 0x08, 0x94, 0xfc, 0x02,
+ 0x02, 0x57, 0x47, 0x80,
+ 0xe0, 0x1f, 0xb1, 0xea, 0x0c, 0x26, 0x65, 0x40, 0x0c, 0xde, 0x82, 0x03,
+ 0x03, 0x9d, 0x85, 0xc0,
+ 0x7e, 0x83, 0x07, 0x33, 0x76, 0x29, 0xf1, 0x24, 0x76, 0xbb, 0xe0, 0xfc,
+ 0xfc, 0x63, 0x8f, 0x6c,
+ 0x93, 0xcf, 0xa9, 0x88, 0x12, 0x79, 0x7c, 0xe0, 0x12, 0xce, 0x04, 0xe5,
+ 0xe5, 0xcb, 0xef, 0xe3,
+ 0xce, 0x36, 0xf3, 0xcf, 0xbf, 0xd1, 0x50, 0xde, 0xbf, 0xa2, 0x15, 0x5f,
+ 0x5f, 0x23, 0x9e, 0xa1,
+ 0x9f, 0x37, 0x68, 0xd4, 0x72, 0x8a, 0xd2, 0xa5, 0x72, 0xf1, 0x9e, 0xfd,
+ 0xfd, 0xa9, 0x4d, 0x2c,
+ 0x3a, 0xe2, 0xc2, 0xc1, 0x13, 0x21, 0x04, 0x51, 0x13, 0x3d, 0xfa, 0x74,
+ 0x74, 0x18, 0x3e, 0xf3,
+ 0xd1, 0xd2, 0xed, 0x54, 0x47, 0xe9, 0xde, 0x56, 0x47, 0xb6, 0x53, 0x61,
+ 0x61, 0x81, 0x0f, 0xfa,
+ 0xf2, 0xa8, 0xb0, 0x20, 0x9c, 0x68, 0x03, 0x4c, 0x9c, 0x61, 0xa2, 0x27,
+ 0x27, 0x0a, 0xf1, 0xd4,
+ 0xcf, 0x9d, 0x2d, 0xc2, 0xb7, 0x54, 0x16, 0x1f, 0xb7, 0x36, 0xe9, 0x5d,
+ 0x5d, 0x74, 0xd9, 0x21,
+ 0x43, 0xb6, 0x9a, 0xd1, 0x5d, 0x15, 0xe4, 0x77, 0x5d, 0xec, 0xab, 0x86,
+ 0x86, 0x1d, 0xa7, 0x99,
+ 0xc9, 0xe1, 0xac, 0xec, 0x87, 0xcc, 0x41, 0xdc, 0x87, 0xc8, 0xa4, 0x51,
+ 0x51, 0x45, 0x88, 0xa7,
+ 0x4a, 0x0c, 0x7b, 0xb4, 0x15, 0x32, 0xd7, 0x71, 0x15, 0x52, 0xbb, 0x94,
+ 0x94, 0xb7, 0x9d, 0x93,
+ 0xbd, 0xe6, 0xeb, 0xad, 0xa1, 0x8e, 0x49, 0x7e, 0xa1, 0xb2, 0x93, 0xb9,
+ 0xb9, 0x75, 0xf4, 0x82,
+ 0x62, 0x59, 0xb8, 0xbf, 0x96, 0x5d, 0xb5, 0x2c, 0x96, 0xd0, 0x61, 0xc4,
+ 0xc4, 0x38, 0xd7, 0x74,
+ 0xac, 0x6f, 0x4b, 0x70, 0x29, 0x8c, 0xe5, 0xf2, 0x29, 0x72, 0x74, 0x9b,
+ 0x9b, 0x1b, 0x49, 0xd5,
+ 0x02, 0x95, 0x7f, 0x1a, 0x10, 0xc9, 0x8c, 0x41, 0x10, 0xeb, 0x3b, 0x04,
+ 0x04, 0xae, 0x8e, 0xc3,
+ 0x37, 0xb1, 0xdd, 0x90, 0x7b, 0x57, 0xec, 0xd5, 0x7b, 0x96, 0x9c, 0x6e,
+ 0x6e, 0x2d, 0xdb, 0xbc,
+ 0x82, 0x46, 0x09, 0x55, 0x9a, 0x7b, 0xd0, 0x6c, 0x9a, 0x0e, 0xe3, 0xc7,
+ 0xc7, 0xa5, 0x52, 0xb4,
+ 0xc1, 0xf0, 0x93, 0x84, 0xc7, 0x6e, 0x34, 0x1b, 0xc7, 0xe2, 0x48, 0x41,
+ 0x41, 0xb8, 0xf5, 0x2d,
+ 0x26, 0x38, 0x7d, 0x4d, 0xf3, 0x55, 0x40, 0x59, 0xf3, 0x56, 0x7b, 0x4c,
+ 0x4c, 0x43, 0x66, 0xeb,
+ 0xbb, 0x9a, 0x6a, 0x83, 0x91, 0x16, 0x1e, 0xbd, 0x91, 0x4c, 0xde, 0xb5,
+ 0xb5, 0x44, 0xa5, 0x04,
+ 0x0f, 0xc6, 0x60, 0x4b, 0x78, 0xbf, 0x64, 0xc5, 0x78, 0x40, 0x5d, 0x1e,
+ 0x1e, 0x9b, 0x6b, 0x8c,
+ 0xd4, 0x90, 0xcd, 0x6d, 0x6f, 0x3d, 0x43, 0x15, 0x6f, 0x37, 0xd9, 0x6b,
+ 0x6b, 0x49, 0x97, 0x3f,
+ 0x5b, 0x85, 0xdb, 0x69, 0x9d, 0x30, 0x7b, 0xfd, 0x9d, 0x92, 0x5c, 0xb6,
+ 0xb6, 0xd9, 0x20, 0xc4,
+ 0x63, 0xf2, 0x66, 0xb2, 0x9e, 0xd8, 0xf3, 0xed, 0x9e, 0x44, 0x9d, 0xc6,
+ 0xc6, 0x6f, 0x90, 0xf4,
+ 0x87, 0x04, 0x29, 0x6c, 0xb2, 0xaf, 0x4d, 0x2f, 0xb2, 0x8f, 0x69, 0xcd,
+ 0xcd, 0x6d, 0xca, 0x71,
+ 0xbf, 0x73, 0x94, 0xb7, 0xb1, 0x47, 0xc5, 0x3f, 0xb1, 0x59, 0xa8, 0xbd,
+ 0xbd, 0xdb, 0x7a, 0x41,
+ 0x97, 0x26, 0x57, 0xbc, 0x32, 0x28, 0xa7, 0x62, 0x32, 0xdb, 0x72, 0xed,
+ 0xed, 0x54, 0x30, 0xa6,
+ 0x46, 0xf4, 0xba, 0xe8, 0x75, 0xc1, 0x79, 0x34, 0x75, 0x6d, 0x21, 0x8c,
+ 0x8c, 0xd5, 0x3f, 0x5c,
+ 0xaa, 0x13, 0xca, 0x5e, 0x19, 0x14, 0xb2, 0x31, 0x19, 0x8c, 0x39, 0x97,
+ 0x97, 0x2a, 0x18, 0x53,
+ 0x4f, 0x4e, 0x5b, 0x8d, 0x3d, 0xe6, 0x4a, 0x32, 0x3d, 0xd3, 0x31, 0x9e,
+ 0x9e, 0x7f, 0x05, 0x56,
+ 0xc6, 0x27, 0xcc, 0xa7, 0xff, 0x73, 0x25, 0x19, 0xff, 0x88, 0xf9, 0x4f,
+ 0x4f, 0xde, 0xe3, 0x2b,
+ 0x4e, 0xe5, 0x85, 0x80, 0x35, 0x63, 0x0c, 0xf3, 0x35, 0x47, 0xcd, 0x9c,
+ 0x9c, 0x28, 0x42, 0xd6,
+ 0x80, 0xd3, 0x76, 0x4f, 0x8a, 0xb2, 0x5c, 0x2d, 0x8a, 0xe5, 0xd8, 0xc3,
+ 0xc3, 0x0b, 0xdc, 0x77,
+ 0x7f, 0x28, 0xd9, 0x3e, 0x7e, 0xac, 0xb7, 0xe5, 0x7e, 0x2f, 0x1c, 0xfe,
+ 0xfe, 0x34, 0xc8, 0xec,
+ 0x45, 0xca, 0x1b, 0xff, 0x6d, 0x8d, 0xb3, 0xb4, 0x6d, 0x12, 0xe6, 0x8a,
+ 0x8a, 0x2c, 0xf6, 0x1f,
+ 0xeb, 0x30, 0x2f, 0x95, 0x54, 0xc8, 0xda, 0x07, 0x54, 0x8b, 0xa9, 0x15,
+ 0x15, 0x99, 0x31, 0x09,
+ 0x68, 0xdd, 0xf8, 0xcd, 0xc6, 0x36, 0x4c, 0xaa, 0xc6, 0x11, 0xb6, 0xd0,
+ 0xd0, 0x6b, 0x24, 0x3d,
+ 0x10, 0x22, 0x7e, 0xd0, 0x80, 0x87, 0xea, 0x4d, 0x80, 0x54, 0x1b, 0x20,
+ 0x20, 0x39, 0xfa, 0xd7,
+ 0x20, 0x44, 0xfc, 0x63, 0xc3, 0xcd, 0x17, 0x9a, 0xc3, 0xa8, 0x36, 0x40,
+ 0x40, 0x72, 0x37, 0x6d,
+ 0x5f, 0x6c, 0x25, 0x5d, 0xbd, 0x61, 0xa0, 0x7f, 0xbd, 0x87, 0x2a, 0xbe,
+ 0xbe, 0x46, 0xff, 0x81,
+ 0x49, 0x32, 0xda, 0xa3, 0x0d, 0x7e, 0x1d, 0xf1, 0x0d, 0x2d, 0x7c, 0x92,
+ 0x92, 0x4e, 0x54, 0xd0,
+ 0xd3, 0x47, 0x92, 0x4e, 0x57, 0x20, 0x52, 0x17, 0x57, 0x5d, 0x68, 0x65,
+ 0x65, 0x2f, 0x81, 0x39,
+ 0xc2, 0xce, 0x32, 0x93, 0xdf, 0x22, 0xfe, 0x9b, 0xdf, 0x9d, 0x8f, 0x47,
+ 0x47, 0x41, 0x3c, 0x6e,
+ 0x56, 0xd6, 0xc4, 0x38, 0xf5, 0x46, 0x93, 0x79, 0xf5, 0x39, 0x3a, 0xac,
+ 0xac, 0xec, 0xc5, 0x8b,
+ 0xe5, 0x5d, 0x91, 0xd3, 0x24, 0xf2, 0xf8, 0x03, 0x24, 0x5f, 0x08, 0x09,
+ 0x09, 0x55, 0x1d, 0x05,
+ 0xbc, 0x4d, 0x35, 0xa0, 0xa9, 0x0b, 0x0f, 0xbf, 0xa9, 0x26, 0x6f, 0xbb,
+ 0xbb, 0x22, 0xb3, 0x02,
+ 0x77, 0x39, 0xe6, 0x56, 0x3e, 0x0e, 0xc2, 0x22, 0x3e, 0x05, 0xf0, 0xee,
+ 0xee, 0xc9, 0xb5, 0x66,
+ 0x15, 0x60, 0x5e, 0xe9, 0xa8, 0x53, 0x77, 0x0e, 0xa8, 0xd5, 0x91, 0x2a,
+ 0x2a, 0xf1, 0x62, 0x12,
+ 0x30, 0x66, 0x82, 0xb3, 0x43, 0x4a, 0xfd, 0xd7, 0x43, 0xfc, 0x2d, 0x60,
+ 0x60, 0x4b, 0xcd, 0xba,
+ 0xb0, 0xb5, 0xf4, 0xfc, 0xc9, 0xf8, 0xa1, 0xfa, 0xc9, 0x19, 0xf5, 0xa3,
+ 0xa3, 0x40, 0x11, 0xcd,
+ 0xc3, 0x65, 0xec, 0x9e, 0xd7, 0xa7, 0xb8, 0x5a, 0xd7, 0x09, 0x73, 0x45,
+ 0x45, 0x16, 0x7b, 0xee,
+ 0xa6, 0xeb, 0x0b, 0x02, 0x79, 0xe7, 0x1c, 0x74, 0x79, 0xb3, 0xa3, 0x8f,
+ 0x8f, 0x48, 0xba, 0x9c,
+ 0x6a, 0x48, 0x87, 0xd7, 0xd6, 0xff, 0xc0, 0xeb, 0xd6, 0xfa, 0x8d, 0xd4,
+ 0xd4, 0xc5, 0xaa, 0xfe,
+ 0x6e, 0xa1, 0x79, 0xe3, 0xf6, 0xae, 0x1b, 0x69, 0xf6, 0xef, 0xfb, 0xdc,
+ 0xdc, 0x5a, 0x75, 0xbb,
+ 0xee, 0x72, 0x0f, 0xac, 0x7c, 0x1c, 0x47, 0x44, 0x7c, 0x0a, 0x23, 0x1f,
+ 0x1f, 0x51, 0xa9, 0xcc,
+ 0x95, 0xb3, 0x28, 0xa6, 0x22, 0xe1, 0x2b, 0x23, 0x22, 0x30, 0x49, 0xe9,
+ 0xe9, 0xfa, 0xbe, 0x65,
+ 0xbe, 0xd8, 0x4a, 0xba, 0xb9, 0xc2, 0x83, 0xfe, 0xb9, 0xcd, 0x54, 0xbf,
+ 0xbf, 0x8c, 0x3d, 0xc1,
+ 0x38, 0x77, 0xbd, 0xdb, 0x03, 0xe8, 0x88, 0x10, 0x03, 0xd6, 0xc1, 0x70,
+ 0x70, 0xb6, 0xb0, 0x30,
+ 0x1c, 0xda, 0xbf, 0x8c, 0xe0, 0x74, 0x44, 0x08, 0xe0, 0x6b, 0x81, 0x38,
+ 0x38, 0x5b, 0x58, 0x18,
+ 0xd8, 0x68, 0x0c, 0x31, 0x0f, 0xce, 0xed, 0x50, 0x0f, 0x08, 0x43, 0x73,
+ 0x73, 0x2b, 0x35, 0xf0,
+ 0xfc, 0xc5, 0x0e, 0x66, 0xec, 0x52, 0x21, 0x48, 0xec, 0xb5, 0x03, 0x3b,
+ 0x3b, 0xc6, 0xdd, 0xd8,
+ 0x6b, 0xe3, 0x59, 0xda, 0xde, 0x7a, 0x86, 0x2a, 0xde, 0x6e, 0x71, 0xd6,
+ 0xd6, 0x92, 0xed, 0x7e,
+ 0x9e, 0x9c, 0xb6, 0xd9, 0x7a, 0x0f, 0x94, 0x64, 0x7a, 0x65, 0x62, 0xff,
+ 0xff, 0xfe, 0x0a, 0xac,
+ 0xf3, 0x03, 0x6e, 0x2d, 0x94, 0xed, 0x45, 0x8d, 0x94, 0xf5, 0x5e, 0x25,
+ 0x25, 0x5d, 0xb6, 0x54,
+ 0x16, 0x5e, 0xff, 0xfe, 0xb0, 0x1f, 0xbd, 0x8e, 0xb0, 0xaa, 0x56, 0x2c,
+ 0x2c, 0x08, 0xab, 0x51,
+ 0xf6, 0x41, 0x4e, 0x14, 0xbc, 0x39, 0xd8, 0xce, 0xbc, 0x74, 0xd4, 0x2f,
+ 0x2f, 0x95, 0x2e, 0x91,
+ 0xfa, 0xb9, 0x8f, 0x48, 0xdc, 0xca, 0x76, 0x8b, 0xdc, 0x4b, 0x4e, 0x37,
+ 0x37, 0xf7, 0x8c, 0x5e,
+ 0x1d, 0x71, 0x61, 0x81, 0xe8, 0xf1, 0x02, 0xc9, 0xe8, 0xff, 0x7d, 0x3a,
+ 0x3a, 0x0c, 0x1f, 0x98,
+ 0x05, 0x42, 0x20, 0x39, 0x28, 0xd4, 0x9d, 0x43, 0x28, 0x81, 0x8a, 0x0a,
+ 0x0a, 0xc8, 0x98, 0xc5,
+ 0x0a, 0x84, 0x40, 0x72, 0x50, 0x6b, 0xf9, 0x86, 0x50, 0xc1, 0xd7, 0x14,
+ 0x14, 0x53, 0xf3, 0x49,
+ 0x79, 0x54, 0x58, 0x10, 0x4e, 0x34, 0xe0, 0x26, 0x4e, 0xd1, 0x51, 0xf2,
+ 0xf2, 0x05, 0x99, 0x6a,
+ 0x3e, 0x0b, 0x3c, 0xf5, 0x33, 0x70, 0xdf, 0xd3, 0x33, 0x28, 0x8c, 0x7c,
+ 0x7c, 0x87, 0xe1, 0xb6,
+ 0x90, 0xf1, 0x08, 0x9f, 0x0a, 0x35, 0xb6, 0x60, 0x0a, 0xb1, 0xc3, 0xe3,
+ 0xe3, 0x32, 0x26, 0xa0,
+ 0x98, 0xe0, 0x37, 0xf7, 0x4a, 0x97, 0xc3, 0xa7, 0x4a, 0x9b, 0x2f, 0xf3,
+ 0xf3, 0xcf, 0x5b, 0x2a,
+ 0xcd, 0x08, 0x52, 0xd8, 0xa7, 0x9d, 0x9a, 0x5e, 0xa7, 0xdd, 0xd2, 0x59,
+ 0x59, 0xda, 0x57, 0xe2,
+ 0xcb, 0x74, 0xd3, 0xf6, 0x97, 0x05, 0xcd, 0x9d, 0x97, 0x23, 0x9f, 0x55,
+ 0x55, 0xeb, 0x06, 0x64,
+ 0x0c, 0xf8, 0xc1, 0x5c, 0x60, 0xf3, 0xae, 0x45, 0x60, 0x3f, 0x9a, 0x18,
+ 0x18, 0x62, 0xa2, 0xcf,
+ 0x36, 0x1a, 0x03, 0x9d, 0x73, 0xd2, 0xaa, 0x14, 0x73, 0x02, 0x60, 0x6c,
+ 0x6c, 0x7a, 0x9c, 0x3c,
+ 0x73, 0xd0, 0x18, 0x62, 0x1e, 0x5f, 0x19, 0xa0, 0x1e, 0x10, 0x86, 0xe6,
+ 0xe6, 0x56, 0x6a, 0x23,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x9d, 0xa2, 0x17, 0xce, 0x62, 0x43, 0x5e, 0xe4, 0x62, 0x1a, 0xa5, 0xf9,
+ 0xf9, 0x07, 0xc3, 0xef,
+ 0xe9, 0xa5, 0x50, 0x8f, 0x44, 0x01, 0x56, 0x46, 0x44, 0x60, 0x92, 0x11,
+ 0x11, 0x37, 0xbf, 0xca,
+ 0x92, 0x64, 0x77, 0x85, 0x1a, 0xfc, 0x3a, 0x21, 0x1a, 0x5a, 0xf8, 0xe7,
+ 0xe7, 0x9c, 0xa8, 0x63,
+ 0x17, 0xf5, 0x21, 0xf3, 0xb8, 0x9a, 0xfb, 0x4f, 0xb8, 0x3e, 0xaa, 0x2e,
+ 0x2e, 0x5f, 0xec, 0xd1,
+ 0x07, 0xd7, 0x5f, 0x23, 0x38, 0x1d, 0x11, 0x02, 0x38, 0x6a, 0xb1, 0x0e,
+ 0x0e, 0x66, 0x16, 0x06,
+ 0x81, 0x78, 0xa8, 0x42, 0x82, 0x37, 0x1a, 0xec, 0x82, 0x71, 0x24, 0xc1,
+ 0xc1, 0x5c, 0x9b, 0xf7,
+ 0xed, 0x4c, 0xae, 0xbb, 0x64, 0x50, 0x8d, 0xc4, 0x64, 0x75, 0xe4, 0x19,
+ 0x19, 0xa8, 0x60, 0x8f,
+ 0xca, 0xdf, 0x0d, 0xfb, 0x9f, 0x80, 0x8b, 0x5c, 0x9f, 0xb7, 0x63, 0x57,
+ 0x57, 0xbc, 0x41, 0xe4,
+ 0x74, 0x07, 0x47, 0x41, 0x26, 0x42, 0x08, 0xa2, 0x26, 0x7a, 0x37, 0xe8,
+ 0xe8, 0x30, 0x7c, 0x25,
+ 0xa1, 0x3c, 0x54, 0x21, 0x41, 0xfa, 0x0d, 0x76, 0x41, 0xd9, 0x12, 0x81,
+ 0x81, 0x2e, 0xac, 0x9a,
+ 0x5d, 0xf9, 0x5a, 0x47, 0xad, 0xa8, 0x2c, 0x3e, 0xad, 0x6c, 0x11, 0xba,
+ 0xba, 0xe8, 0x71, 0x42,
+ 0x40, 0x88, 0x3b, 0xc6, 0x45, 0x59, 0x2e, 0xf7, 0x45, 0x93, 0x6c, 0x80,
+ 0x80, 0xe4, 0x6e, 0xda,
+ 0x78, 0xff, 0x86, 0x1d, 0x46, 0xb1, 0xa6, 0xe7, 0x46, 0x45, 0xad, 0xf0,
+ 0xf0, 0x52, 0xde, 0xea,
+ 0x83, 0xed, 0xd7, 0x58, 0x92, 0xfe, 0x96, 0xad, 0x92, 0x9a, 0x1f, 0xc5,
+ 0xc5, 0xf2, 0x15, 0x34,
+ 0xdd, 0x2a, 0x2c, 0x08, 0x27, 0x1a, 0x70, 0x13, 0x27, 0x89, 0xc9, 0x79,
+ 0x79, 0xe3, 0xad, 0x35,
+ 0x7b, 0xc1, 0x27, 0x0a, 0x5e, 0xfd, 0x6c, 0x67, 0x5e, 0x3a, 0x6a, 0xf6,
+ 0xf6, 0xab, 0x17, 0xa9,
+ 0x42, 0x1d, 0x44, 0xdc, 0x55, 0x90, 0xa2, 0xb6, 0x55, 0x78, 0x57, 0x84,
+ 0x84, 0x4a, 0xe0, 0x19,
+ 0xdc, 0x81, 0xf2, 0x05, 0x2f, 0x9f, 0x36, 0xd2, 0x2f, 0x1d, 0x35, 0x7b,
+ 0x7b, 0xb4, 0xea, 0xb5,
+ 0xf0, 0x3d, 0xcf, 0x3a, 0x8c, 0xa1, 0x8f, 0x0d, 0x8c, 0x8a, 0x99, 0x23,
+ 0x23, 0xa4, 0x7f, 0x17,
+ 0x2c, 0xbc, 0x3d, 0x3f, 0xa3, 0x3e, 0xb9, 0xdf, 0xa3, 0x97, 0xac, 0x58,
+ 0x58, 0x10, 0x95, 0xa2,
+ 0x5c, 0x52, 0x84, 0x4a, 0xa5, 0x2d, 0x6a, 0xff, 0xa5, 0xf8, 0xed, 0xb8,
+ 0xb8, 0xbf, 0x36, 0xc2,
+ 0x47, 0x5f, 0x64, 0xe5, 0x7d, 0x44, 0x3f, 0xf5, 0x7d, 0xf9, 0xdd, 0x8e,
+ 0x8e, 0x82, 0x78, 0xdc,
+ 0xa4, 0x7e, 0x74, 0x18, 0x69, 0x2e, 0x90, 0x35, 0x69, 0x58, 0x98, 0x8b,
+ 0x8b, 0xe6, 0x34, 0x5f,
+ 0x52, 0x3f, 0x3a, 0x0c, 0xd5, 0x17, 0x48, 0xfb, 0xd5, 0x2c, 0x4c, 0xa4,
+ 0xa4, 0x73, 0x1a, 0xce,
+ 0x5a, 0x2e, 0x05, 0x64, 0x95, 0xb5, 0x3d, 0x3c, 0x95, 0x06, 0xa0, 0xb4,
+ 0xb4, 0x8e, 0x67, 0x44,
+ 0x3f, 0xa0, 0xe2, 0xf8, 0x3b, 0xf5, 0x99, 0x12, 0x3b, 0xbc, 0x70, 0x7e,
+ 0x7e, 0xd0, 0xa6, 0x36,
+ 0xd9, 0xc3, 0xd2, 0x3c, 0x07, 0x4b, 0xab, 0x91, 0x07, 0x9c, 0xbf, 0x71,
+ 0x71, 0x7c, 0x72, 0x70,
+ 0x0b, 0x2f, 0x9e, 0x7f, 0x58, 0xee, 0xbf, 0x47, 0x58, 0x55, 0x2b, 0x16,
+ 0x16, 0x04, 0xb4, 0xc9,
+ 0x2e, 0x29, 0x42, 0x25, 0xb3, 0xf7, 0x35, 0x9e, 0xb3, 0x7c, 0x97, 0x5c,
+ 0x5c, 0xbe, 0x1b, 0x61,
+ 0x08, 0x11, 0x3f, 0x68, 0x40, 0xa2, 0x75, 0xc7, 0x40, 0x2a, 0xec, 0x10,
+ 0x10, 0xfd, 0x7d, 0x8a,
+ 0x60, 0xcc, 0xc7, 0xa5, 0x86, 0x94, 0x39, 0x6d, 0x86, 0x3b, 0x5a, 0xc0,
+ 0xc0, 0x96, 0x59, 0xb7,
+ 0xf4, 0xd4, 0x31, 0x0e, 0xac, 0xf0, 0x54, 0x8f, 0xac, 0x9f, 0xef, 0x2b,
+ 0x2b, 0x3b, 0xa0, 0x52,
+ 0x4b, 0xa7, 0xa5, 0xb9, 0x1d, 0xb7, 0x91, 0xb0, 0x1d, 0xc6, 0x47, 0x96,
+ 0x96, 0xe0, 0xda, 0x13,
+ 0xc7, 0x8c, 0x12, 0xaa, 0xf7, 0xf6, 0x63, 0xd8, 0xf7, 0x1c, 0x05, 0x4d,
+ 0x4d, 0x89, 0xa4, 0xab,
+ 0x06, 0x7c, 0x81, 0x2e, 0x30, 0x98, 0x57, 0xc3, 0x30, 0xfe, 0x4d, 0x0c,
+ 0x0c, 0x31, 0x51, 0x86,
+ 0xdf, 0xbf, 0x53, 0x12, 0x37, 0xd3, 0xfc, 0x52, 0x37, 0x62, 0xf2, 0x7d,
+ 0x7d, 0x4d, 0x23, 0xf6,
+ 0x35, 0x24, 0xa2, 0x8a, 0x6b, 0x9e, 0x60, 0x94, 0x6b, 0x7d, 0xa7, 0x6a,
+ 0x6a, 0x83, 0x55, 0x7f,
+ 0xfd, 0x6e, 0xd0, 0x6b, 0xe4, 0xd7, 0x67, 0x89, 0xe4, 0x21, 0xff, 0x39,
+ 0x39, 0x91, 0x9a, 0x58,
+ 0x11, 0x89, 0xa0, 0xdd, 0x88, 0x02, 0xac, 0x8c, 0x88, 0xc0, 0xe7, 0x22,
+ 0x22, 0x6e, 0xbd, 0x57,
+ 0xb2, 0x20, 0x8b, 0xe6, 0xd9, 0x31, 0x2d, 0xbb, 0xd9, 0xf2, 0xce, 0xa7,
+ 0xa7, 0xee, 0x9f, 0x0e,
+ 0xc5, 0x19, 0x6d, 0xb0, 0xe7, 0x3f, 0xef, 0x99, 0xe7, 0xf7, 0x3e, 0x49,
+ 0x49, 0x27, 0x2a, 0x68,
+ 0xb8, 0xa4, 0xcb, 0x94, 0x89, 0x5a, 0xd4, 0x3d, 0x89, 0x33, 0x19, 0xb3,
+ 0xb3, 0xbd, 0x6c, 0x47,
+ 0xb5, 0xf7, 0xd4, 0xc5, 0xe1, 0x2c, 0x3c, 0xb9, 0xe1, 0x98, 0x7f, 0xa9,
+ 0xa9, 0x88, 0x89, 0x08,
+ 0x3b, 0x49, 0x1c, 0xcc, 0x1b, 0xa4, 0x42, 0x90, 0x1b, 0xa9, 0x06, 0x76,
+ 0x76, 0x4f, 0x79, 0x73,
+ 0x28, 0x55, 0xc3, 0x0b, 0x83, 0x6f, 0x62, 0x5d, 0x83, 0x82, 0xda, 0x50,
+ 0x50, 0x8f, 0x4a, 0xe7,
+ 0xa0, 0x97, 0x8a, 0x2c, 0x49, 0x7f, 0x4b, 0xb7, 0x49, 0x4d, 0xee, 0x83,
+ 0x83, 0x79, 0xeb, 0x1a,
+ 0xe8, 0x0e, 0x8e, 0x82, 0x4c, 0x84, 0x10, 0x87, 0x4c, 0xf4, 0x6e, 0x13,
+ 0x13, 0x60, 0xf8, 0x4a,
+ 0xde, 0x14, 0x8d, 0x1f, 0x3f, 0x56, 0xba, 0x93, 0x3f, 0xf6, 0x0e, 0x7f,
+ 0x7f, 0x1a, 0x64, 0x76,
+ 0x1f, 0xe4, 0x1e, 0x9b, 0xf8, 0x38, 0x8e, 0x88, 0xf8, 0x14, 0x46, 0x3e,
+ 0x3e, 0xa2, 0x91, 0x5b,
+ 0x6f, 0x0a, 0xa7, 0xee, 0xfe, 0x2b, 0x5d, 0xa8, 0xfe, 0x7b, 0x07, 0xde,
+ 0xde, 0x0d, 0x32, 0x3b,
+ 0x59, 0x10, 0xa4, 0x73, 0x8d, 0xf9, 0xf7, 0xbc, 0x8d, 0x79, 0x67, 0xb2,
+ 0xb2, 0x77, 0xae, 0x07,
+ 0x32, 0xf3, 0xfd, 0xa9, 0x53, 0x83, 0x71, 0x96, 0x53, 0x17, 0x16, 0x64,
+ 0x64, 0xe5, 0x43, 0x79,
+ 0x84, 0x3a, 0x88, 0x7b, 0xaa, 0xe3, 0x87, 0xaf, 0xaa, 0xf0, 0xae, 0xcb,
+ 0xcb, 0x94, 0x03, 0x32,
+ 0x12, 0xb7, 0x01, 0xca, 0x90, 0x4e, 0x66, 0x0c, 0x90, 0xbf, 0x20, 0x24,
+ 0x24, 0x97, 0x74, 0x14,
+ 0x88, 0xc2, 0x49, 0x27, 0xca, 0x10, 0x29, 0xea, 0xca, 0xcf, 0x34, 0xd3,
+ 0xd3, 0xf6, 0xa1, 0xfd,
+ 0x1b, 0x0d, 0xe0, 0xaf, 0xd8, 0x69, 0x55, 0x0a, 0xd8, 0x01, 0x30, 0x36,
+ 0x36, 0x3d, 0x4e, 0x1e,
+ 0x58, 0xbb, 0x7a, 0x7e, 0x85, 0x7c, 0xb1, 0x7d, 0x85, 0xed, 0x9b, 0xb0,
+ 0xb0, 0x20, 0xe9, 0x87,
+ 0xa5, 0xd5, 0xaa, 0x15, 0x61, 0xab, 0xd6, 0xf4, 0x61, 0xcc, 0x64, 0x89,
+ 0x89, 0xb1, 0x73, 0xdf,
+ 0x04, 0xe9, 0xfe, 0x34, 0x20, 0x51, 0xdb, 0x82, 0x20, 0x15, 0x76, 0x08,
+ 0x08, 0x9f, 0xdf, 0x45,
+ 0xa7, 0x40, 0xd5, 0x0f, 0x71, 0x62, 0x5a, 0xb5, 0x71, 0x27, 0x5f, 0x8d,
+ 0x8d, 0x1f, 0xfd, 0x1c,
+ 0xd5, 0x3b, 0x13, 0x60, 0x67, 0xb8, 0x05, 0xd4, 0x67, 0xa3, 0x25, 0x69,
+ 0x69, 0x1e, 0xd0, 0xbf,
+ 0xf5, 0x7f, 0xef, 0x03, 0xa4, 0x75, 0x12, 0x4e, 0xa4, 0x0b, 0x13, 0x29,
+ 0x29, 0x6c, 0xe7, 0xd2,
+ 0x4d, 0xdb, 0x24, 0x97, 0x2d, 0x2f, 0xc6, 0x73, 0x2d, 0x38, 0x0a, 0x9a,
+ 0x9a, 0xd1, 0x8b, 0x95,
+ 0x3d, 0x35, 0x9d, 0xe2, 0x2b, 0x3c, 0x15, 0x53, 0x2b, 0x57, 0x4b, 0x7a,
+ 0x7a, 0x7e, 0x28, 0xf5,
+ 0xa8, 0x86, 0xb5, 0x44, 0x09, 0xdd, 0x3e, 0x70, 0x09, 0x67, 0x02, 0x93,
+ 0x93, 0x84, 0x96, 0x90,
+ 0x33, 0x58, 0x23, 0xa4, 0x5b, 0x06, 0x37, 0x57, 0x5b, 0x83, 0xea, 0x66,
+ 0x66, 0xb2, 0x04, 0xf9,
+ 0x21, 0xef, 0x22, 0x6e, 0xcb, 0x48, 0x51, 0x5b, 0xcb, 0x3c, 0xca, 0x42,
+ 0x42, 0x25, 0x70, 0xed,
+ 0x2b, 0x6b, 0x62, 0x1c, 0x9b, 0x23, 0xa8, 0xdd, 0x9b, 0xfd, 0x1d, 0x56,
+ 0x56, 0x76, 0x83, 0xa4,
+ 0x4c, 0x70, 0xfa, 0x9a, 0x25, 0xaa, 0x80, 0xb2, 0x25, 0xac, 0xf6, 0x98,
+ 0x98, 0x86, 0xcc, 0x15,
+ 0x1a, 0xa6, 0x3e, 0xa2, 0xd0, 0xec, 0x13, 0xcb, 0xd0, 0x95, 0xcc, 0x34,
+ 0x34, 0x6a, 0x09, 0x9e,
+ 0x67, 0x1b, 0x98, 0x86, 0xbe, 0x89, 0x28, 0x6f, 0xbe, 0x51, 0xeb, 0xce,
+ 0xce, 0xf0, 0x4f, 0xb1,
+ 0x54, 0x43, 0xbb, 0x22, 0xe5, 0x8f, 0x1f, 0x38, 0xe5, 0xd2, 0x01, 0xa8,
+ 0xa8, 0x42, 0x4b, 0x48,
+ 0xec, 0xe7, 0x70, 0xb6, 0x6c, 0xd5, 0xcb, 0x05, 0x6c, 0xe1, 0x18, 0x1b,
+ 0x1b, 0xff, 0x27, 0x0f,
+ 0x9b, 0xde, 0x96, 0xe0, 0x52, 0xdb, 0x09, 0x27, 0x52, 0xe4, 0xe8, 0xf5,
+ 0xf5, 0x36, 0x92, 0x69,
+ 0xa2, 0x02, 0xf5, 0x36, 0x59, 0xb6, 0xc7, 0xf6, 0x59, 0xa6, 0xd5, 0x87,
+ 0x87, 0xd7, 0x65, 0xd9,
+ 0x64, 0x25, 0x39, 0x91, 0xa6, 0xc5, 0xe2, 0xef, 0xa6, 0x2e, 0x2c, 0xc8,
+ 0xc8, 0x09, 0x86, 0xf2,
+ 0xef, 0xd9, 0xd1, 0xa1, 0x74, 0x99, 0x01, 0x85, 0x74, 0x9e, 0xdf, 0x1d,
+ 0x1d, 0x06, 0xee, 0x4c,
+ 0x8b, 0xfc, 0xe8, 0x30, 0xd2, 0x5c, 0xe3, 0x6a, 0xd2, 0xb0, 0xf3, 0xd5,
+ 0xd5, 0x0f, 0x68, 0xbe,
+ 0x6c, 0x34, 0x06, 0xf9, 0xe6, 0x67, 0x97, 0x28, 0xe6, 0x04, 0xc0, 0xd8,
+ 0xd8, 0xf4, 0xfb, 0x78,
+ 0xff, 0xfb, 0xaf, 0x71, 0xf4, 0x1e, 0xeb, 0xc8, 0xf4, 0xca, 0xc4, 0x3d,
+ 0x3d, 0x3f, 0x14, 0x9b,
+ 0xf7, 0xea, 0x90, 0x19, 0xb4, 0xbc, 0x9e, 0x0f, 0xb4, 0xe0, 0x28, 0x2d,
+ 0x2d, 0xc2, 0x69, 0x11,
+ 0x18, 0x33, 0x41, 0xb8, 0xc0, 0x25, 0x9f, 0x8a, 0xc0, 0x7e, 0xf7, 0x30,
+ 0x30, 0xc4, 0x87, 0x5d,
+ 0xb3, 0x8b, 0x55, 0xeb, 0xd1, 0xb4, 0x6b, 0x7a, 0xd1, 0x66, 0x32, 0xa5,
+ 0xa5, 0xb9, 0xd8, 0x8e,
+ 0x7c, 0x16, 0x78, 0x29, 0x66, 0xe0, 0x7d, 0x65, 0x66, 0x50, 0xdb, 0xf8,
+ 0xf8, 0xcd, 0x01, 0xaf,
+ 0xcc, 0xa3, 0x8c, 0xd5, 0xaf, 0x18, 0xdc, 0x9f, 0xaf, 0x49, 0x2e, 0x5b,
+ 0x5b, 0x8d, 0x10, 0x62,
+ 0x89, 0x69, 0x97, 0x2a, 0xc2, 0x95, 0x6f, 0x2b, 0xc2, 0x5b, 0xc8, 0xd1,
+ 0xd1, 0xa1, 0xe6, 0x7d,
+ 0xae, 0xfa, 0x34, 0x6a, 0x39, 0x45, 0x69, 0xb3, 0x39, 0x99, 0x4f, 0x9f,
+ 0x9f, 0xb5, 0xc7, 0x16,
+ 0x31, 0xcd, 0x5c, 0xbe, 0x4b, 0xcf, 0xbb, 0x16, 0x4b, 0x68, 0xd1, 0x62,
+ 0x62, 0x1c, 0x8a, 0x3a,
+ 0x34, 0x8f, 0x7c, 0x87, 0x63, 0x1b, 0x26, 0x55, 0x63, 0xe9, 0x5b, 0x68,
+ 0x68, 0xd4, 0x12, 0xff,
+ 0x66, 0xb0, 0x46, 0x8b, 0xb6, 0x0c, 0x6e, 0xae, 0xb6, 0xc5, 0x17, 0xcc,
+ 0xcc, 0xa7, 0x08, 0x31,
+ },
+ { /* 12 */
+ 0x55, 0x95, 0x9e, 0xb1, 0xd0, 0xa1, 0x4c, 0xd9, 0x5a, 0x2f, 0xf9, 0x1c,
+ 0x4c, 0xf2, 0x1a, 0x52,
+ 0xfa, 0xed, 0x87, 0xcf, 0x85, 0x5d, 0x81, 0x6c, 0x55, 0x48, 0x8b, 0x1e,
+ 0x81, 0xe1, 0x58, 0x1c,
+ 0x0c, 0xbe, 0x0a, 0x56, 0x48, 0xac, 0xcc, 0x72, 0x67, 0x5c, 0x45, 0x58,
+ 0xcc, 0xf1, 0x09, 0x1a,
+ 0x52, 0x31, 0x7b, 0x77, 0xfa, 0xee, 0x3b, 0x0a, 0xaf, 0x0c, 0xfb, 0x83,
+ 0x3b, 0xb1, 0x8e, 0x02,
+ 0xa3, 0xc6, 0x13, 0x28, 0x1d, 0x50, 0x01, 0xc7, 0x68, 0x3b, 0x37, 0x5a,
+ 0x01, 0xe2, 0x4b, 0x54,
+ 0x73, 0x1c, 0xab, 0xc9, 0xf7, 0x51, 0x4f, 0x53, 0xe2, 0x62, 0xa0, 0xf2,
+ 0x4f, 0x17, 0xc7, 0xae,
+ 0xe1, 0x9c, 0x70, 0x97, 0x07, 0xed, 0xe9, 0x75, 0xf2, 0xe7, 0x81, 0xb8,
+ 0xe9, 0x6d, 0xd9, 0xcf,
+ 0x81, 0x25, 0x20, 0x62, 0x02, 0xc4, 0x46, 0x63, 0x4c, 0x42, 0xec, 0x3d,
+ 0x46, 0xe9, 0x91, 0x1f,
+ 0x86, 0x81, 0xc5, 0xa4, 0x28, 0x8b, 0x31, 0xb0, 0xb9, 0x61, 0xee, 0xa2,
+ 0x31, 0xaa, 0x05, 0x4f,
+ 0x02, 0x35, 0x03, 0x19, 0x1c, 0x32, 0x22, 0x17, 0x4e, 0x1a, 0x41, 0xa5,
+ 0x22, 0x77, 0xe2, 0xba,
+ 0x6c, 0x07, 0x5a, 0xa3, 0x4d, 0x85, 0x63, 0x64, 0xd9, 0xf9, 0x28, 0xdd,
+ 0x63, 0x75, 0x41, 0xca,
+ 0xdf, 0xaa, 0x51, 0x43, 0xb0, 0x86, 0xb1, 0x1b, 0x84, 0x12, 0x52, 0xe6,
+ 0xb1, 0xa9, 0x16, 0x07,
+ 0x4e, 0xe4, 0x69, 0xe9, 0x52, 0x11, 0x24, 0xc0, 0xfd, 0x80, 0xf3, 0xba,
+ 0x24, 0x7e, 0x9b, 0x81,
+ 0xe8, 0xb3, 0x9c, 0x1e, 0x79, 0x3c, 0x70, 0xc3, 0x2e, 0x82, 0x87, 0xda,
+ 0x70, 0xa8, 0xa6, 0x3f,
+ 0x2e, 0x5d, 0x39, 0x1c, 0x57, 0x38, 0x8b, 0xd6, 0x43, 0x25, 0x9e, 0x3f,
+ 0x8b, 0xfa, 0xd3, 0x51,
+ 0x3d, 0xf8, 0xc2, 0x20, 0xa5, 0x40, 0x6b, 0x93, 0x1f, 0xe2, 0x53, 0x48,
+ 0x6b, 0x69, 0x5c, 0x2f,
+ 0x29, 0xf9, 0xdc, 0xda, 0x7d, 0x77, 0xfc, 0x05, 0xb6, 0x06, 0x9c, 0xa0,
+ 0xfc, 0xb9, 0x47, 0x01,
+ 0x7d, 0x97, 0xa2, 0x86, 0xa3, 0xcf, 0xa1, 0x36, 0xcb, 0x24, 0xa4, 0x0f,
+ 0xa1, 0x91, 0x2c, 0x0e,
+ 0x27, 0x72, 0xd5, 0x95, 0x29, 0xe9, 0x12, 0x60, 0x9f, 0x40, 0x98, 0x5d,
+ 0x12, 0x3f, 0xac, 0xa1,
+ 0x35, 0x2c, 0xce, 0x44, 0xd5, 0x88, 0xe3, 0xcf, 0xe4, 0x8a, 0x94, 0x99,
+ 0xe3, 0x76, 0x52, 0x82,
+ 0xcc, 0x0f, 0xaa, 0x7f, 0x42, 0xfe, 0x51, 0x5e, 0xd8, 0xd5, 0x9f, 0x91,
+ 0x51, 0x3a, 0x99, 0x79,
+ 0xd6, 0x85, 0xbd, 0xca, 0xce, 0x57, 0x28, 0xad, 0x58, 0x77, 0x54, 0x84,
+ 0x28, 0x6c, 0x69, 0xf7,
+ 0x87, 0x7a, 0x25, 0x49, 0x26, 0x92, 0x20, 0x5a, 0x9e, 0x6c, 0x2f, 0x11,
+ 0x20, 0x70, 0x74, 0x12,
+ 0xc9, 0x9e, 0x4c, 0xa0, 0x74, 0x83, 0x04, 0x9a, 0x63, 0xec, 0xdc, 0xab,
+ 0x04, 0x0e, 0xef, 0x93,
+ 0x6b, 0xa3, 0xbf, 0x65, 0x67, 0xca, 0x14, 0xb7, 0x2c, 0xda, 0x2a, 0x42,
+ 0x14, 0x36, 0xd5, 0x9a,
+ 0x32, 0x88, 0x2b, 0x82, 0xff, 0xc7, 0x94, 0x1c, 0x11, 0xa9, 0x96, 0x06,
+ 0x94, 0x35, 0xc6, 0xd2,
+ 0xcd, 0xf4, 0x4a, 0x92, 0x4c, 0xe7, 0x40, 0xb4, 0xff, 0xd8, 0x5e, 0x22,
+ 0x40, 0xe0, 0xe8, 0x24,
+ 0x23, 0x18, 0xd3, 0xa7, 0x11, 0x8d, 0x56, 0x4e, 0x03, 0x74, 0x1a, 0xd4,
+ 0x56, 0xd1, 0xab, 0x16,
+ 0x96, 0xea, 0xdd, 0x6c, 0xc8, 0xd8, 0xe2, 0x08, 0x8c, 0xb1, 0xa3, 0xc3,
+ 0xe2, 0x94, 0x19, 0xd6,
+ 0xb4, 0x09, 0xee, 0x26, 0xd7, 0x4c, 0xa5, 0xac, 0xa8, 0xc8, 0x78, 0xa4,
+ 0xa5, 0x9f, 0xc3, 0x9d,
+ 0x92, 0x80, 0xdb, 0x5e, 0xf0, 0xbc, 0xa6, 0x26, 0x10, 0x85, 0x21, 0x4a,
+ 0xa6, 0x7a, 0x1e, 0x61,
+ 0xc6, 0xee, 0xa5, 0x02, 0x2e, 0x04, 0xfb, 0x15, 0x6d, 0xa7, 0x19, 0xe5,
+ 0xfb, 0x52, 0x75, 0x6e,
+ 0x91, 0x4e, 0x38, 0xaa, 0xe2, 0x97, 0x95, 0xdb, 0x79, 0x92, 0xa1, 0x5c,
+ 0x95, 0xd7, 0x8d, 0x86,
+ 0xe4, 0x0d, 0x96, 0x48, 0x31, 0x90, 0xbc, 0xb1, 0x49, 0xde, 0xc2, 0x82,
+ 0xbc, 0x59, 0xaf, 0x25,
+ 0xd2, 0xef, 0xbb, 0xf8, 0xf6, 0x33, 0x6c, 0x83, 0xc4, 0x43, 0xd6, 0x0d,
+ 0x6c, 0x82, 0x6e, 0x40,
+ 0x56, 0x5b, 0x7d, 0x45, 0xc2, 0x8a, 0x7f, 0x24, 0x33, 0x38, 0x79, 0x0a,
+ 0x7f, 0x5f, 0x89, 0xb5,
+ 0x88, 0x0a, 0xcc, 0xeb, 0x7c, 0x15, 0xdf, 0xd5, 0x90, 0x27, 0xea, 0x5f,
+ 0xdf, 0x2c, 0xee, 0xef,
+ 0x6f, 0xc9, 0xb9, 0x57, 0x5f, 0xae, 0x50, 0x99, 0xb0, 0xee, 0xa8, 0xcb,
+ 0x50, 0xd8, 0xd2, 0x2d,
+ 0x10, 0x6b, 0x18, 0xc8, 0xe0, 0x53, 0xd3, 0xb8, 0x35, 0xd0, 0x4d, 0x61,
+ 0xd3, 0x3e, 0x1c, 0x99,
+ 0x59, 0x2b, 0x94, 0xe7, 0x98, 0x0d, 0x80, 0xab, 0x3d, 0x73, 0xbc, 0x44,
+ 0x80, 0x03, 0x13, 0x48,
+ 0x63, 0x77, 0xb3, 0x01, 0x17, 0x02, 0x9c, 0xeb, 0xd7, 0xb2, 0xed, 0x93,
+ 0x9c, 0x29, 0xdb, 0x37,
+ 0xca, 0x50, 0xaf, 0x54, 0x66, 0xa8, 0x37, 0x67, 0x0a, 0xfb, 0x5c, 0xbd,
+ 0x37, 0xa3, 0x7c, 0x74,
+ 0x79, 0xfd, 0xa4, 0xb4, 0x9b, 0xab, 0xe5, 0x18, 0x57, 0x10, 0x26, 0x86,
+ 0xe5, 0x7f, 0x2b, 0xb9,
+ 0xb2, 0x56, 0xeb, 0x0d, 0xf3, 0x1a, 0xc3, 0x95, 0x7a, 0xe6, 0xbb, 0x88,
+ 0xc3, 0x06, 0x26, 0x90,
+ 0x28, 0x02, 0x3c, 0x37, 0x73, 0x6e, 0xed, 0xef, 0x91, 0x0b, 0x5d, 0x13,
+ 0xed, 0x63, 0x36, 0x5c,
+ 0xea, 0x86, 0x9f, 0x07, 0x65, 0x0e, 0x52, 0xd4, 0x60, 0x98, 0xc6, 0x7f,
+ 0x52, 0xdf, 0x44, 0x85,
+ 0xec, 0xd9, 0x9a, 0x2c, 0x41, 0x58, 0x34, 0xed, 0xb2, 0xb6, 0x05, 0x53,
+ 0x34, 0x46, 0xa1, 0x88,
+ 0x2a, 0x37, 0x3f, 0x2e, 0x6f, 0x5c, 0xcf, 0xf8, 0xdf, 0x11, 0x1c, 0xb6,
+ 0xcf, 0x14, 0xd4, 0xe6,
+ 0xc4, 0xdb, 0xa6, 0x1b, 0x32, 0x36, 0xd9, 0x02, 0x23, 0xbd, 0x58, 0x40,
+ 0xd9, 0x25, 0x97, 0xd4,
+ 0xa7, 0xac, 0x15, 0x1a, 0x25, 0x34, 0x45, 0xe9, 0xf4, 0x0f, 0xb5, 0xd3,
+ 0x45, 0x0c, 0x4c, 0xe3,
+ 0x17, 0xcf, 0xfd, 0x0e, 0xca, 0x1c, 0xa4, 0x6b, 0xc0, 0xf3, 0x4f, 0xfe,
+ 0xa4, 0x7d, 0x88, 0xc9,
+ 0x5f, 0x74, 0x91, 0xcc, 0xbc, 0x5b, 0xe6, 0x92, 0xef, 0x5d, 0x7f, 0x68,
+ 0xe6, 0x9a, 0xf6, 0x45,
+ 0x62, 0x8c, 0x53, 0xec, 0x19, 0x1b, 0x8d, 0x01, 0xf0, 0xbf, 0x2c, 0x20,
+ 0x8d, 0xf3, 0xaa, 0x6a,
+ 0x5d, 0x41, 0x92, 0xd5, 0xa0, 0x69, 0xc4, 0x85, 0xa1, 0x47, 0x3e, 0xcd,
+ 0xc4, 0xed, 0x14, 0xff,
+ 0x06, 0x5f, 0x05, 0x2b, 0x24, 0x56, 0x66, 0x39, 0xd2, 0x2e, 0xc3, 0x2c,
+ 0x66, 0x99, 0xe5, 0x0d,
+ 0x3a, 0x5c, 0x27, 0xe6, 0x8f, 0x0f, 0x1c, 0x40, 0xea, 0xc1, 0x51, 0xd7,
+ 0x1c, 0x2a, 0xc8, 0x7f,
+ 0x39, 0x92, 0xc4, 0x12, 0x9d, 0x24, 0x2f, 0xbd, 0x83, 0xd6, 0xd1, 0xc1,
+ 0x2f, 0x87, 0x5b, 0x98,
+ 0xa1, 0xf3, 0x10, 0x31, 0x01, 0x62, 0x23, 0xd0, 0x26, 0x21, 0x76, 0xff,
+ 0x23, 0x95, 0xa9, 0xee,
+ 0x07, 0xa4, 0xe5, 0xc6, 0x2a, 0x4f, 0x77, 0xd3, 0xf5, 0x23, 0x02, 0x9f,
+ 0x77, 0x43, 0x94, 0x50,
+ 0x6d, 0xfc, 0xba, 0x4e, 0x43, 0x9c, 0x72, 0x8e, 0xfe, 0xf4, 0xe9, 0x6e,
+ 0x72, 0xaf, 0x30, 0x97,
+ 0x21, 0x2d, 0xd0, 0xbe, 0x0d, 0xbf, 0x74, 0x59, 0x4d, 0x6e, 0x5b, 0x71,
+ 0x74, 0xa6, 0x49, 0xac,
+ 0xba, 0x82, 0xe7, 0x69, 0x83, 0xd2, 0x4b, 0xc9, 0x81, 0x8e, 0x7c, 0x59,
+ 0x4b, 0x19, 0x28, 0x3d,
+ 0x69, 0x96, 0xbc, 0x7c, 0x7b, 0xf8, 0x36, 0xa0, 0x62, 0xc0, 0x6b, 0xe7,
+ 0x36, 0x41, 0x37, 0x20,
+ 0x37, 0x19, 0xcd, 0x5d, 0xc9, 0xba, 0xc1, 0xd8, 0xaa, 0x90, 0xd5, 0x3c,
+ 0xc1, 0x01, 0xb0, 0x38,
+ 0x3e, 0x36, 0x21, 0xd4, 0xb7, 0x6b, 0x58, 0x6e, 0x76, 0xf5, 0xd3, 0x5e,
+ 0x58, 0xc4, 0xcf, 0xc8,
+ 0x25, 0x47, 0xd6, 0x8c, 0x35, 0xdb, 0x30, 0x77, 0xd1, 0x5a, 0xd9, 0xf8,
+ 0x30, 0x48, 0x4e, 0x1b,
+ 0xc1, 0x4a, 0x40, 0xc4, 0x04, 0x4b, 0x8c, 0xc6, 0x98, 0x84, 0x1b, 0x7a,
+ 0x8c, 0x11, 0xe1, 0x3e,
+ 0xf7, 0xa8, 0x6d, 0x74, 0xc3, 0xe8, 0x5c, 0xf4, 0x15, 0x19, 0x0f, 0xf5,
+ 0x5c, 0xca, 0x20, 0x5b,
+ 0xd4, 0xb0, 0xbe, 0xd3, 0xd2, 0x65, 0x0a, 0xba, 0x16, 0x6d, 0x15, 0x21,
+ 0x0a, 0x1b, 0x8b, 0x4d,
+ 0x70, 0xd2, 0x48, 0x3d, 0xe5, 0x7a, 0x7c, 0xae, 0x8b, 0x75, 0x20, 0xe4,
+ 0x7c, 0xba, 0x54, 0x49,
+ 0xf9, 0x23, 0x64, 0x3b, 0x97, 0x76, 0xb2, 0x91, 0x3c, 0x5f, 0x0b, 0x08,
+ 0xb2, 0x4c, 0xcb, 0xfb,
+ 0x9b, 0xaf, 0x37, 0xd7, 0x8e, 0x6d, 0x3f, 0x90, 0xcc, 0xe0, 0x27, 0x28,
+ 0x3f, 0xbf, 0x61, 0x91,
+ 0x30, 0xbd, 0x28, 0x9b, 0xe3, 0xf5, 0xb6, 0x0b, 0x5f, 0xb3, 0xd7, 0xa3,
+ 0xb6, 0x42, 0x24, 0x68,
+ 0xf8, 0xd8, 0x84, 0xd6, 0x99, 0x6f, 0xa3, 0x7b, 0x1b, 0x52, 0xca, 0xbb,
+ 0xa3, 0x96, 0xba, 0xa6,
+ 0x4a, 0x8e, 0x6f, 0xdb, 0x6a, 0x75, 0x60, 0xee, 0x61, 0xb4, 0x71, 0x33,
+ 0x60, 0x90, 0x9c, 0x36,
+ 0x2d, 0x93, 0xda, 0xe8, 0x45, 0x13, 0xb8, 0x2b, 0x2a, 0x32, 0x1e, 0x29,
+ 0xb8, 0x57, 0x40, 0xb6,
+ 0xbf, 0x13, 0x01, 0xb6, 0xb5, 0xaf, 0x1e, 0x0d, 0x3a, 0xb7, 0x3f, 0x63,
+ 0x1e, 0x2d, 0x5e, 0xd7,
+ 0x40, 0x6f, 0x60, 0xa6, 0x06, 0x8f, 0xca, 0xa5, 0xd4, 0xc6, 0xf7, 0x47,
+ 0xca, 0xf8, 0x70, 0x21,
+ 0x49, 0x40, 0x8c, 0x2f, 0x78, 0x5e, 0x53, 0x13, 0x08, 0xa3, 0xf1, 0x25,
+ 0x53, 0x3d, 0x0f, 0xd1,
+ 0x5e, 0x8f, 0x71, 0x21, 0xb2, 0x42, 0xf7, 0x78, 0xc8, 0x50, 0xbe, 0xdb,
+ 0xf7, 0x40, 0x87, 0x18,
+ 0x46, 0x30, 0x65, 0x8d, 0x22, 0xd9, 0xac, 0x9c, 0x06, 0xe8, 0x34, 0x6b,
+ 0xac, 0x61, 0x95, 0x2c,
+ 0xae, 0x83, 0xf9, 0x93, 0x5b, 0xe5, 0xdc, 0x5f, 0x28, 0x6a, 0xb3, 0xb1,
+ 0xdc, 0xc9, 0x33, 0x13,
+ 0x65, 0x28, 0xb6, 0x2a, 0x33, 0x54, 0xfa, 0xd2, 0x05, 0x9c, 0x2e, 0xbf,
+ 0xfa, 0xb0, 0x3e, 0x3a,
+ 0x24, 0xbc, 0x36, 0x61, 0x3b, 0xc2, 0x21, 0x9d, 0xf6, 0x57, 0x18, 0x4b,
+ 0x21, 0x92, 0x3f, 0x46,
+ 0x5c, 0xba, 0x72, 0x38, 0xae, 0x70, 0xd5, 0x6f, 0x86, 0x4a, 0xff, 0x7e,
+ 0xd5, 0x37, 0x65, 0xa2,
+ 0x72, 0xe7, 0x4b, 0x24, 0xf9, 0x48, 0x5e, 0xb9, 0xc5, 0x6f, 0x61, 0x41,
+ 0x5e, 0xcd, 0xb6, 0xf3,
+ 0x97, 0x11, 0x3d, 0x81, 0xc6, 0xc1, 0xf3, 0xe2, 0xab, 0xbc, 0x62, 0x70,
+ 0xf3, 0x4e, 0x68, 0x8b,
+ 0xaf, 0x78, 0x19, 0x7e, 0x55, 0xfc, 0xcd, 0xb5, 0x0f, 0x67, 0x72, 0x02,
+ 0xcd, 0x13, 0x42, 0x4e,
+ 0x0d, 0x45, 0xea, 0xbb, 0x46, 0xb5, 0xdd, 0x98, 0x40, 0x51, 0x84, 0xeb,
+ 0xdd, 0x2b, 0x78, 0x47,
+ 0xb9, 0x4c, 0x04, 0x9d, 0x91, 0xf9, 0x78, 0x34, 0xe8, 0x99, 0xfc, 0x4f,
+ 0x78, 0xb4, 0xbb, 0xda,
+ 0x45, 0xfe, 0x86, 0x79, 0x30, 0xf2, 0x9f, 0x61, 0x6f, 0xff, 0xb4, 0x7d,
+ 0x9f, 0xcc, 0x06, 0xcb,
+ 0x76, 0x8d, 0x4d, 0x16, 0xc1, 0x2c, 0x1a, 0x97, 0x59, 0x5b, 0xe3, 0xc8,
+ 0x1a, 0x23, 0xb1, 0x44,
+ 0x43, 0xa1, 0x83, 0x52, 0x14, 0xa4, 0xf9, 0x58, 0xbd, 0xd1, 0x77, 0x51,
+ 0xf9, 0x55, 0xe3, 0xc6,
+ 0x51, 0xff, 0x98, 0x83, 0xe8, 0xc5, 0x08, 0xf7, 0xc6, 0x1b, 0x7b, 0x95,
+ 0x08, 0x1c, 0x1d, 0xe5,
+ 0x85, 0x4f, 0x26, 0x50, 0x3a, 0xa0, 0x02, 0x4d, 0xd0, 0x76, 0x6e, 0xb4,
+ 0x02, 0x07, 0x96, 0xa8,
+ 0x5a, 0xe5, 0x77, 0x13, 0x8a, 0x26, 0xb3, 0x56, 0x54, 0x64, 0x3c, 0x52,
+ 0xb3, 0xae, 0x80, 0xaf,
+ 0x7c, 0x6c, 0x42, 0x6b, 0xad, 0xd6, 0xb0, 0xdc, 0xec, 0x29, 0x65, 0xbc,
+ 0xb0, 0x4b, 0x5d, 0x53,
+ 0xd0, 0xda, 0xb8, 0xe1, 0xea, 0x01, 0x4e, 0x94, 0x8a, 0x59, 0x97, 0xa8,
+ 0x4e, 0xf5, 0x8c, 0xfa,
+ 0x08, 0xd4, 0x0c, 0x64, 0x70, 0xc8, 0x88, 0x5c, 0xfb, 0x68, 0xc7, 0xd1,
+ 0x88, 0x1f, 0x0e, 0xad,
+ 0x05, 0x91, 0xe6, 0xdf, 0x36, 0x7d, 0x55, 0xc4, 0xbb, 0x39, 0x43, 0x3a,
+ 0x55, 0x34, 0x76, 0xea,
+ 0xb8, 0xb7, 0xe4, 0x70, 0x9f, 0xe0, 0x69, 0xde, 0xcf, 0x94, 0x3d, 0xfc,
+ 0x69, 0x6e, 0xca, 0x87,
+ 0x0f, 0x70, 0xe9, 0xa2, 0x5a, 0x87, 0xff, 0x8f, 0x0e, 0x4b, 0xc5, 0x4e,
+ 0xff, 0x5c, 0x9a, 0xfd,
+ 0x7a, 0x33, 0x47, 0x40, 0x89, 0x80, 0xd6, 0xe5, 0x3e, 0x07, 0xa6, 0x90,
+ 0xd6, 0xd2, 0xb8, 0x5e,
+ 0xff, 0x7c, 0x61, 0x10, 0xb3, 0x20, 0xd4, 0xa8, 0xee, 0x71, 0xc8, 0x24,
+ 0xd4, 0xd5, 0x2e, 0xf6,
+ 0xda, 0x3b, 0xb7, 0x9c, 0x86, 0xfb, 0xe4, 0xdf, 0x3f, 0x2b, 0x11, 0xdc,
+ 0xe4, 0x9d, 0x60, 0xed,
+ 0xdb, 0xc0, 0x57, 0x71, 0x88, 0xe2, 0xf5, 0x35, 0x18, 0x26, 0xd0, 0x6f,
+ 0xf5, 0x47, 0x11, 0xb0,
+ 0xf2, 0x39, 0x8b, 0xab, 0xf5, 0x95, 0x09, 0x30, 0xae, 0x20, 0x4c, 0xcf,
+ 0x09, 0xfe, 0x56, 0xb1,
+ 0x99, 0x9a, 0x34, 0xce, 0x92, 0x5f, 0x1d, 0x87, 0x82, 0xfa, 0x66, 0x8d,
+ 0x1d, 0xc8, 0x83, 0x2b,
+ 0xa9, 0x27, 0x1c, 0x55, 0x71, 0xaa, 0xab, 0x8c, 0xdd, 0x49, 0xb1, 0x2e,
+ 0xab, 0x8a, 0xa7, 0x43,
+ 0x54, 0x6e, 0x7e, 0x5c, 0xde, 0xb8, 0x5d, 0x33, 0x7d, 0x22, 0x38, 0xaf,
+ 0x5d, 0x28, 0x6b, 0x0f,
+ 0x95, 0x24, 0x3e, 0x98, 0xda, 0xf3, 0xd1, 0xf5, 0xe5, 0xa6, 0x23, 0xd5,
+ 0xd1, 0x39, 0x8a, 0x31,
+ 0x68, 0x6d, 0x5c, 0x91, 0x75, 0xe1, 0x27, 0x4a, 0x45, 0xcd, 0xaa, 0x54,
+ 0x27, 0x9b, 0x46, 0x7d,
+ 0x1c, 0xd5, 0x12, 0x9e, 0xa8, 0xff, 0x1f, 0xca, 0x52, 0x8c, 0x08, 0x39,
+ 0x1f, 0xcf, 0x15, 0x83,
+ 0x6a, 0x58, 0x5f, 0x88, 0x69, 0xd3, 0x05, 0x5d, 0x0b, 0xd7, 0xeb, 0xf1,
+ 0x05, 0xec, 0xa4, 0xc7,
+ 0x0e, 0x8b, 0x09, 0x4f, 0x54, 0x9e, 0xee, 0x65, 0x29, 0x46, 0x04, 0xfd,
+ 0xee, 0x86, 0xeb, 0xa0,
+ 0x93, 0x7b, 0x3b, 0xb3, 0xfe, 0xa5, 0xb7, 0xcc, 0x37, 0x88, 0xe0, 0xf9,
+ 0xb7, 0xa0, 0x6f, 0x3c,
+ 0xa8, 0xdc, 0xfc, 0xb8, 0x7f, 0xb3, 0xba, 0x66, 0xfa, 0x44, 0x70, 0x9d,
+ 0xba, 0x50, 0xd6, 0x1e,
+ 0xcf, 0xc1, 0x49, 0x8b, 0x50, 0xd5, 0x62, 0xa3, 0xb1, 0xc2, 0x1f, 0x87,
+ 0x62, 0x97, 0x0a, 0x9e,
+ 0xc2, 0x84, 0xa3, 0x30, 0x16, 0x60, 0xbf, 0x3b, 0xf1, 0x93, 0x9b, 0x6c,
+ 0xbf, 0xbc, 0x72, 0xd9,
+ 0xcb, 0xab, 0x4f, 0xb9, 0x68, 0xb1, 0x26, 0x8d, 0x2d, 0xf6, 0x9d, 0x0e,
+ 0x26, 0x79, 0x0d, 0x29,
+ 0x8e, 0x55, 0xc9, 0xc0, 0x58, 0x43, 0xb9, 0xec, 0x42, 0x09, 0x29, 0x73,
+ 0xb9, 0xb5, 0x0b, 0xe2,
+ 0x33, 0x73, 0xcb, 0x6f, 0xf1, 0xde, 0x85, 0xf6, 0x36, 0xa4, 0x57, 0xb5,
+ 0x85, 0xef, 0xb7, 0x8f,
+ 0x15, 0xfa, 0xfe, 0x17, 0xd6, 0x2e, 0x86, 0x7c, 0x8e, 0xe9, 0x0e, 0x5b,
+ 0x86, 0x0a, 0x6a, 0x73,
+ 0x89, 0xf1, 0x2c, 0x06, 0x72, 0x0c, 0xce, 0x3f, 0xb7, 0x2a, 0x2b, 0xec,
+ 0xce, 0xf6, 0x9f, 0xb2,
+ 0xd1, 0x21, 0x58, 0x0c, 0xe4, 0x18, 0x5f, 0x7e, 0xad, 0x54, 0x56, 0x1b,
+ 0x5f, 0x2f, 0xfd, 0xa7,
+ 0x1a, 0x8a, 0x17, 0xb5, 0x8c, 0xa9, 0x79, 0xf3, 0x80, 0xa2, 0xcb, 0x15,
+ 0x79, 0x56, 0xf0, 0x8e,
+ 0x98, 0x61, 0xd4, 0x23, 0x9c, 0x46, 0x0c, 0x6d, 0xa5, 0xf7, 0xa7, 0x3e,
+ 0x0c, 0x12, 0xf2, 0x76,
+ 0xce, 0x3a, 0xa9, 0x66, 0x5e, 0xcc, 0x73, 0x49, 0x96, 0xcf, 0xde, 0x34,
+ 0x73, 0x4d, 0x7b, 0xc3,
+ 0x1b, 0x71, 0xf7, 0x58, 0x82, 0xb0, 0x68, 0x19, 0xa7, 0xaf, 0x0a, 0xa6,
+ 0x68, 0x8c, 0x81, 0xd3,
+ 0xe3, 0xa9, 0x73, 0x8e, 0x1b, 0xdf, 0xcb, 0x62, 0xbc, 0xfd, 0xc0, 0x1d,
+ 0xcb, 0x1a, 0x3b, 0x75,
+ 0x9d, 0xf0, 0x32, 0xfc, 0xaa, 0x3b, 0x59, 0xa9, 0x1e, 0xce, 0xe4, 0x04,
+ 0x59, 0x26, 0x84, 0x9c,
+ 0x8c, 0x60, 0xca, 0xd9, 0x44, 0x71, 0x9b, 0xfb, 0x0c, 0x13, 0x68, 0xd6,
+ 0x9b, 0xc2, 0xe9, 0x58,
+ 0x6e, 0x32, 0x59, 0xba, 0x51, 0xb7, 0x41, 0x73, 0x97, 0xe3, 0x69, 0x78,
+ 0x41, 0x02, 0xa3, 0x70,
+ 0x66, 0xe6, 0x55, 0xde, 0x21, 0x7f, 0xc9, 0x2f, 0x6c, 0x8b, 0xae, 0xa9,
+ 0xc9, 0x1d, 0xad, 0xdd,
+ 0x58, 0xd0, 0x74, 0x0a, 0x96, 0x14, 0x91, 0x41, 0x1a, 0x7e, 0x7d, 0xf7,
+ 0x91, 0xd9, 0x62, 0x15,
+ 0x9a, 0x54, 0xd7, 0x3a, 0x80, 0x74, 0x2e, 0x7a, 0xeb, 0xed, 0xe6, 0x9b,
+ 0x2e, 0x65, 0x10, 0xcc,
+ 0x47, 0xcb, 0x85, 0x60, 0x2c, 0xc0, 0xbd, 0x76, 0x21, 0xe5, 0xf5, 0xd8,
+ 0xbd, 0xbb, 0xe4, 0x71,
+ 0x18, 0xbf, 0x14, 0xac, 0x90, 0x9b, 0x5b, 0xe4, 0xce, 0xb8, 0x8a, 0xb0,
+ 0x5b, 0x21, 0x12, 0x34,
+ 0xad, 0x4d, 0x1a, 0x67, 0x49, 0xce, 0xef, 0xa2, 0x41, 0x7d, 0x33, 0xa7,
+ 0xef, 0x64, 0xa0, 0xf4,
+ 0x1e, 0xe0, 0x11, 0x87, 0xb4, 0xcd, 0x3d, 0xdd, 0x1c, 0x96, 0x49, 0x9c,
+ 0x3d, 0xb8, 0xf7, 0x39,
+ 0xdc, 0x64, 0xb2, 0xb7, 0xa2, 0xad, 0x82, 0xe6, 0xed, 0x05, 0xd2, 0xf0,
+ 0x82, 0x04, 0x85, 0xe0,
+ 0xa4, 0x62, 0xf6, 0xee, 0x37, 0x1f, 0x76, 0x14, 0x9d, 0x18, 0x35, 0xc5,
+ 0x76, 0xa1, 0xdf, 0x04,
+ 0x34, 0xd7, 0x2e, 0xa9, 0xdb, 0x91, 0xf2, 0x25, 0xc3, 0x87, 0x55, 0x2a,
+ 0xf2, 0xac, 0x23, 0xdf,
+ 0xfd, 0x49, 0x62, 0x09, 0xaf, 0x12, 0xf6, 0xbf, 0xa0, 0x6b, 0x89, 0x81,
+ 0xf6, 0xa2, 0xcc, 0x4c,
+ 0x9f, 0xc5, 0x31, 0xe5, 0xb6, 0x09, 0x7b, 0xbe, 0x50, 0xd4, 0xa5, 0xa1,
+ 0x7b, 0x51, 0x66, 0x26,
+ 0x8f, 0xae, 0x29, 0x2d, 0x56, 0x5a, 0xa8, 0x06, 0x65, 0x04, 0xe8, 0xc0,
+ 0xa8, 0x6f, 0x7a, 0xbf,
+ 0xed, 0x22, 0x7a, 0xc1, 0x4f, 0x41, 0x25, 0x07, 0x95, 0xbb, 0xc4, 0xe0,
+ 0x25, 0x9c, 0xd0, 0xd5,
+ 0xf1, 0xf7, 0x68, 0x5f, 0xe7, 0xbe, 0x3a, 0xcd, 0xc7, 0x37, 0xcc, 0xd9,
+ 0x3a, 0x53, 0xc5, 0x56,
+ 0xe5, 0xf6, 0x76, 0xa5, 0x3f, 0x89, 0xad, 0x5b, 0x6e, 0xd3, 0x03, 0x31,
+ 0xad, 0x83, 0xde, 0x78,
+ 0x1f, 0x1b, 0xf1, 0x6a, 0xba, 0xd4, 0x2c, 0x37, 0x3b, 0x9b, 0x88, 0x2f,
+ 0x2c, 0x62, 0x86, 0x64,
+ 0x82, 0xeb, 0xc3, 0x96, 0x10, 0xef, 0x75, 0x9e, 0x25, 0x55, 0x6c, 0x2b,
+ 0x75, 0x44, 0x02, 0xf8,
+ 0xf0, 0x0c, 0x88, 0xb2, 0xe9, 0xa7, 0x2b, 0x27, 0xe0, 0x3a, 0x0d, 0x6a,
+ 0x2b, 0x89, 0xb4, 0x0b,
+ 0xe6, 0x38, 0x95, 0x51, 0x2d, 0xa2, 0x9e, 0xa6, 0x07, 0xc4, 0x83, 0x27,
+ 0x9e, 0x2e, 0x4d, 0x9f,
+ 0xc3, 0x7f, 0x43, 0xdd, 0x18, 0x79, 0xae, 0xd1, 0xd6, 0x9e, 0x5a, 0xdf,
+ 0xae, 0x66, 0x03, 0x84,
+ 0xef, 0x17, 0x79, 0xd8, 0x53, 0x73, 0x07, 0x10, 0xdb, 0xa1, 0x85, 0x45,
+ 0x07, 0xeb, 0x32, 0x6f,
+ 0x1d, 0x2e, 0xf2, 0x73, 0xa6, 0xe6, 0x0e, 0x20, 0x75, 0x81, 0xc9, 0x8a,
+ 0x0e, 0x15, 0x64, 0xde,
+ 0xc0, 0xb1, 0xa0, 0x29, 0x0a, 0x52, 0x9d, 0x2c, 0xbf, 0x89, 0xda, 0xc9,
+ 0x9d, 0xcb, 0x90, 0x63,
+ 0xf6, 0x53, 0x8d, 0x99, 0xcd, 0xf1, 0x4d, 0x1e, 0x32, 0x14, 0xce, 0x46,
+ 0x4d, 0x10, 0x51, 0x06,
+ 0x4b, 0x75, 0x8f, 0x36, 0x64, 0x6c, 0x71, 0x04, 0x46, 0xb9, 0xb0, 0x80,
+ 0x71, 0x4a, 0xed, 0x6b,
+ 0xee, 0xec, 0x99, 0x35, 0x5d, 0x6a, 0x16, 0xfa, 0xfc, 0xac, 0x44, 0xf6,
+ 0x16, 0x31, 0x43, 0x32,
+ 0xe9, 0x48, 0x7c, 0xf3, 0x77, 0x25, 0x61, 0x29, 0x09, 0x8f, 0x46, 0x69,
+ 0x61, 0x72, 0xd7, 0x62,
+ 0xe2, 0x52, 0x93, 0x63, 0x15, 0xc6, 0xda, 0x88, 0x9b, 0xf0, 0x01, 0xae,
+ 0xda, 0xc0, 0x4a, 0x28,
+ 0x16, 0x34, 0x1d, 0xe3, 0xc4, 0x05, 0xb5, 0x81, 0xe7, 0xfe, 0x8e, 0x4d,
+ 0xb5, 0xa7, 0xf9, 0x94,
+ 0x53, 0xca, 0x9b, 0x9a, 0xf4, 0xf7, 0x2a, 0xe0, 0x88, 0x01, 0x3a, 0x30,
+ 0x2a, 0x6b, 0xff, 0x5f,
+ 0xdd, 0x9f, 0x52, 0x5a, 0xac, 0xb4, 0x93, 0x0c, 0xca, 0x08, 0x13, 0x43,
+ 0x93, 0xde, 0xf4, 0xbd,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0xfb, 0xe0, 0xed, 0x0e, 0x19, 0x11, 0xea, 0x27, 0x0d, 0xc1, 0xb3,
+ 0x11, 0xda, 0x71, 0x5d,
+ 0x8b, 0xc4, 0x2f, 0x1f, 0x6e, 0x3e, 0xec, 0x28, 0xf9, 0x30, 0x6a, 0x49,
+ 0xec, 0x81, 0x7d, 0x08,
+ 0xf3, 0xc2, 0x6b, 0x46, 0xfb, 0x8c, 0x18, 0xda, 0x89, 0x2d, 0x8d, 0x7c,
+ 0x18, 0x24, 0x27, 0xec,
+ 0xde, 0x51, 0xb1, 0xae, 0xbe, 0x9f, 0xa0, 0xf1, 0xa3, 0x1f, 0x93, 0x55,
+ 0xa0, 0x73, 0x67, 0x5a,
+ 0x57, 0xa0, 0x9d, 0xa8, 0xcc, 0x93, 0x6e, 0xce, 0x14, 0x35, 0xb8, 0xb9,
+ 0x6e, 0x85, 0xf8, 0xe8,
+ 0x9e, 0x3e, 0xd1, 0x08, 0xb8, 0x10, 0x6a, 0x54, 0x77, 0xd9, 0x64, 0x12,
+ 0x6a, 0x8b, 0x17, 0x7b,
+ 0x38, 0x69, 0x24, 0xff, 0x93, 0x3d, 0x3e, 0x57, 0xa4, 0xdb, 0x10, 0x72,
+ 0x3e, 0x5d, 0x2a, 0xc5,
+ 0xbe, 0xe8, 0xe1, 0x5b, 0xbb, 0xb6, 0x0f, 0xe7, 0x1d, 0xba, 0xfe, 0xd0,
+ 0x0f, 0xf7, 0x2f, 0x8a,
+ 0x8a, 0x3f, 0xcf, 0xf2, 0x60, 0x27, 0xfd, 0xc2, 0xde, 0x3d, 0xab, 0xfa,
+ 0xfd, 0x5b, 0x0c, 0x55,
+ 0x4f, 0x1f, 0x89, 0x04, 0x5c, 0x08, 0x35, 0x2a, 0xda, 0x8d, 0x32, 0x09,
+ 0x35, 0xa4, 0xea, 0xdc,
+ 0xa2, 0x3d, 0xf3, 0xc5, 0x13, 0x49, 0x10, 0x2d, 0x4f, 0x36, 0xf6, 0xe9,
+ 0x10, 0x38, 0x3a, 0x09,
+ 0x61, 0x42, 0xb0, 0x18, 0x0b, 0x30, 0xbe, 0xfc, 0x99, 0xa8, 0xac, 0x36,
+ 0xbe, 0x5e, 0x39, 0x8d,
+ 0x9c, 0x0b, 0xd2, 0x11, 0xa4, 0x22, 0x48, 0x43, 0x39, 0xc3, 0x25, 0xb7,
+ 0x48, 0xfc, 0xf5, 0xc1,
+ 0x26, 0x89, 0x35, 0x78, 0x27, 0xf0, 0x03, 0x8a, 0xb8, 0x4d, 0x59, 0xee,
+ 0x03, 0xe5, 0xdd, 0xfc,
+ 0x60, 0xb9, 0x50, 0xf5, 0x05, 0x29, 0xaf, 0x16, 0xbe, 0xa5, 0x6d, 0x85,
+ 0xaf, 0x84, 0x48, 0xd0,
+ 0x78, 0x06, 0x44, 0x59, 0x95, 0xb2, 0xf4, 0xf2, 0x70, 0x1d, 0xe7, 0x35,
+ 0xf4, 0xa5, 0x5a, 0xe4,
+ 0xd9, 0xf5, 0x54, 0x68, 0x94, 0xd0, 0xd7, 0x22, 0x56, 0x3c, 0x91, 0xca,
+ 0xd7, 0x30, 0xf3, 0x0a,
+ 0x3c, 0x03, 0x22, 0xcd, 0xab, 0x59, 0x7a, 0x79, 0x38, 0xef, 0x92, 0xfb,
+ 0x7a, 0xb3, 0x2d, 0x72,
+ 0xfb, 0x16, 0x67, 0x22, 0x8b, 0x44, 0x90, 0x86, 0x72, 0x45, 0x4a, 0xad,
+ 0x90, 0x3b, 0x29, 0x41,
+ 0xc7, 0x15, 0x45, 0xef, 0x20, 0x1d, 0xea, 0xff, 0x4a, 0xaa, 0xd8, 0x56,
+ 0xea, 0x88, 0x04, 0x33,
+ 0xfe, 0x87, 0x81, 0xfd, 0xbd, 0x39, 0xc5, 0x42, 0xc9, 0x7c, 0x09, 0x97,
+ 0xc5, 0x0f, 0x5f, 0xab,
+ 0x36, 0xe2, 0x2d, 0xb0, 0xc7, 0xa3, 0xd0, 0x32, 0x8d, 0x9d, 0x14, 0x8f,
+ 0xd0, 0xdb, 0xc1, 0x65,
+ 0xa0, 0x08, 0xf0, 0xdc, 0x0f, 0x7b, 0x32, 0x3a, 0x01, 0x2c, 0xb7, 0x4c,
+ 0x32, 0x4f, 0xd8, 0xb3,
+ 0x50, 0x04, 0x78, 0x6e, 0xe6, 0xdc, 0x19, 0x1d, 0xe1, 0x16, 0xba, 0x26,
+ 0x19, 0xc6, 0x6c, 0xb8,
+ 0xf5, 0x9d, 0x6e, 0x6d, 0xdf, 0xda, 0x7e, 0xe3, 0x5b, 0x03, 0x4e, 0x50,
+ 0x7e, 0xbd, 0xc2, 0xe1,
+ 0xaa, 0xe9, 0xff, 0xa1, 0x63, 0x81, 0x98, 0x71, 0xb4, 0x5e, 0x31, 0x38,
+ 0x98, 0x27, 0x34, 0xa4,
+ 0xd3, 0x14, 0x5b, 0x15, 0xf8, 0x2a, 0x7d, 0x69, 0xe3, 0x4e, 0x17, 0xbe,
+ 0x7d, 0x58, 0x1f, 0x1d,
+ 0x41, 0x94, 0x80, 0x4b, 0x08, 0x96, 0xdb, 0x4f, 0xf3, 0xcb, 0x36, 0xf4,
+ 0xdb, 0x22, 0x01, 0x7c,
+ 0x7f, 0xa2, 0xa1, 0x9f, 0xbf, 0xfd, 0x83, 0x21, 0x85, 0x3e, 0xe5, 0xaa,
+ 0x83, 0xe6, 0xce, 0xb4,
+ 0xa5, 0x99, 0x16, 0x03, 0x39, 0x06, 0x67, 0xfe, 0xba, 0x15, 0xf4, 0x76,
+ 0x67, 0x7b, 0xae, 0x59,
+ 0xb0, 0x63, 0xe8, 0x14, 0xef, 0x28, 0xe1, 0x82, 0x34, 0xfc, 0xfa, 0x2d,
+ 0xe1, 0x71, 0xc4, 0x2a,
+ 0x48, 0xbb, 0x6c, 0xc2, 0x76, 0x47, 0x42, 0xf9, 0x2f, 0xae, 0x30, 0x96,
+ 0x42, 0xe7, 0x7e, 0x8c,
+ 0x20, 0xd6, 0x30, 0x53, 0x03, 0xa6, 0x65, 0xb3, 0x6a, 0x63, 0x9a, 0xc2,
+ 0x65, 0x7c, 0x38, 0xf1,
+ 0xf4, 0x66, 0x8e, 0x80, 0xd1, 0xc3, 0x6f, 0x09, 0x7c, 0x0e, 0x8f, 0xe3,
+ 0x6f, 0x67, 0xb3, 0xbc,
+ 0x0b, 0x1a, 0xef, 0x90, 0x62, 0xe3, 0xbb, 0xa1, 0x92, 0x7f, 0x47, 0xc7,
+ 0xbb, 0xb2, 0x9d, 0x4a,
+ 0xd8, 0x0e, 0xb4, 0x85, 0x9a, 0xc9, 0xc6, 0xc8, 0x71, 0x31, 0x50, 0x79,
+ 0xc6, 0xea, 0x82, 0x57,
+ 0xb7, 0xc7, 0x0d, 0xd2, 0xc5, 0x67, 0x96, 0x51, 0xc1, 0xdf, 0xf8, 0xb2,
+ 0x96, 0x32, 0x50, 0x7a,
+ 0xb1, 0x98, 0x08, 0xf9, 0xe1, 0x31, 0xf0, 0x68, 0x13, 0xf1, 0x3b, 0x9e,
+ 0xf0, 0xab, 0xb5, 0x77,
+ 0xd5, 0x4b, 0x5e, 0x3e, 0xdc, 0x7c, 0x1b, 0x50, 0x31, 0x60, 0xd4, 0x92,
+ 0x1b, 0xc1, 0xfa, 0x10,
+ 0x22, 0xe3, 0x33, 0x4a, 0x1f, 0x94, 0x47, 0xa4, 0x24, 0x79, 0xdb, 0x67,
+ 0x47, 0x0b, 0xda, 0x4b,
+ 0x4c, 0xd1, 0x6a, 0xf0, 0x4e, 0x23, 0x06, 0xd7, 0xb3, 0x9a, 0xb2, 0x1f,
+ 0x06, 0x09, 0x79, 0x3b,
+ 0x3f, 0xcd, 0xc1, 0x39, 0xb9, 0x72, 0x49, 0x84, 0x51, 0xf8, 0x12, 0xed,
+ 0x49, 0x1e, 0xbe, 0x95,
+ 0x75, 0x43, 0xae, 0xe2, 0xd3, 0x07, 0x29, 0x6a, 0x30, 0x4c, 0x63, 0xde,
+ 0x29, 0x8e, 0x22, 0xa3,
+ 0x19, 0x44, 0xf4, 0x41, 0x9e, 0x82, 0x4a, 0x0e, 0xe9, 0xb5, 0x4b, 0x03,
+ 0x4a, 0xfb, 0x63, 0x69,
+ 0x74, 0xb8, 0x4e, 0x0f, 0xdd, 0x1e, 0x38, 0x80, 0x17, 0x41, 0xa2, 0x6d,
+ 0x38, 0x54, 0x53, 0xfe,
+ 0x13, 0xa5, 0xfb, 0x3c, 0xf2, 0x78, 0xe0, 0x45, 0x5c, 0xc7, 0xcd, 0x77,
+ 0xe0, 0x93, 0x8f, 0x7e,
+ 0xd7, 0x7e, 0x5d, 0x27, 0xc0, 0x4e, 0x39, 0x47, 0x7f, 0x7a, 0x95, 0x37,
+ 0x39, 0xb6, 0x18, 0xaa,
+ 0x84, 0xb4, 0xc6, 0xbd, 0x34, 0xb9, 0x13, 0xa7, 0xf7, 0x7b, 0xaf, 0x07,
+ 0x13, 0xdd, 0xe7, 0xf5,
+ 0x7b, 0xc8, 0xa7, 0xad, 0x87, 0x99, 0xc7, 0x0f, 0x19, 0x0a, 0x67, 0x23,
+ 0xc7, 0x08, 0xc9, 0x03,
+ 0x42, 0x5a, 0x63, 0xbf, 0x1a, 0xbd, 0xe8, 0xb2, 0x9a, 0xdc, 0xb6, 0xe2,
+ 0xe8, 0x8f, 0x92, 0x9b,
+ 0x11, 0x90, 0xf8, 0x25, 0xee, 0x4a, 0xc2, 0x52, 0x12, 0xdd, 0x8c, 0xd2,
+ 0xc2, 0xe4, 0x6d, 0xc4,
+ 0xe0, 0x67, 0x90, 0x7a, 0x09, 0xf4, 0xf8, 0x9f, 0xd5, 0xea, 0x40, 0x0b,
+ 0xf8, 0xb7, 0xa8, 0x92,
+ 0x71, 0x29, 0xa8, 0xd0, 0xeb, 0x63, 0x6d, 0x44, 0xac, 0x78, 0xe1, 0x57,
+ 0x6d, 0x60, 0x25, 0x14,
+ 0x31, 0x46, 0xc8, 0x76, 0xed, 0xec, 0xa7, 0xe1, 0x78, 0xbe, 0x16, 0x10,
+ 0xa7, 0x98, 0x55, 0x35,
+ 0x67, 0x1d, 0xb5, 0x33, 0x2f, 0x66, 0xd8, 0xc5, 0x4b, 0x86, 0x6f, 0x1a,
+ 0xd8, 0xc7, 0xdc, 0x80,
+ 0xc8, 0x65, 0xac, 0x4d, 0x7a, 0x9a, 0x15, 0x70, 0x44, 0xe1, 0x1d, 0x18,
+ 0x15, 0xd4, 0x9e, 0xce,
+ 0x4d, 0x2a, 0x8a, 0x1d, 0x40, 0x3a, 0x17, 0x3d, 0x94, 0x97, 0x73, 0xac,
+ 0x17, 0xd3, 0x08, 0x66,
+ 0xfc, 0xb2, 0x82, 0xe4, 0xa1, 0x0b, 0xe7, 0x55, 0x87, 0x66, 0x48, 0x32,
+ 0xe7, 0x78, 0xbd, 0x11,
+ 0xb3, 0xad, 0x0b, 0xe0, 0xfd, 0x03, 0xd2, 0x7f, 0x5d, 0xeb, 0x7a, 0x3b,
+ 0xd2, 0xdc, 0x57, 0xcd,
+ 0x44, 0x05, 0x66, 0x94, 0x3e, 0xeb, 0x8e, 0x8b, 0x48, 0xf2, 0x75, 0xce,
+ 0x8e, 0x16, 0x77, 0x96,
+ 0xc5, 0x20, 0x46, 0xf6, 0x3c, 0x2f, 0xc8, 0xe8, 0x04, 0xb0, 0x99, 0xf3,
+ 0xc8, 0xff, 0xe6, 0x89,
+ 0x14, 0x01, 0x1e, 0xfa, 0xd8, 0x37, 0x97, 0x96, 0xa9, 0xe4, 0xcf, 0xe8,
+ 0x97, 0xd0, 0x1b, 0x2e,
+ 0x2b, 0xcc, 0xdf, 0xc3, 0x61, 0x45, 0xde, 0x12, 0xf8, 0x1c, 0xdd, 0x05,
+ 0xde, 0xce, 0xa5, 0xbb,
+ 0x12, 0x5e, 0x1b, 0xd1, 0xfc, 0x61, 0xf1, 0xaf, 0x7b, 0xca, 0x0c, 0xc4,
+ 0xf1, 0x49, 0xfe, 0x23,
+ 0xb6, 0x3c, 0xed, 0x3f, 0xcb, 0x7e, 0x87, 0xbb, 0xe6, 0xd2, 0x39, 0x01,
+ 0x87, 0xe8, 0x21, 0x27,
+ 0xbc, 0xdd, 0xe2, 0x42, 0xa7, 0x84, 0x2d, 0xf0, 0x53, 0xa0, 0xbf, 0x75,
+ 0x2d, 0x80, 0xcd, 0x30,
+ 0x8d, 0x9b, 0x2a, 0x34, 0x4a, 0x68, 0x8a, 0x11, 0x2b, 0x1e, 0xa9, 0x65,
+ 0x8a, 0x18, 0x98, 0x05,
+ 0x90, 0xb5, 0xd8, 0x47, 0xec, 0x8e, 0x84, 0x31, 0x5e, 0x9f, 0x60, 0xef,
+ 0x84, 0x0d, 0xfc, 0xdb,
+ 0x77, 0x76, 0xad, 0xfb, 0xcf, 0x35, 0x0b, 0x7d, 0x7e, 0x56, 0x22, 0x7b,
+ 0x0b, 0xf9, 0xc0, 0x19,
+ 0x94, 0xdf, 0xde, 0x75, 0xd4, 0xea, 0xc0, 0x1f, 0xc2, 0xab, 0xe2, 0x66,
+ 0xc0, 0xe3, 0xfb, 0x6c,
+ 0xe7, 0xc3, 0x75, 0xbc, 0x23, 0xbb, 0x8f, 0x4c, 0x20, 0xc9, 0x42, 0x94,
+ 0x8f, 0xf4, 0x3c, 0xc2,
+ 0x5b, 0x1e, 0x97, 0xfe, 0x84, 0x3f, 0xa2, 0xbc, 0x73, 0x69, 0xfd, 0xe1,
+ 0xa2, 0x74, 0xf1, 0xf2,
+ 0x64, 0xd3, 0x56, 0xc7, 0x3d, 0x4d, 0xeb, 0x38, 0x22, 0x91, 0xef, 0x0c,
+ 0xeb, 0x6a, 0x4f, 0x67,
+ 0x0a, 0xe1, 0x0f, 0x7d, 0x6c, 0xfa, 0xaa, 0x4b, 0xb5, 0x72, 0x86, 0x74,
+ 0xaa, 0x68, 0xec, 0x17,
+ 0xab, 0x12, 0x1f, 0x4c, 0x6d, 0x98, 0x89, 0x9b, 0x93, 0x53, 0xf0, 0x8b,
+ 0x89, 0xfd, 0x45, 0xf9,
+ 0x03, 0xce, 0xe3, 0xf4, 0x12, 0x2b, 0x33, 0xfd, 0x69, 0x17, 0x80, 0x16,
+ 0x33, 0xad, 0x93, 0xe7,
+ 0x80, 0xde, 0xc0, 0x8f, 0x0c, 0xdd, 0x57, 0x89, 0x6b, 0x4f, 0x2d, 0x8e,
+ 0x57, 0x33, 0xe0, 0x42,
+ 0x83, 0x10, 0x23, 0x7b, 0x1e, 0xf6, 0x64, 0x74, 0x02, 0x58, 0xad, 0x98,
+ 0x64, 0x9e, 0x73, 0xa5,
+ 0xa6, 0x57, 0xf5, 0xf7, 0x2b, 0x2d, 0x54, 0x03, 0xd3, 0x02, 0x74, 0x60,
+ 0x54, 0xd6, 0x3d, 0xbe,
+ 0x09, 0x2f, 0xec, 0x89, 0x7e, 0xd1, 0x99, 0xb6, 0xdc, 0x65, 0x06, 0x62,
+ 0x99, 0xc5, 0x7f, 0xf0,
+ 0xac, 0xb6, 0xfa, 0x8a, 0x47, 0xd7, 0xfe, 0x48, 0x66, 0x70, 0xf2, 0x14,
+ 0xfe, 0xbe, 0xd1, 0xa9,
+ 0x2c, 0x68, 0x3a, 0x05, 0x4b, 0x0a, 0xa9, 0xc1, 0x0d, 0x3f, 0xdf, 0x9a,
+ 0xa9, 0x8d, 0x31, 0xeb,
+ 0x7e, 0x59, 0x41, 0x72, 0xb1, 0xe4, 0x92, 0xcb, 0xa2, 0x33, 0x24, 0x19,
+ 0x92, 0x3c, 0xbf, 0xe9,
+ 0x2f, 0xa6, 0xd9, 0xf1, 0x59, 0x21, 0x9a, 0x3c, 0x64, 0x28, 0x5f, 0x8c,
+ 0x9a, 0x20, 0xa2, 0x0c,
+ 0xb5, 0xf2, 0x0e, 0xcb, 0xd9, 0x55, 0xb4, 0x46, 0x8f, 0xc5, 0xb9, 0x17,
+ 0xb4, 0x45, 0xb2, 0xc0,
+ 0x3b, 0xa7, 0xc7, 0x0b, 0x81, 0x16, 0x0d, 0xaa, 0xcd, 0xcc, 0x90, 0x64,
+ 0x0d, 0xf0, 0xb9, 0x22,
+ 0xbd, 0x26, 0x02, 0xaf, 0xa9, 0x9d, 0x3c, 0x1a, 0x74, 0xad, 0x7e, 0xc6,
+ 0x3c, 0x5a, 0xbc, 0x6d,
+ 0x04, 0x6a, 0x06, 0x32, 0x38, 0x64, 0x44, 0x2e, 0x9c, 0x34, 0x82, 0x89,
+ 0x44, 0xee, 0x07, 0xb7,
+ 0xeb, 0x7d, 0x7f, 0xea, 0x6b, 0x17, 0x43, 0x3e, 0x47, 0x95, 0x07, 0xcc,
+ 0x43, 0x05, 0x35, 0xd8,
+ 0xbb, 0x79, 0x07, 0x84, 0x8d, 0xcb, 0x5a, 0x23, 0xa6, 0x83, 0xbd, 0xea,
+ 0x5a, 0xc3, 0x59, 0x60,
+ },
+ { /* 13 */
+ 0x79, 0x1a, 0x2d, 0x6d, 0xc9, 0x3b, 0x13, 0xe1, 0x79, 0x58, 0x80, 0x80,
+ 0x75, 0x80, 0xb7, 0x36,
+ 0x91, 0x58, 0xcb, 0xc6, 0xfe, 0x1f, 0xb1, 0x50, 0x91, 0xd6, 0x1a, 0x1a,
+ 0x1d, 0x1a, 0x89, 0x33,
+ 0x99, 0x09, 0xd2, 0xbc, 0x88, 0x79, 0x33, 0xc2, 0x99, 0xe9, 0xdc, 0xdc,
+ 0x3b, 0xdc, 0x07, 0x9c,
+ 0xb9, 0x8e, 0xb6, 0x97, 0x93, 0x22, 0x7e, 0xcf, 0xb9, 0x15, 0x42, 0x42,
+ 0xa3, 0x42, 0x7a, 0x65,
+ 0x71, 0x4b, 0x34, 0x17, 0xbf, 0x5d, 0x91, 0x73, 0x71, 0x67, 0x46, 0x46,
+ 0x53, 0x46, 0x39, 0x99,
+ 0xea, 0xc7, 0x71, 0x54, 0xcb, 0xdc, 0x63, 0x74, 0xea, 0xf1, 0x4a, 0x4a,
+ 0x80, 0x4a, 0xfc, 0x5e,
+ 0xd7, 0xd9, 0x79, 0x52, 0x0f, 0x62, 0xab, 0xc6, 0xd7, 0x6c, 0x56, 0x56,
+ 0x15, 0x56, 0xf6, 0xef,
+ 0x95, 0x91, 0x26, 0xfb, 0xc5, 0x2c, 0xf0, 0x19, 0x95, 0x28, 0x79, 0x79,
+ 0x0e, 0x79, 0xce, 0x85,
+ 0x55, 0x05, 0xbd, 0x01, 0x9f, 0x35, 0x9d, 0x37, 0x55, 0x65, 0xbb, 0xbb,
+ 0xd8, 0xbb, 0x03, 0xd6,
+ 0xda, 0xe2, 0x27, 0x8b, 0x3c, 0x4b, 0xe9, 0x9e, 0xda, 0x73, 0x9b, 0x9b,
+ 0x54, 0x9b, 0x5e, 0x3a,
+ 0xdb, 0x41, 0x8d, 0x15, 0x42, 0x37, 0x68, 0x1d, 0xdb, 0xad, 0xf3, 0xf3,
+ 0x20, 0xf3, 0x3f, 0xf6,
+ 0xb5, 0x16, 0x42, 0xd0, 0xde, 0x77, 0xbd, 0x14, 0xb5, 0xd4, 0xe7, 0xe7,
+ 0x96, 0xe7, 0xb3, 0x7c,
+ 0x3f, 0x9b, 0x9f, 0xf9, 0x38, 0x46, 0x09, 0x77, 0x3f, 0xe2, 0xcc, 0xcc,
+ 0x7d, 0xcc, 0xc8, 0xea,
+ 0x54, 0xa6, 0x17, 0x9f, 0xe1, 0x49, 0x1c, 0xb4, 0x54, 0xbb, 0xd3, 0xd3,
+ 0xac, 0xd3, 0x62, 0x1a,
+ 0x7d, 0xd3, 0xc0, 0x50, 0xf2, 0x08, 0x52, 0xa8, 0x7d, 0xa6, 0xe3, 0xe3,
+ 0x66, 0xe3, 0xf0, 0x80,
+ 0xd5, 0x5c, 0xee, 0xad, 0xf3, 0x9a, 0x6a, 0x03, 0xd5, 0x13, 0x86, 0x86,
+ 0xfd, 0x86, 0x34, 0xb4,
+ 0xbd, 0x47, 0x5b, 0xaa, 0xa8, 0x11, 0x3f, 0x86, 0xbd, 0xeb, 0x21, 0x21,
+ 0xb0, 0x21, 0x3d, 0xd3,
+ 0xa9, 0x2c, 0x84, 0x63, 0x7f, 0xee, 0xb9, 0x28, 0xa9, 0x6b, 0x0d, 0x0d,
+ 0xef, 0x0d, 0xa5, 0xf8,
+ 0xfe, 0xac, 0xae, 0x9d, 0x1c, 0x23, 0xe5, 0xda, 0xfe, 0x71, 0x66, 0x66,
+ 0xdf, 0x66, 0x64, 0x75,
+ 0x3b, 0x52, 0x72, 0xc4, 0x03, 0x75, 0x48, 0x3e, 0x3b, 0x1c, 0xaf, 0xaf,
+ 0x6e, 0xaf, 0x8f, 0x5c,
+ 0x1d, 0x99, 0x6c, 0x2d, 0xdf, 0xe5, 0x85, 0xbf, 0x1d, 0x61, 0x82, 0x82,
+ 0x0d, 0x82, 0x77, 0x48,
+ 0x36, 0x69, 0x2c, 0x1d, 0x30, 0x5c, 0x0a, 0x66, 0x36, 0x03, 0x62, 0x62,
+ 0x2f, 0x62, 0x27, 0x89,
+ 0x38, 0x74, 0x4f, 0xa5, 0x81, 0xf1, 0x08, 0x78, 0x38, 0xbd, 0x17, 0x17,
+ 0xf2, 0x17, 0x2c, 0xcb,
+ 0x07, 0xef, 0xd0, 0x5c, 0xb9, 0xb7, 0x01, 0x0f, 0x07, 0x5f, 0xdb, 0xdb,
+ 0x8f, 0xdb, 0xe4, 0x21,
+ 0x1b, 0xd5, 0x16, 0xef, 0x18, 0x2e, 0x05, 0x33, 0x1b, 0xe0, 0x31, 0x31,
+ 0xf6, 0x31, 0xf2, 0xa5,
+ 0xfb, 0xc6, 0xe9, 0x3e, 0x59, 0x6c, 0x25, 0x10, 0xfb, 0x51, 0x6d, 0x6d,
+ 0xb8, 0x6d, 0x42, 0x0f,
+ 0x70, 0xe8, 0x9e, 0x89, 0xc1, 0x21, 0x10, 0xf0, 0x70, 0xb9, 0x2e, 0x2e,
+ 0x27, 0x2e, 0x58, 0x55,
+ 0x89, 0xab, 0xe0, 0x48, 0x64, 0xb5, 0xf4, 0x25, 0x89, 0x97, 0x93, 0x93,
+ 0x77, 0x93, 0xd8, 0x01,
+ 0x4a, 0x19, 0x46, 0xd3, 0xbc, 0x28, 0xd9, 0x4d, 0x4a, 0x7b, 0xe9, 0xe9,
+ 0x3d, 0xe9, 0xb6, 0xc5,
+ 0xae, 0xc3, 0x54, 0x3f, 0xc6, 0x59, 0xb8, 0x27, 0xae, 0x34, 0xd6, 0xd6,
+ 0x60, 0xd6, 0x41, 0xd9,
+ 0x3d, 0x1e, 0x08, 0x06, 0xc4, 0xbe, 0xc8, 0xb2, 0x3d, 0x9d, 0x1c, 0x1c,
+ 0x95, 0x1c, 0x0a, 0xb1,
+ 0x29, 0x75, 0xd7, 0xcf, 0x13, 0x41, 0x4e, 0x1c, 0x29, 0x1d, 0x30, 0x30,
+ 0xca, 0x30, 0x92, 0x9a,
+ 0x8a, 0x8d, 0xdd, 0x29, 0xe6, 0x31, 0xb4, 0x63, 0x8a, 0x36, 0x2b, 0x2b,
+ 0xeb, 0x2b, 0x7b, 0x96,
+ 0xcd, 0xaf, 0xc5, 0x23, 0x69, 0x30, 0x2f, 0x76, 0xcd, 0x52, 0x0f, 0x0f,
+ 0x97, 0x0f, 0x65, 0x86,
+ 0x41, 0x6e, 0x62, 0xc8, 0x48, 0xca, 0x1b, 0x99, 0x41, 0xe5, 0x97, 0x97,
+ 0x87, 0x97, 0x9b, 0xfd,
+ 0xce, 0x89, 0xf8, 0x42, 0xeb, 0xb4, 0x6f, 0x30, 0xce, 0xf3, 0xb7, 0xb7,
+ 0x0b, 0xb7, 0xc6, 0x11,
+ 0x16, 0xee, 0x48, 0x36, 0x2b, 0x07, 0x47, 0x6b, 0x16, 0xff, 0xfc, 0xfc,
+ 0xb7, 0xfc, 0x5a, 0x70,
+ 0x6c, 0xd2, 0x58, 0x3a, 0x60, 0xb8, 0x14, 0xcc, 0x6c, 0x06, 0xc4, 0xc4,
+ 0x5e, 0xc4, 0x4e, 0xd1,
+ 0x1f, 0x1c, 0xfb, 0xd2, 0x23, 0x1d, 0x44, 0x7a, 0x1f, 0x1e, 0x52, 0x52,
+ 0xe5, 0x52, 0xb5, 0x13,
+ 0xe0, 0x13, 0xff, 0xd1, 0x41, 0x42, 0x20, 0x23, 0xe0, 0xb1, 0x5c, 0x5c,
+ 0x4e, 0x5c, 0xb0, 0xaa,
+ 0xf5, 0xdb, 0x8a, 0x86, 0xe8, 0xc1, 0x27, 0x0e, 0xf5, 0xef, 0x18, 0x18,
+ 0x65, 0x18, 0x49, 0x4d,
+ 0xb0, 0x7c, 0x05, 0x73, 0x9b, 0x38, 0x7d, 0xde, 0xb0, 0xf4, 0xec, 0xec,
+ 0xf1, 0xec, 0x95, 0x06,
+ 0xde, 0x2b, 0xca, 0xb6, 0x07, 0x78, 0xa8, 0xd7, 0xde, 0x8d, 0xf8, 0xf8,
+ 0x47, 0xf8, 0x19, 0x8c,
+ 0x03, 0x26, 0x3d, 0x61, 0x82, 0x84, 0x40, 0x46, 0x03, 0xa1, 0xb8, 0xb8,
+ 0x9c, 0xb8, 0xa3, 0x97,
+ 0xd0, 0x36, 0xa9, 0x0e, 0xb6, 0xd5, 0xaa, 0xc9, 0xd0, 0x33, 0x8d, 0x8d,
+ 0x9a, 0x8d, 0x12, 0xce,
+ 0x8e, 0x44, 0x30, 0x14, 0xdd, 0x02, 0xf5, 0x2a, 0x8e, 0xc8, 0x48, 0x48,
+ 0xf8, 0x48, 0x3c, 0x20,
+ 0x23, 0xa1, 0x59, 0x4a, 0x99, 0xdf, 0x0d, 0x4b, 0x23, 0x5d, 0x26, 0x26,
+ 0x04, 0x26, 0xde, 0x6e,
+ 0x0a, 0xd4, 0x8e, 0x85, 0x8a, 0x9e, 0x43, 0x57, 0x0a, 0x40, 0x16, 0x16,
+ 0xce, 0x16, 0x4c, 0xf4,
+ 0xf3, 0x97, 0xf0, 0x44, 0x2f, 0x0a, 0xa7, 0x82, 0xf3, 0x6e, 0xab, 0xab,
+ 0x9e, 0xab, 0xcc, 0xa0,
+ 0x06, 0x4c, 0x7a, 0xc2, 0xc7, 0xcb, 0x80, 0x8c, 0x06, 0x81, 0xb3, 0xb3,
+ 0xfb, 0xb3, 0x85, 0xed,
+ 0xdf, 0x88, 0x60, 0x28, 0x79, 0x04, 0x29, 0x54, 0xdf, 0x53, 0x90, 0x90,
+ 0x33, 0x90, 0x78, 0x40,
+ 0x4d, 0xf6, 0x96, 0x8f, 0x05, 0x9f, 0xd8, 0x42, 0x4d, 0x24, 0x32, 0x32,
+ 0xb2, 0x32, 0x52, 0xe4,
+ 0x98, 0xaa, 0x78, 0x22, 0xf6, 0x05, 0xb2, 0x41, 0x98, 0x37, 0xb4, 0xb4,
+ 0x4f, 0xb4, 0x66, 0x50,
+ 0x97, 0x14, 0xb1, 0x04, 0x39, 0xd4, 0x31, 0xdc, 0x97, 0x57, 0xa9, 0xa9,
+ 0xe6, 0xa9, 0x0c, 0xde,
+ 0xad, 0xe5, 0x69, 0x5e, 0x44, 0xdd, 0xf8, 0x61, 0xad, 0x95, 0x6e, 0x6e,
+ 0xfc, 0x6e, 0xe2, 0x4e,
+ 0x15, 0xc8, 0x75, 0x57, 0xa9, 0x83, 0x07, 0x2d, 0x15, 0x5e, 0x44, 0x44,
+ 0x2b, 0x44, 0xf9, 0xe7,
+ 0xa2, 0x5b, 0xa0, 0x78, 0x8b, 0x0c, 0x7b, 0xfc, 0xa2, 0xf5, 0x73, 0x73,
+ 0x55, 0x73, 0x88, 0xc0,
+ 0xab, 0xa9, 0x13, 0x9c, 0x83, 0x16, 0x78, 0xed, 0xab, 0x14, 0xdd, 0xdd,
+ 0x07, 0xdd, 0x67, 0xa3,
+ 0xc0, 0x94, 0x9b, 0xfa, 0x5a, 0x19, 0x6d, 0x2e, 0xc0, 0x4d, 0xc2, 0xc2,
+ 0xd6, 0xc2, 0xcd, 0x53,
+ 0xb6, 0x30, 0x7f, 0xb1, 0x5c, 0xf3, 0xfd, 0x52, 0xb6, 0x75, 0x5f, 0x5f,
+ 0x0a, 0x5f, 0x10, 0xeb,
+ 0x53, 0x49, 0xc7, 0xc3, 0x58, 0xfe, 0x1d, 0xbb, 0x53, 0xe4, 0x08, 0x08,
+ 0x23, 0x08, 0x86, 0x3b,
+ 0xed, 0x28, 0xa1, 0x08, 0x72, 0x6b, 0x62, 0x7b, 0xed, 0xae, 0x91, 0x91,
+ 0x0f, 0x91, 0x18, 0x7f,
+ 0xc1, 0x37, 0x31, 0x64, 0x24, 0x65, 0xec, 0xad, 0xc1, 0x93, 0xaa, 0xaa,
+ 0xa2, 0xaa, 0xac, 0x9f,
+ 0xe1, 0xb0, 0x55, 0x4f, 0x3f, 0x3e, 0xa1, 0xa0, 0xe1, 0x6f, 0x34, 0x34,
+ 0x3a, 0x34, 0xd1, 0x66,
+ 0x62, 0xcf, 0x3b, 0x82, 0xd1, 0x15, 0x16, 0xd2, 0x62, 0xb8, 0xb1, 0xb1,
+ 0x83, 0xb1, 0x45, 0x93,
+ 0x24, 0x4e, 0x89, 0x16, 0x20, 0x68, 0x0c, 0x44, 0x24, 0x02, 0xfd, 0xfd,
+ 0x8b, 0xfd, 0x3a, 0x4f,
+ 0xe9, 0xe1, 0x4c, 0x35, 0x49, 0x58, 0x23, 0x32, 0xe9, 0x50, 0xf2, 0xf2,
+ 0x1c, 0xf2, 0x5f, 0xc9,
+ 0x65, 0x20, 0xeb, 0xde, 0x68, 0xa2, 0x17, 0xdd, 0x65, 0xe7, 0x6a, 0x6a,
+ 0x0c, 0x6a, 0xa1, 0xb2,
+ 0xec, 0x8b, 0x0b, 0x96, 0x0c, 0x17, 0xe3, 0xf8, 0xec, 0x70, 0xf9, 0xf9,
+ 0x7b, 0xf9, 0x79, 0xb3,
+ 0x5d, 0x54, 0xa4, 0x7b, 0xe9, 0x53, 0x1f, 0xa5, 0x5d, 0x5a, 0x7d, 0x7d,
+ 0xfe, 0x7d, 0x8d, 0x79,
+ 0x26, 0xcb, 0x1e, 0xe9, 0xdc, 0x90, 0xcd, 0x81, 0x26, 0x7d, 0x2d, 0x2d,
+ 0x63, 0x2d, 0xf8, 0x14,
+ 0xbe, 0x61, 0x66, 0xcb, 0x2a, 0x95, 0x7f, 0xc0, 0xbe, 0x4a, 0x99, 0x99,
+ 0x2c, 0x99, 0x9e, 0x44,
+ 0x21, 0x24, 0xce, 0xb5, 0x65, 0x27, 0xcc, 0x8e, 0x21, 0x22, 0xf6, 0xf6,
+ 0xec, 0xf6, 0x1c, 0x35,
+ 0x4b, 0xba, 0xec, 0x4d, 0xc2, 0x54, 0x58, 0xce, 0x4b, 0xa5, 0x81, 0x81,
+ 0x49, 0x81, 0xd7, 0x09,
+ 0x48, 0x9c, 0xd1, 0x2c, 0x40, 0xd0, 0x18, 0x88, 0x48, 0x04, 0x39, 0x39,
+ 0xd5, 0x39, 0x74, 0x9e,
+ 0xca, 0x40, 0x15, 0x7f, 0xd0, 0x87, 0x2e, 0x79, 0xca, 0x0d, 0xd4, 0xd4,
+ 0x18, 0xd4, 0x81, 0xa7,
+ 0xf7, 0x5e, 0x1d, 0x79, 0x14, 0x39, 0xe6, 0xcb, 0xf7, 0x90, 0xc8, 0xc8,
+ 0x8d, 0xc8, 0x8b, 0x16,
+ 0x7c, 0x70, 0x6a, 0xce, 0x8c, 0x74, 0xd3, 0x2b, 0x7c, 0x78, 0x8b, 0x8b,
+ 0x12, 0x8b, 0x91, 0x4c,
+ 0xff, 0x0f, 0x04, 0x03, 0x62, 0x5f, 0x64, 0x59, 0xff, 0xaf, 0x0e, 0x0e,
+ 0xab, 0x0e, 0x05, 0xb9,
+ 0x20, 0x87, 0x64, 0x2b, 0x1b, 0x5b, 0x4d, 0x0d, 0x20, 0xfc, 0x9e, 0x9e,
+ 0x98, 0x9e, 0x7d, 0xf9,
+ 0xd1, 0x95, 0x03, 0x90, 0xc8, 0xa9, 0x2b, 0x4a, 0xd1, 0xed, 0xe5, 0xe5,
+ 0xee, 0xe5, 0x73, 0x02,
+ 0x85, 0x33, 0x14, 0x0f, 0x29, 0xe0, 0x37, 0xfe, 0x85, 0x56, 0x36, 0x36,
+ 0x42, 0x36, 0x11, 0x18,
+ 0x58, 0x3e, 0xe3, 0xd8, 0xac, 0x1c, 0xdf, 0x6f, 0x58, 0x7a, 0x76, 0x76,
+ 0x99, 0x76, 0xab, 0x03,
+ 0x49, 0x3f, 0x7b, 0xb2, 0x3e, 0xac, 0x99, 0x0b, 0x49, 0xda, 0x51, 0x51,
+ 0xa1, 0x51, 0x15, 0x52,
+ 0xfa, 0x65, 0x43, 0xa0, 0x27, 0x10, 0xa4, 0x93, 0xfa, 0x8f, 0x05, 0x05,
+ 0xcc, 0x05, 0x23, 0xc3,
+ 0x87, 0xb6, 0x83, 0xf0, 0xd5, 0x18, 0xf6, 0x3b, 0x87, 0x29, 0xe6, 0xe6,
+ 0xaa, 0xe6, 0xd3, 0x43,
+ 0x27, 0x68, 0xb4, 0x77, 0xa2, 0xec, 0x4c, 0x02, 0x27, 0xa3, 0x45, 0x45,
+ 0x17, 0x45, 0x99, 0xd8,
+ 0xe8, 0x42, 0xe6, 0xab, 0x37, 0x24, 0xa2, 0xb1, 0xe8, 0x8e, 0x9a, 0x9a,
+ 0x68, 0x9a, 0x3e, 0x05,
+ 0xf4, 0x78, 0x20, 0x18, 0x96, 0xbd, 0xa6, 0x8d, 0xf4, 0x31, 0x70, 0x70,
+ 0x11, 0x70, 0x28, 0x81,
+ 0x5a, 0xbb, 0x74, 0x27, 0x50, 0xe4, 0x1e, 0xaa, 0x5a, 0x05, 0xa6, 0xa6,
+ 0x71, 0xa6, 0x69, 0x58,
+ 0x66, 0x06, 0xd6, 0xbf, 0xea, 0x26, 0x57, 0x9b, 0x66, 0x46, 0xd2, 0xd2,
+ 0x90, 0xd2, 0x02, 0x25,
+ 0xf0, 0xb1, 0xcd, 0x25, 0xad, 0x8e, 0xe7, 0xc4, 0xf0, 0xcf, 0x13, 0x13,
+ 0x02, 0x13, 0x6f, 0x37,
+ 0xcb, 0xe3, 0xbf, 0xe1, 0xae, 0xfb, 0xaf, 0xfa, 0xcb, 0xd3, 0xbc, 0xbc,
+ 0x6c, 0xbc, 0xe0, 0x6b,
+ 0x0e, 0x1d, 0x63, 0xb8, 0xb1, 0xad, 0x02, 0x1e, 0x0e, 0xbe, 0x75, 0x75,
+ 0xdd, 0x75, 0x0b, 0x42,
+ 0xe2, 0x96, 0x68, 0x2e, 0xbd, 0xba, 0xe1, 0xe6, 0xe2, 0xce, 0x8c, 0x8c,
+ 0xa6, 0x8c, 0x72, 0xf1,
+ 0x57, 0x80, 0x2a, 0xfe, 0x63, 0xcd, 0x5c, 0xf2, 0x57, 0x1a, 0x6b, 0x6b,
+ 0x30, 0x6b, 0xc1, 0x8d,
+ 0xc4, 0x5d, 0x76, 0xc7, 0x61, 0x2a, 0x2c, 0x67, 0xc4, 0xb3, 0xa1, 0xa1,
+ 0xc5, 0xa1, 0x8a, 0xe5,
+ 0x9b, 0x8c, 0x45, 0x43, 0x74, 0x81, 0xf2, 0x07, 0x9b, 0x96, 0x0c, 0x0c,
+ 0xd3, 0x0c, 0xc5, 0xc7,
+ 0xee, 0x0e, 0x9c, 0x69, 0xf0, 0xef, 0x22, 0x3d, 0xee, 0x0f, 0x29, 0x29,
+ 0x93, 0x29, 0xbb, 0xe8,
+ 0x1a, 0x76, 0xbc, 0x71, 0x66, 0x52, 0x84, 0xb0, 0x1a, 0x3e, 0x59, 0x59,
+ 0x82, 0x59, 0x93, 0x69,
+ 0x37, 0xca, 0x86, 0x83, 0x4e, 0x20, 0x8b, 0xe5, 0x37, 0xdd, 0x0a, 0x0a,
+ 0x5b, 0x0a, 0x46, 0x45,
+ 0x2e, 0x9a, 0x07, 0x93, 0xaa, 0xf6, 0x4f, 0x13, 0x2e, 0x42, 0xeb, 0xeb,
+ 0x45, 0xeb, 0x76, 0xbb,
+ 0x69, 0xb8, 0x1f, 0x99, 0x25, 0xf7, 0xd4, 0x06, 0x69, 0x26, 0xcf, 0xcf,
+ 0x39, 0xcf, 0x68, 0xab,
+ 0x8b, 0x2e, 0x77, 0xb7, 0x98, 0x4d, 0x35, 0xe0, 0x8b, 0xe8, 0x43, 0x43,
+ 0x9f, 0x43, 0x1a, 0x5a,
+ 0xaf, 0x60, 0xfe, 0xa1, 0xb8, 0x25, 0x39, 0xa4, 0xaf, 0xea, 0xbe, 0xbe,
+ 0x14, 0xbe, 0x20, 0x15,
+ 0xc2, 0x11, 0x0c, 0x05, 0xa6, 0xe1, 0xac, 0xeb, 0xc2, 0x32, 0x12, 0x12,
+ 0x3e, 0x12, 0x0f, 0x08,
+ 0x7f, 0x56, 0x57, 0xaf, 0x0e, 0xf0, 0x93, 0x6d, 0x7f, 0xd9, 0x33, 0x33,
+ 0x8e, 0x33, 0x32, 0xdb,
+ 0x64, 0x83, 0x41, 0x40, 0x16, 0xde, 0x96, 0x5e, 0x64, 0x39, 0x02, 0x02,
+ 0x78, 0x02, 0xc0, 0x7e,
+ 0x45, 0xa7, 0x8f, 0xf5, 0x73, 0xf9, 0x5a, 0xd0, 0x45, 0x1b, 0xf4, 0xf4,
+ 0x94, 0xf4, 0xdc, 0x4b,
+ 0x14, 0x6b, 0xdf, 0xc9, 0xd7, 0xff, 0x86, 0xae, 0x14, 0x80, 0x2c, 0x2c,
+ 0x5f, 0x2c, 0x98, 0x2b,
+ 0xfd, 0x8a, 0x93, 0xfc, 0x9e, 0xa7, 0xa5, 0x9c, 0xfd, 0xd0, 0xde, 0xde,
+ 0x43, 0xde, 0xc7, 0xe2,
+ 0xac, 0x46, 0xc3, 0xc0, 0x3a, 0xa1, 0x79, 0xe2, 0xac, 0x4b, 0x06, 0x06,
+ 0x88, 0x06, 0x83, 0x82,
+ 0x86, 0x15, 0x29, 0x6e, 0xab, 0x64, 0x77, 0xb8, 0x86, 0xf7, 0x8e, 0x8e,
+ 0xde, 0x8e, 0xb2, 0x8f,
+ 0x76, 0xa4, 0xe4, 0x4b, 0x06, 0xea, 0x90, 0x7c, 0x76, 0x38, 0x9d, 0x9d,
+ 0xdc, 0x9d, 0xdd, 0xb8,
+ 0x43, 0xeb, 0xf5, 0x37, 0xb4, 0x32, 0xda, 0x5c, 0x43, 0x9a, 0x47, 0x47,
+ 0x6f, 0x47, 0x59, 0xa6,
+ 0x50, 0x6f, 0xfa, 0xa2, 0xda, 0x7a, 0x5d, 0xfd, 0x50, 0x45, 0xb0, 0xb0,
+ 0xbf, 0xb0, 0x25, 0xac,
+ 0x28, 0xd6, 0x7d, 0x51, 0x6d, 0x3d, 0xcf, 0x9f, 0x28, 0xc3, 0x58, 0x58,
+ 0xbe, 0x58, 0xf3, 0x56,
+ 0xaa, 0x0a, 0xb9, 0x02, 0xfd, 0x6a, 0xf9, 0x6e, 0xaa, 0xca, 0xb5, 0xb5,
+ 0x73, 0xb5, 0x06, 0x6f,
+ 0x5e, 0x72, 0x99, 0x1a, 0x6b, 0xd7, 0x5f, 0xe3, 0x5e, 0xfb, 0xc5, 0xc5,
+ 0x62, 0xc5, 0x2e, 0xee,
+ 0xdd, 0x0d, 0xf7, 0xd7, 0x85, 0xfc, 0xe8, 0x91, 0xdd, 0x2c, 0x40, 0x40,
+ 0xdb, 0x40, 0xba, 0x1b,
+ 0xbb, 0x0b, 0x21, 0x68, 0x6f, 0xda, 0xbf, 0x0a, 0xbb, 0x6a, 0x92, 0x92,
+ 0x4b, 0x92, 0xb8, 0x3e,
+ 0x96, 0xb7, 0x1b, 0x9a, 0x47, 0xa8, 0xb0, 0x5f, 0x96, 0x89, 0xc1, 0xc1,
+ 0x92, 0xc1, 0x6d, 0x12,
+ 0x05, 0x6a, 0x47, 0xa3, 0x45, 0x4f, 0xc0, 0xca, 0x05, 0x20, 0x0b, 0x0b,
+ 0x67, 0x0b, 0x26, 0x7a,
+ 0x7b, 0x9f, 0xba, 0x92, 0x35, 0xc3, 0xd2, 0x24, 0x7b, 0x27, 0x50, 0x50,
+ 0x9d, 0x50, 0x75, 0x6d,
+ 0xf6, 0xfd, 0xb7, 0xe7, 0x6a, 0x45, 0x67, 0x48, 0xf6, 0x4e, 0xa0, 0xa0,
+ 0xf9, 0xa0, 0xea, 0xda,
+ 0x2b, 0xf0, 0x40, 0x30, 0xef, 0xb9, 0x8f, 0xd9, 0x2b, 0x62, 0xe0, 0xe0,
+ 0x22, 0xe0, 0x50, 0xc1,
+ 0x09, 0xf2, 0xb3, 0xe4, 0x08, 0x1a, 0x03, 0x11, 0x09, 0xe1, 0xae, 0xae,
+ 0x52, 0xae, 0xef, 0x63,
+ 0xc7, 0x7b, 0x4b, 0xa6, 0xe3, 0xae, 0x6c, 0x21, 0xc7, 0x12, 0x19, 0x19,
+ 0x59, 0x19, 0x29, 0x72,
+ 0x46, 0x81, 0xb2, 0x94, 0xf1, 0x7d, 0x1a, 0x96, 0x46, 0xba, 0x4c, 0x4c,
+ 0x08, 0x4c, 0x7f, 0xdc,
+ 0x0d, 0x3b, 0x5e, 0xd9, 0x33, 0x29, 0x42, 0x58, 0x0d, 0x1f, 0xcd, 0xcd,
+ 0x41, 0xcd, 0xa8, 0xd5,
+ 0x13, 0x84, 0x0f, 0x95, 0x6e, 0x48, 0x87, 0xa1, 0x13, 0xdf, 0xf7, 0xf7,
+ 0xd0, 0xf7, 0x7c, 0x0a,
+ 0x61, 0xe9, 0x06, 0xe3, 0x53, 0x91, 0x56, 0x94, 0x61, 0x19, 0x09, 0x09,
+ 0x1f, 0x09, 0xe6, 0x04,
+ 0x01, 0xa3, 0xaa, 0x9e, 0x7e, 0x7c, 0x81, 0x83, 0x01, 0xde, 0x68, 0x68,
+ 0x74, 0x68, 0x61, 0xcc,
+ 0xef, 0xad, 0x36, 0xf7, 0x8e, 0x93, 0xa3, 0xbe, 0xef, 0xd1, 0x41, 0x41,
+ 0xe7, 0x41, 0xda, 0x24,
+ 0x8d, 0x62, 0x0d, 0x75, 0x5f, 0x86, 0xb5, 0x6c, 0x8d, 0x69, 0xf0, 0xf0,
+ 0x64, 0xf0, 0x9f, 0xb7,
+ 0xd3, 0x10, 0x94, 0x6f, 0x34, 0x51, 0xea, 0x8f, 0xd3, 0x92, 0x35, 0x35,
+ 0x06, 0x35, 0xb1, 0x59,
+ 0xbc, 0xe4, 0xf1, 0x34, 0xd6, 0x6d, 0xbe, 0x05, 0xbc, 0x35, 0x49, 0x49,
+ 0xc4, 0x49, 0x5c, 0x1f,
+ 0xf1, 0x12, 0x67, 0xbb, 0xd3, 0xf2, 0x66, 0x47, 0xf1, 0x11, 0x7b, 0x7b,
+ 0x76, 0x7b, 0x0e, 0xfb,
+ 0x32, 0xa0, 0xc1, 0x20, 0x0b, 0x6f, 0x4b, 0x2f, 0x32, 0xfd, 0x01, 0x01,
+ 0x3c, 0x01, 0x60, 0x3f,
+ 0x5c, 0xf7, 0x0e, 0xe5, 0x97, 0x2f, 0x9e, 0x26, 0x5c, 0x84, 0x15, 0x15,
+ 0x8a, 0x15, 0xec, 0xb5,
+ 0x02, 0x85, 0x97, 0xff, 0xfc, 0xf8, 0xc1, 0xc5, 0x02, 0x7f, 0xd0, 0xd0,
+ 0xe8, 0xd0, 0xc2, 0x5b,
+ 0xb1, 0xdf, 0xaf, 0xed, 0xe5, 0x44, 0xfc, 0x5d, 0xb1, 0x2a, 0x84, 0x84,
+ 0x85, 0x84, 0xf4, 0xca,
+ 0x56, 0x23, 0x80, 0x60, 0x1d, 0xb1, 0xdd, 0x71, 0x56, 0xc4, 0x03, 0x03,
+ 0x44, 0x03, 0xa0, 0x41,
+ 0x51, 0xcc, 0x50, 0x3c, 0xa4, 0x06, 0xdc, 0x7e, 0x51, 0x9b, 0xd8, 0xd8,
+ 0xcb, 0xd8, 0x44, 0x60,
+ 0xc9, 0x66, 0x28, 0x1e, 0x52, 0x03, 0x6e, 0x3f, 0xc9, 0xac, 0x6c, 0x6c,
+ 0x84, 0x6c, 0x22, 0x30,
+ 0xd6, 0x7a, 0xd3, 0xcc, 0x71, 0x1e, 0x2a, 0x45, 0xd6, 0xb2, 0x3e, 0x3e,
+ 0x61, 0x3e, 0x97, 0x23,
+ 0x4e, 0xd0, 0xab, 0xee, 0x87, 0x1b, 0x98, 0x04, 0x4e, 0x85, 0x8a, 0x8a,
+ 0x2e, 0x8a, 0xf1, 0x73,
+ 0xc8, 0xc5, 0x82, 0x80, 0x2c, 0x7f, 0xef, 0xbc, 0xc8, 0x72, 0x04, 0x04,
+ 0xf0, 0x04, 0x43, 0xfc,
+ 0xa0, 0xde, 0x37, 0x87, 0x77, 0xf4, 0xba, 0x39, 0xa0, 0x8a, 0xa3, 0xa3,
+ 0xbd, 0xa3, 0x4a, 0x9b,
+ 0x31, 0x86, 0xfc, 0x41, 0x89, 0xeb, 0x0b, 0x69, 0x31, 0x5c, 0xb9, 0xb9,
+ 0xa0, 0xb9, 0xc3, 0xa8,
+ 0x22, 0x02, 0xf3, 0xd4, 0xe7, 0xa3, 0x8c, 0xc8, 0x22, 0x83, 0x4e, 0x4e,
+ 0x70, 0x4e, 0xbf, 0xa2,
+ 0xa5, 0xb4, 0x70, 0x24, 0x32, 0xbb, 0x7a, 0xf3, 0xa5, 0xaa, 0xa8, 0xa8,
+ 0xda, 0xa8, 0x6c, 0xe1,
+ 0x17, 0x4d, 0xe2, 0xa8, 0x55, 0x7b, 0xc6, 0xe8, 0x17, 0x21, 0x94, 0x94,
+ 0xc3, 0x94, 0x3b, 0xbc,
+ 0x33, 0x03, 0x6b, 0xbe, 0x75, 0x13, 0xca, 0xac, 0x33, 0x23, 0x69, 0x69,
+ 0x48, 0x69, 0x01, 0xf3,
+ 0x94, 0x32, 0x8c, 0x65, 0xbb, 0x50, 0x71, 0x9a, 0x94, 0xf6, 0x11, 0x11,
+ 0x7a, 0x11, 0xaf, 0x49,
+ 0xeb, 0x64, 0xdb, 0xca, 0xb5, 0xa0, 0xe2, 0xf7, 0xeb, 0x2f, 0x22, 0x22,
+ 0xf4, 0x22, 0x9d, 0x92,
+ 0x84, 0x90, 0xbe, 0x91, 0x57, 0x9c, 0xb6, 0x7d, 0x84, 0x88, 0x5e, 0x5e,
+ 0x36, 0x5e, 0x70, 0xd4,
+ 0x08, 0x51, 0x19, 0x7a, 0x76, 0x66, 0x82, 0x92, 0x08, 0x3f, 0xc6, 0xc6,
+ 0x26, 0xc6, 0x8e, 0xaf,
+ 0x25, 0xed, 0x23, 0x88, 0x5e, 0x14, 0x8d, 0xc7, 0x25, 0xdc, 0x95, 0x95,
+ 0xff, 0x95, 0x5b, 0x83,
+ 0xf9, 0x43, 0x7e, 0xc1, 0xa5, 0x94, 0xe4, 0xd5, 0xf9, 0x2e, 0xbd, 0xbd,
+ 0x50, 0xbd, 0x80, 0x54,
+ 0x39, 0xd7, 0xe5, 0x3b, 0xff, 0x8d, 0x89, 0xfb, 0x39, 0x63, 0x7f, 0x7f,
+ 0x86, 0x7f, 0x4d, 0x07,
+ 0x60, 0x4a, 0xac, 0x7d, 0x2d, 0xed, 0xd7, 0x17, 0x60, 0xc7, 0x61, 0x61,
+ 0x6b, 0x61, 0x87, 0xc8,
+ 0xb2, 0xf9, 0x92, 0x8c, 0x67, 0xc0, 0xbc, 0x1b, 0xb2, 0x8b, 0x3c, 0x3c,
+ 0x19, 0x3c, 0x57, 0x5d,
+ 0xd4, 0xff, 0x44, 0x33, 0x8d, 0xe6, 0xeb, 0x80, 0xd4, 0xcd, 0xee, 0xee,
+ 0x89, 0xee, 0x55, 0x78,
+ 0x6f, 0xf4, 0x65, 0x5b, 0xe2, 0x3c, 0x54, 0x8a, 0x6f, 0xa7, 0x7c, 0x7c,
+ 0xc2, 0x7c, 0xed, 0x46,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x6d, 0x71, 0xf2, 0xa4, 0x1e, 0xc4, 0x95, 0x4f, 0x6d, 0xd8, 0xac, 0xac,
+ 0x2a, 0xac, 0x2f, 0x1d,
+ 0xa1, 0x7d, 0x9d, 0x19, 0x09, 0x88, 0x3b, 0xba, 0xa1, 0x54, 0xcb, 0xcb,
+ 0xc9, 0xcb, 0x2b, 0x57,
+ 0x12, 0x27, 0xa5, 0x0b, 0x10, 0x34, 0x06, 0x22, 0x12, 0x01, 0x9f, 0x9f,
+ 0xa4, 0x9f, 0x1d, 0xc6,
+ 0xd8, 0x67, 0xb0, 0x74, 0xc0, 0xb3, 0x28, 0x5b, 0xd8, 0x0c, 0x4b, 0x4b,
+ 0xbc, 0x4b, 0x9c, 0x61,
+ 0xa3, 0xf8, 0x0a, 0xe6, 0xf5, 0x70, 0xfa, 0x7f, 0xa3, 0x2b, 0x1b, 0x1b,
+ 0x21, 0x1b, 0xe9, 0x0c,
+ 0xa4, 0x17, 0xda, 0xba, 0x4c, 0xc7, 0xfb, 0x70, 0xa4, 0x74, 0xc0, 0xc0,
+ 0xae, 0xc0, 0x0d, 0x2d,
+ 0xcf, 0x2a, 0x52, 0xdc, 0x95, 0xc8, 0xee, 0xb3, 0xcf, 0x2d, 0xdf, 0xdf,
+ 0x7f, 0xdf, 0xa7, 0xdd,
+ 0x9a, 0x2f, 0xef, 0xdd, 0x0a, 0xfd, 0x73, 0x84, 0x9a, 0x48, 0x64, 0x64,
+ 0xa7, 0x64, 0xa4, 0x0b,
+ 0xcc, 0x0c, 0x6f, 0xbd, 0x17, 0x4c, 0xae, 0xf5, 0xcc, 0x8c, 0x67, 0x67,
+ 0xe3, 0x67, 0x04, 0x4a,
+ 0x52, 0xea, 0x6d, 0x5d, 0x26, 0x82, 0x9c, 0x38, 0x52, 0x3a, 0x60, 0x60,
+ 0x57, 0x60, 0xe7, 0xf7,
+ 0x1c, 0x3a, 0xc6, 0xb3, 0xa1, 0x99, 0x04, 0x3c, 0x1c, 0xbf, 0xea, 0xea,
+ 0x79, 0xea, 0x16, 0x84,
+ 0x2f, 0x39, 0xad, 0x0d, 0xd4, 0x8a, 0xce, 0x90, 0x2f, 0x9c, 0x83, 0x83,
+ 0x31, 0x83, 0x17, 0x77,
+ 0x7e, 0xf5, 0xfd, 0x31, 0x70, 0x8c, 0x12, 0xee, 0x7e, 0x07, 0x5b, 0x5b,
+ 0xfa, 0x5b, 0x53, 0x17,
+ 0x93, 0xdd, 0x5c, 0x39, 0x02, 0xe7, 0x70, 0x95, 0x93, 0xa9, 0xca, 0xca,
+ 0xf5, 0xca, 0x4b, 0x68,
+ 0x42, 0x48, 0x5f, 0xa9, 0xca, 0x4e, 0x5b, 0xdf, 0x42, 0x44, 0x2f, 0x2f,
+ 0x1b, 0x2f, 0x38, 0x6a,
+ 0xb3, 0x5a, 0x38, 0x12, 0x19, 0xbc, 0x3d, 0x98, 0xb3, 0x55, 0x54, 0x54,
+ 0x6d, 0x54, 0x36, 0x91,
+ 0x18, 0xf3, 0x2b, 0x8e, 0x9a, 0xaa, 0x45, 0x75, 0x18, 0x41, 0x89, 0x89,
+ 0x6a, 0x89, 0x51, 0x32,
+ 0xb8, 0x2d, 0x1c, 0x09, 0xed, 0x5e, 0xff, 0x4c, 0xb8, 0xcb, 0x2a, 0x2a,
+ 0xd7, 0x2a, 0x1b, 0xa9,
+ 0xfc, 0x29, 0x39, 0x62, 0xe0, 0xdb, 0x24, 0x1f, 0xfc, 0x0e, 0xb6, 0xb6,
+ 0x37, 0xb6, 0xa6, 0x2e,
+ 0x44, 0x04, 0x25, 0x6b, 0x0d, 0x85, 0xdb, 0x53, 0x44, 0xc5, 0x9c, 0x9c,
+ 0xe0, 0x9c, 0xbd, 0x87,
+ 0xe6, 0x5f, 0x85, 0x13, 0x86, 0x89, 0xa0, 0xaf, 0xe6, 0x30, 0xef, 0xef,
+ 0xb5, 0xef, 0x35, 0x47,
+ 0x8c, 0xc1, 0xa7, 0xeb, 0x21, 0xfa, 0x34, 0xef, 0x8c, 0xb7, 0x98, 0x98,
+ 0x10, 0x98, 0xfe, 0x7b,
+ 0xc6, 0xd8, 0xe1, 0x38, 0x9d, 0xd2, 0xed, 0xa2, 0xc6, 0xcc, 0x71, 0x71,
+ 0x2d, 0x71, 0x48, 0xbe,
+ 0x63, 0x6c, 0x91, 0x1c, 0xaf, 0x69, 0x97, 0x51, 0x63, 0x66, 0xd9, 0xd9,
+ 0xf7, 0xd9, 0x24, 0x5f,
+ 0xbf, 0xc2, 0xcc, 0x55, 0x54, 0xe9, 0xfe, 0x43, 0xbf, 0x94, 0xf1, 0xf1,
+ 0x58, 0xf1, 0xff, 0x88,
+ 0xf2, 0x34, 0x5a, 0xda, 0x51, 0x76, 0x26, 0x01, 0xf2, 0xb0, 0xc3, 0xc3,
+ 0xea, 0xc3, 0xad, 0x6c,
+ 0x2c, 0x1f, 0x90, 0x6c, 0x56, 0x0e, 0x8e, 0xd6, 0x2c, 0x3d, 0x3b, 0x3b,
+ 0xad, 0x3b, 0xb4, 0xe0,
+ 0x11, 0x01, 0x98, 0x6a, 0x92, 0xb0, 0x46, 0x64, 0x11, 0xa0, 0x27, 0x27,
+ 0x38, 0x27, 0xbe, 0x51,
+ 0x73, 0xce, 0xa3, 0xe8, 0x43, 0xa5, 0x50, 0xb6, 0x73, 0x18, 0x96, 0x96,
+ 0xbb, 0x96, 0xfb, 0xc2,
+ 0xdc, 0xae, 0x5d, 0x49, 0xfb, 0x80, 0x69, 0x12, 0xdc, 0xf2, 0x28, 0x28,
+ 0xaf, 0x28, 0xdb, 0xd7,
+ 0xd9, 0xc4, 0x1a, 0xea, 0xbe, 0xcf, 0xa9, 0xd8, 0xd9, 0xd2, 0x23, 0x23,
+ 0xc8, 0x23, 0xfd, 0xad,
+ 0x92, 0x7e, 0xf6, 0xa7, 0x7c, 0x9b, 0xf1, 0x16, 0x92, 0x77, 0xa2, 0xa2,
+ 0x81, 0xa2, 0x2a, 0xa4,
+ 0x3e, 0x38, 0x35, 0x67, 0x46, 0x3a, 0x88, 0xf4, 0x3e, 0x3c, 0xa4, 0xa4,
+ 0x09, 0xa4, 0xa9, 0x26,
+ 0xd2, 0xb3, 0x3e, 0xf1, 0x4a, 0x2d, 0x6b, 0x0c, 0xd2, 0x4c, 0x5d, 0x5d,
+ 0x72, 0x5d, 0xd0, 0x95,
+ 0x59, 0x9d, 0x49, 0x46, 0xd2, 0x60, 0x5e, 0xec, 0x59, 0xa4, 0x1e, 0x1e,
+ 0xed, 0x1e, 0xca, 0xcf,
+ 0x75, 0x82, 0xd9, 0x2a, 0x84, 0x6e, 0xd0, 0x3a, 0x75, 0x99, 0x25, 0x25,
+ 0x40, 0x25, 0x7e, 0x2f,
+ 0x19, 0x50, 0x81, 0x10, 0xe4, 0xd6, 0xc4, 0xf6, 0x19, 0x9f, 0xe1, 0xe1,
+ 0x1e, 0xe1, 0x30, 0xfe,
+ 0xb4, 0xb5, 0xe8, 0x4e, 0xa0, 0x0b, 0x3c, 0x97, 0xb4, 0x0a, 0x8f, 0x8f,
+ 0xe2, 0x8f, 0xd2, 0xb0,
+ 0x81, 0xfa, 0xf9, 0x32, 0x12, 0xd3, 0x76, 0xb7, 0x81, 0xa8, 0x55, 0x55,
+ 0x51, 0x55, 0x56, 0xae,
+ 0xe4, 0xda, 0x12, 0xec, 0x7a, 0x71, 0x61, 0x6a, 0xe4, 0x4f, 0x3f, 0x3f,
+ 0x5d, 0x3f, 0xf7, 0x1c,
+ 0xe5, 0x79, 0xb8, 0x72, 0x04, 0x0d, 0xe0, 0xe9, 0xe5, 0x91, 0x57, 0x57,
+ 0x29, 0x57, 0x96, 0xd0,
+ 0x0f, 0xbe, 0xc9, 0x26, 0xcf, 0xd1, 0x83, 0x9d, 0x0f, 0x60, 0x1d, 0x1d,
+ 0xa9, 0x1d, 0x6a, 0x8e,
+ 0x47, 0x22, 0x18, 0x0a, 0x8f, 0x01, 0x9b, 0x15, 0x47, 0x64, 0x24, 0x24,
+ 0x7c, 0x24, 0x1e, 0x10,
+ 0x9c, 0x63, 0x95, 0x1f, 0xcd, 0x36, 0xf3, 0x08, 0x9c, 0xc9, 0xd7, 0xd7,
+ 0x5c, 0xd7, 0x21, 0xe6,
+ 0x2a, 0x53, 0xea, 0xae, 0x91, 0xc5, 0x0e, 0x5a, 0x2a, 0xbc, 0x88, 0x88,
+ 0x56, 0x88, 0x31, 0x0d,
+ 0xa8, 0x8f, 0x2e, 0xfd, 0x01, 0x92, 0x38, 0xab, 0xa8, 0xb5, 0x65, 0x65,
+ 0x9b, 0x65, 0xc4, 0x34,
+ 0x5b, 0x18, 0xde, 0xb9, 0x2e, 0x98, 0x9f, 0x29, 0x5b, 0xdb, 0xce, 0xce,
+ 0x05, 0xce, 0x08, 0x94,
+ 0x8f, 0xe7, 0x9a, 0x8a, 0xa3, 0x7e, 0x74, 0xa9, 0x8f, 0x16, 0x20, 0x20,
+ 0x8c, 0x20, 0x5d, 0xec,
+ 0x04, 0xc9, 0xed, 0x3d, 0x3b, 0x33, 0x41, 0x49, 0x04, 0xfe, 0x63, 0x63,
+ 0x13, 0x63, 0x47, 0xb6,
+ 0xa6, 0x92, 0x4d, 0x45, 0xb0, 0x3f, 0x3a, 0xb5, 0xa6, 0x0b, 0x10, 0x10,
+ 0x46, 0x10, 0xcf, 0x76,
+ 0x72, 0x6d, 0x09, 0x76, 0x3d, 0xd9, 0xd1, 0x35, 0x72, 0xc6, 0xfe, 0xfe,
+ 0xcf, 0xfe, 0x9a, 0x0e,
+ 0xba, 0xa8, 0x8b, 0xf6, 0x11, 0xa6, 0x3e, 0x89, 0xba, 0xb4, 0xfa, 0xfa,
+ 0x3f, 0xfa, 0xd9, 0xf2,
+ 0x30, 0x25, 0x56, 0xdf, 0xf7, 0x97, 0x8a, 0xea, 0x30, 0x82, 0xd1, 0xd1,
+ 0xd4, 0xd1, 0xa2, 0x64,
+ 0x4c, 0x55, 0x3c, 0x11, 0x7b, 0xe3, 0x59, 0xc1, 0x4c, 0xfa, 0x5a, 0x5a,
+ 0xc6, 0x5a, 0x33, 0x28,
+ 0x82, 0xdc, 0xc4, 0x53, 0x90, 0x57, 0x36, 0xf1, 0x82, 0x09, 0xed, 0xed,
+ 0xcd, 0xed, 0xf5, 0x39,
+ 0x6a, 0x9e, 0x22, 0xf8, 0xa7, 0x73, 0x94, 0x40, 0x6a, 0x87, 0x77, 0x77,
+ 0xa5, 0x77, 0xcb, 0x3c,
+ 0x88, 0x08, 0x4a, 0xd6, 0x1a, 0xc9, 0x75, 0xa6, 0x88, 0x49, 0xfb, 0xfb,
+ 0x03, 0xfb, 0xb9, 0xcd,
+ 0x3c, 0xbd, 0xa2, 0x98, 0xba, 0xc2, 0x49, 0x31, 0x3c, 0x43, 0x74, 0x74,
+ 0xe1, 0x74, 0x6b, 0x7d,
+ 0x6e, 0x57, 0xcf, 0xc5, 0x9c, 0x40, 0xd5, 0x09, 0x6e, 0x79, 0x14, 0x14,
+ 0xb6, 0x14, 0x8c, 0x8a,
+ 0x0b, 0x77, 0x24, 0x1b, 0xf4, 0xe2, 0xc2, 0xd4, 0x0b, 0x9e, 0x7e, 0x7e,
+ 0xba, 0x7e, 0x2d, 0x38,
+ 0x9e, 0xe6, 0x02, 0xe0, 0x31, 0xce, 0x32, 0xcd, 0x9e, 0xb6, 0x07, 0x07,
+ 0xb4, 0x07, 0xe3, 0xbd,
+ 0x68, 0x1b, 0xb5, 0x07, 0x5b, 0x8b, 0x55, 0x85, 0x68, 0xf8, 0xa7, 0xa7,
+ 0x4d, 0xa7, 0x09, 0x67,
+ 0x67, 0xa5, 0x7c, 0x21, 0x94, 0x5a, 0xd6, 0x18, 0x67, 0x98, 0xba, 0xba,
+ 0xe4, 0xba, 0x63, 0xe9,
+ 0xc5, 0xfe, 0xdc, 0x59, 0x1f, 0x56, 0xad, 0xe4, 0xc5, 0x6d, 0xc9, 0xc9,
+ 0xb1, 0xc9, 0xeb, 0x29,
+ 0x74, 0x21, 0x73, 0xb4, 0xfa, 0x12, 0x51, 0xb9, 0x74, 0x47, 0x4d, 0x4d,
+ 0x34, 0x4d, 0x1f, 0xe3,
+ 0x40, 0xcd, 0xc8, 0x56, 0x36, 0xb6, 0x9a, 0x1a, 0x40, 0x3b, 0xff, 0xff,
+ 0xf3, 0xff, 0xfa, 0x31,
+ 0x0c, 0x98, 0xf4, 0x47, 0x4d, 0x55, 0xc3, 0xdb, 0x0c, 0xc1, 0xa5, 0xa5,
+ 0x35, 0xa5, 0xc9, 0x19,
+ 0xe7, 0xfc, 0x2f, 0x8d, 0xf8, 0xf5, 0x21, 0x2c, 0xe7, 0xee, 0x87, 0x87,
+ 0xc1, 0x87, 0x54, 0x8b,
+ 0x9d, 0xc0, 0x3f, 0x81, 0xb3, 0x4a, 0x72, 0x8b, 0x9d, 0x17, 0xbf, 0xbf,
+ 0x28, 0xbf, 0x40, 0x2a,
+ 0x90, 0xfb, 0x61, 0x58, 0x80, 0x63, 0x30, 0xd3, 0x90, 0x08, 0x72, 0x72,
+ 0x69, 0x72, 0xe8, 0xff,
+ 0x7a, 0x3c, 0x10, 0x0c, 0x4b, 0xbf, 0x53, 0xa7, 0x7a, 0xf9, 0x38, 0x38,
+ 0xe9, 0x38, 0x14, 0xa1,
+ 0x3a, 0xf1, 0xd8, 0x5a, 0x7d, 0x09, 0xc9, 0xbd, 0x3a, 0xc2, 0xc7, 0xc7,
+ 0x1a, 0xc7, 0xee, 0x90,
+ 0x35, 0x4f, 0x11, 0x7c, 0xb2, 0xd8, 0x4a, 0x20, 0x35, 0xa2, 0xda, 0xda,
+ 0xb3, 0xda, 0x84, 0x1e,
+ 0x34, 0xec, 0xbb, 0xe2, 0xcc, 0xa4, 0xcb, 0xa3, 0x34, 0x7c, 0xb2, 0xb2,
+ 0xc7, 0xb2, 0xe5, 0xd2,
+ 0x9f, 0x45, 0xa8, 0x7e, 0x4f, 0xb2, 0xb3, 0x4e, 0x9f, 0x68, 0x6f, 0x6f,
+ 0xc0, 0x6f, 0x82, 0x71,
+ 0xb7, 0x93, 0xd5, 0x2f, 0x22, 0x8f, 0x7c, 0xd1, 0xb7, 0xab, 0x37, 0x37,
+ 0x7e, 0x37, 0x71, 0x27,
+ 0xf8, 0xe0, 0xd4, 0x5f, 0xdb, 0xe8, 0x65, 0x56, 0xf8, 0xf0, 0xd5, 0xd5,
+ 0x24, 0xd5, 0xe1, 0x98,
+ 0x4f, 0x73, 0x01, 0x70, 0xf9, 0x67, 0x19, 0x87, 0x4f, 0x5b, 0xe2, 0xe2,
+ 0x5a, 0xe2, 0x90, 0xbf,
+ 0x6b, 0x3d, 0x88, 0x66, 0xd9, 0x0f, 0x15, 0xc3, 0x6b, 0x59, 0x1f, 0x1f,
+ 0xd1, 0x1f, 0xaa, 0xf0,
+ 0x83, 0x7f, 0x6e, 0xcd, 0xee, 0x2b, 0xb7, 0x72, 0x83, 0xd7, 0x85, 0x85,
+ 0xb9, 0x85, 0x94, 0xf5,
+ 0x5f, 0xd1, 0x33, 0x84, 0x15, 0xab, 0xde, 0x60, 0x5f, 0x25, 0xad, 0xad,
+ 0x16, 0xad, 0x4f, 0x22,
+ 0xa7, 0x31, 0xe7, 0xdb, 0xce, 0x43, 0xbb, 0x36, 0xa7, 0xd5, 0x78, 0x78,
+ 0x32, 0x78, 0xae, 0xba,
+ 0x1e, 0xbf, 0x51, 0x4c, 0x5d, 0x61, 0xc5, 0xf9, 0x1e, 0xc0, 0x3a, 0x3a,
+ 0x91, 0x3a, 0xd4, 0xdf,
+ 0x10, 0xa2, 0x32, 0xf4, 0xec, 0xcc, 0xc7, 0xe7, 0x10, 0x7e, 0x4f, 0x4f,
+ 0x4c, 0x4f, 0xdf, 0x9d,
+ 0xc3, 0xb2, 0xa6, 0x9b, 0xd8, 0x9d, 0x2d, 0x68, 0xc3, 0xec, 0x7a, 0x7a,
+ 0x4a, 0x7a, 0x6e, 0xc4,
+ 0x78, 0xb9, 0x87, 0xf3, 0xb7, 0x47, 0x92, 0x62, 0x78, 0x86, 0xe8, 0xe8,
+ 0x01, 0xe8, 0xd6, 0xfa,
+ 0x2d, 0xbc, 0x3a, 0xf2, 0x28, 0x72, 0x0f, 0x55, 0x2d, 0xe3, 0x53, 0x53,
+ 0xd9, 0x53, 0xd5, 0x2c,
+ 0x77, 0x07, 0x4e, 0xd5, 0x78, 0x96, 0x11, 0xff, 0x77, 0xe6, 0xf5, 0xf5,
+ 0xa8, 0xf5, 0xbc, 0x74,
+ 0xe3, 0x35, 0xc2, 0xb0, 0xc3, 0xc6, 0x60, 0x65, 0xe3, 0x10, 0xe4, 0xe4,
+ 0xd2, 0xe4, 0x13, 0x3d,
+ 0x80, 0x59, 0x53, 0xac, 0x6c, 0xaf, 0xf7, 0x34, 0x80, 0x76, 0x3d, 0x3d,
+ 0x25, 0x3d, 0x37, 0x62,
+ },
+ { /* 14 */
+ 0x0a, 0xaf, 0x45, 0x6e, 0xf6, 0x73, 0x56, 0xfb, 0x47, 0x1c, 0xd5, 0xc8,
+ 0x66, 0x2c, 0x64, 0xb5,
+ 0xca, 0x52, 0x68, 0xe5, 0x24, 0x5b, 0xd9, 0x08, 0xeb, 0x1e, 0xe0, 0x5e,
+ 0xac, 0x6b, 0x2f, 0x0a,
+ 0xf3, 0x80, 0xf6, 0x75, 0x2e, 0x6a, 0xc5, 0xcb, 0x78, 0x58, 0xd0, 0xcf,
+ 0x08, 0x95, 0x86, 0x89,
+ 0x17, 0x4e, 0xcb, 0x70, 0x06, 0xae, 0xb5, 0x41, 0x71, 0x83, 0x10, 0xce,
+ 0xdd, 0xeb, 0x67, 0xc0,
+ 0x33, 0x7d, 0xdb, 0xfe, 0xfc, 0x42, 0x4a, 0x38, 0xd4, 0x5a, 0xe5, 0x59,
+ 0xc2, 0xd2, 0xcd, 0x36,
+ 0x5f, 0x28, 0xeb, 0xaf, 0x31, 0xb5, 0x88, 0xb3, 0xf8, 0xf2, 0x39, 0x23,
+ 0xe3, 0x99, 0xf0, 0xef,
+ 0xa3, 0xb1, 0x9b, 0x83, 0x92, 0x74, 0x30, 0x1f, 0x05, 0xb8, 0xb7, 0x40,
+ 0xbe, 0x36, 0x20, 0x68,
+ 0x37, 0x3b, 0x27, 0xad, 0x21, 0xa2, 0xd7, 0x88, 0x43, 0x3d, 0xf8, 0xf7,
+ 0xfe, 0x14, 0x9a, 0xaa,
+ 0x2a, 0xda, 0xa9, 0xb3, 0xd1, 0x7f, 0x34, 0x32, 0x75, 0xa2, 0x3d, 0xf1,
+ 0x45, 0xd3, 0x99, 0xdf,
+ 0xc9, 0x81, 0x29, 0x49, 0x0d, 0x13, 0xc0, 0x7c, 0x14, 0xa5, 0x99, 0xc3,
+ 0xbd, 0xd8, 0x80, 0x63,
+ 0x67, 0x0a, 0x4a, 0x5b, 0x9d, 0xbc, 0x22, 0x5c, 0x3e, 0xdd, 0x9f, 0x78,
+ 0x48, 0xb7, 0x3c, 0x4b,
+ 0xd3, 0xf5, 0x1a, 0xa8, 0x09, 0x66, 0xa7, 0x02, 0x4a, 0xe6, 0x38, 0xf6,
+ 0x2b, 0x6a, 0x7b, 0xe3,
+ 0x63, 0x4c, 0xb6, 0x08, 0x40, 0x5c, 0xbf, 0xec, 0xa9, 0xba, 0x82, 0xd6,
+ 0x74, 0x71, 0x6b, 0xd7,
+ 0x84, 0x51, 0xca, 0xa1, 0x41, 0xd0, 0xd6, 0x12, 0x5f, 0xda, 0x3b, 0x4a,
+ 0xb0, 0xbc, 0x25, 0xf7,
+ 0xf7, 0xc6, 0x0a, 0x26, 0xf3, 0x8a, 0x58, 0x7b, 0xef, 0x3f, 0xcd, 0x61,
+ 0x34, 0x53, 0xd1, 0x15,
+ 0x3c, 0x64, 0x5d, 0xa7, 0x71, 0xe9, 0x37, 0x5f, 0x51, 0x48, 0xbb, 0xf5,
+ 0x97, 0xe8, 0x9b, 0x38,
+ 0xea, 0x27, 0x84, 0x38, 0x03, 0x57, 0xbb, 0xc1, 0xd9, 0xa0, 0x08, 0x67,
+ 0x8f, 0x94, 0xd2, 0x60,
+ 0x65, 0x29, 0x34, 0x93, 0x12, 0xcc, 0x8d, 0x04, 0x94, 0x0f, 0x70, 0x2f,
+ 0x56, 0xd4, 0xf6, 0x05,
+ 0xd0, 0x26, 0x5b, 0x04, 0x20, 0x2e, 0xbe, 0x76, 0xb5, 0x5d, 0x41, 0x6b,
+ 0x3a, 0xd9, 0xd4, 0x8a,
+ 0x9e, 0x25, 0xf9, 0x40, 0x45, 0xa5, 0xb1, 0x6c, 0x01, 0x99, 0x9a, 0x7f,
+ 0x26, 0x0e, 0xde, 0x77,
+ 0x18, 0x57, 0x4d, 0x29, 0x8b, 0x05, 0xc8, 0x26, 0xf4, 0x91, 0x4e, 0x62,
+ 0x88, 0xd1, 0x31, 0xce,
+ 0xf4, 0x15, 0x4b, 0x8a, 0xda, 0xc2, 0x41, 0x0f, 0x10, 0x84, 0xb4, 0xfc,
+ 0x25, 0xe0, 0x7e, 0x7c,
+ 0xaf, 0x7b, 0x5c, 0x76, 0x36, 0x97, 0x54, 0x0c, 0x7f, 0x11, 0x90, 0x71,
+ 0xfa, 0xbf, 0xd9, 0x0f,
+ 0xcc, 0x37, 0xea, 0x7e, 0x76, 0xcb, 0xeb, 0xe0, 0xd6, 0xab, 0x12, 0xa7,
+ 0x8e, 0xce, 0xb2, 0xd8,
+ 0x7a, 0xeb, 0xc4, 0x45, 0x6d, 0x61, 0xc1, 0xe6, 0x08, 0x42, 0x5a, 0x7e,
+ 0xf3, 0x70, 0x3f, 0x3e,
+ 0x83, 0xc4, 0x77, 0x5e, 0xb5, 0x78, 0x52, 0xd6, 0x37, 0x06, 0x5f, 0x79,
+ 0x9d, 0xc9, 0xdd, 0x02,
+ 0x9d, 0xf6, 0xb8, 0xec, 0x6c, 0xed, 0xa8, 0x18, 0xfe, 0x22, 0xe3, 0xe2,
+ 0x37, 0xbd, 0x71, 0x1e,
+ 0x81, 0xe7, 0x09, 0x96, 0x3a, 0x08, 0xfd, 0x8e, 0x9d, 0xd4, 0xb0, 0x2e,
+ 0x83, 0xaa, 0x17, 0x4c,
+ 0xad, 0x58, 0x22, 0xbe, 0xb9, 0xe7, 0xfb, 0x54, 0xd5, 0xc3, 0x7f, 0x26,
+ 0xe4, 0xdc, 0x13, 0x41,
+ 0xa9, 0x1e, 0xde, 0xed, 0x64, 0x07, 0x66, 0xe4, 0x42, 0xa4, 0x62, 0x88,
+ 0xd8, 0x1a, 0x44, 0xdd,
+ 0xfc, 0x99, 0x70, 0x2c, 0xa3, 0xc1, 0xb8, 0xac, 0xfd, 0x4a, 0x8e, 0x63,
+ 0x5d, 0xaf, 0xd0, 0x87,
+ 0x73, 0x97, 0xc0, 0x87, 0xb2, 0x5a, 0x8e, 0x69, 0xb0, 0xe5, 0xf6, 0x2b,
+ 0x84, 0xef, 0xf4, 0xe2,
+ 0xb0, 0xb9, 0xac, 0xa0, 0x49, 0x3a, 0x18, 0xee, 0xe3, 0x5c, 0xba, 0x20,
+ 0x5f, 0x1b, 0x10, 0x34,
+ 0x77, 0xd1, 0x3c, 0xd4, 0x6f, 0xba, 0x13, 0xd9, 0x27, 0x82, 0xeb, 0x85,
+ 0xb8, 0x29, 0xa3, 0x7e,
+ 0xa5, 0xd4, 0x19, 0x18, 0xc0, 0xe4, 0x02, 0xf7, 0x38, 0x0d, 0x45, 0xb9,
+ 0x9c, 0x93, 0xbd, 0xba,
+ 0x46, 0x8f, 0x99, 0xe2, 0x1c, 0x88, 0xf6, 0xb9, 0x59, 0x0a, 0xe1, 0x8b,
+ 0x64, 0x98, 0xa4, 0x06,
+ 0x10, 0xdb, 0x76, 0x8f, 0xf2, 0x06, 0x31, 0x85, 0x19, 0x5f, 0x74, 0xfd,
+ 0xf0, 0x9e, 0x9f, 0x35,
+ 0x2b, 0x2a, 0x96, 0xd7, 0x77, 0x47, 0x82, 0x1e, 0x20, 0xcb, 0xab, 0x3b,
+ 0x4a, 0x03, 0xfc, 0xf8,
+ 0x87, 0x82, 0x8b, 0x0d, 0x68, 0x98, 0xcf, 0x66, 0xa0, 0x61, 0x42, 0xd7,
+ 0xa1, 0x0f, 0x8a, 0x9e,
+ 0xf9, 0x2f, 0xb3, 0x1b, 0xd8, 0x19, 0x93, 0x30, 0x3f, 0x44, 0x05, 0x07,
+ 0x6e, 0xb9, 0xe2, 0x3c,
+ 0xd8, 0xaa, 0x60, 0xa2, 0x59, 0x2d, 0x47, 0xd5, 0x58, 0x93, 0x7b, 0xf4,
+ 0x42, 0x96, 0x7a, 0x71,
+ 0x80, 0x17, 0x36, 0xf2, 0x9c, 0x30, 0x4b, 0xa2, 0xc8, 0xbd, 0x26, 0xe4,
+ 0x8c, 0x7a, 0x72, 0x6b,
+ 0x34, 0xe8, 0x66, 0x01, 0x08, 0xea, 0xce, 0xfc, 0xbc, 0x86, 0x81, 0x6a,
+ 0xef, 0xa7, 0x35, 0xc3,
+ 0x31, 0x5e, 0xa5, 0x36, 0x73, 0x32, 0xe5, 0x60, 0x7e, 0x88, 0x0a, 0x0e,
+ 0xdc, 0xb1, 0x07, 0x78,
+ 0x6f, 0x86, 0x71, 0xfd, 0xe4, 0xbf, 0xdb, 0xff, 0xd3, 0x13, 0xa5, 0xe7,
+ 0x30, 0xf8, 0x92, 0xb0,
+ 0x4d, 0xd0, 0xe3, 0xe8, 0x4c, 0xc3, 0x16, 0x6e, 0x4b, 0x7f, 0xa2, 0x89,
+ 0x0d, 0x64, 0xa5, 0x94,
+ 0xd5, 0x90, 0x98, 0x33, 0x5b, 0xf6, 0x95, 0xea, 0x77, 0x53, 0xca, 0x0f,
+ 0x09, 0xcf, 0xe6, 0x31,
+ 0xa6, 0x07, 0x58, 0xb4, 0xe9, 0xac, 0x1b, 0x83, 0xc7, 0xb6, 0x3c, 0x24,
+ 0x8d, 0x20, 0x12, 0xd3,
+ 0xba, 0x16, 0xe9, 0xce, 0xbf, 0x49, 0x4e, 0x15, 0xa4, 0x40, 0x6f, 0xe8,
+ 0x39, 0x37, 0x74, 0x81,
+ 0x62, 0xbc, 0x89, 0x6c, 0xe6, 0x64, 0x09, 0xc0, 0xfc, 0xd3, 0x14, 0x1c,
+ 0x7b, 0xa1, 0x0e, 0xf0,
+ 0x9a, 0x63, 0x05, 0x13, 0x98, 0x45, 0x2c, 0xdc, 0x96, 0xfe, 0x87, 0xd1,
+ 0x1a, 0xc8, 0x89, 0xeb,
+ 0x61, 0x6f, 0xc8, 0xc0, 0xcf, 0x2c, 0x10, 0xb4, 0x03, 0x68, 0x6d, 0x81,
+ 0x6a, 0x12, 0xa1, 0x99,
+ 0x5d, 0x0b, 0x95, 0x67, 0xbe, 0xc5, 0x27, 0xeb, 0x52, 0x20, 0xd6, 0x74,
+ 0xfd, 0xfa, 0x3a, 0xa1,
+ 0xa8, 0xee, 0xe1, 0x89, 0xc2, 0x3f, 0xd0, 0xc8, 0x17, 0xcd, 0xf4, 0x42,
+ 0xd7, 0xca, 0x21, 0xfa,
+ 0x98, 0x40, 0x7b, 0xdb, 0x17, 0x35, 0x83, 0x84, 0x3c, 0x2c, 0x68, 0x86,
+ 0x04, 0xab, 0x43, 0xa5,
+ 0x21, 0x85, 0xd3, 0xb9, 0x81, 0x34, 0xd4, 0xe5, 0x67, 0xd7, 0x7e, 0xf3,
+ 0x2c, 0x2f, 0x98, 0x4d,
+ 0x6d, 0xa5, 0x0f, 0x35, 0x6b, 0xcf, 0x74, 0xa7, 0x79, 0xc1, 0x4a, 0xb0,
+ 0x2e, 0x9b, 0x58, 0xfe,
+ 0xfa, 0xfc, 0xf2, 0xb7, 0xf1, 0x51, 0x8a, 0x44, 0xc0, 0xff, 0x7c, 0x9a,
+ 0x7f, 0x0a, 0x4d, 0x55,
+ 0x1d, 0xe1, 0x8e, 0x1e, 0xf0, 0xdd, 0xe3, 0xba, 0x36, 0x9f, 0xc5, 0x06,
+ 0xbb, 0xc7, 0x03, 0x75,
+ 0xe2, 0xab, 0xbf, 0x9e, 0x7a, 0x54, 0x42, 0x62, 0x34, 0x6e, 0x32, 0xf8,
+ 0xf7, 0xdb, 0x7c, 0x9b,
+ 0x48, 0x66, 0x20, 0xdf, 0x37, 0x1b, 0x3d, 0xf2, 0x89, 0x71, 0x29, 0xed,
+ 0x3e, 0x72, 0x97, 0x2f,
+ 0x93, 0x1f, 0x01, 0xd1, 0x47, 0x7e, 0x63, 0x53, 0x2e, 0x59, 0x2b, 0x84,
+ 0x6d, 0x57, 0x42, 0x37,
+ 0xb3, 0x6a, 0xed, 0x0c, 0x60, 0x72, 0x01, 0x9a, 0x1c, 0xe7, 0xc3, 0xbd,
+ 0x4e, 0xa8, 0xbf, 0x5d,
+ 0x57, 0xa4, 0xd0, 0x09, 0x48, 0xb6, 0x71, 0x10, 0x15, 0x3c, 0x03, 0xbc,
+ 0x9b, 0xd6, 0x5e, 0x14,
+ 0x70, 0x44, 0x81, 0x2b, 0x9b, 0x12, 0x97, 0x1d, 0x4f, 0x5e, 0x8f, 0xb6,
+ 0x95, 0x5c, 0x5b, 0x8b,
+ 0x19, 0xa7, 0x72, 0x4d, 0x2d, 0x3d, 0x7e, 0x0a, 0xa1, 0xf8, 0xd8, 0xa8,
+ 0x87, 0x01, 0x54, 0xe9,
+ 0x6e, 0x76, 0x4e, 0x99, 0x42, 0x87, 0x6d, 0xd3, 0x86, 0x7a, 0x33, 0x2d,
+ 0x3f, 0x28, 0xf7, 0x97,
+ 0xbc, 0x73, 0x6b, 0x55, 0xed, 0xd9, 0x7c, 0xfd, 0x99, 0xf5, 0x9d, 0x11,
+ 0x1b, 0x92, 0xe9, 0x53,
+ 0x3d, 0x94, 0x62, 0xc3, 0xd7, 0xd1, 0x81, 0x73, 0x04, 0x21, 0x2d, 0x3f,
+ 0x98, 0x38, 0xfe, 0x1f,
+ 0x13, 0x08, 0x37, 0x23, 0xdb, 0x4e, 0x28, 0xf1, 0xe6, 0xe4, 0x0d, 0x60,
+ 0xe1, 0x2d, 0x30, 0x5c,
+ 0x86, 0x72, 0xb4, 0x69, 0xce, 0xa0, 0x79, 0x4a, 0xf5, 0x08, 0xd4, 0x1d,
+ 0xae, 0xdf, 0xef, 0xb9,
+ 0xdb, 0x79, 0x21, 0x0e, 0x70, 0x65, 0x5e, 0xa1, 0xa7, 0x28, 0x02, 0x69,
+ 0x53, 0x25, 0xd5, 0x18,
+ 0x4a, 0x45, 0x5e, 0x17, 0xb8, 0x6b, 0x92, 0xaa, 0x23, 0xa3, 0xc6, 0xba,
+ 0x20, 0x11, 0x5d, 0x61,
+ 0x03, 0xd3, 0x41, 0xac, 0x29, 0x48, 0x19, 0x74, 0xff, 0xbb, 0x79, 0x9d,
+ 0x11, 0xb3, 0xaf, 0x69,
+ 0x32, 0x8d, 0xe4, 0x9a, 0x5a, 0x7a, 0xfc, 0x14, 0x81, 0x33, 0x73, 0x93,
+ 0xcd, 0x02, 0xa8, 0x11,
+ 0xbb, 0xe6, 0xd6, 0xaa, 0x19, 0x71, 0xf8, 0x39, 0xf1, 0x29, 0xf9, 0x22,
+ 0x36, 0xe7, 0x11, 0xa6,
+ 0x47, 0x7f, 0xa6, 0x86, 0xba, 0xb0, 0x40, 0x95, 0x0c, 0x63, 0x77, 0x41,
+ 0x6b, 0x48, 0xc1, 0x21,
+ 0x59, 0x4d, 0x69, 0x34, 0x63, 0x25, 0xba, 0x5b, 0xc5, 0x47, 0xcb, 0xda,
+ 0xc1, 0x3c, 0x6d, 0x3d,
+ 0x7e, 0xad, 0x38, 0x16, 0xb0, 0x81, 0x5c, 0x56, 0x9f, 0x25, 0x47, 0xd0,
+ 0xcf, 0xb6, 0x68, 0xa2,
+ 0xe4, 0xce, 0x3d, 0x05, 0x28, 0xc4, 0x70, 0x8a, 0x09, 0xdb, 0xc0, 0x01,
+ 0xd5, 0x7e, 0xe1, 0x49,
+ 0xc1, 0x0d, 0x12, 0xef, 0x74, 0x10, 0x39, 0xdf, 0xf9, 0x6b, 0xa3, 0x5c,
+ 0xc5, 0x97, 0x2e, 0x98,
+ 0x45, 0x5c, 0xd8, 0x4e, 0x35, 0xc0, 0xef, 0xcd, 0xa6, 0xb1, 0x98, 0x16,
+ 0x75, 0x2b, 0x0b, 0x6f,
+ 0x40, 0xea, 0x1b, 0x79, 0x4e, 0x18, 0xc4, 0x51, 0x64, 0xbf, 0x13, 0x72,
+ 0x46, 0x3d, 0x39, 0xd4,
+ 0x9c, 0x06, 0x87, 0x88, 0xca, 0xd5, 0x1e, 0x34, 0xab, 0x4b, 0x75, 0x28,
+ 0x38, 0x6d, 0x14, 0x39,
+ 0x2d, 0x4f, 0x14, 0x4c, 0x25, 0xd7, 0xb0, 0xf6, 0x1d, 0x7e, 0x59, 0xc2,
+ 0x68, 0xa6, 0x61, 0x2a,
+ 0xda, 0x89, 0x1e, 0x6a, 0xd6, 0x5d, 0xe8, 0x8d, 0xf2, 0x41, 0x94, 0xa3,
+ 0x5c, 0xf5, 0xb0, 0x3f,
+ 0x28, 0xf9, 0xd7, 0x7b, 0x5e, 0x0f, 0x9b, 0x6a, 0xdf, 0x70, 0xd2, 0xa6,
+ 0x5b, 0xb0, 0x53, 0x91,
+ 0xc0, 0xfd, 0x2d, 0x8b, 0xd2, 0x28, 0x8f, 0xf3, 0xac, 0x02, 0x35, 0x96,
+ 0xca, 0x47, 0x4b, 0xbf,
+ 0x76, 0x21, 0x03, 0xb0, 0xc9, 0x82, 0xa5, 0xf5, 0x72, 0xeb, 0x7d, 0x4f,
+ 0xb7, 0xf9, 0xc6, 0x59,
+ 0xdf, 0x3f, 0xdd, 0x5d, 0xad, 0x85, 0xc3, 0x11, 0x30, 0x4f, 0x1f, 0xc7,
+ 0x6f, 0xe3, 0x82, 0x84,
+ 0x8d, 0x2d, 0xce, 0x63, 0x9e, 0xeb, 0x99, 0x9d, 0xe7, 0x7d, 0x97, 0x1f,
+ 0xc7, 0x23, 0xee, 0x2b,
+ 0x8b, 0x48, 0x4c, 0xf8, 0xcc, 0x7b, 0xab, 0x75, 0xda, 0xc8, 0x65, 0xe6,
+ 0xe5, 0x86, 0x73, 0xf9,
+ 0x15, 0x6d, 0xb5, 0xb8, 0x89, 0xde, 0x1a, 0x19, 0xdb, 0x51, 0xff, 0x99,
+ 0xc3, 0x88, 0xad, 0x8e,
+ 0x5b, 0x6e, 0x17, 0xfc, 0xec, 0x55, 0x15, 0x03, 0x6f, 0x95, 0x24, 0x8d,
+ 0xdf, 0x5f, 0xa7, 0x73,
+ 0x66, 0xfa, 0x75, 0x3f, 0x3b, 0x84, 0x94, 0x70, 0x6b, 0xb4, 0x09, 0xb2,
+ 0x47, 0x67, 0x59, 0x6c,
+ 0xb5, 0x0f, 0x6f, 0x97, 0x32, 0xe2, 0x33, 0x72, 0x21, 0x52, 0x31, 0x44,
+ 0x6c, 0x0d, 0x22, 0x8f,
+ 0xe0, 0x88, 0xc1, 0x56, 0xf5, 0x24, 0xed, 0x3a, 0x9e, 0xbc, 0xdd, 0xaf,
+ 0xe9, 0xb8, 0xb6, 0xd5,
+ 0x6c, 0x55, 0x30, 0x51, 0xcd, 0xf7, 0xc2, 0x8b, 0x2c, 0xa8, 0xdc, 0x7a,
+ 0x21, 0x4b, 0x3d, 0xd9,
+ 0xa2, 0x41, 0xa4, 0xe7, 0x34, 0x4c, 0x86, 0x33, 0x50, 0xd1, 0x21, 0x8a,
+ 0xb1, 0xe6, 0x45, 0x4f,
+ 0xd4, 0x60, 0xa7, 0x57, 0xfd, 0xce, 0x23, 0xc6, 0x22, 0x3a, 0x5c, 0xc5,
+ 0x06, 0x1f, 0x83, 0x16,
+ 0x5a, 0x9e, 0x28, 0x98, 0x4a, 0x6d, 0xa3, 0x2f, 0x3a, 0xfc, 0xb2, 0x47,
+ 0xd0, 0x8f, 0xc2, 0x54,
+ 0xbf, 0xa0, 0x2a, 0xf9, 0xc4, 0x91, 0x65, 0x89, 0x66, 0x4e, 0xe4, 0x8c,
+ 0x0a, 0x21, 0x46, 0x3a,
+ 0x78, 0xc8, 0xba, 0x8d, 0xe2, 0x11, 0x6e, 0xbe, 0xa2, 0x90, 0xb5, 0x29,
+ 0xed, 0x13, 0xf5, 0x70,
+ 0x1e, 0x32, 0xcf, 0xb2, 0xd9, 0x95, 0xfa, 0xce, 0xc9, 0x24, 0xbc, 0x9b,
+ 0xaa, 0x74, 0xac, 0x1c,
+ 0x07, 0x95, 0xbd, 0xff, 0xf4, 0xa8, 0x84, 0xc4, 0x68, 0xdc, 0x64, 0x33,
+ 0x2d, 0x75, 0xf8, 0xf5,
+ 0x82, 0x34, 0x48, 0x3a, 0x13, 0x40, 0xe4, 0xfa, 0x62, 0x6f, 0xc9, 0xb3,
+ 0x92, 0x19, 0xb8, 0x25,
+ 0x68, 0x13, 0xcc, 0x02, 0x10, 0x17, 0x5f, 0x3b, 0xbb, 0xcf, 0xc1, 0xd4,
+ 0x1d, 0x8d, 0x6a, 0x45,
+ 0x12, 0xf8, 0x08, 0x47, 0x7d, 0x76, 0x9e, 0xdd, 0xb3, 0x8d, 0x9b, 0xaa,
+ 0xee, 0xfd, 0x55, 0x7b,
+ 0x58, 0xbd, 0x56, 0x50, 0xc5, 0x1d, 0x0c, 0x77, 0x90, 0x2e, 0x5d, 0x10,
+ 0xce, 0xec, 0x08, 0x1a,
+ 0x8f, 0x0e, 0xb0, 0xab, 0x11, 0x9b, 0x36, 0xc5, 0x4d, 0xaf, 0x78, 0x48,
+ 0xd9, 0x40, 0x24, 0x65,
+ 0xe1, 0x78, 0xfe, 0x32, 0x53, 0x1c, 0x5b, 0x16, 0xcb, 0xd5, 0x4b, 0x65,
+ 0xe6, 0x68, 0xd3, 0xf2,
+ 0x36, 0xcb, 0x18, 0xc9, 0x87, 0x9a, 0x61, 0xa4, 0x16, 0x54, 0x6e, 0x3d,
+ 0xf1, 0xc4, 0xff, 0x8d,
+ 0x74, 0x02, 0x7d, 0x78, 0x46, 0xf2, 0x0a, 0xad, 0xd8, 0x39, 0x92, 0x18,
+ 0xa9, 0x9a, 0x0c, 0x17,
+ 0xff, 0x4a, 0x31, 0x80, 0x8a, 0x89, 0xa1, 0xd8, 0x02, 0xf1, 0xf7, 0xfe,
+ 0x4c, 0x1c, 0x7f, 0xee,
+ 0x3a, 0x01, 0xdf, 0x3c, 0x23, 0x79, 0x05, 0xb7, 0x6c, 0xfd, 0x49, 0x0c,
+ 0xb5, 0x4d, 0x06, 0xea,
+ 0x79, 0x38, 0x85, 0xe9, 0x44, 0x29, 0xd8, 0x92, 0xf7, 0xf9, 0x23, 0xe3,
+ 0xe2, 0xc3, 0x90, 0x57,
+ 0xdd, 0x1c, 0xa3, 0x95, 0x22, 0xf5, 0x6c, 0x49, 0x9a, 0x9d, 0xf0, 0x90,
+ 0x71, 0x80, 0x48, 0xca,
+ 0x54, 0x77, 0x91, 0xa5, 0x61, 0xfe, 0x68, 0x64, 0xea, 0x87, 0x7a, 0x21,
+ 0x8a, 0x65, 0xf1, 0x7d,
+ 0x22, 0x56, 0x92, 0x15, 0xa8, 0x7c, 0xcd, 0x91, 0x98, 0x6c, 0x07, 0x6e,
+ 0x3d, 0x9c, 0x37, 0x24,
+ 0x05, 0xb6, 0xc3, 0x37, 0x7b, 0xd8, 0x2b, 0x9c, 0xc2, 0x0e, 0x8b, 0x64,
+ 0x33, 0x16, 0x32, 0xbb,
+ 0x88, 0x9b, 0x0d, 0x54, 0xe5, 0x33, 0xb2, 0x01, 0x25, 0x73, 0x1c, 0x7b,
+ 0xf4, 0x35, 0xdc, 0x90,
+ 0x06, 0x65, 0x82, 0x9b, 0x52, 0x90, 0x32, 0xe8, 0x3d, 0xb5, 0xf2, 0xf9,
+ 0x22, 0xa5, 0x9d, 0xd2,
+ 0x53, 0xe2, 0x2c, 0x5a, 0x95, 0x56, 0xec, 0xa0, 0x82, 0x5b, 0x1e, 0x12,
+ 0xa7, 0x10, 0x09, 0x88,
+ 0x95, 0x7a, 0x83, 0x4a, 0x15, 0xee, 0x51, 0xbb, 0x13, 0xec, 0xd9, 0x7d,
+ 0x4f, 0xf2, 0xdf, 0xe5,
+ 0xe9, 0xf4, 0xc5, 0x94, 0x2a, 0x1f, 0xa2, 0xb5, 0x26, 0x1b, 0x71, 0xfa,
+ 0x9e, 0x27, 0x7d, 0x09,
+ 0xec, 0x42, 0x06, 0xa3, 0x51, 0xc7, 0x89, 0x29, 0xe4, 0x15, 0xfa, 0x9e,
+ 0xad, 0x31, 0x4f, 0xb2,
+ 0x97, 0x59, 0xfd, 0x82, 0x9a, 0x9e, 0xfe, 0xe3, 0xb9, 0x3e, 0x36, 0x2a,
+ 0x51, 0x91, 0x15, 0xab,
+ 0xd1, 0xd6, 0x64, 0x60, 0x86, 0x16, 0x08, 0x5a, 0xe0, 0x34, 0xd7, 0xa1,
+ 0x35, 0x09, 0xb1, 0xad,
+ 0x69, 0xe3, 0xf3, 0x66, 0xb6, 0x2f, 0xe9, 0x17, 0xee, 0xa6, 0x57, 0x1e,
+ 0x12, 0x5d, 0x0f, 0x62,
+ 0x6a, 0x30, 0xb2, 0xca, 0x9f, 0x67, 0xf0, 0x63, 0x11, 0x1d, 0x2e, 0x83,
+ 0x03, 0xee, 0xa0, 0x0b,
+ 0x43, 0x39, 0x5a, 0xd5, 0x67, 0x50, 0xdd, 0x25, 0x9b, 0x04, 0x6a, 0xef,
+ 0x57, 0x8e, 0x96, 0xbd,
+ 0x41, 0x1a, 0x24, 0x1d, 0xe8, 0x20, 0x72, 0x7d, 0x31, 0xd6, 0x85, 0xb8,
+ 0x49, 0xed, 0x5c, 0xf3,
+ 0xae, 0x8b, 0x63, 0x12, 0x90, 0xaf, 0xe2, 0x20, 0x2a, 0x78, 0x06, 0xbb,
+ 0xf5, 0x6f, 0xbc, 0x28,
+ 0x0c, 0xca, 0xc7, 0xf5, 0xa4, 0xe3, 0x64, 0x13, 0x7a, 0xa9, 0x27, 0x31,
+ 0x44, 0x89, 0xf9, 0x67,
+ 0x7c, 0x8e, 0x46, 0xde, 0x3f, 0xf1, 0xf3, 0x0e, 0x35, 0xf7, 0xa8, 0x87,
+ 0xd1, 0xd5, 0xa2, 0xec,
+ 0x5e, 0xd8, 0xd4, 0xcb, 0x97, 0x8d, 0x3e, 0x9f, 0xad, 0x9b, 0xaf, 0xe9,
+ 0xec, 0x49, 0x95, 0xc8,
+ 0x44, 0xac, 0xe7, 0x2a, 0x93, 0xf8, 0x59, 0xe1, 0xf3, 0xd8, 0x0e, 0xdc,
+ 0x7a, 0xfb, 0x6e, 0x48,
+ 0x25, 0xc3, 0x2f, 0xea, 0x5c, 0xd4, 0x49, 0x55, 0xf0, 0xb0, 0x63, 0x5d,
+ 0x10, 0xe9, 0xcf, 0xd1,
+ 0x09, 0x7c, 0x04, 0xc2, 0xdf, 0x3b, 0x4f, 0x8f, 0xb8, 0xa7, 0xac, 0x55,
+ 0x77, 0x9f, 0xcb, 0xdc,
+ 0xbd, 0x83, 0x54, 0x31, 0x4b, 0xe1, 0xca, 0xd1, 0xcc, 0x9c, 0x0b, 0xdb,
+ 0x14, 0x42, 0x8c, 0x74,
+ 0x9f, 0xd5, 0xc6, 0x24, 0xe3, 0x9d, 0x07, 0x40, 0x54, 0xf0, 0x0c, 0xb5,
+ 0x29, 0xde, 0xbb, 0x50,
+ 0x2e, 0x9c, 0x55, 0xe0, 0x0c, 0x9f, 0xa9, 0x82, 0xe2, 0xc5, 0x20, 0x5f,
+ 0x79, 0x15, 0xce, 0x43,
+ 0x1b, 0x84, 0x0c, 0x85, 0xa2, 0x4d, 0xd1, 0x52, 0x0b, 0x2a, 0x37, 0xff,
+ 0x99, 0x62, 0x9e, 0xa7,
+ 0xd7, 0xb3, 0xe6, 0xfb, 0xd4, 0x86, 0x3a, 0xb2, 0xdd, 0x81, 0x25, 0x58,
+ 0x17, 0xac, 0x2c, 0x7f,
+ 0x8a, 0xb8, 0x73, 0x9c, 0x6a, 0x43, 0x1d, 0x59, 0x8f, 0xa1, 0xf3, 0x2c,
+ 0xea, 0x56, 0x16, 0xde,
+ 0x0d, 0x3a, 0xf8, 0x91, 0x02, 0xdb, 0xd2, 0x3f, 0x2f, 0xc0, 0xb1, 0xfb,
+ 0x4b, 0x59, 0x9c, 0x40,
+ 0x50, 0x31, 0x6d, 0xf6, 0xbc, 0x1e, 0xf5, 0xd4, 0x7d, 0xe0, 0x67, 0x8f,
+ 0xb6, 0xa3, 0xa6, 0xe1,
+ 0x24, 0x33, 0x10, 0x8e, 0xfa, 0xec, 0xff, 0x79, 0xa5, 0xd9, 0xf5, 0x97,
+ 0x1f, 0x39, 0xaa, 0xf6,
+ 0xf2, 0x70, 0xc9, 0x11, 0x88, 0x52, 0x73, 0xe7, 0x2d, 0x31, 0x46, 0x05,
+ 0x07, 0x45, 0xe3, 0xae,
+ 0x38, 0x22, 0xa1, 0xf4, 0xac, 0x09, 0xaa, 0xef, 0xc6, 0x2f, 0xa6, 0x5b,
+ 0xab, 0x2e, 0xcc, 0xa4,
+ 0x7b, 0x1b, 0xfb, 0x21, 0xcb, 0x59, 0x77, 0xca, 0x5d, 0x2b, 0xcc, 0xb4,
+ 0xfc, 0xa0, 0x5a, 0x19,
+ 0xa1, 0x92, 0xe5, 0x4b, 0x1d, 0x04, 0x9f, 0x47, 0xaf, 0x6a, 0x58, 0x17,
+ 0xa0, 0x55, 0xea, 0x26,
+ 0xbe, 0x50, 0x15, 0x9d, 0x62, 0xa9, 0xd3, 0xa5, 0x33, 0x27, 0x72, 0x46,
+ 0x05, 0xf1, 0x23, 0x1d,
+ 0xa7, 0xf7, 0x67, 0xd0, 0x4f, 0x94, 0xad, 0xaf, 0x92, 0xdf, 0xaa, 0xee,
+ 0x82, 0xf0, 0x77, 0xf4,
+ 0x99, 0xb0, 0x44, 0xbf, 0xb1, 0x0d, 0x35, 0xa8, 0x69, 0x45, 0xfe, 0x4c,
+ 0x0b, 0x7b, 0x26, 0x82,
+ 0xf1, 0xa3, 0x88, 0xbd, 0xa1, 0x1a, 0x6a, 0x93, 0xd2, 0x8a, 0x3f, 0x98,
+ 0x16, 0xf6, 0x4c, 0xc7,
+ 0xeb, 0xd7, 0xbb, 0x5c, 0xa5, 0x6f, 0x0d, 0xed, 0x8c, 0xc9, 0x9e, 0xad,
+ 0x80, 0x44, 0xb7, 0x47,
+ 0x39, 0xd2, 0x9e, 0x90, 0x0a, 0x31, 0x1c, 0xc3, 0x93, 0x46, 0x30, 0x91,
+ 0xa4, 0xfe, 0xa9, 0x83,
+ 0xb7, 0x2c, 0x11, 0x5f, 0xbd, 0x92, 0x9c, 0x2a, 0x8b, 0x80, 0xde, 0x13,
+ 0x72, 0x6e, 0xe8, 0xc1,
+ 0x1c, 0x11, 0xb1, 0x7a, 0x56, 0xe5, 0x55, 0x96, 0x63, 0xf6, 0x53, 0xcc,
+ 0xb4, 0x17, 0x66, 0x52,
+ 0x01, 0xf0, 0x3f, 0x64, 0xa6, 0x38, 0xb6, 0x2c, 0x55, 0x69, 0x96, 0xca,
+ 0x0f, 0xd0, 0x65, 0x27,
+ 0xef, 0x91, 0x47, 0x0f, 0x78, 0x8f, 0x90, 0x5d, 0x1b, 0xae, 0x83, 0x03,
+ 0xbc, 0x82, 0xe0, 0xdb,
+ 0x1f, 0xc2, 0xf0, 0xd6, 0x7f, 0xad, 0x4c, 0xe2, 0x9c, 0x4d, 0x2a, 0x51,
+ 0xa5, 0xa4, 0xc9, 0x3b,
+ 0x92, 0xef, 0x3e, 0xb5, 0xe1, 0x46, 0xd5, 0x7f, 0x7b, 0x30, 0xbd, 0x4e,
+ 0x62, 0x87, 0x27, 0x10,
+ 0x1a, 0x74, 0x33, 0xe1, 0x04, 0x75, 0x67, 0x7e, 0x5e, 0x43, 0xa1, 0x35,
+ 0x96, 0xb2, 0xfb, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x85, 0xa1, 0xf5, 0xc5, 0xe7, 0xe8, 0x60, 0x3e, 0x0a, 0xb3, 0xad, 0x80,
+ 0xbf, 0x6c, 0x40, 0xd0,
+ 0x5c, 0xfb, 0xaa, 0x03, 0x18, 0xfd, 0x91, 0xc7, 0x07, 0x49, 0x40, 0xbe,
+ 0xf2, 0x2a, 0x5f, 0x86,
+ 0xed, 0xb2, 0x39, 0xc7, 0xf7, 0xff, 0x3f, 0x05, 0xb1, 0x7c, 0x6c, 0x54,
+ 0xa2, 0xe1, 0x2a, 0x95,
+ 0x56, 0x54, 0xef, 0x6d, 0xee, 0x8e, 0xc7, 0x3c, 0x40, 0x55, 0x95, 0x76,
+ 0x94, 0x06, 0x3b, 0x33,
+ 0xc3, 0x2e, 0x6c, 0x27, 0xfb, 0x60, 0x96, 0x87, 0x53, 0xb9, 0x4c, 0x0b,
+ 0xdb, 0xf4, 0xe4, 0xd6,
+ 0x0f, 0x19, 0x86, 0x59, 0x8d, 0xab, 0x7d, 0x67, 0x85, 0x12, 0x5e, 0xac,
+ 0x55, 0x3a, 0x56, 0x0e,
+ 0xe8, 0x04, 0xfa, 0xf0, 0x8c, 0x27, 0x14, 0x99, 0x73, 0x72, 0xe7, 0x30,
+ 0x91, 0xf7, 0x18, 0x2e,
+ 0xc2, 0xde, 0x53, 0x43, 0x5d, 0x58, 0x20, 0xab, 0x06, 0xd0, 0xda, 0xc1,
+ 0xd4, 0x24, 0x81, 0xf1,
+ 0xd9, 0x5a, 0x5f, 0xc6, 0xff, 0x15, 0xf1, 0xf9, 0x0d, 0xfa, 0xed, 0x3e,
+ 0x4d, 0x46, 0x1f, 0x56,
+ 0xe6, 0xed, 0x43, 0xcd, 0xa7, 0xb4, 0xdf, 0xd2, 0xa3, 0x09, 0x2f, 0x56,
+ 0xcb, 0x1d, 0x2b, 0x07,
+ 0xb6, 0xdc, 0x2e, 0x3b, 0x1b, 0xaa, 0x2a, 0x06, 0xde, 0xe9, 0x48, 0xd9,
+ 0x7d, 0xbe, 0x8d, 0xe6,
+ 0x11, 0x2b, 0x49, 0xeb, 0x54, 0x3e, 0x87, 0xa9, 0x4c, 0x36, 0xe2, 0x37,
+ 0xff, 0x4e, 0xfa, 0x12,
+ 0xc6, 0x98, 0xaf, 0x10, 0x80, 0xb8, 0xbd, 0x1b, 0x91, 0xb7, 0xc7, 0x6f,
+ 0xe8, 0xe2, 0xd6, 0x6d,
+ 0x55, 0x87, 0xae, 0xc1, 0xc7, 0xc6, 0xde, 0x48, 0xbf, 0xee, 0xec, 0xeb,
+ 0x85, 0xb5, 0x94, 0x5a,
+ 0x94, 0x8a, 0xbc, 0x2e, 0xb3, 0xd6, 0xe7, 0x97, 0x46, 0x85, 0x4f, 0xb7,
+ 0x40, 0x22, 0xba, 0xc2,
+ 0xb1, 0x49, 0x93, 0xc4, 0xef, 0x02, 0xae, 0xc2, 0xb6, 0x35, 0x2c, 0xea,
+ 0x50, 0xcb, 0x75, 0x13,
+ 0x4b, 0xb5, 0x61, 0x73, 0x1e, 0x53, 0x24, 0x86, 0x76, 0xca, 0x50, 0x70,
+ 0x2f, 0xc1, 0x38, 0x46,
+ 0xb9, 0xc5, 0xa8, 0x62, 0x96, 0x01, 0x57, 0x61, 0x5b, 0xfb, 0x16, 0x75,
+ 0x28, 0x84, 0xdb, 0xe8,
+ 0x4f, 0xf3, 0x9d, 0x20, 0xc3, 0xb3, 0xb9, 0x36, 0xe1, 0xad, 0x4d, 0xde,
+ 0x13, 0x07, 0x6f, 0xda,
+ 0xf6, 0x36, 0x35, 0x42, 0x55, 0xb2, 0xee, 0x57, 0xba, 0x56, 0x5b, 0xab,
+ 0x3b, 0x83, 0xb4, 0x32,
+ 0x9b, 0x93, 0x3a, 0x77, 0x3e, 0x7d, 0x9a, 0xf0, 0xc3, 0x97, 0x11, 0x1b,
+ 0x15, 0x18, 0xec, 0xcc,
+ 0xd2, 0x05, 0x25, 0xcc, 0xaf, 0x5e, 0x11, 0x2e, 0x1f, 0x8f, 0xae, 0x3c,
+ 0x24, 0xba, 0x1e, 0xc4,
+ 0x7f, 0x5d, 0x07, 0x72, 0x16, 0xb9, 0xea, 0x7a, 0xca, 0x4c, 0xd1, 0x1a,
+ 0xc0, 0x66, 0x0d, 0x85,
+ 0xde, 0xcf, 0xe2, 0x39, 0x0b, 0xbd, 0x75, 0x3d, 0x65, 0x26, 0x89, 0x0d,
+ 0x60, 0x33, 0xe7, 0xa3,
+ 0x75, 0xf2, 0x42, 0x1c, 0xe0, 0xca, 0xbc, 0x81, 0x8d, 0x50, 0x04, 0xd2,
+ 0xa6, 0x4a, 0x69, 0x30,
+ 0x14, 0x9d, 0x8a, 0xdc, 0x2f, 0xe6, 0xac, 0x35, 0x8e, 0x38, 0x69, 0x53,
+ 0xcc, 0x58, 0xc8, 0xa9,
+ 0x20, 0x75, 0xec, 0xdd, 0x27, 0x0c, 0x62, 0xc9, 0x32, 0xbe, 0xe8, 0x39,
+ 0x23, 0xff, 0xfd, 0x6a,
+ 0xdc, 0xec, 0x9c, 0xf1, 0x84, 0xcd, 0xda, 0x65, 0xcf, 0xf4, 0x66, 0x5a,
+ 0x7e, 0x50, 0x2d, 0xed,
+ 0xac, 0xa8, 0x1d, 0xda, 0x1f, 0xdf, 0x4d, 0x78, 0x80, 0xaa, 0xe9, 0xec,
+ 0xeb, 0x0c, 0x76, 0x66,
+ 0xab, 0x3d, 0xa0, 0x25, 0xeb, 0x77, 0xc9, 0xbc, 0xe8, 0x76, 0x8d, 0xdf,
+ 0xc6, 0x79, 0x8e, 0x93,
+ 0xf8, 0xdf, 0x8c, 0x7f, 0x7e, 0x21, 0x25, 0x1c, 0x6a, 0x2d, 0x93, 0xcd,
+ 0x61, 0x69, 0x87, 0x1b,
+ 0xfb, 0x0c, 0xcd, 0xd3, 0x57, 0x69, 0x3c, 0x68, 0x95, 0x96, 0xea, 0x50,
+ 0x70, 0xda, 0x28, 0x72,
+ 0xcd, 0xc7, 0xd5, 0x1a, 0xd0, 0xf3, 0x5d, 0xcc, 0x83, 0xc2, 0x84, 0x6d,
+ 0x81, 0x1e, 0xd7, 0xff,
+ 0xf0, 0x53, 0xb7, 0xd9, 0x07, 0x22, 0xdc, 0xbf, 0x87, 0xe3, 0xa9, 0x52,
+ 0x19, 0x26, 0x29, 0xe0,
+ 0xee, 0x61, 0x78, 0x6b, 0xde, 0xb7, 0x26, 0x71, 0x4e, 0xc7, 0x15, 0xc9,
+ 0xb3, 0x52, 0x85, 0xfc,
+ 0xce, 0x14, 0x94, 0xb6, 0xf9, 0xbb, 0x44, 0xb8, 0x7c, 0x79, 0xfd, 0xf0,
+ 0x90, 0xad, 0x78, 0x96,
+ 0xe5, 0x3e, 0x02, 0x61, 0x8e, 0xfc, 0xc6, 0xa6, 0x5c, 0xb2, 0x56, 0xcb,
+ 0xda, 0xae, 0x84, 0x6e,
+ 0x7d, 0x7e, 0x79, 0xba, 0x99, 0xc9, 0x45, 0x22, 0x60, 0x9e, 0x3e, 0x4d,
+ 0xde, 0x05, 0xc7, 0xcb,
+ 0xb8, 0x35, 0x97, 0x06, 0x30, 0x39, 0xe1, 0x4d, 0x0e, 0x92, 0x80, 0xbf,
+ 0x27, 0x54, 0xbe, 0xcf,
+ 0x04, 0x46, 0xfc, 0x53, 0xdd, 0xe0, 0x9d, 0xb0, 0x97, 0x67, 0x1d, 0xae,
+ 0x3c, 0xc6, 0x57, 0x9c,
+ 0xaa, 0xcd, 0x9f, 0x41, 0x4d, 0x4f, 0x7f, 0x90, 0xbd, 0x1f, 0x1b, 0x15,
+ 0xc9, 0xa9, 0xeb, 0xb4,
+ 0xf5, 0xe5, 0x74, 0xee, 0x7c, 0xfa, 0xf7, 0x23, 0x45, 0xed, 0x22, 0x36,
+ 0x2a, 0x30, 0x1b, 0x5b,
+ 0xc7, 0x68, 0x90, 0x74, 0x26, 0x80, 0x0b, 0x37, 0xc4, 0xde, 0x51, 0xa5,
+ 0xe7, 0x32, 0xb3, 0x4a,
+ 0xa0, 0x62, 0xda, 0x2f, 0xbb, 0x3c, 0x29, 0x6b, 0xfa, 0x03, 0xce, 0xdd,
+ 0xaf, 0x85, 0x8f, 0x01,
+ 0x42, 0xc9, 0x65, 0xb1, 0xc1, 0x68, 0x6b, 0x09, 0xce, 0x6d, 0xfc, 0x25,
+ 0x58, 0x5e, 0xf3, 0x9a,
+ 0xcb, 0xa2, 0x57, 0x81, 0x82, 0x63, 0x6f, 0x24, 0xbe, 0x77, 0x76, 0x94,
+ 0xa3, 0xbb, 0x4a, 0x2d,
+ 0x71, 0xb4, 0xbe, 0x4f, 0x3d, 0x2a, 0x21, 0x31, 0x1a, 0x37, 0x19, 0x7c,
+ 0x9a, 0x8c, 0x3e, 0xac,
+ 0xe3, 0x5b, 0x80, 0xfa, 0xdc, 0x6c, 0xf4, 0x4e, 0x61, 0x07, 0xa4, 0x32,
+ 0xf8, 0x0b, 0x19, 0xbc,
+ 0xfd, 0x69, 0x4f, 0x48, 0x05, 0xf9, 0x0e, 0x80, 0xa8, 0x23, 0x18, 0xa9,
+ 0x52, 0x7f, 0xb5, 0xa0,
+ 0x90, 0xcc, 0x40, 0x7d, 0x6e, 0x36, 0x7a, 0x27, 0xd1, 0xe2, 0x52, 0x19,
+ 0x7c, 0xe4, 0xed, 0x5e,
+ 0x02, 0x23, 0x7e, 0xc8, 0x8f, 0x70, 0xaf, 0x58, 0xaa, 0xd2, 0xef, 0x57,
+ 0x1e, 0x63, 0xca, 0x4e,
+ 0x26, 0x10, 0x6e, 0x46, 0x75, 0x9c, 0x50, 0x21, 0x0f, 0x0b, 0x1a, 0xc0,
+ 0x01, 0x5a, 0x60, 0xb8,
+ 0x96, 0xa9, 0xc2, 0xe6, 0x3c, 0xa6, 0x48, 0xcf, 0xec, 0x57, 0xa0, 0xe0,
+ 0x5e, 0x41, 0x70, 0x8c,
+ 0xcf, 0xe4, 0xab, 0xd2, 0x5f, 0x83, 0xf2, 0x94, 0x29, 0x10, 0x6b, 0x3a,
+ 0x9f, 0x7d, 0x1d, 0xb1,
+ 0x89, 0x6b, 0x32, 0x30, 0x43, 0x0b, 0x04, 0x2d, 0x70, 0x1a, 0x8a, 0xb1,
+ 0xfb, 0xe5, 0xb9, 0xb7,
+ 0x49, 0x96, 0x1f, 0xbb, 0x91, 0x23, 0x8b, 0xde, 0xdc, 0x18, 0xbf, 0x27,
+ 0x31, 0xa2, 0xf2, 0x08,
+ 0x2f, 0x6c, 0x6a, 0x84, 0xaa, 0xa7, 0x1f, 0xae, 0xb7, 0xac, 0xb6, 0x95,
+ 0x76, 0xc5, 0xab, 0x64,
+ 0x52, 0x12, 0x13, 0x3e, 0x33, 0x6e, 0x5a, 0x8c, 0xd7, 0x32, 0x88, 0xd8,
+ 0xa8, 0xc0, 0x6c, 0xaf,
+ 0xb4, 0xff, 0x50, 0xf3, 0x94, 0xda, 0x85, 0x5e, 0x74, 0x3b, 0xa7, 0x8e,
+ 0x63, 0xdd, 0x47, 0xa8,
+ 0x08, 0x8c, 0x3b, 0xa6, 0x79, 0x03, 0xf9, 0xa3, 0xed, 0xce, 0x3a, 0x9f,
+ 0x78, 0x4f, 0xae, 0xfb,
+ 0x3f, 0xb7, 0x1c, 0x0b, 0x58, 0xa1, 0x2e, 0x2b, 0xae, 0xf3, 0xc2, 0x68,
+ 0x86, 0x5b, 0x34, 0x51,
+ 0xd6, 0x43, 0xd9, 0x9f, 0x72, 0xbe, 0x8c, 0x9e, 0x88, 0xe8, 0xb3, 0x92,
+ 0x18, 0x7c, 0x49, 0x58,
+ 0x23, 0xa6, 0xad, 0x71, 0x0e, 0x44, 0x7b, 0xbd, 0xcd, 0x05, 0x91, 0xa4,
+ 0x32, 0x4c, 0x52, 0x03,
+ 0x4e, 0x03, 0xa2, 0x44, 0x65, 0x8b, 0x0f, 0x1a, 0xb4, 0xc4, 0xdb, 0x14,
+ 0x1c, 0xd7, 0x0a, 0xfd,
+ 0x60, 0x9f, 0xf7, 0xa4, 0x69, 0x14, 0xa6, 0x98, 0x56, 0x01, 0xfb, 0x4b,
+ 0x65, 0xc2, 0xc4, 0xbe,
+ 0x0b, 0x5f, 0x7a, 0x0a, 0x50, 0x4b, 0xe0, 0xd7, 0x12, 0x75, 0x43, 0x02,
+ 0x69, 0xfc, 0x01, 0x92,
+ 0xc4, 0xbb, 0xd1, 0xd8, 0x0f, 0xc8, 0x12, 0x43, 0x3b, 0x65, 0x28, 0x38,
+ 0xf6, 0x81, 0x1c, 0x23,
+ 0x35, 0x18, 0x59, 0x65, 0xae, 0xd2, 0x78, 0xd0, 0xe9, 0xef, 0x17, 0xa0,
+ 0xe0, 0x77, 0x50, 0xe4,
+ 0x0e, 0xe9, 0xb9, 0x3d, 0x2b, 0x93, 0xcb, 0x4b, 0xd0, 0x7b, 0xc8, 0x66,
+ 0x5a, 0xea, 0x33, 0x29,
+ 0x64, 0xd9, 0x0b, 0xf7, 0xb4, 0xf4, 0x3b, 0x28, 0xc1, 0x66, 0xe6, 0xe5,
+ 0x59, 0x04, 0x93, 0x22,
+ 0x3b, 0xf1, 0xe0, 0x58, 0x85, 0x41, 0xb3, 0x9b, 0x39, 0x94, 0xdf, 0xc6,
+ 0xba, 0x9d, 0x63, 0xcd,
+ 0x30, 0xae, 0x9a, 0x52, 0xd5, 0x0a, 0x53, 0x4c, 0x2b, 0xe1, 0x9c, 0xc4,
+ 0xd3, 0x61, 0x62, 0x5f,
+ 0xc5, 0x4b, 0xee, 0xbc, 0xa9, 0xf0, 0xa4, 0x6f, 0x6e, 0x0c, 0xbe, 0xf2,
+ 0xf9, 0x51, 0x79, 0x04,
+ 0x6b, 0xc0, 0x8d, 0xae, 0x39, 0x5f, 0x46, 0x4f, 0x44, 0x74, 0xb8, 0x49,
+ 0x0c, 0x3e, 0xc5, 0x2c,
+ 0x91, 0x3c, 0x7f, 0x19, 0xc8, 0x0e, 0xcc, 0x0b, 0x84, 0x8b, 0xc4, 0xd3,
+ 0x73, 0x34, 0x88, 0x79,
+ 0x4c, 0x20, 0xdc, 0x8c, 0xea, 0xfb, 0xa0, 0x42, 0x1e, 0x16, 0x34, 0x43,
+ 0x02, 0xb4, 0xc0, 0xb3,
+ 0xb2, 0x9a, 0xd2, 0x68, 0xc6, 0x4a, 0xb7, 0xb6, 0x49, 0x8e, 0x55, 0x77,
+ 0x41, 0x78, 0xda, 0x7a,
+ 0xfe, 0xba, 0x0e, 0xe4, 0x2c, 0xb1, 0x17, 0xf4, 0x57, 0x98, 0x61, 0x34,
+ 0x43, 0xcc, 0x1a, 0xc9,
+ 0xe7, 0x1d, 0x7c, 0xa9, 0x01, 0x8c, 0x69, 0xfe, 0xf6, 0x60, 0xb9, 0x9c,
+ 0xc4, 0xcd, 0x4e, 0x20,
+ 0x27, 0xe0, 0x51, 0x22, 0xd3, 0xa4, 0xe6, 0x0d, 0x5a, 0x62, 0x8c, 0x0a,
+ 0x0e, 0x8a, 0x05, 0x9f,
+ 0x8c, 0xdd, 0xf1, 0x07, 0x38, 0xd3, 0x2f, 0xb1, 0xb2, 0x14, 0x01, 0xd5,
+ 0xc8, 0xf3, 0x8b, 0x0c,
+ 0x3e, 0x47, 0x23, 0x6f, 0xfe, 0x99, 0x98, 0x07, 0xfb, 0x9a, 0x54, 0xa2,
+ 0x89, 0x8b, 0x51, 0x76,
+ 0x29, 0x09, 0xe8, 0x1f, 0xf8, 0x37, 0x2d, 0x46, 0x8a, 0x19, 0x44, 0x6c,
+ 0x54, 0x60, 0x36, 0xb6,
+ 0x72, 0x67, 0xff, 0xe3, 0x14, 0x62, 0x38, 0x45, 0xe5, 0x8c, 0x60, 0xe1,
+ 0x8b, 0x3f, 0x91, 0xc5,
+ 0x2c, 0xbf, 0x2b, 0x28, 0x83, 0xef, 0x06, 0xda, 0x48, 0x17, 0xcf, 0x08,
+ 0x67, 0x76, 0x04, 0x0d,
+ 0xa4, 0x24, 0x26, 0x7c, 0x66, 0xdc, 0xb4, 0xdb, 0x6d, 0x64, 0xd3, 0x73,
+ 0x93, 0x43, 0xd8, 0x9d,
+ 0x8e, 0xfe, 0x8f, 0xcf, 0xb7, 0xa3, 0x80, 0xe9, 0x18, 0xc6, 0xee, 0x82,
+ 0xd6, 0x90, 0x41, 0x42,
+ 0x51, 0xc1, 0x52, 0x92, 0x1a, 0x26, 0x43, 0xf8, 0x28, 0x89, 0xf1, 0x45,
+ 0xb9, 0x73, 0xc3, 0xc6,
+ 0xc8, 0x71, 0x16, 0x2d, 0xab, 0x2b, 0x76, 0x50, 0x41, 0xcc, 0x0f, 0x09,
+ 0xb2, 0x08, 0xe5, 0x44,
+ 0x16, 0xbe, 0xf4, 0x14, 0xa0, 0x96, 0x03, 0x6d, 0x24, 0xea, 0x86, 0x04,
+ 0xd2, 0x3b, 0x02, 0xe7,
+ },
+ { /* 15 */
+ 0xfb, 0xd5, 0x0c, 0x7a, 0xc0, 0x80, 0x96, 0x19, 0x11, 0x87, 0x93, 0x1b,
+ 0xc9, 0xae, 0xb5, 0xfc,
+ 0x08, 0xe0, 0x8c, 0xb2, 0x17, 0x1a, 0xce, 0x7b, 0x32, 0xfc, 0xab, 0xf8,
+ 0xfe, 0xf2, 0x0a, 0xee,
+ 0xcb, 0xd0, 0xa2, 0x50, 0xb2, 0xdc, 0x77, 0xc0, 0xbd, 0xca, 0xef, 0x4e,
+ 0x88, 0xc7, 0x89, 0xdd,
+ 0x41, 0x10, 0x1a, 0x5e, 0x63, 0x42, 0xd6, 0x69, 0xc4, 0x12, 0x3c, 0xd3,
+ 0x93, 0x13, 0xc0, 0x11,
+ 0x38, 0xe5, 0x22, 0x98, 0x65, 0x46, 0x2f, 0xa2, 0x9e, 0xb1, 0xd7, 0xad,
+ 0xbf, 0x9b, 0x36, 0xcf,
+ 0xb3, 0x39, 0x6a, 0x11, 0x6f, 0x4a, 0xe7, 0x3c, 0x70, 0x97, 0x29, 0x2f,
+ 0xcb, 0xc0, 0xef, 0x6e,
+ 0x1f, 0xb7, 0xc2, 0x06, 0x7d, 0x56, 0x4d, 0x08, 0x35, 0x78, 0xfd, 0x96,
+ 0x0f, 0xfe, 0x68, 0x31,
+ 0x88, 0xf8, 0x9b, 0xc3, 0xa4, 0x79, 0x73, 0xc7, 0x94, 0xe7, 0x89, 0xa3,
+ 0xc5, 0x09, 0xaa, 0x16,
+ 0x32, 0x3d, 0x8d, 0xe7, 0x07, 0xbb, 0x33, 0xb7, 0x41, 0x72, 0x26, 0x6b,
+ 0x9f, 0xb4, 0xdf, 0xfb,
+ 0x7c, 0x99, 0x8e, 0x18, 0x37, 0x9b, 0xf7, 0x20, 0xd4, 0x23, 0x72, 0x1d,
+ 0x3c, 0x7e, 0x63, 0xc4,
+ 0x5c, 0x9f, 0xfb, 0x95, 0x6b, 0xf3, 0x49, 0x0f, 0x1c, 0x55, 0x9b, 0x7b,
+ 0x42, 0x30, 0x4b, 0xfa,
+ 0x02, 0x38, 0x23, 0xcd, 0x75, 0xe7, 0xd2, 0x6e, 0xed, 0x3f, 0x5a, 0x3e,
+ 0xde, 0xdd, 0xe3, 0xda,
+ 0xec, 0x82, 0x42, 0xce, 0xaa, 0xcc, 0x15, 0x6a, 0x16, 0x03, 0xc5, 0x75,
+ 0x38, 0xa2, 0xd7, 0x23,
+ 0x12, 0x3b, 0xf8, 0x6a, 0x5b, 0xd3, 0x8d, 0x98, 0x89, 0x04, 0xcf, 0x0d,
+ 0xe1, 0xfa, 0xf7, 0xc5,
+ 0x7b, 0xcd, 0x1b, 0x0b, 0x73, 0xe3, 0x2b, 0xa5, 0xb7, 0x9c, 0xb1, 0x40,
+ 0xf2, 0x55, 0x15, 0x04,
+ 0x5f, 0xbb, 0x28, 0xdf, 0xc5, 0x86, 0xf2, 0x56, 0x66, 0x94, 0xec, 0x5a,
+ 0xf3, 0x62, 0x38, 0x4d,
+ 0xc1, 0x08, 0x0d, 0x2f, 0xd0, 0x21, 0x6b, 0xd5, 0x62, 0x09, 0x1e, 0x88,
+ 0xa8, 0xe8, 0x60, 0xe9,
+ 0x04, 0x70, 0x46, 0x59, 0xea, 0x0d, 0x67, 0xdc, 0x19, 0x7e, 0xb4, 0x7c,
+ 0x7f, 0x79, 0x05, 0x77,
+ 0x76, 0x41, 0x21, 0x67, 0x55, 0x66, 0xeb, 0x35, 0x0b, 0xe0, 0x83, 0xdb,
+ 0x1c, 0x51, 0x8a, 0xf0,
+ 0x6c, 0x9a, 0x55, 0xbf, 0x19, 0xaf, 0xa8, 0xd6, 0xb0, 0x18, 0xe7, 0x2e,
+ 0x03, 0x59, 0x77, 0xdb,
+ 0x26, 0x4e, 0x10, 0x19, 0xc3, 0x82, 0x0b, 0x9d, 0x3c, 0x37, 0x07, 0x24,
+ 0xdf, 0xea, 0xce, 0x93,
+ 0x0f, 0xb4, 0x19, 0xa1, 0x53, 0x62, 0x12, 0xfe, 0x51, 0x43, 0x68, 0xa5,
+ 0x30, 0xd9, 0x7c, 0x2e,
+ 0x0c, 0x90, 0xca, 0xeb, 0xfd, 0x17, 0xa9, 0xa7, 0x2b, 0x82, 0x1f, 0x84,
+ 0x81, 0x8b, 0x0f, 0x99,
+ 0xe0, 0x12, 0x88, 0x25, 0x57, 0xdb, 0xbc, 0xcd, 0x3d, 0x81, 0xda, 0xf1,
+ 0xb9, 0x29, 0xd8, 0xba,
+ 0xe6, 0x5a, 0xed, 0xb1, 0xc8, 0x31, 0x09, 0x7f, 0xc9, 0xc0, 0x34, 0xb3,
+ 0x18, 0x8d, 0x3e, 0x17,
+ 0xd6, 0x5f, 0x43, 0x9b, 0xba, 0x6d, 0xe8, 0xa6, 0x65, 0x8d, 0x48, 0xe6,
+ 0x59, 0xe4, 0x02, 0x36,
+ 0x18, 0xe3, 0x57, 0x15, 0x39, 0x2e, 0x91, 0x8d, 0x56, 0xc7, 0x3e, 0xcb,
+ 0xc1, 0xd5, 0x1e, 0xf1,
+ 0x8e, 0xb0, 0xfe, 0x57, 0x3b, 0x93, 0xc6, 0x75, 0x60, 0xa6, 0x67, 0xe1,
+ 0x64, 0xad, 0x4c, 0xbb,
+ 0x54, 0x7f, 0x77, 0x27, 0x7c, 0xe9, 0x87, 0x74, 0x2e, 0xa9, 0x30, 0x83,
+ 0xbc, 0xc2, 0x41, 0x14,
+ 0xe4, 0x62, 0xce, 0x7c, 0xbd, 0xd6, 0xdb, 0x11, 0x24, 0xff, 0x6e, 0x8d,
+ 0xc6, 0x50, 0xdd, 0xcd,
+ 0xac, 0x8e, 0xa8, 0x17, 0x12, 0x1c, 0xaa, 0x34, 0x45, 0xef, 0xd4, 0xb9,
+ 0xc4, 0x3e, 0x87, 0x5f,
+ 0x69, 0xf6, 0xe3, 0x61, 0x28, 0x30, 0xa6, 0x3d, 0x3e, 0x98, 0x7e, 0x4d,
+ 0x13, 0xaf, 0xe2, 0xc1,
+ 0xee, 0xba, 0x61, 0x03, 0xdf, 0x2b, 0xc7, 0x04, 0xfb, 0x3c, 0x9f, 0x4b,
+ 0xe6, 0x7f, 0x34, 0xf9,
+ 0xd9, 0xeb, 0x5a, 0x3a, 0xe9, 0x0f, 0xfa, 0x58, 0x34, 0xce, 0x20, 0x43,
+ 0x69, 0x3d, 0x7e, 0x18,
+ 0xf7, 0x45, 0xc6, 0x91, 0x3d, 0x97, 0x3f, 0xbe, 0x3a, 0x05, 0x8c, 0x9f,
+ 0x48, 0x25, 0xba, 0x65,
+ 0xb9, 0xe1, 0xc5, 0x6e, 0x0d, 0xb7, 0xfb, 0x29, 0xaf, 0x54, 0xd8, 0xe9,
+ 0xeb, 0xef, 0x06, 0x5a,
+ 0x85, 0x74, 0xa1, 0xaf, 0x82, 0xfc, 0xb3, 0x57, 0x28, 0x9b, 0xbb, 0x38,
+ 0x2b, 0x0d, 0x35, 0xe2,
+ 0x1e, 0xab, 0x32, 0x81, 0xa6, 0xc4, 0x24, 0x3f, 0xa2, 0x86, 0xd0, 0x89,
+ 0x60, 0x71, 0xf8, 0x5c,
+ 0x66, 0x42, 0xfa, 0xc0, 0x7b, 0x52, 0xb4, 0xc3, 0x6f, 0xdb, 0x16, 0xe8,
+ 0x23, 0x76, 0x9e, 0xef,
+ 0x30, 0x05, 0xae, 0x2a, 0x72, 0x5c, 0xe1, 0xd9, 0xac, 0x4d, 0x7c, 0x55,
+ 0x41, 0x69, 0x3c, 0x21,
+ 0xd5, 0x7b, 0x90, 0xd1, 0x14, 0x18, 0x53, 0xff, 0x1f, 0x4c, 0x3f, 0xc7,
+ 0xe8, 0xb6, 0x71, 0x81,
+ 0xa2, 0x26, 0x41, 0x31, 0x9a, 0xec, 0xd1, 0xfd, 0x83, 0x52, 0x91, 0x03,
+ 0x9b, 0x68, 0x6b, 0x1c,
+ 0xfc, 0x81, 0x99, 0x69, 0x84, 0xf8, 0x4a, 0x9c, 0x72, 0x38, 0x50, 0x46,
+ 0x07, 0x85, 0xc3, 0x3c,
+ 0x60, 0x0a, 0x9f, 0x54, 0xe4, 0xb8, 0x01, 0x71, 0x9b, 0x9a, 0xf8, 0xaa,
+ 0x82, 0xd2, 0x78, 0x42,
+ 0xff, 0xa5, 0x4a, 0x23, 0x2a, 0x8d, 0xf1, 0xc5, 0x08, 0xf9, 0x27, 0x67,
+ 0xb6, 0xd7, 0xb0, 0x8b,
+ 0x6e, 0xa2, 0x76, 0x72, 0x6c, 0x48, 0x7a, 0xb8, 0x5d, 0x27, 0xbd, 0x10,
+ 0xdd, 0x84, 0x94, 0x01,
+ 0xea, 0xca, 0x27, 0x5a, 0x35, 0x26, 0xa0, 0xd8, 0xe2, 0x42, 0x2b, 0x37,
+ 0x99, 0x06, 0x31, 0x8e,
+ 0x83, 0x3c, 0xc4, 0x3b, 0x1d, 0x16, 0x06, 0xe5, 0xdc, 0xda, 0x55, 0x7a,
+ 0x8a, 0xa9, 0xd3, 0x4f,
+ 0x15, 0x6f, 0x6d, 0x79, 0x1f, 0xab, 0x51, 0x1d, 0xea, 0xbb, 0x0c, 0x50,
+ 0x2f, 0xd1, 0x81, 0x05,
+ 0xc0, 0x14, 0xfd, 0xa8, 0x0b, 0xb3, 0x02, 0xe2, 0xf5, 0xf7, 0x33, 0x97,
+ 0xc7, 0x67, 0xf0, 0x84,
+ 0xdc, 0x87, 0xec, 0xe4, 0xd8, 0x90, 0xf4, 0xb3, 0xba, 0x4e, 0xb9, 0x20,
+ 0x79, 0xcb, 0xeb, 0x02,
+ 0xb4, 0x6d, 0xff, 0x02, 0x2b, 0x32, 0x3b, 0xb9, 0x13, 0x28, 0xea, 0x72,
+ 0x05, 0xeb, 0x99, 0xae,
+ 0xeb, 0xd6, 0xd7, 0xdd, 0xee, 0xb4, 0xc9, 0xef, 0x75, 0xbc, 0x06, 0x28,
+ 0xf6, 0x89, 0xa1, 0xe3,
+ 0xc8, 0xf4, 0x71, 0x1a, 0x1c, 0xa9, 0xcc, 0x99, 0xc7, 0x0b, 0x98, 0x6f,
+ 0x39, 0x95, 0xfa, 0x6a,
+ 0x84, 0x68, 0x51, 0x28, 0x59, 0x6e, 0xda, 0x60, 0xbf, 0x65, 0x96, 0x27,
+ 0x44, 0x82, 0xa5, 0x8f,
+ 0xe5, 0x7e, 0x3e, 0xfb, 0x66, 0x44, 0xb2, 0x26, 0xb3, 0x01, 0x43, 0x92,
+ 0xa9, 0xdf, 0x4d, 0xa0,
+ 0xa7, 0x4a, 0xf7, 0xef, 0xab, 0x73, 0xdf, 0x16, 0x0d, 0xd2, 0x08, 0x60,
+ 0x8b, 0x9e, 0xfe, 0x06,
+ 0x44, 0x7c, 0xac, 0x80, 0x52, 0xdd, 0xd8, 0x82, 0x4a, 0x92, 0xa5, 0xb0,
+ 0x83, 0xe5, 0x55, 0x0b,
+ 0xba, 0xc5, 0x16, 0x24, 0xa3, 0xc2, 0x40, 0x70, 0xd5, 0x95, 0xaf, 0xc8,
+ 0x5a, 0xbd, 0x75, 0xed,
+ 0x62, 0x32, 0xbc, 0x99, 0x91, 0x5f, 0xd3, 0x1f, 0x76, 0xa5, 0xa2, 0x94,
+ 0x5c, 0x0f, 0x9b, 0x98,
+ 0xf2, 0x29, 0x70, 0x4f, 0x0c, 0x08, 0x31, 0x55, 0xb4, 0x85, 0x15, 0xfc,
+ 0x58, 0xd3, 0x2f, 0x7f,
+ 0x53, 0x2b, 0xe2, 0x34, 0x38, 0x91, 0x5b, 0xf1, 0x4d, 0x16, 0xf3, 0xde,
+ 0x72, 0xe9, 0x37, 0xd4,
+ 0x9a, 0xc3, 0x63, 0xa9, 0xff, 0xaa, 0xfe, 0x5f, 0x1d, 0xe3, 0x46, 0xae,
+ 0x24, 0xf3, 0x5d, 0xd3,
+ 0x10, 0x03, 0xdb, 0xa7, 0x2e, 0x34, 0x5f, 0xf6, 0x64, 0x3b, 0x95, 0x33,
+ 0x3f, 0x27, 0x14, 0x1f,
+ 0x1d, 0x8f, 0xe1, 0xcb, 0x08, 0xb1, 0x9f, 0x66, 0xd8, 0x47, 0xa7, 0xa8,
+ 0xd1, 0x23, 0x8b, 0xeb,
+ 0x0a, 0xd8, 0xaf, 0x7f, 0x62, 0xfd, 0x1c, 0x15, 0xdf, 0xc3, 0xf1, 0xc6,
+ 0x20, 0x2f, 0xe9, 0x34,
+ 0xd3, 0x33, 0xf5, 0x45, 0x8b, 0xf2, 0xe6, 0x4d, 0xeb, 0x0d, 0xd1, 0x85,
+ 0x49, 0x12, 0x97, 0x2c,
+ 0xfd, 0x9d, 0x69, 0xee, 0x5f, 0x6a, 0x23, 0xab, 0xe5, 0xc6, 0x7d, 0x59,
+ 0x68, 0x0a, 0x53, 0x51,
+ 0x73, 0x2d, 0x97, 0xb9, 0x64, 0xf9, 0xe5, 0xde, 0x85, 0x60, 0x1a, 0xb8,
+ 0x0c, 0xa7, 0x1f, 0xea,
+ 0xf1, 0x0d, 0xa3, 0x05, 0xa2, 0x7d, 0x8a, 0x0c, 0xce, 0x44, 0x62, 0xdd,
+ 0xe9, 0x81, 0x5c, 0xc8,
+ 0x4a, 0xd4, 0x45, 0xa6, 0xda, 0x2d, 0xa3, 0x4b, 0x8c, 0x2f, 0xe0, 0x0a,
+ 0xdc, 0xb3, 0xb9, 0x48,
+ 0xa1, 0x02, 0x92, 0x7b, 0x34, 0x99, 0x6a, 0xa4, 0xf9, 0x93, 0xe6, 0x22,
+ 0x2a, 0x3a, 0x18, 0xab,
+ 0xaa, 0xc6, 0xcd, 0x83, 0x8d, 0xf6, 0x1f, 0x86, 0xb1, 0xae, 0x3a, 0xfb,
+ 0x65, 0x9a, 0x61, 0xf2,
+ 0x74, 0x79, 0x02, 0xaa, 0x20, 0x81, 0x39, 0x5b, 0xe6, 0xdf, 0xd9, 0xe5,
+ 0xc2, 0x8c, 0x69, 0x2a,
+ 0x14, 0x73, 0x9d, 0xfe, 0xc4, 0x39, 0x38, 0x2a, 0x7d, 0x45, 0x21, 0x4f,
+ 0x40, 0x5e, 0x11, 0x68,
+ 0x39, 0xf9, 0xd2, 0x1f, 0xbe, 0xd4, 0x46, 0x95, 0x09, 0x4f, 0xfa, 0xb2,
+ 0xd0, 0x14, 0xa6, 0xa2,
+ 0x95, 0x77, 0x7a, 0x08, 0xac, 0xc8, 0xec, 0xa1, 0x4c, 0xa0, 0x2e, 0x0b,
+ 0x14, 0x2a, 0x21, 0xfd,
+ 0x5b, 0xcb, 0x6e, 0x86, 0x2f, 0x8b, 0x95, 0x8a, 0x7f, 0xea, 0x58, 0x26,
+ 0x8c, 0x1b, 0x3d, 0x3a,
+ 0x56, 0x47, 0x54, 0xea, 0x09, 0x0e, 0x55, 0x1a, 0xc3, 0x96, 0x6a, 0xbd,
+ 0x62, 0x1f, 0xa2, 0xce,
+ 0x8a, 0xc0, 0xb8, 0x0e, 0xd1, 0x9e, 0xa1, 0xa9, 0x79, 0xd8, 0xd3, 0x9d,
+ 0x1b, 0xd4, 0x49, 0xcc,
+ 0xdf, 0xa3, 0x3f, 0xae, 0x76, 0xe5, 0x4f, 0xea, 0xc0, 0x8f, 0xce, 0x01,
+ 0xc8, 0x99, 0x98, 0xb5,
+ 0xcd, 0x98, 0xc7, 0xc4, 0x2d, 0x36, 0xc2, 0x72, 0x49, 0x8b, 0x01, 0x0c,
+ 0x29, 0x63, 0x6f, 0x70,
+ 0x51, 0x13, 0xc1, 0xf9, 0x4d, 0x76, 0x89, 0x9f, 0xa0, 0x29, 0xa9, 0xe0,
+ 0xac, 0x34, 0xd4, 0x0e,
+ 0x34, 0x75, 0xe8, 0x73, 0x98, 0x51, 0x86, 0x05, 0xb5, 0x33, 0xc8, 0x29,
+ 0x3e, 0x10, 0x39, 0x56,
+ 0xf6, 0x59, 0x36, 0x16, 0xe6, 0x05, 0x56, 0x89, 0xad, 0xfb, 0xa1, 0x80,
+ 0x27, 0xaa, 0x2a, 0x08,
+ 0x8d, 0x94, 0x2d, 0x1d, 0x95, 0xe6, 0x7d, 0x2c, 0x1a, 0x67, 0x10, 0xc0,
+ 0xd5, 0xff, 0x3f, 0x0c,
+ 0x6a, 0xd2, 0x30, 0x2b, 0x86, 0x45, 0x1d, 0x64, 0x44, 0x59, 0x09, 0x6c,
+ 0xa2, 0xfd, 0x91, 0x76,
+ 0xf3, 0x35, 0x80, 0xc8, 0xd7, 0x9a, 0x58, 0x62, 0x23, 0x7b, 0x38, 0xe3,
+ 0x37, 0x5c, 0xbf, 0x12,
+ 0xf5, 0x7d, 0xe5, 0x5c, 0x48, 0x70, 0xed, 0xd0, 0xd7, 0x3a, 0xd6, 0xa1,
+ 0x96, 0xf8, 0x59, 0xbf,
+ 0x11, 0x1f, 0x2b, 0x20, 0xf5, 0xa6, 0x36, 0xc1, 0xf3, 0xc5, 0xb8, 0x2c,
+ 0x50, 0xa8, 0x84, 0x72,
+ 0x9d, 0x97, 0xf6, 0xba, 0xbb, 0xd2, 0x22, 0xda, 0x7e, 0x5c, 0x85, 0xf3,
+ 0xea, 0xd8, 0x2b, 0x13,
+ 0x75, 0x65, 0xf2, 0x2d, 0xfb, 0x13, 0x50, 0x6c, 0x71, 0x21, 0xf4, 0xfa,
+ 0xad, 0x03, 0xf9, 0x47,
+ 0x19, 0xff, 0xa7, 0x92, 0xe2, 0xbc, 0xf8, 0xba, 0xc1, 0x39, 0x13, 0xd4,
+ 0xae, 0x5a, 0x8e, 0x9c,
+ 0x03, 0x24, 0xd3, 0x4a, 0xae, 0x75, 0xbb, 0x59, 0x7a, 0xc1, 0x77, 0x21,
+ 0xb1, 0x52, 0x73, 0xb7,
+ 0x70, 0x09, 0x44, 0xf3, 0xca, 0x8c, 0x5e, 0x87, 0xff, 0xa1, 0x6d, 0x99,
+ 0xbd, 0xf5, 0x6c, 0x5d,
+ 0x72, 0x31, 0x67, 0x3e, 0xbf, 0x6b, 0x8c, 0xe9, 0x12, 0x9e, 0x37, 0xa7,
+ 0x63, 0x28, 0x8f, 0x87,
+ 0x3a, 0xdd, 0x01, 0x55, 0x10, 0xa1, 0xfd, 0xcc, 0x73, 0x8e, 0x8d, 0x93,
+ 0x61, 0x46, 0xd5, 0x15,
+ 0x8b, 0xdc, 0x48, 0x89, 0x0a, 0x0c, 0xc8, 0x9e, 0xee, 0x26, 0xfe, 0x82,
+ 0x74, 0x5b, 0xd9, 0xa1,
+ 0x33, 0x21, 0x7d, 0x60, 0xdc, 0x29, 0x5a, 0x80, 0xd6, 0x8c, 0x0b, 0x74,
+ 0xf0, 0x3b, 0x4f, 0x96,
+ 0xc6, 0x5c, 0x98, 0x3c, 0x94, 0x59, 0xb7, 0x50, 0x01, 0xb6, 0xdd, 0xd5,
+ 0x66, 0xc3, 0x16, 0x29,
+ 0x2f, 0xb2, 0x6c, 0x2c, 0x0f, 0x0a, 0xac, 0xd1, 0x99, 0x35, 0x81, 0xc3,
+ 0x4e, 0x97, 0x54, 0x10,
+ 0x89, 0xe4, 0x6b, 0x44, 0x7f, 0xeb, 0x1a, 0xf0, 0x03, 0x19, 0xa4, 0xbc,
+ 0xaa, 0x86, 0x3a, 0x7b,
+ 0xbe, 0xb5, 0x50, 0x7d, 0x49, 0xcf, 0x27, 0xac, 0xcc, 0xeb, 0x1b, 0xb4,
+ 0x25, 0xc4, 0x70, 0x9a,
+ 0xce, 0xbc, 0x14, 0x8e, 0x83, 0x43, 0x79, 0x2b, 0x33, 0x4a, 0x76, 0x2d,
+ 0x98, 0x31, 0x1c, 0xc7,
+ 0xc4, 0x64, 0xbb, 0xf1, 0xe1, 0xbe, 0x65, 0x3e, 0xec, 0x89, 0x87, 0xeb,
+ 0xb8, 0x1e, 0xf5, 0xf3,
+ 0xfa, 0xc9, 0xfc, 0xfd, 0x1b, 0x12, 0xff, 0x2e, 0x86, 0x79, 0xbe, 0x04,
+ 0xa6, 0x21, 0x25, 0x91,
+ 0x3b, 0xc1, 0xf1, 0xd2, 0xcb, 0x33, 0x94, 0xfb, 0xe4, 0x70, 0xa0, 0x8c,
+ 0x0e, 0xc9, 0x45, 0x78,
+ 0xdd, 0x9b, 0x1c, 0x63, 0x03, 0x02, 0x9d, 0x84, 0x2d, 0xb0, 0x94, 0x3f,
+ 0x16, 0x44, 0x7b, 0x6f,
+ 0x77, 0x5d, 0xd1, 0xe0, 0x8e, 0xf4, 0x82, 0x02, 0x9c, 0x1e, 0xae, 0xc4,
+ 0x73, 0xde, 0x1a, 0x9d,
+ 0xc5, 0x78, 0x4b, 0x76, 0x3a, 0x2c, 0x0c, 0x09, 0x7b, 0x77, 0xaa, 0xf4,
+ 0xd7, 0x91, 0x65, 0x9e,
+ 0x16, 0x4b, 0xbe, 0x33, 0xb1, 0xde, 0xea, 0x44, 0x90, 0x7a, 0x7b, 0x71,
+ 0x9e, 0x83, 0xf2, 0xb2,
+ 0xa4, 0x6e, 0x24, 0xa5, 0x05, 0x06, 0x64, 0x4f, 0x77, 0x13, 0x7f, 0x41,
+ 0x3a, 0xcc, 0x8d, 0xb1,
+ 0xad, 0x92, 0x58, 0x90, 0xc9, 0x8e, 0xc3, 0x03, 0xd2, 0x11, 0xf9, 0xa6,
+ 0xab, 0xb1, 0x17, 0x32,
+ 0xd8, 0xf7, 0xaa, 0xbd, 0x32, 0x9d, 0x93, 0x6f, 0xa3, 0x30, 0x0d, 0x5c,
+ 0x06, 0xb2, 0xee, 0x75,
+ 0xb7, 0x49, 0x2c, 0x48, 0x85, 0x47, 0x80, 0xe0, 0x69, 0xe9, 0x9d, 0x53,
+ 0xb4, 0xb9, 0xea, 0x19,
+ 0x92, 0x23, 0xef, 0x1b, 0xe8, 0xb0, 0x30, 0x24, 0x2f, 0x1f, 0xed, 0x56,
+ 0xda, 0x01, 0x57, 0x3d,
+ 0x49, 0xf0, 0x96, 0xec, 0x74, 0x58, 0x18, 0x12, 0xf6, 0xee, 0x97, 0x2b,
+ 0x6d, 0xe1, 0xca, 0xff,
+ 0x64, 0x7a, 0xd9, 0x0d, 0x0e, 0xb5, 0x66, 0xad, 0x82, 0xe4, 0x4c, 0xd6,
+ 0xfd, 0xab, 0x7d, 0x35,
+ 0x91, 0x07, 0x3c, 0x51, 0x46, 0xc5, 0x8b, 0x7d, 0x55, 0xde, 0x9a, 0x77,
+ 0x6b, 0x53, 0x24, 0x8a,
+ 0x9c, 0x8b, 0x06, 0x3d, 0x60, 0x40, 0x4b, 0xed, 0xe9, 0xa2, 0xa8, 0xec,
+ 0x85, 0x57, 0xbb, 0x7e,
+ 0x01, 0x1c, 0xf0, 0x87, 0xdb, 0x92, 0x69, 0x37, 0x97, 0xfe, 0x2d, 0x1f,
+ 0x6f, 0x8f, 0x90, 0x6d,
+ 0xe8, 0xf2, 0x04, 0x97, 0x40, 0xc1, 0x72, 0xb6, 0x0f, 0x7d, 0x71, 0x09,
+ 0x47, 0xdb, 0xd2, 0x54,
+ 0xa0, 0x1e, 0x62, 0xfc, 0xef, 0x0b, 0x03, 0x93, 0x6e, 0x6d, 0xcb, 0x3d,
+ 0x45, 0xb5, 0x88, 0xc6,
+ 0xbb, 0xd9, 0xe6, 0xa3, 0x78, 0x50, 0x29, 0x47, 0x42, 0x6b, 0x82, 0xd7,
+ 0x35, 0x32, 0xe5, 0x80,
+ 0xb5, 0x71, 0x0f, 0x85, 0xf0, 0xa0, 0x52, 0x8e, 0x84, 0xd6, 0xc7, 0x6d,
+ 0x6a, 0x64, 0x09, 0xc3,
+ 0x29, 0xfa, 0x09, 0xb8, 0x90, 0xe0, 0x19, 0x63, 0x6d, 0x74, 0x6f, 0x81,
+ 0xef, 0x33, 0xb2, 0xbd,
+ 0xe3, 0x36, 0x5b, 0x6f, 0xf9, 0xae, 0x07, 0x94, 0x47, 0x40, 0xad, 0xd0,
+ 0x08, 0x7b, 0xab, 0x0d,
+ 0x5a, 0xd7, 0x9e, 0x01, 0xf4, 0x19, 0xfc, 0xbd, 0xe8, 0x14, 0x75, 0x39,
+ 0xe3, 0x94, 0xad, 0x57,
+ 0x17, 0x57, 0x4e, 0xb4, 0x6a, 0x4c, 0x83, 0x73, 0x07, 0x84, 0x56, 0x6e,
+ 0xf1, 0x0c, 0x62, 0xdf,
+ 0x63, 0x2e, 0x4c, 0x1e, 0x4a, 0xcd, 0xba, 0x28, 0xe1, 0x5b, 0x8f, 0x8b,
+ 0x33, 0x80, 0x0b, 0xf5,
+ 0x25, 0x6a, 0xc3, 0x53, 0x6d, 0xf7, 0xb0, 0xc4, 0x46, 0xf6, 0x70, 0x05,
+ 0x6e, 0xb8, 0xbd, 0x24,
+ 0x7d, 0x85, 0x7e, 0x9f, 0xec, 0x09, 0x9e, 0x17, 0x43, 0xdd, 0x5f, 0x02,
+ 0x53, 0xf1, 0xf3, 0xa9,
+ 0x20, 0x06, 0x75, 0x8d, 0x5c, 0x68, 0xbe, 0x2f, 0xc8, 0x76, 0xe9, 0x66,
+ 0x7e, 0x4e, 0x28, 0x3e,
+ 0x13, 0x27, 0x08, 0xed, 0x80, 0x41, 0xe4, 0xaf, 0x1e, 0xfa, 0xe2, 0x12,
+ 0x8e, 0x75, 0x67, 0xa8,
+ 0x0e, 0xa8, 0xe9, 0x26, 0x88, 0xf0, 0x7b, 0xc9, 0xc6, 0xbd, 0x45, 0xba,
+ 0x5f, 0x56, 0xec, 0x43,
+ 0x9f, 0xaf, 0xd5, 0x77, 0xce, 0x35, 0xf0, 0xb4, 0x93, 0x63, 0xdf, 0xcd,
+ 0x34, 0x05, 0xc8, 0xc9,
+ 0xe1, 0x0e, 0x78, 0xa2, 0x8c, 0x49, 0xd5, 0xfa, 0xaa, 0x7f, 0xf7, 0xee,
+ 0xd6, 0xa6, 0x48, 0xd7,
+ 0x55, 0x63, 0x87, 0xa0, 0xa7, 0x7b, 0xee, 0x43, 0xb9, 0x57, 0x1d, 0x9c,
+ 0xd3, 0x4d, 0xd1, 0x79,
+ 0x8f, 0xac, 0x0e, 0xd0, 0xe0, 0x01, 0xaf, 0x42, 0xf7, 0x58, 0x4a, 0xfe,
+ 0x0b, 0x22, 0xdc, 0xd6,
+ 0xd1, 0x0b, 0xd6, 0x88, 0xfe, 0x15, 0x34, 0x23, 0x06, 0x32, 0x8b, 0xbb,
+ 0x97, 0xcf, 0x74, 0xf6,
+ 0x40, 0x0c, 0xea, 0xd9, 0xb8, 0xd0, 0xbf, 0x5e, 0x53, 0xec, 0x11, 0xcc,
+ 0xfc, 0x9c, 0x50, 0x7c,
+ 0x82, 0x20, 0x34, 0xbc, 0xc6, 0x84, 0x6f, 0xd2, 0x4b, 0x24, 0x78, 0x65,
+ 0xe5, 0x26, 0x43, 0x22,
+ 0x52, 0x37, 0x12, 0xb3, 0xe3, 0x03, 0x32, 0xc6, 0xda, 0xe8, 0xde, 0xc1,
+ 0x1d, 0x66, 0xa7, 0xb9,
+ 0xb2, 0x25, 0x9a, 0x96, 0xb4, 0xd8, 0x8e, 0x0b, 0xe7, 0x69, 0x04, 0x30,
+ 0xa4, 0x4f, 0x7f, 0x03,
+ 0x59, 0xf3, 0x4d, 0x4b, 0x5a, 0x6c, 0x47, 0xe4, 0x92, 0xd5, 0x02, 0x18,
+ 0x52, 0xc6, 0xde, 0xe0,
+ 0x3f, 0xb1, 0xb7, 0x8b, 0x21, 0x3e, 0xf3, 0x27, 0xfd, 0x0e, 0x14, 0xf0,
+ 0x71, 0xb0, 0x40, 0x0f,
+ 0xd4, 0x67, 0x60, 0x56, 0xcf, 0x8a, 0x3a, 0xc8, 0x88, 0xb2, 0x12, 0xd8,
+ 0x87, 0x39, 0xe1, 0xec,
+ 0x79, 0xf5, 0x38, 0xc6, 0x06, 0x04, 0xf9, 0xcb, 0x5a, 0xa3, 0xeb, 0x7e,
+ 0x2c, 0x88, 0xf6, 0xde,
+ 0xe7, 0x46, 0x1d, 0x36, 0x13, 0xa3, 0x60, 0x48, 0x5e, 0x3e, 0x19, 0xac,
+ 0x77, 0x02, 0xae, 0x7a,
+ 0xef, 0xa6, 0x91, 0x84, 0x04, 0xb9, 0xae, 0x33, 0x6c, 0xc2, 0xb2, 0x54,
+ 0x89, 0xf0, 0xa4, 0x94,
+ 0xca, 0xcc, 0x52, 0xd7, 0x69, 0x4e, 0x1e, 0xf7, 0x2a, 0x34, 0xc2, 0x51,
+ 0xe7, 0x48, 0x19, 0xb0,
+ 0x47, 0x58, 0x7f, 0xca, 0xfc, 0xa8, 0x63, 0xdb, 0x30, 0x53, 0xd2, 0x91,
+ 0x32, 0xb7, 0x26, 0xbc,
+ 0xa5, 0x72, 0xd4, 0x22, 0xde, 0x94, 0x0d, 0x78, 0xe0, 0xed, 0x52, 0x5e,
+ 0x55, 0x43, 0x1d, 0xdc,
+ 0xaf, 0xaa, 0x7b, 0x5d, 0xbc, 0x69, 0x11, 0x6d, 0x3f, 0x2e, 0xa3, 0x98,
+ 0x75, 0x6c, 0xf4, 0xe8,
+ 0xa8, 0xfe, 0xee, 0x4e, 0xf8, 0x11, 0xcd, 0xe8, 0x5c, 0x91, 0x60, 0xc5,
+ 0xbb, 0x47, 0x82, 0x28,
+ 0x93, 0x3f, 0x1f, 0x9c, 0x33, 0x22, 0x59, 0x13, 0xb8, 0xe1, 0xc0, 0x49,
+ 0xb5, 0x8e, 0xc7, 0x50,
+ 0xed, 0x9e, 0xb2, 0x49, 0x71, 0x5e, 0x7c, 0x5d, 0x81, 0xfd, 0xe8, 0x6a,
+ 0x57, 0x2d, 0x47, 0x4e,
+ 0xc3, 0x30, 0x2e, 0xe2, 0xa5, 0xc6, 0xb9, 0xbb, 0x8f, 0x36, 0x44, 0xb6,
+ 0x76, 0x35, 0x83, 0x33,
+ 0x2a, 0xde, 0xda, 0xf2, 0x3e, 0x95, 0xa2, 0x3a, 0x17, 0xb5, 0x18, 0xa0,
+ 0x5e, 0x61, 0xc1, 0x0a,
+ 0x96, 0x53, 0xa9, 0x42, 0x02, 0xbd, 0x57, 0xf8, 0x36, 0x61, 0x59, 0x2a,
+ 0xa5, 0x78, 0x52, 0x4a,
+ 0x2c, 0x96, 0xbf, 0x66, 0xa1, 0x7f, 0x17, 0x88, 0xe3, 0xf4, 0xf6, 0xe2,
+ 0xff, 0xc5, 0x27, 0xa7,
+ 0x5d, 0x83, 0x0b, 0x12, 0xb0, 0x61, 0x20, 0x38, 0x8b, 0xab, 0xb6, 0x64,
+ 0x2d, 0xbf, 0xdb, 0x97,
+ 0xe2, 0x2a, 0xab, 0xe8, 0x22, 0x3c, 0x6e, 0xa3, 0xd0, 0xbe, 0x80, 0xcf,
+ 0x67, 0xf4, 0x3b, 0x60,
+ 0x7f, 0xbd, 0x5d, 0x52, 0x99, 0xee, 0x4c, 0x79, 0xae, 0xe2, 0x05, 0x3c,
+ 0x8d, 0x2c, 0x10, 0x73,
+ 0x7e, 0xa1, 0xad, 0xd5, 0x42, 0x7c, 0x25, 0x4e, 0x39, 0x1c, 0x28, 0x23,
+ 0xe2, 0xa3, 0x80, 0x1e,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x3e, 0xad, 0x47, 0x0c, 0xfa, 0xac, 0x9a, 0x10, 0x6a, 0xf0, 0x39, 0xef,
+ 0x1e, 0x3f, 0xd0, 0x62,
+ 0xc7, 0x40, 0x68, 0xbb, 0x4f, 0xcb, 0xde, 0x67, 0x96, 0x48, 0xf0, 0xca,
+ 0x09, 0x4c, 0x86, 0x44,
+ 0x05, 0x6c, 0xb6, 0xde, 0x31, 0x9f, 0x0e, 0xeb, 0x8e, 0x80, 0x99, 0x63,
+ 0x10, 0xf6, 0x95, 0x1a,
+ 0x3c, 0x95, 0x64, 0xc1, 0x8f, 0x4b, 0x48, 0x7e, 0x87, 0xcf, 0x63, 0xd1,
+ 0xc0, 0xe2, 0x33, 0xb8,
+ 0x87, 0x4c, 0x82, 0x62, 0xf7, 0x1b, 0x61, 0x39, 0xc5, 0xa4, 0xe1, 0x06,
+ 0xf5, 0xd0, 0xd6, 0x38,
+ 0x67, 0x5e, 0x0a, 0x47, 0xa0, 0xc0, 0xdd, 0xf4, 0xf8, 0x25, 0x3b, 0xf7,
+ 0x4c, 0xf9, 0x0e, 0x82,
+ 0x99, 0xe7, 0xb0, 0xe3, 0x51, 0xdf, 0x45, 0x06, 0x67, 0x22, 0x31, 0x8f,
+ 0x95, 0xa1, 0x2e, 0x64,
+ 0xab, 0xda, 0x3d, 0x04, 0x56, 0x64, 0x76, 0xb1, 0x26, 0x50, 0x17, 0xe4,
+ 0x0a, 0x15, 0xf1, 0x9f,
+ 0xf9, 0xed, 0x2f, 0xb7, 0xb5, 0x67, 0x44, 0x77, 0xfc, 0xb8, 0xc9, 0x25,
+ 0x17, 0x73, 0x56, 0x26,
+ 0xd2, 0x2f, 0x05, 0xc2, 0x50, 0x60, 0x8f, 0x7a, 0x7c, 0xf3, 0xfc, 0x9a,
+ 0x26, 0x9d, 0x07, 0x41,
+ 0x06, 0x48, 0x65, 0x94, 0x9f, 0xea, 0xb5, 0xb2, 0xf4, 0x41, 0xee, 0x42,
+ 0xa1, 0xa4, 0xe6, 0xad,
+ 0xa9, 0xe2, 0x1e, 0xc9, 0x23, 0x83, 0xa4, 0xdf, 0xcb, 0x6f, 0x4d, 0xda,
+ 0xd4, 0xc8, 0x12, 0x45,
+ 0x1b, 0xc7, 0x84, 0x5f, 0x97, 0x5b, 0x2a, 0xd4, 0x2c, 0x06, 0x49, 0xea,
+ 0x70, 0x87, 0x6d, 0x46,
+ 0x48, 0xec, 0x66, 0x6b, 0xaf, 0xca, 0x71, 0x25, 0x61, 0x10, 0xba, 0x34,
+ 0x02, 0x6e, 0x5a, 0x92,
+ 0x97, 0x4f, 0x59, 0xc5, 0xd9, 0x2f, 0x3e, 0xcf, 0xa1, 0x9f, 0x74, 0x35,
+ 0xca, 0xf7, 0xc2, 0x27,
+ 0xc2, 0x2c, 0xde, 0x65, 0x7e, 0x54, 0xd0, 0x8c, 0x18, 0xc8, 0x69, 0xa9,
+ 0x19, 0xba, 0x13, 0x5e,
+ 0x86, 0x50, 0x72, 0xe5, 0x2c, 0x89, 0x08, 0x0e, 0x52, 0x5a, 0xcc, 0x19,
+ 0x9a, 0x5f, 0x46, 0x55,
+ 0x61, 0x16, 0x6f, 0xd3, 0x3f, 0x2a, 0x68, 0x46, 0x0c, 0x64, 0xd5, 0xb5,
+ 0xed, 0x5d, 0xe8, 0x2f,
+ 0x36, 0x4d, 0xcb, 0xbe, 0xed, 0xb6, 0x54, 0x6b, 0x58, 0x0c, 0x92, 0x17,
+ 0xe0, 0xcd, 0xda, 0x8c,
+ 0x57, 0x5b, 0xa4, 0x6d, 0xd2, 0x9c, 0x3c, 0x2d, 0x54, 0x68, 0x47, 0xa2,
+ 0x0d, 0x90, 0x32, 0xa3,
+ 0xf0, 0x11, 0x53, 0x82, 0x79, 0xef, 0xe3, 0x3b, 0x59, 0xba, 0x4f, 0xc2,
+ 0x86, 0x0e, 0xcc, 0xa5,
+ 0x2e, 0xae, 0x9c, 0xab, 0xd4, 0x98, 0xc5, 0xe6, 0x0e, 0xcb, 0xac, 0xdc,
+ 0x21, 0x18, 0xc4, 0x7d,
+ 0x7a, 0xd1, 0xeb, 0x8c, 0xa8, 0x71, 0x42, 0x92, 0x20, 0x62, 0x9c, 0x5f,
+ 0x9d, 0xda, 0x85, 0x69,
+ 0x3d, 0x89, 0x94, 0x46, 0x54, 0xd9, 0x21, 0x49, 0x10, 0x31, 0x4e, 0xce,
+ 0xaf, 0x6d, 0xa3, 0xd5,
+ 0x81, 0x04, 0xe7, 0xf6, 0x68, 0xf1, 0xd4, 0x8b, 0x31, 0xe5, 0x0f, 0x44,
+ 0x54, 0x74, 0x30, 0x95,
+ 0x35, 0x69, 0x18, 0xf4, 0x43, 0xc3, 0xef, 0x32, 0x22, 0xcd, 0xe5, 0x36,
+ 0x51, 0x9f, 0xa9, 0x3b,
+ 0xc9, 0xe8, 0x81, 0x9d, 0xc7, 0x3b, 0xa5, 0xae, 0x50, 0xf5, 0xb5, 0x70,
+ 0x56, 0x1a, 0x6a, 0x07,
+ 0x65, 0x66, 0x29, 0x8a, 0xd5, 0x27, 0x0f, 0x9a, 0x15, 0x1a, 0x61, 0xc9,
+ 0x92, 0x24, 0xed, 0x58,
+ 0x78, 0xe9, 0xc8, 0x41, 0xdd, 0x96, 0x90, 0xfc, 0xcd, 0x5d, 0xc6, 0x61,
+ 0x43, 0x07, 0x66, 0xb3,
+ 0xbc, 0x8d, 0x73, 0xb0, 0x3c, 0x28, 0xf5, 0xc2, 0x21, 0xd4, 0x41, 0x8a,
+ 0xfb, 0x19, 0x93, 0x40,
+ 0x1c, 0x93, 0x11, 0x4c, 0xd3, 0x23, 0xf6, 0x51, 0x4f, 0xb9, 0x8a, 0xb7,
+ 0xbe, 0xac, 0x1b, 0x86,
+ 0x68, 0xea, 0x13, 0xe6, 0xf3, 0xa2, 0xcf, 0x0a, 0xa9, 0x66, 0x53, 0x52,
+ 0x7c, 0x20, 0x72, 0xac,
+ 0xcc, 0x84, 0x37, 0x43, 0xf6, 0xa4, 0xab, 0x45, 0xde, 0x75, 0x2c, 0x13,
+ 0x46, 0xec, 0xff, 0x1d,
+ 0xbf, 0xa9, 0xa0, 0xfa, 0x92, 0x5d, 0x4e, 0x9b, 0x5b, 0x15, 0x36, 0xab,
+ 0x4a, 0x4b, 0xe0, 0xf7,
+ 0x71, 0x15, 0xb4, 0x74, 0x11, 0x1e, 0x37, 0xb0, 0x68, 0x5f, 0x40, 0x86,
+ 0xd2, 0x7a, 0xfc, 0x30,
+ 0xb8, 0xfd, 0x35, 0xe9, 0xd6, 0x25, 0x92, 0x1e, 0x38, 0xaa, 0xf5, 0xf6,
+ 0x84, 0x60, 0x96, 0x37,
+ 0xa6, 0x56, 0x07, 0x68, 0x70, 0xe1, 0xb6, 0x21, 0x9a, 0x2c, 0x25, 0x7f,
+ 0xe4, 0x11, 0x6e, 0x6b,
+ 0x22, 0x3e, 0x56, 0x40, 0x29, 0x8f, 0x6c, 0x41, 0x25, 0x49, 0xb3, 0x58,
+ 0xa0, 0x93, 0xcb, 0xe4,
+ 0x4d, 0x80, 0xd0, 0xb5, 0x9e, 0x55, 0x7f, 0xce, 0xef, 0x90, 0x23, 0x57,
+ 0x12, 0x98, 0xcf, 0x88,
+ 0xb0, 0x1d, 0xb9, 0x5b, 0xc1, 0x3f, 0x5c, 0x65, 0x0a, 0x56, 0x5e, 0x0e,
+ 0x7a, 0x92, 0x9c, 0xd9,
+ 0x90, 0x1b, 0xcc, 0xd6, 0x9d, 0x57, 0xe2, 0x4a, 0xc2, 0x20, 0xb7, 0x68,
+ 0x04, 0xdc, 0xb4, 0xe7,
+ 0x23, 0x22, 0xa6, 0xc7, 0xf2, 0x1d, 0x05, 0x76, 0xb2, 0xb7, 0x9e, 0x47,
+ 0xcf, 0x1c, 0x5b, 0x89,
+ 0x37, 0x51, 0x3b, 0x39, 0x36, 0x24, 0x3d, 0x5c, 0xcf, 0xf2, 0xbf, 0x08,
+ 0x8f, 0x42, 0x4a, 0xe1,
+ 0x6b, 0xce, 0xc0, 0xac, 0x5d, 0xd7, 0x74, 0x53, 0xd3, 0xa7, 0x24, 0x73,
+ 0xcd, 0x72, 0x01, 0x1b,
+ 0x09, 0xfc, 0x7c, 0x35, 0xcc, 0x88, 0xa7, 0x4c, 0xa5, 0x02, 0x86, 0xe7,
+ 0x91, 0x7d, 0x9a, 0x83,
+ 0x24, 0x76, 0x33, 0xd4, 0xb6, 0x65, 0xd9, 0xf3, 0xd1, 0x08, 0x5d, 0x1a,
+ 0x01, 0x37, 0x2d, 0x49,
+ 0x31, 0x19, 0x5e, 0xad, 0xa9, 0xce, 0x88, 0xee, 0x3b, 0xb3, 0x51, 0x4a,
+ 0x2e, 0xe6, 0xac, 0x4c,
+ 0x4e, 0xa4, 0x03, 0xff, 0x30, 0x20, 0xc4, 0x97, 0x95, 0x51, 0x54, 0x76,
+ 0xa3, 0xca, 0xbc, 0x3f,
+ 0x80, 0x18, 0x17, 0x71, 0xb3, 0x63, 0xbd, 0xbc, 0xa6, 0x1b, 0x22, 0x5b,
+ 0x3b, 0xfb, 0xa0, 0xf8,
+ 0x27, 0x52, 0xe0, 0x9e, 0x18, 0x10, 0x62, 0xaa, 0xab, 0xc9, 0x2a, 0x3b,
+ 0xb0, 0x65, 0x5e, 0xfe,
+ 0x58, 0xef, 0xbd, 0xcc, 0x81, 0xfe, 0x2e, 0xd3, 0x05, 0x2b, 0x2f, 0x07,
+ 0x3d, 0x49, 0x4e, 0x8d,
+ 0x21, 0x1a, 0x85, 0x0a, 0x87, 0xfa, 0xd7, 0x18, 0x5f, 0x88, 0xc4, 0x79,
+ 0x11, 0xc1, 0xb8, 0x53,
+ 0xcf, 0xa0, 0xe4, 0x09, 0x58, 0xd1, 0x10, 0x1c, 0xa4, 0xb4, 0x5b, 0x32,
+ 0xf7, 0xbe, 0x8c, 0xaa,
+ 0x94, 0x6b, 0x8a, 0x8f, 0x77, 0x5a, 0x85, 0x96, 0xdb, 0x5e, 0x03, 0x14,
+ 0x7b, 0xa5, 0xb1, 0x90,
+ 0x2d, 0x8a, 0x4f, 0xe1, 0x7a, 0xed, 0x7e, 0xbf, 0x74, 0x0a, 0xdb, 0xfd,
+ 0x90, 0x4a, 0xb7, 0xca,
+ 0xde, 0xbf, 0xcf, 0x29, 0xad, 0x77, 0x26, 0xdd, 0x57, 0x71, 0xe3, 0x1e,
+ 0xa7, 0x16, 0x08, 0xd8,
+ 0xae, 0xb6, 0x8b, 0xda, 0x67, 0xfb, 0x78, 0x5a, 0xa8, 0xd0, 0x8e, 0x87,
+ 0x1a, 0xe3, 0x64, 0x85,
+ 0x8c, 0x88, 0xdd, 0x9a, 0x4e, 0x74, 0x14, 0x1b, 0x8d, 0x99, 0x3d, 0xdf,
+ 0xba, 0x70, 0xaf, 0x61,
+ 0x5e, 0xa7, 0xd8, 0x58, 0x1e, 0x14, 0x9b, 0x61, 0xf1, 0x6a, 0xc1, 0x45,
+ 0x9c, 0xed, 0xa8, 0x20,
+ 0xa3, 0x3a, 0xb1, 0xb6, 0x41, 0x7e, 0xb8, 0xca, 0x14, 0xac, 0xbc, 0x1c,
+ 0xf4, 0xe7, 0xfb, 0x71,
+ 0x2b, 0xc2, 0x2a, 0x75, 0xe5, 0x07, 0xcb, 0x0d, 0x80, 0x4b, 0x35, 0xbf,
+ 0x31, 0xee, 0x51, 0x67,
+ 0x9e, 0xb3, 0x25, 0xf0, 0x15, 0xa7, 0x99, 0x83, 0x04, 0x9d, 0xf2, 0xd2,
+ 0x5b, 0x8a, 0x58, 0xa4,
+ 0xbd, 0x91, 0x83, 0x37, 0xe7, 0xba, 0x9c, 0xf5, 0xb6, 0x2a, 0x6c, 0x95,
+ 0x94, 0x96, 0x03, 0x2d,
+ 0x1a, 0xdb, 0x74, 0xd8, 0x4c, 0xc9, 0x43, 0xe3, 0xbb, 0xf8, 0x64, 0xf5,
+ 0x1f, 0x08, 0xfd, 0x2b,
+ 0x98, 0xfb, 0x40, 0x64, 0x8a, 0x4d, 0x2c, 0x31, 0xf0, 0xdc, 0x1c, 0x90,
+ 0xfa, 0x2e, 0xbe, 0x09,
+ 0xd7, 0x43, 0xb3, 0x1c, 0x61, 0xff, 0x81, 0x91, 0xf2, 0x73, 0x65, 0xf9,
+ 0x36, 0x6b, 0x92, 0x5b,
+ 0x43, 0x28, 0x39, 0x93, 0x16, 0xa5, 0x04, 0x07, 0x29, 0x2d, 0x66, 0xed,
+ 0x4d, 0xce, 0x23, 0xcb,
+ 0xd0, 0x17, 0x26, 0x0f, 0x25, 0x87, 0x5d, 0x14, 0x91, 0xcc, 0xa6, 0xa4,
+ 0xf8, 0x40, 0xe4, 0x9b,
+ 0x4b, 0xc8, 0xb5, 0x21, 0x01, 0xbf, 0xca, 0x7c, 0x1b, 0xd1, 0xcd, 0x15,
+ 0xb3, 0x3c, 0x29, 0x25,
+ 0x28, 0xe6, 0xf9, 0x3f, 0x4b, 0x72, 0x70, 0x54, 0xfa, 0x8a, 0x42, 0x9e,
+ 0x80, 0xbc, 0x22, 0xd0,
+ 0x9b, 0xdf, 0x93, 0x2e, 0x24, 0x38, 0x97, 0x68, 0x8a, 0x1d, 0x6b, 0xb1,
+ 0x4b, 0x7c, 0xcd, 0xbe,
+ 0x4c, 0x9c, 0x20, 0x32, 0x45, 0xc7, 0x16, 0xf9, 0x78, 0x6e, 0x0e, 0x48,
+ 0x7d, 0x17, 0x5f, 0xe5,
+ 0x6f, 0xbe, 0x86, 0xf5, 0xb7, 0xda, 0x13, 0x8f, 0xca, 0xd9, 0x90, 0x0f,
+ 0xb2, 0x0b, 0x04, 0x6c,
+ 0x4f, 0xb8, 0xf3, 0x78, 0xeb, 0xb2, 0xad, 0xa0, 0x02, 0xaf, 0x79, 0x69,
+ 0xcc, 0x45, 0x2c, 0x52,
+ 0x0b, 0xc4, 0x5f, 0xf8, 0xb9, 0x6f, 0x75, 0x22, 0x48, 0x3d, 0xdc, 0xd9,
+ 0x4f, 0xa0, 0x79, 0x59,
+ 0x42, 0x34, 0xc9, 0x14, 0xcd, 0x37, 0x6d, 0x30, 0xbe, 0xd3, 0x4b, 0xf2,
+ 0x22, 0x41, 0xb3, 0xa6,
+ 0xb6, 0x55, 0xdc, 0xcf, 0x5e, 0xd5, 0xe9, 0xd7, 0xfe, 0x17, 0xb0, 0x4c,
+ 0xdb, 0x36, 0x7a, 0x74,
+ 0xf4, 0x61, 0x15, 0xdb, 0x93, 0xe2, 0x84, 0xe7, 0x40, 0xc4, 0xfb, 0xbe,
+ 0xf9, 0x77, 0xc9, 0xd2,
+ 0xfe, 0xb9, 0xba, 0xa4, 0xf1, 0x1f, 0x98, 0xf2, 0x9f, 0x07, 0x0a, 0x78,
+ 0xd9, 0x58, 0x20, 0xe6,
+ 0x0d, 0x8c, 0x3a, 0x6c, 0x26, 0x85, 0xc0, 0x90, 0xbc, 0x7c, 0x32, 0x9b,
+ 0xee, 0x04, 0x9f, 0xf4,
+ 0xb1, 0x01, 0x49, 0xdc, 0x1a, 0xad, 0x35, 0x52, 0x9d, 0xa8, 0x73, 0x11,
+ 0x15, 0x1d, 0x0c, 0xb4,
+ 0x07, 0x54, 0x95, 0x13, 0x44, 0x78, 0xdc, 0x85, 0x63, 0xbf, 0xc3, 0x5d,
+ 0xce, 0x2b, 0x76, 0xc0,
+ 0x46, 0x44, 0x8f, 0x4d, 0x27, 0x3a, 0x0a, 0xec, 0xa7, 0xad, 0xff, 0x8e,
+ 0x5d, 0x38, 0xb6, 0xd1,
+ 0x45, 0x60, 0x5c, 0x07, 0x89, 0x4f, 0xb1, 0xb5, 0xdd, 0x6c, 0x88, 0xaf,
+ 0xec, 0x6a, 0xc5, 0x66,
+ 0xda, 0xcf, 0x89, 0x70, 0x47, 0x7a, 0x41, 0x01, 0x4e, 0x0f, 0x57, 0x62,
+ 0xd8, 0x6f, 0x0d, 0xaf,
+ 0xdb, 0xd3, 0x79, 0xf7, 0x9c, 0xe8, 0x28, 0x36, 0xd9, 0xf1, 0x7a, 0x7d,
+ 0xb7, 0xe0, 0x9d, 0xc2,
+ 0xe9, 0xee, 0xf4, 0x10, 0x9b, 0x53, 0x1b, 0x81, 0x98, 0x83, 0x5c, 0x16,
+ 0x28, 0x54, 0x42, 0x39,
+ 0xf8, 0xf1, 0xdf, 0x30, 0x6e, 0xf5, 0x2d, 0x40, 0x6b, 0x46, 0xe4, 0x3a,
+ 0x78, 0xfc, 0xc6, 0x4b,
+ 0x50, 0x0f, 0x31, 0x7e, 0x96, 0xe4, 0xe0, 0xa8, 0x37, 0xd7, 0x84, 0xff,
+ 0xc3, 0xbb, 0x44, 0x63,
+ 0x6d, 0x86, 0xa5, 0x38, 0xc2, 0x3d, 0xc1, 0xe1, 0x27, 0xe6, 0xca, 0x31,
+ 0x6c, 0xd6, 0xe7, 0xb6,
+ },
};
-static const uint8_t kuz_table_inv[16][256 * 16] =
-{
- { /* 0 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c, 0x72, 0x76, 0xa2, 0x6e,
- 0x02, 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8, 0xe4, 0xec, 0x87, 0xdc,
- 0x03, 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4, 0x96, 0x9a, 0x25, 0xb2,
- 0x04, 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73, 0x0b, 0x1b, 0xcd, 0x7b,
- 0x05, 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f, 0x79, 0x6d, 0x6f, 0x15,
- 0x06, 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab, 0xef, 0xf7, 0x4a, 0xa7,
- 0x07, 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7, 0x9d, 0x81, 0xe8, 0xc9,
- 0x08, 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6, 0x16, 0x36, 0x59, 0xf6,
- 0x09, 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a, 0x64, 0x40, 0xfb, 0x98,
- 0x0a, 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e, 0xf2, 0xda, 0xde, 0x2a,
- 0x0b, 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52, 0x80, 0xac, 0x7c, 0x44,
- 0x0c, 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95, 0x1d, 0x2d, 0x94, 0x8d,
- 0x0d, 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9, 0x6f, 0x5b, 0x36, 0xe3,
- 0x0e, 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d, 0xf9, 0xc1, 0x13, 0x51,
- 0x0f, 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21, 0x8b, 0xb7, 0xb1, 0x3f,
- 0x10, 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f, 0x2c, 0x6c, 0xb2, 0x2f,
- 0x11, 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63, 0x5e, 0x1a, 0x10, 0x41,
- 0x12, 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7, 0xc8, 0x80, 0x35, 0xf3,
- 0x13, 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb, 0xba, 0xf6, 0x97, 0x9d,
- 0x14, 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c, 0x27, 0x77, 0x7f, 0x54,
- 0x15, 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10, 0x55, 0x01, 0xdd, 0x3a,
- 0x16, 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4, 0xc3, 0x9b, 0xf8, 0x88,
- 0x17, 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8, 0xb1, 0xed, 0x5a, 0xe6,
- 0x18, 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9, 0x3a, 0x5a, 0xeb, 0xd9,
- 0x19, 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85, 0x48, 0x2c, 0x49, 0xb7,
- 0x1a, 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31, 0xde, 0xb6, 0x6c, 0x05,
- 0x1b, 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d, 0xac, 0xc0, 0xce, 0x6b,
- 0x1c, 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a, 0x31, 0x41, 0x26, 0xa2,
- 0x1d, 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6, 0x43, 0x37, 0x84, 0xcc,
- 0x1e, 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42, 0xd5, 0xad, 0xa1, 0x7e,
- 0x1f, 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e, 0xa7, 0xdb, 0x03, 0x10,
- 0x20, 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e, 0x58, 0xd8, 0xa7, 0x5e,
- 0x21, 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72, 0x2a, 0xae, 0x05, 0x30,
- 0x22, 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6, 0xbc, 0x34, 0x20, 0x82,
- 0x23, 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa, 0xce, 0x42, 0x82, 0xec,
- 0x24, 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d, 0x53, 0xc3, 0x6a, 0x25,
- 0x25, 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01, 0x21, 0xb5, 0xc8, 0x4b,
- 0x26, 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5, 0xb7, 0x2f, 0xed, 0xf9,
- 0x27, 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9, 0xc5, 0x59, 0x4f, 0x97,
- 0x28, 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8, 0x4e, 0xee, 0xfe, 0xa8,
- 0x29, 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94, 0x3c, 0x98, 0x5c, 0xc6,
- 0x2a, 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20, 0xaa, 0x02, 0x79, 0x74,
- 0x2b, 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c, 0xd8, 0x74, 0xdb, 0x1a,
- 0x2c, 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b, 0x45, 0xf5, 0x33, 0xd3,
- 0x2d, 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7, 0x37, 0x83, 0x91, 0xbd,
- 0x2e, 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53, 0xa1, 0x19, 0xb4, 0x0f,
- 0x2f, 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f, 0xd3, 0x6f, 0x16, 0x61,
- 0x30, 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11, 0x74, 0xb4, 0x15, 0x71,
- 0x31, 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d, 0x06, 0xc2, 0xb7, 0x1f,
- 0x32, 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9, 0x90, 0x58, 0x92, 0xad,
- 0x33, 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5, 0xe2, 0x2e, 0x30, 0xc3,
- 0x34, 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62, 0x7f, 0xaf, 0xd8, 0x0a,
- 0x35, 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e, 0x0d, 0xd9, 0x7a, 0x64,
- 0x36, 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba, 0x9b, 0x43, 0x5f, 0xd6,
- 0x37, 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6, 0xe9, 0x35, 0xfd, 0xb8,
- 0x38, 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7, 0x62, 0x82, 0x4c, 0x87,
- 0x39, 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b, 0x10, 0xf4, 0xee, 0xe9,
- 0x3a, 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f, 0x86, 0x6e, 0xcb, 0x5b,
- 0x3b, 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43, 0xf4, 0x18, 0x69, 0x35,
- 0x3c, 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84, 0x69, 0x99, 0x81, 0xfc,
- 0x3d, 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8, 0x1b, 0xef, 0x23, 0x92,
- 0x3e, 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c, 0x8d, 0x75, 0x06, 0x20,
- 0x3f, 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30, 0xff, 0x03, 0xa4, 0x4e,
- 0x40, 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c, 0xb0, 0x73, 0x8d, 0xbc,
- 0x41, 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50, 0xc2, 0x05, 0x2f, 0xd2,
- 0x42, 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4, 0x54, 0x9f, 0x0a, 0x60,
- 0x43, 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88, 0x26, 0xe9, 0xa8, 0x0e,
- 0x44, 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f, 0xbb, 0x68, 0x40, 0xc7,
- 0x45, 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23, 0xc9, 0x1e, 0xe2, 0xa9,
- 0x46, 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97, 0x5f, 0x84, 0xc7, 0x1b,
- 0x47, 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb, 0x2d, 0xf2, 0x65, 0x75,
- 0x48, 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda, 0xa6, 0x45, 0xd4, 0x4a,
- 0x49, 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6, 0xd4, 0x33, 0x76, 0x24,
- 0x4a, 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02, 0x42, 0xa9, 0x53, 0x96,
- 0x4b, 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e, 0x30, 0xdf, 0xf1, 0xf8,
- 0x4c, 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9, 0xad, 0x5e, 0x19, 0x31,
- 0x4d, 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5, 0xdf, 0x28, 0xbb, 0x5f,
- 0x4e, 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71, 0x49, 0xb2, 0x9e, 0xed,
- 0x4f, 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d, 0x3b, 0xc4, 0x3c, 0x83,
- 0x50, 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33, 0x9c, 0x1f, 0x3f, 0x93,
- 0x51, 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f, 0xee, 0x69, 0x9d, 0xfd,
- 0x52, 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb, 0x78, 0xf3, 0xb8, 0x4f,
- 0x53, 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87, 0x0a, 0x85, 0x1a, 0x21,
- 0x54, 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40, 0x97, 0x04, 0xf2, 0xe8,
- 0x55, 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c, 0xe5, 0x72, 0x50, 0x86,
- 0x56, 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98, 0x73, 0xe8, 0x75, 0x34,
- 0x57, 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4, 0x01, 0x9e, 0xd7, 0x5a,
- 0x58, 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5, 0x8a, 0x29, 0x66, 0x65,
- 0x59, 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9, 0xf8, 0x5f, 0xc4, 0x0b,
- 0x5a, 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d, 0x6e, 0xc5, 0xe1, 0xb9,
- 0x5b, 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61, 0x1c, 0xb3, 0x43, 0xd7,
- 0x5c, 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6, 0x81, 0x32, 0xab, 0x1e,
- 0x5d, 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca, 0xf3, 0x44, 0x09, 0x70,
- 0x5e, 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e, 0x65, 0xde, 0x2c, 0xc2,
- 0x5f, 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12, 0x17, 0xa8, 0x8e, 0xac,
- 0x60, 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22, 0xe8, 0xab, 0x2a, 0xe2,
- 0x61, 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e, 0x9a, 0xdd, 0x88, 0x8c,
- 0x62, 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa, 0x0c, 0x47, 0xad, 0x3e,
- 0x63, 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96, 0x7e, 0x31, 0x0f, 0x50,
- 0x64, 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51, 0xe3, 0xb0, 0xe7, 0x99,
- 0x65, 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d, 0x91, 0xc6, 0x45, 0xf7,
- 0x66, 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89, 0x07, 0x5c, 0x60, 0x45,
- 0x67, 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5, 0x75, 0x2a, 0xc2, 0x2b,
- 0x68, 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4, 0xfe, 0x9d, 0x73, 0x14,
- 0x69, 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8, 0x8c, 0xeb, 0xd1, 0x7a,
- 0x6a, 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c, 0x1a, 0x71, 0xf4, 0xc8,
- 0x6b, 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70, 0x68, 0x07, 0x56, 0xa6,
- 0x6c, 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7, 0xf5, 0x86, 0xbe, 0x6f,
- 0x6d, 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb, 0x87, 0xf0, 0x1c, 0x01,
- 0x6e, 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f, 0x11, 0x6a, 0x39, 0xb3,
- 0x6f, 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03, 0x63, 0x1c, 0x9b, 0xdd,
- 0x70, 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d, 0xc4, 0xc7, 0x98, 0xcd,
- 0x71, 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41, 0xb6, 0xb1, 0x3a, 0xa3,
- 0x72, 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5, 0x20, 0x2b, 0x1f, 0x11,
- 0x73, 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99, 0x52, 0x5d, 0xbd, 0x7f,
- 0x74, 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e, 0xcf, 0xdc, 0x55, 0xb6,
- 0x75, 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32, 0xbd, 0xaa, 0xf7, 0xd8,
- 0x76, 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86, 0x2b, 0x30, 0xd2, 0x6a,
- 0x77, 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea, 0x59, 0x46, 0x70, 0x04,
- 0x78, 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb, 0xd2, 0xf1, 0xc1, 0x3b,
- 0x79, 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7, 0xa0, 0x87, 0x63, 0x55,
- 0x7a, 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13, 0x36, 0x1d, 0x46, 0xe7,
- 0x7b, 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f, 0x44, 0x6b, 0xe4, 0x89,
- 0x7c, 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8, 0xd9, 0xea, 0x0c, 0x40,
- 0x7d, 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4, 0xab, 0x9c, 0xae, 0x2e,
- 0x7e, 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60, 0x3d, 0x06, 0x8b, 0x9c,
- 0x7f, 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c, 0x4f, 0x70, 0x29, 0xf2,
- 0x80, 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78, 0xa3, 0xe6, 0xd9, 0xbb,
- 0x81, 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14, 0xd1, 0x90, 0x7b, 0xd5,
- 0x82, 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0, 0x47, 0x0a, 0x5e, 0x67,
- 0x83, 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc, 0x35, 0x7c, 0xfc, 0x09,
- 0x84, 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b, 0xa8, 0xfd, 0x14, 0xc0,
- 0x85, 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67, 0xda, 0x8b, 0xb6, 0xae,
- 0x86, 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3, 0x4c, 0x11, 0x93, 0x1c,
- 0x87, 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf, 0x3e, 0x67, 0x31, 0x72,
- 0x88, 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e, 0xb5, 0xd0, 0x80, 0x4d,
- 0x89, 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2, 0xc7, 0xa6, 0x22, 0x23,
- 0x8a, 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46, 0x51, 0x3c, 0x07, 0x91,
- 0x8b, 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a, 0x23, 0x4a, 0xa5, 0xff,
- 0x8c, 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed, 0xbe, 0xcb, 0x4d, 0x36,
- 0x8d, 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81, 0xcc, 0xbd, 0xef, 0x58,
- 0x8e, 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35, 0x5a, 0x27, 0xca, 0xea,
- 0x8f, 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59, 0x28, 0x51, 0x68, 0x84,
- 0x90, 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77, 0x8f, 0x8a, 0x6b, 0x94,
- 0x91, 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b, 0xfd, 0xfc, 0xc9, 0xfa,
- 0x92, 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf, 0x6b, 0x66, 0xec, 0x48,
- 0x93, 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3, 0x19, 0x10, 0x4e, 0x26,
- 0x94, 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04, 0x84, 0x91, 0xa6, 0xef,
- 0x95, 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68, 0xf6, 0xe7, 0x04, 0x81,
- 0x96, 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc, 0x60, 0x7d, 0x21, 0x33,
- 0x97, 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0, 0x12, 0x0b, 0x83, 0x5d,
- 0x98, 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91, 0x99, 0xbc, 0x32, 0x62,
- 0x99, 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd, 0xeb, 0xca, 0x90, 0x0c,
- 0x9a, 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49, 0x7d, 0x50, 0xb5, 0xbe,
- 0x9b, 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25, 0x0f, 0x26, 0x17, 0xd0,
- 0x9c, 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2, 0x92, 0xa7, 0xff, 0x19,
- 0x9d, 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e, 0xe0, 0xd1, 0x5d, 0x77,
- 0x9e, 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a, 0x76, 0x4b, 0x78, 0xc5,
- 0x9f, 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56, 0x04, 0x3d, 0xda, 0xab,
- 0xa0, 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66, 0xfb, 0x3e, 0x7e, 0xe5,
- 0xa1, 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a, 0x89, 0x48, 0xdc, 0x8b,
- 0xa2, 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe, 0x1f, 0xd2, 0xf9, 0x39,
- 0xa3, 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2, 0x6d, 0xa4, 0x5b, 0x57,
- 0xa4, 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15, 0xf0, 0x25, 0xb3, 0x9e,
- 0xa5, 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79, 0x82, 0x53, 0x11, 0xf0,
- 0xa6, 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd, 0x14, 0xc9, 0x34, 0x42,
- 0xa7, 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1, 0x66, 0xbf, 0x96, 0x2c,
- 0xa8, 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80, 0xed, 0x08, 0x27, 0x13,
- 0xa9, 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec, 0x9f, 0x7e, 0x85, 0x7d,
- 0xaa, 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58, 0x09, 0xe4, 0xa0, 0xcf,
- 0xab, 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34, 0x7b, 0x92, 0x02, 0xa1,
- 0xac, 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3, 0xe6, 0x13, 0xea, 0x68,
- 0xad, 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f, 0x94, 0x65, 0x48, 0x06,
- 0xae, 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b, 0x02, 0xff, 0x6d, 0xb4,
- 0xaf, 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47, 0x70, 0x89, 0xcf, 0xda,
- 0xb0, 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69, 0xd7, 0x52, 0xcc, 0xca,
- 0xb1, 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05, 0xa5, 0x24, 0x6e, 0xa4,
- 0xb2, 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1, 0x33, 0xbe, 0x4b, 0x16,
- 0xb3, 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd, 0x41, 0xc8, 0xe9, 0x78,
- 0xb4, 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a, 0xdc, 0x49, 0x01, 0xb1,
- 0xb5, 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76, 0xae, 0x3f, 0xa3, 0xdf,
- 0xb6, 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2, 0x38, 0xa5, 0x86, 0x6d,
- 0xb7, 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae, 0x4a, 0xd3, 0x24, 0x03,
- 0xb8, 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f, 0xc1, 0x64, 0x95, 0x3c,
- 0xb9, 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3, 0xb3, 0x12, 0x37, 0x52,
- 0xba, 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57, 0x25, 0x88, 0x12, 0xe0,
- 0xbb, 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b, 0x57, 0xfe, 0xb0, 0x8e,
- 0xbc, 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc, 0xca, 0x7f, 0x58, 0x47,
- 0xbd, 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90, 0xb8, 0x09, 0xfa, 0x29,
- 0xbe, 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24, 0x2e, 0x93, 0xdf, 0x9b,
- 0xbf, 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48, 0x5c, 0xe5, 0x7d, 0xf5,
- 0xc0, 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44, 0x13, 0x95, 0x54, 0x07,
- 0xc1, 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28, 0x61, 0xe3, 0xf6, 0x69,
- 0xc2, 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c, 0xf7, 0x79, 0xd3, 0xdb,
- 0xc3, 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0, 0x85, 0x0f, 0x71, 0xb5,
- 0xc4, 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37, 0x18, 0x8e, 0x99, 0x7c,
- 0xc5, 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b, 0x6a, 0xf8, 0x3b, 0x12,
- 0xc6, 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef, 0xfc, 0x62, 0x1e, 0xa0,
- 0xc7, 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83, 0x8e, 0x14, 0xbc, 0xce,
- 0xc8, 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2, 0x05, 0xa3, 0x0d, 0xf1,
- 0xc9, 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce, 0x77, 0xd5, 0xaf, 0x9f,
- 0xca, 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a, 0xe1, 0x4f, 0x8a, 0x2d,
- 0xcb, 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16, 0x93, 0x39, 0x28, 0x43,
- 0xcc, 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1, 0x0e, 0xb8, 0xc0, 0x8a,
- 0xcd, 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd, 0x7c, 0xce, 0x62, 0xe4,
- 0xce, 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09, 0xea, 0x54, 0x47, 0x56,
- 0xcf, 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65, 0x98, 0x22, 0xe5, 0x38,
- 0xd0, 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b, 0x3f, 0xf9, 0xe6, 0x28,
- 0xd1, 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27, 0x4d, 0x8f, 0x44, 0x46,
- 0xd2, 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93, 0xdb, 0x15, 0x61, 0xf4,
- 0xd3, 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff, 0xa9, 0x63, 0xc3, 0x9a,
- 0xd4, 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38, 0x34, 0xe2, 0x2b, 0x53,
- 0xd5, 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54, 0x46, 0x94, 0x89, 0x3d,
- 0xd6, 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0, 0xd0, 0x0e, 0xac, 0x8f,
- 0xd7, 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c, 0xa2, 0x78, 0x0e, 0xe1,
- 0xd8, 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad, 0x29, 0xcf, 0xbf, 0xde,
- 0xd9, 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1, 0x5b, 0xb9, 0x1d, 0xb0,
- 0xda, 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75, 0xcd, 0x23, 0x38, 0x02,
- 0xdb, 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19, 0xbf, 0x55, 0x9a, 0x6c,
- 0xdc, 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde, 0x22, 0xd4, 0x72, 0xa5,
- 0xdd, 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2, 0x50, 0xa2, 0xd0, 0xcb,
- 0xde, 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06, 0xc6, 0x38, 0xf5, 0x79,
- 0xdf, 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a, 0xb4, 0x4e, 0x57, 0x17,
- 0xe0, 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a, 0x4b, 0x4d, 0xf3, 0x59,
- 0xe1, 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36, 0x39, 0x3b, 0x51, 0x37,
- 0xe2, 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82, 0xaf, 0xa1, 0x74, 0x85,
- 0xe3, 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee, 0xdd, 0xd7, 0xd6, 0xeb,
- 0xe4, 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29, 0x40, 0x56, 0x3e, 0x22,
- 0xe5, 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45, 0x32, 0x20, 0x9c, 0x4c,
- 0xe6, 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1, 0xa4, 0xba, 0xb9, 0xfe,
- 0xe7, 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d, 0xd6, 0xcc, 0x1b, 0x90,
- 0xe8, 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc, 0x5d, 0x7b, 0xaa, 0xaf,
- 0xe9, 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0, 0x2f, 0x0d, 0x08, 0xc1,
- 0xea, 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64, 0xb9, 0x97, 0x2d, 0x73,
- 0xeb, 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08, 0xcb, 0xe1, 0x8f, 0x1d,
- 0xec, 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf, 0x56, 0x60, 0x67, 0xd4,
- 0xed, 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3, 0x24, 0x16, 0xc5, 0xba,
- 0xee, 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17, 0xb2, 0x8c, 0xe0, 0x08,
- 0xef, 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b, 0xc0, 0xfa, 0x42, 0x66,
- 0xf0, 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55, 0x67, 0x21, 0x41, 0x76,
- 0xf1, 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39, 0x15, 0x57, 0xe3, 0x18,
- 0xf2, 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d, 0x83, 0xcd, 0xc6, 0xaa,
- 0xf3, 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1, 0xf1, 0xbb, 0x64, 0xc4,
- 0xf4, 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26, 0x6c, 0x3a, 0x8c, 0x0d,
- 0xf5, 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a, 0x1e, 0x4c, 0x2e, 0x63,
- 0xf6, 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe, 0x88, 0xd6, 0x0b, 0xd1,
- 0xf7, 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92, 0xfa, 0xa0, 0xa9, 0xbf,
- 0xf8, 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3, 0x71, 0x17, 0x18, 0x80,
- 0xf9, 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf, 0x03, 0x61, 0xba, 0xee,
- 0xfa, 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b, 0x95, 0xfb, 0x9f, 0x5c,
- 0xfb, 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07, 0xe7, 0x8d, 0x3d, 0x32,
- 0xfc, 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0, 0x7a, 0x0c, 0xd5, 0xfb,
- 0xfd, 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac, 0x08, 0x7a, 0x77, 0x95,
- 0xfe, 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18, 0x9e, 0xe0, 0x52, 0x27,
- 0xff, 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74, 0xec, 0x96, 0xf0, 0x49,
- },
- { /* 1 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x94, 0xa5, 0x64, 0x0d, 0x89, 0xa2, 0x7f, 0x4b, 0x6e, 0x16, 0xc3, 0x4c, 0xe8, 0xe3, 0xd0, 0x4d,
- 0xeb, 0x89, 0xc8, 0x1a, 0xd1, 0x87, 0xfe, 0x96, 0xdc, 0x2c, 0x45, 0x98, 0x13, 0x05, 0x63, 0x9a,
- 0x7f, 0x2c, 0xac, 0x17, 0x58, 0x25, 0x81, 0xdd, 0xb2, 0x3a, 0x86, 0xd4, 0xfb, 0xe6, 0xb3, 0xd7,
- 0x15, 0xd1, 0x53, 0x34, 0x61, 0xcd, 0x3f, 0xef, 0x7b, 0x58, 0x8a, 0xf3, 0x26, 0x0a, 0xc6, 0xf7,
- 0x81, 0x74, 0x37, 0x39, 0xe8, 0x6f, 0x40, 0xa4, 0x15, 0x4e, 0x49, 0xbf, 0xce, 0xe9, 0x16, 0xba,
- 0xfe, 0x58, 0x9b, 0x2e, 0xb0, 0x4a, 0xc1, 0x79, 0xa7, 0x74, 0xcf, 0x6b, 0x35, 0x0f, 0xa5, 0x6d,
- 0x6a, 0xfd, 0xff, 0x23, 0x39, 0xe8, 0xbe, 0x32, 0xc9, 0x62, 0x0c, 0x27, 0xdd, 0xec, 0x75, 0x20,
- 0x2a, 0x61, 0xa6, 0x68, 0xc2, 0x59, 0x7e, 0x1d, 0xf6, 0xb0, 0xd7, 0x25, 0x4c, 0x14, 0x4f, 0x2d,
- 0xbe, 0xc4, 0xc2, 0x65, 0x4b, 0xfb, 0x01, 0x56, 0x98, 0xa6, 0x14, 0x69, 0xa4, 0xf7, 0x9f, 0x60,
- 0xc1, 0xe8, 0x6e, 0x72, 0x13, 0xde, 0x80, 0x8b, 0x2a, 0x9c, 0x92, 0xbd, 0x5f, 0x11, 0x2c, 0xb7,
- 0x55, 0x4d, 0x0a, 0x7f, 0x9a, 0x7c, 0xff, 0xc0, 0x44, 0x8a, 0x51, 0xf1, 0xb7, 0xf2, 0xfc, 0xfa,
- 0x3f, 0xb0, 0xf5, 0x5c, 0xa3, 0x94, 0x41, 0xf2, 0x8d, 0xe8, 0x5d, 0xd6, 0x6a, 0x1e, 0x89, 0xda,
- 0xab, 0x15, 0x91, 0x51, 0x2a, 0x36, 0x3e, 0xb9, 0xe3, 0xfe, 0x9e, 0x9a, 0x82, 0xfd, 0x59, 0x97,
- 0xd4, 0x39, 0x3d, 0x46, 0x72, 0x13, 0xbf, 0x64, 0x51, 0xc4, 0x18, 0x4e, 0x79, 0x1b, 0xea, 0x40,
- 0x40, 0x9c, 0x59, 0x4b, 0xfb, 0xb1, 0xc0, 0x2f, 0x3f, 0xd2, 0xdb, 0x02, 0x91, 0xf8, 0x3a, 0x0d,
- 0x54, 0xc2, 0x8f, 0xd0, 0x47, 0xb2, 0xfc, 0x3a, 0x2f, 0xa3, 0x6d, 0x4a, 0x98, 0x28, 0x9e, 0x5a,
- 0xc0, 0x67, 0xeb, 0xdd, 0xce, 0x10, 0x83, 0x71, 0x41, 0xb5, 0xae, 0x06, 0x70, 0xcb, 0x4e, 0x17,
- 0xbf, 0x4b, 0x47, 0xca, 0x96, 0x35, 0x02, 0xac, 0xf3, 0x8f, 0x28, 0xd2, 0x8b, 0x2d, 0xfd, 0xc0,
- 0x2b, 0xee, 0x23, 0xc7, 0x1f, 0x97, 0x7d, 0xe7, 0x9d, 0x99, 0xeb, 0x9e, 0x63, 0xce, 0x2d, 0x8d,
- 0x41, 0x13, 0xdc, 0xe4, 0x26, 0x7f, 0xc3, 0xd5, 0x54, 0xfb, 0xe7, 0xb9, 0xbe, 0x22, 0x58, 0xad,
- 0xd5, 0xb6, 0xb8, 0xe9, 0xaf, 0xdd, 0xbc, 0x9e, 0x3a, 0xed, 0x24, 0xf5, 0x56, 0xc1, 0x88, 0xe0,
- 0xaa, 0x9a, 0x14, 0xfe, 0xf7, 0xf8, 0x3d, 0x43, 0x88, 0xd7, 0xa2, 0x21, 0xad, 0x27, 0x3b, 0x37,
- 0x3e, 0x3f, 0x70, 0xf3, 0x7e, 0x5a, 0x42, 0x08, 0xe6, 0xc1, 0x61, 0x6d, 0x45, 0xc4, 0xeb, 0x7a,
- 0x7e, 0xa3, 0x29, 0xb8, 0x85, 0xeb, 0x82, 0x27, 0xd9, 0x13, 0xba, 0x6f, 0xd4, 0x3c, 0xd1, 0x77,
- 0xea, 0x06, 0x4d, 0xb5, 0x0c, 0x49, 0xfd, 0x6c, 0xb7, 0x05, 0x79, 0x23, 0x3c, 0xdf, 0x01, 0x3a,
- 0x95, 0x2a, 0xe1, 0xa2, 0x54, 0x6c, 0x7c, 0xb1, 0x05, 0x3f, 0xff, 0xf7, 0xc7, 0x39, 0xb2, 0xed,
- 0x01, 0x8f, 0x85, 0xaf, 0xdd, 0xce, 0x03, 0xfa, 0x6b, 0x29, 0x3c, 0xbb, 0x2f, 0xda, 0x62, 0xa0,
- 0x6b, 0x72, 0x7a, 0x8c, 0xe4, 0x26, 0xbd, 0xc8, 0xa2, 0x4b, 0x30, 0x9c, 0xf2, 0x36, 0x17, 0x80,
- 0xff, 0xd7, 0x1e, 0x81, 0x6d, 0x84, 0xc2, 0x83, 0xcc, 0x5d, 0xf3, 0xd0, 0x1a, 0xd5, 0xc7, 0xcd,
- 0x80, 0xfb, 0xb2, 0x96, 0x35, 0xa1, 0x43, 0x5e, 0x7e, 0x67, 0x75, 0x04, 0xe1, 0x33, 0x74, 0x1a,
- 0x14, 0x5e, 0xd6, 0x9b, 0xbc, 0x03, 0x3c, 0x15, 0x10, 0x71, 0xb6, 0x48, 0x09, 0xd0, 0xa4, 0x57,
- 0xa8, 0x47, 0xdd, 0x63, 0x8e, 0xa7, 0x3b, 0x74, 0x5e, 0x85, 0xda, 0x94, 0xf3, 0x50, 0xff, 0xb4,
- 0x3c, 0xe2, 0xb9, 0x6e, 0x07, 0x05, 0x44, 0x3f, 0x30, 0x93, 0x19, 0xd8, 0x1b, 0xb3, 0x2f, 0xf9,
- 0x43, 0xce, 0x15, 0x79, 0x5f, 0x20, 0xc5, 0xe2, 0x82, 0xa9, 0x9f, 0x0c, 0xe0, 0x55, 0x9c, 0x2e,
- 0xd7, 0x6b, 0x71, 0x74, 0xd6, 0x82, 0xba, 0xa9, 0xec, 0xbf, 0x5c, 0x40, 0x08, 0xb6, 0x4c, 0x63,
- 0xbd, 0x96, 0x8e, 0x57, 0xef, 0x6a, 0x04, 0x9b, 0x25, 0xdd, 0x50, 0x67, 0xd5, 0x5a, 0x39, 0x43,
- 0x29, 0x33, 0xea, 0x5a, 0x66, 0xc8, 0x7b, 0xd0, 0x4b, 0xcb, 0x93, 0x2b, 0x3d, 0xb9, 0xe9, 0x0e,
- 0x56, 0x1f, 0x46, 0x4d, 0x3e, 0xed, 0xfa, 0x0d, 0xf9, 0xf1, 0x15, 0xff, 0xc6, 0x5f, 0x5a, 0xd9,
- 0xc2, 0xba, 0x22, 0x40, 0xb7, 0x4f, 0x85, 0x46, 0x97, 0xe7, 0xd6, 0xb3, 0x2e, 0xbc, 0x8a, 0x94,
- 0x82, 0x26, 0x7b, 0x0b, 0x4c, 0xfe, 0x45, 0x69, 0xa8, 0x35, 0x0d, 0xb1, 0xbf, 0x44, 0xb0, 0x99,
- 0x16, 0x83, 0x1f, 0x06, 0xc5, 0x5c, 0x3a, 0x22, 0xc6, 0x23, 0xce, 0xfd, 0x57, 0xa7, 0x60, 0xd4,
- 0x69, 0xaf, 0xb3, 0x11, 0x9d, 0x79, 0xbb, 0xff, 0x74, 0x19, 0x48, 0x29, 0xac, 0x41, 0xd3, 0x03,
- 0xfd, 0x0a, 0xd7, 0x1c, 0x14, 0xdb, 0xc4, 0xb4, 0x1a, 0x0f, 0x8b, 0x65, 0x44, 0xa2, 0x03, 0x4e,
- 0x97, 0xf7, 0x28, 0x3f, 0x2d, 0x33, 0x7a, 0x86, 0xd3, 0x6d, 0x87, 0x42, 0x99, 0x4e, 0x76, 0x6e,
- 0x03, 0x52, 0x4c, 0x32, 0xa4, 0x91, 0x05, 0xcd, 0xbd, 0x7b, 0x44, 0x0e, 0x71, 0xad, 0xa6, 0x23,
- 0x7c, 0x7e, 0xe0, 0x25, 0xfc, 0xb4, 0x84, 0x10, 0x0f, 0x41, 0xc2, 0xda, 0x8a, 0x4b, 0x15, 0xf4,
- 0xe8, 0xdb, 0x84, 0x28, 0x75, 0x16, 0xfb, 0x5b, 0x61, 0x57, 0x01, 0x96, 0x62, 0xa8, 0xc5, 0xb9,
- 0xfc, 0x85, 0x52, 0xb3, 0xc9, 0x15, 0xc7, 0x4e, 0x71, 0x26, 0xb7, 0xde, 0x6b, 0x78, 0x61, 0xee,
- 0x68, 0x20, 0x36, 0xbe, 0x40, 0xb7, 0xb8, 0x05, 0x1f, 0x30, 0x74, 0x92, 0x83, 0x9b, 0xb1, 0xa3,
- 0x17, 0x0c, 0x9a, 0xa9, 0x18, 0x92, 0x39, 0xd8, 0xad, 0x0a, 0xf2, 0x46, 0x78, 0x7d, 0x02, 0x74,
- 0x83, 0xa9, 0xfe, 0xa4, 0x91, 0x30, 0x46, 0x93, 0xc3, 0x1c, 0x31, 0x0a, 0x90, 0x9e, 0xd2, 0x39,
- 0xe9, 0x54, 0x01, 0x87, 0xa8, 0xd8, 0xf8, 0xa1, 0x0a, 0x7e, 0x3d, 0x2d, 0x4d, 0x72, 0xa7, 0x19,
- 0x7d, 0xf1, 0x65, 0x8a, 0x21, 0x7a, 0x87, 0xea, 0x64, 0x68, 0xfe, 0x61, 0xa5, 0x91, 0x77, 0x54,
- 0x02, 0xdd, 0xc9, 0x9d, 0x79, 0x5f, 0x06, 0x37, 0xd6, 0x52, 0x78, 0xb5, 0x5e, 0x77, 0xc4, 0x83,
- 0x96, 0x78, 0xad, 0x90, 0xf0, 0xfd, 0x79, 0x7c, 0xb8, 0x44, 0xbb, 0xf9, 0xb6, 0x94, 0x14, 0xce,
- 0xd6, 0xe4, 0xf4, 0xdb, 0x0b, 0x4c, 0xb9, 0x53, 0x87, 0x96, 0x60, 0xfb, 0x27, 0x6c, 0x2e, 0xc3,
- 0x42, 0x41, 0x90, 0xd6, 0x82, 0xee, 0xc6, 0x18, 0xe9, 0x80, 0xa3, 0xb7, 0xcf, 0x8f, 0xfe, 0x8e,
- 0x3d, 0x6d, 0x3c, 0xc1, 0xda, 0xcb, 0x47, 0xc5, 0x5b, 0xba, 0x25, 0x63, 0x34, 0x69, 0x4d, 0x59,
- 0xa9, 0xc8, 0x58, 0xcc, 0x53, 0x69, 0x38, 0x8e, 0x35, 0xac, 0xe6, 0x2f, 0xdc, 0x8a, 0x9d, 0x14,
- 0xc3, 0x35, 0xa7, 0xef, 0x6a, 0x81, 0x86, 0xbc, 0xfc, 0xce, 0xea, 0x08, 0x01, 0x66, 0xe8, 0x34,
- 0x57, 0x90, 0xc3, 0xe2, 0xe3, 0x23, 0xf9, 0xf7, 0x92, 0xd8, 0x29, 0x44, 0xe9, 0x85, 0x38, 0x79,
- 0x28, 0xbc, 0x6f, 0xf5, 0xbb, 0x06, 0x78, 0x2a, 0x20, 0xe2, 0xaf, 0x90, 0x12, 0x63, 0x8b, 0xae,
- 0xbc, 0x19, 0x0b, 0xf8, 0x32, 0xa4, 0x07, 0x61, 0x4e, 0xf4, 0x6c, 0xdc, 0xfa, 0x80, 0x5b, 0xe3,
- 0x93, 0x8e, 0x79, 0xc6, 0xdf, 0x8d, 0x76, 0xe8, 0xbc, 0xc9, 0x77, 0xeb, 0x25, 0xa0, 0x3d, 0xab,
- 0x07, 0x2b, 0x1d, 0xcb, 0x56, 0x2f, 0x09, 0xa3, 0xd2, 0xdf, 0xb4, 0xa7, 0xcd, 0x43, 0xed, 0xe6,
- 0x78, 0x07, 0xb1, 0xdc, 0x0e, 0x0a, 0x88, 0x7e, 0x60, 0xe5, 0x32, 0x73, 0x36, 0xa5, 0x5e, 0x31,
- 0xec, 0xa2, 0xd5, 0xd1, 0x87, 0xa8, 0xf7, 0x35, 0x0e, 0xf3, 0xf1, 0x3f, 0xde, 0x46, 0x8e, 0x7c,
- 0x86, 0x5f, 0x2a, 0xf2, 0xbe, 0x40, 0x49, 0x07, 0xc7, 0x91, 0xfd, 0x18, 0x03, 0xaa, 0xfb, 0x5c,
- 0x12, 0xfa, 0x4e, 0xff, 0x37, 0xe2, 0x36, 0x4c, 0xa9, 0x87, 0x3e, 0x54, 0xeb, 0x49, 0x2b, 0x11,
- 0x6d, 0xd6, 0xe2, 0xe8, 0x6f, 0xc7, 0xb7, 0x91, 0x1b, 0xbd, 0xb8, 0x80, 0x10, 0xaf, 0x98, 0xc6,
- 0xf9, 0x73, 0x86, 0xe5, 0xe6, 0x65, 0xc8, 0xda, 0x75, 0xab, 0x7b, 0xcc, 0xf8, 0x4c, 0x48, 0x8b,
- 0xb9, 0xef, 0xdf, 0xae, 0x1d, 0xd4, 0x08, 0xf5, 0x4a, 0x79, 0xa0, 0xce, 0x69, 0xb4, 0x72, 0x86,
- 0x2d, 0x4a, 0xbb, 0xa3, 0x94, 0x76, 0x77, 0xbe, 0x24, 0x6f, 0x63, 0x82, 0x81, 0x57, 0xa2, 0xcb,
- 0x52, 0x66, 0x17, 0xb4, 0xcc, 0x53, 0xf6, 0x63, 0x96, 0x55, 0xe5, 0x56, 0x7a, 0xb1, 0x11, 0x1c,
- 0xc6, 0xc3, 0x73, 0xb9, 0x45, 0xf1, 0x89, 0x28, 0xf8, 0x43, 0x26, 0x1a, 0x92, 0x52, 0xc1, 0x51,
- 0xac, 0x3e, 0x8c, 0x9a, 0x7c, 0x19, 0x37, 0x1a, 0x31, 0x21, 0x2a, 0x3d, 0x4f, 0xbe, 0xb4, 0x71,
- 0x38, 0x9b, 0xe8, 0x97, 0xf5, 0xbb, 0x48, 0x51, 0x5f, 0x37, 0xe9, 0x71, 0xa7, 0x5d, 0x64, 0x3c,
- 0x47, 0xb7, 0x44, 0x80, 0xad, 0x9e, 0xc9, 0x8c, 0xed, 0x0d, 0x6f, 0xa5, 0x5c, 0xbb, 0xd7, 0xeb,
- 0xd3, 0x12, 0x20, 0x8d, 0x24, 0x3c, 0xb6, 0xc7, 0x83, 0x1b, 0xac, 0xe9, 0xb4, 0x58, 0x07, 0xa6,
- 0xc7, 0x4c, 0xf6, 0x16, 0x98, 0x3f, 0x8a, 0xd2, 0x93, 0x6a, 0x1a, 0xa1, 0xbd, 0x88, 0xa3, 0xf1,
- 0x53, 0xe9, 0x92, 0x1b, 0x11, 0x9d, 0xf5, 0x99, 0xfd, 0x7c, 0xd9, 0xed, 0x55, 0x6b, 0x73, 0xbc,
- 0x2c, 0xc5, 0x3e, 0x0c, 0x49, 0xb8, 0x74, 0x44, 0x4f, 0x46, 0x5f, 0x39, 0xae, 0x8d, 0xc0, 0x6b,
- 0xb8, 0x60, 0x5a, 0x01, 0xc0, 0x1a, 0x0b, 0x0f, 0x21, 0x50, 0x9c, 0x75, 0x46, 0x6e, 0x10, 0x26,
- 0xd2, 0x9d, 0xa5, 0x22, 0xf9, 0xf2, 0xb5, 0x3d, 0xe8, 0x32, 0x90, 0x52, 0x9b, 0x82, 0x65, 0x06,
- 0x46, 0x38, 0xc1, 0x2f, 0x70, 0x50, 0xca, 0x76, 0x86, 0x24, 0x53, 0x1e, 0x73, 0x61, 0xb5, 0x4b,
- 0x39, 0x14, 0x6d, 0x38, 0x28, 0x75, 0x4b, 0xab, 0x34, 0x1e, 0xd5, 0xca, 0x88, 0x87, 0x06, 0x9c,
- 0xad, 0xb1, 0x09, 0x35, 0xa1, 0xd7, 0x34, 0xe0, 0x5a, 0x08, 0x16, 0x86, 0x60, 0x64, 0xd6, 0xd1,
- 0xed, 0x2d, 0x50, 0x7e, 0x5a, 0x66, 0xf4, 0xcf, 0x65, 0xda, 0xcd, 0x84, 0xf1, 0x9c, 0xec, 0xdc,
- 0x79, 0x88, 0x34, 0x73, 0xd3, 0xc4, 0x8b, 0x84, 0x0b, 0xcc, 0x0e, 0xc8, 0x19, 0x7f, 0x3c, 0x91,
- 0x06, 0xa4, 0x98, 0x64, 0x8b, 0xe1, 0x0a, 0x59, 0xb9, 0xf6, 0x88, 0x1c, 0xe2, 0x99, 0x8f, 0x46,
- 0x92, 0x01, 0xfc, 0x69, 0x02, 0x43, 0x75, 0x12, 0xd7, 0xe0, 0x4b, 0x50, 0x0a, 0x7a, 0x5f, 0x0b,
- 0xf8, 0xfc, 0x03, 0x4a, 0x3b, 0xab, 0xcb, 0x20, 0x1e, 0x82, 0x47, 0x77, 0xd7, 0x96, 0x2a, 0x2b,
- 0x6c, 0x59, 0x67, 0x47, 0xb2, 0x09, 0xb4, 0x6b, 0x70, 0x94, 0x84, 0x3b, 0x3f, 0x75, 0xfa, 0x66,
- 0x13, 0x75, 0xcb, 0x50, 0xea, 0x2c, 0x35, 0xb6, 0xc2, 0xae, 0x02, 0xef, 0xc4, 0x93, 0x49, 0xb1,
- 0x87, 0xd0, 0xaf, 0x5d, 0x63, 0x8e, 0x4a, 0xfd, 0xac, 0xb8, 0xc1, 0xa3, 0x2c, 0x70, 0x99, 0xfc,
- 0x3b, 0xc9, 0xa4, 0xa5, 0x51, 0x2a, 0x4d, 0x9c, 0xe2, 0x4c, 0xad, 0x7f, 0xd6, 0xf0, 0xc2, 0x1f,
- 0xaf, 0x6c, 0xc0, 0xa8, 0xd8, 0x88, 0x32, 0xd7, 0x8c, 0x5a, 0x6e, 0x33, 0x3e, 0x13, 0x12, 0x52,
- 0xd0, 0x40, 0x6c, 0xbf, 0x80, 0xad, 0xb3, 0x0a, 0x3e, 0x60, 0xe8, 0xe7, 0xc5, 0xf5, 0xa1, 0x85,
- 0x44, 0xe5, 0x08, 0xb2, 0x09, 0x0f, 0xcc, 0x41, 0x50, 0x76, 0x2b, 0xab, 0x2d, 0x16, 0x71, 0xc8,
- 0x2e, 0x18, 0xf7, 0x91, 0x30, 0xe7, 0x72, 0x73, 0x99, 0x14, 0x27, 0x8c, 0xf0, 0xfa, 0x04, 0xe8,
- 0xba, 0xbd, 0x93, 0x9c, 0xb9, 0x45, 0x0d, 0x38, 0xf7, 0x02, 0xe4, 0xc0, 0x18, 0x19, 0xd4, 0xa5,
- 0xc5, 0x91, 0x3f, 0x8b, 0xe1, 0x60, 0x8c, 0xe5, 0x45, 0x38, 0x62, 0x14, 0xe3, 0xff, 0x67, 0x72,
- 0x51, 0x34, 0x5b, 0x86, 0x68, 0xc2, 0xf3, 0xae, 0x2b, 0x2e, 0xa1, 0x58, 0x0b, 0x1c, 0xb7, 0x3f,
- 0x11, 0xa8, 0x02, 0xcd, 0x93, 0x73, 0x33, 0x81, 0x14, 0xfc, 0x7a, 0x5a, 0x9a, 0xe4, 0x8d, 0x32,
- 0x85, 0x0d, 0x66, 0xc0, 0x1a, 0xd1, 0x4c, 0xca, 0x7a, 0xea, 0xb9, 0x16, 0x72, 0x07, 0x5d, 0x7f,
- 0xfa, 0x21, 0xca, 0xd7, 0x42, 0xf4, 0xcd, 0x17, 0xc8, 0xd0, 0x3f, 0xc2, 0x89, 0xe1, 0xee, 0xa8,
- 0x6e, 0x84, 0xae, 0xda, 0xcb, 0x56, 0xb2, 0x5c, 0xa6, 0xc6, 0xfc, 0x8e, 0x61, 0x02, 0x3e, 0xe5,
- 0x04, 0x79, 0x51, 0xf9, 0xf2, 0xbe, 0x0c, 0x6e, 0x6f, 0xa4, 0xf0, 0xa9, 0xbc, 0xee, 0x4b, 0xc5,
- 0x90, 0xdc, 0x35, 0xf4, 0x7b, 0x1c, 0x73, 0x25, 0x01, 0xb2, 0x33, 0xe5, 0x54, 0x0d, 0x9b, 0x88,
- 0xef, 0xf0, 0x99, 0xe3, 0x23, 0x39, 0xf2, 0xf8, 0xb3, 0x88, 0xb5, 0x31, 0xaf, 0xeb, 0x28, 0x5f,
- 0x7b, 0x55, 0xfd, 0xee, 0xaa, 0x9b, 0x8d, 0xb3, 0xdd, 0x9e, 0x76, 0x7d, 0x47, 0x08, 0xf8, 0x12,
- 0x6f, 0x0b, 0x2b, 0x75, 0x16, 0x98, 0xb1, 0xa6, 0xcd, 0xef, 0xc0, 0x35, 0x4e, 0xd8, 0x5c, 0x45,
- 0xfb, 0xae, 0x4f, 0x78, 0x9f, 0x3a, 0xce, 0xed, 0xa3, 0xf9, 0x03, 0x79, 0xa6, 0x3b, 0x8c, 0x08,
- 0x84, 0x82, 0xe3, 0x6f, 0xc7, 0x1f, 0x4f, 0x30, 0x11, 0xc3, 0x85, 0xad, 0x5d, 0xdd, 0x3f, 0xdf,
- 0x10, 0x27, 0x87, 0x62, 0x4e, 0xbd, 0x30, 0x7b, 0x7f, 0xd5, 0x46, 0xe1, 0xb5, 0x3e, 0xef, 0x92,
- 0x7a, 0xda, 0x78, 0x41, 0x77, 0x55, 0x8e, 0x49, 0xb6, 0xb7, 0x4a, 0xc6, 0x68, 0xd2, 0x9a, 0xb2,
- 0xee, 0x7f, 0x1c, 0x4c, 0xfe, 0xf7, 0xf1, 0x02, 0xd8, 0xa1, 0x89, 0x8a, 0x80, 0x31, 0x4a, 0xff,
- 0x91, 0x53, 0xb0, 0x5b, 0xa6, 0xd2, 0x70, 0xdf, 0x6a, 0x9b, 0x0f, 0x5e, 0x7b, 0xd7, 0xf9, 0x28,
- 0x05, 0xf6, 0xd4, 0x56, 0x2f, 0x70, 0x0f, 0x94, 0x04, 0x8d, 0xcc, 0x12, 0x93, 0x34, 0x29, 0x65,
- 0x45, 0x6a, 0x8d, 0x1d, 0xd4, 0xc1, 0xcf, 0xbb, 0x3b, 0x5f, 0x17, 0x10, 0x02, 0xcc, 0x13, 0x68,
- 0xd1, 0xcf, 0xe9, 0x10, 0x5d, 0x63, 0xb0, 0xf0, 0x55, 0x49, 0xd4, 0x5c, 0xea, 0x2f, 0xc3, 0x25,
- 0xae, 0xe3, 0x45, 0x07, 0x05, 0x46, 0x31, 0x2d, 0xe7, 0x73, 0x52, 0x88, 0x11, 0xc9, 0x70, 0xf2,
- 0x3a, 0x46, 0x21, 0x0a, 0x8c, 0xe4, 0x4e, 0x66, 0x89, 0x65, 0x91, 0xc4, 0xf9, 0x2a, 0xa0, 0xbf,
- 0x50, 0xbb, 0xde, 0x29, 0xb5, 0x0c, 0xf0, 0x54, 0x40, 0x07, 0x9d, 0xe3, 0x24, 0xc6, 0xd5, 0x9f,
- 0xc4, 0x1e, 0xba, 0x24, 0x3c, 0xae, 0x8f, 0x1f, 0x2e, 0x11, 0x5e, 0xaf, 0xcc, 0x25, 0x05, 0xd2,
- 0xbb, 0x32, 0x16, 0x33, 0x64, 0x8b, 0x0e, 0xc2, 0x9c, 0x2b, 0xd8, 0x7b, 0x37, 0xc3, 0xb6, 0x05,
- 0x2f, 0x97, 0x72, 0x3e, 0xed, 0x29, 0x71, 0x89, 0xf2, 0x3d, 0x1b, 0x37, 0xdf, 0x20, 0x66, 0x48,
- 0xe5, 0xdf, 0xf2, 0x4f, 0x7d, 0xd9, 0xec, 0x13, 0xbb, 0x51, 0xee, 0x15, 0x4a, 0x83, 0x7a, 0x95,
- 0x71, 0x7a, 0x96, 0x42, 0xf4, 0x7b, 0x93, 0x58, 0xd5, 0x47, 0x2d, 0x59, 0xa2, 0x60, 0xaa, 0xd8,
- 0x0e, 0x56, 0x3a, 0x55, 0xac, 0x5e, 0x12, 0x85, 0x67, 0x7d, 0xab, 0x8d, 0x59, 0x86, 0x19, 0x0f,
- 0x9a, 0xf3, 0x5e, 0x58, 0x25, 0xfc, 0x6d, 0xce, 0x09, 0x6b, 0x68, 0xc1, 0xb1, 0x65, 0xc9, 0x42,
- 0xf0, 0x0e, 0xa1, 0x7b, 0x1c, 0x14, 0xd3, 0xfc, 0xc0, 0x09, 0x64, 0xe6, 0x6c, 0x89, 0xbc, 0x62,
- 0x64, 0xab, 0xc5, 0x76, 0x95, 0xb6, 0xac, 0xb7, 0xae, 0x1f, 0xa7, 0xaa, 0x84, 0x6a, 0x6c, 0x2f,
- 0x1b, 0x87, 0x69, 0x61, 0xcd, 0x93, 0x2d, 0x6a, 0x1c, 0x25, 0x21, 0x7e, 0x7f, 0x8c, 0xdf, 0xf8,
- 0x8f, 0x22, 0x0d, 0x6c, 0x44, 0x31, 0x52, 0x21, 0x72, 0x33, 0xe2, 0x32, 0x97, 0x6f, 0x0f, 0xb5,
- 0xcf, 0xbe, 0x54, 0x27, 0xbf, 0x80, 0x92, 0x0e, 0x4d, 0xe1, 0x39, 0x30, 0x06, 0x97, 0x35, 0xb8,
- 0x5b, 0x1b, 0x30, 0x2a, 0x36, 0x22, 0xed, 0x45, 0x23, 0xf7, 0xfa, 0x7c, 0xee, 0x74, 0xe5, 0xf5,
- 0x24, 0x37, 0x9c, 0x3d, 0x6e, 0x07, 0x6c, 0x98, 0x91, 0xcd, 0x7c, 0xa8, 0x15, 0x92, 0x56, 0x22,
- 0xb0, 0x92, 0xf8, 0x30, 0xe7, 0xa5, 0x13, 0xd3, 0xff, 0xdb, 0xbf, 0xe4, 0xfd, 0x71, 0x86, 0x6f,
- 0xda, 0x6f, 0x07, 0x13, 0xde, 0x4d, 0xad, 0xe1, 0x36, 0xb9, 0xb3, 0xc3, 0x20, 0x9d, 0xf3, 0x4f,
- 0x4e, 0xca, 0x63, 0x1e, 0x57, 0xef, 0xd2, 0xaa, 0x58, 0xaf, 0x70, 0x8f, 0xc8, 0x7e, 0x23, 0x02,
- 0x31, 0xe6, 0xcf, 0x09, 0x0f, 0xca, 0x53, 0x77, 0xea, 0x95, 0xf6, 0x5b, 0x33, 0x98, 0x90, 0xd5,
- 0xa5, 0x43, 0xab, 0x04, 0x86, 0x68, 0x2c, 0x3c, 0x84, 0x83, 0x35, 0x17, 0xdb, 0x7b, 0x40, 0x98,
- 0xb1, 0x1d, 0x7d, 0x9f, 0x3a, 0x6b, 0x10, 0x29, 0x94, 0xf2, 0x83, 0x5f, 0xd2, 0xab, 0xe4, 0xcf,
- 0x25, 0xb8, 0x19, 0x92, 0xb3, 0xc9, 0x6f, 0x62, 0xfa, 0xe4, 0x40, 0x13, 0x3a, 0x48, 0x34, 0x82,
- 0x5a, 0x94, 0xb5, 0x85, 0xeb, 0xec, 0xee, 0xbf, 0x48, 0xde, 0xc6, 0xc7, 0xc1, 0xae, 0x87, 0x55,
- 0xce, 0x31, 0xd1, 0x88, 0x62, 0x4e, 0x91, 0xf4, 0x26, 0xc8, 0x05, 0x8b, 0x29, 0x4d, 0x57, 0x18,
- 0xa4, 0xcc, 0x2e, 0xab, 0x5b, 0xa6, 0x2f, 0xc6, 0xef, 0xaa, 0x09, 0xac, 0xf4, 0xa1, 0x22, 0x38,
- 0x30, 0x69, 0x4a, 0xa6, 0xd2, 0x04, 0x50, 0x8d, 0x81, 0xbc, 0xca, 0xe0, 0x1c, 0x42, 0xf2, 0x75,
- 0x4f, 0x45, 0xe6, 0xb1, 0x8a, 0x21, 0xd1, 0x50, 0x33, 0x86, 0x4c, 0x34, 0xe7, 0xa4, 0x41, 0xa2,
- 0xdb, 0xe0, 0x82, 0xbc, 0x03, 0x83, 0xae, 0x1b, 0x5d, 0x90, 0x8f, 0x78, 0x0f, 0x47, 0x91, 0xef,
- 0x9b, 0x7c, 0xdb, 0xf7, 0xf8, 0x32, 0x6e, 0x34, 0x62, 0x42, 0x54, 0x7a, 0x9e, 0xbf, 0xab, 0xe2,
- 0x0f, 0xd9, 0xbf, 0xfa, 0x71, 0x90, 0x11, 0x7f, 0x0c, 0x54, 0x97, 0x36, 0x76, 0x5c, 0x7b, 0xaf,
- 0x70, 0xf5, 0x13, 0xed, 0x29, 0xb5, 0x90, 0xa2, 0xbe, 0x6e, 0x11, 0xe2, 0x8d, 0xba, 0xc8, 0x78,
- 0xe4, 0x50, 0x77, 0xe0, 0xa0, 0x17, 0xef, 0xe9, 0xd0, 0x78, 0xd2, 0xae, 0x65, 0x59, 0x18, 0x35,
- 0x8e, 0xad, 0x88, 0xc3, 0x99, 0xff, 0x51, 0xdb, 0x19, 0x1a, 0xde, 0x89, 0xb8, 0xb5, 0x6d, 0x15,
- 0x1a, 0x08, 0xec, 0xce, 0x10, 0x5d, 0x2e, 0x90, 0x77, 0x0c, 0x1d, 0xc5, 0x50, 0x56, 0xbd, 0x58,
- 0x65, 0x24, 0x40, 0xd9, 0x48, 0x78, 0xaf, 0x4d, 0xc5, 0x36, 0x9b, 0x11, 0xab, 0xb0, 0x0e, 0x8f,
- 0xf1, 0x81, 0x24, 0xd4, 0xc1, 0xda, 0xd0, 0x06, 0xab, 0x20, 0x58, 0x5d, 0x43, 0x53, 0xde, 0xc2,
- 0x4d, 0x98, 0x2f, 0x2c, 0xf3, 0x7e, 0xd7, 0x67, 0xe5, 0xd4, 0x34, 0x81, 0xb9, 0xd3, 0x85, 0x21,
- 0xd9, 0x3d, 0x4b, 0x21, 0x7a, 0xdc, 0xa8, 0x2c, 0x8b, 0xc2, 0xf7, 0xcd, 0x51, 0x30, 0x55, 0x6c,
- 0xa6, 0x11, 0xe7, 0x36, 0x22, 0xf9, 0x29, 0xf1, 0x39, 0xf8, 0x71, 0x19, 0xaa, 0xd6, 0xe6, 0xbb,
- 0x32, 0xb4, 0x83, 0x3b, 0xab, 0x5b, 0x56, 0xba, 0x57, 0xee, 0xb2, 0x55, 0x42, 0x35, 0x36, 0xf6,
- 0x58, 0x49, 0x7c, 0x18, 0x92, 0xb3, 0xe8, 0x88, 0x9e, 0x8c, 0xbe, 0x72, 0x9f, 0xd9, 0x43, 0xd6,
- 0xcc, 0xec, 0x18, 0x15, 0x1b, 0x11, 0x97, 0xc3, 0xf0, 0x9a, 0x7d, 0x3e, 0x77, 0x3a, 0x93, 0x9b,
- 0xb3, 0xc0, 0xb4, 0x02, 0x43, 0x34, 0x16, 0x1e, 0x42, 0xa0, 0xfb, 0xea, 0x8c, 0xdc, 0x20, 0x4c,
- 0x27, 0x65, 0xd0, 0x0f, 0xca, 0x96, 0x69, 0x55, 0x2c, 0xb6, 0x38, 0xa6, 0x64, 0x3f, 0xf0, 0x01,
- 0x67, 0xf9, 0x89, 0x44, 0x31, 0x27, 0xa9, 0x7a, 0x13, 0x64, 0xe3, 0xa4, 0xf5, 0xc7, 0xca, 0x0c,
- 0xf3, 0x5c, 0xed, 0x49, 0xb8, 0x85, 0xd6, 0x31, 0x7d, 0x72, 0x20, 0xe8, 0x1d, 0x24, 0x1a, 0x41,
- 0x8c, 0x70, 0x41, 0x5e, 0xe0, 0xa0, 0x57, 0xec, 0xcf, 0x48, 0xa6, 0x3c, 0xe6, 0xc2, 0xa9, 0x96,
- 0x18, 0xd5, 0x25, 0x53, 0x69, 0x02, 0x28, 0xa7, 0xa1, 0x5e, 0x65, 0x70, 0x0e, 0x21, 0x79, 0xdb,
- 0x72, 0x28, 0xda, 0x70, 0x50, 0xea, 0x96, 0x95, 0x68, 0x3c, 0x69, 0x57, 0xd3, 0xcd, 0x0c, 0xfb,
- 0xe6, 0x8d, 0xbe, 0x7d, 0xd9, 0x48, 0xe9, 0xde, 0x06, 0x2a, 0xaa, 0x1b, 0x3b, 0x2e, 0xdc, 0xb6,
- 0x99, 0xa1, 0x12, 0x6a, 0x81, 0x6d, 0x68, 0x03, 0xb4, 0x10, 0x2c, 0xcf, 0xc0, 0xc8, 0x6f, 0x61,
- 0x0d, 0x04, 0x76, 0x67, 0x08, 0xcf, 0x17, 0x48, 0xda, 0x06, 0xef, 0x83, 0x28, 0x2b, 0xbf, 0x2c,
- 0x19, 0x5a, 0xa0, 0xfc, 0xb4, 0xcc, 0x2b, 0x5d, 0xca, 0x77, 0x59, 0xcb, 0x21, 0xfb, 0x1b, 0x7b,
- 0x8d, 0xff, 0xc4, 0xf1, 0x3d, 0x6e, 0x54, 0x16, 0xa4, 0x61, 0x9a, 0x87, 0xc9, 0x18, 0xcb, 0x36,
- 0xf2, 0xd3, 0x68, 0xe6, 0x65, 0x4b, 0xd5, 0xcb, 0x16, 0x5b, 0x1c, 0x53, 0x32, 0xfe, 0x78, 0xe1,
- 0x66, 0x76, 0x0c, 0xeb, 0xec, 0xe9, 0xaa, 0x80, 0x78, 0x4d, 0xdf, 0x1f, 0xda, 0x1d, 0xa8, 0xac,
- 0x0c, 0x8b, 0xf3, 0xc8, 0xd5, 0x01, 0x14, 0xb2, 0xb1, 0x2f, 0xd3, 0x38, 0x07, 0xf1, 0xdd, 0x8c,
- 0x98, 0x2e, 0x97, 0xc5, 0x5c, 0xa3, 0x6b, 0xf9, 0xdf, 0x39, 0x10, 0x74, 0xef, 0x12, 0x0d, 0xc1,
- 0xe7, 0x02, 0x3b, 0xd2, 0x04, 0x86, 0xea, 0x24, 0x6d, 0x03, 0x96, 0xa0, 0x14, 0xf4, 0xbe, 0x16,
- 0x73, 0xa7, 0x5f, 0xdf, 0x8d, 0x24, 0x95, 0x6f, 0x03, 0x15, 0x55, 0xec, 0xfc, 0x17, 0x6e, 0x5b,
- 0x33, 0x3b, 0x06, 0x94, 0x76, 0x95, 0x55, 0x40, 0x3c, 0xc7, 0x8e, 0xee, 0x6d, 0xef, 0x54, 0x56,
- 0xa7, 0x9e, 0x62, 0x99, 0xff, 0x37, 0x2a, 0x0b, 0x52, 0xd1, 0x4d, 0xa2, 0x85, 0x0c, 0x84, 0x1b,
- 0xd8, 0xb2, 0xce, 0x8e, 0xa7, 0x12, 0xab, 0xd6, 0xe0, 0xeb, 0xcb, 0x76, 0x7e, 0xea, 0x37, 0xcc,
- 0x4c, 0x17, 0xaa, 0x83, 0x2e, 0xb0, 0xd4, 0x9d, 0x8e, 0xfd, 0x08, 0x3a, 0x96, 0x09, 0xe7, 0x81,
- 0x26, 0xea, 0x55, 0xa0, 0x17, 0x58, 0x6a, 0xaf, 0x47, 0x9f, 0x04, 0x1d, 0x4b, 0xe5, 0x92, 0xa1,
- 0xb2, 0x4f, 0x31, 0xad, 0x9e, 0xfa, 0x15, 0xe4, 0x29, 0x89, 0xc7, 0x51, 0xa3, 0x06, 0x42, 0xec,
- 0xcd, 0x63, 0x9d, 0xba, 0xc6, 0xdf, 0x94, 0x39, 0x9b, 0xb3, 0x41, 0x85, 0x58, 0xe0, 0xf1, 0x3b,
- 0x59, 0xc6, 0xf9, 0xb7, 0x4f, 0x7d, 0xeb, 0x72, 0xf5, 0xa5, 0x82, 0xc9, 0xb0, 0x03, 0x21, 0x76,
- 0x76, 0x51, 0x8b, 0x89, 0xa2, 0x54, 0x9a, 0xfb, 0x07, 0x98, 0x99, 0xfe, 0x6f, 0x23, 0x47, 0x3e,
- 0xe2, 0xf4, 0xef, 0x84, 0x2b, 0xf6, 0xe5, 0xb0, 0x69, 0x8e, 0x5a, 0xb2, 0x87, 0xc0, 0x97, 0x73,
- 0x9d, 0xd8, 0x43, 0x93, 0x73, 0xd3, 0x64, 0x6d, 0xdb, 0xb4, 0xdc, 0x66, 0x7c, 0x26, 0x24, 0xa4,
- 0x09, 0x7d, 0x27, 0x9e, 0xfa, 0x71, 0x1b, 0x26, 0xb5, 0xa2, 0x1f, 0x2a, 0x94, 0xc5, 0xf4, 0xe9,
- 0x63, 0x80, 0xd8, 0xbd, 0xc3, 0x99, 0xa5, 0x14, 0x7c, 0xc0, 0x13, 0x0d, 0x49, 0x29, 0x81, 0xc9,
- 0xf7, 0x25, 0xbc, 0xb0, 0x4a, 0x3b, 0xda, 0x5f, 0x12, 0xd6, 0xd0, 0x41, 0xa1, 0xca, 0x51, 0x84,
- 0x88, 0x09, 0x10, 0xa7, 0x12, 0x1e, 0x5b, 0x82, 0xa0, 0xec, 0x56, 0x95, 0x5a, 0x2c, 0xe2, 0x53,
- 0x1c, 0xac, 0x74, 0xaa, 0x9b, 0xbc, 0x24, 0xc9, 0xce, 0xfa, 0x95, 0xd9, 0xb2, 0xcf, 0x32, 0x1e,
- 0x5c, 0x30, 0x2d, 0xe1, 0x60, 0x0d, 0xe4, 0xe6, 0xf1, 0x28, 0x4e, 0xdb, 0x23, 0x37, 0x08, 0x13,
- 0xc8, 0x95, 0x49, 0xec, 0xe9, 0xaf, 0x9b, 0xad, 0x9f, 0x3e, 0x8d, 0x97, 0xcb, 0xd4, 0xd8, 0x5e,
- 0xb7, 0xb9, 0xe5, 0xfb, 0xb1, 0x8a, 0x1a, 0x70, 0x2d, 0x04, 0x0b, 0x43, 0x30, 0x32, 0x6b, 0x89,
- 0x23, 0x1c, 0x81, 0xf6, 0x38, 0x28, 0x65, 0x3b, 0x43, 0x12, 0xc8, 0x0f, 0xd8, 0xd1, 0xbb, 0xc4,
- 0x49, 0xe1, 0x7e, 0xd5, 0x01, 0xc0, 0xdb, 0x09, 0x8a, 0x70, 0xc4, 0x28, 0x05, 0x3d, 0xce, 0xe4,
- 0xdd, 0x44, 0x1a, 0xd8, 0x88, 0x62, 0xa4, 0x42, 0xe4, 0x66, 0x07, 0x64, 0xed, 0xde, 0x1e, 0xa9,
- 0xa2, 0x68, 0xb6, 0xcf, 0xd0, 0x47, 0x25, 0x9f, 0x56, 0x5c, 0x81, 0xb0, 0x16, 0x38, 0xad, 0x7e,
- 0x36, 0xcd, 0xd2, 0xc2, 0x59, 0xe5, 0x5a, 0xd4, 0x38, 0x4a, 0x42, 0xfc, 0xfe, 0xdb, 0x7d, 0x33,
- 0x22, 0x93, 0x04, 0x59, 0xe5, 0xe6, 0x66, 0xc1, 0x28, 0x3b, 0xf4, 0xb4, 0xf7, 0x0b, 0xd9, 0x64,
- 0xb6, 0x36, 0x60, 0x54, 0x6c, 0x44, 0x19, 0x8a, 0x46, 0x2d, 0x37, 0xf8, 0x1f, 0xe8, 0x09, 0x29,
- 0xc9, 0x1a, 0xcc, 0x43, 0x34, 0x61, 0x98, 0x57, 0xf4, 0x17, 0xb1, 0x2c, 0xe4, 0x0e, 0xba, 0xfe,
- 0x5d, 0xbf, 0xa8, 0x4e, 0xbd, 0xc3, 0xe7, 0x1c, 0x9a, 0x01, 0x72, 0x60, 0x0c, 0xed, 0x6a, 0xb3,
- 0x37, 0x42, 0x57, 0x6d, 0x84, 0x2b, 0x59, 0x2e, 0x53, 0x63, 0x7e, 0x47, 0xd1, 0x01, 0x1f, 0x93,
- 0xa3, 0xe7, 0x33, 0x60, 0x0d, 0x89, 0x26, 0x65, 0x3d, 0x75, 0xbd, 0x0b, 0x39, 0xe2, 0xcf, 0xde,
- 0xdc, 0xcb, 0x9f, 0x77, 0x55, 0xac, 0xa7, 0xb8, 0x8f, 0x4f, 0x3b, 0xdf, 0xc2, 0x04, 0x7c, 0x09,
- 0x48, 0x6e, 0xfb, 0x7a, 0xdc, 0x0e, 0xd8, 0xf3, 0xe1, 0x59, 0xf8, 0x93, 0x2a, 0xe7, 0xac, 0x44,
- 0x08, 0xf2, 0xa2, 0x31, 0x27, 0xbf, 0x18, 0xdc, 0xde, 0x8b, 0x23, 0x91, 0xbb, 0x1f, 0x96, 0x49,
- 0x9c, 0x57, 0xc6, 0x3c, 0xae, 0x1d, 0x67, 0x97, 0xb0, 0x9d, 0xe0, 0xdd, 0x53, 0xfc, 0x46, 0x04,
- 0xe3, 0x7b, 0x6a, 0x2b, 0xf6, 0x38, 0xe6, 0x4a, 0x02, 0xa7, 0x66, 0x09, 0xa8, 0x1a, 0xf5, 0xd3,
- 0x77, 0xde, 0x0e, 0x26, 0x7f, 0x9a, 0x99, 0x01, 0x6c, 0xb1, 0xa5, 0x45, 0x40, 0xf9, 0x25, 0x9e,
- 0x1d, 0x23, 0xf1, 0x05, 0x46, 0x72, 0x27, 0x33, 0xa5, 0xd3, 0xa9, 0x62, 0x9d, 0x15, 0x50, 0xbe,
- 0x89, 0x86, 0x95, 0x08, 0xcf, 0xd0, 0x58, 0x78, 0xcb, 0xc5, 0x6a, 0x2e, 0x75, 0xf6, 0x80, 0xf3,
- 0xf6, 0xaa, 0x39, 0x1f, 0x97, 0xf5, 0xd9, 0xa5, 0x79, 0xff, 0xec, 0xfa, 0x8e, 0x10, 0x33, 0x24,
- 0x62, 0x0f, 0x5d, 0x12, 0x1e, 0x57, 0xa6, 0xee, 0x17, 0xe9, 0x2f, 0xb6, 0x66, 0xf3, 0xe3, 0x69,
- 0xde, 0x16, 0x56, 0xea, 0x2c, 0xf3, 0xa1, 0x8f, 0x59, 0x1d, 0x43, 0x6a, 0x9c, 0x73, 0xb8, 0x8a,
- 0x4a, 0xb3, 0x32, 0xe7, 0xa5, 0x51, 0xde, 0xc4, 0x37, 0x0b, 0x80, 0x26, 0x74, 0x90, 0x68, 0xc7,
- 0x35, 0x9f, 0x9e, 0xf0, 0xfd, 0x74, 0x5f, 0x19, 0x85, 0x31, 0x06, 0xf2, 0x8f, 0x76, 0xdb, 0x10,
- 0xa1, 0x3a, 0xfa, 0xfd, 0x74, 0xd6, 0x20, 0x52, 0xeb, 0x27, 0xc5, 0xbe, 0x67, 0x95, 0x0b, 0x5d,
- 0xcb, 0xc7, 0x05, 0xde, 0x4d, 0x3e, 0x9e, 0x60, 0x22, 0x45, 0xc9, 0x99, 0xba, 0x79, 0x7e, 0x7d,
- 0x5f, 0x62, 0x61, 0xd3, 0xc4, 0x9c, 0xe1, 0x2b, 0x4c, 0x53, 0x0a, 0xd5, 0x52, 0x9a, 0xae, 0x30,
- 0x20, 0x4e, 0xcd, 0xc4, 0x9c, 0xb9, 0x60, 0xf6, 0xfe, 0x69, 0x8c, 0x01, 0xa9, 0x7c, 0x1d, 0xe7,
- 0xb4, 0xeb, 0xa9, 0xc9, 0x15, 0x1b, 0x1f, 0xbd, 0x90, 0x7f, 0x4f, 0x4d, 0x41, 0x9f, 0xcd, 0xaa,
- 0xf4, 0x77, 0xf0, 0x82, 0xee, 0xaa, 0xdf, 0x92, 0xaf, 0xad, 0x94, 0x4f, 0xd0, 0x67, 0xf7, 0xa7,
- 0x60, 0xd2, 0x94, 0x8f, 0x67, 0x08, 0xa0, 0xd9, 0xc1, 0xbb, 0x57, 0x03, 0x38, 0x84, 0x27, 0xea,
- 0x1f, 0xfe, 0x38, 0x98, 0x3f, 0x2d, 0x21, 0x04, 0x73, 0x81, 0xd1, 0xd7, 0xc3, 0x62, 0x94, 0x3d,
- 0x8b, 0x5b, 0x5c, 0x95, 0xb6, 0x8f, 0x5e, 0x4f, 0x1d, 0x97, 0x12, 0x9b, 0x2b, 0x81, 0x44, 0x70,
- 0xe1, 0xa6, 0xa3, 0xb6, 0x8f, 0x67, 0xe0, 0x7d, 0xd4, 0xf5, 0x1e, 0xbc, 0xf6, 0x6d, 0x31, 0x50,
- 0x75, 0x03, 0xc7, 0xbb, 0x06, 0xc5, 0x9f, 0x36, 0xba, 0xe3, 0xdd, 0xf0, 0x1e, 0x8e, 0xe1, 0x1d,
- 0x0a, 0x2f, 0x6b, 0xac, 0x5e, 0xe0, 0x1e, 0xeb, 0x08, 0xd9, 0x5b, 0x24, 0xe5, 0x68, 0x52, 0xca,
- 0x9e, 0x8a, 0x0f, 0xa1, 0xd7, 0x42, 0x61, 0xa0, 0x66, 0xcf, 0x98, 0x68, 0x0d, 0x8b, 0x82, 0x87,
- 0x8a, 0xd4, 0xd9, 0x3a, 0x6b, 0x41, 0x5d, 0xb5, 0x76, 0xbe, 0x2e, 0x20, 0x04, 0x5b, 0x26, 0xd0,
- 0x1e, 0x71, 0xbd, 0x37, 0xe2, 0xe3, 0x22, 0xfe, 0x18, 0xa8, 0xed, 0x6c, 0xec, 0xb8, 0xf6, 0x9d,
- 0x61, 0x5d, 0x11, 0x20, 0xba, 0xc6, 0xa3, 0x23, 0xaa, 0x92, 0x6b, 0xb8, 0x17, 0x5e, 0x45, 0x4a,
- 0xf5, 0xf8, 0x75, 0x2d, 0x33, 0x64, 0xdc, 0x68, 0xc4, 0x84, 0xa8, 0xf4, 0xff, 0xbd, 0x95, 0x07,
- 0x9f, 0x05, 0x8a, 0x0e, 0x0a, 0x8c, 0x62, 0x5a, 0x0d, 0xe6, 0xa4, 0xd3, 0x22, 0x51, 0xe0, 0x27,
- 0x0b, 0xa0, 0xee, 0x03, 0x83, 0x2e, 0x1d, 0x11, 0x63, 0xf0, 0x67, 0x9f, 0xca, 0xb2, 0x30, 0x6a,
- 0x74, 0x8c, 0x42, 0x14, 0xdb, 0x0b, 0x9c, 0xcc, 0xd1, 0xca, 0xe1, 0x4b, 0x31, 0x54, 0x83, 0xbd,
- 0xe0, 0x29, 0x26, 0x19, 0x52, 0xa9, 0xe3, 0x87, 0xbf, 0xdc, 0x22, 0x07, 0xd9, 0xb7, 0x53, 0xf0,
- 0xa0, 0xb5, 0x7f, 0x52, 0xa9, 0x18, 0x23, 0xa8, 0x80, 0x0e, 0xf9, 0x05, 0x48, 0x4f, 0x69, 0xfd,
- 0x34, 0x10, 0x1b, 0x5f, 0x20, 0xba, 0x5c, 0xe3, 0xee, 0x18, 0x3a, 0x49, 0xa0, 0xac, 0xb9, 0xb0,
- 0x4b, 0x3c, 0xb7, 0x48, 0x78, 0x9f, 0xdd, 0x3e, 0x5c, 0x22, 0xbc, 0x9d, 0x5b, 0x4a, 0x0a, 0x67,
- 0xdf, 0x99, 0xd3, 0x45, 0xf1, 0x3d, 0xa2, 0x75, 0x32, 0x34, 0x7f, 0xd1, 0xb3, 0xa9, 0xda, 0x2a,
- 0xb5, 0x64, 0x2c, 0x66, 0xc8, 0xd5, 0x1c, 0x47, 0xfb, 0x56, 0x73, 0xf6, 0x6e, 0x45, 0xaf, 0x0a,
- 0x21, 0xc1, 0x48, 0x6b, 0x41, 0x77, 0x63, 0x0c, 0x95, 0x40, 0xb0, 0xba, 0x86, 0xa6, 0x7f, 0x47,
- 0x5e, 0xed, 0xe4, 0x7c, 0x19, 0x52, 0xe2, 0xd1, 0x27, 0x7a, 0x36, 0x6e, 0x7d, 0x40, 0xcc, 0x90,
- 0xca, 0x48, 0x80, 0x71, 0x90, 0xf0, 0x9d, 0x9a, 0x49, 0x6c, 0xf5, 0x22, 0x95, 0xa3, 0x1c, 0xdd,
- },
- { /* 2 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x3c, 0x48, 0xf8, 0x48, 0x48, 0xc8, 0x8e, 0x2a, 0xf5, 0x02, 0xdd, 0x14, 0x30, 0x44, 0x8e,
- 0x40, 0x78, 0x90, 0x33, 0x90, 0x90, 0x53, 0xdf, 0x54, 0x29, 0x04, 0x79, 0x28, 0x60, 0x88, 0xdf,
- 0x60, 0x44, 0xd8, 0xcb, 0xd8, 0xd8, 0x9b, 0x51, 0x7e, 0xdc, 0x06, 0xa4, 0x3c, 0x50, 0xcc, 0x51,
- 0x80, 0xf0, 0xe3, 0x66, 0xe3, 0xe3, 0xa6, 0x7d, 0xa8, 0x52, 0x08, 0xf2, 0x50, 0xc0, 0xd3, 0x7d,
- 0xa0, 0xcc, 0xab, 0x9e, 0xab, 0xab, 0x6e, 0xf3, 0x82, 0xa7, 0x0a, 0x2f, 0x44, 0xf0, 0x97, 0xf3,
- 0xc0, 0x88, 0x73, 0x55, 0x73, 0x73, 0xf5, 0xa2, 0xfc, 0x7b, 0x0c, 0x8b, 0x78, 0xa0, 0x5b, 0xa2,
- 0xe0, 0xb4, 0x3b, 0xad, 0x3b, 0x3b, 0x3d, 0x2c, 0xd6, 0x8e, 0x0e, 0x56, 0x6c, 0x90, 0x1f, 0x2c,
- 0xc3, 0x23, 0x05, 0xcc, 0x05, 0x05, 0x8f, 0xfa, 0x93, 0xa4, 0x10, 0x27, 0xa0, 0x43, 0x65, 0xfa,
- 0xe3, 0x1f, 0x4d, 0x34, 0x4d, 0x4d, 0x47, 0x74, 0xb9, 0x51, 0x12, 0xfa, 0xb4, 0x73, 0x21, 0x74,
- 0x83, 0x5b, 0x95, 0xff, 0x95, 0x95, 0xdc, 0x25, 0xc7, 0x8d, 0x14, 0x5e, 0x88, 0x23, 0xed, 0x25,
- 0xa3, 0x67, 0xdd, 0x07, 0xdd, 0xdd, 0x14, 0xab, 0xed, 0x78, 0x16, 0x83, 0x9c, 0x13, 0xa9, 0xab,
- 0x43, 0xd3, 0xe6, 0xaa, 0xe6, 0xe6, 0x29, 0x87, 0x3b, 0xf6, 0x18, 0xd5, 0xf0, 0x83, 0xb6, 0x87,
- 0x63, 0xef, 0xae, 0x52, 0xae, 0xae, 0xe1, 0x09, 0x11, 0x03, 0x1a, 0x08, 0xe4, 0xb3, 0xf2, 0x09,
- 0x03, 0xab, 0x76, 0x99, 0x76, 0x76, 0x7a, 0x58, 0x6f, 0xdf, 0x1c, 0xac, 0xd8, 0xe3, 0x3e, 0x58,
- 0x23, 0x97, 0x3e, 0x61, 0x3e, 0x3e, 0xb2, 0xd6, 0x45, 0x2a, 0x1e, 0x71, 0xcc, 0xd3, 0x7a, 0xd6,
- 0x45, 0x46, 0x0a, 0x5b, 0x0a, 0x0a, 0xdd, 0x37, 0xe5, 0x8b, 0x20, 0x4e, 0x83, 0x86, 0xca, 0x37,
- 0x65, 0x7a, 0x42, 0xa3, 0x42, 0x42, 0x15, 0xb9, 0xcf, 0x7e, 0x22, 0x93, 0x97, 0xb6, 0x8e, 0xb9,
- 0x05, 0x3e, 0x9a, 0x68, 0x9a, 0x9a, 0x8e, 0xe8, 0xb1, 0xa2, 0x24, 0x37, 0xab, 0xe6, 0x42, 0xe8,
- 0x25, 0x02, 0xd2, 0x90, 0xd2, 0xd2, 0x46, 0x66, 0x9b, 0x57, 0x26, 0xea, 0xbf, 0xd6, 0x06, 0x66,
- 0xc5, 0xb6, 0xe9, 0x3d, 0xe9, 0xe9, 0x7b, 0x4a, 0x4d, 0xd9, 0x28, 0xbc, 0xd3, 0x46, 0x19, 0x4a,
- 0xe5, 0x8a, 0xa1, 0xc5, 0xa1, 0xa1, 0xb3, 0xc4, 0x67, 0x2c, 0x2a, 0x61, 0xc7, 0x76, 0x5d, 0xc4,
- 0x85, 0xce, 0x79, 0x0e, 0x79, 0x79, 0x28, 0x95, 0x19, 0xf0, 0x2c, 0xc5, 0xfb, 0x26, 0x91, 0x95,
- 0xa5, 0xf2, 0x31, 0xf6, 0x31, 0x31, 0xe0, 0x1b, 0x33, 0x05, 0x2e, 0x18, 0xef, 0x16, 0xd5, 0x1b,
- 0x86, 0x65, 0x0f, 0x97, 0x0f, 0x0f, 0x52, 0xcd, 0x76, 0x2f, 0x30, 0x69, 0x23, 0xc5, 0xaf, 0xcd,
- 0xa6, 0x59, 0x47, 0x6f, 0x47, 0x47, 0x9a, 0x43, 0x5c, 0xda, 0x32, 0xb4, 0x37, 0xf5, 0xeb, 0x43,
- 0xc6, 0x1d, 0x9f, 0xa4, 0x9f, 0x9f, 0x01, 0x12, 0x22, 0x06, 0x34, 0x10, 0x0b, 0xa5, 0x27, 0x12,
- 0xe6, 0x21, 0xd7, 0x5c, 0xd7, 0xd7, 0xc9, 0x9c, 0x08, 0xf3, 0x36, 0xcd, 0x1f, 0x95, 0x63, 0x9c,
- 0x06, 0x95, 0xec, 0xf1, 0xec, 0xec, 0xf4, 0xb0, 0xde, 0x7d, 0x38, 0x9b, 0x73, 0x05, 0x7c, 0xb0,
- 0x26, 0xa9, 0xa4, 0x09, 0xa4, 0xa4, 0x3c, 0x3e, 0xf4, 0x88, 0x3a, 0x46, 0x67, 0x35, 0x38, 0x3e,
- 0x46, 0xed, 0x7c, 0xc2, 0x7c, 0x7c, 0xa7, 0x6f, 0x8a, 0x54, 0x3c, 0xe2, 0x5b, 0x65, 0xf4, 0x6f,
- 0x66, 0xd1, 0x34, 0x3a, 0x34, 0x34, 0x6f, 0xe1, 0xa0, 0xa1, 0x3e, 0x3f, 0x4f, 0x55, 0xb0, 0xe1,
- 0x8a, 0x8c, 0x14, 0xb6, 0x14, 0x14, 0x79, 0x6e, 0x09, 0xd5, 0x40, 0x9c, 0xc5, 0xcf, 0x57, 0x6e,
- 0xaa, 0xb0, 0x5c, 0x4e, 0x5c, 0x5c, 0xb1, 0xe0, 0x23, 0x20, 0x42, 0x41, 0xd1, 0xff, 0x13, 0xe0,
- 0xca, 0xf4, 0x84, 0x85, 0x84, 0x84, 0x2a, 0xb1, 0x5d, 0xfc, 0x44, 0xe5, 0xed, 0xaf, 0xdf, 0xb1,
- 0xea, 0xc8, 0xcc, 0x7d, 0xcc, 0xcc, 0xe2, 0x3f, 0x77, 0x09, 0x46, 0x38, 0xf9, 0x9f, 0x9b, 0x3f,
- 0x0a, 0x7c, 0xf7, 0xd0, 0xf7, 0xf7, 0xdf, 0x13, 0xa1, 0x87, 0x48, 0x6e, 0x95, 0x0f, 0x84, 0x13,
- 0x2a, 0x40, 0xbf, 0x28, 0xbf, 0xbf, 0x17, 0x9d, 0x8b, 0x72, 0x4a, 0xb3, 0x81, 0x3f, 0xc0, 0x9d,
- 0x4a, 0x04, 0x67, 0xe3, 0x67, 0x67, 0x8c, 0xcc, 0xf5, 0xae, 0x4c, 0x17, 0xbd, 0x6f, 0x0c, 0xcc,
- 0x6a, 0x38, 0x2f, 0x1b, 0x2f, 0x2f, 0x44, 0x42, 0xdf, 0x5b, 0x4e, 0xca, 0xa9, 0x5f, 0x48, 0x42,
- 0x49, 0xaf, 0x11, 0x7a, 0x11, 0x11, 0xf6, 0x94, 0x9a, 0x71, 0x50, 0xbb, 0x65, 0x8c, 0x32, 0x94,
- 0x69, 0x93, 0x59, 0x82, 0x59, 0x59, 0x3e, 0x1a, 0xb0, 0x84, 0x52, 0x66, 0x71, 0xbc, 0x76, 0x1a,
- 0x09, 0xd7, 0x81, 0x49, 0x81, 0x81, 0xa5, 0x4b, 0xce, 0x58, 0x54, 0xc2, 0x4d, 0xec, 0xba, 0x4b,
- 0x29, 0xeb, 0xc9, 0xb1, 0xc9, 0xc9, 0x6d, 0xc5, 0xe4, 0xad, 0x56, 0x1f, 0x59, 0xdc, 0xfe, 0xc5,
- 0xc9, 0x5f, 0xf2, 0x1c, 0xf2, 0xf2, 0x50, 0xe9, 0x32, 0x23, 0x58, 0x49, 0x35, 0x4c, 0xe1, 0xe9,
- 0xe9, 0x63, 0xba, 0xe4, 0xba, 0xba, 0x98, 0x67, 0x18, 0xd6, 0x5a, 0x94, 0x21, 0x7c, 0xa5, 0x67,
- 0x89, 0x27, 0x62, 0x2f, 0x62, 0x62, 0x03, 0x36, 0x66, 0x0a, 0x5c, 0x30, 0x1d, 0x2c, 0x69, 0x36,
- 0xa9, 0x1b, 0x2a, 0xd7, 0x2a, 0x2a, 0xcb, 0xb8, 0x4c, 0xff, 0x5e, 0xed, 0x09, 0x1c, 0x2d, 0xb8,
- 0xcf, 0xca, 0x1e, 0xed, 0x1e, 0x1e, 0xa4, 0x59, 0xec, 0x5e, 0x60, 0xd2, 0x46, 0x49, 0x9d, 0x59,
- 0xef, 0xf6, 0x56, 0x15, 0x56, 0x56, 0x6c, 0xd7, 0xc6, 0xab, 0x62, 0x0f, 0x52, 0x79, 0xd9, 0xd7,
- 0x8f, 0xb2, 0x8e, 0xde, 0x8e, 0x8e, 0xf7, 0x86, 0xb8, 0x77, 0x64, 0xab, 0x6e, 0x29, 0x15, 0x86,
- 0xaf, 0x8e, 0xc6, 0x26, 0xc6, 0xc6, 0x3f, 0x08, 0x92, 0x82, 0x66, 0x76, 0x7a, 0x19, 0x51, 0x08,
- 0x4f, 0x3a, 0xfd, 0x8b, 0xfd, 0xfd, 0x02, 0x24, 0x44, 0x0c, 0x68, 0x20, 0x16, 0x89, 0x4e, 0x24,
- 0x6f, 0x06, 0xb5, 0x73, 0xb5, 0xb5, 0xca, 0xaa, 0x6e, 0xf9, 0x6a, 0xfd, 0x02, 0xb9, 0x0a, 0xaa,
- 0x0f, 0x42, 0x6d, 0xb8, 0x6d, 0x6d, 0x51, 0xfb, 0x10, 0x25, 0x6c, 0x59, 0x3e, 0xe9, 0xc6, 0xfb,
- 0x2f, 0x7e, 0x25, 0x40, 0x25, 0x25, 0x99, 0x75, 0x3a, 0xd0, 0x6e, 0x84, 0x2a, 0xd9, 0x82, 0x75,
- 0x0c, 0xe9, 0x1b, 0x21, 0x1b, 0x1b, 0x2b, 0xa3, 0x7f, 0xfa, 0x70, 0xf5, 0xe6, 0x0a, 0xf8, 0xa3,
- 0x2c, 0xd5, 0x53, 0xd9, 0x53, 0x53, 0xe3, 0x2d, 0x55, 0x0f, 0x72, 0x28, 0xf2, 0x3a, 0xbc, 0x2d,
- 0x4c, 0x91, 0x8b, 0x12, 0x8b, 0x8b, 0x78, 0x7c, 0x2b, 0xd3, 0x74, 0x8c, 0xce, 0x6a, 0x70, 0x7c,
- 0x6c, 0xad, 0xc3, 0xea, 0xc3, 0xc3, 0xb0, 0xf2, 0x01, 0x26, 0x76, 0x51, 0xda, 0x5a, 0x34, 0xf2,
- 0x8c, 0x19, 0xf8, 0x47, 0xf8, 0xf8, 0x8d, 0xde, 0xd7, 0xa8, 0x78, 0x07, 0xb6, 0xca, 0x2b, 0xde,
- 0xac, 0x25, 0xb0, 0xbf, 0xb0, 0xb0, 0x45, 0x50, 0xfd, 0x5d, 0x7a, 0xda, 0xa2, 0xfa, 0x6f, 0x50,
- 0xcc, 0x61, 0x68, 0x74, 0x68, 0x68, 0xde, 0x01, 0x83, 0x81, 0x7c, 0x7e, 0x9e, 0xaa, 0xa3, 0x01,
- 0xec, 0x5d, 0x20, 0x8c, 0x20, 0x20, 0x16, 0x8f, 0xa9, 0x74, 0x7e, 0xa3, 0x8a, 0x9a, 0xe7, 0x8f,
- 0xd7, 0xdb, 0x28, 0xaf, 0x28, 0x28, 0xf2, 0xdc, 0x12, 0x69, 0x80, 0xfb, 0x49, 0x5d, 0xae, 0xdc,
- 0xf7, 0xe7, 0x60, 0x57, 0x60, 0x60, 0x3a, 0x52, 0x38, 0x9c, 0x82, 0x26, 0x5d, 0x6d, 0xea, 0x52,
- 0x97, 0xa3, 0xb8, 0x9c, 0xb8, 0xb8, 0xa1, 0x03, 0x46, 0x40, 0x84, 0x82, 0x61, 0x3d, 0x26, 0x03,
- 0xb7, 0x9f, 0xf0, 0x64, 0xf0, 0xf0, 0x69, 0x8d, 0x6c, 0xb5, 0x86, 0x5f, 0x75, 0x0d, 0x62, 0x8d,
- 0x57, 0x2b, 0xcb, 0xc9, 0xcb, 0xcb, 0x54, 0xa1, 0xba, 0x3b, 0x88, 0x09, 0x19, 0x9d, 0x7d, 0xa1,
- 0x77, 0x17, 0x83, 0x31, 0x83, 0x83, 0x9c, 0x2f, 0x90, 0xce, 0x8a, 0xd4, 0x0d, 0xad, 0x39, 0x2f,
- 0x17, 0x53, 0x5b, 0xfa, 0x5b, 0x5b, 0x07, 0x7e, 0xee, 0x12, 0x8c, 0x70, 0x31, 0xfd, 0xf5, 0x7e,
- 0x37, 0x6f, 0x13, 0x02, 0x13, 0x13, 0xcf, 0xf0, 0xc4, 0xe7, 0x8e, 0xad, 0x25, 0xcd, 0xb1, 0xf0,
- 0x14, 0xf8, 0x2d, 0x63, 0x2d, 0x2d, 0x7d, 0x26, 0x81, 0xcd, 0x90, 0xdc, 0xe9, 0x1e, 0xcb, 0x26,
- 0x34, 0xc4, 0x65, 0x9b, 0x65, 0x65, 0xb5, 0xa8, 0xab, 0x38, 0x92, 0x01, 0xfd, 0x2e, 0x8f, 0xa8,
- 0x54, 0x80, 0xbd, 0x50, 0xbd, 0xbd, 0x2e, 0xf9, 0xd5, 0xe4, 0x94, 0xa5, 0xc1, 0x7e, 0x43, 0xf9,
- 0x74, 0xbc, 0xf5, 0xa8, 0xf5, 0xf5, 0xe6, 0x77, 0xff, 0x11, 0x96, 0x78, 0xd5, 0x4e, 0x07, 0x77,
- 0x94, 0x08, 0xce, 0x05, 0xce, 0xce, 0xdb, 0x5b, 0x29, 0x9f, 0x98, 0x2e, 0xb9, 0xde, 0x18, 0x5b,
- 0xb4, 0x34, 0x86, 0xfd, 0x86, 0x86, 0x13, 0xd5, 0x03, 0x6a, 0x9a, 0xf3, 0xad, 0xee, 0x5c, 0xd5,
- 0xd4, 0x70, 0x5e, 0x36, 0x5e, 0x5e, 0x88, 0x84, 0x7d, 0xb6, 0x9c, 0x57, 0x91, 0xbe, 0x90, 0x84,
- 0xf4, 0x4c, 0x16, 0xce, 0x16, 0x16, 0x40, 0x0a, 0x57, 0x43, 0x9e, 0x8a, 0x85, 0x8e, 0xd4, 0x0a,
- 0x92, 0x9d, 0x22, 0xf4, 0x22, 0x22, 0x2f, 0xeb, 0xf7, 0xe2, 0xa0, 0xb5, 0xca, 0xdb, 0x64, 0xeb,
- 0xb2, 0xa1, 0x6a, 0x0c, 0x6a, 0x6a, 0xe7, 0x65, 0xdd, 0x17, 0xa2, 0x68, 0xde, 0xeb, 0x20, 0x65,
- 0xd2, 0xe5, 0xb2, 0xc7, 0xb2, 0xb2, 0x7c, 0x34, 0xa3, 0xcb, 0xa4, 0xcc, 0xe2, 0xbb, 0xec, 0x34,
- 0xf2, 0xd9, 0xfa, 0x3f, 0xfa, 0xfa, 0xb4, 0xba, 0x89, 0x3e, 0xa6, 0x11, 0xf6, 0x8b, 0xa8, 0xba,
- 0x12, 0x6d, 0xc1, 0x92, 0xc1, 0xc1, 0x89, 0x96, 0x5f, 0xb0, 0xa8, 0x47, 0x9a, 0x1b, 0xb7, 0x96,
- 0x32, 0x51, 0x89, 0x6a, 0x89, 0x89, 0x41, 0x18, 0x75, 0x45, 0xaa, 0x9a, 0x8e, 0x2b, 0xf3, 0x18,
- 0x52, 0x15, 0x51, 0xa1, 0x51, 0x51, 0xda, 0x49, 0x0b, 0x99, 0xac, 0x3e, 0xb2, 0x7b, 0x3f, 0x49,
- 0x72, 0x29, 0x19, 0x59, 0x19, 0x19, 0x12, 0xc7, 0x21, 0x6c, 0xae, 0xe3, 0xa6, 0x4b, 0x7b, 0xc7,
- 0x51, 0xbe, 0x27, 0x38, 0x27, 0x27, 0xa0, 0x11, 0x64, 0x46, 0xb0, 0x92, 0x6a, 0x98, 0x01, 0x11,
- 0x71, 0x82, 0x6f, 0xc0, 0x6f, 0x6f, 0x68, 0x9f, 0x4e, 0xb3, 0xb2, 0x4f, 0x7e, 0xa8, 0x45, 0x9f,
- 0x11, 0xc6, 0xb7, 0x0b, 0xb7, 0xb7, 0xf3, 0xce, 0x30, 0x6f, 0xb4, 0xeb, 0x42, 0xf8, 0x89, 0xce,
- 0x31, 0xfa, 0xff, 0xf3, 0xff, 0xff, 0x3b, 0x40, 0x1a, 0x9a, 0xb6, 0x36, 0x56, 0xc8, 0xcd, 0x40,
- 0xd1, 0x4e, 0xc4, 0x5e, 0xc4, 0xc4, 0x06, 0x6c, 0xcc, 0x14, 0xb8, 0x60, 0x3a, 0x58, 0xd2, 0x6c,
- 0xf1, 0x72, 0x8c, 0xa6, 0x8c, 0x8c, 0xce, 0xe2, 0xe6, 0xe1, 0xba, 0xbd, 0x2e, 0x68, 0x96, 0xe2,
- 0x91, 0x36, 0x54, 0x6d, 0x54, 0x54, 0x55, 0xb3, 0x98, 0x3d, 0xbc, 0x19, 0x12, 0x38, 0x5a, 0xb3,
- 0xb1, 0x0a, 0x1c, 0x95, 0x1c, 0x1c, 0x9d, 0x3d, 0xb2, 0xc8, 0xbe, 0xc4, 0x06, 0x08, 0x1e, 0x3d,
- 0x5d, 0x57, 0x3c, 0x19, 0x3c, 0x3c, 0x8b, 0xb2, 0x1b, 0xbc, 0xc0, 0x67, 0x8c, 0x92, 0xf9, 0xb2,
- 0x7d, 0x6b, 0x74, 0xe1, 0x74, 0x74, 0x43, 0x3c, 0x31, 0x49, 0xc2, 0xba, 0x98, 0xa2, 0xbd, 0x3c,
- 0x1d, 0x2f, 0xac, 0x2a, 0xac, 0xac, 0xd8, 0x6d, 0x4f, 0x95, 0xc4, 0x1e, 0xa4, 0xf2, 0x71, 0x6d,
- 0x3d, 0x13, 0xe4, 0xd2, 0xe4, 0xe4, 0x10, 0xe3, 0x65, 0x60, 0xc6, 0xc3, 0xb0, 0xc2, 0x35, 0xe3,
- 0xdd, 0xa7, 0xdf, 0x7f, 0xdf, 0xdf, 0x2d, 0xcf, 0xb3, 0xee, 0xc8, 0x95, 0xdc, 0x52, 0x2a, 0xcf,
- 0xfd, 0x9b, 0x97, 0x87, 0x97, 0x97, 0xe5, 0x41, 0x99, 0x1b, 0xca, 0x48, 0xc8, 0x62, 0x6e, 0x41,
- 0x9d, 0xdf, 0x4f, 0x4c, 0x4f, 0x4f, 0x7e, 0x10, 0xe7, 0xc7, 0xcc, 0xec, 0xf4, 0x32, 0xa2, 0x10,
- 0xbd, 0xe3, 0x07, 0xb4, 0x07, 0x07, 0xb6, 0x9e, 0xcd, 0x32, 0xce, 0x31, 0xe0, 0x02, 0xe6, 0x9e,
- 0x9e, 0x74, 0x39, 0xd5, 0x39, 0x39, 0x04, 0x48, 0x88, 0x18, 0xd0, 0x40, 0x2c, 0xd1, 0x9c, 0x48,
- 0xbe, 0x48, 0x71, 0x2d, 0x71, 0x71, 0xcc, 0xc6, 0xa2, 0xed, 0xd2, 0x9d, 0x38, 0xe1, 0xd8, 0xc6,
- 0xde, 0x0c, 0xa9, 0xe6, 0xa9, 0xa9, 0x57, 0x97, 0xdc, 0x31, 0xd4, 0x39, 0x04, 0xb1, 0x14, 0x97,
- 0xfe, 0x30, 0xe1, 0x1e, 0xe1, 0xe1, 0x9f, 0x19, 0xf6, 0xc4, 0xd6, 0xe4, 0x10, 0x81, 0x50, 0x19,
- 0x1e, 0x84, 0xda, 0xb3, 0xda, 0xda, 0xa2, 0x35, 0x20, 0x4a, 0xd8, 0xb2, 0x7c, 0x11, 0x4f, 0x35,
- 0x3e, 0xb8, 0x92, 0x4b, 0x92, 0x92, 0x6a, 0xbb, 0x0a, 0xbf, 0xda, 0x6f, 0x68, 0x21, 0x0b, 0xbb,
- 0x5e, 0xfc, 0x4a, 0x80, 0x4a, 0x4a, 0xf1, 0xea, 0x74, 0x63, 0xdc, 0xcb, 0x54, 0x71, 0xc7, 0xea,
- 0x7e, 0xc0, 0x02, 0x78, 0x02, 0x02, 0x39, 0x64, 0x5e, 0x96, 0xde, 0x16, 0x40, 0x41, 0x83, 0x64,
- 0x18, 0x11, 0x36, 0x42, 0x36, 0x36, 0x56, 0x85, 0xfe, 0x37, 0xe0, 0x29, 0x0f, 0x14, 0x33, 0x85,
- 0x38, 0x2d, 0x7e, 0xba, 0x7e, 0x7e, 0x9e, 0x0b, 0xd4, 0xc2, 0xe2, 0xf4, 0x1b, 0x24, 0x77, 0x0b,
- 0x58, 0x69, 0xa6, 0x71, 0xa6, 0xa6, 0x05, 0x5a, 0xaa, 0x1e, 0xe4, 0x50, 0x27, 0x74, 0xbb, 0x5a,
- 0x78, 0x55, 0xee, 0x89, 0xee, 0xee, 0xcd, 0xd4, 0x80, 0xeb, 0xe6, 0x8d, 0x33, 0x44, 0xff, 0xd4,
- 0x98, 0xe1, 0xd5, 0x24, 0xd5, 0xd5, 0xf0, 0xf8, 0x56, 0x65, 0xe8, 0xdb, 0x5f, 0xd4, 0xe0, 0xf8,
- 0xb8, 0xdd, 0x9d, 0xdc, 0x9d, 0x9d, 0x38, 0x76, 0x7c, 0x90, 0xea, 0x06, 0x4b, 0xe4, 0xa4, 0x76,
- 0xd8, 0x99, 0x45, 0x17, 0x45, 0x45, 0xa3, 0x27, 0x02, 0x4c, 0xec, 0xa2, 0x77, 0xb4, 0x68, 0x27,
- 0xf8, 0xa5, 0x0d, 0xef, 0x0d, 0x0d, 0x6b, 0xa9, 0x28, 0xb9, 0xee, 0x7f, 0x63, 0x84, 0x2c, 0xa9,
- 0xdb, 0x32, 0x33, 0x8e, 0x33, 0x33, 0xd9, 0x7f, 0x6d, 0x93, 0xf0, 0x0e, 0xaf, 0x57, 0x56, 0x7f,
- 0xfb, 0x0e, 0x7b, 0x76, 0x7b, 0x7b, 0x11, 0xf1, 0x47, 0x66, 0xf2, 0xd3, 0xbb, 0x67, 0x12, 0xf1,
- 0x9b, 0x4a, 0xa3, 0xbd, 0xa3, 0xa3, 0x8a, 0xa0, 0x39, 0xba, 0xf4, 0x77, 0x87, 0x37, 0xde, 0xa0,
- 0xbb, 0x76, 0xeb, 0x45, 0xeb, 0xeb, 0x42, 0x2e, 0x13, 0x4f, 0xf6, 0xaa, 0x93, 0x07, 0x9a, 0x2e,
- 0x5b, 0xc2, 0xd0, 0xe8, 0xd0, 0xd0, 0x7f, 0x02, 0xc5, 0xc1, 0xf8, 0xfc, 0xff, 0x97, 0x85, 0x02,
- 0x7b, 0xfe, 0x98, 0x10, 0x98, 0x98, 0xb7, 0x8c, 0xef, 0x34, 0xfa, 0x21, 0xeb, 0xa7, 0xc1, 0x8c,
- 0x1b, 0xba, 0x40, 0xdb, 0x40, 0x40, 0x2c, 0xdd, 0x91, 0xe8, 0xfc, 0x85, 0xd7, 0xf7, 0x0d, 0xdd,
- 0x3b, 0x86, 0x08, 0x23, 0x08, 0x08, 0xe4, 0x53, 0xbb, 0x1d, 0xfe, 0x58, 0xc3, 0xc7, 0x49, 0x53,
- 0x6d, 0x75, 0x50, 0x9d, 0x50, 0x50, 0x27, 0x7b, 0x24, 0xd2, 0xc3, 0x35, 0x92, 0xba, 0x9f, 0x7b,
- 0x4d, 0x49, 0x18, 0x65, 0x18, 0x18, 0xef, 0xf5, 0x0e, 0x27, 0xc1, 0xe8, 0x86, 0x8a, 0xdb, 0xf5,
- 0x2d, 0x0d, 0xc0, 0xae, 0xc0, 0xc0, 0x74, 0xa4, 0x70, 0xfb, 0xc7, 0x4c, 0xba, 0xda, 0x17, 0xa4,
- 0x0d, 0x31, 0x88, 0x56, 0x88, 0x88, 0xbc, 0x2a, 0x5a, 0x0e, 0xc5, 0x91, 0xae, 0xea, 0x53, 0x2a,
- 0xed, 0x85, 0xb3, 0xfb, 0xb3, 0xb3, 0x81, 0x06, 0x8c, 0x80, 0xcb, 0xc7, 0xc2, 0x7a, 0x4c, 0x06,
- 0xcd, 0xb9, 0xfb, 0x03, 0xfb, 0xfb, 0x49, 0x88, 0xa6, 0x75, 0xc9, 0x1a, 0xd6, 0x4a, 0x08, 0x88,
- 0xad, 0xfd, 0x23, 0xc8, 0x23, 0x23, 0xd2, 0xd9, 0xd8, 0xa9, 0xcf, 0xbe, 0xea, 0x1a, 0xc4, 0xd9,
- 0x8d, 0xc1, 0x6b, 0x30, 0x6b, 0x6b, 0x1a, 0x57, 0xf2, 0x5c, 0xcd, 0x63, 0xfe, 0x2a, 0x80, 0x57,
- 0xae, 0x56, 0x55, 0x51, 0x55, 0x55, 0xa8, 0x81, 0xb7, 0x76, 0xd3, 0x12, 0x32, 0xf9, 0xfa, 0x81,
- 0x8e, 0x6a, 0x1d, 0xa9, 0x1d, 0x1d, 0x60, 0x0f, 0x9d, 0x83, 0xd1, 0xcf, 0x26, 0xc9, 0xbe, 0x0f,
- 0xee, 0x2e, 0xc5, 0x62, 0xc5, 0xc5, 0xfb, 0x5e, 0xe3, 0x5f, 0xd7, 0x6b, 0x1a, 0x99, 0x72, 0x5e,
- 0xce, 0x12, 0x8d, 0x9a, 0x8d, 0x8d, 0x33, 0xd0, 0xc9, 0xaa, 0xd5, 0xb6, 0x0e, 0xa9, 0x36, 0xd0,
- 0x2e, 0xa6, 0xb6, 0x37, 0xb6, 0xb6, 0x0e, 0xfc, 0x1f, 0x24, 0xdb, 0xe0, 0x62, 0x39, 0x29, 0xfc,
- 0x0e, 0x9a, 0xfe, 0xcf, 0xfe, 0xfe, 0xc6, 0x72, 0x35, 0xd1, 0xd9, 0x3d, 0x76, 0x09, 0x6d, 0x72,
- 0x6e, 0xde, 0x26, 0x04, 0x26, 0x26, 0x5d, 0x23, 0x4b, 0x0d, 0xdf, 0x99, 0x4a, 0x59, 0xa1, 0x23,
- 0x4e, 0xe2, 0x6e, 0xfc, 0x6e, 0x6e, 0x95, 0xad, 0x61, 0xf8, 0xdd, 0x44, 0x5e, 0x69, 0xe5, 0xad,
- 0x28, 0x33, 0x5a, 0xc6, 0x5a, 0x5a, 0xfa, 0x4c, 0xc1, 0x59, 0xe3, 0x7b, 0x11, 0x3c, 0x55, 0x4c,
- 0x08, 0x0f, 0x12, 0x3e, 0x12, 0x12, 0x32, 0xc2, 0xeb, 0xac, 0xe1, 0xa6, 0x05, 0x0c, 0x11, 0xc2,
- 0x68, 0x4b, 0xca, 0xf5, 0xca, 0xca, 0xa9, 0x93, 0x95, 0x70, 0xe7, 0x02, 0x39, 0x5c, 0xdd, 0x93,
- 0x48, 0x77, 0x82, 0x0d, 0x82, 0x82, 0x61, 0x1d, 0xbf, 0x85, 0xe5, 0xdf, 0x2d, 0x6c, 0x99, 0x1d,
- 0xa8, 0xc3, 0xb9, 0xa0, 0xb9, 0xb9, 0x5c, 0x31, 0x69, 0x0b, 0xeb, 0x89, 0x41, 0xfc, 0x86, 0x31,
- 0x88, 0xff, 0xf1, 0x58, 0xf1, 0xf1, 0x94, 0xbf, 0x43, 0xfe, 0xe9, 0x54, 0x55, 0xcc, 0xc2, 0xbf,
- 0xe8, 0xbb, 0x29, 0x93, 0x29, 0x29, 0x0f, 0xee, 0x3d, 0x22, 0xef, 0xf0, 0x69, 0x9c, 0x0e, 0xee,
- 0xc8, 0x87, 0x61, 0x6b, 0x61, 0x61, 0xc7, 0x60, 0x17, 0xd7, 0xed, 0x2d, 0x7d, 0xac, 0x4a, 0x60,
- 0xeb, 0x10, 0x5f, 0x0a, 0x5f, 0x5f, 0x75, 0xb6, 0x52, 0xfd, 0xf3, 0x5c, 0xb1, 0x7f, 0x30, 0xb6,
- 0xcb, 0x2c, 0x17, 0xf2, 0x17, 0x17, 0xbd, 0x38, 0x78, 0x08, 0xf1, 0x81, 0xa5, 0x4f, 0x74, 0x38,
- 0xab, 0x68, 0xcf, 0x39, 0xcf, 0xcf, 0x26, 0x69, 0x06, 0xd4, 0xf7, 0x25, 0x99, 0x1f, 0xb8, 0x69,
- 0x8b, 0x54, 0x87, 0xc1, 0x87, 0x87, 0xee, 0xe7, 0x2c, 0x21, 0xf5, 0xf8, 0x8d, 0x2f, 0xfc, 0xe7,
- 0x6b, 0xe0, 0xbc, 0x6c, 0xbc, 0xbc, 0xd3, 0xcb, 0xfa, 0xaf, 0xfb, 0xae, 0xe1, 0xbf, 0xe3, 0xcb,
- 0x4b, 0xdc, 0xf4, 0x94, 0xf4, 0xf4, 0x1b, 0x45, 0xd0, 0x5a, 0xf9, 0x73, 0xf5, 0x8f, 0xa7, 0x45,
- 0x2b, 0x98, 0x2c, 0x5f, 0x2c, 0x2c, 0x80, 0x14, 0xae, 0x86, 0xff, 0xd7, 0xc9, 0xdf, 0x6b, 0x14,
- 0x0b, 0xa4, 0x64, 0xa7, 0x64, 0x64, 0x48, 0x9a, 0x84, 0x73, 0xfd, 0x0a, 0xdd, 0xef, 0x2f, 0x9a,
- 0xe7, 0xf9, 0x44, 0x2b, 0x44, 0x44, 0x5e, 0x15, 0x2d, 0x07, 0x83, 0xa9, 0x57, 0x75, 0xc8, 0x15,
- 0xc7, 0xc5, 0x0c, 0xd3, 0x0c, 0x0c, 0x96, 0x9b, 0x07, 0xf2, 0x81, 0x74, 0x43, 0x45, 0x8c, 0x9b,
- 0xa7, 0x81, 0xd4, 0x18, 0xd4, 0xd4, 0x0d, 0xca, 0x79, 0x2e, 0x87, 0xd0, 0x7f, 0x15, 0x40, 0xca,
- 0x87, 0xbd, 0x9c, 0xe0, 0x9c, 0x9c, 0xc5, 0x44, 0x53, 0xdb, 0x85, 0x0d, 0x6b, 0x25, 0x04, 0x44,
- 0x67, 0x09, 0xa7, 0x4d, 0xa7, 0xa7, 0xf8, 0x68, 0x85, 0x55, 0x8b, 0x5b, 0x07, 0xb5, 0x1b, 0x68,
- 0x47, 0x35, 0xef, 0xb5, 0xef, 0xef, 0x30, 0xe6, 0xaf, 0xa0, 0x89, 0x86, 0x13, 0x85, 0x5f, 0xe6,
- 0x27, 0x71, 0x37, 0x7e, 0x37, 0x37, 0xab, 0xb7, 0xd1, 0x7c, 0x8f, 0x22, 0x2f, 0xd5, 0x93, 0xb7,
- 0x07, 0x4d, 0x7f, 0x86, 0x7f, 0x7f, 0x63, 0x39, 0xfb, 0x89, 0x8d, 0xff, 0x3b, 0xe5, 0xd7, 0x39,
- 0x24, 0xda, 0x41, 0xe7, 0x41, 0x41, 0xd1, 0xef, 0xbe, 0xa3, 0x93, 0x8e, 0xf7, 0x36, 0xad, 0xef,
- 0x04, 0xe6, 0x09, 0x1f, 0x09, 0x09, 0x19, 0x61, 0x94, 0x56, 0x91, 0x53, 0xe3, 0x06, 0xe9, 0x61,
- 0x64, 0xa2, 0xd1, 0xd4, 0xd1, 0xd1, 0x82, 0x30, 0xea, 0x8a, 0x97, 0xf7, 0xdf, 0x56, 0x25, 0x30,
- 0x44, 0x9e, 0x99, 0x2c, 0x99, 0x99, 0x4a, 0xbe, 0xc0, 0x7f, 0x95, 0x2a, 0xcb, 0x66, 0x61, 0xbe,
- 0xa4, 0x2a, 0xa2, 0x81, 0xa2, 0xa2, 0x77, 0x92, 0x16, 0xf1, 0x9b, 0x7c, 0xa7, 0xf6, 0x7e, 0x92,
- 0x84, 0x16, 0xea, 0x79, 0xea, 0xea, 0xbf, 0x1c, 0x3c, 0x04, 0x99, 0xa1, 0xb3, 0xc6, 0x3a, 0x1c,
- 0xe4, 0x52, 0x32, 0xb2, 0x32, 0x32, 0x24, 0x4d, 0x42, 0xd8, 0x9f, 0x05, 0x8f, 0x96, 0xf6, 0x4d,
- 0xc4, 0x6e, 0x7a, 0x4a, 0x7a, 0x7a, 0xec, 0xc3, 0x68, 0x2d, 0x9d, 0xd8, 0x9b, 0xa6, 0xb2, 0xc3,
- 0xa2, 0xbf, 0x4e, 0x70, 0x4e, 0x4e, 0x83, 0x22, 0xc8, 0x8c, 0xa3, 0xe7, 0xd4, 0xf3, 0x02, 0x22,
- 0x82, 0x83, 0x06, 0x88, 0x06, 0x06, 0x4b, 0xac, 0xe2, 0x79, 0xa1, 0x3a, 0xc0, 0xc3, 0x46, 0xac,
- 0xe2, 0xc7, 0xde, 0x43, 0xde, 0xde, 0xd0, 0xfd, 0x9c, 0xa5, 0xa7, 0x9e, 0xfc, 0x93, 0x8a, 0xfd,
- 0xc2, 0xfb, 0x96, 0xbb, 0x96, 0x96, 0x18, 0x73, 0xb6, 0x50, 0xa5, 0x43, 0xe8, 0xa3, 0xce, 0x73,
- 0x22, 0x4f, 0xad, 0x16, 0xad, 0xad, 0x25, 0x5f, 0x60, 0xde, 0xab, 0x15, 0x84, 0x33, 0xd1, 0x5f,
- 0x02, 0x73, 0xe5, 0xee, 0xe5, 0xe5, 0xed, 0xd1, 0x4a, 0x2b, 0xa9, 0xc8, 0x90, 0x03, 0x95, 0xd1,
- 0x62, 0x37, 0x3d, 0x25, 0x3d, 0x3d, 0x76, 0x80, 0x34, 0xf7, 0xaf, 0x6c, 0xac, 0x53, 0x59, 0x80,
- 0x42, 0x0b, 0x75, 0xdd, 0x75, 0x75, 0xbe, 0x0e, 0x1e, 0x02, 0xad, 0xb1, 0xb8, 0x63, 0x1d, 0x0e,
- 0x61, 0x9c, 0x4b, 0xbc, 0x4b, 0x4b, 0x0c, 0xd8, 0x5b, 0x28, 0xb3, 0xc0, 0x74, 0xb0, 0x67, 0xd8,
- 0x41, 0xa0, 0x03, 0x44, 0x03, 0x03, 0xc4, 0x56, 0x71, 0xdd, 0xb1, 0x1d, 0x60, 0x80, 0x23, 0x56,
- 0x21, 0xe4, 0xdb, 0x8f, 0xdb, 0xdb, 0x5f, 0x07, 0x0f, 0x01, 0xb7, 0xb9, 0x5c, 0xd0, 0xef, 0x07,
- 0x01, 0xd8, 0x93, 0x77, 0x93, 0x93, 0x97, 0x89, 0x25, 0xf4, 0xb5, 0x64, 0x48, 0xe0, 0xab, 0x89,
- 0xe1, 0x6c, 0xa8, 0xda, 0xa8, 0xa8, 0xaa, 0xa5, 0xf3, 0x7a, 0xbb, 0x32, 0x24, 0x70, 0xb4, 0xa5,
- 0xc1, 0x50, 0xe0, 0x22, 0xe0, 0xe0, 0x62, 0x2b, 0xd9, 0x8f, 0xb9, 0xef, 0x30, 0x40, 0xf0, 0x2b,
- 0xa1, 0x14, 0x38, 0xe9, 0x38, 0x38, 0xf9, 0x7a, 0xa7, 0x53, 0xbf, 0x4b, 0x0c, 0x10, 0x3c, 0x7a,
- 0x81, 0x28, 0x70, 0x11, 0x70, 0x70, 0x31, 0xf4, 0x8d, 0xa6, 0xbd, 0x96, 0x18, 0x20, 0x78, 0xf4,
- 0xba, 0xae, 0x78, 0x32, 0x78, 0x78, 0xd5, 0xa7, 0x36, 0xbb, 0x43, 0xce, 0xdb, 0xe7, 0x31, 0xa7,
- 0x9a, 0x92, 0x30, 0xca, 0x30, 0x30, 0x1d, 0x29, 0x1c, 0x4e, 0x41, 0x13, 0xcf, 0xd7, 0x75, 0x29,
- 0xfa, 0xd6, 0xe8, 0x01, 0xe8, 0xe8, 0x86, 0x78, 0x62, 0x92, 0x47, 0xb7, 0xf3, 0x87, 0xb9, 0x78,
- 0xda, 0xea, 0xa0, 0xf9, 0xa0, 0xa0, 0x4e, 0xf6, 0x48, 0x67, 0x45, 0x6a, 0xe7, 0xb7, 0xfd, 0xf6,
- 0x3a, 0x5e, 0x9b, 0x54, 0x9b, 0x9b, 0x73, 0xda, 0x9e, 0xe9, 0x4b, 0x3c, 0x8b, 0x27, 0xe2, 0xda,
- 0x1a, 0x62, 0xd3, 0xac, 0xd3, 0xd3, 0xbb, 0x54, 0xb4, 0x1c, 0x49, 0xe1, 0x9f, 0x17, 0xa6, 0x54,
- 0x7a, 0x26, 0x0b, 0x67, 0x0b, 0x0b, 0x20, 0x05, 0xca, 0xc0, 0x4f, 0x45, 0xa3, 0x47, 0x6a, 0x05,
- 0x5a, 0x1a, 0x43, 0x9f, 0x43, 0x43, 0xe8, 0x8b, 0xe0, 0x35, 0x4d, 0x98, 0xb7, 0x77, 0x2e, 0x8b,
- 0x79, 0x8d, 0x7d, 0xfe, 0x7d, 0x7d, 0x5a, 0x5d, 0xa5, 0x1f, 0x53, 0xe9, 0x7b, 0xa4, 0x54, 0x5d,
- 0x59, 0xb1, 0x35, 0x06, 0x35, 0x35, 0x92, 0xd3, 0x8f, 0xea, 0x51, 0x34, 0x6f, 0x94, 0x10, 0xd3,
- 0x39, 0xf5, 0xed, 0xcd, 0xed, 0xed, 0x09, 0x82, 0xf1, 0x36, 0x57, 0x90, 0x53, 0xc4, 0xdc, 0x82,
- 0x19, 0xc9, 0xa5, 0x35, 0xa5, 0xa5, 0xc1, 0x0c, 0xdb, 0xc3, 0x55, 0x4d, 0x47, 0xf4, 0x98, 0x0c,
- 0xf9, 0x7d, 0x9e, 0x98, 0x9e, 0x9e, 0xfc, 0x20, 0x0d, 0x4d, 0x5b, 0x1b, 0x2b, 0x64, 0x87, 0x20,
- 0xd9, 0x41, 0xd6, 0x60, 0xd6, 0xd6, 0x34, 0xae, 0x27, 0xb8, 0x59, 0xc6, 0x3f, 0x54, 0xc3, 0xae,
- 0xb9, 0x05, 0x0e, 0xab, 0x0e, 0x0e, 0xaf, 0xff, 0x59, 0x64, 0x5f, 0x62, 0x03, 0x04, 0x0f, 0xff,
- 0x99, 0x39, 0x46, 0x53, 0x46, 0x46, 0x67, 0x71, 0x73, 0x91, 0x5d, 0xbf, 0x17, 0x34, 0x4b, 0x71,
- 0xff, 0xe8, 0x72, 0x69, 0x72, 0x72, 0x08, 0x90, 0xd3, 0x30, 0x63, 0x80, 0x58, 0x61, 0xfb, 0x90,
- 0xdf, 0xd4, 0x3a, 0x91, 0x3a, 0x3a, 0xc0, 0x1e, 0xf9, 0xc5, 0x61, 0x5d, 0x4c, 0x51, 0xbf, 0x1e,
- 0xbf, 0x90, 0xe2, 0x5a, 0xe2, 0xe2, 0x5b, 0x4f, 0x87, 0x19, 0x67, 0xf9, 0x70, 0x01, 0x73, 0x4f,
- 0x9f, 0xac, 0xaa, 0xa2, 0xaa, 0xaa, 0x93, 0xc1, 0xad, 0xec, 0x65, 0x24, 0x64, 0x31, 0x37, 0xc1,
- 0x7f, 0x18, 0x91, 0x0f, 0x91, 0x91, 0xae, 0xed, 0x7b, 0x62, 0x6b, 0x72, 0x08, 0xa1, 0x28, 0xed,
- 0x5f, 0x24, 0xd9, 0xf7, 0xd9, 0xd9, 0x66, 0x63, 0x51, 0x97, 0x69, 0xaf, 0x1c, 0x91, 0x6c, 0x63,
- 0x3f, 0x60, 0x01, 0x3c, 0x01, 0x01, 0xfd, 0x32, 0x2f, 0x4b, 0x6f, 0x0b, 0x20, 0xc1, 0xa0, 0x32,
- 0x1f, 0x5c, 0x49, 0xc4, 0x49, 0x49, 0x35, 0xbc, 0x05, 0xbe, 0x6d, 0xd6, 0x34, 0xf1, 0xe4, 0xbc,
- 0x3c, 0xcb, 0x77, 0xa5, 0x77, 0x77, 0x87, 0x6a, 0x40, 0x94, 0x73, 0xa7, 0xf8, 0x22, 0x9e, 0x6a,
- 0x1c, 0xf7, 0x3f, 0x5d, 0x3f, 0x3f, 0x4f, 0xe4, 0x6a, 0x61, 0x71, 0x7a, 0xec, 0x12, 0xda, 0xe4,
- 0x7c, 0xb3, 0xe7, 0x96, 0xe7, 0xe7, 0xd4, 0xb5, 0x14, 0xbd, 0x77, 0xde, 0xd0, 0x42, 0x16, 0xb5,
- 0x5c, 0x8f, 0xaf, 0x6e, 0xaf, 0xaf, 0x1c, 0x3b, 0x3e, 0x48, 0x75, 0x03, 0xc4, 0x72, 0x52, 0x3b,
- 0xbc, 0x3b, 0x94, 0xc3, 0x94, 0x94, 0x21, 0x17, 0xe8, 0xc6, 0x7b, 0x55, 0xa8, 0xe2, 0x4d, 0x17,
- 0x9c, 0x07, 0xdc, 0x3b, 0xdc, 0xdc, 0xe9, 0x99, 0xc2, 0x33, 0x79, 0x88, 0xbc, 0xd2, 0x09, 0x99,
- 0xfc, 0x43, 0x04, 0xf0, 0x04, 0x04, 0x72, 0xc8, 0xbc, 0xef, 0x7f, 0x2c, 0x80, 0x82, 0xc5, 0xc8,
- 0xdc, 0x7f, 0x4c, 0x08, 0x4c, 0x4c, 0xba, 0x46, 0x96, 0x1a, 0x7d, 0xf1, 0x94, 0xb2, 0x81, 0x46,
- 0x30, 0x22, 0x6c, 0x84, 0x6c, 0x6c, 0xac, 0xc9, 0x3f, 0x6e, 0x03, 0x52, 0x1e, 0x28, 0x66, 0xc9,
- 0x10, 0x1e, 0x24, 0x7c, 0x24, 0x24, 0x64, 0x47, 0x15, 0x9b, 0x01, 0x8f, 0x0a, 0x18, 0x22, 0x47,
- 0x70, 0x5a, 0xfc, 0xb7, 0xfc, 0xfc, 0xff, 0x16, 0x6b, 0x47, 0x07, 0x2b, 0x36, 0x48, 0xee, 0x16,
- 0x50, 0x66, 0xb4, 0x4f, 0xb4, 0xb4, 0x37, 0x98, 0x41, 0xb2, 0x05, 0xf6, 0x22, 0x78, 0xaa, 0x98,
- 0xb0, 0xd2, 0x8f, 0xe2, 0x8f, 0x8f, 0x0a, 0xb4, 0x97, 0x3c, 0x0b, 0xa0, 0x4e, 0xe8, 0xb5, 0xb4,
- 0x90, 0xee, 0xc7, 0x1a, 0xc7, 0xc7, 0xc2, 0x3a, 0xbd, 0xc9, 0x09, 0x7d, 0x5a, 0xd8, 0xf1, 0x3a,
- 0xf0, 0xaa, 0x1f, 0xd1, 0x1f, 0x1f, 0x59, 0x6b, 0xc3, 0x15, 0x0f, 0xd9, 0x66, 0x88, 0x3d, 0x6b,
- 0xd0, 0x96, 0x57, 0x29, 0x57, 0x57, 0x91, 0xe5, 0xe9, 0xe0, 0x0d, 0x04, 0x72, 0xb8, 0x79, 0xe5,
- 0xf3, 0x01, 0x69, 0x48, 0x69, 0x69, 0x23, 0x33, 0xac, 0xca, 0x13, 0x75, 0xbe, 0x6b, 0x03, 0x33,
- 0xd3, 0x3d, 0x21, 0xb0, 0x21, 0x21, 0xeb, 0xbd, 0x86, 0x3f, 0x11, 0xa8, 0xaa, 0x5b, 0x47, 0xbd,
- 0xb3, 0x79, 0xf9, 0x7b, 0xf9, 0xf9, 0x70, 0xec, 0xf8, 0xe3, 0x17, 0x0c, 0x96, 0x0b, 0x8b, 0xec,
- 0x93, 0x45, 0xb1, 0x83, 0xb1, 0xb1, 0xb8, 0x62, 0xd2, 0x16, 0x15, 0xd1, 0x82, 0x3b, 0xcf, 0x62,
- 0x73, 0xf1, 0x8a, 0x2e, 0x8a, 0x8a, 0x85, 0x4e, 0x04, 0x98, 0x1b, 0x87, 0xee, 0xab, 0xd0, 0x4e,
- 0x53, 0xcd, 0xc2, 0xd6, 0xc2, 0xc2, 0x4d, 0xc0, 0x2e, 0x6d, 0x19, 0x5a, 0xfa, 0x9b, 0x94, 0xc0,
- 0x33, 0x89, 0x1a, 0x1d, 0x1a, 0x1a, 0xd6, 0x91, 0x50, 0xb1, 0x1f, 0xfe, 0xc6, 0xcb, 0x58, 0x91,
- 0x13, 0xb5, 0x52, 0xe5, 0x52, 0x52, 0x1e, 0x1f, 0x7a, 0x44, 0x1d, 0x23, 0xd2, 0xfb, 0x1c, 0x1f,
- 0x75, 0x64, 0x66, 0xdf, 0x66, 0x66, 0x71, 0xfe, 0xda, 0xe5, 0x23, 0x1c, 0x9d, 0xae, 0xac, 0xfe,
- 0x55, 0x58, 0x2e, 0x27, 0x2e, 0x2e, 0xb9, 0x70, 0xf0, 0x10, 0x21, 0xc1, 0x89, 0x9e, 0xe8, 0x70,
- 0x35, 0x1c, 0xf6, 0xec, 0xf6, 0xf6, 0x22, 0x21, 0x8e, 0xcc, 0x27, 0x65, 0xb5, 0xce, 0x24, 0x21,
- 0x15, 0x20, 0xbe, 0x14, 0xbe, 0xbe, 0xea, 0xaf, 0xa4, 0x39, 0x25, 0xb8, 0xa1, 0xfe, 0x60, 0xaf,
- 0xf5, 0x94, 0x85, 0xb9, 0x85, 0x85, 0xd7, 0x83, 0x72, 0xb7, 0x2b, 0xee, 0xcd, 0x6e, 0x7f, 0x83,
- 0xd5, 0xa8, 0xcd, 0x41, 0xcd, 0xcd, 0x1f, 0x0d, 0x58, 0x42, 0x29, 0x33, 0xd9, 0x5e, 0x3b, 0x0d,
- 0xb5, 0xec, 0x15, 0x8a, 0x15, 0x15, 0x84, 0x5c, 0x26, 0x9e, 0x2f, 0x97, 0xe5, 0x0e, 0xf7, 0x5c,
- 0x95, 0xd0, 0x5d, 0x72, 0x5d, 0x5d, 0x4c, 0xd2, 0x0c, 0x6b, 0x2d, 0x4a, 0xf1, 0x3e, 0xb3, 0xd2,
- 0xb6, 0x47, 0x63, 0x13, 0x63, 0x63, 0xfe, 0x04, 0x49, 0x41, 0x33, 0x3b, 0x3d, 0xed, 0xc9, 0x04,
- 0x96, 0x7b, 0x2b, 0xeb, 0x2b, 0x2b, 0x36, 0x8a, 0x63, 0xb4, 0x31, 0xe6, 0x29, 0xdd, 0x8d, 0x8a,
- 0xf6, 0x3f, 0xf3, 0x20, 0xf3, 0xf3, 0xad, 0xdb, 0x1d, 0x68, 0x37, 0x42, 0x15, 0x8d, 0x41, 0xdb,
- 0xd6, 0x03, 0xbb, 0xd8, 0xbb, 0xbb, 0x65, 0x55, 0x37, 0x9d, 0x35, 0x9f, 0x01, 0xbd, 0x05, 0x55,
- 0x36, 0xb7, 0x80, 0x75, 0x80, 0x80, 0x58, 0x79, 0xe1, 0x13, 0x3b, 0xc9, 0x6d, 0x2d, 0x1a, 0x79,
- 0x16, 0x8b, 0xc8, 0x8d, 0xc8, 0xc8, 0x90, 0xf7, 0xcb, 0xe6, 0x39, 0x14, 0x79, 0x1d, 0x5e, 0xf7,
- 0x76, 0xcf, 0x10, 0x46, 0x10, 0x10, 0x0b, 0xa6, 0xb5, 0x3a, 0x3f, 0xb0, 0x45, 0x4d, 0x92, 0xa6,
- 0x56, 0xf3, 0x58, 0xbe, 0x58, 0x58, 0xc3, 0x28, 0x9f, 0xcf, 0x3d, 0x6d, 0x51, 0x7d, 0xd6, 0x28,
- },
- { /* 3 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x85, 0x44, 0xdf, 0x52, 0x7f, 0xc6, 0x98, 0x60, 0xd4, 0x52, 0x0e, 0x65, 0x07, 0x9f, 0x86, 0xea,
- 0xc9, 0x88, 0x7d, 0xa4, 0xfe, 0x4f, 0xf3, 0xc0, 0x6b, 0xa4, 0x1c, 0xca, 0x0e, 0xfd, 0xcf, 0x17,
- 0x4c, 0xcc, 0xa2, 0xf6, 0x81, 0x89, 0x6b, 0xa0, 0xbf, 0xf6, 0x12, 0xaf, 0x09, 0x62, 0x49, 0xfd,
- 0x51, 0xd3, 0xfa, 0x8b, 0x3f, 0x9e, 0x25, 0x43, 0xd6, 0x8b, 0x38, 0x57, 0x1c, 0x39, 0x5d, 0x2e,
- 0xd4, 0x97, 0x25, 0xd9, 0x40, 0x58, 0xbd, 0x23, 0x02, 0xd9, 0x36, 0x32, 0x1b, 0xa6, 0xdb, 0xc4,
- 0x98, 0x5b, 0x87, 0x2f, 0xc1, 0xd1, 0xd6, 0x83, 0xbd, 0x2f, 0x24, 0x9d, 0x12, 0xc4, 0x92, 0x39,
- 0x1d, 0x1f, 0x58, 0x7d, 0xbe, 0x17, 0x4e, 0xe3, 0x69, 0x7d, 0x2a, 0xf8, 0x15, 0x5b, 0x14, 0xd3,
- 0xa2, 0x65, 0x37, 0xd5, 0x7e, 0xff, 0x4a, 0x86, 0x6f, 0xd5, 0x70, 0xae, 0x38, 0x72, 0xba, 0x5c,
- 0x27, 0x21, 0xe8, 0x87, 0x01, 0x39, 0xd2, 0xe6, 0xbb, 0x87, 0x7e, 0xcb, 0x3f, 0xed, 0x3c, 0xb6,
- 0x6b, 0xed, 0x4a, 0x71, 0x80, 0xb0, 0xb9, 0x46, 0x04, 0x71, 0x6c, 0x64, 0x36, 0x8f, 0x75, 0x4b,
- 0xee, 0xa9, 0x95, 0x23, 0xff, 0x76, 0x21, 0x26, 0xd0, 0x23, 0x62, 0x01, 0x31, 0x10, 0xf3, 0xa1,
- 0xf3, 0xb6, 0xcd, 0x5e, 0x41, 0x61, 0x6f, 0xc5, 0xb9, 0x5e, 0x48, 0xf9, 0x24, 0x4b, 0xe7, 0x72,
- 0x76, 0xf2, 0x12, 0x0c, 0x3e, 0xa7, 0xf7, 0xa5, 0x6d, 0x0c, 0x46, 0x9c, 0x23, 0xd4, 0x61, 0x98,
- 0x3a, 0x3e, 0xb0, 0xfa, 0xbf, 0x2e, 0x9c, 0x05, 0xd2, 0xfa, 0x54, 0x33, 0x2a, 0xb6, 0x28, 0x65,
- 0xbf, 0x7a, 0x6f, 0xa8, 0xc0, 0xe8, 0x04, 0x65, 0x06, 0xa8, 0x5a, 0x56, 0x2d, 0x29, 0xae, 0x8f,
- 0x87, 0xca, 0x6e, 0x69, 0xfc, 0x3d, 0x94, 0xcf, 0xde, 0x69, 0xe0, 0x9f, 0x70, 0xe4, 0xb7, 0xb8,
- 0x02, 0x8e, 0xb1, 0x3b, 0x83, 0xfb, 0x0c, 0xaf, 0x0a, 0x3b, 0xee, 0xfa, 0x77, 0x7b, 0x31, 0x52,
- 0x4e, 0x42, 0x13, 0xcd, 0x02, 0x72, 0x67, 0x0f, 0xb5, 0xcd, 0xfc, 0x55, 0x7e, 0x19, 0x78, 0xaf,
- 0xcb, 0x06, 0xcc, 0x9f, 0x7d, 0xb4, 0xff, 0x6f, 0x61, 0x9f, 0xf2, 0x30, 0x79, 0x86, 0xfe, 0x45,
- 0xd6, 0x19, 0x94, 0xe2, 0xc3, 0xa3, 0xb1, 0x8c, 0x08, 0xe2, 0xd8, 0xc8, 0x6c, 0xdd, 0xea, 0x96,
- 0x53, 0x5d, 0x4b, 0xb0, 0xbc, 0x65, 0x29, 0xec, 0xdc, 0xb0, 0xd6, 0xad, 0x6b, 0x42, 0x6c, 0x7c,
- 0x1f, 0x91, 0xe9, 0x46, 0x3d, 0xec, 0x42, 0x4c, 0x63, 0x46, 0xc4, 0x02, 0x62, 0x20, 0x25, 0x81,
- 0x9a, 0xd5, 0x36, 0x14, 0x42, 0x2a, 0xda, 0x2c, 0xb7, 0x14, 0xca, 0x67, 0x65, 0xbf, 0xa3, 0x6b,
- 0x25, 0xaf, 0x59, 0xbc, 0x82, 0xc2, 0xde, 0x49, 0xb1, 0xbc, 0x90, 0x31, 0x48, 0x96, 0x0d, 0xe4,
- 0xa0, 0xeb, 0x86, 0xee, 0xfd, 0x04, 0x46, 0x29, 0x65, 0xee, 0x9e, 0x54, 0x4f, 0x09, 0x8b, 0x0e,
- 0xec, 0x27, 0x24, 0x18, 0x7c, 0x8d, 0x2d, 0x89, 0xda, 0x18, 0x8c, 0xfb, 0x46, 0x6b, 0xc2, 0xf3,
- 0x69, 0x63, 0xfb, 0x4a, 0x03, 0x4b, 0xb5, 0xe9, 0x0e, 0x4a, 0x82, 0x9e, 0x41, 0xf4, 0x44, 0x19,
- 0x74, 0x7c, 0xa3, 0x37, 0xbd, 0x5c, 0xfb, 0x0a, 0x67, 0x37, 0xa8, 0x66, 0x54, 0xaf, 0x50, 0xca,
- 0xf1, 0x38, 0x7c, 0x65, 0xc2, 0x9a, 0x63, 0x6a, 0xb3, 0x65, 0xa6, 0x03, 0x53, 0x30, 0xd6, 0x20,
- 0xbd, 0xf4, 0xde, 0x93, 0x43, 0x13, 0x08, 0xca, 0x0c, 0x93, 0xb4, 0xac, 0x5a, 0x52, 0x9f, 0xdd,
- 0x38, 0xb0, 0x01, 0xc1, 0x3c, 0xd5, 0x90, 0xaa, 0xd8, 0xc1, 0xba, 0xc9, 0x5d, 0xcd, 0x19, 0x37,
- 0xcd, 0x57, 0xdc, 0xd2, 0x3b, 0x7a, 0xeb, 0x5d, 0x7f, 0xd2, 0x03, 0xfd, 0xe0, 0x0b, 0xad, 0xb3,
- 0x48, 0x13, 0x03, 0x80, 0x44, 0xbc, 0x73, 0x3d, 0xab, 0x80, 0x0d, 0x98, 0xe7, 0x94, 0x2b, 0x59,
- 0x04, 0xdf, 0xa1, 0x76, 0xc5, 0x35, 0x18, 0x9d, 0x14, 0x76, 0x1f, 0x37, 0xee, 0xf6, 0x62, 0xa4,
- 0x81, 0x9b, 0x7e, 0x24, 0xba, 0xf3, 0x80, 0xfd, 0xc0, 0x24, 0x11, 0x52, 0xe9, 0x69, 0xe4, 0x4e,
- 0x9c, 0x84, 0x26, 0x59, 0x04, 0xe4, 0xce, 0x1e, 0xa9, 0x59, 0x3b, 0xaa, 0xfc, 0x32, 0xf0, 0x9d,
- 0x19, 0xc0, 0xf9, 0x0b, 0x7b, 0x22, 0x56, 0x7e, 0x7d, 0x0b, 0x35, 0xcf, 0xfb, 0xad, 0x76, 0x77,
- 0x55, 0x0c, 0x5b, 0xfd, 0xfa, 0xab, 0x3d, 0xde, 0xc2, 0xfd, 0x27, 0x60, 0xf2, 0xcf, 0x3f, 0x8a,
- 0xd0, 0x48, 0x84, 0xaf, 0x85, 0x6d, 0xa5, 0xbe, 0x16, 0xaf, 0x29, 0x05, 0xf5, 0x50, 0xb9, 0x60,
- 0x6f, 0x32, 0xeb, 0x07, 0x45, 0x85, 0xa1, 0xdb, 0x10, 0x07, 0x73, 0x53, 0xd8, 0x79, 0x17, 0xef,
- 0xea, 0x76, 0x34, 0x55, 0x3a, 0x43, 0x39, 0xbb, 0xc4, 0x55, 0x7d, 0x36, 0xdf, 0xe6, 0x91, 0x05,
- 0xa6, 0xba, 0x96, 0xa3, 0xbb, 0xca, 0x52, 0x1b, 0x7b, 0xa3, 0x6f, 0x99, 0xd6, 0x84, 0xd8, 0xf8,
- 0x23, 0xfe, 0x49, 0xf1, 0xc4, 0x0c, 0xca, 0x7b, 0xaf, 0xf1, 0x61, 0xfc, 0xd1, 0x1b, 0x5e, 0x12,
- 0x3e, 0xe1, 0x11, 0x8c, 0x7a, 0x1b, 0x84, 0x98, 0xc6, 0x8c, 0x4b, 0x04, 0xc4, 0x40, 0x4a, 0xc1,
- 0xbb, 0xa5, 0xce, 0xde, 0x05, 0xdd, 0x1c, 0xf8, 0x12, 0xde, 0x45, 0x61, 0xc3, 0xdf, 0xcc, 0x2b,
- 0xf7, 0x69, 0x6c, 0x28, 0x84, 0x54, 0x77, 0x58, 0xad, 0x28, 0x57, 0xce, 0xca, 0xbd, 0x85, 0xd6,
- 0x72, 0x2d, 0xb3, 0x7a, 0xfb, 0x92, 0xef, 0x38, 0x79, 0x7a, 0x59, 0xab, 0xcd, 0x22, 0x03, 0x3c,
- 0x4a, 0x9d, 0xb2, 0xbb, 0xc7, 0x47, 0x7f, 0x92, 0xa1, 0xbb, 0xe3, 0x62, 0x90, 0xef, 0x1a, 0x0b,
- 0xcf, 0xd9, 0x6d, 0xe9, 0xb8, 0x81, 0xe7, 0xf2, 0x75, 0xe9, 0xed, 0x07, 0x97, 0x70, 0x9c, 0xe1,
- 0x83, 0x15, 0xcf, 0x1f, 0x39, 0x08, 0x8c, 0x52, 0xca, 0x1f, 0xff, 0xa8, 0x9e, 0x12, 0xd5, 0x1c,
- 0x06, 0x51, 0x10, 0x4d, 0x46, 0xce, 0x14, 0x32, 0x1e, 0x4d, 0xf1, 0xcd, 0x99, 0x8d, 0x53, 0xf6,
- 0x1b, 0x4e, 0x48, 0x30, 0xf8, 0xd9, 0x5a, 0xd1, 0x77, 0x30, 0xdb, 0x35, 0x8c, 0xd6, 0x47, 0x25,
- 0x9e, 0x0a, 0x97, 0x62, 0x87, 0x1f, 0xc2, 0xb1, 0xa3, 0x62, 0xd5, 0x50, 0x8b, 0x49, 0xc1, 0xcf,
- 0xd2, 0xc6, 0x35, 0x94, 0x06, 0x96, 0xa9, 0x11, 0x1c, 0x94, 0xc7, 0xff, 0x82, 0x2b, 0x88, 0x32,
- 0x57, 0x82, 0xea, 0xc6, 0x79, 0x50, 0x31, 0x71, 0xc8, 0xc6, 0xc9, 0x9a, 0x85, 0xb4, 0x0e, 0xd8,
- 0xe8, 0xf8, 0x85, 0x6e, 0xb9, 0xb8, 0x35, 0x14, 0xce, 0x6e, 0x93, 0xcc, 0xa8, 0x9d, 0xa0, 0x57,
- 0x6d, 0xbc, 0x5a, 0x3c, 0xc6, 0x7e, 0xad, 0x74, 0x1a, 0x3c, 0x9d, 0xa9, 0xaf, 0x02, 0x26, 0xbd,
- 0x21, 0x70, 0xf8, 0xca, 0x47, 0xf7, 0xc6, 0xd4, 0xa5, 0xca, 0x8f, 0x06, 0xa6, 0x60, 0x6f, 0x40,
- 0xa4, 0x34, 0x27, 0x98, 0x38, 0x31, 0x5e, 0xb4, 0x71, 0x98, 0x81, 0x63, 0xa1, 0xff, 0xe9, 0xaa,
- 0xb9, 0x2b, 0x7f, 0xe5, 0x86, 0x26, 0x10, 0x57, 0x18, 0xe5, 0xab, 0x9b, 0xb4, 0xa4, 0xfd, 0x79,
- 0x3c, 0x6f, 0xa0, 0xb7, 0xf9, 0xe0, 0x88, 0x37, 0xcc, 0xb7, 0xa5, 0xfe, 0xb3, 0x3b, 0x7b, 0x93,
- 0x70, 0xa3, 0x02, 0x41, 0x78, 0x69, 0xe3, 0x97, 0x73, 0x41, 0xb7, 0x51, 0xba, 0x59, 0x32, 0x6e,
- 0xf5, 0xe7, 0xdd, 0x13, 0x07, 0xaf, 0x7b, 0xf7, 0xa7, 0x13, 0xb9, 0x34, 0xbd, 0xc6, 0xb4, 0x84,
- 0x59, 0xae, 0x7b, 0x67, 0x76, 0xf4, 0x15, 0xba, 0xfe, 0x67, 0x06, 0x39, 0x03, 0x16, 0x99, 0xa5,
- 0xdc, 0xea, 0xa4, 0x35, 0x09, 0x32, 0x8d, 0xda, 0x2a, 0x35, 0x08, 0x5c, 0x04, 0x89, 0x1f, 0x4f,
- 0x90, 0x26, 0x06, 0xc3, 0x88, 0xbb, 0xe6, 0x7a, 0x95, 0xc3, 0x1a, 0xf3, 0x0d, 0xeb, 0x56, 0xb2,
- 0x15, 0x62, 0xd9, 0x91, 0xf7, 0x7d, 0x7e, 0x1a, 0x41, 0x91, 0x14, 0x96, 0x0a, 0x74, 0xd0, 0x58,
- 0x08, 0x7d, 0x81, 0xec, 0x49, 0x6a, 0x30, 0xf9, 0x28, 0xec, 0x3e, 0x6e, 0x1f, 0x2f, 0xc4, 0x8b,
- 0x8d, 0x39, 0x5e, 0xbe, 0x36, 0xac, 0xa8, 0x99, 0xfc, 0xbe, 0x30, 0x0b, 0x18, 0xb0, 0x42, 0x61,
- 0xc1, 0xf5, 0xfc, 0x48, 0xb7, 0x25, 0xc3, 0x39, 0x43, 0x48, 0x22, 0xa4, 0x11, 0xd2, 0x0b, 0x9c,
- 0x44, 0xb1, 0x23, 0x1a, 0xc8, 0xe3, 0x5b, 0x59, 0x97, 0x1a, 0x2c, 0xc1, 0x16, 0x4d, 0x8d, 0x76,
- 0xfb, 0xcb, 0x4c, 0xb2, 0x08, 0x0b, 0x5f, 0x3c, 0x91, 0xb2, 0x76, 0x97, 0x3b, 0x64, 0x23, 0xf9,
- 0x7e, 0x8f, 0x93, 0xe0, 0x77, 0xcd, 0xc7, 0x5c, 0x45, 0xe0, 0x78, 0xf2, 0x3c, 0xfb, 0xa5, 0x13,
- 0x32, 0x43, 0x31, 0x16, 0xf6, 0x44, 0xac, 0xfc, 0xfa, 0x16, 0x6a, 0x5d, 0x35, 0x99, 0xec, 0xee,
- 0xb7, 0x07, 0xee, 0x44, 0x89, 0x82, 0x34, 0x9c, 0x2e, 0x44, 0x64, 0x38, 0x32, 0x06, 0x6a, 0x04,
- 0xaa, 0x18, 0xb6, 0x39, 0x37, 0x95, 0x7a, 0x7f, 0x47, 0x39, 0x4e, 0xc0, 0x27, 0x5d, 0x7e, 0xd7,
- 0x2f, 0x5c, 0x69, 0x6b, 0x48, 0x53, 0xe2, 0x1f, 0x93, 0x6b, 0x40, 0xa5, 0x20, 0xc2, 0xf8, 0x3d,
- 0x63, 0x90, 0xcb, 0x9d, 0xc9, 0xda, 0x89, 0xbf, 0x2c, 0x9d, 0x52, 0x0a, 0x29, 0xa0, 0xb1, 0xc0,
- 0xe6, 0xd4, 0x14, 0xcf, 0xb6, 0x1c, 0x11, 0xdf, 0xf8, 0xcf, 0x5c, 0x6f, 0x2e, 0x3f, 0x37, 0x2a,
- 0xde, 0x64, 0x15, 0x0e, 0x8a, 0xc9, 0x81, 0x75, 0x20, 0x0e, 0xe6, 0xa6, 0x73, 0xf2, 0x2e, 0x1d,
- 0x5b, 0x20, 0xca, 0x5c, 0xf5, 0x0f, 0x19, 0x15, 0xf4, 0x5c, 0xe8, 0xc3, 0x74, 0x6d, 0xa8, 0xf7,
- 0x17, 0xec, 0x68, 0xaa, 0x74, 0x86, 0x72, 0xb5, 0x4b, 0xaa, 0xfa, 0x6c, 0x7d, 0x0f, 0xe1, 0x0a,
- 0x92, 0xa8, 0xb7, 0xf8, 0x0b, 0x40, 0xea, 0xd5, 0x9f, 0xf8, 0xf4, 0x09, 0x7a, 0x90, 0x67, 0xe0,
- 0x8f, 0xb7, 0xef, 0x85, 0xb5, 0x57, 0xa4, 0x36, 0xf6, 0x85, 0xde, 0xf1, 0x6f, 0xcb, 0x73, 0x33,
- 0x0a, 0xf3, 0x30, 0xd7, 0xca, 0x91, 0x3c, 0x56, 0x22, 0xd7, 0xd0, 0x94, 0x68, 0x54, 0xf5, 0xd9,
- 0x46, 0x3f, 0x92, 0x21, 0x4b, 0x18, 0x57, 0xf6, 0x9d, 0x21, 0xc2, 0x3b, 0x61, 0x36, 0xbc, 0x24,
- 0xc3, 0x7b, 0x4d, 0x73, 0x34, 0xde, 0xcf, 0x96, 0x49, 0x73, 0xcc, 0x5e, 0x66, 0xa9, 0x3a, 0xce,
- 0x7c, 0x01, 0x22, 0xdb, 0xf4, 0x36, 0xcb, 0xf3, 0x4f, 0xdb, 0x96, 0x08, 0x4b, 0x80, 0x94, 0x41,
- 0xf9, 0x45, 0xfd, 0x89, 0x8b, 0xf0, 0x53, 0x93, 0x9b, 0x89, 0x98, 0x6d, 0x4c, 0x1f, 0x12, 0xab,
- 0xb5, 0x89, 0x5f, 0x7f, 0x0a, 0x79, 0x38, 0x33, 0x24, 0x7f, 0x8a, 0xc2, 0x45, 0x7d, 0x5b, 0x56,
- 0x30, 0xcd, 0x80, 0x2d, 0x75, 0xbf, 0xa0, 0x53, 0xf0, 0x2d, 0x84, 0xa7, 0x42, 0xe2, 0xdd, 0xbc,
- 0x2d, 0xd2, 0xd8, 0x50, 0xcb, 0xa8, 0xee, 0xb0, 0x99, 0x50, 0xae, 0x5f, 0x57, 0xb9, 0xc9, 0x6f,
- 0xa8, 0x96, 0x07, 0x02, 0xb4, 0x6e, 0x76, 0xd0, 0x4d, 0x02, 0xa0, 0x3a, 0x50, 0x26, 0x4f, 0x85,
- 0xe4, 0x5a, 0xa5, 0xf4, 0x35, 0xe7, 0x1d, 0x70, 0xf2, 0xf4, 0xb2, 0x95, 0x59, 0x44, 0x06, 0x78,
- 0x61, 0x1e, 0x7a, 0xa6, 0x4a, 0x21, 0x85, 0x10, 0x26, 0xa6, 0xbc, 0xf0, 0x5e, 0xdb, 0x80, 0x92,
- 0x94, 0xf9, 0xa7, 0xb5, 0x4d, 0x8e, 0xfe, 0xe7, 0x81, 0xb5, 0x05, 0xc4, 0xe3, 0x1d, 0x34, 0x16,
- 0x11, 0xbd, 0x78, 0xe7, 0x32, 0x48, 0x66, 0x87, 0x55, 0xe7, 0x0b, 0xa1, 0xe4, 0x82, 0xb2, 0xfc,
- 0x5d, 0x71, 0xda, 0x11, 0xb3, 0xc1, 0x0d, 0x27, 0xea, 0x11, 0x19, 0x0e, 0xed, 0xe0, 0xfb, 0x01,
- 0xd8, 0x35, 0x05, 0x43, 0xcc, 0x07, 0x95, 0x47, 0x3e, 0x43, 0x17, 0x6b, 0xea, 0x7f, 0x7d, 0xeb,
- 0xc5, 0x2a, 0x5d, 0x3e, 0x72, 0x10, 0xdb, 0xa4, 0x57, 0x3e, 0x3d, 0x93, 0xff, 0x24, 0x69, 0x38,
- 0x40, 0x6e, 0x82, 0x6c, 0x0d, 0xd6, 0x43, 0xc4, 0x83, 0x6c, 0x33, 0xf6, 0xf8, 0xbb, 0xef, 0xd2,
- 0x0c, 0xa2, 0x20, 0x9a, 0x8c, 0x5f, 0x28, 0x64, 0x3c, 0x9a, 0x21, 0x59, 0xf1, 0xd9, 0xa6, 0x2f,
- 0x89, 0xe6, 0xff, 0xc8, 0xf3, 0x99, 0xb0, 0x04, 0xe8, 0xc8, 0x2f, 0x3c, 0xf6, 0x46, 0x20, 0xc5,
- 0x36, 0x9c, 0x90, 0x60, 0x33, 0x71, 0xb4, 0x61, 0xee, 0x60, 0x75, 0x6a, 0xdb, 0x6f, 0x8e, 0x4a,
- 0xb3, 0xd8, 0x4f, 0x32, 0x4c, 0xb7, 0x2c, 0x01, 0x3a, 0x32, 0x7b, 0x0f, 0xdc, 0xf0, 0x08, 0xa0,
- 0xff, 0x14, 0xed, 0xc4, 0xcd, 0x3e, 0x47, 0xa1, 0x85, 0xc4, 0x69, 0xa0, 0xd5, 0x92, 0x41, 0x5d,
- 0x7a, 0x50, 0x32, 0x96, 0xb2, 0xf8, 0xdf, 0xc1, 0x51, 0x96, 0x67, 0xc5, 0xd2, 0x0d, 0xc7, 0xb7,
- 0x67, 0x4f, 0x6a, 0xeb, 0x0c, 0xef, 0x91, 0x22, 0x38, 0xeb, 0x4d, 0x3d, 0xc7, 0x56, 0xd3, 0x64,
- 0xe2, 0x0b, 0xb5, 0xb9, 0x73, 0x29, 0x09, 0x42, 0xec, 0xb9, 0x43, 0x58, 0xc0, 0xc9, 0x55, 0x8e,
- 0xae, 0xc7, 0x17, 0x4f, 0xf2, 0xa0, 0x62, 0xe2, 0x53, 0x4f, 0x51, 0xf7, 0xc9, 0xab, 0x1c, 0x73,
- 0x2b, 0x83, 0xc8, 0x1d, 0x8d, 0x66, 0xfa, 0x82, 0x87, 0x1d, 0x5f, 0x92, 0xce, 0x34, 0x9a, 0x99,
- 0x13, 0x33, 0xc9, 0xdc, 0xb1, 0xb3, 0x6a, 0x28, 0x5f, 0xdc, 0xe5, 0x5b, 0x93, 0xf9, 0x83, 0xae,
- 0x96, 0x77, 0x16, 0x8e, 0xce, 0x75, 0xf2, 0x48, 0x8b, 0x8e, 0xeb, 0x3e, 0x94, 0x66, 0x05, 0x44,
- 0xda, 0xbb, 0xb4, 0x78, 0x4f, 0xfc, 0x99, 0xe8, 0x34, 0x78, 0xf9, 0x91, 0x9d, 0x04, 0x4c, 0xb9,
- 0x5f, 0xff, 0x6b, 0x2a, 0x30, 0x3a, 0x01, 0x88, 0xe0, 0x2a, 0xf7, 0xf4, 0x9a, 0x9b, 0xca, 0x53,
- 0x42, 0xe0, 0x33, 0x57, 0x8e, 0x2d, 0x4f, 0x6b, 0x89, 0x57, 0xdd, 0x0c, 0x8f, 0xc0, 0xde, 0x80,
- 0xc7, 0xa4, 0xec, 0x05, 0xf1, 0xeb, 0xd7, 0x0b, 0x5d, 0x05, 0xd3, 0x69, 0x88, 0x5f, 0x58, 0x6a,
- 0x8b, 0x68, 0x4e, 0xf3, 0x70, 0x62, 0xbc, 0xab, 0xe2, 0xf3, 0xc1, 0xc6, 0x81, 0x3d, 0x11, 0x97,
- 0x0e, 0x2c, 0x91, 0xa1, 0x0f, 0xa4, 0x24, 0xcb, 0x36, 0xa1, 0xcf, 0xa3, 0x86, 0xa2, 0x97, 0x7d,
- 0xb1, 0x56, 0xfe, 0x09, 0xcf, 0x4c, 0x20, 0xae, 0x30, 0x09, 0x95, 0xf5, 0xab, 0x8b, 0x39, 0xf2,
- 0x34, 0x12, 0x21, 0x5b, 0xb0, 0x8a, 0xb8, 0xce, 0xe4, 0x5b, 0x9b, 0x90, 0xac, 0x14, 0xbf, 0x18,
- 0x78, 0xde, 0x83, 0xad, 0x31, 0x03, 0xd3, 0x6e, 0x5b, 0xad, 0x89, 0x3f, 0xa5, 0x76, 0xf6, 0xe5,
- 0xfd, 0x9a, 0x5c, 0xff, 0x4e, 0xc5, 0x4b, 0x0e, 0x8f, 0xff, 0x87, 0x5a, 0xa2, 0xe9, 0x70, 0x0f,
- 0xe0, 0x85, 0x04, 0x82, 0xf0, 0xd2, 0x05, 0xed, 0xe6, 0x82, 0xad, 0xa2, 0xb7, 0xb2, 0x64, 0xdc,
- 0x65, 0xc1, 0xdb, 0xd0, 0x8f, 0x14, 0x9d, 0x8d, 0x32, 0xd0, 0xa3, 0xc7, 0xb0, 0x2d, 0xe2, 0x36,
- 0x29, 0x0d, 0x79, 0x26, 0x0e, 0x9d, 0xf6, 0x2d, 0x8d, 0x26, 0xb1, 0x68, 0xb9, 0x4f, 0xab, 0xcb,
- 0xac, 0x49, 0xa6, 0x74, 0x71, 0x5b, 0x6e, 0x4d, 0x59, 0x74, 0xbf, 0x0d, 0xbe, 0xd0, 0x2d, 0x21,
- 0xb2, 0x9f, 0xf6, 0xce, 0xec, 0x2b, 0x2a, 0xb7, 0x3f, 0xce, 0x0c, 0x72, 0x06, 0x2c, 0xf1, 0x89,
- 0x37, 0xdb, 0x29, 0x9c, 0x93, 0xed, 0xb2, 0xd7, 0xeb, 0x9c, 0x02, 0x17, 0x01, 0xb3, 0x77, 0x63,
- 0x7b, 0x17, 0x8b, 0x6a, 0x12, 0x64, 0xd9, 0x77, 0x54, 0x6a, 0x10, 0xb8, 0x08, 0xd1, 0x3e, 0x9e,
- 0xfe, 0x53, 0x54, 0x38, 0x6d, 0xa2, 0x41, 0x17, 0x80, 0x38, 0x1e, 0xdd, 0x0f, 0x4e, 0xb8, 0x74,
- 0xe3, 0x4c, 0x0c, 0x45, 0xd3, 0xb5, 0x0f, 0xf4, 0xe9, 0x45, 0x34, 0x25, 0x1a, 0x15, 0xac, 0xa7,
- 0x66, 0x08, 0xd3, 0x17, 0xac, 0x73, 0x97, 0x94, 0x3d, 0x17, 0x3a, 0x40, 0x1d, 0x8a, 0x2a, 0x4d,
- 0x2a, 0xc4, 0x71, 0xe1, 0x2d, 0xfa, 0xfc, 0x34, 0x82, 0xe1, 0x28, 0xef, 0x14, 0xe8, 0x63, 0xb0,
- 0xaf, 0x80, 0xae, 0xb3, 0x52, 0x3c, 0x64, 0x54, 0x56, 0xb3, 0x26, 0x8a, 0x13, 0x77, 0xe5, 0x5a,
- 0x10, 0xfa, 0xc1, 0x1b, 0x92, 0xd4, 0x60, 0x31, 0x50, 0x1b, 0x7c, 0xdc, 0x3e, 0x5e, 0x4b, 0xd5,
- 0x95, 0xbe, 0x1e, 0x49, 0xed, 0x12, 0xf8, 0x51, 0x84, 0x49, 0x72, 0xb9, 0x39, 0xc1, 0xcd, 0x3f,
- 0xd9, 0x72, 0xbc, 0xbf, 0x6c, 0x9b, 0x93, 0xf1, 0x3b, 0xbf, 0x60, 0x16, 0x30, 0xa3, 0x84, 0xc2,
- 0x5c, 0x36, 0x63, 0xed, 0x13, 0x5d, 0x0b, 0x91, 0xef, 0xed, 0x6e, 0x73, 0x37, 0x3c, 0x02, 0x28,
- 0x41, 0x29, 0x3b, 0x90, 0xad, 0x4a, 0x45, 0x72, 0x86, 0x90, 0x44, 0x8b, 0x22, 0x67, 0x16, 0xfb,
- 0xc4, 0x6d, 0xe4, 0xc2, 0xd2, 0x8c, 0xdd, 0x12, 0x52, 0xc2, 0x4a, 0xee, 0x25, 0xf8, 0x90, 0x11,
- 0x88, 0xa1, 0x46, 0x34, 0x53, 0x05, 0xb6, 0xb2, 0xed, 0x34, 0x58, 0x41, 0x2c, 0x9a, 0xd9, 0xec,
- 0x0d, 0xe5, 0x99, 0x66, 0x2c, 0xc3, 0x2e, 0xd2, 0x39, 0x66, 0x56, 0x24, 0x2b, 0x05, 0x5f, 0x06,
- 0x35, 0x55, 0x98, 0xa7, 0x10, 0x16, 0xbe, 0x78, 0xe1, 0xa7, 0xec, 0xed, 0x76, 0xc8, 0x46, 0x31,
- 0xb0, 0x11, 0x47, 0xf5, 0x6f, 0xd0, 0x26, 0x18, 0x35, 0xf5, 0xe2, 0x88, 0x71, 0x57, 0xc0, 0xdb,
- 0xfc, 0xdd, 0xe5, 0x03, 0xee, 0x59, 0x4d, 0xb8, 0x8a, 0x03, 0xf0, 0x27, 0x78, 0x35, 0x89, 0x26,
- 0x79, 0x99, 0x3a, 0x51, 0x91, 0x9f, 0xd5, 0xd8, 0x5e, 0x51, 0xfe, 0x42, 0x7f, 0xaa, 0x0f, 0xcc,
- 0x64, 0x86, 0x62, 0x2c, 0x2f, 0x88, 0x9b, 0x3b, 0x37, 0x2c, 0xd4, 0xba, 0x6a, 0xf1, 0x1b, 0x1f,
- 0xe1, 0xc2, 0xbd, 0x7e, 0x50, 0x4e, 0x03, 0x5b, 0xe3, 0x7e, 0xda, 0xdf, 0x6d, 0x6e, 0x9d, 0xf5,
- 0xad, 0x0e, 0x1f, 0x88, 0xd1, 0xc7, 0x68, 0xfb, 0x5c, 0x88, 0xc8, 0x70, 0x64, 0x0c, 0xd4, 0x08,
- 0x28, 0x4a, 0xc0, 0xda, 0xae, 0x01, 0xf0, 0x9b, 0x88, 0xda, 0xc6, 0x15, 0x63, 0x93, 0x52, 0xe2,
- 0x97, 0x30, 0xaf, 0x72, 0x6e, 0xe9, 0xf4, 0xfe, 0x8e, 0x72, 0x9c, 0x43, 0x4e, 0xba, 0xfc, 0x6d,
- 0x12, 0x74, 0x70, 0x20, 0x11, 0x2f, 0x6c, 0x9e, 0x5a, 0x20, 0x92, 0x26, 0x49, 0x25, 0x7a, 0x87,
- 0x5e, 0xb8, 0xd2, 0xd6, 0x90, 0xa6, 0x07, 0x3e, 0xe5, 0xd6, 0x80, 0x89, 0x40, 0x47, 0x33, 0x7a,
- 0xdb, 0xfc, 0x0d, 0x84, 0xef, 0x60, 0x9f, 0x5e, 0x31, 0x84, 0x8e, 0xec, 0x47, 0xd8, 0xb5, 0x90,
- 0xc6, 0xe3, 0x55, 0xf9, 0x51, 0x77, 0xd1, 0xbd, 0x58, 0xf9, 0xa4, 0x14, 0x52, 0x83, 0xa1, 0x43,
- 0x43, 0xa7, 0x8a, 0xab, 0x2e, 0xb1, 0x49, 0xdd, 0x8c, 0xab, 0xaa, 0x71, 0x55, 0x1c, 0x27, 0xa9,
- 0x0f, 0x6b, 0x28, 0x5d, 0xaf, 0x38, 0x22, 0x7d, 0x33, 0x5d, 0xb8, 0xde, 0x5c, 0x7e, 0x6e, 0x54,
- 0x8a, 0x2f, 0xf7, 0x0f, 0xd0, 0xfe, 0xba, 0x1d, 0xe7, 0x0f, 0xb6, 0xbb, 0x5b, 0xe1, 0xe8, 0xbe,
- 0x7f, 0xc8, 0x2a, 0x1c, 0xd7, 0x51, 0xc1, 0xea, 0x40, 0x1c, 0x0f, 0x8f, 0xe6, 0x27, 0x5c, 0x3a,
- 0xfa, 0x8c, 0xf5, 0x4e, 0xa8, 0x97, 0x59, 0x8a, 0x94, 0x4e, 0x01, 0xea, 0xe1, 0xb8, 0xda, 0xd0,
- 0xb6, 0x40, 0x57, 0xb8, 0x29, 0x1e, 0x32, 0x2a, 0x2b, 0xb8, 0x13, 0x45, 0xe8, 0xda, 0x93, 0x2d,
- 0x33, 0x04, 0x88, 0xea, 0x56, 0xd8, 0xaa, 0x4a, 0xff, 0xea, 0x1d, 0x20, 0xef, 0x45, 0x15, 0xc7,
- 0x2e, 0x1b, 0xd0, 0x97, 0xe8, 0xcf, 0xe4, 0xa9, 0x96, 0x97, 0x37, 0xd8, 0xfa, 0x1e, 0x01, 0x14,
- 0xab, 0x5f, 0x0f, 0xc5, 0x97, 0x09, 0x7c, 0xc9, 0x42, 0xc5, 0x39, 0xbd, 0xfd, 0x81, 0x87, 0xfe,
- 0xe7, 0x93, 0xad, 0x33, 0x16, 0x80, 0x17, 0x69, 0xfd, 0x33, 0x2b, 0x12, 0xf4, 0xe3, 0xce, 0x03,
- 0x62, 0xd7, 0x72, 0x61, 0x69, 0x46, 0x8f, 0x09, 0x29, 0x61, 0x25, 0x77, 0xf3, 0x7c, 0x48, 0xe9,
- 0xdd, 0xad, 0x1d, 0xc9, 0xa9, 0xae, 0x8b, 0x6c, 0x2f, 0xc9, 0x7f, 0x21, 0xde, 0x55, 0xe6, 0x66,
- 0x58, 0xe9, 0xc2, 0x9b, 0xd6, 0x68, 0x13, 0x0c, 0xfb, 0x9b, 0x71, 0x44, 0xd9, 0xca, 0x60, 0x8c,
- 0x14, 0x25, 0x60, 0x6d, 0x57, 0xe1, 0x78, 0xac, 0x44, 0x6d, 0x63, 0xeb, 0xd0, 0xa8, 0x29, 0x71,
- 0x91, 0x61, 0xbf, 0x3f, 0x28, 0x27, 0xe0, 0xcc, 0x90, 0x3f, 0x6d, 0x8e, 0xd7, 0x37, 0xaf, 0x9b,
- 0x8c, 0x7e, 0xe7, 0x42, 0x96, 0x30, 0xae, 0x2f, 0xf9, 0x42, 0x47, 0x76, 0xc2, 0x6c, 0xbb, 0x48,
- 0x09, 0x3a, 0x38, 0x10, 0xe9, 0xf6, 0x36, 0x4f, 0x2d, 0x10, 0x49, 0x13, 0xc5, 0xf3, 0x3d, 0xa2,
- 0x45, 0xf6, 0x9a, 0xe6, 0x68, 0x7f, 0x5d, 0xef, 0x92, 0xe6, 0x5b, 0xbc, 0xcc, 0x91, 0x74, 0x5f,
- 0xc0, 0xb2, 0x45, 0xb4, 0x17, 0xb9, 0xc5, 0x8f, 0x46, 0xb4, 0x55, 0xd9, 0xcb, 0x0e, 0xf2, 0xb5,
- 0xf8, 0x02, 0x44, 0x75, 0x2b, 0x6c, 0x55, 0x25, 0x9e, 0x75, 0xef, 0x10, 0x96, 0xc3, 0xeb, 0x82,
- 0x7d, 0x46, 0x9b, 0x27, 0x54, 0xaa, 0xcd, 0x45, 0x4a, 0x27, 0xe1, 0x75, 0x91, 0x5c, 0x6d, 0x68,
- 0x31, 0x8a, 0x39, 0xd1, 0xd5, 0x23, 0xa6, 0xe5, 0xf5, 0xd1, 0xf3, 0xda, 0x98, 0x3e, 0x24, 0x95,
- 0xb4, 0xce, 0xe6, 0x83, 0xaa, 0xe5, 0x3e, 0x85, 0x21, 0x83, 0xfd, 0xbf, 0x9f, 0xa1, 0xa2, 0x7f,
- 0xa9, 0xd1, 0xbe, 0xfe, 0x14, 0xf2, 0x70, 0x66, 0x48, 0xfe, 0xd7, 0x47, 0x8a, 0xfa, 0xb6, 0xac,
- 0x2c, 0x95, 0x61, 0xac, 0x6b, 0x34, 0xe8, 0x06, 0x9c, 0xac, 0xd9, 0x22, 0x8d, 0x65, 0x30, 0x46,
- 0x60, 0x59, 0xc3, 0x5a, 0xea, 0xbd, 0x83, 0xa6, 0x23, 0x5a, 0xcb, 0x8d, 0x84, 0x07, 0x79, 0xbb,
- 0xe5, 0x1d, 0x1c, 0x08, 0x95, 0x7b, 0x1b, 0xc6, 0xf7, 0x08, 0xc5, 0xe8, 0x83, 0x98, 0xff, 0x51,
- 0x5a, 0x67, 0x73, 0xa0, 0x55, 0x93, 0x1f, 0xa3, 0xf1, 0xa0, 0x9f, 0xbe, 0xae, 0xb1, 0x51, 0xde,
- 0xdf, 0x23, 0xac, 0xf2, 0x2a, 0x55, 0x87, 0xc3, 0x25, 0xf2, 0x91, 0xdb, 0xa9, 0x2e, 0xd7, 0x34,
- 0x93, 0xef, 0x0e, 0x04, 0xab, 0xdc, 0xec, 0x63, 0x9a, 0x04, 0x83, 0x74, 0xa0, 0x4c, 0x9e, 0xc9,
- 0x16, 0xab, 0xd1, 0x56, 0xd4, 0x1a, 0x74, 0x03, 0x4e, 0x56, 0x8d, 0x11, 0xa7, 0xd3, 0x18, 0x23,
- 0x0b, 0xb4, 0x89, 0x2b, 0x6a, 0x0d, 0x3a, 0xe0, 0x27, 0x2b, 0xa7, 0xe9, 0xb2, 0x88, 0x0c, 0xf0,
- 0x8e, 0xf0, 0x56, 0x79, 0x15, 0xcb, 0xa2, 0x80, 0xf3, 0x79, 0xa9, 0x8c, 0xb5, 0x17, 0x8a, 0x1a,
- 0xc2, 0x3c, 0xf4, 0x8f, 0x94, 0x42, 0xc9, 0x20, 0x4c, 0x8f, 0xbb, 0x23, 0xbc, 0x75, 0xc3, 0xe7,
- 0x47, 0x78, 0x2b, 0xdd, 0xeb, 0x84, 0x51, 0x40, 0x98, 0xdd, 0xb5, 0x46, 0xbb, 0xea, 0x45, 0x0d,
- 0xeb, 0x31, 0x8d, 0xa9, 0x9a, 0xdf, 0x3f, 0x0d, 0xc1, 0xa9, 0x0a, 0x4b, 0x05, 0x3a, 0x68, 0x2c,
- 0x6e, 0x75, 0x52, 0xfb, 0xe5, 0x19, 0xa7, 0x6d, 0x15, 0xfb, 0x04, 0x2e, 0x02, 0xa5, 0xee, 0xc6,
- 0x22, 0xb9, 0xf0, 0x0d, 0x64, 0x90, 0xcc, 0xcd, 0xaa, 0x0d, 0x16, 0x81, 0x0b, 0xc7, 0xa7, 0x3b,
- 0xa7, 0xfd, 0x2f, 0x5f, 0x1b, 0x56, 0x54, 0xad, 0x7e, 0x5f, 0x18, 0xe4, 0x0c, 0x58, 0x21, 0xd1,
- 0xba, 0xe2, 0x77, 0x22, 0xa5, 0x41, 0x1a, 0x4e, 0x17, 0x22, 0x32, 0x1c, 0x19, 0x03, 0x35, 0x02,
- 0x3f, 0xa6, 0xa8, 0x70, 0xda, 0x87, 0x82, 0x2e, 0xc3, 0x70, 0x3c, 0x79, 0x1e, 0x9c, 0xb3, 0xe8,
- 0x73, 0x6a, 0x0a, 0x86, 0x5b, 0x0e, 0xe9, 0x8e, 0x7c, 0x86, 0x2e, 0xd6, 0x17, 0xfe, 0xfa, 0x15,
- 0xf6, 0x2e, 0xd5, 0xd4, 0x24, 0xc8, 0x71, 0xee, 0xa8, 0xd4, 0x20, 0xb3, 0x10, 0x61, 0x7c, 0xff,
- 0x49, 0x54, 0xba, 0x7c, 0xe4, 0x20, 0x75, 0x8b, 0xae, 0x7c, 0x7a, 0xe5, 0x3d, 0x48, 0xd2, 0x70,
- 0xcc, 0x10, 0x65, 0x2e, 0x9b, 0xe6, 0xed, 0xeb, 0x7a, 0x2e, 0x74, 0x80, 0x3a, 0xd7, 0x54, 0x9a,
- 0x80, 0xdc, 0xc7, 0xd8, 0x1a, 0x6f, 0x86, 0x4b, 0xc5, 0xd8, 0x66, 0x2f, 0x33, 0xb5, 0x1d, 0x67,
- 0x05, 0x98, 0x18, 0x8a, 0x65, 0xa9, 0x1e, 0x2b, 0x11, 0x8a, 0x68, 0x4a, 0x34, 0x2a, 0x9b, 0x8d,
- 0x18, 0x87, 0x40, 0xf7, 0xdb, 0xbe, 0x50, 0xc8, 0x78, 0xf7, 0x42, 0xb2, 0x21, 0x71, 0x8f, 0x5e,
- 0x9d, 0xc3, 0x9f, 0xa5, 0xa4, 0x78, 0xc8, 0xa8, 0xac, 0xa5, 0x4c, 0xd7, 0x26, 0xee, 0x09, 0xb4,
- 0xd1, 0x0f, 0x3d, 0x53, 0x25, 0xf1, 0xa3, 0x08, 0x13, 0x53, 0x5e, 0x78, 0x2f, 0x8c, 0x40, 0x49,
- 0x54, 0x4b, 0xe2, 0x01, 0x5a, 0x37, 0x3b, 0x68, 0xc7, 0x01, 0x50, 0x1d, 0x28, 0x13, 0xc6, 0xa3,
- 0x6c, 0xfb, 0xe3, 0xc0, 0x66, 0xe2, 0xab, 0xc2, 0x1f, 0xc0, 0xea, 0xd4, 0x75, 0xde, 0xdf, 0x94,
- 0xe9, 0xbf, 0x3c, 0x92, 0x19, 0x24, 0x33, 0xa2, 0xcb, 0x92, 0xe4, 0xb1, 0x72, 0x41, 0x59, 0x7e,
- 0xa5, 0x73, 0x9e, 0x64, 0x98, 0xad, 0x58, 0x02, 0x74, 0x64, 0xf6, 0x1e, 0x7b, 0x23, 0x10, 0x83,
- 0x20, 0x37, 0x41, 0x36, 0xe7, 0x6b, 0xc0, 0x62, 0xa0, 0x36, 0xf8, 0x7b, 0x7c, 0xbc, 0x96, 0x69,
- 0x3d, 0x28, 0x19, 0x4b, 0x59, 0x7c, 0x8e, 0x81, 0xc9, 0x4b, 0xd2, 0x83, 0x69, 0xe7, 0x82, 0xba,
- 0xb8, 0x6c, 0xc6, 0x19, 0x26, 0xba, 0x16, 0xe1, 0x1d, 0x19, 0xdc, 0xe6, 0x6e, 0x78, 0x04, 0x50,
- 0xf4, 0xa0, 0x64, 0xef, 0xa7, 0x33, 0x7d, 0x41, 0xa2, 0xef, 0xce, 0x49, 0x67, 0x1a, 0x4d, 0xad,
- 0x71, 0xe4, 0xbb, 0xbd, 0xd8, 0xf5, 0xe5, 0x21, 0x76, 0xbd, 0xc0, 0x2c, 0x60, 0x85, 0xcb, 0x47,
- 0xce, 0x9e, 0xd4, 0x15, 0x18, 0x1d, 0xe1, 0x44, 0x70, 0x15, 0x9a, 0x7a, 0x4d, 0xac, 0x65, 0xc8,
- 0x4b, 0xda, 0x0b, 0x47, 0x67, 0xdb, 0x79, 0x24, 0xa4, 0x47, 0x94, 0x1f, 0x4a, 0x33, 0xe3, 0x22,
- 0x07, 0x16, 0xa9, 0xb1, 0xe6, 0x52, 0x12, 0x84, 0x1b, 0xb1, 0x86, 0xb0, 0x43, 0x51, 0xaa, 0xdf,
- 0x82, 0x52, 0x76, 0xe3, 0x99, 0x94, 0x8a, 0xe4, 0xcf, 0xe3, 0x88, 0xd5, 0x44, 0xce, 0x2c, 0x35,
- 0x9f, 0x4d, 0x2e, 0x9e, 0x27, 0x83, 0xc4, 0x07, 0xa6, 0x9e, 0xa2, 0x2d, 0x51, 0x95, 0x38, 0xe6,
- 0x1a, 0x09, 0xf1, 0xcc, 0x58, 0x45, 0x5c, 0x67, 0x72, 0xcc, 0xac, 0x48, 0x56, 0x0a, 0xbe, 0x0c,
- 0x56, 0xc5, 0x53, 0x3a, 0xd9, 0xcc, 0x37, 0xc7, 0xcd, 0x3a, 0xbe, 0xe7, 0x5f, 0x68, 0xf7, 0xf1,
- 0xd3, 0x81, 0x8c, 0x68, 0xa6, 0x0a, 0xaf, 0xa7, 0x19, 0x68, 0xb0, 0x82, 0x58, 0xf7, 0x71, 0x1b,
- 0x26, 0x66, 0x51, 0x7b, 0xa1, 0xa5, 0xd4, 0x50, 0xbe, 0x7b, 0x09, 0xb6, 0xe5, 0x31, 0xc5, 0x9f,
- 0xa3, 0x22, 0x8e, 0x29, 0xde, 0x63, 0x4c, 0x30, 0x6a, 0x29, 0x07, 0xd3, 0xe2, 0xae, 0x43, 0x75,
- 0xef, 0xee, 0x2c, 0xdf, 0x5f, 0xea, 0x27, 0x90, 0xd5, 0xdf, 0x15, 0x7c, 0xeb, 0xcc, 0x0a, 0x88,
- 0x6a, 0xaa, 0xf3, 0x8d, 0x20, 0x2c, 0xbf, 0xf0, 0x01, 0x8d, 0x1b, 0x19, 0xec, 0x53, 0x8c, 0x62,
- 0x77, 0xb5, 0xab, 0xf0, 0x9e, 0x3b, 0xf1, 0x13, 0x68, 0xf0, 0x31, 0xe1, 0xf9, 0x08, 0x98, 0xb1,
- 0xf2, 0xf1, 0x74, 0xa2, 0xe1, 0xfd, 0x69, 0x73, 0xbc, 0xa2, 0x3f, 0x84, 0xfe, 0x97, 0x1e, 0x5b,
- 0xbe, 0x3d, 0xd6, 0x54, 0x60, 0x74, 0x02, 0xd3, 0x03, 0x54, 0x2d, 0x2b, 0xf7, 0xf5, 0x57, 0xa6,
- 0x3b, 0x79, 0x09, 0x06, 0x1f, 0xb2, 0x9a, 0xb3, 0xd7, 0x06, 0x23, 0x4e, 0xf0, 0x6a, 0xd1, 0x4c,
- 0x84, 0x03, 0x66, 0xae, 0xdf, 0x5a, 0x9e, 0xd6, 0xd1, 0xae, 0x79, 0x18, 0xdd, 0x43, 0x7f, 0xc3,
- 0x01, 0x47, 0xb9, 0xfc, 0xa0, 0x9c, 0x06, 0xb6, 0x05, 0xfc, 0x77, 0x7d, 0xda, 0xdc, 0xf9, 0x29,
- 0x4d, 0x8b, 0x1b, 0x0a, 0x21, 0x15, 0x6d, 0x16, 0xba, 0x0a, 0x65, 0xd2, 0xd3, 0xbe, 0xb0, 0xd4,
- 0xc8, 0xcf, 0xc4, 0x58, 0x5e, 0xd3, 0xf5, 0x76, 0x6e, 0x58, 0x6b, 0xb7, 0xd4, 0x21, 0x36, 0x3e,
- 0xd5, 0xd0, 0x9c, 0x25, 0xe0, 0xc4, 0xbb, 0x95, 0x07, 0x25, 0x41, 0x4f, 0xc1, 0x7a, 0x22, 0xed,
- 0x50, 0x94, 0x43, 0x77, 0x9f, 0x02, 0x23, 0xf5, 0xd3, 0x77, 0x4f, 0x2a, 0xc6, 0xe5, 0xa4, 0x07,
- 0x1c, 0x58, 0xe1, 0x81, 0x1e, 0x8b, 0x48, 0x55, 0x6c, 0x81, 0x5d, 0x85, 0xcf, 0x87, 0xed, 0xfa,
- 0x99, 0x1c, 0x3e, 0xd3, 0x61, 0x4d, 0xd0, 0x35, 0xb8, 0xd3, 0x53, 0xe0, 0xc8, 0x18, 0x6b, 0x10,
- 0xa1, 0xac, 0x3f, 0x12, 0x5d, 0x98, 0x40, 0x9f, 0x60, 0x12, 0xe9, 0x29, 0x95, 0xd5, 0x72, 0x27,
- 0x24, 0xe8, 0xe0, 0x40, 0x22, 0x5e, 0xd8, 0xff, 0xb4, 0x40, 0xe7, 0x4c, 0x92, 0x4a, 0xf4, 0xcd,
- 0x68, 0x24, 0x42, 0xb6, 0xa3, 0xd7, 0xb3, 0x5f, 0x0b, 0xb6, 0xf5, 0xe3, 0x9b, 0x28, 0xbd, 0x30,
- 0xed, 0x60, 0x9d, 0xe4, 0xdc, 0x11, 0x2b, 0x3f, 0xdf, 0xe4, 0xfb, 0x86, 0x9c, 0xb7, 0x3b, 0xda,
- 0xf0, 0x7f, 0xc5, 0x99, 0x62, 0x06, 0x65, 0xdc, 0xb6, 0x99, 0xd1, 0x7e, 0x89, 0xec, 0x2f, 0x09,
- 0x75, 0x3b, 0x1a, 0xcb, 0x1d, 0xc0, 0xfd, 0xbc, 0x62, 0xcb, 0xdf, 0x1b, 0x8e, 0x73, 0xa9, 0xe3,
- 0x39, 0xf7, 0xb8, 0x3d, 0x9c, 0x49, 0x96, 0x1c, 0xdd, 0x3d, 0xcd, 0xb4, 0x87, 0x11, 0xe0, 0x1e,
- 0xbc, 0xb3, 0x67, 0x6f, 0xe3, 0x8f, 0x0e, 0x7c, 0x09, 0x6f, 0xc3, 0xd1, 0x80, 0x8e, 0x66, 0xf4,
- 0x03, 0xc9, 0x08, 0xc7, 0x23, 0x67, 0x0a, 0x19, 0x0f, 0xc7, 0x99, 0x87, 0xad, 0xa7, 0xc8, 0x7b,
- 0x86, 0x8d, 0xd7, 0x95, 0x5c, 0xa1, 0x92, 0x79, 0xdb, 0x95, 0x97, 0xe2, 0xaa, 0x38, 0x4e, 0x91,
- 0xca, 0x41, 0x75, 0x63, 0xdd, 0x28, 0xf9, 0xd9, 0x64, 0x63, 0x85, 0x4d, 0xa3, 0x5a, 0x07, 0x6c,
- 0x4f, 0x05, 0xaa, 0x31, 0xa2, 0xee, 0x61, 0xb9, 0xb0, 0x31, 0x8b, 0x28, 0xa4, 0xc5, 0x81, 0x86,
- 0x52, 0x1a, 0xf2, 0x4c, 0x1c, 0xf9, 0x2f, 0x5a, 0xd9, 0x4c, 0xa1, 0xd0, 0xb1, 0x9e, 0x95, 0x55,
- 0xd7, 0x5e, 0x2d, 0x1e, 0x63, 0x3f, 0xb7, 0x3a, 0x0d, 0x1e, 0xaf, 0xb5, 0xb6, 0x01, 0x13, 0xbf,
- 0x9b, 0x92, 0x8f, 0xe8, 0xe2, 0xb6, 0xdc, 0x9a, 0xb2, 0xe8, 0xbd, 0x1a, 0xbf, 0x63, 0x5a, 0x42,
- 0x1e, 0xd6, 0x50, 0xba, 0x9d, 0x70, 0x44, 0xfa, 0x66, 0xba, 0xb3, 0x7f, 0xb8, 0xfc, 0xdc, 0xa8,
- },
- { /* 4 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0xd1, 0xd3, 0x91, 0x91, 0xfe, 0xf3, 0x01, 0xb1, 0x78, 0x58, 0x01, 0x49, 0x6b, 0x2d, 0xa9,
- 0x20, 0x61, 0x65, 0xe1, 0xe1, 0x3f, 0x25, 0x02, 0xa1, 0xf0, 0xb0, 0x02, 0x92, 0xd6, 0x5a, 0x91,
- 0x30, 0xb0, 0xb6, 0x70, 0x70, 0xc1, 0xd6, 0x03, 0x10, 0x88, 0xe8, 0x03, 0xdb, 0xbd, 0x77, 0x38,
- 0x40, 0xc2, 0xca, 0x01, 0x01, 0x7e, 0x4a, 0x04, 0x81, 0x23, 0xa3, 0x04, 0xe7, 0x6f, 0xb4, 0xe1,
- 0x50, 0x13, 0x19, 0x90, 0x90, 0x80, 0xb9, 0x05, 0x30, 0x5b, 0xfb, 0x05, 0xae, 0x04, 0x99, 0x48,
- 0x60, 0xa3, 0xaf, 0xe0, 0xe0, 0x41, 0x6f, 0x06, 0x20, 0xd3, 0x13, 0x06, 0x75, 0xb9, 0xee, 0x70,
- 0x70, 0x72, 0x7c, 0x71, 0x71, 0xbf, 0x9c, 0x07, 0x91, 0xab, 0x4b, 0x07, 0x3c, 0xd2, 0xc3, 0xd9,
- 0x80, 0x47, 0x57, 0x02, 0x02, 0xfc, 0x94, 0x08, 0xc1, 0x46, 0x85, 0x08, 0x0d, 0xde, 0xab, 0x01,
- 0x90, 0x96, 0x84, 0x93, 0x93, 0x02, 0x67, 0x09, 0x70, 0x3e, 0xdd, 0x09, 0x44, 0xb5, 0x86, 0xa8,
- 0xa0, 0x26, 0x32, 0xe3, 0xe3, 0xc3, 0xb1, 0x0a, 0x60, 0xb6, 0x35, 0x0a, 0x9f, 0x08, 0xf1, 0x90,
- 0xb0, 0xf7, 0xe1, 0x72, 0x72, 0x3d, 0x42, 0x0b, 0xd1, 0xce, 0x6d, 0x0b, 0xd6, 0x63, 0xdc, 0x39,
- 0xc0, 0x85, 0x9d, 0x03, 0x03, 0x82, 0xde, 0x0c, 0x40, 0x65, 0x26, 0x0c, 0xea, 0xb1, 0x1f, 0xe0,
- 0xd0, 0x54, 0x4e, 0x92, 0x92, 0x7c, 0x2d, 0x0d, 0xf1, 0x1d, 0x7e, 0x0d, 0xa3, 0xda, 0x32, 0x49,
- 0xe0, 0xe4, 0xf8, 0xe2, 0xe2, 0xbd, 0xfb, 0x0e, 0xe1, 0x95, 0x96, 0x0e, 0x78, 0x67, 0x45, 0x71,
- 0xf0, 0x35, 0x2b, 0x73, 0x73, 0x43, 0x08, 0x0f, 0x50, 0xed, 0xce, 0x0f, 0x31, 0x0c, 0x68, 0xd8,
- 0xc3, 0x8e, 0xae, 0x04, 0x04, 0x3b, 0xeb, 0x10, 0x41, 0x8c, 0xc9, 0x10, 0x1a, 0x7f, 0x95, 0x02,
- 0xd3, 0x5f, 0x7d, 0x95, 0x95, 0xc5, 0x18, 0x11, 0xf0, 0xf4, 0x91, 0x11, 0x53, 0x14, 0xb8, 0xab,
- 0xe3, 0xef, 0xcb, 0xe5, 0xe5, 0x04, 0xce, 0x12, 0xe0, 0x7c, 0x79, 0x12, 0x88, 0xa9, 0xcf, 0x93,
- 0xf3, 0x3e, 0x18, 0x74, 0x74, 0xfa, 0x3d, 0x13, 0x51, 0x04, 0x21, 0x13, 0xc1, 0xc2, 0xe2, 0x3a,
- 0x83, 0x4c, 0x64, 0x05, 0x05, 0x45, 0xa1, 0x14, 0xc0, 0xaf, 0x6a, 0x14, 0xfd, 0x10, 0x21, 0xe3,
- 0x93, 0x9d, 0xb7, 0x94, 0x94, 0xbb, 0x52, 0x15, 0x71, 0xd7, 0x32, 0x15, 0xb4, 0x7b, 0x0c, 0x4a,
- 0xa3, 0x2d, 0x01, 0xe4, 0xe4, 0x7a, 0x84, 0x16, 0x61, 0x5f, 0xda, 0x16, 0x6f, 0xc6, 0x7b, 0x72,
- 0xb3, 0xfc, 0xd2, 0x75, 0x75, 0x84, 0x77, 0x17, 0xd0, 0x27, 0x82, 0x17, 0x26, 0xad, 0x56, 0xdb,
- 0x43, 0xc9, 0xf9, 0x06, 0x06, 0xc7, 0x7f, 0x18, 0x80, 0xca, 0x4c, 0x18, 0x17, 0xa1, 0x3e, 0x03,
- 0x53, 0x18, 0x2a, 0x97, 0x97, 0x39, 0x8c, 0x19, 0x31, 0xb2, 0x14, 0x19, 0x5e, 0xca, 0x13, 0xaa,
- 0x63, 0xa8, 0x9c, 0xe7, 0xe7, 0xf8, 0x5a, 0x1a, 0x21, 0x3a, 0xfc, 0x1a, 0x85, 0x77, 0x64, 0x92,
- 0x73, 0x79, 0x4f, 0x76, 0x76, 0x06, 0xa9, 0x1b, 0x90, 0x42, 0xa4, 0x1b, 0xcc, 0x1c, 0x49, 0x3b,
- 0x03, 0x0b, 0x33, 0x07, 0x07, 0xb9, 0x35, 0x1c, 0x01, 0xe9, 0xef, 0x1c, 0xf0, 0xce, 0x8a, 0xe2,
- 0x13, 0xda, 0xe0, 0x96, 0x96, 0x47, 0xc6, 0x1d, 0xb0, 0x91, 0xb7, 0x1d, 0xb9, 0xa5, 0xa7, 0x4b,
- 0x23, 0x6a, 0x56, 0xe6, 0xe6, 0x86, 0x10, 0x1e, 0xa0, 0x19, 0x5f, 0x1e, 0x62, 0x18, 0xd0, 0x73,
- 0x33, 0xbb, 0x85, 0x77, 0x77, 0x78, 0xe3, 0x1f, 0x11, 0x61, 0x07, 0x1f, 0x2b, 0x73, 0xfd, 0xda,
- 0x45, 0xdf, 0x9f, 0x08, 0x08, 0x76, 0x15, 0x20, 0x82, 0xdb, 0x51, 0x20, 0x34, 0xfe, 0xe9, 0x04,
- 0x55, 0x0e, 0x4c, 0x99, 0x99, 0x88, 0xe6, 0x21, 0x33, 0xa3, 0x09, 0x21, 0x7d, 0x95, 0xc4, 0xad,
- 0x65, 0xbe, 0xfa, 0xe9, 0xe9, 0x49, 0x30, 0x22, 0x23, 0x2b, 0xe1, 0x22, 0xa6, 0x28, 0xb3, 0x95,
- 0x75, 0x6f, 0x29, 0x78, 0x78, 0xb7, 0xc3, 0x23, 0x92, 0x53, 0xb9, 0x23, 0xef, 0x43, 0x9e, 0x3c,
- 0x05, 0x1d, 0x55, 0x09, 0x09, 0x08, 0x5f, 0x24, 0x03, 0xf8, 0xf2, 0x24, 0xd3, 0x91, 0x5d, 0xe5,
- 0x15, 0xcc, 0x86, 0x98, 0x98, 0xf6, 0xac, 0x25, 0xb2, 0x80, 0xaa, 0x25, 0x9a, 0xfa, 0x70, 0x4c,
- 0x25, 0x7c, 0x30, 0xe8, 0xe8, 0x37, 0x7a, 0x26, 0xa2, 0x08, 0x42, 0x26, 0x41, 0x47, 0x07, 0x74,
- 0x35, 0xad, 0xe3, 0x79, 0x79, 0xc9, 0x89, 0x27, 0x13, 0x70, 0x1a, 0x27, 0x08, 0x2c, 0x2a, 0xdd,
- 0xc5, 0x98, 0xc8, 0x0a, 0x0a, 0x8a, 0x81, 0x28, 0x43, 0x9d, 0xd4, 0x28, 0x39, 0x20, 0x42, 0x05,
- 0xd5, 0x49, 0x1b, 0x9b, 0x9b, 0x74, 0x72, 0x29, 0xf2, 0xe5, 0x8c, 0x29, 0x70, 0x4b, 0x6f, 0xac,
- 0xe5, 0xf9, 0xad, 0xeb, 0xeb, 0xb5, 0xa4, 0x2a, 0xe2, 0x6d, 0x64, 0x2a, 0xab, 0xf6, 0x18, 0x94,
- 0xf5, 0x28, 0x7e, 0x7a, 0x7a, 0x4b, 0x57, 0x2b, 0x53, 0x15, 0x3c, 0x2b, 0xe2, 0x9d, 0x35, 0x3d,
- 0x85, 0x5a, 0x02, 0x0b, 0x0b, 0xf4, 0xcb, 0x2c, 0xc2, 0xbe, 0x77, 0x2c, 0xde, 0x4f, 0xf6, 0xe4,
- 0x95, 0x8b, 0xd1, 0x9a, 0x9a, 0x0a, 0x38, 0x2d, 0x73, 0xc6, 0x2f, 0x2d, 0x97, 0x24, 0xdb, 0x4d,
- 0xa5, 0x3b, 0x67, 0xea, 0xea, 0xcb, 0xee, 0x2e, 0x63, 0x4e, 0xc7, 0x2e, 0x4c, 0x99, 0xac, 0x75,
- 0xb5, 0xea, 0xb4, 0x7b, 0x7b, 0x35, 0x1d, 0x2f, 0xd2, 0x36, 0x9f, 0x2f, 0x05, 0xf2, 0x81, 0xdc,
- 0x86, 0x51, 0x31, 0x0c, 0x0c, 0x4d, 0xfe, 0x30, 0xc3, 0x57, 0x98, 0x30, 0x2e, 0x81, 0x7c, 0x06,
- 0x96, 0x80, 0xe2, 0x9d, 0x9d, 0xb3, 0x0d, 0x31, 0x72, 0x2f, 0xc0, 0x31, 0x67, 0xea, 0x51, 0xaf,
- 0xa6, 0x30, 0x54, 0xed, 0xed, 0x72, 0xdb, 0x32, 0x62, 0xa7, 0x28, 0x32, 0xbc, 0x57, 0x26, 0x97,
- 0xb6, 0xe1, 0x87, 0x7c, 0x7c, 0x8c, 0x28, 0x33, 0xd3, 0xdf, 0x70, 0x33, 0xf5, 0x3c, 0x0b, 0x3e,
- 0xc6, 0x93, 0xfb, 0x0d, 0x0d, 0x33, 0xb4, 0x34, 0x42, 0x74, 0x3b, 0x34, 0xc9, 0xee, 0xc8, 0xe7,
- 0xd6, 0x42, 0x28, 0x9c, 0x9c, 0xcd, 0x47, 0x35, 0xf3, 0x0c, 0x63, 0x35, 0x80, 0x85, 0xe5, 0x4e,
- 0xe6, 0xf2, 0x9e, 0xec, 0xec, 0x0c, 0x91, 0x36, 0xe3, 0x84, 0x8b, 0x36, 0x5b, 0x38, 0x92, 0x76,
- 0xf6, 0x23, 0x4d, 0x7d, 0x7d, 0xf2, 0x62, 0x37, 0x52, 0xfc, 0xd3, 0x37, 0x12, 0x53, 0xbf, 0xdf,
- 0x06, 0x16, 0x66, 0x0e, 0x0e, 0xb1, 0x6a, 0x38, 0x02, 0x11, 0x1d, 0x38, 0x23, 0x5f, 0xd7, 0x07,
- 0x16, 0xc7, 0xb5, 0x9f, 0x9f, 0x4f, 0x99, 0x39, 0xb3, 0x69, 0x45, 0x39, 0x6a, 0x34, 0xfa, 0xae,
- 0x26, 0x77, 0x03, 0xef, 0xef, 0x8e, 0x4f, 0x3a, 0xa3, 0xe1, 0xad, 0x3a, 0xb1, 0x89, 0x8d, 0x96,
- 0x36, 0xa6, 0xd0, 0x7e, 0x7e, 0x70, 0xbc, 0x3b, 0x12, 0x99, 0xf5, 0x3b, 0xf8, 0xe2, 0xa0, 0x3f,
- 0x46, 0xd4, 0xac, 0x0f, 0x0f, 0xcf, 0x20, 0x3c, 0x83, 0x32, 0xbe, 0x3c, 0xc4, 0x30, 0x63, 0xe6,
- 0x56, 0x05, 0x7f, 0x9e, 0x9e, 0x31, 0xd3, 0x3d, 0x32, 0x4a, 0xe6, 0x3d, 0x8d, 0x5b, 0x4e, 0x4f,
- 0x66, 0xb5, 0xc9, 0xee, 0xee, 0xf0, 0x05, 0x3e, 0x22, 0xc2, 0x0e, 0x3e, 0x56, 0xe6, 0x39, 0x77,
- 0x76, 0x64, 0x1a, 0x7f, 0x7f, 0x0e, 0xf6, 0x3f, 0x93, 0xba, 0x56, 0x3f, 0x1f, 0x8d, 0x14, 0xde,
- 0x8a, 0x7d, 0xfd, 0x10, 0x10, 0xec, 0x2a, 0x40, 0xc7, 0x75, 0xa2, 0x40, 0x68, 0x3f, 0x11, 0x08,
- 0x9a, 0xac, 0x2e, 0x81, 0x81, 0x12, 0xd9, 0x41, 0x76, 0x0d, 0xfa, 0x41, 0x21, 0x54, 0x3c, 0xa1,
- 0xaa, 0x1c, 0x98, 0xf1, 0xf1, 0xd3, 0x0f, 0x42, 0x66, 0x85, 0x12, 0x42, 0xfa, 0xe9, 0x4b, 0x99,
- 0xba, 0xcd, 0x4b, 0x60, 0x60, 0x2d, 0xfc, 0x43, 0xd7, 0xfd, 0x4a, 0x43, 0xb3, 0x82, 0x66, 0x30,
- 0xca, 0xbf, 0x37, 0x11, 0x11, 0x92, 0x60, 0x44, 0x46, 0x56, 0x01, 0x44, 0x8f, 0x50, 0xa5, 0xe9,
- 0xda, 0x6e, 0xe4, 0x80, 0x80, 0x6c, 0x93, 0x45, 0xf7, 0x2e, 0x59, 0x45, 0xc6, 0x3b, 0x88, 0x40,
- 0xea, 0xde, 0x52, 0xf0, 0xf0, 0xad, 0x45, 0x46, 0xe7, 0xa6, 0xb1, 0x46, 0x1d, 0x86, 0xff, 0x78,
- 0xfa, 0x0f, 0x81, 0x61, 0x61, 0x53, 0xb6, 0x47, 0x56, 0xde, 0xe9, 0x47, 0x54, 0xed, 0xd2, 0xd1,
- 0x0a, 0x3a, 0xaa, 0x12, 0x12, 0x10, 0xbe, 0x48, 0x06, 0x33, 0x27, 0x48, 0x65, 0xe1, 0xba, 0x09,
- 0x1a, 0xeb, 0x79, 0x83, 0x83, 0xee, 0x4d, 0x49, 0xb7, 0x4b, 0x7f, 0x49, 0x2c, 0x8a, 0x97, 0xa0,
- 0x2a, 0x5b, 0xcf, 0xf3, 0xf3, 0x2f, 0x9b, 0x4a, 0xa7, 0xc3, 0x97, 0x4a, 0xf7, 0x37, 0xe0, 0x98,
- 0x3a, 0x8a, 0x1c, 0x62, 0x62, 0xd1, 0x68, 0x4b, 0x16, 0xbb, 0xcf, 0x4b, 0xbe, 0x5c, 0xcd, 0x31,
- 0x4a, 0xf8, 0x60, 0x13, 0x13, 0x6e, 0xf4, 0x4c, 0x87, 0x10, 0x84, 0x4c, 0x82, 0x8e, 0x0e, 0xe8,
- 0x5a, 0x29, 0xb3, 0x82, 0x82, 0x90, 0x07, 0x4d, 0x36, 0x68, 0xdc, 0x4d, 0xcb, 0xe5, 0x23, 0x41,
- 0x6a, 0x99, 0x05, 0xf2, 0xf2, 0x51, 0xd1, 0x4e, 0x26, 0xe0, 0x34, 0x4e, 0x10, 0x58, 0x54, 0x79,
- 0x7a, 0x48, 0xd6, 0x63, 0x63, 0xaf, 0x22, 0x4f, 0x97, 0x98, 0x6c, 0x4f, 0x59, 0x33, 0x79, 0xd0,
- 0x49, 0xf3, 0x53, 0x14, 0x14, 0xd7, 0xc1, 0x50, 0x86, 0xf9, 0x6b, 0x50, 0x72, 0x40, 0x84, 0x0a,
- 0x59, 0x22, 0x80, 0x85, 0x85, 0x29, 0x32, 0x51, 0x37, 0x81, 0x33, 0x51, 0x3b, 0x2b, 0xa9, 0xa3,
- 0x69, 0x92, 0x36, 0xf5, 0xf5, 0xe8, 0xe4, 0x52, 0x27, 0x09, 0xdb, 0x52, 0xe0, 0x96, 0xde, 0x9b,
- 0x79, 0x43, 0xe5, 0x64, 0x64, 0x16, 0x17, 0x53, 0x96, 0x71, 0x83, 0x53, 0xa9, 0xfd, 0xf3, 0x32,
- 0x09, 0x31, 0x99, 0x15, 0x15, 0xa9, 0x8b, 0x54, 0x07, 0xda, 0xc8, 0x54, 0x95, 0x2f, 0x30, 0xeb,
- 0x19, 0xe0, 0x4a, 0x84, 0x84, 0x57, 0x78, 0x55, 0xb6, 0xa2, 0x90, 0x55, 0xdc, 0x44, 0x1d, 0x42,
- 0x29, 0x50, 0xfc, 0xf4, 0xf4, 0x96, 0xae, 0x56, 0xa6, 0x2a, 0x78, 0x56, 0x07, 0xf9, 0x6a, 0x7a,
- 0x39, 0x81, 0x2f, 0x65, 0x65, 0x68, 0x5d, 0x57, 0x17, 0x52, 0x20, 0x57, 0x4e, 0x92, 0x47, 0xd3,
- 0xc9, 0xb4, 0x04, 0x16, 0x16, 0x2b, 0x55, 0x58, 0x47, 0xbf, 0xee, 0x58, 0x7f, 0x9e, 0x2f, 0x0b,
- 0xd9, 0x65, 0xd7, 0x87, 0x87, 0xd5, 0xa6, 0x59, 0xf6, 0xc7, 0xb6, 0x59, 0x36, 0xf5, 0x02, 0xa2,
- 0xe9, 0xd5, 0x61, 0xf7, 0xf7, 0x14, 0x70, 0x5a, 0xe6, 0x4f, 0x5e, 0x5a, 0xed, 0x48, 0x75, 0x9a,
- 0xf9, 0x04, 0xb2, 0x66, 0x66, 0xea, 0x83, 0x5b, 0x57, 0x37, 0x06, 0x5b, 0xa4, 0x23, 0x58, 0x33,
- 0x89, 0x76, 0xce, 0x17, 0x17, 0x55, 0x1f, 0x5c, 0xc6, 0x9c, 0x4d, 0x5c, 0x98, 0xf1, 0x9b, 0xea,
- 0x99, 0xa7, 0x1d, 0x86, 0x86, 0xab, 0xec, 0x5d, 0x77, 0xe4, 0x15, 0x5d, 0xd1, 0x9a, 0xb6, 0x43,
- 0xa9, 0x17, 0xab, 0xf6, 0xf6, 0x6a, 0x3a, 0x5e, 0x67, 0x6c, 0xfd, 0x5e, 0x0a, 0x27, 0xc1, 0x7b,
- 0xb9, 0xc6, 0x78, 0x67, 0x67, 0x94, 0xc9, 0x5f, 0xd6, 0x14, 0xa5, 0x5f, 0x43, 0x4c, 0xec, 0xd2,
- 0xcf, 0xa2, 0x62, 0x18, 0x18, 0x9a, 0x3f, 0x60, 0x45, 0xae, 0xf3, 0x60, 0x5c, 0xc1, 0xf8, 0x0c,
- 0xdf, 0x73, 0xb1, 0x89, 0x89, 0x64, 0xcc, 0x61, 0xf4, 0xd6, 0xab, 0x61, 0x15, 0xaa, 0xd5, 0xa5,
- 0xef, 0xc3, 0x07, 0xf9, 0xf9, 0xa5, 0x1a, 0x62, 0xe4, 0x5e, 0x43, 0x62, 0xce, 0x17, 0xa2, 0x9d,
- 0xff, 0x12, 0xd4, 0x68, 0x68, 0x5b, 0xe9, 0x63, 0x55, 0x26, 0x1b, 0x63, 0x87, 0x7c, 0x8f, 0x34,
- 0x8f, 0x60, 0xa8, 0x19, 0x19, 0xe4, 0x75, 0x64, 0xc4, 0x8d, 0x50, 0x64, 0xbb, 0xae, 0x4c, 0xed,
- 0x9f, 0xb1, 0x7b, 0x88, 0x88, 0x1a, 0x86, 0x65, 0x75, 0xf5, 0x08, 0x65, 0xf2, 0xc5, 0x61, 0x44,
- 0xaf, 0x01, 0xcd, 0xf8, 0xf8, 0xdb, 0x50, 0x66, 0x65, 0x7d, 0xe0, 0x66, 0x29, 0x78, 0x16, 0x7c,
- 0xbf, 0xd0, 0x1e, 0x69, 0x69, 0x25, 0xa3, 0x67, 0xd4, 0x05, 0xb8, 0x67, 0x60, 0x13, 0x3b, 0xd5,
- 0x4f, 0xe5, 0x35, 0x1a, 0x1a, 0x66, 0xab, 0x68, 0x84, 0xe8, 0x76, 0x68, 0x51, 0x1f, 0x53, 0x0d,
- 0x5f, 0x34, 0xe6, 0x8b, 0x8b, 0x98, 0x58, 0x69, 0x35, 0x90, 0x2e, 0x69, 0x18, 0x74, 0x7e, 0xa4,
- 0x6f, 0x84, 0x50, 0xfb, 0xfb, 0x59, 0x8e, 0x6a, 0x25, 0x18, 0xc6, 0x6a, 0xc3, 0xc9, 0x09, 0x9c,
- 0x7f, 0x55, 0x83, 0x6a, 0x6a, 0xa7, 0x7d, 0x6b, 0x94, 0x60, 0x9e, 0x6b, 0x8a, 0xa2, 0x24, 0x35,
- 0x0f, 0x27, 0xff, 0x1b, 0x1b, 0x18, 0xe1, 0x6c, 0x05, 0xcb, 0xd5, 0x6c, 0xb6, 0x70, 0xe7, 0xec,
- 0x1f, 0xf6, 0x2c, 0x8a, 0x8a, 0xe6, 0x12, 0x6d, 0xb4, 0xb3, 0x8d, 0x6d, 0xff, 0x1b, 0xca, 0x45,
- 0x2f, 0x46, 0x9a, 0xfa, 0xfa, 0x27, 0xc4, 0x6e, 0xa4, 0x3b, 0x65, 0x6e, 0x24, 0xa6, 0xbd, 0x7d,
- 0x3f, 0x97, 0x49, 0x6b, 0x6b, 0xd9, 0x37, 0x6f, 0x15, 0x43, 0x3d, 0x6f, 0x6d, 0xcd, 0x90, 0xd4,
- 0x0c, 0x2c, 0xcc, 0x1c, 0x1c, 0xa1, 0xd4, 0x70, 0x04, 0x22, 0x3a, 0x70, 0x46, 0xbe, 0x6d, 0x0e,
- 0x1c, 0xfd, 0x1f, 0x8d, 0x8d, 0x5f, 0x27, 0x71, 0xb5, 0x5a, 0x62, 0x71, 0x0f, 0xd5, 0x40, 0xa7,
- 0x2c, 0x4d, 0xa9, 0xfd, 0xfd, 0x9e, 0xf1, 0x72, 0xa5, 0xd2, 0x8a, 0x72, 0xd4, 0x68, 0x37, 0x9f,
- 0x3c, 0x9c, 0x7a, 0x6c, 0x6c, 0x60, 0x02, 0x73, 0x14, 0xaa, 0xd2, 0x73, 0x9d, 0x03, 0x1a, 0x36,
- 0x4c, 0xee, 0x06, 0x1d, 0x1d, 0xdf, 0x9e, 0x74, 0x85, 0x01, 0x99, 0x74, 0xa1, 0xd1, 0xd9, 0xef,
- 0x5c, 0x3f, 0xd5, 0x8c, 0x8c, 0x21, 0x6d, 0x75, 0x34, 0x79, 0xc1, 0x75, 0xe8, 0xba, 0xf4, 0x46,
- 0x6c, 0x8f, 0x63, 0xfc, 0xfc, 0xe0, 0xbb, 0x76, 0x24, 0xf1, 0x29, 0x76, 0x33, 0x07, 0x83, 0x7e,
- 0x7c, 0x5e, 0xb0, 0x6d, 0x6d, 0x1e, 0x48, 0x77, 0x95, 0x89, 0x71, 0x77, 0x7a, 0x6c, 0xae, 0xd7,
- 0x8c, 0x6b, 0x9b, 0x1e, 0x1e, 0x5d, 0x40, 0x78, 0xc5, 0x64, 0xbf, 0x78, 0x4b, 0x60, 0xc6, 0x0f,
- 0x9c, 0xba, 0x48, 0x8f, 0x8f, 0xa3, 0xb3, 0x79, 0x74, 0x1c, 0xe7, 0x79, 0x02, 0x0b, 0xeb, 0xa6,
- 0xac, 0x0a, 0xfe, 0xff, 0xff, 0x62, 0x65, 0x7a, 0x64, 0x94, 0x0f, 0x7a, 0xd9, 0xb6, 0x9c, 0x9e,
- 0xbc, 0xdb, 0x2d, 0x6e, 0x6e, 0x9c, 0x96, 0x7b, 0xd5, 0xec, 0x57, 0x7b, 0x90, 0xdd, 0xb1, 0x37,
- 0xcc, 0xa9, 0x51, 0x1f, 0x1f, 0x23, 0x0a, 0x7c, 0x44, 0x47, 0x1c, 0x7c, 0xac, 0x0f, 0x72, 0xee,
- 0xdc, 0x78, 0x82, 0x8e, 0x8e, 0xdd, 0xf9, 0x7d, 0xf5, 0x3f, 0x44, 0x7d, 0xe5, 0x64, 0x5f, 0x47,
- 0xec, 0xc8, 0x34, 0xfe, 0xfe, 0x1c, 0x2f, 0x7e, 0xe5, 0xb7, 0xac, 0x7e, 0x3e, 0xd9, 0x28, 0x7f,
- 0xfc, 0x19, 0xe7, 0x6f, 0x6f, 0xe2, 0xdc, 0x7f, 0x54, 0xcf, 0xf4, 0x7f, 0x77, 0xb2, 0x05, 0xd6,
- 0xd7, 0xfa, 0x39, 0x20, 0x20, 0x1b, 0x54, 0x80, 0x4d, 0xea, 0x87, 0x80, 0xd0, 0x7e, 0x22, 0x10,
- 0xc7, 0x2b, 0xea, 0xb1, 0xb1, 0xe5, 0xa7, 0x81, 0xfc, 0x92, 0xdf, 0x81, 0x99, 0x15, 0x0f, 0xb9,
- 0xf7, 0x9b, 0x5c, 0xc1, 0xc1, 0x24, 0x71, 0x82, 0xec, 0x1a, 0x37, 0x82, 0x42, 0xa8, 0x78, 0x81,
- 0xe7, 0x4a, 0x8f, 0x50, 0x50, 0xda, 0x82, 0x83, 0x5d, 0x62, 0x6f, 0x83, 0x0b, 0xc3, 0x55, 0x28,
- 0x97, 0x38, 0xf3, 0x21, 0x21, 0x65, 0x1e, 0x84, 0xcc, 0xc9, 0x24, 0x84, 0x37, 0x11, 0x96, 0xf1,
- 0x87, 0xe9, 0x20, 0xb0, 0xb0, 0x9b, 0xed, 0x85, 0x7d, 0xb1, 0x7c, 0x85, 0x7e, 0x7a, 0xbb, 0x58,
- 0xb7, 0x59, 0x96, 0xc0, 0xc0, 0x5a, 0x3b, 0x86, 0x6d, 0x39, 0x94, 0x86, 0xa5, 0xc7, 0xcc, 0x60,
- 0xa7, 0x88, 0x45, 0x51, 0x51, 0xa4, 0xc8, 0x87, 0xdc, 0x41, 0xcc, 0x87, 0xec, 0xac, 0xe1, 0xc9,
- 0x57, 0xbd, 0x6e, 0x22, 0x22, 0xe7, 0xc0, 0x88, 0x8c, 0xac, 0x02, 0x88, 0xdd, 0xa0, 0x89, 0x11,
- 0x47, 0x6c, 0xbd, 0xb3, 0xb3, 0x19, 0x33, 0x89, 0x3d, 0xd4, 0x5a, 0x89, 0x94, 0xcb, 0xa4, 0xb8,
- 0x77, 0xdc, 0x0b, 0xc3, 0xc3, 0xd8, 0xe5, 0x8a, 0x2d, 0x5c, 0xb2, 0x8a, 0x4f, 0x76, 0xd3, 0x80,
- 0x67, 0x0d, 0xd8, 0x52, 0x52, 0x26, 0x16, 0x8b, 0x9c, 0x24, 0xea, 0x8b, 0x06, 0x1d, 0xfe, 0x29,
- 0x17, 0x7f, 0xa4, 0x23, 0x23, 0x99, 0x8a, 0x8c, 0x0d, 0x8f, 0xa1, 0x8c, 0x3a, 0xcf, 0x3d, 0xf0,
- 0x07, 0xae, 0x77, 0xb2, 0xb2, 0x67, 0x79, 0x8d, 0xbc, 0xf7, 0xf9, 0x8d, 0x73, 0xa4, 0x10, 0x59,
- 0x37, 0x1e, 0xc1, 0xc2, 0xc2, 0xa6, 0xaf, 0x8e, 0xac, 0x7f, 0x11, 0x8e, 0xa8, 0x19, 0x67, 0x61,
- 0x27, 0xcf, 0x12, 0x53, 0x53, 0x58, 0x5c, 0x8f, 0x1d, 0x07, 0x49, 0x8f, 0xe1, 0x72, 0x4a, 0xc8,
- 0x14, 0x74, 0x97, 0x24, 0x24, 0x20, 0xbf, 0x90, 0x0c, 0x66, 0x4e, 0x90, 0xca, 0x01, 0xb7, 0x12,
- 0x04, 0xa5, 0x44, 0xb5, 0xb5, 0xde, 0x4c, 0x91, 0xbd, 0x1e, 0x16, 0x91, 0x83, 0x6a, 0x9a, 0xbb,
- 0x34, 0x15, 0xf2, 0xc5, 0xc5, 0x1f, 0x9a, 0x92, 0xad, 0x96, 0xfe, 0x92, 0x58, 0xd7, 0xed, 0x83,
- 0x24, 0xc4, 0x21, 0x54, 0x54, 0xe1, 0x69, 0x93, 0x1c, 0xee, 0xa6, 0x93, 0x11, 0xbc, 0xc0, 0x2a,
- 0x54, 0xb6, 0x5d, 0x25, 0x25, 0x5e, 0xf5, 0x94, 0x8d, 0x45, 0xed, 0x94, 0x2d, 0x6e, 0x03, 0xf3,
- 0x44, 0x67, 0x8e, 0xb4, 0xb4, 0xa0, 0x06, 0x95, 0x3c, 0x3d, 0xb5, 0x95, 0x64, 0x05, 0x2e, 0x5a,
- 0x74, 0xd7, 0x38, 0xc4, 0xc4, 0x61, 0xd0, 0x96, 0x2c, 0xb5, 0x5d, 0x96, 0xbf, 0xb8, 0x59, 0x62,
- 0x64, 0x06, 0xeb, 0x55, 0x55, 0x9f, 0x23, 0x97, 0x9d, 0xcd, 0x05, 0x97, 0xf6, 0xd3, 0x74, 0xcb,
- 0x94, 0x33, 0xc0, 0x26, 0x26, 0xdc, 0x2b, 0x98, 0xcd, 0x20, 0xcb, 0x98, 0xc7, 0xdf, 0x1c, 0x13,
- 0x84, 0xe2, 0x13, 0xb7, 0xb7, 0x22, 0xd8, 0x99, 0x7c, 0x58, 0x93, 0x99, 0x8e, 0xb4, 0x31, 0xba,
- 0xb4, 0x52, 0xa5, 0xc7, 0xc7, 0xe3, 0x0e, 0x9a, 0x6c, 0xd0, 0x7b, 0x9a, 0x55, 0x09, 0x46, 0x82,
- 0xa4, 0x83, 0x76, 0x56, 0x56, 0x1d, 0xfd, 0x9b, 0xdd, 0xa8, 0x23, 0x9b, 0x1c, 0x62, 0x6b, 0x2b,
- 0xd4, 0xf1, 0x0a, 0x27, 0x27, 0xa2, 0x61, 0x9c, 0x4c, 0x03, 0x68, 0x9c, 0x20, 0xb0, 0xa8, 0xf2,
- 0xc4, 0x20, 0xd9, 0xb6, 0xb6, 0x5c, 0x92, 0x9d, 0xfd, 0x7b, 0x30, 0x9d, 0x69, 0xdb, 0x85, 0x5b,
- 0xf4, 0x90, 0x6f, 0xc6, 0xc6, 0x9d, 0x44, 0x9e, 0xed, 0xf3, 0xd8, 0x9e, 0xb2, 0x66, 0xf2, 0x63,
- 0xe4, 0x41, 0xbc, 0x57, 0x57, 0x63, 0xb7, 0x9f, 0x5c, 0x8b, 0x80, 0x9f, 0xfb, 0x0d, 0xdf, 0xca,
- 0x92, 0x25, 0xa6, 0x28, 0x28, 0x6d, 0x41, 0xa0, 0xcf, 0x31, 0xd6, 0xa0, 0xe4, 0x80, 0xcb, 0x14,
- 0x82, 0xf4, 0x75, 0xb9, 0xb9, 0x93, 0xb2, 0xa1, 0x7e, 0x49, 0x8e, 0xa1, 0xad, 0xeb, 0xe6, 0xbd,
- 0xb2, 0x44, 0xc3, 0xc9, 0xc9, 0x52, 0x64, 0xa2, 0x6e, 0xc1, 0x66, 0xa2, 0x76, 0x56, 0x91, 0x85,
- 0xa2, 0x95, 0x10, 0x58, 0x58, 0xac, 0x97, 0xa3, 0xdf, 0xb9, 0x3e, 0xa3, 0x3f, 0x3d, 0xbc, 0x2c,
- 0xd2, 0xe7, 0x6c, 0x29, 0x29, 0x13, 0x0b, 0xa4, 0x4e, 0x12, 0x75, 0xa4, 0x03, 0xef, 0x7f, 0xf5,
- 0xc2, 0x36, 0xbf, 0xb8, 0xb8, 0xed, 0xf8, 0xa5, 0xff, 0x6a, 0x2d, 0xa5, 0x4a, 0x84, 0x52, 0x5c,
- 0xf2, 0x86, 0x09, 0xc8, 0xc8, 0x2c, 0x2e, 0xa6, 0xef, 0xe2, 0xc5, 0xa6, 0x91, 0x39, 0x25, 0x64,
- 0xe2, 0x57, 0xda, 0x59, 0x59, 0xd2, 0xdd, 0xa7, 0x5e, 0x9a, 0x9d, 0xa7, 0xd8, 0x52, 0x08, 0xcd,
- 0x12, 0x62, 0xf1, 0x2a, 0x2a, 0x91, 0xd5, 0xa8, 0x0e, 0x77, 0x53, 0xa8, 0xe9, 0x5e, 0x60, 0x15,
- 0x02, 0xb3, 0x22, 0xbb, 0xbb, 0x6f, 0x26, 0xa9, 0xbf, 0x0f, 0x0b, 0xa9, 0xa0, 0x35, 0x4d, 0xbc,
- 0x32, 0x03, 0x94, 0xcb, 0xcb, 0xae, 0xf0, 0xaa, 0xaf, 0x87, 0xe3, 0xaa, 0x7b, 0x88, 0x3a, 0x84,
- 0x22, 0xd2, 0x47, 0x5a, 0x5a, 0x50, 0x03, 0xab, 0x1e, 0xff, 0xbb, 0xab, 0x32, 0xe3, 0x17, 0x2d,
- 0x52, 0xa0, 0x3b, 0x2b, 0x2b, 0xef, 0x9f, 0xac, 0x8f, 0x54, 0xf0, 0xac, 0x0e, 0x31, 0xd4, 0xf4,
- 0x42, 0x71, 0xe8, 0xba, 0xba, 0x11, 0x6c, 0xad, 0x3e, 0x2c, 0xa8, 0xad, 0x47, 0x5a, 0xf9, 0x5d,
- 0x72, 0xc1, 0x5e, 0xca, 0xca, 0xd0, 0xba, 0xae, 0x2e, 0xa4, 0x40, 0xae, 0x9c, 0xe7, 0x8e, 0x65,
- 0x62, 0x10, 0x8d, 0x5b, 0x5b, 0x2e, 0x49, 0xaf, 0x9f, 0xdc, 0x18, 0xaf, 0xd5, 0x8c, 0xa3, 0xcc,
- 0x51, 0xab, 0x08, 0x2c, 0x2c, 0x56, 0xaa, 0xb0, 0x8e, 0xbd, 0x1f, 0xb0, 0xfe, 0xff, 0x5e, 0x16,
- 0x41, 0x7a, 0xdb, 0xbd, 0xbd, 0xa8, 0x59, 0xb1, 0x3f, 0xc5, 0x47, 0xb1, 0xb7, 0x94, 0x73, 0xbf,
- 0x71, 0xca, 0x6d, 0xcd, 0xcd, 0x69, 0x8f, 0xb2, 0x2f, 0x4d, 0xaf, 0xb2, 0x6c, 0x29, 0x04, 0x87,
- 0x61, 0x1b, 0xbe, 0x5c, 0x5c, 0x97, 0x7c, 0xb3, 0x9e, 0x35, 0xf7, 0xb3, 0x25, 0x42, 0x29, 0x2e,
- 0x11, 0x69, 0xc2, 0x2d, 0x2d, 0x28, 0xe0, 0xb4, 0x0f, 0x9e, 0xbc, 0xb4, 0x19, 0x90, 0xea, 0xf7,
- 0x01, 0xb8, 0x11, 0xbc, 0xbc, 0xd6, 0x13, 0xb5, 0xbe, 0xe6, 0xe4, 0xb5, 0x50, 0xfb, 0xc7, 0x5e,
- 0x31, 0x08, 0xa7, 0xcc, 0xcc, 0x17, 0xc5, 0xb6, 0xae, 0x6e, 0x0c, 0xb6, 0x8b, 0x46, 0xb0, 0x66,
- 0x21, 0xd9, 0x74, 0x5d, 0x5d, 0xe9, 0x36, 0xb7, 0x1f, 0x16, 0x54, 0xb7, 0xc2, 0x2d, 0x9d, 0xcf,
- 0xd1, 0xec, 0x5f, 0x2e, 0x2e, 0xaa, 0x3e, 0xb8, 0x4f, 0xfb, 0x9a, 0xb8, 0xf3, 0x21, 0xf5, 0x17,
- 0xc1, 0x3d, 0x8c, 0xbf, 0xbf, 0x54, 0xcd, 0xb9, 0xfe, 0x83, 0xc2, 0xb9, 0xba, 0x4a, 0xd8, 0xbe,
- 0xf1, 0x8d, 0x3a, 0xcf, 0xcf, 0x95, 0x1b, 0xba, 0xee, 0x0b, 0x2a, 0xba, 0x61, 0xf7, 0xaf, 0x86,
- 0xe1, 0x5c, 0xe9, 0x5e, 0x5e, 0x6b, 0xe8, 0xbb, 0x5f, 0x73, 0x72, 0xbb, 0x28, 0x9c, 0x82, 0x2f,
- 0x91, 0x2e, 0x95, 0x2f, 0x2f, 0xd4, 0x74, 0xbc, 0xce, 0xd8, 0x39, 0xbc, 0x14, 0x4e, 0x41, 0xf6,
- 0x81, 0xff, 0x46, 0xbe, 0xbe, 0x2a, 0x87, 0xbd, 0x7f, 0xa0, 0x61, 0xbd, 0x5d, 0x25, 0x6c, 0x5f,
- 0xb1, 0x4f, 0xf0, 0xce, 0xce, 0xeb, 0x51, 0xbe, 0x6f, 0x28, 0x89, 0xbe, 0x86, 0x98, 0x1b, 0x67,
- 0xa1, 0x9e, 0x23, 0x5f, 0x5f, 0x15, 0xa2, 0xbf, 0xde, 0x50, 0xd1, 0xbf, 0xcf, 0xf3, 0x36, 0xce,
- 0x5d, 0x87, 0xc4, 0x30, 0x30, 0xf7, 0x7e, 0xc0, 0x8a, 0x9f, 0x25, 0xc0, 0xb8, 0x41, 0x33, 0x18,
- 0x4d, 0x56, 0x17, 0xa1, 0xa1, 0x09, 0x8d, 0xc1, 0x3b, 0xe7, 0x7d, 0xc1, 0xf1, 0x2a, 0x1e, 0xb1,
- 0x7d, 0xe6, 0xa1, 0xd1, 0xd1, 0xc8, 0x5b, 0xc2, 0x2b, 0x6f, 0x95, 0xc2, 0x2a, 0x97, 0x69, 0x89,
- 0x6d, 0x37, 0x72, 0x40, 0x40, 0x36, 0xa8, 0xc3, 0x9a, 0x17, 0xcd, 0xc3, 0x63, 0xfc, 0x44, 0x20,
- 0x1d, 0x45, 0x0e, 0x31, 0x31, 0x89, 0x34, 0xc4, 0x0b, 0xbc, 0x86, 0xc4, 0x5f, 0x2e, 0x87, 0xf9,
- 0x0d, 0x94, 0xdd, 0xa0, 0xa0, 0x77, 0xc7, 0xc5, 0xba, 0xc4, 0xde, 0xc5, 0x16, 0x45, 0xaa, 0x50,
- 0x3d, 0x24, 0x6b, 0xd0, 0xd0, 0xb6, 0x11, 0xc6, 0xaa, 0x4c, 0x36, 0xc6, 0xcd, 0xf8, 0xdd, 0x68,
- 0x2d, 0xf5, 0xb8, 0x41, 0x41, 0x48, 0xe2, 0xc7, 0x1b, 0x34, 0x6e, 0xc7, 0x84, 0x93, 0xf0, 0xc1,
- 0xdd, 0xc0, 0x93, 0x32, 0x32, 0x0b, 0xea, 0xc8, 0x4b, 0xd9, 0xa0, 0xc8, 0xb5, 0x9f, 0x98, 0x19,
- 0xcd, 0x11, 0x40, 0xa3, 0xa3, 0xf5, 0x19, 0xc9, 0xfa, 0xa1, 0xf8, 0xc9, 0xfc, 0xf4, 0xb5, 0xb0,
- 0xfd, 0xa1, 0xf6, 0xd3, 0xd3, 0x34, 0xcf, 0xca, 0xea, 0x29, 0x10, 0xca, 0x27, 0x49, 0xc2, 0x88,
- 0xed, 0x70, 0x25, 0x42, 0x42, 0xca, 0x3c, 0xcb, 0x5b, 0x51, 0x48, 0xcb, 0x6e, 0x22, 0xef, 0x21,
- 0x9d, 0x02, 0x59, 0x33, 0x33, 0x75, 0xa0, 0xcc, 0xca, 0xfa, 0x03, 0xcc, 0x52, 0xf0, 0x2c, 0xf8,
- 0x8d, 0xd3, 0x8a, 0xa2, 0xa2, 0x8b, 0x53, 0xcd, 0x7b, 0x82, 0x5b, 0xcd, 0x1b, 0x9b, 0x01, 0x51,
- 0xbd, 0x63, 0x3c, 0xd2, 0xd2, 0x4a, 0x85, 0xce, 0x6b, 0x0a, 0xb3, 0xce, 0xc0, 0x26, 0x76, 0x69,
- 0xad, 0xb2, 0xef, 0x43, 0x43, 0xb4, 0x76, 0xcf, 0xda, 0x72, 0xeb, 0xcf, 0x89, 0x4d, 0x5b, 0xc0,
- 0x9e, 0x09, 0x6a, 0x34, 0x34, 0xcc, 0x95, 0xd0, 0xcb, 0x13, 0xec, 0xd0, 0xa2, 0x3e, 0xa6, 0x1a,
- 0x8e, 0xd8, 0xb9, 0xa5, 0xa5, 0x32, 0x66, 0xd1, 0x7a, 0x6b, 0xb4, 0xd1, 0xeb, 0x55, 0x8b, 0xb3,
- 0xbe, 0x68, 0x0f, 0xd5, 0xd5, 0xf3, 0xb0, 0xd2, 0x6a, 0xe3, 0x5c, 0xd2, 0x30, 0xe8, 0xfc, 0x8b,
- 0xae, 0xb9, 0xdc, 0x44, 0x44, 0x0d, 0x43, 0xd3, 0xdb, 0x9b, 0x04, 0xd3, 0x79, 0x83, 0xd1, 0x22,
- 0xde, 0xcb, 0xa0, 0x35, 0x35, 0xb2, 0xdf, 0xd4, 0x4a, 0x30, 0x4f, 0xd4, 0x45, 0x51, 0x12, 0xfb,
- 0xce, 0x1a, 0x73, 0xa4, 0xa4, 0x4c, 0x2c, 0xd5, 0xfb, 0x48, 0x17, 0xd5, 0x0c, 0x3a, 0x3f, 0x52,
- 0xfe, 0xaa, 0xc5, 0xd4, 0xd4, 0x8d, 0xfa, 0xd6, 0xeb, 0xc0, 0xff, 0xd6, 0xd7, 0x87, 0x48, 0x6a,
- 0xee, 0x7b, 0x16, 0x45, 0x45, 0x73, 0x09, 0xd7, 0x5a, 0xb8, 0xa7, 0xd7, 0x9e, 0xec, 0x65, 0xc3,
- 0x1e, 0x4e, 0x3d, 0x36, 0x36, 0x30, 0x01, 0xd8, 0x0a, 0x55, 0x69, 0xd8, 0xaf, 0xe0, 0x0d, 0x1b,
- 0x0e, 0x9f, 0xee, 0xa7, 0xa7, 0xce, 0xf2, 0xd9, 0xbb, 0x2d, 0x31, 0xd9, 0xe6, 0x8b, 0x20, 0xb2,
- 0x3e, 0x2f, 0x58, 0xd7, 0xd7, 0x0f, 0x24, 0xda, 0xab, 0xa5, 0xd9, 0xda, 0x3d, 0x36, 0x57, 0x8a,
- 0x2e, 0xfe, 0x8b, 0x46, 0x46, 0xf1, 0xd7, 0xdb, 0x1a, 0xdd, 0x81, 0xdb, 0x74, 0x5d, 0x7a, 0x23,
- 0x5e, 0x8c, 0xf7, 0x37, 0x37, 0x4e, 0x4b, 0xdc, 0x8b, 0x76, 0xca, 0xdc, 0x48, 0x8f, 0xb9, 0xfa,
- 0x4e, 0x5d, 0x24, 0xa6, 0xa6, 0xb0, 0xb8, 0xdd, 0x3a, 0x0e, 0x92, 0xdd, 0x01, 0xe4, 0x94, 0x53,
- 0x7e, 0xed, 0x92, 0xd6, 0xd6, 0x71, 0x6e, 0xde, 0x2a, 0x86, 0x7a, 0xde, 0xda, 0x59, 0xe3, 0x6b,
- 0x6e, 0x3c, 0x41, 0x47, 0x47, 0x8f, 0x9d, 0xdf, 0x9b, 0xfe, 0x22, 0xdf, 0x93, 0x32, 0xce, 0xc2,
- 0x18, 0x58, 0x5b, 0x38, 0x38, 0x81, 0x6b, 0xe0, 0x08, 0x44, 0x74, 0xe0, 0x8c, 0xbf, 0xda, 0x1c,
- 0x08, 0x89, 0x88, 0xa9, 0xa9, 0x7f, 0x98, 0xe1, 0xb9, 0x3c, 0x2c, 0xe1, 0xc5, 0xd4, 0xf7, 0xb5,
- 0x38, 0x39, 0x3e, 0xd9, 0xd9, 0xbe, 0x4e, 0xe2, 0xa9, 0xb4, 0xc4, 0xe2, 0x1e, 0x69, 0x80, 0x8d,
- 0x28, 0xe8, 0xed, 0x48, 0x48, 0x40, 0xbd, 0xe3, 0x18, 0xcc, 0x9c, 0xe3, 0x57, 0x02, 0xad, 0x24,
- 0x58, 0x9a, 0x91, 0x39, 0x39, 0xff, 0x21, 0xe4, 0x89, 0x67, 0xd7, 0xe4, 0x6b, 0xd0, 0x6e, 0xfd,
- 0x48, 0x4b, 0x42, 0xa8, 0xa8, 0x01, 0xd2, 0xe5, 0x38, 0x1f, 0x8f, 0xe5, 0x22, 0xbb, 0x43, 0x54,
- 0x78, 0xfb, 0xf4, 0xd8, 0xd8, 0xc0, 0x04, 0xe6, 0x28, 0x97, 0x67, 0xe6, 0xf9, 0x06, 0x34, 0x6c,
- 0x68, 0x2a, 0x27, 0x49, 0x49, 0x3e, 0xf7, 0xe7, 0x99, 0xef, 0x3f, 0xe7, 0xb0, 0x6d, 0x19, 0xc5,
- 0x98, 0x1f, 0x0c, 0x3a, 0x3a, 0x7d, 0xff, 0xe8, 0xc9, 0x02, 0xf1, 0xe8, 0x81, 0x61, 0x71, 0x1d,
- 0x88, 0xce, 0xdf, 0xab, 0xab, 0x83, 0x0c, 0xe9, 0x78, 0x7a, 0xa9, 0xe9, 0xc8, 0x0a, 0x5c, 0xb4,
- 0xb8, 0x7e, 0x69, 0xdb, 0xdb, 0x42, 0xda, 0xea, 0x68, 0xf2, 0x41, 0xea, 0x13, 0xb7, 0x2b, 0x8c,
- 0xa8, 0xaf, 0xba, 0x4a, 0x4a, 0xbc, 0x29, 0xeb, 0xd9, 0x8a, 0x19, 0xeb, 0x5a, 0xdc, 0x06, 0x25,
- 0xd8, 0xdd, 0xc6, 0x3b, 0x3b, 0x03, 0xb5, 0xec, 0x48, 0x21, 0x52, 0xec, 0x66, 0x0e, 0xc5, 0xfc,
- 0xc8, 0x0c, 0x15, 0xaa, 0xaa, 0xfd, 0x46, 0xed, 0xf9, 0x59, 0x0a, 0xed, 0x2f, 0x65, 0xe8, 0x55,
- 0xf8, 0xbc, 0xa3, 0xda, 0xda, 0x3c, 0x90, 0xee, 0xe9, 0xd1, 0xe2, 0xee, 0xf4, 0xd8, 0x9f, 0x6d,
- 0xe8, 0x6d, 0x70, 0x4b, 0x4b, 0xc2, 0x63, 0xef, 0x58, 0xa9, 0xba, 0xef, 0xbd, 0xb3, 0xb2, 0xc4,
- 0xdb, 0xd6, 0xf5, 0x3c, 0x3c, 0xba, 0x80, 0xf0, 0x49, 0xc8, 0xbd, 0xf0, 0x96, 0xc0, 0x4f, 0x1e,
- 0xcb, 0x07, 0x26, 0xad, 0xad, 0x44, 0x73, 0xf1, 0xf8, 0xb0, 0xe5, 0xf1, 0xdf, 0xab, 0x62, 0xb7,
- 0xfb, 0xb7, 0x90, 0xdd, 0xdd, 0x85, 0xa5, 0xf2, 0xe8, 0x38, 0x0d, 0xf2, 0x04, 0x16, 0x15, 0x8f,
- 0xeb, 0x66, 0x43, 0x4c, 0x4c, 0x7b, 0x56, 0xf3, 0x59, 0x40, 0x55, 0xf3, 0x4d, 0x7d, 0x38, 0x26,
- 0x9b, 0x14, 0x3f, 0x3d, 0x3d, 0xc4, 0xca, 0xf4, 0xc8, 0xeb, 0x1e, 0xf4, 0x71, 0xaf, 0xfb, 0xff,
- 0x8b, 0xc5, 0xec, 0xac, 0xac, 0x3a, 0x39, 0xf5, 0x79, 0x93, 0x46, 0xf5, 0x38, 0xc4, 0xd6, 0x56,
- 0xbb, 0x75, 0x5a, 0xdc, 0xdc, 0xfb, 0xef, 0xf6, 0x69, 0x1b, 0xae, 0xf6, 0xe3, 0x79, 0xa1, 0x6e,
- 0xab, 0xa4, 0x89, 0x4d, 0x4d, 0x05, 0x1c, 0xf7, 0xd8, 0x63, 0xf6, 0xf7, 0xaa, 0x12, 0x8c, 0xc7,
- 0x5b, 0x91, 0xa2, 0x3e, 0x3e, 0x46, 0x14, 0xf8, 0x88, 0x8e, 0x38, 0xf8, 0x9b, 0x1e, 0xe4, 0x1f,
- 0x4b, 0x40, 0x71, 0xaf, 0xaf, 0xb8, 0xe7, 0xf9, 0x39, 0xf6, 0x60, 0xf9, 0xd2, 0x75, 0xc9, 0xb6,
- 0x7b, 0xf0, 0xc7, 0xdf, 0xdf, 0x79, 0x31, 0xfa, 0x29, 0x7e, 0x88, 0xfa, 0x09, 0xc8, 0xbe, 0x8e,
- 0x6b, 0x21, 0x14, 0x4e, 0x4e, 0x87, 0xc2, 0xfb, 0x98, 0x06, 0xd0, 0xfb, 0x40, 0xa3, 0x93, 0x27,
- 0x1b, 0x53, 0x68, 0x3f, 0x3f, 0x38, 0x5e, 0xfc, 0x09, 0xad, 0x9b, 0xfc, 0x7c, 0x71, 0x50, 0xfe,
- 0x0b, 0x82, 0xbb, 0xae, 0xae, 0xc6, 0xad, 0xfd, 0xb8, 0xd5, 0xc3, 0xfd, 0x35, 0x1a, 0x7d, 0x57,
- 0x3b, 0x32, 0x0d, 0xde, 0xde, 0x07, 0x7b, 0xfe, 0xa8, 0x5d, 0x2b, 0xfe, 0xee, 0xa7, 0x0a, 0x6f,
- 0x2b, 0xe3, 0xde, 0x4f, 0x4f, 0xf9, 0x88, 0xff, 0x19, 0x25, 0x73, 0xff, 0xa7, 0xcc, 0x27, 0xc6,
- },
- { /* 5 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc2, 0x8d, 0x31, 0x64, 0xec, 0xeb, 0x0f, 0x2a, 0x37, 0x99, 0x90, 0xc4, 0xf6, 0x30, 0xb8, 0xf6,
- 0x47, 0xd9, 0x62, 0xc8, 0x1b, 0x15, 0x1e, 0x54, 0x6e, 0xf1, 0xe3, 0x4b, 0x2f, 0x60, 0xb3, 0x2f,
- 0x85, 0x54, 0x53, 0xac, 0xf7, 0xfe, 0x11, 0x7e, 0x59, 0x68, 0x73, 0x8f, 0xd9, 0x50, 0x0b, 0xd9,
- 0x8e, 0x71, 0xc4, 0x53, 0x36, 0x2a, 0x3c, 0xa8, 0xdc, 0x21, 0x05, 0x96, 0x5e, 0xc0, 0xa5, 0x5e,
- 0x4c, 0xfc, 0xf5, 0x37, 0xda, 0xc1, 0x33, 0x82, 0xeb, 0xb8, 0x95, 0x52, 0xa8, 0xf0, 0x1d, 0xa8,
- 0xc9, 0xa8, 0xa6, 0x9b, 0x2d, 0x3f, 0x22, 0xfc, 0xb2, 0xd0, 0xe6, 0xdd, 0x71, 0xa0, 0x16, 0x71,
- 0x0b, 0x25, 0x97, 0xff, 0xc1, 0xd4, 0x2d, 0xd6, 0x85, 0x49, 0x76, 0x19, 0x87, 0x90, 0xae, 0x87,
- 0xdf, 0xe2, 0x4b, 0xa6, 0x6c, 0x54, 0x78, 0x93, 0x7b, 0x42, 0x0a, 0xef, 0xbc, 0x43, 0x89, 0xbc,
- 0x1d, 0x6f, 0x7a, 0xc2, 0x80, 0xbf, 0x77, 0xb9, 0x4c, 0xdb, 0x9a, 0x2b, 0x4a, 0x73, 0x31, 0x4a,
- 0x98, 0x3b, 0x29, 0x6e, 0x77, 0x41, 0x66, 0xc7, 0x15, 0xb3, 0xe9, 0xa4, 0x93, 0x23, 0x3a, 0x93,
- 0x5a, 0xb6, 0x18, 0x0a, 0x9b, 0xaa, 0x69, 0xed, 0x22, 0x2a, 0x79, 0x60, 0x65, 0x13, 0x82, 0x65,
- 0x51, 0x93, 0x8f, 0xf5, 0x5a, 0x7e, 0x44, 0x3b, 0xa7, 0x63, 0x0f, 0x79, 0xe2, 0x83, 0x2c, 0xe2,
- 0x93, 0x1e, 0xbe, 0x91, 0xb6, 0x95, 0x4b, 0x11, 0x90, 0xfa, 0x9f, 0xbd, 0x14, 0xb3, 0x94, 0x14,
- 0x16, 0x4a, 0xed, 0x3d, 0x41, 0x6b, 0x5a, 0x6f, 0xc9, 0x92, 0xec, 0x32, 0xcd, 0xe3, 0x9f, 0xcd,
- 0xd4, 0xc7, 0xdc, 0x59, 0xad, 0x80, 0x55, 0x45, 0xfe, 0x0b, 0x7c, 0xf6, 0x3b, 0xd3, 0x27, 0x3b,
- 0x7d, 0x07, 0x96, 0x8f, 0xd8, 0xa8, 0xf0, 0xe5, 0xf6, 0x84, 0x14, 0x1d, 0xbb, 0x86, 0xd1, 0xbb,
- 0xbf, 0x8a, 0xa7, 0xeb, 0x34, 0x43, 0xff, 0xcf, 0xc1, 0x1d, 0x84, 0xd9, 0x4d, 0xb6, 0x69, 0x4d,
- 0x3a, 0xde, 0xf4, 0x47, 0xc3, 0xbd, 0xee, 0xb1, 0x98, 0x75, 0xf7, 0x56, 0x94, 0xe6, 0x62, 0x94,
- 0xf8, 0x53, 0xc5, 0x23, 0x2f, 0x56, 0xe1, 0x9b, 0xaf, 0xec, 0x67, 0x92, 0x62, 0xd6, 0xda, 0x62,
- 0xf3, 0x76, 0x52, 0xdc, 0xee, 0x82, 0xcc, 0x4d, 0x2a, 0xa5, 0x11, 0x8b, 0xe5, 0x46, 0x74, 0xe5,
- 0x31, 0xfb, 0x63, 0xb8, 0x02, 0x69, 0xc3, 0x67, 0x1d, 0x3c, 0x81, 0x4f, 0x13, 0x76, 0xcc, 0x13,
- 0xb4, 0xaf, 0x30, 0x14, 0xf5, 0x97, 0xd2, 0x19, 0x44, 0x54, 0xf2, 0xc0, 0xca, 0x26, 0xc7, 0xca,
- 0x76, 0x22, 0x01, 0x70, 0x19, 0x7c, 0xdd, 0x33, 0x73, 0xcd, 0x62, 0x04, 0x3c, 0x16, 0x7f, 0x3c,
- 0xa2, 0xe5, 0xdd, 0x29, 0xb4, 0xfc, 0x88, 0x76, 0x8d, 0xc6, 0x1e, 0xf2, 0x07, 0xc5, 0x58, 0x07,
- 0x60, 0x68, 0xec, 0x4d, 0x58, 0x17, 0x87, 0x5c, 0xba, 0x5f, 0x8e, 0x36, 0xf1, 0xf5, 0xe0, 0xf1,
- 0xe5, 0x3c, 0xbf, 0xe1, 0xaf, 0xe9, 0x96, 0x22, 0xe3, 0x37, 0xfd, 0xb9, 0x28, 0xa5, 0xeb, 0x28,
- 0x27, 0xb1, 0x8e, 0x85, 0x43, 0x02, 0x99, 0x08, 0xd4, 0xae, 0x6d, 0x7d, 0xde, 0x95, 0x53, 0xde,
- 0x2c, 0x94, 0x19, 0x7a, 0x82, 0xd6, 0xb4, 0xde, 0x51, 0xe7, 0x1b, 0x64, 0x59, 0x05, 0xfd, 0x59,
- 0xee, 0x19, 0x28, 0x1e, 0x6e, 0x3d, 0xbb, 0xf4, 0x66, 0x7e, 0x8b, 0xa0, 0xaf, 0x35, 0x45, 0xaf,
- 0x6b, 0x4d, 0x7b, 0xb2, 0x99, 0xc3, 0xaa, 0x8a, 0x3f, 0x16, 0xf8, 0x2f, 0x76, 0x65, 0x4e, 0x76,
- 0xa9, 0xc0, 0x4a, 0xd6, 0x75, 0x28, 0xa5, 0xa0, 0x08, 0x8f, 0x68, 0xeb, 0x80, 0x55, 0xf6, 0x80,
- 0xfa, 0x0e, 0xef, 0xdd, 0x73, 0x93, 0x23, 0x09, 0x2f, 0xcb, 0x28, 0x3a, 0xb5, 0xcf, 0x61, 0xb5,
- 0x38, 0x83, 0xde, 0xb9, 0x9f, 0x78, 0x2c, 0x23, 0x18, 0x52, 0xb8, 0xfe, 0x43, 0xff, 0xd9, 0x43,
- 0xbd, 0xd7, 0x8d, 0x15, 0x68, 0x86, 0x3d, 0x5d, 0x41, 0x3a, 0xcb, 0x71, 0x9a, 0xaf, 0xd2, 0x9a,
- 0x7f, 0x5a, 0xbc, 0x71, 0x84, 0x6d, 0x32, 0x77, 0x76, 0xa3, 0x5b, 0xb5, 0x6c, 0x9f, 0x6a, 0x6c,
- 0x74, 0x7f, 0x2b, 0x8e, 0x45, 0xb9, 0x1f, 0xa1, 0xf3, 0xea, 0x2d, 0xac, 0xeb, 0x0f, 0xc4, 0xeb,
- 0xb6, 0xf2, 0x1a, 0xea, 0xa9, 0x52, 0x10, 0x8b, 0xc4, 0x73, 0xbd, 0x68, 0x1d, 0x3f, 0x7c, 0x1d,
- 0x33, 0xa6, 0x49, 0x46, 0x5e, 0xac, 0x01, 0xf5, 0x9d, 0x1b, 0xce, 0xe7, 0xc4, 0x6f, 0x77, 0xc4,
- 0xf1, 0x2b, 0x78, 0x22, 0xb2, 0x47, 0x0e, 0xdf, 0xaa, 0x82, 0x5e, 0x23, 0x32, 0x5f, 0xcf, 0x32,
- 0x25, 0xec, 0xa4, 0x7b, 0x1f, 0xc7, 0x5b, 0x9a, 0x54, 0x89, 0x22, 0xd5, 0x09, 0x8c, 0xe8, 0x09,
- 0xe7, 0x61, 0x95, 0x1f, 0xf3, 0x2c, 0x54, 0xb0, 0x63, 0x10, 0xb2, 0x11, 0xff, 0xbc, 0x50, 0xff,
- 0x62, 0x35, 0xc6, 0xb3, 0x04, 0xd2, 0x45, 0xce, 0x3a, 0x78, 0xc1, 0x9e, 0x26, 0xec, 0x5b, 0x26,
- 0xa0, 0xb8, 0xf7, 0xd7, 0xe8, 0x39, 0x4a, 0xe4, 0x0d, 0xe1, 0x51, 0x5a, 0xd0, 0xdc, 0xe3, 0xd0,
- 0xab, 0x9d, 0x60, 0x28, 0x29, 0xed, 0x67, 0x32, 0x88, 0xa8, 0x27, 0x43, 0x57, 0x4c, 0x4d, 0x57,
- 0x69, 0x10, 0x51, 0x4c, 0xc5, 0x06, 0x68, 0x18, 0xbf, 0x31, 0xb7, 0x87, 0xa1, 0x7c, 0xf5, 0xa1,
- 0xec, 0x44, 0x02, 0xe0, 0x32, 0xf8, 0x79, 0x66, 0xe6, 0x59, 0xc4, 0x08, 0x78, 0x2c, 0xfe, 0x78,
- 0x2e, 0xc9, 0x33, 0x84, 0xde, 0x13, 0x76, 0x4c, 0xd1, 0xc0, 0x54, 0xcc, 0x8e, 0x1c, 0x46, 0x8e,
- 0x87, 0x09, 0x79, 0x52, 0xab, 0x3b, 0xd3, 0xec, 0xd9, 0x4f, 0x3c, 0x27, 0x0e, 0x49, 0xb0, 0x0e,
- 0x45, 0x84, 0x48, 0x36, 0x47, 0xd0, 0xdc, 0xc6, 0xee, 0xd6, 0xac, 0xe3, 0xf8, 0x79, 0x08, 0xf8,
- 0xc0, 0xd0, 0x1b, 0x9a, 0xb0, 0x2e, 0xcd, 0xb8, 0xb7, 0xbe, 0xdf, 0x6c, 0x21, 0x29, 0x03, 0x21,
- 0x02, 0x5d, 0x2a, 0xfe, 0x5c, 0xc5, 0xc2, 0x92, 0x80, 0x27, 0x4f, 0xa8, 0xd7, 0x19, 0xbb, 0xd7,
- 0x09, 0x78, 0xbd, 0x01, 0x9d, 0x11, 0xef, 0x44, 0x05, 0x6e, 0x39, 0xb1, 0x50, 0x89, 0x15, 0x50,
- 0xcb, 0xf5, 0x8c, 0x65, 0x71, 0xfa, 0xe0, 0x6e, 0x32, 0xf7, 0xa9, 0x75, 0xa6, 0xb9, 0xad, 0xa6,
- 0x4e, 0xa1, 0xdf, 0xc9, 0x86, 0x04, 0xf1, 0x10, 0x6b, 0x9f, 0xda, 0xfa, 0x7f, 0xe9, 0xa6, 0x7f,
- 0x8c, 0x2c, 0xee, 0xad, 0x6a, 0xef, 0xfe, 0x3a, 0x5c, 0x06, 0x4a, 0x3e, 0x89, 0xd9, 0x1e, 0x89,
- 0x58, 0xeb, 0x32, 0xf4, 0xc7, 0x6f, 0xab, 0x7f, 0xa2, 0x0d, 0x36, 0xc8, 0xb2, 0x0a, 0x39, 0xb2,
- 0x9a, 0x66, 0x03, 0x90, 0x2b, 0x84, 0xa4, 0x55, 0x95, 0x94, 0xa6, 0x0c, 0x44, 0x3a, 0x81, 0x44,
- 0x1f, 0x32, 0x50, 0x3c, 0xdc, 0x7a, 0xb5, 0x2b, 0xcc, 0xfc, 0xd5, 0x83, 0x9d, 0x6a, 0x8a, 0x9d,
- 0xdd, 0xbf, 0x61, 0x58, 0x30, 0x91, 0xba, 0x01, 0xfb, 0x65, 0x45, 0x47, 0x6b, 0x5a, 0x32, 0x6b,
- 0xd6, 0x9a, 0xf6, 0xa7, 0xf1, 0x45, 0x97, 0xd7, 0x7e, 0x2c, 0x33, 0x5e, 0xec, 0xca, 0x9c, 0xec,
- 0x14, 0x17, 0xc7, 0xc3, 0x1d, 0xae, 0x98, 0xfd, 0x49, 0xb5, 0xa3, 0x9a, 0x1a, 0xfa, 0x24, 0x1a,
- 0x91, 0x43, 0x94, 0x6f, 0xea, 0x50, 0x89, 0x83, 0x10, 0xdd, 0xd0, 0x15, 0xc3, 0xaa, 0x2f, 0xc3,
- 0x53, 0xce, 0xa5, 0x0b, 0x06, 0xbb, 0x86, 0xa9, 0x27, 0x44, 0x40, 0xd1, 0x35, 0x9a, 0x97, 0x35,
- 0x37, 0x1c, 0x1d, 0x79, 0xe6, 0xe5, 0x46, 0x12, 0x5e, 0x55, 0x50, 0x74, 0xa9, 0x5d, 0xc2, 0xa9,
- 0xf5, 0x91, 0x2c, 0x1d, 0x0a, 0x0e, 0x49, 0x38, 0x69, 0xcc, 0xc0, 0xb0, 0x5f, 0x6d, 0x7a, 0x5f,
- 0x70, 0xc5, 0x7f, 0xb1, 0xfd, 0xf0, 0x58, 0x46, 0x30, 0xa4, 0xb3, 0x3f, 0x86, 0x3d, 0x71, 0x86,
- 0xb2, 0x48, 0x4e, 0xd5, 0x11, 0x1b, 0x57, 0x6c, 0x07, 0x3d, 0x23, 0xfb, 0x70, 0x0d, 0xc9, 0x70,
- 0xb9, 0x6d, 0xd9, 0x2a, 0xd0, 0xcf, 0x7a, 0xba, 0x82, 0x74, 0x55, 0xe2, 0xf7, 0x9d, 0x67, 0xf7,
- 0x7b, 0xe0, 0xe8, 0x4e, 0x3c, 0x24, 0x75, 0x90, 0xb5, 0xed, 0xc5, 0x26, 0x01, 0xad, 0xdf, 0x01,
- 0xfe, 0xb4, 0xbb, 0xe2, 0xcb, 0xda, 0x64, 0xee, 0xec, 0x85, 0xb6, 0xa9, 0xd8, 0xfd, 0xd4, 0xd8,
- 0x3c, 0x39, 0x8a, 0x86, 0x27, 0x31, 0x6b, 0xc4, 0xdb, 0x1c, 0x26, 0x6d, 0x2e, 0xcd, 0x6c, 0x2e,
- 0xe8, 0xfe, 0x56, 0xdf, 0x8a, 0xb1, 0x3e, 0x81, 0x25, 0x17, 0x5a, 0x9b, 0x15, 0x1e, 0x4b, 0x15,
- 0x2a, 0x73, 0x67, 0xbb, 0x66, 0x5a, 0x31, 0xab, 0x12, 0x8e, 0xca, 0x5f, 0xe3, 0x2e, 0xf3, 0xe3,
- 0xaf, 0x27, 0x34, 0x17, 0x91, 0xa4, 0x20, 0xd5, 0x4b, 0xe6, 0xb9, 0xd0, 0x3a, 0x7e, 0xf8, 0x3a,
- 0x6d, 0xaa, 0x05, 0x73, 0x7d, 0x4f, 0x2f, 0xff, 0x7c, 0x7f, 0x29, 0x14, 0xcc, 0x4e, 0x40, 0xcc,
- 0x66, 0x8f, 0x92, 0x8c, 0xbc, 0x9b, 0x02, 0x29, 0xf9, 0x36, 0x5f, 0x0d, 0x4b, 0xde, 0xee, 0x4b,
- 0xa4, 0x02, 0xa3, 0xe8, 0x50, 0x70, 0x0d, 0x03, 0xce, 0xaf, 0xcf, 0xc9, 0xbd, 0xee, 0x56, 0xbd,
- 0x21, 0x56, 0xf0, 0x44, 0xa7, 0x8e, 0x1c, 0x7d, 0x97, 0xc7, 0xbc, 0x46, 0x64, 0xbe, 0x5d, 0x64,
- 0xe3, 0xdb, 0xc1, 0x20, 0x4b, 0x65, 0x13, 0x57, 0xa0, 0x5e, 0x2c, 0x82, 0x92, 0x8e, 0xe5, 0x92,
- 0x4a, 0x1b, 0x8b, 0xf6, 0x3e, 0x4d, 0xb6, 0xf7, 0xa8, 0xd1, 0x44, 0x69, 0x12, 0xdb, 0x13, 0x12,
- 0x88, 0x96, 0xba, 0x92, 0xd2, 0xa6, 0xb9, 0xdd, 0x9f, 0x48, 0xd4, 0xad, 0xe4, 0xeb, 0xab, 0xe4,
- 0x0d, 0xc2, 0xe9, 0x3e, 0x25, 0x58, 0xa8, 0xa3, 0xc6, 0x20, 0xa7, 0x22, 0x3d, 0xbb, 0xa0, 0x3d,
- 0xcf, 0x4f, 0xd8, 0x5a, 0xc9, 0xb3, 0xa7, 0x89, 0xf1, 0xb9, 0x37, 0xe6, 0xcb, 0x8b, 0x18, 0xcb,
- 0xc4, 0x6a, 0x4f, 0xa5, 0x08, 0x67, 0x8a, 0x5f, 0x74, 0xf0, 0x41, 0xff, 0x4c, 0x1b, 0xb6, 0x4c,
- 0x06, 0xe7, 0x7e, 0xc1, 0xe4, 0x8c, 0x85, 0x75, 0x43, 0x69, 0xd1, 0x3b, 0xba, 0x2b, 0x0e, 0xba,
- 0x83, 0xb3, 0x2d, 0x6d, 0x13, 0x72, 0x94, 0x0b, 0x1a, 0x01, 0xa2, 0xb4, 0x63, 0x7b, 0x05, 0x63,
- 0x41, 0x3e, 0x1c, 0x09, 0xff, 0x99, 0x9b, 0x21, 0x2d, 0x98, 0x32, 0x70, 0x95, 0x4b, 0xbd, 0x95,
- 0x95, 0xf9, 0xc0, 0x50, 0x52, 0x19, 0xce, 0x64, 0xd3, 0x93, 0x4e, 0x86, 0xae, 0x98, 0x9a, 0xae,
- 0x57, 0x74, 0xf1, 0x34, 0xbe, 0xf2, 0xc1, 0x4e, 0xe4, 0x0a, 0xde, 0x42, 0x58, 0xa8, 0x22, 0x58,
- 0xd2, 0x20, 0xa2, 0x98, 0x49, 0x0c, 0xd0, 0x30, 0xbd, 0x62, 0xad, 0xcd, 0x81, 0xf8, 0x29, 0x81,
- 0x10, 0xad, 0x93, 0xfc, 0xa5, 0xe7, 0xdf, 0x1a, 0x8a, 0xfb, 0x3d, 0x09, 0x77, 0xc8, 0x91, 0x77,
- 0x1b, 0x88, 0x04, 0x03, 0x64, 0x33, 0xf2, 0xcc, 0x0f, 0xb2, 0x4b, 0x10, 0xf0, 0x58, 0x3f, 0xf0,
- 0xd9, 0x05, 0x35, 0x67, 0x88, 0xd8, 0xfd, 0xe6, 0x38, 0x2b, 0xdb, 0xd4, 0x06, 0x68, 0x87, 0x06,
- 0x5c, 0x51, 0x66, 0xcb, 0x7f, 0x26, 0xec, 0x98, 0x61, 0x43, 0xa8, 0x5b, 0xdf, 0x38, 0x8c, 0xdf,
- 0x9e, 0xdc, 0x57, 0xaf, 0x93, 0xcd, 0xe3, 0xb2, 0x56, 0xda, 0x38, 0x9f, 0x29, 0x08, 0x34, 0x29,
- 0xcd, 0x12, 0xf2, 0xa4, 0x95, 0x76, 0x65, 0x1b, 0x71, 0x9e, 0x78, 0x4e, 0x1c, 0x92, 0xa3, 0x1c,
- 0x0f, 0x9f, 0xc3, 0xc0, 0x79, 0x9d, 0x6a, 0x31, 0x46, 0x07, 0xe8, 0x8a, 0xea, 0xa2, 0x1b, 0xea,
- 0x8a, 0xcb, 0x90, 0x6c, 0x8e, 0x63, 0x7b, 0x4f, 0x1f, 0x6f, 0x9b, 0x05, 0x33, 0xf2, 0x10, 0x33,
- 0x48, 0x46, 0xa1, 0x08, 0x62, 0x88, 0x74, 0x65, 0x28, 0xf6, 0x0b, 0xc1, 0xc5, 0xc2, 0xa8, 0xc5,
- 0x43, 0x63, 0x36, 0xf7, 0xa3, 0x5c, 0x59, 0xb3, 0xad, 0xbf, 0x7d, 0xd8, 0x42, 0x52, 0x06, 0x42,
- 0x81, 0xee, 0x07, 0x93, 0x4f, 0xb7, 0x56, 0x99, 0x9a, 0x26, 0xed, 0x1c, 0xb4, 0x62, 0xbe, 0xb4,
- 0x04, 0xba, 0x54, 0x3f, 0xb8, 0x49, 0x47, 0xe7, 0xc3, 0x4e, 0x9e, 0x93, 0x6d, 0x32, 0xb5, 0x6d,
- 0xc6, 0x37, 0x65, 0x5b, 0x54, 0xa2, 0x48, 0xcd, 0xf4, 0xd7, 0x0e, 0x57, 0x9b, 0x02, 0x0d, 0x9b,
- 0x12, 0xf0, 0xb9, 0x02, 0xf9, 0x22, 0x1d, 0x88, 0x0a, 0xdc, 0x72, 0xa1, 0xa0, 0xd1, 0x2a, 0xa0,
- 0xd0, 0x7d, 0x88, 0x66, 0x15, 0xc9, 0x12, 0xa2, 0x3d, 0x45, 0xe2, 0x65, 0x56, 0xe1, 0x92, 0x56,
- 0x55, 0x29, 0xdb, 0xca, 0xe2, 0x37, 0x03, 0xdc, 0x64, 0x2d, 0x91, 0xea, 0x8f, 0xb1, 0x99, 0x8f,
- 0x97, 0xa4, 0xea, 0xae, 0x0e, 0xdc, 0x0c, 0xf6, 0x53, 0xb4, 0x01, 0x2e, 0x79, 0x81, 0x21, 0x79,
- 0x9c, 0x81, 0x7d, 0x51, 0xcf, 0x08, 0x21, 0x20, 0xd6, 0xfd, 0x77, 0x37, 0xfe, 0x11, 0x8f, 0xfe,
- 0x5e, 0x0c, 0x4c, 0x35, 0x23, 0xe3, 0x2e, 0x0a, 0xe1, 0x64, 0xe7, 0xf3, 0x08, 0x21, 0x37, 0x08,
- 0xdb, 0x58, 0x1f, 0x99, 0xd4, 0x1d, 0x3f, 0x74, 0xb8, 0x0c, 0x94, 0x7c, 0xd1, 0x71, 0x3c, 0xd1,
- 0x19, 0xd5, 0x2e, 0xfd, 0x38, 0xf6, 0x30, 0x5e, 0x8f, 0x95, 0x04, 0xb8, 0x27, 0x41, 0x84, 0x27,
- 0xb0, 0x15, 0x64, 0x2b, 0x4d, 0xde, 0x95, 0xfe, 0x87, 0x1a, 0x6c, 0x53, 0xa7, 0x14, 0x72, 0xa7,
- 0x72, 0x98, 0x55, 0x4f, 0xa1, 0x35, 0x9a, 0xd4, 0xb0, 0x83, 0xfc, 0x97, 0x51, 0x24, 0xca, 0x51,
- 0xf7, 0xcc, 0x06, 0xe3, 0x56, 0xcb, 0x8b, 0xaa, 0xe9, 0xeb, 0x8f, 0x18, 0x88, 0x74, 0xc1, 0x88,
- 0x35, 0x41, 0x37, 0x87, 0xba, 0x20, 0x84, 0x80, 0xde, 0x72, 0x1f, 0xdc, 0x7e, 0x44, 0x79, 0x7e,
- 0x3e, 0x64, 0xa0, 0x78, 0x7b, 0xf4, 0xa9, 0x56, 0x5b, 0x3b, 0x69, 0xc5, 0xf9, 0xd4, 0xd7, 0xf9,
- 0xfc, 0xe9, 0x91, 0x1c, 0x97, 0x1f, 0xa6, 0x7c, 0x6c, 0xa2, 0xf9, 0x01, 0x0f, 0xe4, 0x6f, 0x0f,
- 0x79, 0xbd, 0xc2, 0xb0, 0x60, 0xe1, 0xb7, 0x02, 0x35, 0xca, 0x8a, 0x8e, 0xd6, 0xb4, 0x64, 0xd6,
- 0xbb, 0x30, 0xf3, 0xd4, 0x8c, 0x0a, 0xb8, 0x28, 0x02, 0x53, 0x1a, 0x4a, 0x20, 0x84, 0xdc, 0x20,
- 0x6f, 0xf7, 0x2f, 0x8d, 0x21, 0x8a, 0xed, 0x6d, 0xfc, 0x58, 0x66, 0xbc, 0x1b, 0x57, 0xfb, 0x1b,
- 0xad, 0x7a, 0x1e, 0xe9, 0xcd, 0x61, 0xe2, 0x47, 0xcb, 0xc1, 0xf6, 0x78, 0xed, 0x67, 0x43, 0xed,
- 0x28, 0x2e, 0x4d, 0x45, 0x3a, 0x9f, 0xf3, 0x39, 0x92, 0xa9, 0x85, 0xf7, 0x34, 0x37, 0x48, 0x34,
- 0xea, 0xa3, 0x7c, 0x21, 0xd6, 0x74, 0xfc, 0x13, 0xa5, 0x30, 0x15, 0x33, 0xc2, 0x07, 0xf0, 0xc2,
- 0xe1, 0x86, 0xeb, 0xde, 0x17, 0xa0, 0xd1, 0xc5, 0x20, 0x79, 0x63, 0x2a, 0x45, 0x97, 0x5e, 0x45,
- 0x23, 0x0b, 0xda, 0xba, 0xfb, 0x4b, 0xde, 0xef, 0x17, 0xe0, 0xf3, 0xee, 0xb3, 0xa7, 0xe6, 0xb3,
- 0xa6, 0x5f, 0x89, 0x16, 0x0c, 0xb5, 0xcf, 0x91, 0x4e, 0x88, 0x80, 0x61, 0x6a, 0xf7, 0xed, 0x6a,
- 0x64, 0xd2, 0xb8, 0x72, 0xe0, 0x5e, 0xc0, 0xbb, 0x79, 0x11, 0x10, 0xa5, 0x9c, 0xc7, 0x55, 0x9c,
- 0x6e, 0x38, 0x3a, 0xf2, 0x0f, 0x09, 0x8c, 0x24, 0xbc, 0xaa, 0xa0, 0xe8, 0x91, 0xba, 0x47, 0x91,
- 0xac, 0xb5, 0x0b, 0x96, 0xe3, 0xe2, 0x83, 0x0e, 0x8b, 0x33, 0x30, 0x2c, 0x67, 0x8a, 0xff, 0x67,
- 0x29, 0xe1, 0x58, 0x3a, 0x14, 0x1c, 0x92, 0x70, 0xd2, 0x5b, 0x43, 0xa3, 0xbe, 0xda, 0xf4, 0xbe,
- 0xeb, 0x6c, 0x69, 0x5e, 0xf8, 0xf7, 0x9d, 0x5a, 0xe5, 0xc2, 0xd3, 0x67, 0x48, 0xea, 0x4c, 0x48,
- 0xe0, 0x49, 0xfe, 0xa1, 0x39, 0x23, 0xb0, 0x8c, 0x60, 0x8b, 0xa5, 0x7e, 0xcf, 0x7a, 0xe2, 0xcf,
- 0x22, 0xc4, 0xcf, 0xc5, 0xd5, 0xc8, 0xbf, 0xa6, 0x57, 0x12, 0x35, 0xba, 0x39, 0x4a, 0x5a, 0x39,
- 0xa7, 0x90, 0x9c, 0x69, 0x22, 0x36, 0xae, 0xd8, 0x0e, 0x7a, 0x46, 0x35, 0xe0, 0x1a, 0x51, 0xe0,
- 0x65, 0x1d, 0xad, 0x0d, 0xce, 0xdd, 0xa1, 0xf2, 0x39, 0xe3, 0xd6, 0xf1, 0x16, 0x2a, 0xe9, 0x16,
- 0xb1, 0xda, 0x71, 0x54, 0x63, 0x5d, 0xf4, 0xb7, 0xc7, 0xe8, 0xaa, 0x07, 0x2d, 0xf9, 0xce, 0x2d,
- 0x73, 0x57, 0x40, 0x30, 0x8f, 0xb6, 0xfb, 0x9d, 0xf0, 0x71, 0x3a, 0xc3, 0xdb, 0xc9, 0x76, 0xdb,
- 0xf6, 0x03, 0x13, 0x9c, 0x78, 0x48, 0xea, 0xe3, 0xa9, 0x19, 0x49, 0x4c, 0x02, 0x99, 0x7d, 0x02,
- 0x34, 0x8e, 0x22, 0xf8, 0x94, 0xa3, 0xe5, 0xc9, 0x9e, 0x80, 0xd9, 0x88, 0xf4, 0xa9, 0xc5, 0xf4,
- 0x3f, 0xab, 0xb5, 0x07, 0x55, 0x77, 0xc8, 0x1f, 0x1b, 0xc9, 0xaf, 0x91, 0x73, 0x39, 0x6b, 0x73,
- 0xfd, 0x26, 0x84, 0x63, 0xb9, 0x9c, 0xc7, 0x35, 0x2c, 0x50, 0x3f, 0x55, 0x85, 0x09, 0xd3, 0x85,
- 0x78, 0x72, 0xd7, 0xcf, 0x4e, 0x62, 0xd6, 0x4b, 0x75, 0x38, 0x4c, 0xda, 0x5c, 0x59, 0xd8, 0x5c,
- 0xba, 0xff, 0xe6, 0xab, 0xa2, 0x89, 0xd9, 0x61, 0x42, 0xa1, 0xdc, 0x1e, 0xaa, 0x69, 0x60, 0xaa,
- 0x13, 0x3f, 0xac, 0x7d, 0xd7, 0xa1, 0x7c, 0xc1, 0x4a, 0x2e, 0xb4, 0xf5, 0x2a, 0x3c, 0x96, 0x2a,
- 0xd1, 0xb2, 0x9d, 0x19, 0x3b, 0x4a, 0x73, 0xeb, 0x7d, 0xb7, 0x24, 0x31, 0xdc, 0x0c, 0x2e, 0xdc,
- 0x54, 0xe6, 0xce, 0xb5, 0xcc, 0xb4, 0x62, 0x95, 0x24, 0xdf, 0x57, 0xbe, 0x05, 0x5c, 0x25, 0x05,
- 0x96, 0x6b, 0xff, 0xd1, 0x20, 0x5f, 0x6d, 0xbf, 0x13, 0x46, 0xc7, 0x7a, 0xf3, 0x6c, 0x9d, 0xf3,
- 0x9d, 0x4e, 0x68, 0x2e, 0xe1, 0x8b, 0x40, 0x69, 0x96, 0x0f, 0xb1, 0x63, 0x74, 0xfc, 0x33, 0x74,
- 0x5f, 0xc3, 0x59, 0x4a, 0x0d, 0x60, 0x4f, 0x43, 0xa1, 0x96, 0x21, 0xa7, 0x82, 0xcc, 0x8b, 0x82,
- 0xda, 0x97, 0x0a, 0xe6, 0xfa, 0x9e, 0x5e, 0x3d, 0xf8, 0xfe, 0x52, 0x28, 0x5b, 0x9c, 0x80, 0x5b,
- 0x18, 0x1a, 0x3b, 0x82, 0x16, 0x75, 0x51, 0x17, 0xcf, 0x67, 0xc2, 0xec, 0xad, 0xac, 0x38, 0xad,
- 0xcc, 0xdd, 0xe7, 0xdb, 0xbb, 0xf5, 0x04, 0x52, 0x31, 0x6c, 0xbe, 0x1a, 0x96, 0x7f, 0x1f, 0x96,
- 0x0e, 0x50, 0xd6, 0xbf, 0x57, 0x1e, 0x0b, 0x78, 0x06, 0xf5, 0x2e, 0xde, 0x60, 0x4f, 0xa7, 0x60,
- 0x8b, 0x04, 0x85, 0x13, 0xa0, 0xe0, 0x1a, 0x06, 0x5f, 0x9d, 0x5d, 0x51, 0xb9, 0x1f, 0xac, 0xb9,
- 0x49, 0x89, 0xb4, 0x77, 0x4c, 0x0b, 0x15, 0x2c, 0x68, 0x04, 0xcd, 0x95, 0x4f, 0x2f, 0x14, 0x4f,
- 0x42, 0xac, 0x23, 0x88, 0x8d, 0xdf, 0x38, 0xfa, 0xed, 0x4d, 0xbb, 0x8c, 0xc8, 0xbf, 0xba, 0xc8,
- 0x80, 0x21, 0x12, 0xec, 0x61, 0x34, 0x37, 0xd0, 0xda, 0xd4, 0x2b, 0x48, 0x3e, 0x8f, 0x02, 0x3e,
- 0x05, 0x75, 0x41, 0x40, 0x96, 0xca, 0x26, 0xae, 0x83, 0xbc, 0x58, 0xc7, 0xe7, 0xdf, 0x09, 0xe7,
- 0xc7, 0xf8, 0x70, 0x24, 0x7a, 0x21, 0x29, 0x84, 0xb4, 0x25, 0xc8, 0x03, 0x11, 0xef, 0xb1, 0x11,
- 0x94, 0x36, 0xd5, 0x2f, 0x7c, 0x9a, 0xaf, 0x2d, 0x93, 0x61, 0x88, 0xd2, 0x24, 0x75, 0x26, 0x24,
- 0x56, 0xbb, 0xe4, 0x4b, 0x90, 0x71, 0xa0, 0x07, 0xa4, 0xf8, 0x18, 0x16, 0xd2, 0x45, 0x9e, 0xd2,
- 0xd3, 0xef, 0xb7, 0xe7, 0x67, 0x8f, 0xb1, 0x79, 0xfd, 0x90, 0x6b, 0x99, 0x0b, 0x15, 0x95, 0x0b,
- 0x11, 0x62, 0x86, 0x83, 0x8b, 0x64, 0xbe, 0x53, 0xca, 0x09, 0xfb, 0x5d, 0xfd, 0x25, 0x2d, 0xfd,
- 0x1a, 0x47, 0x11, 0x7c, 0x4a, 0xb0, 0x93, 0x85, 0x4f, 0x40, 0x8d, 0x44, 0x7a, 0xb5, 0x83, 0x7a,
- 0xd8, 0xca, 0x20, 0x18, 0xa6, 0x5b, 0x9c, 0xaf, 0x78, 0xd9, 0x1d, 0x80, 0x8c, 0x85, 0x3b, 0x8c,
- 0x5d, 0x9e, 0x73, 0xb4, 0x51, 0xa5, 0x8d, 0xd1, 0x21, 0xb1, 0x6e, 0x0f, 0x55, 0xd5, 0x30, 0x55,
- 0x9f, 0x13, 0x42, 0xd0, 0xbd, 0x4e, 0x82, 0xfb, 0x16, 0x28, 0xfe, 0xcb, 0xa3, 0xe5, 0x88, 0xa3,
- 0x4b, 0xd4, 0x9e, 0x89, 0x10, 0xce, 0xd7, 0xbe, 0xe8, 0x23, 0x82, 0x3d, 0x98, 0x36, 0xaf, 0x98,
- 0x89, 0x59, 0xaf, 0xed, 0xfc, 0x25, 0xd8, 0x94, 0xdf, 0xba, 0x12, 0xf9, 0x6e, 0x06, 0x17, 0x6e,
- 0x0c, 0x0d, 0xfc, 0x41, 0x0b, 0xdb, 0xc9, 0xea, 0x86, 0xd2, 0x61, 0x76, 0xb7, 0x56, 0x1c, 0xb7,
- 0xce, 0x80, 0xcd, 0x25, 0xe7, 0x30, 0xc6, 0xc0, 0xb1, 0x4b, 0xf1, 0xb2, 0x41, 0x66, 0xa4, 0x41,
- 0xc5, 0xa5, 0x5a, 0xda, 0x26, 0xe4, 0xeb, 0x16, 0x34, 0x02, 0x87, 0xab, 0xc6, 0xf6, 0x0a, 0xc6,
- 0x07, 0x28, 0x6b, 0xbe, 0xca, 0x0f, 0xe4, 0x3c, 0x03, 0x9b, 0x17, 0x6f, 0x30, 0xc6, 0xb2, 0x30,
- 0x82, 0x7c, 0x38, 0x12, 0x3d, 0xf1, 0xf5, 0x42, 0x5a, 0xf3, 0x64, 0xe0, 0xe9, 0x96, 0xb9, 0xe9,
- 0x40, 0xf1, 0x09, 0x76, 0xd1, 0x1a, 0xfa, 0x68, 0x6d, 0x6a, 0xf4, 0x24, 0x1f, 0xa6, 0x01, 0x1f,
- 0xe9, 0x31, 0x43, 0xa0, 0xa4, 0x32, 0x5f, 0xc8, 0x65, 0xe5, 0x9c, 0xcf, 0x9f, 0xf3, 0xf7, 0x9f,
- 0x2b, 0xbc, 0x72, 0xc4, 0x48, 0xd9, 0x50, 0xe2, 0x52, 0x7c, 0x0c, 0x0b, 0x69, 0xc3, 0x4f, 0x69,
- 0xae, 0xe8, 0x21, 0x68, 0xbf, 0x27, 0x41, 0x9c, 0x0b, 0x14, 0x7f, 0x84, 0xb0, 0x93, 0x44, 0xb0,
- 0x6c, 0x65, 0x10, 0x0c, 0x53, 0xcc, 0x4e, 0xb6, 0x3c, 0x8d, 0xef, 0x40, 0x46, 0xa3, 0xfc, 0x46,
- 0x67, 0x40, 0x87, 0xf3, 0x92, 0x18, 0x63, 0x60, 0xb9, 0xc4, 0x99, 0x59, 0xc1, 0x33, 0x52, 0xc1,
- 0xa5, 0xcd, 0xb6, 0x97, 0x7e, 0xf3, 0x6c, 0x4a, 0x8e, 0x5d, 0x09, 0x9d, 0x37, 0x03, 0xea, 0x37,
- 0x20, 0x99, 0xe5, 0x3b, 0x89, 0x0d, 0x7d, 0x34, 0xd7, 0x35, 0x7a, 0x12, 0xee, 0x53, 0xe1, 0xee,
- 0xe2, 0x14, 0xd4, 0x5f, 0x65, 0xe6, 0x72, 0x1e, 0xe0, 0xac, 0xea, 0xd6, 0x18, 0x63, 0x59, 0x18,
- 0x36, 0xd3, 0x08, 0x06, 0xc8, 0x66, 0x27, 0x5b, 0x1e, 0xa7, 0x96, 0x20, 0x23, 0xb0, 0x7e, 0x23,
- 0xf4, 0x5e, 0x39, 0x62, 0x24, 0x8d, 0x28, 0x71, 0x29, 0x3e, 0x06, 0xe4, 0xd5, 0x80, 0xc6, 0xd5,
- 0x71, 0x0a, 0x6a, 0xce, 0xd3, 0x73, 0x39, 0x0f, 0x70, 0x56, 0x75, 0x6b, 0x0c, 0xd0, 0xcd, 0x0c,
- 0xb3, 0x87, 0x5b, 0xaa, 0x3f, 0x98, 0x36, 0x25, 0x47, 0xcf, 0xe5, 0xaf, 0xfa, 0xe0, 0x75, 0xfa,
- 0xb8, 0xa2, 0xcc, 0x55, 0xfe, 0x4c, 0x1b, 0xf3, 0xc2, 0x86, 0x93, 0xb6, 0x7d, 0x70, 0xdb, 0x7d,
- 0x7a, 0x2f, 0xfd, 0x31, 0x12, 0xa7, 0x14, 0xd9, 0xf5, 0x1f, 0x03, 0x72, 0x8b, 0x40, 0x63, 0x8b,
- 0xff, 0x7b, 0xae, 0x9d, 0xe5, 0x59, 0x05, 0xa7, 0xac, 0x77, 0x70, 0xfd, 0x52, 0x10, 0x68, 0x52,
- 0x3d, 0xf6, 0x9f, 0xf9, 0x09, 0xb2, 0x0a, 0x8d, 0x9b, 0xee, 0xe0, 0x39, 0xa4, 0x20, 0xd0, 0xa4,
- 0x59, 0x24, 0x27, 0x8b, 0xe9, 0xec, 0xca, 0x36, 0xe2, 0xff, 0xf0, 0x9c, 0x38, 0xe7, 0x85, 0x38,
- 0x9b, 0xa9, 0x16, 0xef, 0x05, 0x07, 0xc5, 0x1c, 0xd5, 0x66, 0x60, 0x58, 0xce, 0xd7, 0x3d, 0xce,
- 0x1e, 0xfd, 0x45, 0x43, 0xf2, 0xf9, 0xd4, 0x62, 0x8c, 0x0e, 0x13, 0xd7, 0x17, 0x87, 0x36, 0x17,
- 0xdc, 0x70, 0x74, 0x27, 0x1e, 0x12, 0xdb, 0x48, 0xbb, 0x97, 0x83, 0x13, 0xe1, 0xb7, 0x8e, 0xe1,
- 0xd7, 0x55, 0xe3, 0xd8, 0xdf, 0xc6, 0xf6, 0x9e, 0x3e, 0xde, 0xf5, 0x0a, 0x66, 0x27, 0x20, 0x66,
- 0x15, 0xd8, 0xd2, 0xbc, 0x33, 0x2d, 0xf9, 0xb4, 0x09, 0x47, 0x65, 0xce, 0x90, 0x17, 0x98, 0x90,
- 0x90, 0x8c, 0x81, 0x10, 0xc4, 0xd3, 0xe8, 0xca, 0x50, 0x2f, 0x16, 0x41, 0x49, 0x47, 0x93, 0x49,
- 0x52, 0x01, 0xb0, 0x74, 0x28, 0x38, 0xe7, 0xe0, 0x67, 0xb6, 0x86, 0x85, 0xbf, 0x77, 0x2b, 0xbf,
- 0x86, 0xc6, 0x6c, 0x2d, 0x85, 0xb8, 0xb2, 0xa5, 0x99, 0xbd, 0xfa, 0x73, 0x84, 0xa4, 0x0c, 0x84,
- 0x44, 0x4b, 0x5d, 0x49, 0x69, 0x53, 0xbd, 0x8f, 0xae, 0x24, 0x6a, 0xb7, 0x72, 0x94, 0xb4, 0x72,
- 0xc1, 0x1f, 0x0e, 0xe5, 0x9e, 0xad, 0xac, 0xf1, 0xf7, 0x4c, 0x19, 0x38, 0xab, 0xc4, 0xbf, 0xab,
- 0x03, 0x92, 0x3f, 0x81, 0x72, 0x46, 0xa3, 0xdb, 0xc0, 0xd5, 0x89, 0xfc, 0x5d, 0xf4, 0x07, 0x5d,
- 0x08, 0xb7, 0xa8, 0x7e, 0xb3, 0x92, 0x8e, 0x0d, 0x45, 0x9c, 0xff, 0xe5, 0xda, 0x64, 0xa9, 0xda,
- 0xca, 0x3a, 0x99, 0x1a, 0x5f, 0x79, 0x81, 0x27, 0x72, 0x05, 0x6f, 0x21, 0x2c, 0x54, 0x11, 0x2c,
- 0x4f, 0x6e, 0xca, 0xb6, 0xa8, 0x87, 0x90, 0x59, 0x2b, 0x6d, 0x1c, 0xae, 0xf5, 0x04, 0x1a, 0xf5,
- 0x8d, 0xe3, 0xfb, 0xd2, 0x44, 0x6c, 0x9f, 0x73, 0x1c, 0xf4, 0x8c, 0x6a, 0x03, 0x34, 0xa2, 0x03,
- 0x24, 0x23, 0xb1, 0x04, 0x31, 0x44, 0x3a, 0xd3, 0x14, 0x7b, 0xe4, 0x81, 0x83, 0x61, 0x54, 0x83,
- 0xe6, 0xae, 0x80, 0x60, 0xdd, 0xaf, 0x35, 0xf9, 0x23, 0xe2, 0x74, 0x45, 0x75, 0x51, 0xec, 0x75,
- 0x63, 0xfa, 0xd3, 0xcc, 0x2a, 0x51, 0x24, 0x87, 0x7a, 0x8a, 0x07, 0xca, 0xac, 0x01, 0xe7, 0xac,
- 0xa1, 0x77, 0xe2, 0xa8, 0xc6, 0xba, 0x2b, 0xad, 0x4d, 0x13, 0x97, 0x0e, 0x5a, 0x31, 0x5f, 0x5a,
- 0xaa, 0x52, 0x75, 0x57, 0x07, 0x6e, 0x06, 0x7b, 0xc8, 0x5a, 0xe1, 0x17, 0xdd, 0xa1, 0xf1, 0xdd,
- 0x68, 0xdf, 0x44, 0x33, 0xeb, 0x85, 0x09, 0x51, 0xff, 0xc3, 0x71, 0xd3, 0x2b, 0x91, 0x49, 0x2b,
- 0xed, 0x8b, 0x17, 0x9f, 0x1c, 0x7b, 0x18, 0x2f, 0xa6, 0xab, 0x02, 0x5c, 0xf2, 0xc1, 0x42, 0xf2,
- 0x2f, 0x06, 0x26, 0xfb, 0xf0, 0x90, 0x17, 0x05, 0x91, 0x32, 0x92, 0x98, 0x04, 0xf1, 0xfa, 0x04,
- 0xfb, 0xc1, 0xfa, 0xa2, 0x5d, 0x10, 0x42, 0x40, 0x6f, 0x39, 0xee, 0x6e, 0x3f, 0x22, 0xdd, 0x3f,
- 0x39, 0x4c, 0xcb, 0xc6, 0xb1, 0xfb, 0x4d, 0x6a, 0x58, 0xa0, 0x7e, 0xaa, 0xc9, 0x12, 0x65, 0xc9,
- 0xbc, 0x18, 0x98, 0x6a, 0x46, 0x05, 0x5c, 0x14, 0x01, 0xc8, 0x0d, 0x25, 0x10, 0x42, 0x6e, 0x10,
- 0x7e, 0x95, 0xa9, 0x0e, 0xaa, 0xee, 0x53, 0x3e, 0x36, 0x51, 0x9d, 0xe1, 0xe6, 0x72, 0xd6, 0xe6,
- 0x75, 0xb0, 0x3e, 0xf1, 0x6b, 0x3a, 0x7e, 0xe8, 0xb3, 0x18, 0xeb, 0xf8, 0x61, 0xe2, 0x78, 0x61,
- 0xb7, 0x3d, 0x0f, 0x95, 0x87, 0xd1, 0x71, 0xc2, 0x84, 0x81, 0x7b, 0x3c, 0x97, 0xd2, 0xc0, 0x97,
- 0x32, 0x69, 0x5c, 0x39, 0x70, 0x2f, 0x60, 0xbc, 0xdd, 0xe9, 0x08, 0xb3, 0x4e, 0x82, 0xcb, 0x4e,
- 0xf0, 0xe4, 0x6d, 0x5d, 0x9c, 0xc4, 0x6f, 0x96, 0xea, 0x70, 0x98, 0x77, 0xb8, 0xb2, 0x73, 0xb8,
- 0xa3, 0x2a, 0xc8, 0x56, 0x9a, 0x7f, 0xe9, 0x3f, 0xcd, 0x34, 0xd8, 0xa6, 0x8d, 0x28, 0xe4, 0x8d,
- 0x61, 0xa7, 0xf9, 0x32, 0x76, 0x94, 0xe6, 0x15, 0xfa, 0xad, 0x48, 0x62, 0x7b, 0x18, 0x5c, 0x7b,
- 0xe4, 0xf3, 0xaa, 0x9e, 0x81, 0x6a, 0xf7, 0x6b, 0xa3, 0xc5, 0x3b, 0xed, 0xa2, 0x48, 0x57, 0xa2,
- 0x26, 0x7e, 0x9b, 0xfa, 0x6d, 0x81, 0xf8, 0x41, 0x94, 0x5c, 0xab, 0x29, 0x54, 0x78, 0xef, 0x54,
- 0x2d, 0x5b, 0x0c, 0x05, 0xac, 0x55, 0xd5, 0x97, 0x11, 0x15, 0xdd, 0x30, 0xd3, 0xe8, 0x41, 0xd3,
- 0xef, 0xd6, 0x3d, 0x61, 0x40, 0xbe, 0xda, 0xbd, 0x26, 0x8c, 0x4d, 0xf4, 0x25, 0xd8, 0xf9, 0x25,
- 0x6a, 0x82, 0x6e, 0xcd, 0xb7, 0x40, 0xcb, 0xc3, 0x7f, 0xe4, 0x3e, 0x7b, 0xfc, 0x88, 0xf2, 0xfc,
- 0xa8, 0x0f, 0x5f, 0xa9, 0x5b, 0xab, 0xc4, 0xe9, 0x48, 0x7d, 0xae, 0xbf, 0x0a, 0xb8, 0x4a, 0x0a,
- 0x7c, 0xc8, 0x83, 0xf0, 0xf6, 0x2b, 0x91, 0xac, 0xb6, 0x76, 0xd2, 0x49, 0x31, 0x6b, 0x6d, 0x31,
- 0xbe, 0x45, 0xb2, 0x94, 0x1a, 0xc0, 0x9e, 0x86, 0x81, 0xef, 0x42, 0x8d, 0xc7, 0x5b, 0xd5, 0xc7,
- 0x3b, 0x11, 0xe1, 0x38, 0xed, 0x3e, 0x8f, 0xf8, 0xd8, 0x87, 0x31, 0x02, 0x1e, 0x0b, 0xde, 0x1e,
- 0xf9, 0x9c, 0xd0, 0x5c, 0x01, 0xd5, 0x80, 0xd2, 0xef, 0x1e, 0xa1, 0xc6, 0xe8, 0x3b, 0x66, 0xe8,
- 0xf2, 0xb9, 0x47, 0xa3, 0xc0, 0x01, 0xad, 0x04, 0x6a, 0x57, 0xd7, 0xdf, 0x6f, 0xab, 0xc8, 0x6f,
- 0x30, 0x34, 0x76, 0xc7, 0x2c, 0xea, 0xa2, 0x2e, 0x5d, 0xce, 0x47, 0x1b, 0x99, 0x9b, 0x70, 0x99,
- 0xb5, 0x60, 0x25, 0x6b, 0xdb, 0x14, 0xb3, 0x50, 0x04, 0xa6, 0x34, 0x94, 0x40, 0xcb, 0x7b, 0x40,
- 0x77, 0xed, 0x14, 0x0f, 0x37, 0xff, 0xbc, 0x7a, 0x33, 0x3f, 0xa4, 0x50, 0xb6, 0xfb, 0xc3, 0xb6,
- 0xde, 0x2d, 0x5e, 0xd9, 0x42, 0xd7, 0x19, 0xda, 0x3b, 0xb0, 0xcc, 0xbb, 0x36, 0xae, 0x35, 0x36,
- 0x1c, 0xa0, 0x6f, 0xbd, 0xae, 0x3c, 0x16, 0xf0, 0x0c, 0x29, 0x5c, 0x7f, 0xc0, 0x9e, 0x8d, 0xc0,
- 0x99, 0xf4, 0x3c, 0x11, 0x59, 0xc2, 0x07, 0x8e, 0x55, 0x41, 0x2f, 0xf0, 0x19, 0xce, 0x86, 0x19,
- 0x5b, 0x79, 0x0d, 0x75, 0xb5, 0x29, 0x08, 0xa4, 0x62, 0xd8, 0xbf, 0x34, 0xef, 0xfe, 0x3e, 0xef,
- 0x50, 0x5c, 0x9a, 0x8a, 0x74, 0xfd, 0x25, 0x72, 0xe7, 0x91, 0xc9, 0x2d, 0x68, 0x6e, 0x90, 0x68,
- 0x92, 0xd1, 0xab, 0xee, 0x98, 0x16, 0x2a, 0x58, 0xd0, 0x08, 0x59, 0xe9, 0x9e, 0x5e, 0x28, 0x9e,
- 0x17, 0x85, 0xf8, 0x42, 0x6f, 0xe8, 0x3b, 0x26, 0x89, 0x60, 0x2a, 0x66, 0x47, 0x0e, 0x23, 0x47,
- 0xd5, 0x08, 0xc9, 0x26, 0x83, 0x03, 0x34, 0x0c, 0xbe, 0xf9, 0xba, 0xa2, 0xb1, 0x3e, 0x9b, 0xb1,
- 0x01, 0xcf, 0x15, 0x7f, 0x2e, 0x83, 0x61, 0x49, 0x40, 0xf2, 0xc6, 0x54, 0x8a, 0xed, 0xbc, 0x8a,
- 0xc3, 0x42, 0x24, 0x1b, 0xc2, 0x68, 0x6e, 0x63, 0x77, 0x6b, 0x56, 0x90, 0x7c, 0xdd, 0x04, 0x7c,
- 0x46, 0x16, 0x77, 0xb7, 0x35, 0x96, 0x7f, 0x1d, 0x2e, 0x03, 0x25, 0x1f, 0xa5, 0x8d, 0x0f, 0xa5,
- 0x84, 0x9b, 0x46, 0xd3, 0xd9, 0x7d, 0x70, 0x37, 0x19, 0x9a, 0xb5, 0xdb, 0x53, 0xbd, 0xb7, 0x53,
- 0x8f, 0xbe, 0xd1, 0x2c, 0x18, 0xa9, 0x5d, 0xe1, 0x9c, 0xd3, 0xc3, 0xc2, 0xd4, 0x2d, 0x19, 0xd4,
- 0x4d, 0x33, 0xe0, 0x48, 0xf4, 0x42, 0x52, 0xcb, 0xab, 0x4a, 0x53, 0x06, 0x22, 0x1d, 0xa1, 0x22,
- 0xc8, 0x67, 0xb3, 0xe4, 0x03, 0xbc, 0x43, 0xb5, 0xf2, 0x22, 0x20, 0x89, 0xfb, 0x4d, 0xaa, 0xfb,
- 0x0a, 0xea, 0x82, 0x80, 0xef, 0x57, 0x4c, 0x9f, 0xc5, 0xbb, 0xb0, 0x4d, 0x0d, 0x7d, 0x12, 0x0d,
- },
- { /* 6 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc0, 0xb4, 0xa6, 0xff, 0x39, 0x2f, 0x54, 0x6c, 0xaf, 0xeb, 0xe1, 0xd4, 0xd7, 0x63, 0x64, 0xbf,
- 0x43, 0xab, 0x8f, 0x3d, 0x72, 0x5e, 0xa8, 0xd8, 0x9d, 0x15, 0x01, 0x6b, 0x6d, 0xc6, 0xc8, 0xbd,
- 0x83, 0x1f, 0x29, 0xc2, 0x4b, 0x71, 0xfc, 0xb4, 0x32, 0xfe, 0xe0, 0xbf, 0xba, 0xa5, 0xac, 0x02,
- 0x86, 0x95, 0xdd, 0x7a, 0xe4, 0xbc, 0x93, 0x73, 0xf9, 0x2a, 0x02, 0xd6, 0xda, 0x4f, 0x53, 0xb9,
- 0x46, 0x21, 0x7b, 0x85, 0xdd, 0x93, 0xc7, 0x1f, 0x56, 0xc1, 0xe3, 0x02, 0x0d, 0x2c, 0x37, 0x06,
- 0xc5, 0x3e, 0x52, 0x47, 0x96, 0xe2, 0x3b, 0xab, 0x64, 0x3f, 0x03, 0xbd, 0xb7, 0x89, 0x9b, 0x04,
- 0x05, 0x8a, 0xf4, 0xb8, 0xaf, 0xcd, 0x6f, 0xc7, 0xcb, 0xd4, 0xe2, 0x69, 0x60, 0xea, 0xff, 0xbb,
- 0xcf, 0xe9, 0x79, 0xf4, 0x0b, 0xbb, 0xe5, 0xe6, 0x31, 0x54, 0x04, 0x6f, 0x77, 0x9e, 0xa6, 0xb1,
- 0x0f, 0x5d, 0xdf, 0x0b, 0x32, 0x94, 0xb1, 0x8a, 0x9e, 0xbf, 0xe5, 0xbb, 0xa0, 0xfd, 0xc2, 0x0e,
- 0x8c, 0x42, 0xf6, 0xc9, 0x79, 0xe5, 0x4d, 0x3e, 0xac, 0x41, 0x05, 0x04, 0x1a, 0x58, 0x6e, 0x0c,
- 0x4c, 0xf6, 0x50, 0x36, 0x40, 0xca, 0x19, 0x52, 0x03, 0xaa, 0xe4, 0xd0, 0xcd, 0x3b, 0x0a, 0xb3,
- 0x49, 0x7c, 0xa4, 0x8e, 0xef, 0x07, 0x76, 0x95, 0xc8, 0x7e, 0x06, 0xb9, 0xad, 0xd1, 0xf5, 0x08,
- 0x89, 0xc8, 0x02, 0x71, 0xd6, 0x28, 0x22, 0xf9, 0x67, 0x95, 0xe7, 0x6d, 0x7a, 0xb2, 0x91, 0xb7,
- 0x0a, 0xd7, 0x2b, 0xb3, 0x9d, 0x59, 0xde, 0x4d, 0x55, 0x6b, 0x07, 0xd2, 0xc0, 0x17, 0x3d, 0xb5,
- 0xca, 0x63, 0x8d, 0x4c, 0xa4, 0x76, 0x8a, 0x21, 0xfa, 0x80, 0xe6, 0x06, 0x17, 0x74, 0x59, 0x0a,
- 0x5d, 0x11, 0xf2, 0x2b, 0x16, 0xb5, 0x09, 0x0f, 0x62, 0xa8, 0x08, 0xde, 0xee, 0xff, 0x8f, 0xa1,
- 0x9d, 0xa5, 0x54, 0xd4, 0x2f, 0x9a, 0x5d, 0x63, 0xcd, 0x43, 0xe9, 0x0a, 0x39, 0x9c, 0xeb, 0x1e,
- 0x1e, 0xba, 0x7d, 0x16, 0x64, 0xeb, 0xa1, 0xd7, 0xff, 0xbd, 0x09, 0xb5, 0x83, 0x39, 0x47, 0x1c,
- 0xde, 0x0e, 0xdb, 0xe9, 0x5d, 0xc4, 0xf5, 0xbb, 0x50, 0x56, 0xe8, 0x61, 0x54, 0x5a, 0x23, 0xa3,
- 0xdb, 0x84, 0x2f, 0x51, 0xf2, 0x09, 0x9a, 0x7c, 0x9b, 0x82, 0x0a, 0x08, 0x34, 0xb0, 0xdc, 0x18,
- 0x1b, 0x30, 0x89, 0xae, 0xcb, 0x26, 0xce, 0x10, 0x34, 0x69, 0xeb, 0xdc, 0xe3, 0xd3, 0xb8, 0xa7,
- 0x98, 0x2f, 0xa0, 0x6c, 0x80, 0x57, 0x32, 0xa4, 0x06, 0x97, 0x0b, 0x63, 0x59, 0x76, 0x14, 0xa5,
- 0x58, 0x9b, 0x06, 0x93, 0xb9, 0x78, 0x66, 0xc8, 0xa9, 0x7c, 0xea, 0xb7, 0x8e, 0x15, 0x70, 0x1a,
- 0x92, 0xf8, 0x8b, 0xdf, 0x1d, 0x0e, 0xec, 0xe9, 0x53, 0xfc, 0x0c, 0xb1, 0x99, 0x61, 0x29, 0x10,
- 0x52, 0x4c, 0x2d, 0x20, 0x24, 0x21, 0xb8, 0x85, 0xfc, 0x17, 0xed, 0x65, 0x4e, 0x02, 0x4d, 0xaf,
- 0xd1, 0x53, 0x04, 0xe2, 0x6f, 0x50, 0x44, 0x31, 0xce, 0xe9, 0x0d, 0xda, 0xf4, 0xa7, 0xe1, 0xad,
- 0x11, 0xe7, 0xa2, 0x1d, 0x56, 0x7f, 0x10, 0x5d, 0x61, 0x02, 0xec, 0x0e, 0x23, 0xc4, 0x85, 0x12,
- 0x14, 0x6d, 0x56, 0xa5, 0xf9, 0xb2, 0x7f, 0x9a, 0xaa, 0xd6, 0x0e, 0x67, 0x43, 0x2e, 0x7a, 0xa9,
- 0xd4, 0xd9, 0xf0, 0x5a, 0xc0, 0x9d, 0x2b, 0xf6, 0x05, 0x3d, 0xef, 0xb3, 0x94, 0x4d, 0x1e, 0x16,
- 0x57, 0xc6, 0xd9, 0x98, 0x8b, 0xec, 0xd7, 0x42, 0x37, 0xc3, 0x0f, 0x0c, 0x2e, 0xe8, 0xb2, 0x14,
- 0x97, 0x72, 0x7f, 0x67, 0xb2, 0xc3, 0x83, 0x2e, 0x98, 0x28, 0xee, 0xd8, 0xf9, 0x8b, 0xd6, 0xab,
- 0xba, 0x22, 0x27, 0x56, 0x2c, 0xa9, 0x12, 0x1e, 0xc4, 0x93, 0x10, 0x7f, 0x1f, 0x3d, 0xdd, 0x81,
- 0x7a, 0x96, 0x81, 0xa9, 0x15, 0x86, 0x46, 0x72, 0x6b, 0x78, 0xf1, 0xab, 0xc8, 0x5e, 0xb9, 0x3e,
- 0xf9, 0x89, 0xa8, 0x6b, 0x5e, 0xf7, 0xba, 0xc6, 0x59, 0x86, 0x11, 0x14, 0x72, 0xfb, 0x15, 0x3c,
- 0x39, 0x3d, 0x0e, 0x94, 0x67, 0xd8, 0xee, 0xaa, 0xf6, 0x6d, 0xf0, 0xc0, 0xa5, 0x98, 0x71, 0x83,
- 0x3c, 0xb7, 0xfa, 0x2c, 0xc8, 0x15, 0x81, 0x6d, 0x3d, 0xb9, 0x12, 0xa9, 0xc5, 0x72, 0x8e, 0x38,
- 0xfc, 0x03, 0x5c, 0xd3, 0xf1, 0x3a, 0xd5, 0x01, 0x92, 0x52, 0xf3, 0x7d, 0x12, 0x11, 0xea, 0x87,
- 0x7f, 0x1c, 0x75, 0x11, 0xba, 0x4b, 0x29, 0xb5, 0xa0, 0xac, 0x13, 0xc2, 0xa8, 0xb4, 0x46, 0x85,
- 0xbf, 0xa8, 0xd3, 0xee, 0x83, 0x64, 0x7d, 0xd9, 0x0f, 0x47, 0xf2, 0x16, 0x7f, 0xd7, 0x22, 0x3a,
- 0x75, 0xcb, 0x5e, 0xa2, 0x27, 0x12, 0xf7, 0xf8, 0xf5, 0xc7, 0x14, 0x10, 0x68, 0xa3, 0x7b, 0x30,
- 0xb5, 0x7f, 0xf8, 0x5d, 0x1e, 0x3d, 0xa3, 0x94, 0x5a, 0x2c, 0xf5, 0xc4, 0xbf, 0xc0, 0x1f, 0x8f,
- 0x36, 0x60, 0xd1, 0x9f, 0x55, 0x4c, 0x5f, 0x20, 0x68, 0xd2, 0x15, 0x7b, 0x05, 0x65, 0xb3, 0x8d,
- 0xf6, 0xd4, 0x77, 0x60, 0x6c, 0x63, 0x0b, 0x4c, 0xc7, 0x39, 0xf4, 0xaf, 0xd2, 0x06, 0xd7, 0x32,
- 0xf3, 0x5e, 0x83, 0xd8, 0xc3, 0xae, 0x64, 0x8b, 0x0c, 0xed, 0x16, 0xc6, 0xb2, 0xec, 0x28, 0x89,
- 0x33, 0xea, 0x25, 0x27, 0xfa, 0x81, 0x30, 0xe7, 0xa3, 0x06, 0xf7, 0x12, 0x65, 0x8f, 0x4c, 0x36,
- 0xb0, 0xf5, 0x0c, 0xe5, 0xb1, 0xf0, 0xcc, 0x53, 0x91, 0xf8, 0x17, 0xad, 0xdf, 0x2a, 0xe0, 0x34,
- 0x70, 0x41, 0xaa, 0x1a, 0x88, 0xdf, 0x98, 0x3f, 0x3e, 0x13, 0xf6, 0x79, 0x08, 0x49, 0x84, 0x8b,
- 0xe7, 0x33, 0xd5, 0x7d, 0x3a, 0x1c, 0x1b, 0x11, 0xa6, 0x3b, 0x18, 0xa1, 0xf1, 0xc2, 0x52, 0x20,
- 0x27, 0x87, 0x73, 0x82, 0x03, 0x33, 0x4f, 0x7d, 0x09, 0xd0, 0xf9, 0x75, 0x26, 0xa1, 0x36, 0x9f,
- 0xa4, 0x98, 0x5a, 0x40, 0x48, 0x42, 0xb3, 0xc9, 0x3b, 0x2e, 0x19, 0xca, 0x9c, 0x04, 0x9a, 0x9d,
- 0x64, 0x2c, 0xfc, 0xbf, 0x71, 0x6d, 0xe7, 0xa5, 0x94, 0xc5, 0xf8, 0x1e, 0x4b, 0x67, 0xfe, 0x22,
- 0x61, 0xa6, 0x08, 0x07, 0xde, 0xa0, 0x88, 0x62, 0x5f, 0x11, 0x1a, 0x77, 0x2b, 0x8d, 0x01, 0x99,
- 0xa1, 0x12, 0xae, 0xf8, 0xe7, 0x8f, 0xdc, 0x0e, 0xf0, 0xfa, 0xfb, 0xa3, 0xfc, 0xee, 0x65, 0x26,
- 0x22, 0x0d, 0x87, 0x3a, 0xac, 0xfe, 0x20, 0xba, 0xc2, 0x04, 0x1b, 0x1c, 0x46, 0x4b, 0xc9, 0x24,
- 0xe2, 0xb9, 0x21, 0xc5, 0x95, 0xd1, 0x74, 0xd6, 0x6d, 0xef, 0xfa, 0xc8, 0x91, 0x28, 0xad, 0x9b,
- 0x28, 0xda, 0xac, 0x89, 0x31, 0xa7, 0xfe, 0xf7, 0x97, 0x6f, 0x1c, 0xce, 0x86, 0x5c, 0xf4, 0x91,
- 0xe8, 0x6e, 0x0a, 0x76, 0x08, 0x88, 0xaa, 0x9b, 0x38, 0x84, 0xfd, 0x1a, 0x51, 0x3f, 0x90, 0x2e,
- 0x6b, 0x71, 0x23, 0xb4, 0x43, 0xf9, 0x56, 0x2f, 0x0a, 0x7a, 0x1d, 0xa5, 0xeb, 0x9a, 0x3c, 0x2c,
- 0xab, 0xc5, 0x85, 0x4b, 0x7a, 0xd6, 0x02, 0x43, 0xa5, 0x91, 0xfc, 0x71, 0x3c, 0xf9, 0x58, 0x93,
- 0xae, 0x4f, 0x71, 0xf3, 0xd5, 0x1b, 0x6d, 0x84, 0x6e, 0x45, 0x1e, 0x18, 0x5c, 0x13, 0xa7, 0x28,
- 0x6e, 0xfb, 0xd7, 0x0c, 0xec, 0x34, 0x39, 0xe8, 0xc1, 0xae, 0xff, 0xcc, 0x8b, 0x70, 0xc3, 0x97,
- 0xed, 0xe4, 0xfe, 0xce, 0xa7, 0x45, 0xc5, 0x5c, 0xf3, 0x50, 0x1f, 0x73, 0x31, 0xd5, 0x6f, 0x95,
- 0x2d, 0x50, 0x58, 0x31, 0x9e, 0x6a, 0x91, 0x30, 0x5c, 0xbb, 0xfe, 0xa7, 0xe6, 0xb6, 0x0b, 0x2a,
- 0xb7, 0x44, 0x4e, 0xac, 0x58, 0x91, 0x24, 0x3c, 0x4b, 0xe5, 0x20, 0xfe, 0x3e, 0x7a, 0x79, 0xc1,
- 0x77, 0xf0, 0xe8, 0x53, 0x61, 0xbe, 0x70, 0x50, 0xe4, 0x0e, 0xc1, 0x2a, 0xe9, 0x19, 0x1d, 0x7e,
- 0xf4, 0xef, 0xc1, 0x91, 0x2a, 0xcf, 0x8c, 0xe4, 0xd6, 0xf0, 0x21, 0x95, 0x53, 0xbc, 0xb1, 0x7c,
- 0x34, 0x5b, 0x67, 0x6e, 0x13, 0xe0, 0xd8, 0x88, 0x79, 0x1b, 0xc0, 0x41, 0x84, 0xdf, 0xd5, 0xc3,
- 0x31, 0xd1, 0x93, 0xd6, 0xbc, 0x2d, 0xb7, 0x4f, 0xb2, 0xcf, 0x22, 0x28, 0xe4, 0x35, 0x2a, 0x78,
- 0xf1, 0x65, 0x35, 0x29, 0x85, 0x02, 0xe3, 0x23, 0x1d, 0x24, 0xc3, 0xfc, 0x33, 0x56, 0x4e, 0xc7,
- 0x72, 0x7a, 0x1c, 0xeb, 0xce, 0x73, 0x1f, 0x97, 0x2f, 0xda, 0x23, 0x43, 0x89, 0xf3, 0xe2, 0xc5,
- 0xb2, 0xce, 0xba, 0x14, 0xf7, 0x5c, 0x4b, 0xfb, 0x80, 0x31, 0xc2, 0x97, 0x5e, 0x90, 0x86, 0x7a,
- 0x78, 0xad, 0x37, 0x58, 0x53, 0x2a, 0xc1, 0xda, 0x7a, 0xb1, 0x24, 0x91, 0x49, 0xe4, 0xdf, 0x70,
- 0xb8, 0x19, 0x91, 0xa7, 0x6a, 0x05, 0x95, 0xb6, 0xd5, 0x5a, 0xc5, 0x45, 0x9e, 0x87, 0xbb, 0xcf,
- 0x3b, 0x06, 0xb8, 0x65, 0x21, 0x74, 0x69, 0x02, 0xe7, 0xa4, 0x25, 0xfa, 0x24, 0x22, 0x17, 0xcd,
- 0xfb, 0xb2, 0x1e, 0x9a, 0x18, 0x5b, 0x3d, 0x6e, 0x48, 0x4f, 0xc4, 0x2e, 0xf3, 0x41, 0x73, 0x72,
- 0xfe, 0x38, 0xea, 0x22, 0xb7, 0x96, 0x52, 0xa9, 0x83, 0x9b, 0x26, 0x47, 0x93, 0xab, 0x8c, 0xc9,
- 0x3e, 0x8c, 0x4c, 0xdd, 0x8e, 0xb9, 0x06, 0xc5, 0x2c, 0x70, 0xc7, 0x93, 0x44, 0xc8, 0xe8, 0x76,
- 0xbd, 0x93, 0x65, 0x1f, 0xc5, 0xc8, 0xfa, 0x71, 0x1e, 0x8e, 0x27, 0x2c, 0xfe, 0x6d, 0x44, 0x74,
- 0x7d, 0x27, 0xc3, 0xe0, 0xfc, 0xe7, 0xae, 0x1d, 0xb1, 0x65, 0xc6, 0xf8, 0x29, 0x0e, 0x20, 0xcb,
- 0xea, 0x55, 0xbc, 0x87, 0x4e, 0x24, 0x2d, 0x33, 0x29, 0x4d, 0x28, 0x20, 0xd0, 0x85, 0xf6, 0x60,
- 0x2a, 0xe1, 0x1a, 0x78, 0x77, 0x0b, 0x79, 0x5f, 0x86, 0xa6, 0xc9, 0xf4, 0x07, 0xe6, 0x92, 0xdf,
- 0xa9, 0xfe, 0x33, 0xba, 0x3c, 0x7a, 0x85, 0xeb, 0xb4, 0x58, 0x29, 0x4b, 0xbd, 0x43, 0x3e, 0xdd,
- 0x69, 0x4a, 0x95, 0x45, 0x05, 0x55, 0xd1, 0x87, 0x1b, 0xb3, 0xc8, 0x9f, 0x6a, 0x20, 0x5a, 0x62,
- 0x6c, 0xc0, 0x61, 0xfd, 0xaa, 0x98, 0xbe, 0x40, 0xd0, 0x67, 0x2a, 0xf6, 0x0a, 0xca, 0xa5, 0xd9,
- 0xac, 0x74, 0xc7, 0x02, 0x93, 0xb7, 0xea, 0x2c, 0x7f, 0x8c, 0xcb, 0x22, 0xdd, 0xa9, 0xc1, 0x66,
- 0x2f, 0x6b, 0xee, 0xc0, 0xd8, 0xc6, 0x16, 0x98, 0x4d, 0x72, 0x2b, 0x9d, 0x67, 0x0c, 0x6d, 0x64,
- 0xef, 0xdf, 0x48, 0x3f, 0xe1, 0xe9, 0x42, 0xf4, 0xe2, 0x99, 0xca, 0x49, 0xb0, 0x6f, 0x09, 0xdb,
- 0x25, 0xbc, 0xc5, 0x73, 0x45, 0x9f, 0xc8, 0xd5, 0x18, 0x19, 0x2c, 0x4f, 0xa7, 0x1b, 0x50, 0xd1,
- 0xe5, 0x08, 0x63, 0x8c, 0x7c, 0xb0, 0x9c, 0xb9, 0xb7, 0xf2, 0xcd, 0x9b, 0x70, 0x78, 0x34, 0x6e,
- 0x66, 0x17, 0x4a, 0x4e, 0x37, 0xc1, 0x60, 0x0d, 0x85, 0x0c, 0x2d, 0x24, 0xca, 0xdd, 0x98, 0x6c,
- 0xa6, 0xa3, 0xec, 0xb1, 0x0e, 0xee, 0x34, 0x61, 0x2a, 0xe7, 0xcc, 0xf0, 0x1d, 0xbe, 0xfc, 0xd3,
- 0xa3, 0x29, 0x18, 0x09, 0xa1, 0x23, 0x5b, 0xa6, 0xe1, 0x33, 0x2e, 0x99, 0x7d, 0x54, 0x03, 0x68,
- 0x63, 0x9d, 0xbe, 0xf6, 0x98, 0x0c, 0x0f, 0xca, 0x4e, 0xd8, 0xcf, 0x4d, 0xaa, 0x37, 0x67, 0xd7,
- 0xe0, 0x82, 0x97, 0x34, 0xd3, 0x7d, 0xf3, 0x7e, 0x7c, 0x26, 0x2f, 0xf2, 0x10, 0x92, 0xcb, 0xd5,
- 0x20, 0x36, 0x31, 0xcb, 0xea, 0x52, 0xa7, 0x12, 0xd3, 0xcd, 0xce, 0x26, 0xc7, 0xf1, 0xaf, 0x6a,
- 0x0d, 0x66, 0x69, 0xfa, 0x74, 0x38, 0x36, 0x22, 0x8f, 0x76, 0x30, 0x81, 0x21, 0x47, 0xa4, 0x40,
- 0xcd, 0xd2, 0xcf, 0x05, 0x4d, 0x17, 0x62, 0x4e, 0x20, 0x9d, 0xd1, 0x55, 0xf6, 0x24, 0xc0, 0xff,
- 0x4e, 0xcd, 0xe6, 0xc7, 0x06, 0x66, 0x9e, 0xfa, 0x12, 0x63, 0x31, 0xea, 0x4c, 0x81, 0x6c, 0xfd,
- 0x8e, 0x79, 0x40, 0x38, 0x3f, 0x49, 0xca, 0x96, 0xbd, 0x88, 0xd0, 0x3e, 0x9b, 0xe2, 0x08, 0x42,
- 0x8b, 0xf3, 0xb4, 0x80, 0x90, 0x84, 0xa5, 0x51, 0x76, 0x5c, 0x32, 0x57, 0xfb, 0x08, 0xf7, 0xf9,
- 0x4b, 0x47, 0x12, 0x7f, 0xa9, 0xab, 0xf1, 0x3d, 0xd9, 0xb7, 0xd3, 0x83, 0x2c, 0x6b, 0x93, 0x46,
- 0xc8, 0x58, 0x3b, 0xbd, 0xe2, 0xda, 0x0d, 0x89, 0xeb, 0x49, 0x33, 0x3c, 0x96, 0xce, 0x3f, 0x44,
- 0x08, 0xec, 0x9d, 0x42, 0xdb, 0xf5, 0x59, 0xe5, 0x44, 0xa2, 0xd2, 0xe8, 0x41, 0xad, 0x5b, 0xfb,
- 0xc2, 0x8f, 0x10, 0x0e, 0x7f, 0x83, 0xd3, 0xc4, 0xbe, 0x22, 0x34, 0xee, 0x56, 0xd9, 0x02, 0xf1,
- 0x02, 0x3b, 0xb6, 0xf1, 0x46, 0xac, 0x87, 0xa8, 0x11, 0xc9, 0xd5, 0x3a, 0x81, 0xba, 0x66, 0x4e,
- 0x81, 0x24, 0x9f, 0x33, 0x0d, 0xdd, 0x7b, 0x1c, 0x23, 0x37, 0x35, 0x85, 0x3b, 0x1f, 0xca, 0x4c,
- 0x41, 0x90, 0x39, 0xcc, 0x34, 0xf2, 0x2f, 0x70, 0x8c, 0xdc, 0xd4, 0x51, 0xec, 0x7c, 0xae, 0xf3,
- 0x44, 0x1a, 0xcd, 0x74, 0x9b, 0x3f, 0x40, 0xb7, 0x47, 0x08, 0x36, 0x38, 0x8c, 0x96, 0x51, 0x48,
- 0x84, 0xae, 0x6b, 0x8b, 0xa2, 0x10, 0x14, 0xdb, 0xe8, 0xe3, 0xd7, 0xec, 0x5b, 0xf5, 0x35, 0xf7,
- 0x07, 0xb1, 0x42, 0x49, 0xe9, 0x61, 0xe8, 0x6f, 0xda, 0x1d, 0x37, 0x53, 0xe1, 0x50, 0x99, 0xf5,
- 0xc7, 0x05, 0xe4, 0xb6, 0xd0, 0x4e, 0xbc, 0x03, 0x75, 0xf6, 0xd6, 0x87, 0x36, 0x33, 0xfd, 0x4a,
- 0x50, 0x77, 0x9b, 0xd1, 0x62, 0x8d, 0x3f, 0x2d, 0xed, 0xde, 0x38, 0x5f, 0xcf, 0xb8, 0x2b, 0xe1,
- 0x90, 0xc3, 0x3d, 0x2e, 0x5b, 0xa2, 0x6b, 0x41, 0x42, 0x35, 0xd9, 0x8b, 0x18, 0xdb, 0x4f, 0x5e,
- 0x13, 0xdc, 0x14, 0xec, 0x10, 0xd3, 0x97, 0xf5, 0x70, 0xcb, 0x39, 0x34, 0xa2, 0x7e, 0xe3, 0x5c,
- 0xd3, 0x68, 0xb2, 0x13, 0x29, 0xfc, 0xc3, 0x99, 0xdf, 0x20, 0xd8, 0xe0, 0x75, 0x1d, 0x87, 0xe3,
- 0xd6, 0xe2, 0x46, 0xab, 0x86, 0x31, 0xac, 0x5e, 0x14, 0xf4, 0x3a, 0x89, 0x15, 0xf7, 0x78, 0x58,
- 0x16, 0x56, 0xe0, 0x54, 0xbf, 0x1e, 0xf8, 0x32, 0xbb, 0x1f, 0xdb, 0x5d, 0xc2, 0x94, 0x1c, 0xe7,
- 0x95, 0x49, 0xc9, 0x96, 0xf4, 0x6f, 0x04, 0x86, 0x89, 0xe1, 0x3b, 0xe2, 0x78, 0x31, 0xb0, 0xe5,
- 0x55, 0xfd, 0x6f, 0x69, 0xcd, 0x40, 0x50, 0xea, 0x26, 0x0a, 0xda, 0x36, 0xaf, 0x52, 0xd4, 0x5a,
- 0x9f, 0x9e, 0xe2, 0x25, 0x69, 0x36, 0xda, 0xcb, 0xdc, 0x8a, 0x3c, 0x30, 0xb8, 0x26, 0x8d, 0x50,
- 0x5f, 0x2a, 0x44, 0xda, 0x50, 0x19, 0x8e, 0xa7, 0x73, 0x61, 0xdd, 0xe4, 0x6f, 0x45, 0xe9, 0xef,
- 0xdc, 0x35, 0x6d, 0x18, 0x1b, 0x68, 0x72, 0x13, 0x41, 0x9f, 0x3d, 0x5b, 0xd5, 0xe0, 0x45, 0xed,
- 0x1c, 0x81, 0xcb, 0xe7, 0x22, 0x47, 0x26, 0x7f, 0xee, 0x74, 0xdc, 0x8f, 0x02, 0x83, 0x21, 0x52,
- 0x19, 0x0b, 0x3f, 0x5f, 0x8d, 0x8a, 0x49, 0xb8, 0x25, 0xa0, 0x3e, 0xe6, 0x62, 0x69, 0xde, 0xe9,
- 0xd9, 0xbf, 0x99, 0xa0, 0xb4, 0xa5, 0x1d, 0xd4, 0x8a, 0x4b, 0xdf, 0x32, 0xb5, 0x0a, 0xba, 0x56,
- 0x5a, 0xa0, 0xb0, 0x62, 0xff, 0xd4, 0xe1, 0x60, 0xb8, 0xb5, 0x3f, 0x8d, 0x0f, 0xaf, 0x16, 0x54,
- 0x9a, 0x14, 0x16, 0x9d, 0xc6, 0xfb, 0xb5, 0x0c, 0x17, 0x5e, 0xde, 0x59, 0xd8, 0xcc, 0x72, 0xeb,
- 0xad, 0x88, 0x9c, 0x9b, 0xb0, 0xe1, 0x48, 0x78, 0x96, 0x09, 0x40, 0x3f, 0x7c, 0xf4, 0xf2, 0x41,
- 0x6d, 0x3c, 0x3a, 0x64, 0x89, 0xce, 0x1c, 0x14, 0x39, 0xe2, 0xa1, 0xeb, 0xab, 0x97, 0x96, 0xfe,
- 0xee, 0x23, 0x13, 0xa6, 0xc2, 0xbf, 0xe0, 0xa0, 0x0b, 0x1c, 0x41, 0x54, 0x11, 0x32, 0x3a, 0xfc,
- 0x2e, 0x97, 0xb5, 0x59, 0xfb, 0x90, 0xb4, 0xcc, 0xa4, 0xf7, 0xa0, 0x80, 0xc6, 0x51, 0x5e, 0x43,
- 0x2b, 0x1d, 0x41, 0xe1, 0x54, 0x5d, 0xdb, 0x0b, 0x6f, 0x23, 0x42, 0xe9, 0xa6, 0xbb, 0xa1, 0xf8,
- 0xeb, 0xa9, 0xe7, 0x1e, 0x6d, 0x72, 0x8f, 0x67, 0xc0, 0xc8, 0xa3, 0x3d, 0x71, 0xd8, 0xc5, 0x47,
- 0x68, 0xb6, 0xce, 0xdc, 0x26, 0x03, 0x73, 0xd3, 0xf2, 0x36, 0x43, 0x82, 0xcb, 0x7d, 0x69, 0x45,
- 0xa8, 0x02, 0x68, 0x23, 0x1f, 0x2c, 0x27, 0xbf, 0x5d, 0xdd, 0xa2, 0x56, 0x1c, 0x1e, 0x0d, 0xfa,
- 0x62, 0x61, 0xe5, 0x6f, 0xbb, 0x5a, 0xad, 0x9e, 0xa7, 0x5d, 0x44, 0x50, 0x0b, 0x6a, 0x54, 0xf0,
- 0xa2, 0xd5, 0x43, 0x90, 0x82, 0x75, 0xf9, 0xf2, 0x08, 0xb6, 0xa5, 0x84, 0xdc, 0x09, 0x30, 0x4f,
- 0x21, 0xca, 0x6a, 0x52, 0xc9, 0x04, 0x05, 0x46, 0x3a, 0x48, 0x45, 0x3b, 0x66, 0xac, 0x9c, 0x4d,
- 0xe1, 0x7e, 0xcc, 0xad, 0xf0, 0x2b, 0x51, 0x2a, 0x95, 0xa3, 0xa4, 0xef, 0xb1, 0xcf, 0xf8, 0xf2,
- 0xe4, 0xf4, 0x38, 0x15, 0x5f, 0xe6, 0x3e, 0xed, 0x5e, 0x77, 0x46, 0x86, 0xd1, 0x25, 0x07, 0x49,
- 0x24, 0x40, 0x9e, 0xea, 0x66, 0xc9, 0x6a, 0x81, 0xf1, 0x9c, 0xa7, 0x52, 0x06, 0x46, 0x63, 0xf6,
- 0xa7, 0x5f, 0xb7, 0x28, 0x2d, 0xb8, 0x96, 0x35, 0xc3, 0x62, 0x47, 0xed, 0xbc, 0xe3, 0xcf, 0xf4,
- 0x67, 0xeb, 0x11, 0xd7, 0x14, 0x97, 0xc2, 0x59, 0x6c, 0x89, 0xa6, 0x39, 0x6b, 0x80, 0xab, 0x4b,
- 0xf0, 0x99, 0x6e, 0xb0, 0xa6, 0x54, 0x41, 0x77, 0xf4, 0xa1, 0x48, 0xe1, 0x92, 0x0b, 0x7d, 0xe0,
- 0x30, 0x2d, 0xc8, 0x4f, 0x9f, 0x7b, 0x15, 0x1b, 0x5b, 0x4a, 0xa9, 0x35, 0x45, 0x68, 0x19, 0x5f,
- 0xb3, 0x32, 0xe1, 0x8d, 0xd4, 0x0a, 0xe9, 0xaf, 0x69, 0xb4, 0x49, 0x8a, 0xff, 0xcd, 0xb5, 0x5d,
- 0x73, 0x86, 0x47, 0x72, 0xed, 0x25, 0xbd, 0xc3, 0xc6, 0x5f, 0xa8, 0x5e, 0x28, 0xae, 0xd1, 0xe2,
- 0x76, 0x0c, 0xb3, 0xca, 0x42, 0xe8, 0xd2, 0x04, 0x0d, 0x8b, 0x4a, 0x37, 0x48, 0x44, 0x2e, 0x59,
- 0xb6, 0xb8, 0x15, 0x35, 0x7b, 0xc7, 0x86, 0x68, 0xa2, 0x60, 0xab, 0xe3, 0x9f, 0x27, 0x4a, 0xe6,
- 0x35, 0xa7, 0x3c, 0xf7, 0x30, 0xb6, 0x7a, 0xdc, 0x90, 0x9e, 0x4b, 0x5c, 0x25, 0x82, 0xe6, 0xe4,
- 0xf5, 0x13, 0x9a, 0x08, 0x09, 0x99, 0x2e, 0xb0, 0x3f, 0x75, 0xaa, 0x88, 0xf2, 0xe1, 0x82, 0x5b,
- 0x3f, 0x70, 0x17, 0x44, 0xad, 0xef, 0xa4, 0x91, 0xc5, 0xf5, 0x4c, 0x8e, 0xe5, 0x95, 0xdb, 0x51,
- 0xff, 0xc4, 0xb1, 0xbb, 0x94, 0xc0, 0xf0, 0xfd, 0x6a, 0x1e, 0xad, 0x5a, 0x32, 0xf6, 0xbf, 0xee,
- 0x7c, 0xdb, 0x98, 0x79, 0xdf, 0xb1, 0x0c, 0x49, 0x58, 0xe0, 0x4d, 0xe5, 0x88, 0x53, 0x13, 0xec,
- 0xbc, 0x6f, 0x3e, 0x86, 0xe6, 0x9e, 0x58, 0x25, 0xf7, 0x0b, 0xac, 0x31, 0x5f, 0x30, 0x77, 0x53,
- 0xb9, 0xe5, 0xca, 0x3e, 0x49, 0x53, 0x37, 0xe2, 0x3c, 0xdf, 0x4e, 0x58, 0x3f, 0xda, 0x88, 0xe8,
- 0x79, 0x51, 0x6c, 0xc1, 0x70, 0x7c, 0x63, 0x8e, 0x93, 0x34, 0xaf, 0x8c, 0xe8, 0xb9, 0xec, 0x57,
- 0xfa, 0x4e, 0x45, 0x03, 0x3b, 0x0d, 0x9f, 0x3a, 0xa1, 0xca, 0x4f, 0x33, 0x52, 0x1c, 0x40, 0x55,
- 0x3a, 0xfa, 0xe3, 0xfc, 0x02, 0x22, 0xcb, 0x56, 0x0e, 0x21, 0xae, 0xe7, 0x85, 0x7f, 0x24, 0xea,
- 0x17, 0xaa, 0xbb, 0xcd, 0x9c, 0x48, 0x5a, 0x66, 0x52, 0x9a, 0x50, 0x40, 0x63, 0xc9, 0x2f, 0xc0,
- 0xd7, 0x1e, 0x1d, 0x32, 0xa5, 0x67, 0x0e, 0x0a, 0xfd, 0x71, 0xb1, 0x94, 0xb4, 0xaa, 0x4b, 0x7f,
- 0x54, 0x01, 0x34, 0xf0, 0xee, 0x16, 0xf2, 0xbe, 0xcf, 0x8f, 0x51, 0x2b, 0x0e, 0x0f, 0xe7, 0x7d,
- 0x94, 0xb5, 0x92, 0x0f, 0xd7, 0x39, 0xa6, 0xd2, 0x60, 0x64, 0xb0, 0xff, 0xd9, 0x6c, 0x83, 0xc2,
- 0x91, 0x3f, 0x66, 0xb7, 0x78, 0xf4, 0xc9, 0x15, 0xab, 0xb0, 0x52, 0x96, 0xb9, 0x86, 0x7c, 0x79,
- 0x51, 0x8b, 0xc0, 0x48, 0x41, 0xdb, 0x9d, 0x79, 0x04, 0x5b, 0xb3, 0x42, 0x6e, 0xe5, 0x18, 0xc6,
- 0xd2, 0x94, 0xe9, 0x8a, 0x0a, 0xaa, 0x61, 0xcd, 0x36, 0xa5, 0x53, 0xfd, 0xd4, 0x40, 0xb4, 0xc4,
- 0x12, 0x20, 0x4f, 0x75, 0x33, 0x85, 0x35, 0xa1, 0x99, 0x4e, 0xb2, 0x29, 0x03, 0x23, 0xd0, 0x7b,
- 0xd8, 0x43, 0xc2, 0x39, 0x97, 0xf3, 0xbf, 0x80, 0x63, 0xce, 0x54, 0x2f, 0x14, 0x57, 0x89, 0x71,
- 0x18, 0xf7, 0x64, 0xc6, 0xae, 0xdc, 0xeb, 0xec, 0xcc, 0x25, 0xb5, 0xfb, 0xc3, 0x34, 0xed, 0xce,
- 0x9b, 0xe8, 0x4d, 0x04, 0xe5, 0xad, 0x17, 0x58, 0xfe, 0xdb, 0x55, 0x44, 0x79, 0x91, 0x41, 0xcc,
- 0x5b, 0x5c, 0xeb, 0xfb, 0xdc, 0x82, 0x43, 0x34, 0x51, 0x30, 0xb4, 0x90, 0xae, 0xf2, 0x25, 0x73,
- 0x5e, 0xd6, 0x1f, 0x43, 0x73, 0x4f, 0x2c, 0xf3, 0x9a, 0xe4, 0x56, 0xf9, 0xce, 0x18, 0xda, 0xc8,
- 0x9e, 0x62, 0xb9, 0xbc, 0x4a, 0x60, 0x78, 0x9f, 0x35, 0x0f, 0xb7, 0x2d, 0x19, 0x7b, 0xbe, 0x77,
- 0x1d, 0x7d, 0x90, 0x7e, 0x01, 0x11, 0x84, 0x2b, 0x07, 0xf1, 0x57, 0x92, 0xa3, 0xde, 0x12, 0x75,
- 0xdd, 0xc9, 0x36, 0x81, 0x38, 0x3e, 0xd0, 0x47, 0xa8, 0x1a, 0xb6, 0x46, 0x74, 0xbd, 0x76, 0xca,
- 0x4a, 0xbb, 0x49, 0xe6, 0x8a, 0xfd, 0x53, 0x69, 0x30, 0x32, 0x58, 0x9e, 0x8d, 0x36, 0xa0, 0x61,
- 0x8a, 0x0f, 0xef, 0x19, 0xb3, 0xd2, 0x07, 0x05, 0x9f, 0xd9, 0xb9, 0x4a, 0x5a, 0x55, 0xc4, 0xde,
- 0x09, 0x10, 0xc6, 0xdb, 0xf8, 0xa3, 0xfb, 0xb1, 0xad, 0x27, 0x59, 0xf5, 0xe0, 0xf0, 0x68, 0xdc,
- 0xc9, 0xa4, 0x60, 0x24, 0xc1, 0x8c, 0xaf, 0xdd, 0x02, 0xcc, 0xb8, 0x21, 0x37, 0x93, 0x0c, 0x63,
- 0xcc, 0x2e, 0x94, 0x9c, 0x6e, 0x41, 0xc0, 0x1a, 0xc9, 0x18, 0x5a, 0x48, 0x57, 0x79, 0xf3, 0xd8,
- 0x0c, 0x9a, 0x32, 0x63, 0x57, 0x6e, 0x94, 0x76, 0x66, 0xf3, 0xbb, 0x9c, 0x80, 0x1a, 0x97, 0x67,
- 0x8f, 0x85, 0x1b, 0xa1, 0x1c, 0x1f, 0x68, 0xc2, 0x54, 0x0d, 0x5b, 0x23, 0x3a, 0xbf, 0x3b, 0x65,
- 0x4f, 0x31, 0xbd, 0x5e, 0x25, 0x30, 0x3c, 0xae, 0xfb, 0xe6, 0xba, 0xf7, 0xed, 0xdc, 0x5f, 0xda,
- 0x85, 0x52, 0x30, 0x12, 0x81, 0x46, 0xb6, 0x8f, 0x01, 0x66, 0x5c, 0xf1, 0xfa, 0xa8, 0x06, 0xd0,
- 0x45, 0xe6, 0x96, 0xed, 0xb8, 0x69, 0xe2, 0xe3, 0xae, 0x8d, 0xbd, 0x25, 0x2d, 0xcb, 0x62, 0x6f,
- 0xc6, 0xf9, 0xbf, 0x2f, 0xf3, 0x18, 0x1e, 0x57, 0x9c, 0x73, 0x5d, 0x9a, 0x97, 0x6e, 0xce, 0x6d,
- 0x06, 0x4d, 0x19, 0xd0, 0xca, 0x37, 0x4a, 0x3b, 0x33, 0x98, 0xbc, 0x4e, 0x40, 0x0d, 0xaa, 0xd2,
- 0x03, 0xc7, 0xed, 0x68, 0x65, 0xfa, 0x25, 0xfc, 0xf8, 0x4c, 0x5e, 0x27, 0x20, 0xe7, 0x55, 0x69,
- 0xc3, 0x73, 0x4b, 0x97, 0x5c, 0xd5, 0x71, 0x90, 0x57, 0xa7, 0xbf, 0xf3, 0xf7, 0x84, 0x31, 0xd6,
- 0x40, 0x6c, 0x62, 0x55, 0x17, 0xa4, 0x8d, 0x24, 0x65, 0x59, 0x5f, 0x4c, 0x4d, 0x21, 0x9d, 0xd4,
- 0x80, 0xd8, 0xc4, 0xaa, 0x2e, 0x8b, 0xd9, 0x48, 0xca, 0xb2, 0xbe, 0x98, 0x9a, 0x42, 0xf9, 0x6b,
- 0x1a, 0xcc, 0xd2, 0x37, 0xe8, 0x70, 0x6c, 0x44, 0xdd, 0xec, 0x60, 0xc1, 0x42, 0x8e, 0x8b, 0x80,
- 0xda, 0x78, 0x74, 0xc8, 0xd1, 0x5f, 0x38, 0x28, 0x72, 0x07, 0x81, 0x15, 0x95, 0xed, 0xef, 0x3f,
- 0x59, 0x67, 0x5d, 0x0a, 0x9a, 0x2e, 0xc4, 0x9c, 0x40, 0xf9, 0x61, 0xaa, 0x2f, 0x48, 0x43, 0x3d,
- 0x99, 0xd3, 0xfb, 0xf5, 0xa3, 0x01, 0x90, 0xf0, 0xef, 0x12, 0x80, 0x7e, 0xf8, 0x2b, 0x27, 0x82,
- 0x9c, 0x59, 0x0f, 0x4d, 0x0c, 0xcc, 0xff, 0x37, 0x24, 0xc6, 0x62, 0x17, 0x98, 0xc1, 0xd8, 0x39,
- 0x5c, 0xed, 0xa9, 0xb2, 0x35, 0xe3, 0xab, 0x5b, 0x8b, 0x2d, 0x83, 0xc3, 0x4f, 0xa2, 0xbc, 0x86,
- 0xdf, 0xf2, 0x80, 0x70, 0x7e, 0x92, 0x57, 0xef, 0xb9, 0xd3, 0x63, 0x7c, 0xf5, 0x07, 0x10, 0x84,
- 0x1f, 0x46, 0x26, 0x8f, 0x47, 0xbd, 0x03, 0x83, 0x16, 0x38, 0x82, 0xa8, 0x22, 0x64, 0x74, 0x3b,
- 0xd5, 0x25, 0xab, 0xc3, 0xe3, 0xcb, 0x89, 0xa2, 0xec, 0xb8, 0x64, 0xae, 0x35, 0x10, 0x2d, 0x31,
- 0x15, 0x91, 0x0d, 0x3c, 0xda, 0xe4, 0xdd, 0xce, 0x43, 0x53, 0x85, 0x7a, 0xe2, 0x73, 0x49, 0x8e,
- 0x96, 0x8e, 0x24, 0xfe, 0x91, 0x95, 0x21, 0x7a, 0x71, 0xad, 0x65, 0xc5, 0x58, 0xd6, 0xe5, 0x8c,
- 0x56, 0x3a, 0x82, 0x01, 0xa8, 0xba, 0x75, 0x16, 0xde, 0x46, 0x84, 0x11, 0x8f, 0xb5, 0x81, 0x33,
- 0x53, 0xb0, 0x76, 0xb9, 0x07, 0x77, 0x1a, 0xd1, 0x15, 0x92, 0x66, 0x78, 0xef, 0x5f, 0x7e, 0x88,
- 0x93, 0x04, 0xd0, 0x46, 0x3e, 0x58, 0x4e, 0xbd, 0xba, 0x79, 0x87, 0xac, 0x38, 0x3c, 0x1a, 0x37,
- 0x10, 0x1b, 0xf9, 0x84, 0x75, 0x29, 0xb2, 0x09, 0x88, 0x87, 0x67, 0x13, 0x82, 0x99, 0xb6, 0x35,
- 0xd0, 0xaf, 0x5f, 0x7b, 0x4c, 0x06, 0xe6, 0x65, 0x27, 0x6c, 0x86, 0xc7, 0x55, 0xfa, 0xd2, 0x8a,
- 0x47, 0xdd, 0x20, 0x1c, 0xfe, 0xc5, 0x65, 0x4b, 0xbf, 0x44, 0x68, 0x1f, 0xac, 0x71, 0x04, 0x21,
- 0x87, 0x69, 0x86, 0xe3, 0xc7, 0xea, 0x31, 0x27, 0x10, 0xaf, 0x89, 0xcb, 0x7b, 0x12, 0x60, 0x9e,
- 0x04, 0x76, 0xaf, 0x21, 0x8c, 0x9b, 0xcd, 0x93, 0x22, 0x51, 0x69, 0x74, 0xc1, 0xb7, 0xcc, 0x9c,
- 0xc4, 0xc2, 0x09, 0xde, 0xb5, 0xb4, 0x99, 0xff, 0x8d, 0xba, 0x88, 0xa0, 0x16, 0xd4, 0xa8, 0x23,
- 0xc1, 0x48, 0xfd, 0x66, 0x1a, 0x79, 0xf6, 0x38, 0x46, 0x6e, 0x6a, 0xc9, 0x76, 0x3e, 0x57, 0x98,
- 0x01, 0xfc, 0x5b, 0x99, 0x23, 0x56, 0xa2, 0x54, 0xe9, 0x85, 0x8b, 0x1d, 0xa1, 0x5d, 0x33, 0x27,
- 0x82, 0xe3, 0x72, 0x5b, 0x68, 0x27, 0x5e, 0xe0, 0xdb, 0x7b, 0x6b, 0xa2, 0x1b, 0xf8, 0x9f, 0x25,
- 0x42, 0x57, 0xd4, 0xa4, 0x51, 0x08, 0x0a, 0x8c, 0x74, 0x90, 0x8a, 0x76, 0xcc, 0x9b, 0xfb, 0x9a,
- 0x88, 0x34, 0x59, 0xe8, 0xf5, 0x7e, 0x80, 0xad, 0x8e, 0x10, 0x6c, 0x70, 0xdb, 0xef, 0xa2, 0x90,
- 0x48, 0x80, 0xff, 0x17, 0xcc, 0x51, 0xd4, 0xc1, 0x21, 0xfb, 0x8d, 0xa4, 0x0c, 0x8c, 0xc6, 0x2f,
- 0xcb, 0x9f, 0xd6, 0xd5, 0x87, 0x20, 0x28, 0x75, 0x13, 0x05, 0x6d, 0x1b, 0xb6, 0x29, 0x6a, 0x2d,
- 0x0b, 0x2b, 0x70, 0x2a, 0xbe, 0x0f, 0x7c, 0x19, 0xbc, 0xee, 0x8c, 0xcf, 0x61, 0x4a, 0x0e, 0x92,
- 0x0e, 0xa1, 0x84, 0x92, 0x11, 0xc2, 0x13, 0xde, 0x77, 0x3a, 0x6e, 0xa6, 0x01, 0xa0, 0xf1, 0x29,
- 0xce, 0x15, 0x22, 0x6d, 0x28, 0xed, 0x47, 0xb2, 0xd8, 0xd1, 0x8f, 0x72, 0xd6, 0xc3, 0x95, 0x96,
- 0x4d, 0x0a, 0x0b, 0xaf, 0x63, 0x9c, 0xbb, 0x06, 0xea, 0x2f, 0x6f, 0xcd, 0x6c, 0x66, 0x39, 0x94,
- 0x8d, 0xbe, 0xad, 0x50, 0x5a, 0xb3, 0xef, 0x6a, 0x45, 0xc4, 0x8e, 0x19, 0xbb, 0x05, 0x5d, 0x2b,
- 0xa0, 0xee, 0xf5, 0x61, 0xc4, 0xd9, 0x7e, 0x5a, 0x19, 0x7f, 0x70, 0xbe, 0x5d, 0xb3, 0x56, 0x01,
- 0x60, 0x5a, 0x53, 0x9e, 0xfd, 0xf6, 0x2a, 0x36, 0xb6, 0x94, 0x91, 0x6a, 0x8a, 0xd0, 0x32, 0xbe,
- 0xe3, 0x45, 0x7a, 0x5c, 0xb6, 0x87, 0xd6, 0x82, 0x84, 0x6a, 0x71, 0xd5, 0x30, 0x75, 0x9e, 0xbc,
- 0x23, 0xf1, 0xdc, 0xa3, 0x8f, 0xa8, 0x82, 0xee, 0x2b, 0x81, 0x90, 0x01, 0xe7, 0x16, 0xfa, 0x03,
- 0x26, 0x7b, 0x28, 0x1b, 0x20, 0x65, 0xed, 0x29, 0xe0, 0x55, 0x72, 0x68, 0x87, 0xfc, 0x05, 0xb8,
- 0xe6, 0xcf, 0x8e, 0xe4, 0x19, 0x4a, 0xb9, 0x45, 0x4f, 0xbe, 0x93, 0xbc, 0x50, 0x9f, 0x61, 0x07,
- 0x65, 0xd0, 0xa7, 0x26, 0x52, 0x3b, 0x45, 0xf1, 0x7d, 0x40, 0x73, 0x03, 0xea, 0x3a, 0xcd, 0x05,
- 0xa5, 0x64, 0x01, 0xd9, 0x6b, 0x14, 0x11, 0x9d, 0xd2, 0xab, 0x92, 0xd7, 0x3d, 0x59, 0xa9, 0xba,
- 0x6f, 0x07, 0x8c, 0x95, 0xcf, 0x62, 0x9b, 0xbc, 0x28, 0x2b, 0x74, 0xd1, 0x2a, 0x2d, 0xf0, 0xb0,
- 0xaf, 0xb3, 0x2a, 0x6a, 0xf6, 0x4d, 0xcf, 0xd0, 0x87, 0xc0, 0x95, 0x05, 0xfd, 0x4e, 0x94, 0x0f,
- 0x2c, 0xac, 0x03, 0xa8, 0xbd, 0x3c, 0x33, 0x64, 0xb5, 0x3e, 0x75, 0xba, 0x47, 0xeb, 0x38, 0x0d,
- 0xec, 0x18, 0xa5, 0x57, 0x84, 0x13, 0x67, 0x08, 0x1a, 0xd5, 0x94, 0x6e, 0x90, 0x88, 0x5c, 0xb2,
- 0xe9, 0x92, 0x51, 0xef, 0x2b, 0xde, 0x08, 0xcf, 0xd1, 0x01, 0x76, 0x07, 0xf0, 0x62, 0xa3, 0x09,
- 0x29, 0x26, 0xf7, 0x10, 0x12, 0xf1, 0x5c, 0xa3, 0x7e, 0xea, 0x97, 0xd3, 0x27, 0x01, 0xc7, 0xb6,
- 0xaa, 0x39, 0xde, 0xd2, 0x59, 0x80, 0xa0, 0x17, 0x4c, 0x14, 0x77, 0x6c, 0x9d, 0xa4, 0x6b, 0xb4,
- 0x6a, 0x8d, 0x78, 0x2d, 0x60, 0xaf, 0xf4, 0x7b, 0xe3, 0xff, 0x96, 0xb8, 0x4a, 0xc7, 0x0f, 0x0b,
- 0xfd, 0xff, 0x07, 0x4a, 0xd2, 0x6c, 0x77, 0x55, 0x7b, 0xd7, 0x78, 0x60, 0xb3, 0x4c, 0xd9, 0xa0,
- 0x3d, 0x4b, 0xa1, 0xb5, 0xeb, 0x43, 0x23, 0x39, 0xd4, 0x3c, 0x99, 0xb4, 0x64, 0x2f, 0xbd, 0x1f,
- 0xbe, 0x54, 0x88, 0x77, 0xa0, 0x32, 0xdf, 0x8d, 0xe6, 0xc2, 0x79, 0x0b, 0xde, 0x8a, 0x11, 0x1d,
- 0x7e, 0xe0, 0x2e, 0x88, 0x99, 0x1d, 0x8b, 0xe1, 0x49, 0x29, 0x98, 0xdf, 0x09, 0xe9, 0x75, 0xa2,
- 0x7b, 0x6a, 0xda, 0x30, 0x36, 0xd0, 0xe4, 0x26, 0x82, 0xfd, 0x7a, 0xb6, 0x69, 0x03, 0x8a, 0x19,
- 0xbb, 0xde, 0x7c, 0xcf, 0x0f, 0xff, 0xb0, 0x4a, 0x2d, 0x16, 0x9b, 0x62, 0xbe, 0x60, 0xee, 0xa6,
- 0x38, 0xc1, 0x55, 0x0d, 0x44, 0x8e, 0x4c, 0xfe, 0x1f, 0xe8, 0x7b, 0xdd, 0x04, 0xc5, 0x42, 0xa4,
- 0xf8, 0x75, 0xf3, 0xf2, 0x7d, 0xa1, 0x18, 0x92, 0xb0, 0x03, 0x9a, 0x09, 0xd3, 0xa6, 0x26, 0x1b,
- 0x32, 0x16, 0x7e, 0xbe, 0xd9, 0xd7, 0x92, 0xb3, 0x4a, 0x83, 0x7c, 0x0f, 0xc4, 0xd2, 0x7f, 0x11,
- 0xf2, 0xa2, 0xd8, 0x41, 0xe0, 0xf8, 0xc6, 0xdf, 0xe5, 0x68, 0x9d, 0xdb, 0x13, 0xb1, 0x1b, 0xae,
- 0x71, 0xbd, 0xf1, 0x83, 0xab, 0x89, 0x3a, 0x6b, 0xd7, 0x96, 0x7d, 0x64, 0xa9, 0x14, 0xb7, 0xac,
- 0xb1, 0x09, 0x57, 0x7c, 0x92, 0xa6, 0x6e, 0x07, 0x78, 0x7d, 0x9c, 0xb0, 0x7e, 0x77, 0xd3, 0x13,
- 0xb4, 0x83, 0xa3, 0xc4, 0x3d, 0x6b, 0x01, 0xc0, 0xb3, 0xa9, 0x7e, 0xd9, 0x1e, 0x9d, 0x2c, 0xa8,
- 0x74, 0x37, 0x05, 0x3b, 0x04, 0x44, 0x55, 0xac, 0x1c, 0x42, 0x9f, 0x0d, 0xc9, 0xfe, 0x48, 0x17,
- 0xf7, 0x28, 0x2c, 0xf9, 0x4f, 0x35, 0xa9, 0x18, 0x2e, 0xbc, 0x7f, 0xb2, 0x73, 0x5b, 0xe4, 0x15,
- 0x37, 0x9c, 0x8a, 0x06, 0x76, 0x1a, 0xfd, 0x74, 0x81, 0x57, 0x9e, 0x66, 0xa4, 0x38, 0x80, 0xaa,
- },
- { /* 7 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x54, 0x30, 0x7b, 0xef, 0x84, 0x08, 0x09, 0xd4, 0xd5, 0xa3, 0x8d, 0xa6, 0xa1, 0xc1, 0x0a,
- 0x02, 0xa8, 0x60, 0xf6, 0x1d, 0xcb, 0x10, 0x12, 0x6b, 0x69, 0x85, 0xd9, 0x8f, 0x81, 0x41, 0x14,
- 0x03, 0xfc, 0x50, 0x8d, 0xf2, 0x4f, 0x18, 0x1b, 0xbf, 0xbc, 0x26, 0x54, 0x29, 0x20, 0x80, 0x1e,
- 0x04, 0x93, 0xc0, 0x2f, 0x3a, 0x55, 0x20, 0x24, 0xd6, 0xd2, 0xc9, 0x71, 0xdd, 0xc1, 0x82, 0x28,
- 0x05, 0xc7, 0xf0, 0x54, 0xd5, 0xd1, 0x28, 0x2d, 0x02, 0x07, 0x6a, 0xfc, 0x7b, 0x60, 0x43, 0x22,
- 0x06, 0x3b, 0xa0, 0xd9, 0x27, 0x9e, 0x30, 0x36, 0xbd, 0xbb, 0x4c, 0xa8, 0x52, 0x40, 0xc3, 0x3c,
- 0x07, 0x6f, 0x90, 0xa2, 0xc8, 0x1a, 0x38, 0x3f, 0x69, 0x6e, 0xef, 0x25, 0xf4, 0xe1, 0x02, 0x36,
- 0x08, 0xe5, 0x43, 0x5e, 0x74, 0xaa, 0x40, 0x48, 0x6f, 0x67, 0x51, 0xe2, 0x79, 0x41, 0xc7, 0x50,
- 0x09, 0xb1, 0x73, 0x25, 0x9b, 0x2e, 0x48, 0x41, 0xbb, 0xb2, 0xf2, 0x6f, 0xdf, 0xe0, 0x06, 0x5a,
- 0x0a, 0x4d, 0x23, 0xa8, 0x69, 0x61, 0x50, 0x5a, 0x04, 0x0e, 0xd4, 0x3b, 0xf6, 0xc0, 0x86, 0x44,
- 0x0b, 0x19, 0x13, 0xd3, 0x86, 0xe5, 0x58, 0x53, 0xd0, 0xdb, 0x77, 0xb6, 0x50, 0x61, 0x47, 0x4e,
- 0x0c, 0x76, 0x83, 0x71, 0x4e, 0xff, 0x60, 0x6c, 0xb9, 0xb5, 0x98, 0x93, 0xa4, 0x80, 0x45, 0x78,
- 0x0d, 0x22, 0xb3, 0x0a, 0xa1, 0x7b, 0x68, 0x65, 0x6d, 0x60, 0x3b, 0x1e, 0x02, 0x21, 0x84, 0x72,
- 0x0e, 0xde, 0xe3, 0x87, 0x53, 0x34, 0x70, 0x7e, 0xd2, 0xdc, 0x1d, 0x4a, 0x2b, 0x01, 0x04, 0x6c,
- 0x0f, 0x8a, 0xd3, 0xfc, 0xbc, 0xb0, 0x78, 0x77, 0x06, 0x09, 0xbe, 0xc7, 0x8d, 0xa0, 0xc5, 0x66,
- 0x10, 0x09, 0x86, 0xbc, 0xe8, 0x97, 0x80, 0x90, 0xde, 0xce, 0xa2, 0x07, 0xf2, 0x82, 0x4d, 0xa0,
- 0x11, 0x5d, 0xb6, 0xc7, 0x07, 0x13, 0x88, 0x99, 0x0a, 0x1b, 0x01, 0x8a, 0x54, 0x23, 0x8c, 0xaa,
- 0x12, 0xa1, 0xe6, 0x4a, 0xf5, 0x5c, 0x90, 0x82, 0xb5, 0xa7, 0x27, 0xde, 0x7d, 0x03, 0x0c, 0xb4,
- 0x13, 0xf5, 0xd6, 0x31, 0x1a, 0xd8, 0x98, 0x8b, 0x61, 0x72, 0x84, 0x53, 0xdb, 0xa2, 0xcd, 0xbe,
- 0x14, 0x9a, 0x46, 0x93, 0xd2, 0xc2, 0xa0, 0xb4, 0x08, 0x1c, 0x6b, 0x76, 0x2f, 0x43, 0xcf, 0x88,
- 0x15, 0xce, 0x76, 0xe8, 0x3d, 0x46, 0xa8, 0xbd, 0xdc, 0xc9, 0xc8, 0xfb, 0x89, 0xe2, 0x0e, 0x82,
- 0x16, 0x32, 0x26, 0x65, 0xcf, 0x09, 0xb0, 0xa6, 0x63, 0x75, 0xee, 0xaf, 0xa0, 0xc2, 0x8e, 0x9c,
- 0x17, 0x66, 0x16, 0x1e, 0x20, 0x8d, 0xb8, 0xaf, 0xb7, 0xa0, 0x4d, 0x22, 0x06, 0x63, 0x4f, 0x96,
- 0x18, 0xec, 0xc5, 0xe2, 0x9c, 0x3d, 0xc0, 0xd8, 0xb1, 0xa9, 0xf3, 0xe5, 0x8b, 0xc3, 0x8a, 0xf0,
- 0x19, 0xb8, 0xf5, 0x99, 0x73, 0xb9, 0xc8, 0xd1, 0x65, 0x7c, 0x50, 0x68, 0x2d, 0x62, 0x4b, 0xfa,
- 0x1a, 0x44, 0xa5, 0x14, 0x81, 0xf6, 0xd0, 0xca, 0xda, 0xc0, 0x76, 0x3c, 0x04, 0x42, 0xcb, 0xe4,
- 0x1b, 0x10, 0x95, 0x6f, 0x6e, 0x72, 0xd8, 0xc3, 0x0e, 0x15, 0xd5, 0xb1, 0xa2, 0xe3, 0x0a, 0xee,
- 0x1c, 0x7f, 0x05, 0xcd, 0xa6, 0x68, 0xe0, 0xfc, 0x67, 0x7b, 0x3a, 0x94, 0x56, 0x02, 0x08, 0xd8,
- 0x1d, 0x2b, 0x35, 0xb6, 0x49, 0xec, 0xe8, 0xf5, 0xb3, 0xae, 0x99, 0x19, 0xf0, 0xa3, 0xc9, 0xd2,
- 0x1e, 0xd7, 0x65, 0x3b, 0xbb, 0xa3, 0xf0, 0xee, 0x0c, 0x12, 0xbf, 0x4d, 0xd9, 0x83, 0x49, 0xcc,
- 0x1f, 0x83, 0x55, 0x40, 0x54, 0x27, 0xf8, 0xe7, 0xd8, 0xc7, 0x1c, 0xc0, 0x7f, 0x22, 0x88, 0xc6,
- 0x20, 0x12, 0xcf, 0xbb, 0x13, 0xed, 0xc3, 0xe3, 0x7f, 0x5f, 0x87, 0x0e, 0x27, 0xc7, 0x9a, 0x83,
- 0x21, 0x46, 0xff, 0xc0, 0xfc, 0x69, 0xcb, 0xea, 0xab, 0x8a, 0x24, 0x83, 0x81, 0x66, 0x5b, 0x89,
- 0x22, 0xba, 0xaf, 0x4d, 0x0e, 0x26, 0xd3, 0xf1, 0x14, 0x36, 0x02, 0xd7, 0xa8, 0x46, 0xdb, 0x97,
- 0x23, 0xee, 0x9f, 0x36, 0xe1, 0xa2, 0xdb, 0xf8, 0xc0, 0xe3, 0xa1, 0x5a, 0x0e, 0xe7, 0x1a, 0x9d,
- 0x24, 0x81, 0x0f, 0x94, 0x29, 0xb8, 0xe3, 0xc7, 0xa9, 0x8d, 0x4e, 0x7f, 0xfa, 0x06, 0x18, 0xab,
- 0x25, 0xd5, 0x3f, 0xef, 0xc6, 0x3c, 0xeb, 0xce, 0x7d, 0x58, 0xed, 0xf2, 0x5c, 0xa7, 0xd9, 0xa1,
- 0x26, 0x29, 0x6f, 0x62, 0x34, 0x73, 0xf3, 0xd5, 0xc2, 0xe4, 0xcb, 0xa6, 0x75, 0x87, 0x59, 0xbf,
- 0x27, 0x7d, 0x5f, 0x19, 0xdb, 0xf7, 0xfb, 0xdc, 0x16, 0x31, 0x68, 0x2b, 0xd3, 0x26, 0x98, 0xb5,
- 0x28, 0xf7, 0x8c, 0xe5, 0x67, 0x47, 0x83, 0xab, 0x10, 0x38, 0xd6, 0xec, 0x5e, 0x86, 0x5d, 0xd3,
- 0x29, 0xa3, 0xbc, 0x9e, 0x88, 0xc3, 0x8b, 0xa2, 0xc4, 0xed, 0x75, 0x61, 0xf8, 0x27, 0x9c, 0xd9,
- 0x2a, 0x5f, 0xec, 0x13, 0x7a, 0x8c, 0x93, 0xb9, 0x7b, 0x51, 0x53, 0x35, 0xd1, 0x07, 0x1c, 0xc7,
- 0x2b, 0x0b, 0xdc, 0x68, 0x95, 0x08, 0x9b, 0xb0, 0xaf, 0x84, 0xf0, 0xb8, 0x77, 0xa6, 0xdd, 0xcd,
- 0x2c, 0x64, 0x4c, 0xca, 0x5d, 0x12, 0xa3, 0x8f, 0xc6, 0xea, 0x1f, 0x9d, 0x83, 0x47, 0xdf, 0xfb,
- 0x2d, 0x30, 0x7c, 0xb1, 0xb2, 0x96, 0xab, 0x86, 0x12, 0x3f, 0xbc, 0x10, 0x25, 0xe6, 0x1e, 0xf1,
- 0x2e, 0xcc, 0x2c, 0x3c, 0x40, 0xd9, 0xb3, 0x9d, 0xad, 0x83, 0x9a, 0x44, 0x0c, 0xc6, 0x9e, 0xef,
- 0x2f, 0x98, 0x1c, 0x47, 0xaf, 0x5d, 0xbb, 0x94, 0x79, 0x56, 0x39, 0xc9, 0xaa, 0x67, 0x5f, 0xe5,
- 0x30, 0x1b, 0x49, 0x07, 0xfb, 0x7a, 0x43, 0x73, 0xa1, 0x91, 0x25, 0x09, 0xd5, 0x45, 0xd7, 0x23,
- 0x31, 0x4f, 0x79, 0x7c, 0x14, 0xfe, 0x4b, 0x7a, 0x75, 0x44, 0x86, 0x84, 0x73, 0xe4, 0x16, 0x29,
- 0x32, 0xb3, 0x29, 0xf1, 0xe6, 0xb1, 0x53, 0x61, 0xca, 0xf8, 0xa0, 0xd0, 0x5a, 0xc4, 0x96, 0x37,
- 0x33, 0xe7, 0x19, 0x8a, 0x09, 0x35, 0x5b, 0x68, 0x1e, 0x2d, 0x03, 0x5d, 0xfc, 0x65, 0x57, 0x3d,
- 0x34, 0x88, 0x89, 0x28, 0xc1, 0x2f, 0x63, 0x57, 0x77, 0x43, 0xec, 0x78, 0x08, 0x84, 0x55, 0x0b,
- 0x35, 0xdc, 0xb9, 0x53, 0x2e, 0xab, 0x6b, 0x5e, 0xa3, 0x96, 0x4f, 0xf5, 0xae, 0x25, 0x94, 0x01,
- 0x36, 0x20, 0xe9, 0xde, 0xdc, 0xe4, 0x73, 0x45, 0x1c, 0x2a, 0x69, 0xa1, 0x87, 0x05, 0x14, 0x1f,
- 0x37, 0x74, 0xd9, 0xa5, 0x33, 0x60, 0x7b, 0x4c, 0xc8, 0xff, 0xca, 0x2c, 0x21, 0xa4, 0xd5, 0x15,
- 0x38, 0xfe, 0x0a, 0x59, 0x8f, 0xd0, 0x03, 0x3b, 0xce, 0xf6, 0x74, 0xeb, 0xac, 0x04, 0x10, 0x73,
- 0x39, 0xaa, 0x3a, 0x22, 0x60, 0x54, 0x0b, 0x32, 0x1a, 0x23, 0xd7, 0x66, 0x0a, 0xa5, 0xd1, 0x79,
- 0x3a, 0x56, 0x6a, 0xaf, 0x92, 0x1b, 0x13, 0x29, 0xa5, 0x9f, 0xf1, 0x32, 0x23, 0x85, 0x51, 0x67,
- 0x3b, 0x02, 0x5a, 0xd4, 0x7d, 0x9f, 0x1b, 0x20, 0x71, 0x4a, 0x52, 0xbf, 0x85, 0x24, 0x90, 0x6d,
- 0x3c, 0x6d, 0xca, 0x76, 0xb5, 0x85, 0x23, 0x1f, 0x18, 0x24, 0xbd, 0x9a, 0x71, 0xc5, 0x92, 0x5b,
- 0x3d, 0x39, 0xfa, 0x0d, 0x5a, 0x01, 0x2b, 0x16, 0xcc, 0xf1, 0x1e, 0x17, 0xd7, 0x64, 0x53, 0x51,
- 0x3e, 0xc5, 0xaa, 0x80, 0xa8, 0x4e, 0x33, 0x0d, 0x73, 0x4d, 0x38, 0x43, 0xfe, 0x44, 0xd3, 0x4f,
- 0x3f, 0x91, 0x9a, 0xfb, 0x47, 0xca, 0x3b, 0x04, 0xa7, 0x98, 0x9b, 0xce, 0x58, 0xe5, 0x12, 0x45,
- 0x40, 0x24, 0x5d, 0xb5, 0x26, 0x19, 0x45, 0x05, 0xfe, 0xbe, 0xcd, 0x1c, 0x4e, 0x4d, 0xf7, 0xc5,
- 0x41, 0x70, 0x6d, 0xce, 0xc9, 0x9d, 0x4d, 0x0c, 0x2a, 0x6b, 0x6e, 0x91, 0xe8, 0xec, 0x36, 0xcf,
- 0x42, 0x8c, 0x3d, 0x43, 0x3b, 0xd2, 0x55, 0x17, 0x95, 0xd7, 0x48, 0xc5, 0xc1, 0xcc, 0xb6, 0xd1,
- 0x43, 0xd8, 0x0d, 0x38, 0xd4, 0x56, 0x5d, 0x1e, 0x41, 0x02, 0xeb, 0x48, 0x67, 0x6d, 0x77, 0xdb,
- 0x44, 0xb7, 0x9d, 0x9a, 0x1c, 0x4c, 0x65, 0x21, 0x28, 0x6c, 0x04, 0x6d, 0x93, 0x8c, 0x75, 0xed,
- 0x45, 0xe3, 0xad, 0xe1, 0xf3, 0xc8, 0x6d, 0x28, 0xfc, 0xb9, 0xa7, 0xe0, 0x35, 0x2d, 0xb4, 0xe7,
- 0x46, 0x1f, 0xfd, 0x6c, 0x01, 0x87, 0x75, 0x33, 0x43, 0x05, 0x81, 0xb4, 0x1c, 0x0d, 0x34, 0xf9,
- 0x47, 0x4b, 0xcd, 0x17, 0xee, 0x03, 0x7d, 0x3a, 0x97, 0xd0, 0x22, 0x39, 0xba, 0xac, 0xf5, 0xf3,
- 0x48, 0xc1, 0x1e, 0xeb, 0x52, 0xb3, 0x05, 0x4d, 0x91, 0xd9, 0x9c, 0xfe, 0x37, 0x0c, 0x30, 0x95,
- 0x49, 0x95, 0x2e, 0x90, 0xbd, 0x37, 0x0d, 0x44, 0x45, 0x0c, 0x3f, 0x73, 0x91, 0xad, 0xf1, 0x9f,
- 0x4a, 0x69, 0x7e, 0x1d, 0x4f, 0x78, 0x15, 0x5f, 0xfa, 0xb0, 0x19, 0x27, 0xb8, 0x8d, 0x71, 0x81,
- 0x4b, 0x3d, 0x4e, 0x66, 0xa0, 0xfc, 0x1d, 0x56, 0x2e, 0x65, 0xba, 0xaa, 0x1e, 0x2c, 0xb0, 0x8b,
- 0x4c, 0x52, 0xde, 0xc4, 0x68, 0xe6, 0x25, 0x69, 0x47, 0x0b, 0x55, 0x8f, 0xea, 0xcd, 0xb2, 0xbd,
- 0x4d, 0x06, 0xee, 0xbf, 0x87, 0x62, 0x2d, 0x60, 0x93, 0xde, 0xf6, 0x02, 0x4c, 0x6c, 0x73, 0xb7,
- 0x4e, 0xfa, 0xbe, 0x32, 0x75, 0x2d, 0x35, 0x7b, 0x2c, 0x62, 0xd0, 0x56, 0x65, 0x4c, 0xf3, 0xa9,
- 0x4f, 0xae, 0x8e, 0x49, 0x9a, 0xa9, 0x3d, 0x72, 0xf8, 0xb7, 0x73, 0xdb, 0xc3, 0xed, 0x32, 0xa3,
- 0x50, 0x2d, 0xdb, 0x09, 0xce, 0x8e, 0xc5, 0x95, 0x20, 0x70, 0x6f, 0x1b, 0xbc, 0xcf, 0xba, 0x65,
- 0x51, 0x79, 0xeb, 0x72, 0x21, 0x0a, 0xcd, 0x9c, 0xf4, 0xa5, 0xcc, 0x96, 0x1a, 0x6e, 0x7b, 0x6f,
- 0x52, 0x85, 0xbb, 0xff, 0xd3, 0x45, 0xd5, 0x87, 0x4b, 0x19, 0xea, 0xc2, 0x33, 0x4e, 0xfb, 0x71,
- 0x53, 0xd1, 0x8b, 0x84, 0x3c, 0xc1, 0xdd, 0x8e, 0x9f, 0xcc, 0x49, 0x4f, 0x95, 0xef, 0x3a, 0x7b,
- 0x54, 0xbe, 0x1b, 0x26, 0xf4, 0xdb, 0xe5, 0xb1, 0xf6, 0xa2, 0xa6, 0x6a, 0x61, 0x0e, 0x38, 0x4d,
- 0x55, 0xea, 0x2b, 0x5d, 0x1b, 0x5f, 0xed, 0xb8, 0x22, 0x77, 0x05, 0xe7, 0xc7, 0xaf, 0xf9, 0x47,
- 0x56, 0x16, 0x7b, 0xd0, 0xe9, 0x10, 0xf5, 0xa3, 0x9d, 0xcb, 0x23, 0xb3, 0xee, 0x8f, 0x79, 0x59,
- 0x57, 0x42, 0x4b, 0xab, 0x06, 0x94, 0xfd, 0xaa, 0x49, 0x1e, 0x80, 0x3e, 0x48, 0x2e, 0xb8, 0x53,
- 0x58, 0xc8, 0x98, 0x57, 0xba, 0x24, 0x85, 0xdd, 0x4f, 0x17, 0x3e, 0xf9, 0xc5, 0x8e, 0x7d, 0x35,
- 0x59, 0x9c, 0xa8, 0x2c, 0x55, 0xa0, 0x8d, 0xd4, 0x9b, 0xc2, 0x9d, 0x74, 0x63, 0x2f, 0xbc, 0x3f,
- 0x5a, 0x60, 0xf8, 0xa1, 0xa7, 0xef, 0x95, 0xcf, 0x24, 0x7e, 0xbb, 0x20, 0x4a, 0x0f, 0x3c, 0x21,
- 0x5b, 0x34, 0xc8, 0xda, 0x48, 0x6b, 0x9d, 0xc6, 0xf0, 0xab, 0x18, 0xad, 0xec, 0xae, 0xfd, 0x2b,
- 0x5c, 0x5b, 0x58, 0x78, 0x80, 0x71, 0xa5, 0xf9, 0x99, 0xc5, 0xf7, 0x88, 0x18, 0x4f, 0xff, 0x1d,
- 0x5d, 0x0f, 0x68, 0x03, 0x6f, 0xf5, 0xad, 0xf0, 0x4d, 0x10, 0x54, 0x05, 0xbe, 0xee, 0x3e, 0x17,
- 0x5e, 0xf3, 0x38, 0x8e, 0x9d, 0xba, 0xb5, 0xeb, 0xf2, 0xac, 0x72, 0x51, 0x97, 0xce, 0xbe, 0x09,
- 0x5f, 0xa7, 0x08, 0xf5, 0x72, 0x3e, 0xbd, 0xe2, 0x26, 0x79, 0xd1, 0xdc, 0x31, 0x6f, 0x7f, 0x03,
- 0x60, 0x36, 0x92, 0x0e, 0x35, 0xf4, 0x86, 0xe6, 0x81, 0xe1, 0x4a, 0x12, 0x69, 0x8a, 0x6d, 0x46,
- 0x61, 0x62, 0xa2, 0x75, 0xda, 0x70, 0x8e, 0xef, 0x55, 0x34, 0xe9, 0x9f, 0xcf, 0x2b, 0xac, 0x4c,
- 0x62, 0x9e, 0xf2, 0xf8, 0x28, 0x3f, 0x96, 0xf4, 0xea, 0x88, 0xcf, 0xcb, 0xe6, 0x0b, 0x2c, 0x52,
- 0x63, 0xca, 0xc2, 0x83, 0xc7, 0xbb, 0x9e, 0xfd, 0x3e, 0x5d, 0x6c, 0x46, 0x40, 0xaa, 0xed, 0x58,
- 0x64, 0xa5, 0x52, 0x21, 0x0f, 0xa1, 0xa6, 0xc2, 0x57, 0x33, 0x83, 0x63, 0xb4, 0x4b, 0xef, 0x6e,
- 0x65, 0xf1, 0x62, 0x5a, 0xe0, 0x25, 0xae, 0xcb, 0x83, 0xe6, 0x20, 0xee, 0x12, 0xea, 0x2e, 0x64,
- 0x66, 0x0d, 0x32, 0xd7, 0x12, 0x6a, 0xb6, 0xd0, 0x3c, 0x5a, 0x06, 0xba, 0x3b, 0xca, 0xae, 0x7a,
- 0x67, 0x59, 0x02, 0xac, 0xfd, 0xee, 0xbe, 0xd9, 0xe8, 0x8f, 0xa5, 0x37, 0x9d, 0x6b, 0x6f, 0x70,
- 0x68, 0xd3, 0xd1, 0x50, 0x41, 0x5e, 0xc6, 0xae, 0xee, 0x86, 0x1b, 0xf0, 0x10, 0xcb, 0xaa, 0x16,
- 0x69, 0x87, 0xe1, 0x2b, 0xae, 0xda, 0xce, 0xa7, 0x3a, 0x53, 0xb8, 0x7d, 0xb6, 0x6a, 0x6b, 0x1c,
- 0x6a, 0x7b, 0xb1, 0xa6, 0x5c, 0x95, 0xd6, 0xbc, 0x85, 0xef, 0x9e, 0x29, 0x9f, 0x4a, 0xeb, 0x02,
- 0x6b, 0x2f, 0x81, 0xdd, 0xb3, 0x11, 0xde, 0xb5, 0x51, 0x3a, 0x3d, 0xa4, 0x39, 0xeb, 0x2a, 0x08,
- 0x6c, 0x40, 0x11, 0x7f, 0x7b, 0x0b, 0xe6, 0x8a, 0x38, 0x54, 0xd2, 0x81, 0xcd, 0x0a, 0x28, 0x3e,
- 0x6d, 0x14, 0x21, 0x04, 0x94, 0x8f, 0xee, 0x83, 0xec, 0x81, 0x71, 0x0c, 0x6b, 0xab, 0xe9, 0x34,
- 0x6e, 0xe8, 0x71, 0x89, 0x66, 0xc0, 0xf6, 0x98, 0x53, 0x3d, 0x57, 0x58, 0x42, 0x8b, 0x69, 0x2a,
- 0x6f, 0xbc, 0x41, 0xf2, 0x89, 0x44, 0xfe, 0x91, 0x87, 0xe8, 0xf4, 0xd5, 0xe4, 0x2a, 0xa8, 0x20,
- 0x70, 0x3f, 0x14, 0xb2, 0xdd, 0x63, 0x06, 0x76, 0x5f, 0x2f, 0xe8, 0x15, 0x9b, 0x08, 0x20, 0xe6,
- 0x71, 0x6b, 0x24, 0xc9, 0x32, 0xe7, 0x0e, 0x7f, 0x8b, 0xfa, 0x4b, 0x98, 0x3d, 0xa9, 0xe1, 0xec,
- 0x72, 0x97, 0x74, 0x44, 0xc0, 0xa8, 0x16, 0x64, 0x34, 0x46, 0x6d, 0xcc, 0x14, 0x89, 0x61, 0xf2,
- 0x73, 0xc3, 0x44, 0x3f, 0x2f, 0x2c, 0x1e, 0x6d, 0xe0, 0x93, 0xce, 0x41, 0xb2, 0x28, 0xa0, 0xf8,
- 0x74, 0xac, 0xd4, 0x9d, 0xe7, 0x36, 0x26, 0x52, 0x89, 0xfd, 0x21, 0x64, 0x46, 0xc9, 0xa2, 0xce,
- 0x75, 0xf8, 0xe4, 0xe6, 0x08, 0xb2, 0x2e, 0x5b, 0x5d, 0x28, 0x82, 0xe9, 0xe0, 0x68, 0x63, 0xc4,
- 0x76, 0x04, 0xb4, 0x6b, 0xfa, 0xfd, 0x36, 0x40, 0xe2, 0x94, 0xa4, 0xbd, 0xc9, 0x48, 0xe3, 0xda,
- 0x77, 0x50, 0x84, 0x10, 0x15, 0x79, 0x3e, 0x49, 0x36, 0x41, 0x07, 0x30, 0x6f, 0xe9, 0x22, 0xd0,
- 0x78, 0xda, 0x57, 0xec, 0xa9, 0xc9, 0x46, 0x3e, 0x30, 0x48, 0xb9, 0xf7, 0xe2, 0x49, 0xe7, 0xb6,
- 0x79, 0x8e, 0x67, 0x97, 0x46, 0x4d, 0x4e, 0x37, 0xe4, 0x9d, 0x1a, 0x7a, 0x44, 0xe8, 0x26, 0xbc,
- 0x7a, 0x72, 0x37, 0x1a, 0xb4, 0x02, 0x56, 0x2c, 0x5b, 0x21, 0x3c, 0x2e, 0x6d, 0xc8, 0xa6, 0xa2,
- 0x7b, 0x26, 0x07, 0x61, 0x5b, 0x86, 0x5e, 0x25, 0x8f, 0xf4, 0x9f, 0xa3, 0xcb, 0x69, 0x67, 0xa8,
- 0x7c, 0x49, 0x97, 0xc3, 0x93, 0x9c, 0x66, 0x1a, 0xe6, 0x9a, 0x70, 0x86, 0x3f, 0x88, 0x65, 0x9e,
- 0x7d, 0x1d, 0xa7, 0xb8, 0x7c, 0x18, 0x6e, 0x13, 0x32, 0x4f, 0xd3, 0x0b, 0x99, 0x29, 0xa4, 0x94,
- 0x7e, 0xe1, 0xf7, 0x35, 0x8e, 0x57, 0x76, 0x08, 0x8d, 0xf3, 0xf5, 0x5f, 0xb0, 0x09, 0x24, 0x8a,
- 0x7f, 0xb5, 0xc7, 0x4e, 0x61, 0xd3, 0x7e, 0x01, 0x59, 0x26, 0x56, 0xd2, 0x16, 0xa8, 0xe5, 0x80,
- 0x80, 0x48, 0xba, 0xa9, 0x4c, 0x32, 0x8a, 0x0a, 0x3f, 0xbf, 0x59, 0x38, 0x9c, 0x9a, 0x2d, 0x49,
- 0x81, 0x1c, 0x8a, 0xd2, 0xa3, 0xb6, 0x82, 0x03, 0xeb, 0x6a, 0xfa, 0xb5, 0x3a, 0x3b, 0xec, 0x43,
- 0x82, 0xe0, 0xda, 0x5f, 0x51, 0xf9, 0x9a, 0x18, 0x54, 0xd6, 0xdc, 0xe1, 0x13, 0x1b, 0x6c, 0x5d,
- 0x83, 0xb4, 0xea, 0x24, 0xbe, 0x7d, 0x92, 0x11, 0x80, 0x03, 0x7f, 0x6c, 0xb5, 0xba, 0xad, 0x57,
- 0x84, 0xdb, 0x7a, 0x86, 0x76, 0x67, 0xaa, 0x2e, 0xe9, 0x6d, 0x90, 0x49, 0x41, 0x5b, 0xaf, 0x61,
- 0x85, 0x8f, 0x4a, 0xfd, 0x99, 0xe3, 0xa2, 0x27, 0x3d, 0xb8, 0x33, 0xc4, 0xe7, 0xfa, 0x6e, 0x6b,
- 0x86, 0x73, 0x1a, 0x70, 0x6b, 0xac, 0xba, 0x3c, 0x82, 0x04, 0x15, 0x90, 0xce, 0xda, 0xee, 0x75,
- 0x87, 0x27, 0x2a, 0x0b, 0x84, 0x28, 0xb2, 0x35, 0x56, 0xd1, 0xb6, 0x1d, 0x68, 0x7b, 0x2f, 0x7f,
- 0x88, 0xad, 0xf9, 0xf7, 0x38, 0x98, 0xca, 0x42, 0x50, 0xd8, 0x08, 0xda, 0xe5, 0xdb, 0xea, 0x19,
- 0x89, 0xf9, 0xc9, 0x8c, 0xd7, 0x1c, 0xc2, 0x4b, 0x84, 0x0d, 0xab, 0x57, 0x43, 0x7a, 0x2b, 0x13,
- 0x8a, 0x05, 0x99, 0x01, 0x25, 0x53, 0xda, 0x50, 0x3b, 0xb1, 0x8d, 0x03, 0x6a, 0x5a, 0xab, 0x0d,
- 0x8b, 0x51, 0xa9, 0x7a, 0xca, 0xd7, 0xd2, 0x59, 0xef, 0x64, 0x2e, 0x8e, 0xcc, 0xfb, 0x6a, 0x07,
- 0x8c, 0x3e, 0x39, 0xd8, 0x02, 0xcd, 0xea, 0x66, 0x86, 0x0a, 0xc1, 0xab, 0x38, 0x1a, 0x68, 0x31,
- 0x8d, 0x6a, 0x09, 0xa3, 0xed, 0x49, 0xe2, 0x6f, 0x52, 0xdf, 0x62, 0x26, 0x9e, 0xbb, 0xa9, 0x3b,
- 0x8e, 0x96, 0x59, 0x2e, 0x1f, 0x06, 0xfa, 0x74, 0xed, 0x63, 0x44, 0x72, 0xb7, 0x9b, 0x29, 0x25,
- 0x8f, 0xc2, 0x69, 0x55, 0xf0, 0x82, 0xf2, 0x7d, 0x39, 0xb6, 0xe7, 0xff, 0x11, 0x3a, 0xe8, 0x2f,
- 0x90, 0x41, 0x3c, 0x15, 0xa4, 0xa5, 0x0a, 0x9a, 0xe1, 0x71, 0xfb, 0x3f, 0x6e, 0x18, 0x60, 0xe9,
- 0x91, 0x15, 0x0c, 0x6e, 0x4b, 0x21, 0x02, 0x93, 0x35, 0xa4, 0x58, 0xb2, 0xc8, 0xb9, 0xa1, 0xe3,
- 0x92, 0xe9, 0x5c, 0xe3, 0xb9, 0x6e, 0x1a, 0x88, 0x8a, 0x18, 0x7e, 0xe6, 0xe1, 0x99, 0x21, 0xfd,
- 0x93, 0xbd, 0x6c, 0x98, 0x56, 0xea, 0x12, 0x81, 0x5e, 0xcd, 0xdd, 0x6b, 0x47, 0x38, 0xe0, 0xf7,
- 0x94, 0xd2, 0xfc, 0x3a, 0x9e, 0xf0, 0x2a, 0xbe, 0x37, 0xa3, 0x32, 0x4e, 0xb3, 0xd9, 0xe2, 0xc1,
- 0x95, 0x86, 0xcc, 0x41, 0x71, 0x74, 0x22, 0xb7, 0xe3, 0x76, 0x91, 0xc3, 0x15, 0x78, 0x23, 0xcb,
- 0x96, 0x7a, 0x9c, 0xcc, 0x83, 0x3b, 0x3a, 0xac, 0x5c, 0xca, 0xb7, 0x97, 0x3c, 0x58, 0xa3, 0xd5,
- 0x97, 0x2e, 0xac, 0xb7, 0x6c, 0xbf, 0x32, 0xa5, 0x88, 0x1f, 0x14, 0x1a, 0x9a, 0xf9, 0x62, 0xdf,
- 0x98, 0xa4, 0x7f, 0x4b, 0xd0, 0x0f, 0x4a, 0xd2, 0x8e, 0x16, 0xaa, 0xdd, 0x17, 0x59, 0xa7, 0xb9,
- 0x99, 0xf0, 0x4f, 0x30, 0x3f, 0x8b, 0x42, 0xdb, 0x5a, 0xc3, 0x09, 0x50, 0xb1, 0xf8, 0x66, 0xb3,
- 0x9a, 0x0c, 0x1f, 0xbd, 0xcd, 0xc4, 0x5a, 0xc0, 0xe5, 0x7f, 0x2f, 0x04, 0x98, 0xd8, 0xe6, 0xad,
- 0x9b, 0x58, 0x2f, 0xc6, 0x22, 0x40, 0x52, 0xc9, 0x31, 0xaa, 0x8c, 0x89, 0x3e, 0x79, 0x27, 0xa7,
- 0x9c, 0x37, 0xbf, 0x64, 0xea, 0x5a, 0x6a, 0xf6, 0x58, 0xc4, 0x63, 0xac, 0xca, 0x98, 0x25, 0x91,
- 0x9d, 0x63, 0x8f, 0x1f, 0x05, 0xde, 0x62, 0xff, 0x8c, 0x11, 0xc0, 0x21, 0x6c, 0x39, 0xe4, 0x9b,
- 0x9e, 0x9f, 0xdf, 0x92, 0xf7, 0x91, 0x7a, 0xe4, 0x33, 0xad, 0xe6, 0x75, 0x45, 0x19, 0x64, 0x85,
- 0x9f, 0xcb, 0xef, 0xe9, 0x18, 0x15, 0x72, 0xed, 0xe7, 0x78, 0x45, 0xf8, 0xe3, 0xb8, 0xa5, 0x8f,
- 0xa0, 0x5a, 0x75, 0x12, 0x5f, 0xdf, 0x49, 0xe9, 0x40, 0xe0, 0xde, 0x36, 0xbb, 0x5d, 0xb7, 0xca,
- 0xa1, 0x0e, 0x45, 0x69, 0xb0, 0x5b, 0x41, 0xe0, 0x94, 0x35, 0x7d, 0xbb, 0x1d, 0xfc, 0x76, 0xc0,
- 0xa2, 0xf2, 0x15, 0xe4, 0x42, 0x14, 0x59, 0xfb, 0x2b, 0x89, 0x5b, 0xef, 0x34, 0xdc, 0xf6, 0xde,
- 0xa3, 0xa6, 0x25, 0x9f, 0xad, 0x90, 0x51, 0xf2, 0xff, 0x5c, 0xf8, 0x62, 0x92, 0x7d, 0x37, 0xd4,
- 0xa4, 0xc9, 0xb5, 0x3d, 0x65, 0x8a, 0x69, 0xcd, 0x96, 0x32, 0x17, 0x47, 0x66, 0x9c, 0x35, 0xe2,
- 0xa5, 0x9d, 0x85, 0x46, 0x8a, 0x0e, 0x61, 0xc4, 0x42, 0xe7, 0xb4, 0xca, 0xc0, 0x3d, 0xf4, 0xe8,
- 0xa6, 0x61, 0xd5, 0xcb, 0x78, 0x41, 0x79, 0xdf, 0xfd, 0x5b, 0x92, 0x9e, 0xe9, 0x1d, 0x74, 0xf6,
- 0xa7, 0x35, 0xe5, 0xb0, 0x97, 0xc5, 0x71, 0xd6, 0x29, 0x8e, 0x31, 0x13, 0x4f, 0xbc, 0xb5, 0xfc,
- 0xa8, 0xbf, 0x36, 0x4c, 0x2b, 0x75, 0x09, 0xa1, 0x2f, 0x87, 0x8f, 0xd4, 0xc2, 0x1c, 0x70, 0x9a,
- 0xa9, 0xeb, 0x06, 0x37, 0xc4, 0xf1, 0x01, 0xa8, 0xfb, 0x52, 0x2c, 0x59, 0x64, 0xbd, 0xb1, 0x90,
- 0xaa, 0x17, 0x56, 0xba, 0x36, 0xbe, 0x19, 0xb3, 0x44, 0xee, 0x0a, 0x0d, 0x4d, 0x9d, 0x31, 0x8e,
- 0xab, 0x43, 0x66, 0xc1, 0xd9, 0x3a, 0x11, 0xba, 0x90, 0x3b, 0xa9, 0x80, 0xeb, 0x3c, 0xf0, 0x84,
- 0xac, 0x2c, 0xf6, 0x63, 0x11, 0x20, 0x29, 0x85, 0xf9, 0x55, 0x46, 0xa5, 0x1f, 0xdd, 0xf2, 0xb2,
- 0xad, 0x78, 0xc6, 0x18, 0xfe, 0xa4, 0x21, 0x8c, 0x2d, 0x80, 0xe5, 0x28, 0xb9, 0x7c, 0x33, 0xb8,
- 0xae, 0x84, 0x96, 0x95, 0x0c, 0xeb, 0x39, 0x97, 0x92, 0x3c, 0xc3, 0x7c, 0x90, 0x5c, 0xb3, 0xa6,
- 0xaf, 0xd0, 0xa6, 0xee, 0xe3, 0x6f, 0x31, 0x9e, 0x46, 0xe9, 0x60, 0xf1, 0x36, 0xfd, 0x72, 0xac,
- 0xb0, 0x53, 0xf3, 0xae, 0xb7, 0x48, 0xc9, 0x79, 0x9e, 0x2e, 0x7c, 0x31, 0x49, 0xdf, 0xfa, 0x6a,
- 0xb1, 0x07, 0xc3, 0xd5, 0x58, 0xcc, 0xc1, 0x70, 0x4a, 0xfb, 0xdf, 0xbc, 0xef, 0x7e, 0x3b, 0x60,
- 0xb2, 0xfb, 0x93, 0x58, 0xaa, 0x83, 0xd9, 0x6b, 0xf5, 0x47, 0xf9, 0xe8, 0xc6, 0x5e, 0xbb, 0x7e,
- 0xb3, 0xaf, 0xa3, 0x23, 0x45, 0x07, 0xd1, 0x62, 0x21, 0x92, 0x5a, 0x65, 0x60, 0xff, 0x7a, 0x74,
- 0xb4, 0xc0, 0x33, 0x81, 0x8d, 0x1d, 0xe9, 0x5d, 0x48, 0xfc, 0xb5, 0x40, 0x94, 0x1e, 0x78, 0x42,
- 0xb5, 0x94, 0x03, 0xfa, 0x62, 0x99, 0xe1, 0x54, 0x9c, 0x29, 0x16, 0xcd, 0x32, 0xbf, 0xb9, 0x48,
- 0xb6, 0x68, 0x53, 0x77, 0x90, 0xd6, 0xf9, 0x4f, 0x23, 0x95, 0x30, 0x99, 0x1b, 0x9f, 0x39, 0x56,
- 0xb7, 0x3c, 0x63, 0x0c, 0x7f, 0x52, 0xf1, 0x46, 0xf7, 0x40, 0x93, 0x14, 0xbd, 0x3e, 0xf8, 0x5c,
- 0xb8, 0xb6, 0xb0, 0xf0, 0xc3, 0xe2, 0x89, 0x31, 0xf1, 0x49, 0x2d, 0xd3, 0x30, 0x9e, 0x3d, 0x3a,
- 0xb9, 0xe2, 0x80, 0x8b, 0x2c, 0x66, 0x81, 0x38, 0x25, 0x9c, 0x8e, 0x5e, 0x96, 0x3f, 0xfc, 0x30,
- 0xba, 0x1e, 0xd0, 0x06, 0xde, 0x29, 0x99, 0x23, 0x9a, 0x20, 0xa8, 0x0a, 0xbf, 0x1f, 0x7c, 0x2e,
- 0xbb, 0x4a, 0xe0, 0x7d, 0x31, 0xad, 0x91, 0x2a, 0x4e, 0xf5, 0x0b, 0x87, 0x19, 0xbe, 0xbd, 0x24,
- 0xbc, 0x25, 0x70, 0xdf, 0xf9, 0xb7, 0xa9, 0x15, 0x27, 0x9b, 0xe4, 0xa2, 0xed, 0x5f, 0xbf, 0x12,
- 0xbd, 0x71, 0x40, 0xa4, 0x16, 0x33, 0xa1, 0x1c, 0xf3, 0x4e, 0x47, 0x2f, 0x4b, 0xfe, 0x7e, 0x18,
- 0xbe, 0x8d, 0x10, 0x29, 0xe4, 0x7c, 0xb9, 0x07, 0x4c, 0xf2, 0x61, 0x7b, 0x62, 0xde, 0xfe, 0x06,
- 0xbf, 0xd9, 0x20, 0x52, 0x0b, 0xf8, 0xb1, 0x0e, 0x98, 0x27, 0xc2, 0xf6, 0xc4, 0x7f, 0x3f, 0x0c,
- 0xc0, 0x6c, 0xe7, 0x1c, 0x6a, 0x2b, 0xcf, 0x0f, 0xc1, 0x01, 0x94, 0x24, 0xd2, 0xd7, 0xda, 0x8c,
- 0xc1, 0x38, 0xd7, 0x67, 0x85, 0xaf, 0xc7, 0x06, 0x15, 0xd4, 0x37, 0xa9, 0x74, 0x76, 0x1b, 0x86,
- 0xc2, 0xc4, 0x87, 0xea, 0x77, 0xe0, 0xdf, 0x1d, 0xaa, 0x68, 0x11, 0xfd, 0x5d, 0x56, 0x9b, 0x98,
- 0xc3, 0x90, 0xb7, 0x91, 0x98, 0x64, 0xd7, 0x14, 0x7e, 0xbd, 0xb2, 0x70, 0xfb, 0xf7, 0x5a, 0x92,
- 0xc4, 0xff, 0x27, 0x33, 0x50, 0x7e, 0xef, 0x2b, 0x17, 0xd3, 0x5d, 0x55, 0x0f, 0x16, 0x58, 0xa4,
- 0xc5, 0xab, 0x17, 0x48, 0xbf, 0xfa, 0xe7, 0x22, 0xc3, 0x06, 0xfe, 0xd8, 0xa9, 0xb7, 0x99, 0xae,
- 0xc6, 0x57, 0x47, 0xc5, 0x4d, 0xb5, 0xff, 0x39, 0x7c, 0xba, 0xd8, 0x8c, 0x80, 0x97, 0x19, 0xb0,
- 0xc7, 0x03, 0x77, 0xbe, 0xa2, 0x31, 0xf7, 0x30, 0xa8, 0x6f, 0x7b, 0x01, 0x26, 0x36, 0xd8, 0xba,
- 0xc8, 0x89, 0xa4, 0x42, 0x1e, 0x81, 0x8f, 0x47, 0xae, 0x66, 0xc5, 0xc6, 0xab, 0x96, 0x1d, 0xdc,
- 0xc9, 0xdd, 0x94, 0x39, 0xf1, 0x05, 0x87, 0x4e, 0x7a, 0xb3, 0x66, 0x4b, 0x0d, 0x37, 0xdc, 0xd6,
- 0xca, 0x21, 0xc4, 0xb4, 0x03, 0x4a, 0x9f, 0x55, 0xc5, 0x0f, 0x40, 0x1f, 0x24, 0x17, 0x5c, 0xc8,
- 0xcb, 0x75, 0xf4, 0xcf, 0xec, 0xce, 0x97, 0x5c, 0x11, 0xda, 0xe3, 0x92, 0x82, 0xb6, 0x9d, 0xc2,
- 0xcc, 0x1a, 0x64, 0x6d, 0x24, 0xd4, 0xaf, 0x63, 0x78, 0xb4, 0x0c, 0xb7, 0x76, 0x57, 0x9f, 0xf4,
- 0xcd, 0x4e, 0x54, 0x16, 0xcb, 0x50, 0xa7, 0x6a, 0xac, 0x61, 0xaf, 0x3a, 0xd0, 0xf6, 0x5e, 0xfe,
- 0xce, 0xb2, 0x04, 0x9b, 0x39, 0x1f, 0xbf, 0x71, 0x13, 0xdd, 0x89, 0x6e, 0xf9, 0xd6, 0xde, 0xe0,
- 0xcf, 0xe6, 0x34, 0xe0, 0xd6, 0x9b, 0xb7, 0x78, 0xc7, 0x08, 0x2a, 0xe3, 0x5f, 0x77, 0x1f, 0xea,
- 0xd0, 0x65, 0x61, 0xa0, 0x82, 0xbc, 0x4f, 0x9f, 0x1f, 0xcf, 0x36, 0x23, 0x20, 0x55, 0x97, 0x2c,
- 0xd1, 0x31, 0x51, 0xdb, 0x6d, 0x38, 0x47, 0x96, 0xcb, 0x1a, 0x95, 0xae, 0x86, 0xf4, 0x56, 0x26,
- 0xd2, 0xcd, 0x01, 0x56, 0x9f, 0x77, 0x5f, 0x8d, 0x74, 0xa6, 0xb3, 0xfa, 0xaf, 0xd4, 0xd6, 0x38,
- 0xd3, 0x99, 0x31, 0x2d, 0x70, 0xf3, 0x57, 0x84, 0xa0, 0x73, 0x10, 0x77, 0x09, 0x75, 0x17, 0x32,
- 0xd4, 0xf6, 0xa1, 0x8f, 0xb8, 0xe9, 0x6f, 0xbb, 0xc9, 0x1d, 0xff, 0x52, 0xfd, 0x94, 0x15, 0x04,
- 0xd5, 0xa2, 0x91, 0xf4, 0x57, 0x6d, 0x67, 0xb2, 0x1d, 0xc8, 0x5c, 0xdf, 0x5b, 0x35, 0xd4, 0x0e,
- 0xd6, 0x5e, 0xc1, 0x79, 0xa5, 0x22, 0x7f, 0xa9, 0xa2, 0x74, 0x7a, 0x8b, 0x72, 0x15, 0x54, 0x10,
- 0xd7, 0x0a, 0xf1, 0x02, 0x4a, 0xa6, 0x77, 0xa0, 0x76, 0xa1, 0xd9, 0x06, 0xd4, 0xb4, 0x95, 0x1a,
- 0xd8, 0x80, 0x22, 0xfe, 0xf6, 0x16, 0x0f, 0xd7, 0x70, 0xa8, 0x67, 0xc1, 0x59, 0x14, 0x50, 0x7c,
- 0xd9, 0xd4, 0x12, 0x85, 0x19, 0x92, 0x07, 0xde, 0xa4, 0x7d, 0xc4, 0x4c, 0xff, 0xb5, 0x91, 0x76,
- 0xda, 0x28, 0x42, 0x08, 0xeb, 0xdd, 0x1f, 0xc5, 0x1b, 0xc1, 0xe2, 0x18, 0xd6, 0x95, 0x11, 0x68,
- 0xdb, 0x7c, 0x72, 0x73, 0x04, 0x59, 0x17, 0xcc, 0xcf, 0x14, 0x41, 0x95, 0x70, 0x34, 0xd0, 0x62,
- 0xdc, 0x13, 0xe2, 0xd1, 0xcc, 0x43, 0x2f, 0xf3, 0xa6, 0x7a, 0xae, 0xb0, 0x84, 0xd5, 0xd2, 0x54,
- 0xdd, 0x47, 0xd2, 0xaa, 0x23, 0xc7, 0x27, 0xfa, 0x72, 0xaf, 0x0d, 0x3d, 0x22, 0x74, 0x13, 0x5e,
- 0xde, 0xbb, 0x82, 0x27, 0xd1, 0x88, 0x3f, 0xe1, 0xcd, 0x13, 0x2b, 0x69, 0x0b, 0x54, 0x93, 0x40,
- 0xdf, 0xef, 0xb2, 0x5c, 0x3e, 0x0c, 0x37, 0xe8, 0x19, 0xc6, 0x88, 0xe4, 0xad, 0xf5, 0x52, 0x4a,
- 0xe0, 0x7e, 0x28, 0xa7, 0x79, 0xc6, 0x0c, 0xec, 0xbe, 0x5e, 0x13, 0x2a, 0xf5, 0x10, 0x40, 0x0f,
- 0xe1, 0x2a, 0x18, 0xdc, 0x96, 0x42, 0x04, 0xe5, 0x6a, 0x8b, 0xb0, 0xa7, 0x53, 0xb1, 0x81, 0x05,
- 0xe2, 0xd6, 0x48, 0x51, 0x64, 0x0d, 0x1c, 0xfe, 0xd5, 0x37, 0x96, 0xf3, 0x7a, 0x91, 0x01, 0x1b,
- 0xe3, 0x82, 0x78, 0x2a, 0x8b, 0x89, 0x14, 0xf7, 0x01, 0xe2, 0x35, 0x7e, 0xdc, 0x30, 0xc0, 0x11,
- 0xe4, 0xed, 0xe8, 0x88, 0x43, 0x93, 0x2c, 0xc8, 0x68, 0x8c, 0xda, 0x5b, 0x28, 0xd1, 0xc2, 0x27,
- 0xe5, 0xb9, 0xd8, 0xf3, 0xac, 0x17, 0x24, 0xc1, 0xbc, 0x59, 0x79, 0xd6, 0x8e, 0x70, 0x03, 0x2d,
- 0xe6, 0x45, 0x88, 0x7e, 0x5e, 0x58, 0x3c, 0xda, 0x03, 0xe5, 0x5f, 0x82, 0xa7, 0x50, 0x83, 0x33,
- 0xe7, 0x11, 0xb8, 0x05, 0xb1, 0xdc, 0x34, 0xd3, 0xd7, 0x30, 0xfc, 0x0f, 0x01, 0xf1, 0x42, 0x39,
- 0xe8, 0x9b, 0x6b, 0xf9, 0x0d, 0x6c, 0x4c, 0xa4, 0xd1, 0x39, 0x42, 0xc8, 0x8c, 0x51, 0x87, 0x5f,
- 0xe9, 0xcf, 0x5b, 0x82, 0xe2, 0xe8, 0x44, 0xad, 0x05, 0xec, 0xe1, 0x45, 0x2a, 0xf0, 0x46, 0x55,
- 0xea, 0x33, 0x0b, 0x0f, 0x10, 0xa7, 0x5c, 0xb6, 0xba, 0x50, 0xc7, 0x11, 0x03, 0xd0, 0xc6, 0x4b,
- 0xeb, 0x67, 0x3b, 0x74, 0xff, 0x23, 0x54, 0xbf, 0x6e, 0x85, 0x64, 0x9c, 0xa5, 0x71, 0x07, 0x41,
- 0xec, 0x08, 0xab, 0xd6, 0x37, 0x39, 0x6c, 0x80, 0x07, 0xeb, 0x8b, 0xb9, 0x51, 0x90, 0x05, 0x77,
- 0xed, 0x5c, 0x9b, 0xad, 0xd8, 0xbd, 0x64, 0x89, 0xd3, 0x3e, 0x28, 0x34, 0xf7, 0x31, 0xc4, 0x7d,
- 0xee, 0xa0, 0xcb, 0x20, 0x2a, 0xf2, 0x7c, 0x92, 0x6c, 0x82, 0x0e, 0x60, 0xde, 0x11, 0x44, 0x63,
- 0xef, 0xf4, 0xfb, 0x5b, 0xc5, 0x76, 0x74, 0x9b, 0xb8, 0x57, 0xad, 0xed, 0x78, 0xb0, 0x85, 0x69,
- 0xf0, 0x77, 0xae, 0x1b, 0x91, 0x51, 0x8c, 0x7c, 0x60, 0x90, 0xb1, 0x2d, 0x07, 0x92, 0x0d, 0xaf,
- 0xf1, 0x23, 0x9e, 0x60, 0x7e, 0xd5, 0x84, 0x75, 0xb4, 0x45, 0x12, 0xa0, 0xa1, 0x33, 0xcc, 0xa5,
- 0xf2, 0xdf, 0xce, 0xed, 0x8c, 0x9a, 0x9c, 0x6e, 0x0b, 0xf9, 0x34, 0xf4, 0x88, 0x13, 0x4c, 0xbb,
- 0xf3, 0x8b, 0xfe, 0x96, 0x63, 0x1e, 0x94, 0x67, 0xdf, 0x2c, 0x97, 0x79, 0x2e, 0xb2, 0x8d, 0xb1,
- 0xf4, 0xe4, 0x6e, 0x34, 0xab, 0x04, 0xac, 0x58, 0xb6, 0x42, 0x78, 0x5c, 0xda, 0x53, 0x8f, 0x87,
- 0xf5, 0xb0, 0x5e, 0x4f, 0x44, 0x80, 0xa4, 0x51, 0x62, 0x97, 0xdb, 0xd1, 0x7c, 0xf2, 0x4e, 0x8d,
- 0xf6, 0x4c, 0x0e, 0xc2, 0xb6, 0xcf, 0xbc, 0x4a, 0xdd, 0x2b, 0xfd, 0x85, 0x55, 0xd2, 0xce, 0x93,
- 0xf7, 0x18, 0x3e, 0xb9, 0x59, 0x4b, 0xb4, 0x43, 0x09, 0xfe, 0x5e, 0x08, 0xf3, 0x73, 0x0f, 0x99,
- 0xf8, 0x92, 0xed, 0x45, 0xe5, 0xfb, 0xcc, 0x34, 0x0f, 0xf7, 0xe0, 0xcf, 0x7e, 0xd3, 0xca, 0xff,
- 0xf9, 0xc6, 0xdd, 0x3e, 0x0a, 0x7f, 0xc4, 0x3d, 0xdb, 0x22, 0x43, 0x42, 0xd8, 0x72, 0x0b, 0xf5,
- 0xfa, 0x3a, 0x8d, 0xb3, 0xf8, 0x30, 0xdc, 0x26, 0x64, 0x9e, 0x65, 0x16, 0xf1, 0x52, 0x8b, 0xeb,
- 0xfb, 0x6e, 0xbd, 0xc8, 0x17, 0xb4, 0xd4, 0x2f, 0xb0, 0x4b, 0xc6, 0x9b, 0x57, 0xf3, 0x4a, 0xe1,
- 0xfc, 0x01, 0x2d, 0x6a, 0xdf, 0xae, 0xec, 0x10, 0xd9, 0x25, 0x29, 0xbe, 0xa3, 0x12, 0x48, 0xd7,
- 0xfd, 0x55, 0x1d, 0x11, 0x30, 0x2a, 0xe4, 0x19, 0x0d, 0xf0, 0x8a, 0x33, 0x05, 0xb3, 0x89, 0xdd,
- 0xfe, 0xa9, 0x4d, 0x9c, 0xc2, 0x65, 0xfc, 0x02, 0xb2, 0x4c, 0xac, 0x67, 0x2c, 0x93, 0x09, 0xc3,
- 0xff, 0xfd, 0x7d, 0xe7, 0x2d, 0xe1, 0xf4, 0x0b, 0x66, 0x99, 0x0f, 0xea, 0x8a, 0x32, 0xc8, 0xc9,
- },
- { /* 8 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xfb, 0xde, 0xe0, 0xaf, 0x10, 0xc9, 0xf6, 0x49, 0xbe, 0xe7, 0x6e, 0xa4, 0x6a, 0x2b, 0x9c, 0xf3,
- 0x35, 0x7f, 0x03, 0x9d, 0x20, 0x51, 0x2f, 0x92, 0xbf, 0x0d, 0xdc, 0x8b, 0xd4, 0x56, 0xfb, 0x25,
- 0xce, 0xa1, 0xe3, 0x32, 0x30, 0x98, 0xd9, 0xdb, 0x01, 0xea, 0xb2, 0x2f, 0xbe, 0x7d, 0x67, 0xd6,
- 0x6a, 0xfe, 0x06, 0xf9, 0x40, 0xa2, 0x5e, 0xe7, 0xbd, 0x1a, 0x7b, 0xd5, 0x6b, 0xac, 0x35, 0x4a,
- 0x91, 0x20, 0xe6, 0x56, 0x50, 0x6b, 0xa8, 0xae, 0x03, 0xfd, 0x15, 0x71, 0x01, 0x87, 0xa9, 0xb9,
- 0x5f, 0x81, 0x05, 0x64, 0x60, 0xf3, 0x71, 0x75, 0x02, 0x17, 0xa7, 0x5e, 0xbf, 0xfa, 0xce, 0x6f,
- 0xa4, 0x5f, 0xe5, 0xcb, 0x70, 0x3a, 0x87, 0x3c, 0xbc, 0xf0, 0xc9, 0xfa, 0xd5, 0xd1, 0x52, 0x9c,
- 0xd4, 0x3f, 0x0c, 0x31, 0x80, 0x87, 0xbc, 0x0d, 0xb9, 0x34, 0xf6, 0x69, 0xd6, 0x9b, 0x6a, 0x94,
- 0x2f, 0xe1, 0xec, 0x9e, 0x90, 0x4e, 0x4a, 0x44, 0x07, 0xd3, 0x98, 0xcd, 0xbc, 0xb0, 0xf6, 0x67,
- 0xe1, 0x40, 0x0f, 0xac, 0xa0, 0xd6, 0x93, 0x9f, 0x06, 0x39, 0x2a, 0xe2, 0x02, 0xcd, 0x91, 0xb1,
- 0x1a, 0x9e, 0xef, 0x03, 0xb0, 0x1f, 0x65, 0xd6, 0xb8, 0xde, 0x44, 0x46, 0x68, 0xe6, 0x0d, 0x42,
- 0xbe, 0xc1, 0x0a, 0xc8, 0xc0, 0x25, 0xe2, 0xea, 0x04, 0x2e, 0x8d, 0xbc, 0xbd, 0x37, 0x5f, 0xde,
- 0x45, 0x1f, 0xea, 0x67, 0xd0, 0xec, 0x14, 0xa3, 0xba, 0xc9, 0xe3, 0x18, 0xd7, 0x1c, 0xc3, 0x2d,
- 0x8b, 0xbe, 0x09, 0x55, 0xe0, 0x74, 0xcd, 0x78, 0xbb, 0x23, 0x51, 0x37, 0x69, 0x61, 0xa4, 0xfb,
- 0x70, 0x60, 0xe9, 0xfa, 0xf0, 0xbd, 0x3b, 0x31, 0x05, 0xc4, 0x3f, 0x93, 0x03, 0x4a, 0x38, 0x08,
- 0x6b, 0x7e, 0x18, 0x62, 0xc3, 0xcd, 0xbb, 0x1a, 0xb1, 0x68, 0x2f, 0xd2, 0x6f, 0xf5, 0xd4, 0xeb,
- 0x90, 0xa0, 0xf8, 0xcd, 0xd3, 0x04, 0x4d, 0x53, 0x0f, 0x8f, 0x41, 0x76, 0x05, 0xde, 0x48, 0x18,
- 0x5e, 0x01, 0x1b, 0xff, 0xe3, 0x9c, 0x94, 0x88, 0x0e, 0x65, 0xf3, 0x59, 0xbb, 0xa3, 0x2f, 0xce,
- 0xa5, 0xdf, 0xfb, 0x50, 0xf3, 0x55, 0x62, 0xc1, 0xb0, 0x82, 0x9d, 0xfd, 0xd1, 0x88, 0xb3, 0x3d,
- 0x01, 0x80, 0x1e, 0x9b, 0x83, 0x6f, 0xe5, 0xfd, 0x0c, 0x72, 0x54, 0x07, 0x04, 0x59, 0xe1, 0xa1,
- 0xfa, 0x5e, 0xfe, 0x34, 0x93, 0xa6, 0x13, 0xb4, 0xb2, 0x95, 0x3a, 0xa3, 0x6e, 0x72, 0x7d, 0x52,
- 0x34, 0xff, 0x1d, 0x06, 0xa3, 0x3e, 0xca, 0x6f, 0xb3, 0x7f, 0x88, 0x8c, 0xd0, 0x0f, 0x1a, 0x84,
- 0xcf, 0x21, 0xfd, 0xa9, 0xb3, 0xf7, 0x3c, 0x26, 0x0d, 0x98, 0xe6, 0x28, 0xba, 0x24, 0x86, 0x77,
- 0xbf, 0x41, 0x14, 0x53, 0x43, 0x4a, 0x07, 0x17, 0x08, 0x5c, 0xd9, 0xbb, 0xb9, 0x6e, 0xbe, 0x7f,
- 0x44, 0x9f, 0xf4, 0xfc, 0x53, 0x83, 0xf1, 0x5e, 0xb6, 0xbb, 0xb7, 0x1f, 0xd3, 0x45, 0x22, 0x8c,
- 0x8a, 0x3e, 0x17, 0xce, 0x63, 0x1b, 0x28, 0x85, 0xb7, 0x51, 0x05, 0x30, 0x6d, 0x38, 0x45, 0x5a,
- 0x71, 0xe0, 0xf7, 0x61, 0x73, 0xd2, 0xde, 0xcc, 0x09, 0xb6, 0x6b, 0x94, 0x07, 0x13, 0xd9, 0xa9,
- 0xd5, 0xbf, 0x12, 0xaa, 0x03, 0xe8, 0x59, 0xf0, 0xb5, 0x46, 0xa2, 0x6e, 0xd2, 0xc2, 0x8b, 0x35,
- 0x2e, 0x61, 0xf2, 0x05, 0x13, 0x21, 0xaf, 0xb9, 0x0b, 0xa1, 0xcc, 0xca, 0xb8, 0xe9, 0x17, 0xc6,
- 0xe0, 0xc0, 0x11, 0x37, 0x23, 0xb9, 0x76, 0x62, 0x0a, 0x4b, 0x7e, 0xe5, 0x06, 0x94, 0x70, 0x10,
- 0x1b, 0x1e, 0xf1, 0x98, 0x33, 0x70, 0x80, 0x2b, 0xb4, 0xac, 0x10, 0x41, 0x6c, 0xbf, 0xec, 0xe3,
- 0xd6, 0xfc, 0x30, 0xc4, 0x45, 0x59, 0xb5, 0x34, 0xa1, 0xd0, 0x5e, 0x67, 0xde, 0x29, 0x6b, 0x15,
- 0x2d, 0x22, 0xd0, 0x6b, 0x55, 0x90, 0x43, 0x7d, 0x1f, 0x37, 0x30, 0xc3, 0xb4, 0x02, 0xf7, 0xe6,
- 0xe3, 0x83, 0x33, 0x59, 0x65, 0x08, 0x9a, 0xa6, 0x1e, 0xdd, 0x82, 0xec, 0x0a, 0x7f, 0x90, 0x30,
- 0x18, 0x5d, 0xd3, 0xf6, 0x75, 0xc1, 0x6c, 0xef, 0xa0, 0x3a, 0xec, 0x48, 0x60, 0x54, 0x0c, 0xc3,
- 0xbc, 0x02, 0x36, 0x3d, 0x05, 0xfb, 0xeb, 0xd3, 0x1c, 0xca, 0x25, 0xb2, 0xb5, 0x85, 0x5e, 0x5f,
- 0x47, 0xdc, 0xd6, 0x92, 0x15, 0x32, 0x1d, 0x9a, 0xa2, 0x2d, 0x4b, 0x16, 0xdf, 0xae, 0xc2, 0xac,
- 0x89, 0x7d, 0x35, 0xa0, 0x25, 0xaa, 0xc4, 0x41, 0xa3, 0xc7, 0xf9, 0x39, 0x61, 0xd3, 0xa5, 0x7a,
- 0x72, 0xa3, 0xd5, 0x0f, 0x35, 0x63, 0x32, 0x08, 0x1d, 0x20, 0x97, 0x9d, 0x0b, 0xf8, 0x39, 0x89,
- 0x02, 0xc3, 0x3c, 0xf5, 0xc5, 0xde, 0x09, 0x39, 0x18, 0xe4, 0xa8, 0x0e, 0x08, 0xb2, 0x01, 0x81,
- 0xf9, 0x1d, 0xdc, 0x5a, 0xd5, 0x17, 0xff, 0x70, 0xa6, 0x03, 0xc6, 0xaa, 0x62, 0x99, 0x9d, 0x72,
- 0x37, 0xbc, 0x3f, 0x68, 0xe5, 0x8f, 0x26, 0xab, 0xa7, 0xe9, 0x74, 0x85, 0xdc, 0xe4, 0xfa, 0xa4,
- 0xcc, 0x62, 0xdf, 0xc7, 0xf5, 0x46, 0xd0, 0xe2, 0x19, 0x0e, 0x1a, 0x21, 0xb6, 0xcf, 0x66, 0x57,
- 0x68, 0x3d, 0x3a, 0x0c, 0x85, 0x7c, 0x57, 0xde, 0xa5, 0xfe, 0xd3, 0xdb, 0x63, 0x1e, 0x34, 0xcb,
- 0x93, 0xe3, 0xda, 0xa3, 0x95, 0xb5, 0xa1, 0x97, 0x1b, 0x19, 0xbd, 0x7f, 0x09, 0x35, 0xa8, 0x38,
- 0x5d, 0x42, 0x39, 0x91, 0xa5, 0x2d, 0x78, 0x4c, 0x1a, 0xf3, 0x0f, 0x50, 0xb7, 0x48, 0xcf, 0xee,
- 0xa6, 0x9c, 0xd9, 0x3e, 0xb5, 0xe4, 0x8e, 0x05, 0xa4, 0x14, 0x61, 0xf4, 0xdd, 0x63, 0x53, 0x1d,
- 0xbd, 0x82, 0x28, 0xa6, 0x86, 0x94, 0x0e, 0x2e, 0x10, 0xb8, 0x71, 0xb5, 0xb1, 0xdc, 0xbf, 0xfe,
- 0x46, 0x5c, 0xc8, 0x09, 0x96, 0x5d, 0xf8, 0x67, 0xae, 0x5f, 0x1f, 0x11, 0xdb, 0xf7, 0x23, 0x0d,
- 0x88, 0xfd, 0x2b, 0x3b, 0xa6, 0xc5, 0x21, 0xbc, 0xaf, 0xb5, 0xad, 0x3e, 0x65, 0x8a, 0x44, 0xdb,
- 0x73, 0x23, 0xcb, 0x94, 0xb6, 0x0c, 0xd7, 0xf5, 0x11, 0x52, 0xc3, 0x9a, 0x0f, 0xa1, 0xd8, 0x28,
- 0xd7, 0x7c, 0x2e, 0x5f, 0xc6, 0x36, 0x50, 0xc9, 0xad, 0xa2, 0x0a, 0x60, 0xda, 0x70, 0x8a, 0xb4,
- 0x2c, 0xa2, 0xce, 0xf0, 0xd6, 0xff, 0xa6, 0x80, 0x13, 0x45, 0x64, 0xc4, 0xb0, 0x5b, 0x16, 0x47,
- 0xe2, 0x03, 0x2d, 0xc2, 0xe6, 0x67, 0x7f, 0x5b, 0x12, 0xaf, 0xd6, 0xeb, 0x0e, 0x26, 0x71, 0x91,
- 0x19, 0xdd, 0xcd, 0x6d, 0xf6, 0xae, 0x89, 0x12, 0xac, 0x48, 0xb8, 0x4f, 0x64, 0x0d, 0xed, 0x62,
- 0x69, 0xbd, 0x24, 0x97, 0x06, 0x13, 0xb2, 0x23, 0xa9, 0x8c, 0x87, 0xdc, 0x67, 0x47, 0xd5, 0x6a,
- 0x92, 0x63, 0xc4, 0x38, 0x16, 0xda, 0x44, 0x6a, 0x17, 0x6b, 0xe9, 0x78, 0x0d, 0x6c, 0x49, 0x99,
- 0x5c, 0xc2, 0x27, 0x0a, 0x26, 0x42, 0x9d, 0xb1, 0x16, 0x81, 0x5b, 0x57, 0xb3, 0x11, 0x2e, 0x4f,
- 0xa7, 0x1c, 0xc7, 0xa5, 0x36, 0x8b, 0x6b, 0xf8, 0xa8, 0x66, 0x35, 0xf3, 0xd9, 0x3a, 0xb2, 0xbc,
- 0x03, 0x43, 0x22, 0x6e, 0x46, 0xb1, 0xec, 0xc4, 0x14, 0x96, 0xfc, 0x09, 0x0c, 0xeb, 0xe0, 0x20,
- 0xf8, 0x9d, 0xc2, 0xc1, 0x56, 0x78, 0x1a, 0x8d, 0xaa, 0x71, 0x92, 0xad, 0x66, 0xc0, 0x7c, 0xd3,
- 0x36, 0x3c, 0x21, 0xf3, 0x66, 0xe0, 0xc3, 0x56, 0xab, 0x9b, 0x20, 0x82, 0xd8, 0xbd, 0x1b, 0x05,
- 0xcd, 0xe2, 0xc1, 0x5c, 0x76, 0x29, 0x35, 0x1f, 0x15, 0x7c, 0x4e, 0x26, 0xb2, 0x96, 0x87, 0xf6,
- 0x6f, 0x3b, 0x60, 0x4b, 0x8a, 0xb2, 0xa9, 0x68, 0x81, 0x63, 0xbc, 0xce, 0x7f, 0x52, 0xd6, 0x2a,
- 0x94, 0xe5, 0x80, 0xe4, 0x9a, 0x7b, 0x5f, 0x21, 0x3f, 0x84, 0xd2, 0x6a, 0x15, 0x79, 0x4a, 0xd9,
- 0x5a, 0x44, 0x63, 0xd6, 0xaa, 0xe3, 0x86, 0xfa, 0x3e, 0x6e, 0x60, 0x45, 0xab, 0x04, 0x2d, 0x0f,
- 0xa1, 0x9a, 0x83, 0x79, 0xba, 0x2a, 0x70, 0xb3, 0x80, 0x89, 0x0e, 0xe1, 0xc1, 0x2f, 0xb1, 0xfc,
- 0x05, 0xc5, 0x66, 0xb2, 0xca, 0x10, 0xf7, 0x8f, 0x3c, 0x79, 0xc7, 0x1b, 0x14, 0xfe, 0xe3, 0x60,
- 0xfe, 0x1b, 0x86, 0x1d, 0xda, 0xd9, 0x01, 0xc6, 0x82, 0x9e, 0xa9, 0xbf, 0x7e, 0xd5, 0x7f, 0x93,
- 0x30, 0xba, 0x65, 0x2f, 0xea, 0x41, 0xd8, 0x1d, 0x83, 0x74, 0x1b, 0x90, 0xc0, 0xa8, 0x18, 0x45,
- 0xcb, 0x64, 0x85, 0x80, 0xfa, 0x88, 0x2e, 0x54, 0x3d, 0x93, 0x75, 0x34, 0xaa, 0x83, 0x84, 0xb6,
- 0xbb, 0x04, 0x6c, 0x7a, 0x0a, 0x35, 0x15, 0x65, 0x38, 0x57, 0x4a, 0xa7, 0xa9, 0xc9, 0xbc, 0xbe,
- 0x40, 0xda, 0x8c, 0xd5, 0x1a, 0xfc, 0xe3, 0x2c, 0x86, 0xb0, 0x24, 0x03, 0xc3, 0xe2, 0x20, 0x4d,
- 0x8e, 0x7b, 0x6f, 0xe7, 0x2a, 0x64, 0x3a, 0xf7, 0x87, 0x5a, 0x96, 0x2c, 0x7d, 0x9f, 0x47, 0x9b,
- 0x75, 0xa5, 0x8f, 0x48, 0x3a, 0xad, 0xcc, 0xbe, 0x39, 0xbd, 0xf8, 0x88, 0x17, 0xb4, 0xdb, 0x68,
- 0xd1, 0xfa, 0x6a, 0x83, 0x4a, 0x97, 0x4b, 0x82, 0x85, 0x4d, 0x31, 0x72, 0xc2, 0x65, 0x89, 0xf4,
- 0x2a, 0x24, 0x8a, 0x2c, 0x5a, 0x5e, 0xbd, 0xcb, 0x3b, 0xaa, 0x5f, 0xd6, 0xa8, 0x4e, 0x15, 0x07,
- 0xe4, 0x85, 0x69, 0x1e, 0x6a, 0xc6, 0x64, 0x10, 0x3a, 0x40, 0xed, 0xf9, 0x16, 0x33, 0x72, 0xd1,
- 0x1f, 0x5b, 0x89, 0xb1, 0x7a, 0x0f, 0x92, 0x59, 0x84, 0xa7, 0x83, 0x5d, 0x7c, 0x18, 0xee, 0x22,
- 0x04, 0x45, 0x78, 0x29, 0x49, 0x7f, 0x12, 0x72, 0x30, 0x0b, 0x93, 0x1c, 0x10, 0xa7, 0x02, 0xc1,
- 0xff, 0x9b, 0x98, 0x86, 0x59, 0xb6, 0xe4, 0x3b, 0x8e, 0xec, 0xfd, 0xb8, 0x7a, 0x8c, 0x9e, 0x32,
- 0x31, 0x3a, 0x7b, 0xb4, 0x69, 0x2e, 0x3d, 0xe0, 0x8f, 0x06, 0x4f, 0x97, 0xc4, 0xf1, 0xf9, 0xe4,
- 0xca, 0xe4, 0x9b, 0x1b, 0x79, 0xe7, 0xcb, 0xa9, 0x31, 0xe1, 0x21, 0x33, 0xae, 0xda, 0x65, 0x17,
- 0x6e, 0xbb, 0x7e, 0xd0, 0x09, 0xdd, 0x4c, 0x95, 0x8d, 0x11, 0xe8, 0xc9, 0x7b, 0x0b, 0x37, 0x8b,
- 0x95, 0x65, 0x9e, 0x7f, 0x19, 0x14, 0xba, 0xdc, 0x33, 0xf6, 0x86, 0x6d, 0x11, 0x20, 0xab, 0x78,
- 0x5b, 0xc4, 0x7d, 0x4d, 0x29, 0x8c, 0x63, 0x07, 0x32, 0x1c, 0x34, 0x42, 0xaf, 0x5d, 0xcc, 0xae,
- 0xa0, 0x1a, 0x9d, 0xe2, 0x39, 0x45, 0x95, 0x4e, 0x8c, 0xfb, 0x5a, 0xe6, 0xc5, 0x76, 0x50, 0x5d,
- 0xd0, 0x7a, 0x74, 0x18, 0xc9, 0xf8, 0xae, 0x7f, 0x89, 0x3f, 0x65, 0x75, 0xc6, 0x3c, 0x68, 0x55,
- 0x2b, 0xa4, 0x94, 0xb7, 0xd9, 0x31, 0x58, 0x36, 0x37, 0xd8, 0x0b, 0xd1, 0xac, 0x17, 0xf4, 0xa6,
- 0xe5, 0x05, 0x77, 0x85, 0xe9, 0xa9, 0x81, 0xed, 0x36, 0x32, 0xb9, 0xfe, 0x12, 0x6a, 0x93, 0x70,
- 0x1e, 0xdb, 0x97, 0x2a, 0xf9, 0x60, 0x77, 0xa4, 0x88, 0xd5, 0xd7, 0x5a, 0x78, 0x41, 0x0f, 0x83,
- 0xba, 0x84, 0x72, 0xe1, 0x89, 0x5a, 0xf0, 0x98, 0x34, 0x25, 0x1e, 0xa0, 0xad, 0x90, 0x5d, 0x1f,
- 0x41, 0x5a, 0x92, 0x4e, 0x99, 0x93, 0x06, 0xd1, 0x8a, 0xc2, 0x70, 0x04, 0xc7, 0xbb, 0xc1, 0xec,
- 0x8f, 0xfb, 0x71, 0x7c, 0xa9, 0x0b, 0xdf, 0x0a, 0x8b, 0x28, 0xc2, 0x2b, 0x79, 0xc6, 0xa6, 0x3a,
- 0x74, 0x25, 0x91, 0xd3, 0xb9, 0xc2, 0x29, 0x43, 0x35, 0xcf, 0xac, 0x8f, 0x13, 0xed, 0x3a, 0xc9,
- 0xb9, 0xc7, 0x50, 0x8f, 0xcf, 0xeb, 0x1c, 0x5c, 0x20, 0xb3, 0xe2, 0xa9, 0xa1, 0x7b, 0xbd, 0x3f,
- 0x42, 0x19, 0xb0, 0x20, 0xdf, 0x22, 0xea, 0x15, 0x9e, 0x54, 0x8c, 0x0d, 0xcb, 0x50, 0x21, 0xcc,
- 0x8c, 0xb8, 0x53, 0x12, 0xef, 0xba, 0x33, 0xce, 0x9f, 0xbe, 0x3e, 0x22, 0x75, 0x2d, 0x46, 0x1a,
- 0x77, 0x66, 0xb3, 0xbd, 0xff, 0x73, 0xc5, 0x87, 0x21, 0x59, 0x50, 0x86, 0x1f, 0x06, 0xda, 0xe9,
- 0xd3, 0x39, 0x56, 0x76, 0x8f, 0x49, 0x42, 0xbb, 0x9d, 0xa9, 0x99, 0x7c, 0xca, 0xd7, 0x88, 0x75,
- 0x28, 0xe7, 0xb6, 0xd9, 0x9f, 0x80, 0xb4, 0xf2, 0x23, 0x4e, 0xf7, 0xd8, 0xa0, 0xfc, 0x14, 0x86,
- 0xe6, 0x46, 0x55, 0xeb, 0xaf, 0x18, 0x6d, 0x29, 0x22, 0xa4, 0x45, 0xf7, 0x1e, 0x81, 0x73, 0x50,
- 0x1d, 0x98, 0xb5, 0x44, 0xbf, 0xd1, 0x9b, 0x60, 0x9c, 0x43, 0x2b, 0x53, 0x74, 0xaa, 0xef, 0xa3,
- 0x6d, 0xf8, 0x5c, 0xbe, 0x4f, 0x6c, 0xa0, 0x51, 0x99, 0x87, 0x14, 0xc0, 0x77, 0xe0, 0xd7, 0xab,
- 0x96, 0x26, 0xbc, 0x11, 0x5f, 0xa5, 0x56, 0x18, 0x27, 0x60, 0x7a, 0x64, 0x1d, 0xcb, 0x4b, 0x58,
- 0x58, 0x87, 0x5f, 0x23, 0x6f, 0x3d, 0x8f, 0xc3, 0x26, 0x8a, 0xc8, 0x4b, 0xa3, 0xb6, 0x2c, 0x8e,
- 0xa3, 0x59, 0xbf, 0x8c, 0x7f, 0xf4, 0x79, 0x8a, 0x98, 0x6d, 0xa6, 0xef, 0xc9, 0x9d, 0xb0, 0x7d,
- 0x07, 0x06, 0x5a, 0x47, 0x0f, 0xce, 0xfe, 0xb6, 0x24, 0x9d, 0x6f, 0x15, 0x1c, 0x4c, 0xe2, 0xe1,
- 0xfc, 0xd8, 0xba, 0xe8, 0x1f, 0x07, 0x08, 0xff, 0x9a, 0x7a, 0x01, 0xb1, 0x76, 0x67, 0x7e, 0x12,
- 0x32, 0x79, 0x59, 0xda, 0x2f, 0x9f, 0xd1, 0x24, 0x9b, 0x90, 0xb3, 0x9e, 0xc8, 0x1a, 0x19, 0xc4,
- 0xc9, 0xa7, 0xb9, 0x75, 0x3f, 0x56, 0x27, 0x6d, 0x25, 0x77, 0xdd, 0x3a, 0xa2, 0x31, 0x85, 0x37,
- 0xd2, 0xb9, 0x48, 0xed, 0x0c, 0x26, 0xa7, 0x46, 0x91, 0xdb, 0xcd, 0x7b, 0xce, 0x8e, 0x69, 0xd4,
- 0x29, 0x67, 0xa8, 0x42, 0x1c, 0xef, 0x51, 0x0f, 0x2f, 0x3c, 0xa3, 0xdf, 0xa4, 0xa5, 0xf5, 0x27,
- 0xe7, 0xc6, 0x4b, 0x70, 0x2c, 0x77, 0x88, 0xd4, 0x2e, 0xd6, 0x11, 0xf0, 0x1a, 0xd8, 0x92, 0xf1,
- 0x1c, 0x18, 0xab, 0xdf, 0x3c, 0xbe, 0x7e, 0x9d, 0x90, 0x31, 0x7f, 0x54, 0x70, 0xf3, 0x0e, 0x02,
- 0xb8, 0x47, 0x4e, 0x14, 0x4c, 0x84, 0xf9, 0xa1, 0x2c, 0xc1, 0xb6, 0xae, 0xa5, 0x22, 0x5c, 0x9e,
- 0x43, 0x99, 0xae, 0xbb, 0x5c, 0x4d, 0x0f, 0xe8, 0x92, 0x26, 0xd8, 0x0a, 0xcf, 0x09, 0xc0, 0x6d,
- 0x8d, 0x38, 0x4d, 0x89, 0x6c, 0xd5, 0xd6, 0x33, 0x93, 0xcc, 0x6a, 0x25, 0x71, 0x74, 0xa7, 0xbb,
- 0x76, 0xe6, 0xad, 0x26, 0x7c, 0x1c, 0x20, 0x7a, 0x2d, 0x2b, 0x04, 0x81, 0x1b, 0x5f, 0x3b, 0x48,
- 0x06, 0x86, 0x44, 0xdc, 0x8c, 0xa1, 0x1b, 0x4b, 0x28, 0xef, 0x3b, 0x12, 0x18, 0x15, 0x03, 0x40,
- 0xfd, 0x58, 0xa4, 0x73, 0x9c, 0x68, 0xed, 0x02, 0x96, 0x08, 0x55, 0xb6, 0x72, 0x3e, 0x9f, 0xb3,
- 0x33, 0xf9, 0x47, 0x41, 0xac, 0xf0, 0x34, 0xd9, 0x97, 0xe2, 0xe7, 0x99, 0xcc, 0x43, 0xf8, 0x65,
- 0xc8, 0x27, 0xa7, 0xee, 0xbc, 0x39, 0xc2, 0x90, 0x29, 0x05, 0x89, 0x3d, 0xa6, 0x68, 0x64, 0x96,
- 0x6c, 0x78, 0x42, 0x25, 0xcc, 0x03, 0x45, 0xac, 0x95, 0xf5, 0x40, 0xc7, 0x73, 0xb9, 0x36, 0x0a,
- 0x97, 0xa6, 0xa2, 0x8a, 0xdc, 0xca, 0xb3, 0xe5, 0x2b, 0x12, 0x2e, 0x63, 0x19, 0x92, 0xaa, 0xf9,
- 0x59, 0x07, 0x41, 0xb8, 0xec, 0x52, 0x6a, 0x3e, 0x2a, 0xf8, 0x9c, 0x4c, 0xa7, 0xef, 0xcd, 0x2f,
- 0xa2, 0xd9, 0xa1, 0x17, 0xfc, 0x9b, 0x9c, 0x77, 0x94, 0x1f, 0xf2, 0xe8, 0xcd, 0xc4, 0x51, 0xdc,
- 0xde, 0x76, 0xc0, 0x96, 0xd7, 0xa7, 0x91, 0xd0, 0xc1, 0xc6, 0xbb, 0x5f, 0xfe, 0xa4, 0x6f, 0x54,
- 0x25, 0xa8, 0x20, 0x39, 0xc7, 0x6e, 0x67, 0x99, 0x7f, 0x21, 0xd5, 0xfb, 0x94, 0x8f, 0xf3, 0xa7,
- 0xeb, 0x09, 0xc3, 0x0b, 0xf7, 0xf6, 0xbe, 0x42, 0x7e, 0xcb, 0x67, 0xd4, 0x2a, 0xf2, 0x94, 0x71,
- 0x10, 0xd7, 0x23, 0xa4, 0xe7, 0x3f, 0x48, 0x0b, 0xc0, 0x2c, 0x09, 0x70, 0x40, 0xd9, 0x08, 0x82,
- 0xb4, 0x88, 0xc6, 0x6f, 0x97, 0x05, 0xcf, 0x37, 0x7c, 0xdc, 0xc0, 0x8a, 0x95, 0x08, 0x5a, 0x1e,
- 0x4f, 0x56, 0x26, 0xc0, 0x87, 0xcc, 0x39, 0x7e, 0xc2, 0x3b, 0xae, 0x2e, 0xff, 0x23, 0xc6, 0xed,
- 0x81, 0xf7, 0xc5, 0xf2, 0xb7, 0x54, 0xe0, 0xa5, 0xc3, 0xd1, 0x1c, 0x01, 0x41, 0x5e, 0xa1, 0x3b,
- 0x7a, 0x29, 0x25, 0x5d, 0xa7, 0x9d, 0x16, 0xec, 0x7d, 0x36, 0x72, 0xa5, 0x2b, 0x75, 0x3d, 0xc8,
- 0x0a, 0x49, 0xcc, 0xa7, 0x57, 0x20, 0x2d, 0xdd, 0x78, 0xf2, 0x4d, 0x36, 0x28, 0x3f, 0x05, 0xc0,
- 0xf1, 0x97, 0x2c, 0x08, 0x47, 0xe9, 0xdb, 0x94, 0xc6, 0x15, 0x23, 0x92, 0x42, 0x14, 0x99, 0x33,
- 0x3f, 0x36, 0xcf, 0x3a, 0x77, 0x71, 0x02, 0x4f, 0xc7, 0xff, 0x91, 0xbd, 0xfc, 0x69, 0xfe, 0xe5,
- 0xc4, 0xe8, 0x2f, 0x95, 0x67, 0xb8, 0xf4, 0x06, 0x79, 0x18, 0xff, 0x19, 0x96, 0x42, 0x62, 0x16,
- 0x60, 0xb7, 0xca, 0x5e, 0x17, 0x82, 0x73, 0x3a, 0xc5, 0xe8, 0x36, 0xe3, 0x43, 0x93, 0x30, 0x8a,
- 0x9b, 0x69, 0x2a, 0xf1, 0x07, 0x4b, 0x85, 0x73, 0x7b, 0x0f, 0x58, 0x47, 0x29, 0xb8, 0xac, 0x79,
- 0x55, 0xc8, 0xc9, 0xc3, 0x37, 0xd3, 0x5c, 0xa8, 0x7a, 0xe5, 0xea, 0x68, 0x97, 0xc5, 0xcb, 0xaf,
- 0xae, 0x16, 0x29, 0x6c, 0x27, 0x1a, 0xaa, 0xe1, 0xc4, 0x02, 0x84, 0xcc, 0xfd, 0xee, 0x57, 0x5c,
- 0xb5, 0x08, 0xd8, 0xf4, 0x14, 0x6a, 0x2a, 0xca, 0x70, 0xae, 0x94, 0x8d, 0x91, 0x51, 0xbb, 0xbf,
- 0x4e, 0xd6, 0x38, 0x5b, 0x04, 0xa3, 0xdc, 0x83, 0xce, 0x49, 0xfa, 0x29, 0xfb, 0x7a, 0x27, 0x4c,
- 0x80, 0x77, 0xdb, 0x69, 0x34, 0x3b, 0x05, 0x58, 0xcf, 0xa3, 0x48, 0x06, 0x45, 0x07, 0x40, 0x9a,
- 0x7b, 0xa9, 0x3b, 0xc6, 0x24, 0xf2, 0xf3, 0x11, 0x71, 0x44, 0x26, 0xa2, 0x2f, 0x2c, 0xdc, 0x69,
- 0xdf, 0xf6, 0xde, 0x0d, 0x54, 0xc8, 0x74, 0x2d, 0xcd, 0xb4, 0xef, 0x58, 0xfa, 0xfd, 0x8e, 0xf5,
- 0x24, 0x28, 0x3e, 0xa2, 0x44, 0x01, 0x82, 0x64, 0x73, 0x53, 0x81, 0xfc, 0x90, 0xd6, 0x12, 0x06,
- 0xea, 0x89, 0xdd, 0x90, 0x74, 0x99, 0x5b, 0xbf, 0x72, 0xb9, 0x33, 0xd3, 0x2e, 0xab, 0x75, 0xd0,
- 0x11, 0x57, 0x3d, 0x3f, 0x64, 0x50, 0xad, 0xf6, 0xcc, 0x5e, 0x5d, 0x77, 0x44, 0x80, 0xe9, 0x23,
- 0x61, 0x37, 0xd4, 0xc5, 0x94, 0xed, 0x96, 0xc7, 0xc9, 0x9a, 0x62, 0xe4, 0x47, 0xca, 0xd1, 0x2b,
- 0x9a, 0xe9, 0x34, 0x6a, 0x84, 0x24, 0x60, 0x8e, 0x77, 0x7d, 0x0c, 0x40, 0x2d, 0xe1, 0x4d, 0xd8,
- 0x54, 0x48, 0xd7, 0x58, 0xb4, 0xbc, 0xb9, 0x55, 0x76, 0x97, 0xbe, 0x6f, 0x93, 0x9c, 0x2a, 0x0e,
- 0xaf, 0x96, 0x37, 0xf7, 0xa4, 0x75, 0x4f, 0x1c, 0xc8, 0x70, 0xd0, 0xcb, 0xf9, 0xb7, 0xb6, 0xfd,
- 0x0b, 0xc9, 0xd2, 0x3c, 0xd4, 0x4f, 0xc8, 0x20, 0x74, 0x80, 0x19, 0x31, 0x2c, 0x66, 0xe4, 0x61,
- 0xf0, 0x17, 0x32, 0x93, 0xc4, 0x86, 0x3e, 0x69, 0xca, 0x67, 0x77, 0x95, 0x46, 0x4d, 0x78, 0x92,
- 0x3e, 0xb6, 0xd1, 0xa1, 0xf4, 0x1e, 0xe7, 0xb2, 0xcb, 0x8d, 0xc5, 0xba, 0xf8, 0x30, 0x1f, 0x44,
- 0xc5, 0x68, 0x31, 0x0e, 0xe4, 0xd7, 0x11, 0xfb, 0x75, 0x6a, 0xab, 0x1e, 0x92, 0x1b, 0x83, 0xb7,
- 0x08, 0x8a, 0xf0, 0x52, 0x92, 0xfe, 0x24, 0xe4, 0x60, 0x16, 0xe5, 0x38, 0x20, 0x8d, 0x04, 0x41,
- 0xf3, 0x54, 0x10, 0xfd, 0x82, 0x37, 0xd2, 0xad, 0xde, 0xf1, 0x8b, 0x9c, 0x4a, 0xa6, 0x98, 0xb2,
- 0x3d, 0xf5, 0xf3, 0xcf, 0xb2, 0xaf, 0x0b, 0x76, 0xdf, 0x1b, 0x39, 0xb3, 0xf4, 0xdb, 0xff, 0x64,
- 0xc6, 0x2b, 0x13, 0x60, 0xa2, 0x66, 0xfd, 0x3f, 0x61, 0xfc, 0x57, 0x17, 0x9e, 0xf0, 0x63, 0x97,
- 0x62, 0x74, 0xf6, 0xab, 0xd2, 0x5c, 0x7a, 0x03, 0xdd, 0x0c, 0x9e, 0xed, 0x4b, 0x21, 0x31, 0x0b,
- 0x99, 0xaa, 0x16, 0x04, 0xc2, 0x95, 0x8c, 0x4a, 0x63, 0xeb, 0xf0, 0x49, 0x21, 0x0a, 0xad, 0xf8,
- 0x57, 0x0b, 0xf5, 0x36, 0xf2, 0x0d, 0x55, 0x91, 0x62, 0x01, 0x42, 0x66, 0x9f, 0x77, 0xca, 0x2e,
- 0xac, 0xd5, 0x15, 0x99, 0xe2, 0xc4, 0xa3, 0xd8, 0xdc, 0xe6, 0x2c, 0xc2, 0xf5, 0x5c, 0x56, 0xdd,
- 0xdc, 0xb5, 0xfc, 0x63, 0x12, 0x79, 0x98, 0xe9, 0xd9, 0x22, 0x13, 0x51, 0xf6, 0x16, 0x6e, 0xd5,
- 0x27, 0x6b, 0x1c, 0xcc, 0x02, 0xb0, 0x6e, 0xa0, 0x67, 0xc5, 0x7d, 0xf5, 0x9c, 0x3d, 0xf2, 0x26,
- 0xe9, 0xca, 0xff, 0xfe, 0x32, 0x28, 0xb7, 0x7b, 0x66, 0x2f, 0xcf, 0xda, 0x22, 0x40, 0x95, 0xf0,
- 0x12, 0x14, 0x1f, 0x51, 0x22, 0xe1, 0x41, 0x32, 0xd8, 0xc8, 0xa1, 0x7e, 0x48, 0x6b, 0x09, 0x03,
- 0xb6, 0x4b, 0xfa, 0x9a, 0x52, 0xdb, 0xc6, 0x0e, 0x64, 0x38, 0x68, 0x84, 0x9d, 0xba, 0x5b, 0x9f,
- 0x4d, 0x95, 0x1a, 0x35, 0x42, 0x12, 0x30, 0x47, 0xda, 0xdf, 0x06, 0x20, 0xf7, 0x91, 0xc7, 0x6c,
- 0x83, 0x34, 0xf9, 0x07, 0x72, 0x8a, 0xe9, 0x9c, 0xdb, 0x35, 0xb4, 0x0f, 0x49, 0xec, 0xa0, 0xba,
- 0x78, 0xea, 0x19, 0xa8, 0x62, 0x43, 0x1f, 0xd5, 0x65, 0xd2, 0xda, 0xab, 0x23, 0xc7, 0x3c, 0x49,
- 0x63, 0xf4, 0xe8, 0x30, 0x51, 0x33, 0x9f, 0xfe, 0xd1, 0x7e, 0xca, 0xea, 0x4f, 0x78, 0xd0, 0xaa,
- 0x98, 0x2a, 0x08, 0x9f, 0x41, 0xfa, 0x69, 0xb7, 0x6f, 0x99, 0xa4, 0x4e, 0x25, 0x53, 0x4c, 0x59,
- 0x56, 0x8b, 0xeb, 0xad, 0x71, 0x62, 0xb0, 0x6c, 0x6e, 0x73, 0x16, 0x61, 0x9b, 0x2e, 0x2b, 0x8f,
- 0xad, 0x55, 0x0b, 0x02, 0x61, 0xab, 0x46, 0x25, 0xd0, 0x94, 0x78, 0xc5, 0xf1, 0x05, 0xb7, 0x7c,
- 0x09, 0x0a, 0xee, 0xc9, 0x11, 0x91, 0xc1, 0x19, 0x6c, 0x64, 0xb1, 0x3f, 0x24, 0xd4, 0xe5, 0xe0,
- 0xf2, 0xd4, 0x0e, 0x66, 0x01, 0x58, 0x37, 0x50, 0xd2, 0x83, 0xdf, 0x9b, 0x4e, 0xff, 0x79, 0x13,
- 0x3c, 0x75, 0xed, 0x54, 0x31, 0xc0, 0xee, 0x8b, 0xd3, 0x69, 0x6d, 0xb4, 0xf0, 0x82, 0x1e, 0xc5,
- 0xc7, 0xab, 0x0d, 0xfb, 0x21, 0x09, 0x18, 0xc2, 0x6d, 0x8e, 0x03, 0x10, 0x9a, 0xa9, 0x82, 0x36,
- 0xb7, 0xcb, 0xe4, 0x01, 0xd1, 0xb4, 0x23, 0xf3, 0x68, 0x4a, 0x3c, 0x83, 0x99, 0xe3, 0xba, 0x3e,
- 0x4c, 0x15, 0x04, 0xae, 0xc1, 0x7d, 0xd5, 0xba, 0xd6, 0xad, 0x52, 0x27, 0xf3, 0xc8, 0x26, 0xcd,
- 0x82, 0xb4, 0xe7, 0x9c, 0xf1, 0xe5, 0x0c, 0x61, 0xd7, 0x47, 0xe0, 0x08, 0x4d, 0xb5, 0x41, 0x1b,
- 0x79, 0x6a, 0x07, 0x33, 0xe1, 0x2c, 0xfa, 0x28, 0x69, 0xa0, 0x8e, 0xac, 0x27, 0x9e, 0xdd, 0xe8,
- 0xdd, 0x35, 0xe2, 0xf8, 0x91, 0x16, 0x7d, 0x14, 0xd5, 0x50, 0x47, 0x56, 0xf2, 0x4f, 0x8f, 0x74,
- 0x26, 0xeb, 0x02, 0x57, 0x81, 0xdf, 0x8b, 0x5d, 0x6b, 0xb7, 0x29, 0xf2, 0x98, 0x64, 0x13, 0x87,
- 0xe8, 0x4a, 0xe1, 0x65, 0xb1, 0x47, 0x52, 0x86, 0x6a, 0x5d, 0x9b, 0xdd, 0x26, 0x19, 0x74, 0x51,
- 0x13, 0x94, 0x01, 0xca, 0xa1, 0x8e, 0xa4, 0xcf, 0xd4, 0xba, 0xf5, 0x79, 0x4c, 0x32, 0xe8, 0xa2,
- 0xb1, 0x4d, 0xa0, 0xdd, 0x5d, 0x15, 0x38, 0xb8, 0x40, 0xa5, 0x07, 0x91, 0x81, 0xf6, 0xb9, 0x7e,
- 0x4a, 0x93, 0x40, 0x72, 0x4d, 0xdc, 0xce, 0xf1, 0xfe, 0x42, 0x69, 0x35, 0xeb, 0xdd, 0x25, 0x8d,
- 0x84, 0x32, 0xa3, 0x40, 0x7d, 0x44, 0x17, 0x2a, 0xff, 0xa8, 0xdb, 0x1a, 0x55, 0xa0, 0x42, 0x5b,
- 0x7f, 0xec, 0x43, 0xef, 0x6d, 0x8d, 0xe1, 0x63, 0x41, 0x4f, 0xb5, 0xbe, 0x3f, 0x8b, 0xde, 0xa8,
- 0xdb, 0xb3, 0xa6, 0x24, 0x1d, 0xb7, 0x66, 0x5f, 0xfd, 0xbf, 0x7c, 0x44, 0xea, 0x5a, 0x8c, 0x34,
- 0x20, 0x6d, 0x46, 0x8b, 0x0d, 0x7e, 0x90, 0x16, 0x43, 0x58, 0x12, 0xe0, 0x80, 0x71, 0x10, 0xc7,
- 0xee, 0xcc, 0xa5, 0xb9, 0x3d, 0xe6, 0x49, 0xcd, 0x42, 0xb2, 0xa0, 0xcf, 0x3e, 0x0c, 0x77, 0x11,
- 0x15, 0x12, 0x45, 0x16, 0x2d, 0x2f, 0xbf, 0x84, 0xfc, 0x55, 0xce, 0x6b, 0x54, 0x27, 0xeb, 0xe2,
- 0x65, 0x72, 0xac, 0xec, 0xdd, 0x92, 0x84, 0xb5, 0xf9, 0x91, 0xf1, 0xf8, 0x57, 0x6d, 0xd3, 0xea,
- 0x9e, 0xac, 0x4c, 0x43, 0xcd, 0x5b, 0x72, 0xfc, 0x47, 0x76, 0x9f, 0x5c, 0x3d, 0x46, 0x4f, 0x19,
- 0x50, 0x0d, 0xaf, 0x71, 0xfd, 0xc3, 0xab, 0x27, 0x46, 0x9c, 0x2d, 0x73, 0x83, 0x3b, 0x28, 0xcf,
- 0xab, 0xd3, 0x4f, 0xde, 0xed, 0x0a, 0x5d, 0x6e, 0xf8, 0x7b, 0x43, 0xd7, 0xe9, 0x10, 0xb4, 0x3c,
- 0x0f, 0x8c, 0xaa, 0x15, 0x9d, 0x30, 0xda, 0x52, 0x44, 0x8b, 0x8a, 0x2d, 0x3c, 0xc1, 0xe6, 0xa0,
- 0xf4, 0x52, 0x4a, 0xba, 0x8d, 0xf9, 0x2c, 0x1b, 0xfa, 0x6c, 0xe4, 0x89, 0x56, 0xea, 0x7a, 0x53,
- 0x3a, 0xf3, 0xa9, 0x88, 0xbd, 0x61, 0xf5, 0xc0, 0xfb, 0x86, 0x56, 0xa6, 0xe8, 0x97, 0x1d, 0x85,
- 0xc1, 0x2d, 0x49, 0x27, 0xad, 0xa8, 0x03, 0x89, 0x45, 0x61, 0x38, 0x02, 0x82, 0xbc, 0x81, 0x76,
- 0xda, 0x33, 0xb8, 0xbf, 0x9e, 0xd8, 0x83, 0xa2, 0xf1, 0xcd, 0x28, 0x43, 0xee, 0x03, 0x6d, 0x95,
- 0x21, 0xed, 0x58, 0x10, 0x8e, 0x11, 0x75, 0xeb, 0x4f, 0x2a, 0x46, 0xe7, 0x84, 0x28, 0xf1, 0x66,
- 0xef, 0x4c, 0xbb, 0x22, 0xbe, 0x89, 0xac, 0x30, 0x4e, 0xc0, 0xf4, 0xc8, 0x3a, 0x55, 0x96, 0xb0,
- 0x14, 0x92, 0x5b, 0x8d, 0xae, 0x40, 0x5a, 0x79, 0xf0, 0x27, 0x9a, 0x6c, 0x50, 0x7e, 0x0a, 0x43,
- 0xb0, 0xcd, 0xbe, 0x46, 0xde, 0x7a, 0xdd, 0x45, 0x4c, 0xd7, 0x53, 0x96, 0x85, 0xaf, 0x58, 0xdf,
- 0x4b, 0x13, 0x5e, 0xe9, 0xce, 0xb3, 0x2b, 0x0c, 0xf2, 0x30, 0x3d, 0x32, 0xef, 0x84, 0xc4, 0x2c,
- 0x85, 0xb2, 0xbd, 0xdb, 0xfe, 0x2b, 0xf2, 0xd7, 0xf3, 0xda, 0x8f, 0x1d, 0x51, 0xf9, 0xa3, 0xfa,
- 0x7e, 0x6c, 0x5d, 0x74, 0xee, 0xe2, 0x04, 0x9e, 0x4d, 0x3d, 0xe1, 0xb9, 0x3b, 0xd2, 0x3f, 0x09,
- 0x0e, 0x0c, 0xb4, 0x8e, 0x1e, 0x5f, 0x3f, 0xaf, 0x48, 0xf9, 0xde, 0x2a, 0x38, 0x98, 0x07, 0x01,
- 0xf5, 0xd2, 0x54, 0x21, 0x0e, 0x96, 0xc9, 0xe6, 0xf6, 0x1e, 0xb0, 0x8e, 0x52, 0xb3, 0x9b, 0xf2,
- 0x3b, 0x73, 0xb7, 0x13, 0x3e, 0x0e, 0x10, 0x3d, 0xf7, 0xf4, 0x02, 0xa1, 0xec, 0xce, 0xfc, 0x24,
- 0xc0, 0xad, 0x57, 0xbc, 0x2e, 0xc7, 0xe6, 0x74, 0x49, 0x13, 0x6c, 0x05, 0x86, 0xe5, 0x60, 0xd7,
- 0x64, 0xf2, 0xb2, 0x77, 0x5e, 0xfd, 0x61, 0x48, 0xf5, 0xe3, 0xa5, 0xff, 0x53, 0x34, 0x32, 0x4b,
- 0x9f, 0x2c, 0x52, 0xd8, 0x4e, 0x34, 0x97, 0x01, 0x4b, 0x04, 0xcb, 0x5b, 0x39, 0x1f, 0xae, 0xb8,
- 0x51, 0x8d, 0xb1, 0xea, 0x7e, 0xac, 0x4e, 0xda, 0x4a, 0xee, 0x79, 0x74, 0x87, 0x62, 0xc9, 0x6e,
- 0xaa, 0x53, 0x51, 0x45, 0x6e, 0x65, 0xb8, 0x93, 0xf4, 0x09, 0x17, 0xd0, 0xed, 0x49, 0x55, 0x9d,
- 0x67, 0xb1, 0x90, 0x19, 0x18, 0x4c, 0x8d, 0x8c, 0xe1, 0x75, 0x59, 0xf6, 0x5f, 0xdf, 0xd2, 0x6b,
- 0x9c, 0x6f, 0x70, 0xb6, 0x08, 0x85, 0x7b, 0xc5, 0x5f, 0x92, 0x37, 0x52, 0x35, 0xf4, 0x4e, 0x98,
- 0x52, 0xce, 0x93, 0x84, 0x38, 0x1d, 0xa2, 0x1e, 0x5e, 0x78, 0x85, 0x7d, 0x8b, 0x89, 0x29, 0x4e,
- 0xa9, 0x10, 0x73, 0x2b, 0x28, 0xd4, 0x54, 0x57, 0xe0, 0x9f, 0xeb, 0xd9, 0xe1, 0xa2, 0xb5, 0xbd,
- 0x0d, 0x4f, 0x96, 0xe0, 0x58, 0xee, 0xd3, 0x6b, 0x5c, 0x6f, 0x22, 0x23, 0x34, 0x73, 0xe7, 0x21,
- 0xf6, 0x91, 0x76, 0x4f, 0x48, 0x27, 0x25, 0x22, 0xe2, 0x88, 0x4c, 0x87, 0x5e, 0x58, 0x7b, 0xd2,
- 0x38, 0x30, 0x95, 0x7d, 0x78, 0xbf, 0xfc, 0xf9, 0xe3, 0x62, 0xfe, 0xa8, 0xe0, 0x25, 0x1c, 0x04,
- 0xc3, 0xee, 0x75, 0xd2, 0x68, 0x76, 0x0a, 0xb0, 0x5d, 0x85, 0x90, 0x0c, 0x8a, 0x0e, 0x80, 0xf7,
- 0xb3, 0x8e, 0x9c, 0x28, 0x98, 0xcb, 0x31, 0x81, 0x58, 0x41, 0xaf, 0x9f, 0x89, 0x44, 0xb8, 0xff,
- 0x48, 0x50, 0x7c, 0x87, 0x88, 0x02, 0xc7, 0xc8, 0xe6, 0xa6, 0xc1, 0x3b, 0xe3, 0x6f, 0x24, 0x0c,
- 0x86, 0xf1, 0x9f, 0xb5, 0xb8, 0x9a, 0x1e, 0x13, 0xe7, 0x4c, 0x73, 0x14, 0x5d, 0x12, 0x43, 0xda,
- 0x7d, 0x2f, 0x7f, 0x1a, 0xa8, 0x53, 0xe8, 0x5a, 0x59, 0xab, 0x1d, 0xb0, 0x37, 0x39, 0xdf, 0x29,
- 0xd9, 0x70, 0x9a, 0xd1, 0xd8, 0x69, 0x6f, 0x66, 0xe5, 0x5b, 0xd4, 0x4a, 0xe2, 0xe8, 0x8d, 0xb5,
- 0x22, 0xae, 0x7a, 0x7e, 0xc8, 0xa0, 0x99, 0x2f, 0x5b, 0xbc, 0xba, 0xee, 0x88, 0xc3, 0x11, 0x46,
- 0xec, 0x0f, 0x99, 0x4c, 0xf8, 0x38, 0x40, 0xf4, 0x5a, 0x56, 0x08, 0xc1, 0x36, 0xbe, 0x76, 0x90,
- 0x17, 0xd1, 0x79, 0xe3, 0xe8, 0xf1, 0xb6, 0xbd, 0xe4, 0xb1, 0x66, 0x65, 0x5c, 0x95, 0xea, 0x63,
- 0x0c, 0xcf, 0x88, 0x7b, 0xdb, 0x81, 0x36, 0x96, 0x50, 0x1d, 0x76, 0x24, 0x30, 0x2a, 0x06, 0x80,
- 0xf7, 0x11, 0x68, 0xd4, 0xcb, 0x48, 0xc0, 0xdf, 0xee, 0xfa, 0x18, 0x80, 0x5a, 0x01, 0x9a, 0x73,
- 0x39, 0xb0, 0x8b, 0xe6, 0xfb, 0xd0, 0x19, 0x04, 0xef, 0x10, 0xaa, 0xaf, 0xe4, 0x7c, 0xfd, 0xa5,
- 0xc2, 0x6e, 0x6b, 0x49, 0xeb, 0x19, 0xef, 0x4d, 0x51, 0xf7, 0xc4, 0x0b, 0x8e, 0x57, 0x61, 0x56,
- 0x66, 0x31, 0x8e, 0x82, 0x9b, 0x23, 0x68, 0x71, 0xed, 0x07, 0x0d, 0xf1, 0x5b, 0x86, 0x33, 0xca,
- 0x9d, 0xef, 0x6e, 0x2d, 0x8b, 0xea, 0x9e, 0x38, 0x53, 0xe0, 0x63, 0x55, 0x31, 0xad, 0xaf, 0x39,
- 0x53, 0x4e, 0x8d, 0x1f, 0xbb, 0x72, 0x47, 0xe3, 0x52, 0x0a, 0xd1, 0x7a, 0x8f, 0xd0, 0xc8, 0xef,
- 0xa8, 0x90, 0x6d, 0xb0, 0xab, 0xbb, 0xb1, 0xaa, 0xec, 0xed, 0xbf, 0xde, 0xe5, 0xfb, 0x54, 0x1c,
- 0xd8, 0xf0, 0x84, 0x4a, 0x5b, 0x06, 0x8a, 0x9b, 0xe9, 0x29, 0x80, 0x4d, 0xe6, 0xb1, 0x6c, 0x14,
- 0x23, 0x2e, 0x64, 0xe5, 0x4b, 0xcf, 0x7c, 0xd2, 0x57, 0xce, 0xee, 0xe9, 0x8c, 0x9a, 0xf0, 0xe7,
- 0xed, 0x8f, 0x87, 0xd7, 0x7b, 0x57, 0xa5, 0x09, 0x56, 0x24, 0x5c, 0xc6, 0x32, 0xe7, 0x97, 0x31,
- 0x16, 0x51, 0x67, 0x78, 0x6b, 0x9e, 0x53, 0x40, 0xe8, 0xc3, 0x32, 0x62, 0x58, 0xcc, 0x0b, 0xc2,
- 0xb2, 0x0e, 0x82, 0xb3, 0x1b, 0xa4, 0xd4, 0x7c, 0x54, 0x33, 0xfb, 0x98, 0x8d, 0x1d, 0x59, 0x5e,
- 0x49, 0xd0, 0x62, 0x1c, 0x0b, 0x6d, 0x22, 0x35, 0xea, 0xd4, 0x95, 0x3c, 0xe7, 0x36, 0xc5, 0xad,
- 0x87, 0x71, 0x81, 0x2e, 0x3b, 0xf5, 0xfb, 0xee, 0xeb, 0x3e, 0x27, 0x13, 0x59, 0x4b, 0xa2, 0x7b,
- 0x7c, 0xaf, 0x61, 0x81, 0x2b, 0x3c, 0x0d, 0xa7, 0x55, 0xd9, 0x49, 0xb7, 0x33, 0x60, 0x3e, 0x88,
- },
- { /* 9 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x6f, 0x5a, 0x3d, 0xbf, 0xad, 0xee, 0xab, 0xf1, 0xc4, 0xaf, 0x02, 0xd6, 0x1c, 0x89, 0xf2,
- 0x02, 0xde, 0xb4, 0x7a, 0xbd, 0x99, 0x1f, 0x95, 0x21, 0x4b, 0x9d, 0x04, 0x6f, 0x38, 0xd1, 0x27,
- 0x03, 0xb1, 0xee, 0x47, 0x02, 0x34, 0xf1, 0x3e, 0xd0, 0x8f, 0x32, 0x06, 0xb9, 0x24, 0x58, 0xd5,
- 0x04, 0x7f, 0xab, 0xf4, 0xb9, 0xf1, 0x3e, 0xe9, 0x42, 0x96, 0xf9, 0x08, 0xde, 0x70, 0x61, 0x4e,
- 0x05, 0x10, 0xf1, 0xc9, 0x06, 0x5c, 0xd0, 0x42, 0xb3, 0x52, 0x56, 0x0a, 0x08, 0x6c, 0xe8, 0xbc,
- 0x06, 0xa1, 0x1f, 0x8e, 0x04, 0x68, 0x21, 0x7c, 0x63, 0xdd, 0x64, 0x0c, 0xb1, 0x48, 0xb0, 0x69,
- 0x07, 0xce, 0x45, 0xb3, 0xbb, 0xc5, 0xcf, 0xd7, 0x92, 0x19, 0xcb, 0x0e, 0x67, 0x54, 0x39, 0x9b,
- 0x08, 0xfe, 0x95, 0x2b, 0xb1, 0x21, 0x7c, 0x11, 0x84, 0xef, 0x31, 0x10, 0x7f, 0xe0, 0xc2, 0x9c,
- 0x09, 0x91, 0xcf, 0x16, 0x0e, 0x8c, 0x92, 0xba, 0x75, 0x2b, 0x9e, 0x12, 0xa9, 0xfc, 0x4b, 0x6e,
- 0x0a, 0x20, 0x21, 0x51, 0x0c, 0xb8, 0x63, 0x84, 0xa5, 0xa4, 0xac, 0x14, 0x10, 0xd8, 0x13, 0xbb,
- 0x0b, 0x4f, 0x7b, 0x6c, 0xb3, 0x15, 0x8d, 0x2f, 0x54, 0x60, 0x03, 0x16, 0xc6, 0xc4, 0x9a, 0x49,
- 0x0c, 0x81, 0x3e, 0xdf, 0x08, 0xd0, 0x42, 0xf8, 0xc6, 0x79, 0xc8, 0x18, 0xa1, 0x90, 0xa3, 0xd2,
- 0x0d, 0xee, 0x64, 0xe2, 0xb7, 0x7d, 0xac, 0x53, 0x37, 0xbd, 0x67, 0x1a, 0x77, 0x8c, 0x2a, 0x20,
- 0x0e, 0x5f, 0x8a, 0xa5, 0xb5, 0x49, 0x5d, 0x6d, 0xe7, 0x32, 0x55, 0x1c, 0xce, 0xa8, 0x72, 0xf5,
- 0x0f, 0x30, 0xd0, 0x98, 0x0a, 0xe4, 0xb3, 0xc6, 0x16, 0xf6, 0xfa, 0x1e, 0x18, 0xb4, 0xfb, 0x07,
- 0x10, 0x3f, 0xe9, 0x56, 0xa1, 0x42, 0xf8, 0x22, 0xcb, 0x1d, 0x62, 0x20, 0xfe, 0x03, 0x47, 0xfb,
- 0x11, 0x50, 0xb3, 0x6b, 0x1e, 0xef, 0x16, 0x89, 0x3a, 0xd9, 0xcd, 0x22, 0x28, 0x1f, 0xce, 0x09,
- 0x12, 0xe1, 0x5d, 0x2c, 0x1c, 0xdb, 0xe7, 0xb7, 0xea, 0x56, 0xff, 0x24, 0x91, 0x3b, 0x96, 0xdc,
- 0x13, 0x8e, 0x07, 0x11, 0xa3, 0x76, 0x09, 0x1c, 0x1b, 0x92, 0x50, 0x26, 0x47, 0x27, 0x1f, 0x2e,
- 0x14, 0x40, 0x42, 0xa2, 0x18, 0xb3, 0xc6, 0xcb, 0x89, 0x8b, 0x9b, 0x28, 0x20, 0x73, 0x26, 0xb5,
- 0x15, 0x2f, 0x18, 0x9f, 0xa7, 0x1e, 0x28, 0x60, 0x78, 0x4f, 0x34, 0x2a, 0xf6, 0x6f, 0xaf, 0x47,
- 0x16, 0x9e, 0xf6, 0xd8, 0xa5, 0x2a, 0xd9, 0x5e, 0xa8, 0xc0, 0x06, 0x2c, 0x4f, 0x4b, 0xf7, 0x92,
- 0x17, 0xf1, 0xac, 0xe5, 0x1a, 0x87, 0x37, 0xf5, 0x59, 0x04, 0xa9, 0x2e, 0x99, 0x57, 0x7e, 0x60,
- 0x18, 0xc1, 0x7c, 0x7d, 0x10, 0x63, 0x84, 0x33, 0x4f, 0xf2, 0x53, 0x30, 0x81, 0xe3, 0x85, 0x67,
- 0x19, 0xae, 0x26, 0x40, 0xaf, 0xce, 0x6a, 0x98, 0xbe, 0x36, 0xfc, 0x32, 0x57, 0xff, 0x0c, 0x95,
- 0x1a, 0x1f, 0xc8, 0x07, 0xad, 0xfa, 0x9b, 0xa6, 0x6e, 0xb9, 0xce, 0x34, 0xee, 0xdb, 0x54, 0x40,
- 0x1b, 0x70, 0x92, 0x3a, 0x12, 0x57, 0x75, 0x0d, 0x9f, 0x7d, 0x61, 0x36, 0x38, 0xc7, 0xdd, 0xb2,
- 0x1c, 0xbe, 0xd7, 0x89, 0xa9, 0x92, 0xba, 0xda, 0x0d, 0x64, 0xaa, 0x38, 0x5f, 0x93, 0xe4, 0x29,
- 0x1d, 0xd1, 0x8d, 0xb4, 0x16, 0x3f, 0x54, 0x71, 0xfc, 0xa0, 0x05, 0x3a, 0x89, 0x8f, 0x6d, 0xdb,
- 0x1e, 0x60, 0x63, 0xf3, 0x14, 0x0b, 0xa5, 0x4f, 0x2c, 0x2f, 0x37, 0x3c, 0x30, 0xab, 0x35, 0x0e,
- 0x1f, 0x0f, 0x39, 0xce, 0xab, 0xa6, 0x4b, 0xe4, 0xdd, 0xeb, 0x98, 0x3e, 0xe6, 0xb7, 0xbc, 0xfc,
- 0x20, 0x7e, 0x11, 0xac, 0x81, 0x84, 0x33, 0x44, 0x55, 0x3a, 0xc4, 0x40, 0x3f, 0x06, 0x8e, 0x35,
- 0x21, 0x11, 0x4b, 0x91, 0x3e, 0x29, 0xdd, 0xef, 0xa4, 0xfe, 0x6b, 0x42, 0xe9, 0x1a, 0x07, 0xc7,
- 0x22, 0xa0, 0xa5, 0xd6, 0x3c, 0x1d, 0x2c, 0xd1, 0x74, 0x71, 0x59, 0x44, 0x50, 0x3e, 0x5f, 0x12,
- 0x23, 0xcf, 0xff, 0xeb, 0x83, 0xb0, 0xc2, 0x7a, 0x85, 0xb5, 0xf6, 0x46, 0x86, 0x22, 0xd6, 0xe0,
- 0x24, 0x01, 0xba, 0x58, 0x38, 0x75, 0x0d, 0xad, 0x17, 0xac, 0x3d, 0x48, 0xe1, 0x76, 0xef, 0x7b,
- 0x25, 0x6e, 0xe0, 0x65, 0x87, 0xd8, 0xe3, 0x06, 0xe6, 0x68, 0x92, 0x4a, 0x37, 0x6a, 0x66, 0x89,
- 0x26, 0xdf, 0x0e, 0x22, 0x85, 0xec, 0x12, 0x38, 0x36, 0xe7, 0xa0, 0x4c, 0x8e, 0x4e, 0x3e, 0x5c,
- 0x27, 0xb0, 0x54, 0x1f, 0x3a, 0x41, 0xfc, 0x93, 0xc7, 0x23, 0x0f, 0x4e, 0x58, 0x52, 0xb7, 0xae,
- 0x28, 0x80, 0x84, 0x87, 0x30, 0xa5, 0x4f, 0x55, 0xd1, 0xd5, 0xf5, 0x50, 0x40, 0xe6, 0x4c, 0xa9,
- 0x29, 0xef, 0xde, 0xba, 0x8f, 0x08, 0xa1, 0xfe, 0x20, 0x11, 0x5a, 0x52, 0x96, 0xfa, 0xc5, 0x5b,
- 0x2a, 0x5e, 0x30, 0xfd, 0x8d, 0x3c, 0x50, 0xc0, 0xf0, 0x9e, 0x68, 0x54, 0x2f, 0xde, 0x9d, 0x8e,
- 0x2b, 0x31, 0x6a, 0xc0, 0x32, 0x91, 0xbe, 0x6b, 0x01, 0x5a, 0xc7, 0x56, 0xf9, 0xc2, 0x14, 0x7c,
- 0x2c, 0xff, 0x2f, 0x73, 0x89, 0x54, 0x71, 0xbc, 0x93, 0x43, 0x0c, 0x58, 0x9e, 0x96, 0x2d, 0xe7,
- 0x2d, 0x90, 0x75, 0x4e, 0x36, 0xf9, 0x9f, 0x17, 0x62, 0x87, 0xa3, 0x5a, 0x48, 0x8a, 0xa4, 0x15,
- 0x2e, 0x21, 0x9b, 0x09, 0x34, 0xcd, 0x6e, 0x29, 0xb2, 0x08, 0x91, 0x5c, 0xf1, 0xae, 0xfc, 0xc0,
- 0x2f, 0x4e, 0xc1, 0x34, 0x8b, 0x60, 0x80, 0x82, 0x43, 0xcc, 0x3e, 0x5e, 0x27, 0xb2, 0x75, 0x32,
- 0x30, 0x41, 0xf8, 0xfa, 0x20, 0xc6, 0xcb, 0x66, 0x9e, 0x27, 0xa6, 0x60, 0xc1, 0x05, 0xc9, 0xce,
- 0x31, 0x2e, 0xa2, 0xc7, 0x9f, 0x6b, 0x25, 0xcd, 0x6f, 0xe3, 0x09, 0x62, 0x17, 0x19, 0x40, 0x3c,
- 0x32, 0x9f, 0x4c, 0x80, 0x9d, 0x5f, 0xd4, 0xf3, 0xbf, 0x6c, 0x3b, 0x64, 0xae, 0x3d, 0x18, 0xe9,
- 0x33, 0xf0, 0x16, 0xbd, 0x22, 0xf2, 0x3a, 0x58, 0x4e, 0xa8, 0x94, 0x66, 0x78, 0x21, 0x91, 0x1b,
- 0x34, 0x3e, 0x53, 0x0e, 0x99, 0x37, 0xf5, 0x8f, 0xdc, 0xb1, 0x5f, 0x68, 0x1f, 0x75, 0xa8, 0x80,
- 0x35, 0x51, 0x09, 0x33, 0x26, 0x9a, 0x1b, 0x24, 0x2d, 0x75, 0xf0, 0x6a, 0xc9, 0x69, 0x21, 0x72,
- 0x36, 0xe0, 0xe7, 0x74, 0x24, 0xae, 0xea, 0x1a, 0xfd, 0xfa, 0xc2, 0x6c, 0x70, 0x4d, 0x79, 0xa7,
- 0x37, 0x8f, 0xbd, 0x49, 0x9b, 0x03, 0x04, 0xb1, 0x0c, 0x3e, 0x6d, 0x6e, 0xa6, 0x51, 0xf0, 0x55,
- 0x38, 0xbf, 0x6d, 0xd1, 0x91, 0xe7, 0xb7, 0x77, 0x1a, 0xc8, 0x97, 0x70, 0xbe, 0xe5, 0x0b, 0x52,
- 0x39, 0xd0, 0x37, 0xec, 0x2e, 0x4a, 0x59, 0xdc, 0xeb, 0x0c, 0x38, 0x72, 0x68, 0xf9, 0x82, 0xa0,
- 0x3a, 0x61, 0xd9, 0xab, 0x2c, 0x7e, 0xa8, 0xe2, 0x3b, 0x83, 0x0a, 0x74, 0xd1, 0xdd, 0xda, 0x75,
- 0x3b, 0x0e, 0x83, 0x96, 0x93, 0xd3, 0x46, 0x49, 0xca, 0x47, 0xa5, 0x76, 0x07, 0xc1, 0x53, 0x87,
- 0x3c, 0xc0, 0xc6, 0x25, 0x28, 0x16, 0x89, 0x9e, 0x58, 0x5e, 0x6e, 0x78, 0x60, 0x95, 0x6a, 0x1c,
- 0x3d, 0xaf, 0x9c, 0x18, 0x97, 0xbb, 0x67, 0x35, 0xa9, 0x9a, 0xc1, 0x7a, 0xb6, 0x89, 0xe3, 0xee,
- 0x3e, 0x1e, 0x72, 0x5f, 0x95, 0x8f, 0x96, 0x0b, 0x79, 0x15, 0xf3, 0x7c, 0x0f, 0xad, 0xbb, 0x3b,
- 0x3f, 0x71, 0x28, 0x62, 0x2a, 0x22, 0x78, 0xa0, 0x88, 0xd1, 0x5c, 0x7e, 0xd9, 0xb1, 0x32, 0xc9,
- 0x40, 0xfc, 0x22, 0x9b, 0xc1, 0xcb, 0x66, 0x88, 0xaa, 0x74, 0x4b, 0x80, 0x7e, 0x0c, 0xdf, 0x6a,
- 0x41, 0x93, 0x78, 0xa6, 0x7e, 0x66, 0x88, 0x23, 0x5b, 0xb0, 0xe4, 0x82, 0xa8, 0x10, 0x56, 0x98,
- 0x42, 0x22, 0x96, 0xe1, 0x7c, 0x52, 0x79, 0x1d, 0x8b, 0x3f, 0xd6, 0x84, 0x11, 0x34, 0x0e, 0x4d,
- 0x43, 0x4d, 0xcc, 0xdc, 0xc3, 0xff, 0x97, 0xb6, 0x7a, 0xfb, 0x79, 0x86, 0xc7, 0x28, 0x87, 0xbf,
- 0x44, 0x83, 0x89, 0x6f, 0x78, 0x3a, 0x58, 0x61, 0xe8, 0xe2, 0xb2, 0x88, 0xa0, 0x7c, 0xbe, 0x24,
- 0x45, 0xec, 0xd3, 0x52, 0xc7, 0x97, 0xb6, 0xca, 0x19, 0x26, 0x1d, 0x8a, 0x76, 0x60, 0x37, 0xd6,
- 0x46, 0x5d, 0x3d, 0x15, 0xc5, 0xa3, 0x47, 0xf4, 0xc9, 0xa9, 0x2f, 0x8c, 0xcf, 0x44, 0x6f, 0x03,
- 0x47, 0x32, 0x67, 0x28, 0x7a, 0x0e, 0xa9, 0x5f, 0x38, 0x6d, 0x80, 0x8e, 0x19, 0x58, 0xe6, 0xf1,
- 0x48, 0x02, 0xb7, 0xb0, 0x70, 0xea, 0x1a, 0x99, 0x2e, 0x9b, 0x7a, 0x90, 0x01, 0xec, 0x1d, 0xf6,
- 0x49, 0x6d, 0xed, 0x8d, 0xcf, 0x47, 0xf4, 0x32, 0xdf, 0x5f, 0xd5, 0x92, 0xd7, 0xf0, 0x94, 0x04,
- 0x4a, 0xdc, 0x03, 0xca, 0xcd, 0x73, 0x05, 0x0c, 0x0f, 0xd0, 0xe7, 0x94, 0x6e, 0xd4, 0xcc, 0xd1,
- 0x4b, 0xb3, 0x59, 0xf7, 0x72, 0xde, 0xeb, 0xa7, 0xfe, 0x14, 0x48, 0x96, 0xb8, 0xc8, 0x45, 0x23,
- 0x4c, 0x7d, 0x1c, 0x44, 0xc9, 0x1b, 0x24, 0x70, 0x6c, 0x0d, 0x83, 0x98, 0xdf, 0x9c, 0x7c, 0xb8,
- 0x4d, 0x12, 0x46, 0x79, 0x76, 0xb6, 0xca, 0xdb, 0x9d, 0xc9, 0x2c, 0x9a, 0x09, 0x80, 0xf5, 0x4a,
- 0x4e, 0xa3, 0xa8, 0x3e, 0x74, 0x82, 0x3b, 0xe5, 0x4d, 0x46, 0x1e, 0x9c, 0xb0, 0xa4, 0xad, 0x9f,
- 0x4f, 0xcc, 0xf2, 0x03, 0xcb, 0x2f, 0xd5, 0x4e, 0xbc, 0x82, 0xb1, 0x9e, 0x66, 0xb8, 0x24, 0x6d,
- 0x50, 0xc3, 0xcb, 0xcd, 0x60, 0x89, 0x9e, 0xaa, 0x61, 0x69, 0x29, 0xa0, 0x80, 0x0f, 0x98, 0x91,
- 0x51, 0xac, 0x91, 0xf0, 0xdf, 0x24, 0x70, 0x01, 0x90, 0xad, 0x86, 0xa2, 0x56, 0x13, 0x11, 0x63,
- 0x52, 0x1d, 0x7f, 0xb7, 0xdd, 0x10, 0x81, 0x3f, 0x40, 0x22, 0xb4, 0xa4, 0xef, 0x37, 0x49, 0xb6,
- 0x53, 0x72, 0x25, 0x8a, 0x62, 0xbd, 0x6f, 0x94, 0xb1, 0xe6, 0x1b, 0xa6, 0x39, 0x2b, 0xc0, 0x44,
- 0x54, 0xbc, 0x60, 0x39, 0xd9, 0x78, 0xa0, 0x43, 0x23, 0xff, 0xd0, 0xa8, 0x5e, 0x7f, 0xf9, 0xdf,
- 0x55, 0xd3, 0x3a, 0x04, 0x66, 0xd5, 0x4e, 0xe8, 0xd2, 0x3b, 0x7f, 0xaa, 0x88, 0x63, 0x70, 0x2d,
- 0x56, 0x62, 0xd4, 0x43, 0x64, 0xe1, 0xbf, 0xd6, 0x02, 0xb4, 0x4d, 0xac, 0x31, 0x47, 0x28, 0xf8,
- 0x57, 0x0d, 0x8e, 0x7e, 0xdb, 0x4c, 0x51, 0x7d, 0xf3, 0x70, 0xe2, 0xae, 0xe7, 0x5b, 0xa1, 0x0a,
- 0x58, 0x3d, 0x5e, 0xe6, 0xd1, 0xa8, 0xe2, 0xbb, 0xe5, 0x86, 0x18, 0xb0, 0xff, 0xef, 0x5a, 0x0d,
- 0x59, 0x52, 0x04, 0xdb, 0x6e, 0x05, 0x0c, 0x10, 0x14, 0x42, 0xb7, 0xb2, 0x29, 0xf3, 0xd3, 0xff,
- 0x5a, 0xe3, 0xea, 0x9c, 0x6c, 0x31, 0xfd, 0x2e, 0xc4, 0xcd, 0x85, 0xb4, 0x90, 0xd7, 0x8b, 0x2a,
- 0x5b, 0x8c, 0xb0, 0xa1, 0xd3, 0x9c, 0x13, 0x85, 0x35, 0x09, 0x2a, 0xb6, 0x46, 0xcb, 0x02, 0xd8,
- 0x5c, 0x42, 0xf5, 0x12, 0x68, 0x59, 0xdc, 0x52, 0xa7, 0x10, 0xe1, 0xb8, 0x21, 0x9f, 0x3b, 0x43,
- 0x5d, 0x2d, 0xaf, 0x2f, 0xd7, 0xf4, 0x32, 0xf9, 0x56, 0xd4, 0x4e, 0xba, 0xf7, 0x83, 0xb2, 0xb1,
- 0x5e, 0x9c, 0x41, 0x68, 0xd5, 0xc0, 0xc3, 0xc7, 0x86, 0x5b, 0x7c, 0xbc, 0x4e, 0xa7, 0xea, 0x64,
- 0x5f, 0xf3, 0x1b, 0x55, 0x6a, 0x6d, 0x2d, 0x6c, 0x77, 0x9f, 0xd3, 0xbe, 0x98, 0xbb, 0x63, 0x96,
- 0x60, 0x82, 0x33, 0x37, 0x40, 0x4f, 0x55, 0xcc, 0xff, 0x4e, 0x8f, 0xc0, 0x41, 0x0a, 0x51, 0x5f,
- 0x61, 0xed, 0x69, 0x0a, 0xff, 0xe2, 0xbb, 0x67, 0x0e, 0x8a, 0x20, 0xc2, 0x97, 0x16, 0xd8, 0xad,
- 0x62, 0x5c, 0x87, 0x4d, 0xfd, 0xd6, 0x4a, 0x59, 0xde, 0x05, 0x12, 0xc4, 0x2e, 0x32, 0x80, 0x78,
- 0x63, 0x33, 0xdd, 0x70, 0x42, 0x7b, 0xa4, 0xf2, 0x2f, 0xc1, 0xbd, 0xc6, 0xf8, 0x2e, 0x09, 0x8a,
- 0x64, 0xfd, 0x98, 0xc3, 0xf9, 0xbe, 0x6b, 0x25, 0xbd, 0xd8, 0x76, 0xc8, 0x9f, 0x7a, 0x30, 0x11,
- 0x65, 0x92, 0xc2, 0xfe, 0x46, 0x13, 0x85, 0x8e, 0x4c, 0x1c, 0xd9, 0xca, 0x49, 0x66, 0xb9, 0xe3,
- 0x66, 0x23, 0x2c, 0xb9, 0x44, 0x27, 0x74, 0xb0, 0x9c, 0x93, 0xeb, 0xcc, 0xf0, 0x42, 0xe1, 0x36,
- 0x67, 0x4c, 0x76, 0x84, 0xfb, 0x8a, 0x9a, 0x1b, 0x6d, 0x57, 0x44, 0xce, 0x26, 0x5e, 0x68, 0xc4,
- 0x68, 0x7c, 0xa6, 0x1c, 0xf1, 0x6e, 0x29, 0xdd, 0x7b, 0xa1, 0xbe, 0xd0, 0x3e, 0xea, 0x93, 0xc3,
- 0x69, 0x13, 0xfc, 0x21, 0x4e, 0xc3, 0xc7, 0x76, 0x8a, 0x65, 0x11, 0xd2, 0xe8, 0xf6, 0x1a, 0x31,
- 0x6a, 0xa2, 0x12, 0x66, 0x4c, 0xf7, 0x36, 0x48, 0x5a, 0xea, 0x23, 0xd4, 0x51, 0xd2, 0x42, 0xe4,
- 0x6b, 0xcd, 0x48, 0x5b, 0xf3, 0x5a, 0xd8, 0xe3, 0xab, 0x2e, 0x8c, 0xd6, 0x87, 0xce, 0xcb, 0x16,
- 0x6c, 0x03, 0x0d, 0xe8, 0x48, 0x9f, 0x17, 0x34, 0x39, 0x37, 0x47, 0xd8, 0xe0, 0x9a, 0xf2, 0x8d,
- 0x6d, 0x6c, 0x57, 0xd5, 0xf7, 0x32, 0xf9, 0x9f, 0xc8, 0xf3, 0xe8, 0xda, 0x36, 0x86, 0x7b, 0x7f,
- 0x6e, 0xdd, 0xb9, 0x92, 0xf5, 0x06, 0x08, 0xa1, 0x18, 0x7c, 0xda, 0xdc, 0x8f, 0xa2, 0x23, 0xaa,
- 0x6f, 0xb2, 0xe3, 0xaf, 0x4a, 0xab, 0xe6, 0x0a, 0xe9, 0xb8, 0x75, 0xde, 0x59, 0xbe, 0xaa, 0x58,
- 0x70, 0xbd, 0xda, 0x61, 0xe1, 0x0d, 0xad, 0xee, 0x34, 0x53, 0xed, 0xe0, 0xbf, 0x09, 0x16, 0xa4,
- 0x71, 0xd2, 0x80, 0x5c, 0x5e, 0xa0, 0x43, 0x45, 0xc5, 0x97, 0x42, 0xe2, 0x69, 0x15, 0x9f, 0x56,
- 0x72, 0x63, 0x6e, 0x1b, 0x5c, 0x94, 0xb2, 0x7b, 0x15, 0x18, 0x70, 0xe4, 0xd0, 0x31, 0xc7, 0x83,
- 0x73, 0x0c, 0x34, 0x26, 0xe3, 0x39, 0x5c, 0xd0, 0xe4, 0xdc, 0xdf, 0xe6, 0x06, 0x2d, 0x4e, 0x71,
- 0x74, 0xc2, 0x71, 0x95, 0x58, 0xfc, 0x93, 0x07, 0x76, 0xc5, 0x14, 0xe8, 0x61, 0x79, 0x77, 0xea,
- 0x75, 0xad, 0x2b, 0xa8, 0xe7, 0x51, 0x7d, 0xac, 0x87, 0x01, 0xbb, 0xea, 0xb7, 0x65, 0xfe, 0x18,
- 0x76, 0x1c, 0xc5, 0xef, 0xe5, 0x65, 0x8c, 0x92, 0x57, 0x8e, 0x89, 0xec, 0x0e, 0x41, 0xa6, 0xcd,
- 0x77, 0x73, 0x9f, 0xd2, 0x5a, 0xc8, 0x62, 0x39, 0xa6, 0x4a, 0x26, 0xee, 0xd8, 0x5d, 0x2f, 0x3f,
- 0x78, 0x43, 0x4f, 0x4a, 0x50, 0x2c, 0xd1, 0xff, 0xb0, 0xbc, 0xdc, 0xf0, 0xc0, 0xe9, 0xd4, 0x38,
- 0x79, 0x2c, 0x15, 0x77, 0xef, 0x81, 0x3f, 0x54, 0x41, 0x78, 0x73, 0xf2, 0x16, 0xf5, 0x5d, 0xca,
- 0x7a, 0x9d, 0xfb, 0x30, 0xed, 0xb5, 0xce, 0x6a, 0x91, 0xf7, 0x41, 0xf4, 0xaf, 0xd1, 0x05, 0x1f,
- 0x7b, 0xf2, 0xa1, 0x0d, 0x52, 0x18, 0x20, 0xc1, 0x60, 0x33, 0xee, 0xf6, 0x79, 0xcd, 0x8c, 0xed,
- 0x7c, 0x3c, 0xe4, 0xbe, 0xe9, 0xdd, 0xef, 0x16, 0xf2, 0x2a, 0x25, 0xf8, 0x1e, 0x99, 0xb5, 0x76,
- 0x7d, 0x53, 0xbe, 0x83, 0x56, 0x70, 0x01, 0xbd, 0x03, 0xee, 0x8a, 0xfa, 0xc8, 0x85, 0x3c, 0x84,
- 0x7e, 0xe2, 0x50, 0xc4, 0x54, 0x44, 0xf0, 0x83, 0xd3, 0x61, 0xb8, 0xfc, 0x71, 0xa1, 0x64, 0x51,
- 0x7f, 0x8d, 0x0a, 0xf9, 0xeb, 0xe9, 0x1e, 0x28, 0x22, 0xa5, 0x17, 0xfe, 0xa7, 0xbd, 0xed, 0xa3,
- 0x80, 0x3b, 0x44, 0xf5, 0x41, 0x55, 0xcc, 0xd3, 0x97, 0xe8, 0x96, 0xc3, 0xfc, 0x18, 0x7d, 0xd4,
- 0x81, 0x54, 0x1e, 0xc8, 0xfe, 0xf8, 0x22, 0x78, 0x66, 0x2c, 0x39, 0xc1, 0x2a, 0x04, 0xf4, 0x26,
- 0x82, 0xe5, 0xf0, 0x8f, 0xfc, 0xcc, 0xd3, 0x46, 0xb6, 0xa3, 0x0b, 0xc7, 0x93, 0x20, 0xac, 0xf3,
- 0x83, 0x8a, 0xaa, 0xb2, 0x43, 0x61, 0x3d, 0xed, 0x47, 0x67, 0xa4, 0xc5, 0x45, 0x3c, 0x25, 0x01,
- 0x84, 0x44, 0xef, 0x01, 0xf8, 0xa4, 0xf2, 0x3a, 0xd5, 0x7e, 0x6f, 0xcb, 0x22, 0x68, 0x1c, 0x9a,
- 0x85, 0x2b, 0xb5, 0x3c, 0x47, 0x09, 0x1c, 0x91, 0x24, 0xba, 0xc0, 0xc9, 0xf4, 0x74, 0x95, 0x68,
- 0x86, 0x9a, 0x5b, 0x7b, 0x45, 0x3d, 0xed, 0xaf, 0xf4, 0x35, 0xf2, 0xcf, 0x4d, 0x50, 0xcd, 0xbd,
- 0x87, 0xf5, 0x01, 0x46, 0xfa, 0x90, 0x03, 0x04, 0x05, 0xf1, 0x5d, 0xcd, 0x9b, 0x4c, 0x44, 0x4f,
- 0x88, 0xc5, 0xd1, 0xde, 0xf0, 0x74, 0xb0, 0xc2, 0x13, 0x07, 0xa7, 0xd3, 0x83, 0xf8, 0xbf, 0x48,
- 0x89, 0xaa, 0x8b, 0xe3, 0x4f, 0xd9, 0x5e, 0x69, 0xe2, 0xc3, 0x08, 0xd1, 0x55, 0xe4, 0x36, 0xba,
- 0x8a, 0x1b, 0x65, 0xa4, 0x4d, 0xed, 0xaf, 0x57, 0x32, 0x4c, 0x3a, 0xd7, 0xec, 0xc0, 0x6e, 0x6f,
- 0x8b, 0x74, 0x3f, 0x99, 0xf2, 0x40, 0x41, 0xfc, 0xc3, 0x88, 0x95, 0xd5, 0x3a, 0xdc, 0xe7, 0x9d,
- 0x8c, 0xba, 0x7a, 0x2a, 0x49, 0x85, 0x8e, 0x2b, 0x51, 0x91, 0x5e, 0xdb, 0x5d, 0x88, 0xde, 0x06,
- 0x8d, 0xd5, 0x20, 0x17, 0xf6, 0x28, 0x60, 0x80, 0xa0, 0x55, 0xf1, 0xd9, 0x8b, 0x94, 0x57, 0xf4,
- 0x8e, 0x64, 0xce, 0x50, 0xf4, 0x1c, 0x91, 0xbe, 0x70, 0xda, 0xc3, 0xdf, 0x32, 0xb0, 0x0f, 0x21,
- 0x8f, 0x0b, 0x94, 0x6d, 0x4b, 0xb1, 0x7f, 0x15, 0x81, 0x1e, 0x6c, 0xdd, 0xe4, 0xac, 0x86, 0xd3,
- 0x90, 0x04, 0xad, 0xa3, 0xe0, 0x17, 0x34, 0xf1, 0x5c, 0xf5, 0xf4, 0xe3, 0x02, 0x1b, 0x3a, 0x2f,
- 0x91, 0x6b, 0xf7, 0x9e, 0x5f, 0xba, 0xda, 0x5a, 0xad, 0x31, 0x5b, 0xe1, 0xd4, 0x07, 0xb3, 0xdd,
- 0x92, 0xda, 0x19, 0xd9, 0x5d, 0x8e, 0x2b, 0x64, 0x7d, 0xbe, 0x69, 0xe7, 0x6d, 0x23, 0xeb, 0x08,
- 0x93, 0xb5, 0x43, 0xe4, 0xe2, 0x23, 0xc5, 0xcf, 0x8c, 0x7a, 0xc6, 0xe5, 0xbb, 0x3f, 0x62, 0xfa,
- 0x94, 0x7b, 0x06, 0x57, 0x59, 0xe6, 0x0a, 0x18, 0x1e, 0x63, 0x0d, 0xeb, 0xdc, 0x6b, 0x5b, 0x61,
- 0x95, 0x14, 0x5c, 0x6a, 0xe6, 0x4b, 0xe4, 0xb3, 0xef, 0xa7, 0xa2, 0xe9, 0x0a, 0x77, 0xd2, 0x93,
- 0x96, 0xa5, 0xb2, 0x2d, 0xe4, 0x7f, 0x15, 0x8d, 0x3f, 0x28, 0x90, 0xef, 0xb3, 0x53, 0x8a, 0x46,
- 0x97, 0xca, 0xe8, 0x10, 0x5b, 0xd2, 0xfb, 0x26, 0xce, 0xec, 0x3f, 0xed, 0x65, 0x4f, 0x03, 0xb4,
- 0x98, 0xfa, 0x38, 0x88, 0x51, 0x36, 0x48, 0xe0, 0xd8, 0x1a, 0xc5, 0xf3, 0x7d, 0xfb, 0xf8, 0xb3,
- 0x99, 0x95, 0x62, 0xb5, 0xee, 0x9b, 0xa6, 0x4b, 0x29, 0xde, 0x6a, 0xf1, 0xab, 0xe7, 0x71, 0x41,
- 0x9a, 0x24, 0x8c, 0xf2, 0xec, 0xaf, 0x57, 0x75, 0xf9, 0x51, 0x58, 0xf7, 0x12, 0xc3, 0x29, 0x94,
- 0x9b, 0x4b, 0xd6, 0xcf, 0x53, 0x02, 0xb9, 0xde, 0x08, 0x95, 0xf7, 0xf5, 0xc4, 0xdf, 0xa0, 0x66,
- 0x9c, 0x85, 0x93, 0x7c, 0xe8, 0xc7, 0x76, 0x09, 0x9a, 0x8c, 0x3c, 0xfb, 0xa3, 0x8b, 0x99, 0xfd,
- 0x9d, 0xea, 0xc9, 0x41, 0x57, 0x6a, 0x98, 0xa2, 0x6b, 0x48, 0x93, 0xf9, 0x75, 0x97, 0x10, 0x0f,
- 0x9e, 0x5b, 0x27, 0x06, 0x55, 0x5e, 0x69, 0x9c, 0xbb, 0xc7, 0xa1, 0xff, 0xcc, 0xb3, 0x48, 0xda,
- 0x9f, 0x34, 0x7d, 0x3b, 0xea, 0xf3, 0x87, 0x37, 0x4a, 0x03, 0x0e, 0xfd, 0x1a, 0xaf, 0xc1, 0x28,
- 0xa0, 0x45, 0x55, 0x59, 0xc0, 0xd1, 0xff, 0x97, 0xc2, 0xd2, 0x52, 0x83, 0xc3, 0x1e, 0xf3, 0xe1,
- 0xa1, 0x2a, 0x0f, 0x64, 0x7f, 0x7c, 0x11, 0x3c, 0x33, 0x16, 0xfd, 0x81, 0x15, 0x02, 0x7a, 0x13,
- 0xa2, 0x9b, 0xe1, 0x23, 0x7d, 0x48, 0xe0, 0x02, 0xe3, 0x99, 0xcf, 0x87, 0xac, 0x26, 0x22, 0xc6,
- 0xa3, 0xf4, 0xbb, 0x1e, 0xc2, 0xe5, 0x0e, 0xa9, 0x12, 0x5d, 0x60, 0x85, 0x7a, 0x3a, 0xab, 0x34,
- 0xa4, 0x3a, 0xfe, 0xad, 0x79, 0x20, 0xc1, 0x7e, 0x80, 0x44, 0xab, 0x8b, 0x1d, 0x6e, 0x92, 0xaf,
- 0xa5, 0x55, 0xa4, 0x90, 0xc6, 0x8d, 0x2f, 0xd5, 0x71, 0x80, 0x04, 0x89, 0xcb, 0x72, 0x1b, 0x5d,
- 0xa6, 0xe4, 0x4a, 0xd7, 0xc4, 0xb9, 0xde, 0xeb, 0xa1, 0x0f, 0x36, 0x8f, 0x72, 0x56, 0x43, 0x88,
- 0xa7, 0x8b, 0x10, 0xea, 0x7b, 0x14, 0x30, 0x40, 0x50, 0xcb, 0x99, 0x8d, 0xa4, 0x4a, 0xca, 0x7a,
- 0xa8, 0xbb, 0xc0, 0x72, 0x71, 0xf0, 0x83, 0x86, 0x46, 0x3d, 0x63, 0x93, 0xbc, 0xfe, 0x31, 0x7d,
- 0xa9, 0xd4, 0x9a, 0x4f, 0xce, 0x5d, 0x6d, 0x2d, 0xb7, 0xf9, 0xcc, 0x91, 0x6a, 0xe2, 0xb8, 0x8f,
- 0xaa, 0x65, 0x74, 0x08, 0xcc, 0x69, 0x9c, 0x13, 0x67, 0x76, 0xfe, 0x97, 0xd3, 0xc6, 0xe0, 0x5a,
- 0xab, 0x0a, 0x2e, 0x35, 0x73, 0xc4, 0x72, 0xb8, 0x96, 0xb2, 0x51, 0x95, 0x05, 0xda, 0x69, 0xa8,
- 0xac, 0xc4, 0x6b, 0x86, 0xc8, 0x01, 0xbd, 0x6f, 0x04, 0xab, 0x9a, 0x9b, 0x62, 0x8e, 0x50, 0x33,
- 0xad, 0xab, 0x31, 0xbb, 0x77, 0xac, 0x53, 0xc4, 0xf5, 0x6f, 0x35, 0x99, 0xb4, 0x92, 0xd9, 0xc1,
- 0xae, 0x1a, 0xdf, 0xfc, 0x75, 0x98, 0xa2, 0xfa, 0x25, 0xe0, 0x07, 0x9f, 0x0d, 0xb6, 0x81, 0x14,
- 0xaf, 0x75, 0x85, 0xc1, 0xca, 0x35, 0x4c, 0x51, 0xd4, 0x24, 0xa8, 0x9d, 0xdb, 0xaa, 0x08, 0xe6,
- 0xb0, 0x7a, 0xbc, 0x0f, 0x61, 0x93, 0x07, 0xb5, 0x09, 0xcf, 0x30, 0xa3, 0x3d, 0x1d, 0xb4, 0x1a,
- 0xb1, 0x15, 0xe6, 0x32, 0xde, 0x3e, 0xe9, 0x1e, 0xf8, 0x0b, 0x9f, 0xa1, 0xeb, 0x01, 0x3d, 0xe8,
- 0xb2, 0xa4, 0x08, 0x75, 0xdc, 0x0a, 0x18, 0x20, 0x28, 0x84, 0xad, 0xa7, 0x52, 0x25, 0x65, 0x3d,
- 0xb3, 0xcb, 0x52, 0x48, 0x63, 0xa7, 0xf6, 0x8b, 0xd9, 0x40, 0x02, 0xa5, 0x84, 0x39, 0xec, 0xcf,
- 0xb4, 0x05, 0x17, 0xfb, 0xd8, 0x62, 0x39, 0x5c, 0x4b, 0x59, 0xc9, 0xab, 0xe3, 0x6d, 0xd5, 0x54,
- 0xb5, 0x6a, 0x4d, 0xc6, 0x67, 0xcf, 0xd7, 0xf7, 0xba, 0x9d, 0x66, 0xa9, 0x35, 0x71, 0x5c, 0xa6,
- 0xb6, 0xdb, 0xa3, 0x81, 0x65, 0xfb, 0x26, 0xc9, 0x6a, 0x12, 0x54, 0xaf, 0x8c, 0x55, 0x04, 0x73,
- 0xb7, 0xb4, 0xf9, 0xbc, 0xda, 0x56, 0xc8, 0x62, 0x9b, 0xd6, 0xfb, 0xad, 0x5a, 0x49, 0x8d, 0x81,
- 0xb8, 0x84, 0x29, 0x24, 0xd0, 0xb2, 0x7b, 0xa4, 0x8d, 0x20, 0x01, 0xb3, 0x42, 0xfd, 0x76, 0x86,
- 0xb9, 0xeb, 0x73, 0x19, 0x6f, 0x1f, 0x95, 0x0f, 0x7c, 0xe4, 0xae, 0xb1, 0x94, 0xe1, 0xff, 0x74,
- 0xba, 0x5a, 0x9d, 0x5e, 0x6d, 0x2b, 0x64, 0x31, 0xac, 0x6b, 0x9c, 0xb7, 0x2d, 0xc5, 0xa7, 0xa1,
- 0xbb, 0x35, 0xc7, 0x63, 0xd2, 0x86, 0x8a, 0x9a, 0x5d, 0xaf, 0x33, 0xb5, 0xfb, 0xd9, 0x2e, 0x53,
- 0xbc, 0xfb, 0x82, 0xd0, 0x69, 0x43, 0x45, 0x4d, 0xcf, 0xb6, 0xf8, 0xbb, 0x9c, 0x8d, 0x17, 0xc8,
- 0xbd, 0x94, 0xd8, 0xed, 0xd6, 0xee, 0xab, 0xe6, 0x3e, 0x72, 0x57, 0xb9, 0x4a, 0x91, 0x9e, 0x3a,
- 0xbe, 0x25, 0x36, 0xaa, 0xd4, 0xda, 0x5a, 0xd8, 0xee, 0xfd, 0x65, 0xbf, 0xf3, 0xb5, 0xc6, 0xef,
- 0xbf, 0x4a, 0x6c, 0x97, 0x6b, 0x77, 0xb4, 0x73, 0x1f, 0x39, 0xca, 0xbd, 0x25, 0xa9, 0x4f, 0x1d,
- 0xc0, 0xc7, 0x66, 0x6e, 0x80, 0x9e, 0xaa, 0x5b, 0x3d, 0x9c, 0xdd, 0x43, 0x82, 0x14, 0xa2, 0xbe,
- 0xc1, 0xa8, 0x3c, 0x53, 0x3f, 0x33, 0x44, 0xf0, 0xcc, 0x58, 0x72, 0x41, 0x54, 0x08, 0x2b, 0x4c,
- 0xc2, 0x19, 0xd2, 0x14, 0x3d, 0x07, 0xb5, 0xce, 0x1c, 0xd7, 0x40, 0x47, 0xed, 0x2c, 0x73, 0x99,
- 0xc3, 0x76, 0x88, 0x29, 0x82, 0xaa, 0x5b, 0x65, 0xed, 0x13, 0xef, 0x45, 0x3b, 0x30, 0xfa, 0x6b,
- 0xc4, 0xb8, 0xcd, 0x9a, 0x39, 0x6f, 0x94, 0xb2, 0x7f, 0x0a, 0x24, 0x4b, 0x5c, 0x64, 0xc3, 0xf0,
- 0xc5, 0xd7, 0x97, 0xa7, 0x86, 0xc2, 0x7a, 0x19, 0x8e, 0xce, 0x8b, 0x49, 0x8a, 0x78, 0x4a, 0x02,
- 0xc6, 0x66, 0x79, 0xe0, 0x84, 0xf6, 0x8b, 0x27, 0x5e, 0x41, 0xb9, 0x4f, 0x33, 0x5c, 0x12, 0xd7,
- 0xc7, 0x09, 0x23, 0xdd, 0x3b, 0x5b, 0x65, 0x8c, 0xaf, 0x85, 0x16, 0x4d, 0xe5, 0x40, 0x9b, 0x25,
- 0xc8, 0x39, 0xf3, 0x45, 0x31, 0xbf, 0xd6, 0x4a, 0xb9, 0x73, 0xec, 0x53, 0xfd, 0xf4, 0x60, 0x22,
- 0xc9, 0x56, 0xa9, 0x78, 0x8e, 0x12, 0x38, 0xe1, 0x48, 0xb7, 0x43, 0x51, 0x2b, 0xe8, 0xe9, 0xd0,
- 0xca, 0xe7, 0x47, 0x3f, 0x8c, 0x26, 0xc9, 0xdf, 0x98, 0x38, 0x71, 0x57, 0x92, 0xcc, 0xb1, 0x05,
- 0xcb, 0x88, 0x1d, 0x02, 0x33, 0x8b, 0x27, 0x74, 0x69, 0xfc, 0xde, 0x55, 0x44, 0xd0, 0x38, 0xf7,
- 0xcc, 0x46, 0x58, 0xb1, 0x88, 0x4e, 0xe8, 0xa3, 0xfb, 0xe5, 0x15, 0x5b, 0x23, 0x84, 0x01, 0x6c,
- 0xcd, 0x29, 0x02, 0x8c, 0x37, 0xe3, 0x06, 0x08, 0x0a, 0x21, 0xba, 0x59, 0xf5, 0x98, 0x88, 0x9e,
- 0xce, 0x98, 0xec, 0xcb, 0x35, 0xd7, 0xf7, 0x36, 0xda, 0xae, 0x88, 0x5f, 0x4c, 0xbc, 0xd0, 0x4b,
- 0xcf, 0xf7, 0xb6, 0xf6, 0x8a, 0x7a, 0x19, 0x9d, 0x2b, 0x6a, 0x27, 0x5d, 0x9a, 0xa0, 0x59, 0xb9,
- 0xd0, 0xf8, 0x8f, 0x38, 0x21, 0xdc, 0x52, 0x79, 0xf6, 0x81, 0xbf, 0x63, 0x7c, 0x17, 0xe5, 0x45,
- 0xd1, 0x97, 0xd5, 0x05, 0x9e, 0x71, 0xbc, 0xd2, 0x07, 0x45, 0x10, 0x61, 0xaa, 0x0b, 0x6c, 0xb7,
- 0xd2, 0x26, 0x3b, 0x42, 0x9c, 0x45, 0x4d, 0xec, 0xd7, 0xca, 0x22, 0x67, 0x13, 0x2f, 0x34, 0x62,
- 0xd3, 0x49, 0x61, 0x7f, 0x23, 0xe8, 0xa3, 0x47, 0x26, 0x0e, 0x8d, 0x65, 0xc5, 0x33, 0xbd, 0x90,
- 0xd4, 0x87, 0x24, 0xcc, 0x98, 0x2d, 0x6c, 0x90, 0xb4, 0x17, 0x46, 0x6b, 0xa2, 0x67, 0x84, 0x0b,
- 0xd5, 0xe8, 0x7e, 0xf1, 0x27, 0x80, 0x82, 0x3b, 0x45, 0xd3, 0xe9, 0x69, 0x74, 0x7b, 0x0d, 0xf9,
- 0xd6, 0x59, 0x90, 0xb6, 0x25, 0xb4, 0x73, 0x05, 0x95, 0x5c, 0xdb, 0x6f, 0xcd, 0x5f, 0x55, 0x2c,
- 0xd7, 0x36, 0xca, 0x8b, 0x9a, 0x19, 0x9d, 0xae, 0x64, 0x98, 0x74, 0x6d, 0x1b, 0x43, 0xdc, 0xde,
- 0xd8, 0x06, 0x1a, 0x13, 0x90, 0xfd, 0x2e, 0x68, 0x72, 0x6e, 0x8e, 0x73, 0x03, 0xf7, 0x27, 0xd9,
- 0xd9, 0x69, 0x40, 0x2e, 0x2f, 0x50, 0xc0, 0xc3, 0x83, 0xaa, 0x21, 0x71, 0xd5, 0xeb, 0xae, 0x2b,
- 0xda, 0xd8, 0xae, 0x69, 0x2d, 0x64, 0x31, 0xfd, 0x53, 0x25, 0x13, 0x77, 0x6c, 0xcf, 0xf6, 0xfe,
- 0xdb, 0xb7, 0xf4, 0x54, 0x92, 0xc9, 0xdf, 0x56, 0xa2, 0xe1, 0xbc, 0x75, 0xba, 0xd3, 0x7f, 0x0c,
- 0xdc, 0x79, 0xb1, 0xe7, 0x29, 0x0c, 0x10, 0x81, 0x30, 0xf8, 0x77, 0x7b, 0xdd, 0x87, 0x46, 0x97,
- 0xdd, 0x16, 0xeb, 0xda, 0x96, 0xa1, 0xfe, 0x2a, 0xc1, 0x3c, 0xd8, 0x79, 0x0b, 0x9b, 0xcf, 0x65,
- 0xde, 0xa7, 0x05, 0x9d, 0x94, 0x95, 0x0f, 0x14, 0x11, 0xb3, 0xea, 0x7f, 0xb2, 0xbf, 0x97, 0xb0,
- 0xdf, 0xc8, 0x5f, 0xa0, 0x2b, 0x38, 0xe1, 0xbf, 0xe0, 0x77, 0x45, 0x7d, 0x64, 0xa3, 0x1e, 0x42,
- 0xe0, 0xb9, 0x77, 0xc2, 0x01, 0x1a, 0x99, 0x1f, 0x68, 0xa6, 0x19, 0x03, 0xbd, 0x12, 0x2c, 0x8b,
- 0xe1, 0xd6, 0x2d, 0xff, 0xbe, 0xb7, 0x77, 0xb4, 0x99, 0x62, 0xb6, 0x01, 0x6b, 0x0e, 0xa5, 0x79,
- 0xe2, 0x67, 0xc3, 0xb8, 0xbc, 0x83, 0x86, 0x8a, 0x49, 0xed, 0x84, 0x07, 0xd2, 0x2a, 0xfd, 0xac,
- 0xe3, 0x08, 0x99, 0x85, 0x03, 0x2e, 0x68, 0x21, 0xb8, 0x29, 0x2b, 0x05, 0x04, 0x36, 0x74, 0x5e,
- 0xe4, 0xc6, 0xdc, 0x36, 0xb8, 0xeb, 0xa7, 0xf6, 0x2a, 0x30, 0xe0, 0x0b, 0x63, 0x62, 0x4d, 0xc5,
- 0xe5, 0xa9, 0x86, 0x0b, 0x07, 0x46, 0x49, 0x5d, 0xdb, 0xf4, 0x4f, 0x09, 0xb5, 0x7e, 0xc4, 0x37,
- 0xe6, 0x18, 0x68, 0x4c, 0x05, 0x72, 0xb8, 0x63, 0x0b, 0x7b, 0x7d, 0x0f, 0x0c, 0x5a, 0x9c, 0xe2,
- 0xe7, 0x77, 0x32, 0x71, 0xba, 0xdf, 0x56, 0xc8, 0xfa, 0xbf, 0xd2, 0x0d, 0xda, 0x46, 0x15, 0x10,
- 0xe8, 0x47, 0xe2, 0xe9, 0xb0, 0x3b, 0xe5, 0x0e, 0xec, 0x49, 0x28, 0x13, 0xc2, 0xf2, 0xee, 0x17,
- 0xe9, 0x28, 0xb8, 0xd4, 0x0f, 0x96, 0x0b, 0xa5, 0x1d, 0x8d, 0x87, 0x11, 0x14, 0xee, 0x67, 0xe5,
- 0xea, 0x99, 0x56, 0x93, 0x0d, 0xa2, 0xfa, 0x9b, 0xcd, 0x02, 0xb5, 0x17, 0xad, 0xca, 0x3f, 0x30,
- 0xeb, 0xf6, 0x0c, 0xae, 0xb2, 0x0f, 0x14, 0x30, 0x3c, 0xc6, 0x1a, 0x15, 0x7b, 0xd6, 0xb6, 0xc2,
- 0xec, 0x38, 0x49, 0x1d, 0x09, 0xca, 0xdb, 0xe7, 0xae, 0xdf, 0xd1, 0x1b, 0x1c, 0x82, 0x8f, 0x59,
- 0xed, 0x57, 0x13, 0x20, 0xb6, 0x67, 0x35, 0x4c, 0x5f, 0x1b, 0x7e, 0x19, 0xca, 0x9e, 0x06, 0xab,
- 0xee, 0xe6, 0xfd, 0x67, 0xb4, 0x53, 0xc4, 0x72, 0x8f, 0x94, 0x4c, 0x1f, 0x73, 0xba, 0x5e, 0x7e,
- 0xef, 0x89, 0xa7, 0x5a, 0x0b, 0xfe, 0x2a, 0xd9, 0x7e, 0x50, 0xe3, 0x1d, 0xa5, 0xa6, 0xd7, 0x8c,
- 0xf0, 0x86, 0x9e, 0x94, 0xa0, 0x58, 0x61, 0x3d, 0xa3, 0xbb, 0x7b, 0x23, 0x43, 0x11, 0x6b, 0x70,
- 0xf1, 0xe9, 0xc4, 0xa9, 0x1f, 0xf5, 0x8f, 0x96, 0x52, 0x7f, 0xd4, 0x21, 0x95, 0x0d, 0xe2, 0x82,
- 0xf2, 0x58, 0x2a, 0xee, 0x1d, 0xc1, 0x7e, 0xa8, 0x82, 0xf0, 0xe6, 0x27, 0x2c, 0x29, 0xba, 0x57,
- 0xf3, 0x37, 0x70, 0xd3, 0xa2, 0x6c, 0x90, 0x03, 0x73, 0x34, 0x49, 0x25, 0xfa, 0x35, 0x33, 0xa5,
- 0xf4, 0xf9, 0x35, 0x60, 0x19, 0xa9, 0x5f, 0xd4, 0xe1, 0x2d, 0x82, 0x2b, 0x9d, 0x61, 0x0a, 0x3e,
- 0xf5, 0x96, 0x6f, 0x5d, 0xa6, 0x04, 0xb1, 0x7f, 0x10, 0xe9, 0x2d, 0x29, 0x4b, 0x7d, 0x83, 0xcc,
- 0xf6, 0x27, 0x81, 0x1a, 0xa4, 0x30, 0x40, 0x41, 0xc0, 0x66, 0x1f, 0x2f, 0xf2, 0x59, 0xdb, 0x19,
- 0xf7, 0x48, 0xdb, 0x27, 0x1b, 0x9d, 0xae, 0xea, 0x31, 0xa2, 0xb0, 0x2d, 0x24, 0x45, 0x52, 0xeb,
- 0xf8, 0x78, 0x0b, 0xbf, 0x11, 0x79, 0x1d, 0x2c, 0x27, 0x54, 0x4a, 0x33, 0x3c, 0xf1, 0xa9, 0xec,
- 0xf9, 0x17, 0x51, 0x82, 0xae, 0xd4, 0xf3, 0x87, 0xd6, 0x90, 0xe5, 0x31, 0xea, 0xed, 0x20, 0x1e,
- 0xfa, 0xa6, 0xbf, 0xc5, 0xac, 0xe0, 0x02, 0xb9, 0x06, 0x1f, 0xd7, 0x37, 0x53, 0xc9, 0x78, 0xcb,
- 0xfb, 0xc9, 0xe5, 0xf8, 0x13, 0x4d, 0xec, 0x12, 0xf7, 0xdb, 0x78, 0x35, 0x85, 0xd5, 0xf1, 0x39,
- 0xfc, 0x07, 0xa0, 0x4b, 0xa8, 0x88, 0x23, 0xc5, 0x65, 0xc2, 0xb3, 0x3b, 0xe2, 0x81, 0xc8, 0xa2,
- 0xfd, 0x68, 0xfa, 0x76, 0x17, 0x25, 0xcd, 0x6e, 0x94, 0x06, 0x1c, 0x39, 0x34, 0x9d, 0x41, 0x50,
- 0xfe, 0xd9, 0x14, 0x31, 0x15, 0x11, 0x3c, 0x50, 0x44, 0x89, 0x2e, 0x3f, 0x8d, 0xb9, 0x19, 0x85,
- 0xff, 0xb6, 0x4e, 0x0c, 0xaa, 0xbc, 0xd2, 0xfb, 0xb5, 0x4d, 0x81, 0x3d, 0x5b, 0xa5, 0x90, 0x77,
- },
- { /* 10 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc0, 0x77, 0x44, 0x94, 0x60, 0x7c, 0x12, 0x8d, 0x2e, 0x2d, 0xbc, 0xeb, 0x11, 0x43, 0x48, 0x8e,
- 0x43, 0xee, 0x88, 0xeb, 0xc0, 0xf8, 0x24, 0xd9, 0x5c, 0x5a, 0xbb, 0x15, 0x22, 0x86, 0x90, 0xdf,
- 0x83, 0x99, 0xcc, 0x7f, 0xa0, 0x84, 0x36, 0x54, 0x72, 0x77, 0x07, 0xfe, 0x33, 0xc5, 0xd8, 0x51,
- 0x86, 0x1f, 0xd3, 0x15, 0x43, 0x33, 0x48, 0x71, 0xb8, 0xb4, 0xb5, 0x2a, 0x44, 0xcf, 0xe3, 0x7d,
- 0x46, 0x68, 0x97, 0x81, 0x23, 0x4f, 0x5a, 0xfc, 0x96, 0x99, 0x09, 0xc1, 0x55, 0x8c, 0xab, 0xf3,
- 0xc5, 0xf1, 0x5b, 0xfe, 0x83, 0xcb, 0x6c, 0xa8, 0xe4, 0xee, 0x0e, 0x3f, 0x66, 0x49, 0x73, 0xa2,
- 0x05, 0x86, 0x1f, 0x6a, 0xe3, 0xb7, 0x7e, 0x25, 0xca, 0xc3, 0xb2, 0xd4, 0x77, 0x0a, 0x3b, 0x2c,
- 0xcf, 0x3e, 0x65, 0x2a, 0x86, 0x66, 0x90, 0xe2, 0xb3, 0xab, 0xa9, 0x54, 0x88, 0x5d, 0x05, 0xfa,
- 0x0f, 0x49, 0x21, 0xbe, 0xe6, 0x1a, 0x82, 0x6f, 0x9d, 0x86, 0x15, 0xbf, 0x99, 0x1e, 0x4d, 0x74,
- 0x8c, 0xd0, 0xed, 0xc1, 0x46, 0x9e, 0xb4, 0x3b, 0xef, 0xf1, 0x12, 0x41, 0xaa, 0xdb, 0x95, 0x25,
- 0x4c, 0xa7, 0xa9, 0x55, 0x26, 0xe2, 0xa6, 0xb6, 0xc1, 0xdc, 0xae, 0xaa, 0xbb, 0x98, 0xdd, 0xab,
- 0x49, 0x21, 0xb6, 0x3f, 0xc5, 0x55, 0xd8, 0x93, 0x0b, 0x1f, 0x1c, 0x7e, 0xcc, 0x92, 0xe6, 0x87,
- 0x89, 0x56, 0xf2, 0xab, 0xa5, 0x29, 0xca, 0x1e, 0x25, 0x32, 0xa0, 0x95, 0xdd, 0xd1, 0xae, 0x09,
- 0x0a, 0xcf, 0x3e, 0xd4, 0x05, 0xad, 0xfc, 0x4a, 0x57, 0x45, 0xa7, 0x6b, 0xee, 0x14, 0x76, 0x58,
- 0xca, 0xb8, 0x7a, 0x40, 0x65, 0xd1, 0xee, 0xc7, 0x79, 0x68, 0x1b, 0x80, 0xff, 0x57, 0x3e, 0xd6,
- 0x5d, 0x7c, 0xca, 0x54, 0xcf, 0xcc, 0xe3, 0x07, 0xa5, 0x95, 0x91, 0xa8, 0xd3, 0xba, 0x0a, 0x37,
- 0x9d, 0x0b, 0x8e, 0xc0, 0xaf, 0xb0, 0xf1, 0x8a, 0x8b, 0xb8, 0x2d, 0x43, 0xc2, 0xf9, 0x42, 0xb9,
- 0x1e, 0x92, 0x42, 0xbf, 0x0f, 0x34, 0xc7, 0xde, 0xf9, 0xcf, 0x2a, 0xbd, 0xf1, 0x3c, 0x9a, 0xe8,
- 0xde, 0xe5, 0x06, 0x2b, 0x6f, 0x48, 0xd5, 0x53, 0xd7, 0xe2, 0x96, 0x56, 0xe0, 0x7f, 0xd2, 0x66,
- 0xdb, 0x63, 0x19, 0x41, 0x8c, 0xff, 0xab, 0x76, 0x1d, 0x21, 0x24, 0x82, 0x97, 0x75, 0xe9, 0x4a,
- 0x1b, 0x14, 0x5d, 0xd5, 0xec, 0x83, 0xb9, 0xfb, 0x33, 0x0c, 0x98, 0x69, 0x86, 0x36, 0xa1, 0xc4,
- 0x98, 0x8d, 0x91, 0xaa, 0x4c, 0x07, 0x8f, 0xaf, 0x41, 0x7b, 0x9f, 0x97, 0xb5, 0xf3, 0x79, 0x95,
- 0x58, 0xfa, 0xd5, 0x3e, 0x2c, 0x7b, 0x9d, 0x22, 0x6f, 0x56, 0x23, 0x7c, 0xa4, 0xb0, 0x31, 0x1b,
- 0x92, 0x42, 0xaf, 0x7e, 0x49, 0xaa, 0x73, 0xe5, 0x16, 0x3e, 0x38, 0xfc, 0x5b, 0xe7, 0x0f, 0xcd,
- 0x52, 0x35, 0xeb, 0xea, 0x29, 0xd6, 0x61, 0x68, 0x38, 0x13, 0x84, 0x17, 0x4a, 0xa4, 0x47, 0x43,
- 0xd1, 0xac, 0x27, 0x95, 0x89, 0x52, 0x57, 0x3c, 0x4a, 0x64, 0x83, 0xe9, 0x79, 0x61, 0x9f, 0x12,
- 0x11, 0xdb, 0x63, 0x01, 0xe9, 0x2e, 0x45, 0xb1, 0x64, 0x49, 0x3f, 0x02, 0x68, 0x22, 0xd7, 0x9c,
- 0x14, 0x5d, 0x7c, 0x6b, 0x0a, 0x99, 0x3b, 0x94, 0xae, 0x8a, 0x8d, 0xd6, 0x1f, 0x28, 0xec, 0xb0,
- 0xd4, 0x2a, 0x38, 0xff, 0x6a, 0xe5, 0x29, 0x19, 0x80, 0xa7, 0x31, 0x3d, 0x0e, 0x6b, 0xa4, 0x3e,
- 0x57, 0xb3, 0xf4, 0x80, 0xca, 0x61, 0x1f, 0x4d, 0xf2, 0xd0, 0x36, 0xc3, 0x3d, 0xae, 0x7c, 0x6f,
- 0x97, 0xc4, 0xb0, 0x14, 0xaa, 0x1d, 0x0d, 0xc0, 0xdc, 0xfd, 0x8a, 0x28, 0x2c, 0xed, 0x34, 0xe1,
- 0xba, 0xf8, 0x57, 0xa8, 0x5d, 0x5b, 0x05, 0x0e, 0x89, 0xe9, 0xe1, 0x93, 0x65, 0xb7, 0x14, 0x6e,
- 0x7a, 0x8f, 0x13, 0x3c, 0x3d, 0x27, 0x17, 0x83, 0xa7, 0xc4, 0x5d, 0x78, 0x74, 0xf4, 0x5c, 0xe0,
- 0xf9, 0x16, 0xdf, 0x43, 0x9d, 0xa3, 0x21, 0xd7, 0xd5, 0xb3, 0x5a, 0x86, 0x47, 0x31, 0x84, 0xb1,
- 0x39, 0x61, 0x9b, 0xd7, 0xfd, 0xdf, 0x33, 0x5a, 0xfb, 0x9e, 0xe6, 0x6d, 0x56, 0x72, 0xcc, 0x3f,
- 0x3c, 0xe7, 0x84, 0xbd, 0x1e, 0x68, 0x4d, 0x7f, 0x31, 0x5d, 0x54, 0xb9, 0x21, 0x78, 0xf7, 0x13,
- 0xfc, 0x90, 0xc0, 0x29, 0x7e, 0x14, 0x5f, 0xf2, 0x1f, 0x70, 0xe8, 0x52, 0x30, 0x3b, 0xbf, 0x9d,
- 0x7f, 0x09, 0x0c, 0x56, 0xde, 0x90, 0x69, 0xa6, 0x6d, 0x07, 0xef, 0xac, 0x03, 0xfe, 0x67, 0xcc,
- 0xbf, 0x7e, 0x48, 0xc2, 0xbe, 0xec, 0x7b, 0x2b, 0x43, 0x2a, 0x53, 0x47, 0x12, 0xbd, 0x2f, 0x42,
- 0x75, 0xc6, 0x32, 0x82, 0xdb, 0x3d, 0x95, 0xec, 0x3a, 0x42, 0x48, 0xc7, 0xed, 0xea, 0x11, 0x94,
- 0xb5, 0xb1, 0x76, 0x16, 0xbb, 0x41, 0x87, 0x61, 0x14, 0x6f, 0xf4, 0x2c, 0xfc, 0xa9, 0x59, 0x1a,
- 0x36, 0x28, 0xba, 0x69, 0x1b, 0xc5, 0xb1, 0x35, 0x66, 0x18, 0xf3, 0xd2, 0xcf, 0x6c, 0x81, 0x4b,
- 0xf6, 0x5f, 0xfe, 0xfd, 0x7b, 0xb9, 0xa3, 0xb8, 0x48, 0x35, 0x4f, 0x39, 0xde, 0x2f, 0xc9, 0xc5,
- 0xf3, 0xd9, 0xe1, 0x97, 0x98, 0x0e, 0xdd, 0x9d, 0x82, 0xf6, 0xfd, 0xed, 0xa9, 0x25, 0xf2, 0xe9,
- 0x33, 0xae, 0xa5, 0x03, 0xf8, 0x72, 0xcf, 0x10, 0xac, 0xdb, 0x41, 0x06, 0xb8, 0x66, 0xba, 0x67,
- 0xb0, 0x37, 0x69, 0x7c, 0x58, 0xf6, 0xf9, 0x44, 0xde, 0xac, 0x46, 0xf8, 0x8b, 0xa3, 0x62, 0x36,
- 0x70, 0x40, 0x2d, 0xe8, 0x38, 0x8a, 0xeb, 0xc9, 0xf0, 0x81, 0xfa, 0x13, 0x9a, 0xe0, 0x2a, 0xb8,
- 0xe7, 0x84, 0x9d, 0xfc, 0x92, 0x97, 0xe6, 0x09, 0x2c, 0x7c, 0x70, 0x3b, 0xb6, 0x0d, 0x1e, 0x59,
- 0x27, 0xf3, 0xd9, 0x68, 0xf2, 0xeb, 0xf4, 0x84, 0x02, 0x51, 0xcc, 0xd0, 0xa7, 0x4e, 0x56, 0xd7,
- 0xa4, 0x6a, 0x15, 0x17, 0x52, 0x6f, 0xc2, 0xd0, 0x70, 0x26, 0xcb, 0x2e, 0x94, 0x8b, 0x8e, 0x86,
- 0x64, 0x1d, 0x51, 0x83, 0x32, 0x13, 0xd0, 0x5d, 0x5e, 0x0b, 0x77, 0xc5, 0x85, 0xc8, 0xc6, 0x08,
- 0x61, 0x9b, 0x4e, 0xe9, 0xd1, 0xa4, 0xae, 0x78, 0x94, 0xc8, 0xc5, 0x11, 0xf2, 0xc2, 0xfd, 0x24,
- 0xa1, 0xec, 0x0a, 0x7d, 0xb1, 0xd8, 0xbc, 0xf5, 0xba, 0xe5, 0x79, 0xfa, 0xe3, 0x81, 0xb5, 0xaa,
- 0x22, 0x75, 0xc6, 0x02, 0x11, 0x5c, 0x8a, 0xa1, 0xc8, 0x92, 0x7e, 0x04, 0xd0, 0x44, 0x6d, 0xfb,
- 0xe2, 0x02, 0x82, 0x96, 0x71, 0x20, 0x98, 0x2c, 0xe6, 0xbf, 0xc2, 0xef, 0xc1, 0x07, 0x25, 0x75,
- 0x28, 0xba, 0xf8, 0xd6, 0x14, 0xf1, 0x76, 0xeb, 0x9f, 0xd7, 0xd9, 0x6f, 0x3e, 0x50, 0x1b, 0xa3,
- 0xe8, 0xcd, 0xbc, 0x42, 0x74, 0x8d, 0x64, 0x66, 0xb1, 0xfa, 0x65, 0x84, 0x2f, 0x13, 0x53, 0x2d,
- 0x6b, 0x54, 0x70, 0x3d, 0xd4, 0x09, 0x52, 0x32, 0xc3, 0x8d, 0x62, 0x7a, 0x1c, 0xd6, 0x8b, 0x7c,
- 0xab, 0x23, 0x34, 0xa9, 0xb4, 0x75, 0x40, 0xbf, 0xed, 0xa0, 0xde, 0x91, 0x0d, 0x95, 0xc3, 0xf2,
- 0xae, 0xa5, 0x2b, 0xc3, 0x57, 0xc2, 0x3e, 0x9a, 0x27, 0x63, 0x6c, 0x45, 0x7a, 0x9f, 0xf8, 0xde,
- 0x6e, 0xd2, 0x6f, 0x57, 0x37, 0xbe, 0x2c, 0x17, 0x09, 0x4e, 0xd0, 0xae, 0x6b, 0xdc, 0xb0, 0x50,
- 0xed, 0x4b, 0xa3, 0x28, 0x97, 0x3a, 0x1a, 0x43, 0x7b, 0x39, 0xd7, 0x50, 0x58, 0x19, 0x68, 0x01,
- 0x2d, 0x3c, 0xe7, 0xbc, 0xf7, 0x46, 0x08, 0xce, 0x55, 0x14, 0x6b, 0xbb, 0x49, 0x5a, 0x20, 0x8f,
- 0xb7, 0x33, 0xae, 0x93, 0xba, 0xb6, 0x0a, 0x1c, 0xd1, 0x11, 0x01, 0xe5, 0xca, 0xad, 0x28, 0xdc,
- 0x77, 0x44, 0xea, 0x07, 0xda, 0xca, 0x18, 0x91, 0xff, 0x3c, 0xbd, 0x0e, 0xdb, 0xee, 0x60, 0x52,
- 0xf4, 0xdd, 0x26, 0x78, 0x7a, 0x4e, 0x2e, 0xc5, 0x8d, 0x4b, 0xba, 0xf0, 0xe8, 0x2b, 0xb8, 0x03,
- 0x34, 0xaa, 0x62, 0xec, 0x1a, 0x32, 0x3c, 0x48, 0xa3, 0x66, 0x06, 0x1b, 0xf9, 0x68, 0xf0, 0x8d,
- 0x31, 0x2c, 0x7d, 0x86, 0xf9, 0x85, 0x42, 0x6d, 0x69, 0xa5, 0xb4, 0xcf, 0x8e, 0x62, 0xcb, 0xa1,
- 0xf1, 0x5b, 0x39, 0x12, 0x99, 0xf9, 0x50, 0xe0, 0x47, 0x88, 0x08, 0x24, 0x9f, 0x21, 0x83, 0x2f,
- 0x72, 0xc2, 0xf5, 0x6d, 0x39, 0x7d, 0x66, 0xb4, 0x35, 0xff, 0x0f, 0xda, 0xac, 0xe4, 0x5b, 0x7e,
- 0xb2, 0xb5, 0xb1, 0xf9, 0x59, 0x01, 0x74, 0x39, 0x1b, 0xd2, 0xb3, 0x31, 0xbd, 0xa7, 0x13, 0xf0,
- 0x78, 0x0d, 0xcb, 0xb9, 0x3c, 0xd0, 0x9a, 0xfe, 0x62, 0xba, 0xa8, 0xb1, 0x42, 0xf0, 0x2d, 0x26,
- 0xb8, 0x7a, 0x8f, 0x2d, 0x5c, 0xac, 0x88, 0x73, 0x4c, 0x97, 0x14, 0x5a, 0x53, 0xb3, 0x65, 0xa8,
- 0x3b, 0xe3, 0x43, 0x52, 0xfc, 0x28, 0xbe, 0x27, 0x3e, 0xe0, 0x13, 0xa4, 0x60, 0x76, 0xbd, 0xf9,
- 0xfb, 0x94, 0x07, 0xc6, 0x9c, 0x54, 0xac, 0xaa, 0x10, 0xcd, 0xaf, 0x4f, 0x71, 0x35, 0xf5, 0x77,
- 0xfe, 0x12, 0x18, 0xac, 0x7f, 0xe3, 0xd2, 0x8f, 0xda, 0x0e, 0x1d, 0x9b, 0x06, 0x3f, 0xce, 0x5b,
- 0x3e, 0x65, 0x5c, 0x38, 0x1f, 0x9f, 0xc0, 0x02, 0xf4, 0x23, 0xa1, 0x70, 0x17, 0x7c, 0x86, 0xd5,
- 0xbd, 0xfc, 0x90, 0x47, 0xbf, 0x1b, 0xf6, 0x56, 0x86, 0x54, 0xa6, 0x8e, 0x24, 0xb9, 0x5e, 0x84,
- 0x7d, 0x8b, 0xd4, 0xd3, 0xdf, 0x67, 0xe4, 0xdb, 0xa8, 0x79, 0x1a, 0x65, 0x35, 0xfa, 0x16, 0x0a,
- 0xea, 0x4f, 0x64, 0xc7, 0x75, 0x7a, 0xe9, 0x1b, 0x74, 0x84, 0x90, 0x4d, 0x19, 0x17, 0x22, 0xeb,
- 0x2a, 0x38, 0x20, 0x53, 0x15, 0x06, 0xfb, 0x96, 0x5a, 0xa9, 0x2c, 0xa6, 0x08, 0x54, 0x6a, 0x65,
- 0xa9, 0xa1, 0xec, 0x2c, 0xb5, 0x82, 0xcd, 0xc2, 0x28, 0xde, 0x2b, 0x58, 0x3b, 0x91, 0xb2, 0x34,
- 0x69, 0xd6, 0xa8, 0xb8, 0xd5, 0xfe, 0xdf, 0x4f, 0x06, 0xf3, 0x97, 0xb3, 0x2a, 0xd2, 0xfa, 0xba,
- 0x6c, 0x50, 0xb7, 0xd2, 0x36, 0x49, 0xa1, 0x6a, 0xcc, 0x30, 0x25, 0x67, 0x5d, 0xd8, 0xc1, 0x96,
- 0xac, 0x27, 0xf3, 0x46, 0x56, 0x35, 0xb3, 0xe7, 0xe2, 0x1d, 0x99, 0x8c, 0x4c, 0x9b, 0x89, 0x18,
- 0x2f, 0xbe, 0x3f, 0x39, 0xf6, 0xb1, 0x85, 0xb3, 0x90, 0x6a, 0x9e, 0x72, 0x7f, 0x5e, 0x51, 0x49,
- 0xef, 0xc9, 0x7b, 0xad, 0x96, 0xcd, 0x97, 0x3e, 0xbe, 0x47, 0x22, 0x99, 0x6e, 0x1d, 0x19, 0xc7,
- 0x25, 0x71, 0x01, 0xed, 0xf3, 0x1c, 0x79, 0xf9, 0xc7, 0x2f, 0x39, 0x19, 0x91, 0x4a, 0x27, 0x11,
- 0xe5, 0x06, 0x45, 0x79, 0x93, 0x60, 0x6b, 0x74, 0xe9, 0x02, 0x85, 0xf2, 0x80, 0x09, 0x6f, 0x9f,
- 0x66, 0x9f, 0x89, 0x06, 0x33, 0xe4, 0x5d, 0x20, 0x9b, 0x75, 0x82, 0x0c, 0xb3, 0xcc, 0xb7, 0xce,
- 0xa6, 0xe8, 0xcd, 0x92, 0x53, 0x98, 0x4f, 0xad, 0xb5, 0x58, 0x3e, 0xe7, 0xa2, 0x8f, 0xff, 0x40,
- 0xa3, 0x6e, 0xd2, 0xf8, 0xb0, 0x2f, 0x31, 0x88, 0x7f, 0x9b, 0x8c, 0x33, 0xd5, 0x85, 0xc4, 0x6c,
- 0x63, 0x19, 0x96, 0x6c, 0xd0, 0x53, 0x23, 0x05, 0x51, 0xb6, 0x30, 0xd8, 0xc4, 0xc6, 0x8c, 0xe2,
- 0xe0, 0x80, 0x5a, 0x13, 0x70, 0xd7, 0x15, 0x51, 0x23, 0xc1, 0x37, 0x26, 0xf7, 0x03, 0x54, 0xb3,
- 0x20, 0xf7, 0x1e, 0x87, 0x10, 0xab, 0x07, 0xdc, 0x0d, 0xec, 0x8b, 0xcd, 0xe6, 0x40, 0x1c, 0x3d,
- 0x0d, 0xcb, 0xf9, 0x3b, 0xe7, 0xed, 0x0f, 0x12, 0x58, 0xf8, 0xe0, 0x76, 0xaf, 0x1a, 0x3c, 0xb2,
- 0xcd, 0xbc, 0xbd, 0xaf, 0x87, 0x91, 0x1d, 0x9f, 0x76, 0xd5, 0x5c, 0x9d, 0xbe, 0x59, 0x74, 0x3c,
- 0x4e, 0x25, 0x71, 0xd0, 0x27, 0x15, 0x2b, 0xcb, 0x04, 0xa2, 0x5b, 0x63, 0x8d, 0x9c, 0xac, 0x6d,
- 0x8e, 0x52, 0x35, 0x44, 0x47, 0x69, 0x39, 0x46, 0x2a, 0x8f, 0xe7, 0x88, 0x9c, 0xdf, 0xe4, 0xe3,
- 0x8b, 0xd4, 0x2a, 0x2e, 0xa4, 0xde, 0x47, 0x63, 0xe0, 0x4c, 0x55, 0x5c, 0xeb, 0xd5, 0xdf, 0xcf,
- 0x4b, 0xa3, 0x6e, 0xba, 0xc4, 0xa2, 0x55, 0xee, 0xce, 0x61, 0xe9, 0xb7, 0xfa, 0x96, 0x97, 0x41,
- 0xc8, 0x3a, 0xa2, 0xc5, 0x64, 0x26, 0x63, 0xba, 0xbc, 0x16, 0xee, 0x49, 0xc9, 0x53, 0x4f, 0x10,
- 0x08, 0x4d, 0xe6, 0x51, 0x04, 0x5a, 0x71, 0x37, 0x92, 0x3b, 0x52, 0xa2, 0xd8, 0x10, 0x07, 0x9e,
- 0xc2, 0xf5, 0x9c, 0x11, 0x61, 0x8b, 0x9f, 0xf0, 0xeb, 0x53, 0x49, 0x22, 0x27, 0x47, 0x39, 0x48,
- 0x02, 0x82, 0xd8, 0x85, 0x01, 0xf7, 0x8d, 0x7d, 0xc5, 0x7e, 0xf5, 0xc9, 0x36, 0x04, 0x71, 0xc6,
- 0x81, 0x1b, 0x14, 0xfa, 0xa1, 0x73, 0xbb, 0x29, 0xb7, 0x09, 0xf2, 0x37, 0x05, 0xc1, 0xa9, 0x97,
- 0x41, 0x6c, 0x50, 0x6e, 0xc1, 0x0f, 0xa9, 0xa4, 0x99, 0x24, 0x4e, 0xdc, 0x14, 0x82, 0xe1, 0x19,
- 0x44, 0xea, 0x4f, 0x04, 0x22, 0xb8, 0xd7, 0x81, 0x53, 0xe7, 0xfc, 0x08, 0x63, 0x88, 0xda, 0x35,
- 0x84, 0x9d, 0x0b, 0x90, 0x42, 0xc4, 0xc5, 0x0c, 0x7d, 0xca, 0x40, 0xe3, 0x72, 0xcb, 0x92, 0xbb,
- 0x07, 0x04, 0xc7, 0xef, 0xe2, 0x40, 0xf3, 0x58, 0x0f, 0xbd, 0x47, 0x1d, 0x41, 0x0e, 0x4a, 0xea,
- 0xc7, 0x73, 0x83, 0x7b, 0x82, 0x3c, 0xe1, 0xd5, 0x21, 0x90, 0xfb, 0xf6, 0x50, 0x4d, 0x02, 0x64,
- 0x50, 0xb7, 0x33, 0x6f, 0x28, 0x21, 0xec, 0x15, 0xfd, 0x6d, 0x71, 0xde, 0x7c, 0xa0, 0x36, 0x85,
- 0x90, 0xc0, 0x77, 0xfb, 0x48, 0x5d, 0xfe, 0x98, 0xd3, 0x40, 0xcd, 0x35, 0x6d, 0xe3, 0x7e, 0x0b,
- 0x13, 0x59, 0xbb, 0x84, 0xe8, 0xd9, 0xc8, 0xcc, 0xa1, 0x37, 0xca, 0xcb, 0x5e, 0x26, 0xa6, 0x5a,
- 0xd3, 0x2e, 0xff, 0x10, 0x88, 0xa5, 0xda, 0x41, 0x8f, 0x1a, 0x76, 0x20, 0x4f, 0x65, 0xee, 0xd4,
- 0xd6, 0xa8, 0xe0, 0x7a, 0x6b, 0x12, 0xa4, 0x64, 0x45, 0xd9, 0xc4, 0xf4, 0x38, 0x6f, 0xd5, 0xf8,
- 0x16, 0xdf, 0xa4, 0xee, 0x0b, 0x6e, 0xb6, 0xe9, 0x6b, 0xf4, 0x78, 0x1f, 0x29, 0x2c, 0x9d, 0x76,
- 0x95, 0x46, 0x68, 0x91, 0xab, 0xea, 0x80, 0xbd, 0x19, 0x83, 0x7f, 0xe1, 0x1a, 0xe9, 0x45, 0x27,
- 0x55, 0x31, 0x2c, 0x05, 0xcb, 0x96, 0x92, 0x30, 0x37, 0xae, 0xc3, 0x0a, 0x0b, 0xaa, 0x0d, 0xa9,
- 0x9f, 0x89, 0x56, 0x45, 0xae, 0x47, 0x7c, 0xf7, 0x4e, 0xc6, 0xd8, 0x8a, 0xf4, 0xfd, 0x33, 0x7f,
- 0x5f, 0xfe, 0x12, 0xd1, 0xce, 0x3b, 0x6e, 0x7a, 0x60, 0xeb, 0x64, 0x61, 0xe5, 0xbe, 0x7b, 0xf1,
- 0xdc, 0x67, 0xde, 0xae, 0x6e, 0xbf, 0x58, 0x2e, 0x12, 0x9c, 0x63, 0x9f, 0xd6, 0x7b, 0xa3, 0xa0,
- 0x1c, 0x10, 0x9a, 0x3a, 0x0e, 0xc3, 0x4a, 0xa3, 0x3c, 0xb1, 0xdf, 0x74, 0xc7, 0x38, 0xeb, 0x2e,
- 0x19, 0x96, 0x85, 0x50, 0xed, 0x74, 0x34, 0x86, 0xf6, 0x72, 0x6d, 0xa0, 0xb0, 0x32, 0xd0, 0x02,
- 0xd9, 0xe1, 0xc1, 0xc4, 0x8d, 0x08, 0x26, 0x0b, 0xd8, 0x5f, 0xd1, 0x4b, 0xa1, 0x71, 0x98, 0x8c,
- 0x5a, 0x78, 0x0d, 0xbb, 0x2d, 0x8c, 0x10, 0x5f, 0xaa, 0x28, 0xd6, 0xb5, 0x92, 0xb4, 0x40, 0xdd,
- 0x9a, 0x0f, 0x49, 0x2f, 0x4d, 0xf0, 0x02, 0xd2, 0x84, 0x05, 0x6a, 0x5e, 0x83, 0xf7, 0x08, 0x53,
- 0xad, 0x66, 0x9f, 0xe5, 0xb7, 0xaf, 0x14, 0x38, 0x61, 0x22, 0x02, 0x09, 0x57, 0x99, 0x50, 0x7b,
- 0x6d, 0x11, 0xdb, 0x71, 0xd7, 0xd3, 0x06, 0xb5, 0x4f, 0x0f, 0xbe, 0xe2, 0x46, 0xda, 0x18, 0xf5,
- 0xee, 0x88, 0x17, 0x0e, 0x77, 0x57, 0x30, 0xe1, 0x3d, 0x78, 0xb9, 0x1c, 0x75, 0x1f, 0xc0, 0xa4,
- 0x2e, 0xff, 0x53, 0x9a, 0x17, 0x2b, 0x22, 0x6c, 0x13, 0x55, 0x05, 0xf7, 0x64, 0x5c, 0x88, 0x2a,
- 0x2b, 0x79, 0x4c, 0xf0, 0xf4, 0x9c, 0x5c, 0x49, 0xd9, 0x96, 0xb7, 0x23, 0x13, 0x56, 0xb3, 0x06,
- 0xeb, 0x0e, 0x08, 0x64, 0x94, 0xe0, 0x4e, 0xc4, 0xf7, 0xbb, 0x0b, 0xc8, 0x02, 0x15, 0xfb, 0x88,
- 0x68, 0x97, 0xc4, 0x1b, 0x34, 0x64, 0x78, 0x90, 0x85, 0xcc, 0x0c, 0x36, 0x31, 0xd0, 0x23, 0xd9,
- 0xa8, 0xe0, 0x80, 0x8f, 0x54, 0x18, 0x6a, 0x1d, 0xab, 0xe1, 0xb0, 0xdd, 0x20, 0x93, 0x6b, 0x57,
- 0x62, 0x58, 0xfa, 0xcf, 0x31, 0xc9, 0x84, 0xda, 0xd2, 0x89, 0xab, 0x5d, 0xdf, 0xc4, 0x55, 0x81,
- 0xa2, 0x2f, 0xbe, 0x5b, 0x51, 0xb5, 0x96, 0x57, 0xfc, 0xa4, 0x17, 0xb6, 0xce, 0x87, 0x1d, 0x0f,
- 0x21, 0xb6, 0x72, 0x24, 0xf1, 0x31, 0xa0, 0x03, 0x8e, 0xd3, 0x10, 0x48, 0xfd, 0x42, 0xc5, 0x5e,
- 0xe1, 0xc1, 0x36, 0xb0, 0x91, 0x4d, 0xb2, 0x8e, 0xa0, 0xfe, 0xac, 0xa3, 0xec, 0x01, 0x8d, 0xd0,
- 0xe4, 0x47, 0x29, 0xda, 0x72, 0xfa, 0xcc, 0xab, 0x6a, 0x3d, 0x1e, 0x77, 0x9b, 0x0b, 0xb6, 0xfc,
- 0x24, 0x30, 0x6d, 0x4e, 0x12, 0x86, 0xde, 0x26, 0x44, 0x10, 0xa2, 0x9c, 0x8a, 0x48, 0xfe, 0x72,
- 0xa7, 0xa9, 0xa1, 0x31, 0xb2, 0x02, 0xe8, 0x72, 0x36, 0x67, 0xa5, 0x62, 0xb9, 0x8d, 0x26, 0x23,
- 0x67, 0xde, 0xe5, 0xa5, 0xd2, 0x7e, 0xfa, 0xff, 0x18, 0x4a, 0x19, 0x89, 0xa8, 0xce, 0x6e, 0xad,
- 0xf0, 0x1a, 0x55, 0xb1, 0x78, 0x63, 0xf7, 0x3f, 0xc4, 0xb7, 0x93, 0xa1, 0x84, 0x23, 0x5a, 0x4c,
- 0x30, 0x6d, 0x11, 0x25, 0x18, 0x1f, 0xe5, 0xb2, 0xea, 0x9a, 0x2f, 0x4a, 0x95, 0x60, 0x12, 0xc2,
- 0xb3, 0xf4, 0xdd, 0x5a, 0xb8, 0x9b, 0xd3, 0xe6, 0x98, 0xed, 0x28, 0xb4, 0xa6, 0xa5, 0xca, 0x93,
- 0x73, 0x83, 0x99, 0xce, 0xd8, 0xe7, 0xc1, 0x6b, 0xb6, 0xc0, 0x94, 0x5f, 0xb7, 0xe6, 0x82, 0x1d,
- 0x76, 0x05, 0x86, 0xa4, 0x3b, 0x50, 0xbf, 0x4e, 0x7c, 0x03, 0x26, 0x8b, 0xc0, 0xec, 0xb9, 0x31,
- 0xb6, 0x72, 0xc2, 0x30, 0x5b, 0x2c, 0xad, 0xc3, 0x52, 0x2e, 0x9a, 0x60, 0xd1, 0xaf, 0xf1, 0xbf,
- 0x35, 0xeb, 0x0e, 0x4f, 0xfb, 0xa8, 0x9b, 0x97, 0x20, 0x59, 0x9d, 0x9e, 0xe2, 0x6a, 0x29, 0xee,
- 0xf5, 0x9c, 0x4a, 0xdb, 0x9b, 0xd4, 0x89, 0x1a, 0x0e, 0x74, 0x21, 0x75, 0xf3, 0x29, 0x61, 0x60,
- 0x3f, 0x24, 0x30, 0x9b, 0xfe, 0x05, 0x67, 0xdd, 0x77, 0x1c, 0x3a, 0xf5, 0x0c, 0x7e, 0x5f, 0xb6,
- 0xff, 0x53, 0x74, 0x0f, 0x9e, 0x79, 0x75, 0x50, 0x59, 0x31, 0x86, 0x1e, 0x1d, 0x3d, 0x17, 0x38,
- 0x7c, 0xca, 0xb8, 0x70, 0x3e, 0xfd, 0x43, 0x04, 0x2b, 0x46, 0x81, 0xe0, 0x2e, 0xf8, 0xcf, 0x69,
- 0xbc, 0xbd, 0xfc, 0xe4, 0x5e, 0x81, 0x51, 0x89, 0x05, 0x6b, 0x3d, 0x0b, 0x3f, 0xbb, 0x87, 0xe7,
- 0xb9, 0x3b, 0xe3, 0x8e, 0xbd, 0x36, 0x2f, 0xac, 0xcf, 0xa8, 0x8f, 0xdf, 0x48, 0xb1, 0xbc, 0xcb,
- 0x79, 0x4c, 0xa7, 0x1a, 0xdd, 0x4a, 0x3d, 0x21, 0xe1, 0x85, 0x33, 0x34, 0x59, 0xf2, 0xf4, 0x45,
- 0xfa, 0xd5, 0x6b, 0x65, 0x7d, 0xce, 0x0b, 0x75, 0x93, 0xf2, 0x34, 0xca, 0x6a, 0x37, 0x2c, 0x14,
- 0x3a, 0xa2, 0x2f, 0xf1, 0x1d, 0xb2, 0x19, 0xf8, 0xbd, 0xdf, 0x88, 0x21, 0x7b, 0x74, 0x64, 0x9a,
- 0x17, 0x9e, 0xc8, 0x4d, 0xea, 0xf4, 0x11, 0x36, 0xe8, 0xcb, 0xe3, 0x9a, 0x32, 0x2e, 0x44, 0x15,
- 0xd7, 0xe9, 0x8c, 0xd9, 0x8a, 0x88, 0x03, 0xbb, 0xc6, 0xe6, 0x5f, 0x71, 0x23, 0x6d, 0x0c, 0x9b,
- 0x54, 0x70, 0x40, 0xa6, 0x2a, 0x0c, 0x35, 0xef, 0xb4, 0x91, 0x58, 0x8f, 0x10, 0xa8, 0xd4, 0xca,
- 0x94, 0x07, 0x04, 0x32, 0x4a, 0x70, 0x27, 0x62, 0x9a, 0xbc, 0xe4, 0x64, 0x01, 0xeb, 0x9c, 0x44,
- 0x91, 0x81, 0x1b, 0x58, 0xa9, 0xc7, 0x59, 0x47, 0x50, 0x7f, 0x56, 0xb0, 0x76, 0xe1, 0xa7, 0x68,
- 0x51, 0xf6, 0x5f, 0xcc, 0xc9, 0xbb, 0x4b, 0xca, 0x7e, 0x52, 0xea, 0x5b, 0x67, 0xa2, 0xef, 0xe6,
- 0xd2, 0x6f, 0x93, 0xb3, 0x69, 0x3f, 0x7d, 0x9e, 0x0c, 0x25, 0xed, 0xa5, 0x54, 0x67, 0x37, 0xb7,
- 0x12, 0x18, 0xd7, 0x27, 0x09, 0x43, 0x6f, 0x13, 0x22, 0x08, 0x51, 0x4e, 0x45, 0x24, 0x7f, 0x39,
- 0xd8, 0xa0, 0xad, 0x67, 0x6c, 0x92, 0x81, 0xd4, 0x5b, 0x60, 0x4a, 0xce, 0xba, 0x73, 0x41, 0xef,
- 0x18, 0xd7, 0xe9, 0xf3, 0x0c, 0xee, 0x93, 0x59, 0x75, 0x4d, 0xf6, 0x25, 0xab, 0x30, 0x09, 0x61,
- 0x9b, 0x4e, 0x25, 0x8c, 0xac, 0x6a, 0xa5, 0x0d, 0x07, 0x3a, 0xf1, 0xdb, 0x98, 0xf5, 0xd1, 0x30,
- 0x5b, 0x39, 0x61, 0x18, 0xcc, 0x16, 0xb7, 0x80, 0x29, 0x17, 0x4d, 0x30, 0x89, 0xb6, 0x99, 0xbe,
- 0x5e, 0xbf, 0x7e, 0x72, 0x2f, 0xa1, 0xc9, 0xa5, 0xe3, 0xd4, 0xff, 0xe4, 0xfe, 0xbc, 0xa2, 0x92,
- 0x9e, 0xc8, 0x3a, 0xe6, 0x4f, 0xdd, 0xdb, 0x28, 0xcd, 0xf9, 0x43, 0x0f, 0xef, 0xff, 0xea, 0x1c,
- 0x1d, 0x51, 0xf6, 0x99, 0xef, 0x59, 0xed, 0x7c, 0xbf, 0x8e, 0x44, 0xf1, 0xdc, 0x3a, 0x32, 0x4d,
- 0xdd, 0x26, 0xb2, 0x0d, 0x8f, 0x25, 0xff, 0xf1, 0x91, 0xa3, 0xf8, 0x1a, 0xcd, 0x79, 0x7a, 0xc3,
- 0x4a, 0xe2, 0x02, 0x19, 0x25, 0x38, 0xf2, 0x31, 0x4d, 0x5e, 0x72, 0x32, 0xe1, 0x94, 0x4e, 0x22,
- 0x8a, 0x95, 0x46, 0x8d, 0x45, 0x44, 0xe0, 0xbc, 0x63, 0x73, 0xce, 0xd9, 0xf0, 0xd7, 0x06, 0xac,
- 0x09, 0x0c, 0x8a, 0xf2, 0xe5, 0xc0, 0xd6, 0xe8, 0x11, 0x04, 0xc9, 0x27, 0xc3, 0x12, 0xde, 0xfd,
- 0xc9, 0x7b, 0xce, 0x66, 0x85, 0xbc, 0xc4, 0x65, 0x3f, 0x29, 0x75, 0xcc, 0xd2, 0x51, 0x96, 0x73,
- 0xcc, 0xfd, 0xd1, 0x0c, 0x66, 0x0b, 0xba, 0x40, 0xf5, 0xea, 0xc7, 0x18, 0xa5, 0x5b, 0xad, 0x5f,
- 0x0c, 0x8a, 0x95, 0x98, 0x06, 0x77, 0xa8, 0xcd, 0xdb, 0xc7, 0x7b, 0xf3, 0xb4, 0x18, 0xe5, 0xd1,
- 0x8f, 0x13, 0x59, 0xe7, 0xa6, 0xf3, 0x9e, 0x99, 0xa9, 0xb0, 0x7c, 0x0d, 0x87, 0xdd, 0x3d, 0x80,
- 0x4f, 0x64, 0x1d, 0x73, 0xc6, 0x8f, 0x8c, 0x14, 0x87, 0x9d, 0xc0, 0xe6, 0x96, 0x9e, 0x75, 0x0e,
- 0x85, 0xdc, 0x67, 0x33, 0xa3, 0x5e, 0x62, 0xd3, 0xfe, 0xf5, 0xdb, 0x66, 0x69, 0xc9, 0x4b, 0xd8,
- 0x45, 0xab, 0x23, 0xa7, 0xc3, 0x22, 0x70, 0x5e, 0xd0, 0xd8, 0x67, 0x8d, 0x78, 0x8a, 0x03, 0x56,
- 0xc6, 0x32, 0xef, 0xd8, 0x63, 0xa6, 0x46, 0x0a, 0xa2, 0xaf, 0x60, 0x73, 0x4b, 0x4f, 0xdb, 0x07,
- 0x06, 0x45, 0xab, 0x4c, 0x03, 0xda, 0x54, 0x87, 0x8c, 0x82, 0xdc, 0x98, 0x5a, 0x0c, 0x93, 0x89,
- 0x03, 0xc3, 0xb4, 0x26, 0xe0, 0x6d, 0x2a, 0xa2, 0x46, 0x41, 0x6e, 0x4c, 0x2d, 0x06, 0xa8, 0xa5,
- 0xc3, 0xb4, 0xf0, 0xb2, 0x80, 0x11, 0x38, 0x2f, 0x68, 0x6c, 0xd2, 0xa7, 0x3c, 0x45, 0xe0, 0x2b,
- 0x40, 0x2d, 0x3c, 0xcd, 0x20, 0x95, 0x0e, 0x7b, 0x1a, 0x1b, 0xd5, 0x59, 0x0f, 0x80, 0x38, 0x7a,
- 0x80, 0x5a, 0x78, 0x59, 0x40, 0xe9, 0x1c, 0xf6, 0x34, 0x36, 0x69, 0xb2, 0x1e, 0xc3, 0x70, 0xf4,
- 0x1a, 0x55, 0x31, 0x76, 0x0d, 0x19, 0x1e, 0x24, 0xb0, 0x33, 0x03, 0xec, 0x9d, 0x34, 0x78, 0xa7,
- 0xda, 0x22, 0x75, 0xe2, 0x6d, 0x65, 0x0c, 0xa9, 0x9e, 0x1e, 0xbf, 0x07, 0x8c, 0x77, 0x30, 0x29,
- 0x59, 0xbb, 0xb9, 0x9d, 0xcd, 0xe1, 0x3a, 0xfd, 0xec, 0x69, 0xb8, 0xf9, 0xbf, 0xb2, 0xe8, 0x78,
- 0x99, 0xcc, 0xfd, 0x09, 0xad, 0x9d, 0x28, 0x70, 0xc2, 0x44, 0x04, 0x12, 0xae, 0xf1, 0xa0, 0xf6,
- 0x9c, 0x4a, 0xe2, 0x63, 0x4e, 0x2a, 0x56, 0x55, 0x08, 0x87, 0xb6, 0xc6, 0xd9, 0xfb, 0x9b, 0xda,
- 0x5c, 0x3d, 0xa6, 0xf7, 0x2e, 0x56, 0x44, 0xd8, 0x26, 0xaa, 0x0a, 0x2d, 0xc8, 0xb8, 0xd3, 0x54,
- 0xdf, 0xa4, 0x6a, 0x88, 0x8e, 0xd2, 0x72, 0x8c, 0x54, 0xdd, 0x0d, 0xd3, 0xfb, 0x7d, 0x0b, 0x05,
- 0x1f, 0xd3, 0x2e, 0x1c, 0xee, 0xae, 0x60, 0x01, 0x7a, 0xf0, 0xb1, 0x38, 0xea, 0x3e, 0x43, 0x8b,
- 0xd5, 0x6b, 0x54, 0x5c, 0x8b, 0x7f, 0x8e, 0xc6, 0x03, 0x98, 0xaa, 0xb8, 0x15, 0x69, 0x7d, 0x5d,
- 0x15, 0x1c, 0x10, 0xc8, 0xeb, 0x03, 0x9c, 0x4b, 0x2d, 0xb5, 0x16, 0x53, 0x04, 0x2a, 0x35, 0xd3,
- 0x96, 0x85, 0xdc, 0xb7, 0x4b, 0x87, 0xaa, 0x1f, 0x5f, 0xc2, 0x11, 0xad, 0x37, 0xef, 0xed, 0x82,
- 0x56, 0xf2, 0x98, 0x23, 0x2b, 0xfb, 0xb8, 0x92, 0x71, 0xef, 0xad, 0x46, 0x26, 0xac, 0xa5, 0x0c,
- 0x53, 0x74, 0x87, 0x49, 0xc8, 0x4c, 0xc6, 0xb7, 0xbb, 0x2c, 0x1f, 0x92, 0x51, 0xa6, 0x9e, 0x20,
- 0x93, 0x03, 0xc3, 0xdd, 0xa8, 0x30, 0xd4, 0x3a, 0x95, 0x01, 0xa3, 0x79, 0x40, 0xe5, 0xd6, 0xae,
- 0x10, 0x9a, 0x0f, 0xa2, 0x08, 0xb4, 0xe2, 0x6e, 0xe7, 0x76, 0xa4, 0x87, 0x73, 0x20, 0x0e, 0xff,
- 0xd0, 0xed, 0x4b, 0x36, 0x68, 0xc8, 0xf0, 0xe3, 0xc9, 0x5b, 0x18, 0x6c, 0x62, 0x63, 0x46, 0x71,
- 0x47, 0x29, 0xfb, 0x22, 0xc2, 0xd5, 0xfd, 0x23, 0x15, 0xa6, 0x92, 0x44, 0x4e, 0x8e, 0x72, 0x90,
- 0x87, 0x5e, 0xbf, 0xb6, 0xa2, 0xa9, 0xef, 0xae, 0x3b, 0x8b, 0x2e, 0xaf, 0x5f, 0xcd, 0x3a, 0x1e,
- 0x04, 0xc7, 0x73, 0xc9, 0x02, 0x2d, 0xd9, 0xfa, 0x49, 0xfc, 0x29, 0x51, 0x6c, 0x08, 0xe2, 0x4f,
- 0xc4, 0xb0, 0x37, 0x5d, 0x62, 0x51, 0xcb, 0x77, 0x67, 0xd1, 0x95, 0xba, 0x7d, 0x4b, 0xaa, 0xc1,
- 0xc1, 0x36, 0x28, 0x37, 0x81, 0xe6, 0xb5, 0x52, 0xad, 0x12, 0x27, 0x6e, 0x0a, 0x41, 0x91, 0xed,
- 0x01, 0x41, 0x6c, 0xa3, 0xe1, 0x9a, 0xa7, 0xdf, 0x83, 0x3f, 0x9b, 0x85, 0x1b, 0x02, 0xd9, 0x63,
- 0x82, 0xd8, 0xa0, 0xdc, 0x41, 0x1e, 0x91, 0x8b, 0xf1, 0x48, 0x9c, 0x7b, 0x28, 0xc7, 0x01, 0x32,
- 0x42, 0xaf, 0xe4, 0x48, 0x21, 0x62, 0x83, 0x06, 0xdf, 0x65, 0x20, 0x90, 0x39, 0x84, 0x49, 0xbc,
- 0x88, 0x17, 0x9e, 0x08, 0x44, 0xb3, 0x6d, 0xc1, 0xa6, 0x0d, 0x3b, 0x10, 0xc6, 0xd3, 0x77, 0x6a,
- 0x48, 0x60, 0xda, 0x9c, 0x24, 0xcf, 0x7f, 0x4c, 0x88, 0x20, 0x87, 0xfb, 0xd7, 0x90, 0x3f, 0xe4,
- 0xcb, 0xf9, 0x16, 0xe3, 0x84, 0x4b, 0x49, 0x18, 0xfa, 0x57, 0x80, 0x05, 0xe4, 0x55, 0xe7, 0xb5,
- 0x0b, 0x8e, 0x52, 0x77, 0xe4, 0x37, 0x5b, 0x95, 0xd4, 0x7a, 0x3c, 0xee, 0xf5, 0x16, 0xaf, 0x3b,
- 0x0e, 0x08, 0x4d, 0x1d, 0x07, 0x80, 0x25, 0xb0, 0x1e, 0xb9, 0x8e, 0x3a, 0x82, 0x1c, 0x94, 0x17,
- 0xce, 0x7f, 0x09, 0x89, 0x67, 0xfc, 0x37, 0x3d, 0x30, 0x94, 0x32, 0xd1, 0x93, 0x5f, 0xdc, 0x99,
- 0x4d, 0xe6, 0xc5, 0xf6, 0xc7, 0x78, 0x01, 0x69, 0x42, 0xe3, 0x35, 0x2f, 0xa0, 0x9a, 0x04, 0xc8,
- 0x8d, 0x91, 0x81, 0x62, 0xa7, 0x04, 0x13, 0xe4, 0x6c, 0xce, 0x89, 0xc4, 0xb1, 0xd9, 0x4c, 0x46,
- 0xa0, 0xad, 0x66, 0xde, 0x50, 0x42, 0x1b, 0x2a, 0x39, 0xda, 0xe2, 0x7f, 0xf8, 0x83, 0x6c, 0xc9,
- 0x60, 0xda, 0x22, 0x4a, 0x30, 0x3e, 0x09, 0xa7, 0x17, 0xf7, 0x5e, 0x94, 0xe9, 0xc0, 0x24, 0x47,
- 0xe3, 0x43, 0xee, 0x35, 0x90, 0xba, 0x3f, 0xf3, 0x65, 0x80, 0x59, 0x6a, 0xda, 0x05, 0xfc, 0x16,
- 0x23, 0x34, 0xaa, 0xa1, 0xf0, 0xc6, 0x2d, 0x7e, 0x4b, 0xad, 0xe5, 0x81, 0xcb, 0x46, 0xb4, 0x98,
- 0x26, 0xb2, 0xb5, 0xcb, 0x13, 0x71, 0x53, 0x5b, 0x81, 0x6e, 0x57, 0x55, 0xbc, 0x4c, 0x8f, 0xb4,
- 0xe6, 0xc5, 0xf1, 0x5f, 0x73, 0x0d, 0x41, 0xd6, 0xaf, 0x43, 0xeb, 0xbe, 0xad, 0x0f, 0xc7, 0x3a,
- 0x65, 0x5c, 0x3d, 0x20, 0xd3, 0x89, 0x77, 0x82, 0xdd, 0x34, 0xec, 0x40, 0x9e, 0xca, 0x1f, 0x6b,
- 0xa5, 0x2b, 0x79, 0xb4, 0xb3, 0xf5, 0x65, 0x0f, 0xf3, 0x19, 0x50, 0xab, 0x8f, 0x89, 0x57, 0xe5,
- 0x6f, 0x93, 0x03, 0xf4, 0xd6, 0x24, 0x8b, 0xc8, 0x8a, 0x71, 0x4b, 0x2b, 0x70, 0xde, 0x69, 0x33,
- 0xaf, 0xe4, 0x47, 0x60, 0xb6, 0x58, 0x99, 0x45, 0xa4, 0x5c, 0xf7, 0xc0, 0x61, 0x9d, 0x21, 0xbd,
- 0x2c, 0x7d, 0x8b, 0x1f, 0x16, 0xdc, 0xaf, 0x11, 0xd6, 0x2b, 0xf0, 0x3e, 0x52, 0x58, 0xf9, 0xec,
- 0xec, 0x0a, 0xcf, 0x8b, 0x76, 0xa0, 0xbd, 0x9c, 0xf8, 0x06, 0x4c, 0xd5, 0x43, 0x1b, 0xb1, 0x62,
- 0xe9, 0x8c, 0xd0, 0xe1, 0x95, 0x17, 0xc3, 0xb9, 0x32, 0xc5, 0xfe, 0x01, 0x34, 0x11, 0x8a, 0x4e,
- 0x29, 0xfb, 0x94, 0x75, 0xf5, 0x6b, 0xd1, 0x34, 0x1c, 0xe8, 0x42, 0xea, 0x25, 0x52, 0xc2, 0xc0,
- 0xaa, 0x62, 0x58, 0x0a, 0x55, 0xef, 0xe7, 0x60, 0x6e, 0x9f, 0x45, 0x14, 0x16, 0x97, 0x1a, 0x91,
- 0x6a, 0x15, 0x1c, 0x9e, 0x35, 0x93, 0xf5, 0xed, 0x40, 0xb2, 0xf9, 0xff, 0x07, 0xd4, 0x52, 0x1f,
- 0xfd, 0xd1, 0xac, 0x8a, 0x9f, 0x8e, 0xf8, 0x2d, 0x9c, 0x4f, 0x73, 0xd7, 0x2b, 0x39, 0x66, 0xfe,
- 0x3d, 0xa6, 0xe8, 0x1e, 0xff, 0xf2, 0xea, 0xa0, 0xb2, 0x62, 0xcf, 0x3c, 0x3a, 0x7a, 0x2e, 0x70,
- 0xbe, 0x3f, 0x24, 0x61, 0x5f, 0x76, 0xdc, 0xf4, 0xc0, 0x15, 0xc8, 0xc2, 0x09, 0xbf, 0xf6, 0x21,
- 0x7e, 0x48, 0x60, 0xf5, 0x3f, 0x0a, 0xce, 0x79, 0xee, 0x38, 0x74, 0x29, 0x18, 0xfc, 0xbe, 0xaf,
- 0x7b, 0xce, 0x7f, 0x9f, 0xdc, 0xbd, 0xb0, 0x5c, 0x24, 0xfb, 0xc6, 0xfd, 0x6f, 0xf6, 0x85, 0x83,
- 0xbb, 0xb9, 0x3b, 0x0b, 0xbc, 0xc1, 0xa2, 0xd1, 0x0a, 0xd6, 0x7a, 0x16, 0x7e, 0xb5, 0xcd, 0x0d,
- 0x38, 0x20, 0xf7, 0x74, 0x1c, 0x45, 0x94, 0x85, 0x78, 0xa1, 0x7d, 0xe8, 0x4d, 0x70, 0x15, 0x5c,
- 0xf8, 0x57, 0xb3, 0xe0, 0x7c, 0x39, 0x86, 0x08, 0x56, 0x8c, 0xc1, 0x03, 0x5c, 0x33, 0x5d, 0xd2,
- 0x32, 0xef, 0xc9, 0xa0, 0x19, 0xe8, 0x68, 0xcf, 0x2f, 0xe4, 0xda, 0x83, 0xa3, 0x64, 0x63, 0x04,
- 0xf2, 0x98, 0x8d, 0x34, 0x79, 0x94, 0x7a, 0x42, 0x01, 0xc9, 0x66, 0x68, 0xb2, 0x27, 0x2b, 0x8a,
- 0x71, 0x01, 0x41, 0x4b, 0xd9, 0x10, 0x4c, 0x16, 0x73, 0xbe, 0x61, 0x96, 0x81, 0xe2, 0xf3, 0xdb,
- 0xb1, 0x76, 0x05, 0xdf, 0xb9, 0x6c, 0x5e, 0x9b, 0x5d, 0x93, 0xdd, 0x7d, 0x90, 0xa1, 0xbb, 0x55,
- 0xb4, 0xf0, 0x1a, 0xb5, 0x5a, 0xdb, 0x20, 0xbe, 0x97, 0x50, 0x6f, 0xa9, 0xe7, 0xab, 0x80, 0x79,
- 0x74, 0x87, 0x5e, 0x21, 0x3a, 0xa7, 0x32, 0x33, 0xb9, 0x7d, 0xd3, 0x42, 0xf6, 0xe8, 0xc8, 0xf7,
- 0xf7, 0x1e, 0x92, 0x5e, 0x9a, 0x23, 0x04, 0x67, 0xcb, 0x0a, 0xd4, 0xbc, 0xc5, 0x2d, 0x10, 0xa6,
- 0x37, 0x69, 0xd6, 0xca, 0xfa, 0x5f, 0x16, 0xea, 0xe5, 0x27, 0x68, 0x57, 0xd4, 0x6e, 0x58, 0x28,
- },
- { /* 11 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc2, 0x5d, 0x97, 0xf3, 0xe9, 0x1a, 0x8d, 0xcb, 0xbb, 0x06, 0xc5, 0x20, 0x1c, 0x68, 0x90, 0x93,
- 0x47, 0xba, 0xed, 0x25, 0x11, 0x34, 0xd9, 0x55, 0xb5, 0x0c, 0x49, 0x40, 0x38, 0xd0, 0xe3, 0xe5,
- 0x85, 0xe7, 0x7a, 0xd6, 0xf8, 0x2e, 0x54, 0x9e, 0x0e, 0x0a, 0x8c, 0x60, 0x24, 0xb8, 0x73, 0x76,
- 0x8e, 0xb7, 0x19, 0x4a, 0x22, 0x68, 0x71, 0xaa, 0xa9, 0x18, 0x92, 0x80, 0x70, 0x63, 0x05, 0x09,
- 0x4c, 0xea, 0x8e, 0xb9, 0xcb, 0x72, 0xfc, 0x61, 0x12, 0x1e, 0x57, 0xa0, 0x6c, 0x0b, 0x95, 0x9a,
- 0xc9, 0x0d, 0xf4, 0x6f, 0x33, 0x5c, 0xa8, 0xff, 0x1c, 0x14, 0xdb, 0xc0, 0x48, 0xb3, 0xe6, 0xec,
- 0x0b, 0x50, 0x63, 0x9c, 0xda, 0x46, 0x25, 0x34, 0xa7, 0x12, 0x1e, 0xe0, 0x54, 0xdb, 0x76, 0x7f,
- 0xdf, 0xad, 0x32, 0x94, 0x44, 0xd0, 0xe2, 0x97, 0x91, 0x30, 0xe7, 0xc3, 0xe0, 0xc6, 0x0a, 0x12,
- 0x1d, 0xf0, 0xa5, 0x67, 0xad, 0xca, 0x6f, 0x5c, 0x2a, 0x36, 0x22, 0xe3, 0xfc, 0xae, 0x9a, 0x81,
- 0x98, 0x17, 0xdf, 0xb1, 0x55, 0xe4, 0x3b, 0xc2, 0x24, 0x3c, 0xae, 0x83, 0xd8, 0x16, 0xe9, 0xf7,
- 0x5a, 0x4a, 0x48, 0x42, 0xbc, 0xfe, 0xb6, 0x09, 0x9f, 0x3a, 0x6b, 0xa3, 0xc4, 0x7e, 0x79, 0x64,
- 0x51, 0x1a, 0x2b, 0xde, 0x66, 0xb8, 0x93, 0x3d, 0x38, 0x28, 0x75, 0x43, 0x90, 0xa5, 0x0f, 0x1b,
- 0x93, 0x47, 0xbc, 0x2d, 0x8f, 0xa2, 0x1e, 0xf6, 0x83, 0x2e, 0xb0, 0x63, 0x8c, 0xcd, 0x9f, 0x88,
- 0x16, 0xa0, 0xc6, 0xfb, 0x77, 0x8c, 0x4a, 0x68, 0x8d, 0x24, 0x3c, 0x03, 0xa8, 0x75, 0xec, 0xfe,
- 0xd4, 0xfd, 0x51, 0x08, 0x9e, 0x96, 0xc7, 0xa3, 0x36, 0x22, 0xf9, 0x23, 0xb4, 0x1d, 0x7c, 0x6d,
- 0x7d, 0x99, 0x64, 0xeb, 0x88, 0x63, 0x07, 0xed, 0xe1, 0x60, 0x0d, 0x45, 0x03, 0x4f, 0x14, 0x24,
- 0xbf, 0xc4, 0xf3, 0x18, 0x61, 0x79, 0x8a, 0x26, 0x5a, 0x66, 0xc8, 0x65, 0x1f, 0x27, 0x84, 0xb7,
- 0x3a, 0x23, 0x89, 0xce, 0x99, 0x57, 0xde, 0xb8, 0x54, 0x6c, 0x44, 0x05, 0x3b, 0x9f, 0xf7, 0xc1,
- 0xf8, 0x7e, 0x1e, 0x3d, 0x70, 0x4d, 0x53, 0x73, 0xef, 0x6a, 0x81, 0x25, 0x27, 0xf7, 0x67, 0x52,
- 0xf3, 0x2e, 0x7d, 0xa1, 0xaa, 0x0b, 0x76, 0x47, 0x48, 0x78, 0x9f, 0xc5, 0x73, 0x2c, 0x11, 0x2d,
- 0x31, 0x73, 0xea, 0x52, 0x43, 0x11, 0xfb, 0x8c, 0xf3, 0x7e, 0x5a, 0xe5, 0x6f, 0x44, 0x81, 0xbe,
- 0xb4, 0x94, 0x90, 0x84, 0xbb, 0x3f, 0xaf, 0x12, 0xfd, 0x74, 0xd6, 0x85, 0x4b, 0xfc, 0xf2, 0xc8,
- 0x76, 0xc9, 0x07, 0x77, 0x52, 0x25, 0x22, 0xd9, 0x46, 0x72, 0x13, 0xa5, 0x57, 0x94, 0x62, 0x5b,
- 0xa2, 0x34, 0x56, 0x7f, 0xcc, 0xb3, 0xe5, 0x7a, 0x70, 0x50, 0xea, 0x86, 0xe3, 0x89, 0x1e, 0x36,
- 0x60, 0x69, 0xc1, 0x8c, 0x25, 0xa9, 0x68, 0xb1, 0xcb, 0x56, 0x2f, 0xa6, 0xff, 0xe1, 0x8e, 0xa5,
- 0xe5, 0x8e, 0xbb, 0x5a, 0xdd, 0x87, 0x3c, 0x2f, 0xc5, 0x5c, 0xa3, 0xc6, 0xdb, 0x59, 0xfd, 0xd3,
- 0x27, 0xd3, 0x2c, 0xa9, 0x34, 0x9d, 0xb1, 0xe4, 0x7e, 0x5a, 0x66, 0xe6, 0xc7, 0x31, 0x6d, 0x40,
- 0x2c, 0x83, 0x4f, 0x35, 0xee, 0xdb, 0x94, 0xd0, 0xd9, 0x48, 0x78, 0x06, 0x93, 0xea, 0x1b, 0x3f,
- 0xee, 0xde, 0xd8, 0xc6, 0x07, 0xc1, 0x19, 0x1b, 0x62, 0x4e, 0xbd, 0x26, 0x8f, 0x82, 0x8b, 0xac,
- 0x6b, 0x39, 0xa2, 0x10, 0xff, 0xef, 0x4d, 0x85, 0x6c, 0x44, 0x31, 0x46, 0xab, 0x3a, 0xf8, 0xda,
- 0xa9, 0x64, 0x35, 0xe3, 0x16, 0xf5, 0xc0, 0x4e, 0xd7, 0x42, 0xf4, 0x66, 0xb7, 0x52, 0x68, 0x49,
- 0xfa, 0xf1, 0xc8, 0x15, 0xd3, 0xc6, 0x0e, 0x19, 0x01, 0xc0, 0x1a, 0x8a, 0x06, 0x9e, 0x28, 0x48,
- 0x38, 0xac, 0x5f, 0xe6, 0x3a, 0xdc, 0x83, 0xd2, 0xba, 0xc6, 0xdf, 0xaa, 0x1a, 0xf6, 0xb8, 0xdb,
- 0xbd, 0x4b, 0x25, 0x30, 0xc2, 0xf2, 0xd7, 0x4c, 0xb4, 0xcc, 0x53, 0xca, 0x3e, 0x4e, 0xcb, 0xad,
- 0x7f, 0x16, 0xb2, 0xc3, 0x2b, 0xe8, 0x5a, 0x87, 0x0f, 0xca, 0x96, 0xea, 0x22, 0x26, 0x5b, 0x3e,
- 0x74, 0x46, 0xd1, 0x5f, 0xf1, 0xae, 0x7f, 0xb3, 0xa8, 0xd8, 0x88, 0x0a, 0x76, 0xfd, 0x2d, 0x41,
- 0xb6, 0x1b, 0x46, 0xac, 0x18, 0xb4, 0xf2, 0x78, 0x13, 0xde, 0x4d, 0x2a, 0x6a, 0x95, 0xbd, 0xd2,
- 0x33, 0xfc, 0x3c, 0x7a, 0xe0, 0x9a, 0xa6, 0xe6, 0x1d, 0xd4, 0xc1, 0x4a, 0x4e, 0x2d, 0xce, 0xa4,
- 0xf1, 0xa1, 0xab, 0x89, 0x09, 0x80, 0x2b, 0x2d, 0xa6, 0xd2, 0x04, 0x6a, 0x52, 0x45, 0x5e, 0x37,
- 0x25, 0x5c, 0xfa, 0x81, 0x97, 0x16, 0xec, 0x8e, 0x90, 0xf0, 0xfd, 0x49, 0xe6, 0x58, 0x22, 0x5a,
- 0xe7, 0x01, 0x6d, 0x72, 0x7e, 0x0c, 0x61, 0x45, 0x2b, 0xf6, 0x38, 0x69, 0xfa, 0x30, 0xb2, 0xc9,
- 0x62, 0xe6, 0x17, 0xa4, 0x86, 0x22, 0x35, 0xdb, 0x25, 0xfc, 0xb4, 0x09, 0xde, 0x88, 0xc1, 0xbf,
- 0xa0, 0xbb, 0x80, 0x57, 0x6f, 0x38, 0xb8, 0x10, 0x9e, 0xfa, 0x71, 0x29, 0xc2, 0xe0, 0x51, 0x2c,
- 0xab, 0xeb, 0xe3, 0xcb, 0xb5, 0x7e, 0x9d, 0x24, 0x39, 0xe8, 0x6f, 0xc9, 0x96, 0x3b, 0x27, 0x53,
- 0x69, 0xb6, 0x74, 0x38, 0x5c, 0x64, 0x10, 0xef, 0x82, 0xee, 0xaa, 0xe9, 0x8a, 0x53, 0xb7, 0xc0,
- 0xec, 0x51, 0x0e, 0xee, 0xa4, 0x4a, 0x44, 0x71, 0x8c, 0xe4, 0x26, 0x89, 0xae, 0xeb, 0xc4, 0xb6,
- 0x2e, 0x0c, 0x99, 0x1d, 0x4d, 0x50, 0xc9, 0xba, 0x37, 0xe2, 0xe3, 0xa9, 0xb2, 0x83, 0x54, 0x25,
- 0x87, 0x68, 0xac, 0xfe, 0x5b, 0xa5, 0x09, 0xf4, 0xe0, 0xa0, 0x17, 0xcf, 0x05, 0xd1, 0x3c, 0x6c,
- 0x45, 0x35, 0x3b, 0x0d, 0xb2, 0xbf, 0x84, 0x3f, 0x5b, 0xa6, 0xd2, 0xef, 0x19, 0xb9, 0xac, 0xff,
- 0xc0, 0xd2, 0x41, 0xdb, 0x4a, 0x91, 0xd0, 0xa1, 0x55, 0xac, 0x5e, 0x8f, 0x3d, 0x01, 0xdf, 0x89,
- 0x02, 0x8f, 0xd6, 0x28, 0xa3, 0x8b, 0x5d, 0x6a, 0xee, 0xaa, 0x9b, 0xaf, 0x21, 0x69, 0x4f, 0x1a,
- 0x09, 0xdf, 0xb5, 0xb4, 0x79, 0xcd, 0x78, 0x5e, 0x49, 0xb8, 0x85, 0x4f, 0x75, 0xb2, 0x39, 0x65,
- 0xcb, 0x82, 0x22, 0x47, 0x90, 0xd7, 0xf5, 0x95, 0xf2, 0xbe, 0x40, 0x6f, 0x69, 0xda, 0xa9, 0xf6,
- 0x4e, 0x65, 0x58, 0x91, 0x68, 0xf9, 0xa1, 0x0b, 0xfc, 0xb4, 0xcc, 0x0f, 0x4d, 0x62, 0xda, 0x80,
- 0x8c, 0x38, 0xcf, 0x62, 0x81, 0xe3, 0x2c, 0xc0, 0x47, 0xb2, 0x09, 0x2f, 0x51, 0x0a, 0x4a, 0x13,
- 0x58, 0xc5, 0x9e, 0x6a, 0x1f, 0x75, 0xeb, 0x63, 0x71, 0x90, 0xf0, 0x0c, 0xe5, 0x17, 0x36, 0x7e,
- 0x9a, 0x98, 0x09, 0x99, 0xf6, 0x6f, 0x66, 0xa8, 0xca, 0x96, 0x35, 0x2c, 0xf9, 0x7f, 0xa6, 0xed,
- 0x1f, 0x7f, 0x73, 0x4f, 0x0e, 0x41, 0x32, 0x36, 0xc4, 0x9c, 0xb9, 0x4c, 0xdd, 0xc7, 0xd5, 0x9b,
- 0xdd, 0x22, 0xe4, 0xbc, 0xe7, 0x5b, 0xbf, 0xfd, 0x7f, 0x9a, 0x7c, 0x6c, 0xc1, 0xaf, 0x45, 0x08,
- 0xd6, 0x72, 0x87, 0x20, 0x3d, 0x1d, 0x9a, 0xc9, 0xd8, 0x88, 0x62, 0x8c, 0x95, 0x74, 0x33, 0x77,
- 0x14, 0x2f, 0x10, 0xd3, 0xd4, 0x07, 0x17, 0x02, 0x63, 0x8e, 0xa7, 0xac, 0x89, 0x1c, 0xa3, 0xe4,
- 0x91, 0xc8, 0x6a, 0x05, 0x2c, 0x29, 0x43, 0x9c, 0x6d, 0x84, 0x2b, 0xcc, 0xad, 0xa4, 0xd0, 0x92,
- 0x53, 0x95, 0xfd, 0xf6, 0xc5, 0x33, 0xce, 0x57, 0xd6, 0x82, 0xee, 0xec, 0xb1, 0xcc, 0x40, 0x01,
- 0x37, 0x21, 0x53, 0x2a, 0x65, 0x4f, 0x1c, 0x32, 0x02, 0x43, 0x34, 0xd7, 0x0c, 0xff, 0x50, 0x90,
- 0xf5, 0x7c, 0xc4, 0xd9, 0x8c, 0x55, 0x91, 0xf9, 0xb9, 0x45, 0xf1, 0xf7, 0x10, 0x97, 0xc0, 0x03,
- 0x70, 0x9b, 0xbe, 0x0f, 0x74, 0x7b, 0xc5, 0x67, 0xb7, 0x4f, 0x7d, 0x97, 0x34, 0x2f, 0xb3, 0x75,
- 0xb2, 0xc6, 0x29, 0xfc, 0x9d, 0x61, 0x48, 0xac, 0x0c, 0x49, 0xb8, 0xb7, 0x28, 0x47, 0x23, 0xe6,
- 0xb9, 0x96, 0x4a, 0x60, 0x47, 0x27, 0x6d, 0x98, 0xab, 0x5b, 0xa6, 0x57, 0x7c, 0x9c, 0x55, 0x99,
- 0x7b, 0xcb, 0xdd, 0x93, 0xae, 0x3d, 0xe0, 0x53, 0x10, 0x5d, 0x63, 0x77, 0x60, 0xf4, 0xc5, 0x0a,
- 0xfe, 0x2c, 0xa7, 0x45, 0x56, 0x13, 0xb4, 0xcd, 0x1e, 0x57, 0xef, 0x17, 0x44, 0x4c, 0xb6, 0x7c,
- 0x3c, 0x71, 0x30, 0xb6, 0xbf, 0x09, 0x39, 0x06, 0xa5, 0x51, 0x2a, 0x37, 0x58, 0x24, 0x26, 0xef,
- 0xe8, 0x8c, 0x61, 0xbe, 0x21, 0x9f, 0xfe, 0xa5, 0x93, 0x73, 0xd3, 0x14, 0xec, 0x39, 0x5a, 0x82,
- 0x2a, 0xd1, 0xf6, 0x4d, 0xc8, 0x85, 0x73, 0x6e, 0x28, 0x75, 0x16, 0x34, 0xf0, 0x51, 0xca, 0x11,
- 0xaf, 0x36, 0x8c, 0x9b, 0x30, 0xab, 0x27, 0xf0, 0x26, 0x7f, 0x9a, 0x54, 0xd4, 0xe9, 0xb9, 0x67,
- 0x6d, 0x6b, 0x1b, 0x68, 0xd9, 0xb1, 0xaa, 0x3b, 0x9d, 0x79, 0x5f, 0x74, 0xc8, 0x81, 0x29, 0xf4,
- 0x66, 0x3b, 0x78, 0xf4, 0x03, 0xf7, 0x8f, 0x0f, 0x3a, 0x6b, 0x41, 0x94, 0x9c, 0x5a, 0x5f, 0x8b,
- 0xa4, 0x66, 0xef, 0x07, 0xea, 0xed, 0x02, 0xc4, 0x81, 0x6d, 0x84, 0xb4, 0x80, 0x32, 0xcf, 0x18,
- 0x21, 0x81, 0x95, 0xd1, 0x12, 0xc3, 0x56, 0x5a, 0x8f, 0x67, 0x08, 0xd4, 0xa4, 0x8a, 0xbc, 0x6e,
- 0xe3, 0xdc, 0x02, 0x22, 0xfb, 0xd9, 0xdb, 0x91, 0x34, 0x61, 0xcd, 0xf4, 0xb8, 0xe2, 0x2c, 0xfd,
- 0x4a, 0xb8, 0x37, 0xc1, 0xed, 0x2c, 0x1b, 0xdf, 0xe3, 0x23, 0x39, 0x92, 0x0f, 0xb0, 0x44, 0xb4,
- 0x88, 0xe5, 0xa0, 0x32, 0x04, 0x36, 0x96, 0x14, 0x58, 0x25, 0xfc, 0xb2, 0x13, 0xd8, 0xd4, 0x27,
- 0x0d, 0x02, 0xda, 0xe4, 0xfc, 0x18, 0xc2, 0x8a, 0x56, 0x2f, 0x70, 0xd2, 0x37, 0x60, 0xa7, 0x51,
- 0xcf, 0x5f, 0x4d, 0x17, 0x15, 0x02, 0x4f, 0x41, 0xed, 0x29, 0xb5, 0xf2, 0x2b, 0x08, 0x37, 0xc2,
- 0xc4, 0x0f, 0x2e, 0x8b, 0xcf, 0x44, 0x6a, 0x75, 0x4a, 0x3b, 0xab, 0x12, 0x7f, 0xd3, 0x41, 0xbd,
- 0x06, 0x52, 0xb9, 0x78, 0x26, 0x5e, 0xe7, 0xbe, 0xf1, 0x3d, 0x6e, 0x32, 0x63, 0xbb, 0xd1, 0x2e,
- 0x83, 0xb5, 0xc3, 0xae, 0xde, 0x70, 0xb3, 0x20, 0xff, 0x37, 0xe2, 0x52, 0x47, 0x03, 0xa2, 0x58,
- 0x41, 0xe8, 0x54, 0x5d, 0x37, 0x6a, 0x3e, 0xeb, 0x44, 0x31, 0x27, 0x72, 0x5b, 0x6b, 0x32, 0xcb,
- 0x95, 0x15, 0x05, 0x55, 0xa9, 0xfc, 0xf9, 0x48, 0x72, 0x13, 0xde, 0x51, 0xef, 0x76, 0x4e, 0xa6,
- 0x57, 0x48, 0x92, 0xa6, 0x40, 0xe6, 0x74, 0x83, 0xc9, 0x15, 0x1b, 0x71, 0xf3, 0x1e, 0xde, 0x35,
- 0xd2, 0xaf, 0xe8, 0x70, 0xb8, 0xc8, 0x20, 0x1d, 0xc7, 0x1f, 0x97, 0x11, 0xd7, 0xa6, 0xad, 0x43,
- 0x10, 0xf2, 0x7f, 0x83, 0x51, 0xd2, 0xad, 0xd6, 0x7c, 0x19, 0x52, 0x31, 0xcb, 0xce, 0x3d, 0xd0,
- 0x1b, 0xa2, 0x1c, 0x1f, 0x8b, 0x94, 0x88, 0xe2, 0xdb, 0x0b, 0x4c, 0xd1, 0x9f, 0x15, 0x4b, 0xaf,
- 0xd9, 0xff, 0x8b, 0xec, 0x62, 0x8e, 0x05, 0x29, 0x60, 0x0d, 0x89, 0xf1, 0x83, 0x7d, 0xdb, 0x3c,
- 0x5c, 0x18, 0xf1, 0x3a, 0x9a, 0xa0, 0x51, 0xb7, 0x6e, 0x07, 0x05, 0x91, 0xa7, 0xc5, 0xa8, 0x4a,
- 0x9e, 0x45, 0x66, 0xc9, 0x73, 0xba, 0xdc, 0x7c, 0xd5, 0x01, 0xc0, 0xb1, 0xbb, 0xad, 0x38, 0xd9,
- 0xcd, 0xd0, 0x9b, 0x3f, 0xb6, 0x89, 0x12, 0x2b, 0x03, 0x83, 0x2e, 0x5d, 0x0a, 0x61, 0x78, 0xd8,
- 0x0f, 0x8d, 0x0c, 0xcc, 0x5f, 0x93, 0x9f, 0xe0, 0xb8, 0x85, 0xeb, 0x7d, 0x16, 0x09, 0xe8, 0x4b,
- 0x8a, 0x6a, 0x76, 0x1a, 0xa7, 0xbd, 0xcb, 0x7e, 0xb6, 0x8f, 0x67, 0x1d, 0x32, 0xb1, 0x9b, 0x3d,
- 0x48, 0x37, 0xe1, 0xe9, 0x4e, 0xa7, 0x46, 0xb5, 0x0d, 0x89, 0xa2, 0x3d, 0x2e, 0xd9, 0x0b, 0xae,
- 0x43, 0x67, 0x82, 0x75, 0x94, 0xe1, 0x63, 0x81, 0xaa, 0x9b, 0xbc, 0xdd, 0x7a, 0x02, 0x7d, 0xd1,
- 0x81, 0x3a, 0x15, 0x86, 0x7d, 0xfb, 0xee, 0x4a, 0x11, 0x9d, 0x79, 0xfd, 0x66, 0x6a, 0xed, 0x42,
- 0x04, 0xdd, 0x6f, 0x50, 0x85, 0xd5, 0xba, 0xd4, 0x1f, 0x97, 0xf5, 0x9d, 0x42, 0xd2, 0x9e, 0x34,
- 0xc6, 0x80, 0xf8, 0xa3, 0x6c, 0xcf, 0x37, 0x1f, 0xa4, 0x91, 0x30, 0xbd, 0x5e, 0xba, 0x0e, 0xa7,
- 0x12, 0x7d, 0xa9, 0xab, 0xf2, 0x59, 0xf0, 0xbc, 0x92, 0xb3, 0xc9, 0x9e, 0xea, 0xa7, 0x72, 0xca,
- 0xd0, 0x20, 0x3e, 0x58, 0x1b, 0x43, 0x7d, 0x77, 0x29, 0xb5, 0x0c, 0xbe, 0xf6, 0xcf, 0xe2, 0x59,
- 0x55, 0xc7, 0x44, 0x8e, 0xe3, 0x6d, 0x29, 0xe9, 0x27, 0xbf, 0x80, 0xde, 0xd2, 0x77, 0x91, 0x2f,
- 0x97, 0x9a, 0xd3, 0x7d, 0x0a, 0x77, 0xa4, 0x22, 0x9c, 0xb9, 0x45, 0xfe, 0xce, 0x1f, 0x01, 0xbc,
- 0x9c, 0xca, 0xb0, 0xe1, 0xd0, 0x31, 0x81, 0x16, 0x3b, 0xab, 0x5b, 0x1e, 0x9a, 0xc4, 0x77, 0xc3,
- 0x5e, 0x97, 0x27, 0x12, 0x39, 0x2b, 0x0c, 0xdd, 0x80, 0xad, 0x9e, 0x3e, 0x86, 0xac, 0xe7, 0x50,
- 0xdb, 0x70, 0x5d, 0xc4, 0xc1, 0x05, 0x58, 0x43, 0x8e, 0xa7, 0x12, 0x5e, 0xa2, 0x14, 0x94, 0x26,
- 0x19, 0x2d, 0xca, 0x37, 0x28, 0x1f, 0xd5, 0x88, 0x35, 0xa1, 0xd7, 0x7e, 0xbe, 0x7c, 0x04, 0xb5,
- 0xb0, 0x49, 0xff, 0xd4, 0x3e, 0xea, 0x15, 0xc6, 0xe2, 0xe3, 0x23, 0x18, 0x09, 0x2e, 0x6c, 0xfc,
- 0x72, 0x14, 0x68, 0x27, 0xd7, 0xf0, 0x98, 0x0d, 0x59, 0xe5, 0xe6, 0x38, 0x15, 0x46, 0xfc, 0x6f,
- 0xf7, 0xf3, 0x12, 0xf1, 0x2f, 0xde, 0xcc, 0x93, 0x57, 0xef, 0x6a, 0x58, 0x31, 0xfe, 0x8f, 0x19,
- 0x35, 0xae, 0x85, 0x02, 0xc6, 0xc4, 0x41, 0x58, 0xec, 0xe9, 0xaf, 0x78, 0x2d, 0x96, 0x1f, 0x8a,
- 0x3e, 0xfe, 0xe6, 0x9e, 0x1c, 0x82, 0x64, 0x6c, 0x4b, 0xfb, 0xb1, 0x98, 0x79, 0x4d, 0x69, 0xf5,
- 0xfc, 0xa3, 0x71, 0x6d, 0xf5, 0x98, 0xe9, 0xa7, 0xf0, 0xfd, 0x74, 0xb8, 0x65, 0x25, 0xf9, 0x66,
- 0x79, 0x44, 0x0b, 0xbb, 0x0d, 0xb6, 0xbd, 0x39, 0xfe, 0xf7, 0xf8, 0xd8, 0x41, 0x9d, 0x8a, 0x10,
- 0xbb, 0x19, 0x9c, 0x48, 0xe4, 0xac, 0x30, 0xf2, 0x45, 0xf1, 0x3d, 0xf8, 0x5d, 0xf5, 0x1a, 0x83,
- 0x6f, 0xe4, 0xcd, 0x40, 0x7a, 0x3a, 0xf7, 0x51, 0x73, 0xd3, 0xc4, 0xdb, 0xe9, 0xe8, 0x66, 0xee,
- 0xad, 0xb9, 0x5a, 0xb3, 0x93, 0x20, 0x7a, 0x9a, 0xc8, 0xd5, 0x01, 0xfb, 0xf5, 0x80, 0xf6, 0x7d,
- 0x28, 0x5e, 0x20, 0x65, 0x6b, 0x0e, 0x2e, 0x04, 0xc6, 0xdf, 0x8d, 0x9b, 0xd1, 0x38, 0x85, 0x0b,
- 0xea, 0x03, 0xb7, 0x96, 0x82, 0x14, 0xa3, 0xcf, 0x7d, 0xd9, 0x48, 0xbb, 0xcd, 0x50, 0x15, 0x98,
- 0xe1, 0x53, 0xd4, 0x0a, 0x58, 0x52, 0x86, 0xfb, 0xda, 0xcb, 0x56, 0x5b, 0x99, 0x8b, 0x63, 0xe7,
- 0x23, 0x0e, 0x43, 0xf9, 0xb1, 0x48, 0x0b, 0x30, 0x61, 0xcd, 0x93, 0x7b, 0x85, 0xe3, 0xf3, 0x74,
- 0xa6, 0xe9, 0x39, 0x2f, 0x49, 0x66, 0x5f, 0xae, 0x6f, 0xc7, 0x1f, 0x1b, 0xa1, 0x5b, 0x80, 0x02,
- 0x64, 0xb4, 0xae, 0xdc, 0xa0, 0x7c, 0xd2, 0x65, 0xd4, 0xc1, 0xda, 0x3b, 0xbd, 0x33, 0x10, 0x91,
- 0x6e, 0x42, 0xa6, 0x54, 0xca, 0x9e, 0x38, 0x64, 0x04, 0x86, 0x68, 0x6d, 0x18, 0x3d, 0xa0, 0xe3,
- 0xac, 0x1f, 0x31, 0xa7, 0x23, 0x84, 0xb5, 0xaf, 0xbf, 0x80, 0xad, 0x4d, 0x04, 0x55, 0x30, 0x70,
- 0x29, 0xf8, 0x4b, 0x71, 0xdb, 0xaa, 0xe1, 0x31, 0xb1, 0x8a, 0x21, 0x2d, 0x20, 0xed, 0x43, 0x06,
- 0xeb, 0xa5, 0xdc, 0x82, 0x32, 0xb0, 0x6c, 0xfa, 0x0a, 0x8c, 0xe4, 0x0d, 0x3c, 0x85, 0xd3, 0x95,
- 0xe0, 0xf5, 0xbf, 0x1e, 0xe8, 0xf6, 0x49, 0xce, 0xad, 0x9e, 0xfa, 0xed, 0x68, 0x5e, 0xa5, 0xea,
- 0x22, 0xa8, 0x28, 0xed, 0x01, 0xec, 0xc4, 0x05, 0x16, 0x98, 0x3f, 0xcd, 0x74, 0x36, 0x35, 0x79,
- 0xa7, 0x4f, 0x52, 0x3b, 0xf9, 0xc2, 0x90, 0x9b, 0x18, 0x92, 0xb3, 0xad, 0x50, 0x8e, 0x46, 0x0f,
- 0x65, 0x12, 0xc5, 0xc8, 0x10, 0xd8, 0x1d, 0x50, 0xa3, 0x94, 0x76, 0x8d, 0x4c, 0xe6, 0xd6, 0x9c,
- 0xb1, 0xef, 0x94, 0xc0, 0x8e, 0x4e, 0xda, 0xf3, 0x95, 0xb6, 0x8f, 0xae, 0xf8, 0xfb, 0xaa, 0xf1,
- 0x73, 0xb2, 0x03, 0x33, 0x67, 0x54, 0x57, 0x38, 0x2e, 0xb0, 0x4a, 0x8e, 0xe4, 0x93, 0x3a, 0x62,
- 0xf6, 0x55, 0x79, 0xe5, 0x9f, 0x7a, 0x03, 0xa6, 0x20, 0xba, 0xc6, 0xee, 0xc0, 0x2b, 0x49, 0x14,
- 0x34, 0x08, 0xee, 0x16, 0x76, 0x60, 0x8e, 0x6d, 0x9b, 0xbc, 0x03, 0xce, 0xdc, 0x43, 0xd9, 0x87,
- 0x3f, 0x58, 0x8d, 0x8a, 0xac, 0x26, 0xab, 0x59, 0x3c, 0xae, 0x1d, 0x2e, 0x88, 0x98, 0xaf, 0xf8,
- 0xfd, 0x05, 0x1a, 0x79, 0x45, 0x3c, 0x26, 0x92, 0x87, 0xa8, 0xd8, 0x0e, 0x94, 0xf0, 0x3f, 0x6b,
- 0x78, 0xe2, 0x60, 0xaf, 0xbd, 0x12, 0x72, 0x0c, 0x89, 0xa2, 0x54, 0x6e, 0xb0, 0x48, 0x4c, 0x1d,
- 0xba, 0xbf, 0xf7, 0x5c, 0x54, 0x08, 0xff, 0xc7, 0x32, 0xa4, 0x91, 0x4e, 0xac, 0x20, 0xdc, 0x8e,
- 0x13, 0xdb, 0xc2, 0xbf, 0x42, 0xfd, 0x3f, 0x89, 0xe5, 0xe6, 0x65, 0x28, 0x1b, 0x72, 0xb4, 0xc7,
- 0xd1, 0x86, 0x55, 0x4c, 0xab, 0xe7, 0xb2, 0x42, 0x5e, 0xe0, 0xa0, 0x08, 0x07, 0x1a, 0x24, 0x54,
- 0x54, 0x61, 0x2f, 0x9a, 0x53, 0xc9, 0xe6, 0xdc, 0x50, 0xea, 0x2c, 0x68, 0x23, 0xa2, 0x57, 0x22,
- 0x96, 0x3c, 0xb8, 0x69, 0xba, 0xd3, 0x6b, 0x17, 0xeb, 0xec, 0xe9, 0x48, 0x3f, 0xca, 0xc7, 0xb1,
- 0x9d, 0x6c, 0xdb, 0xf5, 0x60, 0x95, 0x4e, 0x23, 0x4c, 0xfe, 0xf7, 0xa8, 0x6b, 0x11, 0xb1, 0xce,
- 0x5f, 0x31, 0x4c, 0x06, 0x89, 0x8f, 0xc3, 0xe8, 0xf7, 0xf8, 0x32, 0x88, 0x77, 0x79, 0x21, 0x5d,
- 0xda, 0xd6, 0x36, 0xd0, 0x71, 0xa1, 0x97, 0x76, 0xf9, 0xf2, 0xbe, 0xe8, 0x53, 0xc1, 0x52, 0x2b,
- 0x18, 0x8b, 0xa1, 0x23, 0x98, 0xbb, 0x1a, 0xbd, 0x42, 0xf4, 0x7b, 0xc8, 0x4f, 0xa9, 0xc2, 0xb8,
- 0xcc, 0x76, 0xf0, 0x2b, 0x06, 0x2d, 0xdd, 0x1e, 0x74, 0xd6, 0x82, 0xeb, 0xfb, 0xb4, 0xbe, 0xd5,
- 0x0e, 0x2b, 0x67, 0xd8, 0xef, 0x37, 0x50, 0xd5, 0xcf, 0xd0, 0x47, 0xcb, 0xe7, 0xdc, 0x2e, 0x46,
- 0x8b, 0xcc, 0x1d, 0x0e, 0x17, 0x19, 0x04, 0x4b, 0xc1, 0xda, 0xcb, 0xab, 0xc3, 0x64, 0x5d, 0x30,
- 0x49, 0x91, 0x8a, 0xfd, 0xfe, 0x03, 0x89, 0x80, 0x7a, 0xdc, 0x0e, 0x8b, 0xdf, 0x0c, 0xcd, 0xa3,
- 0x42, 0xc1, 0xe9, 0x61, 0x24, 0x45, 0xac, 0xb4, 0xdd, 0xce, 0x10, 0x6b, 0x8b, 0xd7, 0xbb, 0xdc,
- 0x80, 0x9c, 0x7e, 0x92, 0xcd, 0x5f, 0x21, 0x7f, 0x66, 0xc8, 0xd5, 0x4b, 0x97, 0xbf, 0x2b, 0x4f,
- 0x05, 0x7b, 0x04, 0x44, 0x35, 0x71, 0x75, 0xe1, 0x68, 0xc2, 0x59, 0x2b, 0xb3, 0x07, 0x58, 0x39,
- 0xc7, 0x26, 0x93, 0xb7, 0xdc, 0x6b, 0xf8, 0x2a, 0xd3, 0xc4, 0x9c, 0x0b, 0xaf, 0x6f, 0xc8, 0xaa,
- 0x94, 0xb3, 0x6e, 0x41, 0x19, 0x58, 0x36, 0x7d, 0x05, 0x46, 0x72, 0xe7, 0x1e, 0xa3, 0x88, 0xab,
- 0x56, 0xee, 0xf9, 0xb2, 0xf0, 0x42, 0xbb, 0xb6, 0xbe, 0x40, 0xb7, 0xc7, 0x02, 0xcb, 0x18, 0x38,
- 0xd3, 0x09, 0x83, 0x64, 0x08, 0x6c, 0xef, 0x28, 0xb0, 0x4a, 0x3b, 0xa7, 0x26, 0x73, 0x6b, 0x4e,
- 0x11, 0x54, 0x14, 0x97, 0xe1, 0x76, 0x62, 0xe3, 0x0b, 0x4c, 0xfe, 0x87, 0x3a, 0x1b, 0xfb, 0xdd,
- 0x1a, 0x04, 0x77, 0x0b, 0x3b, 0x30, 0x47, 0xd7, 0xac, 0x5e, 0xe0, 0x67, 0x6e, 0xc0, 0x8d, 0xa2,
- 0xd8, 0x59, 0xe0, 0xf8, 0xd2, 0x2a, 0xca, 0x1c, 0x17, 0x58, 0x25, 0x47, 0x72, 0xa8, 0x1d, 0x31,
- 0x5d, 0xbe, 0x9a, 0x2e, 0x2a, 0x04, 0x9e, 0x82, 0x19, 0x52, 0xa9, 0x27, 0x56, 0x10, 0x6e, 0x47,
- 0x9f, 0xe3, 0x0d, 0xdd, 0xc3, 0x1e, 0x13, 0x49, 0xa2, 0x54, 0x6c, 0x07, 0x4a, 0x78, 0xfe, 0xd4,
- 0x4b, 0x1e, 0x5c, 0xd5, 0x5d, 0x88, 0xd4, 0xea, 0x94, 0x76, 0x95, 0x24, 0xfe, 0x65, 0x82, 0xb9,
- 0x89, 0x43, 0xcb, 0x26, 0xb4, 0x92, 0x59, 0x21, 0x2f, 0x70, 0x50, 0x04, 0xe2, 0x0d, 0x12, 0x2a,
- 0x0c, 0xa4, 0xb1, 0xf0, 0x4c, 0xbc, 0x0d, 0xbf, 0x21, 0x7a, 0xdc, 0x64, 0xc6, 0xb5, 0x61, 0x5c,
- 0xce, 0xf9, 0x26, 0x03, 0xa5, 0xa6, 0x80, 0x74, 0x9a, 0x7c, 0x19, 0x44, 0xda, 0xdd, 0xf1, 0xcf,
- 0xc5, 0xa9, 0x45, 0x9f, 0x7f, 0xe0, 0xa5, 0x40, 0x3d, 0x6e, 0x07, 0xa4, 0x8e, 0x06, 0x87, 0xb0,
- 0x07, 0xf4, 0xd2, 0x6c, 0x96, 0xfa, 0x28, 0x8b, 0x86, 0x68, 0xc2, 0x84, 0x92, 0x6e, 0x17, 0x23,
- 0x82, 0x13, 0xa8, 0xba, 0x6e, 0xd4, 0x7c, 0x15, 0x88, 0x62, 0x4e, 0xe4, 0xb6, 0xd6, 0x64, 0x55,
- 0x40, 0x4e, 0x3f, 0x49, 0x87, 0xce, 0xf1, 0xde, 0x33, 0x64, 0x8b, 0xc4, 0xaa, 0xbe, 0xf4, 0xc6,
- 0xe9, 0x2a, 0x0a, 0xaa, 0x91, 0x3b, 0x31, 0x90, 0xe4, 0x26, 0x7f, 0xa2, 0x1d, 0xec, 0x9c, 0x8f,
- 0x2b, 0x77, 0x9d, 0x59, 0x78, 0x21, 0xbc, 0x5b, 0x5f, 0x20, 0xba, 0x82, 0x01, 0x84, 0x0c, 0x1c,
- 0xae, 0x90, 0xe7, 0x8f, 0x80, 0x0f, 0xe8, 0xc5, 0x51, 0x2a, 0x36, 0xe2, 0x25, 0x3c, 0x7f, 0x6a,
- 0x6c, 0xcd, 0x70, 0x7c, 0x69, 0x15, 0x65, 0x0e, 0xea, 0x2c, 0xf3, 0xc2, 0x39, 0x54, 0xef, 0xf9,
- 0x67, 0x9d, 0x13, 0xe0, 0xb3, 0x53, 0x40, 0x3a, 0x4d, 0x3e, 0xed, 0x22, 0x6d, 0x8f, 0x99, 0x86,
- 0xa5, 0xc0, 0x84, 0x13, 0x5a, 0x49, 0xcd, 0xf1, 0xf6, 0x38, 0x28, 0x02, 0x71, 0xe7, 0x09, 0x15,
- 0x20, 0x27, 0xfe, 0xc5, 0xa2, 0x67, 0x99, 0x6f, 0xf8, 0x32, 0xa4, 0x62, 0x55, 0x5f, 0x7a, 0x63,
- 0xe2, 0x7a, 0x69, 0x36, 0x4b, 0x7d, 0x14, 0xa4, 0x43, 0x34, 0x61, 0x42, 0x49, 0x37, 0xea, 0xf0,
- 0x36, 0x87, 0x38, 0x3e, 0xd5, 0xeb, 0xd3, 0x07, 0x75, 0x16, 0x98, 0x61, 0xfd, 0x2a, 0x96, 0x9d,
- 0xf4, 0xda, 0xaf, 0xcd, 0x3c, 0xf1, 0x5e, 0xcc, 0xce, 0x10, 0x5d, 0x41, 0xe1, 0x42, 0x06, 0x0e,
- 0x71, 0x3d, 0xd5, 0x1b, 0xc4, 0xdf, 0x0a, 0x52, 0xc0, 0x1a, 0xd1, 0x21, 0xc5, 0xfa, 0x75, 0x78,
- 0xb3, 0x60, 0x42, 0xe8, 0x2d, 0xc5, 0x87, 0x99, 0x7b, 0x1c, 0x14, 0x01, 0xd9, 0x92, 0xe5, 0xeb,
- 0xb8, 0x30, 0x21, 0x74, 0xf7, 0x83, 0xa2, 0xad, 0xdc, 0x0e, 0x0a, 0xe1, 0x8d, 0x49, 0x93, 0x94,
- 0x7a, 0x6d, 0xb6, 0x87, 0x1e, 0x99, 0x2f, 0x66, 0x67, 0x08, 0xcf, 0xc1, 0x91, 0x21, 0x03, 0x07,
- 0xff, 0x8a, 0xcc, 0x51, 0xe6, 0xb7, 0x7b, 0xf8, 0x69, 0x02, 0x43, 0xa1, 0xb5, 0x99, 0x70, 0x71,
- 0x3d, 0xd7, 0x5b, 0xa2, 0x0f, 0xad, 0xf6, 0x33, 0xd2, 0x04, 0x86, 0x81, 0xa9, 0xf1, 0xe0, 0xe2,
- 0x59, 0x63, 0xf5, 0x7e, 0xaf, 0xd1, 0x24, 0x56, 0x06, 0xc5, 0x5c, 0xba, 0x14, 0xc2, 0xf0, 0x73,
- 0x9b, 0x3e, 0x62, 0x8d, 0x46, 0xcb, 0xa9, 0x9d, 0xbd, 0xc3, 0x99, 0x9a, 0x08, 0xaa, 0x60, 0xe0,
- 0x1e, 0xd9, 0x18, 0x5b, 0xbe, 0xe5, 0xfd, 0x03, 0xb3, 0xc9, 0x15, 0xfa, 0x2c, 0x12, 0x13, 0x96,
- 0xdc, 0x84, 0x8f, 0xa8, 0x57, 0xff, 0x70, 0xc8, 0x08, 0xcf, 0xd0, 0xda, 0x30, 0x7a, 0x83, 0x05,
- 0xd7, 0xd4, 0xec, 0x34, 0x8d, 0xb9, 0x55, 0xfc, 0xaf, 0xdd, 0xce, 0x3a, 0x64, 0xa1, 0xf5, 0x7a,
- 0x15, 0x89, 0x7b, 0xc7, 0x64, 0xa3, 0xd8, 0x37, 0x14, 0xdb, 0x0b, 0x1a, 0x78, 0xc9, 0x65, 0xe9,
- 0x90, 0x6e, 0x01, 0x11, 0x9c, 0x8d, 0x8c, 0xa9, 0x1a, 0xd1, 0x87, 0x7a, 0x5c, 0x71, 0x16, 0x9f,
- 0x52, 0x33, 0x96, 0xe2, 0x75, 0x97, 0x01, 0x62, 0xa1, 0xd7, 0x42, 0x5a, 0x40, 0x19, 0x86, 0x0c,
- 0x86, 0xce, 0xc7, 0xea, 0xeb, 0x01, 0xc6, 0xc1, 0x97, 0xf5, 0xbb, 0x79, 0xf4, 0x04, 0xfa, 0x61,
- 0x44, 0x93, 0x50, 0x19, 0x02, 0x1b, 0x4b, 0x0a, 0x2c, 0xf3, 0x7e, 0x59, 0xe8, 0x6c, 0x6a, 0xf2,
- 0xc1, 0x74, 0x2a, 0xcf, 0xfa, 0x35, 0x1f, 0x94, 0x22, 0xf9, 0xf2, 0x39, 0xcc, 0xd4, 0x19, 0x84,
- 0x03, 0x29, 0xbd, 0x3c, 0x13, 0x2f, 0x92, 0x5f, 0x99, 0xff, 0x37, 0x19, 0xd0, 0xbc, 0x89, 0x17,
- 0x08, 0x79, 0xde, 0xa0, 0xc9, 0x69, 0xb7, 0x6b, 0x3e, 0xed, 0x29, 0xf9, 0x84, 0x67, 0xff, 0x68,
- 0xca, 0x24, 0x49, 0x53, 0x20, 0x73, 0x3a, 0xa0, 0x85, 0xeb, 0xec, 0xd9, 0x98, 0x0f, 0x6f, 0xfb,
- 0x4f, 0xc3, 0x33, 0x85, 0xd8, 0x5d, 0x6e, 0x3e, 0x8b, 0xe1, 0x60, 0xb9, 0xbc, 0xb7, 0x1c, 0x8d,
- 0x8d, 0x9e, 0xa4, 0x76, 0x31, 0x47, 0xe3, 0xf5, 0x30, 0xe7, 0xa5, 0x99, 0xa0, 0xdf, 0x8c, 0x1e,
- 0x24, 0xfa, 0x91, 0x95, 0x27, 0xb2, 0x23, 0xbb, 0xe7, 0xa5, 0x51, 0xff, 0x17, 0x8d, 0xe4, 0x57,
- 0xe6, 0xa7, 0x06, 0x66, 0xce, 0xa8, 0xae, 0x70, 0x5c, 0xa3, 0x94, 0xdf, 0x0b, 0xe5, 0x74, 0xc4,
- 0x63, 0x40, 0x7c, 0xb0, 0x36, 0x86, 0xfa, 0xee, 0x52, 0xa9, 0x18, 0xbf, 0x2f, 0x5d, 0x07, 0xb2,
- 0xa1, 0x1d, 0xeb, 0x43, 0xdf, 0x9c, 0x77, 0x25, 0xe9, 0xaf, 0xdd, 0x9f, 0x33, 0x35, 0x97, 0x21,
- 0xaa, 0x4d, 0x88, 0xdf, 0x05, 0xda, 0x52, 0x11, 0x4e, 0xbd, 0xc3, 0x7f, 0x67, 0xee, 0xe1, 0x5e,
- 0x68, 0x10, 0x1f, 0x2c, 0xec, 0xc0, 0xdf, 0xda, 0xf5, 0xbb, 0x06, 0x5f, 0x7b, 0x86, 0x71, 0xcd,
- 0xed, 0xf7, 0x65, 0xfa, 0x14, 0xee, 0x8b, 0x44, 0xfb, 0xb1, 0x8a, 0x3f, 0x5f, 0x3e, 0x02, 0xbb,
- 0x2f, 0xaa, 0xf2, 0x09, 0xfd, 0xf4, 0x06, 0x8f, 0x40, 0xb7, 0x4f, 0x1f, 0x43, 0x56, 0x92, 0x28,
- 0xfb, 0x57, 0xa3, 0x01, 0x63, 0x62, 0xc1, 0x2c, 0x76, 0x95, 0xb6, 0x3c, 0xf7, 0x4b, 0xee, 0x45,
- 0x39, 0x0a, 0x34, 0xf2, 0x8a, 0x78, 0x4c, 0xe7, 0xcd, 0x93, 0x73, 0x1c, 0xeb, 0x23, 0x7e, 0xd6,
- 0xbc, 0xed, 0x4e, 0x24, 0x72, 0x56, 0x18, 0x79, 0xc3, 0x99, 0xff, 0x7c, 0xcf, 0x9b, 0x0d, 0xa0,
- 0x7e, 0xb0, 0xd9, 0xd7, 0x9b, 0x4c, 0x95, 0xb2, 0x78, 0x9f, 0x3a, 0x5c, 0xd3, 0xf3, 0x9d, 0x33,
- 0x75, 0xe0, 0xba, 0x4b, 0x41, 0x0a, 0xb0, 0x86, 0xdf, 0x8d, 0x24, 0xbc, 0x87, 0x28, 0xeb, 0x4c,
- 0xb7, 0xbd, 0x2d, 0xb8, 0xa8, 0x10, 0x3d, 0x4d, 0x64, 0x8b, 0xe1, 0x9c, 0x9b, 0x40, 0x7b, 0xdf,
- 0x32, 0x5a, 0x57, 0x6e, 0x50, 0x3e, 0x69, 0xd3, 0x6a, 0x81, 0x6d, 0xfc, 0xbf, 0xf8, 0x08, 0xa9,
- 0xf0, 0x07, 0xc0, 0x9d, 0xb9, 0x24, 0xe4, 0x18, 0xd1, 0x87, 0xa8, 0xdc, 0xa3, 0x90, 0x98, 0x3a,
- 0xa3, 0x92, 0x3d, 0x6b, 0x7c, 0x17, 0x2a, 0x4f, 0x07, 0x05, 0x46, 0x30, 0x12, 0x5c, 0xd8, 0x3b,
- 0x61, 0xcf, 0xaa, 0x98, 0x95, 0x0d, 0xa7, 0x84, 0xbc, 0x03, 0x83, 0x10, 0x0e, 0x34, 0x48, 0xa8,
- 0xe4, 0x28, 0xd0, 0x4e, 0x6d, 0x23, 0xf3, 0x1a, 0xb2, 0x09, 0x0f, 0x70, 0x2a, 0x8c, 0x3b, 0xde,
- 0x26, 0x75, 0x47, 0xbd, 0x84, 0x39, 0x7e, 0xd1, 0x09, 0x0f, 0xca, 0x50, 0x36, 0xe4, 0xab, 0x4d,
- 0x2d, 0x25, 0x24, 0x21, 0x5e, 0x7f, 0x5b, 0xe5, 0xae, 0x1d, 0xd4, 0xb0, 0x62, 0x3f, 0xdd, 0x32,
- 0xef, 0x78, 0xb3, 0xd2, 0xb7, 0x65, 0xd6, 0x2e, 0x15, 0x1b, 0x11, 0x90, 0x7e, 0x57, 0x4d, 0xa1,
- 0x6a, 0x9f, 0xc9, 0x04, 0x4f, 0x4b, 0x82, 0xb0, 0x1b, 0x11, 0x9d, 0xf0, 0x5a, 0xef, 0x3e, 0xd7,
- 0xa8, 0xc2, 0x5e, 0xf7, 0xa6, 0x51, 0x0f, 0x7b, 0xa0, 0x17, 0x58, 0xd0, 0x46, 0x87, 0xae, 0x44,
- 0x7c, 0x3f, 0x0f, 0xff, 0x38, 0xc7, 0xc8, 0xd8, 0x96, 0x35, 0xa1, 0xf3, 0xf2, 0x9a, 0xd2, 0x29,
- 0xbe, 0x62, 0x98, 0x0c, 0xd1, 0xdd, 0x45, 0x13, 0x2d, 0x33, 0x64, 0xd3, 0xee, 0xf2, 0x42, 0xba,
- 0x3b, 0x85, 0xe2, 0xda, 0x29, 0xf3, 0x11, 0x8d, 0x23, 0x39, 0xe8, 0xb3, 0xca, 0x4a, 0x31, 0xcc,
- 0xf9, 0xd8, 0x75, 0x29, 0xc0, 0xe9, 0x9c, 0x46, 0x98, 0x3f, 0x2d, 0x93, 0xd6, 0x22, 0xa1, 0x5f,
- 0xf2, 0x88, 0x16, 0xb5, 0x1a, 0xaf, 0xb9, 0x72, 0x3f, 0x2d, 0x33, 0x73, 0x82, 0xf9, 0xd7, 0x20,
- 0x30, 0xd5, 0x81, 0x46, 0xf3, 0xb5, 0x34, 0xb9, 0x84, 0x2b, 0xf6, 0x53, 0x9e, 0x91, 0x47, 0xb3,
- 0xb5, 0x32, 0xfb, 0x90, 0x0b, 0x9b, 0x60, 0x27, 0x8a, 0x21, 0x7a, 0x33, 0xba, 0x29, 0x34, 0xc5,
- 0x77, 0x6f, 0x6c, 0x63, 0xe2, 0x81, 0xed, 0xec, 0x31, 0x27, 0xbf, 0x13, 0xa6, 0x41, 0xa4, 0x56,
- 0xde, 0x0b, 0x59, 0x80, 0xf4, 0x74, 0x2d, 0xa2, 0xe6, 0x65, 0x4b, 0x75, 0x11, 0x13, 0xcc, 0x1f,
- 0x1c, 0x56, 0xce, 0x73, 0x1d, 0x6e, 0xa0, 0x69, 0x5d, 0x63, 0x8e, 0x55, 0x0d, 0x7b, 0x5c, 0x8c,
- 0x99, 0xb1, 0xb4, 0xa5, 0xe5, 0x40, 0xf4, 0xf7, 0x53, 0x69, 0x02, 0x35, 0x29, 0xc3, 0x2f, 0xfa,
- 0x5b, 0xec, 0x23, 0x56, 0x0c, 0x5a, 0x79, 0x3c, 0xe8, 0x6f, 0xc7, 0x15, 0x35, 0xab, 0xbf, 0x69,
- 0x50, 0xbc, 0x40, 0xca, 0xd6, 0x1c, 0x5c, 0x08, 0x4f, 0x7d, 0xd9, 0xf5, 0x61, 0x70, 0xc9, 0x16,
- 0x92, 0xe1, 0xd7, 0x39, 0x3f, 0x06, 0xd1, 0xc3, 0xf4, 0x7b, 0x1c, 0xd5, 0x7d, 0x18, 0x59, 0x85,
- 0x17, 0x06, 0xad, 0xef, 0xc7, 0x28, 0x85, 0x5d, 0xfa, 0x71, 0x90, 0xb5, 0x59, 0xa0, 0x2a, 0xf3,
- 0xd5, 0x5b, 0x3a, 0x1c, 0x2e, 0x32, 0x08, 0x96, 0x41, 0x77, 0x55, 0x95, 0x45, 0xc8, 0xba, 0x60,
- 0x01, 0xa6, 0x6b, 0x14, 0xb0, 0xa4, 0xcf, 0x35, 0x77, 0x55, 0xac, 0xb6, 0xf1, 0xd5, 0xc6, 0x0d,
- 0xc3, 0xfb, 0xfc, 0xe7, 0x59, 0xbe, 0x42, 0xfe, 0xcc, 0x53, 0x69, 0x96, 0xed, 0xbd, 0x56, 0x9e,
- 0x46, 0x1c, 0x86, 0x31, 0xa1, 0x90, 0x16, 0x60, 0xc2, 0x59, 0xe5, 0xf6, 0xc9, 0x05, 0x25, 0xe8,
- 0x84, 0x41, 0x11, 0xc2, 0x48, 0x8a, 0x9b, 0xab, 0x79, 0x5f, 0x20, 0xd6, 0xd5, 0x6d, 0xb5, 0x7b,
- 0x8f, 0x11, 0x72, 0x5e, 0x92, 0xcc, 0xbe, 0x9f, 0xde, 0x4d, 0x3e, 0x36, 0x81, 0xb6, 0xc3, 0x04,
- 0x4d, 0x4c, 0xe5, 0xad, 0x7b, 0xd6, 0x33, 0x54, 0x65, 0x4b, 0xfb, 0x16, 0x9d, 0xde, 0x53, 0x97,
- 0xc8, 0xab, 0x9f, 0x7b, 0x83, 0xf8, 0x67, 0xca, 0x6b, 0x41, 0x77, 0x76, 0xb9, 0x66, 0x20, 0xe1,
- 0x0a, 0xf6, 0x08, 0x88, 0x6a, 0xe2, 0xea, 0x01, 0xd0, 0x47, 0xb2, 0x56, 0xa5, 0x0e, 0xb0, 0x72,
- },
- { /* 12 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x96, 0xca, 0xd9, 0x30, 0x68, 0x2f, 0x14, 0x1a, 0x17, 0x0c, 0xca, 0x0c, 0x70, 0xda, 0xbf,
- 0x20, 0xef, 0x57, 0x71, 0x60, 0xd0, 0x5e, 0x28, 0x34, 0x2e, 0x18, 0x57, 0x18, 0xe0, 0x77, 0xbd,
- 0x30, 0x79, 0x9d, 0xa8, 0x50, 0xb8, 0x71, 0x3c, 0x2e, 0x39, 0x14, 0x9d, 0x14, 0x90, 0xad, 0x02,
- 0x40, 0x1d, 0xae, 0xe2, 0xc0, 0x63, 0xbc, 0x50, 0x68, 0x5c, 0x30, 0xae, 0x30, 0x03, 0xee, 0xb9,
- 0x50, 0x8b, 0x64, 0x3b, 0xf0, 0x0b, 0x93, 0x44, 0x72, 0x4b, 0x3c, 0x64, 0x3c, 0x73, 0x34, 0x06,
- 0x60, 0xf2, 0xf9, 0x93, 0xa0, 0xb3, 0xe2, 0x78, 0x5c, 0x72, 0x28, 0xf9, 0x28, 0xe3, 0x99, 0x04,
- 0x70, 0x64, 0x33, 0x4a, 0x90, 0xdb, 0xcd, 0x6c, 0x46, 0x65, 0x24, 0x33, 0x24, 0x93, 0x43, 0xbb,
- 0x80, 0x3a, 0x9f, 0x07, 0x43, 0xc6, 0xbb, 0xa0, 0xd0, 0xb8, 0x60, 0x9f, 0x60, 0x06, 0x1f, 0xb1,
- 0x90, 0xac, 0x55, 0xde, 0x73, 0xae, 0x94, 0xb4, 0xca, 0xaf, 0x6c, 0x55, 0x6c, 0x76, 0xc5, 0x0e,
- 0xa0, 0xd5, 0xc8, 0x76, 0x23, 0x16, 0xe5, 0x88, 0xe4, 0x96, 0x78, 0xc8, 0x78, 0xe6, 0x68, 0x0c,
- 0xb0, 0x43, 0x02, 0xaf, 0x13, 0x7e, 0xca, 0x9c, 0xfe, 0x81, 0x74, 0x02, 0x74, 0x96, 0xb2, 0xb3,
- 0xc0, 0x27, 0x31, 0xe5, 0x83, 0xa5, 0x07, 0xf0, 0xb8, 0xe4, 0x50, 0x31, 0x50, 0x05, 0xf1, 0x08,
- 0xd0, 0xb1, 0xfb, 0x3c, 0xb3, 0xcd, 0x28, 0xe4, 0xa2, 0xf3, 0x5c, 0xfb, 0x5c, 0x75, 0x2b, 0xb7,
- 0xe0, 0xc8, 0x66, 0x94, 0xe3, 0x75, 0x59, 0xd8, 0x8c, 0xca, 0x48, 0x66, 0x48, 0xe5, 0x86, 0xb5,
- 0xf0, 0x5e, 0xac, 0x4d, 0xd3, 0x1d, 0x76, 0xcc, 0x96, 0xdd, 0x44, 0xac, 0x44, 0x95, 0x5c, 0x0a,
- 0xc3, 0x74, 0xfd, 0x0e, 0x86, 0x4f, 0xb5, 0x83, 0x63, 0xb3, 0xc0, 0xfd, 0xc0, 0x0c, 0x3e, 0xa1,
- 0xd3, 0xe2, 0x37, 0xd7, 0xb6, 0x27, 0x9a, 0x97, 0x79, 0xa4, 0xcc, 0x37, 0xcc, 0x7c, 0xe4, 0x1e,
- 0xe3, 0x9b, 0xaa, 0x7f, 0xe6, 0x9f, 0xeb, 0xab, 0x57, 0x9d, 0xd8, 0xaa, 0xd8, 0xec, 0x49, 0x1c,
- 0xf3, 0x0d, 0x60, 0xa6, 0xd6, 0xf7, 0xc4, 0xbf, 0x4d, 0x8a, 0xd4, 0x60, 0xd4, 0x9c, 0x93, 0xa3,
- 0x83, 0x69, 0x53, 0xec, 0x46, 0x2c, 0x09, 0xd3, 0x0b, 0xef, 0xf0, 0x53, 0xf0, 0x0f, 0xd0, 0x18,
- 0x93, 0xff, 0x99, 0x35, 0x76, 0x44, 0x26, 0xc7, 0x11, 0xf8, 0xfc, 0x99, 0xfc, 0x7f, 0x0a, 0xa7,
- 0xa3, 0x86, 0x04, 0x9d, 0x26, 0xfc, 0x57, 0xfb, 0x3f, 0xc1, 0xe8, 0x04, 0xe8, 0xef, 0xa7, 0xa5,
- 0xb3, 0x10, 0xce, 0x44, 0x16, 0x94, 0x78, 0xef, 0x25, 0xd6, 0xe4, 0xce, 0xe4, 0x9f, 0x7d, 0x1a,
- 0x43, 0x4e, 0x62, 0x09, 0xc5, 0x89, 0x0e, 0x23, 0xb3, 0x0b, 0xa0, 0x62, 0xa0, 0x0a, 0x21, 0x10,
- 0x53, 0xd8, 0xa8, 0xd0, 0xf5, 0xe1, 0x21, 0x37, 0xa9, 0x1c, 0xac, 0xa8, 0xac, 0x7a, 0xfb, 0xaf,
- 0x63, 0xa1, 0x35, 0x78, 0xa5, 0x59, 0x50, 0x0b, 0x87, 0x25, 0xb8, 0x35, 0xb8, 0xea, 0x56, 0xad,
- 0x73, 0x37, 0xff, 0xa1, 0x95, 0x31, 0x7f, 0x1f, 0x9d, 0x32, 0xb4, 0xff, 0xb4, 0x9a, 0x8c, 0x12,
- 0x03, 0x53, 0xcc, 0xeb, 0x05, 0xea, 0xb2, 0x73, 0xdb, 0x57, 0x90, 0xcc, 0x90, 0x09, 0xcf, 0xa9,
- 0x13, 0xc5, 0x06, 0x32, 0x35, 0x82, 0x9d, 0x67, 0xc1, 0x40, 0x9c, 0x06, 0x9c, 0x79, 0x15, 0x16,
- 0x23, 0xbc, 0x9b, 0x9a, 0x65, 0x3a, 0xec, 0x5b, 0xef, 0x79, 0x88, 0x9b, 0x88, 0xe9, 0xb8, 0x14,
- 0x33, 0x2a, 0x51, 0x43, 0x55, 0x52, 0xc3, 0x4f, 0xf5, 0x6e, 0x84, 0x51, 0x84, 0x99, 0x62, 0xab,
- 0x45, 0xe8, 0x39, 0x1c, 0xcf, 0x9e, 0xa9, 0xc5, 0xc6, 0xa5, 0x43, 0x39, 0x43, 0x18, 0x7c, 0x81,
- 0x55, 0x7e, 0xf3, 0xc5, 0xff, 0xf6, 0x86, 0xd1, 0xdc, 0xb2, 0x4f, 0xf3, 0x4f, 0x68, 0xa6, 0x3e,
- 0x65, 0x07, 0x6e, 0x6d, 0xaf, 0x4e, 0xf7, 0xed, 0xf2, 0x8b, 0x5b, 0x6e, 0x5b, 0xf8, 0x0b, 0x3c,
- 0x75, 0x91, 0xa4, 0xb4, 0x9f, 0x26, 0xd8, 0xf9, 0xe8, 0x9c, 0x57, 0xa4, 0x57, 0x88, 0xd1, 0x83,
- 0x05, 0xf5, 0x97, 0xfe, 0x0f, 0xfd, 0x15, 0x95, 0xae, 0xf9, 0x73, 0x97, 0x73, 0x1b, 0x92, 0x38,
- 0x15, 0x63, 0x5d, 0x27, 0x3f, 0x95, 0x3a, 0x81, 0xb4, 0xee, 0x7f, 0x5d, 0x7f, 0x6b, 0x48, 0x87,
- 0x25, 0x1a, 0xc0, 0x8f, 0x6f, 0x2d, 0x4b, 0xbd, 0x9a, 0xd7, 0x6b, 0xc0, 0x6b, 0xfb, 0xe5, 0x85,
- 0x35, 0x8c, 0x0a, 0x56, 0x5f, 0x45, 0x64, 0xa9, 0x80, 0xc0, 0x67, 0x0a, 0x67, 0x8b, 0x3f, 0x3a,
- 0xc5, 0xd2, 0xa6, 0x1b, 0x8c, 0x58, 0x12, 0x65, 0x16, 0x1d, 0x23, 0xa6, 0x23, 0x1e, 0x63, 0x30,
- 0xd5, 0x44, 0x6c, 0xc2, 0xbc, 0x30, 0x3d, 0x71, 0x0c, 0x0a, 0x2f, 0x6c, 0x2f, 0x6e, 0xb9, 0x8f,
- 0xe5, 0x3d, 0xf1, 0x6a, 0xec, 0x88, 0x4c, 0x4d, 0x22, 0x33, 0x3b, 0xf1, 0x3b, 0xfe, 0x14, 0x8d,
- 0xf5, 0xab, 0x3b, 0xb3, 0xdc, 0xe0, 0x63, 0x59, 0x38, 0x24, 0x37, 0x3b, 0x37, 0x8e, 0xce, 0x32,
- 0x85, 0xcf, 0x08, 0xf9, 0x4c, 0x3b, 0xae, 0x35, 0x7e, 0x41, 0x13, 0x08, 0x13, 0x1d, 0x8d, 0x89,
- 0x95, 0x59, 0xc2, 0x20, 0x7c, 0x53, 0x81, 0x21, 0x64, 0x56, 0x1f, 0xc2, 0x1f, 0x6d, 0x57, 0x36,
- 0xa5, 0x20, 0x5f, 0x88, 0x2c, 0xeb, 0xf0, 0x1d, 0x4a, 0x6f, 0x0b, 0x5f, 0x0b, 0xfd, 0xfa, 0x34,
- 0xb5, 0xb6, 0x95, 0x51, 0x1c, 0x83, 0xdf, 0x09, 0x50, 0x78, 0x07, 0x95, 0x07, 0x8d, 0x20, 0x8b,
- 0x86, 0x9c, 0xc4, 0x12, 0x49, 0xd1, 0x1c, 0x46, 0xa5, 0x16, 0x83, 0xc4, 0x83, 0x14, 0x42, 0x20,
- 0x96, 0x0a, 0x0e, 0xcb, 0x79, 0xb9, 0x33, 0x52, 0xbf, 0x01, 0x8f, 0x0e, 0x8f, 0x64, 0x98, 0x9f,
- 0xa6, 0x73, 0x93, 0x63, 0x29, 0x01, 0x42, 0x6e, 0x91, 0x38, 0x9b, 0x93, 0x9b, 0xf4, 0x35, 0x9d,
- 0xb6, 0xe5, 0x59, 0xba, 0x19, 0x69, 0x6d, 0x7a, 0x8b, 0x2f, 0x97, 0x59, 0x97, 0x84, 0xef, 0x22,
- 0xc6, 0x81, 0x6a, 0xf0, 0x89, 0xb2, 0xa0, 0x16, 0xcd, 0x4a, 0xb3, 0x6a, 0xb3, 0x17, 0xac, 0x99,
- 0xd6, 0x17, 0xa0, 0x29, 0xb9, 0xda, 0x8f, 0x02, 0xd7, 0x5d, 0xbf, 0xa0, 0xbf, 0x67, 0x76, 0x26,
- 0xe6, 0x6e, 0x3d, 0x81, 0xe9, 0x62, 0xfe, 0x3e, 0xf9, 0x64, 0xab, 0x3d, 0xab, 0xf7, 0xdb, 0x24,
- 0xf6, 0xf8, 0xf7, 0x58, 0xd9, 0x0a, 0xd1, 0x2a, 0xe3, 0x73, 0xa7, 0xf7, 0xa7, 0x87, 0x01, 0x9b,
- 0x06, 0xa6, 0x5b, 0x15, 0x0a, 0x17, 0xa7, 0xe6, 0x75, 0xae, 0xe3, 0x5b, 0xe3, 0x12, 0x5d, 0x91,
- 0x16, 0x30, 0x91, 0xcc, 0x3a, 0x7f, 0x88, 0xf2, 0x6f, 0xb9, 0xef, 0x91, 0xef, 0x62, 0x87, 0x2e,
- 0x26, 0x49, 0x0c, 0x64, 0x6a, 0xc7, 0xf9, 0xce, 0x41, 0x80, 0xfb, 0x0c, 0xfb, 0xf2, 0x2a, 0x2c,
- 0x36, 0xdf, 0xc6, 0xbd, 0x5a, 0xaf, 0xd6, 0xda, 0x5b, 0x97, 0xf7, 0xc6, 0xf7, 0x82, 0xf0, 0x93,
- 0x46, 0xbb, 0xf5, 0xf7, 0xca, 0x74, 0x1b, 0xb6, 0x1d, 0xf2, 0xd3, 0xf5, 0xd3, 0x11, 0xb3, 0x28,
- 0x56, 0x2d, 0x3f, 0x2e, 0xfa, 0x1c, 0x34, 0xa2, 0x07, 0xe5, 0xdf, 0x3f, 0xdf, 0x61, 0x69, 0x97,
- 0x66, 0x54, 0xa2, 0x86, 0xaa, 0xa4, 0x45, 0x9e, 0x29, 0xdc, 0xcb, 0xa2, 0xcb, 0xf1, 0xc4, 0x95,
- 0x76, 0xc2, 0x68, 0x5f, 0x9a, 0xcc, 0x6a, 0x8a, 0x33, 0xcb, 0xc7, 0x68, 0xc7, 0x81, 0x1e, 0x2a,
- 0x8a, 0x13, 0x72, 0x38, 0x5d, 0xff, 0x91, 0x49, 0x4f, 0x89, 0x86, 0x72, 0x86, 0x30, 0xf8, 0xc1,
- 0x9a, 0x85, 0xb8, 0xe1, 0x6d, 0x97, 0xbe, 0x5d, 0x55, 0x9e, 0x8a, 0xb8, 0x8a, 0x40, 0x22, 0x7e,
- 0xaa, 0xfc, 0x25, 0x49, 0x3d, 0x2f, 0xcf, 0x61, 0x7b, 0xa7, 0x9e, 0x25, 0x9e, 0xd0, 0x8f, 0x7c,
- 0xba, 0x6a, 0xef, 0x90, 0x0d, 0x47, 0xe0, 0x75, 0x61, 0xb0, 0x92, 0xef, 0x92, 0xa0, 0x55, 0xc3,
- 0xca, 0x0e, 0xdc, 0xda, 0x9d, 0x9c, 0x2d, 0x19, 0x27, 0xd5, 0xb6, 0xdc, 0xb6, 0x33, 0x16, 0x78,
- 0xda, 0x98, 0x16, 0x03, 0xad, 0xf4, 0x02, 0x0d, 0x3d, 0xc2, 0xba, 0x16, 0xba, 0x43, 0xcc, 0xc7,
- 0xea, 0xe1, 0x8b, 0xab, 0xfd, 0x4c, 0x73, 0x31, 0x13, 0xfb, 0xae, 0x8b, 0xae, 0xd3, 0x61, 0xc5,
- 0xfa, 0x77, 0x41, 0x72, 0xcd, 0x24, 0x5c, 0x25, 0x09, 0xec, 0xa2, 0x41, 0xa2, 0xa3, 0xbb, 0x7a,
- 0x0a, 0x29, 0xed, 0x3f, 0x1e, 0x39, 0x2a, 0xe9, 0x9f, 0x31, 0xe6, 0xed, 0xe6, 0x36, 0xe7, 0x70,
- 0x1a, 0xbf, 0x27, 0xe6, 0x2e, 0x51, 0x05, 0xfd, 0x85, 0x26, 0xea, 0x27, 0xea, 0x46, 0x3d, 0xcf,
- 0x2a, 0xc6, 0xba, 0x4e, 0x7e, 0xe9, 0x74, 0xc1, 0xab, 0x1f, 0xfe, 0xba, 0xfe, 0xd6, 0x90, 0xcd,
- 0x3a, 0x50, 0x70, 0x97, 0x4e, 0x81, 0x5b, 0xd5, 0xb1, 0x08, 0xf2, 0x70, 0xf2, 0xa6, 0x4a, 0x72,
- 0x4a, 0x34, 0x43, 0xdd, 0xde, 0x5a, 0x96, 0xb9, 0xf7, 0x6d, 0xd6, 0x43, 0xd6, 0x35, 0x09, 0xc9,
- 0x5a, 0xa2, 0x89, 0x04, 0xee, 0x32, 0xb9, 0xad, 0xed, 0x7a, 0xda, 0x89, 0xda, 0x45, 0xd3, 0x76,
- 0x6a, 0xdb, 0x14, 0xac, 0xbe, 0x8a, 0xc8, 0x91, 0xc3, 0x43, 0xce, 0x14, 0xce, 0xd5, 0x7e, 0x74,
- 0x7a, 0x4d, 0xde, 0x75, 0x8e, 0xe2, 0xe7, 0x85, 0xd9, 0x54, 0xc2, 0xde, 0xc2, 0xa5, 0xa4, 0xcb,
- 0x49, 0x67, 0x8f, 0x36, 0xdb, 0xb0, 0x24, 0xca, 0x2c, 0x3a, 0x46, 0x8f, 0x46, 0x3c, 0xc6, 0x60,
- 0x59, 0xf1, 0x45, 0xef, 0xeb, 0xd8, 0x0b, 0xde, 0x36, 0x2d, 0x4a, 0x45, 0x4a, 0x4c, 0x1c, 0xdf,
- 0x69, 0x88, 0xd8, 0x47, 0xbb, 0x60, 0x7a, 0xe2, 0x18, 0x14, 0x5e, 0xd8, 0x5e, 0xdc, 0xb1, 0xdd,
- 0x79, 0x1e, 0x12, 0x9e, 0x8b, 0x08, 0x55, 0xf6, 0x02, 0x03, 0x52, 0x12, 0x52, 0xac, 0x6b, 0x62,
- 0x09, 0x7a, 0x21, 0xd4, 0x1b, 0xd3, 0x98, 0x9a, 0x44, 0x66, 0x76, 0x21, 0x76, 0x3f, 0x28, 0xd9,
- 0x19, 0xec, 0xeb, 0x0d, 0x2b, 0xbb, 0xb7, 0x8e, 0x5e, 0x71, 0x7a, 0xeb, 0x7a, 0x4f, 0xf2, 0x66,
- 0x29, 0x95, 0x76, 0xa5, 0x7b, 0x03, 0xc6, 0xb2, 0x70, 0x48, 0x6e, 0x76, 0x6e, 0xdf, 0x5f, 0x64,
- 0x39, 0x03, 0xbc, 0x7c, 0x4b, 0x6b, 0xe9, 0xa6, 0x6a, 0x5f, 0x62, 0xbc, 0x62, 0xaf, 0x85, 0xdb,
- 0xc9, 0x5d, 0x10, 0x31, 0x98, 0x76, 0x9f, 0x6a, 0xfc, 0x82, 0x26, 0x10, 0x26, 0x3a, 0xd9, 0xd1,
- 0xd9, 0xcb, 0xda, 0xe8, 0xa8, 0x1e, 0xb0, 0x7e, 0xe6, 0x95, 0x2a, 0xda, 0x2a, 0x4a, 0x03, 0x6e,
- 0xe9, 0xb2, 0x47, 0x40, 0xf8, 0xa6, 0xc1, 0x42, 0xc8, 0xac, 0x3e, 0x47, 0x3e, 0xda, 0xae, 0x6c,
- 0xf9, 0x24, 0x8d, 0x99, 0xc8, 0xce, 0xee, 0x56, 0xd2, 0xbb, 0x32, 0x8d, 0x32, 0xaa, 0x74, 0xd3,
- 0x89, 0x40, 0xbe, 0xd3, 0x58, 0x15, 0x23, 0x3a, 0x94, 0xde, 0x16, 0xbe, 0x16, 0x39, 0x37, 0x68,
- 0x99, 0xd6, 0x74, 0x0a, 0x68, 0x7d, 0x0c, 0x2e, 0x8e, 0xc9, 0x1a, 0x74, 0x1a, 0x49, 0xed, 0xd7,
- 0xa9, 0xaf, 0xe9, 0xa2, 0x38, 0xc5, 0x7d, 0x12, 0xa0, 0xf0, 0x0e, 0xe9, 0x0e, 0xd9, 0x40, 0xd5,
- 0xb9, 0x39, 0x23, 0x7b, 0x08, 0xad, 0x52, 0x06, 0xba, 0xe7, 0x02, 0x23, 0x02, 0xa9, 0x9a, 0x6a,
- 0xcf, 0xfb, 0x4b, 0x24, 0x92, 0x61, 0x38, 0x8c, 0x89, 0x2c, 0xc5, 0x4b, 0xc5, 0x28, 0x84, 0x40,
- 0xdf, 0x6d, 0x81, 0xfd, 0xa2, 0x09, 0x17, 0x98, 0x93, 0x3b, 0xc9, 0x81, 0xc9, 0x58, 0x5e, 0xff,
- 0xef, 0x14, 0x1c, 0x55, 0xf2, 0xb1, 0x66, 0xa4, 0xbd, 0x02, 0xdd, 0x1c, 0xdd, 0xc8, 0xf3, 0xfd,
- 0xff, 0x82, 0xd6, 0x8c, 0xc2, 0xd9, 0x49, 0xb0, 0xa7, 0x15, 0xd1, 0xd6, 0xd1, 0xb8, 0x29, 0x42,
- 0x8f, 0xe6, 0xe5, 0xc6, 0x52, 0x02, 0x84, 0xdc, 0xe1, 0x70, 0xf5, 0xe5, 0xf5, 0x2b, 0x6a, 0xf9,
- 0x9f, 0x70, 0x2f, 0x1f, 0x62, 0x6a, 0xab, 0xc8, 0xfb, 0x67, 0xf9, 0x2f, 0xf9, 0x5b, 0xb0, 0x46,
- 0xaf, 0x09, 0xb2, 0xb7, 0x32, 0xd2, 0xda, 0xf4, 0xd5, 0x5e, 0xed, 0xb2, 0xed, 0xcb, 0x1d, 0x44,
- 0xbf, 0x9f, 0x78, 0x6e, 0x02, 0xba, 0xf5, 0xe0, 0xcf, 0x49, 0xe1, 0x78, 0xe1, 0xbb, 0xc7, 0xfb,
- 0x4f, 0xc1, 0xd4, 0x23, 0xd1, 0xa7, 0x83, 0x2c, 0x59, 0x94, 0xa5, 0xd4, 0xa5, 0x2e, 0x9b, 0xf1,
- 0x5f, 0x57, 0x1e, 0xfa, 0xe1, 0xcf, 0xac, 0x38, 0x43, 0x83, 0xa9, 0x1e, 0xa9, 0x5e, 0x41, 0x4e,
- 0x6f, 0x2e, 0x83, 0x52, 0xb1, 0x77, 0xdd, 0x04, 0x6d, 0xba, 0xbd, 0x83, 0xbd, 0xce, 0xec, 0x4c,
- 0x7f, 0xb8, 0x49, 0x8b, 0x81, 0x1f, 0xf2, 0x10, 0x77, 0xad, 0xb1, 0x49, 0xb1, 0xbe, 0x36, 0xf3,
- 0x0f, 0xdc, 0x7a, 0xc1, 0x11, 0xc4, 0x3f, 0x7c, 0x31, 0xc8, 0x95, 0x7a, 0x95, 0x2d, 0x75, 0x48,
- 0x1f, 0x4a, 0xb0, 0x18, 0x21, 0xac, 0x10, 0x68, 0x2b, 0xdf, 0x99, 0xb0, 0x99, 0x5d, 0xaf, 0xf7,
- 0x2f, 0x33, 0x2d, 0xb0, 0x71, 0x14, 0x61, 0x54, 0x05, 0xe6, 0x8d, 0x2d, 0x8d, 0xcd, 0x02, 0xf5,
- 0x3f, 0xa5, 0xe7, 0x69, 0x41, 0x7c, 0x4e, 0x40, 0x1f, 0xf1, 0x81, 0xe7, 0x81, 0xbd, 0xd8, 0x4a,
- 0x0c, 0x8f, 0xb6, 0x2a, 0x14, 0x2e, 0x8d, 0x0f, 0xea, 0x9f, 0x05, 0xb6, 0x05, 0x24, 0xba, 0xe1,
- 0x1c, 0x19, 0x7c, 0xf3, 0x24, 0x46, 0xa2, 0x1b, 0xf0, 0x88, 0x09, 0x7c, 0x09, 0x54, 0x60, 0x5e,
- 0x2c, 0x60, 0xe1, 0x5b, 0x74, 0xfe, 0xd3, 0x27, 0xde, 0xb1, 0x1d, 0xe1, 0x1d, 0xc4, 0xcd, 0x5c,
- 0x3c, 0xf6, 0x2b, 0x82, 0x44, 0x96, 0xfc, 0x33, 0xc4, 0xa6, 0x11, 0x2b, 0x11, 0xb4, 0x17, 0xe3,
- 0x4c, 0x92, 0x18, 0xc8, 0xd4, 0x4d, 0x31, 0x5f, 0x82, 0xc3, 0x35, 0x18, 0x35, 0x27, 0x54, 0x58,
- 0x5c, 0x04, 0xd2, 0x11, 0xe4, 0x25, 0x1e, 0x4b, 0x98, 0xd4, 0x39, 0xd2, 0x39, 0x57, 0x8e, 0xe7,
- 0x6c, 0x7d, 0x4f, 0xb9, 0xb4, 0x9d, 0x6f, 0x77, 0xb6, 0xed, 0x2d, 0x4f, 0x2d, 0xc7, 0x23, 0xe5,
- 0x7c, 0xeb, 0x85, 0x60, 0x84, 0xf5, 0x40, 0x63, 0xac, 0xfa, 0x21, 0x85, 0x21, 0xb7, 0xf9, 0x5a,
- 0x8c, 0xb5, 0x29, 0x2d, 0x57, 0xe8, 0x36, 0xaf, 0x3a, 0x27, 0x65, 0x29, 0x65, 0x22, 0xa5, 0x50,
- 0x9c, 0x23, 0xe3, 0xf4, 0x67, 0x80, 0x19, 0xbb, 0x20, 0x30, 0x69, 0xe3, 0x69, 0x52, 0x7f, 0xef,
- 0xac, 0x5a, 0x7e, 0x5c, 0x37, 0x38, 0x68, 0x87, 0x0e, 0x09, 0x7d, 0x7e, 0x7d, 0xc2, 0xd2, 0xed,
- 0xbc, 0xcc, 0xb4, 0x85, 0x07, 0x50, 0x47, 0x93, 0x14, 0x1e, 0x71, 0xb4, 0x71, 0xb2, 0x08, 0x52,
- 0xcc, 0xa8, 0x87, 0xcf, 0x97, 0x8b, 0x8a, 0xff, 0x52, 0x7b, 0x55, 0x87, 0x55, 0x21, 0x4b, 0xe9,
- 0xdc, 0x3e, 0x4d, 0x16, 0xa7, 0xe3, 0xa5, 0xeb, 0x48, 0x6c, 0x59, 0x4d, 0x59, 0x51, 0x91, 0x56,
- 0xec, 0x47, 0xd0, 0xbe, 0xf7, 0x5b, 0xd4, 0xd7, 0x66, 0x55, 0x4d, 0xd0, 0x4d, 0xc1, 0x3c, 0x54,
- 0xfc, 0xd1, 0x1a, 0x67, 0xc7, 0x33, 0xfb, 0xc3, 0x7c, 0x42, 0x41, 0x1a, 0x41, 0xb1, 0xe6, 0xeb,
- 0xd7, 0x26, 0xe4, 0x70, 0xba, 0x3d, 0xe1, 0x92, 0x9e, 0xd1, 0xcf, 0xe4, 0xcf, 0x60, 0x33, 0x41,
- 0xc7, 0xb0, 0x2e, 0xa9, 0x8a, 0x55, 0xce, 0x86, 0x84, 0xc6, 0xc3, 0x2e, 0xc3, 0x10, 0xe9, 0xfe,
- 0xf7, 0xc9, 0xb3, 0x01, 0xda, 0xed, 0xbf, 0xba, 0xaa, 0xff, 0xd7, 0xb3, 0xd7, 0x80, 0x44, 0xfc,
- 0xe7, 0x5f, 0x79, 0xd8, 0xea, 0x85, 0x90, 0xae, 0xb0, 0xe8, 0xdb, 0x79, 0xdb, 0xf0, 0x9e, 0x43,
- 0x97, 0x3b, 0x4a, 0x92, 0x7a, 0x5e, 0x5d, 0xc2, 0xf6, 0x8d, 0xff, 0x4a, 0xff, 0x63, 0xdd, 0xf8,
- 0x87, 0xad, 0x80, 0x4b, 0x4a, 0x36, 0x72, 0xd6, 0xec, 0x9a, 0xf3, 0x80, 0xf3, 0x13, 0x07, 0x47,
- 0xb7, 0xd4, 0x1d, 0xe3, 0x1a, 0x8e, 0x03, 0xea, 0xc2, 0xa3, 0xe7, 0x1d, 0xe7, 0x83, 0xaa, 0x45,
- 0xa7, 0x42, 0xd7, 0x3a, 0x2a, 0xe6, 0x2c, 0xfe, 0xd8, 0xb4, 0xeb, 0xd7, 0xeb, 0xf3, 0x70, 0xfa,
- 0x57, 0x1c, 0x7b, 0x77, 0xf9, 0xfb, 0x5a, 0x32, 0x4e, 0x69, 0xaf, 0x7b, 0xaf, 0x66, 0x2c, 0xf0,
- 0x47, 0x8a, 0xb1, 0xae, 0xc9, 0x93, 0x75, 0x26, 0x54, 0x7e, 0xa3, 0xb1, 0xa3, 0x16, 0xf6, 0x4f,
- 0x77, 0xf3, 0x2c, 0x06, 0x99, 0x2b, 0x04, 0x1a, 0x7a, 0x47, 0xb7, 0x2c, 0xb7, 0x86, 0x5b, 0x4d,
- 0x67, 0x65, 0xe6, 0xdf, 0xa9, 0x43, 0x2b, 0x0e, 0x60, 0x50, 0xbb, 0xe6, 0xbb, 0xf6, 0x81, 0xf2,
- 0x17, 0x01, 0xd5, 0x95, 0x39, 0x98, 0xe6, 0x62, 0x26, 0x35, 0x9f, 0xd5, 0x9f, 0x65, 0xc2, 0x49,
- 0x07, 0x97, 0x1f, 0x4c, 0x09, 0xf0, 0xc9, 0x76, 0x3c, 0x22, 0x93, 0x1f, 0x93, 0x15, 0x18, 0xf6,
- 0x37, 0xee, 0x82, 0xe4, 0x59, 0x48, 0xb8, 0x4a, 0x12, 0x1b, 0x87, 0x82, 0x87, 0x85, 0xb5, 0xf4,
- 0x27, 0x78, 0x48, 0x3d, 0x69, 0x20, 0x97, 0x5e, 0x08, 0x0c, 0x8b, 0x48, 0x8b, 0xf5, 0x6f, 0x4b,
- 0x14, 0x52, 0x19, 0x7e, 0x3c, 0x72, 0x54, 0x11, 0xfd, 0x62, 0x0f, 0x19, 0x0f, 0x6c, 0x0d, 0xe0,
- 0x04, 0xc4, 0xd3, 0xa7, 0x0c, 0x1a, 0x7b, 0x05, 0xe7, 0x75, 0x03, 0xd3, 0x03, 0x1c, 0xd7, 0x5f,
- 0x34, 0xbd, 0x4e, 0x0f, 0x5c, 0xa2, 0x0a, 0x39, 0xc9, 0x4c, 0x17, 0x4e, 0x17, 0x8c, 0x7a, 0x5d,
- 0x24, 0x2b, 0x84, 0xd6, 0x6c, 0xca, 0x25, 0x2d, 0xd3, 0x5b, 0x1b, 0x84, 0x1b, 0xfc, 0xa0, 0xe2,
- 0x54, 0x4f, 0xb7, 0x9c, 0xfc, 0x11, 0xe8, 0x41, 0x95, 0x3e, 0x3f, 0xb7, 0x3f, 0x6f, 0xe3, 0x59,
- 0x44, 0xd9, 0x7d, 0x45, 0xcc, 0x79, 0xc7, 0x55, 0x8f, 0x29, 0x33, 0x7d, 0x33, 0x1f, 0x39, 0xe6,
- 0x74, 0xa0, 0xe0, 0xed, 0x9c, 0xc1, 0xb6, 0x69, 0xa1, 0x10, 0x27, 0xe0, 0x27, 0x8f, 0x94, 0xe4,
- 0x64, 0x36, 0x2a, 0x34, 0xac, 0xa9, 0x99, 0x7d, 0xbb, 0x07, 0x2b, 0x2a, 0x2b, 0xff, 0x4e, 0x5b,
- 0x94, 0x68, 0x86, 0x79, 0x7f, 0xb4, 0xef, 0xb1, 0x2d, 0xda, 0x6f, 0x86, 0x6f, 0x6a, 0x12, 0x51,
- 0x84, 0xfe, 0x4c, 0xa0, 0x4f, 0xdc, 0xc0, 0xa5, 0x37, 0xcd, 0x63, 0x4c, 0x63, 0x1a, 0xc8, 0xee,
- 0xb4, 0x87, 0xd1, 0x08, 0x1f, 0x64, 0xb1, 0x99, 0x19, 0xf4, 0x77, 0xd1, 0x77, 0x8a, 0x65, 0xec,
- 0xa4, 0x11, 0x1b, 0xd1, 0x2f, 0x0c, 0x9e, 0x8d, 0x03, 0xe3, 0x7b, 0x1b, 0x7b, 0xfa, 0xbf, 0x53,
- 0xd4, 0x75, 0x28, 0x9b, 0xbf, 0xd7, 0x53, 0xe1, 0x45, 0x86, 0x5f, 0x28, 0x5f, 0x69, 0xfc, 0xe8,
- 0xc4, 0xe3, 0xe2, 0x42, 0x8f, 0xbf, 0x7c, 0xf5, 0x5f, 0x91, 0x53, 0xe2, 0x53, 0x19, 0x26, 0x57,
- 0xf4, 0x9a, 0x7f, 0xea, 0xdf, 0x07, 0x0d, 0xc9, 0x71, 0xa8, 0x47, 0x7f, 0x47, 0x89, 0x8b, 0x55,
- 0xe4, 0x0c, 0xb5, 0x33, 0xef, 0x6f, 0x22, 0xdd, 0x6b, 0xbf, 0x4b, 0xb5, 0x4b, 0xf9, 0x51, 0xea,
- 0x92, 0xce, 0xdd, 0x6c, 0x75, 0xa3, 0x48, 0x57, 0x58, 0x74, 0x8c, 0xdd, 0x8c, 0x78, 0x4f, 0xc0,
- 0x82, 0x58, 0x17, 0xb5, 0x45, 0xcb, 0x67, 0x43, 0x42, 0x63, 0x80, 0x17, 0x80, 0x08, 0x95, 0x7f,
- 0xb2, 0x21, 0x8a, 0x1d, 0x15, 0x73, 0x16, 0x7f, 0x6c, 0x5a, 0x94, 0x8a, 0x94, 0x98, 0x38, 0x7d,
- 0xa2, 0xb7, 0x40, 0xc4, 0x25, 0x1b, 0x39, 0x6b, 0x76, 0x4d, 0x98, 0x40, 0x98, 0xe8, 0xe2, 0xc2,
- 0xd2, 0xd3, 0x73, 0x8e, 0xb5, 0xc0, 0xf4, 0x07, 0x30, 0x28, 0xbc, 0x73, 0xbc, 0x7b, 0xa1, 0x79,
- 0xc2, 0x45, 0xb9, 0x57, 0x85, 0xa8, 0xdb, 0x13, 0x2a, 0x3f, 0xb0, 0xb9, 0xb0, 0x0b, 0x7b, 0xc6,
- 0xf2, 0x3c, 0x24, 0xff, 0xd5, 0x10, 0xaa, 0x2f, 0x04, 0x06, 0xa4, 0x24, 0xa4, 0x9b, 0xd6, 0xc4,
- 0xe2, 0xaa, 0xee, 0x26, 0xe5, 0x78, 0x85, 0x3b, 0x1e, 0x11, 0xa8, 0xee, 0xa8, 0xeb, 0x0c, 0x7b,
- 0x12, 0xf4, 0x42, 0x6b, 0x36, 0x65, 0xf3, 0xf7, 0x88, 0xcc, 0xec, 0x42, 0xec, 0x7e, 0x50, 0x71,
- 0x02, 0x62, 0x88, 0xb2, 0x06, 0x0d, 0xdc, 0xe3, 0x92, 0xdb, 0xe0, 0x88, 0xe0, 0x0e, 0x8a, 0xce,
- 0x32, 0x1b, 0x15, 0x1a, 0x56, 0xb5, 0xad, 0xdf, 0xbc, 0xe2, 0xf4, 0x15, 0xf4, 0x9e, 0x27, 0xcc,
- 0x22, 0x8d, 0xdf, 0xc3, 0x66, 0xdd, 0x82, 0xcb, 0xa6, 0xf5, 0xf8, 0xdf, 0xf8, 0xee, 0xfd, 0x73,
- 0x52, 0xe9, 0xec, 0x89, 0xf6, 0x06, 0x4f, 0xa7, 0xe0, 0x90, 0xdc, 0xec, 0xdc, 0x7d, 0xbe, 0xc8,
- 0x42, 0x7f, 0x26, 0x50, 0xc6, 0x6e, 0x60, 0xb3, 0xfa, 0x87, 0xd0, 0x26, 0xd0, 0x0d, 0x64, 0x77,
- 0x72, 0x06, 0xbb, 0xf8, 0x96, 0xd6, 0x11, 0x8f, 0xd4, 0xbe, 0xc4, 0xbb, 0xc4, 0x9d, 0xc9, 0x75,
- 0x62, 0x90, 0x71, 0x21, 0xa6, 0xbe, 0x3e, 0x9b, 0xce, 0xa9, 0xc8, 0x71, 0xc8, 0xed, 0x13, 0xca,
- 0x51, 0xba, 0x20, 0x62, 0xf3, 0xec, 0xfd, 0xd4, 0x3b, 0xc7, 0x4c, 0x20, 0x4c, 0x74, 0x71, 0x61,
- 0x41, 0x2c, 0xea, 0xbb, 0xc3, 0x84, 0xd2, 0xc0, 0x21, 0xd0, 0x40, 0xea, 0x40, 0x04, 0xab, 0xde,
- 0x71, 0x55, 0x77, 0x13, 0x93, 0x3c, 0xa3, 0xfc, 0x0f, 0xe9, 0x54, 0x77, 0x54, 0x94, 0x06, 0xdc,
- 0x61, 0xc3, 0xbd, 0xca, 0xa3, 0x54, 0x8c, 0xe8, 0x15, 0xfe, 0x58, 0xbd, 0x58, 0xe4, 0xdc, 0x63,
- 0x11, 0xa7, 0x8e, 0x80, 0x33, 0x8f, 0x41, 0x84, 0x53, 0x9b, 0x7c, 0x8e, 0x7c, 0x77, 0x9f, 0xd8,
- 0x01, 0x31, 0x44, 0x59, 0x03, 0xe7, 0x6e, 0x90, 0x49, 0x8c, 0x70, 0x44, 0x70, 0x07, 0x45, 0x67,
- 0x31, 0x48, 0xd9, 0xf1, 0x53, 0x5f, 0x1f, 0xac, 0x67, 0xb5, 0x64, 0xd9, 0x64, 0x97, 0xe8, 0x65,
- 0x21, 0xde, 0x13, 0x28, 0x63, 0x37, 0x30, 0xb8, 0x7d, 0xa2, 0x68, 0x13, 0x68, 0xe7, 0x32, 0xda,
- 0xd1, 0x80, 0xbf, 0x65, 0xb0, 0x2a, 0x46, 0x74, 0xeb, 0x7f, 0x2c, 0xbf, 0x2c, 0x72, 0x6e, 0xd0,
- 0xc1, 0x16, 0x75, 0xbc, 0x80, 0x42, 0x69, 0x60, 0xf1, 0x68, 0x20, 0x75, 0x20, 0x02, 0xb4, 0x6f,
- 0xf1, 0x6f, 0xe8, 0x14, 0xd0, 0xfa, 0x18, 0x5c, 0xdf, 0x51, 0x34, 0xe8, 0x34, 0x92, 0x19, 0x6d,
- 0xe1, 0xf9, 0x22, 0xcd, 0xe0, 0x92, 0x37, 0x48, 0xc5, 0x46, 0x38, 0x22, 0x38, 0xe2, 0xc3, 0xd2,
- 0x91, 0x9d, 0x11, 0x87, 0x70, 0x49, 0xfa, 0x24, 0x83, 0x23, 0x1c, 0x11, 0x1c, 0x71, 0x80, 0x69,
- 0x81, 0x0b, 0xdb, 0x5e, 0x40, 0x21, 0xd5, 0x30, 0x99, 0x34, 0x10, 0xdb, 0x10, 0x01, 0x5a, 0xd6,
- 0xb1, 0x72, 0x46, 0xf6, 0x10, 0x99, 0xa4, 0x0c, 0xb7, 0x0d, 0x04, 0x46, 0x04, 0x91, 0xf7, 0xd4,
- 0xa1, 0xe4, 0x8c, 0x2f, 0x20, 0xf1, 0x8b, 0x18, 0xad, 0x1a, 0x08, 0x8c, 0x08, 0xe1, 0x2d, 0x6b,
- 0x5d, 0x35, 0x96, 0x48, 0xe7, 0xc2, 0x70, 0xdb, 0xd1, 0x58, 0x49, 0x96, 0x49, 0x50, 0xcb, 0x80,
- 0x4d, 0xa3, 0x5c, 0x91, 0xd7, 0xaa, 0x5f, 0xcf, 0xcb, 0x4f, 0x45, 0x5c, 0x45, 0x20, 0x11, 0x3f,
- 0x7d, 0xda, 0xc1, 0x39, 0x87, 0x12, 0x2e, 0xf3, 0xe5, 0x76, 0x51, 0xc1, 0x51, 0xb0, 0xbc, 0x3d,
- 0x6d, 0x4c, 0x0b, 0xe0, 0xb7, 0x7a, 0x01, 0xe7, 0xff, 0x61, 0x5d, 0x0b, 0x5d, 0xc0, 0x66, 0x82,
- 0x1d, 0x28, 0x38, 0xaa, 0x27, 0xa1, 0xcc, 0x8b, 0xb9, 0x04, 0x79, 0x38, 0x79, 0x53, 0x25, 0x39,
- 0x0d, 0xbe, 0xf2, 0x73, 0x17, 0xc9, 0xe3, 0x9f, 0xa3, 0x13, 0x75, 0xf2, 0x75, 0x23, 0xff, 0x86,
- 0x3d, 0xc7, 0x6f, 0xdb, 0x47, 0x71, 0x92, 0xa3, 0x8d, 0x2a, 0x61, 0x6f, 0x61, 0xb3, 0x52, 0x84,
- 0x2d, 0x51, 0xa5, 0x02, 0x77, 0x19, 0xbd, 0xb7, 0x97, 0x3d, 0x6d, 0xa5, 0x6d, 0xc3, 0x88, 0x3b,
- 0xdd, 0x0f, 0x09, 0x4f, 0xa4, 0x04, 0xcb, 0x7b, 0x01, 0xe0, 0x29, 0x09, 0x29, 0x56, 0xd4, 0x31,
- 0xcd, 0x99, 0xc3, 0x96, 0x94, 0x6c, 0xe4, 0x6f, 0x1b, 0xf7, 0x25, 0xc3, 0x25, 0x26, 0x0e, 0x8e,
- 0xfd, 0xe0, 0x5e, 0x3e, 0xc4, 0xd4, 0x95, 0x53, 0x35, 0xce, 0x31, 0x5e, 0x31, 0xb6, 0xa3, 0x8c,
- 0xed, 0x76, 0x94, 0xe7, 0xf4, 0xbc, 0xba, 0x47, 0x2f, 0xd9, 0x3d, 0x94, 0x3d, 0xc6, 0x79, 0x33,
- 0x9d, 0x12, 0xa7, 0xad, 0x64, 0x67, 0x77, 0x2b, 0x69, 0xbc, 0x19, 0xa7, 0x19, 0x55, 0x3a, 0x88,
- 0x8d, 0x84, 0x6d, 0x74, 0x54, 0x0f, 0x58, 0x3f, 0x73, 0xab, 0x15, 0x6d, 0x15, 0x25, 0xe0, 0x37,
- 0xbd, 0xfd, 0xf0, 0xdc, 0x04, 0xb7, 0x29, 0x03, 0x5d, 0x92, 0x01, 0xf0, 0x01, 0xb5, 0x4d, 0x35,
- 0xad, 0x6b, 0x3a, 0x05, 0x34, 0xdf, 0x06, 0x17, 0x47, 0x85, 0x0d, 0x3a, 0x0d, 0xc5, 0x97, 0x8a,
- 0x9e, 0x41, 0x6b, 0x46, 0x61, 0x8d, 0xc5, 0x58, 0xb2, 0xeb, 0x89, 0x6b, 0x89, 0x5c, 0xf5, 0x21,
- 0x8e, 0xd7, 0xa1, 0x9f, 0x51, 0xe5, 0xea, 0x4c, 0xa8, 0xfc, 0x85, 0xa1, 0x85, 0x2c, 0x2f, 0x9e,
- 0xbe, 0xae, 0x3c, 0x37, 0x01, 0x5d, 0x9b, 0x70, 0x86, 0xc5, 0x91, 0x3c, 0x91, 0xbc, 0x82, 0x9c,
- 0xae, 0x38, 0xf6, 0xee, 0x31, 0x35, 0xb4, 0x64, 0x9c, 0xd2, 0x9d, 0xf6, 0x9d, 0xcc, 0x58, 0x23,
- 0xde, 0x5c, 0xc5, 0xa4, 0xa1, 0xee, 0x79, 0x08, 0xda, 0xb7, 0xb9, 0xc5, 0xb9, 0x5f, 0x1b, 0x98,
- 0xce, 0xca, 0x0f, 0x7d, 0x91, 0x86, 0x56, 0x1c, 0xc0, 0xa0, 0xb5, 0x0f, 0xb5, 0x2f, 0xc1, 0x27,
- 0xfe, 0xb3, 0x92, 0xd5, 0xc1, 0x3e, 0x27, 0x20, 0xee, 0x99, 0xa1, 0x92, 0xa1, 0xbf, 0x6c, 0x25,
- 0xee, 0x25, 0x58, 0x0c, 0xf1, 0x56, 0x08, 0x34, 0xf4, 0x8e, 0xad, 0x58, 0xad, 0xcf, 0xb6, 0x9a,
- 0x1e, 0x7b, 0xf4, 0x41, 0x22, 0x4b, 0x7e, 0xf8, 0x62, 0x53, 0xe9, 0xf4, 0xe9, 0x5a, 0xea, 0x90,
- 0x0e, 0xed, 0x3e, 0x98, 0x12, 0x23, 0x51, 0xec, 0x78, 0x44, 0xe5, 0x3e, 0xe5, 0x2a, 0x30, 0x2f,
- 0x3e, 0x94, 0xa3, 0x30, 0x42, 0x9b, 0x20, 0xd0, 0x56, 0x7d, 0xf1, 0xa3, 0xf1, 0xba, 0x9d, 0x2d,
- 0x2e, 0x02, 0x69, 0xe9, 0x72, 0xf3, 0x0f, 0xc4, 0x4c, 0x6a, 0xfd, 0x69, 0xfd, 0xca, 0x47, 0x92,
- 0x5e, 0x66, 0x5a, 0xa3, 0xe2, 0x28, 0xc2, 0xa8, 0x0a, 0x0f, 0xd9, 0x5a, 0xd9, 0x59, 0x04, 0x29,
- 0x4e, 0xf0, 0x90, 0x7a, 0xd2, 0x40, 0xed, 0xbc, 0x10, 0x18, 0xd5, 0x90, 0xd5, 0x29, 0xde, 0x96,
- 0x7e, 0x89, 0x0d, 0xd2, 0x82, 0xf8, 0x9c, 0x80, 0x3e, 0x21, 0xc1, 0x0d, 0xc1, 0xb9, 0x73, 0x94,
- 0x6e, 0x1f, 0xc7, 0x0b, 0xb2, 0x90, 0xb3, 0x94, 0x24, 0x36, 0xcd, 0xc7, 0xcd, 0xc9, 0xa9, 0x2b,
- 0x18, 0xdd, 0xaf, 0x54, 0x28, 0x5c, 0xd9, 0x1e, 0x17, 0xfd, 0x0a, 0xaf, 0x0a, 0x48, 0xb7, 0x01,
- 0x08, 0x4b, 0x65, 0x8d, 0x18, 0x34, 0xf6, 0x0a, 0x0d, 0xea, 0x06, 0x65, 0x06, 0x38, 0x6d, 0xbe,
- 0x38, 0x32, 0xf8, 0x25, 0x48, 0x8c, 0x87, 0x36, 0x23, 0xd3, 0x12, 0xf8, 0x12, 0xa8, 0xc0, 0xbc,
- 0x28, 0xa4, 0x32, 0xfc, 0x78, 0xe4, 0xa8, 0x22, 0x39, 0xc4, 0x1e, 0x32, 0x1e, 0xd8, 0x1a, 0x03,
- 0x58, 0xc0, 0x01, 0xb6, 0xe8, 0x3f, 0x65, 0x4e, 0x7f, 0xa1, 0x3a, 0x01, 0x3a, 0x4b, 0x59, 0xb8,
- 0x48, 0x56, 0xcb, 0x6f, 0xd8, 0x57, 0x4a, 0x5a, 0x65, 0xb6, 0x36, 0xcb, 0x36, 0x3b, 0x83, 0x07,
- 0x78, 0x2f, 0x56, 0xc7, 0x88, 0xef, 0x3b, 0x66, 0x4b, 0x8f, 0x22, 0x56, 0x22, 0xab, 0x2e, 0x05,
- 0x68, 0xb9, 0x9c, 0x1e, 0xb8, 0x87, 0x14, 0x72, 0x51, 0x98, 0x2e, 0x9c, 0x2e, 0xdb, 0xf4, 0xba,
- 0x98, 0xe7, 0x30, 0x53, 0x6b, 0x9a, 0x62, 0xbe, 0xc7, 0x45, 0x6a, 0x30, 0x6a, 0x4e, 0xa8, 0xb0,
- 0x88, 0x71, 0xfa, 0x8a, 0x5b, 0xf2, 0x4d, 0xaa, 0xdd, 0x52, 0x66, 0xfa, 0x66, 0x3e, 0x72, 0x0f,
- 0xb8, 0x08, 0x67, 0x22, 0x0b, 0x4a, 0x3c, 0x96, 0xf3, 0x6b, 0x72, 0x67, 0x72, 0xae, 0xdf, 0x0d,
- 0xa8, 0x9e, 0xad, 0xfb, 0x3b, 0x22, 0x13, 0x82, 0xe9, 0x7c, 0x7e, 0xad, 0x7e, 0xde, 0x05, 0xb2,
- 0xd8, 0xfa, 0x9e, 0xb1, 0xab, 0xf9, 0xde, 0xee, 0xaf, 0x19, 0x5a, 0x9e, 0x5a, 0x4d, 0x46, 0x09,
- 0xc8, 0x6c, 0x54, 0x68, 0x9b, 0x91, 0xf1, 0xfa, 0xb5, 0x0e, 0x56, 0x54, 0x56, 0x3d, 0x9c, 0xb6,
- 0xf8, 0x15, 0xc9, 0xc0, 0xcb, 0x29, 0x80, 0xc6, 0x9b, 0x37, 0x42, 0xc9, 0x42, 0xad, 0x31, 0xb4,
- 0xe8, 0x83, 0x03, 0x19, 0xfb, 0x41, 0xaf, 0xd2, 0x81, 0x20, 0x4e, 0x03, 0x4e, 0xdd, 0xeb, 0x0b,
- 0xdb, 0xa9, 0x52, 0x5a, 0xae, 0x13, 0x6c, 0x9d, 0x74, 0x4e, 0xca, 0x52, 0xca, 0x44, 0x89, 0xa0,
- 0xcb, 0x3f, 0x98, 0x83, 0x9e, 0x7b, 0x43, 0x89, 0x6e, 0x59, 0xc6, 0x98, 0xc6, 0x34, 0x53, 0x1f,
- 0xfb, 0x46, 0x05, 0x2b, 0xce, 0xc3, 0x32, 0xb5, 0x40, 0x60, 0xd2, 0x05, 0xd2, 0xa4, 0xfe, 0x1d,
- 0xeb, 0xd0, 0xcf, 0xf2, 0xfe, 0xab, 0x1d, 0xa1, 0x5a, 0x77, 0xde, 0xcf, 0xde, 0xd4, 0x24, 0xa2,
- 0x9b, 0xb4, 0xfc, 0xb8, 0x6e, 0x70, 0xd0, 0xcd, 0x1c, 0x12, 0xfa, 0xfc, 0xfa, 0x47, 0x67, 0x19,
- 0x8b, 0x22, 0x36, 0x61, 0x5e, 0x18, 0xff, 0xd9, 0x06, 0x05, 0xf6, 0x36, 0xf6, 0x37, 0xbd, 0xa6,
- 0xbb, 0x5b, 0xab, 0xc9, 0x0e, 0xa0, 0x8e, 0xe5, 0x28, 0x3c, 0xe2, 0xab, 0xe2, 0xa7, 0x10, 0xa4,
- 0xab, 0xcd, 0x61, 0x10, 0x3e, 0xc8, 0xa1, 0xf1, 0x32, 0x2b, 0xee, 0x61, 0xee, 0xd7, 0xca, 0x1b,
- 0x5b, 0x93, 0xcd, 0x5d, 0xed, 0xd5, 0xd7, 0x3d, 0xa4, 0xf6, 0xaa, 0xcd, 0xaa, 0x42, 0x96, 0x11,
- 0x4b, 0x05, 0x07, 0x84, 0xdd, 0xbd, 0xf8, 0x29, 0xbe, 0xe1, 0xa6, 0x07, 0xa6, 0x32, 0x4c, 0xae,
- 0x7b, 0x7c, 0x9a, 0x2c, 0x8d, 0x05, 0x89, 0x15, 0x90, 0xd8, 0xb2, 0x9a, 0xb2, 0xa2, 0xe1, 0xac,
- 0x6b, 0xea, 0x50, 0xf5, 0xbd, 0x6d, 0xa6, 0x01, 0x8a, 0xcf, 0xbe, 0x50, 0xbe, 0xd2, 0x3b, 0x13,
- 0x1b, 0x8e, 0x63, 0xbf, 0x2d, 0xb6, 0x6b, 0x6d, 0xcc, 0xaa, 0x9a, 0x63, 0x9a, 0x41, 0x78, 0xa8,
- 0x0b, 0x18, 0xa9, 0x66, 0x1d, 0xde, 0x44, 0x79, 0xd6, 0xbd, 0x96, 0xa9, 0x96, 0x31, 0xa2, 0x17,
- 0x3b, 0x61, 0x34, 0xce, 0x4d, 0x66, 0x35, 0x45, 0xf8, 0x84, 0x82, 0x34, 0x82, 0xa1, 0x0f, 0x15,
- 0x2b, 0xf7, 0xfe, 0x17, 0x7d, 0x0e, 0x1a, 0x51, 0xe2, 0x93, 0x8e, 0xfe, 0x8e, 0xd1, 0xd5, 0xaa,
- },
- { /* 13 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x85, 0x74, 0x75, 0xd0, 0x5e, 0xbe, 0xb8, 0x87, 0x4e, 0x62, 0xec, 0x6b, 0x10, 0x87, 0xc6, 0x74,
- 0xc9, 0xe8, 0xea, 0x63, 0xbc, 0xbf, 0xb3, 0xcd, 0x9c, 0xc4, 0x1b, 0xd6, 0x20, 0xcd, 0x4f, 0xe8,
- 0x4c, 0x9c, 0x9f, 0xb3, 0xe2, 0x01, 0x0b, 0x4a, 0xd2, 0xa6, 0xf7, 0xbd, 0x30, 0x4a, 0x89, 0x9c,
- 0x51, 0x13, 0x17, 0xc6, 0xbb, 0xbd, 0xa5, 0x59, 0xfb, 0x4b, 0x36, 0x6f, 0x40, 0x59, 0x9e, 0x13,
- 0xd4, 0x67, 0x62, 0x16, 0xe5, 0x03, 0x1d, 0xde, 0xb5, 0x29, 0xda, 0x04, 0x50, 0xde, 0x58, 0x67,
- 0x98, 0xfb, 0xfd, 0xa5, 0x07, 0x02, 0x16, 0x94, 0x67, 0x8f, 0x2d, 0xb9, 0x60, 0x94, 0xd1, 0xfb,
- 0x1d, 0x8f, 0x88, 0x75, 0x59, 0xbc, 0xae, 0x13, 0x29, 0xed, 0xc1, 0xd2, 0x70, 0x13, 0x17, 0x8f,
- 0xa2, 0x26, 0x2e, 0x4f, 0xb5, 0xb9, 0x89, 0xb2, 0x35, 0x96, 0x6c, 0xde, 0x80, 0xb2, 0xff, 0x26,
- 0x27, 0x52, 0x5b, 0x9f, 0xeb, 0x07, 0x31, 0x35, 0x7b, 0xf4, 0x80, 0xb5, 0x90, 0x35, 0x39, 0x52,
- 0x6b, 0xce, 0xc4, 0x2c, 0x09, 0x06, 0x3a, 0x7f, 0xa9, 0x52, 0x77, 0x08, 0xa0, 0x7f, 0xb0, 0xce,
- 0xee, 0xba, 0xb1, 0xfc, 0x57, 0xb8, 0x82, 0xf8, 0xe7, 0x30, 0x9b, 0x63, 0xb0, 0xf8, 0x76, 0xba,
- 0xf3, 0x35, 0x39, 0x89, 0x0e, 0x04, 0x2c, 0xeb, 0xce, 0xdd, 0x5a, 0xb1, 0xc0, 0xeb, 0x61, 0x35,
- 0x76, 0x41, 0x4c, 0x59, 0x50, 0xba, 0x94, 0x6c, 0x80, 0xbf, 0xb6, 0xda, 0xd0, 0x6c, 0xa7, 0x41,
- 0x3a, 0xdd, 0xd3, 0xea, 0xb2, 0xbb, 0x9f, 0x26, 0x52, 0x19, 0x41, 0x67, 0xe0, 0x26, 0x2e, 0xdd,
- 0xbf, 0xa9, 0xa6, 0x3a, 0xec, 0x05, 0x27, 0xa1, 0x1c, 0x7b, 0xad, 0x0c, 0xf0, 0xa1, 0xe8, 0xa9,
- 0x87, 0x4c, 0x5c, 0x9e, 0xa9, 0xb1, 0xd1, 0xa7, 0x6a, 0xef, 0xd8, 0x7f, 0xc3, 0xa7, 0x3d, 0x4c,
- 0x02, 0x38, 0x29, 0x4e, 0xf7, 0x0f, 0x69, 0x20, 0x24, 0x8d, 0x34, 0x14, 0xd3, 0x20, 0xfb, 0x38,
- 0x4e, 0xa4, 0xb6, 0xfd, 0x15, 0x0e, 0x62, 0x6a, 0xf6, 0x2b, 0xc3, 0xa9, 0xe3, 0x6a, 0x72, 0xa4,
- 0xcb, 0xd0, 0xc3, 0x2d, 0x4b, 0xb0, 0xda, 0xed, 0xb8, 0x49, 0x2f, 0xc2, 0xf3, 0xed, 0xb4, 0xd0,
- 0xd6, 0x5f, 0x4b, 0x58, 0x12, 0x0c, 0x74, 0xfe, 0x91, 0xa4, 0xee, 0x10, 0x83, 0xfe, 0xa3, 0x5f,
- 0x53, 0x2b, 0x3e, 0x88, 0x4c, 0xb2, 0xcc, 0x79, 0xdf, 0xc6, 0x02, 0x7b, 0x93, 0x79, 0x65, 0x2b,
- 0x1f, 0xb7, 0xa1, 0x3b, 0xae, 0xb3, 0xc7, 0x33, 0x0d, 0x60, 0xf5, 0xc6, 0xa3, 0x33, 0xec, 0xb7,
- 0x9a, 0xc3, 0xd4, 0xeb, 0xf0, 0x0d, 0x7f, 0xb4, 0x43, 0x02, 0x19, 0xad, 0xb3, 0xb4, 0x2a, 0xc3,
- 0x25, 0x6a, 0x72, 0xd1, 0x1c, 0x08, 0x58, 0x15, 0x5f, 0x79, 0xb4, 0xa1, 0x43, 0x15, 0xc2, 0x6a,
- 0xa0, 0x1e, 0x07, 0x01, 0x42, 0xb6, 0xe0, 0x92, 0x11, 0x1b, 0x58, 0xca, 0x53, 0x92, 0x04, 0x1e,
- 0xec, 0x82, 0x98, 0xb2, 0xa0, 0xb7, 0xeb, 0xd8, 0xc3, 0xbd, 0xaf, 0x77, 0x63, 0xd8, 0x8d, 0x82,
- 0x69, 0xf6, 0xed, 0x62, 0xfe, 0x09, 0x53, 0x5f, 0x8d, 0xdf, 0x43, 0x1c, 0x73, 0x5f, 0x4b, 0xf6,
- 0x74, 0x79, 0x65, 0x17, 0xa7, 0xb5, 0xfd, 0x4c, 0xa4, 0x32, 0x82, 0xce, 0x03, 0x4c, 0x5c, 0x79,
- 0xf1, 0x0d, 0x10, 0xc7, 0xf9, 0x0b, 0x45, 0xcb, 0xea, 0x50, 0x6e, 0xa5, 0x13, 0xcb, 0x9a, 0x0d,
- 0xbd, 0x91, 0x8f, 0x74, 0x1b, 0x0a, 0x4e, 0x81, 0x38, 0xf6, 0x99, 0x18, 0x23, 0x81, 0x13, 0x91,
- 0x38, 0xe5, 0xfa, 0xa4, 0x45, 0xb4, 0xf6, 0x06, 0x76, 0x94, 0x75, 0x73, 0x33, 0x06, 0xd5, 0xe5,
- 0xcd, 0x98, 0xb8, 0xff, 0x91, 0xa1, 0x61, 0x8d, 0xd4, 0x1d, 0x73, 0xfe, 0x45, 0x8d, 0x7a, 0x98,
- 0x48, 0xec, 0xcd, 0x2f, 0xcf, 0x1f, 0xd9, 0x0a, 0x9a, 0x7f, 0x9f, 0x95, 0x55, 0x0a, 0xbc, 0xec,
- 0x04, 0x70, 0x52, 0x9c, 0x2d, 0x1e, 0xd2, 0x40, 0x48, 0xd9, 0x68, 0x28, 0x65, 0x40, 0x35, 0x70,
- 0x81, 0x04, 0x27, 0x4c, 0x73, 0xa0, 0x6a, 0xc7, 0x06, 0xbb, 0x84, 0x43, 0x75, 0xc7, 0xf3, 0x04,
- 0x9c, 0x8b, 0xaf, 0x39, 0x2a, 0x1c, 0xc4, 0xd4, 0x2f, 0x56, 0x45, 0x91, 0x05, 0xd4, 0xe4, 0x8b,
- 0x19, 0xff, 0xda, 0xe9, 0x74, 0xa2, 0x7c, 0x53, 0x61, 0x34, 0xa9, 0xfa, 0x15, 0x53, 0x22, 0xff,
- 0x55, 0x63, 0x45, 0x5a, 0x96, 0xa3, 0x77, 0x19, 0xb3, 0x92, 0x5e, 0x47, 0x25, 0x19, 0xab, 0x63,
- 0xd0, 0x17, 0x30, 0x8a, 0xc8, 0x1d, 0xcf, 0x9e, 0xfd, 0xf0, 0xb2, 0x2c, 0x35, 0x9e, 0x6d, 0x17,
- 0x6f, 0xbe, 0x96, 0xb0, 0x24, 0x18, 0xe8, 0x3f, 0xe1, 0x8b, 0x1f, 0x20, 0xc5, 0x3f, 0x85, 0xbe,
- 0xea, 0xca, 0xe3, 0x60, 0x7a, 0xa6, 0x50, 0xb8, 0xaf, 0xe9, 0xf3, 0x4b, 0xd5, 0xb8, 0x43, 0xca,
- 0xa6, 0x56, 0x7c, 0xd3, 0x98, 0xa7, 0x5b, 0xf2, 0x7d, 0x4f, 0x04, 0xf6, 0xe5, 0xf2, 0xca, 0x56,
- 0x23, 0x22, 0x09, 0x03, 0xc6, 0x19, 0xe3, 0x75, 0x33, 0x2d, 0xe8, 0x9d, 0xf5, 0x75, 0x0c, 0x22,
- 0x3e, 0xad, 0x81, 0x76, 0x9f, 0xa5, 0x4d, 0x66, 0x1a, 0xc0, 0x29, 0x4f, 0x85, 0x66, 0x1b, 0xad,
- 0xbb, 0xd9, 0xf4, 0xa6, 0xc1, 0x1b, 0xf5, 0xe1, 0x54, 0xa2, 0xc5, 0x24, 0x95, 0xe1, 0xdd, 0xd9,
- 0xf7, 0x45, 0x6b, 0x15, 0x23, 0x1a, 0xfe, 0xab, 0x86, 0x04, 0x32, 0x99, 0xa5, 0xab, 0x54, 0x45,
- 0x72, 0x31, 0x1e, 0xc5, 0x7d, 0xa4, 0x46, 0x2c, 0xc8, 0x66, 0xde, 0xf2, 0xb5, 0x2c, 0x92, 0x31,
- 0x4a, 0xd4, 0xe4, 0x61, 0x38, 0x10, 0xb0, 0x2a, 0xbe, 0xf2, 0xab, 0x81, 0x86, 0x2a, 0x47, 0xd4,
- 0xcf, 0xa0, 0x91, 0xb1, 0x66, 0xae, 0x08, 0xad, 0xf0, 0x90, 0x47, 0xea, 0x96, 0xad, 0x81, 0xa0,
- 0x83, 0x3c, 0x0e, 0x02, 0x84, 0xaf, 0x03, 0xe7, 0x22, 0x36, 0xb0, 0x57, 0xa6, 0xe7, 0x08, 0x3c,
- 0x06, 0x48, 0x7b, 0xd2, 0xda, 0x11, 0xbb, 0x60, 0x6c, 0x54, 0x5c, 0x3c, 0xb6, 0x60, 0xce, 0x48,
- 0x1b, 0xc7, 0xf3, 0xa7, 0x83, 0xad, 0x15, 0x73, 0x45, 0xb9, 0x9d, 0xee, 0xc6, 0x73, 0xd9, 0xc7,
- 0x9e, 0xb3, 0x86, 0x77, 0xdd, 0x13, 0xad, 0xf4, 0x0b, 0xdb, 0x71, 0x85, 0xd6, 0xf4, 0x1f, 0xb3,
- 0xd2, 0x2f, 0x19, 0xc4, 0x3f, 0x12, 0xa6, 0xbe, 0xd9, 0x7d, 0x86, 0x38, 0xe6, 0xbe, 0x96, 0x2f,
- 0x57, 0x5b, 0x6c, 0x14, 0x61, 0xac, 0x1e, 0x39, 0x97, 0x1f, 0x6a, 0x53, 0xf6, 0x39, 0x50, 0x5b,
- 0xe8, 0xf2, 0xca, 0x2e, 0x8d, 0xa9, 0x39, 0x98, 0x8b, 0x64, 0xc7, 0x5f, 0x06, 0x98, 0xb8, 0xf2,
- 0x6d, 0x86, 0xbf, 0xfe, 0xd3, 0x17, 0x81, 0x1f, 0xc5, 0x06, 0x2b, 0x34, 0x16, 0x1f, 0x7e, 0x86,
- 0x21, 0x1a, 0x20, 0x4d, 0x31, 0x16, 0x8a, 0x55, 0x17, 0xa0, 0xdc, 0x89, 0x26, 0x55, 0xf7, 0x1a,
- 0xa4, 0x6e, 0x55, 0x9d, 0x6f, 0xa8, 0x32, 0xd2, 0x59, 0xc2, 0x30, 0xe2, 0x36, 0xd2, 0x31, 0x6e,
- 0xb9, 0xe1, 0xdd, 0xe8, 0x36, 0x14, 0x9c, 0xc1, 0x70, 0x2f, 0xf1, 0x30, 0x46, 0xc1, 0x26, 0xe1,
- 0x3c, 0x95, 0xa8, 0x38, 0x68, 0xaa, 0x24, 0x46, 0x3e, 0x4d, 0x1d, 0x5b, 0x56, 0x46, 0xe0, 0x95,
- 0x70, 0x09, 0x37, 0x8b, 0x8a, 0xab, 0x2f, 0x0c, 0xec, 0xeb, 0xea, 0xe6, 0x66, 0x0c, 0x69, 0x09,
- 0xf5, 0x7d, 0x42, 0x5b, 0xd4, 0x15, 0x97, 0x8b, 0xa2, 0x89, 0x06, 0x8d, 0x76, 0x8b, 0xaf, 0x7d,
- 0x59, 0xf3, 0xb3, 0x3d, 0xe1, 0x81, 0xc2, 0xd9, 0x6b, 0x3a, 0xe6, 0x3f, 0x8a, 0xd9, 0xf4, 0xf3,
- 0xdc, 0x87, 0xc6, 0xed, 0xbf, 0x3f, 0x7a, 0x5e, 0x25, 0x58, 0x0a, 0x54, 0x9a, 0x5e, 0x32, 0x87,
- 0x90, 0x1b, 0x59, 0x5e, 0x5d, 0x3e, 0x71, 0x14, 0xf7, 0xfe, 0xfd, 0xe9, 0xaa, 0x14, 0xbb, 0x1b,
- 0x15, 0x6f, 0x2c, 0x8e, 0x03, 0x80, 0xc9, 0x93, 0xb9, 0x9c, 0x11, 0x82, 0xba, 0x93, 0x7d, 0x6f,
- 0x08, 0xe0, 0xa4, 0xfb, 0x5a, 0x3c, 0x67, 0x80, 0x90, 0x71, 0xd0, 0x50, 0xca, 0x80, 0x6a, 0xe0,
- 0x8d, 0x94, 0xd1, 0x2b, 0x04, 0x82, 0xdf, 0x07, 0xde, 0x13, 0x3c, 0x3b, 0xda, 0x07, 0xac, 0x94,
- 0xc1, 0x08, 0x4e, 0x98, 0xe6, 0x83, 0xd4, 0x4d, 0x0c, 0xb5, 0xcb, 0x86, 0xea, 0x4d, 0x25, 0x08,
- 0x44, 0x7c, 0x3b, 0x48, 0xb8, 0x3d, 0x6c, 0xca, 0x42, 0xd7, 0x27, 0xed, 0xfa, 0xca, 0xe3, 0x7c,
- 0xfb, 0xd5, 0x9d, 0x72, 0x54, 0x38, 0x4b, 0x6b, 0x5e, 0xac, 0x8a, 0xe1, 0x0a, 0x6b, 0x0b, 0xd5,
- 0x7e, 0xa1, 0xe8, 0xa2, 0x0a, 0x86, 0xf3, 0xec, 0x10, 0xce, 0x66, 0x8a, 0x1a, 0xec, 0xcd, 0xa1,
- 0x32, 0x3d, 0x77, 0x11, 0xe8, 0x87, 0xf8, 0xa6, 0xc2, 0x68, 0x91, 0x37, 0x2a, 0xa6, 0x44, 0x3d,
- 0xb7, 0x49, 0x02, 0xc1, 0xb6, 0x39, 0x40, 0x21, 0x8c, 0x0a, 0x7d, 0x5c, 0x3a, 0x21, 0x82, 0x49,
- 0xaa, 0xc6, 0x8a, 0xb4, 0xef, 0x85, 0xee, 0x32, 0xa5, 0xe7, 0xbc, 0x8e, 0x4a, 0x32, 0x95, 0xc6,
- 0x2f, 0xb2, 0xff, 0x64, 0xb1, 0x3b, 0x56, 0xb5, 0xeb, 0x85, 0x50, 0xe5, 0x5a, 0xb5, 0x53, 0xb2,
- 0x63, 0x2e, 0x60, 0xd7, 0x53, 0x3a, 0x5d, 0xff, 0x39, 0x23, 0xa7, 0x58, 0x6a, 0xff, 0xda, 0x2e,
- 0xe6, 0x5a, 0x15, 0x07, 0x0d, 0x84, 0xe5, 0x78, 0x77, 0x41, 0x4b, 0x33, 0x7a, 0x78, 0x1c, 0x5a,
- 0xde, 0xbf, 0xef, 0xa3, 0x48, 0x30, 0x13, 0x7e, 0x01, 0xd5, 0x3e, 0x40, 0x49, 0x7e, 0xc9, 0xbf,
- 0x5b, 0xcb, 0x9a, 0x73, 0x16, 0x8e, 0xab, 0xf9, 0x4f, 0xb7, 0xd2, 0x2b, 0x59, 0xf9, 0x0f, 0xcb,
- 0x17, 0x57, 0x05, 0xc0, 0xf4, 0x8f, 0xa0, 0xb3, 0x9d, 0x11, 0x25, 0x96, 0x69, 0xb3, 0x86, 0x57,
- 0x92, 0x23, 0x70, 0x10, 0xaa, 0x31, 0x18, 0x34, 0xd3, 0x73, 0xc9, 0xfd, 0x79, 0x34, 0x40, 0x23,
- 0x8f, 0xac, 0xf8, 0x65, 0xf3, 0x8d, 0xb6, 0x27, 0xfa, 0x9e, 0x08, 0x2f, 0x09, 0x27, 0x57, 0xac,
- 0x0a, 0xd8, 0x8d, 0xb5, 0xad, 0x33, 0x0e, 0xa0, 0xb4, 0xfc, 0xe4, 0x44, 0x19, 0xa0, 0x91, 0xd8,
- 0x46, 0x44, 0x12, 0x06, 0x4f, 0x32, 0x05, 0xea, 0x66, 0x5a, 0x13, 0xf9, 0x29, 0xea, 0x18, 0x44,
- 0xc3, 0x30, 0x67, 0xd6, 0x11, 0x8c, 0xbd, 0x6d, 0x28, 0x38, 0xff, 0x92, 0x39, 0x6d, 0xde, 0x30,
- 0x7c, 0x99, 0xc1, 0xec, 0xfd, 0x89, 0x9a, 0xcc, 0x34, 0x43, 0x52, 0x9e, 0xc9, 0xcc, 0x36, 0x99,
- 0xf9, 0xed, 0xb4, 0x3c, 0xa3, 0x37, 0x22, 0x4b, 0x7a, 0x21, 0xbe, 0xf5, 0xd9, 0x4b, 0xf0, 0xed,
- 0xb5, 0x71, 0x2b, 0x8f, 0x41, 0x36, 0x29, 0x01, 0xa8, 0x87, 0x49, 0x48, 0xe9, 0x01, 0x79, 0x71,
- 0x30, 0x05, 0x5e, 0x5f, 0x1f, 0x88, 0x91, 0x86, 0xe6, 0xe5, 0xa5, 0x23, 0xf9, 0x86, 0xbf, 0x05,
- 0x2d, 0x8a, 0xd6, 0x2a, 0x46, 0x34, 0x3f, 0x95, 0xcf, 0x08, 0x64, 0xf1, 0x89, 0x95, 0xa8, 0x8a,
- 0xa8, 0xfe, 0xa3, 0xfa, 0x18, 0x8a, 0x87, 0x12, 0x81, 0x6a, 0x88, 0x9a, 0x99, 0x12, 0x6e, 0xfe,
- 0xe4, 0x62, 0x3c, 0x49, 0xfa, 0x8b, 0x8c, 0x58, 0x53, 0xcc, 0x7f, 0x27, 0xa9, 0x58, 0xe7, 0x62,
- 0x61, 0x16, 0x49, 0x99, 0xa4, 0x35, 0x34, 0xdf, 0x1d, 0xae, 0x93, 0x4c, 0xb9, 0xdf, 0x21, 0x16,
- 0x94, 0x6b, 0x0b, 0xc2, 0x70, 0x20, 0xa3, 0x54, 0xbf, 0x27, 0x95, 0xc1, 0xcf, 0x54, 0x8e, 0x6b,
- 0x11, 0x1f, 0x7e, 0x12, 0x2e, 0x9e, 0x1b, 0xd3, 0xf1, 0x45, 0x79, 0xaa, 0xdf, 0xd3, 0x48, 0x1f,
- 0x5d, 0x83, 0xe1, 0xa1, 0xcc, 0x9f, 0x10, 0x99, 0x23, 0xe3, 0x8e, 0x17, 0xef, 0x99, 0xc1, 0x83,
- 0xd8, 0xf7, 0x94, 0x71, 0x92, 0x21, 0xa8, 0x1e, 0x6d, 0x81, 0x62, 0x7c, 0xff, 0x1e, 0x07, 0xf7,
- 0xc5, 0x78, 0x1c, 0x04, 0xcb, 0x9d, 0x06, 0x0d, 0x44, 0x6c, 0xa3, 0xae, 0x8f, 0x0d, 0x10, 0x78,
- 0x40, 0x0c, 0x69, 0xd4, 0x95, 0x23, 0xbe, 0x8a, 0x0a, 0x0e, 0x4f, 0xc5, 0x9f, 0x8a, 0xd6, 0x0c,
- 0x0c, 0x90, 0xf6, 0x67, 0x77, 0x22, 0xb5, 0xc0, 0xd8, 0xa8, 0xb8, 0x78, 0xaf, 0xc0, 0x5f, 0x90,
- 0x89, 0xe4, 0x83, 0xb7, 0x29, 0x9c, 0x0d, 0x47, 0x96, 0xca, 0x54, 0x13, 0xbf, 0x47, 0x99, 0xe4,
- 0x36, 0x4d, 0x25, 0x8d, 0xc5, 0x99, 0x2a, 0xe6, 0x8a, 0xb1, 0xf9, 0x1f, 0x4f, 0xe6, 0x71, 0x4d,
- 0xb3, 0x39, 0x50, 0x5d, 0x9b, 0x27, 0x92, 0x61, 0xc4, 0xd3, 0x15, 0x74, 0x5f, 0x61, 0xb7, 0x39,
- 0xff, 0xa5, 0xcf, 0xee, 0x79, 0x26, 0x99, 0x2b, 0x16, 0x75, 0xe2, 0xc9, 0x6f, 0x2b, 0x3e, 0xa5,
- 0x7a, 0xd1, 0xba, 0x3e, 0x27, 0x98, 0x21, 0xac, 0x58, 0x17, 0x0e, 0xa2, 0x7f, 0xac, 0xf8, 0xd1,
- 0x67, 0x5e, 0x32, 0x4b, 0x7e, 0x24, 0x8f, 0xbf, 0x71, 0xfa, 0xcf, 0x70, 0x0f, 0xbf, 0xef, 0x5e,
- 0xe2, 0x2a, 0x47, 0x9b, 0x20, 0x9a, 0x37, 0x38, 0x3f, 0x98, 0x23, 0x1b, 0x1f, 0x38, 0x29, 0x2a,
- 0xae, 0xb6, 0xd8, 0x28, 0xc2, 0x9b, 0x3c, 0x72, 0xed, 0x3e, 0xd4, 0xa6, 0x2f, 0x72, 0xa0, 0xb6,
- 0x2b, 0xc2, 0xad, 0xf8, 0x9c, 0x25, 0x84, 0xf5, 0xa3, 0x5c, 0x38, 0xcd, 0x3f, 0xf5, 0x66, 0xc2,
- 0x13, 0x27, 0x57, 0x5c, 0xd9, 0x91, 0x72, 0xf3, 0xd5, 0xc8, 0x4d, 0xbe, 0x0c, 0xf3, 0xb3, 0x27,
- 0x96, 0x53, 0x22, 0x8c, 0x87, 0x2f, 0xca, 0x74, 0x9b, 0xaa, 0xa1, 0xd5, 0x1c, 0x74, 0x75, 0x53,
- 0xda, 0xcf, 0xbd, 0x3f, 0x65, 0x2e, 0xc1, 0x3e, 0x49, 0x0c, 0x56, 0x68, 0x2c, 0x3e, 0xfc, 0xcf,
- 0x5f, 0xbb, 0xc8, 0xef, 0x3b, 0x90, 0x79, 0xb9, 0x07, 0x6e, 0xba, 0x03, 0x3c, 0xb9, 0x3a, 0xbb,
- 0x42, 0x34, 0x40, 0x9a, 0x62, 0x2c, 0xd7, 0xaa, 0x2e, 0x83, 0x7b, 0xd1, 0x4c, 0xaa, 0x2d, 0x34,
- 0xc7, 0x40, 0x35, 0x4a, 0x3c, 0x92, 0x6f, 0x2d, 0x60, 0xe1, 0x97, 0xba, 0x5c, 0x2d, 0xeb, 0x40,
- 0x8b, 0xdc, 0xaa, 0xf9, 0xde, 0x93, 0x64, 0x67, 0xb2, 0x47, 0x60, 0x07, 0x6c, 0x67, 0x62, 0xdc,
- 0x0e, 0xa8, 0xdf, 0x29, 0x80, 0x2d, 0xdc, 0xe0, 0xfc, 0x25, 0x8c, 0x6c, 0x7c, 0xe0, 0xa4, 0xa8,
- 0xb1, 0x01, 0x79, 0x13, 0x6c, 0x28, 0xfb, 0x41, 0xe0, 0x5e, 0x21, 0x60, 0x8c, 0x41, 0x4c, 0x01,
- 0x34, 0x75, 0x0c, 0xc3, 0x32, 0x96, 0x43, 0xc6, 0xae, 0x3c, 0xcd, 0x0b, 0x9c, 0xc6, 0x8a, 0x75,
- 0x78, 0xe9, 0x93, 0x70, 0xd0, 0x97, 0x48, 0x8c, 0x7c, 0x9a, 0x3a, 0xb6, 0xac, 0x8c, 0x03, 0xe9,
- 0xfd, 0x9d, 0xe6, 0xa0, 0x8e, 0x29, 0xf0, 0x0b, 0x32, 0xf8, 0xd6, 0xdd, 0xbc, 0x0b, 0xc5, 0x9d,
- 0xe0, 0x12, 0x6e, 0xd5, 0xd7, 0x95, 0x5e, 0x18, 0x1b, 0x15, 0x17, 0x0f, 0xcc, 0x18, 0xd2, 0x12,
- 0x65, 0x66, 0x1b, 0x05, 0x89, 0x2b, 0xe6, 0x9f, 0x55, 0x77, 0xfb, 0x64, 0xdc, 0x9f, 0x14, 0x66,
- 0x29, 0xfa, 0x84, 0xb6, 0x6b, 0x2a, 0xed, 0xd5, 0x87, 0xd1, 0x0c, 0xd9, 0xec, 0xd5, 0x9d, 0xfa,
- 0xac, 0x8e, 0xf1, 0x66, 0x35, 0x94, 0x55, 0x52, 0xc9, 0xb3, 0xe0, 0xb2, 0xfc, 0x52, 0x5b, 0x8e,
- 0xb2, 0x25, 0xa5, 0x7a, 0x01, 0xc1, 0x47, 0x71, 0xd6, 0x74, 0x0f, 0x7e, 0xd7, 0x71, 0x2b, 0x25,
- 0x37, 0x51, 0xd0, 0xaa, 0x5f, 0x7f, 0xff, 0xf6, 0x98, 0x16, 0xe3, 0x15, 0xc7, 0xf6, 0xed, 0x51,
- 0x7b, 0xcd, 0x4f, 0x19, 0xbd, 0x7e, 0xf4, 0xbc, 0x4a, 0xb0, 0x14, 0xa8, 0xf7, 0xbc, 0x64, 0xcd,
- 0xfe, 0xb9, 0x3a, 0xc9, 0xe3, 0xc0, 0x4c, 0x3b, 0x04, 0xd2, 0xf8, 0xc3, 0xe7, 0x3b, 0xa2, 0xb9,
- 0xe3, 0x36, 0xb2, 0xbc, 0xba, 0x7c, 0xe2, 0x28, 0x2d, 0x3f, 0x39, 0x11, 0x97, 0x28, 0xb5, 0x36,
- 0x66, 0x42, 0xc7, 0x6c, 0xe4, 0xc2, 0x5a, 0xaf, 0x63, 0x5d, 0xd5, 0x7a, 0x87, 0xaf, 0x73, 0x42,
- 0x2a, 0xde, 0x58, 0xdf, 0x06, 0xc3, 0x51, 0xe5, 0xb1, 0xfb, 0x22, 0xc7, 0xb7, 0xe5, 0xfa, 0xde,
- 0xaf, 0xaa, 0x2d, 0x0f, 0x58, 0x7d, 0xe9, 0x62, 0xff, 0x99, 0xce, 0xac, 0xa7, 0x62, 0x3c, 0xaa,
- 0x10, 0x03, 0x8b, 0x35, 0xb4, 0x78, 0xce, 0xc3, 0xe3, 0xe2, 0x63, 0xa0, 0x57, 0xc3, 0xd4, 0x03,
- 0x95, 0x77, 0xfe, 0xe5, 0xea, 0xc6, 0x76, 0x44, 0xad, 0x80, 0x8f, 0xcb, 0x47, 0x44, 0x12, 0x77,
- 0xd9, 0xeb, 0x61, 0x56, 0x08, 0xc7, 0x7d, 0x0e, 0x7f, 0x26, 0x78, 0x76, 0x77, 0x0e, 0x9b, 0xeb,
- 0x5c, 0x9f, 0x14, 0x86, 0x56, 0x79, 0xc5, 0x89, 0x31, 0x44, 0x94, 0x1d, 0x67, 0x89, 0x5d, 0x9f,
- 0x41, 0x10, 0x9c, 0xf3, 0x0f, 0xc5, 0x6b, 0x9a, 0x18, 0xa9, 0x55, 0xcf, 0x17, 0x9a, 0x4a, 0x10,
- 0xc4, 0x64, 0xe9, 0x23, 0x51, 0x7b, 0xd3, 0x1d, 0x56, 0xcb, 0xb9, 0xa4, 0x07, 0x1d, 0x8c, 0x64,
- 0x88, 0xf8, 0x76, 0x90, 0xb3, 0x7a, 0xd8, 0x57, 0x84, 0x6d, 0x4e, 0x19, 0x37, 0x57, 0x05, 0xf8,
- 0x0d, 0x8c, 0x03, 0x40, 0xed, 0xc4, 0x60, 0xd0, 0xca, 0x0f, 0xa2, 0x72, 0x27, 0xd0, 0xc3, 0x8c,
- 0x35, 0x69, 0xf9, 0xe4, 0xa8, 0x70, 0x96, 0xd6, 0xbc, 0x9b, 0xd7, 0x01, 0x14, 0xd6, 0x16, 0x69,
- 0xb0, 0x1d, 0x8c, 0x34, 0xf6, 0xce, 0x2e, 0x51, 0xf2, 0xf9, 0x3b, 0x6a, 0x04, 0x51, 0xd0, 0x1d,
- 0xfc, 0x81, 0x13, 0x87, 0x14, 0xcf, 0x25, 0x1b, 0x20, 0x5f, 0xcc, 0xd7, 0x34, 0x1b, 0x59, 0x81,
- 0x79, 0xf5, 0x66, 0x57, 0x4a, 0x71, 0x9d, 0x9c, 0x6e, 0x3d, 0x20, 0xbc, 0x24, 0x9c, 0x9f, 0xf5,
- 0x64, 0x7a, 0xee, 0x22, 0x13, 0xcd, 0x33, 0x8f, 0x47, 0xd0, 0xe1, 0x6e, 0x54, 0x8f, 0x88, 0x7a,
- 0xe1, 0x0e, 0x9b, 0xf2, 0x4d, 0x73, 0x8b, 0x08, 0x09, 0xb2, 0x0d, 0x05, 0x44, 0x08, 0x4e, 0x0e,
- 0xad, 0x92, 0x04, 0x41, 0xaf, 0x72, 0x80, 0x42, 0xdb, 0x14, 0xfa, 0xb8, 0x74, 0x42, 0xc7, 0x92,
- 0x28, 0xe6, 0x71, 0x91, 0xf1, 0xcc, 0x38, 0xc5, 0x95, 0x76, 0x16, 0xd3, 0x64, 0xc5, 0x01, 0xe6,
- 0x97, 0x4f, 0xd7, 0xab, 0x1d, 0xc9, 0x1f, 0x64, 0x89, 0x0d, 0xbb, 0xdf, 0x94, 0x64, 0xe9, 0x4f,
- 0x12, 0x3b, 0xa2, 0x7b, 0x43, 0x77, 0xa7, 0xe3, 0xc7, 0x6f, 0x57, 0xb4, 0x84, 0xe3, 0x2f, 0x3b,
- 0x5e, 0xa7, 0x3d, 0xc8, 0xa1, 0x76, 0xac, 0xa9, 0x15, 0xc9, 0xa0, 0x09, 0xb4, 0xa9, 0xa6, 0xa7,
- 0xdb, 0xd3, 0x48, 0x18, 0xff, 0xc8, 0x14, 0x2e, 0x5b, 0xab, 0x4c, 0x62, 0xa4, 0x2e, 0x60, 0xd3,
- 0xc6, 0x5c, 0xc0, 0x6d, 0xa6, 0x74, 0xba, 0x3d, 0x72, 0x46, 0x8d, 0xb0, 0xd4, 0x3d, 0x77, 0x5c,
- 0x43, 0x28, 0xb5, 0xbd, 0xf8, 0xca, 0x02, 0xba, 0x3c, 0x24, 0x61, 0xdb, 0xc4, 0xba, 0xb1, 0x28,
- 0x0f, 0xb4, 0x2a, 0x0e, 0x1a, 0xcb, 0x09, 0xf0, 0xee, 0x82, 0x96, 0x66, 0xf4, 0xf0, 0x38, 0xb4,
- 0x8a, 0xc0, 0x5f, 0xde, 0x44, 0x75, 0xb1, 0x77, 0xa0, 0xe0, 0x7a, 0x0d, 0xe4, 0x77, 0xfe, 0xc0,
- 0x7f, 0xbd, 0x1d, 0x85, 0x90, 0x60, 0x26, 0xfc, 0x02, 0x69, 0x7c, 0x80, 0x92, 0xfc, 0x51, 0xbd,
- 0xfa, 0xc9, 0x68, 0x55, 0xce, 0xde, 0x9e, 0x7b, 0x4c, 0x0b, 0x90, 0xeb, 0x82, 0x7b, 0x97, 0xc9,
- 0xb6, 0x55, 0xf7, 0xe6, 0x2c, 0xdf, 0x95, 0x31, 0x9e, 0xad, 0x67, 0x56, 0xb2, 0x31, 0x1e, 0x55,
- 0x33, 0x21, 0x82, 0x36, 0x72, 0x61, 0x2d, 0xb6, 0xd0, 0xcf, 0x8b, 0x3d, 0xa2, 0xb6, 0xd8, 0x21,
- 0x2e, 0xae, 0x0a, 0x43, 0x2b, 0xdd, 0x83, 0xa5, 0xf9, 0x22, 0x4a, 0xef, 0xd2, 0xa5, 0xcf, 0xae,
- 0xab, 0xda, 0x7f, 0x93, 0x75, 0x63, 0x3b, 0x22, 0xb7, 0x40, 0xa6, 0x84, 0xc2, 0x22, 0x09, 0xda,
- 0xe7, 0x46, 0xe0, 0x20, 0x97, 0x62, 0x30, 0x68, 0x65, 0xe6, 0x51, 0x39, 0xf2, 0x68, 0x80, 0x46,
- 0x62, 0x32, 0x95, 0xf0, 0xc9, 0xdc, 0x88, 0xef, 0x2b, 0x84, 0xbd, 0x52, 0xe2, 0xef, 0x46, 0x32,
- 0xdd, 0x9b, 0x33, 0xca, 0x25, 0xd9, 0xaf, 0x4e, 0x37, 0xff, 0x10, 0x5e, 0x12, 0x4e, 0xae, 0x9b,
- 0x58, 0xef, 0x46, 0x1a, 0x7b, 0x67, 0x17, 0xc9, 0x79, 0x9d, 0xfc, 0x35, 0x02, 0xc9, 0x68, 0xef,
- 0x14, 0x73, 0xd9, 0xa9, 0x99, 0x66, 0x1c, 0x83, 0xab, 0x3b, 0x0b, 0x88, 0x32, 0x83, 0xe1, 0x73,
- 0x91, 0x07, 0xac, 0x79, 0xc7, 0xd8, 0xa4, 0x04, 0xe5, 0x59, 0xe7, 0xe3, 0x22, 0x04, 0x27, 0x07,
- 0x8c, 0x88, 0x24, 0x0c, 0x9e, 0x64, 0x0a, 0x17, 0xcc, 0xb4, 0x26, 0x31, 0x52, 0x17, 0x30, 0x88,
- 0x09, 0xfc, 0x51, 0xdc, 0xc0, 0xda, 0xb2, 0x90, 0x82, 0xd6, 0xca, 0x5a, 0x42, 0x90, 0xf6, 0xfc,
- 0x45, 0x60, 0xce, 0x6f, 0x22, 0xdb, 0xb9, 0xda, 0x50, 0x70, 0x3d, 0xe7, 0x72, 0xda, 0x7f, 0x60,
- 0xc0, 0x14, 0xbb, 0xbf, 0x7c, 0x65, 0x01, 0x5d, 0x1e, 0x12, 0xd1, 0x8c, 0x62, 0x5d, 0xb9, 0x14,
- 0xf8, 0xf1, 0x41, 0x1b, 0x39, 0xd1, 0xf7, 0x5b, 0x68, 0x86, 0xa4, 0xff, 0x51, 0x5b, 0x6c, 0xf1,
- 0x7d, 0x85, 0x34, 0xcb, 0x67, 0x6f, 0x4f, 0xdc, 0x26, 0xe4, 0x48, 0x94, 0x41, 0xdc, 0xaa, 0x85,
- 0x31, 0x19, 0xab, 0x78, 0x85, 0x6e, 0x44, 0x96, 0xf4, 0x42, 0xbf, 0x29, 0x71, 0x96, 0x23, 0x19,
- 0xb4, 0x6d, 0xde, 0xa8, 0xdb, 0xd0, 0xfc, 0x11, 0xba, 0x20, 0x53, 0x42, 0x61, 0x11, 0xe5, 0x6d,
- 0xa9, 0xe2, 0x56, 0xdd, 0x82, 0x6c, 0x52, 0x02, 0x93, 0xcd, 0x92, 0x90, 0x11, 0x02, 0xf2, 0xe2,
- 0x2c, 0x96, 0x23, 0x0d, 0xdc, 0xd2, 0xea, 0x85, 0xdd, 0xaf, 0x7e, 0xfb, 0x01, 0x85, 0x34, 0x96,
- 0x60, 0x0a, 0xbc, 0xbe, 0x3e, 0xd3, 0xe1, 0xcf, 0x0f, 0x09, 0x89, 0x46, 0x31, 0xcf, 0xbd, 0x0a,
- 0xe5, 0x7e, 0xc9, 0x6e, 0x60, 0x6d, 0x59, 0x48, 0x41, 0x6b, 0x65, 0x2d, 0x21, 0x48, 0x7b, 0x7e,
- 0x5a, 0xd7, 0x6f, 0x54, 0x8c, 0x68, 0x7e, 0xe9, 0x5d, 0x10, 0xc8, 0x21, 0xd1, 0xe9, 0x93, 0xd7,
- 0xdf, 0xa3, 0x1a, 0x84, 0xd2, 0xd6, 0xc6, 0x6e, 0x13, 0x72, 0x24, 0x4a, 0xc1, 0x6e, 0x55, 0xa3,
- 0x93, 0x3f, 0x85, 0x37, 0x30, 0xd7, 0xcd, 0x24, 0xc1, 0xd4, 0xd3, 0xf7, 0xf1, 0x24, 0xdc, 0x3f,
- 0x16, 0x4b, 0xf0, 0xe7, 0x6e, 0x69, 0x75, 0xa3, 0x8f, 0xb6, 0x3f, 0x9c, 0xe1, 0xa3, 0x1a, 0x4b,
- 0x0b, 0xc4, 0x78, 0x92, 0x37, 0xd5, 0xdb, 0xb0, 0xa6, 0x5b, 0xfe, 0x4e, 0x91, 0xb0, 0x0d, 0xc4,
- 0x8e, 0xb0, 0x0d, 0x42, 0x69, 0x6b, 0x63, 0x37, 0xe8, 0x39, 0x12, 0x25, 0x81, 0x37, 0xcb, 0xb0,
- 0xc2, 0x2c, 0x92, 0xf1, 0x8b, 0x6a, 0x68, 0x7d, 0x3a, 0x9f, 0xe5, 0x98, 0xb1, 0x7d, 0x42, 0x2c,
- 0x47, 0x58, 0xe7, 0x21, 0xd5, 0xd4, 0xd0, 0xfa, 0x74, 0xfd, 0x09, 0xf3, 0xa1, 0xfa, 0x84, 0x58,
- 0xeb, 0xd6, 0x16, 0x47, 0xe0, 0x40, 0x85, 0xa8, 0xbd, 0x4e, 0xe9, 0x41, 0x5d, 0xa8, 0xdf, 0xd6,
- 0x6e, 0xa2, 0x63, 0x97, 0xbe, 0xfe, 0x3d, 0x2f, 0xf3, 0x2c, 0x05, 0x2a, 0x4d, 0x2f, 0x19, 0xa2,
- 0x22, 0x3e, 0xfc, 0x24, 0x5c, 0xff, 0x36, 0x65, 0x21, 0x8a, 0xf2, 0x97, 0x7d, 0x65, 0x90, 0x3e,
- 0xa7, 0x4a, 0x89, 0xf4, 0x02, 0x41, 0x8e, 0xe2, 0x6f, 0xe8, 0x1e, 0xfc, 0x6d, 0xe2, 0x56, 0x4a,
- 0xba, 0xc5, 0x01, 0x81, 0x5b, 0xfd, 0x20, 0xf1, 0x46, 0x05, 0xdf, 0x2e, 0x1d, 0xf1, 0x41, 0xc5,
- 0x3f, 0xb1, 0x74, 0x51, 0x05, 0x43, 0x98, 0x76, 0x08, 0x67, 0x33, 0x45, 0x0d, 0x76, 0x87, 0xb1,
- 0x73, 0x2d, 0xeb, 0xe2, 0xe7, 0x42, 0x93, 0x3c, 0xda, 0xc1, 0xc4, 0xf8, 0x3d, 0x3c, 0x0e, 0x2d,
- 0xf6, 0x59, 0x9e, 0x32, 0xb9, 0xfc, 0x2b, 0xbb, 0x94, 0xa3, 0x28, 0x93, 0x2d, 0xbb, 0xc8, 0x59,
- 0x49, 0xf0, 0x38, 0x08, 0x55, 0xf9, 0x0c, 0x1a, 0x88, 0xd8, 0x85, 0x9f, 0xdd, 0x1a, 0x20, 0xf0,
- 0xcc, 0x84, 0x4d, 0xd8, 0x0b, 0x47, 0xb4, 0x9d, 0xc6, 0xba, 0x69, 0xf4, 0xcd, 0x9d, 0xe6, 0x84,
- 0x80, 0x18, 0xd2, 0x6b, 0xe9, 0x46, 0xbf, 0xd7, 0x14, 0x1c, 0x9e, 0x49, 0xfd, 0xd7, 0x6f, 0x18,
- 0x05, 0x6c, 0xa7, 0xbb, 0xb7, 0xf8, 0x07, 0x50, 0x5a, 0x7e, 0x72, 0x22, 0xed, 0x50, 0xa9, 0x6c,
- 0x18, 0xe3, 0x2f, 0xce, 0xee, 0x44, 0xa9, 0x43, 0x73, 0x93, 0xb3, 0xf0, 0x9d, 0x43, 0xbe, 0xe3,
- 0x9d, 0x97, 0x5a, 0x1e, 0xb0, 0xfa, 0x11, 0xc4, 0x3d, 0xf1, 0x5f, 0x9b, 0x8d, 0xc4, 0x78, 0x97,
- 0xd1, 0x0b, 0xc5, 0xad, 0x52, 0xfb, 0x1a, 0x8e, 0xef, 0x57, 0xa8, 0x26, 0xbd, 0x8e, 0xf1, 0x0b,
- 0x54, 0x7f, 0xb0, 0x7d, 0x0c, 0x45, 0xa2, 0x09, 0xa1, 0x35, 0x44, 0x4d, 0xad, 0x09, 0x37, 0x7f,
- 0x6c, 0x9a, 0x4a, 0xd9, 0x49, 0xf1, 0x54, 0x0f, 0xd7, 0xa1, 0x31, 0x3e, 0x9e, 0x0f, 0xe2, 0x9a,
- 0xe9, 0xee, 0x3f, 0x09, 0x17, 0x4f, 0xec, 0x88, 0x99, 0xc3, 0xdd, 0x55, 0x8e, 0x88, 0x24, 0xee,
- 0xa5, 0x72, 0xa0, 0xba, 0xf5, 0x4e, 0xe7, 0xc2, 0x4b, 0x65, 0x2a, 0xe8, 0xbe, 0xc2, 0xad, 0x72,
- 0x20, 0x06, 0xd5, 0x6a, 0xab, 0xf0, 0x5f, 0x45, 0x05, 0x07, 0xc6, 0x83, 0xae, 0x45, 0x6b, 0x06,
- 0x3d, 0x89, 0x5d, 0x1f, 0xf2, 0x4c, 0xf1, 0x56, 0x2c, 0xea, 0x07, 0x51, 0xde, 0x56, 0x7c, 0x89,
- 0xb8, 0xfd, 0x28, 0xcf, 0xac, 0xf2, 0x49, 0xd1, 0x62, 0x88, 0xeb, 0x3a, 0xce, 0xd1, 0xba, 0xfd,
- 0xf4, 0x61, 0xb7, 0x7c, 0x4e, 0xf3, 0x42, 0x9b, 0xb0, 0x2e, 0x1c, 0x87, 0xfe, 0x9b, 0x33, 0x61,
- 0x71, 0x15, 0xc2, 0xac, 0x10, 0x4d, 0xfa, 0x1c, 0xfe, 0x4c, 0xf0, 0xec, 0xee, 0x1c, 0xf5, 0x15,
- 0xce, 0xbc, 0x64, 0x96, 0xfc, 0x48, 0xdd, 0xbd, 0xe2, 0x37, 0x5d, 0xe0, 0x1e, 0xbd, 0x1d, 0xbc,
- 0x4b, 0xc8, 0x11, 0x46, 0xa2, 0xf6, 0x65, 0x3a, 0xac, 0x55, 0xb1, 0x8b, 0x0e, 0x3a, 0xdb, 0xc8,
- 0x07, 0x54, 0x8e, 0xf5, 0x40, 0xf7, 0x6e, 0x70, 0x7e, 0xf3, 0x46, 0x36, 0x3e, 0x70, 0x52, 0x54,
- 0x82, 0x20, 0xfb, 0x25, 0x1e, 0x49, 0xd6, 0xf7, 0x30, 0x91, 0xaa, 0x5d, 0x2e, 0xf7, 0x94, 0x20,
- 0x9f, 0xaf, 0x73, 0x50, 0x47, 0xf5, 0x78, 0xe4, 0x19, 0x7c, 0x6b, 0x8f, 0x5e, 0xe4, 0x83, 0xaf,
- 0x1a, 0xdb, 0x06, 0x80, 0x19, 0x4b, 0xc0, 0x63, 0x57, 0x1e, 0x87, 0xe4, 0x4e, 0x63, 0x45, 0xdb,
- 0x56, 0x47, 0x99, 0x33, 0xfb, 0x4a, 0xcb, 0x29, 0x85, 0xb8, 0x70, 0x59, 0x7e, 0x29, 0xcc, 0x47,
- 0xd3, 0x33, 0xec, 0xe3, 0xa5, 0xf4, 0x73, 0xae, 0xcb, 0xda, 0x9c, 0x32, 0x6e, 0xae, 0x0a, 0x33,
- 0x26, 0x4e, 0xae, 0xb8, 0x71, 0xe1, 0xe4, 0x25, 0x69, 0x53, 0x9a, 0xbf, 0x18, 0x25, 0xa5, 0x4e,
- 0xa3, 0x3a, 0xdb, 0x68, 0x2f, 0x5f, 0x5c, 0xa2, 0x27, 0x31, 0x76, 0xd4, 0x08, 0xa2, 0x63, 0x3a,
- 0xef, 0xa6, 0x44, 0xdb, 0xcd, 0x5e, 0x57, 0xe8, 0xf5, 0x97, 0x81, 0x69, 0x38, 0xe8, 0xea, 0xa6,
- 0x6a, 0xd2, 0x31, 0x0b, 0x93, 0xe0, 0xef, 0x6f, 0xbb, 0xf5, 0x6d, 0x02, 0x28, 0x6f, 0x2c, 0xd2,
- 0x77, 0x5d, 0xb9, 0x7e, 0xca, 0x5c, 0x41, 0x7c, 0x92, 0x18, 0xac, 0xd0, 0x58, 0x7c, 0x3b, 0x5d,
- 0xf2, 0x29, 0xcc, 0xae, 0x94, 0xe2, 0xf9, 0xfb, 0xdc, 0x7a, 0x40, 0xbb, 0x48, 0xfb, 0xfd, 0x29,
- 0xbe, 0xb5, 0x53, 0x1d, 0x76, 0xe3, 0xf2, 0xb1, 0x0e, 0xdc, 0xb7, 0x06, 0x78, 0xb1, 0x74, 0xb5,
- 0x3b, 0xc1, 0x26, 0xcd, 0x28, 0x5d, 0x4a, 0x36, 0x40, 0xbe, 0x5b, 0x6d, 0x68, 0x36, 0xb2, 0xc1,
- 0x84, 0x68, 0x80, 0xf7, 0xc4, 0x58, 0x6d, 0x97, 0x5c, 0xc5, 0xf6, 0x61, 0x98, 0x97, 0x5a, 0x68,
- 0x01, 0x1c, 0xf5, 0x27, 0x9a, 0xe6, 0xd5, 0x10, 0x12, 0xa7, 0x1a, 0x0a, 0x88, 0x10, 0x9c, 0x1c,
- 0x4d, 0x80, 0x6a, 0x94, 0x78, 0xe7, 0xde, 0x5a, 0xc0, 0x01, 0xed, 0xb7, 0xb8, 0x5a, 0x15, 0x80,
- 0xc8, 0xf4, 0x1f, 0x44, 0x26, 0x59, 0x66, 0xdd, 0x8e, 0x63, 0x01, 0xdc, 0xa8, 0xdd, 0xd3, 0xf4,
- 0xd5, 0x7b, 0x97, 0x31, 0x7f, 0xe5, 0xc8, 0xce, 0xa7, 0x8e, 0xc0, 0x0e, 0xd8, 0xce, 0xc4, 0x7b,
- 0x50, 0x0f, 0xe2, 0xe1, 0x21, 0x5b, 0x70, 0x49, 0xe9, 0xec, 0x2c, 0x65, 0xc8, 0x49, 0x02, 0x0f,
- 0x1c, 0x93, 0x7d, 0x52, 0xc3, 0x5a, 0x7b, 0x03, 0x3b, 0x4a, 0xdb, 0xd8, 0xf8, 0x03, 0x8b, 0x93,
- 0x99, 0xe7, 0x08, 0x82, 0x9d, 0xe4, 0xc3, 0x84, 0x75, 0x28, 0x37, 0xb3, 0xe8, 0x84, 0x4d, 0xe7,
- 0xa1, 0x02, 0xf2, 0x26, 0xd8, 0x50, 0x35, 0x82, 0x03, 0xbc, 0x42, 0xc0, 0xdb, 0x82, 0x98, 0x02,
- 0x24, 0x76, 0x87, 0xf6, 0x86, 0xee, 0x8d, 0x05, 0x4d, 0xde, 0xae, 0xab, 0xcb, 0x05, 0x5e, 0x76,
- 0x68, 0xea, 0x18, 0x45, 0x64, 0xef, 0x86, 0x4f, 0x9f, 0x78, 0x59, 0x16, 0xfb, 0x4f, 0xd7, 0xea,
- 0xed, 0x9e, 0x6d, 0x95, 0x3a, 0x51, 0x3e, 0xc8, 0xd1, 0x1a, 0xb5, 0x7d, 0xeb, 0xc8, 0x11, 0x9e,
- 0xf0, 0x11, 0xe5, 0xe0, 0x63, 0xed, 0x90, 0xdb, 0xf8, 0xf7, 0x74, 0xaf, 0x9b, 0xdb, 0x06, 0x11,
- 0x75, 0x65, 0x90, 0x30, 0x3d, 0x53, 0x28, 0x5c, 0xb6, 0x95, 0x98, 0xc4, 0x8b, 0x5c, 0xc0, 0x65,
- 0x39, 0xf9, 0x0f, 0x83, 0xdf, 0x52, 0x23, 0x16, 0x64, 0x33, 0x6f, 0x79, 0xbb, 0x16, 0x49, 0xf9,
- 0xbc, 0x8d, 0x7a, 0x53, 0x81, 0xec, 0x9b, 0x91, 0x2a, 0x51, 0x83, 0x12, 0xab, 0x91, 0x8f, 0x8d,
- 0x03, 0x24, 0xdc, 0x69, 0x6d, 0xe9, 0xbc, 0x30, 0x36, 0x2a, 0x2e, 0x1e, 0x5b, 0x30, 0x67, 0x24,
- 0x86, 0x50, 0xa9, 0xb9, 0x33, 0x57, 0x04, 0xb7, 0x78, 0x48, 0xc2, 0x75, 0x4b, 0xb7, 0xa1, 0x50,
- 0xca, 0xcc, 0x36, 0x0a, 0xd1, 0x56, 0x0f, 0xfd, 0xaa, 0xee, 0x35, 0xc8, 0x7b, 0xfd, 0x28, 0xcc,
- 0x4f, 0xb8, 0x43, 0xda, 0x8f, 0xe8, 0xb7, 0x7a, 0xe4, 0x8c, 0xd9, 0xa3, 0x6b, 0x7a, 0xee, 0xb8,
- 0x52, 0x37, 0xcb, 0xaf, 0xd6, 0x54, 0x19, 0x69, 0xcd, 0x61, 0x18, 0x71, 0x1b, 0x69, 0xf9, 0x37,
- 0xd7, 0x43, 0xbe, 0x7f, 0x88, 0xea, 0xa1, 0xee, 0x83, 0x03, 0xf4, 0x1a, 0x0b, 0xee, 0x3f, 0x43,
- 0x9b, 0xdf, 0x21, 0xcc, 0x6a, 0xeb, 0xaa, 0xa4, 0x51, 0xa5, 0x03, 0xa7, 0x3b, 0xa4, 0xb6, 0xdf,
- 0x1e, 0xab, 0x54, 0x1c, 0x34, 0x55, 0x12, 0x23, 0x1f, 0xc7, 0xef, 0xcc, 0x2b, 0x23, 0x70, 0xab,
- },
- { /* 14 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x2d, 0x99, 0xe9, 0x95, 0x9f, 0xd4, 0x49, 0xe6, 0xd5, 0x76, 0xf2, 0x33, 0xc8, 0x20, 0x98,
- 0x40, 0x5a, 0xf1, 0x11, 0xe9, 0xfd, 0x6b, 0x92, 0x0f, 0x69, 0xec, 0x27, 0x66, 0x53, 0x40, 0xf3,
- 0x60, 0x77, 0x68, 0xf8, 0x7c, 0x62, 0xbf, 0xdb, 0xe9, 0xbc, 0x9a, 0xd5, 0x55, 0x9b, 0x60, 0x6b,
- 0x80, 0xb4, 0x21, 0x22, 0x11, 0x39, 0xd6, 0xe7, 0x1e, 0xd2, 0x1b, 0x4e, 0xcc, 0xa6, 0x80, 0x25,
- 0xa0, 0x99, 0xb8, 0xcb, 0x84, 0xa6, 0x02, 0xae, 0xf8, 0x07, 0x6d, 0xbc, 0xff, 0x6e, 0xa0, 0xbd,
- 0xc0, 0xee, 0xd0, 0x33, 0xf8, 0xc4, 0xbd, 0x75, 0x11, 0xbb, 0xf7, 0x69, 0xaa, 0xf5, 0xc0, 0xd6,
- 0xe0, 0xc3, 0x49, 0xda, 0x6d, 0x5b, 0x69, 0x3c, 0xf7, 0x6e, 0x81, 0x9b, 0x99, 0x3d, 0xe0, 0x4e,
- 0xc3, 0xab, 0x42, 0x44, 0x22, 0x72, 0x6f, 0x0d, 0x3c, 0x67, 0x36, 0x9c, 0x5b, 0x8f, 0xc3, 0x4a,
- 0xe3, 0x86, 0xdb, 0xad, 0xb7, 0xed, 0xbb, 0x44, 0xda, 0xb2, 0x40, 0x6e, 0x68, 0x47, 0xe3, 0xd2,
- 0x83, 0xf1, 0xb3, 0x55, 0xcb, 0x8f, 0x04, 0x9f, 0x33, 0x0e, 0xda, 0xbb, 0x3d, 0xdc, 0x83, 0xb9,
- 0xa3, 0xdc, 0x2a, 0xbc, 0x5e, 0x10, 0xd0, 0xd6, 0xd5, 0xdb, 0xac, 0x49, 0x0e, 0x14, 0xa3, 0x21,
- 0x43, 0x1f, 0x63, 0x66, 0x33, 0x4b, 0xb9, 0xea, 0x22, 0xb5, 0x2d, 0xd2, 0x97, 0x29, 0x43, 0x6f,
- 0x63, 0x32, 0xfa, 0x8f, 0xa6, 0xd4, 0x6d, 0xa3, 0xc4, 0x60, 0x5b, 0x20, 0xa4, 0xe1, 0x63, 0xf7,
- 0x03, 0x45, 0x92, 0x77, 0xda, 0xb6, 0xd2, 0x78, 0x2d, 0xdc, 0xc1, 0xf5, 0xf1, 0x7a, 0x03, 0x9c,
- 0x23, 0x68, 0x0b, 0x9e, 0x4f, 0x29, 0x06, 0x31, 0xcb, 0x09, 0xb7, 0x07, 0xc2, 0xb2, 0x23, 0x04,
- 0x45, 0x95, 0x84, 0x88, 0x44, 0xe4, 0xde, 0x1a, 0x78, 0xce, 0x6c, 0xfb, 0xb6, 0xdd, 0x45, 0x94,
- 0x65, 0xb8, 0x1d, 0x61, 0xd1, 0x7b, 0x0a, 0x53, 0x9e, 0x1b, 0x1a, 0x09, 0x85, 0x15, 0x65, 0x0c,
- 0x05, 0xcf, 0x75, 0x99, 0xad, 0x19, 0xb5, 0x88, 0x77, 0xa7, 0x80, 0xdc, 0xd0, 0x8e, 0x05, 0x67,
- 0x25, 0xe2, 0xec, 0x70, 0x38, 0x86, 0x61, 0xc1, 0x91, 0x72, 0xf6, 0x2e, 0xe3, 0x46, 0x25, 0xff,
- 0xc5, 0x21, 0xa5, 0xaa, 0x55, 0xdd, 0x08, 0xfd, 0x66, 0x1c, 0x77, 0xb5, 0x7a, 0x7b, 0xc5, 0xb1,
- 0xe5, 0x0c, 0x3c, 0x43, 0xc0, 0x42, 0xdc, 0xb4, 0x80, 0xc9, 0x01, 0x47, 0x49, 0xb3, 0xe5, 0x29,
- 0x85, 0x7b, 0x54, 0xbb, 0xbc, 0x20, 0x63, 0x6f, 0x69, 0x75, 0x9b, 0x92, 0x1c, 0x28, 0x85, 0x42,
- 0xa5, 0x56, 0xcd, 0x52, 0x29, 0xbf, 0xb7, 0x26, 0x8f, 0xa0, 0xed, 0x60, 0x2f, 0xe0, 0xa5, 0xda,
- 0x86, 0x3e, 0xc6, 0xcc, 0x66, 0x96, 0xb1, 0x17, 0x44, 0xa9, 0x5a, 0x67, 0xed, 0x52, 0x86, 0xde,
- 0xa6, 0x13, 0x5f, 0x25, 0xf3, 0x09, 0x65, 0x5e, 0xa2, 0x7c, 0x2c, 0x95, 0xde, 0x9a, 0xa6, 0x46,
- 0xc6, 0x64, 0x37, 0xdd, 0x8f, 0x6b, 0xda, 0x85, 0x4b, 0xc0, 0xb6, 0x40, 0x8b, 0x01, 0xc6, 0x2d,
- 0xe6, 0x49, 0xae, 0x34, 0x1a, 0xf4, 0x0e, 0xcc, 0xad, 0x15, 0xc0, 0xb2, 0xb8, 0xc9, 0xe6, 0xb5,
- 0x06, 0x8a, 0xe7, 0xee, 0x77, 0xaf, 0x67, 0xf0, 0x5a, 0x7b, 0x41, 0x29, 0x21, 0xf4, 0x06, 0xfb,
- 0x26, 0xa7, 0x7e, 0x07, 0xe2, 0x30, 0xb3, 0xb9, 0xbc, 0xae, 0x37, 0xdb, 0x12, 0x3c, 0x26, 0x63,
- 0x46, 0xd0, 0x16, 0xff, 0x9e, 0x52, 0x0c, 0x62, 0x55, 0x12, 0xad, 0x0e, 0x47, 0xa7, 0x46, 0x08,
- 0x66, 0xfd, 0x8f, 0x16, 0x0b, 0xcd, 0xd8, 0x2b, 0xb3, 0xc7, 0xdb, 0xfc, 0x74, 0x6f, 0x66, 0x90,
- 0x8a, 0xe9, 0xcb, 0xd3, 0x88, 0x0b, 0x7f, 0x34, 0xf0, 0x5f, 0xd8, 0x35, 0xaf, 0x79, 0x8a, 0xeb,
- 0xaa, 0xc4, 0x52, 0x3a, 0x1d, 0x94, 0xab, 0x7d, 0x16, 0x8a, 0xae, 0xc7, 0x9c, 0xb1, 0xaa, 0x73,
- 0xca, 0xb3, 0x3a, 0xc2, 0x61, 0xf6, 0x14, 0xa6, 0xff, 0x36, 0x34, 0x12, 0xc9, 0x2a, 0xca, 0x18,
- 0xea, 0x9e, 0xa3, 0x2b, 0xf4, 0x69, 0xc0, 0xef, 0x19, 0xe3, 0x42, 0xe0, 0xfa, 0xe2, 0xea, 0x80,
- 0x0a, 0x5d, 0xea, 0xf1, 0x99, 0x32, 0xa9, 0xd3, 0xee, 0x8d, 0xc3, 0x7b, 0x63, 0xdf, 0x0a, 0xce,
- 0x2a, 0x70, 0x73, 0x18, 0x0c, 0xad, 0x7d, 0x9a, 0x08, 0x58, 0xb5, 0x89, 0x50, 0x17, 0x2a, 0x56,
- 0x4a, 0x07, 0x1b, 0xe0, 0x70, 0xcf, 0xc2, 0x41, 0xe1, 0xe4, 0x2f, 0x5c, 0x05, 0x8c, 0x4a, 0x3d,
- 0x6a, 0x2a, 0x82, 0x09, 0xe5, 0x50, 0x16, 0x08, 0x07, 0x31, 0x59, 0xae, 0x36, 0x44, 0x6a, 0xa5,
- 0x49, 0x42, 0x89, 0x97, 0xaa, 0x79, 0x10, 0x39, 0xcc, 0x38, 0xee, 0xa9, 0xf4, 0xf6, 0x49, 0xa1,
- 0x69, 0x6f, 0x10, 0x7e, 0x3f, 0xe6, 0xc4, 0x70, 0x2a, 0xed, 0x98, 0x5b, 0xc7, 0x3e, 0x69, 0x39,
- 0x09, 0x18, 0x78, 0x86, 0x43, 0x84, 0x7b, 0xab, 0xc3, 0x51, 0x02, 0x8e, 0x92, 0xa5, 0x09, 0x52,
- 0x29, 0x35, 0xe1, 0x6f, 0xd6, 0x1b, 0xaf, 0xe2, 0x25, 0x84, 0x74, 0x7c, 0xa1, 0x6d, 0x29, 0xca,
- 0xc9, 0xf6, 0xa8, 0xb5, 0xbb, 0x40, 0xc6, 0xde, 0xd2, 0xea, 0xf5, 0xe7, 0x38, 0x50, 0xc9, 0x84,
- 0xe9, 0xdb, 0x31, 0x5c, 0x2e, 0xdf, 0x12, 0x97, 0x34, 0x3f, 0x83, 0x15, 0x0b, 0x98, 0xe9, 0x1c,
- 0x89, 0xac, 0x59, 0xa4, 0x52, 0xbd, 0xad, 0x4c, 0xdd, 0x83, 0x19, 0xc0, 0x5e, 0x03, 0x89, 0x77,
- 0xa9, 0x81, 0xc0, 0x4d, 0xc7, 0x22, 0x79, 0x05, 0x3b, 0x56, 0x6f, 0x32, 0x6d, 0xcb, 0xa9, 0xef,
- 0xcf, 0x7c, 0x4f, 0x5b, 0xcc, 0xef, 0xa1, 0x2e, 0x88, 0x91, 0xb4, 0xce, 0x19, 0xa4, 0xcf, 0x7f,
- 0xef, 0x51, 0xd6, 0xb2, 0x59, 0x70, 0x75, 0x67, 0x6e, 0x44, 0xc2, 0x3c, 0x2a, 0x6c, 0xef, 0xe7,
- 0x8f, 0x26, 0xbe, 0x4a, 0x25, 0x12, 0xca, 0xbc, 0x87, 0xf8, 0x58, 0xe9, 0x7f, 0xf7, 0x8f, 0x8c,
- 0xaf, 0x0b, 0x27, 0xa3, 0xb0, 0x8d, 0x1e, 0xf5, 0x61, 0x2d, 0x2e, 0x1b, 0x4c, 0x3f, 0xaf, 0x14,
- 0x4f, 0xc8, 0x6e, 0x79, 0xdd, 0xd6, 0x77, 0xc9, 0x96, 0x43, 0xaf, 0x80, 0xd5, 0x02, 0x4f, 0x5a,
- 0x6f, 0xe5, 0xf7, 0x90, 0x48, 0x49, 0xa3, 0x80, 0x70, 0x96, 0xd9, 0x72, 0xe6, 0xca, 0x6f, 0xc2,
- 0x0f, 0x92, 0x9f, 0x68, 0x34, 0x2b, 0x1c, 0x5b, 0x99, 0x2a, 0x43, 0xa7, 0xb3, 0x51, 0x0f, 0xa9,
- 0x2f, 0xbf, 0x06, 0x81, 0xa1, 0xb4, 0xc8, 0x12, 0x7f, 0xff, 0x35, 0x55, 0x80, 0x99, 0x2f, 0x31,
- 0x0c, 0xd7, 0x0d, 0x1f, 0xee, 0x9d, 0xce, 0x23, 0xb4, 0xf6, 0x82, 0x52, 0x42, 0x2b, 0x0c, 0x35,
- 0x2c, 0xfa, 0x94, 0xf6, 0x7b, 0x02, 0x1a, 0x6a, 0x52, 0x23, 0xf4, 0xa0, 0x71, 0xe3, 0x2c, 0xad,
- 0x4c, 0x8d, 0xfc, 0x0e, 0x07, 0x60, 0xa5, 0xb1, 0xbb, 0x9f, 0x6e, 0x75, 0x24, 0x78, 0x4c, 0xc6,
- 0x6c, 0xa0, 0x65, 0xe7, 0x92, 0xff, 0x71, 0xf8, 0x5d, 0x4a, 0x18, 0x87, 0x17, 0xb0, 0x6c, 0x5e,
- 0x8c, 0x63, 0x2c, 0x3d, 0xff, 0xa4, 0x18, 0xc4, 0xaa, 0x24, 0x99, 0x1c, 0x8e, 0x8d, 0x8c, 0x10,
- 0xac, 0x4e, 0xb5, 0xd4, 0x6a, 0x3b, 0xcc, 0x8d, 0x4c, 0xf1, 0xef, 0xee, 0xbd, 0x45, 0xac, 0x88,
- 0xcc, 0x39, 0xdd, 0x2c, 0x16, 0x59, 0x73, 0x56, 0xa5, 0x4d, 0x75, 0x3b, 0xe8, 0xde, 0xcc, 0xe3,
- 0xec, 0x14, 0x44, 0xc5, 0x83, 0xc6, 0xa7, 0x1f, 0x43, 0x98, 0x03, 0xc9, 0xdb, 0x16, 0xec, 0x7b,
- 0xd7, 0x11, 0x55, 0x65, 0xd3, 0x16, 0xfe, 0x68, 0x23, 0xbe, 0x73, 0x6a, 0x9d, 0xf2, 0xd7, 0x15,
- 0xf7, 0x3c, 0xcc, 0x8c, 0x46, 0x89, 0x2a, 0x21, 0xc5, 0x6b, 0x05, 0x98, 0xae, 0x3a, 0xf7, 0x8d,
- 0x97, 0x4b, 0xa4, 0x74, 0x3a, 0xeb, 0x95, 0xfa, 0x2c, 0xd7, 0x9f, 0x4d, 0xfb, 0xa1, 0x97, 0xe6,
- 0xb7, 0x66, 0x3d, 0x9d, 0xaf, 0x74, 0x41, 0xb3, 0xca, 0x02, 0xe9, 0xbf, 0xc8, 0x69, 0xb7, 0x7e,
- 0x57, 0xa5, 0x74, 0x47, 0xc2, 0x2f, 0x28, 0x8f, 0x3d, 0x6c, 0x68, 0x24, 0x51, 0x54, 0x57, 0x30,
- 0x77, 0x88, 0xed, 0xae, 0x57, 0xb0, 0xfc, 0xc6, 0xdb, 0xb9, 0x1e, 0xd6, 0x62, 0x9c, 0x77, 0xa8,
- 0x17, 0xff, 0x85, 0x56, 0x2b, 0xd2, 0x43, 0x1d, 0x32, 0x05, 0x84, 0x03, 0x37, 0x07, 0x17, 0xc3,
- 0x37, 0xd2, 0x1c, 0xbf, 0xbe, 0x4d, 0x97, 0x54, 0xd4, 0xd0, 0xf2, 0xf1, 0x04, 0xcf, 0x37, 0x5b,
- 0x14, 0xba, 0x17, 0x21, 0xf1, 0x64, 0x91, 0x65, 0x1f, 0xd9, 0x45, 0xf6, 0xc6, 0x7d, 0x14, 0x5f,
- 0x34, 0x97, 0x8e, 0xc8, 0x64, 0xfb, 0x45, 0x2c, 0xf9, 0x0c, 0x33, 0x04, 0xf5, 0xb5, 0x34, 0xc7,
- 0x54, 0xe0, 0xe6, 0x30, 0x18, 0x99, 0xfa, 0xf7, 0x10, 0xb0, 0xa9, 0xd1, 0xa0, 0x2e, 0x54, 0xac,
- 0x74, 0xcd, 0x7f, 0xd9, 0x8d, 0x06, 0x2e, 0xbe, 0xf6, 0x65, 0xdf, 0x23, 0x93, 0xe6, 0x74, 0x34,
- 0x94, 0x0e, 0x36, 0x03, 0xe0, 0x5d, 0x47, 0x82, 0x01, 0x0b, 0x5e, 0xb8, 0x0a, 0xdb, 0x94, 0x7a,
- 0xb4, 0x23, 0xaf, 0xea, 0x75, 0xc2, 0x93, 0xcb, 0xe7, 0xde, 0x28, 0x4a, 0x39, 0x13, 0xb4, 0xe2,
- 0xd4, 0x54, 0xc7, 0x12, 0x09, 0xa0, 0x2c, 0x10, 0x0e, 0x62, 0xb2, 0x9f, 0x6c, 0x88, 0xd4, 0x89,
- 0xf4, 0x79, 0x5e, 0xfb, 0x9c, 0x3f, 0xf8, 0x59, 0xe8, 0xb7, 0xc4, 0x6d, 0x5f, 0x40, 0xf4, 0x11,
- 0x92, 0x84, 0xd1, 0xed, 0x97, 0xf2, 0x20, 0x72, 0x5b, 0x70, 0x1f, 0x91, 0x2b, 0x2f, 0x92, 0x81,
- 0xb2, 0xa9, 0x48, 0x04, 0x02, 0x6d, 0xf4, 0x3b, 0xbd, 0xa5, 0x69, 0x63, 0x18, 0xe7, 0xb2, 0x19,
- 0xd2, 0xde, 0x20, 0xfc, 0x7e, 0x0f, 0x4b, 0xe0, 0x54, 0x19, 0xf3, 0xb6, 0x4d, 0x7c, 0xd2, 0x72,
- 0xf2, 0xf3, 0xb9, 0x15, 0xeb, 0x90, 0x9f, 0xa9, 0xb2, 0xcc, 0x85, 0x44, 0x7e, 0xb4, 0xf2, 0xea,
- 0x12, 0x30, 0xf0, 0xcf, 0x86, 0xcb, 0xf6, 0x95, 0x45, 0xa2, 0x04, 0xdf, 0xe7, 0x89, 0x12, 0xa4,
- 0x32, 0x1d, 0x69, 0x26, 0x13, 0x54, 0x22, 0xdc, 0xa3, 0x77, 0x72, 0x2d, 0xd4, 0x41, 0x32, 0x3c,
- 0x52, 0x6a, 0x01, 0xde, 0x6f, 0x36, 0x9d, 0x07, 0x4a, 0xcb, 0xe8, 0xf8, 0x81, 0xda, 0x52, 0x57,
- 0x72, 0x47, 0x98, 0x37, 0xfa, 0xa9, 0x49, 0x4e, 0xac, 0x1e, 0x9e, 0x0a, 0xb2, 0x12, 0x72, 0xcf,
- 0x51, 0x2f, 0x93, 0xa9, 0xb5, 0x80, 0x4f, 0x7f, 0x67, 0x17, 0x29, 0x0d, 0x70, 0xa0, 0x51, 0xcb,
- 0x71, 0x02, 0x0a, 0x40, 0x20, 0x1f, 0x9b, 0x36, 0x81, 0xc2, 0x5f, 0xff, 0x43, 0x68, 0x71, 0x53,
- 0x11, 0x75, 0x62, 0xb8, 0x5c, 0x7d, 0x24, 0xed, 0x68, 0x7e, 0xc5, 0x2a, 0x16, 0xf3, 0x11, 0x38,
- 0x31, 0x58, 0xfb, 0x51, 0xc9, 0xe2, 0xf0, 0xa4, 0x8e, 0xab, 0xb3, 0xd8, 0x25, 0x3b, 0x31, 0xa0,
- 0xd1, 0x9b, 0xb2, 0x8b, 0xa4, 0xb9, 0x99, 0x98, 0x79, 0xc5, 0x32, 0x43, 0xbc, 0x06, 0xd1, 0xee,
- 0xf1, 0xb6, 0x2b, 0x62, 0x31, 0x26, 0x4d, 0xd1, 0x9f, 0x10, 0x44, 0xb1, 0x8f, 0xce, 0xf1, 0x76,
- 0x91, 0xc1, 0x43, 0x9a, 0x4d, 0x44, 0xf2, 0x0a, 0x76, 0xac, 0xde, 0x64, 0xda, 0x55, 0x91, 0x1d,
- 0xb1, 0xec, 0xda, 0x73, 0xd8, 0xdb, 0x26, 0x43, 0x90, 0x79, 0xa8, 0x96, 0xe9, 0x9d, 0xb1, 0x85,
- 0x5d, 0xf8, 0x9e, 0xb6, 0x5b, 0x1d, 0x81, 0x5c, 0xd3, 0xe1, 0xab, 0x5f, 0x32, 0x8b, 0x5d, 0xfe,
- 0x7d, 0xd5, 0x07, 0x5f, 0xce, 0x82, 0x55, 0x15, 0x35, 0x34, 0xdd, 0xad, 0x01, 0x43, 0x7d, 0x66,
- 0x1d, 0xa2, 0x6f, 0xa7, 0xb2, 0xe0, 0xea, 0xce, 0xdc, 0x88, 0x47, 0x78, 0x54, 0xd8, 0x1d, 0x0d,
- 0x3d, 0x8f, 0xf6, 0x4e, 0x27, 0x7f, 0x3e, 0x87, 0x3a, 0x5d, 0x31, 0x8a, 0x67, 0x10, 0x3d, 0x95,
- 0xdd, 0x4c, 0xbf, 0x94, 0x4a, 0x24, 0x57, 0xbb, 0xcd, 0x33, 0xb0, 0x11, 0xfe, 0x2d, 0xdd, 0xdb,
- 0xfd, 0x61, 0x26, 0x7d, 0xdf, 0xbb, 0x83, 0xf2, 0x2b, 0xe6, 0xc6, 0xe3, 0xcd, 0xe5, 0xfd, 0x43,
- 0x9d, 0x16, 0x4e, 0x85, 0xa3, 0xd9, 0x3c, 0x29, 0xc2, 0x5a, 0x5c, 0x36, 0x98, 0x7e, 0x9d, 0x28,
- 0xbd, 0x3b, 0xd7, 0x6c, 0x36, 0x46, 0xe8, 0x60, 0x24, 0x8f, 0x2a, 0xc4, 0xab, 0xb6, 0xbd, 0xb0,
- 0x9e, 0x53, 0xdc, 0xf2, 0x79, 0x6f, 0xee, 0x51, 0xef, 0x86, 0x9d, 0xc3, 0x69, 0x04, 0x9e, 0xb4,
- 0xbe, 0x7e, 0x45, 0x1b, 0xec, 0xf0, 0x3a, 0x18, 0x09, 0x53, 0xeb, 0x31, 0x5a, 0xcc, 0xbe, 0x2c,
- 0xde, 0x09, 0x2d, 0xe3, 0x90, 0x92, 0x85, 0xc3, 0xe0, 0xef, 0x71, 0xe4, 0x0f, 0x57, 0xde, 0x47,
- 0xfe, 0x24, 0xb4, 0x0a, 0x05, 0x0d, 0x51, 0x8a, 0x06, 0x3a, 0x07, 0x16, 0x3c, 0x9f, 0xfe, 0xdf,
- 0x1e, 0xe7, 0xfd, 0xd0, 0x68, 0x56, 0x38, 0xb6, 0xf1, 0x54, 0x86, 0x8d, 0xa5, 0xa2, 0x1e, 0x91,
- 0x3e, 0xca, 0x64, 0x39, 0xfd, 0xc9, 0xec, 0xff, 0x17, 0x81, 0xf0, 0x7f, 0x96, 0x6a, 0x3e, 0x09,
- 0x5e, 0xbd, 0x0c, 0xc1, 0x81, 0xab, 0x53, 0x24, 0xfe, 0x3d, 0x6a, 0xaa, 0xc3, 0xf1, 0x5e, 0x62,
- 0x7e, 0x90, 0x95, 0x28, 0x14, 0x34, 0x87, 0x6d, 0x18, 0xe8, 0x1c, 0x58, 0xf0, 0x39, 0x7e, 0xfa,
- 0x18, 0x6d, 0x1a, 0x3e, 0x1f, 0xf9, 0x5f, 0x46, 0xab, 0x2f, 0xc7, 0xa4, 0x84, 0x56, 0x18, 0x6a,
- 0x38, 0x40, 0x83, 0xd7, 0x8a, 0x66, 0x8b, 0x0f, 0x4d, 0xfa, 0xb1, 0x56, 0xb7, 0x9e, 0x38, 0xf2,
- 0x58, 0x37, 0xeb, 0x2f, 0xf6, 0x04, 0x34, 0xd4, 0xa4, 0x46, 0x2b, 0x83, 0xe2, 0x05, 0x58, 0x99,
- 0x78, 0x1a, 0x72, 0xc6, 0x63, 0x9b, 0xe0, 0x9d, 0x42, 0x93, 0x5d, 0x71, 0xd1, 0xcd, 0x78, 0x01,
- 0x98, 0xd9, 0x3b, 0x1c, 0x0e, 0xc0, 0x89, 0xa1, 0xb5, 0xfd, 0xdc, 0xea, 0x48, 0xf0, 0x98, 0x4f,
- 0xb8, 0xf4, 0xa2, 0xf5, 0x9b, 0x5f, 0x5d, 0xe8, 0x53, 0x28, 0xaa, 0x18, 0x7b, 0x38, 0xb8, 0xd7,
- 0xd8, 0x83, 0xca, 0x0d, 0xe7, 0x3d, 0xe2, 0x33, 0xba, 0x94, 0x30, 0xcd, 0x2e, 0xa3, 0xd8, 0xbc,
- 0xf8, 0xae, 0x53, 0xe4, 0x72, 0xa2, 0x36, 0x7a, 0x5c, 0x41, 0x46, 0x3f, 0x1d, 0x6b, 0xf8, 0x24,
- 0xdb, 0xc6, 0x58, 0x7a, 0x3d, 0x8b, 0x30, 0x4b, 0x97, 0x48, 0xf1, 0x38, 0xdf, 0xd9, 0xdb, 0x20,
- 0xfb, 0xeb, 0xc1, 0x93, 0xa8, 0x14, 0xe4, 0x02, 0x71, 0x9d, 0x87, 0xca, 0xec, 0x11, 0xfb, 0xb8,
- 0x9b, 0x9c, 0xa9, 0x6b, 0xd4, 0x76, 0x5b, 0xd9, 0x98, 0x21, 0x1d, 0x1f, 0xb9, 0x8a, 0x9b, 0xd3,
- 0xbb, 0xb1, 0x30, 0x82, 0x41, 0xe9, 0x8f, 0x90, 0x7e, 0xf4, 0x6b, 0xed, 0x8a, 0x42, 0xbb, 0x4b,
- 0x5b, 0x72, 0x79, 0x58, 0x2c, 0xb2, 0xe6, 0xac, 0x89, 0x9a, 0xea, 0x76, 0x13, 0x7f, 0x5b, 0x05,
- 0x7b, 0x5f, 0xe0, 0xb1, 0xb9, 0x2d, 0x32, 0xe5, 0x6f, 0x4f, 0x9c, 0x84, 0x20, 0xb7, 0x7b, 0x9d,
- 0x1b, 0x28, 0x88, 0x49, 0xc5, 0x4f, 0x8d, 0x3e, 0x86, 0xf3, 0x06, 0x51, 0x75, 0x2c, 0x1b, 0xf6,
- 0x3b, 0x05, 0x11, 0xa0, 0x50, 0xd0, 0x59, 0x77, 0x60, 0x26, 0x70, 0xa3, 0x46, 0xe4, 0x3b, 0x6e,
- 0x6d, 0x22, 0xaa, 0xca, 0x65, 0x2c, 0x3f, 0xd0, 0x46, 0xbf, 0xe6, 0xd4, 0xf9, 0x27, 0x6d, 0x2a,
- 0x4d, 0x0f, 0x33, 0x23, 0xf0, 0xb3, 0xeb, 0x99, 0xa0, 0x6a, 0x90, 0x26, 0xca, 0xef, 0x4d, 0xb2,
- 0x2d, 0x78, 0x5b, 0xdb, 0x8c, 0xd1, 0x54, 0x42, 0x49, 0xd6, 0x0a, 0xf3, 0x9f, 0x74, 0x2d, 0xd9,
- 0x0d, 0x55, 0xc2, 0x32, 0x19, 0x4e, 0x80, 0x0b, 0xaf, 0x03, 0x7c, 0x01, 0xac, 0xbc, 0x0d, 0x41,
- 0xed, 0x96, 0x8b, 0xe8, 0x74, 0x15, 0xe9, 0x37, 0x58, 0x6d, 0xfd, 0x9a, 0x35, 0x81, 0xed, 0x0f,
- 0xcd, 0xbb, 0x12, 0x01, 0xe1, 0x8a, 0x3d, 0x7e, 0xbe, 0xb8, 0x8b, 0x68, 0x06, 0x49, 0xcd, 0x97,
- 0xad, 0xcc, 0x7a, 0xf9, 0x9d, 0xe8, 0x82, 0xa5, 0x57, 0x04, 0x11, 0xbd, 0x53, 0xd2, 0xad, 0xfc,
- 0x8d, 0xe1, 0xe3, 0x10, 0x08, 0x77, 0x56, 0xec, 0xb1, 0xd1, 0x67, 0x4f, 0x60, 0x1a, 0x8d, 0x64,
- 0xae, 0x89, 0xe8, 0x8e, 0x47, 0x5e, 0x50, 0xdd, 0x7a, 0xd8, 0xd0, 0x48, 0xa2, 0xa8, 0xae, 0x60,
- 0x8e, 0xa4, 0x71, 0x67, 0xd2, 0xc1, 0x84, 0x94, 0x9c, 0x0d, 0xa6, 0xba, 0x91, 0x60, 0x8e, 0xf8,
- 0xee, 0xd3, 0x19, 0x9f, 0xae, 0xa3, 0x3b, 0x4f, 0x75, 0xb1, 0x3c, 0x6f, 0xc4, 0xfb, 0xee, 0x93,
- 0xce, 0xfe, 0x80, 0x76, 0x3b, 0x3c, 0xef, 0x06, 0x93, 0x64, 0x4a, 0x9d, 0xf7, 0x33, 0xce, 0x0b,
- 0x2e, 0x3d, 0xc9, 0xac, 0x56, 0x67, 0x86, 0x3a, 0x64, 0x0a, 0xcb, 0x06, 0x6e, 0x0e, 0x2e, 0x45,
- 0x0e, 0x10, 0x50, 0x45, 0xc3, 0xf8, 0x52, 0x73, 0x82, 0xdf, 0xbd, 0xf4, 0x5d, 0xc6, 0x0e, 0xdd,
- 0x6e, 0x67, 0x38, 0xbd, 0xbf, 0x9a, 0xed, 0xa8, 0x6b, 0x63, 0x27, 0x21, 0x08, 0x5d, 0x6e, 0xb6,
- 0x4e, 0x4a, 0xa1, 0x54, 0x2a, 0x05, 0x39, 0xe1, 0x8d, 0xb6, 0x51, 0xd3, 0x3b, 0x95, 0x4e, 0x2e,
- 0x28, 0xb7, 0x2e, 0x42, 0x21, 0xc8, 0xe1, 0xca, 0x3e, 0x71, 0x8a, 0x2f, 0x4f, 0xfa, 0x28, 0xbe,
- 0x08, 0x9a, 0xb7, 0xab, 0xb4, 0x57, 0x35, 0x83, 0xd8, 0xa4, 0xfc, 0xdd, 0x7c, 0x32, 0x08, 0x26,
- 0x68, 0xed, 0xdf, 0x53, 0xc8, 0x35, 0x8a, 0x58, 0x31, 0x18, 0x66, 0x08, 0x29, 0xa9, 0x68, 0x4d,
- 0x48, 0xc0, 0x46, 0xba, 0x5d, 0xaa, 0x5e, 0x11, 0xd7, 0xcd, 0x10, 0xfa, 0x1a, 0x61, 0x48, 0xd5,
- 0xa8, 0x03, 0x0f, 0x60, 0x30, 0xf1, 0x37, 0x2d, 0x20, 0xa3, 0x91, 0x61, 0x83, 0x5c, 0xa8, 0x9b,
- 0x88, 0x2e, 0x96, 0x89, 0xa5, 0x6e, 0xe3, 0x64, 0xc6, 0x76, 0xe7, 0x93, 0xb0, 0x94, 0x88, 0x03,
- 0xe8, 0x59, 0xfe, 0x71, 0xd9, 0x0c, 0x5c, 0xbf, 0x2f, 0xca, 0x7d, 0x46, 0xe5, 0x0f, 0xe8, 0x68,
- 0xc8, 0x74, 0x67, 0x98, 0x4c, 0x93, 0x88, 0xf6, 0xc9, 0x1f, 0x0b, 0xb4, 0xd6, 0xc7, 0xc8, 0xf0,
- 0xeb, 0x1c, 0x6c, 0x06, 0x03, 0xba, 0x8e, 0xc7, 0x02, 0x16, 0xbc, 0xb3, 0x14, 0x75, 0xeb, 0xf4,
- 0xcb, 0x31, 0xf5, 0xef, 0x96, 0x25, 0x5a, 0x8e, 0xe4, 0xc3, 0xca, 0x41, 0x27, 0xbd, 0xcb, 0x6c,
- 0xab, 0x46, 0x9d, 0x17, 0xea, 0x47, 0xe5, 0x55, 0x0d, 0x7f, 0x50, 0x94, 0x72, 0x26, 0xab, 0x07,
- 0x8b, 0x6b, 0x04, 0xfe, 0x7f, 0xd8, 0x31, 0x1c, 0xeb, 0xaa, 0x26, 0x66, 0x41, 0xee, 0x8b, 0x9f,
- 0x6b, 0xa8, 0x4d, 0x24, 0x12, 0x83, 0x58, 0x20, 0x1c, 0xc4, 0xa7, 0xfd, 0xd8, 0xd3, 0x6b, 0xd1,
- 0x4b, 0x85, 0xd4, 0xcd, 0x87, 0x1c, 0x8c, 0x69, 0xfa, 0x11, 0xd1, 0x0f, 0xeb, 0x1b, 0x4b, 0x49,
- 0x2b, 0xf2, 0xbc, 0x35, 0xfb, 0x7e, 0x33, 0xb2, 0x13, 0xad, 0x4b, 0xda, 0xbe, 0x80, 0x2b, 0x22,
- 0x0b, 0xdf, 0x25, 0xdc, 0x6e, 0xe1, 0xe7, 0xfb, 0xf5, 0x78, 0x3d, 0x28, 0x8d, 0x48, 0x0b, 0xba,
- 0xe7, 0xcb, 0x61, 0x19, 0xed, 0x27, 0x40, 0xe4, 0xb6, 0xe0, 0x3e, 0xe1, 0x56, 0x5e, 0xe7, 0xc1,
- 0xc7, 0xe6, 0xf8, 0xf0, 0x78, 0xb8, 0x94, 0xad, 0x50, 0x35, 0x48, 0x13, 0x65, 0x96, 0xc7, 0x59,
- 0xa7, 0x91, 0x90, 0x08, 0x04, 0xda, 0x2b, 0x76, 0xb9, 0x89, 0xd2, 0xc6, 0x30, 0x0d, 0xa7, 0x32,
- 0x87, 0xbc, 0x09, 0xe1, 0x91, 0x45, 0xff, 0x3f, 0x5f, 0x5c, 0xa4, 0x34, 0x03, 0xc5, 0x87, 0xaa,
- 0x67, 0x7f, 0x40, 0x3b, 0xfc, 0x1e, 0x96, 0x03, 0xa8, 0x32, 0x25, 0xaf, 0x9a, 0xf8, 0x67, 0xe4,
- 0x47, 0x52, 0xd9, 0xd2, 0x69, 0x81, 0x42, 0x4a, 0x4e, 0xe7, 0x53, 0x5d, 0xa9, 0x30, 0x47, 0x7c,
- 0x27, 0x25, 0xb1, 0x2a, 0x15, 0xe3, 0xfd, 0x91, 0xa7, 0x5b, 0xc9, 0x88, 0xfc, 0xab, 0x27, 0x17,
- 0x07, 0x08, 0x28, 0xc3, 0x80, 0x7c, 0x29, 0xd8, 0x41, 0x8e, 0xbf, 0x7a, 0xcf, 0x63, 0x07, 0x8f,
- 0x24, 0x60, 0x23, 0x5d, 0xcf, 0x55, 0x2f, 0xe9, 0x8a, 0x87, 0x08, 0x7d, 0x0d, 0xd1, 0x24, 0x8b,
- 0x04, 0x4d, 0xba, 0xb4, 0x5a, 0xca, 0xfb, 0xa0, 0x6c, 0x52, 0x7e, 0x8f, 0x3e, 0x19, 0x04, 0x13,
- 0x64, 0x3a, 0xd2, 0x4c, 0x26, 0xa8, 0x44, 0x7b, 0x85, 0xee, 0xe4, 0x5a, 0x6b, 0x82, 0x64, 0x78,
- 0x44, 0x17, 0x4b, 0xa5, 0xb3, 0x37, 0x90, 0x32, 0x63, 0x3b, 0x92, 0xa8, 0x58, 0x4a, 0x44, 0xe0,
- 0xa4, 0xd4, 0x02, 0x7f, 0xde, 0x6c, 0xf9, 0x0e, 0x94, 0x55, 0x13, 0x33, 0xc1, 0x77, 0xa4, 0xae,
- 0x84, 0xf9, 0x9b, 0x96, 0x4b, 0xf3, 0x2d, 0x47, 0x72, 0x80, 0x65, 0xc1, 0xf2, 0xbf, 0x84, 0x36,
- 0xe4, 0x8e, 0xf3, 0x6e, 0x37, 0x91, 0x92, 0x9c, 0x9b, 0x3c, 0xff, 0x14, 0xa7, 0x24, 0xe4, 0x5d,
- 0xc4, 0xa3, 0x6a, 0x87, 0xa2, 0x0e, 0x46, 0xd5, 0x7d, 0xe9, 0x89, 0xe6, 0x94, 0xec, 0xc4, 0xc5,
- 0xa2, 0x5e, 0xe5, 0x91, 0xa9, 0xc3, 0x9e, 0xfe, 0xce, 0x2e, 0x52, 0x1a, 0xe0, 0x83, 0xa2, 0x55,
- 0x82, 0x73, 0x7c, 0x78, 0x3c, 0x5c, 0x4a, 0xb7, 0x28, 0xfb, 0x24, 0xe8, 0xd3, 0x4b, 0x82, 0xcd,
- 0xe2, 0x04, 0x14, 0x80, 0x40, 0x3e, 0xf5, 0x6c, 0xc1, 0x47, 0xbe, 0x3d, 0x86, 0xd0, 0xe2, 0xa6,
- 0xc2, 0x29, 0x8d, 0x69, 0xd5, 0xa1, 0x21, 0x25, 0x27, 0x92, 0xc8, 0xcf, 0xb5, 0x18, 0xc2, 0x3e,
- 0x22, 0xea, 0xc4, 0xb3, 0xb8, 0xfa, 0x48, 0x19, 0xd0, 0xfc, 0x49, 0x54, 0x2c, 0x25, 0x22, 0x70,
- 0x02, 0xc7, 0x5d, 0x5a, 0x2d, 0x65, 0x9c, 0x50, 0x36, 0x29, 0x3f, 0xa6, 0x1f, 0xed, 0x02, 0xe8,
- 0x62, 0xb0, 0x35, 0xa2, 0x51, 0x07, 0x23, 0x8b, 0xdf, 0x95, 0xa5, 0x73, 0x4a, 0x76, 0x62, 0x83,
- 0x42, 0x9d, 0xac, 0x4b, 0xc4, 0x98, 0xf7, 0xc2, 0x39, 0x40, 0xd3, 0x81, 0x79, 0xbe, 0x42, 0x1b,
- 0x61, 0xf5, 0xa7, 0xd5, 0x8b, 0xb1, 0xf1, 0xf3, 0xf2, 0x49, 0x64, 0x86, 0xbb, 0x0c, 0x61, 0x1f,
- 0x41, 0xd8, 0x3e, 0x3c, 0x1e, 0x2e, 0x25, 0xba, 0x14, 0x9c, 0x12, 0x74, 0x88, 0xc4, 0x41, 0x87,
- 0x21, 0xaf, 0x56, 0xc4, 0x62, 0x4c, 0x9a, 0x61, 0xfd, 0x20, 0x88, 0xa1, 0xdd, 0x5f, 0x21, 0xec,
- 0x01, 0x82, 0xcf, 0x2d, 0xf7, 0xd3, 0x4e, 0x28, 0x1b, 0xf5, 0xfe, 0x53, 0xee, 0x97, 0x01, 0x74,
- 0xe1, 0x41, 0x86, 0xf7, 0x9a, 0x88, 0x27, 0x14, 0xec, 0x9b, 0x7f, 0xc8, 0x77, 0xaa, 0xe1, 0x3a,
- 0xc1, 0x6c, 0x1f, 0x1e, 0x0f, 0x17, 0xf3, 0x5d, 0x0a, 0x4e, 0x09, 0x3a, 0x44, 0x62, 0xc1, 0xa2,
- 0xa1, 0x1b, 0x77, 0xe6, 0x73, 0x75, 0x4c, 0x86, 0xe3, 0xf2, 0x93, 0xef, 0x11, 0xf9, 0xa1, 0xc9,
- 0x81, 0x36, 0xee, 0x0f, 0xe6, 0xea, 0x98, 0xcf, 0x05, 0x27, 0xe5, 0x1d, 0x22, 0x31, 0x81, 0x51,
- 0xba, 0x33, 0xff, 0xaf, 0xb6, 0x3a, 0xc1, 0xb8, 0x65, 0x01, 0x95, 0xbe, 0x64, 0xd5, 0xba, 0x3f,
- 0x9a, 0x1e, 0x66, 0x46, 0x23, 0xa5, 0x15, 0xf1, 0x83, 0xd4, 0xe3, 0x4c, 0x57, 0x1d, 0x9a, 0xa7,
- 0xfa, 0x69, 0x0e, 0xbe, 0x5f, 0xc7, 0xaa, 0x2a, 0x6a, 0x68, 0x79, 0x99, 0x02, 0x86, 0xfa, 0xcc,
- 0xda, 0x44, 0x97, 0x57, 0xca, 0x58, 0x7e, 0x63, 0x8c, 0xbd, 0x0f, 0x6b, 0x31, 0x4e, 0xda, 0x54,
- 0x3a, 0x87, 0xde, 0x8d, 0xa7, 0x03, 0x17, 0x5f, 0x7b, 0xd3, 0x8e, 0xf0, 0xa8, 0x73, 0x3a, 0x1a,
- 0x1a, 0xaa, 0x47, 0x64, 0x32, 0x9c, 0xc3, 0x16, 0x9d, 0x06, 0xf8, 0x02, 0x9b, 0xbb, 0x1a, 0x82,
- 0x7a, 0xdd, 0x2f, 0x9c, 0x4e, 0xfe, 0x7c, 0xcd, 0x74, 0xba, 0x62, 0xd7, 0xce, 0x20, 0x7a, 0xe9,
- 0x5a, 0xf0, 0xb6, 0x75, 0xdb, 0x61, 0xa8, 0x84, 0x92, 0x6f, 0x14, 0x25, 0xfd, 0xe8, 0x5a, 0x71,
- 0x79, 0x98, 0xbd, 0xeb, 0x94, 0x48, 0xae, 0xb5, 0x59, 0x66, 0xa3, 0x22, 0x3f, 0x5a, 0x79, 0x75,
- 0x59, 0xb5, 0x24, 0x02, 0x01, 0xd7, 0x7a, 0xfc, 0xbf, 0xb3, 0xd5, 0xd0, 0x0c, 0x92, 0x59, 0xed,
- 0x39, 0xc2, 0x4c, 0xfa, 0x7d, 0xb5, 0xc5, 0x27, 0x56, 0x0f, 0x4f, 0x05, 0x59, 0x09, 0x39, 0x86,
- 0x19, 0xef, 0xd5, 0x13, 0xe8, 0x2a, 0x11, 0x6e, 0xb0, 0xda, 0x39, 0xf7, 0x6a, 0xc1, 0x19, 0x1e,
- 0xf9, 0x2c, 0x9c, 0xc9, 0x85, 0x71, 0x78, 0x52, 0x47, 0xb4, 0xb8, 0x6c, 0xf3, 0xfc, 0xf9, 0x50,
- 0xd9, 0x01, 0x05, 0x20, 0x10, 0xee, 0xac, 0x1b, 0xa1, 0x61, 0xce, 0x9e, 0xc0, 0x34, 0xd9, 0xc8,
- 0xb9, 0x76, 0x6d, 0xd8, 0x6c, 0x8c, 0x13, 0xc0, 0x48, 0xdd, 0x54, 0x4b, 0x95, 0xaf, 0xb9, 0xa3,
- 0x99, 0x5b, 0xf4, 0x31, 0xf9, 0x13, 0xc7, 0x89, 0xae, 0x08, 0x22, 0xb9, 0xa6, 0x67, 0x99, 0x3b,
- 0xff, 0xa6, 0x7b, 0x27, 0xf2, 0xde, 0x1f, 0xa2, 0x1d, 0xcf, 0xf9, 0x45, 0xd2, 0x08, 0xff, 0xab,
- 0xdf, 0x8b, 0xe2, 0xce, 0x67, 0x41, 0xcb, 0xeb, 0xfb, 0x1a, 0x8f, 0xb7, 0xe1, 0xc0, 0xdf, 0x33,
- 0xbf, 0xfc, 0x8a, 0x36, 0x1b, 0x23, 0x74, 0x30, 0x12, 0xa6, 0x15, 0x62, 0xb4, 0x5b, 0xbf, 0x58,
- 0x9f, 0xd1, 0x13, 0xdf, 0x8e, 0xbc, 0xa0, 0x79, 0xf4, 0x73, 0x63, 0x90, 0x87, 0x93, 0x9f, 0xc0,
- 0x7f, 0x12, 0x5a, 0x05, 0xe3, 0xe7, 0xc9, 0x45, 0x03, 0x1d, 0xe2, 0x0b, 0x1e, 0xae, 0x7f, 0x8e,
- 0x5f, 0x3f, 0xc3, 0xec, 0x76, 0x78, 0x1d, 0x0c, 0xe5, 0xc8, 0x94, 0xf9, 0x2d, 0x66, 0x5f, 0x16,
- 0x3f, 0x48, 0xab, 0x14, 0x0a, 0x1a, 0xa2, 0xd7, 0x0c, 0x74, 0x0e, 0x2c, 0x78, 0xfd, 0x3f, 0x7d,
- 0x1f, 0x65, 0x32, 0xfd, 0x9f, 0x85, 0x76, 0x9e, 0xea, 0xa1, 0x78, 0xde, 0x4b, 0x35, 0x1f, 0xe5,
- 0x3c, 0x0d, 0x39, 0x63, 0xd0, 0xac, 0x70, 0xaf, 0x21, 0xa8, 0xcf, 0xd9, 0x89, 0x87, 0x3c, 0xe1,
- 0x1c, 0x20, 0xa0, 0x8a, 0x45, 0x33, 0xa4, 0xe6, 0xc7, 0x7d, 0xb9, 0x2b, 0xba, 0x4f, 0x1c, 0x79,
- 0x7c, 0x57, 0xc8, 0x72, 0x39, 0x51, 0x1b, 0x3d, 0x2e, 0xc1, 0x23, 0xfe, 0xef, 0xd4, 0x7c, 0x12,
- 0x5c, 0x7a, 0x51, 0x9b, 0xac, 0xce, 0xcf, 0x74, 0xc8, 0x14, 0x55, 0x0c, 0xdc, 0x1c, 0x5c, 0x8a,
- 0xbc, 0xb9, 0x18, 0x41, 0xc1, 0x95, 0xa6, 0x48, 0x3f, 0x7a, 0xd4, 0x97, 0x45, 0x21, 0xbc, 0xc4,
- 0x9c, 0x94, 0x81, 0xa8, 0x54, 0x0a, 0x72, 0x01, 0xd9, 0xaf, 0xa2, 0x65, 0x76, 0xe9, 0x9c, 0x5c,
- 0xfc, 0xe3, 0xe9, 0x50, 0x28, 0x68, 0xcd, 0xda, 0x30, 0x13, 0x38, 0xb0, 0x23, 0x72, 0xfc, 0x37,
- 0xdc, 0xce, 0x70, 0xb9, 0xbd, 0xf7, 0x19, 0x93, 0xd6, 0xc6, 0x4e, 0x42, 0x10, 0xba, 0xdc, 0xaf,
- 0x30, 0xda, 0x34, 0x7c, 0x3e, 0x31, 0xbe, 0x8c, 0x95, 0x5e, 0x4d, 0x8b, 0xcb, 0xac, 0x30, 0xd4,
- 0x10, 0xf7, 0xad, 0x95, 0xab, 0xae, 0x6a, 0xc5, 0x73, 0x8b, 0x3b, 0x79, 0xf8, 0x64, 0x10, 0x4c,
- 0x70, 0x80, 0xc5, 0x6d, 0xd7, 0xcc, 0xd5, 0x1e, 0x9a, 0x37, 0xa1, 0xac, 0xad, 0xff, 0x70, 0x27,
- 0x50, 0xad, 0x5c, 0x84, 0x42, 0x53, 0x01, 0x57, 0x7c, 0xe2, 0xd7, 0x5e, 0x9e, 0x37, 0x50, 0xbf,
- 0xb0, 0x6e, 0x15, 0x5e, 0x2f, 0x08, 0x68, 0x6b, 0x8b, 0x8c, 0x56, 0xc5, 0x07, 0x0a, 0xb0, 0xf1,
- 0x90, 0x43, 0x8c, 0xb7, 0xba, 0x97, 0xbc, 0x22, 0x6d, 0x59, 0x20, 0x37, 0x34, 0xc2, 0x90, 0x69,
- 0xf0, 0x34, 0xe4, 0x4f, 0xc6, 0xf5, 0x03, 0xf9, 0x84, 0xe5, 0xba, 0xe2, 0x61, 0x59, 0xf0, 0x02,
- 0xd0, 0x19, 0x7d, 0xa6, 0x53, 0x6a, 0xd7, 0xb0, 0x62, 0x30, 0xcc, 0x10, 0x52, 0x91, 0xd0, 0x9a,
- 0xf3, 0x71, 0x76, 0x38, 0x1c, 0x43, 0xd1, 0x81, 0xa9, 0x39, 0x7b, 0x17, 0x90, 0x23, 0xf3, 0x9e,
- 0xd3, 0x5c, 0xef, 0xd1, 0x89, 0xdc, 0x05, 0xc8, 0x4f, 0xec, 0x0d, 0xe5, 0xa3, 0xeb, 0xd3, 0x06,
- 0xb3, 0x2b, 0x87, 0x29, 0xf5, 0xbe, 0xba, 0x13, 0xa6, 0x50, 0x97, 0x30, 0xf6, 0x70, 0xb3, 0x6d,
- 0x93, 0x06, 0x1e, 0xc0, 0x60, 0x21, 0x6e, 0x5a, 0x40, 0x85, 0xe1, 0xc2, 0xc5, 0xb8, 0x93, 0xf5,
- 0x73, 0xc5, 0x57, 0x1a, 0x0d, 0x7a, 0x07, 0x66, 0xb7, 0xeb, 0x60, 0x59, 0x5c, 0x85, 0x73, 0xbb,
- 0x53, 0xe8, 0xce, 0xf3, 0x98, 0xe5, 0xd3, 0x2f, 0x51, 0x3e, 0x16, 0xab, 0x6f, 0x4d, 0x53, 0x23,
- 0x33, 0x9f, 0xa6, 0x0b, 0xe4, 0x87, 0x6c, 0xf4, 0xb8, 0x82, 0x8c, 0x7e, 0x3a, 0xd6, 0x33, 0x48,
- 0x13, 0xb2, 0x3f, 0xe2, 0x71, 0x18, 0xb8, 0xbd, 0x5e, 0x57, 0xfa, 0x8c, 0x09, 0x1e, 0x13, 0xd0,
- 0x75, 0x4f, 0xb0, 0xf4, 0x7a, 0xd5, 0x60, 0x96, 0xed, 0x90, 0x21, 0x70, 0x7d, 0x71, 0x75, 0x40,
- 0x55, 0x62, 0x29, 0x1d, 0xef, 0x4a, 0xb4, 0xdf, 0x0b, 0x45, 0x57, 0x82, 0x4e, 0xb9, 0x55, 0xd8,
- 0x35, 0x15, 0x41, 0xe5, 0x93, 0x28, 0x0b, 0x04, 0xe2, 0xf9, 0xcd, 0x57, 0x1b, 0x22, 0x35, 0xb3,
- 0x15, 0x38, 0xd8, 0x0c, 0x06, 0xb7, 0xdf, 0x4d, 0x04, 0x2c, 0xbb, 0xa5, 0x28, 0xea, 0x15, 0x2b,
- 0xf5, 0xfb, 0x91, 0xd6, 0x6b, 0xec, 0xb6, 0x71, 0xf3, 0x42, 0x3a, 0x3e, 0xb1, 0xd7, 0xf5, 0x65,
- 0xd5, 0xd6, 0x08, 0x3f, 0xfe, 0x73, 0x62, 0x38, 0x15, 0x97, 0x4c, 0xcc, 0x82, 0x1f, 0xd5, 0xfd,
- 0xb5, 0xa1, 0x60, 0xc7, 0x82, 0x11, 0xdd, 0xe3, 0xfc, 0x2b, 0xd6, 0x19, 0xd7, 0x84, 0xb5, 0x96,
- 0x95, 0x8c, 0xf9, 0x2e, 0x17, 0x8e, 0x09, 0xaa, 0x1a, 0xfe, 0xa0, 0xeb, 0xe4, 0x4c, 0x95, 0x0e,
- 0xb6, 0xe4, 0xf2, 0xb0, 0x58, 0xa7, 0x0f, 0x9b, 0xd1, 0xf7, 0x17, 0xec, 0x26, 0xfe, 0xb6, 0x0a,
- 0x96, 0xc9, 0x6b, 0x59, 0xcd, 0x38, 0xdb, 0xd2, 0x37, 0x22, 0x61, 0x1e, 0x15, 0x36, 0x96, 0x92,
- 0xf6, 0xbe, 0x03, 0xa1, 0xb1, 0x5a, 0x64, 0x09, 0xde, 0x9e, 0xfb, 0xcb, 0x40, 0xad, 0xf6, 0xf9,
- 0xd6, 0x93, 0x9a, 0x48, 0x24, 0xc5, 0xb0, 0x40, 0x38, 0x4b, 0x8d, 0x39, 0x73, 0x65, 0xd6, 0x61,
- 0x36, 0x50, 0xd3, 0x92, 0x49, 0x9e, 0xd9, 0x7c, 0xcf, 0x25, 0x0c, 0xa2, 0xea, 0x58, 0x36, 0x2f,
- 0x16, 0x7d, 0x4a, 0x7b, 0xdc, 0x01, 0x0d, 0x35, 0x29, 0xf0, 0x7a, 0x50, 0xd9, 0x90, 0x16, 0xb7,
- 0x76, 0x0a, 0x22, 0x83, 0xa0, 0x63, 0xb2, 0xee, 0xc0, 0x4c, 0xe0, 0x85, 0x8c, 0x0b, 0x76, 0xdc,
- 0x56, 0x27, 0xbb, 0x6a, 0x35, 0xfc, 0x66, 0xa7, 0x26, 0x99, 0x96, 0x77, 0xbf, 0xc3, 0x56, 0x44,
- },
- { /* 15 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c, 0x72, 0x76, 0xa2, 0x6e, 0xcf,
- 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8, 0xe4, 0xec, 0x87, 0xdc, 0x5d,
- 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4, 0x96, 0x9a, 0x25, 0xb2, 0x92,
- 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73, 0x0b, 0x1b, 0xcd, 0x7b, 0xba,
- 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f, 0x79, 0x6d, 0x6f, 0x15, 0x75,
- 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab, 0xef, 0xf7, 0x4a, 0xa7, 0xe7,
- 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7, 0x9d, 0x81, 0xe8, 0xc9, 0x28,
- 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6, 0x16, 0x36, 0x59, 0xf6, 0xb7,
- 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a, 0x64, 0x40, 0xfb, 0x98, 0x78,
- 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e, 0xf2, 0xda, 0xde, 0x2a, 0xea,
- 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52, 0x80, 0xac, 0x7c, 0x44, 0x25,
- 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95, 0x1d, 0x2d, 0x94, 0x8d, 0x0d,
- 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9, 0x6f, 0x5b, 0x36, 0xe3, 0xc2,
- 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d, 0xf9, 0xc1, 0x13, 0x51, 0x50,
- 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21, 0x8b, 0xb7, 0xb1, 0x3f, 0x9f,
- 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f, 0x2c, 0x6c, 0xb2, 0x2f, 0xad,
- 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63, 0x5e, 0x1a, 0x10, 0x41, 0x62,
- 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7, 0xc8, 0x80, 0x35, 0xf3, 0xf0,
- 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb, 0xba, 0xf6, 0x97, 0x9d, 0x3f,
- 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c, 0x27, 0x77, 0x7f, 0x54, 0x17,
- 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10, 0x55, 0x01, 0xdd, 0x3a, 0xd8,
- 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4, 0xc3, 0x9b, 0xf8, 0x88, 0x4a,
- 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8, 0xb1, 0xed, 0x5a, 0xe6, 0x85,
- 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9, 0x3a, 0x5a, 0xeb, 0xd9, 0x1a,
- 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85, 0x48, 0x2c, 0x49, 0xb7, 0xd5,
- 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31, 0xde, 0xb6, 0x6c, 0x05, 0x47,
- 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d, 0xac, 0xc0, 0xce, 0x6b, 0x88,
- 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a, 0x31, 0x41, 0x26, 0xa2, 0xa0,
- 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6, 0x43, 0x37, 0x84, 0xcc, 0x6f,
- 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42, 0xd5, 0xad, 0xa1, 0x7e, 0xfd,
- 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e, 0xa7, 0xdb, 0x03, 0x10, 0x32,
- 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e, 0x58, 0xd8, 0xa7, 0x5e, 0x99,
- 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72, 0x2a, 0xae, 0x05, 0x30, 0x56,
- 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6, 0xbc, 0x34, 0x20, 0x82, 0xc4,
- 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa, 0xce, 0x42, 0x82, 0xec, 0x0b,
- 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d, 0x53, 0xc3, 0x6a, 0x25, 0x23,
- 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01, 0x21, 0xb5, 0xc8, 0x4b, 0xec,
- 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5, 0xb7, 0x2f, 0xed, 0xf9, 0x7e,
- 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9, 0xc5, 0x59, 0x4f, 0x97, 0xb1,
- 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8, 0x4e, 0xee, 0xfe, 0xa8, 0x2e,
- 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94, 0x3c, 0x98, 0x5c, 0xc6, 0xe1,
- 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20, 0xaa, 0x02, 0x79, 0x74, 0x73,
- 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c, 0xd8, 0x74, 0xdb, 0x1a, 0xbc,
- 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b, 0x45, 0xf5, 0x33, 0xd3, 0x94,
- 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7, 0x37, 0x83, 0x91, 0xbd, 0x5b,
- 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53, 0xa1, 0x19, 0xb4, 0x0f, 0xc9,
- 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f, 0xd3, 0x6f, 0x16, 0x61, 0x06,
- 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11, 0x74, 0xb4, 0x15, 0x71, 0x34,
- 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d, 0x06, 0xc2, 0xb7, 0x1f, 0xfb,
- 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9, 0x90, 0x58, 0x92, 0xad, 0x69,
- 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5, 0xe2, 0x2e, 0x30, 0xc3, 0xa6,
- 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62, 0x7f, 0xaf, 0xd8, 0x0a, 0x8e,
- 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e, 0x0d, 0xd9, 0x7a, 0x64, 0x41,
- 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba, 0x9b, 0x43, 0x5f, 0xd6, 0xd3,
- 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6, 0xe9, 0x35, 0xfd, 0xb8, 0x1c,
- 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7, 0x62, 0x82, 0x4c, 0x87, 0x83,
- 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b, 0x10, 0xf4, 0xee, 0xe9, 0x4c,
- 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f, 0x86, 0x6e, 0xcb, 0x5b, 0xde,
- 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43, 0xf4, 0x18, 0x69, 0x35, 0x11,
- 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84, 0x69, 0x99, 0x81, 0xfc, 0x39,
- 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8, 0x1b, 0xef, 0x23, 0x92, 0xf6,
- 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c, 0x8d, 0x75, 0x06, 0x20, 0x64,
- 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30, 0xff, 0x03, 0xa4, 0x4e, 0xab,
- 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c, 0xb0, 0x73, 0x8d, 0xbc, 0xf1,
- 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50, 0xc2, 0x05, 0x2f, 0xd2, 0x3e,
- 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4, 0x54, 0x9f, 0x0a, 0x60, 0xac,
- 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88, 0x26, 0xe9, 0xa8, 0x0e, 0x63,
- 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f, 0xbb, 0x68, 0x40, 0xc7, 0x4b,
- 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23, 0xc9, 0x1e, 0xe2, 0xa9, 0x84,
- 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97, 0x5f, 0x84, 0xc7, 0x1b, 0x16,
- 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb, 0x2d, 0xf2, 0x65, 0x75, 0xd9,
- 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda, 0xa6, 0x45, 0xd4, 0x4a, 0x46,
- 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6, 0xd4, 0x33, 0x76, 0x24, 0x89,
- 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02, 0x42, 0xa9, 0x53, 0x96, 0x1b,
- 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e, 0x30, 0xdf, 0xf1, 0xf8, 0xd4,
- 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9, 0xad, 0x5e, 0x19, 0x31, 0xfc,
- 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5, 0xdf, 0x28, 0xbb, 0x5f, 0x33,
- 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71, 0x49, 0xb2, 0x9e, 0xed, 0xa1,
- 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d, 0x3b, 0xc4, 0x3c, 0x83, 0x6e,
- 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33, 0x9c, 0x1f, 0x3f, 0x93, 0x5c,
- 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f, 0xee, 0x69, 0x9d, 0xfd, 0x93,
- 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb, 0x78, 0xf3, 0xb8, 0x4f, 0x01,
- 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87, 0x0a, 0x85, 0x1a, 0x21, 0xce,
- 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40, 0x97, 0x04, 0xf2, 0xe8, 0xe6,
- 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c, 0xe5, 0x72, 0x50, 0x86, 0x29,
- 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98, 0x73, 0xe8, 0x75, 0x34, 0xbb,
- 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4, 0x01, 0x9e, 0xd7, 0x5a, 0x74,
- 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5, 0x8a, 0x29, 0x66, 0x65, 0xeb,
- 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9, 0xf8, 0x5f, 0xc4, 0x0b, 0x24,
- 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d, 0x6e, 0xc5, 0xe1, 0xb9, 0xb6,
- 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61, 0x1c, 0xb3, 0x43, 0xd7, 0x79,
- 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6, 0x81, 0x32, 0xab, 0x1e, 0x51,
- 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca, 0xf3, 0x44, 0x09, 0x70, 0x9e,
- 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e, 0x65, 0xde, 0x2c, 0xc2, 0x0c,
- 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12, 0x17, 0xa8, 0x8e, 0xac, 0xc3,
- 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22, 0xe8, 0xab, 0x2a, 0xe2, 0x68,
- 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e, 0x9a, 0xdd, 0x88, 0x8c, 0xa7,
- 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa, 0x0c, 0x47, 0xad, 0x3e, 0x35,
- 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96, 0x7e, 0x31, 0x0f, 0x50, 0xfa,
- 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51, 0xe3, 0xb0, 0xe7, 0x99, 0xd2,
- 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d, 0x91, 0xc6, 0x45, 0xf7, 0x1d,
- 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89, 0x07, 0x5c, 0x60, 0x45, 0x8f,
- 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5, 0x75, 0x2a, 0xc2, 0x2b, 0x40,
- 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4, 0xfe, 0x9d, 0x73, 0x14, 0xdf,
- 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8, 0x8c, 0xeb, 0xd1, 0x7a, 0x10,
- 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c, 0x1a, 0x71, 0xf4, 0xc8, 0x82,
- 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70, 0x68, 0x07, 0x56, 0xa6, 0x4d,
- 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7, 0xf5, 0x86, 0xbe, 0x6f, 0x65,
- 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb, 0x87, 0xf0, 0x1c, 0x01, 0xaa,
- 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f, 0x11, 0x6a, 0x39, 0xb3, 0x38,
- 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03, 0x63, 0x1c, 0x9b, 0xdd, 0xf7,
- 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d, 0xc4, 0xc7, 0x98, 0xcd, 0xc5,
- 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41, 0xb6, 0xb1, 0x3a, 0xa3, 0x0a,
- 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5, 0x20, 0x2b, 0x1f, 0x11, 0x98,
- 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99, 0x52, 0x5d, 0xbd, 0x7f, 0x57,
- 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e, 0xcf, 0xdc, 0x55, 0xb6, 0x7f,
- 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32, 0xbd, 0xaa, 0xf7, 0xd8, 0xb0,
- 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86, 0x2b, 0x30, 0xd2, 0x6a, 0x22,
- 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea, 0x59, 0x46, 0x70, 0x04, 0xed,
- 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb, 0xd2, 0xf1, 0xc1, 0x3b, 0x72,
- 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7, 0xa0, 0x87, 0x63, 0x55, 0xbd,
- 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13, 0x36, 0x1d, 0x46, 0xe7, 0x2f,
- 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f, 0x44, 0x6b, 0xe4, 0x89, 0xe0,
- 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8, 0xd9, 0xea, 0x0c, 0x40, 0xc8,
- 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4, 0xab, 0x9c, 0xae, 0x2e, 0x07,
- 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60, 0x3d, 0x06, 0x8b, 0x9c, 0x95,
- 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c, 0x4f, 0x70, 0x29, 0xf2, 0x5a,
- 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78, 0xa3, 0xe6, 0xd9, 0xbb, 0x21,
- 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14, 0xd1, 0x90, 0x7b, 0xd5, 0xee,
- 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0, 0x47, 0x0a, 0x5e, 0x67, 0x7c,
- 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc, 0x35, 0x7c, 0xfc, 0x09, 0xb3,
- 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b, 0xa8, 0xfd, 0x14, 0xc0, 0x9b,
- 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67, 0xda, 0x8b, 0xb6, 0xae, 0x54,
- 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3, 0x4c, 0x11, 0x93, 0x1c, 0xc6,
- 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf, 0x3e, 0x67, 0x31, 0x72, 0x09,
- 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e, 0xb5, 0xd0, 0x80, 0x4d, 0x96,
- 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2, 0xc7, 0xa6, 0x22, 0x23, 0x59,
- 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46, 0x51, 0x3c, 0x07, 0x91, 0xcb,
- 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a, 0x23, 0x4a, 0xa5, 0xff, 0x04,
- 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed, 0xbe, 0xcb, 0x4d, 0x36, 0x2c,
- 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81, 0xcc, 0xbd, 0xef, 0x58, 0xe3,
- 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35, 0x5a, 0x27, 0xca, 0xea, 0x71,
- 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59, 0x28, 0x51, 0x68, 0x84, 0xbe,
- 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77, 0x8f, 0x8a, 0x6b, 0x94, 0x8c,
- 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b, 0xfd, 0xfc, 0xc9, 0xfa, 0x43,
- 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf, 0x6b, 0x66, 0xec, 0x48, 0xd1,
- 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3, 0x19, 0x10, 0x4e, 0x26, 0x1e,
- 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04, 0x84, 0x91, 0xa6, 0xef, 0x36,
- 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68, 0xf6, 0xe7, 0x04, 0x81, 0xf9,
- 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc, 0x60, 0x7d, 0x21, 0x33, 0x6b,
- 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0, 0x12, 0x0b, 0x83, 0x5d, 0xa4,
- 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91, 0x99, 0xbc, 0x32, 0x62, 0x3b,
- 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd, 0xeb, 0xca, 0x90, 0x0c, 0xf4,
- 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49, 0x7d, 0x50, 0xb5, 0xbe, 0x66,
- 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25, 0x0f, 0x26, 0x17, 0xd0, 0xa9,
- 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2, 0x92, 0xa7, 0xff, 0x19, 0x81,
- 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e, 0xe0, 0xd1, 0x5d, 0x77, 0x4e,
- 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a, 0x76, 0x4b, 0x78, 0xc5, 0xdc,
- 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56, 0x04, 0x3d, 0xda, 0xab, 0x13,
- 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66, 0xfb, 0x3e, 0x7e, 0xe5, 0xb8,
- 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a, 0x89, 0x48, 0xdc, 0x8b, 0x77,
- 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe, 0x1f, 0xd2, 0xf9, 0x39, 0xe5,
- 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2, 0x6d, 0xa4, 0x5b, 0x57, 0x2a,
- 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15, 0xf0, 0x25, 0xb3, 0x9e, 0x02,
- 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79, 0x82, 0x53, 0x11, 0xf0, 0xcd,
- 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd, 0x14, 0xc9, 0x34, 0x42, 0x5f,
- 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1, 0x66, 0xbf, 0x96, 0x2c, 0x90,
- 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80, 0xed, 0x08, 0x27, 0x13, 0x0f,
- 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec, 0x9f, 0x7e, 0x85, 0x7d, 0xc0,
- 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58, 0x09, 0xe4, 0xa0, 0xcf, 0x52,
- 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34, 0x7b, 0x92, 0x02, 0xa1, 0x9d,
- 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3, 0xe6, 0x13, 0xea, 0x68, 0xb5,
- 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f, 0x94, 0x65, 0x48, 0x06, 0x7a,
- 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b, 0x02, 0xff, 0x6d, 0xb4, 0xe8,
- 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47, 0x70, 0x89, 0xcf, 0xda, 0x27,
- 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69, 0xd7, 0x52, 0xcc, 0xca, 0x15,
- 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05, 0xa5, 0x24, 0x6e, 0xa4, 0xda,
- 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1, 0x33, 0xbe, 0x4b, 0x16, 0x48,
- 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd, 0x41, 0xc8, 0xe9, 0x78, 0x87,
- 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a, 0xdc, 0x49, 0x01, 0xb1, 0xaf,
- 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76, 0xae, 0x3f, 0xa3, 0xdf, 0x60,
- 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2, 0x38, 0xa5, 0x86, 0x6d, 0xf2,
- 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae, 0x4a, 0xd3, 0x24, 0x03, 0x3d,
- 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f, 0xc1, 0x64, 0x95, 0x3c, 0xa2,
- 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3, 0xb3, 0x12, 0x37, 0x52, 0x6d,
- 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57, 0x25, 0x88, 0x12, 0xe0, 0xff,
- 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b, 0x57, 0xfe, 0xb0, 0x8e, 0x30,
- 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc, 0xca, 0x7f, 0x58, 0x47, 0x18,
- 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90, 0xb8, 0x09, 0xfa, 0x29, 0xd7,
- 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24, 0x2e, 0x93, 0xdf, 0x9b, 0x45,
- 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48, 0x5c, 0xe5, 0x7d, 0xf5, 0x8a,
- 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44, 0x13, 0x95, 0x54, 0x07, 0xd0,
- 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28, 0x61, 0xe3, 0xf6, 0x69, 0x1f,
- 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c, 0xf7, 0x79, 0xd3, 0xdb, 0x8d,
- 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0, 0x85, 0x0f, 0x71, 0xb5, 0x42,
- 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37, 0x18, 0x8e, 0x99, 0x7c, 0x6a,
- 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b, 0x6a, 0xf8, 0x3b, 0x12, 0xa5,
- 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef, 0xfc, 0x62, 0x1e, 0xa0, 0x37,
- 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83, 0x8e, 0x14, 0xbc, 0xce, 0xf8,
- 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2, 0x05, 0xa3, 0x0d, 0xf1, 0x67,
- 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce, 0x77, 0xd5, 0xaf, 0x9f, 0xa8,
- 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a, 0xe1, 0x4f, 0x8a, 0x2d, 0x3a,
- 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16, 0x93, 0x39, 0x28, 0x43, 0xf5,
- 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1, 0x0e, 0xb8, 0xc0, 0x8a, 0xdd,
- 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd, 0x7c, 0xce, 0x62, 0xe4, 0x12,
- 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09, 0xea, 0x54, 0x47, 0x56, 0x80,
- 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65, 0x98, 0x22, 0xe5, 0x38, 0x4f,
- 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b, 0x3f, 0xf9, 0xe6, 0x28, 0x7d,
- 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27, 0x4d, 0x8f, 0x44, 0x46, 0xb2,
- 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93, 0xdb, 0x15, 0x61, 0xf4, 0x20,
- 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff, 0xa9, 0x63, 0xc3, 0x9a, 0xef,
- 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38, 0x34, 0xe2, 0x2b, 0x53, 0xc7,
- 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54, 0x46, 0x94, 0x89, 0x3d, 0x08,
- 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0, 0xd0, 0x0e, 0xac, 0x8f, 0x9a,
- 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c, 0xa2, 0x78, 0x0e, 0xe1, 0x55,
- 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad, 0x29, 0xcf, 0xbf, 0xde, 0xca,
- 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1, 0x5b, 0xb9, 0x1d, 0xb0, 0x05,
- 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75, 0xcd, 0x23, 0x38, 0x02, 0x97,
- 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19, 0xbf, 0x55, 0x9a, 0x6c, 0x58,
- 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde, 0x22, 0xd4, 0x72, 0xa5, 0x70,
- 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2, 0x50, 0xa2, 0xd0, 0xcb, 0xbf,
- 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06, 0xc6, 0x38, 0xf5, 0x79, 0x2d,
- 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a, 0xb4, 0x4e, 0x57, 0x17, 0xe2,
- 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a, 0x4b, 0x4d, 0xf3, 0x59, 0x49,
- 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36, 0x39, 0x3b, 0x51, 0x37, 0x86,
- 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82, 0xaf, 0xa1, 0x74, 0x85, 0x14,
- 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee, 0xdd, 0xd7, 0xd6, 0xeb, 0xdb,
- 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29, 0x40, 0x56, 0x3e, 0x22, 0xf3,
- 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45, 0x32, 0x20, 0x9c, 0x4c, 0x3c,
- 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1, 0xa4, 0xba, 0xb9, 0xfe, 0xae,
- 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d, 0xd6, 0xcc, 0x1b, 0x90, 0x61,
- 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc, 0x5d, 0x7b, 0xaa, 0xaf, 0xfe,
- 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0, 0x2f, 0x0d, 0x08, 0xc1, 0x31,
- 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64, 0xb9, 0x97, 0x2d, 0x73, 0xa3,
- 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08, 0xcb, 0xe1, 0x8f, 0x1d, 0x6c,
- 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf, 0x56, 0x60, 0x67, 0xd4, 0x44,
- 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3, 0x24, 0x16, 0xc5, 0xba, 0x8b,
- 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17, 0xb2, 0x8c, 0xe0, 0x08, 0x19,
- 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b, 0xc0, 0xfa, 0x42, 0x66, 0xd6,
- 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55, 0x67, 0x21, 0x41, 0x76, 0xe4,
- 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39, 0x15, 0x57, 0xe3, 0x18, 0x2b,
- 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d, 0x83, 0xcd, 0xc6, 0xaa, 0xb9,
- 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1, 0xf1, 0xbb, 0x64, 0xc4, 0x76,
- 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26, 0x6c, 0x3a, 0x8c, 0x0d, 0x5e,
- 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a, 0x1e, 0x4c, 0x2e, 0x63, 0x91,
- 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe, 0x88, 0xd6, 0x0b, 0xd1, 0x03,
- 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92, 0xfa, 0xa0, 0xa9, 0xbf, 0xcc,
- 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3, 0x71, 0x17, 0x18, 0x80, 0x53,
- 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf, 0x03, 0x61, 0xba, 0xee, 0x9c,
- 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b, 0x95, 0xfb, 0x9f, 0x5c, 0x0e,
- 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07, 0xe7, 0x8d, 0x3d, 0x32, 0xc1,
- 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0, 0x7a, 0x0c, 0xd5, 0xfb, 0xe9,
- 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac, 0x08, 0x7a, 0x77, 0x95, 0x26,
- 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18, 0x9e, 0xe0, 0x52, 0x27, 0xb4,
- 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74, 0xec, 0x96, 0xf0, 0x49, 0x7b,
- },
+static const uint8_t kuz_table_inv[16][256 * 16] = {
+ { /* 0 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c,
+ 0x72, 0x76, 0xa2, 0x6e,
+ 0x02, 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8,
+ 0xe4, 0xec, 0x87, 0xdc,
+ 0x03, 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4,
+ 0x96, 0x9a, 0x25, 0xb2,
+ 0x04, 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73,
+ 0x0b, 0x1b, 0xcd, 0x7b,
+ 0x05, 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f,
+ 0x79, 0x6d, 0x6f, 0x15,
+ 0x06, 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab,
+ 0xef, 0xf7, 0x4a, 0xa7,
+ 0x07, 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7,
+ 0x9d, 0x81, 0xe8, 0xc9,
+ 0x08, 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6,
+ 0x16, 0x36, 0x59, 0xf6,
+ 0x09, 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a,
+ 0x64, 0x40, 0xfb, 0x98,
+ 0x0a, 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e,
+ 0xf2, 0xda, 0xde, 0x2a,
+ 0x0b, 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52,
+ 0x80, 0xac, 0x7c, 0x44,
+ 0x0c, 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95,
+ 0x1d, 0x2d, 0x94, 0x8d,
+ 0x0d, 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9,
+ 0x6f, 0x5b, 0x36, 0xe3,
+ 0x0e, 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d,
+ 0xf9, 0xc1, 0x13, 0x51,
+ 0x0f, 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21,
+ 0x8b, 0xb7, 0xb1, 0x3f,
+ 0x10, 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f,
+ 0x2c, 0x6c, 0xb2, 0x2f,
+ 0x11, 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63,
+ 0x5e, 0x1a, 0x10, 0x41,
+ 0x12, 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7,
+ 0xc8, 0x80, 0x35, 0xf3,
+ 0x13, 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb,
+ 0xba, 0xf6, 0x97, 0x9d,
+ 0x14, 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c,
+ 0x27, 0x77, 0x7f, 0x54,
+ 0x15, 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10,
+ 0x55, 0x01, 0xdd, 0x3a,
+ 0x16, 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4,
+ 0xc3, 0x9b, 0xf8, 0x88,
+ 0x17, 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8,
+ 0xb1, 0xed, 0x5a, 0xe6,
+ 0x18, 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9,
+ 0x3a, 0x5a, 0xeb, 0xd9,
+ 0x19, 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85,
+ 0x48, 0x2c, 0x49, 0xb7,
+ 0x1a, 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31,
+ 0xde, 0xb6, 0x6c, 0x05,
+ 0x1b, 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d,
+ 0xac, 0xc0, 0xce, 0x6b,
+ 0x1c, 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a,
+ 0x31, 0x41, 0x26, 0xa2,
+ 0x1d, 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6,
+ 0x43, 0x37, 0x84, 0xcc,
+ 0x1e, 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42,
+ 0xd5, 0xad, 0xa1, 0x7e,
+ 0x1f, 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e,
+ 0xa7, 0xdb, 0x03, 0x10,
+ 0x20, 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e,
+ 0x58, 0xd8, 0xa7, 0x5e,
+ 0x21, 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72,
+ 0x2a, 0xae, 0x05, 0x30,
+ 0x22, 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6,
+ 0xbc, 0x34, 0x20, 0x82,
+ 0x23, 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa,
+ 0xce, 0x42, 0x82, 0xec,
+ 0x24, 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d,
+ 0x53, 0xc3, 0x6a, 0x25,
+ 0x25, 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01,
+ 0x21, 0xb5, 0xc8, 0x4b,
+ 0x26, 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5,
+ 0xb7, 0x2f, 0xed, 0xf9,
+ 0x27, 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9,
+ 0xc5, 0x59, 0x4f, 0x97,
+ 0x28, 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8,
+ 0x4e, 0xee, 0xfe, 0xa8,
+ 0x29, 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94,
+ 0x3c, 0x98, 0x5c, 0xc6,
+ 0x2a, 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20,
+ 0xaa, 0x02, 0x79, 0x74,
+ 0x2b, 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c,
+ 0xd8, 0x74, 0xdb, 0x1a,
+ 0x2c, 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b,
+ 0x45, 0xf5, 0x33, 0xd3,
+ 0x2d, 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7,
+ 0x37, 0x83, 0x91, 0xbd,
+ 0x2e, 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53,
+ 0xa1, 0x19, 0xb4, 0x0f,
+ 0x2f, 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f,
+ 0xd3, 0x6f, 0x16, 0x61,
+ 0x30, 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11,
+ 0x74, 0xb4, 0x15, 0x71,
+ 0x31, 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d,
+ 0x06, 0xc2, 0xb7, 0x1f,
+ 0x32, 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9,
+ 0x90, 0x58, 0x92, 0xad,
+ 0x33, 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5,
+ 0xe2, 0x2e, 0x30, 0xc3,
+ 0x34, 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62,
+ 0x7f, 0xaf, 0xd8, 0x0a,
+ 0x35, 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e,
+ 0x0d, 0xd9, 0x7a, 0x64,
+ 0x36, 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba,
+ 0x9b, 0x43, 0x5f, 0xd6,
+ 0x37, 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6,
+ 0xe9, 0x35, 0xfd, 0xb8,
+ 0x38, 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7,
+ 0x62, 0x82, 0x4c, 0x87,
+ 0x39, 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b,
+ 0x10, 0xf4, 0xee, 0xe9,
+ 0x3a, 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f,
+ 0x86, 0x6e, 0xcb, 0x5b,
+ 0x3b, 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43,
+ 0xf4, 0x18, 0x69, 0x35,
+ 0x3c, 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84,
+ 0x69, 0x99, 0x81, 0xfc,
+ 0x3d, 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8,
+ 0x1b, 0xef, 0x23, 0x92,
+ 0x3e, 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c,
+ 0x8d, 0x75, 0x06, 0x20,
+ 0x3f, 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30,
+ 0xff, 0x03, 0xa4, 0x4e,
+ 0x40, 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c,
+ 0xb0, 0x73, 0x8d, 0xbc,
+ 0x41, 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50,
+ 0xc2, 0x05, 0x2f, 0xd2,
+ 0x42, 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4,
+ 0x54, 0x9f, 0x0a, 0x60,
+ 0x43, 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88,
+ 0x26, 0xe9, 0xa8, 0x0e,
+ 0x44, 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f,
+ 0xbb, 0x68, 0x40, 0xc7,
+ 0x45, 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23,
+ 0xc9, 0x1e, 0xe2, 0xa9,
+ 0x46, 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97,
+ 0x5f, 0x84, 0xc7, 0x1b,
+ 0x47, 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb,
+ 0x2d, 0xf2, 0x65, 0x75,
+ 0x48, 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda,
+ 0xa6, 0x45, 0xd4, 0x4a,
+ 0x49, 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6,
+ 0xd4, 0x33, 0x76, 0x24,
+ 0x4a, 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02,
+ 0x42, 0xa9, 0x53, 0x96,
+ 0x4b, 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e,
+ 0x30, 0xdf, 0xf1, 0xf8,
+ 0x4c, 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9,
+ 0xad, 0x5e, 0x19, 0x31,
+ 0x4d, 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5,
+ 0xdf, 0x28, 0xbb, 0x5f,
+ 0x4e, 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71,
+ 0x49, 0xb2, 0x9e, 0xed,
+ 0x4f, 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d,
+ 0x3b, 0xc4, 0x3c, 0x83,
+ 0x50, 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33,
+ 0x9c, 0x1f, 0x3f, 0x93,
+ 0x51, 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f,
+ 0xee, 0x69, 0x9d, 0xfd,
+ 0x52, 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb,
+ 0x78, 0xf3, 0xb8, 0x4f,
+ 0x53, 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87,
+ 0x0a, 0x85, 0x1a, 0x21,
+ 0x54, 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40,
+ 0x97, 0x04, 0xf2, 0xe8,
+ 0x55, 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c,
+ 0xe5, 0x72, 0x50, 0x86,
+ 0x56, 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98,
+ 0x73, 0xe8, 0x75, 0x34,
+ 0x57, 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4,
+ 0x01, 0x9e, 0xd7, 0x5a,
+ 0x58, 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5,
+ 0x8a, 0x29, 0x66, 0x65,
+ 0x59, 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9,
+ 0xf8, 0x5f, 0xc4, 0x0b,
+ 0x5a, 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d,
+ 0x6e, 0xc5, 0xe1, 0xb9,
+ 0x5b, 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61,
+ 0x1c, 0xb3, 0x43, 0xd7,
+ 0x5c, 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6,
+ 0x81, 0x32, 0xab, 0x1e,
+ 0x5d, 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca,
+ 0xf3, 0x44, 0x09, 0x70,
+ 0x5e, 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e,
+ 0x65, 0xde, 0x2c, 0xc2,
+ 0x5f, 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12,
+ 0x17, 0xa8, 0x8e, 0xac,
+ 0x60, 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22,
+ 0xe8, 0xab, 0x2a, 0xe2,
+ 0x61, 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e,
+ 0x9a, 0xdd, 0x88, 0x8c,
+ 0x62, 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa,
+ 0x0c, 0x47, 0xad, 0x3e,
+ 0x63, 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96,
+ 0x7e, 0x31, 0x0f, 0x50,
+ 0x64, 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51,
+ 0xe3, 0xb0, 0xe7, 0x99,
+ 0x65, 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d,
+ 0x91, 0xc6, 0x45, 0xf7,
+ 0x66, 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89,
+ 0x07, 0x5c, 0x60, 0x45,
+ 0x67, 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5,
+ 0x75, 0x2a, 0xc2, 0x2b,
+ 0x68, 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4,
+ 0xfe, 0x9d, 0x73, 0x14,
+ 0x69, 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8,
+ 0x8c, 0xeb, 0xd1, 0x7a,
+ 0x6a, 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c,
+ 0x1a, 0x71, 0xf4, 0xc8,
+ 0x6b, 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70,
+ 0x68, 0x07, 0x56, 0xa6,
+ 0x6c, 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7,
+ 0xf5, 0x86, 0xbe, 0x6f,
+ 0x6d, 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb,
+ 0x87, 0xf0, 0x1c, 0x01,
+ 0x6e, 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f,
+ 0x11, 0x6a, 0x39, 0xb3,
+ 0x6f, 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03,
+ 0x63, 0x1c, 0x9b, 0xdd,
+ 0x70, 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d,
+ 0xc4, 0xc7, 0x98, 0xcd,
+ 0x71, 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41,
+ 0xb6, 0xb1, 0x3a, 0xa3,
+ 0x72, 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5,
+ 0x20, 0x2b, 0x1f, 0x11,
+ 0x73, 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99,
+ 0x52, 0x5d, 0xbd, 0x7f,
+ 0x74, 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e,
+ 0xcf, 0xdc, 0x55, 0xb6,
+ 0x75, 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32,
+ 0xbd, 0xaa, 0xf7, 0xd8,
+ 0x76, 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86,
+ 0x2b, 0x30, 0xd2, 0x6a,
+ 0x77, 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea,
+ 0x59, 0x46, 0x70, 0x04,
+ 0x78, 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb,
+ 0xd2, 0xf1, 0xc1, 0x3b,
+ 0x79, 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7,
+ 0xa0, 0x87, 0x63, 0x55,
+ 0x7a, 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13,
+ 0x36, 0x1d, 0x46, 0xe7,
+ 0x7b, 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f,
+ 0x44, 0x6b, 0xe4, 0x89,
+ 0x7c, 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8,
+ 0xd9, 0xea, 0x0c, 0x40,
+ 0x7d, 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4,
+ 0xab, 0x9c, 0xae, 0x2e,
+ 0x7e, 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60,
+ 0x3d, 0x06, 0x8b, 0x9c,
+ 0x7f, 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c,
+ 0x4f, 0x70, 0x29, 0xf2,
+ 0x80, 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78,
+ 0xa3, 0xe6, 0xd9, 0xbb,
+ 0x81, 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14,
+ 0xd1, 0x90, 0x7b, 0xd5,
+ 0x82, 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0,
+ 0x47, 0x0a, 0x5e, 0x67,
+ 0x83, 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc,
+ 0x35, 0x7c, 0xfc, 0x09,
+ 0x84, 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b,
+ 0xa8, 0xfd, 0x14, 0xc0,
+ 0x85, 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67,
+ 0xda, 0x8b, 0xb6, 0xae,
+ 0x86, 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3,
+ 0x4c, 0x11, 0x93, 0x1c,
+ 0x87, 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf,
+ 0x3e, 0x67, 0x31, 0x72,
+ 0x88, 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e,
+ 0xb5, 0xd0, 0x80, 0x4d,
+ 0x89, 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2,
+ 0xc7, 0xa6, 0x22, 0x23,
+ 0x8a, 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46,
+ 0x51, 0x3c, 0x07, 0x91,
+ 0x8b, 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a,
+ 0x23, 0x4a, 0xa5, 0xff,
+ 0x8c, 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed,
+ 0xbe, 0xcb, 0x4d, 0x36,
+ 0x8d, 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81,
+ 0xcc, 0xbd, 0xef, 0x58,
+ 0x8e, 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35,
+ 0x5a, 0x27, 0xca, 0xea,
+ 0x8f, 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59,
+ 0x28, 0x51, 0x68, 0x84,
+ 0x90, 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77,
+ 0x8f, 0x8a, 0x6b, 0x94,
+ 0x91, 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b,
+ 0xfd, 0xfc, 0xc9, 0xfa,
+ 0x92, 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf,
+ 0x6b, 0x66, 0xec, 0x48,
+ 0x93, 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3,
+ 0x19, 0x10, 0x4e, 0x26,
+ 0x94, 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04,
+ 0x84, 0x91, 0xa6, 0xef,
+ 0x95, 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68,
+ 0xf6, 0xe7, 0x04, 0x81,
+ 0x96, 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc,
+ 0x60, 0x7d, 0x21, 0x33,
+ 0x97, 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0,
+ 0x12, 0x0b, 0x83, 0x5d,
+ 0x98, 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91,
+ 0x99, 0xbc, 0x32, 0x62,
+ 0x99, 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd,
+ 0xeb, 0xca, 0x90, 0x0c,
+ 0x9a, 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49,
+ 0x7d, 0x50, 0xb5, 0xbe,
+ 0x9b, 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25,
+ 0x0f, 0x26, 0x17, 0xd0,
+ 0x9c, 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2,
+ 0x92, 0xa7, 0xff, 0x19,
+ 0x9d, 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e,
+ 0xe0, 0xd1, 0x5d, 0x77,
+ 0x9e, 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a,
+ 0x76, 0x4b, 0x78, 0xc5,
+ 0x9f, 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56,
+ 0x04, 0x3d, 0xda, 0xab,
+ 0xa0, 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66,
+ 0xfb, 0x3e, 0x7e, 0xe5,
+ 0xa1, 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a,
+ 0x89, 0x48, 0xdc, 0x8b,
+ 0xa2, 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe,
+ 0x1f, 0xd2, 0xf9, 0x39,
+ 0xa3, 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2,
+ 0x6d, 0xa4, 0x5b, 0x57,
+ 0xa4, 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15,
+ 0xf0, 0x25, 0xb3, 0x9e,
+ 0xa5, 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79,
+ 0x82, 0x53, 0x11, 0xf0,
+ 0xa6, 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd,
+ 0x14, 0xc9, 0x34, 0x42,
+ 0xa7, 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1,
+ 0x66, 0xbf, 0x96, 0x2c,
+ 0xa8, 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80,
+ 0xed, 0x08, 0x27, 0x13,
+ 0xa9, 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec,
+ 0x9f, 0x7e, 0x85, 0x7d,
+ 0xaa, 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58,
+ 0x09, 0xe4, 0xa0, 0xcf,
+ 0xab, 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34,
+ 0x7b, 0x92, 0x02, 0xa1,
+ 0xac, 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3,
+ 0xe6, 0x13, 0xea, 0x68,
+ 0xad, 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f,
+ 0x94, 0x65, 0x48, 0x06,
+ 0xae, 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b,
+ 0x02, 0xff, 0x6d, 0xb4,
+ 0xaf, 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47,
+ 0x70, 0x89, 0xcf, 0xda,
+ 0xb0, 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69,
+ 0xd7, 0x52, 0xcc, 0xca,
+ 0xb1, 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05,
+ 0xa5, 0x24, 0x6e, 0xa4,
+ 0xb2, 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1,
+ 0x33, 0xbe, 0x4b, 0x16,
+ 0xb3, 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd,
+ 0x41, 0xc8, 0xe9, 0x78,
+ 0xb4, 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a,
+ 0xdc, 0x49, 0x01, 0xb1,
+ 0xb5, 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76,
+ 0xae, 0x3f, 0xa3, 0xdf,
+ 0xb6, 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2,
+ 0x38, 0xa5, 0x86, 0x6d,
+ 0xb7, 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae,
+ 0x4a, 0xd3, 0x24, 0x03,
+ 0xb8, 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f,
+ 0xc1, 0x64, 0x95, 0x3c,
+ 0xb9, 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3,
+ 0xb3, 0x12, 0x37, 0x52,
+ 0xba, 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57,
+ 0x25, 0x88, 0x12, 0xe0,
+ 0xbb, 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b,
+ 0x57, 0xfe, 0xb0, 0x8e,
+ 0xbc, 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc,
+ 0xca, 0x7f, 0x58, 0x47,
+ 0xbd, 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90,
+ 0xb8, 0x09, 0xfa, 0x29,
+ 0xbe, 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24,
+ 0x2e, 0x93, 0xdf, 0x9b,
+ 0xbf, 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48,
+ 0x5c, 0xe5, 0x7d, 0xf5,
+ 0xc0, 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44,
+ 0x13, 0x95, 0x54, 0x07,
+ 0xc1, 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28,
+ 0x61, 0xe3, 0xf6, 0x69,
+ 0xc2, 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c,
+ 0xf7, 0x79, 0xd3, 0xdb,
+ 0xc3, 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0,
+ 0x85, 0x0f, 0x71, 0xb5,
+ 0xc4, 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37,
+ 0x18, 0x8e, 0x99, 0x7c,
+ 0xc5, 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b,
+ 0x6a, 0xf8, 0x3b, 0x12,
+ 0xc6, 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef,
+ 0xfc, 0x62, 0x1e, 0xa0,
+ 0xc7, 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83,
+ 0x8e, 0x14, 0xbc, 0xce,
+ 0xc8, 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2,
+ 0x05, 0xa3, 0x0d, 0xf1,
+ 0xc9, 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce,
+ 0x77, 0xd5, 0xaf, 0x9f,
+ 0xca, 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a,
+ 0xe1, 0x4f, 0x8a, 0x2d,
+ 0xcb, 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16,
+ 0x93, 0x39, 0x28, 0x43,
+ 0xcc, 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1,
+ 0x0e, 0xb8, 0xc0, 0x8a,
+ 0xcd, 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd,
+ 0x7c, 0xce, 0x62, 0xe4,
+ 0xce, 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09,
+ 0xea, 0x54, 0x47, 0x56,
+ 0xcf, 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65,
+ 0x98, 0x22, 0xe5, 0x38,
+ 0xd0, 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b,
+ 0x3f, 0xf9, 0xe6, 0x28,
+ 0xd1, 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27,
+ 0x4d, 0x8f, 0x44, 0x46,
+ 0xd2, 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93,
+ 0xdb, 0x15, 0x61, 0xf4,
+ 0xd3, 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff,
+ 0xa9, 0x63, 0xc3, 0x9a,
+ 0xd4, 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38,
+ 0x34, 0xe2, 0x2b, 0x53,
+ 0xd5, 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54,
+ 0x46, 0x94, 0x89, 0x3d,
+ 0xd6, 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0,
+ 0xd0, 0x0e, 0xac, 0x8f,
+ 0xd7, 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c,
+ 0xa2, 0x78, 0x0e, 0xe1,
+ 0xd8, 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad,
+ 0x29, 0xcf, 0xbf, 0xde,
+ 0xd9, 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1,
+ 0x5b, 0xb9, 0x1d, 0xb0,
+ 0xda, 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75,
+ 0xcd, 0x23, 0x38, 0x02,
+ 0xdb, 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19,
+ 0xbf, 0x55, 0x9a, 0x6c,
+ 0xdc, 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde,
+ 0x22, 0xd4, 0x72, 0xa5,
+ 0xdd, 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2,
+ 0x50, 0xa2, 0xd0, 0xcb,
+ 0xde, 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06,
+ 0xc6, 0x38, 0xf5, 0x79,
+ 0xdf, 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a,
+ 0xb4, 0x4e, 0x57, 0x17,
+ 0xe0, 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a,
+ 0x4b, 0x4d, 0xf3, 0x59,
+ 0xe1, 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36,
+ 0x39, 0x3b, 0x51, 0x37,
+ 0xe2, 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82,
+ 0xaf, 0xa1, 0x74, 0x85,
+ 0xe3, 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee,
+ 0xdd, 0xd7, 0xd6, 0xeb,
+ 0xe4, 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29,
+ 0x40, 0x56, 0x3e, 0x22,
+ 0xe5, 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45,
+ 0x32, 0x20, 0x9c, 0x4c,
+ 0xe6, 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1,
+ 0xa4, 0xba, 0xb9, 0xfe,
+ 0xe7, 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d,
+ 0xd6, 0xcc, 0x1b, 0x90,
+ 0xe8, 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc,
+ 0x5d, 0x7b, 0xaa, 0xaf,
+ 0xe9, 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0,
+ 0x2f, 0x0d, 0x08, 0xc1,
+ 0xea, 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64,
+ 0xb9, 0x97, 0x2d, 0x73,
+ 0xeb, 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08,
+ 0xcb, 0xe1, 0x8f, 0x1d,
+ 0xec, 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf,
+ 0x56, 0x60, 0x67, 0xd4,
+ 0xed, 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3,
+ 0x24, 0x16, 0xc5, 0xba,
+ 0xee, 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17,
+ 0xb2, 0x8c, 0xe0, 0x08,
+ 0xef, 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b,
+ 0xc0, 0xfa, 0x42, 0x66,
+ 0xf0, 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55,
+ 0x67, 0x21, 0x41, 0x76,
+ 0xf1, 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39,
+ 0x15, 0x57, 0xe3, 0x18,
+ 0xf2, 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d,
+ 0x83, 0xcd, 0xc6, 0xaa,
+ 0xf3, 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1,
+ 0xf1, 0xbb, 0x64, 0xc4,
+ 0xf4, 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26,
+ 0x6c, 0x3a, 0x8c, 0x0d,
+ 0xf5, 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a,
+ 0x1e, 0x4c, 0x2e, 0x63,
+ 0xf6, 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe,
+ 0x88, 0xd6, 0x0b, 0xd1,
+ 0xf7, 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92,
+ 0xfa, 0xa0, 0xa9, 0xbf,
+ 0xf8, 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3,
+ 0x71, 0x17, 0x18, 0x80,
+ 0xf9, 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf,
+ 0x03, 0x61, 0xba, 0xee,
+ 0xfa, 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b,
+ 0x95, 0xfb, 0x9f, 0x5c,
+ 0xfb, 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07,
+ 0xe7, 0x8d, 0x3d, 0x32,
+ 0xfc, 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0,
+ 0x7a, 0x0c, 0xd5, 0xfb,
+ 0xfd, 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac,
+ 0x08, 0x7a, 0x77, 0x95,
+ 0xfe, 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18,
+ 0x9e, 0xe0, 0x52, 0x27,
+ 0xff, 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74,
+ 0xec, 0x96, 0xf0, 0x49,
+ },
+ { /* 1 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x94, 0xa5, 0x64, 0x0d, 0x89, 0xa2, 0x7f, 0x4b, 0x6e, 0x16, 0xc3, 0x4c,
+ 0xe8, 0xe3, 0xd0, 0x4d,
+ 0xeb, 0x89, 0xc8, 0x1a, 0xd1, 0x87, 0xfe, 0x96, 0xdc, 0x2c, 0x45, 0x98,
+ 0x13, 0x05, 0x63, 0x9a,
+ 0x7f, 0x2c, 0xac, 0x17, 0x58, 0x25, 0x81, 0xdd, 0xb2, 0x3a, 0x86, 0xd4,
+ 0xfb, 0xe6, 0xb3, 0xd7,
+ 0x15, 0xd1, 0x53, 0x34, 0x61, 0xcd, 0x3f, 0xef, 0x7b, 0x58, 0x8a, 0xf3,
+ 0x26, 0x0a, 0xc6, 0xf7,
+ 0x81, 0x74, 0x37, 0x39, 0xe8, 0x6f, 0x40, 0xa4, 0x15, 0x4e, 0x49, 0xbf,
+ 0xce, 0xe9, 0x16, 0xba,
+ 0xfe, 0x58, 0x9b, 0x2e, 0xb0, 0x4a, 0xc1, 0x79, 0xa7, 0x74, 0xcf, 0x6b,
+ 0x35, 0x0f, 0xa5, 0x6d,
+ 0x6a, 0xfd, 0xff, 0x23, 0x39, 0xe8, 0xbe, 0x32, 0xc9, 0x62, 0x0c, 0x27,
+ 0xdd, 0xec, 0x75, 0x20,
+ 0x2a, 0x61, 0xa6, 0x68, 0xc2, 0x59, 0x7e, 0x1d, 0xf6, 0xb0, 0xd7, 0x25,
+ 0x4c, 0x14, 0x4f, 0x2d,
+ 0xbe, 0xc4, 0xc2, 0x65, 0x4b, 0xfb, 0x01, 0x56, 0x98, 0xa6, 0x14, 0x69,
+ 0xa4, 0xf7, 0x9f, 0x60,
+ 0xc1, 0xe8, 0x6e, 0x72, 0x13, 0xde, 0x80, 0x8b, 0x2a, 0x9c, 0x92, 0xbd,
+ 0x5f, 0x11, 0x2c, 0xb7,
+ 0x55, 0x4d, 0x0a, 0x7f, 0x9a, 0x7c, 0xff, 0xc0, 0x44, 0x8a, 0x51, 0xf1,
+ 0xb7, 0xf2, 0xfc, 0xfa,
+ 0x3f, 0xb0, 0xf5, 0x5c, 0xa3, 0x94, 0x41, 0xf2, 0x8d, 0xe8, 0x5d, 0xd6,
+ 0x6a, 0x1e, 0x89, 0xda,
+ 0xab, 0x15, 0x91, 0x51, 0x2a, 0x36, 0x3e, 0xb9, 0xe3, 0xfe, 0x9e, 0x9a,
+ 0x82, 0xfd, 0x59, 0x97,
+ 0xd4, 0x39, 0x3d, 0x46, 0x72, 0x13, 0xbf, 0x64, 0x51, 0xc4, 0x18, 0x4e,
+ 0x79, 0x1b, 0xea, 0x40,
+ 0x40, 0x9c, 0x59, 0x4b, 0xfb, 0xb1, 0xc0, 0x2f, 0x3f, 0xd2, 0xdb, 0x02,
+ 0x91, 0xf8, 0x3a, 0x0d,
+ 0x54, 0xc2, 0x8f, 0xd0, 0x47, 0xb2, 0xfc, 0x3a, 0x2f, 0xa3, 0x6d, 0x4a,
+ 0x98, 0x28, 0x9e, 0x5a,
+ 0xc0, 0x67, 0xeb, 0xdd, 0xce, 0x10, 0x83, 0x71, 0x41, 0xb5, 0xae, 0x06,
+ 0x70, 0xcb, 0x4e, 0x17,
+ 0xbf, 0x4b, 0x47, 0xca, 0x96, 0x35, 0x02, 0xac, 0xf3, 0x8f, 0x28, 0xd2,
+ 0x8b, 0x2d, 0xfd, 0xc0,
+ 0x2b, 0xee, 0x23, 0xc7, 0x1f, 0x97, 0x7d, 0xe7, 0x9d, 0x99, 0xeb, 0x9e,
+ 0x63, 0xce, 0x2d, 0x8d,
+ 0x41, 0x13, 0xdc, 0xe4, 0x26, 0x7f, 0xc3, 0xd5, 0x54, 0xfb, 0xe7, 0xb9,
+ 0xbe, 0x22, 0x58, 0xad,
+ 0xd5, 0xb6, 0xb8, 0xe9, 0xaf, 0xdd, 0xbc, 0x9e, 0x3a, 0xed, 0x24, 0xf5,
+ 0x56, 0xc1, 0x88, 0xe0,
+ 0xaa, 0x9a, 0x14, 0xfe, 0xf7, 0xf8, 0x3d, 0x43, 0x88, 0xd7, 0xa2, 0x21,
+ 0xad, 0x27, 0x3b, 0x37,
+ 0x3e, 0x3f, 0x70, 0xf3, 0x7e, 0x5a, 0x42, 0x08, 0xe6, 0xc1, 0x61, 0x6d,
+ 0x45, 0xc4, 0xeb, 0x7a,
+ 0x7e, 0xa3, 0x29, 0xb8, 0x85, 0xeb, 0x82, 0x27, 0xd9, 0x13, 0xba, 0x6f,
+ 0xd4, 0x3c, 0xd1, 0x77,
+ 0xea, 0x06, 0x4d, 0xb5, 0x0c, 0x49, 0xfd, 0x6c, 0xb7, 0x05, 0x79, 0x23,
+ 0x3c, 0xdf, 0x01, 0x3a,
+ 0x95, 0x2a, 0xe1, 0xa2, 0x54, 0x6c, 0x7c, 0xb1, 0x05, 0x3f, 0xff, 0xf7,
+ 0xc7, 0x39, 0xb2, 0xed,
+ 0x01, 0x8f, 0x85, 0xaf, 0xdd, 0xce, 0x03, 0xfa, 0x6b, 0x29, 0x3c, 0xbb,
+ 0x2f, 0xda, 0x62, 0xa0,
+ 0x6b, 0x72, 0x7a, 0x8c, 0xe4, 0x26, 0xbd, 0xc8, 0xa2, 0x4b, 0x30, 0x9c,
+ 0xf2, 0x36, 0x17, 0x80,
+ 0xff, 0xd7, 0x1e, 0x81, 0x6d, 0x84, 0xc2, 0x83, 0xcc, 0x5d, 0xf3, 0xd0,
+ 0x1a, 0xd5, 0xc7, 0xcd,
+ 0x80, 0xfb, 0xb2, 0x96, 0x35, 0xa1, 0x43, 0x5e, 0x7e, 0x67, 0x75, 0x04,
+ 0xe1, 0x33, 0x74, 0x1a,
+ 0x14, 0x5e, 0xd6, 0x9b, 0xbc, 0x03, 0x3c, 0x15, 0x10, 0x71, 0xb6, 0x48,
+ 0x09, 0xd0, 0xa4, 0x57,
+ 0xa8, 0x47, 0xdd, 0x63, 0x8e, 0xa7, 0x3b, 0x74, 0x5e, 0x85, 0xda, 0x94,
+ 0xf3, 0x50, 0xff, 0xb4,
+ 0x3c, 0xe2, 0xb9, 0x6e, 0x07, 0x05, 0x44, 0x3f, 0x30, 0x93, 0x19, 0xd8,
+ 0x1b, 0xb3, 0x2f, 0xf9,
+ 0x43, 0xce, 0x15, 0x79, 0x5f, 0x20, 0xc5, 0xe2, 0x82, 0xa9, 0x9f, 0x0c,
+ 0xe0, 0x55, 0x9c, 0x2e,
+ 0xd7, 0x6b, 0x71, 0x74, 0xd6, 0x82, 0xba, 0xa9, 0xec, 0xbf, 0x5c, 0x40,
+ 0x08, 0xb6, 0x4c, 0x63,
+ 0xbd, 0x96, 0x8e, 0x57, 0xef, 0x6a, 0x04, 0x9b, 0x25, 0xdd, 0x50, 0x67,
+ 0xd5, 0x5a, 0x39, 0x43,
+ 0x29, 0x33, 0xea, 0x5a, 0x66, 0xc8, 0x7b, 0xd0, 0x4b, 0xcb, 0x93, 0x2b,
+ 0x3d, 0xb9, 0xe9, 0x0e,
+ 0x56, 0x1f, 0x46, 0x4d, 0x3e, 0xed, 0xfa, 0x0d, 0xf9, 0xf1, 0x15, 0xff,
+ 0xc6, 0x5f, 0x5a, 0xd9,
+ 0xc2, 0xba, 0x22, 0x40, 0xb7, 0x4f, 0x85, 0x46, 0x97, 0xe7, 0xd6, 0xb3,
+ 0x2e, 0xbc, 0x8a, 0x94,
+ 0x82, 0x26, 0x7b, 0x0b, 0x4c, 0xfe, 0x45, 0x69, 0xa8, 0x35, 0x0d, 0xb1,
+ 0xbf, 0x44, 0xb0, 0x99,
+ 0x16, 0x83, 0x1f, 0x06, 0xc5, 0x5c, 0x3a, 0x22, 0xc6, 0x23, 0xce, 0xfd,
+ 0x57, 0xa7, 0x60, 0xd4,
+ 0x69, 0xaf, 0xb3, 0x11, 0x9d, 0x79, 0xbb, 0xff, 0x74, 0x19, 0x48, 0x29,
+ 0xac, 0x41, 0xd3, 0x03,
+ 0xfd, 0x0a, 0xd7, 0x1c, 0x14, 0xdb, 0xc4, 0xb4, 0x1a, 0x0f, 0x8b, 0x65,
+ 0x44, 0xa2, 0x03, 0x4e,
+ 0x97, 0xf7, 0x28, 0x3f, 0x2d, 0x33, 0x7a, 0x86, 0xd3, 0x6d, 0x87, 0x42,
+ 0x99, 0x4e, 0x76, 0x6e,
+ 0x03, 0x52, 0x4c, 0x32, 0xa4, 0x91, 0x05, 0xcd, 0xbd, 0x7b, 0x44, 0x0e,
+ 0x71, 0xad, 0xa6, 0x23,
+ 0x7c, 0x7e, 0xe0, 0x25, 0xfc, 0xb4, 0x84, 0x10, 0x0f, 0x41, 0xc2, 0xda,
+ 0x8a, 0x4b, 0x15, 0xf4,
+ 0xe8, 0xdb, 0x84, 0x28, 0x75, 0x16, 0xfb, 0x5b, 0x61, 0x57, 0x01, 0x96,
+ 0x62, 0xa8, 0xc5, 0xb9,
+ 0xfc, 0x85, 0x52, 0xb3, 0xc9, 0x15, 0xc7, 0x4e, 0x71, 0x26, 0xb7, 0xde,
+ 0x6b, 0x78, 0x61, 0xee,
+ 0x68, 0x20, 0x36, 0xbe, 0x40, 0xb7, 0xb8, 0x05, 0x1f, 0x30, 0x74, 0x92,
+ 0x83, 0x9b, 0xb1, 0xa3,
+ 0x17, 0x0c, 0x9a, 0xa9, 0x18, 0x92, 0x39, 0xd8, 0xad, 0x0a, 0xf2, 0x46,
+ 0x78, 0x7d, 0x02, 0x74,
+ 0x83, 0xa9, 0xfe, 0xa4, 0x91, 0x30, 0x46, 0x93, 0xc3, 0x1c, 0x31, 0x0a,
+ 0x90, 0x9e, 0xd2, 0x39,
+ 0xe9, 0x54, 0x01, 0x87, 0xa8, 0xd8, 0xf8, 0xa1, 0x0a, 0x7e, 0x3d, 0x2d,
+ 0x4d, 0x72, 0xa7, 0x19,
+ 0x7d, 0xf1, 0x65, 0x8a, 0x21, 0x7a, 0x87, 0xea, 0x64, 0x68, 0xfe, 0x61,
+ 0xa5, 0x91, 0x77, 0x54,
+ 0x02, 0xdd, 0xc9, 0x9d, 0x79, 0x5f, 0x06, 0x37, 0xd6, 0x52, 0x78, 0xb5,
+ 0x5e, 0x77, 0xc4, 0x83,
+ 0x96, 0x78, 0xad, 0x90, 0xf0, 0xfd, 0x79, 0x7c, 0xb8, 0x44, 0xbb, 0xf9,
+ 0xb6, 0x94, 0x14, 0xce,
+ 0xd6, 0xe4, 0xf4, 0xdb, 0x0b, 0x4c, 0xb9, 0x53, 0x87, 0x96, 0x60, 0xfb,
+ 0x27, 0x6c, 0x2e, 0xc3,
+ 0x42, 0x41, 0x90, 0xd6, 0x82, 0xee, 0xc6, 0x18, 0xe9, 0x80, 0xa3, 0xb7,
+ 0xcf, 0x8f, 0xfe, 0x8e,
+ 0x3d, 0x6d, 0x3c, 0xc1, 0xda, 0xcb, 0x47, 0xc5, 0x5b, 0xba, 0x25, 0x63,
+ 0x34, 0x69, 0x4d, 0x59,
+ 0xa9, 0xc8, 0x58, 0xcc, 0x53, 0x69, 0x38, 0x8e, 0x35, 0xac, 0xe6, 0x2f,
+ 0xdc, 0x8a, 0x9d, 0x14,
+ 0xc3, 0x35, 0xa7, 0xef, 0x6a, 0x81, 0x86, 0xbc, 0xfc, 0xce, 0xea, 0x08,
+ 0x01, 0x66, 0xe8, 0x34,
+ 0x57, 0x90, 0xc3, 0xe2, 0xe3, 0x23, 0xf9, 0xf7, 0x92, 0xd8, 0x29, 0x44,
+ 0xe9, 0x85, 0x38, 0x79,
+ 0x28, 0xbc, 0x6f, 0xf5, 0xbb, 0x06, 0x78, 0x2a, 0x20, 0xe2, 0xaf, 0x90,
+ 0x12, 0x63, 0x8b, 0xae,
+ 0xbc, 0x19, 0x0b, 0xf8, 0x32, 0xa4, 0x07, 0x61, 0x4e, 0xf4, 0x6c, 0xdc,
+ 0xfa, 0x80, 0x5b, 0xe3,
+ 0x93, 0x8e, 0x79, 0xc6, 0xdf, 0x8d, 0x76, 0xe8, 0xbc, 0xc9, 0x77, 0xeb,
+ 0x25, 0xa0, 0x3d, 0xab,
+ 0x07, 0x2b, 0x1d, 0xcb, 0x56, 0x2f, 0x09, 0xa3, 0xd2, 0xdf, 0xb4, 0xa7,
+ 0xcd, 0x43, 0xed, 0xe6,
+ 0x78, 0x07, 0xb1, 0xdc, 0x0e, 0x0a, 0x88, 0x7e, 0x60, 0xe5, 0x32, 0x73,
+ 0x36, 0xa5, 0x5e, 0x31,
+ 0xec, 0xa2, 0xd5, 0xd1, 0x87, 0xa8, 0xf7, 0x35, 0x0e, 0xf3, 0xf1, 0x3f,
+ 0xde, 0x46, 0x8e, 0x7c,
+ 0x86, 0x5f, 0x2a, 0xf2, 0xbe, 0x40, 0x49, 0x07, 0xc7, 0x91, 0xfd, 0x18,
+ 0x03, 0xaa, 0xfb, 0x5c,
+ 0x12, 0xfa, 0x4e, 0xff, 0x37, 0xe2, 0x36, 0x4c, 0xa9, 0x87, 0x3e, 0x54,
+ 0xeb, 0x49, 0x2b, 0x11,
+ 0x6d, 0xd6, 0xe2, 0xe8, 0x6f, 0xc7, 0xb7, 0x91, 0x1b, 0xbd, 0xb8, 0x80,
+ 0x10, 0xaf, 0x98, 0xc6,
+ 0xf9, 0x73, 0x86, 0xe5, 0xe6, 0x65, 0xc8, 0xda, 0x75, 0xab, 0x7b, 0xcc,
+ 0xf8, 0x4c, 0x48, 0x8b,
+ 0xb9, 0xef, 0xdf, 0xae, 0x1d, 0xd4, 0x08, 0xf5, 0x4a, 0x79, 0xa0, 0xce,
+ 0x69, 0xb4, 0x72, 0x86,
+ 0x2d, 0x4a, 0xbb, 0xa3, 0x94, 0x76, 0x77, 0xbe, 0x24, 0x6f, 0x63, 0x82,
+ 0x81, 0x57, 0xa2, 0xcb,
+ 0x52, 0x66, 0x17, 0xb4, 0xcc, 0x53, 0xf6, 0x63, 0x96, 0x55, 0xe5, 0x56,
+ 0x7a, 0xb1, 0x11, 0x1c,
+ 0xc6, 0xc3, 0x73, 0xb9, 0x45, 0xf1, 0x89, 0x28, 0xf8, 0x43, 0x26, 0x1a,
+ 0x92, 0x52, 0xc1, 0x51,
+ 0xac, 0x3e, 0x8c, 0x9a, 0x7c, 0x19, 0x37, 0x1a, 0x31, 0x21, 0x2a, 0x3d,
+ 0x4f, 0xbe, 0xb4, 0x71,
+ 0x38, 0x9b, 0xe8, 0x97, 0xf5, 0xbb, 0x48, 0x51, 0x5f, 0x37, 0xe9, 0x71,
+ 0xa7, 0x5d, 0x64, 0x3c,
+ 0x47, 0xb7, 0x44, 0x80, 0xad, 0x9e, 0xc9, 0x8c, 0xed, 0x0d, 0x6f, 0xa5,
+ 0x5c, 0xbb, 0xd7, 0xeb,
+ 0xd3, 0x12, 0x20, 0x8d, 0x24, 0x3c, 0xb6, 0xc7, 0x83, 0x1b, 0xac, 0xe9,
+ 0xb4, 0x58, 0x07, 0xa6,
+ 0xc7, 0x4c, 0xf6, 0x16, 0x98, 0x3f, 0x8a, 0xd2, 0x93, 0x6a, 0x1a, 0xa1,
+ 0xbd, 0x88, 0xa3, 0xf1,
+ 0x53, 0xe9, 0x92, 0x1b, 0x11, 0x9d, 0xf5, 0x99, 0xfd, 0x7c, 0xd9, 0xed,
+ 0x55, 0x6b, 0x73, 0xbc,
+ 0x2c, 0xc5, 0x3e, 0x0c, 0x49, 0xb8, 0x74, 0x44, 0x4f, 0x46, 0x5f, 0x39,
+ 0xae, 0x8d, 0xc0, 0x6b,
+ 0xb8, 0x60, 0x5a, 0x01, 0xc0, 0x1a, 0x0b, 0x0f, 0x21, 0x50, 0x9c, 0x75,
+ 0x46, 0x6e, 0x10, 0x26,
+ 0xd2, 0x9d, 0xa5, 0x22, 0xf9, 0xf2, 0xb5, 0x3d, 0xe8, 0x32, 0x90, 0x52,
+ 0x9b, 0x82, 0x65, 0x06,
+ 0x46, 0x38, 0xc1, 0x2f, 0x70, 0x50, 0xca, 0x76, 0x86, 0x24, 0x53, 0x1e,
+ 0x73, 0x61, 0xb5, 0x4b,
+ 0x39, 0x14, 0x6d, 0x38, 0x28, 0x75, 0x4b, 0xab, 0x34, 0x1e, 0xd5, 0xca,
+ 0x88, 0x87, 0x06, 0x9c,
+ 0xad, 0xb1, 0x09, 0x35, 0xa1, 0xd7, 0x34, 0xe0, 0x5a, 0x08, 0x16, 0x86,
+ 0x60, 0x64, 0xd6, 0xd1,
+ 0xed, 0x2d, 0x50, 0x7e, 0x5a, 0x66, 0xf4, 0xcf, 0x65, 0xda, 0xcd, 0x84,
+ 0xf1, 0x9c, 0xec, 0xdc,
+ 0x79, 0x88, 0x34, 0x73, 0xd3, 0xc4, 0x8b, 0x84, 0x0b, 0xcc, 0x0e, 0xc8,
+ 0x19, 0x7f, 0x3c, 0x91,
+ 0x06, 0xa4, 0x98, 0x64, 0x8b, 0xe1, 0x0a, 0x59, 0xb9, 0xf6, 0x88, 0x1c,
+ 0xe2, 0x99, 0x8f, 0x46,
+ 0x92, 0x01, 0xfc, 0x69, 0x02, 0x43, 0x75, 0x12, 0xd7, 0xe0, 0x4b, 0x50,
+ 0x0a, 0x7a, 0x5f, 0x0b,
+ 0xf8, 0xfc, 0x03, 0x4a, 0x3b, 0xab, 0xcb, 0x20, 0x1e, 0x82, 0x47, 0x77,
+ 0xd7, 0x96, 0x2a, 0x2b,
+ 0x6c, 0x59, 0x67, 0x47, 0xb2, 0x09, 0xb4, 0x6b, 0x70, 0x94, 0x84, 0x3b,
+ 0x3f, 0x75, 0xfa, 0x66,
+ 0x13, 0x75, 0xcb, 0x50, 0xea, 0x2c, 0x35, 0xb6, 0xc2, 0xae, 0x02, 0xef,
+ 0xc4, 0x93, 0x49, 0xb1,
+ 0x87, 0xd0, 0xaf, 0x5d, 0x63, 0x8e, 0x4a, 0xfd, 0xac, 0xb8, 0xc1, 0xa3,
+ 0x2c, 0x70, 0x99, 0xfc,
+ 0x3b, 0xc9, 0xa4, 0xa5, 0x51, 0x2a, 0x4d, 0x9c, 0xe2, 0x4c, 0xad, 0x7f,
+ 0xd6, 0xf0, 0xc2, 0x1f,
+ 0xaf, 0x6c, 0xc0, 0xa8, 0xd8, 0x88, 0x32, 0xd7, 0x8c, 0x5a, 0x6e, 0x33,
+ 0x3e, 0x13, 0x12, 0x52,
+ 0xd0, 0x40, 0x6c, 0xbf, 0x80, 0xad, 0xb3, 0x0a, 0x3e, 0x60, 0xe8, 0xe7,
+ 0xc5, 0xf5, 0xa1, 0x85,
+ 0x44, 0xe5, 0x08, 0xb2, 0x09, 0x0f, 0xcc, 0x41, 0x50, 0x76, 0x2b, 0xab,
+ 0x2d, 0x16, 0x71, 0xc8,
+ 0x2e, 0x18, 0xf7, 0x91, 0x30, 0xe7, 0x72, 0x73, 0x99, 0x14, 0x27, 0x8c,
+ 0xf0, 0xfa, 0x04, 0xe8,
+ 0xba, 0xbd, 0x93, 0x9c, 0xb9, 0x45, 0x0d, 0x38, 0xf7, 0x02, 0xe4, 0xc0,
+ 0x18, 0x19, 0xd4, 0xa5,
+ 0xc5, 0x91, 0x3f, 0x8b, 0xe1, 0x60, 0x8c, 0xe5, 0x45, 0x38, 0x62, 0x14,
+ 0xe3, 0xff, 0x67, 0x72,
+ 0x51, 0x34, 0x5b, 0x86, 0x68, 0xc2, 0xf3, 0xae, 0x2b, 0x2e, 0xa1, 0x58,
+ 0x0b, 0x1c, 0xb7, 0x3f,
+ 0x11, 0xa8, 0x02, 0xcd, 0x93, 0x73, 0x33, 0x81, 0x14, 0xfc, 0x7a, 0x5a,
+ 0x9a, 0xe4, 0x8d, 0x32,
+ 0x85, 0x0d, 0x66, 0xc0, 0x1a, 0xd1, 0x4c, 0xca, 0x7a, 0xea, 0xb9, 0x16,
+ 0x72, 0x07, 0x5d, 0x7f,
+ 0xfa, 0x21, 0xca, 0xd7, 0x42, 0xf4, 0xcd, 0x17, 0xc8, 0xd0, 0x3f, 0xc2,
+ 0x89, 0xe1, 0xee, 0xa8,
+ 0x6e, 0x84, 0xae, 0xda, 0xcb, 0x56, 0xb2, 0x5c, 0xa6, 0xc6, 0xfc, 0x8e,
+ 0x61, 0x02, 0x3e, 0xe5,
+ 0x04, 0x79, 0x51, 0xf9, 0xf2, 0xbe, 0x0c, 0x6e, 0x6f, 0xa4, 0xf0, 0xa9,
+ 0xbc, 0xee, 0x4b, 0xc5,
+ 0x90, 0xdc, 0x35, 0xf4, 0x7b, 0x1c, 0x73, 0x25, 0x01, 0xb2, 0x33, 0xe5,
+ 0x54, 0x0d, 0x9b, 0x88,
+ 0xef, 0xf0, 0x99, 0xe3, 0x23, 0x39, 0xf2, 0xf8, 0xb3, 0x88, 0xb5, 0x31,
+ 0xaf, 0xeb, 0x28, 0x5f,
+ 0x7b, 0x55, 0xfd, 0xee, 0xaa, 0x9b, 0x8d, 0xb3, 0xdd, 0x9e, 0x76, 0x7d,
+ 0x47, 0x08, 0xf8, 0x12,
+ 0x6f, 0x0b, 0x2b, 0x75, 0x16, 0x98, 0xb1, 0xa6, 0xcd, 0xef, 0xc0, 0x35,
+ 0x4e, 0xd8, 0x5c, 0x45,
+ 0xfb, 0xae, 0x4f, 0x78, 0x9f, 0x3a, 0xce, 0xed, 0xa3, 0xf9, 0x03, 0x79,
+ 0xa6, 0x3b, 0x8c, 0x08,
+ 0x84, 0x82, 0xe3, 0x6f, 0xc7, 0x1f, 0x4f, 0x30, 0x11, 0xc3, 0x85, 0xad,
+ 0x5d, 0xdd, 0x3f, 0xdf,
+ 0x10, 0x27, 0x87, 0x62, 0x4e, 0xbd, 0x30, 0x7b, 0x7f, 0xd5, 0x46, 0xe1,
+ 0xb5, 0x3e, 0xef, 0x92,
+ 0x7a, 0xda, 0x78, 0x41, 0x77, 0x55, 0x8e, 0x49, 0xb6, 0xb7, 0x4a, 0xc6,
+ 0x68, 0xd2, 0x9a, 0xb2,
+ 0xee, 0x7f, 0x1c, 0x4c, 0xfe, 0xf7, 0xf1, 0x02, 0xd8, 0xa1, 0x89, 0x8a,
+ 0x80, 0x31, 0x4a, 0xff,
+ 0x91, 0x53, 0xb0, 0x5b, 0xa6, 0xd2, 0x70, 0xdf, 0x6a, 0x9b, 0x0f, 0x5e,
+ 0x7b, 0xd7, 0xf9, 0x28,
+ 0x05, 0xf6, 0xd4, 0x56, 0x2f, 0x70, 0x0f, 0x94, 0x04, 0x8d, 0xcc, 0x12,
+ 0x93, 0x34, 0x29, 0x65,
+ 0x45, 0x6a, 0x8d, 0x1d, 0xd4, 0xc1, 0xcf, 0xbb, 0x3b, 0x5f, 0x17, 0x10,
+ 0x02, 0xcc, 0x13, 0x68,
+ 0xd1, 0xcf, 0xe9, 0x10, 0x5d, 0x63, 0xb0, 0xf0, 0x55, 0x49, 0xd4, 0x5c,
+ 0xea, 0x2f, 0xc3, 0x25,
+ 0xae, 0xe3, 0x45, 0x07, 0x05, 0x46, 0x31, 0x2d, 0xe7, 0x73, 0x52, 0x88,
+ 0x11, 0xc9, 0x70, 0xf2,
+ 0x3a, 0x46, 0x21, 0x0a, 0x8c, 0xe4, 0x4e, 0x66, 0x89, 0x65, 0x91, 0xc4,
+ 0xf9, 0x2a, 0xa0, 0xbf,
+ 0x50, 0xbb, 0xde, 0x29, 0xb5, 0x0c, 0xf0, 0x54, 0x40, 0x07, 0x9d, 0xe3,
+ 0x24, 0xc6, 0xd5, 0x9f,
+ 0xc4, 0x1e, 0xba, 0x24, 0x3c, 0xae, 0x8f, 0x1f, 0x2e, 0x11, 0x5e, 0xaf,
+ 0xcc, 0x25, 0x05, 0xd2,
+ 0xbb, 0x32, 0x16, 0x33, 0x64, 0x8b, 0x0e, 0xc2, 0x9c, 0x2b, 0xd8, 0x7b,
+ 0x37, 0xc3, 0xb6, 0x05,
+ 0x2f, 0x97, 0x72, 0x3e, 0xed, 0x29, 0x71, 0x89, 0xf2, 0x3d, 0x1b, 0x37,
+ 0xdf, 0x20, 0x66, 0x48,
+ 0xe5, 0xdf, 0xf2, 0x4f, 0x7d, 0xd9, 0xec, 0x13, 0xbb, 0x51, 0xee, 0x15,
+ 0x4a, 0x83, 0x7a, 0x95,
+ 0x71, 0x7a, 0x96, 0x42, 0xf4, 0x7b, 0x93, 0x58, 0xd5, 0x47, 0x2d, 0x59,
+ 0xa2, 0x60, 0xaa, 0xd8,
+ 0x0e, 0x56, 0x3a, 0x55, 0xac, 0x5e, 0x12, 0x85, 0x67, 0x7d, 0xab, 0x8d,
+ 0x59, 0x86, 0x19, 0x0f,
+ 0x9a, 0xf3, 0x5e, 0x58, 0x25, 0xfc, 0x6d, 0xce, 0x09, 0x6b, 0x68, 0xc1,
+ 0xb1, 0x65, 0xc9, 0x42,
+ 0xf0, 0x0e, 0xa1, 0x7b, 0x1c, 0x14, 0xd3, 0xfc, 0xc0, 0x09, 0x64, 0xe6,
+ 0x6c, 0x89, 0xbc, 0x62,
+ 0x64, 0xab, 0xc5, 0x76, 0x95, 0xb6, 0xac, 0xb7, 0xae, 0x1f, 0xa7, 0xaa,
+ 0x84, 0x6a, 0x6c, 0x2f,
+ 0x1b, 0x87, 0x69, 0x61, 0xcd, 0x93, 0x2d, 0x6a, 0x1c, 0x25, 0x21, 0x7e,
+ 0x7f, 0x8c, 0xdf, 0xf8,
+ 0x8f, 0x22, 0x0d, 0x6c, 0x44, 0x31, 0x52, 0x21, 0x72, 0x33, 0xe2, 0x32,
+ 0x97, 0x6f, 0x0f, 0xb5,
+ 0xcf, 0xbe, 0x54, 0x27, 0xbf, 0x80, 0x92, 0x0e, 0x4d, 0xe1, 0x39, 0x30,
+ 0x06, 0x97, 0x35, 0xb8,
+ 0x5b, 0x1b, 0x30, 0x2a, 0x36, 0x22, 0xed, 0x45, 0x23, 0xf7, 0xfa, 0x7c,
+ 0xee, 0x74, 0xe5, 0xf5,
+ 0x24, 0x37, 0x9c, 0x3d, 0x6e, 0x07, 0x6c, 0x98, 0x91, 0xcd, 0x7c, 0xa8,
+ 0x15, 0x92, 0x56, 0x22,
+ 0xb0, 0x92, 0xf8, 0x30, 0xe7, 0xa5, 0x13, 0xd3, 0xff, 0xdb, 0xbf, 0xe4,
+ 0xfd, 0x71, 0x86, 0x6f,
+ 0xda, 0x6f, 0x07, 0x13, 0xde, 0x4d, 0xad, 0xe1, 0x36, 0xb9, 0xb3, 0xc3,
+ 0x20, 0x9d, 0xf3, 0x4f,
+ 0x4e, 0xca, 0x63, 0x1e, 0x57, 0xef, 0xd2, 0xaa, 0x58, 0xaf, 0x70, 0x8f,
+ 0xc8, 0x7e, 0x23, 0x02,
+ 0x31, 0xe6, 0xcf, 0x09, 0x0f, 0xca, 0x53, 0x77, 0xea, 0x95, 0xf6, 0x5b,
+ 0x33, 0x98, 0x90, 0xd5,
+ 0xa5, 0x43, 0xab, 0x04, 0x86, 0x68, 0x2c, 0x3c, 0x84, 0x83, 0x35, 0x17,
+ 0xdb, 0x7b, 0x40, 0x98,
+ 0xb1, 0x1d, 0x7d, 0x9f, 0x3a, 0x6b, 0x10, 0x29, 0x94, 0xf2, 0x83, 0x5f,
+ 0xd2, 0xab, 0xe4, 0xcf,
+ 0x25, 0xb8, 0x19, 0x92, 0xb3, 0xc9, 0x6f, 0x62, 0xfa, 0xe4, 0x40, 0x13,
+ 0x3a, 0x48, 0x34, 0x82,
+ 0x5a, 0x94, 0xb5, 0x85, 0xeb, 0xec, 0xee, 0xbf, 0x48, 0xde, 0xc6, 0xc7,
+ 0xc1, 0xae, 0x87, 0x55,
+ 0xce, 0x31, 0xd1, 0x88, 0x62, 0x4e, 0x91, 0xf4, 0x26, 0xc8, 0x05, 0x8b,
+ 0x29, 0x4d, 0x57, 0x18,
+ 0xa4, 0xcc, 0x2e, 0xab, 0x5b, 0xa6, 0x2f, 0xc6, 0xef, 0xaa, 0x09, 0xac,
+ 0xf4, 0xa1, 0x22, 0x38,
+ 0x30, 0x69, 0x4a, 0xa6, 0xd2, 0x04, 0x50, 0x8d, 0x81, 0xbc, 0xca, 0xe0,
+ 0x1c, 0x42, 0xf2, 0x75,
+ 0x4f, 0x45, 0xe6, 0xb1, 0x8a, 0x21, 0xd1, 0x50, 0x33, 0x86, 0x4c, 0x34,
+ 0xe7, 0xa4, 0x41, 0xa2,
+ 0xdb, 0xe0, 0x82, 0xbc, 0x03, 0x83, 0xae, 0x1b, 0x5d, 0x90, 0x8f, 0x78,
+ 0x0f, 0x47, 0x91, 0xef,
+ 0x9b, 0x7c, 0xdb, 0xf7, 0xf8, 0x32, 0x6e, 0x34, 0x62, 0x42, 0x54, 0x7a,
+ 0x9e, 0xbf, 0xab, 0xe2,
+ 0x0f, 0xd9, 0xbf, 0xfa, 0x71, 0x90, 0x11, 0x7f, 0x0c, 0x54, 0x97, 0x36,
+ 0x76, 0x5c, 0x7b, 0xaf,
+ 0x70, 0xf5, 0x13, 0xed, 0x29, 0xb5, 0x90, 0xa2, 0xbe, 0x6e, 0x11, 0xe2,
+ 0x8d, 0xba, 0xc8, 0x78,
+ 0xe4, 0x50, 0x77, 0xe0, 0xa0, 0x17, 0xef, 0xe9, 0xd0, 0x78, 0xd2, 0xae,
+ 0x65, 0x59, 0x18, 0x35,
+ 0x8e, 0xad, 0x88, 0xc3, 0x99, 0xff, 0x51, 0xdb, 0x19, 0x1a, 0xde, 0x89,
+ 0xb8, 0xb5, 0x6d, 0x15,
+ 0x1a, 0x08, 0xec, 0xce, 0x10, 0x5d, 0x2e, 0x90, 0x77, 0x0c, 0x1d, 0xc5,
+ 0x50, 0x56, 0xbd, 0x58,
+ 0x65, 0x24, 0x40, 0xd9, 0x48, 0x78, 0xaf, 0x4d, 0xc5, 0x36, 0x9b, 0x11,
+ 0xab, 0xb0, 0x0e, 0x8f,
+ 0xf1, 0x81, 0x24, 0xd4, 0xc1, 0xda, 0xd0, 0x06, 0xab, 0x20, 0x58, 0x5d,
+ 0x43, 0x53, 0xde, 0xc2,
+ 0x4d, 0x98, 0x2f, 0x2c, 0xf3, 0x7e, 0xd7, 0x67, 0xe5, 0xd4, 0x34, 0x81,
+ 0xb9, 0xd3, 0x85, 0x21,
+ 0xd9, 0x3d, 0x4b, 0x21, 0x7a, 0xdc, 0xa8, 0x2c, 0x8b, 0xc2, 0xf7, 0xcd,
+ 0x51, 0x30, 0x55, 0x6c,
+ 0xa6, 0x11, 0xe7, 0x36, 0x22, 0xf9, 0x29, 0xf1, 0x39, 0xf8, 0x71, 0x19,
+ 0xaa, 0xd6, 0xe6, 0xbb,
+ 0x32, 0xb4, 0x83, 0x3b, 0xab, 0x5b, 0x56, 0xba, 0x57, 0xee, 0xb2, 0x55,
+ 0x42, 0x35, 0x36, 0xf6,
+ 0x58, 0x49, 0x7c, 0x18, 0x92, 0xb3, 0xe8, 0x88, 0x9e, 0x8c, 0xbe, 0x72,
+ 0x9f, 0xd9, 0x43, 0xd6,
+ 0xcc, 0xec, 0x18, 0x15, 0x1b, 0x11, 0x97, 0xc3, 0xf0, 0x9a, 0x7d, 0x3e,
+ 0x77, 0x3a, 0x93, 0x9b,
+ 0xb3, 0xc0, 0xb4, 0x02, 0x43, 0x34, 0x16, 0x1e, 0x42, 0xa0, 0xfb, 0xea,
+ 0x8c, 0xdc, 0x20, 0x4c,
+ 0x27, 0x65, 0xd0, 0x0f, 0xca, 0x96, 0x69, 0x55, 0x2c, 0xb6, 0x38, 0xa6,
+ 0x64, 0x3f, 0xf0, 0x01,
+ 0x67, 0xf9, 0x89, 0x44, 0x31, 0x27, 0xa9, 0x7a, 0x13, 0x64, 0xe3, 0xa4,
+ 0xf5, 0xc7, 0xca, 0x0c,
+ 0xf3, 0x5c, 0xed, 0x49, 0xb8, 0x85, 0xd6, 0x31, 0x7d, 0x72, 0x20, 0xe8,
+ 0x1d, 0x24, 0x1a, 0x41,
+ 0x8c, 0x70, 0x41, 0x5e, 0xe0, 0xa0, 0x57, 0xec, 0xcf, 0x48, 0xa6, 0x3c,
+ 0xe6, 0xc2, 0xa9, 0x96,
+ 0x18, 0xd5, 0x25, 0x53, 0x69, 0x02, 0x28, 0xa7, 0xa1, 0x5e, 0x65, 0x70,
+ 0x0e, 0x21, 0x79, 0xdb,
+ 0x72, 0x28, 0xda, 0x70, 0x50, 0xea, 0x96, 0x95, 0x68, 0x3c, 0x69, 0x57,
+ 0xd3, 0xcd, 0x0c, 0xfb,
+ 0xe6, 0x8d, 0xbe, 0x7d, 0xd9, 0x48, 0xe9, 0xde, 0x06, 0x2a, 0xaa, 0x1b,
+ 0x3b, 0x2e, 0xdc, 0xb6,
+ 0x99, 0xa1, 0x12, 0x6a, 0x81, 0x6d, 0x68, 0x03, 0xb4, 0x10, 0x2c, 0xcf,
+ 0xc0, 0xc8, 0x6f, 0x61,
+ 0x0d, 0x04, 0x76, 0x67, 0x08, 0xcf, 0x17, 0x48, 0xda, 0x06, 0xef, 0x83,
+ 0x28, 0x2b, 0xbf, 0x2c,
+ 0x19, 0x5a, 0xa0, 0xfc, 0xb4, 0xcc, 0x2b, 0x5d, 0xca, 0x77, 0x59, 0xcb,
+ 0x21, 0xfb, 0x1b, 0x7b,
+ 0x8d, 0xff, 0xc4, 0xf1, 0x3d, 0x6e, 0x54, 0x16, 0xa4, 0x61, 0x9a, 0x87,
+ 0xc9, 0x18, 0xcb, 0x36,
+ 0xf2, 0xd3, 0x68, 0xe6, 0x65, 0x4b, 0xd5, 0xcb, 0x16, 0x5b, 0x1c, 0x53,
+ 0x32, 0xfe, 0x78, 0xe1,
+ 0x66, 0x76, 0x0c, 0xeb, 0xec, 0xe9, 0xaa, 0x80, 0x78, 0x4d, 0xdf, 0x1f,
+ 0xda, 0x1d, 0xa8, 0xac,
+ 0x0c, 0x8b, 0xf3, 0xc8, 0xd5, 0x01, 0x14, 0xb2, 0xb1, 0x2f, 0xd3, 0x38,
+ 0x07, 0xf1, 0xdd, 0x8c,
+ 0x98, 0x2e, 0x97, 0xc5, 0x5c, 0xa3, 0x6b, 0xf9, 0xdf, 0x39, 0x10, 0x74,
+ 0xef, 0x12, 0x0d, 0xc1,
+ 0xe7, 0x02, 0x3b, 0xd2, 0x04, 0x86, 0xea, 0x24, 0x6d, 0x03, 0x96, 0xa0,
+ 0x14, 0xf4, 0xbe, 0x16,
+ 0x73, 0xa7, 0x5f, 0xdf, 0x8d, 0x24, 0x95, 0x6f, 0x03, 0x15, 0x55, 0xec,
+ 0xfc, 0x17, 0x6e, 0x5b,
+ 0x33, 0x3b, 0x06, 0x94, 0x76, 0x95, 0x55, 0x40, 0x3c, 0xc7, 0x8e, 0xee,
+ 0x6d, 0xef, 0x54, 0x56,
+ 0xa7, 0x9e, 0x62, 0x99, 0xff, 0x37, 0x2a, 0x0b, 0x52, 0xd1, 0x4d, 0xa2,
+ 0x85, 0x0c, 0x84, 0x1b,
+ 0xd8, 0xb2, 0xce, 0x8e, 0xa7, 0x12, 0xab, 0xd6, 0xe0, 0xeb, 0xcb, 0x76,
+ 0x7e, 0xea, 0x37, 0xcc,
+ 0x4c, 0x17, 0xaa, 0x83, 0x2e, 0xb0, 0xd4, 0x9d, 0x8e, 0xfd, 0x08, 0x3a,
+ 0x96, 0x09, 0xe7, 0x81,
+ 0x26, 0xea, 0x55, 0xa0, 0x17, 0x58, 0x6a, 0xaf, 0x47, 0x9f, 0x04, 0x1d,
+ 0x4b, 0xe5, 0x92, 0xa1,
+ 0xb2, 0x4f, 0x31, 0xad, 0x9e, 0xfa, 0x15, 0xe4, 0x29, 0x89, 0xc7, 0x51,
+ 0xa3, 0x06, 0x42, 0xec,
+ 0xcd, 0x63, 0x9d, 0xba, 0xc6, 0xdf, 0x94, 0x39, 0x9b, 0xb3, 0x41, 0x85,
+ 0x58, 0xe0, 0xf1, 0x3b,
+ 0x59, 0xc6, 0xf9, 0xb7, 0x4f, 0x7d, 0xeb, 0x72, 0xf5, 0xa5, 0x82, 0xc9,
+ 0xb0, 0x03, 0x21, 0x76,
+ 0x76, 0x51, 0x8b, 0x89, 0xa2, 0x54, 0x9a, 0xfb, 0x07, 0x98, 0x99, 0xfe,
+ 0x6f, 0x23, 0x47, 0x3e,
+ 0xe2, 0xf4, 0xef, 0x84, 0x2b, 0xf6, 0xe5, 0xb0, 0x69, 0x8e, 0x5a, 0xb2,
+ 0x87, 0xc0, 0x97, 0x73,
+ 0x9d, 0xd8, 0x43, 0x93, 0x73, 0xd3, 0x64, 0x6d, 0xdb, 0xb4, 0xdc, 0x66,
+ 0x7c, 0x26, 0x24, 0xa4,
+ 0x09, 0x7d, 0x27, 0x9e, 0xfa, 0x71, 0x1b, 0x26, 0xb5, 0xa2, 0x1f, 0x2a,
+ 0x94, 0xc5, 0xf4, 0xe9,
+ 0x63, 0x80, 0xd8, 0xbd, 0xc3, 0x99, 0xa5, 0x14, 0x7c, 0xc0, 0x13, 0x0d,
+ 0x49, 0x29, 0x81, 0xc9,
+ 0xf7, 0x25, 0xbc, 0xb0, 0x4a, 0x3b, 0xda, 0x5f, 0x12, 0xd6, 0xd0, 0x41,
+ 0xa1, 0xca, 0x51, 0x84,
+ 0x88, 0x09, 0x10, 0xa7, 0x12, 0x1e, 0x5b, 0x82, 0xa0, 0xec, 0x56, 0x95,
+ 0x5a, 0x2c, 0xe2, 0x53,
+ 0x1c, 0xac, 0x74, 0xaa, 0x9b, 0xbc, 0x24, 0xc9, 0xce, 0xfa, 0x95, 0xd9,
+ 0xb2, 0xcf, 0x32, 0x1e,
+ 0x5c, 0x30, 0x2d, 0xe1, 0x60, 0x0d, 0xe4, 0xe6, 0xf1, 0x28, 0x4e, 0xdb,
+ 0x23, 0x37, 0x08, 0x13,
+ 0xc8, 0x95, 0x49, 0xec, 0xe9, 0xaf, 0x9b, 0xad, 0x9f, 0x3e, 0x8d, 0x97,
+ 0xcb, 0xd4, 0xd8, 0x5e,
+ 0xb7, 0xb9, 0xe5, 0xfb, 0xb1, 0x8a, 0x1a, 0x70, 0x2d, 0x04, 0x0b, 0x43,
+ 0x30, 0x32, 0x6b, 0x89,
+ 0x23, 0x1c, 0x81, 0xf6, 0x38, 0x28, 0x65, 0x3b, 0x43, 0x12, 0xc8, 0x0f,
+ 0xd8, 0xd1, 0xbb, 0xc4,
+ 0x49, 0xe1, 0x7e, 0xd5, 0x01, 0xc0, 0xdb, 0x09, 0x8a, 0x70, 0xc4, 0x28,
+ 0x05, 0x3d, 0xce, 0xe4,
+ 0xdd, 0x44, 0x1a, 0xd8, 0x88, 0x62, 0xa4, 0x42, 0xe4, 0x66, 0x07, 0x64,
+ 0xed, 0xde, 0x1e, 0xa9,
+ 0xa2, 0x68, 0xb6, 0xcf, 0xd0, 0x47, 0x25, 0x9f, 0x56, 0x5c, 0x81, 0xb0,
+ 0x16, 0x38, 0xad, 0x7e,
+ 0x36, 0xcd, 0xd2, 0xc2, 0x59, 0xe5, 0x5a, 0xd4, 0x38, 0x4a, 0x42, 0xfc,
+ 0xfe, 0xdb, 0x7d, 0x33,
+ 0x22, 0x93, 0x04, 0x59, 0xe5, 0xe6, 0x66, 0xc1, 0x28, 0x3b, 0xf4, 0xb4,
+ 0xf7, 0x0b, 0xd9, 0x64,
+ 0xb6, 0x36, 0x60, 0x54, 0x6c, 0x44, 0x19, 0x8a, 0x46, 0x2d, 0x37, 0xf8,
+ 0x1f, 0xe8, 0x09, 0x29,
+ 0xc9, 0x1a, 0xcc, 0x43, 0x34, 0x61, 0x98, 0x57, 0xf4, 0x17, 0xb1, 0x2c,
+ 0xe4, 0x0e, 0xba, 0xfe,
+ 0x5d, 0xbf, 0xa8, 0x4e, 0xbd, 0xc3, 0xe7, 0x1c, 0x9a, 0x01, 0x72, 0x60,
+ 0x0c, 0xed, 0x6a, 0xb3,
+ 0x37, 0x42, 0x57, 0x6d, 0x84, 0x2b, 0x59, 0x2e, 0x53, 0x63, 0x7e, 0x47,
+ 0xd1, 0x01, 0x1f, 0x93,
+ 0xa3, 0xe7, 0x33, 0x60, 0x0d, 0x89, 0x26, 0x65, 0x3d, 0x75, 0xbd, 0x0b,
+ 0x39, 0xe2, 0xcf, 0xde,
+ 0xdc, 0xcb, 0x9f, 0x77, 0x55, 0xac, 0xa7, 0xb8, 0x8f, 0x4f, 0x3b, 0xdf,
+ 0xc2, 0x04, 0x7c, 0x09,
+ 0x48, 0x6e, 0xfb, 0x7a, 0xdc, 0x0e, 0xd8, 0xf3, 0xe1, 0x59, 0xf8, 0x93,
+ 0x2a, 0xe7, 0xac, 0x44,
+ 0x08, 0xf2, 0xa2, 0x31, 0x27, 0xbf, 0x18, 0xdc, 0xde, 0x8b, 0x23, 0x91,
+ 0xbb, 0x1f, 0x96, 0x49,
+ 0x9c, 0x57, 0xc6, 0x3c, 0xae, 0x1d, 0x67, 0x97, 0xb0, 0x9d, 0xe0, 0xdd,
+ 0x53, 0xfc, 0x46, 0x04,
+ 0xe3, 0x7b, 0x6a, 0x2b, 0xf6, 0x38, 0xe6, 0x4a, 0x02, 0xa7, 0x66, 0x09,
+ 0xa8, 0x1a, 0xf5, 0xd3,
+ 0x77, 0xde, 0x0e, 0x26, 0x7f, 0x9a, 0x99, 0x01, 0x6c, 0xb1, 0xa5, 0x45,
+ 0x40, 0xf9, 0x25, 0x9e,
+ 0x1d, 0x23, 0xf1, 0x05, 0x46, 0x72, 0x27, 0x33, 0xa5, 0xd3, 0xa9, 0x62,
+ 0x9d, 0x15, 0x50, 0xbe,
+ 0x89, 0x86, 0x95, 0x08, 0xcf, 0xd0, 0x58, 0x78, 0xcb, 0xc5, 0x6a, 0x2e,
+ 0x75, 0xf6, 0x80, 0xf3,
+ 0xf6, 0xaa, 0x39, 0x1f, 0x97, 0xf5, 0xd9, 0xa5, 0x79, 0xff, 0xec, 0xfa,
+ 0x8e, 0x10, 0x33, 0x24,
+ 0x62, 0x0f, 0x5d, 0x12, 0x1e, 0x57, 0xa6, 0xee, 0x17, 0xe9, 0x2f, 0xb6,
+ 0x66, 0xf3, 0xe3, 0x69,
+ 0xde, 0x16, 0x56, 0xea, 0x2c, 0xf3, 0xa1, 0x8f, 0x59, 0x1d, 0x43, 0x6a,
+ 0x9c, 0x73, 0xb8, 0x8a,
+ 0x4a, 0xb3, 0x32, 0xe7, 0xa5, 0x51, 0xde, 0xc4, 0x37, 0x0b, 0x80, 0x26,
+ 0x74, 0x90, 0x68, 0xc7,
+ 0x35, 0x9f, 0x9e, 0xf0, 0xfd, 0x74, 0x5f, 0x19, 0x85, 0x31, 0x06, 0xf2,
+ 0x8f, 0x76, 0xdb, 0x10,
+ 0xa1, 0x3a, 0xfa, 0xfd, 0x74, 0xd6, 0x20, 0x52, 0xeb, 0x27, 0xc5, 0xbe,
+ 0x67, 0x95, 0x0b, 0x5d,
+ 0xcb, 0xc7, 0x05, 0xde, 0x4d, 0x3e, 0x9e, 0x60, 0x22, 0x45, 0xc9, 0x99,
+ 0xba, 0x79, 0x7e, 0x7d,
+ 0x5f, 0x62, 0x61, 0xd3, 0xc4, 0x9c, 0xe1, 0x2b, 0x4c, 0x53, 0x0a, 0xd5,
+ 0x52, 0x9a, 0xae, 0x30,
+ 0x20, 0x4e, 0xcd, 0xc4, 0x9c, 0xb9, 0x60, 0xf6, 0xfe, 0x69, 0x8c, 0x01,
+ 0xa9, 0x7c, 0x1d, 0xe7,
+ 0xb4, 0xeb, 0xa9, 0xc9, 0x15, 0x1b, 0x1f, 0xbd, 0x90, 0x7f, 0x4f, 0x4d,
+ 0x41, 0x9f, 0xcd, 0xaa,
+ 0xf4, 0x77, 0xf0, 0x82, 0xee, 0xaa, 0xdf, 0x92, 0xaf, 0xad, 0x94, 0x4f,
+ 0xd0, 0x67, 0xf7, 0xa7,
+ 0x60, 0xd2, 0x94, 0x8f, 0x67, 0x08, 0xa0, 0xd9, 0xc1, 0xbb, 0x57, 0x03,
+ 0x38, 0x84, 0x27, 0xea,
+ 0x1f, 0xfe, 0x38, 0x98, 0x3f, 0x2d, 0x21, 0x04, 0x73, 0x81, 0xd1, 0xd7,
+ 0xc3, 0x62, 0x94, 0x3d,
+ 0x8b, 0x5b, 0x5c, 0x95, 0xb6, 0x8f, 0x5e, 0x4f, 0x1d, 0x97, 0x12, 0x9b,
+ 0x2b, 0x81, 0x44, 0x70,
+ 0xe1, 0xa6, 0xa3, 0xb6, 0x8f, 0x67, 0xe0, 0x7d, 0xd4, 0xf5, 0x1e, 0xbc,
+ 0xf6, 0x6d, 0x31, 0x50,
+ 0x75, 0x03, 0xc7, 0xbb, 0x06, 0xc5, 0x9f, 0x36, 0xba, 0xe3, 0xdd, 0xf0,
+ 0x1e, 0x8e, 0xe1, 0x1d,
+ 0x0a, 0x2f, 0x6b, 0xac, 0x5e, 0xe0, 0x1e, 0xeb, 0x08, 0xd9, 0x5b, 0x24,
+ 0xe5, 0x68, 0x52, 0xca,
+ 0x9e, 0x8a, 0x0f, 0xa1, 0xd7, 0x42, 0x61, 0xa0, 0x66, 0xcf, 0x98, 0x68,
+ 0x0d, 0x8b, 0x82, 0x87,
+ 0x8a, 0xd4, 0xd9, 0x3a, 0x6b, 0x41, 0x5d, 0xb5, 0x76, 0xbe, 0x2e, 0x20,
+ 0x04, 0x5b, 0x26, 0xd0,
+ 0x1e, 0x71, 0xbd, 0x37, 0xe2, 0xe3, 0x22, 0xfe, 0x18, 0xa8, 0xed, 0x6c,
+ 0xec, 0xb8, 0xf6, 0x9d,
+ 0x61, 0x5d, 0x11, 0x20, 0xba, 0xc6, 0xa3, 0x23, 0xaa, 0x92, 0x6b, 0xb8,
+ 0x17, 0x5e, 0x45, 0x4a,
+ 0xf5, 0xf8, 0x75, 0x2d, 0x33, 0x64, 0xdc, 0x68, 0xc4, 0x84, 0xa8, 0xf4,
+ 0xff, 0xbd, 0x95, 0x07,
+ 0x9f, 0x05, 0x8a, 0x0e, 0x0a, 0x8c, 0x62, 0x5a, 0x0d, 0xe6, 0xa4, 0xd3,
+ 0x22, 0x51, 0xe0, 0x27,
+ 0x0b, 0xa0, 0xee, 0x03, 0x83, 0x2e, 0x1d, 0x11, 0x63, 0xf0, 0x67, 0x9f,
+ 0xca, 0xb2, 0x30, 0x6a,
+ 0x74, 0x8c, 0x42, 0x14, 0xdb, 0x0b, 0x9c, 0xcc, 0xd1, 0xca, 0xe1, 0x4b,
+ 0x31, 0x54, 0x83, 0xbd,
+ 0xe0, 0x29, 0x26, 0x19, 0x52, 0xa9, 0xe3, 0x87, 0xbf, 0xdc, 0x22, 0x07,
+ 0xd9, 0xb7, 0x53, 0xf0,
+ 0xa0, 0xb5, 0x7f, 0x52, 0xa9, 0x18, 0x23, 0xa8, 0x80, 0x0e, 0xf9, 0x05,
+ 0x48, 0x4f, 0x69, 0xfd,
+ 0x34, 0x10, 0x1b, 0x5f, 0x20, 0xba, 0x5c, 0xe3, 0xee, 0x18, 0x3a, 0x49,
+ 0xa0, 0xac, 0xb9, 0xb0,
+ 0x4b, 0x3c, 0xb7, 0x48, 0x78, 0x9f, 0xdd, 0x3e, 0x5c, 0x22, 0xbc, 0x9d,
+ 0x5b, 0x4a, 0x0a, 0x67,
+ 0xdf, 0x99, 0xd3, 0x45, 0xf1, 0x3d, 0xa2, 0x75, 0x32, 0x34, 0x7f, 0xd1,
+ 0xb3, 0xa9, 0xda, 0x2a,
+ 0xb5, 0x64, 0x2c, 0x66, 0xc8, 0xd5, 0x1c, 0x47, 0xfb, 0x56, 0x73, 0xf6,
+ 0x6e, 0x45, 0xaf, 0x0a,
+ 0x21, 0xc1, 0x48, 0x6b, 0x41, 0x77, 0x63, 0x0c, 0x95, 0x40, 0xb0, 0xba,
+ 0x86, 0xa6, 0x7f, 0x47,
+ 0x5e, 0xed, 0xe4, 0x7c, 0x19, 0x52, 0xe2, 0xd1, 0x27, 0x7a, 0x36, 0x6e,
+ 0x7d, 0x40, 0xcc, 0x90,
+ 0xca, 0x48, 0x80, 0x71, 0x90, 0xf0, 0x9d, 0x9a, 0x49, 0x6c, 0xf5, 0x22,
+ 0x95, 0xa3, 0x1c, 0xdd,
+ },
+ { /* 2 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x3c, 0x48, 0xf8, 0x48, 0x48, 0xc8, 0x8e, 0x2a, 0xf5, 0x02, 0xdd,
+ 0x14, 0x30, 0x44, 0x8e,
+ 0x40, 0x78, 0x90, 0x33, 0x90, 0x90, 0x53, 0xdf, 0x54, 0x29, 0x04, 0x79,
+ 0x28, 0x60, 0x88, 0xdf,
+ 0x60, 0x44, 0xd8, 0xcb, 0xd8, 0xd8, 0x9b, 0x51, 0x7e, 0xdc, 0x06, 0xa4,
+ 0x3c, 0x50, 0xcc, 0x51,
+ 0x80, 0xf0, 0xe3, 0x66, 0xe3, 0xe3, 0xa6, 0x7d, 0xa8, 0x52, 0x08, 0xf2,
+ 0x50, 0xc0, 0xd3, 0x7d,
+ 0xa0, 0xcc, 0xab, 0x9e, 0xab, 0xab, 0x6e, 0xf3, 0x82, 0xa7, 0x0a, 0x2f,
+ 0x44, 0xf0, 0x97, 0xf3,
+ 0xc0, 0x88, 0x73, 0x55, 0x73, 0x73, 0xf5, 0xa2, 0xfc, 0x7b, 0x0c, 0x8b,
+ 0x78, 0xa0, 0x5b, 0xa2,
+ 0xe0, 0xb4, 0x3b, 0xad, 0x3b, 0x3b, 0x3d, 0x2c, 0xd6, 0x8e, 0x0e, 0x56,
+ 0x6c, 0x90, 0x1f, 0x2c,
+ 0xc3, 0x23, 0x05, 0xcc, 0x05, 0x05, 0x8f, 0xfa, 0x93, 0xa4, 0x10, 0x27,
+ 0xa0, 0x43, 0x65, 0xfa,
+ 0xe3, 0x1f, 0x4d, 0x34, 0x4d, 0x4d, 0x47, 0x74, 0xb9, 0x51, 0x12, 0xfa,
+ 0xb4, 0x73, 0x21, 0x74,
+ 0x83, 0x5b, 0x95, 0xff, 0x95, 0x95, 0xdc, 0x25, 0xc7, 0x8d, 0x14, 0x5e,
+ 0x88, 0x23, 0xed, 0x25,
+ 0xa3, 0x67, 0xdd, 0x07, 0xdd, 0xdd, 0x14, 0xab, 0xed, 0x78, 0x16, 0x83,
+ 0x9c, 0x13, 0xa9, 0xab,
+ 0x43, 0xd3, 0xe6, 0xaa, 0xe6, 0xe6, 0x29, 0x87, 0x3b, 0xf6, 0x18, 0xd5,
+ 0xf0, 0x83, 0xb6, 0x87,
+ 0x63, 0xef, 0xae, 0x52, 0xae, 0xae, 0xe1, 0x09, 0x11, 0x03, 0x1a, 0x08,
+ 0xe4, 0xb3, 0xf2, 0x09,
+ 0x03, 0xab, 0x76, 0x99, 0x76, 0x76, 0x7a, 0x58, 0x6f, 0xdf, 0x1c, 0xac,
+ 0xd8, 0xe3, 0x3e, 0x58,
+ 0x23, 0x97, 0x3e, 0x61, 0x3e, 0x3e, 0xb2, 0xd6, 0x45, 0x2a, 0x1e, 0x71,
+ 0xcc, 0xd3, 0x7a, 0xd6,
+ 0x45, 0x46, 0x0a, 0x5b, 0x0a, 0x0a, 0xdd, 0x37, 0xe5, 0x8b, 0x20, 0x4e,
+ 0x83, 0x86, 0xca, 0x37,
+ 0x65, 0x7a, 0x42, 0xa3, 0x42, 0x42, 0x15, 0xb9, 0xcf, 0x7e, 0x22, 0x93,
+ 0x97, 0xb6, 0x8e, 0xb9,
+ 0x05, 0x3e, 0x9a, 0x68, 0x9a, 0x9a, 0x8e, 0xe8, 0xb1, 0xa2, 0x24, 0x37,
+ 0xab, 0xe6, 0x42, 0xe8,
+ 0x25, 0x02, 0xd2, 0x90, 0xd2, 0xd2, 0x46, 0x66, 0x9b, 0x57, 0x26, 0xea,
+ 0xbf, 0xd6, 0x06, 0x66,
+ 0xc5, 0xb6, 0xe9, 0x3d, 0xe9, 0xe9, 0x7b, 0x4a, 0x4d, 0xd9, 0x28, 0xbc,
+ 0xd3, 0x46, 0x19, 0x4a,
+ 0xe5, 0x8a, 0xa1, 0xc5, 0xa1, 0xa1, 0xb3, 0xc4, 0x67, 0x2c, 0x2a, 0x61,
+ 0xc7, 0x76, 0x5d, 0xc4,
+ 0x85, 0xce, 0x79, 0x0e, 0x79, 0x79, 0x28, 0x95, 0x19, 0xf0, 0x2c, 0xc5,
+ 0xfb, 0x26, 0x91, 0x95,
+ 0xa5, 0xf2, 0x31, 0xf6, 0x31, 0x31, 0xe0, 0x1b, 0x33, 0x05, 0x2e, 0x18,
+ 0xef, 0x16, 0xd5, 0x1b,
+ 0x86, 0x65, 0x0f, 0x97, 0x0f, 0x0f, 0x52, 0xcd, 0x76, 0x2f, 0x30, 0x69,
+ 0x23, 0xc5, 0xaf, 0xcd,
+ 0xa6, 0x59, 0x47, 0x6f, 0x47, 0x47, 0x9a, 0x43, 0x5c, 0xda, 0x32, 0xb4,
+ 0x37, 0xf5, 0xeb, 0x43,
+ 0xc6, 0x1d, 0x9f, 0xa4, 0x9f, 0x9f, 0x01, 0x12, 0x22, 0x06, 0x34, 0x10,
+ 0x0b, 0xa5, 0x27, 0x12,
+ 0xe6, 0x21, 0xd7, 0x5c, 0xd7, 0xd7, 0xc9, 0x9c, 0x08, 0xf3, 0x36, 0xcd,
+ 0x1f, 0x95, 0x63, 0x9c,
+ 0x06, 0x95, 0xec, 0xf1, 0xec, 0xec, 0xf4, 0xb0, 0xde, 0x7d, 0x38, 0x9b,
+ 0x73, 0x05, 0x7c, 0xb0,
+ 0x26, 0xa9, 0xa4, 0x09, 0xa4, 0xa4, 0x3c, 0x3e, 0xf4, 0x88, 0x3a, 0x46,
+ 0x67, 0x35, 0x38, 0x3e,
+ 0x46, 0xed, 0x7c, 0xc2, 0x7c, 0x7c, 0xa7, 0x6f, 0x8a, 0x54, 0x3c, 0xe2,
+ 0x5b, 0x65, 0xf4, 0x6f,
+ 0x66, 0xd1, 0x34, 0x3a, 0x34, 0x34, 0x6f, 0xe1, 0xa0, 0xa1, 0x3e, 0x3f,
+ 0x4f, 0x55, 0xb0, 0xe1,
+ 0x8a, 0x8c, 0x14, 0xb6, 0x14, 0x14, 0x79, 0x6e, 0x09, 0xd5, 0x40, 0x9c,
+ 0xc5, 0xcf, 0x57, 0x6e,
+ 0xaa, 0xb0, 0x5c, 0x4e, 0x5c, 0x5c, 0xb1, 0xe0, 0x23, 0x20, 0x42, 0x41,
+ 0xd1, 0xff, 0x13, 0xe0,
+ 0xca, 0xf4, 0x84, 0x85, 0x84, 0x84, 0x2a, 0xb1, 0x5d, 0xfc, 0x44, 0xe5,
+ 0xed, 0xaf, 0xdf, 0xb1,
+ 0xea, 0xc8, 0xcc, 0x7d, 0xcc, 0xcc, 0xe2, 0x3f, 0x77, 0x09, 0x46, 0x38,
+ 0xf9, 0x9f, 0x9b, 0x3f,
+ 0x0a, 0x7c, 0xf7, 0xd0, 0xf7, 0xf7, 0xdf, 0x13, 0xa1, 0x87, 0x48, 0x6e,
+ 0x95, 0x0f, 0x84, 0x13,
+ 0x2a, 0x40, 0xbf, 0x28, 0xbf, 0xbf, 0x17, 0x9d, 0x8b, 0x72, 0x4a, 0xb3,
+ 0x81, 0x3f, 0xc0, 0x9d,
+ 0x4a, 0x04, 0x67, 0xe3, 0x67, 0x67, 0x8c, 0xcc, 0xf5, 0xae, 0x4c, 0x17,
+ 0xbd, 0x6f, 0x0c, 0xcc,
+ 0x6a, 0x38, 0x2f, 0x1b, 0x2f, 0x2f, 0x44, 0x42, 0xdf, 0x5b, 0x4e, 0xca,
+ 0xa9, 0x5f, 0x48, 0x42,
+ 0x49, 0xaf, 0x11, 0x7a, 0x11, 0x11, 0xf6, 0x94, 0x9a, 0x71, 0x50, 0xbb,
+ 0x65, 0x8c, 0x32, 0x94,
+ 0x69, 0x93, 0x59, 0x82, 0x59, 0x59, 0x3e, 0x1a, 0xb0, 0x84, 0x52, 0x66,
+ 0x71, 0xbc, 0x76, 0x1a,
+ 0x09, 0xd7, 0x81, 0x49, 0x81, 0x81, 0xa5, 0x4b, 0xce, 0x58, 0x54, 0xc2,
+ 0x4d, 0xec, 0xba, 0x4b,
+ 0x29, 0xeb, 0xc9, 0xb1, 0xc9, 0xc9, 0x6d, 0xc5, 0xe4, 0xad, 0x56, 0x1f,
+ 0x59, 0xdc, 0xfe, 0xc5,
+ 0xc9, 0x5f, 0xf2, 0x1c, 0xf2, 0xf2, 0x50, 0xe9, 0x32, 0x23, 0x58, 0x49,
+ 0x35, 0x4c, 0xe1, 0xe9,
+ 0xe9, 0x63, 0xba, 0xe4, 0xba, 0xba, 0x98, 0x67, 0x18, 0xd6, 0x5a, 0x94,
+ 0x21, 0x7c, 0xa5, 0x67,
+ 0x89, 0x27, 0x62, 0x2f, 0x62, 0x62, 0x03, 0x36, 0x66, 0x0a, 0x5c, 0x30,
+ 0x1d, 0x2c, 0x69, 0x36,
+ 0xa9, 0x1b, 0x2a, 0xd7, 0x2a, 0x2a, 0xcb, 0xb8, 0x4c, 0xff, 0x5e, 0xed,
+ 0x09, 0x1c, 0x2d, 0xb8,
+ 0xcf, 0xca, 0x1e, 0xed, 0x1e, 0x1e, 0xa4, 0x59, 0xec, 0x5e, 0x60, 0xd2,
+ 0x46, 0x49, 0x9d, 0x59,
+ 0xef, 0xf6, 0x56, 0x15, 0x56, 0x56, 0x6c, 0xd7, 0xc6, 0xab, 0x62, 0x0f,
+ 0x52, 0x79, 0xd9, 0xd7,
+ 0x8f, 0xb2, 0x8e, 0xde, 0x8e, 0x8e, 0xf7, 0x86, 0xb8, 0x77, 0x64, 0xab,
+ 0x6e, 0x29, 0x15, 0x86,
+ 0xaf, 0x8e, 0xc6, 0x26, 0xc6, 0xc6, 0x3f, 0x08, 0x92, 0x82, 0x66, 0x76,
+ 0x7a, 0x19, 0x51, 0x08,
+ 0x4f, 0x3a, 0xfd, 0x8b, 0xfd, 0xfd, 0x02, 0x24, 0x44, 0x0c, 0x68, 0x20,
+ 0x16, 0x89, 0x4e, 0x24,
+ 0x6f, 0x06, 0xb5, 0x73, 0xb5, 0xb5, 0xca, 0xaa, 0x6e, 0xf9, 0x6a, 0xfd,
+ 0x02, 0xb9, 0x0a, 0xaa,
+ 0x0f, 0x42, 0x6d, 0xb8, 0x6d, 0x6d, 0x51, 0xfb, 0x10, 0x25, 0x6c, 0x59,
+ 0x3e, 0xe9, 0xc6, 0xfb,
+ 0x2f, 0x7e, 0x25, 0x40, 0x25, 0x25, 0x99, 0x75, 0x3a, 0xd0, 0x6e, 0x84,
+ 0x2a, 0xd9, 0x82, 0x75,
+ 0x0c, 0xe9, 0x1b, 0x21, 0x1b, 0x1b, 0x2b, 0xa3, 0x7f, 0xfa, 0x70, 0xf5,
+ 0xe6, 0x0a, 0xf8, 0xa3,
+ 0x2c, 0xd5, 0x53, 0xd9, 0x53, 0x53, 0xe3, 0x2d, 0x55, 0x0f, 0x72, 0x28,
+ 0xf2, 0x3a, 0xbc, 0x2d,
+ 0x4c, 0x91, 0x8b, 0x12, 0x8b, 0x8b, 0x78, 0x7c, 0x2b, 0xd3, 0x74, 0x8c,
+ 0xce, 0x6a, 0x70, 0x7c,
+ 0x6c, 0xad, 0xc3, 0xea, 0xc3, 0xc3, 0xb0, 0xf2, 0x01, 0x26, 0x76, 0x51,
+ 0xda, 0x5a, 0x34, 0xf2,
+ 0x8c, 0x19, 0xf8, 0x47, 0xf8, 0xf8, 0x8d, 0xde, 0xd7, 0xa8, 0x78, 0x07,
+ 0xb6, 0xca, 0x2b, 0xde,
+ 0xac, 0x25, 0xb0, 0xbf, 0xb0, 0xb0, 0x45, 0x50, 0xfd, 0x5d, 0x7a, 0xda,
+ 0xa2, 0xfa, 0x6f, 0x50,
+ 0xcc, 0x61, 0x68, 0x74, 0x68, 0x68, 0xde, 0x01, 0x83, 0x81, 0x7c, 0x7e,
+ 0x9e, 0xaa, 0xa3, 0x01,
+ 0xec, 0x5d, 0x20, 0x8c, 0x20, 0x20, 0x16, 0x8f, 0xa9, 0x74, 0x7e, 0xa3,
+ 0x8a, 0x9a, 0xe7, 0x8f,
+ 0xd7, 0xdb, 0x28, 0xaf, 0x28, 0x28, 0xf2, 0xdc, 0x12, 0x69, 0x80, 0xfb,
+ 0x49, 0x5d, 0xae, 0xdc,
+ 0xf7, 0xe7, 0x60, 0x57, 0x60, 0x60, 0x3a, 0x52, 0x38, 0x9c, 0x82, 0x26,
+ 0x5d, 0x6d, 0xea, 0x52,
+ 0x97, 0xa3, 0xb8, 0x9c, 0xb8, 0xb8, 0xa1, 0x03, 0x46, 0x40, 0x84, 0x82,
+ 0x61, 0x3d, 0x26, 0x03,
+ 0xb7, 0x9f, 0xf0, 0x64, 0xf0, 0xf0, 0x69, 0x8d, 0x6c, 0xb5, 0x86, 0x5f,
+ 0x75, 0x0d, 0x62, 0x8d,
+ 0x57, 0x2b, 0xcb, 0xc9, 0xcb, 0xcb, 0x54, 0xa1, 0xba, 0x3b, 0x88, 0x09,
+ 0x19, 0x9d, 0x7d, 0xa1,
+ 0x77, 0x17, 0x83, 0x31, 0x83, 0x83, 0x9c, 0x2f, 0x90, 0xce, 0x8a, 0xd4,
+ 0x0d, 0xad, 0x39, 0x2f,
+ 0x17, 0x53, 0x5b, 0xfa, 0x5b, 0x5b, 0x07, 0x7e, 0xee, 0x12, 0x8c, 0x70,
+ 0x31, 0xfd, 0xf5, 0x7e,
+ 0x37, 0x6f, 0x13, 0x02, 0x13, 0x13, 0xcf, 0xf0, 0xc4, 0xe7, 0x8e, 0xad,
+ 0x25, 0xcd, 0xb1, 0xf0,
+ 0x14, 0xf8, 0x2d, 0x63, 0x2d, 0x2d, 0x7d, 0x26, 0x81, 0xcd, 0x90, 0xdc,
+ 0xe9, 0x1e, 0xcb, 0x26,
+ 0x34, 0xc4, 0x65, 0x9b, 0x65, 0x65, 0xb5, 0xa8, 0xab, 0x38, 0x92, 0x01,
+ 0xfd, 0x2e, 0x8f, 0xa8,
+ 0x54, 0x80, 0xbd, 0x50, 0xbd, 0xbd, 0x2e, 0xf9, 0xd5, 0xe4, 0x94, 0xa5,
+ 0xc1, 0x7e, 0x43, 0xf9,
+ 0x74, 0xbc, 0xf5, 0xa8, 0xf5, 0xf5, 0xe6, 0x77, 0xff, 0x11, 0x96, 0x78,
+ 0xd5, 0x4e, 0x07, 0x77,
+ 0x94, 0x08, 0xce, 0x05, 0xce, 0xce, 0xdb, 0x5b, 0x29, 0x9f, 0x98, 0x2e,
+ 0xb9, 0xde, 0x18, 0x5b,
+ 0xb4, 0x34, 0x86, 0xfd, 0x86, 0x86, 0x13, 0xd5, 0x03, 0x6a, 0x9a, 0xf3,
+ 0xad, 0xee, 0x5c, 0xd5,
+ 0xd4, 0x70, 0x5e, 0x36, 0x5e, 0x5e, 0x88, 0x84, 0x7d, 0xb6, 0x9c, 0x57,
+ 0x91, 0xbe, 0x90, 0x84,
+ 0xf4, 0x4c, 0x16, 0xce, 0x16, 0x16, 0x40, 0x0a, 0x57, 0x43, 0x9e, 0x8a,
+ 0x85, 0x8e, 0xd4, 0x0a,
+ 0x92, 0x9d, 0x22, 0xf4, 0x22, 0x22, 0x2f, 0xeb, 0xf7, 0xe2, 0xa0, 0xb5,
+ 0xca, 0xdb, 0x64, 0xeb,
+ 0xb2, 0xa1, 0x6a, 0x0c, 0x6a, 0x6a, 0xe7, 0x65, 0xdd, 0x17, 0xa2, 0x68,
+ 0xde, 0xeb, 0x20, 0x65,
+ 0xd2, 0xe5, 0xb2, 0xc7, 0xb2, 0xb2, 0x7c, 0x34, 0xa3, 0xcb, 0xa4, 0xcc,
+ 0xe2, 0xbb, 0xec, 0x34,
+ 0xf2, 0xd9, 0xfa, 0x3f, 0xfa, 0xfa, 0xb4, 0xba, 0x89, 0x3e, 0xa6, 0x11,
+ 0xf6, 0x8b, 0xa8, 0xba,
+ 0x12, 0x6d, 0xc1, 0x92, 0xc1, 0xc1, 0x89, 0x96, 0x5f, 0xb0, 0xa8, 0x47,
+ 0x9a, 0x1b, 0xb7, 0x96,
+ 0x32, 0x51, 0x89, 0x6a, 0x89, 0x89, 0x41, 0x18, 0x75, 0x45, 0xaa, 0x9a,
+ 0x8e, 0x2b, 0xf3, 0x18,
+ 0x52, 0x15, 0x51, 0xa1, 0x51, 0x51, 0xda, 0x49, 0x0b, 0x99, 0xac, 0x3e,
+ 0xb2, 0x7b, 0x3f, 0x49,
+ 0x72, 0x29, 0x19, 0x59, 0x19, 0x19, 0x12, 0xc7, 0x21, 0x6c, 0xae, 0xe3,
+ 0xa6, 0x4b, 0x7b, 0xc7,
+ 0x51, 0xbe, 0x27, 0x38, 0x27, 0x27, 0xa0, 0x11, 0x64, 0x46, 0xb0, 0x92,
+ 0x6a, 0x98, 0x01, 0x11,
+ 0x71, 0x82, 0x6f, 0xc0, 0x6f, 0x6f, 0x68, 0x9f, 0x4e, 0xb3, 0xb2, 0x4f,
+ 0x7e, 0xa8, 0x45, 0x9f,
+ 0x11, 0xc6, 0xb7, 0x0b, 0xb7, 0xb7, 0xf3, 0xce, 0x30, 0x6f, 0xb4, 0xeb,
+ 0x42, 0xf8, 0x89, 0xce,
+ 0x31, 0xfa, 0xff, 0xf3, 0xff, 0xff, 0x3b, 0x40, 0x1a, 0x9a, 0xb6, 0x36,
+ 0x56, 0xc8, 0xcd, 0x40,
+ 0xd1, 0x4e, 0xc4, 0x5e, 0xc4, 0xc4, 0x06, 0x6c, 0xcc, 0x14, 0xb8, 0x60,
+ 0x3a, 0x58, 0xd2, 0x6c,
+ 0xf1, 0x72, 0x8c, 0xa6, 0x8c, 0x8c, 0xce, 0xe2, 0xe6, 0xe1, 0xba, 0xbd,
+ 0x2e, 0x68, 0x96, 0xe2,
+ 0x91, 0x36, 0x54, 0x6d, 0x54, 0x54, 0x55, 0xb3, 0x98, 0x3d, 0xbc, 0x19,
+ 0x12, 0x38, 0x5a, 0xb3,
+ 0xb1, 0x0a, 0x1c, 0x95, 0x1c, 0x1c, 0x9d, 0x3d, 0xb2, 0xc8, 0xbe, 0xc4,
+ 0x06, 0x08, 0x1e, 0x3d,
+ 0x5d, 0x57, 0x3c, 0x19, 0x3c, 0x3c, 0x8b, 0xb2, 0x1b, 0xbc, 0xc0, 0x67,
+ 0x8c, 0x92, 0xf9, 0xb2,
+ 0x7d, 0x6b, 0x74, 0xe1, 0x74, 0x74, 0x43, 0x3c, 0x31, 0x49, 0xc2, 0xba,
+ 0x98, 0xa2, 0xbd, 0x3c,
+ 0x1d, 0x2f, 0xac, 0x2a, 0xac, 0xac, 0xd8, 0x6d, 0x4f, 0x95, 0xc4, 0x1e,
+ 0xa4, 0xf2, 0x71, 0x6d,
+ 0x3d, 0x13, 0xe4, 0xd2, 0xe4, 0xe4, 0x10, 0xe3, 0x65, 0x60, 0xc6, 0xc3,
+ 0xb0, 0xc2, 0x35, 0xe3,
+ 0xdd, 0xa7, 0xdf, 0x7f, 0xdf, 0xdf, 0x2d, 0xcf, 0xb3, 0xee, 0xc8, 0x95,
+ 0xdc, 0x52, 0x2a, 0xcf,
+ 0xfd, 0x9b, 0x97, 0x87, 0x97, 0x97, 0xe5, 0x41, 0x99, 0x1b, 0xca, 0x48,
+ 0xc8, 0x62, 0x6e, 0x41,
+ 0x9d, 0xdf, 0x4f, 0x4c, 0x4f, 0x4f, 0x7e, 0x10, 0xe7, 0xc7, 0xcc, 0xec,
+ 0xf4, 0x32, 0xa2, 0x10,
+ 0xbd, 0xe3, 0x07, 0xb4, 0x07, 0x07, 0xb6, 0x9e, 0xcd, 0x32, 0xce, 0x31,
+ 0xe0, 0x02, 0xe6, 0x9e,
+ 0x9e, 0x74, 0x39, 0xd5, 0x39, 0x39, 0x04, 0x48, 0x88, 0x18, 0xd0, 0x40,
+ 0x2c, 0xd1, 0x9c, 0x48,
+ 0xbe, 0x48, 0x71, 0x2d, 0x71, 0x71, 0xcc, 0xc6, 0xa2, 0xed, 0xd2, 0x9d,
+ 0x38, 0xe1, 0xd8, 0xc6,
+ 0xde, 0x0c, 0xa9, 0xe6, 0xa9, 0xa9, 0x57, 0x97, 0xdc, 0x31, 0xd4, 0x39,
+ 0x04, 0xb1, 0x14, 0x97,
+ 0xfe, 0x30, 0xe1, 0x1e, 0xe1, 0xe1, 0x9f, 0x19, 0xf6, 0xc4, 0xd6, 0xe4,
+ 0x10, 0x81, 0x50, 0x19,
+ 0x1e, 0x84, 0xda, 0xb3, 0xda, 0xda, 0xa2, 0x35, 0x20, 0x4a, 0xd8, 0xb2,
+ 0x7c, 0x11, 0x4f, 0x35,
+ 0x3e, 0xb8, 0x92, 0x4b, 0x92, 0x92, 0x6a, 0xbb, 0x0a, 0xbf, 0xda, 0x6f,
+ 0x68, 0x21, 0x0b, 0xbb,
+ 0x5e, 0xfc, 0x4a, 0x80, 0x4a, 0x4a, 0xf1, 0xea, 0x74, 0x63, 0xdc, 0xcb,
+ 0x54, 0x71, 0xc7, 0xea,
+ 0x7e, 0xc0, 0x02, 0x78, 0x02, 0x02, 0x39, 0x64, 0x5e, 0x96, 0xde, 0x16,
+ 0x40, 0x41, 0x83, 0x64,
+ 0x18, 0x11, 0x36, 0x42, 0x36, 0x36, 0x56, 0x85, 0xfe, 0x37, 0xe0, 0x29,
+ 0x0f, 0x14, 0x33, 0x85,
+ 0x38, 0x2d, 0x7e, 0xba, 0x7e, 0x7e, 0x9e, 0x0b, 0xd4, 0xc2, 0xe2, 0xf4,
+ 0x1b, 0x24, 0x77, 0x0b,
+ 0x58, 0x69, 0xa6, 0x71, 0xa6, 0xa6, 0x05, 0x5a, 0xaa, 0x1e, 0xe4, 0x50,
+ 0x27, 0x74, 0xbb, 0x5a,
+ 0x78, 0x55, 0xee, 0x89, 0xee, 0xee, 0xcd, 0xd4, 0x80, 0xeb, 0xe6, 0x8d,
+ 0x33, 0x44, 0xff, 0xd4,
+ 0x98, 0xe1, 0xd5, 0x24, 0xd5, 0xd5, 0xf0, 0xf8, 0x56, 0x65, 0xe8, 0xdb,
+ 0x5f, 0xd4, 0xe0, 0xf8,
+ 0xb8, 0xdd, 0x9d, 0xdc, 0x9d, 0x9d, 0x38, 0x76, 0x7c, 0x90, 0xea, 0x06,
+ 0x4b, 0xe4, 0xa4, 0x76,
+ 0xd8, 0x99, 0x45, 0x17, 0x45, 0x45, 0xa3, 0x27, 0x02, 0x4c, 0xec, 0xa2,
+ 0x77, 0xb4, 0x68, 0x27,
+ 0xf8, 0xa5, 0x0d, 0xef, 0x0d, 0x0d, 0x6b, 0xa9, 0x28, 0xb9, 0xee, 0x7f,
+ 0x63, 0x84, 0x2c, 0xa9,
+ 0xdb, 0x32, 0x33, 0x8e, 0x33, 0x33, 0xd9, 0x7f, 0x6d, 0x93, 0xf0, 0x0e,
+ 0xaf, 0x57, 0x56, 0x7f,
+ 0xfb, 0x0e, 0x7b, 0x76, 0x7b, 0x7b, 0x11, 0xf1, 0x47, 0x66, 0xf2, 0xd3,
+ 0xbb, 0x67, 0x12, 0xf1,
+ 0x9b, 0x4a, 0xa3, 0xbd, 0xa3, 0xa3, 0x8a, 0xa0, 0x39, 0xba, 0xf4, 0x77,
+ 0x87, 0x37, 0xde, 0xa0,
+ 0xbb, 0x76, 0xeb, 0x45, 0xeb, 0xeb, 0x42, 0x2e, 0x13, 0x4f, 0xf6, 0xaa,
+ 0x93, 0x07, 0x9a, 0x2e,
+ 0x5b, 0xc2, 0xd0, 0xe8, 0xd0, 0xd0, 0x7f, 0x02, 0xc5, 0xc1, 0xf8, 0xfc,
+ 0xff, 0x97, 0x85, 0x02,
+ 0x7b, 0xfe, 0x98, 0x10, 0x98, 0x98, 0xb7, 0x8c, 0xef, 0x34, 0xfa, 0x21,
+ 0xeb, 0xa7, 0xc1, 0x8c,
+ 0x1b, 0xba, 0x40, 0xdb, 0x40, 0x40, 0x2c, 0xdd, 0x91, 0xe8, 0xfc, 0x85,
+ 0xd7, 0xf7, 0x0d, 0xdd,
+ 0x3b, 0x86, 0x08, 0x23, 0x08, 0x08, 0xe4, 0x53, 0xbb, 0x1d, 0xfe, 0x58,
+ 0xc3, 0xc7, 0x49, 0x53,
+ 0x6d, 0x75, 0x50, 0x9d, 0x50, 0x50, 0x27, 0x7b, 0x24, 0xd2, 0xc3, 0x35,
+ 0x92, 0xba, 0x9f, 0x7b,
+ 0x4d, 0x49, 0x18, 0x65, 0x18, 0x18, 0xef, 0xf5, 0x0e, 0x27, 0xc1, 0xe8,
+ 0x86, 0x8a, 0xdb, 0xf5,
+ 0x2d, 0x0d, 0xc0, 0xae, 0xc0, 0xc0, 0x74, 0xa4, 0x70, 0xfb, 0xc7, 0x4c,
+ 0xba, 0xda, 0x17, 0xa4,
+ 0x0d, 0x31, 0x88, 0x56, 0x88, 0x88, 0xbc, 0x2a, 0x5a, 0x0e, 0xc5, 0x91,
+ 0xae, 0xea, 0x53, 0x2a,
+ 0xed, 0x85, 0xb3, 0xfb, 0xb3, 0xb3, 0x81, 0x06, 0x8c, 0x80, 0xcb, 0xc7,
+ 0xc2, 0x7a, 0x4c, 0x06,
+ 0xcd, 0xb9, 0xfb, 0x03, 0xfb, 0xfb, 0x49, 0x88, 0xa6, 0x75, 0xc9, 0x1a,
+ 0xd6, 0x4a, 0x08, 0x88,
+ 0xad, 0xfd, 0x23, 0xc8, 0x23, 0x23, 0xd2, 0xd9, 0xd8, 0xa9, 0xcf, 0xbe,
+ 0xea, 0x1a, 0xc4, 0xd9,
+ 0x8d, 0xc1, 0x6b, 0x30, 0x6b, 0x6b, 0x1a, 0x57, 0xf2, 0x5c, 0xcd, 0x63,
+ 0xfe, 0x2a, 0x80, 0x57,
+ 0xae, 0x56, 0x55, 0x51, 0x55, 0x55, 0xa8, 0x81, 0xb7, 0x76, 0xd3, 0x12,
+ 0x32, 0xf9, 0xfa, 0x81,
+ 0x8e, 0x6a, 0x1d, 0xa9, 0x1d, 0x1d, 0x60, 0x0f, 0x9d, 0x83, 0xd1, 0xcf,
+ 0x26, 0xc9, 0xbe, 0x0f,
+ 0xee, 0x2e, 0xc5, 0x62, 0xc5, 0xc5, 0xfb, 0x5e, 0xe3, 0x5f, 0xd7, 0x6b,
+ 0x1a, 0x99, 0x72, 0x5e,
+ 0xce, 0x12, 0x8d, 0x9a, 0x8d, 0x8d, 0x33, 0xd0, 0xc9, 0xaa, 0xd5, 0xb6,
+ 0x0e, 0xa9, 0x36, 0xd0,
+ 0x2e, 0xa6, 0xb6, 0x37, 0xb6, 0xb6, 0x0e, 0xfc, 0x1f, 0x24, 0xdb, 0xe0,
+ 0x62, 0x39, 0x29, 0xfc,
+ 0x0e, 0x9a, 0xfe, 0xcf, 0xfe, 0xfe, 0xc6, 0x72, 0x35, 0xd1, 0xd9, 0x3d,
+ 0x76, 0x09, 0x6d, 0x72,
+ 0x6e, 0xde, 0x26, 0x04, 0x26, 0x26, 0x5d, 0x23, 0x4b, 0x0d, 0xdf, 0x99,
+ 0x4a, 0x59, 0xa1, 0x23,
+ 0x4e, 0xe2, 0x6e, 0xfc, 0x6e, 0x6e, 0x95, 0xad, 0x61, 0xf8, 0xdd, 0x44,
+ 0x5e, 0x69, 0xe5, 0xad,
+ 0x28, 0x33, 0x5a, 0xc6, 0x5a, 0x5a, 0xfa, 0x4c, 0xc1, 0x59, 0xe3, 0x7b,
+ 0x11, 0x3c, 0x55, 0x4c,
+ 0x08, 0x0f, 0x12, 0x3e, 0x12, 0x12, 0x32, 0xc2, 0xeb, 0xac, 0xe1, 0xa6,
+ 0x05, 0x0c, 0x11, 0xc2,
+ 0x68, 0x4b, 0xca, 0xf5, 0xca, 0xca, 0xa9, 0x93, 0x95, 0x70, 0xe7, 0x02,
+ 0x39, 0x5c, 0xdd, 0x93,
+ 0x48, 0x77, 0x82, 0x0d, 0x82, 0x82, 0x61, 0x1d, 0xbf, 0x85, 0xe5, 0xdf,
+ 0x2d, 0x6c, 0x99, 0x1d,
+ 0xa8, 0xc3, 0xb9, 0xa0, 0xb9, 0xb9, 0x5c, 0x31, 0x69, 0x0b, 0xeb, 0x89,
+ 0x41, 0xfc, 0x86, 0x31,
+ 0x88, 0xff, 0xf1, 0x58, 0xf1, 0xf1, 0x94, 0xbf, 0x43, 0xfe, 0xe9, 0x54,
+ 0x55, 0xcc, 0xc2, 0xbf,
+ 0xe8, 0xbb, 0x29, 0x93, 0x29, 0x29, 0x0f, 0xee, 0x3d, 0x22, 0xef, 0xf0,
+ 0x69, 0x9c, 0x0e, 0xee,
+ 0xc8, 0x87, 0x61, 0x6b, 0x61, 0x61, 0xc7, 0x60, 0x17, 0xd7, 0xed, 0x2d,
+ 0x7d, 0xac, 0x4a, 0x60,
+ 0xeb, 0x10, 0x5f, 0x0a, 0x5f, 0x5f, 0x75, 0xb6, 0x52, 0xfd, 0xf3, 0x5c,
+ 0xb1, 0x7f, 0x30, 0xb6,
+ 0xcb, 0x2c, 0x17, 0xf2, 0x17, 0x17, 0xbd, 0x38, 0x78, 0x08, 0xf1, 0x81,
+ 0xa5, 0x4f, 0x74, 0x38,
+ 0xab, 0x68, 0xcf, 0x39, 0xcf, 0xcf, 0x26, 0x69, 0x06, 0xd4, 0xf7, 0x25,
+ 0x99, 0x1f, 0xb8, 0x69,
+ 0x8b, 0x54, 0x87, 0xc1, 0x87, 0x87, 0xee, 0xe7, 0x2c, 0x21, 0xf5, 0xf8,
+ 0x8d, 0x2f, 0xfc, 0xe7,
+ 0x6b, 0xe0, 0xbc, 0x6c, 0xbc, 0xbc, 0xd3, 0xcb, 0xfa, 0xaf, 0xfb, 0xae,
+ 0xe1, 0xbf, 0xe3, 0xcb,
+ 0x4b, 0xdc, 0xf4, 0x94, 0xf4, 0xf4, 0x1b, 0x45, 0xd0, 0x5a, 0xf9, 0x73,
+ 0xf5, 0x8f, 0xa7, 0x45,
+ 0x2b, 0x98, 0x2c, 0x5f, 0x2c, 0x2c, 0x80, 0x14, 0xae, 0x86, 0xff, 0xd7,
+ 0xc9, 0xdf, 0x6b, 0x14,
+ 0x0b, 0xa4, 0x64, 0xa7, 0x64, 0x64, 0x48, 0x9a, 0x84, 0x73, 0xfd, 0x0a,
+ 0xdd, 0xef, 0x2f, 0x9a,
+ 0xe7, 0xf9, 0x44, 0x2b, 0x44, 0x44, 0x5e, 0x15, 0x2d, 0x07, 0x83, 0xa9,
+ 0x57, 0x75, 0xc8, 0x15,
+ 0xc7, 0xc5, 0x0c, 0xd3, 0x0c, 0x0c, 0x96, 0x9b, 0x07, 0xf2, 0x81, 0x74,
+ 0x43, 0x45, 0x8c, 0x9b,
+ 0xa7, 0x81, 0xd4, 0x18, 0xd4, 0xd4, 0x0d, 0xca, 0x79, 0x2e, 0x87, 0xd0,
+ 0x7f, 0x15, 0x40, 0xca,
+ 0x87, 0xbd, 0x9c, 0xe0, 0x9c, 0x9c, 0xc5, 0x44, 0x53, 0xdb, 0x85, 0x0d,
+ 0x6b, 0x25, 0x04, 0x44,
+ 0x67, 0x09, 0xa7, 0x4d, 0xa7, 0xa7, 0xf8, 0x68, 0x85, 0x55, 0x8b, 0x5b,
+ 0x07, 0xb5, 0x1b, 0x68,
+ 0x47, 0x35, 0xef, 0xb5, 0xef, 0xef, 0x30, 0xe6, 0xaf, 0xa0, 0x89, 0x86,
+ 0x13, 0x85, 0x5f, 0xe6,
+ 0x27, 0x71, 0x37, 0x7e, 0x37, 0x37, 0xab, 0xb7, 0xd1, 0x7c, 0x8f, 0x22,
+ 0x2f, 0xd5, 0x93, 0xb7,
+ 0x07, 0x4d, 0x7f, 0x86, 0x7f, 0x7f, 0x63, 0x39, 0xfb, 0x89, 0x8d, 0xff,
+ 0x3b, 0xe5, 0xd7, 0x39,
+ 0x24, 0xda, 0x41, 0xe7, 0x41, 0x41, 0xd1, 0xef, 0xbe, 0xa3, 0x93, 0x8e,
+ 0xf7, 0x36, 0xad, 0xef,
+ 0x04, 0xe6, 0x09, 0x1f, 0x09, 0x09, 0x19, 0x61, 0x94, 0x56, 0x91, 0x53,
+ 0xe3, 0x06, 0xe9, 0x61,
+ 0x64, 0xa2, 0xd1, 0xd4, 0xd1, 0xd1, 0x82, 0x30, 0xea, 0x8a, 0x97, 0xf7,
+ 0xdf, 0x56, 0x25, 0x30,
+ 0x44, 0x9e, 0x99, 0x2c, 0x99, 0x99, 0x4a, 0xbe, 0xc0, 0x7f, 0x95, 0x2a,
+ 0xcb, 0x66, 0x61, 0xbe,
+ 0xa4, 0x2a, 0xa2, 0x81, 0xa2, 0xa2, 0x77, 0x92, 0x16, 0xf1, 0x9b, 0x7c,
+ 0xa7, 0xf6, 0x7e, 0x92,
+ 0x84, 0x16, 0xea, 0x79, 0xea, 0xea, 0xbf, 0x1c, 0x3c, 0x04, 0x99, 0xa1,
+ 0xb3, 0xc6, 0x3a, 0x1c,
+ 0xe4, 0x52, 0x32, 0xb2, 0x32, 0x32, 0x24, 0x4d, 0x42, 0xd8, 0x9f, 0x05,
+ 0x8f, 0x96, 0xf6, 0x4d,
+ 0xc4, 0x6e, 0x7a, 0x4a, 0x7a, 0x7a, 0xec, 0xc3, 0x68, 0x2d, 0x9d, 0xd8,
+ 0x9b, 0xa6, 0xb2, 0xc3,
+ 0xa2, 0xbf, 0x4e, 0x70, 0x4e, 0x4e, 0x83, 0x22, 0xc8, 0x8c, 0xa3, 0xe7,
+ 0xd4, 0xf3, 0x02, 0x22,
+ 0x82, 0x83, 0x06, 0x88, 0x06, 0x06, 0x4b, 0xac, 0xe2, 0x79, 0xa1, 0x3a,
+ 0xc0, 0xc3, 0x46, 0xac,
+ 0xe2, 0xc7, 0xde, 0x43, 0xde, 0xde, 0xd0, 0xfd, 0x9c, 0xa5, 0xa7, 0x9e,
+ 0xfc, 0x93, 0x8a, 0xfd,
+ 0xc2, 0xfb, 0x96, 0xbb, 0x96, 0x96, 0x18, 0x73, 0xb6, 0x50, 0xa5, 0x43,
+ 0xe8, 0xa3, 0xce, 0x73,
+ 0x22, 0x4f, 0xad, 0x16, 0xad, 0xad, 0x25, 0x5f, 0x60, 0xde, 0xab, 0x15,
+ 0x84, 0x33, 0xd1, 0x5f,
+ 0x02, 0x73, 0xe5, 0xee, 0xe5, 0xe5, 0xed, 0xd1, 0x4a, 0x2b, 0xa9, 0xc8,
+ 0x90, 0x03, 0x95, 0xd1,
+ 0x62, 0x37, 0x3d, 0x25, 0x3d, 0x3d, 0x76, 0x80, 0x34, 0xf7, 0xaf, 0x6c,
+ 0xac, 0x53, 0x59, 0x80,
+ 0x42, 0x0b, 0x75, 0xdd, 0x75, 0x75, 0xbe, 0x0e, 0x1e, 0x02, 0xad, 0xb1,
+ 0xb8, 0x63, 0x1d, 0x0e,
+ 0x61, 0x9c, 0x4b, 0xbc, 0x4b, 0x4b, 0x0c, 0xd8, 0x5b, 0x28, 0xb3, 0xc0,
+ 0x74, 0xb0, 0x67, 0xd8,
+ 0x41, 0xa0, 0x03, 0x44, 0x03, 0x03, 0xc4, 0x56, 0x71, 0xdd, 0xb1, 0x1d,
+ 0x60, 0x80, 0x23, 0x56,
+ 0x21, 0xe4, 0xdb, 0x8f, 0xdb, 0xdb, 0x5f, 0x07, 0x0f, 0x01, 0xb7, 0xb9,
+ 0x5c, 0xd0, 0xef, 0x07,
+ 0x01, 0xd8, 0x93, 0x77, 0x93, 0x93, 0x97, 0x89, 0x25, 0xf4, 0xb5, 0x64,
+ 0x48, 0xe0, 0xab, 0x89,
+ 0xe1, 0x6c, 0xa8, 0xda, 0xa8, 0xa8, 0xaa, 0xa5, 0xf3, 0x7a, 0xbb, 0x32,
+ 0x24, 0x70, 0xb4, 0xa5,
+ 0xc1, 0x50, 0xe0, 0x22, 0xe0, 0xe0, 0x62, 0x2b, 0xd9, 0x8f, 0xb9, 0xef,
+ 0x30, 0x40, 0xf0, 0x2b,
+ 0xa1, 0x14, 0x38, 0xe9, 0x38, 0x38, 0xf9, 0x7a, 0xa7, 0x53, 0xbf, 0x4b,
+ 0x0c, 0x10, 0x3c, 0x7a,
+ 0x81, 0x28, 0x70, 0x11, 0x70, 0x70, 0x31, 0xf4, 0x8d, 0xa6, 0xbd, 0x96,
+ 0x18, 0x20, 0x78, 0xf4,
+ 0xba, 0xae, 0x78, 0x32, 0x78, 0x78, 0xd5, 0xa7, 0x36, 0xbb, 0x43, 0xce,
+ 0xdb, 0xe7, 0x31, 0xa7,
+ 0x9a, 0x92, 0x30, 0xca, 0x30, 0x30, 0x1d, 0x29, 0x1c, 0x4e, 0x41, 0x13,
+ 0xcf, 0xd7, 0x75, 0x29,
+ 0xfa, 0xd6, 0xe8, 0x01, 0xe8, 0xe8, 0x86, 0x78, 0x62, 0x92, 0x47, 0xb7,
+ 0xf3, 0x87, 0xb9, 0x78,
+ 0xda, 0xea, 0xa0, 0xf9, 0xa0, 0xa0, 0x4e, 0xf6, 0x48, 0x67, 0x45, 0x6a,
+ 0xe7, 0xb7, 0xfd, 0xf6,
+ 0x3a, 0x5e, 0x9b, 0x54, 0x9b, 0x9b, 0x73, 0xda, 0x9e, 0xe9, 0x4b, 0x3c,
+ 0x8b, 0x27, 0xe2, 0xda,
+ 0x1a, 0x62, 0xd3, 0xac, 0xd3, 0xd3, 0xbb, 0x54, 0xb4, 0x1c, 0x49, 0xe1,
+ 0x9f, 0x17, 0xa6, 0x54,
+ 0x7a, 0x26, 0x0b, 0x67, 0x0b, 0x0b, 0x20, 0x05, 0xca, 0xc0, 0x4f, 0x45,
+ 0xa3, 0x47, 0x6a, 0x05,
+ 0x5a, 0x1a, 0x43, 0x9f, 0x43, 0x43, 0xe8, 0x8b, 0xe0, 0x35, 0x4d, 0x98,
+ 0xb7, 0x77, 0x2e, 0x8b,
+ 0x79, 0x8d, 0x7d, 0xfe, 0x7d, 0x7d, 0x5a, 0x5d, 0xa5, 0x1f, 0x53, 0xe9,
+ 0x7b, 0xa4, 0x54, 0x5d,
+ 0x59, 0xb1, 0x35, 0x06, 0x35, 0x35, 0x92, 0xd3, 0x8f, 0xea, 0x51, 0x34,
+ 0x6f, 0x94, 0x10, 0xd3,
+ 0x39, 0xf5, 0xed, 0xcd, 0xed, 0xed, 0x09, 0x82, 0xf1, 0x36, 0x57, 0x90,
+ 0x53, 0xc4, 0xdc, 0x82,
+ 0x19, 0xc9, 0xa5, 0x35, 0xa5, 0xa5, 0xc1, 0x0c, 0xdb, 0xc3, 0x55, 0x4d,
+ 0x47, 0xf4, 0x98, 0x0c,
+ 0xf9, 0x7d, 0x9e, 0x98, 0x9e, 0x9e, 0xfc, 0x20, 0x0d, 0x4d, 0x5b, 0x1b,
+ 0x2b, 0x64, 0x87, 0x20,
+ 0xd9, 0x41, 0xd6, 0x60, 0xd6, 0xd6, 0x34, 0xae, 0x27, 0xb8, 0x59, 0xc6,
+ 0x3f, 0x54, 0xc3, 0xae,
+ 0xb9, 0x05, 0x0e, 0xab, 0x0e, 0x0e, 0xaf, 0xff, 0x59, 0x64, 0x5f, 0x62,
+ 0x03, 0x04, 0x0f, 0xff,
+ 0x99, 0x39, 0x46, 0x53, 0x46, 0x46, 0x67, 0x71, 0x73, 0x91, 0x5d, 0xbf,
+ 0x17, 0x34, 0x4b, 0x71,
+ 0xff, 0xe8, 0x72, 0x69, 0x72, 0x72, 0x08, 0x90, 0xd3, 0x30, 0x63, 0x80,
+ 0x58, 0x61, 0xfb, 0x90,
+ 0xdf, 0xd4, 0x3a, 0x91, 0x3a, 0x3a, 0xc0, 0x1e, 0xf9, 0xc5, 0x61, 0x5d,
+ 0x4c, 0x51, 0xbf, 0x1e,
+ 0xbf, 0x90, 0xe2, 0x5a, 0xe2, 0xe2, 0x5b, 0x4f, 0x87, 0x19, 0x67, 0xf9,
+ 0x70, 0x01, 0x73, 0x4f,
+ 0x9f, 0xac, 0xaa, 0xa2, 0xaa, 0xaa, 0x93, 0xc1, 0xad, 0xec, 0x65, 0x24,
+ 0x64, 0x31, 0x37, 0xc1,
+ 0x7f, 0x18, 0x91, 0x0f, 0x91, 0x91, 0xae, 0xed, 0x7b, 0x62, 0x6b, 0x72,
+ 0x08, 0xa1, 0x28, 0xed,
+ 0x5f, 0x24, 0xd9, 0xf7, 0xd9, 0xd9, 0x66, 0x63, 0x51, 0x97, 0x69, 0xaf,
+ 0x1c, 0x91, 0x6c, 0x63,
+ 0x3f, 0x60, 0x01, 0x3c, 0x01, 0x01, 0xfd, 0x32, 0x2f, 0x4b, 0x6f, 0x0b,
+ 0x20, 0xc1, 0xa0, 0x32,
+ 0x1f, 0x5c, 0x49, 0xc4, 0x49, 0x49, 0x35, 0xbc, 0x05, 0xbe, 0x6d, 0xd6,
+ 0x34, 0xf1, 0xe4, 0xbc,
+ 0x3c, 0xcb, 0x77, 0xa5, 0x77, 0x77, 0x87, 0x6a, 0x40, 0x94, 0x73, 0xa7,
+ 0xf8, 0x22, 0x9e, 0x6a,
+ 0x1c, 0xf7, 0x3f, 0x5d, 0x3f, 0x3f, 0x4f, 0xe4, 0x6a, 0x61, 0x71, 0x7a,
+ 0xec, 0x12, 0xda, 0xe4,
+ 0x7c, 0xb3, 0xe7, 0x96, 0xe7, 0xe7, 0xd4, 0xb5, 0x14, 0xbd, 0x77, 0xde,
+ 0xd0, 0x42, 0x16, 0xb5,
+ 0x5c, 0x8f, 0xaf, 0x6e, 0xaf, 0xaf, 0x1c, 0x3b, 0x3e, 0x48, 0x75, 0x03,
+ 0xc4, 0x72, 0x52, 0x3b,
+ 0xbc, 0x3b, 0x94, 0xc3, 0x94, 0x94, 0x21, 0x17, 0xe8, 0xc6, 0x7b, 0x55,
+ 0xa8, 0xe2, 0x4d, 0x17,
+ 0x9c, 0x07, 0xdc, 0x3b, 0xdc, 0xdc, 0xe9, 0x99, 0xc2, 0x33, 0x79, 0x88,
+ 0xbc, 0xd2, 0x09, 0x99,
+ 0xfc, 0x43, 0x04, 0xf0, 0x04, 0x04, 0x72, 0xc8, 0xbc, 0xef, 0x7f, 0x2c,
+ 0x80, 0x82, 0xc5, 0xc8,
+ 0xdc, 0x7f, 0x4c, 0x08, 0x4c, 0x4c, 0xba, 0x46, 0x96, 0x1a, 0x7d, 0xf1,
+ 0x94, 0xb2, 0x81, 0x46,
+ 0x30, 0x22, 0x6c, 0x84, 0x6c, 0x6c, 0xac, 0xc9, 0x3f, 0x6e, 0x03, 0x52,
+ 0x1e, 0x28, 0x66, 0xc9,
+ 0x10, 0x1e, 0x24, 0x7c, 0x24, 0x24, 0x64, 0x47, 0x15, 0x9b, 0x01, 0x8f,
+ 0x0a, 0x18, 0x22, 0x47,
+ 0x70, 0x5a, 0xfc, 0xb7, 0xfc, 0xfc, 0xff, 0x16, 0x6b, 0x47, 0x07, 0x2b,
+ 0x36, 0x48, 0xee, 0x16,
+ 0x50, 0x66, 0xb4, 0x4f, 0xb4, 0xb4, 0x37, 0x98, 0x41, 0xb2, 0x05, 0xf6,
+ 0x22, 0x78, 0xaa, 0x98,
+ 0xb0, 0xd2, 0x8f, 0xe2, 0x8f, 0x8f, 0x0a, 0xb4, 0x97, 0x3c, 0x0b, 0xa0,
+ 0x4e, 0xe8, 0xb5, 0xb4,
+ 0x90, 0xee, 0xc7, 0x1a, 0xc7, 0xc7, 0xc2, 0x3a, 0xbd, 0xc9, 0x09, 0x7d,
+ 0x5a, 0xd8, 0xf1, 0x3a,
+ 0xf0, 0xaa, 0x1f, 0xd1, 0x1f, 0x1f, 0x59, 0x6b, 0xc3, 0x15, 0x0f, 0xd9,
+ 0x66, 0x88, 0x3d, 0x6b,
+ 0xd0, 0x96, 0x57, 0x29, 0x57, 0x57, 0x91, 0xe5, 0xe9, 0xe0, 0x0d, 0x04,
+ 0x72, 0xb8, 0x79, 0xe5,
+ 0xf3, 0x01, 0x69, 0x48, 0x69, 0x69, 0x23, 0x33, 0xac, 0xca, 0x13, 0x75,
+ 0xbe, 0x6b, 0x03, 0x33,
+ 0xd3, 0x3d, 0x21, 0xb0, 0x21, 0x21, 0xeb, 0xbd, 0x86, 0x3f, 0x11, 0xa8,
+ 0xaa, 0x5b, 0x47, 0xbd,
+ 0xb3, 0x79, 0xf9, 0x7b, 0xf9, 0xf9, 0x70, 0xec, 0xf8, 0xe3, 0x17, 0x0c,
+ 0x96, 0x0b, 0x8b, 0xec,
+ 0x93, 0x45, 0xb1, 0x83, 0xb1, 0xb1, 0xb8, 0x62, 0xd2, 0x16, 0x15, 0xd1,
+ 0x82, 0x3b, 0xcf, 0x62,
+ 0x73, 0xf1, 0x8a, 0x2e, 0x8a, 0x8a, 0x85, 0x4e, 0x04, 0x98, 0x1b, 0x87,
+ 0xee, 0xab, 0xd0, 0x4e,
+ 0x53, 0xcd, 0xc2, 0xd6, 0xc2, 0xc2, 0x4d, 0xc0, 0x2e, 0x6d, 0x19, 0x5a,
+ 0xfa, 0x9b, 0x94, 0xc0,
+ 0x33, 0x89, 0x1a, 0x1d, 0x1a, 0x1a, 0xd6, 0x91, 0x50, 0xb1, 0x1f, 0xfe,
+ 0xc6, 0xcb, 0x58, 0x91,
+ 0x13, 0xb5, 0x52, 0xe5, 0x52, 0x52, 0x1e, 0x1f, 0x7a, 0x44, 0x1d, 0x23,
+ 0xd2, 0xfb, 0x1c, 0x1f,
+ 0x75, 0x64, 0x66, 0xdf, 0x66, 0x66, 0x71, 0xfe, 0xda, 0xe5, 0x23, 0x1c,
+ 0x9d, 0xae, 0xac, 0xfe,
+ 0x55, 0x58, 0x2e, 0x27, 0x2e, 0x2e, 0xb9, 0x70, 0xf0, 0x10, 0x21, 0xc1,
+ 0x89, 0x9e, 0xe8, 0x70,
+ 0x35, 0x1c, 0xf6, 0xec, 0xf6, 0xf6, 0x22, 0x21, 0x8e, 0xcc, 0x27, 0x65,
+ 0xb5, 0xce, 0x24, 0x21,
+ 0x15, 0x20, 0xbe, 0x14, 0xbe, 0xbe, 0xea, 0xaf, 0xa4, 0x39, 0x25, 0xb8,
+ 0xa1, 0xfe, 0x60, 0xaf,
+ 0xf5, 0x94, 0x85, 0xb9, 0x85, 0x85, 0xd7, 0x83, 0x72, 0xb7, 0x2b, 0xee,
+ 0xcd, 0x6e, 0x7f, 0x83,
+ 0xd5, 0xa8, 0xcd, 0x41, 0xcd, 0xcd, 0x1f, 0x0d, 0x58, 0x42, 0x29, 0x33,
+ 0xd9, 0x5e, 0x3b, 0x0d,
+ 0xb5, 0xec, 0x15, 0x8a, 0x15, 0x15, 0x84, 0x5c, 0x26, 0x9e, 0x2f, 0x97,
+ 0xe5, 0x0e, 0xf7, 0x5c,
+ 0x95, 0xd0, 0x5d, 0x72, 0x5d, 0x5d, 0x4c, 0xd2, 0x0c, 0x6b, 0x2d, 0x4a,
+ 0xf1, 0x3e, 0xb3, 0xd2,
+ 0xb6, 0x47, 0x63, 0x13, 0x63, 0x63, 0xfe, 0x04, 0x49, 0x41, 0x33, 0x3b,
+ 0x3d, 0xed, 0xc9, 0x04,
+ 0x96, 0x7b, 0x2b, 0xeb, 0x2b, 0x2b, 0x36, 0x8a, 0x63, 0xb4, 0x31, 0xe6,
+ 0x29, 0xdd, 0x8d, 0x8a,
+ 0xf6, 0x3f, 0xf3, 0x20, 0xf3, 0xf3, 0xad, 0xdb, 0x1d, 0x68, 0x37, 0x42,
+ 0x15, 0x8d, 0x41, 0xdb,
+ 0xd6, 0x03, 0xbb, 0xd8, 0xbb, 0xbb, 0x65, 0x55, 0x37, 0x9d, 0x35, 0x9f,
+ 0x01, 0xbd, 0x05, 0x55,
+ 0x36, 0xb7, 0x80, 0x75, 0x80, 0x80, 0x58, 0x79, 0xe1, 0x13, 0x3b, 0xc9,
+ 0x6d, 0x2d, 0x1a, 0x79,
+ 0x16, 0x8b, 0xc8, 0x8d, 0xc8, 0xc8, 0x90, 0xf7, 0xcb, 0xe6, 0x39, 0x14,
+ 0x79, 0x1d, 0x5e, 0xf7,
+ 0x76, 0xcf, 0x10, 0x46, 0x10, 0x10, 0x0b, 0xa6, 0xb5, 0x3a, 0x3f, 0xb0,
+ 0x45, 0x4d, 0x92, 0xa6,
+ 0x56, 0xf3, 0x58, 0xbe, 0x58, 0x58, 0xc3, 0x28, 0x9f, 0xcf, 0x3d, 0x6d,
+ 0x51, 0x7d, 0xd6, 0x28,
+ },
+ { /* 3 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x85, 0x44, 0xdf, 0x52, 0x7f, 0xc6, 0x98, 0x60, 0xd4, 0x52, 0x0e, 0x65,
+ 0x07, 0x9f, 0x86, 0xea,
+ 0xc9, 0x88, 0x7d, 0xa4, 0xfe, 0x4f, 0xf3, 0xc0, 0x6b, 0xa4, 0x1c, 0xca,
+ 0x0e, 0xfd, 0xcf, 0x17,
+ 0x4c, 0xcc, 0xa2, 0xf6, 0x81, 0x89, 0x6b, 0xa0, 0xbf, 0xf6, 0x12, 0xaf,
+ 0x09, 0x62, 0x49, 0xfd,
+ 0x51, 0xd3, 0xfa, 0x8b, 0x3f, 0x9e, 0x25, 0x43, 0xd6, 0x8b, 0x38, 0x57,
+ 0x1c, 0x39, 0x5d, 0x2e,
+ 0xd4, 0x97, 0x25, 0xd9, 0x40, 0x58, 0xbd, 0x23, 0x02, 0xd9, 0x36, 0x32,
+ 0x1b, 0xa6, 0xdb, 0xc4,
+ 0x98, 0x5b, 0x87, 0x2f, 0xc1, 0xd1, 0xd6, 0x83, 0xbd, 0x2f, 0x24, 0x9d,
+ 0x12, 0xc4, 0x92, 0x39,
+ 0x1d, 0x1f, 0x58, 0x7d, 0xbe, 0x17, 0x4e, 0xe3, 0x69, 0x7d, 0x2a, 0xf8,
+ 0x15, 0x5b, 0x14, 0xd3,
+ 0xa2, 0x65, 0x37, 0xd5, 0x7e, 0xff, 0x4a, 0x86, 0x6f, 0xd5, 0x70, 0xae,
+ 0x38, 0x72, 0xba, 0x5c,
+ 0x27, 0x21, 0xe8, 0x87, 0x01, 0x39, 0xd2, 0xe6, 0xbb, 0x87, 0x7e, 0xcb,
+ 0x3f, 0xed, 0x3c, 0xb6,
+ 0x6b, 0xed, 0x4a, 0x71, 0x80, 0xb0, 0xb9, 0x46, 0x04, 0x71, 0x6c, 0x64,
+ 0x36, 0x8f, 0x75, 0x4b,
+ 0xee, 0xa9, 0x95, 0x23, 0xff, 0x76, 0x21, 0x26, 0xd0, 0x23, 0x62, 0x01,
+ 0x31, 0x10, 0xf3, 0xa1,
+ 0xf3, 0xb6, 0xcd, 0x5e, 0x41, 0x61, 0x6f, 0xc5, 0xb9, 0x5e, 0x48, 0xf9,
+ 0x24, 0x4b, 0xe7, 0x72,
+ 0x76, 0xf2, 0x12, 0x0c, 0x3e, 0xa7, 0xf7, 0xa5, 0x6d, 0x0c, 0x46, 0x9c,
+ 0x23, 0xd4, 0x61, 0x98,
+ 0x3a, 0x3e, 0xb0, 0xfa, 0xbf, 0x2e, 0x9c, 0x05, 0xd2, 0xfa, 0x54, 0x33,
+ 0x2a, 0xb6, 0x28, 0x65,
+ 0xbf, 0x7a, 0x6f, 0xa8, 0xc0, 0xe8, 0x04, 0x65, 0x06, 0xa8, 0x5a, 0x56,
+ 0x2d, 0x29, 0xae, 0x8f,
+ 0x87, 0xca, 0x6e, 0x69, 0xfc, 0x3d, 0x94, 0xcf, 0xde, 0x69, 0xe0, 0x9f,
+ 0x70, 0xe4, 0xb7, 0xb8,
+ 0x02, 0x8e, 0xb1, 0x3b, 0x83, 0xfb, 0x0c, 0xaf, 0x0a, 0x3b, 0xee, 0xfa,
+ 0x77, 0x7b, 0x31, 0x52,
+ 0x4e, 0x42, 0x13, 0xcd, 0x02, 0x72, 0x67, 0x0f, 0xb5, 0xcd, 0xfc, 0x55,
+ 0x7e, 0x19, 0x78, 0xaf,
+ 0xcb, 0x06, 0xcc, 0x9f, 0x7d, 0xb4, 0xff, 0x6f, 0x61, 0x9f, 0xf2, 0x30,
+ 0x79, 0x86, 0xfe, 0x45,
+ 0xd6, 0x19, 0x94, 0xe2, 0xc3, 0xa3, 0xb1, 0x8c, 0x08, 0xe2, 0xd8, 0xc8,
+ 0x6c, 0xdd, 0xea, 0x96,
+ 0x53, 0x5d, 0x4b, 0xb0, 0xbc, 0x65, 0x29, 0xec, 0xdc, 0xb0, 0xd6, 0xad,
+ 0x6b, 0x42, 0x6c, 0x7c,
+ 0x1f, 0x91, 0xe9, 0x46, 0x3d, 0xec, 0x42, 0x4c, 0x63, 0x46, 0xc4, 0x02,
+ 0x62, 0x20, 0x25, 0x81,
+ 0x9a, 0xd5, 0x36, 0x14, 0x42, 0x2a, 0xda, 0x2c, 0xb7, 0x14, 0xca, 0x67,
+ 0x65, 0xbf, 0xa3, 0x6b,
+ 0x25, 0xaf, 0x59, 0xbc, 0x82, 0xc2, 0xde, 0x49, 0xb1, 0xbc, 0x90, 0x31,
+ 0x48, 0x96, 0x0d, 0xe4,
+ 0xa0, 0xeb, 0x86, 0xee, 0xfd, 0x04, 0x46, 0x29, 0x65, 0xee, 0x9e, 0x54,
+ 0x4f, 0x09, 0x8b, 0x0e,
+ 0xec, 0x27, 0x24, 0x18, 0x7c, 0x8d, 0x2d, 0x89, 0xda, 0x18, 0x8c, 0xfb,
+ 0x46, 0x6b, 0xc2, 0xf3,
+ 0x69, 0x63, 0xfb, 0x4a, 0x03, 0x4b, 0xb5, 0xe9, 0x0e, 0x4a, 0x82, 0x9e,
+ 0x41, 0xf4, 0x44, 0x19,
+ 0x74, 0x7c, 0xa3, 0x37, 0xbd, 0x5c, 0xfb, 0x0a, 0x67, 0x37, 0xa8, 0x66,
+ 0x54, 0xaf, 0x50, 0xca,
+ 0xf1, 0x38, 0x7c, 0x65, 0xc2, 0x9a, 0x63, 0x6a, 0xb3, 0x65, 0xa6, 0x03,
+ 0x53, 0x30, 0xd6, 0x20,
+ 0xbd, 0xf4, 0xde, 0x93, 0x43, 0x13, 0x08, 0xca, 0x0c, 0x93, 0xb4, 0xac,
+ 0x5a, 0x52, 0x9f, 0xdd,
+ 0x38, 0xb0, 0x01, 0xc1, 0x3c, 0xd5, 0x90, 0xaa, 0xd8, 0xc1, 0xba, 0xc9,
+ 0x5d, 0xcd, 0x19, 0x37,
+ 0xcd, 0x57, 0xdc, 0xd2, 0x3b, 0x7a, 0xeb, 0x5d, 0x7f, 0xd2, 0x03, 0xfd,
+ 0xe0, 0x0b, 0xad, 0xb3,
+ 0x48, 0x13, 0x03, 0x80, 0x44, 0xbc, 0x73, 0x3d, 0xab, 0x80, 0x0d, 0x98,
+ 0xe7, 0x94, 0x2b, 0x59,
+ 0x04, 0xdf, 0xa1, 0x76, 0xc5, 0x35, 0x18, 0x9d, 0x14, 0x76, 0x1f, 0x37,
+ 0xee, 0xf6, 0x62, 0xa4,
+ 0x81, 0x9b, 0x7e, 0x24, 0xba, 0xf3, 0x80, 0xfd, 0xc0, 0x24, 0x11, 0x52,
+ 0xe9, 0x69, 0xe4, 0x4e,
+ 0x9c, 0x84, 0x26, 0x59, 0x04, 0xe4, 0xce, 0x1e, 0xa9, 0x59, 0x3b, 0xaa,
+ 0xfc, 0x32, 0xf0, 0x9d,
+ 0x19, 0xc0, 0xf9, 0x0b, 0x7b, 0x22, 0x56, 0x7e, 0x7d, 0x0b, 0x35, 0xcf,
+ 0xfb, 0xad, 0x76, 0x77,
+ 0x55, 0x0c, 0x5b, 0xfd, 0xfa, 0xab, 0x3d, 0xde, 0xc2, 0xfd, 0x27, 0x60,
+ 0xf2, 0xcf, 0x3f, 0x8a,
+ 0xd0, 0x48, 0x84, 0xaf, 0x85, 0x6d, 0xa5, 0xbe, 0x16, 0xaf, 0x29, 0x05,
+ 0xf5, 0x50, 0xb9, 0x60,
+ 0x6f, 0x32, 0xeb, 0x07, 0x45, 0x85, 0xa1, 0xdb, 0x10, 0x07, 0x73, 0x53,
+ 0xd8, 0x79, 0x17, 0xef,
+ 0xea, 0x76, 0x34, 0x55, 0x3a, 0x43, 0x39, 0xbb, 0xc4, 0x55, 0x7d, 0x36,
+ 0xdf, 0xe6, 0x91, 0x05,
+ 0xa6, 0xba, 0x96, 0xa3, 0xbb, 0xca, 0x52, 0x1b, 0x7b, 0xa3, 0x6f, 0x99,
+ 0xd6, 0x84, 0xd8, 0xf8,
+ 0x23, 0xfe, 0x49, 0xf1, 0xc4, 0x0c, 0xca, 0x7b, 0xaf, 0xf1, 0x61, 0xfc,
+ 0xd1, 0x1b, 0x5e, 0x12,
+ 0x3e, 0xe1, 0x11, 0x8c, 0x7a, 0x1b, 0x84, 0x98, 0xc6, 0x8c, 0x4b, 0x04,
+ 0xc4, 0x40, 0x4a, 0xc1,
+ 0xbb, 0xa5, 0xce, 0xde, 0x05, 0xdd, 0x1c, 0xf8, 0x12, 0xde, 0x45, 0x61,
+ 0xc3, 0xdf, 0xcc, 0x2b,
+ 0xf7, 0x69, 0x6c, 0x28, 0x84, 0x54, 0x77, 0x58, 0xad, 0x28, 0x57, 0xce,
+ 0xca, 0xbd, 0x85, 0xd6,
+ 0x72, 0x2d, 0xb3, 0x7a, 0xfb, 0x92, 0xef, 0x38, 0x79, 0x7a, 0x59, 0xab,
+ 0xcd, 0x22, 0x03, 0x3c,
+ 0x4a, 0x9d, 0xb2, 0xbb, 0xc7, 0x47, 0x7f, 0x92, 0xa1, 0xbb, 0xe3, 0x62,
+ 0x90, 0xef, 0x1a, 0x0b,
+ 0xcf, 0xd9, 0x6d, 0xe9, 0xb8, 0x81, 0xe7, 0xf2, 0x75, 0xe9, 0xed, 0x07,
+ 0x97, 0x70, 0x9c, 0xe1,
+ 0x83, 0x15, 0xcf, 0x1f, 0x39, 0x08, 0x8c, 0x52, 0xca, 0x1f, 0xff, 0xa8,
+ 0x9e, 0x12, 0xd5, 0x1c,
+ 0x06, 0x51, 0x10, 0x4d, 0x46, 0xce, 0x14, 0x32, 0x1e, 0x4d, 0xf1, 0xcd,
+ 0x99, 0x8d, 0x53, 0xf6,
+ 0x1b, 0x4e, 0x48, 0x30, 0xf8, 0xd9, 0x5a, 0xd1, 0x77, 0x30, 0xdb, 0x35,
+ 0x8c, 0xd6, 0x47, 0x25,
+ 0x9e, 0x0a, 0x97, 0x62, 0x87, 0x1f, 0xc2, 0xb1, 0xa3, 0x62, 0xd5, 0x50,
+ 0x8b, 0x49, 0xc1, 0xcf,
+ 0xd2, 0xc6, 0x35, 0x94, 0x06, 0x96, 0xa9, 0x11, 0x1c, 0x94, 0xc7, 0xff,
+ 0x82, 0x2b, 0x88, 0x32,
+ 0x57, 0x82, 0xea, 0xc6, 0x79, 0x50, 0x31, 0x71, 0xc8, 0xc6, 0xc9, 0x9a,
+ 0x85, 0xb4, 0x0e, 0xd8,
+ 0xe8, 0xf8, 0x85, 0x6e, 0xb9, 0xb8, 0x35, 0x14, 0xce, 0x6e, 0x93, 0xcc,
+ 0xa8, 0x9d, 0xa0, 0x57,
+ 0x6d, 0xbc, 0x5a, 0x3c, 0xc6, 0x7e, 0xad, 0x74, 0x1a, 0x3c, 0x9d, 0xa9,
+ 0xaf, 0x02, 0x26, 0xbd,
+ 0x21, 0x70, 0xf8, 0xca, 0x47, 0xf7, 0xc6, 0xd4, 0xa5, 0xca, 0x8f, 0x06,
+ 0xa6, 0x60, 0x6f, 0x40,
+ 0xa4, 0x34, 0x27, 0x98, 0x38, 0x31, 0x5e, 0xb4, 0x71, 0x98, 0x81, 0x63,
+ 0xa1, 0xff, 0xe9, 0xaa,
+ 0xb9, 0x2b, 0x7f, 0xe5, 0x86, 0x26, 0x10, 0x57, 0x18, 0xe5, 0xab, 0x9b,
+ 0xb4, 0xa4, 0xfd, 0x79,
+ 0x3c, 0x6f, 0xa0, 0xb7, 0xf9, 0xe0, 0x88, 0x37, 0xcc, 0xb7, 0xa5, 0xfe,
+ 0xb3, 0x3b, 0x7b, 0x93,
+ 0x70, 0xa3, 0x02, 0x41, 0x78, 0x69, 0xe3, 0x97, 0x73, 0x41, 0xb7, 0x51,
+ 0xba, 0x59, 0x32, 0x6e,
+ 0xf5, 0xe7, 0xdd, 0x13, 0x07, 0xaf, 0x7b, 0xf7, 0xa7, 0x13, 0xb9, 0x34,
+ 0xbd, 0xc6, 0xb4, 0x84,
+ 0x59, 0xae, 0x7b, 0x67, 0x76, 0xf4, 0x15, 0xba, 0xfe, 0x67, 0x06, 0x39,
+ 0x03, 0x16, 0x99, 0xa5,
+ 0xdc, 0xea, 0xa4, 0x35, 0x09, 0x32, 0x8d, 0xda, 0x2a, 0x35, 0x08, 0x5c,
+ 0x04, 0x89, 0x1f, 0x4f,
+ 0x90, 0x26, 0x06, 0xc3, 0x88, 0xbb, 0xe6, 0x7a, 0x95, 0xc3, 0x1a, 0xf3,
+ 0x0d, 0xeb, 0x56, 0xb2,
+ 0x15, 0x62, 0xd9, 0x91, 0xf7, 0x7d, 0x7e, 0x1a, 0x41, 0x91, 0x14, 0x96,
+ 0x0a, 0x74, 0xd0, 0x58,
+ 0x08, 0x7d, 0x81, 0xec, 0x49, 0x6a, 0x30, 0xf9, 0x28, 0xec, 0x3e, 0x6e,
+ 0x1f, 0x2f, 0xc4, 0x8b,
+ 0x8d, 0x39, 0x5e, 0xbe, 0x36, 0xac, 0xa8, 0x99, 0xfc, 0xbe, 0x30, 0x0b,
+ 0x18, 0xb0, 0x42, 0x61,
+ 0xc1, 0xf5, 0xfc, 0x48, 0xb7, 0x25, 0xc3, 0x39, 0x43, 0x48, 0x22, 0xa4,
+ 0x11, 0xd2, 0x0b, 0x9c,
+ 0x44, 0xb1, 0x23, 0x1a, 0xc8, 0xe3, 0x5b, 0x59, 0x97, 0x1a, 0x2c, 0xc1,
+ 0x16, 0x4d, 0x8d, 0x76,
+ 0xfb, 0xcb, 0x4c, 0xb2, 0x08, 0x0b, 0x5f, 0x3c, 0x91, 0xb2, 0x76, 0x97,
+ 0x3b, 0x64, 0x23, 0xf9,
+ 0x7e, 0x8f, 0x93, 0xe0, 0x77, 0xcd, 0xc7, 0x5c, 0x45, 0xe0, 0x78, 0xf2,
+ 0x3c, 0xfb, 0xa5, 0x13,
+ 0x32, 0x43, 0x31, 0x16, 0xf6, 0x44, 0xac, 0xfc, 0xfa, 0x16, 0x6a, 0x5d,
+ 0x35, 0x99, 0xec, 0xee,
+ 0xb7, 0x07, 0xee, 0x44, 0x89, 0x82, 0x34, 0x9c, 0x2e, 0x44, 0x64, 0x38,
+ 0x32, 0x06, 0x6a, 0x04,
+ 0xaa, 0x18, 0xb6, 0x39, 0x37, 0x95, 0x7a, 0x7f, 0x47, 0x39, 0x4e, 0xc0,
+ 0x27, 0x5d, 0x7e, 0xd7,
+ 0x2f, 0x5c, 0x69, 0x6b, 0x48, 0x53, 0xe2, 0x1f, 0x93, 0x6b, 0x40, 0xa5,
+ 0x20, 0xc2, 0xf8, 0x3d,
+ 0x63, 0x90, 0xcb, 0x9d, 0xc9, 0xda, 0x89, 0xbf, 0x2c, 0x9d, 0x52, 0x0a,
+ 0x29, 0xa0, 0xb1, 0xc0,
+ 0xe6, 0xd4, 0x14, 0xcf, 0xb6, 0x1c, 0x11, 0xdf, 0xf8, 0xcf, 0x5c, 0x6f,
+ 0x2e, 0x3f, 0x37, 0x2a,
+ 0xde, 0x64, 0x15, 0x0e, 0x8a, 0xc9, 0x81, 0x75, 0x20, 0x0e, 0xe6, 0xa6,
+ 0x73, 0xf2, 0x2e, 0x1d,
+ 0x5b, 0x20, 0xca, 0x5c, 0xf5, 0x0f, 0x19, 0x15, 0xf4, 0x5c, 0xe8, 0xc3,
+ 0x74, 0x6d, 0xa8, 0xf7,
+ 0x17, 0xec, 0x68, 0xaa, 0x74, 0x86, 0x72, 0xb5, 0x4b, 0xaa, 0xfa, 0x6c,
+ 0x7d, 0x0f, 0xe1, 0x0a,
+ 0x92, 0xa8, 0xb7, 0xf8, 0x0b, 0x40, 0xea, 0xd5, 0x9f, 0xf8, 0xf4, 0x09,
+ 0x7a, 0x90, 0x67, 0xe0,
+ 0x8f, 0xb7, 0xef, 0x85, 0xb5, 0x57, 0xa4, 0x36, 0xf6, 0x85, 0xde, 0xf1,
+ 0x6f, 0xcb, 0x73, 0x33,
+ 0x0a, 0xf3, 0x30, 0xd7, 0xca, 0x91, 0x3c, 0x56, 0x22, 0xd7, 0xd0, 0x94,
+ 0x68, 0x54, 0xf5, 0xd9,
+ 0x46, 0x3f, 0x92, 0x21, 0x4b, 0x18, 0x57, 0xf6, 0x9d, 0x21, 0xc2, 0x3b,
+ 0x61, 0x36, 0xbc, 0x24,
+ 0xc3, 0x7b, 0x4d, 0x73, 0x34, 0xde, 0xcf, 0x96, 0x49, 0x73, 0xcc, 0x5e,
+ 0x66, 0xa9, 0x3a, 0xce,
+ 0x7c, 0x01, 0x22, 0xdb, 0xf4, 0x36, 0xcb, 0xf3, 0x4f, 0xdb, 0x96, 0x08,
+ 0x4b, 0x80, 0x94, 0x41,
+ 0xf9, 0x45, 0xfd, 0x89, 0x8b, 0xf0, 0x53, 0x93, 0x9b, 0x89, 0x98, 0x6d,
+ 0x4c, 0x1f, 0x12, 0xab,
+ 0xb5, 0x89, 0x5f, 0x7f, 0x0a, 0x79, 0x38, 0x33, 0x24, 0x7f, 0x8a, 0xc2,
+ 0x45, 0x7d, 0x5b, 0x56,
+ 0x30, 0xcd, 0x80, 0x2d, 0x75, 0xbf, 0xa0, 0x53, 0xf0, 0x2d, 0x84, 0xa7,
+ 0x42, 0xe2, 0xdd, 0xbc,
+ 0x2d, 0xd2, 0xd8, 0x50, 0xcb, 0xa8, 0xee, 0xb0, 0x99, 0x50, 0xae, 0x5f,
+ 0x57, 0xb9, 0xc9, 0x6f,
+ 0xa8, 0x96, 0x07, 0x02, 0xb4, 0x6e, 0x76, 0xd0, 0x4d, 0x02, 0xa0, 0x3a,
+ 0x50, 0x26, 0x4f, 0x85,
+ 0xe4, 0x5a, 0xa5, 0xf4, 0x35, 0xe7, 0x1d, 0x70, 0xf2, 0xf4, 0xb2, 0x95,
+ 0x59, 0x44, 0x06, 0x78,
+ 0x61, 0x1e, 0x7a, 0xa6, 0x4a, 0x21, 0x85, 0x10, 0x26, 0xa6, 0xbc, 0xf0,
+ 0x5e, 0xdb, 0x80, 0x92,
+ 0x94, 0xf9, 0xa7, 0xb5, 0x4d, 0x8e, 0xfe, 0xe7, 0x81, 0xb5, 0x05, 0xc4,
+ 0xe3, 0x1d, 0x34, 0x16,
+ 0x11, 0xbd, 0x78, 0xe7, 0x32, 0x48, 0x66, 0x87, 0x55, 0xe7, 0x0b, 0xa1,
+ 0xe4, 0x82, 0xb2, 0xfc,
+ 0x5d, 0x71, 0xda, 0x11, 0xb3, 0xc1, 0x0d, 0x27, 0xea, 0x11, 0x19, 0x0e,
+ 0xed, 0xe0, 0xfb, 0x01,
+ 0xd8, 0x35, 0x05, 0x43, 0xcc, 0x07, 0x95, 0x47, 0x3e, 0x43, 0x17, 0x6b,
+ 0xea, 0x7f, 0x7d, 0xeb,
+ 0xc5, 0x2a, 0x5d, 0x3e, 0x72, 0x10, 0xdb, 0xa4, 0x57, 0x3e, 0x3d, 0x93,
+ 0xff, 0x24, 0x69, 0x38,
+ 0x40, 0x6e, 0x82, 0x6c, 0x0d, 0xd6, 0x43, 0xc4, 0x83, 0x6c, 0x33, 0xf6,
+ 0xf8, 0xbb, 0xef, 0xd2,
+ 0x0c, 0xa2, 0x20, 0x9a, 0x8c, 0x5f, 0x28, 0x64, 0x3c, 0x9a, 0x21, 0x59,
+ 0xf1, 0xd9, 0xa6, 0x2f,
+ 0x89, 0xe6, 0xff, 0xc8, 0xf3, 0x99, 0xb0, 0x04, 0xe8, 0xc8, 0x2f, 0x3c,
+ 0xf6, 0x46, 0x20, 0xc5,
+ 0x36, 0x9c, 0x90, 0x60, 0x33, 0x71, 0xb4, 0x61, 0xee, 0x60, 0x75, 0x6a,
+ 0xdb, 0x6f, 0x8e, 0x4a,
+ 0xb3, 0xd8, 0x4f, 0x32, 0x4c, 0xb7, 0x2c, 0x01, 0x3a, 0x32, 0x7b, 0x0f,
+ 0xdc, 0xf0, 0x08, 0xa0,
+ 0xff, 0x14, 0xed, 0xc4, 0xcd, 0x3e, 0x47, 0xa1, 0x85, 0xc4, 0x69, 0xa0,
+ 0xd5, 0x92, 0x41, 0x5d,
+ 0x7a, 0x50, 0x32, 0x96, 0xb2, 0xf8, 0xdf, 0xc1, 0x51, 0x96, 0x67, 0xc5,
+ 0xd2, 0x0d, 0xc7, 0xb7,
+ 0x67, 0x4f, 0x6a, 0xeb, 0x0c, 0xef, 0x91, 0x22, 0x38, 0xeb, 0x4d, 0x3d,
+ 0xc7, 0x56, 0xd3, 0x64,
+ 0xe2, 0x0b, 0xb5, 0xb9, 0x73, 0x29, 0x09, 0x42, 0xec, 0xb9, 0x43, 0x58,
+ 0xc0, 0xc9, 0x55, 0x8e,
+ 0xae, 0xc7, 0x17, 0x4f, 0xf2, 0xa0, 0x62, 0xe2, 0x53, 0x4f, 0x51, 0xf7,
+ 0xc9, 0xab, 0x1c, 0x73,
+ 0x2b, 0x83, 0xc8, 0x1d, 0x8d, 0x66, 0xfa, 0x82, 0x87, 0x1d, 0x5f, 0x92,
+ 0xce, 0x34, 0x9a, 0x99,
+ 0x13, 0x33, 0xc9, 0xdc, 0xb1, 0xb3, 0x6a, 0x28, 0x5f, 0xdc, 0xe5, 0x5b,
+ 0x93, 0xf9, 0x83, 0xae,
+ 0x96, 0x77, 0x16, 0x8e, 0xce, 0x75, 0xf2, 0x48, 0x8b, 0x8e, 0xeb, 0x3e,
+ 0x94, 0x66, 0x05, 0x44,
+ 0xda, 0xbb, 0xb4, 0x78, 0x4f, 0xfc, 0x99, 0xe8, 0x34, 0x78, 0xf9, 0x91,
+ 0x9d, 0x04, 0x4c, 0xb9,
+ 0x5f, 0xff, 0x6b, 0x2a, 0x30, 0x3a, 0x01, 0x88, 0xe0, 0x2a, 0xf7, 0xf4,
+ 0x9a, 0x9b, 0xca, 0x53,
+ 0x42, 0xe0, 0x33, 0x57, 0x8e, 0x2d, 0x4f, 0x6b, 0x89, 0x57, 0xdd, 0x0c,
+ 0x8f, 0xc0, 0xde, 0x80,
+ 0xc7, 0xa4, 0xec, 0x05, 0xf1, 0xeb, 0xd7, 0x0b, 0x5d, 0x05, 0xd3, 0x69,
+ 0x88, 0x5f, 0x58, 0x6a,
+ 0x8b, 0x68, 0x4e, 0xf3, 0x70, 0x62, 0xbc, 0xab, 0xe2, 0xf3, 0xc1, 0xc6,
+ 0x81, 0x3d, 0x11, 0x97,
+ 0x0e, 0x2c, 0x91, 0xa1, 0x0f, 0xa4, 0x24, 0xcb, 0x36, 0xa1, 0xcf, 0xa3,
+ 0x86, 0xa2, 0x97, 0x7d,
+ 0xb1, 0x56, 0xfe, 0x09, 0xcf, 0x4c, 0x20, 0xae, 0x30, 0x09, 0x95, 0xf5,
+ 0xab, 0x8b, 0x39, 0xf2,
+ 0x34, 0x12, 0x21, 0x5b, 0xb0, 0x8a, 0xb8, 0xce, 0xe4, 0x5b, 0x9b, 0x90,
+ 0xac, 0x14, 0xbf, 0x18,
+ 0x78, 0xde, 0x83, 0xad, 0x31, 0x03, 0xd3, 0x6e, 0x5b, 0xad, 0x89, 0x3f,
+ 0xa5, 0x76, 0xf6, 0xe5,
+ 0xfd, 0x9a, 0x5c, 0xff, 0x4e, 0xc5, 0x4b, 0x0e, 0x8f, 0xff, 0x87, 0x5a,
+ 0xa2, 0xe9, 0x70, 0x0f,
+ 0xe0, 0x85, 0x04, 0x82, 0xf0, 0xd2, 0x05, 0xed, 0xe6, 0x82, 0xad, 0xa2,
+ 0xb7, 0xb2, 0x64, 0xdc,
+ 0x65, 0xc1, 0xdb, 0xd0, 0x8f, 0x14, 0x9d, 0x8d, 0x32, 0xd0, 0xa3, 0xc7,
+ 0xb0, 0x2d, 0xe2, 0x36,
+ 0x29, 0x0d, 0x79, 0x26, 0x0e, 0x9d, 0xf6, 0x2d, 0x8d, 0x26, 0xb1, 0x68,
+ 0xb9, 0x4f, 0xab, 0xcb,
+ 0xac, 0x49, 0xa6, 0x74, 0x71, 0x5b, 0x6e, 0x4d, 0x59, 0x74, 0xbf, 0x0d,
+ 0xbe, 0xd0, 0x2d, 0x21,
+ 0xb2, 0x9f, 0xf6, 0xce, 0xec, 0x2b, 0x2a, 0xb7, 0x3f, 0xce, 0x0c, 0x72,
+ 0x06, 0x2c, 0xf1, 0x89,
+ 0x37, 0xdb, 0x29, 0x9c, 0x93, 0xed, 0xb2, 0xd7, 0xeb, 0x9c, 0x02, 0x17,
+ 0x01, 0xb3, 0x77, 0x63,
+ 0x7b, 0x17, 0x8b, 0x6a, 0x12, 0x64, 0xd9, 0x77, 0x54, 0x6a, 0x10, 0xb8,
+ 0x08, 0xd1, 0x3e, 0x9e,
+ 0xfe, 0x53, 0x54, 0x38, 0x6d, 0xa2, 0x41, 0x17, 0x80, 0x38, 0x1e, 0xdd,
+ 0x0f, 0x4e, 0xb8, 0x74,
+ 0xe3, 0x4c, 0x0c, 0x45, 0xd3, 0xb5, 0x0f, 0xf4, 0xe9, 0x45, 0x34, 0x25,
+ 0x1a, 0x15, 0xac, 0xa7,
+ 0x66, 0x08, 0xd3, 0x17, 0xac, 0x73, 0x97, 0x94, 0x3d, 0x17, 0x3a, 0x40,
+ 0x1d, 0x8a, 0x2a, 0x4d,
+ 0x2a, 0xc4, 0x71, 0xe1, 0x2d, 0xfa, 0xfc, 0x34, 0x82, 0xe1, 0x28, 0xef,
+ 0x14, 0xe8, 0x63, 0xb0,
+ 0xaf, 0x80, 0xae, 0xb3, 0x52, 0x3c, 0x64, 0x54, 0x56, 0xb3, 0x26, 0x8a,
+ 0x13, 0x77, 0xe5, 0x5a,
+ 0x10, 0xfa, 0xc1, 0x1b, 0x92, 0xd4, 0x60, 0x31, 0x50, 0x1b, 0x7c, 0xdc,
+ 0x3e, 0x5e, 0x4b, 0xd5,
+ 0x95, 0xbe, 0x1e, 0x49, 0xed, 0x12, 0xf8, 0x51, 0x84, 0x49, 0x72, 0xb9,
+ 0x39, 0xc1, 0xcd, 0x3f,
+ 0xd9, 0x72, 0xbc, 0xbf, 0x6c, 0x9b, 0x93, 0xf1, 0x3b, 0xbf, 0x60, 0x16,
+ 0x30, 0xa3, 0x84, 0xc2,
+ 0x5c, 0x36, 0x63, 0xed, 0x13, 0x5d, 0x0b, 0x91, 0xef, 0xed, 0x6e, 0x73,
+ 0x37, 0x3c, 0x02, 0x28,
+ 0x41, 0x29, 0x3b, 0x90, 0xad, 0x4a, 0x45, 0x72, 0x86, 0x90, 0x44, 0x8b,
+ 0x22, 0x67, 0x16, 0xfb,
+ 0xc4, 0x6d, 0xe4, 0xc2, 0xd2, 0x8c, 0xdd, 0x12, 0x52, 0xc2, 0x4a, 0xee,
+ 0x25, 0xf8, 0x90, 0x11,
+ 0x88, 0xa1, 0x46, 0x34, 0x53, 0x05, 0xb6, 0xb2, 0xed, 0x34, 0x58, 0x41,
+ 0x2c, 0x9a, 0xd9, 0xec,
+ 0x0d, 0xe5, 0x99, 0x66, 0x2c, 0xc3, 0x2e, 0xd2, 0x39, 0x66, 0x56, 0x24,
+ 0x2b, 0x05, 0x5f, 0x06,
+ 0x35, 0x55, 0x98, 0xa7, 0x10, 0x16, 0xbe, 0x78, 0xe1, 0xa7, 0xec, 0xed,
+ 0x76, 0xc8, 0x46, 0x31,
+ 0xb0, 0x11, 0x47, 0xf5, 0x6f, 0xd0, 0x26, 0x18, 0x35, 0xf5, 0xe2, 0x88,
+ 0x71, 0x57, 0xc0, 0xdb,
+ 0xfc, 0xdd, 0xe5, 0x03, 0xee, 0x59, 0x4d, 0xb8, 0x8a, 0x03, 0xf0, 0x27,
+ 0x78, 0x35, 0x89, 0x26,
+ 0x79, 0x99, 0x3a, 0x51, 0x91, 0x9f, 0xd5, 0xd8, 0x5e, 0x51, 0xfe, 0x42,
+ 0x7f, 0xaa, 0x0f, 0xcc,
+ 0x64, 0x86, 0x62, 0x2c, 0x2f, 0x88, 0x9b, 0x3b, 0x37, 0x2c, 0xd4, 0xba,
+ 0x6a, 0xf1, 0x1b, 0x1f,
+ 0xe1, 0xc2, 0xbd, 0x7e, 0x50, 0x4e, 0x03, 0x5b, 0xe3, 0x7e, 0xda, 0xdf,
+ 0x6d, 0x6e, 0x9d, 0xf5,
+ 0xad, 0x0e, 0x1f, 0x88, 0xd1, 0xc7, 0x68, 0xfb, 0x5c, 0x88, 0xc8, 0x70,
+ 0x64, 0x0c, 0xd4, 0x08,
+ 0x28, 0x4a, 0xc0, 0xda, 0xae, 0x01, 0xf0, 0x9b, 0x88, 0xda, 0xc6, 0x15,
+ 0x63, 0x93, 0x52, 0xe2,
+ 0x97, 0x30, 0xaf, 0x72, 0x6e, 0xe9, 0xf4, 0xfe, 0x8e, 0x72, 0x9c, 0x43,
+ 0x4e, 0xba, 0xfc, 0x6d,
+ 0x12, 0x74, 0x70, 0x20, 0x11, 0x2f, 0x6c, 0x9e, 0x5a, 0x20, 0x92, 0x26,
+ 0x49, 0x25, 0x7a, 0x87,
+ 0x5e, 0xb8, 0xd2, 0xd6, 0x90, 0xa6, 0x07, 0x3e, 0xe5, 0xd6, 0x80, 0x89,
+ 0x40, 0x47, 0x33, 0x7a,
+ 0xdb, 0xfc, 0x0d, 0x84, 0xef, 0x60, 0x9f, 0x5e, 0x31, 0x84, 0x8e, 0xec,
+ 0x47, 0xd8, 0xb5, 0x90,
+ 0xc6, 0xe3, 0x55, 0xf9, 0x51, 0x77, 0xd1, 0xbd, 0x58, 0xf9, 0xa4, 0x14,
+ 0x52, 0x83, 0xa1, 0x43,
+ 0x43, 0xa7, 0x8a, 0xab, 0x2e, 0xb1, 0x49, 0xdd, 0x8c, 0xab, 0xaa, 0x71,
+ 0x55, 0x1c, 0x27, 0xa9,
+ 0x0f, 0x6b, 0x28, 0x5d, 0xaf, 0x38, 0x22, 0x7d, 0x33, 0x5d, 0xb8, 0xde,
+ 0x5c, 0x7e, 0x6e, 0x54,
+ 0x8a, 0x2f, 0xf7, 0x0f, 0xd0, 0xfe, 0xba, 0x1d, 0xe7, 0x0f, 0xb6, 0xbb,
+ 0x5b, 0xe1, 0xe8, 0xbe,
+ 0x7f, 0xc8, 0x2a, 0x1c, 0xd7, 0x51, 0xc1, 0xea, 0x40, 0x1c, 0x0f, 0x8f,
+ 0xe6, 0x27, 0x5c, 0x3a,
+ 0xfa, 0x8c, 0xf5, 0x4e, 0xa8, 0x97, 0x59, 0x8a, 0x94, 0x4e, 0x01, 0xea,
+ 0xe1, 0xb8, 0xda, 0xd0,
+ 0xb6, 0x40, 0x57, 0xb8, 0x29, 0x1e, 0x32, 0x2a, 0x2b, 0xb8, 0x13, 0x45,
+ 0xe8, 0xda, 0x93, 0x2d,
+ 0x33, 0x04, 0x88, 0xea, 0x56, 0xd8, 0xaa, 0x4a, 0xff, 0xea, 0x1d, 0x20,
+ 0xef, 0x45, 0x15, 0xc7,
+ 0x2e, 0x1b, 0xd0, 0x97, 0xe8, 0xcf, 0xe4, 0xa9, 0x96, 0x97, 0x37, 0xd8,
+ 0xfa, 0x1e, 0x01, 0x14,
+ 0xab, 0x5f, 0x0f, 0xc5, 0x97, 0x09, 0x7c, 0xc9, 0x42, 0xc5, 0x39, 0xbd,
+ 0xfd, 0x81, 0x87, 0xfe,
+ 0xe7, 0x93, 0xad, 0x33, 0x16, 0x80, 0x17, 0x69, 0xfd, 0x33, 0x2b, 0x12,
+ 0xf4, 0xe3, 0xce, 0x03,
+ 0x62, 0xd7, 0x72, 0x61, 0x69, 0x46, 0x8f, 0x09, 0x29, 0x61, 0x25, 0x77,
+ 0xf3, 0x7c, 0x48, 0xe9,
+ 0xdd, 0xad, 0x1d, 0xc9, 0xa9, 0xae, 0x8b, 0x6c, 0x2f, 0xc9, 0x7f, 0x21,
+ 0xde, 0x55, 0xe6, 0x66,
+ 0x58, 0xe9, 0xc2, 0x9b, 0xd6, 0x68, 0x13, 0x0c, 0xfb, 0x9b, 0x71, 0x44,
+ 0xd9, 0xca, 0x60, 0x8c,
+ 0x14, 0x25, 0x60, 0x6d, 0x57, 0xe1, 0x78, 0xac, 0x44, 0x6d, 0x63, 0xeb,
+ 0xd0, 0xa8, 0x29, 0x71,
+ 0x91, 0x61, 0xbf, 0x3f, 0x28, 0x27, 0xe0, 0xcc, 0x90, 0x3f, 0x6d, 0x8e,
+ 0xd7, 0x37, 0xaf, 0x9b,
+ 0x8c, 0x7e, 0xe7, 0x42, 0x96, 0x30, 0xae, 0x2f, 0xf9, 0x42, 0x47, 0x76,
+ 0xc2, 0x6c, 0xbb, 0x48,
+ 0x09, 0x3a, 0x38, 0x10, 0xe9, 0xf6, 0x36, 0x4f, 0x2d, 0x10, 0x49, 0x13,
+ 0xc5, 0xf3, 0x3d, 0xa2,
+ 0x45, 0xf6, 0x9a, 0xe6, 0x68, 0x7f, 0x5d, 0xef, 0x92, 0xe6, 0x5b, 0xbc,
+ 0xcc, 0x91, 0x74, 0x5f,
+ 0xc0, 0xb2, 0x45, 0xb4, 0x17, 0xb9, 0xc5, 0x8f, 0x46, 0xb4, 0x55, 0xd9,
+ 0xcb, 0x0e, 0xf2, 0xb5,
+ 0xf8, 0x02, 0x44, 0x75, 0x2b, 0x6c, 0x55, 0x25, 0x9e, 0x75, 0xef, 0x10,
+ 0x96, 0xc3, 0xeb, 0x82,
+ 0x7d, 0x46, 0x9b, 0x27, 0x54, 0xaa, 0xcd, 0x45, 0x4a, 0x27, 0xe1, 0x75,
+ 0x91, 0x5c, 0x6d, 0x68,
+ 0x31, 0x8a, 0x39, 0xd1, 0xd5, 0x23, 0xa6, 0xe5, 0xf5, 0xd1, 0xf3, 0xda,
+ 0x98, 0x3e, 0x24, 0x95,
+ 0xb4, 0xce, 0xe6, 0x83, 0xaa, 0xe5, 0x3e, 0x85, 0x21, 0x83, 0xfd, 0xbf,
+ 0x9f, 0xa1, 0xa2, 0x7f,
+ 0xa9, 0xd1, 0xbe, 0xfe, 0x14, 0xf2, 0x70, 0x66, 0x48, 0xfe, 0xd7, 0x47,
+ 0x8a, 0xfa, 0xb6, 0xac,
+ 0x2c, 0x95, 0x61, 0xac, 0x6b, 0x34, 0xe8, 0x06, 0x9c, 0xac, 0xd9, 0x22,
+ 0x8d, 0x65, 0x30, 0x46,
+ 0x60, 0x59, 0xc3, 0x5a, 0xea, 0xbd, 0x83, 0xa6, 0x23, 0x5a, 0xcb, 0x8d,
+ 0x84, 0x07, 0x79, 0xbb,
+ 0xe5, 0x1d, 0x1c, 0x08, 0x95, 0x7b, 0x1b, 0xc6, 0xf7, 0x08, 0xc5, 0xe8,
+ 0x83, 0x98, 0xff, 0x51,
+ 0x5a, 0x67, 0x73, 0xa0, 0x55, 0x93, 0x1f, 0xa3, 0xf1, 0xa0, 0x9f, 0xbe,
+ 0xae, 0xb1, 0x51, 0xde,
+ 0xdf, 0x23, 0xac, 0xf2, 0x2a, 0x55, 0x87, 0xc3, 0x25, 0xf2, 0x91, 0xdb,
+ 0xa9, 0x2e, 0xd7, 0x34,
+ 0x93, 0xef, 0x0e, 0x04, 0xab, 0xdc, 0xec, 0x63, 0x9a, 0x04, 0x83, 0x74,
+ 0xa0, 0x4c, 0x9e, 0xc9,
+ 0x16, 0xab, 0xd1, 0x56, 0xd4, 0x1a, 0x74, 0x03, 0x4e, 0x56, 0x8d, 0x11,
+ 0xa7, 0xd3, 0x18, 0x23,
+ 0x0b, 0xb4, 0x89, 0x2b, 0x6a, 0x0d, 0x3a, 0xe0, 0x27, 0x2b, 0xa7, 0xe9,
+ 0xb2, 0x88, 0x0c, 0xf0,
+ 0x8e, 0xf0, 0x56, 0x79, 0x15, 0xcb, 0xa2, 0x80, 0xf3, 0x79, 0xa9, 0x8c,
+ 0xb5, 0x17, 0x8a, 0x1a,
+ 0xc2, 0x3c, 0xf4, 0x8f, 0x94, 0x42, 0xc9, 0x20, 0x4c, 0x8f, 0xbb, 0x23,
+ 0xbc, 0x75, 0xc3, 0xe7,
+ 0x47, 0x78, 0x2b, 0xdd, 0xeb, 0x84, 0x51, 0x40, 0x98, 0xdd, 0xb5, 0x46,
+ 0xbb, 0xea, 0x45, 0x0d,
+ 0xeb, 0x31, 0x8d, 0xa9, 0x9a, 0xdf, 0x3f, 0x0d, 0xc1, 0xa9, 0x0a, 0x4b,
+ 0x05, 0x3a, 0x68, 0x2c,
+ 0x6e, 0x75, 0x52, 0xfb, 0xe5, 0x19, 0xa7, 0x6d, 0x15, 0xfb, 0x04, 0x2e,
+ 0x02, 0xa5, 0xee, 0xc6,
+ 0x22, 0xb9, 0xf0, 0x0d, 0x64, 0x90, 0xcc, 0xcd, 0xaa, 0x0d, 0x16, 0x81,
+ 0x0b, 0xc7, 0xa7, 0x3b,
+ 0xa7, 0xfd, 0x2f, 0x5f, 0x1b, 0x56, 0x54, 0xad, 0x7e, 0x5f, 0x18, 0xe4,
+ 0x0c, 0x58, 0x21, 0xd1,
+ 0xba, 0xe2, 0x77, 0x22, 0xa5, 0x41, 0x1a, 0x4e, 0x17, 0x22, 0x32, 0x1c,
+ 0x19, 0x03, 0x35, 0x02,
+ 0x3f, 0xa6, 0xa8, 0x70, 0xda, 0x87, 0x82, 0x2e, 0xc3, 0x70, 0x3c, 0x79,
+ 0x1e, 0x9c, 0xb3, 0xe8,
+ 0x73, 0x6a, 0x0a, 0x86, 0x5b, 0x0e, 0xe9, 0x8e, 0x7c, 0x86, 0x2e, 0xd6,
+ 0x17, 0xfe, 0xfa, 0x15,
+ 0xf6, 0x2e, 0xd5, 0xd4, 0x24, 0xc8, 0x71, 0xee, 0xa8, 0xd4, 0x20, 0xb3,
+ 0x10, 0x61, 0x7c, 0xff,
+ 0x49, 0x54, 0xba, 0x7c, 0xe4, 0x20, 0x75, 0x8b, 0xae, 0x7c, 0x7a, 0xe5,
+ 0x3d, 0x48, 0xd2, 0x70,
+ 0xcc, 0x10, 0x65, 0x2e, 0x9b, 0xe6, 0xed, 0xeb, 0x7a, 0x2e, 0x74, 0x80,
+ 0x3a, 0xd7, 0x54, 0x9a,
+ 0x80, 0xdc, 0xc7, 0xd8, 0x1a, 0x6f, 0x86, 0x4b, 0xc5, 0xd8, 0x66, 0x2f,
+ 0x33, 0xb5, 0x1d, 0x67,
+ 0x05, 0x98, 0x18, 0x8a, 0x65, 0xa9, 0x1e, 0x2b, 0x11, 0x8a, 0x68, 0x4a,
+ 0x34, 0x2a, 0x9b, 0x8d,
+ 0x18, 0x87, 0x40, 0xf7, 0xdb, 0xbe, 0x50, 0xc8, 0x78, 0xf7, 0x42, 0xb2,
+ 0x21, 0x71, 0x8f, 0x5e,
+ 0x9d, 0xc3, 0x9f, 0xa5, 0xa4, 0x78, 0xc8, 0xa8, 0xac, 0xa5, 0x4c, 0xd7,
+ 0x26, 0xee, 0x09, 0xb4,
+ 0xd1, 0x0f, 0x3d, 0x53, 0x25, 0xf1, 0xa3, 0x08, 0x13, 0x53, 0x5e, 0x78,
+ 0x2f, 0x8c, 0x40, 0x49,
+ 0x54, 0x4b, 0xe2, 0x01, 0x5a, 0x37, 0x3b, 0x68, 0xc7, 0x01, 0x50, 0x1d,
+ 0x28, 0x13, 0xc6, 0xa3,
+ 0x6c, 0xfb, 0xe3, 0xc0, 0x66, 0xe2, 0xab, 0xc2, 0x1f, 0xc0, 0xea, 0xd4,
+ 0x75, 0xde, 0xdf, 0x94,
+ 0xe9, 0xbf, 0x3c, 0x92, 0x19, 0x24, 0x33, 0xa2, 0xcb, 0x92, 0xe4, 0xb1,
+ 0x72, 0x41, 0x59, 0x7e,
+ 0xa5, 0x73, 0x9e, 0x64, 0x98, 0xad, 0x58, 0x02, 0x74, 0x64, 0xf6, 0x1e,
+ 0x7b, 0x23, 0x10, 0x83,
+ 0x20, 0x37, 0x41, 0x36, 0xe7, 0x6b, 0xc0, 0x62, 0xa0, 0x36, 0xf8, 0x7b,
+ 0x7c, 0xbc, 0x96, 0x69,
+ 0x3d, 0x28, 0x19, 0x4b, 0x59, 0x7c, 0x8e, 0x81, 0xc9, 0x4b, 0xd2, 0x83,
+ 0x69, 0xe7, 0x82, 0xba,
+ 0xb8, 0x6c, 0xc6, 0x19, 0x26, 0xba, 0x16, 0xe1, 0x1d, 0x19, 0xdc, 0xe6,
+ 0x6e, 0x78, 0x04, 0x50,
+ 0xf4, 0xa0, 0x64, 0xef, 0xa7, 0x33, 0x7d, 0x41, 0xa2, 0xef, 0xce, 0x49,
+ 0x67, 0x1a, 0x4d, 0xad,
+ 0x71, 0xe4, 0xbb, 0xbd, 0xd8, 0xf5, 0xe5, 0x21, 0x76, 0xbd, 0xc0, 0x2c,
+ 0x60, 0x85, 0xcb, 0x47,
+ 0xce, 0x9e, 0xd4, 0x15, 0x18, 0x1d, 0xe1, 0x44, 0x70, 0x15, 0x9a, 0x7a,
+ 0x4d, 0xac, 0x65, 0xc8,
+ 0x4b, 0xda, 0x0b, 0x47, 0x67, 0xdb, 0x79, 0x24, 0xa4, 0x47, 0x94, 0x1f,
+ 0x4a, 0x33, 0xe3, 0x22,
+ 0x07, 0x16, 0xa9, 0xb1, 0xe6, 0x52, 0x12, 0x84, 0x1b, 0xb1, 0x86, 0xb0,
+ 0x43, 0x51, 0xaa, 0xdf,
+ 0x82, 0x52, 0x76, 0xe3, 0x99, 0x94, 0x8a, 0xe4, 0xcf, 0xe3, 0x88, 0xd5,
+ 0x44, 0xce, 0x2c, 0x35,
+ 0x9f, 0x4d, 0x2e, 0x9e, 0x27, 0x83, 0xc4, 0x07, 0xa6, 0x9e, 0xa2, 0x2d,
+ 0x51, 0x95, 0x38, 0xe6,
+ 0x1a, 0x09, 0xf1, 0xcc, 0x58, 0x45, 0x5c, 0x67, 0x72, 0xcc, 0xac, 0x48,
+ 0x56, 0x0a, 0xbe, 0x0c,
+ 0x56, 0xc5, 0x53, 0x3a, 0xd9, 0xcc, 0x37, 0xc7, 0xcd, 0x3a, 0xbe, 0xe7,
+ 0x5f, 0x68, 0xf7, 0xf1,
+ 0xd3, 0x81, 0x8c, 0x68, 0xa6, 0x0a, 0xaf, 0xa7, 0x19, 0x68, 0xb0, 0x82,
+ 0x58, 0xf7, 0x71, 0x1b,
+ 0x26, 0x66, 0x51, 0x7b, 0xa1, 0xa5, 0xd4, 0x50, 0xbe, 0x7b, 0x09, 0xb6,
+ 0xe5, 0x31, 0xc5, 0x9f,
+ 0xa3, 0x22, 0x8e, 0x29, 0xde, 0x63, 0x4c, 0x30, 0x6a, 0x29, 0x07, 0xd3,
+ 0xe2, 0xae, 0x43, 0x75,
+ 0xef, 0xee, 0x2c, 0xdf, 0x5f, 0xea, 0x27, 0x90, 0xd5, 0xdf, 0x15, 0x7c,
+ 0xeb, 0xcc, 0x0a, 0x88,
+ 0x6a, 0xaa, 0xf3, 0x8d, 0x20, 0x2c, 0xbf, 0xf0, 0x01, 0x8d, 0x1b, 0x19,
+ 0xec, 0x53, 0x8c, 0x62,
+ 0x77, 0xb5, 0xab, 0xf0, 0x9e, 0x3b, 0xf1, 0x13, 0x68, 0xf0, 0x31, 0xe1,
+ 0xf9, 0x08, 0x98, 0xb1,
+ 0xf2, 0xf1, 0x74, 0xa2, 0xe1, 0xfd, 0x69, 0x73, 0xbc, 0xa2, 0x3f, 0x84,
+ 0xfe, 0x97, 0x1e, 0x5b,
+ 0xbe, 0x3d, 0xd6, 0x54, 0x60, 0x74, 0x02, 0xd3, 0x03, 0x54, 0x2d, 0x2b,
+ 0xf7, 0xf5, 0x57, 0xa6,
+ 0x3b, 0x79, 0x09, 0x06, 0x1f, 0xb2, 0x9a, 0xb3, 0xd7, 0x06, 0x23, 0x4e,
+ 0xf0, 0x6a, 0xd1, 0x4c,
+ 0x84, 0x03, 0x66, 0xae, 0xdf, 0x5a, 0x9e, 0xd6, 0xd1, 0xae, 0x79, 0x18,
+ 0xdd, 0x43, 0x7f, 0xc3,
+ 0x01, 0x47, 0xb9, 0xfc, 0xa0, 0x9c, 0x06, 0xb6, 0x05, 0xfc, 0x77, 0x7d,
+ 0xda, 0xdc, 0xf9, 0x29,
+ 0x4d, 0x8b, 0x1b, 0x0a, 0x21, 0x15, 0x6d, 0x16, 0xba, 0x0a, 0x65, 0xd2,
+ 0xd3, 0xbe, 0xb0, 0xd4,
+ 0xc8, 0xcf, 0xc4, 0x58, 0x5e, 0xd3, 0xf5, 0x76, 0x6e, 0x58, 0x6b, 0xb7,
+ 0xd4, 0x21, 0x36, 0x3e,
+ 0xd5, 0xd0, 0x9c, 0x25, 0xe0, 0xc4, 0xbb, 0x95, 0x07, 0x25, 0x41, 0x4f,
+ 0xc1, 0x7a, 0x22, 0xed,
+ 0x50, 0x94, 0x43, 0x77, 0x9f, 0x02, 0x23, 0xf5, 0xd3, 0x77, 0x4f, 0x2a,
+ 0xc6, 0xe5, 0xa4, 0x07,
+ 0x1c, 0x58, 0xe1, 0x81, 0x1e, 0x8b, 0x48, 0x55, 0x6c, 0x81, 0x5d, 0x85,
+ 0xcf, 0x87, 0xed, 0xfa,
+ 0x99, 0x1c, 0x3e, 0xd3, 0x61, 0x4d, 0xd0, 0x35, 0xb8, 0xd3, 0x53, 0xe0,
+ 0xc8, 0x18, 0x6b, 0x10,
+ 0xa1, 0xac, 0x3f, 0x12, 0x5d, 0x98, 0x40, 0x9f, 0x60, 0x12, 0xe9, 0x29,
+ 0x95, 0xd5, 0x72, 0x27,
+ 0x24, 0xe8, 0xe0, 0x40, 0x22, 0x5e, 0xd8, 0xff, 0xb4, 0x40, 0xe7, 0x4c,
+ 0x92, 0x4a, 0xf4, 0xcd,
+ 0x68, 0x24, 0x42, 0xb6, 0xa3, 0xd7, 0xb3, 0x5f, 0x0b, 0xb6, 0xf5, 0xe3,
+ 0x9b, 0x28, 0xbd, 0x30,
+ 0xed, 0x60, 0x9d, 0xe4, 0xdc, 0x11, 0x2b, 0x3f, 0xdf, 0xe4, 0xfb, 0x86,
+ 0x9c, 0xb7, 0x3b, 0xda,
+ 0xf0, 0x7f, 0xc5, 0x99, 0x62, 0x06, 0x65, 0xdc, 0xb6, 0x99, 0xd1, 0x7e,
+ 0x89, 0xec, 0x2f, 0x09,
+ 0x75, 0x3b, 0x1a, 0xcb, 0x1d, 0xc0, 0xfd, 0xbc, 0x62, 0xcb, 0xdf, 0x1b,
+ 0x8e, 0x73, 0xa9, 0xe3,
+ 0x39, 0xf7, 0xb8, 0x3d, 0x9c, 0x49, 0x96, 0x1c, 0xdd, 0x3d, 0xcd, 0xb4,
+ 0x87, 0x11, 0xe0, 0x1e,
+ 0xbc, 0xb3, 0x67, 0x6f, 0xe3, 0x8f, 0x0e, 0x7c, 0x09, 0x6f, 0xc3, 0xd1,
+ 0x80, 0x8e, 0x66, 0xf4,
+ 0x03, 0xc9, 0x08, 0xc7, 0x23, 0x67, 0x0a, 0x19, 0x0f, 0xc7, 0x99, 0x87,
+ 0xad, 0xa7, 0xc8, 0x7b,
+ 0x86, 0x8d, 0xd7, 0x95, 0x5c, 0xa1, 0x92, 0x79, 0xdb, 0x95, 0x97, 0xe2,
+ 0xaa, 0x38, 0x4e, 0x91,
+ 0xca, 0x41, 0x75, 0x63, 0xdd, 0x28, 0xf9, 0xd9, 0x64, 0x63, 0x85, 0x4d,
+ 0xa3, 0x5a, 0x07, 0x6c,
+ 0x4f, 0x05, 0xaa, 0x31, 0xa2, 0xee, 0x61, 0xb9, 0xb0, 0x31, 0x8b, 0x28,
+ 0xa4, 0xc5, 0x81, 0x86,
+ 0x52, 0x1a, 0xf2, 0x4c, 0x1c, 0xf9, 0x2f, 0x5a, 0xd9, 0x4c, 0xa1, 0xd0,
+ 0xb1, 0x9e, 0x95, 0x55,
+ 0xd7, 0x5e, 0x2d, 0x1e, 0x63, 0x3f, 0xb7, 0x3a, 0x0d, 0x1e, 0xaf, 0xb5,
+ 0xb6, 0x01, 0x13, 0xbf,
+ 0x9b, 0x92, 0x8f, 0xe8, 0xe2, 0xb6, 0xdc, 0x9a, 0xb2, 0xe8, 0xbd, 0x1a,
+ 0xbf, 0x63, 0x5a, 0x42,
+ 0x1e, 0xd6, 0x50, 0xba, 0x9d, 0x70, 0x44, 0xfa, 0x66, 0xba, 0xb3, 0x7f,
+ 0xb8, 0xfc, 0xdc, 0xa8,
+ },
+ { /* 4 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x10, 0xd1, 0xd3, 0x91, 0x91, 0xfe, 0xf3, 0x01, 0xb1, 0x78, 0x58, 0x01,
+ 0x49, 0x6b, 0x2d, 0xa9,
+ 0x20, 0x61, 0x65, 0xe1, 0xe1, 0x3f, 0x25, 0x02, 0xa1, 0xf0, 0xb0, 0x02,
+ 0x92, 0xd6, 0x5a, 0x91,
+ 0x30, 0xb0, 0xb6, 0x70, 0x70, 0xc1, 0xd6, 0x03, 0x10, 0x88, 0xe8, 0x03,
+ 0xdb, 0xbd, 0x77, 0x38,
+ 0x40, 0xc2, 0xca, 0x01, 0x01, 0x7e, 0x4a, 0x04, 0x81, 0x23, 0xa3, 0x04,
+ 0xe7, 0x6f, 0xb4, 0xe1,
+ 0x50, 0x13, 0x19, 0x90, 0x90, 0x80, 0xb9, 0x05, 0x30, 0x5b, 0xfb, 0x05,
+ 0xae, 0x04, 0x99, 0x48,
+ 0x60, 0xa3, 0xaf, 0xe0, 0xe0, 0x41, 0x6f, 0x06, 0x20, 0xd3, 0x13, 0x06,
+ 0x75, 0xb9, 0xee, 0x70,
+ 0x70, 0x72, 0x7c, 0x71, 0x71, 0xbf, 0x9c, 0x07, 0x91, 0xab, 0x4b, 0x07,
+ 0x3c, 0xd2, 0xc3, 0xd9,
+ 0x80, 0x47, 0x57, 0x02, 0x02, 0xfc, 0x94, 0x08, 0xc1, 0x46, 0x85, 0x08,
+ 0x0d, 0xde, 0xab, 0x01,
+ 0x90, 0x96, 0x84, 0x93, 0x93, 0x02, 0x67, 0x09, 0x70, 0x3e, 0xdd, 0x09,
+ 0x44, 0xb5, 0x86, 0xa8,
+ 0xa0, 0x26, 0x32, 0xe3, 0xe3, 0xc3, 0xb1, 0x0a, 0x60, 0xb6, 0x35, 0x0a,
+ 0x9f, 0x08, 0xf1, 0x90,
+ 0xb0, 0xf7, 0xe1, 0x72, 0x72, 0x3d, 0x42, 0x0b, 0xd1, 0xce, 0x6d, 0x0b,
+ 0xd6, 0x63, 0xdc, 0x39,
+ 0xc0, 0x85, 0x9d, 0x03, 0x03, 0x82, 0xde, 0x0c, 0x40, 0x65, 0x26, 0x0c,
+ 0xea, 0xb1, 0x1f, 0xe0,
+ 0xd0, 0x54, 0x4e, 0x92, 0x92, 0x7c, 0x2d, 0x0d, 0xf1, 0x1d, 0x7e, 0x0d,
+ 0xa3, 0xda, 0x32, 0x49,
+ 0xe0, 0xe4, 0xf8, 0xe2, 0xe2, 0xbd, 0xfb, 0x0e, 0xe1, 0x95, 0x96, 0x0e,
+ 0x78, 0x67, 0x45, 0x71,
+ 0xf0, 0x35, 0x2b, 0x73, 0x73, 0x43, 0x08, 0x0f, 0x50, 0xed, 0xce, 0x0f,
+ 0x31, 0x0c, 0x68, 0xd8,
+ 0xc3, 0x8e, 0xae, 0x04, 0x04, 0x3b, 0xeb, 0x10, 0x41, 0x8c, 0xc9, 0x10,
+ 0x1a, 0x7f, 0x95, 0x02,
+ 0xd3, 0x5f, 0x7d, 0x95, 0x95, 0xc5, 0x18, 0x11, 0xf0, 0xf4, 0x91, 0x11,
+ 0x53, 0x14, 0xb8, 0xab,
+ 0xe3, 0xef, 0xcb, 0xe5, 0xe5, 0x04, 0xce, 0x12, 0xe0, 0x7c, 0x79, 0x12,
+ 0x88, 0xa9, 0xcf, 0x93,
+ 0xf3, 0x3e, 0x18, 0x74, 0x74, 0xfa, 0x3d, 0x13, 0x51, 0x04, 0x21, 0x13,
+ 0xc1, 0xc2, 0xe2, 0x3a,
+ 0x83, 0x4c, 0x64, 0x05, 0x05, 0x45, 0xa1, 0x14, 0xc0, 0xaf, 0x6a, 0x14,
+ 0xfd, 0x10, 0x21, 0xe3,
+ 0x93, 0x9d, 0xb7, 0x94, 0x94, 0xbb, 0x52, 0x15, 0x71, 0xd7, 0x32, 0x15,
+ 0xb4, 0x7b, 0x0c, 0x4a,
+ 0xa3, 0x2d, 0x01, 0xe4, 0xe4, 0x7a, 0x84, 0x16, 0x61, 0x5f, 0xda, 0x16,
+ 0x6f, 0xc6, 0x7b, 0x72,
+ 0xb3, 0xfc, 0xd2, 0x75, 0x75, 0x84, 0x77, 0x17, 0xd0, 0x27, 0x82, 0x17,
+ 0x26, 0xad, 0x56, 0xdb,
+ 0x43, 0xc9, 0xf9, 0x06, 0x06, 0xc7, 0x7f, 0x18, 0x80, 0xca, 0x4c, 0x18,
+ 0x17, 0xa1, 0x3e, 0x03,
+ 0x53, 0x18, 0x2a, 0x97, 0x97, 0x39, 0x8c, 0x19, 0x31, 0xb2, 0x14, 0x19,
+ 0x5e, 0xca, 0x13, 0xaa,
+ 0x63, 0xa8, 0x9c, 0xe7, 0xe7, 0xf8, 0x5a, 0x1a, 0x21, 0x3a, 0xfc, 0x1a,
+ 0x85, 0x77, 0x64, 0x92,
+ 0x73, 0x79, 0x4f, 0x76, 0x76, 0x06, 0xa9, 0x1b, 0x90, 0x42, 0xa4, 0x1b,
+ 0xcc, 0x1c, 0x49, 0x3b,
+ 0x03, 0x0b, 0x33, 0x07, 0x07, 0xb9, 0x35, 0x1c, 0x01, 0xe9, 0xef, 0x1c,
+ 0xf0, 0xce, 0x8a, 0xe2,
+ 0x13, 0xda, 0xe0, 0x96, 0x96, 0x47, 0xc6, 0x1d, 0xb0, 0x91, 0xb7, 0x1d,
+ 0xb9, 0xa5, 0xa7, 0x4b,
+ 0x23, 0x6a, 0x56, 0xe6, 0xe6, 0x86, 0x10, 0x1e, 0xa0, 0x19, 0x5f, 0x1e,
+ 0x62, 0x18, 0xd0, 0x73,
+ 0x33, 0xbb, 0x85, 0x77, 0x77, 0x78, 0xe3, 0x1f, 0x11, 0x61, 0x07, 0x1f,
+ 0x2b, 0x73, 0xfd, 0xda,
+ 0x45, 0xdf, 0x9f, 0x08, 0x08, 0x76, 0x15, 0x20, 0x82, 0xdb, 0x51, 0x20,
+ 0x34, 0xfe, 0xe9, 0x04,
+ 0x55, 0x0e, 0x4c, 0x99, 0x99, 0x88, 0xe6, 0x21, 0x33, 0xa3, 0x09, 0x21,
+ 0x7d, 0x95, 0xc4, 0xad,
+ 0x65, 0xbe, 0xfa, 0xe9, 0xe9, 0x49, 0x30, 0x22, 0x23, 0x2b, 0xe1, 0x22,
+ 0xa6, 0x28, 0xb3, 0x95,
+ 0x75, 0x6f, 0x29, 0x78, 0x78, 0xb7, 0xc3, 0x23, 0x92, 0x53, 0xb9, 0x23,
+ 0xef, 0x43, 0x9e, 0x3c,
+ 0x05, 0x1d, 0x55, 0x09, 0x09, 0x08, 0x5f, 0x24, 0x03, 0xf8, 0xf2, 0x24,
+ 0xd3, 0x91, 0x5d, 0xe5,
+ 0x15, 0xcc, 0x86, 0x98, 0x98, 0xf6, 0xac, 0x25, 0xb2, 0x80, 0xaa, 0x25,
+ 0x9a, 0xfa, 0x70, 0x4c,
+ 0x25, 0x7c, 0x30, 0xe8, 0xe8, 0x37, 0x7a, 0x26, 0xa2, 0x08, 0x42, 0x26,
+ 0x41, 0x47, 0x07, 0x74,
+ 0x35, 0xad, 0xe3, 0x79, 0x79, 0xc9, 0x89, 0x27, 0x13, 0x70, 0x1a, 0x27,
+ 0x08, 0x2c, 0x2a, 0xdd,
+ 0xc5, 0x98, 0xc8, 0x0a, 0x0a, 0x8a, 0x81, 0x28, 0x43, 0x9d, 0xd4, 0x28,
+ 0x39, 0x20, 0x42, 0x05,
+ 0xd5, 0x49, 0x1b, 0x9b, 0x9b, 0x74, 0x72, 0x29, 0xf2, 0xe5, 0x8c, 0x29,
+ 0x70, 0x4b, 0x6f, 0xac,
+ 0xe5, 0xf9, 0xad, 0xeb, 0xeb, 0xb5, 0xa4, 0x2a, 0xe2, 0x6d, 0x64, 0x2a,
+ 0xab, 0xf6, 0x18, 0x94,
+ 0xf5, 0x28, 0x7e, 0x7a, 0x7a, 0x4b, 0x57, 0x2b, 0x53, 0x15, 0x3c, 0x2b,
+ 0xe2, 0x9d, 0x35, 0x3d,
+ 0x85, 0x5a, 0x02, 0x0b, 0x0b, 0xf4, 0xcb, 0x2c, 0xc2, 0xbe, 0x77, 0x2c,
+ 0xde, 0x4f, 0xf6, 0xe4,
+ 0x95, 0x8b, 0xd1, 0x9a, 0x9a, 0x0a, 0x38, 0x2d, 0x73, 0xc6, 0x2f, 0x2d,
+ 0x97, 0x24, 0xdb, 0x4d,
+ 0xa5, 0x3b, 0x67, 0xea, 0xea, 0xcb, 0xee, 0x2e, 0x63, 0x4e, 0xc7, 0x2e,
+ 0x4c, 0x99, 0xac, 0x75,
+ 0xb5, 0xea, 0xb4, 0x7b, 0x7b, 0x35, 0x1d, 0x2f, 0xd2, 0x36, 0x9f, 0x2f,
+ 0x05, 0xf2, 0x81, 0xdc,
+ 0x86, 0x51, 0x31, 0x0c, 0x0c, 0x4d, 0xfe, 0x30, 0xc3, 0x57, 0x98, 0x30,
+ 0x2e, 0x81, 0x7c, 0x06,
+ 0x96, 0x80, 0xe2, 0x9d, 0x9d, 0xb3, 0x0d, 0x31, 0x72, 0x2f, 0xc0, 0x31,
+ 0x67, 0xea, 0x51, 0xaf,
+ 0xa6, 0x30, 0x54, 0xed, 0xed, 0x72, 0xdb, 0x32, 0x62, 0xa7, 0x28, 0x32,
+ 0xbc, 0x57, 0x26, 0x97,
+ 0xb6, 0xe1, 0x87, 0x7c, 0x7c, 0x8c, 0x28, 0x33, 0xd3, 0xdf, 0x70, 0x33,
+ 0xf5, 0x3c, 0x0b, 0x3e,
+ 0xc6, 0x93, 0xfb, 0x0d, 0x0d, 0x33, 0xb4, 0x34, 0x42, 0x74, 0x3b, 0x34,
+ 0xc9, 0xee, 0xc8, 0xe7,
+ 0xd6, 0x42, 0x28, 0x9c, 0x9c, 0xcd, 0x47, 0x35, 0xf3, 0x0c, 0x63, 0x35,
+ 0x80, 0x85, 0xe5, 0x4e,
+ 0xe6, 0xf2, 0x9e, 0xec, 0xec, 0x0c, 0x91, 0x36, 0xe3, 0x84, 0x8b, 0x36,
+ 0x5b, 0x38, 0x92, 0x76,
+ 0xf6, 0x23, 0x4d, 0x7d, 0x7d, 0xf2, 0x62, 0x37, 0x52, 0xfc, 0xd3, 0x37,
+ 0x12, 0x53, 0xbf, 0xdf,
+ 0x06, 0x16, 0x66, 0x0e, 0x0e, 0xb1, 0x6a, 0x38, 0x02, 0x11, 0x1d, 0x38,
+ 0x23, 0x5f, 0xd7, 0x07,
+ 0x16, 0xc7, 0xb5, 0x9f, 0x9f, 0x4f, 0x99, 0x39, 0xb3, 0x69, 0x45, 0x39,
+ 0x6a, 0x34, 0xfa, 0xae,
+ 0x26, 0x77, 0x03, 0xef, 0xef, 0x8e, 0x4f, 0x3a, 0xa3, 0xe1, 0xad, 0x3a,
+ 0xb1, 0x89, 0x8d, 0x96,
+ 0x36, 0xa6, 0xd0, 0x7e, 0x7e, 0x70, 0xbc, 0x3b, 0x12, 0x99, 0xf5, 0x3b,
+ 0xf8, 0xe2, 0xa0, 0x3f,
+ 0x46, 0xd4, 0xac, 0x0f, 0x0f, 0xcf, 0x20, 0x3c, 0x83, 0x32, 0xbe, 0x3c,
+ 0xc4, 0x30, 0x63, 0xe6,
+ 0x56, 0x05, 0x7f, 0x9e, 0x9e, 0x31, 0xd3, 0x3d, 0x32, 0x4a, 0xe6, 0x3d,
+ 0x8d, 0x5b, 0x4e, 0x4f,
+ 0x66, 0xb5, 0xc9, 0xee, 0xee, 0xf0, 0x05, 0x3e, 0x22, 0xc2, 0x0e, 0x3e,
+ 0x56, 0xe6, 0x39, 0x77,
+ 0x76, 0x64, 0x1a, 0x7f, 0x7f, 0x0e, 0xf6, 0x3f, 0x93, 0xba, 0x56, 0x3f,
+ 0x1f, 0x8d, 0x14, 0xde,
+ 0x8a, 0x7d, 0xfd, 0x10, 0x10, 0xec, 0x2a, 0x40, 0xc7, 0x75, 0xa2, 0x40,
+ 0x68, 0x3f, 0x11, 0x08,
+ 0x9a, 0xac, 0x2e, 0x81, 0x81, 0x12, 0xd9, 0x41, 0x76, 0x0d, 0xfa, 0x41,
+ 0x21, 0x54, 0x3c, 0xa1,
+ 0xaa, 0x1c, 0x98, 0xf1, 0xf1, 0xd3, 0x0f, 0x42, 0x66, 0x85, 0x12, 0x42,
+ 0xfa, 0xe9, 0x4b, 0x99,
+ 0xba, 0xcd, 0x4b, 0x60, 0x60, 0x2d, 0xfc, 0x43, 0xd7, 0xfd, 0x4a, 0x43,
+ 0xb3, 0x82, 0x66, 0x30,
+ 0xca, 0xbf, 0x37, 0x11, 0x11, 0x92, 0x60, 0x44, 0x46, 0x56, 0x01, 0x44,
+ 0x8f, 0x50, 0xa5, 0xe9,
+ 0xda, 0x6e, 0xe4, 0x80, 0x80, 0x6c, 0x93, 0x45, 0xf7, 0x2e, 0x59, 0x45,
+ 0xc6, 0x3b, 0x88, 0x40,
+ 0xea, 0xde, 0x52, 0xf0, 0xf0, 0xad, 0x45, 0x46, 0xe7, 0xa6, 0xb1, 0x46,
+ 0x1d, 0x86, 0xff, 0x78,
+ 0xfa, 0x0f, 0x81, 0x61, 0x61, 0x53, 0xb6, 0x47, 0x56, 0xde, 0xe9, 0x47,
+ 0x54, 0xed, 0xd2, 0xd1,
+ 0x0a, 0x3a, 0xaa, 0x12, 0x12, 0x10, 0xbe, 0x48, 0x06, 0x33, 0x27, 0x48,
+ 0x65, 0xe1, 0xba, 0x09,
+ 0x1a, 0xeb, 0x79, 0x83, 0x83, 0xee, 0x4d, 0x49, 0xb7, 0x4b, 0x7f, 0x49,
+ 0x2c, 0x8a, 0x97, 0xa0,
+ 0x2a, 0x5b, 0xcf, 0xf3, 0xf3, 0x2f, 0x9b, 0x4a, 0xa7, 0xc3, 0x97, 0x4a,
+ 0xf7, 0x37, 0xe0, 0x98,
+ 0x3a, 0x8a, 0x1c, 0x62, 0x62, 0xd1, 0x68, 0x4b, 0x16, 0xbb, 0xcf, 0x4b,
+ 0xbe, 0x5c, 0xcd, 0x31,
+ 0x4a, 0xf8, 0x60, 0x13, 0x13, 0x6e, 0xf4, 0x4c, 0x87, 0x10, 0x84, 0x4c,
+ 0x82, 0x8e, 0x0e, 0xe8,
+ 0x5a, 0x29, 0xb3, 0x82, 0x82, 0x90, 0x07, 0x4d, 0x36, 0x68, 0xdc, 0x4d,
+ 0xcb, 0xe5, 0x23, 0x41,
+ 0x6a, 0x99, 0x05, 0xf2, 0xf2, 0x51, 0xd1, 0x4e, 0x26, 0xe0, 0x34, 0x4e,
+ 0x10, 0x58, 0x54, 0x79,
+ 0x7a, 0x48, 0xd6, 0x63, 0x63, 0xaf, 0x22, 0x4f, 0x97, 0x98, 0x6c, 0x4f,
+ 0x59, 0x33, 0x79, 0xd0,
+ 0x49, 0xf3, 0x53, 0x14, 0x14, 0xd7, 0xc1, 0x50, 0x86, 0xf9, 0x6b, 0x50,
+ 0x72, 0x40, 0x84, 0x0a,
+ 0x59, 0x22, 0x80, 0x85, 0x85, 0x29, 0x32, 0x51, 0x37, 0x81, 0x33, 0x51,
+ 0x3b, 0x2b, 0xa9, 0xa3,
+ 0x69, 0x92, 0x36, 0xf5, 0xf5, 0xe8, 0xe4, 0x52, 0x27, 0x09, 0xdb, 0x52,
+ 0xe0, 0x96, 0xde, 0x9b,
+ 0x79, 0x43, 0xe5, 0x64, 0x64, 0x16, 0x17, 0x53, 0x96, 0x71, 0x83, 0x53,
+ 0xa9, 0xfd, 0xf3, 0x32,
+ 0x09, 0x31, 0x99, 0x15, 0x15, 0xa9, 0x8b, 0x54, 0x07, 0xda, 0xc8, 0x54,
+ 0x95, 0x2f, 0x30, 0xeb,
+ 0x19, 0xe0, 0x4a, 0x84, 0x84, 0x57, 0x78, 0x55, 0xb6, 0xa2, 0x90, 0x55,
+ 0xdc, 0x44, 0x1d, 0x42,
+ 0x29, 0x50, 0xfc, 0xf4, 0xf4, 0x96, 0xae, 0x56, 0xa6, 0x2a, 0x78, 0x56,
+ 0x07, 0xf9, 0x6a, 0x7a,
+ 0x39, 0x81, 0x2f, 0x65, 0x65, 0x68, 0x5d, 0x57, 0x17, 0x52, 0x20, 0x57,
+ 0x4e, 0x92, 0x47, 0xd3,
+ 0xc9, 0xb4, 0x04, 0x16, 0x16, 0x2b, 0x55, 0x58, 0x47, 0xbf, 0xee, 0x58,
+ 0x7f, 0x9e, 0x2f, 0x0b,
+ 0xd9, 0x65, 0xd7, 0x87, 0x87, 0xd5, 0xa6, 0x59, 0xf6, 0xc7, 0xb6, 0x59,
+ 0x36, 0xf5, 0x02, 0xa2,
+ 0xe9, 0xd5, 0x61, 0xf7, 0xf7, 0x14, 0x70, 0x5a, 0xe6, 0x4f, 0x5e, 0x5a,
+ 0xed, 0x48, 0x75, 0x9a,
+ 0xf9, 0x04, 0xb2, 0x66, 0x66, 0xea, 0x83, 0x5b, 0x57, 0x37, 0x06, 0x5b,
+ 0xa4, 0x23, 0x58, 0x33,
+ 0x89, 0x76, 0xce, 0x17, 0x17, 0x55, 0x1f, 0x5c, 0xc6, 0x9c, 0x4d, 0x5c,
+ 0x98, 0xf1, 0x9b, 0xea,
+ 0x99, 0xa7, 0x1d, 0x86, 0x86, 0xab, 0xec, 0x5d, 0x77, 0xe4, 0x15, 0x5d,
+ 0xd1, 0x9a, 0xb6, 0x43,
+ 0xa9, 0x17, 0xab, 0xf6, 0xf6, 0x6a, 0x3a, 0x5e, 0x67, 0x6c, 0xfd, 0x5e,
+ 0x0a, 0x27, 0xc1, 0x7b,
+ 0xb9, 0xc6, 0x78, 0x67, 0x67, 0x94, 0xc9, 0x5f, 0xd6, 0x14, 0xa5, 0x5f,
+ 0x43, 0x4c, 0xec, 0xd2,
+ 0xcf, 0xa2, 0x62, 0x18, 0x18, 0x9a, 0x3f, 0x60, 0x45, 0xae, 0xf3, 0x60,
+ 0x5c, 0xc1, 0xf8, 0x0c,
+ 0xdf, 0x73, 0xb1, 0x89, 0x89, 0x64, 0xcc, 0x61, 0xf4, 0xd6, 0xab, 0x61,
+ 0x15, 0xaa, 0xd5, 0xa5,
+ 0xef, 0xc3, 0x07, 0xf9, 0xf9, 0xa5, 0x1a, 0x62, 0xe4, 0x5e, 0x43, 0x62,
+ 0xce, 0x17, 0xa2, 0x9d,
+ 0xff, 0x12, 0xd4, 0x68, 0x68, 0x5b, 0xe9, 0x63, 0x55, 0x26, 0x1b, 0x63,
+ 0x87, 0x7c, 0x8f, 0x34,
+ 0x8f, 0x60, 0xa8, 0x19, 0x19, 0xe4, 0x75, 0x64, 0xc4, 0x8d, 0x50, 0x64,
+ 0xbb, 0xae, 0x4c, 0xed,
+ 0x9f, 0xb1, 0x7b, 0x88, 0x88, 0x1a, 0x86, 0x65, 0x75, 0xf5, 0x08, 0x65,
+ 0xf2, 0xc5, 0x61, 0x44,
+ 0xaf, 0x01, 0xcd, 0xf8, 0xf8, 0xdb, 0x50, 0x66, 0x65, 0x7d, 0xe0, 0x66,
+ 0x29, 0x78, 0x16, 0x7c,
+ 0xbf, 0xd0, 0x1e, 0x69, 0x69, 0x25, 0xa3, 0x67, 0xd4, 0x05, 0xb8, 0x67,
+ 0x60, 0x13, 0x3b, 0xd5,
+ 0x4f, 0xe5, 0x35, 0x1a, 0x1a, 0x66, 0xab, 0x68, 0x84, 0xe8, 0x76, 0x68,
+ 0x51, 0x1f, 0x53, 0x0d,
+ 0x5f, 0x34, 0xe6, 0x8b, 0x8b, 0x98, 0x58, 0x69, 0x35, 0x90, 0x2e, 0x69,
+ 0x18, 0x74, 0x7e, 0xa4,
+ 0x6f, 0x84, 0x50, 0xfb, 0xfb, 0x59, 0x8e, 0x6a, 0x25, 0x18, 0xc6, 0x6a,
+ 0xc3, 0xc9, 0x09, 0x9c,
+ 0x7f, 0x55, 0x83, 0x6a, 0x6a, 0xa7, 0x7d, 0x6b, 0x94, 0x60, 0x9e, 0x6b,
+ 0x8a, 0xa2, 0x24, 0x35,
+ 0x0f, 0x27, 0xff, 0x1b, 0x1b, 0x18, 0xe1, 0x6c, 0x05, 0xcb, 0xd5, 0x6c,
+ 0xb6, 0x70, 0xe7, 0xec,
+ 0x1f, 0xf6, 0x2c, 0x8a, 0x8a, 0xe6, 0x12, 0x6d, 0xb4, 0xb3, 0x8d, 0x6d,
+ 0xff, 0x1b, 0xca, 0x45,
+ 0x2f, 0x46, 0x9a, 0xfa, 0xfa, 0x27, 0xc4, 0x6e, 0xa4, 0x3b, 0x65, 0x6e,
+ 0x24, 0xa6, 0xbd, 0x7d,
+ 0x3f, 0x97, 0x49, 0x6b, 0x6b, 0xd9, 0x37, 0x6f, 0x15, 0x43, 0x3d, 0x6f,
+ 0x6d, 0xcd, 0x90, 0xd4,
+ 0x0c, 0x2c, 0xcc, 0x1c, 0x1c, 0xa1, 0xd4, 0x70, 0x04, 0x22, 0x3a, 0x70,
+ 0x46, 0xbe, 0x6d, 0x0e,
+ 0x1c, 0xfd, 0x1f, 0x8d, 0x8d, 0x5f, 0x27, 0x71, 0xb5, 0x5a, 0x62, 0x71,
+ 0x0f, 0xd5, 0x40, 0xa7,
+ 0x2c, 0x4d, 0xa9, 0xfd, 0xfd, 0x9e, 0xf1, 0x72, 0xa5, 0xd2, 0x8a, 0x72,
+ 0xd4, 0x68, 0x37, 0x9f,
+ 0x3c, 0x9c, 0x7a, 0x6c, 0x6c, 0x60, 0x02, 0x73, 0x14, 0xaa, 0xd2, 0x73,
+ 0x9d, 0x03, 0x1a, 0x36,
+ 0x4c, 0xee, 0x06, 0x1d, 0x1d, 0xdf, 0x9e, 0x74, 0x85, 0x01, 0x99, 0x74,
+ 0xa1, 0xd1, 0xd9, 0xef,
+ 0x5c, 0x3f, 0xd5, 0x8c, 0x8c, 0x21, 0x6d, 0x75, 0x34, 0x79, 0xc1, 0x75,
+ 0xe8, 0xba, 0xf4, 0x46,
+ 0x6c, 0x8f, 0x63, 0xfc, 0xfc, 0xe0, 0xbb, 0x76, 0x24, 0xf1, 0x29, 0x76,
+ 0x33, 0x07, 0x83, 0x7e,
+ 0x7c, 0x5e, 0xb0, 0x6d, 0x6d, 0x1e, 0x48, 0x77, 0x95, 0x89, 0x71, 0x77,
+ 0x7a, 0x6c, 0xae, 0xd7,
+ 0x8c, 0x6b, 0x9b, 0x1e, 0x1e, 0x5d, 0x40, 0x78, 0xc5, 0x64, 0xbf, 0x78,
+ 0x4b, 0x60, 0xc6, 0x0f,
+ 0x9c, 0xba, 0x48, 0x8f, 0x8f, 0xa3, 0xb3, 0x79, 0x74, 0x1c, 0xe7, 0x79,
+ 0x02, 0x0b, 0xeb, 0xa6,
+ 0xac, 0x0a, 0xfe, 0xff, 0xff, 0x62, 0x65, 0x7a, 0x64, 0x94, 0x0f, 0x7a,
+ 0xd9, 0xb6, 0x9c, 0x9e,
+ 0xbc, 0xdb, 0x2d, 0x6e, 0x6e, 0x9c, 0x96, 0x7b, 0xd5, 0xec, 0x57, 0x7b,
+ 0x90, 0xdd, 0xb1, 0x37,
+ 0xcc, 0xa9, 0x51, 0x1f, 0x1f, 0x23, 0x0a, 0x7c, 0x44, 0x47, 0x1c, 0x7c,
+ 0xac, 0x0f, 0x72, 0xee,
+ 0xdc, 0x78, 0x82, 0x8e, 0x8e, 0xdd, 0xf9, 0x7d, 0xf5, 0x3f, 0x44, 0x7d,
+ 0xe5, 0x64, 0x5f, 0x47,
+ 0xec, 0xc8, 0x34, 0xfe, 0xfe, 0x1c, 0x2f, 0x7e, 0xe5, 0xb7, 0xac, 0x7e,
+ 0x3e, 0xd9, 0x28, 0x7f,
+ 0xfc, 0x19, 0xe7, 0x6f, 0x6f, 0xe2, 0xdc, 0x7f, 0x54, 0xcf, 0xf4, 0x7f,
+ 0x77, 0xb2, 0x05, 0xd6,
+ 0xd7, 0xfa, 0x39, 0x20, 0x20, 0x1b, 0x54, 0x80, 0x4d, 0xea, 0x87, 0x80,
+ 0xd0, 0x7e, 0x22, 0x10,
+ 0xc7, 0x2b, 0xea, 0xb1, 0xb1, 0xe5, 0xa7, 0x81, 0xfc, 0x92, 0xdf, 0x81,
+ 0x99, 0x15, 0x0f, 0xb9,
+ 0xf7, 0x9b, 0x5c, 0xc1, 0xc1, 0x24, 0x71, 0x82, 0xec, 0x1a, 0x37, 0x82,
+ 0x42, 0xa8, 0x78, 0x81,
+ 0xe7, 0x4a, 0x8f, 0x50, 0x50, 0xda, 0x82, 0x83, 0x5d, 0x62, 0x6f, 0x83,
+ 0x0b, 0xc3, 0x55, 0x28,
+ 0x97, 0x38, 0xf3, 0x21, 0x21, 0x65, 0x1e, 0x84, 0xcc, 0xc9, 0x24, 0x84,
+ 0x37, 0x11, 0x96, 0xf1,
+ 0x87, 0xe9, 0x20, 0xb0, 0xb0, 0x9b, 0xed, 0x85, 0x7d, 0xb1, 0x7c, 0x85,
+ 0x7e, 0x7a, 0xbb, 0x58,
+ 0xb7, 0x59, 0x96, 0xc0, 0xc0, 0x5a, 0x3b, 0x86, 0x6d, 0x39, 0x94, 0x86,
+ 0xa5, 0xc7, 0xcc, 0x60,
+ 0xa7, 0x88, 0x45, 0x51, 0x51, 0xa4, 0xc8, 0x87, 0xdc, 0x41, 0xcc, 0x87,
+ 0xec, 0xac, 0xe1, 0xc9,
+ 0x57, 0xbd, 0x6e, 0x22, 0x22, 0xe7, 0xc0, 0x88, 0x8c, 0xac, 0x02, 0x88,
+ 0xdd, 0xa0, 0x89, 0x11,
+ 0x47, 0x6c, 0xbd, 0xb3, 0xb3, 0x19, 0x33, 0x89, 0x3d, 0xd4, 0x5a, 0x89,
+ 0x94, 0xcb, 0xa4, 0xb8,
+ 0x77, 0xdc, 0x0b, 0xc3, 0xc3, 0xd8, 0xe5, 0x8a, 0x2d, 0x5c, 0xb2, 0x8a,
+ 0x4f, 0x76, 0xd3, 0x80,
+ 0x67, 0x0d, 0xd8, 0x52, 0x52, 0x26, 0x16, 0x8b, 0x9c, 0x24, 0xea, 0x8b,
+ 0x06, 0x1d, 0xfe, 0x29,
+ 0x17, 0x7f, 0xa4, 0x23, 0x23, 0x99, 0x8a, 0x8c, 0x0d, 0x8f, 0xa1, 0x8c,
+ 0x3a, 0xcf, 0x3d, 0xf0,
+ 0x07, 0xae, 0x77, 0xb2, 0xb2, 0x67, 0x79, 0x8d, 0xbc, 0xf7, 0xf9, 0x8d,
+ 0x73, 0xa4, 0x10, 0x59,
+ 0x37, 0x1e, 0xc1, 0xc2, 0xc2, 0xa6, 0xaf, 0x8e, 0xac, 0x7f, 0x11, 0x8e,
+ 0xa8, 0x19, 0x67, 0x61,
+ 0x27, 0xcf, 0x12, 0x53, 0x53, 0x58, 0x5c, 0x8f, 0x1d, 0x07, 0x49, 0x8f,
+ 0xe1, 0x72, 0x4a, 0xc8,
+ 0x14, 0x74, 0x97, 0x24, 0x24, 0x20, 0xbf, 0x90, 0x0c, 0x66, 0x4e, 0x90,
+ 0xca, 0x01, 0xb7, 0x12,
+ 0x04, 0xa5, 0x44, 0xb5, 0xb5, 0xde, 0x4c, 0x91, 0xbd, 0x1e, 0x16, 0x91,
+ 0x83, 0x6a, 0x9a, 0xbb,
+ 0x34, 0x15, 0xf2, 0xc5, 0xc5, 0x1f, 0x9a, 0x92, 0xad, 0x96, 0xfe, 0x92,
+ 0x58, 0xd7, 0xed, 0x83,
+ 0x24, 0xc4, 0x21, 0x54, 0x54, 0xe1, 0x69, 0x93, 0x1c, 0xee, 0xa6, 0x93,
+ 0x11, 0xbc, 0xc0, 0x2a,
+ 0x54, 0xb6, 0x5d, 0x25, 0x25, 0x5e, 0xf5, 0x94, 0x8d, 0x45, 0xed, 0x94,
+ 0x2d, 0x6e, 0x03, 0xf3,
+ 0x44, 0x67, 0x8e, 0xb4, 0xb4, 0xa0, 0x06, 0x95, 0x3c, 0x3d, 0xb5, 0x95,
+ 0x64, 0x05, 0x2e, 0x5a,
+ 0x74, 0xd7, 0x38, 0xc4, 0xc4, 0x61, 0xd0, 0x96, 0x2c, 0xb5, 0x5d, 0x96,
+ 0xbf, 0xb8, 0x59, 0x62,
+ 0x64, 0x06, 0xeb, 0x55, 0x55, 0x9f, 0x23, 0x97, 0x9d, 0xcd, 0x05, 0x97,
+ 0xf6, 0xd3, 0x74, 0xcb,
+ 0x94, 0x33, 0xc0, 0x26, 0x26, 0xdc, 0x2b, 0x98, 0xcd, 0x20, 0xcb, 0x98,
+ 0xc7, 0xdf, 0x1c, 0x13,
+ 0x84, 0xe2, 0x13, 0xb7, 0xb7, 0x22, 0xd8, 0x99, 0x7c, 0x58, 0x93, 0x99,
+ 0x8e, 0xb4, 0x31, 0xba,
+ 0xb4, 0x52, 0xa5, 0xc7, 0xc7, 0xe3, 0x0e, 0x9a, 0x6c, 0xd0, 0x7b, 0x9a,
+ 0x55, 0x09, 0x46, 0x82,
+ 0xa4, 0x83, 0x76, 0x56, 0x56, 0x1d, 0xfd, 0x9b, 0xdd, 0xa8, 0x23, 0x9b,
+ 0x1c, 0x62, 0x6b, 0x2b,
+ 0xd4, 0xf1, 0x0a, 0x27, 0x27, 0xa2, 0x61, 0x9c, 0x4c, 0x03, 0x68, 0x9c,
+ 0x20, 0xb0, 0xa8, 0xf2,
+ 0xc4, 0x20, 0xd9, 0xb6, 0xb6, 0x5c, 0x92, 0x9d, 0xfd, 0x7b, 0x30, 0x9d,
+ 0x69, 0xdb, 0x85, 0x5b,
+ 0xf4, 0x90, 0x6f, 0xc6, 0xc6, 0x9d, 0x44, 0x9e, 0xed, 0xf3, 0xd8, 0x9e,
+ 0xb2, 0x66, 0xf2, 0x63,
+ 0xe4, 0x41, 0xbc, 0x57, 0x57, 0x63, 0xb7, 0x9f, 0x5c, 0x8b, 0x80, 0x9f,
+ 0xfb, 0x0d, 0xdf, 0xca,
+ 0x92, 0x25, 0xa6, 0x28, 0x28, 0x6d, 0x41, 0xa0, 0xcf, 0x31, 0xd6, 0xa0,
+ 0xe4, 0x80, 0xcb, 0x14,
+ 0x82, 0xf4, 0x75, 0xb9, 0xb9, 0x93, 0xb2, 0xa1, 0x7e, 0x49, 0x8e, 0xa1,
+ 0xad, 0xeb, 0xe6, 0xbd,
+ 0xb2, 0x44, 0xc3, 0xc9, 0xc9, 0x52, 0x64, 0xa2, 0x6e, 0xc1, 0x66, 0xa2,
+ 0x76, 0x56, 0x91, 0x85,
+ 0xa2, 0x95, 0x10, 0x58, 0x58, 0xac, 0x97, 0xa3, 0xdf, 0xb9, 0x3e, 0xa3,
+ 0x3f, 0x3d, 0xbc, 0x2c,
+ 0xd2, 0xe7, 0x6c, 0x29, 0x29, 0x13, 0x0b, 0xa4, 0x4e, 0x12, 0x75, 0xa4,
+ 0x03, 0xef, 0x7f, 0xf5,
+ 0xc2, 0x36, 0xbf, 0xb8, 0xb8, 0xed, 0xf8, 0xa5, 0xff, 0x6a, 0x2d, 0xa5,
+ 0x4a, 0x84, 0x52, 0x5c,
+ 0xf2, 0x86, 0x09, 0xc8, 0xc8, 0x2c, 0x2e, 0xa6, 0xef, 0xe2, 0xc5, 0xa6,
+ 0x91, 0x39, 0x25, 0x64,
+ 0xe2, 0x57, 0xda, 0x59, 0x59, 0xd2, 0xdd, 0xa7, 0x5e, 0x9a, 0x9d, 0xa7,
+ 0xd8, 0x52, 0x08, 0xcd,
+ 0x12, 0x62, 0xf1, 0x2a, 0x2a, 0x91, 0xd5, 0xa8, 0x0e, 0x77, 0x53, 0xa8,
+ 0xe9, 0x5e, 0x60, 0x15,
+ 0x02, 0xb3, 0x22, 0xbb, 0xbb, 0x6f, 0x26, 0xa9, 0xbf, 0x0f, 0x0b, 0xa9,
+ 0xa0, 0x35, 0x4d, 0xbc,
+ 0x32, 0x03, 0x94, 0xcb, 0xcb, 0xae, 0xf0, 0xaa, 0xaf, 0x87, 0xe3, 0xaa,
+ 0x7b, 0x88, 0x3a, 0x84,
+ 0x22, 0xd2, 0x47, 0x5a, 0x5a, 0x50, 0x03, 0xab, 0x1e, 0xff, 0xbb, 0xab,
+ 0x32, 0xe3, 0x17, 0x2d,
+ 0x52, 0xa0, 0x3b, 0x2b, 0x2b, 0xef, 0x9f, 0xac, 0x8f, 0x54, 0xf0, 0xac,
+ 0x0e, 0x31, 0xd4, 0xf4,
+ 0x42, 0x71, 0xe8, 0xba, 0xba, 0x11, 0x6c, 0xad, 0x3e, 0x2c, 0xa8, 0xad,
+ 0x47, 0x5a, 0xf9, 0x5d,
+ 0x72, 0xc1, 0x5e, 0xca, 0xca, 0xd0, 0xba, 0xae, 0x2e, 0xa4, 0x40, 0xae,
+ 0x9c, 0xe7, 0x8e, 0x65,
+ 0x62, 0x10, 0x8d, 0x5b, 0x5b, 0x2e, 0x49, 0xaf, 0x9f, 0xdc, 0x18, 0xaf,
+ 0xd5, 0x8c, 0xa3, 0xcc,
+ 0x51, 0xab, 0x08, 0x2c, 0x2c, 0x56, 0xaa, 0xb0, 0x8e, 0xbd, 0x1f, 0xb0,
+ 0xfe, 0xff, 0x5e, 0x16,
+ 0x41, 0x7a, 0xdb, 0xbd, 0xbd, 0xa8, 0x59, 0xb1, 0x3f, 0xc5, 0x47, 0xb1,
+ 0xb7, 0x94, 0x73, 0xbf,
+ 0x71, 0xca, 0x6d, 0xcd, 0xcd, 0x69, 0x8f, 0xb2, 0x2f, 0x4d, 0xaf, 0xb2,
+ 0x6c, 0x29, 0x04, 0x87,
+ 0x61, 0x1b, 0xbe, 0x5c, 0x5c, 0x97, 0x7c, 0xb3, 0x9e, 0x35, 0xf7, 0xb3,
+ 0x25, 0x42, 0x29, 0x2e,
+ 0x11, 0x69, 0xc2, 0x2d, 0x2d, 0x28, 0xe0, 0xb4, 0x0f, 0x9e, 0xbc, 0xb4,
+ 0x19, 0x90, 0xea, 0xf7,
+ 0x01, 0xb8, 0x11, 0xbc, 0xbc, 0xd6, 0x13, 0xb5, 0xbe, 0xe6, 0xe4, 0xb5,
+ 0x50, 0xfb, 0xc7, 0x5e,
+ 0x31, 0x08, 0xa7, 0xcc, 0xcc, 0x17, 0xc5, 0xb6, 0xae, 0x6e, 0x0c, 0xb6,
+ 0x8b, 0x46, 0xb0, 0x66,
+ 0x21, 0xd9, 0x74, 0x5d, 0x5d, 0xe9, 0x36, 0xb7, 0x1f, 0x16, 0x54, 0xb7,
+ 0xc2, 0x2d, 0x9d, 0xcf,
+ 0xd1, 0xec, 0x5f, 0x2e, 0x2e, 0xaa, 0x3e, 0xb8, 0x4f, 0xfb, 0x9a, 0xb8,
+ 0xf3, 0x21, 0xf5, 0x17,
+ 0xc1, 0x3d, 0x8c, 0xbf, 0xbf, 0x54, 0xcd, 0xb9, 0xfe, 0x83, 0xc2, 0xb9,
+ 0xba, 0x4a, 0xd8, 0xbe,
+ 0xf1, 0x8d, 0x3a, 0xcf, 0xcf, 0x95, 0x1b, 0xba, 0xee, 0x0b, 0x2a, 0xba,
+ 0x61, 0xf7, 0xaf, 0x86,
+ 0xe1, 0x5c, 0xe9, 0x5e, 0x5e, 0x6b, 0xe8, 0xbb, 0x5f, 0x73, 0x72, 0xbb,
+ 0x28, 0x9c, 0x82, 0x2f,
+ 0x91, 0x2e, 0x95, 0x2f, 0x2f, 0xd4, 0x74, 0xbc, 0xce, 0xd8, 0x39, 0xbc,
+ 0x14, 0x4e, 0x41, 0xf6,
+ 0x81, 0xff, 0x46, 0xbe, 0xbe, 0x2a, 0x87, 0xbd, 0x7f, 0xa0, 0x61, 0xbd,
+ 0x5d, 0x25, 0x6c, 0x5f,
+ 0xb1, 0x4f, 0xf0, 0xce, 0xce, 0xeb, 0x51, 0xbe, 0x6f, 0x28, 0x89, 0xbe,
+ 0x86, 0x98, 0x1b, 0x67,
+ 0xa1, 0x9e, 0x23, 0x5f, 0x5f, 0x15, 0xa2, 0xbf, 0xde, 0x50, 0xd1, 0xbf,
+ 0xcf, 0xf3, 0x36, 0xce,
+ 0x5d, 0x87, 0xc4, 0x30, 0x30, 0xf7, 0x7e, 0xc0, 0x8a, 0x9f, 0x25, 0xc0,
+ 0xb8, 0x41, 0x33, 0x18,
+ 0x4d, 0x56, 0x17, 0xa1, 0xa1, 0x09, 0x8d, 0xc1, 0x3b, 0xe7, 0x7d, 0xc1,
+ 0xf1, 0x2a, 0x1e, 0xb1,
+ 0x7d, 0xe6, 0xa1, 0xd1, 0xd1, 0xc8, 0x5b, 0xc2, 0x2b, 0x6f, 0x95, 0xc2,
+ 0x2a, 0x97, 0x69, 0x89,
+ 0x6d, 0x37, 0x72, 0x40, 0x40, 0x36, 0xa8, 0xc3, 0x9a, 0x17, 0xcd, 0xc3,
+ 0x63, 0xfc, 0x44, 0x20,
+ 0x1d, 0x45, 0x0e, 0x31, 0x31, 0x89, 0x34, 0xc4, 0x0b, 0xbc, 0x86, 0xc4,
+ 0x5f, 0x2e, 0x87, 0xf9,
+ 0x0d, 0x94, 0xdd, 0xa0, 0xa0, 0x77, 0xc7, 0xc5, 0xba, 0xc4, 0xde, 0xc5,
+ 0x16, 0x45, 0xaa, 0x50,
+ 0x3d, 0x24, 0x6b, 0xd0, 0xd0, 0xb6, 0x11, 0xc6, 0xaa, 0x4c, 0x36, 0xc6,
+ 0xcd, 0xf8, 0xdd, 0x68,
+ 0x2d, 0xf5, 0xb8, 0x41, 0x41, 0x48, 0xe2, 0xc7, 0x1b, 0x34, 0x6e, 0xc7,
+ 0x84, 0x93, 0xf0, 0xc1,
+ 0xdd, 0xc0, 0x93, 0x32, 0x32, 0x0b, 0xea, 0xc8, 0x4b, 0xd9, 0xa0, 0xc8,
+ 0xb5, 0x9f, 0x98, 0x19,
+ 0xcd, 0x11, 0x40, 0xa3, 0xa3, 0xf5, 0x19, 0xc9, 0xfa, 0xa1, 0xf8, 0xc9,
+ 0xfc, 0xf4, 0xb5, 0xb0,
+ 0xfd, 0xa1, 0xf6, 0xd3, 0xd3, 0x34, 0xcf, 0xca, 0xea, 0x29, 0x10, 0xca,
+ 0x27, 0x49, 0xc2, 0x88,
+ 0xed, 0x70, 0x25, 0x42, 0x42, 0xca, 0x3c, 0xcb, 0x5b, 0x51, 0x48, 0xcb,
+ 0x6e, 0x22, 0xef, 0x21,
+ 0x9d, 0x02, 0x59, 0x33, 0x33, 0x75, 0xa0, 0xcc, 0xca, 0xfa, 0x03, 0xcc,
+ 0x52, 0xf0, 0x2c, 0xf8,
+ 0x8d, 0xd3, 0x8a, 0xa2, 0xa2, 0x8b, 0x53, 0xcd, 0x7b, 0x82, 0x5b, 0xcd,
+ 0x1b, 0x9b, 0x01, 0x51,
+ 0xbd, 0x63, 0x3c, 0xd2, 0xd2, 0x4a, 0x85, 0xce, 0x6b, 0x0a, 0xb3, 0xce,
+ 0xc0, 0x26, 0x76, 0x69,
+ 0xad, 0xb2, 0xef, 0x43, 0x43, 0xb4, 0x76, 0xcf, 0xda, 0x72, 0xeb, 0xcf,
+ 0x89, 0x4d, 0x5b, 0xc0,
+ 0x9e, 0x09, 0x6a, 0x34, 0x34, 0xcc, 0x95, 0xd0, 0xcb, 0x13, 0xec, 0xd0,
+ 0xa2, 0x3e, 0xa6, 0x1a,
+ 0x8e, 0xd8, 0xb9, 0xa5, 0xa5, 0x32, 0x66, 0xd1, 0x7a, 0x6b, 0xb4, 0xd1,
+ 0xeb, 0x55, 0x8b, 0xb3,
+ 0xbe, 0x68, 0x0f, 0xd5, 0xd5, 0xf3, 0xb0, 0xd2, 0x6a, 0xe3, 0x5c, 0xd2,
+ 0x30, 0xe8, 0xfc, 0x8b,
+ 0xae, 0xb9, 0xdc, 0x44, 0x44, 0x0d, 0x43, 0xd3, 0xdb, 0x9b, 0x04, 0xd3,
+ 0x79, 0x83, 0xd1, 0x22,
+ 0xde, 0xcb, 0xa0, 0x35, 0x35, 0xb2, 0xdf, 0xd4, 0x4a, 0x30, 0x4f, 0xd4,
+ 0x45, 0x51, 0x12, 0xfb,
+ 0xce, 0x1a, 0x73, 0xa4, 0xa4, 0x4c, 0x2c, 0xd5, 0xfb, 0x48, 0x17, 0xd5,
+ 0x0c, 0x3a, 0x3f, 0x52,
+ 0xfe, 0xaa, 0xc5, 0xd4, 0xd4, 0x8d, 0xfa, 0xd6, 0xeb, 0xc0, 0xff, 0xd6,
+ 0xd7, 0x87, 0x48, 0x6a,
+ 0xee, 0x7b, 0x16, 0x45, 0x45, 0x73, 0x09, 0xd7, 0x5a, 0xb8, 0xa7, 0xd7,
+ 0x9e, 0xec, 0x65, 0xc3,
+ 0x1e, 0x4e, 0x3d, 0x36, 0x36, 0x30, 0x01, 0xd8, 0x0a, 0x55, 0x69, 0xd8,
+ 0xaf, 0xe0, 0x0d, 0x1b,
+ 0x0e, 0x9f, 0xee, 0xa7, 0xa7, 0xce, 0xf2, 0xd9, 0xbb, 0x2d, 0x31, 0xd9,
+ 0xe6, 0x8b, 0x20, 0xb2,
+ 0x3e, 0x2f, 0x58, 0xd7, 0xd7, 0x0f, 0x24, 0xda, 0xab, 0xa5, 0xd9, 0xda,
+ 0x3d, 0x36, 0x57, 0x8a,
+ 0x2e, 0xfe, 0x8b, 0x46, 0x46, 0xf1, 0xd7, 0xdb, 0x1a, 0xdd, 0x81, 0xdb,
+ 0x74, 0x5d, 0x7a, 0x23,
+ 0x5e, 0x8c, 0xf7, 0x37, 0x37, 0x4e, 0x4b, 0xdc, 0x8b, 0x76, 0xca, 0xdc,
+ 0x48, 0x8f, 0xb9, 0xfa,
+ 0x4e, 0x5d, 0x24, 0xa6, 0xa6, 0xb0, 0xb8, 0xdd, 0x3a, 0x0e, 0x92, 0xdd,
+ 0x01, 0xe4, 0x94, 0x53,
+ 0x7e, 0xed, 0x92, 0xd6, 0xd6, 0x71, 0x6e, 0xde, 0x2a, 0x86, 0x7a, 0xde,
+ 0xda, 0x59, 0xe3, 0x6b,
+ 0x6e, 0x3c, 0x41, 0x47, 0x47, 0x8f, 0x9d, 0xdf, 0x9b, 0xfe, 0x22, 0xdf,
+ 0x93, 0x32, 0xce, 0xc2,
+ 0x18, 0x58, 0x5b, 0x38, 0x38, 0x81, 0x6b, 0xe0, 0x08, 0x44, 0x74, 0xe0,
+ 0x8c, 0xbf, 0xda, 0x1c,
+ 0x08, 0x89, 0x88, 0xa9, 0xa9, 0x7f, 0x98, 0xe1, 0xb9, 0x3c, 0x2c, 0xe1,
+ 0xc5, 0xd4, 0xf7, 0xb5,
+ 0x38, 0x39, 0x3e, 0xd9, 0xd9, 0xbe, 0x4e, 0xe2, 0xa9, 0xb4, 0xc4, 0xe2,
+ 0x1e, 0x69, 0x80, 0x8d,
+ 0x28, 0xe8, 0xed, 0x48, 0x48, 0x40, 0xbd, 0xe3, 0x18, 0xcc, 0x9c, 0xe3,
+ 0x57, 0x02, 0xad, 0x24,
+ 0x58, 0x9a, 0x91, 0x39, 0x39, 0xff, 0x21, 0xe4, 0x89, 0x67, 0xd7, 0xe4,
+ 0x6b, 0xd0, 0x6e, 0xfd,
+ 0x48, 0x4b, 0x42, 0xa8, 0xa8, 0x01, 0xd2, 0xe5, 0x38, 0x1f, 0x8f, 0xe5,
+ 0x22, 0xbb, 0x43, 0x54,
+ 0x78, 0xfb, 0xf4, 0xd8, 0xd8, 0xc0, 0x04, 0xe6, 0x28, 0x97, 0x67, 0xe6,
+ 0xf9, 0x06, 0x34, 0x6c,
+ 0x68, 0x2a, 0x27, 0x49, 0x49, 0x3e, 0xf7, 0xe7, 0x99, 0xef, 0x3f, 0xe7,
+ 0xb0, 0x6d, 0x19, 0xc5,
+ 0x98, 0x1f, 0x0c, 0x3a, 0x3a, 0x7d, 0xff, 0xe8, 0xc9, 0x02, 0xf1, 0xe8,
+ 0x81, 0x61, 0x71, 0x1d,
+ 0x88, 0xce, 0xdf, 0xab, 0xab, 0x83, 0x0c, 0xe9, 0x78, 0x7a, 0xa9, 0xe9,
+ 0xc8, 0x0a, 0x5c, 0xb4,
+ 0xb8, 0x7e, 0x69, 0xdb, 0xdb, 0x42, 0xda, 0xea, 0x68, 0xf2, 0x41, 0xea,
+ 0x13, 0xb7, 0x2b, 0x8c,
+ 0xa8, 0xaf, 0xba, 0x4a, 0x4a, 0xbc, 0x29, 0xeb, 0xd9, 0x8a, 0x19, 0xeb,
+ 0x5a, 0xdc, 0x06, 0x25,
+ 0xd8, 0xdd, 0xc6, 0x3b, 0x3b, 0x03, 0xb5, 0xec, 0x48, 0x21, 0x52, 0xec,
+ 0x66, 0x0e, 0xc5, 0xfc,
+ 0xc8, 0x0c, 0x15, 0xaa, 0xaa, 0xfd, 0x46, 0xed, 0xf9, 0x59, 0x0a, 0xed,
+ 0x2f, 0x65, 0xe8, 0x55,
+ 0xf8, 0xbc, 0xa3, 0xda, 0xda, 0x3c, 0x90, 0xee, 0xe9, 0xd1, 0xe2, 0xee,
+ 0xf4, 0xd8, 0x9f, 0x6d,
+ 0xe8, 0x6d, 0x70, 0x4b, 0x4b, 0xc2, 0x63, 0xef, 0x58, 0xa9, 0xba, 0xef,
+ 0xbd, 0xb3, 0xb2, 0xc4,
+ 0xdb, 0xd6, 0xf5, 0x3c, 0x3c, 0xba, 0x80, 0xf0, 0x49, 0xc8, 0xbd, 0xf0,
+ 0x96, 0xc0, 0x4f, 0x1e,
+ 0xcb, 0x07, 0x26, 0xad, 0xad, 0x44, 0x73, 0xf1, 0xf8, 0xb0, 0xe5, 0xf1,
+ 0xdf, 0xab, 0x62, 0xb7,
+ 0xfb, 0xb7, 0x90, 0xdd, 0xdd, 0x85, 0xa5, 0xf2, 0xe8, 0x38, 0x0d, 0xf2,
+ 0x04, 0x16, 0x15, 0x8f,
+ 0xeb, 0x66, 0x43, 0x4c, 0x4c, 0x7b, 0x56, 0xf3, 0x59, 0x40, 0x55, 0xf3,
+ 0x4d, 0x7d, 0x38, 0x26,
+ 0x9b, 0x14, 0x3f, 0x3d, 0x3d, 0xc4, 0xca, 0xf4, 0xc8, 0xeb, 0x1e, 0xf4,
+ 0x71, 0xaf, 0xfb, 0xff,
+ 0x8b, 0xc5, 0xec, 0xac, 0xac, 0x3a, 0x39, 0xf5, 0x79, 0x93, 0x46, 0xf5,
+ 0x38, 0xc4, 0xd6, 0x56,
+ 0xbb, 0x75, 0x5a, 0xdc, 0xdc, 0xfb, 0xef, 0xf6, 0x69, 0x1b, 0xae, 0xf6,
+ 0xe3, 0x79, 0xa1, 0x6e,
+ 0xab, 0xa4, 0x89, 0x4d, 0x4d, 0x05, 0x1c, 0xf7, 0xd8, 0x63, 0xf6, 0xf7,
+ 0xaa, 0x12, 0x8c, 0xc7,
+ 0x5b, 0x91, 0xa2, 0x3e, 0x3e, 0x46, 0x14, 0xf8, 0x88, 0x8e, 0x38, 0xf8,
+ 0x9b, 0x1e, 0xe4, 0x1f,
+ 0x4b, 0x40, 0x71, 0xaf, 0xaf, 0xb8, 0xe7, 0xf9, 0x39, 0xf6, 0x60, 0xf9,
+ 0xd2, 0x75, 0xc9, 0xb6,
+ 0x7b, 0xf0, 0xc7, 0xdf, 0xdf, 0x79, 0x31, 0xfa, 0x29, 0x7e, 0x88, 0xfa,
+ 0x09, 0xc8, 0xbe, 0x8e,
+ 0x6b, 0x21, 0x14, 0x4e, 0x4e, 0x87, 0xc2, 0xfb, 0x98, 0x06, 0xd0, 0xfb,
+ 0x40, 0xa3, 0x93, 0x27,
+ 0x1b, 0x53, 0x68, 0x3f, 0x3f, 0x38, 0x5e, 0xfc, 0x09, 0xad, 0x9b, 0xfc,
+ 0x7c, 0x71, 0x50, 0xfe,
+ 0x0b, 0x82, 0xbb, 0xae, 0xae, 0xc6, 0xad, 0xfd, 0xb8, 0xd5, 0xc3, 0xfd,
+ 0x35, 0x1a, 0x7d, 0x57,
+ 0x3b, 0x32, 0x0d, 0xde, 0xde, 0x07, 0x7b, 0xfe, 0xa8, 0x5d, 0x2b, 0xfe,
+ 0xee, 0xa7, 0x0a, 0x6f,
+ 0x2b, 0xe3, 0xde, 0x4f, 0x4f, 0xf9, 0x88, 0xff, 0x19, 0x25, 0x73, 0xff,
+ 0xa7, 0xcc, 0x27, 0xc6,
+ },
+ { /* 5 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xc2, 0x8d, 0x31, 0x64, 0xec, 0xeb, 0x0f, 0x2a, 0x37, 0x99, 0x90, 0xc4,
+ 0xf6, 0x30, 0xb8, 0xf6,
+ 0x47, 0xd9, 0x62, 0xc8, 0x1b, 0x15, 0x1e, 0x54, 0x6e, 0xf1, 0xe3, 0x4b,
+ 0x2f, 0x60, 0xb3, 0x2f,
+ 0x85, 0x54, 0x53, 0xac, 0xf7, 0xfe, 0x11, 0x7e, 0x59, 0x68, 0x73, 0x8f,
+ 0xd9, 0x50, 0x0b, 0xd9,
+ 0x8e, 0x71, 0xc4, 0x53, 0x36, 0x2a, 0x3c, 0xa8, 0xdc, 0x21, 0x05, 0x96,
+ 0x5e, 0xc0, 0xa5, 0x5e,
+ 0x4c, 0xfc, 0xf5, 0x37, 0xda, 0xc1, 0x33, 0x82, 0xeb, 0xb8, 0x95, 0x52,
+ 0xa8, 0xf0, 0x1d, 0xa8,
+ 0xc9, 0xa8, 0xa6, 0x9b, 0x2d, 0x3f, 0x22, 0xfc, 0xb2, 0xd0, 0xe6, 0xdd,
+ 0x71, 0xa0, 0x16, 0x71,
+ 0x0b, 0x25, 0x97, 0xff, 0xc1, 0xd4, 0x2d, 0xd6, 0x85, 0x49, 0x76, 0x19,
+ 0x87, 0x90, 0xae, 0x87,
+ 0xdf, 0xe2, 0x4b, 0xa6, 0x6c, 0x54, 0x78, 0x93, 0x7b, 0x42, 0x0a, 0xef,
+ 0xbc, 0x43, 0x89, 0xbc,
+ 0x1d, 0x6f, 0x7a, 0xc2, 0x80, 0xbf, 0x77, 0xb9, 0x4c, 0xdb, 0x9a, 0x2b,
+ 0x4a, 0x73, 0x31, 0x4a,
+ 0x98, 0x3b, 0x29, 0x6e, 0x77, 0x41, 0x66, 0xc7, 0x15, 0xb3, 0xe9, 0xa4,
+ 0x93, 0x23, 0x3a, 0x93,
+ 0x5a, 0xb6, 0x18, 0x0a, 0x9b, 0xaa, 0x69, 0xed, 0x22, 0x2a, 0x79, 0x60,
+ 0x65, 0x13, 0x82, 0x65,
+ 0x51, 0x93, 0x8f, 0xf5, 0x5a, 0x7e, 0x44, 0x3b, 0xa7, 0x63, 0x0f, 0x79,
+ 0xe2, 0x83, 0x2c, 0xe2,
+ 0x93, 0x1e, 0xbe, 0x91, 0xb6, 0x95, 0x4b, 0x11, 0x90, 0xfa, 0x9f, 0xbd,
+ 0x14, 0xb3, 0x94, 0x14,
+ 0x16, 0x4a, 0xed, 0x3d, 0x41, 0x6b, 0x5a, 0x6f, 0xc9, 0x92, 0xec, 0x32,
+ 0xcd, 0xe3, 0x9f, 0xcd,
+ 0xd4, 0xc7, 0xdc, 0x59, 0xad, 0x80, 0x55, 0x45, 0xfe, 0x0b, 0x7c, 0xf6,
+ 0x3b, 0xd3, 0x27, 0x3b,
+ 0x7d, 0x07, 0x96, 0x8f, 0xd8, 0xa8, 0xf0, 0xe5, 0xf6, 0x84, 0x14, 0x1d,
+ 0xbb, 0x86, 0xd1, 0xbb,
+ 0xbf, 0x8a, 0xa7, 0xeb, 0x34, 0x43, 0xff, 0xcf, 0xc1, 0x1d, 0x84, 0xd9,
+ 0x4d, 0xb6, 0x69, 0x4d,
+ 0x3a, 0xde, 0xf4, 0x47, 0xc3, 0xbd, 0xee, 0xb1, 0x98, 0x75, 0xf7, 0x56,
+ 0x94, 0xe6, 0x62, 0x94,
+ 0xf8, 0x53, 0xc5, 0x23, 0x2f, 0x56, 0xe1, 0x9b, 0xaf, 0xec, 0x67, 0x92,
+ 0x62, 0xd6, 0xda, 0x62,
+ 0xf3, 0x76, 0x52, 0xdc, 0xee, 0x82, 0xcc, 0x4d, 0x2a, 0xa5, 0x11, 0x8b,
+ 0xe5, 0x46, 0x74, 0xe5,
+ 0x31, 0xfb, 0x63, 0xb8, 0x02, 0x69, 0xc3, 0x67, 0x1d, 0x3c, 0x81, 0x4f,
+ 0x13, 0x76, 0xcc, 0x13,
+ 0xb4, 0xaf, 0x30, 0x14, 0xf5, 0x97, 0xd2, 0x19, 0x44, 0x54, 0xf2, 0xc0,
+ 0xca, 0x26, 0xc7, 0xca,
+ 0x76, 0x22, 0x01, 0x70, 0x19, 0x7c, 0xdd, 0x33, 0x73, 0xcd, 0x62, 0x04,
+ 0x3c, 0x16, 0x7f, 0x3c,
+ 0xa2, 0xe5, 0xdd, 0x29, 0xb4, 0xfc, 0x88, 0x76, 0x8d, 0xc6, 0x1e, 0xf2,
+ 0x07, 0xc5, 0x58, 0x07,
+ 0x60, 0x68, 0xec, 0x4d, 0x58, 0x17, 0x87, 0x5c, 0xba, 0x5f, 0x8e, 0x36,
+ 0xf1, 0xf5, 0xe0, 0xf1,
+ 0xe5, 0x3c, 0xbf, 0xe1, 0xaf, 0xe9, 0x96, 0x22, 0xe3, 0x37, 0xfd, 0xb9,
+ 0x28, 0xa5, 0xeb, 0x28,
+ 0x27, 0xb1, 0x8e, 0x85, 0x43, 0x02, 0x99, 0x08, 0xd4, 0xae, 0x6d, 0x7d,
+ 0xde, 0x95, 0x53, 0xde,
+ 0x2c, 0x94, 0x19, 0x7a, 0x82, 0xd6, 0xb4, 0xde, 0x51, 0xe7, 0x1b, 0x64,
+ 0x59, 0x05, 0xfd, 0x59,
+ 0xee, 0x19, 0x28, 0x1e, 0x6e, 0x3d, 0xbb, 0xf4, 0x66, 0x7e, 0x8b, 0xa0,
+ 0xaf, 0x35, 0x45, 0xaf,
+ 0x6b, 0x4d, 0x7b, 0xb2, 0x99, 0xc3, 0xaa, 0x8a, 0x3f, 0x16, 0xf8, 0x2f,
+ 0x76, 0x65, 0x4e, 0x76,
+ 0xa9, 0xc0, 0x4a, 0xd6, 0x75, 0x28, 0xa5, 0xa0, 0x08, 0x8f, 0x68, 0xeb,
+ 0x80, 0x55, 0xf6, 0x80,
+ 0xfa, 0x0e, 0xef, 0xdd, 0x73, 0x93, 0x23, 0x09, 0x2f, 0xcb, 0x28, 0x3a,
+ 0xb5, 0xcf, 0x61, 0xb5,
+ 0x38, 0x83, 0xde, 0xb9, 0x9f, 0x78, 0x2c, 0x23, 0x18, 0x52, 0xb8, 0xfe,
+ 0x43, 0xff, 0xd9, 0x43,
+ 0xbd, 0xd7, 0x8d, 0x15, 0x68, 0x86, 0x3d, 0x5d, 0x41, 0x3a, 0xcb, 0x71,
+ 0x9a, 0xaf, 0xd2, 0x9a,
+ 0x7f, 0x5a, 0xbc, 0x71, 0x84, 0x6d, 0x32, 0x77, 0x76, 0xa3, 0x5b, 0xb5,
+ 0x6c, 0x9f, 0x6a, 0x6c,
+ 0x74, 0x7f, 0x2b, 0x8e, 0x45, 0xb9, 0x1f, 0xa1, 0xf3, 0xea, 0x2d, 0xac,
+ 0xeb, 0x0f, 0xc4, 0xeb,
+ 0xb6, 0xf2, 0x1a, 0xea, 0xa9, 0x52, 0x10, 0x8b, 0xc4, 0x73, 0xbd, 0x68,
+ 0x1d, 0x3f, 0x7c, 0x1d,
+ 0x33, 0xa6, 0x49, 0x46, 0x5e, 0xac, 0x01, 0xf5, 0x9d, 0x1b, 0xce, 0xe7,
+ 0xc4, 0x6f, 0x77, 0xc4,
+ 0xf1, 0x2b, 0x78, 0x22, 0xb2, 0x47, 0x0e, 0xdf, 0xaa, 0x82, 0x5e, 0x23,
+ 0x32, 0x5f, 0xcf, 0x32,
+ 0x25, 0xec, 0xa4, 0x7b, 0x1f, 0xc7, 0x5b, 0x9a, 0x54, 0x89, 0x22, 0xd5,
+ 0x09, 0x8c, 0xe8, 0x09,
+ 0xe7, 0x61, 0x95, 0x1f, 0xf3, 0x2c, 0x54, 0xb0, 0x63, 0x10, 0xb2, 0x11,
+ 0xff, 0xbc, 0x50, 0xff,
+ 0x62, 0x35, 0xc6, 0xb3, 0x04, 0xd2, 0x45, 0xce, 0x3a, 0x78, 0xc1, 0x9e,
+ 0x26, 0xec, 0x5b, 0x26,
+ 0xa0, 0xb8, 0xf7, 0xd7, 0xe8, 0x39, 0x4a, 0xe4, 0x0d, 0xe1, 0x51, 0x5a,
+ 0xd0, 0xdc, 0xe3, 0xd0,
+ 0xab, 0x9d, 0x60, 0x28, 0x29, 0xed, 0x67, 0x32, 0x88, 0xa8, 0x27, 0x43,
+ 0x57, 0x4c, 0x4d, 0x57,
+ 0x69, 0x10, 0x51, 0x4c, 0xc5, 0x06, 0x68, 0x18, 0xbf, 0x31, 0xb7, 0x87,
+ 0xa1, 0x7c, 0xf5, 0xa1,
+ 0xec, 0x44, 0x02, 0xe0, 0x32, 0xf8, 0x79, 0x66, 0xe6, 0x59, 0xc4, 0x08,
+ 0x78, 0x2c, 0xfe, 0x78,
+ 0x2e, 0xc9, 0x33, 0x84, 0xde, 0x13, 0x76, 0x4c, 0xd1, 0xc0, 0x54, 0xcc,
+ 0x8e, 0x1c, 0x46, 0x8e,
+ 0x87, 0x09, 0x79, 0x52, 0xab, 0x3b, 0xd3, 0xec, 0xd9, 0x4f, 0x3c, 0x27,
+ 0x0e, 0x49, 0xb0, 0x0e,
+ 0x45, 0x84, 0x48, 0x36, 0x47, 0xd0, 0xdc, 0xc6, 0xee, 0xd6, 0xac, 0xe3,
+ 0xf8, 0x79, 0x08, 0xf8,
+ 0xc0, 0xd0, 0x1b, 0x9a, 0xb0, 0x2e, 0xcd, 0xb8, 0xb7, 0xbe, 0xdf, 0x6c,
+ 0x21, 0x29, 0x03, 0x21,
+ 0x02, 0x5d, 0x2a, 0xfe, 0x5c, 0xc5, 0xc2, 0x92, 0x80, 0x27, 0x4f, 0xa8,
+ 0xd7, 0x19, 0xbb, 0xd7,
+ 0x09, 0x78, 0xbd, 0x01, 0x9d, 0x11, 0xef, 0x44, 0x05, 0x6e, 0x39, 0xb1,
+ 0x50, 0x89, 0x15, 0x50,
+ 0xcb, 0xf5, 0x8c, 0x65, 0x71, 0xfa, 0xe0, 0x6e, 0x32, 0xf7, 0xa9, 0x75,
+ 0xa6, 0xb9, 0xad, 0xa6,
+ 0x4e, 0xa1, 0xdf, 0xc9, 0x86, 0x04, 0xf1, 0x10, 0x6b, 0x9f, 0xda, 0xfa,
+ 0x7f, 0xe9, 0xa6, 0x7f,
+ 0x8c, 0x2c, 0xee, 0xad, 0x6a, 0xef, 0xfe, 0x3a, 0x5c, 0x06, 0x4a, 0x3e,
+ 0x89, 0xd9, 0x1e, 0x89,
+ 0x58, 0xeb, 0x32, 0xf4, 0xc7, 0x6f, 0xab, 0x7f, 0xa2, 0x0d, 0x36, 0xc8,
+ 0xb2, 0x0a, 0x39, 0xb2,
+ 0x9a, 0x66, 0x03, 0x90, 0x2b, 0x84, 0xa4, 0x55, 0x95, 0x94, 0xa6, 0x0c,
+ 0x44, 0x3a, 0x81, 0x44,
+ 0x1f, 0x32, 0x50, 0x3c, 0xdc, 0x7a, 0xb5, 0x2b, 0xcc, 0xfc, 0xd5, 0x83,
+ 0x9d, 0x6a, 0x8a, 0x9d,
+ 0xdd, 0xbf, 0x61, 0x58, 0x30, 0x91, 0xba, 0x01, 0xfb, 0x65, 0x45, 0x47,
+ 0x6b, 0x5a, 0x32, 0x6b,
+ 0xd6, 0x9a, 0xf6, 0xa7, 0xf1, 0x45, 0x97, 0xd7, 0x7e, 0x2c, 0x33, 0x5e,
+ 0xec, 0xca, 0x9c, 0xec,
+ 0x14, 0x17, 0xc7, 0xc3, 0x1d, 0xae, 0x98, 0xfd, 0x49, 0xb5, 0xa3, 0x9a,
+ 0x1a, 0xfa, 0x24, 0x1a,
+ 0x91, 0x43, 0x94, 0x6f, 0xea, 0x50, 0x89, 0x83, 0x10, 0xdd, 0xd0, 0x15,
+ 0xc3, 0xaa, 0x2f, 0xc3,
+ 0x53, 0xce, 0xa5, 0x0b, 0x06, 0xbb, 0x86, 0xa9, 0x27, 0x44, 0x40, 0xd1,
+ 0x35, 0x9a, 0x97, 0x35,
+ 0x37, 0x1c, 0x1d, 0x79, 0xe6, 0xe5, 0x46, 0x12, 0x5e, 0x55, 0x50, 0x74,
+ 0xa9, 0x5d, 0xc2, 0xa9,
+ 0xf5, 0x91, 0x2c, 0x1d, 0x0a, 0x0e, 0x49, 0x38, 0x69, 0xcc, 0xc0, 0xb0,
+ 0x5f, 0x6d, 0x7a, 0x5f,
+ 0x70, 0xc5, 0x7f, 0xb1, 0xfd, 0xf0, 0x58, 0x46, 0x30, 0xa4, 0xb3, 0x3f,
+ 0x86, 0x3d, 0x71, 0x86,
+ 0xb2, 0x48, 0x4e, 0xd5, 0x11, 0x1b, 0x57, 0x6c, 0x07, 0x3d, 0x23, 0xfb,
+ 0x70, 0x0d, 0xc9, 0x70,
+ 0xb9, 0x6d, 0xd9, 0x2a, 0xd0, 0xcf, 0x7a, 0xba, 0x82, 0x74, 0x55, 0xe2,
+ 0xf7, 0x9d, 0x67, 0xf7,
+ 0x7b, 0xe0, 0xe8, 0x4e, 0x3c, 0x24, 0x75, 0x90, 0xb5, 0xed, 0xc5, 0x26,
+ 0x01, 0xad, 0xdf, 0x01,
+ 0xfe, 0xb4, 0xbb, 0xe2, 0xcb, 0xda, 0x64, 0xee, 0xec, 0x85, 0xb6, 0xa9,
+ 0xd8, 0xfd, 0xd4, 0xd8,
+ 0x3c, 0x39, 0x8a, 0x86, 0x27, 0x31, 0x6b, 0xc4, 0xdb, 0x1c, 0x26, 0x6d,
+ 0x2e, 0xcd, 0x6c, 0x2e,
+ 0xe8, 0xfe, 0x56, 0xdf, 0x8a, 0xb1, 0x3e, 0x81, 0x25, 0x17, 0x5a, 0x9b,
+ 0x15, 0x1e, 0x4b, 0x15,
+ 0x2a, 0x73, 0x67, 0xbb, 0x66, 0x5a, 0x31, 0xab, 0x12, 0x8e, 0xca, 0x5f,
+ 0xe3, 0x2e, 0xf3, 0xe3,
+ 0xaf, 0x27, 0x34, 0x17, 0x91, 0xa4, 0x20, 0xd5, 0x4b, 0xe6, 0xb9, 0xd0,
+ 0x3a, 0x7e, 0xf8, 0x3a,
+ 0x6d, 0xaa, 0x05, 0x73, 0x7d, 0x4f, 0x2f, 0xff, 0x7c, 0x7f, 0x29, 0x14,
+ 0xcc, 0x4e, 0x40, 0xcc,
+ 0x66, 0x8f, 0x92, 0x8c, 0xbc, 0x9b, 0x02, 0x29, 0xf9, 0x36, 0x5f, 0x0d,
+ 0x4b, 0xde, 0xee, 0x4b,
+ 0xa4, 0x02, 0xa3, 0xe8, 0x50, 0x70, 0x0d, 0x03, 0xce, 0xaf, 0xcf, 0xc9,
+ 0xbd, 0xee, 0x56, 0xbd,
+ 0x21, 0x56, 0xf0, 0x44, 0xa7, 0x8e, 0x1c, 0x7d, 0x97, 0xc7, 0xbc, 0x46,
+ 0x64, 0xbe, 0x5d, 0x64,
+ 0xe3, 0xdb, 0xc1, 0x20, 0x4b, 0x65, 0x13, 0x57, 0xa0, 0x5e, 0x2c, 0x82,
+ 0x92, 0x8e, 0xe5, 0x92,
+ 0x4a, 0x1b, 0x8b, 0xf6, 0x3e, 0x4d, 0xb6, 0xf7, 0xa8, 0xd1, 0x44, 0x69,
+ 0x12, 0xdb, 0x13, 0x12,
+ 0x88, 0x96, 0xba, 0x92, 0xd2, 0xa6, 0xb9, 0xdd, 0x9f, 0x48, 0xd4, 0xad,
+ 0xe4, 0xeb, 0xab, 0xe4,
+ 0x0d, 0xc2, 0xe9, 0x3e, 0x25, 0x58, 0xa8, 0xa3, 0xc6, 0x20, 0xa7, 0x22,
+ 0x3d, 0xbb, 0xa0, 0x3d,
+ 0xcf, 0x4f, 0xd8, 0x5a, 0xc9, 0xb3, 0xa7, 0x89, 0xf1, 0xb9, 0x37, 0xe6,
+ 0xcb, 0x8b, 0x18, 0xcb,
+ 0xc4, 0x6a, 0x4f, 0xa5, 0x08, 0x67, 0x8a, 0x5f, 0x74, 0xf0, 0x41, 0xff,
+ 0x4c, 0x1b, 0xb6, 0x4c,
+ 0x06, 0xe7, 0x7e, 0xc1, 0xe4, 0x8c, 0x85, 0x75, 0x43, 0x69, 0xd1, 0x3b,
+ 0xba, 0x2b, 0x0e, 0xba,
+ 0x83, 0xb3, 0x2d, 0x6d, 0x13, 0x72, 0x94, 0x0b, 0x1a, 0x01, 0xa2, 0xb4,
+ 0x63, 0x7b, 0x05, 0x63,
+ 0x41, 0x3e, 0x1c, 0x09, 0xff, 0x99, 0x9b, 0x21, 0x2d, 0x98, 0x32, 0x70,
+ 0x95, 0x4b, 0xbd, 0x95,
+ 0x95, 0xf9, 0xc0, 0x50, 0x52, 0x19, 0xce, 0x64, 0xd3, 0x93, 0x4e, 0x86,
+ 0xae, 0x98, 0x9a, 0xae,
+ 0x57, 0x74, 0xf1, 0x34, 0xbe, 0xf2, 0xc1, 0x4e, 0xe4, 0x0a, 0xde, 0x42,
+ 0x58, 0xa8, 0x22, 0x58,
+ 0xd2, 0x20, 0xa2, 0x98, 0x49, 0x0c, 0xd0, 0x30, 0xbd, 0x62, 0xad, 0xcd,
+ 0x81, 0xf8, 0x29, 0x81,
+ 0x10, 0xad, 0x93, 0xfc, 0xa5, 0xe7, 0xdf, 0x1a, 0x8a, 0xfb, 0x3d, 0x09,
+ 0x77, 0xc8, 0x91, 0x77,
+ 0x1b, 0x88, 0x04, 0x03, 0x64, 0x33, 0xf2, 0xcc, 0x0f, 0xb2, 0x4b, 0x10,
+ 0xf0, 0x58, 0x3f, 0xf0,
+ 0xd9, 0x05, 0x35, 0x67, 0x88, 0xd8, 0xfd, 0xe6, 0x38, 0x2b, 0xdb, 0xd4,
+ 0x06, 0x68, 0x87, 0x06,
+ 0x5c, 0x51, 0x66, 0xcb, 0x7f, 0x26, 0xec, 0x98, 0x61, 0x43, 0xa8, 0x5b,
+ 0xdf, 0x38, 0x8c, 0xdf,
+ 0x9e, 0xdc, 0x57, 0xaf, 0x93, 0xcd, 0xe3, 0xb2, 0x56, 0xda, 0x38, 0x9f,
+ 0x29, 0x08, 0x34, 0x29,
+ 0xcd, 0x12, 0xf2, 0xa4, 0x95, 0x76, 0x65, 0x1b, 0x71, 0x9e, 0x78, 0x4e,
+ 0x1c, 0x92, 0xa3, 0x1c,
+ 0x0f, 0x9f, 0xc3, 0xc0, 0x79, 0x9d, 0x6a, 0x31, 0x46, 0x07, 0xe8, 0x8a,
+ 0xea, 0xa2, 0x1b, 0xea,
+ 0x8a, 0xcb, 0x90, 0x6c, 0x8e, 0x63, 0x7b, 0x4f, 0x1f, 0x6f, 0x9b, 0x05,
+ 0x33, 0xf2, 0x10, 0x33,
+ 0x48, 0x46, 0xa1, 0x08, 0x62, 0x88, 0x74, 0x65, 0x28, 0xf6, 0x0b, 0xc1,
+ 0xc5, 0xc2, 0xa8, 0xc5,
+ 0x43, 0x63, 0x36, 0xf7, 0xa3, 0x5c, 0x59, 0xb3, 0xad, 0xbf, 0x7d, 0xd8,
+ 0x42, 0x52, 0x06, 0x42,
+ 0x81, 0xee, 0x07, 0x93, 0x4f, 0xb7, 0x56, 0x99, 0x9a, 0x26, 0xed, 0x1c,
+ 0xb4, 0x62, 0xbe, 0xb4,
+ 0x04, 0xba, 0x54, 0x3f, 0xb8, 0x49, 0x47, 0xe7, 0xc3, 0x4e, 0x9e, 0x93,
+ 0x6d, 0x32, 0xb5, 0x6d,
+ 0xc6, 0x37, 0x65, 0x5b, 0x54, 0xa2, 0x48, 0xcd, 0xf4, 0xd7, 0x0e, 0x57,
+ 0x9b, 0x02, 0x0d, 0x9b,
+ 0x12, 0xf0, 0xb9, 0x02, 0xf9, 0x22, 0x1d, 0x88, 0x0a, 0xdc, 0x72, 0xa1,
+ 0xa0, 0xd1, 0x2a, 0xa0,
+ 0xd0, 0x7d, 0x88, 0x66, 0x15, 0xc9, 0x12, 0xa2, 0x3d, 0x45, 0xe2, 0x65,
+ 0x56, 0xe1, 0x92, 0x56,
+ 0x55, 0x29, 0xdb, 0xca, 0xe2, 0x37, 0x03, 0xdc, 0x64, 0x2d, 0x91, 0xea,
+ 0x8f, 0xb1, 0x99, 0x8f,
+ 0x97, 0xa4, 0xea, 0xae, 0x0e, 0xdc, 0x0c, 0xf6, 0x53, 0xb4, 0x01, 0x2e,
+ 0x79, 0x81, 0x21, 0x79,
+ 0x9c, 0x81, 0x7d, 0x51, 0xcf, 0x08, 0x21, 0x20, 0xd6, 0xfd, 0x77, 0x37,
+ 0xfe, 0x11, 0x8f, 0xfe,
+ 0x5e, 0x0c, 0x4c, 0x35, 0x23, 0xe3, 0x2e, 0x0a, 0xe1, 0x64, 0xe7, 0xf3,
+ 0x08, 0x21, 0x37, 0x08,
+ 0xdb, 0x58, 0x1f, 0x99, 0xd4, 0x1d, 0x3f, 0x74, 0xb8, 0x0c, 0x94, 0x7c,
+ 0xd1, 0x71, 0x3c, 0xd1,
+ 0x19, 0xd5, 0x2e, 0xfd, 0x38, 0xf6, 0x30, 0x5e, 0x8f, 0x95, 0x04, 0xb8,
+ 0x27, 0x41, 0x84, 0x27,
+ 0xb0, 0x15, 0x64, 0x2b, 0x4d, 0xde, 0x95, 0xfe, 0x87, 0x1a, 0x6c, 0x53,
+ 0xa7, 0x14, 0x72, 0xa7,
+ 0x72, 0x98, 0x55, 0x4f, 0xa1, 0x35, 0x9a, 0xd4, 0xb0, 0x83, 0xfc, 0x97,
+ 0x51, 0x24, 0xca, 0x51,
+ 0xf7, 0xcc, 0x06, 0xe3, 0x56, 0xcb, 0x8b, 0xaa, 0xe9, 0xeb, 0x8f, 0x18,
+ 0x88, 0x74, 0xc1, 0x88,
+ 0x35, 0x41, 0x37, 0x87, 0xba, 0x20, 0x84, 0x80, 0xde, 0x72, 0x1f, 0xdc,
+ 0x7e, 0x44, 0x79, 0x7e,
+ 0x3e, 0x64, 0xa0, 0x78, 0x7b, 0xf4, 0xa9, 0x56, 0x5b, 0x3b, 0x69, 0xc5,
+ 0xf9, 0xd4, 0xd7, 0xf9,
+ 0xfc, 0xe9, 0x91, 0x1c, 0x97, 0x1f, 0xa6, 0x7c, 0x6c, 0xa2, 0xf9, 0x01,
+ 0x0f, 0xe4, 0x6f, 0x0f,
+ 0x79, 0xbd, 0xc2, 0xb0, 0x60, 0xe1, 0xb7, 0x02, 0x35, 0xca, 0x8a, 0x8e,
+ 0xd6, 0xb4, 0x64, 0xd6,
+ 0xbb, 0x30, 0xf3, 0xd4, 0x8c, 0x0a, 0xb8, 0x28, 0x02, 0x53, 0x1a, 0x4a,
+ 0x20, 0x84, 0xdc, 0x20,
+ 0x6f, 0xf7, 0x2f, 0x8d, 0x21, 0x8a, 0xed, 0x6d, 0xfc, 0x58, 0x66, 0xbc,
+ 0x1b, 0x57, 0xfb, 0x1b,
+ 0xad, 0x7a, 0x1e, 0xe9, 0xcd, 0x61, 0xe2, 0x47, 0xcb, 0xc1, 0xf6, 0x78,
+ 0xed, 0x67, 0x43, 0xed,
+ 0x28, 0x2e, 0x4d, 0x45, 0x3a, 0x9f, 0xf3, 0x39, 0x92, 0xa9, 0x85, 0xf7,
+ 0x34, 0x37, 0x48, 0x34,
+ 0xea, 0xa3, 0x7c, 0x21, 0xd6, 0x74, 0xfc, 0x13, 0xa5, 0x30, 0x15, 0x33,
+ 0xc2, 0x07, 0xf0, 0xc2,
+ 0xe1, 0x86, 0xeb, 0xde, 0x17, 0xa0, 0xd1, 0xc5, 0x20, 0x79, 0x63, 0x2a,
+ 0x45, 0x97, 0x5e, 0x45,
+ 0x23, 0x0b, 0xda, 0xba, 0xfb, 0x4b, 0xde, 0xef, 0x17, 0xe0, 0xf3, 0xee,
+ 0xb3, 0xa7, 0xe6, 0xb3,
+ 0xa6, 0x5f, 0x89, 0x16, 0x0c, 0xb5, 0xcf, 0x91, 0x4e, 0x88, 0x80, 0x61,
+ 0x6a, 0xf7, 0xed, 0x6a,
+ 0x64, 0xd2, 0xb8, 0x72, 0xe0, 0x5e, 0xc0, 0xbb, 0x79, 0x11, 0x10, 0xa5,
+ 0x9c, 0xc7, 0x55, 0x9c,
+ 0x6e, 0x38, 0x3a, 0xf2, 0x0f, 0x09, 0x8c, 0x24, 0xbc, 0xaa, 0xa0, 0xe8,
+ 0x91, 0xba, 0x47, 0x91,
+ 0xac, 0xb5, 0x0b, 0x96, 0xe3, 0xe2, 0x83, 0x0e, 0x8b, 0x33, 0x30, 0x2c,
+ 0x67, 0x8a, 0xff, 0x67,
+ 0x29, 0xe1, 0x58, 0x3a, 0x14, 0x1c, 0x92, 0x70, 0xd2, 0x5b, 0x43, 0xa3,
+ 0xbe, 0xda, 0xf4, 0xbe,
+ 0xeb, 0x6c, 0x69, 0x5e, 0xf8, 0xf7, 0x9d, 0x5a, 0xe5, 0xc2, 0xd3, 0x67,
+ 0x48, 0xea, 0x4c, 0x48,
+ 0xe0, 0x49, 0xfe, 0xa1, 0x39, 0x23, 0xb0, 0x8c, 0x60, 0x8b, 0xa5, 0x7e,
+ 0xcf, 0x7a, 0xe2, 0xcf,
+ 0x22, 0xc4, 0xcf, 0xc5, 0xd5, 0xc8, 0xbf, 0xa6, 0x57, 0x12, 0x35, 0xba,
+ 0x39, 0x4a, 0x5a, 0x39,
+ 0xa7, 0x90, 0x9c, 0x69, 0x22, 0x36, 0xae, 0xd8, 0x0e, 0x7a, 0x46, 0x35,
+ 0xe0, 0x1a, 0x51, 0xe0,
+ 0x65, 0x1d, 0xad, 0x0d, 0xce, 0xdd, 0xa1, 0xf2, 0x39, 0xe3, 0xd6, 0xf1,
+ 0x16, 0x2a, 0xe9, 0x16,
+ 0xb1, 0xda, 0x71, 0x54, 0x63, 0x5d, 0xf4, 0xb7, 0xc7, 0xe8, 0xaa, 0x07,
+ 0x2d, 0xf9, 0xce, 0x2d,
+ 0x73, 0x57, 0x40, 0x30, 0x8f, 0xb6, 0xfb, 0x9d, 0xf0, 0x71, 0x3a, 0xc3,
+ 0xdb, 0xc9, 0x76, 0xdb,
+ 0xf6, 0x03, 0x13, 0x9c, 0x78, 0x48, 0xea, 0xe3, 0xa9, 0x19, 0x49, 0x4c,
+ 0x02, 0x99, 0x7d, 0x02,
+ 0x34, 0x8e, 0x22, 0xf8, 0x94, 0xa3, 0xe5, 0xc9, 0x9e, 0x80, 0xd9, 0x88,
+ 0xf4, 0xa9, 0xc5, 0xf4,
+ 0x3f, 0xab, 0xb5, 0x07, 0x55, 0x77, 0xc8, 0x1f, 0x1b, 0xc9, 0xaf, 0x91,
+ 0x73, 0x39, 0x6b, 0x73,
+ 0xfd, 0x26, 0x84, 0x63, 0xb9, 0x9c, 0xc7, 0x35, 0x2c, 0x50, 0x3f, 0x55,
+ 0x85, 0x09, 0xd3, 0x85,
+ 0x78, 0x72, 0xd7, 0xcf, 0x4e, 0x62, 0xd6, 0x4b, 0x75, 0x38, 0x4c, 0xda,
+ 0x5c, 0x59, 0xd8, 0x5c,
+ 0xba, 0xff, 0xe6, 0xab, 0xa2, 0x89, 0xd9, 0x61, 0x42, 0xa1, 0xdc, 0x1e,
+ 0xaa, 0x69, 0x60, 0xaa,
+ 0x13, 0x3f, 0xac, 0x7d, 0xd7, 0xa1, 0x7c, 0xc1, 0x4a, 0x2e, 0xb4, 0xf5,
+ 0x2a, 0x3c, 0x96, 0x2a,
+ 0xd1, 0xb2, 0x9d, 0x19, 0x3b, 0x4a, 0x73, 0xeb, 0x7d, 0xb7, 0x24, 0x31,
+ 0xdc, 0x0c, 0x2e, 0xdc,
+ 0x54, 0xe6, 0xce, 0xb5, 0xcc, 0xb4, 0x62, 0x95, 0x24, 0xdf, 0x57, 0xbe,
+ 0x05, 0x5c, 0x25, 0x05,
+ 0x96, 0x6b, 0xff, 0xd1, 0x20, 0x5f, 0x6d, 0xbf, 0x13, 0x46, 0xc7, 0x7a,
+ 0xf3, 0x6c, 0x9d, 0xf3,
+ 0x9d, 0x4e, 0x68, 0x2e, 0xe1, 0x8b, 0x40, 0x69, 0x96, 0x0f, 0xb1, 0x63,
+ 0x74, 0xfc, 0x33, 0x74,
+ 0x5f, 0xc3, 0x59, 0x4a, 0x0d, 0x60, 0x4f, 0x43, 0xa1, 0x96, 0x21, 0xa7,
+ 0x82, 0xcc, 0x8b, 0x82,
+ 0xda, 0x97, 0x0a, 0xe6, 0xfa, 0x9e, 0x5e, 0x3d, 0xf8, 0xfe, 0x52, 0x28,
+ 0x5b, 0x9c, 0x80, 0x5b,
+ 0x18, 0x1a, 0x3b, 0x82, 0x16, 0x75, 0x51, 0x17, 0xcf, 0x67, 0xc2, 0xec,
+ 0xad, 0xac, 0x38, 0xad,
+ 0xcc, 0xdd, 0xe7, 0xdb, 0xbb, 0xf5, 0x04, 0x52, 0x31, 0x6c, 0xbe, 0x1a,
+ 0x96, 0x7f, 0x1f, 0x96,
+ 0x0e, 0x50, 0xd6, 0xbf, 0x57, 0x1e, 0x0b, 0x78, 0x06, 0xf5, 0x2e, 0xde,
+ 0x60, 0x4f, 0xa7, 0x60,
+ 0x8b, 0x04, 0x85, 0x13, 0xa0, 0xe0, 0x1a, 0x06, 0x5f, 0x9d, 0x5d, 0x51,
+ 0xb9, 0x1f, 0xac, 0xb9,
+ 0x49, 0x89, 0xb4, 0x77, 0x4c, 0x0b, 0x15, 0x2c, 0x68, 0x04, 0xcd, 0x95,
+ 0x4f, 0x2f, 0x14, 0x4f,
+ 0x42, 0xac, 0x23, 0x88, 0x8d, 0xdf, 0x38, 0xfa, 0xed, 0x4d, 0xbb, 0x8c,
+ 0xc8, 0xbf, 0xba, 0xc8,
+ 0x80, 0x21, 0x12, 0xec, 0x61, 0x34, 0x37, 0xd0, 0xda, 0xd4, 0x2b, 0x48,
+ 0x3e, 0x8f, 0x02, 0x3e,
+ 0x05, 0x75, 0x41, 0x40, 0x96, 0xca, 0x26, 0xae, 0x83, 0xbc, 0x58, 0xc7,
+ 0xe7, 0xdf, 0x09, 0xe7,
+ 0xc7, 0xf8, 0x70, 0x24, 0x7a, 0x21, 0x29, 0x84, 0xb4, 0x25, 0xc8, 0x03,
+ 0x11, 0xef, 0xb1, 0x11,
+ 0x94, 0x36, 0xd5, 0x2f, 0x7c, 0x9a, 0xaf, 0x2d, 0x93, 0x61, 0x88, 0xd2,
+ 0x24, 0x75, 0x26, 0x24,
+ 0x56, 0xbb, 0xe4, 0x4b, 0x90, 0x71, 0xa0, 0x07, 0xa4, 0xf8, 0x18, 0x16,
+ 0xd2, 0x45, 0x9e, 0xd2,
+ 0xd3, 0xef, 0xb7, 0xe7, 0x67, 0x8f, 0xb1, 0x79, 0xfd, 0x90, 0x6b, 0x99,
+ 0x0b, 0x15, 0x95, 0x0b,
+ 0x11, 0x62, 0x86, 0x83, 0x8b, 0x64, 0xbe, 0x53, 0xca, 0x09, 0xfb, 0x5d,
+ 0xfd, 0x25, 0x2d, 0xfd,
+ 0x1a, 0x47, 0x11, 0x7c, 0x4a, 0xb0, 0x93, 0x85, 0x4f, 0x40, 0x8d, 0x44,
+ 0x7a, 0xb5, 0x83, 0x7a,
+ 0xd8, 0xca, 0x20, 0x18, 0xa6, 0x5b, 0x9c, 0xaf, 0x78, 0xd9, 0x1d, 0x80,
+ 0x8c, 0x85, 0x3b, 0x8c,
+ 0x5d, 0x9e, 0x73, 0xb4, 0x51, 0xa5, 0x8d, 0xd1, 0x21, 0xb1, 0x6e, 0x0f,
+ 0x55, 0xd5, 0x30, 0x55,
+ 0x9f, 0x13, 0x42, 0xd0, 0xbd, 0x4e, 0x82, 0xfb, 0x16, 0x28, 0xfe, 0xcb,
+ 0xa3, 0xe5, 0x88, 0xa3,
+ 0x4b, 0xd4, 0x9e, 0x89, 0x10, 0xce, 0xd7, 0xbe, 0xe8, 0x23, 0x82, 0x3d,
+ 0x98, 0x36, 0xaf, 0x98,
+ 0x89, 0x59, 0xaf, 0xed, 0xfc, 0x25, 0xd8, 0x94, 0xdf, 0xba, 0x12, 0xf9,
+ 0x6e, 0x06, 0x17, 0x6e,
+ 0x0c, 0x0d, 0xfc, 0x41, 0x0b, 0xdb, 0xc9, 0xea, 0x86, 0xd2, 0x61, 0x76,
+ 0xb7, 0x56, 0x1c, 0xb7,
+ 0xce, 0x80, 0xcd, 0x25, 0xe7, 0x30, 0xc6, 0xc0, 0xb1, 0x4b, 0xf1, 0xb2,
+ 0x41, 0x66, 0xa4, 0x41,
+ 0xc5, 0xa5, 0x5a, 0xda, 0x26, 0xe4, 0xeb, 0x16, 0x34, 0x02, 0x87, 0xab,
+ 0xc6, 0xf6, 0x0a, 0xc6,
+ 0x07, 0x28, 0x6b, 0xbe, 0xca, 0x0f, 0xe4, 0x3c, 0x03, 0x9b, 0x17, 0x6f,
+ 0x30, 0xc6, 0xb2, 0x30,
+ 0x82, 0x7c, 0x38, 0x12, 0x3d, 0xf1, 0xf5, 0x42, 0x5a, 0xf3, 0x64, 0xe0,
+ 0xe9, 0x96, 0xb9, 0xe9,
+ 0x40, 0xf1, 0x09, 0x76, 0xd1, 0x1a, 0xfa, 0x68, 0x6d, 0x6a, 0xf4, 0x24,
+ 0x1f, 0xa6, 0x01, 0x1f,
+ 0xe9, 0x31, 0x43, 0xa0, 0xa4, 0x32, 0x5f, 0xc8, 0x65, 0xe5, 0x9c, 0xcf,
+ 0x9f, 0xf3, 0xf7, 0x9f,
+ 0x2b, 0xbc, 0x72, 0xc4, 0x48, 0xd9, 0x50, 0xe2, 0x52, 0x7c, 0x0c, 0x0b,
+ 0x69, 0xc3, 0x4f, 0x69,
+ 0xae, 0xe8, 0x21, 0x68, 0xbf, 0x27, 0x41, 0x9c, 0x0b, 0x14, 0x7f, 0x84,
+ 0xb0, 0x93, 0x44, 0xb0,
+ 0x6c, 0x65, 0x10, 0x0c, 0x53, 0xcc, 0x4e, 0xb6, 0x3c, 0x8d, 0xef, 0x40,
+ 0x46, 0xa3, 0xfc, 0x46,
+ 0x67, 0x40, 0x87, 0xf3, 0x92, 0x18, 0x63, 0x60, 0xb9, 0xc4, 0x99, 0x59,
+ 0xc1, 0x33, 0x52, 0xc1,
+ 0xa5, 0xcd, 0xb6, 0x97, 0x7e, 0xf3, 0x6c, 0x4a, 0x8e, 0x5d, 0x09, 0x9d,
+ 0x37, 0x03, 0xea, 0x37,
+ 0x20, 0x99, 0xe5, 0x3b, 0x89, 0x0d, 0x7d, 0x34, 0xd7, 0x35, 0x7a, 0x12,
+ 0xee, 0x53, 0xe1, 0xee,
+ 0xe2, 0x14, 0xd4, 0x5f, 0x65, 0xe6, 0x72, 0x1e, 0xe0, 0xac, 0xea, 0xd6,
+ 0x18, 0x63, 0x59, 0x18,
+ 0x36, 0xd3, 0x08, 0x06, 0xc8, 0x66, 0x27, 0x5b, 0x1e, 0xa7, 0x96, 0x20,
+ 0x23, 0xb0, 0x7e, 0x23,
+ 0xf4, 0x5e, 0x39, 0x62, 0x24, 0x8d, 0x28, 0x71, 0x29, 0x3e, 0x06, 0xe4,
+ 0xd5, 0x80, 0xc6, 0xd5,
+ 0x71, 0x0a, 0x6a, 0xce, 0xd3, 0x73, 0x39, 0x0f, 0x70, 0x56, 0x75, 0x6b,
+ 0x0c, 0xd0, 0xcd, 0x0c,
+ 0xb3, 0x87, 0x5b, 0xaa, 0x3f, 0x98, 0x36, 0x25, 0x47, 0xcf, 0xe5, 0xaf,
+ 0xfa, 0xe0, 0x75, 0xfa,
+ 0xb8, 0xa2, 0xcc, 0x55, 0xfe, 0x4c, 0x1b, 0xf3, 0xc2, 0x86, 0x93, 0xb6,
+ 0x7d, 0x70, 0xdb, 0x7d,
+ 0x7a, 0x2f, 0xfd, 0x31, 0x12, 0xa7, 0x14, 0xd9, 0xf5, 0x1f, 0x03, 0x72,
+ 0x8b, 0x40, 0x63, 0x8b,
+ 0xff, 0x7b, 0xae, 0x9d, 0xe5, 0x59, 0x05, 0xa7, 0xac, 0x77, 0x70, 0xfd,
+ 0x52, 0x10, 0x68, 0x52,
+ 0x3d, 0xf6, 0x9f, 0xf9, 0x09, 0xb2, 0x0a, 0x8d, 0x9b, 0xee, 0xe0, 0x39,
+ 0xa4, 0x20, 0xd0, 0xa4,
+ 0x59, 0x24, 0x27, 0x8b, 0xe9, 0xec, 0xca, 0x36, 0xe2, 0xff, 0xf0, 0x9c,
+ 0x38, 0xe7, 0x85, 0x38,
+ 0x9b, 0xa9, 0x16, 0xef, 0x05, 0x07, 0xc5, 0x1c, 0xd5, 0x66, 0x60, 0x58,
+ 0xce, 0xd7, 0x3d, 0xce,
+ 0x1e, 0xfd, 0x45, 0x43, 0xf2, 0xf9, 0xd4, 0x62, 0x8c, 0x0e, 0x13, 0xd7,
+ 0x17, 0x87, 0x36, 0x17,
+ 0xdc, 0x70, 0x74, 0x27, 0x1e, 0x12, 0xdb, 0x48, 0xbb, 0x97, 0x83, 0x13,
+ 0xe1, 0xb7, 0x8e, 0xe1,
+ 0xd7, 0x55, 0xe3, 0xd8, 0xdf, 0xc6, 0xf6, 0x9e, 0x3e, 0xde, 0xf5, 0x0a,
+ 0x66, 0x27, 0x20, 0x66,
+ 0x15, 0xd8, 0xd2, 0xbc, 0x33, 0x2d, 0xf9, 0xb4, 0x09, 0x47, 0x65, 0xce,
+ 0x90, 0x17, 0x98, 0x90,
+ 0x90, 0x8c, 0x81, 0x10, 0xc4, 0xd3, 0xe8, 0xca, 0x50, 0x2f, 0x16, 0x41,
+ 0x49, 0x47, 0x93, 0x49,
+ 0x52, 0x01, 0xb0, 0x74, 0x28, 0x38, 0xe7, 0xe0, 0x67, 0xb6, 0x86, 0x85,
+ 0xbf, 0x77, 0x2b, 0xbf,
+ 0x86, 0xc6, 0x6c, 0x2d, 0x85, 0xb8, 0xb2, 0xa5, 0x99, 0xbd, 0xfa, 0x73,
+ 0x84, 0xa4, 0x0c, 0x84,
+ 0x44, 0x4b, 0x5d, 0x49, 0x69, 0x53, 0xbd, 0x8f, 0xae, 0x24, 0x6a, 0xb7,
+ 0x72, 0x94, 0xb4, 0x72,
+ 0xc1, 0x1f, 0x0e, 0xe5, 0x9e, 0xad, 0xac, 0xf1, 0xf7, 0x4c, 0x19, 0x38,
+ 0xab, 0xc4, 0xbf, 0xab,
+ 0x03, 0x92, 0x3f, 0x81, 0x72, 0x46, 0xa3, 0xdb, 0xc0, 0xd5, 0x89, 0xfc,
+ 0x5d, 0xf4, 0x07, 0x5d,
+ 0x08, 0xb7, 0xa8, 0x7e, 0xb3, 0x92, 0x8e, 0x0d, 0x45, 0x9c, 0xff, 0xe5,
+ 0xda, 0x64, 0xa9, 0xda,
+ 0xca, 0x3a, 0x99, 0x1a, 0x5f, 0x79, 0x81, 0x27, 0x72, 0x05, 0x6f, 0x21,
+ 0x2c, 0x54, 0x11, 0x2c,
+ 0x4f, 0x6e, 0xca, 0xb6, 0xa8, 0x87, 0x90, 0x59, 0x2b, 0x6d, 0x1c, 0xae,
+ 0xf5, 0x04, 0x1a, 0xf5,
+ 0x8d, 0xe3, 0xfb, 0xd2, 0x44, 0x6c, 0x9f, 0x73, 0x1c, 0xf4, 0x8c, 0x6a,
+ 0x03, 0x34, 0xa2, 0x03,
+ 0x24, 0x23, 0xb1, 0x04, 0x31, 0x44, 0x3a, 0xd3, 0x14, 0x7b, 0xe4, 0x81,
+ 0x83, 0x61, 0x54, 0x83,
+ 0xe6, 0xae, 0x80, 0x60, 0xdd, 0xaf, 0x35, 0xf9, 0x23, 0xe2, 0x74, 0x45,
+ 0x75, 0x51, 0xec, 0x75,
+ 0x63, 0xfa, 0xd3, 0xcc, 0x2a, 0x51, 0x24, 0x87, 0x7a, 0x8a, 0x07, 0xca,
+ 0xac, 0x01, 0xe7, 0xac,
+ 0xa1, 0x77, 0xe2, 0xa8, 0xc6, 0xba, 0x2b, 0xad, 0x4d, 0x13, 0x97, 0x0e,
+ 0x5a, 0x31, 0x5f, 0x5a,
+ 0xaa, 0x52, 0x75, 0x57, 0x07, 0x6e, 0x06, 0x7b, 0xc8, 0x5a, 0xe1, 0x17,
+ 0xdd, 0xa1, 0xf1, 0xdd,
+ 0x68, 0xdf, 0x44, 0x33, 0xeb, 0x85, 0x09, 0x51, 0xff, 0xc3, 0x71, 0xd3,
+ 0x2b, 0x91, 0x49, 0x2b,
+ 0xed, 0x8b, 0x17, 0x9f, 0x1c, 0x7b, 0x18, 0x2f, 0xa6, 0xab, 0x02, 0x5c,
+ 0xf2, 0xc1, 0x42, 0xf2,
+ 0x2f, 0x06, 0x26, 0xfb, 0xf0, 0x90, 0x17, 0x05, 0x91, 0x32, 0x92, 0x98,
+ 0x04, 0xf1, 0xfa, 0x04,
+ 0xfb, 0xc1, 0xfa, 0xa2, 0x5d, 0x10, 0x42, 0x40, 0x6f, 0x39, 0xee, 0x6e,
+ 0x3f, 0x22, 0xdd, 0x3f,
+ 0x39, 0x4c, 0xcb, 0xc6, 0xb1, 0xfb, 0x4d, 0x6a, 0x58, 0xa0, 0x7e, 0xaa,
+ 0xc9, 0x12, 0x65, 0xc9,
+ 0xbc, 0x18, 0x98, 0x6a, 0x46, 0x05, 0x5c, 0x14, 0x01, 0xc8, 0x0d, 0x25,
+ 0x10, 0x42, 0x6e, 0x10,
+ 0x7e, 0x95, 0xa9, 0x0e, 0xaa, 0xee, 0x53, 0x3e, 0x36, 0x51, 0x9d, 0xe1,
+ 0xe6, 0x72, 0xd6, 0xe6,
+ 0x75, 0xb0, 0x3e, 0xf1, 0x6b, 0x3a, 0x7e, 0xe8, 0xb3, 0x18, 0xeb, 0xf8,
+ 0x61, 0xe2, 0x78, 0x61,
+ 0xb7, 0x3d, 0x0f, 0x95, 0x87, 0xd1, 0x71, 0xc2, 0x84, 0x81, 0x7b, 0x3c,
+ 0x97, 0xd2, 0xc0, 0x97,
+ 0x32, 0x69, 0x5c, 0x39, 0x70, 0x2f, 0x60, 0xbc, 0xdd, 0xe9, 0x08, 0xb3,
+ 0x4e, 0x82, 0xcb, 0x4e,
+ 0xf0, 0xe4, 0x6d, 0x5d, 0x9c, 0xc4, 0x6f, 0x96, 0xea, 0x70, 0x98, 0x77,
+ 0xb8, 0xb2, 0x73, 0xb8,
+ 0xa3, 0x2a, 0xc8, 0x56, 0x9a, 0x7f, 0xe9, 0x3f, 0xcd, 0x34, 0xd8, 0xa6,
+ 0x8d, 0x28, 0xe4, 0x8d,
+ 0x61, 0xa7, 0xf9, 0x32, 0x76, 0x94, 0xe6, 0x15, 0xfa, 0xad, 0x48, 0x62,
+ 0x7b, 0x18, 0x5c, 0x7b,
+ 0xe4, 0xf3, 0xaa, 0x9e, 0x81, 0x6a, 0xf7, 0x6b, 0xa3, 0xc5, 0x3b, 0xed,
+ 0xa2, 0x48, 0x57, 0xa2,
+ 0x26, 0x7e, 0x9b, 0xfa, 0x6d, 0x81, 0xf8, 0x41, 0x94, 0x5c, 0xab, 0x29,
+ 0x54, 0x78, 0xef, 0x54,
+ 0x2d, 0x5b, 0x0c, 0x05, 0xac, 0x55, 0xd5, 0x97, 0x11, 0x15, 0xdd, 0x30,
+ 0xd3, 0xe8, 0x41, 0xd3,
+ 0xef, 0xd6, 0x3d, 0x61, 0x40, 0xbe, 0xda, 0xbd, 0x26, 0x8c, 0x4d, 0xf4,
+ 0x25, 0xd8, 0xf9, 0x25,
+ 0x6a, 0x82, 0x6e, 0xcd, 0xb7, 0x40, 0xcb, 0xc3, 0x7f, 0xe4, 0x3e, 0x7b,
+ 0xfc, 0x88, 0xf2, 0xfc,
+ 0xa8, 0x0f, 0x5f, 0xa9, 0x5b, 0xab, 0xc4, 0xe9, 0x48, 0x7d, 0xae, 0xbf,
+ 0x0a, 0xb8, 0x4a, 0x0a,
+ 0x7c, 0xc8, 0x83, 0xf0, 0xf6, 0x2b, 0x91, 0xac, 0xb6, 0x76, 0xd2, 0x49,
+ 0x31, 0x6b, 0x6d, 0x31,
+ 0xbe, 0x45, 0xb2, 0x94, 0x1a, 0xc0, 0x9e, 0x86, 0x81, 0xef, 0x42, 0x8d,
+ 0xc7, 0x5b, 0xd5, 0xc7,
+ 0x3b, 0x11, 0xe1, 0x38, 0xed, 0x3e, 0x8f, 0xf8, 0xd8, 0x87, 0x31, 0x02,
+ 0x1e, 0x0b, 0xde, 0x1e,
+ 0xf9, 0x9c, 0xd0, 0x5c, 0x01, 0xd5, 0x80, 0xd2, 0xef, 0x1e, 0xa1, 0xc6,
+ 0xe8, 0x3b, 0x66, 0xe8,
+ 0xf2, 0xb9, 0x47, 0xa3, 0xc0, 0x01, 0xad, 0x04, 0x6a, 0x57, 0xd7, 0xdf,
+ 0x6f, 0xab, 0xc8, 0x6f,
+ 0x30, 0x34, 0x76, 0xc7, 0x2c, 0xea, 0xa2, 0x2e, 0x5d, 0xce, 0x47, 0x1b,
+ 0x99, 0x9b, 0x70, 0x99,
+ 0xb5, 0x60, 0x25, 0x6b, 0xdb, 0x14, 0xb3, 0x50, 0x04, 0xa6, 0x34, 0x94,
+ 0x40, 0xcb, 0x7b, 0x40,
+ 0x77, 0xed, 0x14, 0x0f, 0x37, 0xff, 0xbc, 0x7a, 0x33, 0x3f, 0xa4, 0x50,
+ 0xb6, 0xfb, 0xc3, 0xb6,
+ 0xde, 0x2d, 0x5e, 0xd9, 0x42, 0xd7, 0x19, 0xda, 0x3b, 0xb0, 0xcc, 0xbb,
+ 0x36, 0xae, 0x35, 0x36,
+ 0x1c, 0xa0, 0x6f, 0xbd, 0xae, 0x3c, 0x16, 0xf0, 0x0c, 0x29, 0x5c, 0x7f,
+ 0xc0, 0x9e, 0x8d, 0xc0,
+ 0x99, 0xf4, 0x3c, 0x11, 0x59, 0xc2, 0x07, 0x8e, 0x55, 0x41, 0x2f, 0xf0,
+ 0x19, 0xce, 0x86, 0x19,
+ 0x5b, 0x79, 0x0d, 0x75, 0xb5, 0x29, 0x08, 0xa4, 0x62, 0xd8, 0xbf, 0x34,
+ 0xef, 0xfe, 0x3e, 0xef,
+ 0x50, 0x5c, 0x9a, 0x8a, 0x74, 0xfd, 0x25, 0x72, 0xe7, 0x91, 0xc9, 0x2d,
+ 0x68, 0x6e, 0x90, 0x68,
+ 0x92, 0xd1, 0xab, 0xee, 0x98, 0x16, 0x2a, 0x58, 0xd0, 0x08, 0x59, 0xe9,
+ 0x9e, 0x5e, 0x28, 0x9e,
+ 0x17, 0x85, 0xf8, 0x42, 0x6f, 0xe8, 0x3b, 0x26, 0x89, 0x60, 0x2a, 0x66,
+ 0x47, 0x0e, 0x23, 0x47,
+ 0xd5, 0x08, 0xc9, 0x26, 0x83, 0x03, 0x34, 0x0c, 0xbe, 0xf9, 0xba, 0xa2,
+ 0xb1, 0x3e, 0x9b, 0xb1,
+ 0x01, 0xcf, 0x15, 0x7f, 0x2e, 0x83, 0x61, 0x49, 0x40, 0xf2, 0xc6, 0x54,
+ 0x8a, 0xed, 0xbc, 0x8a,
+ 0xc3, 0x42, 0x24, 0x1b, 0xc2, 0x68, 0x6e, 0x63, 0x77, 0x6b, 0x56, 0x90,
+ 0x7c, 0xdd, 0x04, 0x7c,
+ 0x46, 0x16, 0x77, 0xb7, 0x35, 0x96, 0x7f, 0x1d, 0x2e, 0x03, 0x25, 0x1f,
+ 0xa5, 0x8d, 0x0f, 0xa5,
+ 0x84, 0x9b, 0x46, 0xd3, 0xd9, 0x7d, 0x70, 0x37, 0x19, 0x9a, 0xb5, 0xdb,
+ 0x53, 0xbd, 0xb7, 0x53,
+ 0x8f, 0xbe, 0xd1, 0x2c, 0x18, 0xa9, 0x5d, 0xe1, 0x9c, 0xd3, 0xc3, 0xc2,
+ 0xd4, 0x2d, 0x19, 0xd4,
+ 0x4d, 0x33, 0xe0, 0x48, 0xf4, 0x42, 0x52, 0xcb, 0xab, 0x4a, 0x53, 0x06,
+ 0x22, 0x1d, 0xa1, 0x22,
+ 0xc8, 0x67, 0xb3, 0xe4, 0x03, 0xbc, 0x43, 0xb5, 0xf2, 0x22, 0x20, 0x89,
+ 0xfb, 0x4d, 0xaa, 0xfb,
+ 0x0a, 0xea, 0x82, 0x80, 0xef, 0x57, 0x4c, 0x9f, 0xc5, 0xbb, 0xb0, 0x4d,
+ 0x0d, 0x7d, 0x12, 0x0d,
+ },
+ { /* 6 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xc0, 0xb4, 0xa6, 0xff, 0x39, 0x2f, 0x54, 0x6c, 0xaf, 0xeb, 0xe1, 0xd4,
+ 0xd7, 0x63, 0x64, 0xbf,
+ 0x43, 0xab, 0x8f, 0x3d, 0x72, 0x5e, 0xa8, 0xd8, 0x9d, 0x15, 0x01, 0x6b,
+ 0x6d, 0xc6, 0xc8, 0xbd,
+ 0x83, 0x1f, 0x29, 0xc2, 0x4b, 0x71, 0xfc, 0xb4, 0x32, 0xfe, 0xe0, 0xbf,
+ 0xba, 0xa5, 0xac, 0x02,
+ 0x86, 0x95, 0xdd, 0x7a, 0xe4, 0xbc, 0x93, 0x73, 0xf9, 0x2a, 0x02, 0xd6,
+ 0xda, 0x4f, 0x53, 0xb9,
+ 0x46, 0x21, 0x7b, 0x85, 0xdd, 0x93, 0xc7, 0x1f, 0x56, 0xc1, 0xe3, 0x02,
+ 0x0d, 0x2c, 0x37, 0x06,
+ 0xc5, 0x3e, 0x52, 0x47, 0x96, 0xe2, 0x3b, 0xab, 0x64, 0x3f, 0x03, 0xbd,
+ 0xb7, 0x89, 0x9b, 0x04,
+ 0x05, 0x8a, 0xf4, 0xb8, 0xaf, 0xcd, 0x6f, 0xc7, 0xcb, 0xd4, 0xe2, 0x69,
+ 0x60, 0xea, 0xff, 0xbb,
+ 0xcf, 0xe9, 0x79, 0xf4, 0x0b, 0xbb, 0xe5, 0xe6, 0x31, 0x54, 0x04, 0x6f,
+ 0x77, 0x9e, 0xa6, 0xb1,
+ 0x0f, 0x5d, 0xdf, 0x0b, 0x32, 0x94, 0xb1, 0x8a, 0x9e, 0xbf, 0xe5, 0xbb,
+ 0xa0, 0xfd, 0xc2, 0x0e,
+ 0x8c, 0x42, 0xf6, 0xc9, 0x79, 0xe5, 0x4d, 0x3e, 0xac, 0x41, 0x05, 0x04,
+ 0x1a, 0x58, 0x6e, 0x0c,
+ 0x4c, 0xf6, 0x50, 0x36, 0x40, 0xca, 0x19, 0x52, 0x03, 0xaa, 0xe4, 0xd0,
+ 0xcd, 0x3b, 0x0a, 0xb3,
+ 0x49, 0x7c, 0xa4, 0x8e, 0xef, 0x07, 0x76, 0x95, 0xc8, 0x7e, 0x06, 0xb9,
+ 0xad, 0xd1, 0xf5, 0x08,
+ 0x89, 0xc8, 0x02, 0x71, 0xd6, 0x28, 0x22, 0xf9, 0x67, 0x95, 0xe7, 0x6d,
+ 0x7a, 0xb2, 0x91, 0xb7,
+ 0x0a, 0xd7, 0x2b, 0xb3, 0x9d, 0x59, 0xde, 0x4d, 0x55, 0x6b, 0x07, 0xd2,
+ 0xc0, 0x17, 0x3d, 0xb5,
+ 0xca, 0x63, 0x8d, 0x4c, 0xa4, 0x76, 0x8a, 0x21, 0xfa, 0x80, 0xe6, 0x06,
+ 0x17, 0x74, 0x59, 0x0a,
+ 0x5d, 0x11, 0xf2, 0x2b, 0x16, 0xb5, 0x09, 0x0f, 0x62, 0xa8, 0x08, 0xde,
+ 0xee, 0xff, 0x8f, 0xa1,
+ 0x9d, 0xa5, 0x54, 0xd4, 0x2f, 0x9a, 0x5d, 0x63, 0xcd, 0x43, 0xe9, 0x0a,
+ 0x39, 0x9c, 0xeb, 0x1e,
+ 0x1e, 0xba, 0x7d, 0x16, 0x64, 0xeb, 0xa1, 0xd7, 0xff, 0xbd, 0x09, 0xb5,
+ 0x83, 0x39, 0x47, 0x1c,
+ 0xde, 0x0e, 0xdb, 0xe9, 0x5d, 0xc4, 0xf5, 0xbb, 0x50, 0x56, 0xe8, 0x61,
+ 0x54, 0x5a, 0x23, 0xa3,
+ 0xdb, 0x84, 0x2f, 0x51, 0xf2, 0x09, 0x9a, 0x7c, 0x9b, 0x82, 0x0a, 0x08,
+ 0x34, 0xb0, 0xdc, 0x18,
+ 0x1b, 0x30, 0x89, 0xae, 0xcb, 0x26, 0xce, 0x10, 0x34, 0x69, 0xeb, 0xdc,
+ 0xe3, 0xd3, 0xb8, 0xa7,
+ 0x98, 0x2f, 0xa0, 0x6c, 0x80, 0x57, 0x32, 0xa4, 0x06, 0x97, 0x0b, 0x63,
+ 0x59, 0x76, 0x14, 0xa5,
+ 0x58, 0x9b, 0x06, 0x93, 0xb9, 0x78, 0x66, 0xc8, 0xa9, 0x7c, 0xea, 0xb7,
+ 0x8e, 0x15, 0x70, 0x1a,
+ 0x92, 0xf8, 0x8b, 0xdf, 0x1d, 0x0e, 0xec, 0xe9, 0x53, 0xfc, 0x0c, 0xb1,
+ 0x99, 0x61, 0x29, 0x10,
+ 0x52, 0x4c, 0x2d, 0x20, 0x24, 0x21, 0xb8, 0x85, 0xfc, 0x17, 0xed, 0x65,
+ 0x4e, 0x02, 0x4d, 0xaf,
+ 0xd1, 0x53, 0x04, 0xe2, 0x6f, 0x50, 0x44, 0x31, 0xce, 0xe9, 0x0d, 0xda,
+ 0xf4, 0xa7, 0xe1, 0xad,
+ 0x11, 0xe7, 0xa2, 0x1d, 0x56, 0x7f, 0x10, 0x5d, 0x61, 0x02, 0xec, 0x0e,
+ 0x23, 0xc4, 0x85, 0x12,
+ 0x14, 0x6d, 0x56, 0xa5, 0xf9, 0xb2, 0x7f, 0x9a, 0xaa, 0xd6, 0x0e, 0x67,
+ 0x43, 0x2e, 0x7a, 0xa9,
+ 0xd4, 0xd9, 0xf0, 0x5a, 0xc0, 0x9d, 0x2b, 0xf6, 0x05, 0x3d, 0xef, 0xb3,
+ 0x94, 0x4d, 0x1e, 0x16,
+ 0x57, 0xc6, 0xd9, 0x98, 0x8b, 0xec, 0xd7, 0x42, 0x37, 0xc3, 0x0f, 0x0c,
+ 0x2e, 0xe8, 0xb2, 0x14,
+ 0x97, 0x72, 0x7f, 0x67, 0xb2, 0xc3, 0x83, 0x2e, 0x98, 0x28, 0xee, 0xd8,
+ 0xf9, 0x8b, 0xd6, 0xab,
+ 0xba, 0x22, 0x27, 0x56, 0x2c, 0xa9, 0x12, 0x1e, 0xc4, 0x93, 0x10, 0x7f,
+ 0x1f, 0x3d, 0xdd, 0x81,
+ 0x7a, 0x96, 0x81, 0xa9, 0x15, 0x86, 0x46, 0x72, 0x6b, 0x78, 0xf1, 0xab,
+ 0xc8, 0x5e, 0xb9, 0x3e,
+ 0xf9, 0x89, 0xa8, 0x6b, 0x5e, 0xf7, 0xba, 0xc6, 0x59, 0x86, 0x11, 0x14,
+ 0x72, 0xfb, 0x15, 0x3c,
+ 0x39, 0x3d, 0x0e, 0x94, 0x67, 0xd8, 0xee, 0xaa, 0xf6, 0x6d, 0xf0, 0xc0,
+ 0xa5, 0x98, 0x71, 0x83,
+ 0x3c, 0xb7, 0xfa, 0x2c, 0xc8, 0x15, 0x81, 0x6d, 0x3d, 0xb9, 0x12, 0xa9,
+ 0xc5, 0x72, 0x8e, 0x38,
+ 0xfc, 0x03, 0x5c, 0xd3, 0xf1, 0x3a, 0xd5, 0x01, 0x92, 0x52, 0xf3, 0x7d,
+ 0x12, 0x11, 0xea, 0x87,
+ 0x7f, 0x1c, 0x75, 0x11, 0xba, 0x4b, 0x29, 0xb5, 0xa0, 0xac, 0x13, 0xc2,
+ 0xa8, 0xb4, 0x46, 0x85,
+ 0xbf, 0xa8, 0xd3, 0xee, 0x83, 0x64, 0x7d, 0xd9, 0x0f, 0x47, 0xf2, 0x16,
+ 0x7f, 0xd7, 0x22, 0x3a,
+ 0x75, 0xcb, 0x5e, 0xa2, 0x27, 0x12, 0xf7, 0xf8, 0xf5, 0xc7, 0x14, 0x10,
+ 0x68, 0xa3, 0x7b, 0x30,
+ 0xb5, 0x7f, 0xf8, 0x5d, 0x1e, 0x3d, 0xa3, 0x94, 0x5a, 0x2c, 0xf5, 0xc4,
+ 0xbf, 0xc0, 0x1f, 0x8f,
+ 0x36, 0x60, 0xd1, 0x9f, 0x55, 0x4c, 0x5f, 0x20, 0x68, 0xd2, 0x15, 0x7b,
+ 0x05, 0x65, 0xb3, 0x8d,
+ 0xf6, 0xd4, 0x77, 0x60, 0x6c, 0x63, 0x0b, 0x4c, 0xc7, 0x39, 0xf4, 0xaf,
+ 0xd2, 0x06, 0xd7, 0x32,
+ 0xf3, 0x5e, 0x83, 0xd8, 0xc3, 0xae, 0x64, 0x8b, 0x0c, 0xed, 0x16, 0xc6,
+ 0xb2, 0xec, 0x28, 0x89,
+ 0x33, 0xea, 0x25, 0x27, 0xfa, 0x81, 0x30, 0xe7, 0xa3, 0x06, 0xf7, 0x12,
+ 0x65, 0x8f, 0x4c, 0x36,
+ 0xb0, 0xf5, 0x0c, 0xe5, 0xb1, 0xf0, 0xcc, 0x53, 0x91, 0xf8, 0x17, 0xad,
+ 0xdf, 0x2a, 0xe0, 0x34,
+ 0x70, 0x41, 0xaa, 0x1a, 0x88, 0xdf, 0x98, 0x3f, 0x3e, 0x13, 0xf6, 0x79,
+ 0x08, 0x49, 0x84, 0x8b,
+ 0xe7, 0x33, 0xd5, 0x7d, 0x3a, 0x1c, 0x1b, 0x11, 0xa6, 0x3b, 0x18, 0xa1,
+ 0xf1, 0xc2, 0x52, 0x20,
+ 0x27, 0x87, 0x73, 0x82, 0x03, 0x33, 0x4f, 0x7d, 0x09, 0xd0, 0xf9, 0x75,
+ 0x26, 0xa1, 0x36, 0x9f,
+ 0xa4, 0x98, 0x5a, 0x40, 0x48, 0x42, 0xb3, 0xc9, 0x3b, 0x2e, 0x19, 0xca,
+ 0x9c, 0x04, 0x9a, 0x9d,
+ 0x64, 0x2c, 0xfc, 0xbf, 0x71, 0x6d, 0xe7, 0xa5, 0x94, 0xc5, 0xf8, 0x1e,
+ 0x4b, 0x67, 0xfe, 0x22,
+ 0x61, 0xa6, 0x08, 0x07, 0xde, 0xa0, 0x88, 0x62, 0x5f, 0x11, 0x1a, 0x77,
+ 0x2b, 0x8d, 0x01, 0x99,
+ 0xa1, 0x12, 0xae, 0xf8, 0xe7, 0x8f, 0xdc, 0x0e, 0xf0, 0xfa, 0xfb, 0xa3,
+ 0xfc, 0xee, 0x65, 0x26,
+ 0x22, 0x0d, 0x87, 0x3a, 0xac, 0xfe, 0x20, 0xba, 0xc2, 0x04, 0x1b, 0x1c,
+ 0x46, 0x4b, 0xc9, 0x24,
+ 0xe2, 0xb9, 0x21, 0xc5, 0x95, 0xd1, 0x74, 0xd6, 0x6d, 0xef, 0xfa, 0xc8,
+ 0x91, 0x28, 0xad, 0x9b,
+ 0x28, 0xda, 0xac, 0x89, 0x31, 0xa7, 0xfe, 0xf7, 0x97, 0x6f, 0x1c, 0xce,
+ 0x86, 0x5c, 0xf4, 0x91,
+ 0xe8, 0x6e, 0x0a, 0x76, 0x08, 0x88, 0xaa, 0x9b, 0x38, 0x84, 0xfd, 0x1a,
+ 0x51, 0x3f, 0x90, 0x2e,
+ 0x6b, 0x71, 0x23, 0xb4, 0x43, 0xf9, 0x56, 0x2f, 0x0a, 0x7a, 0x1d, 0xa5,
+ 0xeb, 0x9a, 0x3c, 0x2c,
+ 0xab, 0xc5, 0x85, 0x4b, 0x7a, 0xd6, 0x02, 0x43, 0xa5, 0x91, 0xfc, 0x71,
+ 0x3c, 0xf9, 0x58, 0x93,
+ 0xae, 0x4f, 0x71, 0xf3, 0xd5, 0x1b, 0x6d, 0x84, 0x6e, 0x45, 0x1e, 0x18,
+ 0x5c, 0x13, 0xa7, 0x28,
+ 0x6e, 0xfb, 0xd7, 0x0c, 0xec, 0x34, 0x39, 0xe8, 0xc1, 0xae, 0xff, 0xcc,
+ 0x8b, 0x70, 0xc3, 0x97,
+ 0xed, 0xe4, 0xfe, 0xce, 0xa7, 0x45, 0xc5, 0x5c, 0xf3, 0x50, 0x1f, 0x73,
+ 0x31, 0xd5, 0x6f, 0x95,
+ 0x2d, 0x50, 0x58, 0x31, 0x9e, 0x6a, 0x91, 0x30, 0x5c, 0xbb, 0xfe, 0xa7,
+ 0xe6, 0xb6, 0x0b, 0x2a,
+ 0xb7, 0x44, 0x4e, 0xac, 0x58, 0x91, 0x24, 0x3c, 0x4b, 0xe5, 0x20, 0xfe,
+ 0x3e, 0x7a, 0x79, 0xc1,
+ 0x77, 0xf0, 0xe8, 0x53, 0x61, 0xbe, 0x70, 0x50, 0xe4, 0x0e, 0xc1, 0x2a,
+ 0xe9, 0x19, 0x1d, 0x7e,
+ 0xf4, 0xef, 0xc1, 0x91, 0x2a, 0xcf, 0x8c, 0xe4, 0xd6, 0xf0, 0x21, 0x95,
+ 0x53, 0xbc, 0xb1, 0x7c,
+ 0x34, 0x5b, 0x67, 0x6e, 0x13, 0xe0, 0xd8, 0x88, 0x79, 0x1b, 0xc0, 0x41,
+ 0x84, 0xdf, 0xd5, 0xc3,
+ 0x31, 0xd1, 0x93, 0xd6, 0xbc, 0x2d, 0xb7, 0x4f, 0xb2, 0xcf, 0x22, 0x28,
+ 0xe4, 0x35, 0x2a, 0x78,
+ 0xf1, 0x65, 0x35, 0x29, 0x85, 0x02, 0xe3, 0x23, 0x1d, 0x24, 0xc3, 0xfc,
+ 0x33, 0x56, 0x4e, 0xc7,
+ 0x72, 0x7a, 0x1c, 0xeb, 0xce, 0x73, 0x1f, 0x97, 0x2f, 0xda, 0x23, 0x43,
+ 0x89, 0xf3, 0xe2, 0xc5,
+ 0xb2, 0xce, 0xba, 0x14, 0xf7, 0x5c, 0x4b, 0xfb, 0x80, 0x31, 0xc2, 0x97,
+ 0x5e, 0x90, 0x86, 0x7a,
+ 0x78, 0xad, 0x37, 0x58, 0x53, 0x2a, 0xc1, 0xda, 0x7a, 0xb1, 0x24, 0x91,
+ 0x49, 0xe4, 0xdf, 0x70,
+ 0xb8, 0x19, 0x91, 0xa7, 0x6a, 0x05, 0x95, 0xb6, 0xd5, 0x5a, 0xc5, 0x45,
+ 0x9e, 0x87, 0xbb, 0xcf,
+ 0x3b, 0x06, 0xb8, 0x65, 0x21, 0x74, 0x69, 0x02, 0xe7, 0xa4, 0x25, 0xfa,
+ 0x24, 0x22, 0x17, 0xcd,
+ 0xfb, 0xb2, 0x1e, 0x9a, 0x18, 0x5b, 0x3d, 0x6e, 0x48, 0x4f, 0xc4, 0x2e,
+ 0xf3, 0x41, 0x73, 0x72,
+ 0xfe, 0x38, 0xea, 0x22, 0xb7, 0x96, 0x52, 0xa9, 0x83, 0x9b, 0x26, 0x47,
+ 0x93, 0xab, 0x8c, 0xc9,
+ 0x3e, 0x8c, 0x4c, 0xdd, 0x8e, 0xb9, 0x06, 0xc5, 0x2c, 0x70, 0xc7, 0x93,
+ 0x44, 0xc8, 0xe8, 0x76,
+ 0xbd, 0x93, 0x65, 0x1f, 0xc5, 0xc8, 0xfa, 0x71, 0x1e, 0x8e, 0x27, 0x2c,
+ 0xfe, 0x6d, 0x44, 0x74,
+ 0x7d, 0x27, 0xc3, 0xe0, 0xfc, 0xe7, 0xae, 0x1d, 0xb1, 0x65, 0xc6, 0xf8,
+ 0x29, 0x0e, 0x20, 0xcb,
+ 0xea, 0x55, 0xbc, 0x87, 0x4e, 0x24, 0x2d, 0x33, 0x29, 0x4d, 0x28, 0x20,
+ 0xd0, 0x85, 0xf6, 0x60,
+ 0x2a, 0xe1, 0x1a, 0x78, 0x77, 0x0b, 0x79, 0x5f, 0x86, 0xa6, 0xc9, 0xf4,
+ 0x07, 0xe6, 0x92, 0xdf,
+ 0xa9, 0xfe, 0x33, 0xba, 0x3c, 0x7a, 0x85, 0xeb, 0xb4, 0x58, 0x29, 0x4b,
+ 0xbd, 0x43, 0x3e, 0xdd,
+ 0x69, 0x4a, 0x95, 0x45, 0x05, 0x55, 0xd1, 0x87, 0x1b, 0xb3, 0xc8, 0x9f,
+ 0x6a, 0x20, 0x5a, 0x62,
+ 0x6c, 0xc0, 0x61, 0xfd, 0xaa, 0x98, 0xbe, 0x40, 0xd0, 0x67, 0x2a, 0xf6,
+ 0x0a, 0xca, 0xa5, 0xd9,
+ 0xac, 0x74, 0xc7, 0x02, 0x93, 0xb7, 0xea, 0x2c, 0x7f, 0x8c, 0xcb, 0x22,
+ 0xdd, 0xa9, 0xc1, 0x66,
+ 0x2f, 0x6b, 0xee, 0xc0, 0xd8, 0xc6, 0x16, 0x98, 0x4d, 0x72, 0x2b, 0x9d,
+ 0x67, 0x0c, 0x6d, 0x64,
+ 0xef, 0xdf, 0x48, 0x3f, 0xe1, 0xe9, 0x42, 0xf4, 0xe2, 0x99, 0xca, 0x49,
+ 0xb0, 0x6f, 0x09, 0xdb,
+ 0x25, 0xbc, 0xc5, 0x73, 0x45, 0x9f, 0xc8, 0xd5, 0x18, 0x19, 0x2c, 0x4f,
+ 0xa7, 0x1b, 0x50, 0xd1,
+ 0xe5, 0x08, 0x63, 0x8c, 0x7c, 0xb0, 0x9c, 0xb9, 0xb7, 0xf2, 0xcd, 0x9b,
+ 0x70, 0x78, 0x34, 0x6e,
+ 0x66, 0x17, 0x4a, 0x4e, 0x37, 0xc1, 0x60, 0x0d, 0x85, 0x0c, 0x2d, 0x24,
+ 0xca, 0xdd, 0x98, 0x6c,
+ 0xa6, 0xa3, 0xec, 0xb1, 0x0e, 0xee, 0x34, 0x61, 0x2a, 0xe7, 0xcc, 0xf0,
+ 0x1d, 0xbe, 0xfc, 0xd3,
+ 0xa3, 0x29, 0x18, 0x09, 0xa1, 0x23, 0x5b, 0xa6, 0xe1, 0x33, 0x2e, 0x99,
+ 0x7d, 0x54, 0x03, 0x68,
+ 0x63, 0x9d, 0xbe, 0xf6, 0x98, 0x0c, 0x0f, 0xca, 0x4e, 0xd8, 0xcf, 0x4d,
+ 0xaa, 0x37, 0x67, 0xd7,
+ 0xe0, 0x82, 0x97, 0x34, 0xd3, 0x7d, 0xf3, 0x7e, 0x7c, 0x26, 0x2f, 0xf2,
+ 0x10, 0x92, 0xcb, 0xd5,
+ 0x20, 0x36, 0x31, 0xcb, 0xea, 0x52, 0xa7, 0x12, 0xd3, 0xcd, 0xce, 0x26,
+ 0xc7, 0xf1, 0xaf, 0x6a,
+ 0x0d, 0x66, 0x69, 0xfa, 0x74, 0x38, 0x36, 0x22, 0x8f, 0x76, 0x30, 0x81,
+ 0x21, 0x47, 0xa4, 0x40,
+ 0xcd, 0xd2, 0xcf, 0x05, 0x4d, 0x17, 0x62, 0x4e, 0x20, 0x9d, 0xd1, 0x55,
+ 0xf6, 0x24, 0xc0, 0xff,
+ 0x4e, 0xcd, 0xe6, 0xc7, 0x06, 0x66, 0x9e, 0xfa, 0x12, 0x63, 0x31, 0xea,
+ 0x4c, 0x81, 0x6c, 0xfd,
+ 0x8e, 0x79, 0x40, 0x38, 0x3f, 0x49, 0xca, 0x96, 0xbd, 0x88, 0xd0, 0x3e,
+ 0x9b, 0xe2, 0x08, 0x42,
+ 0x8b, 0xf3, 0xb4, 0x80, 0x90, 0x84, 0xa5, 0x51, 0x76, 0x5c, 0x32, 0x57,
+ 0xfb, 0x08, 0xf7, 0xf9,
+ 0x4b, 0x47, 0x12, 0x7f, 0xa9, 0xab, 0xf1, 0x3d, 0xd9, 0xb7, 0xd3, 0x83,
+ 0x2c, 0x6b, 0x93, 0x46,
+ 0xc8, 0x58, 0x3b, 0xbd, 0xe2, 0xda, 0x0d, 0x89, 0xeb, 0x49, 0x33, 0x3c,
+ 0x96, 0xce, 0x3f, 0x44,
+ 0x08, 0xec, 0x9d, 0x42, 0xdb, 0xf5, 0x59, 0xe5, 0x44, 0xa2, 0xd2, 0xe8,
+ 0x41, 0xad, 0x5b, 0xfb,
+ 0xc2, 0x8f, 0x10, 0x0e, 0x7f, 0x83, 0xd3, 0xc4, 0xbe, 0x22, 0x34, 0xee,
+ 0x56, 0xd9, 0x02, 0xf1,
+ 0x02, 0x3b, 0xb6, 0xf1, 0x46, 0xac, 0x87, 0xa8, 0x11, 0xc9, 0xd5, 0x3a,
+ 0x81, 0xba, 0x66, 0x4e,
+ 0x81, 0x24, 0x9f, 0x33, 0x0d, 0xdd, 0x7b, 0x1c, 0x23, 0x37, 0x35, 0x85,
+ 0x3b, 0x1f, 0xca, 0x4c,
+ 0x41, 0x90, 0x39, 0xcc, 0x34, 0xf2, 0x2f, 0x70, 0x8c, 0xdc, 0xd4, 0x51,
+ 0xec, 0x7c, 0xae, 0xf3,
+ 0x44, 0x1a, 0xcd, 0x74, 0x9b, 0x3f, 0x40, 0xb7, 0x47, 0x08, 0x36, 0x38,
+ 0x8c, 0x96, 0x51, 0x48,
+ 0x84, 0xae, 0x6b, 0x8b, 0xa2, 0x10, 0x14, 0xdb, 0xe8, 0xe3, 0xd7, 0xec,
+ 0x5b, 0xf5, 0x35, 0xf7,
+ 0x07, 0xb1, 0x42, 0x49, 0xe9, 0x61, 0xe8, 0x6f, 0xda, 0x1d, 0x37, 0x53,
+ 0xe1, 0x50, 0x99, 0xf5,
+ 0xc7, 0x05, 0xe4, 0xb6, 0xd0, 0x4e, 0xbc, 0x03, 0x75, 0xf6, 0xd6, 0x87,
+ 0x36, 0x33, 0xfd, 0x4a,
+ 0x50, 0x77, 0x9b, 0xd1, 0x62, 0x8d, 0x3f, 0x2d, 0xed, 0xde, 0x38, 0x5f,
+ 0xcf, 0xb8, 0x2b, 0xe1,
+ 0x90, 0xc3, 0x3d, 0x2e, 0x5b, 0xa2, 0x6b, 0x41, 0x42, 0x35, 0xd9, 0x8b,
+ 0x18, 0xdb, 0x4f, 0x5e,
+ 0x13, 0xdc, 0x14, 0xec, 0x10, 0xd3, 0x97, 0xf5, 0x70, 0xcb, 0x39, 0x34,
+ 0xa2, 0x7e, 0xe3, 0x5c,
+ 0xd3, 0x68, 0xb2, 0x13, 0x29, 0xfc, 0xc3, 0x99, 0xdf, 0x20, 0xd8, 0xe0,
+ 0x75, 0x1d, 0x87, 0xe3,
+ 0xd6, 0xe2, 0x46, 0xab, 0x86, 0x31, 0xac, 0x5e, 0x14, 0xf4, 0x3a, 0x89,
+ 0x15, 0xf7, 0x78, 0x58,
+ 0x16, 0x56, 0xe0, 0x54, 0xbf, 0x1e, 0xf8, 0x32, 0xbb, 0x1f, 0xdb, 0x5d,
+ 0xc2, 0x94, 0x1c, 0xe7,
+ 0x95, 0x49, 0xc9, 0x96, 0xf4, 0x6f, 0x04, 0x86, 0x89, 0xe1, 0x3b, 0xe2,
+ 0x78, 0x31, 0xb0, 0xe5,
+ 0x55, 0xfd, 0x6f, 0x69, 0xcd, 0x40, 0x50, 0xea, 0x26, 0x0a, 0xda, 0x36,
+ 0xaf, 0x52, 0xd4, 0x5a,
+ 0x9f, 0x9e, 0xe2, 0x25, 0x69, 0x36, 0xda, 0xcb, 0xdc, 0x8a, 0x3c, 0x30,
+ 0xb8, 0x26, 0x8d, 0x50,
+ 0x5f, 0x2a, 0x44, 0xda, 0x50, 0x19, 0x8e, 0xa7, 0x73, 0x61, 0xdd, 0xe4,
+ 0x6f, 0x45, 0xe9, 0xef,
+ 0xdc, 0x35, 0x6d, 0x18, 0x1b, 0x68, 0x72, 0x13, 0x41, 0x9f, 0x3d, 0x5b,
+ 0xd5, 0xe0, 0x45, 0xed,
+ 0x1c, 0x81, 0xcb, 0xe7, 0x22, 0x47, 0x26, 0x7f, 0xee, 0x74, 0xdc, 0x8f,
+ 0x02, 0x83, 0x21, 0x52,
+ 0x19, 0x0b, 0x3f, 0x5f, 0x8d, 0x8a, 0x49, 0xb8, 0x25, 0xa0, 0x3e, 0xe6,
+ 0x62, 0x69, 0xde, 0xe9,
+ 0xd9, 0xbf, 0x99, 0xa0, 0xb4, 0xa5, 0x1d, 0xd4, 0x8a, 0x4b, 0xdf, 0x32,
+ 0xb5, 0x0a, 0xba, 0x56,
+ 0x5a, 0xa0, 0xb0, 0x62, 0xff, 0xd4, 0xe1, 0x60, 0xb8, 0xb5, 0x3f, 0x8d,
+ 0x0f, 0xaf, 0x16, 0x54,
+ 0x9a, 0x14, 0x16, 0x9d, 0xc6, 0xfb, 0xb5, 0x0c, 0x17, 0x5e, 0xde, 0x59,
+ 0xd8, 0xcc, 0x72, 0xeb,
+ 0xad, 0x88, 0x9c, 0x9b, 0xb0, 0xe1, 0x48, 0x78, 0x96, 0x09, 0x40, 0x3f,
+ 0x7c, 0xf4, 0xf2, 0x41,
+ 0x6d, 0x3c, 0x3a, 0x64, 0x89, 0xce, 0x1c, 0x14, 0x39, 0xe2, 0xa1, 0xeb,
+ 0xab, 0x97, 0x96, 0xfe,
+ 0xee, 0x23, 0x13, 0xa6, 0xc2, 0xbf, 0xe0, 0xa0, 0x0b, 0x1c, 0x41, 0x54,
+ 0x11, 0x32, 0x3a, 0xfc,
+ 0x2e, 0x97, 0xb5, 0x59, 0xfb, 0x90, 0xb4, 0xcc, 0xa4, 0xf7, 0xa0, 0x80,
+ 0xc6, 0x51, 0x5e, 0x43,
+ 0x2b, 0x1d, 0x41, 0xe1, 0x54, 0x5d, 0xdb, 0x0b, 0x6f, 0x23, 0x42, 0xe9,
+ 0xa6, 0xbb, 0xa1, 0xf8,
+ 0xeb, 0xa9, 0xe7, 0x1e, 0x6d, 0x72, 0x8f, 0x67, 0xc0, 0xc8, 0xa3, 0x3d,
+ 0x71, 0xd8, 0xc5, 0x47,
+ 0x68, 0xb6, 0xce, 0xdc, 0x26, 0x03, 0x73, 0xd3, 0xf2, 0x36, 0x43, 0x82,
+ 0xcb, 0x7d, 0x69, 0x45,
+ 0xa8, 0x02, 0x68, 0x23, 0x1f, 0x2c, 0x27, 0xbf, 0x5d, 0xdd, 0xa2, 0x56,
+ 0x1c, 0x1e, 0x0d, 0xfa,
+ 0x62, 0x61, 0xe5, 0x6f, 0xbb, 0x5a, 0xad, 0x9e, 0xa7, 0x5d, 0x44, 0x50,
+ 0x0b, 0x6a, 0x54, 0xf0,
+ 0xa2, 0xd5, 0x43, 0x90, 0x82, 0x75, 0xf9, 0xf2, 0x08, 0xb6, 0xa5, 0x84,
+ 0xdc, 0x09, 0x30, 0x4f,
+ 0x21, 0xca, 0x6a, 0x52, 0xc9, 0x04, 0x05, 0x46, 0x3a, 0x48, 0x45, 0x3b,
+ 0x66, 0xac, 0x9c, 0x4d,
+ 0xe1, 0x7e, 0xcc, 0xad, 0xf0, 0x2b, 0x51, 0x2a, 0x95, 0xa3, 0xa4, 0xef,
+ 0xb1, 0xcf, 0xf8, 0xf2,
+ 0xe4, 0xf4, 0x38, 0x15, 0x5f, 0xe6, 0x3e, 0xed, 0x5e, 0x77, 0x46, 0x86,
+ 0xd1, 0x25, 0x07, 0x49,
+ 0x24, 0x40, 0x9e, 0xea, 0x66, 0xc9, 0x6a, 0x81, 0xf1, 0x9c, 0xa7, 0x52,
+ 0x06, 0x46, 0x63, 0xf6,
+ 0xa7, 0x5f, 0xb7, 0x28, 0x2d, 0xb8, 0x96, 0x35, 0xc3, 0x62, 0x47, 0xed,
+ 0xbc, 0xe3, 0xcf, 0xf4,
+ 0x67, 0xeb, 0x11, 0xd7, 0x14, 0x97, 0xc2, 0x59, 0x6c, 0x89, 0xa6, 0x39,
+ 0x6b, 0x80, 0xab, 0x4b,
+ 0xf0, 0x99, 0x6e, 0xb0, 0xa6, 0x54, 0x41, 0x77, 0xf4, 0xa1, 0x48, 0xe1,
+ 0x92, 0x0b, 0x7d, 0xe0,
+ 0x30, 0x2d, 0xc8, 0x4f, 0x9f, 0x7b, 0x15, 0x1b, 0x5b, 0x4a, 0xa9, 0x35,
+ 0x45, 0x68, 0x19, 0x5f,
+ 0xb3, 0x32, 0xe1, 0x8d, 0xd4, 0x0a, 0xe9, 0xaf, 0x69, 0xb4, 0x49, 0x8a,
+ 0xff, 0xcd, 0xb5, 0x5d,
+ 0x73, 0x86, 0x47, 0x72, 0xed, 0x25, 0xbd, 0xc3, 0xc6, 0x5f, 0xa8, 0x5e,
+ 0x28, 0xae, 0xd1, 0xe2,
+ 0x76, 0x0c, 0xb3, 0xca, 0x42, 0xe8, 0xd2, 0x04, 0x0d, 0x8b, 0x4a, 0x37,
+ 0x48, 0x44, 0x2e, 0x59,
+ 0xb6, 0xb8, 0x15, 0x35, 0x7b, 0xc7, 0x86, 0x68, 0xa2, 0x60, 0xab, 0xe3,
+ 0x9f, 0x27, 0x4a, 0xe6,
+ 0x35, 0xa7, 0x3c, 0xf7, 0x30, 0xb6, 0x7a, 0xdc, 0x90, 0x9e, 0x4b, 0x5c,
+ 0x25, 0x82, 0xe6, 0xe4,
+ 0xf5, 0x13, 0x9a, 0x08, 0x09, 0x99, 0x2e, 0xb0, 0x3f, 0x75, 0xaa, 0x88,
+ 0xf2, 0xe1, 0x82, 0x5b,
+ 0x3f, 0x70, 0x17, 0x44, 0xad, 0xef, 0xa4, 0x91, 0xc5, 0xf5, 0x4c, 0x8e,
+ 0xe5, 0x95, 0xdb, 0x51,
+ 0xff, 0xc4, 0xb1, 0xbb, 0x94, 0xc0, 0xf0, 0xfd, 0x6a, 0x1e, 0xad, 0x5a,
+ 0x32, 0xf6, 0xbf, 0xee,
+ 0x7c, 0xdb, 0x98, 0x79, 0xdf, 0xb1, 0x0c, 0x49, 0x58, 0xe0, 0x4d, 0xe5,
+ 0x88, 0x53, 0x13, 0xec,
+ 0xbc, 0x6f, 0x3e, 0x86, 0xe6, 0x9e, 0x58, 0x25, 0xf7, 0x0b, 0xac, 0x31,
+ 0x5f, 0x30, 0x77, 0x53,
+ 0xb9, 0xe5, 0xca, 0x3e, 0x49, 0x53, 0x37, 0xe2, 0x3c, 0xdf, 0x4e, 0x58,
+ 0x3f, 0xda, 0x88, 0xe8,
+ 0x79, 0x51, 0x6c, 0xc1, 0x70, 0x7c, 0x63, 0x8e, 0x93, 0x34, 0xaf, 0x8c,
+ 0xe8, 0xb9, 0xec, 0x57,
+ 0xfa, 0x4e, 0x45, 0x03, 0x3b, 0x0d, 0x9f, 0x3a, 0xa1, 0xca, 0x4f, 0x33,
+ 0x52, 0x1c, 0x40, 0x55,
+ 0x3a, 0xfa, 0xe3, 0xfc, 0x02, 0x22, 0xcb, 0x56, 0x0e, 0x21, 0xae, 0xe7,
+ 0x85, 0x7f, 0x24, 0xea,
+ 0x17, 0xaa, 0xbb, 0xcd, 0x9c, 0x48, 0x5a, 0x66, 0x52, 0x9a, 0x50, 0x40,
+ 0x63, 0xc9, 0x2f, 0xc0,
+ 0xd7, 0x1e, 0x1d, 0x32, 0xa5, 0x67, 0x0e, 0x0a, 0xfd, 0x71, 0xb1, 0x94,
+ 0xb4, 0xaa, 0x4b, 0x7f,
+ 0x54, 0x01, 0x34, 0xf0, 0xee, 0x16, 0xf2, 0xbe, 0xcf, 0x8f, 0x51, 0x2b,
+ 0x0e, 0x0f, 0xe7, 0x7d,
+ 0x94, 0xb5, 0x92, 0x0f, 0xd7, 0x39, 0xa6, 0xd2, 0x60, 0x64, 0xb0, 0xff,
+ 0xd9, 0x6c, 0x83, 0xc2,
+ 0x91, 0x3f, 0x66, 0xb7, 0x78, 0xf4, 0xc9, 0x15, 0xab, 0xb0, 0x52, 0x96,
+ 0xb9, 0x86, 0x7c, 0x79,
+ 0x51, 0x8b, 0xc0, 0x48, 0x41, 0xdb, 0x9d, 0x79, 0x04, 0x5b, 0xb3, 0x42,
+ 0x6e, 0xe5, 0x18, 0xc6,
+ 0xd2, 0x94, 0xe9, 0x8a, 0x0a, 0xaa, 0x61, 0xcd, 0x36, 0xa5, 0x53, 0xfd,
+ 0xd4, 0x40, 0xb4, 0xc4,
+ 0x12, 0x20, 0x4f, 0x75, 0x33, 0x85, 0x35, 0xa1, 0x99, 0x4e, 0xb2, 0x29,
+ 0x03, 0x23, 0xd0, 0x7b,
+ 0xd8, 0x43, 0xc2, 0x39, 0x97, 0xf3, 0xbf, 0x80, 0x63, 0xce, 0x54, 0x2f,
+ 0x14, 0x57, 0x89, 0x71,
+ 0x18, 0xf7, 0x64, 0xc6, 0xae, 0xdc, 0xeb, 0xec, 0xcc, 0x25, 0xb5, 0xfb,
+ 0xc3, 0x34, 0xed, 0xce,
+ 0x9b, 0xe8, 0x4d, 0x04, 0xe5, 0xad, 0x17, 0x58, 0xfe, 0xdb, 0x55, 0x44,
+ 0x79, 0x91, 0x41, 0xcc,
+ 0x5b, 0x5c, 0xeb, 0xfb, 0xdc, 0x82, 0x43, 0x34, 0x51, 0x30, 0xb4, 0x90,
+ 0xae, 0xf2, 0x25, 0x73,
+ 0x5e, 0xd6, 0x1f, 0x43, 0x73, 0x4f, 0x2c, 0xf3, 0x9a, 0xe4, 0x56, 0xf9,
+ 0xce, 0x18, 0xda, 0xc8,
+ 0x9e, 0x62, 0xb9, 0xbc, 0x4a, 0x60, 0x78, 0x9f, 0x35, 0x0f, 0xb7, 0x2d,
+ 0x19, 0x7b, 0xbe, 0x77,
+ 0x1d, 0x7d, 0x90, 0x7e, 0x01, 0x11, 0x84, 0x2b, 0x07, 0xf1, 0x57, 0x92,
+ 0xa3, 0xde, 0x12, 0x75,
+ 0xdd, 0xc9, 0x36, 0x81, 0x38, 0x3e, 0xd0, 0x47, 0xa8, 0x1a, 0xb6, 0x46,
+ 0x74, 0xbd, 0x76, 0xca,
+ 0x4a, 0xbb, 0x49, 0xe6, 0x8a, 0xfd, 0x53, 0x69, 0x30, 0x32, 0x58, 0x9e,
+ 0x8d, 0x36, 0xa0, 0x61,
+ 0x8a, 0x0f, 0xef, 0x19, 0xb3, 0xd2, 0x07, 0x05, 0x9f, 0xd9, 0xb9, 0x4a,
+ 0x5a, 0x55, 0xc4, 0xde,
+ 0x09, 0x10, 0xc6, 0xdb, 0xf8, 0xa3, 0xfb, 0xb1, 0xad, 0x27, 0x59, 0xf5,
+ 0xe0, 0xf0, 0x68, 0xdc,
+ 0xc9, 0xa4, 0x60, 0x24, 0xc1, 0x8c, 0xaf, 0xdd, 0x02, 0xcc, 0xb8, 0x21,
+ 0x37, 0x93, 0x0c, 0x63,
+ 0xcc, 0x2e, 0x94, 0x9c, 0x6e, 0x41, 0xc0, 0x1a, 0xc9, 0x18, 0x5a, 0x48,
+ 0x57, 0x79, 0xf3, 0xd8,
+ 0x0c, 0x9a, 0x32, 0x63, 0x57, 0x6e, 0x94, 0x76, 0x66, 0xf3, 0xbb, 0x9c,
+ 0x80, 0x1a, 0x97, 0x67,
+ 0x8f, 0x85, 0x1b, 0xa1, 0x1c, 0x1f, 0x68, 0xc2, 0x54, 0x0d, 0x5b, 0x23,
+ 0x3a, 0xbf, 0x3b, 0x65,
+ 0x4f, 0x31, 0xbd, 0x5e, 0x25, 0x30, 0x3c, 0xae, 0xfb, 0xe6, 0xba, 0xf7,
+ 0xed, 0xdc, 0x5f, 0xda,
+ 0x85, 0x52, 0x30, 0x12, 0x81, 0x46, 0xb6, 0x8f, 0x01, 0x66, 0x5c, 0xf1,
+ 0xfa, 0xa8, 0x06, 0xd0,
+ 0x45, 0xe6, 0x96, 0xed, 0xb8, 0x69, 0xe2, 0xe3, 0xae, 0x8d, 0xbd, 0x25,
+ 0x2d, 0xcb, 0x62, 0x6f,
+ 0xc6, 0xf9, 0xbf, 0x2f, 0xf3, 0x18, 0x1e, 0x57, 0x9c, 0x73, 0x5d, 0x9a,
+ 0x97, 0x6e, 0xce, 0x6d,
+ 0x06, 0x4d, 0x19, 0xd0, 0xca, 0x37, 0x4a, 0x3b, 0x33, 0x98, 0xbc, 0x4e,
+ 0x40, 0x0d, 0xaa, 0xd2,
+ 0x03, 0xc7, 0xed, 0x68, 0x65, 0xfa, 0x25, 0xfc, 0xf8, 0x4c, 0x5e, 0x27,
+ 0x20, 0xe7, 0x55, 0x69,
+ 0xc3, 0x73, 0x4b, 0x97, 0x5c, 0xd5, 0x71, 0x90, 0x57, 0xa7, 0xbf, 0xf3,
+ 0xf7, 0x84, 0x31, 0xd6,
+ 0x40, 0x6c, 0x62, 0x55, 0x17, 0xa4, 0x8d, 0x24, 0x65, 0x59, 0x5f, 0x4c,
+ 0x4d, 0x21, 0x9d, 0xd4,
+ 0x80, 0xd8, 0xc4, 0xaa, 0x2e, 0x8b, 0xd9, 0x48, 0xca, 0xb2, 0xbe, 0x98,
+ 0x9a, 0x42, 0xf9, 0x6b,
+ 0x1a, 0xcc, 0xd2, 0x37, 0xe8, 0x70, 0x6c, 0x44, 0xdd, 0xec, 0x60, 0xc1,
+ 0x42, 0x8e, 0x8b, 0x80,
+ 0xda, 0x78, 0x74, 0xc8, 0xd1, 0x5f, 0x38, 0x28, 0x72, 0x07, 0x81, 0x15,
+ 0x95, 0xed, 0xef, 0x3f,
+ 0x59, 0x67, 0x5d, 0x0a, 0x9a, 0x2e, 0xc4, 0x9c, 0x40, 0xf9, 0x61, 0xaa,
+ 0x2f, 0x48, 0x43, 0x3d,
+ 0x99, 0xd3, 0xfb, 0xf5, 0xa3, 0x01, 0x90, 0xf0, 0xef, 0x12, 0x80, 0x7e,
+ 0xf8, 0x2b, 0x27, 0x82,
+ 0x9c, 0x59, 0x0f, 0x4d, 0x0c, 0xcc, 0xff, 0x37, 0x24, 0xc6, 0x62, 0x17,
+ 0x98, 0xc1, 0xd8, 0x39,
+ 0x5c, 0xed, 0xa9, 0xb2, 0x35, 0xe3, 0xab, 0x5b, 0x8b, 0x2d, 0x83, 0xc3,
+ 0x4f, 0xa2, 0xbc, 0x86,
+ 0xdf, 0xf2, 0x80, 0x70, 0x7e, 0x92, 0x57, 0xef, 0xb9, 0xd3, 0x63, 0x7c,
+ 0xf5, 0x07, 0x10, 0x84,
+ 0x1f, 0x46, 0x26, 0x8f, 0x47, 0xbd, 0x03, 0x83, 0x16, 0x38, 0x82, 0xa8,
+ 0x22, 0x64, 0x74, 0x3b,
+ 0xd5, 0x25, 0xab, 0xc3, 0xe3, 0xcb, 0x89, 0xa2, 0xec, 0xb8, 0x64, 0xae,
+ 0x35, 0x10, 0x2d, 0x31,
+ 0x15, 0x91, 0x0d, 0x3c, 0xda, 0xe4, 0xdd, 0xce, 0x43, 0x53, 0x85, 0x7a,
+ 0xe2, 0x73, 0x49, 0x8e,
+ 0x96, 0x8e, 0x24, 0xfe, 0x91, 0x95, 0x21, 0x7a, 0x71, 0xad, 0x65, 0xc5,
+ 0x58, 0xd6, 0xe5, 0x8c,
+ 0x56, 0x3a, 0x82, 0x01, 0xa8, 0xba, 0x75, 0x16, 0xde, 0x46, 0x84, 0x11,
+ 0x8f, 0xb5, 0x81, 0x33,
+ 0x53, 0xb0, 0x76, 0xb9, 0x07, 0x77, 0x1a, 0xd1, 0x15, 0x92, 0x66, 0x78,
+ 0xef, 0x5f, 0x7e, 0x88,
+ 0x93, 0x04, 0xd0, 0x46, 0x3e, 0x58, 0x4e, 0xbd, 0xba, 0x79, 0x87, 0xac,
+ 0x38, 0x3c, 0x1a, 0x37,
+ 0x10, 0x1b, 0xf9, 0x84, 0x75, 0x29, 0xb2, 0x09, 0x88, 0x87, 0x67, 0x13,
+ 0x82, 0x99, 0xb6, 0x35,
+ 0xd0, 0xaf, 0x5f, 0x7b, 0x4c, 0x06, 0xe6, 0x65, 0x27, 0x6c, 0x86, 0xc7,
+ 0x55, 0xfa, 0xd2, 0x8a,
+ 0x47, 0xdd, 0x20, 0x1c, 0xfe, 0xc5, 0x65, 0x4b, 0xbf, 0x44, 0x68, 0x1f,
+ 0xac, 0x71, 0x04, 0x21,
+ 0x87, 0x69, 0x86, 0xe3, 0xc7, 0xea, 0x31, 0x27, 0x10, 0xaf, 0x89, 0xcb,
+ 0x7b, 0x12, 0x60, 0x9e,
+ 0x04, 0x76, 0xaf, 0x21, 0x8c, 0x9b, 0xcd, 0x93, 0x22, 0x51, 0x69, 0x74,
+ 0xc1, 0xb7, 0xcc, 0x9c,
+ 0xc4, 0xc2, 0x09, 0xde, 0xb5, 0xb4, 0x99, 0xff, 0x8d, 0xba, 0x88, 0xa0,
+ 0x16, 0xd4, 0xa8, 0x23,
+ 0xc1, 0x48, 0xfd, 0x66, 0x1a, 0x79, 0xf6, 0x38, 0x46, 0x6e, 0x6a, 0xc9,
+ 0x76, 0x3e, 0x57, 0x98,
+ 0x01, 0xfc, 0x5b, 0x99, 0x23, 0x56, 0xa2, 0x54, 0xe9, 0x85, 0x8b, 0x1d,
+ 0xa1, 0x5d, 0x33, 0x27,
+ 0x82, 0xe3, 0x72, 0x5b, 0x68, 0x27, 0x5e, 0xe0, 0xdb, 0x7b, 0x6b, 0xa2,
+ 0x1b, 0xf8, 0x9f, 0x25,
+ 0x42, 0x57, 0xd4, 0xa4, 0x51, 0x08, 0x0a, 0x8c, 0x74, 0x90, 0x8a, 0x76,
+ 0xcc, 0x9b, 0xfb, 0x9a,
+ 0x88, 0x34, 0x59, 0xe8, 0xf5, 0x7e, 0x80, 0xad, 0x8e, 0x10, 0x6c, 0x70,
+ 0xdb, 0xef, 0xa2, 0x90,
+ 0x48, 0x80, 0xff, 0x17, 0xcc, 0x51, 0xd4, 0xc1, 0x21, 0xfb, 0x8d, 0xa4,
+ 0x0c, 0x8c, 0xc6, 0x2f,
+ 0xcb, 0x9f, 0xd6, 0xd5, 0x87, 0x20, 0x28, 0x75, 0x13, 0x05, 0x6d, 0x1b,
+ 0xb6, 0x29, 0x6a, 0x2d,
+ 0x0b, 0x2b, 0x70, 0x2a, 0xbe, 0x0f, 0x7c, 0x19, 0xbc, 0xee, 0x8c, 0xcf,
+ 0x61, 0x4a, 0x0e, 0x92,
+ 0x0e, 0xa1, 0x84, 0x92, 0x11, 0xc2, 0x13, 0xde, 0x77, 0x3a, 0x6e, 0xa6,
+ 0x01, 0xa0, 0xf1, 0x29,
+ 0xce, 0x15, 0x22, 0x6d, 0x28, 0xed, 0x47, 0xb2, 0xd8, 0xd1, 0x8f, 0x72,
+ 0xd6, 0xc3, 0x95, 0x96,
+ 0x4d, 0x0a, 0x0b, 0xaf, 0x63, 0x9c, 0xbb, 0x06, 0xea, 0x2f, 0x6f, 0xcd,
+ 0x6c, 0x66, 0x39, 0x94,
+ 0x8d, 0xbe, 0xad, 0x50, 0x5a, 0xb3, 0xef, 0x6a, 0x45, 0xc4, 0x8e, 0x19,
+ 0xbb, 0x05, 0x5d, 0x2b,
+ 0xa0, 0xee, 0xf5, 0x61, 0xc4, 0xd9, 0x7e, 0x5a, 0x19, 0x7f, 0x70, 0xbe,
+ 0x5d, 0xb3, 0x56, 0x01,
+ 0x60, 0x5a, 0x53, 0x9e, 0xfd, 0xf6, 0x2a, 0x36, 0xb6, 0x94, 0x91, 0x6a,
+ 0x8a, 0xd0, 0x32, 0xbe,
+ 0xe3, 0x45, 0x7a, 0x5c, 0xb6, 0x87, 0xd6, 0x82, 0x84, 0x6a, 0x71, 0xd5,
+ 0x30, 0x75, 0x9e, 0xbc,
+ 0x23, 0xf1, 0xdc, 0xa3, 0x8f, 0xa8, 0x82, 0xee, 0x2b, 0x81, 0x90, 0x01,
+ 0xe7, 0x16, 0xfa, 0x03,
+ 0x26, 0x7b, 0x28, 0x1b, 0x20, 0x65, 0xed, 0x29, 0xe0, 0x55, 0x72, 0x68,
+ 0x87, 0xfc, 0x05, 0xb8,
+ 0xe6, 0xcf, 0x8e, 0xe4, 0x19, 0x4a, 0xb9, 0x45, 0x4f, 0xbe, 0x93, 0xbc,
+ 0x50, 0x9f, 0x61, 0x07,
+ 0x65, 0xd0, 0xa7, 0x26, 0x52, 0x3b, 0x45, 0xf1, 0x7d, 0x40, 0x73, 0x03,
+ 0xea, 0x3a, 0xcd, 0x05,
+ 0xa5, 0x64, 0x01, 0xd9, 0x6b, 0x14, 0x11, 0x9d, 0xd2, 0xab, 0x92, 0xd7,
+ 0x3d, 0x59, 0xa9, 0xba,
+ 0x6f, 0x07, 0x8c, 0x95, 0xcf, 0x62, 0x9b, 0xbc, 0x28, 0x2b, 0x74, 0xd1,
+ 0x2a, 0x2d, 0xf0, 0xb0,
+ 0xaf, 0xb3, 0x2a, 0x6a, 0xf6, 0x4d, 0xcf, 0xd0, 0x87, 0xc0, 0x95, 0x05,
+ 0xfd, 0x4e, 0x94, 0x0f,
+ 0x2c, 0xac, 0x03, 0xa8, 0xbd, 0x3c, 0x33, 0x64, 0xb5, 0x3e, 0x75, 0xba,
+ 0x47, 0xeb, 0x38, 0x0d,
+ 0xec, 0x18, 0xa5, 0x57, 0x84, 0x13, 0x67, 0x08, 0x1a, 0xd5, 0x94, 0x6e,
+ 0x90, 0x88, 0x5c, 0xb2,
+ 0xe9, 0x92, 0x51, 0xef, 0x2b, 0xde, 0x08, 0xcf, 0xd1, 0x01, 0x76, 0x07,
+ 0xf0, 0x62, 0xa3, 0x09,
+ 0x29, 0x26, 0xf7, 0x10, 0x12, 0xf1, 0x5c, 0xa3, 0x7e, 0xea, 0x97, 0xd3,
+ 0x27, 0x01, 0xc7, 0xb6,
+ 0xaa, 0x39, 0xde, 0xd2, 0x59, 0x80, 0xa0, 0x17, 0x4c, 0x14, 0x77, 0x6c,
+ 0x9d, 0xa4, 0x6b, 0xb4,
+ 0x6a, 0x8d, 0x78, 0x2d, 0x60, 0xaf, 0xf4, 0x7b, 0xe3, 0xff, 0x96, 0xb8,
+ 0x4a, 0xc7, 0x0f, 0x0b,
+ 0xfd, 0xff, 0x07, 0x4a, 0xd2, 0x6c, 0x77, 0x55, 0x7b, 0xd7, 0x78, 0x60,
+ 0xb3, 0x4c, 0xd9, 0xa0,
+ 0x3d, 0x4b, 0xa1, 0xb5, 0xeb, 0x43, 0x23, 0x39, 0xd4, 0x3c, 0x99, 0xb4,
+ 0x64, 0x2f, 0xbd, 0x1f,
+ 0xbe, 0x54, 0x88, 0x77, 0xa0, 0x32, 0xdf, 0x8d, 0xe6, 0xc2, 0x79, 0x0b,
+ 0xde, 0x8a, 0x11, 0x1d,
+ 0x7e, 0xe0, 0x2e, 0x88, 0x99, 0x1d, 0x8b, 0xe1, 0x49, 0x29, 0x98, 0xdf,
+ 0x09, 0xe9, 0x75, 0xa2,
+ 0x7b, 0x6a, 0xda, 0x30, 0x36, 0xd0, 0xe4, 0x26, 0x82, 0xfd, 0x7a, 0xb6,
+ 0x69, 0x03, 0x8a, 0x19,
+ 0xbb, 0xde, 0x7c, 0xcf, 0x0f, 0xff, 0xb0, 0x4a, 0x2d, 0x16, 0x9b, 0x62,
+ 0xbe, 0x60, 0xee, 0xa6,
+ 0x38, 0xc1, 0x55, 0x0d, 0x44, 0x8e, 0x4c, 0xfe, 0x1f, 0xe8, 0x7b, 0xdd,
+ 0x04, 0xc5, 0x42, 0xa4,
+ 0xf8, 0x75, 0xf3, 0xf2, 0x7d, 0xa1, 0x18, 0x92, 0xb0, 0x03, 0x9a, 0x09,
+ 0xd3, 0xa6, 0x26, 0x1b,
+ 0x32, 0x16, 0x7e, 0xbe, 0xd9, 0xd7, 0x92, 0xb3, 0x4a, 0x83, 0x7c, 0x0f,
+ 0xc4, 0xd2, 0x7f, 0x11,
+ 0xf2, 0xa2, 0xd8, 0x41, 0xe0, 0xf8, 0xc6, 0xdf, 0xe5, 0x68, 0x9d, 0xdb,
+ 0x13, 0xb1, 0x1b, 0xae,
+ 0x71, 0xbd, 0xf1, 0x83, 0xab, 0x89, 0x3a, 0x6b, 0xd7, 0x96, 0x7d, 0x64,
+ 0xa9, 0x14, 0xb7, 0xac,
+ 0xb1, 0x09, 0x57, 0x7c, 0x92, 0xa6, 0x6e, 0x07, 0x78, 0x7d, 0x9c, 0xb0,
+ 0x7e, 0x77, 0xd3, 0x13,
+ 0xb4, 0x83, 0xa3, 0xc4, 0x3d, 0x6b, 0x01, 0xc0, 0xb3, 0xa9, 0x7e, 0xd9,
+ 0x1e, 0x9d, 0x2c, 0xa8,
+ 0x74, 0x37, 0x05, 0x3b, 0x04, 0x44, 0x55, 0xac, 0x1c, 0x42, 0x9f, 0x0d,
+ 0xc9, 0xfe, 0x48, 0x17,
+ 0xf7, 0x28, 0x2c, 0xf9, 0x4f, 0x35, 0xa9, 0x18, 0x2e, 0xbc, 0x7f, 0xb2,
+ 0x73, 0x5b, 0xe4, 0x15,
+ 0x37, 0x9c, 0x8a, 0x06, 0x76, 0x1a, 0xfd, 0x74, 0x81, 0x57, 0x9e, 0x66,
+ 0xa4, 0x38, 0x80, 0xaa,
+ },
+ { /* 7 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x54, 0x30, 0x7b, 0xef, 0x84, 0x08, 0x09, 0xd4, 0xd5, 0xa3, 0x8d,
+ 0xa6, 0xa1, 0xc1, 0x0a,
+ 0x02, 0xa8, 0x60, 0xf6, 0x1d, 0xcb, 0x10, 0x12, 0x6b, 0x69, 0x85, 0xd9,
+ 0x8f, 0x81, 0x41, 0x14,
+ 0x03, 0xfc, 0x50, 0x8d, 0xf2, 0x4f, 0x18, 0x1b, 0xbf, 0xbc, 0x26, 0x54,
+ 0x29, 0x20, 0x80, 0x1e,
+ 0x04, 0x93, 0xc0, 0x2f, 0x3a, 0x55, 0x20, 0x24, 0xd6, 0xd2, 0xc9, 0x71,
+ 0xdd, 0xc1, 0x82, 0x28,
+ 0x05, 0xc7, 0xf0, 0x54, 0xd5, 0xd1, 0x28, 0x2d, 0x02, 0x07, 0x6a, 0xfc,
+ 0x7b, 0x60, 0x43, 0x22,
+ 0x06, 0x3b, 0xa0, 0xd9, 0x27, 0x9e, 0x30, 0x36, 0xbd, 0xbb, 0x4c, 0xa8,
+ 0x52, 0x40, 0xc3, 0x3c,
+ 0x07, 0x6f, 0x90, 0xa2, 0xc8, 0x1a, 0x38, 0x3f, 0x69, 0x6e, 0xef, 0x25,
+ 0xf4, 0xe1, 0x02, 0x36,
+ 0x08, 0xe5, 0x43, 0x5e, 0x74, 0xaa, 0x40, 0x48, 0x6f, 0x67, 0x51, 0xe2,
+ 0x79, 0x41, 0xc7, 0x50,
+ 0x09, 0xb1, 0x73, 0x25, 0x9b, 0x2e, 0x48, 0x41, 0xbb, 0xb2, 0xf2, 0x6f,
+ 0xdf, 0xe0, 0x06, 0x5a,
+ 0x0a, 0x4d, 0x23, 0xa8, 0x69, 0x61, 0x50, 0x5a, 0x04, 0x0e, 0xd4, 0x3b,
+ 0xf6, 0xc0, 0x86, 0x44,
+ 0x0b, 0x19, 0x13, 0xd3, 0x86, 0xe5, 0x58, 0x53, 0xd0, 0xdb, 0x77, 0xb6,
+ 0x50, 0x61, 0x47, 0x4e,
+ 0x0c, 0x76, 0x83, 0x71, 0x4e, 0xff, 0x60, 0x6c, 0xb9, 0xb5, 0x98, 0x93,
+ 0xa4, 0x80, 0x45, 0x78,
+ 0x0d, 0x22, 0xb3, 0x0a, 0xa1, 0x7b, 0x68, 0x65, 0x6d, 0x60, 0x3b, 0x1e,
+ 0x02, 0x21, 0x84, 0x72,
+ 0x0e, 0xde, 0xe3, 0x87, 0x53, 0x34, 0x70, 0x7e, 0xd2, 0xdc, 0x1d, 0x4a,
+ 0x2b, 0x01, 0x04, 0x6c,
+ 0x0f, 0x8a, 0xd3, 0xfc, 0xbc, 0xb0, 0x78, 0x77, 0x06, 0x09, 0xbe, 0xc7,
+ 0x8d, 0xa0, 0xc5, 0x66,
+ 0x10, 0x09, 0x86, 0xbc, 0xe8, 0x97, 0x80, 0x90, 0xde, 0xce, 0xa2, 0x07,
+ 0xf2, 0x82, 0x4d, 0xa0,
+ 0x11, 0x5d, 0xb6, 0xc7, 0x07, 0x13, 0x88, 0x99, 0x0a, 0x1b, 0x01, 0x8a,
+ 0x54, 0x23, 0x8c, 0xaa,
+ 0x12, 0xa1, 0xe6, 0x4a, 0xf5, 0x5c, 0x90, 0x82, 0xb5, 0xa7, 0x27, 0xde,
+ 0x7d, 0x03, 0x0c, 0xb4,
+ 0x13, 0xf5, 0xd6, 0x31, 0x1a, 0xd8, 0x98, 0x8b, 0x61, 0x72, 0x84, 0x53,
+ 0xdb, 0xa2, 0xcd, 0xbe,
+ 0x14, 0x9a, 0x46, 0x93, 0xd2, 0xc2, 0xa0, 0xb4, 0x08, 0x1c, 0x6b, 0x76,
+ 0x2f, 0x43, 0xcf, 0x88,
+ 0x15, 0xce, 0x76, 0xe8, 0x3d, 0x46, 0xa8, 0xbd, 0xdc, 0xc9, 0xc8, 0xfb,
+ 0x89, 0xe2, 0x0e, 0x82,
+ 0x16, 0x32, 0x26, 0x65, 0xcf, 0x09, 0xb0, 0xa6, 0x63, 0x75, 0xee, 0xaf,
+ 0xa0, 0xc2, 0x8e, 0x9c,
+ 0x17, 0x66, 0x16, 0x1e, 0x20, 0x8d, 0xb8, 0xaf, 0xb7, 0xa0, 0x4d, 0x22,
+ 0x06, 0x63, 0x4f, 0x96,
+ 0x18, 0xec, 0xc5, 0xe2, 0x9c, 0x3d, 0xc0, 0xd8, 0xb1, 0xa9, 0xf3, 0xe5,
+ 0x8b, 0xc3, 0x8a, 0xf0,
+ 0x19, 0xb8, 0xf5, 0x99, 0x73, 0xb9, 0xc8, 0xd1, 0x65, 0x7c, 0x50, 0x68,
+ 0x2d, 0x62, 0x4b, 0xfa,
+ 0x1a, 0x44, 0xa5, 0x14, 0x81, 0xf6, 0xd0, 0xca, 0xda, 0xc0, 0x76, 0x3c,
+ 0x04, 0x42, 0xcb, 0xe4,
+ 0x1b, 0x10, 0x95, 0x6f, 0x6e, 0x72, 0xd8, 0xc3, 0x0e, 0x15, 0xd5, 0xb1,
+ 0xa2, 0xe3, 0x0a, 0xee,
+ 0x1c, 0x7f, 0x05, 0xcd, 0xa6, 0x68, 0xe0, 0xfc, 0x67, 0x7b, 0x3a, 0x94,
+ 0x56, 0x02, 0x08, 0xd8,
+ 0x1d, 0x2b, 0x35, 0xb6, 0x49, 0xec, 0xe8, 0xf5, 0xb3, 0xae, 0x99, 0x19,
+ 0xf0, 0xa3, 0xc9, 0xd2,
+ 0x1e, 0xd7, 0x65, 0x3b, 0xbb, 0xa3, 0xf0, 0xee, 0x0c, 0x12, 0xbf, 0x4d,
+ 0xd9, 0x83, 0x49, 0xcc,
+ 0x1f, 0x83, 0x55, 0x40, 0x54, 0x27, 0xf8, 0xe7, 0xd8, 0xc7, 0x1c, 0xc0,
+ 0x7f, 0x22, 0x88, 0xc6,
+ 0x20, 0x12, 0xcf, 0xbb, 0x13, 0xed, 0xc3, 0xe3, 0x7f, 0x5f, 0x87, 0x0e,
+ 0x27, 0xc7, 0x9a, 0x83,
+ 0x21, 0x46, 0xff, 0xc0, 0xfc, 0x69, 0xcb, 0xea, 0xab, 0x8a, 0x24, 0x83,
+ 0x81, 0x66, 0x5b, 0x89,
+ 0x22, 0xba, 0xaf, 0x4d, 0x0e, 0x26, 0xd3, 0xf1, 0x14, 0x36, 0x02, 0xd7,
+ 0xa8, 0x46, 0xdb, 0x97,
+ 0x23, 0xee, 0x9f, 0x36, 0xe1, 0xa2, 0xdb, 0xf8, 0xc0, 0xe3, 0xa1, 0x5a,
+ 0x0e, 0xe7, 0x1a, 0x9d,
+ 0x24, 0x81, 0x0f, 0x94, 0x29, 0xb8, 0xe3, 0xc7, 0xa9, 0x8d, 0x4e, 0x7f,
+ 0xfa, 0x06, 0x18, 0xab,
+ 0x25, 0xd5, 0x3f, 0xef, 0xc6, 0x3c, 0xeb, 0xce, 0x7d, 0x58, 0xed, 0xf2,
+ 0x5c, 0xa7, 0xd9, 0xa1,
+ 0x26, 0x29, 0x6f, 0x62, 0x34, 0x73, 0xf3, 0xd5, 0xc2, 0xe4, 0xcb, 0xa6,
+ 0x75, 0x87, 0x59, 0xbf,
+ 0x27, 0x7d, 0x5f, 0x19, 0xdb, 0xf7, 0xfb, 0xdc, 0x16, 0x31, 0x68, 0x2b,
+ 0xd3, 0x26, 0x98, 0xb5,
+ 0x28, 0xf7, 0x8c, 0xe5, 0x67, 0x47, 0x83, 0xab, 0x10, 0x38, 0xd6, 0xec,
+ 0x5e, 0x86, 0x5d, 0xd3,
+ 0x29, 0xa3, 0xbc, 0x9e, 0x88, 0xc3, 0x8b, 0xa2, 0xc4, 0xed, 0x75, 0x61,
+ 0xf8, 0x27, 0x9c, 0xd9,
+ 0x2a, 0x5f, 0xec, 0x13, 0x7a, 0x8c, 0x93, 0xb9, 0x7b, 0x51, 0x53, 0x35,
+ 0xd1, 0x07, 0x1c, 0xc7,
+ 0x2b, 0x0b, 0xdc, 0x68, 0x95, 0x08, 0x9b, 0xb0, 0xaf, 0x84, 0xf0, 0xb8,
+ 0x77, 0xa6, 0xdd, 0xcd,
+ 0x2c, 0x64, 0x4c, 0xca, 0x5d, 0x12, 0xa3, 0x8f, 0xc6, 0xea, 0x1f, 0x9d,
+ 0x83, 0x47, 0xdf, 0xfb,
+ 0x2d, 0x30, 0x7c, 0xb1, 0xb2, 0x96, 0xab, 0x86, 0x12, 0x3f, 0xbc, 0x10,
+ 0x25, 0xe6, 0x1e, 0xf1,
+ 0x2e, 0xcc, 0x2c, 0x3c, 0x40, 0xd9, 0xb3, 0x9d, 0xad, 0x83, 0x9a, 0x44,
+ 0x0c, 0xc6, 0x9e, 0xef,
+ 0x2f, 0x98, 0x1c, 0x47, 0xaf, 0x5d, 0xbb, 0x94, 0x79, 0x56, 0x39, 0xc9,
+ 0xaa, 0x67, 0x5f, 0xe5,
+ 0x30, 0x1b, 0x49, 0x07, 0xfb, 0x7a, 0x43, 0x73, 0xa1, 0x91, 0x25, 0x09,
+ 0xd5, 0x45, 0xd7, 0x23,
+ 0x31, 0x4f, 0x79, 0x7c, 0x14, 0xfe, 0x4b, 0x7a, 0x75, 0x44, 0x86, 0x84,
+ 0x73, 0xe4, 0x16, 0x29,
+ 0x32, 0xb3, 0x29, 0xf1, 0xe6, 0xb1, 0x53, 0x61, 0xca, 0xf8, 0xa0, 0xd0,
+ 0x5a, 0xc4, 0x96, 0x37,
+ 0x33, 0xe7, 0x19, 0x8a, 0x09, 0x35, 0x5b, 0x68, 0x1e, 0x2d, 0x03, 0x5d,
+ 0xfc, 0x65, 0x57, 0x3d,
+ 0x34, 0x88, 0x89, 0x28, 0xc1, 0x2f, 0x63, 0x57, 0x77, 0x43, 0xec, 0x78,
+ 0x08, 0x84, 0x55, 0x0b,
+ 0x35, 0xdc, 0xb9, 0x53, 0x2e, 0xab, 0x6b, 0x5e, 0xa3, 0x96, 0x4f, 0xf5,
+ 0xae, 0x25, 0x94, 0x01,
+ 0x36, 0x20, 0xe9, 0xde, 0xdc, 0xe4, 0x73, 0x45, 0x1c, 0x2a, 0x69, 0xa1,
+ 0x87, 0x05, 0x14, 0x1f,
+ 0x37, 0x74, 0xd9, 0xa5, 0x33, 0x60, 0x7b, 0x4c, 0xc8, 0xff, 0xca, 0x2c,
+ 0x21, 0xa4, 0xd5, 0x15,
+ 0x38, 0xfe, 0x0a, 0x59, 0x8f, 0xd0, 0x03, 0x3b, 0xce, 0xf6, 0x74, 0xeb,
+ 0xac, 0x04, 0x10, 0x73,
+ 0x39, 0xaa, 0x3a, 0x22, 0x60, 0x54, 0x0b, 0x32, 0x1a, 0x23, 0xd7, 0x66,
+ 0x0a, 0xa5, 0xd1, 0x79,
+ 0x3a, 0x56, 0x6a, 0xaf, 0x92, 0x1b, 0x13, 0x29, 0xa5, 0x9f, 0xf1, 0x32,
+ 0x23, 0x85, 0x51, 0x67,
+ 0x3b, 0x02, 0x5a, 0xd4, 0x7d, 0x9f, 0x1b, 0x20, 0x71, 0x4a, 0x52, 0xbf,
+ 0x85, 0x24, 0x90, 0x6d,
+ 0x3c, 0x6d, 0xca, 0x76, 0xb5, 0x85, 0x23, 0x1f, 0x18, 0x24, 0xbd, 0x9a,
+ 0x71, 0xc5, 0x92, 0x5b,
+ 0x3d, 0x39, 0xfa, 0x0d, 0x5a, 0x01, 0x2b, 0x16, 0xcc, 0xf1, 0x1e, 0x17,
+ 0xd7, 0x64, 0x53, 0x51,
+ 0x3e, 0xc5, 0xaa, 0x80, 0xa8, 0x4e, 0x33, 0x0d, 0x73, 0x4d, 0x38, 0x43,
+ 0xfe, 0x44, 0xd3, 0x4f,
+ 0x3f, 0x91, 0x9a, 0xfb, 0x47, 0xca, 0x3b, 0x04, 0xa7, 0x98, 0x9b, 0xce,
+ 0x58, 0xe5, 0x12, 0x45,
+ 0x40, 0x24, 0x5d, 0xb5, 0x26, 0x19, 0x45, 0x05, 0xfe, 0xbe, 0xcd, 0x1c,
+ 0x4e, 0x4d, 0xf7, 0xc5,
+ 0x41, 0x70, 0x6d, 0xce, 0xc9, 0x9d, 0x4d, 0x0c, 0x2a, 0x6b, 0x6e, 0x91,
+ 0xe8, 0xec, 0x36, 0xcf,
+ 0x42, 0x8c, 0x3d, 0x43, 0x3b, 0xd2, 0x55, 0x17, 0x95, 0xd7, 0x48, 0xc5,
+ 0xc1, 0xcc, 0xb6, 0xd1,
+ 0x43, 0xd8, 0x0d, 0x38, 0xd4, 0x56, 0x5d, 0x1e, 0x41, 0x02, 0xeb, 0x48,
+ 0x67, 0x6d, 0x77, 0xdb,
+ 0x44, 0xb7, 0x9d, 0x9a, 0x1c, 0x4c, 0x65, 0x21, 0x28, 0x6c, 0x04, 0x6d,
+ 0x93, 0x8c, 0x75, 0xed,
+ 0x45, 0xe3, 0xad, 0xe1, 0xf3, 0xc8, 0x6d, 0x28, 0xfc, 0xb9, 0xa7, 0xe0,
+ 0x35, 0x2d, 0xb4, 0xe7,
+ 0x46, 0x1f, 0xfd, 0x6c, 0x01, 0x87, 0x75, 0x33, 0x43, 0x05, 0x81, 0xb4,
+ 0x1c, 0x0d, 0x34, 0xf9,
+ 0x47, 0x4b, 0xcd, 0x17, 0xee, 0x03, 0x7d, 0x3a, 0x97, 0xd0, 0x22, 0x39,
+ 0xba, 0xac, 0xf5, 0xf3,
+ 0x48, 0xc1, 0x1e, 0xeb, 0x52, 0xb3, 0x05, 0x4d, 0x91, 0xd9, 0x9c, 0xfe,
+ 0x37, 0x0c, 0x30, 0x95,
+ 0x49, 0x95, 0x2e, 0x90, 0xbd, 0x37, 0x0d, 0x44, 0x45, 0x0c, 0x3f, 0x73,
+ 0x91, 0xad, 0xf1, 0x9f,
+ 0x4a, 0x69, 0x7e, 0x1d, 0x4f, 0x78, 0x15, 0x5f, 0xfa, 0xb0, 0x19, 0x27,
+ 0xb8, 0x8d, 0x71, 0x81,
+ 0x4b, 0x3d, 0x4e, 0x66, 0xa0, 0xfc, 0x1d, 0x56, 0x2e, 0x65, 0xba, 0xaa,
+ 0x1e, 0x2c, 0xb0, 0x8b,
+ 0x4c, 0x52, 0xde, 0xc4, 0x68, 0xe6, 0x25, 0x69, 0x47, 0x0b, 0x55, 0x8f,
+ 0xea, 0xcd, 0xb2, 0xbd,
+ 0x4d, 0x06, 0xee, 0xbf, 0x87, 0x62, 0x2d, 0x60, 0x93, 0xde, 0xf6, 0x02,
+ 0x4c, 0x6c, 0x73, 0xb7,
+ 0x4e, 0xfa, 0xbe, 0x32, 0x75, 0x2d, 0x35, 0x7b, 0x2c, 0x62, 0xd0, 0x56,
+ 0x65, 0x4c, 0xf3, 0xa9,
+ 0x4f, 0xae, 0x8e, 0x49, 0x9a, 0xa9, 0x3d, 0x72, 0xf8, 0xb7, 0x73, 0xdb,
+ 0xc3, 0xed, 0x32, 0xa3,
+ 0x50, 0x2d, 0xdb, 0x09, 0xce, 0x8e, 0xc5, 0x95, 0x20, 0x70, 0x6f, 0x1b,
+ 0xbc, 0xcf, 0xba, 0x65,
+ 0x51, 0x79, 0xeb, 0x72, 0x21, 0x0a, 0xcd, 0x9c, 0xf4, 0xa5, 0xcc, 0x96,
+ 0x1a, 0x6e, 0x7b, 0x6f,
+ 0x52, 0x85, 0xbb, 0xff, 0xd3, 0x45, 0xd5, 0x87, 0x4b, 0x19, 0xea, 0xc2,
+ 0x33, 0x4e, 0xfb, 0x71,
+ 0x53, 0xd1, 0x8b, 0x84, 0x3c, 0xc1, 0xdd, 0x8e, 0x9f, 0xcc, 0x49, 0x4f,
+ 0x95, 0xef, 0x3a, 0x7b,
+ 0x54, 0xbe, 0x1b, 0x26, 0xf4, 0xdb, 0xe5, 0xb1, 0xf6, 0xa2, 0xa6, 0x6a,
+ 0x61, 0x0e, 0x38, 0x4d,
+ 0x55, 0xea, 0x2b, 0x5d, 0x1b, 0x5f, 0xed, 0xb8, 0x22, 0x77, 0x05, 0xe7,
+ 0xc7, 0xaf, 0xf9, 0x47,
+ 0x56, 0x16, 0x7b, 0xd0, 0xe9, 0x10, 0xf5, 0xa3, 0x9d, 0xcb, 0x23, 0xb3,
+ 0xee, 0x8f, 0x79, 0x59,
+ 0x57, 0x42, 0x4b, 0xab, 0x06, 0x94, 0xfd, 0xaa, 0x49, 0x1e, 0x80, 0x3e,
+ 0x48, 0x2e, 0xb8, 0x53,
+ 0x58, 0xc8, 0x98, 0x57, 0xba, 0x24, 0x85, 0xdd, 0x4f, 0x17, 0x3e, 0xf9,
+ 0xc5, 0x8e, 0x7d, 0x35,
+ 0x59, 0x9c, 0xa8, 0x2c, 0x55, 0xa0, 0x8d, 0xd4, 0x9b, 0xc2, 0x9d, 0x74,
+ 0x63, 0x2f, 0xbc, 0x3f,
+ 0x5a, 0x60, 0xf8, 0xa1, 0xa7, 0xef, 0x95, 0xcf, 0x24, 0x7e, 0xbb, 0x20,
+ 0x4a, 0x0f, 0x3c, 0x21,
+ 0x5b, 0x34, 0xc8, 0xda, 0x48, 0x6b, 0x9d, 0xc6, 0xf0, 0xab, 0x18, 0xad,
+ 0xec, 0xae, 0xfd, 0x2b,
+ 0x5c, 0x5b, 0x58, 0x78, 0x80, 0x71, 0xa5, 0xf9, 0x99, 0xc5, 0xf7, 0x88,
+ 0x18, 0x4f, 0xff, 0x1d,
+ 0x5d, 0x0f, 0x68, 0x03, 0x6f, 0xf5, 0xad, 0xf0, 0x4d, 0x10, 0x54, 0x05,
+ 0xbe, 0xee, 0x3e, 0x17,
+ 0x5e, 0xf3, 0x38, 0x8e, 0x9d, 0xba, 0xb5, 0xeb, 0xf2, 0xac, 0x72, 0x51,
+ 0x97, 0xce, 0xbe, 0x09,
+ 0x5f, 0xa7, 0x08, 0xf5, 0x72, 0x3e, 0xbd, 0xe2, 0x26, 0x79, 0xd1, 0xdc,
+ 0x31, 0x6f, 0x7f, 0x03,
+ 0x60, 0x36, 0x92, 0x0e, 0x35, 0xf4, 0x86, 0xe6, 0x81, 0xe1, 0x4a, 0x12,
+ 0x69, 0x8a, 0x6d, 0x46,
+ 0x61, 0x62, 0xa2, 0x75, 0xda, 0x70, 0x8e, 0xef, 0x55, 0x34, 0xe9, 0x9f,
+ 0xcf, 0x2b, 0xac, 0x4c,
+ 0x62, 0x9e, 0xf2, 0xf8, 0x28, 0x3f, 0x96, 0xf4, 0xea, 0x88, 0xcf, 0xcb,
+ 0xe6, 0x0b, 0x2c, 0x52,
+ 0x63, 0xca, 0xc2, 0x83, 0xc7, 0xbb, 0x9e, 0xfd, 0x3e, 0x5d, 0x6c, 0x46,
+ 0x40, 0xaa, 0xed, 0x58,
+ 0x64, 0xa5, 0x52, 0x21, 0x0f, 0xa1, 0xa6, 0xc2, 0x57, 0x33, 0x83, 0x63,
+ 0xb4, 0x4b, 0xef, 0x6e,
+ 0x65, 0xf1, 0x62, 0x5a, 0xe0, 0x25, 0xae, 0xcb, 0x83, 0xe6, 0x20, 0xee,
+ 0x12, 0xea, 0x2e, 0x64,
+ 0x66, 0x0d, 0x32, 0xd7, 0x12, 0x6a, 0xb6, 0xd0, 0x3c, 0x5a, 0x06, 0xba,
+ 0x3b, 0xca, 0xae, 0x7a,
+ 0x67, 0x59, 0x02, 0xac, 0xfd, 0xee, 0xbe, 0xd9, 0xe8, 0x8f, 0xa5, 0x37,
+ 0x9d, 0x6b, 0x6f, 0x70,
+ 0x68, 0xd3, 0xd1, 0x50, 0x41, 0x5e, 0xc6, 0xae, 0xee, 0x86, 0x1b, 0xf0,
+ 0x10, 0xcb, 0xaa, 0x16,
+ 0x69, 0x87, 0xe1, 0x2b, 0xae, 0xda, 0xce, 0xa7, 0x3a, 0x53, 0xb8, 0x7d,
+ 0xb6, 0x6a, 0x6b, 0x1c,
+ 0x6a, 0x7b, 0xb1, 0xa6, 0x5c, 0x95, 0xd6, 0xbc, 0x85, 0xef, 0x9e, 0x29,
+ 0x9f, 0x4a, 0xeb, 0x02,
+ 0x6b, 0x2f, 0x81, 0xdd, 0xb3, 0x11, 0xde, 0xb5, 0x51, 0x3a, 0x3d, 0xa4,
+ 0x39, 0xeb, 0x2a, 0x08,
+ 0x6c, 0x40, 0x11, 0x7f, 0x7b, 0x0b, 0xe6, 0x8a, 0x38, 0x54, 0xd2, 0x81,
+ 0xcd, 0x0a, 0x28, 0x3e,
+ 0x6d, 0x14, 0x21, 0x04, 0x94, 0x8f, 0xee, 0x83, 0xec, 0x81, 0x71, 0x0c,
+ 0x6b, 0xab, 0xe9, 0x34,
+ 0x6e, 0xe8, 0x71, 0x89, 0x66, 0xc0, 0xf6, 0x98, 0x53, 0x3d, 0x57, 0x58,
+ 0x42, 0x8b, 0x69, 0x2a,
+ 0x6f, 0xbc, 0x41, 0xf2, 0x89, 0x44, 0xfe, 0x91, 0x87, 0xe8, 0xf4, 0xd5,
+ 0xe4, 0x2a, 0xa8, 0x20,
+ 0x70, 0x3f, 0x14, 0xb2, 0xdd, 0x63, 0x06, 0x76, 0x5f, 0x2f, 0xe8, 0x15,
+ 0x9b, 0x08, 0x20, 0xe6,
+ 0x71, 0x6b, 0x24, 0xc9, 0x32, 0xe7, 0x0e, 0x7f, 0x8b, 0xfa, 0x4b, 0x98,
+ 0x3d, 0xa9, 0xe1, 0xec,
+ 0x72, 0x97, 0x74, 0x44, 0xc0, 0xa8, 0x16, 0x64, 0x34, 0x46, 0x6d, 0xcc,
+ 0x14, 0x89, 0x61, 0xf2,
+ 0x73, 0xc3, 0x44, 0x3f, 0x2f, 0x2c, 0x1e, 0x6d, 0xe0, 0x93, 0xce, 0x41,
+ 0xb2, 0x28, 0xa0, 0xf8,
+ 0x74, 0xac, 0xd4, 0x9d, 0xe7, 0x36, 0x26, 0x52, 0x89, 0xfd, 0x21, 0x64,
+ 0x46, 0xc9, 0xa2, 0xce,
+ 0x75, 0xf8, 0xe4, 0xe6, 0x08, 0xb2, 0x2e, 0x5b, 0x5d, 0x28, 0x82, 0xe9,
+ 0xe0, 0x68, 0x63, 0xc4,
+ 0x76, 0x04, 0xb4, 0x6b, 0xfa, 0xfd, 0x36, 0x40, 0xe2, 0x94, 0xa4, 0xbd,
+ 0xc9, 0x48, 0xe3, 0xda,
+ 0x77, 0x50, 0x84, 0x10, 0x15, 0x79, 0x3e, 0x49, 0x36, 0x41, 0x07, 0x30,
+ 0x6f, 0xe9, 0x22, 0xd0,
+ 0x78, 0xda, 0x57, 0xec, 0xa9, 0xc9, 0x46, 0x3e, 0x30, 0x48, 0xb9, 0xf7,
+ 0xe2, 0x49, 0xe7, 0xb6,
+ 0x79, 0x8e, 0x67, 0x97, 0x46, 0x4d, 0x4e, 0x37, 0xe4, 0x9d, 0x1a, 0x7a,
+ 0x44, 0xe8, 0x26, 0xbc,
+ 0x7a, 0x72, 0x37, 0x1a, 0xb4, 0x02, 0x56, 0x2c, 0x5b, 0x21, 0x3c, 0x2e,
+ 0x6d, 0xc8, 0xa6, 0xa2,
+ 0x7b, 0x26, 0x07, 0x61, 0x5b, 0x86, 0x5e, 0x25, 0x8f, 0xf4, 0x9f, 0xa3,
+ 0xcb, 0x69, 0x67, 0xa8,
+ 0x7c, 0x49, 0x97, 0xc3, 0x93, 0x9c, 0x66, 0x1a, 0xe6, 0x9a, 0x70, 0x86,
+ 0x3f, 0x88, 0x65, 0x9e,
+ 0x7d, 0x1d, 0xa7, 0xb8, 0x7c, 0x18, 0x6e, 0x13, 0x32, 0x4f, 0xd3, 0x0b,
+ 0x99, 0x29, 0xa4, 0x94,
+ 0x7e, 0xe1, 0xf7, 0x35, 0x8e, 0x57, 0x76, 0x08, 0x8d, 0xf3, 0xf5, 0x5f,
+ 0xb0, 0x09, 0x24, 0x8a,
+ 0x7f, 0xb5, 0xc7, 0x4e, 0x61, 0xd3, 0x7e, 0x01, 0x59, 0x26, 0x56, 0xd2,
+ 0x16, 0xa8, 0xe5, 0x80,
+ 0x80, 0x48, 0xba, 0xa9, 0x4c, 0x32, 0x8a, 0x0a, 0x3f, 0xbf, 0x59, 0x38,
+ 0x9c, 0x9a, 0x2d, 0x49,
+ 0x81, 0x1c, 0x8a, 0xd2, 0xa3, 0xb6, 0x82, 0x03, 0xeb, 0x6a, 0xfa, 0xb5,
+ 0x3a, 0x3b, 0xec, 0x43,
+ 0x82, 0xe0, 0xda, 0x5f, 0x51, 0xf9, 0x9a, 0x18, 0x54, 0xd6, 0xdc, 0xe1,
+ 0x13, 0x1b, 0x6c, 0x5d,
+ 0x83, 0xb4, 0xea, 0x24, 0xbe, 0x7d, 0x92, 0x11, 0x80, 0x03, 0x7f, 0x6c,
+ 0xb5, 0xba, 0xad, 0x57,
+ 0x84, 0xdb, 0x7a, 0x86, 0x76, 0x67, 0xaa, 0x2e, 0xe9, 0x6d, 0x90, 0x49,
+ 0x41, 0x5b, 0xaf, 0x61,
+ 0x85, 0x8f, 0x4a, 0xfd, 0x99, 0xe3, 0xa2, 0x27, 0x3d, 0xb8, 0x33, 0xc4,
+ 0xe7, 0xfa, 0x6e, 0x6b,
+ 0x86, 0x73, 0x1a, 0x70, 0x6b, 0xac, 0xba, 0x3c, 0x82, 0x04, 0x15, 0x90,
+ 0xce, 0xda, 0xee, 0x75,
+ 0x87, 0x27, 0x2a, 0x0b, 0x84, 0x28, 0xb2, 0x35, 0x56, 0xd1, 0xb6, 0x1d,
+ 0x68, 0x7b, 0x2f, 0x7f,
+ 0x88, 0xad, 0xf9, 0xf7, 0x38, 0x98, 0xca, 0x42, 0x50, 0xd8, 0x08, 0xda,
+ 0xe5, 0xdb, 0xea, 0x19,
+ 0x89, 0xf9, 0xc9, 0x8c, 0xd7, 0x1c, 0xc2, 0x4b, 0x84, 0x0d, 0xab, 0x57,
+ 0x43, 0x7a, 0x2b, 0x13,
+ 0x8a, 0x05, 0x99, 0x01, 0x25, 0x53, 0xda, 0x50, 0x3b, 0xb1, 0x8d, 0x03,
+ 0x6a, 0x5a, 0xab, 0x0d,
+ 0x8b, 0x51, 0xa9, 0x7a, 0xca, 0xd7, 0xd2, 0x59, 0xef, 0x64, 0x2e, 0x8e,
+ 0xcc, 0xfb, 0x6a, 0x07,
+ 0x8c, 0x3e, 0x39, 0xd8, 0x02, 0xcd, 0xea, 0x66, 0x86, 0x0a, 0xc1, 0xab,
+ 0x38, 0x1a, 0x68, 0x31,
+ 0x8d, 0x6a, 0x09, 0xa3, 0xed, 0x49, 0xe2, 0x6f, 0x52, 0xdf, 0x62, 0x26,
+ 0x9e, 0xbb, 0xa9, 0x3b,
+ 0x8e, 0x96, 0x59, 0x2e, 0x1f, 0x06, 0xfa, 0x74, 0xed, 0x63, 0x44, 0x72,
+ 0xb7, 0x9b, 0x29, 0x25,
+ 0x8f, 0xc2, 0x69, 0x55, 0xf0, 0x82, 0xf2, 0x7d, 0x39, 0xb6, 0xe7, 0xff,
+ 0x11, 0x3a, 0xe8, 0x2f,
+ 0x90, 0x41, 0x3c, 0x15, 0xa4, 0xa5, 0x0a, 0x9a, 0xe1, 0x71, 0xfb, 0x3f,
+ 0x6e, 0x18, 0x60, 0xe9,
+ 0x91, 0x15, 0x0c, 0x6e, 0x4b, 0x21, 0x02, 0x93, 0x35, 0xa4, 0x58, 0xb2,
+ 0xc8, 0xb9, 0xa1, 0xe3,
+ 0x92, 0xe9, 0x5c, 0xe3, 0xb9, 0x6e, 0x1a, 0x88, 0x8a, 0x18, 0x7e, 0xe6,
+ 0xe1, 0x99, 0x21, 0xfd,
+ 0x93, 0xbd, 0x6c, 0x98, 0x56, 0xea, 0x12, 0x81, 0x5e, 0xcd, 0xdd, 0x6b,
+ 0x47, 0x38, 0xe0, 0xf7,
+ 0x94, 0xd2, 0xfc, 0x3a, 0x9e, 0xf0, 0x2a, 0xbe, 0x37, 0xa3, 0x32, 0x4e,
+ 0xb3, 0xd9, 0xe2, 0xc1,
+ 0x95, 0x86, 0xcc, 0x41, 0x71, 0x74, 0x22, 0xb7, 0xe3, 0x76, 0x91, 0xc3,
+ 0x15, 0x78, 0x23, 0xcb,
+ 0x96, 0x7a, 0x9c, 0xcc, 0x83, 0x3b, 0x3a, 0xac, 0x5c, 0xca, 0xb7, 0x97,
+ 0x3c, 0x58, 0xa3, 0xd5,
+ 0x97, 0x2e, 0xac, 0xb7, 0x6c, 0xbf, 0x32, 0xa5, 0x88, 0x1f, 0x14, 0x1a,
+ 0x9a, 0xf9, 0x62, 0xdf,
+ 0x98, 0xa4, 0x7f, 0x4b, 0xd0, 0x0f, 0x4a, 0xd2, 0x8e, 0x16, 0xaa, 0xdd,
+ 0x17, 0x59, 0xa7, 0xb9,
+ 0x99, 0xf0, 0x4f, 0x30, 0x3f, 0x8b, 0x42, 0xdb, 0x5a, 0xc3, 0x09, 0x50,
+ 0xb1, 0xf8, 0x66, 0xb3,
+ 0x9a, 0x0c, 0x1f, 0xbd, 0xcd, 0xc4, 0x5a, 0xc0, 0xe5, 0x7f, 0x2f, 0x04,
+ 0x98, 0xd8, 0xe6, 0xad,
+ 0x9b, 0x58, 0x2f, 0xc6, 0x22, 0x40, 0x52, 0xc9, 0x31, 0xaa, 0x8c, 0x89,
+ 0x3e, 0x79, 0x27, 0xa7,
+ 0x9c, 0x37, 0xbf, 0x64, 0xea, 0x5a, 0x6a, 0xf6, 0x58, 0xc4, 0x63, 0xac,
+ 0xca, 0x98, 0x25, 0x91,
+ 0x9d, 0x63, 0x8f, 0x1f, 0x05, 0xde, 0x62, 0xff, 0x8c, 0x11, 0xc0, 0x21,
+ 0x6c, 0x39, 0xe4, 0x9b,
+ 0x9e, 0x9f, 0xdf, 0x92, 0xf7, 0x91, 0x7a, 0xe4, 0x33, 0xad, 0xe6, 0x75,
+ 0x45, 0x19, 0x64, 0x85,
+ 0x9f, 0xcb, 0xef, 0xe9, 0x18, 0x15, 0x72, 0xed, 0xe7, 0x78, 0x45, 0xf8,
+ 0xe3, 0xb8, 0xa5, 0x8f,
+ 0xa0, 0x5a, 0x75, 0x12, 0x5f, 0xdf, 0x49, 0xe9, 0x40, 0xe0, 0xde, 0x36,
+ 0xbb, 0x5d, 0xb7, 0xca,
+ 0xa1, 0x0e, 0x45, 0x69, 0xb0, 0x5b, 0x41, 0xe0, 0x94, 0x35, 0x7d, 0xbb,
+ 0x1d, 0xfc, 0x76, 0xc0,
+ 0xa2, 0xf2, 0x15, 0xe4, 0x42, 0x14, 0x59, 0xfb, 0x2b, 0x89, 0x5b, 0xef,
+ 0x34, 0xdc, 0xf6, 0xde,
+ 0xa3, 0xa6, 0x25, 0x9f, 0xad, 0x90, 0x51, 0xf2, 0xff, 0x5c, 0xf8, 0x62,
+ 0x92, 0x7d, 0x37, 0xd4,
+ 0xa4, 0xc9, 0xb5, 0x3d, 0x65, 0x8a, 0x69, 0xcd, 0x96, 0x32, 0x17, 0x47,
+ 0x66, 0x9c, 0x35, 0xe2,
+ 0xa5, 0x9d, 0x85, 0x46, 0x8a, 0x0e, 0x61, 0xc4, 0x42, 0xe7, 0xb4, 0xca,
+ 0xc0, 0x3d, 0xf4, 0xe8,
+ 0xa6, 0x61, 0xd5, 0xcb, 0x78, 0x41, 0x79, 0xdf, 0xfd, 0x5b, 0x92, 0x9e,
+ 0xe9, 0x1d, 0x74, 0xf6,
+ 0xa7, 0x35, 0xe5, 0xb0, 0x97, 0xc5, 0x71, 0xd6, 0x29, 0x8e, 0x31, 0x13,
+ 0x4f, 0xbc, 0xb5, 0xfc,
+ 0xa8, 0xbf, 0x36, 0x4c, 0x2b, 0x75, 0x09, 0xa1, 0x2f, 0x87, 0x8f, 0xd4,
+ 0xc2, 0x1c, 0x70, 0x9a,
+ 0xa9, 0xeb, 0x06, 0x37, 0xc4, 0xf1, 0x01, 0xa8, 0xfb, 0x52, 0x2c, 0x59,
+ 0x64, 0xbd, 0xb1, 0x90,
+ 0xaa, 0x17, 0x56, 0xba, 0x36, 0xbe, 0x19, 0xb3, 0x44, 0xee, 0x0a, 0x0d,
+ 0x4d, 0x9d, 0x31, 0x8e,
+ 0xab, 0x43, 0x66, 0xc1, 0xd9, 0x3a, 0x11, 0xba, 0x90, 0x3b, 0xa9, 0x80,
+ 0xeb, 0x3c, 0xf0, 0x84,
+ 0xac, 0x2c, 0xf6, 0x63, 0x11, 0x20, 0x29, 0x85, 0xf9, 0x55, 0x46, 0xa5,
+ 0x1f, 0xdd, 0xf2, 0xb2,
+ 0xad, 0x78, 0xc6, 0x18, 0xfe, 0xa4, 0x21, 0x8c, 0x2d, 0x80, 0xe5, 0x28,
+ 0xb9, 0x7c, 0x33, 0xb8,
+ 0xae, 0x84, 0x96, 0x95, 0x0c, 0xeb, 0x39, 0x97, 0x92, 0x3c, 0xc3, 0x7c,
+ 0x90, 0x5c, 0xb3, 0xa6,
+ 0xaf, 0xd0, 0xa6, 0xee, 0xe3, 0x6f, 0x31, 0x9e, 0x46, 0xe9, 0x60, 0xf1,
+ 0x36, 0xfd, 0x72, 0xac,
+ 0xb0, 0x53, 0xf3, 0xae, 0xb7, 0x48, 0xc9, 0x79, 0x9e, 0x2e, 0x7c, 0x31,
+ 0x49, 0xdf, 0xfa, 0x6a,
+ 0xb1, 0x07, 0xc3, 0xd5, 0x58, 0xcc, 0xc1, 0x70, 0x4a, 0xfb, 0xdf, 0xbc,
+ 0xef, 0x7e, 0x3b, 0x60,
+ 0xb2, 0xfb, 0x93, 0x58, 0xaa, 0x83, 0xd9, 0x6b, 0xf5, 0x47, 0xf9, 0xe8,
+ 0xc6, 0x5e, 0xbb, 0x7e,
+ 0xb3, 0xaf, 0xa3, 0x23, 0x45, 0x07, 0xd1, 0x62, 0x21, 0x92, 0x5a, 0x65,
+ 0x60, 0xff, 0x7a, 0x74,
+ 0xb4, 0xc0, 0x33, 0x81, 0x8d, 0x1d, 0xe9, 0x5d, 0x48, 0xfc, 0xb5, 0x40,
+ 0x94, 0x1e, 0x78, 0x42,
+ 0xb5, 0x94, 0x03, 0xfa, 0x62, 0x99, 0xe1, 0x54, 0x9c, 0x29, 0x16, 0xcd,
+ 0x32, 0xbf, 0xb9, 0x48,
+ 0xb6, 0x68, 0x53, 0x77, 0x90, 0xd6, 0xf9, 0x4f, 0x23, 0x95, 0x30, 0x99,
+ 0x1b, 0x9f, 0x39, 0x56,
+ 0xb7, 0x3c, 0x63, 0x0c, 0x7f, 0x52, 0xf1, 0x46, 0xf7, 0x40, 0x93, 0x14,
+ 0xbd, 0x3e, 0xf8, 0x5c,
+ 0xb8, 0xb6, 0xb0, 0xf0, 0xc3, 0xe2, 0x89, 0x31, 0xf1, 0x49, 0x2d, 0xd3,
+ 0x30, 0x9e, 0x3d, 0x3a,
+ 0xb9, 0xe2, 0x80, 0x8b, 0x2c, 0x66, 0x81, 0x38, 0x25, 0x9c, 0x8e, 0x5e,
+ 0x96, 0x3f, 0xfc, 0x30,
+ 0xba, 0x1e, 0xd0, 0x06, 0xde, 0x29, 0x99, 0x23, 0x9a, 0x20, 0xa8, 0x0a,
+ 0xbf, 0x1f, 0x7c, 0x2e,
+ 0xbb, 0x4a, 0xe0, 0x7d, 0x31, 0xad, 0x91, 0x2a, 0x4e, 0xf5, 0x0b, 0x87,
+ 0x19, 0xbe, 0xbd, 0x24,
+ 0xbc, 0x25, 0x70, 0xdf, 0xf9, 0xb7, 0xa9, 0x15, 0x27, 0x9b, 0xe4, 0xa2,
+ 0xed, 0x5f, 0xbf, 0x12,
+ 0xbd, 0x71, 0x40, 0xa4, 0x16, 0x33, 0xa1, 0x1c, 0xf3, 0x4e, 0x47, 0x2f,
+ 0x4b, 0xfe, 0x7e, 0x18,
+ 0xbe, 0x8d, 0x10, 0x29, 0xe4, 0x7c, 0xb9, 0x07, 0x4c, 0xf2, 0x61, 0x7b,
+ 0x62, 0xde, 0xfe, 0x06,
+ 0xbf, 0xd9, 0x20, 0x52, 0x0b, 0xf8, 0xb1, 0x0e, 0x98, 0x27, 0xc2, 0xf6,
+ 0xc4, 0x7f, 0x3f, 0x0c,
+ 0xc0, 0x6c, 0xe7, 0x1c, 0x6a, 0x2b, 0xcf, 0x0f, 0xc1, 0x01, 0x94, 0x24,
+ 0xd2, 0xd7, 0xda, 0x8c,
+ 0xc1, 0x38, 0xd7, 0x67, 0x85, 0xaf, 0xc7, 0x06, 0x15, 0xd4, 0x37, 0xa9,
+ 0x74, 0x76, 0x1b, 0x86,
+ 0xc2, 0xc4, 0x87, 0xea, 0x77, 0xe0, 0xdf, 0x1d, 0xaa, 0x68, 0x11, 0xfd,
+ 0x5d, 0x56, 0x9b, 0x98,
+ 0xc3, 0x90, 0xb7, 0x91, 0x98, 0x64, 0xd7, 0x14, 0x7e, 0xbd, 0xb2, 0x70,
+ 0xfb, 0xf7, 0x5a, 0x92,
+ 0xc4, 0xff, 0x27, 0x33, 0x50, 0x7e, 0xef, 0x2b, 0x17, 0xd3, 0x5d, 0x55,
+ 0x0f, 0x16, 0x58, 0xa4,
+ 0xc5, 0xab, 0x17, 0x48, 0xbf, 0xfa, 0xe7, 0x22, 0xc3, 0x06, 0xfe, 0xd8,
+ 0xa9, 0xb7, 0x99, 0xae,
+ 0xc6, 0x57, 0x47, 0xc5, 0x4d, 0xb5, 0xff, 0x39, 0x7c, 0xba, 0xd8, 0x8c,
+ 0x80, 0x97, 0x19, 0xb0,
+ 0xc7, 0x03, 0x77, 0xbe, 0xa2, 0x31, 0xf7, 0x30, 0xa8, 0x6f, 0x7b, 0x01,
+ 0x26, 0x36, 0xd8, 0xba,
+ 0xc8, 0x89, 0xa4, 0x42, 0x1e, 0x81, 0x8f, 0x47, 0xae, 0x66, 0xc5, 0xc6,
+ 0xab, 0x96, 0x1d, 0xdc,
+ 0xc9, 0xdd, 0x94, 0x39, 0xf1, 0x05, 0x87, 0x4e, 0x7a, 0xb3, 0x66, 0x4b,
+ 0x0d, 0x37, 0xdc, 0xd6,
+ 0xca, 0x21, 0xc4, 0xb4, 0x03, 0x4a, 0x9f, 0x55, 0xc5, 0x0f, 0x40, 0x1f,
+ 0x24, 0x17, 0x5c, 0xc8,
+ 0xcb, 0x75, 0xf4, 0xcf, 0xec, 0xce, 0x97, 0x5c, 0x11, 0xda, 0xe3, 0x92,
+ 0x82, 0xb6, 0x9d, 0xc2,
+ 0xcc, 0x1a, 0x64, 0x6d, 0x24, 0xd4, 0xaf, 0x63, 0x78, 0xb4, 0x0c, 0xb7,
+ 0x76, 0x57, 0x9f, 0xf4,
+ 0xcd, 0x4e, 0x54, 0x16, 0xcb, 0x50, 0xa7, 0x6a, 0xac, 0x61, 0xaf, 0x3a,
+ 0xd0, 0xf6, 0x5e, 0xfe,
+ 0xce, 0xb2, 0x04, 0x9b, 0x39, 0x1f, 0xbf, 0x71, 0x13, 0xdd, 0x89, 0x6e,
+ 0xf9, 0xd6, 0xde, 0xe0,
+ 0xcf, 0xe6, 0x34, 0xe0, 0xd6, 0x9b, 0xb7, 0x78, 0xc7, 0x08, 0x2a, 0xe3,
+ 0x5f, 0x77, 0x1f, 0xea,
+ 0xd0, 0x65, 0x61, 0xa0, 0x82, 0xbc, 0x4f, 0x9f, 0x1f, 0xcf, 0x36, 0x23,
+ 0x20, 0x55, 0x97, 0x2c,
+ 0xd1, 0x31, 0x51, 0xdb, 0x6d, 0x38, 0x47, 0x96, 0xcb, 0x1a, 0x95, 0xae,
+ 0x86, 0xf4, 0x56, 0x26,
+ 0xd2, 0xcd, 0x01, 0x56, 0x9f, 0x77, 0x5f, 0x8d, 0x74, 0xa6, 0xb3, 0xfa,
+ 0xaf, 0xd4, 0xd6, 0x38,
+ 0xd3, 0x99, 0x31, 0x2d, 0x70, 0xf3, 0x57, 0x84, 0xa0, 0x73, 0x10, 0x77,
+ 0x09, 0x75, 0x17, 0x32,
+ 0xd4, 0xf6, 0xa1, 0x8f, 0xb8, 0xe9, 0x6f, 0xbb, 0xc9, 0x1d, 0xff, 0x52,
+ 0xfd, 0x94, 0x15, 0x04,
+ 0xd5, 0xa2, 0x91, 0xf4, 0x57, 0x6d, 0x67, 0xb2, 0x1d, 0xc8, 0x5c, 0xdf,
+ 0x5b, 0x35, 0xd4, 0x0e,
+ 0xd6, 0x5e, 0xc1, 0x79, 0xa5, 0x22, 0x7f, 0xa9, 0xa2, 0x74, 0x7a, 0x8b,
+ 0x72, 0x15, 0x54, 0x10,
+ 0xd7, 0x0a, 0xf1, 0x02, 0x4a, 0xa6, 0x77, 0xa0, 0x76, 0xa1, 0xd9, 0x06,
+ 0xd4, 0xb4, 0x95, 0x1a,
+ 0xd8, 0x80, 0x22, 0xfe, 0xf6, 0x16, 0x0f, 0xd7, 0x70, 0xa8, 0x67, 0xc1,
+ 0x59, 0x14, 0x50, 0x7c,
+ 0xd9, 0xd4, 0x12, 0x85, 0x19, 0x92, 0x07, 0xde, 0xa4, 0x7d, 0xc4, 0x4c,
+ 0xff, 0xb5, 0x91, 0x76,
+ 0xda, 0x28, 0x42, 0x08, 0xeb, 0xdd, 0x1f, 0xc5, 0x1b, 0xc1, 0xe2, 0x18,
+ 0xd6, 0x95, 0x11, 0x68,
+ 0xdb, 0x7c, 0x72, 0x73, 0x04, 0x59, 0x17, 0xcc, 0xcf, 0x14, 0x41, 0x95,
+ 0x70, 0x34, 0xd0, 0x62,
+ 0xdc, 0x13, 0xe2, 0xd1, 0xcc, 0x43, 0x2f, 0xf3, 0xa6, 0x7a, 0xae, 0xb0,
+ 0x84, 0xd5, 0xd2, 0x54,
+ 0xdd, 0x47, 0xd2, 0xaa, 0x23, 0xc7, 0x27, 0xfa, 0x72, 0xaf, 0x0d, 0x3d,
+ 0x22, 0x74, 0x13, 0x5e,
+ 0xde, 0xbb, 0x82, 0x27, 0xd1, 0x88, 0x3f, 0xe1, 0xcd, 0x13, 0x2b, 0x69,
+ 0x0b, 0x54, 0x93, 0x40,
+ 0xdf, 0xef, 0xb2, 0x5c, 0x3e, 0x0c, 0x37, 0xe8, 0x19, 0xc6, 0x88, 0xe4,
+ 0xad, 0xf5, 0x52, 0x4a,
+ 0xe0, 0x7e, 0x28, 0xa7, 0x79, 0xc6, 0x0c, 0xec, 0xbe, 0x5e, 0x13, 0x2a,
+ 0xf5, 0x10, 0x40, 0x0f,
+ 0xe1, 0x2a, 0x18, 0xdc, 0x96, 0x42, 0x04, 0xe5, 0x6a, 0x8b, 0xb0, 0xa7,
+ 0x53, 0xb1, 0x81, 0x05,
+ 0xe2, 0xd6, 0x48, 0x51, 0x64, 0x0d, 0x1c, 0xfe, 0xd5, 0x37, 0x96, 0xf3,
+ 0x7a, 0x91, 0x01, 0x1b,
+ 0xe3, 0x82, 0x78, 0x2a, 0x8b, 0x89, 0x14, 0xf7, 0x01, 0xe2, 0x35, 0x7e,
+ 0xdc, 0x30, 0xc0, 0x11,
+ 0xe4, 0xed, 0xe8, 0x88, 0x43, 0x93, 0x2c, 0xc8, 0x68, 0x8c, 0xda, 0x5b,
+ 0x28, 0xd1, 0xc2, 0x27,
+ 0xe5, 0xb9, 0xd8, 0xf3, 0xac, 0x17, 0x24, 0xc1, 0xbc, 0x59, 0x79, 0xd6,
+ 0x8e, 0x70, 0x03, 0x2d,
+ 0xe6, 0x45, 0x88, 0x7e, 0x5e, 0x58, 0x3c, 0xda, 0x03, 0xe5, 0x5f, 0x82,
+ 0xa7, 0x50, 0x83, 0x33,
+ 0xe7, 0x11, 0xb8, 0x05, 0xb1, 0xdc, 0x34, 0xd3, 0xd7, 0x30, 0xfc, 0x0f,
+ 0x01, 0xf1, 0x42, 0x39,
+ 0xe8, 0x9b, 0x6b, 0xf9, 0x0d, 0x6c, 0x4c, 0xa4, 0xd1, 0x39, 0x42, 0xc8,
+ 0x8c, 0x51, 0x87, 0x5f,
+ 0xe9, 0xcf, 0x5b, 0x82, 0xe2, 0xe8, 0x44, 0xad, 0x05, 0xec, 0xe1, 0x45,
+ 0x2a, 0xf0, 0x46, 0x55,
+ 0xea, 0x33, 0x0b, 0x0f, 0x10, 0xa7, 0x5c, 0xb6, 0xba, 0x50, 0xc7, 0x11,
+ 0x03, 0xd0, 0xc6, 0x4b,
+ 0xeb, 0x67, 0x3b, 0x74, 0xff, 0x23, 0x54, 0xbf, 0x6e, 0x85, 0x64, 0x9c,
+ 0xa5, 0x71, 0x07, 0x41,
+ 0xec, 0x08, 0xab, 0xd6, 0x37, 0x39, 0x6c, 0x80, 0x07, 0xeb, 0x8b, 0xb9,
+ 0x51, 0x90, 0x05, 0x77,
+ 0xed, 0x5c, 0x9b, 0xad, 0xd8, 0xbd, 0x64, 0x89, 0xd3, 0x3e, 0x28, 0x34,
+ 0xf7, 0x31, 0xc4, 0x7d,
+ 0xee, 0xa0, 0xcb, 0x20, 0x2a, 0xf2, 0x7c, 0x92, 0x6c, 0x82, 0x0e, 0x60,
+ 0xde, 0x11, 0x44, 0x63,
+ 0xef, 0xf4, 0xfb, 0x5b, 0xc5, 0x76, 0x74, 0x9b, 0xb8, 0x57, 0xad, 0xed,
+ 0x78, 0xb0, 0x85, 0x69,
+ 0xf0, 0x77, 0xae, 0x1b, 0x91, 0x51, 0x8c, 0x7c, 0x60, 0x90, 0xb1, 0x2d,
+ 0x07, 0x92, 0x0d, 0xaf,
+ 0xf1, 0x23, 0x9e, 0x60, 0x7e, 0xd5, 0x84, 0x75, 0xb4, 0x45, 0x12, 0xa0,
+ 0xa1, 0x33, 0xcc, 0xa5,
+ 0xf2, 0xdf, 0xce, 0xed, 0x8c, 0x9a, 0x9c, 0x6e, 0x0b, 0xf9, 0x34, 0xf4,
+ 0x88, 0x13, 0x4c, 0xbb,
+ 0xf3, 0x8b, 0xfe, 0x96, 0x63, 0x1e, 0x94, 0x67, 0xdf, 0x2c, 0x97, 0x79,
+ 0x2e, 0xb2, 0x8d, 0xb1,
+ 0xf4, 0xe4, 0x6e, 0x34, 0xab, 0x04, 0xac, 0x58, 0xb6, 0x42, 0x78, 0x5c,
+ 0xda, 0x53, 0x8f, 0x87,
+ 0xf5, 0xb0, 0x5e, 0x4f, 0x44, 0x80, 0xa4, 0x51, 0x62, 0x97, 0xdb, 0xd1,
+ 0x7c, 0xf2, 0x4e, 0x8d,
+ 0xf6, 0x4c, 0x0e, 0xc2, 0xb6, 0xcf, 0xbc, 0x4a, 0xdd, 0x2b, 0xfd, 0x85,
+ 0x55, 0xd2, 0xce, 0x93,
+ 0xf7, 0x18, 0x3e, 0xb9, 0x59, 0x4b, 0xb4, 0x43, 0x09, 0xfe, 0x5e, 0x08,
+ 0xf3, 0x73, 0x0f, 0x99,
+ 0xf8, 0x92, 0xed, 0x45, 0xe5, 0xfb, 0xcc, 0x34, 0x0f, 0xf7, 0xe0, 0xcf,
+ 0x7e, 0xd3, 0xca, 0xff,
+ 0xf9, 0xc6, 0xdd, 0x3e, 0x0a, 0x7f, 0xc4, 0x3d, 0xdb, 0x22, 0x43, 0x42,
+ 0xd8, 0x72, 0x0b, 0xf5,
+ 0xfa, 0x3a, 0x8d, 0xb3, 0xf8, 0x30, 0xdc, 0x26, 0x64, 0x9e, 0x65, 0x16,
+ 0xf1, 0x52, 0x8b, 0xeb,
+ 0xfb, 0x6e, 0xbd, 0xc8, 0x17, 0xb4, 0xd4, 0x2f, 0xb0, 0x4b, 0xc6, 0x9b,
+ 0x57, 0xf3, 0x4a, 0xe1,
+ 0xfc, 0x01, 0x2d, 0x6a, 0xdf, 0xae, 0xec, 0x10, 0xd9, 0x25, 0x29, 0xbe,
+ 0xa3, 0x12, 0x48, 0xd7,
+ 0xfd, 0x55, 0x1d, 0x11, 0x30, 0x2a, 0xe4, 0x19, 0x0d, 0xf0, 0x8a, 0x33,
+ 0x05, 0xb3, 0x89, 0xdd,
+ 0xfe, 0xa9, 0x4d, 0x9c, 0xc2, 0x65, 0xfc, 0x02, 0xb2, 0x4c, 0xac, 0x67,
+ 0x2c, 0x93, 0x09, 0xc3,
+ 0xff, 0xfd, 0x7d, 0xe7, 0x2d, 0xe1, 0xf4, 0x0b, 0x66, 0x99, 0x0f, 0xea,
+ 0x8a, 0x32, 0xc8, 0xc9,
+ },
+ { /* 8 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xfb, 0xde, 0xe0, 0xaf, 0x10, 0xc9, 0xf6, 0x49, 0xbe, 0xe7, 0x6e, 0xa4,
+ 0x6a, 0x2b, 0x9c, 0xf3,
+ 0x35, 0x7f, 0x03, 0x9d, 0x20, 0x51, 0x2f, 0x92, 0xbf, 0x0d, 0xdc, 0x8b,
+ 0xd4, 0x56, 0xfb, 0x25,
+ 0xce, 0xa1, 0xe3, 0x32, 0x30, 0x98, 0xd9, 0xdb, 0x01, 0xea, 0xb2, 0x2f,
+ 0xbe, 0x7d, 0x67, 0xd6,
+ 0x6a, 0xfe, 0x06, 0xf9, 0x40, 0xa2, 0x5e, 0xe7, 0xbd, 0x1a, 0x7b, 0xd5,
+ 0x6b, 0xac, 0x35, 0x4a,
+ 0x91, 0x20, 0xe6, 0x56, 0x50, 0x6b, 0xa8, 0xae, 0x03, 0xfd, 0x15, 0x71,
+ 0x01, 0x87, 0xa9, 0xb9,
+ 0x5f, 0x81, 0x05, 0x64, 0x60, 0xf3, 0x71, 0x75, 0x02, 0x17, 0xa7, 0x5e,
+ 0xbf, 0xfa, 0xce, 0x6f,
+ 0xa4, 0x5f, 0xe5, 0xcb, 0x70, 0x3a, 0x87, 0x3c, 0xbc, 0xf0, 0xc9, 0xfa,
+ 0xd5, 0xd1, 0x52, 0x9c,
+ 0xd4, 0x3f, 0x0c, 0x31, 0x80, 0x87, 0xbc, 0x0d, 0xb9, 0x34, 0xf6, 0x69,
+ 0xd6, 0x9b, 0x6a, 0x94,
+ 0x2f, 0xe1, 0xec, 0x9e, 0x90, 0x4e, 0x4a, 0x44, 0x07, 0xd3, 0x98, 0xcd,
+ 0xbc, 0xb0, 0xf6, 0x67,
+ 0xe1, 0x40, 0x0f, 0xac, 0xa0, 0xd6, 0x93, 0x9f, 0x06, 0x39, 0x2a, 0xe2,
+ 0x02, 0xcd, 0x91, 0xb1,
+ 0x1a, 0x9e, 0xef, 0x03, 0xb0, 0x1f, 0x65, 0xd6, 0xb8, 0xde, 0x44, 0x46,
+ 0x68, 0xe6, 0x0d, 0x42,
+ 0xbe, 0xc1, 0x0a, 0xc8, 0xc0, 0x25, 0xe2, 0xea, 0x04, 0x2e, 0x8d, 0xbc,
+ 0xbd, 0x37, 0x5f, 0xde,
+ 0x45, 0x1f, 0xea, 0x67, 0xd0, 0xec, 0x14, 0xa3, 0xba, 0xc9, 0xe3, 0x18,
+ 0xd7, 0x1c, 0xc3, 0x2d,
+ 0x8b, 0xbe, 0x09, 0x55, 0xe0, 0x74, 0xcd, 0x78, 0xbb, 0x23, 0x51, 0x37,
+ 0x69, 0x61, 0xa4, 0xfb,
+ 0x70, 0x60, 0xe9, 0xfa, 0xf0, 0xbd, 0x3b, 0x31, 0x05, 0xc4, 0x3f, 0x93,
+ 0x03, 0x4a, 0x38, 0x08,
+ 0x6b, 0x7e, 0x18, 0x62, 0xc3, 0xcd, 0xbb, 0x1a, 0xb1, 0x68, 0x2f, 0xd2,
+ 0x6f, 0xf5, 0xd4, 0xeb,
+ 0x90, 0xa0, 0xf8, 0xcd, 0xd3, 0x04, 0x4d, 0x53, 0x0f, 0x8f, 0x41, 0x76,
+ 0x05, 0xde, 0x48, 0x18,
+ 0x5e, 0x01, 0x1b, 0xff, 0xe3, 0x9c, 0x94, 0x88, 0x0e, 0x65, 0xf3, 0x59,
+ 0xbb, 0xa3, 0x2f, 0xce,
+ 0xa5, 0xdf, 0xfb, 0x50, 0xf3, 0x55, 0x62, 0xc1, 0xb0, 0x82, 0x9d, 0xfd,
+ 0xd1, 0x88, 0xb3, 0x3d,
+ 0x01, 0x80, 0x1e, 0x9b, 0x83, 0x6f, 0xe5, 0xfd, 0x0c, 0x72, 0x54, 0x07,
+ 0x04, 0x59, 0xe1, 0xa1,
+ 0xfa, 0x5e, 0xfe, 0x34, 0x93, 0xa6, 0x13, 0xb4, 0xb2, 0x95, 0x3a, 0xa3,
+ 0x6e, 0x72, 0x7d, 0x52,
+ 0x34, 0xff, 0x1d, 0x06, 0xa3, 0x3e, 0xca, 0x6f, 0xb3, 0x7f, 0x88, 0x8c,
+ 0xd0, 0x0f, 0x1a, 0x84,
+ 0xcf, 0x21, 0xfd, 0xa9, 0xb3, 0xf7, 0x3c, 0x26, 0x0d, 0x98, 0xe6, 0x28,
+ 0xba, 0x24, 0x86, 0x77,
+ 0xbf, 0x41, 0x14, 0x53, 0x43, 0x4a, 0x07, 0x17, 0x08, 0x5c, 0xd9, 0xbb,
+ 0xb9, 0x6e, 0xbe, 0x7f,
+ 0x44, 0x9f, 0xf4, 0xfc, 0x53, 0x83, 0xf1, 0x5e, 0xb6, 0xbb, 0xb7, 0x1f,
+ 0xd3, 0x45, 0x22, 0x8c,
+ 0x8a, 0x3e, 0x17, 0xce, 0x63, 0x1b, 0x28, 0x85, 0xb7, 0x51, 0x05, 0x30,
+ 0x6d, 0x38, 0x45, 0x5a,
+ 0x71, 0xe0, 0xf7, 0x61, 0x73, 0xd2, 0xde, 0xcc, 0x09, 0xb6, 0x6b, 0x94,
+ 0x07, 0x13, 0xd9, 0xa9,
+ 0xd5, 0xbf, 0x12, 0xaa, 0x03, 0xe8, 0x59, 0xf0, 0xb5, 0x46, 0xa2, 0x6e,
+ 0xd2, 0xc2, 0x8b, 0x35,
+ 0x2e, 0x61, 0xf2, 0x05, 0x13, 0x21, 0xaf, 0xb9, 0x0b, 0xa1, 0xcc, 0xca,
+ 0xb8, 0xe9, 0x17, 0xc6,
+ 0xe0, 0xc0, 0x11, 0x37, 0x23, 0xb9, 0x76, 0x62, 0x0a, 0x4b, 0x7e, 0xe5,
+ 0x06, 0x94, 0x70, 0x10,
+ 0x1b, 0x1e, 0xf1, 0x98, 0x33, 0x70, 0x80, 0x2b, 0xb4, 0xac, 0x10, 0x41,
+ 0x6c, 0xbf, 0xec, 0xe3,
+ 0xd6, 0xfc, 0x30, 0xc4, 0x45, 0x59, 0xb5, 0x34, 0xa1, 0xd0, 0x5e, 0x67,
+ 0xde, 0x29, 0x6b, 0x15,
+ 0x2d, 0x22, 0xd0, 0x6b, 0x55, 0x90, 0x43, 0x7d, 0x1f, 0x37, 0x30, 0xc3,
+ 0xb4, 0x02, 0xf7, 0xe6,
+ 0xe3, 0x83, 0x33, 0x59, 0x65, 0x08, 0x9a, 0xa6, 0x1e, 0xdd, 0x82, 0xec,
+ 0x0a, 0x7f, 0x90, 0x30,
+ 0x18, 0x5d, 0xd3, 0xf6, 0x75, 0xc1, 0x6c, 0xef, 0xa0, 0x3a, 0xec, 0x48,
+ 0x60, 0x54, 0x0c, 0xc3,
+ 0xbc, 0x02, 0x36, 0x3d, 0x05, 0xfb, 0xeb, 0xd3, 0x1c, 0xca, 0x25, 0xb2,
+ 0xb5, 0x85, 0x5e, 0x5f,
+ 0x47, 0xdc, 0xd6, 0x92, 0x15, 0x32, 0x1d, 0x9a, 0xa2, 0x2d, 0x4b, 0x16,
+ 0xdf, 0xae, 0xc2, 0xac,
+ 0x89, 0x7d, 0x35, 0xa0, 0x25, 0xaa, 0xc4, 0x41, 0xa3, 0xc7, 0xf9, 0x39,
+ 0x61, 0xd3, 0xa5, 0x7a,
+ 0x72, 0xa3, 0xd5, 0x0f, 0x35, 0x63, 0x32, 0x08, 0x1d, 0x20, 0x97, 0x9d,
+ 0x0b, 0xf8, 0x39, 0x89,
+ 0x02, 0xc3, 0x3c, 0xf5, 0xc5, 0xde, 0x09, 0x39, 0x18, 0xe4, 0xa8, 0x0e,
+ 0x08, 0xb2, 0x01, 0x81,
+ 0xf9, 0x1d, 0xdc, 0x5a, 0xd5, 0x17, 0xff, 0x70, 0xa6, 0x03, 0xc6, 0xaa,
+ 0x62, 0x99, 0x9d, 0x72,
+ 0x37, 0xbc, 0x3f, 0x68, 0xe5, 0x8f, 0x26, 0xab, 0xa7, 0xe9, 0x74, 0x85,
+ 0xdc, 0xe4, 0xfa, 0xa4,
+ 0xcc, 0x62, 0xdf, 0xc7, 0xf5, 0x46, 0xd0, 0xe2, 0x19, 0x0e, 0x1a, 0x21,
+ 0xb6, 0xcf, 0x66, 0x57,
+ 0x68, 0x3d, 0x3a, 0x0c, 0x85, 0x7c, 0x57, 0xde, 0xa5, 0xfe, 0xd3, 0xdb,
+ 0x63, 0x1e, 0x34, 0xcb,
+ 0x93, 0xe3, 0xda, 0xa3, 0x95, 0xb5, 0xa1, 0x97, 0x1b, 0x19, 0xbd, 0x7f,
+ 0x09, 0x35, 0xa8, 0x38,
+ 0x5d, 0x42, 0x39, 0x91, 0xa5, 0x2d, 0x78, 0x4c, 0x1a, 0xf3, 0x0f, 0x50,
+ 0xb7, 0x48, 0xcf, 0xee,
+ 0xa6, 0x9c, 0xd9, 0x3e, 0xb5, 0xe4, 0x8e, 0x05, 0xa4, 0x14, 0x61, 0xf4,
+ 0xdd, 0x63, 0x53, 0x1d,
+ 0xbd, 0x82, 0x28, 0xa6, 0x86, 0x94, 0x0e, 0x2e, 0x10, 0xb8, 0x71, 0xb5,
+ 0xb1, 0xdc, 0xbf, 0xfe,
+ 0x46, 0x5c, 0xc8, 0x09, 0x96, 0x5d, 0xf8, 0x67, 0xae, 0x5f, 0x1f, 0x11,
+ 0xdb, 0xf7, 0x23, 0x0d,
+ 0x88, 0xfd, 0x2b, 0x3b, 0xa6, 0xc5, 0x21, 0xbc, 0xaf, 0xb5, 0xad, 0x3e,
+ 0x65, 0x8a, 0x44, 0xdb,
+ 0x73, 0x23, 0xcb, 0x94, 0xb6, 0x0c, 0xd7, 0xf5, 0x11, 0x52, 0xc3, 0x9a,
+ 0x0f, 0xa1, 0xd8, 0x28,
+ 0xd7, 0x7c, 0x2e, 0x5f, 0xc6, 0x36, 0x50, 0xc9, 0xad, 0xa2, 0x0a, 0x60,
+ 0xda, 0x70, 0x8a, 0xb4,
+ 0x2c, 0xa2, 0xce, 0xf0, 0xd6, 0xff, 0xa6, 0x80, 0x13, 0x45, 0x64, 0xc4,
+ 0xb0, 0x5b, 0x16, 0x47,
+ 0xe2, 0x03, 0x2d, 0xc2, 0xe6, 0x67, 0x7f, 0x5b, 0x12, 0xaf, 0xd6, 0xeb,
+ 0x0e, 0x26, 0x71, 0x91,
+ 0x19, 0xdd, 0xcd, 0x6d, 0xf6, 0xae, 0x89, 0x12, 0xac, 0x48, 0xb8, 0x4f,
+ 0x64, 0x0d, 0xed, 0x62,
+ 0x69, 0xbd, 0x24, 0x97, 0x06, 0x13, 0xb2, 0x23, 0xa9, 0x8c, 0x87, 0xdc,
+ 0x67, 0x47, 0xd5, 0x6a,
+ 0x92, 0x63, 0xc4, 0x38, 0x16, 0xda, 0x44, 0x6a, 0x17, 0x6b, 0xe9, 0x78,
+ 0x0d, 0x6c, 0x49, 0x99,
+ 0x5c, 0xc2, 0x27, 0x0a, 0x26, 0x42, 0x9d, 0xb1, 0x16, 0x81, 0x5b, 0x57,
+ 0xb3, 0x11, 0x2e, 0x4f,
+ 0xa7, 0x1c, 0xc7, 0xa5, 0x36, 0x8b, 0x6b, 0xf8, 0xa8, 0x66, 0x35, 0xf3,
+ 0xd9, 0x3a, 0xb2, 0xbc,
+ 0x03, 0x43, 0x22, 0x6e, 0x46, 0xb1, 0xec, 0xc4, 0x14, 0x96, 0xfc, 0x09,
+ 0x0c, 0xeb, 0xe0, 0x20,
+ 0xf8, 0x9d, 0xc2, 0xc1, 0x56, 0x78, 0x1a, 0x8d, 0xaa, 0x71, 0x92, 0xad,
+ 0x66, 0xc0, 0x7c, 0xd3,
+ 0x36, 0x3c, 0x21, 0xf3, 0x66, 0xe0, 0xc3, 0x56, 0xab, 0x9b, 0x20, 0x82,
+ 0xd8, 0xbd, 0x1b, 0x05,
+ 0xcd, 0xe2, 0xc1, 0x5c, 0x76, 0x29, 0x35, 0x1f, 0x15, 0x7c, 0x4e, 0x26,
+ 0xb2, 0x96, 0x87, 0xf6,
+ 0x6f, 0x3b, 0x60, 0x4b, 0x8a, 0xb2, 0xa9, 0x68, 0x81, 0x63, 0xbc, 0xce,
+ 0x7f, 0x52, 0xd6, 0x2a,
+ 0x94, 0xe5, 0x80, 0xe4, 0x9a, 0x7b, 0x5f, 0x21, 0x3f, 0x84, 0xd2, 0x6a,
+ 0x15, 0x79, 0x4a, 0xd9,
+ 0x5a, 0x44, 0x63, 0xd6, 0xaa, 0xe3, 0x86, 0xfa, 0x3e, 0x6e, 0x60, 0x45,
+ 0xab, 0x04, 0x2d, 0x0f,
+ 0xa1, 0x9a, 0x83, 0x79, 0xba, 0x2a, 0x70, 0xb3, 0x80, 0x89, 0x0e, 0xe1,
+ 0xc1, 0x2f, 0xb1, 0xfc,
+ 0x05, 0xc5, 0x66, 0xb2, 0xca, 0x10, 0xf7, 0x8f, 0x3c, 0x79, 0xc7, 0x1b,
+ 0x14, 0xfe, 0xe3, 0x60,
+ 0xfe, 0x1b, 0x86, 0x1d, 0xda, 0xd9, 0x01, 0xc6, 0x82, 0x9e, 0xa9, 0xbf,
+ 0x7e, 0xd5, 0x7f, 0x93,
+ 0x30, 0xba, 0x65, 0x2f, 0xea, 0x41, 0xd8, 0x1d, 0x83, 0x74, 0x1b, 0x90,
+ 0xc0, 0xa8, 0x18, 0x45,
+ 0xcb, 0x64, 0x85, 0x80, 0xfa, 0x88, 0x2e, 0x54, 0x3d, 0x93, 0x75, 0x34,
+ 0xaa, 0x83, 0x84, 0xb6,
+ 0xbb, 0x04, 0x6c, 0x7a, 0x0a, 0x35, 0x15, 0x65, 0x38, 0x57, 0x4a, 0xa7,
+ 0xa9, 0xc9, 0xbc, 0xbe,
+ 0x40, 0xda, 0x8c, 0xd5, 0x1a, 0xfc, 0xe3, 0x2c, 0x86, 0xb0, 0x24, 0x03,
+ 0xc3, 0xe2, 0x20, 0x4d,
+ 0x8e, 0x7b, 0x6f, 0xe7, 0x2a, 0x64, 0x3a, 0xf7, 0x87, 0x5a, 0x96, 0x2c,
+ 0x7d, 0x9f, 0x47, 0x9b,
+ 0x75, 0xa5, 0x8f, 0x48, 0x3a, 0xad, 0xcc, 0xbe, 0x39, 0xbd, 0xf8, 0x88,
+ 0x17, 0xb4, 0xdb, 0x68,
+ 0xd1, 0xfa, 0x6a, 0x83, 0x4a, 0x97, 0x4b, 0x82, 0x85, 0x4d, 0x31, 0x72,
+ 0xc2, 0x65, 0x89, 0xf4,
+ 0x2a, 0x24, 0x8a, 0x2c, 0x5a, 0x5e, 0xbd, 0xcb, 0x3b, 0xaa, 0x5f, 0xd6,
+ 0xa8, 0x4e, 0x15, 0x07,
+ 0xe4, 0x85, 0x69, 0x1e, 0x6a, 0xc6, 0x64, 0x10, 0x3a, 0x40, 0xed, 0xf9,
+ 0x16, 0x33, 0x72, 0xd1,
+ 0x1f, 0x5b, 0x89, 0xb1, 0x7a, 0x0f, 0x92, 0x59, 0x84, 0xa7, 0x83, 0x5d,
+ 0x7c, 0x18, 0xee, 0x22,
+ 0x04, 0x45, 0x78, 0x29, 0x49, 0x7f, 0x12, 0x72, 0x30, 0x0b, 0x93, 0x1c,
+ 0x10, 0xa7, 0x02, 0xc1,
+ 0xff, 0x9b, 0x98, 0x86, 0x59, 0xb6, 0xe4, 0x3b, 0x8e, 0xec, 0xfd, 0xb8,
+ 0x7a, 0x8c, 0x9e, 0x32,
+ 0x31, 0x3a, 0x7b, 0xb4, 0x69, 0x2e, 0x3d, 0xe0, 0x8f, 0x06, 0x4f, 0x97,
+ 0xc4, 0xf1, 0xf9, 0xe4,
+ 0xca, 0xe4, 0x9b, 0x1b, 0x79, 0xe7, 0xcb, 0xa9, 0x31, 0xe1, 0x21, 0x33,
+ 0xae, 0xda, 0x65, 0x17,
+ 0x6e, 0xbb, 0x7e, 0xd0, 0x09, 0xdd, 0x4c, 0x95, 0x8d, 0x11, 0xe8, 0xc9,
+ 0x7b, 0x0b, 0x37, 0x8b,
+ 0x95, 0x65, 0x9e, 0x7f, 0x19, 0x14, 0xba, 0xdc, 0x33, 0xf6, 0x86, 0x6d,
+ 0x11, 0x20, 0xab, 0x78,
+ 0x5b, 0xc4, 0x7d, 0x4d, 0x29, 0x8c, 0x63, 0x07, 0x32, 0x1c, 0x34, 0x42,
+ 0xaf, 0x5d, 0xcc, 0xae,
+ 0xa0, 0x1a, 0x9d, 0xe2, 0x39, 0x45, 0x95, 0x4e, 0x8c, 0xfb, 0x5a, 0xe6,
+ 0xc5, 0x76, 0x50, 0x5d,
+ 0xd0, 0x7a, 0x74, 0x18, 0xc9, 0xf8, 0xae, 0x7f, 0x89, 0x3f, 0x65, 0x75,
+ 0xc6, 0x3c, 0x68, 0x55,
+ 0x2b, 0xa4, 0x94, 0xb7, 0xd9, 0x31, 0x58, 0x36, 0x37, 0xd8, 0x0b, 0xd1,
+ 0xac, 0x17, 0xf4, 0xa6,
+ 0xe5, 0x05, 0x77, 0x85, 0xe9, 0xa9, 0x81, 0xed, 0x36, 0x32, 0xb9, 0xfe,
+ 0x12, 0x6a, 0x93, 0x70,
+ 0x1e, 0xdb, 0x97, 0x2a, 0xf9, 0x60, 0x77, 0xa4, 0x88, 0xd5, 0xd7, 0x5a,
+ 0x78, 0x41, 0x0f, 0x83,
+ 0xba, 0x84, 0x72, 0xe1, 0x89, 0x5a, 0xf0, 0x98, 0x34, 0x25, 0x1e, 0xa0,
+ 0xad, 0x90, 0x5d, 0x1f,
+ 0x41, 0x5a, 0x92, 0x4e, 0x99, 0x93, 0x06, 0xd1, 0x8a, 0xc2, 0x70, 0x04,
+ 0xc7, 0xbb, 0xc1, 0xec,
+ 0x8f, 0xfb, 0x71, 0x7c, 0xa9, 0x0b, 0xdf, 0x0a, 0x8b, 0x28, 0xc2, 0x2b,
+ 0x79, 0xc6, 0xa6, 0x3a,
+ 0x74, 0x25, 0x91, 0xd3, 0xb9, 0xc2, 0x29, 0x43, 0x35, 0xcf, 0xac, 0x8f,
+ 0x13, 0xed, 0x3a, 0xc9,
+ 0xb9, 0xc7, 0x50, 0x8f, 0xcf, 0xeb, 0x1c, 0x5c, 0x20, 0xb3, 0xe2, 0xa9,
+ 0xa1, 0x7b, 0xbd, 0x3f,
+ 0x42, 0x19, 0xb0, 0x20, 0xdf, 0x22, 0xea, 0x15, 0x9e, 0x54, 0x8c, 0x0d,
+ 0xcb, 0x50, 0x21, 0xcc,
+ 0x8c, 0xb8, 0x53, 0x12, 0xef, 0xba, 0x33, 0xce, 0x9f, 0xbe, 0x3e, 0x22,
+ 0x75, 0x2d, 0x46, 0x1a,
+ 0x77, 0x66, 0xb3, 0xbd, 0xff, 0x73, 0xc5, 0x87, 0x21, 0x59, 0x50, 0x86,
+ 0x1f, 0x06, 0xda, 0xe9,
+ 0xd3, 0x39, 0x56, 0x76, 0x8f, 0x49, 0x42, 0xbb, 0x9d, 0xa9, 0x99, 0x7c,
+ 0xca, 0xd7, 0x88, 0x75,
+ 0x28, 0xe7, 0xb6, 0xd9, 0x9f, 0x80, 0xb4, 0xf2, 0x23, 0x4e, 0xf7, 0xd8,
+ 0xa0, 0xfc, 0x14, 0x86,
+ 0xe6, 0x46, 0x55, 0xeb, 0xaf, 0x18, 0x6d, 0x29, 0x22, 0xa4, 0x45, 0xf7,
+ 0x1e, 0x81, 0x73, 0x50,
+ 0x1d, 0x98, 0xb5, 0x44, 0xbf, 0xd1, 0x9b, 0x60, 0x9c, 0x43, 0x2b, 0x53,
+ 0x74, 0xaa, 0xef, 0xa3,
+ 0x6d, 0xf8, 0x5c, 0xbe, 0x4f, 0x6c, 0xa0, 0x51, 0x99, 0x87, 0x14, 0xc0,
+ 0x77, 0xe0, 0xd7, 0xab,
+ 0x96, 0x26, 0xbc, 0x11, 0x5f, 0xa5, 0x56, 0x18, 0x27, 0x60, 0x7a, 0x64,
+ 0x1d, 0xcb, 0x4b, 0x58,
+ 0x58, 0x87, 0x5f, 0x23, 0x6f, 0x3d, 0x8f, 0xc3, 0x26, 0x8a, 0xc8, 0x4b,
+ 0xa3, 0xb6, 0x2c, 0x8e,
+ 0xa3, 0x59, 0xbf, 0x8c, 0x7f, 0xf4, 0x79, 0x8a, 0x98, 0x6d, 0xa6, 0xef,
+ 0xc9, 0x9d, 0xb0, 0x7d,
+ 0x07, 0x06, 0x5a, 0x47, 0x0f, 0xce, 0xfe, 0xb6, 0x24, 0x9d, 0x6f, 0x15,
+ 0x1c, 0x4c, 0xe2, 0xe1,
+ 0xfc, 0xd8, 0xba, 0xe8, 0x1f, 0x07, 0x08, 0xff, 0x9a, 0x7a, 0x01, 0xb1,
+ 0x76, 0x67, 0x7e, 0x12,
+ 0x32, 0x79, 0x59, 0xda, 0x2f, 0x9f, 0xd1, 0x24, 0x9b, 0x90, 0xb3, 0x9e,
+ 0xc8, 0x1a, 0x19, 0xc4,
+ 0xc9, 0xa7, 0xb9, 0x75, 0x3f, 0x56, 0x27, 0x6d, 0x25, 0x77, 0xdd, 0x3a,
+ 0xa2, 0x31, 0x85, 0x37,
+ 0xd2, 0xb9, 0x48, 0xed, 0x0c, 0x26, 0xa7, 0x46, 0x91, 0xdb, 0xcd, 0x7b,
+ 0xce, 0x8e, 0x69, 0xd4,
+ 0x29, 0x67, 0xa8, 0x42, 0x1c, 0xef, 0x51, 0x0f, 0x2f, 0x3c, 0xa3, 0xdf,
+ 0xa4, 0xa5, 0xf5, 0x27,
+ 0xe7, 0xc6, 0x4b, 0x70, 0x2c, 0x77, 0x88, 0xd4, 0x2e, 0xd6, 0x11, 0xf0,
+ 0x1a, 0xd8, 0x92, 0xf1,
+ 0x1c, 0x18, 0xab, 0xdf, 0x3c, 0xbe, 0x7e, 0x9d, 0x90, 0x31, 0x7f, 0x54,
+ 0x70, 0xf3, 0x0e, 0x02,
+ 0xb8, 0x47, 0x4e, 0x14, 0x4c, 0x84, 0xf9, 0xa1, 0x2c, 0xc1, 0xb6, 0xae,
+ 0xa5, 0x22, 0x5c, 0x9e,
+ 0x43, 0x99, 0xae, 0xbb, 0x5c, 0x4d, 0x0f, 0xe8, 0x92, 0x26, 0xd8, 0x0a,
+ 0xcf, 0x09, 0xc0, 0x6d,
+ 0x8d, 0x38, 0x4d, 0x89, 0x6c, 0xd5, 0xd6, 0x33, 0x93, 0xcc, 0x6a, 0x25,
+ 0x71, 0x74, 0xa7, 0xbb,
+ 0x76, 0xe6, 0xad, 0x26, 0x7c, 0x1c, 0x20, 0x7a, 0x2d, 0x2b, 0x04, 0x81,
+ 0x1b, 0x5f, 0x3b, 0x48,
+ 0x06, 0x86, 0x44, 0xdc, 0x8c, 0xa1, 0x1b, 0x4b, 0x28, 0xef, 0x3b, 0x12,
+ 0x18, 0x15, 0x03, 0x40,
+ 0xfd, 0x58, 0xa4, 0x73, 0x9c, 0x68, 0xed, 0x02, 0x96, 0x08, 0x55, 0xb6,
+ 0x72, 0x3e, 0x9f, 0xb3,
+ 0x33, 0xf9, 0x47, 0x41, 0xac, 0xf0, 0x34, 0xd9, 0x97, 0xe2, 0xe7, 0x99,
+ 0xcc, 0x43, 0xf8, 0x65,
+ 0xc8, 0x27, 0xa7, 0xee, 0xbc, 0x39, 0xc2, 0x90, 0x29, 0x05, 0x89, 0x3d,
+ 0xa6, 0x68, 0x64, 0x96,
+ 0x6c, 0x78, 0x42, 0x25, 0xcc, 0x03, 0x45, 0xac, 0x95, 0xf5, 0x40, 0xc7,
+ 0x73, 0xb9, 0x36, 0x0a,
+ 0x97, 0xa6, 0xa2, 0x8a, 0xdc, 0xca, 0xb3, 0xe5, 0x2b, 0x12, 0x2e, 0x63,
+ 0x19, 0x92, 0xaa, 0xf9,
+ 0x59, 0x07, 0x41, 0xb8, 0xec, 0x52, 0x6a, 0x3e, 0x2a, 0xf8, 0x9c, 0x4c,
+ 0xa7, 0xef, 0xcd, 0x2f,
+ 0xa2, 0xd9, 0xa1, 0x17, 0xfc, 0x9b, 0x9c, 0x77, 0x94, 0x1f, 0xf2, 0xe8,
+ 0xcd, 0xc4, 0x51, 0xdc,
+ 0xde, 0x76, 0xc0, 0x96, 0xd7, 0xa7, 0x91, 0xd0, 0xc1, 0xc6, 0xbb, 0x5f,
+ 0xfe, 0xa4, 0x6f, 0x54,
+ 0x25, 0xa8, 0x20, 0x39, 0xc7, 0x6e, 0x67, 0x99, 0x7f, 0x21, 0xd5, 0xfb,
+ 0x94, 0x8f, 0xf3, 0xa7,
+ 0xeb, 0x09, 0xc3, 0x0b, 0xf7, 0xf6, 0xbe, 0x42, 0x7e, 0xcb, 0x67, 0xd4,
+ 0x2a, 0xf2, 0x94, 0x71,
+ 0x10, 0xd7, 0x23, 0xa4, 0xe7, 0x3f, 0x48, 0x0b, 0xc0, 0x2c, 0x09, 0x70,
+ 0x40, 0xd9, 0x08, 0x82,
+ 0xb4, 0x88, 0xc6, 0x6f, 0x97, 0x05, 0xcf, 0x37, 0x7c, 0xdc, 0xc0, 0x8a,
+ 0x95, 0x08, 0x5a, 0x1e,
+ 0x4f, 0x56, 0x26, 0xc0, 0x87, 0xcc, 0x39, 0x7e, 0xc2, 0x3b, 0xae, 0x2e,
+ 0xff, 0x23, 0xc6, 0xed,
+ 0x81, 0xf7, 0xc5, 0xf2, 0xb7, 0x54, 0xe0, 0xa5, 0xc3, 0xd1, 0x1c, 0x01,
+ 0x41, 0x5e, 0xa1, 0x3b,
+ 0x7a, 0x29, 0x25, 0x5d, 0xa7, 0x9d, 0x16, 0xec, 0x7d, 0x36, 0x72, 0xa5,
+ 0x2b, 0x75, 0x3d, 0xc8,
+ 0x0a, 0x49, 0xcc, 0xa7, 0x57, 0x20, 0x2d, 0xdd, 0x78, 0xf2, 0x4d, 0x36,
+ 0x28, 0x3f, 0x05, 0xc0,
+ 0xf1, 0x97, 0x2c, 0x08, 0x47, 0xe9, 0xdb, 0x94, 0xc6, 0x15, 0x23, 0x92,
+ 0x42, 0x14, 0x99, 0x33,
+ 0x3f, 0x36, 0xcf, 0x3a, 0x77, 0x71, 0x02, 0x4f, 0xc7, 0xff, 0x91, 0xbd,
+ 0xfc, 0x69, 0xfe, 0xe5,
+ 0xc4, 0xe8, 0x2f, 0x95, 0x67, 0xb8, 0xf4, 0x06, 0x79, 0x18, 0xff, 0x19,
+ 0x96, 0x42, 0x62, 0x16,
+ 0x60, 0xb7, 0xca, 0x5e, 0x17, 0x82, 0x73, 0x3a, 0xc5, 0xe8, 0x36, 0xe3,
+ 0x43, 0x93, 0x30, 0x8a,
+ 0x9b, 0x69, 0x2a, 0xf1, 0x07, 0x4b, 0x85, 0x73, 0x7b, 0x0f, 0x58, 0x47,
+ 0x29, 0xb8, 0xac, 0x79,
+ 0x55, 0xc8, 0xc9, 0xc3, 0x37, 0xd3, 0x5c, 0xa8, 0x7a, 0xe5, 0xea, 0x68,
+ 0x97, 0xc5, 0xcb, 0xaf,
+ 0xae, 0x16, 0x29, 0x6c, 0x27, 0x1a, 0xaa, 0xe1, 0xc4, 0x02, 0x84, 0xcc,
+ 0xfd, 0xee, 0x57, 0x5c,
+ 0xb5, 0x08, 0xd8, 0xf4, 0x14, 0x6a, 0x2a, 0xca, 0x70, 0xae, 0x94, 0x8d,
+ 0x91, 0x51, 0xbb, 0xbf,
+ 0x4e, 0xd6, 0x38, 0x5b, 0x04, 0xa3, 0xdc, 0x83, 0xce, 0x49, 0xfa, 0x29,
+ 0xfb, 0x7a, 0x27, 0x4c,
+ 0x80, 0x77, 0xdb, 0x69, 0x34, 0x3b, 0x05, 0x58, 0xcf, 0xa3, 0x48, 0x06,
+ 0x45, 0x07, 0x40, 0x9a,
+ 0x7b, 0xa9, 0x3b, 0xc6, 0x24, 0xf2, 0xf3, 0x11, 0x71, 0x44, 0x26, 0xa2,
+ 0x2f, 0x2c, 0xdc, 0x69,
+ 0xdf, 0xf6, 0xde, 0x0d, 0x54, 0xc8, 0x74, 0x2d, 0xcd, 0xb4, 0xef, 0x58,
+ 0xfa, 0xfd, 0x8e, 0xf5,
+ 0x24, 0x28, 0x3e, 0xa2, 0x44, 0x01, 0x82, 0x64, 0x73, 0x53, 0x81, 0xfc,
+ 0x90, 0xd6, 0x12, 0x06,
+ 0xea, 0x89, 0xdd, 0x90, 0x74, 0x99, 0x5b, 0xbf, 0x72, 0xb9, 0x33, 0xd3,
+ 0x2e, 0xab, 0x75, 0xd0,
+ 0x11, 0x57, 0x3d, 0x3f, 0x64, 0x50, 0xad, 0xf6, 0xcc, 0x5e, 0x5d, 0x77,
+ 0x44, 0x80, 0xe9, 0x23,
+ 0x61, 0x37, 0xd4, 0xc5, 0x94, 0xed, 0x96, 0xc7, 0xc9, 0x9a, 0x62, 0xe4,
+ 0x47, 0xca, 0xd1, 0x2b,
+ 0x9a, 0xe9, 0x34, 0x6a, 0x84, 0x24, 0x60, 0x8e, 0x77, 0x7d, 0x0c, 0x40,
+ 0x2d, 0xe1, 0x4d, 0xd8,
+ 0x54, 0x48, 0xd7, 0x58, 0xb4, 0xbc, 0xb9, 0x55, 0x76, 0x97, 0xbe, 0x6f,
+ 0x93, 0x9c, 0x2a, 0x0e,
+ 0xaf, 0x96, 0x37, 0xf7, 0xa4, 0x75, 0x4f, 0x1c, 0xc8, 0x70, 0xd0, 0xcb,
+ 0xf9, 0xb7, 0xb6, 0xfd,
+ 0x0b, 0xc9, 0xd2, 0x3c, 0xd4, 0x4f, 0xc8, 0x20, 0x74, 0x80, 0x19, 0x31,
+ 0x2c, 0x66, 0xe4, 0x61,
+ 0xf0, 0x17, 0x32, 0x93, 0xc4, 0x86, 0x3e, 0x69, 0xca, 0x67, 0x77, 0x95,
+ 0x46, 0x4d, 0x78, 0x92,
+ 0x3e, 0xb6, 0xd1, 0xa1, 0xf4, 0x1e, 0xe7, 0xb2, 0xcb, 0x8d, 0xc5, 0xba,
+ 0xf8, 0x30, 0x1f, 0x44,
+ 0xc5, 0x68, 0x31, 0x0e, 0xe4, 0xd7, 0x11, 0xfb, 0x75, 0x6a, 0xab, 0x1e,
+ 0x92, 0x1b, 0x83, 0xb7,
+ 0x08, 0x8a, 0xf0, 0x52, 0x92, 0xfe, 0x24, 0xe4, 0x60, 0x16, 0xe5, 0x38,
+ 0x20, 0x8d, 0x04, 0x41,
+ 0xf3, 0x54, 0x10, 0xfd, 0x82, 0x37, 0xd2, 0xad, 0xde, 0xf1, 0x8b, 0x9c,
+ 0x4a, 0xa6, 0x98, 0xb2,
+ 0x3d, 0xf5, 0xf3, 0xcf, 0xb2, 0xaf, 0x0b, 0x76, 0xdf, 0x1b, 0x39, 0xb3,
+ 0xf4, 0xdb, 0xff, 0x64,
+ 0xc6, 0x2b, 0x13, 0x60, 0xa2, 0x66, 0xfd, 0x3f, 0x61, 0xfc, 0x57, 0x17,
+ 0x9e, 0xf0, 0x63, 0x97,
+ 0x62, 0x74, 0xf6, 0xab, 0xd2, 0x5c, 0x7a, 0x03, 0xdd, 0x0c, 0x9e, 0xed,
+ 0x4b, 0x21, 0x31, 0x0b,
+ 0x99, 0xaa, 0x16, 0x04, 0xc2, 0x95, 0x8c, 0x4a, 0x63, 0xeb, 0xf0, 0x49,
+ 0x21, 0x0a, 0xad, 0xf8,
+ 0x57, 0x0b, 0xf5, 0x36, 0xf2, 0x0d, 0x55, 0x91, 0x62, 0x01, 0x42, 0x66,
+ 0x9f, 0x77, 0xca, 0x2e,
+ 0xac, 0xd5, 0x15, 0x99, 0xe2, 0xc4, 0xa3, 0xd8, 0xdc, 0xe6, 0x2c, 0xc2,
+ 0xf5, 0x5c, 0x56, 0xdd,
+ 0xdc, 0xb5, 0xfc, 0x63, 0x12, 0x79, 0x98, 0xe9, 0xd9, 0x22, 0x13, 0x51,
+ 0xf6, 0x16, 0x6e, 0xd5,
+ 0x27, 0x6b, 0x1c, 0xcc, 0x02, 0xb0, 0x6e, 0xa0, 0x67, 0xc5, 0x7d, 0xf5,
+ 0x9c, 0x3d, 0xf2, 0x26,
+ 0xe9, 0xca, 0xff, 0xfe, 0x32, 0x28, 0xb7, 0x7b, 0x66, 0x2f, 0xcf, 0xda,
+ 0x22, 0x40, 0x95, 0xf0,
+ 0x12, 0x14, 0x1f, 0x51, 0x22, 0xe1, 0x41, 0x32, 0xd8, 0xc8, 0xa1, 0x7e,
+ 0x48, 0x6b, 0x09, 0x03,
+ 0xb6, 0x4b, 0xfa, 0x9a, 0x52, 0xdb, 0xc6, 0x0e, 0x64, 0x38, 0x68, 0x84,
+ 0x9d, 0xba, 0x5b, 0x9f,
+ 0x4d, 0x95, 0x1a, 0x35, 0x42, 0x12, 0x30, 0x47, 0xda, 0xdf, 0x06, 0x20,
+ 0xf7, 0x91, 0xc7, 0x6c,
+ 0x83, 0x34, 0xf9, 0x07, 0x72, 0x8a, 0xe9, 0x9c, 0xdb, 0x35, 0xb4, 0x0f,
+ 0x49, 0xec, 0xa0, 0xba,
+ 0x78, 0xea, 0x19, 0xa8, 0x62, 0x43, 0x1f, 0xd5, 0x65, 0xd2, 0xda, 0xab,
+ 0x23, 0xc7, 0x3c, 0x49,
+ 0x63, 0xf4, 0xe8, 0x30, 0x51, 0x33, 0x9f, 0xfe, 0xd1, 0x7e, 0xca, 0xea,
+ 0x4f, 0x78, 0xd0, 0xaa,
+ 0x98, 0x2a, 0x08, 0x9f, 0x41, 0xfa, 0x69, 0xb7, 0x6f, 0x99, 0xa4, 0x4e,
+ 0x25, 0x53, 0x4c, 0x59,
+ 0x56, 0x8b, 0xeb, 0xad, 0x71, 0x62, 0xb0, 0x6c, 0x6e, 0x73, 0x16, 0x61,
+ 0x9b, 0x2e, 0x2b, 0x8f,
+ 0xad, 0x55, 0x0b, 0x02, 0x61, 0xab, 0x46, 0x25, 0xd0, 0x94, 0x78, 0xc5,
+ 0xf1, 0x05, 0xb7, 0x7c,
+ 0x09, 0x0a, 0xee, 0xc9, 0x11, 0x91, 0xc1, 0x19, 0x6c, 0x64, 0xb1, 0x3f,
+ 0x24, 0xd4, 0xe5, 0xe0,
+ 0xf2, 0xd4, 0x0e, 0x66, 0x01, 0x58, 0x37, 0x50, 0xd2, 0x83, 0xdf, 0x9b,
+ 0x4e, 0xff, 0x79, 0x13,
+ 0x3c, 0x75, 0xed, 0x54, 0x31, 0xc0, 0xee, 0x8b, 0xd3, 0x69, 0x6d, 0xb4,
+ 0xf0, 0x82, 0x1e, 0xc5,
+ 0xc7, 0xab, 0x0d, 0xfb, 0x21, 0x09, 0x18, 0xc2, 0x6d, 0x8e, 0x03, 0x10,
+ 0x9a, 0xa9, 0x82, 0x36,
+ 0xb7, 0xcb, 0xe4, 0x01, 0xd1, 0xb4, 0x23, 0xf3, 0x68, 0x4a, 0x3c, 0x83,
+ 0x99, 0xe3, 0xba, 0x3e,
+ 0x4c, 0x15, 0x04, 0xae, 0xc1, 0x7d, 0xd5, 0xba, 0xd6, 0xad, 0x52, 0x27,
+ 0xf3, 0xc8, 0x26, 0xcd,
+ 0x82, 0xb4, 0xe7, 0x9c, 0xf1, 0xe5, 0x0c, 0x61, 0xd7, 0x47, 0xe0, 0x08,
+ 0x4d, 0xb5, 0x41, 0x1b,
+ 0x79, 0x6a, 0x07, 0x33, 0xe1, 0x2c, 0xfa, 0x28, 0x69, 0xa0, 0x8e, 0xac,
+ 0x27, 0x9e, 0xdd, 0xe8,
+ 0xdd, 0x35, 0xe2, 0xf8, 0x91, 0x16, 0x7d, 0x14, 0xd5, 0x50, 0x47, 0x56,
+ 0xf2, 0x4f, 0x8f, 0x74,
+ 0x26, 0xeb, 0x02, 0x57, 0x81, 0xdf, 0x8b, 0x5d, 0x6b, 0xb7, 0x29, 0xf2,
+ 0x98, 0x64, 0x13, 0x87,
+ 0xe8, 0x4a, 0xe1, 0x65, 0xb1, 0x47, 0x52, 0x86, 0x6a, 0x5d, 0x9b, 0xdd,
+ 0x26, 0x19, 0x74, 0x51,
+ 0x13, 0x94, 0x01, 0xca, 0xa1, 0x8e, 0xa4, 0xcf, 0xd4, 0xba, 0xf5, 0x79,
+ 0x4c, 0x32, 0xe8, 0xa2,
+ 0xb1, 0x4d, 0xa0, 0xdd, 0x5d, 0x15, 0x38, 0xb8, 0x40, 0xa5, 0x07, 0x91,
+ 0x81, 0xf6, 0xb9, 0x7e,
+ 0x4a, 0x93, 0x40, 0x72, 0x4d, 0xdc, 0xce, 0xf1, 0xfe, 0x42, 0x69, 0x35,
+ 0xeb, 0xdd, 0x25, 0x8d,
+ 0x84, 0x32, 0xa3, 0x40, 0x7d, 0x44, 0x17, 0x2a, 0xff, 0xa8, 0xdb, 0x1a,
+ 0x55, 0xa0, 0x42, 0x5b,
+ 0x7f, 0xec, 0x43, 0xef, 0x6d, 0x8d, 0xe1, 0x63, 0x41, 0x4f, 0xb5, 0xbe,
+ 0x3f, 0x8b, 0xde, 0xa8,
+ 0xdb, 0xb3, 0xa6, 0x24, 0x1d, 0xb7, 0x66, 0x5f, 0xfd, 0xbf, 0x7c, 0x44,
+ 0xea, 0x5a, 0x8c, 0x34,
+ 0x20, 0x6d, 0x46, 0x8b, 0x0d, 0x7e, 0x90, 0x16, 0x43, 0x58, 0x12, 0xe0,
+ 0x80, 0x71, 0x10, 0xc7,
+ 0xee, 0xcc, 0xa5, 0xb9, 0x3d, 0xe6, 0x49, 0xcd, 0x42, 0xb2, 0xa0, 0xcf,
+ 0x3e, 0x0c, 0x77, 0x11,
+ 0x15, 0x12, 0x45, 0x16, 0x2d, 0x2f, 0xbf, 0x84, 0xfc, 0x55, 0xce, 0x6b,
+ 0x54, 0x27, 0xeb, 0xe2,
+ 0x65, 0x72, 0xac, 0xec, 0xdd, 0x92, 0x84, 0xb5, 0xf9, 0x91, 0xf1, 0xf8,
+ 0x57, 0x6d, 0xd3, 0xea,
+ 0x9e, 0xac, 0x4c, 0x43, 0xcd, 0x5b, 0x72, 0xfc, 0x47, 0x76, 0x9f, 0x5c,
+ 0x3d, 0x46, 0x4f, 0x19,
+ 0x50, 0x0d, 0xaf, 0x71, 0xfd, 0xc3, 0xab, 0x27, 0x46, 0x9c, 0x2d, 0x73,
+ 0x83, 0x3b, 0x28, 0xcf,
+ 0xab, 0xd3, 0x4f, 0xde, 0xed, 0x0a, 0x5d, 0x6e, 0xf8, 0x7b, 0x43, 0xd7,
+ 0xe9, 0x10, 0xb4, 0x3c,
+ 0x0f, 0x8c, 0xaa, 0x15, 0x9d, 0x30, 0xda, 0x52, 0x44, 0x8b, 0x8a, 0x2d,
+ 0x3c, 0xc1, 0xe6, 0xa0,
+ 0xf4, 0x52, 0x4a, 0xba, 0x8d, 0xf9, 0x2c, 0x1b, 0xfa, 0x6c, 0xe4, 0x89,
+ 0x56, 0xea, 0x7a, 0x53,
+ 0x3a, 0xf3, 0xa9, 0x88, 0xbd, 0x61, 0xf5, 0xc0, 0xfb, 0x86, 0x56, 0xa6,
+ 0xe8, 0x97, 0x1d, 0x85,
+ 0xc1, 0x2d, 0x49, 0x27, 0xad, 0xa8, 0x03, 0x89, 0x45, 0x61, 0x38, 0x02,
+ 0x82, 0xbc, 0x81, 0x76,
+ 0xda, 0x33, 0xb8, 0xbf, 0x9e, 0xd8, 0x83, 0xa2, 0xf1, 0xcd, 0x28, 0x43,
+ 0xee, 0x03, 0x6d, 0x95,
+ 0x21, 0xed, 0x58, 0x10, 0x8e, 0x11, 0x75, 0xeb, 0x4f, 0x2a, 0x46, 0xe7,
+ 0x84, 0x28, 0xf1, 0x66,
+ 0xef, 0x4c, 0xbb, 0x22, 0xbe, 0x89, 0xac, 0x30, 0x4e, 0xc0, 0xf4, 0xc8,
+ 0x3a, 0x55, 0x96, 0xb0,
+ 0x14, 0x92, 0x5b, 0x8d, 0xae, 0x40, 0x5a, 0x79, 0xf0, 0x27, 0x9a, 0x6c,
+ 0x50, 0x7e, 0x0a, 0x43,
+ 0xb0, 0xcd, 0xbe, 0x46, 0xde, 0x7a, 0xdd, 0x45, 0x4c, 0xd7, 0x53, 0x96,
+ 0x85, 0xaf, 0x58, 0xdf,
+ 0x4b, 0x13, 0x5e, 0xe9, 0xce, 0xb3, 0x2b, 0x0c, 0xf2, 0x30, 0x3d, 0x32,
+ 0xef, 0x84, 0xc4, 0x2c,
+ 0x85, 0xb2, 0xbd, 0xdb, 0xfe, 0x2b, 0xf2, 0xd7, 0xf3, 0xda, 0x8f, 0x1d,
+ 0x51, 0xf9, 0xa3, 0xfa,
+ 0x7e, 0x6c, 0x5d, 0x74, 0xee, 0xe2, 0x04, 0x9e, 0x4d, 0x3d, 0xe1, 0xb9,
+ 0x3b, 0xd2, 0x3f, 0x09,
+ 0x0e, 0x0c, 0xb4, 0x8e, 0x1e, 0x5f, 0x3f, 0xaf, 0x48, 0xf9, 0xde, 0x2a,
+ 0x38, 0x98, 0x07, 0x01,
+ 0xf5, 0xd2, 0x54, 0x21, 0x0e, 0x96, 0xc9, 0xe6, 0xf6, 0x1e, 0xb0, 0x8e,
+ 0x52, 0xb3, 0x9b, 0xf2,
+ 0x3b, 0x73, 0xb7, 0x13, 0x3e, 0x0e, 0x10, 0x3d, 0xf7, 0xf4, 0x02, 0xa1,
+ 0xec, 0xce, 0xfc, 0x24,
+ 0xc0, 0xad, 0x57, 0xbc, 0x2e, 0xc7, 0xe6, 0x74, 0x49, 0x13, 0x6c, 0x05,
+ 0x86, 0xe5, 0x60, 0xd7,
+ 0x64, 0xf2, 0xb2, 0x77, 0x5e, 0xfd, 0x61, 0x48, 0xf5, 0xe3, 0xa5, 0xff,
+ 0x53, 0x34, 0x32, 0x4b,
+ 0x9f, 0x2c, 0x52, 0xd8, 0x4e, 0x34, 0x97, 0x01, 0x4b, 0x04, 0xcb, 0x5b,
+ 0x39, 0x1f, 0xae, 0xb8,
+ 0x51, 0x8d, 0xb1, 0xea, 0x7e, 0xac, 0x4e, 0xda, 0x4a, 0xee, 0x79, 0x74,
+ 0x87, 0x62, 0xc9, 0x6e,
+ 0xaa, 0x53, 0x51, 0x45, 0x6e, 0x65, 0xb8, 0x93, 0xf4, 0x09, 0x17, 0xd0,
+ 0xed, 0x49, 0x55, 0x9d,
+ 0x67, 0xb1, 0x90, 0x19, 0x18, 0x4c, 0x8d, 0x8c, 0xe1, 0x75, 0x59, 0xf6,
+ 0x5f, 0xdf, 0xd2, 0x6b,
+ 0x9c, 0x6f, 0x70, 0xb6, 0x08, 0x85, 0x7b, 0xc5, 0x5f, 0x92, 0x37, 0x52,
+ 0x35, 0xf4, 0x4e, 0x98,
+ 0x52, 0xce, 0x93, 0x84, 0x38, 0x1d, 0xa2, 0x1e, 0x5e, 0x78, 0x85, 0x7d,
+ 0x8b, 0x89, 0x29, 0x4e,
+ 0xa9, 0x10, 0x73, 0x2b, 0x28, 0xd4, 0x54, 0x57, 0xe0, 0x9f, 0xeb, 0xd9,
+ 0xe1, 0xa2, 0xb5, 0xbd,
+ 0x0d, 0x4f, 0x96, 0xe0, 0x58, 0xee, 0xd3, 0x6b, 0x5c, 0x6f, 0x22, 0x23,
+ 0x34, 0x73, 0xe7, 0x21,
+ 0xf6, 0x91, 0x76, 0x4f, 0x48, 0x27, 0x25, 0x22, 0xe2, 0x88, 0x4c, 0x87,
+ 0x5e, 0x58, 0x7b, 0xd2,
+ 0x38, 0x30, 0x95, 0x7d, 0x78, 0xbf, 0xfc, 0xf9, 0xe3, 0x62, 0xfe, 0xa8,
+ 0xe0, 0x25, 0x1c, 0x04,
+ 0xc3, 0xee, 0x75, 0xd2, 0x68, 0x76, 0x0a, 0xb0, 0x5d, 0x85, 0x90, 0x0c,
+ 0x8a, 0x0e, 0x80, 0xf7,
+ 0xb3, 0x8e, 0x9c, 0x28, 0x98, 0xcb, 0x31, 0x81, 0x58, 0x41, 0xaf, 0x9f,
+ 0x89, 0x44, 0xb8, 0xff,
+ 0x48, 0x50, 0x7c, 0x87, 0x88, 0x02, 0xc7, 0xc8, 0xe6, 0xa6, 0xc1, 0x3b,
+ 0xe3, 0x6f, 0x24, 0x0c,
+ 0x86, 0xf1, 0x9f, 0xb5, 0xb8, 0x9a, 0x1e, 0x13, 0xe7, 0x4c, 0x73, 0x14,
+ 0x5d, 0x12, 0x43, 0xda,
+ 0x7d, 0x2f, 0x7f, 0x1a, 0xa8, 0x53, 0xe8, 0x5a, 0x59, 0xab, 0x1d, 0xb0,
+ 0x37, 0x39, 0xdf, 0x29,
+ 0xd9, 0x70, 0x9a, 0xd1, 0xd8, 0x69, 0x6f, 0x66, 0xe5, 0x5b, 0xd4, 0x4a,
+ 0xe2, 0xe8, 0x8d, 0xb5,
+ 0x22, 0xae, 0x7a, 0x7e, 0xc8, 0xa0, 0x99, 0x2f, 0x5b, 0xbc, 0xba, 0xee,
+ 0x88, 0xc3, 0x11, 0x46,
+ 0xec, 0x0f, 0x99, 0x4c, 0xf8, 0x38, 0x40, 0xf4, 0x5a, 0x56, 0x08, 0xc1,
+ 0x36, 0xbe, 0x76, 0x90,
+ 0x17, 0xd1, 0x79, 0xe3, 0xe8, 0xf1, 0xb6, 0xbd, 0xe4, 0xb1, 0x66, 0x65,
+ 0x5c, 0x95, 0xea, 0x63,
+ 0x0c, 0xcf, 0x88, 0x7b, 0xdb, 0x81, 0x36, 0x96, 0x50, 0x1d, 0x76, 0x24,
+ 0x30, 0x2a, 0x06, 0x80,
+ 0xf7, 0x11, 0x68, 0xd4, 0xcb, 0x48, 0xc0, 0xdf, 0xee, 0xfa, 0x18, 0x80,
+ 0x5a, 0x01, 0x9a, 0x73,
+ 0x39, 0xb0, 0x8b, 0xe6, 0xfb, 0xd0, 0x19, 0x04, 0xef, 0x10, 0xaa, 0xaf,
+ 0xe4, 0x7c, 0xfd, 0xa5,
+ 0xc2, 0x6e, 0x6b, 0x49, 0xeb, 0x19, 0xef, 0x4d, 0x51, 0xf7, 0xc4, 0x0b,
+ 0x8e, 0x57, 0x61, 0x56,
+ 0x66, 0x31, 0x8e, 0x82, 0x9b, 0x23, 0x68, 0x71, 0xed, 0x07, 0x0d, 0xf1,
+ 0x5b, 0x86, 0x33, 0xca,
+ 0x9d, 0xef, 0x6e, 0x2d, 0x8b, 0xea, 0x9e, 0x38, 0x53, 0xe0, 0x63, 0x55,
+ 0x31, 0xad, 0xaf, 0x39,
+ 0x53, 0x4e, 0x8d, 0x1f, 0xbb, 0x72, 0x47, 0xe3, 0x52, 0x0a, 0xd1, 0x7a,
+ 0x8f, 0xd0, 0xc8, 0xef,
+ 0xa8, 0x90, 0x6d, 0xb0, 0xab, 0xbb, 0xb1, 0xaa, 0xec, 0xed, 0xbf, 0xde,
+ 0xe5, 0xfb, 0x54, 0x1c,
+ 0xd8, 0xf0, 0x84, 0x4a, 0x5b, 0x06, 0x8a, 0x9b, 0xe9, 0x29, 0x80, 0x4d,
+ 0xe6, 0xb1, 0x6c, 0x14,
+ 0x23, 0x2e, 0x64, 0xe5, 0x4b, 0xcf, 0x7c, 0xd2, 0x57, 0xce, 0xee, 0xe9,
+ 0x8c, 0x9a, 0xf0, 0xe7,
+ 0xed, 0x8f, 0x87, 0xd7, 0x7b, 0x57, 0xa5, 0x09, 0x56, 0x24, 0x5c, 0xc6,
+ 0x32, 0xe7, 0x97, 0x31,
+ 0x16, 0x51, 0x67, 0x78, 0x6b, 0x9e, 0x53, 0x40, 0xe8, 0xc3, 0x32, 0x62,
+ 0x58, 0xcc, 0x0b, 0xc2,
+ 0xb2, 0x0e, 0x82, 0xb3, 0x1b, 0xa4, 0xd4, 0x7c, 0x54, 0x33, 0xfb, 0x98,
+ 0x8d, 0x1d, 0x59, 0x5e,
+ 0x49, 0xd0, 0x62, 0x1c, 0x0b, 0x6d, 0x22, 0x35, 0xea, 0xd4, 0x95, 0x3c,
+ 0xe7, 0x36, 0xc5, 0xad,
+ 0x87, 0x71, 0x81, 0x2e, 0x3b, 0xf5, 0xfb, 0xee, 0xeb, 0x3e, 0x27, 0x13,
+ 0x59, 0x4b, 0xa2, 0x7b,
+ 0x7c, 0xaf, 0x61, 0x81, 0x2b, 0x3c, 0x0d, 0xa7, 0x55, 0xd9, 0x49, 0xb7,
+ 0x33, 0x60, 0x3e, 0x88,
+ },
+ { /* 9 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x6f, 0x5a, 0x3d, 0xbf, 0xad, 0xee, 0xab, 0xf1, 0xc4, 0xaf, 0x02,
+ 0xd6, 0x1c, 0x89, 0xf2,
+ 0x02, 0xde, 0xb4, 0x7a, 0xbd, 0x99, 0x1f, 0x95, 0x21, 0x4b, 0x9d, 0x04,
+ 0x6f, 0x38, 0xd1, 0x27,
+ 0x03, 0xb1, 0xee, 0x47, 0x02, 0x34, 0xf1, 0x3e, 0xd0, 0x8f, 0x32, 0x06,
+ 0xb9, 0x24, 0x58, 0xd5,
+ 0x04, 0x7f, 0xab, 0xf4, 0xb9, 0xf1, 0x3e, 0xe9, 0x42, 0x96, 0xf9, 0x08,
+ 0xde, 0x70, 0x61, 0x4e,
+ 0x05, 0x10, 0xf1, 0xc9, 0x06, 0x5c, 0xd0, 0x42, 0xb3, 0x52, 0x56, 0x0a,
+ 0x08, 0x6c, 0xe8, 0xbc,
+ 0x06, 0xa1, 0x1f, 0x8e, 0x04, 0x68, 0x21, 0x7c, 0x63, 0xdd, 0x64, 0x0c,
+ 0xb1, 0x48, 0xb0, 0x69,
+ 0x07, 0xce, 0x45, 0xb3, 0xbb, 0xc5, 0xcf, 0xd7, 0x92, 0x19, 0xcb, 0x0e,
+ 0x67, 0x54, 0x39, 0x9b,
+ 0x08, 0xfe, 0x95, 0x2b, 0xb1, 0x21, 0x7c, 0x11, 0x84, 0xef, 0x31, 0x10,
+ 0x7f, 0xe0, 0xc2, 0x9c,
+ 0x09, 0x91, 0xcf, 0x16, 0x0e, 0x8c, 0x92, 0xba, 0x75, 0x2b, 0x9e, 0x12,
+ 0xa9, 0xfc, 0x4b, 0x6e,
+ 0x0a, 0x20, 0x21, 0x51, 0x0c, 0xb8, 0x63, 0x84, 0xa5, 0xa4, 0xac, 0x14,
+ 0x10, 0xd8, 0x13, 0xbb,
+ 0x0b, 0x4f, 0x7b, 0x6c, 0xb3, 0x15, 0x8d, 0x2f, 0x54, 0x60, 0x03, 0x16,
+ 0xc6, 0xc4, 0x9a, 0x49,
+ 0x0c, 0x81, 0x3e, 0xdf, 0x08, 0xd0, 0x42, 0xf8, 0xc6, 0x79, 0xc8, 0x18,
+ 0xa1, 0x90, 0xa3, 0xd2,
+ 0x0d, 0xee, 0x64, 0xe2, 0xb7, 0x7d, 0xac, 0x53, 0x37, 0xbd, 0x67, 0x1a,
+ 0x77, 0x8c, 0x2a, 0x20,
+ 0x0e, 0x5f, 0x8a, 0xa5, 0xb5, 0x49, 0x5d, 0x6d, 0xe7, 0x32, 0x55, 0x1c,
+ 0xce, 0xa8, 0x72, 0xf5,
+ 0x0f, 0x30, 0xd0, 0x98, 0x0a, 0xe4, 0xb3, 0xc6, 0x16, 0xf6, 0xfa, 0x1e,
+ 0x18, 0xb4, 0xfb, 0x07,
+ 0x10, 0x3f, 0xe9, 0x56, 0xa1, 0x42, 0xf8, 0x22, 0xcb, 0x1d, 0x62, 0x20,
+ 0xfe, 0x03, 0x47, 0xfb,
+ 0x11, 0x50, 0xb3, 0x6b, 0x1e, 0xef, 0x16, 0x89, 0x3a, 0xd9, 0xcd, 0x22,
+ 0x28, 0x1f, 0xce, 0x09,
+ 0x12, 0xe1, 0x5d, 0x2c, 0x1c, 0xdb, 0xe7, 0xb7, 0xea, 0x56, 0xff, 0x24,
+ 0x91, 0x3b, 0x96, 0xdc,
+ 0x13, 0x8e, 0x07, 0x11, 0xa3, 0x76, 0x09, 0x1c, 0x1b, 0x92, 0x50, 0x26,
+ 0x47, 0x27, 0x1f, 0x2e,
+ 0x14, 0x40, 0x42, 0xa2, 0x18, 0xb3, 0xc6, 0xcb, 0x89, 0x8b, 0x9b, 0x28,
+ 0x20, 0x73, 0x26, 0xb5,
+ 0x15, 0x2f, 0x18, 0x9f, 0xa7, 0x1e, 0x28, 0x60, 0x78, 0x4f, 0x34, 0x2a,
+ 0xf6, 0x6f, 0xaf, 0x47,
+ 0x16, 0x9e, 0xf6, 0xd8, 0xa5, 0x2a, 0xd9, 0x5e, 0xa8, 0xc0, 0x06, 0x2c,
+ 0x4f, 0x4b, 0xf7, 0x92,
+ 0x17, 0xf1, 0xac, 0xe5, 0x1a, 0x87, 0x37, 0xf5, 0x59, 0x04, 0xa9, 0x2e,
+ 0x99, 0x57, 0x7e, 0x60,
+ 0x18, 0xc1, 0x7c, 0x7d, 0x10, 0x63, 0x84, 0x33, 0x4f, 0xf2, 0x53, 0x30,
+ 0x81, 0xe3, 0x85, 0x67,
+ 0x19, 0xae, 0x26, 0x40, 0xaf, 0xce, 0x6a, 0x98, 0xbe, 0x36, 0xfc, 0x32,
+ 0x57, 0xff, 0x0c, 0x95,
+ 0x1a, 0x1f, 0xc8, 0x07, 0xad, 0xfa, 0x9b, 0xa6, 0x6e, 0xb9, 0xce, 0x34,
+ 0xee, 0xdb, 0x54, 0x40,
+ 0x1b, 0x70, 0x92, 0x3a, 0x12, 0x57, 0x75, 0x0d, 0x9f, 0x7d, 0x61, 0x36,
+ 0x38, 0xc7, 0xdd, 0xb2,
+ 0x1c, 0xbe, 0xd7, 0x89, 0xa9, 0x92, 0xba, 0xda, 0x0d, 0x64, 0xaa, 0x38,
+ 0x5f, 0x93, 0xe4, 0x29,
+ 0x1d, 0xd1, 0x8d, 0xb4, 0x16, 0x3f, 0x54, 0x71, 0xfc, 0xa0, 0x05, 0x3a,
+ 0x89, 0x8f, 0x6d, 0xdb,
+ 0x1e, 0x60, 0x63, 0xf3, 0x14, 0x0b, 0xa5, 0x4f, 0x2c, 0x2f, 0x37, 0x3c,
+ 0x30, 0xab, 0x35, 0x0e,
+ 0x1f, 0x0f, 0x39, 0xce, 0xab, 0xa6, 0x4b, 0xe4, 0xdd, 0xeb, 0x98, 0x3e,
+ 0xe6, 0xb7, 0xbc, 0xfc,
+ 0x20, 0x7e, 0x11, 0xac, 0x81, 0x84, 0x33, 0x44, 0x55, 0x3a, 0xc4, 0x40,
+ 0x3f, 0x06, 0x8e, 0x35,
+ 0x21, 0x11, 0x4b, 0x91, 0x3e, 0x29, 0xdd, 0xef, 0xa4, 0xfe, 0x6b, 0x42,
+ 0xe9, 0x1a, 0x07, 0xc7,
+ 0x22, 0xa0, 0xa5, 0xd6, 0x3c, 0x1d, 0x2c, 0xd1, 0x74, 0x71, 0x59, 0x44,
+ 0x50, 0x3e, 0x5f, 0x12,
+ 0x23, 0xcf, 0xff, 0xeb, 0x83, 0xb0, 0xc2, 0x7a, 0x85, 0xb5, 0xf6, 0x46,
+ 0x86, 0x22, 0xd6, 0xe0,
+ 0x24, 0x01, 0xba, 0x58, 0x38, 0x75, 0x0d, 0xad, 0x17, 0xac, 0x3d, 0x48,
+ 0xe1, 0x76, 0xef, 0x7b,
+ 0x25, 0x6e, 0xe0, 0x65, 0x87, 0xd8, 0xe3, 0x06, 0xe6, 0x68, 0x92, 0x4a,
+ 0x37, 0x6a, 0x66, 0x89,
+ 0x26, 0xdf, 0x0e, 0x22, 0x85, 0xec, 0x12, 0x38, 0x36, 0xe7, 0xa0, 0x4c,
+ 0x8e, 0x4e, 0x3e, 0x5c,
+ 0x27, 0xb0, 0x54, 0x1f, 0x3a, 0x41, 0xfc, 0x93, 0xc7, 0x23, 0x0f, 0x4e,
+ 0x58, 0x52, 0xb7, 0xae,
+ 0x28, 0x80, 0x84, 0x87, 0x30, 0xa5, 0x4f, 0x55, 0xd1, 0xd5, 0xf5, 0x50,
+ 0x40, 0xe6, 0x4c, 0xa9,
+ 0x29, 0xef, 0xde, 0xba, 0x8f, 0x08, 0xa1, 0xfe, 0x20, 0x11, 0x5a, 0x52,
+ 0x96, 0xfa, 0xc5, 0x5b,
+ 0x2a, 0x5e, 0x30, 0xfd, 0x8d, 0x3c, 0x50, 0xc0, 0xf0, 0x9e, 0x68, 0x54,
+ 0x2f, 0xde, 0x9d, 0x8e,
+ 0x2b, 0x31, 0x6a, 0xc0, 0x32, 0x91, 0xbe, 0x6b, 0x01, 0x5a, 0xc7, 0x56,
+ 0xf9, 0xc2, 0x14, 0x7c,
+ 0x2c, 0xff, 0x2f, 0x73, 0x89, 0x54, 0x71, 0xbc, 0x93, 0x43, 0x0c, 0x58,
+ 0x9e, 0x96, 0x2d, 0xe7,
+ 0x2d, 0x90, 0x75, 0x4e, 0x36, 0xf9, 0x9f, 0x17, 0x62, 0x87, 0xa3, 0x5a,
+ 0x48, 0x8a, 0xa4, 0x15,
+ 0x2e, 0x21, 0x9b, 0x09, 0x34, 0xcd, 0x6e, 0x29, 0xb2, 0x08, 0x91, 0x5c,
+ 0xf1, 0xae, 0xfc, 0xc0,
+ 0x2f, 0x4e, 0xc1, 0x34, 0x8b, 0x60, 0x80, 0x82, 0x43, 0xcc, 0x3e, 0x5e,
+ 0x27, 0xb2, 0x75, 0x32,
+ 0x30, 0x41, 0xf8, 0xfa, 0x20, 0xc6, 0xcb, 0x66, 0x9e, 0x27, 0xa6, 0x60,
+ 0xc1, 0x05, 0xc9, 0xce,
+ 0x31, 0x2e, 0xa2, 0xc7, 0x9f, 0x6b, 0x25, 0xcd, 0x6f, 0xe3, 0x09, 0x62,
+ 0x17, 0x19, 0x40, 0x3c,
+ 0x32, 0x9f, 0x4c, 0x80, 0x9d, 0x5f, 0xd4, 0xf3, 0xbf, 0x6c, 0x3b, 0x64,
+ 0xae, 0x3d, 0x18, 0xe9,
+ 0x33, 0xf0, 0x16, 0xbd, 0x22, 0xf2, 0x3a, 0x58, 0x4e, 0xa8, 0x94, 0x66,
+ 0x78, 0x21, 0x91, 0x1b,
+ 0x34, 0x3e, 0x53, 0x0e, 0x99, 0x37, 0xf5, 0x8f, 0xdc, 0xb1, 0x5f, 0x68,
+ 0x1f, 0x75, 0xa8, 0x80,
+ 0x35, 0x51, 0x09, 0x33, 0x26, 0x9a, 0x1b, 0x24, 0x2d, 0x75, 0xf0, 0x6a,
+ 0xc9, 0x69, 0x21, 0x72,
+ 0x36, 0xe0, 0xe7, 0x74, 0x24, 0xae, 0xea, 0x1a, 0xfd, 0xfa, 0xc2, 0x6c,
+ 0x70, 0x4d, 0x79, 0xa7,
+ 0x37, 0x8f, 0xbd, 0x49, 0x9b, 0x03, 0x04, 0xb1, 0x0c, 0x3e, 0x6d, 0x6e,
+ 0xa6, 0x51, 0xf0, 0x55,
+ 0x38, 0xbf, 0x6d, 0xd1, 0x91, 0xe7, 0xb7, 0x77, 0x1a, 0xc8, 0x97, 0x70,
+ 0xbe, 0xe5, 0x0b, 0x52,
+ 0x39, 0xd0, 0x37, 0xec, 0x2e, 0x4a, 0x59, 0xdc, 0xeb, 0x0c, 0x38, 0x72,
+ 0x68, 0xf9, 0x82, 0xa0,
+ 0x3a, 0x61, 0xd9, 0xab, 0x2c, 0x7e, 0xa8, 0xe2, 0x3b, 0x83, 0x0a, 0x74,
+ 0xd1, 0xdd, 0xda, 0x75,
+ 0x3b, 0x0e, 0x83, 0x96, 0x93, 0xd3, 0x46, 0x49, 0xca, 0x47, 0xa5, 0x76,
+ 0x07, 0xc1, 0x53, 0x87,
+ 0x3c, 0xc0, 0xc6, 0x25, 0x28, 0x16, 0x89, 0x9e, 0x58, 0x5e, 0x6e, 0x78,
+ 0x60, 0x95, 0x6a, 0x1c,
+ 0x3d, 0xaf, 0x9c, 0x18, 0x97, 0xbb, 0x67, 0x35, 0xa9, 0x9a, 0xc1, 0x7a,
+ 0xb6, 0x89, 0xe3, 0xee,
+ 0x3e, 0x1e, 0x72, 0x5f, 0x95, 0x8f, 0x96, 0x0b, 0x79, 0x15, 0xf3, 0x7c,
+ 0x0f, 0xad, 0xbb, 0x3b,
+ 0x3f, 0x71, 0x28, 0x62, 0x2a, 0x22, 0x78, 0xa0, 0x88, 0xd1, 0x5c, 0x7e,
+ 0xd9, 0xb1, 0x32, 0xc9,
+ 0x40, 0xfc, 0x22, 0x9b, 0xc1, 0xcb, 0x66, 0x88, 0xaa, 0x74, 0x4b, 0x80,
+ 0x7e, 0x0c, 0xdf, 0x6a,
+ 0x41, 0x93, 0x78, 0xa6, 0x7e, 0x66, 0x88, 0x23, 0x5b, 0xb0, 0xe4, 0x82,
+ 0xa8, 0x10, 0x56, 0x98,
+ 0x42, 0x22, 0x96, 0xe1, 0x7c, 0x52, 0x79, 0x1d, 0x8b, 0x3f, 0xd6, 0x84,
+ 0x11, 0x34, 0x0e, 0x4d,
+ 0x43, 0x4d, 0xcc, 0xdc, 0xc3, 0xff, 0x97, 0xb6, 0x7a, 0xfb, 0x79, 0x86,
+ 0xc7, 0x28, 0x87, 0xbf,
+ 0x44, 0x83, 0x89, 0x6f, 0x78, 0x3a, 0x58, 0x61, 0xe8, 0xe2, 0xb2, 0x88,
+ 0xa0, 0x7c, 0xbe, 0x24,
+ 0x45, 0xec, 0xd3, 0x52, 0xc7, 0x97, 0xb6, 0xca, 0x19, 0x26, 0x1d, 0x8a,
+ 0x76, 0x60, 0x37, 0xd6,
+ 0x46, 0x5d, 0x3d, 0x15, 0xc5, 0xa3, 0x47, 0xf4, 0xc9, 0xa9, 0x2f, 0x8c,
+ 0xcf, 0x44, 0x6f, 0x03,
+ 0x47, 0x32, 0x67, 0x28, 0x7a, 0x0e, 0xa9, 0x5f, 0x38, 0x6d, 0x80, 0x8e,
+ 0x19, 0x58, 0xe6, 0xf1,
+ 0x48, 0x02, 0xb7, 0xb0, 0x70, 0xea, 0x1a, 0x99, 0x2e, 0x9b, 0x7a, 0x90,
+ 0x01, 0xec, 0x1d, 0xf6,
+ 0x49, 0x6d, 0xed, 0x8d, 0xcf, 0x47, 0xf4, 0x32, 0xdf, 0x5f, 0xd5, 0x92,
+ 0xd7, 0xf0, 0x94, 0x04,
+ 0x4a, 0xdc, 0x03, 0xca, 0xcd, 0x73, 0x05, 0x0c, 0x0f, 0xd0, 0xe7, 0x94,
+ 0x6e, 0xd4, 0xcc, 0xd1,
+ 0x4b, 0xb3, 0x59, 0xf7, 0x72, 0xde, 0xeb, 0xa7, 0xfe, 0x14, 0x48, 0x96,
+ 0xb8, 0xc8, 0x45, 0x23,
+ 0x4c, 0x7d, 0x1c, 0x44, 0xc9, 0x1b, 0x24, 0x70, 0x6c, 0x0d, 0x83, 0x98,
+ 0xdf, 0x9c, 0x7c, 0xb8,
+ 0x4d, 0x12, 0x46, 0x79, 0x76, 0xb6, 0xca, 0xdb, 0x9d, 0xc9, 0x2c, 0x9a,
+ 0x09, 0x80, 0xf5, 0x4a,
+ 0x4e, 0xa3, 0xa8, 0x3e, 0x74, 0x82, 0x3b, 0xe5, 0x4d, 0x46, 0x1e, 0x9c,
+ 0xb0, 0xa4, 0xad, 0x9f,
+ 0x4f, 0xcc, 0xf2, 0x03, 0xcb, 0x2f, 0xd5, 0x4e, 0xbc, 0x82, 0xb1, 0x9e,
+ 0x66, 0xb8, 0x24, 0x6d,
+ 0x50, 0xc3, 0xcb, 0xcd, 0x60, 0x89, 0x9e, 0xaa, 0x61, 0x69, 0x29, 0xa0,
+ 0x80, 0x0f, 0x98, 0x91,
+ 0x51, 0xac, 0x91, 0xf0, 0xdf, 0x24, 0x70, 0x01, 0x90, 0xad, 0x86, 0xa2,
+ 0x56, 0x13, 0x11, 0x63,
+ 0x52, 0x1d, 0x7f, 0xb7, 0xdd, 0x10, 0x81, 0x3f, 0x40, 0x22, 0xb4, 0xa4,
+ 0xef, 0x37, 0x49, 0xb6,
+ 0x53, 0x72, 0x25, 0x8a, 0x62, 0xbd, 0x6f, 0x94, 0xb1, 0xe6, 0x1b, 0xa6,
+ 0x39, 0x2b, 0xc0, 0x44,
+ 0x54, 0xbc, 0x60, 0x39, 0xd9, 0x78, 0xa0, 0x43, 0x23, 0xff, 0xd0, 0xa8,
+ 0x5e, 0x7f, 0xf9, 0xdf,
+ 0x55, 0xd3, 0x3a, 0x04, 0x66, 0xd5, 0x4e, 0xe8, 0xd2, 0x3b, 0x7f, 0xaa,
+ 0x88, 0x63, 0x70, 0x2d,
+ 0x56, 0x62, 0xd4, 0x43, 0x64, 0xe1, 0xbf, 0xd6, 0x02, 0xb4, 0x4d, 0xac,
+ 0x31, 0x47, 0x28, 0xf8,
+ 0x57, 0x0d, 0x8e, 0x7e, 0xdb, 0x4c, 0x51, 0x7d, 0xf3, 0x70, 0xe2, 0xae,
+ 0xe7, 0x5b, 0xa1, 0x0a,
+ 0x58, 0x3d, 0x5e, 0xe6, 0xd1, 0xa8, 0xe2, 0xbb, 0xe5, 0x86, 0x18, 0xb0,
+ 0xff, 0xef, 0x5a, 0x0d,
+ 0x59, 0x52, 0x04, 0xdb, 0x6e, 0x05, 0x0c, 0x10, 0x14, 0x42, 0xb7, 0xb2,
+ 0x29, 0xf3, 0xd3, 0xff,
+ 0x5a, 0xe3, 0xea, 0x9c, 0x6c, 0x31, 0xfd, 0x2e, 0xc4, 0xcd, 0x85, 0xb4,
+ 0x90, 0xd7, 0x8b, 0x2a,
+ 0x5b, 0x8c, 0xb0, 0xa1, 0xd3, 0x9c, 0x13, 0x85, 0x35, 0x09, 0x2a, 0xb6,
+ 0x46, 0xcb, 0x02, 0xd8,
+ 0x5c, 0x42, 0xf5, 0x12, 0x68, 0x59, 0xdc, 0x52, 0xa7, 0x10, 0xe1, 0xb8,
+ 0x21, 0x9f, 0x3b, 0x43,
+ 0x5d, 0x2d, 0xaf, 0x2f, 0xd7, 0xf4, 0x32, 0xf9, 0x56, 0xd4, 0x4e, 0xba,
+ 0xf7, 0x83, 0xb2, 0xb1,
+ 0x5e, 0x9c, 0x41, 0x68, 0xd5, 0xc0, 0xc3, 0xc7, 0x86, 0x5b, 0x7c, 0xbc,
+ 0x4e, 0xa7, 0xea, 0x64,
+ 0x5f, 0xf3, 0x1b, 0x55, 0x6a, 0x6d, 0x2d, 0x6c, 0x77, 0x9f, 0xd3, 0xbe,
+ 0x98, 0xbb, 0x63, 0x96,
+ 0x60, 0x82, 0x33, 0x37, 0x40, 0x4f, 0x55, 0xcc, 0xff, 0x4e, 0x8f, 0xc0,
+ 0x41, 0x0a, 0x51, 0x5f,
+ 0x61, 0xed, 0x69, 0x0a, 0xff, 0xe2, 0xbb, 0x67, 0x0e, 0x8a, 0x20, 0xc2,
+ 0x97, 0x16, 0xd8, 0xad,
+ 0x62, 0x5c, 0x87, 0x4d, 0xfd, 0xd6, 0x4a, 0x59, 0xde, 0x05, 0x12, 0xc4,
+ 0x2e, 0x32, 0x80, 0x78,
+ 0x63, 0x33, 0xdd, 0x70, 0x42, 0x7b, 0xa4, 0xf2, 0x2f, 0xc1, 0xbd, 0xc6,
+ 0xf8, 0x2e, 0x09, 0x8a,
+ 0x64, 0xfd, 0x98, 0xc3, 0xf9, 0xbe, 0x6b, 0x25, 0xbd, 0xd8, 0x76, 0xc8,
+ 0x9f, 0x7a, 0x30, 0x11,
+ 0x65, 0x92, 0xc2, 0xfe, 0x46, 0x13, 0x85, 0x8e, 0x4c, 0x1c, 0xd9, 0xca,
+ 0x49, 0x66, 0xb9, 0xe3,
+ 0x66, 0x23, 0x2c, 0xb9, 0x44, 0x27, 0x74, 0xb0, 0x9c, 0x93, 0xeb, 0xcc,
+ 0xf0, 0x42, 0xe1, 0x36,
+ 0x67, 0x4c, 0x76, 0x84, 0xfb, 0x8a, 0x9a, 0x1b, 0x6d, 0x57, 0x44, 0xce,
+ 0x26, 0x5e, 0x68, 0xc4,
+ 0x68, 0x7c, 0xa6, 0x1c, 0xf1, 0x6e, 0x29, 0xdd, 0x7b, 0xa1, 0xbe, 0xd0,
+ 0x3e, 0xea, 0x93, 0xc3,
+ 0x69, 0x13, 0xfc, 0x21, 0x4e, 0xc3, 0xc7, 0x76, 0x8a, 0x65, 0x11, 0xd2,
+ 0xe8, 0xf6, 0x1a, 0x31,
+ 0x6a, 0xa2, 0x12, 0x66, 0x4c, 0xf7, 0x36, 0x48, 0x5a, 0xea, 0x23, 0xd4,
+ 0x51, 0xd2, 0x42, 0xe4,
+ 0x6b, 0xcd, 0x48, 0x5b, 0xf3, 0x5a, 0xd8, 0xe3, 0xab, 0x2e, 0x8c, 0xd6,
+ 0x87, 0xce, 0xcb, 0x16,
+ 0x6c, 0x03, 0x0d, 0xe8, 0x48, 0x9f, 0x17, 0x34, 0x39, 0x37, 0x47, 0xd8,
+ 0xe0, 0x9a, 0xf2, 0x8d,
+ 0x6d, 0x6c, 0x57, 0xd5, 0xf7, 0x32, 0xf9, 0x9f, 0xc8, 0xf3, 0xe8, 0xda,
+ 0x36, 0x86, 0x7b, 0x7f,
+ 0x6e, 0xdd, 0xb9, 0x92, 0xf5, 0x06, 0x08, 0xa1, 0x18, 0x7c, 0xda, 0xdc,
+ 0x8f, 0xa2, 0x23, 0xaa,
+ 0x6f, 0xb2, 0xe3, 0xaf, 0x4a, 0xab, 0xe6, 0x0a, 0xe9, 0xb8, 0x75, 0xde,
+ 0x59, 0xbe, 0xaa, 0x58,
+ 0x70, 0xbd, 0xda, 0x61, 0xe1, 0x0d, 0xad, 0xee, 0x34, 0x53, 0xed, 0xe0,
+ 0xbf, 0x09, 0x16, 0xa4,
+ 0x71, 0xd2, 0x80, 0x5c, 0x5e, 0xa0, 0x43, 0x45, 0xc5, 0x97, 0x42, 0xe2,
+ 0x69, 0x15, 0x9f, 0x56,
+ 0x72, 0x63, 0x6e, 0x1b, 0x5c, 0x94, 0xb2, 0x7b, 0x15, 0x18, 0x70, 0xe4,
+ 0xd0, 0x31, 0xc7, 0x83,
+ 0x73, 0x0c, 0x34, 0x26, 0xe3, 0x39, 0x5c, 0xd0, 0xe4, 0xdc, 0xdf, 0xe6,
+ 0x06, 0x2d, 0x4e, 0x71,
+ 0x74, 0xc2, 0x71, 0x95, 0x58, 0xfc, 0x93, 0x07, 0x76, 0xc5, 0x14, 0xe8,
+ 0x61, 0x79, 0x77, 0xea,
+ 0x75, 0xad, 0x2b, 0xa8, 0xe7, 0x51, 0x7d, 0xac, 0x87, 0x01, 0xbb, 0xea,
+ 0xb7, 0x65, 0xfe, 0x18,
+ 0x76, 0x1c, 0xc5, 0xef, 0xe5, 0x65, 0x8c, 0x92, 0x57, 0x8e, 0x89, 0xec,
+ 0x0e, 0x41, 0xa6, 0xcd,
+ 0x77, 0x73, 0x9f, 0xd2, 0x5a, 0xc8, 0x62, 0x39, 0xa6, 0x4a, 0x26, 0xee,
+ 0xd8, 0x5d, 0x2f, 0x3f,
+ 0x78, 0x43, 0x4f, 0x4a, 0x50, 0x2c, 0xd1, 0xff, 0xb0, 0xbc, 0xdc, 0xf0,
+ 0xc0, 0xe9, 0xd4, 0x38,
+ 0x79, 0x2c, 0x15, 0x77, 0xef, 0x81, 0x3f, 0x54, 0x41, 0x78, 0x73, 0xf2,
+ 0x16, 0xf5, 0x5d, 0xca,
+ 0x7a, 0x9d, 0xfb, 0x30, 0xed, 0xb5, 0xce, 0x6a, 0x91, 0xf7, 0x41, 0xf4,
+ 0xaf, 0xd1, 0x05, 0x1f,
+ 0x7b, 0xf2, 0xa1, 0x0d, 0x52, 0x18, 0x20, 0xc1, 0x60, 0x33, 0xee, 0xf6,
+ 0x79, 0xcd, 0x8c, 0xed,
+ 0x7c, 0x3c, 0xe4, 0xbe, 0xe9, 0xdd, 0xef, 0x16, 0xf2, 0x2a, 0x25, 0xf8,
+ 0x1e, 0x99, 0xb5, 0x76,
+ 0x7d, 0x53, 0xbe, 0x83, 0x56, 0x70, 0x01, 0xbd, 0x03, 0xee, 0x8a, 0xfa,
+ 0xc8, 0x85, 0x3c, 0x84,
+ 0x7e, 0xe2, 0x50, 0xc4, 0x54, 0x44, 0xf0, 0x83, 0xd3, 0x61, 0xb8, 0xfc,
+ 0x71, 0xa1, 0x64, 0x51,
+ 0x7f, 0x8d, 0x0a, 0xf9, 0xeb, 0xe9, 0x1e, 0x28, 0x22, 0xa5, 0x17, 0xfe,
+ 0xa7, 0xbd, 0xed, 0xa3,
+ 0x80, 0x3b, 0x44, 0xf5, 0x41, 0x55, 0xcc, 0xd3, 0x97, 0xe8, 0x96, 0xc3,
+ 0xfc, 0x18, 0x7d, 0xd4,
+ 0x81, 0x54, 0x1e, 0xc8, 0xfe, 0xf8, 0x22, 0x78, 0x66, 0x2c, 0x39, 0xc1,
+ 0x2a, 0x04, 0xf4, 0x26,
+ 0x82, 0xe5, 0xf0, 0x8f, 0xfc, 0xcc, 0xd3, 0x46, 0xb6, 0xa3, 0x0b, 0xc7,
+ 0x93, 0x20, 0xac, 0xf3,
+ 0x83, 0x8a, 0xaa, 0xb2, 0x43, 0x61, 0x3d, 0xed, 0x47, 0x67, 0xa4, 0xc5,
+ 0x45, 0x3c, 0x25, 0x01,
+ 0x84, 0x44, 0xef, 0x01, 0xf8, 0xa4, 0xf2, 0x3a, 0xd5, 0x7e, 0x6f, 0xcb,
+ 0x22, 0x68, 0x1c, 0x9a,
+ 0x85, 0x2b, 0xb5, 0x3c, 0x47, 0x09, 0x1c, 0x91, 0x24, 0xba, 0xc0, 0xc9,
+ 0xf4, 0x74, 0x95, 0x68,
+ 0x86, 0x9a, 0x5b, 0x7b, 0x45, 0x3d, 0xed, 0xaf, 0xf4, 0x35, 0xf2, 0xcf,
+ 0x4d, 0x50, 0xcd, 0xbd,
+ 0x87, 0xf5, 0x01, 0x46, 0xfa, 0x90, 0x03, 0x04, 0x05, 0xf1, 0x5d, 0xcd,
+ 0x9b, 0x4c, 0x44, 0x4f,
+ 0x88, 0xc5, 0xd1, 0xde, 0xf0, 0x74, 0xb0, 0xc2, 0x13, 0x07, 0xa7, 0xd3,
+ 0x83, 0xf8, 0xbf, 0x48,
+ 0x89, 0xaa, 0x8b, 0xe3, 0x4f, 0xd9, 0x5e, 0x69, 0xe2, 0xc3, 0x08, 0xd1,
+ 0x55, 0xe4, 0x36, 0xba,
+ 0x8a, 0x1b, 0x65, 0xa4, 0x4d, 0xed, 0xaf, 0x57, 0x32, 0x4c, 0x3a, 0xd7,
+ 0xec, 0xc0, 0x6e, 0x6f,
+ 0x8b, 0x74, 0x3f, 0x99, 0xf2, 0x40, 0x41, 0xfc, 0xc3, 0x88, 0x95, 0xd5,
+ 0x3a, 0xdc, 0xe7, 0x9d,
+ 0x8c, 0xba, 0x7a, 0x2a, 0x49, 0x85, 0x8e, 0x2b, 0x51, 0x91, 0x5e, 0xdb,
+ 0x5d, 0x88, 0xde, 0x06,
+ 0x8d, 0xd5, 0x20, 0x17, 0xf6, 0x28, 0x60, 0x80, 0xa0, 0x55, 0xf1, 0xd9,
+ 0x8b, 0x94, 0x57, 0xf4,
+ 0x8e, 0x64, 0xce, 0x50, 0xf4, 0x1c, 0x91, 0xbe, 0x70, 0xda, 0xc3, 0xdf,
+ 0x32, 0xb0, 0x0f, 0x21,
+ 0x8f, 0x0b, 0x94, 0x6d, 0x4b, 0xb1, 0x7f, 0x15, 0x81, 0x1e, 0x6c, 0xdd,
+ 0xe4, 0xac, 0x86, 0xd3,
+ 0x90, 0x04, 0xad, 0xa3, 0xe0, 0x17, 0x34, 0xf1, 0x5c, 0xf5, 0xf4, 0xe3,
+ 0x02, 0x1b, 0x3a, 0x2f,
+ 0x91, 0x6b, 0xf7, 0x9e, 0x5f, 0xba, 0xda, 0x5a, 0xad, 0x31, 0x5b, 0xe1,
+ 0xd4, 0x07, 0xb3, 0xdd,
+ 0x92, 0xda, 0x19, 0xd9, 0x5d, 0x8e, 0x2b, 0x64, 0x7d, 0xbe, 0x69, 0xe7,
+ 0x6d, 0x23, 0xeb, 0x08,
+ 0x93, 0xb5, 0x43, 0xe4, 0xe2, 0x23, 0xc5, 0xcf, 0x8c, 0x7a, 0xc6, 0xe5,
+ 0xbb, 0x3f, 0x62, 0xfa,
+ 0x94, 0x7b, 0x06, 0x57, 0x59, 0xe6, 0x0a, 0x18, 0x1e, 0x63, 0x0d, 0xeb,
+ 0xdc, 0x6b, 0x5b, 0x61,
+ 0x95, 0x14, 0x5c, 0x6a, 0xe6, 0x4b, 0xe4, 0xb3, 0xef, 0xa7, 0xa2, 0xe9,
+ 0x0a, 0x77, 0xd2, 0x93,
+ 0x96, 0xa5, 0xb2, 0x2d, 0xe4, 0x7f, 0x15, 0x8d, 0x3f, 0x28, 0x90, 0xef,
+ 0xb3, 0x53, 0x8a, 0x46,
+ 0x97, 0xca, 0xe8, 0x10, 0x5b, 0xd2, 0xfb, 0x26, 0xce, 0xec, 0x3f, 0xed,
+ 0x65, 0x4f, 0x03, 0xb4,
+ 0x98, 0xfa, 0x38, 0x88, 0x51, 0x36, 0x48, 0xe0, 0xd8, 0x1a, 0xc5, 0xf3,
+ 0x7d, 0xfb, 0xf8, 0xb3,
+ 0x99, 0x95, 0x62, 0xb5, 0xee, 0x9b, 0xa6, 0x4b, 0x29, 0xde, 0x6a, 0xf1,
+ 0xab, 0xe7, 0x71, 0x41,
+ 0x9a, 0x24, 0x8c, 0xf2, 0xec, 0xaf, 0x57, 0x75, 0xf9, 0x51, 0x58, 0xf7,
+ 0x12, 0xc3, 0x29, 0x94,
+ 0x9b, 0x4b, 0xd6, 0xcf, 0x53, 0x02, 0xb9, 0xde, 0x08, 0x95, 0xf7, 0xf5,
+ 0xc4, 0xdf, 0xa0, 0x66,
+ 0x9c, 0x85, 0x93, 0x7c, 0xe8, 0xc7, 0x76, 0x09, 0x9a, 0x8c, 0x3c, 0xfb,
+ 0xa3, 0x8b, 0x99, 0xfd,
+ 0x9d, 0xea, 0xc9, 0x41, 0x57, 0x6a, 0x98, 0xa2, 0x6b, 0x48, 0x93, 0xf9,
+ 0x75, 0x97, 0x10, 0x0f,
+ 0x9e, 0x5b, 0x27, 0x06, 0x55, 0x5e, 0x69, 0x9c, 0xbb, 0xc7, 0xa1, 0xff,
+ 0xcc, 0xb3, 0x48, 0xda,
+ 0x9f, 0x34, 0x7d, 0x3b, 0xea, 0xf3, 0x87, 0x37, 0x4a, 0x03, 0x0e, 0xfd,
+ 0x1a, 0xaf, 0xc1, 0x28,
+ 0xa0, 0x45, 0x55, 0x59, 0xc0, 0xd1, 0xff, 0x97, 0xc2, 0xd2, 0x52, 0x83,
+ 0xc3, 0x1e, 0xf3, 0xe1,
+ 0xa1, 0x2a, 0x0f, 0x64, 0x7f, 0x7c, 0x11, 0x3c, 0x33, 0x16, 0xfd, 0x81,
+ 0x15, 0x02, 0x7a, 0x13,
+ 0xa2, 0x9b, 0xe1, 0x23, 0x7d, 0x48, 0xe0, 0x02, 0xe3, 0x99, 0xcf, 0x87,
+ 0xac, 0x26, 0x22, 0xc6,
+ 0xa3, 0xf4, 0xbb, 0x1e, 0xc2, 0xe5, 0x0e, 0xa9, 0x12, 0x5d, 0x60, 0x85,
+ 0x7a, 0x3a, 0xab, 0x34,
+ 0xa4, 0x3a, 0xfe, 0xad, 0x79, 0x20, 0xc1, 0x7e, 0x80, 0x44, 0xab, 0x8b,
+ 0x1d, 0x6e, 0x92, 0xaf,
+ 0xa5, 0x55, 0xa4, 0x90, 0xc6, 0x8d, 0x2f, 0xd5, 0x71, 0x80, 0x04, 0x89,
+ 0xcb, 0x72, 0x1b, 0x5d,
+ 0xa6, 0xe4, 0x4a, 0xd7, 0xc4, 0xb9, 0xde, 0xeb, 0xa1, 0x0f, 0x36, 0x8f,
+ 0x72, 0x56, 0x43, 0x88,
+ 0xa7, 0x8b, 0x10, 0xea, 0x7b, 0x14, 0x30, 0x40, 0x50, 0xcb, 0x99, 0x8d,
+ 0xa4, 0x4a, 0xca, 0x7a,
+ 0xa8, 0xbb, 0xc0, 0x72, 0x71, 0xf0, 0x83, 0x86, 0x46, 0x3d, 0x63, 0x93,
+ 0xbc, 0xfe, 0x31, 0x7d,
+ 0xa9, 0xd4, 0x9a, 0x4f, 0xce, 0x5d, 0x6d, 0x2d, 0xb7, 0xf9, 0xcc, 0x91,
+ 0x6a, 0xe2, 0xb8, 0x8f,
+ 0xaa, 0x65, 0x74, 0x08, 0xcc, 0x69, 0x9c, 0x13, 0x67, 0x76, 0xfe, 0x97,
+ 0xd3, 0xc6, 0xe0, 0x5a,
+ 0xab, 0x0a, 0x2e, 0x35, 0x73, 0xc4, 0x72, 0xb8, 0x96, 0xb2, 0x51, 0x95,
+ 0x05, 0xda, 0x69, 0xa8,
+ 0xac, 0xc4, 0x6b, 0x86, 0xc8, 0x01, 0xbd, 0x6f, 0x04, 0xab, 0x9a, 0x9b,
+ 0x62, 0x8e, 0x50, 0x33,
+ 0xad, 0xab, 0x31, 0xbb, 0x77, 0xac, 0x53, 0xc4, 0xf5, 0x6f, 0x35, 0x99,
+ 0xb4, 0x92, 0xd9, 0xc1,
+ 0xae, 0x1a, 0xdf, 0xfc, 0x75, 0x98, 0xa2, 0xfa, 0x25, 0xe0, 0x07, 0x9f,
+ 0x0d, 0xb6, 0x81, 0x14,
+ 0xaf, 0x75, 0x85, 0xc1, 0xca, 0x35, 0x4c, 0x51, 0xd4, 0x24, 0xa8, 0x9d,
+ 0xdb, 0xaa, 0x08, 0xe6,
+ 0xb0, 0x7a, 0xbc, 0x0f, 0x61, 0x93, 0x07, 0xb5, 0x09, 0xcf, 0x30, 0xa3,
+ 0x3d, 0x1d, 0xb4, 0x1a,
+ 0xb1, 0x15, 0xe6, 0x32, 0xde, 0x3e, 0xe9, 0x1e, 0xf8, 0x0b, 0x9f, 0xa1,
+ 0xeb, 0x01, 0x3d, 0xe8,
+ 0xb2, 0xa4, 0x08, 0x75, 0xdc, 0x0a, 0x18, 0x20, 0x28, 0x84, 0xad, 0xa7,
+ 0x52, 0x25, 0x65, 0x3d,
+ 0xb3, 0xcb, 0x52, 0x48, 0x63, 0xa7, 0xf6, 0x8b, 0xd9, 0x40, 0x02, 0xa5,
+ 0x84, 0x39, 0xec, 0xcf,
+ 0xb4, 0x05, 0x17, 0xfb, 0xd8, 0x62, 0x39, 0x5c, 0x4b, 0x59, 0xc9, 0xab,
+ 0xe3, 0x6d, 0xd5, 0x54,
+ 0xb5, 0x6a, 0x4d, 0xc6, 0x67, 0xcf, 0xd7, 0xf7, 0xba, 0x9d, 0x66, 0xa9,
+ 0x35, 0x71, 0x5c, 0xa6,
+ 0xb6, 0xdb, 0xa3, 0x81, 0x65, 0xfb, 0x26, 0xc9, 0x6a, 0x12, 0x54, 0xaf,
+ 0x8c, 0x55, 0x04, 0x73,
+ 0xb7, 0xb4, 0xf9, 0xbc, 0xda, 0x56, 0xc8, 0x62, 0x9b, 0xd6, 0xfb, 0xad,
+ 0x5a, 0x49, 0x8d, 0x81,
+ 0xb8, 0x84, 0x29, 0x24, 0xd0, 0xb2, 0x7b, 0xa4, 0x8d, 0x20, 0x01, 0xb3,
+ 0x42, 0xfd, 0x76, 0x86,
+ 0xb9, 0xeb, 0x73, 0x19, 0x6f, 0x1f, 0x95, 0x0f, 0x7c, 0xe4, 0xae, 0xb1,
+ 0x94, 0xe1, 0xff, 0x74,
+ 0xba, 0x5a, 0x9d, 0x5e, 0x6d, 0x2b, 0x64, 0x31, 0xac, 0x6b, 0x9c, 0xb7,
+ 0x2d, 0xc5, 0xa7, 0xa1,
+ 0xbb, 0x35, 0xc7, 0x63, 0xd2, 0x86, 0x8a, 0x9a, 0x5d, 0xaf, 0x33, 0xb5,
+ 0xfb, 0xd9, 0x2e, 0x53,
+ 0xbc, 0xfb, 0x82, 0xd0, 0x69, 0x43, 0x45, 0x4d, 0xcf, 0xb6, 0xf8, 0xbb,
+ 0x9c, 0x8d, 0x17, 0xc8,
+ 0xbd, 0x94, 0xd8, 0xed, 0xd6, 0xee, 0xab, 0xe6, 0x3e, 0x72, 0x57, 0xb9,
+ 0x4a, 0x91, 0x9e, 0x3a,
+ 0xbe, 0x25, 0x36, 0xaa, 0xd4, 0xda, 0x5a, 0xd8, 0xee, 0xfd, 0x65, 0xbf,
+ 0xf3, 0xb5, 0xc6, 0xef,
+ 0xbf, 0x4a, 0x6c, 0x97, 0x6b, 0x77, 0xb4, 0x73, 0x1f, 0x39, 0xca, 0xbd,
+ 0x25, 0xa9, 0x4f, 0x1d,
+ 0xc0, 0xc7, 0x66, 0x6e, 0x80, 0x9e, 0xaa, 0x5b, 0x3d, 0x9c, 0xdd, 0x43,
+ 0x82, 0x14, 0xa2, 0xbe,
+ 0xc1, 0xa8, 0x3c, 0x53, 0x3f, 0x33, 0x44, 0xf0, 0xcc, 0x58, 0x72, 0x41,
+ 0x54, 0x08, 0x2b, 0x4c,
+ 0xc2, 0x19, 0xd2, 0x14, 0x3d, 0x07, 0xb5, 0xce, 0x1c, 0xd7, 0x40, 0x47,
+ 0xed, 0x2c, 0x73, 0x99,
+ 0xc3, 0x76, 0x88, 0x29, 0x82, 0xaa, 0x5b, 0x65, 0xed, 0x13, 0xef, 0x45,
+ 0x3b, 0x30, 0xfa, 0x6b,
+ 0xc4, 0xb8, 0xcd, 0x9a, 0x39, 0x6f, 0x94, 0xb2, 0x7f, 0x0a, 0x24, 0x4b,
+ 0x5c, 0x64, 0xc3, 0xf0,
+ 0xc5, 0xd7, 0x97, 0xa7, 0x86, 0xc2, 0x7a, 0x19, 0x8e, 0xce, 0x8b, 0x49,
+ 0x8a, 0x78, 0x4a, 0x02,
+ 0xc6, 0x66, 0x79, 0xe0, 0x84, 0xf6, 0x8b, 0x27, 0x5e, 0x41, 0xb9, 0x4f,
+ 0x33, 0x5c, 0x12, 0xd7,
+ 0xc7, 0x09, 0x23, 0xdd, 0x3b, 0x5b, 0x65, 0x8c, 0xaf, 0x85, 0x16, 0x4d,
+ 0xe5, 0x40, 0x9b, 0x25,
+ 0xc8, 0x39, 0xf3, 0x45, 0x31, 0xbf, 0xd6, 0x4a, 0xb9, 0x73, 0xec, 0x53,
+ 0xfd, 0xf4, 0x60, 0x22,
+ 0xc9, 0x56, 0xa9, 0x78, 0x8e, 0x12, 0x38, 0xe1, 0x48, 0xb7, 0x43, 0x51,
+ 0x2b, 0xe8, 0xe9, 0xd0,
+ 0xca, 0xe7, 0x47, 0x3f, 0x8c, 0x26, 0xc9, 0xdf, 0x98, 0x38, 0x71, 0x57,
+ 0x92, 0xcc, 0xb1, 0x05,
+ 0xcb, 0x88, 0x1d, 0x02, 0x33, 0x8b, 0x27, 0x74, 0x69, 0xfc, 0xde, 0x55,
+ 0x44, 0xd0, 0x38, 0xf7,
+ 0xcc, 0x46, 0x58, 0xb1, 0x88, 0x4e, 0xe8, 0xa3, 0xfb, 0xe5, 0x15, 0x5b,
+ 0x23, 0x84, 0x01, 0x6c,
+ 0xcd, 0x29, 0x02, 0x8c, 0x37, 0xe3, 0x06, 0x08, 0x0a, 0x21, 0xba, 0x59,
+ 0xf5, 0x98, 0x88, 0x9e,
+ 0xce, 0x98, 0xec, 0xcb, 0x35, 0xd7, 0xf7, 0x36, 0xda, 0xae, 0x88, 0x5f,
+ 0x4c, 0xbc, 0xd0, 0x4b,
+ 0xcf, 0xf7, 0xb6, 0xf6, 0x8a, 0x7a, 0x19, 0x9d, 0x2b, 0x6a, 0x27, 0x5d,
+ 0x9a, 0xa0, 0x59, 0xb9,
+ 0xd0, 0xf8, 0x8f, 0x38, 0x21, 0xdc, 0x52, 0x79, 0xf6, 0x81, 0xbf, 0x63,
+ 0x7c, 0x17, 0xe5, 0x45,
+ 0xd1, 0x97, 0xd5, 0x05, 0x9e, 0x71, 0xbc, 0xd2, 0x07, 0x45, 0x10, 0x61,
+ 0xaa, 0x0b, 0x6c, 0xb7,
+ 0xd2, 0x26, 0x3b, 0x42, 0x9c, 0x45, 0x4d, 0xec, 0xd7, 0xca, 0x22, 0x67,
+ 0x13, 0x2f, 0x34, 0x62,
+ 0xd3, 0x49, 0x61, 0x7f, 0x23, 0xe8, 0xa3, 0x47, 0x26, 0x0e, 0x8d, 0x65,
+ 0xc5, 0x33, 0xbd, 0x90,
+ 0xd4, 0x87, 0x24, 0xcc, 0x98, 0x2d, 0x6c, 0x90, 0xb4, 0x17, 0x46, 0x6b,
+ 0xa2, 0x67, 0x84, 0x0b,
+ 0xd5, 0xe8, 0x7e, 0xf1, 0x27, 0x80, 0x82, 0x3b, 0x45, 0xd3, 0xe9, 0x69,
+ 0x74, 0x7b, 0x0d, 0xf9,
+ 0xd6, 0x59, 0x90, 0xb6, 0x25, 0xb4, 0x73, 0x05, 0x95, 0x5c, 0xdb, 0x6f,
+ 0xcd, 0x5f, 0x55, 0x2c,
+ 0xd7, 0x36, 0xca, 0x8b, 0x9a, 0x19, 0x9d, 0xae, 0x64, 0x98, 0x74, 0x6d,
+ 0x1b, 0x43, 0xdc, 0xde,
+ 0xd8, 0x06, 0x1a, 0x13, 0x90, 0xfd, 0x2e, 0x68, 0x72, 0x6e, 0x8e, 0x73,
+ 0x03, 0xf7, 0x27, 0xd9,
+ 0xd9, 0x69, 0x40, 0x2e, 0x2f, 0x50, 0xc0, 0xc3, 0x83, 0xaa, 0x21, 0x71,
+ 0xd5, 0xeb, 0xae, 0x2b,
+ 0xda, 0xd8, 0xae, 0x69, 0x2d, 0x64, 0x31, 0xfd, 0x53, 0x25, 0x13, 0x77,
+ 0x6c, 0xcf, 0xf6, 0xfe,
+ 0xdb, 0xb7, 0xf4, 0x54, 0x92, 0xc9, 0xdf, 0x56, 0xa2, 0xe1, 0xbc, 0x75,
+ 0xba, 0xd3, 0x7f, 0x0c,
+ 0xdc, 0x79, 0xb1, 0xe7, 0x29, 0x0c, 0x10, 0x81, 0x30, 0xf8, 0x77, 0x7b,
+ 0xdd, 0x87, 0x46, 0x97,
+ 0xdd, 0x16, 0xeb, 0xda, 0x96, 0xa1, 0xfe, 0x2a, 0xc1, 0x3c, 0xd8, 0x79,
+ 0x0b, 0x9b, 0xcf, 0x65,
+ 0xde, 0xa7, 0x05, 0x9d, 0x94, 0x95, 0x0f, 0x14, 0x11, 0xb3, 0xea, 0x7f,
+ 0xb2, 0xbf, 0x97, 0xb0,
+ 0xdf, 0xc8, 0x5f, 0xa0, 0x2b, 0x38, 0xe1, 0xbf, 0xe0, 0x77, 0x45, 0x7d,
+ 0x64, 0xa3, 0x1e, 0x42,
+ 0xe0, 0xb9, 0x77, 0xc2, 0x01, 0x1a, 0x99, 0x1f, 0x68, 0xa6, 0x19, 0x03,
+ 0xbd, 0x12, 0x2c, 0x8b,
+ 0xe1, 0xd6, 0x2d, 0xff, 0xbe, 0xb7, 0x77, 0xb4, 0x99, 0x62, 0xb6, 0x01,
+ 0x6b, 0x0e, 0xa5, 0x79,
+ 0xe2, 0x67, 0xc3, 0xb8, 0xbc, 0x83, 0x86, 0x8a, 0x49, 0xed, 0x84, 0x07,
+ 0xd2, 0x2a, 0xfd, 0xac,
+ 0xe3, 0x08, 0x99, 0x85, 0x03, 0x2e, 0x68, 0x21, 0xb8, 0x29, 0x2b, 0x05,
+ 0x04, 0x36, 0x74, 0x5e,
+ 0xe4, 0xc6, 0xdc, 0x36, 0xb8, 0xeb, 0xa7, 0xf6, 0x2a, 0x30, 0xe0, 0x0b,
+ 0x63, 0x62, 0x4d, 0xc5,
+ 0xe5, 0xa9, 0x86, 0x0b, 0x07, 0x46, 0x49, 0x5d, 0xdb, 0xf4, 0x4f, 0x09,
+ 0xb5, 0x7e, 0xc4, 0x37,
+ 0xe6, 0x18, 0x68, 0x4c, 0x05, 0x72, 0xb8, 0x63, 0x0b, 0x7b, 0x7d, 0x0f,
+ 0x0c, 0x5a, 0x9c, 0xe2,
+ 0xe7, 0x77, 0x32, 0x71, 0xba, 0xdf, 0x56, 0xc8, 0xfa, 0xbf, 0xd2, 0x0d,
+ 0xda, 0x46, 0x15, 0x10,
+ 0xe8, 0x47, 0xe2, 0xe9, 0xb0, 0x3b, 0xe5, 0x0e, 0xec, 0x49, 0x28, 0x13,
+ 0xc2, 0xf2, 0xee, 0x17,
+ 0xe9, 0x28, 0xb8, 0xd4, 0x0f, 0x96, 0x0b, 0xa5, 0x1d, 0x8d, 0x87, 0x11,
+ 0x14, 0xee, 0x67, 0xe5,
+ 0xea, 0x99, 0x56, 0x93, 0x0d, 0xa2, 0xfa, 0x9b, 0xcd, 0x02, 0xb5, 0x17,
+ 0xad, 0xca, 0x3f, 0x30,
+ 0xeb, 0xf6, 0x0c, 0xae, 0xb2, 0x0f, 0x14, 0x30, 0x3c, 0xc6, 0x1a, 0x15,
+ 0x7b, 0xd6, 0xb6, 0xc2,
+ 0xec, 0x38, 0x49, 0x1d, 0x09, 0xca, 0xdb, 0xe7, 0xae, 0xdf, 0xd1, 0x1b,
+ 0x1c, 0x82, 0x8f, 0x59,
+ 0xed, 0x57, 0x13, 0x20, 0xb6, 0x67, 0x35, 0x4c, 0x5f, 0x1b, 0x7e, 0x19,
+ 0xca, 0x9e, 0x06, 0xab,
+ 0xee, 0xe6, 0xfd, 0x67, 0xb4, 0x53, 0xc4, 0x72, 0x8f, 0x94, 0x4c, 0x1f,
+ 0x73, 0xba, 0x5e, 0x7e,
+ 0xef, 0x89, 0xa7, 0x5a, 0x0b, 0xfe, 0x2a, 0xd9, 0x7e, 0x50, 0xe3, 0x1d,
+ 0xa5, 0xa6, 0xd7, 0x8c,
+ 0xf0, 0x86, 0x9e, 0x94, 0xa0, 0x58, 0x61, 0x3d, 0xa3, 0xbb, 0x7b, 0x23,
+ 0x43, 0x11, 0x6b, 0x70,
+ 0xf1, 0xe9, 0xc4, 0xa9, 0x1f, 0xf5, 0x8f, 0x96, 0x52, 0x7f, 0xd4, 0x21,
+ 0x95, 0x0d, 0xe2, 0x82,
+ 0xf2, 0x58, 0x2a, 0xee, 0x1d, 0xc1, 0x7e, 0xa8, 0x82, 0xf0, 0xe6, 0x27,
+ 0x2c, 0x29, 0xba, 0x57,
+ 0xf3, 0x37, 0x70, 0xd3, 0xa2, 0x6c, 0x90, 0x03, 0x73, 0x34, 0x49, 0x25,
+ 0xfa, 0x35, 0x33, 0xa5,
+ 0xf4, 0xf9, 0x35, 0x60, 0x19, 0xa9, 0x5f, 0xd4, 0xe1, 0x2d, 0x82, 0x2b,
+ 0x9d, 0x61, 0x0a, 0x3e,
+ 0xf5, 0x96, 0x6f, 0x5d, 0xa6, 0x04, 0xb1, 0x7f, 0x10, 0xe9, 0x2d, 0x29,
+ 0x4b, 0x7d, 0x83, 0xcc,
+ 0xf6, 0x27, 0x81, 0x1a, 0xa4, 0x30, 0x40, 0x41, 0xc0, 0x66, 0x1f, 0x2f,
+ 0xf2, 0x59, 0xdb, 0x19,
+ 0xf7, 0x48, 0xdb, 0x27, 0x1b, 0x9d, 0xae, 0xea, 0x31, 0xa2, 0xb0, 0x2d,
+ 0x24, 0x45, 0x52, 0xeb,
+ 0xf8, 0x78, 0x0b, 0xbf, 0x11, 0x79, 0x1d, 0x2c, 0x27, 0x54, 0x4a, 0x33,
+ 0x3c, 0xf1, 0xa9, 0xec,
+ 0xf9, 0x17, 0x51, 0x82, 0xae, 0xd4, 0xf3, 0x87, 0xd6, 0x90, 0xe5, 0x31,
+ 0xea, 0xed, 0x20, 0x1e,
+ 0xfa, 0xa6, 0xbf, 0xc5, 0xac, 0xe0, 0x02, 0xb9, 0x06, 0x1f, 0xd7, 0x37,
+ 0x53, 0xc9, 0x78, 0xcb,
+ 0xfb, 0xc9, 0xe5, 0xf8, 0x13, 0x4d, 0xec, 0x12, 0xf7, 0xdb, 0x78, 0x35,
+ 0x85, 0xd5, 0xf1, 0x39,
+ 0xfc, 0x07, 0xa0, 0x4b, 0xa8, 0x88, 0x23, 0xc5, 0x65, 0xc2, 0xb3, 0x3b,
+ 0xe2, 0x81, 0xc8, 0xa2,
+ 0xfd, 0x68, 0xfa, 0x76, 0x17, 0x25, 0xcd, 0x6e, 0x94, 0x06, 0x1c, 0x39,
+ 0x34, 0x9d, 0x41, 0x50,
+ 0xfe, 0xd9, 0x14, 0x31, 0x15, 0x11, 0x3c, 0x50, 0x44, 0x89, 0x2e, 0x3f,
+ 0x8d, 0xb9, 0x19, 0x85,
+ 0xff, 0xb6, 0x4e, 0x0c, 0xaa, 0xbc, 0xd2, 0xfb, 0xb5, 0x4d, 0x81, 0x3d,
+ 0x5b, 0xa5, 0x90, 0x77,
+ },
+ { /* 10 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xc0, 0x77, 0x44, 0x94, 0x60, 0x7c, 0x12, 0x8d, 0x2e, 0x2d, 0xbc, 0xeb,
+ 0x11, 0x43, 0x48, 0x8e,
+ 0x43, 0xee, 0x88, 0xeb, 0xc0, 0xf8, 0x24, 0xd9, 0x5c, 0x5a, 0xbb, 0x15,
+ 0x22, 0x86, 0x90, 0xdf,
+ 0x83, 0x99, 0xcc, 0x7f, 0xa0, 0x84, 0x36, 0x54, 0x72, 0x77, 0x07, 0xfe,
+ 0x33, 0xc5, 0xd8, 0x51,
+ 0x86, 0x1f, 0xd3, 0x15, 0x43, 0x33, 0x48, 0x71, 0xb8, 0xb4, 0xb5, 0x2a,
+ 0x44, 0xcf, 0xe3, 0x7d,
+ 0x46, 0x68, 0x97, 0x81, 0x23, 0x4f, 0x5a, 0xfc, 0x96, 0x99, 0x09, 0xc1,
+ 0x55, 0x8c, 0xab, 0xf3,
+ 0xc5, 0xf1, 0x5b, 0xfe, 0x83, 0xcb, 0x6c, 0xa8, 0xe4, 0xee, 0x0e, 0x3f,
+ 0x66, 0x49, 0x73, 0xa2,
+ 0x05, 0x86, 0x1f, 0x6a, 0xe3, 0xb7, 0x7e, 0x25, 0xca, 0xc3, 0xb2, 0xd4,
+ 0x77, 0x0a, 0x3b, 0x2c,
+ 0xcf, 0x3e, 0x65, 0x2a, 0x86, 0x66, 0x90, 0xe2, 0xb3, 0xab, 0xa9, 0x54,
+ 0x88, 0x5d, 0x05, 0xfa,
+ 0x0f, 0x49, 0x21, 0xbe, 0xe6, 0x1a, 0x82, 0x6f, 0x9d, 0x86, 0x15, 0xbf,
+ 0x99, 0x1e, 0x4d, 0x74,
+ 0x8c, 0xd0, 0xed, 0xc1, 0x46, 0x9e, 0xb4, 0x3b, 0xef, 0xf1, 0x12, 0x41,
+ 0xaa, 0xdb, 0x95, 0x25,
+ 0x4c, 0xa7, 0xa9, 0x55, 0x26, 0xe2, 0xa6, 0xb6, 0xc1, 0xdc, 0xae, 0xaa,
+ 0xbb, 0x98, 0xdd, 0xab,
+ 0x49, 0x21, 0xb6, 0x3f, 0xc5, 0x55, 0xd8, 0x93, 0x0b, 0x1f, 0x1c, 0x7e,
+ 0xcc, 0x92, 0xe6, 0x87,
+ 0x89, 0x56, 0xf2, 0xab, 0xa5, 0x29, 0xca, 0x1e, 0x25, 0x32, 0xa0, 0x95,
+ 0xdd, 0xd1, 0xae, 0x09,
+ 0x0a, 0xcf, 0x3e, 0xd4, 0x05, 0xad, 0xfc, 0x4a, 0x57, 0x45, 0xa7, 0x6b,
+ 0xee, 0x14, 0x76, 0x58,
+ 0xca, 0xb8, 0x7a, 0x40, 0x65, 0xd1, 0xee, 0xc7, 0x79, 0x68, 0x1b, 0x80,
+ 0xff, 0x57, 0x3e, 0xd6,
+ 0x5d, 0x7c, 0xca, 0x54, 0xcf, 0xcc, 0xe3, 0x07, 0xa5, 0x95, 0x91, 0xa8,
+ 0xd3, 0xba, 0x0a, 0x37,
+ 0x9d, 0x0b, 0x8e, 0xc0, 0xaf, 0xb0, 0xf1, 0x8a, 0x8b, 0xb8, 0x2d, 0x43,
+ 0xc2, 0xf9, 0x42, 0xb9,
+ 0x1e, 0x92, 0x42, 0xbf, 0x0f, 0x34, 0xc7, 0xde, 0xf9, 0xcf, 0x2a, 0xbd,
+ 0xf1, 0x3c, 0x9a, 0xe8,
+ 0xde, 0xe5, 0x06, 0x2b, 0x6f, 0x48, 0xd5, 0x53, 0xd7, 0xe2, 0x96, 0x56,
+ 0xe0, 0x7f, 0xd2, 0x66,
+ 0xdb, 0x63, 0x19, 0x41, 0x8c, 0xff, 0xab, 0x76, 0x1d, 0x21, 0x24, 0x82,
+ 0x97, 0x75, 0xe9, 0x4a,
+ 0x1b, 0x14, 0x5d, 0xd5, 0xec, 0x83, 0xb9, 0xfb, 0x33, 0x0c, 0x98, 0x69,
+ 0x86, 0x36, 0xa1, 0xc4,
+ 0x98, 0x8d, 0x91, 0xaa, 0x4c, 0x07, 0x8f, 0xaf, 0x41, 0x7b, 0x9f, 0x97,
+ 0xb5, 0xf3, 0x79, 0x95,
+ 0x58, 0xfa, 0xd5, 0x3e, 0x2c, 0x7b, 0x9d, 0x22, 0x6f, 0x56, 0x23, 0x7c,
+ 0xa4, 0xb0, 0x31, 0x1b,
+ 0x92, 0x42, 0xaf, 0x7e, 0x49, 0xaa, 0x73, 0xe5, 0x16, 0x3e, 0x38, 0xfc,
+ 0x5b, 0xe7, 0x0f, 0xcd,
+ 0x52, 0x35, 0xeb, 0xea, 0x29, 0xd6, 0x61, 0x68, 0x38, 0x13, 0x84, 0x17,
+ 0x4a, 0xa4, 0x47, 0x43,
+ 0xd1, 0xac, 0x27, 0x95, 0x89, 0x52, 0x57, 0x3c, 0x4a, 0x64, 0x83, 0xe9,
+ 0x79, 0x61, 0x9f, 0x12,
+ 0x11, 0xdb, 0x63, 0x01, 0xe9, 0x2e, 0x45, 0xb1, 0x64, 0x49, 0x3f, 0x02,
+ 0x68, 0x22, 0xd7, 0x9c,
+ 0x14, 0x5d, 0x7c, 0x6b, 0x0a, 0x99, 0x3b, 0x94, 0xae, 0x8a, 0x8d, 0xd6,
+ 0x1f, 0x28, 0xec, 0xb0,
+ 0xd4, 0x2a, 0x38, 0xff, 0x6a, 0xe5, 0x29, 0x19, 0x80, 0xa7, 0x31, 0x3d,
+ 0x0e, 0x6b, 0xa4, 0x3e,
+ 0x57, 0xb3, 0xf4, 0x80, 0xca, 0x61, 0x1f, 0x4d, 0xf2, 0xd0, 0x36, 0xc3,
+ 0x3d, 0xae, 0x7c, 0x6f,
+ 0x97, 0xc4, 0xb0, 0x14, 0xaa, 0x1d, 0x0d, 0xc0, 0xdc, 0xfd, 0x8a, 0x28,
+ 0x2c, 0xed, 0x34, 0xe1,
+ 0xba, 0xf8, 0x57, 0xa8, 0x5d, 0x5b, 0x05, 0x0e, 0x89, 0xe9, 0xe1, 0x93,
+ 0x65, 0xb7, 0x14, 0x6e,
+ 0x7a, 0x8f, 0x13, 0x3c, 0x3d, 0x27, 0x17, 0x83, 0xa7, 0xc4, 0x5d, 0x78,
+ 0x74, 0xf4, 0x5c, 0xe0,
+ 0xf9, 0x16, 0xdf, 0x43, 0x9d, 0xa3, 0x21, 0xd7, 0xd5, 0xb3, 0x5a, 0x86,
+ 0x47, 0x31, 0x84, 0xb1,
+ 0x39, 0x61, 0x9b, 0xd7, 0xfd, 0xdf, 0x33, 0x5a, 0xfb, 0x9e, 0xe6, 0x6d,
+ 0x56, 0x72, 0xcc, 0x3f,
+ 0x3c, 0xe7, 0x84, 0xbd, 0x1e, 0x68, 0x4d, 0x7f, 0x31, 0x5d, 0x54, 0xb9,
+ 0x21, 0x78, 0xf7, 0x13,
+ 0xfc, 0x90, 0xc0, 0x29, 0x7e, 0x14, 0x5f, 0xf2, 0x1f, 0x70, 0xe8, 0x52,
+ 0x30, 0x3b, 0xbf, 0x9d,
+ 0x7f, 0x09, 0x0c, 0x56, 0xde, 0x90, 0x69, 0xa6, 0x6d, 0x07, 0xef, 0xac,
+ 0x03, 0xfe, 0x67, 0xcc,
+ 0xbf, 0x7e, 0x48, 0xc2, 0xbe, 0xec, 0x7b, 0x2b, 0x43, 0x2a, 0x53, 0x47,
+ 0x12, 0xbd, 0x2f, 0x42,
+ 0x75, 0xc6, 0x32, 0x82, 0xdb, 0x3d, 0x95, 0xec, 0x3a, 0x42, 0x48, 0xc7,
+ 0xed, 0xea, 0x11, 0x94,
+ 0xb5, 0xb1, 0x76, 0x16, 0xbb, 0x41, 0x87, 0x61, 0x14, 0x6f, 0xf4, 0x2c,
+ 0xfc, 0xa9, 0x59, 0x1a,
+ 0x36, 0x28, 0xba, 0x69, 0x1b, 0xc5, 0xb1, 0x35, 0x66, 0x18, 0xf3, 0xd2,
+ 0xcf, 0x6c, 0x81, 0x4b,
+ 0xf6, 0x5f, 0xfe, 0xfd, 0x7b, 0xb9, 0xa3, 0xb8, 0x48, 0x35, 0x4f, 0x39,
+ 0xde, 0x2f, 0xc9, 0xc5,
+ 0xf3, 0xd9, 0xe1, 0x97, 0x98, 0x0e, 0xdd, 0x9d, 0x82, 0xf6, 0xfd, 0xed,
+ 0xa9, 0x25, 0xf2, 0xe9,
+ 0x33, 0xae, 0xa5, 0x03, 0xf8, 0x72, 0xcf, 0x10, 0xac, 0xdb, 0x41, 0x06,
+ 0xb8, 0x66, 0xba, 0x67,
+ 0xb0, 0x37, 0x69, 0x7c, 0x58, 0xf6, 0xf9, 0x44, 0xde, 0xac, 0x46, 0xf8,
+ 0x8b, 0xa3, 0x62, 0x36,
+ 0x70, 0x40, 0x2d, 0xe8, 0x38, 0x8a, 0xeb, 0xc9, 0xf0, 0x81, 0xfa, 0x13,
+ 0x9a, 0xe0, 0x2a, 0xb8,
+ 0xe7, 0x84, 0x9d, 0xfc, 0x92, 0x97, 0xe6, 0x09, 0x2c, 0x7c, 0x70, 0x3b,
+ 0xb6, 0x0d, 0x1e, 0x59,
+ 0x27, 0xf3, 0xd9, 0x68, 0xf2, 0xeb, 0xf4, 0x84, 0x02, 0x51, 0xcc, 0xd0,
+ 0xa7, 0x4e, 0x56, 0xd7,
+ 0xa4, 0x6a, 0x15, 0x17, 0x52, 0x6f, 0xc2, 0xd0, 0x70, 0x26, 0xcb, 0x2e,
+ 0x94, 0x8b, 0x8e, 0x86,
+ 0x64, 0x1d, 0x51, 0x83, 0x32, 0x13, 0xd0, 0x5d, 0x5e, 0x0b, 0x77, 0xc5,
+ 0x85, 0xc8, 0xc6, 0x08,
+ 0x61, 0x9b, 0x4e, 0xe9, 0xd1, 0xa4, 0xae, 0x78, 0x94, 0xc8, 0xc5, 0x11,
+ 0xf2, 0xc2, 0xfd, 0x24,
+ 0xa1, 0xec, 0x0a, 0x7d, 0xb1, 0xd8, 0xbc, 0xf5, 0xba, 0xe5, 0x79, 0xfa,
+ 0xe3, 0x81, 0xb5, 0xaa,
+ 0x22, 0x75, 0xc6, 0x02, 0x11, 0x5c, 0x8a, 0xa1, 0xc8, 0x92, 0x7e, 0x04,
+ 0xd0, 0x44, 0x6d, 0xfb,
+ 0xe2, 0x02, 0x82, 0x96, 0x71, 0x20, 0x98, 0x2c, 0xe6, 0xbf, 0xc2, 0xef,
+ 0xc1, 0x07, 0x25, 0x75,
+ 0x28, 0xba, 0xf8, 0xd6, 0x14, 0xf1, 0x76, 0xeb, 0x9f, 0xd7, 0xd9, 0x6f,
+ 0x3e, 0x50, 0x1b, 0xa3,
+ 0xe8, 0xcd, 0xbc, 0x42, 0x74, 0x8d, 0x64, 0x66, 0xb1, 0xfa, 0x65, 0x84,
+ 0x2f, 0x13, 0x53, 0x2d,
+ 0x6b, 0x54, 0x70, 0x3d, 0xd4, 0x09, 0x52, 0x32, 0xc3, 0x8d, 0x62, 0x7a,
+ 0x1c, 0xd6, 0x8b, 0x7c,
+ 0xab, 0x23, 0x34, 0xa9, 0xb4, 0x75, 0x40, 0xbf, 0xed, 0xa0, 0xde, 0x91,
+ 0x0d, 0x95, 0xc3, 0xf2,
+ 0xae, 0xa5, 0x2b, 0xc3, 0x57, 0xc2, 0x3e, 0x9a, 0x27, 0x63, 0x6c, 0x45,
+ 0x7a, 0x9f, 0xf8, 0xde,
+ 0x6e, 0xd2, 0x6f, 0x57, 0x37, 0xbe, 0x2c, 0x17, 0x09, 0x4e, 0xd0, 0xae,
+ 0x6b, 0xdc, 0xb0, 0x50,
+ 0xed, 0x4b, 0xa3, 0x28, 0x97, 0x3a, 0x1a, 0x43, 0x7b, 0x39, 0xd7, 0x50,
+ 0x58, 0x19, 0x68, 0x01,
+ 0x2d, 0x3c, 0xe7, 0xbc, 0xf7, 0x46, 0x08, 0xce, 0x55, 0x14, 0x6b, 0xbb,
+ 0x49, 0x5a, 0x20, 0x8f,
+ 0xb7, 0x33, 0xae, 0x93, 0xba, 0xb6, 0x0a, 0x1c, 0xd1, 0x11, 0x01, 0xe5,
+ 0xca, 0xad, 0x28, 0xdc,
+ 0x77, 0x44, 0xea, 0x07, 0xda, 0xca, 0x18, 0x91, 0xff, 0x3c, 0xbd, 0x0e,
+ 0xdb, 0xee, 0x60, 0x52,
+ 0xf4, 0xdd, 0x26, 0x78, 0x7a, 0x4e, 0x2e, 0xc5, 0x8d, 0x4b, 0xba, 0xf0,
+ 0xe8, 0x2b, 0xb8, 0x03,
+ 0x34, 0xaa, 0x62, 0xec, 0x1a, 0x32, 0x3c, 0x48, 0xa3, 0x66, 0x06, 0x1b,
+ 0xf9, 0x68, 0xf0, 0x8d,
+ 0x31, 0x2c, 0x7d, 0x86, 0xf9, 0x85, 0x42, 0x6d, 0x69, 0xa5, 0xb4, 0xcf,
+ 0x8e, 0x62, 0xcb, 0xa1,
+ 0xf1, 0x5b, 0x39, 0x12, 0x99, 0xf9, 0x50, 0xe0, 0x47, 0x88, 0x08, 0x24,
+ 0x9f, 0x21, 0x83, 0x2f,
+ 0x72, 0xc2, 0xf5, 0x6d, 0x39, 0x7d, 0x66, 0xb4, 0x35, 0xff, 0x0f, 0xda,
+ 0xac, 0xe4, 0x5b, 0x7e,
+ 0xb2, 0xb5, 0xb1, 0xf9, 0x59, 0x01, 0x74, 0x39, 0x1b, 0xd2, 0xb3, 0x31,
+ 0xbd, 0xa7, 0x13, 0xf0,
+ 0x78, 0x0d, 0xcb, 0xb9, 0x3c, 0xd0, 0x9a, 0xfe, 0x62, 0xba, 0xa8, 0xb1,
+ 0x42, 0xf0, 0x2d, 0x26,
+ 0xb8, 0x7a, 0x8f, 0x2d, 0x5c, 0xac, 0x88, 0x73, 0x4c, 0x97, 0x14, 0x5a,
+ 0x53, 0xb3, 0x65, 0xa8,
+ 0x3b, 0xe3, 0x43, 0x52, 0xfc, 0x28, 0xbe, 0x27, 0x3e, 0xe0, 0x13, 0xa4,
+ 0x60, 0x76, 0xbd, 0xf9,
+ 0xfb, 0x94, 0x07, 0xc6, 0x9c, 0x54, 0xac, 0xaa, 0x10, 0xcd, 0xaf, 0x4f,
+ 0x71, 0x35, 0xf5, 0x77,
+ 0xfe, 0x12, 0x18, 0xac, 0x7f, 0xe3, 0xd2, 0x8f, 0xda, 0x0e, 0x1d, 0x9b,
+ 0x06, 0x3f, 0xce, 0x5b,
+ 0x3e, 0x65, 0x5c, 0x38, 0x1f, 0x9f, 0xc0, 0x02, 0xf4, 0x23, 0xa1, 0x70,
+ 0x17, 0x7c, 0x86, 0xd5,
+ 0xbd, 0xfc, 0x90, 0x47, 0xbf, 0x1b, 0xf6, 0x56, 0x86, 0x54, 0xa6, 0x8e,
+ 0x24, 0xb9, 0x5e, 0x84,
+ 0x7d, 0x8b, 0xd4, 0xd3, 0xdf, 0x67, 0xe4, 0xdb, 0xa8, 0x79, 0x1a, 0x65,
+ 0x35, 0xfa, 0x16, 0x0a,
+ 0xea, 0x4f, 0x64, 0xc7, 0x75, 0x7a, 0xe9, 0x1b, 0x74, 0x84, 0x90, 0x4d,
+ 0x19, 0x17, 0x22, 0xeb,
+ 0x2a, 0x38, 0x20, 0x53, 0x15, 0x06, 0xfb, 0x96, 0x5a, 0xa9, 0x2c, 0xa6,
+ 0x08, 0x54, 0x6a, 0x65,
+ 0xa9, 0xa1, 0xec, 0x2c, 0xb5, 0x82, 0xcd, 0xc2, 0x28, 0xde, 0x2b, 0x58,
+ 0x3b, 0x91, 0xb2, 0x34,
+ 0x69, 0xd6, 0xa8, 0xb8, 0xd5, 0xfe, 0xdf, 0x4f, 0x06, 0xf3, 0x97, 0xb3,
+ 0x2a, 0xd2, 0xfa, 0xba,
+ 0x6c, 0x50, 0xb7, 0xd2, 0x36, 0x49, 0xa1, 0x6a, 0xcc, 0x30, 0x25, 0x67,
+ 0x5d, 0xd8, 0xc1, 0x96,
+ 0xac, 0x27, 0xf3, 0x46, 0x56, 0x35, 0xb3, 0xe7, 0xe2, 0x1d, 0x99, 0x8c,
+ 0x4c, 0x9b, 0x89, 0x18,
+ 0x2f, 0xbe, 0x3f, 0x39, 0xf6, 0xb1, 0x85, 0xb3, 0x90, 0x6a, 0x9e, 0x72,
+ 0x7f, 0x5e, 0x51, 0x49,
+ 0xef, 0xc9, 0x7b, 0xad, 0x96, 0xcd, 0x97, 0x3e, 0xbe, 0x47, 0x22, 0x99,
+ 0x6e, 0x1d, 0x19, 0xc7,
+ 0x25, 0x71, 0x01, 0xed, 0xf3, 0x1c, 0x79, 0xf9, 0xc7, 0x2f, 0x39, 0x19,
+ 0x91, 0x4a, 0x27, 0x11,
+ 0xe5, 0x06, 0x45, 0x79, 0x93, 0x60, 0x6b, 0x74, 0xe9, 0x02, 0x85, 0xf2,
+ 0x80, 0x09, 0x6f, 0x9f,
+ 0x66, 0x9f, 0x89, 0x06, 0x33, 0xe4, 0x5d, 0x20, 0x9b, 0x75, 0x82, 0x0c,
+ 0xb3, 0xcc, 0xb7, 0xce,
+ 0xa6, 0xe8, 0xcd, 0x92, 0x53, 0x98, 0x4f, 0xad, 0xb5, 0x58, 0x3e, 0xe7,
+ 0xa2, 0x8f, 0xff, 0x40,
+ 0xa3, 0x6e, 0xd2, 0xf8, 0xb0, 0x2f, 0x31, 0x88, 0x7f, 0x9b, 0x8c, 0x33,
+ 0xd5, 0x85, 0xc4, 0x6c,
+ 0x63, 0x19, 0x96, 0x6c, 0xd0, 0x53, 0x23, 0x05, 0x51, 0xb6, 0x30, 0xd8,
+ 0xc4, 0xc6, 0x8c, 0xe2,
+ 0xe0, 0x80, 0x5a, 0x13, 0x70, 0xd7, 0x15, 0x51, 0x23, 0xc1, 0x37, 0x26,
+ 0xf7, 0x03, 0x54, 0xb3,
+ 0x20, 0xf7, 0x1e, 0x87, 0x10, 0xab, 0x07, 0xdc, 0x0d, 0xec, 0x8b, 0xcd,
+ 0xe6, 0x40, 0x1c, 0x3d,
+ 0x0d, 0xcb, 0xf9, 0x3b, 0xe7, 0xed, 0x0f, 0x12, 0x58, 0xf8, 0xe0, 0x76,
+ 0xaf, 0x1a, 0x3c, 0xb2,
+ 0xcd, 0xbc, 0xbd, 0xaf, 0x87, 0x91, 0x1d, 0x9f, 0x76, 0xd5, 0x5c, 0x9d,
+ 0xbe, 0x59, 0x74, 0x3c,
+ 0x4e, 0x25, 0x71, 0xd0, 0x27, 0x15, 0x2b, 0xcb, 0x04, 0xa2, 0x5b, 0x63,
+ 0x8d, 0x9c, 0xac, 0x6d,
+ 0x8e, 0x52, 0x35, 0x44, 0x47, 0x69, 0x39, 0x46, 0x2a, 0x8f, 0xe7, 0x88,
+ 0x9c, 0xdf, 0xe4, 0xe3,
+ 0x8b, 0xd4, 0x2a, 0x2e, 0xa4, 0xde, 0x47, 0x63, 0xe0, 0x4c, 0x55, 0x5c,
+ 0xeb, 0xd5, 0xdf, 0xcf,
+ 0x4b, 0xa3, 0x6e, 0xba, 0xc4, 0xa2, 0x55, 0xee, 0xce, 0x61, 0xe9, 0xb7,
+ 0xfa, 0x96, 0x97, 0x41,
+ 0xc8, 0x3a, 0xa2, 0xc5, 0x64, 0x26, 0x63, 0xba, 0xbc, 0x16, 0xee, 0x49,
+ 0xc9, 0x53, 0x4f, 0x10,
+ 0x08, 0x4d, 0xe6, 0x51, 0x04, 0x5a, 0x71, 0x37, 0x92, 0x3b, 0x52, 0xa2,
+ 0xd8, 0x10, 0x07, 0x9e,
+ 0xc2, 0xf5, 0x9c, 0x11, 0x61, 0x8b, 0x9f, 0xf0, 0xeb, 0x53, 0x49, 0x22,
+ 0x27, 0x47, 0x39, 0x48,
+ 0x02, 0x82, 0xd8, 0x85, 0x01, 0xf7, 0x8d, 0x7d, 0xc5, 0x7e, 0xf5, 0xc9,
+ 0x36, 0x04, 0x71, 0xc6,
+ 0x81, 0x1b, 0x14, 0xfa, 0xa1, 0x73, 0xbb, 0x29, 0xb7, 0x09, 0xf2, 0x37,
+ 0x05, 0xc1, 0xa9, 0x97,
+ 0x41, 0x6c, 0x50, 0x6e, 0xc1, 0x0f, 0xa9, 0xa4, 0x99, 0x24, 0x4e, 0xdc,
+ 0x14, 0x82, 0xe1, 0x19,
+ 0x44, 0xea, 0x4f, 0x04, 0x22, 0xb8, 0xd7, 0x81, 0x53, 0xe7, 0xfc, 0x08,
+ 0x63, 0x88, 0xda, 0x35,
+ 0x84, 0x9d, 0x0b, 0x90, 0x42, 0xc4, 0xc5, 0x0c, 0x7d, 0xca, 0x40, 0xe3,
+ 0x72, 0xcb, 0x92, 0xbb,
+ 0x07, 0x04, 0xc7, 0xef, 0xe2, 0x40, 0xf3, 0x58, 0x0f, 0xbd, 0x47, 0x1d,
+ 0x41, 0x0e, 0x4a, 0xea,
+ 0xc7, 0x73, 0x83, 0x7b, 0x82, 0x3c, 0xe1, 0xd5, 0x21, 0x90, 0xfb, 0xf6,
+ 0x50, 0x4d, 0x02, 0x64,
+ 0x50, 0xb7, 0x33, 0x6f, 0x28, 0x21, 0xec, 0x15, 0xfd, 0x6d, 0x71, 0xde,
+ 0x7c, 0xa0, 0x36, 0x85,
+ 0x90, 0xc0, 0x77, 0xfb, 0x48, 0x5d, 0xfe, 0x98, 0xd3, 0x40, 0xcd, 0x35,
+ 0x6d, 0xe3, 0x7e, 0x0b,
+ 0x13, 0x59, 0xbb, 0x84, 0xe8, 0xd9, 0xc8, 0xcc, 0xa1, 0x37, 0xca, 0xcb,
+ 0x5e, 0x26, 0xa6, 0x5a,
+ 0xd3, 0x2e, 0xff, 0x10, 0x88, 0xa5, 0xda, 0x41, 0x8f, 0x1a, 0x76, 0x20,
+ 0x4f, 0x65, 0xee, 0xd4,
+ 0xd6, 0xa8, 0xe0, 0x7a, 0x6b, 0x12, 0xa4, 0x64, 0x45, 0xd9, 0xc4, 0xf4,
+ 0x38, 0x6f, 0xd5, 0xf8,
+ 0x16, 0xdf, 0xa4, 0xee, 0x0b, 0x6e, 0xb6, 0xe9, 0x6b, 0xf4, 0x78, 0x1f,
+ 0x29, 0x2c, 0x9d, 0x76,
+ 0x95, 0x46, 0x68, 0x91, 0xab, 0xea, 0x80, 0xbd, 0x19, 0x83, 0x7f, 0xe1,
+ 0x1a, 0xe9, 0x45, 0x27,
+ 0x55, 0x31, 0x2c, 0x05, 0xcb, 0x96, 0x92, 0x30, 0x37, 0xae, 0xc3, 0x0a,
+ 0x0b, 0xaa, 0x0d, 0xa9,
+ 0x9f, 0x89, 0x56, 0x45, 0xae, 0x47, 0x7c, 0xf7, 0x4e, 0xc6, 0xd8, 0x8a,
+ 0xf4, 0xfd, 0x33, 0x7f,
+ 0x5f, 0xfe, 0x12, 0xd1, 0xce, 0x3b, 0x6e, 0x7a, 0x60, 0xeb, 0x64, 0x61,
+ 0xe5, 0xbe, 0x7b, 0xf1,
+ 0xdc, 0x67, 0xde, 0xae, 0x6e, 0xbf, 0x58, 0x2e, 0x12, 0x9c, 0x63, 0x9f,
+ 0xd6, 0x7b, 0xa3, 0xa0,
+ 0x1c, 0x10, 0x9a, 0x3a, 0x0e, 0xc3, 0x4a, 0xa3, 0x3c, 0xb1, 0xdf, 0x74,
+ 0xc7, 0x38, 0xeb, 0x2e,
+ 0x19, 0x96, 0x85, 0x50, 0xed, 0x74, 0x34, 0x86, 0xf6, 0x72, 0x6d, 0xa0,
+ 0xb0, 0x32, 0xd0, 0x02,
+ 0xd9, 0xe1, 0xc1, 0xc4, 0x8d, 0x08, 0x26, 0x0b, 0xd8, 0x5f, 0xd1, 0x4b,
+ 0xa1, 0x71, 0x98, 0x8c,
+ 0x5a, 0x78, 0x0d, 0xbb, 0x2d, 0x8c, 0x10, 0x5f, 0xaa, 0x28, 0xd6, 0xb5,
+ 0x92, 0xb4, 0x40, 0xdd,
+ 0x9a, 0x0f, 0x49, 0x2f, 0x4d, 0xf0, 0x02, 0xd2, 0x84, 0x05, 0x6a, 0x5e,
+ 0x83, 0xf7, 0x08, 0x53,
+ 0xad, 0x66, 0x9f, 0xe5, 0xb7, 0xaf, 0x14, 0x38, 0x61, 0x22, 0x02, 0x09,
+ 0x57, 0x99, 0x50, 0x7b,
+ 0x6d, 0x11, 0xdb, 0x71, 0xd7, 0xd3, 0x06, 0xb5, 0x4f, 0x0f, 0xbe, 0xe2,
+ 0x46, 0xda, 0x18, 0xf5,
+ 0xee, 0x88, 0x17, 0x0e, 0x77, 0x57, 0x30, 0xe1, 0x3d, 0x78, 0xb9, 0x1c,
+ 0x75, 0x1f, 0xc0, 0xa4,
+ 0x2e, 0xff, 0x53, 0x9a, 0x17, 0x2b, 0x22, 0x6c, 0x13, 0x55, 0x05, 0xf7,
+ 0x64, 0x5c, 0x88, 0x2a,
+ 0x2b, 0x79, 0x4c, 0xf0, 0xf4, 0x9c, 0x5c, 0x49, 0xd9, 0x96, 0xb7, 0x23,
+ 0x13, 0x56, 0xb3, 0x06,
+ 0xeb, 0x0e, 0x08, 0x64, 0x94, 0xe0, 0x4e, 0xc4, 0xf7, 0xbb, 0x0b, 0xc8,
+ 0x02, 0x15, 0xfb, 0x88,
+ 0x68, 0x97, 0xc4, 0x1b, 0x34, 0x64, 0x78, 0x90, 0x85, 0xcc, 0x0c, 0x36,
+ 0x31, 0xd0, 0x23, 0xd9,
+ 0xa8, 0xe0, 0x80, 0x8f, 0x54, 0x18, 0x6a, 0x1d, 0xab, 0xe1, 0xb0, 0xdd,
+ 0x20, 0x93, 0x6b, 0x57,
+ 0x62, 0x58, 0xfa, 0xcf, 0x31, 0xc9, 0x84, 0xda, 0xd2, 0x89, 0xab, 0x5d,
+ 0xdf, 0xc4, 0x55, 0x81,
+ 0xa2, 0x2f, 0xbe, 0x5b, 0x51, 0xb5, 0x96, 0x57, 0xfc, 0xa4, 0x17, 0xb6,
+ 0xce, 0x87, 0x1d, 0x0f,
+ 0x21, 0xb6, 0x72, 0x24, 0xf1, 0x31, 0xa0, 0x03, 0x8e, 0xd3, 0x10, 0x48,
+ 0xfd, 0x42, 0xc5, 0x5e,
+ 0xe1, 0xc1, 0x36, 0xb0, 0x91, 0x4d, 0xb2, 0x8e, 0xa0, 0xfe, 0xac, 0xa3,
+ 0xec, 0x01, 0x8d, 0xd0,
+ 0xe4, 0x47, 0x29, 0xda, 0x72, 0xfa, 0xcc, 0xab, 0x6a, 0x3d, 0x1e, 0x77,
+ 0x9b, 0x0b, 0xb6, 0xfc,
+ 0x24, 0x30, 0x6d, 0x4e, 0x12, 0x86, 0xde, 0x26, 0x44, 0x10, 0xa2, 0x9c,
+ 0x8a, 0x48, 0xfe, 0x72,
+ 0xa7, 0xa9, 0xa1, 0x31, 0xb2, 0x02, 0xe8, 0x72, 0x36, 0x67, 0xa5, 0x62,
+ 0xb9, 0x8d, 0x26, 0x23,
+ 0x67, 0xde, 0xe5, 0xa5, 0xd2, 0x7e, 0xfa, 0xff, 0x18, 0x4a, 0x19, 0x89,
+ 0xa8, 0xce, 0x6e, 0xad,
+ 0xf0, 0x1a, 0x55, 0xb1, 0x78, 0x63, 0xf7, 0x3f, 0xc4, 0xb7, 0x93, 0xa1,
+ 0x84, 0x23, 0x5a, 0x4c,
+ 0x30, 0x6d, 0x11, 0x25, 0x18, 0x1f, 0xe5, 0xb2, 0xea, 0x9a, 0x2f, 0x4a,
+ 0x95, 0x60, 0x12, 0xc2,
+ 0xb3, 0xf4, 0xdd, 0x5a, 0xb8, 0x9b, 0xd3, 0xe6, 0x98, 0xed, 0x28, 0xb4,
+ 0xa6, 0xa5, 0xca, 0x93,
+ 0x73, 0x83, 0x99, 0xce, 0xd8, 0xe7, 0xc1, 0x6b, 0xb6, 0xc0, 0x94, 0x5f,
+ 0xb7, 0xe6, 0x82, 0x1d,
+ 0x76, 0x05, 0x86, 0xa4, 0x3b, 0x50, 0xbf, 0x4e, 0x7c, 0x03, 0x26, 0x8b,
+ 0xc0, 0xec, 0xb9, 0x31,
+ 0xb6, 0x72, 0xc2, 0x30, 0x5b, 0x2c, 0xad, 0xc3, 0x52, 0x2e, 0x9a, 0x60,
+ 0xd1, 0xaf, 0xf1, 0xbf,
+ 0x35, 0xeb, 0x0e, 0x4f, 0xfb, 0xa8, 0x9b, 0x97, 0x20, 0x59, 0x9d, 0x9e,
+ 0xe2, 0x6a, 0x29, 0xee,
+ 0xf5, 0x9c, 0x4a, 0xdb, 0x9b, 0xd4, 0x89, 0x1a, 0x0e, 0x74, 0x21, 0x75,
+ 0xf3, 0x29, 0x61, 0x60,
+ 0x3f, 0x24, 0x30, 0x9b, 0xfe, 0x05, 0x67, 0xdd, 0x77, 0x1c, 0x3a, 0xf5,
+ 0x0c, 0x7e, 0x5f, 0xb6,
+ 0xff, 0x53, 0x74, 0x0f, 0x9e, 0x79, 0x75, 0x50, 0x59, 0x31, 0x86, 0x1e,
+ 0x1d, 0x3d, 0x17, 0x38,
+ 0x7c, 0xca, 0xb8, 0x70, 0x3e, 0xfd, 0x43, 0x04, 0x2b, 0x46, 0x81, 0xe0,
+ 0x2e, 0xf8, 0xcf, 0x69,
+ 0xbc, 0xbd, 0xfc, 0xe4, 0x5e, 0x81, 0x51, 0x89, 0x05, 0x6b, 0x3d, 0x0b,
+ 0x3f, 0xbb, 0x87, 0xe7,
+ 0xb9, 0x3b, 0xe3, 0x8e, 0xbd, 0x36, 0x2f, 0xac, 0xcf, 0xa8, 0x8f, 0xdf,
+ 0x48, 0xb1, 0xbc, 0xcb,
+ 0x79, 0x4c, 0xa7, 0x1a, 0xdd, 0x4a, 0x3d, 0x21, 0xe1, 0x85, 0x33, 0x34,
+ 0x59, 0xf2, 0xf4, 0x45,
+ 0xfa, 0xd5, 0x6b, 0x65, 0x7d, 0xce, 0x0b, 0x75, 0x93, 0xf2, 0x34, 0xca,
+ 0x6a, 0x37, 0x2c, 0x14,
+ 0x3a, 0xa2, 0x2f, 0xf1, 0x1d, 0xb2, 0x19, 0xf8, 0xbd, 0xdf, 0x88, 0x21,
+ 0x7b, 0x74, 0x64, 0x9a,
+ 0x17, 0x9e, 0xc8, 0x4d, 0xea, 0xf4, 0x11, 0x36, 0xe8, 0xcb, 0xe3, 0x9a,
+ 0x32, 0x2e, 0x44, 0x15,
+ 0xd7, 0xe9, 0x8c, 0xd9, 0x8a, 0x88, 0x03, 0xbb, 0xc6, 0xe6, 0x5f, 0x71,
+ 0x23, 0x6d, 0x0c, 0x9b,
+ 0x54, 0x70, 0x40, 0xa6, 0x2a, 0x0c, 0x35, 0xef, 0xb4, 0x91, 0x58, 0x8f,
+ 0x10, 0xa8, 0xd4, 0xca,
+ 0x94, 0x07, 0x04, 0x32, 0x4a, 0x70, 0x27, 0x62, 0x9a, 0xbc, 0xe4, 0x64,
+ 0x01, 0xeb, 0x9c, 0x44,
+ 0x91, 0x81, 0x1b, 0x58, 0xa9, 0xc7, 0x59, 0x47, 0x50, 0x7f, 0x56, 0xb0,
+ 0x76, 0xe1, 0xa7, 0x68,
+ 0x51, 0xf6, 0x5f, 0xcc, 0xc9, 0xbb, 0x4b, 0xca, 0x7e, 0x52, 0xea, 0x5b,
+ 0x67, 0xa2, 0xef, 0xe6,
+ 0xd2, 0x6f, 0x93, 0xb3, 0x69, 0x3f, 0x7d, 0x9e, 0x0c, 0x25, 0xed, 0xa5,
+ 0x54, 0x67, 0x37, 0xb7,
+ 0x12, 0x18, 0xd7, 0x27, 0x09, 0x43, 0x6f, 0x13, 0x22, 0x08, 0x51, 0x4e,
+ 0x45, 0x24, 0x7f, 0x39,
+ 0xd8, 0xa0, 0xad, 0x67, 0x6c, 0x92, 0x81, 0xd4, 0x5b, 0x60, 0x4a, 0xce,
+ 0xba, 0x73, 0x41, 0xef,
+ 0x18, 0xd7, 0xe9, 0xf3, 0x0c, 0xee, 0x93, 0x59, 0x75, 0x4d, 0xf6, 0x25,
+ 0xab, 0x30, 0x09, 0x61,
+ 0x9b, 0x4e, 0x25, 0x8c, 0xac, 0x6a, 0xa5, 0x0d, 0x07, 0x3a, 0xf1, 0xdb,
+ 0x98, 0xf5, 0xd1, 0x30,
+ 0x5b, 0x39, 0x61, 0x18, 0xcc, 0x16, 0xb7, 0x80, 0x29, 0x17, 0x4d, 0x30,
+ 0x89, 0xb6, 0x99, 0xbe,
+ 0x5e, 0xbf, 0x7e, 0x72, 0x2f, 0xa1, 0xc9, 0xa5, 0xe3, 0xd4, 0xff, 0xe4,
+ 0xfe, 0xbc, 0xa2, 0x92,
+ 0x9e, 0xc8, 0x3a, 0xe6, 0x4f, 0xdd, 0xdb, 0x28, 0xcd, 0xf9, 0x43, 0x0f,
+ 0xef, 0xff, 0xea, 0x1c,
+ 0x1d, 0x51, 0xf6, 0x99, 0xef, 0x59, 0xed, 0x7c, 0xbf, 0x8e, 0x44, 0xf1,
+ 0xdc, 0x3a, 0x32, 0x4d,
+ 0xdd, 0x26, 0xb2, 0x0d, 0x8f, 0x25, 0xff, 0xf1, 0x91, 0xa3, 0xf8, 0x1a,
+ 0xcd, 0x79, 0x7a, 0xc3,
+ 0x4a, 0xe2, 0x02, 0x19, 0x25, 0x38, 0xf2, 0x31, 0x4d, 0x5e, 0x72, 0x32,
+ 0xe1, 0x94, 0x4e, 0x22,
+ 0x8a, 0x95, 0x46, 0x8d, 0x45, 0x44, 0xe0, 0xbc, 0x63, 0x73, 0xce, 0xd9,
+ 0xf0, 0xd7, 0x06, 0xac,
+ 0x09, 0x0c, 0x8a, 0xf2, 0xe5, 0xc0, 0xd6, 0xe8, 0x11, 0x04, 0xc9, 0x27,
+ 0xc3, 0x12, 0xde, 0xfd,
+ 0xc9, 0x7b, 0xce, 0x66, 0x85, 0xbc, 0xc4, 0x65, 0x3f, 0x29, 0x75, 0xcc,
+ 0xd2, 0x51, 0x96, 0x73,
+ 0xcc, 0xfd, 0xd1, 0x0c, 0x66, 0x0b, 0xba, 0x40, 0xf5, 0xea, 0xc7, 0x18,
+ 0xa5, 0x5b, 0xad, 0x5f,
+ 0x0c, 0x8a, 0x95, 0x98, 0x06, 0x77, 0xa8, 0xcd, 0xdb, 0xc7, 0x7b, 0xf3,
+ 0xb4, 0x18, 0xe5, 0xd1,
+ 0x8f, 0x13, 0x59, 0xe7, 0xa6, 0xf3, 0x9e, 0x99, 0xa9, 0xb0, 0x7c, 0x0d,
+ 0x87, 0xdd, 0x3d, 0x80,
+ 0x4f, 0x64, 0x1d, 0x73, 0xc6, 0x8f, 0x8c, 0x14, 0x87, 0x9d, 0xc0, 0xe6,
+ 0x96, 0x9e, 0x75, 0x0e,
+ 0x85, 0xdc, 0x67, 0x33, 0xa3, 0x5e, 0x62, 0xd3, 0xfe, 0xf5, 0xdb, 0x66,
+ 0x69, 0xc9, 0x4b, 0xd8,
+ 0x45, 0xab, 0x23, 0xa7, 0xc3, 0x22, 0x70, 0x5e, 0xd0, 0xd8, 0x67, 0x8d,
+ 0x78, 0x8a, 0x03, 0x56,
+ 0xc6, 0x32, 0xef, 0xd8, 0x63, 0xa6, 0x46, 0x0a, 0xa2, 0xaf, 0x60, 0x73,
+ 0x4b, 0x4f, 0xdb, 0x07,
+ 0x06, 0x45, 0xab, 0x4c, 0x03, 0xda, 0x54, 0x87, 0x8c, 0x82, 0xdc, 0x98,
+ 0x5a, 0x0c, 0x93, 0x89,
+ 0x03, 0xc3, 0xb4, 0x26, 0xe0, 0x6d, 0x2a, 0xa2, 0x46, 0x41, 0x6e, 0x4c,
+ 0x2d, 0x06, 0xa8, 0xa5,
+ 0xc3, 0xb4, 0xf0, 0xb2, 0x80, 0x11, 0x38, 0x2f, 0x68, 0x6c, 0xd2, 0xa7,
+ 0x3c, 0x45, 0xe0, 0x2b,
+ 0x40, 0x2d, 0x3c, 0xcd, 0x20, 0x95, 0x0e, 0x7b, 0x1a, 0x1b, 0xd5, 0x59,
+ 0x0f, 0x80, 0x38, 0x7a,
+ 0x80, 0x5a, 0x78, 0x59, 0x40, 0xe9, 0x1c, 0xf6, 0x34, 0x36, 0x69, 0xb2,
+ 0x1e, 0xc3, 0x70, 0xf4,
+ 0x1a, 0x55, 0x31, 0x76, 0x0d, 0x19, 0x1e, 0x24, 0xb0, 0x33, 0x03, 0xec,
+ 0x9d, 0x34, 0x78, 0xa7,
+ 0xda, 0x22, 0x75, 0xe2, 0x6d, 0x65, 0x0c, 0xa9, 0x9e, 0x1e, 0xbf, 0x07,
+ 0x8c, 0x77, 0x30, 0x29,
+ 0x59, 0xbb, 0xb9, 0x9d, 0xcd, 0xe1, 0x3a, 0xfd, 0xec, 0x69, 0xb8, 0xf9,
+ 0xbf, 0xb2, 0xe8, 0x78,
+ 0x99, 0xcc, 0xfd, 0x09, 0xad, 0x9d, 0x28, 0x70, 0xc2, 0x44, 0x04, 0x12,
+ 0xae, 0xf1, 0xa0, 0xf6,
+ 0x9c, 0x4a, 0xe2, 0x63, 0x4e, 0x2a, 0x56, 0x55, 0x08, 0x87, 0xb6, 0xc6,
+ 0xd9, 0xfb, 0x9b, 0xda,
+ 0x5c, 0x3d, 0xa6, 0xf7, 0x2e, 0x56, 0x44, 0xd8, 0x26, 0xaa, 0x0a, 0x2d,
+ 0xc8, 0xb8, 0xd3, 0x54,
+ 0xdf, 0xa4, 0x6a, 0x88, 0x8e, 0xd2, 0x72, 0x8c, 0x54, 0xdd, 0x0d, 0xd3,
+ 0xfb, 0x7d, 0x0b, 0x05,
+ 0x1f, 0xd3, 0x2e, 0x1c, 0xee, 0xae, 0x60, 0x01, 0x7a, 0xf0, 0xb1, 0x38,
+ 0xea, 0x3e, 0x43, 0x8b,
+ 0xd5, 0x6b, 0x54, 0x5c, 0x8b, 0x7f, 0x8e, 0xc6, 0x03, 0x98, 0xaa, 0xb8,
+ 0x15, 0x69, 0x7d, 0x5d,
+ 0x15, 0x1c, 0x10, 0xc8, 0xeb, 0x03, 0x9c, 0x4b, 0x2d, 0xb5, 0x16, 0x53,
+ 0x04, 0x2a, 0x35, 0xd3,
+ 0x96, 0x85, 0xdc, 0xb7, 0x4b, 0x87, 0xaa, 0x1f, 0x5f, 0xc2, 0x11, 0xad,
+ 0x37, 0xef, 0xed, 0x82,
+ 0x56, 0xf2, 0x98, 0x23, 0x2b, 0xfb, 0xb8, 0x92, 0x71, 0xef, 0xad, 0x46,
+ 0x26, 0xac, 0xa5, 0x0c,
+ 0x53, 0x74, 0x87, 0x49, 0xc8, 0x4c, 0xc6, 0xb7, 0xbb, 0x2c, 0x1f, 0x92,
+ 0x51, 0xa6, 0x9e, 0x20,
+ 0x93, 0x03, 0xc3, 0xdd, 0xa8, 0x30, 0xd4, 0x3a, 0x95, 0x01, 0xa3, 0x79,
+ 0x40, 0xe5, 0xd6, 0xae,
+ 0x10, 0x9a, 0x0f, 0xa2, 0x08, 0xb4, 0xe2, 0x6e, 0xe7, 0x76, 0xa4, 0x87,
+ 0x73, 0x20, 0x0e, 0xff,
+ 0xd0, 0xed, 0x4b, 0x36, 0x68, 0xc8, 0xf0, 0xe3, 0xc9, 0x5b, 0x18, 0x6c,
+ 0x62, 0x63, 0x46, 0x71,
+ 0x47, 0x29, 0xfb, 0x22, 0xc2, 0xd5, 0xfd, 0x23, 0x15, 0xa6, 0x92, 0x44,
+ 0x4e, 0x8e, 0x72, 0x90,
+ 0x87, 0x5e, 0xbf, 0xb6, 0xa2, 0xa9, 0xef, 0xae, 0x3b, 0x8b, 0x2e, 0xaf,
+ 0x5f, 0xcd, 0x3a, 0x1e,
+ 0x04, 0xc7, 0x73, 0xc9, 0x02, 0x2d, 0xd9, 0xfa, 0x49, 0xfc, 0x29, 0x51,
+ 0x6c, 0x08, 0xe2, 0x4f,
+ 0xc4, 0xb0, 0x37, 0x5d, 0x62, 0x51, 0xcb, 0x77, 0x67, 0xd1, 0x95, 0xba,
+ 0x7d, 0x4b, 0xaa, 0xc1,
+ 0xc1, 0x36, 0x28, 0x37, 0x81, 0xe6, 0xb5, 0x52, 0xad, 0x12, 0x27, 0x6e,
+ 0x0a, 0x41, 0x91, 0xed,
+ 0x01, 0x41, 0x6c, 0xa3, 0xe1, 0x9a, 0xa7, 0xdf, 0x83, 0x3f, 0x9b, 0x85,
+ 0x1b, 0x02, 0xd9, 0x63,
+ 0x82, 0xd8, 0xa0, 0xdc, 0x41, 0x1e, 0x91, 0x8b, 0xf1, 0x48, 0x9c, 0x7b,
+ 0x28, 0xc7, 0x01, 0x32,
+ 0x42, 0xaf, 0xe4, 0x48, 0x21, 0x62, 0x83, 0x06, 0xdf, 0x65, 0x20, 0x90,
+ 0x39, 0x84, 0x49, 0xbc,
+ 0x88, 0x17, 0x9e, 0x08, 0x44, 0xb3, 0x6d, 0xc1, 0xa6, 0x0d, 0x3b, 0x10,
+ 0xc6, 0xd3, 0x77, 0x6a,
+ 0x48, 0x60, 0xda, 0x9c, 0x24, 0xcf, 0x7f, 0x4c, 0x88, 0x20, 0x87, 0xfb,
+ 0xd7, 0x90, 0x3f, 0xe4,
+ 0xcb, 0xf9, 0x16, 0xe3, 0x84, 0x4b, 0x49, 0x18, 0xfa, 0x57, 0x80, 0x05,
+ 0xe4, 0x55, 0xe7, 0xb5,
+ 0x0b, 0x8e, 0x52, 0x77, 0xe4, 0x37, 0x5b, 0x95, 0xd4, 0x7a, 0x3c, 0xee,
+ 0xf5, 0x16, 0xaf, 0x3b,
+ 0x0e, 0x08, 0x4d, 0x1d, 0x07, 0x80, 0x25, 0xb0, 0x1e, 0xb9, 0x8e, 0x3a,
+ 0x82, 0x1c, 0x94, 0x17,
+ 0xce, 0x7f, 0x09, 0x89, 0x67, 0xfc, 0x37, 0x3d, 0x30, 0x94, 0x32, 0xd1,
+ 0x93, 0x5f, 0xdc, 0x99,
+ 0x4d, 0xe6, 0xc5, 0xf6, 0xc7, 0x78, 0x01, 0x69, 0x42, 0xe3, 0x35, 0x2f,
+ 0xa0, 0x9a, 0x04, 0xc8,
+ 0x8d, 0x91, 0x81, 0x62, 0xa7, 0x04, 0x13, 0xe4, 0x6c, 0xce, 0x89, 0xc4,
+ 0xb1, 0xd9, 0x4c, 0x46,
+ 0xa0, 0xad, 0x66, 0xde, 0x50, 0x42, 0x1b, 0x2a, 0x39, 0xda, 0xe2, 0x7f,
+ 0xf8, 0x83, 0x6c, 0xc9,
+ 0x60, 0xda, 0x22, 0x4a, 0x30, 0x3e, 0x09, 0xa7, 0x17, 0xf7, 0x5e, 0x94,
+ 0xe9, 0xc0, 0x24, 0x47,
+ 0xe3, 0x43, 0xee, 0x35, 0x90, 0xba, 0x3f, 0xf3, 0x65, 0x80, 0x59, 0x6a,
+ 0xda, 0x05, 0xfc, 0x16,
+ 0x23, 0x34, 0xaa, 0xa1, 0xf0, 0xc6, 0x2d, 0x7e, 0x4b, 0xad, 0xe5, 0x81,
+ 0xcb, 0x46, 0xb4, 0x98,
+ 0x26, 0xb2, 0xb5, 0xcb, 0x13, 0x71, 0x53, 0x5b, 0x81, 0x6e, 0x57, 0x55,
+ 0xbc, 0x4c, 0x8f, 0xb4,
+ 0xe6, 0xc5, 0xf1, 0x5f, 0x73, 0x0d, 0x41, 0xd6, 0xaf, 0x43, 0xeb, 0xbe,
+ 0xad, 0x0f, 0xc7, 0x3a,
+ 0x65, 0x5c, 0x3d, 0x20, 0xd3, 0x89, 0x77, 0x82, 0xdd, 0x34, 0xec, 0x40,
+ 0x9e, 0xca, 0x1f, 0x6b,
+ 0xa5, 0x2b, 0x79, 0xb4, 0xb3, 0xf5, 0x65, 0x0f, 0xf3, 0x19, 0x50, 0xab,
+ 0x8f, 0x89, 0x57, 0xe5,
+ 0x6f, 0x93, 0x03, 0xf4, 0xd6, 0x24, 0x8b, 0xc8, 0x8a, 0x71, 0x4b, 0x2b,
+ 0x70, 0xde, 0x69, 0x33,
+ 0xaf, 0xe4, 0x47, 0x60, 0xb6, 0x58, 0x99, 0x45, 0xa4, 0x5c, 0xf7, 0xc0,
+ 0x61, 0x9d, 0x21, 0xbd,
+ 0x2c, 0x7d, 0x8b, 0x1f, 0x16, 0xdc, 0xaf, 0x11, 0xd6, 0x2b, 0xf0, 0x3e,
+ 0x52, 0x58, 0xf9, 0xec,
+ 0xec, 0x0a, 0xcf, 0x8b, 0x76, 0xa0, 0xbd, 0x9c, 0xf8, 0x06, 0x4c, 0xd5,
+ 0x43, 0x1b, 0xb1, 0x62,
+ 0xe9, 0x8c, 0xd0, 0xe1, 0x95, 0x17, 0xc3, 0xb9, 0x32, 0xc5, 0xfe, 0x01,
+ 0x34, 0x11, 0x8a, 0x4e,
+ 0x29, 0xfb, 0x94, 0x75, 0xf5, 0x6b, 0xd1, 0x34, 0x1c, 0xe8, 0x42, 0xea,
+ 0x25, 0x52, 0xc2, 0xc0,
+ 0xaa, 0x62, 0x58, 0x0a, 0x55, 0xef, 0xe7, 0x60, 0x6e, 0x9f, 0x45, 0x14,
+ 0x16, 0x97, 0x1a, 0x91,
+ 0x6a, 0x15, 0x1c, 0x9e, 0x35, 0x93, 0xf5, 0xed, 0x40, 0xb2, 0xf9, 0xff,
+ 0x07, 0xd4, 0x52, 0x1f,
+ 0xfd, 0xd1, 0xac, 0x8a, 0x9f, 0x8e, 0xf8, 0x2d, 0x9c, 0x4f, 0x73, 0xd7,
+ 0x2b, 0x39, 0x66, 0xfe,
+ 0x3d, 0xa6, 0xe8, 0x1e, 0xff, 0xf2, 0xea, 0xa0, 0xb2, 0x62, 0xcf, 0x3c,
+ 0x3a, 0x7a, 0x2e, 0x70,
+ 0xbe, 0x3f, 0x24, 0x61, 0x5f, 0x76, 0xdc, 0xf4, 0xc0, 0x15, 0xc8, 0xc2,
+ 0x09, 0xbf, 0xf6, 0x21,
+ 0x7e, 0x48, 0x60, 0xf5, 0x3f, 0x0a, 0xce, 0x79, 0xee, 0x38, 0x74, 0x29,
+ 0x18, 0xfc, 0xbe, 0xaf,
+ 0x7b, 0xce, 0x7f, 0x9f, 0xdc, 0xbd, 0xb0, 0x5c, 0x24, 0xfb, 0xc6, 0xfd,
+ 0x6f, 0xf6, 0x85, 0x83,
+ 0xbb, 0xb9, 0x3b, 0x0b, 0xbc, 0xc1, 0xa2, 0xd1, 0x0a, 0xd6, 0x7a, 0x16,
+ 0x7e, 0xb5, 0xcd, 0x0d,
+ 0x38, 0x20, 0xf7, 0x74, 0x1c, 0x45, 0x94, 0x85, 0x78, 0xa1, 0x7d, 0xe8,
+ 0x4d, 0x70, 0x15, 0x5c,
+ 0xf8, 0x57, 0xb3, 0xe0, 0x7c, 0x39, 0x86, 0x08, 0x56, 0x8c, 0xc1, 0x03,
+ 0x5c, 0x33, 0x5d, 0xd2,
+ 0x32, 0xef, 0xc9, 0xa0, 0x19, 0xe8, 0x68, 0xcf, 0x2f, 0xe4, 0xda, 0x83,
+ 0xa3, 0x64, 0x63, 0x04,
+ 0xf2, 0x98, 0x8d, 0x34, 0x79, 0x94, 0x7a, 0x42, 0x01, 0xc9, 0x66, 0x68,
+ 0xb2, 0x27, 0x2b, 0x8a,
+ 0x71, 0x01, 0x41, 0x4b, 0xd9, 0x10, 0x4c, 0x16, 0x73, 0xbe, 0x61, 0x96,
+ 0x81, 0xe2, 0xf3, 0xdb,
+ 0xb1, 0x76, 0x05, 0xdf, 0xb9, 0x6c, 0x5e, 0x9b, 0x5d, 0x93, 0xdd, 0x7d,
+ 0x90, 0xa1, 0xbb, 0x55,
+ 0xb4, 0xf0, 0x1a, 0xb5, 0x5a, 0xdb, 0x20, 0xbe, 0x97, 0x50, 0x6f, 0xa9,
+ 0xe7, 0xab, 0x80, 0x79,
+ 0x74, 0x87, 0x5e, 0x21, 0x3a, 0xa7, 0x32, 0x33, 0xb9, 0x7d, 0xd3, 0x42,
+ 0xf6, 0xe8, 0xc8, 0xf7,
+ 0xf7, 0x1e, 0x92, 0x5e, 0x9a, 0x23, 0x04, 0x67, 0xcb, 0x0a, 0xd4, 0xbc,
+ 0xc5, 0x2d, 0x10, 0xa6,
+ 0x37, 0x69, 0xd6, 0xca, 0xfa, 0x5f, 0x16, 0xea, 0xe5, 0x27, 0x68, 0x57,
+ 0xd4, 0x6e, 0x58, 0x28,
+ },
+ { /* 11 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xc2, 0x5d, 0x97, 0xf3, 0xe9, 0x1a, 0x8d, 0xcb, 0xbb, 0x06, 0xc5, 0x20,
+ 0x1c, 0x68, 0x90, 0x93,
+ 0x47, 0xba, 0xed, 0x25, 0x11, 0x34, 0xd9, 0x55, 0xb5, 0x0c, 0x49, 0x40,
+ 0x38, 0xd0, 0xe3, 0xe5,
+ 0x85, 0xe7, 0x7a, 0xd6, 0xf8, 0x2e, 0x54, 0x9e, 0x0e, 0x0a, 0x8c, 0x60,
+ 0x24, 0xb8, 0x73, 0x76,
+ 0x8e, 0xb7, 0x19, 0x4a, 0x22, 0x68, 0x71, 0xaa, 0xa9, 0x18, 0x92, 0x80,
+ 0x70, 0x63, 0x05, 0x09,
+ 0x4c, 0xea, 0x8e, 0xb9, 0xcb, 0x72, 0xfc, 0x61, 0x12, 0x1e, 0x57, 0xa0,
+ 0x6c, 0x0b, 0x95, 0x9a,
+ 0xc9, 0x0d, 0xf4, 0x6f, 0x33, 0x5c, 0xa8, 0xff, 0x1c, 0x14, 0xdb, 0xc0,
+ 0x48, 0xb3, 0xe6, 0xec,
+ 0x0b, 0x50, 0x63, 0x9c, 0xda, 0x46, 0x25, 0x34, 0xa7, 0x12, 0x1e, 0xe0,
+ 0x54, 0xdb, 0x76, 0x7f,
+ 0xdf, 0xad, 0x32, 0x94, 0x44, 0xd0, 0xe2, 0x97, 0x91, 0x30, 0xe7, 0xc3,
+ 0xe0, 0xc6, 0x0a, 0x12,
+ 0x1d, 0xf0, 0xa5, 0x67, 0xad, 0xca, 0x6f, 0x5c, 0x2a, 0x36, 0x22, 0xe3,
+ 0xfc, 0xae, 0x9a, 0x81,
+ 0x98, 0x17, 0xdf, 0xb1, 0x55, 0xe4, 0x3b, 0xc2, 0x24, 0x3c, 0xae, 0x83,
+ 0xd8, 0x16, 0xe9, 0xf7,
+ 0x5a, 0x4a, 0x48, 0x42, 0xbc, 0xfe, 0xb6, 0x09, 0x9f, 0x3a, 0x6b, 0xa3,
+ 0xc4, 0x7e, 0x79, 0x64,
+ 0x51, 0x1a, 0x2b, 0xde, 0x66, 0xb8, 0x93, 0x3d, 0x38, 0x28, 0x75, 0x43,
+ 0x90, 0xa5, 0x0f, 0x1b,
+ 0x93, 0x47, 0xbc, 0x2d, 0x8f, 0xa2, 0x1e, 0xf6, 0x83, 0x2e, 0xb0, 0x63,
+ 0x8c, 0xcd, 0x9f, 0x88,
+ 0x16, 0xa0, 0xc6, 0xfb, 0x77, 0x8c, 0x4a, 0x68, 0x8d, 0x24, 0x3c, 0x03,
+ 0xa8, 0x75, 0xec, 0xfe,
+ 0xd4, 0xfd, 0x51, 0x08, 0x9e, 0x96, 0xc7, 0xa3, 0x36, 0x22, 0xf9, 0x23,
+ 0xb4, 0x1d, 0x7c, 0x6d,
+ 0x7d, 0x99, 0x64, 0xeb, 0x88, 0x63, 0x07, 0xed, 0xe1, 0x60, 0x0d, 0x45,
+ 0x03, 0x4f, 0x14, 0x24,
+ 0xbf, 0xc4, 0xf3, 0x18, 0x61, 0x79, 0x8a, 0x26, 0x5a, 0x66, 0xc8, 0x65,
+ 0x1f, 0x27, 0x84, 0xb7,
+ 0x3a, 0x23, 0x89, 0xce, 0x99, 0x57, 0xde, 0xb8, 0x54, 0x6c, 0x44, 0x05,
+ 0x3b, 0x9f, 0xf7, 0xc1,
+ 0xf8, 0x7e, 0x1e, 0x3d, 0x70, 0x4d, 0x53, 0x73, 0xef, 0x6a, 0x81, 0x25,
+ 0x27, 0xf7, 0x67, 0x52,
+ 0xf3, 0x2e, 0x7d, 0xa1, 0xaa, 0x0b, 0x76, 0x47, 0x48, 0x78, 0x9f, 0xc5,
+ 0x73, 0x2c, 0x11, 0x2d,
+ 0x31, 0x73, 0xea, 0x52, 0x43, 0x11, 0xfb, 0x8c, 0xf3, 0x7e, 0x5a, 0xe5,
+ 0x6f, 0x44, 0x81, 0xbe,
+ 0xb4, 0x94, 0x90, 0x84, 0xbb, 0x3f, 0xaf, 0x12, 0xfd, 0x74, 0xd6, 0x85,
+ 0x4b, 0xfc, 0xf2, 0xc8,
+ 0x76, 0xc9, 0x07, 0x77, 0x52, 0x25, 0x22, 0xd9, 0x46, 0x72, 0x13, 0xa5,
+ 0x57, 0x94, 0x62, 0x5b,
+ 0xa2, 0x34, 0x56, 0x7f, 0xcc, 0xb3, 0xe5, 0x7a, 0x70, 0x50, 0xea, 0x86,
+ 0xe3, 0x89, 0x1e, 0x36,
+ 0x60, 0x69, 0xc1, 0x8c, 0x25, 0xa9, 0x68, 0xb1, 0xcb, 0x56, 0x2f, 0xa6,
+ 0xff, 0xe1, 0x8e, 0xa5,
+ 0xe5, 0x8e, 0xbb, 0x5a, 0xdd, 0x87, 0x3c, 0x2f, 0xc5, 0x5c, 0xa3, 0xc6,
+ 0xdb, 0x59, 0xfd, 0xd3,
+ 0x27, 0xd3, 0x2c, 0xa9, 0x34, 0x9d, 0xb1, 0xe4, 0x7e, 0x5a, 0x66, 0xe6,
+ 0xc7, 0x31, 0x6d, 0x40,
+ 0x2c, 0x83, 0x4f, 0x35, 0xee, 0xdb, 0x94, 0xd0, 0xd9, 0x48, 0x78, 0x06,
+ 0x93, 0xea, 0x1b, 0x3f,
+ 0xee, 0xde, 0xd8, 0xc6, 0x07, 0xc1, 0x19, 0x1b, 0x62, 0x4e, 0xbd, 0x26,
+ 0x8f, 0x82, 0x8b, 0xac,
+ 0x6b, 0x39, 0xa2, 0x10, 0xff, 0xef, 0x4d, 0x85, 0x6c, 0x44, 0x31, 0x46,
+ 0xab, 0x3a, 0xf8, 0xda,
+ 0xa9, 0x64, 0x35, 0xe3, 0x16, 0xf5, 0xc0, 0x4e, 0xd7, 0x42, 0xf4, 0x66,
+ 0xb7, 0x52, 0x68, 0x49,
+ 0xfa, 0xf1, 0xc8, 0x15, 0xd3, 0xc6, 0x0e, 0x19, 0x01, 0xc0, 0x1a, 0x8a,
+ 0x06, 0x9e, 0x28, 0x48,
+ 0x38, 0xac, 0x5f, 0xe6, 0x3a, 0xdc, 0x83, 0xd2, 0xba, 0xc6, 0xdf, 0xaa,
+ 0x1a, 0xf6, 0xb8, 0xdb,
+ 0xbd, 0x4b, 0x25, 0x30, 0xc2, 0xf2, 0xd7, 0x4c, 0xb4, 0xcc, 0x53, 0xca,
+ 0x3e, 0x4e, 0xcb, 0xad,
+ 0x7f, 0x16, 0xb2, 0xc3, 0x2b, 0xe8, 0x5a, 0x87, 0x0f, 0xca, 0x96, 0xea,
+ 0x22, 0x26, 0x5b, 0x3e,
+ 0x74, 0x46, 0xd1, 0x5f, 0xf1, 0xae, 0x7f, 0xb3, 0xa8, 0xd8, 0x88, 0x0a,
+ 0x76, 0xfd, 0x2d, 0x41,
+ 0xb6, 0x1b, 0x46, 0xac, 0x18, 0xb4, 0xf2, 0x78, 0x13, 0xde, 0x4d, 0x2a,
+ 0x6a, 0x95, 0xbd, 0xd2,
+ 0x33, 0xfc, 0x3c, 0x7a, 0xe0, 0x9a, 0xa6, 0xe6, 0x1d, 0xd4, 0xc1, 0x4a,
+ 0x4e, 0x2d, 0xce, 0xa4,
+ 0xf1, 0xa1, 0xab, 0x89, 0x09, 0x80, 0x2b, 0x2d, 0xa6, 0xd2, 0x04, 0x6a,
+ 0x52, 0x45, 0x5e, 0x37,
+ 0x25, 0x5c, 0xfa, 0x81, 0x97, 0x16, 0xec, 0x8e, 0x90, 0xf0, 0xfd, 0x49,
+ 0xe6, 0x58, 0x22, 0x5a,
+ 0xe7, 0x01, 0x6d, 0x72, 0x7e, 0x0c, 0x61, 0x45, 0x2b, 0xf6, 0x38, 0x69,
+ 0xfa, 0x30, 0xb2, 0xc9,
+ 0x62, 0xe6, 0x17, 0xa4, 0x86, 0x22, 0x35, 0xdb, 0x25, 0xfc, 0xb4, 0x09,
+ 0xde, 0x88, 0xc1, 0xbf,
+ 0xa0, 0xbb, 0x80, 0x57, 0x6f, 0x38, 0xb8, 0x10, 0x9e, 0xfa, 0x71, 0x29,
+ 0xc2, 0xe0, 0x51, 0x2c,
+ 0xab, 0xeb, 0xe3, 0xcb, 0xb5, 0x7e, 0x9d, 0x24, 0x39, 0xe8, 0x6f, 0xc9,
+ 0x96, 0x3b, 0x27, 0x53,
+ 0x69, 0xb6, 0x74, 0x38, 0x5c, 0x64, 0x10, 0xef, 0x82, 0xee, 0xaa, 0xe9,
+ 0x8a, 0x53, 0xb7, 0xc0,
+ 0xec, 0x51, 0x0e, 0xee, 0xa4, 0x4a, 0x44, 0x71, 0x8c, 0xe4, 0x26, 0x89,
+ 0xae, 0xeb, 0xc4, 0xb6,
+ 0x2e, 0x0c, 0x99, 0x1d, 0x4d, 0x50, 0xc9, 0xba, 0x37, 0xe2, 0xe3, 0xa9,
+ 0xb2, 0x83, 0x54, 0x25,
+ 0x87, 0x68, 0xac, 0xfe, 0x5b, 0xa5, 0x09, 0xf4, 0xe0, 0xa0, 0x17, 0xcf,
+ 0x05, 0xd1, 0x3c, 0x6c,
+ 0x45, 0x35, 0x3b, 0x0d, 0xb2, 0xbf, 0x84, 0x3f, 0x5b, 0xa6, 0xd2, 0xef,
+ 0x19, 0xb9, 0xac, 0xff,
+ 0xc0, 0xd2, 0x41, 0xdb, 0x4a, 0x91, 0xd0, 0xa1, 0x55, 0xac, 0x5e, 0x8f,
+ 0x3d, 0x01, 0xdf, 0x89,
+ 0x02, 0x8f, 0xd6, 0x28, 0xa3, 0x8b, 0x5d, 0x6a, 0xee, 0xaa, 0x9b, 0xaf,
+ 0x21, 0x69, 0x4f, 0x1a,
+ 0x09, 0xdf, 0xb5, 0xb4, 0x79, 0xcd, 0x78, 0x5e, 0x49, 0xb8, 0x85, 0x4f,
+ 0x75, 0xb2, 0x39, 0x65,
+ 0xcb, 0x82, 0x22, 0x47, 0x90, 0xd7, 0xf5, 0x95, 0xf2, 0xbe, 0x40, 0x6f,
+ 0x69, 0xda, 0xa9, 0xf6,
+ 0x4e, 0x65, 0x58, 0x91, 0x68, 0xf9, 0xa1, 0x0b, 0xfc, 0xb4, 0xcc, 0x0f,
+ 0x4d, 0x62, 0xda, 0x80,
+ 0x8c, 0x38, 0xcf, 0x62, 0x81, 0xe3, 0x2c, 0xc0, 0x47, 0xb2, 0x09, 0x2f,
+ 0x51, 0x0a, 0x4a, 0x13,
+ 0x58, 0xc5, 0x9e, 0x6a, 0x1f, 0x75, 0xeb, 0x63, 0x71, 0x90, 0xf0, 0x0c,
+ 0xe5, 0x17, 0x36, 0x7e,
+ 0x9a, 0x98, 0x09, 0x99, 0xf6, 0x6f, 0x66, 0xa8, 0xca, 0x96, 0x35, 0x2c,
+ 0xf9, 0x7f, 0xa6, 0xed,
+ 0x1f, 0x7f, 0x73, 0x4f, 0x0e, 0x41, 0x32, 0x36, 0xc4, 0x9c, 0xb9, 0x4c,
+ 0xdd, 0xc7, 0xd5, 0x9b,
+ 0xdd, 0x22, 0xe4, 0xbc, 0xe7, 0x5b, 0xbf, 0xfd, 0x7f, 0x9a, 0x7c, 0x6c,
+ 0xc1, 0xaf, 0x45, 0x08,
+ 0xd6, 0x72, 0x87, 0x20, 0x3d, 0x1d, 0x9a, 0xc9, 0xd8, 0x88, 0x62, 0x8c,
+ 0x95, 0x74, 0x33, 0x77,
+ 0x14, 0x2f, 0x10, 0xd3, 0xd4, 0x07, 0x17, 0x02, 0x63, 0x8e, 0xa7, 0xac,
+ 0x89, 0x1c, 0xa3, 0xe4,
+ 0x91, 0xc8, 0x6a, 0x05, 0x2c, 0x29, 0x43, 0x9c, 0x6d, 0x84, 0x2b, 0xcc,
+ 0xad, 0xa4, 0xd0, 0x92,
+ 0x53, 0x95, 0xfd, 0xf6, 0xc5, 0x33, 0xce, 0x57, 0xd6, 0x82, 0xee, 0xec,
+ 0xb1, 0xcc, 0x40, 0x01,
+ 0x37, 0x21, 0x53, 0x2a, 0x65, 0x4f, 0x1c, 0x32, 0x02, 0x43, 0x34, 0xd7,
+ 0x0c, 0xff, 0x50, 0x90,
+ 0xf5, 0x7c, 0xc4, 0xd9, 0x8c, 0x55, 0x91, 0xf9, 0xb9, 0x45, 0xf1, 0xf7,
+ 0x10, 0x97, 0xc0, 0x03,
+ 0x70, 0x9b, 0xbe, 0x0f, 0x74, 0x7b, 0xc5, 0x67, 0xb7, 0x4f, 0x7d, 0x97,
+ 0x34, 0x2f, 0xb3, 0x75,
+ 0xb2, 0xc6, 0x29, 0xfc, 0x9d, 0x61, 0x48, 0xac, 0x0c, 0x49, 0xb8, 0xb7,
+ 0x28, 0x47, 0x23, 0xe6,
+ 0xb9, 0x96, 0x4a, 0x60, 0x47, 0x27, 0x6d, 0x98, 0xab, 0x5b, 0xa6, 0x57,
+ 0x7c, 0x9c, 0x55, 0x99,
+ 0x7b, 0xcb, 0xdd, 0x93, 0xae, 0x3d, 0xe0, 0x53, 0x10, 0x5d, 0x63, 0x77,
+ 0x60, 0xf4, 0xc5, 0x0a,
+ 0xfe, 0x2c, 0xa7, 0x45, 0x56, 0x13, 0xb4, 0xcd, 0x1e, 0x57, 0xef, 0x17,
+ 0x44, 0x4c, 0xb6, 0x7c,
+ 0x3c, 0x71, 0x30, 0xb6, 0xbf, 0x09, 0x39, 0x06, 0xa5, 0x51, 0x2a, 0x37,
+ 0x58, 0x24, 0x26, 0xef,
+ 0xe8, 0x8c, 0x61, 0xbe, 0x21, 0x9f, 0xfe, 0xa5, 0x93, 0x73, 0xd3, 0x14,
+ 0xec, 0x39, 0x5a, 0x82,
+ 0x2a, 0xd1, 0xf6, 0x4d, 0xc8, 0x85, 0x73, 0x6e, 0x28, 0x75, 0x16, 0x34,
+ 0xf0, 0x51, 0xca, 0x11,
+ 0xaf, 0x36, 0x8c, 0x9b, 0x30, 0xab, 0x27, 0xf0, 0x26, 0x7f, 0x9a, 0x54,
+ 0xd4, 0xe9, 0xb9, 0x67,
+ 0x6d, 0x6b, 0x1b, 0x68, 0xd9, 0xb1, 0xaa, 0x3b, 0x9d, 0x79, 0x5f, 0x74,
+ 0xc8, 0x81, 0x29, 0xf4,
+ 0x66, 0x3b, 0x78, 0xf4, 0x03, 0xf7, 0x8f, 0x0f, 0x3a, 0x6b, 0x41, 0x94,
+ 0x9c, 0x5a, 0x5f, 0x8b,
+ 0xa4, 0x66, 0xef, 0x07, 0xea, 0xed, 0x02, 0xc4, 0x81, 0x6d, 0x84, 0xb4,
+ 0x80, 0x32, 0xcf, 0x18,
+ 0x21, 0x81, 0x95, 0xd1, 0x12, 0xc3, 0x56, 0x5a, 0x8f, 0x67, 0x08, 0xd4,
+ 0xa4, 0x8a, 0xbc, 0x6e,
+ 0xe3, 0xdc, 0x02, 0x22, 0xfb, 0xd9, 0xdb, 0x91, 0x34, 0x61, 0xcd, 0xf4,
+ 0xb8, 0xe2, 0x2c, 0xfd,
+ 0x4a, 0xb8, 0x37, 0xc1, 0xed, 0x2c, 0x1b, 0xdf, 0xe3, 0x23, 0x39, 0x92,
+ 0x0f, 0xb0, 0x44, 0xb4,
+ 0x88, 0xe5, 0xa0, 0x32, 0x04, 0x36, 0x96, 0x14, 0x58, 0x25, 0xfc, 0xb2,
+ 0x13, 0xd8, 0xd4, 0x27,
+ 0x0d, 0x02, 0xda, 0xe4, 0xfc, 0x18, 0xc2, 0x8a, 0x56, 0x2f, 0x70, 0xd2,
+ 0x37, 0x60, 0xa7, 0x51,
+ 0xcf, 0x5f, 0x4d, 0x17, 0x15, 0x02, 0x4f, 0x41, 0xed, 0x29, 0xb5, 0xf2,
+ 0x2b, 0x08, 0x37, 0xc2,
+ 0xc4, 0x0f, 0x2e, 0x8b, 0xcf, 0x44, 0x6a, 0x75, 0x4a, 0x3b, 0xab, 0x12,
+ 0x7f, 0xd3, 0x41, 0xbd,
+ 0x06, 0x52, 0xb9, 0x78, 0x26, 0x5e, 0xe7, 0xbe, 0xf1, 0x3d, 0x6e, 0x32,
+ 0x63, 0xbb, 0xd1, 0x2e,
+ 0x83, 0xb5, 0xc3, 0xae, 0xde, 0x70, 0xb3, 0x20, 0xff, 0x37, 0xe2, 0x52,
+ 0x47, 0x03, 0xa2, 0x58,
+ 0x41, 0xe8, 0x54, 0x5d, 0x37, 0x6a, 0x3e, 0xeb, 0x44, 0x31, 0x27, 0x72,
+ 0x5b, 0x6b, 0x32, 0xcb,
+ 0x95, 0x15, 0x05, 0x55, 0xa9, 0xfc, 0xf9, 0x48, 0x72, 0x13, 0xde, 0x51,
+ 0xef, 0x76, 0x4e, 0xa6,
+ 0x57, 0x48, 0x92, 0xa6, 0x40, 0xe6, 0x74, 0x83, 0xc9, 0x15, 0x1b, 0x71,
+ 0xf3, 0x1e, 0xde, 0x35,
+ 0xd2, 0xaf, 0xe8, 0x70, 0xb8, 0xc8, 0x20, 0x1d, 0xc7, 0x1f, 0x97, 0x11,
+ 0xd7, 0xa6, 0xad, 0x43,
+ 0x10, 0xf2, 0x7f, 0x83, 0x51, 0xd2, 0xad, 0xd6, 0x7c, 0x19, 0x52, 0x31,
+ 0xcb, 0xce, 0x3d, 0xd0,
+ 0x1b, 0xa2, 0x1c, 0x1f, 0x8b, 0x94, 0x88, 0xe2, 0xdb, 0x0b, 0x4c, 0xd1,
+ 0x9f, 0x15, 0x4b, 0xaf,
+ 0xd9, 0xff, 0x8b, 0xec, 0x62, 0x8e, 0x05, 0x29, 0x60, 0x0d, 0x89, 0xf1,
+ 0x83, 0x7d, 0xdb, 0x3c,
+ 0x5c, 0x18, 0xf1, 0x3a, 0x9a, 0xa0, 0x51, 0xb7, 0x6e, 0x07, 0x05, 0x91,
+ 0xa7, 0xc5, 0xa8, 0x4a,
+ 0x9e, 0x45, 0x66, 0xc9, 0x73, 0xba, 0xdc, 0x7c, 0xd5, 0x01, 0xc0, 0xb1,
+ 0xbb, 0xad, 0x38, 0xd9,
+ 0xcd, 0xd0, 0x9b, 0x3f, 0xb6, 0x89, 0x12, 0x2b, 0x03, 0x83, 0x2e, 0x5d,
+ 0x0a, 0x61, 0x78, 0xd8,
+ 0x0f, 0x8d, 0x0c, 0xcc, 0x5f, 0x93, 0x9f, 0xe0, 0xb8, 0x85, 0xeb, 0x7d,
+ 0x16, 0x09, 0xe8, 0x4b,
+ 0x8a, 0x6a, 0x76, 0x1a, 0xa7, 0xbd, 0xcb, 0x7e, 0xb6, 0x8f, 0x67, 0x1d,
+ 0x32, 0xb1, 0x9b, 0x3d,
+ 0x48, 0x37, 0xe1, 0xe9, 0x4e, 0xa7, 0x46, 0xb5, 0x0d, 0x89, 0xa2, 0x3d,
+ 0x2e, 0xd9, 0x0b, 0xae,
+ 0x43, 0x67, 0x82, 0x75, 0x94, 0xe1, 0x63, 0x81, 0xaa, 0x9b, 0xbc, 0xdd,
+ 0x7a, 0x02, 0x7d, 0xd1,
+ 0x81, 0x3a, 0x15, 0x86, 0x7d, 0xfb, 0xee, 0x4a, 0x11, 0x9d, 0x79, 0xfd,
+ 0x66, 0x6a, 0xed, 0x42,
+ 0x04, 0xdd, 0x6f, 0x50, 0x85, 0xd5, 0xba, 0xd4, 0x1f, 0x97, 0xf5, 0x9d,
+ 0x42, 0xd2, 0x9e, 0x34,
+ 0xc6, 0x80, 0xf8, 0xa3, 0x6c, 0xcf, 0x37, 0x1f, 0xa4, 0x91, 0x30, 0xbd,
+ 0x5e, 0xba, 0x0e, 0xa7,
+ 0x12, 0x7d, 0xa9, 0xab, 0xf2, 0x59, 0xf0, 0xbc, 0x92, 0xb3, 0xc9, 0x9e,
+ 0xea, 0xa7, 0x72, 0xca,
+ 0xd0, 0x20, 0x3e, 0x58, 0x1b, 0x43, 0x7d, 0x77, 0x29, 0xb5, 0x0c, 0xbe,
+ 0xf6, 0xcf, 0xe2, 0x59,
+ 0x55, 0xc7, 0x44, 0x8e, 0xe3, 0x6d, 0x29, 0xe9, 0x27, 0xbf, 0x80, 0xde,
+ 0xd2, 0x77, 0x91, 0x2f,
+ 0x97, 0x9a, 0xd3, 0x7d, 0x0a, 0x77, 0xa4, 0x22, 0x9c, 0xb9, 0x45, 0xfe,
+ 0xce, 0x1f, 0x01, 0xbc,
+ 0x9c, 0xca, 0xb0, 0xe1, 0xd0, 0x31, 0x81, 0x16, 0x3b, 0xab, 0x5b, 0x1e,
+ 0x9a, 0xc4, 0x77, 0xc3,
+ 0x5e, 0x97, 0x27, 0x12, 0x39, 0x2b, 0x0c, 0xdd, 0x80, 0xad, 0x9e, 0x3e,
+ 0x86, 0xac, 0xe7, 0x50,
+ 0xdb, 0x70, 0x5d, 0xc4, 0xc1, 0x05, 0x58, 0x43, 0x8e, 0xa7, 0x12, 0x5e,
+ 0xa2, 0x14, 0x94, 0x26,
+ 0x19, 0x2d, 0xca, 0x37, 0x28, 0x1f, 0xd5, 0x88, 0x35, 0xa1, 0xd7, 0x7e,
+ 0xbe, 0x7c, 0x04, 0xb5,
+ 0xb0, 0x49, 0xff, 0xd4, 0x3e, 0xea, 0x15, 0xc6, 0xe2, 0xe3, 0x23, 0x18,
+ 0x09, 0x2e, 0x6c, 0xfc,
+ 0x72, 0x14, 0x68, 0x27, 0xd7, 0xf0, 0x98, 0x0d, 0x59, 0xe5, 0xe6, 0x38,
+ 0x15, 0x46, 0xfc, 0x6f,
+ 0xf7, 0xf3, 0x12, 0xf1, 0x2f, 0xde, 0xcc, 0x93, 0x57, 0xef, 0x6a, 0x58,
+ 0x31, 0xfe, 0x8f, 0x19,
+ 0x35, 0xae, 0x85, 0x02, 0xc6, 0xc4, 0x41, 0x58, 0xec, 0xe9, 0xaf, 0x78,
+ 0x2d, 0x96, 0x1f, 0x8a,
+ 0x3e, 0xfe, 0xe6, 0x9e, 0x1c, 0x82, 0x64, 0x6c, 0x4b, 0xfb, 0xb1, 0x98,
+ 0x79, 0x4d, 0x69, 0xf5,
+ 0xfc, 0xa3, 0x71, 0x6d, 0xf5, 0x98, 0xe9, 0xa7, 0xf0, 0xfd, 0x74, 0xb8,
+ 0x65, 0x25, 0xf9, 0x66,
+ 0x79, 0x44, 0x0b, 0xbb, 0x0d, 0xb6, 0xbd, 0x39, 0xfe, 0xf7, 0xf8, 0xd8,
+ 0x41, 0x9d, 0x8a, 0x10,
+ 0xbb, 0x19, 0x9c, 0x48, 0xe4, 0xac, 0x30, 0xf2, 0x45, 0xf1, 0x3d, 0xf8,
+ 0x5d, 0xf5, 0x1a, 0x83,
+ 0x6f, 0xe4, 0xcd, 0x40, 0x7a, 0x3a, 0xf7, 0x51, 0x73, 0xd3, 0xc4, 0xdb,
+ 0xe9, 0xe8, 0x66, 0xee,
+ 0xad, 0xb9, 0x5a, 0xb3, 0x93, 0x20, 0x7a, 0x9a, 0xc8, 0xd5, 0x01, 0xfb,
+ 0xf5, 0x80, 0xf6, 0x7d,
+ 0x28, 0x5e, 0x20, 0x65, 0x6b, 0x0e, 0x2e, 0x04, 0xc6, 0xdf, 0x8d, 0x9b,
+ 0xd1, 0x38, 0x85, 0x0b,
+ 0xea, 0x03, 0xb7, 0x96, 0x82, 0x14, 0xa3, 0xcf, 0x7d, 0xd9, 0x48, 0xbb,
+ 0xcd, 0x50, 0x15, 0x98,
+ 0xe1, 0x53, 0xd4, 0x0a, 0x58, 0x52, 0x86, 0xfb, 0xda, 0xcb, 0x56, 0x5b,
+ 0x99, 0x8b, 0x63, 0xe7,
+ 0x23, 0x0e, 0x43, 0xf9, 0xb1, 0x48, 0x0b, 0x30, 0x61, 0xcd, 0x93, 0x7b,
+ 0x85, 0xe3, 0xf3, 0x74,
+ 0xa6, 0xe9, 0x39, 0x2f, 0x49, 0x66, 0x5f, 0xae, 0x6f, 0xc7, 0x1f, 0x1b,
+ 0xa1, 0x5b, 0x80, 0x02,
+ 0x64, 0xb4, 0xae, 0xdc, 0xa0, 0x7c, 0xd2, 0x65, 0xd4, 0xc1, 0xda, 0x3b,
+ 0xbd, 0x33, 0x10, 0x91,
+ 0x6e, 0x42, 0xa6, 0x54, 0xca, 0x9e, 0x38, 0x64, 0x04, 0x86, 0x68, 0x6d,
+ 0x18, 0x3d, 0xa0, 0xe3,
+ 0xac, 0x1f, 0x31, 0xa7, 0x23, 0x84, 0xb5, 0xaf, 0xbf, 0x80, 0xad, 0x4d,
+ 0x04, 0x55, 0x30, 0x70,
+ 0x29, 0xf8, 0x4b, 0x71, 0xdb, 0xaa, 0xe1, 0x31, 0xb1, 0x8a, 0x21, 0x2d,
+ 0x20, 0xed, 0x43, 0x06,
+ 0xeb, 0xa5, 0xdc, 0x82, 0x32, 0xb0, 0x6c, 0xfa, 0x0a, 0x8c, 0xe4, 0x0d,
+ 0x3c, 0x85, 0xd3, 0x95,
+ 0xe0, 0xf5, 0xbf, 0x1e, 0xe8, 0xf6, 0x49, 0xce, 0xad, 0x9e, 0xfa, 0xed,
+ 0x68, 0x5e, 0xa5, 0xea,
+ 0x22, 0xa8, 0x28, 0xed, 0x01, 0xec, 0xc4, 0x05, 0x16, 0x98, 0x3f, 0xcd,
+ 0x74, 0x36, 0x35, 0x79,
+ 0xa7, 0x4f, 0x52, 0x3b, 0xf9, 0xc2, 0x90, 0x9b, 0x18, 0x92, 0xb3, 0xad,
+ 0x50, 0x8e, 0x46, 0x0f,
+ 0x65, 0x12, 0xc5, 0xc8, 0x10, 0xd8, 0x1d, 0x50, 0xa3, 0x94, 0x76, 0x8d,
+ 0x4c, 0xe6, 0xd6, 0x9c,
+ 0xb1, 0xef, 0x94, 0xc0, 0x8e, 0x4e, 0xda, 0xf3, 0x95, 0xb6, 0x8f, 0xae,
+ 0xf8, 0xfb, 0xaa, 0xf1,
+ 0x73, 0xb2, 0x03, 0x33, 0x67, 0x54, 0x57, 0x38, 0x2e, 0xb0, 0x4a, 0x8e,
+ 0xe4, 0x93, 0x3a, 0x62,
+ 0xf6, 0x55, 0x79, 0xe5, 0x9f, 0x7a, 0x03, 0xa6, 0x20, 0xba, 0xc6, 0xee,
+ 0xc0, 0x2b, 0x49, 0x14,
+ 0x34, 0x08, 0xee, 0x16, 0x76, 0x60, 0x8e, 0x6d, 0x9b, 0xbc, 0x03, 0xce,
+ 0xdc, 0x43, 0xd9, 0x87,
+ 0x3f, 0x58, 0x8d, 0x8a, 0xac, 0x26, 0xab, 0x59, 0x3c, 0xae, 0x1d, 0x2e,
+ 0x88, 0x98, 0xaf, 0xf8,
+ 0xfd, 0x05, 0x1a, 0x79, 0x45, 0x3c, 0x26, 0x92, 0x87, 0xa8, 0xd8, 0x0e,
+ 0x94, 0xf0, 0x3f, 0x6b,
+ 0x78, 0xe2, 0x60, 0xaf, 0xbd, 0x12, 0x72, 0x0c, 0x89, 0xa2, 0x54, 0x6e,
+ 0xb0, 0x48, 0x4c, 0x1d,
+ 0xba, 0xbf, 0xf7, 0x5c, 0x54, 0x08, 0xff, 0xc7, 0x32, 0xa4, 0x91, 0x4e,
+ 0xac, 0x20, 0xdc, 0x8e,
+ 0x13, 0xdb, 0xc2, 0xbf, 0x42, 0xfd, 0x3f, 0x89, 0xe5, 0xe6, 0x65, 0x28,
+ 0x1b, 0x72, 0xb4, 0xc7,
+ 0xd1, 0x86, 0x55, 0x4c, 0xab, 0xe7, 0xb2, 0x42, 0x5e, 0xe0, 0xa0, 0x08,
+ 0x07, 0x1a, 0x24, 0x54,
+ 0x54, 0x61, 0x2f, 0x9a, 0x53, 0xc9, 0xe6, 0xdc, 0x50, 0xea, 0x2c, 0x68,
+ 0x23, 0xa2, 0x57, 0x22,
+ 0x96, 0x3c, 0xb8, 0x69, 0xba, 0xd3, 0x6b, 0x17, 0xeb, 0xec, 0xe9, 0x48,
+ 0x3f, 0xca, 0xc7, 0xb1,
+ 0x9d, 0x6c, 0xdb, 0xf5, 0x60, 0x95, 0x4e, 0x23, 0x4c, 0xfe, 0xf7, 0xa8,
+ 0x6b, 0x11, 0xb1, 0xce,
+ 0x5f, 0x31, 0x4c, 0x06, 0x89, 0x8f, 0xc3, 0xe8, 0xf7, 0xf8, 0x32, 0x88,
+ 0x77, 0x79, 0x21, 0x5d,
+ 0xda, 0xd6, 0x36, 0xd0, 0x71, 0xa1, 0x97, 0x76, 0xf9, 0xf2, 0xbe, 0xe8,
+ 0x53, 0xc1, 0x52, 0x2b,
+ 0x18, 0x8b, 0xa1, 0x23, 0x98, 0xbb, 0x1a, 0xbd, 0x42, 0xf4, 0x7b, 0xc8,
+ 0x4f, 0xa9, 0xc2, 0xb8,
+ 0xcc, 0x76, 0xf0, 0x2b, 0x06, 0x2d, 0xdd, 0x1e, 0x74, 0xd6, 0x82, 0xeb,
+ 0xfb, 0xb4, 0xbe, 0xd5,
+ 0x0e, 0x2b, 0x67, 0xd8, 0xef, 0x37, 0x50, 0xd5, 0xcf, 0xd0, 0x47, 0xcb,
+ 0xe7, 0xdc, 0x2e, 0x46,
+ 0x8b, 0xcc, 0x1d, 0x0e, 0x17, 0x19, 0x04, 0x4b, 0xc1, 0xda, 0xcb, 0xab,
+ 0xc3, 0x64, 0x5d, 0x30,
+ 0x49, 0x91, 0x8a, 0xfd, 0xfe, 0x03, 0x89, 0x80, 0x7a, 0xdc, 0x0e, 0x8b,
+ 0xdf, 0x0c, 0xcd, 0xa3,
+ 0x42, 0xc1, 0xe9, 0x61, 0x24, 0x45, 0xac, 0xb4, 0xdd, 0xce, 0x10, 0x6b,
+ 0x8b, 0xd7, 0xbb, 0xdc,
+ 0x80, 0x9c, 0x7e, 0x92, 0xcd, 0x5f, 0x21, 0x7f, 0x66, 0xc8, 0xd5, 0x4b,
+ 0x97, 0xbf, 0x2b, 0x4f,
+ 0x05, 0x7b, 0x04, 0x44, 0x35, 0x71, 0x75, 0xe1, 0x68, 0xc2, 0x59, 0x2b,
+ 0xb3, 0x07, 0x58, 0x39,
+ 0xc7, 0x26, 0x93, 0xb7, 0xdc, 0x6b, 0xf8, 0x2a, 0xd3, 0xc4, 0x9c, 0x0b,
+ 0xaf, 0x6f, 0xc8, 0xaa,
+ 0x94, 0xb3, 0x6e, 0x41, 0x19, 0x58, 0x36, 0x7d, 0x05, 0x46, 0x72, 0xe7,
+ 0x1e, 0xa3, 0x88, 0xab,
+ 0x56, 0xee, 0xf9, 0xb2, 0xf0, 0x42, 0xbb, 0xb6, 0xbe, 0x40, 0xb7, 0xc7,
+ 0x02, 0xcb, 0x18, 0x38,
+ 0xd3, 0x09, 0x83, 0x64, 0x08, 0x6c, 0xef, 0x28, 0xb0, 0x4a, 0x3b, 0xa7,
+ 0x26, 0x73, 0x6b, 0x4e,
+ 0x11, 0x54, 0x14, 0x97, 0xe1, 0x76, 0x62, 0xe3, 0x0b, 0x4c, 0xfe, 0x87,
+ 0x3a, 0x1b, 0xfb, 0xdd,
+ 0x1a, 0x04, 0x77, 0x0b, 0x3b, 0x30, 0x47, 0xd7, 0xac, 0x5e, 0xe0, 0x67,
+ 0x6e, 0xc0, 0x8d, 0xa2,
+ 0xd8, 0x59, 0xe0, 0xf8, 0xd2, 0x2a, 0xca, 0x1c, 0x17, 0x58, 0x25, 0x47,
+ 0x72, 0xa8, 0x1d, 0x31,
+ 0x5d, 0xbe, 0x9a, 0x2e, 0x2a, 0x04, 0x9e, 0x82, 0x19, 0x52, 0xa9, 0x27,
+ 0x56, 0x10, 0x6e, 0x47,
+ 0x9f, 0xe3, 0x0d, 0xdd, 0xc3, 0x1e, 0x13, 0x49, 0xa2, 0x54, 0x6c, 0x07,
+ 0x4a, 0x78, 0xfe, 0xd4,
+ 0x4b, 0x1e, 0x5c, 0xd5, 0x5d, 0x88, 0xd4, 0xea, 0x94, 0x76, 0x95, 0x24,
+ 0xfe, 0x65, 0x82, 0xb9,
+ 0x89, 0x43, 0xcb, 0x26, 0xb4, 0x92, 0x59, 0x21, 0x2f, 0x70, 0x50, 0x04,
+ 0xe2, 0x0d, 0x12, 0x2a,
+ 0x0c, 0xa4, 0xb1, 0xf0, 0x4c, 0xbc, 0x0d, 0xbf, 0x21, 0x7a, 0xdc, 0x64,
+ 0xc6, 0xb5, 0x61, 0x5c,
+ 0xce, 0xf9, 0x26, 0x03, 0xa5, 0xa6, 0x80, 0x74, 0x9a, 0x7c, 0x19, 0x44,
+ 0xda, 0xdd, 0xf1, 0xcf,
+ 0xc5, 0xa9, 0x45, 0x9f, 0x7f, 0xe0, 0xa5, 0x40, 0x3d, 0x6e, 0x07, 0xa4,
+ 0x8e, 0x06, 0x87, 0xb0,
+ 0x07, 0xf4, 0xd2, 0x6c, 0x96, 0xfa, 0x28, 0x8b, 0x86, 0x68, 0xc2, 0x84,
+ 0x92, 0x6e, 0x17, 0x23,
+ 0x82, 0x13, 0xa8, 0xba, 0x6e, 0xd4, 0x7c, 0x15, 0x88, 0x62, 0x4e, 0xe4,
+ 0xb6, 0xd6, 0x64, 0x55,
+ 0x40, 0x4e, 0x3f, 0x49, 0x87, 0xce, 0xf1, 0xde, 0x33, 0x64, 0x8b, 0xc4,
+ 0xaa, 0xbe, 0xf4, 0xc6,
+ 0xe9, 0x2a, 0x0a, 0xaa, 0x91, 0x3b, 0x31, 0x90, 0xe4, 0x26, 0x7f, 0xa2,
+ 0x1d, 0xec, 0x9c, 0x8f,
+ 0x2b, 0x77, 0x9d, 0x59, 0x78, 0x21, 0xbc, 0x5b, 0x5f, 0x20, 0xba, 0x82,
+ 0x01, 0x84, 0x0c, 0x1c,
+ 0xae, 0x90, 0xe7, 0x8f, 0x80, 0x0f, 0xe8, 0xc5, 0x51, 0x2a, 0x36, 0xe2,
+ 0x25, 0x3c, 0x7f, 0x6a,
+ 0x6c, 0xcd, 0x70, 0x7c, 0x69, 0x15, 0x65, 0x0e, 0xea, 0x2c, 0xf3, 0xc2,
+ 0x39, 0x54, 0xef, 0xf9,
+ 0x67, 0x9d, 0x13, 0xe0, 0xb3, 0x53, 0x40, 0x3a, 0x4d, 0x3e, 0xed, 0x22,
+ 0x6d, 0x8f, 0x99, 0x86,
+ 0xa5, 0xc0, 0x84, 0x13, 0x5a, 0x49, 0xcd, 0xf1, 0xf6, 0x38, 0x28, 0x02,
+ 0x71, 0xe7, 0x09, 0x15,
+ 0x20, 0x27, 0xfe, 0xc5, 0xa2, 0x67, 0x99, 0x6f, 0xf8, 0x32, 0xa4, 0x62,
+ 0x55, 0x5f, 0x7a, 0x63,
+ 0xe2, 0x7a, 0x69, 0x36, 0x4b, 0x7d, 0x14, 0xa4, 0x43, 0x34, 0x61, 0x42,
+ 0x49, 0x37, 0xea, 0xf0,
+ 0x36, 0x87, 0x38, 0x3e, 0xd5, 0xeb, 0xd3, 0x07, 0x75, 0x16, 0x98, 0x61,
+ 0xfd, 0x2a, 0x96, 0x9d,
+ 0xf4, 0xda, 0xaf, 0xcd, 0x3c, 0xf1, 0x5e, 0xcc, 0xce, 0x10, 0x5d, 0x41,
+ 0xe1, 0x42, 0x06, 0x0e,
+ 0x71, 0x3d, 0xd5, 0x1b, 0xc4, 0xdf, 0x0a, 0x52, 0xc0, 0x1a, 0xd1, 0x21,
+ 0xc5, 0xfa, 0x75, 0x78,
+ 0xb3, 0x60, 0x42, 0xe8, 0x2d, 0xc5, 0x87, 0x99, 0x7b, 0x1c, 0x14, 0x01,
+ 0xd9, 0x92, 0xe5, 0xeb,
+ 0xb8, 0x30, 0x21, 0x74, 0xf7, 0x83, 0xa2, 0xad, 0xdc, 0x0e, 0x0a, 0xe1,
+ 0x8d, 0x49, 0x93, 0x94,
+ 0x7a, 0x6d, 0xb6, 0x87, 0x1e, 0x99, 0x2f, 0x66, 0x67, 0x08, 0xcf, 0xc1,
+ 0x91, 0x21, 0x03, 0x07,
+ 0xff, 0x8a, 0xcc, 0x51, 0xe6, 0xb7, 0x7b, 0xf8, 0x69, 0x02, 0x43, 0xa1,
+ 0xb5, 0x99, 0x70, 0x71,
+ 0x3d, 0xd7, 0x5b, 0xa2, 0x0f, 0xad, 0xf6, 0x33, 0xd2, 0x04, 0x86, 0x81,
+ 0xa9, 0xf1, 0xe0, 0xe2,
+ 0x59, 0x63, 0xf5, 0x7e, 0xaf, 0xd1, 0x24, 0x56, 0x06, 0xc5, 0x5c, 0xba,
+ 0x14, 0xc2, 0xf0, 0x73,
+ 0x9b, 0x3e, 0x62, 0x8d, 0x46, 0xcb, 0xa9, 0x9d, 0xbd, 0xc3, 0x99, 0x9a,
+ 0x08, 0xaa, 0x60, 0xe0,
+ 0x1e, 0xd9, 0x18, 0x5b, 0xbe, 0xe5, 0xfd, 0x03, 0xb3, 0xc9, 0x15, 0xfa,
+ 0x2c, 0x12, 0x13, 0x96,
+ 0xdc, 0x84, 0x8f, 0xa8, 0x57, 0xff, 0x70, 0xc8, 0x08, 0xcf, 0xd0, 0xda,
+ 0x30, 0x7a, 0x83, 0x05,
+ 0xd7, 0xd4, 0xec, 0x34, 0x8d, 0xb9, 0x55, 0xfc, 0xaf, 0xdd, 0xce, 0x3a,
+ 0x64, 0xa1, 0xf5, 0x7a,
+ 0x15, 0x89, 0x7b, 0xc7, 0x64, 0xa3, 0xd8, 0x37, 0x14, 0xdb, 0x0b, 0x1a,
+ 0x78, 0xc9, 0x65, 0xe9,
+ 0x90, 0x6e, 0x01, 0x11, 0x9c, 0x8d, 0x8c, 0xa9, 0x1a, 0xd1, 0x87, 0x7a,
+ 0x5c, 0x71, 0x16, 0x9f,
+ 0x52, 0x33, 0x96, 0xe2, 0x75, 0x97, 0x01, 0x62, 0xa1, 0xd7, 0x42, 0x5a,
+ 0x40, 0x19, 0x86, 0x0c,
+ 0x86, 0xce, 0xc7, 0xea, 0xeb, 0x01, 0xc6, 0xc1, 0x97, 0xf5, 0xbb, 0x79,
+ 0xf4, 0x04, 0xfa, 0x61,
+ 0x44, 0x93, 0x50, 0x19, 0x02, 0x1b, 0x4b, 0x0a, 0x2c, 0xf3, 0x7e, 0x59,
+ 0xe8, 0x6c, 0x6a, 0xf2,
+ 0xc1, 0x74, 0x2a, 0xcf, 0xfa, 0x35, 0x1f, 0x94, 0x22, 0xf9, 0xf2, 0x39,
+ 0xcc, 0xd4, 0x19, 0x84,
+ 0x03, 0x29, 0xbd, 0x3c, 0x13, 0x2f, 0x92, 0x5f, 0x99, 0xff, 0x37, 0x19,
+ 0xd0, 0xbc, 0x89, 0x17,
+ 0x08, 0x79, 0xde, 0xa0, 0xc9, 0x69, 0xb7, 0x6b, 0x3e, 0xed, 0x29, 0xf9,
+ 0x84, 0x67, 0xff, 0x68,
+ 0xca, 0x24, 0x49, 0x53, 0x20, 0x73, 0x3a, 0xa0, 0x85, 0xeb, 0xec, 0xd9,
+ 0x98, 0x0f, 0x6f, 0xfb,
+ 0x4f, 0xc3, 0x33, 0x85, 0xd8, 0x5d, 0x6e, 0x3e, 0x8b, 0xe1, 0x60, 0xb9,
+ 0xbc, 0xb7, 0x1c, 0x8d,
+ 0x8d, 0x9e, 0xa4, 0x76, 0x31, 0x47, 0xe3, 0xf5, 0x30, 0xe7, 0xa5, 0x99,
+ 0xa0, 0xdf, 0x8c, 0x1e,
+ 0x24, 0xfa, 0x91, 0x95, 0x27, 0xb2, 0x23, 0xbb, 0xe7, 0xa5, 0x51, 0xff,
+ 0x17, 0x8d, 0xe4, 0x57,
+ 0xe6, 0xa7, 0x06, 0x66, 0xce, 0xa8, 0xae, 0x70, 0x5c, 0xa3, 0x94, 0xdf,
+ 0x0b, 0xe5, 0x74, 0xc4,
+ 0x63, 0x40, 0x7c, 0xb0, 0x36, 0x86, 0xfa, 0xee, 0x52, 0xa9, 0x18, 0xbf,
+ 0x2f, 0x5d, 0x07, 0xb2,
+ 0xa1, 0x1d, 0xeb, 0x43, 0xdf, 0x9c, 0x77, 0x25, 0xe9, 0xaf, 0xdd, 0x9f,
+ 0x33, 0x35, 0x97, 0x21,
+ 0xaa, 0x4d, 0x88, 0xdf, 0x05, 0xda, 0x52, 0x11, 0x4e, 0xbd, 0xc3, 0x7f,
+ 0x67, 0xee, 0xe1, 0x5e,
+ 0x68, 0x10, 0x1f, 0x2c, 0xec, 0xc0, 0xdf, 0xda, 0xf5, 0xbb, 0x06, 0x5f,
+ 0x7b, 0x86, 0x71, 0xcd,
+ 0xed, 0xf7, 0x65, 0xfa, 0x14, 0xee, 0x8b, 0x44, 0xfb, 0xb1, 0x8a, 0x3f,
+ 0x5f, 0x3e, 0x02, 0xbb,
+ 0x2f, 0xaa, 0xf2, 0x09, 0xfd, 0xf4, 0x06, 0x8f, 0x40, 0xb7, 0x4f, 0x1f,
+ 0x43, 0x56, 0x92, 0x28,
+ 0xfb, 0x57, 0xa3, 0x01, 0x63, 0x62, 0xc1, 0x2c, 0x76, 0x95, 0xb6, 0x3c,
+ 0xf7, 0x4b, 0xee, 0x45,
+ 0x39, 0x0a, 0x34, 0xf2, 0x8a, 0x78, 0x4c, 0xe7, 0xcd, 0x93, 0x73, 0x1c,
+ 0xeb, 0x23, 0x7e, 0xd6,
+ 0xbc, 0xed, 0x4e, 0x24, 0x72, 0x56, 0x18, 0x79, 0xc3, 0x99, 0xff, 0x7c,
+ 0xcf, 0x9b, 0x0d, 0xa0,
+ 0x7e, 0xb0, 0xd9, 0xd7, 0x9b, 0x4c, 0x95, 0xb2, 0x78, 0x9f, 0x3a, 0x5c,
+ 0xd3, 0xf3, 0x9d, 0x33,
+ 0x75, 0xe0, 0xba, 0x4b, 0x41, 0x0a, 0xb0, 0x86, 0xdf, 0x8d, 0x24, 0xbc,
+ 0x87, 0x28, 0xeb, 0x4c,
+ 0xb7, 0xbd, 0x2d, 0xb8, 0xa8, 0x10, 0x3d, 0x4d, 0x64, 0x8b, 0xe1, 0x9c,
+ 0x9b, 0x40, 0x7b, 0xdf,
+ 0x32, 0x5a, 0x57, 0x6e, 0x50, 0x3e, 0x69, 0xd3, 0x6a, 0x81, 0x6d, 0xfc,
+ 0xbf, 0xf8, 0x08, 0xa9,
+ 0xf0, 0x07, 0xc0, 0x9d, 0xb9, 0x24, 0xe4, 0x18, 0xd1, 0x87, 0xa8, 0xdc,
+ 0xa3, 0x90, 0x98, 0x3a,
+ 0xa3, 0x92, 0x3d, 0x6b, 0x7c, 0x17, 0x2a, 0x4f, 0x07, 0x05, 0x46, 0x30,
+ 0x12, 0x5c, 0xd8, 0x3b,
+ 0x61, 0xcf, 0xaa, 0x98, 0x95, 0x0d, 0xa7, 0x84, 0xbc, 0x03, 0x83, 0x10,
+ 0x0e, 0x34, 0x48, 0xa8,
+ 0xe4, 0x28, 0xd0, 0x4e, 0x6d, 0x23, 0xf3, 0x1a, 0xb2, 0x09, 0x0f, 0x70,
+ 0x2a, 0x8c, 0x3b, 0xde,
+ 0x26, 0x75, 0x47, 0xbd, 0x84, 0x39, 0x7e, 0xd1, 0x09, 0x0f, 0xca, 0x50,
+ 0x36, 0xe4, 0xab, 0x4d,
+ 0x2d, 0x25, 0x24, 0x21, 0x5e, 0x7f, 0x5b, 0xe5, 0xae, 0x1d, 0xd4, 0xb0,
+ 0x62, 0x3f, 0xdd, 0x32,
+ 0xef, 0x78, 0xb3, 0xd2, 0xb7, 0x65, 0xd6, 0x2e, 0x15, 0x1b, 0x11, 0x90,
+ 0x7e, 0x57, 0x4d, 0xa1,
+ 0x6a, 0x9f, 0xc9, 0x04, 0x4f, 0x4b, 0x82, 0xb0, 0x1b, 0x11, 0x9d, 0xf0,
+ 0x5a, 0xef, 0x3e, 0xd7,
+ 0xa8, 0xc2, 0x5e, 0xf7, 0xa6, 0x51, 0x0f, 0x7b, 0xa0, 0x17, 0x58, 0xd0,
+ 0x46, 0x87, 0xae, 0x44,
+ 0x7c, 0x3f, 0x0f, 0xff, 0x38, 0xc7, 0xc8, 0xd8, 0x96, 0x35, 0xa1, 0xf3,
+ 0xf2, 0x9a, 0xd2, 0x29,
+ 0xbe, 0x62, 0x98, 0x0c, 0xd1, 0xdd, 0x45, 0x13, 0x2d, 0x33, 0x64, 0xd3,
+ 0xee, 0xf2, 0x42, 0xba,
+ 0x3b, 0x85, 0xe2, 0xda, 0x29, 0xf3, 0x11, 0x8d, 0x23, 0x39, 0xe8, 0xb3,
+ 0xca, 0x4a, 0x31, 0xcc,
+ 0xf9, 0xd8, 0x75, 0x29, 0xc0, 0xe9, 0x9c, 0x46, 0x98, 0x3f, 0x2d, 0x93,
+ 0xd6, 0x22, 0xa1, 0x5f,
+ 0xf2, 0x88, 0x16, 0xb5, 0x1a, 0xaf, 0xb9, 0x72, 0x3f, 0x2d, 0x33, 0x73,
+ 0x82, 0xf9, 0xd7, 0x20,
+ 0x30, 0xd5, 0x81, 0x46, 0xf3, 0xb5, 0x34, 0xb9, 0x84, 0x2b, 0xf6, 0x53,
+ 0x9e, 0x91, 0x47, 0xb3,
+ 0xb5, 0x32, 0xfb, 0x90, 0x0b, 0x9b, 0x60, 0x27, 0x8a, 0x21, 0x7a, 0x33,
+ 0xba, 0x29, 0x34, 0xc5,
+ 0x77, 0x6f, 0x6c, 0x63, 0xe2, 0x81, 0xed, 0xec, 0x31, 0x27, 0xbf, 0x13,
+ 0xa6, 0x41, 0xa4, 0x56,
+ 0xde, 0x0b, 0x59, 0x80, 0xf4, 0x74, 0x2d, 0xa2, 0xe6, 0x65, 0x4b, 0x75,
+ 0x11, 0x13, 0xcc, 0x1f,
+ 0x1c, 0x56, 0xce, 0x73, 0x1d, 0x6e, 0xa0, 0x69, 0x5d, 0x63, 0x8e, 0x55,
+ 0x0d, 0x7b, 0x5c, 0x8c,
+ 0x99, 0xb1, 0xb4, 0xa5, 0xe5, 0x40, 0xf4, 0xf7, 0x53, 0x69, 0x02, 0x35,
+ 0x29, 0xc3, 0x2f, 0xfa,
+ 0x5b, 0xec, 0x23, 0x56, 0x0c, 0x5a, 0x79, 0x3c, 0xe8, 0x6f, 0xc7, 0x15,
+ 0x35, 0xab, 0xbf, 0x69,
+ 0x50, 0xbc, 0x40, 0xca, 0xd6, 0x1c, 0x5c, 0x08, 0x4f, 0x7d, 0xd9, 0xf5,
+ 0x61, 0x70, 0xc9, 0x16,
+ 0x92, 0xe1, 0xd7, 0x39, 0x3f, 0x06, 0xd1, 0xc3, 0xf4, 0x7b, 0x1c, 0xd5,
+ 0x7d, 0x18, 0x59, 0x85,
+ 0x17, 0x06, 0xad, 0xef, 0xc7, 0x28, 0x85, 0x5d, 0xfa, 0x71, 0x90, 0xb5,
+ 0x59, 0xa0, 0x2a, 0xf3,
+ 0xd5, 0x5b, 0x3a, 0x1c, 0x2e, 0x32, 0x08, 0x96, 0x41, 0x77, 0x55, 0x95,
+ 0x45, 0xc8, 0xba, 0x60,
+ 0x01, 0xa6, 0x6b, 0x14, 0xb0, 0xa4, 0xcf, 0x35, 0x77, 0x55, 0xac, 0xb6,
+ 0xf1, 0xd5, 0xc6, 0x0d,
+ 0xc3, 0xfb, 0xfc, 0xe7, 0x59, 0xbe, 0x42, 0xfe, 0xcc, 0x53, 0x69, 0x96,
+ 0xed, 0xbd, 0x56, 0x9e,
+ 0x46, 0x1c, 0x86, 0x31, 0xa1, 0x90, 0x16, 0x60, 0xc2, 0x59, 0xe5, 0xf6,
+ 0xc9, 0x05, 0x25, 0xe8,
+ 0x84, 0x41, 0x11, 0xc2, 0x48, 0x8a, 0x9b, 0xab, 0x79, 0x5f, 0x20, 0xd6,
+ 0xd5, 0x6d, 0xb5, 0x7b,
+ 0x8f, 0x11, 0x72, 0x5e, 0x92, 0xcc, 0xbe, 0x9f, 0xde, 0x4d, 0x3e, 0x36,
+ 0x81, 0xb6, 0xc3, 0x04,
+ 0x4d, 0x4c, 0xe5, 0xad, 0x7b, 0xd6, 0x33, 0x54, 0x65, 0x4b, 0xfb, 0x16,
+ 0x9d, 0xde, 0x53, 0x97,
+ 0xc8, 0xab, 0x9f, 0x7b, 0x83, 0xf8, 0x67, 0xca, 0x6b, 0x41, 0x77, 0x76,
+ 0xb9, 0x66, 0x20, 0xe1,
+ 0x0a, 0xf6, 0x08, 0x88, 0x6a, 0xe2, 0xea, 0x01, 0xd0, 0x47, 0xb2, 0x56,
+ 0xa5, 0x0e, 0xb0, 0x72,
+ },
+ { /* 12 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x10, 0x96, 0xca, 0xd9, 0x30, 0x68, 0x2f, 0x14, 0x1a, 0x17, 0x0c, 0xca,
+ 0x0c, 0x70, 0xda, 0xbf,
+ 0x20, 0xef, 0x57, 0x71, 0x60, 0xd0, 0x5e, 0x28, 0x34, 0x2e, 0x18, 0x57,
+ 0x18, 0xe0, 0x77, 0xbd,
+ 0x30, 0x79, 0x9d, 0xa8, 0x50, 0xb8, 0x71, 0x3c, 0x2e, 0x39, 0x14, 0x9d,
+ 0x14, 0x90, 0xad, 0x02,
+ 0x40, 0x1d, 0xae, 0xe2, 0xc0, 0x63, 0xbc, 0x50, 0x68, 0x5c, 0x30, 0xae,
+ 0x30, 0x03, 0xee, 0xb9,
+ 0x50, 0x8b, 0x64, 0x3b, 0xf0, 0x0b, 0x93, 0x44, 0x72, 0x4b, 0x3c, 0x64,
+ 0x3c, 0x73, 0x34, 0x06,
+ 0x60, 0xf2, 0xf9, 0x93, 0xa0, 0xb3, 0xe2, 0x78, 0x5c, 0x72, 0x28, 0xf9,
+ 0x28, 0xe3, 0x99, 0x04,
+ 0x70, 0x64, 0x33, 0x4a, 0x90, 0xdb, 0xcd, 0x6c, 0x46, 0x65, 0x24, 0x33,
+ 0x24, 0x93, 0x43, 0xbb,
+ 0x80, 0x3a, 0x9f, 0x07, 0x43, 0xc6, 0xbb, 0xa0, 0xd0, 0xb8, 0x60, 0x9f,
+ 0x60, 0x06, 0x1f, 0xb1,
+ 0x90, 0xac, 0x55, 0xde, 0x73, 0xae, 0x94, 0xb4, 0xca, 0xaf, 0x6c, 0x55,
+ 0x6c, 0x76, 0xc5, 0x0e,
+ 0xa0, 0xd5, 0xc8, 0x76, 0x23, 0x16, 0xe5, 0x88, 0xe4, 0x96, 0x78, 0xc8,
+ 0x78, 0xe6, 0x68, 0x0c,
+ 0xb0, 0x43, 0x02, 0xaf, 0x13, 0x7e, 0xca, 0x9c, 0xfe, 0x81, 0x74, 0x02,
+ 0x74, 0x96, 0xb2, 0xb3,
+ 0xc0, 0x27, 0x31, 0xe5, 0x83, 0xa5, 0x07, 0xf0, 0xb8, 0xe4, 0x50, 0x31,
+ 0x50, 0x05, 0xf1, 0x08,
+ 0xd0, 0xb1, 0xfb, 0x3c, 0xb3, 0xcd, 0x28, 0xe4, 0xa2, 0xf3, 0x5c, 0xfb,
+ 0x5c, 0x75, 0x2b, 0xb7,
+ 0xe0, 0xc8, 0x66, 0x94, 0xe3, 0x75, 0x59, 0xd8, 0x8c, 0xca, 0x48, 0x66,
+ 0x48, 0xe5, 0x86, 0xb5,
+ 0xf0, 0x5e, 0xac, 0x4d, 0xd3, 0x1d, 0x76, 0xcc, 0x96, 0xdd, 0x44, 0xac,
+ 0x44, 0x95, 0x5c, 0x0a,
+ 0xc3, 0x74, 0xfd, 0x0e, 0x86, 0x4f, 0xb5, 0x83, 0x63, 0xb3, 0xc0, 0xfd,
+ 0xc0, 0x0c, 0x3e, 0xa1,
+ 0xd3, 0xe2, 0x37, 0xd7, 0xb6, 0x27, 0x9a, 0x97, 0x79, 0xa4, 0xcc, 0x37,
+ 0xcc, 0x7c, 0xe4, 0x1e,
+ 0xe3, 0x9b, 0xaa, 0x7f, 0xe6, 0x9f, 0xeb, 0xab, 0x57, 0x9d, 0xd8, 0xaa,
+ 0xd8, 0xec, 0x49, 0x1c,
+ 0xf3, 0x0d, 0x60, 0xa6, 0xd6, 0xf7, 0xc4, 0xbf, 0x4d, 0x8a, 0xd4, 0x60,
+ 0xd4, 0x9c, 0x93, 0xa3,
+ 0x83, 0x69, 0x53, 0xec, 0x46, 0x2c, 0x09, 0xd3, 0x0b, 0xef, 0xf0, 0x53,
+ 0xf0, 0x0f, 0xd0, 0x18,
+ 0x93, 0xff, 0x99, 0x35, 0x76, 0x44, 0x26, 0xc7, 0x11, 0xf8, 0xfc, 0x99,
+ 0xfc, 0x7f, 0x0a, 0xa7,
+ 0xa3, 0x86, 0x04, 0x9d, 0x26, 0xfc, 0x57, 0xfb, 0x3f, 0xc1, 0xe8, 0x04,
+ 0xe8, 0xef, 0xa7, 0xa5,
+ 0xb3, 0x10, 0xce, 0x44, 0x16, 0x94, 0x78, 0xef, 0x25, 0xd6, 0xe4, 0xce,
+ 0xe4, 0x9f, 0x7d, 0x1a,
+ 0x43, 0x4e, 0x62, 0x09, 0xc5, 0x89, 0x0e, 0x23, 0xb3, 0x0b, 0xa0, 0x62,
+ 0xa0, 0x0a, 0x21, 0x10,
+ 0x53, 0xd8, 0xa8, 0xd0, 0xf5, 0xe1, 0x21, 0x37, 0xa9, 0x1c, 0xac, 0xa8,
+ 0xac, 0x7a, 0xfb, 0xaf,
+ 0x63, 0xa1, 0x35, 0x78, 0xa5, 0x59, 0x50, 0x0b, 0x87, 0x25, 0xb8, 0x35,
+ 0xb8, 0xea, 0x56, 0xad,
+ 0x73, 0x37, 0xff, 0xa1, 0x95, 0x31, 0x7f, 0x1f, 0x9d, 0x32, 0xb4, 0xff,
+ 0xb4, 0x9a, 0x8c, 0x12,
+ 0x03, 0x53, 0xcc, 0xeb, 0x05, 0xea, 0xb2, 0x73, 0xdb, 0x57, 0x90, 0xcc,
+ 0x90, 0x09, 0xcf, 0xa9,
+ 0x13, 0xc5, 0x06, 0x32, 0x35, 0x82, 0x9d, 0x67, 0xc1, 0x40, 0x9c, 0x06,
+ 0x9c, 0x79, 0x15, 0x16,
+ 0x23, 0xbc, 0x9b, 0x9a, 0x65, 0x3a, 0xec, 0x5b, 0xef, 0x79, 0x88, 0x9b,
+ 0x88, 0xe9, 0xb8, 0x14,
+ 0x33, 0x2a, 0x51, 0x43, 0x55, 0x52, 0xc3, 0x4f, 0xf5, 0x6e, 0x84, 0x51,
+ 0x84, 0x99, 0x62, 0xab,
+ 0x45, 0xe8, 0x39, 0x1c, 0xcf, 0x9e, 0xa9, 0xc5, 0xc6, 0xa5, 0x43, 0x39,
+ 0x43, 0x18, 0x7c, 0x81,
+ 0x55, 0x7e, 0xf3, 0xc5, 0xff, 0xf6, 0x86, 0xd1, 0xdc, 0xb2, 0x4f, 0xf3,
+ 0x4f, 0x68, 0xa6, 0x3e,
+ 0x65, 0x07, 0x6e, 0x6d, 0xaf, 0x4e, 0xf7, 0xed, 0xf2, 0x8b, 0x5b, 0x6e,
+ 0x5b, 0xf8, 0x0b, 0x3c,
+ 0x75, 0x91, 0xa4, 0xb4, 0x9f, 0x26, 0xd8, 0xf9, 0xe8, 0x9c, 0x57, 0xa4,
+ 0x57, 0x88, 0xd1, 0x83,
+ 0x05, 0xf5, 0x97, 0xfe, 0x0f, 0xfd, 0x15, 0x95, 0xae, 0xf9, 0x73, 0x97,
+ 0x73, 0x1b, 0x92, 0x38,
+ 0x15, 0x63, 0x5d, 0x27, 0x3f, 0x95, 0x3a, 0x81, 0xb4, 0xee, 0x7f, 0x5d,
+ 0x7f, 0x6b, 0x48, 0x87,
+ 0x25, 0x1a, 0xc0, 0x8f, 0x6f, 0x2d, 0x4b, 0xbd, 0x9a, 0xd7, 0x6b, 0xc0,
+ 0x6b, 0xfb, 0xe5, 0x85,
+ 0x35, 0x8c, 0x0a, 0x56, 0x5f, 0x45, 0x64, 0xa9, 0x80, 0xc0, 0x67, 0x0a,
+ 0x67, 0x8b, 0x3f, 0x3a,
+ 0xc5, 0xd2, 0xa6, 0x1b, 0x8c, 0x58, 0x12, 0x65, 0x16, 0x1d, 0x23, 0xa6,
+ 0x23, 0x1e, 0x63, 0x30,
+ 0xd5, 0x44, 0x6c, 0xc2, 0xbc, 0x30, 0x3d, 0x71, 0x0c, 0x0a, 0x2f, 0x6c,
+ 0x2f, 0x6e, 0xb9, 0x8f,
+ 0xe5, 0x3d, 0xf1, 0x6a, 0xec, 0x88, 0x4c, 0x4d, 0x22, 0x33, 0x3b, 0xf1,
+ 0x3b, 0xfe, 0x14, 0x8d,
+ 0xf5, 0xab, 0x3b, 0xb3, 0xdc, 0xe0, 0x63, 0x59, 0x38, 0x24, 0x37, 0x3b,
+ 0x37, 0x8e, 0xce, 0x32,
+ 0x85, 0xcf, 0x08, 0xf9, 0x4c, 0x3b, 0xae, 0x35, 0x7e, 0x41, 0x13, 0x08,
+ 0x13, 0x1d, 0x8d, 0x89,
+ 0x95, 0x59, 0xc2, 0x20, 0x7c, 0x53, 0x81, 0x21, 0x64, 0x56, 0x1f, 0xc2,
+ 0x1f, 0x6d, 0x57, 0x36,
+ 0xa5, 0x20, 0x5f, 0x88, 0x2c, 0xeb, 0xf0, 0x1d, 0x4a, 0x6f, 0x0b, 0x5f,
+ 0x0b, 0xfd, 0xfa, 0x34,
+ 0xb5, 0xb6, 0x95, 0x51, 0x1c, 0x83, 0xdf, 0x09, 0x50, 0x78, 0x07, 0x95,
+ 0x07, 0x8d, 0x20, 0x8b,
+ 0x86, 0x9c, 0xc4, 0x12, 0x49, 0xd1, 0x1c, 0x46, 0xa5, 0x16, 0x83, 0xc4,
+ 0x83, 0x14, 0x42, 0x20,
+ 0x96, 0x0a, 0x0e, 0xcb, 0x79, 0xb9, 0x33, 0x52, 0xbf, 0x01, 0x8f, 0x0e,
+ 0x8f, 0x64, 0x98, 0x9f,
+ 0xa6, 0x73, 0x93, 0x63, 0x29, 0x01, 0x42, 0x6e, 0x91, 0x38, 0x9b, 0x93,
+ 0x9b, 0xf4, 0x35, 0x9d,
+ 0xb6, 0xe5, 0x59, 0xba, 0x19, 0x69, 0x6d, 0x7a, 0x8b, 0x2f, 0x97, 0x59,
+ 0x97, 0x84, 0xef, 0x22,
+ 0xc6, 0x81, 0x6a, 0xf0, 0x89, 0xb2, 0xa0, 0x16, 0xcd, 0x4a, 0xb3, 0x6a,
+ 0xb3, 0x17, 0xac, 0x99,
+ 0xd6, 0x17, 0xa0, 0x29, 0xb9, 0xda, 0x8f, 0x02, 0xd7, 0x5d, 0xbf, 0xa0,
+ 0xbf, 0x67, 0x76, 0x26,
+ 0xe6, 0x6e, 0x3d, 0x81, 0xe9, 0x62, 0xfe, 0x3e, 0xf9, 0x64, 0xab, 0x3d,
+ 0xab, 0xf7, 0xdb, 0x24,
+ 0xf6, 0xf8, 0xf7, 0x58, 0xd9, 0x0a, 0xd1, 0x2a, 0xe3, 0x73, 0xa7, 0xf7,
+ 0xa7, 0x87, 0x01, 0x9b,
+ 0x06, 0xa6, 0x5b, 0x15, 0x0a, 0x17, 0xa7, 0xe6, 0x75, 0xae, 0xe3, 0x5b,
+ 0xe3, 0x12, 0x5d, 0x91,
+ 0x16, 0x30, 0x91, 0xcc, 0x3a, 0x7f, 0x88, 0xf2, 0x6f, 0xb9, 0xef, 0x91,
+ 0xef, 0x62, 0x87, 0x2e,
+ 0x26, 0x49, 0x0c, 0x64, 0x6a, 0xc7, 0xf9, 0xce, 0x41, 0x80, 0xfb, 0x0c,
+ 0xfb, 0xf2, 0x2a, 0x2c,
+ 0x36, 0xdf, 0xc6, 0xbd, 0x5a, 0xaf, 0xd6, 0xda, 0x5b, 0x97, 0xf7, 0xc6,
+ 0xf7, 0x82, 0xf0, 0x93,
+ 0x46, 0xbb, 0xf5, 0xf7, 0xca, 0x74, 0x1b, 0xb6, 0x1d, 0xf2, 0xd3, 0xf5,
+ 0xd3, 0x11, 0xb3, 0x28,
+ 0x56, 0x2d, 0x3f, 0x2e, 0xfa, 0x1c, 0x34, 0xa2, 0x07, 0xe5, 0xdf, 0x3f,
+ 0xdf, 0x61, 0x69, 0x97,
+ 0x66, 0x54, 0xa2, 0x86, 0xaa, 0xa4, 0x45, 0x9e, 0x29, 0xdc, 0xcb, 0xa2,
+ 0xcb, 0xf1, 0xc4, 0x95,
+ 0x76, 0xc2, 0x68, 0x5f, 0x9a, 0xcc, 0x6a, 0x8a, 0x33, 0xcb, 0xc7, 0x68,
+ 0xc7, 0x81, 0x1e, 0x2a,
+ 0x8a, 0x13, 0x72, 0x38, 0x5d, 0xff, 0x91, 0x49, 0x4f, 0x89, 0x86, 0x72,
+ 0x86, 0x30, 0xf8, 0xc1,
+ 0x9a, 0x85, 0xb8, 0xe1, 0x6d, 0x97, 0xbe, 0x5d, 0x55, 0x9e, 0x8a, 0xb8,
+ 0x8a, 0x40, 0x22, 0x7e,
+ 0xaa, 0xfc, 0x25, 0x49, 0x3d, 0x2f, 0xcf, 0x61, 0x7b, 0xa7, 0x9e, 0x25,
+ 0x9e, 0xd0, 0x8f, 0x7c,
+ 0xba, 0x6a, 0xef, 0x90, 0x0d, 0x47, 0xe0, 0x75, 0x61, 0xb0, 0x92, 0xef,
+ 0x92, 0xa0, 0x55, 0xc3,
+ 0xca, 0x0e, 0xdc, 0xda, 0x9d, 0x9c, 0x2d, 0x19, 0x27, 0xd5, 0xb6, 0xdc,
+ 0xb6, 0x33, 0x16, 0x78,
+ 0xda, 0x98, 0x16, 0x03, 0xad, 0xf4, 0x02, 0x0d, 0x3d, 0xc2, 0xba, 0x16,
+ 0xba, 0x43, 0xcc, 0xc7,
+ 0xea, 0xe1, 0x8b, 0xab, 0xfd, 0x4c, 0x73, 0x31, 0x13, 0xfb, 0xae, 0x8b,
+ 0xae, 0xd3, 0x61, 0xc5,
+ 0xfa, 0x77, 0x41, 0x72, 0xcd, 0x24, 0x5c, 0x25, 0x09, 0xec, 0xa2, 0x41,
+ 0xa2, 0xa3, 0xbb, 0x7a,
+ 0x0a, 0x29, 0xed, 0x3f, 0x1e, 0x39, 0x2a, 0xe9, 0x9f, 0x31, 0xe6, 0xed,
+ 0xe6, 0x36, 0xe7, 0x70,
+ 0x1a, 0xbf, 0x27, 0xe6, 0x2e, 0x51, 0x05, 0xfd, 0x85, 0x26, 0xea, 0x27,
+ 0xea, 0x46, 0x3d, 0xcf,
+ 0x2a, 0xc6, 0xba, 0x4e, 0x7e, 0xe9, 0x74, 0xc1, 0xab, 0x1f, 0xfe, 0xba,
+ 0xfe, 0xd6, 0x90, 0xcd,
+ 0x3a, 0x50, 0x70, 0x97, 0x4e, 0x81, 0x5b, 0xd5, 0xb1, 0x08, 0xf2, 0x70,
+ 0xf2, 0xa6, 0x4a, 0x72,
+ 0x4a, 0x34, 0x43, 0xdd, 0xde, 0x5a, 0x96, 0xb9, 0xf7, 0x6d, 0xd6, 0x43,
+ 0xd6, 0x35, 0x09, 0xc9,
+ 0x5a, 0xa2, 0x89, 0x04, 0xee, 0x32, 0xb9, 0xad, 0xed, 0x7a, 0xda, 0x89,
+ 0xda, 0x45, 0xd3, 0x76,
+ 0x6a, 0xdb, 0x14, 0xac, 0xbe, 0x8a, 0xc8, 0x91, 0xc3, 0x43, 0xce, 0x14,
+ 0xce, 0xd5, 0x7e, 0x74,
+ 0x7a, 0x4d, 0xde, 0x75, 0x8e, 0xe2, 0xe7, 0x85, 0xd9, 0x54, 0xc2, 0xde,
+ 0xc2, 0xa5, 0xa4, 0xcb,
+ 0x49, 0x67, 0x8f, 0x36, 0xdb, 0xb0, 0x24, 0xca, 0x2c, 0x3a, 0x46, 0x8f,
+ 0x46, 0x3c, 0xc6, 0x60,
+ 0x59, 0xf1, 0x45, 0xef, 0xeb, 0xd8, 0x0b, 0xde, 0x36, 0x2d, 0x4a, 0x45,
+ 0x4a, 0x4c, 0x1c, 0xdf,
+ 0x69, 0x88, 0xd8, 0x47, 0xbb, 0x60, 0x7a, 0xe2, 0x18, 0x14, 0x5e, 0xd8,
+ 0x5e, 0xdc, 0xb1, 0xdd,
+ 0x79, 0x1e, 0x12, 0x9e, 0x8b, 0x08, 0x55, 0xf6, 0x02, 0x03, 0x52, 0x12,
+ 0x52, 0xac, 0x6b, 0x62,
+ 0x09, 0x7a, 0x21, 0xd4, 0x1b, 0xd3, 0x98, 0x9a, 0x44, 0x66, 0x76, 0x21,
+ 0x76, 0x3f, 0x28, 0xd9,
+ 0x19, 0xec, 0xeb, 0x0d, 0x2b, 0xbb, 0xb7, 0x8e, 0x5e, 0x71, 0x7a, 0xeb,
+ 0x7a, 0x4f, 0xf2, 0x66,
+ 0x29, 0x95, 0x76, 0xa5, 0x7b, 0x03, 0xc6, 0xb2, 0x70, 0x48, 0x6e, 0x76,
+ 0x6e, 0xdf, 0x5f, 0x64,
+ 0x39, 0x03, 0xbc, 0x7c, 0x4b, 0x6b, 0xe9, 0xa6, 0x6a, 0x5f, 0x62, 0xbc,
+ 0x62, 0xaf, 0x85, 0xdb,
+ 0xc9, 0x5d, 0x10, 0x31, 0x98, 0x76, 0x9f, 0x6a, 0xfc, 0x82, 0x26, 0x10,
+ 0x26, 0x3a, 0xd9, 0xd1,
+ 0xd9, 0xcb, 0xda, 0xe8, 0xa8, 0x1e, 0xb0, 0x7e, 0xe6, 0x95, 0x2a, 0xda,
+ 0x2a, 0x4a, 0x03, 0x6e,
+ 0xe9, 0xb2, 0x47, 0x40, 0xf8, 0xa6, 0xc1, 0x42, 0xc8, 0xac, 0x3e, 0x47,
+ 0x3e, 0xda, 0xae, 0x6c,
+ 0xf9, 0x24, 0x8d, 0x99, 0xc8, 0xce, 0xee, 0x56, 0xd2, 0xbb, 0x32, 0x8d,
+ 0x32, 0xaa, 0x74, 0xd3,
+ 0x89, 0x40, 0xbe, 0xd3, 0x58, 0x15, 0x23, 0x3a, 0x94, 0xde, 0x16, 0xbe,
+ 0x16, 0x39, 0x37, 0x68,
+ 0x99, 0xd6, 0x74, 0x0a, 0x68, 0x7d, 0x0c, 0x2e, 0x8e, 0xc9, 0x1a, 0x74,
+ 0x1a, 0x49, 0xed, 0xd7,
+ 0xa9, 0xaf, 0xe9, 0xa2, 0x38, 0xc5, 0x7d, 0x12, 0xa0, 0xf0, 0x0e, 0xe9,
+ 0x0e, 0xd9, 0x40, 0xd5,
+ 0xb9, 0x39, 0x23, 0x7b, 0x08, 0xad, 0x52, 0x06, 0xba, 0xe7, 0x02, 0x23,
+ 0x02, 0xa9, 0x9a, 0x6a,
+ 0xcf, 0xfb, 0x4b, 0x24, 0x92, 0x61, 0x38, 0x8c, 0x89, 0x2c, 0xc5, 0x4b,
+ 0xc5, 0x28, 0x84, 0x40,
+ 0xdf, 0x6d, 0x81, 0xfd, 0xa2, 0x09, 0x17, 0x98, 0x93, 0x3b, 0xc9, 0x81,
+ 0xc9, 0x58, 0x5e, 0xff,
+ 0xef, 0x14, 0x1c, 0x55, 0xf2, 0xb1, 0x66, 0xa4, 0xbd, 0x02, 0xdd, 0x1c,
+ 0xdd, 0xc8, 0xf3, 0xfd,
+ 0xff, 0x82, 0xd6, 0x8c, 0xc2, 0xd9, 0x49, 0xb0, 0xa7, 0x15, 0xd1, 0xd6,
+ 0xd1, 0xb8, 0x29, 0x42,
+ 0x8f, 0xe6, 0xe5, 0xc6, 0x52, 0x02, 0x84, 0xdc, 0xe1, 0x70, 0xf5, 0xe5,
+ 0xf5, 0x2b, 0x6a, 0xf9,
+ 0x9f, 0x70, 0x2f, 0x1f, 0x62, 0x6a, 0xab, 0xc8, 0xfb, 0x67, 0xf9, 0x2f,
+ 0xf9, 0x5b, 0xb0, 0x46,
+ 0xaf, 0x09, 0xb2, 0xb7, 0x32, 0xd2, 0xda, 0xf4, 0xd5, 0x5e, 0xed, 0xb2,
+ 0xed, 0xcb, 0x1d, 0x44,
+ 0xbf, 0x9f, 0x78, 0x6e, 0x02, 0xba, 0xf5, 0xe0, 0xcf, 0x49, 0xe1, 0x78,
+ 0xe1, 0xbb, 0xc7, 0xfb,
+ 0x4f, 0xc1, 0xd4, 0x23, 0xd1, 0xa7, 0x83, 0x2c, 0x59, 0x94, 0xa5, 0xd4,
+ 0xa5, 0x2e, 0x9b, 0xf1,
+ 0x5f, 0x57, 0x1e, 0xfa, 0xe1, 0xcf, 0xac, 0x38, 0x43, 0x83, 0xa9, 0x1e,
+ 0xa9, 0x5e, 0x41, 0x4e,
+ 0x6f, 0x2e, 0x83, 0x52, 0xb1, 0x77, 0xdd, 0x04, 0x6d, 0xba, 0xbd, 0x83,
+ 0xbd, 0xce, 0xec, 0x4c,
+ 0x7f, 0xb8, 0x49, 0x8b, 0x81, 0x1f, 0xf2, 0x10, 0x77, 0xad, 0xb1, 0x49,
+ 0xb1, 0xbe, 0x36, 0xf3,
+ 0x0f, 0xdc, 0x7a, 0xc1, 0x11, 0xc4, 0x3f, 0x7c, 0x31, 0xc8, 0x95, 0x7a,
+ 0x95, 0x2d, 0x75, 0x48,
+ 0x1f, 0x4a, 0xb0, 0x18, 0x21, 0xac, 0x10, 0x68, 0x2b, 0xdf, 0x99, 0xb0,
+ 0x99, 0x5d, 0xaf, 0xf7,
+ 0x2f, 0x33, 0x2d, 0xb0, 0x71, 0x14, 0x61, 0x54, 0x05, 0xe6, 0x8d, 0x2d,
+ 0x8d, 0xcd, 0x02, 0xf5,
+ 0x3f, 0xa5, 0xe7, 0x69, 0x41, 0x7c, 0x4e, 0x40, 0x1f, 0xf1, 0x81, 0xe7,
+ 0x81, 0xbd, 0xd8, 0x4a,
+ 0x0c, 0x8f, 0xb6, 0x2a, 0x14, 0x2e, 0x8d, 0x0f, 0xea, 0x9f, 0x05, 0xb6,
+ 0x05, 0x24, 0xba, 0xe1,
+ 0x1c, 0x19, 0x7c, 0xf3, 0x24, 0x46, 0xa2, 0x1b, 0xf0, 0x88, 0x09, 0x7c,
+ 0x09, 0x54, 0x60, 0x5e,
+ 0x2c, 0x60, 0xe1, 0x5b, 0x74, 0xfe, 0xd3, 0x27, 0xde, 0xb1, 0x1d, 0xe1,
+ 0x1d, 0xc4, 0xcd, 0x5c,
+ 0x3c, 0xf6, 0x2b, 0x82, 0x44, 0x96, 0xfc, 0x33, 0xc4, 0xa6, 0x11, 0x2b,
+ 0x11, 0xb4, 0x17, 0xe3,
+ 0x4c, 0x92, 0x18, 0xc8, 0xd4, 0x4d, 0x31, 0x5f, 0x82, 0xc3, 0x35, 0x18,
+ 0x35, 0x27, 0x54, 0x58,
+ 0x5c, 0x04, 0xd2, 0x11, 0xe4, 0x25, 0x1e, 0x4b, 0x98, 0xd4, 0x39, 0xd2,
+ 0x39, 0x57, 0x8e, 0xe7,
+ 0x6c, 0x7d, 0x4f, 0xb9, 0xb4, 0x9d, 0x6f, 0x77, 0xb6, 0xed, 0x2d, 0x4f,
+ 0x2d, 0xc7, 0x23, 0xe5,
+ 0x7c, 0xeb, 0x85, 0x60, 0x84, 0xf5, 0x40, 0x63, 0xac, 0xfa, 0x21, 0x85,
+ 0x21, 0xb7, 0xf9, 0x5a,
+ 0x8c, 0xb5, 0x29, 0x2d, 0x57, 0xe8, 0x36, 0xaf, 0x3a, 0x27, 0x65, 0x29,
+ 0x65, 0x22, 0xa5, 0x50,
+ 0x9c, 0x23, 0xe3, 0xf4, 0x67, 0x80, 0x19, 0xbb, 0x20, 0x30, 0x69, 0xe3,
+ 0x69, 0x52, 0x7f, 0xef,
+ 0xac, 0x5a, 0x7e, 0x5c, 0x37, 0x38, 0x68, 0x87, 0x0e, 0x09, 0x7d, 0x7e,
+ 0x7d, 0xc2, 0xd2, 0xed,
+ 0xbc, 0xcc, 0xb4, 0x85, 0x07, 0x50, 0x47, 0x93, 0x14, 0x1e, 0x71, 0xb4,
+ 0x71, 0xb2, 0x08, 0x52,
+ 0xcc, 0xa8, 0x87, 0xcf, 0x97, 0x8b, 0x8a, 0xff, 0x52, 0x7b, 0x55, 0x87,
+ 0x55, 0x21, 0x4b, 0xe9,
+ 0xdc, 0x3e, 0x4d, 0x16, 0xa7, 0xe3, 0xa5, 0xeb, 0x48, 0x6c, 0x59, 0x4d,
+ 0x59, 0x51, 0x91, 0x56,
+ 0xec, 0x47, 0xd0, 0xbe, 0xf7, 0x5b, 0xd4, 0xd7, 0x66, 0x55, 0x4d, 0xd0,
+ 0x4d, 0xc1, 0x3c, 0x54,
+ 0xfc, 0xd1, 0x1a, 0x67, 0xc7, 0x33, 0xfb, 0xc3, 0x7c, 0x42, 0x41, 0x1a,
+ 0x41, 0xb1, 0xe6, 0xeb,
+ 0xd7, 0x26, 0xe4, 0x70, 0xba, 0x3d, 0xe1, 0x92, 0x9e, 0xd1, 0xcf, 0xe4,
+ 0xcf, 0x60, 0x33, 0x41,
+ 0xc7, 0xb0, 0x2e, 0xa9, 0x8a, 0x55, 0xce, 0x86, 0x84, 0xc6, 0xc3, 0x2e,
+ 0xc3, 0x10, 0xe9, 0xfe,
+ 0xf7, 0xc9, 0xb3, 0x01, 0xda, 0xed, 0xbf, 0xba, 0xaa, 0xff, 0xd7, 0xb3,
+ 0xd7, 0x80, 0x44, 0xfc,
+ 0xe7, 0x5f, 0x79, 0xd8, 0xea, 0x85, 0x90, 0xae, 0xb0, 0xe8, 0xdb, 0x79,
+ 0xdb, 0xf0, 0x9e, 0x43,
+ 0x97, 0x3b, 0x4a, 0x92, 0x7a, 0x5e, 0x5d, 0xc2, 0xf6, 0x8d, 0xff, 0x4a,
+ 0xff, 0x63, 0xdd, 0xf8,
+ 0x87, 0xad, 0x80, 0x4b, 0x4a, 0x36, 0x72, 0xd6, 0xec, 0x9a, 0xf3, 0x80,
+ 0xf3, 0x13, 0x07, 0x47,
+ 0xb7, 0xd4, 0x1d, 0xe3, 0x1a, 0x8e, 0x03, 0xea, 0xc2, 0xa3, 0xe7, 0x1d,
+ 0xe7, 0x83, 0xaa, 0x45,
+ 0xa7, 0x42, 0xd7, 0x3a, 0x2a, 0xe6, 0x2c, 0xfe, 0xd8, 0xb4, 0xeb, 0xd7,
+ 0xeb, 0xf3, 0x70, 0xfa,
+ 0x57, 0x1c, 0x7b, 0x77, 0xf9, 0xfb, 0x5a, 0x32, 0x4e, 0x69, 0xaf, 0x7b,
+ 0xaf, 0x66, 0x2c, 0xf0,
+ 0x47, 0x8a, 0xb1, 0xae, 0xc9, 0x93, 0x75, 0x26, 0x54, 0x7e, 0xa3, 0xb1,
+ 0xa3, 0x16, 0xf6, 0x4f,
+ 0x77, 0xf3, 0x2c, 0x06, 0x99, 0x2b, 0x04, 0x1a, 0x7a, 0x47, 0xb7, 0x2c,
+ 0xb7, 0x86, 0x5b, 0x4d,
+ 0x67, 0x65, 0xe6, 0xdf, 0xa9, 0x43, 0x2b, 0x0e, 0x60, 0x50, 0xbb, 0xe6,
+ 0xbb, 0xf6, 0x81, 0xf2,
+ 0x17, 0x01, 0xd5, 0x95, 0x39, 0x98, 0xe6, 0x62, 0x26, 0x35, 0x9f, 0xd5,
+ 0x9f, 0x65, 0xc2, 0x49,
+ 0x07, 0x97, 0x1f, 0x4c, 0x09, 0xf0, 0xc9, 0x76, 0x3c, 0x22, 0x93, 0x1f,
+ 0x93, 0x15, 0x18, 0xf6,
+ 0x37, 0xee, 0x82, 0xe4, 0x59, 0x48, 0xb8, 0x4a, 0x12, 0x1b, 0x87, 0x82,
+ 0x87, 0x85, 0xb5, 0xf4,
+ 0x27, 0x78, 0x48, 0x3d, 0x69, 0x20, 0x97, 0x5e, 0x08, 0x0c, 0x8b, 0x48,
+ 0x8b, 0xf5, 0x6f, 0x4b,
+ 0x14, 0x52, 0x19, 0x7e, 0x3c, 0x72, 0x54, 0x11, 0xfd, 0x62, 0x0f, 0x19,
+ 0x0f, 0x6c, 0x0d, 0xe0,
+ 0x04, 0xc4, 0xd3, 0xa7, 0x0c, 0x1a, 0x7b, 0x05, 0xe7, 0x75, 0x03, 0xd3,
+ 0x03, 0x1c, 0xd7, 0x5f,
+ 0x34, 0xbd, 0x4e, 0x0f, 0x5c, 0xa2, 0x0a, 0x39, 0xc9, 0x4c, 0x17, 0x4e,
+ 0x17, 0x8c, 0x7a, 0x5d,
+ 0x24, 0x2b, 0x84, 0xd6, 0x6c, 0xca, 0x25, 0x2d, 0xd3, 0x5b, 0x1b, 0x84,
+ 0x1b, 0xfc, 0xa0, 0xe2,
+ 0x54, 0x4f, 0xb7, 0x9c, 0xfc, 0x11, 0xe8, 0x41, 0x95, 0x3e, 0x3f, 0xb7,
+ 0x3f, 0x6f, 0xe3, 0x59,
+ 0x44, 0xd9, 0x7d, 0x45, 0xcc, 0x79, 0xc7, 0x55, 0x8f, 0x29, 0x33, 0x7d,
+ 0x33, 0x1f, 0x39, 0xe6,
+ 0x74, 0xa0, 0xe0, 0xed, 0x9c, 0xc1, 0xb6, 0x69, 0xa1, 0x10, 0x27, 0xe0,
+ 0x27, 0x8f, 0x94, 0xe4,
+ 0x64, 0x36, 0x2a, 0x34, 0xac, 0xa9, 0x99, 0x7d, 0xbb, 0x07, 0x2b, 0x2a,
+ 0x2b, 0xff, 0x4e, 0x5b,
+ 0x94, 0x68, 0x86, 0x79, 0x7f, 0xb4, 0xef, 0xb1, 0x2d, 0xda, 0x6f, 0x86,
+ 0x6f, 0x6a, 0x12, 0x51,
+ 0x84, 0xfe, 0x4c, 0xa0, 0x4f, 0xdc, 0xc0, 0xa5, 0x37, 0xcd, 0x63, 0x4c,
+ 0x63, 0x1a, 0xc8, 0xee,
+ 0xb4, 0x87, 0xd1, 0x08, 0x1f, 0x64, 0xb1, 0x99, 0x19, 0xf4, 0x77, 0xd1,
+ 0x77, 0x8a, 0x65, 0xec,
+ 0xa4, 0x11, 0x1b, 0xd1, 0x2f, 0x0c, 0x9e, 0x8d, 0x03, 0xe3, 0x7b, 0x1b,
+ 0x7b, 0xfa, 0xbf, 0x53,
+ 0xd4, 0x75, 0x28, 0x9b, 0xbf, 0xd7, 0x53, 0xe1, 0x45, 0x86, 0x5f, 0x28,
+ 0x5f, 0x69, 0xfc, 0xe8,
+ 0xc4, 0xe3, 0xe2, 0x42, 0x8f, 0xbf, 0x7c, 0xf5, 0x5f, 0x91, 0x53, 0xe2,
+ 0x53, 0x19, 0x26, 0x57,
+ 0xf4, 0x9a, 0x7f, 0xea, 0xdf, 0x07, 0x0d, 0xc9, 0x71, 0xa8, 0x47, 0x7f,
+ 0x47, 0x89, 0x8b, 0x55,
+ 0xe4, 0x0c, 0xb5, 0x33, 0xef, 0x6f, 0x22, 0xdd, 0x6b, 0xbf, 0x4b, 0xb5,
+ 0x4b, 0xf9, 0x51, 0xea,
+ 0x92, 0xce, 0xdd, 0x6c, 0x75, 0xa3, 0x48, 0x57, 0x58, 0x74, 0x8c, 0xdd,
+ 0x8c, 0x78, 0x4f, 0xc0,
+ 0x82, 0x58, 0x17, 0xb5, 0x45, 0xcb, 0x67, 0x43, 0x42, 0x63, 0x80, 0x17,
+ 0x80, 0x08, 0x95, 0x7f,
+ 0xb2, 0x21, 0x8a, 0x1d, 0x15, 0x73, 0x16, 0x7f, 0x6c, 0x5a, 0x94, 0x8a,
+ 0x94, 0x98, 0x38, 0x7d,
+ 0xa2, 0xb7, 0x40, 0xc4, 0x25, 0x1b, 0x39, 0x6b, 0x76, 0x4d, 0x98, 0x40,
+ 0x98, 0xe8, 0xe2, 0xc2,
+ 0xd2, 0xd3, 0x73, 0x8e, 0xb5, 0xc0, 0xf4, 0x07, 0x30, 0x28, 0xbc, 0x73,
+ 0xbc, 0x7b, 0xa1, 0x79,
+ 0xc2, 0x45, 0xb9, 0x57, 0x85, 0xa8, 0xdb, 0x13, 0x2a, 0x3f, 0xb0, 0xb9,
+ 0xb0, 0x0b, 0x7b, 0xc6,
+ 0xf2, 0x3c, 0x24, 0xff, 0xd5, 0x10, 0xaa, 0x2f, 0x04, 0x06, 0xa4, 0x24,
+ 0xa4, 0x9b, 0xd6, 0xc4,
+ 0xe2, 0xaa, 0xee, 0x26, 0xe5, 0x78, 0x85, 0x3b, 0x1e, 0x11, 0xa8, 0xee,
+ 0xa8, 0xeb, 0x0c, 0x7b,
+ 0x12, 0xf4, 0x42, 0x6b, 0x36, 0x65, 0xf3, 0xf7, 0x88, 0xcc, 0xec, 0x42,
+ 0xec, 0x7e, 0x50, 0x71,
+ 0x02, 0x62, 0x88, 0xb2, 0x06, 0x0d, 0xdc, 0xe3, 0x92, 0xdb, 0xe0, 0x88,
+ 0xe0, 0x0e, 0x8a, 0xce,
+ 0x32, 0x1b, 0x15, 0x1a, 0x56, 0xb5, 0xad, 0xdf, 0xbc, 0xe2, 0xf4, 0x15,
+ 0xf4, 0x9e, 0x27, 0xcc,
+ 0x22, 0x8d, 0xdf, 0xc3, 0x66, 0xdd, 0x82, 0xcb, 0xa6, 0xf5, 0xf8, 0xdf,
+ 0xf8, 0xee, 0xfd, 0x73,
+ 0x52, 0xe9, 0xec, 0x89, 0xf6, 0x06, 0x4f, 0xa7, 0xe0, 0x90, 0xdc, 0xec,
+ 0xdc, 0x7d, 0xbe, 0xc8,
+ 0x42, 0x7f, 0x26, 0x50, 0xc6, 0x6e, 0x60, 0xb3, 0xfa, 0x87, 0xd0, 0x26,
+ 0xd0, 0x0d, 0x64, 0x77,
+ 0x72, 0x06, 0xbb, 0xf8, 0x96, 0xd6, 0x11, 0x8f, 0xd4, 0xbe, 0xc4, 0xbb,
+ 0xc4, 0x9d, 0xc9, 0x75,
+ 0x62, 0x90, 0x71, 0x21, 0xa6, 0xbe, 0x3e, 0x9b, 0xce, 0xa9, 0xc8, 0x71,
+ 0xc8, 0xed, 0x13, 0xca,
+ 0x51, 0xba, 0x20, 0x62, 0xf3, 0xec, 0xfd, 0xd4, 0x3b, 0xc7, 0x4c, 0x20,
+ 0x4c, 0x74, 0x71, 0x61,
+ 0x41, 0x2c, 0xea, 0xbb, 0xc3, 0x84, 0xd2, 0xc0, 0x21, 0xd0, 0x40, 0xea,
+ 0x40, 0x04, 0xab, 0xde,
+ 0x71, 0x55, 0x77, 0x13, 0x93, 0x3c, 0xa3, 0xfc, 0x0f, 0xe9, 0x54, 0x77,
+ 0x54, 0x94, 0x06, 0xdc,
+ 0x61, 0xc3, 0xbd, 0xca, 0xa3, 0x54, 0x8c, 0xe8, 0x15, 0xfe, 0x58, 0xbd,
+ 0x58, 0xe4, 0xdc, 0x63,
+ 0x11, 0xa7, 0x8e, 0x80, 0x33, 0x8f, 0x41, 0x84, 0x53, 0x9b, 0x7c, 0x8e,
+ 0x7c, 0x77, 0x9f, 0xd8,
+ 0x01, 0x31, 0x44, 0x59, 0x03, 0xe7, 0x6e, 0x90, 0x49, 0x8c, 0x70, 0x44,
+ 0x70, 0x07, 0x45, 0x67,
+ 0x31, 0x48, 0xd9, 0xf1, 0x53, 0x5f, 0x1f, 0xac, 0x67, 0xb5, 0x64, 0xd9,
+ 0x64, 0x97, 0xe8, 0x65,
+ 0x21, 0xde, 0x13, 0x28, 0x63, 0x37, 0x30, 0xb8, 0x7d, 0xa2, 0x68, 0x13,
+ 0x68, 0xe7, 0x32, 0xda,
+ 0xd1, 0x80, 0xbf, 0x65, 0xb0, 0x2a, 0x46, 0x74, 0xeb, 0x7f, 0x2c, 0xbf,
+ 0x2c, 0x72, 0x6e, 0xd0,
+ 0xc1, 0x16, 0x75, 0xbc, 0x80, 0x42, 0x69, 0x60, 0xf1, 0x68, 0x20, 0x75,
+ 0x20, 0x02, 0xb4, 0x6f,
+ 0xf1, 0x6f, 0xe8, 0x14, 0xd0, 0xfa, 0x18, 0x5c, 0xdf, 0x51, 0x34, 0xe8,
+ 0x34, 0x92, 0x19, 0x6d,
+ 0xe1, 0xf9, 0x22, 0xcd, 0xe0, 0x92, 0x37, 0x48, 0xc5, 0x46, 0x38, 0x22,
+ 0x38, 0xe2, 0xc3, 0xd2,
+ 0x91, 0x9d, 0x11, 0x87, 0x70, 0x49, 0xfa, 0x24, 0x83, 0x23, 0x1c, 0x11,
+ 0x1c, 0x71, 0x80, 0x69,
+ 0x81, 0x0b, 0xdb, 0x5e, 0x40, 0x21, 0xd5, 0x30, 0x99, 0x34, 0x10, 0xdb,
+ 0x10, 0x01, 0x5a, 0xd6,
+ 0xb1, 0x72, 0x46, 0xf6, 0x10, 0x99, 0xa4, 0x0c, 0xb7, 0x0d, 0x04, 0x46,
+ 0x04, 0x91, 0xf7, 0xd4,
+ 0xa1, 0xe4, 0x8c, 0x2f, 0x20, 0xf1, 0x8b, 0x18, 0xad, 0x1a, 0x08, 0x8c,
+ 0x08, 0xe1, 0x2d, 0x6b,
+ 0x5d, 0x35, 0x96, 0x48, 0xe7, 0xc2, 0x70, 0xdb, 0xd1, 0x58, 0x49, 0x96,
+ 0x49, 0x50, 0xcb, 0x80,
+ 0x4d, 0xa3, 0x5c, 0x91, 0xd7, 0xaa, 0x5f, 0xcf, 0xcb, 0x4f, 0x45, 0x5c,
+ 0x45, 0x20, 0x11, 0x3f,
+ 0x7d, 0xda, 0xc1, 0x39, 0x87, 0x12, 0x2e, 0xf3, 0xe5, 0x76, 0x51, 0xc1,
+ 0x51, 0xb0, 0xbc, 0x3d,
+ 0x6d, 0x4c, 0x0b, 0xe0, 0xb7, 0x7a, 0x01, 0xe7, 0xff, 0x61, 0x5d, 0x0b,
+ 0x5d, 0xc0, 0x66, 0x82,
+ 0x1d, 0x28, 0x38, 0xaa, 0x27, 0xa1, 0xcc, 0x8b, 0xb9, 0x04, 0x79, 0x38,
+ 0x79, 0x53, 0x25, 0x39,
+ 0x0d, 0xbe, 0xf2, 0x73, 0x17, 0xc9, 0xe3, 0x9f, 0xa3, 0x13, 0x75, 0xf2,
+ 0x75, 0x23, 0xff, 0x86,
+ 0x3d, 0xc7, 0x6f, 0xdb, 0x47, 0x71, 0x92, 0xa3, 0x8d, 0x2a, 0x61, 0x6f,
+ 0x61, 0xb3, 0x52, 0x84,
+ 0x2d, 0x51, 0xa5, 0x02, 0x77, 0x19, 0xbd, 0xb7, 0x97, 0x3d, 0x6d, 0xa5,
+ 0x6d, 0xc3, 0x88, 0x3b,
+ 0xdd, 0x0f, 0x09, 0x4f, 0xa4, 0x04, 0xcb, 0x7b, 0x01, 0xe0, 0x29, 0x09,
+ 0x29, 0x56, 0xd4, 0x31,
+ 0xcd, 0x99, 0xc3, 0x96, 0x94, 0x6c, 0xe4, 0x6f, 0x1b, 0xf7, 0x25, 0xc3,
+ 0x25, 0x26, 0x0e, 0x8e,
+ 0xfd, 0xe0, 0x5e, 0x3e, 0xc4, 0xd4, 0x95, 0x53, 0x35, 0xce, 0x31, 0x5e,
+ 0x31, 0xb6, 0xa3, 0x8c,
+ 0xed, 0x76, 0x94, 0xe7, 0xf4, 0xbc, 0xba, 0x47, 0x2f, 0xd9, 0x3d, 0x94,
+ 0x3d, 0xc6, 0x79, 0x33,
+ 0x9d, 0x12, 0xa7, 0xad, 0x64, 0x67, 0x77, 0x2b, 0x69, 0xbc, 0x19, 0xa7,
+ 0x19, 0x55, 0x3a, 0x88,
+ 0x8d, 0x84, 0x6d, 0x74, 0x54, 0x0f, 0x58, 0x3f, 0x73, 0xab, 0x15, 0x6d,
+ 0x15, 0x25, 0xe0, 0x37,
+ 0xbd, 0xfd, 0xf0, 0xdc, 0x04, 0xb7, 0x29, 0x03, 0x5d, 0x92, 0x01, 0xf0,
+ 0x01, 0xb5, 0x4d, 0x35,
+ 0xad, 0x6b, 0x3a, 0x05, 0x34, 0xdf, 0x06, 0x17, 0x47, 0x85, 0x0d, 0x3a,
+ 0x0d, 0xc5, 0x97, 0x8a,
+ 0x9e, 0x41, 0x6b, 0x46, 0x61, 0x8d, 0xc5, 0x58, 0xb2, 0xeb, 0x89, 0x6b,
+ 0x89, 0x5c, 0xf5, 0x21,
+ 0x8e, 0xd7, 0xa1, 0x9f, 0x51, 0xe5, 0xea, 0x4c, 0xa8, 0xfc, 0x85, 0xa1,
+ 0x85, 0x2c, 0x2f, 0x9e,
+ 0xbe, 0xae, 0x3c, 0x37, 0x01, 0x5d, 0x9b, 0x70, 0x86, 0xc5, 0x91, 0x3c,
+ 0x91, 0xbc, 0x82, 0x9c,
+ 0xae, 0x38, 0xf6, 0xee, 0x31, 0x35, 0xb4, 0x64, 0x9c, 0xd2, 0x9d, 0xf6,
+ 0x9d, 0xcc, 0x58, 0x23,
+ 0xde, 0x5c, 0xc5, 0xa4, 0xa1, 0xee, 0x79, 0x08, 0xda, 0xb7, 0xb9, 0xc5,
+ 0xb9, 0x5f, 0x1b, 0x98,
+ 0xce, 0xca, 0x0f, 0x7d, 0x91, 0x86, 0x56, 0x1c, 0xc0, 0xa0, 0xb5, 0x0f,
+ 0xb5, 0x2f, 0xc1, 0x27,
+ 0xfe, 0xb3, 0x92, 0xd5, 0xc1, 0x3e, 0x27, 0x20, 0xee, 0x99, 0xa1, 0x92,
+ 0xa1, 0xbf, 0x6c, 0x25,
+ 0xee, 0x25, 0x58, 0x0c, 0xf1, 0x56, 0x08, 0x34, 0xf4, 0x8e, 0xad, 0x58,
+ 0xad, 0xcf, 0xb6, 0x9a,
+ 0x1e, 0x7b, 0xf4, 0x41, 0x22, 0x4b, 0x7e, 0xf8, 0x62, 0x53, 0xe9, 0xf4,
+ 0xe9, 0x5a, 0xea, 0x90,
+ 0x0e, 0xed, 0x3e, 0x98, 0x12, 0x23, 0x51, 0xec, 0x78, 0x44, 0xe5, 0x3e,
+ 0xe5, 0x2a, 0x30, 0x2f,
+ 0x3e, 0x94, 0xa3, 0x30, 0x42, 0x9b, 0x20, 0xd0, 0x56, 0x7d, 0xf1, 0xa3,
+ 0xf1, 0xba, 0x9d, 0x2d,
+ 0x2e, 0x02, 0x69, 0xe9, 0x72, 0xf3, 0x0f, 0xc4, 0x4c, 0x6a, 0xfd, 0x69,
+ 0xfd, 0xca, 0x47, 0x92,
+ 0x5e, 0x66, 0x5a, 0xa3, 0xe2, 0x28, 0xc2, 0xa8, 0x0a, 0x0f, 0xd9, 0x5a,
+ 0xd9, 0x59, 0x04, 0x29,
+ 0x4e, 0xf0, 0x90, 0x7a, 0xd2, 0x40, 0xed, 0xbc, 0x10, 0x18, 0xd5, 0x90,
+ 0xd5, 0x29, 0xde, 0x96,
+ 0x7e, 0x89, 0x0d, 0xd2, 0x82, 0xf8, 0x9c, 0x80, 0x3e, 0x21, 0xc1, 0x0d,
+ 0xc1, 0xb9, 0x73, 0x94,
+ 0x6e, 0x1f, 0xc7, 0x0b, 0xb2, 0x90, 0xb3, 0x94, 0x24, 0x36, 0xcd, 0xc7,
+ 0xcd, 0xc9, 0xa9, 0x2b,
+ 0x18, 0xdd, 0xaf, 0x54, 0x28, 0x5c, 0xd9, 0x1e, 0x17, 0xfd, 0x0a, 0xaf,
+ 0x0a, 0x48, 0xb7, 0x01,
+ 0x08, 0x4b, 0x65, 0x8d, 0x18, 0x34, 0xf6, 0x0a, 0x0d, 0xea, 0x06, 0x65,
+ 0x06, 0x38, 0x6d, 0xbe,
+ 0x38, 0x32, 0xf8, 0x25, 0x48, 0x8c, 0x87, 0x36, 0x23, 0xd3, 0x12, 0xf8,
+ 0x12, 0xa8, 0xc0, 0xbc,
+ 0x28, 0xa4, 0x32, 0xfc, 0x78, 0xe4, 0xa8, 0x22, 0x39, 0xc4, 0x1e, 0x32,
+ 0x1e, 0xd8, 0x1a, 0x03,
+ 0x58, 0xc0, 0x01, 0xb6, 0xe8, 0x3f, 0x65, 0x4e, 0x7f, 0xa1, 0x3a, 0x01,
+ 0x3a, 0x4b, 0x59, 0xb8,
+ 0x48, 0x56, 0xcb, 0x6f, 0xd8, 0x57, 0x4a, 0x5a, 0x65, 0xb6, 0x36, 0xcb,
+ 0x36, 0x3b, 0x83, 0x07,
+ 0x78, 0x2f, 0x56, 0xc7, 0x88, 0xef, 0x3b, 0x66, 0x4b, 0x8f, 0x22, 0x56,
+ 0x22, 0xab, 0x2e, 0x05,
+ 0x68, 0xb9, 0x9c, 0x1e, 0xb8, 0x87, 0x14, 0x72, 0x51, 0x98, 0x2e, 0x9c,
+ 0x2e, 0xdb, 0xf4, 0xba,
+ 0x98, 0xe7, 0x30, 0x53, 0x6b, 0x9a, 0x62, 0xbe, 0xc7, 0x45, 0x6a, 0x30,
+ 0x6a, 0x4e, 0xa8, 0xb0,
+ 0x88, 0x71, 0xfa, 0x8a, 0x5b, 0xf2, 0x4d, 0xaa, 0xdd, 0x52, 0x66, 0xfa,
+ 0x66, 0x3e, 0x72, 0x0f,
+ 0xb8, 0x08, 0x67, 0x22, 0x0b, 0x4a, 0x3c, 0x96, 0xf3, 0x6b, 0x72, 0x67,
+ 0x72, 0xae, 0xdf, 0x0d,
+ 0xa8, 0x9e, 0xad, 0xfb, 0x3b, 0x22, 0x13, 0x82, 0xe9, 0x7c, 0x7e, 0xad,
+ 0x7e, 0xde, 0x05, 0xb2,
+ 0xd8, 0xfa, 0x9e, 0xb1, 0xab, 0xf9, 0xde, 0xee, 0xaf, 0x19, 0x5a, 0x9e,
+ 0x5a, 0x4d, 0x46, 0x09,
+ 0xc8, 0x6c, 0x54, 0x68, 0x9b, 0x91, 0xf1, 0xfa, 0xb5, 0x0e, 0x56, 0x54,
+ 0x56, 0x3d, 0x9c, 0xb6,
+ 0xf8, 0x15, 0xc9, 0xc0, 0xcb, 0x29, 0x80, 0xc6, 0x9b, 0x37, 0x42, 0xc9,
+ 0x42, 0xad, 0x31, 0xb4,
+ 0xe8, 0x83, 0x03, 0x19, 0xfb, 0x41, 0xaf, 0xd2, 0x81, 0x20, 0x4e, 0x03,
+ 0x4e, 0xdd, 0xeb, 0x0b,
+ 0xdb, 0xa9, 0x52, 0x5a, 0xae, 0x13, 0x6c, 0x9d, 0x74, 0x4e, 0xca, 0x52,
+ 0xca, 0x44, 0x89, 0xa0,
+ 0xcb, 0x3f, 0x98, 0x83, 0x9e, 0x7b, 0x43, 0x89, 0x6e, 0x59, 0xc6, 0x98,
+ 0xc6, 0x34, 0x53, 0x1f,
+ 0xfb, 0x46, 0x05, 0x2b, 0xce, 0xc3, 0x32, 0xb5, 0x40, 0x60, 0xd2, 0x05,
+ 0xd2, 0xa4, 0xfe, 0x1d,
+ 0xeb, 0xd0, 0xcf, 0xf2, 0xfe, 0xab, 0x1d, 0xa1, 0x5a, 0x77, 0xde, 0xcf,
+ 0xde, 0xd4, 0x24, 0xa2,
+ 0x9b, 0xb4, 0xfc, 0xb8, 0x6e, 0x70, 0xd0, 0xcd, 0x1c, 0x12, 0xfa, 0xfc,
+ 0xfa, 0x47, 0x67, 0x19,
+ 0x8b, 0x22, 0x36, 0x61, 0x5e, 0x18, 0xff, 0xd9, 0x06, 0x05, 0xf6, 0x36,
+ 0xf6, 0x37, 0xbd, 0xa6,
+ 0xbb, 0x5b, 0xab, 0xc9, 0x0e, 0xa0, 0x8e, 0xe5, 0x28, 0x3c, 0xe2, 0xab,
+ 0xe2, 0xa7, 0x10, 0xa4,
+ 0xab, 0xcd, 0x61, 0x10, 0x3e, 0xc8, 0xa1, 0xf1, 0x32, 0x2b, 0xee, 0x61,
+ 0xee, 0xd7, 0xca, 0x1b,
+ 0x5b, 0x93, 0xcd, 0x5d, 0xed, 0xd5, 0xd7, 0x3d, 0xa4, 0xf6, 0xaa, 0xcd,
+ 0xaa, 0x42, 0x96, 0x11,
+ 0x4b, 0x05, 0x07, 0x84, 0xdd, 0xbd, 0xf8, 0x29, 0xbe, 0xe1, 0xa6, 0x07,
+ 0xa6, 0x32, 0x4c, 0xae,
+ 0x7b, 0x7c, 0x9a, 0x2c, 0x8d, 0x05, 0x89, 0x15, 0x90, 0xd8, 0xb2, 0x9a,
+ 0xb2, 0xa2, 0xe1, 0xac,
+ 0x6b, 0xea, 0x50, 0xf5, 0xbd, 0x6d, 0xa6, 0x01, 0x8a, 0xcf, 0xbe, 0x50,
+ 0xbe, 0xd2, 0x3b, 0x13,
+ 0x1b, 0x8e, 0x63, 0xbf, 0x2d, 0xb6, 0x6b, 0x6d, 0xcc, 0xaa, 0x9a, 0x63,
+ 0x9a, 0x41, 0x78, 0xa8,
+ 0x0b, 0x18, 0xa9, 0x66, 0x1d, 0xde, 0x44, 0x79, 0xd6, 0xbd, 0x96, 0xa9,
+ 0x96, 0x31, 0xa2, 0x17,
+ 0x3b, 0x61, 0x34, 0xce, 0x4d, 0x66, 0x35, 0x45, 0xf8, 0x84, 0x82, 0x34,
+ 0x82, 0xa1, 0x0f, 0x15,
+ 0x2b, 0xf7, 0xfe, 0x17, 0x7d, 0x0e, 0x1a, 0x51, 0xe2, 0x93, 0x8e, 0xfe,
+ 0x8e, 0xd1, 0xd5, 0xaa,
+ },
+ { /* 13 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x85, 0x74, 0x75, 0xd0, 0x5e, 0xbe, 0xb8, 0x87, 0x4e, 0x62, 0xec, 0x6b,
+ 0x10, 0x87, 0xc6, 0x74,
+ 0xc9, 0xe8, 0xea, 0x63, 0xbc, 0xbf, 0xb3, 0xcd, 0x9c, 0xc4, 0x1b, 0xd6,
+ 0x20, 0xcd, 0x4f, 0xe8,
+ 0x4c, 0x9c, 0x9f, 0xb3, 0xe2, 0x01, 0x0b, 0x4a, 0xd2, 0xa6, 0xf7, 0xbd,
+ 0x30, 0x4a, 0x89, 0x9c,
+ 0x51, 0x13, 0x17, 0xc6, 0xbb, 0xbd, 0xa5, 0x59, 0xfb, 0x4b, 0x36, 0x6f,
+ 0x40, 0x59, 0x9e, 0x13,
+ 0xd4, 0x67, 0x62, 0x16, 0xe5, 0x03, 0x1d, 0xde, 0xb5, 0x29, 0xda, 0x04,
+ 0x50, 0xde, 0x58, 0x67,
+ 0x98, 0xfb, 0xfd, 0xa5, 0x07, 0x02, 0x16, 0x94, 0x67, 0x8f, 0x2d, 0xb9,
+ 0x60, 0x94, 0xd1, 0xfb,
+ 0x1d, 0x8f, 0x88, 0x75, 0x59, 0xbc, 0xae, 0x13, 0x29, 0xed, 0xc1, 0xd2,
+ 0x70, 0x13, 0x17, 0x8f,
+ 0xa2, 0x26, 0x2e, 0x4f, 0xb5, 0xb9, 0x89, 0xb2, 0x35, 0x96, 0x6c, 0xde,
+ 0x80, 0xb2, 0xff, 0x26,
+ 0x27, 0x52, 0x5b, 0x9f, 0xeb, 0x07, 0x31, 0x35, 0x7b, 0xf4, 0x80, 0xb5,
+ 0x90, 0x35, 0x39, 0x52,
+ 0x6b, 0xce, 0xc4, 0x2c, 0x09, 0x06, 0x3a, 0x7f, 0xa9, 0x52, 0x77, 0x08,
+ 0xa0, 0x7f, 0xb0, 0xce,
+ 0xee, 0xba, 0xb1, 0xfc, 0x57, 0xb8, 0x82, 0xf8, 0xe7, 0x30, 0x9b, 0x63,
+ 0xb0, 0xf8, 0x76, 0xba,
+ 0xf3, 0x35, 0x39, 0x89, 0x0e, 0x04, 0x2c, 0xeb, 0xce, 0xdd, 0x5a, 0xb1,
+ 0xc0, 0xeb, 0x61, 0x35,
+ 0x76, 0x41, 0x4c, 0x59, 0x50, 0xba, 0x94, 0x6c, 0x80, 0xbf, 0xb6, 0xda,
+ 0xd0, 0x6c, 0xa7, 0x41,
+ 0x3a, 0xdd, 0xd3, 0xea, 0xb2, 0xbb, 0x9f, 0x26, 0x52, 0x19, 0x41, 0x67,
+ 0xe0, 0x26, 0x2e, 0xdd,
+ 0xbf, 0xa9, 0xa6, 0x3a, 0xec, 0x05, 0x27, 0xa1, 0x1c, 0x7b, 0xad, 0x0c,
+ 0xf0, 0xa1, 0xe8, 0xa9,
+ 0x87, 0x4c, 0x5c, 0x9e, 0xa9, 0xb1, 0xd1, 0xa7, 0x6a, 0xef, 0xd8, 0x7f,
+ 0xc3, 0xa7, 0x3d, 0x4c,
+ 0x02, 0x38, 0x29, 0x4e, 0xf7, 0x0f, 0x69, 0x20, 0x24, 0x8d, 0x34, 0x14,
+ 0xd3, 0x20, 0xfb, 0x38,
+ 0x4e, 0xa4, 0xb6, 0xfd, 0x15, 0x0e, 0x62, 0x6a, 0xf6, 0x2b, 0xc3, 0xa9,
+ 0xe3, 0x6a, 0x72, 0xa4,
+ 0xcb, 0xd0, 0xc3, 0x2d, 0x4b, 0xb0, 0xda, 0xed, 0xb8, 0x49, 0x2f, 0xc2,
+ 0xf3, 0xed, 0xb4, 0xd0,
+ 0xd6, 0x5f, 0x4b, 0x58, 0x12, 0x0c, 0x74, 0xfe, 0x91, 0xa4, 0xee, 0x10,
+ 0x83, 0xfe, 0xa3, 0x5f,
+ 0x53, 0x2b, 0x3e, 0x88, 0x4c, 0xb2, 0xcc, 0x79, 0xdf, 0xc6, 0x02, 0x7b,
+ 0x93, 0x79, 0x65, 0x2b,
+ 0x1f, 0xb7, 0xa1, 0x3b, 0xae, 0xb3, 0xc7, 0x33, 0x0d, 0x60, 0xf5, 0xc6,
+ 0xa3, 0x33, 0xec, 0xb7,
+ 0x9a, 0xc3, 0xd4, 0xeb, 0xf0, 0x0d, 0x7f, 0xb4, 0x43, 0x02, 0x19, 0xad,
+ 0xb3, 0xb4, 0x2a, 0xc3,
+ 0x25, 0x6a, 0x72, 0xd1, 0x1c, 0x08, 0x58, 0x15, 0x5f, 0x79, 0xb4, 0xa1,
+ 0x43, 0x15, 0xc2, 0x6a,
+ 0xa0, 0x1e, 0x07, 0x01, 0x42, 0xb6, 0xe0, 0x92, 0x11, 0x1b, 0x58, 0xca,
+ 0x53, 0x92, 0x04, 0x1e,
+ 0xec, 0x82, 0x98, 0xb2, 0xa0, 0xb7, 0xeb, 0xd8, 0xc3, 0xbd, 0xaf, 0x77,
+ 0x63, 0xd8, 0x8d, 0x82,
+ 0x69, 0xf6, 0xed, 0x62, 0xfe, 0x09, 0x53, 0x5f, 0x8d, 0xdf, 0x43, 0x1c,
+ 0x73, 0x5f, 0x4b, 0xf6,
+ 0x74, 0x79, 0x65, 0x17, 0xa7, 0xb5, 0xfd, 0x4c, 0xa4, 0x32, 0x82, 0xce,
+ 0x03, 0x4c, 0x5c, 0x79,
+ 0xf1, 0x0d, 0x10, 0xc7, 0xf9, 0x0b, 0x45, 0xcb, 0xea, 0x50, 0x6e, 0xa5,
+ 0x13, 0xcb, 0x9a, 0x0d,
+ 0xbd, 0x91, 0x8f, 0x74, 0x1b, 0x0a, 0x4e, 0x81, 0x38, 0xf6, 0x99, 0x18,
+ 0x23, 0x81, 0x13, 0x91,
+ 0x38, 0xe5, 0xfa, 0xa4, 0x45, 0xb4, 0xf6, 0x06, 0x76, 0x94, 0x75, 0x73,
+ 0x33, 0x06, 0xd5, 0xe5,
+ 0xcd, 0x98, 0xb8, 0xff, 0x91, 0xa1, 0x61, 0x8d, 0xd4, 0x1d, 0x73, 0xfe,
+ 0x45, 0x8d, 0x7a, 0x98,
+ 0x48, 0xec, 0xcd, 0x2f, 0xcf, 0x1f, 0xd9, 0x0a, 0x9a, 0x7f, 0x9f, 0x95,
+ 0x55, 0x0a, 0xbc, 0xec,
+ 0x04, 0x70, 0x52, 0x9c, 0x2d, 0x1e, 0xd2, 0x40, 0x48, 0xd9, 0x68, 0x28,
+ 0x65, 0x40, 0x35, 0x70,
+ 0x81, 0x04, 0x27, 0x4c, 0x73, 0xa0, 0x6a, 0xc7, 0x06, 0xbb, 0x84, 0x43,
+ 0x75, 0xc7, 0xf3, 0x04,
+ 0x9c, 0x8b, 0xaf, 0x39, 0x2a, 0x1c, 0xc4, 0xd4, 0x2f, 0x56, 0x45, 0x91,
+ 0x05, 0xd4, 0xe4, 0x8b,
+ 0x19, 0xff, 0xda, 0xe9, 0x74, 0xa2, 0x7c, 0x53, 0x61, 0x34, 0xa9, 0xfa,
+ 0x15, 0x53, 0x22, 0xff,
+ 0x55, 0x63, 0x45, 0x5a, 0x96, 0xa3, 0x77, 0x19, 0xb3, 0x92, 0x5e, 0x47,
+ 0x25, 0x19, 0xab, 0x63,
+ 0xd0, 0x17, 0x30, 0x8a, 0xc8, 0x1d, 0xcf, 0x9e, 0xfd, 0xf0, 0xb2, 0x2c,
+ 0x35, 0x9e, 0x6d, 0x17,
+ 0x6f, 0xbe, 0x96, 0xb0, 0x24, 0x18, 0xe8, 0x3f, 0xe1, 0x8b, 0x1f, 0x20,
+ 0xc5, 0x3f, 0x85, 0xbe,
+ 0xea, 0xca, 0xe3, 0x60, 0x7a, 0xa6, 0x50, 0xb8, 0xaf, 0xe9, 0xf3, 0x4b,
+ 0xd5, 0xb8, 0x43, 0xca,
+ 0xa6, 0x56, 0x7c, 0xd3, 0x98, 0xa7, 0x5b, 0xf2, 0x7d, 0x4f, 0x04, 0xf6,
+ 0xe5, 0xf2, 0xca, 0x56,
+ 0x23, 0x22, 0x09, 0x03, 0xc6, 0x19, 0xe3, 0x75, 0x33, 0x2d, 0xe8, 0x9d,
+ 0xf5, 0x75, 0x0c, 0x22,
+ 0x3e, 0xad, 0x81, 0x76, 0x9f, 0xa5, 0x4d, 0x66, 0x1a, 0xc0, 0x29, 0x4f,
+ 0x85, 0x66, 0x1b, 0xad,
+ 0xbb, 0xd9, 0xf4, 0xa6, 0xc1, 0x1b, 0xf5, 0xe1, 0x54, 0xa2, 0xc5, 0x24,
+ 0x95, 0xe1, 0xdd, 0xd9,
+ 0xf7, 0x45, 0x6b, 0x15, 0x23, 0x1a, 0xfe, 0xab, 0x86, 0x04, 0x32, 0x99,
+ 0xa5, 0xab, 0x54, 0x45,
+ 0x72, 0x31, 0x1e, 0xc5, 0x7d, 0xa4, 0x46, 0x2c, 0xc8, 0x66, 0xde, 0xf2,
+ 0xb5, 0x2c, 0x92, 0x31,
+ 0x4a, 0xd4, 0xe4, 0x61, 0x38, 0x10, 0xb0, 0x2a, 0xbe, 0xf2, 0xab, 0x81,
+ 0x86, 0x2a, 0x47, 0xd4,
+ 0xcf, 0xa0, 0x91, 0xb1, 0x66, 0xae, 0x08, 0xad, 0xf0, 0x90, 0x47, 0xea,
+ 0x96, 0xad, 0x81, 0xa0,
+ 0x83, 0x3c, 0x0e, 0x02, 0x84, 0xaf, 0x03, 0xe7, 0x22, 0x36, 0xb0, 0x57,
+ 0xa6, 0xe7, 0x08, 0x3c,
+ 0x06, 0x48, 0x7b, 0xd2, 0xda, 0x11, 0xbb, 0x60, 0x6c, 0x54, 0x5c, 0x3c,
+ 0xb6, 0x60, 0xce, 0x48,
+ 0x1b, 0xc7, 0xf3, 0xa7, 0x83, 0xad, 0x15, 0x73, 0x45, 0xb9, 0x9d, 0xee,
+ 0xc6, 0x73, 0xd9, 0xc7,
+ 0x9e, 0xb3, 0x86, 0x77, 0xdd, 0x13, 0xad, 0xf4, 0x0b, 0xdb, 0x71, 0x85,
+ 0xd6, 0xf4, 0x1f, 0xb3,
+ 0xd2, 0x2f, 0x19, 0xc4, 0x3f, 0x12, 0xa6, 0xbe, 0xd9, 0x7d, 0x86, 0x38,
+ 0xe6, 0xbe, 0x96, 0x2f,
+ 0x57, 0x5b, 0x6c, 0x14, 0x61, 0xac, 0x1e, 0x39, 0x97, 0x1f, 0x6a, 0x53,
+ 0xf6, 0x39, 0x50, 0x5b,
+ 0xe8, 0xf2, 0xca, 0x2e, 0x8d, 0xa9, 0x39, 0x98, 0x8b, 0x64, 0xc7, 0x5f,
+ 0x06, 0x98, 0xb8, 0xf2,
+ 0x6d, 0x86, 0xbf, 0xfe, 0xd3, 0x17, 0x81, 0x1f, 0xc5, 0x06, 0x2b, 0x34,
+ 0x16, 0x1f, 0x7e, 0x86,
+ 0x21, 0x1a, 0x20, 0x4d, 0x31, 0x16, 0x8a, 0x55, 0x17, 0xa0, 0xdc, 0x89,
+ 0x26, 0x55, 0xf7, 0x1a,
+ 0xa4, 0x6e, 0x55, 0x9d, 0x6f, 0xa8, 0x32, 0xd2, 0x59, 0xc2, 0x30, 0xe2,
+ 0x36, 0xd2, 0x31, 0x6e,
+ 0xb9, 0xe1, 0xdd, 0xe8, 0x36, 0x14, 0x9c, 0xc1, 0x70, 0x2f, 0xf1, 0x30,
+ 0x46, 0xc1, 0x26, 0xe1,
+ 0x3c, 0x95, 0xa8, 0x38, 0x68, 0xaa, 0x24, 0x46, 0x3e, 0x4d, 0x1d, 0x5b,
+ 0x56, 0x46, 0xe0, 0x95,
+ 0x70, 0x09, 0x37, 0x8b, 0x8a, 0xab, 0x2f, 0x0c, 0xec, 0xeb, 0xea, 0xe6,
+ 0x66, 0x0c, 0x69, 0x09,
+ 0xf5, 0x7d, 0x42, 0x5b, 0xd4, 0x15, 0x97, 0x8b, 0xa2, 0x89, 0x06, 0x8d,
+ 0x76, 0x8b, 0xaf, 0x7d,
+ 0x59, 0xf3, 0xb3, 0x3d, 0xe1, 0x81, 0xc2, 0xd9, 0x6b, 0x3a, 0xe6, 0x3f,
+ 0x8a, 0xd9, 0xf4, 0xf3,
+ 0xdc, 0x87, 0xc6, 0xed, 0xbf, 0x3f, 0x7a, 0x5e, 0x25, 0x58, 0x0a, 0x54,
+ 0x9a, 0x5e, 0x32, 0x87,
+ 0x90, 0x1b, 0x59, 0x5e, 0x5d, 0x3e, 0x71, 0x14, 0xf7, 0xfe, 0xfd, 0xe9,
+ 0xaa, 0x14, 0xbb, 0x1b,
+ 0x15, 0x6f, 0x2c, 0x8e, 0x03, 0x80, 0xc9, 0x93, 0xb9, 0x9c, 0x11, 0x82,
+ 0xba, 0x93, 0x7d, 0x6f,
+ 0x08, 0xe0, 0xa4, 0xfb, 0x5a, 0x3c, 0x67, 0x80, 0x90, 0x71, 0xd0, 0x50,
+ 0xca, 0x80, 0x6a, 0xe0,
+ 0x8d, 0x94, 0xd1, 0x2b, 0x04, 0x82, 0xdf, 0x07, 0xde, 0x13, 0x3c, 0x3b,
+ 0xda, 0x07, 0xac, 0x94,
+ 0xc1, 0x08, 0x4e, 0x98, 0xe6, 0x83, 0xd4, 0x4d, 0x0c, 0xb5, 0xcb, 0x86,
+ 0xea, 0x4d, 0x25, 0x08,
+ 0x44, 0x7c, 0x3b, 0x48, 0xb8, 0x3d, 0x6c, 0xca, 0x42, 0xd7, 0x27, 0xed,
+ 0xfa, 0xca, 0xe3, 0x7c,
+ 0xfb, 0xd5, 0x9d, 0x72, 0x54, 0x38, 0x4b, 0x6b, 0x5e, 0xac, 0x8a, 0xe1,
+ 0x0a, 0x6b, 0x0b, 0xd5,
+ 0x7e, 0xa1, 0xe8, 0xa2, 0x0a, 0x86, 0xf3, 0xec, 0x10, 0xce, 0x66, 0x8a,
+ 0x1a, 0xec, 0xcd, 0xa1,
+ 0x32, 0x3d, 0x77, 0x11, 0xe8, 0x87, 0xf8, 0xa6, 0xc2, 0x68, 0x91, 0x37,
+ 0x2a, 0xa6, 0x44, 0x3d,
+ 0xb7, 0x49, 0x02, 0xc1, 0xb6, 0x39, 0x40, 0x21, 0x8c, 0x0a, 0x7d, 0x5c,
+ 0x3a, 0x21, 0x82, 0x49,
+ 0xaa, 0xc6, 0x8a, 0xb4, 0xef, 0x85, 0xee, 0x32, 0xa5, 0xe7, 0xbc, 0x8e,
+ 0x4a, 0x32, 0x95, 0xc6,
+ 0x2f, 0xb2, 0xff, 0x64, 0xb1, 0x3b, 0x56, 0xb5, 0xeb, 0x85, 0x50, 0xe5,
+ 0x5a, 0xb5, 0x53, 0xb2,
+ 0x63, 0x2e, 0x60, 0xd7, 0x53, 0x3a, 0x5d, 0xff, 0x39, 0x23, 0xa7, 0x58,
+ 0x6a, 0xff, 0xda, 0x2e,
+ 0xe6, 0x5a, 0x15, 0x07, 0x0d, 0x84, 0xe5, 0x78, 0x77, 0x41, 0x4b, 0x33,
+ 0x7a, 0x78, 0x1c, 0x5a,
+ 0xde, 0xbf, 0xef, 0xa3, 0x48, 0x30, 0x13, 0x7e, 0x01, 0xd5, 0x3e, 0x40,
+ 0x49, 0x7e, 0xc9, 0xbf,
+ 0x5b, 0xcb, 0x9a, 0x73, 0x16, 0x8e, 0xab, 0xf9, 0x4f, 0xb7, 0xd2, 0x2b,
+ 0x59, 0xf9, 0x0f, 0xcb,
+ 0x17, 0x57, 0x05, 0xc0, 0xf4, 0x8f, 0xa0, 0xb3, 0x9d, 0x11, 0x25, 0x96,
+ 0x69, 0xb3, 0x86, 0x57,
+ 0x92, 0x23, 0x70, 0x10, 0xaa, 0x31, 0x18, 0x34, 0xd3, 0x73, 0xc9, 0xfd,
+ 0x79, 0x34, 0x40, 0x23,
+ 0x8f, 0xac, 0xf8, 0x65, 0xf3, 0x8d, 0xb6, 0x27, 0xfa, 0x9e, 0x08, 0x2f,
+ 0x09, 0x27, 0x57, 0xac,
+ 0x0a, 0xd8, 0x8d, 0xb5, 0xad, 0x33, 0x0e, 0xa0, 0xb4, 0xfc, 0xe4, 0x44,
+ 0x19, 0xa0, 0x91, 0xd8,
+ 0x46, 0x44, 0x12, 0x06, 0x4f, 0x32, 0x05, 0xea, 0x66, 0x5a, 0x13, 0xf9,
+ 0x29, 0xea, 0x18, 0x44,
+ 0xc3, 0x30, 0x67, 0xd6, 0x11, 0x8c, 0xbd, 0x6d, 0x28, 0x38, 0xff, 0x92,
+ 0x39, 0x6d, 0xde, 0x30,
+ 0x7c, 0x99, 0xc1, 0xec, 0xfd, 0x89, 0x9a, 0xcc, 0x34, 0x43, 0x52, 0x9e,
+ 0xc9, 0xcc, 0x36, 0x99,
+ 0xf9, 0xed, 0xb4, 0x3c, 0xa3, 0x37, 0x22, 0x4b, 0x7a, 0x21, 0xbe, 0xf5,
+ 0xd9, 0x4b, 0xf0, 0xed,
+ 0xb5, 0x71, 0x2b, 0x8f, 0x41, 0x36, 0x29, 0x01, 0xa8, 0x87, 0x49, 0x48,
+ 0xe9, 0x01, 0x79, 0x71,
+ 0x30, 0x05, 0x5e, 0x5f, 0x1f, 0x88, 0x91, 0x86, 0xe6, 0xe5, 0xa5, 0x23,
+ 0xf9, 0x86, 0xbf, 0x05,
+ 0x2d, 0x8a, 0xd6, 0x2a, 0x46, 0x34, 0x3f, 0x95, 0xcf, 0x08, 0x64, 0xf1,
+ 0x89, 0x95, 0xa8, 0x8a,
+ 0xa8, 0xfe, 0xa3, 0xfa, 0x18, 0x8a, 0x87, 0x12, 0x81, 0x6a, 0x88, 0x9a,
+ 0x99, 0x12, 0x6e, 0xfe,
+ 0xe4, 0x62, 0x3c, 0x49, 0xfa, 0x8b, 0x8c, 0x58, 0x53, 0xcc, 0x7f, 0x27,
+ 0xa9, 0x58, 0xe7, 0x62,
+ 0x61, 0x16, 0x49, 0x99, 0xa4, 0x35, 0x34, 0xdf, 0x1d, 0xae, 0x93, 0x4c,
+ 0xb9, 0xdf, 0x21, 0x16,
+ 0x94, 0x6b, 0x0b, 0xc2, 0x70, 0x20, 0xa3, 0x54, 0xbf, 0x27, 0x95, 0xc1,
+ 0xcf, 0x54, 0x8e, 0x6b,
+ 0x11, 0x1f, 0x7e, 0x12, 0x2e, 0x9e, 0x1b, 0xd3, 0xf1, 0x45, 0x79, 0xaa,
+ 0xdf, 0xd3, 0x48, 0x1f,
+ 0x5d, 0x83, 0xe1, 0xa1, 0xcc, 0x9f, 0x10, 0x99, 0x23, 0xe3, 0x8e, 0x17,
+ 0xef, 0x99, 0xc1, 0x83,
+ 0xd8, 0xf7, 0x94, 0x71, 0x92, 0x21, 0xa8, 0x1e, 0x6d, 0x81, 0x62, 0x7c,
+ 0xff, 0x1e, 0x07, 0xf7,
+ 0xc5, 0x78, 0x1c, 0x04, 0xcb, 0x9d, 0x06, 0x0d, 0x44, 0x6c, 0xa3, 0xae,
+ 0x8f, 0x0d, 0x10, 0x78,
+ 0x40, 0x0c, 0x69, 0xd4, 0x95, 0x23, 0xbe, 0x8a, 0x0a, 0x0e, 0x4f, 0xc5,
+ 0x9f, 0x8a, 0xd6, 0x0c,
+ 0x0c, 0x90, 0xf6, 0x67, 0x77, 0x22, 0xb5, 0xc0, 0xd8, 0xa8, 0xb8, 0x78,
+ 0xaf, 0xc0, 0x5f, 0x90,
+ 0x89, 0xe4, 0x83, 0xb7, 0x29, 0x9c, 0x0d, 0x47, 0x96, 0xca, 0x54, 0x13,
+ 0xbf, 0x47, 0x99, 0xe4,
+ 0x36, 0x4d, 0x25, 0x8d, 0xc5, 0x99, 0x2a, 0xe6, 0x8a, 0xb1, 0xf9, 0x1f,
+ 0x4f, 0xe6, 0x71, 0x4d,
+ 0xb3, 0x39, 0x50, 0x5d, 0x9b, 0x27, 0x92, 0x61, 0xc4, 0xd3, 0x15, 0x74,
+ 0x5f, 0x61, 0xb7, 0x39,
+ 0xff, 0xa5, 0xcf, 0xee, 0x79, 0x26, 0x99, 0x2b, 0x16, 0x75, 0xe2, 0xc9,
+ 0x6f, 0x2b, 0x3e, 0xa5,
+ 0x7a, 0xd1, 0xba, 0x3e, 0x27, 0x98, 0x21, 0xac, 0x58, 0x17, 0x0e, 0xa2,
+ 0x7f, 0xac, 0xf8, 0xd1,
+ 0x67, 0x5e, 0x32, 0x4b, 0x7e, 0x24, 0x8f, 0xbf, 0x71, 0xfa, 0xcf, 0x70,
+ 0x0f, 0xbf, 0xef, 0x5e,
+ 0xe2, 0x2a, 0x47, 0x9b, 0x20, 0x9a, 0x37, 0x38, 0x3f, 0x98, 0x23, 0x1b,
+ 0x1f, 0x38, 0x29, 0x2a,
+ 0xae, 0xb6, 0xd8, 0x28, 0xc2, 0x9b, 0x3c, 0x72, 0xed, 0x3e, 0xd4, 0xa6,
+ 0x2f, 0x72, 0xa0, 0xb6,
+ 0x2b, 0xc2, 0xad, 0xf8, 0x9c, 0x25, 0x84, 0xf5, 0xa3, 0x5c, 0x38, 0xcd,
+ 0x3f, 0xf5, 0x66, 0xc2,
+ 0x13, 0x27, 0x57, 0x5c, 0xd9, 0x91, 0x72, 0xf3, 0xd5, 0xc8, 0x4d, 0xbe,
+ 0x0c, 0xf3, 0xb3, 0x27,
+ 0x96, 0x53, 0x22, 0x8c, 0x87, 0x2f, 0xca, 0x74, 0x9b, 0xaa, 0xa1, 0xd5,
+ 0x1c, 0x74, 0x75, 0x53,
+ 0xda, 0xcf, 0xbd, 0x3f, 0x65, 0x2e, 0xc1, 0x3e, 0x49, 0x0c, 0x56, 0x68,
+ 0x2c, 0x3e, 0xfc, 0xcf,
+ 0x5f, 0xbb, 0xc8, 0xef, 0x3b, 0x90, 0x79, 0xb9, 0x07, 0x6e, 0xba, 0x03,
+ 0x3c, 0xb9, 0x3a, 0xbb,
+ 0x42, 0x34, 0x40, 0x9a, 0x62, 0x2c, 0xd7, 0xaa, 0x2e, 0x83, 0x7b, 0xd1,
+ 0x4c, 0xaa, 0x2d, 0x34,
+ 0xc7, 0x40, 0x35, 0x4a, 0x3c, 0x92, 0x6f, 0x2d, 0x60, 0xe1, 0x97, 0xba,
+ 0x5c, 0x2d, 0xeb, 0x40,
+ 0x8b, 0xdc, 0xaa, 0xf9, 0xde, 0x93, 0x64, 0x67, 0xb2, 0x47, 0x60, 0x07,
+ 0x6c, 0x67, 0x62, 0xdc,
+ 0x0e, 0xa8, 0xdf, 0x29, 0x80, 0x2d, 0xdc, 0xe0, 0xfc, 0x25, 0x8c, 0x6c,
+ 0x7c, 0xe0, 0xa4, 0xa8,
+ 0xb1, 0x01, 0x79, 0x13, 0x6c, 0x28, 0xfb, 0x41, 0xe0, 0x5e, 0x21, 0x60,
+ 0x8c, 0x41, 0x4c, 0x01,
+ 0x34, 0x75, 0x0c, 0xc3, 0x32, 0x96, 0x43, 0xc6, 0xae, 0x3c, 0xcd, 0x0b,
+ 0x9c, 0xc6, 0x8a, 0x75,
+ 0x78, 0xe9, 0x93, 0x70, 0xd0, 0x97, 0x48, 0x8c, 0x7c, 0x9a, 0x3a, 0xb6,
+ 0xac, 0x8c, 0x03, 0xe9,
+ 0xfd, 0x9d, 0xe6, 0xa0, 0x8e, 0x29, 0xf0, 0x0b, 0x32, 0xf8, 0xd6, 0xdd,
+ 0xbc, 0x0b, 0xc5, 0x9d,
+ 0xe0, 0x12, 0x6e, 0xd5, 0xd7, 0x95, 0x5e, 0x18, 0x1b, 0x15, 0x17, 0x0f,
+ 0xcc, 0x18, 0xd2, 0x12,
+ 0x65, 0x66, 0x1b, 0x05, 0x89, 0x2b, 0xe6, 0x9f, 0x55, 0x77, 0xfb, 0x64,
+ 0xdc, 0x9f, 0x14, 0x66,
+ 0x29, 0xfa, 0x84, 0xb6, 0x6b, 0x2a, 0xed, 0xd5, 0x87, 0xd1, 0x0c, 0xd9,
+ 0xec, 0xd5, 0x9d, 0xfa,
+ 0xac, 0x8e, 0xf1, 0x66, 0x35, 0x94, 0x55, 0x52, 0xc9, 0xb3, 0xe0, 0xb2,
+ 0xfc, 0x52, 0x5b, 0x8e,
+ 0xb2, 0x25, 0xa5, 0x7a, 0x01, 0xc1, 0x47, 0x71, 0xd6, 0x74, 0x0f, 0x7e,
+ 0xd7, 0x71, 0x2b, 0x25,
+ 0x37, 0x51, 0xd0, 0xaa, 0x5f, 0x7f, 0xff, 0xf6, 0x98, 0x16, 0xe3, 0x15,
+ 0xc7, 0xf6, 0xed, 0x51,
+ 0x7b, 0xcd, 0x4f, 0x19, 0xbd, 0x7e, 0xf4, 0xbc, 0x4a, 0xb0, 0x14, 0xa8,
+ 0xf7, 0xbc, 0x64, 0xcd,
+ 0xfe, 0xb9, 0x3a, 0xc9, 0xe3, 0xc0, 0x4c, 0x3b, 0x04, 0xd2, 0xf8, 0xc3,
+ 0xe7, 0x3b, 0xa2, 0xb9,
+ 0xe3, 0x36, 0xb2, 0xbc, 0xba, 0x7c, 0xe2, 0x28, 0x2d, 0x3f, 0x39, 0x11,
+ 0x97, 0x28, 0xb5, 0x36,
+ 0x66, 0x42, 0xc7, 0x6c, 0xe4, 0xc2, 0x5a, 0xaf, 0x63, 0x5d, 0xd5, 0x7a,
+ 0x87, 0xaf, 0x73, 0x42,
+ 0x2a, 0xde, 0x58, 0xdf, 0x06, 0xc3, 0x51, 0xe5, 0xb1, 0xfb, 0x22, 0xc7,
+ 0xb7, 0xe5, 0xfa, 0xde,
+ 0xaf, 0xaa, 0x2d, 0x0f, 0x58, 0x7d, 0xe9, 0x62, 0xff, 0x99, 0xce, 0xac,
+ 0xa7, 0x62, 0x3c, 0xaa,
+ 0x10, 0x03, 0x8b, 0x35, 0xb4, 0x78, 0xce, 0xc3, 0xe3, 0xe2, 0x63, 0xa0,
+ 0x57, 0xc3, 0xd4, 0x03,
+ 0x95, 0x77, 0xfe, 0xe5, 0xea, 0xc6, 0x76, 0x44, 0xad, 0x80, 0x8f, 0xcb,
+ 0x47, 0x44, 0x12, 0x77,
+ 0xd9, 0xeb, 0x61, 0x56, 0x08, 0xc7, 0x7d, 0x0e, 0x7f, 0x26, 0x78, 0x76,
+ 0x77, 0x0e, 0x9b, 0xeb,
+ 0x5c, 0x9f, 0x14, 0x86, 0x56, 0x79, 0xc5, 0x89, 0x31, 0x44, 0x94, 0x1d,
+ 0x67, 0x89, 0x5d, 0x9f,
+ 0x41, 0x10, 0x9c, 0xf3, 0x0f, 0xc5, 0x6b, 0x9a, 0x18, 0xa9, 0x55, 0xcf,
+ 0x17, 0x9a, 0x4a, 0x10,
+ 0xc4, 0x64, 0xe9, 0x23, 0x51, 0x7b, 0xd3, 0x1d, 0x56, 0xcb, 0xb9, 0xa4,
+ 0x07, 0x1d, 0x8c, 0x64,
+ 0x88, 0xf8, 0x76, 0x90, 0xb3, 0x7a, 0xd8, 0x57, 0x84, 0x6d, 0x4e, 0x19,
+ 0x37, 0x57, 0x05, 0xf8,
+ 0x0d, 0x8c, 0x03, 0x40, 0xed, 0xc4, 0x60, 0xd0, 0xca, 0x0f, 0xa2, 0x72,
+ 0x27, 0xd0, 0xc3, 0x8c,
+ 0x35, 0x69, 0xf9, 0xe4, 0xa8, 0x70, 0x96, 0xd6, 0xbc, 0x9b, 0xd7, 0x01,
+ 0x14, 0xd6, 0x16, 0x69,
+ 0xb0, 0x1d, 0x8c, 0x34, 0xf6, 0xce, 0x2e, 0x51, 0xf2, 0xf9, 0x3b, 0x6a,
+ 0x04, 0x51, 0xd0, 0x1d,
+ 0xfc, 0x81, 0x13, 0x87, 0x14, 0xcf, 0x25, 0x1b, 0x20, 0x5f, 0xcc, 0xd7,
+ 0x34, 0x1b, 0x59, 0x81,
+ 0x79, 0xf5, 0x66, 0x57, 0x4a, 0x71, 0x9d, 0x9c, 0x6e, 0x3d, 0x20, 0xbc,
+ 0x24, 0x9c, 0x9f, 0xf5,
+ 0x64, 0x7a, 0xee, 0x22, 0x13, 0xcd, 0x33, 0x8f, 0x47, 0xd0, 0xe1, 0x6e,
+ 0x54, 0x8f, 0x88, 0x7a,
+ 0xe1, 0x0e, 0x9b, 0xf2, 0x4d, 0x73, 0x8b, 0x08, 0x09, 0xb2, 0x0d, 0x05,
+ 0x44, 0x08, 0x4e, 0x0e,
+ 0xad, 0x92, 0x04, 0x41, 0xaf, 0x72, 0x80, 0x42, 0xdb, 0x14, 0xfa, 0xb8,
+ 0x74, 0x42, 0xc7, 0x92,
+ 0x28, 0xe6, 0x71, 0x91, 0xf1, 0xcc, 0x38, 0xc5, 0x95, 0x76, 0x16, 0xd3,
+ 0x64, 0xc5, 0x01, 0xe6,
+ 0x97, 0x4f, 0xd7, 0xab, 0x1d, 0xc9, 0x1f, 0x64, 0x89, 0x0d, 0xbb, 0xdf,
+ 0x94, 0x64, 0xe9, 0x4f,
+ 0x12, 0x3b, 0xa2, 0x7b, 0x43, 0x77, 0xa7, 0xe3, 0xc7, 0x6f, 0x57, 0xb4,
+ 0x84, 0xe3, 0x2f, 0x3b,
+ 0x5e, 0xa7, 0x3d, 0xc8, 0xa1, 0x76, 0xac, 0xa9, 0x15, 0xc9, 0xa0, 0x09,
+ 0xb4, 0xa9, 0xa6, 0xa7,
+ 0xdb, 0xd3, 0x48, 0x18, 0xff, 0xc8, 0x14, 0x2e, 0x5b, 0xab, 0x4c, 0x62,
+ 0xa4, 0x2e, 0x60, 0xd3,
+ 0xc6, 0x5c, 0xc0, 0x6d, 0xa6, 0x74, 0xba, 0x3d, 0x72, 0x46, 0x8d, 0xb0,
+ 0xd4, 0x3d, 0x77, 0x5c,
+ 0x43, 0x28, 0xb5, 0xbd, 0xf8, 0xca, 0x02, 0xba, 0x3c, 0x24, 0x61, 0xdb,
+ 0xc4, 0xba, 0xb1, 0x28,
+ 0x0f, 0xb4, 0x2a, 0x0e, 0x1a, 0xcb, 0x09, 0xf0, 0xee, 0x82, 0x96, 0x66,
+ 0xf4, 0xf0, 0x38, 0xb4,
+ 0x8a, 0xc0, 0x5f, 0xde, 0x44, 0x75, 0xb1, 0x77, 0xa0, 0xe0, 0x7a, 0x0d,
+ 0xe4, 0x77, 0xfe, 0xc0,
+ 0x7f, 0xbd, 0x1d, 0x85, 0x90, 0x60, 0x26, 0xfc, 0x02, 0x69, 0x7c, 0x80,
+ 0x92, 0xfc, 0x51, 0xbd,
+ 0xfa, 0xc9, 0x68, 0x55, 0xce, 0xde, 0x9e, 0x7b, 0x4c, 0x0b, 0x90, 0xeb,
+ 0x82, 0x7b, 0x97, 0xc9,
+ 0xb6, 0x55, 0xf7, 0xe6, 0x2c, 0xdf, 0x95, 0x31, 0x9e, 0xad, 0x67, 0x56,
+ 0xb2, 0x31, 0x1e, 0x55,
+ 0x33, 0x21, 0x82, 0x36, 0x72, 0x61, 0x2d, 0xb6, 0xd0, 0xcf, 0x8b, 0x3d,
+ 0xa2, 0xb6, 0xd8, 0x21,
+ 0x2e, 0xae, 0x0a, 0x43, 0x2b, 0xdd, 0x83, 0xa5, 0xf9, 0x22, 0x4a, 0xef,
+ 0xd2, 0xa5, 0xcf, 0xae,
+ 0xab, 0xda, 0x7f, 0x93, 0x75, 0x63, 0x3b, 0x22, 0xb7, 0x40, 0xa6, 0x84,
+ 0xc2, 0x22, 0x09, 0xda,
+ 0xe7, 0x46, 0xe0, 0x20, 0x97, 0x62, 0x30, 0x68, 0x65, 0xe6, 0x51, 0x39,
+ 0xf2, 0x68, 0x80, 0x46,
+ 0x62, 0x32, 0x95, 0xf0, 0xc9, 0xdc, 0x88, 0xef, 0x2b, 0x84, 0xbd, 0x52,
+ 0xe2, 0xef, 0x46, 0x32,
+ 0xdd, 0x9b, 0x33, 0xca, 0x25, 0xd9, 0xaf, 0x4e, 0x37, 0xff, 0x10, 0x5e,
+ 0x12, 0x4e, 0xae, 0x9b,
+ 0x58, 0xef, 0x46, 0x1a, 0x7b, 0x67, 0x17, 0xc9, 0x79, 0x9d, 0xfc, 0x35,
+ 0x02, 0xc9, 0x68, 0xef,
+ 0x14, 0x73, 0xd9, 0xa9, 0x99, 0x66, 0x1c, 0x83, 0xab, 0x3b, 0x0b, 0x88,
+ 0x32, 0x83, 0xe1, 0x73,
+ 0x91, 0x07, 0xac, 0x79, 0xc7, 0xd8, 0xa4, 0x04, 0xe5, 0x59, 0xe7, 0xe3,
+ 0x22, 0x04, 0x27, 0x07,
+ 0x8c, 0x88, 0x24, 0x0c, 0x9e, 0x64, 0x0a, 0x17, 0xcc, 0xb4, 0x26, 0x31,
+ 0x52, 0x17, 0x30, 0x88,
+ 0x09, 0xfc, 0x51, 0xdc, 0xc0, 0xda, 0xb2, 0x90, 0x82, 0xd6, 0xca, 0x5a,
+ 0x42, 0x90, 0xf6, 0xfc,
+ 0x45, 0x60, 0xce, 0x6f, 0x22, 0xdb, 0xb9, 0xda, 0x50, 0x70, 0x3d, 0xe7,
+ 0x72, 0xda, 0x7f, 0x60,
+ 0xc0, 0x14, 0xbb, 0xbf, 0x7c, 0x65, 0x01, 0x5d, 0x1e, 0x12, 0xd1, 0x8c,
+ 0x62, 0x5d, 0xb9, 0x14,
+ 0xf8, 0xf1, 0x41, 0x1b, 0x39, 0xd1, 0xf7, 0x5b, 0x68, 0x86, 0xa4, 0xff,
+ 0x51, 0x5b, 0x6c, 0xf1,
+ 0x7d, 0x85, 0x34, 0xcb, 0x67, 0x6f, 0x4f, 0xdc, 0x26, 0xe4, 0x48, 0x94,
+ 0x41, 0xdc, 0xaa, 0x85,
+ 0x31, 0x19, 0xab, 0x78, 0x85, 0x6e, 0x44, 0x96, 0xf4, 0x42, 0xbf, 0x29,
+ 0x71, 0x96, 0x23, 0x19,
+ 0xb4, 0x6d, 0xde, 0xa8, 0xdb, 0xd0, 0xfc, 0x11, 0xba, 0x20, 0x53, 0x42,
+ 0x61, 0x11, 0xe5, 0x6d,
+ 0xa9, 0xe2, 0x56, 0xdd, 0x82, 0x6c, 0x52, 0x02, 0x93, 0xcd, 0x92, 0x90,
+ 0x11, 0x02, 0xf2, 0xe2,
+ 0x2c, 0x96, 0x23, 0x0d, 0xdc, 0xd2, 0xea, 0x85, 0xdd, 0xaf, 0x7e, 0xfb,
+ 0x01, 0x85, 0x34, 0x96,
+ 0x60, 0x0a, 0xbc, 0xbe, 0x3e, 0xd3, 0xe1, 0xcf, 0x0f, 0x09, 0x89, 0x46,
+ 0x31, 0xcf, 0xbd, 0x0a,
+ 0xe5, 0x7e, 0xc9, 0x6e, 0x60, 0x6d, 0x59, 0x48, 0x41, 0x6b, 0x65, 0x2d,
+ 0x21, 0x48, 0x7b, 0x7e,
+ 0x5a, 0xd7, 0x6f, 0x54, 0x8c, 0x68, 0x7e, 0xe9, 0x5d, 0x10, 0xc8, 0x21,
+ 0xd1, 0xe9, 0x93, 0xd7,
+ 0xdf, 0xa3, 0x1a, 0x84, 0xd2, 0xd6, 0xc6, 0x6e, 0x13, 0x72, 0x24, 0x4a,
+ 0xc1, 0x6e, 0x55, 0xa3,
+ 0x93, 0x3f, 0x85, 0x37, 0x30, 0xd7, 0xcd, 0x24, 0xc1, 0xd4, 0xd3, 0xf7,
+ 0xf1, 0x24, 0xdc, 0x3f,
+ 0x16, 0x4b, 0xf0, 0xe7, 0x6e, 0x69, 0x75, 0xa3, 0x8f, 0xb6, 0x3f, 0x9c,
+ 0xe1, 0xa3, 0x1a, 0x4b,
+ 0x0b, 0xc4, 0x78, 0x92, 0x37, 0xd5, 0xdb, 0xb0, 0xa6, 0x5b, 0xfe, 0x4e,
+ 0x91, 0xb0, 0x0d, 0xc4,
+ 0x8e, 0xb0, 0x0d, 0x42, 0x69, 0x6b, 0x63, 0x37, 0xe8, 0x39, 0x12, 0x25,
+ 0x81, 0x37, 0xcb, 0xb0,
+ 0xc2, 0x2c, 0x92, 0xf1, 0x8b, 0x6a, 0x68, 0x7d, 0x3a, 0x9f, 0xe5, 0x98,
+ 0xb1, 0x7d, 0x42, 0x2c,
+ 0x47, 0x58, 0xe7, 0x21, 0xd5, 0xd4, 0xd0, 0xfa, 0x74, 0xfd, 0x09, 0xf3,
+ 0xa1, 0xfa, 0x84, 0x58,
+ 0xeb, 0xd6, 0x16, 0x47, 0xe0, 0x40, 0x85, 0xa8, 0xbd, 0x4e, 0xe9, 0x41,
+ 0x5d, 0xa8, 0xdf, 0xd6,
+ 0x6e, 0xa2, 0x63, 0x97, 0xbe, 0xfe, 0x3d, 0x2f, 0xf3, 0x2c, 0x05, 0x2a,
+ 0x4d, 0x2f, 0x19, 0xa2,
+ 0x22, 0x3e, 0xfc, 0x24, 0x5c, 0xff, 0x36, 0x65, 0x21, 0x8a, 0xf2, 0x97,
+ 0x7d, 0x65, 0x90, 0x3e,
+ 0xa7, 0x4a, 0x89, 0xf4, 0x02, 0x41, 0x8e, 0xe2, 0x6f, 0xe8, 0x1e, 0xfc,
+ 0x6d, 0xe2, 0x56, 0x4a,
+ 0xba, 0xc5, 0x01, 0x81, 0x5b, 0xfd, 0x20, 0xf1, 0x46, 0x05, 0xdf, 0x2e,
+ 0x1d, 0xf1, 0x41, 0xc5,
+ 0x3f, 0xb1, 0x74, 0x51, 0x05, 0x43, 0x98, 0x76, 0x08, 0x67, 0x33, 0x45,
+ 0x0d, 0x76, 0x87, 0xb1,
+ 0x73, 0x2d, 0xeb, 0xe2, 0xe7, 0x42, 0x93, 0x3c, 0xda, 0xc1, 0xc4, 0xf8,
+ 0x3d, 0x3c, 0x0e, 0x2d,
+ 0xf6, 0x59, 0x9e, 0x32, 0xb9, 0xfc, 0x2b, 0xbb, 0x94, 0xa3, 0x28, 0x93,
+ 0x2d, 0xbb, 0xc8, 0x59,
+ 0x49, 0xf0, 0x38, 0x08, 0x55, 0xf9, 0x0c, 0x1a, 0x88, 0xd8, 0x85, 0x9f,
+ 0xdd, 0x1a, 0x20, 0xf0,
+ 0xcc, 0x84, 0x4d, 0xd8, 0x0b, 0x47, 0xb4, 0x9d, 0xc6, 0xba, 0x69, 0xf4,
+ 0xcd, 0x9d, 0xe6, 0x84,
+ 0x80, 0x18, 0xd2, 0x6b, 0xe9, 0x46, 0xbf, 0xd7, 0x14, 0x1c, 0x9e, 0x49,
+ 0xfd, 0xd7, 0x6f, 0x18,
+ 0x05, 0x6c, 0xa7, 0xbb, 0xb7, 0xf8, 0x07, 0x50, 0x5a, 0x7e, 0x72, 0x22,
+ 0xed, 0x50, 0xa9, 0x6c,
+ 0x18, 0xe3, 0x2f, 0xce, 0xee, 0x44, 0xa9, 0x43, 0x73, 0x93, 0xb3, 0xf0,
+ 0x9d, 0x43, 0xbe, 0xe3,
+ 0x9d, 0x97, 0x5a, 0x1e, 0xb0, 0xfa, 0x11, 0xc4, 0x3d, 0xf1, 0x5f, 0x9b,
+ 0x8d, 0xc4, 0x78, 0x97,
+ 0xd1, 0x0b, 0xc5, 0xad, 0x52, 0xfb, 0x1a, 0x8e, 0xef, 0x57, 0xa8, 0x26,
+ 0xbd, 0x8e, 0xf1, 0x0b,
+ 0x54, 0x7f, 0xb0, 0x7d, 0x0c, 0x45, 0xa2, 0x09, 0xa1, 0x35, 0x44, 0x4d,
+ 0xad, 0x09, 0x37, 0x7f,
+ 0x6c, 0x9a, 0x4a, 0xd9, 0x49, 0xf1, 0x54, 0x0f, 0xd7, 0xa1, 0x31, 0x3e,
+ 0x9e, 0x0f, 0xe2, 0x9a,
+ 0xe9, 0xee, 0x3f, 0x09, 0x17, 0x4f, 0xec, 0x88, 0x99, 0xc3, 0xdd, 0x55,
+ 0x8e, 0x88, 0x24, 0xee,
+ 0xa5, 0x72, 0xa0, 0xba, 0xf5, 0x4e, 0xe7, 0xc2, 0x4b, 0x65, 0x2a, 0xe8,
+ 0xbe, 0xc2, 0xad, 0x72,
+ 0x20, 0x06, 0xd5, 0x6a, 0xab, 0xf0, 0x5f, 0x45, 0x05, 0x07, 0xc6, 0x83,
+ 0xae, 0x45, 0x6b, 0x06,
+ 0x3d, 0x89, 0x5d, 0x1f, 0xf2, 0x4c, 0xf1, 0x56, 0x2c, 0xea, 0x07, 0x51,
+ 0xde, 0x56, 0x7c, 0x89,
+ 0xb8, 0xfd, 0x28, 0xcf, 0xac, 0xf2, 0x49, 0xd1, 0x62, 0x88, 0xeb, 0x3a,
+ 0xce, 0xd1, 0xba, 0xfd,
+ 0xf4, 0x61, 0xb7, 0x7c, 0x4e, 0xf3, 0x42, 0x9b, 0xb0, 0x2e, 0x1c, 0x87,
+ 0xfe, 0x9b, 0x33, 0x61,
+ 0x71, 0x15, 0xc2, 0xac, 0x10, 0x4d, 0xfa, 0x1c, 0xfe, 0x4c, 0xf0, 0xec,
+ 0xee, 0x1c, 0xf5, 0x15,
+ 0xce, 0xbc, 0x64, 0x96, 0xfc, 0x48, 0xdd, 0xbd, 0xe2, 0x37, 0x5d, 0xe0,
+ 0x1e, 0xbd, 0x1d, 0xbc,
+ 0x4b, 0xc8, 0x11, 0x46, 0xa2, 0xf6, 0x65, 0x3a, 0xac, 0x55, 0xb1, 0x8b,
+ 0x0e, 0x3a, 0xdb, 0xc8,
+ 0x07, 0x54, 0x8e, 0xf5, 0x40, 0xf7, 0x6e, 0x70, 0x7e, 0xf3, 0x46, 0x36,
+ 0x3e, 0x70, 0x52, 0x54,
+ 0x82, 0x20, 0xfb, 0x25, 0x1e, 0x49, 0xd6, 0xf7, 0x30, 0x91, 0xaa, 0x5d,
+ 0x2e, 0xf7, 0x94, 0x20,
+ 0x9f, 0xaf, 0x73, 0x50, 0x47, 0xf5, 0x78, 0xe4, 0x19, 0x7c, 0x6b, 0x8f,
+ 0x5e, 0xe4, 0x83, 0xaf,
+ 0x1a, 0xdb, 0x06, 0x80, 0x19, 0x4b, 0xc0, 0x63, 0x57, 0x1e, 0x87, 0xe4,
+ 0x4e, 0x63, 0x45, 0xdb,
+ 0x56, 0x47, 0x99, 0x33, 0xfb, 0x4a, 0xcb, 0x29, 0x85, 0xb8, 0x70, 0x59,
+ 0x7e, 0x29, 0xcc, 0x47,
+ 0xd3, 0x33, 0xec, 0xe3, 0xa5, 0xf4, 0x73, 0xae, 0xcb, 0xda, 0x9c, 0x32,
+ 0x6e, 0xae, 0x0a, 0x33,
+ 0x26, 0x4e, 0xae, 0xb8, 0x71, 0xe1, 0xe4, 0x25, 0x69, 0x53, 0x9a, 0xbf,
+ 0x18, 0x25, 0xa5, 0x4e,
+ 0xa3, 0x3a, 0xdb, 0x68, 0x2f, 0x5f, 0x5c, 0xa2, 0x27, 0x31, 0x76, 0xd4,
+ 0x08, 0xa2, 0x63, 0x3a,
+ 0xef, 0xa6, 0x44, 0xdb, 0xcd, 0x5e, 0x57, 0xe8, 0xf5, 0x97, 0x81, 0x69,
+ 0x38, 0xe8, 0xea, 0xa6,
+ 0x6a, 0xd2, 0x31, 0x0b, 0x93, 0xe0, 0xef, 0x6f, 0xbb, 0xf5, 0x6d, 0x02,
+ 0x28, 0x6f, 0x2c, 0xd2,
+ 0x77, 0x5d, 0xb9, 0x7e, 0xca, 0x5c, 0x41, 0x7c, 0x92, 0x18, 0xac, 0xd0,
+ 0x58, 0x7c, 0x3b, 0x5d,
+ 0xf2, 0x29, 0xcc, 0xae, 0x94, 0xe2, 0xf9, 0xfb, 0xdc, 0x7a, 0x40, 0xbb,
+ 0x48, 0xfb, 0xfd, 0x29,
+ 0xbe, 0xb5, 0x53, 0x1d, 0x76, 0xe3, 0xf2, 0xb1, 0x0e, 0xdc, 0xb7, 0x06,
+ 0x78, 0xb1, 0x74, 0xb5,
+ 0x3b, 0xc1, 0x26, 0xcd, 0x28, 0x5d, 0x4a, 0x36, 0x40, 0xbe, 0x5b, 0x6d,
+ 0x68, 0x36, 0xb2, 0xc1,
+ 0x84, 0x68, 0x80, 0xf7, 0xc4, 0x58, 0x6d, 0x97, 0x5c, 0xc5, 0xf6, 0x61,
+ 0x98, 0x97, 0x5a, 0x68,
+ 0x01, 0x1c, 0xf5, 0x27, 0x9a, 0xe6, 0xd5, 0x10, 0x12, 0xa7, 0x1a, 0x0a,
+ 0x88, 0x10, 0x9c, 0x1c,
+ 0x4d, 0x80, 0x6a, 0x94, 0x78, 0xe7, 0xde, 0x5a, 0xc0, 0x01, 0xed, 0xb7,
+ 0xb8, 0x5a, 0x15, 0x80,
+ 0xc8, 0xf4, 0x1f, 0x44, 0x26, 0x59, 0x66, 0xdd, 0x8e, 0x63, 0x01, 0xdc,
+ 0xa8, 0xdd, 0xd3, 0xf4,
+ 0xd5, 0x7b, 0x97, 0x31, 0x7f, 0xe5, 0xc8, 0xce, 0xa7, 0x8e, 0xc0, 0x0e,
+ 0xd8, 0xce, 0xc4, 0x7b,
+ 0x50, 0x0f, 0xe2, 0xe1, 0x21, 0x5b, 0x70, 0x49, 0xe9, 0xec, 0x2c, 0x65,
+ 0xc8, 0x49, 0x02, 0x0f,
+ 0x1c, 0x93, 0x7d, 0x52, 0xc3, 0x5a, 0x7b, 0x03, 0x3b, 0x4a, 0xdb, 0xd8,
+ 0xf8, 0x03, 0x8b, 0x93,
+ 0x99, 0xe7, 0x08, 0x82, 0x9d, 0xe4, 0xc3, 0x84, 0x75, 0x28, 0x37, 0xb3,
+ 0xe8, 0x84, 0x4d, 0xe7,
+ 0xa1, 0x02, 0xf2, 0x26, 0xd8, 0x50, 0x35, 0x82, 0x03, 0xbc, 0x42, 0xc0,
+ 0xdb, 0x82, 0x98, 0x02,
+ 0x24, 0x76, 0x87, 0xf6, 0x86, 0xee, 0x8d, 0x05, 0x4d, 0xde, 0xae, 0xab,
+ 0xcb, 0x05, 0x5e, 0x76,
+ 0x68, 0xea, 0x18, 0x45, 0x64, 0xef, 0x86, 0x4f, 0x9f, 0x78, 0x59, 0x16,
+ 0xfb, 0x4f, 0xd7, 0xea,
+ 0xed, 0x9e, 0x6d, 0x95, 0x3a, 0x51, 0x3e, 0xc8, 0xd1, 0x1a, 0xb5, 0x7d,
+ 0xeb, 0xc8, 0x11, 0x9e,
+ 0xf0, 0x11, 0xe5, 0xe0, 0x63, 0xed, 0x90, 0xdb, 0xf8, 0xf7, 0x74, 0xaf,
+ 0x9b, 0xdb, 0x06, 0x11,
+ 0x75, 0x65, 0x90, 0x30, 0x3d, 0x53, 0x28, 0x5c, 0xb6, 0x95, 0x98, 0xc4,
+ 0x8b, 0x5c, 0xc0, 0x65,
+ 0x39, 0xf9, 0x0f, 0x83, 0xdf, 0x52, 0x23, 0x16, 0x64, 0x33, 0x6f, 0x79,
+ 0xbb, 0x16, 0x49, 0xf9,
+ 0xbc, 0x8d, 0x7a, 0x53, 0x81, 0xec, 0x9b, 0x91, 0x2a, 0x51, 0x83, 0x12,
+ 0xab, 0x91, 0x8f, 0x8d,
+ 0x03, 0x24, 0xdc, 0x69, 0x6d, 0xe9, 0xbc, 0x30, 0x36, 0x2a, 0x2e, 0x1e,
+ 0x5b, 0x30, 0x67, 0x24,
+ 0x86, 0x50, 0xa9, 0xb9, 0x33, 0x57, 0x04, 0xb7, 0x78, 0x48, 0xc2, 0x75,
+ 0x4b, 0xb7, 0xa1, 0x50,
+ 0xca, 0xcc, 0x36, 0x0a, 0xd1, 0x56, 0x0f, 0xfd, 0xaa, 0xee, 0x35, 0xc8,
+ 0x7b, 0xfd, 0x28, 0xcc,
+ 0x4f, 0xb8, 0x43, 0xda, 0x8f, 0xe8, 0xb7, 0x7a, 0xe4, 0x8c, 0xd9, 0xa3,
+ 0x6b, 0x7a, 0xee, 0xb8,
+ 0x52, 0x37, 0xcb, 0xaf, 0xd6, 0x54, 0x19, 0x69, 0xcd, 0x61, 0x18, 0x71,
+ 0x1b, 0x69, 0xf9, 0x37,
+ 0xd7, 0x43, 0xbe, 0x7f, 0x88, 0xea, 0xa1, 0xee, 0x83, 0x03, 0xf4, 0x1a,
+ 0x0b, 0xee, 0x3f, 0x43,
+ 0x9b, 0xdf, 0x21, 0xcc, 0x6a, 0xeb, 0xaa, 0xa4, 0x51, 0xa5, 0x03, 0xa7,
+ 0x3b, 0xa4, 0xb6, 0xdf,
+ 0x1e, 0xab, 0x54, 0x1c, 0x34, 0x55, 0x12, 0x23, 0x1f, 0xc7, 0xef, 0xcc,
+ 0x2b, 0x23, 0x70, 0xab,
+ },
+ { /* 14 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x2d, 0x99, 0xe9, 0x95, 0x9f, 0xd4, 0x49, 0xe6, 0xd5, 0x76, 0xf2,
+ 0x33, 0xc8, 0x20, 0x98,
+ 0x40, 0x5a, 0xf1, 0x11, 0xe9, 0xfd, 0x6b, 0x92, 0x0f, 0x69, 0xec, 0x27,
+ 0x66, 0x53, 0x40, 0xf3,
+ 0x60, 0x77, 0x68, 0xf8, 0x7c, 0x62, 0xbf, 0xdb, 0xe9, 0xbc, 0x9a, 0xd5,
+ 0x55, 0x9b, 0x60, 0x6b,
+ 0x80, 0xb4, 0x21, 0x22, 0x11, 0x39, 0xd6, 0xe7, 0x1e, 0xd2, 0x1b, 0x4e,
+ 0xcc, 0xa6, 0x80, 0x25,
+ 0xa0, 0x99, 0xb8, 0xcb, 0x84, 0xa6, 0x02, 0xae, 0xf8, 0x07, 0x6d, 0xbc,
+ 0xff, 0x6e, 0xa0, 0xbd,
+ 0xc0, 0xee, 0xd0, 0x33, 0xf8, 0xc4, 0xbd, 0x75, 0x11, 0xbb, 0xf7, 0x69,
+ 0xaa, 0xf5, 0xc0, 0xd6,
+ 0xe0, 0xc3, 0x49, 0xda, 0x6d, 0x5b, 0x69, 0x3c, 0xf7, 0x6e, 0x81, 0x9b,
+ 0x99, 0x3d, 0xe0, 0x4e,
+ 0xc3, 0xab, 0x42, 0x44, 0x22, 0x72, 0x6f, 0x0d, 0x3c, 0x67, 0x36, 0x9c,
+ 0x5b, 0x8f, 0xc3, 0x4a,
+ 0xe3, 0x86, 0xdb, 0xad, 0xb7, 0xed, 0xbb, 0x44, 0xda, 0xb2, 0x40, 0x6e,
+ 0x68, 0x47, 0xe3, 0xd2,
+ 0x83, 0xf1, 0xb3, 0x55, 0xcb, 0x8f, 0x04, 0x9f, 0x33, 0x0e, 0xda, 0xbb,
+ 0x3d, 0xdc, 0x83, 0xb9,
+ 0xa3, 0xdc, 0x2a, 0xbc, 0x5e, 0x10, 0xd0, 0xd6, 0xd5, 0xdb, 0xac, 0x49,
+ 0x0e, 0x14, 0xa3, 0x21,
+ 0x43, 0x1f, 0x63, 0x66, 0x33, 0x4b, 0xb9, 0xea, 0x22, 0xb5, 0x2d, 0xd2,
+ 0x97, 0x29, 0x43, 0x6f,
+ 0x63, 0x32, 0xfa, 0x8f, 0xa6, 0xd4, 0x6d, 0xa3, 0xc4, 0x60, 0x5b, 0x20,
+ 0xa4, 0xe1, 0x63, 0xf7,
+ 0x03, 0x45, 0x92, 0x77, 0xda, 0xb6, 0xd2, 0x78, 0x2d, 0xdc, 0xc1, 0xf5,
+ 0xf1, 0x7a, 0x03, 0x9c,
+ 0x23, 0x68, 0x0b, 0x9e, 0x4f, 0x29, 0x06, 0x31, 0xcb, 0x09, 0xb7, 0x07,
+ 0xc2, 0xb2, 0x23, 0x04,
+ 0x45, 0x95, 0x84, 0x88, 0x44, 0xe4, 0xde, 0x1a, 0x78, 0xce, 0x6c, 0xfb,
+ 0xb6, 0xdd, 0x45, 0x94,
+ 0x65, 0xb8, 0x1d, 0x61, 0xd1, 0x7b, 0x0a, 0x53, 0x9e, 0x1b, 0x1a, 0x09,
+ 0x85, 0x15, 0x65, 0x0c,
+ 0x05, 0xcf, 0x75, 0x99, 0xad, 0x19, 0xb5, 0x88, 0x77, 0xa7, 0x80, 0xdc,
+ 0xd0, 0x8e, 0x05, 0x67,
+ 0x25, 0xe2, 0xec, 0x70, 0x38, 0x86, 0x61, 0xc1, 0x91, 0x72, 0xf6, 0x2e,
+ 0xe3, 0x46, 0x25, 0xff,
+ 0xc5, 0x21, 0xa5, 0xaa, 0x55, 0xdd, 0x08, 0xfd, 0x66, 0x1c, 0x77, 0xb5,
+ 0x7a, 0x7b, 0xc5, 0xb1,
+ 0xe5, 0x0c, 0x3c, 0x43, 0xc0, 0x42, 0xdc, 0xb4, 0x80, 0xc9, 0x01, 0x47,
+ 0x49, 0xb3, 0xe5, 0x29,
+ 0x85, 0x7b, 0x54, 0xbb, 0xbc, 0x20, 0x63, 0x6f, 0x69, 0x75, 0x9b, 0x92,
+ 0x1c, 0x28, 0x85, 0x42,
+ 0xa5, 0x56, 0xcd, 0x52, 0x29, 0xbf, 0xb7, 0x26, 0x8f, 0xa0, 0xed, 0x60,
+ 0x2f, 0xe0, 0xa5, 0xda,
+ 0x86, 0x3e, 0xc6, 0xcc, 0x66, 0x96, 0xb1, 0x17, 0x44, 0xa9, 0x5a, 0x67,
+ 0xed, 0x52, 0x86, 0xde,
+ 0xa6, 0x13, 0x5f, 0x25, 0xf3, 0x09, 0x65, 0x5e, 0xa2, 0x7c, 0x2c, 0x95,
+ 0xde, 0x9a, 0xa6, 0x46,
+ 0xc6, 0x64, 0x37, 0xdd, 0x8f, 0x6b, 0xda, 0x85, 0x4b, 0xc0, 0xb6, 0x40,
+ 0x8b, 0x01, 0xc6, 0x2d,
+ 0xe6, 0x49, 0xae, 0x34, 0x1a, 0xf4, 0x0e, 0xcc, 0xad, 0x15, 0xc0, 0xb2,
+ 0xb8, 0xc9, 0xe6, 0xb5,
+ 0x06, 0x8a, 0xe7, 0xee, 0x77, 0xaf, 0x67, 0xf0, 0x5a, 0x7b, 0x41, 0x29,
+ 0x21, 0xf4, 0x06, 0xfb,
+ 0x26, 0xa7, 0x7e, 0x07, 0xe2, 0x30, 0xb3, 0xb9, 0xbc, 0xae, 0x37, 0xdb,
+ 0x12, 0x3c, 0x26, 0x63,
+ 0x46, 0xd0, 0x16, 0xff, 0x9e, 0x52, 0x0c, 0x62, 0x55, 0x12, 0xad, 0x0e,
+ 0x47, 0xa7, 0x46, 0x08,
+ 0x66, 0xfd, 0x8f, 0x16, 0x0b, 0xcd, 0xd8, 0x2b, 0xb3, 0xc7, 0xdb, 0xfc,
+ 0x74, 0x6f, 0x66, 0x90,
+ 0x8a, 0xe9, 0xcb, 0xd3, 0x88, 0x0b, 0x7f, 0x34, 0xf0, 0x5f, 0xd8, 0x35,
+ 0xaf, 0x79, 0x8a, 0xeb,
+ 0xaa, 0xc4, 0x52, 0x3a, 0x1d, 0x94, 0xab, 0x7d, 0x16, 0x8a, 0xae, 0xc7,
+ 0x9c, 0xb1, 0xaa, 0x73,
+ 0xca, 0xb3, 0x3a, 0xc2, 0x61, 0xf6, 0x14, 0xa6, 0xff, 0x36, 0x34, 0x12,
+ 0xc9, 0x2a, 0xca, 0x18,
+ 0xea, 0x9e, 0xa3, 0x2b, 0xf4, 0x69, 0xc0, 0xef, 0x19, 0xe3, 0x42, 0xe0,
+ 0xfa, 0xe2, 0xea, 0x80,
+ 0x0a, 0x5d, 0xea, 0xf1, 0x99, 0x32, 0xa9, 0xd3, 0xee, 0x8d, 0xc3, 0x7b,
+ 0x63, 0xdf, 0x0a, 0xce,
+ 0x2a, 0x70, 0x73, 0x18, 0x0c, 0xad, 0x7d, 0x9a, 0x08, 0x58, 0xb5, 0x89,
+ 0x50, 0x17, 0x2a, 0x56,
+ 0x4a, 0x07, 0x1b, 0xe0, 0x70, 0xcf, 0xc2, 0x41, 0xe1, 0xe4, 0x2f, 0x5c,
+ 0x05, 0x8c, 0x4a, 0x3d,
+ 0x6a, 0x2a, 0x82, 0x09, 0xe5, 0x50, 0x16, 0x08, 0x07, 0x31, 0x59, 0xae,
+ 0x36, 0x44, 0x6a, 0xa5,
+ 0x49, 0x42, 0x89, 0x97, 0xaa, 0x79, 0x10, 0x39, 0xcc, 0x38, 0xee, 0xa9,
+ 0xf4, 0xf6, 0x49, 0xa1,
+ 0x69, 0x6f, 0x10, 0x7e, 0x3f, 0xe6, 0xc4, 0x70, 0x2a, 0xed, 0x98, 0x5b,
+ 0xc7, 0x3e, 0x69, 0x39,
+ 0x09, 0x18, 0x78, 0x86, 0x43, 0x84, 0x7b, 0xab, 0xc3, 0x51, 0x02, 0x8e,
+ 0x92, 0xa5, 0x09, 0x52,
+ 0x29, 0x35, 0xe1, 0x6f, 0xd6, 0x1b, 0xaf, 0xe2, 0x25, 0x84, 0x74, 0x7c,
+ 0xa1, 0x6d, 0x29, 0xca,
+ 0xc9, 0xf6, 0xa8, 0xb5, 0xbb, 0x40, 0xc6, 0xde, 0xd2, 0xea, 0xf5, 0xe7,
+ 0x38, 0x50, 0xc9, 0x84,
+ 0xe9, 0xdb, 0x31, 0x5c, 0x2e, 0xdf, 0x12, 0x97, 0x34, 0x3f, 0x83, 0x15,
+ 0x0b, 0x98, 0xe9, 0x1c,
+ 0x89, 0xac, 0x59, 0xa4, 0x52, 0xbd, 0xad, 0x4c, 0xdd, 0x83, 0x19, 0xc0,
+ 0x5e, 0x03, 0x89, 0x77,
+ 0xa9, 0x81, 0xc0, 0x4d, 0xc7, 0x22, 0x79, 0x05, 0x3b, 0x56, 0x6f, 0x32,
+ 0x6d, 0xcb, 0xa9, 0xef,
+ 0xcf, 0x7c, 0x4f, 0x5b, 0xcc, 0xef, 0xa1, 0x2e, 0x88, 0x91, 0xb4, 0xce,
+ 0x19, 0xa4, 0xcf, 0x7f,
+ 0xef, 0x51, 0xd6, 0xb2, 0x59, 0x70, 0x75, 0x67, 0x6e, 0x44, 0xc2, 0x3c,
+ 0x2a, 0x6c, 0xef, 0xe7,
+ 0x8f, 0x26, 0xbe, 0x4a, 0x25, 0x12, 0xca, 0xbc, 0x87, 0xf8, 0x58, 0xe9,
+ 0x7f, 0xf7, 0x8f, 0x8c,
+ 0xaf, 0x0b, 0x27, 0xa3, 0xb0, 0x8d, 0x1e, 0xf5, 0x61, 0x2d, 0x2e, 0x1b,
+ 0x4c, 0x3f, 0xaf, 0x14,
+ 0x4f, 0xc8, 0x6e, 0x79, 0xdd, 0xd6, 0x77, 0xc9, 0x96, 0x43, 0xaf, 0x80,
+ 0xd5, 0x02, 0x4f, 0x5a,
+ 0x6f, 0xe5, 0xf7, 0x90, 0x48, 0x49, 0xa3, 0x80, 0x70, 0x96, 0xd9, 0x72,
+ 0xe6, 0xca, 0x6f, 0xc2,
+ 0x0f, 0x92, 0x9f, 0x68, 0x34, 0x2b, 0x1c, 0x5b, 0x99, 0x2a, 0x43, 0xa7,
+ 0xb3, 0x51, 0x0f, 0xa9,
+ 0x2f, 0xbf, 0x06, 0x81, 0xa1, 0xb4, 0xc8, 0x12, 0x7f, 0xff, 0x35, 0x55,
+ 0x80, 0x99, 0x2f, 0x31,
+ 0x0c, 0xd7, 0x0d, 0x1f, 0xee, 0x9d, 0xce, 0x23, 0xb4, 0xf6, 0x82, 0x52,
+ 0x42, 0x2b, 0x0c, 0x35,
+ 0x2c, 0xfa, 0x94, 0xf6, 0x7b, 0x02, 0x1a, 0x6a, 0x52, 0x23, 0xf4, 0xa0,
+ 0x71, 0xe3, 0x2c, 0xad,
+ 0x4c, 0x8d, 0xfc, 0x0e, 0x07, 0x60, 0xa5, 0xb1, 0xbb, 0x9f, 0x6e, 0x75,
+ 0x24, 0x78, 0x4c, 0xc6,
+ 0x6c, 0xa0, 0x65, 0xe7, 0x92, 0xff, 0x71, 0xf8, 0x5d, 0x4a, 0x18, 0x87,
+ 0x17, 0xb0, 0x6c, 0x5e,
+ 0x8c, 0x63, 0x2c, 0x3d, 0xff, 0xa4, 0x18, 0xc4, 0xaa, 0x24, 0x99, 0x1c,
+ 0x8e, 0x8d, 0x8c, 0x10,
+ 0xac, 0x4e, 0xb5, 0xd4, 0x6a, 0x3b, 0xcc, 0x8d, 0x4c, 0xf1, 0xef, 0xee,
+ 0xbd, 0x45, 0xac, 0x88,
+ 0xcc, 0x39, 0xdd, 0x2c, 0x16, 0x59, 0x73, 0x56, 0xa5, 0x4d, 0x75, 0x3b,
+ 0xe8, 0xde, 0xcc, 0xe3,
+ 0xec, 0x14, 0x44, 0xc5, 0x83, 0xc6, 0xa7, 0x1f, 0x43, 0x98, 0x03, 0xc9,
+ 0xdb, 0x16, 0xec, 0x7b,
+ 0xd7, 0x11, 0x55, 0x65, 0xd3, 0x16, 0xfe, 0x68, 0x23, 0xbe, 0x73, 0x6a,
+ 0x9d, 0xf2, 0xd7, 0x15,
+ 0xf7, 0x3c, 0xcc, 0x8c, 0x46, 0x89, 0x2a, 0x21, 0xc5, 0x6b, 0x05, 0x98,
+ 0xae, 0x3a, 0xf7, 0x8d,
+ 0x97, 0x4b, 0xa4, 0x74, 0x3a, 0xeb, 0x95, 0xfa, 0x2c, 0xd7, 0x9f, 0x4d,
+ 0xfb, 0xa1, 0x97, 0xe6,
+ 0xb7, 0x66, 0x3d, 0x9d, 0xaf, 0x74, 0x41, 0xb3, 0xca, 0x02, 0xe9, 0xbf,
+ 0xc8, 0x69, 0xb7, 0x7e,
+ 0x57, 0xa5, 0x74, 0x47, 0xc2, 0x2f, 0x28, 0x8f, 0x3d, 0x6c, 0x68, 0x24,
+ 0x51, 0x54, 0x57, 0x30,
+ 0x77, 0x88, 0xed, 0xae, 0x57, 0xb0, 0xfc, 0xc6, 0xdb, 0xb9, 0x1e, 0xd6,
+ 0x62, 0x9c, 0x77, 0xa8,
+ 0x17, 0xff, 0x85, 0x56, 0x2b, 0xd2, 0x43, 0x1d, 0x32, 0x05, 0x84, 0x03,
+ 0x37, 0x07, 0x17, 0xc3,
+ 0x37, 0xd2, 0x1c, 0xbf, 0xbe, 0x4d, 0x97, 0x54, 0xd4, 0xd0, 0xf2, 0xf1,
+ 0x04, 0xcf, 0x37, 0x5b,
+ 0x14, 0xba, 0x17, 0x21, 0xf1, 0x64, 0x91, 0x65, 0x1f, 0xd9, 0x45, 0xf6,
+ 0xc6, 0x7d, 0x14, 0x5f,
+ 0x34, 0x97, 0x8e, 0xc8, 0x64, 0xfb, 0x45, 0x2c, 0xf9, 0x0c, 0x33, 0x04,
+ 0xf5, 0xb5, 0x34, 0xc7,
+ 0x54, 0xe0, 0xe6, 0x30, 0x18, 0x99, 0xfa, 0xf7, 0x10, 0xb0, 0xa9, 0xd1,
+ 0xa0, 0x2e, 0x54, 0xac,
+ 0x74, 0xcd, 0x7f, 0xd9, 0x8d, 0x06, 0x2e, 0xbe, 0xf6, 0x65, 0xdf, 0x23,
+ 0x93, 0xe6, 0x74, 0x34,
+ 0x94, 0x0e, 0x36, 0x03, 0xe0, 0x5d, 0x47, 0x82, 0x01, 0x0b, 0x5e, 0xb8,
+ 0x0a, 0xdb, 0x94, 0x7a,
+ 0xb4, 0x23, 0xaf, 0xea, 0x75, 0xc2, 0x93, 0xcb, 0xe7, 0xde, 0x28, 0x4a,
+ 0x39, 0x13, 0xb4, 0xe2,
+ 0xd4, 0x54, 0xc7, 0x12, 0x09, 0xa0, 0x2c, 0x10, 0x0e, 0x62, 0xb2, 0x9f,
+ 0x6c, 0x88, 0xd4, 0x89,
+ 0xf4, 0x79, 0x5e, 0xfb, 0x9c, 0x3f, 0xf8, 0x59, 0xe8, 0xb7, 0xc4, 0x6d,
+ 0x5f, 0x40, 0xf4, 0x11,
+ 0x92, 0x84, 0xd1, 0xed, 0x97, 0xf2, 0x20, 0x72, 0x5b, 0x70, 0x1f, 0x91,
+ 0x2b, 0x2f, 0x92, 0x81,
+ 0xb2, 0xa9, 0x48, 0x04, 0x02, 0x6d, 0xf4, 0x3b, 0xbd, 0xa5, 0x69, 0x63,
+ 0x18, 0xe7, 0xb2, 0x19,
+ 0xd2, 0xde, 0x20, 0xfc, 0x7e, 0x0f, 0x4b, 0xe0, 0x54, 0x19, 0xf3, 0xb6,
+ 0x4d, 0x7c, 0xd2, 0x72,
+ 0xf2, 0xf3, 0xb9, 0x15, 0xeb, 0x90, 0x9f, 0xa9, 0xb2, 0xcc, 0x85, 0x44,
+ 0x7e, 0xb4, 0xf2, 0xea,
+ 0x12, 0x30, 0xf0, 0xcf, 0x86, 0xcb, 0xf6, 0x95, 0x45, 0xa2, 0x04, 0xdf,
+ 0xe7, 0x89, 0x12, 0xa4,
+ 0x32, 0x1d, 0x69, 0x26, 0x13, 0x54, 0x22, 0xdc, 0xa3, 0x77, 0x72, 0x2d,
+ 0xd4, 0x41, 0x32, 0x3c,
+ 0x52, 0x6a, 0x01, 0xde, 0x6f, 0x36, 0x9d, 0x07, 0x4a, 0xcb, 0xe8, 0xf8,
+ 0x81, 0xda, 0x52, 0x57,
+ 0x72, 0x47, 0x98, 0x37, 0xfa, 0xa9, 0x49, 0x4e, 0xac, 0x1e, 0x9e, 0x0a,
+ 0xb2, 0x12, 0x72, 0xcf,
+ 0x51, 0x2f, 0x93, 0xa9, 0xb5, 0x80, 0x4f, 0x7f, 0x67, 0x17, 0x29, 0x0d,
+ 0x70, 0xa0, 0x51, 0xcb,
+ 0x71, 0x02, 0x0a, 0x40, 0x20, 0x1f, 0x9b, 0x36, 0x81, 0xc2, 0x5f, 0xff,
+ 0x43, 0x68, 0x71, 0x53,
+ 0x11, 0x75, 0x62, 0xb8, 0x5c, 0x7d, 0x24, 0xed, 0x68, 0x7e, 0xc5, 0x2a,
+ 0x16, 0xf3, 0x11, 0x38,
+ 0x31, 0x58, 0xfb, 0x51, 0xc9, 0xe2, 0xf0, 0xa4, 0x8e, 0xab, 0xb3, 0xd8,
+ 0x25, 0x3b, 0x31, 0xa0,
+ 0xd1, 0x9b, 0xb2, 0x8b, 0xa4, 0xb9, 0x99, 0x98, 0x79, 0xc5, 0x32, 0x43,
+ 0xbc, 0x06, 0xd1, 0xee,
+ 0xf1, 0xb6, 0x2b, 0x62, 0x31, 0x26, 0x4d, 0xd1, 0x9f, 0x10, 0x44, 0xb1,
+ 0x8f, 0xce, 0xf1, 0x76,
+ 0x91, 0xc1, 0x43, 0x9a, 0x4d, 0x44, 0xf2, 0x0a, 0x76, 0xac, 0xde, 0x64,
+ 0xda, 0x55, 0x91, 0x1d,
+ 0xb1, 0xec, 0xda, 0x73, 0xd8, 0xdb, 0x26, 0x43, 0x90, 0x79, 0xa8, 0x96,
+ 0xe9, 0x9d, 0xb1, 0x85,
+ 0x5d, 0xf8, 0x9e, 0xb6, 0x5b, 0x1d, 0x81, 0x5c, 0xd3, 0xe1, 0xab, 0x5f,
+ 0x32, 0x8b, 0x5d, 0xfe,
+ 0x7d, 0xd5, 0x07, 0x5f, 0xce, 0x82, 0x55, 0x15, 0x35, 0x34, 0xdd, 0xad,
+ 0x01, 0x43, 0x7d, 0x66,
+ 0x1d, 0xa2, 0x6f, 0xa7, 0xb2, 0xe0, 0xea, 0xce, 0xdc, 0x88, 0x47, 0x78,
+ 0x54, 0xd8, 0x1d, 0x0d,
+ 0x3d, 0x8f, 0xf6, 0x4e, 0x27, 0x7f, 0x3e, 0x87, 0x3a, 0x5d, 0x31, 0x8a,
+ 0x67, 0x10, 0x3d, 0x95,
+ 0xdd, 0x4c, 0xbf, 0x94, 0x4a, 0x24, 0x57, 0xbb, 0xcd, 0x33, 0xb0, 0x11,
+ 0xfe, 0x2d, 0xdd, 0xdb,
+ 0xfd, 0x61, 0x26, 0x7d, 0xdf, 0xbb, 0x83, 0xf2, 0x2b, 0xe6, 0xc6, 0xe3,
+ 0xcd, 0xe5, 0xfd, 0x43,
+ 0x9d, 0x16, 0x4e, 0x85, 0xa3, 0xd9, 0x3c, 0x29, 0xc2, 0x5a, 0x5c, 0x36,
+ 0x98, 0x7e, 0x9d, 0x28,
+ 0xbd, 0x3b, 0xd7, 0x6c, 0x36, 0x46, 0xe8, 0x60, 0x24, 0x8f, 0x2a, 0xc4,
+ 0xab, 0xb6, 0xbd, 0xb0,
+ 0x9e, 0x53, 0xdc, 0xf2, 0x79, 0x6f, 0xee, 0x51, 0xef, 0x86, 0x9d, 0xc3,
+ 0x69, 0x04, 0x9e, 0xb4,
+ 0xbe, 0x7e, 0x45, 0x1b, 0xec, 0xf0, 0x3a, 0x18, 0x09, 0x53, 0xeb, 0x31,
+ 0x5a, 0xcc, 0xbe, 0x2c,
+ 0xde, 0x09, 0x2d, 0xe3, 0x90, 0x92, 0x85, 0xc3, 0xe0, 0xef, 0x71, 0xe4,
+ 0x0f, 0x57, 0xde, 0x47,
+ 0xfe, 0x24, 0xb4, 0x0a, 0x05, 0x0d, 0x51, 0x8a, 0x06, 0x3a, 0x07, 0x16,
+ 0x3c, 0x9f, 0xfe, 0xdf,
+ 0x1e, 0xe7, 0xfd, 0xd0, 0x68, 0x56, 0x38, 0xb6, 0xf1, 0x54, 0x86, 0x8d,
+ 0xa5, 0xa2, 0x1e, 0x91,
+ 0x3e, 0xca, 0x64, 0x39, 0xfd, 0xc9, 0xec, 0xff, 0x17, 0x81, 0xf0, 0x7f,
+ 0x96, 0x6a, 0x3e, 0x09,
+ 0x5e, 0xbd, 0x0c, 0xc1, 0x81, 0xab, 0x53, 0x24, 0xfe, 0x3d, 0x6a, 0xaa,
+ 0xc3, 0xf1, 0x5e, 0x62,
+ 0x7e, 0x90, 0x95, 0x28, 0x14, 0x34, 0x87, 0x6d, 0x18, 0xe8, 0x1c, 0x58,
+ 0xf0, 0x39, 0x7e, 0xfa,
+ 0x18, 0x6d, 0x1a, 0x3e, 0x1f, 0xf9, 0x5f, 0x46, 0xab, 0x2f, 0xc7, 0xa4,
+ 0x84, 0x56, 0x18, 0x6a,
+ 0x38, 0x40, 0x83, 0xd7, 0x8a, 0x66, 0x8b, 0x0f, 0x4d, 0xfa, 0xb1, 0x56,
+ 0xb7, 0x9e, 0x38, 0xf2,
+ 0x58, 0x37, 0xeb, 0x2f, 0xf6, 0x04, 0x34, 0xd4, 0xa4, 0x46, 0x2b, 0x83,
+ 0xe2, 0x05, 0x58, 0x99,
+ 0x78, 0x1a, 0x72, 0xc6, 0x63, 0x9b, 0xe0, 0x9d, 0x42, 0x93, 0x5d, 0x71,
+ 0xd1, 0xcd, 0x78, 0x01,
+ 0x98, 0xd9, 0x3b, 0x1c, 0x0e, 0xc0, 0x89, 0xa1, 0xb5, 0xfd, 0xdc, 0xea,
+ 0x48, 0xf0, 0x98, 0x4f,
+ 0xb8, 0xf4, 0xa2, 0xf5, 0x9b, 0x5f, 0x5d, 0xe8, 0x53, 0x28, 0xaa, 0x18,
+ 0x7b, 0x38, 0xb8, 0xd7,
+ 0xd8, 0x83, 0xca, 0x0d, 0xe7, 0x3d, 0xe2, 0x33, 0xba, 0x94, 0x30, 0xcd,
+ 0x2e, 0xa3, 0xd8, 0xbc,
+ 0xf8, 0xae, 0x53, 0xe4, 0x72, 0xa2, 0x36, 0x7a, 0x5c, 0x41, 0x46, 0x3f,
+ 0x1d, 0x6b, 0xf8, 0x24,
+ 0xdb, 0xc6, 0x58, 0x7a, 0x3d, 0x8b, 0x30, 0x4b, 0x97, 0x48, 0xf1, 0x38,
+ 0xdf, 0xd9, 0xdb, 0x20,
+ 0xfb, 0xeb, 0xc1, 0x93, 0xa8, 0x14, 0xe4, 0x02, 0x71, 0x9d, 0x87, 0xca,
+ 0xec, 0x11, 0xfb, 0xb8,
+ 0x9b, 0x9c, 0xa9, 0x6b, 0xd4, 0x76, 0x5b, 0xd9, 0x98, 0x21, 0x1d, 0x1f,
+ 0xb9, 0x8a, 0x9b, 0xd3,
+ 0xbb, 0xb1, 0x30, 0x82, 0x41, 0xe9, 0x8f, 0x90, 0x7e, 0xf4, 0x6b, 0xed,
+ 0x8a, 0x42, 0xbb, 0x4b,
+ 0x5b, 0x72, 0x79, 0x58, 0x2c, 0xb2, 0xe6, 0xac, 0x89, 0x9a, 0xea, 0x76,
+ 0x13, 0x7f, 0x5b, 0x05,
+ 0x7b, 0x5f, 0xe0, 0xb1, 0xb9, 0x2d, 0x32, 0xe5, 0x6f, 0x4f, 0x9c, 0x84,
+ 0x20, 0xb7, 0x7b, 0x9d,
+ 0x1b, 0x28, 0x88, 0x49, 0xc5, 0x4f, 0x8d, 0x3e, 0x86, 0xf3, 0x06, 0x51,
+ 0x75, 0x2c, 0x1b, 0xf6,
+ 0x3b, 0x05, 0x11, 0xa0, 0x50, 0xd0, 0x59, 0x77, 0x60, 0x26, 0x70, 0xa3,
+ 0x46, 0xe4, 0x3b, 0x6e,
+ 0x6d, 0x22, 0xaa, 0xca, 0x65, 0x2c, 0x3f, 0xd0, 0x46, 0xbf, 0xe6, 0xd4,
+ 0xf9, 0x27, 0x6d, 0x2a,
+ 0x4d, 0x0f, 0x33, 0x23, 0xf0, 0xb3, 0xeb, 0x99, 0xa0, 0x6a, 0x90, 0x26,
+ 0xca, 0xef, 0x4d, 0xb2,
+ 0x2d, 0x78, 0x5b, 0xdb, 0x8c, 0xd1, 0x54, 0x42, 0x49, 0xd6, 0x0a, 0xf3,
+ 0x9f, 0x74, 0x2d, 0xd9,
+ 0x0d, 0x55, 0xc2, 0x32, 0x19, 0x4e, 0x80, 0x0b, 0xaf, 0x03, 0x7c, 0x01,
+ 0xac, 0xbc, 0x0d, 0x41,
+ 0xed, 0x96, 0x8b, 0xe8, 0x74, 0x15, 0xe9, 0x37, 0x58, 0x6d, 0xfd, 0x9a,
+ 0x35, 0x81, 0xed, 0x0f,
+ 0xcd, 0xbb, 0x12, 0x01, 0xe1, 0x8a, 0x3d, 0x7e, 0xbe, 0xb8, 0x8b, 0x68,
+ 0x06, 0x49, 0xcd, 0x97,
+ 0xad, 0xcc, 0x7a, 0xf9, 0x9d, 0xe8, 0x82, 0xa5, 0x57, 0x04, 0x11, 0xbd,
+ 0x53, 0xd2, 0xad, 0xfc,
+ 0x8d, 0xe1, 0xe3, 0x10, 0x08, 0x77, 0x56, 0xec, 0xb1, 0xd1, 0x67, 0x4f,
+ 0x60, 0x1a, 0x8d, 0x64,
+ 0xae, 0x89, 0xe8, 0x8e, 0x47, 0x5e, 0x50, 0xdd, 0x7a, 0xd8, 0xd0, 0x48,
+ 0xa2, 0xa8, 0xae, 0x60,
+ 0x8e, 0xa4, 0x71, 0x67, 0xd2, 0xc1, 0x84, 0x94, 0x9c, 0x0d, 0xa6, 0xba,
+ 0x91, 0x60, 0x8e, 0xf8,
+ 0xee, 0xd3, 0x19, 0x9f, 0xae, 0xa3, 0x3b, 0x4f, 0x75, 0xb1, 0x3c, 0x6f,
+ 0xc4, 0xfb, 0xee, 0x93,
+ 0xce, 0xfe, 0x80, 0x76, 0x3b, 0x3c, 0xef, 0x06, 0x93, 0x64, 0x4a, 0x9d,
+ 0xf7, 0x33, 0xce, 0x0b,
+ 0x2e, 0x3d, 0xc9, 0xac, 0x56, 0x67, 0x86, 0x3a, 0x64, 0x0a, 0xcb, 0x06,
+ 0x6e, 0x0e, 0x2e, 0x45,
+ 0x0e, 0x10, 0x50, 0x45, 0xc3, 0xf8, 0x52, 0x73, 0x82, 0xdf, 0xbd, 0xf4,
+ 0x5d, 0xc6, 0x0e, 0xdd,
+ 0x6e, 0x67, 0x38, 0xbd, 0xbf, 0x9a, 0xed, 0xa8, 0x6b, 0x63, 0x27, 0x21,
+ 0x08, 0x5d, 0x6e, 0xb6,
+ 0x4e, 0x4a, 0xa1, 0x54, 0x2a, 0x05, 0x39, 0xe1, 0x8d, 0xb6, 0x51, 0xd3,
+ 0x3b, 0x95, 0x4e, 0x2e,
+ 0x28, 0xb7, 0x2e, 0x42, 0x21, 0xc8, 0xe1, 0xca, 0x3e, 0x71, 0x8a, 0x2f,
+ 0x4f, 0xfa, 0x28, 0xbe,
+ 0x08, 0x9a, 0xb7, 0xab, 0xb4, 0x57, 0x35, 0x83, 0xd8, 0xa4, 0xfc, 0xdd,
+ 0x7c, 0x32, 0x08, 0x26,
+ 0x68, 0xed, 0xdf, 0x53, 0xc8, 0x35, 0x8a, 0x58, 0x31, 0x18, 0x66, 0x08,
+ 0x29, 0xa9, 0x68, 0x4d,
+ 0x48, 0xc0, 0x46, 0xba, 0x5d, 0xaa, 0x5e, 0x11, 0xd7, 0xcd, 0x10, 0xfa,
+ 0x1a, 0x61, 0x48, 0xd5,
+ 0xa8, 0x03, 0x0f, 0x60, 0x30, 0xf1, 0x37, 0x2d, 0x20, 0xa3, 0x91, 0x61,
+ 0x83, 0x5c, 0xa8, 0x9b,
+ 0x88, 0x2e, 0x96, 0x89, 0xa5, 0x6e, 0xe3, 0x64, 0xc6, 0x76, 0xe7, 0x93,
+ 0xb0, 0x94, 0x88, 0x03,
+ 0xe8, 0x59, 0xfe, 0x71, 0xd9, 0x0c, 0x5c, 0xbf, 0x2f, 0xca, 0x7d, 0x46,
+ 0xe5, 0x0f, 0xe8, 0x68,
+ 0xc8, 0x74, 0x67, 0x98, 0x4c, 0x93, 0x88, 0xf6, 0xc9, 0x1f, 0x0b, 0xb4,
+ 0xd6, 0xc7, 0xc8, 0xf0,
+ 0xeb, 0x1c, 0x6c, 0x06, 0x03, 0xba, 0x8e, 0xc7, 0x02, 0x16, 0xbc, 0xb3,
+ 0x14, 0x75, 0xeb, 0xf4,
+ 0xcb, 0x31, 0xf5, 0xef, 0x96, 0x25, 0x5a, 0x8e, 0xe4, 0xc3, 0xca, 0x41,
+ 0x27, 0xbd, 0xcb, 0x6c,
+ 0xab, 0x46, 0x9d, 0x17, 0xea, 0x47, 0xe5, 0x55, 0x0d, 0x7f, 0x50, 0x94,
+ 0x72, 0x26, 0xab, 0x07,
+ 0x8b, 0x6b, 0x04, 0xfe, 0x7f, 0xd8, 0x31, 0x1c, 0xeb, 0xaa, 0x26, 0x66,
+ 0x41, 0xee, 0x8b, 0x9f,
+ 0x6b, 0xa8, 0x4d, 0x24, 0x12, 0x83, 0x58, 0x20, 0x1c, 0xc4, 0xa7, 0xfd,
+ 0xd8, 0xd3, 0x6b, 0xd1,
+ 0x4b, 0x85, 0xd4, 0xcd, 0x87, 0x1c, 0x8c, 0x69, 0xfa, 0x11, 0xd1, 0x0f,
+ 0xeb, 0x1b, 0x4b, 0x49,
+ 0x2b, 0xf2, 0xbc, 0x35, 0xfb, 0x7e, 0x33, 0xb2, 0x13, 0xad, 0x4b, 0xda,
+ 0xbe, 0x80, 0x2b, 0x22,
+ 0x0b, 0xdf, 0x25, 0xdc, 0x6e, 0xe1, 0xe7, 0xfb, 0xf5, 0x78, 0x3d, 0x28,
+ 0x8d, 0x48, 0x0b, 0xba,
+ 0xe7, 0xcb, 0x61, 0x19, 0xed, 0x27, 0x40, 0xe4, 0xb6, 0xe0, 0x3e, 0xe1,
+ 0x56, 0x5e, 0xe7, 0xc1,
+ 0xc7, 0xe6, 0xf8, 0xf0, 0x78, 0xb8, 0x94, 0xad, 0x50, 0x35, 0x48, 0x13,
+ 0x65, 0x96, 0xc7, 0x59,
+ 0xa7, 0x91, 0x90, 0x08, 0x04, 0xda, 0x2b, 0x76, 0xb9, 0x89, 0xd2, 0xc6,
+ 0x30, 0x0d, 0xa7, 0x32,
+ 0x87, 0xbc, 0x09, 0xe1, 0x91, 0x45, 0xff, 0x3f, 0x5f, 0x5c, 0xa4, 0x34,
+ 0x03, 0xc5, 0x87, 0xaa,
+ 0x67, 0x7f, 0x40, 0x3b, 0xfc, 0x1e, 0x96, 0x03, 0xa8, 0x32, 0x25, 0xaf,
+ 0x9a, 0xf8, 0x67, 0xe4,
+ 0x47, 0x52, 0xd9, 0xd2, 0x69, 0x81, 0x42, 0x4a, 0x4e, 0xe7, 0x53, 0x5d,
+ 0xa9, 0x30, 0x47, 0x7c,
+ 0x27, 0x25, 0xb1, 0x2a, 0x15, 0xe3, 0xfd, 0x91, 0xa7, 0x5b, 0xc9, 0x88,
+ 0xfc, 0xab, 0x27, 0x17,
+ 0x07, 0x08, 0x28, 0xc3, 0x80, 0x7c, 0x29, 0xd8, 0x41, 0x8e, 0xbf, 0x7a,
+ 0xcf, 0x63, 0x07, 0x8f,
+ 0x24, 0x60, 0x23, 0x5d, 0xcf, 0x55, 0x2f, 0xe9, 0x8a, 0x87, 0x08, 0x7d,
+ 0x0d, 0xd1, 0x24, 0x8b,
+ 0x04, 0x4d, 0xba, 0xb4, 0x5a, 0xca, 0xfb, 0xa0, 0x6c, 0x52, 0x7e, 0x8f,
+ 0x3e, 0x19, 0x04, 0x13,
+ 0x64, 0x3a, 0xd2, 0x4c, 0x26, 0xa8, 0x44, 0x7b, 0x85, 0xee, 0xe4, 0x5a,
+ 0x6b, 0x82, 0x64, 0x78,
+ 0x44, 0x17, 0x4b, 0xa5, 0xb3, 0x37, 0x90, 0x32, 0x63, 0x3b, 0x92, 0xa8,
+ 0x58, 0x4a, 0x44, 0xe0,
+ 0xa4, 0xd4, 0x02, 0x7f, 0xde, 0x6c, 0xf9, 0x0e, 0x94, 0x55, 0x13, 0x33,
+ 0xc1, 0x77, 0xa4, 0xae,
+ 0x84, 0xf9, 0x9b, 0x96, 0x4b, 0xf3, 0x2d, 0x47, 0x72, 0x80, 0x65, 0xc1,
+ 0xf2, 0xbf, 0x84, 0x36,
+ 0xe4, 0x8e, 0xf3, 0x6e, 0x37, 0x91, 0x92, 0x9c, 0x9b, 0x3c, 0xff, 0x14,
+ 0xa7, 0x24, 0xe4, 0x5d,
+ 0xc4, 0xa3, 0x6a, 0x87, 0xa2, 0x0e, 0x46, 0xd5, 0x7d, 0xe9, 0x89, 0xe6,
+ 0x94, 0xec, 0xc4, 0xc5,
+ 0xa2, 0x5e, 0xe5, 0x91, 0xa9, 0xc3, 0x9e, 0xfe, 0xce, 0x2e, 0x52, 0x1a,
+ 0xe0, 0x83, 0xa2, 0x55,
+ 0x82, 0x73, 0x7c, 0x78, 0x3c, 0x5c, 0x4a, 0xb7, 0x28, 0xfb, 0x24, 0xe8,
+ 0xd3, 0x4b, 0x82, 0xcd,
+ 0xe2, 0x04, 0x14, 0x80, 0x40, 0x3e, 0xf5, 0x6c, 0xc1, 0x47, 0xbe, 0x3d,
+ 0x86, 0xd0, 0xe2, 0xa6,
+ 0xc2, 0x29, 0x8d, 0x69, 0xd5, 0xa1, 0x21, 0x25, 0x27, 0x92, 0xc8, 0xcf,
+ 0xb5, 0x18, 0xc2, 0x3e,
+ 0x22, 0xea, 0xc4, 0xb3, 0xb8, 0xfa, 0x48, 0x19, 0xd0, 0xfc, 0x49, 0x54,
+ 0x2c, 0x25, 0x22, 0x70,
+ 0x02, 0xc7, 0x5d, 0x5a, 0x2d, 0x65, 0x9c, 0x50, 0x36, 0x29, 0x3f, 0xa6,
+ 0x1f, 0xed, 0x02, 0xe8,
+ 0x62, 0xb0, 0x35, 0xa2, 0x51, 0x07, 0x23, 0x8b, 0xdf, 0x95, 0xa5, 0x73,
+ 0x4a, 0x76, 0x62, 0x83,
+ 0x42, 0x9d, 0xac, 0x4b, 0xc4, 0x98, 0xf7, 0xc2, 0x39, 0x40, 0xd3, 0x81,
+ 0x79, 0xbe, 0x42, 0x1b,
+ 0x61, 0xf5, 0xa7, 0xd5, 0x8b, 0xb1, 0xf1, 0xf3, 0xf2, 0x49, 0x64, 0x86,
+ 0xbb, 0x0c, 0x61, 0x1f,
+ 0x41, 0xd8, 0x3e, 0x3c, 0x1e, 0x2e, 0x25, 0xba, 0x14, 0x9c, 0x12, 0x74,
+ 0x88, 0xc4, 0x41, 0x87,
+ 0x21, 0xaf, 0x56, 0xc4, 0x62, 0x4c, 0x9a, 0x61, 0xfd, 0x20, 0x88, 0xa1,
+ 0xdd, 0x5f, 0x21, 0xec,
+ 0x01, 0x82, 0xcf, 0x2d, 0xf7, 0xd3, 0x4e, 0x28, 0x1b, 0xf5, 0xfe, 0x53,
+ 0xee, 0x97, 0x01, 0x74,
+ 0xe1, 0x41, 0x86, 0xf7, 0x9a, 0x88, 0x27, 0x14, 0xec, 0x9b, 0x7f, 0xc8,
+ 0x77, 0xaa, 0xe1, 0x3a,
+ 0xc1, 0x6c, 0x1f, 0x1e, 0x0f, 0x17, 0xf3, 0x5d, 0x0a, 0x4e, 0x09, 0x3a,
+ 0x44, 0x62, 0xc1, 0xa2,
+ 0xa1, 0x1b, 0x77, 0xe6, 0x73, 0x75, 0x4c, 0x86, 0xe3, 0xf2, 0x93, 0xef,
+ 0x11, 0xf9, 0xa1, 0xc9,
+ 0x81, 0x36, 0xee, 0x0f, 0xe6, 0xea, 0x98, 0xcf, 0x05, 0x27, 0xe5, 0x1d,
+ 0x22, 0x31, 0x81, 0x51,
+ 0xba, 0x33, 0xff, 0xaf, 0xb6, 0x3a, 0xc1, 0xb8, 0x65, 0x01, 0x95, 0xbe,
+ 0x64, 0xd5, 0xba, 0x3f,
+ 0x9a, 0x1e, 0x66, 0x46, 0x23, 0xa5, 0x15, 0xf1, 0x83, 0xd4, 0xe3, 0x4c,
+ 0x57, 0x1d, 0x9a, 0xa7,
+ 0xfa, 0x69, 0x0e, 0xbe, 0x5f, 0xc7, 0xaa, 0x2a, 0x6a, 0x68, 0x79, 0x99,
+ 0x02, 0x86, 0xfa, 0xcc,
+ 0xda, 0x44, 0x97, 0x57, 0xca, 0x58, 0x7e, 0x63, 0x8c, 0xbd, 0x0f, 0x6b,
+ 0x31, 0x4e, 0xda, 0x54,
+ 0x3a, 0x87, 0xde, 0x8d, 0xa7, 0x03, 0x17, 0x5f, 0x7b, 0xd3, 0x8e, 0xf0,
+ 0xa8, 0x73, 0x3a, 0x1a,
+ 0x1a, 0xaa, 0x47, 0x64, 0x32, 0x9c, 0xc3, 0x16, 0x9d, 0x06, 0xf8, 0x02,
+ 0x9b, 0xbb, 0x1a, 0x82,
+ 0x7a, 0xdd, 0x2f, 0x9c, 0x4e, 0xfe, 0x7c, 0xcd, 0x74, 0xba, 0x62, 0xd7,
+ 0xce, 0x20, 0x7a, 0xe9,
+ 0x5a, 0xf0, 0xb6, 0x75, 0xdb, 0x61, 0xa8, 0x84, 0x92, 0x6f, 0x14, 0x25,
+ 0xfd, 0xe8, 0x5a, 0x71,
+ 0x79, 0x98, 0xbd, 0xeb, 0x94, 0x48, 0xae, 0xb5, 0x59, 0x66, 0xa3, 0x22,
+ 0x3f, 0x5a, 0x79, 0x75,
+ 0x59, 0xb5, 0x24, 0x02, 0x01, 0xd7, 0x7a, 0xfc, 0xbf, 0xb3, 0xd5, 0xd0,
+ 0x0c, 0x92, 0x59, 0xed,
+ 0x39, 0xc2, 0x4c, 0xfa, 0x7d, 0xb5, 0xc5, 0x27, 0x56, 0x0f, 0x4f, 0x05,
+ 0x59, 0x09, 0x39, 0x86,
+ 0x19, 0xef, 0xd5, 0x13, 0xe8, 0x2a, 0x11, 0x6e, 0xb0, 0xda, 0x39, 0xf7,
+ 0x6a, 0xc1, 0x19, 0x1e,
+ 0xf9, 0x2c, 0x9c, 0xc9, 0x85, 0x71, 0x78, 0x52, 0x47, 0xb4, 0xb8, 0x6c,
+ 0xf3, 0xfc, 0xf9, 0x50,
+ 0xd9, 0x01, 0x05, 0x20, 0x10, 0xee, 0xac, 0x1b, 0xa1, 0x61, 0xce, 0x9e,
+ 0xc0, 0x34, 0xd9, 0xc8,
+ 0xb9, 0x76, 0x6d, 0xd8, 0x6c, 0x8c, 0x13, 0xc0, 0x48, 0xdd, 0x54, 0x4b,
+ 0x95, 0xaf, 0xb9, 0xa3,
+ 0x99, 0x5b, 0xf4, 0x31, 0xf9, 0x13, 0xc7, 0x89, 0xae, 0x08, 0x22, 0xb9,
+ 0xa6, 0x67, 0x99, 0x3b,
+ 0xff, 0xa6, 0x7b, 0x27, 0xf2, 0xde, 0x1f, 0xa2, 0x1d, 0xcf, 0xf9, 0x45,
+ 0xd2, 0x08, 0xff, 0xab,
+ 0xdf, 0x8b, 0xe2, 0xce, 0x67, 0x41, 0xcb, 0xeb, 0xfb, 0x1a, 0x8f, 0xb7,
+ 0xe1, 0xc0, 0xdf, 0x33,
+ 0xbf, 0xfc, 0x8a, 0x36, 0x1b, 0x23, 0x74, 0x30, 0x12, 0xa6, 0x15, 0x62,
+ 0xb4, 0x5b, 0xbf, 0x58,
+ 0x9f, 0xd1, 0x13, 0xdf, 0x8e, 0xbc, 0xa0, 0x79, 0xf4, 0x73, 0x63, 0x90,
+ 0x87, 0x93, 0x9f, 0xc0,
+ 0x7f, 0x12, 0x5a, 0x05, 0xe3, 0xe7, 0xc9, 0x45, 0x03, 0x1d, 0xe2, 0x0b,
+ 0x1e, 0xae, 0x7f, 0x8e,
+ 0x5f, 0x3f, 0xc3, 0xec, 0x76, 0x78, 0x1d, 0x0c, 0xe5, 0xc8, 0x94, 0xf9,
+ 0x2d, 0x66, 0x5f, 0x16,
+ 0x3f, 0x48, 0xab, 0x14, 0x0a, 0x1a, 0xa2, 0xd7, 0x0c, 0x74, 0x0e, 0x2c,
+ 0x78, 0xfd, 0x3f, 0x7d,
+ 0x1f, 0x65, 0x32, 0xfd, 0x9f, 0x85, 0x76, 0x9e, 0xea, 0xa1, 0x78, 0xde,
+ 0x4b, 0x35, 0x1f, 0xe5,
+ 0x3c, 0x0d, 0x39, 0x63, 0xd0, 0xac, 0x70, 0xaf, 0x21, 0xa8, 0xcf, 0xd9,
+ 0x89, 0x87, 0x3c, 0xe1,
+ 0x1c, 0x20, 0xa0, 0x8a, 0x45, 0x33, 0xa4, 0xe6, 0xc7, 0x7d, 0xb9, 0x2b,
+ 0xba, 0x4f, 0x1c, 0x79,
+ 0x7c, 0x57, 0xc8, 0x72, 0x39, 0x51, 0x1b, 0x3d, 0x2e, 0xc1, 0x23, 0xfe,
+ 0xef, 0xd4, 0x7c, 0x12,
+ 0x5c, 0x7a, 0x51, 0x9b, 0xac, 0xce, 0xcf, 0x74, 0xc8, 0x14, 0x55, 0x0c,
+ 0xdc, 0x1c, 0x5c, 0x8a,
+ 0xbc, 0xb9, 0x18, 0x41, 0xc1, 0x95, 0xa6, 0x48, 0x3f, 0x7a, 0xd4, 0x97,
+ 0x45, 0x21, 0xbc, 0xc4,
+ 0x9c, 0x94, 0x81, 0xa8, 0x54, 0x0a, 0x72, 0x01, 0xd9, 0xaf, 0xa2, 0x65,
+ 0x76, 0xe9, 0x9c, 0x5c,
+ 0xfc, 0xe3, 0xe9, 0x50, 0x28, 0x68, 0xcd, 0xda, 0x30, 0x13, 0x38, 0xb0,
+ 0x23, 0x72, 0xfc, 0x37,
+ 0xdc, 0xce, 0x70, 0xb9, 0xbd, 0xf7, 0x19, 0x93, 0xd6, 0xc6, 0x4e, 0x42,
+ 0x10, 0xba, 0xdc, 0xaf,
+ 0x30, 0xda, 0x34, 0x7c, 0x3e, 0x31, 0xbe, 0x8c, 0x95, 0x5e, 0x4d, 0x8b,
+ 0xcb, 0xac, 0x30, 0xd4,
+ 0x10, 0xf7, 0xad, 0x95, 0xab, 0xae, 0x6a, 0xc5, 0x73, 0x8b, 0x3b, 0x79,
+ 0xf8, 0x64, 0x10, 0x4c,
+ 0x70, 0x80, 0xc5, 0x6d, 0xd7, 0xcc, 0xd5, 0x1e, 0x9a, 0x37, 0xa1, 0xac,
+ 0xad, 0xff, 0x70, 0x27,
+ 0x50, 0xad, 0x5c, 0x84, 0x42, 0x53, 0x01, 0x57, 0x7c, 0xe2, 0xd7, 0x5e,
+ 0x9e, 0x37, 0x50, 0xbf,
+ 0xb0, 0x6e, 0x15, 0x5e, 0x2f, 0x08, 0x68, 0x6b, 0x8b, 0x8c, 0x56, 0xc5,
+ 0x07, 0x0a, 0xb0, 0xf1,
+ 0x90, 0x43, 0x8c, 0xb7, 0xba, 0x97, 0xbc, 0x22, 0x6d, 0x59, 0x20, 0x37,
+ 0x34, 0xc2, 0x90, 0x69,
+ 0xf0, 0x34, 0xe4, 0x4f, 0xc6, 0xf5, 0x03, 0xf9, 0x84, 0xe5, 0xba, 0xe2,
+ 0x61, 0x59, 0xf0, 0x02,
+ 0xd0, 0x19, 0x7d, 0xa6, 0x53, 0x6a, 0xd7, 0xb0, 0x62, 0x30, 0xcc, 0x10,
+ 0x52, 0x91, 0xd0, 0x9a,
+ 0xf3, 0x71, 0x76, 0x38, 0x1c, 0x43, 0xd1, 0x81, 0xa9, 0x39, 0x7b, 0x17,
+ 0x90, 0x23, 0xf3, 0x9e,
+ 0xd3, 0x5c, 0xef, 0xd1, 0x89, 0xdc, 0x05, 0xc8, 0x4f, 0xec, 0x0d, 0xe5,
+ 0xa3, 0xeb, 0xd3, 0x06,
+ 0xb3, 0x2b, 0x87, 0x29, 0xf5, 0xbe, 0xba, 0x13, 0xa6, 0x50, 0x97, 0x30,
+ 0xf6, 0x70, 0xb3, 0x6d,
+ 0x93, 0x06, 0x1e, 0xc0, 0x60, 0x21, 0x6e, 0x5a, 0x40, 0x85, 0xe1, 0xc2,
+ 0xc5, 0xb8, 0x93, 0xf5,
+ 0x73, 0xc5, 0x57, 0x1a, 0x0d, 0x7a, 0x07, 0x66, 0xb7, 0xeb, 0x60, 0x59,
+ 0x5c, 0x85, 0x73, 0xbb,
+ 0x53, 0xe8, 0xce, 0xf3, 0x98, 0xe5, 0xd3, 0x2f, 0x51, 0x3e, 0x16, 0xab,
+ 0x6f, 0x4d, 0x53, 0x23,
+ 0x33, 0x9f, 0xa6, 0x0b, 0xe4, 0x87, 0x6c, 0xf4, 0xb8, 0x82, 0x8c, 0x7e,
+ 0x3a, 0xd6, 0x33, 0x48,
+ 0x13, 0xb2, 0x3f, 0xe2, 0x71, 0x18, 0xb8, 0xbd, 0x5e, 0x57, 0xfa, 0x8c,
+ 0x09, 0x1e, 0x13, 0xd0,
+ 0x75, 0x4f, 0xb0, 0xf4, 0x7a, 0xd5, 0x60, 0x96, 0xed, 0x90, 0x21, 0x70,
+ 0x7d, 0x71, 0x75, 0x40,
+ 0x55, 0x62, 0x29, 0x1d, 0xef, 0x4a, 0xb4, 0xdf, 0x0b, 0x45, 0x57, 0x82,
+ 0x4e, 0xb9, 0x55, 0xd8,
+ 0x35, 0x15, 0x41, 0xe5, 0x93, 0x28, 0x0b, 0x04, 0xe2, 0xf9, 0xcd, 0x57,
+ 0x1b, 0x22, 0x35, 0xb3,
+ 0x15, 0x38, 0xd8, 0x0c, 0x06, 0xb7, 0xdf, 0x4d, 0x04, 0x2c, 0xbb, 0xa5,
+ 0x28, 0xea, 0x15, 0x2b,
+ 0xf5, 0xfb, 0x91, 0xd6, 0x6b, 0xec, 0xb6, 0x71, 0xf3, 0x42, 0x3a, 0x3e,
+ 0xb1, 0xd7, 0xf5, 0x65,
+ 0xd5, 0xd6, 0x08, 0x3f, 0xfe, 0x73, 0x62, 0x38, 0x15, 0x97, 0x4c, 0xcc,
+ 0x82, 0x1f, 0xd5, 0xfd,
+ 0xb5, 0xa1, 0x60, 0xc7, 0x82, 0x11, 0xdd, 0xe3, 0xfc, 0x2b, 0xd6, 0x19,
+ 0xd7, 0x84, 0xb5, 0x96,
+ 0x95, 0x8c, 0xf9, 0x2e, 0x17, 0x8e, 0x09, 0xaa, 0x1a, 0xfe, 0xa0, 0xeb,
+ 0xe4, 0x4c, 0x95, 0x0e,
+ 0xb6, 0xe4, 0xf2, 0xb0, 0x58, 0xa7, 0x0f, 0x9b, 0xd1, 0xf7, 0x17, 0xec,
+ 0x26, 0xfe, 0xb6, 0x0a,
+ 0x96, 0xc9, 0x6b, 0x59, 0xcd, 0x38, 0xdb, 0xd2, 0x37, 0x22, 0x61, 0x1e,
+ 0x15, 0x36, 0x96, 0x92,
+ 0xf6, 0xbe, 0x03, 0xa1, 0xb1, 0x5a, 0x64, 0x09, 0xde, 0x9e, 0xfb, 0xcb,
+ 0x40, 0xad, 0xf6, 0xf9,
+ 0xd6, 0x93, 0x9a, 0x48, 0x24, 0xc5, 0xb0, 0x40, 0x38, 0x4b, 0x8d, 0x39,
+ 0x73, 0x65, 0xd6, 0x61,
+ 0x36, 0x50, 0xd3, 0x92, 0x49, 0x9e, 0xd9, 0x7c, 0xcf, 0x25, 0x0c, 0xa2,
+ 0xea, 0x58, 0x36, 0x2f,
+ 0x16, 0x7d, 0x4a, 0x7b, 0xdc, 0x01, 0x0d, 0x35, 0x29, 0xf0, 0x7a, 0x50,
+ 0xd9, 0x90, 0x16, 0xb7,
+ 0x76, 0x0a, 0x22, 0x83, 0xa0, 0x63, 0xb2, 0xee, 0xc0, 0x4c, 0xe0, 0x85,
+ 0x8c, 0x0b, 0x76, 0xdc,
+ 0x56, 0x27, 0xbb, 0x6a, 0x35, 0xfc, 0x66, 0xa7, 0x26, 0x99, 0x96, 0x77,
+ 0xbf, 0xc3, 0x56, 0x44,
+ },
+ { /* 15 */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c, 0x72,
+ 0x76, 0xa2, 0x6e, 0xcf,
+ 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8, 0xe4,
+ 0xec, 0x87, 0xdc, 0x5d,
+ 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4, 0x96,
+ 0x9a, 0x25, 0xb2, 0x92,
+ 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73, 0x0b,
+ 0x1b, 0xcd, 0x7b, 0xba,
+ 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f, 0x79,
+ 0x6d, 0x6f, 0x15, 0x75,
+ 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab, 0xef,
+ 0xf7, 0x4a, 0xa7, 0xe7,
+ 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7, 0x9d,
+ 0x81, 0xe8, 0xc9, 0x28,
+ 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6, 0x16,
+ 0x36, 0x59, 0xf6, 0xb7,
+ 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a, 0x64,
+ 0x40, 0xfb, 0x98, 0x78,
+ 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e, 0xf2,
+ 0xda, 0xde, 0x2a, 0xea,
+ 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52, 0x80,
+ 0xac, 0x7c, 0x44, 0x25,
+ 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95, 0x1d,
+ 0x2d, 0x94, 0x8d, 0x0d,
+ 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9, 0x6f,
+ 0x5b, 0x36, 0xe3, 0xc2,
+ 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d, 0xf9,
+ 0xc1, 0x13, 0x51, 0x50,
+ 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21, 0x8b,
+ 0xb7, 0xb1, 0x3f, 0x9f,
+ 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f, 0x2c,
+ 0x6c, 0xb2, 0x2f, 0xad,
+ 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63, 0x5e,
+ 0x1a, 0x10, 0x41, 0x62,
+ 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7, 0xc8,
+ 0x80, 0x35, 0xf3, 0xf0,
+ 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb, 0xba,
+ 0xf6, 0x97, 0x9d, 0x3f,
+ 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c, 0x27,
+ 0x77, 0x7f, 0x54, 0x17,
+ 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10, 0x55,
+ 0x01, 0xdd, 0x3a, 0xd8,
+ 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4, 0xc3,
+ 0x9b, 0xf8, 0x88, 0x4a,
+ 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8, 0xb1,
+ 0xed, 0x5a, 0xe6, 0x85,
+ 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9, 0x3a,
+ 0x5a, 0xeb, 0xd9, 0x1a,
+ 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85, 0x48,
+ 0x2c, 0x49, 0xb7, 0xd5,
+ 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31, 0xde,
+ 0xb6, 0x6c, 0x05, 0x47,
+ 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d, 0xac,
+ 0xc0, 0xce, 0x6b, 0x88,
+ 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a, 0x31,
+ 0x41, 0x26, 0xa2, 0xa0,
+ 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6, 0x43,
+ 0x37, 0x84, 0xcc, 0x6f,
+ 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42, 0xd5,
+ 0xad, 0xa1, 0x7e, 0xfd,
+ 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e, 0xa7,
+ 0xdb, 0x03, 0x10, 0x32,
+ 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e, 0x58,
+ 0xd8, 0xa7, 0x5e, 0x99,
+ 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72, 0x2a,
+ 0xae, 0x05, 0x30, 0x56,
+ 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6, 0xbc,
+ 0x34, 0x20, 0x82, 0xc4,
+ 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa, 0xce,
+ 0x42, 0x82, 0xec, 0x0b,
+ 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d, 0x53,
+ 0xc3, 0x6a, 0x25, 0x23,
+ 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01, 0x21,
+ 0xb5, 0xc8, 0x4b, 0xec,
+ 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5, 0xb7,
+ 0x2f, 0xed, 0xf9, 0x7e,
+ 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9, 0xc5,
+ 0x59, 0x4f, 0x97, 0xb1,
+ 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8, 0x4e,
+ 0xee, 0xfe, 0xa8, 0x2e,
+ 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94, 0x3c,
+ 0x98, 0x5c, 0xc6, 0xe1,
+ 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20, 0xaa,
+ 0x02, 0x79, 0x74, 0x73,
+ 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c, 0xd8,
+ 0x74, 0xdb, 0x1a, 0xbc,
+ 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b, 0x45,
+ 0xf5, 0x33, 0xd3, 0x94,
+ 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7, 0x37,
+ 0x83, 0x91, 0xbd, 0x5b,
+ 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53, 0xa1,
+ 0x19, 0xb4, 0x0f, 0xc9,
+ 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f, 0xd3,
+ 0x6f, 0x16, 0x61, 0x06,
+ 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11, 0x74,
+ 0xb4, 0x15, 0x71, 0x34,
+ 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d, 0x06,
+ 0xc2, 0xb7, 0x1f, 0xfb,
+ 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9, 0x90,
+ 0x58, 0x92, 0xad, 0x69,
+ 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5, 0xe2,
+ 0x2e, 0x30, 0xc3, 0xa6,
+ 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62, 0x7f,
+ 0xaf, 0xd8, 0x0a, 0x8e,
+ 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e, 0x0d,
+ 0xd9, 0x7a, 0x64, 0x41,
+ 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba, 0x9b,
+ 0x43, 0x5f, 0xd6, 0xd3,
+ 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6, 0xe9,
+ 0x35, 0xfd, 0xb8, 0x1c,
+ 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7, 0x62,
+ 0x82, 0x4c, 0x87, 0x83,
+ 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b, 0x10,
+ 0xf4, 0xee, 0xe9, 0x4c,
+ 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f, 0x86,
+ 0x6e, 0xcb, 0x5b, 0xde,
+ 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43, 0xf4,
+ 0x18, 0x69, 0x35, 0x11,
+ 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84, 0x69,
+ 0x99, 0x81, 0xfc, 0x39,
+ 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8, 0x1b,
+ 0xef, 0x23, 0x92, 0xf6,
+ 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c, 0x8d,
+ 0x75, 0x06, 0x20, 0x64,
+ 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30, 0xff,
+ 0x03, 0xa4, 0x4e, 0xab,
+ 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c, 0xb0,
+ 0x73, 0x8d, 0xbc, 0xf1,
+ 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50, 0xc2,
+ 0x05, 0x2f, 0xd2, 0x3e,
+ 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4, 0x54,
+ 0x9f, 0x0a, 0x60, 0xac,
+ 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88, 0x26,
+ 0xe9, 0xa8, 0x0e, 0x63,
+ 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f, 0xbb,
+ 0x68, 0x40, 0xc7, 0x4b,
+ 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23, 0xc9,
+ 0x1e, 0xe2, 0xa9, 0x84,
+ 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97, 0x5f,
+ 0x84, 0xc7, 0x1b, 0x16,
+ 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb, 0x2d,
+ 0xf2, 0x65, 0x75, 0xd9,
+ 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda, 0xa6,
+ 0x45, 0xd4, 0x4a, 0x46,
+ 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6, 0xd4,
+ 0x33, 0x76, 0x24, 0x89,
+ 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02, 0x42,
+ 0xa9, 0x53, 0x96, 0x1b,
+ 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e, 0x30,
+ 0xdf, 0xf1, 0xf8, 0xd4,
+ 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9, 0xad,
+ 0x5e, 0x19, 0x31, 0xfc,
+ 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5, 0xdf,
+ 0x28, 0xbb, 0x5f, 0x33,
+ 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71, 0x49,
+ 0xb2, 0x9e, 0xed, 0xa1,
+ 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d, 0x3b,
+ 0xc4, 0x3c, 0x83, 0x6e,
+ 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33, 0x9c,
+ 0x1f, 0x3f, 0x93, 0x5c,
+ 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f, 0xee,
+ 0x69, 0x9d, 0xfd, 0x93,
+ 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb, 0x78,
+ 0xf3, 0xb8, 0x4f, 0x01,
+ 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87, 0x0a,
+ 0x85, 0x1a, 0x21, 0xce,
+ 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40, 0x97,
+ 0x04, 0xf2, 0xe8, 0xe6,
+ 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c, 0xe5,
+ 0x72, 0x50, 0x86, 0x29,
+ 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98, 0x73,
+ 0xe8, 0x75, 0x34, 0xbb,
+ 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4, 0x01,
+ 0x9e, 0xd7, 0x5a, 0x74,
+ 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5, 0x8a,
+ 0x29, 0x66, 0x65, 0xeb,
+ 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9, 0xf8,
+ 0x5f, 0xc4, 0x0b, 0x24,
+ 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d, 0x6e,
+ 0xc5, 0xe1, 0xb9, 0xb6,
+ 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61, 0x1c,
+ 0xb3, 0x43, 0xd7, 0x79,
+ 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6, 0x81,
+ 0x32, 0xab, 0x1e, 0x51,
+ 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca, 0xf3,
+ 0x44, 0x09, 0x70, 0x9e,
+ 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e, 0x65,
+ 0xde, 0x2c, 0xc2, 0x0c,
+ 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12, 0x17,
+ 0xa8, 0x8e, 0xac, 0xc3,
+ 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22, 0xe8,
+ 0xab, 0x2a, 0xe2, 0x68,
+ 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e, 0x9a,
+ 0xdd, 0x88, 0x8c, 0xa7,
+ 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa, 0x0c,
+ 0x47, 0xad, 0x3e, 0x35,
+ 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96, 0x7e,
+ 0x31, 0x0f, 0x50, 0xfa,
+ 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51, 0xe3,
+ 0xb0, 0xe7, 0x99, 0xd2,
+ 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d, 0x91,
+ 0xc6, 0x45, 0xf7, 0x1d,
+ 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89, 0x07,
+ 0x5c, 0x60, 0x45, 0x8f,
+ 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5, 0x75,
+ 0x2a, 0xc2, 0x2b, 0x40,
+ 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4, 0xfe,
+ 0x9d, 0x73, 0x14, 0xdf,
+ 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8, 0x8c,
+ 0xeb, 0xd1, 0x7a, 0x10,
+ 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c, 0x1a,
+ 0x71, 0xf4, 0xc8, 0x82,
+ 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70, 0x68,
+ 0x07, 0x56, 0xa6, 0x4d,
+ 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7, 0xf5,
+ 0x86, 0xbe, 0x6f, 0x65,
+ 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb, 0x87,
+ 0xf0, 0x1c, 0x01, 0xaa,
+ 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f, 0x11,
+ 0x6a, 0x39, 0xb3, 0x38,
+ 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03, 0x63,
+ 0x1c, 0x9b, 0xdd, 0xf7,
+ 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d, 0xc4,
+ 0xc7, 0x98, 0xcd, 0xc5,
+ 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41, 0xb6,
+ 0xb1, 0x3a, 0xa3, 0x0a,
+ 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5, 0x20,
+ 0x2b, 0x1f, 0x11, 0x98,
+ 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99, 0x52,
+ 0x5d, 0xbd, 0x7f, 0x57,
+ 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e, 0xcf,
+ 0xdc, 0x55, 0xb6, 0x7f,
+ 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32, 0xbd,
+ 0xaa, 0xf7, 0xd8, 0xb0,
+ 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86, 0x2b,
+ 0x30, 0xd2, 0x6a, 0x22,
+ 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea, 0x59,
+ 0x46, 0x70, 0x04, 0xed,
+ 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb, 0xd2,
+ 0xf1, 0xc1, 0x3b, 0x72,
+ 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7, 0xa0,
+ 0x87, 0x63, 0x55, 0xbd,
+ 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13, 0x36,
+ 0x1d, 0x46, 0xe7, 0x2f,
+ 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f, 0x44,
+ 0x6b, 0xe4, 0x89, 0xe0,
+ 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8, 0xd9,
+ 0xea, 0x0c, 0x40, 0xc8,
+ 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4, 0xab,
+ 0x9c, 0xae, 0x2e, 0x07,
+ 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60, 0x3d,
+ 0x06, 0x8b, 0x9c, 0x95,
+ 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c, 0x4f,
+ 0x70, 0x29, 0xf2, 0x5a,
+ 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78, 0xa3,
+ 0xe6, 0xd9, 0xbb, 0x21,
+ 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14, 0xd1,
+ 0x90, 0x7b, 0xd5, 0xee,
+ 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0, 0x47,
+ 0x0a, 0x5e, 0x67, 0x7c,
+ 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc, 0x35,
+ 0x7c, 0xfc, 0x09, 0xb3,
+ 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b, 0xa8,
+ 0xfd, 0x14, 0xc0, 0x9b,
+ 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67, 0xda,
+ 0x8b, 0xb6, 0xae, 0x54,
+ 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3, 0x4c,
+ 0x11, 0x93, 0x1c, 0xc6,
+ 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf, 0x3e,
+ 0x67, 0x31, 0x72, 0x09,
+ 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e, 0xb5,
+ 0xd0, 0x80, 0x4d, 0x96,
+ 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2, 0xc7,
+ 0xa6, 0x22, 0x23, 0x59,
+ 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46, 0x51,
+ 0x3c, 0x07, 0x91, 0xcb,
+ 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a, 0x23,
+ 0x4a, 0xa5, 0xff, 0x04,
+ 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed, 0xbe,
+ 0xcb, 0x4d, 0x36, 0x2c,
+ 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81, 0xcc,
+ 0xbd, 0xef, 0x58, 0xe3,
+ 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35, 0x5a,
+ 0x27, 0xca, 0xea, 0x71,
+ 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59, 0x28,
+ 0x51, 0x68, 0x84, 0xbe,
+ 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77, 0x8f,
+ 0x8a, 0x6b, 0x94, 0x8c,
+ 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b, 0xfd,
+ 0xfc, 0xc9, 0xfa, 0x43,
+ 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf, 0x6b,
+ 0x66, 0xec, 0x48, 0xd1,
+ 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3, 0x19,
+ 0x10, 0x4e, 0x26, 0x1e,
+ 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04, 0x84,
+ 0x91, 0xa6, 0xef, 0x36,
+ 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68, 0xf6,
+ 0xe7, 0x04, 0x81, 0xf9,
+ 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc, 0x60,
+ 0x7d, 0x21, 0x33, 0x6b,
+ 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0, 0x12,
+ 0x0b, 0x83, 0x5d, 0xa4,
+ 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91, 0x99,
+ 0xbc, 0x32, 0x62, 0x3b,
+ 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd, 0xeb,
+ 0xca, 0x90, 0x0c, 0xf4,
+ 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49, 0x7d,
+ 0x50, 0xb5, 0xbe, 0x66,
+ 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25, 0x0f,
+ 0x26, 0x17, 0xd0, 0xa9,
+ 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2, 0x92,
+ 0xa7, 0xff, 0x19, 0x81,
+ 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e, 0xe0,
+ 0xd1, 0x5d, 0x77, 0x4e,
+ 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a, 0x76,
+ 0x4b, 0x78, 0xc5, 0xdc,
+ 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56, 0x04,
+ 0x3d, 0xda, 0xab, 0x13,
+ 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66, 0xfb,
+ 0x3e, 0x7e, 0xe5, 0xb8,
+ 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a, 0x89,
+ 0x48, 0xdc, 0x8b, 0x77,
+ 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe, 0x1f,
+ 0xd2, 0xf9, 0x39, 0xe5,
+ 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2, 0x6d,
+ 0xa4, 0x5b, 0x57, 0x2a,
+ 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15, 0xf0,
+ 0x25, 0xb3, 0x9e, 0x02,
+ 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79, 0x82,
+ 0x53, 0x11, 0xf0, 0xcd,
+ 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd, 0x14,
+ 0xc9, 0x34, 0x42, 0x5f,
+ 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1, 0x66,
+ 0xbf, 0x96, 0x2c, 0x90,
+ 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80, 0xed,
+ 0x08, 0x27, 0x13, 0x0f,
+ 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec, 0x9f,
+ 0x7e, 0x85, 0x7d, 0xc0,
+ 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58, 0x09,
+ 0xe4, 0xa0, 0xcf, 0x52,
+ 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34, 0x7b,
+ 0x92, 0x02, 0xa1, 0x9d,
+ 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3, 0xe6,
+ 0x13, 0xea, 0x68, 0xb5,
+ 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f, 0x94,
+ 0x65, 0x48, 0x06, 0x7a,
+ 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b, 0x02,
+ 0xff, 0x6d, 0xb4, 0xe8,
+ 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47, 0x70,
+ 0x89, 0xcf, 0xda, 0x27,
+ 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69, 0xd7,
+ 0x52, 0xcc, 0xca, 0x15,
+ 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05, 0xa5,
+ 0x24, 0x6e, 0xa4, 0xda,
+ 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1, 0x33,
+ 0xbe, 0x4b, 0x16, 0x48,
+ 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd, 0x41,
+ 0xc8, 0xe9, 0x78, 0x87,
+ 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a, 0xdc,
+ 0x49, 0x01, 0xb1, 0xaf,
+ 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76, 0xae,
+ 0x3f, 0xa3, 0xdf, 0x60,
+ 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2, 0x38,
+ 0xa5, 0x86, 0x6d, 0xf2,
+ 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae, 0x4a,
+ 0xd3, 0x24, 0x03, 0x3d,
+ 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f, 0xc1,
+ 0x64, 0x95, 0x3c, 0xa2,
+ 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3, 0xb3,
+ 0x12, 0x37, 0x52, 0x6d,
+ 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57, 0x25,
+ 0x88, 0x12, 0xe0, 0xff,
+ 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b, 0x57,
+ 0xfe, 0xb0, 0x8e, 0x30,
+ 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc, 0xca,
+ 0x7f, 0x58, 0x47, 0x18,
+ 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90, 0xb8,
+ 0x09, 0xfa, 0x29, 0xd7,
+ 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24, 0x2e,
+ 0x93, 0xdf, 0x9b, 0x45,
+ 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48, 0x5c,
+ 0xe5, 0x7d, 0xf5, 0x8a,
+ 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44, 0x13,
+ 0x95, 0x54, 0x07, 0xd0,
+ 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28, 0x61,
+ 0xe3, 0xf6, 0x69, 0x1f,
+ 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c, 0xf7,
+ 0x79, 0xd3, 0xdb, 0x8d,
+ 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0, 0x85,
+ 0x0f, 0x71, 0xb5, 0x42,
+ 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37, 0x18,
+ 0x8e, 0x99, 0x7c, 0x6a,
+ 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b, 0x6a,
+ 0xf8, 0x3b, 0x12, 0xa5,
+ 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef, 0xfc,
+ 0x62, 0x1e, 0xa0, 0x37,
+ 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83, 0x8e,
+ 0x14, 0xbc, 0xce, 0xf8,
+ 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2, 0x05,
+ 0xa3, 0x0d, 0xf1, 0x67,
+ 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce, 0x77,
+ 0xd5, 0xaf, 0x9f, 0xa8,
+ 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a, 0xe1,
+ 0x4f, 0x8a, 0x2d, 0x3a,
+ 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16, 0x93,
+ 0x39, 0x28, 0x43, 0xf5,
+ 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1, 0x0e,
+ 0xb8, 0xc0, 0x8a, 0xdd,
+ 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd, 0x7c,
+ 0xce, 0x62, 0xe4, 0x12,
+ 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09, 0xea,
+ 0x54, 0x47, 0x56, 0x80,
+ 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65, 0x98,
+ 0x22, 0xe5, 0x38, 0x4f,
+ 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b, 0x3f,
+ 0xf9, 0xe6, 0x28, 0x7d,
+ 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27, 0x4d,
+ 0x8f, 0x44, 0x46, 0xb2,
+ 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93, 0xdb,
+ 0x15, 0x61, 0xf4, 0x20,
+ 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff, 0xa9,
+ 0x63, 0xc3, 0x9a, 0xef,
+ 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38, 0x34,
+ 0xe2, 0x2b, 0x53, 0xc7,
+ 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54, 0x46,
+ 0x94, 0x89, 0x3d, 0x08,
+ 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0, 0xd0,
+ 0x0e, 0xac, 0x8f, 0x9a,
+ 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c, 0xa2,
+ 0x78, 0x0e, 0xe1, 0x55,
+ 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad, 0x29,
+ 0xcf, 0xbf, 0xde, 0xca,
+ 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1, 0x5b,
+ 0xb9, 0x1d, 0xb0, 0x05,
+ 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75, 0xcd,
+ 0x23, 0x38, 0x02, 0x97,
+ 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19, 0xbf,
+ 0x55, 0x9a, 0x6c, 0x58,
+ 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde, 0x22,
+ 0xd4, 0x72, 0xa5, 0x70,
+ 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2, 0x50,
+ 0xa2, 0xd0, 0xcb, 0xbf,
+ 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06, 0xc6,
+ 0x38, 0xf5, 0x79, 0x2d,
+ 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a, 0xb4,
+ 0x4e, 0x57, 0x17, 0xe2,
+ 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a, 0x4b,
+ 0x4d, 0xf3, 0x59, 0x49,
+ 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36, 0x39,
+ 0x3b, 0x51, 0x37, 0x86,
+ 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82, 0xaf,
+ 0xa1, 0x74, 0x85, 0x14,
+ 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee, 0xdd,
+ 0xd7, 0xd6, 0xeb, 0xdb,
+ 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29, 0x40,
+ 0x56, 0x3e, 0x22, 0xf3,
+ 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45, 0x32,
+ 0x20, 0x9c, 0x4c, 0x3c,
+ 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1, 0xa4,
+ 0xba, 0xb9, 0xfe, 0xae,
+ 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d, 0xd6,
+ 0xcc, 0x1b, 0x90, 0x61,
+ 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc, 0x5d,
+ 0x7b, 0xaa, 0xaf, 0xfe,
+ 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0, 0x2f,
+ 0x0d, 0x08, 0xc1, 0x31,
+ 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64, 0xb9,
+ 0x97, 0x2d, 0x73, 0xa3,
+ 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08, 0xcb,
+ 0xe1, 0x8f, 0x1d, 0x6c,
+ 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf, 0x56,
+ 0x60, 0x67, 0xd4, 0x44,
+ 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3, 0x24,
+ 0x16, 0xc5, 0xba, 0x8b,
+ 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17, 0xb2,
+ 0x8c, 0xe0, 0x08, 0x19,
+ 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b, 0xc0,
+ 0xfa, 0x42, 0x66, 0xd6,
+ 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55, 0x67,
+ 0x21, 0x41, 0x76, 0xe4,
+ 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39, 0x15,
+ 0x57, 0xe3, 0x18, 0x2b,
+ 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d, 0x83,
+ 0xcd, 0xc6, 0xaa, 0xb9,
+ 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1, 0xf1,
+ 0xbb, 0x64, 0xc4, 0x76,
+ 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26, 0x6c,
+ 0x3a, 0x8c, 0x0d, 0x5e,
+ 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a, 0x1e,
+ 0x4c, 0x2e, 0x63, 0x91,
+ 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe, 0x88,
+ 0xd6, 0x0b, 0xd1, 0x03,
+ 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92, 0xfa,
+ 0xa0, 0xa9, 0xbf, 0xcc,
+ 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3, 0x71,
+ 0x17, 0x18, 0x80, 0x53,
+ 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf, 0x03,
+ 0x61, 0xba, 0xee, 0x9c,
+ 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b, 0x95,
+ 0xfb, 0x9f, 0x5c, 0x0e,
+ 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07, 0xe7,
+ 0x8d, 0x3d, 0x32, 0xc1,
+ 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0, 0x7a,
+ 0x0c, 0xd5, 0xfb, 0xe9,
+ 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac, 0x08,
+ 0x7a, 0x77, 0x95, 0x26,
+ 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18, 0x9e,
+ 0xe0, 0x52, 0x27, 0xb4,
+ 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74, 0xec,
+ 0x96, 0xf0, 0x49, 0x7b,
+ },
};
-static const uint8_t kuz_table_inv_LS[16][256 * 16] =
-{
- { /* 0 */
- 0xa5, 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79, 0x82, 0x53, 0x11, 0xf0,
- 0x2d, 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7, 0x37, 0x83, 0x91, 0xbd,
- 0x32, 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9, 0x90, 0x58, 0x92, 0xad,
- 0x8f, 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59, 0x28, 0x51, 0x68, 0x84,
- 0x0e, 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d, 0xf9, 0xc1, 0x13, 0x51,
- 0x30, 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11, 0x74, 0xb4, 0x15, 0x71,
- 0x38, 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7, 0x62, 0x82, 0x4c, 0x87,
- 0xc0, 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44, 0x13, 0x95, 0x54, 0x07,
- 0x54, 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40, 0x97, 0x04, 0xf2, 0xe8,
- 0xe6, 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1, 0xa4, 0xba, 0xb9, 0xfe,
- 0x9e, 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a, 0x76, 0x4b, 0x78, 0xc5,
- 0x39, 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b, 0x10, 0xf4, 0xee, 0xe9,
- 0x55, 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c, 0xe5, 0x72, 0x50, 0x86,
- 0x7e, 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60, 0x3d, 0x06, 0x8b, 0x9c,
- 0x52, 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb, 0x78, 0xf3, 0xb8, 0x4f,
- 0x91, 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b, 0xfd, 0xfc, 0xc9, 0xfa,
- 0x64, 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51, 0xe3, 0xb0, 0xe7, 0x99,
- 0x03, 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4, 0x96, 0x9a, 0x25, 0xb2,
- 0x57, 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4, 0x01, 0x9e, 0xd7, 0x5a,
- 0x5a, 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d, 0x6e, 0xc5, 0xe1, 0xb9,
- 0x1c, 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a, 0x31, 0x41, 0x26, 0xa2,
- 0x60, 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22, 0xe8, 0xab, 0x2a, 0xe2,
- 0x07, 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7, 0x9d, 0x81, 0xe8, 0xc9,
- 0x18, 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9, 0x3a, 0x5a, 0xeb, 0xd9,
- 0x21, 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72, 0x2a, 0xae, 0x05, 0x30,
- 0x72, 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5, 0x20, 0x2b, 0x1f, 0x11,
- 0xa8, 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80, 0xed, 0x08, 0x27, 0x13,
- 0xd1, 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27, 0x4d, 0x8f, 0x44, 0x46,
- 0x29, 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94, 0x3c, 0x98, 0x5c, 0xc6,
- 0xc6, 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef, 0xfc, 0x62, 0x1e, 0xa0,
- 0xa4, 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15, 0xf0, 0x25, 0xb3, 0x9e,
- 0x3f, 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30, 0xff, 0x03, 0xa4, 0x4e,
- 0xe0, 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a, 0x4b, 0x4d, 0xf3, 0x59,
- 0x27, 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9, 0xc5, 0x59, 0x4f, 0x97,
- 0x8d, 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81, 0xcc, 0xbd, 0xef, 0x58,
- 0x0c, 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95, 0x1d, 0x2d, 0x94, 0x8d,
- 0x82, 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0, 0x47, 0x0a, 0x5e, 0x67,
- 0xea, 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64, 0xb9, 0x97, 0x2d, 0x73,
- 0xae, 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b, 0x02, 0xff, 0x6d, 0xb4,
- 0xb4, 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a, 0xdc, 0x49, 0x01, 0xb1,
- 0x9a, 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49, 0x7d, 0x50, 0xb5, 0xbe,
- 0x63, 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96, 0x7e, 0x31, 0x0f, 0x50,
- 0x49, 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6, 0xd4, 0x33, 0x76, 0x24,
- 0xe5, 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45, 0x32, 0x20, 0x9c, 0x4c,
- 0x42, 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4, 0x54, 0x9f, 0x0a, 0x60,
- 0xe4, 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29, 0x40, 0x56, 0x3e, 0x22,
- 0x15, 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10, 0x55, 0x01, 0xdd, 0x3a,
- 0xb7, 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae, 0x4a, 0xd3, 0x24, 0x03,
- 0xc8, 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2, 0x05, 0xa3, 0x0d, 0xf1,
- 0x06, 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab, 0xef, 0xf7, 0x4a, 0xa7,
- 0x70, 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d, 0xc4, 0xc7, 0x98, 0xcd,
- 0x9d, 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e, 0xe0, 0xd1, 0x5d, 0x77,
- 0x41, 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50, 0xc2, 0x05, 0x2f, 0xd2,
- 0x75, 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32, 0xbd, 0xaa, 0xf7, 0xd8,
- 0x19, 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85, 0x48, 0x2c, 0x49, 0xb7,
- 0xc9, 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce, 0x77, 0xd5, 0xaf, 0x9f,
- 0xaa, 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58, 0x09, 0xe4, 0xa0, 0xcf,
- 0xfc, 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0, 0x7a, 0x0c, 0xd5, 0xfb,
- 0x4d, 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5, 0xdf, 0x28, 0xbb, 0x5f,
- 0xbf, 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48, 0x5c, 0xe5, 0x7d, 0xf5,
- 0x2a, 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20, 0xaa, 0x02, 0x79, 0x74,
- 0x73, 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99, 0x52, 0x5d, 0xbd, 0x7f,
- 0x84, 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b, 0xa8, 0xfd, 0x14, 0xc0,
- 0xd5, 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54, 0x46, 0x94, 0x89, 0x3d,
- 0xc3, 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0, 0x85, 0x0f, 0x71, 0xb5,
- 0xaf, 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47, 0x70, 0x89, 0xcf, 0xda,
- 0x2b, 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c, 0xd8, 0x74, 0xdb, 0x1a,
- 0x86, 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3, 0x4c, 0x11, 0x93, 0x1c,
- 0xa7, 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1, 0x66, 0xbf, 0x96, 0x2c,
- 0xb1, 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05, 0xa5, 0x24, 0x6e, 0xa4,
- 0xb2, 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1, 0x33, 0xbe, 0x4b, 0x16,
- 0x5b, 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61, 0x1c, 0xb3, 0x43, 0xd7,
- 0x46, 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97, 0x5f, 0x84, 0xc7, 0x1b,
- 0xd3, 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff, 0xa9, 0x63, 0xc3, 0x9a,
- 0x9f, 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56, 0x04, 0x3d, 0xda, 0xab,
- 0xfd, 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac, 0x08, 0x7a, 0x77, 0x95,
- 0xd4, 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38, 0x34, 0xe2, 0x2b, 0x53,
- 0x0f, 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21, 0x8b, 0xb7, 0xb1, 0x3f,
- 0x9c, 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2, 0x92, 0xa7, 0xff, 0x19,
- 0x2f, 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f, 0xd3, 0x6f, 0x16, 0x61,
- 0x9b, 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25, 0x0f, 0x26, 0x17, 0xd0,
- 0x43, 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88, 0x26, 0xe9, 0xa8, 0x0e,
- 0xef, 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b, 0xc0, 0xfa, 0x42, 0x66,
- 0xd9, 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1, 0x5b, 0xb9, 0x1d, 0xb0,
- 0x79, 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7, 0xa0, 0x87, 0x63, 0x55,
- 0xb6, 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2, 0x38, 0xa5, 0x86, 0x6d,
- 0x53, 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87, 0x0a, 0x85, 0x1a, 0x21,
- 0x7f, 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c, 0x4f, 0x70, 0x29, 0xf2,
- 0xc1, 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28, 0x61, 0xe3, 0xf6, 0x69,
- 0xf0, 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55, 0x67, 0x21, 0x41, 0x76,
- 0x23, 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa, 0xce, 0x42, 0x82, 0xec,
- 0xe7, 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d, 0xd6, 0xcc, 0x1b, 0x90,
- 0x25, 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01, 0x21, 0xb5, 0xc8, 0x4b,
- 0x5e, 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e, 0x65, 0xde, 0x2c, 0xc2,
- 0xb5, 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76, 0xae, 0x3f, 0xa3, 0xdf,
- 0x1e, 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42, 0xd5, 0xad, 0xa1, 0x7e,
- 0xa2, 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe, 0x1f, 0xd2, 0xf9, 0x39,
- 0xdf, 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a, 0xb4, 0x4e, 0x57, 0x17,
- 0xa6, 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd, 0x14, 0xc9, 0x34, 0x42,
- 0xfe, 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18, 0x9e, 0xe0, 0x52, 0x27,
- 0xac, 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3, 0xe6, 0x13, 0xea, 0x68,
- 0x22, 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6, 0xbc, 0x34, 0x20, 0x82,
- 0xf9, 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf, 0x03, 0x61, 0xba, 0xee,
- 0xe2, 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82, 0xaf, 0xa1, 0x74, 0x85,
- 0x4a, 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02, 0x42, 0xa9, 0x53, 0x96,
- 0xbc, 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc, 0xca, 0x7f, 0x58, 0x47,
- 0x35, 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e, 0x0d, 0xd9, 0x7a, 0x64,
- 0xca, 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a, 0xe1, 0x4f, 0x8a, 0x2d,
- 0xee, 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17, 0xb2, 0x8c, 0xe0, 0x08,
- 0x78, 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb, 0xd2, 0xf1, 0xc1, 0x3b,
- 0x05, 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f, 0x79, 0x6d, 0x6f, 0x15,
- 0x6b, 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70, 0x68, 0x07, 0x56, 0xa6,
- 0x51, 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f, 0xee, 0x69, 0x9d, 0xfd,
- 0xe1, 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36, 0x39, 0x3b, 0x51, 0x37,
- 0x59, 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9, 0xf8, 0x5f, 0xc4, 0x0b,
- 0xa3, 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2, 0x6d, 0xa4, 0x5b, 0x57,
- 0xf2, 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d, 0x83, 0xcd, 0xc6, 0xaa,
- 0x71, 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41, 0xb6, 0xb1, 0x3a, 0xa3,
- 0x56, 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98, 0x73, 0xe8, 0x75, 0x34,
- 0x11, 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63, 0x5e, 0x1a, 0x10, 0x41,
- 0x6a, 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c, 0x1a, 0x71, 0xf4, 0xc8,
- 0x89, 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2, 0xc7, 0xa6, 0x22, 0x23,
- 0x94, 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04, 0x84, 0x91, 0xa6, 0xef,
- 0x65, 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d, 0x91, 0xc6, 0x45, 0xf7,
- 0x8c, 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed, 0xbe, 0xcb, 0x4d, 0x36,
- 0xbb, 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b, 0x57, 0xfe, 0xb0, 0x8e,
- 0x77, 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea, 0x59, 0x46, 0x70, 0x04,
- 0x3c, 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84, 0x69, 0x99, 0x81, 0xfc,
- 0x7b, 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f, 0x44, 0x6b, 0xe4, 0x89,
- 0x28, 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8, 0x4e, 0xee, 0xfe, 0xa8,
- 0xab, 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34, 0x7b, 0x92, 0x02, 0xa1,
- 0xd2, 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93, 0xdb, 0x15, 0x61, 0xf4,
- 0x31, 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d, 0x06, 0xc2, 0xb7, 0x1f,
- 0xde, 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06, 0xc6, 0x38, 0xf5, 0x79,
- 0xc4, 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37, 0x18, 0x8e, 0x99, 0x7c,
- 0x5f, 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12, 0x17, 0xa8, 0x8e, 0xac,
- 0xcc, 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1, 0x0e, 0xb8, 0xc0, 0x8a,
- 0xcf, 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65, 0x98, 0x22, 0xe5, 0x38,
- 0x76, 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86, 0x2b, 0x30, 0xd2, 0x6a,
- 0x2c, 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b, 0x45, 0xf5, 0x33, 0xd3,
- 0xb8, 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f, 0xc1, 0x64, 0x95, 0x3c,
- 0xd8, 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad, 0x29, 0xcf, 0xbf, 0xde,
- 0x2e, 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53, 0xa1, 0x19, 0xb4, 0x0f,
- 0x36, 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba, 0x9b, 0x43, 0x5f, 0xd6,
- 0xdb, 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19, 0xbf, 0x55, 0x9a, 0x6c,
- 0x69, 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8, 0x8c, 0xeb, 0xd1, 0x7a,
- 0xb3, 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd, 0x41, 0xc8, 0xe9, 0x78,
- 0x14, 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c, 0x27, 0x77, 0x7f, 0x54,
- 0x95, 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68, 0xf6, 0xe7, 0x04, 0x81,
- 0xbe, 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24, 0x2e, 0x93, 0xdf, 0x9b,
- 0x62, 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa, 0x0c, 0x47, 0xad, 0x3e,
- 0xa1, 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a, 0x89, 0x48, 0xdc, 0x8b,
- 0x3b, 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43, 0xf4, 0x18, 0x69, 0x35,
- 0x16, 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4, 0xc3, 0x9b, 0xf8, 0x88,
- 0x66, 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89, 0x07, 0x5c, 0x60, 0x45,
- 0xe9, 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0, 0x2f, 0x0d, 0x08, 0xc1,
- 0x5c, 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6, 0x81, 0x32, 0xab, 0x1e,
- 0x6c, 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7, 0xf5, 0x86, 0xbe, 0x6f,
- 0x6d, 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb, 0x87, 0xf0, 0x1c, 0x01,
- 0xad, 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f, 0x94, 0x65, 0x48, 0x06,
- 0x37, 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6, 0xe9, 0x35, 0xfd, 0xb8,
- 0x61, 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e, 0x9a, 0xdd, 0x88, 0x8c,
- 0x4b, 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e, 0x30, 0xdf, 0xf1, 0xf8,
- 0xb9, 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3, 0xb3, 0x12, 0x37, 0x52,
- 0xe3, 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee, 0xdd, 0xd7, 0xd6, 0xeb,
- 0xba, 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57, 0x25, 0x88, 0x12, 0xe0,
- 0xf1, 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39, 0x15, 0x57, 0xe3, 0x18,
- 0xa0, 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66, 0xfb, 0x3e, 0x7e, 0xe5,
- 0x85, 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67, 0xda, 0x8b, 0xb6, 0xae,
- 0x83, 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc, 0x35, 0x7c, 0xfc, 0x09,
- 0xda, 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75, 0xcd, 0x23, 0x38, 0x02,
- 0x47, 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb, 0x2d, 0xf2, 0x65, 0x75,
- 0xc5, 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b, 0x6a, 0xf8, 0x3b, 0x12,
- 0xb0, 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69, 0xd7, 0x52, 0xcc, 0xca,
- 0x33, 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5, 0xe2, 0x2e, 0x30, 0xc3,
- 0xfa, 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b, 0x95, 0xfb, 0x9f, 0x5c,
- 0x96, 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc, 0x60, 0x7d, 0x21, 0x33,
- 0x6f, 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03, 0x63, 0x1c, 0x9b, 0xdd,
- 0x6e, 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f, 0x11, 0x6a, 0x39, 0xb3,
- 0xc2, 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c, 0xf7, 0x79, 0xd3, 0xdb,
- 0xf6, 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe, 0x88, 0xd6, 0x0b, 0xd1,
- 0x50, 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33, 0x9c, 0x1f, 0x3f, 0x93,
- 0xff, 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74, 0xec, 0x96, 0xf0, 0x49,
- 0x5d, 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca, 0xf3, 0x44, 0x09, 0x70,
- 0xa9, 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec, 0x9f, 0x7e, 0x85, 0x7d,
- 0x8e, 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35, 0x5a, 0x27, 0xca, 0xea,
- 0x17, 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8, 0xb1, 0xed, 0x5a, 0xe6,
- 0x1b, 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d, 0xac, 0xc0, 0xce, 0x6b,
- 0x97, 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0, 0x12, 0x0b, 0x83, 0x5d,
- 0x7d, 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4, 0xab, 0x9c, 0xae, 0x2e,
- 0xec, 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf, 0x56, 0x60, 0x67, 0xd4,
- 0x58, 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5, 0x8a, 0x29, 0x66, 0x65,
- 0xf7, 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92, 0xfa, 0xa0, 0xa9, 0xbf,
- 0x1f, 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e, 0xa7, 0xdb, 0x03, 0x10,
- 0xfb, 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07, 0xe7, 0x8d, 0x3d, 0x32,
- 0x7c, 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8, 0xd9, 0xea, 0x0c, 0x40,
- 0x09, 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a, 0x64, 0x40, 0xfb, 0x98,
- 0x0d, 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9, 0x6f, 0x5b, 0x36, 0xe3,
- 0x7a, 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13, 0x36, 0x1d, 0x46, 0xe7,
- 0x67, 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5, 0x75, 0x2a, 0xc2, 0x2b,
- 0x45, 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23, 0xc9, 0x1e, 0xe2, 0xa9,
- 0x87, 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf, 0x3e, 0x67, 0x31, 0x72,
- 0xdc, 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde, 0x22, 0xd4, 0x72, 0xa5,
- 0xe8, 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc, 0x5d, 0x7b, 0xaa, 0xaf,
- 0x4f, 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d, 0x3b, 0xc4, 0x3c, 0x83,
- 0x1d, 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6, 0x43, 0x37, 0x84, 0xcc,
- 0x4e, 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71, 0x49, 0xb2, 0x9e, 0xed,
- 0x04, 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73, 0x0b, 0x1b, 0xcd, 0x7b,
- 0xeb, 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08, 0xcb, 0xe1, 0x8f, 0x1d,
- 0xf8, 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3, 0x71, 0x17, 0x18, 0x80,
- 0xf3, 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1, 0xf1, 0xbb, 0x64, 0xc4,
- 0x3e, 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c, 0x8d, 0x75, 0x06, 0x20,
- 0x3d, 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8, 0x1b, 0xef, 0x23, 0x92,
- 0xbd, 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90, 0xb8, 0x09, 0xfa, 0x29,
- 0x8a, 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46, 0x51, 0x3c, 0x07, 0x91,
- 0x88, 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e, 0xb5, 0xd0, 0x80, 0x4d,
- 0xdd, 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2, 0x50, 0xa2, 0xd0, 0xcb,
- 0xcd, 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd, 0x7c, 0xce, 0x62, 0xe4,
- 0x0b, 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52, 0x80, 0xac, 0x7c, 0x44,
- 0x13, 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb, 0xba, 0xf6, 0x97, 0x9d,
- 0x98, 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91, 0x99, 0xbc, 0x32, 0x62,
- 0x02, 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8, 0xe4, 0xec, 0x87, 0xdc,
- 0x93, 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3, 0x19, 0x10, 0x4e, 0x26,
- 0x80, 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78, 0xa3, 0xe6, 0xd9, 0xbb,
- 0x90, 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77, 0x8f, 0x8a, 0x6b, 0x94,
- 0xd0, 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b, 0x3f, 0xf9, 0xe6, 0x28,
- 0x24, 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d, 0x53, 0xc3, 0x6a, 0x25,
- 0x34, 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62, 0x7f, 0xaf, 0xd8, 0x0a,
- 0xcb, 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16, 0x93, 0x39, 0x28, 0x43,
- 0xed, 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3, 0x24, 0x16, 0xc5, 0xba,
- 0xf4, 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26, 0x6c, 0x3a, 0x8c, 0x0d,
- 0xce, 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09, 0xea, 0x54, 0x47, 0x56,
- 0x99, 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd, 0xeb, 0xca, 0x90, 0x0c,
- 0x10, 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f, 0x2c, 0x6c, 0xb2, 0x2f,
- 0x44, 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f, 0xbb, 0x68, 0x40, 0xc7,
- 0x40, 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c, 0xb0, 0x73, 0x8d, 0xbc,
- 0x92, 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf, 0x6b, 0x66, 0xec, 0x48,
- 0x3a, 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f, 0x86, 0x6e, 0xcb, 0x5b,
- 0x01, 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c, 0x72, 0x76, 0xa2, 0x6e,
- 0x26, 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5, 0xb7, 0x2f, 0xed, 0xf9,
- 0x12, 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7, 0xc8, 0x80, 0x35, 0xf3,
- 0x1a, 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31, 0xde, 0xb6, 0x6c, 0x05,
- 0x48, 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda, 0xa6, 0x45, 0xd4, 0x4a,
- 0x68, 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4, 0xfe, 0x9d, 0x73, 0x14,
- 0xf5, 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a, 0x1e, 0x4c, 0x2e, 0x63,
- 0x81, 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14, 0xd1, 0x90, 0x7b, 0xd5,
- 0x8b, 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a, 0x23, 0x4a, 0xa5, 0xff,
- 0xc7, 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83, 0x8e, 0x14, 0xbc, 0xce,
- 0xd6, 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0, 0xd0, 0x0e, 0xac, 0x8f,
- 0x20, 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e, 0x58, 0xd8, 0xa7, 0x5e,
- 0x0a, 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e, 0xf2, 0xda, 0xde, 0x2a,
- 0x08, 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6, 0x16, 0x36, 0x59, 0xf6,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x4c, 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9, 0xad, 0x5e, 0x19, 0x31,
- 0xd7, 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c, 0xa2, 0x78, 0x0e, 0xe1,
- 0x74, 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e, 0xcf, 0xdc, 0x55, 0xb6,
- },
- { /* 1 */
- 0xcc, 0xec, 0x18, 0x15, 0x1b, 0x11, 0x97, 0xc3, 0xf0, 0x9a, 0x7d, 0x3e, 0x77, 0x3a, 0x93, 0x9b,
- 0x03, 0x52, 0x4c, 0x32, 0xa4, 0x91, 0x05, 0xcd, 0xbd, 0x7b, 0x44, 0x0e, 0x71, 0xad, 0xa6, 0x23,
- 0x17, 0x0c, 0x9a, 0xa9, 0x18, 0x92, 0x39, 0xd8, 0xad, 0x0a, 0xf2, 0x46, 0x78, 0x7d, 0x02, 0x74,
- 0xa5, 0x43, 0xab, 0x04, 0x86, 0x68, 0x2c, 0x3c, 0x84, 0x83, 0x35, 0x17, 0xdb, 0x7b, 0x40, 0x98,
- 0xd4, 0x39, 0x3d, 0x46, 0x72, 0x13, 0xbf, 0x64, 0x51, 0xc4, 0x18, 0x4e, 0x79, 0x1b, 0xea, 0x40,
- 0xfc, 0x85, 0x52, 0xb3, 0xc9, 0x15, 0xc7, 0x4e, 0x71, 0x26, 0xb7, 0xde, 0x6b, 0x78, 0x61, 0xee,
- 0xd6, 0xe4, 0xf4, 0xdb, 0x0b, 0x4c, 0xb9, 0x53, 0x87, 0x96, 0x60, 0xfb, 0x27, 0x6c, 0x2e, 0xc3,
- 0x76, 0x51, 0x8b, 0x89, 0xa2, 0x54, 0x9a, 0xfb, 0x07, 0x98, 0x99, 0xfe, 0x6f, 0x23, 0x47, 0x3e,
- 0xd2, 0x9d, 0xa5, 0x22, 0xf9, 0xf2, 0xb5, 0x3d, 0xe8, 0x32, 0x90, 0x52, 0x9b, 0x82, 0x65, 0x06,
- 0x20, 0x4e, 0xcd, 0xc4, 0x9c, 0xb9, 0x60, 0xf6, 0xfe, 0x69, 0x8c, 0x01, 0xa9, 0x7c, 0x1d, 0xe7,
- 0x65, 0x24, 0x40, 0xd9, 0x48, 0x78, 0xaf, 0x4d, 0xc5, 0x36, 0x9b, 0x11, 0xab, 0xb0, 0x0e, 0x8f,
- 0x42, 0x41, 0x90, 0xd6, 0x82, 0xee, 0xc6, 0x18, 0xe9, 0x80, 0xa3, 0xb7, 0xcf, 0x8f, 0xfe, 0x8e,
- 0x46, 0x38, 0xc1, 0x2f, 0x70, 0x50, 0xca, 0x76, 0x86, 0x24, 0x53, 0x1e, 0x73, 0x61, 0xb5, 0x4b,
- 0xbb, 0x32, 0x16, 0x33, 0x64, 0x8b, 0x0e, 0xc2, 0x9c, 0x2b, 0xd8, 0x7b, 0x37, 0xc3, 0xb6, 0x05,
- 0x2c, 0xc5, 0x3e, 0x0c, 0x49, 0xb8, 0x74, 0x44, 0x4f, 0x46, 0x5f, 0x39, 0xae, 0x8d, 0xc0, 0x6b,
- 0x25, 0xb8, 0x19, 0x92, 0xb3, 0xc9, 0x6f, 0x62, 0xfa, 0xe4, 0x40, 0x13, 0x3a, 0x48, 0x34, 0x82,
- 0x2e, 0x18, 0xf7, 0x91, 0x30, 0xe7, 0x72, 0x73, 0x99, 0x14, 0x27, 0x8c, 0xf0, 0xfa, 0x04, 0xe8,
- 0x7f, 0x2c, 0xac, 0x17, 0x58, 0x25, 0x81, 0xdd, 0xb2, 0x3a, 0x86, 0xd4, 0xfb, 0xe6, 0xb3, 0xd7,
- 0xad, 0xb1, 0x09, 0x35, 0xa1, 0xd7, 0x34, 0xe0, 0x5a, 0x08, 0x16, 0x86, 0x60, 0x64, 0xd6, 0xd1,
- 0x06, 0xa4, 0x98, 0x64, 0x8b, 0xe1, 0x0a, 0x59, 0xb9, 0xf6, 0x88, 0x1c, 0xe2, 0x99, 0x8f, 0x46,
- 0x6b, 0x72, 0x7a, 0x8c, 0xe4, 0x26, 0xbd, 0xc8, 0xa2, 0x4b, 0x30, 0x9c, 0xf2, 0x36, 0x17, 0x80,
- 0x3b, 0xc9, 0xa4, 0xa5, 0x51, 0x2a, 0x4d, 0x9c, 0xe2, 0x4c, 0xad, 0x7f, 0xd6, 0xf0, 0xc2, 0x1f,
- 0x6a, 0xfd, 0xff, 0x23, 0x39, 0xe8, 0xbe, 0x32, 0xc9, 0x62, 0x0c, 0x27, 0xdd, 0xec, 0x75, 0x20,
- 0x7e, 0xa3, 0x29, 0xb8, 0x85, 0xeb, 0x82, 0x27, 0xd9, 0x13, 0xba, 0x6f, 0xd4, 0x3c, 0xd1, 0x77,
- 0x3c, 0xe2, 0xb9, 0x6e, 0x07, 0x05, 0x44, 0x3f, 0x30, 0x93, 0x19, 0xd8, 0x1b, 0xb3, 0x2f, 0xf9,
- 0x84, 0x82, 0xe3, 0x6f, 0xc7, 0x1f, 0x4f, 0x30, 0x11, 0xc3, 0x85, 0xad, 0x5d, 0xdd, 0x3f, 0xdf,
- 0x67, 0xf9, 0x89, 0x44, 0x31, 0x27, 0xa9, 0x7a, 0x13, 0x64, 0xe3, 0xa4, 0xf5, 0xc7, 0xca, 0x0c,
- 0xb6, 0x36, 0x60, 0x54, 0x6c, 0x44, 0x19, 0x8a, 0x46, 0x2d, 0x37, 0xf8, 0x1f, 0xe8, 0x09, 0x29,
- 0x16, 0x83, 0x1f, 0x06, 0xc5, 0x5c, 0x3a, 0x22, 0xc6, 0x23, 0xce, 0xfd, 0x57, 0xa7, 0x60, 0xd4,
- 0x88, 0x09, 0x10, 0xa7, 0x12, 0x1e, 0x5b, 0x82, 0xa0, 0xec, 0x56, 0x95, 0x5a, 0x2c, 0xe2, 0x53,
- 0x58, 0x49, 0x7c, 0x18, 0x92, 0xb3, 0xe8, 0x88, 0x9e, 0x8c, 0xbe, 0x72, 0x9f, 0xd9, 0x43, 0xd6,
- 0xbc, 0x19, 0x0b, 0xf8, 0x32, 0xa4, 0x07, 0x61, 0x4e, 0xf4, 0x6c, 0xdc, 0xfa, 0x80, 0x5b, 0xe3,
- 0xde, 0x16, 0x56, 0xea, 0x2c, 0xf3, 0xa1, 0x8f, 0x59, 0x1d, 0x43, 0x6a, 0x9c, 0x73, 0xb8, 0x8a,
- 0xc2, 0xba, 0x22, 0x40, 0xb7, 0x4f, 0x85, 0x46, 0x97, 0xe7, 0xd6, 0xb3, 0x2e, 0xbc, 0x8a, 0x94,
- 0x4e, 0xca, 0x63, 0x1e, 0x57, 0xef, 0xd2, 0xaa, 0x58, 0xaf, 0x70, 0x8f, 0xc8, 0x7e, 0x23, 0x02,
- 0x3f, 0xb0, 0xf5, 0x5c, 0xa3, 0x94, 0x41, 0xf2, 0x8d, 0xe8, 0x5d, 0xd6, 0x6a, 0x1e, 0x89, 0xda,
- 0x0e, 0x56, 0x3a, 0x55, 0xac, 0x5e, 0x12, 0x85, 0x67, 0x7d, 0xab, 0x8d, 0x59, 0x86, 0x19, 0x0f,
- 0x1f, 0xfe, 0x38, 0x98, 0x3f, 0x2d, 0x21, 0x04, 0x73, 0x81, 0xd1, 0xd7, 0xc3, 0x62, 0x94, 0x3d,
- 0x99, 0xa1, 0x12, 0x6a, 0x81, 0x6d, 0x68, 0x03, 0xb4, 0x10, 0x2c, 0xcf, 0xc0, 0xc8, 0x6f, 0x61,
- 0x0c, 0x8b, 0xf3, 0xc8, 0xd5, 0x01, 0x14, 0xb2, 0xb1, 0x2f, 0xd3, 0x38, 0x07, 0xf1, 0xdd, 0x8c,
- 0x70, 0xf5, 0x13, 0xed, 0x29, 0xb5, 0x90, 0xa2, 0xbe, 0x6e, 0x11, 0xe2, 0x8d, 0xba, 0xc8, 0x78,
- 0x44, 0xe5, 0x08, 0xb2, 0x09, 0x0f, 0xcc, 0x41, 0x50, 0x76, 0x2b, 0xab, 0x2d, 0x16, 0x71, 0xc8,
- 0x2d, 0x4a, 0xbb, 0xa3, 0x94, 0x76, 0x77, 0xbe, 0x24, 0x6f, 0x63, 0x82, 0x81, 0x57, 0xa2, 0xcb,
- 0x5f, 0x62, 0x61, 0xd3, 0xc4, 0x9c, 0xe1, 0x2b, 0x4c, 0x53, 0x0a, 0xd5, 0x52, 0x9a, 0xae, 0x30,
- 0x78, 0x07, 0xb1, 0xdc, 0x0e, 0x0a, 0x88, 0x7e, 0x60, 0xe5, 0x32, 0x73, 0x36, 0xa5, 0x5e, 0x31,
- 0xcb, 0xc7, 0x05, 0xde, 0x4d, 0x3e, 0x9e, 0x60, 0x22, 0x45, 0xc9, 0x99, 0xba, 0x79, 0x7e, 0x7d,
- 0xd5, 0xb6, 0xb8, 0xe9, 0xaf, 0xdd, 0xbc, 0x9e, 0x3a, 0xed, 0x24, 0xf5, 0x56, 0xc1, 0x88, 0xe0,
- 0x73, 0xa7, 0x5f, 0xdf, 0x8d, 0x24, 0x95, 0x6f, 0x03, 0x15, 0x55, 0xec, 0xfc, 0x17, 0x6e, 0x5b,
- 0x5c, 0x30, 0x2d, 0xe1, 0x60, 0x0d, 0xe4, 0xe6, 0xf1, 0x28, 0x4e, 0xdb, 0x23, 0x37, 0x08, 0x13,
- 0xfe, 0x58, 0x9b, 0x2e, 0xb0, 0x4a, 0xc1, 0x79, 0xa7, 0x74, 0xcf, 0x6b, 0x35, 0x0f, 0xa5, 0x6d,
- 0x6f, 0x0b, 0x2b, 0x75, 0x16, 0x98, 0xb1, 0xa6, 0xcd, 0xef, 0xc0, 0x35, 0x4e, 0xd8, 0x5c, 0x45,
- 0x1a, 0x08, 0xec, 0xce, 0x10, 0x5d, 0x2e, 0x90, 0x77, 0x0c, 0x1d, 0xc5, 0x50, 0x56, 0xbd, 0x58,
- 0x07, 0x2b, 0x1d, 0xcb, 0x56, 0x2f, 0x09, 0xa3, 0xd2, 0xdf, 0xb4, 0xa7, 0xcd, 0x43, 0xed, 0xe6,
- 0xee, 0x7f, 0x1c, 0x4c, 0xfe, 0xf7, 0xf1, 0x02, 0xd8, 0xa1, 0x89, 0x8a, 0x80, 0x31, 0x4a, 0xff,
- 0xea, 0x06, 0x4d, 0xb5, 0x0c, 0x49, 0xfd, 0x6c, 0xb7, 0x05, 0x79, 0x23, 0x3c, 0xdf, 0x01, 0x3a,
- 0xc8, 0x95, 0x49, 0xec, 0xe9, 0xaf, 0x9b, 0xad, 0x9f, 0x3e, 0x8d, 0x97, 0xcb, 0xd4, 0xd8, 0x5e,
- 0x8c, 0x70, 0x41, 0x5e, 0xe0, 0xa0, 0x57, 0xec, 0xcf, 0x48, 0xa6, 0x3c, 0xe6, 0xc2, 0xa9, 0x96,
- 0xb5, 0x64, 0x2c, 0x66, 0xc8, 0xd5, 0x1c, 0x47, 0xfb, 0x56, 0x73, 0xf6, 0x6e, 0x45, 0xaf, 0x0a,
- 0x38, 0x9b, 0xe8, 0x97, 0xf5, 0xbb, 0x48, 0x51, 0x5f, 0x37, 0xe9, 0x71, 0xa7, 0x5d, 0x64, 0x3c,
- 0x59, 0xc6, 0xf9, 0xb7, 0x4f, 0x7d, 0xeb, 0x72, 0xf5, 0xa5, 0x82, 0xc9, 0xb0, 0x03, 0x21, 0x76,
- 0x69, 0xaf, 0xb3, 0x11, 0x9d, 0x79, 0xbb, 0xff, 0x74, 0x19, 0x48, 0x29, 0xac, 0x41, 0xd3, 0x03,
- 0x10, 0x27, 0x87, 0x62, 0x4e, 0xbd, 0x30, 0x7b, 0x7f, 0xd5, 0x46, 0xe1, 0xb5, 0x3e, 0xef, 0x92,
- 0xf0, 0x0e, 0xa1, 0x7b, 0x1c, 0x14, 0xd3, 0xfc, 0xc0, 0x09, 0x64, 0xe6, 0x6c, 0x89, 0xbc, 0x62,
- 0xa3, 0xe7, 0x33, 0x60, 0x0d, 0x89, 0x26, 0x65, 0x3d, 0x75, 0xbd, 0x0b, 0x39, 0xe2, 0xcf, 0xde,
- 0x09, 0x7d, 0x27, 0x9e, 0xfa, 0x71, 0x1b, 0x26, 0xb5, 0xa2, 0x1f, 0x2a, 0x94, 0xc5, 0xf4, 0xe9,
- 0x0d, 0x04, 0x76, 0x67, 0x08, 0xcf, 0x17, 0x48, 0xda, 0x06, 0xef, 0x83, 0x28, 0x2b, 0xbf, 0x2c,
- 0xfd, 0x0a, 0xd7, 0x1c, 0x14, 0xdb, 0xc4, 0xb4, 0x1a, 0x0f, 0x8b, 0x65, 0x44, 0xa2, 0x03, 0x4e,
- 0x1b, 0x87, 0x69, 0x61, 0xcd, 0x93, 0x2d, 0x6a, 0x1c, 0x25, 0x21, 0x7e, 0x7f, 0x8c, 0xdf, 0xf8,
- 0x27, 0x65, 0xd0, 0x0f, 0xca, 0x96, 0x69, 0x55, 0x2c, 0xb6, 0x38, 0xa6, 0x64, 0x3f, 0xf0, 0x01,
- 0x8d, 0xff, 0xc4, 0xf1, 0x3d, 0x6e, 0x54, 0x16, 0xa4, 0x61, 0x9a, 0x87, 0xc9, 0x18, 0xcb, 0x36,
- 0xf2, 0xd3, 0x68, 0xe6, 0x65, 0x4b, 0xd5, 0xcb, 0x16, 0x5b, 0x1c, 0x53, 0x32, 0xfe, 0x78, 0xe1,
- 0x92, 0x01, 0xfc, 0x69, 0x02, 0x43, 0x75, 0x12, 0xd7, 0xe0, 0x4b, 0x50, 0x0a, 0x7a, 0x5f, 0x0b,
- 0x6d, 0xd6, 0xe2, 0xe8, 0x6f, 0xc7, 0xb7, 0x91, 0x1b, 0xbd, 0xb8, 0x80, 0x10, 0xaf, 0x98, 0xc6,
- 0x5d, 0xbf, 0xa8, 0x4e, 0xbd, 0xc3, 0xe7, 0x1c, 0x9a, 0x01, 0x72, 0x60, 0x0c, 0xed, 0x6a, 0xb3,
- 0xf1, 0x81, 0x24, 0xd4, 0xc1, 0xda, 0xd0, 0x06, 0xab, 0x20, 0x58, 0x5d, 0x43, 0x53, 0xde, 0xc2,
- 0x21, 0xc1, 0x48, 0x6b, 0x41, 0x77, 0x63, 0x0c, 0x95, 0x40, 0xb0, 0xba, 0x86, 0xa6, 0x7f, 0x47,
- 0x37, 0x42, 0x57, 0x6d, 0x84, 0x2b, 0x59, 0x2e, 0x53, 0x63, 0x7e, 0x47, 0xd1, 0x01, 0x1f, 0x93,
- 0x40, 0x9c, 0x59, 0x4b, 0xfb, 0xb1, 0xc0, 0x2f, 0x3f, 0xd2, 0xdb, 0x02, 0x91, 0xf8, 0x3a, 0x0d,
- 0x8e, 0xad, 0x88, 0xc3, 0x99, 0xff, 0x51, 0xdb, 0x19, 0x1a, 0xde, 0x89, 0xb8, 0xb5, 0x6d, 0x15,
- 0xe8, 0xdb, 0x84, 0x28, 0x75, 0x16, 0xfb, 0x5b, 0x61, 0x57, 0x01, 0x96, 0x62, 0xa8, 0xc5, 0xb9,
- 0xe4, 0x50, 0x77, 0xe0, 0xa0, 0x17, 0xef, 0xe9, 0xd0, 0x78, 0xd2, 0xae, 0x65, 0x59, 0x18, 0x35,
- 0xec, 0xa2, 0xd5, 0xd1, 0x87, 0xa8, 0xf7, 0x35, 0x0e, 0xf3, 0xf1, 0x3f, 0xde, 0x46, 0x8e, 0x7c,
- 0x9e, 0x8a, 0x0f, 0xa1, 0xd7, 0x42, 0x61, 0xa0, 0x66, 0xcf, 0x98, 0x68, 0x0d, 0x8b, 0x82, 0x87,
- 0x9c, 0x57, 0xc6, 0x3c, 0xae, 0x1d, 0x67, 0x97, 0xb0, 0x9d, 0xe0, 0xdd, 0x53, 0xfc, 0x46, 0x04,
- 0xd1, 0xcf, 0xe9, 0x10, 0x5d, 0x63, 0xb0, 0xf0, 0x55, 0x49, 0xd4, 0x5c, 0xea, 0x2f, 0xc3, 0x25,
- 0xe7, 0x02, 0x3b, 0xd2, 0x04, 0x86, 0xea, 0x24, 0x6d, 0x03, 0x96, 0xa0, 0x14, 0xf4, 0xbe, 0x16,
- 0xb8, 0x60, 0x5a, 0x01, 0xc0, 0x1a, 0x0b, 0x0f, 0x21, 0x50, 0x9c, 0x75, 0x46, 0x6e, 0x10, 0x26,
- 0x2f, 0x97, 0x72, 0x3e, 0xed, 0x29, 0x71, 0x89, 0xf2, 0x3d, 0x1b, 0x37, 0xdf, 0x20, 0x66, 0x48,
- 0xe2, 0xf4, 0xef, 0x84, 0x2b, 0xf6, 0xe5, 0xb0, 0x69, 0x8e, 0x5a, 0xb2, 0x87, 0xc0, 0x97, 0x73,
- 0x8a, 0xd4, 0xd9, 0x3a, 0x6b, 0x41, 0x5d, 0xb5, 0x76, 0xbe, 0x2e, 0x20, 0x04, 0x5b, 0x26, 0xd0,
- 0xd7, 0x6b, 0x71, 0x74, 0xd6, 0x82, 0xba, 0xa9, 0xec, 0xbf, 0x5c, 0x40, 0x08, 0xb6, 0x4c, 0x63,
- 0xb4, 0xeb, 0xa9, 0xc9, 0x15, 0x1b, 0x1f, 0xbd, 0x90, 0x7f, 0x4f, 0x4d, 0x41, 0x9f, 0xcd, 0xaa,
- 0x29, 0x33, 0xea, 0x5a, 0x66, 0xc8, 0x7b, 0xd0, 0x4b, 0xcb, 0x93, 0x2b, 0x3d, 0xb9, 0xe9, 0x0e,
- 0x13, 0x75, 0xcb, 0x50, 0xea, 0x2c, 0x35, 0xb6, 0xc2, 0xae, 0x02, 0xef, 0xc4, 0x93, 0x49, 0xb1,
- 0x98, 0x2e, 0x97, 0xc5, 0x5c, 0xa3, 0x6b, 0xf9, 0xdf, 0x39, 0x10, 0x74, 0xef, 0x12, 0x0d, 0xc1,
- 0x80, 0xfb, 0xb2, 0x96, 0x35, 0xa1, 0x43, 0x5e, 0x7e, 0x67, 0x75, 0x04, 0xe1, 0x33, 0x74, 0x1a,
- 0xa6, 0x11, 0xe7, 0x36, 0x22, 0xf9, 0x29, 0xf1, 0x39, 0xf8, 0x71, 0x19, 0xaa, 0xd6, 0xe6, 0xbb,
- 0x62, 0x0f, 0x5d, 0x12, 0x1e, 0x57, 0xa6, 0xee, 0x17, 0xe9, 0x2f, 0xb6, 0x66, 0xf3, 0xe3, 0x69,
- 0xb3, 0xc0, 0xb4, 0x02, 0x43, 0x34, 0x16, 0x1e, 0x42, 0xa0, 0xfb, 0xea, 0x8c, 0xdc, 0x20, 0x4c,
- 0x5e, 0xed, 0xe4, 0x7c, 0x19, 0x52, 0xe2, 0xd1, 0x27, 0x7a, 0x36, 0x6e, 0x7d, 0x40, 0xcc, 0x90,
- 0x72, 0x28, 0xda, 0x70, 0x50, 0xea, 0x96, 0x95, 0x68, 0x3c, 0x69, 0x57, 0xd3, 0xcd, 0x0c, 0xfb,
- 0x43, 0xce, 0x15, 0x79, 0x5f, 0x20, 0xc5, 0xe2, 0x82, 0xa9, 0x9f, 0x0c, 0xe0, 0x55, 0x9c, 0x2e,
- 0x34, 0x10, 0x1b, 0x5f, 0x20, 0xba, 0x5c, 0xe3, 0xee, 0x18, 0x3a, 0x49, 0xa0, 0xac, 0xb9, 0xb0,
- 0x35, 0x9f, 0x9e, 0xf0, 0xfd, 0x74, 0x5f, 0x19, 0x85, 0x31, 0x06, 0xf2, 0x8f, 0x76, 0xdb, 0x10,
- 0x52, 0x66, 0x17, 0xb4, 0xcc, 0x53, 0xf6, 0x63, 0x96, 0x55, 0xe5, 0x56, 0x7a, 0xb1, 0x11, 0x1c,
- 0x26, 0xea, 0x55, 0xa0, 0x17, 0x58, 0x6a, 0xaf, 0x47, 0x9f, 0x04, 0x1d, 0x4b, 0xe5, 0x92, 0xa1,
- 0x7d, 0xf1, 0x65, 0x8a, 0x21, 0x7a, 0x87, 0xea, 0x64, 0x68, 0xfe, 0x61, 0xa5, 0x91, 0x77, 0x54,
- 0xb7, 0xb9, 0xe5, 0xfb, 0xb1, 0x8a, 0x1a, 0x70, 0x2d, 0x04, 0x0b, 0x43, 0x30, 0x32, 0x6b, 0x89,
- 0x0a, 0x2f, 0x6b, 0xac, 0x5e, 0xe0, 0x1e, 0xeb, 0x08, 0xd9, 0x5b, 0x24, 0xe5, 0x68, 0x52, 0xca,
- 0x45, 0x6a, 0x8d, 0x1d, 0xd4, 0xc1, 0xcf, 0xbb, 0x3b, 0x5f, 0x17, 0x10, 0x02, 0xcc, 0x13, 0x68,
- 0x81, 0x74, 0x37, 0x39, 0xe8, 0x6f, 0x40, 0xa4, 0x15, 0x4e, 0x49, 0xbf, 0xce, 0xe9, 0x16, 0xba,
- 0x6e, 0x84, 0xae, 0xda, 0xcb, 0x56, 0xb2, 0x5c, 0xa6, 0xc6, 0xfc, 0x8e, 0x61, 0x02, 0x3e, 0xe5,
- 0x53, 0xe9, 0x92, 0x1b, 0x11, 0x9d, 0xf5, 0x99, 0xfd, 0x7c, 0xd9, 0xed, 0x55, 0x6b, 0x73, 0xbc,
- 0x4a, 0xb3, 0x32, 0xe7, 0xa5, 0x51, 0xde, 0xc4, 0x37, 0x0b, 0x80, 0x26, 0x74, 0x90, 0x68, 0xc7,
- 0x79, 0x88, 0x34, 0x73, 0xd3, 0xc4, 0x8b, 0x84, 0x0b, 0xcc, 0x0e, 0xc8, 0x19, 0x7f, 0x3c, 0x91,
- 0x32, 0xb4, 0x83, 0x3b, 0xab, 0x5b, 0x56, 0xba, 0x57, 0xee, 0xb2, 0x55, 0x42, 0x35, 0x36, 0xf6,
- 0x61, 0x5d, 0x11, 0x20, 0xba, 0xc6, 0xa3, 0x23, 0xaa, 0x92, 0x6b, 0xb8, 0x17, 0x5e, 0x45, 0x4a,
- 0xfb, 0xae, 0x4f, 0x78, 0x9f, 0x3a, 0xce, 0xed, 0xa3, 0xf9, 0x03, 0x79, 0xa6, 0x3b, 0x8c, 0x08,
- 0x39, 0x14, 0x6d, 0x38, 0x28, 0x75, 0x4b, 0xab, 0x34, 0x1e, 0xd5, 0xca, 0x88, 0x87, 0x06, 0x9c,
- 0xc0, 0x67, 0xeb, 0xdd, 0xce, 0x10, 0x83, 0x71, 0x41, 0xb5, 0xae, 0x06, 0x70, 0xcb, 0x4e, 0x17,
- 0xfa, 0x21, 0xca, 0xd7, 0x42, 0xf4, 0xcd, 0x17, 0xc8, 0xd0, 0x3f, 0xc2, 0x89, 0xe1, 0xee, 0xa8,
- 0x5b, 0x1b, 0x30, 0x2a, 0x36, 0x22, 0xed, 0x45, 0x23, 0xf7, 0xfa, 0x7c, 0xee, 0x74, 0xe5, 0xf5,
- 0xa4, 0xcc, 0x2e, 0xab, 0x5b, 0xa6, 0x2f, 0xc6, 0xef, 0xaa, 0x09, 0xac, 0xf4, 0xa1, 0x22, 0x38,
- 0xba, 0xbd, 0x93, 0x9c, 0xb9, 0x45, 0x0d, 0x38, 0xf7, 0x02, 0xe4, 0xc0, 0x18, 0x19, 0xd4, 0xa5,
- 0xda, 0x6f, 0x07, 0x13, 0xde, 0x4d, 0xad, 0xe1, 0x36, 0xb9, 0xb3, 0xc3, 0x20, 0x9d, 0xf3, 0x4f,
- 0x4c, 0x17, 0xaa, 0x83, 0x2e, 0xb0, 0xd4, 0x9d, 0x8e, 0xfd, 0x08, 0x3a, 0x96, 0x09, 0xe7, 0x81,
- 0x05, 0xf6, 0xd4, 0x56, 0x2f, 0x70, 0x0f, 0x94, 0x04, 0x8d, 0xcc, 0x12, 0x93, 0x34, 0x29, 0x65,
- 0xc3, 0x35, 0xa7, 0xef, 0x6a, 0x81, 0x86, 0xbc, 0xfc, 0xce, 0xea, 0x08, 0x01, 0x66, 0xe8, 0x34,
- 0x3a, 0x46, 0x21, 0x0a, 0x8c, 0xe4, 0x4e, 0x66, 0x89, 0x65, 0x91, 0xc4, 0xf9, 0x2a, 0xa0, 0xbf,
- 0x82, 0x26, 0x7b, 0x0b, 0x4c, 0xfe, 0x45, 0x69, 0xa8, 0x35, 0x0d, 0xb1, 0xbf, 0x44, 0xb0, 0x99,
- 0x18, 0xd5, 0x25, 0x53, 0x69, 0x02, 0x28, 0xa7, 0xa1, 0x5e, 0x65, 0x70, 0x0e, 0x21, 0x79, 0xdb,
- 0xc9, 0x1a, 0xcc, 0x43, 0x34, 0x61, 0x98, 0x57, 0xf4, 0x17, 0xb1, 0x2c, 0xe4, 0x0e, 0xba, 0xfe,
- 0x68, 0x20, 0x36, 0xbe, 0x40, 0xb7, 0xb8, 0x05, 0x1f, 0x30, 0x74, 0x92, 0x83, 0x9b, 0xb1, 0xa3,
- 0xf6, 0xaa, 0x39, 0x1f, 0x97, 0xf5, 0xd9, 0xa5, 0x79, 0xff, 0xec, 0xfa, 0x8e, 0x10, 0x33, 0x24,
- 0x63, 0x80, 0xd8, 0xbd, 0xc3, 0x99, 0xa5, 0x14, 0x7c, 0xc0, 0x13, 0x0d, 0x49, 0x29, 0x81, 0xc9,
- 0x87, 0xd0, 0xaf, 0x5d, 0x63, 0x8e, 0x4a, 0xfd, 0xac, 0xb8, 0xc1, 0xa3, 0x2c, 0x70, 0x99, 0xfc,
- 0x49, 0xe1, 0x7e, 0xd5, 0x01, 0xc0, 0xdb, 0x09, 0x8a, 0x70, 0xc4, 0x28, 0x05, 0x3d, 0xce, 0xe4,
- 0x36, 0xcd, 0xd2, 0xc2, 0x59, 0xe5, 0x5a, 0xd4, 0x38, 0x4a, 0x42, 0xfc, 0xfe, 0xdb, 0x7d, 0x33,
- 0x91, 0x53, 0xb0, 0x5b, 0xa6, 0xd2, 0x70, 0xdf, 0x6a, 0x9b, 0x0f, 0x5e, 0x7b, 0xd7, 0xf9, 0x28,
- 0x97, 0xf7, 0x28, 0x3f, 0x2d, 0x33, 0x7a, 0x86, 0xd3, 0x6d, 0x87, 0x42, 0x99, 0x4e, 0x76, 0x6e,
- 0x33, 0x3b, 0x06, 0x94, 0x76, 0x95, 0x55, 0x40, 0x3c, 0xc7, 0x8e, 0xee, 0x6d, 0xef, 0x54, 0x56,
- 0x08, 0xf2, 0xa2, 0x31, 0x27, 0xbf, 0x18, 0xdc, 0xde, 0x8b, 0x23, 0x91, 0xbb, 0x1f, 0x96, 0x49,
- 0x7c, 0x7e, 0xe0, 0x25, 0xfc, 0xb4, 0x84, 0x10, 0x0f, 0x41, 0xc2, 0xda, 0x8a, 0x4b, 0x15, 0xf4,
- 0x02, 0xdd, 0xc9, 0x9d, 0x79, 0x5f, 0x06, 0x37, 0xd6, 0x52, 0x78, 0xb5, 0x5e, 0x77, 0xc4, 0x83,
- 0x77, 0xde, 0x0e, 0x26, 0x7f, 0x9a, 0x99, 0x01, 0x6c, 0xb1, 0xa5, 0x45, 0x40, 0xf9, 0x25, 0x9e,
- 0x85, 0x0d, 0x66, 0xc0, 0x1a, 0xd1, 0x4c, 0xca, 0x7a, 0xea, 0xb9, 0x16, 0x72, 0x07, 0x5d, 0x7f,
- 0x66, 0x76, 0x0c, 0xeb, 0xec, 0xe9, 0xaa, 0x80, 0x78, 0x4d, 0xdf, 0x1f, 0xda, 0x1d, 0xa8, 0xac,
- 0x41, 0x13, 0xdc, 0xe4, 0x26, 0x7f, 0xc3, 0xd5, 0x54, 0xfb, 0xe7, 0xb9, 0xbe, 0x22, 0x58, 0xad,
- 0x30, 0x69, 0x4a, 0xa6, 0xd2, 0x04, 0x50, 0x8d, 0x81, 0xbc, 0xca, 0xe0, 0x1c, 0x42, 0xf2, 0x75,
- 0xcd, 0x63, 0x9d, 0xba, 0xc6, 0xdf, 0x94, 0x39, 0x9b, 0xb3, 0x41, 0x85, 0x58, 0xe0, 0xf1, 0x3b,
- 0xd0, 0x40, 0x6c, 0xbf, 0x80, 0xad, 0xb3, 0x0a, 0x3e, 0x60, 0xe8, 0xe7, 0xc5, 0xf5, 0xa1, 0x85,
- 0xd9, 0x3d, 0x4b, 0x21, 0x7a, 0xdc, 0xa8, 0x2c, 0x8b, 0xc2, 0xf7, 0xcd, 0x51, 0x30, 0x55, 0x6c,
- 0xa9, 0xc8, 0x58, 0xcc, 0x53, 0x69, 0x38, 0x8e, 0x35, 0xac, 0xe6, 0x2f, 0xdc, 0x8a, 0x9d, 0x14,
- 0xaa, 0x9a, 0x14, 0xfe, 0xf7, 0xf8, 0x3d, 0x43, 0x88, 0xd7, 0xa2, 0x21, 0xad, 0x27, 0x3b, 0x37,
- 0xc5, 0x91, 0x3f, 0x8b, 0xe1, 0x60, 0x8c, 0xe5, 0x45, 0x38, 0x62, 0x14, 0xe3, 0xff, 0x67, 0x72,
- 0x60, 0xd2, 0x94, 0x8f, 0x67, 0x08, 0xa0, 0xd9, 0xc1, 0xbb, 0x57, 0x03, 0x38, 0x84, 0x27, 0xea,
- 0xf8, 0xfc, 0x03, 0x4a, 0x3b, 0xab, 0xcb, 0x20, 0x1e, 0x82, 0x47, 0x77, 0xd7, 0x96, 0x2a, 0x2b,
- 0x04, 0x79, 0x51, 0xf9, 0xf2, 0xbe, 0x0c, 0x6e, 0x6f, 0xa4, 0xf0, 0xa9, 0xbc, 0xee, 0x4b, 0xc5,
- 0x90, 0xdc, 0x35, 0xf4, 0x7b, 0x1c, 0x73, 0x25, 0x01, 0xb2, 0x33, 0xe5, 0x54, 0x0d, 0x9b, 0x88,
- 0xe6, 0x8d, 0xbe, 0x7d, 0xd9, 0x48, 0xe9, 0xde, 0x06, 0x2a, 0xaa, 0x1b, 0x3b, 0x2e, 0xdc, 0xb6,
- 0x96, 0x78, 0xad, 0x90, 0xf0, 0xfd, 0x79, 0x7c, 0xb8, 0x44, 0xbb, 0xf9, 0xb6, 0x94, 0x14, 0xce,
- 0xaf, 0x6c, 0xc0, 0xa8, 0xd8, 0x88, 0x32, 0xd7, 0x8c, 0x5a, 0x6e, 0x33, 0x3e, 0x13, 0x12, 0x52,
- 0xc6, 0xc3, 0x73, 0xb9, 0x45, 0xf1, 0x89, 0x28, 0xf8, 0x43, 0x26, 0x1a, 0x92, 0x52, 0xc1, 0x51,
- 0xa7, 0x9e, 0x62, 0x99, 0xff, 0x37, 0x2a, 0x0b, 0x52, 0xd1, 0x4d, 0xa2, 0x85, 0x0c, 0x84, 0x1b,
- 0xa1, 0x3a, 0xfa, 0xfd, 0x74, 0xd6, 0x20, 0x52, 0xeb, 0x27, 0xc5, 0xbe, 0x67, 0x95, 0x0b, 0x5d,
- 0xd8, 0xb2, 0xce, 0x8e, 0xa7, 0x12, 0xab, 0xd6, 0xe0, 0xeb, 0xcb, 0x76, 0x7e, 0xea, 0x37, 0xcc,
- 0x1e, 0x71, 0xbd, 0x37, 0xe2, 0xe3, 0x22, 0xfe, 0x18, 0xa8, 0xed, 0x6c, 0xec, 0xb8, 0xf6, 0x9d,
- 0x4d, 0x98, 0x2f, 0x2c, 0xf3, 0x7e, 0xd7, 0x67, 0xe5, 0xd4, 0x34, 0x81, 0xb9, 0xd3, 0x85, 0x21,
- 0x64, 0xab, 0xc5, 0x76, 0x95, 0xb6, 0xac, 0xb7, 0xae, 0x1f, 0xa7, 0xaa, 0x84, 0x6a, 0x6c, 0x2f,
- 0x9a, 0xf3, 0x5e, 0x58, 0x25, 0xfc, 0x6d, 0xce, 0x09, 0x6b, 0x68, 0xc1, 0xb1, 0x65, 0xc9, 0x42,
- 0xe3, 0x7b, 0x6a, 0x2b, 0xf6, 0x38, 0xe6, 0x4a, 0x02, 0xa7, 0x66, 0x09, 0xa8, 0x1a, 0xf5, 0xd3,
- 0xf9, 0x73, 0x86, 0xe5, 0xe6, 0x65, 0xc8, 0xda, 0x75, 0xab, 0x7b, 0xcc, 0xf8, 0x4c, 0x48, 0x8b,
- 0xf7, 0x25, 0xbc, 0xb0, 0x4a, 0x3b, 0xda, 0x5f, 0x12, 0xd6, 0xd0, 0x41, 0xa1, 0xca, 0x51, 0x84,
- 0x19, 0x5a, 0xa0, 0xfc, 0xb4, 0xcc, 0x2b, 0x5d, 0xca, 0x77, 0x59, 0xcb, 0x21, 0xfb, 0x1b, 0x7b,
- 0x83, 0xa9, 0xfe, 0xa4, 0x91, 0x30, 0x46, 0x93, 0xc3, 0x1c, 0x31, 0x0a, 0x90, 0x9e, 0xd2, 0x39,
- 0x4b, 0x3c, 0xb7, 0x48, 0x78, 0x9f, 0xdd, 0x3e, 0x5c, 0x22, 0xbc, 0x9d, 0x5b, 0x4a, 0x0a, 0x67,
- 0x4f, 0x45, 0xe6, 0xb1, 0x8a, 0x21, 0xd1, 0x50, 0x33, 0x86, 0x4c, 0x34, 0xe7, 0xa4, 0x41, 0xa2,
- 0x7b, 0x55, 0xfd, 0xee, 0xaa, 0x9b, 0x8d, 0xb3, 0xdd, 0x9e, 0x76, 0x7d, 0x47, 0x08, 0xf8, 0x12,
- 0xef, 0xf0, 0x99, 0xe3, 0x23, 0x39, 0xf2, 0xf8, 0xb3, 0x88, 0xb5, 0x31, 0xaf, 0xeb, 0x28, 0x5f,
- 0x9d, 0xd8, 0x43, 0x93, 0x73, 0xd3, 0x64, 0x6d, 0xdb, 0xb4, 0xdc, 0x66, 0x7c, 0x26, 0x24, 0xa4,
- 0x74, 0x8c, 0x42, 0x14, 0xdb, 0x0b, 0x9c, 0xcc, 0xd1, 0xca, 0xe1, 0x4b, 0x31, 0x54, 0x83, 0xbd,
- 0xc7, 0x4c, 0xf6, 0x16, 0x98, 0x3f, 0x8a, 0xd2, 0x93, 0x6a, 0x1a, 0xa1, 0xbd, 0x88, 0xa3, 0xf1,
- 0xca, 0x48, 0x80, 0x71, 0x90, 0xf0, 0x9d, 0x9a, 0x49, 0x6c, 0xf5, 0x22, 0x95, 0xa3, 0x1c, 0xdd,
- 0x6c, 0x59, 0x67, 0x47, 0xb2, 0x09, 0xb4, 0x6b, 0x70, 0x94, 0x84, 0x3b, 0x3f, 0x75, 0xfa, 0x66,
- 0xf3, 0x5c, 0xed, 0x49, 0xb8, 0x85, 0xd6, 0x31, 0x7d, 0x72, 0x20, 0xe8, 0x1d, 0x24, 0x1a, 0x41,
- 0x31, 0xe6, 0xcf, 0x09, 0x0f, 0xca, 0x53, 0x77, 0xea, 0x95, 0xf6, 0x5b, 0x33, 0x98, 0x90, 0xd5,
- 0x3e, 0x3f, 0x70, 0xf3, 0x7e, 0x5a, 0x42, 0x08, 0xe6, 0xc1, 0x61, 0x6d, 0x45, 0xc4, 0xeb, 0x7a,
- 0x01, 0x8f, 0x85, 0xaf, 0xdd, 0xce, 0x03, 0xfa, 0x6b, 0x29, 0x3c, 0xbb, 0x2f, 0xda, 0x62, 0xa0,
- 0xdb, 0xe0, 0x82, 0xbc, 0x03, 0x83, 0xae, 0x1b, 0x5d, 0x90, 0x8f, 0x78, 0x0f, 0x47, 0x91, 0xef,
- 0xc4, 0x1e, 0xba, 0x24, 0x3c, 0xae, 0x8f, 0x1f, 0x2e, 0x11, 0x5e, 0xaf, 0xcc, 0x25, 0x05, 0xd2,
- 0xe1, 0xa6, 0xa3, 0xb6, 0x8f, 0x67, 0xe0, 0x7d, 0xd4, 0xf5, 0x1e, 0xbc, 0xf6, 0x6d, 0x31, 0x50,
- 0xed, 0x2d, 0x50, 0x7e, 0x5a, 0x66, 0xf4, 0xcf, 0x65, 0xda, 0xcd, 0x84, 0xf1, 0x9c, 0xec, 0xdc,
- 0xe0, 0x29, 0x26, 0x19, 0x52, 0xa9, 0xe3, 0x87, 0xbf, 0xdc, 0x22, 0x07, 0xd9, 0xb7, 0x53, 0xf0,
- 0x14, 0x5e, 0xd6, 0x9b, 0xbc, 0x03, 0x3c, 0x15, 0x10, 0x71, 0xb6, 0x48, 0x09, 0xd0, 0xa4, 0x57,
- 0xdf, 0x99, 0xd3, 0x45, 0xf1, 0x3d, 0xa2, 0x75, 0x32, 0x34, 0x7f, 0xd1, 0xb3, 0xa9, 0xda, 0x2a,
- 0x50, 0xbb, 0xde, 0x29, 0xb5, 0x0c, 0xf0, 0x54, 0x40, 0x07, 0x9d, 0xe3, 0x24, 0xc6, 0xd5, 0x9f,
- 0xbe, 0xc4, 0xc2, 0x65, 0x4b, 0xfb, 0x01, 0x56, 0x98, 0xa6, 0x14, 0x69, 0xa4, 0xf7, 0x9f, 0x60,
- 0xab, 0x15, 0x91, 0x51, 0x2a, 0x36, 0x3e, 0xb9, 0xe3, 0xfe, 0x9e, 0x9a, 0x82, 0xfd, 0x59, 0x97,
- 0xae, 0xe3, 0x45, 0x07, 0x05, 0x46, 0x31, 0x2d, 0xe7, 0x73, 0x52, 0x88, 0x11, 0xc9, 0x70, 0xf2,
- 0x51, 0x34, 0x5b, 0x86, 0x68, 0xc2, 0xf3, 0xae, 0x2b, 0x2e, 0xa1, 0x58, 0x0b, 0x1c, 0xb7, 0x3f,
- 0x12, 0xfa, 0x4e, 0xff, 0x37, 0xe2, 0x36, 0x4c, 0xa9, 0x87, 0x3e, 0x54, 0xeb, 0x49, 0x2b, 0x11,
- 0x8f, 0x22, 0x0d, 0x6c, 0x44, 0x31, 0x52, 0x21, 0x72, 0x33, 0xe2, 0x32, 0x97, 0x6f, 0x0f, 0xb5,
- 0x1d, 0x23, 0xf1, 0x05, 0x46, 0x72, 0x27, 0x33, 0xa5, 0xd3, 0xa9, 0x62, 0x9d, 0x15, 0x50, 0xbe,
- 0xf4, 0x77, 0xf0, 0x82, 0xee, 0xaa, 0xdf, 0x92, 0xaf, 0xad, 0x94, 0x4f, 0xd0, 0x67, 0xf7, 0xa7,
- 0xd3, 0x12, 0x20, 0x8d, 0x24, 0x3c, 0xb6, 0xc7, 0x83, 0x1b, 0xac, 0xe9, 0xb4, 0x58, 0x07, 0xa6,
- 0xff, 0xd7, 0x1e, 0x81, 0x6d, 0x84, 0xc2, 0x83, 0xcc, 0x5d, 0xf3, 0xd0, 0x1a, 0xd5, 0xc7, 0xcd,
- 0x47, 0xb7, 0x44, 0x80, 0xad, 0x9e, 0xc9, 0x8c, 0xed, 0x0d, 0x6f, 0xa5, 0x5c, 0xbb, 0xd7, 0xeb,
- 0x15, 0xd1, 0x53, 0x34, 0x61, 0xcd, 0x3f, 0xef, 0x7b, 0x58, 0x8a, 0xf3, 0x26, 0x0a, 0xc6, 0xf7,
- 0x8b, 0x5b, 0x5c, 0x95, 0xb6, 0x8f, 0x5e, 0x4f, 0x1d, 0x97, 0x12, 0x9b, 0x2b, 0x81, 0x44, 0x70,
- 0xa0, 0xb5, 0x7f, 0x52, 0xa9, 0x18, 0x23, 0xa8, 0x80, 0x0e, 0xf9, 0x05, 0x48, 0x4f, 0x69, 0xfd,
- 0xf5, 0xf8, 0x75, 0x2d, 0x33, 0x64, 0xdc, 0x68, 0xc4, 0x84, 0xa8, 0xf4, 0xff, 0xbd, 0x95, 0x07,
- 0x28, 0xbc, 0x6f, 0xf5, 0xbb, 0x06, 0x78, 0x2a, 0x20, 0xe2, 0xaf, 0x90, 0x12, 0x63, 0x8b, 0xae,
- 0x57, 0x90, 0xc3, 0xe2, 0xe3, 0x23, 0xf9, 0xf7, 0x92, 0xd8, 0x29, 0x44, 0xe9, 0x85, 0x38, 0x79,
- 0xb2, 0x4f, 0x31, 0xad, 0x9e, 0xfa, 0x15, 0xe4, 0x29, 0x89, 0xc7, 0x51, 0xa3, 0x06, 0x42, 0xec,
- 0x24, 0x37, 0x9c, 0x3d, 0x6e, 0x07, 0x6c, 0x98, 0x91, 0xcd, 0x7c, 0xa8, 0x15, 0x92, 0x56, 0x22,
- 0xcf, 0xbe, 0x54, 0x27, 0xbf, 0x80, 0x92, 0x0e, 0x4d, 0xe1, 0x39, 0x30, 0x06, 0x97, 0x35, 0xb8,
- 0x89, 0x86, 0x95, 0x08, 0xcf, 0xd0, 0x58, 0x78, 0xcb, 0xc5, 0x6a, 0x2e, 0x75, 0xf6, 0x80, 0xf3,
- 0xdd, 0x44, 0x1a, 0xd8, 0x88, 0x62, 0xa4, 0x42, 0xe4, 0x66, 0x07, 0x64, 0xed, 0xde, 0x1e, 0xa9,
- 0x55, 0x4d, 0x0a, 0x7f, 0x9a, 0x7c, 0xff, 0xc0, 0x44, 0x8a, 0x51, 0xf1, 0xb7, 0xf2, 0xfc, 0xfa,
- 0x2b, 0xee, 0x23, 0xc7, 0x1f, 0x97, 0x7d, 0xe7, 0x9d, 0x99, 0xeb, 0x9e, 0x63, 0xce, 0x2d, 0x8d,
- 0x9b, 0x7c, 0xdb, 0xf7, 0xf8, 0x32, 0x6e, 0x34, 0x62, 0x42, 0x54, 0x7a, 0x9e, 0xbf, 0xab, 0xe2,
- 0xeb, 0x89, 0xc8, 0x1a, 0xd1, 0x87, 0xfe, 0x96, 0xdc, 0x2c, 0x45, 0x98, 0x13, 0x05, 0x63, 0x9a,
- 0xce, 0x31, 0xd1, 0x88, 0x62, 0x4e, 0x91, 0xf4, 0x26, 0xc8, 0x05, 0x8b, 0x29, 0x4d, 0x57, 0x18,
- 0xe5, 0xdf, 0xf2, 0x4f, 0x7d, 0xd9, 0xec, 0x13, 0xbb, 0x51, 0xee, 0x15, 0x4a, 0x83, 0x7a, 0x95,
- 0xb1, 0x1d, 0x7d, 0x9f, 0x3a, 0x6b, 0x10, 0x29, 0x94, 0xf2, 0x83, 0x5f, 0xd2, 0xab, 0xe4, 0xcf,
- 0x22, 0x93, 0x04, 0x59, 0xe5, 0xe6, 0x66, 0xc1, 0x28, 0x3b, 0xf4, 0xb4, 0xf7, 0x0b, 0xd9, 0x64,
- 0xbd, 0x96, 0x8e, 0x57, 0xef, 0x6a, 0x04, 0x9b, 0x25, 0xdd, 0x50, 0x67, 0xd5, 0x5a, 0x39, 0x43,
- 0xe9, 0x54, 0x01, 0x87, 0xa8, 0xd8, 0xf8, 0xa1, 0x0a, 0x7e, 0x3d, 0x2d, 0x4d, 0x72, 0xa7, 0x19,
- 0x23, 0x1c, 0x81, 0xf6, 0x38, 0x28, 0x65, 0x3b, 0x43, 0x12, 0xc8, 0x0f, 0xd8, 0xd1, 0xbb, 0xc4,
- 0x75, 0x03, 0xc7, 0xbb, 0x06, 0xc5, 0x9f, 0x36, 0xba, 0xe3, 0xdd, 0xf0, 0x1e, 0x8e, 0xe1, 0x1d,
- 0x9f, 0x05, 0x8a, 0x0e, 0x0a, 0x8c, 0x62, 0x5a, 0x0d, 0xe6, 0xa4, 0xd3, 0x22, 0x51, 0xe0, 0x27,
- 0xa2, 0x68, 0xb6, 0xcf, 0xd0, 0x47, 0x25, 0x9f, 0x56, 0x5c, 0x81, 0xb0, 0x16, 0x38, 0xad, 0x7e,
- 0x0f, 0xd9, 0xbf, 0xfa, 0x71, 0x90, 0x11, 0x7f, 0x0c, 0x54, 0x97, 0x36, 0x76, 0x5c, 0x7b, 0xaf,
- 0x54, 0xc2, 0x8f, 0xd0, 0x47, 0xb2, 0xfc, 0x3a, 0x2f, 0xa3, 0x6d, 0x4a, 0x98, 0x28, 0x9e, 0x5a,
- 0x86, 0x5f, 0x2a, 0xf2, 0xbe, 0x40, 0x49, 0x07, 0xc7, 0x91, 0xfd, 0x18, 0x03, 0xaa, 0xfb, 0x5c,
- 0x93, 0x8e, 0x79, 0xc6, 0xdf, 0x8d, 0x76, 0xe8, 0xbc, 0xc9, 0x77, 0xeb, 0x25, 0xa0, 0x3d, 0xab,
- 0x5a, 0x94, 0xb5, 0x85, 0xeb, 0xec, 0xee, 0xbf, 0x48, 0xde, 0xc6, 0xc7, 0xc1, 0xae, 0x87, 0x55,
- 0x3d, 0x6d, 0x3c, 0xc1, 0xda, 0xcb, 0x47, 0xc5, 0x5b, 0xba, 0x25, 0x63, 0x34, 0x69, 0x4d, 0x59,
- 0x94, 0xa5, 0x64, 0x0d, 0x89, 0xa2, 0x7f, 0x4b, 0x6e, 0x16, 0xc3, 0x4c, 0xe8, 0xe3, 0xd0, 0x4d,
- 0x56, 0x1f, 0x46, 0x4d, 0x3e, 0xed, 0xfa, 0x0d, 0xf9, 0xf1, 0x15, 0xff, 0xc6, 0x5f, 0x5a, 0xd9,
- 0xbf, 0x4b, 0x47, 0xca, 0x96, 0x35, 0x02, 0xac, 0xf3, 0x8f, 0x28, 0xd2, 0x8b, 0x2d, 0xfd, 0xc0,
- 0x95, 0x2a, 0xe1, 0xa2, 0x54, 0x6c, 0x7c, 0xb1, 0x05, 0x3f, 0xff, 0xf7, 0xc7, 0x39, 0xb2, 0xed,
- 0xb9, 0xef, 0xdf, 0xae, 0x1d, 0xd4, 0x08, 0xf5, 0x4a, 0x79, 0xa0, 0xce, 0x69, 0xb4, 0x72, 0x86,
- 0x11, 0xa8, 0x02, 0xcd, 0x93, 0x73, 0x33, 0x81, 0x14, 0xfc, 0x7a, 0x5a, 0x9a, 0xe4, 0x8d, 0x32,
- 0x0b, 0xa0, 0xee, 0x03, 0x83, 0x2e, 0x1d, 0x11, 0x63, 0xf0, 0x67, 0x9f, 0xca, 0xb2, 0x30, 0x6a,
- 0x71, 0x7a, 0x96, 0x42, 0xf4, 0x7b, 0x93, 0x58, 0xd5, 0x47, 0x2d, 0x59, 0xa2, 0x60, 0xaa, 0xd8,
- 0xb0, 0x92, 0xf8, 0x30, 0xe7, 0xa5, 0x13, 0xd3, 0xff, 0xdb, 0xbf, 0xe4, 0xfd, 0x71, 0x86, 0x6f,
- 0x1c, 0xac, 0x74, 0xaa, 0x9b, 0xbc, 0x24, 0xc9, 0xce, 0xfa, 0x95, 0xd9, 0xb2, 0xcf, 0x32, 0x1e,
- 0xdc, 0xcb, 0x9f, 0x77, 0x55, 0xac, 0xa7, 0xb8, 0x8f, 0x4f, 0x3b, 0xdf, 0xc2, 0x04, 0x7c, 0x09,
- 0xa8, 0x47, 0xdd, 0x63, 0x8e, 0xa7, 0x3b, 0x74, 0x5e, 0x85, 0xda, 0x94, 0xf3, 0x50, 0xff, 0xb4,
- 0xc1, 0xe8, 0x6e, 0x72, 0x13, 0xde, 0x80, 0x8b, 0x2a, 0x9c, 0x92, 0xbd, 0x5f, 0x11, 0x2c, 0xb7,
- 0x2a, 0x61, 0xa6, 0x68, 0xc2, 0x59, 0x7e, 0x1d, 0xf6, 0xb0, 0xd7, 0x25, 0x4c, 0x14, 0x4f, 0x2d,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xac, 0x3e, 0x8c, 0x9a, 0x7c, 0x19, 0x37, 0x1a, 0x31, 0x21, 0x2a, 0x3d, 0x4f, 0xbe, 0xb4, 0x71,
- 0x48, 0x6e, 0xfb, 0x7a, 0xdc, 0x0e, 0xd8, 0xf3, 0xe1, 0x59, 0xf8, 0x93, 0x2a, 0xe7, 0xac, 0x44,
- 0x7a, 0xda, 0x78, 0x41, 0x77, 0x55, 0x8e, 0x49, 0xb6, 0xb7, 0x4a, 0xc6, 0x68, 0xd2, 0x9a, 0xb2,
- },
- { /* 2 */
- 0x47, 0x35, 0xef, 0xb5, 0xef, 0xef, 0x30, 0xe6, 0xaf, 0xa0, 0x89, 0x86, 0x13, 0x85, 0x5f, 0xe6,
- 0xe9, 0x63, 0xba, 0xe4, 0xba, 0xba, 0x98, 0x67, 0x18, 0xd6, 0x5a, 0x94, 0x21, 0x7c, 0xa5, 0x67,
- 0x8f, 0xb2, 0x8e, 0xde, 0x8e, 0x8e, 0xf7, 0x86, 0xb8, 0x77, 0x64, 0xab, 0x6e, 0x29, 0x15, 0x86,
- 0x4e, 0xe2, 0x6e, 0xfc, 0x6e, 0x6e, 0x95, 0xad, 0x61, 0xf8, 0xdd, 0x44, 0x5e, 0x69, 0xe5, 0xad,
- 0x03, 0xab, 0x76, 0x99, 0x76, 0x76, 0x7a, 0x58, 0x6f, 0xdf, 0x1c, 0xac, 0xd8, 0xe3, 0x3e, 0x58,
- 0xcf, 0xca, 0x1e, 0xed, 0x1e, 0x1e, 0xa4, 0x59, 0xec, 0x5e, 0x60, 0xd2, 0x46, 0x49, 0x9d, 0x59,
- 0x0c, 0xe9, 0x1b, 0x21, 0x1b, 0x1b, 0x2b, 0xa3, 0x7f, 0xfa, 0x70, 0xf5, 0xe6, 0x0a, 0xf8, 0xa3,
- 0xba, 0xae, 0x78, 0x32, 0x78, 0x78, 0xd5, 0xa7, 0x36, 0xbb, 0x43, 0xce, 0xdb, 0xe7, 0x31, 0xa7,
- 0x12, 0x6d, 0xc1, 0x92, 0xc1, 0xc1, 0x89, 0x96, 0x5f, 0xb0, 0xa8, 0x47, 0x9a, 0x1b, 0xb7, 0x96,
- 0xf0, 0xaa, 0x1f, 0xd1, 0x1f, 0x1f, 0x59, 0x6b, 0xc3, 0x15, 0x0f, 0xd9, 0x66, 0x88, 0x3d, 0x6b,
- 0x2b, 0x98, 0x2c, 0x5f, 0x2c, 0x2c, 0x80, 0x14, 0xae, 0x86, 0xff, 0xd7, 0xc9, 0xdf, 0x6b, 0x14,
- 0x2c, 0xd5, 0x53, 0xd9, 0x53, 0x53, 0xe3, 0x2d, 0x55, 0x0f, 0x72, 0x28, 0xf2, 0x3a, 0xbc, 0x2d,
- 0x32, 0x51, 0x89, 0x6a, 0x89, 0x89, 0x41, 0x18, 0x75, 0x45, 0xaa, 0x9a, 0x8e, 0x2b, 0xf3, 0x18,
- 0x1b, 0xba, 0x40, 0xdb, 0x40, 0x40, 0x2c, 0xdd, 0x91, 0xe8, 0xfc, 0x85, 0xd7, 0xf7, 0x0d, 0xdd,
- 0xd2, 0xe5, 0xb2, 0xc7, 0xb2, 0xb2, 0x7c, 0x34, 0xa3, 0xcb, 0xa4, 0xcc, 0xe2, 0xbb, 0xec, 0x34,
- 0x08, 0x0f, 0x12, 0x3e, 0x12, 0x12, 0x32, 0xc2, 0xeb, 0xac, 0xe1, 0xa6, 0x05, 0x0c, 0x11, 0xc2,
- 0xdd, 0xa7, 0xdf, 0x7f, 0xdf, 0xdf, 0x2d, 0xcf, 0xb3, 0xee, 0xc8, 0x95, 0xdc, 0x52, 0x2a, 0xcf,
- 0x60, 0x44, 0xd8, 0xcb, 0xd8, 0xd8, 0x9b, 0x51, 0x7e, 0xdc, 0x06, 0xa4, 0x3c, 0x50, 0xcc, 0x51,
- 0x72, 0x29, 0x19, 0x59, 0x19, 0x19, 0x12, 0xc7, 0x21, 0x6c, 0xae, 0xe3, 0xa6, 0x4b, 0x7b, 0xc7,
- 0x11, 0xc6, 0xb7, 0x0b, 0xb7, 0xb7, 0xf3, 0xce, 0x30, 0x6f, 0xb4, 0xeb, 0x42, 0xf8, 0x89, 0xce,
- 0x06, 0x95, 0xec, 0xf1, 0xec, 0xec, 0xf4, 0xb0, 0xde, 0x7d, 0x38, 0x9b, 0x73, 0x05, 0x7c, 0xb0,
- 0x5d, 0x57, 0x3c, 0x19, 0x3c, 0x3c, 0x8b, 0xb2, 0x1b, 0xbc, 0xc0, 0x67, 0x8c, 0x92, 0xf9, 0xb2,
- 0xe0, 0xb4, 0x3b, 0xad, 0x3b, 0x3b, 0x3d, 0x2c, 0xd6, 0x8e, 0x0e, 0x56, 0x6c, 0x90, 0x1f, 0x2c,
- 0x86, 0x65, 0x0f, 0x97, 0x0f, 0x0f, 0x52, 0xcd, 0x76, 0x2f, 0x30, 0x69, 0x23, 0xc5, 0xaf, 0xcd,
- 0xaa, 0xb0, 0x5c, 0x4e, 0x5c, 0x5c, 0xb1, 0xe0, 0x23, 0x20, 0x42, 0x41, 0xd1, 0xff, 0x13, 0xe0,
- 0x58, 0x69, 0xa6, 0x71, 0xa6, 0xa6, 0x05, 0x5a, 0xaa, 0x1e, 0xe4, 0x50, 0x27, 0x74, 0xbb, 0x5a,
- 0x24, 0xda, 0x41, 0xe7, 0x41, 0x41, 0xd1, 0xef, 0xbe, 0xa3, 0x93, 0x8e, 0xf7, 0x36, 0xad, 0xef,
- 0xdf, 0xd4, 0x3a, 0x91, 0x3a, 0x3a, 0xc0, 0x1e, 0xf9, 0xc5, 0x61, 0x5d, 0x4c, 0x51, 0xbf, 0x1e,
- 0x69, 0x93, 0x59, 0x82, 0x59, 0x59, 0x3e, 0x1a, 0xb0, 0x84, 0x52, 0x66, 0x71, 0xbc, 0x76, 0x1a,
- 0x7a, 0x26, 0x0b, 0x67, 0x0b, 0x0b, 0x20, 0x05, 0xca, 0xc0, 0x4f, 0x45, 0xa3, 0x47, 0x6a, 0x05,
- 0x67, 0x09, 0xa7, 0x4d, 0xa7, 0xa7, 0xf8, 0x68, 0x85, 0x55, 0x8b, 0x5b, 0x07, 0xb5, 0x1b, 0x68,
- 0xec, 0x5d, 0x20, 0x8c, 0x20, 0x20, 0x16, 0x8f, 0xa9, 0x74, 0x7e, 0xa3, 0x8a, 0x9a, 0xe7, 0x8f,
- 0x30, 0x22, 0x6c, 0x84, 0x6c, 0x6c, 0xac, 0xc9, 0x3f, 0x6e, 0x03, 0x52, 0x1e, 0x28, 0x66, 0xc9,
- 0x6a, 0x38, 0x2f, 0x1b, 0x2f, 0x2f, 0x44, 0x42, 0xdf, 0x5b, 0x4e, 0xca, 0xa9, 0x5f, 0x48, 0x42,
- 0x0e, 0x9a, 0xfe, 0xcf, 0xfe, 0xfe, 0xc6, 0x72, 0x35, 0xd1, 0xd9, 0x3d, 0x76, 0x09, 0x6d, 0x72,
- 0x43, 0xd3, 0xe6, 0xaa, 0xe6, 0xe6, 0x29, 0x87, 0x3b, 0xf6, 0x18, 0xd5, 0xf0, 0x83, 0xb6, 0x87,
- 0x2d, 0x0d, 0xc0, 0xae, 0xc0, 0xc0, 0x74, 0xa4, 0x70, 0xfb, 0xc7, 0x4c, 0xba, 0xda, 0x17, 0xa4,
- 0xb3, 0x79, 0xf9, 0x7b, 0xf9, 0xf9, 0x70, 0xec, 0xf8, 0xe3, 0x17, 0x0c, 0x96, 0x0b, 0x8b, 0xec,
- 0xe4, 0x52, 0x32, 0xb2, 0x32, 0x32, 0x24, 0x4d, 0x42, 0xd8, 0x9f, 0x05, 0x8f, 0x96, 0xf6, 0x4d,
- 0x22, 0x4f, 0xad, 0x16, 0xad, 0xad, 0x25, 0x5f, 0x60, 0xde, 0xab, 0x15, 0x84, 0x33, 0xd1, 0x5f,
- 0xab, 0x68, 0xcf, 0x39, 0xcf, 0xcf, 0x26, 0x69, 0x06, 0xd4, 0xf7, 0x25, 0x99, 0x1f, 0xb8, 0x69,
- 0x3d, 0x13, 0xe4, 0xd2, 0xe4, 0xe4, 0x10, 0xe3, 0x65, 0x60, 0xc6, 0xc3, 0xb0, 0xc2, 0x35, 0xe3,
- 0x34, 0xc4, 0x65, 0x9b, 0x65, 0x65, 0xb5, 0xa8, 0xab, 0x38, 0x92, 0x01, 0xfd, 0x2e, 0x8f, 0xa8,
- 0x90, 0xee, 0xc7, 0x1a, 0xc7, 0xc7, 0xc2, 0x3a, 0xbd, 0xc9, 0x09, 0x7d, 0x5a, 0xd8, 0xf1, 0x3a,
- 0x97, 0xa3, 0xb8, 0x9c, 0xb8, 0xb8, 0xa1, 0x03, 0x46, 0x40, 0x84, 0x82, 0x61, 0x3d, 0x26, 0x03,
- 0xb0, 0xd2, 0x8f, 0xe2, 0x8f, 0x8f, 0x0a, 0xb4, 0x97, 0x3c, 0x0b, 0xa0, 0x4e, 0xe8, 0xb5, 0xb4,
- 0xe5, 0x8a, 0xa1, 0xc5, 0xa1, 0xa1, 0xb3, 0xc4, 0x67, 0x2c, 0x2a, 0x61, 0xc7, 0x76, 0x5d, 0xc4,
- 0x42, 0x0b, 0x75, 0xdd, 0x75, 0x75, 0xbe, 0x0e, 0x1e, 0x02, 0xad, 0xb1, 0xb8, 0x63, 0x1d, 0x0e,
- 0x79, 0x8d, 0x7d, 0xfe, 0x7d, 0x7d, 0x5a, 0x5d, 0xa5, 0x1f, 0x53, 0xe9, 0x7b, 0xa4, 0x54, 0x5d,
- 0xc0, 0x88, 0x73, 0x55, 0x73, 0x73, 0xf5, 0xa2, 0xfc, 0x7b, 0x0c, 0x8b, 0x78, 0xa0, 0x5b, 0xa2,
- 0x18, 0x11, 0x36, 0x42, 0x36, 0x36, 0x56, 0x85, 0xfe, 0x37, 0xe0, 0x29, 0x0f, 0x14, 0x33, 0x85,
- 0x4b, 0xdc, 0xf4, 0x94, 0xf4, 0xf4, 0x1b, 0x45, 0xd0, 0x5a, 0xf9, 0x73, 0xf5, 0x8f, 0xa7, 0x45,
- 0xf7, 0xe7, 0x60, 0x57, 0x60, 0x60, 0x3a, 0x52, 0x38, 0x9c, 0x82, 0x26, 0x5d, 0x6d, 0xea, 0x52,
- 0xb8, 0xdd, 0x9d, 0xdc, 0x9d, 0x9d, 0x38, 0x76, 0x7c, 0x90, 0xea, 0x06, 0x4b, 0xe4, 0xa4, 0x76,
- 0xa6, 0x59, 0x47, 0x6f, 0x47, 0x47, 0x9a, 0x43, 0x5c, 0xda, 0x32, 0xb4, 0x37, 0xf5, 0xeb, 0x43,
- 0x59, 0xb1, 0x35, 0x06, 0x35, 0x35, 0x92, 0xd3, 0x8f, 0xea, 0x51, 0x34, 0x6f, 0x94, 0x10, 0xd3,
- 0x64, 0xa2, 0xd1, 0xd4, 0xd1, 0xd1, 0x82, 0x30, 0xea, 0x8a, 0x97, 0xf7, 0xdf, 0x56, 0x25, 0x30,
- 0x36, 0xb7, 0x80, 0x75, 0x80, 0x80, 0x58, 0x79, 0xe1, 0x13, 0x3b, 0xc9, 0x6d, 0x2d, 0x1a, 0x79,
- 0xb4, 0x34, 0x86, 0xfd, 0x86, 0x86, 0x13, 0xd5, 0x03, 0x6a, 0x9a, 0xf3, 0xad, 0xee, 0x5c, 0xd5,
- 0x81, 0x28, 0x70, 0x11, 0x70, 0x70, 0x31, 0xf4, 0x8d, 0xa6, 0xbd, 0x96, 0x18, 0x20, 0x78, 0xf4,
- 0x09, 0xd7, 0x81, 0x49, 0x81, 0x81, 0xa5, 0x4b, 0xce, 0x58, 0x54, 0xc2, 0x4d, 0xec, 0xba, 0x4b,
- 0x78, 0x55, 0xee, 0x89, 0xee, 0xee, 0xcd, 0xd4, 0x80, 0xeb, 0xe6, 0x8d, 0x33, 0x44, 0xff, 0xd4,
- 0xed, 0x85, 0xb3, 0xfb, 0xb3, 0xb3, 0x81, 0x06, 0x8c, 0x80, 0xcb, 0xc7, 0xc2, 0x7a, 0x4c, 0x06,
- 0x5f, 0x24, 0xd9, 0xf7, 0xd9, 0xd9, 0x66, 0x63, 0x51, 0x97, 0x69, 0xaf, 0x1c, 0x91, 0x6c, 0x63,
- 0xda, 0xea, 0xa0, 0xf9, 0xa0, 0xa0, 0x4e, 0xf6, 0x48, 0x67, 0x45, 0x6a, 0xe7, 0xb7, 0xfd, 0xf6,
- 0xc4, 0x6e, 0x7a, 0x4a, 0x7a, 0x7a, 0xec, 0xc3, 0x68, 0x2d, 0x9d, 0xd8, 0x9b, 0xa6, 0xb2, 0xc3,
- 0x29, 0xeb, 0xc9, 0xb1, 0xc9, 0xc9, 0x6d, 0xc5, 0xe4, 0xad, 0x56, 0x1f, 0x59, 0xdc, 0xfe, 0xc5,
- 0xad, 0xfd, 0x23, 0xc8, 0x23, 0x23, 0xd2, 0xd9, 0xd8, 0xa9, 0xcf, 0xbe, 0xea, 0x1a, 0xc4, 0xd9,
- 0x07, 0x4d, 0x7f, 0x86, 0x7f, 0x7f, 0x63, 0x39, 0xfb, 0x89, 0x8d, 0xff, 0x3b, 0xe5, 0xd7, 0x39,
- 0x82, 0x83, 0x06, 0x88, 0x06, 0x06, 0x4b, 0xac, 0xe2, 0x79, 0xa1, 0x3a, 0xc0, 0xc3, 0x46, 0xac,
- 0xe2, 0xc7, 0xde, 0x43, 0xde, 0xde, 0xd0, 0xfd, 0x9c, 0xa5, 0xa7, 0x9e, 0xfc, 0x93, 0x8a, 0xfd,
- 0x31, 0xfa, 0xff, 0xf3, 0xff, 0xff, 0x3b, 0x40, 0x1a, 0x9a, 0xb6, 0x36, 0x56, 0xc8, 0xcd, 0x40,
- 0x17, 0x53, 0x5b, 0xfa, 0x5b, 0x5b, 0x07, 0x7e, 0xee, 0x12, 0x8c, 0x70, 0x31, 0xfd, 0xf5, 0x7e,
- 0x9f, 0xac, 0xaa, 0xa2, 0xaa, 0xaa, 0x93, 0xc1, 0xad, 0xec, 0x65, 0x24, 0x64, 0x31, 0x37, 0xc1,
- 0x0b, 0xa4, 0x64, 0xa7, 0x64, 0x64, 0x48, 0x9a, 0x84, 0x73, 0xfd, 0x0a, 0xdd, 0xef, 0x2f, 0x9a,
- 0x16, 0x8b, 0xc8, 0x8d, 0xc8, 0xc8, 0x90, 0xf7, 0xcb, 0xe6, 0x39, 0x14, 0x79, 0x1d, 0x5e, 0xf7,
- 0x7f, 0x18, 0x91, 0x0f, 0x91, 0x91, 0xae, 0xed, 0x7b, 0x62, 0x6b, 0x72, 0x08, 0xa1, 0x28, 0xed,
- 0x23, 0x97, 0x3e, 0x61, 0x3e, 0x3e, 0xb2, 0xd6, 0x45, 0x2a, 0x1e, 0x71, 0xcc, 0xd3, 0x7a, 0xd6,
- 0x6b, 0xe0, 0xbc, 0x6c, 0xbc, 0xbc, 0xd3, 0xcb, 0xfa, 0xaf, 0xfb, 0xae, 0xe1, 0xbf, 0xe3, 0xcb,
- 0xa9, 0x1b, 0x2a, 0xd7, 0x2a, 0x2a, 0xcb, 0xb8, 0x4c, 0xff, 0x5e, 0xed, 0x09, 0x1c, 0x2d, 0xb8,
- 0x8b, 0x54, 0x87, 0xc1, 0x87, 0x87, 0xee, 0xe7, 0x2c, 0x21, 0xf5, 0xf8, 0x8d, 0x2f, 0xfc, 0xe7,
- 0xb7, 0x9f, 0xf0, 0x64, 0xf0, 0xf0, 0x69, 0x8d, 0x6c, 0xb5, 0x86, 0x5f, 0x75, 0x0d, 0x62, 0x8d,
- 0x13, 0xb5, 0x52, 0xe5, 0x52, 0x52, 0x1e, 0x1f, 0x7a, 0x44, 0x1d, 0x23, 0xd2, 0xfb, 0x1c, 0x1f,
- 0x1c, 0xf7, 0x3f, 0x5d, 0x3f, 0x3f, 0x4f, 0xe4, 0x6a, 0x61, 0x71, 0x7a, 0xec, 0x12, 0xda, 0xe4,
- 0xfb, 0x0e, 0x7b, 0x76, 0x7b, 0x7b, 0x11, 0xf1, 0x47, 0x66, 0xf2, 0xd3, 0xbb, 0x67, 0x12, 0xf1,
- 0x62, 0x37, 0x3d, 0x25, 0x3d, 0x3d, 0x76, 0x80, 0x34, 0xf7, 0xaf, 0x6c, 0xac, 0x53, 0x59, 0x80,
- 0xf2, 0xd9, 0xfa, 0x3f, 0xfa, 0xfa, 0xb4, 0xba, 0x89, 0x3e, 0xa6, 0x11, 0xf6, 0x8b, 0xa8, 0xba,
- 0x3b, 0x86, 0x08, 0x23, 0x08, 0x08, 0xe4, 0x53, 0xbb, 0x1d, 0xfe, 0x58, 0xc3, 0xc7, 0x49, 0x53,
- 0x9a, 0x92, 0x30, 0xca, 0x30, 0x30, 0x1d, 0x29, 0x1c, 0x4e, 0x41, 0x13, 0xcf, 0xd7, 0x75, 0x29,
- 0x75, 0x64, 0x66, 0xdf, 0x66, 0x66, 0x71, 0xfe, 0xda, 0xe5, 0x23, 0x1c, 0x9d, 0xae, 0xac, 0xfe,
- 0xea, 0xc8, 0xcc, 0x7d, 0xcc, 0xcc, 0xe2, 0x3f, 0x77, 0x09, 0x46, 0x38, 0xf9, 0x9f, 0x9b, 0x3f,
- 0xd0, 0x96, 0x57, 0x29, 0x57, 0x57, 0x91, 0xe5, 0xe9, 0xe0, 0x0d, 0x04, 0x72, 0xb8, 0x79, 0xe5,
- 0x2a, 0x40, 0xbf, 0x28, 0xbf, 0xbf, 0x17, 0x9d, 0x8b, 0x72, 0x4a, 0xb3, 0x81, 0x3f, 0xc0, 0x9d,
- 0x91, 0x36, 0x54, 0x6d, 0x54, 0x54, 0x55, 0xb3, 0x98, 0x3d, 0xbc, 0x19, 0x12, 0x38, 0x5a, 0xb3,
- 0x02, 0x73, 0xe5, 0xee, 0xe5, 0xe5, 0xed, 0xd1, 0x4a, 0x2b, 0xa9, 0xc8, 0x90, 0x03, 0x95, 0xd1,
- 0x46, 0xed, 0x7c, 0xc2, 0x7c, 0x7c, 0xa7, 0x6f, 0x8a, 0x54, 0x3c, 0xe2, 0x5b, 0x65, 0xf4, 0x6f,
- 0xa7, 0x81, 0xd4, 0x18, 0xd4, 0xd4, 0x0d, 0xca, 0x79, 0x2e, 0x87, 0xd0, 0x7f, 0x15, 0x40, 0xca,
- 0xdc, 0x7f, 0x4c, 0x08, 0x4c, 0x4c, 0xba, 0x46, 0x96, 0x1a, 0x7d, 0xf1, 0x94, 0xb2, 0x81, 0x46,
- 0x27, 0x71, 0x37, 0x7e, 0x37, 0x37, 0xab, 0xb7, 0xd1, 0x7c, 0x8f, 0x22, 0x2f, 0xd5, 0x93, 0xb7,
- 0x76, 0xcf, 0x10, 0x46, 0x10, 0x10, 0x0b, 0xa6, 0xb5, 0x3a, 0x3f, 0xb0, 0x45, 0x4d, 0x92, 0xa6,
- 0xa4, 0x2a, 0xa2, 0x81, 0xa2, 0xa2, 0x77, 0x92, 0x16, 0xf1, 0x9b, 0x7c, 0xa7, 0xf6, 0x7e, 0x92,
- 0xca, 0xf4, 0x84, 0x85, 0x84, 0x84, 0x2a, 0xb1, 0x5d, 0xfc, 0x44, 0xe5, 0xed, 0xaf, 0xdf, 0xb1,
- 0x96, 0x7b, 0x2b, 0xeb, 0x2b, 0x2b, 0x36, 0x8a, 0x63, 0xb4, 0x31, 0xe6, 0x29, 0xdd, 0x8d, 0x8a,
- 0x70, 0x5a, 0xfc, 0xb7, 0xfc, 0xfc, 0xff, 0x16, 0x6b, 0x47, 0x07, 0x2b, 0x36, 0x48, 0xee, 0x16,
- 0x54, 0x80, 0xbd, 0x50, 0xbd, 0xbd, 0x2e, 0xf9, 0xd5, 0xe4, 0x94, 0xa5, 0xc1, 0x7e, 0x43, 0xf9,
- 0xe1, 0x6c, 0xa8, 0xda, 0xa8, 0xa8, 0xaa, 0xa5, 0xf3, 0x7a, 0xbb, 0x32, 0x24, 0x70, 0xb4, 0xa5,
- 0x6f, 0x06, 0xb5, 0x73, 0xb5, 0xb5, 0xca, 0xaa, 0x6e, 0xf9, 0x6a, 0xfd, 0x02, 0xb9, 0x0a, 0xaa,
- 0x39, 0xf5, 0xed, 0xcd, 0xed, 0xed, 0x09, 0x82, 0xf1, 0x36, 0x57, 0x90, 0x53, 0xc4, 0xdc, 0x82,
- 0x33, 0x89, 0x1a, 0x1d, 0x1a, 0x1a, 0xd6, 0x91, 0x50, 0xb1, 0x1f, 0xfe, 0xc6, 0xcb, 0x58, 0x91,
- 0xdb, 0x32, 0x33, 0x8e, 0x33, 0x33, 0xd9, 0x7f, 0x6d, 0x93, 0xf0, 0x0e, 0xaf, 0x57, 0x56, 0x7f,
- 0xa0, 0xcc, 0xab, 0x9e, 0xab, 0xab, 0x6e, 0xf3, 0x82, 0xa7, 0x0a, 0x2f, 0x44, 0xf0, 0x97, 0xf3,
- 0xfe, 0x30, 0xe1, 0x1e, 0xe1, 0xe1, 0x9f, 0x19, 0xf6, 0xc4, 0xd6, 0xe4, 0x10, 0x81, 0x50, 0x19,
- 0xb2, 0xa1, 0x6a, 0x0c, 0x6a, 0x6a, 0xe7, 0x65, 0xdd, 0x17, 0xa2, 0x68, 0xde, 0xeb, 0x20, 0x65,
- 0x10, 0x1e, 0x24, 0x7c, 0x24, 0x24, 0x64, 0x47, 0x15, 0x9b, 0x01, 0x8f, 0x0a, 0x18, 0x22, 0x47,
- 0x71, 0x82, 0x6f, 0xc0, 0x6f, 0x6f, 0x68, 0x9f, 0x4e, 0xb3, 0xb2, 0x4f, 0x7e, 0xa8, 0x45, 0x9f,
- 0x87, 0xbd, 0x9c, 0xe0, 0x9c, 0x9c, 0xc5, 0x44, 0x53, 0xdb, 0x85, 0x0d, 0x6b, 0x25, 0x04, 0x44,
- 0x35, 0x1c, 0xf6, 0xec, 0xf6, 0xf6, 0x22, 0x21, 0x8e, 0xcc, 0x27, 0x65, 0xb5, 0xce, 0x24, 0x21,
- 0x38, 0x2d, 0x7e, 0xba, 0x7e, 0x7e, 0x9e, 0x0b, 0xd4, 0xc2, 0xe2, 0xf4, 0x1b, 0x24, 0x77, 0x0b,
- 0x52, 0x15, 0x51, 0xa1, 0x51, 0x51, 0xda, 0x49, 0x0b, 0x99, 0xac, 0x3e, 0xb2, 0x7b, 0x3f, 0x49,
- 0x65, 0x7a, 0x42, 0xa3, 0x42, 0x42, 0x15, 0xb9, 0xcf, 0x7e, 0x22, 0x93, 0x97, 0xb6, 0x8e, 0xb9,
- 0xde, 0x0c, 0xa9, 0xe6, 0xa9, 0xa9, 0x57, 0x97, 0xdc, 0x31, 0xd4, 0x39, 0x04, 0xb1, 0x14, 0x97,
- 0x8e, 0x6a, 0x1d, 0xa9, 0x1d, 0x1d, 0x60, 0x0f, 0x9d, 0x83, 0xd1, 0xcf, 0x26, 0xc9, 0xbe, 0x0f,
- 0xa8, 0xc3, 0xb9, 0xa0, 0xb9, 0xb9, 0x5c, 0x31, 0x69, 0x0b, 0xeb, 0x89, 0x41, 0xfc, 0x86, 0x31,
- 0xfd, 0x9b, 0x97, 0x87, 0x97, 0x97, 0xe5, 0x41, 0x99, 0x1b, 0xca, 0x48, 0xc8, 0x62, 0x6e, 0x41,
- 0x2e, 0xa6, 0xb6, 0x37, 0xb6, 0xb6, 0x0e, 0xfc, 0x1f, 0x24, 0xdb, 0xe0, 0x62, 0x39, 0x29, 0xfc,
- 0x01, 0xd8, 0x93, 0x77, 0x93, 0x93, 0x97, 0x89, 0x25, 0xf4, 0xb5, 0x64, 0x48, 0xe0, 0xab, 0x89,
- 0xf8, 0xa5, 0x0d, 0xef, 0x0d, 0x0d, 0x6b, 0xa9, 0x28, 0xb9, 0xee, 0x7f, 0x63, 0x84, 0x2c, 0xa9,
- 0x8c, 0x19, 0xf8, 0x47, 0xf8, 0xf8, 0x8d, 0xde, 0xd7, 0xa8, 0x78, 0x07, 0xb6, 0xca, 0x2b, 0xde,
- 0xbb, 0x76, 0xeb, 0x45, 0xeb, 0xeb, 0x42, 0x2e, 0x13, 0x4f, 0xf6, 0xaa, 0x93, 0x07, 0x9a, 0x2e,
- 0x49, 0xaf, 0x11, 0x7a, 0x11, 0x11, 0xf6, 0x94, 0x9a, 0x71, 0x50, 0xbb, 0x65, 0x8c, 0x32, 0x94,
- 0x44, 0x9e, 0x99, 0x2c, 0x99, 0x99, 0x4a, 0xbe, 0xc0, 0x7f, 0x95, 0x2a, 0xcb, 0x66, 0x61, 0xbe,
- 0xbf, 0x90, 0xe2, 0x5a, 0xe2, 0xe2, 0x5b, 0x4f, 0x87, 0x19, 0x67, 0xf9, 0x70, 0x01, 0x73, 0x4f,
- 0xef, 0xf6, 0x56, 0x15, 0x56, 0x56, 0x6c, 0xd7, 0xc6, 0xab, 0x62, 0x0f, 0x52, 0x79, 0xd9, 0xd7,
- 0xfc, 0x43, 0x04, 0xf0, 0x04, 0x04, 0x72, 0xc8, 0xbc, 0xef, 0x7f, 0x2c, 0x80, 0x82, 0xc5, 0xc8,
- 0x3a, 0x5e, 0x9b, 0x54, 0x9b, 0x9b, 0x73, 0xda, 0x9e, 0xe9, 0x4b, 0x3c, 0x8b, 0x27, 0xe2, 0xda,
- 0xb1, 0x0a, 0x1c, 0x95, 0x1c, 0x1c, 0x9d, 0x3d, 0xb2, 0xc8, 0xbe, 0xc4, 0x06, 0x08, 0x1e, 0x3d,
- 0xf9, 0x7d, 0x9e, 0x98, 0x9e, 0x9e, 0xfc, 0x20, 0x0d, 0x4d, 0x5b, 0x1b, 0x2b, 0x64, 0x87, 0x20,
- 0x99, 0x39, 0x46, 0x53, 0x46, 0x46, 0x67, 0x71, 0x73, 0x91, 0x5d, 0xbf, 0x17, 0x34, 0x4b, 0x71,
- 0xd8, 0x99, 0x45, 0x17, 0x45, 0x45, 0xa3, 0x27, 0x02, 0x4c, 0xec, 0xa2, 0x77, 0xb4, 0x68, 0x27,
- 0xc9, 0x5f, 0xf2, 0x1c, 0xf2, 0xf2, 0x50, 0xe9, 0x32, 0x23, 0x58, 0x49, 0x35, 0x4c, 0xe1, 0xe9,
- 0x61, 0x9c, 0x4b, 0xbc, 0x4b, 0x4b, 0x0c, 0xd8, 0x5b, 0x28, 0xb3, 0xc0, 0x74, 0xb0, 0x67, 0xd8,
- 0x3c, 0xcb, 0x77, 0xa5, 0x77, 0x77, 0x87, 0x6a, 0x40, 0x94, 0x73, 0xa7, 0xf8, 0x22, 0x9e, 0x6a,
- 0x89, 0x27, 0x62, 0x2f, 0x62, 0x62, 0x03, 0x36, 0x66, 0x0a, 0x5c, 0x30, 0x1d, 0x2c, 0x69, 0x36,
- 0x0f, 0x42, 0x6d, 0xb8, 0x6d, 0x6d, 0x51, 0xfb, 0x10, 0x25, 0x6c, 0x59, 0x3e, 0xe9, 0xc6, 0xfb,
- 0x5c, 0x8f, 0xaf, 0x6e, 0xaf, 0xaf, 0x1c, 0x3b, 0x3e, 0x48, 0x75, 0x03, 0xc4, 0x72, 0x52, 0x3b,
- 0xbe, 0x48, 0x71, 0x2d, 0x71, 0x71, 0xcc, 0xc6, 0xa2, 0xed, 0xd2, 0x9d, 0x38, 0xe1, 0xd8, 0xc6,
- 0xc2, 0xfb, 0x96, 0xbb, 0x96, 0x96, 0x18, 0x73, 0xb6, 0x50, 0xa5, 0x43, 0xe8, 0xa3, 0xce, 0x73,
- 0xc5, 0xb6, 0xe9, 0x3d, 0xe9, 0xe9, 0x7b, 0x4a, 0x4d, 0xd9, 0x28, 0xbc, 0xd3, 0x46, 0x19, 0x4a,
- 0x88, 0xff, 0xf1, 0x58, 0xf1, 0xf1, 0x94, 0xbf, 0x43, 0xfe, 0xe9, 0x54, 0x55, 0xcc, 0xc2, 0xbf,
- 0xa1, 0x14, 0x38, 0xe9, 0x38, 0x38, 0xf9, 0x7a, 0xa7, 0x53, 0xbf, 0x4b, 0x0c, 0x10, 0x3c, 0x7a,
- 0x1d, 0x2f, 0xac, 0x2a, 0xac, 0xac, 0xd8, 0x6d, 0x4f, 0x95, 0xc4, 0x1e, 0xa4, 0xf2, 0x71, 0x6d,
- 0xc7, 0xc5, 0x0c, 0xd3, 0x0c, 0x0c, 0x96, 0x9b, 0x07, 0xf2, 0x81, 0x74, 0x43, 0x45, 0x8c, 0x9b,
- 0x6c, 0xad, 0xc3, 0xea, 0xc3, 0xc3, 0xb0, 0xf2, 0x01, 0x26, 0x76, 0x51, 0xda, 0x5a, 0x34, 0xf2,
- 0x85, 0xce, 0x79, 0x0e, 0x79, 0x79, 0x28, 0x95, 0x19, 0xf0, 0x2c, 0xc5, 0xfb, 0x26, 0x91, 0x95,
- 0x9d, 0xdf, 0x4f, 0x4c, 0x4f, 0x4f, 0x7e, 0x10, 0xe7, 0xc7, 0xcc, 0xec, 0xf4, 0x32, 0xa2, 0x10,
- 0xd3, 0x3d, 0x21, 0xb0, 0x21, 0x21, 0xeb, 0xbd, 0x86, 0x3f, 0x11, 0xa8, 0xaa, 0x5b, 0x47, 0xbd,
- 0xd1, 0x4e, 0xc4, 0x5e, 0xc4, 0xc4, 0x06, 0x6c, 0xcc, 0x14, 0xb8, 0x60, 0x3a, 0x58, 0xd2, 0x6c,
- 0x1e, 0x84, 0xda, 0xb3, 0xda, 0xda, 0xa2, 0x35, 0x20, 0x4a, 0xd8, 0xb2, 0x7c, 0x11, 0x4f, 0x35,
- 0x3e, 0xb8, 0x92, 0x4b, 0x92, 0x92, 0x6a, 0xbb, 0x0a, 0xbf, 0xda, 0x6f, 0x68, 0x21, 0x0b, 0xbb,
- 0x84, 0x16, 0xea, 0x79, 0xea, 0xea, 0xbf, 0x1c, 0x3c, 0x04, 0x99, 0xa1, 0xb3, 0xc6, 0x3a, 0x1c,
- 0x2f, 0x7e, 0x25, 0x40, 0x25, 0x25, 0x99, 0x75, 0x3a, 0xd0, 0x6e, 0x84, 0x2a, 0xd9, 0x82, 0x75,
- 0x7d, 0x6b, 0x74, 0xe1, 0x74, 0x74, 0x43, 0x3c, 0x31, 0x49, 0xc2, 0xba, 0x98, 0xa2, 0xbd, 0x3c,
- 0x74, 0xbc, 0xf5, 0xa8, 0xf5, 0xf5, 0xe6, 0x77, 0xff, 0x11, 0x96, 0x78, 0xd5, 0x4e, 0x07, 0x77,
- 0x41, 0xa0, 0x03, 0x44, 0x03, 0x03, 0xc4, 0x56, 0x71, 0xdd, 0xb1, 0x1d, 0x60, 0x80, 0x23, 0x56,
- 0x50, 0x66, 0xb4, 0x4f, 0xb4, 0xb4, 0x37, 0x98, 0x41, 0xb2, 0x05, 0xf6, 0x22, 0x78, 0xaa, 0x98,
- 0x21, 0xe4, 0xdb, 0x8f, 0xdb, 0xdb, 0x5f, 0x07, 0x0f, 0x01, 0xb7, 0xb9, 0x5c, 0xd0, 0xef, 0x07,
- 0x55, 0x58, 0x2e, 0x27, 0x2e, 0x2e, 0xb9, 0x70, 0xf0, 0x10, 0x21, 0xc1, 0x89, 0x9e, 0xe8, 0x70,
- 0xe7, 0xf9, 0x44, 0x2b, 0x44, 0x44, 0x5e, 0x15, 0x2d, 0x07, 0x83, 0xa9, 0x57, 0x75, 0xc8, 0x15,
- 0xcd, 0xb9, 0xfb, 0x03, 0xfb, 0xfb, 0x49, 0x88, 0xa6, 0x75, 0xc9, 0x1a, 0xd6, 0x4a, 0x08, 0x88,
- 0x0d, 0x31, 0x88, 0x56, 0x88, 0x88, 0xbc, 0x2a, 0x5a, 0x0e, 0xc5, 0x91, 0xae, 0xea, 0x53, 0x2a,
- 0x7c, 0xb3, 0xe7, 0x96, 0xe7, 0xe7, 0xd4, 0xb5, 0x14, 0xbd, 0x77, 0xde, 0xd0, 0x42, 0x16, 0xb5,
- 0x37, 0x6f, 0x13, 0x02, 0x13, 0x13, 0xcf, 0xf0, 0xc4, 0xe7, 0x8e, 0xad, 0x25, 0xcd, 0xb1, 0xf0,
- 0x1a, 0x62, 0xd3, 0xac, 0xd3, 0xd3, 0xbb, 0x54, 0xb4, 0x1c, 0x49, 0xe1, 0x9f, 0x17, 0xa6, 0x54,
- 0xa2, 0xbf, 0x4e, 0x70, 0x4e, 0x4e, 0x83, 0x22, 0xc8, 0x8c, 0xa3, 0xe7, 0xd4, 0xf3, 0x02, 0x22,
- 0xaf, 0x8e, 0xc6, 0x26, 0xc6, 0xc6, 0x3f, 0x08, 0x92, 0x82, 0x66, 0x76, 0x7a, 0x19, 0x51, 0x08,
- 0xf6, 0x3f, 0xf3, 0x20, 0xf3, 0xf3, 0xad, 0xdb, 0x1d, 0x68, 0x37, 0x42, 0x15, 0x8d, 0x41, 0xdb,
- 0xe8, 0xbb, 0x29, 0x93, 0x29, 0x29, 0x0f, 0xee, 0x3d, 0x22, 0xef, 0xf0, 0x69, 0x9c, 0x0e, 0xee,
- 0x7e, 0xc0, 0x02, 0x78, 0x02, 0x02, 0x39, 0x64, 0x5e, 0x96, 0xde, 0x16, 0x40, 0x41, 0x83, 0x64,
- 0x5e, 0xfc, 0x4a, 0x80, 0x4a, 0x4a, 0xf1, 0xea, 0x74, 0x63, 0xdc, 0xcb, 0x54, 0x71, 0xc7, 0xea,
- 0xfa, 0xd6, 0xe8, 0x01, 0xe8, 0xe8, 0x86, 0x78, 0x62, 0x92, 0x47, 0xb7, 0xf3, 0x87, 0xb9, 0x78,
- 0xb5, 0xec, 0x15, 0x8a, 0x15, 0x15, 0x84, 0x5c, 0x26, 0x9e, 0x2f, 0x97, 0xe5, 0x0e, 0xf7, 0x5c,
- 0x92, 0x9d, 0x22, 0xf4, 0x22, 0x22, 0x2f, 0xeb, 0xf7, 0xe2, 0xa0, 0xb5, 0xca, 0xdb, 0x64, 0xeb,
- 0x56, 0xf3, 0x58, 0xbe, 0x58, 0x58, 0xc3, 0x28, 0x9f, 0xcf, 0x3d, 0x6d, 0x51, 0x7d, 0xd6, 0x28,
- 0xf1, 0x72, 0x8c, 0xa6, 0x8c, 0x8c, 0xce, 0xe2, 0xe6, 0xe1, 0xba, 0xbd, 0x2e, 0x68, 0x96, 0xe2,
- 0x04, 0xe6, 0x09, 0x1f, 0x09, 0x09, 0x19, 0x61, 0x94, 0x56, 0x91, 0x53, 0xe3, 0x06, 0xe9, 0x61,
- 0x6e, 0xde, 0x26, 0x04, 0x26, 0x26, 0x5d, 0x23, 0x4b, 0x0d, 0xdf, 0x99, 0x4a, 0x59, 0xa1, 0x23,
- 0xa5, 0xf2, 0x31, 0xf6, 0x31, 0x31, 0xe0, 0x1b, 0x33, 0x05, 0x2e, 0x18, 0xef, 0x16, 0xd5, 0x1b,
- 0xe6, 0x21, 0xd7, 0x5c, 0xd7, 0xd7, 0xc9, 0x9c, 0x08, 0xf3, 0x36, 0xcd, 0x1f, 0x95, 0x63, 0x9c,
- 0xc8, 0x87, 0x61, 0x6b, 0x61, 0x61, 0xc7, 0x60, 0x17, 0xd7, 0xed, 0x2d, 0x7d, 0xac, 0x4a, 0x60,
- 0x7b, 0xfe, 0x98, 0x10, 0x98, 0x98, 0xb7, 0x8c, 0xef, 0x34, 0xfa, 0x21, 0xeb, 0xa7, 0xc1, 0x8c,
- 0x73, 0xf1, 0x8a, 0x2e, 0x8a, 0x8a, 0x85, 0x4e, 0x04, 0x98, 0x1b, 0x87, 0xee, 0xab, 0xd0, 0x4e,
- 0x51, 0xbe, 0x27, 0x38, 0x27, 0x27, 0xa0, 0x11, 0x64, 0x46, 0xb0, 0x92, 0x6a, 0x98, 0x01, 0x11,
- 0x95, 0xd0, 0x5d, 0x72, 0x5d, 0x5d, 0x4c, 0xd2, 0x0c, 0x6b, 0x2d, 0x4a, 0xf1, 0x3e, 0xb3, 0xd2,
- 0x66, 0xd1, 0x34, 0x3a, 0x34, 0x34, 0x6f, 0xe1, 0xa0, 0xa1, 0x3e, 0x3f, 0x4f, 0x55, 0xb0, 0xe1,
- 0xd6, 0x03, 0xbb, 0xd8, 0xbb, 0xbb, 0x65, 0x55, 0x37, 0x9d, 0x35, 0x9f, 0x01, 0xbd, 0x05, 0x55,
- 0x5b, 0xc2, 0xd0, 0xe8, 0xd0, 0xd0, 0x7f, 0x02, 0xc5, 0xc1, 0xf8, 0xfc, 0xff, 0x97, 0x85, 0x02,
- 0xe3, 0x1f, 0x4d, 0x34, 0x4d, 0x4d, 0x47, 0x74, 0xb9, 0x51, 0x12, 0xfa, 0xb4, 0x73, 0x21, 0x74,
- 0x63, 0xef, 0xae, 0x52, 0xae, 0xae, 0xe1, 0x09, 0x11, 0x03, 0x1a, 0x08, 0xe4, 0xb3, 0xf2, 0x09,
- 0x9b, 0x4a, 0xa3, 0xbd, 0xa3, 0xa3, 0x8a, 0xa0, 0x39, 0xba, 0xf4, 0x77, 0x87, 0x37, 0xde, 0xa0,
- 0xbd, 0xe3, 0x07, 0xb4, 0x07, 0x07, 0xb6, 0x9e, 0xcd, 0x32, 0xce, 0x31, 0xe0, 0x02, 0xe6, 0x9e,
- 0x77, 0x17, 0x83, 0x31, 0x83, 0x83, 0x9c, 0x2f, 0x90, 0xce, 0x8a, 0xd4, 0x0d, 0xad, 0x39, 0x2f,
- 0x8d, 0xc1, 0x6b, 0x30, 0x6b, 0x6b, 0x1a, 0x57, 0xf2, 0x5c, 0xcd, 0x63, 0xfe, 0x2a, 0x80, 0x57,
- 0xbc, 0x3b, 0x94, 0xc3, 0x94, 0x94, 0x21, 0x17, 0xe8, 0xc6, 0x7b, 0x55, 0xa8, 0xe2, 0x4d, 0x17,
- 0xf3, 0x01, 0x69, 0x48, 0x69, 0x69, 0x23, 0x33, 0xac, 0xca, 0x13, 0x75, 0xbe, 0x6b, 0x03, 0x33,
- 0xf4, 0x4c, 0x16, 0xce, 0x16, 0x16, 0x40, 0x0a, 0x57, 0x43, 0x9e, 0x8a, 0x85, 0x8e, 0xd4, 0x0a,
- 0x26, 0xa9, 0xa4, 0x09, 0xa4, 0xa4, 0x3c, 0x3e, 0xf4, 0x88, 0x3a, 0x46, 0x67, 0x35, 0x38, 0x3e,
- 0xd4, 0x70, 0x5e, 0x36, 0x5e, 0x5e, 0x88, 0x84, 0x7d, 0xb6, 0x9c, 0x57, 0x91, 0xbe, 0x90, 0x84,
- 0x80, 0xf0, 0xe3, 0x66, 0xe3, 0xe3, 0xa6, 0x7d, 0xa8, 0x52, 0x08, 0xf2, 0x50, 0xc0, 0xd3, 0x7d,
- 0x93, 0x45, 0xb1, 0x83, 0xb1, 0xb1, 0xb8, 0x62, 0xd2, 0x16, 0x15, 0xd1, 0x82, 0x3b, 0xcf, 0x62,
- 0xb6, 0x47, 0x63, 0x13, 0x63, 0x63, 0xfe, 0x04, 0x49, 0x41, 0x33, 0x3b, 0x3d, 0xed, 0xc9, 0x04,
- 0x15, 0x20, 0xbe, 0x14, 0xbe, 0xbe, 0xea, 0xaf, 0xa4, 0x39, 0x25, 0xb8, 0xa1, 0xfe, 0x60, 0xaf,
- 0xcc, 0x61, 0x68, 0x74, 0x68, 0x68, 0xde, 0x01, 0x83, 0x81, 0x7c, 0x7e, 0x9e, 0xaa, 0xa3, 0x01,
- 0xac, 0x25, 0xb0, 0xbf, 0xb0, 0xb0, 0x45, 0x50, 0xfd, 0x5d, 0x7a, 0xda, 0xa2, 0xfa, 0x6f, 0x50,
- 0xc1, 0x50, 0xe0, 0x22, 0xe0, 0xe0, 0x62, 0x2b, 0xd9, 0x8f, 0xb9, 0xef, 0x30, 0x40, 0xf0, 0x2b,
- 0xee, 0x2e, 0xc5, 0x62, 0xc5, 0xc5, 0xfb, 0x5e, 0xe3, 0x5f, 0xd7, 0x6b, 0x1a, 0x99, 0x72, 0x5e,
- 0xae, 0x56, 0x55, 0x51, 0x55, 0x55, 0xa8, 0x81, 0xb7, 0x76, 0xd3, 0x12, 0x32, 0xf9, 0xfa, 0x81,
- 0x9c, 0x07, 0xdc, 0x3b, 0xdc, 0xdc, 0xe9, 0x99, 0xc2, 0x33, 0x79, 0x88, 0xbc, 0xd2, 0x09, 0x99,
- 0xd9, 0x41, 0xd6, 0x60, 0xd6, 0xd6, 0x34, 0xae, 0x27, 0xb8, 0x59, 0xc6, 0x3f, 0x54, 0xc3, 0xae,
- 0xa3, 0x67, 0xdd, 0x07, 0xdd, 0xdd, 0x14, 0xab, 0xed, 0x78, 0x16, 0x83, 0x9c, 0x13, 0xa9, 0xab,
- 0x25, 0x02, 0xd2, 0x90, 0xd2, 0xd2, 0x46, 0x66, 0x9b, 0x57, 0x26, 0xea, 0xbf, 0xd6, 0x06, 0x66,
- 0xeb, 0x10, 0x5f, 0x0a, 0x5f, 0x5f, 0x75, 0xb6, 0x52, 0xfd, 0xf3, 0x5c, 0xb1, 0x7f, 0x30, 0xb6,
- 0x40, 0x78, 0x90, 0x33, 0x90, 0x90, 0x53, 0xdf, 0x54, 0x29, 0x04, 0x79, 0x28, 0x60, 0x88, 0xdf,
- 0x48, 0x77, 0x82, 0x0d, 0x82, 0x82, 0x61, 0x1d, 0xbf, 0x85, 0xe5, 0xdf, 0x2d, 0x6c, 0x99, 0x1d,
- 0x6d, 0x75, 0x50, 0x9d, 0x50, 0x50, 0x27, 0x7b, 0x24, 0xd2, 0xc3, 0x35, 0x92, 0xba, 0x9f, 0x7b,
- 0x28, 0x33, 0x5a, 0xc6, 0x5a, 0x5a, 0xfa, 0x4c, 0xc1, 0x59, 0xe3, 0x7b, 0x11, 0x3c, 0x55, 0x4c,
- 0xff, 0xe8, 0x72, 0x69, 0x72, 0x72, 0x08, 0x90, 0xd3, 0x30, 0x63, 0x80, 0x58, 0x61, 0xfb, 0x90,
- 0x0a, 0x7c, 0xf7, 0xd0, 0xf7, 0xf7, 0xdf, 0x13, 0xa1, 0x87, 0x48, 0x6e, 0x95, 0x0f, 0x84, 0x13,
- 0x4f, 0x3a, 0xfd, 0x8b, 0xfd, 0xfd, 0x02, 0x24, 0x44, 0x0c, 0x68, 0x20, 0x16, 0x89, 0x4e, 0x24,
- 0x19, 0xc9, 0xa5, 0x35, 0xa5, 0xa5, 0xc1, 0x0c, 0xdb, 0xc3, 0x55, 0x4d, 0x47, 0xf4, 0x98, 0x0c,
- 0x53, 0xcd, 0xc2, 0xd6, 0xc2, 0xc2, 0x4d, 0xc0, 0x2e, 0x6d, 0x19, 0x5a, 0xfa, 0x9b, 0x94, 0xc0,
- 0xf5, 0x94, 0x85, 0xb9, 0x85, 0x85, 0xd7, 0x83, 0x72, 0xb7, 0x2b, 0xee, 0xcd, 0x6e, 0x7f, 0x83,
- 0xb9, 0x05, 0x0e, 0xab, 0x0e, 0x0e, 0xaf, 0xff, 0x59, 0x64, 0x5f, 0x62, 0x03, 0x04, 0x0f, 0xff,
- 0xcb, 0x2c, 0x17, 0xf2, 0x17, 0x17, 0xbd, 0x38, 0x78, 0x08, 0xf1, 0x81, 0xa5, 0x4f, 0x74, 0x38,
- 0x45, 0x46, 0x0a, 0x5b, 0x0a, 0x0a, 0xdd, 0x37, 0xe5, 0x8b, 0x20, 0x4e, 0x83, 0x86, 0xca, 0x37,
- 0x57, 0x2b, 0xcb, 0xc9, 0xcb, 0xcb, 0x54, 0xa1, 0xba, 0x3b, 0x88, 0x09, 0x19, 0x9d, 0x7d, 0xa1,
- 0xd7, 0xdb, 0x28, 0xaf, 0x28, 0x28, 0xf2, 0xdc, 0x12, 0x69, 0x80, 0xfb, 0x49, 0x5d, 0xae, 0xdc,
- 0x68, 0x4b, 0xca, 0xf5, 0xca, 0xca, 0xa9, 0x93, 0x95, 0x70, 0xe7, 0x02, 0x39, 0x5c, 0xdd, 0x93,
- 0x4c, 0x91, 0x8b, 0x12, 0x8b, 0x8b, 0x78, 0x7c, 0x2b, 0xd3, 0x74, 0x8c, 0xce, 0x6a, 0x70, 0x7c,
- 0x20, 0x3c, 0x48, 0xf8, 0x48, 0x48, 0xc8, 0x8e, 0x2a, 0xf5, 0x02, 0xdd, 0x14, 0x30, 0x44, 0x8e,
- 0x4a, 0x04, 0x67, 0xe3, 0x67, 0x67, 0x8c, 0xcc, 0xf5, 0xae, 0x4c, 0x17, 0xbd, 0x6f, 0x0c, 0xcc,
- 0x05, 0x3e, 0x9a, 0x68, 0x9a, 0x9a, 0x8e, 0xe8, 0xb1, 0xa2, 0x24, 0x37, 0xab, 0xe6, 0x42, 0xe8,
- 0xc6, 0x1d, 0x9f, 0xa4, 0x9f, 0x9f, 0x01, 0x12, 0x22, 0x06, 0x34, 0x10, 0x0b, 0xa5, 0x27, 0x12,
- 0x14, 0xf8, 0x2d, 0x63, 0x2d, 0x2d, 0x7d, 0x26, 0x81, 0xcd, 0x90, 0xdc, 0xe9, 0x1e, 0xcb, 0x26,
- 0x9e, 0x74, 0x39, 0xd5, 0x39, 0x39, 0x04, 0x48, 0x88, 0x18, 0xd0, 0x40, 0x2c, 0xd1, 0x9c, 0x48,
- 0xd5, 0xa8, 0xcd, 0x41, 0xcd, 0xcd, 0x1f, 0x0d, 0x58, 0x42, 0x29, 0x33, 0xd9, 0x5e, 0x3b, 0x0d,
- 0x4d, 0x49, 0x18, 0x65, 0x18, 0x18, 0xef, 0xf5, 0x0e, 0x27, 0xc1, 0xe8, 0x86, 0x8a, 0xdb, 0xf5,
- 0xce, 0x12, 0x8d, 0x9a, 0x8d, 0x8d, 0x33, 0xd0, 0xc9, 0xaa, 0xd5, 0xb6, 0x0e, 0xa9, 0x36, 0xd0,
- 0x5a, 0x1a, 0x43, 0x9f, 0x43, 0x43, 0xe8, 0x8b, 0xe0, 0x35, 0x4d, 0x98, 0xb7, 0x77, 0x2e, 0x8b,
- 0x3f, 0x60, 0x01, 0x3c, 0x01, 0x01, 0xfd, 0x32, 0x2f, 0x4b, 0x6f, 0x0b, 0x20, 0xc1, 0xa0, 0x32,
- 0x8a, 0x8c, 0x14, 0xb6, 0x14, 0x14, 0x79, 0x6e, 0x09, 0xd5, 0x40, 0x9c, 0xc5, 0xcf, 0x57, 0x6e,
- 0x83, 0x5b, 0x95, 0xff, 0x95, 0x95, 0xdc, 0x25, 0xc7, 0x8d, 0x14, 0x5e, 0x88, 0x23, 0xed, 0x25,
- 0xc3, 0x23, 0x05, 0xcc, 0x05, 0x05, 0x8f, 0xfa, 0x93, 0xa4, 0x10, 0x27, 0xa0, 0x43, 0x65, 0xfa,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x94, 0x08, 0xce, 0x05, 0xce, 0xce, 0xdb, 0x5b, 0x29, 0x9f, 0x98, 0x2e, 0xb9, 0xde, 0x18, 0x5b,
- 0x1f, 0x5c, 0x49, 0xc4, 0x49, 0x49, 0x35, 0xbc, 0x05, 0xbe, 0x6d, 0xd6, 0x34, 0xf1, 0xe4, 0xbc,
- 0x98, 0xe1, 0xd5, 0x24, 0xd5, 0xd5, 0xf0, 0xf8, 0x56, 0x65, 0xe8, 0xdb, 0x5f, 0xd4, 0xe0, 0xf8,
- },
- { /* 3 */
- 0xab, 0x5f, 0x0f, 0xc5, 0x97, 0x09, 0x7c, 0xc9, 0x42, 0xc5, 0x39, 0xbd, 0xfd, 0x81, 0x87, 0xfe,
- 0xbb, 0xa5, 0xce, 0xde, 0x05, 0xdd, 0x1c, 0xf8, 0x12, 0xde, 0x45, 0x61, 0xc3, 0xdf, 0xcc, 0x2b,
- 0x83, 0x15, 0xcf, 0x1f, 0x39, 0x08, 0x8c, 0x52, 0xca, 0x1f, 0xff, 0xa8, 0x9e, 0x12, 0xd5, 0x1c,
- 0x0d, 0xe5, 0x99, 0x66, 0x2c, 0xc3, 0x2e, 0xd2, 0x39, 0x66, 0x56, 0x24, 0x2b, 0x05, 0x5f, 0x06,
- 0x3a, 0x3e, 0xb0, 0xfa, 0xbf, 0x2e, 0x9c, 0x05, 0xd2, 0xfa, 0x54, 0x33, 0x2a, 0xb6, 0x28, 0x65,
- 0x4a, 0x9d, 0xb2, 0xbb, 0xc7, 0x47, 0x7f, 0x92, 0xa1, 0xbb, 0xe3, 0x62, 0x90, 0xef, 0x1a, 0x0b,
- 0xe8, 0xf8, 0x85, 0x6e, 0xb9, 0xb8, 0x35, 0x14, 0xce, 0x6e, 0x93, 0xcc, 0xa8, 0x9d, 0xa0, 0x57,
- 0xeb, 0x31, 0x8d, 0xa9, 0x9a, 0xdf, 0x3f, 0x0d, 0xc1, 0xa9, 0x0a, 0x4b, 0x05, 0x3a, 0x68, 0x2c,
- 0x8f, 0xb7, 0xef, 0x85, 0xb5, 0x57, 0xa4, 0x36, 0xf6, 0x85, 0xde, 0xf1, 0x6f, 0xcb, 0x73, 0x33,
- 0xbe, 0x3d, 0xd6, 0x54, 0x60, 0x74, 0x02, 0xd3, 0x03, 0x54, 0x2d, 0x2b, 0xf7, 0xf5, 0x57, 0xa6,
- 0x0f, 0x6b, 0x28, 0x5d, 0xaf, 0x38, 0x22, 0x7d, 0x33, 0x5d, 0xb8, 0xde, 0x5c, 0x7e, 0x6e, 0x54,
- 0x6d, 0xbc, 0x5a, 0x3c, 0xc6, 0x7e, 0xad, 0x74, 0x1a, 0x3c, 0x9d, 0xa9, 0xaf, 0x02, 0x26, 0xbd,
- 0x0a, 0xf3, 0x30, 0xd7, 0xca, 0x91, 0x3c, 0x56, 0x22, 0xd7, 0xd0, 0x94, 0x68, 0x54, 0xf5, 0xd9,
- 0x29, 0x0d, 0x79, 0x26, 0x0e, 0x9d, 0xf6, 0x2d, 0x8d, 0x26, 0xb1, 0x68, 0xb9, 0x4f, 0xab, 0xcb,
- 0x17, 0xec, 0x68, 0xaa, 0x74, 0x86, 0x72, 0xb5, 0x4b, 0xaa, 0xfa, 0x6c, 0x7d, 0x0f, 0xe1, 0x0a,
- 0xb0, 0x11, 0x47, 0xf5, 0x6f, 0xd0, 0x26, 0x18, 0x35, 0xf5, 0xe2, 0x88, 0x71, 0x57, 0xc0, 0xdb,
- 0xc5, 0x2a, 0x5d, 0x3e, 0x72, 0x10, 0xdb, 0xa4, 0x57, 0x3e, 0x3d, 0x93, 0xff, 0x24, 0x69, 0x38,
- 0x4c, 0xcc, 0xa2, 0xf6, 0x81, 0x89, 0x6b, 0xa0, 0xbf, 0xf6, 0x12, 0xaf, 0x09, 0x62, 0x49, 0xfd,
- 0xc3, 0x7b, 0x4d, 0x73, 0x34, 0xde, 0xcf, 0x96, 0x49, 0x73, 0xcc, 0x5e, 0x66, 0xa9, 0x3a, 0xce,
- 0xb5, 0x89, 0x5f, 0x7f, 0x0a, 0x79, 0x38, 0x33, 0x24, 0x7f, 0x8a, 0xc2, 0x45, 0x7d, 0x5b, 0x56,
- 0x74, 0x7c, 0xa3, 0x37, 0xbd, 0x5c, 0xfb, 0x0a, 0x67, 0x37, 0xa8, 0x66, 0x54, 0xaf, 0x50, 0xca,
- 0x94, 0xf9, 0xa7, 0xb5, 0x4d, 0x8e, 0xfe, 0xe7, 0x81, 0xb5, 0x05, 0xc4, 0xe3, 0x1d, 0x34, 0x16,
- 0x1d, 0x1f, 0x58, 0x7d, 0xbe, 0x17, 0x4e, 0xe3, 0x69, 0x7d, 0x2a, 0xf8, 0x15, 0x5b, 0x14, 0xd3,
- 0x25, 0xaf, 0x59, 0xbc, 0x82, 0xc2, 0xde, 0x49, 0xb1, 0xbc, 0x90, 0x31, 0x48, 0x96, 0x0d, 0xe4,
- 0x48, 0x13, 0x03, 0x80, 0x44, 0xbc, 0x73, 0x3d, 0xab, 0x80, 0x0d, 0x98, 0xe7, 0x94, 0x2b, 0x59,
- 0xda, 0xbb, 0xb4, 0x78, 0x4f, 0xfc, 0x99, 0xe8, 0x34, 0x78, 0xf9, 0x91, 0x9d, 0x04, 0x4c, 0xb9,
- 0xdd, 0xad, 0x1d, 0xc9, 0xa9, 0xae, 0x8b, 0x6c, 0x2f, 0xc9, 0x7f, 0x21, 0xde, 0x55, 0xe6, 0x66,
- 0xe9, 0xbf, 0x3c, 0x92, 0x19, 0x24, 0x33, 0xa2, 0xcb, 0x92, 0xe4, 0xb1, 0x72, 0x41, 0x59, 0x7e,
- 0xea, 0x76, 0x34, 0x55, 0x3a, 0x43, 0x39, 0xbb, 0xc4, 0x55, 0x7d, 0x36, 0xdf, 0xe6, 0x91, 0x05,
- 0x73, 0x6a, 0x0a, 0x86, 0x5b, 0x0e, 0xe9, 0x8e, 0x7c, 0x86, 0x2e, 0xd6, 0x17, 0xfe, 0xfa, 0x15,
- 0x2e, 0x1b, 0xd0, 0x97, 0xe8, 0xcf, 0xe4, 0xa9, 0x96, 0x97, 0x37, 0xd8, 0xfa, 0x1e, 0x01, 0x14,
- 0xf5, 0xe7, 0xdd, 0x13, 0x07, 0xaf, 0x7b, 0xf7, 0xa7, 0x13, 0xb9, 0x34, 0xbd, 0xc6, 0xb4, 0x84,
- 0x26, 0x66, 0x51, 0x7b, 0xa1, 0xa5, 0xd4, 0x50, 0xbe, 0x7b, 0x09, 0xb6, 0xe5, 0x31, 0xc5, 0x9f,
- 0xd0, 0x48, 0x84, 0xaf, 0x85, 0x6d, 0xa5, 0xbe, 0x16, 0xaf, 0x29, 0x05, 0xf5, 0x50, 0xb9, 0x60,
- 0xc4, 0x6d, 0xe4, 0xc2, 0xd2, 0x8c, 0xdd, 0x12, 0x52, 0xc2, 0x4a, 0xee, 0x25, 0xf8, 0x90, 0x11,
- 0xf3, 0xb6, 0xcd, 0x5e, 0x41, 0x61, 0x6f, 0xc5, 0xb9, 0x5e, 0x48, 0xf9, 0x24, 0x4b, 0xe7, 0x72,
- 0x7b, 0x17, 0x8b, 0x6a, 0x12, 0x64, 0xd9, 0x77, 0x54, 0x6a, 0x10, 0xb8, 0x08, 0xd1, 0x3e, 0x9e,
- 0x4d, 0x8b, 0x1b, 0x0a, 0x21, 0x15, 0x6d, 0x16, 0xba, 0x0a, 0x65, 0xd2, 0xd3, 0xbe, 0xb0, 0xd4,
- 0x45, 0xf6, 0x9a, 0xe6, 0x68, 0x7f, 0x5d, 0xef, 0x92, 0xe6, 0x5b, 0xbc, 0xcc, 0x91, 0x74, 0x5f,
- 0xa9, 0xd1, 0xbe, 0xfe, 0x14, 0xf2, 0x70, 0x66, 0x48, 0xfe, 0xd7, 0x47, 0x8a, 0xfa, 0xb6, 0xac,
- 0x5e, 0xb8, 0xd2, 0xd6, 0x90, 0xa6, 0x07, 0x3e, 0xe5, 0xd6, 0x80, 0x89, 0x40, 0x47, 0x33, 0x7a,
- 0xd8, 0x35, 0x05, 0x43, 0xcc, 0x07, 0x95, 0x47, 0x3e, 0x43, 0x17, 0x6b, 0xea, 0x7f, 0x7d, 0xeb,
- 0x7e, 0x8f, 0x93, 0xe0, 0x77, 0xcd, 0xc7, 0x5c, 0x45, 0xe0, 0x78, 0xf2, 0x3c, 0xfb, 0xa5, 0x13,
- 0xf2, 0xf1, 0x74, 0xa2, 0xe1, 0xfd, 0x69, 0x73, 0xbc, 0xa2, 0x3f, 0x84, 0xfe, 0x97, 0x1e, 0x5b,
- 0x90, 0x26, 0x06, 0xc3, 0x88, 0xbb, 0xe6, 0x7a, 0x95, 0xc3, 0x1a, 0xf3, 0x0d, 0xeb, 0x56, 0xb2,
- 0x77, 0xb5, 0xab, 0xf0, 0x9e, 0x3b, 0xf1, 0x13, 0x68, 0xf0, 0x31, 0xe1, 0xf9, 0x08, 0x98, 0xb1,
- 0x53, 0x5d, 0x4b, 0xb0, 0xbc, 0x65, 0x29, 0xec, 0xdc, 0xb0, 0xd6, 0xad, 0x6b, 0x42, 0x6c, 0x7c,
- 0xe5, 0x1d, 0x1c, 0x08, 0x95, 0x7b, 0x1b, 0xc6, 0xf7, 0x08, 0xc5, 0xe8, 0x83, 0x98, 0xff, 0x51,
- 0x49, 0x54, 0xba, 0x7c, 0xe4, 0x20, 0x75, 0x8b, 0xae, 0x7c, 0x7a, 0xe5, 0x3d, 0x48, 0xd2, 0x70,
- 0x98, 0x5b, 0x87, 0x2f, 0xc1, 0xd1, 0xd6, 0x83, 0xbd, 0x2f, 0x24, 0x9d, 0x12, 0xc4, 0x92, 0x39,
- 0x13, 0x33, 0xc9, 0xdc, 0xb1, 0xb3, 0x6a, 0x28, 0x5f, 0xdc, 0xe5, 0x5b, 0x93, 0xf9, 0x83, 0xae,
- 0x43, 0xa7, 0x8a, 0xab, 0x2e, 0xb1, 0x49, 0xdd, 0x8c, 0xab, 0xaa, 0x71, 0x55, 0x1c, 0x27, 0xa9,
- 0xdc, 0xea, 0xa4, 0x35, 0x09, 0x32, 0x8d, 0xda, 0x2a, 0x35, 0x08, 0x5c, 0x04, 0x89, 0x1f, 0x4f,
- 0xc7, 0xa4, 0xec, 0x05, 0xf1, 0xeb, 0xd7, 0x0b, 0x5d, 0x05, 0xd3, 0x69, 0x88, 0x5f, 0x58, 0x6a,
- 0xa0, 0xeb, 0x86, 0xee, 0xfd, 0x04, 0x46, 0x29, 0x65, 0xee, 0x9e, 0x54, 0x4f, 0x09, 0x8b, 0x0e,
- 0xcc, 0x10, 0x65, 0x2e, 0x9b, 0xe6, 0xed, 0xeb, 0x7a, 0x2e, 0x74, 0x80, 0x3a, 0xd7, 0x54, 0x9a,
- 0x14, 0x25, 0x60, 0x6d, 0x57, 0xe1, 0x78, 0xac, 0x44, 0x6d, 0x63, 0xeb, 0xd0, 0xa8, 0x29, 0x71,
- 0x52, 0x1a, 0xf2, 0x4c, 0x1c, 0xf9, 0x2f, 0x5a, 0xd9, 0x4c, 0xa1, 0xd0, 0xb1, 0x9e, 0x95, 0x55,
- 0x2f, 0x5c, 0x69, 0x6b, 0x48, 0x53, 0xe2, 0x1f, 0x93, 0x6b, 0x40, 0xa5, 0x20, 0xc2, 0xf8, 0x3d,
- 0x47, 0x78, 0x2b, 0xdd, 0xeb, 0x84, 0x51, 0x40, 0x98, 0xdd, 0xb5, 0x46, 0xbb, 0xea, 0x45, 0x0d,
- 0xa6, 0xba, 0x96, 0xa3, 0xbb, 0xca, 0x52, 0x1b, 0x7b, 0xa3, 0x6f, 0x99, 0xd6, 0x84, 0xd8, 0xf8,
- 0x5f, 0xff, 0x6b, 0x2a, 0x30, 0x3a, 0x01, 0x88, 0xe0, 0x2a, 0xf7, 0xf4, 0x9a, 0x9b, 0xca, 0x53,
- 0xe3, 0x4c, 0x0c, 0x45, 0xd3, 0xb5, 0x0f, 0xf4, 0xe9, 0x45, 0x34, 0x25, 0x1a, 0x15, 0xac, 0xa7,
- 0xb8, 0x6c, 0xc6, 0x19, 0x26, 0xba, 0x16, 0xe1, 0x1d, 0x19, 0xdc, 0xe6, 0x6e, 0x78, 0x04, 0x50,
- 0xa7, 0xfd, 0x2f, 0x5f, 0x1b, 0x56, 0x54, 0xad, 0x7e, 0x5f, 0x18, 0xe4, 0x0c, 0x58, 0x21, 0xd1,
- 0xc0, 0xb2, 0x45, 0xb4, 0x17, 0xb9, 0xc5, 0x8f, 0x46, 0xb4, 0x55, 0xd9, 0xcb, 0x0e, 0xf2, 0xb5,
- 0x23, 0xfe, 0x49, 0xf1, 0xc4, 0x0c, 0xca, 0x7b, 0xaf, 0xf1, 0x61, 0xfc, 0xd1, 0x1b, 0x5e, 0x12,
- 0x2a, 0xc4, 0x71, 0xe1, 0x2d, 0xfa, 0xfc, 0x34, 0x82, 0xe1, 0x28, 0xef, 0x14, 0xe8, 0x63, 0xb0,
- 0x62, 0xd7, 0x72, 0x61, 0x69, 0x46, 0x8f, 0x09, 0x29, 0x61, 0x25, 0x77, 0xf3, 0x7c, 0x48, 0xe9,
- 0x7d, 0x46, 0x9b, 0x27, 0x54, 0xaa, 0xcd, 0x45, 0x4a, 0x27, 0xe1, 0x75, 0x91, 0x5c, 0x6d, 0x68,
- 0x31, 0x8a, 0x39, 0xd1, 0xd5, 0x23, 0xa6, 0xe5, 0xf5, 0xd1, 0xf3, 0xda, 0x98, 0x3e, 0x24, 0x95,
- 0x30, 0xcd, 0x80, 0x2d, 0x75, 0xbf, 0xa0, 0x53, 0xf0, 0x2d, 0x84, 0xa7, 0x42, 0xe2, 0xdd, 0xbc,
- 0xc1, 0xf5, 0xfc, 0x48, 0xb7, 0x25, 0xc3, 0x39, 0x43, 0x48, 0x22, 0xa4, 0x11, 0xd2, 0x0b, 0x9c,
- 0x20, 0x37, 0x41, 0x36, 0xe7, 0x6b, 0xc0, 0x62, 0xa0, 0x36, 0xf8, 0x7b, 0x7c, 0xbc, 0x96, 0x69,
- 0x8a, 0x2f, 0xf7, 0x0f, 0xd0, 0xfe, 0xba, 0x1d, 0xe7, 0x0f, 0xb6, 0xbb, 0x5b, 0xe1, 0xe8, 0xbe,
- 0xd7, 0x5e, 0x2d, 0x1e, 0x63, 0x3f, 0xb7, 0x3a, 0x0d, 0x1e, 0xaf, 0xb5, 0xb6, 0x01, 0x13, 0xbf,
- 0x3d, 0x28, 0x19, 0x4b, 0x59, 0x7c, 0x8e, 0x81, 0xc9, 0x4b, 0xd2, 0x83, 0x69, 0xe7, 0x82, 0xba,
- 0xbf, 0x7a, 0x6f, 0xa8, 0xc0, 0xe8, 0x04, 0x65, 0x06, 0xa8, 0x5a, 0x56, 0x2d, 0x29, 0xae, 0x8f,
- 0xc6, 0xe3, 0x55, 0xf9, 0x51, 0x77, 0xd1, 0xbd, 0x58, 0xf9, 0xa4, 0x14, 0x52, 0x83, 0xa1, 0x43,
- 0x72, 0x2d, 0xb3, 0x7a, 0xfb, 0x92, 0xef, 0x38, 0x79, 0x7a, 0x59, 0xab, 0xcd, 0x22, 0x03, 0x3c,
- 0xdb, 0xfc, 0x0d, 0x84, 0xef, 0x60, 0x9f, 0x5e, 0x31, 0x84, 0x8e, 0xec, 0x47, 0xd8, 0xb5, 0x90,
- 0x15, 0x62, 0xd9, 0x91, 0xf7, 0x7d, 0x7e, 0x1a, 0x41, 0x91, 0x14, 0x96, 0x0a, 0x74, 0xd0, 0x58,
- 0x99, 0x1c, 0x3e, 0xd3, 0x61, 0x4d, 0xd0, 0x35, 0xb8, 0xd3, 0x53, 0xe0, 0xc8, 0x18, 0x6b, 0x10,
- 0x4b, 0xda, 0x0b, 0x47, 0x67, 0xdb, 0x79, 0x24, 0xa4, 0x47, 0x94, 0x1f, 0x4a, 0x33, 0xe3, 0x22,
- 0x34, 0x12, 0x21, 0x5b, 0xb0, 0x8a, 0xb8, 0xce, 0xe4, 0x5b, 0x9b, 0x90, 0xac, 0x14, 0xbf, 0x18,
- 0x60, 0x59, 0xc3, 0x5a, 0xea, 0xbd, 0x83, 0xa6, 0x23, 0x5a, 0xcb, 0x8d, 0x84, 0x07, 0x79, 0xbb,
- 0x92, 0xa8, 0xb7, 0xf8, 0x0b, 0x40, 0xea, 0xd5, 0x9f, 0xf8, 0xf4, 0x09, 0x7a, 0x90, 0x67, 0xe0,
- 0xac, 0x49, 0xa6, 0x74, 0x71, 0x5b, 0x6e, 0x4d, 0x59, 0x74, 0xbf, 0x0d, 0xbe, 0xd0, 0x2d, 0x21,
- 0x6e, 0x75, 0x52, 0xfb, 0xe5, 0x19, 0xa7, 0x6d, 0x15, 0xfb, 0x04, 0x2e, 0x02, 0xa5, 0xee, 0xc6,
- 0xa1, 0xac, 0x3f, 0x12, 0x5d, 0x98, 0x40, 0x9f, 0x60, 0x12, 0xe9, 0x29, 0x95, 0xd5, 0x72, 0x27,
- 0x81, 0x9b, 0x7e, 0x24, 0xba, 0xf3, 0x80, 0xfd, 0xc0, 0x24, 0x11, 0x52, 0xe9, 0x69, 0xe4, 0x4e,
- 0x3b, 0x79, 0x09, 0x06, 0x1f, 0xb2, 0x9a, 0xb3, 0xd7, 0x06, 0x23, 0x4e, 0xf0, 0x6a, 0xd1, 0x4c,
- 0x19, 0xc0, 0xf9, 0x0b, 0x7b, 0x22, 0x56, 0x7e, 0x7d, 0x0b, 0x35, 0xcf, 0xfb, 0xad, 0x76, 0x77,
- 0xe4, 0x5a, 0xa5, 0xf4, 0x35, 0xe7, 0x1d, 0x70, 0xf2, 0xf4, 0xb2, 0x95, 0x59, 0x44, 0x06, 0x78,
- 0x2c, 0x95, 0x61, 0xac, 0x6b, 0x34, 0xe8, 0x06, 0x9c, 0xac, 0xd9, 0x22, 0x8d, 0x65, 0x30, 0x46,
- 0xbd, 0xf4, 0xde, 0x93, 0x43, 0x13, 0x08, 0xca, 0x0c, 0x93, 0xb4, 0xac, 0x5a, 0x52, 0x9f, 0xdd,
- 0xb6, 0x40, 0x57, 0xb8, 0x29, 0x1e, 0x32, 0x2a, 0x2b, 0xb8, 0x13, 0x45, 0xe8, 0xda, 0x93, 0x2d,
- 0xd3, 0x81, 0x8c, 0x68, 0xa6, 0x0a, 0xaf, 0xa7, 0x19, 0x68, 0xb0, 0x82, 0x58, 0xf7, 0x71, 0x1b,
- 0xe7, 0x93, 0xad, 0x33, 0x16, 0x80, 0x17, 0x69, 0xfd, 0x33, 0x2b, 0x12, 0xf4, 0xe3, 0xce, 0x03,
- 0x9b, 0x92, 0x8f, 0xe8, 0xe2, 0xb6, 0xdc, 0x9a, 0xb2, 0xe8, 0xbd, 0x1a, 0xbf, 0x63, 0x5a, 0x42,
- 0x8c, 0x7e, 0xe7, 0x42, 0x96, 0x30, 0xae, 0x2f, 0xf9, 0x42, 0x47, 0x76, 0xc2, 0x6c, 0xbb, 0x48,
- 0x04, 0xdf, 0xa1, 0x76, 0xc5, 0x35, 0x18, 0x9d, 0x14, 0x76, 0x1f, 0x37, 0xee, 0xf6, 0x62, 0xa4,
- 0x86, 0x8d, 0xd7, 0x95, 0x5c, 0xa1, 0x92, 0x79, 0xdb, 0x95, 0x97, 0xe2, 0xaa, 0x38, 0x4e, 0x91,
- 0xef, 0xee, 0x2c, 0xdf, 0x5f, 0xea, 0x27, 0x90, 0xd5, 0xdf, 0x15, 0x7c, 0xeb, 0xcc, 0x0a, 0x88,
- 0x32, 0x43, 0x31, 0x16, 0xf6, 0x44, 0xac, 0xfc, 0xfa, 0x16, 0x6a, 0x5d, 0x35, 0x99, 0xec, 0xee,
- 0x0b, 0xb4, 0x89, 0x2b, 0x6a, 0x0d, 0x3a, 0xe0, 0x27, 0x2b, 0xa7, 0xe9, 0xb2, 0x88, 0x0c, 0xf0,
- 0x9e, 0x0a, 0x97, 0x62, 0x87, 0x1f, 0xc2, 0xb1, 0xa3, 0x62, 0xd5, 0x50, 0x8b, 0x49, 0xc1, 0xcf,
- 0x80, 0xdc, 0xc7, 0xd8, 0x1a, 0x6f, 0x86, 0x4b, 0xc5, 0xd8, 0x66, 0x2f, 0x33, 0xb5, 0x1d, 0x67,
- 0x1c, 0x58, 0xe1, 0x81, 0x1e, 0x8b, 0x48, 0x55, 0x6c, 0x81, 0x5d, 0x85, 0xcf, 0x87, 0xed, 0xfa,
- 0xb1, 0x56, 0xfe, 0x09, 0xcf, 0x4c, 0x20, 0xae, 0x30, 0x09, 0x95, 0xf5, 0xab, 0x8b, 0x39, 0xf2,
- 0xd4, 0x97, 0x25, 0xd9, 0x40, 0x58, 0xbd, 0x23, 0x02, 0xd9, 0x36, 0x32, 0x1b, 0xa6, 0xdb, 0xc4,
- 0x7a, 0x50, 0x32, 0x96, 0xb2, 0xf8, 0xdf, 0xc1, 0x51, 0x96, 0x67, 0xc5, 0xd2, 0x0d, 0xc7, 0xb7,
- 0x5b, 0x20, 0xca, 0x5c, 0xf5, 0x0f, 0x19, 0x15, 0xf4, 0x5c, 0xe8, 0xc3, 0x74, 0x6d, 0xa8, 0xf7,
- 0xa3, 0x22, 0x8e, 0x29, 0xde, 0x63, 0x4c, 0x30, 0x6a, 0x29, 0x07, 0xd3, 0xe2, 0xae, 0x43, 0x75,
- 0xf9, 0x45, 0xfd, 0x89, 0x8b, 0xf0, 0x53, 0x93, 0x9b, 0x89, 0x98, 0x6d, 0x4c, 0x1f, 0x12, 0xab,
- 0x33, 0x04, 0x88, 0xea, 0x56, 0xd8, 0xaa, 0x4a, 0xff, 0xea, 0x1d, 0x20, 0xef, 0x45, 0x15, 0xc7,
- 0x68, 0x24, 0x42, 0xb6, 0xa3, 0xd7, 0xb3, 0x5f, 0x0b, 0xb6, 0xf5, 0xe3, 0x9b, 0x28, 0xbd, 0x30,
- 0x96, 0x77, 0x16, 0x8e, 0xce, 0x75, 0xf2, 0x48, 0x8b, 0x8e, 0xeb, 0x3e, 0x94, 0x66, 0x05, 0x44,
- 0x46, 0x3f, 0x92, 0x21, 0x4b, 0x18, 0x57, 0xf6, 0x9d, 0x21, 0xc2, 0x3b, 0x61, 0x36, 0xbc, 0x24,
- 0x02, 0x8e, 0xb1, 0x3b, 0x83, 0xfb, 0x0c, 0xaf, 0x0a, 0x3b, 0xee, 0xfa, 0x77, 0x7b, 0x31, 0x52,
- 0xff, 0x14, 0xed, 0xc4, 0xcd, 0x3e, 0x47, 0xa1, 0x85, 0xc4, 0x69, 0xa0, 0xd5, 0x92, 0x41, 0x5d,
- 0x95, 0xbe, 0x1e, 0x49, 0xed, 0x12, 0xf8, 0x51, 0x84, 0x49, 0x72, 0xb9, 0x39, 0xc1, 0xcd, 0x3f,
- 0x64, 0x86, 0x62, 0x2c, 0x2f, 0x88, 0x9b, 0x3b, 0x37, 0x2c, 0xd4, 0xba, 0x6a, 0xf1, 0x1b, 0x1f,
- 0x40, 0x6e, 0x82, 0x6c, 0x0d, 0xd6, 0x43, 0xc4, 0x83, 0x6c, 0x33, 0xf6, 0xf8, 0xbb, 0xef, 0xd2,
- 0x41, 0x29, 0x3b, 0x90, 0xad, 0x4a, 0x45, 0x72, 0x86, 0x90, 0x44, 0x8b, 0x22, 0x67, 0x16, 0xfb,
- 0x16, 0xab, 0xd1, 0x56, 0xd4, 0x1a, 0x74, 0x03, 0x4e, 0x56, 0x8d, 0x11, 0xa7, 0xd3, 0x18, 0x23,
- 0x0e, 0x2c, 0x91, 0xa1, 0x0f, 0xa4, 0x24, 0xcb, 0x36, 0xa1, 0xcf, 0xa3, 0x86, 0xa2, 0x97, 0x7d,
- 0xb9, 0x2b, 0x7f, 0xe5, 0x86, 0x26, 0x10, 0x57, 0x18, 0xe5, 0xab, 0x9b, 0xb4, 0xa4, 0xfd, 0x79,
- 0xfd, 0x9a, 0x5c, 0xff, 0x4e, 0xc5, 0x4b, 0x0e, 0x8f, 0xff, 0x87, 0x5a, 0xa2, 0xe9, 0x70, 0x0f,
- 0x6f, 0x32, 0xeb, 0x07, 0x45, 0x85, 0xa1, 0xdb, 0x10, 0x07, 0x73, 0x53, 0xd8, 0x79, 0x17, 0xef,
- 0x91, 0x61, 0xbf, 0x3f, 0x28, 0x27, 0xe0, 0xcc, 0x90, 0x3f, 0x6d, 0x8e, 0xd7, 0x37, 0xaf, 0x9b,
- 0xa5, 0x73, 0x9e, 0x64, 0x98, 0xad, 0x58, 0x02, 0x74, 0x64, 0xf6, 0x1e, 0x7b, 0x23, 0x10, 0x83,
- 0xcf, 0xd9, 0x6d, 0xe9, 0xb8, 0x81, 0xe7, 0xf2, 0x75, 0xe9, 0xed, 0x07, 0x97, 0x70, 0x9c, 0xe1,
- 0x56, 0xc5, 0x53, 0x3a, 0xd9, 0xcc, 0x37, 0xc7, 0xcd, 0x3a, 0xbe, 0xe7, 0x5f, 0x68, 0xf7, 0xf1,
- 0xba, 0xe2, 0x77, 0x22, 0xa5, 0x41, 0x1a, 0x4e, 0x17, 0x22, 0x32, 0x1c, 0x19, 0x03, 0x35, 0x02,
- 0x61, 0x1e, 0x7a, 0xa6, 0x4a, 0x21, 0x85, 0x10, 0x26, 0xa6, 0xbc, 0xf0, 0x5e, 0xdb, 0x80, 0x92,
- 0x18, 0x87, 0x40, 0xf7, 0xdb, 0xbe, 0x50, 0xc8, 0x78, 0xf7, 0x42, 0xb2, 0x21, 0x71, 0x8f, 0x5e,
- 0x54, 0x4b, 0xe2, 0x01, 0x5a, 0x37, 0x3b, 0x68, 0xc7, 0x01, 0x50, 0x1d, 0x28, 0x13, 0xc6, 0xa3,
- 0x8b, 0x68, 0x4e, 0xf3, 0x70, 0x62, 0xbc, 0xab, 0xe2, 0xf3, 0xc1, 0xc6, 0x81, 0x3d, 0x11, 0x97,
- 0x3e, 0xe1, 0x11, 0x8c, 0x7a, 0x1b, 0x84, 0x98, 0xc6, 0x8c, 0x4b, 0x04, 0xc4, 0x40, 0x4a, 0xc1,
- 0x5a, 0x67, 0x73, 0xa0, 0x55, 0x93, 0x1f, 0xa3, 0xf1, 0xa0, 0x9f, 0xbe, 0xae, 0xb1, 0x51, 0xde,
- 0xce, 0x9e, 0xd4, 0x15, 0x18, 0x1d, 0xe1, 0x44, 0x70, 0x15, 0x9a, 0x7a, 0x4d, 0xac, 0x65, 0xc8,
- 0xf7, 0x69, 0x6c, 0x28, 0x84, 0x54, 0x77, 0x58, 0xad, 0x28, 0x57, 0xce, 0xca, 0xbd, 0x85, 0xd6,
- 0xd2, 0xc6, 0x35, 0x94, 0x06, 0x96, 0xa9, 0x11, 0x1c, 0x94, 0xc7, 0xff, 0x82, 0x2b, 0x88, 0x32,
- 0x82, 0x52, 0x76, 0xe3, 0x99, 0x94, 0x8a, 0xe4, 0xcf, 0xe3, 0x88, 0xd5, 0x44, 0xce, 0x2c, 0x35,
- 0xb3, 0xd8, 0x4f, 0x32, 0x4c, 0xb7, 0x2c, 0x01, 0x3a, 0x32, 0x7b, 0x0f, 0xdc, 0xf0, 0x08, 0xa0,
- 0xb4, 0xce, 0xe6, 0x83, 0xaa, 0xe5, 0x3e, 0x85, 0x21, 0x83, 0xfd, 0xbf, 0x9f, 0xa1, 0xa2, 0x7f,
- 0xd6, 0x19, 0x94, 0xe2, 0xc3, 0xa3, 0xb1, 0x8c, 0x08, 0xe2, 0xd8, 0xc8, 0x6c, 0xdd, 0xea, 0x96,
- 0xe1, 0xc2, 0xbd, 0x7e, 0x50, 0x4e, 0x03, 0x5b, 0xe3, 0x7e, 0xda, 0xdf, 0x6d, 0x6e, 0x9d, 0xf5,
- 0xc2, 0x3c, 0xf4, 0x8f, 0x94, 0x42, 0xc9, 0x20, 0x4c, 0x8f, 0xbb, 0x23, 0xbc, 0x75, 0xc3, 0xe7,
- 0x5d, 0x71, 0xda, 0x11, 0xb3, 0xc1, 0x0d, 0x27, 0xea, 0x11, 0x19, 0x0e, 0xed, 0xe0, 0xfb, 0x01,
- 0xfa, 0x8c, 0xf5, 0x4e, 0xa8, 0x97, 0x59, 0x8a, 0x94, 0x4e, 0x01, 0xea, 0xe1, 0xb8, 0xda, 0xd0,
- 0xa4, 0x34, 0x27, 0x98, 0x38, 0x31, 0x5e, 0xb4, 0x71, 0x98, 0x81, 0x63, 0xa1, 0xff, 0xe9, 0xaa,
- 0x1f, 0x91, 0xe9, 0x46, 0x3d, 0xec, 0x42, 0x4c, 0x63, 0x46, 0xc4, 0x02, 0x62, 0x20, 0x25, 0x81,
- 0x0c, 0xa2, 0x20, 0x9a, 0x8c, 0x5f, 0x28, 0x64, 0x3c, 0x9a, 0x21, 0x59, 0xf1, 0xd9, 0xa6, 0x2f,
- 0x01, 0x47, 0xb9, 0xfc, 0xa0, 0x9c, 0x06, 0xb6, 0x05, 0xfc, 0x77, 0x7d, 0xda, 0xdc, 0xf9, 0x29,
- 0x2d, 0xd2, 0xd8, 0x50, 0xcb, 0xa8, 0xee, 0xb0, 0x99, 0x50, 0xae, 0x5f, 0x57, 0xb9, 0xc9, 0x6f,
- 0x67, 0x4f, 0x6a, 0xeb, 0x0c, 0xef, 0x91, 0x22, 0x38, 0xeb, 0x4d, 0x3d, 0xc7, 0x56, 0xd3, 0x64,
- 0xe2, 0x0b, 0xb5, 0xb9, 0x73, 0x29, 0x09, 0x42, 0xec, 0xb9, 0x43, 0x58, 0xc0, 0xc9, 0x55, 0x8e,
- 0x09, 0x3a, 0x38, 0x10, 0xe9, 0xf6, 0x36, 0x4f, 0x2d, 0x10, 0x49, 0x13, 0xc5, 0xf3, 0x3d, 0xa2,
- 0x57, 0x82, 0xea, 0xc6, 0x79, 0x50, 0x31, 0x71, 0xc8, 0xc6, 0xc9, 0x9a, 0x85, 0xb4, 0x0e, 0xd8,
- 0x11, 0xbd, 0x78, 0xe7, 0x32, 0x48, 0x66, 0x87, 0x55, 0xe7, 0x0b, 0xa1, 0xe4, 0x82, 0xb2, 0xfc,
- 0xb7, 0x07, 0xee, 0x44, 0x89, 0x82, 0x34, 0x9c, 0x2e, 0x44, 0x64, 0x38, 0x32, 0x06, 0x6a, 0x04,
- 0xdf, 0x23, 0xac, 0xf2, 0x2a, 0x55, 0x87, 0xc3, 0x25, 0xf2, 0x91, 0xdb, 0xa9, 0x2e, 0xd7, 0x34,
- 0x6a, 0xaa, 0xf3, 0x8d, 0x20, 0x2c, 0xbf, 0xf0, 0x01, 0x8d, 0x1b, 0x19, 0xec, 0x53, 0x8c, 0x62,
- 0x93, 0xef, 0x0e, 0x04, 0xab, 0xdc, 0xec, 0x63, 0x9a, 0x04, 0x83, 0x74, 0xa0, 0x4c, 0x9e, 0xc9,
- 0x24, 0xe8, 0xe0, 0x40, 0x22, 0x5e, 0xd8, 0xff, 0xb4, 0x40, 0xe7, 0x4c, 0x92, 0x4a, 0xf4, 0xcd,
- 0x7f, 0xc8, 0x2a, 0x1c, 0xd7, 0x51, 0xc1, 0xea, 0x40, 0x1c, 0x0f, 0x8f, 0xe6, 0x27, 0x5c, 0x3a,
- 0x66, 0x08, 0xd3, 0x17, 0xac, 0x73, 0x97, 0x94, 0x3d, 0x17, 0x3a, 0x40, 0x1d, 0x8a, 0x2a, 0x4d,
- 0xfe, 0x53, 0x54, 0x38, 0x6d, 0xa2, 0x41, 0x17, 0x80, 0x38, 0x1e, 0xdd, 0x0f, 0x4e, 0xb8, 0x74,
- 0x07, 0x16, 0xa9, 0xb1, 0xe6, 0x52, 0x12, 0x84, 0x1b, 0xb1, 0x86, 0xb0, 0x43, 0x51, 0xaa, 0xdf,
- 0x44, 0xb1, 0x23, 0x1a, 0xc8, 0xe3, 0x5b, 0x59, 0x97, 0x1a, 0x2c, 0xc1, 0x16, 0x4d, 0x8d, 0x76,
- 0x3f, 0xa6, 0xa8, 0x70, 0xda, 0x87, 0x82, 0x2e, 0xc3, 0x70, 0x3c, 0x79, 0x1e, 0x9c, 0xb3, 0xe8,
- 0xf8, 0x02, 0x44, 0x75, 0x2b, 0x6c, 0x55, 0x25, 0x9e, 0x75, 0xef, 0x10, 0x96, 0xc3, 0xeb, 0x82,
- 0x06, 0x51, 0x10, 0x4d, 0x46, 0xce, 0x14, 0x32, 0x1e, 0x4d, 0xf1, 0xcd, 0x99, 0x8d, 0x53, 0xf6,
- 0xca, 0x41, 0x75, 0x63, 0xdd, 0x28, 0xf9, 0xd9, 0x64, 0x63, 0x85, 0x4d, 0xa3, 0x5a, 0x07, 0x6c,
- 0xad, 0x0e, 0x1f, 0x88, 0xd1, 0xc7, 0x68, 0xfb, 0x5c, 0x88, 0xc8, 0x70, 0x64, 0x0c, 0xd4, 0x08,
- 0x2b, 0x83, 0xc8, 0x1d, 0x8d, 0x66, 0xfa, 0x82, 0x87, 0x1d, 0x5f, 0x92, 0xce, 0x34, 0x9a, 0x99,
- 0xae, 0xc7, 0x17, 0x4f, 0xf2, 0xa0, 0x62, 0xe2, 0x53, 0x4f, 0x51, 0xf7, 0xc9, 0xab, 0x1c, 0x73,
- 0x22, 0xb9, 0xf0, 0x0d, 0x64, 0x90, 0xcc, 0xcd, 0xaa, 0x0d, 0x16, 0x81, 0x0b, 0xc7, 0xa7, 0x3b,
- 0x39, 0xf7, 0xb8, 0x3d, 0x9c, 0x49, 0x96, 0x1c, 0xdd, 0x3d, 0xcd, 0xb4, 0x87, 0x11, 0xe0, 0x1e,
- 0xde, 0x64, 0x15, 0x0e, 0x8a, 0xc9, 0x81, 0x75, 0x20, 0x0e, 0xe6, 0xa6, 0x73, 0xf2, 0x2e, 0x1d,
- 0x1e, 0xd6, 0x50, 0xba, 0x9d, 0x70, 0x44, 0xfa, 0x66, 0xba, 0xb3, 0x7f, 0xb8, 0xfc, 0xdc, 0xa8,
- 0xa8, 0x96, 0x07, 0x02, 0xb4, 0x6e, 0x76, 0xd0, 0x4d, 0x02, 0xa0, 0x3a, 0x50, 0x26, 0x4f, 0x85,
- 0x58, 0xe9, 0xc2, 0x9b, 0xd6, 0x68, 0x13, 0x0c, 0xfb, 0x9b, 0x71, 0x44, 0xd9, 0xca, 0x60, 0x8c,
- 0x88, 0xa1, 0x46, 0x34, 0x53, 0x05, 0xb6, 0xb2, 0xed, 0x34, 0x58, 0x41, 0x2c, 0x9a, 0xd9, 0xec,
- 0x9a, 0xd5, 0x36, 0x14, 0x42, 0x2a, 0xda, 0x2c, 0xb7, 0x14, 0xca, 0x67, 0x65, 0xbf, 0xa3, 0x6b,
- 0x69, 0x63, 0xfb, 0x4a, 0x03, 0x4b, 0xb5, 0xe9, 0x0e, 0x4a, 0x82, 0x9e, 0x41, 0xf4, 0x44, 0x19,
- 0x28, 0x4a, 0xc0, 0xda, 0xae, 0x01, 0xf0, 0x9b, 0x88, 0xda, 0xc6, 0x15, 0x63, 0x93, 0x52, 0xe2,
- 0x65, 0xc1, 0xdb, 0xd0, 0x8f, 0x14, 0x9d, 0x8d, 0x32, 0xd0, 0xa3, 0xc7, 0xb0, 0x2d, 0xe2, 0x36,
- 0xd5, 0xd0, 0x9c, 0x25, 0xe0, 0xc4, 0xbb, 0x95, 0x07, 0x25, 0x41, 0x4f, 0xc1, 0x7a, 0x22, 0xed,
- 0x7c, 0x01, 0x22, 0xdb, 0xf4, 0x36, 0xcb, 0xf3, 0x4f, 0xdb, 0x96, 0x08, 0x4b, 0x80, 0x94, 0x41,
- 0xbc, 0xb3, 0x67, 0x6f, 0xe3, 0x8f, 0x0e, 0x7c, 0x09, 0x6f, 0xc3, 0xd1, 0x80, 0x8e, 0x66, 0xf4,
- 0x38, 0xb0, 0x01, 0xc1, 0x3c, 0xd5, 0x90, 0xaa, 0xd8, 0xc1, 0xba, 0xc9, 0x5d, 0xcd, 0x19, 0x37,
- 0x4f, 0x05, 0xaa, 0x31, 0xa2, 0xee, 0x61, 0xb9, 0xb0, 0x31, 0x8b, 0x28, 0xa4, 0xc5, 0x81, 0x86,
- 0xe0, 0x85, 0x04, 0x82, 0xf0, 0xd2, 0x05, 0xed, 0xe6, 0x82, 0xad, 0xa2, 0xb7, 0xb2, 0x64, 0xdc,
- 0x27, 0x21, 0xe8, 0x87, 0x01, 0x39, 0xd2, 0xe6, 0xbb, 0x87, 0x7e, 0xcb, 0x3f, 0xed, 0x3c, 0xb6,
- 0x76, 0xf2, 0x12, 0x0c, 0x3e, 0xa7, 0xf7, 0xa5, 0x6d, 0x0c, 0x46, 0x9c, 0x23, 0xd4, 0x61, 0x98,
- 0x78, 0xde, 0x83, 0xad, 0x31, 0x03, 0xd3, 0x6e, 0x5b, 0xad, 0x89, 0x3f, 0xa5, 0x76, 0xf6, 0xe5,
- 0x89, 0xe6, 0xff, 0xc8, 0xf3, 0x99, 0xb0, 0x04, 0xe8, 0xc8, 0x2f, 0x3c, 0xf6, 0x46, 0x20, 0xc5,
- 0x8d, 0x39, 0x5e, 0xbe, 0x36, 0xac, 0xa8, 0x99, 0xfc, 0xbe, 0x30, 0x0b, 0x18, 0xb0, 0x42, 0x61,
- 0xaf, 0x80, 0xae, 0xb3, 0x52, 0x3c, 0x64, 0x54, 0x56, 0xb3, 0x26, 0x8a, 0x13, 0x77, 0xe5, 0x5a,
- 0x9f, 0x4d, 0x2e, 0x9e, 0x27, 0x83, 0xc4, 0x07, 0xa6, 0x9e, 0xa2, 0x2d, 0x51, 0x95, 0x38, 0xe6,
- 0x84, 0x03, 0x66, 0xae, 0xdf, 0x5a, 0x9e, 0xd6, 0xd1, 0xae, 0x79, 0x18, 0xdd, 0x43, 0x7f, 0xc3,
- 0xe6, 0xd4, 0x14, 0xcf, 0xb6, 0x1c, 0x11, 0xdf, 0xf8, 0xcf, 0x5c, 0x6f, 0x2e, 0x3f, 0x37, 0x2a,
- 0xf1, 0x38, 0x7c, 0x65, 0xc2, 0x9a, 0x63, 0x6a, 0xb3, 0x65, 0xa6, 0x03, 0x53, 0x30, 0xd6, 0x20,
- 0x63, 0x90, 0xcb, 0x9d, 0xc9, 0xda, 0x89, 0xbf, 0x2c, 0x9d, 0x52, 0x0a, 0x29, 0xa0, 0xb1, 0xc0,
- 0x51, 0xd3, 0xfa, 0x8b, 0x3f, 0x9e, 0x25, 0x43, 0xd6, 0x8b, 0x38, 0x57, 0x1c, 0x39, 0x5d, 0x2e,
- 0xc8, 0xcf, 0xc4, 0x58, 0x5e, 0xd3, 0xf5, 0x76, 0x6e, 0x58, 0x6b, 0xb7, 0xd4, 0x21, 0x36, 0x3e,
- 0x03, 0xc9, 0x08, 0xc7, 0x23, 0x67, 0x0a, 0x19, 0x0f, 0xc7, 0x99, 0x87, 0xad, 0xa7, 0xc8, 0x7b,
- 0xed, 0x60, 0x9d, 0xe4, 0xdc, 0x11, 0x2b, 0x3f, 0xdf, 0xe4, 0xfb, 0x86, 0x9c, 0xb7, 0x3b, 0xda,
- 0x70, 0xa3, 0x02, 0x41, 0x78, 0x69, 0xe3, 0x97, 0x73, 0x41, 0xb7, 0x51, 0xba, 0x59, 0x32, 0x6e,
- 0x3c, 0x6f, 0xa0, 0xb7, 0xf9, 0xe0, 0x88, 0x37, 0xcc, 0xb7, 0xa5, 0xfe, 0xb3, 0x3b, 0x7b, 0x93,
- 0x8e, 0xf0, 0x56, 0x79, 0x15, 0xcb, 0xa2, 0x80, 0xf3, 0x79, 0xa9, 0x8c, 0xb5, 0x17, 0x8a, 0x1a,
- 0xd9, 0x72, 0xbc, 0xbf, 0x6c, 0x9b, 0x93, 0xf1, 0x3b, 0xbf, 0x60, 0x16, 0x30, 0xa3, 0x84, 0xc2,
- 0x10, 0xfa, 0xc1, 0x1b, 0x92, 0xd4, 0x60, 0x31, 0x50, 0x1b, 0x7c, 0xdc, 0x3e, 0x5e, 0x4b, 0xd5,
- 0x1a, 0x09, 0xf1, 0xcc, 0x58, 0x45, 0x5c, 0x67, 0x72, 0xcc, 0xac, 0x48, 0x56, 0x0a, 0xbe, 0x0c,
- 0x9d, 0xc3, 0x9f, 0xa5, 0xa4, 0x78, 0xc8, 0xa8, 0xac, 0xa5, 0x4c, 0xd7, 0x26, 0xee, 0x09, 0xb4,
- 0xee, 0xa9, 0x95, 0x23, 0xff, 0x76, 0x21, 0x26, 0xd0, 0x23, 0x62, 0x01, 0x31, 0x10, 0xf3, 0xa1,
- 0xcb, 0x06, 0xcc, 0x9f, 0x7d, 0xb4, 0xff, 0x6f, 0x61, 0x9f, 0xf2, 0x30, 0x79, 0x86, 0xfe, 0x45,
- 0x97, 0x30, 0xaf, 0x72, 0x6e, 0xe9, 0xf4, 0xfe, 0x8e, 0x72, 0x9c, 0x43, 0x4e, 0xba, 0xfc, 0x6d,
- 0xc9, 0x88, 0x7d, 0xa4, 0xfe, 0x4f, 0xf3, 0xc0, 0x6b, 0xa4, 0x1c, 0xca, 0x0e, 0xfd, 0xcf, 0x17,
- 0x79, 0x99, 0x3a, 0x51, 0x91, 0x9f, 0xd5, 0xd8, 0x5e, 0x51, 0xfe, 0x42, 0x7f, 0xaa, 0x0f, 0xcc,
- 0xb2, 0x9f, 0xf6, 0xce, 0xec, 0x2b, 0x2a, 0xb7, 0x3f, 0xce, 0x0c, 0x72, 0x06, 0x2c, 0xf1, 0x89,
- 0x35, 0x55, 0x98, 0xa7, 0x10, 0x16, 0xbe, 0x78, 0xe1, 0xa7, 0xec, 0xed, 0x76, 0xc8, 0x46, 0x31,
- 0x6c, 0xfb, 0xe3, 0xc0, 0x66, 0xe2, 0xab, 0xc2, 0x1f, 0xc0, 0xea, 0xd4, 0x75, 0xde, 0xdf, 0x94,
- 0x9c, 0x84, 0x26, 0x59, 0x04, 0xe4, 0xce, 0x1e, 0xa9, 0x59, 0x3b, 0xaa, 0xfc, 0x32, 0xf0, 0x9d,
- 0x1b, 0x4e, 0x48, 0x30, 0xf8, 0xd9, 0x5a, 0xd1, 0x77, 0x30, 0xdb, 0x35, 0x8c, 0xd6, 0x47, 0x25,
- 0x05, 0x98, 0x18, 0x8a, 0x65, 0xa9, 0x1e, 0x2b, 0x11, 0x8a, 0x68, 0x4a, 0x34, 0x2a, 0x9b, 0x8d,
- 0x50, 0x94, 0x43, 0x77, 0x9f, 0x02, 0x23, 0xf5, 0xd3, 0x77, 0x4f, 0x2a, 0xc6, 0xe5, 0xa4, 0x07,
- 0xf0, 0x7f, 0xc5, 0x99, 0x62, 0x06, 0x65, 0xdc, 0xb6, 0x99, 0xd1, 0x7e, 0x89, 0xec, 0x2f, 0x09,
- 0xd1, 0x0f, 0x3d, 0x53, 0x25, 0xf1, 0xa3, 0x08, 0x13, 0x53, 0x5e, 0x78, 0x2f, 0x8c, 0x40, 0x49,
- 0x12, 0x74, 0x70, 0x20, 0x11, 0x2f, 0x6c, 0x9e, 0x5a, 0x20, 0x92, 0x26, 0x49, 0x25, 0x7a, 0x87,
- 0x87, 0xca, 0x6e, 0x69, 0xfc, 0x3d, 0x94, 0xcf, 0xde, 0x69, 0xe0, 0x9f, 0x70, 0xe4, 0xb7, 0xb8,
- 0x08, 0x7d, 0x81, 0xec, 0x49, 0x6a, 0x30, 0xf9, 0x28, 0xec, 0x3e, 0x6e, 0x1f, 0x2f, 0xc4, 0x8b,
- 0x59, 0xae, 0x7b, 0x67, 0x76, 0xf4, 0x15, 0xba, 0xfe, 0x67, 0x06, 0x39, 0x03, 0x16, 0x99, 0xa5,
- 0xfc, 0xdd, 0xe5, 0x03, 0xee, 0x59, 0x4d, 0xb8, 0x8a, 0x03, 0xf0, 0x27, 0x78, 0x35, 0x89, 0x26,
- 0x21, 0x70, 0xf8, 0xca, 0x47, 0xf7, 0xc6, 0xd4, 0xa5, 0xca, 0x8f, 0x06, 0xa6, 0x60, 0x6f, 0x40,
- 0x85, 0x44, 0xdf, 0x52, 0x7f, 0xc6, 0x98, 0x60, 0xd4, 0x52, 0x0e, 0x65, 0x07, 0x9f, 0x86, 0xea,
- 0x55, 0x0c, 0x5b, 0xfd, 0xfa, 0xab, 0x3d, 0xde, 0xc2, 0xfd, 0x27, 0x60, 0xf2, 0xcf, 0x3f, 0x8a,
- 0x4e, 0x42, 0x13, 0xcd, 0x02, 0x72, 0x67, 0x0f, 0xb5, 0xcd, 0xfc, 0x55, 0x7e, 0x19, 0x78, 0xaf,
- 0xec, 0x27, 0x24, 0x18, 0x7c, 0x8d, 0x2d, 0x89, 0xda, 0x18, 0x8c, 0xfb, 0x46, 0x6b, 0xc2, 0xf3,
- 0xfb, 0xcb, 0x4c, 0xb2, 0x08, 0x0b, 0x5f, 0x3c, 0x91, 0xb2, 0x76, 0x97, 0x3b, 0x64, 0x23, 0xf9,
- 0x36, 0x9c, 0x90, 0x60, 0x33, 0x71, 0xb4, 0x61, 0xee, 0x60, 0x75, 0x6a, 0xdb, 0x6f, 0x8e, 0x4a,
- 0x75, 0x3b, 0x1a, 0xcb, 0x1d, 0xc0, 0xfd, 0xbc, 0x62, 0xcb, 0xdf, 0x1b, 0x8e, 0x73, 0xa9, 0xe3,
- 0x37, 0xdb, 0x29, 0x9c, 0x93, 0xed, 0xb2, 0xd7, 0xeb, 0x9c, 0x02, 0x17, 0x01, 0xb3, 0x77, 0x63,
- 0x5c, 0x36, 0x63, 0xed, 0x13, 0x5d, 0x0b, 0x91, 0xef, 0xed, 0x6e, 0x73, 0x37, 0x3c, 0x02, 0x28,
- 0xf6, 0x2e, 0xd5, 0xd4, 0x24, 0xc8, 0x71, 0xee, 0xa8, 0xd4, 0x20, 0xb3, 0x10, 0x61, 0x7c, 0xff,
- 0xf4, 0xa0, 0x64, 0xef, 0xa7, 0x33, 0x7d, 0x41, 0xa2, 0xef, 0xce, 0x49, 0x67, 0x1a, 0x4d, 0xad,
- 0xcd, 0x57, 0xdc, 0xd2, 0x3b, 0x7a, 0xeb, 0x5d, 0x7f, 0xd2, 0x03, 0xfd, 0xe0, 0x0b, 0xad, 0xb3,
- 0x6b, 0xed, 0x4a, 0x71, 0x80, 0xb0, 0xb9, 0x46, 0x04, 0x71, 0x6c, 0x64, 0x36, 0x8f, 0x75, 0x4b,
- 0xa2, 0x65, 0x37, 0xd5, 0x7e, 0xff, 0x4a, 0x86, 0x6f, 0xd5, 0x70, 0xae, 0x38, 0x72, 0xba, 0x5c,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0x18, 0xb6, 0x39, 0x37, 0x95, 0x7a, 0x7f, 0x47, 0x39, 0x4e, 0xc0, 0x27, 0x5d, 0x7e, 0xd7,
- 0x71, 0xe4, 0xbb, 0xbd, 0xd8, 0xf5, 0xe5, 0x21, 0x76, 0xbd, 0xc0, 0x2c, 0x60, 0x85, 0xcb, 0x47,
- 0x42, 0xe0, 0x33, 0x57, 0x8e, 0x2d, 0x4f, 0x6b, 0x89, 0x57, 0xdd, 0x0c, 0x8f, 0xc0, 0xde, 0x80,
- },
- { /* 4 */
- 0xc2, 0x36, 0xbf, 0xb8, 0xb8, 0xed, 0xf8, 0xa5, 0xff, 0x6a, 0x2d, 0xa5, 0x4a, 0x84, 0x52, 0x5c,
- 0x95, 0x8b, 0xd1, 0x9a, 0x9a, 0x0a, 0x38, 0x2d, 0x73, 0xc6, 0x2f, 0x2d, 0x97, 0x24, 0xdb, 0x4d,
- 0xa6, 0x30, 0x54, 0xed, 0xed, 0x72, 0xdb, 0x32, 0x62, 0xa7, 0x28, 0x32, 0xbc, 0x57, 0x26, 0x97,
- 0x27, 0xcf, 0x12, 0x53, 0x53, 0x58, 0x5c, 0x8f, 0x1d, 0x07, 0x49, 0x8f, 0xe1, 0x72, 0x4a, 0xc8,
- 0xe0, 0xe4, 0xf8, 0xe2, 0xe2, 0xbd, 0xfb, 0x0e, 0xe1, 0x95, 0x96, 0x0e, 0x78, 0x67, 0x45, 0x71,
- 0x86, 0x51, 0x31, 0x0c, 0x0c, 0x4d, 0xfe, 0x30, 0xc3, 0x57, 0x98, 0x30, 0x2e, 0x81, 0x7c, 0x06,
- 0x06, 0x16, 0x66, 0x0e, 0x0e, 0xb1, 0x6a, 0x38, 0x02, 0x11, 0x1d, 0x38, 0x23, 0x5f, 0xd7, 0x07,
- 0x5d, 0x87, 0xc4, 0x30, 0x30, 0xf7, 0x7e, 0xc0, 0x8a, 0x9f, 0x25, 0xc0, 0xb8, 0x41, 0x33, 0x18,
- 0x09, 0x31, 0x99, 0x15, 0x15, 0xa9, 0x8b, 0x54, 0x07, 0xda, 0xc8, 0x54, 0x95, 0x2f, 0x30, 0xeb,
- 0x78, 0xfb, 0xf4, 0xd8, 0xd8, 0xc0, 0x04, 0xe6, 0x28, 0x97, 0x67, 0xe6, 0xf9, 0x06, 0x34, 0x6c,
- 0xf4, 0x90, 0x6f, 0xc6, 0xc6, 0x9d, 0x44, 0x9e, 0xed, 0xf3, 0xd8, 0x9e, 0xb2, 0x66, 0xf2, 0x63,
- 0x16, 0xc7, 0xb5, 0x9f, 0x9f, 0x4f, 0x99, 0x39, 0xb3, 0x69, 0x45, 0x39, 0x6a, 0x34, 0xfa, 0xae,
- 0x19, 0xe0, 0x4a, 0x84, 0x84, 0x57, 0x78, 0x55, 0xb6, 0xa2, 0x90, 0x55, 0xdc, 0x44, 0x1d, 0x42,
- 0xec, 0xc8, 0x34, 0xfe, 0xfe, 0x1c, 0x2f, 0x7e, 0xe5, 0xb7, 0xac, 0x7e, 0x3e, 0xd9, 0x28, 0x7f,
- 0x69, 0x92, 0x36, 0xf5, 0xf5, 0xe8, 0xe4, 0x52, 0x27, 0x09, 0xdb, 0x52, 0xe0, 0x96, 0xde, 0x9b,
- 0x04, 0xa5, 0x44, 0xb5, 0xb5, 0xde, 0x4c, 0x91, 0xbd, 0x1e, 0x16, 0x91, 0x83, 0x6a, 0x9a, 0xbb,
- 0x8f, 0x60, 0xa8, 0x19, 0x19, 0xe4, 0x75, 0x64, 0xc4, 0x8d, 0x50, 0x64, 0xbb, 0xae, 0x4c, 0xed,
- 0x30, 0xb0, 0xb6, 0x70, 0x70, 0xc1, 0xd6, 0x03, 0x10, 0x88, 0xe8, 0x03, 0xdb, 0xbd, 0x77, 0x38,
- 0x39, 0x81, 0x2f, 0x65, 0x65, 0x68, 0x5d, 0x57, 0x17, 0x52, 0x20, 0x57, 0x4e, 0x92, 0x47, 0xd3,
- 0xe9, 0xd5, 0x61, 0xf7, 0xf7, 0x14, 0x70, 0x5a, 0xe6, 0x4f, 0x5e, 0x5a, 0xed, 0x48, 0x75, 0x9a,
- 0x03, 0x0b, 0x33, 0x07, 0x07, 0xb9, 0x35, 0x1c, 0x01, 0xe9, 0xef, 0x1c, 0xf0, 0xce, 0x8a, 0xe2,
- 0xcf, 0xa2, 0x62, 0x18, 0x18, 0x9a, 0x3f, 0x60, 0x45, 0xae, 0xf3, 0x60, 0x5c, 0xc1, 0xf8, 0x0c,
- 0x70, 0x72, 0x7c, 0x71, 0x71, 0xbf, 0x9c, 0x07, 0x91, 0xab, 0x4b, 0x07, 0x3c, 0xd2, 0xc3, 0xd9,
- 0x43, 0xc9, 0xf9, 0x06, 0x06, 0xc7, 0x7f, 0x18, 0x80, 0xca, 0x4c, 0x18, 0x17, 0xa1, 0x3e, 0x03,
- 0x55, 0x0e, 0x4c, 0x99, 0x99, 0x88, 0xe6, 0x21, 0x33, 0xa3, 0x09, 0x21, 0x7d, 0x95, 0xc4, 0xad,
- 0x2c, 0x4d, 0xa9, 0xfd, 0xfd, 0x9e, 0xf1, 0x72, 0xa5, 0xd2, 0x8a, 0x72, 0xd4, 0x68, 0x37, 0x9f,
- 0x12, 0x62, 0xf1, 0x2a, 0x2a, 0x91, 0xd5, 0xa8, 0x0e, 0x77, 0x53, 0xa8, 0xe9, 0x5e, 0x60, 0x15,
- 0x8e, 0xd8, 0xb9, 0xa5, 0xa5, 0x32, 0x66, 0xd1, 0x7a, 0x6b, 0xb4, 0xd1, 0xeb, 0x55, 0x8b, 0xb3,
- 0xd5, 0x49, 0x1b, 0x9b, 0x9b, 0x74, 0x72, 0x29, 0xf2, 0xe5, 0x8c, 0x29, 0x70, 0x4b, 0x6f, 0xac,
- 0x3d, 0x24, 0x6b, 0xd0, 0xd0, 0xb6, 0x11, 0xc6, 0xaa, 0x4c, 0x36, 0xc6, 0xcd, 0xf8, 0xdd, 0x68,
- 0xd2, 0xe7, 0x6c, 0x29, 0x29, 0x13, 0x0b, 0xa4, 0x4e, 0x12, 0x75, 0xa4, 0x03, 0xef, 0x7f, 0xf5,
- 0x76, 0x64, 0x1a, 0x7f, 0x7f, 0x0e, 0xf6, 0x3f, 0x93, 0xba, 0x56, 0x3f, 0x1f, 0x8d, 0x14, 0xde,
- 0x18, 0x58, 0x5b, 0x38, 0x38, 0x81, 0x6b, 0xe0, 0x08, 0x44, 0x74, 0xe0, 0x8c, 0xbf, 0xda, 0x1c,
- 0x35, 0xad, 0xe3, 0x79, 0x79, 0xc9, 0x89, 0x27, 0x13, 0x70, 0x1a, 0x27, 0x08, 0x2c, 0x2a, 0xdd,
- 0x07, 0xae, 0x77, 0xb2, 0xb2, 0x67, 0x79, 0x8d, 0xbc, 0xf7, 0xf9, 0x8d, 0x73, 0xa4, 0x10, 0x59,
- 0xc0, 0x85, 0x9d, 0x03, 0x03, 0x82, 0xde, 0x0c, 0x40, 0x65, 0x26, 0x0c, 0xea, 0xb1, 0x1f, 0xe0,
- 0xf7, 0x9b, 0x5c, 0xc1, 0xc1, 0x24, 0x71, 0x82, 0xec, 0x1a, 0x37, 0x82, 0x42, 0xa8, 0x78, 0x81,
- 0xb8, 0x7e, 0x69, 0xdb, 0xdb, 0x42, 0xda, 0xea, 0x68, 0xf2, 0x41, 0xea, 0x13, 0xb7, 0x2b, 0x8c,
- 0x72, 0xc1, 0x5e, 0xca, 0xca, 0xd0, 0xba, 0xae, 0x2e, 0xa4, 0x40, 0xae, 0x9c, 0xe7, 0x8e, 0x65,
- 0x11, 0x69, 0xc2, 0x2d, 0x2d, 0x28, 0xe0, 0xb4, 0x0f, 0x9e, 0xbc, 0xb4, 0x19, 0x90, 0xea, 0xf7,
- 0xb4, 0x52, 0xa5, 0xc7, 0xc7, 0xe3, 0x0e, 0x9a, 0x6c, 0xd0, 0x7b, 0x9a, 0x55, 0x09, 0x46, 0x82,
- 0xff, 0x12, 0xd4, 0x68, 0x68, 0x5b, 0xe9, 0x63, 0x55, 0x26, 0x1b, 0x63, 0x87, 0x7c, 0x8f, 0x34,
- 0x1a, 0xeb, 0x79, 0x83, 0x83, 0xee, 0x4d, 0x49, 0xb7, 0x4b, 0x7f, 0x49, 0x2c, 0x8a, 0x97, 0xa0,
- 0x48, 0x4b, 0x42, 0xa8, 0xa8, 0x01, 0xd2, 0xe5, 0x38, 0x1f, 0x8f, 0xe5, 0x22, 0xbb, 0x43, 0x54,
- 0xaa, 0x1c, 0x98, 0xf1, 0xf1, 0xd3, 0x0f, 0x42, 0x66, 0x85, 0x12, 0x42, 0xfa, 0xe9, 0x4b, 0x99,
- 0x58, 0x9a, 0x91, 0x39, 0x39, 0xff, 0x21, 0xe4, 0x89, 0x67, 0xd7, 0xe4, 0x6b, 0xd0, 0x6e, 0xfd,
- 0x93, 0x9d, 0xb7, 0x94, 0x94, 0xbb, 0x52, 0x15, 0x71, 0xd7, 0x32, 0x15, 0xb4, 0x7b, 0x0c, 0x4a,
- 0x21, 0xd9, 0x74, 0x5d, 0x5d, 0xe9, 0x36, 0xb7, 0x1f, 0x16, 0x54, 0xb7, 0xc2, 0x2d, 0x9d, 0xcf,
- 0xdd, 0xc0, 0x93, 0x32, 0x32, 0x0b, 0xea, 0xc8, 0x4b, 0xd9, 0xa0, 0xc8, 0xb5, 0x9f, 0x98, 0x19,
- 0x60, 0xa3, 0xaf, 0xe0, 0xe0, 0x41, 0x6f, 0x06, 0x20, 0xd3, 0x13, 0x06, 0x75, 0xb9, 0xee, 0x70,
- 0x0c, 0x2c, 0xcc, 0x1c, 0x1c, 0xa1, 0xd4, 0x70, 0x04, 0x22, 0x3a, 0x70, 0x46, 0xbe, 0x6d, 0x0e,
- 0xc4, 0x20, 0xd9, 0xb6, 0xb6, 0x5c, 0x92, 0x9d, 0xfd, 0x7b, 0x30, 0x9d, 0x69, 0xdb, 0x85, 0x5b,
- 0x9a, 0xac, 0x2e, 0x81, 0x81, 0x12, 0xd9, 0x41, 0x76, 0x0d, 0xfa, 0x41, 0x21, 0x54, 0x3c, 0xa1,
- 0x5c, 0x3f, 0xd5, 0x8c, 0x8c, 0x21, 0x6d, 0x75, 0x34, 0x79, 0xc1, 0x75, 0xe8, 0xba, 0xf4, 0x46,
- 0x53, 0x18, 0x2a, 0x97, 0x97, 0x39, 0x8c, 0x19, 0x31, 0xb2, 0x14, 0x19, 0x5e, 0xca, 0x13, 0xaa,
- 0xcd, 0x11, 0x40, 0xa3, 0xa3, 0xf5, 0x19, 0xc9, 0xfa, 0xa1, 0xf8, 0xc9, 0xfc, 0xf4, 0xb5, 0xb0,
- 0x32, 0x03, 0x94, 0xcb, 0xcb, 0xae, 0xf0, 0xaa, 0xaf, 0x87, 0xe3, 0xaa, 0x7b, 0x88, 0x3a, 0x84,
- 0x1b, 0x53, 0x68, 0x3f, 0x3f, 0x38, 0x5e, 0xfc, 0x09, 0xad, 0x9b, 0xfc, 0x7c, 0x71, 0x50, 0xfe,
- 0x5a, 0x29, 0xb3, 0x82, 0x82, 0x90, 0x07, 0x4d, 0x36, 0x68, 0xdc, 0x4d, 0xcb, 0xe5, 0x23, 0x41,
- 0xa1, 0x9e, 0x23, 0x5f, 0x5f, 0x15, 0xa2, 0xbf, 0xde, 0x50, 0xd1, 0xbf, 0xcf, 0xf3, 0x36, 0xce,
- 0xe5, 0xf9, 0xad, 0xeb, 0xeb, 0xb5, 0xa4, 0x2a, 0xe2, 0x6d, 0x64, 0x2a, 0xab, 0xf6, 0x18, 0x94,
- 0x3c, 0x9c, 0x7a, 0x6c, 0x6c, 0x60, 0x02, 0x73, 0x14, 0xaa, 0xd2, 0x73, 0x9d, 0x03, 0x1a, 0x36,
- 0x97, 0x38, 0xf3, 0x21, 0x21, 0x65, 0x1e, 0x84, 0xcc, 0xc9, 0x24, 0x84, 0x37, 0x11, 0x96, 0xf1,
- 0xce, 0x1a, 0x73, 0xa4, 0xa4, 0x4c, 0x2c, 0xd5, 0xfb, 0x48, 0x17, 0xd5, 0x0c, 0x3a, 0x3f, 0x52,
- 0x6d, 0x37, 0x72, 0x40, 0x40, 0x36, 0xa8, 0xc3, 0x9a, 0x17, 0xcd, 0xc3, 0x63, 0xfc, 0x44, 0x20,
- 0x62, 0x10, 0x8d, 0x5b, 0x5b, 0x2e, 0x49, 0xaf, 0x9f, 0xdc, 0x18, 0xaf, 0xd5, 0x8c, 0xa3, 0xcc,
- 0xf5, 0x28, 0x7e, 0x7a, 0x7a, 0x4b, 0x57, 0x2b, 0x53, 0x15, 0x3c, 0x2b, 0xe2, 0x9d, 0x35, 0x3d,
- 0xb7, 0x59, 0x96, 0xc0, 0xc0, 0x5a, 0x3b, 0x86, 0x6d, 0x39, 0x94, 0x86, 0xa5, 0xc7, 0xcc, 0x60,
- 0xe2, 0x57, 0xda, 0x59, 0x59, 0xd2, 0xdd, 0xa7, 0x5e, 0x9a, 0x9d, 0xa7, 0xd8, 0x52, 0x08, 0xcd,
- 0x41, 0x7a, 0xdb, 0xbd, 0xbd, 0xa8, 0x59, 0xb1, 0x3f, 0xc5, 0x47, 0xb1, 0xb7, 0x94, 0x73, 0xbf,
- 0x71, 0xca, 0x6d, 0xcd, 0xcd, 0x69, 0x8f, 0xb2, 0x2f, 0x4d, 0xaf, 0xb2, 0x6c, 0x29, 0x04, 0x87,
- 0xf9, 0x04, 0xb2, 0x66, 0x66, 0xea, 0x83, 0x5b, 0x57, 0x37, 0x06, 0x5b, 0xa4, 0x23, 0x58, 0x33,
- 0xea, 0xde, 0x52, 0xf0, 0xf0, 0xad, 0x45, 0x46, 0xe7, 0xa6, 0xb1, 0x46, 0x1d, 0x86, 0xff, 0x78,
- 0xae, 0xb9, 0xdc, 0x44, 0x44, 0x0d, 0x43, 0xd3, 0xdb, 0x9b, 0x04, 0xd3, 0x79, 0x83, 0xd1, 0x22,
- 0xe4, 0x41, 0xbc, 0x57, 0x57, 0x63, 0xb7, 0x9f, 0x5c, 0x8b, 0x80, 0x9f, 0xfb, 0x0d, 0xdf, 0xca,
- 0x0b, 0x82, 0xbb, 0xae, 0xae, 0xc6, 0xad, 0xfd, 0xb8, 0xd5, 0xc3, 0xfd, 0x35, 0x1a, 0x7d, 0x57,
- 0xde, 0xcb, 0xa0, 0x35, 0x35, 0xb2, 0xdf, 0xd4, 0x4a, 0x30, 0x4f, 0xd4, 0x45, 0x51, 0x12, 0xfb,
- 0xf0, 0x35, 0x2b, 0x73, 0x73, 0x43, 0x08, 0x0f, 0x50, 0xed, 0xce, 0x0f, 0x31, 0x0c, 0x68, 0xd8,
- 0xd4, 0xf1, 0x0a, 0x27, 0x27, 0xa2, 0x61, 0x9c, 0x4c, 0x03, 0x68, 0x9c, 0x20, 0xb0, 0xa8, 0xf2,
- 0xb5, 0xea, 0xb4, 0x7b, 0x7b, 0x35, 0x1d, 0x2f, 0xd2, 0x36, 0x9f, 0x2f, 0x05, 0xf2, 0x81, 0xdc,
- 0xa4, 0x83, 0x76, 0x56, 0x56, 0x1d, 0xfd, 0x9b, 0xdd, 0xa8, 0x23, 0x9b, 0x1c, 0x62, 0x6b, 0x2b,
- 0xba, 0xcd, 0x4b, 0x60, 0x60, 0x2d, 0xfc, 0x43, 0xd7, 0xfd, 0x4a, 0x43, 0xb3, 0x82, 0x66, 0x30,
- 0xe8, 0x6d, 0x70, 0x4b, 0x4b, 0xc2, 0x63, 0xef, 0x58, 0xa9, 0xba, 0xef, 0xbd, 0xb3, 0xb2, 0xc4,
- 0x0e, 0x9f, 0xee, 0xa7, 0xa7, 0xce, 0xf2, 0xd9, 0xbb, 0x2d, 0x31, 0xd9, 0xe6, 0x8b, 0x20, 0xb2,
- 0x9c, 0xba, 0x48, 0x8f, 0x8f, 0xa3, 0xb3, 0x79, 0x74, 0x1c, 0xe7, 0x79, 0x02, 0x0b, 0xeb, 0xa6,
- 0x31, 0x08, 0xa7, 0xcc, 0xcc, 0x17, 0xc5, 0xb6, 0xae, 0x6e, 0x0c, 0xb6, 0x8b, 0x46, 0xb0, 0x66,
- 0x79, 0x43, 0xe5, 0x64, 0x64, 0x16, 0x17, 0x53, 0x96, 0x71, 0x83, 0x53, 0xa9, 0xfd, 0xf3, 0x32,
- 0xfc, 0x19, 0xe7, 0x6f, 0x6f, 0xe2, 0xdc, 0x7f, 0x54, 0xcf, 0xf4, 0x7f, 0x77, 0xb2, 0x05, 0xd6,
- 0x4d, 0x56, 0x17, 0xa1, 0xa1, 0x09, 0x8d, 0xc1, 0x3b, 0xe7, 0x7d, 0xc1, 0xf1, 0x2a, 0x1e, 0xb1,
- 0xdb, 0xd6, 0xf5, 0x3c, 0x3c, 0xba, 0x80, 0xf0, 0x49, 0xc8, 0xbd, 0xf0, 0x96, 0xc0, 0x4f, 0x1e,
- 0x75, 0x6f, 0x29, 0x78, 0x78, 0xb7, 0xc3, 0x23, 0x92, 0x53, 0xb9, 0x23, 0xef, 0x43, 0x9e, 0x3c,
- 0x68, 0x2a, 0x27, 0x49, 0x49, 0x3e, 0xf7, 0xe7, 0x99, 0xef, 0x3f, 0xe7, 0xb0, 0x6d, 0x19, 0xc5,
- 0x15, 0xcc, 0x86, 0x98, 0x98, 0xf6, 0xac, 0x25, 0xb2, 0x80, 0xaa, 0x25, 0x9a, 0xfa, 0x70, 0x4c,
- 0xa9, 0x17, 0xab, 0xf6, 0xf6, 0x6a, 0x3a, 0x5e, 0x67, 0x6c, 0xfd, 0x5e, 0x0a, 0x27, 0xc1, 0x7b,
- 0x01, 0xb8, 0x11, 0xbc, 0xbc, 0xd6, 0x13, 0xb5, 0xbe, 0xe6, 0xe4, 0xb5, 0x50, 0xfb, 0xc7, 0x5e,
- 0x23, 0x6a, 0x56, 0xe6, 0xe6, 0x86, 0x10, 0x1e, 0xa0, 0x19, 0x5f, 0x1e, 0x62, 0x18, 0xd0, 0x73,
- 0xb2, 0x44, 0xc3, 0xc9, 0xc9, 0x52, 0x64, 0xa2, 0x6e, 0xc1, 0x66, 0xa2, 0x76, 0x56, 0x91, 0x85,
- 0x6e, 0x3c, 0x41, 0x47, 0x47, 0x8f, 0x9d, 0xdf, 0x9b, 0xfe, 0x22, 0xdf, 0x93, 0x32, 0xce, 0xc2,
- 0xf2, 0x86, 0x09, 0xc8, 0xc8, 0x2c, 0x2e, 0xa6, 0xef, 0xe2, 0xc5, 0xa6, 0x91, 0x39, 0x25, 0x64,
- 0x3b, 0x32, 0x0d, 0xde, 0xde, 0x07, 0x7b, 0xfe, 0xa8, 0x5d, 0x2b, 0xfe, 0xee, 0xa7, 0x0a, 0x6f,
- 0x52, 0xa0, 0x3b, 0x2b, 0x2b, 0xef, 0x9f, 0xac, 0x8f, 0x54, 0xf0, 0xac, 0x0e, 0x31, 0xd4, 0xf4,
- 0x65, 0xbe, 0xfa, 0xe9, 0xe9, 0x49, 0x30, 0x22, 0x23, 0x2b, 0xe1, 0x22, 0xa6, 0x28, 0xb3, 0x95,
- 0x4b, 0x40, 0x71, 0xaf, 0xaf, 0xb8, 0xe7, 0xf9, 0x39, 0xf6, 0x60, 0xf9, 0xd2, 0x75, 0xc9, 0xb6,
- 0x38, 0x39, 0x3e, 0xd9, 0xd9, 0xbe, 0x4e, 0xe2, 0xa9, 0xb4, 0xc4, 0xe2, 0x1e, 0x69, 0x80, 0x8d,
- 0x2a, 0x5b, 0xcf, 0xf3, 0xf3, 0x2f, 0x9b, 0x4a, 0xa7, 0xc3, 0x97, 0x4a, 0xf7, 0x37, 0xe0, 0x98,
- 0x91, 0x2e, 0x95, 0x2f, 0x2f, 0xd4, 0x74, 0xbc, 0xce, 0xd8, 0x39, 0xbc, 0x14, 0x4e, 0x41, 0xf6,
- 0xd6, 0x42, 0x28, 0x9c, 0x9c, 0xcd, 0x47, 0x35, 0xf3, 0x0c, 0x63, 0x35, 0x80, 0x85, 0xe5, 0x4e,
- 0xfd, 0xa1, 0xf6, 0xd3, 0xd3, 0x34, 0xcf, 0xca, 0xea, 0x29, 0x10, 0xca, 0x27, 0x49, 0xc2, 0x88,
- 0xf8, 0xbc, 0xa3, 0xda, 0xda, 0x3c, 0x90, 0xee, 0xe9, 0xd1, 0xe2, 0xee, 0xf4, 0xd8, 0x9f, 0x6d,
- 0x8c, 0x6b, 0x9b, 0x1e, 0x1e, 0x5d, 0x40, 0x78, 0xc5, 0x64, 0xbf, 0x78, 0x4b, 0x60, 0xc6, 0x0f,
- 0x50, 0x13, 0x19, 0x90, 0x90, 0x80, 0xb9, 0x05, 0x30, 0x5b, 0xfb, 0x05, 0xae, 0x04, 0x99, 0x48,
- 0x7f, 0x55, 0x83, 0x6a, 0x6a, 0xa7, 0x7d, 0x6b, 0x94, 0x60, 0x9e, 0x6b, 0x8a, 0xa2, 0x24, 0x35,
- 0x59, 0x22, 0x80, 0x85, 0x85, 0x29, 0x32, 0x51, 0x37, 0x81, 0x33, 0x51, 0x3b, 0x2b, 0xa9, 0xa3,
- 0x08, 0x89, 0x88, 0xa9, 0xa9, 0x7f, 0x98, 0xe1, 0xb9, 0x3c, 0x2c, 0xe1, 0xc5, 0xd4, 0xf7, 0xb5,
- 0xd9, 0x65, 0xd7, 0x87, 0x87, 0xd5, 0xa6, 0x59, 0xf6, 0xc7, 0xb6, 0x59, 0x36, 0xf5, 0x02, 0xa2,
- 0xa2, 0x95, 0x10, 0x58, 0x58, 0xac, 0x97, 0xa3, 0xdf, 0xb9, 0x3e, 0xa3, 0x3f, 0x3d, 0xbc, 0x2c,
- 0xfb, 0xb7, 0x90, 0xdd, 0xdd, 0x85, 0xa5, 0xf2, 0xe8, 0x38, 0x0d, 0xf2, 0x04, 0x16, 0x15, 0x8f,
- 0x1c, 0xfd, 0x1f, 0x8d, 0x8d, 0x5f, 0x27, 0x71, 0xb5, 0x5a, 0x62, 0x71, 0x0f, 0xd5, 0x40, 0xa7,
- 0x29, 0x50, 0xfc, 0xf4, 0xf4, 0x96, 0xae, 0x56, 0xa6, 0x2a, 0x78, 0x56, 0x07, 0xf9, 0x6a, 0x7a,
- 0xd3, 0x5f, 0x7d, 0x95, 0x95, 0xc5, 0x18, 0x11, 0xf0, 0xf4, 0x91, 0x11, 0x53, 0x14, 0xb8, 0xab,
- 0x6f, 0x84, 0x50, 0xfb, 0xfb, 0x59, 0x8e, 0x6a, 0x25, 0x18, 0xc6, 0x6a, 0xc3, 0xc9, 0x09, 0x9c,
- 0x47, 0x6c, 0xbd, 0xb3, 0xb3, 0x19, 0x33, 0x89, 0x3d, 0xd4, 0x5a, 0x89, 0x94, 0xcb, 0xa4, 0xb8,
- 0x54, 0xb6, 0x5d, 0x25, 0x25, 0x5e, 0xf5, 0x94, 0x8d, 0x45, 0xed, 0x94, 0x2d, 0x6e, 0x03, 0xf3,
- 0x9f, 0xb1, 0x7b, 0x88, 0x88, 0x1a, 0x86, 0x65, 0x75, 0xf5, 0x08, 0x65, 0xf2, 0xc5, 0x61, 0x44,
- 0x17, 0x7f, 0xa4, 0x23, 0x23, 0x99, 0x8a, 0x8c, 0x0d, 0x8f, 0xa1, 0x8c, 0x3a, 0xcf, 0x3d, 0xf0,
- 0xe1, 0x5c, 0xe9, 0x5e, 0x5e, 0x6b, 0xe8, 0xbb, 0x5f, 0x73, 0x72, 0xbb, 0x28, 0x9c, 0x82, 0x2f,
- 0x7c, 0x5e, 0xb0, 0x6d, 0x6d, 0x1e, 0x48, 0x77, 0x95, 0x89, 0x71, 0x77, 0x7a, 0x6c, 0xae, 0xd7,
- 0x46, 0xd4, 0xac, 0x0f, 0x0f, 0xcf, 0x20, 0x3c, 0x83, 0x32, 0xbe, 0x3c, 0xc4, 0x30, 0x63, 0xe6,
- 0xbc, 0xdb, 0x2d, 0x6e, 0x6e, 0x9c, 0x96, 0x7b, 0xd5, 0xec, 0x57, 0x7b, 0x90, 0xdd, 0xb1, 0x37,
- 0xc5, 0x98, 0xc8, 0x0a, 0x0a, 0x8a, 0x81, 0x28, 0x43, 0x9d, 0xd4, 0x28, 0x39, 0x20, 0x42, 0x05,
- 0x22, 0xd2, 0x47, 0x5a, 0x5a, 0x50, 0x03, 0xab, 0x1e, 0xff, 0xbb, 0xab, 0x32, 0xe3, 0x17, 0x2d,
- 0xbe, 0x68, 0x0f, 0xd5, 0xd5, 0xf3, 0xb0, 0xd2, 0x6a, 0xe3, 0x5c, 0xd2, 0x30, 0xe8, 0xfc, 0x8b,
- 0x96, 0x80, 0xe2, 0x9d, 0x9d, 0xb3, 0x0d, 0x31, 0x72, 0x2f, 0xc0, 0x31, 0x67, 0xea, 0x51, 0xaf,
- 0x7e, 0xed, 0x92, 0xd6, 0xd6, 0x71, 0x6e, 0xde, 0x2a, 0x86, 0x7a, 0xde, 0xda, 0x59, 0xe3, 0x6b,
- 0x1d, 0x45, 0x0e, 0x31, 0x31, 0x89, 0x34, 0xc4, 0x0b, 0xbc, 0x86, 0xc4, 0x5f, 0x2e, 0x87, 0xf9,
- 0xb9, 0xc6, 0x78, 0x67, 0x67, 0x94, 0xc9, 0x5f, 0xd6, 0x14, 0xa5, 0x5f, 0x43, 0x4c, 0xec, 0xd2,
- 0x9d, 0x02, 0x59, 0x33, 0x33, 0x75, 0xa0, 0xcc, 0xca, 0xfa, 0x03, 0xcc, 0x52, 0xf0, 0x2c, 0xf8,
- 0xad, 0xb2, 0xef, 0x43, 0x43, 0xb4, 0x76, 0xcf, 0xda, 0x72, 0xeb, 0xcf, 0x89, 0x4d, 0x5b, 0xc0,
- 0x6c, 0x8f, 0x63, 0xfc, 0xfc, 0xe0, 0xbb, 0x76, 0x24, 0xf1, 0x29, 0x76, 0x33, 0x07, 0x83, 0x7e,
- 0x85, 0x5a, 0x02, 0x0b, 0x0b, 0xf4, 0xcb, 0x2c, 0xc2, 0xbe, 0x77, 0x2c, 0xde, 0x4f, 0xf6, 0xe4,
- 0xd1, 0xec, 0x5f, 0x2e, 0x2e, 0xaa, 0x3e, 0xb8, 0x4f, 0xfb, 0x9a, 0xb8, 0xf3, 0x21, 0xf5, 0x17,
- 0x1e, 0x4e, 0x3d, 0x36, 0x36, 0x30, 0x01, 0xd8, 0x0a, 0x55, 0x69, 0xd8, 0xaf, 0xe0, 0x0d, 0x1b,
- 0xa5, 0x3b, 0x67, 0xea, 0xea, 0xcb, 0xee, 0x2e, 0x63, 0x4e, 0xc7, 0x2e, 0x4c, 0x99, 0xac, 0x75,
- 0xe6, 0xf2, 0x9e, 0xec, 0xec, 0x0c, 0x91, 0x36, 0xe3, 0x84, 0x8b, 0x36, 0x5b, 0x38, 0x92, 0x76,
- 0x2e, 0xfe, 0x8b, 0x46, 0x46, 0xf1, 0xd7, 0xdb, 0x1a, 0xdd, 0x81, 0xdb, 0x74, 0x5d, 0x7a, 0x23,
- 0x5f, 0x34, 0xe6, 0x8b, 0x8b, 0x98, 0x58, 0x69, 0x35, 0x90, 0x2e, 0x69, 0x18, 0x74, 0x7e, 0xa4,
- 0x61, 0x1b, 0xbe, 0x5c, 0x5c, 0x97, 0x7c, 0xb3, 0x9e, 0x35, 0xf7, 0xb3, 0x25, 0x42, 0x29, 0x2e,
- 0x83, 0x4c, 0x64, 0x05, 0x05, 0x45, 0xa1, 0x14, 0xc0, 0xaf, 0x6a, 0x14, 0xfd, 0x10, 0x21, 0xe3,
- 0x44, 0x67, 0x8e, 0xb4, 0xb4, 0xa0, 0x06, 0x95, 0x3c, 0x3d, 0xb5, 0x95, 0x64, 0x05, 0x2e, 0x5a,
- 0xb1, 0x4f, 0xf0, 0xce, 0xce, 0xeb, 0x51, 0xbe, 0x6f, 0x28, 0x89, 0xbe, 0x86, 0x98, 0x1b, 0x67,
- 0xef, 0xc3, 0x07, 0xf9, 0xf9, 0xa5, 0x1a, 0x62, 0xe4, 0x5e, 0x43, 0x62, 0xce, 0x17, 0xa2, 0x9d,
- 0x82, 0xf4, 0x75, 0xb9, 0xb9, 0x93, 0xb2, 0xa1, 0x7e, 0x49, 0x8e, 0xa1, 0xad, 0xeb, 0xe6, 0xbd,
- 0x36, 0xa6, 0xd0, 0x7e, 0x7e, 0x70, 0xbc, 0x3b, 0x12, 0x99, 0xf5, 0x3b, 0xf8, 0xe2, 0xa0, 0x3f,
- 0xa3, 0x2d, 0x01, 0xe4, 0xe4, 0x7a, 0x84, 0x16, 0x61, 0x5f, 0xda, 0x16, 0x6f, 0xc6, 0x7b, 0x72,
- 0xaf, 0x01, 0xcd, 0xf8, 0xf8, 0xdb, 0x50, 0x66, 0x65, 0x7d, 0xe0, 0x66, 0x29, 0x78, 0x16, 0x7c,
- 0x88, 0xce, 0xdf, 0xab, 0xab, 0x83, 0x0c, 0xe9, 0x78, 0x7a, 0xa9, 0xe9, 0xc8, 0x0a, 0x5c, 0xb4,
- 0x89, 0x76, 0xce, 0x17, 0x17, 0x55, 0x1f, 0x5c, 0xc6, 0x9c, 0x4d, 0x5c, 0x98, 0xf1, 0x9b, 0xea,
- 0x0f, 0x27, 0xff, 0x1b, 0x1b, 0x18, 0xe1, 0x6c, 0x05, 0xcb, 0xd5, 0x6c, 0xb6, 0x70, 0xe7, 0xec,
- 0x1f, 0xf6, 0x2c, 0x8a, 0x8a, 0xe6, 0x12, 0x6d, 0xb4, 0xb3, 0x8d, 0x6d, 0xff, 0x1b, 0xca, 0x45,
- 0x42, 0x71, 0xe8, 0xba, 0xba, 0x11, 0x6c, 0xad, 0x3e, 0x2c, 0xa8, 0xad, 0x47, 0x5a, 0xf9, 0x5d,
- 0xf6, 0x23, 0x4d, 0x7d, 0x7d, 0xf2, 0x62, 0x37, 0x52, 0xfc, 0xd3, 0x37, 0x12, 0x53, 0xbf, 0xdf,
- 0xdf, 0x73, 0xb1, 0x89, 0x89, 0x64, 0xcc, 0x61, 0xf4, 0xd6, 0xab, 0x61, 0x15, 0xaa, 0xd5, 0xa5,
- 0x3a, 0x8a, 0x1c, 0x62, 0x62, 0xd1, 0x68, 0x4b, 0x16, 0xbb, 0xcf, 0x4b, 0xbe, 0x5c, 0xcd, 0x31,
- 0xc1, 0x3d, 0x8c, 0xbf, 0xbf, 0x54, 0xcd, 0xb9, 0xfe, 0x83, 0xc2, 0xb9, 0xba, 0x4a, 0xd8, 0xbe,
- 0x28, 0xe8, 0xed, 0x48, 0x48, 0x40, 0xbd, 0xe3, 0x18, 0xcc, 0x9c, 0xe3, 0x57, 0x02, 0xad, 0x24,
- 0xf1, 0x8d, 0x3a, 0xcf, 0xcf, 0x95, 0x1b, 0xba, 0xee, 0x0b, 0x2a, 0xba, 0x61, 0xf7, 0xaf, 0x86,
- 0xcb, 0x07, 0x26, 0xad, 0xad, 0x44, 0x73, 0xf1, 0xf8, 0xb0, 0xe5, 0xf1, 0xdf, 0xab, 0x62, 0xb7,
- 0x92, 0x25, 0xa6, 0x28, 0x28, 0x6d, 0x41, 0xa0, 0xcf, 0x31, 0xd6, 0xa0, 0xe4, 0x80, 0xcb, 0x14,
- 0x87, 0xe9, 0x20, 0xb0, 0xb0, 0x9b, 0xed, 0x85, 0x7d, 0xb1, 0x7c, 0x85, 0x7e, 0x7a, 0xbb, 0x58,
- 0xe7, 0x4a, 0x8f, 0x50, 0x50, 0xda, 0x82, 0x83, 0x5d, 0x62, 0x6f, 0x83, 0x0b, 0xc3, 0x55, 0x28,
- 0x3e, 0x2f, 0x58, 0xd7, 0xd7, 0x0f, 0x24, 0xda, 0xab, 0xa5, 0xd9, 0xda, 0x3d, 0x36, 0x57, 0x8a,
- 0xfa, 0x0f, 0x81, 0x61, 0x61, 0x53, 0xb6, 0x47, 0x56, 0xde, 0xe9, 0x47, 0x54, 0xed, 0xd2, 0xd1,
- 0x0d, 0x94, 0xdd, 0xa0, 0xa0, 0x77, 0xc7, 0xc5, 0xba, 0xc4, 0xde, 0xc5, 0x16, 0x45, 0xaa, 0x50,
- 0x51, 0xab, 0x08, 0x2c, 0x2c, 0x56, 0xaa, 0xb0, 0x8e, 0xbd, 0x1f, 0xb0, 0xfe, 0xff, 0x5e, 0x16,
- 0xb6, 0xe1, 0x87, 0x7c, 0x7c, 0x8c, 0x28, 0x33, 0xd3, 0xdf, 0x70, 0x33, 0xf5, 0x3c, 0x0b, 0x3e,
- 0x7b, 0xf0, 0xc7, 0xdf, 0xdf, 0x79, 0x31, 0xfa, 0x29, 0x7e, 0x88, 0xfa, 0x09, 0xc8, 0xbe, 0x8e,
- 0x74, 0xd7, 0x38, 0xc4, 0xc4, 0x61, 0xd0, 0x96, 0x2c, 0xb5, 0x5d, 0x96, 0xbf, 0xb8, 0x59, 0x62,
- 0x3f, 0x97, 0x49, 0x6b, 0x6b, 0xd9, 0x37, 0x6f, 0x15, 0x43, 0x3d, 0x6f, 0x6d, 0xcd, 0x90, 0xd4,
- 0x2f, 0x46, 0x9a, 0xfa, 0xfa, 0x27, 0xc4, 0x6e, 0xa4, 0x3b, 0x65, 0x6e, 0x24, 0xa6, 0xbd, 0x7d,
- 0x7d, 0xe6, 0xa1, 0xd1, 0xd1, 0xc8, 0x5b, 0xc2, 0x2b, 0x6f, 0x95, 0xc2, 0x2a, 0x97, 0x69, 0x89,
- 0xbb, 0x75, 0x5a, 0xdc, 0xdc, 0xfb, 0xef, 0xf6, 0x69, 0x1b, 0xae, 0xf6, 0xe3, 0x79, 0xa1, 0x6e,
- 0x49, 0xf3, 0x53, 0x14, 0x14, 0xd7, 0xc1, 0x50, 0x86, 0xf9, 0x6b, 0x50, 0x72, 0x40, 0x84, 0x0a,
- 0x2b, 0xe3, 0xde, 0x4f, 0x4f, 0xf9, 0x88, 0xff, 0x19, 0x25, 0x73, 0xff, 0xa7, 0xcc, 0x27, 0xc6,
- 0x99, 0xa7, 0x1d, 0x86, 0x86, 0xab, 0xec, 0x5d, 0x77, 0xe4, 0x15, 0x5d, 0xd1, 0x9a, 0xb6, 0x43,
- 0x02, 0xb3, 0x22, 0xbb, 0xbb, 0x6f, 0x26, 0xa9, 0xbf, 0x0f, 0x0b, 0xa9, 0xa0, 0x35, 0x4d, 0xbc,
- 0x37, 0x1e, 0xc1, 0xc2, 0xc2, 0xa6, 0xaf, 0x8e, 0xac, 0x7f, 0x11, 0x8e, 0xa8, 0x19, 0x67, 0x61,
- 0xb3, 0xfc, 0xd2, 0x75, 0x75, 0x84, 0x77, 0x17, 0xd0, 0x27, 0x82, 0x17, 0x26, 0xad, 0x56, 0xdb,
- 0x73, 0x79, 0x4f, 0x76, 0x76, 0x06, 0xa9, 0x1b, 0x90, 0x42, 0xa4, 0x1b, 0xcc, 0x1c, 0x49, 0x3b,
- 0x64, 0x06, 0xeb, 0x55, 0x55, 0x9f, 0x23, 0x97, 0x9d, 0xcd, 0x05, 0x97, 0xf6, 0xd3, 0x74, 0xcb,
- 0xdc, 0x78, 0x82, 0x8e, 0x8e, 0xdd, 0xf9, 0x7d, 0xf5, 0x3f, 0x44, 0x7d, 0xe5, 0x64, 0x5f, 0x47,
- 0xd8, 0xdd, 0xc6, 0x3b, 0x3b, 0x03, 0xb5, 0xec, 0x48, 0x21, 0x52, 0xec, 0x66, 0x0e, 0xc5, 0xfc,
- 0xc9, 0xb4, 0x04, 0x16, 0x16, 0x2b, 0x55, 0x58, 0x47, 0xbf, 0xee, 0x58, 0x7f, 0x9e, 0x2f, 0x0b,
- 0xab, 0xa4, 0x89, 0x4d, 0x4d, 0x05, 0x1c, 0xf7, 0xd8, 0x63, 0xf6, 0xf7, 0xaa, 0x12, 0x8c, 0xc7,
- 0x33, 0xbb, 0x85, 0x77, 0x77, 0x78, 0xe3, 0x1f, 0x11, 0x61, 0x07, 0x1f, 0x2b, 0x73, 0xfd, 0xda,
- 0x6b, 0x21, 0x14, 0x4e, 0x4e, 0x87, 0xc2, 0xfb, 0x98, 0x06, 0xd0, 0xfb, 0x40, 0xa3, 0x93, 0x27,
- 0xcc, 0xa9, 0x51, 0x1f, 0x1f, 0x23, 0x0a, 0x7c, 0x44, 0x47, 0x1c, 0x7c, 0xac, 0x0f, 0x72, 0xee,
- 0x90, 0x96, 0x84, 0x93, 0x93, 0x02, 0x67, 0x09, 0x70, 0x3e, 0xdd, 0x09, 0x44, 0xb5, 0x86, 0xa8,
- 0xd0, 0x54, 0x4e, 0x92, 0x92, 0x7c, 0x2d, 0x0d, 0xf1, 0x1d, 0x7e, 0x0d, 0xa3, 0xda, 0x32, 0x49,
- 0xac, 0x0a, 0xfe, 0xff, 0xff, 0x62, 0x65, 0x7a, 0x64, 0x94, 0x0f, 0x7a, 0xd9, 0xb6, 0x9c, 0x9e,
- 0xbf, 0xd0, 0x1e, 0x69, 0x69, 0x25, 0xa3, 0x67, 0xd4, 0x05, 0xb8, 0x67, 0x60, 0x13, 0x3b, 0xd5,
- 0xda, 0x6e, 0xe4, 0x80, 0x80, 0x6c, 0x93, 0x45, 0xf7, 0x2e, 0x59, 0x45, 0xc6, 0x3b, 0x88, 0x40,
- 0xa7, 0x88, 0x45, 0x51, 0x51, 0xa4, 0xc8, 0x87, 0xdc, 0x41, 0xcc, 0x87, 0xec, 0xac, 0xe1, 0xc9,
- 0x5e, 0x8c, 0xf7, 0x37, 0x37, 0x4e, 0x4b, 0xdc, 0x8b, 0x76, 0xca, 0xdc, 0x48, 0x8f, 0xb9, 0xfa,
- 0x98, 0x1f, 0x0c, 0x3a, 0x3a, 0x7d, 0xff, 0xe8, 0xc9, 0x02, 0xf1, 0xe8, 0x81, 0x61, 0x71, 0x1d,
- 0x7a, 0x48, 0xd6, 0x63, 0x63, 0xaf, 0x22, 0x4f, 0x97, 0x98, 0x6c, 0x4f, 0x59, 0x33, 0x79, 0xd0,
- 0x13, 0xda, 0xe0, 0x96, 0x96, 0x47, 0xc6, 0x1d, 0xb0, 0x91, 0xb7, 0x1d, 0xb9, 0xa5, 0xa7, 0x4b,
- 0x6a, 0x99, 0x05, 0xf2, 0xf2, 0x51, 0xd1, 0x4e, 0x26, 0xe0, 0x34, 0x4e, 0x10, 0x58, 0x54, 0x79,
- 0x40, 0xc2, 0xca, 0x01, 0x01, 0x7e, 0x4a, 0x04, 0x81, 0x23, 0xa3, 0x04, 0xe7, 0x6f, 0xb4, 0xe1,
- 0xa8, 0xaf, 0xba, 0x4a, 0x4a, 0xbc, 0x29, 0xeb, 0xd9, 0x8a, 0x19, 0xeb, 0x5a, 0xdc, 0x06, 0x25,
- 0x5b, 0x91, 0xa2, 0x3e, 0x3e, 0x46, 0x14, 0xf8, 0x88, 0x8e, 0x38, 0xf8, 0x9b, 0x1e, 0xe4, 0x1f,
- 0xeb, 0x66, 0x43, 0x4c, 0x4c, 0x7b, 0x56, 0xf3, 0x59, 0x40, 0x55, 0xf3, 0x4d, 0x7d, 0x38, 0x26,
- 0x66, 0xb5, 0xc9, 0xee, 0xee, 0xf0, 0x05, 0x3e, 0x22, 0xc2, 0x0e, 0x3e, 0x56, 0xe6, 0x39, 0x77,
- 0x56, 0x05, 0x7f, 0x9e, 0x9e, 0x31, 0xd3, 0x3d, 0x32, 0x4a, 0xe6, 0x3d, 0x8d, 0x5b, 0x4e, 0x4f,
- 0x81, 0xff, 0x46, 0xbe, 0xbe, 0x2a, 0x87, 0xbd, 0x7f, 0xa0, 0x61, 0xbd, 0x5d, 0x25, 0x6c, 0x5f,
- 0x77, 0xdc, 0x0b, 0xc3, 0xc3, 0xd8, 0xe5, 0x8a, 0x2d, 0x5c, 0xb2, 0x8a, 0x4f, 0x76, 0xd3, 0x80,
- 0x57, 0xbd, 0x6e, 0x22, 0x22, 0xe7, 0xc0, 0x88, 0x8c, 0xac, 0x02, 0x88, 0xdd, 0xa0, 0x89, 0x11,
- 0x4e, 0x5d, 0x24, 0xa6, 0xa6, 0xb0, 0xb8, 0xdd, 0x3a, 0x0e, 0x92, 0xdd, 0x01, 0xe4, 0x94, 0x53,
- 0x8d, 0xd3, 0x8a, 0xa2, 0xa2, 0x8b, 0x53, 0xcd, 0x7b, 0x82, 0x5b, 0xcd, 0x1b, 0x9b, 0x01, 0x51,
- 0xb0, 0xf7, 0xe1, 0x72, 0x72, 0x3d, 0x42, 0x0b, 0xd1, 0xce, 0x6d, 0x0b, 0xd6, 0x63, 0xdc, 0x39,
- 0xf3, 0x3e, 0x18, 0x74, 0x74, 0xfa, 0x3d, 0x13, 0x51, 0x04, 0x21, 0x13, 0xc1, 0xc2, 0xe2, 0x3a,
- 0x94, 0x33, 0xc0, 0x26, 0x26, 0xdc, 0x2b, 0x98, 0xcd, 0x20, 0xcb, 0x98, 0xc7, 0xdf, 0x1c, 0x13,
- 0x20, 0x61, 0x65, 0xe1, 0xe1, 0x3f, 0x25, 0x02, 0xa1, 0xf0, 0xb0, 0x02, 0x92, 0xd6, 0x5a, 0x91,
- 0x24, 0xc4, 0x21, 0x54, 0x54, 0xe1, 0x69, 0x93, 0x1c, 0xee, 0xa6, 0x93, 0x11, 0xbc, 0xc0, 0x2a,
- 0xd7, 0xfa, 0x39, 0x20, 0x20, 0x1b, 0x54, 0x80, 0x4d, 0xea, 0x87, 0x80, 0xd0, 0x7e, 0x22, 0x10,
- 0x14, 0x74, 0x97, 0x24, 0x24, 0x20, 0xbf, 0x90, 0x0c, 0x66, 0x4e, 0x90, 0xca, 0x01, 0xb7, 0x12,
- 0x9e, 0x09, 0x6a, 0x34, 0x34, 0xcc, 0x95, 0xd0, 0xcb, 0x13, 0xec, 0xd0, 0xa2, 0x3e, 0xa6, 0x1a,
- 0x05, 0x1d, 0x55, 0x09, 0x09, 0x08, 0x5f, 0x24, 0x03, 0xf8, 0xf2, 0x24, 0xd3, 0x91, 0x5d, 0xe5,
- 0xc6, 0x93, 0xfb, 0x0d, 0x0d, 0x33, 0xb4, 0x34, 0x42, 0x74, 0x3b, 0x34, 0xc9, 0xee, 0xc8, 0xe7,
- 0xed, 0x70, 0x25, 0x42, 0x42, 0xca, 0x3c, 0xcb, 0x5b, 0x51, 0x48, 0xcb, 0x6e, 0x22, 0xef, 0x21,
- 0xc8, 0x0c, 0x15, 0xaa, 0xaa, 0xfd, 0x46, 0xed, 0xf9, 0x59, 0x0a, 0xed, 0x2f, 0x65, 0xe8, 0x55,
- 0x9b, 0x14, 0x3f, 0x3d, 0x3d, 0xc4, 0xca, 0xf4, 0xc8, 0xeb, 0x1e, 0xf4, 0x71, 0xaf, 0xfb, 0xff,
- 0xbd, 0x63, 0x3c, 0xd2, 0xd2, 0x4a, 0x85, 0xce, 0x6b, 0x0a, 0xb3, 0xce, 0xc0, 0x26, 0x76, 0x69,
- 0x84, 0xe2, 0x13, 0xb7, 0xb7, 0x22, 0xd8, 0x99, 0x7c, 0x58, 0x93, 0x99, 0x8e, 0xb4, 0x31, 0xba,
- 0xc3, 0x8e, 0xae, 0x04, 0x04, 0x3b, 0xeb, 0x10, 0x41, 0x8c, 0xc9, 0x10, 0x1a, 0x7f, 0x95, 0x02,
- 0xca, 0xbf, 0x37, 0x11, 0x11, 0x92, 0x60, 0x44, 0x46, 0x56, 0x01, 0x44, 0x8f, 0x50, 0xa5, 0xe9,
- 0x8a, 0x7d, 0xfd, 0x10, 0x10, 0xec, 0x2a, 0x40, 0xc7, 0x75, 0xa2, 0x40, 0x68, 0x3f, 0x11, 0x08,
- 0x34, 0x15, 0xf2, 0xc5, 0xc5, 0x1f, 0x9a, 0x92, 0xad, 0x96, 0xfe, 0x92, 0x58, 0xd7, 0xed, 0x83,
- 0x26, 0x77, 0x03, 0xef, 0xef, 0x8e, 0x4f, 0x3a, 0xa3, 0xe1, 0xad, 0x3a, 0xb1, 0x89, 0x8d, 0x96,
- 0x10, 0xd1, 0xd3, 0x91, 0x91, 0xfe, 0xf3, 0x01, 0xb1, 0x78, 0x58, 0x01, 0x49, 0x6b, 0x2d, 0xa9,
- 0x25, 0x7c, 0x30, 0xe8, 0xe8, 0x37, 0x7a, 0x26, 0xa2, 0x08, 0x42, 0x26, 0x41, 0x47, 0x07, 0x74,
- 0xe3, 0xef, 0xcb, 0xe5, 0xe5, 0x04, 0xce, 0x12, 0xe0, 0x7c, 0x79, 0x12, 0x88, 0xa9, 0xcf, 0x93,
- 0x63, 0xa8, 0x9c, 0xe7, 0xe7, 0xf8, 0x5a, 0x1a, 0x21, 0x3a, 0xfc, 0x1a, 0x85, 0x77, 0x64, 0x92,
- 0x0a, 0x3a, 0xaa, 0x12, 0x12, 0x10, 0xbe, 0x48, 0x06, 0x33, 0x27, 0x48, 0x65, 0xe1, 0xba, 0x09,
- 0x4f, 0xe5, 0x35, 0x1a, 0x1a, 0x66, 0xab, 0x68, 0x84, 0xe8, 0x76, 0x68, 0x51, 0x1f, 0x53, 0x0d,
- 0x8b, 0xc5, 0xec, 0xac, 0xac, 0x3a, 0x39, 0xf5, 0x79, 0x93, 0x46, 0xf5, 0x38, 0xc4, 0xd6, 0x56,
- 0xc7, 0x2b, 0xea, 0xb1, 0xb1, 0xe5, 0xa7, 0x81, 0xfc, 0x92, 0xdf, 0x81, 0x99, 0x15, 0x0f, 0xb9,
- 0x67, 0x0d, 0xd8, 0x52, 0x52, 0x26, 0x16, 0x8b, 0x9c, 0x24, 0xea, 0x8b, 0x06, 0x1d, 0xfe, 0x29,
- 0x2d, 0xf5, 0xb8, 0x41, 0x41, 0x48, 0xe2, 0xc7, 0x1b, 0x34, 0x6e, 0xc7, 0x84, 0x93, 0xf0, 0xc1,
- 0xfe, 0xaa, 0xc5, 0xd4, 0xd4, 0x8d, 0xfa, 0xd6, 0xeb, 0xc0, 0xff, 0xd6, 0xd7, 0x87, 0x48, 0x6a,
- 0x45, 0xdf, 0x9f, 0x08, 0x08, 0x76, 0x15, 0x20, 0x82, 0xdb, 0x51, 0x20, 0x34, 0xfe, 0xe9, 0x04,
- 0xa0, 0x26, 0x32, 0xe3, 0xe3, 0xc3, 0xb1, 0x0a, 0x60, 0xb6, 0x35, 0x0a, 0x9f, 0x08, 0xf1, 0x90,
- 0x80, 0x47, 0x57, 0x02, 0x02, 0xfc, 0x94, 0x08, 0xc1, 0x46, 0x85, 0x08, 0x0d, 0xde, 0xab, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x4a, 0xf8, 0x60, 0x13, 0x13, 0x6e, 0xf4, 0x4c, 0x87, 0x10, 0x84, 0x4c, 0x82, 0x8e, 0x0e, 0xe8,
- 0xee, 0x7b, 0x16, 0x45, 0x45, 0x73, 0x09, 0xd7, 0x5a, 0xb8, 0xa7, 0xd7, 0x9e, 0xec, 0x65, 0xc3,
- 0x4c, 0xee, 0x06, 0x1d, 0x1d, 0xdf, 0x9e, 0x74, 0x85, 0x01, 0x99, 0x74, 0xa1, 0xd1, 0xd9, 0xef,
- },
- { /* 5 */
- 0xd8, 0xca, 0x20, 0x18, 0xa6, 0x5b, 0x9c, 0xaf, 0x78, 0xd9, 0x1d, 0x80, 0x8c, 0x85, 0x3b, 0x8c,
- 0x69, 0x10, 0x51, 0x4c, 0xc5, 0x06, 0x68, 0x18, 0xbf, 0x31, 0xb7, 0x87, 0xa1, 0x7c, 0xf5, 0xa1,
- 0xc0, 0xd0, 0x1b, 0x9a, 0xb0, 0x2e, 0xcd, 0xb8, 0xb7, 0xbe, 0xdf, 0x6c, 0x21, 0x29, 0x03, 0x21,
- 0xba, 0xff, 0xe6, 0xab, 0xa2, 0x89, 0xd9, 0x61, 0x42, 0xa1, 0xdc, 0x1e, 0xaa, 0x69, 0x60, 0xaa,
- 0x16, 0x4a, 0xed, 0x3d, 0x41, 0x6b, 0x5a, 0x6f, 0xc9, 0x92, 0xec, 0x32, 0xcd, 0xe3, 0x9f, 0xcd,
- 0x87, 0x09, 0x79, 0x52, 0xab, 0x3b, 0xd3, 0xec, 0xd9, 0x4f, 0x3c, 0x27, 0x0e, 0x49, 0xb0, 0x0e,
- 0x58, 0xeb, 0x32, 0xf4, 0xc7, 0x6f, 0xab, 0x7f, 0xa2, 0x0d, 0x36, 0xc8, 0xb2, 0x0a, 0x39, 0xb2,
- 0x59, 0x24, 0x27, 0x8b, 0xe9, 0xec, 0xca, 0x36, 0xe2, 0xff, 0xf0, 0x9c, 0x38, 0xe7, 0x85, 0x38,
- 0xc4, 0x6a, 0x4f, 0xa5, 0x08, 0x67, 0x8a, 0x5f, 0x74, 0xf0, 0x41, 0xff, 0x4c, 0x1b, 0xb6, 0x4c,
- 0x6a, 0x82, 0x6e, 0xcd, 0xb7, 0x40, 0xcb, 0xc3, 0x7f, 0xe4, 0x3e, 0x7b, 0xfc, 0x88, 0xf2, 0xfc,
- 0x05, 0x75, 0x41, 0x40, 0x96, 0xca, 0x26, 0xae, 0x83, 0xbc, 0x58, 0xc7, 0xe7, 0xdf, 0x09, 0xe7,
- 0x9a, 0x66, 0x03, 0x90, 0x2b, 0x84, 0xa4, 0x55, 0x95, 0x94, 0xa6, 0x0c, 0x44, 0x3a, 0x81, 0x44,
- 0x06, 0xe7, 0x7e, 0xc1, 0xe4, 0x8c, 0x85, 0x75, 0x43, 0x69, 0xd1, 0x3b, 0xba, 0x2b, 0x0e, 0xba,
- 0xa6, 0x5f, 0x89, 0x16, 0x0c, 0xb5, 0xcf, 0x91, 0x4e, 0x88, 0x80, 0x61, 0x6a, 0xf7, 0xed, 0x6a,
- 0x0d, 0xc2, 0xe9, 0x3e, 0x25, 0x58, 0xa8, 0xa3, 0xc6, 0x20, 0xa7, 0x22, 0x3d, 0xbb, 0xa0, 0x3d,
- 0xd1, 0xb2, 0x9d, 0x19, 0x3b, 0x4a, 0x73, 0xeb, 0x7d, 0xb7, 0x24, 0x31, 0xdc, 0x0c, 0x2e, 0xdc,
- 0x43, 0x63, 0x36, 0xf7, 0xa3, 0x5c, 0x59, 0xb3, 0xad, 0xbf, 0x7d, 0xd8, 0x42, 0x52, 0x06, 0x42,
- 0x85, 0x54, 0x53, 0xac, 0xf7, 0xfe, 0x11, 0x7e, 0x59, 0x68, 0x73, 0x8f, 0xd9, 0x50, 0x0b, 0xd9,
- 0x41, 0x3e, 0x1c, 0x09, 0xff, 0x99, 0x9b, 0x21, 0x2d, 0x98, 0x32, 0x70, 0x95, 0x4b, 0xbd, 0x95,
- 0xd2, 0x20, 0xa2, 0x98, 0x49, 0x0c, 0xd0, 0x30, 0xbd, 0x62, 0xad, 0xcd, 0x81, 0xf8, 0x29, 0x81,
- 0x2c, 0x94, 0x19, 0x7a, 0x82, 0xd6, 0xb4, 0xde, 0x51, 0xe7, 0x1b, 0x64, 0x59, 0x05, 0xfd, 0x59,
- 0xcd, 0x12, 0xf2, 0xa4, 0x95, 0x76, 0x65, 0x1b, 0x71, 0x9e, 0x78, 0x4e, 0x1c, 0x92, 0xa3, 0x1c,
- 0x0b, 0x25, 0x97, 0xff, 0xc1, 0xd4, 0x2d, 0xd6, 0x85, 0x49, 0x76, 0x19, 0x87, 0x90, 0xae, 0x87,
- 0xa2, 0xe5, 0xdd, 0x29, 0xb4, 0xfc, 0x88, 0x76, 0x8d, 0xc6, 0x1e, 0xf2, 0x07, 0xc5, 0x58, 0x07,
- 0x38, 0x83, 0xde, 0xb9, 0x9f, 0x78, 0x2c, 0x23, 0x18, 0x52, 0xb8, 0xfe, 0x43, 0xff, 0xd9, 0x43,
- 0xf7, 0xcc, 0x06, 0xe3, 0x56, 0xcb, 0x8b, 0xaa, 0xe9, 0xeb, 0x8f, 0x18, 0x88, 0x74, 0xc1, 0x88,
- 0x4b, 0xd4, 0x9e, 0x89, 0x10, 0xce, 0xd7, 0xbe, 0xe8, 0x23, 0x82, 0x3d, 0x98, 0x36, 0xaf, 0x98,
- 0xe6, 0xae, 0x80, 0x60, 0xdd, 0xaf, 0x35, 0xf9, 0x23, 0xe2, 0x74, 0x45, 0x75, 0x51, 0xec, 0x75,
- 0xe7, 0x61, 0x95, 0x1f, 0xf3, 0x2c, 0x54, 0xb0, 0x63, 0x10, 0xb2, 0x11, 0xff, 0xbc, 0x50, 0xff,
- 0x90, 0x8c, 0x81, 0x10, 0xc4, 0xd3, 0xe8, 0xca, 0x50, 0x2f, 0x16, 0x41, 0x49, 0x47, 0x93, 0x49,
- 0x1a, 0x47, 0x11, 0x7c, 0x4a, 0xb0, 0x93, 0x85, 0x4f, 0x40, 0x8d, 0x44, 0x7a, 0xb5, 0x83, 0x7a,
- 0x53, 0xce, 0xa5, 0x0b, 0x06, 0xbb, 0x86, 0xa9, 0x27, 0x44, 0x40, 0xd1, 0x35, 0x9a, 0x97, 0x35,
- 0xa3, 0x2a, 0xc8, 0x56, 0x9a, 0x7f, 0xe9, 0x3f, 0xcd, 0x34, 0xd8, 0xa6, 0x8d, 0x28, 0xe4, 0x8d,
- 0xf1, 0x2b, 0x78, 0x22, 0xb2, 0x47, 0x0e, 0xdf, 0xaa, 0x82, 0x5e, 0x23, 0x32, 0x5f, 0xcf, 0x32,
- 0xfd, 0x26, 0x84, 0x63, 0xb9, 0x9c, 0xc7, 0x35, 0x2c, 0x50, 0x3f, 0x55, 0x85, 0x09, 0xd3, 0x85,
- 0x51, 0x93, 0x8f, 0xf5, 0x5a, 0x7e, 0x44, 0x3b, 0xa7, 0x63, 0x0f, 0x79, 0xe2, 0x83, 0x2c, 0xe2,
- 0x29, 0xe1, 0x58, 0x3a, 0x14, 0x1c, 0x92, 0x70, 0xd2, 0x5b, 0x43, 0xa3, 0xbe, 0xda, 0xf4, 0xbe,
- 0x3b, 0x11, 0xe1, 0x38, 0xed, 0x3e, 0x8f, 0xf8, 0xd8, 0x87, 0x31, 0x02, 0x1e, 0x0b, 0xde, 0x1e,
- 0x82, 0x7c, 0x38, 0x12, 0x3d, 0xf1, 0xf5, 0x42, 0x5a, 0xf3, 0x64, 0xe0, 0xe9, 0x96, 0xb9, 0xe9,
- 0x67, 0x40, 0x87, 0xf3, 0x92, 0x18, 0x63, 0x60, 0xb9, 0xc4, 0x99, 0x59, 0xc1, 0x33, 0x52, 0xc1,
- 0x8b, 0x04, 0x85, 0x13, 0xa0, 0xe0, 0x1a, 0x06, 0x5f, 0x9d, 0x5d, 0x51, 0xb9, 0x1f, 0xac, 0xb9,
- 0x48, 0x46, 0xa1, 0x08, 0x62, 0x88, 0x74, 0x65, 0x28, 0xf6, 0x0b, 0xc1, 0xc5, 0xc2, 0xa8, 0xc5,
- 0x2a, 0x73, 0x67, 0xbb, 0x66, 0x5a, 0x31, 0xab, 0x12, 0x8e, 0xca, 0x5f, 0xe3, 0x2e, 0xf3, 0xe3,
- 0xef, 0xd6, 0x3d, 0x61, 0x40, 0xbe, 0xda, 0xbd, 0x26, 0x8c, 0x4d, 0xf4, 0x25, 0xd8, 0xf9, 0x25,
- 0x70, 0xc5, 0x7f, 0xb1, 0xfd, 0xf0, 0x58, 0x46, 0x30, 0xa4, 0xb3, 0x3f, 0x86, 0x3d, 0x71, 0x86,
- 0x2d, 0x5b, 0x0c, 0x05, 0xac, 0x55, 0xd5, 0x97, 0x11, 0x15, 0xdd, 0x30, 0xd3, 0xe8, 0x41, 0xd3,
- 0x31, 0xfb, 0x63, 0xb8, 0x02, 0x69, 0xc3, 0x67, 0x1d, 0x3c, 0x81, 0x4f, 0x13, 0x76, 0xcc, 0x13,
- 0xe2, 0x14, 0xd4, 0x5f, 0x65, 0xe6, 0x72, 0x1e, 0xe0, 0xac, 0xea, 0xd6, 0x18, 0x63, 0x59, 0x18,
- 0x86, 0xc6, 0x6c, 0x2d, 0x85, 0xb8, 0xb2, 0xa5, 0x99, 0xbd, 0xfa, 0x73, 0x84, 0xa4, 0x0c, 0x84,
- 0xc9, 0xa8, 0xa6, 0x9b, 0x2d, 0x3f, 0x22, 0xfc, 0xb2, 0xd0, 0xe6, 0xdd, 0x71, 0xa0, 0x16, 0x71,
- 0xb0, 0x15, 0x64, 0x2b, 0x4d, 0xde, 0x95, 0xfe, 0x87, 0x1a, 0x6c, 0x53, 0xa7, 0x14, 0x72, 0xa7,
- 0x80, 0x21, 0x12, 0xec, 0x61, 0x34, 0x37, 0xd0, 0xda, 0xd4, 0x2b, 0x48, 0x3e, 0x8f, 0x02, 0x3e,
- 0xf5, 0x91, 0x2c, 0x1d, 0x0a, 0x0e, 0x49, 0x38, 0x69, 0xcc, 0xc0, 0xb0, 0x5f, 0x6d, 0x7a, 0x5f,
- 0xfc, 0xe9, 0x91, 0x1c, 0x97, 0x1f, 0xa6, 0x7c, 0x6c, 0xa2, 0xf9, 0x01, 0x0f, 0xe4, 0x6f, 0x0f,
- 0x60, 0x68, 0xec, 0x4d, 0x58, 0x17, 0x87, 0x5c, 0xba, 0x5f, 0x8e, 0x36, 0xf1, 0xf5, 0xe0, 0xf1,
- 0x44, 0x4b, 0x5d, 0x49, 0x69, 0x53, 0xbd, 0x8f, 0xae, 0x24, 0x6a, 0xb7, 0x72, 0x94, 0xb4, 0x72,
- 0x0c, 0x0d, 0xfc, 0x41, 0x0b, 0xdb, 0xc9, 0xea, 0x86, 0xd2, 0x61, 0x76, 0xb7, 0x56, 0x1c, 0xb7,
- 0x8f, 0xbe, 0xd1, 0x2c, 0x18, 0xa9, 0x5d, 0xe1, 0x9c, 0xd3, 0xc3, 0xc2, 0xd4, 0x2d, 0x19, 0xd4,
- 0xa4, 0x02, 0xa3, 0xe8, 0x50, 0x70, 0x0d, 0x03, 0xce, 0xaf, 0xcf, 0xc9, 0xbd, 0xee, 0x56, 0xbd,
- 0x3d, 0xf6, 0x9f, 0xf9, 0x09, 0xb2, 0x0a, 0x8d, 0x9b, 0xee, 0xe0, 0x39, 0xa4, 0x20, 0xd0, 0xa4,
- 0x62, 0x35, 0xc6, 0xb3, 0x04, 0xd2, 0x45, 0xce, 0x3a, 0x78, 0xc1, 0x9e, 0x26, 0xec, 0x5b, 0x26,
- 0x35, 0x41, 0x37, 0x87, 0xba, 0x20, 0x84, 0x80, 0xde, 0x72, 0x1f, 0xdc, 0x7e, 0x44, 0x79, 0x7e,
- 0xe0, 0x49, 0xfe, 0xa1, 0x39, 0x23, 0xb0, 0x8c, 0x60, 0x8b, 0xa5, 0x7e, 0xcf, 0x7a, 0xe2, 0xcf,
- 0x68, 0xdf, 0x44, 0x33, 0xeb, 0x85, 0x09, 0x51, 0xff, 0xc3, 0x71, 0xd3, 0x2b, 0x91, 0x49, 0x2b,
- 0xdc, 0x70, 0x74, 0x27, 0x1e, 0x12, 0xdb, 0x48, 0xbb, 0x97, 0x83, 0x13, 0xe1, 0xb7, 0x8e, 0xe1,
- 0x40, 0xf1, 0x09, 0x76, 0xd1, 0x1a, 0xfa, 0x68, 0x6d, 0x6a, 0xf4, 0x24, 0x1f, 0xa6, 0x01, 0x1f,
- 0xa0, 0xb8, 0xf7, 0xd7, 0xe8, 0x39, 0x4a, 0xe4, 0x0d, 0xe1, 0x51, 0x5a, 0xd0, 0xdc, 0xe3, 0xd0,
- 0xa7, 0x90, 0x9c, 0x69, 0x22, 0x36, 0xae, 0xd8, 0x0e, 0x7a, 0x46, 0x35, 0xe0, 0x1a, 0x51, 0xe0,
- 0x9f, 0x13, 0x42, 0xd0, 0xbd, 0x4e, 0x82, 0xfb, 0x16, 0x28, 0xfe, 0xcb, 0xa3, 0xe5, 0x88, 0xa3,
- 0x2b, 0xbc, 0x72, 0xc4, 0x48, 0xd9, 0x50, 0xe2, 0x52, 0x7c, 0x0c, 0x0b, 0x69, 0xc3, 0x4f, 0x69,
- 0xae, 0xe8, 0x21, 0x68, 0xbf, 0x27, 0x41, 0x9c, 0x0b, 0x14, 0x7f, 0x84, 0xb0, 0x93, 0x44, 0xb0,
- 0x10, 0xad, 0x93, 0xfc, 0xa5, 0xe7, 0xdf, 0x1a, 0x8a, 0xfb, 0x3d, 0x09, 0x77, 0xc8, 0x91, 0x77,
- 0xfe, 0xb4, 0xbb, 0xe2, 0xcb, 0xda, 0x64, 0xee, 0xec, 0x85, 0xb6, 0xa9, 0xd8, 0xfd, 0xd4, 0xd8,
- 0xa1, 0x77, 0xe2, 0xa8, 0xc6, 0xba, 0x2b, 0xad, 0x4d, 0x13, 0x97, 0x0e, 0x5a, 0x31, 0x5f, 0x5a,
- 0xc7, 0xf8, 0x70, 0x24, 0x7a, 0x21, 0x29, 0x84, 0xb4, 0x25, 0xc8, 0x03, 0x11, 0xef, 0xb1, 0x11,
- 0x4d, 0x33, 0xe0, 0x48, 0xf4, 0x42, 0x52, 0xcb, 0xab, 0x4a, 0x53, 0x06, 0x22, 0x1d, 0xa1, 0x22,
- 0xaa, 0x52, 0x75, 0x57, 0x07, 0x6e, 0x06, 0x7b, 0xc8, 0x5a, 0xe1, 0x17, 0xdd, 0xa1, 0xf1, 0xdd,
- 0xd4, 0xc7, 0xdc, 0x59, 0xad, 0x80, 0x55, 0x45, 0xfe, 0x0b, 0x7c, 0xf6, 0x3b, 0xd3, 0x27, 0x3b,
- 0x42, 0xac, 0x23, 0x88, 0x8d, 0xdf, 0x38, 0xfa, 0xed, 0x4d, 0xbb, 0x8c, 0xc8, 0xbf, 0xba, 0xc8,
- 0x2e, 0xc9, 0x33, 0x84, 0xde, 0x13, 0x76, 0x4c, 0xd1, 0xc0, 0x54, 0xcc, 0x8e, 0x1c, 0x46, 0x8e,
- 0x49, 0x89, 0xb4, 0x77, 0x4c, 0x0b, 0x15, 0x2c, 0x68, 0x04, 0xcd, 0x95, 0x4f, 0x2f, 0x14, 0x4f,
- 0xb2, 0x48, 0x4e, 0xd5, 0x11, 0x1b, 0x57, 0x6c, 0x07, 0x3d, 0x23, 0xfb, 0x70, 0x0d, 0xc9, 0x70,
- 0x77, 0xed, 0x14, 0x0f, 0x37, 0xff, 0xbc, 0x7a, 0x33, 0x3f, 0xa4, 0x50, 0xb6, 0xfb, 0xc3, 0xb6,
- 0x39, 0x4c, 0xcb, 0xc6, 0xb1, 0xfb, 0x4d, 0x6a, 0x58, 0xa0, 0x7e, 0xaa, 0xc9, 0x12, 0x65, 0xc9,
- 0xad, 0x7a, 0x1e, 0xe9, 0xcd, 0x61, 0xe2, 0x47, 0xcb, 0xc1, 0xf6, 0x78, 0xed, 0x67, 0x43, 0xed,
- 0x20, 0x99, 0xe5, 0x3b, 0x89, 0x0d, 0x7d, 0x34, 0xd7, 0x35, 0x7a, 0x12, 0xee, 0x53, 0xe1, 0xee,
- 0xcf, 0x4f, 0xd8, 0x5a, 0xc9, 0xb3, 0xa7, 0x89, 0xf1, 0xb9, 0x37, 0xe6, 0xcb, 0x8b, 0x18, 0xcb,
- 0x64, 0xd2, 0xb8, 0x72, 0xe0, 0x5e, 0xc0, 0xbb, 0x79, 0x11, 0x10, 0xa5, 0x9c, 0xc7, 0x55, 0x9c,
- 0x9b, 0xa9, 0x16, 0xef, 0x05, 0x07, 0xc5, 0x1c, 0xd5, 0x66, 0x60, 0x58, 0xce, 0xd7, 0x3d, 0xce,
- 0xde, 0x2d, 0x5e, 0xd9, 0x42, 0xd7, 0x19, 0xda, 0x3b, 0xb0, 0xcc, 0xbb, 0x36, 0xae, 0x35, 0x36,
- 0x7f, 0x5a, 0xbc, 0x71, 0x84, 0x6d, 0x32, 0x77, 0x76, 0xa3, 0x5b, 0xb5, 0x6c, 0x9f, 0x6a, 0x6c,
- 0xa8, 0x0f, 0x5f, 0xa9, 0x5b, 0xab, 0xc4, 0xe9, 0x48, 0x7d, 0xae, 0xbf, 0x0a, 0xb8, 0x4a, 0x0a,
- 0xb6, 0xf2, 0x1a, 0xea, 0xa9, 0x52, 0x10, 0x8b, 0xc4, 0x73, 0xbd, 0x68, 0x1d, 0x3f, 0x7c, 0x1d,
- 0x5c, 0x51, 0x66, 0xcb, 0x7f, 0x26, 0xec, 0x98, 0x61, 0x43, 0xa8, 0x5b, 0xdf, 0x38, 0x8c, 0xdf,
- 0xa5, 0xcd, 0xb6, 0x97, 0x7e, 0xf3, 0x6c, 0x4a, 0x8e, 0x5d, 0x09, 0x9d, 0x37, 0x03, 0xea, 0x37,
- 0x6b, 0x4d, 0x7b, 0xb2, 0x99, 0xc3, 0xaa, 0x8a, 0x3f, 0x16, 0xf8, 0x2f, 0x76, 0x65, 0x4e, 0x76,
- 0xd3, 0xef, 0xb7, 0xe7, 0x67, 0x8f, 0xb1, 0x79, 0xfd, 0x90, 0x6b, 0x99, 0x0b, 0x15, 0x95, 0x0b,
- 0xf0, 0xe4, 0x6d, 0x5d, 0x9c, 0xc4, 0x6f, 0x96, 0xea, 0x70, 0x98, 0x77, 0xb8, 0xb2, 0x73, 0xb8,
- 0x5d, 0x9e, 0x73, 0xb4, 0x51, 0xa5, 0x8d, 0xd1, 0x21, 0xb1, 0x6e, 0x0f, 0x55, 0xd5, 0x30, 0x55,
- 0xc8, 0x67, 0xb3, 0xe4, 0x03, 0xbc, 0x43, 0xb5, 0xf2, 0x22, 0x20, 0x89, 0xfb, 0x4d, 0xaa, 0xfb,
- 0xc5, 0xa5, 0x5a, 0xda, 0x26, 0xe4, 0xeb, 0x16, 0x34, 0x02, 0x87, 0xab, 0xc6, 0xf6, 0x0a, 0xc6,
- 0xbd, 0xd7, 0x8d, 0x15, 0x68, 0x86, 0x3d, 0x5d, 0x41, 0x3a, 0xcb, 0x71, 0x9a, 0xaf, 0xd2, 0x9a,
- 0xc3, 0x42, 0x24, 0x1b, 0xc2, 0x68, 0x6e, 0x63, 0x77, 0x6b, 0x56, 0x90, 0x7c, 0xdd, 0x04, 0x7c,
- 0xe4, 0xf3, 0xaa, 0x9e, 0x81, 0x6a, 0xf7, 0x6b, 0xa3, 0xc5, 0x3b, 0xed, 0xa2, 0x48, 0x57, 0xa2,
- 0xaf, 0x27, 0x34, 0x17, 0x91, 0xa4, 0x20, 0xd5, 0x4b, 0xe6, 0xb9, 0xd0, 0x3a, 0x7e, 0xf8, 0x3a,
- 0xb8, 0xa2, 0xcc, 0x55, 0xfe, 0x4c, 0x1b, 0xf3, 0xc2, 0x86, 0x93, 0xb6, 0x7d, 0x70, 0xdb, 0x7d,
- 0xcb, 0xf5, 0x8c, 0x65, 0x71, 0xfa, 0xe0, 0x6e, 0x32, 0xf7, 0xa9, 0x75, 0xa6, 0xb9, 0xad, 0xa6,
- 0xc1, 0x1f, 0x0e, 0xe5, 0x9e, 0xad, 0xac, 0xf1, 0xf7, 0x4c, 0x19, 0x38, 0xab, 0xc4, 0xbf, 0xab,
- 0xb5, 0x60, 0x25, 0x6b, 0xdb, 0x14, 0xb3, 0x50, 0x04, 0xa6, 0x34, 0x94, 0x40, 0xcb, 0x7b, 0x40,
- 0x6f, 0xf7, 0x2f, 0x8d, 0x21, 0x8a, 0xed, 0x6d, 0xfc, 0x58, 0x66, 0xbc, 0x1b, 0x57, 0xfb, 0x1b,
- 0x4c, 0xfc, 0xf5, 0x37, 0xda, 0xc1, 0x33, 0x82, 0xeb, 0xb8, 0x95, 0x52, 0xa8, 0xf0, 0x1d, 0xa8,
- 0x97, 0xa4, 0xea, 0xae, 0x0e, 0xdc, 0x0c, 0xf6, 0x53, 0xb4, 0x01, 0x2e, 0x79, 0x81, 0x21, 0x79,
- 0x88, 0x96, 0xba, 0x92, 0xd2, 0xa6, 0xb9, 0xdd, 0x9f, 0x48, 0xd4, 0xad, 0xe4, 0xeb, 0xab, 0xe4,
- 0x61, 0xa7, 0xf9, 0x32, 0x76, 0x94, 0xe6, 0x15, 0xfa, 0xad, 0x48, 0x62, 0x7b, 0x18, 0x5c, 0x7b,
- 0x57, 0x74, 0xf1, 0x34, 0xbe, 0xf2, 0xc1, 0x4e, 0xe4, 0x0a, 0xde, 0x42, 0x58, 0xa8, 0x22, 0x58,
- 0x11, 0x62, 0x86, 0x83, 0x8b, 0x64, 0xbe, 0x53, 0xca, 0x09, 0xfb, 0x5d, 0xfd, 0x25, 0x2d, 0xfd,
- 0x99, 0xf4, 0x3c, 0x11, 0x59, 0xc2, 0x07, 0x8e, 0x55, 0x41, 0x2f, 0xf0, 0x19, 0xce, 0x86, 0x19,
- 0x72, 0x98, 0x55, 0x4f, 0xa1, 0x35, 0x9a, 0xd4, 0xb0, 0x83, 0xfc, 0x97, 0x51, 0x24, 0xca, 0x51,
- 0x83, 0xb3, 0x2d, 0x6d, 0x13, 0x72, 0x94, 0x0b, 0x1a, 0x01, 0xa2, 0xb4, 0x63, 0x7b, 0x05, 0x63,
- 0xbf, 0x8a, 0xa7, 0xeb, 0x34, 0x43, 0xff, 0xcf, 0xc1, 0x1d, 0x84, 0xd9, 0x4d, 0xb6, 0x69, 0x4d,
- 0x55, 0x29, 0xdb, 0xca, 0xe2, 0x37, 0x03, 0xdc, 0x64, 0x2d, 0x91, 0xea, 0x8f, 0xb1, 0x99, 0x8f,
- 0x73, 0x57, 0x40, 0x30, 0x8f, 0xb6, 0xfb, 0x9d, 0xf0, 0x71, 0x3a, 0xc3, 0xdb, 0xc9, 0x76, 0xdb,
- 0x9d, 0x4e, 0x68, 0x2e, 0xe1, 0x8b, 0x40, 0x69, 0x96, 0x0f, 0xb1, 0x63, 0x74, 0xfc, 0x33, 0x74,
- 0x81, 0xee, 0x07, 0x93, 0x4f, 0xb7, 0x56, 0x99, 0x9a, 0x26, 0xed, 0x1c, 0xb4, 0x62, 0xbe, 0xb4,
- 0x3f, 0xab, 0xb5, 0x07, 0x55, 0x77, 0xc8, 0x1f, 0x1b, 0xc9, 0xaf, 0x91, 0x73, 0x39, 0x6b, 0x73,
- 0xb3, 0x87, 0x5b, 0xaa, 0x3f, 0x98, 0x36, 0x25, 0x47, 0xcf, 0xe5, 0xaf, 0xfa, 0xe0, 0x75, 0xfa,
- 0xbb, 0x30, 0xf3, 0xd4, 0x8c, 0x0a, 0xb8, 0x28, 0x02, 0x53, 0x1a, 0x4a, 0x20, 0x84, 0xdc, 0x20,
- 0xd6, 0x9a, 0xf6, 0xa7, 0xf1, 0x45, 0x97, 0xd7, 0x7e, 0x2c, 0x33, 0x5e, 0xec, 0xca, 0x9c, 0xec,
- 0xea, 0xa3, 0x7c, 0x21, 0xd6, 0x74, 0xfc, 0x13, 0xa5, 0x30, 0x15, 0x33, 0xc2, 0x07, 0xf0, 0xc2,
- 0x25, 0xec, 0xa4, 0x7b, 0x1f, 0xc7, 0x5b, 0x9a, 0x54, 0x89, 0x22, 0xd5, 0x09, 0x8c, 0xe8, 0x09,
- 0xce, 0x80, 0xcd, 0x25, 0xe7, 0x30, 0xc6, 0xc0, 0xb1, 0x4b, 0xf1, 0xb2, 0x41, 0x66, 0xa4, 0x41,
- 0x63, 0xfa, 0xd3, 0xcc, 0x2a, 0x51, 0x24, 0x87, 0x7a, 0x8a, 0x07, 0xca, 0xac, 0x01, 0xe7, 0xac,
- 0x45, 0x84, 0x48, 0x36, 0x47, 0xd0, 0xdc, 0xc6, 0xee, 0xd6, 0xac, 0xe3, 0xf8, 0x79, 0x08, 0xf8,
- 0x32, 0x69, 0x5c, 0x39, 0x70, 0x2f, 0x60, 0xbc, 0xdd, 0xe9, 0x08, 0xb3, 0x4e, 0x82, 0xcb, 0x4e,
- 0xd7, 0x55, 0xe3, 0xd8, 0xdf, 0xc6, 0xf6, 0x9e, 0x3e, 0xde, 0xf5, 0x0a, 0x66, 0x27, 0x20, 0x66,
- 0x9e, 0xdc, 0x57, 0xaf, 0x93, 0xcd, 0xe3, 0xb2, 0x56, 0xda, 0x38, 0x9f, 0x29, 0x08, 0x34, 0x29,
- 0x08, 0xb7, 0xa8, 0x7e, 0xb3, 0x92, 0x8e, 0x0d, 0x45, 0x9c, 0xff, 0xe5, 0xda, 0x64, 0xa9, 0xda,
- 0x8d, 0xe3, 0xfb, 0xd2, 0x44, 0x6c, 0x9f, 0x73, 0x1c, 0xf4, 0x8c, 0x6a, 0x03, 0x34, 0xa2, 0x03,
- 0x79, 0xbd, 0xc2, 0xb0, 0x60, 0xe1, 0xb7, 0x02, 0x35, 0xca, 0x8a, 0x8e, 0xd6, 0xb4, 0x64, 0xd6,
- 0xab, 0x9d, 0x60, 0x28, 0x29, 0xed, 0x67, 0x32, 0x88, 0xa8, 0x27, 0x43, 0x57, 0x4c, 0x4d, 0x57,
- 0x36, 0xd3, 0x08, 0x06, 0xc8, 0x66, 0x27, 0x5b, 0x1e, 0xa7, 0x96, 0x20, 0x23, 0xb0, 0x7e, 0x23,
- 0xfb, 0xc1, 0xfa, 0xa2, 0x5d, 0x10, 0x42, 0x40, 0x6f, 0x39, 0xee, 0x6e, 0x3f, 0x22, 0xdd, 0x3f,
- 0xec, 0x44, 0x02, 0xe0, 0x32, 0xf8, 0x79, 0x66, 0xe6, 0x59, 0xc4, 0x08, 0x78, 0x2c, 0xfe, 0x78,
- 0x4e, 0xa1, 0xdf, 0xc9, 0x86, 0x04, 0xf1, 0x10, 0x6b, 0x9f, 0xda, 0xfa, 0x7f, 0xe9, 0xa6, 0x7f,
- 0x7e, 0x95, 0xa9, 0x0e, 0xaa, 0xee, 0x53, 0x3e, 0x36, 0x51, 0x9d, 0xe1, 0xe6, 0x72, 0xd6, 0xe6,
- 0xd0, 0x7d, 0x88, 0x66, 0x15, 0xc9, 0x12, 0xa2, 0x3d, 0x45, 0xe2, 0x65, 0x56, 0xe1, 0x92, 0x56,
- 0x6c, 0x65, 0x10, 0x0c, 0x53, 0xcc, 0x4e, 0xb6, 0x3c, 0x8d, 0xef, 0x40, 0x46, 0xa3, 0xfc, 0x46,
- 0xf3, 0x76, 0x52, 0xdc, 0xee, 0x82, 0xcc, 0x4d, 0x2a, 0xa5, 0x11, 0x8b, 0xe5, 0x46, 0x74, 0xe5,
- 0x5f, 0xc3, 0x59, 0x4a, 0x0d, 0x60, 0x4f, 0x43, 0xa1, 0x96, 0x21, 0xa7, 0x82, 0xcc, 0x8b, 0x82,
- 0xff, 0x7b, 0xae, 0x9d, 0xe5, 0x59, 0x05, 0xa7, 0xac, 0x77, 0x70, 0xfd, 0x52, 0x10, 0x68, 0x52,
- 0x8a, 0xcb, 0x90, 0x6c, 0x8e, 0x63, 0x7b, 0x4f, 0x1f, 0x6f, 0x9b, 0x05, 0x33, 0xf2, 0x10, 0x33,
- 0x56, 0xbb, 0xe4, 0x4b, 0x90, 0x71, 0xa0, 0x07, 0xa4, 0xf8, 0x18, 0x16, 0xd2, 0x45, 0x9e, 0xd2,
- 0xdd, 0xbf, 0x61, 0x58, 0x30, 0x91, 0xba, 0x01, 0xfb, 0x65, 0x45, 0x47, 0x6b, 0x5a, 0x32, 0x6b,
- 0xb4, 0xaf, 0x30, 0x14, 0xf5, 0x97, 0xd2, 0x19, 0x44, 0x54, 0xf2, 0xc0, 0xca, 0x26, 0xc7, 0xca,
- 0x04, 0xba, 0x54, 0x3f, 0xb8, 0x49, 0x47, 0xe7, 0xc3, 0x4e, 0x9e, 0x93, 0x6d, 0x32, 0xb5, 0x6d,
- 0xbe, 0x45, 0xb2, 0x94, 0x1a, 0xc0, 0x9e, 0x86, 0x81, 0xef, 0x42, 0x8d, 0xc7, 0x5b, 0xd5, 0xc7,
- 0x1b, 0x88, 0x04, 0x03, 0x64, 0x33, 0xf2, 0xcc, 0x0f, 0xb2, 0x4b, 0x10, 0xf0, 0x58, 0x3f, 0xf0,
- 0x9c, 0x81, 0x7d, 0x51, 0xcf, 0x08, 0x21, 0x20, 0xd6, 0xfd, 0x77, 0x37, 0xfe, 0x11, 0x8f, 0xfe,
- 0x5e, 0x0c, 0x4c, 0x35, 0x23, 0xe3, 0x2e, 0x0a, 0xe1, 0x64, 0xe7, 0xf3, 0x08, 0x21, 0x37, 0x08,
- 0x07, 0x28, 0x6b, 0xbe, 0xca, 0x0f, 0xe4, 0x3c, 0x03, 0x9b, 0x17, 0x6f, 0x30, 0xc6, 0xb2, 0x30,
- 0x8c, 0x2c, 0xee, 0xad, 0x6a, 0xef, 0xfe, 0x3a, 0x5c, 0x06, 0x4a, 0x3e, 0x89, 0xd9, 0x1e, 0x89,
- 0x0f, 0x9f, 0xc3, 0xc0, 0x79, 0x9d, 0x6a, 0x31, 0x46, 0x07, 0xe8, 0x8a, 0xea, 0xa2, 0x1b, 0xea,
- 0x6d, 0xaa, 0x05, 0x73, 0x7d, 0x4f, 0x2f, 0xff, 0x7c, 0x7f, 0x29, 0x14, 0xcc, 0x4e, 0x40, 0xcc,
- 0xf4, 0x5e, 0x39, 0x62, 0x24, 0x8d, 0x28, 0x71, 0x29, 0x3e, 0x06, 0xe4, 0xd5, 0x80, 0xc6, 0xd5,
- 0x26, 0x7e, 0x9b, 0xfa, 0x6d, 0x81, 0xf8, 0x41, 0x94, 0x5c, 0xab, 0x29, 0x54, 0x78, 0xef, 0x54,
- 0x71, 0x0a, 0x6a, 0xce, 0xd3, 0x73, 0x39, 0x0f, 0x70, 0x56, 0x75, 0x6b, 0x0c, 0xd0, 0xcd, 0x0c,
- 0x1c, 0xa0, 0x6f, 0xbd, 0xae, 0x3c, 0x16, 0xf0, 0x0c, 0x29, 0x5c, 0x7f, 0xc0, 0x9e, 0x8d, 0xc0,
- 0x94, 0x36, 0xd5, 0x2f, 0x7c, 0x9a, 0xaf, 0x2d, 0x93, 0x61, 0x88, 0xd2, 0x24, 0x75, 0x26, 0x24,
- 0x22, 0xc4, 0xcf, 0xc5, 0xd5, 0xc8, 0xbf, 0xa6, 0x57, 0x12, 0x35, 0xba, 0x39, 0x4a, 0x5a, 0x39,
- 0xeb, 0x6c, 0x69, 0x5e, 0xf8, 0xf7, 0x9d, 0x5a, 0xe5, 0xc2, 0xd3, 0x67, 0x48, 0xea, 0x4c, 0x48,
- 0xbc, 0x18, 0x98, 0x6a, 0x46, 0x05, 0x5c, 0x14, 0x01, 0xc8, 0x0d, 0x25, 0x10, 0x42, 0x6e, 0x10,
- 0x3c, 0x39, 0x8a, 0x86, 0x27, 0x31, 0x6b, 0xc4, 0xdb, 0x1c, 0x26, 0x6d, 0x2e, 0xcd, 0x6c, 0x2e,
- 0x15, 0xd8, 0xd2, 0xbc, 0x33, 0x2d, 0xf9, 0xb4, 0x09, 0x47, 0x65, 0xce, 0x90, 0x17, 0x98, 0x90,
- 0xe9, 0x31, 0x43, 0xa0, 0xa4, 0x32, 0x5f, 0xc8, 0x65, 0xe5, 0x9c, 0xcf, 0x9f, 0xf3, 0xf7, 0x9f,
- 0x02, 0x5d, 0x2a, 0xfe, 0x5c, 0xc5, 0xc2, 0x92, 0x80, 0x27, 0x4f, 0xa8, 0xd7, 0x19, 0xbb, 0xd7,
- 0x46, 0x16, 0x77, 0xb7, 0x35, 0x96, 0x7f, 0x1d, 0x2e, 0x03, 0x25, 0x1f, 0xa5, 0x8d, 0x0f, 0xa5,
- 0xda, 0x97, 0x0a, 0xe6, 0xfa, 0x9e, 0x5e, 0x3d, 0xf8, 0xfe, 0x52, 0x28, 0x5b, 0x9c, 0x80, 0x5b,
- 0x19, 0xd5, 0x2e, 0xfd, 0x38, 0xf6, 0x30, 0x5e, 0x8f, 0x95, 0x04, 0xb8, 0x27, 0x41, 0x84, 0x27,
- 0xdb, 0x58, 0x1f, 0x99, 0xd4, 0x1d, 0x3f, 0x74, 0xb8, 0x0c, 0x94, 0x7c, 0xd1, 0x71, 0x3c, 0xd1,
- 0x1e, 0xfd, 0x45, 0x43, 0xf2, 0xf9, 0xd4, 0x62, 0x8c, 0x0e, 0x13, 0xd7, 0x17, 0x87, 0x36, 0x17,
- 0x17, 0x85, 0xf8, 0x42, 0x6f, 0xe8, 0x3b, 0x26, 0x89, 0x60, 0x2a, 0x66, 0x47, 0x0e, 0x23, 0x47,
- 0x4a, 0x1b, 0x8b, 0xf6, 0x3e, 0x4d, 0xb6, 0xf7, 0xa8, 0xd1, 0x44, 0x69, 0x12, 0xdb, 0x13, 0x12,
- 0x0a, 0xea, 0x82, 0x80, 0xef, 0x57, 0x4c, 0x9f, 0xc5, 0xbb, 0xb0, 0x4d, 0x0d, 0x7d, 0x12, 0x0d,
- 0xd9, 0x05, 0x35, 0x67, 0x88, 0xd8, 0xfd, 0xe6, 0x38, 0x2b, 0xdb, 0xd4, 0x06, 0x68, 0x87, 0x06,
- 0x89, 0x59, 0xaf, 0xed, 0xfc, 0x25, 0xd8, 0x94, 0xdf, 0xba, 0x12, 0xf9, 0x6e, 0x06, 0x17, 0x6e,
- 0x78, 0x72, 0xd7, 0xcf, 0x4e, 0x62, 0xd6, 0x4b, 0x75, 0x38, 0x4c, 0xda, 0x5c, 0x59, 0xd8, 0x5c,
- 0x76, 0x22, 0x01, 0x70, 0x19, 0x7c, 0xdd, 0x33, 0x73, 0xcd, 0x62, 0x04, 0x3c, 0x16, 0x7f, 0x3c,
- 0x27, 0xb1, 0x8e, 0x85, 0x43, 0x02, 0x99, 0x08, 0xd4, 0xae, 0x6d, 0x7d, 0xde, 0x95, 0x53, 0xde,
- 0x18, 0x1a, 0x3b, 0x82, 0x16, 0x75, 0x51, 0x17, 0xcf, 0x67, 0xc2, 0xec, 0xad, 0xac, 0x38, 0xad,
- 0x23, 0x0b, 0xda, 0xba, 0xfb, 0x4b, 0xde, 0xef, 0x17, 0xe0, 0xf3, 0xee, 0xb3, 0xa7, 0xe6, 0xb3,
- 0xf2, 0xb9, 0x47, 0xa3, 0xc0, 0x01, 0xad, 0x04, 0x6a, 0x57, 0xd7, 0xdf, 0x6f, 0xab, 0xc8, 0x6f,
- 0x95, 0xf9, 0xc0, 0x50, 0x52, 0x19, 0xce, 0x64, 0xd3, 0x93, 0x4e, 0x86, 0xae, 0x98, 0x9a, 0xae,
- 0xd5, 0x08, 0xc9, 0x26, 0x83, 0x03, 0x34, 0x0c, 0xbe, 0xf9, 0xba, 0xa2, 0xb1, 0x3e, 0x9b, 0xb1,
- 0xa9, 0xc0, 0x4a, 0xd6, 0x75, 0x28, 0xa5, 0xa0, 0x08, 0x8f, 0x68, 0xeb, 0x80, 0x55, 0xf6, 0x80,
- 0x84, 0x9b, 0x46, 0xd3, 0xd9, 0x7d, 0x70, 0x37, 0x19, 0x9a, 0xb5, 0xdb, 0x53, 0xbd, 0xb7, 0x53,
- 0xe1, 0x86, 0xeb, 0xde, 0x17, 0xa0, 0xd1, 0xc5, 0x20, 0x79, 0x63, 0x2a, 0x45, 0x97, 0x5e, 0x45,
- 0x1d, 0x6f, 0x7a, 0xc2, 0x80, 0xbf, 0x77, 0xb9, 0x4c, 0xdb, 0x9a, 0x2b, 0x4a, 0x73, 0x31, 0x4a,
- 0x93, 0x1e, 0xbe, 0x91, 0xb6, 0x95, 0x4b, 0x11, 0x90, 0xfa, 0x9f, 0xbd, 0x14, 0xb3, 0x94, 0x14,
- 0x28, 0x2e, 0x4d, 0x45, 0x3a, 0x9f, 0xf3, 0x39, 0x92, 0xa9, 0x85, 0xf7, 0x34, 0x37, 0x48, 0x34,
- 0xc6, 0x37, 0x65, 0x5b, 0x54, 0xa2, 0x48, 0xcd, 0xf4, 0xd7, 0x0e, 0x57, 0x9b, 0x02, 0x0d, 0x9b,
- 0x7b, 0xe0, 0xe8, 0x4e, 0x3c, 0x24, 0x75, 0x90, 0xb5, 0xed, 0xc5, 0x26, 0x01, 0xad, 0xdf, 0x01,
- 0x65, 0x1d, 0xad, 0x0d, 0xce, 0xdd, 0xa1, 0xf2, 0x39, 0xe3, 0xd6, 0xf1, 0x16, 0x2a, 0xe9, 0x16,
- 0x75, 0xb0, 0x3e, 0xf1, 0x6b, 0x3a, 0x7e, 0xe8, 0xb3, 0x18, 0xeb, 0xf8, 0x61, 0xe2, 0x78, 0x61,
- 0x7c, 0xc8, 0x83, 0xf0, 0xf6, 0x2b, 0x91, 0xac, 0xb6, 0x76, 0xd2, 0x49, 0x31, 0x6b, 0x6d, 0x31,
- 0xe3, 0xdb, 0xc1, 0x20, 0x4b, 0x65, 0x13, 0x57, 0xa0, 0x5e, 0x2c, 0x82, 0x92, 0x8e, 0xe5, 0x92,
- 0xee, 0x19, 0x28, 0x1e, 0x6e, 0x3d, 0xbb, 0xf4, 0x66, 0x7e, 0x8b, 0xa0, 0xaf, 0x35, 0x45, 0xaf,
- 0x21, 0x56, 0xf0, 0x44, 0xa7, 0x8e, 0x1c, 0x7d, 0x97, 0xc7, 0xbc, 0x46, 0x64, 0xbe, 0x5d, 0x64,
- 0x8e, 0x71, 0xc4, 0x53, 0x36, 0x2a, 0x3c, 0xa8, 0xdc, 0x21, 0x05, 0x96, 0x5e, 0xc0, 0xa5, 0x5e,
- 0xf9, 0x9c, 0xd0, 0x5c, 0x01, 0xd5, 0x80, 0xd2, 0xef, 0x1e, 0xa1, 0xc6, 0xe8, 0x3b, 0x66, 0xe8,
- 0x01, 0xcf, 0x15, 0x7f, 0x2e, 0x83, 0x61, 0x49, 0x40, 0xf2, 0xc6, 0x54, 0x8a, 0xed, 0xbc, 0x8a,
- 0x5b, 0x79, 0x0d, 0x75, 0xb5, 0x29, 0x08, 0xa4, 0x62, 0xd8, 0xbf, 0x34, 0xef, 0xfe, 0x3e, 0xef,
- 0x91, 0x43, 0x94, 0x6f, 0xea, 0x50, 0x89, 0x83, 0x10, 0xdd, 0xd0, 0x15, 0xc3, 0xaa, 0x2f, 0xc3,
- 0x14, 0x17, 0xc7, 0xc3, 0x1d, 0xae, 0x98, 0xfd, 0x49, 0xb5, 0xa3, 0x9a, 0x1a, 0xfa, 0x24, 0x1a,
- 0x7a, 0x2f, 0xfd, 0x31, 0x12, 0xa7, 0x14, 0xd9, 0xf5, 0x1f, 0x03, 0x72, 0x8b, 0x40, 0x63, 0x8b,
- 0xf6, 0x03, 0x13, 0x9c, 0x78, 0x48, 0xea, 0xe3, 0xa9, 0x19, 0x49, 0x4c, 0x02, 0x99, 0x7d, 0x02,
- 0xb1, 0xda, 0x71, 0x54, 0x63, 0x5d, 0xf4, 0xb7, 0xc7, 0xe8, 0xaa, 0x07, 0x2d, 0xf9, 0xce, 0x2d,
- 0xb7, 0x3d, 0x0f, 0x95, 0x87, 0xd1, 0x71, 0xc2, 0x84, 0x81, 0x7b, 0x3c, 0x97, 0xd2, 0xc0, 0x97,
- 0xca, 0x3a, 0x99, 0x1a, 0x5f, 0x79, 0x81, 0x27, 0x72, 0x05, 0x6f, 0x21, 0x2c, 0x54, 0x11, 0x2c,
- 0x5a, 0xb6, 0x18, 0x0a, 0x9b, 0xaa, 0x69, 0xed, 0x22, 0x2a, 0x79, 0x60, 0x65, 0x13, 0x82, 0x65,
- 0xf8, 0x53, 0xc5, 0x23, 0x2f, 0x56, 0xe1, 0x9b, 0xaf, 0xec, 0x67, 0x92, 0x62, 0xd6, 0xda, 0x62,
- 0xcc, 0xdd, 0xe7, 0xdb, 0xbb, 0xf5, 0x04, 0x52, 0x31, 0x6c, 0xbe, 0x1a, 0x96, 0x7f, 0x1f, 0x96,
- 0x47, 0xd9, 0x62, 0xc8, 0x1b, 0x15, 0x1e, 0x54, 0x6e, 0xf1, 0xe3, 0x4b, 0x2f, 0x60, 0xb3, 0x2f,
- 0x96, 0x6b, 0xff, 0xd1, 0x20, 0x5f, 0x6d, 0xbf, 0x13, 0x46, 0xc7, 0x7a, 0xf3, 0x6c, 0x9d, 0xf3,
- 0x6e, 0x38, 0x3a, 0xf2, 0x0f, 0x09, 0x8c, 0x24, 0xbc, 0xaa, 0xa0, 0xe8, 0x91, 0xba, 0x47, 0x91,
- 0x13, 0x3f, 0xac, 0x7d, 0xd7, 0xa1, 0x7c, 0xc1, 0x4a, 0x2e, 0xb4, 0xf5, 0x2a, 0x3c, 0x96, 0x2a,
- 0x24, 0x23, 0xb1, 0x04, 0x31, 0x44, 0x3a, 0xd3, 0x14, 0x7b, 0xe4, 0x81, 0x83, 0x61, 0x54, 0x83,
- 0x74, 0x7f, 0x2b, 0x8e, 0x45, 0xb9, 0x1f, 0xa1, 0xf3, 0xea, 0x2d, 0xac, 0xeb, 0x0f, 0xc4, 0xeb,
- 0x09, 0x78, 0xbd, 0x01, 0x9d, 0x11, 0xef, 0x44, 0x05, 0x6e, 0x39, 0xb1, 0x50, 0x89, 0x15, 0x50,
- 0x03, 0x92, 0x3f, 0x81, 0x72, 0x46, 0xa3, 0xdb, 0xc0, 0xd5, 0x89, 0xfc, 0x5d, 0xf4, 0x07, 0x5d,
- 0x30, 0x34, 0x76, 0xc7, 0x2c, 0xea, 0xa2, 0x2e, 0x5d, 0xce, 0x47, 0x1b, 0x99, 0x9b, 0x70, 0x99,
- 0x50, 0x5c, 0x9a, 0x8a, 0x74, 0xfd, 0x25, 0x72, 0xe7, 0x91, 0xc9, 0x2d, 0x68, 0x6e, 0x90, 0x68,
- 0x4f, 0x6e, 0xca, 0xb6, 0xa8, 0x87, 0x90, 0x59, 0x2b, 0x6d, 0x1c, 0xae, 0xf5, 0x04, 0x1a, 0xf5,
- 0x0e, 0x50, 0xd6, 0xbf, 0x57, 0x1e, 0x0b, 0x78, 0x06, 0xf5, 0x2e, 0xde, 0x60, 0x4f, 0xa7, 0x60,
- 0x7d, 0x07, 0x96, 0x8f, 0xd8, 0xa8, 0xf0, 0xe5, 0xf6, 0x84, 0x14, 0x1d, 0xbb, 0x86, 0xd1, 0xbb,
- 0xb9, 0x6d, 0xd9, 0x2a, 0xd0, 0xcf, 0x7a, 0xba, 0x82, 0x74, 0x55, 0xe2, 0xf7, 0x9d, 0x67, 0xf7,
- 0x37, 0x1c, 0x1d, 0x79, 0xe6, 0xe5, 0x46, 0x12, 0x5e, 0x55, 0x50, 0x74, 0xa9, 0x5d, 0xc2, 0xa9,
- 0x54, 0xe6, 0xce, 0xb5, 0xcc, 0xb4, 0x62, 0x95, 0x24, 0xdf, 0x57, 0xbe, 0x05, 0x5c, 0x25, 0x05,
- 0x1f, 0x32, 0x50, 0x3c, 0xdc, 0x7a, 0xb5, 0x2b, 0xcc, 0xfc, 0xd5, 0x83, 0x9d, 0x6a, 0x8a, 0x9d,
- 0xc2, 0x8d, 0x31, 0x64, 0xec, 0xeb, 0x0f, 0x2a, 0x37, 0x99, 0x90, 0xc4, 0xf6, 0x30, 0xb8, 0xf6,
- 0x33, 0xa6, 0x49, 0x46, 0x5e, 0xac, 0x01, 0xf5, 0x9d, 0x1b, 0xce, 0xe7, 0xc4, 0x6f, 0x77, 0xc4,
- 0x3a, 0xde, 0xf4, 0x47, 0xc3, 0xbd, 0xee, 0xb1, 0x98, 0x75, 0xf7, 0x56, 0x94, 0xe6, 0x62, 0x94,
- 0xe5, 0x3c, 0xbf, 0xe1, 0xaf, 0xe9, 0x96, 0x22, 0xe3, 0x37, 0xfd, 0xb9, 0x28, 0xa5, 0xeb, 0x28,
- 0xe8, 0xfe, 0x56, 0xdf, 0x8a, 0xb1, 0x3e, 0x81, 0x25, 0x17, 0x5a, 0x9b, 0x15, 0x1e, 0x4b, 0x15,
- 0x12, 0xf0, 0xb9, 0x02, 0xf9, 0x22, 0x1d, 0x88, 0x0a, 0xdc, 0x72, 0xa1, 0xa0, 0xd1, 0x2a, 0xa0,
- 0x92, 0xd1, 0xab, 0xee, 0x98, 0x16, 0x2a, 0x58, 0xd0, 0x08, 0x59, 0xe9, 0x9e, 0x5e, 0x28, 0x9e,
- 0xac, 0xb5, 0x0b, 0x96, 0xe3, 0xe2, 0x83, 0x0e, 0x8b, 0x33, 0x30, 0x2c, 0x67, 0x8a, 0xff, 0x67,
- 0x34, 0x8e, 0x22, 0xf8, 0x94, 0xa3, 0xe5, 0xc9, 0x9e, 0x80, 0xd9, 0x88, 0xf4, 0xa9, 0xc5, 0xf4,
- 0x52, 0x01, 0xb0, 0x74, 0x28, 0x38, 0xe7, 0xe0, 0x67, 0xb6, 0x86, 0x85, 0xbf, 0x77, 0x2b, 0xbf,
- 0xed, 0x8b, 0x17, 0x9f, 0x1c, 0x7b, 0x18, 0x2f, 0xa6, 0xab, 0x02, 0x5c, 0xf2, 0xc1, 0x42, 0xf2,
- 0xfa, 0x0e, 0xef, 0xdd, 0x73, 0x93, 0x23, 0x09, 0x2f, 0xcb, 0x28, 0x3a, 0xb5, 0xcf, 0x61, 0xb5,
- 0x98, 0x3b, 0x29, 0x6e, 0x77, 0x41, 0x66, 0xc7, 0x15, 0xb3, 0xe9, 0xa4, 0x93, 0x23, 0x3a, 0x93,
- 0xdf, 0xe2, 0x4b, 0xa6, 0x6c, 0x54, 0x78, 0x93, 0x7b, 0x42, 0x0a, 0xef, 0xbc, 0x43, 0x89, 0xbc,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x66, 0x8f, 0x92, 0x8c, 0xbc, 0x9b, 0x02, 0x29, 0xf9, 0x36, 0x5f, 0x0d, 0x4b, 0xde, 0xee, 0x4b,
- 0x2f, 0x06, 0x26, 0xfb, 0xf0, 0x90, 0x17, 0x05, 0x91, 0x32, 0x92, 0x98, 0x04, 0xf1, 0xfa, 0x04,
- 0x3e, 0x64, 0xa0, 0x78, 0x7b, 0xf4, 0xa9, 0x56, 0x5b, 0x3b, 0x69, 0xc5, 0xf9, 0xd4, 0xd7, 0xf9,
- },
- { /* 6 */
- 0x51, 0x8b, 0xc0, 0x48, 0x41, 0xdb, 0x9d, 0x79, 0x04, 0x5b, 0xb3, 0x42, 0x6e, 0xe5, 0x18, 0xc6,
- 0x33, 0xea, 0x25, 0x27, 0xfa, 0x81, 0x30, 0xe7, 0xa3, 0x06, 0xf7, 0x12, 0x65, 0x8f, 0x4c, 0x36,
- 0xa4, 0x98, 0x5a, 0x40, 0x48, 0x42, 0xb3, 0xc9, 0x3b, 0x2e, 0x19, 0xca, 0x9c, 0x04, 0x9a, 0x9d,
- 0x67, 0xeb, 0x11, 0xd7, 0x14, 0x97, 0xc2, 0x59, 0x6c, 0x89, 0xa6, 0x39, 0x6b, 0x80, 0xab, 0x4b,
- 0x0a, 0xd7, 0x2b, 0xb3, 0x9d, 0x59, 0xde, 0x4d, 0x55, 0x6b, 0x07, 0xd2, 0xc0, 0x17, 0x3d, 0xb5,
- 0xe7, 0x33, 0xd5, 0x7d, 0x3a, 0x1c, 0x1b, 0x11, 0xa6, 0x3b, 0x18, 0xa1, 0xf1, 0xc2, 0x52, 0x20,
- 0x28, 0xda, 0xac, 0x89, 0x31, 0xa7, 0xfe, 0xf7, 0x97, 0x6f, 0x1c, 0xce, 0x86, 0x5c, 0xf4, 0x91,
- 0x1a, 0xcc, 0xd2, 0x37, 0xe8, 0x70, 0x6c, 0x44, 0xdd, 0xec, 0x60, 0xc1, 0x42, 0x8e, 0x8b, 0x80,
- 0x6c, 0xc0, 0x61, 0xfd, 0xaa, 0x98, 0xbe, 0x40, 0xd0, 0x67, 0x2a, 0xf6, 0x0a, 0xca, 0xa5, 0xd9,
- 0x65, 0xd0, 0xa7, 0x26, 0x52, 0x3b, 0x45, 0xf1, 0x7d, 0x40, 0x73, 0x03, 0xea, 0x3a, 0xcd, 0x05,
- 0xfa, 0x4e, 0x45, 0x03, 0x3b, 0x0d, 0x9f, 0x3a, 0xa1, 0xca, 0x4f, 0x33, 0x52, 0x1c, 0x40, 0x55,
- 0xe8, 0x6e, 0x0a, 0x76, 0x08, 0x88, 0xaa, 0x9b, 0x38, 0x84, 0xfd, 0x1a, 0x51, 0x3f, 0x90, 0x2e,
- 0xac, 0x74, 0xc7, 0x02, 0x93, 0xb7, 0xea, 0x2c, 0x7f, 0x8c, 0xcb, 0x22, 0xdd, 0xa9, 0xc1, 0x66,
- 0x5a, 0xa0, 0xb0, 0x62, 0xff, 0xd4, 0xe1, 0x60, 0xb8, 0xb5, 0x3f, 0x8d, 0x0f, 0xaf, 0x16, 0x54,
- 0xa9, 0xfe, 0x33, 0xba, 0x3c, 0x7a, 0x85, 0xeb, 0xb4, 0x58, 0x29, 0x4b, 0xbd, 0x43, 0x3e, 0xdd,
- 0x30, 0x2d, 0xc8, 0x4f, 0x9f, 0x7b, 0x15, 0x1b, 0x5b, 0x4a, 0xa9, 0x35, 0x45, 0x68, 0x19, 0x5f,
- 0x8b, 0xf3, 0xb4, 0x80, 0x90, 0x84, 0xa5, 0x51, 0x76, 0x5c, 0x32, 0x57, 0xfb, 0x08, 0xf7, 0xf9,
- 0x83, 0x1f, 0x29, 0xc2, 0x4b, 0x71, 0xfc, 0xb4, 0x32, 0xfe, 0xe0, 0xbf, 0xba, 0xa5, 0xac, 0x02,
- 0xef, 0xdf, 0x48, 0x3f, 0xe1, 0xe9, 0x42, 0xf4, 0xe2, 0x99, 0xca, 0x49, 0xb0, 0x6f, 0x09, 0xdb,
- 0x66, 0x17, 0x4a, 0x4e, 0x37, 0xc1, 0x60, 0x0d, 0x85, 0x0c, 0x2d, 0x24, 0xca, 0xdd, 0x98, 0x6c,
- 0x14, 0x6d, 0x56, 0xa5, 0xf9, 0xb2, 0x7f, 0x9a, 0xaa, 0xd6, 0x0e, 0x67, 0x43, 0x2e, 0x7a, 0xa9,
- 0x0d, 0x66, 0x69, 0xfa, 0x74, 0x38, 0x36, 0x22, 0x8f, 0x76, 0x30, 0x81, 0x21, 0x47, 0xa4, 0x40,
- 0x05, 0x8a, 0xf4, 0xb8, 0xaf, 0xcd, 0x6f, 0xc7, 0xcb, 0xd4, 0xe2, 0x69, 0x60, 0xea, 0xff, 0xbb,
- 0x92, 0xf8, 0x8b, 0xdf, 0x1d, 0x0e, 0xec, 0xe9, 0x53, 0xfc, 0x0c, 0xb1, 0x99, 0x61, 0x29, 0x10,
- 0x7a, 0x96, 0x81, 0xa9, 0x15, 0x86, 0x46, 0x72, 0x6b, 0x78, 0xf1, 0xab, 0xc8, 0x5e, 0xb9, 0x3e,
- 0x13, 0xdc, 0x14, 0xec, 0x10, 0xd3, 0x97, 0xf5, 0x70, 0xcb, 0x39, 0x34, 0xa2, 0x7e, 0xe3, 0x5c,
- 0xd8, 0x43, 0xc2, 0x39, 0x97, 0xf3, 0xbf, 0x80, 0x63, 0xce, 0x54, 0x2f, 0x14, 0x57, 0x89, 0x71,
- 0x87, 0x69, 0x86, 0xe3, 0xc7, 0xea, 0x31, 0x27, 0x10, 0xaf, 0x89, 0xcb, 0x7b, 0x12, 0x60, 0x9e,
- 0xb5, 0x7f, 0xf8, 0x5d, 0x1e, 0x3d, 0xa3, 0x94, 0x5a, 0x2c, 0xf5, 0xc4, 0xbf, 0xc0, 0x1f, 0x8f,
- 0xdf, 0xf2, 0x80, 0x70, 0x7e, 0x92, 0x57, 0xef, 0xb9, 0xd3, 0x63, 0x7c, 0xf5, 0x07, 0x10, 0x84,
- 0x91, 0x3f, 0x66, 0xb7, 0x78, 0xf4, 0xc9, 0x15, 0xab, 0xb0, 0x52, 0x96, 0xb9, 0x86, 0x7c, 0x79,
- 0x2d, 0x50, 0x58, 0x31, 0x9e, 0x6a, 0x91, 0x30, 0x5c, 0xbb, 0xfe, 0xa7, 0xe6, 0xb6, 0x0b, 0x2a,
- 0xa0, 0xee, 0xf5, 0x61, 0xc4, 0xd9, 0x7e, 0x5a, 0x19, 0x7f, 0x70, 0xbe, 0x5d, 0xb3, 0x56, 0x01,
- 0xbf, 0xa8, 0xd3, 0xee, 0x83, 0x64, 0x7d, 0xd9, 0x0f, 0x47, 0xf2, 0x16, 0x7f, 0xd7, 0x22, 0x3a,
- 0x24, 0x40, 0x9e, 0xea, 0x66, 0xc9, 0x6a, 0x81, 0xf1, 0x9c, 0xa7, 0x52, 0x06, 0x46, 0x63, 0xf6,
- 0x49, 0x7c, 0xa4, 0x8e, 0xef, 0x07, 0x76, 0x95, 0xc8, 0x7e, 0x06, 0xb9, 0xad, 0xd1, 0xf5, 0x08,
- 0xee, 0x23, 0x13, 0xa6, 0xc2, 0xbf, 0xe0, 0xa0, 0x0b, 0x1c, 0x41, 0x54, 0x11, 0x32, 0x3a, 0xfc,
- 0x2c, 0xac, 0x03, 0xa8, 0xbd, 0x3c, 0x33, 0x64, 0xb5, 0x3e, 0x75, 0xba, 0x47, 0xeb, 0x38, 0x0d,
- 0x1d, 0x7d, 0x90, 0x7e, 0x01, 0x11, 0x84, 0x2b, 0x07, 0xf1, 0x57, 0x92, 0xa3, 0xde, 0x12, 0x75,
- 0xcc, 0x2e, 0x94, 0x9c, 0x6e, 0x41, 0xc0, 0x1a, 0xc9, 0x18, 0x5a, 0x48, 0x57, 0x79, 0xf3, 0xd8,
- 0x7c, 0xdb, 0x98, 0x79, 0xdf, 0xb1, 0x0c, 0x49, 0x58, 0xe0, 0x4d, 0xe5, 0x88, 0x53, 0x13, 0xec,
- 0x8e, 0x79, 0x40, 0x38, 0x3f, 0x49, 0xca, 0x96, 0xbd, 0x88, 0xd0, 0x3e, 0x9b, 0xe2, 0x08, 0x42,
- 0xb8, 0x19, 0x91, 0xa7, 0x6a, 0x05, 0x95, 0xb6, 0xd5, 0x5a, 0xc5, 0x45, 0x9e, 0x87, 0xbb, 0xcf,
- 0xe6, 0xcf, 0x8e, 0xe4, 0x19, 0x4a, 0xb9, 0x45, 0x4f, 0xbe, 0x93, 0xbc, 0x50, 0x9f, 0x61, 0x07,
- 0xf4, 0xef, 0xc1, 0x91, 0x2a, 0xcf, 0x8c, 0xe4, 0xd6, 0xf0, 0x21, 0x95, 0x53, 0xbc, 0xb1, 0x7c,
- 0x26, 0x7b, 0x28, 0x1b, 0x20, 0x65, 0xed, 0x29, 0xe0, 0x55, 0x72, 0x68, 0x87, 0xfc, 0x05, 0xb8,
- 0x1b, 0x30, 0x89, 0xae, 0xcb, 0x26, 0xce, 0x10, 0x34, 0x69, 0xeb, 0xdc, 0xe3, 0xd3, 0xb8, 0xa7,
- 0x4f, 0x31, 0xbd, 0x5e, 0x25, 0x30, 0x3c, 0xae, 0xfb, 0xe6, 0xba, 0xf7, 0xed, 0xdc, 0x5f, 0xda,
- 0xd5, 0x25, 0xab, 0xc3, 0xe3, 0xcb, 0x89, 0xa2, 0xec, 0xb8, 0x64, 0xae, 0x35, 0x10, 0x2d, 0x31,
- 0xc5, 0x3e, 0x52, 0x47, 0x96, 0xe2, 0x3b, 0xab, 0x64, 0x3f, 0x03, 0xbd, 0xb7, 0x89, 0x9b, 0x04,
- 0x50, 0x77, 0x9b, 0xd1, 0x62, 0x8d, 0x3f, 0x2d, 0xed, 0xde, 0x38, 0x5f, 0xcf, 0xb8, 0x2b, 0xe1,
- 0x79, 0x51, 0x6c, 0xc1, 0x70, 0x7c, 0x63, 0x8e, 0x93, 0x34, 0xaf, 0x8c, 0xe8, 0xb9, 0xec, 0x57,
- 0x77, 0xf0, 0xe8, 0x53, 0x61, 0xbe, 0x70, 0x50, 0xe4, 0x0e, 0xc1, 0x2a, 0xe9, 0x19, 0x1d, 0x7e,
- 0x16, 0x56, 0xe0, 0x54, 0xbf, 0x1e, 0xf8, 0x32, 0xbb, 0x1f, 0xdb, 0x5d, 0xc2, 0x94, 0x1c, 0xe7,
- 0x52, 0x4c, 0x2d, 0x20, 0x24, 0x21, 0xb8, 0x85, 0xfc, 0x17, 0xed, 0x65, 0x4e, 0x02, 0x4d, 0xaf,
- 0x15, 0x91, 0x0d, 0x3c, 0xda, 0xe4, 0xdd, 0xce, 0x43, 0x53, 0x85, 0x7a, 0xe2, 0x73, 0x49, 0x8e,
- 0x9b, 0xe8, 0x4d, 0x04, 0xe5, 0xad, 0x17, 0x58, 0xfe, 0xdb, 0x55, 0x44, 0x79, 0x91, 0x41, 0xcc,
- 0xb4, 0x83, 0xa3, 0xc4, 0x3d, 0x6b, 0x01, 0xc0, 0xb3, 0xa9, 0x7e, 0xd9, 0x1e, 0x9d, 0x2c, 0xa8,
- 0x3e, 0x8c, 0x4c, 0xdd, 0x8e, 0xb9, 0x06, 0xc5, 0x2c, 0x70, 0xc7, 0x93, 0x44, 0xc8, 0xe8, 0x76,
- 0x80, 0xd8, 0xc4, 0xaa, 0x2e, 0x8b, 0xd9, 0x48, 0xca, 0xb2, 0xbe, 0x98, 0x9a, 0x42, 0xf9, 0x6b,
- 0x36, 0x60, 0xd1, 0x9f, 0x55, 0x4c, 0x5f, 0x20, 0x68, 0xd2, 0x15, 0x7b, 0x05, 0x65, 0xb3, 0x8d,
- 0xd3, 0x68, 0xb2, 0x13, 0x29, 0xfc, 0xc3, 0x99, 0xdf, 0x20, 0xd8, 0xe0, 0x75, 0x1d, 0x87, 0xe3,
- 0x2b, 0x1d, 0x41, 0xe1, 0x54, 0x5d, 0xdb, 0x0b, 0x6f, 0x23, 0x42, 0xe9, 0xa6, 0xbb, 0xa1, 0xf8,
- 0x01, 0xfc, 0x5b, 0x99, 0x23, 0x56, 0xa2, 0x54, 0xe9, 0x85, 0x8b, 0x1d, 0xa1, 0x5d, 0x33, 0x27,
- 0x99, 0xd3, 0xfb, 0xf5, 0xa3, 0x01, 0x90, 0xf0, 0xef, 0x12, 0x80, 0x7e, 0xf8, 0x2b, 0x27, 0x82,
- 0xdd, 0xc9, 0x36, 0x81, 0x38, 0x3e, 0xd0, 0x47, 0xa8, 0x1a, 0xb6, 0x46, 0x74, 0xbd, 0x76, 0xca,
- 0xf6, 0xd4, 0x77, 0x60, 0x6c, 0x63, 0x0b, 0x4c, 0xc7, 0x39, 0xf4, 0xaf, 0xd2, 0x06, 0xd7, 0x32,
- 0x68, 0xb6, 0xce, 0xdc, 0x26, 0x03, 0x73, 0xd3, 0xf2, 0x36, 0x43, 0x82, 0xcb, 0x7d, 0x69, 0x45,
- 0x12, 0x20, 0x4f, 0x75, 0x33, 0x85, 0x35, 0xa1, 0x99, 0x4e, 0xb2, 0x29, 0x03, 0x23, 0xd0, 0x7b,
- 0x8a, 0x0f, 0xef, 0x19, 0xb3, 0xd2, 0x07, 0x05, 0x9f, 0xd9, 0xb9, 0x4a, 0x5a, 0x55, 0xc4, 0xde,
- 0x09, 0x10, 0xc6, 0xdb, 0xf8, 0xa3, 0xfb, 0xb1, 0xad, 0x27, 0x59, 0xf5, 0xe0, 0xf0, 0x68, 0xdc,
- 0xa6, 0xa3, 0xec, 0xb1, 0x0e, 0xee, 0x34, 0x61, 0x2a, 0xe7, 0xcc, 0xf0, 0x1d, 0xbe, 0xfc, 0xd3,
- 0x72, 0x7a, 0x1c, 0xeb, 0xce, 0x73, 0x1f, 0x97, 0x2f, 0xda, 0x23, 0x43, 0x89, 0xf3, 0xe2, 0xc5,
- 0xc4, 0xc2, 0x09, 0xde, 0xb5, 0xb4, 0x99, 0xff, 0x8d, 0xba, 0x88, 0xa0, 0x16, 0xd4, 0xa8, 0x23,
- 0x3a, 0xfa, 0xe3, 0xfc, 0x02, 0x22, 0xcb, 0x56, 0x0e, 0x21, 0xae, 0xe7, 0x85, 0x7f, 0x24, 0xea,
- 0x74, 0x37, 0x05, 0x3b, 0x04, 0x44, 0x55, 0xac, 0x1c, 0x42, 0x9f, 0x0d, 0xc9, 0xfe, 0x48, 0x17,
- 0xc1, 0x48, 0xfd, 0x66, 0x1a, 0x79, 0xf6, 0x38, 0x46, 0x6e, 0x6a, 0xc9, 0x76, 0x3e, 0x57, 0x98,
- 0xca, 0x63, 0x8d, 0x4c, 0xa4, 0x76, 0x8a, 0x21, 0xfa, 0x80, 0xe6, 0x06, 0x17, 0x74, 0x59, 0x0a,
- 0xb9, 0xe5, 0xca, 0x3e, 0x49, 0x53, 0x37, 0xe2, 0x3c, 0xdf, 0x4e, 0x58, 0x3f, 0xda, 0x88, 0xe8,
- 0x70, 0x41, 0xaa, 0x1a, 0x88, 0xdf, 0x98, 0x3f, 0x3e, 0x13, 0xf6, 0x79, 0x08, 0x49, 0x84, 0x8b,
- 0xbc, 0x6f, 0x3e, 0x86, 0xe6, 0x9e, 0x58, 0x25, 0xf7, 0x0b, 0xac, 0x31, 0x5f, 0x30, 0x77, 0x53,
- 0x34, 0x5b, 0x67, 0x6e, 0x13, 0xe0, 0xd8, 0x88, 0x79, 0x1b, 0xc0, 0x41, 0x84, 0xdf, 0xd5, 0xc3,
- 0x6a, 0x8d, 0x78, 0x2d, 0x60, 0xaf, 0xf4, 0x7b, 0xe3, 0xff, 0x96, 0xb8, 0x4a, 0xc7, 0x0f, 0x0b,
- 0x48, 0x80, 0xff, 0x17, 0xcc, 0x51, 0xd4, 0xc1, 0x21, 0xfb, 0x8d, 0xa4, 0x0c, 0x8c, 0xc6, 0x2f,
- 0x5f, 0x2a, 0x44, 0xda, 0x50, 0x19, 0x8e, 0xa7, 0x73, 0x61, 0xdd, 0xe4, 0x6f, 0x45, 0xe9, 0xef,
- 0x8f, 0x85, 0x1b, 0xa1, 0x1c, 0x1f, 0x68, 0xc2, 0x54, 0x0d, 0x5b, 0x23, 0x3a, 0xbf, 0x3b, 0x65,
- 0x69, 0x4a, 0x95, 0x45, 0x05, 0x55, 0xd1, 0x87, 0x1b, 0xb3, 0xc8, 0x9f, 0x6a, 0x20, 0x5a, 0x62,
- 0x9a, 0x14, 0x16, 0x9d, 0xc6, 0xfb, 0xb5, 0x0c, 0x17, 0x5e, 0xde, 0x59, 0xd8, 0xcc, 0x72, 0xeb,
- 0xda, 0x78, 0x74, 0xc8, 0xd1, 0x5f, 0x38, 0x28, 0x72, 0x07, 0x81, 0x15, 0x95, 0xed, 0xef, 0x3f,
- 0xfd, 0xff, 0x07, 0x4a, 0xd2, 0x6c, 0x77, 0x55, 0x7b, 0xd7, 0x78, 0x60, 0xb3, 0x4c, 0xd9, 0xa0,
- 0x39, 0x3d, 0x0e, 0x94, 0x67, 0xd8, 0xee, 0xaa, 0xf6, 0x6d, 0xf0, 0xc0, 0xa5, 0x98, 0x71, 0x83,
- 0xa5, 0x64, 0x01, 0xd9, 0x6b, 0x14, 0x11, 0x9d, 0xd2, 0xab, 0x92, 0xd7, 0x3d, 0x59, 0xa9, 0xba,
- 0xfc, 0x03, 0x5c, 0xd3, 0xf1, 0x3a, 0xd5, 0x01, 0x92, 0x52, 0xf3, 0x7d, 0x12, 0x11, 0xea, 0x87,
- 0xe0, 0x82, 0x97, 0x34, 0xd3, 0x7d, 0xf3, 0x7e, 0x7c, 0x26, 0x2f, 0xf2, 0x10, 0x92, 0xcb, 0xd5,
- 0x0c, 0x9a, 0x32, 0x63, 0x57, 0x6e, 0x94, 0x76, 0x66, 0xf3, 0xbb, 0x9c, 0x80, 0x1a, 0x97, 0x67,
- 0x57, 0xc6, 0xd9, 0x98, 0x8b, 0xec, 0xd7, 0x42, 0x37, 0xc3, 0x0f, 0x0c, 0x2e, 0xe8, 0xb2, 0x14,
- 0x54, 0x01, 0x34, 0xf0, 0xee, 0x16, 0xf2, 0xbe, 0xcf, 0x8f, 0x51, 0x2b, 0x0e, 0x0f, 0xe7, 0x7d,
- 0x8d, 0xbe, 0xad, 0x50, 0x5a, 0xb3, 0xef, 0x6a, 0x45, 0xc4, 0x8e, 0x19, 0xbb, 0x05, 0x5d, 0x2b,
- 0xd2, 0x94, 0xe9, 0x8a, 0x0a, 0xaa, 0x61, 0xcd, 0x36, 0xa5, 0x53, 0xfd, 0xd4, 0x40, 0xb4, 0xc4,
- 0xf7, 0x28, 0x2c, 0xf9, 0x4f, 0x35, 0xa9, 0x18, 0x2e, 0xbc, 0x7f, 0xb2, 0x73, 0x5b, 0xe4, 0x15,
- 0x5e, 0xd6, 0x1f, 0x43, 0x73, 0x4f, 0x2c, 0xf3, 0x9a, 0xe4, 0x56, 0xf9, 0xce, 0x18, 0xda, 0xc8,
- 0xf9, 0x89, 0xa8, 0x6b, 0x5e, 0xf7, 0xba, 0xc6, 0x59, 0x86, 0x11, 0x14, 0x72, 0xfb, 0x15, 0x3c,
- 0xf2, 0xa2, 0xd8, 0x41, 0xe0, 0xf8, 0xc6, 0xdf, 0xe5, 0x68, 0x9d, 0xdb, 0x13, 0xb1, 0x1b, 0xae,
- 0xe3, 0x45, 0x7a, 0x5c, 0xb6, 0x87, 0xd6, 0x82, 0x84, 0x6a, 0x71, 0xd5, 0x30, 0x75, 0x9e, 0xbc,
- 0x3b, 0x06, 0xb8, 0x65, 0x21, 0x74, 0x69, 0x02, 0xe7, 0xa4, 0x25, 0xfa, 0x24, 0x22, 0x17, 0xcd,
- 0x03, 0xc7, 0xed, 0x68, 0x65, 0xfa, 0x25, 0xfc, 0xf8, 0x4c, 0x5e, 0x27, 0x20, 0xe7, 0x55, 0x69,
- 0xa1, 0x12, 0xae, 0xf8, 0xe7, 0x8f, 0xdc, 0x0e, 0xf0, 0xfa, 0xfb, 0xa3, 0xfc, 0xee, 0x65, 0x26,
- 0x96, 0x8e, 0x24, 0xfe, 0x91, 0x95, 0x21, 0x7a, 0x71, 0xad, 0x65, 0xc5, 0x58, 0xd6, 0xe5, 0x8c,
- 0xaa, 0x39, 0xde, 0xd2, 0x59, 0x80, 0xa0, 0x17, 0x4c, 0x14, 0x77, 0x6c, 0x9d, 0xa4, 0x6b, 0xb4,
- 0x9f, 0x9e, 0xe2, 0x25, 0x69, 0x36, 0xda, 0xcb, 0xdc, 0x8a, 0x3c, 0x30, 0xb8, 0x26, 0x8d, 0x50,
- 0x46, 0x21, 0x7b, 0x85, 0xdd, 0x93, 0xc7, 0x1f, 0x56, 0xc1, 0xe3, 0x02, 0x0d, 0x2c, 0x37, 0x06,
- 0x41, 0x90, 0x39, 0xcc, 0x34, 0xf2, 0x2f, 0x70, 0x8c, 0xdc, 0xd4, 0x51, 0xec, 0x7c, 0xae, 0xf3,
- 0x2a, 0xe1, 0x1a, 0x78, 0x77, 0x0b, 0x79, 0x5f, 0x86, 0xa6, 0xc9, 0xf4, 0x07, 0xe6, 0x92, 0xdf,
- 0x60, 0x5a, 0x53, 0x9e, 0xfd, 0xf6, 0x2a, 0x36, 0xb6, 0x94, 0x91, 0x6a, 0x8a, 0xd0, 0x32, 0xbe,
- 0xe5, 0x08, 0x63, 0x8c, 0x7c, 0xb0, 0x9c, 0xb9, 0xb7, 0xf2, 0xcd, 0x9b, 0x70, 0x78, 0x34, 0x6e,
- 0x94, 0xb5, 0x92, 0x0f, 0xd7, 0x39, 0xa6, 0xd2, 0x60, 0x64, 0xb0, 0xff, 0xd9, 0x6c, 0x83, 0xc2,
- 0xbe, 0x54, 0x88, 0x77, 0xa0, 0x32, 0xdf, 0x8d, 0xe6, 0xc2, 0x79, 0x0b, 0xde, 0x8a, 0x11, 0x1d,
- 0x90, 0xc3, 0x3d, 0x2e, 0x5b, 0xa2, 0x6b, 0x41, 0x42, 0x35, 0xd9, 0x8b, 0x18, 0xdb, 0x4f, 0x5e,
- 0x2f, 0x6b, 0xee, 0xc0, 0xd8, 0xc6, 0x16, 0x98, 0x4d, 0x72, 0x2b, 0x9d, 0x67, 0x0c, 0x6d, 0x64,
- 0x9d, 0xa5, 0x54, 0xd4, 0x2f, 0x9a, 0x5d, 0x63, 0xcd, 0x43, 0xe9, 0x0a, 0x39, 0x9c, 0xeb, 0x1e,
- 0x81, 0x24, 0x9f, 0x33, 0x0d, 0xdd, 0x7b, 0x1c, 0x23, 0x37, 0x35, 0x85, 0x3b, 0x1f, 0xca, 0x4c,
- 0xa2, 0xd5, 0x43, 0x90, 0x82, 0x75, 0xf9, 0xf2, 0x08, 0xb6, 0xa5, 0x84, 0xdc, 0x09, 0x30, 0x4f,
- 0x76, 0x0c, 0xb3, 0xca, 0x42, 0xe8, 0xd2, 0x04, 0x0d, 0x8b, 0x4a, 0x37, 0x48, 0x44, 0x2e, 0x59,
- 0x4b, 0x47, 0x12, 0x7f, 0xa9, 0xab, 0xf1, 0x3d, 0xd9, 0xb7, 0xd3, 0x83, 0x2c, 0x6b, 0x93, 0x46,
- 0xe4, 0xf4, 0x38, 0x15, 0x5f, 0xe6, 0x3e, 0xed, 0x5e, 0x77, 0x46, 0x86, 0xd1, 0x25, 0x07, 0x49,
- 0x06, 0x4d, 0x19, 0xd0, 0xca, 0x37, 0x4a, 0x3b, 0x33, 0x98, 0xbc, 0x4e, 0x40, 0x0d, 0xaa, 0xd2,
- 0x55, 0xfd, 0x6f, 0x69, 0xcd, 0x40, 0x50, 0xea, 0x26, 0x0a, 0xda, 0x36, 0xaf, 0x52, 0xd4, 0x5a,
- 0xae, 0x4f, 0x71, 0xf3, 0xd5, 0x1b, 0x6d, 0x84, 0x6e, 0x45, 0x1e, 0x18, 0x5c, 0x13, 0xa7, 0x28,
- 0x1c, 0x81, 0xcb, 0xe7, 0x22, 0x47, 0x26, 0x7f, 0xee, 0x74, 0xdc, 0x8f, 0x02, 0x83, 0x21, 0x52,
- 0x75, 0xcb, 0x5e, 0xa2, 0x27, 0x12, 0xf7, 0xf8, 0xf5, 0xc7, 0x14, 0x10, 0x68, 0xa3, 0x7b, 0x30,
- 0x5b, 0x5c, 0xeb, 0xfb, 0xdc, 0x82, 0x43, 0x34, 0x51, 0x30, 0xb4, 0x90, 0xae, 0xf2, 0x25, 0x73,
- 0x04, 0x76, 0xaf, 0x21, 0x8c, 0x9b, 0xcd, 0x93, 0x22, 0x51, 0x69, 0x74, 0xc1, 0xb7, 0xcc, 0x9c,
- 0x27, 0x87, 0x73, 0x82, 0x03, 0x33, 0x4f, 0x7d, 0x09, 0xd0, 0xf9, 0x75, 0x26, 0xa1, 0x36, 0x9f,
- 0x4d, 0x0a, 0x0b, 0xaf, 0x63, 0x9c, 0xbb, 0x06, 0xea, 0x2f, 0x6f, 0xcd, 0x6c, 0x66, 0x39, 0x94,
- 0x9c, 0x59, 0x0f, 0x4d, 0x0c, 0xcc, 0xff, 0x37, 0x24, 0xc6, 0x62, 0x17, 0x98, 0xc1, 0xd8, 0x39,
- 0x20, 0x36, 0x31, 0xcb, 0xea, 0x52, 0xa7, 0x12, 0xd3, 0xcd, 0xce, 0x26, 0xc7, 0xf1, 0xaf, 0x6a,
- 0x53, 0xb0, 0x76, 0xb9, 0x07, 0x77, 0x1a, 0xd1, 0x15, 0x92, 0x66, 0x78, 0xef, 0x5f, 0x7e, 0x88,
- 0xd0, 0xaf, 0x5f, 0x7b, 0x4c, 0x06, 0xe6, 0x65, 0x27, 0x6c, 0x86, 0xc7, 0x55, 0xfa, 0xd2, 0x8a,
- 0x95, 0x49, 0xc9, 0x96, 0xf4, 0x6f, 0x04, 0x86, 0x89, 0xe1, 0x3b, 0xe2, 0x78, 0x31, 0xb0, 0xe5,
- 0xf3, 0x5e, 0x83, 0xd8, 0xc3, 0xae, 0x64, 0x8b, 0x0c, 0xed, 0x16, 0xc6, 0xb2, 0xec, 0x28, 0x89,
- 0x85, 0x52, 0x30, 0x12, 0x81, 0x46, 0xb6, 0x8f, 0x01, 0x66, 0x5c, 0xf1, 0xfa, 0xa8, 0x06, 0xd0,
- 0x88, 0x34, 0x59, 0xe8, 0xf5, 0x7e, 0x80, 0xad, 0x8e, 0x10, 0x6c, 0x70, 0xdb, 0xef, 0xa2, 0x90,
- 0xb0, 0xf5, 0x0c, 0xe5, 0xb1, 0xf0, 0xcc, 0x53, 0x91, 0xf8, 0x17, 0xad, 0xdf, 0x2a, 0xe0, 0x34,
- 0x22, 0x0d, 0x87, 0x3a, 0xac, 0xfe, 0x20, 0xba, 0xc2, 0x04, 0x1b, 0x1c, 0x46, 0x4b, 0xc9, 0x24,
- 0x0b, 0x2b, 0x70, 0x2a, 0xbe, 0x0f, 0x7c, 0x19, 0xbc, 0xee, 0x8c, 0xcf, 0x61, 0x4a, 0x0e, 0x92,
- 0x02, 0x3b, 0xb6, 0xf1, 0x46, 0xac, 0x87, 0xa8, 0x11, 0xc9, 0xd5, 0x3a, 0x81, 0xba, 0x66, 0x4e,
- 0xc9, 0xa4, 0x60, 0x24, 0xc1, 0x8c, 0xaf, 0xdd, 0x02, 0xcc, 0xb8, 0x21, 0x37, 0x93, 0x0c, 0x63,
- 0xdb, 0x84, 0x2f, 0x51, 0xf2, 0x09, 0x9a, 0x7c, 0x9b, 0x82, 0x0a, 0x08, 0x34, 0xb0, 0xdc, 0x18,
- 0xb6, 0xb8, 0x15, 0x35, 0x7b, 0xc7, 0x86, 0x68, 0xa2, 0x60, 0xab, 0xe3, 0x9f, 0x27, 0x4a, 0xe6,
- 0x40, 0x6c, 0x62, 0x55, 0x17, 0xa4, 0x8d, 0x24, 0x65, 0x59, 0x5f, 0x4c, 0x4d, 0x21, 0x9d, 0xd4,
- 0x4e, 0xcd, 0xe6, 0xc7, 0x06, 0x66, 0x9e, 0xfa, 0x12, 0x63, 0x31, 0xea, 0x4c, 0x81, 0x6c, 0xfd,
- 0xd7, 0x1e, 0x1d, 0x32, 0xa5, 0x67, 0x0e, 0x0a, 0xfd, 0x71, 0xb1, 0x94, 0xb4, 0xaa, 0x4b, 0x7f,
- 0xab, 0xc5, 0x85, 0x4b, 0x7a, 0xd6, 0x02, 0x43, 0xa5, 0x91, 0xfc, 0x71, 0x3c, 0xf9, 0x58, 0x93,
- 0x98, 0x2f, 0xa0, 0x6c, 0x80, 0x57, 0x32, 0xa4, 0x06, 0x97, 0x0b, 0x63, 0x59, 0x76, 0x14, 0xa5,
- 0xc8, 0x58, 0x3b, 0xbd, 0xe2, 0xda, 0x0d, 0x89, 0xeb, 0x49, 0x33, 0x3c, 0x96, 0xce, 0x3f, 0x44,
- 0xaf, 0xb3, 0x2a, 0x6a, 0xf6, 0x4d, 0xcf, 0xd0, 0x87, 0xc0, 0x95, 0x05, 0xfd, 0x4e, 0x94, 0x0f,
- 0xa3, 0x29, 0x18, 0x09, 0xa1, 0x23, 0x5b, 0xa6, 0xe1, 0x33, 0x2e, 0x99, 0x7d, 0x54, 0x03, 0x68,
- 0x44, 0x1a, 0xcd, 0x74, 0x9b, 0x3f, 0x40, 0xb7, 0x47, 0x08, 0x36, 0x38, 0x8c, 0x96, 0x51, 0x48,
- 0x84, 0xae, 0x6b, 0x8b, 0xa2, 0x10, 0x14, 0xdb, 0xe8, 0xe3, 0xd7, 0xec, 0x5b, 0xf5, 0x35, 0xf7,
- 0x9e, 0x62, 0xb9, 0xbc, 0x4a, 0x60, 0x78, 0x9f, 0x35, 0x0f, 0xb7, 0x2d, 0x19, 0x7b, 0xbe, 0x77,
- 0xe2, 0xb9, 0x21, 0xc5, 0x95, 0xd1, 0x74, 0xd6, 0x6d, 0xef, 0xfa, 0xc8, 0x91, 0x28, 0xad, 0x9b,
- 0xcd, 0xd2, 0xcf, 0x05, 0x4d, 0x17, 0x62, 0x4e, 0x20, 0x9d, 0xd1, 0x55, 0xf6, 0x24, 0xc0, 0xff,
- 0xfb, 0xb2, 0x1e, 0x9a, 0x18, 0x5b, 0x3d, 0x6e, 0x48, 0x4f, 0xc4, 0x2e, 0xf3, 0x41, 0x73, 0x72,
- 0x45, 0xe6, 0x96, 0xed, 0xb8, 0x69, 0xe2, 0xe3, 0xae, 0x8d, 0xbd, 0x25, 0x2d, 0xcb, 0x62, 0x6f,
- 0x23, 0xf1, 0xdc, 0xa3, 0x8f, 0xa8, 0x82, 0xee, 0x2b, 0x81, 0x90, 0x01, 0xe7, 0x16, 0xfa, 0x03,
- 0xc6, 0xf9, 0xbf, 0x2f, 0xf3, 0x18, 0x1e, 0x57, 0x9c, 0x73, 0x5d, 0x9a, 0x97, 0x6e, 0xce, 0x6d,
- 0x3d, 0x4b, 0xa1, 0xb5, 0xeb, 0x43, 0x23, 0x39, 0xd4, 0x3c, 0x99, 0xb4, 0x64, 0x2f, 0xbd, 0x1f,
- 0x17, 0xaa, 0xbb, 0xcd, 0x9c, 0x48, 0x5a, 0x66, 0x52, 0x9a, 0x50, 0x40, 0x63, 0xc9, 0x2f, 0xc0,
- 0xeb, 0xa9, 0xe7, 0x1e, 0x6d, 0x72, 0x8f, 0x67, 0xc0, 0xc8, 0xa3, 0x3d, 0x71, 0xd8, 0xc5, 0x47,
- 0x2e, 0x97, 0xb5, 0x59, 0xfb, 0x90, 0xb4, 0xcc, 0xa4, 0xf7, 0xa0, 0x80, 0xc6, 0x51, 0x5e, 0x43,
- 0xcb, 0x9f, 0xd6, 0xd5, 0x87, 0x20, 0x28, 0x75, 0x13, 0x05, 0x6d, 0x1b, 0xb6, 0x29, 0x6a, 0x2d,
- 0xb2, 0xce, 0xba, 0x14, 0xf7, 0x5c, 0x4b, 0xfb, 0x80, 0x31, 0xc2, 0x97, 0x5e, 0x90, 0x86, 0x7a,
- 0x5c, 0xed, 0xa9, 0xb2, 0x35, 0xe3, 0xab, 0x5b, 0x8b, 0x2d, 0x83, 0xc3, 0x4f, 0xa2, 0xbc, 0x86,
- 0x4a, 0xbb, 0x49, 0xe6, 0x8a, 0xfd, 0x53, 0x69, 0x30, 0x32, 0x58, 0x9e, 0x8d, 0x36, 0xa0, 0x61,
- 0x64, 0x2c, 0xfc, 0xbf, 0x71, 0x6d, 0xe7, 0xa5, 0x94, 0xc5, 0xf8, 0x1e, 0x4b, 0x67, 0xfe, 0x22,
- 0x71, 0xbd, 0xf1, 0x83, 0xab, 0x89, 0x3a, 0x6b, 0xd7, 0x96, 0x7d, 0x64, 0xa9, 0x14, 0xb7, 0xac,
- 0x35, 0xa7, 0x3c, 0xf7, 0x30, 0xb6, 0x7a, 0xdc, 0x90, 0x9e, 0x4b, 0x5c, 0x25, 0x82, 0xe6, 0xe4,
- 0xc7, 0x05, 0xe4, 0xb6, 0xd0, 0x4e, 0xbc, 0x03, 0x75, 0xf6, 0xd6, 0x87, 0x36, 0x33, 0xfd, 0x4a,
- 0x07, 0xb1, 0x42, 0x49, 0xe9, 0x61, 0xe8, 0x6f, 0xda, 0x1d, 0x37, 0x53, 0xe1, 0x50, 0x99, 0xf5,
- 0x59, 0x67, 0x5d, 0x0a, 0x9a, 0x2e, 0xc4, 0x9c, 0x40, 0xf9, 0x61, 0xaa, 0x2f, 0x48, 0x43, 0x3d,
- 0x38, 0xc1, 0x55, 0x0d, 0x44, 0x8e, 0x4c, 0xfe, 0x1f, 0xe8, 0x7b, 0xdd, 0x04, 0xc5, 0x42, 0xa4,
- 0xea, 0x55, 0xbc, 0x87, 0x4e, 0x24, 0x2d, 0x33, 0x29, 0x4d, 0x28, 0x20, 0xd0, 0x85, 0xf6, 0x60,
- 0x37, 0x9c, 0x8a, 0x06, 0x76, 0x1a, 0xfd, 0x74, 0x81, 0x57, 0x9e, 0x66, 0xa4, 0x38, 0x80, 0xaa,
- 0x63, 0x9d, 0xbe, 0xf6, 0x98, 0x0c, 0x0f, 0xca, 0x4e, 0xd8, 0xcf, 0x4d, 0xaa, 0x37, 0x67, 0xd7,
- 0x18, 0xf7, 0x64, 0xc6, 0xae, 0xdc, 0xeb, 0xec, 0xcc, 0x25, 0xb5, 0xfb, 0xc3, 0x34, 0xed, 0xce,
- 0xa7, 0x5f, 0xb7, 0x28, 0x2d, 0xb8, 0x96, 0x35, 0xc3, 0x62, 0x47, 0xed, 0xbc, 0xe3, 0xcf, 0xf4,
- 0x58, 0x9b, 0x06, 0x93, 0xb9, 0x78, 0x66, 0xc8, 0xa9, 0x7c, 0xea, 0xb7, 0x8e, 0x15, 0x70, 0x1a,
- 0x11, 0xe7, 0xa2, 0x1d, 0x56, 0x7f, 0x10, 0x5d, 0x61, 0x02, 0xec, 0x0e, 0x23, 0xc4, 0x85, 0x12,
- 0xf5, 0x13, 0x9a, 0x08, 0x09, 0x99, 0x2e, 0xb0, 0x3f, 0x75, 0xaa, 0x88, 0xf2, 0xe1, 0x82, 0x5b,
- 0xd9, 0xbf, 0x99, 0xa0, 0xb4, 0xa5, 0x1d, 0xd4, 0x8a, 0x4b, 0xdf, 0x32, 0xb5, 0x0a, 0xba, 0x56,
- 0xe9, 0x92, 0x51, 0xef, 0x2b, 0xde, 0x08, 0xcf, 0xd1, 0x01, 0x76, 0x07, 0xf0, 0x62, 0xa3, 0x09,
- 0x25, 0xbc, 0xc5, 0x73, 0x45, 0x9f, 0xc8, 0xd5, 0x18, 0x19, 0x2c, 0x4f, 0xa7, 0x1b, 0x50, 0xd1,
- 0xf8, 0x75, 0xf3, 0xf2, 0x7d, 0xa1, 0x18, 0x92, 0xb0, 0x03, 0x9a, 0x09, 0xd3, 0xa6, 0x26, 0x1b,
- 0x97, 0x72, 0x7f, 0x67, 0xb2, 0xc3, 0x83, 0x2e, 0x98, 0x28, 0xee, 0xd8, 0xf9, 0x8b, 0xd6, 0xab,
- 0xb1, 0x09, 0x57, 0x7c, 0x92, 0xa6, 0x6e, 0x07, 0x78, 0x7d, 0x9c, 0xb0, 0x7e, 0x77, 0xd3, 0x13,
- 0x19, 0x0b, 0x3f, 0x5f, 0x8d, 0x8a, 0x49, 0xb8, 0x25, 0xa0, 0x3e, 0xe6, 0x62, 0x69, 0xde, 0xe9,
- 0x0f, 0x5d, 0xdf, 0x0b, 0x32, 0x94, 0xb1, 0x8a, 0x9e, 0xbf, 0xe5, 0xbb, 0xa0, 0xfd, 0xc2, 0x0e,
- 0x89, 0xc8, 0x02, 0x71, 0xd6, 0x28, 0x22, 0xf9, 0x67, 0x95, 0xe7, 0x6d, 0x7a, 0xb2, 0x91, 0xb7,
- 0xdc, 0x35, 0x6d, 0x18, 0x1b, 0x68, 0x72, 0x13, 0x41, 0x9f, 0x3d, 0x5b, 0xd5, 0xe0, 0x45, 0xed,
- 0x08, 0xec, 0x9d, 0x42, 0xdb, 0xf5, 0x59, 0xe5, 0x44, 0xa2, 0xd2, 0xe8, 0x41, 0xad, 0x5b, 0xfb,
- 0xf1, 0x65, 0x35, 0x29, 0x85, 0x02, 0xe3, 0x23, 0x1d, 0x24, 0xc3, 0xfc, 0x33, 0x56, 0x4e, 0xc7,
- 0xa8, 0x02, 0x68, 0x23, 0x1f, 0x2c, 0x27, 0xbf, 0x5d, 0xdd, 0xa2, 0x56, 0x1c, 0x1e, 0x0d, 0xfa,
- 0x0e, 0xa1, 0x84, 0x92, 0x11, 0xc2, 0x13, 0xde, 0x77, 0x3a, 0x6e, 0xa6, 0x01, 0xa0, 0xf1, 0x29,
- 0x6f, 0x07, 0x8c, 0x95, 0xcf, 0x62, 0x9b, 0xbc, 0x28, 0x2b, 0x74, 0xd1, 0x2a, 0x2d, 0xf0, 0xb0,
- 0x7d, 0x27, 0xc3, 0xe0, 0xfc, 0xe7, 0xae, 0x1d, 0xb1, 0x65, 0xc6, 0xf8, 0x29, 0x0e, 0x20, 0xcb,
- 0xd4, 0xd9, 0xf0, 0x5a, 0xc0, 0x9d, 0x2b, 0xf6, 0x05, 0x3d, 0xef, 0xb3, 0x94, 0x4d, 0x1e, 0x16,
- 0xbd, 0x93, 0x65, 0x1f, 0xc5, 0xc8, 0xfa, 0x71, 0x1e, 0x8e, 0x27, 0x2c, 0xfe, 0x6d, 0x44, 0x74,
- 0x86, 0x95, 0xdd, 0x7a, 0xe4, 0xbc, 0x93, 0x73, 0xf9, 0x2a, 0x02, 0xd6, 0xda, 0x4f, 0x53, 0xb9,
- 0xec, 0x18, 0xa5, 0x57, 0x84, 0x13, 0x67, 0x08, 0x1a, 0xd5, 0x94, 0x6e, 0x90, 0x88, 0x5c, 0xb2,
- 0x32, 0x16, 0x7e, 0xbe, 0xd9, 0xd7, 0x92, 0xb3, 0x4a, 0x83, 0x7c, 0x0f, 0xc4, 0xd2, 0x7f, 0x11,
- 0x7e, 0xe0, 0x2e, 0x88, 0x99, 0x1d, 0x8b, 0xe1, 0x49, 0x29, 0x98, 0xdf, 0x09, 0xe9, 0x75, 0xa2,
- 0xed, 0xe4, 0xfe, 0xce, 0xa7, 0x45, 0xc5, 0x5c, 0xf3, 0x50, 0x1f, 0x73, 0x31, 0xd5, 0x6f, 0x95,
- 0x6e, 0xfb, 0xd7, 0x0c, 0xec, 0x34, 0x39, 0xe8, 0xc1, 0xae, 0xff, 0xcc, 0x8b, 0x70, 0xc3, 0x97,
- 0xc3, 0x73, 0x4b, 0x97, 0x5c, 0xd5, 0x71, 0x90, 0x57, 0xa7, 0xbf, 0xf3, 0xf7, 0x84, 0x31, 0xd6,
- 0x21, 0xca, 0x6a, 0x52, 0xc9, 0x04, 0x05, 0x46, 0x3a, 0x48, 0x45, 0x3b, 0x66, 0xac, 0x9c, 0x4d,
- 0x62, 0x61, 0xe5, 0x6f, 0xbb, 0x5a, 0xad, 0x9e, 0xa7, 0x5d, 0x44, 0x50, 0x0b, 0x6a, 0x54, 0xf0,
- 0xce, 0x15, 0x22, 0x6d, 0x28, 0xed, 0x47, 0xb2, 0xd8, 0xd1, 0x8f, 0x72, 0xd6, 0xc3, 0x95, 0x96,
- 0x93, 0x04, 0xd0, 0x46, 0x3e, 0x58, 0x4e, 0xbd, 0xba, 0x79, 0x87, 0xac, 0x38, 0x3c, 0x1a, 0x37,
- 0x4c, 0xf6, 0x50, 0x36, 0x40, 0xca, 0x19, 0x52, 0x03, 0xaa, 0xe4, 0xd0, 0xcd, 0x3b, 0x0a, 0xb3,
- 0xde, 0x0e, 0xdb, 0xe9, 0x5d, 0xc4, 0xf5, 0xbb, 0x50, 0x56, 0xe8, 0x61, 0x54, 0x5a, 0x23, 0xa3,
- 0x3f, 0x70, 0x17, 0x44, 0xad, 0xef, 0xa4, 0x91, 0xc5, 0xf5, 0x4c, 0x8e, 0xe5, 0x95, 0xdb, 0x51,
- 0x43, 0xab, 0x8f, 0x3d, 0x72, 0x5e, 0xa8, 0xd8, 0x9d, 0x15, 0x01, 0x6b, 0x6d, 0xc6, 0xc8, 0xbd,
- 0x73, 0x86, 0x47, 0x72, 0xed, 0x25, 0xbd, 0xc3, 0xc6, 0x5f, 0xa8, 0x5e, 0x28, 0xae, 0xd1, 0xe2,
- 0xad, 0x88, 0x9c, 0x9b, 0xb0, 0xe1, 0x48, 0x78, 0x96, 0x09, 0x40, 0x3f, 0x7c, 0xf4, 0xf2, 0x41,
- 0xf0, 0x99, 0x6e, 0xb0, 0xa6, 0x54, 0x41, 0x77, 0xf4, 0xa1, 0x48, 0xe1, 0x92, 0x0b, 0x7d, 0xe0,
- 0x47, 0xdd, 0x20, 0x1c, 0xfe, 0xc5, 0x65, 0x4b, 0xbf, 0x44, 0x68, 0x1f, 0xac, 0x71, 0x04, 0x21,
- 0x3c, 0xb7, 0xfa, 0x2c, 0xc8, 0x15, 0x81, 0x6d, 0x3d, 0xb9, 0x12, 0xa9, 0xc5, 0x72, 0x8e, 0x38,
- 0x61, 0xa6, 0x08, 0x07, 0xde, 0xa0, 0x88, 0x62, 0x5f, 0x11, 0x1a, 0x77, 0x2b, 0x8d, 0x01, 0x99,
- 0x56, 0x3a, 0x82, 0x01, 0xa8, 0xba, 0x75, 0x16, 0xde, 0x46, 0x84, 0x11, 0x8f, 0xb5, 0x81, 0x33,
- 0x29, 0x26, 0xf7, 0x10, 0x12, 0xf1, 0x5c, 0xa3, 0x7e, 0xea, 0x97, 0xd3, 0x27, 0x01, 0xc7, 0xb6,
- 0x7b, 0x6a, 0xda, 0x30, 0x36, 0xd0, 0xe4, 0x26, 0x82, 0xfd, 0x7a, 0xb6, 0x69, 0x03, 0x8a, 0x19,
- 0x10, 0x1b, 0xf9, 0x84, 0x75, 0x29, 0xb2, 0x09, 0x88, 0x87, 0x67, 0x13, 0x82, 0x99, 0xb6, 0x35,
- 0xff, 0xc4, 0xb1, 0xbb, 0x94, 0xc0, 0xf0, 0xfd, 0x6a, 0x1e, 0xad, 0x5a, 0x32, 0xf6, 0xbf, 0xee,
- 0x5d, 0x11, 0xf2, 0x2b, 0x16, 0xb5, 0x09, 0x0f, 0x62, 0xa8, 0x08, 0xde, 0xee, 0xff, 0x8f, 0xa1,
- 0x31, 0xd1, 0x93, 0xd6, 0xbc, 0x2d, 0xb7, 0x4f, 0xb2, 0xcf, 0x22, 0x28, 0xe4, 0x35, 0x2a, 0x78,
- 0xb7, 0x44, 0x4e, 0xac, 0x58, 0x91, 0x24, 0x3c, 0x4b, 0xe5, 0x20, 0xfe, 0x3e, 0x7a, 0x79, 0xc1,
- 0xb3, 0x32, 0xe1, 0x8d, 0xd4, 0x0a, 0xe9, 0xaf, 0x69, 0xb4, 0x49, 0x8a, 0xff, 0xcd, 0xb5, 0x5d,
- 0x6b, 0x71, 0x23, 0xb4, 0x43, 0xf9, 0x56, 0x2f, 0x0a, 0x7a, 0x1d, 0xa5, 0xeb, 0x9a, 0x3c, 0x2c,
- 0xc0, 0xb4, 0xa6, 0xff, 0x39, 0x2f, 0x54, 0x6c, 0xaf, 0xeb, 0xe1, 0xd4, 0xd7, 0x63, 0x64, 0xbf,
- 0x7f, 0x1c, 0x75, 0x11, 0xba, 0x4b, 0x29, 0xb5, 0xa0, 0xac, 0x13, 0xc2, 0xa8, 0xb4, 0x46, 0x85,
- 0x1e, 0xba, 0x7d, 0x16, 0x64, 0xeb, 0xa1, 0xd7, 0xff, 0xbd, 0x09, 0xb5, 0x83, 0x39, 0x47, 0x1c,
- 0xd1, 0x53, 0x04, 0xe2, 0x6f, 0x50, 0x44, 0x31, 0xce, 0xe9, 0x0d, 0xda, 0xf4, 0xa7, 0xe1, 0xad,
- 0x78, 0xad, 0x37, 0x58, 0x53, 0x2a, 0xc1, 0xda, 0x7a, 0xb1, 0x24, 0x91, 0x49, 0xe4, 0xdf, 0x70,
- 0xc2, 0x8f, 0x10, 0x0e, 0x7f, 0x83, 0xd3, 0xc4, 0xbe, 0x22, 0x34, 0xee, 0x56, 0xd9, 0x02, 0xf1,
- 0xbb, 0xde, 0x7c, 0xcf, 0x0f, 0xff, 0xb0, 0x4a, 0x2d, 0x16, 0x9b, 0x62, 0xbe, 0x60, 0xee, 0xa6,
- 0x6d, 0x3c, 0x3a, 0x64, 0x89, 0xce, 0x1c, 0x14, 0x39, 0xe2, 0xa1, 0xeb, 0xab, 0x97, 0x96, 0xfe,
- 0xe1, 0x7e, 0xcc, 0xad, 0xf0, 0x2b, 0x51, 0x2a, 0x95, 0xa3, 0xa4, 0xef, 0xb1, 0xcf, 0xf8, 0xf2,
- 0x1f, 0x46, 0x26, 0x8f, 0x47, 0xbd, 0x03, 0x83, 0x16, 0x38, 0x82, 0xa8, 0x22, 0x64, 0x74, 0x3b,
- 0x82, 0xe3, 0x72, 0x5b, 0x68, 0x27, 0x5e, 0xe0, 0xdb, 0x7b, 0x6b, 0xa2, 0x1b, 0xf8, 0x9f, 0x25,
- 0xba, 0x22, 0x27, 0x56, 0x2c, 0xa9, 0x12, 0x1e, 0xc4, 0x93, 0x10, 0x7f, 0x1f, 0x3d, 0xdd, 0x81,
- 0x8c, 0x42, 0xf6, 0xc9, 0x79, 0xe5, 0x4d, 0x3e, 0xac, 0x41, 0x05, 0x04, 0x1a, 0x58, 0x6e, 0x0c,
- 0xcf, 0xe9, 0x79, 0xf4, 0x0b, 0xbb, 0xe5, 0xe6, 0x31, 0x54, 0x04, 0x6f, 0x77, 0x9e, 0xa6, 0xb1,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xfe, 0x38, 0xea, 0x22, 0xb7, 0x96, 0x52, 0xa9, 0x83, 0x9b, 0x26, 0x47, 0x93, 0xab, 0x8c, 0xc9,
- 0x42, 0x57, 0xd4, 0xa4, 0x51, 0x08, 0x0a, 0x8c, 0x74, 0x90, 0x8a, 0x76, 0xcc, 0x9b, 0xfb, 0x9a,
- 0xd6, 0xe2, 0x46, 0xab, 0x86, 0x31, 0xac, 0x5e, 0x14, 0xf4, 0x3a, 0x89, 0x15, 0xf7, 0x78, 0x58,
- },
- { /* 7 */
- 0xa5, 0x9d, 0x85, 0x46, 0x8a, 0x0e, 0x61, 0xc4, 0x42, 0xe7, 0xb4, 0xca, 0xc0, 0x3d, 0xf4, 0xe8,
- 0x2d, 0x30, 0x7c, 0xb1, 0xb2, 0x96, 0xab, 0x86, 0x12, 0x3f, 0xbc, 0x10, 0x25, 0xe6, 0x1e, 0xf1,
- 0x32, 0xb3, 0x29, 0xf1, 0xe6, 0xb1, 0x53, 0x61, 0xca, 0xf8, 0xa0, 0xd0, 0x5a, 0xc4, 0x96, 0x37,
- 0x8f, 0xc2, 0x69, 0x55, 0xf0, 0x82, 0xf2, 0x7d, 0x39, 0xb6, 0xe7, 0xff, 0x11, 0x3a, 0xe8, 0x2f,
- 0x0e, 0xde, 0xe3, 0x87, 0x53, 0x34, 0x70, 0x7e, 0xd2, 0xdc, 0x1d, 0x4a, 0x2b, 0x01, 0x04, 0x6c,
- 0x30, 0x1b, 0x49, 0x07, 0xfb, 0x7a, 0x43, 0x73, 0xa1, 0x91, 0x25, 0x09, 0xd5, 0x45, 0xd7, 0x23,
- 0x38, 0xfe, 0x0a, 0x59, 0x8f, 0xd0, 0x03, 0x3b, 0xce, 0xf6, 0x74, 0xeb, 0xac, 0x04, 0x10, 0x73,
- 0xc0, 0x6c, 0xe7, 0x1c, 0x6a, 0x2b, 0xcf, 0x0f, 0xc1, 0x01, 0x94, 0x24, 0xd2, 0xd7, 0xda, 0x8c,
- 0x54, 0xbe, 0x1b, 0x26, 0xf4, 0xdb, 0xe5, 0xb1, 0xf6, 0xa2, 0xa6, 0x6a, 0x61, 0x0e, 0x38, 0x4d,
- 0xe6, 0x45, 0x88, 0x7e, 0x5e, 0x58, 0x3c, 0xda, 0x03, 0xe5, 0x5f, 0x82, 0xa7, 0x50, 0x83, 0x33,
- 0x9e, 0x9f, 0xdf, 0x92, 0xf7, 0x91, 0x7a, 0xe4, 0x33, 0xad, 0xe6, 0x75, 0x45, 0x19, 0x64, 0x85,
- 0x39, 0xaa, 0x3a, 0x22, 0x60, 0x54, 0x0b, 0x32, 0x1a, 0x23, 0xd7, 0x66, 0x0a, 0xa5, 0xd1, 0x79,
- 0x55, 0xea, 0x2b, 0x5d, 0x1b, 0x5f, 0xed, 0xb8, 0x22, 0x77, 0x05, 0xe7, 0xc7, 0xaf, 0xf9, 0x47,
- 0x7e, 0xe1, 0xf7, 0x35, 0x8e, 0x57, 0x76, 0x08, 0x8d, 0xf3, 0xf5, 0x5f, 0xb0, 0x09, 0x24, 0x8a,
- 0x52, 0x85, 0xbb, 0xff, 0xd3, 0x45, 0xd5, 0x87, 0x4b, 0x19, 0xea, 0xc2, 0x33, 0x4e, 0xfb, 0x71,
- 0x91, 0x15, 0x0c, 0x6e, 0x4b, 0x21, 0x02, 0x93, 0x35, 0xa4, 0x58, 0xb2, 0xc8, 0xb9, 0xa1, 0xe3,
- 0x64, 0xa5, 0x52, 0x21, 0x0f, 0xa1, 0xa6, 0xc2, 0x57, 0x33, 0x83, 0x63, 0xb4, 0x4b, 0xef, 0x6e,
- 0x03, 0xfc, 0x50, 0x8d, 0xf2, 0x4f, 0x18, 0x1b, 0xbf, 0xbc, 0x26, 0x54, 0x29, 0x20, 0x80, 0x1e,
- 0x57, 0x42, 0x4b, 0xab, 0x06, 0x94, 0xfd, 0xaa, 0x49, 0x1e, 0x80, 0x3e, 0x48, 0x2e, 0xb8, 0x53,
- 0x5a, 0x60, 0xf8, 0xa1, 0xa7, 0xef, 0x95, 0xcf, 0x24, 0x7e, 0xbb, 0x20, 0x4a, 0x0f, 0x3c, 0x21,
- 0x1c, 0x7f, 0x05, 0xcd, 0xa6, 0x68, 0xe0, 0xfc, 0x67, 0x7b, 0x3a, 0x94, 0x56, 0x02, 0x08, 0xd8,
- 0x60, 0x36, 0x92, 0x0e, 0x35, 0xf4, 0x86, 0xe6, 0x81, 0xe1, 0x4a, 0x12, 0x69, 0x8a, 0x6d, 0x46,
- 0x07, 0x6f, 0x90, 0xa2, 0xc8, 0x1a, 0x38, 0x3f, 0x69, 0x6e, 0xef, 0x25, 0xf4, 0xe1, 0x02, 0x36,
- 0x18, 0xec, 0xc5, 0xe2, 0x9c, 0x3d, 0xc0, 0xd8, 0xb1, 0xa9, 0xf3, 0xe5, 0x8b, 0xc3, 0x8a, 0xf0,
- 0x21, 0x46, 0xff, 0xc0, 0xfc, 0x69, 0xcb, 0xea, 0xab, 0x8a, 0x24, 0x83, 0x81, 0x66, 0x5b, 0x89,
- 0x72, 0x97, 0x74, 0x44, 0xc0, 0xa8, 0x16, 0x64, 0x34, 0x46, 0x6d, 0xcc, 0x14, 0x89, 0x61, 0xf2,
- 0xa8, 0xbf, 0x36, 0x4c, 0x2b, 0x75, 0x09, 0xa1, 0x2f, 0x87, 0x8f, 0xd4, 0xc2, 0x1c, 0x70, 0x9a,
- 0xd1, 0x31, 0x51, 0xdb, 0x6d, 0x38, 0x47, 0x96, 0xcb, 0x1a, 0x95, 0xae, 0x86, 0xf4, 0x56, 0x26,
- 0x29, 0xa3, 0xbc, 0x9e, 0x88, 0xc3, 0x8b, 0xa2, 0xc4, 0xed, 0x75, 0x61, 0xf8, 0x27, 0x9c, 0xd9,
- 0xc6, 0x57, 0x47, 0xc5, 0x4d, 0xb5, 0xff, 0x39, 0x7c, 0xba, 0xd8, 0x8c, 0x80, 0x97, 0x19, 0xb0,
- 0xa4, 0xc9, 0xb5, 0x3d, 0x65, 0x8a, 0x69, 0xcd, 0x96, 0x32, 0x17, 0x47, 0x66, 0x9c, 0x35, 0xe2,
- 0x3f, 0x91, 0x9a, 0xfb, 0x47, 0xca, 0x3b, 0x04, 0xa7, 0x98, 0x9b, 0xce, 0x58, 0xe5, 0x12, 0x45,
- 0xe0, 0x7e, 0x28, 0xa7, 0x79, 0xc6, 0x0c, 0xec, 0xbe, 0x5e, 0x13, 0x2a, 0xf5, 0x10, 0x40, 0x0f,
- 0x27, 0x7d, 0x5f, 0x19, 0xdb, 0xf7, 0xfb, 0xdc, 0x16, 0x31, 0x68, 0x2b, 0xd3, 0x26, 0x98, 0xb5,
- 0x8d, 0x6a, 0x09, 0xa3, 0xed, 0x49, 0xe2, 0x6f, 0x52, 0xdf, 0x62, 0x26, 0x9e, 0xbb, 0xa9, 0x3b,
- 0x0c, 0x76, 0x83, 0x71, 0x4e, 0xff, 0x60, 0x6c, 0xb9, 0xb5, 0x98, 0x93, 0xa4, 0x80, 0x45, 0x78,
- 0x82, 0xe0, 0xda, 0x5f, 0x51, 0xf9, 0x9a, 0x18, 0x54, 0xd6, 0xdc, 0xe1, 0x13, 0x1b, 0x6c, 0x5d,
- 0xea, 0x33, 0x0b, 0x0f, 0x10, 0xa7, 0x5c, 0xb6, 0xba, 0x50, 0xc7, 0x11, 0x03, 0xd0, 0xc6, 0x4b,
- 0xae, 0x84, 0x96, 0x95, 0x0c, 0xeb, 0x39, 0x97, 0x92, 0x3c, 0xc3, 0x7c, 0x90, 0x5c, 0xb3, 0xa6,
- 0xb4, 0xc0, 0x33, 0x81, 0x8d, 0x1d, 0xe9, 0x5d, 0x48, 0xfc, 0xb5, 0x40, 0x94, 0x1e, 0x78, 0x42,
- 0x9a, 0x0c, 0x1f, 0xbd, 0xcd, 0xc4, 0x5a, 0xc0, 0xe5, 0x7f, 0x2f, 0x04, 0x98, 0xd8, 0xe6, 0xad,
- 0x63, 0xca, 0xc2, 0x83, 0xc7, 0xbb, 0x9e, 0xfd, 0x3e, 0x5d, 0x6c, 0x46, 0x40, 0xaa, 0xed, 0x58,
- 0x49, 0x95, 0x2e, 0x90, 0xbd, 0x37, 0x0d, 0x44, 0x45, 0x0c, 0x3f, 0x73, 0x91, 0xad, 0xf1, 0x9f,
- 0xe5, 0xb9, 0xd8, 0xf3, 0xac, 0x17, 0x24, 0xc1, 0xbc, 0x59, 0x79, 0xd6, 0x8e, 0x70, 0x03, 0x2d,
- 0x42, 0x8c, 0x3d, 0x43, 0x3b, 0xd2, 0x55, 0x17, 0x95, 0xd7, 0x48, 0xc5, 0xc1, 0xcc, 0xb6, 0xd1,
- 0xe4, 0xed, 0xe8, 0x88, 0x43, 0x93, 0x2c, 0xc8, 0x68, 0x8c, 0xda, 0x5b, 0x28, 0xd1, 0xc2, 0x27,
- 0x15, 0xce, 0x76, 0xe8, 0x3d, 0x46, 0xa8, 0xbd, 0xdc, 0xc9, 0xc8, 0xfb, 0x89, 0xe2, 0x0e, 0x82,
- 0xb7, 0x3c, 0x63, 0x0c, 0x7f, 0x52, 0xf1, 0x46, 0xf7, 0x40, 0x93, 0x14, 0xbd, 0x3e, 0xf8, 0x5c,
- 0xc8, 0x89, 0xa4, 0x42, 0x1e, 0x81, 0x8f, 0x47, 0xae, 0x66, 0xc5, 0xc6, 0xab, 0x96, 0x1d, 0xdc,
- 0x06, 0x3b, 0xa0, 0xd9, 0x27, 0x9e, 0x30, 0x36, 0xbd, 0xbb, 0x4c, 0xa8, 0x52, 0x40, 0xc3, 0x3c,
- 0x70, 0x3f, 0x14, 0xb2, 0xdd, 0x63, 0x06, 0x76, 0x5f, 0x2f, 0xe8, 0x15, 0x9b, 0x08, 0x20, 0xe6,
- 0x9d, 0x63, 0x8f, 0x1f, 0x05, 0xde, 0x62, 0xff, 0x8c, 0x11, 0xc0, 0x21, 0x6c, 0x39, 0xe4, 0x9b,
- 0x41, 0x70, 0x6d, 0xce, 0xc9, 0x9d, 0x4d, 0x0c, 0x2a, 0x6b, 0x6e, 0x91, 0xe8, 0xec, 0x36, 0xcf,
- 0x75, 0xf8, 0xe4, 0xe6, 0x08, 0xb2, 0x2e, 0x5b, 0x5d, 0x28, 0x82, 0xe9, 0xe0, 0x68, 0x63, 0xc4,
- 0x19, 0xb8, 0xf5, 0x99, 0x73, 0xb9, 0xc8, 0xd1, 0x65, 0x7c, 0x50, 0x68, 0x2d, 0x62, 0x4b, 0xfa,
- 0xc9, 0xdd, 0x94, 0x39, 0xf1, 0x05, 0x87, 0x4e, 0x7a, 0xb3, 0x66, 0x4b, 0x0d, 0x37, 0xdc, 0xd6,
- 0xaa, 0x17, 0x56, 0xba, 0x36, 0xbe, 0x19, 0xb3, 0x44, 0xee, 0x0a, 0x0d, 0x4d, 0x9d, 0x31, 0x8e,
- 0xfc, 0x01, 0x2d, 0x6a, 0xdf, 0xae, 0xec, 0x10, 0xd9, 0x25, 0x29, 0xbe, 0xa3, 0x12, 0x48, 0xd7,
- 0x4d, 0x06, 0xee, 0xbf, 0x87, 0x62, 0x2d, 0x60, 0x93, 0xde, 0xf6, 0x02, 0x4c, 0x6c, 0x73, 0xb7,
- 0xbf, 0xd9, 0x20, 0x52, 0x0b, 0xf8, 0xb1, 0x0e, 0x98, 0x27, 0xc2, 0xf6, 0xc4, 0x7f, 0x3f, 0x0c,
- 0x2a, 0x5f, 0xec, 0x13, 0x7a, 0x8c, 0x93, 0xb9, 0x7b, 0x51, 0x53, 0x35, 0xd1, 0x07, 0x1c, 0xc7,
- 0x73, 0xc3, 0x44, 0x3f, 0x2f, 0x2c, 0x1e, 0x6d, 0xe0, 0x93, 0xce, 0x41, 0xb2, 0x28, 0xa0, 0xf8,
- 0x84, 0xdb, 0x7a, 0x86, 0x76, 0x67, 0xaa, 0x2e, 0xe9, 0x6d, 0x90, 0x49, 0x41, 0x5b, 0xaf, 0x61,
- 0xd5, 0xa2, 0x91, 0xf4, 0x57, 0x6d, 0x67, 0xb2, 0x1d, 0xc8, 0x5c, 0xdf, 0x5b, 0x35, 0xd4, 0x0e,
- 0xc3, 0x90, 0xb7, 0x91, 0x98, 0x64, 0xd7, 0x14, 0x7e, 0xbd, 0xb2, 0x70, 0xfb, 0xf7, 0x5a, 0x92,
- 0xaf, 0xd0, 0xa6, 0xee, 0xe3, 0x6f, 0x31, 0x9e, 0x46, 0xe9, 0x60, 0xf1, 0x36, 0xfd, 0x72, 0xac,
- 0x2b, 0x0b, 0xdc, 0x68, 0x95, 0x08, 0x9b, 0xb0, 0xaf, 0x84, 0xf0, 0xb8, 0x77, 0xa6, 0xdd, 0xcd,
- 0x86, 0x73, 0x1a, 0x70, 0x6b, 0xac, 0xba, 0x3c, 0x82, 0x04, 0x15, 0x90, 0xce, 0xda, 0xee, 0x75,
- 0xa7, 0x35, 0xe5, 0xb0, 0x97, 0xc5, 0x71, 0xd6, 0x29, 0x8e, 0x31, 0x13, 0x4f, 0xbc, 0xb5, 0xfc,
- 0xb1, 0x07, 0xc3, 0xd5, 0x58, 0xcc, 0xc1, 0x70, 0x4a, 0xfb, 0xdf, 0xbc, 0xef, 0x7e, 0x3b, 0x60,
- 0xb2, 0xfb, 0x93, 0x58, 0xaa, 0x83, 0xd9, 0x6b, 0xf5, 0x47, 0xf9, 0xe8, 0xc6, 0x5e, 0xbb, 0x7e,
- 0x5b, 0x34, 0xc8, 0xda, 0x48, 0x6b, 0x9d, 0xc6, 0xf0, 0xab, 0x18, 0xad, 0xec, 0xae, 0xfd, 0x2b,
- 0x46, 0x1f, 0xfd, 0x6c, 0x01, 0x87, 0x75, 0x33, 0x43, 0x05, 0x81, 0xb4, 0x1c, 0x0d, 0x34, 0xf9,
- 0xd3, 0x99, 0x31, 0x2d, 0x70, 0xf3, 0x57, 0x84, 0xa0, 0x73, 0x10, 0x77, 0x09, 0x75, 0x17, 0x32,
- 0x9f, 0xcb, 0xef, 0xe9, 0x18, 0x15, 0x72, 0xed, 0xe7, 0x78, 0x45, 0xf8, 0xe3, 0xb8, 0xa5, 0x8f,
- 0xfd, 0x55, 0x1d, 0x11, 0x30, 0x2a, 0xe4, 0x19, 0x0d, 0xf0, 0x8a, 0x33, 0x05, 0xb3, 0x89, 0xdd,
- 0xd4, 0xf6, 0xa1, 0x8f, 0xb8, 0xe9, 0x6f, 0xbb, 0xc9, 0x1d, 0xff, 0x52, 0xfd, 0x94, 0x15, 0x04,
- 0x0f, 0x8a, 0xd3, 0xfc, 0xbc, 0xb0, 0x78, 0x77, 0x06, 0x09, 0xbe, 0xc7, 0x8d, 0xa0, 0xc5, 0x66,
- 0x9c, 0x37, 0xbf, 0x64, 0xea, 0x5a, 0x6a, 0xf6, 0x58, 0xc4, 0x63, 0xac, 0xca, 0x98, 0x25, 0x91,
- 0x2f, 0x98, 0x1c, 0x47, 0xaf, 0x5d, 0xbb, 0x94, 0x79, 0x56, 0x39, 0xc9, 0xaa, 0x67, 0x5f, 0xe5,
- 0x9b, 0x58, 0x2f, 0xc6, 0x22, 0x40, 0x52, 0xc9, 0x31, 0xaa, 0x8c, 0x89, 0x3e, 0x79, 0x27, 0xa7,
- 0x43, 0xd8, 0x0d, 0x38, 0xd4, 0x56, 0x5d, 0x1e, 0x41, 0x02, 0xeb, 0x48, 0x67, 0x6d, 0x77, 0xdb,
- 0xef, 0xf4, 0xfb, 0x5b, 0xc5, 0x76, 0x74, 0x9b, 0xb8, 0x57, 0xad, 0xed, 0x78, 0xb0, 0x85, 0x69,
- 0xd9, 0xd4, 0x12, 0x85, 0x19, 0x92, 0x07, 0xde, 0xa4, 0x7d, 0xc4, 0x4c, 0xff, 0xb5, 0x91, 0x76,
- 0x79, 0x8e, 0x67, 0x97, 0x46, 0x4d, 0x4e, 0x37, 0xe4, 0x9d, 0x1a, 0x7a, 0x44, 0xe8, 0x26, 0xbc,
- 0xb6, 0x68, 0x53, 0x77, 0x90, 0xd6, 0xf9, 0x4f, 0x23, 0x95, 0x30, 0x99, 0x1b, 0x9f, 0x39, 0x56,
- 0x53, 0xd1, 0x8b, 0x84, 0x3c, 0xc1, 0xdd, 0x8e, 0x9f, 0xcc, 0x49, 0x4f, 0x95, 0xef, 0x3a, 0x7b,
- 0x7f, 0xb5, 0xc7, 0x4e, 0x61, 0xd3, 0x7e, 0x01, 0x59, 0x26, 0x56, 0xd2, 0x16, 0xa8, 0xe5, 0x80,
- 0xc1, 0x38, 0xd7, 0x67, 0x85, 0xaf, 0xc7, 0x06, 0x15, 0xd4, 0x37, 0xa9, 0x74, 0x76, 0x1b, 0x86,
- 0xf0, 0x77, 0xae, 0x1b, 0x91, 0x51, 0x8c, 0x7c, 0x60, 0x90, 0xb1, 0x2d, 0x07, 0x92, 0x0d, 0xaf,
- 0x23, 0xee, 0x9f, 0x36, 0xe1, 0xa2, 0xdb, 0xf8, 0xc0, 0xe3, 0xa1, 0x5a, 0x0e, 0xe7, 0x1a, 0x9d,
- 0xe7, 0x11, 0xb8, 0x05, 0xb1, 0xdc, 0x34, 0xd3, 0xd7, 0x30, 0xfc, 0x0f, 0x01, 0xf1, 0x42, 0x39,
- 0x25, 0xd5, 0x3f, 0xef, 0xc6, 0x3c, 0xeb, 0xce, 0x7d, 0x58, 0xed, 0xf2, 0x5c, 0xa7, 0xd9, 0xa1,
- 0x5e, 0xf3, 0x38, 0x8e, 0x9d, 0xba, 0xb5, 0xeb, 0xf2, 0xac, 0x72, 0x51, 0x97, 0xce, 0xbe, 0x09,
- 0xb5, 0x94, 0x03, 0xfa, 0x62, 0x99, 0xe1, 0x54, 0x9c, 0x29, 0x16, 0xcd, 0x32, 0xbf, 0xb9, 0x48,
- 0x1e, 0xd7, 0x65, 0x3b, 0xbb, 0xa3, 0xf0, 0xee, 0x0c, 0x12, 0xbf, 0x4d, 0xd9, 0x83, 0x49, 0xcc,
- 0xa2, 0xf2, 0x15, 0xe4, 0x42, 0x14, 0x59, 0xfb, 0x2b, 0x89, 0x5b, 0xef, 0x34, 0xdc, 0xf6, 0xde,
- 0xdf, 0xef, 0xb2, 0x5c, 0x3e, 0x0c, 0x37, 0xe8, 0x19, 0xc6, 0x88, 0xe4, 0xad, 0xf5, 0x52, 0x4a,
- 0xa6, 0x61, 0xd5, 0xcb, 0x78, 0x41, 0x79, 0xdf, 0xfd, 0x5b, 0x92, 0x9e, 0xe9, 0x1d, 0x74, 0xf6,
- 0xfe, 0xa9, 0x4d, 0x9c, 0xc2, 0x65, 0xfc, 0x02, 0xb2, 0x4c, 0xac, 0x67, 0x2c, 0x93, 0x09, 0xc3,
- 0xac, 0x2c, 0xf6, 0x63, 0x11, 0x20, 0x29, 0x85, 0xf9, 0x55, 0x46, 0xa5, 0x1f, 0xdd, 0xf2, 0xb2,
- 0x22, 0xba, 0xaf, 0x4d, 0x0e, 0x26, 0xd3, 0xf1, 0x14, 0x36, 0x02, 0xd7, 0xa8, 0x46, 0xdb, 0x97,
- 0xf9, 0xc6, 0xdd, 0x3e, 0x0a, 0x7f, 0xc4, 0x3d, 0xdb, 0x22, 0x43, 0x42, 0xd8, 0x72, 0x0b, 0xf5,
- 0xe2, 0xd6, 0x48, 0x51, 0x64, 0x0d, 0x1c, 0xfe, 0xd5, 0x37, 0x96, 0xf3, 0x7a, 0x91, 0x01, 0x1b,
- 0x4a, 0x69, 0x7e, 0x1d, 0x4f, 0x78, 0x15, 0x5f, 0xfa, 0xb0, 0x19, 0x27, 0xb8, 0x8d, 0x71, 0x81,
- 0xbc, 0x25, 0x70, 0xdf, 0xf9, 0xb7, 0xa9, 0x15, 0x27, 0x9b, 0xe4, 0xa2, 0xed, 0x5f, 0xbf, 0x12,
- 0x35, 0xdc, 0xb9, 0x53, 0x2e, 0xab, 0x6b, 0x5e, 0xa3, 0x96, 0x4f, 0xf5, 0xae, 0x25, 0x94, 0x01,
- 0xca, 0x21, 0xc4, 0xb4, 0x03, 0x4a, 0x9f, 0x55, 0xc5, 0x0f, 0x40, 0x1f, 0x24, 0x17, 0x5c, 0xc8,
- 0xee, 0xa0, 0xcb, 0x20, 0x2a, 0xf2, 0x7c, 0x92, 0x6c, 0x82, 0x0e, 0x60, 0xde, 0x11, 0x44, 0x63,
- 0x78, 0xda, 0x57, 0xec, 0xa9, 0xc9, 0x46, 0x3e, 0x30, 0x48, 0xb9, 0xf7, 0xe2, 0x49, 0xe7, 0xb6,
- 0x05, 0xc7, 0xf0, 0x54, 0xd5, 0xd1, 0x28, 0x2d, 0x02, 0x07, 0x6a, 0xfc, 0x7b, 0x60, 0x43, 0x22,
- 0x6b, 0x2f, 0x81, 0xdd, 0xb3, 0x11, 0xde, 0xb5, 0x51, 0x3a, 0x3d, 0xa4, 0x39, 0xeb, 0x2a, 0x08,
- 0x51, 0x79, 0xeb, 0x72, 0x21, 0x0a, 0xcd, 0x9c, 0xf4, 0xa5, 0xcc, 0x96, 0x1a, 0x6e, 0x7b, 0x6f,
- 0xe1, 0x2a, 0x18, 0xdc, 0x96, 0x42, 0x04, 0xe5, 0x6a, 0x8b, 0xb0, 0xa7, 0x53, 0xb1, 0x81, 0x05,
- 0x59, 0x9c, 0xa8, 0x2c, 0x55, 0xa0, 0x8d, 0xd4, 0x9b, 0xc2, 0x9d, 0x74, 0x63, 0x2f, 0xbc, 0x3f,
- 0xa3, 0xa6, 0x25, 0x9f, 0xad, 0x90, 0x51, 0xf2, 0xff, 0x5c, 0xf8, 0x62, 0x92, 0x7d, 0x37, 0xd4,
- 0xf2, 0xdf, 0xce, 0xed, 0x8c, 0x9a, 0x9c, 0x6e, 0x0b, 0xf9, 0x34, 0xf4, 0x88, 0x13, 0x4c, 0xbb,
- 0x71, 0x6b, 0x24, 0xc9, 0x32, 0xe7, 0x0e, 0x7f, 0x8b, 0xfa, 0x4b, 0x98, 0x3d, 0xa9, 0xe1, 0xec,
- 0x56, 0x16, 0x7b, 0xd0, 0xe9, 0x10, 0xf5, 0xa3, 0x9d, 0xcb, 0x23, 0xb3, 0xee, 0x8f, 0x79, 0x59,
- 0x11, 0x5d, 0xb6, 0xc7, 0x07, 0x13, 0x88, 0x99, 0x0a, 0x1b, 0x01, 0x8a, 0x54, 0x23, 0x8c, 0xaa,
- 0x6a, 0x7b, 0xb1, 0xa6, 0x5c, 0x95, 0xd6, 0xbc, 0x85, 0xef, 0x9e, 0x29, 0x9f, 0x4a, 0xeb, 0x02,
- 0x89, 0xf9, 0xc9, 0x8c, 0xd7, 0x1c, 0xc2, 0x4b, 0x84, 0x0d, 0xab, 0x57, 0x43, 0x7a, 0x2b, 0x13,
- 0x94, 0xd2, 0xfc, 0x3a, 0x9e, 0xf0, 0x2a, 0xbe, 0x37, 0xa3, 0x32, 0x4e, 0xb3, 0xd9, 0xe2, 0xc1,
- 0x65, 0xf1, 0x62, 0x5a, 0xe0, 0x25, 0xae, 0xcb, 0x83, 0xe6, 0x20, 0xee, 0x12, 0xea, 0x2e, 0x64,
- 0x8c, 0x3e, 0x39, 0xd8, 0x02, 0xcd, 0xea, 0x66, 0x86, 0x0a, 0xc1, 0xab, 0x38, 0x1a, 0x68, 0x31,
- 0xbb, 0x4a, 0xe0, 0x7d, 0x31, 0xad, 0x91, 0x2a, 0x4e, 0xf5, 0x0b, 0x87, 0x19, 0xbe, 0xbd, 0x24,
- 0x77, 0x50, 0x84, 0x10, 0x15, 0x79, 0x3e, 0x49, 0x36, 0x41, 0x07, 0x30, 0x6f, 0xe9, 0x22, 0xd0,
- 0x3c, 0x6d, 0xca, 0x76, 0xb5, 0x85, 0x23, 0x1f, 0x18, 0x24, 0xbd, 0x9a, 0x71, 0xc5, 0x92, 0x5b,
- 0x7b, 0x26, 0x07, 0x61, 0x5b, 0x86, 0x5e, 0x25, 0x8f, 0xf4, 0x9f, 0xa3, 0xcb, 0x69, 0x67, 0xa8,
- 0x28, 0xf7, 0x8c, 0xe5, 0x67, 0x47, 0x83, 0xab, 0x10, 0x38, 0xd6, 0xec, 0x5e, 0x86, 0x5d, 0xd3,
- 0xab, 0x43, 0x66, 0xc1, 0xd9, 0x3a, 0x11, 0xba, 0x90, 0x3b, 0xa9, 0x80, 0xeb, 0x3c, 0xf0, 0x84,
- 0xd2, 0xcd, 0x01, 0x56, 0x9f, 0x77, 0x5f, 0x8d, 0x74, 0xa6, 0xb3, 0xfa, 0xaf, 0xd4, 0xd6, 0x38,
- 0x31, 0x4f, 0x79, 0x7c, 0x14, 0xfe, 0x4b, 0x7a, 0x75, 0x44, 0x86, 0x84, 0x73, 0xe4, 0x16, 0x29,
- 0xde, 0xbb, 0x82, 0x27, 0xd1, 0x88, 0x3f, 0xe1, 0xcd, 0x13, 0x2b, 0x69, 0x0b, 0x54, 0x93, 0x40,
- 0xc4, 0xff, 0x27, 0x33, 0x50, 0x7e, 0xef, 0x2b, 0x17, 0xd3, 0x5d, 0x55, 0x0f, 0x16, 0x58, 0xa4,
- 0x5f, 0xa7, 0x08, 0xf5, 0x72, 0x3e, 0xbd, 0xe2, 0x26, 0x79, 0xd1, 0xdc, 0x31, 0x6f, 0x7f, 0x03,
- 0xcc, 0x1a, 0x64, 0x6d, 0x24, 0xd4, 0xaf, 0x63, 0x78, 0xb4, 0x0c, 0xb7, 0x76, 0x57, 0x9f, 0xf4,
- 0xcf, 0xe6, 0x34, 0xe0, 0xd6, 0x9b, 0xb7, 0x78, 0xc7, 0x08, 0x2a, 0xe3, 0x5f, 0x77, 0x1f, 0xea,
- 0x76, 0x04, 0xb4, 0x6b, 0xfa, 0xfd, 0x36, 0x40, 0xe2, 0x94, 0xa4, 0xbd, 0xc9, 0x48, 0xe3, 0xda,
- 0x2c, 0x64, 0x4c, 0xca, 0x5d, 0x12, 0xa3, 0x8f, 0xc6, 0xea, 0x1f, 0x9d, 0x83, 0x47, 0xdf, 0xfb,
- 0xb8, 0xb6, 0xb0, 0xf0, 0xc3, 0xe2, 0x89, 0x31, 0xf1, 0x49, 0x2d, 0xd3, 0x30, 0x9e, 0x3d, 0x3a,
- 0xd8, 0x80, 0x22, 0xfe, 0xf6, 0x16, 0x0f, 0xd7, 0x70, 0xa8, 0x67, 0xc1, 0x59, 0x14, 0x50, 0x7c,
- 0x2e, 0xcc, 0x2c, 0x3c, 0x40, 0xd9, 0xb3, 0x9d, 0xad, 0x83, 0x9a, 0x44, 0x0c, 0xc6, 0x9e, 0xef,
- 0x36, 0x20, 0xe9, 0xde, 0xdc, 0xe4, 0x73, 0x45, 0x1c, 0x2a, 0x69, 0xa1, 0x87, 0x05, 0x14, 0x1f,
- 0xdb, 0x7c, 0x72, 0x73, 0x04, 0x59, 0x17, 0xcc, 0xcf, 0x14, 0x41, 0x95, 0x70, 0x34, 0xd0, 0x62,
- 0x69, 0x87, 0xe1, 0x2b, 0xae, 0xda, 0xce, 0xa7, 0x3a, 0x53, 0xb8, 0x7d, 0xb6, 0x6a, 0x6b, 0x1c,
- 0xb3, 0xaf, 0xa3, 0x23, 0x45, 0x07, 0xd1, 0x62, 0x21, 0x92, 0x5a, 0x65, 0x60, 0xff, 0x7a, 0x74,
- 0x14, 0x9a, 0x46, 0x93, 0xd2, 0xc2, 0xa0, 0xb4, 0x08, 0x1c, 0x6b, 0x76, 0x2f, 0x43, 0xcf, 0x88,
- 0x95, 0x86, 0xcc, 0x41, 0x71, 0x74, 0x22, 0xb7, 0xe3, 0x76, 0x91, 0xc3, 0x15, 0x78, 0x23, 0xcb,
- 0xbe, 0x8d, 0x10, 0x29, 0xe4, 0x7c, 0xb9, 0x07, 0x4c, 0xf2, 0x61, 0x7b, 0x62, 0xde, 0xfe, 0x06,
- 0x62, 0x9e, 0xf2, 0xf8, 0x28, 0x3f, 0x96, 0xf4, 0xea, 0x88, 0xcf, 0xcb, 0xe6, 0x0b, 0x2c, 0x52,
- 0xa1, 0x0e, 0x45, 0x69, 0xb0, 0x5b, 0x41, 0xe0, 0x94, 0x35, 0x7d, 0xbb, 0x1d, 0xfc, 0x76, 0xc0,
- 0x3b, 0x02, 0x5a, 0xd4, 0x7d, 0x9f, 0x1b, 0x20, 0x71, 0x4a, 0x52, 0xbf, 0x85, 0x24, 0x90, 0x6d,
- 0x16, 0x32, 0x26, 0x65, 0xcf, 0x09, 0xb0, 0xa6, 0x63, 0x75, 0xee, 0xaf, 0xa0, 0xc2, 0x8e, 0x9c,
- 0x66, 0x0d, 0x32, 0xd7, 0x12, 0x6a, 0xb6, 0xd0, 0x3c, 0x5a, 0x06, 0xba, 0x3b, 0xca, 0xae, 0x7a,
- 0xe9, 0xcf, 0x5b, 0x82, 0xe2, 0xe8, 0x44, 0xad, 0x05, 0xec, 0xe1, 0x45, 0x2a, 0xf0, 0x46, 0x55,
- 0x5c, 0x5b, 0x58, 0x78, 0x80, 0x71, 0xa5, 0xf9, 0x99, 0xc5, 0xf7, 0x88, 0x18, 0x4f, 0xff, 0x1d,
- 0x6c, 0x40, 0x11, 0x7f, 0x7b, 0x0b, 0xe6, 0x8a, 0x38, 0x54, 0xd2, 0x81, 0xcd, 0x0a, 0x28, 0x3e,
- 0x6d, 0x14, 0x21, 0x04, 0x94, 0x8f, 0xee, 0x83, 0xec, 0x81, 0x71, 0x0c, 0x6b, 0xab, 0xe9, 0x34,
- 0xad, 0x78, 0xc6, 0x18, 0xfe, 0xa4, 0x21, 0x8c, 0x2d, 0x80, 0xe5, 0x28, 0xb9, 0x7c, 0x33, 0xb8,
- 0x37, 0x74, 0xd9, 0xa5, 0x33, 0x60, 0x7b, 0x4c, 0xc8, 0xff, 0xca, 0x2c, 0x21, 0xa4, 0xd5, 0x15,
- 0x61, 0x62, 0xa2, 0x75, 0xda, 0x70, 0x8e, 0xef, 0x55, 0x34, 0xe9, 0x9f, 0xcf, 0x2b, 0xac, 0x4c,
- 0x4b, 0x3d, 0x4e, 0x66, 0xa0, 0xfc, 0x1d, 0x56, 0x2e, 0x65, 0xba, 0xaa, 0x1e, 0x2c, 0xb0, 0x8b,
- 0xb9, 0xe2, 0x80, 0x8b, 0x2c, 0x66, 0x81, 0x38, 0x25, 0x9c, 0x8e, 0x5e, 0x96, 0x3f, 0xfc, 0x30,
- 0xe3, 0x82, 0x78, 0x2a, 0x8b, 0x89, 0x14, 0xf7, 0x01, 0xe2, 0x35, 0x7e, 0xdc, 0x30, 0xc0, 0x11,
- 0xba, 0x1e, 0xd0, 0x06, 0xde, 0x29, 0x99, 0x23, 0x9a, 0x20, 0xa8, 0x0a, 0xbf, 0x1f, 0x7c, 0x2e,
- 0xf1, 0x23, 0x9e, 0x60, 0x7e, 0xd5, 0x84, 0x75, 0xb4, 0x45, 0x12, 0xa0, 0xa1, 0x33, 0xcc, 0xa5,
- 0xa0, 0x5a, 0x75, 0x12, 0x5f, 0xdf, 0x49, 0xe9, 0x40, 0xe0, 0xde, 0x36, 0xbb, 0x5d, 0xb7, 0xca,
- 0x85, 0x8f, 0x4a, 0xfd, 0x99, 0xe3, 0xa2, 0x27, 0x3d, 0xb8, 0x33, 0xc4, 0xe7, 0xfa, 0x6e, 0x6b,
- 0x83, 0xb4, 0xea, 0x24, 0xbe, 0x7d, 0x92, 0x11, 0x80, 0x03, 0x7f, 0x6c, 0xb5, 0xba, 0xad, 0x57,
- 0xda, 0x28, 0x42, 0x08, 0xeb, 0xdd, 0x1f, 0xc5, 0x1b, 0xc1, 0xe2, 0x18, 0xd6, 0x95, 0x11, 0x68,
- 0x47, 0x4b, 0xcd, 0x17, 0xee, 0x03, 0x7d, 0x3a, 0x97, 0xd0, 0x22, 0x39, 0xba, 0xac, 0xf5, 0xf3,
- 0xc5, 0xab, 0x17, 0x48, 0xbf, 0xfa, 0xe7, 0x22, 0xc3, 0x06, 0xfe, 0xd8, 0xa9, 0xb7, 0x99, 0xae,
- 0xb0, 0x53, 0xf3, 0xae, 0xb7, 0x48, 0xc9, 0x79, 0x9e, 0x2e, 0x7c, 0x31, 0x49, 0xdf, 0xfa, 0x6a,
- 0x33, 0xe7, 0x19, 0x8a, 0x09, 0x35, 0x5b, 0x68, 0x1e, 0x2d, 0x03, 0x5d, 0xfc, 0x65, 0x57, 0x3d,
- 0xfa, 0x3a, 0x8d, 0xb3, 0xf8, 0x30, 0xdc, 0x26, 0x64, 0x9e, 0x65, 0x16, 0xf1, 0x52, 0x8b, 0xeb,
- 0x96, 0x7a, 0x9c, 0xcc, 0x83, 0x3b, 0x3a, 0xac, 0x5c, 0xca, 0xb7, 0x97, 0x3c, 0x58, 0xa3, 0xd5,
- 0x6f, 0xbc, 0x41, 0xf2, 0x89, 0x44, 0xfe, 0x91, 0x87, 0xe8, 0xf4, 0xd5, 0xe4, 0x2a, 0xa8, 0x20,
- 0x6e, 0xe8, 0x71, 0x89, 0x66, 0xc0, 0xf6, 0x98, 0x53, 0x3d, 0x57, 0x58, 0x42, 0x8b, 0x69, 0x2a,
- 0xc2, 0xc4, 0x87, 0xea, 0x77, 0xe0, 0xdf, 0x1d, 0xaa, 0x68, 0x11, 0xfd, 0x5d, 0x56, 0x9b, 0x98,
- 0xf6, 0x4c, 0x0e, 0xc2, 0xb6, 0xcf, 0xbc, 0x4a, 0xdd, 0x2b, 0xfd, 0x85, 0x55, 0xd2, 0xce, 0x93,
- 0x50, 0x2d, 0xdb, 0x09, 0xce, 0x8e, 0xc5, 0x95, 0x20, 0x70, 0x6f, 0x1b, 0xbc, 0xcf, 0xba, 0x65,
- 0xff, 0xfd, 0x7d, 0xe7, 0x2d, 0xe1, 0xf4, 0x0b, 0x66, 0x99, 0x0f, 0xea, 0x8a, 0x32, 0xc8, 0xc9,
- 0x5d, 0x0f, 0x68, 0x03, 0x6f, 0xf5, 0xad, 0xf0, 0x4d, 0x10, 0x54, 0x05, 0xbe, 0xee, 0x3e, 0x17,
- 0xa9, 0xeb, 0x06, 0x37, 0xc4, 0xf1, 0x01, 0xa8, 0xfb, 0x52, 0x2c, 0x59, 0x64, 0xbd, 0xb1, 0x90,
- 0x8e, 0x96, 0x59, 0x2e, 0x1f, 0x06, 0xfa, 0x74, 0xed, 0x63, 0x44, 0x72, 0xb7, 0x9b, 0x29, 0x25,
- 0x17, 0x66, 0x16, 0x1e, 0x20, 0x8d, 0xb8, 0xaf, 0xb7, 0xa0, 0x4d, 0x22, 0x06, 0x63, 0x4f, 0x96,
- 0x1b, 0x10, 0x95, 0x6f, 0x6e, 0x72, 0xd8, 0xc3, 0x0e, 0x15, 0xd5, 0xb1, 0xa2, 0xe3, 0x0a, 0xee,
- 0x97, 0x2e, 0xac, 0xb7, 0x6c, 0xbf, 0x32, 0xa5, 0x88, 0x1f, 0x14, 0x1a, 0x9a, 0xf9, 0x62, 0xdf,
- 0x7d, 0x1d, 0xa7, 0xb8, 0x7c, 0x18, 0x6e, 0x13, 0x32, 0x4f, 0xd3, 0x0b, 0x99, 0x29, 0xa4, 0x94,
- 0xec, 0x08, 0xab, 0xd6, 0x37, 0x39, 0x6c, 0x80, 0x07, 0xeb, 0x8b, 0xb9, 0x51, 0x90, 0x05, 0x77,
- 0x58, 0xc8, 0x98, 0x57, 0xba, 0x24, 0x85, 0xdd, 0x4f, 0x17, 0x3e, 0xf9, 0xc5, 0x8e, 0x7d, 0x35,
- 0xf7, 0x18, 0x3e, 0xb9, 0x59, 0x4b, 0xb4, 0x43, 0x09, 0xfe, 0x5e, 0x08, 0xf3, 0x73, 0x0f, 0x99,
- 0x1f, 0x83, 0x55, 0x40, 0x54, 0x27, 0xf8, 0xe7, 0xd8, 0xc7, 0x1c, 0xc0, 0x7f, 0x22, 0x88, 0xc6,
- 0xfb, 0x6e, 0xbd, 0xc8, 0x17, 0xb4, 0xd4, 0x2f, 0xb0, 0x4b, 0xc6, 0x9b, 0x57, 0xf3, 0x4a, 0xe1,
- 0x7c, 0x49, 0x97, 0xc3, 0x93, 0x9c, 0x66, 0x1a, 0xe6, 0x9a, 0x70, 0x86, 0x3f, 0x88, 0x65, 0x9e,
- 0x09, 0xb1, 0x73, 0x25, 0x9b, 0x2e, 0x48, 0x41, 0xbb, 0xb2, 0xf2, 0x6f, 0xdf, 0xe0, 0x06, 0x5a,
- 0x0d, 0x22, 0xb3, 0x0a, 0xa1, 0x7b, 0x68, 0x65, 0x6d, 0x60, 0x3b, 0x1e, 0x02, 0x21, 0x84, 0x72,
- 0x7a, 0x72, 0x37, 0x1a, 0xb4, 0x02, 0x56, 0x2c, 0x5b, 0x21, 0x3c, 0x2e, 0x6d, 0xc8, 0xa6, 0xa2,
- 0x67, 0x59, 0x02, 0xac, 0xfd, 0xee, 0xbe, 0xd9, 0xe8, 0x8f, 0xa5, 0x37, 0x9d, 0x6b, 0x6f, 0x70,
- 0x45, 0xe3, 0xad, 0xe1, 0xf3, 0xc8, 0x6d, 0x28, 0xfc, 0xb9, 0xa7, 0xe0, 0x35, 0x2d, 0xb4, 0xe7,
- 0x87, 0x27, 0x2a, 0x0b, 0x84, 0x28, 0xb2, 0x35, 0x56, 0xd1, 0xb6, 0x1d, 0x68, 0x7b, 0x2f, 0x7f,
- 0xdc, 0x13, 0xe2, 0xd1, 0xcc, 0x43, 0x2f, 0xf3, 0xa6, 0x7a, 0xae, 0xb0, 0x84, 0xd5, 0xd2, 0x54,
- 0xe8, 0x9b, 0x6b, 0xf9, 0x0d, 0x6c, 0x4c, 0xa4, 0xd1, 0x39, 0x42, 0xc8, 0x8c, 0x51, 0x87, 0x5f,
- 0x4f, 0xae, 0x8e, 0x49, 0x9a, 0xa9, 0x3d, 0x72, 0xf8, 0xb7, 0x73, 0xdb, 0xc3, 0xed, 0x32, 0xa3,
- 0x1d, 0x2b, 0x35, 0xb6, 0x49, 0xec, 0xe8, 0xf5, 0xb3, 0xae, 0x99, 0x19, 0xf0, 0xa3, 0xc9, 0xd2,
- 0x4e, 0xfa, 0xbe, 0x32, 0x75, 0x2d, 0x35, 0x7b, 0x2c, 0x62, 0xd0, 0x56, 0x65, 0x4c, 0xf3, 0xa9,
- 0x04, 0x93, 0xc0, 0x2f, 0x3a, 0x55, 0x20, 0x24, 0xd6, 0xd2, 0xc9, 0x71, 0xdd, 0xc1, 0x82, 0x28,
- 0xeb, 0x67, 0x3b, 0x74, 0xff, 0x23, 0x54, 0xbf, 0x6e, 0x85, 0x64, 0x9c, 0xa5, 0x71, 0x07, 0x41,
- 0xf8, 0x92, 0xed, 0x45, 0xe5, 0xfb, 0xcc, 0x34, 0x0f, 0xf7, 0xe0, 0xcf, 0x7e, 0xd3, 0xca, 0xff,
- 0xf3, 0x8b, 0xfe, 0x96, 0x63, 0x1e, 0x94, 0x67, 0xdf, 0x2c, 0x97, 0x79, 0x2e, 0xb2, 0x8d, 0xb1,
- 0x3e, 0xc5, 0xaa, 0x80, 0xa8, 0x4e, 0x33, 0x0d, 0x73, 0x4d, 0x38, 0x43, 0xfe, 0x44, 0xd3, 0x4f,
- 0x3d, 0x39, 0xfa, 0x0d, 0x5a, 0x01, 0x2b, 0x16, 0xcc, 0xf1, 0x1e, 0x17, 0xd7, 0x64, 0x53, 0x51,
- 0xbd, 0x71, 0x40, 0xa4, 0x16, 0x33, 0xa1, 0x1c, 0xf3, 0x4e, 0x47, 0x2f, 0x4b, 0xfe, 0x7e, 0x18,
- 0x8a, 0x05, 0x99, 0x01, 0x25, 0x53, 0xda, 0x50, 0x3b, 0xb1, 0x8d, 0x03, 0x6a, 0x5a, 0xab, 0x0d,
- 0x88, 0xad, 0xf9, 0xf7, 0x38, 0x98, 0xca, 0x42, 0x50, 0xd8, 0x08, 0xda, 0xe5, 0xdb, 0xea, 0x19,
- 0xdd, 0x47, 0xd2, 0xaa, 0x23, 0xc7, 0x27, 0xfa, 0x72, 0xaf, 0x0d, 0x3d, 0x22, 0x74, 0x13, 0x5e,
- 0xcd, 0x4e, 0x54, 0x16, 0xcb, 0x50, 0xa7, 0x6a, 0xac, 0x61, 0xaf, 0x3a, 0xd0, 0xf6, 0x5e, 0xfe,
- 0x0b, 0x19, 0x13, 0xd3, 0x86, 0xe5, 0x58, 0x53, 0xd0, 0xdb, 0x77, 0xb6, 0x50, 0x61, 0x47, 0x4e,
- 0x13, 0xf5, 0xd6, 0x31, 0x1a, 0xd8, 0x98, 0x8b, 0x61, 0x72, 0x84, 0x53, 0xdb, 0xa2, 0xcd, 0xbe,
- 0x98, 0xa4, 0x7f, 0x4b, 0xd0, 0x0f, 0x4a, 0xd2, 0x8e, 0x16, 0xaa, 0xdd, 0x17, 0x59, 0xa7, 0xb9,
- 0x02, 0xa8, 0x60, 0xf6, 0x1d, 0xcb, 0x10, 0x12, 0x6b, 0x69, 0x85, 0xd9, 0x8f, 0x81, 0x41, 0x14,
- 0x93, 0xbd, 0x6c, 0x98, 0x56, 0xea, 0x12, 0x81, 0x5e, 0xcd, 0xdd, 0x6b, 0x47, 0x38, 0xe0, 0xf7,
- 0x80, 0x48, 0xba, 0xa9, 0x4c, 0x32, 0x8a, 0x0a, 0x3f, 0xbf, 0x59, 0x38, 0x9c, 0x9a, 0x2d, 0x49,
- 0x90, 0x41, 0x3c, 0x15, 0xa4, 0xa5, 0x0a, 0x9a, 0xe1, 0x71, 0xfb, 0x3f, 0x6e, 0x18, 0x60, 0xe9,
- 0xd0, 0x65, 0x61, 0xa0, 0x82, 0xbc, 0x4f, 0x9f, 0x1f, 0xcf, 0x36, 0x23, 0x20, 0x55, 0x97, 0x2c,
- 0x24, 0x81, 0x0f, 0x94, 0x29, 0xb8, 0xe3, 0xc7, 0xa9, 0x8d, 0x4e, 0x7f, 0xfa, 0x06, 0x18, 0xab,
- 0x34, 0x88, 0x89, 0x28, 0xc1, 0x2f, 0x63, 0x57, 0x77, 0x43, 0xec, 0x78, 0x08, 0x84, 0x55, 0x0b,
- 0xcb, 0x75, 0xf4, 0xcf, 0xec, 0xce, 0x97, 0x5c, 0x11, 0xda, 0xe3, 0x92, 0x82, 0xb6, 0x9d, 0xc2,
- 0xed, 0x5c, 0x9b, 0xad, 0xd8, 0xbd, 0x64, 0x89, 0xd3, 0x3e, 0x28, 0x34, 0xf7, 0x31, 0xc4, 0x7d,
- 0xf4, 0xe4, 0x6e, 0x34, 0xab, 0x04, 0xac, 0x58, 0xb6, 0x42, 0x78, 0x5c, 0xda, 0x53, 0x8f, 0x87,
- 0xce, 0xb2, 0x04, 0x9b, 0x39, 0x1f, 0xbf, 0x71, 0x13, 0xdd, 0x89, 0x6e, 0xf9, 0xd6, 0xde, 0xe0,
- 0x99, 0xf0, 0x4f, 0x30, 0x3f, 0x8b, 0x42, 0xdb, 0x5a, 0xc3, 0x09, 0x50, 0xb1, 0xf8, 0x66, 0xb3,
- 0x10, 0x09, 0x86, 0xbc, 0xe8, 0x97, 0x80, 0x90, 0xde, 0xce, 0xa2, 0x07, 0xf2, 0x82, 0x4d, 0xa0,
- 0x44, 0xb7, 0x9d, 0x9a, 0x1c, 0x4c, 0x65, 0x21, 0x28, 0x6c, 0x04, 0x6d, 0x93, 0x8c, 0x75, 0xed,
- 0x40, 0x24, 0x5d, 0xb5, 0x26, 0x19, 0x45, 0x05, 0xfe, 0xbe, 0xcd, 0x1c, 0x4e, 0x4d, 0xf7, 0xc5,
- 0x92, 0xe9, 0x5c, 0xe3, 0xb9, 0x6e, 0x1a, 0x88, 0x8a, 0x18, 0x7e, 0xe6, 0xe1, 0x99, 0x21, 0xfd,
- 0x3a, 0x56, 0x6a, 0xaf, 0x92, 0x1b, 0x13, 0x29, 0xa5, 0x9f, 0xf1, 0x32, 0x23, 0x85, 0x51, 0x67,
- 0x01, 0x54, 0x30, 0x7b, 0xef, 0x84, 0x08, 0x09, 0xd4, 0xd5, 0xa3, 0x8d, 0xa6, 0xa1, 0xc1, 0x0a,
- 0x26, 0x29, 0x6f, 0x62, 0x34, 0x73, 0xf3, 0xd5, 0xc2, 0xe4, 0xcb, 0xa6, 0x75, 0x87, 0x59, 0xbf,
- 0x12, 0xa1, 0xe6, 0x4a, 0xf5, 0x5c, 0x90, 0x82, 0xb5, 0xa7, 0x27, 0xde, 0x7d, 0x03, 0x0c, 0xb4,
- 0x1a, 0x44, 0xa5, 0x14, 0x81, 0xf6, 0xd0, 0xca, 0xda, 0xc0, 0x76, 0x3c, 0x04, 0x42, 0xcb, 0xe4,
- 0x48, 0xc1, 0x1e, 0xeb, 0x52, 0xb3, 0x05, 0x4d, 0x91, 0xd9, 0x9c, 0xfe, 0x37, 0x0c, 0x30, 0x95,
- 0x68, 0xd3, 0xd1, 0x50, 0x41, 0x5e, 0xc6, 0xae, 0xee, 0x86, 0x1b, 0xf0, 0x10, 0xcb, 0xaa, 0x16,
- 0xf5, 0xb0, 0x5e, 0x4f, 0x44, 0x80, 0xa4, 0x51, 0x62, 0x97, 0xdb, 0xd1, 0x7c, 0xf2, 0x4e, 0x8d,
- 0x81, 0x1c, 0x8a, 0xd2, 0xa3, 0xb6, 0x82, 0x03, 0xeb, 0x6a, 0xfa, 0xb5, 0x3a, 0x3b, 0xec, 0x43,
- 0x8b, 0x51, 0xa9, 0x7a, 0xca, 0xd7, 0xd2, 0x59, 0xef, 0x64, 0x2e, 0x8e, 0xcc, 0xfb, 0x6a, 0x07,
- 0xc7, 0x03, 0x77, 0xbe, 0xa2, 0x31, 0xf7, 0x30, 0xa8, 0x6f, 0x7b, 0x01, 0x26, 0x36, 0xd8, 0xba,
- 0xd6, 0x5e, 0xc1, 0x79, 0xa5, 0x22, 0x7f, 0xa9, 0xa2, 0x74, 0x7a, 0x8b, 0x72, 0x15, 0x54, 0x10,
- 0x20, 0x12, 0xcf, 0xbb, 0x13, 0xed, 0xc3, 0xe3, 0x7f, 0x5f, 0x87, 0x0e, 0x27, 0xc7, 0x9a, 0x83,
- 0x0a, 0x4d, 0x23, 0xa8, 0x69, 0x61, 0x50, 0x5a, 0x04, 0x0e, 0xd4, 0x3b, 0xf6, 0xc0, 0x86, 0x44,
- 0x08, 0xe5, 0x43, 0x5e, 0x74, 0xaa, 0x40, 0x48, 0x6f, 0x67, 0x51, 0xe2, 0x79, 0x41, 0xc7, 0x50,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x4c, 0x52, 0xde, 0xc4, 0x68, 0xe6, 0x25, 0x69, 0x47, 0x0b, 0x55, 0x8f, 0xea, 0xcd, 0xb2, 0xbd,
- 0xd7, 0x0a, 0xf1, 0x02, 0x4a, 0xa6, 0x77, 0xa0, 0x76, 0xa1, 0xd9, 0x06, 0xd4, 0xb4, 0x95, 0x1a,
- 0x74, 0xac, 0xd4, 0x9d, 0xe7, 0x36, 0x26, 0x52, 0x89, 0xfd, 0x21, 0x64, 0x46, 0xc9, 0xa2, 0xce,
- },
- { /* 8 */
- 0x99, 0xaa, 0x16, 0x04, 0xc2, 0x95, 0x8c, 0x4a, 0x63, 0xeb, 0xf0, 0x49, 0x21, 0x0a, 0xad, 0xf8,
- 0x93, 0xe3, 0xda, 0xa3, 0x95, 0xb5, 0xa1, 0x97, 0x1b, 0x19, 0xbd, 0x7f, 0x09, 0x35, 0xa8, 0x38,
- 0x88, 0xfd, 0x2b, 0x3b, 0xa6, 0xc5, 0x21, 0xbc, 0xaf, 0xb5, 0xad, 0x3e, 0x65, 0x8a, 0x44, 0xdb,
- 0xae, 0x16, 0x29, 0x6c, 0x27, 0x1a, 0xaa, 0xe1, 0xc4, 0x02, 0x84, 0xcc, 0xfd, 0xee, 0x57, 0x5c,
- 0x8b, 0xbe, 0x09, 0x55, 0xe0, 0x74, 0xcd, 0x78, 0xbb, 0x23, 0x51, 0x37, 0x69, 0x61, 0xa4, 0xfb,
- 0xbd, 0x82, 0x28, 0xa6, 0x86, 0x94, 0x0e, 0x2e, 0x10, 0xb8, 0x71, 0xb5, 0xb1, 0xdc, 0xbf, 0xfe,
- 0x69, 0xbd, 0x24, 0x97, 0x06, 0x13, 0xb2, 0x23, 0xa9, 0x8c, 0x87, 0xdc, 0x67, 0x47, 0xd5, 0x6a,
- 0xb1, 0x4d, 0xa0, 0xdd, 0x5d, 0x15, 0x38, 0xb8, 0x40, 0xa5, 0x07, 0x91, 0x81, 0xf6, 0xb9, 0x7e,
- 0x6e, 0xbb, 0x7e, 0xd0, 0x09, 0xdd, 0x4c, 0x95, 0x8d, 0x11, 0xe8, 0xc9, 0x7b, 0x0b, 0x37, 0x8b,
- 0x38, 0x30, 0x95, 0x7d, 0x78, 0xbf, 0xfc, 0xf9, 0xe3, 0x62, 0xfe, 0xa8, 0xe0, 0x25, 0x1c, 0x04,
- 0x3e, 0xb6, 0xd1, 0xa1, 0xf4, 0x1e, 0xe7, 0xb2, 0xcb, 0x8d, 0xc5, 0xba, 0xf8, 0x30, 0x1f, 0x44,
- 0x92, 0x63, 0xc4, 0x38, 0x16, 0xda, 0x44, 0x6a, 0x17, 0x6b, 0xe9, 0x78, 0x0d, 0x6c, 0x49, 0x99,
- 0x95, 0x65, 0x9e, 0x7f, 0x19, 0x14, 0xba, 0xdc, 0x33, 0xf6, 0x86, 0x6d, 0x11, 0x20, 0xab, 0x78,
- 0x59, 0x07, 0x41, 0xb8, 0xec, 0x52, 0x6a, 0x3e, 0x2a, 0xf8, 0x9c, 0x4c, 0xa7, 0xef, 0xcd, 0x2f,
- 0x31, 0x3a, 0x7b, 0xb4, 0x69, 0x2e, 0x3d, 0xe0, 0x8f, 0x06, 0x4f, 0x97, 0xc4, 0xf1, 0xf9, 0xe4,
- 0x4e, 0xd6, 0x38, 0x5b, 0x04, 0xa3, 0xdc, 0x83, 0xce, 0x49, 0xfa, 0x29, 0xfb, 0x7a, 0x27, 0x4c,
- 0xd3, 0x39, 0x56, 0x76, 0x8f, 0x49, 0x42, 0xbb, 0x9d, 0xa9, 0x99, 0x7c, 0xca, 0xd7, 0x88, 0x75,
- 0xce, 0xa1, 0xe3, 0x32, 0x30, 0x98, 0xd9, 0xdb, 0x01, 0xea, 0xb2, 0x2f, 0xbe, 0x7d, 0x67, 0xd6,
- 0xa0, 0x1a, 0x9d, 0xe2, 0x39, 0x45, 0x95, 0x4e, 0x8c, 0xfb, 0x5a, 0xe6, 0xc5, 0x76, 0x50, 0x5d,
- 0xe5, 0x05, 0x77, 0x85, 0xe9, 0xa9, 0x81, 0xed, 0x36, 0x32, 0xb9, 0xfe, 0x12, 0x6a, 0x93, 0x70,
- 0xd5, 0xbf, 0x12, 0xaa, 0x03, 0xe8, 0x59, 0xf0, 0xb5, 0x46, 0xa2, 0x6e, 0xd2, 0xc2, 0x8b, 0x35,
- 0xb9, 0xc7, 0x50, 0x8f, 0xcf, 0xeb, 0x1c, 0x5c, 0x20, 0xb3, 0xe2, 0xa9, 0xa1, 0x7b, 0xbd, 0x3f,
- 0xa4, 0x5f, 0xe5, 0xcb, 0x70, 0x3a, 0x87, 0x3c, 0xbc, 0xf0, 0xc9, 0xfa, 0xd5, 0xd1, 0x52, 0x9c,
- 0xbf, 0x41, 0x14, 0x53, 0x43, 0x4a, 0x07, 0x17, 0x08, 0x5c, 0xd9, 0xbb, 0xb9, 0x6e, 0xbe, 0x7f,
- 0x2d, 0x22, 0xd0, 0x6b, 0x55, 0x90, 0x43, 0x7d, 0x1f, 0x37, 0x30, 0xc3, 0xb4, 0x02, 0xf7, 0xe6,
- 0xe7, 0xc6, 0x4b, 0x70, 0x2c, 0x77, 0x88, 0xd4, 0x2e, 0xd6, 0x11, 0xf0, 0x1a, 0xd8, 0x92, 0xf1,
- 0xdc, 0xb5, 0xfc, 0x63, 0x12, 0x79, 0x98, 0xe9, 0xd9, 0x22, 0x13, 0x51, 0xf6, 0x16, 0x6e, 0xd5,
- 0x21, 0xed, 0x58, 0x10, 0x8e, 0x11, 0x75, 0xeb, 0x4f, 0x2a, 0x46, 0xe7, 0x84, 0x28, 0xf1, 0x66,
- 0xf9, 0x1d, 0xdc, 0x5a, 0xd5, 0x17, 0xff, 0x70, 0xa6, 0x03, 0xc6, 0xaa, 0x62, 0x99, 0x9d, 0x72,
- 0xee, 0xcc, 0xa5, 0xb9, 0x3d, 0xe6, 0x49, 0xcd, 0x42, 0xb2, 0xa0, 0xcf, 0x3e, 0x0c, 0x77, 0x11,
- 0x62, 0x74, 0xf6, 0xab, 0xd2, 0x5c, 0x7a, 0x03, 0xdd, 0x0c, 0x9e, 0xed, 0x4b, 0x21, 0x31, 0x0b,
- 0xcd, 0xe2, 0xc1, 0x5c, 0x76, 0x29, 0x35, 0x1f, 0x15, 0x7c, 0x4e, 0x26, 0xb2, 0x96, 0x87, 0xf6,
- 0x67, 0xb1, 0x90, 0x19, 0x18, 0x4c, 0x8d, 0x8c, 0xe1, 0x75, 0x59, 0xf6, 0x5f, 0xdf, 0xd2, 0x6b,
- 0x72, 0xa3, 0xd5, 0x0f, 0x35, 0x63, 0x32, 0x08, 0x1d, 0x20, 0x97, 0x9d, 0x0b, 0xf8, 0x39, 0x89,
- 0x9b, 0x69, 0x2a, 0xf1, 0x07, 0x4b, 0x85, 0x73, 0x7b, 0x0f, 0x58, 0x47, 0x29, 0xb8, 0xac, 0x79,
- 0xbe, 0xc1, 0x0a, 0xc8, 0xc0, 0x25, 0xe2, 0xea, 0x04, 0x2e, 0x8d, 0xbc, 0xbd, 0x37, 0x5f, 0xde,
- 0xeb, 0x09, 0xc3, 0x0b, 0xf7, 0xf6, 0xbe, 0x42, 0x7e, 0xcb, 0x67, 0xd4, 0x2a, 0xf2, 0x94, 0x71,
- 0x86, 0xf1, 0x9f, 0xb5, 0xb8, 0x9a, 0x1e, 0x13, 0xe7, 0x4c, 0x73, 0x14, 0x5d, 0x12, 0x43, 0xda,
- 0x83, 0x34, 0xf9, 0x07, 0x72, 0x8a, 0xe9, 0x9c, 0xdb, 0x35, 0xb4, 0x0f, 0x49, 0xec, 0xa0, 0xba,
- 0x09, 0x0a, 0xee, 0xc9, 0x11, 0x91, 0xc1, 0x19, 0x6c, 0x64, 0xb1, 0x3f, 0x24, 0xd4, 0xe5, 0xe0,
- 0x54, 0x48, 0xd7, 0x58, 0xb4, 0xbc, 0xb9, 0x55, 0x76, 0x97, 0xbe, 0x6f, 0x93, 0x9c, 0x2a, 0x0e,
- 0x77, 0x66, 0xb3, 0xbd, 0xff, 0x73, 0xc5, 0x87, 0x21, 0x59, 0x50, 0x86, 0x1f, 0x06, 0xda, 0xe9,
- 0x40, 0xda, 0x8c, 0xd5, 0x1a, 0xfc, 0xe3, 0x2c, 0x86, 0xb0, 0x24, 0x03, 0xc3, 0xe2, 0x20, 0x4d,
- 0xf6, 0x91, 0x76, 0x4f, 0x48, 0x27, 0x25, 0x22, 0xe2, 0x88, 0x4c, 0x87, 0x5e, 0x58, 0x7b, 0xd2,
- 0x5a, 0x44, 0x63, 0xd6, 0xaa, 0xe3, 0x86, 0xfa, 0x3e, 0x6e, 0x60, 0x45, 0xab, 0x04, 0x2d, 0x0f,
- 0x0d, 0x4f, 0x96, 0xe0, 0x58, 0xee, 0xd3, 0x6b, 0x5c, 0x6f, 0x22, 0x23, 0x34, 0x73, 0xe7, 0x21,
- 0xfa, 0x5e, 0xfe, 0x34, 0x93, 0xa6, 0x13, 0xb4, 0xb2, 0x95, 0x3a, 0xa3, 0x6e, 0x72, 0x7d, 0x52,
- 0xc7, 0xab, 0x0d, 0xfb, 0x21, 0x09, 0x18, 0xc2, 0x6d, 0x8e, 0x03, 0x10, 0x9a, 0xa9, 0x82, 0x36,
- 0x65, 0x72, 0xac, 0xec, 0xdd, 0x92, 0x84, 0xb5, 0xf9, 0x91, 0xf1, 0xf8, 0x57, 0x6d, 0xd3, 0xea,
- 0x5f, 0x81, 0x05, 0x64, 0x60, 0xf3, 0x71, 0x75, 0x02, 0x17, 0xa7, 0x5e, 0xbf, 0xfa, 0xce, 0x6f,
- 0xd2, 0xb9, 0x48, 0xed, 0x0c, 0x26, 0xa7, 0x46, 0x91, 0xdb, 0xcd, 0x7b, 0xce, 0x8e, 0x69, 0xd4,
- 0xf0, 0x17, 0x32, 0x93, 0xc4, 0x86, 0x3e, 0x69, 0xca, 0x67, 0x77, 0x95, 0x46, 0x4d, 0x78, 0x92,
- 0x94, 0xe5, 0x80, 0xe4, 0x9a, 0x7b, 0x5f, 0x21, 0x3f, 0x84, 0xd2, 0x6a, 0x15, 0x79, 0x4a, 0xd9,
- 0x43, 0x99, 0xae, 0xbb, 0x5c, 0x4d, 0x0f, 0xe8, 0x92, 0x26, 0xd8, 0x0a, 0xcf, 0x09, 0xc0, 0x6d,
- 0x44, 0x9f, 0xf4, 0xfc, 0x53, 0x83, 0xf1, 0x5e, 0xb6, 0xbb, 0xb7, 0x1f, 0xd3, 0x45, 0x22, 0x8c,
- 0x9e, 0xac, 0x4c, 0x43, 0xcd, 0x5b, 0x72, 0xfc, 0x47, 0x76, 0x9f, 0x5c, 0x3d, 0x46, 0x4f, 0x19,
- 0xe9, 0xca, 0xff, 0xfe, 0x32, 0x28, 0xb7, 0x7b, 0x66, 0x2f, 0xcf, 0xda, 0x22, 0x40, 0x95, 0xf0,
- 0xb2, 0x0e, 0x82, 0xb3, 0x1b, 0xa4, 0xd4, 0x7c, 0x54, 0x33, 0xfb, 0x98, 0x8d, 0x1d, 0x59, 0x5e,
- 0x2a, 0x24, 0x8a, 0x2c, 0x5a, 0x5e, 0xbd, 0xcb, 0x3b, 0xaa, 0x5f, 0xd6, 0xa8, 0x4e, 0x15, 0x07,
- 0x13, 0x94, 0x01, 0xca, 0xa1, 0x8e, 0xa4, 0xcf, 0xd4, 0xba, 0xf5, 0x79, 0x4c, 0x32, 0xe8, 0xa2,
- 0x37, 0xbc, 0x3f, 0x68, 0xe5, 0x8f, 0x26, 0xab, 0xa7, 0xe9, 0x74, 0x85, 0xdc, 0xe4, 0xfa, 0xa4,
- 0x1c, 0x18, 0xab, 0xdf, 0x3c, 0xbe, 0x7e, 0x9d, 0x90, 0x31, 0x7f, 0x54, 0x70, 0xf3, 0x0e, 0x02,
- 0xb4, 0x88, 0xc6, 0x6f, 0x97, 0x05, 0xcf, 0x37, 0x7c, 0xdc, 0xc0, 0x8a, 0x95, 0x08, 0x5a, 0x1e,
- 0x4b, 0x13, 0x5e, 0xe9, 0xce, 0xb3, 0x2b, 0x0c, 0xf2, 0x30, 0x3d, 0x32, 0xef, 0x84, 0xc4, 0x2c,
- 0x7f, 0xec, 0x43, 0xef, 0x6d, 0x8d, 0xe1, 0x63, 0x41, 0x4f, 0xb5, 0xbe, 0x3f, 0x8b, 0xde, 0xa8,
- 0x78, 0xea, 0x19, 0xa8, 0x62, 0x43, 0x1f, 0xd5, 0x65, 0xd2, 0xda, 0xab, 0x23, 0xc7, 0x3c, 0x49,
- 0xcc, 0x62, 0xdf, 0xc7, 0xf5, 0x46, 0xd0, 0xe2, 0x19, 0x0e, 0x1a, 0x21, 0xb6, 0xcf, 0x66, 0x57,
- 0x81, 0xf7, 0xc5, 0xf2, 0xb7, 0x54, 0xe0, 0xa5, 0xc3, 0xd1, 0x1c, 0x01, 0x41, 0x5e, 0xa1, 0x3b,
- 0xac, 0xd5, 0x15, 0x99, 0xe2, 0xc4, 0xa3, 0xd8, 0xdc, 0xe6, 0x2c, 0xc2, 0xf5, 0x5c, 0x56, 0xdd,
- 0x98, 0x2a, 0x08, 0x9f, 0x41, 0xfa, 0x69, 0xb7, 0x6f, 0x99, 0xa4, 0x4e, 0x25, 0x53, 0x4c, 0x59,
- 0x56, 0x8b, 0xeb, 0xad, 0x71, 0x62, 0xb0, 0x6c, 0x6e, 0x73, 0x16, 0x61, 0x9b, 0x2e, 0x2b, 0x8f,
- 0x1e, 0xdb, 0x97, 0x2a, 0xf9, 0x60, 0x77, 0xa4, 0x88, 0xd5, 0xd7, 0x5a, 0x78, 0x41, 0x0f, 0x83,
- 0x30, 0xba, 0x65, 0x2f, 0xea, 0x41, 0xd8, 0x1d, 0x83, 0x74, 0x1b, 0x90, 0xc0, 0xa8, 0x18, 0x45,
- 0x14, 0x92, 0x5b, 0x8d, 0xae, 0x40, 0x5a, 0x79, 0xf0, 0x27, 0x9a, 0x6c, 0x50, 0x7e, 0x0a, 0x43,
- 0xc5, 0x68, 0x31, 0x0e, 0xe4, 0xd7, 0x11, 0xfb, 0x75, 0x6a, 0xab, 0x1e, 0x92, 0x1b, 0x83, 0xb7,
- 0x49, 0xd0, 0x62, 0x1c, 0x0b, 0x6d, 0x22, 0x35, 0xea, 0xd4, 0x95, 0x3c, 0xe7, 0x36, 0xc5, 0xad,
- 0xb0, 0xcd, 0xbe, 0x46, 0xde, 0x7a, 0xdd, 0x45, 0x4c, 0xd7, 0x53, 0x96, 0x85, 0xaf, 0x58, 0xdf,
- 0x70, 0x60, 0xe9, 0xfa, 0xf0, 0xbd, 0x3b, 0x31, 0x05, 0xc4, 0x3f, 0x93, 0x03, 0x4a, 0x38, 0x08,
- 0x0b, 0xc9, 0xd2, 0x3c, 0xd4, 0x4f, 0xc8, 0x20, 0x74, 0x80, 0x19, 0x31, 0x2c, 0x66, 0xe4, 0x61,
- 0xa6, 0x9c, 0xd9, 0x3e, 0xb5, 0xe4, 0x8e, 0x05, 0xa4, 0x14, 0x61, 0xf4, 0xdd, 0x63, 0x53, 0x1d,
- 0xaf, 0x96, 0x37, 0xf7, 0xa4, 0x75, 0x4f, 0x1c, 0xc8, 0x70, 0xd0, 0xcb, 0xf9, 0xb7, 0xb6, 0xfd,
- 0xa1, 0x9a, 0x83, 0x79, 0xba, 0x2a, 0x70, 0xb3, 0x80, 0x89, 0x0e, 0xe1, 0xc1, 0x2f, 0xb1, 0xfc,
- 0x17, 0xd1, 0x79, 0xe3, 0xe8, 0xf1, 0xb6, 0xbd, 0xe4, 0xb1, 0x66, 0x65, 0x5c, 0x95, 0xea, 0x63,
- 0xf5, 0xd2, 0x54, 0x21, 0x0e, 0x96, 0xc9, 0xe6, 0xf6, 0x1e, 0xb0, 0x8e, 0x52, 0xb3, 0x9b, 0xf2,
- 0xfd, 0x58, 0xa4, 0x73, 0x9c, 0x68, 0xed, 0x02, 0x96, 0x08, 0x55, 0xb6, 0x72, 0x3e, 0x9f, 0xb3,
- 0x3c, 0x75, 0xed, 0x54, 0x31, 0xc0, 0xee, 0x8b, 0xd3, 0x69, 0x6d, 0xb4, 0xf0, 0x82, 0x1e, 0xc5,
- 0xca, 0xe4, 0x9b, 0x1b, 0x79, 0xe7, 0xcb, 0xa9, 0x31, 0xe1, 0x21, 0x33, 0xae, 0xda, 0x65, 0x17,
- 0xa2, 0xd9, 0xa1, 0x17, 0xfc, 0x9b, 0x9c, 0x77, 0x94, 0x1f, 0xf2, 0xe8, 0xcd, 0xc4, 0x51, 0xdc,
- 0x4a, 0x93, 0x40, 0x72, 0x4d, 0xdc, 0xce, 0xf1, 0xfe, 0x42, 0x69, 0x35, 0xeb, 0xdd, 0x25, 0x8d,
- 0x0c, 0xcf, 0x88, 0x7b, 0xdb, 0x81, 0x36, 0x96, 0x50, 0x1d, 0x76, 0x24, 0x30, 0x2a, 0x06, 0x80,
- 0x18, 0x5d, 0xd3, 0xf6, 0x75, 0xc1, 0x6c, 0xef, 0xa0, 0x3a, 0xec, 0x48, 0x60, 0x54, 0x0c, 0xc3,
- 0xc3, 0xee, 0x75, 0xd2, 0x68, 0x76, 0x0a, 0xb0, 0x5d, 0x85, 0x90, 0x0c, 0x8a, 0x0e, 0x80, 0xf7,
- 0x47, 0xdc, 0xd6, 0x92, 0x15, 0x32, 0x1d, 0x9a, 0xa2, 0x2d, 0x4b, 0x16, 0xdf, 0xae, 0xc2, 0xac,
- 0x8f, 0xfb, 0x71, 0x7c, 0xa9, 0x0b, 0xdf, 0x0a, 0x8b, 0x28, 0xc2, 0x2b, 0x79, 0xc6, 0xa6, 0x3a,
- 0xf2, 0xd4, 0x0e, 0x66, 0x01, 0x58, 0x37, 0x50, 0xd2, 0x83, 0xdf, 0x9b, 0x4e, 0xff, 0x79, 0x13,
- 0xe0, 0xc0, 0x11, 0x37, 0x23, 0xb9, 0x76, 0x62, 0x0a, 0x4b, 0x7e, 0xe5, 0x06, 0x94, 0x70, 0x10,
- 0x3d, 0xf5, 0xf3, 0xcf, 0xb2, 0xaf, 0x0b, 0x76, 0xdf, 0x1b, 0x39, 0xb3, 0xf4, 0xdb, 0xff, 0x64,
- 0xaa, 0x53, 0x51, 0x45, 0x6e, 0x65, 0xb8, 0x93, 0xf4, 0x09, 0x17, 0xd0, 0xed, 0x49, 0x55, 0x9d,
- 0x57, 0x0b, 0xf5, 0x36, 0xf2, 0x0d, 0x55, 0x91, 0x62, 0x01, 0x42, 0x66, 0x9f, 0x77, 0xca, 0x2e,
- 0x87, 0x71, 0x81, 0x2e, 0x3b, 0xf5, 0xfb, 0xee, 0xeb, 0x3e, 0x27, 0x13, 0x59, 0x4b, 0xa2, 0x7b,
- 0xb6, 0x4b, 0xfa, 0x9a, 0x52, 0xdb, 0xc6, 0x0e, 0x64, 0x38, 0x68, 0x84, 0x9d, 0xba, 0x5b, 0x9f,
- 0xe3, 0x83, 0x33, 0x59, 0x65, 0x08, 0x9a, 0xa6, 0x1e, 0xdd, 0x82, 0xec, 0x0a, 0x7f, 0x90, 0x30,
- 0x23, 0x2e, 0x64, 0xe5, 0x4b, 0xcf, 0x7c, 0xd2, 0x57, 0xce, 0xee, 0xe9, 0x8c, 0x9a, 0xf0, 0xe7,
- 0x52, 0xce, 0x93, 0x84, 0x38, 0x1d, 0xa2, 0x1e, 0x5e, 0x78, 0x85, 0x7d, 0x8b, 0x89, 0x29, 0x4e,
- 0x8e, 0x7b, 0x6f, 0xe7, 0x2a, 0x64, 0x3a, 0xf7, 0x87, 0x5a, 0x96, 0x2c, 0x7d, 0x9f, 0x47, 0x9b,
- 0xdd, 0x35, 0xe2, 0xf8, 0x91, 0x16, 0x7d, 0x14, 0xd5, 0x50, 0x47, 0x56, 0xf2, 0x4f, 0x8f, 0x74,
- 0x2c, 0xa2, 0xce, 0xf0, 0xd6, 0xff, 0xa6, 0x80, 0x13, 0x45, 0x64, 0xc4, 0xb0, 0x5b, 0x16, 0x47,
- 0x50, 0x0d, 0xaf, 0x71, 0xfd, 0xc3, 0xab, 0x27, 0x46, 0x9c, 0x2d, 0x73, 0x83, 0x3b, 0x28, 0xcf,
- 0xec, 0x0f, 0x99, 0x4c, 0xf8, 0x38, 0x40, 0xf4, 0x5a, 0x56, 0x08, 0xc1, 0x36, 0xbe, 0x76, 0x90,
- 0x06, 0x86, 0x44, 0xdc, 0x8c, 0xa1, 0x1b, 0x4b, 0x28, 0xef, 0x3b, 0x12, 0x18, 0x15, 0x03, 0x40,
- 0x91, 0x20, 0xe6, 0x56, 0x50, 0x6b, 0xa8, 0xae, 0x03, 0xfd, 0x15, 0x71, 0x01, 0x87, 0xa9, 0xb9,
- 0xa3, 0x59, 0xbf, 0x8c, 0x7f, 0xf4, 0x79, 0x8a, 0x98, 0x6d, 0xa6, 0xef, 0xc9, 0x9d, 0xb0, 0x7d,
- 0xff, 0x9b, 0x98, 0x86, 0x59, 0xb6, 0xe4, 0x3b, 0x8e, 0xec, 0xfd, 0xb8, 0x7a, 0x8c, 0x9e, 0x32,
- 0x9c, 0x6f, 0x70, 0xb6, 0x08, 0x85, 0x7b, 0xc5, 0x5f, 0x92, 0x37, 0x52, 0x35, 0xf4, 0x4e, 0x98,
- 0x2b, 0xa4, 0x94, 0xb7, 0xd9, 0x31, 0x58, 0x36, 0x37, 0xd8, 0x0b, 0xd1, 0xac, 0x17, 0xf4, 0xa6,
- 0xc6, 0x2b, 0x13, 0x60, 0xa2, 0x66, 0xfd, 0x3f, 0x61, 0xfc, 0x57, 0x17, 0x9e, 0xf0, 0x63, 0x97,
- 0x39, 0xb0, 0x8b, 0xe6, 0xfb, 0xd0, 0x19, 0x04, 0xef, 0x10, 0xaa, 0xaf, 0xe4, 0x7c, 0xfd, 0xa5,
- 0x29, 0x67, 0xa8, 0x42, 0x1c, 0xef, 0x51, 0x0f, 0x2f, 0x3c, 0xa3, 0xdf, 0xa4, 0xa5, 0xf5, 0x27,
- 0x5b, 0xc4, 0x7d, 0x4d, 0x29, 0x8c, 0x63, 0x07, 0x32, 0x1c, 0x34, 0x42, 0xaf, 0x5d, 0xcc, 0xae,
- 0x90, 0xa0, 0xf8, 0xcd, 0xd3, 0x04, 0x4d, 0x53, 0x0f, 0x8f, 0x41, 0x76, 0x05, 0xde, 0x48, 0x18,
- 0x58, 0x87, 0x5f, 0x23, 0x6f, 0x3d, 0x8f, 0xc3, 0x26, 0x8a, 0xc8, 0x4b, 0xa3, 0xb6, 0x2c, 0x8e,
- 0xf1, 0x97, 0x2c, 0x08, 0x47, 0xe9, 0xdb, 0x94, 0xc6, 0x15, 0x23, 0x92, 0x42, 0x14, 0x99, 0x33,
- 0xdf, 0xf6, 0xde, 0x0d, 0x54, 0xc8, 0x74, 0x2d, 0xcd, 0xb4, 0xef, 0x58, 0xfa, 0xfd, 0x8e, 0xf5,
- 0x28, 0xe7, 0xb6, 0xd9, 0x9f, 0x80, 0xb4, 0xf2, 0x23, 0x4e, 0xf7, 0xd8, 0xa0, 0xfc, 0x14, 0x86,
- 0x60, 0xb7, 0xca, 0x5e, 0x17, 0x82, 0x73, 0x3a, 0xc5, 0xe8, 0x36, 0xe3, 0x43, 0x93, 0x30, 0x8a,
- 0x79, 0x6a, 0x07, 0x33, 0xe1, 0x2c, 0xfa, 0x28, 0x69, 0xa0, 0x8e, 0xac, 0x27, 0x9e, 0xdd, 0xe8,
- 0x76, 0xe6, 0xad, 0x26, 0x7c, 0x1c, 0x20, 0x7a, 0x2d, 0x2b, 0x04, 0x81, 0x1b, 0x5f, 0x3b, 0x48,
- 0x03, 0x43, 0x22, 0x6e, 0x46, 0xb1, 0xec, 0xc4, 0x14, 0x96, 0xfc, 0x09, 0x0c, 0xeb, 0xe0, 0x20,
- 0xc8, 0x27, 0xa7, 0xee, 0xbc, 0x39, 0xc2, 0x90, 0x29, 0x05, 0x89, 0x3d, 0xa6, 0x68, 0x64, 0x96,
- 0x02, 0xc3, 0x3c, 0xf5, 0xc5, 0xde, 0x09, 0x39, 0x18, 0xe4, 0xa8, 0x0e, 0x08, 0xb2, 0x01, 0x81,
- 0x12, 0x14, 0x1f, 0x51, 0x22, 0xe1, 0x41, 0x32, 0xd8, 0xc8, 0xa1, 0x7e, 0x48, 0x6b, 0x09, 0x03,
- 0xef, 0x4c, 0xbb, 0x22, 0xbe, 0x89, 0xac, 0x30, 0x4e, 0xc0, 0xf4, 0xc8, 0x3a, 0x55, 0x96, 0xb0,
- 0x46, 0x5c, 0xc8, 0x09, 0x96, 0x5d, 0xf8, 0x67, 0xae, 0x5f, 0x1f, 0x11, 0xdb, 0xf7, 0x23, 0x0d,
- 0x51, 0x8d, 0xb1, 0xea, 0x7e, 0xac, 0x4e, 0xda, 0x4a, 0xee, 0x79, 0x74, 0x87, 0x62, 0xc9, 0x6e,
- 0xdb, 0xb3, 0xa6, 0x24, 0x1d, 0xb7, 0x66, 0x5f, 0xfd, 0xbf, 0x7c, 0x44, 0xea, 0x5a, 0x8c, 0x34,
- 0x74, 0x25, 0x91, 0xd3, 0xb9, 0xc2, 0x29, 0x43, 0x35, 0xcf, 0xac, 0x8f, 0x13, 0xed, 0x3a, 0xc9,
- 0x0f, 0x8c, 0xaa, 0x15, 0x9d, 0x30, 0xda, 0x52, 0x44, 0x8b, 0x8a, 0x2d, 0x3c, 0xc1, 0xe6, 0xa0,
- 0xc1, 0x2d, 0x49, 0x27, 0xad, 0xa8, 0x03, 0x89, 0x45, 0x61, 0x38, 0x02, 0x82, 0xbc, 0x81, 0x76,
- 0x8d, 0x38, 0x4d, 0x89, 0x6c, 0xd5, 0xd6, 0x33, 0x93, 0xcc, 0x6a, 0x25, 0x71, 0x74, 0xa7, 0xbb,
- 0x68, 0x3d, 0x3a, 0x0c, 0x85, 0x7c, 0x57, 0xde, 0xa5, 0xfe, 0xd3, 0xdb, 0x63, 0x1e, 0x34, 0xcb,
- 0xb7, 0xcb, 0xe4, 0x01, 0xd1, 0xb4, 0x23, 0xf3, 0x68, 0x4a, 0x3c, 0x83, 0x99, 0xe3, 0xba, 0x3e,
- 0x0e, 0x0c, 0xb4, 0x8e, 0x1e, 0x5f, 0x3f, 0xaf, 0x48, 0xf9, 0xde, 0x2a, 0x38, 0x98, 0x07, 0x01,
- 0x5d, 0x42, 0x39, 0x91, 0xa5, 0x2d, 0x78, 0x4c, 0x1a, 0xf3, 0x0f, 0x50, 0xb7, 0x48, 0xcf, 0xee,
- 0xe2, 0x03, 0x2d, 0xc2, 0xe6, 0x67, 0x7f, 0x5b, 0x12, 0xaf, 0xd6, 0xeb, 0x0e, 0x26, 0x71, 0x91,
- 0xc0, 0xad, 0x57, 0xbc, 0x2e, 0xc7, 0xe6, 0x74, 0x49, 0x13, 0x6c, 0x05, 0x86, 0xe5, 0x60, 0xd7,
- 0x96, 0x26, 0xbc, 0x11, 0x5f, 0xa5, 0x56, 0x18, 0x27, 0x60, 0x7a, 0x64, 0x1d, 0xcb, 0x4b, 0x58,
- 0xad, 0x55, 0x0b, 0x02, 0x61, 0xab, 0x46, 0x25, 0xd0, 0x94, 0x78, 0xc5, 0xf1, 0x05, 0xb7, 0x7c,
- 0x01, 0x80, 0x1e, 0x9b, 0x83, 0x6f, 0xe5, 0xfd, 0x0c, 0x72, 0x54, 0x07, 0x04, 0x59, 0xe1, 0xa1,
- 0x24, 0x28, 0x3e, 0xa2, 0x44, 0x01, 0x82, 0x64, 0x73, 0x53, 0x81, 0xfc, 0x90, 0xd6, 0x12, 0x06,
- 0xe8, 0x4a, 0xe1, 0x65, 0xb1, 0x47, 0x52, 0x86, 0x6a, 0x5d, 0x9b, 0xdd, 0x26, 0x19, 0x74, 0x51,
- 0x8c, 0xb8, 0x53, 0x12, 0xef, 0xba, 0x33, 0xce, 0x9f, 0xbe, 0x3e, 0x22, 0x75, 0x2d, 0x46, 0x1a,
- 0xf3, 0x54, 0x10, 0xfd, 0x82, 0x37, 0xd2, 0xad, 0xde, 0xf1, 0x8b, 0x9c, 0x4a, 0xa6, 0x98, 0xb2,
- 0xa7, 0x1c, 0xc7, 0xa5, 0x36, 0x8b, 0x6b, 0xf8, 0xa8, 0x66, 0x35, 0xf3, 0xd9, 0x3a, 0xb2, 0xbc,
- 0x34, 0xff, 0x1d, 0x06, 0xa3, 0x3e, 0xca, 0x6f, 0xb3, 0x7f, 0x88, 0x8c, 0xd0, 0x0f, 0x1a, 0x84,
- 0xe6, 0x46, 0x55, 0xeb, 0xaf, 0x18, 0x6d, 0x29, 0x22, 0xa4, 0x45, 0xf7, 0x1e, 0x81, 0x73, 0x50,
- 0x48, 0x50, 0x7c, 0x87, 0x88, 0x02, 0xc7, 0xc8, 0xe6, 0xa6, 0xc1, 0x3b, 0xe3, 0x6f, 0x24, 0x0c,
- 0xba, 0x84, 0x72, 0xe1, 0x89, 0x5a, 0xf0, 0x98, 0x34, 0x25, 0x1e, 0xa0, 0xad, 0x90, 0x5d, 0x1f,
- 0x07, 0x06, 0x5a, 0x47, 0x0f, 0xce, 0xfe, 0xb6, 0x24, 0x9d, 0x6f, 0x15, 0x1c, 0x4c, 0xe2, 0xe1,
- 0xfc, 0xd8, 0xba, 0xe8, 0x1f, 0x07, 0x08, 0xff, 0x9a, 0x7a, 0x01, 0xb1, 0x76, 0x67, 0x7e, 0x12,
- 0x4d, 0x95, 0x1a, 0x35, 0x42, 0x12, 0x30, 0x47, 0xda, 0xdf, 0x06, 0x20, 0xf7, 0x91, 0xc7, 0x6c,
- 0x19, 0xdd, 0xcd, 0x6d, 0xf6, 0xae, 0x89, 0x12, 0xac, 0x48, 0xb8, 0x4f, 0x64, 0x0d, 0xed, 0x62,
- 0x42, 0x19, 0xb0, 0x20, 0xdf, 0x22, 0xea, 0x15, 0x9e, 0x54, 0x8c, 0x0d, 0xcb, 0x50, 0x21, 0xcc,
- 0x75, 0xa5, 0x8f, 0x48, 0x3a, 0xad, 0xcc, 0xbe, 0x39, 0xbd, 0xf8, 0x88, 0x17, 0xb4, 0xdb, 0x68,
- 0x4c, 0x15, 0x04, 0xae, 0xc1, 0x7d, 0xd5, 0xba, 0xd6, 0xad, 0x52, 0x27, 0xf3, 0xc8, 0x26, 0xcd,
- 0xa9, 0x10, 0x73, 0x2b, 0x28, 0xd4, 0x54, 0x57, 0xe0, 0x9f, 0xeb, 0xd9, 0xe1, 0xa2, 0xb5, 0xbd,
- 0x82, 0xb4, 0xe7, 0x9c, 0xf1, 0xe5, 0x0c, 0x61, 0xd7, 0x47, 0xe0, 0x08, 0x4d, 0xb5, 0x41, 0x1b,
- 0xf7, 0x11, 0x68, 0xd4, 0xcb, 0x48, 0xc0, 0xdf, 0xee, 0xfa, 0x18, 0x80, 0x5a, 0x01, 0x9a, 0x73,
- 0x08, 0x8a, 0xf0, 0x52, 0x92, 0xfe, 0x24, 0xe4, 0x60, 0x16, 0xe5, 0x38, 0x20, 0x8d, 0x04, 0x41,
- 0x4f, 0x56, 0x26, 0xc0, 0x87, 0xcc, 0x39, 0x7e, 0xc2, 0x3b, 0xae, 0x2e, 0xff, 0x23, 0xc6, 0xed,
- 0x10, 0xd7, 0x23, 0xa4, 0xe7, 0x3f, 0x48, 0x0b, 0xc0, 0x2c, 0x09, 0x70, 0x40, 0xd9, 0x08, 0x82,
- 0x3b, 0x73, 0xb7, 0x13, 0x3e, 0x0e, 0x10, 0x3d, 0xf7, 0xf4, 0x02, 0xa1, 0xec, 0xce, 0xfc, 0x24,
- 0xcb, 0x64, 0x85, 0x80, 0xfa, 0x88, 0x2e, 0x54, 0x3d, 0x93, 0x75, 0x34, 0xaa, 0x83, 0x84, 0xb6,
- 0x20, 0x6d, 0x46, 0x8b, 0x0d, 0x7e, 0x90, 0x16, 0x43, 0x58, 0x12, 0xe0, 0x80, 0x71, 0x10, 0xc7,
- 0x63, 0xf4, 0xe8, 0x30, 0x51, 0x33, 0x9f, 0xfe, 0xd1, 0x7e, 0xca, 0xea, 0x4f, 0x78, 0xd0, 0xaa,
- 0x73, 0x23, 0xcb, 0x94, 0xb6, 0x0c, 0xd7, 0xf5, 0x11, 0x52, 0xc3, 0x9a, 0x0f, 0xa1, 0xd8, 0x28,
- 0xed, 0x8f, 0x87, 0xd7, 0x7b, 0x57, 0xa5, 0x09, 0x56, 0x24, 0x5c, 0xc6, 0x32, 0xe7, 0x97, 0x31,
- 0xea, 0x89, 0xdd, 0x90, 0x74, 0x99, 0x5b, 0xbf, 0x72, 0xb9, 0x33, 0xd3, 0x2e, 0xab, 0x75, 0xd0,
- 0xc9, 0xa7, 0xb9, 0x75, 0x3f, 0x56, 0x27, 0x6d, 0x25, 0x77, 0xdd, 0x3a, 0xa2, 0x31, 0x85, 0x37,
- 0x32, 0x79, 0x59, 0xda, 0x2f, 0x9f, 0xd1, 0x24, 0x9b, 0x90, 0xb3, 0x9e, 0xc8, 0x1a, 0x19, 0xc4,
- 0x84, 0x32, 0xa3, 0x40, 0x7d, 0x44, 0x17, 0x2a, 0xff, 0xa8, 0xdb, 0x1a, 0x55, 0xa0, 0x42, 0x5b,
- 0x53, 0x4e, 0x8d, 0x1f, 0xbb, 0x72, 0x47, 0xe3, 0x52, 0x0a, 0xd1, 0x7a, 0x8f, 0xd0, 0xc8, 0xef,
- 0x04, 0x45, 0x78, 0x29, 0x49, 0x7f, 0x12, 0x72, 0x30, 0x0b, 0x93, 0x1c, 0x10, 0xa7, 0x02, 0xc1,
- 0x7c, 0xaf, 0x61, 0x81, 0x2b, 0x3c, 0x0d, 0xa7, 0x55, 0xd9, 0x49, 0xb7, 0x33, 0x60, 0x3e, 0x88,
- 0x41, 0x5a, 0x92, 0x4e, 0x99, 0x93, 0x06, 0xd1, 0x8a, 0xc2, 0x70, 0x04, 0xc7, 0xbb, 0xc1, 0xec,
- 0x27, 0x6b, 0x1c, 0xcc, 0x02, 0xb0, 0x6e, 0xa0, 0x67, 0xc5, 0x7d, 0xf5, 0x9c, 0x3d, 0xf2, 0x26,
- 0x55, 0xc8, 0xc9, 0xc3, 0x37, 0xd3, 0x5c, 0xa8, 0x7a, 0xe5, 0xea, 0x68, 0x97, 0xc5, 0xcb, 0xaf,
- 0xcf, 0x21, 0xfd, 0xa9, 0xb3, 0xf7, 0x3c, 0x26, 0x0d, 0x98, 0xe6, 0x28, 0xba, 0x24, 0x86, 0x77,
- 0x71, 0xe0, 0xf7, 0x61, 0x73, 0xd2, 0xde, 0xcc, 0x09, 0xb6, 0x6b, 0x94, 0x07, 0x13, 0xd9, 0xa9,
- 0x11, 0x57, 0x3d, 0x3f, 0x64, 0x50, 0xad, 0xf6, 0xcc, 0x5e, 0x5d, 0x77, 0x44, 0x80, 0xe9, 0x23,
- 0x97, 0xa6, 0xa2, 0x8a, 0xdc, 0xca, 0xb3, 0xe5, 0x2b, 0x12, 0x2e, 0x63, 0x19, 0x92, 0xaa, 0xf9,
- 0xd9, 0x70, 0x9a, 0xd1, 0xd8, 0x69, 0x6f, 0x66, 0xe5, 0x5b, 0xd4, 0x4a, 0xe2, 0xe8, 0x8d, 0xb5,
- 0xd0, 0x7a, 0x74, 0x18, 0xc9, 0xf8, 0xae, 0x7f, 0x89, 0x3f, 0x65, 0x75, 0xc6, 0x3c, 0x68, 0x55,
- 0xa8, 0x90, 0x6d, 0xb0, 0xab, 0xbb, 0xb1, 0xaa, 0xec, 0xed, 0xbf, 0xde, 0xe5, 0xfb, 0x54, 0x1c,
- 0x1b, 0x1e, 0xf1, 0x98, 0x33, 0x70, 0x80, 0x2b, 0xb4, 0xac, 0x10, 0x41, 0x6c, 0xbf, 0xec, 0xe3,
- 0x16, 0x51, 0x67, 0x78, 0x6b, 0x9e, 0x53, 0x40, 0xe8, 0xc3, 0x32, 0x62, 0x58, 0xcc, 0x0b, 0xc2,
- 0x6c, 0x78, 0x42, 0x25, 0xcc, 0x03, 0x45, 0xac, 0x95, 0xf5, 0x40, 0xc7, 0x73, 0xb9, 0x36, 0x0a,
- 0x2f, 0xe1, 0xec, 0x9e, 0x90, 0x4e, 0x4a, 0x44, 0x07, 0xd3, 0x98, 0xcd, 0xbc, 0xb0, 0xf6, 0x67,
- 0x45, 0x1f, 0xea, 0x67, 0xd0, 0xec, 0x14, 0xa3, 0xba, 0xc9, 0xe3, 0x18, 0xd7, 0x1c, 0xc3, 0x2d,
- 0x33, 0xf9, 0x47, 0x41, 0xac, 0xf0, 0x34, 0xd9, 0x97, 0xe2, 0xe7, 0x99, 0xcc, 0x43, 0xf8, 0x65,
- 0x1d, 0x98, 0xb5, 0x44, 0xbf, 0xd1, 0x9b, 0x60, 0x9c, 0x43, 0x2b, 0x53, 0x74, 0xaa, 0xef, 0xa3,
- 0xfe, 0x1b, 0x86, 0x1d, 0xda, 0xd9, 0x01, 0xc6, 0x82, 0x9e, 0xa9, 0xbf, 0x7e, 0xd5, 0x7f, 0x93,
- 0x7a, 0x29, 0x25, 0x5d, 0xa7, 0x9d, 0x16, 0xec, 0x7d, 0x36, 0x72, 0xa5, 0x2b, 0x75, 0x3d, 0xc8,
- 0x64, 0xf2, 0xb2, 0x77, 0x5e, 0xfd, 0x61, 0x48, 0xf5, 0xe3, 0xa5, 0xff, 0x53, 0x34, 0x32, 0x4b,
- 0xb3, 0x8e, 0x9c, 0x28, 0x98, 0xcb, 0x31, 0x81, 0x58, 0x41, 0xaf, 0x9f, 0x89, 0x44, 0xb8, 0xff,
- 0x1f, 0x5b, 0x89, 0xb1, 0x7a, 0x0f, 0x92, 0x59, 0x84, 0xa7, 0x83, 0x5d, 0x7c, 0x18, 0xee, 0x22,
- 0x2e, 0x61, 0xf2, 0x05, 0x13, 0x21, 0xaf, 0xb9, 0x0b, 0xa1, 0xcc, 0xca, 0xb8, 0xe9, 0x17, 0xc6,
- 0xe4, 0x85, 0x69, 0x1e, 0x6a, 0xc6, 0x64, 0x10, 0x3a, 0x40, 0xed, 0xf9, 0x16, 0x33, 0x72, 0xd1,
- 0x6a, 0xfe, 0x06, 0xf9, 0x40, 0xa2, 0x5e, 0xe7, 0xbd, 0x1a, 0x7b, 0xd5, 0x6b, 0xac, 0x35, 0x4a,
- 0x7d, 0x2f, 0x7f, 0x1a, 0xa8, 0x53, 0xe8, 0x5a, 0x59, 0xab, 0x1d, 0xb0, 0x37, 0x39, 0xdf, 0x29,
- 0xd8, 0xf0, 0x84, 0x4a, 0x5b, 0x06, 0x8a, 0x9b, 0xe9, 0x29, 0x80, 0x4d, 0xe6, 0xb1, 0x6c, 0x14,
- 0xc2, 0x6e, 0x6b, 0x49, 0xeb, 0x19, 0xef, 0x4d, 0x51, 0xf7, 0xc4, 0x0b, 0x8e, 0x57, 0x61, 0x56,
- 0x36, 0x3c, 0x21, 0xf3, 0x66, 0xe0, 0xc3, 0x56, 0xab, 0x9b, 0x20, 0x82, 0xd8, 0xbd, 0x1b, 0x05,
- 0xf8, 0x9d, 0xc2, 0xc1, 0x56, 0x78, 0x1a, 0x8d, 0xaa, 0x71, 0x92, 0xad, 0x66, 0xc0, 0x7c, 0xd3,
- 0x26, 0xeb, 0x02, 0x57, 0x81, 0xdf, 0x8b, 0x5d, 0x6b, 0xb7, 0x29, 0xf2, 0x98, 0x64, 0x13, 0x87,
- 0x3f, 0x36, 0xcf, 0x3a, 0x77, 0x71, 0x02, 0x4f, 0xc7, 0xff, 0x91, 0xbd, 0xfc, 0x69, 0xfe, 0xe5,
- 0x0a, 0x49, 0xcc, 0xa7, 0x57, 0x20, 0x2d, 0xdd, 0x78, 0xf2, 0x4d, 0x36, 0x28, 0x3f, 0x05, 0xc0,
- 0x9f, 0x2c, 0x52, 0xd8, 0x4e, 0x34, 0x97, 0x01, 0x4b, 0x04, 0xcb, 0x5b, 0x39, 0x1f, 0xae, 0xb8,
- 0xf4, 0x52, 0x4a, 0xba, 0x8d, 0xf9, 0x2c, 0x1b, 0xfa, 0x6c, 0xe4, 0x89, 0x56, 0xea, 0x7a, 0x53,
- 0x1a, 0x9e, 0xef, 0x03, 0xb0, 0x1f, 0x65, 0xd6, 0xb8, 0xde, 0x44, 0x46, 0x68, 0xe6, 0x0d, 0x42,
- 0xa5, 0xdf, 0xfb, 0x50, 0xf3, 0x55, 0x62, 0xc1, 0xb0, 0x82, 0x9d, 0xfd, 0xd1, 0x88, 0xb3, 0x3d,
- 0x61, 0x37, 0xd4, 0xc5, 0x94, 0xed, 0x96, 0xc7, 0xc9, 0x9a, 0x62, 0xe4, 0x47, 0xca, 0xd1, 0x2b,
- 0x35, 0x7f, 0x03, 0x9d, 0x20, 0x51, 0x2f, 0x92, 0xbf, 0x0d, 0xdc, 0x8b, 0xd4, 0x56, 0xfb, 0x25,
- 0x7b, 0xa9, 0x3b, 0xc6, 0x24, 0xf2, 0xf3, 0x11, 0x71, 0x44, 0x26, 0xa2, 0x2f, 0x2c, 0xdc, 0x69,
- 0xde, 0x76, 0xc0, 0x96, 0xd7, 0xa7, 0x91, 0xd0, 0xc1, 0xc6, 0xbb, 0x5f, 0xfe, 0xa4, 0x6f, 0x54,
- 0xb5, 0x08, 0xd8, 0xf4, 0x14, 0x6a, 0x2a, 0xca, 0x70, 0xae, 0x94, 0x8d, 0x91, 0x51, 0xbb, 0xbf,
- 0xda, 0x33, 0xb8, 0xbf, 0x9e, 0xd8, 0x83, 0xa2, 0xf1, 0xcd, 0x28, 0x43, 0xee, 0x03, 0x6d, 0x95,
- 0xbc, 0x02, 0x36, 0x3d, 0x05, 0xfb, 0xeb, 0xd3, 0x1c, 0xca, 0x25, 0xb2, 0xb5, 0x85, 0x5e, 0x5f,
- 0xd7, 0x7c, 0x2e, 0x5f, 0xc6, 0x36, 0x50, 0xc9, 0xad, 0xa2, 0x0a, 0x60, 0xda, 0x70, 0x8a, 0xb4,
- 0xab, 0xd3, 0x4f, 0xde, 0xed, 0x0a, 0x5d, 0x6e, 0xf8, 0x7b, 0x43, 0xd7, 0xe9, 0x10, 0xb4, 0x3c,
- 0x22, 0xae, 0x7a, 0x7e, 0xc8, 0xa0, 0x99, 0x2f, 0x5b, 0xbc, 0xba, 0xee, 0x88, 0xc3, 0x11, 0x46,
- 0x66, 0x31, 0x8e, 0x82, 0x9b, 0x23, 0x68, 0x71, 0xed, 0x07, 0x0d, 0xf1, 0x5b, 0x86, 0x33, 0xca,
- 0x3a, 0xf3, 0xa9, 0x88, 0xbd, 0x61, 0xf5, 0xc0, 0xfb, 0x86, 0x56, 0xa6, 0xe8, 0x97, 0x1d, 0x85,
- 0x9a, 0xe9, 0x34, 0x6a, 0x84, 0x24, 0x60, 0x8e, 0x77, 0x7d, 0x0c, 0x40, 0x2d, 0xe1, 0x4d, 0xd8,
- 0x6b, 0x7e, 0x18, 0x62, 0xc3, 0xcd, 0xbb, 0x1a, 0xb1, 0x68, 0x2f, 0xd2, 0x6f, 0xf5, 0xd4, 0xeb,
- 0x05, 0xc5, 0x66, 0xb2, 0xca, 0x10, 0xf7, 0x8f, 0x3c, 0x79, 0xc7, 0x1b, 0x14, 0xfe, 0xe3, 0x60,
- 0x6f, 0x3b, 0x60, 0x4b, 0x8a, 0xb2, 0xa9, 0x68, 0x81, 0x63, 0xbc, 0xce, 0x7f, 0x52, 0xd6, 0x2a,
- 0x80, 0x77, 0xdb, 0x69, 0x34, 0x3b, 0x05, 0x58, 0xcf, 0xa3, 0x48, 0x06, 0x45, 0x07, 0x40, 0x9a,
- 0x5c, 0xc2, 0x27, 0x0a, 0x26, 0x42, 0x9d, 0xb1, 0x16, 0x81, 0x5b, 0x57, 0xb3, 0x11, 0x2e, 0x4f,
- 0xfb, 0xde, 0xe0, 0xaf, 0x10, 0xc9, 0xf6, 0x49, 0xbe, 0xe7, 0x6e, 0xa4, 0x6a, 0x2b, 0x9c, 0xf3,
- 0x89, 0x7d, 0x35, 0xa0, 0x25, 0xaa, 0xc4, 0x41, 0xa3, 0xc7, 0xf9, 0x39, 0x61, 0xd3, 0xa5, 0x7a,
- 0x5e, 0x01, 0x1b, 0xff, 0xe3, 0x9c, 0x94, 0x88, 0x0e, 0x65, 0xf3, 0x59, 0xbb, 0xa3, 0x2f, 0xce,
- 0x8a, 0x3e, 0x17, 0xce, 0x63, 0x1b, 0x28, 0x85, 0xb7, 0x51, 0x05, 0x30, 0x6d, 0x38, 0x45, 0x5a,
- 0xbb, 0x04, 0x6c, 0x7a, 0x0a, 0x35, 0x15, 0x65, 0x38, 0x57, 0x4a, 0xa7, 0xa9, 0xc9, 0xbc, 0xbe,
- 0x6d, 0xf8, 0x5c, 0xbe, 0x4f, 0x6c, 0xa0, 0x51, 0x99, 0x87, 0x14, 0xc0, 0x77, 0xe0, 0xd7, 0xab,
- 0x9d, 0xef, 0x6e, 0x2d, 0x8b, 0xea, 0x9e, 0x38, 0x53, 0xe0, 0x63, 0x55, 0x31, 0xad, 0xaf, 0x39,
- 0x25, 0xa8, 0x20, 0x39, 0xc7, 0x6e, 0x67, 0x99, 0x7f, 0x21, 0xd5, 0xfb, 0x94, 0x8f, 0xf3, 0xa7,
- 0xc4, 0xe8, 0x2f, 0x95, 0x67, 0xb8, 0xf4, 0x06, 0x79, 0x18, 0xff, 0x19, 0x96, 0x42, 0x62, 0x16,
- 0x15, 0x12, 0x45, 0x16, 0x2d, 0x2f, 0xbf, 0x84, 0xfc, 0x55, 0xce, 0x6b, 0x54, 0x27, 0xeb, 0xe2,
- 0x85, 0xb2, 0xbd, 0xdb, 0xfe, 0x2b, 0xf2, 0xd7, 0xf3, 0xda, 0x8f, 0x1d, 0x51, 0xf9, 0xa3, 0xfa,
- 0xd6, 0xfc, 0x30, 0xc4, 0x45, 0x59, 0xb5, 0x34, 0xa1, 0xd0, 0x5e, 0x67, 0xde, 0x29, 0x6b, 0x15,
- 0xe1, 0x40, 0x0f, 0xac, 0xa0, 0xd6, 0x93, 0x9f, 0x06, 0x39, 0x2a, 0xe2, 0x02, 0xcd, 0x91, 0xb1,
- 0xd4, 0x3f, 0x0c, 0x31, 0x80, 0x87, 0xbc, 0x0d, 0xb9, 0x34, 0xf6, 0x69, 0xd6, 0x9b, 0x6a, 0x94,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xd1, 0xfa, 0x6a, 0x83, 0x4a, 0x97, 0x4b, 0x82, 0x85, 0x4d, 0x31, 0x72, 0xc2, 0x65, 0x89, 0xf4,
- 0x7e, 0x6c, 0x5d, 0x74, 0xee, 0xe2, 0x04, 0x9e, 0x4d, 0x3d, 0xe1, 0xb9, 0x3b, 0xd2, 0x3f, 0x09,
- 0xb8, 0x47, 0x4e, 0x14, 0x4c, 0x84, 0xf9, 0xa1, 0x2c, 0xc1, 0xb6, 0xae, 0xa5, 0x22, 0x5c, 0x9e,
- },
- { /* 9 */
- 0xa5, 0x55, 0xa4, 0x90, 0xc6, 0x8d, 0x2f, 0xd5, 0x71, 0x80, 0x04, 0x89, 0xcb, 0x72, 0x1b, 0x5d,
- 0x2d, 0x90, 0x75, 0x4e, 0x36, 0xf9, 0x9f, 0x17, 0x62, 0x87, 0xa3, 0x5a, 0x48, 0x8a, 0xa4, 0x15,
- 0x32, 0x9f, 0x4c, 0x80, 0x9d, 0x5f, 0xd4, 0xf3, 0xbf, 0x6c, 0x3b, 0x64, 0xae, 0x3d, 0x18, 0xe9,
- 0x8f, 0x0b, 0x94, 0x6d, 0x4b, 0xb1, 0x7f, 0x15, 0x81, 0x1e, 0x6c, 0xdd, 0xe4, 0xac, 0x86, 0xd3,
- 0x0e, 0x5f, 0x8a, 0xa5, 0xb5, 0x49, 0x5d, 0x6d, 0xe7, 0x32, 0x55, 0x1c, 0xce, 0xa8, 0x72, 0xf5,
- 0x30, 0x41, 0xf8, 0xfa, 0x20, 0xc6, 0xcb, 0x66, 0x9e, 0x27, 0xa6, 0x60, 0xc1, 0x05, 0xc9, 0xce,
- 0x38, 0xbf, 0x6d, 0xd1, 0x91, 0xe7, 0xb7, 0x77, 0x1a, 0xc8, 0x97, 0x70, 0xbe, 0xe5, 0x0b, 0x52,
- 0xc0, 0xc7, 0x66, 0x6e, 0x80, 0x9e, 0xaa, 0x5b, 0x3d, 0x9c, 0xdd, 0x43, 0x82, 0x14, 0xa2, 0xbe,
- 0x54, 0xbc, 0x60, 0x39, 0xd9, 0x78, 0xa0, 0x43, 0x23, 0xff, 0xd0, 0xa8, 0x5e, 0x7f, 0xf9, 0xdf,
- 0xe6, 0x18, 0x68, 0x4c, 0x05, 0x72, 0xb8, 0x63, 0x0b, 0x7b, 0x7d, 0x0f, 0x0c, 0x5a, 0x9c, 0xe2,
- 0x9e, 0x5b, 0x27, 0x06, 0x55, 0x5e, 0x69, 0x9c, 0xbb, 0xc7, 0xa1, 0xff, 0xcc, 0xb3, 0x48, 0xda,
- 0x39, 0xd0, 0x37, 0xec, 0x2e, 0x4a, 0x59, 0xdc, 0xeb, 0x0c, 0x38, 0x72, 0x68, 0xf9, 0x82, 0xa0,
- 0x55, 0xd3, 0x3a, 0x04, 0x66, 0xd5, 0x4e, 0xe8, 0xd2, 0x3b, 0x7f, 0xaa, 0x88, 0x63, 0x70, 0x2d,
- 0x7e, 0xe2, 0x50, 0xc4, 0x54, 0x44, 0xf0, 0x83, 0xd3, 0x61, 0xb8, 0xfc, 0x71, 0xa1, 0x64, 0x51,
- 0x52, 0x1d, 0x7f, 0xb7, 0xdd, 0x10, 0x81, 0x3f, 0x40, 0x22, 0xb4, 0xa4, 0xef, 0x37, 0x49, 0xb6,
- 0x91, 0x6b, 0xf7, 0x9e, 0x5f, 0xba, 0xda, 0x5a, 0xad, 0x31, 0x5b, 0xe1, 0xd4, 0x07, 0xb3, 0xdd,
- 0x64, 0xfd, 0x98, 0xc3, 0xf9, 0xbe, 0x6b, 0x25, 0xbd, 0xd8, 0x76, 0xc8, 0x9f, 0x7a, 0x30, 0x11,
- 0x03, 0xb1, 0xee, 0x47, 0x02, 0x34, 0xf1, 0x3e, 0xd0, 0x8f, 0x32, 0x06, 0xb9, 0x24, 0x58, 0xd5,
- 0x57, 0x0d, 0x8e, 0x7e, 0xdb, 0x4c, 0x51, 0x7d, 0xf3, 0x70, 0xe2, 0xae, 0xe7, 0x5b, 0xa1, 0x0a,
- 0x5a, 0xe3, 0xea, 0x9c, 0x6c, 0x31, 0xfd, 0x2e, 0xc4, 0xcd, 0x85, 0xb4, 0x90, 0xd7, 0x8b, 0x2a,
- 0x1c, 0xbe, 0xd7, 0x89, 0xa9, 0x92, 0xba, 0xda, 0x0d, 0x64, 0xaa, 0x38, 0x5f, 0x93, 0xe4, 0x29,
- 0x60, 0x82, 0x33, 0x37, 0x40, 0x4f, 0x55, 0xcc, 0xff, 0x4e, 0x8f, 0xc0, 0x41, 0x0a, 0x51, 0x5f,
- 0x07, 0xce, 0x45, 0xb3, 0xbb, 0xc5, 0xcf, 0xd7, 0x92, 0x19, 0xcb, 0x0e, 0x67, 0x54, 0x39, 0x9b,
- 0x18, 0xc1, 0x7c, 0x7d, 0x10, 0x63, 0x84, 0x33, 0x4f, 0xf2, 0x53, 0x30, 0x81, 0xe3, 0x85, 0x67,
- 0x21, 0x11, 0x4b, 0x91, 0x3e, 0x29, 0xdd, 0xef, 0xa4, 0xfe, 0x6b, 0x42, 0xe9, 0x1a, 0x07, 0xc7,
- 0x72, 0x63, 0x6e, 0x1b, 0x5c, 0x94, 0xb2, 0x7b, 0x15, 0x18, 0x70, 0xe4, 0xd0, 0x31, 0xc7, 0x83,
- 0xa8, 0xbb, 0xc0, 0x72, 0x71, 0xf0, 0x83, 0x86, 0x46, 0x3d, 0x63, 0x93, 0xbc, 0xfe, 0x31, 0x7d,
- 0xd1, 0x97, 0xd5, 0x05, 0x9e, 0x71, 0xbc, 0xd2, 0x07, 0x45, 0x10, 0x61, 0xaa, 0x0b, 0x6c, 0xb7,
- 0x29, 0xef, 0xde, 0xba, 0x8f, 0x08, 0xa1, 0xfe, 0x20, 0x11, 0x5a, 0x52, 0x96, 0xfa, 0xc5, 0x5b,
- 0xc6, 0x66, 0x79, 0xe0, 0x84, 0xf6, 0x8b, 0x27, 0x5e, 0x41, 0xb9, 0x4f, 0x33, 0x5c, 0x12, 0xd7,
- 0xa4, 0x3a, 0xfe, 0xad, 0x79, 0x20, 0xc1, 0x7e, 0x80, 0x44, 0xab, 0x8b, 0x1d, 0x6e, 0x92, 0xaf,
- 0x3f, 0x71, 0x28, 0x62, 0x2a, 0x22, 0x78, 0xa0, 0x88, 0xd1, 0x5c, 0x7e, 0xd9, 0xb1, 0x32, 0xc9,
- 0xe0, 0xb9, 0x77, 0xc2, 0x01, 0x1a, 0x99, 0x1f, 0x68, 0xa6, 0x19, 0x03, 0xbd, 0x12, 0x2c, 0x8b,
- 0x27, 0xb0, 0x54, 0x1f, 0x3a, 0x41, 0xfc, 0x93, 0xc7, 0x23, 0x0f, 0x4e, 0x58, 0x52, 0xb7, 0xae,
- 0x8d, 0xd5, 0x20, 0x17, 0xf6, 0x28, 0x60, 0x80, 0xa0, 0x55, 0xf1, 0xd9, 0x8b, 0x94, 0x57, 0xf4,
- 0x0c, 0x81, 0x3e, 0xdf, 0x08, 0xd0, 0x42, 0xf8, 0xc6, 0x79, 0xc8, 0x18, 0xa1, 0x90, 0xa3, 0xd2,
- 0x82, 0xe5, 0xf0, 0x8f, 0xfc, 0xcc, 0xd3, 0x46, 0xb6, 0xa3, 0x0b, 0xc7, 0x93, 0x20, 0xac, 0xf3,
- 0xea, 0x99, 0x56, 0x93, 0x0d, 0xa2, 0xfa, 0x9b, 0xcd, 0x02, 0xb5, 0x17, 0xad, 0xca, 0x3f, 0x30,
- 0xae, 0x1a, 0xdf, 0xfc, 0x75, 0x98, 0xa2, 0xfa, 0x25, 0xe0, 0x07, 0x9f, 0x0d, 0xb6, 0x81, 0x14,
- 0xb4, 0x05, 0x17, 0xfb, 0xd8, 0x62, 0x39, 0x5c, 0x4b, 0x59, 0xc9, 0xab, 0xe3, 0x6d, 0xd5, 0x54,
- 0x9a, 0x24, 0x8c, 0xf2, 0xec, 0xaf, 0x57, 0x75, 0xf9, 0x51, 0x58, 0xf7, 0x12, 0xc3, 0x29, 0x94,
- 0x63, 0x33, 0xdd, 0x70, 0x42, 0x7b, 0xa4, 0xf2, 0x2f, 0xc1, 0xbd, 0xc6, 0xf8, 0x2e, 0x09, 0x8a,
- 0x49, 0x6d, 0xed, 0x8d, 0xcf, 0x47, 0xf4, 0x32, 0xdf, 0x5f, 0xd5, 0x92, 0xd7, 0xf0, 0x94, 0x04,
- 0xe5, 0xa9, 0x86, 0x0b, 0x07, 0x46, 0x49, 0x5d, 0xdb, 0xf4, 0x4f, 0x09, 0xb5, 0x7e, 0xc4, 0x37,
- 0x42, 0x22, 0x96, 0xe1, 0x7c, 0x52, 0x79, 0x1d, 0x8b, 0x3f, 0xd6, 0x84, 0x11, 0x34, 0x0e, 0x4d,
- 0xe4, 0xc6, 0xdc, 0x36, 0xb8, 0xeb, 0xa7, 0xf6, 0x2a, 0x30, 0xe0, 0x0b, 0x63, 0x62, 0x4d, 0xc5,
- 0x15, 0x2f, 0x18, 0x9f, 0xa7, 0x1e, 0x28, 0x60, 0x78, 0x4f, 0x34, 0x2a, 0xf6, 0x6f, 0xaf, 0x47,
- 0xb7, 0xb4, 0xf9, 0xbc, 0xda, 0x56, 0xc8, 0x62, 0x9b, 0xd6, 0xfb, 0xad, 0x5a, 0x49, 0x8d, 0x81,
- 0xc8, 0x39, 0xf3, 0x45, 0x31, 0xbf, 0xd6, 0x4a, 0xb9, 0x73, 0xec, 0x53, 0xfd, 0xf4, 0x60, 0x22,
- 0x06, 0xa1, 0x1f, 0x8e, 0x04, 0x68, 0x21, 0x7c, 0x63, 0xdd, 0x64, 0x0c, 0xb1, 0x48, 0xb0, 0x69,
- 0x70, 0xbd, 0xda, 0x61, 0xe1, 0x0d, 0xad, 0xee, 0x34, 0x53, 0xed, 0xe0, 0xbf, 0x09, 0x16, 0xa4,
- 0x9d, 0xea, 0xc9, 0x41, 0x57, 0x6a, 0x98, 0xa2, 0x6b, 0x48, 0x93, 0xf9, 0x75, 0x97, 0x10, 0x0f,
- 0x41, 0x93, 0x78, 0xa6, 0x7e, 0x66, 0x88, 0x23, 0x5b, 0xb0, 0xe4, 0x82, 0xa8, 0x10, 0x56, 0x98,
- 0x75, 0xad, 0x2b, 0xa8, 0xe7, 0x51, 0x7d, 0xac, 0x87, 0x01, 0xbb, 0xea, 0xb7, 0x65, 0xfe, 0x18,
- 0x19, 0xae, 0x26, 0x40, 0xaf, 0xce, 0x6a, 0x98, 0xbe, 0x36, 0xfc, 0x32, 0x57, 0xff, 0x0c, 0x95,
- 0xc9, 0x56, 0xa9, 0x78, 0x8e, 0x12, 0x38, 0xe1, 0x48, 0xb7, 0x43, 0x51, 0x2b, 0xe8, 0xe9, 0xd0,
- 0xaa, 0x65, 0x74, 0x08, 0xcc, 0x69, 0x9c, 0x13, 0x67, 0x76, 0xfe, 0x97, 0xd3, 0xc6, 0xe0, 0x5a,
- 0xfc, 0x07, 0xa0, 0x4b, 0xa8, 0x88, 0x23, 0xc5, 0x65, 0xc2, 0xb3, 0x3b, 0xe2, 0x81, 0xc8, 0xa2,
- 0x4d, 0x12, 0x46, 0x79, 0x76, 0xb6, 0xca, 0xdb, 0x9d, 0xc9, 0x2c, 0x9a, 0x09, 0x80, 0xf5, 0x4a,
- 0xbf, 0x4a, 0x6c, 0x97, 0x6b, 0x77, 0xb4, 0x73, 0x1f, 0x39, 0xca, 0xbd, 0x25, 0xa9, 0x4f, 0x1d,
- 0x2a, 0x5e, 0x30, 0xfd, 0x8d, 0x3c, 0x50, 0xc0, 0xf0, 0x9e, 0x68, 0x54, 0x2f, 0xde, 0x9d, 0x8e,
- 0x73, 0x0c, 0x34, 0x26, 0xe3, 0x39, 0x5c, 0xd0, 0xe4, 0xdc, 0xdf, 0xe6, 0x06, 0x2d, 0x4e, 0x71,
- 0x84, 0x44, 0xef, 0x01, 0xf8, 0xa4, 0xf2, 0x3a, 0xd5, 0x7e, 0x6f, 0xcb, 0x22, 0x68, 0x1c, 0x9a,
- 0xd5, 0xe8, 0x7e, 0xf1, 0x27, 0x80, 0x82, 0x3b, 0x45, 0xd3, 0xe9, 0x69, 0x74, 0x7b, 0x0d, 0xf9,
- 0xc3, 0x76, 0x88, 0x29, 0x82, 0xaa, 0x5b, 0x65, 0xed, 0x13, 0xef, 0x45, 0x3b, 0x30, 0xfa, 0x6b,
- 0xaf, 0x75, 0x85, 0xc1, 0xca, 0x35, 0x4c, 0x51, 0xd4, 0x24, 0xa8, 0x9d, 0xdb, 0xaa, 0x08, 0xe6,
- 0x2b, 0x31, 0x6a, 0xc0, 0x32, 0x91, 0xbe, 0x6b, 0x01, 0x5a, 0xc7, 0x56, 0xf9, 0xc2, 0x14, 0x7c,
- 0x86, 0x9a, 0x5b, 0x7b, 0x45, 0x3d, 0xed, 0xaf, 0xf4, 0x35, 0xf2, 0xcf, 0x4d, 0x50, 0xcd, 0xbd,
- 0xa7, 0x8b, 0x10, 0xea, 0x7b, 0x14, 0x30, 0x40, 0x50, 0xcb, 0x99, 0x8d, 0xa4, 0x4a, 0xca, 0x7a,
- 0xb1, 0x15, 0xe6, 0x32, 0xde, 0x3e, 0xe9, 0x1e, 0xf8, 0x0b, 0x9f, 0xa1, 0xeb, 0x01, 0x3d, 0xe8,
- 0xb2, 0xa4, 0x08, 0x75, 0xdc, 0x0a, 0x18, 0x20, 0x28, 0x84, 0xad, 0xa7, 0x52, 0x25, 0x65, 0x3d,
- 0x5b, 0x8c, 0xb0, 0xa1, 0xd3, 0x9c, 0x13, 0x85, 0x35, 0x09, 0x2a, 0xb6, 0x46, 0xcb, 0x02, 0xd8,
- 0x46, 0x5d, 0x3d, 0x15, 0xc5, 0xa3, 0x47, 0xf4, 0xc9, 0xa9, 0x2f, 0x8c, 0xcf, 0x44, 0x6f, 0x03,
- 0xd3, 0x49, 0x61, 0x7f, 0x23, 0xe8, 0xa3, 0x47, 0x26, 0x0e, 0x8d, 0x65, 0xc5, 0x33, 0xbd, 0x90,
- 0x9f, 0x34, 0x7d, 0x3b, 0xea, 0xf3, 0x87, 0x37, 0x4a, 0x03, 0x0e, 0xfd, 0x1a, 0xaf, 0xc1, 0x28,
- 0xfd, 0x68, 0xfa, 0x76, 0x17, 0x25, 0xcd, 0x6e, 0x94, 0x06, 0x1c, 0x39, 0x34, 0x9d, 0x41, 0x50,
- 0xd4, 0x87, 0x24, 0xcc, 0x98, 0x2d, 0x6c, 0x90, 0xb4, 0x17, 0x46, 0x6b, 0xa2, 0x67, 0x84, 0x0b,
- 0x0f, 0x30, 0xd0, 0x98, 0x0a, 0xe4, 0xb3, 0xc6, 0x16, 0xf6, 0xfa, 0x1e, 0x18, 0xb4, 0xfb, 0x07,
- 0x9c, 0x85, 0x93, 0x7c, 0xe8, 0xc7, 0x76, 0x09, 0x9a, 0x8c, 0x3c, 0xfb, 0xa3, 0x8b, 0x99, 0xfd,
- 0x2f, 0x4e, 0xc1, 0x34, 0x8b, 0x60, 0x80, 0x82, 0x43, 0xcc, 0x3e, 0x5e, 0x27, 0xb2, 0x75, 0x32,
- 0x9b, 0x4b, 0xd6, 0xcf, 0x53, 0x02, 0xb9, 0xde, 0x08, 0x95, 0xf7, 0xf5, 0xc4, 0xdf, 0xa0, 0x66,
- 0x43, 0x4d, 0xcc, 0xdc, 0xc3, 0xff, 0x97, 0xb6, 0x7a, 0xfb, 0x79, 0x86, 0xc7, 0x28, 0x87, 0xbf,
- 0xef, 0x89, 0xa7, 0x5a, 0x0b, 0xfe, 0x2a, 0xd9, 0x7e, 0x50, 0xe3, 0x1d, 0xa5, 0xa6, 0xd7, 0x8c,
- 0xd9, 0x69, 0x40, 0x2e, 0x2f, 0x50, 0xc0, 0xc3, 0x83, 0xaa, 0x21, 0x71, 0xd5, 0xeb, 0xae, 0x2b,
- 0x79, 0x2c, 0x15, 0x77, 0xef, 0x81, 0x3f, 0x54, 0x41, 0x78, 0x73, 0xf2, 0x16, 0xf5, 0x5d, 0xca,
- 0xb6, 0xdb, 0xa3, 0x81, 0x65, 0xfb, 0x26, 0xc9, 0x6a, 0x12, 0x54, 0xaf, 0x8c, 0x55, 0x04, 0x73,
- 0x53, 0x72, 0x25, 0x8a, 0x62, 0xbd, 0x6f, 0x94, 0xb1, 0xe6, 0x1b, 0xa6, 0x39, 0x2b, 0xc0, 0x44,
- 0x7f, 0x8d, 0x0a, 0xf9, 0xeb, 0xe9, 0x1e, 0x28, 0x22, 0xa5, 0x17, 0xfe, 0xa7, 0xbd, 0xed, 0xa3,
- 0xc1, 0xa8, 0x3c, 0x53, 0x3f, 0x33, 0x44, 0xf0, 0xcc, 0x58, 0x72, 0x41, 0x54, 0x08, 0x2b, 0x4c,
- 0xf0, 0x86, 0x9e, 0x94, 0xa0, 0x58, 0x61, 0x3d, 0xa3, 0xbb, 0x7b, 0x23, 0x43, 0x11, 0x6b, 0x70,
- 0x23, 0xcf, 0xff, 0xeb, 0x83, 0xb0, 0xc2, 0x7a, 0x85, 0xb5, 0xf6, 0x46, 0x86, 0x22, 0xd6, 0xe0,
- 0xe7, 0x77, 0x32, 0x71, 0xba, 0xdf, 0x56, 0xc8, 0xfa, 0xbf, 0xd2, 0x0d, 0xda, 0x46, 0x15, 0x10,
- 0x25, 0x6e, 0xe0, 0x65, 0x87, 0xd8, 0xe3, 0x06, 0xe6, 0x68, 0x92, 0x4a, 0x37, 0x6a, 0x66, 0x89,
- 0x5e, 0x9c, 0x41, 0x68, 0xd5, 0xc0, 0xc3, 0xc7, 0x86, 0x5b, 0x7c, 0xbc, 0x4e, 0xa7, 0xea, 0x64,
- 0xb5, 0x6a, 0x4d, 0xc6, 0x67, 0xcf, 0xd7, 0xf7, 0xba, 0x9d, 0x66, 0xa9, 0x35, 0x71, 0x5c, 0xa6,
- 0x1e, 0x60, 0x63, 0xf3, 0x14, 0x0b, 0xa5, 0x4f, 0x2c, 0x2f, 0x37, 0x3c, 0x30, 0xab, 0x35, 0x0e,
- 0xa2, 0x9b, 0xe1, 0x23, 0x7d, 0x48, 0xe0, 0x02, 0xe3, 0x99, 0xcf, 0x87, 0xac, 0x26, 0x22, 0xc6,
- 0xdf, 0xc8, 0x5f, 0xa0, 0x2b, 0x38, 0xe1, 0xbf, 0xe0, 0x77, 0x45, 0x7d, 0x64, 0xa3, 0x1e, 0x42,
- 0xa6, 0xe4, 0x4a, 0xd7, 0xc4, 0xb9, 0xde, 0xeb, 0xa1, 0x0f, 0x36, 0x8f, 0x72, 0x56, 0x43, 0x88,
- 0xfe, 0xd9, 0x14, 0x31, 0x15, 0x11, 0x3c, 0x50, 0x44, 0x89, 0x2e, 0x3f, 0x8d, 0xb9, 0x19, 0x85,
- 0xac, 0xc4, 0x6b, 0x86, 0xc8, 0x01, 0xbd, 0x6f, 0x04, 0xab, 0x9a, 0x9b, 0x62, 0x8e, 0x50, 0x33,
- 0x22, 0xa0, 0xa5, 0xd6, 0x3c, 0x1d, 0x2c, 0xd1, 0x74, 0x71, 0x59, 0x44, 0x50, 0x3e, 0x5f, 0x12,
- 0xf9, 0x17, 0x51, 0x82, 0xae, 0xd4, 0xf3, 0x87, 0xd6, 0x90, 0xe5, 0x31, 0xea, 0xed, 0x20, 0x1e,
- 0xe2, 0x67, 0xc3, 0xb8, 0xbc, 0x83, 0x86, 0x8a, 0x49, 0xed, 0x84, 0x07, 0xd2, 0x2a, 0xfd, 0xac,
- 0x4a, 0xdc, 0x03, 0xca, 0xcd, 0x73, 0x05, 0x0c, 0x0f, 0xd0, 0xe7, 0x94, 0x6e, 0xd4, 0xcc, 0xd1,
- 0xbc, 0xfb, 0x82, 0xd0, 0x69, 0x43, 0x45, 0x4d, 0xcf, 0xb6, 0xf8, 0xbb, 0x9c, 0x8d, 0x17, 0xc8,
- 0x35, 0x51, 0x09, 0x33, 0x26, 0x9a, 0x1b, 0x24, 0x2d, 0x75, 0xf0, 0x6a, 0xc9, 0x69, 0x21, 0x72,
- 0xca, 0xe7, 0x47, 0x3f, 0x8c, 0x26, 0xc9, 0xdf, 0x98, 0x38, 0x71, 0x57, 0x92, 0xcc, 0xb1, 0x05,
- 0xee, 0xe6, 0xfd, 0x67, 0xb4, 0x53, 0xc4, 0x72, 0x8f, 0x94, 0x4c, 0x1f, 0x73, 0xba, 0x5e, 0x7e,
- 0x78, 0x43, 0x4f, 0x4a, 0x50, 0x2c, 0xd1, 0xff, 0xb0, 0xbc, 0xdc, 0xf0, 0xc0, 0xe9, 0xd4, 0x38,
- 0x05, 0x10, 0xf1, 0xc9, 0x06, 0x5c, 0xd0, 0x42, 0xb3, 0x52, 0x56, 0x0a, 0x08, 0x6c, 0xe8, 0xbc,
- 0x6b, 0xcd, 0x48, 0x5b, 0xf3, 0x5a, 0xd8, 0xe3, 0xab, 0x2e, 0x8c, 0xd6, 0x87, 0xce, 0xcb, 0x16,
- 0x51, 0xac, 0x91, 0xf0, 0xdf, 0x24, 0x70, 0x01, 0x90, 0xad, 0x86, 0xa2, 0x56, 0x13, 0x11, 0x63,
- 0xe1, 0xd6, 0x2d, 0xff, 0xbe, 0xb7, 0x77, 0xb4, 0x99, 0x62, 0xb6, 0x01, 0x6b, 0x0e, 0xa5, 0x79,
- 0x59, 0x52, 0x04, 0xdb, 0x6e, 0x05, 0x0c, 0x10, 0x14, 0x42, 0xb7, 0xb2, 0x29, 0xf3, 0xd3, 0xff,
- 0xa3, 0xf4, 0xbb, 0x1e, 0xc2, 0xe5, 0x0e, 0xa9, 0x12, 0x5d, 0x60, 0x85, 0x7a, 0x3a, 0xab, 0x34,
- 0xf2, 0x58, 0x2a, 0xee, 0x1d, 0xc1, 0x7e, 0xa8, 0x82, 0xf0, 0xe6, 0x27, 0x2c, 0x29, 0xba, 0x57,
- 0x71, 0xd2, 0x80, 0x5c, 0x5e, 0xa0, 0x43, 0x45, 0xc5, 0x97, 0x42, 0xe2, 0x69, 0x15, 0x9f, 0x56,
- 0x56, 0x62, 0xd4, 0x43, 0x64, 0xe1, 0xbf, 0xd6, 0x02, 0xb4, 0x4d, 0xac, 0x31, 0x47, 0x28, 0xf8,
- 0x11, 0x50, 0xb3, 0x6b, 0x1e, 0xef, 0x16, 0x89, 0x3a, 0xd9, 0xcd, 0x22, 0x28, 0x1f, 0xce, 0x09,
- 0x6a, 0xa2, 0x12, 0x66, 0x4c, 0xf7, 0x36, 0x48, 0x5a, 0xea, 0x23, 0xd4, 0x51, 0xd2, 0x42, 0xe4,
- 0x89, 0xaa, 0x8b, 0xe3, 0x4f, 0xd9, 0x5e, 0x69, 0xe2, 0xc3, 0x08, 0xd1, 0x55, 0xe4, 0x36, 0xba,
- 0x94, 0x7b, 0x06, 0x57, 0x59, 0xe6, 0x0a, 0x18, 0x1e, 0x63, 0x0d, 0xeb, 0xdc, 0x6b, 0x5b, 0x61,
- 0x65, 0x92, 0xc2, 0xfe, 0x46, 0x13, 0x85, 0x8e, 0x4c, 0x1c, 0xd9, 0xca, 0x49, 0x66, 0xb9, 0xe3,
- 0x8c, 0xba, 0x7a, 0x2a, 0x49, 0x85, 0x8e, 0x2b, 0x51, 0x91, 0x5e, 0xdb, 0x5d, 0x88, 0xde, 0x06,
- 0xbb, 0x35, 0xc7, 0x63, 0xd2, 0x86, 0x8a, 0x9a, 0x5d, 0xaf, 0x33, 0xb5, 0xfb, 0xd9, 0x2e, 0x53,
- 0x77, 0x73, 0x9f, 0xd2, 0x5a, 0xc8, 0x62, 0x39, 0xa6, 0x4a, 0x26, 0xee, 0xd8, 0x5d, 0x2f, 0x3f,
- 0x3c, 0xc0, 0xc6, 0x25, 0x28, 0x16, 0x89, 0x9e, 0x58, 0x5e, 0x6e, 0x78, 0x60, 0x95, 0x6a, 0x1c,
- 0x7b, 0xf2, 0xa1, 0x0d, 0x52, 0x18, 0x20, 0xc1, 0x60, 0x33, 0xee, 0xf6, 0x79, 0xcd, 0x8c, 0xed,
- 0x28, 0x80, 0x84, 0x87, 0x30, 0xa5, 0x4f, 0x55, 0xd1, 0xd5, 0xf5, 0x50, 0x40, 0xe6, 0x4c, 0xa9,
- 0xab, 0x0a, 0x2e, 0x35, 0x73, 0xc4, 0x72, 0xb8, 0x96, 0xb2, 0x51, 0x95, 0x05, 0xda, 0x69, 0xa8,
- 0xd2, 0x26, 0x3b, 0x42, 0x9c, 0x45, 0x4d, 0xec, 0xd7, 0xca, 0x22, 0x67, 0x13, 0x2f, 0x34, 0x62,
- 0x31, 0x2e, 0xa2, 0xc7, 0x9f, 0x6b, 0x25, 0xcd, 0x6f, 0xe3, 0x09, 0x62, 0x17, 0x19, 0x40, 0x3c,
- 0xde, 0xa7, 0x05, 0x9d, 0x94, 0x95, 0x0f, 0x14, 0x11, 0xb3, 0xea, 0x7f, 0xb2, 0xbf, 0x97, 0xb0,
- 0xc4, 0xb8, 0xcd, 0x9a, 0x39, 0x6f, 0x94, 0xb2, 0x7f, 0x0a, 0x24, 0x4b, 0x5c, 0x64, 0xc3, 0xf0,
- 0x5f, 0xf3, 0x1b, 0x55, 0x6a, 0x6d, 0x2d, 0x6c, 0x77, 0x9f, 0xd3, 0xbe, 0x98, 0xbb, 0x63, 0x96,
- 0xcc, 0x46, 0x58, 0xb1, 0x88, 0x4e, 0xe8, 0xa3, 0xfb, 0xe5, 0x15, 0x5b, 0x23, 0x84, 0x01, 0x6c,
- 0xcf, 0xf7, 0xb6, 0xf6, 0x8a, 0x7a, 0x19, 0x9d, 0x2b, 0x6a, 0x27, 0x5d, 0x9a, 0xa0, 0x59, 0xb9,
- 0x76, 0x1c, 0xc5, 0xef, 0xe5, 0x65, 0x8c, 0x92, 0x57, 0x8e, 0x89, 0xec, 0x0e, 0x41, 0xa6, 0xcd,
- 0x2c, 0xff, 0x2f, 0x73, 0x89, 0x54, 0x71, 0xbc, 0x93, 0x43, 0x0c, 0x58, 0x9e, 0x96, 0x2d, 0xe7,
- 0xb8, 0x84, 0x29, 0x24, 0xd0, 0xb2, 0x7b, 0xa4, 0x8d, 0x20, 0x01, 0xb3, 0x42, 0xfd, 0x76, 0x86,
- 0xd8, 0x06, 0x1a, 0x13, 0x90, 0xfd, 0x2e, 0x68, 0x72, 0x6e, 0x8e, 0x73, 0x03, 0xf7, 0x27, 0xd9,
- 0x2e, 0x21, 0x9b, 0x09, 0x34, 0xcd, 0x6e, 0x29, 0xb2, 0x08, 0x91, 0x5c, 0xf1, 0xae, 0xfc, 0xc0,
- 0x36, 0xe0, 0xe7, 0x74, 0x24, 0xae, 0xea, 0x1a, 0xfd, 0xfa, 0xc2, 0x6c, 0x70, 0x4d, 0x79, 0xa7,
- 0xdb, 0xb7, 0xf4, 0x54, 0x92, 0xc9, 0xdf, 0x56, 0xa2, 0xe1, 0xbc, 0x75, 0xba, 0xd3, 0x7f, 0x0c,
- 0x69, 0x13, 0xfc, 0x21, 0x4e, 0xc3, 0xc7, 0x76, 0x8a, 0x65, 0x11, 0xd2, 0xe8, 0xf6, 0x1a, 0x31,
- 0xb3, 0xcb, 0x52, 0x48, 0x63, 0xa7, 0xf6, 0x8b, 0xd9, 0x40, 0x02, 0xa5, 0x84, 0x39, 0xec, 0xcf,
- 0x14, 0x40, 0x42, 0xa2, 0x18, 0xb3, 0xc6, 0xcb, 0x89, 0x8b, 0x9b, 0x28, 0x20, 0x73, 0x26, 0xb5,
- 0x95, 0x14, 0x5c, 0x6a, 0xe6, 0x4b, 0xe4, 0xb3, 0xef, 0xa7, 0xa2, 0xe9, 0x0a, 0x77, 0xd2, 0x93,
- 0xbe, 0x25, 0x36, 0xaa, 0xd4, 0xda, 0x5a, 0xd8, 0xee, 0xfd, 0x65, 0xbf, 0xf3, 0xb5, 0xc6, 0xef,
- 0x62, 0x5c, 0x87, 0x4d, 0xfd, 0xd6, 0x4a, 0x59, 0xde, 0x05, 0x12, 0xc4, 0x2e, 0x32, 0x80, 0x78,
- 0xa1, 0x2a, 0x0f, 0x64, 0x7f, 0x7c, 0x11, 0x3c, 0x33, 0x16, 0xfd, 0x81, 0x15, 0x02, 0x7a, 0x13,
- 0x3b, 0x0e, 0x83, 0x96, 0x93, 0xd3, 0x46, 0x49, 0xca, 0x47, 0xa5, 0x76, 0x07, 0xc1, 0x53, 0x87,
- 0x16, 0x9e, 0xf6, 0xd8, 0xa5, 0x2a, 0xd9, 0x5e, 0xa8, 0xc0, 0x06, 0x2c, 0x4f, 0x4b, 0xf7, 0x92,
- 0x66, 0x23, 0x2c, 0xb9, 0x44, 0x27, 0x74, 0xb0, 0x9c, 0x93, 0xeb, 0xcc, 0xf0, 0x42, 0xe1, 0x36,
- 0xe9, 0x28, 0xb8, 0xd4, 0x0f, 0x96, 0x0b, 0xa5, 0x1d, 0x8d, 0x87, 0x11, 0x14, 0xee, 0x67, 0xe5,
- 0x5c, 0x42, 0xf5, 0x12, 0x68, 0x59, 0xdc, 0x52, 0xa7, 0x10, 0xe1, 0xb8, 0x21, 0x9f, 0x3b, 0x43,
- 0x6c, 0x03, 0x0d, 0xe8, 0x48, 0x9f, 0x17, 0x34, 0x39, 0x37, 0x47, 0xd8, 0xe0, 0x9a, 0xf2, 0x8d,
- 0x6d, 0x6c, 0x57, 0xd5, 0xf7, 0x32, 0xf9, 0x9f, 0xc8, 0xf3, 0xe8, 0xda, 0x36, 0x86, 0x7b, 0x7f,
- 0xad, 0xab, 0x31, 0xbb, 0x77, 0xac, 0x53, 0xc4, 0xf5, 0x6f, 0x35, 0x99, 0xb4, 0x92, 0xd9, 0xc1,
- 0x37, 0x8f, 0xbd, 0x49, 0x9b, 0x03, 0x04, 0xb1, 0x0c, 0x3e, 0x6d, 0x6e, 0xa6, 0x51, 0xf0, 0x55,
- 0x61, 0xed, 0x69, 0x0a, 0xff, 0xe2, 0xbb, 0x67, 0x0e, 0x8a, 0x20, 0xc2, 0x97, 0x16, 0xd8, 0xad,
- 0x4b, 0xb3, 0x59, 0xf7, 0x72, 0xde, 0xeb, 0xa7, 0xfe, 0x14, 0x48, 0x96, 0xb8, 0xc8, 0x45, 0x23,
- 0xb9, 0xeb, 0x73, 0x19, 0x6f, 0x1f, 0x95, 0x0f, 0x7c, 0xe4, 0xae, 0xb1, 0x94, 0xe1, 0xff, 0x74,
- 0xe3, 0x08, 0x99, 0x85, 0x03, 0x2e, 0x68, 0x21, 0xb8, 0x29, 0x2b, 0x05, 0x04, 0x36, 0x74, 0x5e,
- 0xba, 0x5a, 0x9d, 0x5e, 0x6d, 0x2b, 0x64, 0x31, 0xac, 0x6b, 0x9c, 0xb7, 0x2d, 0xc5, 0xa7, 0xa1,
- 0xf1, 0xe9, 0xc4, 0xa9, 0x1f, 0xf5, 0x8f, 0x96, 0x52, 0x7f, 0xd4, 0x21, 0x95, 0x0d, 0xe2, 0x82,
- 0xa0, 0x45, 0x55, 0x59, 0xc0, 0xd1, 0xff, 0x97, 0xc2, 0xd2, 0x52, 0x83, 0xc3, 0x1e, 0xf3, 0xe1,
- 0x85, 0x2b, 0xb5, 0x3c, 0x47, 0x09, 0x1c, 0x91, 0x24, 0xba, 0xc0, 0xc9, 0xf4, 0x74, 0x95, 0x68,
- 0x83, 0x8a, 0xaa, 0xb2, 0x43, 0x61, 0x3d, 0xed, 0x47, 0x67, 0xa4, 0xc5, 0x45, 0x3c, 0x25, 0x01,
- 0xda, 0xd8, 0xae, 0x69, 0x2d, 0x64, 0x31, 0xfd, 0x53, 0x25, 0x13, 0x77, 0x6c, 0xcf, 0xf6, 0xfe,
- 0x47, 0x32, 0x67, 0x28, 0x7a, 0x0e, 0xa9, 0x5f, 0x38, 0x6d, 0x80, 0x8e, 0x19, 0x58, 0xe6, 0xf1,
- 0xc5, 0xd7, 0x97, 0xa7, 0x86, 0xc2, 0x7a, 0x19, 0x8e, 0xce, 0x8b, 0x49, 0x8a, 0x78, 0x4a, 0x02,
- 0xb0, 0x7a, 0xbc, 0x0f, 0x61, 0x93, 0x07, 0xb5, 0x09, 0xcf, 0x30, 0xa3, 0x3d, 0x1d, 0xb4, 0x1a,
- 0x33, 0xf0, 0x16, 0xbd, 0x22, 0xf2, 0x3a, 0x58, 0x4e, 0xa8, 0x94, 0x66, 0x78, 0x21, 0x91, 0x1b,
- 0xfa, 0xa6, 0xbf, 0xc5, 0xac, 0xe0, 0x02, 0xb9, 0x06, 0x1f, 0xd7, 0x37, 0x53, 0xc9, 0x78, 0xcb,
- 0x96, 0xa5, 0xb2, 0x2d, 0xe4, 0x7f, 0x15, 0x8d, 0x3f, 0x28, 0x90, 0xef, 0xb3, 0x53, 0x8a, 0x46,
- 0x6f, 0xb2, 0xe3, 0xaf, 0x4a, 0xab, 0xe6, 0x0a, 0xe9, 0xb8, 0x75, 0xde, 0x59, 0xbe, 0xaa, 0x58,
- 0x6e, 0xdd, 0xb9, 0x92, 0xf5, 0x06, 0x08, 0xa1, 0x18, 0x7c, 0xda, 0xdc, 0x8f, 0xa2, 0x23, 0xaa,
- 0xc2, 0x19, 0xd2, 0x14, 0x3d, 0x07, 0xb5, 0xce, 0x1c, 0xd7, 0x40, 0x47, 0xed, 0x2c, 0x73, 0x99,
- 0xf6, 0x27, 0x81, 0x1a, 0xa4, 0x30, 0x40, 0x41, 0xc0, 0x66, 0x1f, 0x2f, 0xf2, 0x59, 0xdb, 0x19,
- 0x50, 0xc3, 0xcb, 0xcd, 0x60, 0x89, 0x9e, 0xaa, 0x61, 0x69, 0x29, 0xa0, 0x80, 0x0f, 0x98, 0x91,
- 0xff, 0xb6, 0x4e, 0x0c, 0xaa, 0xbc, 0xd2, 0xfb, 0xb5, 0x4d, 0x81, 0x3d, 0x5b, 0xa5, 0x90, 0x77,
- 0x5d, 0x2d, 0xaf, 0x2f, 0xd7, 0xf4, 0x32, 0xf9, 0x56, 0xd4, 0x4e, 0xba, 0xf7, 0x83, 0xb2, 0xb1,
- 0xa9, 0xd4, 0x9a, 0x4f, 0xce, 0x5d, 0x6d, 0x2d, 0xb7, 0xf9, 0xcc, 0x91, 0x6a, 0xe2, 0xb8, 0x8f,
- 0x8e, 0x64, 0xce, 0x50, 0xf4, 0x1c, 0x91, 0xbe, 0x70, 0xda, 0xc3, 0xdf, 0x32, 0xb0, 0x0f, 0x21,
- 0x17, 0xf1, 0xac, 0xe5, 0x1a, 0x87, 0x37, 0xf5, 0x59, 0x04, 0xa9, 0x2e, 0x99, 0x57, 0x7e, 0x60,
- 0x1b, 0x70, 0x92, 0x3a, 0x12, 0x57, 0x75, 0x0d, 0x9f, 0x7d, 0x61, 0x36, 0x38, 0xc7, 0xdd, 0xb2,
- 0x97, 0xca, 0xe8, 0x10, 0x5b, 0xd2, 0xfb, 0x26, 0xce, 0xec, 0x3f, 0xed, 0x65, 0x4f, 0x03, 0xb4,
- 0x7d, 0x53, 0xbe, 0x83, 0x56, 0x70, 0x01, 0xbd, 0x03, 0xee, 0x8a, 0xfa, 0xc8, 0x85, 0x3c, 0x84,
- 0xec, 0x38, 0x49, 0x1d, 0x09, 0xca, 0xdb, 0xe7, 0xae, 0xdf, 0xd1, 0x1b, 0x1c, 0x82, 0x8f, 0x59,
- 0x58, 0x3d, 0x5e, 0xe6, 0xd1, 0xa8, 0xe2, 0xbb, 0xe5, 0x86, 0x18, 0xb0, 0xff, 0xef, 0x5a, 0x0d,
- 0xf7, 0x48, 0xdb, 0x27, 0x1b, 0x9d, 0xae, 0xea, 0x31, 0xa2, 0xb0, 0x2d, 0x24, 0x45, 0x52, 0xeb,
- 0x1f, 0x0f, 0x39, 0xce, 0xab, 0xa6, 0x4b, 0xe4, 0xdd, 0xeb, 0x98, 0x3e, 0xe6, 0xb7, 0xbc, 0xfc,
- 0xfb, 0xc9, 0xe5, 0xf8, 0x13, 0x4d, 0xec, 0x12, 0xf7, 0xdb, 0x78, 0x35, 0x85, 0xd5, 0xf1, 0x39,
- 0x7c, 0x3c, 0xe4, 0xbe, 0xe9, 0xdd, 0xef, 0x16, 0xf2, 0x2a, 0x25, 0xf8, 0x1e, 0x99, 0xb5, 0x76,
- 0x09, 0x91, 0xcf, 0x16, 0x0e, 0x8c, 0x92, 0xba, 0x75, 0x2b, 0x9e, 0x12, 0xa9, 0xfc, 0x4b, 0x6e,
- 0x0d, 0xee, 0x64, 0xe2, 0xb7, 0x7d, 0xac, 0x53, 0x37, 0xbd, 0x67, 0x1a, 0x77, 0x8c, 0x2a, 0x20,
- 0x7a, 0x9d, 0xfb, 0x30, 0xed, 0xb5, 0xce, 0x6a, 0x91, 0xf7, 0x41, 0xf4, 0xaf, 0xd1, 0x05, 0x1f,
- 0x67, 0x4c, 0x76, 0x84, 0xfb, 0x8a, 0x9a, 0x1b, 0x6d, 0x57, 0x44, 0xce, 0x26, 0x5e, 0x68, 0xc4,
- 0x45, 0xec, 0xd3, 0x52, 0xc7, 0x97, 0xb6, 0xca, 0x19, 0x26, 0x1d, 0x8a, 0x76, 0x60, 0x37, 0xd6,
- 0x87, 0xf5, 0x01, 0x46, 0xfa, 0x90, 0x03, 0x04, 0x05, 0xf1, 0x5d, 0xcd, 0x9b, 0x4c, 0x44, 0x4f,
- 0xdc, 0x79, 0xb1, 0xe7, 0x29, 0x0c, 0x10, 0x81, 0x30, 0xf8, 0x77, 0x7b, 0xdd, 0x87, 0x46, 0x97,
- 0xe8, 0x47, 0xe2, 0xe9, 0xb0, 0x3b, 0xe5, 0x0e, 0xec, 0x49, 0x28, 0x13, 0xc2, 0xf2, 0xee, 0x17,
- 0x4f, 0xcc, 0xf2, 0x03, 0xcb, 0x2f, 0xd5, 0x4e, 0xbc, 0x82, 0xb1, 0x9e, 0x66, 0xb8, 0x24, 0x6d,
- 0x1d, 0xd1, 0x8d, 0xb4, 0x16, 0x3f, 0x54, 0x71, 0xfc, 0xa0, 0x05, 0x3a, 0x89, 0x8f, 0x6d, 0xdb,
- 0x4e, 0xa3, 0xa8, 0x3e, 0x74, 0x82, 0x3b, 0xe5, 0x4d, 0x46, 0x1e, 0x9c, 0xb0, 0xa4, 0xad, 0x9f,
- 0x04, 0x7f, 0xab, 0xf4, 0xb9, 0xf1, 0x3e, 0xe9, 0x42, 0x96, 0xf9, 0x08, 0xde, 0x70, 0x61, 0x4e,
- 0xeb, 0xf6, 0x0c, 0xae, 0xb2, 0x0f, 0x14, 0x30, 0x3c, 0xc6, 0x1a, 0x15, 0x7b, 0xd6, 0xb6, 0xc2,
- 0xf8, 0x78, 0x0b, 0xbf, 0x11, 0x79, 0x1d, 0x2c, 0x27, 0x54, 0x4a, 0x33, 0x3c, 0xf1, 0xa9, 0xec,
- 0xf3, 0x37, 0x70, 0xd3, 0xa2, 0x6c, 0x90, 0x03, 0x73, 0x34, 0x49, 0x25, 0xfa, 0x35, 0x33, 0xa5,
- 0x3e, 0x1e, 0x72, 0x5f, 0x95, 0x8f, 0x96, 0x0b, 0x79, 0x15, 0xf3, 0x7c, 0x0f, 0xad, 0xbb, 0x3b,
- 0x3d, 0xaf, 0x9c, 0x18, 0x97, 0xbb, 0x67, 0x35, 0xa9, 0x9a, 0xc1, 0x7a, 0xb6, 0x89, 0xe3, 0xee,
- 0xbd, 0x94, 0xd8, 0xed, 0xd6, 0xee, 0xab, 0xe6, 0x3e, 0x72, 0x57, 0xb9, 0x4a, 0x91, 0x9e, 0x3a,
- 0x8a, 0x1b, 0x65, 0xa4, 0x4d, 0xed, 0xaf, 0x57, 0x32, 0x4c, 0x3a, 0xd7, 0xec, 0xc0, 0x6e, 0x6f,
- 0x88, 0xc5, 0xd1, 0xde, 0xf0, 0x74, 0xb0, 0xc2, 0x13, 0x07, 0xa7, 0xd3, 0x83, 0xf8, 0xbf, 0x48,
- 0xdd, 0x16, 0xeb, 0xda, 0x96, 0xa1, 0xfe, 0x2a, 0xc1, 0x3c, 0xd8, 0x79, 0x0b, 0x9b, 0xcf, 0x65,
- 0xcd, 0x29, 0x02, 0x8c, 0x37, 0xe3, 0x06, 0x08, 0x0a, 0x21, 0xba, 0x59, 0xf5, 0x98, 0x88, 0x9e,
- 0x0b, 0x4f, 0x7b, 0x6c, 0xb3, 0x15, 0x8d, 0x2f, 0x54, 0x60, 0x03, 0x16, 0xc6, 0xc4, 0x9a, 0x49,
- 0x13, 0x8e, 0x07, 0x11, 0xa3, 0x76, 0x09, 0x1c, 0x1b, 0x92, 0x50, 0x26, 0x47, 0x27, 0x1f, 0x2e,
- 0x98, 0xfa, 0x38, 0x88, 0x51, 0x36, 0x48, 0xe0, 0xd8, 0x1a, 0xc5, 0xf3, 0x7d, 0xfb, 0xf8, 0xb3,
- 0x02, 0xde, 0xb4, 0x7a, 0xbd, 0x99, 0x1f, 0x95, 0x21, 0x4b, 0x9d, 0x04, 0x6f, 0x38, 0xd1, 0x27,
- 0x93, 0xb5, 0x43, 0xe4, 0xe2, 0x23, 0xc5, 0xcf, 0x8c, 0x7a, 0xc6, 0xe5, 0xbb, 0x3f, 0x62, 0xfa,
- 0x80, 0x3b, 0x44, 0xf5, 0x41, 0x55, 0xcc, 0xd3, 0x97, 0xe8, 0x96, 0xc3, 0xfc, 0x18, 0x7d, 0xd4,
- 0x90, 0x04, 0xad, 0xa3, 0xe0, 0x17, 0x34, 0xf1, 0x5c, 0xf5, 0xf4, 0xe3, 0x02, 0x1b, 0x3a, 0x2f,
- 0xd0, 0xf8, 0x8f, 0x38, 0x21, 0xdc, 0x52, 0x79, 0xf6, 0x81, 0xbf, 0x63, 0x7c, 0x17, 0xe5, 0x45,
- 0x24, 0x01, 0xba, 0x58, 0x38, 0x75, 0x0d, 0xad, 0x17, 0xac, 0x3d, 0x48, 0xe1, 0x76, 0xef, 0x7b,
- 0x34, 0x3e, 0x53, 0x0e, 0x99, 0x37, 0xf5, 0x8f, 0xdc, 0xb1, 0x5f, 0x68, 0x1f, 0x75, 0xa8, 0x80,
- 0xcb, 0x88, 0x1d, 0x02, 0x33, 0x8b, 0x27, 0x74, 0x69, 0xfc, 0xde, 0x55, 0x44, 0xd0, 0x38, 0xf7,
- 0xed, 0x57, 0x13, 0x20, 0xb6, 0x67, 0x35, 0x4c, 0x5f, 0x1b, 0x7e, 0x19, 0xca, 0x9e, 0x06, 0xab,
- 0xf4, 0xf9, 0x35, 0x60, 0x19, 0xa9, 0x5f, 0xd4, 0xe1, 0x2d, 0x82, 0x2b, 0x9d, 0x61, 0x0a, 0x3e,
- 0xce, 0x98, 0xec, 0xcb, 0x35, 0xd7, 0xf7, 0x36, 0xda, 0xae, 0x88, 0x5f, 0x4c, 0xbc, 0xd0, 0x4b,
- 0x99, 0x95, 0x62, 0xb5, 0xee, 0x9b, 0xa6, 0x4b, 0x29, 0xde, 0x6a, 0xf1, 0xab, 0xe7, 0x71, 0x41,
- 0x10, 0x3f, 0xe9, 0x56, 0xa1, 0x42, 0xf8, 0x22, 0xcb, 0x1d, 0x62, 0x20, 0xfe, 0x03, 0x47, 0xfb,
- 0x44, 0x83, 0x89, 0x6f, 0x78, 0x3a, 0x58, 0x61, 0xe8, 0xe2, 0xb2, 0x88, 0xa0, 0x7c, 0xbe, 0x24,
- 0x40, 0xfc, 0x22, 0x9b, 0xc1, 0xcb, 0x66, 0x88, 0xaa, 0x74, 0x4b, 0x80, 0x7e, 0x0c, 0xdf, 0x6a,
- 0x92, 0xda, 0x19, 0xd9, 0x5d, 0x8e, 0x2b, 0x64, 0x7d, 0xbe, 0x69, 0xe7, 0x6d, 0x23, 0xeb, 0x08,
- 0x3a, 0x61, 0xd9, 0xab, 0x2c, 0x7e, 0xa8, 0xe2, 0x3b, 0x83, 0x0a, 0x74, 0xd1, 0xdd, 0xda, 0x75,
- 0x01, 0x6f, 0x5a, 0x3d, 0xbf, 0xad, 0xee, 0xab, 0xf1, 0xc4, 0xaf, 0x02, 0xd6, 0x1c, 0x89, 0xf2,
- 0x26, 0xdf, 0x0e, 0x22, 0x85, 0xec, 0x12, 0x38, 0x36, 0xe7, 0xa0, 0x4c, 0x8e, 0x4e, 0x3e, 0x5c,
- 0x12, 0xe1, 0x5d, 0x2c, 0x1c, 0xdb, 0xe7, 0xb7, 0xea, 0x56, 0xff, 0x24, 0x91, 0x3b, 0x96, 0xdc,
- 0x1a, 0x1f, 0xc8, 0x07, 0xad, 0xfa, 0x9b, 0xa6, 0x6e, 0xb9, 0xce, 0x34, 0xee, 0xdb, 0x54, 0x40,
- 0x48, 0x02, 0xb7, 0xb0, 0x70, 0xea, 0x1a, 0x99, 0x2e, 0x9b, 0x7a, 0x90, 0x01, 0xec, 0x1d, 0xf6,
- 0x68, 0x7c, 0xa6, 0x1c, 0xf1, 0x6e, 0x29, 0xdd, 0x7b, 0xa1, 0xbe, 0xd0, 0x3e, 0xea, 0x93, 0xc3,
- 0xf5, 0x96, 0x6f, 0x5d, 0xa6, 0x04, 0xb1, 0x7f, 0x10, 0xe9, 0x2d, 0x29, 0x4b, 0x7d, 0x83, 0xcc,
- 0x81, 0x54, 0x1e, 0xc8, 0xfe, 0xf8, 0x22, 0x78, 0x66, 0x2c, 0x39, 0xc1, 0x2a, 0x04, 0xf4, 0x26,
- 0x8b, 0x74, 0x3f, 0x99, 0xf2, 0x40, 0x41, 0xfc, 0xc3, 0x88, 0x95, 0xd5, 0x3a, 0xdc, 0xe7, 0x9d,
- 0xc7, 0x09, 0x23, 0xdd, 0x3b, 0x5b, 0x65, 0x8c, 0xaf, 0x85, 0x16, 0x4d, 0xe5, 0x40, 0x9b, 0x25,
- 0xd6, 0x59, 0x90, 0xb6, 0x25, 0xb4, 0x73, 0x05, 0x95, 0x5c, 0xdb, 0x6f, 0xcd, 0x5f, 0x55, 0x2c,
- 0x20, 0x7e, 0x11, 0xac, 0x81, 0x84, 0x33, 0x44, 0x55, 0x3a, 0xc4, 0x40, 0x3f, 0x06, 0x8e, 0x35,
- 0x0a, 0x20, 0x21, 0x51, 0x0c, 0xb8, 0x63, 0x84, 0xa5, 0xa4, 0xac, 0x14, 0x10, 0xd8, 0x13, 0xbb,
- 0x08, 0xfe, 0x95, 0x2b, 0xb1, 0x21, 0x7c, 0x11, 0x84, 0xef, 0x31, 0x10, 0x7f, 0xe0, 0xc2, 0x9c,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x4c, 0x7d, 0x1c, 0x44, 0xc9, 0x1b, 0x24, 0x70, 0x6c, 0x0d, 0x83, 0x98, 0xdf, 0x9c, 0x7c, 0xb8,
- 0xd7, 0x36, 0xca, 0x8b, 0x9a, 0x19, 0x9d, 0xae, 0x64, 0x98, 0x74, 0x6d, 0x1b, 0x43, 0xdc, 0xde,
- 0x74, 0xc2, 0x71, 0x95, 0x58, 0xfc, 0x93, 0x07, 0x76, 0xc5, 0x14, 0xe8, 0x61, 0x79, 0x77, 0xea,
- },
- { /* 10 */
- 0x51, 0xf6, 0x5f, 0xcc, 0xc9, 0xbb, 0x4b, 0xca, 0x7e, 0x52, 0xea, 0x5b, 0x67, 0xa2, 0xef, 0xe6,
- 0x33, 0xae, 0xa5, 0x03, 0xf8, 0x72, 0xcf, 0x10, 0xac, 0xdb, 0x41, 0x06, 0xb8, 0x66, 0xba, 0x67,
- 0xa4, 0x6a, 0x15, 0x17, 0x52, 0x6f, 0xc2, 0xd0, 0x70, 0x26, 0xcb, 0x2e, 0x94, 0x8b, 0x8e, 0x86,
- 0x67, 0xde, 0xe5, 0xa5, 0xd2, 0x7e, 0xfa, 0xff, 0x18, 0x4a, 0x19, 0x89, 0xa8, 0xce, 0x6e, 0xad,
- 0x0a, 0xcf, 0x3e, 0xd4, 0x05, 0xad, 0xfc, 0x4a, 0x57, 0x45, 0xa7, 0x6b, 0xee, 0x14, 0x76, 0x58,
- 0xe7, 0x84, 0x9d, 0xfc, 0x92, 0x97, 0xe6, 0x09, 0x2c, 0x7c, 0x70, 0x3b, 0xb6, 0x0d, 0x1e, 0x59,
- 0x28, 0xba, 0xf8, 0xd6, 0x14, 0xf1, 0x76, 0xeb, 0x9f, 0xd7, 0xd9, 0x6f, 0x3e, 0x50, 0x1b, 0xa3,
- 0x1a, 0x55, 0x31, 0x76, 0x0d, 0x19, 0x1e, 0x24, 0xb0, 0x33, 0x03, 0xec, 0x9d, 0x34, 0x78, 0xa7,
- 0x6c, 0x50, 0xb7, 0xd2, 0x36, 0x49, 0xa1, 0x6a, 0xcc, 0x30, 0x25, 0x67, 0x5d, 0xd8, 0xc1, 0x96,
- 0x65, 0x5c, 0x3d, 0x20, 0xd3, 0x89, 0x77, 0x82, 0xdd, 0x34, 0xec, 0x40, 0x9e, 0xca, 0x1f, 0x6b,
- 0xfa, 0xd5, 0x6b, 0x65, 0x7d, 0xce, 0x0b, 0x75, 0x93, 0xf2, 0x34, 0xca, 0x6a, 0x37, 0x2c, 0x14,
- 0xe8, 0xcd, 0xbc, 0x42, 0x74, 0x8d, 0x64, 0x66, 0xb1, 0xfa, 0x65, 0x84, 0x2f, 0x13, 0x53, 0x2d,
- 0xac, 0x27, 0xf3, 0x46, 0x56, 0x35, 0xb3, 0xe7, 0xe2, 0x1d, 0x99, 0x8c, 0x4c, 0x9b, 0x89, 0x18,
- 0x5a, 0x78, 0x0d, 0xbb, 0x2d, 0x8c, 0x10, 0x5f, 0xaa, 0x28, 0xd6, 0xb5, 0x92, 0xb4, 0x40, 0xdd,
- 0xa9, 0xa1, 0xec, 0x2c, 0xb5, 0x82, 0xcd, 0xc2, 0x28, 0xde, 0x2b, 0x58, 0x3b, 0x91, 0xb2, 0x34,
- 0x30, 0x6d, 0x11, 0x25, 0x18, 0x1f, 0xe5, 0xb2, 0xea, 0x9a, 0x2f, 0x4a, 0x95, 0x60, 0x12, 0xc2,
- 0x8b, 0xd4, 0x2a, 0x2e, 0xa4, 0xde, 0x47, 0x63, 0xe0, 0x4c, 0x55, 0x5c, 0xeb, 0xd5, 0xdf, 0xcf,
- 0x83, 0x99, 0xcc, 0x7f, 0xa0, 0x84, 0x36, 0x54, 0x72, 0x77, 0x07, 0xfe, 0x33, 0xc5, 0xd8, 0x51,
- 0xef, 0xc9, 0x7b, 0xad, 0x96, 0xcd, 0x97, 0x3e, 0xbe, 0x47, 0x22, 0x99, 0x6e, 0x1d, 0x19, 0xc7,
- 0x66, 0x9f, 0x89, 0x06, 0x33, 0xe4, 0x5d, 0x20, 0x9b, 0x75, 0x82, 0x0c, 0xb3, 0xcc, 0xb7, 0xce,
- 0x14, 0x5d, 0x7c, 0x6b, 0x0a, 0x99, 0x3b, 0x94, 0xae, 0x8a, 0x8d, 0xd6, 0x1f, 0x28, 0xec, 0xb0,
- 0x0d, 0xcb, 0xf9, 0x3b, 0xe7, 0xed, 0x0f, 0x12, 0x58, 0xf8, 0xe0, 0x76, 0xaf, 0x1a, 0x3c, 0xb2,
- 0x05, 0x86, 0x1f, 0x6a, 0xe3, 0xb7, 0x7e, 0x25, 0xca, 0xc3, 0xb2, 0xd4, 0x77, 0x0a, 0x3b, 0x2c,
- 0x92, 0x42, 0xaf, 0x7e, 0x49, 0xaa, 0x73, 0xe5, 0x16, 0x3e, 0x38, 0xfc, 0x5b, 0xe7, 0x0f, 0xcd,
- 0x7a, 0x8f, 0x13, 0x3c, 0x3d, 0x27, 0x17, 0x83, 0xa7, 0xc4, 0x5d, 0x78, 0x74, 0xf4, 0x5c, 0xe0,
- 0x13, 0x59, 0xbb, 0x84, 0xe8, 0xd9, 0xc8, 0xcc, 0xa1, 0x37, 0xca, 0xcb, 0x5e, 0x26, 0xa6, 0x5a,
- 0xd8, 0xa0, 0xad, 0x67, 0x6c, 0x92, 0x81, 0xd4, 0x5b, 0x60, 0x4a, 0xce, 0xba, 0x73, 0x41, 0xef,
- 0x87, 0x5e, 0xbf, 0xb6, 0xa2, 0xa9, 0xef, 0xae, 0x3b, 0x8b, 0x2e, 0xaf, 0x5f, 0xcd, 0x3a, 0x1e,
- 0xb5, 0xb1, 0x76, 0x16, 0xbb, 0x41, 0x87, 0x61, 0x14, 0x6f, 0xf4, 0x2c, 0xfc, 0xa9, 0x59, 0x1a,
- 0xdf, 0xa4, 0x6a, 0x88, 0x8e, 0xd2, 0x72, 0x8c, 0x54, 0xdd, 0x0d, 0xd3, 0xfb, 0x7d, 0x0b, 0x05,
- 0x91, 0x81, 0x1b, 0x58, 0xa9, 0xc7, 0x59, 0x47, 0x50, 0x7f, 0x56, 0xb0, 0x76, 0xe1, 0xa7, 0x68,
- 0x2d, 0x3c, 0xe7, 0xbc, 0xf7, 0x46, 0x08, 0xce, 0x55, 0x14, 0x6b, 0xbb, 0x49, 0x5a, 0x20, 0x8f,
- 0xa0, 0xad, 0x66, 0xde, 0x50, 0x42, 0x1b, 0x2a, 0x39, 0xda, 0xe2, 0x7f, 0xf8, 0x83, 0x6c, 0xc9,
- 0xbf, 0x7e, 0x48, 0xc2, 0xbe, 0xec, 0x7b, 0x2b, 0x43, 0x2a, 0x53, 0x47, 0x12, 0xbd, 0x2f, 0x42,
- 0x24, 0x30, 0x6d, 0x4e, 0x12, 0x86, 0xde, 0x26, 0x44, 0x10, 0xa2, 0x9c, 0x8a, 0x48, 0xfe, 0x72,
- 0x49, 0x21, 0xb6, 0x3f, 0xc5, 0x55, 0xd8, 0x93, 0x0b, 0x1f, 0x1c, 0x7e, 0xcc, 0x92, 0xe6, 0x87,
- 0xee, 0x88, 0x17, 0x0e, 0x77, 0x57, 0x30, 0xe1, 0x3d, 0x78, 0xb9, 0x1c, 0x75, 0x1f, 0xc0, 0xa4,
- 0x2c, 0x7d, 0x8b, 0x1f, 0x16, 0xdc, 0xaf, 0x11, 0xd6, 0x2b, 0xf0, 0x3e, 0x52, 0x58, 0xf9, 0xec,
- 0x1d, 0x51, 0xf6, 0x99, 0xef, 0x59, 0xed, 0x7c, 0xbf, 0x8e, 0x44, 0xf1, 0xdc, 0x3a, 0x32, 0x4d,
- 0xcc, 0xfd, 0xd1, 0x0c, 0x66, 0x0b, 0xba, 0x40, 0xf5, 0xea, 0xc7, 0x18, 0xa5, 0x5b, 0xad, 0x5f,
- 0x7c, 0xca, 0xb8, 0x70, 0x3e, 0xfd, 0x43, 0x04, 0x2b, 0x46, 0x81, 0xe0, 0x2e, 0xf8, 0xcf, 0x69,
- 0x8e, 0x52, 0x35, 0x44, 0x47, 0x69, 0x39, 0x46, 0x2a, 0x8f, 0xe7, 0x88, 0x9c, 0xdf, 0xe4, 0xe3,
- 0xb8, 0x7a, 0x8f, 0x2d, 0x5c, 0xac, 0x88, 0x73, 0x4c, 0x97, 0x14, 0x5a, 0x53, 0xb3, 0x65, 0xa8,
- 0xe6, 0xc5, 0xf1, 0x5f, 0x73, 0x0d, 0x41, 0xd6, 0xaf, 0x43, 0xeb, 0xbe, 0xad, 0x0f, 0xc7, 0x3a,
- 0xf4, 0xdd, 0x26, 0x78, 0x7a, 0x4e, 0x2e, 0xc5, 0x8d, 0x4b, 0xba, 0xf0, 0xe8, 0x2b, 0xb8, 0x03,
- 0x26, 0xb2, 0xb5, 0xcb, 0x13, 0x71, 0x53, 0x5b, 0x81, 0x6e, 0x57, 0x55, 0xbc, 0x4c, 0x8f, 0xb4,
- 0x1b, 0x14, 0x5d, 0xd5, 0xec, 0x83, 0xb9, 0xfb, 0x33, 0x0c, 0x98, 0x69, 0x86, 0x36, 0xa1, 0xc4,
- 0x4f, 0x64, 0x1d, 0x73, 0xc6, 0x8f, 0x8c, 0x14, 0x87, 0x9d, 0xc0, 0xe6, 0x96, 0x9e, 0x75, 0x0e,
- 0xd5, 0x6b, 0x54, 0x5c, 0x8b, 0x7f, 0x8e, 0xc6, 0x03, 0x98, 0xaa, 0xb8, 0x15, 0x69, 0x7d, 0x5d,
- 0xc5, 0xf1, 0x5b, 0xfe, 0x83, 0xcb, 0x6c, 0xa8, 0xe4, 0xee, 0x0e, 0x3f, 0x66, 0x49, 0x73, 0xa2,
- 0x50, 0xb7, 0x33, 0x6f, 0x28, 0x21, 0xec, 0x15, 0xfd, 0x6d, 0x71, 0xde, 0x7c, 0xa0, 0x36, 0x85,
- 0x79, 0x4c, 0xa7, 0x1a, 0xdd, 0x4a, 0x3d, 0x21, 0xe1, 0x85, 0x33, 0x34, 0x59, 0xf2, 0xf4, 0x45,
- 0x77, 0x44, 0xea, 0x07, 0xda, 0xca, 0x18, 0x91, 0xff, 0x3c, 0xbd, 0x0e, 0xdb, 0xee, 0x60, 0x52,
- 0x16, 0xdf, 0xa4, 0xee, 0x0b, 0x6e, 0xb6, 0xe9, 0x6b, 0xf4, 0x78, 0x1f, 0x29, 0x2c, 0x9d, 0x76,
- 0x52, 0x35, 0xeb, 0xea, 0x29, 0xd6, 0x61, 0x68, 0x38, 0x13, 0x84, 0x17, 0x4a, 0xa4, 0x47, 0x43,
- 0x15, 0x1c, 0x10, 0xc8, 0xeb, 0x03, 0x9c, 0x4b, 0x2d, 0xb5, 0x16, 0x53, 0x04, 0x2a, 0x35, 0xd3,
- 0x9b, 0x4e, 0x25, 0x8c, 0xac, 0x6a, 0xa5, 0x0d, 0x07, 0x3a, 0xf1, 0xdb, 0x98, 0xf5, 0xd1, 0x30,
- 0xb4, 0xf0, 0x1a, 0xb5, 0x5a, 0xdb, 0x20, 0xbe, 0x97, 0x50, 0x6f, 0xa9, 0xe7, 0xab, 0x80, 0x79,
- 0x3e, 0x65, 0x5c, 0x38, 0x1f, 0x9f, 0xc0, 0x02, 0xf4, 0x23, 0xa1, 0x70, 0x17, 0x7c, 0x86, 0xd5,
- 0x80, 0x5a, 0x78, 0x59, 0x40, 0xe9, 0x1c, 0xf6, 0x34, 0x36, 0x69, 0xb2, 0x1e, 0xc3, 0x70, 0xf4,
- 0x36, 0x28, 0xba, 0x69, 0x1b, 0xc5, 0xb1, 0x35, 0x66, 0x18, 0xf3, 0xd2, 0xcf, 0x6c, 0x81, 0x4b,
- 0xd3, 0x2e, 0xff, 0x10, 0x88, 0xa5, 0xda, 0x41, 0x8f, 0x1a, 0x76, 0x20, 0x4f, 0x65, 0xee, 0xd4,
- 0x2b, 0x79, 0x4c, 0xf0, 0xf4, 0x9c, 0x5c, 0x49, 0xd9, 0x96, 0xb7, 0x23, 0x13, 0x56, 0xb3, 0x06,
- 0x01, 0x41, 0x6c, 0xa3, 0xe1, 0x9a, 0xa7, 0xdf, 0x83, 0x3f, 0x9b, 0x85, 0x1b, 0x02, 0xd9, 0x63,
- 0x99, 0xcc, 0xfd, 0x09, 0xad, 0x9d, 0x28, 0x70, 0xc2, 0x44, 0x04, 0x12, 0xae, 0xf1, 0xa0, 0xf6,
- 0xdd, 0x26, 0xb2, 0x0d, 0x8f, 0x25, 0xff, 0xf1, 0x91, 0xa3, 0xf8, 0x1a, 0xcd, 0x79, 0x7a, 0xc3,
- 0xf6, 0x5f, 0xfe, 0xfd, 0x7b, 0xb9, 0xa3, 0xb8, 0x48, 0x35, 0x4f, 0x39, 0xde, 0x2f, 0xc9, 0xc5,
- 0x68, 0x97, 0xc4, 0x1b, 0x34, 0x64, 0x78, 0x90, 0x85, 0xcc, 0x0c, 0x36, 0x31, 0xd0, 0x23, 0xd9,
- 0x12, 0x18, 0xd7, 0x27, 0x09, 0x43, 0x6f, 0x13, 0x22, 0x08, 0x51, 0x4e, 0x45, 0x24, 0x7f, 0x39,
- 0x8a, 0x95, 0x46, 0x8d, 0x45, 0x44, 0xe0, 0xbc, 0x63, 0x73, 0xce, 0xd9, 0xf0, 0xd7, 0x06, 0xac,
- 0x09, 0x0c, 0x8a, 0xf2, 0xe5, 0xc0, 0xd6, 0xe8, 0x11, 0x04, 0xc9, 0x27, 0xc3, 0x12, 0xde, 0xfd,
- 0xa6, 0xe8, 0xcd, 0x92, 0x53, 0x98, 0x4f, 0xad, 0xb5, 0x58, 0x3e, 0xe7, 0xa2, 0x8f, 0xff, 0x40,
- 0x72, 0xc2, 0xf5, 0x6d, 0x39, 0x7d, 0x66, 0xb4, 0x35, 0xff, 0x0f, 0xda, 0xac, 0xe4, 0x5b, 0x7e,
- 0xc4, 0xb0, 0x37, 0x5d, 0x62, 0x51, 0xcb, 0x77, 0x67, 0xd1, 0x95, 0xba, 0x7d, 0x4b, 0xaa, 0xc1,
- 0x3a, 0xa2, 0x2f, 0xf1, 0x1d, 0xb2, 0x19, 0xf8, 0xbd, 0xdf, 0x88, 0x21, 0x7b, 0x74, 0x64, 0x9a,
- 0x74, 0x87, 0x5e, 0x21, 0x3a, 0xa7, 0x32, 0x33, 0xb9, 0x7d, 0xd3, 0x42, 0xf6, 0xe8, 0xc8, 0xf7,
- 0xc1, 0x36, 0x28, 0x37, 0x81, 0xe6, 0xb5, 0x52, 0xad, 0x12, 0x27, 0x6e, 0x0a, 0x41, 0x91, 0xed,
- 0xca, 0xb8, 0x7a, 0x40, 0x65, 0xd1, 0xee, 0xc7, 0x79, 0x68, 0x1b, 0x80, 0xff, 0x57, 0x3e, 0xd6,
- 0xb9, 0x3b, 0xe3, 0x8e, 0xbd, 0x36, 0x2f, 0xac, 0xcf, 0xa8, 0x8f, 0xdf, 0x48, 0xb1, 0xbc, 0xcb,
- 0x70, 0x40, 0x2d, 0xe8, 0x38, 0x8a, 0xeb, 0xc9, 0xf0, 0x81, 0xfa, 0x13, 0x9a, 0xe0, 0x2a, 0xb8,
- 0xbc, 0xbd, 0xfc, 0xe4, 0x5e, 0x81, 0x51, 0x89, 0x05, 0x6b, 0x3d, 0x0b, 0x3f, 0xbb, 0x87, 0xe7,
- 0x34, 0xaa, 0x62, 0xec, 0x1a, 0x32, 0x3c, 0x48, 0xa3, 0x66, 0x06, 0x1b, 0xf9, 0x68, 0xf0, 0x8d,
- 0x6a, 0x15, 0x1c, 0x9e, 0x35, 0x93, 0xf5, 0xed, 0x40, 0xb2, 0xf9, 0xff, 0x07, 0xd4, 0x52, 0x1f,
- 0x48, 0x60, 0xda, 0x9c, 0x24, 0xcf, 0x7f, 0x4c, 0x88, 0x20, 0x87, 0xfb, 0xd7, 0x90, 0x3f, 0xe4,
- 0x5f, 0xfe, 0x12, 0xd1, 0xce, 0x3b, 0x6e, 0x7a, 0x60, 0xeb, 0x64, 0x61, 0xe5, 0xbe, 0x7b, 0xf1,
- 0x8f, 0x13, 0x59, 0xe7, 0xa6, 0xf3, 0x9e, 0x99, 0xa9, 0xb0, 0x7c, 0x0d, 0x87, 0xdd, 0x3d, 0x80,
- 0x69, 0xd6, 0xa8, 0xb8, 0xd5, 0xfe, 0xdf, 0x4f, 0x06, 0xf3, 0x97, 0xb3, 0x2a, 0xd2, 0xfa, 0xba,
- 0x9a, 0x0f, 0x49, 0x2f, 0x4d, 0xf0, 0x02, 0xd2, 0x84, 0x05, 0x6a, 0x5e, 0x83, 0xf7, 0x08, 0x53,
- 0xda, 0x22, 0x75, 0xe2, 0x6d, 0x65, 0x0c, 0xa9, 0x9e, 0x1e, 0xbf, 0x07, 0x8c, 0x77, 0x30, 0x29,
- 0xfd, 0xd1, 0xac, 0x8a, 0x9f, 0x8e, 0xf8, 0x2d, 0x9c, 0x4f, 0x73, 0xd7, 0x2b, 0x39, 0x66, 0xfe,
- 0x39, 0x61, 0x9b, 0xd7, 0xfd, 0xdf, 0x33, 0x5a, 0xfb, 0x9e, 0xe6, 0x6d, 0x56, 0x72, 0xcc, 0x3f,
- 0xa5, 0x2b, 0x79, 0xb4, 0xb3, 0xf5, 0x65, 0x0f, 0xf3, 0x19, 0x50, 0xab, 0x8f, 0x89, 0x57, 0xe5,
- 0xfc, 0x90, 0xc0, 0x29, 0x7e, 0x14, 0x5f, 0xf2, 0x1f, 0x70, 0xe8, 0x52, 0x30, 0x3b, 0xbf, 0x9d,
- 0xe0, 0x80, 0x5a, 0x13, 0x70, 0xd7, 0x15, 0x51, 0x23, 0xc1, 0x37, 0x26, 0xf7, 0x03, 0x54, 0xb3,
- 0x0c, 0x8a, 0x95, 0x98, 0x06, 0x77, 0xa8, 0xcd, 0xdb, 0xc7, 0x7b, 0xf3, 0xb4, 0x18, 0xe5, 0xd1,
- 0x57, 0xb3, 0xf4, 0x80, 0xca, 0x61, 0x1f, 0x4d, 0xf2, 0xd0, 0x36, 0xc3, 0x3d, 0xae, 0x7c, 0x6f,
- 0x54, 0x70, 0x40, 0xa6, 0x2a, 0x0c, 0x35, 0xef, 0xb4, 0x91, 0x58, 0x8f, 0x10, 0xa8, 0xd4, 0xca,
- 0x8d, 0x91, 0x81, 0x62, 0xa7, 0x04, 0x13, 0xe4, 0x6c, 0xce, 0x89, 0xc4, 0xb1, 0xd9, 0x4c, 0x46,
- 0xd2, 0x6f, 0x93, 0xb3, 0x69, 0x3f, 0x7d, 0x9e, 0x0c, 0x25, 0xed, 0xa5, 0x54, 0x67, 0x37, 0xb7,
- 0xf7, 0x1e, 0x92, 0x5e, 0x9a, 0x23, 0x04, 0x67, 0xcb, 0x0a, 0xd4, 0xbc, 0xc5, 0x2d, 0x10, 0xa6,
- 0x5e, 0xbf, 0x7e, 0x72, 0x2f, 0xa1, 0xc9, 0xa5, 0xe3, 0xd4, 0xff, 0xe4, 0xfe, 0xbc, 0xa2, 0x92,
- 0xf9, 0x16, 0xdf, 0x43, 0x9d, 0xa3, 0x21, 0xd7, 0xd5, 0xb3, 0x5a, 0x86, 0x47, 0x31, 0x84, 0xb1,
- 0xf2, 0x98, 0x8d, 0x34, 0x79, 0x94, 0x7a, 0x42, 0x01, 0xc9, 0x66, 0x68, 0xb2, 0x27, 0x2b, 0x8a,
- 0xe3, 0x43, 0xee, 0x35, 0x90, 0xba, 0x3f, 0xf3, 0x65, 0x80, 0x59, 0x6a, 0xda, 0x05, 0xfc, 0x16,
- 0x3b, 0xe3, 0x43, 0x52, 0xfc, 0x28, 0xbe, 0x27, 0x3e, 0xe0, 0x13, 0xa4, 0x60, 0x76, 0xbd, 0xf9,
- 0x03, 0xc3, 0xb4, 0x26, 0xe0, 0x6d, 0x2a, 0xa2, 0x46, 0x41, 0x6e, 0x4c, 0x2d, 0x06, 0xa8, 0xa5,
- 0xa1, 0xec, 0x0a, 0x7d, 0xb1, 0xd8, 0xbc, 0xf5, 0xba, 0xe5, 0x79, 0xfa, 0xe3, 0x81, 0xb5, 0xaa,
- 0x96, 0x85, 0xdc, 0xb7, 0x4b, 0x87, 0xaa, 0x1f, 0x5f, 0xc2, 0x11, 0xad, 0x37, 0xef, 0xed, 0x82,
- 0xaa, 0x62, 0x58, 0x0a, 0x55, 0xef, 0xe7, 0x60, 0x6e, 0x9f, 0x45, 0x14, 0x16, 0x97, 0x1a, 0x91,
- 0x9f, 0x89, 0x56, 0x45, 0xae, 0x47, 0x7c, 0xf7, 0x4e, 0xc6, 0xd8, 0x8a, 0xf4, 0xfd, 0x33, 0x7f,
- 0x46, 0x68, 0x97, 0x81, 0x23, 0x4f, 0x5a, 0xfc, 0x96, 0x99, 0x09, 0xc1, 0x55, 0x8c, 0xab, 0xf3,
- 0x41, 0x6c, 0x50, 0x6e, 0xc1, 0x0f, 0xa9, 0xa4, 0x99, 0x24, 0x4e, 0xdc, 0x14, 0x82, 0xe1, 0x19,
- 0x2a, 0x38, 0x20, 0x53, 0x15, 0x06, 0xfb, 0x96, 0x5a, 0xa9, 0x2c, 0xa6, 0x08, 0x54, 0x6a, 0x65,
- 0x60, 0xda, 0x22, 0x4a, 0x30, 0x3e, 0x09, 0xa7, 0x17, 0xf7, 0x5e, 0x94, 0xe9, 0xc0, 0x24, 0x47,
- 0xe5, 0x06, 0x45, 0x79, 0x93, 0x60, 0x6b, 0x74, 0xe9, 0x02, 0x85, 0xf2, 0x80, 0x09, 0x6f, 0x9f,
- 0x94, 0x07, 0x04, 0x32, 0x4a, 0x70, 0x27, 0x62, 0x9a, 0xbc, 0xe4, 0x64, 0x01, 0xeb, 0x9c, 0x44,
- 0xbe, 0x3f, 0x24, 0x61, 0x5f, 0x76, 0xdc, 0xf4, 0xc0, 0x15, 0xc8, 0xc2, 0x09, 0xbf, 0xf6, 0x21,
- 0x90, 0xc0, 0x77, 0xfb, 0x48, 0x5d, 0xfe, 0x98, 0xd3, 0x40, 0xcd, 0x35, 0x6d, 0xe3, 0x7e, 0x0b,
- 0x2f, 0xbe, 0x3f, 0x39, 0xf6, 0xb1, 0x85, 0xb3, 0x90, 0x6a, 0x9e, 0x72, 0x7f, 0x5e, 0x51, 0x49,
- 0x9d, 0x0b, 0x8e, 0xc0, 0xaf, 0xb0, 0xf1, 0x8a, 0x8b, 0xb8, 0x2d, 0x43, 0xc2, 0xf9, 0x42, 0xb9,
- 0x81, 0x1b, 0x14, 0xfa, 0xa1, 0x73, 0xbb, 0x29, 0xb7, 0x09, 0xf2, 0x37, 0x05, 0xc1, 0xa9, 0x97,
- 0xa2, 0x2f, 0xbe, 0x5b, 0x51, 0xb5, 0x96, 0x57, 0xfc, 0xa4, 0x17, 0xb6, 0xce, 0x87, 0x1d, 0x0f,
- 0x76, 0x05, 0x86, 0xa4, 0x3b, 0x50, 0xbf, 0x4e, 0x7c, 0x03, 0x26, 0x8b, 0xc0, 0xec, 0xb9, 0x31,
- 0x4b, 0xa3, 0x6e, 0xba, 0xc4, 0xa2, 0x55, 0xee, 0xce, 0x61, 0xe9, 0xb7, 0xfa, 0x96, 0x97, 0x41,
- 0xe4, 0x47, 0x29, 0xda, 0x72, 0xfa, 0xcc, 0xab, 0x6a, 0x3d, 0x1e, 0x77, 0x9b, 0x0b, 0xb6, 0xfc,
- 0x06, 0x45, 0xab, 0x4c, 0x03, 0xda, 0x54, 0x87, 0x8c, 0x82, 0xdc, 0x98, 0x5a, 0x0c, 0x93, 0x89,
- 0x55, 0x31, 0x2c, 0x05, 0xcb, 0x96, 0x92, 0x30, 0x37, 0xae, 0xc3, 0x0a, 0x0b, 0xaa, 0x0d, 0xa9,
- 0xae, 0xa5, 0x2b, 0xc3, 0x57, 0xc2, 0x3e, 0x9a, 0x27, 0x63, 0x6c, 0x45, 0x7a, 0x9f, 0xf8, 0xde,
- 0x1c, 0x10, 0x9a, 0x3a, 0x0e, 0xc3, 0x4a, 0xa3, 0x3c, 0xb1, 0xdf, 0x74, 0xc7, 0x38, 0xeb, 0x2e,
- 0x75, 0xc6, 0x32, 0x82, 0xdb, 0x3d, 0x95, 0xec, 0x3a, 0x42, 0x48, 0xc7, 0xed, 0xea, 0x11, 0x94,
- 0x5b, 0x39, 0x61, 0x18, 0xcc, 0x16, 0xb7, 0x80, 0x29, 0x17, 0x4d, 0x30, 0x89, 0xb6, 0x99, 0xbe,
- 0x04, 0xc7, 0x73, 0xc9, 0x02, 0x2d, 0xd9, 0xfa, 0x49, 0xfc, 0x29, 0x51, 0x6c, 0x08, 0xe2, 0x4f,
- 0x27, 0xf3, 0xd9, 0x68, 0xf2, 0xeb, 0xf4, 0x84, 0x02, 0x51, 0xcc, 0xd0, 0xa7, 0x4e, 0x56, 0xd7,
- 0x4d, 0xe6, 0xc5, 0xf6, 0xc7, 0x78, 0x01, 0x69, 0x42, 0xe3, 0x35, 0x2f, 0xa0, 0x9a, 0x04, 0xc8,
- 0x9c, 0x4a, 0xe2, 0x63, 0x4e, 0x2a, 0x56, 0x55, 0x08, 0x87, 0xb6, 0xc6, 0xd9, 0xfb, 0x9b, 0xda,
- 0x20, 0xf7, 0x1e, 0x87, 0x10, 0xab, 0x07, 0xdc, 0x0d, 0xec, 0x8b, 0xcd, 0xe6, 0x40, 0x1c, 0x3d,
- 0x53, 0x74, 0x87, 0x49, 0xc8, 0x4c, 0xc6, 0xb7, 0xbb, 0x2c, 0x1f, 0x92, 0x51, 0xa6, 0x9e, 0x20,
- 0xd0, 0xed, 0x4b, 0x36, 0x68, 0xc8, 0xf0, 0xe3, 0xc9, 0x5b, 0x18, 0x6c, 0x62, 0x63, 0x46, 0x71,
- 0x95, 0x46, 0x68, 0x91, 0xab, 0xea, 0x80, 0xbd, 0x19, 0x83, 0x7f, 0xe1, 0x1a, 0xe9, 0x45, 0x27,
- 0xf3, 0xd9, 0xe1, 0x97, 0x98, 0x0e, 0xdd, 0x9d, 0x82, 0xf6, 0xfd, 0xed, 0xa9, 0x25, 0xf2, 0xe9,
- 0x85, 0xdc, 0x67, 0x33, 0xa3, 0x5e, 0x62, 0xd3, 0xfe, 0xf5, 0xdb, 0x66, 0x69, 0xc9, 0x4b, 0xd8,
- 0x88, 0x17, 0x9e, 0x08, 0x44, 0xb3, 0x6d, 0xc1, 0xa6, 0x0d, 0x3b, 0x10, 0xc6, 0xd3, 0x77, 0x6a,
- 0xb0, 0x37, 0x69, 0x7c, 0x58, 0xf6, 0xf9, 0x44, 0xde, 0xac, 0x46, 0xf8, 0x8b, 0xa3, 0x62, 0x36,
- 0x22, 0x75, 0xc6, 0x02, 0x11, 0x5c, 0x8a, 0xa1, 0xc8, 0x92, 0x7e, 0x04, 0xd0, 0x44, 0x6d, 0xfb,
- 0x0b, 0x8e, 0x52, 0x77, 0xe4, 0x37, 0x5b, 0x95, 0xd4, 0x7a, 0x3c, 0xee, 0xf5, 0x16, 0xaf, 0x3b,
- 0x02, 0x82, 0xd8, 0x85, 0x01, 0xf7, 0x8d, 0x7d, 0xc5, 0x7e, 0xf5, 0xc9, 0x36, 0x04, 0x71, 0xc6,
- 0xc9, 0x7b, 0xce, 0x66, 0x85, 0xbc, 0xc4, 0x65, 0x3f, 0x29, 0x75, 0xcc, 0xd2, 0x51, 0x96, 0x73,
- 0xdb, 0x63, 0x19, 0x41, 0x8c, 0xff, 0xab, 0x76, 0x1d, 0x21, 0x24, 0x82, 0x97, 0x75, 0xe9, 0x4a,
- 0xb6, 0x72, 0xc2, 0x30, 0x5b, 0x2c, 0xad, 0xc3, 0x52, 0x2e, 0x9a, 0x60, 0xd1, 0xaf, 0xf1, 0xbf,
- 0x40, 0x2d, 0x3c, 0xcd, 0x20, 0x95, 0x0e, 0x7b, 0x1a, 0x1b, 0xd5, 0x59, 0x0f, 0x80, 0x38, 0x7a,
- 0x4e, 0x25, 0x71, 0xd0, 0x27, 0x15, 0x2b, 0xcb, 0x04, 0xa2, 0x5b, 0x63, 0x8d, 0x9c, 0xac, 0x6d,
- 0xd7, 0xe9, 0x8c, 0xd9, 0x8a, 0x88, 0x03, 0xbb, 0xc6, 0xe6, 0x5f, 0x71, 0x23, 0x6d, 0x0c, 0x9b,
- 0xab, 0x23, 0x34, 0xa9, 0xb4, 0x75, 0x40, 0xbf, 0xed, 0xa0, 0xde, 0x91, 0x0d, 0x95, 0xc3, 0xf2,
- 0x98, 0x8d, 0x91, 0xaa, 0x4c, 0x07, 0x8f, 0xaf, 0x41, 0x7b, 0x9f, 0x97, 0xb5, 0xf3, 0x79, 0x95,
- 0xc8, 0x3a, 0xa2, 0xc5, 0x64, 0x26, 0x63, 0xba, 0xbc, 0x16, 0xee, 0x49, 0xc9, 0x53, 0x4f, 0x10,
- 0xaf, 0xe4, 0x47, 0x60, 0xb6, 0x58, 0x99, 0x45, 0xa4, 0x5c, 0xf7, 0xc0, 0x61, 0x9d, 0x21, 0xbd,
- 0xa3, 0x6e, 0xd2, 0xf8, 0xb0, 0x2f, 0x31, 0x88, 0x7f, 0x9b, 0x8c, 0x33, 0xd5, 0x85, 0xc4, 0x6c,
- 0x44, 0xea, 0x4f, 0x04, 0x22, 0xb8, 0xd7, 0x81, 0x53, 0xe7, 0xfc, 0x08, 0x63, 0x88, 0xda, 0x35,
- 0x84, 0x9d, 0x0b, 0x90, 0x42, 0xc4, 0xc5, 0x0c, 0x7d, 0xca, 0x40, 0xe3, 0x72, 0xcb, 0x92, 0xbb,
- 0x9e, 0xc8, 0x3a, 0xe6, 0x4f, 0xdd, 0xdb, 0x28, 0xcd, 0xf9, 0x43, 0x0f, 0xef, 0xff, 0xea, 0x1c,
- 0xe2, 0x02, 0x82, 0x96, 0x71, 0x20, 0x98, 0x2c, 0xe6, 0xbf, 0xc2, 0xef, 0xc1, 0x07, 0x25, 0x75,
- 0xcd, 0xbc, 0xbd, 0xaf, 0x87, 0x91, 0x1d, 0x9f, 0x76, 0xd5, 0x5c, 0x9d, 0xbe, 0x59, 0x74, 0x3c,
- 0xfb, 0x94, 0x07, 0xc6, 0x9c, 0x54, 0xac, 0xaa, 0x10, 0xcd, 0xaf, 0x4f, 0x71, 0x35, 0xf5, 0x77,
- 0x45, 0xab, 0x23, 0xa7, 0xc3, 0x22, 0x70, 0x5e, 0xd0, 0xd8, 0x67, 0x8d, 0x78, 0x8a, 0x03, 0x56,
- 0x23, 0x34, 0xaa, 0xa1, 0xf0, 0xc6, 0x2d, 0x7e, 0x4b, 0xad, 0xe5, 0x81, 0xcb, 0x46, 0xb4, 0x98,
- 0xc6, 0x32, 0xef, 0xd8, 0x63, 0xa6, 0x46, 0x0a, 0xa2, 0xaf, 0x60, 0x73, 0x4b, 0x4f, 0xdb, 0x07,
- 0x3d, 0xa6, 0xe8, 0x1e, 0xff, 0xf2, 0xea, 0xa0, 0xb2, 0x62, 0xcf, 0x3c, 0x3a, 0x7a, 0x2e, 0x70,
- 0x17, 0x9e, 0xc8, 0x4d, 0xea, 0xf4, 0x11, 0x36, 0xe8, 0xcb, 0xe3, 0x9a, 0x32, 0x2e, 0x44, 0x15,
- 0xeb, 0x0e, 0x08, 0x64, 0x94, 0xe0, 0x4e, 0xc4, 0xf7, 0xbb, 0x0b, 0xc8, 0x02, 0x15, 0xfb, 0x88,
- 0x2e, 0xff, 0x53, 0x9a, 0x17, 0x2b, 0x22, 0x6c, 0x13, 0x55, 0x05, 0xf7, 0x64, 0x5c, 0x88, 0x2a,
- 0xcb, 0xf9, 0x16, 0xe3, 0x84, 0x4b, 0x49, 0x18, 0xfa, 0x57, 0x80, 0x05, 0xe4, 0x55, 0xe7, 0xb5,
- 0xb2, 0xb5, 0xb1, 0xf9, 0x59, 0x01, 0x74, 0x39, 0x1b, 0xd2, 0xb3, 0x31, 0xbd, 0xa7, 0x13, 0xf0,
- 0x5c, 0x3d, 0xa6, 0xf7, 0x2e, 0x56, 0x44, 0xd8, 0x26, 0xaa, 0x0a, 0x2d, 0xc8, 0xb8, 0xd3, 0x54,
- 0x4a, 0xe2, 0x02, 0x19, 0x25, 0x38, 0xf2, 0x31, 0x4d, 0x5e, 0x72, 0x32, 0xe1, 0x94, 0x4e, 0x22,
- 0x64, 0x1d, 0x51, 0x83, 0x32, 0x13, 0xd0, 0x5d, 0x5e, 0x0b, 0x77, 0xc5, 0x85, 0xc8, 0xc6, 0x08,
- 0x71, 0x01, 0x41, 0x4b, 0xd9, 0x10, 0x4c, 0x16, 0x73, 0xbe, 0x61, 0x96, 0x81, 0xe2, 0xf3, 0xdb,
- 0x35, 0xeb, 0x0e, 0x4f, 0xfb, 0xa8, 0x9b, 0x97, 0x20, 0x59, 0x9d, 0x9e, 0xe2, 0x6a, 0x29, 0xee,
- 0xc7, 0x73, 0x83, 0x7b, 0x82, 0x3c, 0xe1, 0xd5, 0x21, 0x90, 0xfb, 0xf6, 0x50, 0x4d, 0x02, 0x64,
- 0x07, 0x04, 0xc7, 0xef, 0xe2, 0x40, 0xf3, 0x58, 0x0f, 0xbd, 0x47, 0x1d, 0x41, 0x0e, 0x4a, 0xea,
- 0x59, 0xbb, 0xb9, 0x9d, 0xcd, 0xe1, 0x3a, 0xfd, 0xec, 0x69, 0xb8, 0xf9, 0xbf, 0xb2, 0xe8, 0x78,
- 0x38, 0x20, 0xf7, 0x74, 0x1c, 0x45, 0x94, 0x85, 0x78, 0xa1, 0x7d, 0xe8, 0x4d, 0x70, 0x15, 0x5c,
- 0xea, 0x4f, 0x64, 0xc7, 0x75, 0x7a, 0xe9, 0x1b, 0x74, 0x84, 0x90, 0x4d, 0x19, 0x17, 0x22, 0xeb,
- 0x37, 0x69, 0xd6, 0xca, 0xfa, 0x5f, 0x16, 0xea, 0xe5, 0x27, 0x68, 0x57, 0xd4, 0x6e, 0x58, 0x28,
- 0x63, 0x19, 0x96, 0x6c, 0xd0, 0x53, 0x23, 0x05, 0x51, 0xb6, 0x30, 0xd8, 0xc4, 0xc6, 0x8c, 0xe2,
- 0x18, 0xd7, 0xe9, 0xf3, 0x0c, 0xee, 0x93, 0x59, 0x75, 0x4d, 0xf6, 0x25, 0xab, 0x30, 0x09, 0x61,
- 0xa7, 0xa9, 0xa1, 0x31, 0xb2, 0x02, 0xe8, 0x72, 0x36, 0x67, 0xa5, 0x62, 0xb9, 0x8d, 0x26, 0x23,
- 0x58, 0xfa, 0xd5, 0x3e, 0x2c, 0x7b, 0x9d, 0x22, 0x6f, 0x56, 0x23, 0x7c, 0xa4, 0xb0, 0x31, 0x1b,
- 0x11, 0xdb, 0x63, 0x01, 0xe9, 0x2e, 0x45, 0xb1, 0x64, 0x49, 0x3f, 0x02, 0x68, 0x22, 0xd7, 0x9c,
- 0xf5, 0x9c, 0x4a, 0xdb, 0x9b, 0xd4, 0x89, 0x1a, 0x0e, 0x74, 0x21, 0x75, 0xf3, 0x29, 0x61, 0x60,
- 0xd9, 0xe1, 0xc1, 0xc4, 0x8d, 0x08, 0x26, 0x0b, 0xd8, 0x5f, 0xd1, 0x4b, 0xa1, 0x71, 0x98, 0x8c,
- 0xe9, 0x8c, 0xd0, 0xe1, 0x95, 0x17, 0xc3, 0xb9, 0x32, 0xc5, 0xfe, 0x01, 0x34, 0x11, 0x8a, 0x4e,
- 0x25, 0x71, 0x01, 0xed, 0xf3, 0x1c, 0x79, 0xf9, 0xc7, 0x2f, 0x39, 0x19, 0x91, 0x4a, 0x27, 0x11,
- 0xf8, 0x57, 0xb3, 0xe0, 0x7c, 0x39, 0x86, 0x08, 0x56, 0x8c, 0xc1, 0x03, 0x5c, 0x33, 0x5d, 0xd2,
- 0x97, 0xc4, 0xb0, 0x14, 0xaa, 0x1d, 0x0d, 0xc0, 0xdc, 0xfd, 0x8a, 0x28, 0x2c, 0xed, 0x34, 0xe1,
- 0xb1, 0x76, 0x05, 0xdf, 0xb9, 0x6c, 0x5e, 0x9b, 0x5d, 0x93, 0xdd, 0x7d, 0x90, 0xa1, 0xbb, 0x55,
- 0x19, 0x96, 0x85, 0x50, 0xed, 0x74, 0x34, 0x86, 0xf6, 0x72, 0x6d, 0xa0, 0xb0, 0x32, 0xd0, 0x02,
- 0x0f, 0x49, 0x21, 0xbe, 0xe6, 0x1a, 0x82, 0x6f, 0x9d, 0x86, 0x15, 0xbf, 0x99, 0x1e, 0x4d, 0x74,
- 0x89, 0x56, 0xf2, 0xab, 0xa5, 0x29, 0xca, 0x1e, 0x25, 0x32, 0xa0, 0x95, 0xdd, 0xd1, 0xae, 0x09,
- 0xdc, 0x67, 0xde, 0xae, 0x6e, 0xbf, 0x58, 0x2e, 0x12, 0x9c, 0x63, 0x9f, 0xd6, 0x7b, 0xa3, 0xa0,
- 0x08, 0x4d, 0xe6, 0x51, 0x04, 0x5a, 0x71, 0x37, 0x92, 0x3b, 0x52, 0xa2, 0xd8, 0x10, 0x07, 0x9e,
- 0xf1, 0x5b, 0x39, 0x12, 0x99, 0xf9, 0x50, 0xe0, 0x47, 0x88, 0x08, 0x24, 0x9f, 0x21, 0x83, 0x2f,
- 0xa8, 0xe0, 0x80, 0x8f, 0x54, 0x18, 0x6a, 0x1d, 0xab, 0xe1, 0xb0, 0xdd, 0x20, 0x93, 0x6b, 0x57,
- 0x0e, 0x08, 0x4d, 0x1d, 0x07, 0x80, 0x25, 0xb0, 0x1e, 0xb9, 0x8e, 0x3a, 0x82, 0x1c, 0x94, 0x17,
- 0x6f, 0x93, 0x03, 0xf4, 0xd6, 0x24, 0x8b, 0xc8, 0x8a, 0x71, 0x4b, 0x2b, 0x70, 0xde, 0x69, 0x33,
- 0x7d, 0x8b, 0xd4, 0xd3, 0xdf, 0x67, 0xe4, 0xdb, 0xa8, 0x79, 0x1a, 0x65, 0x35, 0xfa, 0x16, 0x0a,
- 0xd4, 0x2a, 0x38, 0xff, 0x6a, 0xe5, 0x29, 0x19, 0x80, 0xa7, 0x31, 0x3d, 0x0e, 0x6b, 0xa4, 0x3e,
- 0xbd, 0xfc, 0x90, 0x47, 0xbf, 0x1b, 0xf6, 0x56, 0x86, 0x54, 0xa6, 0x8e, 0x24, 0xb9, 0x5e, 0x84,
- 0x86, 0x1f, 0xd3, 0x15, 0x43, 0x33, 0x48, 0x71, 0xb8, 0xb4, 0xb5, 0x2a, 0x44, 0xcf, 0xe3, 0x7d,
- 0xec, 0x0a, 0xcf, 0x8b, 0x76, 0xa0, 0xbd, 0x9c, 0xf8, 0x06, 0x4c, 0xd5, 0x43, 0x1b, 0xb1, 0x62,
- 0x32, 0xef, 0xc9, 0xa0, 0x19, 0xe8, 0x68, 0xcf, 0x2f, 0xe4, 0xda, 0x83, 0xa3, 0x64, 0x63, 0x04,
- 0x7e, 0x48, 0x60, 0xf5, 0x3f, 0x0a, 0xce, 0x79, 0xee, 0x38, 0x74, 0x29, 0x18, 0xfc, 0xbe, 0xaf,
- 0xed, 0x4b, 0xa3, 0x28, 0x97, 0x3a, 0x1a, 0x43, 0x7b, 0x39, 0xd7, 0x50, 0x58, 0x19, 0x68, 0x01,
- 0x6e, 0xd2, 0x6f, 0x57, 0x37, 0xbe, 0x2c, 0x17, 0x09, 0x4e, 0xd0, 0xae, 0x6b, 0xdc, 0xb0, 0x50,
- 0xc3, 0xb4, 0xf0, 0xb2, 0x80, 0x11, 0x38, 0x2f, 0x68, 0x6c, 0xd2, 0xa7, 0x3c, 0x45, 0xe0, 0x2b,
- 0x21, 0xb6, 0x72, 0x24, 0xf1, 0x31, 0xa0, 0x03, 0x8e, 0xd3, 0x10, 0x48, 0xfd, 0x42, 0xc5, 0x5e,
- 0x62, 0x58, 0xfa, 0xcf, 0x31, 0xc9, 0x84, 0xda, 0xd2, 0x89, 0xab, 0x5d, 0xdf, 0xc4, 0x55, 0x81,
- 0xce, 0x7f, 0x09, 0x89, 0x67, 0xfc, 0x37, 0x3d, 0x30, 0x94, 0x32, 0xd1, 0x93, 0x5f, 0xdc, 0x99,
- 0x93, 0x03, 0xc3, 0xdd, 0xa8, 0x30, 0xd4, 0x3a, 0x95, 0x01, 0xa3, 0x79, 0x40, 0xe5, 0xd6, 0xae,
- 0x4c, 0xa7, 0xa9, 0x55, 0x26, 0xe2, 0xa6, 0xb6, 0xc1, 0xdc, 0xae, 0xaa, 0xbb, 0x98, 0xdd, 0xab,
- 0xde, 0xe5, 0x06, 0x2b, 0x6f, 0x48, 0xd5, 0x53, 0xd7, 0xe2, 0x96, 0x56, 0xe0, 0x7f, 0xd2, 0x66,
- 0x3f, 0x24, 0x30, 0x9b, 0xfe, 0x05, 0x67, 0xdd, 0x77, 0x1c, 0x3a, 0xf5, 0x0c, 0x7e, 0x5f, 0xb6,
- 0x43, 0xee, 0x88, 0xeb, 0xc0, 0xf8, 0x24, 0xd9, 0x5c, 0x5a, 0xbb, 0x15, 0x22, 0x86, 0x90, 0xdf,
- 0x73, 0x83, 0x99, 0xce, 0xd8, 0xe7, 0xc1, 0x6b, 0xb6, 0xc0, 0x94, 0x5f, 0xb7, 0xe6, 0x82, 0x1d,
- 0xad, 0x66, 0x9f, 0xe5, 0xb7, 0xaf, 0x14, 0x38, 0x61, 0x22, 0x02, 0x09, 0x57, 0x99, 0x50, 0x7b,
- 0xf0, 0x1a, 0x55, 0xb1, 0x78, 0x63, 0xf7, 0x3f, 0xc4, 0xb7, 0x93, 0xa1, 0x84, 0x23, 0x5a, 0x4c,
- 0x47, 0x29, 0xfb, 0x22, 0xc2, 0xd5, 0xfd, 0x23, 0x15, 0xa6, 0x92, 0x44, 0x4e, 0x8e, 0x72, 0x90,
- 0x3c, 0xe7, 0x84, 0xbd, 0x1e, 0x68, 0x4d, 0x7f, 0x31, 0x5d, 0x54, 0xb9, 0x21, 0x78, 0xf7, 0x13,
- 0x61, 0x9b, 0x4e, 0xe9, 0xd1, 0xa4, 0xae, 0x78, 0x94, 0xc8, 0xc5, 0x11, 0xf2, 0xc2, 0xfd, 0x24,
- 0x56, 0xf2, 0x98, 0x23, 0x2b, 0xfb, 0xb8, 0x92, 0x71, 0xef, 0xad, 0x46, 0x26, 0xac, 0xa5, 0x0c,
- 0x29, 0xfb, 0x94, 0x75, 0xf5, 0x6b, 0xd1, 0x34, 0x1c, 0xe8, 0x42, 0xea, 0x25, 0x52, 0xc2, 0xc0,
- 0x7b, 0xce, 0x7f, 0x9f, 0xdc, 0xbd, 0xb0, 0x5c, 0x24, 0xfb, 0xc6, 0xfd, 0x6f, 0xf6, 0x85, 0x83,
- 0x10, 0x9a, 0x0f, 0xa2, 0x08, 0xb4, 0xe2, 0x6e, 0xe7, 0x76, 0xa4, 0x87, 0x73, 0x20, 0x0e, 0xff,
- 0xff, 0x53, 0x74, 0x0f, 0x9e, 0x79, 0x75, 0x50, 0x59, 0x31, 0x86, 0x1e, 0x1d, 0x3d, 0x17, 0x38,
- 0x5d, 0x7c, 0xca, 0x54, 0xcf, 0xcc, 0xe3, 0x07, 0xa5, 0x95, 0x91, 0xa8, 0xd3, 0xba, 0x0a, 0x37,
- 0x31, 0x2c, 0x7d, 0x86, 0xf9, 0x85, 0x42, 0x6d, 0x69, 0xa5, 0xb4, 0xcf, 0x8e, 0x62, 0xcb, 0xa1,
- 0xb7, 0x33, 0xae, 0x93, 0xba, 0xb6, 0x0a, 0x1c, 0xd1, 0x11, 0x01, 0xe5, 0xca, 0xad, 0x28, 0xdc,
- 0xb3, 0xf4, 0xdd, 0x5a, 0xb8, 0x9b, 0xd3, 0xe6, 0x98, 0xed, 0x28, 0xb4, 0xa6, 0xa5, 0xca, 0x93,
- 0x6b, 0x54, 0x70, 0x3d, 0xd4, 0x09, 0x52, 0x32, 0xc3, 0x8d, 0x62, 0x7a, 0x1c, 0xd6, 0x8b, 0x7c,
- 0xc0, 0x77, 0x44, 0x94, 0x60, 0x7c, 0x12, 0x8d, 0x2e, 0x2d, 0xbc, 0xeb, 0x11, 0x43, 0x48, 0x8e,
- 0x7f, 0x09, 0x0c, 0x56, 0xde, 0x90, 0x69, 0xa6, 0x6d, 0x07, 0xef, 0xac, 0x03, 0xfe, 0x67, 0xcc,
- 0x1e, 0x92, 0x42, 0xbf, 0x0f, 0x34, 0xc7, 0xde, 0xf9, 0xcf, 0x2a, 0xbd, 0xf1, 0x3c, 0x9a, 0xe8,
- 0xd1, 0xac, 0x27, 0x95, 0x89, 0x52, 0x57, 0x3c, 0x4a, 0x64, 0x83, 0xe9, 0x79, 0x61, 0x9f, 0x12,
- 0x78, 0x0d, 0xcb, 0xb9, 0x3c, 0xd0, 0x9a, 0xfe, 0x62, 0xba, 0xa8, 0xb1, 0x42, 0xf0, 0x2d, 0x26,
- 0xc2, 0xf5, 0x9c, 0x11, 0x61, 0x8b, 0x9f, 0xf0, 0xeb, 0x53, 0x49, 0x22, 0x27, 0x47, 0x39, 0x48,
- 0xbb, 0xb9, 0x3b, 0x0b, 0xbc, 0xc1, 0xa2, 0xd1, 0x0a, 0xd6, 0x7a, 0x16, 0x7e, 0xb5, 0xcd, 0x0d,
- 0x6d, 0x11, 0xdb, 0x71, 0xd7, 0xd3, 0x06, 0xb5, 0x4f, 0x0f, 0xbe, 0xe2, 0x46, 0xda, 0x18, 0xf5,
- 0xe1, 0xc1, 0x36, 0xb0, 0x91, 0x4d, 0xb2, 0x8e, 0xa0, 0xfe, 0xac, 0xa3, 0xec, 0x01, 0x8d, 0xd0,
- 0x1f, 0xd3, 0x2e, 0x1c, 0xee, 0xae, 0x60, 0x01, 0x7a, 0xf0, 0xb1, 0x38, 0xea, 0x3e, 0x43, 0x8b,
- 0x82, 0xd8, 0xa0, 0xdc, 0x41, 0x1e, 0x91, 0x8b, 0xf1, 0x48, 0x9c, 0x7b, 0x28, 0xc7, 0x01, 0x32,
- 0xba, 0xf8, 0x57, 0xa8, 0x5d, 0x5b, 0x05, 0x0e, 0x89, 0xe9, 0xe1, 0x93, 0x65, 0xb7, 0x14, 0x6e,
- 0x8c, 0xd0, 0xed, 0xc1, 0x46, 0x9e, 0xb4, 0x3b, 0xef, 0xf1, 0x12, 0x41, 0xaa, 0xdb, 0x95, 0x25,
- 0xcf, 0x3e, 0x65, 0x2a, 0x86, 0x66, 0x90, 0xe2, 0xb3, 0xab, 0xa9, 0x54, 0x88, 0x5d, 0x05, 0xfa,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xfe, 0x12, 0x18, 0xac, 0x7f, 0xe3, 0xd2, 0x8f, 0xda, 0x0e, 0x1d, 0x9b, 0x06, 0x3f, 0xce, 0x5b,
- 0x42, 0xaf, 0xe4, 0x48, 0x21, 0x62, 0x83, 0x06, 0xdf, 0x65, 0x20, 0x90, 0x39, 0x84, 0x49, 0xbc,
- 0xd6, 0xa8, 0xe0, 0x7a, 0x6b, 0x12, 0xa4, 0x64, 0x45, 0xd9, 0xc4, 0xf4, 0x38, 0x6f, 0xd5, 0xf8,
- },
- { /* 11 */
- 0xd8, 0x59, 0xe0, 0xf8, 0xd2, 0x2a, 0xca, 0x1c, 0x17, 0x58, 0x25, 0x47, 0x72, 0xa8, 0x1d, 0x31,
- 0x69, 0xb6, 0x74, 0x38, 0x5c, 0x64, 0x10, 0xef, 0x82, 0xee, 0xaa, 0xe9, 0x8a, 0x53, 0xb7, 0xc0,
- 0xc0, 0xd2, 0x41, 0xdb, 0x4a, 0x91, 0xd0, 0xa1, 0x55, 0xac, 0x5e, 0x8f, 0x3d, 0x01, 0xdf, 0x89,
- 0xba, 0xbf, 0xf7, 0x5c, 0x54, 0x08, 0xff, 0xc7, 0x32, 0xa4, 0x91, 0x4e, 0xac, 0x20, 0xdc, 0x8e,
- 0x16, 0xa0, 0xc6, 0xfb, 0x77, 0x8c, 0x4a, 0x68, 0x8d, 0x24, 0x3c, 0x03, 0xa8, 0x75, 0xec, 0xfe,
- 0x87, 0x68, 0xac, 0xfe, 0x5b, 0xa5, 0x09, 0xf4, 0xe0, 0xa0, 0x17, 0xcf, 0x05, 0xd1, 0x3c, 0x6c,
- 0x58, 0xc5, 0x9e, 0x6a, 0x1f, 0x75, 0xeb, 0x63, 0x71, 0x90, 0xf0, 0x0c, 0xe5, 0x17, 0x36, 0x7e,
- 0x59, 0x63, 0xf5, 0x7e, 0xaf, 0xd1, 0x24, 0x56, 0x06, 0xc5, 0x5c, 0xba, 0x14, 0xc2, 0xf0, 0x73,
- 0xc4, 0x0f, 0x2e, 0x8b, 0xcf, 0x44, 0x6a, 0x75, 0x4a, 0x3b, 0xab, 0x12, 0x7f, 0xd3, 0x41, 0xbd,
- 0x6a, 0x9f, 0xc9, 0x04, 0x4f, 0x4b, 0x82, 0xb0, 0x1b, 0x11, 0x9d, 0xf0, 0x5a, 0xef, 0x3e, 0xd7,
- 0x05, 0x7b, 0x04, 0x44, 0x35, 0x71, 0x75, 0xe1, 0x68, 0xc2, 0x59, 0x2b, 0xb3, 0x07, 0x58, 0x39,
- 0x9a, 0x98, 0x09, 0x99, 0xf6, 0x6f, 0x66, 0xa8, 0xca, 0x96, 0x35, 0x2c, 0xf9, 0x7f, 0xa6, 0xed,
- 0x06, 0x52, 0xb9, 0x78, 0x26, 0x5e, 0xe7, 0xbe, 0xf1, 0x3d, 0x6e, 0x32, 0x63, 0xbb, 0xd1, 0x2e,
- 0xa6, 0xe9, 0x39, 0x2f, 0x49, 0x66, 0x5f, 0xae, 0x6f, 0xc7, 0x1f, 0x1b, 0xa1, 0x5b, 0x80, 0x02,
- 0x0d, 0x02, 0xda, 0xe4, 0xfc, 0x18, 0xc2, 0x8a, 0x56, 0x2f, 0x70, 0xd2, 0x37, 0x60, 0xa7, 0x51,
- 0xd1, 0x86, 0x55, 0x4c, 0xab, 0xe7, 0xb2, 0x42, 0x5e, 0xe0, 0xa0, 0x08, 0x07, 0x1a, 0x24, 0x54,
- 0x43, 0x67, 0x82, 0x75, 0x94, 0xe1, 0x63, 0x81, 0xaa, 0x9b, 0xbc, 0xdd, 0x7a, 0x02, 0x7d, 0xd1,
- 0x85, 0xe7, 0x7a, 0xd6, 0xf8, 0x2e, 0x54, 0x9e, 0x0e, 0x0a, 0x8c, 0x60, 0x24, 0xb8, 0x73, 0x76,
- 0x41, 0xe8, 0x54, 0x5d, 0x37, 0x6a, 0x3e, 0xeb, 0x44, 0x31, 0x27, 0x72, 0x5b, 0x6b, 0x32, 0xcb,
- 0xd2, 0xaf, 0xe8, 0x70, 0xb8, 0xc8, 0x20, 0x1d, 0xc7, 0x1f, 0x97, 0x11, 0xd7, 0xa6, 0xad, 0x43,
- 0x2c, 0x83, 0x4f, 0x35, 0xee, 0xdb, 0x94, 0xd0, 0xd9, 0x48, 0x78, 0x06, 0x93, 0xea, 0x1b, 0x3f,
- 0xcd, 0xd0, 0x9b, 0x3f, 0xb6, 0x89, 0x12, 0x2b, 0x03, 0x83, 0x2e, 0x5d, 0x0a, 0x61, 0x78, 0xd8,
- 0x0b, 0x50, 0x63, 0x9c, 0xda, 0x46, 0x25, 0x34, 0xa7, 0x12, 0x1e, 0xe0, 0x54, 0xdb, 0x76, 0x7f,
- 0xa2, 0x34, 0x56, 0x7f, 0xcc, 0xb3, 0xe5, 0x7a, 0x70, 0x50, 0xea, 0x86, 0xe3, 0x89, 0x1e, 0x36,
- 0x38, 0xac, 0x5f, 0xe6, 0x3a, 0xdc, 0x83, 0xd2, 0xba, 0xc6, 0xdf, 0xaa, 0x1a, 0xf6, 0xb8, 0xdb,
- 0xf7, 0xf3, 0x12, 0xf1, 0x2f, 0xde, 0xcc, 0x93, 0x57, 0xef, 0x6a, 0x58, 0x31, 0xfe, 0x8f, 0x19,
- 0x4b, 0x1e, 0x5c, 0xd5, 0x5d, 0x88, 0xd4, 0xea, 0x94, 0x76, 0x95, 0x24, 0xfe, 0x65, 0x82, 0xb9,
- 0xe6, 0xa7, 0x06, 0x66, 0xce, 0xa8, 0xae, 0x70, 0x5c, 0xa3, 0x94, 0xdf, 0x0b, 0xe5, 0x74, 0xc4,
- 0xe7, 0x01, 0x6d, 0x72, 0x7e, 0x0c, 0x61, 0x45, 0x2b, 0xf6, 0x38, 0x69, 0xfa, 0x30, 0xb2, 0xc9,
- 0x90, 0x6e, 0x01, 0x11, 0x9c, 0x8d, 0x8c, 0xa9, 0x1a, 0xd1, 0x87, 0x7a, 0x5c, 0x71, 0x16, 0x9f,
- 0x1a, 0x04, 0x77, 0x0b, 0x3b, 0x30, 0x47, 0xd7, 0xac, 0x5e, 0xe0, 0x67, 0x6e, 0xc0, 0x8d, 0xa2,
- 0x53, 0x95, 0xfd, 0xf6, 0xc5, 0x33, 0xce, 0x57, 0xd6, 0x82, 0xee, 0xec, 0xb1, 0xcc, 0x40, 0x01,
- 0xa3, 0x92, 0x3d, 0x6b, 0x7c, 0x17, 0x2a, 0x4f, 0x07, 0x05, 0x46, 0x30, 0x12, 0x5c, 0xd8, 0x3b,
- 0xf1, 0xa1, 0xab, 0x89, 0x09, 0x80, 0x2b, 0x2d, 0xa6, 0xd2, 0x04, 0x6a, 0x52, 0x45, 0x5e, 0x37,
- 0xfd, 0x05, 0x1a, 0x79, 0x45, 0x3c, 0x26, 0x92, 0x87, 0xa8, 0xd8, 0x0e, 0x94, 0xf0, 0x3f, 0x6b,
- 0x51, 0x1a, 0x2b, 0xde, 0x66, 0xb8, 0x93, 0x3d, 0x38, 0x28, 0x75, 0x43, 0x90, 0xa5, 0x0f, 0x1b,
- 0x29, 0xf8, 0x4b, 0x71, 0xdb, 0xaa, 0xe1, 0x31, 0xb1, 0x8a, 0x21, 0x2d, 0x20, 0xed, 0x43, 0x06,
- 0x3b, 0x85, 0xe2, 0xda, 0x29, 0xf3, 0x11, 0x8d, 0x23, 0x39, 0xe8, 0xb3, 0xca, 0x4a, 0x31, 0xcc,
- 0x82, 0x13, 0xa8, 0xba, 0x6e, 0xd4, 0x7c, 0x15, 0x88, 0x62, 0x4e, 0xe4, 0xb6, 0xd6, 0x64, 0x55,
- 0x67, 0x9d, 0x13, 0xe0, 0xb3, 0x53, 0x40, 0x3a, 0x4d, 0x3e, 0xed, 0x22, 0x6d, 0x8f, 0x99, 0x86,
- 0x8b, 0xcc, 0x1d, 0x0e, 0x17, 0x19, 0x04, 0x4b, 0xc1, 0xda, 0xcb, 0xab, 0xc3, 0x64, 0x5d, 0x30,
- 0x48, 0x37, 0xe1, 0xe9, 0x4e, 0xa7, 0x46, 0xb5, 0x0d, 0x89, 0xa2, 0x3d, 0x2e, 0xd9, 0x0b, 0xae,
- 0x2a, 0xd1, 0xf6, 0x4d, 0xc8, 0x85, 0x73, 0x6e, 0x28, 0x75, 0x16, 0x34, 0xf0, 0x51, 0xca, 0x11,
- 0xef, 0x78, 0xb3, 0xd2, 0xb7, 0x65, 0xd6, 0x2e, 0x15, 0x1b, 0x11, 0x90, 0x7e, 0x57, 0x4d, 0xa1,
- 0x70, 0x9b, 0xbe, 0x0f, 0x74, 0x7b, 0xc5, 0x67, 0xb7, 0x4f, 0x7d, 0x97, 0x34, 0x2f, 0xb3, 0x75,
- 0x2d, 0x25, 0x24, 0x21, 0x5e, 0x7f, 0x5b, 0xe5, 0xae, 0x1d, 0xd4, 0xb0, 0x62, 0x3f, 0xdd, 0x32,
- 0x31, 0x73, 0xea, 0x52, 0x43, 0x11, 0xfb, 0x8c, 0xf3, 0x7e, 0x5a, 0xe5, 0x6f, 0x44, 0x81, 0xbe,
- 0xe2, 0x7a, 0x69, 0x36, 0x4b, 0x7d, 0x14, 0xa4, 0x43, 0x34, 0x61, 0x42, 0x49, 0x37, 0xea, 0xf0,
- 0x86, 0xce, 0xc7, 0xea, 0xeb, 0x01, 0xc6, 0xc1, 0x97, 0xf5, 0xbb, 0x79, 0xf4, 0x04, 0xfa, 0x61,
- 0xc9, 0x0d, 0xf4, 0x6f, 0x33, 0x5c, 0xa8, 0xff, 0x1c, 0x14, 0xdb, 0xc0, 0x48, 0xb3, 0xe6, 0xec,
- 0xb0, 0x49, 0xff, 0xd4, 0x3e, 0xea, 0x15, 0xc6, 0xe2, 0xe3, 0x23, 0x18, 0x09, 0x2e, 0x6c, 0xfc,
- 0x80, 0x9c, 0x7e, 0x92, 0xcd, 0x5f, 0x21, 0x7f, 0x66, 0xc8, 0xd5, 0x4b, 0x97, 0xbf, 0x2b, 0x4f,
- 0xf5, 0x7c, 0xc4, 0xd9, 0x8c, 0x55, 0x91, 0xf9, 0xb9, 0x45, 0xf1, 0xf7, 0x10, 0x97, 0xc0, 0x03,
- 0xfc, 0xa3, 0x71, 0x6d, 0xf5, 0x98, 0xe9, 0xa7, 0xf0, 0xfd, 0x74, 0xb8, 0x65, 0x25, 0xf9, 0x66,
- 0x60, 0x69, 0xc1, 0x8c, 0x25, 0xa9, 0x68, 0xb1, 0xcb, 0x56, 0x2f, 0xa6, 0xff, 0xe1, 0x8e, 0xa5,
- 0x44, 0x93, 0x50, 0x19, 0x02, 0x1b, 0x4b, 0x0a, 0x2c, 0xf3, 0x7e, 0x59, 0xe8, 0x6c, 0x6a, 0xf2,
- 0x0c, 0xa4, 0xb1, 0xf0, 0x4c, 0xbc, 0x0d, 0xbf, 0x21, 0x7a, 0xdc, 0x64, 0xc6, 0xb5, 0x61, 0x5c,
- 0x8f, 0x11, 0x72, 0x5e, 0x92, 0xcc, 0xbe, 0x9f, 0xde, 0x4d, 0x3e, 0x36, 0x81, 0xb6, 0xc3, 0x04,
- 0xa4, 0x66, 0xef, 0x07, 0xea, 0xed, 0x02, 0xc4, 0x81, 0x6d, 0x84, 0xb4, 0x80, 0x32, 0xcf, 0x18,
- 0x3d, 0xd7, 0x5b, 0xa2, 0x0f, 0xad, 0xf6, 0x33, 0xd2, 0x04, 0x86, 0x81, 0xa9, 0xf1, 0xe0, 0xe2,
- 0x62, 0xe6, 0x17, 0xa4, 0x86, 0x22, 0x35, 0xdb, 0x25, 0xfc, 0xb4, 0x09, 0xde, 0x88, 0xc1, 0xbf,
- 0x35, 0xae, 0x85, 0x02, 0xc6, 0xc4, 0x41, 0x58, 0xec, 0xe9, 0xaf, 0x78, 0x2d, 0x96, 0x1f, 0x8a,
- 0xe0, 0xf5, 0xbf, 0x1e, 0xe8, 0xf6, 0x49, 0xce, 0xad, 0x9e, 0xfa, 0xed, 0x68, 0x5e, 0xa5, 0xea,
- 0x68, 0x10, 0x1f, 0x2c, 0xec, 0xc0, 0xdf, 0xda, 0xf5, 0xbb, 0x06, 0x5f, 0x7b, 0x86, 0x71, 0xcd,
- 0xdc, 0x84, 0x8f, 0xa8, 0x57, 0xff, 0x70, 0xc8, 0x08, 0xcf, 0xd0, 0xda, 0x30, 0x7a, 0x83, 0x05,
- 0x40, 0x4e, 0x3f, 0x49, 0x87, 0xce, 0xf1, 0xde, 0x33, 0x64, 0x8b, 0xc4, 0xaa, 0xbe, 0xf4, 0xc6,
- 0xa0, 0xbb, 0x80, 0x57, 0x6f, 0x38, 0xb8, 0x10, 0x9e, 0xfa, 0x71, 0x29, 0xc2, 0xe0, 0x51, 0x2c,
- 0xa7, 0x4f, 0x52, 0x3b, 0xf9, 0xc2, 0x90, 0x9b, 0x18, 0x92, 0xb3, 0xad, 0x50, 0x8e, 0x46, 0x0f,
- 0x9f, 0xe3, 0x0d, 0xdd, 0xc3, 0x1e, 0x13, 0x49, 0xa2, 0x54, 0x6c, 0x07, 0x4a, 0x78, 0xfe, 0xd4,
- 0x2b, 0x77, 0x9d, 0x59, 0x78, 0x21, 0xbc, 0x5b, 0x5f, 0x20, 0xba, 0x82, 0x01, 0x84, 0x0c, 0x1c,
- 0xae, 0x90, 0xe7, 0x8f, 0x80, 0x0f, 0xe8, 0xc5, 0x51, 0x2a, 0x36, 0xe2, 0x25, 0x3c, 0x7f, 0x6a,
- 0x10, 0xf2, 0x7f, 0x83, 0x51, 0xd2, 0xad, 0xd6, 0x7c, 0x19, 0x52, 0x31, 0xcb, 0xce, 0x3d, 0xd0,
- 0xfe, 0x2c, 0xa7, 0x45, 0x56, 0x13, 0xb4, 0xcd, 0x1e, 0x57, 0xef, 0x17, 0x44, 0x4c, 0xb6, 0x7c,
- 0xa1, 0x1d, 0xeb, 0x43, 0xdf, 0x9c, 0x77, 0x25, 0xe9, 0xaf, 0xdd, 0x9f, 0x33, 0x35, 0x97, 0x21,
- 0xc7, 0x26, 0x93, 0xb7, 0xdc, 0x6b, 0xf8, 0x2a, 0xd3, 0xc4, 0x9c, 0x0b, 0xaf, 0x6f, 0xc8, 0xaa,
- 0x4d, 0x4c, 0xe5, 0xad, 0x7b, 0xd6, 0x33, 0x54, 0x65, 0x4b, 0xfb, 0x16, 0x9d, 0xde, 0x53, 0x97,
- 0xaa, 0x4d, 0x88, 0xdf, 0x05, 0xda, 0x52, 0x11, 0x4e, 0xbd, 0xc3, 0x7f, 0x67, 0xee, 0xe1, 0x5e,
- 0xd4, 0xfd, 0x51, 0x08, 0x9e, 0x96, 0xc7, 0xa3, 0x36, 0x22, 0xf9, 0x23, 0xb4, 0x1d, 0x7c, 0x6d,
- 0x42, 0xc1, 0xe9, 0x61, 0x24, 0x45, 0xac, 0xb4, 0xdd, 0xce, 0x10, 0x6b, 0x8b, 0xd7, 0xbb, 0xdc,
- 0x2e, 0x0c, 0x99, 0x1d, 0x4d, 0x50, 0xc9, 0xba, 0x37, 0xe2, 0xe3, 0xa9, 0xb2, 0x83, 0x54, 0x25,
- 0x49, 0x91, 0x8a, 0xfd, 0xfe, 0x03, 0x89, 0x80, 0x7a, 0xdc, 0x0e, 0x8b, 0xdf, 0x0c, 0xcd, 0xa3,
- 0xb2, 0xc6, 0x29, 0xfc, 0x9d, 0x61, 0x48, 0xac, 0x0c, 0x49, 0xb8, 0xb7, 0x28, 0x47, 0x23, 0xe6,
- 0x77, 0x6f, 0x6c, 0x63, 0xe2, 0x81, 0xed, 0xec, 0x31, 0x27, 0xbf, 0x13, 0xa6, 0x41, 0xa4, 0x56,
- 0x39, 0x0a, 0x34, 0xf2, 0x8a, 0x78, 0x4c, 0xe7, 0xcd, 0x93, 0x73, 0x1c, 0xeb, 0x23, 0x7e, 0xd6,
- 0xad, 0xb9, 0x5a, 0xb3, 0x93, 0x20, 0x7a, 0x9a, 0xc8, 0xd5, 0x01, 0xfb, 0xf5, 0x80, 0xf6, 0x7d,
- 0x20, 0x27, 0xfe, 0xc5, 0xa2, 0x67, 0x99, 0x6f, 0xf8, 0x32, 0xa4, 0x62, 0x55, 0x5f, 0x7a, 0x63,
- 0xcf, 0x5f, 0x4d, 0x17, 0x15, 0x02, 0x4f, 0x41, 0xed, 0x29, 0xb5, 0xf2, 0x2b, 0x08, 0x37, 0xc2,
- 0x64, 0xb4, 0xae, 0xdc, 0xa0, 0x7c, 0xd2, 0x65, 0xd4, 0xc1, 0xda, 0x3b, 0xbd, 0x33, 0x10, 0x91,
- 0x9b, 0x3e, 0x62, 0x8d, 0x46, 0xcb, 0xa9, 0x9d, 0xbd, 0xc3, 0x99, 0x9a, 0x08, 0xaa, 0x60, 0xe0,
- 0xde, 0x0b, 0x59, 0x80, 0xf4, 0x74, 0x2d, 0xa2, 0xe6, 0x65, 0x4b, 0x75, 0x11, 0x13, 0xcc, 0x1f,
- 0x7f, 0x16, 0xb2, 0xc3, 0x2b, 0xe8, 0x5a, 0x87, 0x0f, 0xca, 0x96, 0xea, 0x22, 0x26, 0x5b, 0x3e,
- 0xa8, 0xc2, 0x5e, 0xf7, 0xa6, 0x51, 0x0f, 0x7b, 0xa0, 0x17, 0x58, 0xd0, 0x46, 0x87, 0xae, 0x44,
- 0xb6, 0x1b, 0x46, 0xac, 0x18, 0xb4, 0xf2, 0x78, 0x13, 0xde, 0x4d, 0x2a, 0x6a, 0x95, 0xbd, 0xd2,
- 0x5c, 0x18, 0xf1, 0x3a, 0x9a, 0xa0, 0x51, 0xb7, 0x6e, 0x07, 0x05, 0x91, 0xa7, 0xc5, 0xa8, 0x4a,
- 0xa5, 0xc0, 0x84, 0x13, 0x5a, 0x49, 0xcd, 0xf1, 0xf6, 0x38, 0x28, 0x02, 0x71, 0xe7, 0x09, 0x15,
- 0x6b, 0x39, 0xa2, 0x10, 0xff, 0xef, 0x4d, 0x85, 0x6c, 0x44, 0x31, 0x46, 0xab, 0x3a, 0xf8, 0xda,
- 0xd3, 0x09, 0x83, 0x64, 0x08, 0x6c, 0xef, 0x28, 0xb0, 0x4a, 0x3b, 0xa7, 0x26, 0x73, 0x6b, 0x4e,
- 0xf0, 0x07, 0xc0, 0x9d, 0xb9, 0x24, 0xe4, 0x18, 0xd1, 0x87, 0xa8, 0xdc, 0xa3, 0x90, 0x98, 0x3a,
- 0x5d, 0xbe, 0x9a, 0x2e, 0x2a, 0x04, 0x9e, 0x82, 0x19, 0x52, 0xa9, 0x27, 0x56, 0x10, 0x6e, 0x47,
- 0xc8, 0xab, 0x9f, 0x7b, 0x83, 0xf8, 0x67, 0xca, 0x6b, 0x41, 0x77, 0x76, 0xb9, 0x66, 0x20, 0xe1,
- 0xc5, 0xa9, 0x45, 0x9f, 0x7f, 0xe0, 0xa5, 0x40, 0x3d, 0x6e, 0x07, 0xa4, 0x8e, 0x06, 0x87, 0xb0,
- 0xbd, 0x4b, 0x25, 0x30, 0xc2, 0xf2, 0xd7, 0x4c, 0xb4, 0xcc, 0x53, 0xca, 0x3e, 0x4e, 0xcb, 0xad,
- 0xc3, 0xfb, 0xfc, 0xe7, 0x59, 0xbe, 0x42, 0xfe, 0xcc, 0x53, 0x69, 0x96, 0xed, 0xbd, 0x56, 0x9e,
- 0xe4, 0x28, 0xd0, 0x4e, 0x6d, 0x23, 0xf3, 0x1a, 0xb2, 0x09, 0x0f, 0x70, 0x2a, 0x8c, 0x3b, 0xde,
- 0xaf, 0x36, 0x8c, 0x9b, 0x30, 0xab, 0x27, 0xf0, 0x26, 0x7f, 0x9a, 0x54, 0xd4, 0xe9, 0xb9, 0x67,
- 0xb8, 0x30, 0x21, 0x74, 0xf7, 0x83, 0xa2, 0xad, 0xdc, 0x0e, 0x0a, 0xe1, 0x8d, 0x49, 0x93, 0x94,
- 0xcb, 0x82, 0x22, 0x47, 0x90, 0xd7, 0xf5, 0x95, 0xf2, 0xbe, 0x40, 0x6f, 0x69, 0xda, 0xa9, 0xf6,
- 0xc1, 0x74, 0x2a, 0xcf, 0xfa, 0x35, 0x1f, 0x94, 0x22, 0xf9, 0xf2, 0x39, 0xcc, 0xd4, 0x19, 0x84,
- 0xb5, 0x32, 0xfb, 0x90, 0x0b, 0x9b, 0x60, 0x27, 0x8a, 0x21, 0x7a, 0x33, 0xba, 0x29, 0x34, 0xc5,
- 0x6f, 0xe4, 0xcd, 0x40, 0x7a, 0x3a, 0xf7, 0x51, 0x73, 0xd3, 0xc4, 0xdb, 0xe9, 0xe8, 0x66, 0xee,
- 0x4c, 0xea, 0x8e, 0xb9, 0xcb, 0x72, 0xfc, 0x61, 0x12, 0x1e, 0x57, 0xa0, 0x6c, 0x0b, 0x95, 0x9a,
- 0x97, 0x9a, 0xd3, 0x7d, 0x0a, 0x77, 0xa4, 0x22, 0x9c, 0xb9, 0x45, 0xfe, 0xce, 0x1f, 0x01, 0xbc,
- 0x88, 0xe5, 0xa0, 0x32, 0x04, 0x36, 0x96, 0x14, 0x58, 0x25, 0xfc, 0xb2, 0x13, 0xd8, 0xd4, 0x27,
- 0x61, 0xcf, 0xaa, 0x98, 0x95, 0x0d, 0xa7, 0x84, 0xbc, 0x03, 0x83, 0x10, 0x0e, 0x34, 0x48, 0xa8,
- 0x57, 0x48, 0x92, 0xa6, 0x40, 0xe6, 0x74, 0x83, 0xc9, 0x15, 0x1b, 0x71, 0xf3, 0x1e, 0xde, 0x35,
- 0x11, 0x54, 0x14, 0x97, 0xe1, 0x76, 0x62, 0xe3, 0x0b, 0x4c, 0xfe, 0x87, 0x3a, 0x1b, 0xfb, 0xdd,
- 0x99, 0xb1, 0xb4, 0xa5, 0xe5, 0x40, 0xf4, 0xf7, 0x53, 0x69, 0x02, 0x35, 0x29, 0xc3, 0x2f, 0xfa,
- 0x72, 0x14, 0x68, 0x27, 0xd7, 0xf0, 0x98, 0x0d, 0x59, 0xe5, 0xe6, 0x38, 0x15, 0x46, 0xfc, 0x6f,
- 0x83, 0xb5, 0xc3, 0xae, 0xde, 0x70, 0xb3, 0x20, 0xff, 0x37, 0xe2, 0x52, 0x47, 0x03, 0xa2, 0x58,
- 0xbf, 0xc4, 0xf3, 0x18, 0x61, 0x79, 0x8a, 0x26, 0x5a, 0x66, 0xc8, 0x65, 0x1f, 0x27, 0x84, 0xb7,
- 0x55, 0xc7, 0x44, 0x8e, 0xe3, 0x6d, 0x29, 0xe9, 0x27, 0xbf, 0x80, 0xde, 0xd2, 0x77, 0x91, 0x2f,
- 0x73, 0xb2, 0x03, 0x33, 0x67, 0x54, 0x57, 0x38, 0x2e, 0xb0, 0x4a, 0x8e, 0xe4, 0x93, 0x3a, 0x62,
- 0x9d, 0x6c, 0xdb, 0xf5, 0x60, 0x95, 0x4e, 0x23, 0x4c, 0xfe, 0xf7, 0xa8, 0x6b, 0x11, 0xb1, 0xce,
- 0x81, 0x3a, 0x15, 0x86, 0x7d, 0xfb, 0xee, 0x4a, 0x11, 0x9d, 0x79, 0xfd, 0x66, 0x6a, 0xed, 0x42,
- 0x3f, 0x58, 0x8d, 0x8a, 0xac, 0x26, 0xab, 0x59, 0x3c, 0xae, 0x1d, 0x2e, 0x88, 0x98, 0xaf, 0xf8,
- 0xb3, 0x60, 0x42, 0xe8, 0x2d, 0xc5, 0x87, 0x99, 0x7b, 0x1c, 0x14, 0x01, 0xd9, 0x92, 0xe5, 0xeb,
- 0xbb, 0x19, 0x9c, 0x48, 0xe4, 0xac, 0x30, 0xf2, 0x45, 0xf1, 0x3d, 0xf8, 0x5d, 0xf5, 0x1a, 0x83,
- 0xd6, 0x72, 0x87, 0x20, 0x3d, 0x1d, 0x9a, 0xc9, 0xd8, 0x88, 0x62, 0x8c, 0x95, 0x74, 0x33, 0x77,
- 0xea, 0x03, 0xb7, 0x96, 0x82, 0x14, 0xa3, 0xcf, 0x7d, 0xd9, 0x48, 0xbb, 0xcd, 0x50, 0x15, 0x98,
- 0x25, 0x5c, 0xfa, 0x81, 0x97, 0x16, 0xec, 0x8e, 0x90, 0xf0, 0xfd, 0x49, 0xe6, 0x58, 0x22, 0x5a,
- 0xce, 0xf9, 0x26, 0x03, 0xa5, 0xa6, 0x80, 0x74, 0x9a, 0x7c, 0x19, 0x44, 0xda, 0xdd, 0xf1, 0xcf,
- 0x63, 0x40, 0x7c, 0xb0, 0x36, 0x86, 0xfa, 0xee, 0x52, 0xa9, 0x18, 0xbf, 0x2f, 0x5d, 0x07, 0xb2,
- 0x45, 0x35, 0x3b, 0x0d, 0xb2, 0xbf, 0x84, 0x3f, 0x5b, 0xa6, 0xd2, 0xef, 0x19, 0xb9, 0xac, 0xff,
- 0x32, 0x5a, 0x57, 0x6e, 0x50, 0x3e, 0x69, 0xd3, 0x6a, 0x81, 0x6d, 0xfc, 0xbf, 0xf8, 0x08, 0xa9,
- 0xd7, 0xd4, 0xec, 0x34, 0x8d, 0xb9, 0x55, 0xfc, 0xaf, 0xdd, 0xce, 0x3a, 0x64, 0xa1, 0xf5, 0x7a,
- 0x9e, 0x45, 0x66, 0xc9, 0x73, 0xba, 0xdc, 0x7c, 0xd5, 0x01, 0xc0, 0xb1, 0xbb, 0xad, 0x38, 0xd9,
- 0x08, 0x79, 0xde, 0xa0, 0xc9, 0x69, 0xb7, 0x6b, 0x3e, 0xed, 0x29, 0xf9, 0x84, 0x67, 0xff, 0x68,
- 0x8d, 0x9e, 0xa4, 0x76, 0x31, 0x47, 0xe3, 0xf5, 0x30, 0xe7, 0xa5, 0x99, 0xa0, 0xdf, 0x8c, 0x1e,
- 0x79, 0x44, 0x0b, 0xbb, 0x0d, 0xb6, 0xbd, 0x39, 0xfe, 0xf7, 0xf8, 0xd8, 0x41, 0x9d, 0x8a, 0x10,
- 0xab, 0xeb, 0xe3, 0xcb, 0xb5, 0x7e, 0x9d, 0x24, 0x39, 0xe8, 0x6f, 0xc9, 0x96, 0x3b, 0x27, 0x53,
- 0x36, 0x87, 0x38, 0x3e, 0xd5, 0xeb, 0xd3, 0x07, 0x75, 0x16, 0x98, 0x61, 0xfd, 0x2a, 0x96, 0x9d,
- 0xfb, 0x57, 0xa3, 0x01, 0x63, 0x62, 0xc1, 0x2c, 0x76, 0x95, 0xb6, 0x3c, 0xf7, 0x4b, 0xee, 0x45,
- 0xec, 0x51, 0x0e, 0xee, 0xa4, 0x4a, 0x44, 0x71, 0x8c, 0xe4, 0x26, 0x89, 0xae, 0xeb, 0xc4, 0xb6,
- 0x4e, 0x65, 0x58, 0x91, 0x68, 0xf9, 0xa1, 0x0b, 0xfc, 0xb4, 0xcc, 0x0f, 0x4d, 0x62, 0xda, 0x80,
- 0x7e, 0xb0, 0xd9, 0xd7, 0x9b, 0x4c, 0x95, 0xb2, 0x78, 0x9f, 0x3a, 0x5c, 0xd3, 0xf3, 0x9d, 0x33,
- 0xd0, 0x20, 0x3e, 0x58, 0x1b, 0x43, 0x7d, 0x77, 0x29, 0xb5, 0x0c, 0xbe, 0xf6, 0xcf, 0xe2, 0x59,
- 0x6c, 0xcd, 0x70, 0x7c, 0x69, 0x15, 0x65, 0x0e, 0xea, 0x2c, 0xf3, 0xc2, 0x39, 0x54, 0xef, 0xf9,
- 0xf3, 0x2e, 0x7d, 0xa1, 0xaa, 0x0b, 0x76, 0x47, 0x48, 0x78, 0x9f, 0xc5, 0x73, 0x2c, 0x11, 0x2d,
- 0x5f, 0x31, 0x4c, 0x06, 0x89, 0x8f, 0xc3, 0xe8, 0xf7, 0xf8, 0x32, 0x88, 0x77, 0x79, 0x21, 0x5d,
- 0xff, 0x8a, 0xcc, 0x51, 0xe6, 0xb7, 0x7b, 0xf8, 0x69, 0x02, 0x43, 0xa1, 0xb5, 0x99, 0x70, 0x71,
- 0x8a, 0x6a, 0x76, 0x1a, 0xa7, 0xbd, 0xcb, 0x7e, 0xb6, 0x8f, 0x67, 0x1d, 0x32, 0xb1, 0x9b, 0x3d,
- 0x56, 0xee, 0xf9, 0xb2, 0xf0, 0x42, 0xbb, 0xb6, 0xbe, 0x40, 0xb7, 0xc7, 0x02, 0xcb, 0x18, 0x38,
- 0xdd, 0x22, 0xe4, 0xbc, 0xe7, 0x5b, 0xbf, 0xfd, 0x7f, 0x9a, 0x7c, 0x6c, 0xc1, 0xaf, 0x45, 0x08,
- 0xb4, 0x94, 0x90, 0x84, 0xbb, 0x3f, 0xaf, 0x12, 0xfd, 0x74, 0xd6, 0x85, 0x4b, 0xfc, 0xf2, 0xc8,
- 0x04, 0xdd, 0x6f, 0x50, 0x85, 0xd5, 0xba, 0xd4, 0x1f, 0x97, 0xf5, 0x9d, 0x42, 0xd2, 0x9e, 0x34,
- 0xbe, 0x62, 0x98, 0x0c, 0xd1, 0xdd, 0x45, 0x13, 0x2d, 0x33, 0x64, 0xd3, 0xee, 0xf2, 0x42, 0xba,
- 0x1b, 0xa2, 0x1c, 0x1f, 0x8b, 0x94, 0x88, 0xe2, 0xdb, 0x0b, 0x4c, 0xd1, 0x9f, 0x15, 0x4b, 0xaf,
- 0x9c, 0xca, 0xb0, 0xe1, 0xd0, 0x31, 0x81, 0x16, 0x3b, 0xab, 0x5b, 0x1e, 0x9a, 0xc4, 0x77, 0xc3,
- 0x5e, 0x97, 0x27, 0x12, 0x39, 0x2b, 0x0c, 0xdd, 0x80, 0xad, 0x9e, 0x3e, 0x86, 0xac, 0xe7, 0x50,
- 0x07, 0xf4, 0xd2, 0x6c, 0x96, 0xfa, 0x28, 0x8b, 0x86, 0x68, 0xc2, 0x84, 0x92, 0x6e, 0x17, 0x23,
- 0x8c, 0x38, 0xcf, 0x62, 0x81, 0xe3, 0x2c, 0xc0, 0x47, 0xb2, 0x09, 0x2f, 0x51, 0x0a, 0x4a, 0x13,
- 0x0f, 0x8d, 0x0c, 0xcc, 0x5f, 0x93, 0x9f, 0xe0, 0xb8, 0x85, 0xeb, 0x7d, 0x16, 0x09, 0xe8, 0x4b,
- 0x6d, 0x6b, 0x1b, 0x68, 0xd9, 0xb1, 0xaa, 0x3b, 0x9d, 0x79, 0x5f, 0x74, 0xc8, 0x81, 0x29, 0xf4,
- 0xf4, 0xda, 0xaf, 0xcd, 0x3c, 0xf1, 0x5e, 0xcc, 0xce, 0x10, 0x5d, 0x41, 0xe1, 0x42, 0x06, 0x0e,
- 0x26, 0x75, 0x47, 0xbd, 0x84, 0x39, 0x7e, 0xd1, 0x09, 0x0f, 0xca, 0x50, 0x36, 0xe4, 0xab, 0x4d,
- 0x71, 0x3d, 0xd5, 0x1b, 0xc4, 0xdf, 0x0a, 0x52, 0xc0, 0x1a, 0xd1, 0x21, 0xc5, 0xfa, 0x75, 0x78,
- 0x1c, 0x56, 0xce, 0x73, 0x1d, 0x6e, 0xa0, 0x69, 0x5d, 0x63, 0x8e, 0x55, 0x0d, 0x7b, 0x5c, 0x8c,
- 0x94, 0xb3, 0x6e, 0x41, 0x19, 0x58, 0x36, 0x7d, 0x05, 0x46, 0x72, 0xe7, 0x1e, 0xa3, 0x88, 0xab,
- 0x22, 0xa8, 0x28, 0xed, 0x01, 0xec, 0xc4, 0x05, 0x16, 0x98, 0x3f, 0xcd, 0x74, 0x36, 0x35, 0x79,
- 0xeb, 0xa5, 0xdc, 0x82, 0x32, 0xb0, 0x6c, 0xfa, 0x0a, 0x8c, 0xe4, 0x0d, 0x3c, 0x85, 0xd3, 0x95,
- 0xbc, 0xed, 0x4e, 0x24, 0x72, 0x56, 0x18, 0x79, 0xc3, 0x99, 0xff, 0x7c, 0xcf, 0x9b, 0x0d, 0xa0,
- 0x3c, 0x71, 0x30, 0xb6, 0xbf, 0x09, 0x39, 0x06, 0xa5, 0x51, 0x2a, 0x37, 0x58, 0x24, 0x26, 0xef,
- 0x15, 0x89, 0x7b, 0xc7, 0x64, 0xa3, 0xd8, 0x37, 0x14, 0xdb, 0x0b, 0x1a, 0x78, 0xc9, 0x65, 0xe9,
- 0xe9, 0x2a, 0x0a, 0xaa, 0x91, 0x3b, 0x31, 0x90, 0xe4, 0x26, 0x7f, 0xa2, 0x1d, 0xec, 0x9c, 0x8f,
- 0x02, 0x8f, 0xd6, 0x28, 0xa3, 0x8b, 0x5d, 0x6a, 0xee, 0xaa, 0x9b, 0xaf, 0x21, 0x69, 0x4f, 0x1a,
- 0x46, 0x1c, 0x86, 0x31, 0xa1, 0x90, 0x16, 0x60, 0xc2, 0x59, 0xe5, 0xf6, 0xc9, 0x05, 0x25, 0xe8,
- 0xda, 0xd6, 0x36, 0xd0, 0x71, 0xa1, 0x97, 0x76, 0xf9, 0xf2, 0xbe, 0xe8, 0x53, 0xc1, 0x52, 0x2b,
- 0x19, 0x2d, 0xca, 0x37, 0x28, 0x1f, 0xd5, 0x88, 0x35, 0xa1, 0xd7, 0x7e, 0xbe, 0x7c, 0x04, 0xb5,
- 0xdb, 0x70, 0x5d, 0xc4, 0xc1, 0x05, 0x58, 0x43, 0x8e, 0xa7, 0x12, 0x5e, 0xa2, 0x14, 0x94, 0x26,
- 0x1e, 0xd9, 0x18, 0x5b, 0xbe, 0xe5, 0xfd, 0x03, 0xb3, 0xc9, 0x15, 0xfa, 0x2c, 0x12, 0x13, 0x96,
- 0x17, 0x06, 0xad, 0xef, 0xc7, 0x28, 0x85, 0x5d, 0xfa, 0x71, 0x90, 0xb5, 0x59, 0xa0, 0x2a, 0xf3,
- 0x4a, 0xb8, 0x37, 0xc1, 0xed, 0x2c, 0x1b, 0xdf, 0xe3, 0x23, 0x39, 0x92, 0x0f, 0xb0, 0x44, 0xb4,
- 0x0a, 0xf6, 0x08, 0x88, 0x6a, 0xe2, 0xea, 0x01, 0xd0, 0x47, 0xb2, 0x56, 0xa5, 0x0e, 0xb0, 0x72,
- 0xd9, 0xff, 0x8b, 0xec, 0x62, 0x8e, 0x05, 0x29, 0x60, 0x0d, 0x89, 0xf1, 0x83, 0x7d, 0xdb, 0x3c,
- 0x89, 0x43, 0xcb, 0x26, 0xb4, 0x92, 0x59, 0x21, 0x2f, 0x70, 0x50, 0x04, 0xe2, 0x0d, 0x12, 0x2a,
- 0x78, 0xe2, 0x60, 0xaf, 0xbd, 0x12, 0x72, 0x0c, 0x89, 0xa2, 0x54, 0x6e, 0xb0, 0x48, 0x4c, 0x1d,
- 0x76, 0xc9, 0x07, 0x77, 0x52, 0x25, 0x22, 0xd9, 0x46, 0x72, 0x13, 0xa5, 0x57, 0x94, 0x62, 0x5b,
- 0x27, 0xd3, 0x2c, 0xa9, 0x34, 0x9d, 0xb1, 0xe4, 0x7e, 0x5a, 0x66, 0xe6, 0xc7, 0x31, 0x6d, 0x40,
- 0x18, 0x8b, 0xa1, 0x23, 0x98, 0xbb, 0x1a, 0xbd, 0x42, 0xf4, 0x7b, 0xc8, 0x4f, 0xa9, 0xc2, 0xb8,
- 0x23, 0x0e, 0x43, 0xf9, 0xb1, 0x48, 0x0b, 0x30, 0x61, 0xcd, 0x93, 0x7b, 0x85, 0xe3, 0xf3, 0x74,
- 0xf2, 0x88, 0x16, 0xb5, 0x1a, 0xaf, 0xb9, 0x72, 0x3f, 0x2d, 0x33, 0x73, 0x82, 0xf9, 0xd7, 0x20,
- 0x95, 0x15, 0x05, 0x55, 0xa9, 0xfc, 0xf9, 0x48, 0x72, 0x13, 0xde, 0x51, 0xef, 0x76, 0x4e, 0xa6,
- 0xd5, 0x5b, 0x3a, 0x1c, 0x2e, 0x32, 0x08, 0x96, 0x41, 0x77, 0x55, 0x95, 0x45, 0xc8, 0xba, 0x60,
- 0xa9, 0x64, 0x35, 0xe3, 0x16, 0xf5, 0xc0, 0x4e, 0xd7, 0x42, 0xf4, 0x66, 0xb7, 0x52, 0x68, 0x49,
- 0x84, 0x41, 0x11, 0xc2, 0x48, 0x8a, 0x9b, 0xab, 0x79, 0x5f, 0x20, 0xd6, 0xd5, 0x6d, 0xb5, 0x7b,
- 0xe1, 0x53, 0xd4, 0x0a, 0x58, 0x52, 0x86, 0xfb, 0xda, 0xcb, 0x56, 0x5b, 0x99, 0x8b, 0x63, 0xe7,
- 0x1d, 0xf0, 0xa5, 0x67, 0xad, 0xca, 0x6f, 0x5c, 0x2a, 0x36, 0x22, 0xe3, 0xfc, 0xae, 0x9a, 0x81,
- 0x93, 0x47, 0xbc, 0x2d, 0x8f, 0xa2, 0x1e, 0xf6, 0x83, 0x2e, 0xb0, 0x63, 0x8c, 0xcd, 0x9f, 0x88,
- 0x28, 0x5e, 0x20, 0x65, 0x6b, 0x0e, 0x2e, 0x04, 0xc6, 0xdf, 0x8d, 0x9b, 0xd1, 0x38, 0x85, 0x0b,
- 0xc6, 0x80, 0xf8, 0xa3, 0x6c, 0xcf, 0x37, 0x1f, 0xa4, 0x91, 0x30, 0xbd, 0x5e, 0xba, 0x0e, 0xa7,
- 0x7b, 0xcb, 0xdd, 0x93, 0xae, 0x3d, 0xe0, 0x53, 0x10, 0x5d, 0x63, 0x77, 0x60, 0xf4, 0xc5, 0x0a,
- 0x65, 0x12, 0xc5, 0xc8, 0x10, 0xd8, 0x1d, 0x50, 0xa3, 0x94, 0x76, 0x8d, 0x4c, 0xe6, 0xd6, 0x9c,
- 0x75, 0xe0, 0xba, 0x4b, 0x41, 0x0a, 0xb0, 0x86, 0xdf, 0x8d, 0x24, 0xbc, 0x87, 0x28, 0xeb, 0x4c,
- 0x7c, 0x3f, 0x0f, 0xff, 0x38, 0xc7, 0xc8, 0xd8, 0x96, 0x35, 0xa1, 0xf3, 0xf2, 0x9a, 0xd2, 0x29,
- 0xe3, 0xdc, 0x02, 0x22, 0xfb, 0xd9, 0xdb, 0x91, 0x34, 0x61, 0xcd, 0xf4, 0xb8, 0xe2, 0x2c, 0xfd,
- 0xee, 0xde, 0xd8, 0xc6, 0x07, 0xc1, 0x19, 0x1b, 0x62, 0x4e, 0xbd, 0x26, 0x8f, 0x82, 0x8b, 0xac,
- 0x21, 0x81, 0x95, 0xd1, 0x12, 0xc3, 0x56, 0x5a, 0x8f, 0x67, 0x08, 0xd4, 0xa4, 0x8a, 0xbc, 0x6e,
- 0x8e, 0xb7, 0x19, 0x4a, 0x22, 0x68, 0x71, 0xaa, 0xa9, 0x18, 0x92, 0x80, 0x70, 0x63, 0x05, 0x09,
- 0xf9, 0xd8, 0x75, 0x29, 0xc0, 0xe9, 0x9c, 0x46, 0x98, 0x3f, 0x2d, 0x93, 0xd6, 0x22, 0xa1, 0x5f,
- 0x01, 0xa6, 0x6b, 0x14, 0xb0, 0xa4, 0xcf, 0x35, 0x77, 0x55, 0xac, 0xb6, 0xf1, 0xd5, 0xc6, 0x0d,
- 0x5b, 0xec, 0x23, 0x56, 0x0c, 0x5a, 0x79, 0x3c, 0xe8, 0x6f, 0xc7, 0x15, 0x35, 0xab, 0xbf, 0x69,
- 0x91, 0xc8, 0x6a, 0x05, 0x2c, 0x29, 0x43, 0x9c, 0x6d, 0x84, 0x2b, 0xcc, 0xad, 0xa4, 0xd0, 0x92,
- 0x14, 0x2f, 0x10, 0xd3, 0xd4, 0x07, 0x17, 0x02, 0x63, 0x8e, 0xa7, 0xac, 0x89, 0x1c, 0xa3, 0xe4,
- 0x7a, 0x6d, 0xb6, 0x87, 0x1e, 0x99, 0x2f, 0x66, 0x67, 0x08, 0xcf, 0xc1, 0x91, 0x21, 0x03, 0x07,
- 0xf6, 0x55, 0x79, 0xe5, 0x9f, 0x7a, 0x03, 0xa6, 0x20, 0xba, 0xc6, 0xee, 0xc0, 0x2b, 0x49, 0x14,
- 0xb1, 0xef, 0x94, 0xc0, 0x8e, 0x4e, 0xda, 0xf3, 0x95, 0xb6, 0x8f, 0xae, 0xf8, 0xfb, 0xaa, 0xf1,
- 0xb7, 0xbd, 0x2d, 0xb8, 0xa8, 0x10, 0x3d, 0x4d, 0x64, 0x8b, 0xe1, 0x9c, 0x9b, 0x40, 0x7b, 0xdf,
- 0xca, 0x24, 0x49, 0x53, 0x20, 0x73, 0x3a, 0xa0, 0x85, 0xeb, 0xec, 0xd9, 0x98, 0x0f, 0x6f, 0xfb,
- 0x5a, 0x4a, 0x48, 0x42, 0xbc, 0xfe, 0xb6, 0x09, 0x9f, 0x3a, 0x6b, 0xa3, 0xc4, 0x7e, 0x79, 0x64,
- 0xf8, 0x7e, 0x1e, 0x3d, 0x70, 0x4d, 0x53, 0x73, 0xef, 0x6a, 0x81, 0x25, 0x27, 0xf7, 0x67, 0x52,
- 0xcc, 0x76, 0xf0, 0x2b, 0x06, 0x2d, 0xdd, 0x1e, 0x74, 0xd6, 0x82, 0xeb, 0xfb, 0xb4, 0xbe, 0xd5,
- 0x47, 0xba, 0xed, 0x25, 0x11, 0x34, 0xd9, 0x55, 0xb5, 0x0c, 0x49, 0x40, 0x38, 0xd0, 0xe3, 0xe5,
- 0x96, 0x3c, 0xb8, 0x69, 0xba, 0xd3, 0x6b, 0x17, 0xeb, 0xec, 0xe9, 0x48, 0x3f, 0xca, 0xc7, 0xb1,
- 0x6e, 0x42, 0xa6, 0x54, 0xca, 0x9e, 0x38, 0x64, 0x04, 0x86, 0x68, 0x6d, 0x18, 0x3d, 0xa0, 0xe3,
- 0x13, 0xdb, 0xc2, 0xbf, 0x42, 0xfd, 0x3f, 0x89, 0xe5, 0xe6, 0x65, 0x28, 0x1b, 0x72, 0xb4, 0xc7,
- 0x24, 0xfa, 0x91, 0x95, 0x27, 0xb2, 0x23, 0xbb, 0xe7, 0xa5, 0x51, 0xff, 0x17, 0x8d, 0xe4, 0x57,
- 0x74, 0x46, 0xd1, 0x5f, 0xf1, 0xae, 0x7f, 0xb3, 0xa8, 0xd8, 0x88, 0x0a, 0x76, 0xfd, 0x2d, 0x41,
- 0x09, 0xdf, 0xb5, 0xb4, 0x79, 0xcd, 0x78, 0x5e, 0x49, 0xb8, 0x85, 0x4f, 0x75, 0xb2, 0x39, 0x65,
- 0x03, 0x29, 0xbd, 0x3c, 0x13, 0x2f, 0x92, 0x5f, 0x99, 0xff, 0x37, 0x19, 0xd0, 0xbc, 0x89, 0x17,
- 0x30, 0xd5, 0x81, 0x46, 0xf3, 0xb5, 0x34, 0xb9, 0x84, 0x2b, 0xf6, 0x53, 0x9e, 0x91, 0x47, 0xb3,
- 0x50, 0xbc, 0x40, 0xca, 0xd6, 0x1c, 0x5c, 0x08, 0x4f, 0x7d, 0xd9, 0xf5, 0x61, 0x70, 0xc9, 0x16,
- 0x4f, 0xc3, 0x33, 0x85, 0xd8, 0x5d, 0x6e, 0x3e, 0x8b, 0xe1, 0x60, 0xb9, 0xbc, 0xb7, 0x1c, 0x8d,
- 0x0e, 0x2b, 0x67, 0xd8, 0xef, 0x37, 0x50, 0xd5, 0xcf, 0xd0, 0x47, 0xcb, 0xe7, 0xdc, 0x2e, 0x46,
- 0x7d, 0x99, 0x64, 0xeb, 0x88, 0x63, 0x07, 0xed, 0xe1, 0x60, 0x0d, 0x45, 0x03, 0x4f, 0x14, 0x24,
- 0xb9, 0x96, 0x4a, 0x60, 0x47, 0x27, 0x6d, 0x98, 0xab, 0x5b, 0xa6, 0x57, 0x7c, 0x9c, 0x55, 0x99,
- 0x37, 0x21, 0x53, 0x2a, 0x65, 0x4f, 0x1c, 0x32, 0x02, 0x43, 0x34, 0xd7, 0x0c, 0xff, 0x50, 0x90,
- 0x54, 0x61, 0x2f, 0x9a, 0x53, 0xc9, 0xe6, 0xdc, 0x50, 0xea, 0x2c, 0x68, 0x23, 0xa2, 0x57, 0x22,
- 0x1f, 0x7f, 0x73, 0x4f, 0x0e, 0x41, 0x32, 0x36, 0xc4, 0x9c, 0xb9, 0x4c, 0xdd, 0xc7, 0xd5, 0x9b,
- 0xc2, 0x5d, 0x97, 0xf3, 0xe9, 0x1a, 0x8d, 0xcb, 0xbb, 0x06, 0xc5, 0x20, 0x1c, 0x68, 0x90, 0x93,
- 0x33, 0xfc, 0x3c, 0x7a, 0xe0, 0x9a, 0xa6, 0xe6, 0x1d, 0xd4, 0xc1, 0x4a, 0x4e, 0x2d, 0xce, 0xa4,
- 0x3a, 0x23, 0x89, 0xce, 0x99, 0x57, 0xde, 0xb8, 0x54, 0x6c, 0x44, 0x05, 0x3b, 0x9f, 0xf7, 0xc1,
- 0xe5, 0x8e, 0xbb, 0x5a, 0xdd, 0x87, 0x3c, 0x2f, 0xc5, 0x5c, 0xa3, 0xc6, 0xdb, 0x59, 0xfd, 0xd3,
- 0xe8, 0x8c, 0x61, 0xbe, 0x21, 0x9f, 0xfe, 0xa5, 0x93, 0x73, 0xd3, 0x14, 0xec, 0x39, 0x5a, 0x82,
- 0x12, 0x7d, 0xa9, 0xab, 0xf2, 0x59, 0xf0, 0xbc, 0x92, 0xb3, 0xc9, 0x9e, 0xea, 0xa7, 0x72, 0xca,
- 0x92, 0xe1, 0xd7, 0x39, 0x3f, 0x06, 0xd1, 0xc3, 0xf4, 0x7b, 0x1c, 0xd5, 0x7d, 0x18, 0x59, 0x85,
- 0xac, 0x1f, 0x31, 0xa7, 0x23, 0x84, 0xb5, 0xaf, 0xbf, 0x80, 0xad, 0x4d, 0x04, 0x55, 0x30, 0x70,
- 0x34, 0x08, 0xee, 0x16, 0x76, 0x60, 0x8e, 0x6d, 0x9b, 0xbc, 0x03, 0xce, 0xdc, 0x43, 0xd9, 0x87,
- 0x52, 0x33, 0x96, 0xe2, 0x75, 0x97, 0x01, 0x62, 0xa1, 0xd7, 0x42, 0x5a, 0x40, 0x19, 0x86, 0x0c,
- 0xed, 0xf7, 0x65, 0xfa, 0x14, 0xee, 0x8b, 0x44, 0xfb, 0xb1, 0x8a, 0x3f, 0x5f, 0x3e, 0x02, 0xbb,
- 0xfa, 0xf1, 0xc8, 0x15, 0xd3, 0xc6, 0x0e, 0x19, 0x01, 0xc0, 0x1a, 0x8a, 0x06, 0x9e, 0x28, 0x48,
- 0x98, 0x17, 0xdf, 0xb1, 0x55, 0xe4, 0x3b, 0xc2, 0x24, 0x3c, 0xae, 0x83, 0xd8, 0x16, 0xe9, 0xf7,
- 0xdf, 0xad, 0x32, 0x94, 0x44, 0xd0, 0xe2, 0x97, 0x91, 0x30, 0xe7, 0xc3, 0xe0, 0xc6, 0x0a, 0x12,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x66, 0x3b, 0x78, 0xf4, 0x03, 0xf7, 0x8f, 0x0f, 0x3a, 0x6b, 0x41, 0x94, 0x9c, 0x5a, 0x5f, 0x8b,
- 0x2f, 0xaa, 0xf2, 0x09, 0xfd, 0xf4, 0x06, 0x8f, 0x40, 0xb7, 0x4f, 0x1f, 0x43, 0x56, 0x92, 0x28,
- 0x3e, 0xfe, 0xe6, 0x9e, 0x1c, 0x82, 0x64, 0x6c, 0x4b, 0xfb, 0xb1, 0x98, 0x79, 0x4d, 0x69, 0xf5,
- },
- { /* 12 */
- 0xc2, 0x45, 0xb9, 0x57, 0x85, 0xa8, 0xdb, 0x13, 0x2a, 0x3f, 0xb0, 0xb9, 0xb0, 0x0b, 0x7b, 0xc6,
- 0x95, 0x59, 0xc2, 0x20, 0x7c, 0x53, 0x81, 0x21, 0x64, 0x56, 0x1f, 0xc2, 0x1f, 0x6d, 0x57, 0x36,
- 0xa6, 0x73, 0x93, 0x63, 0x29, 0x01, 0x42, 0x6e, 0x91, 0x38, 0x9b, 0x93, 0x9b, 0xf4, 0x35, 0x9d,
- 0x27, 0x78, 0x48, 0x3d, 0x69, 0x20, 0x97, 0x5e, 0x08, 0x0c, 0x8b, 0x48, 0x8b, 0xf5, 0x6f, 0x4b,
- 0xe0, 0xc8, 0x66, 0x94, 0xe3, 0x75, 0x59, 0xd8, 0x8c, 0xca, 0x48, 0x66, 0x48, 0xe5, 0x86, 0xb5,
- 0x86, 0x9c, 0xc4, 0x12, 0x49, 0xd1, 0x1c, 0x46, 0xa5, 0x16, 0x83, 0xc4, 0x83, 0x14, 0x42, 0x20,
- 0x06, 0xa6, 0x5b, 0x15, 0x0a, 0x17, 0xa7, 0xe6, 0x75, 0xae, 0xe3, 0x5b, 0xe3, 0x12, 0x5d, 0x91,
- 0x5d, 0x35, 0x96, 0x48, 0xe7, 0xc2, 0x70, 0xdb, 0xd1, 0x58, 0x49, 0x96, 0x49, 0x50, 0xcb, 0x80,
- 0x09, 0x7a, 0x21, 0xd4, 0x1b, 0xd3, 0x98, 0x9a, 0x44, 0x66, 0x76, 0x21, 0x76, 0x3f, 0x28, 0xd9,
- 0x78, 0x2f, 0x56, 0xc7, 0x88, 0xef, 0x3b, 0x66, 0x4b, 0x8f, 0x22, 0x56, 0x22, 0xab, 0x2e, 0x05,
- 0xf4, 0x9a, 0x7f, 0xea, 0xdf, 0x07, 0x0d, 0xc9, 0x71, 0xa8, 0x47, 0x7f, 0x47, 0x89, 0x8b, 0x55,
- 0x16, 0x30, 0x91, 0xcc, 0x3a, 0x7f, 0x88, 0xf2, 0x6f, 0xb9, 0xef, 0x91, 0xef, 0x62, 0x87, 0x2e,
- 0x19, 0xec, 0xeb, 0x0d, 0x2b, 0xbb, 0xb7, 0x8e, 0x5e, 0x71, 0x7a, 0xeb, 0x7a, 0x4f, 0xf2, 0x66,
- 0xec, 0x47, 0xd0, 0xbe, 0xf7, 0x5b, 0xd4, 0xd7, 0x66, 0x55, 0x4d, 0xd0, 0x4d, 0xc1, 0x3c, 0x54,
- 0x69, 0x88, 0xd8, 0x47, 0xbb, 0x60, 0x7a, 0xe2, 0x18, 0x14, 0x5e, 0xd8, 0x5e, 0xdc, 0xb1, 0xdd,
- 0x04, 0xc4, 0xd3, 0xa7, 0x0c, 0x1a, 0x7b, 0x05, 0xe7, 0x75, 0x03, 0xd3, 0x03, 0x1c, 0xd7, 0x5f,
- 0x8f, 0xe6, 0xe5, 0xc6, 0x52, 0x02, 0x84, 0xdc, 0xe1, 0x70, 0xf5, 0xe5, 0xf5, 0x2b, 0x6a, 0xf9,
- 0x30, 0x79, 0x9d, 0xa8, 0x50, 0xb8, 0x71, 0x3c, 0x2e, 0x39, 0x14, 0x9d, 0x14, 0x90, 0xad, 0x02,
- 0x39, 0x03, 0xbc, 0x7c, 0x4b, 0x6b, 0xe9, 0xa6, 0x6a, 0x5f, 0x62, 0xbc, 0x62, 0xaf, 0x85, 0xdb,
- 0xe9, 0xb2, 0x47, 0x40, 0xf8, 0xa6, 0xc1, 0x42, 0xc8, 0xac, 0x3e, 0x47, 0x3e, 0xda, 0xae, 0x6c,
- 0x03, 0x53, 0xcc, 0xeb, 0x05, 0xea, 0xb2, 0x73, 0xdb, 0x57, 0x90, 0xcc, 0x90, 0x09, 0xcf, 0xa9,
- 0xcf, 0xfb, 0x4b, 0x24, 0x92, 0x61, 0x38, 0x8c, 0x89, 0x2c, 0xc5, 0x4b, 0xc5, 0x28, 0x84, 0x40,
- 0x70, 0x64, 0x33, 0x4a, 0x90, 0xdb, 0xcd, 0x6c, 0x46, 0x65, 0x24, 0x33, 0x24, 0x93, 0x43, 0xbb,
- 0x43, 0x4e, 0x62, 0x09, 0xc5, 0x89, 0x0e, 0x23, 0xb3, 0x0b, 0xa0, 0x62, 0xa0, 0x0a, 0x21, 0x10,
- 0x55, 0x7e, 0xf3, 0xc5, 0xff, 0xf6, 0x86, 0xd1, 0xdc, 0xb2, 0x4f, 0xf3, 0x4f, 0x68, 0xa6, 0x3e,
- 0x2c, 0x60, 0xe1, 0x5b, 0x74, 0xfe, 0xd3, 0x27, 0xde, 0xb1, 0x1d, 0xe1, 0x1d, 0xc4, 0xcd, 0x5c,
- 0x12, 0xf4, 0x42, 0x6b, 0x36, 0x65, 0xf3, 0xf7, 0x88, 0xcc, 0xec, 0x42, 0xec, 0x7e, 0x50, 0x71,
- 0x8e, 0xd7, 0xa1, 0x9f, 0x51, 0xe5, 0xea, 0x4c, 0xa8, 0xfc, 0x85, 0xa1, 0x85, 0x2c, 0x2f, 0x9e,
- 0xd5, 0x44, 0x6c, 0xc2, 0xbc, 0x30, 0x3d, 0x71, 0x0c, 0x0a, 0x2f, 0x6c, 0x2f, 0x6e, 0xb9, 0x8f,
- 0x3d, 0xc7, 0x6f, 0xdb, 0x47, 0x71, 0x92, 0xa3, 0x8d, 0x2a, 0x61, 0x6f, 0x61, 0xb3, 0x52, 0x84,
- 0xd2, 0xd3, 0x73, 0x8e, 0xb5, 0xc0, 0xf4, 0x07, 0x30, 0x28, 0xbc, 0x73, 0xbc, 0x7b, 0xa1, 0x79,
- 0x76, 0xc2, 0x68, 0x5f, 0x9a, 0xcc, 0x6a, 0x8a, 0x33, 0xcb, 0xc7, 0x68, 0xc7, 0x81, 0x1e, 0x2a,
- 0x18, 0xdd, 0xaf, 0x54, 0x28, 0x5c, 0xd9, 0x1e, 0x17, 0xfd, 0x0a, 0xaf, 0x0a, 0x48, 0xb7, 0x01,
- 0x35, 0x8c, 0x0a, 0x56, 0x5f, 0x45, 0x64, 0xa9, 0x80, 0xc0, 0x67, 0x0a, 0x67, 0x8b, 0x3f, 0x3a,
- 0x07, 0x97, 0x1f, 0x4c, 0x09, 0xf0, 0xc9, 0x76, 0x3c, 0x22, 0x93, 0x1f, 0x93, 0x15, 0x18, 0xf6,
- 0xc0, 0x27, 0x31, 0xe5, 0x83, 0xa5, 0x07, 0xf0, 0xb8, 0xe4, 0x50, 0x31, 0x50, 0x05, 0xf1, 0x08,
- 0xf7, 0xc9, 0xb3, 0x01, 0xda, 0xed, 0xbf, 0xba, 0xaa, 0xff, 0xd7, 0xb3, 0xd7, 0x80, 0x44, 0xfc,
- 0xb8, 0x08, 0x67, 0x22, 0x0b, 0x4a, 0x3c, 0x96, 0xf3, 0x6b, 0x72, 0x67, 0x72, 0xae, 0xdf, 0x0d,
- 0x72, 0x06, 0xbb, 0xf8, 0x96, 0xd6, 0x11, 0x8f, 0xd4, 0xbe, 0xc4, 0xbb, 0xc4, 0x9d, 0xc9, 0x75,
- 0x11, 0xa7, 0x8e, 0x80, 0x33, 0x8f, 0x41, 0x84, 0x53, 0x9b, 0x7c, 0x8e, 0x7c, 0x77, 0x9f, 0xd8,
- 0xb4, 0x87, 0xd1, 0x08, 0x1f, 0x64, 0xb1, 0x99, 0x19, 0xf4, 0x77, 0xd1, 0x77, 0x8a, 0x65, 0xec,
- 0xff, 0x82, 0xd6, 0x8c, 0xc2, 0xd9, 0x49, 0xb0, 0xa7, 0x15, 0xd1, 0xd6, 0xd1, 0xb8, 0x29, 0x42,
- 0x1a, 0xbf, 0x27, 0xe6, 0x2e, 0x51, 0x05, 0xfd, 0x85, 0x26, 0xea, 0x27, 0xea, 0x46, 0x3d, 0xcf,
- 0x48, 0x56, 0xcb, 0x6f, 0xd8, 0x57, 0x4a, 0x5a, 0x65, 0xb6, 0x36, 0xcb, 0x36, 0x3b, 0x83, 0x07,
- 0xaa, 0xfc, 0x25, 0x49, 0x3d, 0x2f, 0xcf, 0x61, 0x7b, 0xa7, 0x9e, 0x25, 0x9e, 0xd0, 0x8f, 0x7c,
- 0x58, 0xc0, 0x01, 0xb6, 0xe8, 0x3f, 0x65, 0x4e, 0x7f, 0xa1, 0x3a, 0x01, 0x3a, 0x4b, 0x59, 0xb8,
- 0x93, 0xff, 0x99, 0x35, 0x76, 0x44, 0x26, 0xc7, 0x11, 0xf8, 0xfc, 0x99, 0xfc, 0x7f, 0x0a, 0xa7,
- 0x21, 0xde, 0x13, 0x28, 0x63, 0x37, 0x30, 0xb8, 0x7d, 0xa2, 0x68, 0x13, 0x68, 0xe7, 0x32, 0xda,
- 0xdd, 0x0f, 0x09, 0x4f, 0xa4, 0x04, 0xcb, 0x7b, 0x01, 0xe0, 0x29, 0x09, 0x29, 0x56, 0xd4, 0x31,
- 0x60, 0xf2, 0xf9, 0x93, 0xa0, 0xb3, 0xe2, 0x78, 0x5c, 0x72, 0x28, 0xf9, 0x28, 0xe3, 0x99, 0x04,
- 0x0c, 0x8f, 0xb6, 0x2a, 0x14, 0x2e, 0x8d, 0x0f, 0xea, 0x9f, 0x05, 0xb6, 0x05, 0x24, 0xba, 0xe1,
- 0xc4, 0xe3, 0xe2, 0x42, 0x8f, 0xbf, 0x7c, 0xf5, 0x5f, 0x91, 0x53, 0xe2, 0x53, 0x19, 0x26, 0x57,
- 0x9a, 0x85, 0xb8, 0xe1, 0x6d, 0x97, 0xbe, 0x5d, 0x55, 0x9e, 0x8a, 0xb8, 0x8a, 0x40, 0x22, 0x7e,
- 0x5c, 0x04, 0xd2, 0x11, 0xe4, 0x25, 0x1e, 0x4b, 0x98, 0xd4, 0x39, 0xd2, 0x39, 0x57, 0x8e, 0xe7,
- 0x53, 0xd8, 0xa8, 0xd0, 0xf5, 0xe1, 0x21, 0x37, 0xa9, 0x1c, 0xac, 0xa8, 0xac, 0x7a, 0xfb, 0xaf,
- 0xcd, 0x99, 0xc3, 0x96, 0x94, 0x6c, 0xe4, 0x6f, 0x1b, 0xf7, 0x25, 0xc3, 0x25, 0x26, 0x0e, 0x8e,
- 0x32, 0x1b, 0x15, 0x1a, 0x56, 0xb5, 0xad, 0xdf, 0xbc, 0xe2, 0xf4, 0x15, 0xf4, 0x9e, 0x27, 0xcc,
- 0x1b, 0x8e, 0x63, 0xbf, 0x2d, 0xb6, 0x6b, 0x6d, 0xcc, 0xaa, 0x9a, 0x63, 0x9a, 0x41, 0x78, 0xa8,
- 0x5a, 0xa2, 0x89, 0x04, 0xee, 0x32, 0xb9, 0xad, 0xed, 0x7a, 0xda, 0x89, 0xda, 0x45, 0xd3, 0x76,
- 0xa1, 0xe4, 0x8c, 0x2f, 0x20, 0xf1, 0x8b, 0x18, 0xad, 0x1a, 0x08, 0x8c, 0x08, 0xe1, 0x2d, 0x6b,
- 0xe5, 0x3d, 0xf1, 0x6a, 0xec, 0x88, 0x4c, 0x4d, 0x22, 0x33, 0x3b, 0xf1, 0x3b, 0xfe, 0x14, 0x8d,
- 0x3c, 0xf6, 0x2b, 0x82, 0x44, 0x96, 0xfc, 0x33, 0xc4, 0xa6, 0x11, 0x2b, 0x11, 0xb4, 0x17, 0xe3,
- 0x97, 0x3b, 0x4a, 0x92, 0x7a, 0x5e, 0x5d, 0xc2, 0xf6, 0x8d, 0xff, 0x4a, 0xff, 0x63, 0xdd, 0xf8,
- 0xce, 0xca, 0x0f, 0x7d, 0x91, 0x86, 0x56, 0x1c, 0xc0, 0xa0, 0xb5, 0x0f, 0xb5, 0x2f, 0xc1, 0x27,
- 0x6d, 0x4c, 0x0b, 0xe0, 0xb7, 0x7a, 0x01, 0xe7, 0xff, 0x61, 0x5d, 0x0b, 0x5d, 0xc0, 0x66, 0x82,
- 0x62, 0x90, 0x71, 0x21, 0xa6, 0xbe, 0x3e, 0x9b, 0xce, 0xa9, 0xc8, 0x71, 0xc8, 0xed, 0x13, 0xca,
- 0xf5, 0xab, 0x3b, 0xb3, 0xdc, 0xe0, 0x63, 0x59, 0x38, 0x24, 0x37, 0x3b, 0x37, 0x8e, 0xce, 0x32,
- 0xb7, 0xd4, 0x1d, 0xe3, 0x1a, 0x8e, 0x03, 0xea, 0xc2, 0xa3, 0xe7, 0x1d, 0xe7, 0x83, 0xaa, 0x45,
- 0xe2, 0xaa, 0xee, 0x26, 0xe5, 0x78, 0x85, 0x3b, 0x1e, 0x11, 0xa8, 0xee, 0xa8, 0xeb, 0x0c, 0x7b,
- 0x41, 0x2c, 0xea, 0xbb, 0xc3, 0x84, 0xd2, 0xc0, 0x21, 0xd0, 0x40, 0xea, 0x40, 0x04, 0xab, 0xde,
- 0x71, 0x55, 0x77, 0x13, 0x93, 0x3c, 0xa3, 0xfc, 0x0f, 0xe9, 0x54, 0x77, 0x54, 0x94, 0x06, 0xdc,
- 0xf9, 0x24, 0x8d, 0x99, 0xc8, 0xce, 0xee, 0x56, 0xd2, 0xbb, 0x32, 0x8d, 0x32, 0xaa, 0x74, 0xd3,
- 0xea, 0xe1, 0x8b, 0xab, 0xfd, 0x4c, 0x73, 0x31, 0x13, 0xfb, 0xae, 0x8b, 0xae, 0xd3, 0x61, 0xc5,
- 0xae, 0x38, 0xf6, 0xee, 0x31, 0x35, 0xb4, 0x64, 0x9c, 0xd2, 0x9d, 0xf6, 0x9d, 0xcc, 0x58, 0x23,
- 0xe4, 0x0c, 0xb5, 0x33, 0xef, 0x6f, 0x22, 0xdd, 0x6b, 0xbf, 0x4b, 0xb5, 0x4b, 0xf9, 0x51, 0xea,
- 0x0b, 0x18, 0xa9, 0x66, 0x1d, 0xde, 0x44, 0x79, 0xd6, 0xbd, 0x96, 0xa9, 0x96, 0x31, 0xa2, 0x17,
- 0xde, 0x5c, 0xc5, 0xa4, 0xa1, 0xee, 0x79, 0x08, 0xda, 0xb7, 0xb9, 0xc5, 0xb9, 0x5f, 0x1b, 0x98,
- 0xf0, 0x5e, 0xac, 0x4d, 0xd3, 0x1d, 0x76, 0xcc, 0x96, 0xdd, 0x44, 0xac, 0x44, 0x95, 0x5c, 0x0a,
- 0xd4, 0x75, 0x28, 0x9b, 0xbf, 0xd7, 0x53, 0xe1, 0x45, 0x86, 0x5f, 0x28, 0x5f, 0x69, 0xfc, 0xe8,
- 0xb5, 0xb6, 0x95, 0x51, 0x1c, 0x83, 0xdf, 0x09, 0x50, 0x78, 0x07, 0x95, 0x07, 0x8d, 0x20, 0x8b,
- 0xa4, 0x11, 0x1b, 0xd1, 0x2f, 0x0c, 0x9e, 0x8d, 0x03, 0xe3, 0x7b, 0x1b, 0x7b, 0xfa, 0xbf, 0x53,
- 0xba, 0x6a, 0xef, 0x90, 0x0d, 0x47, 0xe0, 0x75, 0x61, 0xb0, 0x92, 0xef, 0x92, 0xa0, 0x55, 0xc3,
- 0xe8, 0x83, 0x03, 0x19, 0xfb, 0x41, 0xaf, 0xd2, 0x81, 0x20, 0x4e, 0x03, 0x4e, 0xdd, 0xeb, 0x0b,
- 0x0e, 0xed, 0x3e, 0x98, 0x12, 0x23, 0x51, 0xec, 0x78, 0x44, 0xe5, 0x3e, 0xe5, 0x2a, 0x30, 0x2f,
- 0x9c, 0x23, 0xe3, 0xf4, 0x67, 0x80, 0x19, 0xbb, 0x20, 0x30, 0x69, 0xe3, 0x69, 0x52, 0x7f, 0xef,
- 0x31, 0x48, 0xd9, 0xf1, 0x53, 0x5f, 0x1f, 0xac, 0x67, 0xb5, 0x64, 0xd9, 0x64, 0x97, 0xe8, 0x65,
- 0x79, 0x1e, 0x12, 0x9e, 0x8b, 0x08, 0x55, 0xf6, 0x02, 0x03, 0x52, 0x12, 0x52, 0xac, 0x6b, 0x62,
- 0xfc, 0xd1, 0x1a, 0x67, 0xc7, 0x33, 0xfb, 0xc3, 0x7c, 0x42, 0x41, 0x1a, 0x41, 0xb1, 0xe6, 0xeb,
- 0x4d, 0xa3, 0x5c, 0x91, 0xd7, 0xaa, 0x5f, 0xcf, 0xcb, 0x4f, 0x45, 0x5c, 0x45, 0x20, 0x11, 0x3f,
- 0xdb, 0xa9, 0x52, 0x5a, 0xae, 0x13, 0x6c, 0x9d, 0x74, 0x4e, 0xca, 0x52, 0xca, 0x44, 0x89, 0xa0,
- 0x75, 0x91, 0xa4, 0xb4, 0x9f, 0x26, 0xd8, 0xf9, 0xe8, 0x9c, 0x57, 0xa4, 0x57, 0x88, 0xd1, 0x83,
- 0x68, 0xb9, 0x9c, 0x1e, 0xb8, 0x87, 0x14, 0x72, 0x51, 0x98, 0x2e, 0x9c, 0x2e, 0xdb, 0xf4, 0xba,
- 0x15, 0x63, 0x5d, 0x27, 0x3f, 0x95, 0x3a, 0x81, 0xb4, 0xee, 0x7f, 0x5d, 0x7f, 0x6b, 0x48, 0x87,
- 0xa9, 0xaf, 0xe9, 0xa2, 0x38, 0xc5, 0x7d, 0x12, 0xa0, 0xf0, 0x0e, 0xe9, 0x0e, 0xd9, 0x40, 0xd5,
- 0x01, 0x31, 0x44, 0x59, 0x03, 0xe7, 0x6e, 0x90, 0x49, 0x8c, 0x70, 0x44, 0x70, 0x07, 0x45, 0x67,
- 0x23, 0xbc, 0x9b, 0x9a, 0x65, 0x3a, 0xec, 0x5b, 0xef, 0x79, 0x88, 0x9b, 0x88, 0xe9, 0xb8, 0x14,
- 0xb2, 0x21, 0x8a, 0x1d, 0x15, 0x73, 0x16, 0x7f, 0x6c, 0x5a, 0x94, 0x8a, 0x94, 0x98, 0x38, 0x7d,
- 0x6e, 0x1f, 0xc7, 0x0b, 0xb2, 0x90, 0xb3, 0x94, 0x24, 0x36, 0xcd, 0xc7, 0xcd, 0xc9, 0xa9, 0x2b,
- 0xf2, 0x3c, 0x24, 0xff, 0xd5, 0x10, 0xaa, 0x2f, 0x04, 0x06, 0xa4, 0x24, 0xa4, 0x9b, 0xd6, 0xc4,
- 0x3b, 0x61, 0x34, 0xce, 0x4d, 0x66, 0x35, 0x45, 0xf8, 0x84, 0x82, 0x34, 0x82, 0xa1, 0x0f, 0x15,
- 0x52, 0xe9, 0xec, 0x89, 0xf6, 0x06, 0x4f, 0xa7, 0xe0, 0x90, 0xdc, 0xec, 0xdc, 0x7d, 0xbe, 0xc8,
- 0x65, 0x07, 0x6e, 0x6d, 0xaf, 0x4e, 0xf7, 0xed, 0xf2, 0x8b, 0x5b, 0x6e, 0x5b, 0xf8, 0x0b, 0x3c,
- 0x4b, 0x05, 0x07, 0x84, 0xdd, 0xbd, 0xf8, 0x29, 0xbe, 0xe1, 0xa6, 0x07, 0xa6, 0x32, 0x4c, 0xae,
- 0x38, 0x32, 0xf8, 0x25, 0x48, 0x8c, 0x87, 0x36, 0x23, 0xd3, 0x12, 0xf8, 0x12, 0xa8, 0xc0, 0xbc,
- 0x2a, 0xc6, 0xba, 0x4e, 0x7e, 0xe9, 0x74, 0xc1, 0xab, 0x1f, 0xfe, 0xba, 0xfe, 0xd6, 0x90, 0xcd,
- 0x91, 0x9d, 0x11, 0x87, 0x70, 0x49, 0xfa, 0x24, 0x83, 0x23, 0x1c, 0x11, 0x1c, 0x71, 0x80, 0x69,
- 0xd6, 0x17, 0xa0, 0x29, 0xb9, 0xda, 0x8f, 0x02, 0xd7, 0x5d, 0xbf, 0xa0, 0xbf, 0x67, 0x76, 0x26,
- 0xfd, 0xe0, 0x5e, 0x3e, 0xc4, 0xd4, 0x95, 0x53, 0x35, 0xce, 0x31, 0x5e, 0x31, 0xb6, 0xa3, 0x8c,
- 0xf8, 0x15, 0xc9, 0xc0, 0xcb, 0x29, 0x80, 0xc6, 0x9b, 0x37, 0x42, 0xc9, 0x42, 0xad, 0x31, 0xb4,
- 0x8c, 0xb5, 0x29, 0x2d, 0x57, 0xe8, 0x36, 0xaf, 0x3a, 0x27, 0x65, 0x29, 0x65, 0x22, 0xa5, 0x50,
- 0x50, 0x8b, 0x64, 0x3b, 0xf0, 0x0b, 0x93, 0x44, 0x72, 0x4b, 0x3c, 0x64, 0x3c, 0x73, 0x34, 0x06,
- 0x7f, 0xb8, 0x49, 0x8b, 0x81, 0x1f, 0xf2, 0x10, 0x77, 0xad, 0xb1, 0x49, 0xb1, 0xbe, 0x36, 0xf3,
- 0x59, 0xf1, 0x45, 0xef, 0xeb, 0xd8, 0x0b, 0xde, 0x36, 0x2d, 0x4a, 0x45, 0x4a, 0x4c, 0x1c, 0xdf,
- 0x08, 0x4b, 0x65, 0x8d, 0x18, 0x34, 0xf6, 0x0a, 0x0d, 0xea, 0x06, 0x65, 0x06, 0x38, 0x6d, 0xbe,
- 0xd9, 0xcb, 0xda, 0xe8, 0xa8, 0x1e, 0xb0, 0x7e, 0xe6, 0x95, 0x2a, 0xda, 0x2a, 0x4a, 0x03, 0x6e,
- 0xa2, 0xb7, 0x40, 0xc4, 0x25, 0x1b, 0x39, 0x6b, 0x76, 0x4d, 0x98, 0x40, 0x98, 0xe8, 0xe2, 0xc2,
- 0xfb, 0x46, 0x05, 0x2b, 0xce, 0xc3, 0x32, 0xb5, 0x40, 0x60, 0xd2, 0x05, 0xd2, 0xa4, 0xfe, 0x1d,
- 0x1c, 0x19, 0x7c, 0xf3, 0x24, 0x46, 0xa2, 0x1b, 0xf0, 0x88, 0x09, 0x7c, 0x09, 0x54, 0x60, 0x5e,
- 0x29, 0x95, 0x76, 0xa5, 0x7b, 0x03, 0xc6, 0xb2, 0x70, 0x48, 0x6e, 0x76, 0x6e, 0xdf, 0x5f, 0x64,
- 0xd3, 0xe2, 0x37, 0xd7, 0xb6, 0x27, 0x9a, 0x97, 0x79, 0xa4, 0xcc, 0x37, 0xcc, 0x7c, 0xe4, 0x1e,
- 0x6f, 0x2e, 0x83, 0x52, 0xb1, 0x77, 0xdd, 0x04, 0x6d, 0xba, 0xbd, 0x83, 0xbd, 0xce, 0xec, 0x4c,
- 0x47, 0x8a, 0xb1, 0xae, 0xc9, 0x93, 0x75, 0x26, 0x54, 0x7e, 0xa3, 0xb1, 0xa3, 0x16, 0xf6, 0x4f,
- 0x54, 0x4f, 0xb7, 0x9c, 0xfc, 0x11, 0xe8, 0x41, 0x95, 0x3e, 0x3f, 0xb7, 0x3f, 0x6f, 0xe3, 0x59,
- 0x9f, 0x70, 0x2f, 0x1f, 0x62, 0x6a, 0xab, 0xc8, 0xfb, 0x67, 0xf9, 0x2f, 0xf9, 0x5b, 0xb0, 0x46,
- 0x17, 0x01, 0xd5, 0x95, 0x39, 0x98, 0xe6, 0x62, 0x26, 0x35, 0x9f, 0xd5, 0x9f, 0x65, 0xc2, 0x49,
- 0xe1, 0xf9, 0x22, 0xcd, 0xe0, 0x92, 0x37, 0x48, 0xc5, 0x46, 0x38, 0x22, 0x38, 0xe2, 0xc3, 0xd2,
- 0x7c, 0xeb, 0x85, 0x60, 0x84, 0xf5, 0x40, 0x63, 0xac, 0xfa, 0x21, 0x85, 0x21, 0xb7, 0xf9, 0x5a,
- 0x46, 0xbb, 0xf5, 0xf7, 0xca, 0x74, 0x1b, 0xb6, 0x1d, 0xf2, 0xd3, 0xf5, 0xd3, 0x11, 0xb3, 0x28,
- 0xbc, 0xcc, 0xb4, 0x85, 0x07, 0x50, 0x47, 0x93, 0x14, 0x1e, 0x71, 0xb4, 0x71, 0xb2, 0x08, 0x52,
- 0xc5, 0xd2, 0xa6, 0x1b, 0x8c, 0x58, 0x12, 0x65, 0x16, 0x1d, 0x23, 0xa6, 0x23, 0x1e, 0x63, 0x30,
- 0x22, 0x8d, 0xdf, 0xc3, 0x66, 0xdd, 0x82, 0xcb, 0xa6, 0xf5, 0xf8, 0xdf, 0xf8, 0xee, 0xfd, 0x73,
- 0xbe, 0xae, 0x3c, 0x37, 0x01, 0x5d, 0x9b, 0x70, 0x86, 0xc5, 0x91, 0x3c, 0x91, 0xbc, 0x82, 0x9c,
- 0x96, 0x0a, 0x0e, 0xcb, 0x79, 0xb9, 0x33, 0x52, 0xbf, 0x01, 0x8f, 0x0e, 0x8f, 0x64, 0x98, 0x9f,
- 0x7e, 0x89, 0x0d, 0xd2, 0x82, 0xf8, 0x9c, 0x80, 0x3e, 0x21, 0xc1, 0x0d, 0xc1, 0xb9, 0x73, 0x94,
- 0x1d, 0x28, 0x38, 0xaa, 0x27, 0xa1, 0xcc, 0x8b, 0xb9, 0x04, 0x79, 0x38, 0x79, 0x53, 0x25, 0x39,
- 0xb9, 0x39, 0x23, 0x7b, 0x08, 0xad, 0x52, 0x06, 0xba, 0xe7, 0x02, 0x23, 0x02, 0xa9, 0x9a, 0x6a,
- 0x9d, 0x12, 0xa7, 0xad, 0x64, 0x67, 0x77, 0x2b, 0x69, 0xbc, 0x19, 0xa7, 0x19, 0x55, 0x3a, 0x88,
- 0xad, 0x6b, 0x3a, 0x05, 0x34, 0xdf, 0x06, 0x17, 0x47, 0x85, 0x0d, 0x3a, 0x0d, 0xc5, 0x97, 0x8a,
- 0x6c, 0x7d, 0x4f, 0xb9, 0xb4, 0x9d, 0x6f, 0x77, 0xb6, 0xed, 0x2d, 0x4f, 0x2d, 0xc7, 0x23, 0xe5,
- 0x85, 0xcf, 0x08, 0xf9, 0x4c, 0x3b, 0xae, 0x35, 0x7e, 0x41, 0x13, 0x08, 0x13, 0x1d, 0x8d, 0x89,
- 0xd1, 0x80, 0xbf, 0x65, 0xb0, 0x2a, 0x46, 0x74, 0xeb, 0x7f, 0x2c, 0xbf, 0x2c, 0x72, 0x6e, 0xd0,
- 0x1e, 0x7b, 0xf4, 0x41, 0x22, 0x4b, 0x7e, 0xf8, 0x62, 0x53, 0xe9, 0xf4, 0xe9, 0x5a, 0xea, 0x90,
- 0xa5, 0x20, 0x5f, 0x88, 0x2c, 0xeb, 0xf0, 0x1d, 0x4a, 0x6f, 0x0b, 0x5f, 0x0b, 0xfd, 0xfa, 0x34,
- 0xe6, 0x6e, 0x3d, 0x81, 0xe9, 0x62, 0xfe, 0x3e, 0xf9, 0x64, 0xab, 0x3d, 0xab, 0xf7, 0xdb, 0x24,
- 0x2e, 0x02, 0x69, 0xe9, 0x72, 0xf3, 0x0f, 0xc4, 0x4c, 0x6a, 0xfd, 0x69, 0xfd, 0xca, 0x47, 0x92,
- 0x5f, 0x57, 0x1e, 0xfa, 0xe1, 0xcf, 0xac, 0x38, 0x43, 0x83, 0xa9, 0x1e, 0xa9, 0x5e, 0x41, 0x4e,
- 0x61, 0xc3, 0xbd, 0xca, 0xa3, 0x54, 0x8c, 0xe8, 0x15, 0xfe, 0x58, 0xbd, 0x58, 0xe4, 0xdc, 0x63,
- 0x83, 0x69, 0x53, 0xec, 0x46, 0x2c, 0x09, 0xd3, 0x0b, 0xef, 0xf0, 0x53, 0xf0, 0x0f, 0xd0, 0x18,
- 0x44, 0xd9, 0x7d, 0x45, 0xcc, 0x79, 0xc7, 0x55, 0x8f, 0x29, 0x33, 0x7d, 0x33, 0x1f, 0x39, 0xe6,
- 0xb1, 0x72, 0x46, 0xf6, 0x10, 0x99, 0xa4, 0x0c, 0xb7, 0x0d, 0x04, 0x46, 0x04, 0x91, 0xf7, 0xd4,
- 0xef, 0x14, 0x1c, 0x55, 0xf2, 0xb1, 0x66, 0xa4, 0xbd, 0x02, 0xdd, 0x1c, 0xdd, 0xc8, 0xf3, 0xfd,
- 0x82, 0x58, 0x17, 0xb5, 0x45, 0xcb, 0x67, 0x43, 0x42, 0x63, 0x80, 0x17, 0x80, 0x08, 0x95, 0x7f,
- 0x36, 0xdf, 0xc6, 0xbd, 0x5a, 0xaf, 0xd6, 0xda, 0x5b, 0x97, 0xf7, 0xc6, 0xf7, 0x82, 0xf0, 0x93,
- 0xa3, 0x86, 0x04, 0x9d, 0x26, 0xfc, 0x57, 0xfb, 0x3f, 0xc1, 0xe8, 0x04, 0xe8, 0xef, 0xa7, 0xa5,
- 0xaf, 0x09, 0xb2, 0xb7, 0x32, 0xd2, 0xda, 0xf4, 0xd5, 0x5e, 0xed, 0xb2, 0xed, 0xcb, 0x1d, 0x44,
- 0x88, 0x71, 0xfa, 0x8a, 0x5b, 0xf2, 0x4d, 0xaa, 0xdd, 0x52, 0x66, 0xfa, 0x66, 0x3e, 0x72, 0x0f,
- 0x89, 0x40, 0xbe, 0xd3, 0x58, 0x15, 0x23, 0x3a, 0x94, 0xde, 0x16, 0xbe, 0x16, 0x39, 0x37, 0x68,
- 0x0f, 0xdc, 0x7a, 0xc1, 0x11, 0xc4, 0x3f, 0x7c, 0x31, 0xc8, 0x95, 0x7a, 0x95, 0x2d, 0x75, 0x48,
- 0x1f, 0x4a, 0xb0, 0x18, 0x21, 0xac, 0x10, 0x68, 0x2b, 0xdf, 0x99, 0xb0, 0x99, 0x5d, 0xaf, 0xf7,
- 0x42, 0x7f, 0x26, 0x50, 0xc6, 0x6e, 0x60, 0xb3, 0xfa, 0x87, 0xd0, 0x26, 0xd0, 0x0d, 0x64, 0x77,
- 0xf6, 0xf8, 0xf7, 0x58, 0xd9, 0x0a, 0xd1, 0x2a, 0xe3, 0x73, 0xa7, 0xf7, 0xa7, 0x87, 0x01, 0x9b,
- 0xdf, 0x6d, 0x81, 0xfd, 0xa2, 0x09, 0x17, 0x98, 0x93, 0x3b, 0xc9, 0x81, 0xc9, 0x58, 0x5e, 0xff,
- 0x3a, 0x50, 0x70, 0x97, 0x4e, 0x81, 0x5b, 0xd5, 0xb1, 0x08, 0xf2, 0x70, 0xf2, 0xa6, 0x4a, 0x72,
- 0xc1, 0x16, 0x75, 0xbc, 0x80, 0x42, 0x69, 0x60, 0xf1, 0x68, 0x20, 0x75, 0x20, 0x02, 0xb4, 0x6f,
- 0x28, 0xa4, 0x32, 0xfc, 0x78, 0xe4, 0xa8, 0x22, 0x39, 0xc4, 0x1e, 0x32, 0x1e, 0xd8, 0x1a, 0x03,
- 0xf1, 0x6f, 0xe8, 0x14, 0xd0, 0xfa, 0x18, 0x5c, 0xdf, 0x51, 0x34, 0xe8, 0x34, 0x92, 0x19, 0x6d,
- 0xcb, 0x3f, 0x98, 0x83, 0x9e, 0x7b, 0x43, 0x89, 0x6e, 0x59, 0xc6, 0x98, 0xc6, 0x34, 0x53, 0x1f,
- 0x92, 0xce, 0xdd, 0x6c, 0x75, 0xa3, 0x48, 0x57, 0x58, 0x74, 0x8c, 0xdd, 0x8c, 0x78, 0x4f, 0xc0,
- 0x87, 0xad, 0x80, 0x4b, 0x4a, 0x36, 0x72, 0xd6, 0xec, 0x9a, 0xf3, 0x80, 0xf3, 0x13, 0x07, 0x47,
- 0xe7, 0x5f, 0x79, 0xd8, 0xea, 0x85, 0x90, 0xae, 0xb0, 0xe8, 0xdb, 0x79, 0xdb, 0xf0, 0x9e, 0x43,
- 0x3e, 0x94, 0xa3, 0x30, 0x42, 0x9b, 0x20, 0xd0, 0x56, 0x7d, 0xf1, 0xa3, 0xf1, 0xba, 0x9d, 0x2d,
- 0xfa, 0x77, 0x41, 0x72, 0xcd, 0x24, 0x5c, 0x25, 0x09, 0xec, 0xa2, 0x41, 0xa2, 0xa3, 0xbb, 0x7a,
- 0x0d, 0xbe, 0xf2, 0x73, 0x17, 0xc9, 0xe3, 0x9f, 0xa3, 0x13, 0x75, 0xf2, 0x75, 0x23, 0xff, 0x86,
- 0x51, 0xba, 0x20, 0x62, 0xf3, 0xec, 0xfd, 0xd4, 0x3b, 0xc7, 0x4c, 0x20, 0x4c, 0x74, 0x71, 0x61,
- 0xb6, 0xe5, 0x59, 0xba, 0x19, 0x69, 0x6d, 0x7a, 0x8b, 0x2f, 0x97, 0x59, 0x97, 0x84, 0xef, 0x22,
- 0x7b, 0x7c, 0x9a, 0x2c, 0x8d, 0x05, 0x89, 0x15, 0x90, 0xd8, 0xb2, 0x9a, 0xb2, 0xa2, 0xe1, 0xac,
- 0x74, 0xa0, 0xe0, 0xed, 0x9c, 0xc1, 0xb6, 0x69, 0xa1, 0x10, 0x27, 0xe0, 0x27, 0x8f, 0x94, 0xe4,
- 0x3f, 0xa5, 0xe7, 0x69, 0x41, 0x7c, 0x4e, 0x40, 0x1f, 0xf1, 0x81, 0xe7, 0x81, 0xbd, 0xd8, 0x4a,
- 0x2f, 0x33, 0x2d, 0xb0, 0x71, 0x14, 0x61, 0x54, 0x05, 0xe6, 0x8d, 0x2d, 0x8d, 0xcd, 0x02, 0xf5,
- 0x7d, 0xda, 0xc1, 0x39, 0x87, 0x12, 0x2e, 0xf3, 0xe5, 0x76, 0x51, 0xc1, 0x51, 0xb0, 0xbc, 0x3d,
- 0xbb, 0x5b, 0xab, 0xc9, 0x0e, 0xa0, 0x8e, 0xe5, 0x28, 0x3c, 0xe2, 0xab, 0xe2, 0xa7, 0x10, 0xa4,
- 0x49, 0x67, 0x8f, 0x36, 0xdb, 0xb0, 0x24, 0xca, 0x2c, 0x3a, 0x46, 0x8f, 0x46, 0x3c, 0xc6, 0x60,
- 0x2b, 0xf7, 0xfe, 0x17, 0x7d, 0x0e, 0x1a, 0x51, 0xe2, 0x93, 0x8e, 0xfe, 0x8e, 0xd1, 0xd5, 0xaa,
- 0x99, 0xd6, 0x74, 0x0a, 0x68, 0x7d, 0x0c, 0x2e, 0x8e, 0xc9, 0x1a, 0x74, 0x1a, 0x49, 0xed, 0xd7,
- 0x02, 0x62, 0x88, 0xb2, 0x06, 0x0d, 0xdc, 0xe3, 0x92, 0xdb, 0xe0, 0x88, 0xe0, 0x0e, 0x8a, 0xce,
- 0x37, 0xee, 0x82, 0xe4, 0x59, 0x48, 0xb8, 0x4a, 0x12, 0x1b, 0x87, 0x82, 0x87, 0x85, 0xb5, 0xf4,
- 0xb3, 0x10, 0xce, 0x44, 0x16, 0x94, 0x78, 0xef, 0x25, 0xd6, 0xe4, 0xce, 0xe4, 0x9f, 0x7d, 0x1a,
- 0x73, 0x37, 0xff, 0xa1, 0x95, 0x31, 0x7f, 0x1f, 0x9d, 0x32, 0xb4, 0xff, 0xb4, 0x9a, 0x8c, 0x12,
- 0x64, 0x36, 0x2a, 0x34, 0xac, 0xa9, 0x99, 0x7d, 0xbb, 0x07, 0x2b, 0x2a, 0x2b, 0xff, 0x4e, 0x5b,
- 0xdc, 0x3e, 0x4d, 0x16, 0xa7, 0xe3, 0xa5, 0xeb, 0x48, 0x6c, 0x59, 0x4d, 0x59, 0x51, 0x91, 0x56,
- 0xd8, 0xfa, 0x9e, 0xb1, 0xab, 0xf9, 0xde, 0xee, 0xaf, 0x19, 0x5a, 0x9e, 0x5a, 0x4d, 0x46, 0x09,
- 0xc9, 0x5d, 0x10, 0x31, 0x98, 0x76, 0x9f, 0x6a, 0xfc, 0x82, 0x26, 0x10, 0x26, 0x3a, 0xd9, 0xd1,
- 0xab, 0xcd, 0x61, 0x10, 0x3e, 0xc8, 0xa1, 0xf1, 0x32, 0x2b, 0xee, 0x61, 0xee, 0xd7, 0xca, 0x1b,
- 0x33, 0x2a, 0x51, 0x43, 0x55, 0x52, 0xc3, 0x4f, 0xf5, 0x6e, 0x84, 0x51, 0x84, 0x99, 0x62, 0xab,
- 0x6b, 0xea, 0x50, 0xf5, 0xbd, 0x6d, 0xa6, 0x01, 0x8a, 0xcf, 0xbe, 0x50, 0xbe, 0xd2, 0x3b, 0x13,
- 0xcc, 0xa8, 0x87, 0xcf, 0x97, 0x8b, 0x8a, 0xff, 0x52, 0x7b, 0x55, 0x87, 0x55, 0x21, 0x4b, 0xe9,
- 0x90, 0xac, 0x55, 0xde, 0x73, 0xae, 0x94, 0xb4, 0xca, 0xaf, 0x6c, 0x55, 0x6c, 0x76, 0xc5, 0x0e,
- 0xd0, 0xb1, 0xfb, 0x3c, 0xb3, 0xcd, 0x28, 0xe4, 0xa2, 0xf3, 0x5c, 0xfb, 0x5c, 0x75, 0x2b, 0xb7,
- 0xac, 0x5a, 0x7e, 0x5c, 0x37, 0x38, 0x68, 0x87, 0x0e, 0x09, 0x7d, 0x7e, 0x7d, 0xc2, 0xd2, 0xed,
- 0xbf, 0x9f, 0x78, 0x6e, 0x02, 0xba, 0xf5, 0xe0, 0xcf, 0x49, 0xe1, 0x78, 0xe1, 0xbb, 0xc7, 0xfb,
- 0xda, 0x98, 0x16, 0x03, 0xad, 0xf4, 0x02, 0x0d, 0x3d, 0xc2, 0xba, 0x16, 0xba, 0x43, 0xcc, 0xc7,
- 0xa7, 0x42, 0xd7, 0x3a, 0x2a, 0xe6, 0x2c, 0xfe, 0xd8, 0xb4, 0xeb, 0xd7, 0xeb, 0xf3, 0x70, 0xfa,
- 0x5e, 0x66, 0x5a, 0xa3, 0xe2, 0x28, 0xc2, 0xa8, 0x0a, 0x0f, 0xd9, 0x5a, 0xd9, 0x59, 0x04, 0x29,
- 0x98, 0xe7, 0x30, 0x53, 0x6b, 0x9a, 0x62, 0xbe, 0xc7, 0x45, 0x6a, 0x30, 0x6a, 0x4e, 0xa8, 0xb0,
- 0x7a, 0x4d, 0xde, 0x75, 0x8e, 0xe2, 0xe7, 0x85, 0xd9, 0x54, 0xc2, 0xde, 0xc2, 0xa5, 0xa4, 0xcb,
- 0x13, 0xc5, 0x06, 0x32, 0x35, 0x82, 0x9d, 0x67, 0xc1, 0x40, 0x9c, 0x06, 0x9c, 0x79, 0x15, 0x16,
- 0x6a, 0xdb, 0x14, 0xac, 0xbe, 0x8a, 0xc8, 0x91, 0xc3, 0x43, 0xce, 0x14, 0xce, 0xd5, 0x7e, 0x74,
- 0x40, 0x1d, 0xae, 0xe2, 0xc0, 0x63, 0xbc, 0x50, 0x68, 0x5c, 0x30, 0xae, 0x30, 0x03, 0xee, 0xb9,
- 0xa8, 0x9e, 0xad, 0xfb, 0x3b, 0x22, 0x13, 0x82, 0xe9, 0x7c, 0x7e, 0xad, 0x7e, 0xde, 0x05, 0xb2,
- 0x5b, 0x93, 0xcd, 0x5d, 0xed, 0xd5, 0xd7, 0x3d, 0xa4, 0xf6, 0xaa, 0xcd, 0xaa, 0x42, 0x96, 0x11,
- 0xeb, 0xd0, 0xcf, 0xf2, 0xfe, 0xab, 0x1d, 0xa1, 0x5a, 0x77, 0xde, 0xcf, 0xde, 0xd4, 0x24, 0xa2,
- 0x66, 0x54, 0xa2, 0x86, 0xaa, 0xa4, 0x45, 0x9e, 0x29, 0xdc, 0xcb, 0xa2, 0xcb, 0xf1, 0xc4, 0x95,
- 0x56, 0x2d, 0x3f, 0x2e, 0xfa, 0x1c, 0x34, 0xa2, 0x07, 0xe5, 0xdf, 0x3f, 0xdf, 0x61, 0x69, 0x97,
- 0x81, 0x0b, 0xdb, 0x5e, 0x40, 0x21, 0xd5, 0x30, 0x99, 0x34, 0x10, 0xdb, 0x10, 0x01, 0x5a, 0xd6,
- 0x77, 0xf3, 0x2c, 0x06, 0x99, 0x2b, 0x04, 0x1a, 0x7a, 0x47, 0xb7, 0x2c, 0xb7, 0x86, 0x5b, 0x4d,
- 0x57, 0x1c, 0x7b, 0x77, 0xf9, 0xfb, 0x5a, 0x32, 0x4e, 0x69, 0xaf, 0x7b, 0xaf, 0x66, 0x2c, 0xf0,
- 0x4e, 0xf0, 0x90, 0x7a, 0xd2, 0x40, 0xed, 0xbc, 0x10, 0x18, 0xd5, 0x90, 0xd5, 0x29, 0xde, 0x96,
- 0x8d, 0x84, 0x6d, 0x74, 0x54, 0x0f, 0x58, 0x3f, 0x73, 0xab, 0x15, 0x6d, 0x15, 0x25, 0xe0, 0x37,
- 0xb0, 0x43, 0x02, 0xaf, 0x13, 0x7e, 0xca, 0x9c, 0xfe, 0x81, 0x74, 0x02, 0x74, 0x96, 0xb2, 0xb3,
- 0xf3, 0x0d, 0x60, 0xa6, 0xd6, 0xf7, 0xc4, 0xbf, 0x4d, 0x8a, 0xd4, 0x60, 0xd4, 0x9c, 0x93, 0xa3,
- 0x94, 0x68, 0x86, 0x79, 0x7f, 0xb4, 0xef, 0xb1, 0x2d, 0xda, 0x6f, 0x86, 0x6f, 0x6a, 0x12, 0x51,
- 0x20, 0xef, 0x57, 0x71, 0x60, 0xd0, 0x5e, 0x28, 0x34, 0x2e, 0x18, 0x57, 0x18, 0xe0, 0x77, 0xbd,
- 0x24, 0x2b, 0x84, 0xd6, 0x6c, 0xca, 0x25, 0x2d, 0xd3, 0x5b, 0x1b, 0x84, 0x1b, 0xfc, 0xa0, 0xe2,
- 0xd7, 0x26, 0xe4, 0x70, 0xba, 0x3d, 0xe1, 0x92, 0x9e, 0xd1, 0xcf, 0xe4, 0xcf, 0x60, 0x33, 0x41,
- 0x14, 0x52, 0x19, 0x7e, 0x3c, 0x72, 0x54, 0x11, 0xfd, 0x62, 0x0f, 0x19, 0x0f, 0x6c, 0x0d, 0xe0,
- 0x9e, 0x41, 0x6b, 0x46, 0x61, 0x8d, 0xc5, 0x58, 0xb2, 0xeb, 0x89, 0x6b, 0x89, 0x5c, 0xf5, 0x21,
- 0x05, 0xf5, 0x97, 0xfe, 0x0f, 0xfd, 0x15, 0x95, 0xae, 0xf9, 0x73, 0x97, 0x73, 0x1b, 0x92, 0x38,
- 0xc6, 0x81, 0x6a, 0xf0, 0x89, 0xb2, 0xa0, 0x16, 0xcd, 0x4a, 0xb3, 0x6a, 0xb3, 0x17, 0xac, 0x99,
- 0xed, 0x76, 0x94, 0xe7, 0xf4, 0xbc, 0xba, 0x47, 0x2f, 0xd9, 0x3d, 0x94, 0x3d, 0xc6, 0x79, 0x33,
- 0xc8, 0x6c, 0x54, 0x68, 0x9b, 0x91, 0xf1, 0xfa, 0xb5, 0x0e, 0x56, 0x54, 0x56, 0x3d, 0x9c, 0xb6,
- 0x9b, 0xb4, 0xfc, 0xb8, 0x6e, 0x70, 0xd0, 0xcd, 0x1c, 0x12, 0xfa, 0xfc, 0xfa, 0x47, 0x67, 0x19,
- 0xbd, 0xfd, 0xf0, 0xdc, 0x04, 0xb7, 0x29, 0x03, 0x5d, 0x92, 0x01, 0xf0, 0x01, 0xb5, 0x4d, 0x35,
- 0x84, 0xfe, 0x4c, 0xa0, 0x4f, 0xdc, 0xc0, 0xa5, 0x37, 0xcd, 0x63, 0x4c, 0x63, 0x1a, 0xc8, 0xee,
- 0xc3, 0x74, 0xfd, 0x0e, 0x86, 0x4f, 0xb5, 0x83, 0x63, 0xb3, 0xc0, 0xfd, 0xc0, 0x0c, 0x3e, 0xa1,
- 0xca, 0x0e, 0xdc, 0xda, 0x9d, 0x9c, 0x2d, 0x19, 0x27, 0xd5, 0xb6, 0xdc, 0xb6, 0x33, 0x16, 0x78,
- 0x8a, 0x13, 0x72, 0x38, 0x5d, 0xff, 0x91, 0x49, 0x4f, 0x89, 0x86, 0x72, 0x86, 0x30, 0xf8, 0xc1,
- 0x34, 0xbd, 0x4e, 0x0f, 0x5c, 0xa2, 0x0a, 0x39, 0xc9, 0x4c, 0x17, 0x4e, 0x17, 0x8c, 0x7a, 0x5d,
- 0x26, 0x49, 0x0c, 0x64, 0x6a, 0xc7, 0xf9, 0xce, 0x41, 0x80, 0xfb, 0x0c, 0xfb, 0xf2, 0x2a, 0x2c,
- 0x10, 0x96, 0xca, 0xd9, 0x30, 0x68, 0x2f, 0x14, 0x1a, 0x17, 0x0c, 0xca, 0x0c, 0x70, 0xda, 0xbf,
- 0x25, 0x1a, 0xc0, 0x8f, 0x6f, 0x2d, 0x4b, 0xbd, 0x9a, 0xd7, 0x6b, 0xc0, 0x6b, 0xfb, 0xe5, 0x85,
- 0xe3, 0x9b, 0xaa, 0x7f, 0xe6, 0x9f, 0xeb, 0xab, 0x57, 0x9d, 0xd8, 0xaa, 0xd8, 0xec, 0x49, 0x1c,
- 0x63, 0xa1, 0x35, 0x78, 0xa5, 0x59, 0x50, 0x0b, 0x87, 0x25, 0xb8, 0x35, 0xb8, 0xea, 0x56, 0xad,
- 0x0a, 0x29, 0xed, 0x3f, 0x1e, 0x39, 0x2a, 0xe9, 0x9f, 0x31, 0xe6, 0xed, 0xe6, 0x36, 0xe7, 0x70,
- 0x4f, 0xc1, 0xd4, 0x23, 0xd1, 0xa7, 0x83, 0x2c, 0x59, 0x94, 0xa5, 0xd4, 0xa5, 0x2e, 0x9b, 0xf1,
- 0x8b, 0x22, 0x36, 0x61, 0x5e, 0x18, 0xff, 0xd9, 0x06, 0x05, 0xf6, 0x36, 0xf6, 0x37, 0xbd, 0xa6,
- 0xc7, 0xb0, 0x2e, 0xa9, 0x8a, 0x55, 0xce, 0x86, 0x84, 0xc6, 0xc3, 0x2e, 0xc3, 0x10, 0xe9, 0xfe,
- 0x67, 0x65, 0xe6, 0xdf, 0xa9, 0x43, 0x2b, 0x0e, 0x60, 0x50, 0xbb, 0xe6, 0xbb, 0xf6, 0x81, 0xf2,
- 0x2d, 0x51, 0xa5, 0x02, 0x77, 0x19, 0xbd, 0xb7, 0x97, 0x3d, 0x6d, 0xa5, 0x6d, 0xc3, 0x88, 0x3b,
- 0xfe, 0xb3, 0x92, 0xd5, 0xc1, 0x3e, 0x27, 0x20, 0xee, 0x99, 0xa1, 0x92, 0xa1, 0xbf, 0x6c, 0x25,
- 0x45, 0xe8, 0x39, 0x1c, 0xcf, 0x9e, 0xa9, 0xc5, 0xc6, 0xa5, 0x43, 0x39, 0x43, 0x18, 0x7c, 0x81,
- 0xa0, 0xd5, 0xc8, 0x76, 0x23, 0x16, 0xe5, 0x88, 0xe4, 0x96, 0x78, 0xc8, 0x78, 0xe6, 0x68, 0x0c,
- 0x80, 0x3a, 0x9f, 0x07, 0x43, 0xc6, 0xbb, 0xa0, 0xd0, 0xb8, 0x60, 0x9f, 0x60, 0x06, 0x1f, 0xb1,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x4a, 0x34, 0x43, 0xdd, 0xde, 0x5a, 0x96, 0xb9, 0xf7, 0x6d, 0xd6, 0x43, 0xd6, 0x35, 0x09, 0xc9,
- 0xee, 0x25, 0x58, 0x0c, 0xf1, 0x56, 0x08, 0x34, 0xf4, 0x8e, 0xad, 0x58, 0xad, 0xcf, 0xb6, 0x9a,
- 0x4c, 0x92, 0x18, 0xc8, 0xd4, 0x4d, 0x31, 0x5f, 0x82, 0xc3, 0x35, 0x18, 0x35, 0x27, 0x54, 0x58,
- },
- { /* 13 */
- 0xab, 0xda, 0x7f, 0x93, 0x75, 0x63, 0x3b, 0x22, 0xb7, 0x40, 0xa6, 0x84, 0xc2, 0x22, 0x09, 0xda,
- 0xbb, 0xd9, 0xf4, 0xa6, 0xc1, 0x1b, 0xf5, 0xe1, 0x54, 0xa2, 0xc5, 0x24, 0x95, 0xe1, 0xdd, 0xd9,
- 0x83, 0x3c, 0x0e, 0x02, 0x84, 0xaf, 0x03, 0xe7, 0x22, 0x36, 0xb0, 0x57, 0xa6, 0xe7, 0x08, 0x3c,
- 0x0d, 0x8c, 0x03, 0x40, 0xed, 0xc4, 0x60, 0xd0, 0xca, 0x0f, 0xa2, 0x72, 0x27, 0xd0, 0xc3, 0x8c,
- 0x3a, 0xdd, 0xd3, 0xea, 0xb2, 0xbb, 0x9f, 0x26, 0x52, 0x19, 0x41, 0x67, 0xe0, 0x26, 0x2e, 0xdd,
- 0x4a, 0xd4, 0xe4, 0x61, 0x38, 0x10, 0xb0, 0x2a, 0xbe, 0xf2, 0xab, 0x81, 0x86, 0x2a, 0x47, 0xd4,
- 0xe8, 0xf2, 0xca, 0x2e, 0x8d, 0xa9, 0x39, 0x98, 0x8b, 0x64, 0xc7, 0x5f, 0x06, 0x98, 0xb8, 0xf2,
- 0xeb, 0xd6, 0x16, 0x47, 0xe0, 0x40, 0x85, 0xa8, 0xbd, 0x4e, 0xe9, 0x41, 0x5d, 0xa8, 0xdf, 0xd6,
- 0x8f, 0xac, 0xf8, 0x65, 0xf3, 0x8d, 0xb6, 0x27, 0xfa, 0x9e, 0x08, 0x2f, 0x09, 0x27, 0x57, 0xac,
- 0xbe, 0xb5, 0x53, 0x1d, 0x76, 0xe3, 0xf2, 0xb1, 0x0e, 0xdc, 0xb7, 0x06, 0x78, 0xb1, 0x74, 0xb5,
- 0x0f, 0xb4, 0x2a, 0x0e, 0x1a, 0xcb, 0x09, 0xf0, 0xee, 0x82, 0x96, 0x66, 0xf4, 0xf0, 0x38, 0xb4,
- 0x6d, 0x86, 0xbf, 0xfe, 0xd3, 0x17, 0x81, 0x1f, 0xc5, 0x06, 0x2b, 0x34, 0x16, 0x1f, 0x7e, 0x86,
- 0x0a, 0xd8, 0x8d, 0xb5, 0xad, 0x33, 0x0e, 0xa0, 0xb4, 0xfc, 0xe4, 0x44, 0x19, 0xa0, 0x91, 0xd8,
- 0x29, 0xfa, 0x84, 0xb6, 0x6b, 0x2a, 0xed, 0xd5, 0x87, 0xd1, 0x0c, 0xd9, 0xec, 0xd5, 0x9d, 0xfa,
- 0x17, 0x57, 0x05, 0xc0, 0xf4, 0x8f, 0xa0, 0xb3, 0x9d, 0x11, 0x25, 0x96, 0x69, 0xb3, 0x86, 0x57,
- 0xb0, 0x1d, 0x8c, 0x34, 0xf6, 0xce, 0x2e, 0x51, 0xf2, 0xf9, 0x3b, 0x6a, 0x04, 0x51, 0xd0, 0x1d,
- 0xc5, 0x78, 0x1c, 0x04, 0xcb, 0x9d, 0x06, 0x0d, 0x44, 0x6c, 0xa3, 0xae, 0x8f, 0x0d, 0x10, 0x78,
- 0x4c, 0x9c, 0x9f, 0xb3, 0xe2, 0x01, 0x0b, 0x4a, 0xd2, 0xa6, 0xf7, 0xbd, 0x30, 0x4a, 0x89, 0x9c,
- 0xc3, 0x30, 0x67, 0xd6, 0x11, 0x8c, 0xbd, 0x6d, 0x28, 0x38, 0xff, 0x92, 0x39, 0x6d, 0xde, 0x30,
- 0xb5, 0x71, 0x2b, 0x8f, 0x41, 0x36, 0x29, 0x01, 0xa8, 0x87, 0x49, 0x48, 0xe9, 0x01, 0x79, 0x71,
- 0x74, 0x79, 0x65, 0x17, 0xa7, 0xb5, 0xfd, 0x4c, 0xa4, 0x32, 0x82, 0xce, 0x03, 0x4c, 0x5c, 0x79,
- 0x94, 0x6b, 0x0b, 0xc2, 0x70, 0x20, 0xa3, 0x54, 0xbf, 0x27, 0x95, 0xc1, 0xcf, 0x54, 0x8e, 0x6b,
- 0x1d, 0x8f, 0x88, 0x75, 0x59, 0xbc, 0xae, 0x13, 0x29, 0xed, 0xc1, 0xd2, 0x70, 0x13, 0x17, 0x8f,
- 0x25, 0x6a, 0x72, 0xd1, 0x1c, 0x08, 0x58, 0x15, 0x5f, 0x79, 0xb4, 0xa1, 0x43, 0x15, 0xc2, 0x6a,
- 0x48, 0xec, 0xcd, 0x2f, 0xcf, 0x1f, 0xd9, 0x0a, 0x9a, 0x7f, 0x9f, 0x95, 0x55, 0x0a, 0xbc, 0xec,
- 0xda, 0xcf, 0xbd, 0x3f, 0x65, 0x2e, 0xc1, 0x3e, 0x49, 0x0c, 0x56, 0x68, 0x2c, 0x3e, 0xfc, 0xcf,
- 0xdd, 0x9b, 0x33, 0xca, 0x25, 0xd9, 0xaf, 0x4e, 0x37, 0xff, 0x10, 0x5e, 0x12, 0x4e, 0xae, 0x9b,
- 0xe9, 0xee, 0x3f, 0x09, 0x17, 0x4f, 0xec, 0x88, 0x99, 0xc3, 0xdd, 0x55, 0x8e, 0x88, 0x24, 0xee,
- 0xea, 0xca, 0xe3, 0x60, 0x7a, 0xa6, 0x50, 0xb8, 0xaf, 0xe9, 0xf3, 0x4b, 0xd5, 0xb8, 0x43, 0xca,
- 0x73, 0x2d, 0xeb, 0xe2, 0xe7, 0x42, 0x93, 0x3c, 0xda, 0xc1, 0xc4, 0xf8, 0x3d, 0x3c, 0x0e, 0x2d,
- 0x2e, 0xae, 0x0a, 0x43, 0x2b, 0xdd, 0x83, 0xa5, 0xf9, 0x22, 0x4a, 0xef, 0xd2, 0xa5, 0xcf, 0xae,
- 0xf5, 0x7d, 0x42, 0x5b, 0xd4, 0x15, 0x97, 0x8b, 0xa2, 0x89, 0x06, 0x8d, 0x76, 0x8b, 0xaf, 0x7d,
- 0x26, 0x4e, 0xae, 0xb8, 0x71, 0xe1, 0xe4, 0x25, 0x69, 0x53, 0x9a, 0xbf, 0x18, 0x25, 0xa5, 0x4e,
- 0xd0, 0x17, 0x30, 0x8a, 0xc8, 0x1d, 0xcf, 0x9e, 0xfd, 0xf0, 0xb2, 0x2c, 0x35, 0x9e, 0x6d, 0x17,
- 0xc4, 0x64, 0xe9, 0x23, 0x51, 0x7b, 0xd3, 0x1d, 0x56, 0xcb, 0xb9, 0xa4, 0x07, 0x1d, 0x8c, 0x64,
- 0xf3, 0x35, 0x39, 0x89, 0x0e, 0x04, 0x2c, 0xeb, 0xce, 0xdd, 0x5a, 0xb1, 0xc0, 0xeb, 0x61, 0x35,
- 0x7b, 0xcd, 0x4f, 0x19, 0xbd, 0x7e, 0xf4, 0xbc, 0x4a, 0xb0, 0x14, 0xa8, 0xf7, 0xbc, 0x64, 0xcd,
- 0x4d, 0x80, 0x6a, 0x94, 0x78, 0xe7, 0xde, 0x5a, 0xc0, 0x01, 0xed, 0xb7, 0xb8, 0x5a, 0x15, 0x80,
- 0x45, 0x60, 0xce, 0x6f, 0x22, 0xdb, 0xb9, 0xda, 0x50, 0x70, 0x3d, 0xe7, 0x72, 0xda, 0x7f, 0x60,
- 0xa9, 0xe2, 0x56, 0xdd, 0x82, 0x6c, 0x52, 0x02, 0x93, 0xcd, 0x92, 0x90, 0x11, 0x02, 0xf2, 0xe2,
- 0x5e, 0xa7, 0x3d, 0xc8, 0xa1, 0x76, 0xac, 0xa9, 0x15, 0xc9, 0xa0, 0x09, 0xb4, 0xa9, 0xa6, 0xa7,
- 0xd8, 0xf7, 0x94, 0x71, 0x92, 0x21, 0xa8, 0x1e, 0x6d, 0x81, 0x62, 0x7c, 0xff, 0x1e, 0x07, 0xf7,
- 0x7e, 0xa1, 0xe8, 0xa2, 0x0a, 0x86, 0xf3, 0xec, 0x10, 0xce, 0x66, 0x8a, 0x1a, 0xec, 0xcd, 0xa1,
- 0xf2, 0x29, 0xcc, 0xae, 0x94, 0xe2, 0xf9, 0xfb, 0xdc, 0x7a, 0x40, 0xbb, 0x48, 0xfb, 0xfd, 0x29,
- 0x90, 0x1b, 0x59, 0x5e, 0x5d, 0x3e, 0x71, 0x14, 0xf7, 0xfe, 0xfd, 0xe9, 0xaa, 0x14, 0xbb, 0x1b,
- 0x77, 0x5d, 0xb9, 0x7e, 0xca, 0x5c, 0x41, 0x7c, 0x92, 0x18, 0xac, 0xd0, 0x58, 0x7c, 0x3b, 0x5d,
- 0x53, 0x2b, 0x3e, 0x88, 0x4c, 0xb2, 0xcc, 0x79, 0xdf, 0xc6, 0x02, 0x7b, 0x93, 0x79, 0x65, 0x2b,
- 0xe5, 0x7e, 0xc9, 0x6e, 0x60, 0x6d, 0x59, 0x48, 0x41, 0x6b, 0x65, 0x2d, 0x21, 0x48, 0x7b, 0x7e,
- 0x49, 0xf0, 0x38, 0x08, 0x55, 0xf9, 0x0c, 0x1a, 0x88, 0xd8, 0x85, 0x9f, 0xdd, 0x1a, 0x20, 0xf0,
- 0x98, 0xfb, 0xfd, 0xa5, 0x07, 0x02, 0x16, 0x94, 0x67, 0x8f, 0x2d, 0xb9, 0x60, 0x94, 0xd1, 0xfb,
- 0x13, 0x27, 0x57, 0x5c, 0xd9, 0x91, 0x72, 0xf3, 0xd5, 0xc8, 0x4d, 0xbe, 0x0c, 0xf3, 0xb3, 0x27,
- 0x43, 0x28, 0xb5, 0xbd, 0xf8, 0xca, 0x02, 0xba, 0x3c, 0x24, 0x61, 0xdb, 0xc4, 0xba, 0xb1, 0x28,
- 0xdc, 0x87, 0xc6, 0xed, 0xbf, 0x3f, 0x7a, 0x5e, 0x25, 0x58, 0x0a, 0x54, 0x9a, 0x5e, 0x32, 0x87,
- 0xc7, 0x40, 0x35, 0x4a, 0x3c, 0x92, 0x6f, 0x2d, 0x60, 0xe1, 0x97, 0xba, 0x5c, 0x2d, 0xeb, 0x40,
- 0xa0, 0x1e, 0x07, 0x01, 0x42, 0xb6, 0xe0, 0x92, 0x11, 0x1b, 0x58, 0xca, 0x53, 0x92, 0x04, 0x1e,
- 0xcc, 0x84, 0x4d, 0xd8, 0x0b, 0x47, 0xb4, 0x9d, 0xc6, 0xba, 0x69, 0xf4, 0xcd, 0x9d, 0xe6, 0x84,
- 0x14, 0x73, 0xd9, 0xa9, 0x99, 0x66, 0x1c, 0x83, 0xab, 0x3b, 0x0b, 0x88, 0x32, 0x83, 0xe1, 0x73,
- 0x52, 0x37, 0xcb, 0xaf, 0xd6, 0x54, 0x19, 0x69, 0xcd, 0x61, 0x18, 0x71, 0x1b, 0x69, 0xf9, 0x37,
- 0x2f, 0xb2, 0xff, 0x64, 0xb1, 0x3b, 0x56, 0xb5, 0xeb, 0x85, 0x50, 0xe5, 0x5a, 0xb5, 0x53, 0xb2,
- 0x47, 0x58, 0xe7, 0x21, 0xd5, 0xd4, 0xd0, 0xfa, 0x74, 0xfd, 0x09, 0xf3, 0xa1, 0xfa, 0x84, 0x58,
- 0xa6, 0x56, 0x7c, 0xd3, 0x98, 0xa7, 0x5b, 0xf2, 0x7d, 0x4f, 0x04, 0xf6, 0xe5, 0xf2, 0xca, 0x56,
- 0x5f, 0xbb, 0xc8, 0xef, 0x3b, 0x90, 0x79, 0xb9, 0x07, 0x6e, 0xba, 0x03, 0x3c, 0xb9, 0x3a, 0xbb,
- 0xe3, 0x36, 0xb2, 0xbc, 0xba, 0x7c, 0xe2, 0x28, 0x2d, 0x3f, 0x39, 0x11, 0x97, 0x28, 0xb5, 0x36,
- 0xb8, 0xfd, 0x28, 0xcf, 0xac, 0xf2, 0x49, 0xd1, 0x62, 0x88, 0xeb, 0x3a, 0xce, 0xd1, 0xba, 0xfd,
- 0xa7, 0x4a, 0x89, 0xf4, 0x02, 0x41, 0x8e, 0xe2, 0x6f, 0xe8, 0x1e, 0xfc, 0x6d, 0xe2, 0x56, 0x4a,
- 0xc0, 0x14, 0xbb, 0xbf, 0x7c, 0x65, 0x01, 0x5d, 0x1e, 0x12, 0xd1, 0x8c, 0x62, 0x5d, 0xb9, 0x14,
- 0x23, 0x22, 0x09, 0x03, 0xc6, 0x19, 0xe3, 0x75, 0x33, 0x2d, 0xe8, 0x9d, 0xf5, 0x75, 0x0c, 0x22,
- 0x2a, 0xde, 0x58, 0xdf, 0x06, 0xc3, 0x51, 0xe5, 0xb1, 0xfb, 0x22, 0xc7, 0xb7, 0xe5, 0xfa, 0xde,
- 0x62, 0x32, 0x95, 0xf0, 0xc9, 0xdc, 0x88, 0xef, 0x2b, 0x84, 0xbd, 0x52, 0xe2, 0xef, 0x46, 0x32,
- 0x7d, 0x85, 0x34, 0xcb, 0x67, 0x6f, 0x4f, 0xdc, 0x26, 0xe4, 0x48, 0x94, 0x41, 0xdc, 0xaa, 0x85,
- 0x31, 0x19, 0xab, 0x78, 0x85, 0x6e, 0x44, 0x96, 0xf4, 0x42, 0xbf, 0x29, 0x71, 0x96, 0x23, 0x19,
- 0x30, 0x05, 0x5e, 0x5f, 0x1f, 0x88, 0x91, 0x86, 0xe6, 0xe5, 0xa5, 0x23, 0xf9, 0x86, 0xbf, 0x05,
- 0xc1, 0x08, 0x4e, 0x98, 0xe6, 0x83, 0xd4, 0x4d, 0x0c, 0xb5, 0xcb, 0x86, 0xea, 0x4d, 0x25, 0x08,
- 0x20, 0x06, 0xd5, 0x6a, 0xab, 0xf0, 0x5f, 0x45, 0x05, 0x07, 0xc6, 0x83, 0xae, 0x45, 0x6b, 0x06,
- 0x8a, 0xc0, 0x5f, 0xde, 0x44, 0x75, 0xb1, 0x77, 0xa0, 0xe0, 0x7a, 0x0d, 0xe4, 0x77, 0xfe, 0xc0,
- 0xd7, 0x43, 0xbe, 0x7f, 0x88, 0xea, 0xa1, 0xee, 0x83, 0x03, 0xf4, 0x1a, 0x0b, 0xee, 0x3f, 0x43,
- 0x3d, 0x89, 0x5d, 0x1f, 0xf2, 0x4c, 0xf1, 0x56, 0x2c, 0xea, 0x07, 0x51, 0xde, 0x56, 0x7c, 0x89,
- 0xbf, 0xa9, 0xa6, 0x3a, 0xec, 0x05, 0x27, 0xa1, 0x1c, 0x7b, 0xad, 0x0c, 0xf0, 0xa1, 0xe8, 0xa9,
- 0xc6, 0x5c, 0xc0, 0x6d, 0xa6, 0x74, 0xba, 0x3d, 0x72, 0x46, 0x8d, 0xb0, 0xd4, 0x3d, 0x77, 0x5c,
- 0x72, 0x31, 0x1e, 0xc5, 0x7d, 0xa4, 0x46, 0x2c, 0xc8, 0x66, 0xde, 0xf2, 0xb5, 0x2c, 0x92, 0x31,
- 0xdb, 0xd3, 0x48, 0x18, 0xff, 0xc8, 0x14, 0x2e, 0x5b, 0xab, 0x4c, 0x62, 0xa4, 0x2e, 0x60, 0xd3,
- 0x15, 0x6f, 0x2c, 0x8e, 0x03, 0x80, 0xc9, 0x93, 0xb9, 0x9c, 0x11, 0x82, 0xba, 0x93, 0x7d, 0x6f,
- 0x99, 0xe7, 0x08, 0x82, 0x9d, 0xe4, 0xc3, 0x84, 0x75, 0x28, 0x37, 0xb3, 0xe8, 0x84, 0x4d, 0xe7,
- 0x4b, 0xc8, 0x11, 0x46, 0xa2, 0xf6, 0x65, 0x3a, 0xac, 0x55, 0xb1, 0x8b, 0x0e, 0x3a, 0xdb, 0xc8,
- 0x34, 0x75, 0x0c, 0xc3, 0x32, 0x96, 0x43, 0xc6, 0xae, 0x3c, 0xcd, 0x0b, 0x9c, 0xc6, 0x8a, 0x75,
- 0x60, 0x0a, 0xbc, 0xbe, 0x3e, 0xd3, 0xe1, 0xcf, 0x0f, 0x09, 0x89, 0x46, 0x31, 0xcf, 0xbd, 0x0a,
- 0x92, 0x23, 0x70, 0x10, 0xaa, 0x31, 0x18, 0x34, 0xd3, 0x73, 0xc9, 0xfd, 0x79, 0x34, 0x40, 0x23,
- 0xac, 0x8e, 0xf1, 0x66, 0x35, 0x94, 0x55, 0x52, 0xc9, 0xb3, 0xe0, 0xb2, 0xfc, 0x52, 0x5b, 0x8e,
- 0x6e, 0xa2, 0x63, 0x97, 0xbe, 0xfe, 0x3d, 0x2f, 0xf3, 0x2c, 0x05, 0x2a, 0x4d, 0x2f, 0x19, 0xa2,
- 0xa1, 0x02, 0xf2, 0x26, 0xd8, 0x50, 0x35, 0x82, 0x03, 0xbc, 0x42, 0xc0, 0xdb, 0x82, 0x98, 0x02,
- 0x81, 0x04, 0x27, 0x4c, 0x73, 0xa0, 0x6a, 0xc7, 0x06, 0xbb, 0x84, 0x43, 0x75, 0xc7, 0xf3, 0x04,
- 0x3b, 0xc1, 0x26, 0xcd, 0x28, 0x5d, 0x4a, 0x36, 0x40, 0xbe, 0x5b, 0x6d, 0x68, 0x36, 0xb2, 0xc1,
- 0x19, 0xff, 0xda, 0xe9, 0x74, 0xa2, 0x7c, 0x53, 0x61, 0x34, 0xa9, 0xfa, 0x15, 0x53, 0x22, 0xff,
- 0xe4, 0x62, 0x3c, 0x49, 0xfa, 0x8b, 0x8c, 0x58, 0x53, 0xcc, 0x7f, 0x27, 0xa9, 0x58, 0xe7, 0x62,
- 0x2c, 0x96, 0x23, 0x0d, 0xdc, 0xd2, 0xea, 0x85, 0xdd, 0xaf, 0x7e, 0xfb, 0x01, 0x85, 0x34, 0x96,
- 0xbd, 0x91, 0x8f, 0x74, 0x1b, 0x0a, 0x4e, 0x81, 0x38, 0xf6, 0x99, 0x18, 0x23, 0x81, 0x13, 0x91,
- 0xb6, 0x55, 0xf7, 0xe6, 0x2c, 0xdf, 0x95, 0x31, 0x9e, 0xad, 0x67, 0x56, 0xb2, 0x31, 0x1e, 0x55,
- 0xd3, 0x33, 0xec, 0xe3, 0xa5, 0xf4, 0x73, 0xae, 0xcb, 0xda, 0x9c, 0x32, 0x6e, 0xae, 0x0a, 0x33,
- 0xe7, 0x46, 0xe0, 0x20, 0x97, 0x62, 0x30, 0x68, 0x65, 0xe6, 0x51, 0x39, 0xf2, 0x68, 0x80, 0x46,
- 0x9b, 0xdf, 0x21, 0xcc, 0x6a, 0xeb, 0xaa, 0xa4, 0x51, 0xa5, 0x03, 0xa7, 0x3b, 0xa4, 0xb6, 0xdf,
- 0x8c, 0x88, 0x24, 0x0c, 0x9e, 0x64, 0x0a, 0x17, 0xcc, 0xb4, 0x26, 0x31, 0x52, 0x17, 0x30, 0x88,
- 0x04, 0x70, 0x52, 0x9c, 0x2d, 0x1e, 0xd2, 0x40, 0x48, 0xd9, 0x68, 0x28, 0x65, 0x40, 0x35, 0x70,
- 0x86, 0x50, 0xa9, 0xb9, 0x33, 0x57, 0x04, 0xb7, 0x78, 0x48, 0xc2, 0x75, 0x4b, 0xb7, 0xa1, 0x50,
- 0xef, 0xa6, 0x44, 0xdb, 0xcd, 0x5e, 0x57, 0xe8, 0xf5, 0x97, 0x81, 0x69, 0x38, 0xe8, 0xea, 0xa6,
- 0x32, 0x3d, 0x77, 0x11, 0xe8, 0x87, 0xf8, 0xa6, 0xc2, 0x68, 0x91, 0x37, 0x2a, 0xa6, 0x44, 0x3d,
- 0x0b, 0xc4, 0x78, 0x92, 0x37, 0xd5, 0xdb, 0xb0, 0xa6, 0x5b, 0xfe, 0x4e, 0x91, 0xb0, 0x0d, 0xc4,
- 0x9e, 0xb3, 0x86, 0x77, 0xdd, 0x13, 0xad, 0xf4, 0x0b, 0xdb, 0x71, 0x85, 0xd6, 0xf4, 0x1f, 0xb3,
- 0x80, 0x18, 0xd2, 0x6b, 0xe9, 0x46, 0xbf, 0xd7, 0x14, 0x1c, 0x9e, 0x49, 0xfd, 0xd7, 0x6f, 0x18,
- 0x1c, 0x93, 0x7d, 0x52, 0xc3, 0x5a, 0x7b, 0x03, 0x3b, 0x4a, 0xdb, 0xd8, 0xf8, 0x03, 0x8b, 0x93,
- 0xb1, 0x01, 0x79, 0x13, 0x6c, 0x28, 0xfb, 0x41, 0xe0, 0x5e, 0x21, 0x60, 0x8c, 0x41, 0x4c, 0x01,
- 0xd4, 0x67, 0x62, 0x16, 0xe5, 0x03, 0x1d, 0xde, 0xb5, 0x29, 0xda, 0x04, 0x50, 0xde, 0x58, 0x67,
- 0x7a, 0xd1, 0xba, 0x3e, 0x27, 0x98, 0x21, 0xac, 0x58, 0x17, 0x0e, 0xa2, 0x7f, 0xac, 0xf8, 0xd1,
- 0x5b, 0xcb, 0x9a, 0x73, 0x16, 0x8e, 0xab, 0xf9, 0x4f, 0xb7, 0xd2, 0x2b, 0x59, 0xf9, 0x0f, 0xcb,
- 0xa3, 0x3a, 0xdb, 0x68, 0x2f, 0x5f, 0x5c, 0xa2, 0x27, 0x31, 0x76, 0xd4, 0x08, 0xa2, 0x63, 0x3a,
- 0xf9, 0xed, 0xb4, 0x3c, 0xa3, 0x37, 0x22, 0x4b, 0x7a, 0x21, 0xbe, 0xf5, 0xd9, 0x4b, 0xf0, 0xed,
- 0x33, 0x21, 0x82, 0x36, 0x72, 0x61, 0x2d, 0xb6, 0xd0, 0xcf, 0x8b, 0x3d, 0xa2, 0xb6, 0xd8, 0x21,
- 0x68, 0xea, 0x18, 0x45, 0x64, 0xef, 0x86, 0x4f, 0x9f, 0x78, 0x59, 0x16, 0xfb, 0x4f, 0xd7, 0xea,
- 0x96, 0x53, 0x22, 0x8c, 0x87, 0x2f, 0xca, 0x74, 0x9b, 0xaa, 0xa1, 0xd5, 0x1c, 0x74, 0x75, 0x53,
- 0x46, 0x44, 0x12, 0x06, 0x4f, 0x32, 0x05, 0xea, 0x66, 0x5a, 0x13, 0xf9, 0x29, 0xea, 0x18, 0x44,
- 0x02, 0x38, 0x29, 0x4e, 0xf7, 0x0f, 0x69, 0x20, 0x24, 0x8d, 0x34, 0x14, 0xd3, 0x20, 0xfb, 0x38,
- 0xff, 0xa5, 0xcf, 0xee, 0x79, 0x26, 0x99, 0x2b, 0x16, 0x75, 0xe2, 0xc9, 0x6f, 0x2b, 0x3e, 0xa5,
- 0x95, 0x77, 0xfe, 0xe5, 0xea, 0xc6, 0x76, 0x44, 0xad, 0x80, 0x8f, 0xcb, 0x47, 0x44, 0x12, 0x77,
- 0x64, 0x7a, 0xee, 0x22, 0x13, 0xcd, 0x33, 0x8f, 0x47, 0xd0, 0xe1, 0x6e, 0x54, 0x8f, 0x88, 0x7a,
- 0x40, 0x0c, 0x69, 0xd4, 0x95, 0x23, 0xbe, 0x8a, 0x0a, 0x0e, 0x4f, 0xc5, 0x9f, 0x8a, 0xd6, 0x0c,
- 0x41, 0x10, 0x9c, 0xf3, 0x0f, 0xc5, 0x6b, 0x9a, 0x18, 0xa9, 0x55, 0xcf, 0x17, 0x9a, 0x4a, 0x10,
- 0x16, 0x4b, 0xf0, 0xe7, 0x6e, 0x69, 0x75, 0xa3, 0x8f, 0xb6, 0x3f, 0x9c, 0xe1, 0xa3, 0x1a, 0x4b,
- 0x0e, 0xa8, 0xdf, 0x29, 0x80, 0x2d, 0xdc, 0xe0, 0xfc, 0x25, 0x8c, 0x6c, 0x7c, 0xe0, 0xa4, 0xa8,
- 0xb9, 0xe1, 0xdd, 0xe8, 0x36, 0x14, 0x9c, 0xc1, 0x70, 0x2f, 0xf1, 0x30, 0x46, 0xc1, 0x26, 0xe1,
- 0xfd, 0x9d, 0xe6, 0xa0, 0x8e, 0x29, 0xf0, 0x0b, 0x32, 0xf8, 0xd6, 0xdd, 0xbc, 0x0b, 0xc5, 0x9d,
- 0x6f, 0xbe, 0x96, 0xb0, 0x24, 0x18, 0xe8, 0x3f, 0xe1, 0x8b, 0x1f, 0x20, 0xc5, 0x3f, 0x85, 0xbe,
- 0x91, 0x07, 0xac, 0x79, 0xc7, 0xd8, 0xa4, 0x04, 0xe5, 0x59, 0xe7, 0xe3, 0x22, 0x04, 0x27, 0x07,
- 0xa5, 0x72, 0xa0, 0xba, 0xf5, 0x4e, 0xe7, 0xc2, 0x4b, 0x65, 0x2a, 0xe8, 0xbe, 0xc2, 0xad, 0x72,
- 0xcf, 0xa0, 0x91, 0xb1, 0x66, 0xae, 0x08, 0xad, 0xf0, 0x90, 0x47, 0xea, 0x96, 0xad, 0x81, 0xa0,
- 0x56, 0x47, 0x99, 0x33, 0xfb, 0x4a, 0xcb, 0x29, 0x85, 0xb8, 0x70, 0x59, 0x7e, 0x29, 0xcc, 0x47,
- 0xba, 0xc5, 0x01, 0x81, 0x5b, 0xfd, 0x20, 0xf1, 0x46, 0x05, 0xdf, 0x2e, 0x1d, 0xf1, 0x41, 0xc5,
- 0x61, 0x16, 0x49, 0x99, 0xa4, 0x35, 0x34, 0xdf, 0x1d, 0xae, 0x93, 0x4c, 0xb9, 0xdf, 0x21, 0x16,
- 0x18, 0xe3, 0x2f, 0xce, 0xee, 0x44, 0xa9, 0x43, 0x73, 0x93, 0xb3, 0xf0, 0x9d, 0x43, 0xbe, 0xe3,
- 0x54, 0x7f, 0xb0, 0x7d, 0x0c, 0x45, 0xa2, 0x09, 0xa1, 0x35, 0x44, 0x4d, 0xad, 0x09, 0x37, 0x7f,
- 0x8b, 0xdc, 0xaa, 0xf9, 0xde, 0x93, 0x64, 0x67, 0xb2, 0x47, 0x60, 0x07, 0x6c, 0x67, 0x62, 0xdc,
- 0x3e, 0xad, 0x81, 0x76, 0x9f, 0xa5, 0x4d, 0x66, 0x1a, 0xc0, 0x29, 0x4f, 0x85, 0x66, 0x1b, 0xad,
- 0x5a, 0xd7, 0x6f, 0x54, 0x8c, 0x68, 0x7e, 0xe9, 0x5d, 0x10, 0xc8, 0x21, 0xd1, 0xe9, 0x93, 0xd7,
- 0xce, 0xbc, 0x64, 0x96, 0xfc, 0x48, 0xdd, 0xbd, 0xe2, 0x37, 0x5d, 0xe0, 0x1e, 0xbd, 0x1d, 0xbc,
- 0xf7, 0x45, 0x6b, 0x15, 0x23, 0x1a, 0xfe, 0xab, 0x86, 0x04, 0x32, 0x99, 0xa5, 0xab, 0x54, 0x45,
- 0xd2, 0x2f, 0x19, 0xc4, 0x3f, 0x12, 0xa6, 0xbe, 0xd9, 0x7d, 0x86, 0x38, 0xe6, 0xbe, 0x96, 0x2f,
- 0x82, 0x20, 0xfb, 0x25, 0x1e, 0x49, 0xd6, 0xf7, 0x30, 0x91, 0xaa, 0x5d, 0x2e, 0xf7, 0x94, 0x20,
- 0xb3, 0x39, 0x50, 0x5d, 0x9b, 0x27, 0x92, 0x61, 0xc4, 0xd3, 0x15, 0x74, 0x5f, 0x61, 0xb7, 0x39,
- 0xb4, 0x6d, 0xde, 0xa8, 0xdb, 0xd0, 0xfc, 0x11, 0xba, 0x20, 0x53, 0x42, 0x61, 0x11, 0xe5, 0x6d,
- 0xd6, 0x5f, 0x4b, 0x58, 0x12, 0x0c, 0x74, 0xfe, 0x91, 0xa4, 0xee, 0x10, 0x83, 0xfe, 0xa3, 0x5f,
- 0xe1, 0x0e, 0x9b, 0xf2, 0x4d, 0x73, 0x8b, 0x08, 0x09, 0xb2, 0x0d, 0x05, 0x44, 0x08, 0x4e, 0x0e,
- 0xc2, 0x2c, 0x92, 0xf1, 0x8b, 0x6a, 0x68, 0x7d, 0x3a, 0x9f, 0xe5, 0x98, 0xb1, 0x7d, 0x42, 0x2c,
- 0x5d, 0x83, 0xe1, 0xa1, 0xcc, 0x9f, 0x10, 0x99, 0x23, 0xe3, 0x8e, 0x17, 0xef, 0x99, 0xc1, 0x83,
- 0xfa, 0xc9, 0x68, 0x55, 0xce, 0xde, 0x9e, 0x7b, 0x4c, 0x0b, 0x90, 0xeb, 0x82, 0x7b, 0x97, 0xc9,
- 0xa4, 0x6e, 0x55, 0x9d, 0x6f, 0xa8, 0x32, 0xd2, 0x59, 0xc2, 0x30, 0xe2, 0x36, 0xd2, 0x31, 0x6e,
- 0x1f, 0xb7, 0xa1, 0x3b, 0xae, 0xb3, 0xc7, 0x33, 0x0d, 0x60, 0xf5, 0xc6, 0xa3, 0x33, 0xec, 0xb7,
- 0x0c, 0x90, 0xf6, 0x67, 0x77, 0x22, 0xb5, 0xc0, 0xd8, 0xa8, 0xb8, 0x78, 0xaf, 0xc0, 0x5f, 0x90,
- 0x01, 0x1c, 0xf5, 0x27, 0x9a, 0xe6, 0xd5, 0x10, 0x12, 0xa7, 0x1a, 0x0a, 0x88, 0x10, 0x9c, 0x1c,
- 0x2d, 0x8a, 0xd6, 0x2a, 0x46, 0x34, 0x3f, 0x95, 0xcf, 0x08, 0x64, 0xf1, 0x89, 0x95, 0xa8, 0x8a,
- 0x67, 0x5e, 0x32, 0x4b, 0x7e, 0x24, 0x8f, 0xbf, 0x71, 0xfa, 0xcf, 0x70, 0x0f, 0xbf, 0xef, 0x5e,
- 0xe2, 0x2a, 0x47, 0x9b, 0x20, 0x9a, 0x37, 0x38, 0x3f, 0x98, 0x23, 0x1b, 0x1f, 0x38, 0x29, 0x2a,
- 0x09, 0xfc, 0x51, 0xdc, 0xc0, 0xda, 0xb2, 0x90, 0x82, 0xd6, 0xca, 0x5a, 0x42, 0x90, 0xf6, 0xfc,
- 0x57, 0x5b, 0x6c, 0x14, 0x61, 0xac, 0x1e, 0x39, 0x97, 0x1f, 0x6a, 0x53, 0xf6, 0x39, 0x50, 0x5b,
- 0x11, 0x1f, 0x7e, 0x12, 0x2e, 0x9e, 0x1b, 0xd3, 0xf1, 0x45, 0x79, 0xaa, 0xdf, 0xd3, 0x48, 0x1f,
- 0xb7, 0x49, 0x02, 0xc1, 0xb6, 0x39, 0x40, 0x21, 0x8c, 0x0a, 0x7d, 0x5c, 0x3a, 0x21, 0x82, 0x49,
- 0xdf, 0xa3, 0x1a, 0x84, 0xd2, 0xd6, 0xc6, 0x6e, 0x13, 0x72, 0x24, 0x4a, 0xc1, 0x6e, 0x55, 0xa3,
- 0x6a, 0xd2, 0x31, 0x0b, 0x93, 0xe0, 0xef, 0x6f, 0xbb, 0xf5, 0x6d, 0x02, 0x28, 0x6f, 0x2c, 0xd2,
- 0x93, 0x3f, 0x85, 0x37, 0x30, 0xd7, 0xcd, 0x24, 0xc1, 0xd4, 0xd3, 0xf7, 0xf1, 0x24, 0xdc, 0x3f,
- 0x24, 0x76, 0x87, 0xf6, 0x86, 0xee, 0x8d, 0x05, 0x4d, 0xde, 0xae, 0xab, 0xcb, 0x05, 0x5e, 0x76,
- 0x7f, 0xbd, 0x1d, 0x85, 0x90, 0x60, 0x26, 0xfc, 0x02, 0x69, 0x7c, 0x80, 0x92, 0xfc, 0x51, 0xbd,
- 0x66, 0x42, 0xc7, 0x6c, 0xe4, 0xc2, 0x5a, 0xaf, 0x63, 0x5d, 0xd5, 0x7a, 0x87, 0xaf, 0x73, 0x42,
- 0xfe, 0xb9, 0x3a, 0xc9, 0xe3, 0xc0, 0x4c, 0x3b, 0x04, 0xd2, 0xf8, 0xc3, 0xe7, 0x3b, 0xa2, 0xb9,
- 0x07, 0x54, 0x8e, 0xf5, 0x40, 0xf7, 0x6e, 0x70, 0x7e, 0xf3, 0x46, 0x36, 0x3e, 0x70, 0x52, 0x54,
- 0x44, 0x7c, 0x3b, 0x48, 0xb8, 0x3d, 0x6c, 0xca, 0x42, 0xd7, 0x27, 0xed, 0xfa, 0xca, 0xe3, 0x7c,
- 0x3f, 0xb1, 0x74, 0x51, 0x05, 0x43, 0x98, 0x76, 0x08, 0x67, 0x33, 0x45, 0x0d, 0x76, 0x87, 0xb1,
- 0xf8, 0xf1, 0x41, 0x1b, 0x39, 0xd1, 0xf7, 0x5b, 0x68, 0x86, 0xa4, 0xff, 0x51, 0x5b, 0x6c, 0xf1,
- 0x06, 0x48, 0x7b, 0xd2, 0xda, 0x11, 0xbb, 0x60, 0x6c, 0x54, 0x5c, 0x3c, 0xb6, 0x60, 0xce, 0x48,
- 0xca, 0xcc, 0x36, 0x0a, 0xd1, 0x56, 0x0f, 0xfd, 0xaa, 0xee, 0x35, 0xc8, 0x7b, 0xfd, 0x28, 0xcc,
- 0xad, 0x92, 0x04, 0x41, 0xaf, 0x72, 0x80, 0x42, 0xdb, 0x14, 0xfa, 0xb8, 0x74, 0x42, 0xc7, 0x92,
- 0x2b, 0xc2, 0xad, 0xf8, 0x9c, 0x25, 0x84, 0xf5, 0xa3, 0x5c, 0x38, 0xcd, 0x3f, 0xf5, 0x66, 0xc2,
- 0xae, 0xb6, 0xd8, 0x28, 0xc2, 0x9b, 0x3c, 0x72, 0xed, 0x3e, 0xd4, 0xa6, 0x2f, 0x72, 0xa0, 0xb6,
- 0x22, 0x3e, 0xfc, 0x24, 0x5c, 0xff, 0x36, 0x65, 0x21, 0x8a, 0xf2, 0x97, 0x7d, 0x65, 0x90, 0x3e,
- 0x39, 0xf9, 0x0f, 0x83, 0xdf, 0x52, 0x23, 0x16, 0x64, 0x33, 0x6f, 0x79, 0xbb, 0x16, 0x49, 0xf9,
- 0xde, 0xbf, 0xef, 0xa3, 0x48, 0x30, 0x13, 0x7e, 0x01, 0xd5, 0x3e, 0x40, 0x49, 0x7e, 0xc9, 0xbf,
- 0x1e, 0xab, 0x54, 0x1c, 0x34, 0x55, 0x12, 0x23, 0x1f, 0xc7, 0xef, 0xcc, 0x2b, 0x23, 0x70, 0xab,
- 0xa8, 0xfe, 0xa3, 0xfa, 0x18, 0x8a, 0x87, 0x12, 0x81, 0x6a, 0x88, 0x9a, 0x99, 0x12, 0x6e, 0xfe,
- 0x58, 0xef, 0x46, 0x1a, 0x7b, 0x67, 0x17, 0xc9, 0x79, 0x9d, 0xfc, 0x35, 0x02, 0xc9, 0x68, 0xef,
- 0x88, 0xf8, 0x76, 0x90, 0xb3, 0x7a, 0xd8, 0x57, 0x84, 0x6d, 0x4e, 0x19, 0x37, 0x57, 0x05, 0xf8,
- 0x9a, 0xc3, 0xd4, 0xeb, 0xf0, 0x0d, 0x7f, 0xb4, 0x43, 0x02, 0x19, 0xad, 0xb3, 0xb4, 0x2a, 0xc3,
- 0x69, 0xf6, 0xed, 0x62, 0xfe, 0x09, 0x53, 0x5f, 0x8d, 0xdf, 0x43, 0x1c, 0x73, 0x5f, 0x4b, 0xf6,
- 0x28, 0xe6, 0x71, 0x91, 0xf1, 0xcc, 0x38, 0xc5, 0x95, 0x76, 0x16, 0xd3, 0x64, 0xc5, 0x01, 0xe6,
- 0x65, 0x66, 0x1b, 0x05, 0x89, 0x2b, 0xe6, 0x9f, 0x55, 0x77, 0xfb, 0x64, 0xdc, 0x9f, 0x14, 0x66,
- 0xd5, 0x7b, 0x97, 0x31, 0x7f, 0xe5, 0xc8, 0xce, 0xa7, 0x8e, 0xc0, 0x0e, 0xd8, 0xce, 0xc4, 0x7b,
- 0x7c, 0x99, 0xc1, 0xec, 0xfd, 0x89, 0x9a, 0xcc, 0x34, 0x43, 0x52, 0x9e, 0xc9, 0xcc, 0x36, 0x99,
- 0xbc, 0x8d, 0x7a, 0x53, 0x81, 0xec, 0x9b, 0x91, 0x2a, 0x51, 0x83, 0x12, 0xab, 0x91, 0x8f, 0x8d,
- 0x38, 0xe5, 0xfa, 0xa4, 0x45, 0xb4, 0xf6, 0x06, 0x76, 0x94, 0x75, 0x73, 0x33, 0x06, 0xd5, 0xe5,
- 0x4f, 0xb8, 0x43, 0xda, 0x8f, 0xe8, 0xb7, 0x7a, 0xe4, 0x8c, 0xd9, 0xa3, 0x6b, 0x7a, 0xee, 0xb8,
- 0xe0, 0x12, 0x6e, 0xd5, 0xd7, 0x95, 0x5e, 0x18, 0x1b, 0x15, 0x17, 0x0f, 0xcc, 0x18, 0xd2, 0x12,
- 0x27, 0x52, 0x5b, 0x9f, 0xeb, 0x07, 0x31, 0x35, 0x7b, 0xf4, 0x80, 0xb5, 0x90, 0x35, 0x39, 0x52,
- 0x76, 0x41, 0x4c, 0x59, 0x50, 0xba, 0x94, 0x6c, 0x80, 0xbf, 0xb6, 0xda, 0xd0, 0x6c, 0xa7, 0x41,
- 0x78, 0xe9, 0x93, 0x70, 0xd0, 0x97, 0x48, 0x8c, 0x7c, 0x9a, 0x3a, 0xb6, 0xac, 0x8c, 0x03, 0xe9,
- 0x89, 0xe4, 0x83, 0xb7, 0x29, 0x9c, 0x0d, 0x47, 0x96, 0xca, 0x54, 0x13, 0xbf, 0x47, 0x99, 0xe4,
- 0x8d, 0x94, 0xd1, 0x2b, 0x04, 0x82, 0xdf, 0x07, 0xde, 0x13, 0x3c, 0x3b, 0xda, 0x07, 0xac, 0x94,
- 0xaf, 0xaa, 0x2d, 0x0f, 0x58, 0x7d, 0xe9, 0x62, 0xff, 0x99, 0xce, 0xac, 0xa7, 0x62, 0x3c, 0xaa,
- 0x9f, 0xaf, 0x73, 0x50, 0x47, 0xf5, 0x78, 0xe4, 0x19, 0x7c, 0x6b, 0x8f, 0x5e, 0xe4, 0x83, 0xaf,
- 0x84, 0x68, 0x80, 0xf7, 0xc4, 0x58, 0x6d, 0x97, 0x5c, 0xc5, 0xf6, 0x61, 0x98, 0x97, 0x5a, 0x68,
- 0xe6, 0x5a, 0x15, 0x07, 0x0d, 0x84, 0xe5, 0x78, 0x77, 0x41, 0x4b, 0x33, 0x7a, 0x78, 0x1c, 0x5a,
- 0xf1, 0x0d, 0x10, 0xc7, 0xf9, 0x0b, 0x45, 0xcb, 0xea, 0x50, 0x6e, 0xa5, 0x13, 0xcb, 0x9a, 0x0d,
- 0x63, 0x2e, 0x60, 0xd7, 0x53, 0x3a, 0x5d, 0xff, 0x39, 0x23, 0xa7, 0x58, 0x6a, 0xff, 0xda, 0x2e,
- 0x51, 0x13, 0x17, 0xc6, 0xbb, 0xbd, 0xa5, 0x59, 0xfb, 0x4b, 0x36, 0x6f, 0x40, 0x59, 0x9e, 0x13,
- 0xc8, 0xf4, 0x1f, 0x44, 0x26, 0x59, 0x66, 0xdd, 0x8e, 0x63, 0x01, 0xdc, 0xa8, 0xdd, 0xd3, 0xf4,
- 0x03, 0x24, 0xdc, 0x69, 0x6d, 0xe9, 0xbc, 0x30, 0x36, 0x2a, 0x2e, 0x1e, 0x5b, 0x30, 0x67, 0x24,
- 0xed, 0x9e, 0x6d, 0x95, 0x3a, 0x51, 0x3e, 0xc8, 0xd1, 0x1a, 0xb5, 0x7d, 0xeb, 0xc8, 0x11, 0x9e,
- 0x70, 0x09, 0x37, 0x8b, 0x8a, 0xab, 0x2f, 0x0c, 0xec, 0xeb, 0xea, 0xe6, 0x66, 0x0c, 0x69, 0x09,
- 0x3c, 0x95, 0xa8, 0x38, 0x68, 0xaa, 0x24, 0x46, 0x3e, 0x4d, 0x1d, 0x5b, 0x56, 0x46, 0xe0, 0x95,
- 0x8e, 0xb0, 0x0d, 0x42, 0x69, 0x6b, 0x63, 0x37, 0xe8, 0x39, 0x12, 0x25, 0x81, 0x37, 0xcb, 0xb0,
- 0xd9, 0xeb, 0x61, 0x56, 0x08, 0xc7, 0x7d, 0x0e, 0x7f, 0x26, 0x78, 0x76, 0x77, 0x0e, 0x9b, 0xeb,
- 0x10, 0x03, 0x8b, 0x35, 0xb4, 0x78, 0xce, 0xc3, 0xe3, 0xe2, 0x63, 0xa0, 0x57, 0xc3, 0xd4, 0x03,
- 0x1a, 0xdb, 0x06, 0x80, 0x19, 0x4b, 0xc0, 0x63, 0x57, 0x1e, 0x87, 0xe4, 0x4e, 0x63, 0x45, 0xdb,
- 0x9d, 0x97, 0x5a, 0x1e, 0xb0, 0xfa, 0x11, 0xc4, 0x3d, 0xf1, 0x5f, 0x9b, 0x8d, 0xc4, 0x78, 0x97,
- 0xee, 0xba, 0xb1, 0xfc, 0x57, 0xb8, 0x82, 0xf8, 0xe7, 0x30, 0x9b, 0x63, 0xb0, 0xf8, 0x76, 0xba,
- 0xcb, 0xd0, 0xc3, 0x2d, 0x4b, 0xb0, 0xda, 0xed, 0xb8, 0x49, 0x2f, 0xc2, 0xf3, 0xed, 0xb4, 0xd0,
- 0x97, 0x4f, 0xd7, 0xab, 0x1d, 0xc9, 0x1f, 0x64, 0x89, 0x0d, 0xbb, 0xdf, 0x94, 0x64, 0xe9, 0x4f,
- 0xc9, 0xe8, 0xea, 0x63, 0xbc, 0xbf, 0xb3, 0xcd, 0x9c, 0xc4, 0x1b, 0xd6, 0x20, 0xcd, 0x4f, 0xe8,
- 0x79, 0xf5, 0x66, 0x57, 0x4a, 0x71, 0x9d, 0x9c, 0x6e, 0x3d, 0x20, 0xbc, 0x24, 0x9c, 0x9f, 0xf5,
- 0xb2, 0x25, 0xa5, 0x7a, 0x01, 0xc1, 0x47, 0x71, 0xd6, 0x74, 0x0f, 0x7e, 0xd7, 0x71, 0x2b, 0x25,
- 0x35, 0x69, 0xf9, 0xe4, 0xa8, 0x70, 0x96, 0xd6, 0xbc, 0x9b, 0xd7, 0x01, 0x14, 0xd6, 0x16, 0x69,
- 0x6c, 0x9a, 0x4a, 0xd9, 0x49, 0xf1, 0x54, 0x0f, 0xd7, 0xa1, 0x31, 0x3e, 0x9e, 0x0f, 0xe2, 0x9a,
- 0x9c, 0x8b, 0xaf, 0x39, 0x2a, 0x1c, 0xc4, 0xd4, 0x2f, 0x56, 0x45, 0x91, 0x05, 0xd4, 0xe4, 0x8b,
- 0x1b, 0xc7, 0xf3, 0xa7, 0x83, 0xad, 0x15, 0x73, 0x45, 0xb9, 0x9d, 0xee, 0xc6, 0x73, 0xd9, 0xc7,
- 0x05, 0x6c, 0xa7, 0xbb, 0xb7, 0xf8, 0x07, 0x50, 0x5a, 0x7e, 0x72, 0x22, 0xed, 0x50, 0xa9, 0x6c,
- 0x50, 0x0f, 0xe2, 0xe1, 0x21, 0x5b, 0x70, 0x49, 0xe9, 0xec, 0x2c, 0x65, 0xc8, 0x49, 0x02, 0x0f,
- 0xf0, 0x11, 0xe5, 0xe0, 0x63, 0xed, 0x90, 0xdb, 0xf8, 0xf7, 0x74, 0xaf, 0x9b, 0xdb, 0x06, 0x11,
- 0xd1, 0x0b, 0xc5, 0xad, 0x52, 0xfb, 0x1a, 0x8e, 0xef, 0x57, 0xa8, 0x26, 0xbd, 0x8e, 0xf1, 0x0b,
- 0x12, 0x3b, 0xa2, 0x7b, 0x43, 0x77, 0xa7, 0xe3, 0xc7, 0x6f, 0x57, 0xb4, 0x84, 0xe3, 0x2f, 0x3b,
- 0x87, 0x4c, 0x5c, 0x9e, 0xa9, 0xb1, 0xd1, 0xa7, 0x6a, 0xef, 0xd8, 0x7f, 0xc3, 0xa7, 0x3d, 0x4c,
- 0x08, 0xe0, 0xa4, 0xfb, 0x5a, 0x3c, 0x67, 0x80, 0x90, 0x71, 0xd0, 0x50, 0xca, 0x80, 0x6a, 0xe0,
- 0x59, 0xf3, 0xb3, 0x3d, 0xe1, 0x81, 0xc2, 0xd9, 0x6b, 0x3a, 0xe6, 0x3f, 0x8a, 0xd9, 0xf4, 0xf3,
- 0xfc, 0x81, 0x13, 0x87, 0x14, 0xcf, 0x25, 0x1b, 0x20, 0x5f, 0xcc, 0xd7, 0x34, 0x1b, 0x59, 0x81,
- 0x21, 0x1a, 0x20, 0x4d, 0x31, 0x16, 0x8a, 0x55, 0x17, 0xa0, 0xdc, 0x89, 0x26, 0x55, 0xf7, 0x1a,
- 0x85, 0x74, 0x75, 0xd0, 0x5e, 0xbe, 0xb8, 0x87, 0x4e, 0x62, 0xec, 0x6b, 0x10, 0x87, 0xc6, 0x74,
- 0x55, 0x63, 0x45, 0x5a, 0x96, 0xa3, 0x77, 0x19, 0xb3, 0x92, 0x5e, 0x47, 0x25, 0x19, 0xab, 0x63,
- 0x4e, 0xa4, 0xb6, 0xfd, 0x15, 0x0e, 0x62, 0x6a, 0xf6, 0x2b, 0xc3, 0xa9, 0xe3, 0x6a, 0x72, 0xa4,
- 0xec, 0x82, 0x98, 0xb2, 0xa0, 0xb7, 0xeb, 0xd8, 0xc3, 0xbd, 0xaf, 0x77, 0x63, 0xd8, 0x8d, 0x82,
- 0xfb, 0xd5, 0x9d, 0x72, 0x54, 0x38, 0x4b, 0x6b, 0x5e, 0xac, 0x8a, 0xe1, 0x0a, 0x6b, 0x0b, 0xd5,
- 0x36, 0x4d, 0x25, 0x8d, 0xc5, 0x99, 0x2a, 0xe6, 0x8a, 0xb1, 0xf9, 0x1f, 0x4f, 0xe6, 0x71, 0x4d,
- 0x75, 0x65, 0x90, 0x30, 0x3d, 0x53, 0x28, 0x5c, 0xb6, 0x95, 0x98, 0xc4, 0x8b, 0x5c, 0xc0, 0x65,
- 0x37, 0x51, 0xd0, 0xaa, 0x5f, 0x7f, 0xff, 0xf6, 0x98, 0x16, 0xe3, 0x15, 0xc7, 0xf6, 0xed, 0x51,
- 0x5c, 0x9f, 0x14, 0x86, 0x56, 0x79, 0xc5, 0x89, 0x31, 0x44, 0x94, 0x1d, 0x67, 0x89, 0x5d, 0x9f,
- 0xf6, 0x59, 0x9e, 0x32, 0xb9, 0xfc, 0x2b, 0xbb, 0x94, 0xa3, 0x28, 0x93, 0x2d, 0xbb, 0xc8, 0x59,
- 0xf4, 0x61, 0xb7, 0x7c, 0x4e, 0xf3, 0x42, 0x9b, 0xb0, 0x2e, 0x1c, 0x87, 0xfe, 0x9b, 0x33, 0x61,
- 0xcd, 0x98, 0xb8, 0xff, 0x91, 0xa1, 0x61, 0x8d, 0xd4, 0x1d, 0x73, 0xfe, 0x45, 0x8d, 0x7a, 0x98,
- 0x6b, 0xce, 0xc4, 0x2c, 0x09, 0x06, 0x3a, 0x7f, 0xa9, 0x52, 0x77, 0x08, 0xa0, 0x7f, 0xb0, 0xce,
- 0xa2, 0x26, 0x2e, 0x4f, 0xb5, 0xb9, 0x89, 0xb2, 0x35, 0x96, 0x6c, 0xde, 0x80, 0xb2, 0xff, 0x26,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xaa, 0xc6, 0x8a, 0xb4, 0xef, 0x85, 0xee, 0x32, 0xa5, 0xe7, 0xbc, 0x8e, 0x4a, 0x32, 0x95, 0xc6,
- 0x71, 0x15, 0xc2, 0xac, 0x10, 0x4d, 0xfa, 0x1c, 0xfe, 0x4c, 0xf0, 0xec, 0xee, 0x1c, 0xf5, 0x15,
- 0x42, 0x34, 0x40, 0x9a, 0x62, 0x2c, 0xd7, 0xaa, 0x2e, 0x83, 0x7b, 0xd1, 0x4c, 0xaa, 0x2d, 0x34,
- },
- { /* 14 */
- 0x47, 0x52, 0xd9, 0xd2, 0x69, 0x81, 0x42, 0x4a, 0x4e, 0xe7, 0x53, 0x5d, 0xa9, 0x30, 0x47, 0x7c,
- 0xe9, 0xdb, 0x31, 0x5c, 0x2e, 0xdf, 0x12, 0x97, 0x34, 0x3f, 0x83, 0x15, 0x0b, 0x98, 0xe9, 0x1c,
- 0x8f, 0x26, 0xbe, 0x4a, 0x25, 0x12, 0xca, 0xbc, 0x87, 0xf8, 0x58, 0xe9, 0x7f, 0xf7, 0x8f, 0x8c,
- 0x4e, 0x4a, 0xa1, 0x54, 0x2a, 0x05, 0x39, 0xe1, 0x8d, 0xb6, 0x51, 0xd3, 0x3b, 0x95, 0x4e, 0x2e,
- 0x03, 0x45, 0x92, 0x77, 0xda, 0xb6, 0xd2, 0x78, 0x2d, 0xdc, 0xc1, 0xf5, 0xf1, 0x7a, 0x03, 0x9c,
- 0xcf, 0x7c, 0x4f, 0x5b, 0xcc, 0xef, 0xa1, 0x2e, 0x88, 0x91, 0xb4, 0xce, 0x19, 0xa4, 0xcf, 0x7f,
- 0x0c, 0xd7, 0x0d, 0x1f, 0xee, 0x9d, 0xce, 0x23, 0xb4, 0xf6, 0x82, 0x52, 0x42, 0x2b, 0x0c, 0x35,
- 0xba, 0x33, 0xff, 0xaf, 0xb6, 0x3a, 0xc1, 0xb8, 0x65, 0x01, 0x95, 0xbe, 0x64, 0xd5, 0xba, 0x3f,
- 0x12, 0x30, 0xf0, 0xcf, 0x86, 0xcb, 0xf6, 0x95, 0x45, 0xa2, 0x04, 0xdf, 0xe7, 0x89, 0x12, 0xa4,
- 0xf0, 0x34, 0xe4, 0x4f, 0xc6, 0xf5, 0x03, 0xf9, 0x84, 0xe5, 0xba, 0xe2, 0x61, 0x59, 0xf0, 0x02,
- 0x2b, 0xf2, 0xbc, 0x35, 0xfb, 0x7e, 0x33, 0xb2, 0x13, 0xad, 0x4b, 0xda, 0xbe, 0x80, 0x2b, 0x22,
- 0x2c, 0xfa, 0x94, 0xf6, 0x7b, 0x02, 0x1a, 0x6a, 0x52, 0x23, 0xf4, 0xa0, 0x71, 0xe3, 0x2c, 0xad,
- 0x32, 0x1d, 0x69, 0x26, 0x13, 0x54, 0x22, 0xdc, 0xa3, 0x77, 0x72, 0x2d, 0xd4, 0x41, 0x32, 0x3c,
- 0x1b, 0x28, 0x88, 0x49, 0xc5, 0x4f, 0x8d, 0x3e, 0x86, 0xf3, 0x06, 0x51, 0x75, 0x2c, 0x1b, 0xf6,
- 0xd2, 0xde, 0x20, 0xfc, 0x7e, 0x0f, 0x4b, 0xe0, 0x54, 0x19, 0xf3, 0xb6, 0x4d, 0x7c, 0xd2, 0x72,
- 0x08, 0x9a, 0xb7, 0xab, 0xb4, 0x57, 0x35, 0x83, 0xd8, 0xa4, 0xfc, 0xdd, 0x7c, 0x32, 0x08, 0x26,
- 0xdd, 0x4c, 0xbf, 0x94, 0x4a, 0x24, 0x57, 0xbb, 0xcd, 0x33, 0xb0, 0x11, 0xfe, 0x2d, 0xdd, 0xdb,
- 0x60, 0x77, 0x68, 0xf8, 0x7c, 0x62, 0xbf, 0xdb, 0xe9, 0xbc, 0x9a, 0xd5, 0x55, 0x9b, 0x60, 0x6b,
- 0x72, 0x47, 0x98, 0x37, 0xfa, 0xa9, 0x49, 0x4e, 0xac, 0x1e, 0x9e, 0x0a, 0xb2, 0x12, 0x72, 0xcf,
- 0x11, 0x75, 0x62, 0xb8, 0x5c, 0x7d, 0x24, 0xed, 0x68, 0x7e, 0xc5, 0x2a, 0x16, 0xf3, 0x11, 0x38,
- 0x06, 0x8a, 0xe7, 0xee, 0x77, 0xaf, 0x67, 0xf0, 0x5a, 0x7b, 0x41, 0x29, 0x21, 0xf4, 0x06, 0xfb,
- 0x5d, 0xf8, 0x9e, 0xb6, 0x5b, 0x1d, 0x81, 0x5c, 0xd3, 0xe1, 0xab, 0x5f, 0x32, 0x8b, 0x5d, 0xfe,
- 0xe0, 0xc3, 0x49, 0xda, 0x6d, 0x5b, 0x69, 0x3c, 0xf7, 0x6e, 0x81, 0x9b, 0x99, 0x3d, 0xe0, 0x4e,
- 0x86, 0x3e, 0xc6, 0xcc, 0x66, 0x96, 0xb1, 0x17, 0x44, 0xa9, 0x5a, 0x67, 0xed, 0x52, 0x86, 0xde,
- 0xaa, 0xc4, 0x52, 0x3a, 0x1d, 0x94, 0xab, 0x7d, 0x16, 0x8a, 0xae, 0xc7, 0x9c, 0xb1, 0xaa, 0x73,
- 0x58, 0x37, 0xeb, 0x2f, 0xf6, 0x04, 0x34, 0xd4, 0xa4, 0x46, 0x2b, 0x83, 0xe2, 0x05, 0x58, 0x99,
- 0x24, 0x60, 0x23, 0x5d, 0xcf, 0x55, 0x2f, 0xe9, 0x8a, 0x87, 0x08, 0x7d, 0x0d, 0xd1, 0x24, 0x8b,
- 0xdf, 0x8b, 0xe2, 0xce, 0x67, 0x41, 0xcb, 0xeb, 0xfb, 0x1a, 0x8f, 0xb7, 0xe1, 0xc0, 0xdf, 0x33,
- 0x69, 0x6f, 0x10, 0x7e, 0x3f, 0xe6, 0xc4, 0x70, 0x2a, 0xed, 0x98, 0x5b, 0xc7, 0x3e, 0x69, 0x39,
- 0x7a, 0xdd, 0x2f, 0x9c, 0x4e, 0xfe, 0x7c, 0xcd, 0x74, 0xba, 0x62, 0xd7, 0xce, 0x20, 0x7a, 0xe9,
- 0x67, 0x7f, 0x40, 0x3b, 0xfc, 0x1e, 0x96, 0x03, 0xa8, 0x32, 0x25, 0xaf, 0x9a, 0xf8, 0x67, 0xe4,
- 0xec, 0x14, 0x44, 0xc5, 0x83, 0xc6, 0xa7, 0x1f, 0x43, 0x98, 0x03, 0xc9, 0xdb, 0x16, 0xec, 0x7b,
- 0x30, 0xda, 0x34, 0x7c, 0x3e, 0x31, 0xbe, 0x8c, 0x95, 0x5e, 0x4d, 0x8b, 0xcb, 0xac, 0x30, 0xd4,
- 0x6a, 0x2a, 0x82, 0x09, 0xe5, 0x50, 0x16, 0x08, 0x07, 0x31, 0x59, 0xae, 0x36, 0x44, 0x6a, 0xa5,
- 0x0e, 0x10, 0x50, 0x45, 0xc3, 0xf8, 0x52, 0x73, 0x82, 0xdf, 0xbd, 0xf4, 0x5d, 0xc6, 0x0e, 0xdd,
- 0x43, 0x1f, 0x63, 0x66, 0x33, 0x4b, 0xb9, 0xea, 0x22, 0xb5, 0x2d, 0xd2, 0x97, 0x29, 0x43, 0x6f,
- 0x2d, 0x78, 0x5b, 0xdb, 0x8c, 0xd1, 0x54, 0x42, 0x49, 0xd6, 0x0a, 0xf3, 0x9f, 0x74, 0x2d, 0xd9,
- 0xb3, 0x2b, 0x87, 0x29, 0xf5, 0xbe, 0xba, 0x13, 0xa6, 0x50, 0x97, 0x30, 0xf6, 0x70, 0xb3, 0x6d,
- 0xe4, 0x8e, 0xf3, 0x6e, 0x37, 0x91, 0x92, 0x9c, 0x9b, 0x3c, 0xff, 0x14, 0xa7, 0x24, 0xe4, 0x5d,
- 0x22, 0xea, 0xc4, 0xb3, 0xb8, 0xfa, 0x48, 0x19, 0xd0, 0xfc, 0x49, 0x54, 0x2c, 0x25, 0x22, 0x70,
- 0xab, 0x46, 0x9d, 0x17, 0xea, 0x47, 0xe5, 0x55, 0x0d, 0x7f, 0x50, 0x94, 0x72, 0x26, 0xab, 0x07,
- 0x3d, 0x8f, 0xf6, 0x4e, 0x27, 0x7f, 0x3e, 0x87, 0x3a, 0x5d, 0x31, 0x8a, 0x67, 0x10, 0x3d, 0x95,
- 0x34, 0x97, 0x8e, 0xc8, 0x64, 0xfb, 0x45, 0x2c, 0xf9, 0x0c, 0x33, 0x04, 0xf5, 0xb5, 0x34, 0xc7,
- 0x90, 0x43, 0x8c, 0xb7, 0xba, 0x97, 0xbc, 0x22, 0x6d, 0x59, 0x20, 0x37, 0x34, 0xc2, 0x90, 0x69,
- 0x97, 0x4b, 0xa4, 0x74, 0x3a, 0xeb, 0x95, 0xfa, 0x2c, 0xd7, 0x9f, 0x4d, 0xfb, 0xa1, 0x97, 0xe6,
- 0xb0, 0x6e, 0x15, 0x5e, 0x2f, 0x08, 0x68, 0x6b, 0x8b, 0x8c, 0x56, 0xc5, 0x07, 0x0a, 0xb0, 0xf1,
- 0xe5, 0x0c, 0x3c, 0x43, 0xc0, 0x42, 0xdc, 0xb4, 0x80, 0xc9, 0x01, 0x47, 0x49, 0xb3, 0xe5, 0x29,
- 0x42, 0x9d, 0xac, 0x4b, 0xc4, 0x98, 0xf7, 0xc2, 0x39, 0x40, 0xd3, 0x81, 0x79, 0xbe, 0x42, 0x1b,
- 0x79, 0x98, 0xbd, 0xeb, 0x94, 0x48, 0xae, 0xb5, 0x59, 0x66, 0xa3, 0x22, 0x3f, 0x5a, 0x79, 0x75,
- 0xc0, 0xee, 0xd0, 0x33, 0xf8, 0xc4, 0xbd, 0x75, 0x11, 0xbb, 0xf7, 0x69, 0xaa, 0xf5, 0xc0, 0xd6,
- 0x18, 0x6d, 0x1a, 0x3e, 0x1f, 0xf9, 0x5f, 0x46, 0xab, 0x2f, 0xc7, 0xa4, 0x84, 0x56, 0x18, 0x6a,
- 0x4b, 0x85, 0xd4, 0xcd, 0x87, 0x1c, 0x8c, 0x69, 0xfa, 0x11, 0xd1, 0x0f, 0xeb, 0x1b, 0x4b, 0x49,
- 0xf7, 0x3c, 0xcc, 0x8c, 0x46, 0x89, 0x2a, 0x21, 0xc5, 0x6b, 0x05, 0x98, 0xae, 0x3a, 0xf7, 0x8d,
- 0xb8, 0xf4, 0xa2, 0xf5, 0x9b, 0x5f, 0x5d, 0xe8, 0x53, 0x28, 0xaa, 0x18, 0x7b, 0x38, 0xb8, 0xd7,
- 0xa6, 0x13, 0x5f, 0x25, 0xf3, 0x09, 0x65, 0x5e, 0xa2, 0x7c, 0x2c, 0x95, 0xde, 0x9a, 0xa6, 0x46,
- 0x59, 0xb5, 0x24, 0x02, 0x01, 0xd7, 0x7a, 0xfc, 0xbf, 0xb3, 0xd5, 0xd0, 0x0c, 0x92, 0x59, 0xed,
- 0x64, 0x3a, 0xd2, 0x4c, 0x26, 0xa8, 0x44, 0x7b, 0x85, 0xee, 0xe4, 0x5a, 0x6b, 0x82, 0x64, 0x78,
- 0x36, 0x50, 0xd3, 0x92, 0x49, 0x9e, 0xd9, 0x7c, 0xcf, 0x25, 0x0c, 0xa2, 0xea, 0x58, 0x36, 0x2f,
- 0xb4, 0x23, 0xaf, 0xea, 0x75, 0xc2, 0x93, 0xcb, 0xe7, 0xde, 0x28, 0x4a, 0x39, 0x13, 0xb4, 0xe2,
- 0x81, 0x36, 0xee, 0x0f, 0xe6, 0xea, 0x98, 0xcf, 0x05, 0x27, 0xe5, 0x1d, 0x22, 0x31, 0x81, 0x51,
- 0x09, 0x18, 0x78, 0x86, 0x43, 0x84, 0x7b, 0xab, 0xc3, 0x51, 0x02, 0x8e, 0x92, 0xa5, 0x09, 0x52,
- 0x78, 0x1a, 0x72, 0xc6, 0x63, 0x9b, 0xe0, 0x9d, 0x42, 0x93, 0x5d, 0x71, 0xd1, 0xcd, 0x78, 0x01,
- 0xed, 0x96, 0x8b, 0xe8, 0x74, 0x15, 0xe9, 0x37, 0x58, 0x6d, 0xfd, 0x9a, 0x35, 0x81, 0xed, 0x0f,
- 0x5f, 0x3f, 0xc3, 0xec, 0x76, 0x78, 0x1d, 0x0c, 0xe5, 0xc8, 0x94, 0xf9, 0x2d, 0x66, 0x5f, 0x16,
- 0xda, 0x44, 0x97, 0x57, 0xca, 0x58, 0x7e, 0x63, 0x8c, 0xbd, 0x0f, 0x6b, 0x31, 0x4e, 0xda, 0x54,
- 0xc4, 0xa3, 0x6a, 0x87, 0xa2, 0x0e, 0x46, 0xd5, 0x7d, 0xe9, 0x89, 0xe6, 0x94, 0xec, 0xc4, 0xc5,
- 0x29, 0x35, 0xe1, 0x6f, 0xd6, 0x1b, 0xaf, 0xe2, 0x25, 0x84, 0x74, 0x7c, 0xa1, 0x6d, 0x29, 0xca,
- 0xad, 0xcc, 0x7a, 0xf9, 0x9d, 0xe8, 0x82, 0xa5, 0x57, 0x04, 0x11, 0xbd, 0x53, 0xd2, 0xad, 0xfc,
- 0x07, 0x08, 0x28, 0xc3, 0x80, 0x7c, 0x29, 0xd8, 0x41, 0x8e, 0xbf, 0x7a, 0xcf, 0x63, 0x07, 0x8f,
- 0x82, 0x73, 0x7c, 0x78, 0x3c, 0x5c, 0x4a, 0xb7, 0x28, 0xfb, 0x24, 0xe8, 0xd3, 0x4b, 0x82, 0xcd,
- 0xe2, 0x04, 0x14, 0x80, 0x40, 0x3e, 0xf5, 0x6c, 0xc1, 0x47, 0xbe, 0x3d, 0x86, 0xd0, 0xe2, 0xa6,
- 0x31, 0x58, 0xfb, 0x51, 0xc9, 0xe2, 0xf0, 0xa4, 0x8e, 0xab, 0xb3, 0xd8, 0x25, 0x3b, 0x31, 0xa0,
- 0x17, 0xff, 0x85, 0x56, 0x2b, 0xd2, 0x43, 0x1d, 0x32, 0x05, 0x84, 0x03, 0x37, 0x07, 0x17, 0xc3,
- 0x9f, 0xd1, 0x13, 0xdf, 0x8e, 0xbc, 0xa0, 0x79, 0xf4, 0x73, 0x63, 0x90, 0x87, 0x93, 0x9f, 0xc0,
- 0x0b, 0xdf, 0x25, 0xdc, 0x6e, 0xe1, 0xe7, 0xfb, 0xf5, 0x78, 0x3d, 0x28, 0x8d, 0x48, 0x0b, 0xba,
- 0x16, 0x7d, 0x4a, 0x7b, 0xdc, 0x01, 0x0d, 0x35, 0x29, 0xf0, 0x7a, 0x50, 0xd9, 0x90, 0x16, 0xb7,
- 0x7f, 0x12, 0x5a, 0x05, 0xe3, 0xe7, 0xc9, 0x45, 0x03, 0x1d, 0xe2, 0x0b, 0x1e, 0xae, 0x7f, 0x8e,
- 0x23, 0x68, 0x0b, 0x9e, 0x4f, 0x29, 0x06, 0x31, 0xcb, 0x09, 0xb7, 0x07, 0xc2, 0xb2, 0x23, 0x04,
- 0x6b, 0xa8, 0x4d, 0x24, 0x12, 0x83, 0x58, 0x20, 0x1c, 0xc4, 0xa7, 0xfd, 0xd8, 0xd3, 0x6b, 0xd1,
- 0xa9, 0x81, 0xc0, 0x4d, 0xc7, 0x22, 0x79, 0x05, 0x3b, 0x56, 0x6f, 0x32, 0x6d, 0xcb, 0xa9, 0xef,
- 0x8b, 0x6b, 0x04, 0xfe, 0x7f, 0xd8, 0x31, 0x1c, 0xeb, 0xaa, 0x26, 0x66, 0x41, 0xee, 0x8b, 0x9f,
- 0xb7, 0x66, 0x3d, 0x9d, 0xaf, 0x74, 0x41, 0xb3, 0xca, 0x02, 0xe9, 0xbf, 0xc8, 0x69, 0xb7, 0x7e,
- 0x13, 0xb2, 0x3f, 0xe2, 0x71, 0x18, 0xb8, 0xbd, 0x5e, 0x57, 0xfa, 0x8c, 0x09, 0x1e, 0x13, 0xd0,
- 0x1c, 0x20, 0xa0, 0x8a, 0x45, 0x33, 0xa4, 0xe6, 0xc7, 0x7d, 0xb9, 0x2b, 0xba, 0x4f, 0x1c, 0x79,
- 0xfb, 0xeb, 0xc1, 0x93, 0xa8, 0x14, 0xe4, 0x02, 0x71, 0x9d, 0x87, 0xca, 0xec, 0x11, 0xfb, 0xb8,
- 0x62, 0xb0, 0x35, 0xa2, 0x51, 0x07, 0x23, 0x8b, 0xdf, 0x95, 0xa5, 0x73, 0x4a, 0x76, 0x62, 0x83,
- 0xf2, 0xf3, 0xb9, 0x15, 0xeb, 0x90, 0x9f, 0xa9, 0xb2, 0xcc, 0x85, 0x44, 0x7e, 0xb4, 0xf2, 0xea,
- 0x3b, 0x05, 0x11, 0xa0, 0x50, 0xd0, 0x59, 0x77, 0x60, 0x26, 0x70, 0xa3, 0x46, 0xe4, 0x3b, 0x6e,
- 0x9a, 0x1e, 0x66, 0x46, 0x23, 0xa5, 0x15, 0xf1, 0x83, 0xd4, 0xe3, 0x4c, 0x57, 0x1d, 0x9a, 0xa7,
- 0x75, 0x4f, 0xb0, 0xf4, 0x7a, 0xd5, 0x60, 0x96, 0xed, 0x90, 0x21, 0x70, 0x7d, 0x71, 0x75, 0x40,
- 0xea, 0x9e, 0xa3, 0x2b, 0xf4, 0x69, 0xc0, 0xef, 0x19, 0xe3, 0x42, 0xe0, 0xfa, 0xe2, 0xea, 0x80,
- 0xd0, 0x19, 0x7d, 0xa6, 0x53, 0x6a, 0xd7, 0xb0, 0x62, 0x30, 0xcc, 0x10, 0x52, 0x91, 0xd0, 0x9a,
- 0x2a, 0x70, 0x73, 0x18, 0x0c, 0xad, 0x7d, 0x9a, 0x08, 0x58, 0xb5, 0x89, 0x50, 0x17, 0x2a, 0x56,
- 0x91, 0xc1, 0x43, 0x9a, 0x4d, 0x44, 0xf2, 0x0a, 0x76, 0xac, 0xde, 0x64, 0xda, 0x55, 0x91, 0x1d,
- 0x02, 0xc7, 0x5d, 0x5a, 0x2d, 0x65, 0x9c, 0x50, 0x36, 0x29, 0x3f, 0xa6, 0x1f, 0xed, 0x02, 0xe8,
- 0x46, 0xd0, 0x16, 0xff, 0x9e, 0x52, 0x0c, 0x62, 0x55, 0x12, 0xad, 0x0e, 0x47, 0xa7, 0x46, 0x08,
- 0xa7, 0x91, 0x90, 0x08, 0x04, 0xda, 0x2b, 0x76, 0xb9, 0x89, 0xd2, 0xc6, 0x30, 0x0d, 0xa7, 0x32,
- 0xdc, 0xce, 0x70, 0xb9, 0xbd, 0xf7, 0x19, 0x93, 0xd6, 0xc6, 0x4e, 0x42, 0x10, 0xba, 0xdc, 0xaf,
- 0x27, 0x25, 0xb1, 0x2a, 0x15, 0xe3, 0xfd, 0x91, 0xa7, 0x5b, 0xc9, 0x88, 0xfc, 0xab, 0x27, 0x17,
- 0x76, 0x0a, 0x22, 0x83, 0xa0, 0x63, 0xb2, 0xee, 0xc0, 0x4c, 0xe0, 0x85, 0x8c, 0x0b, 0x76, 0xdc,
- 0xa4, 0xd4, 0x02, 0x7f, 0xde, 0x6c, 0xf9, 0x0e, 0x94, 0x55, 0x13, 0x33, 0xc1, 0x77, 0xa4, 0xae,
- 0xca, 0xb3, 0x3a, 0xc2, 0x61, 0xf6, 0x14, 0xa6, 0xff, 0x36, 0x34, 0x12, 0xc9, 0x2a, 0xca, 0x18,
- 0x96, 0xc9, 0x6b, 0x59, 0xcd, 0x38, 0xdb, 0xd2, 0x37, 0x22, 0x61, 0x1e, 0x15, 0x36, 0x96, 0x92,
- 0x70, 0x80, 0xc5, 0x6d, 0xd7, 0xcc, 0xd5, 0x1e, 0x9a, 0x37, 0xa1, 0xac, 0xad, 0xff, 0x70, 0x27,
- 0x54, 0xe0, 0xe6, 0x30, 0x18, 0x99, 0xfa, 0xf7, 0x10, 0xb0, 0xa9, 0xd1, 0xa0, 0x2e, 0x54, 0xac,
- 0xe1, 0x41, 0x86, 0xf7, 0x9a, 0x88, 0x27, 0x14, 0xec, 0x9b, 0x7f, 0xc8, 0x77, 0xaa, 0xe1, 0x3a,
- 0x6f, 0xe5, 0xf7, 0x90, 0x48, 0x49, 0xa3, 0x80, 0x70, 0x96, 0xd9, 0x72, 0xe6, 0xca, 0x6f, 0xc2,
- 0x39, 0xc2, 0x4c, 0xfa, 0x7d, 0xb5, 0xc5, 0x27, 0x56, 0x0f, 0x4f, 0x05, 0x59, 0x09, 0x39, 0x86,
- 0x33, 0x9f, 0xa6, 0x0b, 0xe4, 0x87, 0x6c, 0xf4, 0xb8, 0x82, 0x8c, 0x7e, 0x3a, 0xd6, 0x33, 0x48,
- 0xdb, 0xc6, 0x58, 0x7a, 0x3d, 0x8b, 0x30, 0x4b, 0x97, 0x48, 0xf1, 0x38, 0xdf, 0xd9, 0xdb, 0x20,
- 0xa0, 0x99, 0xb8, 0xcb, 0x84, 0xa6, 0x02, 0xae, 0xf8, 0x07, 0x6d, 0xbc, 0xff, 0x6e, 0xa0, 0xbd,
- 0xfe, 0x24, 0xb4, 0x0a, 0x05, 0x0d, 0x51, 0x8a, 0x06, 0x3a, 0x07, 0x16, 0x3c, 0x9f, 0xfe, 0xdf,
- 0xb2, 0xa9, 0x48, 0x04, 0x02, 0x6d, 0xf4, 0x3b, 0xbd, 0xa5, 0x69, 0x63, 0x18, 0xe7, 0xb2, 0x19,
- 0x10, 0xf7, 0xad, 0x95, 0xab, 0xae, 0x6a, 0xc5, 0x73, 0x8b, 0x3b, 0x79, 0xf8, 0x64, 0x10, 0x4c,
- 0x71, 0x02, 0x0a, 0x40, 0x20, 0x1f, 0x9b, 0x36, 0x81, 0xc2, 0x5f, 0xff, 0x43, 0x68, 0x71, 0x53,
- 0x87, 0xbc, 0x09, 0xe1, 0x91, 0x45, 0xff, 0x3f, 0x5f, 0x5c, 0xa4, 0x34, 0x03, 0xc5, 0x87, 0xaa,
- 0x35, 0x15, 0x41, 0xe5, 0x93, 0x28, 0x0b, 0x04, 0xe2, 0xf9, 0xcd, 0x57, 0x1b, 0x22, 0x35, 0xb3,
- 0x38, 0x40, 0x83, 0xd7, 0x8a, 0x66, 0x8b, 0x0f, 0x4d, 0xfa, 0xb1, 0x56, 0xb7, 0x9e, 0x38, 0xf2,
- 0x52, 0x6a, 0x01, 0xde, 0x6f, 0x36, 0x9d, 0x07, 0x4a, 0xcb, 0xe8, 0xf8, 0x81, 0xda, 0x52, 0x57,
- 0x65, 0xb8, 0x1d, 0x61, 0xd1, 0x7b, 0x0a, 0x53, 0x9e, 0x1b, 0x1a, 0x09, 0x85, 0x15, 0x65, 0x0c,
- 0xde, 0x09, 0x2d, 0xe3, 0x90, 0x92, 0x85, 0xc3, 0xe0, 0xef, 0x71, 0xe4, 0x0f, 0x57, 0xde, 0x47,
- 0x8e, 0xa4, 0x71, 0x67, 0xd2, 0xc1, 0x84, 0x94, 0x9c, 0x0d, 0xa6, 0xba, 0x91, 0x60, 0x8e, 0xf8,
- 0xa8, 0x03, 0x0f, 0x60, 0x30, 0xf1, 0x37, 0x2d, 0x20, 0xa3, 0x91, 0x61, 0x83, 0x5c, 0xa8, 0x9b,
- 0xfd, 0x61, 0x26, 0x7d, 0xdf, 0xbb, 0x83, 0xf2, 0x2b, 0xe6, 0xc6, 0xe3, 0xcd, 0xe5, 0xfd, 0x43,
- 0x2e, 0x3d, 0xc9, 0xac, 0x56, 0x67, 0x86, 0x3a, 0x64, 0x0a, 0xcb, 0x06, 0x6e, 0x0e, 0x2e, 0x45,
- 0x01, 0x82, 0xcf, 0x2d, 0xf7, 0xd3, 0x4e, 0x28, 0x1b, 0xf5, 0xfe, 0x53, 0xee, 0x97, 0x01, 0x74,
- 0xf8, 0xae, 0x53, 0xe4, 0x72, 0xa2, 0x36, 0x7a, 0x5c, 0x41, 0x46, 0x3f, 0x1d, 0x6b, 0xf8, 0x24,
- 0x8c, 0x63, 0x2c, 0x3d, 0xff, 0xa4, 0x18, 0xc4, 0xaa, 0x24, 0x99, 0x1c, 0x8e, 0x8d, 0x8c, 0x10,
- 0xbb, 0xb1, 0x30, 0x82, 0x41, 0xe9, 0x8f, 0x90, 0x7e, 0xf4, 0x6b, 0xed, 0x8a, 0x42, 0xbb, 0x4b,
- 0x49, 0x42, 0x89, 0x97, 0xaa, 0x79, 0x10, 0x39, 0xcc, 0x38, 0xee, 0xa9, 0xf4, 0xf6, 0x49, 0xa1,
- 0x44, 0x17, 0x4b, 0xa5, 0xb3, 0x37, 0x90, 0x32, 0x63, 0x3b, 0x92, 0xa8, 0x58, 0x4a, 0x44, 0xe0,
- 0xbf, 0xfc, 0x8a, 0x36, 0x1b, 0x23, 0x74, 0x30, 0x12, 0xa6, 0x15, 0x62, 0xb4, 0x5b, 0xbf, 0x58,
- 0xef, 0x51, 0xd6, 0xb2, 0x59, 0x70, 0x75, 0x67, 0x6e, 0x44, 0xc2, 0x3c, 0x2a, 0x6c, 0xef, 0xe7,
- 0xfc, 0xe3, 0xe9, 0x50, 0x28, 0x68, 0xcd, 0xda, 0x30, 0x13, 0x38, 0xb0, 0x23, 0x72, 0xfc, 0x37,
- 0x3a, 0x87, 0xde, 0x8d, 0xa7, 0x03, 0x17, 0x5f, 0x7b, 0xd3, 0x8e, 0xf0, 0xa8, 0x73, 0x3a, 0x1a,
- 0xb1, 0xec, 0xda, 0x73, 0xd8, 0xdb, 0x26, 0x43, 0x90, 0x79, 0xa8, 0x96, 0xe9, 0x9d, 0xb1, 0x85,
- 0xf9, 0x2c, 0x9c, 0xc9, 0x85, 0x71, 0x78, 0x52, 0x47, 0xb4, 0xb8, 0x6c, 0xf3, 0xfc, 0xf9, 0x50,
- 0x99, 0x5b, 0xf4, 0x31, 0xf9, 0x13, 0xc7, 0x89, 0xae, 0x08, 0x22, 0xb9, 0xa6, 0x67, 0x99, 0x3b,
- 0xd8, 0x83, 0xca, 0x0d, 0xe7, 0x3d, 0xe2, 0x33, 0xba, 0x94, 0x30, 0xcd, 0x2e, 0xa3, 0xd8, 0xbc,
- 0xc9, 0xf6, 0xa8, 0xb5, 0xbb, 0x40, 0xc6, 0xde, 0xd2, 0xea, 0xf5, 0xe7, 0x38, 0x50, 0xc9, 0x84,
- 0x61, 0xf5, 0xa7, 0xd5, 0x8b, 0xb1, 0xf1, 0xf3, 0xf2, 0x49, 0x64, 0x86, 0xbb, 0x0c, 0x61, 0x1f,
- 0x3c, 0x0d, 0x39, 0x63, 0xd0, 0xac, 0x70, 0xaf, 0x21, 0xa8, 0xcf, 0xd9, 0x89, 0x87, 0x3c, 0xe1,
- 0x89, 0xac, 0x59, 0xa4, 0x52, 0xbd, 0xad, 0x4c, 0xdd, 0x83, 0x19, 0xc0, 0x5e, 0x03, 0x89, 0x77,
- 0x0f, 0x92, 0x9f, 0x68, 0x34, 0x2b, 0x1c, 0x5b, 0x99, 0x2a, 0x43, 0xa7, 0xb3, 0x51, 0x0f, 0xa9,
- 0x5c, 0x7a, 0x51, 0x9b, 0xac, 0xce, 0xcf, 0x74, 0xc8, 0x14, 0x55, 0x0c, 0xdc, 0x1c, 0x5c, 0x8a,
- 0xbe, 0x7e, 0x45, 0x1b, 0xec, 0xf0, 0x3a, 0x18, 0x09, 0x53, 0xeb, 0x31, 0x5a, 0xcc, 0xbe, 0x2c,
- 0xc2, 0x29, 0x8d, 0x69, 0xd5, 0xa1, 0x21, 0x25, 0x27, 0x92, 0xc8, 0xcf, 0xb5, 0x18, 0xc2, 0x3e,
- 0xc5, 0x21, 0xa5, 0xaa, 0x55, 0xdd, 0x08, 0xfd, 0x66, 0x1c, 0x77, 0xb5, 0x7a, 0x7b, 0xc5, 0xb1,
- 0x88, 0x2e, 0x96, 0x89, 0xa5, 0x6e, 0xe3, 0x64, 0xc6, 0x76, 0xe7, 0x93, 0xb0, 0x94, 0x88, 0x03,
- 0xa1, 0x1b, 0x77, 0xe6, 0x73, 0x75, 0x4c, 0x86, 0xe3, 0xf2, 0x93, 0xef, 0x11, 0xf9, 0xa1, 0xc9,
- 0x1d, 0xa2, 0x6f, 0xa7, 0xb2, 0xe0, 0xea, 0xce, 0xdc, 0x88, 0x47, 0x78, 0x54, 0xd8, 0x1d, 0x0d,
- 0xc7, 0xe6, 0xf8, 0xf0, 0x78, 0xb8, 0x94, 0xad, 0x50, 0x35, 0x48, 0x13, 0x65, 0x96, 0xc7, 0x59,
- 0x6c, 0xa0, 0x65, 0xe7, 0x92, 0xff, 0x71, 0xf8, 0x5d, 0x4a, 0x18, 0x87, 0x17, 0xb0, 0x6c, 0x5e,
- 0x85, 0x7b, 0x54, 0xbb, 0xbc, 0x20, 0x63, 0x6f, 0x69, 0x75, 0x9b, 0x92, 0x1c, 0x28, 0x85, 0x42,
- 0x9d, 0x16, 0x4e, 0x85, 0xa3, 0xd9, 0x3c, 0x29, 0xc2, 0x5a, 0x5c, 0x36, 0x98, 0x7e, 0x9d, 0x28,
- 0xd3, 0x5c, 0xef, 0xd1, 0x89, 0xdc, 0x05, 0xc8, 0x4f, 0xec, 0x0d, 0xe5, 0xa3, 0xeb, 0xd3, 0x06,
- 0xd1, 0x9b, 0xb2, 0x8b, 0xa4, 0xb9, 0x99, 0x98, 0x79, 0xc5, 0x32, 0x43, 0xbc, 0x06, 0xd1, 0xee,
- 0x1e, 0xe7, 0xfd, 0xd0, 0x68, 0x56, 0x38, 0xb6, 0xf1, 0x54, 0x86, 0x8d, 0xa5, 0xa2, 0x1e, 0x91,
- 0x3e, 0xca, 0x64, 0x39, 0xfd, 0xc9, 0xec, 0xff, 0x17, 0x81, 0xf0, 0x7f, 0x96, 0x6a, 0x3e, 0x09,
- 0x84, 0xf9, 0x9b, 0x96, 0x4b, 0xf3, 0x2d, 0x47, 0x72, 0x80, 0x65, 0xc1, 0xf2, 0xbf, 0x84, 0x36,
- 0x2f, 0xbf, 0x06, 0x81, 0xa1, 0xb4, 0xc8, 0x12, 0x7f, 0xff, 0x35, 0x55, 0x80, 0x99, 0x2f, 0x31,
- 0x7d, 0xd5, 0x07, 0x5f, 0xce, 0x82, 0x55, 0x15, 0x35, 0x34, 0xdd, 0xad, 0x01, 0x43, 0x7d, 0x66,
- 0x74, 0xcd, 0x7f, 0xd9, 0x8d, 0x06, 0x2e, 0xbe, 0xf6, 0x65, 0xdf, 0x23, 0x93, 0xe6, 0x74, 0x34,
- 0x41, 0xd8, 0x3e, 0x3c, 0x1e, 0x2e, 0x25, 0xba, 0x14, 0x9c, 0x12, 0x74, 0x88, 0xc4, 0x41, 0x87,
- 0x50, 0xad, 0x5c, 0x84, 0x42, 0x53, 0x01, 0x57, 0x7c, 0xe2, 0xd7, 0x5e, 0x9e, 0x37, 0x50, 0xbf,
- 0x21, 0xaf, 0x56, 0xc4, 0x62, 0x4c, 0x9a, 0x61, 0xfd, 0x20, 0x88, 0xa1, 0xdd, 0x5f, 0x21, 0xec,
- 0x55, 0x62, 0x29, 0x1d, 0xef, 0x4a, 0xb4, 0xdf, 0x0b, 0x45, 0x57, 0x82, 0x4e, 0xb9, 0x55, 0xd8,
- 0xe7, 0xcb, 0x61, 0x19, 0xed, 0x27, 0x40, 0xe4, 0xb6, 0xe0, 0x3e, 0xe1, 0x56, 0x5e, 0xe7, 0xc1,
- 0xcd, 0xbb, 0x12, 0x01, 0xe1, 0x8a, 0x3d, 0x7e, 0xbe, 0xb8, 0x8b, 0x68, 0x06, 0x49, 0xcd, 0x97,
- 0x0d, 0x55, 0xc2, 0x32, 0x19, 0x4e, 0x80, 0x0b, 0xaf, 0x03, 0x7c, 0x01, 0xac, 0xbc, 0x0d, 0x41,
- 0x7c, 0x57, 0xc8, 0x72, 0x39, 0x51, 0x1b, 0x3d, 0x2e, 0xc1, 0x23, 0xfe, 0xef, 0xd4, 0x7c, 0x12,
- 0x37, 0xd2, 0x1c, 0xbf, 0xbe, 0x4d, 0x97, 0x54, 0xd4, 0xd0, 0xf2, 0xf1, 0x04, 0xcf, 0x37, 0x5b,
- 0x1a, 0xaa, 0x47, 0x64, 0x32, 0x9c, 0xc3, 0x16, 0x9d, 0x06, 0xf8, 0x02, 0x9b, 0xbb, 0x1a, 0x82,
- 0xa2, 0x5e, 0xe5, 0x91, 0xa9, 0xc3, 0x9e, 0xfe, 0xce, 0x2e, 0x52, 0x1a, 0xe0, 0x83, 0xa2, 0x55,
- 0xaf, 0x0b, 0x27, 0xa3, 0xb0, 0x8d, 0x1e, 0xf5, 0x61, 0x2d, 0x2e, 0x1b, 0x4c, 0x3f, 0xaf, 0x14,
- 0xf6, 0xbe, 0x03, 0xa1, 0xb1, 0x5a, 0x64, 0x09, 0xde, 0x9e, 0xfb, 0xcb, 0x40, 0xad, 0xf6, 0xf9,
- 0xe8, 0x59, 0xfe, 0x71, 0xd9, 0x0c, 0x5c, 0xbf, 0x2f, 0xca, 0x7d, 0x46, 0xe5, 0x0f, 0xe8, 0x68,
- 0x7e, 0x90, 0x95, 0x28, 0x14, 0x34, 0x87, 0x6d, 0x18, 0xe8, 0x1c, 0x58, 0xf0, 0x39, 0x7e, 0xfa,
- 0x5e, 0xbd, 0x0c, 0xc1, 0x81, 0xab, 0x53, 0x24, 0xfe, 0x3d, 0x6a, 0xaa, 0xc3, 0xf1, 0x5e, 0x62,
- 0xfa, 0x69, 0x0e, 0xbe, 0x5f, 0xc7, 0xaa, 0x2a, 0x6a, 0x68, 0x79, 0x99, 0x02, 0x86, 0xfa, 0xcc,
- 0xb5, 0xa1, 0x60, 0xc7, 0x82, 0x11, 0xdd, 0xe3, 0xfc, 0x2b, 0xd6, 0x19, 0xd7, 0x84, 0xb5, 0x96,
- 0x92, 0x84, 0xd1, 0xed, 0x97, 0xf2, 0x20, 0x72, 0x5b, 0x70, 0x1f, 0x91, 0x2b, 0x2f, 0x92, 0x81,
- 0x56, 0x27, 0xbb, 0x6a, 0x35, 0xfc, 0x66, 0xa7, 0x26, 0x99, 0x96, 0x77, 0xbf, 0xc3, 0x56, 0x44,
- 0xf1, 0xb6, 0x2b, 0x62, 0x31, 0x26, 0x4d, 0xd1, 0x9f, 0x10, 0x44, 0xb1, 0x8f, 0xce, 0xf1, 0x76,
- 0x04, 0x4d, 0xba, 0xb4, 0x5a, 0xca, 0xfb, 0xa0, 0x6c, 0x52, 0x7e, 0x8f, 0x3e, 0x19, 0x04, 0x13,
- 0x6e, 0x67, 0x38, 0xbd, 0xbf, 0x9a, 0xed, 0xa8, 0x6b, 0x63, 0x27, 0x21, 0x08, 0x5d, 0x6e, 0xb6,
- 0xa5, 0x56, 0xcd, 0x52, 0x29, 0xbf, 0xb7, 0x26, 0x8f, 0xa0, 0xed, 0x60, 0x2f, 0xe0, 0xa5, 0xda,
- 0xe6, 0x49, 0xae, 0x34, 0x1a, 0xf4, 0x0e, 0xcc, 0xad, 0x15, 0xc0, 0xb2, 0xb8, 0xc9, 0xe6, 0xb5,
- 0xc8, 0x74, 0x67, 0x98, 0x4c, 0x93, 0x88, 0xf6, 0xc9, 0x1f, 0x0b, 0xb4, 0xd6, 0xc7, 0xc8, 0xf0,
- 0x7b, 0x5f, 0xe0, 0xb1, 0xb9, 0x2d, 0x32, 0xe5, 0x6f, 0x4f, 0x9c, 0x84, 0x20, 0xb7, 0x7b, 0x9d,
- 0x73, 0xc5, 0x57, 0x1a, 0x0d, 0x7a, 0x07, 0x66, 0xb7, 0xeb, 0x60, 0x59, 0x5c, 0x85, 0x73, 0xbb,
- 0x51, 0x2f, 0x93, 0xa9, 0xb5, 0x80, 0x4f, 0x7f, 0x67, 0x17, 0x29, 0x0d, 0x70, 0xa0, 0x51, 0xcb,
- 0x95, 0x8c, 0xf9, 0x2e, 0x17, 0x8e, 0x09, 0xaa, 0x1a, 0xfe, 0xa0, 0xeb, 0xe4, 0x4c, 0x95, 0x0e,
- 0x66, 0xfd, 0x8f, 0x16, 0x0b, 0xcd, 0xd8, 0x2b, 0xb3, 0xc7, 0xdb, 0xfc, 0x74, 0x6f, 0x66, 0x90,
- 0xd6, 0x93, 0x9a, 0x48, 0x24, 0xc5, 0xb0, 0x40, 0x38, 0x4b, 0x8d, 0x39, 0x73, 0x65, 0xd6, 0x61,
- 0x5b, 0x72, 0x79, 0x58, 0x2c, 0xb2, 0xe6, 0xac, 0x89, 0x9a, 0xea, 0x76, 0x13, 0x7f, 0x5b, 0x05,
- 0xe3, 0x86, 0xdb, 0xad, 0xb7, 0xed, 0xbb, 0x44, 0xda, 0xb2, 0x40, 0x6e, 0x68, 0x47, 0xe3, 0xd2,
- 0x63, 0x32, 0xfa, 0x8f, 0xa6, 0xd4, 0x6d, 0xa3, 0xc4, 0x60, 0x5b, 0x20, 0xa4, 0xe1, 0x63, 0xf7,
- 0x9b, 0x9c, 0xa9, 0x6b, 0xd4, 0x76, 0x5b, 0xd9, 0x98, 0x21, 0x1d, 0x1f, 0xb9, 0x8a, 0x9b, 0xd3,
- 0xbd, 0x3b, 0xd7, 0x6c, 0x36, 0x46, 0xe8, 0x60, 0x24, 0x8f, 0x2a, 0xc4, 0xab, 0xb6, 0xbd, 0xb0,
- 0x77, 0x88, 0xed, 0xae, 0x57, 0xb0, 0xfc, 0xc6, 0xdb, 0xb9, 0x1e, 0xd6, 0x62, 0x9c, 0x77, 0xa8,
- 0x8d, 0xe1, 0xe3, 0x10, 0x08, 0x77, 0x56, 0xec, 0xb1, 0xd1, 0x67, 0x4f, 0x60, 0x1a, 0x8d, 0x64,
- 0xbc, 0xb9, 0x18, 0x41, 0xc1, 0x95, 0xa6, 0x48, 0x3f, 0x7a, 0xd4, 0x97, 0x45, 0x21, 0xbc, 0xc4,
- 0xf3, 0x71, 0x76, 0x38, 0x1c, 0x43, 0xd1, 0x81, 0xa9, 0x39, 0x7b, 0x17, 0x90, 0x23, 0xf3, 0x9e,
- 0xf4, 0x79, 0x5e, 0xfb, 0x9c, 0x3f, 0xf8, 0x59, 0xe8, 0xb7, 0xc4, 0x6d, 0x5f, 0x40, 0xf4, 0x11,
- 0x26, 0xa7, 0x7e, 0x07, 0xe2, 0x30, 0xb3, 0xb9, 0xbc, 0xae, 0x37, 0xdb, 0x12, 0x3c, 0x26, 0x63,
- 0xd4, 0x54, 0xc7, 0x12, 0x09, 0xa0, 0x2c, 0x10, 0x0e, 0x62, 0xb2, 0x9f, 0x6c, 0x88, 0xd4, 0x89,
- 0x80, 0xb4, 0x21, 0x22, 0x11, 0x39, 0xd6, 0xe7, 0x1e, 0xd2, 0x1b, 0x4e, 0xcc, 0xa6, 0x80, 0x25,
- 0x93, 0x06, 0x1e, 0xc0, 0x60, 0x21, 0x6e, 0x5a, 0x40, 0x85, 0xe1, 0xc2, 0xc5, 0xb8, 0x93, 0xf5,
- 0xb6, 0xe4, 0xf2, 0xb0, 0x58, 0xa7, 0x0f, 0x9b, 0xd1, 0xf7, 0x17, 0xec, 0x26, 0xfe, 0xb6, 0x0a,
- 0x15, 0x38, 0xd8, 0x0c, 0x06, 0xb7, 0xdf, 0x4d, 0x04, 0x2c, 0xbb, 0xa5, 0x28, 0xea, 0x15, 0x2b,
- 0xcc, 0x39, 0xdd, 0x2c, 0x16, 0x59, 0x73, 0x56, 0xa5, 0x4d, 0x75, 0x3b, 0xe8, 0xde, 0xcc, 0xe3,
- 0xac, 0x4e, 0xb5, 0xd4, 0x6a, 0x3b, 0xcc, 0x8d, 0x4c, 0xf1, 0xef, 0xee, 0xbd, 0x45, 0xac, 0x88,
- 0xc1, 0x6c, 0x1f, 0x1e, 0x0f, 0x17, 0xf3, 0x5d, 0x0a, 0x4e, 0x09, 0x3a, 0x44, 0x62, 0xc1, 0xa2,
- 0xee, 0xd3, 0x19, 0x9f, 0xae, 0xa3, 0x3b, 0x4f, 0x75, 0xb1, 0x3c, 0x6f, 0xc4, 0xfb, 0xee, 0x93,
- 0xae, 0x89, 0xe8, 0x8e, 0x47, 0x5e, 0x50, 0xdd, 0x7a, 0xd8, 0xd0, 0x48, 0xa2, 0xa8, 0xae, 0x60,
- 0x9c, 0x94, 0x81, 0xa8, 0x54, 0x0a, 0x72, 0x01, 0xd9, 0xaf, 0xa2, 0x65, 0x76, 0xe9, 0x9c, 0x5c,
- 0xd9, 0x01, 0x05, 0x20, 0x10, 0xee, 0xac, 0x1b, 0xa1, 0x61, 0xce, 0x9e, 0xc0, 0x34, 0xd9, 0xc8,
- 0xa3, 0xdc, 0x2a, 0xbc, 0x5e, 0x10, 0xd0, 0xd6, 0xd5, 0xdb, 0xac, 0x49, 0x0e, 0x14, 0xa3, 0x21,
- 0x25, 0xe2, 0xec, 0x70, 0x38, 0x86, 0x61, 0xc1, 0x91, 0x72, 0xf6, 0x2e, 0xe3, 0x46, 0x25, 0xff,
- 0xeb, 0x1c, 0x6c, 0x06, 0x03, 0xba, 0x8e, 0xc7, 0x02, 0x16, 0xbc, 0xb3, 0x14, 0x75, 0xeb, 0xf4,
- 0x40, 0x5a, 0xf1, 0x11, 0xe9, 0xfd, 0x6b, 0x92, 0x0f, 0x69, 0xec, 0x27, 0x66, 0x53, 0x40, 0xf3,
- 0x48, 0xc0, 0x46, 0xba, 0x5d, 0xaa, 0x5e, 0x11, 0xd7, 0xcd, 0x10, 0xfa, 0x1a, 0x61, 0x48, 0xd5,
- 0x6d, 0x22, 0xaa, 0xca, 0x65, 0x2c, 0x3f, 0xd0, 0x46, 0xbf, 0xe6, 0xd4, 0xf9, 0x27, 0x6d, 0x2a,
- 0x28, 0xb7, 0x2e, 0x42, 0x21, 0xc8, 0xe1, 0xca, 0x3e, 0x71, 0x8a, 0x2f, 0x4f, 0xfa, 0x28, 0xbe,
- 0xff, 0xa6, 0x7b, 0x27, 0xf2, 0xde, 0x1f, 0xa2, 0x1d, 0xcf, 0xf9, 0x45, 0xd2, 0x08, 0xff, 0xab,
- 0x0a, 0x5d, 0xea, 0xf1, 0x99, 0x32, 0xa9, 0xd3, 0xee, 0x8d, 0xc3, 0x7b, 0x63, 0xdf, 0x0a, 0xce,
- 0x4f, 0xc8, 0x6e, 0x79, 0xdd, 0xd6, 0x77, 0xc9, 0x96, 0x43, 0xaf, 0x80, 0xd5, 0x02, 0x4f, 0x5a,
- 0x19, 0xef, 0xd5, 0x13, 0xe8, 0x2a, 0x11, 0x6e, 0xb0, 0xda, 0x39, 0xf7, 0x6a, 0xc1, 0x19, 0x1e,
- 0x53, 0xe8, 0xce, 0xf3, 0x98, 0xe5, 0xd3, 0x2f, 0x51, 0x3e, 0x16, 0xab, 0x6f, 0x4d, 0x53, 0x23,
- 0xf5, 0xfb, 0x91, 0xd6, 0x6b, 0xec, 0xb6, 0x71, 0xf3, 0x42, 0x3a, 0x3e, 0xb1, 0xd7, 0xf5, 0x65,
- 0xb9, 0x76, 0x6d, 0xd8, 0x6c, 0x8c, 0x13, 0xc0, 0x48, 0xdd, 0x54, 0x4b, 0x95, 0xaf, 0xb9, 0xa3,
- 0xcb, 0x31, 0xf5, 0xef, 0x96, 0x25, 0x5a, 0x8e, 0xe4, 0xc3, 0xca, 0x41, 0x27, 0xbd, 0xcb, 0x6c,
- 0x45, 0x95, 0x84, 0x88, 0x44, 0xe4, 0xde, 0x1a, 0x78, 0xce, 0x6c, 0xfb, 0xb6, 0xdd, 0x45, 0x94,
- 0x57, 0xa5, 0x74, 0x47, 0xc2, 0x2f, 0x28, 0x8f, 0x3d, 0x6c, 0x68, 0x24, 0x51, 0x54, 0x57, 0x30,
- 0xd7, 0x11, 0x55, 0x65, 0xd3, 0x16, 0xfe, 0x68, 0x23, 0xbe, 0x73, 0x6a, 0x9d, 0xf2, 0xd7, 0x15,
- 0x68, 0xed, 0xdf, 0x53, 0xc8, 0x35, 0x8a, 0x58, 0x31, 0x18, 0x66, 0x08, 0x29, 0xa9, 0x68, 0x4d,
- 0x4c, 0x8d, 0xfc, 0x0e, 0x07, 0x60, 0xa5, 0xb1, 0xbb, 0x9f, 0x6e, 0x75, 0x24, 0x78, 0x4c, 0xc6,
- 0x20, 0x2d, 0x99, 0xe9, 0x95, 0x9f, 0xd4, 0x49, 0xe6, 0xd5, 0x76, 0xf2, 0x33, 0xc8, 0x20, 0x98,
- 0x4a, 0x07, 0x1b, 0xe0, 0x70, 0xcf, 0xc2, 0x41, 0xe1, 0xe4, 0x2f, 0x5c, 0x05, 0x8c, 0x4a, 0x3d,
- 0x05, 0xcf, 0x75, 0x99, 0xad, 0x19, 0xb5, 0x88, 0x77, 0xa7, 0x80, 0xdc, 0xd0, 0x8e, 0x05, 0x67,
- 0xc6, 0x64, 0x37, 0xdd, 0x8f, 0x6b, 0xda, 0x85, 0x4b, 0xc0, 0xb6, 0x40, 0x8b, 0x01, 0xc6, 0x2d,
- 0x14, 0xba, 0x17, 0x21, 0xf1, 0x64, 0x91, 0x65, 0x1f, 0xd9, 0x45, 0xf6, 0xc6, 0x7d, 0x14, 0x5f,
- 0x9e, 0x53, 0xdc, 0xf2, 0x79, 0x6f, 0xee, 0x51, 0xef, 0x86, 0x9d, 0xc3, 0x69, 0x04, 0x9e, 0xb4,
- 0xd5, 0xd6, 0x08, 0x3f, 0xfe, 0x73, 0x62, 0x38, 0x15, 0x97, 0x4c, 0xcc, 0x82, 0x1f, 0xd5, 0xfd,
- 0x4d, 0x0f, 0x33, 0x23, 0xf0, 0xb3, 0xeb, 0x99, 0xa0, 0x6a, 0x90, 0x26, 0xca, 0xef, 0x4d, 0xb2,
- 0xce, 0xfe, 0x80, 0x76, 0x3b, 0x3c, 0xef, 0x06, 0x93, 0x64, 0x4a, 0x9d, 0xf7, 0x33, 0xce, 0x0b,
- 0x5a, 0xf0, 0xb6, 0x75, 0xdb, 0x61, 0xa8, 0x84, 0x92, 0x6f, 0x14, 0x25, 0xfd, 0xe8, 0x5a, 0x71,
- 0x3f, 0x48, 0xab, 0x14, 0x0a, 0x1a, 0xa2, 0xd7, 0x0c, 0x74, 0x0e, 0x2c, 0x78, 0xfd, 0x3f, 0x7d,
- 0x8a, 0xe9, 0xcb, 0xd3, 0x88, 0x0b, 0x7f, 0x34, 0xf0, 0x5f, 0xd8, 0x35, 0xaf, 0x79, 0x8a, 0xeb,
- 0x83, 0xf1, 0xb3, 0x55, 0xcb, 0x8f, 0x04, 0x9f, 0x33, 0x0e, 0xda, 0xbb, 0x3d, 0xdc, 0x83, 0xb9,
- 0xc3, 0xab, 0x42, 0x44, 0x22, 0x72, 0x6f, 0x0d, 0x3c, 0x67, 0x36, 0x9c, 0x5b, 0x8f, 0xc3, 0x4a,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x94, 0x0e, 0x36, 0x03, 0xe0, 0x5d, 0x47, 0x82, 0x01, 0x0b, 0x5e, 0xb8, 0x0a, 0xdb, 0x94, 0x7a,
- 0x1f, 0x65, 0x32, 0xfd, 0x9f, 0x85, 0x76, 0x9e, 0xea, 0xa1, 0x78, 0xde, 0x4b, 0x35, 0x1f, 0xe5,
- 0x98, 0xd9, 0x3b, 0x1c, 0x0e, 0xc0, 0x89, 0xa1, 0xb5, 0xfd, 0xdc, 0xea, 0x48, 0xf0, 0x98, 0x4f,
- },
- { /* 15 */
- 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79, 0x82, 0x53, 0x11, 0xf0, 0xcd,
- 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7, 0x37, 0x83, 0x91, 0xbd, 0x5b,
- 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9, 0x90, 0x58, 0x92, 0xad, 0x69,
- 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59, 0x28, 0x51, 0x68, 0x84, 0xbe,
- 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d, 0xf9, 0xc1, 0x13, 0x51, 0x50,
- 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11, 0x74, 0xb4, 0x15, 0x71, 0x34,
- 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7, 0x62, 0x82, 0x4c, 0x87, 0x83,
- 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44, 0x13, 0x95, 0x54, 0x07, 0xd0,
- 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40, 0x97, 0x04, 0xf2, 0xe8, 0xe6,
- 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1, 0xa4, 0xba, 0xb9, 0xfe, 0xae,
- 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a, 0x76, 0x4b, 0x78, 0xc5, 0xdc,
- 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b, 0x10, 0xf4, 0xee, 0xe9, 0x4c,
- 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c, 0xe5, 0x72, 0x50, 0x86, 0x29,
- 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60, 0x3d, 0x06, 0x8b, 0x9c, 0x95,
- 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb, 0x78, 0xf3, 0xb8, 0x4f, 0x01,
- 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b, 0xfd, 0xfc, 0xc9, 0xfa, 0x43,
- 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51, 0xe3, 0xb0, 0xe7, 0x99, 0xd2,
- 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4, 0x96, 0x9a, 0x25, 0xb2, 0x92,
- 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4, 0x01, 0x9e, 0xd7, 0x5a, 0x74,
- 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d, 0x6e, 0xc5, 0xe1, 0xb9, 0xb6,
- 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a, 0x31, 0x41, 0x26, 0xa2, 0xa0,
- 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22, 0xe8, 0xab, 0x2a, 0xe2, 0x68,
- 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7, 0x9d, 0x81, 0xe8, 0xc9, 0x28,
- 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9, 0x3a, 0x5a, 0xeb, 0xd9, 0x1a,
- 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72, 0x2a, 0xae, 0x05, 0x30, 0x56,
- 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5, 0x20, 0x2b, 0x1f, 0x11, 0x98,
- 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80, 0xed, 0x08, 0x27, 0x13, 0x0f,
- 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27, 0x4d, 0x8f, 0x44, 0x46, 0xb2,
- 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94, 0x3c, 0x98, 0x5c, 0xc6, 0xe1,
- 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef, 0xfc, 0x62, 0x1e, 0xa0, 0x37,
- 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15, 0xf0, 0x25, 0xb3, 0x9e, 0x02,
- 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30, 0xff, 0x03, 0xa4, 0x4e, 0xab,
- 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a, 0x4b, 0x4d, 0xf3, 0x59, 0x49,
- 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9, 0xc5, 0x59, 0x4f, 0x97, 0xb1,
- 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81, 0xcc, 0xbd, 0xef, 0x58, 0xe3,
- 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95, 0x1d, 0x2d, 0x94, 0x8d, 0x0d,
- 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0, 0x47, 0x0a, 0x5e, 0x67, 0x7c,
- 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64, 0xb9, 0x97, 0x2d, 0x73, 0xa3,
- 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b, 0x02, 0xff, 0x6d, 0xb4, 0xe8,
- 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a, 0xdc, 0x49, 0x01, 0xb1, 0xaf,
- 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49, 0x7d, 0x50, 0xb5, 0xbe, 0x66,
- 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96, 0x7e, 0x31, 0x0f, 0x50, 0xfa,
- 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6, 0xd4, 0x33, 0x76, 0x24, 0x89,
- 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45, 0x32, 0x20, 0x9c, 0x4c, 0x3c,
- 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4, 0x54, 0x9f, 0x0a, 0x60, 0xac,
- 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29, 0x40, 0x56, 0x3e, 0x22, 0xf3,
- 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10, 0x55, 0x01, 0xdd, 0x3a, 0xd8,
- 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae, 0x4a, 0xd3, 0x24, 0x03, 0x3d,
- 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2, 0x05, 0xa3, 0x0d, 0xf1, 0x67,
- 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab, 0xef, 0xf7, 0x4a, 0xa7, 0xe7,
- 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d, 0xc4, 0xc7, 0x98, 0xcd, 0xc5,
- 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e, 0xe0, 0xd1, 0x5d, 0x77, 0x4e,
- 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50, 0xc2, 0x05, 0x2f, 0xd2, 0x3e,
- 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32, 0xbd, 0xaa, 0xf7, 0xd8, 0xb0,
- 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85, 0x48, 0x2c, 0x49, 0xb7, 0xd5,
- 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce, 0x77, 0xd5, 0xaf, 0x9f, 0xa8,
- 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58, 0x09, 0xe4, 0xa0, 0xcf, 0x52,
- 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0, 0x7a, 0x0c, 0xd5, 0xfb, 0xe9,
- 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5, 0xdf, 0x28, 0xbb, 0x5f, 0x33,
- 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48, 0x5c, 0xe5, 0x7d, 0xf5, 0x8a,
- 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20, 0xaa, 0x02, 0x79, 0x74, 0x73,
- 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99, 0x52, 0x5d, 0xbd, 0x7f, 0x57,
- 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b, 0xa8, 0xfd, 0x14, 0xc0, 0x9b,
- 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54, 0x46, 0x94, 0x89, 0x3d, 0x08,
- 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0, 0x85, 0x0f, 0x71, 0xb5, 0x42,
- 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47, 0x70, 0x89, 0xcf, 0xda, 0x27,
- 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c, 0xd8, 0x74, 0xdb, 0x1a, 0xbc,
- 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3, 0x4c, 0x11, 0x93, 0x1c, 0xc6,
- 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1, 0x66, 0xbf, 0x96, 0x2c, 0x90,
- 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05, 0xa5, 0x24, 0x6e, 0xa4, 0xda,
- 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1, 0x33, 0xbe, 0x4b, 0x16, 0x48,
- 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61, 0x1c, 0xb3, 0x43, 0xd7, 0x79,
- 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97, 0x5f, 0x84, 0xc7, 0x1b, 0x16,
- 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff, 0xa9, 0x63, 0xc3, 0x9a, 0xef,
- 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56, 0x04, 0x3d, 0xda, 0xab, 0x13,
- 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac, 0x08, 0x7a, 0x77, 0x95, 0x26,
- 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38, 0x34, 0xe2, 0x2b, 0x53, 0xc7,
- 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21, 0x8b, 0xb7, 0xb1, 0x3f, 0x9f,
- 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2, 0x92, 0xa7, 0xff, 0x19, 0x81,
- 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f, 0xd3, 0x6f, 0x16, 0x61, 0x06,
- 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25, 0x0f, 0x26, 0x17, 0xd0, 0xa9,
- 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88, 0x26, 0xe9, 0xa8, 0x0e, 0x63,
- 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b, 0xc0, 0xfa, 0x42, 0x66, 0xd6,
- 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1, 0x5b, 0xb9, 0x1d, 0xb0, 0x05,
- 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7, 0xa0, 0x87, 0x63, 0x55, 0xbd,
- 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2, 0x38, 0xa5, 0x86, 0x6d, 0xf2,
- 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87, 0x0a, 0x85, 0x1a, 0x21, 0xce,
- 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c, 0x4f, 0x70, 0x29, 0xf2, 0x5a,
- 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28, 0x61, 0xe3, 0xf6, 0x69, 0x1f,
- 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55, 0x67, 0x21, 0x41, 0x76, 0xe4,
- 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa, 0xce, 0x42, 0x82, 0xec, 0x0b,
- 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d, 0xd6, 0xcc, 0x1b, 0x90, 0x61,
- 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01, 0x21, 0xb5, 0xc8, 0x4b, 0xec,
- 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e, 0x65, 0xde, 0x2c, 0xc2, 0x0c,
- 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76, 0xae, 0x3f, 0xa3, 0xdf, 0x60,
- 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42, 0xd5, 0xad, 0xa1, 0x7e, 0xfd,
- 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe, 0x1f, 0xd2, 0xf9, 0x39, 0xe5,
- 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a, 0xb4, 0x4e, 0x57, 0x17, 0xe2,
- 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd, 0x14, 0xc9, 0x34, 0x42, 0x5f,
- 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18, 0x9e, 0xe0, 0x52, 0x27, 0xb4,
- 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3, 0xe6, 0x13, 0xea, 0x68, 0xb5,
- 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6, 0xbc, 0x34, 0x20, 0x82, 0xc4,
- 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf, 0x03, 0x61, 0xba, 0xee, 0x9c,
- 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82, 0xaf, 0xa1, 0x74, 0x85, 0x14,
- 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02, 0x42, 0xa9, 0x53, 0x96, 0x1b,
- 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc, 0xca, 0x7f, 0x58, 0x47, 0x18,
- 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e, 0x0d, 0xd9, 0x7a, 0x64, 0x41,
- 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a, 0xe1, 0x4f, 0x8a, 0x2d, 0x3a,
- 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17, 0xb2, 0x8c, 0xe0, 0x08, 0x19,
- 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb, 0xd2, 0xf1, 0xc1, 0x3b, 0x72,
- 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f, 0x79, 0x6d, 0x6f, 0x15, 0x75,
- 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70, 0x68, 0x07, 0x56, 0xa6, 0x4d,
- 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f, 0xee, 0x69, 0x9d, 0xfd, 0x93,
- 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36, 0x39, 0x3b, 0x51, 0x37, 0x86,
- 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9, 0xf8, 0x5f, 0xc4, 0x0b, 0x24,
- 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2, 0x6d, 0xa4, 0x5b, 0x57, 0x2a,
- 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d, 0x83, 0xcd, 0xc6, 0xaa, 0xb9,
- 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41, 0xb6, 0xb1, 0x3a, 0xa3, 0x0a,
- 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98, 0x73, 0xe8, 0x75, 0x34, 0xbb,
- 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63, 0x5e, 0x1a, 0x10, 0x41, 0x62,
- 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c, 0x1a, 0x71, 0xf4, 0xc8, 0x82,
- 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2, 0xc7, 0xa6, 0x22, 0x23, 0x59,
- 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04, 0x84, 0x91, 0xa6, 0xef, 0x36,
- 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d, 0x91, 0xc6, 0x45, 0xf7, 0x1d,
- 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed, 0xbe, 0xcb, 0x4d, 0x36, 0x2c,
- 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b, 0x57, 0xfe, 0xb0, 0x8e, 0x30,
- 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea, 0x59, 0x46, 0x70, 0x04, 0xed,
- 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84, 0x69, 0x99, 0x81, 0xfc, 0x39,
- 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f, 0x44, 0x6b, 0xe4, 0x89, 0xe0,
- 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8, 0x4e, 0xee, 0xfe, 0xa8, 0x2e,
- 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34, 0x7b, 0x92, 0x02, 0xa1, 0x9d,
- 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93, 0xdb, 0x15, 0x61, 0xf4, 0x20,
- 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d, 0x06, 0xc2, 0xb7, 0x1f, 0xfb,
- 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06, 0xc6, 0x38, 0xf5, 0x79, 0x2d,
- 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37, 0x18, 0x8e, 0x99, 0x7c, 0x6a,
- 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12, 0x17, 0xa8, 0x8e, 0xac, 0xc3,
- 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1, 0x0e, 0xb8, 0xc0, 0x8a, 0xdd,
- 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65, 0x98, 0x22, 0xe5, 0x38, 0x4f,
- 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86, 0x2b, 0x30, 0xd2, 0x6a, 0x22,
- 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b, 0x45, 0xf5, 0x33, 0xd3, 0x94,
- 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f, 0xc1, 0x64, 0x95, 0x3c, 0xa2,
- 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad, 0x29, 0xcf, 0xbf, 0xde, 0xca,
- 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53, 0xa1, 0x19, 0xb4, 0x0f, 0xc9,
- 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba, 0x9b, 0x43, 0x5f, 0xd6, 0xd3,
- 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19, 0xbf, 0x55, 0x9a, 0x6c, 0x58,
- 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8, 0x8c, 0xeb, 0xd1, 0x7a, 0x10,
- 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd, 0x41, 0xc8, 0xe9, 0x78, 0x87,
- 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c, 0x27, 0x77, 0x7f, 0x54, 0x17,
- 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68, 0xf6, 0xe7, 0x04, 0x81, 0xf9,
- 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24, 0x2e, 0x93, 0xdf, 0x9b, 0x45,
- 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa, 0x0c, 0x47, 0xad, 0x3e, 0x35,
- 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a, 0x89, 0x48, 0xdc, 0x8b, 0x77,
- 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43, 0xf4, 0x18, 0x69, 0x35, 0x11,
- 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4, 0xc3, 0x9b, 0xf8, 0x88, 0x4a,
- 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89, 0x07, 0x5c, 0x60, 0x45, 0x8f,
- 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0, 0x2f, 0x0d, 0x08, 0xc1, 0x31,
- 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6, 0x81, 0x32, 0xab, 0x1e, 0x51,
- 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7, 0xf5, 0x86, 0xbe, 0x6f, 0x65,
- 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb, 0x87, 0xf0, 0x1c, 0x01, 0xaa,
- 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f, 0x94, 0x65, 0x48, 0x06, 0x7a,
- 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6, 0xe9, 0x35, 0xfd, 0xb8, 0x1c,
- 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e, 0x9a, 0xdd, 0x88, 0x8c, 0xa7,
- 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e, 0x30, 0xdf, 0xf1, 0xf8, 0xd4,
- 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3, 0xb3, 0x12, 0x37, 0x52, 0x6d,
- 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee, 0xdd, 0xd7, 0xd6, 0xeb, 0xdb,
- 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57, 0x25, 0x88, 0x12, 0xe0, 0xff,
- 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39, 0x15, 0x57, 0xe3, 0x18, 0x2b,
- 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66, 0xfb, 0x3e, 0x7e, 0xe5, 0xb8,
- 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67, 0xda, 0x8b, 0xb6, 0xae, 0x54,
- 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc, 0x35, 0x7c, 0xfc, 0x09, 0xb3,
- 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75, 0xcd, 0x23, 0x38, 0x02, 0x97,
- 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb, 0x2d, 0xf2, 0x65, 0x75, 0xd9,
- 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b, 0x6a, 0xf8, 0x3b, 0x12, 0xa5,
- 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69, 0xd7, 0x52, 0xcc, 0xca, 0x15,
- 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5, 0xe2, 0x2e, 0x30, 0xc3, 0xa6,
- 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b, 0x95, 0xfb, 0x9f, 0x5c, 0x0e,
- 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc, 0x60, 0x7d, 0x21, 0x33, 0x6b,
- 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03, 0x63, 0x1c, 0x9b, 0xdd, 0xf7,
- 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f, 0x11, 0x6a, 0x39, 0xb3, 0x38,
- 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c, 0xf7, 0x79, 0xd3, 0xdb, 0x8d,
- 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe, 0x88, 0xd6, 0x0b, 0xd1, 0x03,
- 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33, 0x9c, 0x1f, 0x3f, 0x93, 0x5c,
- 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74, 0xec, 0x96, 0xf0, 0x49, 0x7b,
- 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca, 0xf3, 0x44, 0x09, 0x70, 0x9e,
- 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec, 0x9f, 0x7e, 0x85, 0x7d, 0xc0,
- 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35, 0x5a, 0x27, 0xca, 0xea, 0x71,
- 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8, 0xb1, 0xed, 0x5a, 0xe6, 0x85,
- 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d, 0xac, 0xc0, 0xce, 0x6b, 0x88,
- 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0, 0x12, 0x0b, 0x83, 0x5d, 0xa4,
- 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4, 0xab, 0x9c, 0xae, 0x2e, 0x07,
- 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf, 0x56, 0x60, 0x67, 0xd4, 0x44,
- 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5, 0x8a, 0x29, 0x66, 0x65, 0xeb,
- 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92, 0xfa, 0xa0, 0xa9, 0xbf, 0xcc,
- 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e, 0xa7, 0xdb, 0x03, 0x10, 0x32,
- 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07, 0xe7, 0x8d, 0x3d, 0x32, 0xc1,
- 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8, 0xd9, 0xea, 0x0c, 0x40, 0xc8,
- 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a, 0x64, 0x40, 0xfb, 0x98, 0x78,
- 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9, 0x6f, 0x5b, 0x36, 0xe3, 0xc2,
- 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13, 0x36, 0x1d, 0x46, 0xe7, 0x2f,
- 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5, 0x75, 0x2a, 0xc2, 0x2b, 0x40,
- 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23, 0xc9, 0x1e, 0xe2, 0xa9, 0x84,
- 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf, 0x3e, 0x67, 0x31, 0x72, 0x09,
- 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde, 0x22, 0xd4, 0x72, 0xa5, 0x70,
- 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc, 0x5d, 0x7b, 0xaa, 0xaf, 0xfe,
- 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d, 0x3b, 0xc4, 0x3c, 0x83, 0x6e,
- 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6, 0x43, 0x37, 0x84, 0xcc, 0x6f,
- 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71, 0x49, 0xb2, 0x9e, 0xed, 0xa1,
- 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73, 0x0b, 0x1b, 0xcd, 0x7b, 0xba,
- 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08, 0xcb, 0xe1, 0x8f, 0x1d, 0x6c,
- 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3, 0x71, 0x17, 0x18, 0x80, 0x53,
- 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1, 0xf1, 0xbb, 0x64, 0xc4, 0x76,
- 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c, 0x8d, 0x75, 0x06, 0x20, 0x64,
- 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8, 0x1b, 0xef, 0x23, 0x92, 0xf6,
- 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90, 0xb8, 0x09, 0xfa, 0x29, 0xd7,
- 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46, 0x51, 0x3c, 0x07, 0x91, 0xcb,
- 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e, 0xb5, 0xd0, 0x80, 0x4d, 0x96,
- 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2, 0x50, 0xa2, 0xd0, 0xcb, 0xbf,
- 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd, 0x7c, 0xce, 0x62, 0xe4, 0x12,
- 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52, 0x80, 0xac, 0x7c, 0x44, 0x25,
- 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb, 0xba, 0xf6, 0x97, 0x9d, 0x3f,
- 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91, 0x99, 0xbc, 0x32, 0x62, 0x3b,
- 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8, 0xe4, 0xec, 0x87, 0xdc, 0x5d,
- 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3, 0x19, 0x10, 0x4e, 0x26, 0x1e,
- 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78, 0xa3, 0xe6, 0xd9, 0xbb, 0x21,
- 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77, 0x8f, 0x8a, 0x6b, 0x94, 0x8c,
- 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b, 0x3f, 0xf9, 0xe6, 0x28, 0x7d,
- 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d, 0x53, 0xc3, 0x6a, 0x25, 0x23,
- 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62, 0x7f, 0xaf, 0xd8, 0x0a, 0x8e,
- 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16, 0x93, 0x39, 0x28, 0x43, 0xf5,
- 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3, 0x24, 0x16, 0xc5, 0xba, 0x8b,
- 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26, 0x6c, 0x3a, 0x8c, 0x0d, 0x5e,
- 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09, 0xea, 0x54, 0x47, 0x56, 0x80,
- 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd, 0xeb, 0xca, 0x90, 0x0c, 0xf4,
- 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f, 0x2c, 0x6c, 0xb2, 0x2f, 0xad,
- 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f, 0xbb, 0x68, 0x40, 0xc7, 0x4b,
- 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c, 0xb0, 0x73, 0x8d, 0xbc, 0xf1,
- 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf, 0x6b, 0x66, 0xec, 0x48, 0xd1,
- 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f, 0x86, 0x6e, 0xcb, 0x5b, 0xde,
- 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c, 0x72, 0x76, 0xa2, 0x6e, 0xcf,
- 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5, 0xb7, 0x2f, 0xed, 0xf9, 0x7e,
- 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7, 0xc8, 0x80, 0x35, 0xf3, 0xf0,
- 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31, 0xde, 0xb6, 0x6c, 0x05, 0x47,
- 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda, 0xa6, 0x45, 0xd4, 0x4a, 0x46,
- 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4, 0xfe, 0x9d, 0x73, 0x14, 0xdf,
- 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a, 0x1e, 0x4c, 0x2e, 0x63, 0x91,
- 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14, 0xd1, 0x90, 0x7b, 0xd5, 0xee,
- 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a, 0x23, 0x4a, 0xa5, 0xff, 0x04,
- 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83, 0x8e, 0x14, 0xbc, 0xce, 0xf8,
- 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0, 0xd0, 0x0e, 0xac, 0x8f, 0x9a,
- 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e, 0x58, 0xd8, 0xa7, 0x5e, 0x99,
- 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e, 0xf2, 0xda, 0xde, 0x2a, 0xea,
- 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6, 0x16, 0x36, 0x59, 0xf6, 0xb7,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9, 0xad, 0x5e, 0x19, 0x31, 0xfc,
- 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c, 0xa2, 0x78, 0x0e, 0xe1, 0x55,
- 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e, 0xcf, 0xdc, 0x55, 0xb6, 0x7f,
- },
+static const uint8_t kuz_table_inv_LS[16][256 * 16] = {
+ { /* 0 */
+ 0xa5, 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79,
+ 0x82, 0x53, 0x11, 0xf0,
+ 0x2d, 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7,
+ 0x37, 0x83, 0x91, 0xbd,
+ 0x32, 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9,
+ 0x90, 0x58, 0x92, 0xad,
+ 0x8f, 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59,
+ 0x28, 0x51, 0x68, 0x84,
+ 0x0e, 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d,
+ 0xf9, 0xc1, 0x13, 0x51,
+ 0x30, 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11,
+ 0x74, 0xb4, 0x15, 0x71,
+ 0x38, 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7,
+ 0x62, 0x82, 0x4c, 0x87,
+ 0xc0, 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44,
+ 0x13, 0x95, 0x54, 0x07,
+ 0x54, 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40,
+ 0x97, 0x04, 0xf2, 0xe8,
+ 0xe6, 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1,
+ 0xa4, 0xba, 0xb9, 0xfe,
+ 0x9e, 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a,
+ 0x76, 0x4b, 0x78, 0xc5,
+ 0x39, 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b,
+ 0x10, 0xf4, 0xee, 0xe9,
+ 0x55, 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c,
+ 0xe5, 0x72, 0x50, 0x86,
+ 0x7e, 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60,
+ 0x3d, 0x06, 0x8b, 0x9c,
+ 0x52, 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb,
+ 0x78, 0xf3, 0xb8, 0x4f,
+ 0x91, 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b,
+ 0xfd, 0xfc, 0xc9, 0xfa,
+ 0x64, 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51,
+ 0xe3, 0xb0, 0xe7, 0x99,
+ 0x03, 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4,
+ 0x96, 0x9a, 0x25, 0xb2,
+ 0x57, 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4,
+ 0x01, 0x9e, 0xd7, 0x5a,
+ 0x5a, 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d,
+ 0x6e, 0xc5, 0xe1, 0xb9,
+ 0x1c, 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a,
+ 0x31, 0x41, 0x26, 0xa2,
+ 0x60, 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22,
+ 0xe8, 0xab, 0x2a, 0xe2,
+ 0x07, 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7,
+ 0x9d, 0x81, 0xe8, 0xc9,
+ 0x18, 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9,
+ 0x3a, 0x5a, 0xeb, 0xd9,
+ 0x21, 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72,
+ 0x2a, 0xae, 0x05, 0x30,
+ 0x72, 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5,
+ 0x20, 0x2b, 0x1f, 0x11,
+ 0xa8, 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80,
+ 0xed, 0x08, 0x27, 0x13,
+ 0xd1, 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27,
+ 0x4d, 0x8f, 0x44, 0x46,
+ 0x29, 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94,
+ 0x3c, 0x98, 0x5c, 0xc6,
+ 0xc6, 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef,
+ 0xfc, 0x62, 0x1e, 0xa0,
+ 0xa4, 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15,
+ 0xf0, 0x25, 0xb3, 0x9e,
+ 0x3f, 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30,
+ 0xff, 0x03, 0xa4, 0x4e,
+ 0xe0, 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a,
+ 0x4b, 0x4d, 0xf3, 0x59,
+ 0x27, 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9,
+ 0xc5, 0x59, 0x4f, 0x97,
+ 0x8d, 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81,
+ 0xcc, 0xbd, 0xef, 0x58,
+ 0x0c, 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95,
+ 0x1d, 0x2d, 0x94, 0x8d,
+ 0x82, 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0,
+ 0x47, 0x0a, 0x5e, 0x67,
+ 0xea, 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64,
+ 0xb9, 0x97, 0x2d, 0x73,
+ 0xae, 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b,
+ 0x02, 0xff, 0x6d, 0xb4,
+ 0xb4, 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a,
+ 0xdc, 0x49, 0x01, 0xb1,
+ 0x9a, 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49,
+ 0x7d, 0x50, 0xb5, 0xbe,
+ 0x63, 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96,
+ 0x7e, 0x31, 0x0f, 0x50,
+ 0x49, 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6,
+ 0xd4, 0x33, 0x76, 0x24,
+ 0xe5, 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45,
+ 0x32, 0x20, 0x9c, 0x4c,
+ 0x42, 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4,
+ 0x54, 0x9f, 0x0a, 0x60,
+ 0xe4, 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29,
+ 0x40, 0x56, 0x3e, 0x22,
+ 0x15, 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10,
+ 0x55, 0x01, 0xdd, 0x3a,
+ 0xb7, 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae,
+ 0x4a, 0xd3, 0x24, 0x03,
+ 0xc8, 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2,
+ 0x05, 0xa3, 0x0d, 0xf1,
+ 0x06, 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab,
+ 0xef, 0xf7, 0x4a, 0xa7,
+ 0x70, 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d,
+ 0xc4, 0xc7, 0x98, 0xcd,
+ 0x9d, 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e,
+ 0xe0, 0xd1, 0x5d, 0x77,
+ 0x41, 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50,
+ 0xc2, 0x05, 0x2f, 0xd2,
+ 0x75, 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32,
+ 0xbd, 0xaa, 0xf7, 0xd8,
+ 0x19, 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85,
+ 0x48, 0x2c, 0x49, 0xb7,
+ 0xc9, 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce,
+ 0x77, 0xd5, 0xaf, 0x9f,
+ 0xaa, 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58,
+ 0x09, 0xe4, 0xa0, 0xcf,
+ 0xfc, 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0,
+ 0x7a, 0x0c, 0xd5, 0xfb,
+ 0x4d, 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5,
+ 0xdf, 0x28, 0xbb, 0x5f,
+ 0xbf, 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48,
+ 0x5c, 0xe5, 0x7d, 0xf5,
+ 0x2a, 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20,
+ 0xaa, 0x02, 0x79, 0x74,
+ 0x73, 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99,
+ 0x52, 0x5d, 0xbd, 0x7f,
+ 0x84, 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b,
+ 0xa8, 0xfd, 0x14, 0xc0,
+ 0xd5, 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54,
+ 0x46, 0x94, 0x89, 0x3d,
+ 0xc3, 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0,
+ 0x85, 0x0f, 0x71, 0xb5,
+ 0xaf, 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47,
+ 0x70, 0x89, 0xcf, 0xda,
+ 0x2b, 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c,
+ 0xd8, 0x74, 0xdb, 0x1a,
+ 0x86, 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3,
+ 0x4c, 0x11, 0x93, 0x1c,
+ 0xa7, 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1,
+ 0x66, 0xbf, 0x96, 0x2c,
+ 0xb1, 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05,
+ 0xa5, 0x24, 0x6e, 0xa4,
+ 0xb2, 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1,
+ 0x33, 0xbe, 0x4b, 0x16,
+ 0x5b, 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61,
+ 0x1c, 0xb3, 0x43, 0xd7,
+ 0x46, 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97,
+ 0x5f, 0x84, 0xc7, 0x1b,
+ 0xd3, 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff,
+ 0xa9, 0x63, 0xc3, 0x9a,
+ 0x9f, 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56,
+ 0x04, 0x3d, 0xda, 0xab,
+ 0xfd, 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac,
+ 0x08, 0x7a, 0x77, 0x95,
+ 0xd4, 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38,
+ 0x34, 0xe2, 0x2b, 0x53,
+ 0x0f, 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21,
+ 0x8b, 0xb7, 0xb1, 0x3f,
+ 0x9c, 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2,
+ 0x92, 0xa7, 0xff, 0x19,
+ 0x2f, 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f,
+ 0xd3, 0x6f, 0x16, 0x61,
+ 0x9b, 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25,
+ 0x0f, 0x26, 0x17, 0xd0,
+ 0x43, 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88,
+ 0x26, 0xe9, 0xa8, 0x0e,
+ 0xef, 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b,
+ 0xc0, 0xfa, 0x42, 0x66,
+ 0xd9, 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1,
+ 0x5b, 0xb9, 0x1d, 0xb0,
+ 0x79, 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7,
+ 0xa0, 0x87, 0x63, 0x55,
+ 0xb6, 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2,
+ 0x38, 0xa5, 0x86, 0x6d,
+ 0x53, 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87,
+ 0x0a, 0x85, 0x1a, 0x21,
+ 0x7f, 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c,
+ 0x4f, 0x70, 0x29, 0xf2,
+ 0xc1, 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28,
+ 0x61, 0xe3, 0xf6, 0x69,
+ 0xf0, 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55,
+ 0x67, 0x21, 0x41, 0x76,
+ 0x23, 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa,
+ 0xce, 0x42, 0x82, 0xec,
+ 0xe7, 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d,
+ 0xd6, 0xcc, 0x1b, 0x90,
+ 0x25, 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01,
+ 0x21, 0xb5, 0xc8, 0x4b,
+ 0x5e, 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e,
+ 0x65, 0xde, 0x2c, 0xc2,
+ 0xb5, 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76,
+ 0xae, 0x3f, 0xa3, 0xdf,
+ 0x1e, 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42,
+ 0xd5, 0xad, 0xa1, 0x7e,
+ 0xa2, 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe,
+ 0x1f, 0xd2, 0xf9, 0x39,
+ 0xdf, 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a,
+ 0xb4, 0x4e, 0x57, 0x17,
+ 0xa6, 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd,
+ 0x14, 0xc9, 0x34, 0x42,
+ 0xfe, 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18,
+ 0x9e, 0xe0, 0x52, 0x27,
+ 0xac, 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3,
+ 0xe6, 0x13, 0xea, 0x68,
+ 0x22, 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6,
+ 0xbc, 0x34, 0x20, 0x82,
+ 0xf9, 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf,
+ 0x03, 0x61, 0xba, 0xee,
+ 0xe2, 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82,
+ 0xaf, 0xa1, 0x74, 0x85,
+ 0x4a, 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02,
+ 0x42, 0xa9, 0x53, 0x96,
+ 0xbc, 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc,
+ 0xca, 0x7f, 0x58, 0x47,
+ 0x35, 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e,
+ 0x0d, 0xd9, 0x7a, 0x64,
+ 0xca, 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a,
+ 0xe1, 0x4f, 0x8a, 0x2d,
+ 0xee, 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17,
+ 0xb2, 0x8c, 0xe0, 0x08,
+ 0x78, 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb,
+ 0xd2, 0xf1, 0xc1, 0x3b,
+ 0x05, 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f,
+ 0x79, 0x6d, 0x6f, 0x15,
+ 0x6b, 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70,
+ 0x68, 0x07, 0x56, 0xa6,
+ 0x51, 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f,
+ 0xee, 0x69, 0x9d, 0xfd,
+ 0xe1, 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36,
+ 0x39, 0x3b, 0x51, 0x37,
+ 0x59, 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9,
+ 0xf8, 0x5f, 0xc4, 0x0b,
+ 0xa3, 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2,
+ 0x6d, 0xa4, 0x5b, 0x57,
+ 0xf2, 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d,
+ 0x83, 0xcd, 0xc6, 0xaa,
+ 0x71, 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41,
+ 0xb6, 0xb1, 0x3a, 0xa3,
+ 0x56, 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98,
+ 0x73, 0xe8, 0x75, 0x34,
+ 0x11, 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63,
+ 0x5e, 0x1a, 0x10, 0x41,
+ 0x6a, 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c,
+ 0x1a, 0x71, 0xf4, 0xc8,
+ 0x89, 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2,
+ 0xc7, 0xa6, 0x22, 0x23,
+ 0x94, 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04,
+ 0x84, 0x91, 0xa6, 0xef,
+ 0x65, 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d,
+ 0x91, 0xc6, 0x45, 0xf7,
+ 0x8c, 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed,
+ 0xbe, 0xcb, 0x4d, 0x36,
+ 0xbb, 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b,
+ 0x57, 0xfe, 0xb0, 0x8e,
+ 0x77, 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea,
+ 0x59, 0x46, 0x70, 0x04,
+ 0x3c, 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84,
+ 0x69, 0x99, 0x81, 0xfc,
+ 0x7b, 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f,
+ 0x44, 0x6b, 0xe4, 0x89,
+ 0x28, 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8,
+ 0x4e, 0xee, 0xfe, 0xa8,
+ 0xab, 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34,
+ 0x7b, 0x92, 0x02, 0xa1,
+ 0xd2, 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93,
+ 0xdb, 0x15, 0x61, 0xf4,
+ 0x31, 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d,
+ 0x06, 0xc2, 0xb7, 0x1f,
+ 0xde, 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06,
+ 0xc6, 0x38, 0xf5, 0x79,
+ 0xc4, 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37,
+ 0x18, 0x8e, 0x99, 0x7c,
+ 0x5f, 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12,
+ 0x17, 0xa8, 0x8e, 0xac,
+ 0xcc, 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1,
+ 0x0e, 0xb8, 0xc0, 0x8a,
+ 0xcf, 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65,
+ 0x98, 0x22, 0xe5, 0x38,
+ 0x76, 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86,
+ 0x2b, 0x30, 0xd2, 0x6a,
+ 0x2c, 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b,
+ 0x45, 0xf5, 0x33, 0xd3,
+ 0xb8, 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f,
+ 0xc1, 0x64, 0x95, 0x3c,
+ 0xd8, 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad,
+ 0x29, 0xcf, 0xbf, 0xde,
+ 0x2e, 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53,
+ 0xa1, 0x19, 0xb4, 0x0f,
+ 0x36, 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba,
+ 0x9b, 0x43, 0x5f, 0xd6,
+ 0xdb, 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19,
+ 0xbf, 0x55, 0x9a, 0x6c,
+ 0x69, 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8,
+ 0x8c, 0xeb, 0xd1, 0x7a,
+ 0xb3, 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd,
+ 0x41, 0xc8, 0xe9, 0x78,
+ 0x14, 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c,
+ 0x27, 0x77, 0x7f, 0x54,
+ 0x95, 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68,
+ 0xf6, 0xe7, 0x04, 0x81,
+ 0xbe, 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24,
+ 0x2e, 0x93, 0xdf, 0x9b,
+ 0x62, 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa,
+ 0x0c, 0x47, 0xad, 0x3e,
+ 0xa1, 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a,
+ 0x89, 0x48, 0xdc, 0x8b,
+ 0x3b, 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43,
+ 0xf4, 0x18, 0x69, 0x35,
+ 0x16, 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4,
+ 0xc3, 0x9b, 0xf8, 0x88,
+ 0x66, 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89,
+ 0x07, 0x5c, 0x60, 0x45,
+ 0xe9, 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0,
+ 0x2f, 0x0d, 0x08, 0xc1,
+ 0x5c, 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6,
+ 0x81, 0x32, 0xab, 0x1e,
+ 0x6c, 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7,
+ 0xf5, 0x86, 0xbe, 0x6f,
+ 0x6d, 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb,
+ 0x87, 0xf0, 0x1c, 0x01,
+ 0xad, 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f,
+ 0x94, 0x65, 0x48, 0x06,
+ 0x37, 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6,
+ 0xe9, 0x35, 0xfd, 0xb8,
+ 0x61, 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e,
+ 0x9a, 0xdd, 0x88, 0x8c,
+ 0x4b, 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e,
+ 0x30, 0xdf, 0xf1, 0xf8,
+ 0xb9, 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3,
+ 0xb3, 0x12, 0x37, 0x52,
+ 0xe3, 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee,
+ 0xdd, 0xd7, 0xd6, 0xeb,
+ 0xba, 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57,
+ 0x25, 0x88, 0x12, 0xe0,
+ 0xf1, 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39,
+ 0x15, 0x57, 0xe3, 0x18,
+ 0xa0, 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66,
+ 0xfb, 0x3e, 0x7e, 0xe5,
+ 0x85, 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67,
+ 0xda, 0x8b, 0xb6, 0xae,
+ 0x83, 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc,
+ 0x35, 0x7c, 0xfc, 0x09,
+ 0xda, 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75,
+ 0xcd, 0x23, 0x38, 0x02,
+ 0x47, 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb,
+ 0x2d, 0xf2, 0x65, 0x75,
+ 0xc5, 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b,
+ 0x6a, 0xf8, 0x3b, 0x12,
+ 0xb0, 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69,
+ 0xd7, 0x52, 0xcc, 0xca,
+ 0x33, 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5,
+ 0xe2, 0x2e, 0x30, 0xc3,
+ 0xfa, 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b,
+ 0x95, 0xfb, 0x9f, 0x5c,
+ 0x96, 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc,
+ 0x60, 0x7d, 0x21, 0x33,
+ 0x6f, 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03,
+ 0x63, 0x1c, 0x9b, 0xdd,
+ 0x6e, 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f,
+ 0x11, 0x6a, 0x39, 0xb3,
+ 0xc2, 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c,
+ 0xf7, 0x79, 0xd3, 0xdb,
+ 0xf6, 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe,
+ 0x88, 0xd6, 0x0b, 0xd1,
+ 0x50, 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33,
+ 0x9c, 0x1f, 0x3f, 0x93,
+ 0xff, 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74,
+ 0xec, 0x96, 0xf0, 0x49,
+ 0x5d, 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca,
+ 0xf3, 0x44, 0x09, 0x70,
+ 0xa9, 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec,
+ 0x9f, 0x7e, 0x85, 0x7d,
+ 0x8e, 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35,
+ 0x5a, 0x27, 0xca, 0xea,
+ 0x17, 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8,
+ 0xb1, 0xed, 0x5a, 0xe6,
+ 0x1b, 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d,
+ 0xac, 0xc0, 0xce, 0x6b,
+ 0x97, 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0,
+ 0x12, 0x0b, 0x83, 0x5d,
+ 0x7d, 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4,
+ 0xab, 0x9c, 0xae, 0x2e,
+ 0xec, 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf,
+ 0x56, 0x60, 0x67, 0xd4,
+ 0x58, 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5,
+ 0x8a, 0x29, 0x66, 0x65,
+ 0xf7, 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92,
+ 0xfa, 0xa0, 0xa9, 0xbf,
+ 0x1f, 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e,
+ 0xa7, 0xdb, 0x03, 0x10,
+ 0xfb, 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07,
+ 0xe7, 0x8d, 0x3d, 0x32,
+ 0x7c, 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8,
+ 0xd9, 0xea, 0x0c, 0x40,
+ 0x09, 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a,
+ 0x64, 0x40, 0xfb, 0x98,
+ 0x0d, 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9,
+ 0x6f, 0x5b, 0x36, 0xe3,
+ 0x7a, 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13,
+ 0x36, 0x1d, 0x46, 0xe7,
+ 0x67, 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5,
+ 0x75, 0x2a, 0xc2, 0x2b,
+ 0x45, 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23,
+ 0xc9, 0x1e, 0xe2, 0xa9,
+ 0x87, 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf,
+ 0x3e, 0x67, 0x31, 0x72,
+ 0xdc, 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde,
+ 0x22, 0xd4, 0x72, 0xa5,
+ 0xe8, 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc,
+ 0x5d, 0x7b, 0xaa, 0xaf,
+ 0x4f, 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d,
+ 0x3b, 0xc4, 0x3c, 0x83,
+ 0x1d, 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6,
+ 0x43, 0x37, 0x84, 0xcc,
+ 0x4e, 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71,
+ 0x49, 0xb2, 0x9e, 0xed,
+ 0x04, 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73,
+ 0x0b, 0x1b, 0xcd, 0x7b,
+ 0xeb, 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08,
+ 0xcb, 0xe1, 0x8f, 0x1d,
+ 0xf8, 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3,
+ 0x71, 0x17, 0x18, 0x80,
+ 0xf3, 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1,
+ 0xf1, 0xbb, 0x64, 0xc4,
+ 0x3e, 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c,
+ 0x8d, 0x75, 0x06, 0x20,
+ 0x3d, 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8,
+ 0x1b, 0xef, 0x23, 0x92,
+ 0xbd, 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90,
+ 0xb8, 0x09, 0xfa, 0x29,
+ 0x8a, 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46,
+ 0x51, 0x3c, 0x07, 0x91,
+ 0x88, 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e,
+ 0xb5, 0xd0, 0x80, 0x4d,
+ 0xdd, 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2,
+ 0x50, 0xa2, 0xd0, 0xcb,
+ 0xcd, 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd,
+ 0x7c, 0xce, 0x62, 0xe4,
+ 0x0b, 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52,
+ 0x80, 0xac, 0x7c, 0x44,
+ 0x13, 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb,
+ 0xba, 0xf6, 0x97, 0x9d,
+ 0x98, 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91,
+ 0x99, 0xbc, 0x32, 0x62,
+ 0x02, 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8,
+ 0xe4, 0xec, 0x87, 0xdc,
+ 0x93, 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3,
+ 0x19, 0x10, 0x4e, 0x26,
+ 0x80, 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78,
+ 0xa3, 0xe6, 0xd9, 0xbb,
+ 0x90, 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77,
+ 0x8f, 0x8a, 0x6b, 0x94,
+ 0xd0, 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b,
+ 0x3f, 0xf9, 0xe6, 0x28,
+ 0x24, 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d,
+ 0x53, 0xc3, 0x6a, 0x25,
+ 0x34, 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62,
+ 0x7f, 0xaf, 0xd8, 0x0a,
+ 0xcb, 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16,
+ 0x93, 0x39, 0x28, 0x43,
+ 0xed, 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3,
+ 0x24, 0x16, 0xc5, 0xba,
+ 0xf4, 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26,
+ 0x6c, 0x3a, 0x8c, 0x0d,
+ 0xce, 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09,
+ 0xea, 0x54, 0x47, 0x56,
+ 0x99, 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd,
+ 0xeb, 0xca, 0x90, 0x0c,
+ 0x10, 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f,
+ 0x2c, 0x6c, 0xb2, 0x2f,
+ 0x44, 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f,
+ 0xbb, 0x68, 0x40, 0xc7,
+ 0x40, 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c,
+ 0xb0, 0x73, 0x8d, 0xbc,
+ 0x92, 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf,
+ 0x6b, 0x66, 0xec, 0x48,
+ 0x3a, 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f,
+ 0x86, 0x6e, 0xcb, 0x5b,
+ 0x01, 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c,
+ 0x72, 0x76, 0xa2, 0x6e,
+ 0x26, 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5,
+ 0xb7, 0x2f, 0xed, 0xf9,
+ 0x12, 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7,
+ 0xc8, 0x80, 0x35, 0xf3,
+ 0x1a, 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31,
+ 0xde, 0xb6, 0x6c, 0x05,
+ 0x48, 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda,
+ 0xa6, 0x45, 0xd4, 0x4a,
+ 0x68, 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4,
+ 0xfe, 0x9d, 0x73, 0x14,
+ 0xf5, 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a,
+ 0x1e, 0x4c, 0x2e, 0x63,
+ 0x81, 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14,
+ 0xd1, 0x90, 0x7b, 0xd5,
+ 0x8b, 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a,
+ 0x23, 0x4a, 0xa5, 0xff,
+ 0xc7, 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83,
+ 0x8e, 0x14, 0xbc, 0xce,
+ 0xd6, 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0,
+ 0xd0, 0x0e, 0xac, 0x8f,
+ 0x20, 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e,
+ 0x58, 0xd8, 0xa7, 0x5e,
+ 0x0a, 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e,
+ 0xf2, 0xda, 0xde, 0x2a,
+ 0x08, 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6,
+ 0x16, 0x36, 0x59, 0xf6,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x4c, 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9,
+ 0xad, 0x5e, 0x19, 0x31,
+ 0xd7, 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c,
+ 0xa2, 0x78, 0x0e, 0xe1,
+ 0x74, 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e,
+ 0xcf, 0xdc, 0x55, 0xb6,
+ },
+ { /* 1 */
+ 0xcc, 0xec, 0x18, 0x15, 0x1b, 0x11, 0x97, 0xc3, 0xf0, 0x9a, 0x7d, 0x3e,
+ 0x77, 0x3a, 0x93, 0x9b,
+ 0x03, 0x52, 0x4c, 0x32, 0xa4, 0x91, 0x05, 0xcd, 0xbd, 0x7b, 0x44, 0x0e,
+ 0x71, 0xad, 0xa6, 0x23,
+ 0x17, 0x0c, 0x9a, 0xa9, 0x18, 0x92, 0x39, 0xd8, 0xad, 0x0a, 0xf2, 0x46,
+ 0x78, 0x7d, 0x02, 0x74,
+ 0xa5, 0x43, 0xab, 0x04, 0x86, 0x68, 0x2c, 0x3c, 0x84, 0x83, 0x35, 0x17,
+ 0xdb, 0x7b, 0x40, 0x98,
+ 0xd4, 0x39, 0x3d, 0x46, 0x72, 0x13, 0xbf, 0x64, 0x51, 0xc4, 0x18, 0x4e,
+ 0x79, 0x1b, 0xea, 0x40,
+ 0xfc, 0x85, 0x52, 0xb3, 0xc9, 0x15, 0xc7, 0x4e, 0x71, 0x26, 0xb7, 0xde,
+ 0x6b, 0x78, 0x61, 0xee,
+ 0xd6, 0xe4, 0xf4, 0xdb, 0x0b, 0x4c, 0xb9, 0x53, 0x87, 0x96, 0x60, 0xfb,
+ 0x27, 0x6c, 0x2e, 0xc3,
+ 0x76, 0x51, 0x8b, 0x89, 0xa2, 0x54, 0x9a, 0xfb, 0x07, 0x98, 0x99, 0xfe,
+ 0x6f, 0x23, 0x47, 0x3e,
+ 0xd2, 0x9d, 0xa5, 0x22, 0xf9, 0xf2, 0xb5, 0x3d, 0xe8, 0x32, 0x90, 0x52,
+ 0x9b, 0x82, 0x65, 0x06,
+ 0x20, 0x4e, 0xcd, 0xc4, 0x9c, 0xb9, 0x60, 0xf6, 0xfe, 0x69, 0x8c, 0x01,
+ 0xa9, 0x7c, 0x1d, 0xe7,
+ 0x65, 0x24, 0x40, 0xd9, 0x48, 0x78, 0xaf, 0x4d, 0xc5, 0x36, 0x9b, 0x11,
+ 0xab, 0xb0, 0x0e, 0x8f,
+ 0x42, 0x41, 0x90, 0xd6, 0x82, 0xee, 0xc6, 0x18, 0xe9, 0x80, 0xa3, 0xb7,
+ 0xcf, 0x8f, 0xfe, 0x8e,
+ 0x46, 0x38, 0xc1, 0x2f, 0x70, 0x50, 0xca, 0x76, 0x86, 0x24, 0x53, 0x1e,
+ 0x73, 0x61, 0xb5, 0x4b,
+ 0xbb, 0x32, 0x16, 0x33, 0x64, 0x8b, 0x0e, 0xc2, 0x9c, 0x2b, 0xd8, 0x7b,
+ 0x37, 0xc3, 0xb6, 0x05,
+ 0x2c, 0xc5, 0x3e, 0x0c, 0x49, 0xb8, 0x74, 0x44, 0x4f, 0x46, 0x5f, 0x39,
+ 0xae, 0x8d, 0xc0, 0x6b,
+ 0x25, 0xb8, 0x19, 0x92, 0xb3, 0xc9, 0x6f, 0x62, 0xfa, 0xe4, 0x40, 0x13,
+ 0x3a, 0x48, 0x34, 0x82,
+ 0x2e, 0x18, 0xf7, 0x91, 0x30, 0xe7, 0x72, 0x73, 0x99, 0x14, 0x27, 0x8c,
+ 0xf0, 0xfa, 0x04, 0xe8,
+ 0x7f, 0x2c, 0xac, 0x17, 0x58, 0x25, 0x81, 0xdd, 0xb2, 0x3a, 0x86, 0xd4,
+ 0xfb, 0xe6, 0xb3, 0xd7,
+ 0xad, 0xb1, 0x09, 0x35, 0xa1, 0xd7, 0x34, 0xe0, 0x5a, 0x08, 0x16, 0x86,
+ 0x60, 0x64, 0xd6, 0xd1,
+ 0x06, 0xa4, 0x98, 0x64, 0x8b, 0xe1, 0x0a, 0x59, 0xb9, 0xf6, 0x88, 0x1c,
+ 0xe2, 0x99, 0x8f, 0x46,
+ 0x6b, 0x72, 0x7a, 0x8c, 0xe4, 0x26, 0xbd, 0xc8, 0xa2, 0x4b, 0x30, 0x9c,
+ 0xf2, 0x36, 0x17, 0x80,
+ 0x3b, 0xc9, 0xa4, 0xa5, 0x51, 0x2a, 0x4d, 0x9c, 0xe2, 0x4c, 0xad, 0x7f,
+ 0xd6, 0xf0, 0xc2, 0x1f,
+ 0x6a, 0xfd, 0xff, 0x23, 0x39, 0xe8, 0xbe, 0x32, 0xc9, 0x62, 0x0c, 0x27,
+ 0xdd, 0xec, 0x75, 0x20,
+ 0x7e, 0xa3, 0x29, 0xb8, 0x85, 0xeb, 0x82, 0x27, 0xd9, 0x13, 0xba, 0x6f,
+ 0xd4, 0x3c, 0xd1, 0x77,
+ 0x3c, 0xe2, 0xb9, 0x6e, 0x07, 0x05, 0x44, 0x3f, 0x30, 0x93, 0x19, 0xd8,
+ 0x1b, 0xb3, 0x2f, 0xf9,
+ 0x84, 0x82, 0xe3, 0x6f, 0xc7, 0x1f, 0x4f, 0x30, 0x11, 0xc3, 0x85, 0xad,
+ 0x5d, 0xdd, 0x3f, 0xdf,
+ 0x67, 0xf9, 0x89, 0x44, 0x31, 0x27, 0xa9, 0x7a, 0x13, 0x64, 0xe3, 0xa4,
+ 0xf5, 0xc7, 0xca, 0x0c,
+ 0xb6, 0x36, 0x60, 0x54, 0x6c, 0x44, 0x19, 0x8a, 0x46, 0x2d, 0x37, 0xf8,
+ 0x1f, 0xe8, 0x09, 0x29,
+ 0x16, 0x83, 0x1f, 0x06, 0xc5, 0x5c, 0x3a, 0x22, 0xc6, 0x23, 0xce, 0xfd,
+ 0x57, 0xa7, 0x60, 0xd4,
+ 0x88, 0x09, 0x10, 0xa7, 0x12, 0x1e, 0x5b, 0x82, 0xa0, 0xec, 0x56, 0x95,
+ 0x5a, 0x2c, 0xe2, 0x53,
+ 0x58, 0x49, 0x7c, 0x18, 0x92, 0xb3, 0xe8, 0x88, 0x9e, 0x8c, 0xbe, 0x72,
+ 0x9f, 0xd9, 0x43, 0xd6,
+ 0xbc, 0x19, 0x0b, 0xf8, 0x32, 0xa4, 0x07, 0x61, 0x4e, 0xf4, 0x6c, 0xdc,
+ 0xfa, 0x80, 0x5b, 0xe3,
+ 0xde, 0x16, 0x56, 0xea, 0x2c, 0xf3, 0xa1, 0x8f, 0x59, 0x1d, 0x43, 0x6a,
+ 0x9c, 0x73, 0xb8, 0x8a,
+ 0xc2, 0xba, 0x22, 0x40, 0xb7, 0x4f, 0x85, 0x46, 0x97, 0xe7, 0xd6, 0xb3,
+ 0x2e, 0xbc, 0x8a, 0x94,
+ 0x4e, 0xca, 0x63, 0x1e, 0x57, 0xef, 0xd2, 0xaa, 0x58, 0xaf, 0x70, 0x8f,
+ 0xc8, 0x7e, 0x23, 0x02,
+ 0x3f, 0xb0, 0xf5, 0x5c, 0xa3, 0x94, 0x41, 0xf2, 0x8d, 0xe8, 0x5d, 0xd6,
+ 0x6a, 0x1e, 0x89, 0xda,
+ 0x0e, 0x56, 0x3a, 0x55, 0xac, 0x5e, 0x12, 0x85, 0x67, 0x7d, 0xab, 0x8d,
+ 0x59, 0x86, 0x19, 0x0f,
+ 0x1f, 0xfe, 0x38, 0x98, 0x3f, 0x2d, 0x21, 0x04, 0x73, 0x81, 0xd1, 0xd7,
+ 0xc3, 0x62, 0x94, 0x3d,
+ 0x99, 0xa1, 0x12, 0x6a, 0x81, 0x6d, 0x68, 0x03, 0xb4, 0x10, 0x2c, 0xcf,
+ 0xc0, 0xc8, 0x6f, 0x61,
+ 0x0c, 0x8b, 0xf3, 0xc8, 0xd5, 0x01, 0x14, 0xb2, 0xb1, 0x2f, 0xd3, 0x38,
+ 0x07, 0xf1, 0xdd, 0x8c,
+ 0x70, 0xf5, 0x13, 0xed, 0x29, 0xb5, 0x90, 0xa2, 0xbe, 0x6e, 0x11, 0xe2,
+ 0x8d, 0xba, 0xc8, 0x78,
+ 0x44, 0xe5, 0x08, 0xb2, 0x09, 0x0f, 0xcc, 0x41, 0x50, 0x76, 0x2b, 0xab,
+ 0x2d, 0x16, 0x71, 0xc8,
+ 0x2d, 0x4a, 0xbb, 0xa3, 0x94, 0x76, 0x77, 0xbe, 0x24, 0x6f, 0x63, 0x82,
+ 0x81, 0x57, 0xa2, 0xcb,
+ 0x5f, 0x62, 0x61, 0xd3, 0xc4, 0x9c, 0xe1, 0x2b, 0x4c, 0x53, 0x0a, 0xd5,
+ 0x52, 0x9a, 0xae, 0x30,
+ 0x78, 0x07, 0xb1, 0xdc, 0x0e, 0x0a, 0x88, 0x7e, 0x60, 0xe5, 0x32, 0x73,
+ 0x36, 0xa5, 0x5e, 0x31,
+ 0xcb, 0xc7, 0x05, 0xde, 0x4d, 0x3e, 0x9e, 0x60, 0x22, 0x45, 0xc9, 0x99,
+ 0xba, 0x79, 0x7e, 0x7d,
+ 0xd5, 0xb6, 0xb8, 0xe9, 0xaf, 0xdd, 0xbc, 0x9e, 0x3a, 0xed, 0x24, 0xf5,
+ 0x56, 0xc1, 0x88, 0xe0,
+ 0x73, 0xa7, 0x5f, 0xdf, 0x8d, 0x24, 0x95, 0x6f, 0x03, 0x15, 0x55, 0xec,
+ 0xfc, 0x17, 0x6e, 0x5b,
+ 0x5c, 0x30, 0x2d, 0xe1, 0x60, 0x0d, 0xe4, 0xe6, 0xf1, 0x28, 0x4e, 0xdb,
+ 0x23, 0x37, 0x08, 0x13,
+ 0xfe, 0x58, 0x9b, 0x2e, 0xb0, 0x4a, 0xc1, 0x79, 0xa7, 0x74, 0xcf, 0x6b,
+ 0x35, 0x0f, 0xa5, 0x6d,
+ 0x6f, 0x0b, 0x2b, 0x75, 0x16, 0x98, 0xb1, 0xa6, 0xcd, 0xef, 0xc0, 0x35,
+ 0x4e, 0xd8, 0x5c, 0x45,
+ 0x1a, 0x08, 0xec, 0xce, 0x10, 0x5d, 0x2e, 0x90, 0x77, 0x0c, 0x1d, 0xc5,
+ 0x50, 0x56, 0xbd, 0x58,
+ 0x07, 0x2b, 0x1d, 0xcb, 0x56, 0x2f, 0x09, 0xa3, 0xd2, 0xdf, 0xb4, 0xa7,
+ 0xcd, 0x43, 0xed, 0xe6,
+ 0xee, 0x7f, 0x1c, 0x4c, 0xfe, 0xf7, 0xf1, 0x02, 0xd8, 0xa1, 0x89, 0x8a,
+ 0x80, 0x31, 0x4a, 0xff,
+ 0xea, 0x06, 0x4d, 0xb5, 0x0c, 0x49, 0xfd, 0x6c, 0xb7, 0x05, 0x79, 0x23,
+ 0x3c, 0xdf, 0x01, 0x3a,
+ 0xc8, 0x95, 0x49, 0xec, 0xe9, 0xaf, 0x9b, 0xad, 0x9f, 0x3e, 0x8d, 0x97,
+ 0xcb, 0xd4, 0xd8, 0x5e,
+ 0x8c, 0x70, 0x41, 0x5e, 0xe0, 0xa0, 0x57, 0xec, 0xcf, 0x48, 0xa6, 0x3c,
+ 0xe6, 0xc2, 0xa9, 0x96,
+ 0xb5, 0x64, 0x2c, 0x66, 0xc8, 0xd5, 0x1c, 0x47, 0xfb, 0x56, 0x73, 0xf6,
+ 0x6e, 0x45, 0xaf, 0x0a,
+ 0x38, 0x9b, 0xe8, 0x97, 0xf5, 0xbb, 0x48, 0x51, 0x5f, 0x37, 0xe9, 0x71,
+ 0xa7, 0x5d, 0x64, 0x3c,
+ 0x59, 0xc6, 0xf9, 0xb7, 0x4f, 0x7d, 0xeb, 0x72, 0xf5, 0xa5, 0x82, 0xc9,
+ 0xb0, 0x03, 0x21, 0x76,
+ 0x69, 0xaf, 0xb3, 0x11, 0x9d, 0x79, 0xbb, 0xff, 0x74, 0x19, 0x48, 0x29,
+ 0xac, 0x41, 0xd3, 0x03,
+ 0x10, 0x27, 0x87, 0x62, 0x4e, 0xbd, 0x30, 0x7b, 0x7f, 0xd5, 0x46, 0xe1,
+ 0xb5, 0x3e, 0xef, 0x92,
+ 0xf0, 0x0e, 0xa1, 0x7b, 0x1c, 0x14, 0xd3, 0xfc, 0xc0, 0x09, 0x64, 0xe6,
+ 0x6c, 0x89, 0xbc, 0x62,
+ 0xa3, 0xe7, 0x33, 0x60, 0x0d, 0x89, 0x26, 0x65, 0x3d, 0x75, 0xbd, 0x0b,
+ 0x39, 0xe2, 0xcf, 0xde,
+ 0x09, 0x7d, 0x27, 0x9e, 0xfa, 0x71, 0x1b, 0x26, 0xb5, 0xa2, 0x1f, 0x2a,
+ 0x94, 0xc5, 0xf4, 0xe9,
+ 0x0d, 0x04, 0x76, 0x67, 0x08, 0xcf, 0x17, 0x48, 0xda, 0x06, 0xef, 0x83,
+ 0x28, 0x2b, 0xbf, 0x2c,
+ 0xfd, 0x0a, 0xd7, 0x1c, 0x14, 0xdb, 0xc4, 0xb4, 0x1a, 0x0f, 0x8b, 0x65,
+ 0x44, 0xa2, 0x03, 0x4e,
+ 0x1b, 0x87, 0x69, 0x61, 0xcd, 0x93, 0x2d, 0x6a, 0x1c, 0x25, 0x21, 0x7e,
+ 0x7f, 0x8c, 0xdf, 0xf8,
+ 0x27, 0x65, 0xd0, 0x0f, 0xca, 0x96, 0x69, 0x55, 0x2c, 0xb6, 0x38, 0xa6,
+ 0x64, 0x3f, 0xf0, 0x01,
+ 0x8d, 0xff, 0xc4, 0xf1, 0x3d, 0x6e, 0x54, 0x16, 0xa4, 0x61, 0x9a, 0x87,
+ 0xc9, 0x18, 0xcb, 0x36,
+ 0xf2, 0xd3, 0x68, 0xe6, 0x65, 0x4b, 0xd5, 0xcb, 0x16, 0x5b, 0x1c, 0x53,
+ 0x32, 0xfe, 0x78, 0xe1,
+ 0x92, 0x01, 0xfc, 0x69, 0x02, 0x43, 0x75, 0x12, 0xd7, 0xe0, 0x4b, 0x50,
+ 0x0a, 0x7a, 0x5f, 0x0b,
+ 0x6d, 0xd6, 0xe2, 0xe8, 0x6f, 0xc7, 0xb7, 0x91, 0x1b, 0xbd, 0xb8, 0x80,
+ 0x10, 0xaf, 0x98, 0xc6,
+ 0x5d, 0xbf, 0xa8, 0x4e, 0xbd, 0xc3, 0xe7, 0x1c, 0x9a, 0x01, 0x72, 0x60,
+ 0x0c, 0xed, 0x6a, 0xb3,
+ 0xf1, 0x81, 0x24, 0xd4, 0xc1, 0xda, 0xd0, 0x06, 0xab, 0x20, 0x58, 0x5d,
+ 0x43, 0x53, 0xde, 0xc2,
+ 0x21, 0xc1, 0x48, 0x6b, 0x41, 0x77, 0x63, 0x0c, 0x95, 0x40, 0xb0, 0xba,
+ 0x86, 0xa6, 0x7f, 0x47,
+ 0x37, 0x42, 0x57, 0x6d, 0x84, 0x2b, 0x59, 0x2e, 0x53, 0x63, 0x7e, 0x47,
+ 0xd1, 0x01, 0x1f, 0x93,
+ 0x40, 0x9c, 0x59, 0x4b, 0xfb, 0xb1, 0xc0, 0x2f, 0x3f, 0xd2, 0xdb, 0x02,
+ 0x91, 0xf8, 0x3a, 0x0d,
+ 0x8e, 0xad, 0x88, 0xc3, 0x99, 0xff, 0x51, 0xdb, 0x19, 0x1a, 0xde, 0x89,
+ 0xb8, 0xb5, 0x6d, 0x15,
+ 0xe8, 0xdb, 0x84, 0x28, 0x75, 0x16, 0xfb, 0x5b, 0x61, 0x57, 0x01, 0x96,
+ 0x62, 0xa8, 0xc5, 0xb9,
+ 0xe4, 0x50, 0x77, 0xe0, 0xa0, 0x17, 0xef, 0xe9, 0xd0, 0x78, 0xd2, 0xae,
+ 0x65, 0x59, 0x18, 0x35,
+ 0xec, 0xa2, 0xd5, 0xd1, 0x87, 0xa8, 0xf7, 0x35, 0x0e, 0xf3, 0xf1, 0x3f,
+ 0xde, 0x46, 0x8e, 0x7c,
+ 0x9e, 0x8a, 0x0f, 0xa1, 0xd7, 0x42, 0x61, 0xa0, 0x66, 0xcf, 0x98, 0x68,
+ 0x0d, 0x8b, 0x82, 0x87,
+ 0x9c, 0x57, 0xc6, 0x3c, 0xae, 0x1d, 0x67, 0x97, 0xb0, 0x9d, 0xe0, 0xdd,
+ 0x53, 0xfc, 0x46, 0x04,
+ 0xd1, 0xcf, 0xe9, 0x10, 0x5d, 0x63, 0xb0, 0xf0, 0x55, 0x49, 0xd4, 0x5c,
+ 0xea, 0x2f, 0xc3, 0x25,
+ 0xe7, 0x02, 0x3b, 0xd2, 0x04, 0x86, 0xea, 0x24, 0x6d, 0x03, 0x96, 0xa0,
+ 0x14, 0xf4, 0xbe, 0x16,
+ 0xb8, 0x60, 0x5a, 0x01, 0xc0, 0x1a, 0x0b, 0x0f, 0x21, 0x50, 0x9c, 0x75,
+ 0x46, 0x6e, 0x10, 0x26,
+ 0x2f, 0x97, 0x72, 0x3e, 0xed, 0x29, 0x71, 0x89, 0xf2, 0x3d, 0x1b, 0x37,
+ 0xdf, 0x20, 0x66, 0x48,
+ 0xe2, 0xf4, 0xef, 0x84, 0x2b, 0xf6, 0xe5, 0xb0, 0x69, 0x8e, 0x5a, 0xb2,
+ 0x87, 0xc0, 0x97, 0x73,
+ 0x8a, 0xd4, 0xd9, 0x3a, 0x6b, 0x41, 0x5d, 0xb5, 0x76, 0xbe, 0x2e, 0x20,
+ 0x04, 0x5b, 0x26, 0xd0,
+ 0xd7, 0x6b, 0x71, 0x74, 0xd6, 0x82, 0xba, 0xa9, 0xec, 0xbf, 0x5c, 0x40,
+ 0x08, 0xb6, 0x4c, 0x63,
+ 0xb4, 0xeb, 0xa9, 0xc9, 0x15, 0x1b, 0x1f, 0xbd, 0x90, 0x7f, 0x4f, 0x4d,
+ 0x41, 0x9f, 0xcd, 0xaa,
+ 0x29, 0x33, 0xea, 0x5a, 0x66, 0xc8, 0x7b, 0xd0, 0x4b, 0xcb, 0x93, 0x2b,
+ 0x3d, 0xb9, 0xe9, 0x0e,
+ 0x13, 0x75, 0xcb, 0x50, 0xea, 0x2c, 0x35, 0xb6, 0xc2, 0xae, 0x02, 0xef,
+ 0xc4, 0x93, 0x49, 0xb1,
+ 0x98, 0x2e, 0x97, 0xc5, 0x5c, 0xa3, 0x6b, 0xf9, 0xdf, 0x39, 0x10, 0x74,
+ 0xef, 0x12, 0x0d, 0xc1,
+ 0x80, 0xfb, 0xb2, 0x96, 0x35, 0xa1, 0x43, 0x5e, 0x7e, 0x67, 0x75, 0x04,
+ 0xe1, 0x33, 0x74, 0x1a,
+ 0xa6, 0x11, 0xe7, 0x36, 0x22, 0xf9, 0x29, 0xf1, 0x39, 0xf8, 0x71, 0x19,
+ 0xaa, 0xd6, 0xe6, 0xbb,
+ 0x62, 0x0f, 0x5d, 0x12, 0x1e, 0x57, 0xa6, 0xee, 0x17, 0xe9, 0x2f, 0xb6,
+ 0x66, 0xf3, 0xe3, 0x69,
+ 0xb3, 0xc0, 0xb4, 0x02, 0x43, 0x34, 0x16, 0x1e, 0x42, 0xa0, 0xfb, 0xea,
+ 0x8c, 0xdc, 0x20, 0x4c,
+ 0x5e, 0xed, 0xe4, 0x7c, 0x19, 0x52, 0xe2, 0xd1, 0x27, 0x7a, 0x36, 0x6e,
+ 0x7d, 0x40, 0xcc, 0x90,
+ 0x72, 0x28, 0xda, 0x70, 0x50, 0xea, 0x96, 0x95, 0x68, 0x3c, 0x69, 0x57,
+ 0xd3, 0xcd, 0x0c, 0xfb,
+ 0x43, 0xce, 0x15, 0x79, 0x5f, 0x20, 0xc5, 0xe2, 0x82, 0xa9, 0x9f, 0x0c,
+ 0xe0, 0x55, 0x9c, 0x2e,
+ 0x34, 0x10, 0x1b, 0x5f, 0x20, 0xba, 0x5c, 0xe3, 0xee, 0x18, 0x3a, 0x49,
+ 0xa0, 0xac, 0xb9, 0xb0,
+ 0x35, 0x9f, 0x9e, 0xf0, 0xfd, 0x74, 0x5f, 0x19, 0x85, 0x31, 0x06, 0xf2,
+ 0x8f, 0x76, 0xdb, 0x10,
+ 0x52, 0x66, 0x17, 0xb4, 0xcc, 0x53, 0xf6, 0x63, 0x96, 0x55, 0xe5, 0x56,
+ 0x7a, 0xb1, 0x11, 0x1c,
+ 0x26, 0xea, 0x55, 0xa0, 0x17, 0x58, 0x6a, 0xaf, 0x47, 0x9f, 0x04, 0x1d,
+ 0x4b, 0xe5, 0x92, 0xa1,
+ 0x7d, 0xf1, 0x65, 0x8a, 0x21, 0x7a, 0x87, 0xea, 0x64, 0x68, 0xfe, 0x61,
+ 0xa5, 0x91, 0x77, 0x54,
+ 0xb7, 0xb9, 0xe5, 0xfb, 0xb1, 0x8a, 0x1a, 0x70, 0x2d, 0x04, 0x0b, 0x43,
+ 0x30, 0x32, 0x6b, 0x89,
+ 0x0a, 0x2f, 0x6b, 0xac, 0x5e, 0xe0, 0x1e, 0xeb, 0x08, 0xd9, 0x5b, 0x24,
+ 0xe5, 0x68, 0x52, 0xca,
+ 0x45, 0x6a, 0x8d, 0x1d, 0xd4, 0xc1, 0xcf, 0xbb, 0x3b, 0x5f, 0x17, 0x10,
+ 0x02, 0xcc, 0x13, 0x68,
+ 0x81, 0x74, 0x37, 0x39, 0xe8, 0x6f, 0x40, 0xa4, 0x15, 0x4e, 0x49, 0xbf,
+ 0xce, 0xe9, 0x16, 0xba,
+ 0x6e, 0x84, 0xae, 0xda, 0xcb, 0x56, 0xb2, 0x5c, 0xa6, 0xc6, 0xfc, 0x8e,
+ 0x61, 0x02, 0x3e, 0xe5,
+ 0x53, 0xe9, 0x92, 0x1b, 0x11, 0x9d, 0xf5, 0x99, 0xfd, 0x7c, 0xd9, 0xed,
+ 0x55, 0x6b, 0x73, 0xbc,
+ 0x4a, 0xb3, 0x32, 0xe7, 0xa5, 0x51, 0xde, 0xc4, 0x37, 0x0b, 0x80, 0x26,
+ 0x74, 0x90, 0x68, 0xc7,
+ 0x79, 0x88, 0x34, 0x73, 0xd3, 0xc4, 0x8b, 0x84, 0x0b, 0xcc, 0x0e, 0xc8,
+ 0x19, 0x7f, 0x3c, 0x91,
+ 0x32, 0xb4, 0x83, 0x3b, 0xab, 0x5b, 0x56, 0xba, 0x57, 0xee, 0xb2, 0x55,
+ 0x42, 0x35, 0x36, 0xf6,
+ 0x61, 0x5d, 0x11, 0x20, 0xba, 0xc6, 0xa3, 0x23, 0xaa, 0x92, 0x6b, 0xb8,
+ 0x17, 0x5e, 0x45, 0x4a,
+ 0xfb, 0xae, 0x4f, 0x78, 0x9f, 0x3a, 0xce, 0xed, 0xa3, 0xf9, 0x03, 0x79,
+ 0xa6, 0x3b, 0x8c, 0x08,
+ 0x39, 0x14, 0x6d, 0x38, 0x28, 0x75, 0x4b, 0xab, 0x34, 0x1e, 0xd5, 0xca,
+ 0x88, 0x87, 0x06, 0x9c,
+ 0xc0, 0x67, 0xeb, 0xdd, 0xce, 0x10, 0x83, 0x71, 0x41, 0xb5, 0xae, 0x06,
+ 0x70, 0xcb, 0x4e, 0x17,
+ 0xfa, 0x21, 0xca, 0xd7, 0x42, 0xf4, 0xcd, 0x17, 0xc8, 0xd0, 0x3f, 0xc2,
+ 0x89, 0xe1, 0xee, 0xa8,
+ 0x5b, 0x1b, 0x30, 0x2a, 0x36, 0x22, 0xed, 0x45, 0x23, 0xf7, 0xfa, 0x7c,
+ 0xee, 0x74, 0xe5, 0xf5,
+ 0xa4, 0xcc, 0x2e, 0xab, 0x5b, 0xa6, 0x2f, 0xc6, 0xef, 0xaa, 0x09, 0xac,
+ 0xf4, 0xa1, 0x22, 0x38,
+ 0xba, 0xbd, 0x93, 0x9c, 0xb9, 0x45, 0x0d, 0x38, 0xf7, 0x02, 0xe4, 0xc0,
+ 0x18, 0x19, 0xd4, 0xa5,
+ 0xda, 0x6f, 0x07, 0x13, 0xde, 0x4d, 0xad, 0xe1, 0x36, 0xb9, 0xb3, 0xc3,
+ 0x20, 0x9d, 0xf3, 0x4f,
+ 0x4c, 0x17, 0xaa, 0x83, 0x2e, 0xb0, 0xd4, 0x9d, 0x8e, 0xfd, 0x08, 0x3a,
+ 0x96, 0x09, 0xe7, 0x81,
+ 0x05, 0xf6, 0xd4, 0x56, 0x2f, 0x70, 0x0f, 0x94, 0x04, 0x8d, 0xcc, 0x12,
+ 0x93, 0x34, 0x29, 0x65,
+ 0xc3, 0x35, 0xa7, 0xef, 0x6a, 0x81, 0x86, 0xbc, 0xfc, 0xce, 0xea, 0x08,
+ 0x01, 0x66, 0xe8, 0x34,
+ 0x3a, 0x46, 0x21, 0x0a, 0x8c, 0xe4, 0x4e, 0x66, 0x89, 0x65, 0x91, 0xc4,
+ 0xf9, 0x2a, 0xa0, 0xbf,
+ 0x82, 0x26, 0x7b, 0x0b, 0x4c, 0xfe, 0x45, 0x69, 0xa8, 0x35, 0x0d, 0xb1,
+ 0xbf, 0x44, 0xb0, 0x99,
+ 0x18, 0xd5, 0x25, 0x53, 0x69, 0x02, 0x28, 0xa7, 0xa1, 0x5e, 0x65, 0x70,
+ 0x0e, 0x21, 0x79, 0xdb,
+ 0xc9, 0x1a, 0xcc, 0x43, 0x34, 0x61, 0x98, 0x57, 0xf4, 0x17, 0xb1, 0x2c,
+ 0xe4, 0x0e, 0xba, 0xfe,
+ 0x68, 0x20, 0x36, 0xbe, 0x40, 0xb7, 0xb8, 0x05, 0x1f, 0x30, 0x74, 0x92,
+ 0x83, 0x9b, 0xb1, 0xa3,
+ 0xf6, 0xaa, 0x39, 0x1f, 0x97, 0xf5, 0xd9, 0xa5, 0x79, 0xff, 0xec, 0xfa,
+ 0x8e, 0x10, 0x33, 0x24,
+ 0x63, 0x80, 0xd8, 0xbd, 0xc3, 0x99, 0xa5, 0x14, 0x7c, 0xc0, 0x13, 0x0d,
+ 0x49, 0x29, 0x81, 0xc9,
+ 0x87, 0xd0, 0xaf, 0x5d, 0x63, 0x8e, 0x4a, 0xfd, 0xac, 0xb8, 0xc1, 0xa3,
+ 0x2c, 0x70, 0x99, 0xfc,
+ 0x49, 0xe1, 0x7e, 0xd5, 0x01, 0xc0, 0xdb, 0x09, 0x8a, 0x70, 0xc4, 0x28,
+ 0x05, 0x3d, 0xce, 0xe4,
+ 0x36, 0xcd, 0xd2, 0xc2, 0x59, 0xe5, 0x5a, 0xd4, 0x38, 0x4a, 0x42, 0xfc,
+ 0xfe, 0xdb, 0x7d, 0x33,
+ 0x91, 0x53, 0xb0, 0x5b, 0xa6, 0xd2, 0x70, 0xdf, 0x6a, 0x9b, 0x0f, 0x5e,
+ 0x7b, 0xd7, 0xf9, 0x28,
+ 0x97, 0xf7, 0x28, 0x3f, 0x2d, 0x33, 0x7a, 0x86, 0xd3, 0x6d, 0x87, 0x42,
+ 0x99, 0x4e, 0x76, 0x6e,
+ 0x33, 0x3b, 0x06, 0x94, 0x76, 0x95, 0x55, 0x40, 0x3c, 0xc7, 0x8e, 0xee,
+ 0x6d, 0xef, 0x54, 0x56,
+ 0x08, 0xf2, 0xa2, 0x31, 0x27, 0xbf, 0x18, 0xdc, 0xde, 0x8b, 0x23, 0x91,
+ 0xbb, 0x1f, 0x96, 0x49,
+ 0x7c, 0x7e, 0xe0, 0x25, 0xfc, 0xb4, 0x84, 0x10, 0x0f, 0x41, 0xc2, 0xda,
+ 0x8a, 0x4b, 0x15, 0xf4,
+ 0x02, 0xdd, 0xc9, 0x9d, 0x79, 0x5f, 0x06, 0x37, 0xd6, 0x52, 0x78, 0xb5,
+ 0x5e, 0x77, 0xc4, 0x83,
+ 0x77, 0xde, 0x0e, 0x26, 0x7f, 0x9a, 0x99, 0x01, 0x6c, 0xb1, 0xa5, 0x45,
+ 0x40, 0xf9, 0x25, 0x9e,
+ 0x85, 0x0d, 0x66, 0xc0, 0x1a, 0xd1, 0x4c, 0xca, 0x7a, 0xea, 0xb9, 0x16,
+ 0x72, 0x07, 0x5d, 0x7f,
+ 0x66, 0x76, 0x0c, 0xeb, 0xec, 0xe9, 0xaa, 0x80, 0x78, 0x4d, 0xdf, 0x1f,
+ 0xda, 0x1d, 0xa8, 0xac,
+ 0x41, 0x13, 0xdc, 0xe4, 0x26, 0x7f, 0xc3, 0xd5, 0x54, 0xfb, 0xe7, 0xb9,
+ 0xbe, 0x22, 0x58, 0xad,
+ 0x30, 0x69, 0x4a, 0xa6, 0xd2, 0x04, 0x50, 0x8d, 0x81, 0xbc, 0xca, 0xe0,
+ 0x1c, 0x42, 0xf2, 0x75,
+ 0xcd, 0x63, 0x9d, 0xba, 0xc6, 0xdf, 0x94, 0x39, 0x9b, 0xb3, 0x41, 0x85,
+ 0x58, 0xe0, 0xf1, 0x3b,
+ 0xd0, 0x40, 0x6c, 0xbf, 0x80, 0xad, 0xb3, 0x0a, 0x3e, 0x60, 0xe8, 0xe7,
+ 0xc5, 0xf5, 0xa1, 0x85,
+ 0xd9, 0x3d, 0x4b, 0x21, 0x7a, 0xdc, 0xa8, 0x2c, 0x8b, 0xc2, 0xf7, 0xcd,
+ 0x51, 0x30, 0x55, 0x6c,
+ 0xa9, 0xc8, 0x58, 0xcc, 0x53, 0x69, 0x38, 0x8e, 0x35, 0xac, 0xe6, 0x2f,
+ 0xdc, 0x8a, 0x9d, 0x14,
+ 0xaa, 0x9a, 0x14, 0xfe, 0xf7, 0xf8, 0x3d, 0x43, 0x88, 0xd7, 0xa2, 0x21,
+ 0xad, 0x27, 0x3b, 0x37,
+ 0xc5, 0x91, 0x3f, 0x8b, 0xe1, 0x60, 0x8c, 0xe5, 0x45, 0x38, 0x62, 0x14,
+ 0xe3, 0xff, 0x67, 0x72,
+ 0x60, 0xd2, 0x94, 0x8f, 0x67, 0x08, 0xa0, 0xd9, 0xc1, 0xbb, 0x57, 0x03,
+ 0x38, 0x84, 0x27, 0xea,
+ 0xf8, 0xfc, 0x03, 0x4a, 0x3b, 0xab, 0xcb, 0x20, 0x1e, 0x82, 0x47, 0x77,
+ 0xd7, 0x96, 0x2a, 0x2b,
+ 0x04, 0x79, 0x51, 0xf9, 0xf2, 0xbe, 0x0c, 0x6e, 0x6f, 0xa4, 0xf0, 0xa9,
+ 0xbc, 0xee, 0x4b, 0xc5,
+ 0x90, 0xdc, 0x35, 0xf4, 0x7b, 0x1c, 0x73, 0x25, 0x01, 0xb2, 0x33, 0xe5,
+ 0x54, 0x0d, 0x9b, 0x88,
+ 0xe6, 0x8d, 0xbe, 0x7d, 0xd9, 0x48, 0xe9, 0xde, 0x06, 0x2a, 0xaa, 0x1b,
+ 0x3b, 0x2e, 0xdc, 0xb6,
+ 0x96, 0x78, 0xad, 0x90, 0xf0, 0xfd, 0x79, 0x7c, 0xb8, 0x44, 0xbb, 0xf9,
+ 0xb6, 0x94, 0x14, 0xce,
+ 0xaf, 0x6c, 0xc0, 0xa8, 0xd8, 0x88, 0x32, 0xd7, 0x8c, 0x5a, 0x6e, 0x33,
+ 0x3e, 0x13, 0x12, 0x52,
+ 0xc6, 0xc3, 0x73, 0xb9, 0x45, 0xf1, 0x89, 0x28, 0xf8, 0x43, 0x26, 0x1a,
+ 0x92, 0x52, 0xc1, 0x51,
+ 0xa7, 0x9e, 0x62, 0x99, 0xff, 0x37, 0x2a, 0x0b, 0x52, 0xd1, 0x4d, 0xa2,
+ 0x85, 0x0c, 0x84, 0x1b,
+ 0xa1, 0x3a, 0xfa, 0xfd, 0x74, 0xd6, 0x20, 0x52, 0xeb, 0x27, 0xc5, 0xbe,
+ 0x67, 0x95, 0x0b, 0x5d,
+ 0xd8, 0xb2, 0xce, 0x8e, 0xa7, 0x12, 0xab, 0xd6, 0xe0, 0xeb, 0xcb, 0x76,
+ 0x7e, 0xea, 0x37, 0xcc,
+ 0x1e, 0x71, 0xbd, 0x37, 0xe2, 0xe3, 0x22, 0xfe, 0x18, 0xa8, 0xed, 0x6c,
+ 0xec, 0xb8, 0xf6, 0x9d,
+ 0x4d, 0x98, 0x2f, 0x2c, 0xf3, 0x7e, 0xd7, 0x67, 0xe5, 0xd4, 0x34, 0x81,
+ 0xb9, 0xd3, 0x85, 0x21,
+ 0x64, 0xab, 0xc5, 0x76, 0x95, 0xb6, 0xac, 0xb7, 0xae, 0x1f, 0xa7, 0xaa,
+ 0x84, 0x6a, 0x6c, 0x2f,
+ 0x9a, 0xf3, 0x5e, 0x58, 0x25, 0xfc, 0x6d, 0xce, 0x09, 0x6b, 0x68, 0xc1,
+ 0xb1, 0x65, 0xc9, 0x42,
+ 0xe3, 0x7b, 0x6a, 0x2b, 0xf6, 0x38, 0xe6, 0x4a, 0x02, 0xa7, 0x66, 0x09,
+ 0xa8, 0x1a, 0xf5, 0xd3,
+ 0xf9, 0x73, 0x86, 0xe5, 0xe6, 0x65, 0xc8, 0xda, 0x75, 0xab, 0x7b, 0xcc,
+ 0xf8, 0x4c, 0x48, 0x8b,
+ 0xf7, 0x25, 0xbc, 0xb0, 0x4a, 0x3b, 0xda, 0x5f, 0x12, 0xd6, 0xd0, 0x41,
+ 0xa1, 0xca, 0x51, 0x84,
+ 0x19, 0x5a, 0xa0, 0xfc, 0xb4, 0xcc, 0x2b, 0x5d, 0xca, 0x77, 0x59, 0xcb,
+ 0x21, 0xfb, 0x1b, 0x7b,
+ 0x83, 0xa9, 0xfe, 0xa4, 0x91, 0x30, 0x46, 0x93, 0xc3, 0x1c, 0x31, 0x0a,
+ 0x90, 0x9e, 0xd2, 0x39,
+ 0x4b, 0x3c, 0xb7, 0x48, 0x78, 0x9f, 0xdd, 0x3e, 0x5c, 0x22, 0xbc, 0x9d,
+ 0x5b, 0x4a, 0x0a, 0x67,
+ 0x4f, 0x45, 0xe6, 0xb1, 0x8a, 0x21, 0xd1, 0x50, 0x33, 0x86, 0x4c, 0x34,
+ 0xe7, 0xa4, 0x41, 0xa2,
+ 0x7b, 0x55, 0xfd, 0xee, 0xaa, 0x9b, 0x8d, 0xb3, 0xdd, 0x9e, 0x76, 0x7d,
+ 0x47, 0x08, 0xf8, 0x12,
+ 0xef, 0xf0, 0x99, 0xe3, 0x23, 0x39, 0xf2, 0xf8, 0xb3, 0x88, 0xb5, 0x31,
+ 0xaf, 0xeb, 0x28, 0x5f,
+ 0x9d, 0xd8, 0x43, 0x93, 0x73, 0xd3, 0x64, 0x6d, 0xdb, 0xb4, 0xdc, 0x66,
+ 0x7c, 0x26, 0x24, 0xa4,
+ 0x74, 0x8c, 0x42, 0x14, 0xdb, 0x0b, 0x9c, 0xcc, 0xd1, 0xca, 0xe1, 0x4b,
+ 0x31, 0x54, 0x83, 0xbd,
+ 0xc7, 0x4c, 0xf6, 0x16, 0x98, 0x3f, 0x8a, 0xd2, 0x93, 0x6a, 0x1a, 0xa1,
+ 0xbd, 0x88, 0xa3, 0xf1,
+ 0xca, 0x48, 0x80, 0x71, 0x90, 0xf0, 0x9d, 0x9a, 0x49, 0x6c, 0xf5, 0x22,
+ 0x95, 0xa3, 0x1c, 0xdd,
+ 0x6c, 0x59, 0x67, 0x47, 0xb2, 0x09, 0xb4, 0x6b, 0x70, 0x94, 0x84, 0x3b,
+ 0x3f, 0x75, 0xfa, 0x66,
+ 0xf3, 0x5c, 0xed, 0x49, 0xb8, 0x85, 0xd6, 0x31, 0x7d, 0x72, 0x20, 0xe8,
+ 0x1d, 0x24, 0x1a, 0x41,
+ 0x31, 0xe6, 0xcf, 0x09, 0x0f, 0xca, 0x53, 0x77, 0xea, 0x95, 0xf6, 0x5b,
+ 0x33, 0x98, 0x90, 0xd5,
+ 0x3e, 0x3f, 0x70, 0xf3, 0x7e, 0x5a, 0x42, 0x08, 0xe6, 0xc1, 0x61, 0x6d,
+ 0x45, 0xc4, 0xeb, 0x7a,
+ 0x01, 0x8f, 0x85, 0xaf, 0xdd, 0xce, 0x03, 0xfa, 0x6b, 0x29, 0x3c, 0xbb,
+ 0x2f, 0xda, 0x62, 0xa0,
+ 0xdb, 0xe0, 0x82, 0xbc, 0x03, 0x83, 0xae, 0x1b, 0x5d, 0x90, 0x8f, 0x78,
+ 0x0f, 0x47, 0x91, 0xef,
+ 0xc4, 0x1e, 0xba, 0x24, 0x3c, 0xae, 0x8f, 0x1f, 0x2e, 0x11, 0x5e, 0xaf,
+ 0xcc, 0x25, 0x05, 0xd2,
+ 0xe1, 0xa6, 0xa3, 0xb6, 0x8f, 0x67, 0xe0, 0x7d, 0xd4, 0xf5, 0x1e, 0xbc,
+ 0xf6, 0x6d, 0x31, 0x50,
+ 0xed, 0x2d, 0x50, 0x7e, 0x5a, 0x66, 0xf4, 0xcf, 0x65, 0xda, 0xcd, 0x84,
+ 0xf1, 0x9c, 0xec, 0xdc,
+ 0xe0, 0x29, 0x26, 0x19, 0x52, 0xa9, 0xe3, 0x87, 0xbf, 0xdc, 0x22, 0x07,
+ 0xd9, 0xb7, 0x53, 0xf0,
+ 0x14, 0x5e, 0xd6, 0x9b, 0xbc, 0x03, 0x3c, 0x15, 0x10, 0x71, 0xb6, 0x48,
+ 0x09, 0xd0, 0xa4, 0x57,
+ 0xdf, 0x99, 0xd3, 0x45, 0xf1, 0x3d, 0xa2, 0x75, 0x32, 0x34, 0x7f, 0xd1,
+ 0xb3, 0xa9, 0xda, 0x2a,
+ 0x50, 0xbb, 0xde, 0x29, 0xb5, 0x0c, 0xf0, 0x54, 0x40, 0x07, 0x9d, 0xe3,
+ 0x24, 0xc6, 0xd5, 0x9f,
+ 0xbe, 0xc4, 0xc2, 0x65, 0x4b, 0xfb, 0x01, 0x56, 0x98, 0xa6, 0x14, 0x69,
+ 0xa4, 0xf7, 0x9f, 0x60,
+ 0xab, 0x15, 0x91, 0x51, 0x2a, 0x36, 0x3e, 0xb9, 0xe3, 0xfe, 0x9e, 0x9a,
+ 0x82, 0xfd, 0x59, 0x97,
+ 0xae, 0xe3, 0x45, 0x07, 0x05, 0x46, 0x31, 0x2d, 0xe7, 0x73, 0x52, 0x88,
+ 0x11, 0xc9, 0x70, 0xf2,
+ 0x51, 0x34, 0x5b, 0x86, 0x68, 0xc2, 0xf3, 0xae, 0x2b, 0x2e, 0xa1, 0x58,
+ 0x0b, 0x1c, 0xb7, 0x3f,
+ 0x12, 0xfa, 0x4e, 0xff, 0x37, 0xe2, 0x36, 0x4c, 0xa9, 0x87, 0x3e, 0x54,
+ 0xeb, 0x49, 0x2b, 0x11,
+ 0x8f, 0x22, 0x0d, 0x6c, 0x44, 0x31, 0x52, 0x21, 0x72, 0x33, 0xe2, 0x32,
+ 0x97, 0x6f, 0x0f, 0xb5,
+ 0x1d, 0x23, 0xf1, 0x05, 0x46, 0x72, 0x27, 0x33, 0xa5, 0xd3, 0xa9, 0x62,
+ 0x9d, 0x15, 0x50, 0xbe,
+ 0xf4, 0x77, 0xf0, 0x82, 0xee, 0xaa, 0xdf, 0x92, 0xaf, 0xad, 0x94, 0x4f,
+ 0xd0, 0x67, 0xf7, 0xa7,
+ 0xd3, 0x12, 0x20, 0x8d, 0x24, 0x3c, 0xb6, 0xc7, 0x83, 0x1b, 0xac, 0xe9,
+ 0xb4, 0x58, 0x07, 0xa6,
+ 0xff, 0xd7, 0x1e, 0x81, 0x6d, 0x84, 0xc2, 0x83, 0xcc, 0x5d, 0xf3, 0xd0,
+ 0x1a, 0xd5, 0xc7, 0xcd,
+ 0x47, 0xb7, 0x44, 0x80, 0xad, 0x9e, 0xc9, 0x8c, 0xed, 0x0d, 0x6f, 0xa5,
+ 0x5c, 0xbb, 0xd7, 0xeb,
+ 0x15, 0xd1, 0x53, 0x34, 0x61, 0xcd, 0x3f, 0xef, 0x7b, 0x58, 0x8a, 0xf3,
+ 0x26, 0x0a, 0xc6, 0xf7,
+ 0x8b, 0x5b, 0x5c, 0x95, 0xb6, 0x8f, 0x5e, 0x4f, 0x1d, 0x97, 0x12, 0x9b,
+ 0x2b, 0x81, 0x44, 0x70,
+ 0xa0, 0xb5, 0x7f, 0x52, 0xa9, 0x18, 0x23, 0xa8, 0x80, 0x0e, 0xf9, 0x05,
+ 0x48, 0x4f, 0x69, 0xfd,
+ 0xf5, 0xf8, 0x75, 0x2d, 0x33, 0x64, 0xdc, 0x68, 0xc4, 0x84, 0xa8, 0xf4,
+ 0xff, 0xbd, 0x95, 0x07,
+ 0x28, 0xbc, 0x6f, 0xf5, 0xbb, 0x06, 0x78, 0x2a, 0x20, 0xe2, 0xaf, 0x90,
+ 0x12, 0x63, 0x8b, 0xae,
+ 0x57, 0x90, 0xc3, 0xe2, 0xe3, 0x23, 0xf9, 0xf7, 0x92, 0xd8, 0x29, 0x44,
+ 0xe9, 0x85, 0x38, 0x79,
+ 0xb2, 0x4f, 0x31, 0xad, 0x9e, 0xfa, 0x15, 0xe4, 0x29, 0x89, 0xc7, 0x51,
+ 0xa3, 0x06, 0x42, 0xec,
+ 0x24, 0x37, 0x9c, 0x3d, 0x6e, 0x07, 0x6c, 0x98, 0x91, 0xcd, 0x7c, 0xa8,
+ 0x15, 0x92, 0x56, 0x22,
+ 0xcf, 0xbe, 0x54, 0x27, 0xbf, 0x80, 0x92, 0x0e, 0x4d, 0xe1, 0x39, 0x30,
+ 0x06, 0x97, 0x35, 0xb8,
+ 0x89, 0x86, 0x95, 0x08, 0xcf, 0xd0, 0x58, 0x78, 0xcb, 0xc5, 0x6a, 0x2e,
+ 0x75, 0xf6, 0x80, 0xf3,
+ 0xdd, 0x44, 0x1a, 0xd8, 0x88, 0x62, 0xa4, 0x42, 0xe4, 0x66, 0x07, 0x64,
+ 0xed, 0xde, 0x1e, 0xa9,
+ 0x55, 0x4d, 0x0a, 0x7f, 0x9a, 0x7c, 0xff, 0xc0, 0x44, 0x8a, 0x51, 0xf1,
+ 0xb7, 0xf2, 0xfc, 0xfa,
+ 0x2b, 0xee, 0x23, 0xc7, 0x1f, 0x97, 0x7d, 0xe7, 0x9d, 0x99, 0xeb, 0x9e,
+ 0x63, 0xce, 0x2d, 0x8d,
+ 0x9b, 0x7c, 0xdb, 0xf7, 0xf8, 0x32, 0x6e, 0x34, 0x62, 0x42, 0x54, 0x7a,
+ 0x9e, 0xbf, 0xab, 0xe2,
+ 0xeb, 0x89, 0xc8, 0x1a, 0xd1, 0x87, 0xfe, 0x96, 0xdc, 0x2c, 0x45, 0x98,
+ 0x13, 0x05, 0x63, 0x9a,
+ 0xce, 0x31, 0xd1, 0x88, 0x62, 0x4e, 0x91, 0xf4, 0x26, 0xc8, 0x05, 0x8b,
+ 0x29, 0x4d, 0x57, 0x18,
+ 0xe5, 0xdf, 0xf2, 0x4f, 0x7d, 0xd9, 0xec, 0x13, 0xbb, 0x51, 0xee, 0x15,
+ 0x4a, 0x83, 0x7a, 0x95,
+ 0xb1, 0x1d, 0x7d, 0x9f, 0x3a, 0x6b, 0x10, 0x29, 0x94, 0xf2, 0x83, 0x5f,
+ 0xd2, 0xab, 0xe4, 0xcf,
+ 0x22, 0x93, 0x04, 0x59, 0xe5, 0xe6, 0x66, 0xc1, 0x28, 0x3b, 0xf4, 0xb4,
+ 0xf7, 0x0b, 0xd9, 0x64,
+ 0xbd, 0x96, 0x8e, 0x57, 0xef, 0x6a, 0x04, 0x9b, 0x25, 0xdd, 0x50, 0x67,
+ 0xd5, 0x5a, 0x39, 0x43,
+ 0xe9, 0x54, 0x01, 0x87, 0xa8, 0xd8, 0xf8, 0xa1, 0x0a, 0x7e, 0x3d, 0x2d,
+ 0x4d, 0x72, 0xa7, 0x19,
+ 0x23, 0x1c, 0x81, 0xf6, 0x38, 0x28, 0x65, 0x3b, 0x43, 0x12, 0xc8, 0x0f,
+ 0xd8, 0xd1, 0xbb, 0xc4,
+ 0x75, 0x03, 0xc7, 0xbb, 0x06, 0xc5, 0x9f, 0x36, 0xba, 0xe3, 0xdd, 0xf0,
+ 0x1e, 0x8e, 0xe1, 0x1d,
+ 0x9f, 0x05, 0x8a, 0x0e, 0x0a, 0x8c, 0x62, 0x5a, 0x0d, 0xe6, 0xa4, 0xd3,
+ 0x22, 0x51, 0xe0, 0x27,
+ 0xa2, 0x68, 0xb6, 0xcf, 0xd0, 0x47, 0x25, 0x9f, 0x56, 0x5c, 0x81, 0xb0,
+ 0x16, 0x38, 0xad, 0x7e,
+ 0x0f, 0xd9, 0xbf, 0xfa, 0x71, 0x90, 0x11, 0x7f, 0x0c, 0x54, 0x97, 0x36,
+ 0x76, 0x5c, 0x7b, 0xaf,
+ 0x54, 0xc2, 0x8f, 0xd0, 0x47, 0xb2, 0xfc, 0x3a, 0x2f, 0xa3, 0x6d, 0x4a,
+ 0x98, 0x28, 0x9e, 0x5a,
+ 0x86, 0x5f, 0x2a, 0xf2, 0xbe, 0x40, 0x49, 0x07, 0xc7, 0x91, 0xfd, 0x18,
+ 0x03, 0xaa, 0xfb, 0x5c,
+ 0x93, 0x8e, 0x79, 0xc6, 0xdf, 0x8d, 0x76, 0xe8, 0xbc, 0xc9, 0x77, 0xeb,
+ 0x25, 0xa0, 0x3d, 0xab,
+ 0x5a, 0x94, 0xb5, 0x85, 0xeb, 0xec, 0xee, 0xbf, 0x48, 0xde, 0xc6, 0xc7,
+ 0xc1, 0xae, 0x87, 0x55,
+ 0x3d, 0x6d, 0x3c, 0xc1, 0xda, 0xcb, 0x47, 0xc5, 0x5b, 0xba, 0x25, 0x63,
+ 0x34, 0x69, 0x4d, 0x59,
+ 0x94, 0xa5, 0x64, 0x0d, 0x89, 0xa2, 0x7f, 0x4b, 0x6e, 0x16, 0xc3, 0x4c,
+ 0xe8, 0xe3, 0xd0, 0x4d,
+ 0x56, 0x1f, 0x46, 0x4d, 0x3e, 0xed, 0xfa, 0x0d, 0xf9, 0xf1, 0x15, 0xff,
+ 0xc6, 0x5f, 0x5a, 0xd9,
+ 0xbf, 0x4b, 0x47, 0xca, 0x96, 0x35, 0x02, 0xac, 0xf3, 0x8f, 0x28, 0xd2,
+ 0x8b, 0x2d, 0xfd, 0xc0,
+ 0x95, 0x2a, 0xe1, 0xa2, 0x54, 0x6c, 0x7c, 0xb1, 0x05, 0x3f, 0xff, 0xf7,
+ 0xc7, 0x39, 0xb2, 0xed,
+ 0xb9, 0xef, 0xdf, 0xae, 0x1d, 0xd4, 0x08, 0xf5, 0x4a, 0x79, 0xa0, 0xce,
+ 0x69, 0xb4, 0x72, 0x86,
+ 0x11, 0xa8, 0x02, 0xcd, 0x93, 0x73, 0x33, 0x81, 0x14, 0xfc, 0x7a, 0x5a,
+ 0x9a, 0xe4, 0x8d, 0x32,
+ 0x0b, 0xa0, 0xee, 0x03, 0x83, 0x2e, 0x1d, 0x11, 0x63, 0xf0, 0x67, 0x9f,
+ 0xca, 0xb2, 0x30, 0x6a,
+ 0x71, 0x7a, 0x96, 0x42, 0xf4, 0x7b, 0x93, 0x58, 0xd5, 0x47, 0x2d, 0x59,
+ 0xa2, 0x60, 0xaa, 0xd8,
+ 0xb0, 0x92, 0xf8, 0x30, 0xe7, 0xa5, 0x13, 0xd3, 0xff, 0xdb, 0xbf, 0xe4,
+ 0xfd, 0x71, 0x86, 0x6f,
+ 0x1c, 0xac, 0x74, 0xaa, 0x9b, 0xbc, 0x24, 0xc9, 0xce, 0xfa, 0x95, 0xd9,
+ 0xb2, 0xcf, 0x32, 0x1e,
+ 0xdc, 0xcb, 0x9f, 0x77, 0x55, 0xac, 0xa7, 0xb8, 0x8f, 0x4f, 0x3b, 0xdf,
+ 0xc2, 0x04, 0x7c, 0x09,
+ 0xa8, 0x47, 0xdd, 0x63, 0x8e, 0xa7, 0x3b, 0x74, 0x5e, 0x85, 0xda, 0x94,
+ 0xf3, 0x50, 0xff, 0xb4,
+ 0xc1, 0xe8, 0x6e, 0x72, 0x13, 0xde, 0x80, 0x8b, 0x2a, 0x9c, 0x92, 0xbd,
+ 0x5f, 0x11, 0x2c, 0xb7,
+ 0x2a, 0x61, 0xa6, 0x68, 0xc2, 0x59, 0x7e, 0x1d, 0xf6, 0xb0, 0xd7, 0x25,
+ 0x4c, 0x14, 0x4f, 0x2d,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xac, 0x3e, 0x8c, 0x9a, 0x7c, 0x19, 0x37, 0x1a, 0x31, 0x21, 0x2a, 0x3d,
+ 0x4f, 0xbe, 0xb4, 0x71,
+ 0x48, 0x6e, 0xfb, 0x7a, 0xdc, 0x0e, 0xd8, 0xf3, 0xe1, 0x59, 0xf8, 0x93,
+ 0x2a, 0xe7, 0xac, 0x44,
+ 0x7a, 0xda, 0x78, 0x41, 0x77, 0x55, 0x8e, 0x49, 0xb6, 0xb7, 0x4a, 0xc6,
+ 0x68, 0xd2, 0x9a, 0xb2,
+ },
+ { /* 2 */
+ 0x47, 0x35, 0xef, 0xb5, 0xef, 0xef, 0x30, 0xe6, 0xaf, 0xa0, 0x89, 0x86,
+ 0x13, 0x85, 0x5f, 0xe6,
+ 0xe9, 0x63, 0xba, 0xe4, 0xba, 0xba, 0x98, 0x67, 0x18, 0xd6, 0x5a, 0x94,
+ 0x21, 0x7c, 0xa5, 0x67,
+ 0x8f, 0xb2, 0x8e, 0xde, 0x8e, 0x8e, 0xf7, 0x86, 0xb8, 0x77, 0x64, 0xab,
+ 0x6e, 0x29, 0x15, 0x86,
+ 0x4e, 0xe2, 0x6e, 0xfc, 0x6e, 0x6e, 0x95, 0xad, 0x61, 0xf8, 0xdd, 0x44,
+ 0x5e, 0x69, 0xe5, 0xad,
+ 0x03, 0xab, 0x76, 0x99, 0x76, 0x76, 0x7a, 0x58, 0x6f, 0xdf, 0x1c, 0xac,
+ 0xd8, 0xe3, 0x3e, 0x58,
+ 0xcf, 0xca, 0x1e, 0xed, 0x1e, 0x1e, 0xa4, 0x59, 0xec, 0x5e, 0x60, 0xd2,
+ 0x46, 0x49, 0x9d, 0x59,
+ 0x0c, 0xe9, 0x1b, 0x21, 0x1b, 0x1b, 0x2b, 0xa3, 0x7f, 0xfa, 0x70, 0xf5,
+ 0xe6, 0x0a, 0xf8, 0xa3,
+ 0xba, 0xae, 0x78, 0x32, 0x78, 0x78, 0xd5, 0xa7, 0x36, 0xbb, 0x43, 0xce,
+ 0xdb, 0xe7, 0x31, 0xa7,
+ 0x12, 0x6d, 0xc1, 0x92, 0xc1, 0xc1, 0x89, 0x96, 0x5f, 0xb0, 0xa8, 0x47,
+ 0x9a, 0x1b, 0xb7, 0x96,
+ 0xf0, 0xaa, 0x1f, 0xd1, 0x1f, 0x1f, 0x59, 0x6b, 0xc3, 0x15, 0x0f, 0xd9,
+ 0x66, 0x88, 0x3d, 0x6b,
+ 0x2b, 0x98, 0x2c, 0x5f, 0x2c, 0x2c, 0x80, 0x14, 0xae, 0x86, 0xff, 0xd7,
+ 0xc9, 0xdf, 0x6b, 0x14,
+ 0x2c, 0xd5, 0x53, 0xd9, 0x53, 0x53, 0xe3, 0x2d, 0x55, 0x0f, 0x72, 0x28,
+ 0xf2, 0x3a, 0xbc, 0x2d,
+ 0x32, 0x51, 0x89, 0x6a, 0x89, 0x89, 0x41, 0x18, 0x75, 0x45, 0xaa, 0x9a,
+ 0x8e, 0x2b, 0xf3, 0x18,
+ 0x1b, 0xba, 0x40, 0xdb, 0x40, 0x40, 0x2c, 0xdd, 0x91, 0xe8, 0xfc, 0x85,
+ 0xd7, 0xf7, 0x0d, 0xdd,
+ 0xd2, 0xe5, 0xb2, 0xc7, 0xb2, 0xb2, 0x7c, 0x34, 0xa3, 0xcb, 0xa4, 0xcc,
+ 0xe2, 0xbb, 0xec, 0x34,
+ 0x08, 0x0f, 0x12, 0x3e, 0x12, 0x12, 0x32, 0xc2, 0xeb, 0xac, 0xe1, 0xa6,
+ 0x05, 0x0c, 0x11, 0xc2,
+ 0xdd, 0xa7, 0xdf, 0x7f, 0xdf, 0xdf, 0x2d, 0xcf, 0xb3, 0xee, 0xc8, 0x95,
+ 0xdc, 0x52, 0x2a, 0xcf,
+ 0x60, 0x44, 0xd8, 0xcb, 0xd8, 0xd8, 0x9b, 0x51, 0x7e, 0xdc, 0x06, 0xa4,
+ 0x3c, 0x50, 0xcc, 0x51,
+ 0x72, 0x29, 0x19, 0x59, 0x19, 0x19, 0x12, 0xc7, 0x21, 0x6c, 0xae, 0xe3,
+ 0xa6, 0x4b, 0x7b, 0xc7,
+ 0x11, 0xc6, 0xb7, 0x0b, 0xb7, 0xb7, 0xf3, 0xce, 0x30, 0x6f, 0xb4, 0xeb,
+ 0x42, 0xf8, 0x89, 0xce,
+ 0x06, 0x95, 0xec, 0xf1, 0xec, 0xec, 0xf4, 0xb0, 0xde, 0x7d, 0x38, 0x9b,
+ 0x73, 0x05, 0x7c, 0xb0,
+ 0x5d, 0x57, 0x3c, 0x19, 0x3c, 0x3c, 0x8b, 0xb2, 0x1b, 0xbc, 0xc0, 0x67,
+ 0x8c, 0x92, 0xf9, 0xb2,
+ 0xe0, 0xb4, 0x3b, 0xad, 0x3b, 0x3b, 0x3d, 0x2c, 0xd6, 0x8e, 0x0e, 0x56,
+ 0x6c, 0x90, 0x1f, 0x2c,
+ 0x86, 0x65, 0x0f, 0x97, 0x0f, 0x0f, 0x52, 0xcd, 0x76, 0x2f, 0x30, 0x69,
+ 0x23, 0xc5, 0xaf, 0xcd,
+ 0xaa, 0xb0, 0x5c, 0x4e, 0x5c, 0x5c, 0xb1, 0xe0, 0x23, 0x20, 0x42, 0x41,
+ 0xd1, 0xff, 0x13, 0xe0,
+ 0x58, 0x69, 0xa6, 0x71, 0xa6, 0xa6, 0x05, 0x5a, 0xaa, 0x1e, 0xe4, 0x50,
+ 0x27, 0x74, 0xbb, 0x5a,
+ 0x24, 0xda, 0x41, 0xe7, 0x41, 0x41, 0xd1, 0xef, 0xbe, 0xa3, 0x93, 0x8e,
+ 0xf7, 0x36, 0xad, 0xef,
+ 0xdf, 0xd4, 0x3a, 0x91, 0x3a, 0x3a, 0xc0, 0x1e, 0xf9, 0xc5, 0x61, 0x5d,
+ 0x4c, 0x51, 0xbf, 0x1e,
+ 0x69, 0x93, 0x59, 0x82, 0x59, 0x59, 0x3e, 0x1a, 0xb0, 0x84, 0x52, 0x66,
+ 0x71, 0xbc, 0x76, 0x1a,
+ 0x7a, 0x26, 0x0b, 0x67, 0x0b, 0x0b, 0x20, 0x05, 0xca, 0xc0, 0x4f, 0x45,
+ 0xa3, 0x47, 0x6a, 0x05,
+ 0x67, 0x09, 0xa7, 0x4d, 0xa7, 0xa7, 0xf8, 0x68, 0x85, 0x55, 0x8b, 0x5b,
+ 0x07, 0xb5, 0x1b, 0x68,
+ 0xec, 0x5d, 0x20, 0x8c, 0x20, 0x20, 0x16, 0x8f, 0xa9, 0x74, 0x7e, 0xa3,
+ 0x8a, 0x9a, 0xe7, 0x8f,
+ 0x30, 0x22, 0x6c, 0x84, 0x6c, 0x6c, 0xac, 0xc9, 0x3f, 0x6e, 0x03, 0x52,
+ 0x1e, 0x28, 0x66, 0xc9,
+ 0x6a, 0x38, 0x2f, 0x1b, 0x2f, 0x2f, 0x44, 0x42, 0xdf, 0x5b, 0x4e, 0xca,
+ 0xa9, 0x5f, 0x48, 0x42,
+ 0x0e, 0x9a, 0xfe, 0xcf, 0xfe, 0xfe, 0xc6, 0x72, 0x35, 0xd1, 0xd9, 0x3d,
+ 0x76, 0x09, 0x6d, 0x72,
+ 0x43, 0xd3, 0xe6, 0xaa, 0xe6, 0xe6, 0x29, 0x87, 0x3b, 0xf6, 0x18, 0xd5,
+ 0xf0, 0x83, 0xb6, 0x87,
+ 0x2d, 0x0d, 0xc0, 0xae, 0xc0, 0xc0, 0x74, 0xa4, 0x70, 0xfb, 0xc7, 0x4c,
+ 0xba, 0xda, 0x17, 0xa4,
+ 0xb3, 0x79, 0xf9, 0x7b, 0xf9, 0xf9, 0x70, 0xec, 0xf8, 0xe3, 0x17, 0x0c,
+ 0x96, 0x0b, 0x8b, 0xec,
+ 0xe4, 0x52, 0x32, 0xb2, 0x32, 0x32, 0x24, 0x4d, 0x42, 0xd8, 0x9f, 0x05,
+ 0x8f, 0x96, 0xf6, 0x4d,
+ 0x22, 0x4f, 0xad, 0x16, 0xad, 0xad, 0x25, 0x5f, 0x60, 0xde, 0xab, 0x15,
+ 0x84, 0x33, 0xd1, 0x5f,
+ 0xab, 0x68, 0xcf, 0x39, 0xcf, 0xcf, 0x26, 0x69, 0x06, 0xd4, 0xf7, 0x25,
+ 0x99, 0x1f, 0xb8, 0x69,
+ 0x3d, 0x13, 0xe4, 0xd2, 0xe4, 0xe4, 0x10, 0xe3, 0x65, 0x60, 0xc6, 0xc3,
+ 0xb0, 0xc2, 0x35, 0xe3,
+ 0x34, 0xc4, 0x65, 0x9b, 0x65, 0x65, 0xb5, 0xa8, 0xab, 0x38, 0x92, 0x01,
+ 0xfd, 0x2e, 0x8f, 0xa8,
+ 0x90, 0xee, 0xc7, 0x1a, 0xc7, 0xc7, 0xc2, 0x3a, 0xbd, 0xc9, 0x09, 0x7d,
+ 0x5a, 0xd8, 0xf1, 0x3a,
+ 0x97, 0xa3, 0xb8, 0x9c, 0xb8, 0xb8, 0xa1, 0x03, 0x46, 0x40, 0x84, 0x82,
+ 0x61, 0x3d, 0x26, 0x03,
+ 0xb0, 0xd2, 0x8f, 0xe2, 0x8f, 0x8f, 0x0a, 0xb4, 0x97, 0x3c, 0x0b, 0xa0,
+ 0x4e, 0xe8, 0xb5, 0xb4,
+ 0xe5, 0x8a, 0xa1, 0xc5, 0xa1, 0xa1, 0xb3, 0xc4, 0x67, 0x2c, 0x2a, 0x61,
+ 0xc7, 0x76, 0x5d, 0xc4,
+ 0x42, 0x0b, 0x75, 0xdd, 0x75, 0x75, 0xbe, 0x0e, 0x1e, 0x02, 0xad, 0xb1,
+ 0xb8, 0x63, 0x1d, 0x0e,
+ 0x79, 0x8d, 0x7d, 0xfe, 0x7d, 0x7d, 0x5a, 0x5d, 0xa5, 0x1f, 0x53, 0xe9,
+ 0x7b, 0xa4, 0x54, 0x5d,
+ 0xc0, 0x88, 0x73, 0x55, 0x73, 0x73, 0xf5, 0xa2, 0xfc, 0x7b, 0x0c, 0x8b,
+ 0x78, 0xa0, 0x5b, 0xa2,
+ 0x18, 0x11, 0x36, 0x42, 0x36, 0x36, 0x56, 0x85, 0xfe, 0x37, 0xe0, 0x29,
+ 0x0f, 0x14, 0x33, 0x85,
+ 0x4b, 0xdc, 0xf4, 0x94, 0xf4, 0xf4, 0x1b, 0x45, 0xd0, 0x5a, 0xf9, 0x73,
+ 0xf5, 0x8f, 0xa7, 0x45,
+ 0xf7, 0xe7, 0x60, 0x57, 0x60, 0x60, 0x3a, 0x52, 0x38, 0x9c, 0x82, 0x26,
+ 0x5d, 0x6d, 0xea, 0x52,
+ 0xb8, 0xdd, 0x9d, 0xdc, 0x9d, 0x9d, 0x38, 0x76, 0x7c, 0x90, 0xea, 0x06,
+ 0x4b, 0xe4, 0xa4, 0x76,
+ 0xa6, 0x59, 0x47, 0x6f, 0x47, 0x47, 0x9a, 0x43, 0x5c, 0xda, 0x32, 0xb4,
+ 0x37, 0xf5, 0xeb, 0x43,
+ 0x59, 0xb1, 0x35, 0x06, 0x35, 0x35, 0x92, 0xd3, 0x8f, 0xea, 0x51, 0x34,
+ 0x6f, 0x94, 0x10, 0xd3,
+ 0x64, 0xa2, 0xd1, 0xd4, 0xd1, 0xd1, 0x82, 0x30, 0xea, 0x8a, 0x97, 0xf7,
+ 0xdf, 0x56, 0x25, 0x30,
+ 0x36, 0xb7, 0x80, 0x75, 0x80, 0x80, 0x58, 0x79, 0xe1, 0x13, 0x3b, 0xc9,
+ 0x6d, 0x2d, 0x1a, 0x79,
+ 0xb4, 0x34, 0x86, 0xfd, 0x86, 0x86, 0x13, 0xd5, 0x03, 0x6a, 0x9a, 0xf3,
+ 0xad, 0xee, 0x5c, 0xd5,
+ 0x81, 0x28, 0x70, 0x11, 0x70, 0x70, 0x31, 0xf4, 0x8d, 0xa6, 0xbd, 0x96,
+ 0x18, 0x20, 0x78, 0xf4,
+ 0x09, 0xd7, 0x81, 0x49, 0x81, 0x81, 0xa5, 0x4b, 0xce, 0x58, 0x54, 0xc2,
+ 0x4d, 0xec, 0xba, 0x4b,
+ 0x78, 0x55, 0xee, 0x89, 0xee, 0xee, 0xcd, 0xd4, 0x80, 0xeb, 0xe6, 0x8d,
+ 0x33, 0x44, 0xff, 0xd4,
+ 0xed, 0x85, 0xb3, 0xfb, 0xb3, 0xb3, 0x81, 0x06, 0x8c, 0x80, 0xcb, 0xc7,
+ 0xc2, 0x7a, 0x4c, 0x06,
+ 0x5f, 0x24, 0xd9, 0xf7, 0xd9, 0xd9, 0x66, 0x63, 0x51, 0x97, 0x69, 0xaf,
+ 0x1c, 0x91, 0x6c, 0x63,
+ 0xda, 0xea, 0xa0, 0xf9, 0xa0, 0xa0, 0x4e, 0xf6, 0x48, 0x67, 0x45, 0x6a,
+ 0xe7, 0xb7, 0xfd, 0xf6,
+ 0xc4, 0x6e, 0x7a, 0x4a, 0x7a, 0x7a, 0xec, 0xc3, 0x68, 0x2d, 0x9d, 0xd8,
+ 0x9b, 0xa6, 0xb2, 0xc3,
+ 0x29, 0xeb, 0xc9, 0xb1, 0xc9, 0xc9, 0x6d, 0xc5, 0xe4, 0xad, 0x56, 0x1f,
+ 0x59, 0xdc, 0xfe, 0xc5,
+ 0xad, 0xfd, 0x23, 0xc8, 0x23, 0x23, 0xd2, 0xd9, 0xd8, 0xa9, 0xcf, 0xbe,
+ 0xea, 0x1a, 0xc4, 0xd9,
+ 0x07, 0x4d, 0x7f, 0x86, 0x7f, 0x7f, 0x63, 0x39, 0xfb, 0x89, 0x8d, 0xff,
+ 0x3b, 0xe5, 0xd7, 0x39,
+ 0x82, 0x83, 0x06, 0x88, 0x06, 0x06, 0x4b, 0xac, 0xe2, 0x79, 0xa1, 0x3a,
+ 0xc0, 0xc3, 0x46, 0xac,
+ 0xe2, 0xc7, 0xde, 0x43, 0xde, 0xde, 0xd0, 0xfd, 0x9c, 0xa5, 0xa7, 0x9e,
+ 0xfc, 0x93, 0x8a, 0xfd,
+ 0x31, 0xfa, 0xff, 0xf3, 0xff, 0xff, 0x3b, 0x40, 0x1a, 0x9a, 0xb6, 0x36,
+ 0x56, 0xc8, 0xcd, 0x40,
+ 0x17, 0x53, 0x5b, 0xfa, 0x5b, 0x5b, 0x07, 0x7e, 0xee, 0x12, 0x8c, 0x70,
+ 0x31, 0xfd, 0xf5, 0x7e,
+ 0x9f, 0xac, 0xaa, 0xa2, 0xaa, 0xaa, 0x93, 0xc1, 0xad, 0xec, 0x65, 0x24,
+ 0x64, 0x31, 0x37, 0xc1,
+ 0x0b, 0xa4, 0x64, 0xa7, 0x64, 0x64, 0x48, 0x9a, 0x84, 0x73, 0xfd, 0x0a,
+ 0xdd, 0xef, 0x2f, 0x9a,
+ 0x16, 0x8b, 0xc8, 0x8d, 0xc8, 0xc8, 0x90, 0xf7, 0xcb, 0xe6, 0x39, 0x14,
+ 0x79, 0x1d, 0x5e, 0xf7,
+ 0x7f, 0x18, 0x91, 0x0f, 0x91, 0x91, 0xae, 0xed, 0x7b, 0x62, 0x6b, 0x72,
+ 0x08, 0xa1, 0x28, 0xed,
+ 0x23, 0x97, 0x3e, 0x61, 0x3e, 0x3e, 0xb2, 0xd6, 0x45, 0x2a, 0x1e, 0x71,
+ 0xcc, 0xd3, 0x7a, 0xd6,
+ 0x6b, 0xe0, 0xbc, 0x6c, 0xbc, 0xbc, 0xd3, 0xcb, 0xfa, 0xaf, 0xfb, 0xae,
+ 0xe1, 0xbf, 0xe3, 0xcb,
+ 0xa9, 0x1b, 0x2a, 0xd7, 0x2a, 0x2a, 0xcb, 0xb8, 0x4c, 0xff, 0x5e, 0xed,
+ 0x09, 0x1c, 0x2d, 0xb8,
+ 0x8b, 0x54, 0x87, 0xc1, 0x87, 0x87, 0xee, 0xe7, 0x2c, 0x21, 0xf5, 0xf8,
+ 0x8d, 0x2f, 0xfc, 0xe7,
+ 0xb7, 0x9f, 0xf0, 0x64, 0xf0, 0xf0, 0x69, 0x8d, 0x6c, 0xb5, 0x86, 0x5f,
+ 0x75, 0x0d, 0x62, 0x8d,
+ 0x13, 0xb5, 0x52, 0xe5, 0x52, 0x52, 0x1e, 0x1f, 0x7a, 0x44, 0x1d, 0x23,
+ 0xd2, 0xfb, 0x1c, 0x1f,
+ 0x1c, 0xf7, 0x3f, 0x5d, 0x3f, 0x3f, 0x4f, 0xe4, 0x6a, 0x61, 0x71, 0x7a,
+ 0xec, 0x12, 0xda, 0xe4,
+ 0xfb, 0x0e, 0x7b, 0x76, 0x7b, 0x7b, 0x11, 0xf1, 0x47, 0x66, 0xf2, 0xd3,
+ 0xbb, 0x67, 0x12, 0xf1,
+ 0x62, 0x37, 0x3d, 0x25, 0x3d, 0x3d, 0x76, 0x80, 0x34, 0xf7, 0xaf, 0x6c,
+ 0xac, 0x53, 0x59, 0x80,
+ 0xf2, 0xd9, 0xfa, 0x3f, 0xfa, 0xfa, 0xb4, 0xba, 0x89, 0x3e, 0xa6, 0x11,
+ 0xf6, 0x8b, 0xa8, 0xba,
+ 0x3b, 0x86, 0x08, 0x23, 0x08, 0x08, 0xe4, 0x53, 0xbb, 0x1d, 0xfe, 0x58,
+ 0xc3, 0xc7, 0x49, 0x53,
+ 0x9a, 0x92, 0x30, 0xca, 0x30, 0x30, 0x1d, 0x29, 0x1c, 0x4e, 0x41, 0x13,
+ 0xcf, 0xd7, 0x75, 0x29,
+ 0x75, 0x64, 0x66, 0xdf, 0x66, 0x66, 0x71, 0xfe, 0xda, 0xe5, 0x23, 0x1c,
+ 0x9d, 0xae, 0xac, 0xfe,
+ 0xea, 0xc8, 0xcc, 0x7d, 0xcc, 0xcc, 0xe2, 0x3f, 0x77, 0x09, 0x46, 0x38,
+ 0xf9, 0x9f, 0x9b, 0x3f,
+ 0xd0, 0x96, 0x57, 0x29, 0x57, 0x57, 0x91, 0xe5, 0xe9, 0xe0, 0x0d, 0x04,
+ 0x72, 0xb8, 0x79, 0xe5,
+ 0x2a, 0x40, 0xbf, 0x28, 0xbf, 0xbf, 0x17, 0x9d, 0x8b, 0x72, 0x4a, 0xb3,
+ 0x81, 0x3f, 0xc0, 0x9d,
+ 0x91, 0x36, 0x54, 0x6d, 0x54, 0x54, 0x55, 0xb3, 0x98, 0x3d, 0xbc, 0x19,
+ 0x12, 0x38, 0x5a, 0xb3,
+ 0x02, 0x73, 0xe5, 0xee, 0xe5, 0xe5, 0xed, 0xd1, 0x4a, 0x2b, 0xa9, 0xc8,
+ 0x90, 0x03, 0x95, 0xd1,
+ 0x46, 0xed, 0x7c, 0xc2, 0x7c, 0x7c, 0xa7, 0x6f, 0x8a, 0x54, 0x3c, 0xe2,
+ 0x5b, 0x65, 0xf4, 0x6f,
+ 0xa7, 0x81, 0xd4, 0x18, 0xd4, 0xd4, 0x0d, 0xca, 0x79, 0x2e, 0x87, 0xd0,
+ 0x7f, 0x15, 0x40, 0xca,
+ 0xdc, 0x7f, 0x4c, 0x08, 0x4c, 0x4c, 0xba, 0x46, 0x96, 0x1a, 0x7d, 0xf1,
+ 0x94, 0xb2, 0x81, 0x46,
+ 0x27, 0x71, 0x37, 0x7e, 0x37, 0x37, 0xab, 0xb7, 0xd1, 0x7c, 0x8f, 0x22,
+ 0x2f, 0xd5, 0x93, 0xb7,
+ 0x76, 0xcf, 0x10, 0x46, 0x10, 0x10, 0x0b, 0xa6, 0xb5, 0x3a, 0x3f, 0xb0,
+ 0x45, 0x4d, 0x92, 0xa6,
+ 0xa4, 0x2a, 0xa2, 0x81, 0xa2, 0xa2, 0x77, 0x92, 0x16, 0xf1, 0x9b, 0x7c,
+ 0xa7, 0xf6, 0x7e, 0x92,
+ 0xca, 0xf4, 0x84, 0x85, 0x84, 0x84, 0x2a, 0xb1, 0x5d, 0xfc, 0x44, 0xe5,
+ 0xed, 0xaf, 0xdf, 0xb1,
+ 0x96, 0x7b, 0x2b, 0xeb, 0x2b, 0x2b, 0x36, 0x8a, 0x63, 0xb4, 0x31, 0xe6,
+ 0x29, 0xdd, 0x8d, 0x8a,
+ 0x70, 0x5a, 0xfc, 0xb7, 0xfc, 0xfc, 0xff, 0x16, 0x6b, 0x47, 0x07, 0x2b,
+ 0x36, 0x48, 0xee, 0x16,
+ 0x54, 0x80, 0xbd, 0x50, 0xbd, 0xbd, 0x2e, 0xf9, 0xd5, 0xe4, 0x94, 0xa5,
+ 0xc1, 0x7e, 0x43, 0xf9,
+ 0xe1, 0x6c, 0xa8, 0xda, 0xa8, 0xa8, 0xaa, 0xa5, 0xf3, 0x7a, 0xbb, 0x32,
+ 0x24, 0x70, 0xb4, 0xa5,
+ 0x6f, 0x06, 0xb5, 0x73, 0xb5, 0xb5, 0xca, 0xaa, 0x6e, 0xf9, 0x6a, 0xfd,
+ 0x02, 0xb9, 0x0a, 0xaa,
+ 0x39, 0xf5, 0xed, 0xcd, 0xed, 0xed, 0x09, 0x82, 0xf1, 0x36, 0x57, 0x90,
+ 0x53, 0xc4, 0xdc, 0x82,
+ 0x33, 0x89, 0x1a, 0x1d, 0x1a, 0x1a, 0xd6, 0x91, 0x50, 0xb1, 0x1f, 0xfe,
+ 0xc6, 0xcb, 0x58, 0x91,
+ 0xdb, 0x32, 0x33, 0x8e, 0x33, 0x33, 0xd9, 0x7f, 0x6d, 0x93, 0xf0, 0x0e,
+ 0xaf, 0x57, 0x56, 0x7f,
+ 0xa0, 0xcc, 0xab, 0x9e, 0xab, 0xab, 0x6e, 0xf3, 0x82, 0xa7, 0x0a, 0x2f,
+ 0x44, 0xf0, 0x97, 0xf3,
+ 0xfe, 0x30, 0xe1, 0x1e, 0xe1, 0xe1, 0x9f, 0x19, 0xf6, 0xc4, 0xd6, 0xe4,
+ 0x10, 0x81, 0x50, 0x19,
+ 0xb2, 0xa1, 0x6a, 0x0c, 0x6a, 0x6a, 0xe7, 0x65, 0xdd, 0x17, 0xa2, 0x68,
+ 0xde, 0xeb, 0x20, 0x65,
+ 0x10, 0x1e, 0x24, 0x7c, 0x24, 0x24, 0x64, 0x47, 0x15, 0x9b, 0x01, 0x8f,
+ 0x0a, 0x18, 0x22, 0x47,
+ 0x71, 0x82, 0x6f, 0xc0, 0x6f, 0x6f, 0x68, 0x9f, 0x4e, 0xb3, 0xb2, 0x4f,
+ 0x7e, 0xa8, 0x45, 0x9f,
+ 0x87, 0xbd, 0x9c, 0xe0, 0x9c, 0x9c, 0xc5, 0x44, 0x53, 0xdb, 0x85, 0x0d,
+ 0x6b, 0x25, 0x04, 0x44,
+ 0x35, 0x1c, 0xf6, 0xec, 0xf6, 0xf6, 0x22, 0x21, 0x8e, 0xcc, 0x27, 0x65,
+ 0xb5, 0xce, 0x24, 0x21,
+ 0x38, 0x2d, 0x7e, 0xba, 0x7e, 0x7e, 0x9e, 0x0b, 0xd4, 0xc2, 0xe2, 0xf4,
+ 0x1b, 0x24, 0x77, 0x0b,
+ 0x52, 0x15, 0x51, 0xa1, 0x51, 0x51, 0xda, 0x49, 0x0b, 0x99, 0xac, 0x3e,
+ 0xb2, 0x7b, 0x3f, 0x49,
+ 0x65, 0x7a, 0x42, 0xa3, 0x42, 0x42, 0x15, 0xb9, 0xcf, 0x7e, 0x22, 0x93,
+ 0x97, 0xb6, 0x8e, 0xb9,
+ 0xde, 0x0c, 0xa9, 0xe6, 0xa9, 0xa9, 0x57, 0x97, 0xdc, 0x31, 0xd4, 0x39,
+ 0x04, 0xb1, 0x14, 0x97,
+ 0x8e, 0x6a, 0x1d, 0xa9, 0x1d, 0x1d, 0x60, 0x0f, 0x9d, 0x83, 0xd1, 0xcf,
+ 0x26, 0xc9, 0xbe, 0x0f,
+ 0xa8, 0xc3, 0xb9, 0xa0, 0xb9, 0xb9, 0x5c, 0x31, 0x69, 0x0b, 0xeb, 0x89,
+ 0x41, 0xfc, 0x86, 0x31,
+ 0xfd, 0x9b, 0x97, 0x87, 0x97, 0x97, 0xe5, 0x41, 0x99, 0x1b, 0xca, 0x48,
+ 0xc8, 0x62, 0x6e, 0x41,
+ 0x2e, 0xa6, 0xb6, 0x37, 0xb6, 0xb6, 0x0e, 0xfc, 0x1f, 0x24, 0xdb, 0xe0,
+ 0x62, 0x39, 0x29, 0xfc,
+ 0x01, 0xd8, 0x93, 0x77, 0x93, 0x93, 0x97, 0x89, 0x25, 0xf4, 0xb5, 0x64,
+ 0x48, 0xe0, 0xab, 0x89,
+ 0xf8, 0xa5, 0x0d, 0xef, 0x0d, 0x0d, 0x6b, 0xa9, 0x28, 0xb9, 0xee, 0x7f,
+ 0x63, 0x84, 0x2c, 0xa9,
+ 0x8c, 0x19, 0xf8, 0x47, 0xf8, 0xf8, 0x8d, 0xde, 0xd7, 0xa8, 0x78, 0x07,
+ 0xb6, 0xca, 0x2b, 0xde,
+ 0xbb, 0x76, 0xeb, 0x45, 0xeb, 0xeb, 0x42, 0x2e, 0x13, 0x4f, 0xf6, 0xaa,
+ 0x93, 0x07, 0x9a, 0x2e,
+ 0x49, 0xaf, 0x11, 0x7a, 0x11, 0x11, 0xf6, 0x94, 0x9a, 0x71, 0x50, 0xbb,
+ 0x65, 0x8c, 0x32, 0x94,
+ 0x44, 0x9e, 0x99, 0x2c, 0x99, 0x99, 0x4a, 0xbe, 0xc0, 0x7f, 0x95, 0x2a,
+ 0xcb, 0x66, 0x61, 0xbe,
+ 0xbf, 0x90, 0xe2, 0x5a, 0xe2, 0xe2, 0x5b, 0x4f, 0x87, 0x19, 0x67, 0xf9,
+ 0x70, 0x01, 0x73, 0x4f,
+ 0xef, 0xf6, 0x56, 0x15, 0x56, 0x56, 0x6c, 0xd7, 0xc6, 0xab, 0x62, 0x0f,
+ 0x52, 0x79, 0xd9, 0xd7,
+ 0xfc, 0x43, 0x04, 0xf0, 0x04, 0x04, 0x72, 0xc8, 0xbc, 0xef, 0x7f, 0x2c,
+ 0x80, 0x82, 0xc5, 0xc8,
+ 0x3a, 0x5e, 0x9b, 0x54, 0x9b, 0x9b, 0x73, 0xda, 0x9e, 0xe9, 0x4b, 0x3c,
+ 0x8b, 0x27, 0xe2, 0xda,
+ 0xb1, 0x0a, 0x1c, 0x95, 0x1c, 0x1c, 0x9d, 0x3d, 0xb2, 0xc8, 0xbe, 0xc4,
+ 0x06, 0x08, 0x1e, 0x3d,
+ 0xf9, 0x7d, 0x9e, 0x98, 0x9e, 0x9e, 0xfc, 0x20, 0x0d, 0x4d, 0x5b, 0x1b,
+ 0x2b, 0x64, 0x87, 0x20,
+ 0x99, 0x39, 0x46, 0x53, 0x46, 0x46, 0x67, 0x71, 0x73, 0x91, 0x5d, 0xbf,
+ 0x17, 0x34, 0x4b, 0x71,
+ 0xd8, 0x99, 0x45, 0x17, 0x45, 0x45, 0xa3, 0x27, 0x02, 0x4c, 0xec, 0xa2,
+ 0x77, 0xb4, 0x68, 0x27,
+ 0xc9, 0x5f, 0xf2, 0x1c, 0xf2, 0xf2, 0x50, 0xe9, 0x32, 0x23, 0x58, 0x49,
+ 0x35, 0x4c, 0xe1, 0xe9,
+ 0x61, 0x9c, 0x4b, 0xbc, 0x4b, 0x4b, 0x0c, 0xd8, 0x5b, 0x28, 0xb3, 0xc0,
+ 0x74, 0xb0, 0x67, 0xd8,
+ 0x3c, 0xcb, 0x77, 0xa5, 0x77, 0x77, 0x87, 0x6a, 0x40, 0x94, 0x73, 0xa7,
+ 0xf8, 0x22, 0x9e, 0x6a,
+ 0x89, 0x27, 0x62, 0x2f, 0x62, 0x62, 0x03, 0x36, 0x66, 0x0a, 0x5c, 0x30,
+ 0x1d, 0x2c, 0x69, 0x36,
+ 0x0f, 0x42, 0x6d, 0xb8, 0x6d, 0x6d, 0x51, 0xfb, 0x10, 0x25, 0x6c, 0x59,
+ 0x3e, 0xe9, 0xc6, 0xfb,
+ 0x5c, 0x8f, 0xaf, 0x6e, 0xaf, 0xaf, 0x1c, 0x3b, 0x3e, 0x48, 0x75, 0x03,
+ 0xc4, 0x72, 0x52, 0x3b,
+ 0xbe, 0x48, 0x71, 0x2d, 0x71, 0x71, 0xcc, 0xc6, 0xa2, 0xed, 0xd2, 0x9d,
+ 0x38, 0xe1, 0xd8, 0xc6,
+ 0xc2, 0xfb, 0x96, 0xbb, 0x96, 0x96, 0x18, 0x73, 0xb6, 0x50, 0xa5, 0x43,
+ 0xe8, 0xa3, 0xce, 0x73,
+ 0xc5, 0xb6, 0xe9, 0x3d, 0xe9, 0xe9, 0x7b, 0x4a, 0x4d, 0xd9, 0x28, 0xbc,
+ 0xd3, 0x46, 0x19, 0x4a,
+ 0x88, 0xff, 0xf1, 0x58, 0xf1, 0xf1, 0x94, 0xbf, 0x43, 0xfe, 0xe9, 0x54,
+ 0x55, 0xcc, 0xc2, 0xbf,
+ 0xa1, 0x14, 0x38, 0xe9, 0x38, 0x38, 0xf9, 0x7a, 0xa7, 0x53, 0xbf, 0x4b,
+ 0x0c, 0x10, 0x3c, 0x7a,
+ 0x1d, 0x2f, 0xac, 0x2a, 0xac, 0xac, 0xd8, 0x6d, 0x4f, 0x95, 0xc4, 0x1e,
+ 0xa4, 0xf2, 0x71, 0x6d,
+ 0xc7, 0xc5, 0x0c, 0xd3, 0x0c, 0x0c, 0x96, 0x9b, 0x07, 0xf2, 0x81, 0x74,
+ 0x43, 0x45, 0x8c, 0x9b,
+ 0x6c, 0xad, 0xc3, 0xea, 0xc3, 0xc3, 0xb0, 0xf2, 0x01, 0x26, 0x76, 0x51,
+ 0xda, 0x5a, 0x34, 0xf2,
+ 0x85, 0xce, 0x79, 0x0e, 0x79, 0x79, 0x28, 0x95, 0x19, 0xf0, 0x2c, 0xc5,
+ 0xfb, 0x26, 0x91, 0x95,
+ 0x9d, 0xdf, 0x4f, 0x4c, 0x4f, 0x4f, 0x7e, 0x10, 0xe7, 0xc7, 0xcc, 0xec,
+ 0xf4, 0x32, 0xa2, 0x10,
+ 0xd3, 0x3d, 0x21, 0xb0, 0x21, 0x21, 0xeb, 0xbd, 0x86, 0x3f, 0x11, 0xa8,
+ 0xaa, 0x5b, 0x47, 0xbd,
+ 0xd1, 0x4e, 0xc4, 0x5e, 0xc4, 0xc4, 0x06, 0x6c, 0xcc, 0x14, 0xb8, 0x60,
+ 0x3a, 0x58, 0xd2, 0x6c,
+ 0x1e, 0x84, 0xda, 0xb3, 0xda, 0xda, 0xa2, 0x35, 0x20, 0x4a, 0xd8, 0xb2,
+ 0x7c, 0x11, 0x4f, 0x35,
+ 0x3e, 0xb8, 0x92, 0x4b, 0x92, 0x92, 0x6a, 0xbb, 0x0a, 0xbf, 0xda, 0x6f,
+ 0x68, 0x21, 0x0b, 0xbb,
+ 0x84, 0x16, 0xea, 0x79, 0xea, 0xea, 0xbf, 0x1c, 0x3c, 0x04, 0x99, 0xa1,
+ 0xb3, 0xc6, 0x3a, 0x1c,
+ 0x2f, 0x7e, 0x25, 0x40, 0x25, 0x25, 0x99, 0x75, 0x3a, 0xd0, 0x6e, 0x84,
+ 0x2a, 0xd9, 0x82, 0x75,
+ 0x7d, 0x6b, 0x74, 0xe1, 0x74, 0x74, 0x43, 0x3c, 0x31, 0x49, 0xc2, 0xba,
+ 0x98, 0xa2, 0xbd, 0x3c,
+ 0x74, 0xbc, 0xf5, 0xa8, 0xf5, 0xf5, 0xe6, 0x77, 0xff, 0x11, 0x96, 0x78,
+ 0xd5, 0x4e, 0x07, 0x77,
+ 0x41, 0xa0, 0x03, 0x44, 0x03, 0x03, 0xc4, 0x56, 0x71, 0xdd, 0xb1, 0x1d,
+ 0x60, 0x80, 0x23, 0x56,
+ 0x50, 0x66, 0xb4, 0x4f, 0xb4, 0xb4, 0x37, 0x98, 0x41, 0xb2, 0x05, 0xf6,
+ 0x22, 0x78, 0xaa, 0x98,
+ 0x21, 0xe4, 0xdb, 0x8f, 0xdb, 0xdb, 0x5f, 0x07, 0x0f, 0x01, 0xb7, 0xb9,
+ 0x5c, 0xd0, 0xef, 0x07,
+ 0x55, 0x58, 0x2e, 0x27, 0x2e, 0x2e, 0xb9, 0x70, 0xf0, 0x10, 0x21, 0xc1,
+ 0x89, 0x9e, 0xe8, 0x70,
+ 0xe7, 0xf9, 0x44, 0x2b, 0x44, 0x44, 0x5e, 0x15, 0x2d, 0x07, 0x83, 0xa9,
+ 0x57, 0x75, 0xc8, 0x15,
+ 0xcd, 0xb9, 0xfb, 0x03, 0xfb, 0xfb, 0x49, 0x88, 0xa6, 0x75, 0xc9, 0x1a,
+ 0xd6, 0x4a, 0x08, 0x88,
+ 0x0d, 0x31, 0x88, 0x56, 0x88, 0x88, 0xbc, 0x2a, 0x5a, 0x0e, 0xc5, 0x91,
+ 0xae, 0xea, 0x53, 0x2a,
+ 0x7c, 0xb3, 0xe7, 0x96, 0xe7, 0xe7, 0xd4, 0xb5, 0x14, 0xbd, 0x77, 0xde,
+ 0xd0, 0x42, 0x16, 0xb5,
+ 0x37, 0x6f, 0x13, 0x02, 0x13, 0x13, 0xcf, 0xf0, 0xc4, 0xe7, 0x8e, 0xad,
+ 0x25, 0xcd, 0xb1, 0xf0,
+ 0x1a, 0x62, 0xd3, 0xac, 0xd3, 0xd3, 0xbb, 0x54, 0xb4, 0x1c, 0x49, 0xe1,
+ 0x9f, 0x17, 0xa6, 0x54,
+ 0xa2, 0xbf, 0x4e, 0x70, 0x4e, 0x4e, 0x83, 0x22, 0xc8, 0x8c, 0xa3, 0xe7,
+ 0xd4, 0xf3, 0x02, 0x22,
+ 0xaf, 0x8e, 0xc6, 0x26, 0xc6, 0xc6, 0x3f, 0x08, 0x92, 0x82, 0x66, 0x76,
+ 0x7a, 0x19, 0x51, 0x08,
+ 0xf6, 0x3f, 0xf3, 0x20, 0xf3, 0xf3, 0xad, 0xdb, 0x1d, 0x68, 0x37, 0x42,
+ 0x15, 0x8d, 0x41, 0xdb,
+ 0xe8, 0xbb, 0x29, 0x93, 0x29, 0x29, 0x0f, 0xee, 0x3d, 0x22, 0xef, 0xf0,
+ 0x69, 0x9c, 0x0e, 0xee,
+ 0x7e, 0xc0, 0x02, 0x78, 0x02, 0x02, 0x39, 0x64, 0x5e, 0x96, 0xde, 0x16,
+ 0x40, 0x41, 0x83, 0x64,
+ 0x5e, 0xfc, 0x4a, 0x80, 0x4a, 0x4a, 0xf1, 0xea, 0x74, 0x63, 0xdc, 0xcb,
+ 0x54, 0x71, 0xc7, 0xea,
+ 0xfa, 0xd6, 0xe8, 0x01, 0xe8, 0xe8, 0x86, 0x78, 0x62, 0x92, 0x47, 0xb7,
+ 0xf3, 0x87, 0xb9, 0x78,
+ 0xb5, 0xec, 0x15, 0x8a, 0x15, 0x15, 0x84, 0x5c, 0x26, 0x9e, 0x2f, 0x97,
+ 0xe5, 0x0e, 0xf7, 0x5c,
+ 0x92, 0x9d, 0x22, 0xf4, 0x22, 0x22, 0x2f, 0xeb, 0xf7, 0xe2, 0xa0, 0xb5,
+ 0xca, 0xdb, 0x64, 0xeb,
+ 0x56, 0xf3, 0x58, 0xbe, 0x58, 0x58, 0xc3, 0x28, 0x9f, 0xcf, 0x3d, 0x6d,
+ 0x51, 0x7d, 0xd6, 0x28,
+ 0xf1, 0x72, 0x8c, 0xa6, 0x8c, 0x8c, 0xce, 0xe2, 0xe6, 0xe1, 0xba, 0xbd,
+ 0x2e, 0x68, 0x96, 0xe2,
+ 0x04, 0xe6, 0x09, 0x1f, 0x09, 0x09, 0x19, 0x61, 0x94, 0x56, 0x91, 0x53,
+ 0xe3, 0x06, 0xe9, 0x61,
+ 0x6e, 0xde, 0x26, 0x04, 0x26, 0x26, 0x5d, 0x23, 0x4b, 0x0d, 0xdf, 0x99,
+ 0x4a, 0x59, 0xa1, 0x23,
+ 0xa5, 0xf2, 0x31, 0xf6, 0x31, 0x31, 0xe0, 0x1b, 0x33, 0x05, 0x2e, 0x18,
+ 0xef, 0x16, 0xd5, 0x1b,
+ 0xe6, 0x21, 0xd7, 0x5c, 0xd7, 0xd7, 0xc9, 0x9c, 0x08, 0xf3, 0x36, 0xcd,
+ 0x1f, 0x95, 0x63, 0x9c,
+ 0xc8, 0x87, 0x61, 0x6b, 0x61, 0x61, 0xc7, 0x60, 0x17, 0xd7, 0xed, 0x2d,
+ 0x7d, 0xac, 0x4a, 0x60,
+ 0x7b, 0xfe, 0x98, 0x10, 0x98, 0x98, 0xb7, 0x8c, 0xef, 0x34, 0xfa, 0x21,
+ 0xeb, 0xa7, 0xc1, 0x8c,
+ 0x73, 0xf1, 0x8a, 0x2e, 0x8a, 0x8a, 0x85, 0x4e, 0x04, 0x98, 0x1b, 0x87,
+ 0xee, 0xab, 0xd0, 0x4e,
+ 0x51, 0xbe, 0x27, 0x38, 0x27, 0x27, 0xa0, 0x11, 0x64, 0x46, 0xb0, 0x92,
+ 0x6a, 0x98, 0x01, 0x11,
+ 0x95, 0xd0, 0x5d, 0x72, 0x5d, 0x5d, 0x4c, 0xd2, 0x0c, 0x6b, 0x2d, 0x4a,
+ 0xf1, 0x3e, 0xb3, 0xd2,
+ 0x66, 0xd1, 0x34, 0x3a, 0x34, 0x34, 0x6f, 0xe1, 0xa0, 0xa1, 0x3e, 0x3f,
+ 0x4f, 0x55, 0xb0, 0xe1,
+ 0xd6, 0x03, 0xbb, 0xd8, 0xbb, 0xbb, 0x65, 0x55, 0x37, 0x9d, 0x35, 0x9f,
+ 0x01, 0xbd, 0x05, 0x55,
+ 0x5b, 0xc2, 0xd0, 0xe8, 0xd0, 0xd0, 0x7f, 0x02, 0xc5, 0xc1, 0xf8, 0xfc,
+ 0xff, 0x97, 0x85, 0x02,
+ 0xe3, 0x1f, 0x4d, 0x34, 0x4d, 0x4d, 0x47, 0x74, 0xb9, 0x51, 0x12, 0xfa,
+ 0xb4, 0x73, 0x21, 0x74,
+ 0x63, 0xef, 0xae, 0x52, 0xae, 0xae, 0xe1, 0x09, 0x11, 0x03, 0x1a, 0x08,
+ 0xe4, 0xb3, 0xf2, 0x09,
+ 0x9b, 0x4a, 0xa3, 0xbd, 0xa3, 0xa3, 0x8a, 0xa0, 0x39, 0xba, 0xf4, 0x77,
+ 0x87, 0x37, 0xde, 0xa0,
+ 0xbd, 0xe3, 0x07, 0xb4, 0x07, 0x07, 0xb6, 0x9e, 0xcd, 0x32, 0xce, 0x31,
+ 0xe0, 0x02, 0xe6, 0x9e,
+ 0x77, 0x17, 0x83, 0x31, 0x83, 0x83, 0x9c, 0x2f, 0x90, 0xce, 0x8a, 0xd4,
+ 0x0d, 0xad, 0x39, 0x2f,
+ 0x8d, 0xc1, 0x6b, 0x30, 0x6b, 0x6b, 0x1a, 0x57, 0xf2, 0x5c, 0xcd, 0x63,
+ 0xfe, 0x2a, 0x80, 0x57,
+ 0xbc, 0x3b, 0x94, 0xc3, 0x94, 0x94, 0x21, 0x17, 0xe8, 0xc6, 0x7b, 0x55,
+ 0xa8, 0xe2, 0x4d, 0x17,
+ 0xf3, 0x01, 0x69, 0x48, 0x69, 0x69, 0x23, 0x33, 0xac, 0xca, 0x13, 0x75,
+ 0xbe, 0x6b, 0x03, 0x33,
+ 0xf4, 0x4c, 0x16, 0xce, 0x16, 0x16, 0x40, 0x0a, 0x57, 0x43, 0x9e, 0x8a,
+ 0x85, 0x8e, 0xd4, 0x0a,
+ 0x26, 0xa9, 0xa4, 0x09, 0xa4, 0xa4, 0x3c, 0x3e, 0xf4, 0x88, 0x3a, 0x46,
+ 0x67, 0x35, 0x38, 0x3e,
+ 0xd4, 0x70, 0x5e, 0x36, 0x5e, 0x5e, 0x88, 0x84, 0x7d, 0xb6, 0x9c, 0x57,
+ 0x91, 0xbe, 0x90, 0x84,
+ 0x80, 0xf0, 0xe3, 0x66, 0xe3, 0xe3, 0xa6, 0x7d, 0xa8, 0x52, 0x08, 0xf2,
+ 0x50, 0xc0, 0xd3, 0x7d,
+ 0x93, 0x45, 0xb1, 0x83, 0xb1, 0xb1, 0xb8, 0x62, 0xd2, 0x16, 0x15, 0xd1,
+ 0x82, 0x3b, 0xcf, 0x62,
+ 0xb6, 0x47, 0x63, 0x13, 0x63, 0x63, 0xfe, 0x04, 0x49, 0x41, 0x33, 0x3b,
+ 0x3d, 0xed, 0xc9, 0x04,
+ 0x15, 0x20, 0xbe, 0x14, 0xbe, 0xbe, 0xea, 0xaf, 0xa4, 0x39, 0x25, 0xb8,
+ 0xa1, 0xfe, 0x60, 0xaf,
+ 0xcc, 0x61, 0x68, 0x74, 0x68, 0x68, 0xde, 0x01, 0x83, 0x81, 0x7c, 0x7e,
+ 0x9e, 0xaa, 0xa3, 0x01,
+ 0xac, 0x25, 0xb0, 0xbf, 0xb0, 0xb0, 0x45, 0x50, 0xfd, 0x5d, 0x7a, 0xda,
+ 0xa2, 0xfa, 0x6f, 0x50,
+ 0xc1, 0x50, 0xe0, 0x22, 0xe0, 0xe0, 0x62, 0x2b, 0xd9, 0x8f, 0xb9, 0xef,
+ 0x30, 0x40, 0xf0, 0x2b,
+ 0xee, 0x2e, 0xc5, 0x62, 0xc5, 0xc5, 0xfb, 0x5e, 0xe3, 0x5f, 0xd7, 0x6b,
+ 0x1a, 0x99, 0x72, 0x5e,
+ 0xae, 0x56, 0x55, 0x51, 0x55, 0x55, 0xa8, 0x81, 0xb7, 0x76, 0xd3, 0x12,
+ 0x32, 0xf9, 0xfa, 0x81,
+ 0x9c, 0x07, 0xdc, 0x3b, 0xdc, 0xdc, 0xe9, 0x99, 0xc2, 0x33, 0x79, 0x88,
+ 0xbc, 0xd2, 0x09, 0x99,
+ 0xd9, 0x41, 0xd6, 0x60, 0xd6, 0xd6, 0x34, 0xae, 0x27, 0xb8, 0x59, 0xc6,
+ 0x3f, 0x54, 0xc3, 0xae,
+ 0xa3, 0x67, 0xdd, 0x07, 0xdd, 0xdd, 0x14, 0xab, 0xed, 0x78, 0x16, 0x83,
+ 0x9c, 0x13, 0xa9, 0xab,
+ 0x25, 0x02, 0xd2, 0x90, 0xd2, 0xd2, 0x46, 0x66, 0x9b, 0x57, 0x26, 0xea,
+ 0xbf, 0xd6, 0x06, 0x66,
+ 0xeb, 0x10, 0x5f, 0x0a, 0x5f, 0x5f, 0x75, 0xb6, 0x52, 0xfd, 0xf3, 0x5c,
+ 0xb1, 0x7f, 0x30, 0xb6,
+ 0x40, 0x78, 0x90, 0x33, 0x90, 0x90, 0x53, 0xdf, 0x54, 0x29, 0x04, 0x79,
+ 0x28, 0x60, 0x88, 0xdf,
+ 0x48, 0x77, 0x82, 0x0d, 0x82, 0x82, 0x61, 0x1d, 0xbf, 0x85, 0xe5, 0xdf,
+ 0x2d, 0x6c, 0x99, 0x1d,
+ 0x6d, 0x75, 0x50, 0x9d, 0x50, 0x50, 0x27, 0x7b, 0x24, 0xd2, 0xc3, 0x35,
+ 0x92, 0xba, 0x9f, 0x7b,
+ 0x28, 0x33, 0x5a, 0xc6, 0x5a, 0x5a, 0xfa, 0x4c, 0xc1, 0x59, 0xe3, 0x7b,
+ 0x11, 0x3c, 0x55, 0x4c,
+ 0xff, 0xe8, 0x72, 0x69, 0x72, 0x72, 0x08, 0x90, 0xd3, 0x30, 0x63, 0x80,
+ 0x58, 0x61, 0xfb, 0x90,
+ 0x0a, 0x7c, 0xf7, 0xd0, 0xf7, 0xf7, 0xdf, 0x13, 0xa1, 0x87, 0x48, 0x6e,
+ 0x95, 0x0f, 0x84, 0x13,
+ 0x4f, 0x3a, 0xfd, 0x8b, 0xfd, 0xfd, 0x02, 0x24, 0x44, 0x0c, 0x68, 0x20,
+ 0x16, 0x89, 0x4e, 0x24,
+ 0x19, 0xc9, 0xa5, 0x35, 0xa5, 0xa5, 0xc1, 0x0c, 0xdb, 0xc3, 0x55, 0x4d,
+ 0x47, 0xf4, 0x98, 0x0c,
+ 0x53, 0xcd, 0xc2, 0xd6, 0xc2, 0xc2, 0x4d, 0xc0, 0x2e, 0x6d, 0x19, 0x5a,
+ 0xfa, 0x9b, 0x94, 0xc0,
+ 0xf5, 0x94, 0x85, 0xb9, 0x85, 0x85, 0xd7, 0x83, 0x72, 0xb7, 0x2b, 0xee,
+ 0xcd, 0x6e, 0x7f, 0x83,
+ 0xb9, 0x05, 0x0e, 0xab, 0x0e, 0x0e, 0xaf, 0xff, 0x59, 0x64, 0x5f, 0x62,
+ 0x03, 0x04, 0x0f, 0xff,
+ 0xcb, 0x2c, 0x17, 0xf2, 0x17, 0x17, 0xbd, 0x38, 0x78, 0x08, 0xf1, 0x81,
+ 0xa5, 0x4f, 0x74, 0x38,
+ 0x45, 0x46, 0x0a, 0x5b, 0x0a, 0x0a, 0xdd, 0x37, 0xe5, 0x8b, 0x20, 0x4e,
+ 0x83, 0x86, 0xca, 0x37,
+ 0x57, 0x2b, 0xcb, 0xc9, 0xcb, 0xcb, 0x54, 0xa1, 0xba, 0x3b, 0x88, 0x09,
+ 0x19, 0x9d, 0x7d, 0xa1,
+ 0xd7, 0xdb, 0x28, 0xaf, 0x28, 0x28, 0xf2, 0xdc, 0x12, 0x69, 0x80, 0xfb,
+ 0x49, 0x5d, 0xae, 0xdc,
+ 0x68, 0x4b, 0xca, 0xf5, 0xca, 0xca, 0xa9, 0x93, 0x95, 0x70, 0xe7, 0x02,
+ 0x39, 0x5c, 0xdd, 0x93,
+ 0x4c, 0x91, 0x8b, 0x12, 0x8b, 0x8b, 0x78, 0x7c, 0x2b, 0xd3, 0x74, 0x8c,
+ 0xce, 0x6a, 0x70, 0x7c,
+ 0x20, 0x3c, 0x48, 0xf8, 0x48, 0x48, 0xc8, 0x8e, 0x2a, 0xf5, 0x02, 0xdd,
+ 0x14, 0x30, 0x44, 0x8e,
+ 0x4a, 0x04, 0x67, 0xe3, 0x67, 0x67, 0x8c, 0xcc, 0xf5, 0xae, 0x4c, 0x17,
+ 0xbd, 0x6f, 0x0c, 0xcc,
+ 0x05, 0x3e, 0x9a, 0x68, 0x9a, 0x9a, 0x8e, 0xe8, 0xb1, 0xa2, 0x24, 0x37,
+ 0xab, 0xe6, 0x42, 0xe8,
+ 0xc6, 0x1d, 0x9f, 0xa4, 0x9f, 0x9f, 0x01, 0x12, 0x22, 0x06, 0x34, 0x10,
+ 0x0b, 0xa5, 0x27, 0x12,
+ 0x14, 0xf8, 0x2d, 0x63, 0x2d, 0x2d, 0x7d, 0x26, 0x81, 0xcd, 0x90, 0xdc,
+ 0xe9, 0x1e, 0xcb, 0x26,
+ 0x9e, 0x74, 0x39, 0xd5, 0x39, 0x39, 0x04, 0x48, 0x88, 0x18, 0xd0, 0x40,
+ 0x2c, 0xd1, 0x9c, 0x48,
+ 0xd5, 0xa8, 0xcd, 0x41, 0xcd, 0xcd, 0x1f, 0x0d, 0x58, 0x42, 0x29, 0x33,
+ 0xd9, 0x5e, 0x3b, 0x0d,
+ 0x4d, 0x49, 0x18, 0x65, 0x18, 0x18, 0xef, 0xf5, 0x0e, 0x27, 0xc1, 0xe8,
+ 0x86, 0x8a, 0xdb, 0xf5,
+ 0xce, 0x12, 0x8d, 0x9a, 0x8d, 0x8d, 0x33, 0xd0, 0xc9, 0xaa, 0xd5, 0xb6,
+ 0x0e, 0xa9, 0x36, 0xd0,
+ 0x5a, 0x1a, 0x43, 0x9f, 0x43, 0x43, 0xe8, 0x8b, 0xe0, 0x35, 0x4d, 0x98,
+ 0xb7, 0x77, 0x2e, 0x8b,
+ 0x3f, 0x60, 0x01, 0x3c, 0x01, 0x01, 0xfd, 0x32, 0x2f, 0x4b, 0x6f, 0x0b,
+ 0x20, 0xc1, 0xa0, 0x32,
+ 0x8a, 0x8c, 0x14, 0xb6, 0x14, 0x14, 0x79, 0x6e, 0x09, 0xd5, 0x40, 0x9c,
+ 0xc5, 0xcf, 0x57, 0x6e,
+ 0x83, 0x5b, 0x95, 0xff, 0x95, 0x95, 0xdc, 0x25, 0xc7, 0x8d, 0x14, 0x5e,
+ 0x88, 0x23, 0xed, 0x25,
+ 0xc3, 0x23, 0x05, 0xcc, 0x05, 0x05, 0x8f, 0xfa, 0x93, 0xa4, 0x10, 0x27,
+ 0xa0, 0x43, 0x65, 0xfa,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x94, 0x08, 0xce, 0x05, 0xce, 0xce, 0xdb, 0x5b, 0x29, 0x9f, 0x98, 0x2e,
+ 0xb9, 0xde, 0x18, 0x5b,
+ 0x1f, 0x5c, 0x49, 0xc4, 0x49, 0x49, 0x35, 0xbc, 0x05, 0xbe, 0x6d, 0xd6,
+ 0x34, 0xf1, 0xe4, 0xbc,
+ 0x98, 0xe1, 0xd5, 0x24, 0xd5, 0xd5, 0xf0, 0xf8, 0x56, 0x65, 0xe8, 0xdb,
+ 0x5f, 0xd4, 0xe0, 0xf8,
+ },
+ { /* 3 */
+ 0xab, 0x5f, 0x0f, 0xc5, 0x97, 0x09, 0x7c, 0xc9, 0x42, 0xc5, 0x39, 0xbd,
+ 0xfd, 0x81, 0x87, 0xfe,
+ 0xbb, 0xa5, 0xce, 0xde, 0x05, 0xdd, 0x1c, 0xf8, 0x12, 0xde, 0x45, 0x61,
+ 0xc3, 0xdf, 0xcc, 0x2b,
+ 0x83, 0x15, 0xcf, 0x1f, 0x39, 0x08, 0x8c, 0x52, 0xca, 0x1f, 0xff, 0xa8,
+ 0x9e, 0x12, 0xd5, 0x1c,
+ 0x0d, 0xe5, 0x99, 0x66, 0x2c, 0xc3, 0x2e, 0xd2, 0x39, 0x66, 0x56, 0x24,
+ 0x2b, 0x05, 0x5f, 0x06,
+ 0x3a, 0x3e, 0xb0, 0xfa, 0xbf, 0x2e, 0x9c, 0x05, 0xd2, 0xfa, 0x54, 0x33,
+ 0x2a, 0xb6, 0x28, 0x65,
+ 0x4a, 0x9d, 0xb2, 0xbb, 0xc7, 0x47, 0x7f, 0x92, 0xa1, 0xbb, 0xe3, 0x62,
+ 0x90, 0xef, 0x1a, 0x0b,
+ 0xe8, 0xf8, 0x85, 0x6e, 0xb9, 0xb8, 0x35, 0x14, 0xce, 0x6e, 0x93, 0xcc,
+ 0xa8, 0x9d, 0xa0, 0x57,
+ 0xeb, 0x31, 0x8d, 0xa9, 0x9a, 0xdf, 0x3f, 0x0d, 0xc1, 0xa9, 0x0a, 0x4b,
+ 0x05, 0x3a, 0x68, 0x2c,
+ 0x8f, 0xb7, 0xef, 0x85, 0xb5, 0x57, 0xa4, 0x36, 0xf6, 0x85, 0xde, 0xf1,
+ 0x6f, 0xcb, 0x73, 0x33,
+ 0xbe, 0x3d, 0xd6, 0x54, 0x60, 0x74, 0x02, 0xd3, 0x03, 0x54, 0x2d, 0x2b,
+ 0xf7, 0xf5, 0x57, 0xa6,
+ 0x0f, 0x6b, 0x28, 0x5d, 0xaf, 0x38, 0x22, 0x7d, 0x33, 0x5d, 0xb8, 0xde,
+ 0x5c, 0x7e, 0x6e, 0x54,
+ 0x6d, 0xbc, 0x5a, 0x3c, 0xc6, 0x7e, 0xad, 0x74, 0x1a, 0x3c, 0x9d, 0xa9,
+ 0xaf, 0x02, 0x26, 0xbd,
+ 0x0a, 0xf3, 0x30, 0xd7, 0xca, 0x91, 0x3c, 0x56, 0x22, 0xd7, 0xd0, 0x94,
+ 0x68, 0x54, 0xf5, 0xd9,
+ 0x29, 0x0d, 0x79, 0x26, 0x0e, 0x9d, 0xf6, 0x2d, 0x8d, 0x26, 0xb1, 0x68,
+ 0xb9, 0x4f, 0xab, 0xcb,
+ 0x17, 0xec, 0x68, 0xaa, 0x74, 0x86, 0x72, 0xb5, 0x4b, 0xaa, 0xfa, 0x6c,
+ 0x7d, 0x0f, 0xe1, 0x0a,
+ 0xb0, 0x11, 0x47, 0xf5, 0x6f, 0xd0, 0x26, 0x18, 0x35, 0xf5, 0xe2, 0x88,
+ 0x71, 0x57, 0xc0, 0xdb,
+ 0xc5, 0x2a, 0x5d, 0x3e, 0x72, 0x10, 0xdb, 0xa4, 0x57, 0x3e, 0x3d, 0x93,
+ 0xff, 0x24, 0x69, 0x38,
+ 0x4c, 0xcc, 0xa2, 0xf6, 0x81, 0x89, 0x6b, 0xa0, 0xbf, 0xf6, 0x12, 0xaf,
+ 0x09, 0x62, 0x49, 0xfd,
+ 0xc3, 0x7b, 0x4d, 0x73, 0x34, 0xde, 0xcf, 0x96, 0x49, 0x73, 0xcc, 0x5e,
+ 0x66, 0xa9, 0x3a, 0xce,
+ 0xb5, 0x89, 0x5f, 0x7f, 0x0a, 0x79, 0x38, 0x33, 0x24, 0x7f, 0x8a, 0xc2,
+ 0x45, 0x7d, 0x5b, 0x56,
+ 0x74, 0x7c, 0xa3, 0x37, 0xbd, 0x5c, 0xfb, 0x0a, 0x67, 0x37, 0xa8, 0x66,
+ 0x54, 0xaf, 0x50, 0xca,
+ 0x94, 0xf9, 0xa7, 0xb5, 0x4d, 0x8e, 0xfe, 0xe7, 0x81, 0xb5, 0x05, 0xc4,
+ 0xe3, 0x1d, 0x34, 0x16,
+ 0x1d, 0x1f, 0x58, 0x7d, 0xbe, 0x17, 0x4e, 0xe3, 0x69, 0x7d, 0x2a, 0xf8,
+ 0x15, 0x5b, 0x14, 0xd3,
+ 0x25, 0xaf, 0x59, 0xbc, 0x82, 0xc2, 0xde, 0x49, 0xb1, 0xbc, 0x90, 0x31,
+ 0x48, 0x96, 0x0d, 0xe4,
+ 0x48, 0x13, 0x03, 0x80, 0x44, 0xbc, 0x73, 0x3d, 0xab, 0x80, 0x0d, 0x98,
+ 0xe7, 0x94, 0x2b, 0x59,
+ 0xda, 0xbb, 0xb4, 0x78, 0x4f, 0xfc, 0x99, 0xe8, 0x34, 0x78, 0xf9, 0x91,
+ 0x9d, 0x04, 0x4c, 0xb9,
+ 0xdd, 0xad, 0x1d, 0xc9, 0xa9, 0xae, 0x8b, 0x6c, 0x2f, 0xc9, 0x7f, 0x21,
+ 0xde, 0x55, 0xe6, 0x66,
+ 0xe9, 0xbf, 0x3c, 0x92, 0x19, 0x24, 0x33, 0xa2, 0xcb, 0x92, 0xe4, 0xb1,
+ 0x72, 0x41, 0x59, 0x7e,
+ 0xea, 0x76, 0x34, 0x55, 0x3a, 0x43, 0x39, 0xbb, 0xc4, 0x55, 0x7d, 0x36,
+ 0xdf, 0xe6, 0x91, 0x05,
+ 0x73, 0x6a, 0x0a, 0x86, 0x5b, 0x0e, 0xe9, 0x8e, 0x7c, 0x86, 0x2e, 0xd6,
+ 0x17, 0xfe, 0xfa, 0x15,
+ 0x2e, 0x1b, 0xd0, 0x97, 0xe8, 0xcf, 0xe4, 0xa9, 0x96, 0x97, 0x37, 0xd8,
+ 0xfa, 0x1e, 0x01, 0x14,
+ 0xf5, 0xe7, 0xdd, 0x13, 0x07, 0xaf, 0x7b, 0xf7, 0xa7, 0x13, 0xb9, 0x34,
+ 0xbd, 0xc6, 0xb4, 0x84,
+ 0x26, 0x66, 0x51, 0x7b, 0xa1, 0xa5, 0xd4, 0x50, 0xbe, 0x7b, 0x09, 0xb6,
+ 0xe5, 0x31, 0xc5, 0x9f,
+ 0xd0, 0x48, 0x84, 0xaf, 0x85, 0x6d, 0xa5, 0xbe, 0x16, 0xaf, 0x29, 0x05,
+ 0xf5, 0x50, 0xb9, 0x60,
+ 0xc4, 0x6d, 0xe4, 0xc2, 0xd2, 0x8c, 0xdd, 0x12, 0x52, 0xc2, 0x4a, 0xee,
+ 0x25, 0xf8, 0x90, 0x11,
+ 0xf3, 0xb6, 0xcd, 0x5e, 0x41, 0x61, 0x6f, 0xc5, 0xb9, 0x5e, 0x48, 0xf9,
+ 0x24, 0x4b, 0xe7, 0x72,
+ 0x7b, 0x17, 0x8b, 0x6a, 0x12, 0x64, 0xd9, 0x77, 0x54, 0x6a, 0x10, 0xb8,
+ 0x08, 0xd1, 0x3e, 0x9e,
+ 0x4d, 0x8b, 0x1b, 0x0a, 0x21, 0x15, 0x6d, 0x16, 0xba, 0x0a, 0x65, 0xd2,
+ 0xd3, 0xbe, 0xb0, 0xd4,
+ 0x45, 0xf6, 0x9a, 0xe6, 0x68, 0x7f, 0x5d, 0xef, 0x92, 0xe6, 0x5b, 0xbc,
+ 0xcc, 0x91, 0x74, 0x5f,
+ 0xa9, 0xd1, 0xbe, 0xfe, 0x14, 0xf2, 0x70, 0x66, 0x48, 0xfe, 0xd7, 0x47,
+ 0x8a, 0xfa, 0xb6, 0xac,
+ 0x5e, 0xb8, 0xd2, 0xd6, 0x90, 0xa6, 0x07, 0x3e, 0xe5, 0xd6, 0x80, 0x89,
+ 0x40, 0x47, 0x33, 0x7a,
+ 0xd8, 0x35, 0x05, 0x43, 0xcc, 0x07, 0x95, 0x47, 0x3e, 0x43, 0x17, 0x6b,
+ 0xea, 0x7f, 0x7d, 0xeb,
+ 0x7e, 0x8f, 0x93, 0xe0, 0x77, 0xcd, 0xc7, 0x5c, 0x45, 0xe0, 0x78, 0xf2,
+ 0x3c, 0xfb, 0xa5, 0x13,
+ 0xf2, 0xf1, 0x74, 0xa2, 0xe1, 0xfd, 0x69, 0x73, 0xbc, 0xa2, 0x3f, 0x84,
+ 0xfe, 0x97, 0x1e, 0x5b,
+ 0x90, 0x26, 0x06, 0xc3, 0x88, 0xbb, 0xe6, 0x7a, 0x95, 0xc3, 0x1a, 0xf3,
+ 0x0d, 0xeb, 0x56, 0xb2,
+ 0x77, 0xb5, 0xab, 0xf0, 0x9e, 0x3b, 0xf1, 0x13, 0x68, 0xf0, 0x31, 0xe1,
+ 0xf9, 0x08, 0x98, 0xb1,
+ 0x53, 0x5d, 0x4b, 0xb0, 0xbc, 0x65, 0x29, 0xec, 0xdc, 0xb0, 0xd6, 0xad,
+ 0x6b, 0x42, 0x6c, 0x7c,
+ 0xe5, 0x1d, 0x1c, 0x08, 0x95, 0x7b, 0x1b, 0xc6, 0xf7, 0x08, 0xc5, 0xe8,
+ 0x83, 0x98, 0xff, 0x51,
+ 0x49, 0x54, 0xba, 0x7c, 0xe4, 0x20, 0x75, 0x8b, 0xae, 0x7c, 0x7a, 0xe5,
+ 0x3d, 0x48, 0xd2, 0x70,
+ 0x98, 0x5b, 0x87, 0x2f, 0xc1, 0xd1, 0xd6, 0x83, 0xbd, 0x2f, 0x24, 0x9d,
+ 0x12, 0xc4, 0x92, 0x39,
+ 0x13, 0x33, 0xc9, 0xdc, 0xb1, 0xb3, 0x6a, 0x28, 0x5f, 0xdc, 0xe5, 0x5b,
+ 0x93, 0xf9, 0x83, 0xae,
+ 0x43, 0xa7, 0x8a, 0xab, 0x2e, 0xb1, 0x49, 0xdd, 0x8c, 0xab, 0xaa, 0x71,
+ 0x55, 0x1c, 0x27, 0xa9,
+ 0xdc, 0xea, 0xa4, 0x35, 0x09, 0x32, 0x8d, 0xda, 0x2a, 0x35, 0x08, 0x5c,
+ 0x04, 0x89, 0x1f, 0x4f,
+ 0xc7, 0xa4, 0xec, 0x05, 0xf1, 0xeb, 0xd7, 0x0b, 0x5d, 0x05, 0xd3, 0x69,
+ 0x88, 0x5f, 0x58, 0x6a,
+ 0xa0, 0xeb, 0x86, 0xee, 0xfd, 0x04, 0x46, 0x29, 0x65, 0xee, 0x9e, 0x54,
+ 0x4f, 0x09, 0x8b, 0x0e,
+ 0xcc, 0x10, 0x65, 0x2e, 0x9b, 0xe6, 0xed, 0xeb, 0x7a, 0x2e, 0x74, 0x80,
+ 0x3a, 0xd7, 0x54, 0x9a,
+ 0x14, 0x25, 0x60, 0x6d, 0x57, 0xe1, 0x78, 0xac, 0x44, 0x6d, 0x63, 0xeb,
+ 0xd0, 0xa8, 0x29, 0x71,
+ 0x52, 0x1a, 0xf2, 0x4c, 0x1c, 0xf9, 0x2f, 0x5a, 0xd9, 0x4c, 0xa1, 0xd0,
+ 0xb1, 0x9e, 0x95, 0x55,
+ 0x2f, 0x5c, 0x69, 0x6b, 0x48, 0x53, 0xe2, 0x1f, 0x93, 0x6b, 0x40, 0xa5,
+ 0x20, 0xc2, 0xf8, 0x3d,
+ 0x47, 0x78, 0x2b, 0xdd, 0xeb, 0x84, 0x51, 0x40, 0x98, 0xdd, 0xb5, 0x46,
+ 0xbb, 0xea, 0x45, 0x0d,
+ 0xa6, 0xba, 0x96, 0xa3, 0xbb, 0xca, 0x52, 0x1b, 0x7b, 0xa3, 0x6f, 0x99,
+ 0xd6, 0x84, 0xd8, 0xf8,
+ 0x5f, 0xff, 0x6b, 0x2a, 0x30, 0x3a, 0x01, 0x88, 0xe0, 0x2a, 0xf7, 0xf4,
+ 0x9a, 0x9b, 0xca, 0x53,
+ 0xe3, 0x4c, 0x0c, 0x45, 0xd3, 0xb5, 0x0f, 0xf4, 0xe9, 0x45, 0x34, 0x25,
+ 0x1a, 0x15, 0xac, 0xa7,
+ 0xb8, 0x6c, 0xc6, 0x19, 0x26, 0xba, 0x16, 0xe1, 0x1d, 0x19, 0xdc, 0xe6,
+ 0x6e, 0x78, 0x04, 0x50,
+ 0xa7, 0xfd, 0x2f, 0x5f, 0x1b, 0x56, 0x54, 0xad, 0x7e, 0x5f, 0x18, 0xe4,
+ 0x0c, 0x58, 0x21, 0xd1,
+ 0xc0, 0xb2, 0x45, 0xb4, 0x17, 0xb9, 0xc5, 0x8f, 0x46, 0xb4, 0x55, 0xd9,
+ 0xcb, 0x0e, 0xf2, 0xb5,
+ 0x23, 0xfe, 0x49, 0xf1, 0xc4, 0x0c, 0xca, 0x7b, 0xaf, 0xf1, 0x61, 0xfc,
+ 0xd1, 0x1b, 0x5e, 0x12,
+ 0x2a, 0xc4, 0x71, 0xe1, 0x2d, 0xfa, 0xfc, 0x34, 0x82, 0xe1, 0x28, 0xef,
+ 0x14, 0xe8, 0x63, 0xb0,
+ 0x62, 0xd7, 0x72, 0x61, 0x69, 0x46, 0x8f, 0x09, 0x29, 0x61, 0x25, 0x77,
+ 0xf3, 0x7c, 0x48, 0xe9,
+ 0x7d, 0x46, 0x9b, 0x27, 0x54, 0xaa, 0xcd, 0x45, 0x4a, 0x27, 0xe1, 0x75,
+ 0x91, 0x5c, 0x6d, 0x68,
+ 0x31, 0x8a, 0x39, 0xd1, 0xd5, 0x23, 0xa6, 0xe5, 0xf5, 0xd1, 0xf3, 0xda,
+ 0x98, 0x3e, 0x24, 0x95,
+ 0x30, 0xcd, 0x80, 0x2d, 0x75, 0xbf, 0xa0, 0x53, 0xf0, 0x2d, 0x84, 0xa7,
+ 0x42, 0xe2, 0xdd, 0xbc,
+ 0xc1, 0xf5, 0xfc, 0x48, 0xb7, 0x25, 0xc3, 0x39, 0x43, 0x48, 0x22, 0xa4,
+ 0x11, 0xd2, 0x0b, 0x9c,
+ 0x20, 0x37, 0x41, 0x36, 0xe7, 0x6b, 0xc0, 0x62, 0xa0, 0x36, 0xf8, 0x7b,
+ 0x7c, 0xbc, 0x96, 0x69,
+ 0x8a, 0x2f, 0xf7, 0x0f, 0xd0, 0xfe, 0xba, 0x1d, 0xe7, 0x0f, 0xb6, 0xbb,
+ 0x5b, 0xe1, 0xe8, 0xbe,
+ 0xd7, 0x5e, 0x2d, 0x1e, 0x63, 0x3f, 0xb7, 0x3a, 0x0d, 0x1e, 0xaf, 0xb5,
+ 0xb6, 0x01, 0x13, 0xbf,
+ 0x3d, 0x28, 0x19, 0x4b, 0x59, 0x7c, 0x8e, 0x81, 0xc9, 0x4b, 0xd2, 0x83,
+ 0x69, 0xe7, 0x82, 0xba,
+ 0xbf, 0x7a, 0x6f, 0xa8, 0xc0, 0xe8, 0x04, 0x65, 0x06, 0xa8, 0x5a, 0x56,
+ 0x2d, 0x29, 0xae, 0x8f,
+ 0xc6, 0xe3, 0x55, 0xf9, 0x51, 0x77, 0xd1, 0xbd, 0x58, 0xf9, 0xa4, 0x14,
+ 0x52, 0x83, 0xa1, 0x43,
+ 0x72, 0x2d, 0xb3, 0x7a, 0xfb, 0x92, 0xef, 0x38, 0x79, 0x7a, 0x59, 0xab,
+ 0xcd, 0x22, 0x03, 0x3c,
+ 0xdb, 0xfc, 0x0d, 0x84, 0xef, 0x60, 0x9f, 0x5e, 0x31, 0x84, 0x8e, 0xec,
+ 0x47, 0xd8, 0xb5, 0x90,
+ 0x15, 0x62, 0xd9, 0x91, 0xf7, 0x7d, 0x7e, 0x1a, 0x41, 0x91, 0x14, 0x96,
+ 0x0a, 0x74, 0xd0, 0x58,
+ 0x99, 0x1c, 0x3e, 0xd3, 0x61, 0x4d, 0xd0, 0x35, 0xb8, 0xd3, 0x53, 0xe0,
+ 0xc8, 0x18, 0x6b, 0x10,
+ 0x4b, 0xda, 0x0b, 0x47, 0x67, 0xdb, 0x79, 0x24, 0xa4, 0x47, 0x94, 0x1f,
+ 0x4a, 0x33, 0xe3, 0x22,
+ 0x34, 0x12, 0x21, 0x5b, 0xb0, 0x8a, 0xb8, 0xce, 0xe4, 0x5b, 0x9b, 0x90,
+ 0xac, 0x14, 0xbf, 0x18,
+ 0x60, 0x59, 0xc3, 0x5a, 0xea, 0xbd, 0x83, 0xa6, 0x23, 0x5a, 0xcb, 0x8d,
+ 0x84, 0x07, 0x79, 0xbb,
+ 0x92, 0xa8, 0xb7, 0xf8, 0x0b, 0x40, 0xea, 0xd5, 0x9f, 0xf8, 0xf4, 0x09,
+ 0x7a, 0x90, 0x67, 0xe0,
+ 0xac, 0x49, 0xa6, 0x74, 0x71, 0x5b, 0x6e, 0x4d, 0x59, 0x74, 0xbf, 0x0d,
+ 0xbe, 0xd0, 0x2d, 0x21,
+ 0x6e, 0x75, 0x52, 0xfb, 0xe5, 0x19, 0xa7, 0x6d, 0x15, 0xfb, 0x04, 0x2e,
+ 0x02, 0xa5, 0xee, 0xc6,
+ 0xa1, 0xac, 0x3f, 0x12, 0x5d, 0x98, 0x40, 0x9f, 0x60, 0x12, 0xe9, 0x29,
+ 0x95, 0xd5, 0x72, 0x27,
+ 0x81, 0x9b, 0x7e, 0x24, 0xba, 0xf3, 0x80, 0xfd, 0xc0, 0x24, 0x11, 0x52,
+ 0xe9, 0x69, 0xe4, 0x4e,
+ 0x3b, 0x79, 0x09, 0x06, 0x1f, 0xb2, 0x9a, 0xb3, 0xd7, 0x06, 0x23, 0x4e,
+ 0xf0, 0x6a, 0xd1, 0x4c,
+ 0x19, 0xc0, 0xf9, 0x0b, 0x7b, 0x22, 0x56, 0x7e, 0x7d, 0x0b, 0x35, 0xcf,
+ 0xfb, 0xad, 0x76, 0x77,
+ 0xe4, 0x5a, 0xa5, 0xf4, 0x35, 0xe7, 0x1d, 0x70, 0xf2, 0xf4, 0xb2, 0x95,
+ 0x59, 0x44, 0x06, 0x78,
+ 0x2c, 0x95, 0x61, 0xac, 0x6b, 0x34, 0xe8, 0x06, 0x9c, 0xac, 0xd9, 0x22,
+ 0x8d, 0x65, 0x30, 0x46,
+ 0xbd, 0xf4, 0xde, 0x93, 0x43, 0x13, 0x08, 0xca, 0x0c, 0x93, 0xb4, 0xac,
+ 0x5a, 0x52, 0x9f, 0xdd,
+ 0xb6, 0x40, 0x57, 0xb8, 0x29, 0x1e, 0x32, 0x2a, 0x2b, 0xb8, 0x13, 0x45,
+ 0xe8, 0xda, 0x93, 0x2d,
+ 0xd3, 0x81, 0x8c, 0x68, 0xa6, 0x0a, 0xaf, 0xa7, 0x19, 0x68, 0xb0, 0x82,
+ 0x58, 0xf7, 0x71, 0x1b,
+ 0xe7, 0x93, 0xad, 0x33, 0x16, 0x80, 0x17, 0x69, 0xfd, 0x33, 0x2b, 0x12,
+ 0xf4, 0xe3, 0xce, 0x03,
+ 0x9b, 0x92, 0x8f, 0xe8, 0xe2, 0xb6, 0xdc, 0x9a, 0xb2, 0xe8, 0xbd, 0x1a,
+ 0xbf, 0x63, 0x5a, 0x42,
+ 0x8c, 0x7e, 0xe7, 0x42, 0x96, 0x30, 0xae, 0x2f, 0xf9, 0x42, 0x47, 0x76,
+ 0xc2, 0x6c, 0xbb, 0x48,
+ 0x04, 0xdf, 0xa1, 0x76, 0xc5, 0x35, 0x18, 0x9d, 0x14, 0x76, 0x1f, 0x37,
+ 0xee, 0xf6, 0x62, 0xa4,
+ 0x86, 0x8d, 0xd7, 0x95, 0x5c, 0xa1, 0x92, 0x79, 0xdb, 0x95, 0x97, 0xe2,
+ 0xaa, 0x38, 0x4e, 0x91,
+ 0xef, 0xee, 0x2c, 0xdf, 0x5f, 0xea, 0x27, 0x90, 0xd5, 0xdf, 0x15, 0x7c,
+ 0xeb, 0xcc, 0x0a, 0x88,
+ 0x32, 0x43, 0x31, 0x16, 0xf6, 0x44, 0xac, 0xfc, 0xfa, 0x16, 0x6a, 0x5d,
+ 0x35, 0x99, 0xec, 0xee,
+ 0x0b, 0xb4, 0x89, 0x2b, 0x6a, 0x0d, 0x3a, 0xe0, 0x27, 0x2b, 0xa7, 0xe9,
+ 0xb2, 0x88, 0x0c, 0xf0,
+ 0x9e, 0x0a, 0x97, 0x62, 0x87, 0x1f, 0xc2, 0xb1, 0xa3, 0x62, 0xd5, 0x50,
+ 0x8b, 0x49, 0xc1, 0xcf,
+ 0x80, 0xdc, 0xc7, 0xd8, 0x1a, 0x6f, 0x86, 0x4b, 0xc5, 0xd8, 0x66, 0x2f,
+ 0x33, 0xb5, 0x1d, 0x67,
+ 0x1c, 0x58, 0xe1, 0x81, 0x1e, 0x8b, 0x48, 0x55, 0x6c, 0x81, 0x5d, 0x85,
+ 0xcf, 0x87, 0xed, 0xfa,
+ 0xb1, 0x56, 0xfe, 0x09, 0xcf, 0x4c, 0x20, 0xae, 0x30, 0x09, 0x95, 0xf5,
+ 0xab, 0x8b, 0x39, 0xf2,
+ 0xd4, 0x97, 0x25, 0xd9, 0x40, 0x58, 0xbd, 0x23, 0x02, 0xd9, 0x36, 0x32,
+ 0x1b, 0xa6, 0xdb, 0xc4,
+ 0x7a, 0x50, 0x32, 0x96, 0xb2, 0xf8, 0xdf, 0xc1, 0x51, 0x96, 0x67, 0xc5,
+ 0xd2, 0x0d, 0xc7, 0xb7,
+ 0x5b, 0x20, 0xca, 0x5c, 0xf5, 0x0f, 0x19, 0x15, 0xf4, 0x5c, 0xe8, 0xc3,
+ 0x74, 0x6d, 0xa8, 0xf7,
+ 0xa3, 0x22, 0x8e, 0x29, 0xde, 0x63, 0x4c, 0x30, 0x6a, 0x29, 0x07, 0xd3,
+ 0xe2, 0xae, 0x43, 0x75,
+ 0xf9, 0x45, 0xfd, 0x89, 0x8b, 0xf0, 0x53, 0x93, 0x9b, 0x89, 0x98, 0x6d,
+ 0x4c, 0x1f, 0x12, 0xab,
+ 0x33, 0x04, 0x88, 0xea, 0x56, 0xd8, 0xaa, 0x4a, 0xff, 0xea, 0x1d, 0x20,
+ 0xef, 0x45, 0x15, 0xc7,
+ 0x68, 0x24, 0x42, 0xb6, 0xa3, 0xd7, 0xb3, 0x5f, 0x0b, 0xb6, 0xf5, 0xe3,
+ 0x9b, 0x28, 0xbd, 0x30,
+ 0x96, 0x77, 0x16, 0x8e, 0xce, 0x75, 0xf2, 0x48, 0x8b, 0x8e, 0xeb, 0x3e,
+ 0x94, 0x66, 0x05, 0x44,
+ 0x46, 0x3f, 0x92, 0x21, 0x4b, 0x18, 0x57, 0xf6, 0x9d, 0x21, 0xc2, 0x3b,
+ 0x61, 0x36, 0xbc, 0x24,
+ 0x02, 0x8e, 0xb1, 0x3b, 0x83, 0xfb, 0x0c, 0xaf, 0x0a, 0x3b, 0xee, 0xfa,
+ 0x77, 0x7b, 0x31, 0x52,
+ 0xff, 0x14, 0xed, 0xc4, 0xcd, 0x3e, 0x47, 0xa1, 0x85, 0xc4, 0x69, 0xa0,
+ 0xd5, 0x92, 0x41, 0x5d,
+ 0x95, 0xbe, 0x1e, 0x49, 0xed, 0x12, 0xf8, 0x51, 0x84, 0x49, 0x72, 0xb9,
+ 0x39, 0xc1, 0xcd, 0x3f,
+ 0x64, 0x86, 0x62, 0x2c, 0x2f, 0x88, 0x9b, 0x3b, 0x37, 0x2c, 0xd4, 0xba,
+ 0x6a, 0xf1, 0x1b, 0x1f,
+ 0x40, 0x6e, 0x82, 0x6c, 0x0d, 0xd6, 0x43, 0xc4, 0x83, 0x6c, 0x33, 0xf6,
+ 0xf8, 0xbb, 0xef, 0xd2,
+ 0x41, 0x29, 0x3b, 0x90, 0xad, 0x4a, 0x45, 0x72, 0x86, 0x90, 0x44, 0x8b,
+ 0x22, 0x67, 0x16, 0xfb,
+ 0x16, 0xab, 0xd1, 0x56, 0xd4, 0x1a, 0x74, 0x03, 0x4e, 0x56, 0x8d, 0x11,
+ 0xa7, 0xd3, 0x18, 0x23,
+ 0x0e, 0x2c, 0x91, 0xa1, 0x0f, 0xa4, 0x24, 0xcb, 0x36, 0xa1, 0xcf, 0xa3,
+ 0x86, 0xa2, 0x97, 0x7d,
+ 0xb9, 0x2b, 0x7f, 0xe5, 0x86, 0x26, 0x10, 0x57, 0x18, 0xe5, 0xab, 0x9b,
+ 0xb4, 0xa4, 0xfd, 0x79,
+ 0xfd, 0x9a, 0x5c, 0xff, 0x4e, 0xc5, 0x4b, 0x0e, 0x8f, 0xff, 0x87, 0x5a,
+ 0xa2, 0xe9, 0x70, 0x0f,
+ 0x6f, 0x32, 0xeb, 0x07, 0x45, 0x85, 0xa1, 0xdb, 0x10, 0x07, 0x73, 0x53,
+ 0xd8, 0x79, 0x17, 0xef,
+ 0x91, 0x61, 0xbf, 0x3f, 0x28, 0x27, 0xe0, 0xcc, 0x90, 0x3f, 0x6d, 0x8e,
+ 0xd7, 0x37, 0xaf, 0x9b,
+ 0xa5, 0x73, 0x9e, 0x64, 0x98, 0xad, 0x58, 0x02, 0x74, 0x64, 0xf6, 0x1e,
+ 0x7b, 0x23, 0x10, 0x83,
+ 0xcf, 0xd9, 0x6d, 0xe9, 0xb8, 0x81, 0xe7, 0xf2, 0x75, 0xe9, 0xed, 0x07,
+ 0x97, 0x70, 0x9c, 0xe1,
+ 0x56, 0xc5, 0x53, 0x3a, 0xd9, 0xcc, 0x37, 0xc7, 0xcd, 0x3a, 0xbe, 0xe7,
+ 0x5f, 0x68, 0xf7, 0xf1,
+ 0xba, 0xe2, 0x77, 0x22, 0xa5, 0x41, 0x1a, 0x4e, 0x17, 0x22, 0x32, 0x1c,
+ 0x19, 0x03, 0x35, 0x02,
+ 0x61, 0x1e, 0x7a, 0xa6, 0x4a, 0x21, 0x85, 0x10, 0x26, 0xa6, 0xbc, 0xf0,
+ 0x5e, 0xdb, 0x80, 0x92,
+ 0x18, 0x87, 0x40, 0xf7, 0xdb, 0xbe, 0x50, 0xc8, 0x78, 0xf7, 0x42, 0xb2,
+ 0x21, 0x71, 0x8f, 0x5e,
+ 0x54, 0x4b, 0xe2, 0x01, 0x5a, 0x37, 0x3b, 0x68, 0xc7, 0x01, 0x50, 0x1d,
+ 0x28, 0x13, 0xc6, 0xa3,
+ 0x8b, 0x68, 0x4e, 0xf3, 0x70, 0x62, 0xbc, 0xab, 0xe2, 0xf3, 0xc1, 0xc6,
+ 0x81, 0x3d, 0x11, 0x97,
+ 0x3e, 0xe1, 0x11, 0x8c, 0x7a, 0x1b, 0x84, 0x98, 0xc6, 0x8c, 0x4b, 0x04,
+ 0xc4, 0x40, 0x4a, 0xc1,
+ 0x5a, 0x67, 0x73, 0xa0, 0x55, 0x93, 0x1f, 0xa3, 0xf1, 0xa0, 0x9f, 0xbe,
+ 0xae, 0xb1, 0x51, 0xde,
+ 0xce, 0x9e, 0xd4, 0x15, 0x18, 0x1d, 0xe1, 0x44, 0x70, 0x15, 0x9a, 0x7a,
+ 0x4d, 0xac, 0x65, 0xc8,
+ 0xf7, 0x69, 0x6c, 0x28, 0x84, 0x54, 0x77, 0x58, 0xad, 0x28, 0x57, 0xce,
+ 0xca, 0xbd, 0x85, 0xd6,
+ 0xd2, 0xc6, 0x35, 0x94, 0x06, 0x96, 0xa9, 0x11, 0x1c, 0x94, 0xc7, 0xff,
+ 0x82, 0x2b, 0x88, 0x32,
+ 0x82, 0x52, 0x76, 0xe3, 0x99, 0x94, 0x8a, 0xe4, 0xcf, 0xe3, 0x88, 0xd5,
+ 0x44, 0xce, 0x2c, 0x35,
+ 0xb3, 0xd8, 0x4f, 0x32, 0x4c, 0xb7, 0x2c, 0x01, 0x3a, 0x32, 0x7b, 0x0f,
+ 0xdc, 0xf0, 0x08, 0xa0,
+ 0xb4, 0xce, 0xe6, 0x83, 0xaa, 0xe5, 0x3e, 0x85, 0x21, 0x83, 0xfd, 0xbf,
+ 0x9f, 0xa1, 0xa2, 0x7f,
+ 0xd6, 0x19, 0x94, 0xe2, 0xc3, 0xa3, 0xb1, 0x8c, 0x08, 0xe2, 0xd8, 0xc8,
+ 0x6c, 0xdd, 0xea, 0x96,
+ 0xe1, 0xc2, 0xbd, 0x7e, 0x50, 0x4e, 0x03, 0x5b, 0xe3, 0x7e, 0xda, 0xdf,
+ 0x6d, 0x6e, 0x9d, 0xf5,
+ 0xc2, 0x3c, 0xf4, 0x8f, 0x94, 0x42, 0xc9, 0x20, 0x4c, 0x8f, 0xbb, 0x23,
+ 0xbc, 0x75, 0xc3, 0xe7,
+ 0x5d, 0x71, 0xda, 0x11, 0xb3, 0xc1, 0x0d, 0x27, 0xea, 0x11, 0x19, 0x0e,
+ 0xed, 0xe0, 0xfb, 0x01,
+ 0xfa, 0x8c, 0xf5, 0x4e, 0xa8, 0x97, 0x59, 0x8a, 0x94, 0x4e, 0x01, 0xea,
+ 0xe1, 0xb8, 0xda, 0xd0,
+ 0xa4, 0x34, 0x27, 0x98, 0x38, 0x31, 0x5e, 0xb4, 0x71, 0x98, 0x81, 0x63,
+ 0xa1, 0xff, 0xe9, 0xaa,
+ 0x1f, 0x91, 0xe9, 0x46, 0x3d, 0xec, 0x42, 0x4c, 0x63, 0x46, 0xc4, 0x02,
+ 0x62, 0x20, 0x25, 0x81,
+ 0x0c, 0xa2, 0x20, 0x9a, 0x8c, 0x5f, 0x28, 0x64, 0x3c, 0x9a, 0x21, 0x59,
+ 0xf1, 0xd9, 0xa6, 0x2f,
+ 0x01, 0x47, 0xb9, 0xfc, 0xa0, 0x9c, 0x06, 0xb6, 0x05, 0xfc, 0x77, 0x7d,
+ 0xda, 0xdc, 0xf9, 0x29,
+ 0x2d, 0xd2, 0xd8, 0x50, 0xcb, 0xa8, 0xee, 0xb0, 0x99, 0x50, 0xae, 0x5f,
+ 0x57, 0xb9, 0xc9, 0x6f,
+ 0x67, 0x4f, 0x6a, 0xeb, 0x0c, 0xef, 0x91, 0x22, 0x38, 0xeb, 0x4d, 0x3d,
+ 0xc7, 0x56, 0xd3, 0x64,
+ 0xe2, 0x0b, 0xb5, 0xb9, 0x73, 0x29, 0x09, 0x42, 0xec, 0xb9, 0x43, 0x58,
+ 0xc0, 0xc9, 0x55, 0x8e,
+ 0x09, 0x3a, 0x38, 0x10, 0xe9, 0xf6, 0x36, 0x4f, 0x2d, 0x10, 0x49, 0x13,
+ 0xc5, 0xf3, 0x3d, 0xa2,
+ 0x57, 0x82, 0xea, 0xc6, 0x79, 0x50, 0x31, 0x71, 0xc8, 0xc6, 0xc9, 0x9a,
+ 0x85, 0xb4, 0x0e, 0xd8,
+ 0x11, 0xbd, 0x78, 0xe7, 0x32, 0x48, 0x66, 0x87, 0x55, 0xe7, 0x0b, 0xa1,
+ 0xe4, 0x82, 0xb2, 0xfc,
+ 0xb7, 0x07, 0xee, 0x44, 0x89, 0x82, 0x34, 0x9c, 0x2e, 0x44, 0x64, 0x38,
+ 0x32, 0x06, 0x6a, 0x04,
+ 0xdf, 0x23, 0xac, 0xf2, 0x2a, 0x55, 0x87, 0xc3, 0x25, 0xf2, 0x91, 0xdb,
+ 0xa9, 0x2e, 0xd7, 0x34,
+ 0x6a, 0xaa, 0xf3, 0x8d, 0x20, 0x2c, 0xbf, 0xf0, 0x01, 0x8d, 0x1b, 0x19,
+ 0xec, 0x53, 0x8c, 0x62,
+ 0x93, 0xef, 0x0e, 0x04, 0xab, 0xdc, 0xec, 0x63, 0x9a, 0x04, 0x83, 0x74,
+ 0xa0, 0x4c, 0x9e, 0xc9,
+ 0x24, 0xe8, 0xe0, 0x40, 0x22, 0x5e, 0xd8, 0xff, 0xb4, 0x40, 0xe7, 0x4c,
+ 0x92, 0x4a, 0xf4, 0xcd,
+ 0x7f, 0xc8, 0x2a, 0x1c, 0xd7, 0x51, 0xc1, 0xea, 0x40, 0x1c, 0x0f, 0x8f,
+ 0xe6, 0x27, 0x5c, 0x3a,
+ 0x66, 0x08, 0xd3, 0x17, 0xac, 0x73, 0x97, 0x94, 0x3d, 0x17, 0x3a, 0x40,
+ 0x1d, 0x8a, 0x2a, 0x4d,
+ 0xfe, 0x53, 0x54, 0x38, 0x6d, 0xa2, 0x41, 0x17, 0x80, 0x38, 0x1e, 0xdd,
+ 0x0f, 0x4e, 0xb8, 0x74,
+ 0x07, 0x16, 0xa9, 0xb1, 0xe6, 0x52, 0x12, 0x84, 0x1b, 0xb1, 0x86, 0xb0,
+ 0x43, 0x51, 0xaa, 0xdf,
+ 0x44, 0xb1, 0x23, 0x1a, 0xc8, 0xe3, 0x5b, 0x59, 0x97, 0x1a, 0x2c, 0xc1,
+ 0x16, 0x4d, 0x8d, 0x76,
+ 0x3f, 0xa6, 0xa8, 0x70, 0xda, 0x87, 0x82, 0x2e, 0xc3, 0x70, 0x3c, 0x79,
+ 0x1e, 0x9c, 0xb3, 0xe8,
+ 0xf8, 0x02, 0x44, 0x75, 0x2b, 0x6c, 0x55, 0x25, 0x9e, 0x75, 0xef, 0x10,
+ 0x96, 0xc3, 0xeb, 0x82,
+ 0x06, 0x51, 0x10, 0x4d, 0x46, 0xce, 0x14, 0x32, 0x1e, 0x4d, 0xf1, 0xcd,
+ 0x99, 0x8d, 0x53, 0xf6,
+ 0xca, 0x41, 0x75, 0x63, 0xdd, 0x28, 0xf9, 0xd9, 0x64, 0x63, 0x85, 0x4d,
+ 0xa3, 0x5a, 0x07, 0x6c,
+ 0xad, 0x0e, 0x1f, 0x88, 0xd1, 0xc7, 0x68, 0xfb, 0x5c, 0x88, 0xc8, 0x70,
+ 0x64, 0x0c, 0xd4, 0x08,
+ 0x2b, 0x83, 0xc8, 0x1d, 0x8d, 0x66, 0xfa, 0x82, 0x87, 0x1d, 0x5f, 0x92,
+ 0xce, 0x34, 0x9a, 0x99,
+ 0xae, 0xc7, 0x17, 0x4f, 0xf2, 0xa0, 0x62, 0xe2, 0x53, 0x4f, 0x51, 0xf7,
+ 0xc9, 0xab, 0x1c, 0x73,
+ 0x22, 0xb9, 0xf0, 0x0d, 0x64, 0x90, 0xcc, 0xcd, 0xaa, 0x0d, 0x16, 0x81,
+ 0x0b, 0xc7, 0xa7, 0x3b,
+ 0x39, 0xf7, 0xb8, 0x3d, 0x9c, 0x49, 0x96, 0x1c, 0xdd, 0x3d, 0xcd, 0xb4,
+ 0x87, 0x11, 0xe0, 0x1e,
+ 0xde, 0x64, 0x15, 0x0e, 0x8a, 0xc9, 0x81, 0x75, 0x20, 0x0e, 0xe6, 0xa6,
+ 0x73, 0xf2, 0x2e, 0x1d,
+ 0x1e, 0xd6, 0x50, 0xba, 0x9d, 0x70, 0x44, 0xfa, 0x66, 0xba, 0xb3, 0x7f,
+ 0xb8, 0xfc, 0xdc, 0xa8,
+ 0xa8, 0x96, 0x07, 0x02, 0xb4, 0x6e, 0x76, 0xd0, 0x4d, 0x02, 0xa0, 0x3a,
+ 0x50, 0x26, 0x4f, 0x85,
+ 0x58, 0xe9, 0xc2, 0x9b, 0xd6, 0x68, 0x13, 0x0c, 0xfb, 0x9b, 0x71, 0x44,
+ 0xd9, 0xca, 0x60, 0x8c,
+ 0x88, 0xa1, 0x46, 0x34, 0x53, 0x05, 0xb6, 0xb2, 0xed, 0x34, 0x58, 0x41,
+ 0x2c, 0x9a, 0xd9, 0xec,
+ 0x9a, 0xd5, 0x36, 0x14, 0x42, 0x2a, 0xda, 0x2c, 0xb7, 0x14, 0xca, 0x67,
+ 0x65, 0xbf, 0xa3, 0x6b,
+ 0x69, 0x63, 0xfb, 0x4a, 0x03, 0x4b, 0xb5, 0xe9, 0x0e, 0x4a, 0x82, 0x9e,
+ 0x41, 0xf4, 0x44, 0x19,
+ 0x28, 0x4a, 0xc0, 0xda, 0xae, 0x01, 0xf0, 0x9b, 0x88, 0xda, 0xc6, 0x15,
+ 0x63, 0x93, 0x52, 0xe2,
+ 0x65, 0xc1, 0xdb, 0xd0, 0x8f, 0x14, 0x9d, 0x8d, 0x32, 0xd0, 0xa3, 0xc7,
+ 0xb0, 0x2d, 0xe2, 0x36,
+ 0xd5, 0xd0, 0x9c, 0x25, 0xe0, 0xc4, 0xbb, 0x95, 0x07, 0x25, 0x41, 0x4f,
+ 0xc1, 0x7a, 0x22, 0xed,
+ 0x7c, 0x01, 0x22, 0xdb, 0xf4, 0x36, 0xcb, 0xf3, 0x4f, 0xdb, 0x96, 0x08,
+ 0x4b, 0x80, 0x94, 0x41,
+ 0xbc, 0xb3, 0x67, 0x6f, 0xe3, 0x8f, 0x0e, 0x7c, 0x09, 0x6f, 0xc3, 0xd1,
+ 0x80, 0x8e, 0x66, 0xf4,
+ 0x38, 0xb0, 0x01, 0xc1, 0x3c, 0xd5, 0x90, 0xaa, 0xd8, 0xc1, 0xba, 0xc9,
+ 0x5d, 0xcd, 0x19, 0x37,
+ 0x4f, 0x05, 0xaa, 0x31, 0xa2, 0xee, 0x61, 0xb9, 0xb0, 0x31, 0x8b, 0x28,
+ 0xa4, 0xc5, 0x81, 0x86,
+ 0xe0, 0x85, 0x04, 0x82, 0xf0, 0xd2, 0x05, 0xed, 0xe6, 0x82, 0xad, 0xa2,
+ 0xb7, 0xb2, 0x64, 0xdc,
+ 0x27, 0x21, 0xe8, 0x87, 0x01, 0x39, 0xd2, 0xe6, 0xbb, 0x87, 0x7e, 0xcb,
+ 0x3f, 0xed, 0x3c, 0xb6,
+ 0x76, 0xf2, 0x12, 0x0c, 0x3e, 0xa7, 0xf7, 0xa5, 0x6d, 0x0c, 0x46, 0x9c,
+ 0x23, 0xd4, 0x61, 0x98,
+ 0x78, 0xde, 0x83, 0xad, 0x31, 0x03, 0xd3, 0x6e, 0x5b, 0xad, 0x89, 0x3f,
+ 0xa5, 0x76, 0xf6, 0xe5,
+ 0x89, 0xe6, 0xff, 0xc8, 0xf3, 0x99, 0xb0, 0x04, 0xe8, 0xc8, 0x2f, 0x3c,
+ 0xf6, 0x46, 0x20, 0xc5,
+ 0x8d, 0x39, 0x5e, 0xbe, 0x36, 0xac, 0xa8, 0x99, 0xfc, 0xbe, 0x30, 0x0b,
+ 0x18, 0xb0, 0x42, 0x61,
+ 0xaf, 0x80, 0xae, 0xb3, 0x52, 0x3c, 0x64, 0x54, 0x56, 0xb3, 0x26, 0x8a,
+ 0x13, 0x77, 0xe5, 0x5a,
+ 0x9f, 0x4d, 0x2e, 0x9e, 0x27, 0x83, 0xc4, 0x07, 0xa6, 0x9e, 0xa2, 0x2d,
+ 0x51, 0x95, 0x38, 0xe6,
+ 0x84, 0x03, 0x66, 0xae, 0xdf, 0x5a, 0x9e, 0xd6, 0xd1, 0xae, 0x79, 0x18,
+ 0xdd, 0x43, 0x7f, 0xc3,
+ 0xe6, 0xd4, 0x14, 0xcf, 0xb6, 0x1c, 0x11, 0xdf, 0xf8, 0xcf, 0x5c, 0x6f,
+ 0x2e, 0x3f, 0x37, 0x2a,
+ 0xf1, 0x38, 0x7c, 0x65, 0xc2, 0x9a, 0x63, 0x6a, 0xb3, 0x65, 0xa6, 0x03,
+ 0x53, 0x30, 0xd6, 0x20,
+ 0x63, 0x90, 0xcb, 0x9d, 0xc9, 0xda, 0x89, 0xbf, 0x2c, 0x9d, 0x52, 0x0a,
+ 0x29, 0xa0, 0xb1, 0xc0,
+ 0x51, 0xd3, 0xfa, 0x8b, 0x3f, 0x9e, 0x25, 0x43, 0xd6, 0x8b, 0x38, 0x57,
+ 0x1c, 0x39, 0x5d, 0x2e,
+ 0xc8, 0xcf, 0xc4, 0x58, 0x5e, 0xd3, 0xf5, 0x76, 0x6e, 0x58, 0x6b, 0xb7,
+ 0xd4, 0x21, 0x36, 0x3e,
+ 0x03, 0xc9, 0x08, 0xc7, 0x23, 0x67, 0x0a, 0x19, 0x0f, 0xc7, 0x99, 0x87,
+ 0xad, 0xa7, 0xc8, 0x7b,
+ 0xed, 0x60, 0x9d, 0xe4, 0xdc, 0x11, 0x2b, 0x3f, 0xdf, 0xe4, 0xfb, 0x86,
+ 0x9c, 0xb7, 0x3b, 0xda,
+ 0x70, 0xa3, 0x02, 0x41, 0x78, 0x69, 0xe3, 0x97, 0x73, 0x41, 0xb7, 0x51,
+ 0xba, 0x59, 0x32, 0x6e,
+ 0x3c, 0x6f, 0xa0, 0xb7, 0xf9, 0xe0, 0x88, 0x37, 0xcc, 0xb7, 0xa5, 0xfe,
+ 0xb3, 0x3b, 0x7b, 0x93,
+ 0x8e, 0xf0, 0x56, 0x79, 0x15, 0xcb, 0xa2, 0x80, 0xf3, 0x79, 0xa9, 0x8c,
+ 0xb5, 0x17, 0x8a, 0x1a,
+ 0xd9, 0x72, 0xbc, 0xbf, 0x6c, 0x9b, 0x93, 0xf1, 0x3b, 0xbf, 0x60, 0x16,
+ 0x30, 0xa3, 0x84, 0xc2,
+ 0x10, 0xfa, 0xc1, 0x1b, 0x92, 0xd4, 0x60, 0x31, 0x50, 0x1b, 0x7c, 0xdc,
+ 0x3e, 0x5e, 0x4b, 0xd5,
+ 0x1a, 0x09, 0xf1, 0xcc, 0x58, 0x45, 0x5c, 0x67, 0x72, 0xcc, 0xac, 0x48,
+ 0x56, 0x0a, 0xbe, 0x0c,
+ 0x9d, 0xc3, 0x9f, 0xa5, 0xa4, 0x78, 0xc8, 0xa8, 0xac, 0xa5, 0x4c, 0xd7,
+ 0x26, 0xee, 0x09, 0xb4,
+ 0xee, 0xa9, 0x95, 0x23, 0xff, 0x76, 0x21, 0x26, 0xd0, 0x23, 0x62, 0x01,
+ 0x31, 0x10, 0xf3, 0xa1,
+ 0xcb, 0x06, 0xcc, 0x9f, 0x7d, 0xb4, 0xff, 0x6f, 0x61, 0x9f, 0xf2, 0x30,
+ 0x79, 0x86, 0xfe, 0x45,
+ 0x97, 0x30, 0xaf, 0x72, 0x6e, 0xe9, 0xf4, 0xfe, 0x8e, 0x72, 0x9c, 0x43,
+ 0x4e, 0xba, 0xfc, 0x6d,
+ 0xc9, 0x88, 0x7d, 0xa4, 0xfe, 0x4f, 0xf3, 0xc0, 0x6b, 0xa4, 0x1c, 0xca,
+ 0x0e, 0xfd, 0xcf, 0x17,
+ 0x79, 0x99, 0x3a, 0x51, 0x91, 0x9f, 0xd5, 0xd8, 0x5e, 0x51, 0xfe, 0x42,
+ 0x7f, 0xaa, 0x0f, 0xcc,
+ 0xb2, 0x9f, 0xf6, 0xce, 0xec, 0x2b, 0x2a, 0xb7, 0x3f, 0xce, 0x0c, 0x72,
+ 0x06, 0x2c, 0xf1, 0x89,
+ 0x35, 0x55, 0x98, 0xa7, 0x10, 0x16, 0xbe, 0x78, 0xe1, 0xa7, 0xec, 0xed,
+ 0x76, 0xc8, 0x46, 0x31,
+ 0x6c, 0xfb, 0xe3, 0xc0, 0x66, 0xe2, 0xab, 0xc2, 0x1f, 0xc0, 0xea, 0xd4,
+ 0x75, 0xde, 0xdf, 0x94,
+ 0x9c, 0x84, 0x26, 0x59, 0x04, 0xe4, 0xce, 0x1e, 0xa9, 0x59, 0x3b, 0xaa,
+ 0xfc, 0x32, 0xf0, 0x9d,
+ 0x1b, 0x4e, 0x48, 0x30, 0xf8, 0xd9, 0x5a, 0xd1, 0x77, 0x30, 0xdb, 0x35,
+ 0x8c, 0xd6, 0x47, 0x25,
+ 0x05, 0x98, 0x18, 0x8a, 0x65, 0xa9, 0x1e, 0x2b, 0x11, 0x8a, 0x68, 0x4a,
+ 0x34, 0x2a, 0x9b, 0x8d,
+ 0x50, 0x94, 0x43, 0x77, 0x9f, 0x02, 0x23, 0xf5, 0xd3, 0x77, 0x4f, 0x2a,
+ 0xc6, 0xe5, 0xa4, 0x07,
+ 0xf0, 0x7f, 0xc5, 0x99, 0x62, 0x06, 0x65, 0xdc, 0xb6, 0x99, 0xd1, 0x7e,
+ 0x89, 0xec, 0x2f, 0x09,
+ 0xd1, 0x0f, 0x3d, 0x53, 0x25, 0xf1, 0xa3, 0x08, 0x13, 0x53, 0x5e, 0x78,
+ 0x2f, 0x8c, 0x40, 0x49,
+ 0x12, 0x74, 0x70, 0x20, 0x11, 0x2f, 0x6c, 0x9e, 0x5a, 0x20, 0x92, 0x26,
+ 0x49, 0x25, 0x7a, 0x87,
+ 0x87, 0xca, 0x6e, 0x69, 0xfc, 0x3d, 0x94, 0xcf, 0xde, 0x69, 0xe0, 0x9f,
+ 0x70, 0xe4, 0xb7, 0xb8,
+ 0x08, 0x7d, 0x81, 0xec, 0x49, 0x6a, 0x30, 0xf9, 0x28, 0xec, 0x3e, 0x6e,
+ 0x1f, 0x2f, 0xc4, 0x8b,
+ 0x59, 0xae, 0x7b, 0x67, 0x76, 0xf4, 0x15, 0xba, 0xfe, 0x67, 0x06, 0x39,
+ 0x03, 0x16, 0x99, 0xa5,
+ 0xfc, 0xdd, 0xe5, 0x03, 0xee, 0x59, 0x4d, 0xb8, 0x8a, 0x03, 0xf0, 0x27,
+ 0x78, 0x35, 0x89, 0x26,
+ 0x21, 0x70, 0xf8, 0xca, 0x47, 0xf7, 0xc6, 0xd4, 0xa5, 0xca, 0x8f, 0x06,
+ 0xa6, 0x60, 0x6f, 0x40,
+ 0x85, 0x44, 0xdf, 0x52, 0x7f, 0xc6, 0x98, 0x60, 0xd4, 0x52, 0x0e, 0x65,
+ 0x07, 0x9f, 0x86, 0xea,
+ 0x55, 0x0c, 0x5b, 0xfd, 0xfa, 0xab, 0x3d, 0xde, 0xc2, 0xfd, 0x27, 0x60,
+ 0xf2, 0xcf, 0x3f, 0x8a,
+ 0x4e, 0x42, 0x13, 0xcd, 0x02, 0x72, 0x67, 0x0f, 0xb5, 0xcd, 0xfc, 0x55,
+ 0x7e, 0x19, 0x78, 0xaf,
+ 0xec, 0x27, 0x24, 0x18, 0x7c, 0x8d, 0x2d, 0x89, 0xda, 0x18, 0x8c, 0xfb,
+ 0x46, 0x6b, 0xc2, 0xf3,
+ 0xfb, 0xcb, 0x4c, 0xb2, 0x08, 0x0b, 0x5f, 0x3c, 0x91, 0xb2, 0x76, 0x97,
+ 0x3b, 0x64, 0x23, 0xf9,
+ 0x36, 0x9c, 0x90, 0x60, 0x33, 0x71, 0xb4, 0x61, 0xee, 0x60, 0x75, 0x6a,
+ 0xdb, 0x6f, 0x8e, 0x4a,
+ 0x75, 0x3b, 0x1a, 0xcb, 0x1d, 0xc0, 0xfd, 0xbc, 0x62, 0xcb, 0xdf, 0x1b,
+ 0x8e, 0x73, 0xa9, 0xe3,
+ 0x37, 0xdb, 0x29, 0x9c, 0x93, 0xed, 0xb2, 0xd7, 0xeb, 0x9c, 0x02, 0x17,
+ 0x01, 0xb3, 0x77, 0x63,
+ 0x5c, 0x36, 0x63, 0xed, 0x13, 0x5d, 0x0b, 0x91, 0xef, 0xed, 0x6e, 0x73,
+ 0x37, 0x3c, 0x02, 0x28,
+ 0xf6, 0x2e, 0xd5, 0xd4, 0x24, 0xc8, 0x71, 0xee, 0xa8, 0xd4, 0x20, 0xb3,
+ 0x10, 0x61, 0x7c, 0xff,
+ 0xf4, 0xa0, 0x64, 0xef, 0xa7, 0x33, 0x7d, 0x41, 0xa2, 0xef, 0xce, 0x49,
+ 0x67, 0x1a, 0x4d, 0xad,
+ 0xcd, 0x57, 0xdc, 0xd2, 0x3b, 0x7a, 0xeb, 0x5d, 0x7f, 0xd2, 0x03, 0xfd,
+ 0xe0, 0x0b, 0xad, 0xb3,
+ 0x6b, 0xed, 0x4a, 0x71, 0x80, 0xb0, 0xb9, 0x46, 0x04, 0x71, 0x6c, 0x64,
+ 0x36, 0x8f, 0x75, 0x4b,
+ 0xa2, 0x65, 0x37, 0xd5, 0x7e, 0xff, 0x4a, 0x86, 0x6f, 0xd5, 0x70, 0xae,
+ 0x38, 0x72, 0xba, 0x5c,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xaa, 0x18, 0xb6, 0x39, 0x37, 0x95, 0x7a, 0x7f, 0x47, 0x39, 0x4e, 0xc0,
+ 0x27, 0x5d, 0x7e, 0xd7,
+ 0x71, 0xe4, 0xbb, 0xbd, 0xd8, 0xf5, 0xe5, 0x21, 0x76, 0xbd, 0xc0, 0x2c,
+ 0x60, 0x85, 0xcb, 0x47,
+ 0x42, 0xe0, 0x33, 0x57, 0x8e, 0x2d, 0x4f, 0x6b, 0x89, 0x57, 0xdd, 0x0c,
+ 0x8f, 0xc0, 0xde, 0x80,
+ },
+ { /* 4 */
+ 0xc2, 0x36, 0xbf, 0xb8, 0xb8, 0xed, 0xf8, 0xa5, 0xff, 0x6a, 0x2d, 0xa5,
+ 0x4a, 0x84, 0x52, 0x5c,
+ 0x95, 0x8b, 0xd1, 0x9a, 0x9a, 0x0a, 0x38, 0x2d, 0x73, 0xc6, 0x2f, 0x2d,
+ 0x97, 0x24, 0xdb, 0x4d,
+ 0xa6, 0x30, 0x54, 0xed, 0xed, 0x72, 0xdb, 0x32, 0x62, 0xa7, 0x28, 0x32,
+ 0xbc, 0x57, 0x26, 0x97,
+ 0x27, 0xcf, 0x12, 0x53, 0x53, 0x58, 0x5c, 0x8f, 0x1d, 0x07, 0x49, 0x8f,
+ 0xe1, 0x72, 0x4a, 0xc8,
+ 0xe0, 0xe4, 0xf8, 0xe2, 0xe2, 0xbd, 0xfb, 0x0e, 0xe1, 0x95, 0x96, 0x0e,
+ 0x78, 0x67, 0x45, 0x71,
+ 0x86, 0x51, 0x31, 0x0c, 0x0c, 0x4d, 0xfe, 0x30, 0xc3, 0x57, 0x98, 0x30,
+ 0x2e, 0x81, 0x7c, 0x06,
+ 0x06, 0x16, 0x66, 0x0e, 0x0e, 0xb1, 0x6a, 0x38, 0x02, 0x11, 0x1d, 0x38,
+ 0x23, 0x5f, 0xd7, 0x07,
+ 0x5d, 0x87, 0xc4, 0x30, 0x30, 0xf7, 0x7e, 0xc0, 0x8a, 0x9f, 0x25, 0xc0,
+ 0xb8, 0x41, 0x33, 0x18,
+ 0x09, 0x31, 0x99, 0x15, 0x15, 0xa9, 0x8b, 0x54, 0x07, 0xda, 0xc8, 0x54,
+ 0x95, 0x2f, 0x30, 0xeb,
+ 0x78, 0xfb, 0xf4, 0xd8, 0xd8, 0xc0, 0x04, 0xe6, 0x28, 0x97, 0x67, 0xe6,
+ 0xf9, 0x06, 0x34, 0x6c,
+ 0xf4, 0x90, 0x6f, 0xc6, 0xc6, 0x9d, 0x44, 0x9e, 0xed, 0xf3, 0xd8, 0x9e,
+ 0xb2, 0x66, 0xf2, 0x63,
+ 0x16, 0xc7, 0xb5, 0x9f, 0x9f, 0x4f, 0x99, 0x39, 0xb3, 0x69, 0x45, 0x39,
+ 0x6a, 0x34, 0xfa, 0xae,
+ 0x19, 0xe0, 0x4a, 0x84, 0x84, 0x57, 0x78, 0x55, 0xb6, 0xa2, 0x90, 0x55,
+ 0xdc, 0x44, 0x1d, 0x42,
+ 0xec, 0xc8, 0x34, 0xfe, 0xfe, 0x1c, 0x2f, 0x7e, 0xe5, 0xb7, 0xac, 0x7e,
+ 0x3e, 0xd9, 0x28, 0x7f,
+ 0x69, 0x92, 0x36, 0xf5, 0xf5, 0xe8, 0xe4, 0x52, 0x27, 0x09, 0xdb, 0x52,
+ 0xe0, 0x96, 0xde, 0x9b,
+ 0x04, 0xa5, 0x44, 0xb5, 0xb5, 0xde, 0x4c, 0x91, 0xbd, 0x1e, 0x16, 0x91,
+ 0x83, 0x6a, 0x9a, 0xbb,
+ 0x8f, 0x60, 0xa8, 0x19, 0x19, 0xe4, 0x75, 0x64, 0xc4, 0x8d, 0x50, 0x64,
+ 0xbb, 0xae, 0x4c, 0xed,
+ 0x30, 0xb0, 0xb6, 0x70, 0x70, 0xc1, 0xd6, 0x03, 0x10, 0x88, 0xe8, 0x03,
+ 0xdb, 0xbd, 0x77, 0x38,
+ 0x39, 0x81, 0x2f, 0x65, 0x65, 0x68, 0x5d, 0x57, 0x17, 0x52, 0x20, 0x57,
+ 0x4e, 0x92, 0x47, 0xd3,
+ 0xe9, 0xd5, 0x61, 0xf7, 0xf7, 0x14, 0x70, 0x5a, 0xe6, 0x4f, 0x5e, 0x5a,
+ 0xed, 0x48, 0x75, 0x9a,
+ 0x03, 0x0b, 0x33, 0x07, 0x07, 0xb9, 0x35, 0x1c, 0x01, 0xe9, 0xef, 0x1c,
+ 0xf0, 0xce, 0x8a, 0xe2,
+ 0xcf, 0xa2, 0x62, 0x18, 0x18, 0x9a, 0x3f, 0x60, 0x45, 0xae, 0xf3, 0x60,
+ 0x5c, 0xc1, 0xf8, 0x0c,
+ 0x70, 0x72, 0x7c, 0x71, 0x71, 0xbf, 0x9c, 0x07, 0x91, 0xab, 0x4b, 0x07,
+ 0x3c, 0xd2, 0xc3, 0xd9,
+ 0x43, 0xc9, 0xf9, 0x06, 0x06, 0xc7, 0x7f, 0x18, 0x80, 0xca, 0x4c, 0x18,
+ 0x17, 0xa1, 0x3e, 0x03,
+ 0x55, 0x0e, 0x4c, 0x99, 0x99, 0x88, 0xe6, 0x21, 0x33, 0xa3, 0x09, 0x21,
+ 0x7d, 0x95, 0xc4, 0xad,
+ 0x2c, 0x4d, 0xa9, 0xfd, 0xfd, 0x9e, 0xf1, 0x72, 0xa5, 0xd2, 0x8a, 0x72,
+ 0xd4, 0x68, 0x37, 0x9f,
+ 0x12, 0x62, 0xf1, 0x2a, 0x2a, 0x91, 0xd5, 0xa8, 0x0e, 0x77, 0x53, 0xa8,
+ 0xe9, 0x5e, 0x60, 0x15,
+ 0x8e, 0xd8, 0xb9, 0xa5, 0xa5, 0x32, 0x66, 0xd1, 0x7a, 0x6b, 0xb4, 0xd1,
+ 0xeb, 0x55, 0x8b, 0xb3,
+ 0xd5, 0x49, 0x1b, 0x9b, 0x9b, 0x74, 0x72, 0x29, 0xf2, 0xe5, 0x8c, 0x29,
+ 0x70, 0x4b, 0x6f, 0xac,
+ 0x3d, 0x24, 0x6b, 0xd0, 0xd0, 0xb6, 0x11, 0xc6, 0xaa, 0x4c, 0x36, 0xc6,
+ 0xcd, 0xf8, 0xdd, 0x68,
+ 0xd2, 0xe7, 0x6c, 0x29, 0x29, 0x13, 0x0b, 0xa4, 0x4e, 0x12, 0x75, 0xa4,
+ 0x03, 0xef, 0x7f, 0xf5,
+ 0x76, 0x64, 0x1a, 0x7f, 0x7f, 0x0e, 0xf6, 0x3f, 0x93, 0xba, 0x56, 0x3f,
+ 0x1f, 0x8d, 0x14, 0xde,
+ 0x18, 0x58, 0x5b, 0x38, 0x38, 0x81, 0x6b, 0xe0, 0x08, 0x44, 0x74, 0xe0,
+ 0x8c, 0xbf, 0xda, 0x1c,
+ 0x35, 0xad, 0xe3, 0x79, 0x79, 0xc9, 0x89, 0x27, 0x13, 0x70, 0x1a, 0x27,
+ 0x08, 0x2c, 0x2a, 0xdd,
+ 0x07, 0xae, 0x77, 0xb2, 0xb2, 0x67, 0x79, 0x8d, 0xbc, 0xf7, 0xf9, 0x8d,
+ 0x73, 0xa4, 0x10, 0x59,
+ 0xc0, 0x85, 0x9d, 0x03, 0x03, 0x82, 0xde, 0x0c, 0x40, 0x65, 0x26, 0x0c,
+ 0xea, 0xb1, 0x1f, 0xe0,
+ 0xf7, 0x9b, 0x5c, 0xc1, 0xc1, 0x24, 0x71, 0x82, 0xec, 0x1a, 0x37, 0x82,
+ 0x42, 0xa8, 0x78, 0x81,
+ 0xb8, 0x7e, 0x69, 0xdb, 0xdb, 0x42, 0xda, 0xea, 0x68, 0xf2, 0x41, 0xea,
+ 0x13, 0xb7, 0x2b, 0x8c,
+ 0x72, 0xc1, 0x5e, 0xca, 0xca, 0xd0, 0xba, 0xae, 0x2e, 0xa4, 0x40, 0xae,
+ 0x9c, 0xe7, 0x8e, 0x65,
+ 0x11, 0x69, 0xc2, 0x2d, 0x2d, 0x28, 0xe0, 0xb4, 0x0f, 0x9e, 0xbc, 0xb4,
+ 0x19, 0x90, 0xea, 0xf7,
+ 0xb4, 0x52, 0xa5, 0xc7, 0xc7, 0xe3, 0x0e, 0x9a, 0x6c, 0xd0, 0x7b, 0x9a,
+ 0x55, 0x09, 0x46, 0x82,
+ 0xff, 0x12, 0xd4, 0x68, 0x68, 0x5b, 0xe9, 0x63, 0x55, 0x26, 0x1b, 0x63,
+ 0x87, 0x7c, 0x8f, 0x34,
+ 0x1a, 0xeb, 0x79, 0x83, 0x83, 0xee, 0x4d, 0x49, 0xb7, 0x4b, 0x7f, 0x49,
+ 0x2c, 0x8a, 0x97, 0xa0,
+ 0x48, 0x4b, 0x42, 0xa8, 0xa8, 0x01, 0xd2, 0xe5, 0x38, 0x1f, 0x8f, 0xe5,
+ 0x22, 0xbb, 0x43, 0x54,
+ 0xaa, 0x1c, 0x98, 0xf1, 0xf1, 0xd3, 0x0f, 0x42, 0x66, 0x85, 0x12, 0x42,
+ 0xfa, 0xe9, 0x4b, 0x99,
+ 0x58, 0x9a, 0x91, 0x39, 0x39, 0xff, 0x21, 0xe4, 0x89, 0x67, 0xd7, 0xe4,
+ 0x6b, 0xd0, 0x6e, 0xfd,
+ 0x93, 0x9d, 0xb7, 0x94, 0x94, 0xbb, 0x52, 0x15, 0x71, 0xd7, 0x32, 0x15,
+ 0xb4, 0x7b, 0x0c, 0x4a,
+ 0x21, 0xd9, 0x74, 0x5d, 0x5d, 0xe9, 0x36, 0xb7, 0x1f, 0x16, 0x54, 0xb7,
+ 0xc2, 0x2d, 0x9d, 0xcf,
+ 0xdd, 0xc0, 0x93, 0x32, 0x32, 0x0b, 0xea, 0xc8, 0x4b, 0xd9, 0xa0, 0xc8,
+ 0xb5, 0x9f, 0x98, 0x19,
+ 0x60, 0xa3, 0xaf, 0xe0, 0xe0, 0x41, 0x6f, 0x06, 0x20, 0xd3, 0x13, 0x06,
+ 0x75, 0xb9, 0xee, 0x70,
+ 0x0c, 0x2c, 0xcc, 0x1c, 0x1c, 0xa1, 0xd4, 0x70, 0x04, 0x22, 0x3a, 0x70,
+ 0x46, 0xbe, 0x6d, 0x0e,
+ 0xc4, 0x20, 0xd9, 0xb6, 0xb6, 0x5c, 0x92, 0x9d, 0xfd, 0x7b, 0x30, 0x9d,
+ 0x69, 0xdb, 0x85, 0x5b,
+ 0x9a, 0xac, 0x2e, 0x81, 0x81, 0x12, 0xd9, 0x41, 0x76, 0x0d, 0xfa, 0x41,
+ 0x21, 0x54, 0x3c, 0xa1,
+ 0x5c, 0x3f, 0xd5, 0x8c, 0x8c, 0x21, 0x6d, 0x75, 0x34, 0x79, 0xc1, 0x75,
+ 0xe8, 0xba, 0xf4, 0x46,
+ 0x53, 0x18, 0x2a, 0x97, 0x97, 0x39, 0x8c, 0x19, 0x31, 0xb2, 0x14, 0x19,
+ 0x5e, 0xca, 0x13, 0xaa,
+ 0xcd, 0x11, 0x40, 0xa3, 0xa3, 0xf5, 0x19, 0xc9, 0xfa, 0xa1, 0xf8, 0xc9,
+ 0xfc, 0xf4, 0xb5, 0xb0,
+ 0x32, 0x03, 0x94, 0xcb, 0xcb, 0xae, 0xf0, 0xaa, 0xaf, 0x87, 0xe3, 0xaa,
+ 0x7b, 0x88, 0x3a, 0x84,
+ 0x1b, 0x53, 0x68, 0x3f, 0x3f, 0x38, 0x5e, 0xfc, 0x09, 0xad, 0x9b, 0xfc,
+ 0x7c, 0x71, 0x50, 0xfe,
+ 0x5a, 0x29, 0xb3, 0x82, 0x82, 0x90, 0x07, 0x4d, 0x36, 0x68, 0xdc, 0x4d,
+ 0xcb, 0xe5, 0x23, 0x41,
+ 0xa1, 0x9e, 0x23, 0x5f, 0x5f, 0x15, 0xa2, 0xbf, 0xde, 0x50, 0xd1, 0xbf,
+ 0xcf, 0xf3, 0x36, 0xce,
+ 0xe5, 0xf9, 0xad, 0xeb, 0xeb, 0xb5, 0xa4, 0x2a, 0xe2, 0x6d, 0x64, 0x2a,
+ 0xab, 0xf6, 0x18, 0x94,
+ 0x3c, 0x9c, 0x7a, 0x6c, 0x6c, 0x60, 0x02, 0x73, 0x14, 0xaa, 0xd2, 0x73,
+ 0x9d, 0x03, 0x1a, 0x36,
+ 0x97, 0x38, 0xf3, 0x21, 0x21, 0x65, 0x1e, 0x84, 0xcc, 0xc9, 0x24, 0x84,
+ 0x37, 0x11, 0x96, 0xf1,
+ 0xce, 0x1a, 0x73, 0xa4, 0xa4, 0x4c, 0x2c, 0xd5, 0xfb, 0x48, 0x17, 0xd5,
+ 0x0c, 0x3a, 0x3f, 0x52,
+ 0x6d, 0x37, 0x72, 0x40, 0x40, 0x36, 0xa8, 0xc3, 0x9a, 0x17, 0xcd, 0xc3,
+ 0x63, 0xfc, 0x44, 0x20,
+ 0x62, 0x10, 0x8d, 0x5b, 0x5b, 0x2e, 0x49, 0xaf, 0x9f, 0xdc, 0x18, 0xaf,
+ 0xd5, 0x8c, 0xa3, 0xcc,
+ 0xf5, 0x28, 0x7e, 0x7a, 0x7a, 0x4b, 0x57, 0x2b, 0x53, 0x15, 0x3c, 0x2b,
+ 0xe2, 0x9d, 0x35, 0x3d,
+ 0xb7, 0x59, 0x96, 0xc0, 0xc0, 0x5a, 0x3b, 0x86, 0x6d, 0x39, 0x94, 0x86,
+ 0xa5, 0xc7, 0xcc, 0x60,
+ 0xe2, 0x57, 0xda, 0x59, 0x59, 0xd2, 0xdd, 0xa7, 0x5e, 0x9a, 0x9d, 0xa7,
+ 0xd8, 0x52, 0x08, 0xcd,
+ 0x41, 0x7a, 0xdb, 0xbd, 0xbd, 0xa8, 0x59, 0xb1, 0x3f, 0xc5, 0x47, 0xb1,
+ 0xb7, 0x94, 0x73, 0xbf,
+ 0x71, 0xca, 0x6d, 0xcd, 0xcd, 0x69, 0x8f, 0xb2, 0x2f, 0x4d, 0xaf, 0xb2,
+ 0x6c, 0x29, 0x04, 0x87,
+ 0xf9, 0x04, 0xb2, 0x66, 0x66, 0xea, 0x83, 0x5b, 0x57, 0x37, 0x06, 0x5b,
+ 0xa4, 0x23, 0x58, 0x33,
+ 0xea, 0xde, 0x52, 0xf0, 0xf0, 0xad, 0x45, 0x46, 0xe7, 0xa6, 0xb1, 0x46,
+ 0x1d, 0x86, 0xff, 0x78,
+ 0xae, 0xb9, 0xdc, 0x44, 0x44, 0x0d, 0x43, 0xd3, 0xdb, 0x9b, 0x04, 0xd3,
+ 0x79, 0x83, 0xd1, 0x22,
+ 0xe4, 0x41, 0xbc, 0x57, 0x57, 0x63, 0xb7, 0x9f, 0x5c, 0x8b, 0x80, 0x9f,
+ 0xfb, 0x0d, 0xdf, 0xca,
+ 0x0b, 0x82, 0xbb, 0xae, 0xae, 0xc6, 0xad, 0xfd, 0xb8, 0xd5, 0xc3, 0xfd,
+ 0x35, 0x1a, 0x7d, 0x57,
+ 0xde, 0xcb, 0xa0, 0x35, 0x35, 0xb2, 0xdf, 0xd4, 0x4a, 0x30, 0x4f, 0xd4,
+ 0x45, 0x51, 0x12, 0xfb,
+ 0xf0, 0x35, 0x2b, 0x73, 0x73, 0x43, 0x08, 0x0f, 0x50, 0xed, 0xce, 0x0f,
+ 0x31, 0x0c, 0x68, 0xd8,
+ 0xd4, 0xf1, 0x0a, 0x27, 0x27, 0xa2, 0x61, 0x9c, 0x4c, 0x03, 0x68, 0x9c,
+ 0x20, 0xb0, 0xa8, 0xf2,
+ 0xb5, 0xea, 0xb4, 0x7b, 0x7b, 0x35, 0x1d, 0x2f, 0xd2, 0x36, 0x9f, 0x2f,
+ 0x05, 0xf2, 0x81, 0xdc,
+ 0xa4, 0x83, 0x76, 0x56, 0x56, 0x1d, 0xfd, 0x9b, 0xdd, 0xa8, 0x23, 0x9b,
+ 0x1c, 0x62, 0x6b, 0x2b,
+ 0xba, 0xcd, 0x4b, 0x60, 0x60, 0x2d, 0xfc, 0x43, 0xd7, 0xfd, 0x4a, 0x43,
+ 0xb3, 0x82, 0x66, 0x30,
+ 0xe8, 0x6d, 0x70, 0x4b, 0x4b, 0xc2, 0x63, 0xef, 0x58, 0xa9, 0xba, 0xef,
+ 0xbd, 0xb3, 0xb2, 0xc4,
+ 0x0e, 0x9f, 0xee, 0xa7, 0xa7, 0xce, 0xf2, 0xd9, 0xbb, 0x2d, 0x31, 0xd9,
+ 0xe6, 0x8b, 0x20, 0xb2,
+ 0x9c, 0xba, 0x48, 0x8f, 0x8f, 0xa3, 0xb3, 0x79, 0x74, 0x1c, 0xe7, 0x79,
+ 0x02, 0x0b, 0xeb, 0xa6,
+ 0x31, 0x08, 0xa7, 0xcc, 0xcc, 0x17, 0xc5, 0xb6, 0xae, 0x6e, 0x0c, 0xb6,
+ 0x8b, 0x46, 0xb0, 0x66,
+ 0x79, 0x43, 0xe5, 0x64, 0x64, 0x16, 0x17, 0x53, 0x96, 0x71, 0x83, 0x53,
+ 0xa9, 0xfd, 0xf3, 0x32,
+ 0xfc, 0x19, 0xe7, 0x6f, 0x6f, 0xe2, 0xdc, 0x7f, 0x54, 0xcf, 0xf4, 0x7f,
+ 0x77, 0xb2, 0x05, 0xd6,
+ 0x4d, 0x56, 0x17, 0xa1, 0xa1, 0x09, 0x8d, 0xc1, 0x3b, 0xe7, 0x7d, 0xc1,
+ 0xf1, 0x2a, 0x1e, 0xb1,
+ 0xdb, 0xd6, 0xf5, 0x3c, 0x3c, 0xba, 0x80, 0xf0, 0x49, 0xc8, 0xbd, 0xf0,
+ 0x96, 0xc0, 0x4f, 0x1e,
+ 0x75, 0x6f, 0x29, 0x78, 0x78, 0xb7, 0xc3, 0x23, 0x92, 0x53, 0xb9, 0x23,
+ 0xef, 0x43, 0x9e, 0x3c,
+ 0x68, 0x2a, 0x27, 0x49, 0x49, 0x3e, 0xf7, 0xe7, 0x99, 0xef, 0x3f, 0xe7,
+ 0xb0, 0x6d, 0x19, 0xc5,
+ 0x15, 0xcc, 0x86, 0x98, 0x98, 0xf6, 0xac, 0x25, 0xb2, 0x80, 0xaa, 0x25,
+ 0x9a, 0xfa, 0x70, 0x4c,
+ 0xa9, 0x17, 0xab, 0xf6, 0xf6, 0x6a, 0x3a, 0x5e, 0x67, 0x6c, 0xfd, 0x5e,
+ 0x0a, 0x27, 0xc1, 0x7b,
+ 0x01, 0xb8, 0x11, 0xbc, 0xbc, 0xd6, 0x13, 0xb5, 0xbe, 0xe6, 0xe4, 0xb5,
+ 0x50, 0xfb, 0xc7, 0x5e,
+ 0x23, 0x6a, 0x56, 0xe6, 0xe6, 0x86, 0x10, 0x1e, 0xa0, 0x19, 0x5f, 0x1e,
+ 0x62, 0x18, 0xd0, 0x73,
+ 0xb2, 0x44, 0xc3, 0xc9, 0xc9, 0x52, 0x64, 0xa2, 0x6e, 0xc1, 0x66, 0xa2,
+ 0x76, 0x56, 0x91, 0x85,
+ 0x6e, 0x3c, 0x41, 0x47, 0x47, 0x8f, 0x9d, 0xdf, 0x9b, 0xfe, 0x22, 0xdf,
+ 0x93, 0x32, 0xce, 0xc2,
+ 0xf2, 0x86, 0x09, 0xc8, 0xc8, 0x2c, 0x2e, 0xa6, 0xef, 0xe2, 0xc5, 0xa6,
+ 0x91, 0x39, 0x25, 0x64,
+ 0x3b, 0x32, 0x0d, 0xde, 0xde, 0x07, 0x7b, 0xfe, 0xa8, 0x5d, 0x2b, 0xfe,
+ 0xee, 0xa7, 0x0a, 0x6f,
+ 0x52, 0xa0, 0x3b, 0x2b, 0x2b, 0xef, 0x9f, 0xac, 0x8f, 0x54, 0xf0, 0xac,
+ 0x0e, 0x31, 0xd4, 0xf4,
+ 0x65, 0xbe, 0xfa, 0xe9, 0xe9, 0x49, 0x30, 0x22, 0x23, 0x2b, 0xe1, 0x22,
+ 0xa6, 0x28, 0xb3, 0x95,
+ 0x4b, 0x40, 0x71, 0xaf, 0xaf, 0xb8, 0xe7, 0xf9, 0x39, 0xf6, 0x60, 0xf9,
+ 0xd2, 0x75, 0xc9, 0xb6,
+ 0x38, 0x39, 0x3e, 0xd9, 0xd9, 0xbe, 0x4e, 0xe2, 0xa9, 0xb4, 0xc4, 0xe2,
+ 0x1e, 0x69, 0x80, 0x8d,
+ 0x2a, 0x5b, 0xcf, 0xf3, 0xf3, 0x2f, 0x9b, 0x4a, 0xa7, 0xc3, 0x97, 0x4a,
+ 0xf7, 0x37, 0xe0, 0x98,
+ 0x91, 0x2e, 0x95, 0x2f, 0x2f, 0xd4, 0x74, 0xbc, 0xce, 0xd8, 0x39, 0xbc,
+ 0x14, 0x4e, 0x41, 0xf6,
+ 0xd6, 0x42, 0x28, 0x9c, 0x9c, 0xcd, 0x47, 0x35, 0xf3, 0x0c, 0x63, 0x35,
+ 0x80, 0x85, 0xe5, 0x4e,
+ 0xfd, 0xa1, 0xf6, 0xd3, 0xd3, 0x34, 0xcf, 0xca, 0xea, 0x29, 0x10, 0xca,
+ 0x27, 0x49, 0xc2, 0x88,
+ 0xf8, 0xbc, 0xa3, 0xda, 0xda, 0x3c, 0x90, 0xee, 0xe9, 0xd1, 0xe2, 0xee,
+ 0xf4, 0xd8, 0x9f, 0x6d,
+ 0x8c, 0x6b, 0x9b, 0x1e, 0x1e, 0x5d, 0x40, 0x78, 0xc5, 0x64, 0xbf, 0x78,
+ 0x4b, 0x60, 0xc6, 0x0f,
+ 0x50, 0x13, 0x19, 0x90, 0x90, 0x80, 0xb9, 0x05, 0x30, 0x5b, 0xfb, 0x05,
+ 0xae, 0x04, 0x99, 0x48,
+ 0x7f, 0x55, 0x83, 0x6a, 0x6a, 0xa7, 0x7d, 0x6b, 0x94, 0x60, 0x9e, 0x6b,
+ 0x8a, 0xa2, 0x24, 0x35,
+ 0x59, 0x22, 0x80, 0x85, 0x85, 0x29, 0x32, 0x51, 0x37, 0x81, 0x33, 0x51,
+ 0x3b, 0x2b, 0xa9, 0xa3,
+ 0x08, 0x89, 0x88, 0xa9, 0xa9, 0x7f, 0x98, 0xe1, 0xb9, 0x3c, 0x2c, 0xe1,
+ 0xc5, 0xd4, 0xf7, 0xb5,
+ 0xd9, 0x65, 0xd7, 0x87, 0x87, 0xd5, 0xa6, 0x59, 0xf6, 0xc7, 0xb6, 0x59,
+ 0x36, 0xf5, 0x02, 0xa2,
+ 0xa2, 0x95, 0x10, 0x58, 0x58, 0xac, 0x97, 0xa3, 0xdf, 0xb9, 0x3e, 0xa3,
+ 0x3f, 0x3d, 0xbc, 0x2c,
+ 0xfb, 0xb7, 0x90, 0xdd, 0xdd, 0x85, 0xa5, 0xf2, 0xe8, 0x38, 0x0d, 0xf2,
+ 0x04, 0x16, 0x15, 0x8f,
+ 0x1c, 0xfd, 0x1f, 0x8d, 0x8d, 0x5f, 0x27, 0x71, 0xb5, 0x5a, 0x62, 0x71,
+ 0x0f, 0xd5, 0x40, 0xa7,
+ 0x29, 0x50, 0xfc, 0xf4, 0xf4, 0x96, 0xae, 0x56, 0xa6, 0x2a, 0x78, 0x56,
+ 0x07, 0xf9, 0x6a, 0x7a,
+ 0xd3, 0x5f, 0x7d, 0x95, 0x95, 0xc5, 0x18, 0x11, 0xf0, 0xf4, 0x91, 0x11,
+ 0x53, 0x14, 0xb8, 0xab,
+ 0x6f, 0x84, 0x50, 0xfb, 0xfb, 0x59, 0x8e, 0x6a, 0x25, 0x18, 0xc6, 0x6a,
+ 0xc3, 0xc9, 0x09, 0x9c,
+ 0x47, 0x6c, 0xbd, 0xb3, 0xb3, 0x19, 0x33, 0x89, 0x3d, 0xd4, 0x5a, 0x89,
+ 0x94, 0xcb, 0xa4, 0xb8,
+ 0x54, 0xb6, 0x5d, 0x25, 0x25, 0x5e, 0xf5, 0x94, 0x8d, 0x45, 0xed, 0x94,
+ 0x2d, 0x6e, 0x03, 0xf3,
+ 0x9f, 0xb1, 0x7b, 0x88, 0x88, 0x1a, 0x86, 0x65, 0x75, 0xf5, 0x08, 0x65,
+ 0xf2, 0xc5, 0x61, 0x44,
+ 0x17, 0x7f, 0xa4, 0x23, 0x23, 0x99, 0x8a, 0x8c, 0x0d, 0x8f, 0xa1, 0x8c,
+ 0x3a, 0xcf, 0x3d, 0xf0,
+ 0xe1, 0x5c, 0xe9, 0x5e, 0x5e, 0x6b, 0xe8, 0xbb, 0x5f, 0x73, 0x72, 0xbb,
+ 0x28, 0x9c, 0x82, 0x2f,
+ 0x7c, 0x5e, 0xb0, 0x6d, 0x6d, 0x1e, 0x48, 0x77, 0x95, 0x89, 0x71, 0x77,
+ 0x7a, 0x6c, 0xae, 0xd7,
+ 0x46, 0xd4, 0xac, 0x0f, 0x0f, 0xcf, 0x20, 0x3c, 0x83, 0x32, 0xbe, 0x3c,
+ 0xc4, 0x30, 0x63, 0xe6,
+ 0xbc, 0xdb, 0x2d, 0x6e, 0x6e, 0x9c, 0x96, 0x7b, 0xd5, 0xec, 0x57, 0x7b,
+ 0x90, 0xdd, 0xb1, 0x37,
+ 0xc5, 0x98, 0xc8, 0x0a, 0x0a, 0x8a, 0x81, 0x28, 0x43, 0x9d, 0xd4, 0x28,
+ 0x39, 0x20, 0x42, 0x05,
+ 0x22, 0xd2, 0x47, 0x5a, 0x5a, 0x50, 0x03, 0xab, 0x1e, 0xff, 0xbb, 0xab,
+ 0x32, 0xe3, 0x17, 0x2d,
+ 0xbe, 0x68, 0x0f, 0xd5, 0xd5, 0xf3, 0xb0, 0xd2, 0x6a, 0xe3, 0x5c, 0xd2,
+ 0x30, 0xe8, 0xfc, 0x8b,
+ 0x96, 0x80, 0xe2, 0x9d, 0x9d, 0xb3, 0x0d, 0x31, 0x72, 0x2f, 0xc0, 0x31,
+ 0x67, 0xea, 0x51, 0xaf,
+ 0x7e, 0xed, 0x92, 0xd6, 0xd6, 0x71, 0x6e, 0xde, 0x2a, 0x86, 0x7a, 0xde,
+ 0xda, 0x59, 0xe3, 0x6b,
+ 0x1d, 0x45, 0x0e, 0x31, 0x31, 0x89, 0x34, 0xc4, 0x0b, 0xbc, 0x86, 0xc4,
+ 0x5f, 0x2e, 0x87, 0xf9,
+ 0xb9, 0xc6, 0x78, 0x67, 0x67, 0x94, 0xc9, 0x5f, 0xd6, 0x14, 0xa5, 0x5f,
+ 0x43, 0x4c, 0xec, 0xd2,
+ 0x9d, 0x02, 0x59, 0x33, 0x33, 0x75, 0xa0, 0xcc, 0xca, 0xfa, 0x03, 0xcc,
+ 0x52, 0xf0, 0x2c, 0xf8,
+ 0xad, 0xb2, 0xef, 0x43, 0x43, 0xb4, 0x76, 0xcf, 0xda, 0x72, 0xeb, 0xcf,
+ 0x89, 0x4d, 0x5b, 0xc0,
+ 0x6c, 0x8f, 0x63, 0xfc, 0xfc, 0xe0, 0xbb, 0x76, 0x24, 0xf1, 0x29, 0x76,
+ 0x33, 0x07, 0x83, 0x7e,
+ 0x85, 0x5a, 0x02, 0x0b, 0x0b, 0xf4, 0xcb, 0x2c, 0xc2, 0xbe, 0x77, 0x2c,
+ 0xde, 0x4f, 0xf6, 0xe4,
+ 0xd1, 0xec, 0x5f, 0x2e, 0x2e, 0xaa, 0x3e, 0xb8, 0x4f, 0xfb, 0x9a, 0xb8,
+ 0xf3, 0x21, 0xf5, 0x17,
+ 0x1e, 0x4e, 0x3d, 0x36, 0x36, 0x30, 0x01, 0xd8, 0x0a, 0x55, 0x69, 0xd8,
+ 0xaf, 0xe0, 0x0d, 0x1b,
+ 0xa5, 0x3b, 0x67, 0xea, 0xea, 0xcb, 0xee, 0x2e, 0x63, 0x4e, 0xc7, 0x2e,
+ 0x4c, 0x99, 0xac, 0x75,
+ 0xe6, 0xf2, 0x9e, 0xec, 0xec, 0x0c, 0x91, 0x36, 0xe3, 0x84, 0x8b, 0x36,
+ 0x5b, 0x38, 0x92, 0x76,
+ 0x2e, 0xfe, 0x8b, 0x46, 0x46, 0xf1, 0xd7, 0xdb, 0x1a, 0xdd, 0x81, 0xdb,
+ 0x74, 0x5d, 0x7a, 0x23,
+ 0x5f, 0x34, 0xe6, 0x8b, 0x8b, 0x98, 0x58, 0x69, 0x35, 0x90, 0x2e, 0x69,
+ 0x18, 0x74, 0x7e, 0xa4,
+ 0x61, 0x1b, 0xbe, 0x5c, 0x5c, 0x97, 0x7c, 0xb3, 0x9e, 0x35, 0xf7, 0xb3,
+ 0x25, 0x42, 0x29, 0x2e,
+ 0x83, 0x4c, 0x64, 0x05, 0x05, 0x45, 0xa1, 0x14, 0xc0, 0xaf, 0x6a, 0x14,
+ 0xfd, 0x10, 0x21, 0xe3,
+ 0x44, 0x67, 0x8e, 0xb4, 0xb4, 0xa0, 0x06, 0x95, 0x3c, 0x3d, 0xb5, 0x95,
+ 0x64, 0x05, 0x2e, 0x5a,
+ 0xb1, 0x4f, 0xf0, 0xce, 0xce, 0xeb, 0x51, 0xbe, 0x6f, 0x28, 0x89, 0xbe,
+ 0x86, 0x98, 0x1b, 0x67,
+ 0xef, 0xc3, 0x07, 0xf9, 0xf9, 0xa5, 0x1a, 0x62, 0xe4, 0x5e, 0x43, 0x62,
+ 0xce, 0x17, 0xa2, 0x9d,
+ 0x82, 0xf4, 0x75, 0xb9, 0xb9, 0x93, 0xb2, 0xa1, 0x7e, 0x49, 0x8e, 0xa1,
+ 0xad, 0xeb, 0xe6, 0xbd,
+ 0x36, 0xa6, 0xd0, 0x7e, 0x7e, 0x70, 0xbc, 0x3b, 0x12, 0x99, 0xf5, 0x3b,
+ 0xf8, 0xe2, 0xa0, 0x3f,
+ 0xa3, 0x2d, 0x01, 0xe4, 0xe4, 0x7a, 0x84, 0x16, 0x61, 0x5f, 0xda, 0x16,
+ 0x6f, 0xc6, 0x7b, 0x72,
+ 0xaf, 0x01, 0xcd, 0xf8, 0xf8, 0xdb, 0x50, 0x66, 0x65, 0x7d, 0xe0, 0x66,
+ 0x29, 0x78, 0x16, 0x7c,
+ 0x88, 0xce, 0xdf, 0xab, 0xab, 0x83, 0x0c, 0xe9, 0x78, 0x7a, 0xa9, 0xe9,
+ 0xc8, 0x0a, 0x5c, 0xb4,
+ 0x89, 0x76, 0xce, 0x17, 0x17, 0x55, 0x1f, 0x5c, 0xc6, 0x9c, 0x4d, 0x5c,
+ 0x98, 0xf1, 0x9b, 0xea,
+ 0x0f, 0x27, 0xff, 0x1b, 0x1b, 0x18, 0xe1, 0x6c, 0x05, 0xcb, 0xd5, 0x6c,
+ 0xb6, 0x70, 0xe7, 0xec,
+ 0x1f, 0xf6, 0x2c, 0x8a, 0x8a, 0xe6, 0x12, 0x6d, 0xb4, 0xb3, 0x8d, 0x6d,
+ 0xff, 0x1b, 0xca, 0x45,
+ 0x42, 0x71, 0xe8, 0xba, 0xba, 0x11, 0x6c, 0xad, 0x3e, 0x2c, 0xa8, 0xad,
+ 0x47, 0x5a, 0xf9, 0x5d,
+ 0xf6, 0x23, 0x4d, 0x7d, 0x7d, 0xf2, 0x62, 0x37, 0x52, 0xfc, 0xd3, 0x37,
+ 0x12, 0x53, 0xbf, 0xdf,
+ 0xdf, 0x73, 0xb1, 0x89, 0x89, 0x64, 0xcc, 0x61, 0xf4, 0xd6, 0xab, 0x61,
+ 0x15, 0xaa, 0xd5, 0xa5,
+ 0x3a, 0x8a, 0x1c, 0x62, 0x62, 0xd1, 0x68, 0x4b, 0x16, 0xbb, 0xcf, 0x4b,
+ 0xbe, 0x5c, 0xcd, 0x31,
+ 0xc1, 0x3d, 0x8c, 0xbf, 0xbf, 0x54, 0xcd, 0xb9, 0xfe, 0x83, 0xc2, 0xb9,
+ 0xba, 0x4a, 0xd8, 0xbe,
+ 0x28, 0xe8, 0xed, 0x48, 0x48, 0x40, 0xbd, 0xe3, 0x18, 0xcc, 0x9c, 0xe3,
+ 0x57, 0x02, 0xad, 0x24,
+ 0xf1, 0x8d, 0x3a, 0xcf, 0xcf, 0x95, 0x1b, 0xba, 0xee, 0x0b, 0x2a, 0xba,
+ 0x61, 0xf7, 0xaf, 0x86,
+ 0xcb, 0x07, 0x26, 0xad, 0xad, 0x44, 0x73, 0xf1, 0xf8, 0xb0, 0xe5, 0xf1,
+ 0xdf, 0xab, 0x62, 0xb7,
+ 0x92, 0x25, 0xa6, 0x28, 0x28, 0x6d, 0x41, 0xa0, 0xcf, 0x31, 0xd6, 0xa0,
+ 0xe4, 0x80, 0xcb, 0x14,
+ 0x87, 0xe9, 0x20, 0xb0, 0xb0, 0x9b, 0xed, 0x85, 0x7d, 0xb1, 0x7c, 0x85,
+ 0x7e, 0x7a, 0xbb, 0x58,
+ 0xe7, 0x4a, 0x8f, 0x50, 0x50, 0xda, 0x82, 0x83, 0x5d, 0x62, 0x6f, 0x83,
+ 0x0b, 0xc3, 0x55, 0x28,
+ 0x3e, 0x2f, 0x58, 0xd7, 0xd7, 0x0f, 0x24, 0xda, 0xab, 0xa5, 0xd9, 0xda,
+ 0x3d, 0x36, 0x57, 0x8a,
+ 0xfa, 0x0f, 0x81, 0x61, 0x61, 0x53, 0xb6, 0x47, 0x56, 0xde, 0xe9, 0x47,
+ 0x54, 0xed, 0xd2, 0xd1,
+ 0x0d, 0x94, 0xdd, 0xa0, 0xa0, 0x77, 0xc7, 0xc5, 0xba, 0xc4, 0xde, 0xc5,
+ 0x16, 0x45, 0xaa, 0x50,
+ 0x51, 0xab, 0x08, 0x2c, 0x2c, 0x56, 0xaa, 0xb0, 0x8e, 0xbd, 0x1f, 0xb0,
+ 0xfe, 0xff, 0x5e, 0x16,
+ 0xb6, 0xe1, 0x87, 0x7c, 0x7c, 0x8c, 0x28, 0x33, 0xd3, 0xdf, 0x70, 0x33,
+ 0xf5, 0x3c, 0x0b, 0x3e,
+ 0x7b, 0xf0, 0xc7, 0xdf, 0xdf, 0x79, 0x31, 0xfa, 0x29, 0x7e, 0x88, 0xfa,
+ 0x09, 0xc8, 0xbe, 0x8e,
+ 0x74, 0xd7, 0x38, 0xc4, 0xc4, 0x61, 0xd0, 0x96, 0x2c, 0xb5, 0x5d, 0x96,
+ 0xbf, 0xb8, 0x59, 0x62,
+ 0x3f, 0x97, 0x49, 0x6b, 0x6b, 0xd9, 0x37, 0x6f, 0x15, 0x43, 0x3d, 0x6f,
+ 0x6d, 0xcd, 0x90, 0xd4,
+ 0x2f, 0x46, 0x9a, 0xfa, 0xfa, 0x27, 0xc4, 0x6e, 0xa4, 0x3b, 0x65, 0x6e,
+ 0x24, 0xa6, 0xbd, 0x7d,
+ 0x7d, 0xe6, 0xa1, 0xd1, 0xd1, 0xc8, 0x5b, 0xc2, 0x2b, 0x6f, 0x95, 0xc2,
+ 0x2a, 0x97, 0x69, 0x89,
+ 0xbb, 0x75, 0x5a, 0xdc, 0xdc, 0xfb, 0xef, 0xf6, 0x69, 0x1b, 0xae, 0xf6,
+ 0xe3, 0x79, 0xa1, 0x6e,
+ 0x49, 0xf3, 0x53, 0x14, 0x14, 0xd7, 0xc1, 0x50, 0x86, 0xf9, 0x6b, 0x50,
+ 0x72, 0x40, 0x84, 0x0a,
+ 0x2b, 0xe3, 0xde, 0x4f, 0x4f, 0xf9, 0x88, 0xff, 0x19, 0x25, 0x73, 0xff,
+ 0xa7, 0xcc, 0x27, 0xc6,
+ 0x99, 0xa7, 0x1d, 0x86, 0x86, 0xab, 0xec, 0x5d, 0x77, 0xe4, 0x15, 0x5d,
+ 0xd1, 0x9a, 0xb6, 0x43,
+ 0x02, 0xb3, 0x22, 0xbb, 0xbb, 0x6f, 0x26, 0xa9, 0xbf, 0x0f, 0x0b, 0xa9,
+ 0xa0, 0x35, 0x4d, 0xbc,
+ 0x37, 0x1e, 0xc1, 0xc2, 0xc2, 0xa6, 0xaf, 0x8e, 0xac, 0x7f, 0x11, 0x8e,
+ 0xa8, 0x19, 0x67, 0x61,
+ 0xb3, 0xfc, 0xd2, 0x75, 0x75, 0x84, 0x77, 0x17, 0xd0, 0x27, 0x82, 0x17,
+ 0x26, 0xad, 0x56, 0xdb,
+ 0x73, 0x79, 0x4f, 0x76, 0x76, 0x06, 0xa9, 0x1b, 0x90, 0x42, 0xa4, 0x1b,
+ 0xcc, 0x1c, 0x49, 0x3b,
+ 0x64, 0x06, 0xeb, 0x55, 0x55, 0x9f, 0x23, 0x97, 0x9d, 0xcd, 0x05, 0x97,
+ 0xf6, 0xd3, 0x74, 0xcb,
+ 0xdc, 0x78, 0x82, 0x8e, 0x8e, 0xdd, 0xf9, 0x7d, 0xf5, 0x3f, 0x44, 0x7d,
+ 0xe5, 0x64, 0x5f, 0x47,
+ 0xd8, 0xdd, 0xc6, 0x3b, 0x3b, 0x03, 0xb5, 0xec, 0x48, 0x21, 0x52, 0xec,
+ 0x66, 0x0e, 0xc5, 0xfc,
+ 0xc9, 0xb4, 0x04, 0x16, 0x16, 0x2b, 0x55, 0x58, 0x47, 0xbf, 0xee, 0x58,
+ 0x7f, 0x9e, 0x2f, 0x0b,
+ 0xab, 0xa4, 0x89, 0x4d, 0x4d, 0x05, 0x1c, 0xf7, 0xd8, 0x63, 0xf6, 0xf7,
+ 0xaa, 0x12, 0x8c, 0xc7,
+ 0x33, 0xbb, 0x85, 0x77, 0x77, 0x78, 0xe3, 0x1f, 0x11, 0x61, 0x07, 0x1f,
+ 0x2b, 0x73, 0xfd, 0xda,
+ 0x6b, 0x21, 0x14, 0x4e, 0x4e, 0x87, 0xc2, 0xfb, 0x98, 0x06, 0xd0, 0xfb,
+ 0x40, 0xa3, 0x93, 0x27,
+ 0xcc, 0xa9, 0x51, 0x1f, 0x1f, 0x23, 0x0a, 0x7c, 0x44, 0x47, 0x1c, 0x7c,
+ 0xac, 0x0f, 0x72, 0xee,
+ 0x90, 0x96, 0x84, 0x93, 0x93, 0x02, 0x67, 0x09, 0x70, 0x3e, 0xdd, 0x09,
+ 0x44, 0xb5, 0x86, 0xa8,
+ 0xd0, 0x54, 0x4e, 0x92, 0x92, 0x7c, 0x2d, 0x0d, 0xf1, 0x1d, 0x7e, 0x0d,
+ 0xa3, 0xda, 0x32, 0x49,
+ 0xac, 0x0a, 0xfe, 0xff, 0xff, 0x62, 0x65, 0x7a, 0x64, 0x94, 0x0f, 0x7a,
+ 0xd9, 0xb6, 0x9c, 0x9e,
+ 0xbf, 0xd0, 0x1e, 0x69, 0x69, 0x25, 0xa3, 0x67, 0xd4, 0x05, 0xb8, 0x67,
+ 0x60, 0x13, 0x3b, 0xd5,
+ 0xda, 0x6e, 0xe4, 0x80, 0x80, 0x6c, 0x93, 0x45, 0xf7, 0x2e, 0x59, 0x45,
+ 0xc6, 0x3b, 0x88, 0x40,
+ 0xa7, 0x88, 0x45, 0x51, 0x51, 0xa4, 0xc8, 0x87, 0xdc, 0x41, 0xcc, 0x87,
+ 0xec, 0xac, 0xe1, 0xc9,
+ 0x5e, 0x8c, 0xf7, 0x37, 0x37, 0x4e, 0x4b, 0xdc, 0x8b, 0x76, 0xca, 0xdc,
+ 0x48, 0x8f, 0xb9, 0xfa,
+ 0x98, 0x1f, 0x0c, 0x3a, 0x3a, 0x7d, 0xff, 0xe8, 0xc9, 0x02, 0xf1, 0xe8,
+ 0x81, 0x61, 0x71, 0x1d,
+ 0x7a, 0x48, 0xd6, 0x63, 0x63, 0xaf, 0x22, 0x4f, 0x97, 0x98, 0x6c, 0x4f,
+ 0x59, 0x33, 0x79, 0xd0,
+ 0x13, 0xda, 0xe0, 0x96, 0x96, 0x47, 0xc6, 0x1d, 0xb0, 0x91, 0xb7, 0x1d,
+ 0xb9, 0xa5, 0xa7, 0x4b,
+ 0x6a, 0x99, 0x05, 0xf2, 0xf2, 0x51, 0xd1, 0x4e, 0x26, 0xe0, 0x34, 0x4e,
+ 0x10, 0x58, 0x54, 0x79,
+ 0x40, 0xc2, 0xca, 0x01, 0x01, 0x7e, 0x4a, 0x04, 0x81, 0x23, 0xa3, 0x04,
+ 0xe7, 0x6f, 0xb4, 0xe1,
+ 0xa8, 0xaf, 0xba, 0x4a, 0x4a, 0xbc, 0x29, 0xeb, 0xd9, 0x8a, 0x19, 0xeb,
+ 0x5a, 0xdc, 0x06, 0x25,
+ 0x5b, 0x91, 0xa2, 0x3e, 0x3e, 0x46, 0x14, 0xf8, 0x88, 0x8e, 0x38, 0xf8,
+ 0x9b, 0x1e, 0xe4, 0x1f,
+ 0xeb, 0x66, 0x43, 0x4c, 0x4c, 0x7b, 0x56, 0xf3, 0x59, 0x40, 0x55, 0xf3,
+ 0x4d, 0x7d, 0x38, 0x26,
+ 0x66, 0xb5, 0xc9, 0xee, 0xee, 0xf0, 0x05, 0x3e, 0x22, 0xc2, 0x0e, 0x3e,
+ 0x56, 0xe6, 0x39, 0x77,
+ 0x56, 0x05, 0x7f, 0x9e, 0x9e, 0x31, 0xd3, 0x3d, 0x32, 0x4a, 0xe6, 0x3d,
+ 0x8d, 0x5b, 0x4e, 0x4f,
+ 0x81, 0xff, 0x46, 0xbe, 0xbe, 0x2a, 0x87, 0xbd, 0x7f, 0xa0, 0x61, 0xbd,
+ 0x5d, 0x25, 0x6c, 0x5f,
+ 0x77, 0xdc, 0x0b, 0xc3, 0xc3, 0xd8, 0xe5, 0x8a, 0x2d, 0x5c, 0xb2, 0x8a,
+ 0x4f, 0x76, 0xd3, 0x80,
+ 0x57, 0xbd, 0x6e, 0x22, 0x22, 0xe7, 0xc0, 0x88, 0x8c, 0xac, 0x02, 0x88,
+ 0xdd, 0xa0, 0x89, 0x11,
+ 0x4e, 0x5d, 0x24, 0xa6, 0xa6, 0xb0, 0xb8, 0xdd, 0x3a, 0x0e, 0x92, 0xdd,
+ 0x01, 0xe4, 0x94, 0x53,
+ 0x8d, 0xd3, 0x8a, 0xa2, 0xa2, 0x8b, 0x53, 0xcd, 0x7b, 0x82, 0x5b, 0xcd,
+ 0x1b, 0x9b, 0x01, 0x51,
+ 0xb0, 0xf7, 0xe1, 0x72, 0x72, 0x3d, 0x42, 0x0b, 0xd1, 0xce, 0x6d, 0x0b,
+ 0xd6, 0x63, 0xdc, 0x39,
+ 0xf3, 0x3e, 0x18, 0x74, 0x74, 0xfa, 0x3d, 0x13, 0x51, 0x04, 0x21, 0x13,
+ 0xc1, 0xc2, 0xe2, 0x3a,
+ 0x94, 0x33, 0xc0, 0x26, 0x26, 0xdc, 0x2b, 0x98, 0xcd, 0x20, 0xcb, 0x98,
+ 0xc7, 0xdf, 0x1c, 0x13,
+ 0x20, 0x61, 0x65, 0xe1, 0xe1, 0x3f, 0x25, 0x02, 0xa1, 0xf0, 0xb0, 0x02,
+ 0x92, 0xd6, 0x5a, 0x91,
+ 0x24, 0xc4, 0x21, 0x54, 0x54, 0xe1, 0x69, 0x93, 0x1c, 0xee, 0xa6, 0x93,
+ 0x11, 0xbc, 0xc0, 0x2a,
+ 0xd7, 0xfa, 0x39, 0x20, 0x20, 0x1b, 0x54, 0x80, 0x4d, 0xea, 0x87, 0x80,
+ 0xd0, 0x7e, 0x22, 0x10,
+ 0x14, 0x74, 0x97, 0x24, 0x24, 0x20, 0xbf, 0x90, 0x0c, 0x66, 0x4e, 0x90,
+ 0xca, 0x01, 0xb7, 0x12,
+ 0x9e, 0x09, 0x6a, 0x34, 0x34, 0xcc, 0x95, 0xd0, 0xcb, 0x13, 0xec, 0xd0,
+ 0xa2, 0x3e, 0xa6, 0x1a,
+ 0x05, 0x1d, 0x55, 0x09, 0x09, 0x08, 0x5f, 0x24, 0x03, 0xf8, 0xf2, 0x24,
+ 0xd3, 0x91, 0x5d, 0xe5,
+ 0xc6, 0x93, 0xfb, 0x0d, 0x0d, 0x33, 0xb4, 0x34, 0x42, 0x74, 0x3b, 0x34,
+ 0xc9, 0xee, 0xc8, 0xe7,
+ 0xed, 0x70, 0x25, 0x42, 0x42, 0xca, 0x3c, 0xcb, 0x5b, 0x51, 0x48, 0xcb,
+ 0x6e, 0x22, 0xef, 0x21,
+ 0xc8, 0x0c, 0x15, 0xaa, 0xaa, 0xfd, 0x46, 0xed, 0xf9, 0x59, 0x0a, 0xed,
+ 0x2f, 0x65, 0xe8, 0x55,
+ 0x9b, 0x14, 0x3f, 0x3d, 0x3d, 0xc4, 0xca, 0xf4, 0xc8, 0xeb, 0x1e, 0xf4,
+ 0x71, 0xaf, 0xfb, 0xff,
+ 0xbd, 0x63, 0x3c, 0xd2, 0xd2, 0x4a, 0x85, 0xce, 0x6b, 0x0a, 0xb3, 0xce,
+ 0xc0, 0x26, 0x76, 0x69,
+ 0x84, 0xe2, 0x13, 0xb7, 0xb7, 0x22, 0xd8, 0x99, 0x7c, 0x58, 0x93, 0x99,
+ 0x8e, 0xb4, 0x31, 0xba,
+ 0xc3, 0x8e, 0xae, 0x04, 0x04, 0x3b, 0xeb, 0x10, 0x41, 0x8c, 0xc9, 0x10,
+ 0x1a, 0x7f, 0x95, 0x02,
+ 0xca, 0xbf, 0x37, 0x11, 0x11, 0x92, 0x60, 0x44, 0x46, 0x56, 0x01, 0x44,
+ 0x8f, 0x50, 0xa5, 0xe9,
+ 0x8a, 0x7d, 0xfd, 0x10, 0x10, 0xec, 0x2a, 0x40, 0xc7, 0x75, 0xa2, 0x40,
+ 0x68, 0x3f, 0x11, 0x08,
+ 0x34, 0x15, 0xf2, 0xc5, 0xc5, 0x1f, 0x9a, 0x92, 0xad, 0x96, 0xfe, 0x92,
+ 0x58, 0xd7, 0xed, 0x83,
+ 0x26, 0x77, 0x03, 0xef, 0xef, 0x8e, 0x4f, 0x3a, 0xa3, 0xe1, 0xad, 0x3a,
+ 0xb1, 0x89, 0x8d, 0x96,
+ 0x10, 0xd1, 0xd3, 0x91, 0x91, 0xfe, 0xf3, 0x01, 0xb1, 0x78, 0x58, 0x01,
+ 0x49, 0x6b, 0x2d, 0xa9,
+ 0x25, 0x7c, 0x30, 0xe8, 0xe8, 0x37, 0x7a, 0x26, 0xa2, 0x08, 0x42, 0x26,
+ 0x41, 0x47, 0x07, 0x74,
+ 0xe3, 0xef, 0xcb, 0xe5, 0xe5, 0x04, 0xce, 0x12, 0xe0, 0x7c, 0x79, 0x12,
+ 0x88, 0xa9, 0xcf, 0x93,
+ 0x63, 0xa8, 0x9c, 0xe7, 0xe7, 0xf8, 0x5a, 0x1a, 0x21, 0x3a, 0xfc, 0x1a,
+ 0x85, 0x77, 0x64, 0x92,
+ 0x0a, 0x3a, 0xaa, 0x12, 0x12, 0x10, 0xbe, 0x48, 0x06, 0x33, 0x27, 0x48,
+ 0x65, 0xe1, 0xba, 0x09,
+ 0x4f, 0xe5, 0x35, 0x1a, 0x1a, 0x66, 0xab, 0x68, 0x84, 0xe8, 0x76, 0x68,
+ 0x51, 0x1f, 0x53, 0x0d,
+ 0x8b, 0xc5, 0xec, 0xac, 0xac, 0x3a, 0x39, 0xf5, 0x79, 0x93, 0x46, 0xf5,
+ 0x38, 0xc4, 0xd6, 0x56,
+ 0xc7, 0x2b, 0xea, 0xb1, 0xb1, 0xe5, 0xa7, 0x81, 0xfc, 0x92, 0xdf, 0x81,
+ 0x99, 0x15, 0x0f, 0xb9,
+ 0x67, 0x0d, 0xd8, 0x52, 0x52, 0x26, 0x16, 0x8b, 0x9c, 0x24, 0xea, 0x8b,
+ 0x06, 0x1d, 0xfe, 0x29,
+ 0x2d, 0xf5, 0xb8, 0x41, 0x41, 0x48, 0xe2, 0xc7, 0x1b, 0x34, 0x6e, 0xc7,
+ 0x84, 0x93, 0xf0, 0xc1,
+ 0xfe, 0xaa, 0xc5, 0xd4, 0xd4, 0x8d, 0xfa, 0xd6, 0xeb, 0xc0, 0xff, 0xd6,
+ 0xd7, 0x87, 0x48, 0x6a,
+ 0x45, 0xdf, 0x9f, 0x08, 0x08, 0x76, 0x15, 0x20, 0x82, 0xdb, 0x51, 0x20,
+ 0x34, 0xfe, 0xe9, 0x04,
+ 0xa0, 0x26, 0x32, 0xe3, 0xe3, 0xc3, 0xb1, 0x0a, 0x60, 0xb6, 0x35, 0x0a,
+ 0x9f, 0x08, 0xf1, 0x90,
+ 0x80, 0x47, 0x57, 0x02, 0x02, 0xfc, 0x94, 0x08, 0xc1, 0x46, 0x85, 0x08,
+ 0x0d, 0xde, 0xab, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x4a, 0xf8, 0x60, 0x13, 0x13, 0x6e, 0xf4, 0x4c, 0x87, 0x10, 0x84, 0x4c,
+ 0x82, 0x8e, 0x0e, 0xe8,
+ 0xee, 0x7b, 0x16, 0x45, 0x45, 0x73, 0x09, 0xd7, 0x5a, 0xb8, 0xa7, 0xd7,
+ 0x9e, 0xec, 0x65, 0xc3,
+ 0x4c, 0xee, 0x06, 0x1d, 0x1d, 0xdf, 0x9e, 0x74, 0x85, 0x01, 0x99, 0x74,
+ 0xa1, 0xd1, 0xd9, 0xef,
+ },
+ { /* 5 */
+ 0xd8, 0xca, 0x20, 0x18, 0xa6, 0x5b, 0x9c, 0xaf, 0x78, 0xd9, 0x1d, 0x80,
+ 0x8c, 0x85, 0x3b, 0x8c,
+ 0x69, 0x10, 0x51, 0x4c, 0xc5, 0x06, 0x68, 0x18, 0xbf, 0x31, 0xb7, 0x87,
+ 0xa1, 0x7c, 0xf5, 0xa1,
+ 0xc0, 0xd0, 0x1b, 0x9a, 0xb0, 0x2e, 0xcd, 0xb8, 0xb7, 0xbe, 0xdf, 0x6c,
+ 0x21, 0x29, 0x03, 0x21,
+ 0xba, 0xff, 0xe6, 0xab, 0xa2, 0x89, 0xd9, 0x61, 0x42, 0xa1, 0xdc, 0x1e,
+ 0xaa, 0x69, 0x60, 0xaa,
+ 0x16, 0x4a, 0xed, 0x3d, 0x41, 0x6b, 0x5a, 0x6f, 0xc9, 0x92, 0xec, 0x32,
+ 0xcd, 0xe3, 0x9f, 0xcd,
+ 0x87, 0x09, 0x79, 0x52, 0xab, 0x3b, 0xd3, 0xec, 0xd9, 0x4f, 0x3c, 0x27,
+ 0x0e, 0x49, 0xb0, 0x0e,
+ 0x58, 0xeb, 0x32, 0xf4, 0xc7, 0x6f, 0xab, 0x7f, 0xa2, 0x0d, 0x36, 0xc8,
+ 0xb2, 0x0a, 0x39, 0xb2,
+ 0x59, 0x24, 0x27, 0x8b, 0xe9, 0xec, 0xca, 0x36, 0xe2, 0xff, 0xf0, 0x9c,
+ 0x38, 0xe7, 0x85, 0x38,
+ 0xc4, 0x6a, 0x4f, 0xa5, 0x08, 0x67, 0x8a, 0x5f, 0x74, 0xf0, 0x41, 0xff,
+ 0x4c, 0x1b, 0xb6, 0x4c,
+ 0x6a, 0x82, 0x6e, 0xcd, 0xb7, 0x40, 0xcb, 0xc3, 0x7f, 0xe4, 0x3e, 0x7b,
+ 0xfc, 0x88, 0xf2, 0xfc,
+ 0x05, 0x75, 0x41, 0x40, 0x96, 0xca, 0x26, 0xae, 0x83, 0xbc, 0x58, 0xc7,
+ 0xe7, 0xdf, 0x09, 0xe7,
+ 0x9a, 0x66, 0x03, 0x90, 0x2b, 0x84, 0xa4, 0x55, 0x95, 0x94, 0xa6, 0x0c,
+ 0x44, 0x3a, 0x81, 0x44,
+ 0x06, 0xe7, 0x7e, 0xc1, 0xe4, 0x8c, 0x85, 0x75, 0x43, 0x69, 0xd1, 0x3b,
+ 0xba, 0x2b, 0x0e, 0xba,
+ 0xa6, 0x5f, 0x89, 0x16, 0x0c, 0xb5, 0xcf, 0x91, 0x4e, 0x88, 0x80, 0x61,
+ 0x6a, 0xf7, 0xed, 0x6a,
+ 0x0d, 0xc2, 0xe9, 0x3e, 0x25, 0x58, 0xa8, 0xa3, 0xc6, 0x20, 0xa7, 0x22,
+ 0x3d, 0xbb, 0xa0, 0x3d,
+ 0xd1, 0xb2, 0x9d, 0x19, 0x3b, 0x4a, 0x73, 0xeb, 0x7d, 0xb7, 0x24, 0x31,
+ 0xdc, 0x0c, 0x2e, 0xdc,
+ 0x43, 0x63, 0x36, 0xf7, 0xa3, 0x5c, 0x59, 0xb3, 0xad, 0xbf, 0x7d, 0xd8,
+ 0x42, 0x52, 0x06, 0x42,
+ 0x85, 0x54, 0x53, 0xac, 0xf7, 0xfe, 0x11, 0x7e, 0x59, 0x68, 0x73, 0x8f,
+ 0xd9, 0x50, 0x0b, 0xd9,
+ 0x41, 0x3e, 0x1c, 0x09, 0xff, 0x99, 0x9b, 0x21, 0x2d, 0x98, 0x32, 0x70,
+ 0x95, 0x4b, 0xbd, 0x95,
+ 0xd2, 0x20, 0xa2, 0x98, 0x49, 0x0c, 0xd0, 0x30, 0xbd, 0x62, 0xad, 0xcd,
+ 0x81, 0xf8, 0x29, 0x81,
+ 0x2c, 0x94, 0x19, 0x7a, 0x82, 0xd6, 0xb4, 0xde, 0x51, 0xe7, 0x1b, 0x64,
+ 0x59, 0x05, 0xfd, 0x59,
+ 0xcd, 0x12, 0xf2, 0xa4, 0x95, 0x76, 0x65, 0x1b, 0x71, 0x9e, 0x78, 0x4e,
+ 0x1c, 0x92, 0xa3, 0x1c,
+ 0x0b, 0x25, 0x97, 0xff, 0xc1, 0xd4, 0x2d, 0xd6, 0x85, 0x49, 0x76, 0x19,
+ 0x87, 0x90, 0xae, 0x87,
+ 0xa2, 0xe5, 0xdd, 0x29, 0xb4, 0xfc, 0x88, 0x76, 0x8d, 0xc6, 0x1e, 0xf2,
+ 0x07, 0xc5, 0x58, 0x07,
+ 0x38, 0x83, 0xde, 0xb9, 0x9f, 0x78, 0x2c, 0x23, 0x18, 0x52, 0xb8, 0xfe,
+ 0x43, 0xff, 0xd9, 0x43,
+ 0xf7, 0xcc, 0x06, 0xe3, 0x56, 0xcb, 0x8b, 0xaa, 0xe9, 0xeb, 0x8f, 0x18,
+ 0x88, 0x74, 0xc1, 0x88,
+ 0x4b, 0xd4, 0x9e, 0x89, 0x10, 0xce, 0xd7, 0xbe, 0xe8, 0x23, 0x82, 0x3d,
+ 0x98, 0x36, 0xaf, 0x98,
+ 0xe6, 0xae, 0x80, 0x60, 0xdd, 0xaf, 0x35, 0xf9, 0x23, 0xe2, 0x74, 0x45,
+ 0x75, 0x51, 0xec, 0x75,
+ 0xe7, 0x61, 0x95, 0x1f, 0xf3, 0x2c, 0x54, 0xb0, 0x63, 0x10, 0xb2, 0x11,
+ 0xff, 0xbc, 0x50, 0xff,
+ 0x90, 0x8c, 0x81, 0x10, 0xc4, 0xd3, 0xe8, 0xca, 0x50, 0x2f, 0x16, 0x41,
+ 0x49, 0x47, 0x93, 0x49,
+ 0x1a, 0x47, 0x11, 0x7c, 0x4a, 0xb0, 0x93, 0x85, 0x4f, 0x40, 0x8d, 0x44,
+ 0x7a, 0xb5, 0x83, 0x7a,
+ 0x53, 0xce, 0xa5, 0x0b, 0x06, 0xbb, 0x86, 0xa9, 0x27, 0x44, 0x40, 0xd1,
+ 0x35, 0x9a, 0x97, 0x35,
+ 0xa3, 0x2a, 0xc8, 0x56, 0x9a, 0x7f, 0xe9, 0x3f, 0xcd, 0x34, 0xd8, 0xa6,
+ 0x8d, 0x28, 0xe4, 0x8d,
+ 0xf1, 0x2b, 0x78, 0x22, 0xb2, 0x47, 0x0e, 0xdf, 0xaa, 0x82, 0x5e, 0x23,
+ 0x32, 0x5f, 0xcf, 0x32,
+ 0xfd, 0x26, 0x84, 0x63, 0xb9, 0x9c, 0xc7, 0x35, 0x2c, 0x50, 0x3f, 0x55,
+ 0x85, 0x09, 0xd3, 0x85,
+ 0x51, 0x93, 0x8f, 0xf5, 0x5a, 0x7e, 0x44, 0x3b, 0xa7, 0x63, 0x0f, 0x79,
+ 0xe2, 0x83, 0x2c, 0xe2,
+ 0x29, 0xe1, 0x58, 0x3a, 0x14, 0x1c, 0x92, 0x70, 0xd2, 0x5b, 0x43, 0xa3,
+ 0xbe, 0xda, 0xf4, 0xbe,
+ 0x3b, 0x11, 0xe1, 0x38, 0xed, 0x3e, 0x8f, 0xf8, 0xd8, 0x87, 0x31, 0x02,
+ 0x1e, 0x0b, 0xde, 0x1e,
+ 0x82, 0x7c, 0x38, 0x12, 0x3d, 0xf1, 0xf5, 0x42, 0x5a, 0xf3, 0x64, 0xe0,
+ 0xe9, 0x96, 0xb9, 0xe9,
+ 0x67, 0x40, 0x87, 0xf3, 0x92, 0x18, 0x63, 0x60, 0xb9, 0xc4, 0x99, 0x59,
+ 0xc1, 0x33, 0x52, 0xc1,
+ 0x8b, 0x04, 0x85, 0x13, 0xa0, 0xe0, 0x1a, 0x06, 0x5f, 0x9d, 0x5d, 0x51,
+ 0xb9, 0x1f, 0xac, 0xb9,
+ 0x48, 0x46, 0xa1, 0x08, 0x62, 0x88, 0x74, 0x65, 0x28, 0xf6, 0x0b, 0xc1,
+ 0xc5, 0xc2, 0xa8, 0xc5,
+ 0x2a, 0x73, 0x67, 0xbb, 0x66, 0x5a, 0x31, 0xab, 0x12, 0x8e, 0xca, 0x5f,
+ 0xe3, 0x2e, 0xf3, 0xe3,
+ 0xef, 0xd6, 0x3d, 0x61, 0x40, 0xbe, 0xda, 0xbd, 0x26, 0x8c, 0x4d, 0xf4,
+ 0x25, 0xd8, 0xf9, 0x25,
+ 0x70, 0xc5, 0x7f, 0xb1, 0xfd, 0xf0, 0x58, 0x46, 0x30, 0xa4, 0xb3, 0x3f,
+ 0x86, 0x3d, 0x71, 0x86,
+ 0x2d, 0x5b, 0x0c, 0x05, 0xac, 0x55, 0xd5, 0x97, 0x11, 0x15, 0xdd, 0x30,
+ 0xd3, 0xe8, 0x41, 0xd3,
+ 0x31, 0xfb, 0x63, 0xb8, 0x02, 0x69, 0xc3, 0x67, 0x1d, 0x3c, 0x81, 0x4f,
+ 0x13, 0x76, 0xcc, 0x13,
+ 0xe2, 0x14, 0xd4, 0x5f, 0x65, 0xe6, 0x72, 0x1e, 0xe0, 0xac, 0xea, 0xd6,
+ 0x18, 0x63, 0x59, 0x18,
+ 0x86, 0xc6, 0x6c, 0x2d, 0x85, 0xb8, 0xb2, 0xa5, 0x99, 0xbd, 0xfa, 0x73,
+ 0x84, 0xa4, 0x0c, 0x84,
+ 0xc9, 0xa8, 0xa6, 0x9b, 0x2d, 0x3f, 0x22, 0xfc, 0xb2, 0xd0, 0xe6, 0xdd,
+ 0x71, 0xa0, 0x16, 0x71,
+ 0xb0, 0x15, 0x64, 0x2b, 0x4d, 0xde, 0x95, 0xfe, 0x87, 0x1a, 0x6c, 0x53,
+ 0xa7, 0x14, 0x72, 0xa7,
+ 0x80, 0x21, 0x12, 0xec, 0x61, 0x34, 0x37, 0xd0, 0xda, 0xd4, 0x2b, 0x48,
+ 0x3e, 0x8f, 0x02, 0x3e,
+ 0xf5, 0x91, 0x2c, 0x1d, 0x0a, 0x0e, 0x49, 0x38, 0x69, 0xcc, 0xc0, 0xb0,
+ 0x5f, 0x6d, 0x7a, 0x5f,
+ 0xfc, 0xe9, 0x91, 0x1c, 0x97, 0x1f, 0xa6, 0x7c, 0x6c, 0xa2, 0xf9, 0x01,
+ 0x0f, 0xe4, 0x6f, 0x0f,
+ 0x60, 0x68, 0xec, 0x4d, 0x58, 0x17, 0x87, 0x5c, 0xba, 0x5f, 0x8e, 0x36,
+ 0xf1, 0xf5, 0xe0, 0xf1,
+ 0x44, 0x4b, 0x5d, 0x49, 0x69, 0x53, 0xbd, 0x8f, 0xae, 0x24, 0x6a, 0xb7,
+ 0x72, 0x94, 0xb4, 0x72,
+ 0x0c, 0x0d, 0xfc, 0x41, 0x0b, 0xdb, 0xc9, 0xea, 0x86, 0xd2, 0x61, 0x76,
+ 0xb7, 0x56, 0x1c, 0xb7,
+ 0x8f, 0xbe, 0xd1, 0x2c, 0x18, 0xa9, 0x5d, 0xe1, 0x9c, 0xd3, 0xc3, 0xc2,
+ 0xd4, 0x2d, 0x19, 0xd4,
+ 0xa4, 0x02, 0xa3, 0xe8, 0x50, 0x70, 0x0d, 0x03, 0xce, 0xaf, 0xcf, 0xc9,
+ 0xbd, 0xee, 0x56, 0xbd,
+ 0x3d, 0xf6, 0x9f, 0xf9, 0x09, 0xb2, 0x0a, 0x8d, 0x9b, 0xee, 0xe0, 0x39,
+ 0xa4, 0x20, 0xd0, 0xa4,
+ 0x62, 0x35, 0xc6, 0xb3, 0x04, 0xd2, 0x45, 0xce, 0x3a, 0x78, 0xc1, 0x9e,
+ 0x26, 0xec, 0x5b, 0x26,
+ 0x35, 0x41, 0x37, 0x87, 0xba, 0x20, 0x84, 0x80, 0xde, 0x72, 0x1f, 0xdc,
+ 0x7e, 0x44, 0x79, 0x7e,
+ 0xe0, 0x49, 0xfe, 0xa1, 0x39, 0x23, 0xb0, 0x8c, 0x60, 0x8b, 0xa5, 0x7e,
+ 0xcf, 0x7a, 0xe2, 0xcf,
+ 0x68, 0xdf, 0x44, 0x33, 0xeb, 0x85, 0x09, 0x51, 0xff, 0xc3, 0x71, 0xd3,
+ 0x2b, 0x91, 0x49, 0x2b,
+ 0xdc, 0x70, 0x74, 0x27, 0x1e, 0x12, 0xdb, 0x48, 0xbb, 0x97, 0x83, 0x13,
+ 0xe1, 0xb7, 0x8e, 0xe1,
+ 0x40, 0xf1, 0x09, 0x76, 0xd1, 0x1a, 0xfa, 0x68, 0x6d, 0x6a, 0xf4, 0x24,
+ 0x1f, 0xa6, 0x01, 0x1f,
+ 0xa0, 0xb8, 0xf7, 0xd7, 0xe8, 0x39, 0x4a, 0xe4, 0x0d, 0xe1, 0x51, 0x5a,
+ 0xd0, 0xdc, 0xe3, 0xd0,
+ 0xa7, 0x90, 0x9c, 0x69, 0x22, 0x36, 0xae, 0xd8, 0x0e, 0x7a, 0x46, 0x35,
+ 0xe0, 0x1a, 0x51, 0xe0,
+ 0x9f, 0x13, 0x42, 0xd0, 0xbd, 0x4e, 0x82, 0xfb, 0x16, 0x28, 0xfe, 0xcb,
+ 0xa3, 0xe5, 0x88, 0xa3,
+ 0x2b, 0xbc, 0x72, 0xc4, 0x48, 0xd9, 0x50, 0xe2, 0x52, 0x7c, 0x0c, 0x0b,
+ 0x69, 0xc3, 0x4f, 0x69,
+ 0xae, 0xe8, 0x21, 0x68, 0xbf, 0x27, 0x41, 0x9c, 0x0b, 0x14, 0x7f, 0x84,
+ 0xb0, 0x93, 0x44, 0xb0,
+ 0x10, 0xad, 0x93, 0xfc, 0xa5, 0xe7, 0xdf, 0x1a, 0x8a, 0xfb, 0x3d, 0x09,
+ 0x77, 0xc8, 0x91, 0x77,
+ 0xfe, 0xb4, 0xbb, 0xe2, 0xcb, 0xda, 0x64, 0xee, 0xec, 0x85, 0xb6, 0xa9,
+ 0xd8, 0xfd, 0xd4, 0xd8,
+ 0xa1, 0x77, 0xe2, 0xa8, 0xc6, 0xba, 0x2b, 0xad, 0x4d, 0x13, 0x97, 0x0e,
+ 0x5a, 0x31, 0x5f, 0x5a,
+ 0xc7, 0xf8, 0x70, 0x24, 0x7a, 0x21, 0x29, 0x84, 0xb4, 0x25, 0xc8, 0x03,
+ 0x11, 0xef, 0xb1, 0x11,
+ 0x4d, 0x33, 0xe0, 0x48, 0xf4, 0x42, 0x52, 0xcb, 0xab, 0x4a, 0x53, 0x06,
+ 0x22, 0x1d, 0xa1, 0x22,
+ 0xaa, 0x52, 0x75, 0x57, 0x07, 0x6e, 0x06, 0x7b, 0xc8, 0x5a, 0xe1, 0x17,
+ 0xdd, 0xa1, 0xf1, 0xdd,
+ 0xd4, 0xc7, 0xdc, 0x59, 0xad, 0x80, 0x55, 0x45, 0xfe, 0x0b, 0x7c, 0xf6,
+ 0x3b, 0xd3, 0x27, 0x3b,
+ 0x42, 0xac, 0x23, 0x88, 0x8d, 0xdf, 0x38, 0xfa, 0xed, 0x4d, 0xbb, 0x8c,
+ 0xc8, 0xbf, 0xba, 0xc8,
+ 0x2e, 0xc9, 0x33, 0x84, 0xde, 0x13, 0x76, 0x4c, 0xd1, 0xc0, 0x54, 0xcc,
+ 0x8e, 0x1c, 0x46, 0x8e,
+ 0x49, 0x89, 0xb4, 0x77, 0x4c, 0x0b, 0x15, 0x2c, 0x68, 0x04, 0xcd, 0x95,
+ 0x4f, 0x2f, 0x14, 0x4f,
+ 0xb2, 0x48, 0x4e, 0xd5, 0x11, 0x1b, 0x57, 0x6c, 0x07, 0x3d, 0x23, 0xfb,
+ 0x70, 0x0d, 0xc9, 0x70,
+ 0x77, 0xed, 0x14, 0x0f, 0x37, 0xff, 0xbc, 0x7a, 0x33, 0x3f, 0xa4, 0x50,
+ 0xb6, 0xfb, 0xc3, 0xb6,
+ 0x39, 0x4c, 0xcb, 0xc6, 0xb1, 0xfb, 0x4d, 0x6a, 0x58, 0xa0, 0x7e, 0xaa,
+ 0xc9, 0x12, 0x65, 0xc9,
+ 0xad, 0x7a, 0x1e, 0xe9, 0xcd, 0x61, 0xe2, 0x47, 0xcb, 0xc1, 0xf6, 0x78,
+ 0xed, 0x67, 0x43, 0xed,
+ 0x20, 0x99, 0xe5, 0x3b, 0x89, 0x0d, 0x7d, 0x34, 0xd7, 0x35, 0x7a, 0x12,
+ 0xee, 0x53, 0xe1, 0xee,
+ 0xcf, 0x4f, 0xd8, 0x5a, 0xc9, 0xb3, 0xa7, 0x89, 0xf1, 0xb9, 0x37, 0xe6,
+ 0xcb, 0x8b, 0x18, 0xcb,
+ 0x64, 0xd2, 0xb8, 0x72, 0xe0, 0x5e, 0xc0, 0xbb, 0x79, 0x11, 0x10, 0xa5,
+ 0x9c, 0xc7, 0x55, 0x9c,
+ 0x9b, 0xa9, 0x16, 0xef, 0x05, 0x07, 0xc5, 0x1c, 0xd5, 0x66, 0x60, 0x58,
+ 0xce, 0xd7, 0x3d, 0xce,
+ 0xde, 0x2d, 0x5e, 0xd9, 0x42, 0xd7, 0x19, 0xda, 0x3b, 0xb0, 0xcc, 0xbb,
+ 0x36, 0xae, 0x35, 0x36,
+ 0x7f, 0x5a, 0xbc, 0x71, 0x84, 0x6d, 0x32, 0x77, 0x76, 0xa3, 0x5b, 0xb5,
+ 0x6c, 0x9f, 0x6a, 0x6c,
+ 0xa8, 0x0f, 0x5f, 0xa9, 0x5b, 0xab, 0xc4, 0xe9, 0x48, 0x7d, 0xae, 0xbf,
+ 0x0a, 0xb8, 0x4a, 0x0a,
+ 0xb6, 0xf2, 0x1a, 0xea, 0xa9, 0x52, 0x10, 0x8b, 0xc4, 0x73, 0xbd, 0x68,
+ 0x1d, 0x3f, 0x7c, 0x1d,
+ 0x5c, 0x51, 0x66, 0xcb, 0x7f, 0x26, 0xec, 0x98, 0x61, 0x43, 0xa8, 0x5b,
+ 0xdf, 0x38, 0x8c, 0xdf,
+ 0xa5, 0xcd, 0xb6, 0x97, 0x7e, 0xf3, 0x6c, 0x4a, 0x8e, 0x5d, 0x09, 0x9d,
+ 0x37, 0x03, 0xea, 0x37,
+ 0x6b, 0x4d, 0x7b, 0xb2, 0x99, 0xc3, 0xaa, 0x8a, 0x3f, 0x16, 0xf8, 0x2f,
+ 0x76, 0x65, 0x4e, 0x76,
+ 0xd3, 0xef, 0xb7, 0xe7, 0x67, 0x8f, 0xb1, 0x79, 0xfd, 0x90, 0x6b, 0x99,
+ 0x0b, 0x15, 0x95, 0x0b,
+ 0xf0, 0xe4, 0x6d, 0x5d, 0x9c, 0xc4, 0x6f, 0x96, 0xea, 0x70, 0x98, 0x77,
+ 0xb8, 0xb2, 0x73, 0xb8,
+ 0x5d, 0x9e, 0x73, 0xb4, 0x51, 0xa5, 0x8d, 0xd1, 0x21, 0xb1, 0x6e, 0x0f,
+ 0x55, 0xd5, 0x30, 0x55,
+ 0xc8, 0x67, 0xb3, 0xe4, 0x03, 0xbc, 0x43, 0xb5, 0xf2, 0x22, 0x20, 0x89,
+ 0xfb, 0x4d, 0xaa, 0xfb,
+ 0xc5, 0xa5, 0x5a, 0xda, 0x26, 0xe4, 0xeb, 0x16, 0x34, 0x02, 0x87, 0xab,
+ 0xc6, 0xf6, 0x0a, 0xc6,
+ 0xbd, 0xd7, 0x8d, 0x15, 0x68, 0x86, 0x3d, 0x5d, 0x41, 0x3a, 0xcb, 0x71,
+ 0x9a, 0xaf, 0xd2, 0x9a,
+ 0xc3, 0x42, 0x24, 0x1b, 0xc2, 0x68, 0x6e, 0x63, 0x77, 0x6b, 0x56, 0x90,
+ 0x7c, 0xdd, 0x04, 0x7c,
+ 0xe4, 0xf3, 0xaa, 0x9e, 0x81, 0x6a, 0xf7, 0x6b, 0xa3, 0xc5, 0x3b, 0xed,
+ 0xa2, 0x48, 0x57, 0xa2,
+ 0xaf, 0x27, 0x34, 0x17, 0x91, 0xa4, 0x20, 0xd5, 0x4b, 0xe6, 0xb9, 0xd0,
+ 0x3a, 0x7e, 0xf8, 0x3a,
+ 0xb8, 0xa2, 0xcc, 0x55, 0xfe, 0x4c, 0x1b, 0xf3, 0xc2, 0x86, 0x93, 0xb6,
+ 0x7d, 0x70, 0xdb, 0x7d,
+ 0xcb, 0xf5, 0x8c, 0x65, 0x71, 0xfa, 0xe0, 0x6e, 0x32, 0xf7, 0xa9, 0x75,
+ 0xa6, 0xb9, 0xad, 0xa6,
+ 0xc1, 0x1f, 0x0e, 0xe5, 0x9e, 0xad, 0xac, 0xf1, 0xf7, 0x4c, 0x19, 0x38,
+ 0xab, 0xc4, 0xbf, 0xab,
+ 0xb5, 0x60, 0x25, 0x6b, 0xdb, 0x14, 0xb3, 0x50, 0x04, 0xa6, 0x34, 0x94,
+ 0x40, 0xcb, 0x7b, 0x40,
+ 0x6f, 0xf7, 0x2f, 0x8d, 0x21, 0x8a, 0xed, 0x6d, 0xfc, 0x58, 0x66, 0xbc,
+ 0x1b, 0x57, 0xfb, 0x1b,
+ 0x4c, 0xfc, 0xf5, 0x37, 0xda, 0xc1, 0x33, 0x82, 0xeb, 0xb8, 0x95, 0x52,
+ 0xa8, 0xf0, 0x1d, 0xa8,
+ 0x97, 0xa4, 0xea, 0xae, 0x0e, 0xdc, 0x0c, 0xf6, 0x53, 0xb4, 0x01, 0x2e,
+ 0x79, 0x81, 0x21, 0x79,
+ 0x88, 0x96, 0xba, 0x92, 0xd2, 0xa6, 0xb9, 0xdd, 0x9f, 0x48, 0xd4, 0xad,
+ 0xe4, 0xeb, 0xab, 0xe4,
+ 0x61, 0xa7, 0xf9, 0x32, 0x76, 0x94, 0xe6, 0x15, 0xfa, 0xad, 0x48, 0x62,
+ 0x7b, 0x18, 0x5c, 0x7b,
+ 0x57, 0x74, 0xf1, 0x34, 0xbe, 0xf2, 0xc1, 0x4e, 0xe4, 0x0a, 0xde, 0x42,
+ 0x58, 0xa8, 0x22, 0x58,
+ 0x11, 0x62, 0x86, 0x83, 0x8b, 0x64, 0xbe, 0x53, 0xca, 0x09, 0xfb, 0x5d,
+ 0xfd, 0x25, 0x2d, 0xfd,
+ 0x99, 0xf4, 0x3c, 0x11, 0x59, 0xc2, 0x07, 0x8e, 0x55, 0x41, 0x2f, 0xf0,
+ 0x19, 0xce, 0x86, 0x19,
+ 0x72, 0x98, 0x55, 0x4f, 0xa1, 0x35, 0x9a, 0xd4, 0xb0, 0x83, 0xfc, 0x97,
+ 0x51, 0x24, 0xca, 0x51,
+ 0x83, 0xb3, 0x2d, 0x6d, 0x13, 0x72, 0x94, 0x0b, 0x1a, 0x01, 0xa2, 0xb4,
+ 0x63, 0x7b, 0x05, 0x63,
+ 0xbf, 0x8a, 0xa7, 0xeb, 0x34, 0x43, 0xff, 0xcf, 0xc1, 0x1d, 0x84, 0xd9,
+ 0x4d, 0xb6, 0x69, 0x4d,
+ 0x55, 0x29, 0xdb, 0xca, 0xe2, 0x37, 0x03, 0xdc, 0x64, 0x2d, 0x91, 0xea,
+ 0x8f, 0xb1, 0x99, 0x8f,
+ 0x73, 0x57, 0x40, 0x30, 0x8f, 0xb6, 0xfb, 0x9d, 0xf0, 0x71, 0x3a, 0xc3,
+ 0xdb, 0xc9, 0x76, 0xdb,
+ 0x9d, 0x4e, 0x68, 0x2e, 0xe1, 0x8b, 0x40, 0x69, 0x96, 0x0f, 0xb1, 0x63,
+ 0x74, 0xfc, 0x33, 0x74,
+ 0x81, 0xee, 0x07, 0x93, 0x4f, 0xb7, 0x56, 0x99, 0x9a, 0x26, 0xed, 0x1c,
+ 0xb4, 0x62, 0xbe, 0xb4,
+ 0x3f, 0xab, 0xb5, 0x07, 0x55, 0x77, 0xc8, 0x1f, 0x1b, 0xc9, 0xaf, 0x91,
+ 0x73, 0x39, 0x6b, 0x73,
+ 0xb3, 0x87, 0x5b, 0xaa, 0x3f, 0x98, 0x36, 0x25, 0x47, 0xcf, 0xe5, 0xaf,
+ 0xfa, 0xe0, 0x75, 0xfa,
+ 0xbb, 0x30, 0xf3, 0xd4, 0x8c, 0x0a, 0xb8, 0x28, 0x02, 0x53, 0x1a, 0x4a,
+ 0x20, 0x84, 0xdc, 0x20,
+ 0xd6, 0x9a, 0xf6, 0xa7, 0xf1, 0x45, 0x97, 0xd7, 0x7e, 0x2c, 0x33, 0x5e,
+ 0xec, 0xca, 0x9c, 0xec,
+ 0xea, 0xa3, 0x7c, 0x21, 0xd6, 0x74, 0xfc, 0x13, 0xa5, 0x30, 0x15, 0x33,
+ 0xc2, 0x07, 0xf0, 0xc2,
+ 0x25, 0xec, 0xa4, 0x7b, 0x1f, 0xc7, 0x5b, 0x9a, 0x54, 0x89, 0x22, 0xd5,
+ 0x09, 0x8c, 0xe8, 0x09,
+ 0xce, 0x80, 0xcd, 0x25, 0xe7, 0x30, 0xc6, 0xc0, 0xb1, 0x4b, 0xf1, 0xb2,
+ 0x41, 0x66, 0xa4, 0x41,
+ 0x63, 0xfa, 0xd3, 0xcc, 0x2a, 0x51, 0x24, 0x87, 0x7a, 0x8a, 0x07, 0xca,
+ 0xac, 0x01, 0xe7, 0xac,
+ 0x45, 0x84, 0x48, 0x36, 0x47, 0xd0, 0xdc, 0xc6, 0xee, 0xd6, 0xac, 0xe3,
+ 0xf8, 0x79, 0x08, 0xf8,
+ 0x32, 0x69, 0x5c, 0x39, 0x70, 0x2f, 0x60, 0xbc, 0xdd, 0xe9, 0x08, 0xb3,
+ 0x4e, 0x82, 0xcb, 0x4e,
+ 0xd7, 0x55, 0xe3, 0xd8, 0xdf, 0xc6, 0xf6, 0x9e, 0x3e, 0xde, 0xf5, 0x0a,
+ 0x66, 0x27, 0x20, 0x66,
+ 0x9e, 0xdc, 0x57, 0xaf, 0x93, 0xcd, 0xe3, 0xb2, 0x56, 0xda, 0x38, 0x9f,
+ 0x29, 0x08, 0x34, 0x29,
+ 0x08, 0xb7, 0xa8, 0x7e, 0xb3, 0x92, 0x8e, 0x0d, 0x45, 0x9c, 0xff, 0xe5,
+ 0xda, 0x64, 0xa9, 0xda,
+ 0x8d, 0xe3, 0xfb, 0xd2, 0x44, 0x6c, 0x9f, 0x73, 0x1c, 0xf4, 0x8c, 0x6a,
+ 0x03, 0x34, 0xa2, 0x03,
+ 0x79, 0xbd, 0xc2, 0xb0, 0x60, 0xe1, 0xb7, 0x02, 0x35, 0xca, 0x8a, 0x8e,
+ 0xd6, 0xb4, 0x64, 0xd6,
+ 0xab, 0x9d, 0x60, 0x28, 0x29, 0xed, 0x67, 0x32, 0x88, 0xa8, 0x27, 0x43,
+ 0x57, 0x4c, 0x4d, 0x57,
+ 0x36, 0xd3, 0x08, 0x06, 0xc8, 0x66, 0x27, 0x5b, 0x1e, 0xa7, 0x96, 0x20,
+ 0x23, 0xb0, 0x7e, 0x23,
+ 0xfb, 0xc1, 0xfa, 0xa2, 0x5d, 0x10, 0x42, 0x40, 0x6f, 0x39, 0xee, 0x6e,
+ 0x3f, 0x22, 0xdd, 0x3f,
+ 0xec, 0x44, 0x02, 0xe0, 0x32, 0xf8, 0x79, 0x66, 0xe6, 0x59, 0xc4, 0x08,
+ 0x78, 0x2c, 0xfe, 0x78,
+ 0x4e, 0xa1, 0xdf, 0xc9, 0x86, 0x04, 0xf1, 0x10, 0x6b, 0x9f, 0xda, 0xfa,
+ 0x7f, 0xe9, 0xa6, 0x7f,
+ 0x7e, 0x95, 0xa9, 0x0e, 0xaa, 0xee, 0x53, 0x3e, 0x36, 0x51, 0x9d, 0xe1,
+ 0xe6, 0x72, 0xd6, 0xe6,
+ 0xd0, 0x7d, 0x88, 0x66, 0x15, 0xc9, 0x12, 0xa2, 0x3d, 0x45, 0xe2, 0x65,
+ 0x56, 0xe1, 0x92, 0x56,
+ 0x6c, 0x65, 0x10, 0x0c, 0x53, 0xcc, 0x4e, 0xb6, 0x3c, 0x8d, 0xef, 0x40,
+ 0x46, 0xa3, 0xfc, 0x46,
+ 0xf3, 0x76, 0x52, 0xdc, 0xee, 0x82, 0xcc, 0x4d, 0x2a, 0xa5, 0x11, 0x8b,
+ 0xe5, 0x46, 0x74, 0xe5,
+ 0x5f, 0xc3, 0x59, 0x4a, 0x0d, 0x60, 0x4f, 0x43, 0xa1, 0x96, 0x21, 0xa7,
+ 0x82, 0xcc, 0x8b, 0x82,
+ 0xff, 0x7b, 0xae, 0x9d, 0xe5, 0x59, 0x05, 0xa7, 0xac, 0x77, 0x70, 0xfd,
+ 0x52, 0x10, 0x68, 0x52,
+ 0x8a, 0xcb, 0x90, 0x6c, 0x8e, 0x63, 0x7b, 0x4f, 0x1f, 0x6f, 0x9b, 0x05,
+ 0x33, 0xf2, 0x10, 0x33,
+ 0x56, 0xbb, 0xe4, 0x4b, 0x90, 0x71, 0xa0, 0x07, 0xa4, 0xf8, 0x18, 0x16,
+ 0xd2, 0x45, 0x9e, 0xd2,
+ 0xdd, 0xbf, 0x61, 0x58, 0x30, 0x91, 0xba, 0x01, 0xfb, 0x65, 0x45, 0x47,
+ 0x6b, 0x5a, 0x32, 0x6b,
+ 0xb4, 0xaf, 0x30, 0x14, 0xf5, 0x97, 0xd2, 0x19, 0x44, 0x54, 0xf2, 0xc0,
+ 0xca, 0x26, 0xc7, 0xca,
+ 0x04, 0xba, 0x54, 0x3f, 0xb8, 0x49, 0x47, 0xe7, 0xc3, 0x4e, 0x9e, 0x93,
+ 0x6d, 0x32, 0xb5, 0x6d,
+ 0xbe, 0x45, 0xb2, 0x94, 0x1a, 0xc0, 0x9e, 0x86, 0x81, 0xef, 0x42, 0x8d,
+ 0xc7, 0x5b, 0xd5, 0xc7,
+ 0x1b, 0x88, 0x04, 0x03, 0x64, 0x33, 0xf2, 0xcc, 0x0f, 0xb2, 0x4b, 0x10,
+ 0xf0, 0x58, 0x3f, 0xf0,
+ 0x9c, 0x81, 0x7d, 0x51, 0xcf, 0x08, 0x21, 0x20, 0xd6, 0xfd, 0x77, 0x37,
+ 0xfe, 0x11, 0x8f, 0xfe,
+ 0x5e, 0x0c, 0x4c, 0x35, 0x23, 0xe3, 0x2e, 0x0a, 0xe1, 0x64, 0xe7, 0xf3,
+ 0x08, 0x21, 0x37, 0x08,
+ 0x07, 0x28, 0x6b, 0xbe, 0xca, 0x0f, 0xe4, 0x3c, 0x03, 0x9b, 0x17, 0x6f,
+ 0x30, 0xc6, 0xb2, 0x30,
+ 0x8c, 0x2c, 0xee, 0xad, 0x6a, 0xef, 0xfe, 0x3a, 0x5c, 0x06, 0x4a, 0x3e,
+ 0x89, 0xd9, 0x1e, 0x89,
+ 0x0f, 0x9f, 0xc3, 0xc0, 0x79, 0x9d, 0x6a, 0x31, 0x46, 0x07, 0xe8, 0x8a,
+ 0xea, 0xa2, 0x1b, 0xea,
+ 0x6d, 0xaa, 0x05, 0x73, 0x7d, 0x4f, 0x2f, 0xff, 0x7c, 0x7f, 0x29, 0x14,
+ 0xcc, 0x4e, 0x40, 0xcc,
+ 0xf4, 0x5e, 0x39, 0x62, 0x24, 0x8d, 0x28, 0x71, 0x29, 0x3e, 0x06, 0xe4,
+ 0xd5, 0x80, 0xc6, 0xd5,
+ 0x26, 0x7e, 0x9b, 0xfa, 0x6d, 0x81, 0xf8, 0x41, 0x94, 0x5c, 0xab, 0x29,
+ 0x54, 0x78, 0xef, 0x54,
+ 0x71, 0x0a, 0x6a, 0xce, 0xd3, 0x73, 0x39, 0x0f, 0x70, 0x56, 0x75, 0x6b,
+ 0x0c, 0xd0, 0xcd, 0x0c,
+ 0x1c, 0xa0, 0x6f, 0xbd, 0xae, 0x3c, 0x16, 0xf0, 0x0c, 0x29, 0x5c, 0x7f,
+ 0xc0, 0x9e, 0x8d, 0xc0,
+ 0x94, 0x36, 0xd5, 0x2f, 0x7c, 0x9a, 0xaf, 0x2d, 0x93, 0x61, 0x88, 0xd2,
+ 0x24, 0x75, 0x26, 0x24,
+ 0x22, 0xc4, 0xcf, 0xc5, 0xd5, 0xc8, 0xbf, 0xa6, 0x57, 0x12, 0x35, 0xba,
+ 0x39, 0x4a, 0x5a, 0x39,
+ 0xeb, 0x6c, 0x69, 0x5e, 0xf8, 0xf7, 0x9d, 0x5a, 0xe5, 0xc2, 0xd3, 0x67,
+ 0x48, 0xea, 0x4c, 0x48,
+ 0xbc, 0x18, 0x98, 0x6a, 0x46, 0x05, 0x5c, 0x14, 0x01, 0xc8, 0x0d, 0x25,
+ 0x10, 0x42, 0x6e, 0x10,
+ 0x3c, 0x39, 0x8a, 0x86, 0x27, 0x31, 0x6b, 0xc4, 0xdb, 0x1c, 0x26, 0x6d,
+ 0x2e, 0xcd, 0x6c, 0x2e,
+ 0x15, 0xd8, 0xd2, 0xbc, 0x33, 0x2d, 0xf9, 0xb4, 0x09, 0x47, 0x65, 0xce,
+ 0x90, 0x17, 0x98, 0x90,
+ 0xe9, 0x31, 0x43, 0xa0, 0xa4, 0x32, 0x5f, 0xc8, 0x65, 0xe5, 0x9c, 0xcf,
+ 0x9f, 0xf3, 0xf7, 0x9f,
+ 0x02, 0x5d, 0x2a, 0xfe, 0x5c, 0xc5, 0xc2, 0x92, 0x80, 0x27, 0x4f, 0xa8,
+ 0xd7, 0x19, 0xbb, 0xd7,
+ 0x46, 0x16, 0x77, 0xb7, 0x35, 0x96, 0x7f, 0x1d, 0x2e, 0x03, 0x25, 0x1f,
+ 0xa5, 0x8d, 0x0f, 0xa5,
+ 0xda, 0x97, 0x0a, 0xe6, 0xfa, 0x9e, 0x5e, 0x3d, 0xf8, 0xfe, 0x52, 0x28,
+ 0x5b, 0x9c, 0x80, 0x5b,
+ 0x19, 0xd5, 0x2e, 0xfd, 0x38, 0xf6, 0x30, 0x5e, 0x8f, 0x95, 0x04, 0xb8,
+ 0x27, 0x41, 0x84, 0x27,
+ 0xdb, 0x58, 0x1f, 0x99, 0xd4, 0x1d, 0x3f, 0x74, 0xb8, 0x0c, 0x94, 0x7c,
+ 0xd1, 0x71, 0x3c, 0xd1,
+ 0x1e, 0xfd, 0x45, 0x43, 0xf2, 0xf9, 0xd4, 0x62, 0x8c, 0x0e, 0x13, 0xd7,
+ 0x17, 0x87, 0x36, 0x17,
+ 0x17, 0x85, 0xf8, 0x42, 0x6f, 0xe8, 0x3b, 0x26, 0x89, 0x60, 0x2a, 0x66,
+ 0x47, 0x0e, 0x23, 0x47,
+ 0x4a, 0x1b, 0x8b, 0xf6, 0x3e, 0x4d, 0xb6, 0xf7, 0xa8, 0xd1, 0x44, 0x69,
+ 0x12, 0xdb, 0x13, 0x12,
+ 0x0a, 0xea, 0x82, 0x80, 0xef, 0x57, 0x4c, 0x9f, 0xc5, 0xbb, 0xb0, 0x4d,
+ 0x0d, 0x7d, 0x12, 0x0d,
+ 0xd9, 0x05, 0x35, 0x67, 0x88, 0xd8, 0xfd, 0xe6, 0x38, 0x2b, 0xdb, 0xd4,
+ 0x06, 0x68, 0x87, 0x06,
+ 0x89, 0x59, 0xaf, 0xed, 0xfc, 0x25, 0xd8, 0x94, 0xdf, 0xba, 0x12, 0xf9,
+ 0x6e, 0x06, 0x17, 0x6e,
+ 0x78, 0x72, 0xd7, 0xcf, 0x4e, 0x62, 0xd6, 0x4b, 0x75, 0x38, 0x4c, 0xda,
+ 0x5c, 0x59, 0xd8, 0x5c,
+ 0x76, 0x22, 0x01, 0x70, 0x19, 0x7c, 0xdd, 0x33, 0x73, 0xcd, 0x62, 0x04,
+ 0x3c, 0x16, 0x7f, 0x3c,
+ 0x27, 0xb1, 0x8e, 0x85, 0x43, 0x02, 0x99, 0x08, 0xd4, 0xae, 0x6d, 0x7d,
+ 0xde, 0x95, 0x53, 0xde,
+ 0x18, 0x1a, 0x3b, 0x82, 0x16, 0x75, 0x51, 0x17, 0xcf, 0x67, 0xc2, 0xec,
+ 0xad, 0xac, 0x38, 0xad,
+ 0x23, 0x0b, 0xda, 0xba, 0xfb, 0x4b, 0xde, 0xef, 0x17, 0xe0, 0xf3, 0xee,
+ 0xb3, 0xa7, 0xe6, 0xb3,
+ 0xf2, 0xb9, 0x47, 0xa3, 0xc0, 0x01, 0xad, 0x04, 0x6a, 0x57, 0xd7, 0xdf,
+ 0x6f, 0xab, 0xc8, 0x6f,
+ 0x95, 0xf9, 0xc0, 0x50, 0x52, 0x19, 0xce, 0x64, 0xd3, 0x93, 0x4e, 0x86,
+ 0xae, 0x98, 0x9a, 0xae,
+ 0xd5, 0x08, 0xc9, 0x26, 0x83, 0x03, 0x34, 0x0c, 0xbe, 0xf9, 0xba, 0xa2,
+ 0xb1, 0x3e, 0x9b, 0xb1,
+ 0xa9, 0xc0, 0x4a, 0xd6, 0x75, 0x28, 0xa5, 0xa0, 0x08, 0x8f, 0x68, 0xeb,
+ 0x80, 0x55, 0xf6, 0x80,
+ 0x84, 0x9b, 0x46, 0xd3, 0xd9, 0x7d, 0x70, 0x37, 0x19, 0x9a, 0xb5, 0xdb,
+ 0x53, 0xbd, 0xb7, 0x53,
+ 0xe1, 0x86, 0xeb, 0xde, 0x17, 0xa0, 0xd1, 0xc5, 0x20, 0x79, 0x63, 0x2a,
+ 0x45, 0x97, 0x5e, 0x45,
+ 0x1d, 0x6f, 0x7a, 0xc2, 0x80, 0xbf, 0x77, 0xb9, 0x4c, 0xdb, 0x9a, 0x2b,
+ 0x4a, 0x73, 0x31, 0x4a,
+ 0x93, 0x1e, 0xbe, 0x91, 0xb6, 0x95, 0x4b, 0x11, 0x90, 0xfa, 0x9f, 0xbd,
+ 0x14, 0xb3, 0x94, 0x14,
+ 0x28, 0x2e, 0x4d, 0x45, 0x3a, 0x9f, 0xf3, 0x39, 0x92, 0xa9, 0x85, 0xf7,
+ 0x34, 0x37, 0x48, 0x34,
+ 0xc6, 0x37, 0x65, 0x5b, 0x54, 0xa2, 0x48, 0xcd, 0xf4, 0xd7, 0x0e, 0x57,
+ 0x9b, 0x02, 0x0d, 0x9b,
+ 0x7b, 0xe0, 0xe8, 0x4e, 0x3c, 0x24, 0x75, 0x90, 0xb5, 0xed, 0xc5, 0x26,
+ 0x01, 0xad, 0xdf, 0x01,
+ 0x65, 0x1d, 0xad, 0x0d, 0xce, 0xdd, 0xa1, 0xf2, 0x39, 0xe3, 0xd6, 0xf1,
+ 0x16, 0x2a, 0xe9, 0x16,
+ 0x75, 0xb0, 0x3e, 0xf1, 0x6b, 0x3a, 0x7e, 0xe8, 0xb3, 0x18, 0xeb, 0xf8,
+ 0x61, 0xe2, 0x78, 0x61,
+ 0x7c, 0xc8, 0x83, 0xf0, 0xf6, 0x2b, 0x91, 0xac, 0xb6, 0x76, 0xd2, 0x49,
+ 0x31, 0x6b, 0x6d, 0x31,
+ 0xe3, 0xdb, 0xc1, 0x20, 0x4b, 0x65, 0x13, 0x57, 0xa0, 0x5e, 0x2c, 0x82,
+ 0x92, 0x8e, 0xe5, 0x92,
+ 0xee, 0x19, 0x28, 0x1e, 0x6e, 0x3d, 0xbb, 0xf4, 0x66, 0x7e, 0x8b, 0xa0,
+ 0xaf, 0x35, 0x45, 0xaf,
+ 0x21, 0x56, 0xf0, 0x44, 0xa7, 0x8e, 0x1c, 0x7d, 0x97, 0xc7, 0xbc, 0x46,
+ 0x64, 0xbe, 0x5d, 0x64,
+ 0x8e, 0x71, 0xc4, 0x53, 0x36, 0x2a, 0x3c, 0xa8, 0xdc, 0x21, 0x05, 0x96,
+ 0x5e, 0xc0, 0xa5, 0x5e,
+ 0xf9, 0x9c, 0xd0, 0x5c, 0x01, 0xd5, 0x80, 0xd2, 0xef, 0x1e, 0xa1, 0xc6,
+ 0xe8, 0x3b, 0x66, 0xe8,
+ 0x01, 0xcf, 0x15, 0x7f, 0x2e, 0x83, 0x61, 0x49, 0x40, 0xf2, 0xc6, 0x54,
+ 0x8a, 0xed, 0xbc, 0x8a,
+ 0x5b, 0x79, 0x0d, 0x75, 0xb5, 0x29, 0x08, 0xa4, 0x62, 0xd8, 0xbf, 0x34,
+ 0xef, 0xfe, 0x3e, 0xef,
+ 0x91, 0x43, 0x94, 0x6f, 0xea, 0x50, 0x89, 0x83, 0x10, 0xdd, 0xd0, 0x15,
+ 0xc3, 0xaa, 0x2f, 0xc3,
+ 0x14, 0x17, 0xc7, 0xc3, 0x1d, 0xae, 0x98, 0xfd, 0x49, 0xb5, 0xa3, 0x9a,
+ 0x1a, 0xfa, 0x24, 0x1a,
+ 0x7a, 0x2f, 0xfd, 0x31, 0x12, 0xa7, 0x14, 0xd9, 0xf5, 0x1f, 0x03, 0x72,
+ 0x8b, 0x40, 0x63, 0x8b,
+ 0xf6, 0x03, 0x13, 0x9c, 0x78, 0x48, 0xea, 0xe3, 0xa9, 0x19, 0x49, 0x4c,
+ 0x02, 0x99, 0x7d, 0x02,
+ 0xb1, 0xda, 0x71, 0x54, 0x63, 0x5d, 0xf4, 0xb7, 0xc7, 0xe8, 0xaa, 0x07,
+ 0x2d, 0xf9, 0xce, 0x2d,
+ 0xb7, 0x3d, 0x0f, 0x95, 0x87, 0xd1, 0x71, 0xc2, 0x84, 0x81, 0x7b, 0x3c,
+ 0x97, 0xd2, 0xc0, 0x97,
+ 0xca, 0x3a, 0x99, 0x1a, 0x5f, 0x79, 0x81, 0x27, 0x72, 0x05, 0x6f, 0x21,
+ 0x2c, 0x54, 0x11, 0x2c,
+ 0x5a, 0xb6, 0x18, 0x0a, 0x9b, 0xaa, 0x69, 0xed, 0x22, 0x2a, 0x79, 0x60,
+ 0x65, 0x13, 0x82, 0x65,
+ 0xf8, 0x53, 0xc5, 0x23, 0x2f, 0x56, 0xe1, 0x9b, 0xaf, 0xec, 0x67, 0x92,
+ 0x62, 0xd6, 0xda, 0x62,
+ 0xcc, 0xdd, 0xe7, 0xdb, 0xbb, 0xf5, 0x04, 0x52, 0x31, 0x6c, 0xbe, 0x1a,
+ 0x96, 0x7f, 0x1f, 0x96,
+ 0x47, 0xd9, 0x62, 0xc8, 0x1b, 0x15, 0x1e, 0x54, 0x6e, 0xf1, 0xe3, 0x4b,
+ 0x2f, 0x60, 0xb3, 0x2f,
+ 0x96, 0x6b, 0xff, 0xd1, 0x20, 0x5f, 0x6d, 0xbf, 0x13, 0x46, 0xc7, 0x7a,
+ 0xf3, 0x6c, 0x9d, 0xf3,
+ 0x6e, 0x38, 0x3a, 0xf2, 0x0f, 0x09, 0x8c, 0x24, 0xbc, 0xaa, 0xa0, 0xe8,
+ 0x91, 0xba, 0x47, 0x91,
+ 0x13, 0x3f, 0xac, 0x7d, 0xd7, 0xa1, 0x7c, 0xc1, 0x4a, 0x2e, 0xb4, 0xf5,
+ 0x2a, 0x3c, 0x96, 0x2a,
+ 0x24, 0x23, 0xb1, 0x04, 0x31, 0x44, 0x3a, 0xd3, 0x14, 0x7b, 0xe4, 0x81,
+ 0x83, 0x61, 0x54, 0x83,
+ 0x74, 0x7f, 0x2b, 0x8e, 0x45, 0xb9, 0x1f, 0xa1, 0xf3, 0xea, 0x2d, 0xac,
+ 0xeb, 0x0f, 0xc4, 0xeb,
+ 0x09, 0x78, 0xbd, 0x01, 0x9d, 0x11, 0xef, 0x44, 0x05, 0x6e, 0x39, 0xb1,
+ 0x50, 0x89, 0x15, 0x50,
+ 0x03, 0x92, 0x3f, 0x81, 0x72, 0x46, 0xa3, 0xdb, 0xc0, 0xd5, 0x89, 0xfc,
+ 0x5d, 0xf4, 0x07, 0x5d,
+ 0x30, 0x34, 0x76, 0xc7, 0x2c, 0xea, 0xa2, 0x2e, 0x5d, 0xce, 0x47, 0x1b,
+ 0x99, 0x9b, 0x70, 0x99,
+ 0x50, 0x5c, 0x9a, 0x8a, 0x74, 0xfd, 0x25, 0x72, 0xe7, 0x91, 0xc9, 0x2d,
+ 0x68, 0x6e, 0x90, 0x68,
+ 0x4f, 0x6e, 0xca, 0xb6, 0xa8, 0x87, 0x90, 0x59, 0x2b, 0x6d, 0x1c, 0xae,
+ 0xf5, 0x04, 0x1a, 0xf5,
+ 0x0e, 0x50, 0xd6, 0xbf, 0x57, 0x1e, 0x0b, 0x78, 0x06, 0xf5, 0x2e, 0xde,
+ 0x60, 0x4f, 0xa7, 0x60,
+ 0x7d, 0x07, 0x96, 0x8f, 0xd8, 0xa8, 0xf0, 0xe5, 0xf6, 0x84, 0x14, 0x1d,
+ 0xbb, 0x86, 0xd1, 0xbb,
+ 0xb9, 0x6d, 0xd9, 0x2a, 0xd0, 0xcf, 0x7a, 0xba, 0x82, 0x74, 0x55, 0xe2,
+ 0xf7, 0x9d, 0x67, 0xf7,
+ 0x37, 0x1c, 0x1d, 0x79, 0xe6, 0xe5, 0x46, 0x12, 0x5e, 0x55, 0x50, 0x74,
+ 0xa9, 0x5d, 0xc2, 0xa9,
+ 0x54, 0xe6, 0xce, 0xb5, 0xcc, 0xb4, 0x62, 0x95, 0x24, 0xdf, 0x57, 0xbe,
+ 0x05, 0x5c, 0x25, 0x05,
+ 0x1f, 0x32, 0x50, 0x3c, 0xdc, 0x7a, 0xb5, 0x2b, 0xcc, 0xfc, 0xd5, 0x83,
+ 0x9d, 0x6a, 0x8a, 0x9d,
+ 0xc2, 0x8d, 0x31, 0x64, 0xec, 0xeb, 0x0f, 0x2a, 0x37, 0x99, 0x90, 0xc4,
+ 0xf6, 0x30, 0xb8, 0xf6,
+ 0x33, 0xa6, 0x49, 0x46, 0x5e, 0xac, 0x01, 0xf5, 0x9d, 0x1b, 0xce, 0xe7,
+ 0xc4, 0x6f, 0x77, 0xc4,
+ 0x3a, 0xde, 0xf4, 0x47, 0xc3, 0xbd, 0xee, 0xb1, 0x98, 0x75, 0xf7, 0x56,
+ 0x94, 0xe6, 0x62, 0x94,
+ 0xe5, 0x3c, 0xbf, 0xe1, 0xaf, 0xe9, 0x96, 0x22, 0xe3, 0x37, 0xfd, 0xb9,
+ 0x28, 0xa5, 0xeb, 0x28,
+ 0xe8, 0xfe, 0x56, 0xdf, 0x8a, 0xb1, 0x3e, 0x81, 0x25, 0x17, 0x5a, 0x9b,
+ 0x15, 0x1e, 0x4b, 0x15,
+ 0x12, 0xf0, 0xb9, 0x02, 0xf9, 0x22, 0x1d, 0x88, 0x0a, 0xdc, 0x72, 0xa1,
+ 0xa0, 0xd1, 0x2a, 0xa0,
+ 0x92, 0xd1, 0xab, 0xee, 0x98, 0x16, 0x2a, 0x58, 0xd0, 0x08, 0x59, 0xe9,
+ 0x9e, 0x5e, 0x28, 0x9e,
+ 0xac, 0xb5, 0x0b, 0x96, 0xe3, 0xe2, 0x83, 0x0e, 0x8b, 0x33, 0x30, 0x2c,
+ 0x67, 0x8a, 0xff, 0x67,
+ 0x34, 0x8e, 0x22, 0xf8, 0x94, 0xa3, 0xe5, 0xc9, 0x9e, 0x80, 0xd9, 0x88,
+ 0xf4, 0xa9, 0xc5, 0xf4,
+ 0x52, 0x01, 0xb0, 0x74, 0x28, 0x38, 0xe7, 0xe0, 0x67, 0xb6, 0x86, 0x85,
+ 0xbf, 0x77, 0x2b, 0xbf,
+ 0xed, 0x8b, 0x17, 0x9f, 0x1c, 0x7b, 0x18, 0x2f, 0xa6, 0xab, 0x02, 0x5c,
+ 0xf2, 0xc1, 0x42, 0xf2,
+ 0xfa, 0x0e, 0xef, 0xdd, 0x73, 0x93, 0x23, 0x09, 0x2f, 0xcb, 0x28, 0x3a,
+ 0xb5, 0xcf, 0x61, 0xb5,
+ 0x98, 0x3b, 0x29, 0x6e, 0x77, 0x41, 0x66, 0xc7, 0x15, 0xb3, 0xe9, 0xa4,
+ 0x93, 0x23, 0x3a, 0x93,
+ 0xdf, 0xe2, 0x4b, 0xa6, 0x6c, 0x54, 0x78, 0x93, 0x7b, 0x42, 0x0a, 0xef,
+ 0xbc, 0x43, 0x89, 0xbc,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x66, 0x8f, 0x92, 0x8c, 0xbc, 0x9b, 0x02, 0x29, 0xf9, 0x36, 0x5f, 0x0d,
+ 0x4b, 0xde, 0xee, 0x4b,
+ 0x2f, 0x06, 0x26, 0xfb, 0xf0, 0x90, 0x17, 0x05, 0x91, 0x32, 0x92, 0x98,
+ 0x04, 0xf1, 0xfa, 0x04,
+ 0x3e, 0x64, 0xa0, 0x78, 0x7b, 0xf4, 0xa9, 0x56, 0x5b, 0x3b, 0x69, 0xc5,
+ 0xf9, 0xd4, 0xd7, 0xf9,
+ },
+ { /* 6 */
+ 0x51, 0x8b, 0xc0, 0x48, 0x41, 0xdb, 0x9d, 0x79, 0x04, 0x5b, 0xb3, 0x42,
+ 0x6e, 0xe5, 0x18, 0xc6,
+ 0x33, 0xea, 0x25, 0x27, 0xfa, 0x81, 0x30, 0xe7, 0xa3, 0x06, 0xf7, 0x12,
+ 0x65, 0x8f, 0x4c, 0x36,
+ 0xa4, 0x98, 0x5a, 0x40, 0x48, 0x42, 0xb3, 0xc9, 0x3b, 0x2e, 0x19, 0xca,
+ 0x9c, 0x04, 0x9a, 0x9d,
+ 0x67, 0xeb, 0x11, 0xd7, 0x14, 0x97, 0xc2, 0x59, 0x6c, 0x89, 0xa6, 0x39,
+ 0x6b, 0x80, 0xab, 0x4b,
+ 0x0a, 0xd7, 0x2b, 0xb3, 0x9d, 0x59, 0xde, 0x4d, 0x55, 0x6b, 0x07, 0xd2,
+ 0xc0, 0x17, 0x3d, 0xb5,
+ 0xe7, 0x33, 0xd5, 0x7d, 0x3a, 0x1c, 0x1b, 0x11, 0xa6, 0x3b, 0x18, 0xa1,
+ 0xf1, 0xc2, 0x52, 0x20,
+ 0x28, 0xda, 0xac, 0x89, 0x31, 0xa7, 0xfe, 0xf7, 0x97, 0x6f, 0x1c, 0xce,
+ 0x86, 0x5c, 0xf4, 0x91,
+ 0x1a, 0xcc, 0xd2, 0x37, 0xe8, 0x70, 0x6c, 0x44, 0xdd, 0xec, 0x60, 0xc1,
+ 0x42, 0x8e, 0x8b, 0x80,
+ 0x6c, 0xc0, 0x61, 0xfd, 0xaa, 0x98, 0xbe, 0x40, 0xd0, 0x67, 0x2a, 0xf6,
+ 0x0a, 0xca, 0xa5, 0xd9,
+ 0x65, 0xd0, 0xa7, 0x26, 0x52, 0x3b, 0x45, 0xf1, 0x7d, 0x40, 0x73, 0x03,
+ 0xea, 0x3a, 0xcd, 0x05,
+ 0xfa, 0x4e, 0x45, 0x03, 0x3b, 0x0d, 0x9f, 0x3a, 0xa1, 0xca, 0x4f, 0x33,
+ 0x52, 0x1c, 0x40, 0x55,
+ 0xe8, 0x6e, 0x0a, 0x76, 0x08, 0x88, 0xaa, 0x9b, 0x38, 0x84, 0xfd, 0x1a,
+ 0x51, 0x3f, 0x90, 0x2e,
+ 0xac, 0x74, 0xc7, 0x02, 0x93, 0xb7, 0xea, 0x2c, 0x7f, 0x8c, 0xcb, 0x22,
+ 0xdd, 0xa9, 0xc1, 0x66,
+ 0x5a, 0xa0, 0xb0, 0x62, 0xff, 0xd4, 0xe1, 0x60, 0xb8, 0xb5, 0x3f, 0x8d,
+ 0x0f, 0xaf, 0x16, 0x54,
+ 0xa9, 0xfe, 0x33, 0xba, 0x3c, 0x7a, 0x85, 0xeb, 0xb4, 0x58, 0x29, 0x4b,
+ 0xbd, 0x43, 0x3e, 0xdd,
+ 0x30, 0x2d, 0xc8, 0x4f, 0x9f, 0x7b, 0x15, 0x1b, 0x5b, 0x4a, 0xa9, 0x35,
+ 0x45, 0x68, 0x19, 0x5f,
+ 0x8b, 0xf3, 0xb4, 0x80, 0x90, 0x84, 0xa5, 0x51, 0x76, 0x5c, 0x32, 0x57,
+ 0xfb, 0x08, 0xf7, 0xf9,
+ 0x83, 0x1f, 0x29, 0xc2, 0x4b, 0x71, 0xfc, 0xb4, 0x32, 0xfe, 0xe0, 0xbf,
+ 0xba, 0xa5, 0xac, 0x02,
+ 0xef, 0xdf, 0x48, 0x3f, 0xe1, 0xe9, 0x42, 0xf4, 0xe2, 0x99, 0xca, 0x49,
+ 0xb0, 0x6f, 0x09, 0xdb,
+ 0x66, 0x17, 0x4a, 0x4e, 0x37, 0xc1, 0x60, 0x0d, 0x85, 0x0c, 0x2d, 0x24,
+ 0xca, 0xdd, 0x98, 0x6c,
+ 0x14, 0x6d, 0x56, 0xa5, 0xf9, 0xb2, 0x7f, 0x9a, 0xaa, 0xd6, 0x0e, 0x67,
+ 0x43, 0x2e, 0x7a, 0xa9,
+ 0x0d, 0x66, 0x69, 0xfa, 0x74, 0x38, 0x36, 0x22, 0x8f, 0x76, 0x30, 0x81,
+ 0x21, 0x47, 0xa4, 0x40,
+ 0x05, 0x8a, 0xf4, 0xb8, 0xaf, 0xcd, 0x6f, 0xc7, 0xcb, 0xd4, 0xe2, 0x69,
+ 0x60, 0xea, 0xff, 0xbb,
+ 0x92, 0xf8, 0x8b, 0xdf, 0x1d, 0x0e, 0xec, 0xe9, 0x53, 0xfc, 0x0c, 0xb1,
+ 0x99, 0x61, 0x29, 0x10,
+ 0x7a, 0x96, 0x81, 0xa9, 0x15, 0x86, 0x46, 0x72, 0x6b, 0x78, 0xf1, 0xab,
+ 0xc8, 0x5e, 0xb9, 0x3e,
+ 0x13, 0xdc, 0x14, 0xec, 0x10, 0xd3, 0x97, 0xf5, 0x70, 0xcb, 0x39, 0x34,
+ 0xa2, 0x7e, 0xe3, 0x5c,
+ 0xd8, 0x43, 0xc2, 0x39, 0x97, 0xf3, 0xbf, 0x80, 0x63, 0xce, 0x54, 0x2f,
+ 0x14, 0x57, 0x89, 0x71,
+ 0x87, 0x69, 0x86, 0xe3, 0xc7, 0xea, 0x31, 0x27, 0x10, 0xaf, 0x89, 0xcb,
+ 0x7b, 0x12, 0x60, 0x9e,
+ 0xb5, 0x7f, 0xf8, 0x5d, 0x1e, 0x3d, 0xa3, 0x94, 0x5a, 0x2c, 0xf5, 0xc4,
+ 0xbf, 0xc0, 0x1f, 0x8f,
+ 0xdf, 0xf2, 0x80, 0x70, 0x7e, 0x92, 0x57, 0xef, 0xb9, 0xd3, 0x63, 0x7c,
+ 0xf5, 0x07, 0x10, 0x84,
+ 0x91, 0x3f, 0x66, 0xb7, 0x78, 0xf4, 0xc9, 0x15, 0xab, 0xb0, 0x52, 0x96,
+ 0xb9, 0x86, 0x7c, 0x79,
+ 0x2d, 0x50, 0x58, 0x31, 0x9e, 0x6a, 0x91, 0x30, 0x5c, 0xbb, 0xfe, 0xa7,
+ 0xe6, 0xb6, 0x0b, 0x2a,
+ 0xa0, 0xee, 0xf5, 0x61, 0xc4, 0xd9, 0x7e, 0x5a, 0x19, 0x7f, 0x70, 0xbe,
+ 0x5d, 0xb3, 0x56, 0x01,
+ 0xbf, 0xa8, 0xd3, 0xee, 0x83, 0x64, 0x7d, 0xd9, 0x0f, 0x47, 0xf2, 0x16,
+ 0x7f, 0xd7, 0x22, 0x3a,
+ 0x24, 0x40, 0x9e, 0xea, 0x66, 0xc9, 0x6a, 0x81, 0xf1, 0x9c, 0xa7, 0x52,
+ 0x06, 0x46, 0x63, 0xf6,
+ 0x49, 0x7c, 0xa4, 0x8e, 0xef, 0x07, 0x76, 0x95, 0xc8, 0x7e, 0x06, 0xb9,
+ 0xad, 0xd1, 0xf5, 0x08,
+ 0xee, 0x23, 0x13, 0xa6, 0xc2, 0xbf, 0xe0, 0xa0, 0x0b, 0x1c, 0x41, 0x54,
+ 0x11, 0x32, 0x3a, 0xfc,
+ 0x2c, 0xac, 0x03, 0xa8, 0xbd, 0x3c, 0x33, 0x64, 0xb5, 0x3e, 0x75, 0xba,
+ 0x47, 0xeb, 0x38, 0x0d,
+ 0x1d, 0x7d, 0x90, 0x7e, 0x01, 0x11, 0x84, 0x2b, 0x07, 0xf1, 0x57, 0x92,
+ 0xa3, 0xde, 0x12, 0x75,
+ 0xcc, 0x2e, 0x94, 0x9c, 0x6e, 0x41, 0xc0, 0x1a, 0xc9, 0x18, 0x5a, 0x48,
+ 0x57, 0x79, 0xf3, 0xd8,
+ 0x7c, 0xdb, 0x98, 0x79, 0xdf, 0xb1, 0x0c, 0x49, 0x58, 0xe0, 0x4d, 0xe5,
+ 0x88, 0x53, 0x13, 0xec,
+ 0x8e, 0x79, 0x40, 0x38, 0x3f, 0x49, 0xca, 0x96, 0xbd, 0x88, 0xd0, 0x3e,
+ 0x9b, 0xe2, 0x08, 0x42,
+ 0xb8, 0x19, 0x91, 0xa7, 0x6a, 0x05, 0x95, 0xb6, 0xd5, 0x5a, 0xc5, 0x45,
+ 0x9e, 0x87, 0xbb, 0xcf,
+ 0xe6, 0xcf, 0x8e, 0xe4, 0x19, 0x4a, 0xb9, 0x45, 0x4f, 0xbe, 0x93, 0xbc,
+ 0x50, 0x9f, 0x61, 0x07,
+ 0xf4, 0xef, 0xc1, 0x91, 0x2a, 0xcf, 0x8c, 0xe4, 0xd6, 0xf0, 0x21, 0x95,
+ 0x53, 0xbc, 0xb1, 0x7c,
+ 0x26, 0x7b, 0x28, 0x1b, 0x20, 0x65, 0xed, 0x29, 0xe0, 0x55, 0x72, 0x68,
+ 0x87, 0xfc, 0x05, 0xb8,
+ 0x1b, 0x30, 0x89, 0xae, 0xcb, 0x26, 0xce, 0x10, 0x34, 0x69, 0xeb, 0xdc,
+ 0xe3, 0xd3, 0xb8, 0xa7,
+ 0x4f, 0x31, 0xbd, 0x5e, 0x25, 0x30, 0x3c, 0xae, 0xfb, 0xe6, 0xba, 0xf7,
+ 0xed, 0xdc, 0x5f, 0xda,
+ 0xd5, 0x25, 0xab, 0xc3, 0xe3, 0xcb, 0x89, 0xa2, 0xec, 0xb8, 0x64, 0xae,
+ 0x35, 0x10, 0x2d, 0x31,
+ 0xc5, 0x3e, 0x52, 0x47, 0x96, 0xe2, 0x3b, 0xab, 0x64, 0x3f, 0x03, 0xbd,
+ 0xb7, 0x89, 0x9b, 0x04,
+ 0x50, 0x77, 0x9b, 0xd1, 0x62, 0x8d, 0x3f, 0x2d, 0xed, 0xde, 0x38, 0x5f,
+ 0xcf, 0xb8, 0x2b, 0xe1,
+ 0x79, 0x51, 0x6c, 0xc1, 0x70, 0x7c, 0x63, 0x8e, 0x93, 0x34, 0xaf, 0x8c,
+ 0xe8, 0xb9, 0xec, 0x57,
+ 0x77, 0xf0, 0xe8, 0x53, 0x61, 0xbe, 0x70, 0x50, 0xe4, 0x0e, 0xc1, 0x2a,
+ 0xe9, 0x19, 0x1d, 0x7e,
+ 0x16, 0x56, 0xe0, 0x54, 0xbf, 0x1e, 0xf8, 0x32, 0xbb, 0x1f, 0xdb, 0x5d,
+ 0xc2, 0x94, 0x1c, 0xe7,
+ 0x52, 0x4c, 0x2d, 0x20, 0x24, 0x21, 0xb8, 0x85, 0xfc, 0x17, 0xed, 0x65,
+ 0x4e, 0x02, 0x4d, 0xaf,
+ 0x15, 0x91, 0x0d, 0x3c, 0xda, 0xe4, 0xdd, 0xce, 0x43, 0x53, 0x85, 0x7a,
+ 0xe2, 0x73, 0x49, 0x8e,
+ 0x9b, 0xe8, 0x4d, 0x04, 0xe5, 0xad, 0x17, 0x58, 0xfe, 0xdb, 0x55, 0x44,
+ 0x79, 0x91, 0x41, 0xcc,
+ 0xb4, 0x83, 0xa3, 0xc4, 0x3d, 0x6b, 0x01, 0xc0, 0xb3, 0xa9, 0x7e, 0xd9,
+ 0x1e, 0x9d, 0x2c, 0xa8,
+ 0x3e, 0x8c, 0x4c, 0xdd, 0x8e, 0xb9, 0x06, 0xc5, 0x2c, 0x70, 0xc7, 0x93,
+ 0x44, 0xc8, 0xe8, 0x76,
+ 0x80, 0xd8, 0xc4, 0xaa, 0x2e, 0x8b, 0xd9, 0x48, 0xca, 0xb2, 0xbe, 0x98,
+ 0x9a, 0x42, 0xf9, 0x6b,
+ 0x36, 0x60, 0xd1, 0x9f, 0x55, 0x4c, 0x5f, 0x20, 0x68, 0xd2, 0x15, 0x7b,
+ 0x05, 0x65, 0xb3, 0x8d,
+ 0xd3, 0x68, 0xb2, 0x13, 0x29, 0xfc, 0xc3, 0x99, 0xdf, 0x20, 0xd8, 0xe0,
+ 0x75, 0x1d, 0x87, 0xe3,
+ 0x2b, 0x1d, 0x41, 0xe1, 0x54, 0x5d, 0xdb, 0x0b, 0x6f, 0x23, 0x42, 0xe9,
+ 0xa6, 0xbb, 0xa1, 0xf8,
+ 0x01, 0xfc, 0x5b, 0x99, 0x23, 0x56, 0xa2, 0x54, 0xe9, 0x85, 0x8b, 0x1d,
+ 0xa1, 0x5d, 0x33, 0x27,
+ 0x99, 0xd3, 0xfb, 0xf5, 0xa3, 0x01, 0x90, 0xf0, 0xef, 0x12, 0x80, 0x7e,
+ 0xf8, 0x2b, 0x27, 0x82,
+ 0xdd, 0xc9, 0x36, 0x81, 0x38, 0x3e, 0xd0, 0x47, 0xa8, 0x1a, 0xb6, 0x46,
+ 0x74, 0xbd, 0x76, 0xca,
+ 0xf6, 0xd4, 0x77, 0x60, 0x6c, 0x63, 0x0b, 0x4c, 0xc7, 0x39, 0xf4, 0xaf,
+ 0xd2, 0x06, 0xd7, 0x32,
+ 0x68, 0xb6, 0xce, 0xdc, 0x26, 0x03, 0x73, 0xd3, 0xf2, 0x36, 0x43, 0x82,
+ 0xcb, 0x7d, 0x69, 0x45,
+ 0x12, 0x20, 0x4f, 0x75, 0x33, 0x85, 0x35, 0xa1, 0x99, 0x4e, 0xb2, 0x29,
+ 0x03, 0x23, 0xd0, 0x7b,
+ 0x8a, 0x0f, 0xef, 0x19, 0xb3, 0xd2, 0x07, 0x05, 0x9f, 0xd9, 0xb9, 0x4a,
+ 0x5a, 0x55, 0xc4, 0xde,
+ 0x09, 0x10, 0xc6, 0xdb, 0xf8, 0xa3, 0xfb, 0xb1, 0xad, 0x27, 0x59, 0xf5,
+ 0xe0, 0xf0, 0x68, 0xdc,
+ 0xa6, 0xa3, 0xec, 0xb1, 0x0e, 0xee, 0x34, 0x61, 0x2a, 0xe7, 0xcc, 0xf0,
+ 0x1d, 0xbe, 0xfc, 0xd3,
+ 0x72, 0x7a, 0x1c, 0xeb, 0xce, 0x73, 0x1f, 0x97, 0x2f, 0xda, 0x23, 0x43,
+ 0x89, 0xf3, 0xe2, 0xc5,
+ 0xc4, 0xc2, 0x09, 0xde, 0xb5, 0xb4, 0x99, 0xff, 0x8d, 0xba, 0x88, 0xa0,
+ 0x16, 0xd4, 0xa8, 0x23,
+ 0x3a, 0xfa, 0xe3, 0xfc, 0x02, 0x22, 0xcb, 0x56, 0x0e, 0x21, 0xae, 0xe7,
+ 0x85, 0x7f, 0x24, 0xea,
+ 0x74, 0x37, 0x05, 0x3b, 0x04, 0x44, 0x55, 0xac, 0x1c, 0x42, 0x9f, 0x0d,
+ 0xc9, 0xfe, 0x48, 0x17,
+ 0xc1, 0x48, 0xfd, 0x66, 0x1a, 0x79, 0xf6, 0x38, 0x46, 0x6e, 0x6a, 0xc9,
+ 0x76, 0x3e, 0x57, 0x98,
+ 0xca, 0x63, 0x8d, 0x4c, 0xa4, 0x76, 0x8a, 0x21, 0xfa, 0x80, 0xe6, 0x06,
+ 0x17, 0x74, 0x59, 0x0a,
+ 0xb9, 0xe5, 0xca, 0x3e, 0x49, 0x53, 0x37, 0xe2, 0x3c, 0xdf, 0x4e, 0x58,
+ 0x3f, 0xda, 0x88, 0xe8,
+ 0x70, 0x41, 0xaa, 0x1a, 0x88, 0xdf, 0x98, 0x3f, 0x3e, 0x13, 0xf6, 0x79,
+ 0x08, 0x49, 0x84, 0x8b,
+ 0xbc, 0x6f, 0x3e, 0x86, 0xe6, 0x9e, 0x58, 0x25, 0xf7, 0x0b, 0xac, 0x31,
+ 0x5f, 0x30, 0x77, 0x53,
+ 0x34, 0x5b, 0x67, 0x6e, 0x13, 0xe0, 0xd8, 0x88, 0x79, 0x1b, 0xc0, 0x41,
+ 0x84, 0xdf, 0xd5, 0xc3,
+ 0x6a, 0x8d, 0x78, 0x2d, 0x60, 0xaf, 0xf4, 0x7b, 0xe3, 0xff, 0x96, 0xb8,
+ 0x4a, 0xc7, 0x0f, 0x0b,
+ 0x48, 0x80, 0xff, 0x17, 0xcc, 0x51, 0xd4, 0xc1, 0x21, 0xfb, 0x8d, 0xa4,
+ 0x0c, 0x8c, 0xc6, 0x2f,
+ 0x5f, 0x2a, 0x44, 0xda, 0x50, 0x19, 0x8e, 0xa7, 0x73, 0x61, 0xdd, 0xe4,
+ 0x6f, 0x45, 0xe9, 0xef,
+ 0x8f, 0x85, 0x1b, 0xa1, 0x1c, 0x1f, 0x68, 0xc2, 0x54, 0x0d, 0x5b, 0x23,
+ 0x3a, 0xbf, 0x3b, 0x65,
+ 0x69, 0x4a, 0x95, 0x45, 0x05, 0x55, 0xd1, 0x87, 0x1b, 0xb3, 0xc8, 0x9f,
+ 0x6a, 0x20, 0x5a, 0x62,
+ 0x9a, 0x14, 0x16, 0x9d, 0xc6, 0xfb, 0xb5, 0x0c, 0x17, 0x5e, 0xde, 0x59,
+ 0xd8, 0xcc, 0x72, 0xeb,
+ 0xda, 0x78, 0x74, 0xc8, 0xd1, 0x5f, 0x38, 0x28, 0x72, 0x07, 0x81, 0x15,
+ 0x95, 0xed, 0xef, 0x3f,
+ 0xfd, 0xff, 0x07, 0x4a, 0xd2, 0x6c, 0x77, 0x55, 0x7b, 0xd7, 0x78, 0x60,
+ 0xb3, 0x4c, 0xd9, 0xa0,
+ 0x39, 0x3d, 0x0e, 0x94, 0x67, 0xd8, 0xee, 0xaa, 0xf6, 0x6d, 0xf0, 0xc0,
+ 0xa5, 0x98, 0x71, 0x83,
+ 0xa5, 0x64, 0x01, 0xd9, 0x6b, 0x14, 0x11, 0x9d, 0xd2, 0xab, 0x92, 0xd7,
+ 0x3d, 0x59, 0xa9, 0xba,
+ 0xfc, 0x03, 0x5c, 0xd3, 0xf1, 0x3a, 0xd5, 0x01, 0x92, 0x52, 0xf3, 0x7d,
+ 0x12, 0x11, 0xea, 0x87,
+ 0xe0, 0x82, 0x97, 0x34, 0xd3, 0x7d, 0xf3, 0x7e, 0x7c, 0x26, 0x2f, 0xf2,
+ 0x10, 0x92, 0xcb, 0xd5,
+ 0x0c, 0x9a, 0x32, 0x63, 0x57, 0x6e, 0x94, 0x76, 0x66, 0xf3, 0xbb, 0x9c,
+ 0x80, 0x1a, 0x97, 0x67,
+ 0x57, 0xc6, 0xd9, 0x98, 0x8b, 0xec, 0xd7, 0x42, 0x37, 0xc3, 0x0f, 0x0c,
+ 0x2e, 0xe8, 0xb2, 0x14,
+ 0x54, 0x01, 0x34, 0xf0, 0xee, 0x16, 0xf2, 0xbe, 0xcf, 0x8f, 0x51, 0x2b,
+ 0x0e, 0x0f, 0xe7, 0x7d,
+ 0x8d, 0xbe, 0xad, 0x50, 0x5a, 0xb3, 0xef, 0x6a, 0x45, 0xc4, 0x8e, 0x19,
+ 0xbb, 0x05, 0x5d, 0x2b,
+ 0xd2, 0x94, 0xe9, 0x8a, 0x0a, 0xaa, 0x61, 0xcd, 0x36, 0xa5, 0x53, 0xfd,
+ 0xd4, 0x40, 0xb4, 0xc4,
+ 0xf7, 0x28, 0x2c, 0xf9, 0x4f, 0x35, 0xa9, 0x18, 0x2e, 0xbc, 0x7f, 0xb2,
+ 0x73, 0x5b, 0xe4, 0x15,
+ 0x5e, 0xd6, 0x1f, 0x43, 0x73, 0x4f, 0x2c, 0xf3, 0x9a, 0xe4, 0x56, 0xf9,
+ 0xce, 0x18, 0xda, 0xc8,
+ 0xf9, 0x89, 0xa8, 0x6b, 0x5e, 0xf7, 0xba, 0xc6, 0x59, 0x86, 0x11, 0x14,
+ 0x72, 0xfb, 0x15, 0x3c,
+ 0xf2, 0xa2, 0xd8, 0x41, 0xe0, 0xf8, 0xc6, 0xdf, 0xe5, 0x68, 0x9d, 0xdb,
+ 0x13, 0xb1, 0x1b, 0xae,
+ 0xe3, 0x45, 0x7a, 0x5c, 0xb6, 0x87, 0xd6, 0x82, 0x84, 0x6a, 0x71, 0xd5,
+ 0x30, 0x75, 0x9e, 0xbc,
+ 0x3b, 0x06, 0xb8, 0x65, 0x21, 0x74, 0x69, 0x02, 0xe7, 0xa4, 0x25, 0xfa,
+ 0x24, 0x22, 0x17, 0xcd,
+ 0x03, 0xc7, 0xed, 0x68, 0x65, 0xfa, 0x25, 0xfc, 0xf8, 0x4c, 0x5e, 0x27,
+ 0x20, 0xe7, 0x55, 0x69,
+ 0xa1, 0x12, 0xae, 0xf8, 0xe7, 0x8f, 0xdc, 0x0e, 0xf0, 0xfa, 0xfb, 0xa3,
+ 0xfc, 0xee, 0x65, 0x26,
+ 0x96, 0x8e, 0x24, 0xfe, 0x91, 0x95, 0x21, 0x7a, 0x71, 0xad, 0x65, 0xc5,
+ 0x58, 0xd6, 0xe5, 0x8c,
+ 0xaa, 0x39, 0xde, 0xd2, 0x59, 0x80, 0xa0, 0x17, 0x4c, 0x14, 0x77, 0x6c,
+ 0x9d, 0xa4, 0x6b, 0xb4,
+ 0x9f, 0x9e, 0xe2, 0x25, 0x69, 0x36, 0xda, 0xcb, 0xdc, 0x8a, 0x3c, 0x30,
+ 0xb8, 0x26, 0x8d, 0x50,
+ 0x46, 0x21, 0x7b, 0x85, 0xdd, 0x93, 0xc7, 0x1f, 0x56, 0xc1, 0xe3, 0x02,
+ 0x0d, 0x2c, 0x37, 0x06,
+ 0x41, 0x90, 0x39, 0xcc, 0x34, 0xf2, 0x2f, 0x70, 0x8c, 0xdc, 0xd4, 0x51,
+ 0xec, 0x7c, 0xae, 0xf3,
+ 0x2a, 0xe1, 0x1a, 0x78, 0x77, 0x0b, 0x79, 0x5f, 0x86, 0xa6, 0xc9, 0xf4,
+ 0x07, 0xe6, 0x92, 0xdf,
+ 0x60, 0x5a, 0x53, 0x9e, 0xfd, 0xf6, 0x2a, 0x36, 0xb6, 0x94, 0x91, 0x6a,
+ 0x8a, 0xd0, 0x32, 0xbe,
+ 0xe5, 0x08, 0x63, 0x8c, 0x7c, 0xb0, 0x9c, 0xb9, 0xb7, 0xf2, 0xcd, 0x9b,
+ 0x70, 0x78, 0x34, 0x6e,
+ 0x94, 0xb5, 0x92, 0x0f, 0xd7, 0x39, 0xa6, 0xd2, 0x60, 0x64, 0xb0, 0xff,
+ 0xd9, 0x6c, 0x83, 0xc2,
+ 0xbe, 0x54, 0x88, 0x77, 0xa0, 0x32, 0xdf, 0x8d, 0xe6, 0xc2, 0x79, 0x0b,
+ 0xde, 0x8a, 0x11, 0x1d,
+ 0x90, 0xc3, 0x3d, 0x2e, 0x5b, 0xa2, 0x6b, 0x41, 0x42, 0x35, 0xd9, 0x8b,
+ 0x18, 0xdb, 0x4f, 0x5e,
+ 0x2f, 0x6b, 0xee, 0xc0, 0xd8, 0xc6, 0x16, 0x98, 0x4d, 0x72, 0x2b, 0x9d,
+ 0x67, 0x0c, 0x6d, 0x64,
+ 0x9d, 0xa5, 0x54, 0xd4, 0x2f, 0x9a, 0x5d, 0x63, 0xcd, 0x43, 0xe9, 0x0a,
+ 0x39, 0x9c, 0xeb, 0x1e,
+ 0x81, 0x24, 0x9f, 0x33, 0x0d, 0xdd, 0x7b, 0x1c, 0x23, 0x37, 0x35, 0x85,
+ 0x3b, 0x1f, 0xca, 0x4c,
+ 0xa2, 0xd5, 0x43, 0x90, 0x82, 0x75, 0xf9, 0xf2, 0x08, 0xb6, 0xa5, 0x84,
+ 0xdc, 0x09, 0x30, 0x4f,
+ 0x76, 0x0c, 0xb3, 0xca, 0x42, 0xe8, 0xd2, 0x04, 0x0d, 0x8b, 0x4a, 0x37,
+ 0x48, 0x44, 0x2e, 0x59,
+ 0x4b, 0x47, 0x12, 0x7f, 0xa9, 0xab, 0xf1, 0x3d, 0xd9, 0xb7, 0xd3, 0x83,
+ 0x2c, 0x6b, 0x93, 0x46,
+ 0xe4, 0xf4, 0x38, 0x15, 0x5f, 0xe6, 0x3e, 0xed, 0x5e, 0x77, 0x46, 0x86,
+ 0xd1, 0x25, 0x07, 0x49,
+ 0x06, 0x4d, 0x19, 0xd0, 0xca, 0x37, 0x4a, 0x3b, 0x33, 0x98, 0xbc, 0x4e,
+ 0x40, 0x0d, 0xaa, 0xd2,
+ 0x55, 0xfd, 0x6f, 0x69, 0xcd, 0x40, 0x50, 0xea, 0x26, 0x0a, 0xda, 0x36,
+ 0xaf, 0x52, 0xd4, 0x5a,
+ 0xae, 0x4f, 0x71, 0xf3, 0xd5, 0x1b, 0x6d, 0x84, 0x6e, 0x45, 0x1e, 0x18,
+ 0x5c, 0x13, 0xa7, 0x28,
+ 0x1c, 0x81, 0xcb, 0xe7, 0x22, 0x47, 0x26, 0x7f, 0xee, 0x74, 0xdc, 0x8f,
+ 0x02, 0x83, 0x21, 0x52,
+ 0x75, 0xcb, 0x5e, 0xa2, 0x27, 0x12, 0xf7, 0xf8, 0xf5, 0xc7, 0x14, 0x10,
+ 0x68, 0xa3, 0x7b, 0x30,
+ 0x5b, 0x5c, 0xeb, 0xfb, 0xdc, 0x82, 0x43, 0x34, 0x51, 0x30, 0xb4, 0x90,
+ 0xae, 0xf2, 0x25, 0x73,
+ 0x04, 0x76, 0xaf, 0x21, 0x8c, 0x9b, 0xcd, 0x93, 0x22, 0x51, 0x69, 0x74,
+ 0xc1, 0xb7, 0xcc, 0x9c,
+ 0x27, 0x87, 0x73, 0x82, 0x03, 0x33, 0x4f, 0x7d, 0x09, 0xd0, 0xf9, 0x75,
+ 0x26, 0xa1, 0x36, 0x9f,
+ 0x4d, 0x0a, 0x0b, 0xaf, 0x63, 0x9c, 0xbb, 0x06, 0xea, 0x2f, 0x6f, 0xcd,
+ 0x6c, 0x66, 0x39, 0x94,
+ 0x9c, 0x59, 0x0f, 0x4d, 0x0c, 0xcc, 0xff, 0x37, 0x24, 0xc6, 0x62, 0x17,
+ 0x98, 0xc1, 0xd8, 0x39,
+ 0x20, 0x36, 0x31, 0xcb, 0xea, 0x52, 0xa7, 0x12, 0xd3, 0xcd, 0xce, 0x26,
+ 0xc7, 0xf1, 0xaf, 0x6a,
+ 0x53, 0xb0, 0x76, 0xb9, 0x07, 0x77, 0x1a, 0xd1, 0x15, 0x92, 0x66, 0x78,
+ 0xef, 0x5f, 0x7e, 0x88,
+ 0xd0, 0xaf, 0x5f, 0x7b, 0x4c, 0x06, 0xe6, 0x65, 0x27, 0x6c, 0x86, 0xc7,
+ 0x55, 0xfa, 0xd2, 0x8a,
+ 0x95, 0x49, 0xc9, 0x96, 0xf4, 0x6f, 0x04, 0x86, 0x89, 0xe1, 0x3b, 0xe2,
+ 0x78, 0x31, 0xb0, 0xe5,
+ 0xf3, 0x5e, 0x83, 0xd8, 0xc3, 0xae, 0x64, 0x8b, 0x0c, 0xed, 0x16, 0xc6,
+ 0xb2, 0xec, 0x28, 0x89,
+ 0x85, 0x52, 0x30, 0x12, 0x81, 0x46, 0xb6, 0x8f, 0x01, 0x66, 0x5c, 0xf1,
+ 0xfa, 0xa8, 0x06, 0xd0,
+ 0x88, 0x34, 0x59, 0xe8, 0xf5, 0x7e, 0x80, 0xad, 0x8e, 0x10, 0x6c, 0x70,
+ 0xdb, 0xef, 0xa2, 0x90,
+ 0xb0, 0xf5, 0x0c, 0xe5, 0xb1, 0xf0, 0xcc, 0x53, 0x91, 0xf8, 0x17, 0xad,
+ 0xdf, 0x2a, 0xe0, 0x34,
+ 0x22, 0x0d, 0x87, 0x3a, 0xac, 0xfe, 0x20, 0xba, 0xc2, 0x04, 0x1b, 0x1c,
+ 0x46, 0x4b, 0xc9, 0x24,
+ 0x0b, 0x2b, 0x70, 0x2a, 0xbe, 0x0f, 0x7c, 0x19, 0xbc, 0xee, 0x8c, 0xcf,
+ 0x61, 0x4a, 0x0e, 0x92,
+ 0x02, 0x3b, 0xb6, 0xf1, 0x46, 0xac, 0x87, 0xa8, 0x11, 0xc9, 0xd5, 0x3a,
+ 0x81, 0xba, 0x66, 0x4e,
+ 0xc9, 0xa4, 0x60, 0x24, 0xc1, 0x8c, 0xaf, 0xdd, 0x02, 0xcc, 0xb8, 0x21,
+ 0x37, 0x93, 0x0c, 0x63,
+ 0xdb, 0x84, 0x2f, 0x51, 0xf2, 0x09, 0x9a, 0x7c, 0x9b, 0x82, 0x0a, 0x08,
+ 0x34, 0xb0, 0xdc, 0x18,
+ 0xb6, 0xb8, 0x15, 0x35, 0x7b, 0xc7, 0x86, 0x68, 0xa2, 0x60, 0xab, 0xe3,
+ 0x9f, 0x27, 0x4a, 0xe6,
+ 0x40, 0x6c, 0x62, 0x55, 0x17, 0xa4, 0x8d, 0x24, 0x65, 0x59, 0x5f, 0x4c,
+ 0x4d, 0x21, 0x9d, 0xd4,
+ 0x4e, 0xcd, 0xe6, 0xc7, 0x06, 0x66, 0x9e, 0xfa, 0x12, 0x63, 0x31, 0xea,
+ 0x4c, 0x81, 0x6c, 0xfd,
+ 0xd7, 0x1e, 0x1d, 0x32, 0xa5, 0x67, 0x0e, 0x0a, 0xfd, 0x71, 0xb1, 0x94,
+ 0xb4, 0xaa, 0x4b, 0x7f,
+ 0xab, 0xc5, 0x85, 0x4b, 0x7a, 0xd6, 0x02, 0x43, 0xa5, 0x91, 0xfc, 0x71,
+ 0x3c, 0xf9, 0x58, 0x93,
+ 0x98, 0x2f, 0xa0, 0x6c, 0x80, 0x57, 0x32, 0xa4, 0x06, 0x97, 0x0b, 0x63,
+ 0x59, 0x76, 0x14, 0xa5,
+ 0xc8, 0x58, 0x3b, 0xbd, 0xe2, 0xda, 0x0d, 0x89, 0xeb, 0x49, 0x33, 0x3c,
+ 0x96, 0xce, 0x3f, 0x44,
+ 0xaf, 0xb3, 0x2a, 0x6a, 0xf6, 0x4d, 0xcf, 0xd0, 0x87, 0xc0, 0x95, 0x05,
+ 0xfd, 0x4e, 0x94, 0x0f,
+ 0xa3, 0x29, 0x18, 0x09, 0xa1, 0x23, 0x5b, 0xa6, 0xe1, 0x33, 0x2e, 0x99,
+ 0x7d, 0x54, 0x03, 0x68,
+ 0x44, 0x1a, 0xcd, 0x74, 0x9b, 0x3f, 0x40, 0xb7, 0x47, 0x08, 0x36, 0x38,
+ 0x8c, 0x96, 0x51, 0x48,
+ 0x84, 0xae, 0x6b, 0x8b, 0xa2, 0x10, 0x14, 0xdb, 0xe8, 0xe3, 0xd7, 0xec,
+ 0x5b, 0xf5, 0x35, 0xf7,
+ 0x9e, 0x62, 0xb9, 0xbc, 0x4a, 0x60, 0x78, 0x9f, 0x35, 0x0f, 0xb7, 0x2d,
+ 0x19, 0x7b, 0xbe, 0x77,
+ 0xe2, 0xb9, 0x21, 0xc5, 0x95, 0xd1, 0x74, 0xd6, 0x6d, 0xef, 0xfa, 0xc8,
+ 0x91, 0x28, 0xad, 0x9b,
+ 0xcd, 0xd2, 0xcf, 0x05, 0x4d, 0x17, 0x62, 0x4e, 0x20, 0x9d, 0xd1, 0x55,
+ 0xf6, 0x24, 0xc0, 0xff,
+ 0xfb, 0xb2, 0x1e, 0x9a, 0x18, 0x5b, 0x3d, 0x6e, 0x48, 0x4f, 0xc4, 0x2e,
+ 0xf3, 0x41, 0x73, 0x72,
+ 0x45, 0xe6, 0x96, 0xed, 0xb8, 0x69, 0xe2, 0xe3, 0xae, 0x8d, 0xbd, 0x25,
+ 0x2d, 0xcb, 0x62, 0x6f,
+ 0x23, 0xf1, 0xdc, 0xa3, 0x8f, 0xa8, 0x82, 0xee, 0x2b, 0x81, 0x90, 0x01,
+ 0xe7, 0x16, 0xfa, 0x03,
+ 0xc6, 0xf9, 0xbf, 0x2f, 0xf3, 0x18, 0x1e, 0x57, 0x9c, 0x73, 0x5d, 0x9a,
+ 0x97, 0x6e, 0xce, 0x6d,
+ 0x3d, 0x4b, 0xa1, 0xb5, 0xeb, 0x43, 0x23, 0x39, 0xd4, 0x3c, 0x99, 0xb4,
+ 0x64, 0x2f, 0xbd, 0x1f,
+ 0x17, 0xaa, 0xbb, 0xcd, 0x9c, 0x48, 0x5a, 0x66, 0x52, 0x9a, 0x50, 0x40,
+ 0x63, 0xc9, 0x2f, 0xc0,
+ 0xeb, 0xa9, 0xe7, 0x1e, 0x6d, 0x72, 0x8f, 0x67, 0xc0, 0xc8, 0xa3, 0x3d,
+ 0x71, 0xd8, 0xc5, 0x47,
+ 0x2e, 0x97, 0xb5, 0x59, 0xfb, 0x90, 0xb4, 0xcc, 0xa4, 0xf7, 0xa0, 0x80,
+ 0xc6, 0x51, 0x5e, 0x43,
+ 0xcb, 0x9f, 0xd6, 0xd5, 0x87, 0x20, 0x28, 0x75, 0x13, 0x05, 0x6d, 0x1b,
+ 0xb6, 0x29, 0x6a, 0x2d,
+ 0xb2, 0xce, 0xba, 0x14, 0xf7, 0x5c, 0x4b, 0xfb, 0x80, 0x31, 0xc2, 0x97,
+ 0x5e, 0x90, 0x86, 0x7a,
+ 0x5c, 0xed, 0xa9, 0xb2, 0x35, 0xe3, 0xab, 0x5b, 0x8b, 0x2d, 0x83, 0xc3,
+ 0x4f, 0xa2, 0xbc, 0x86,
+ 0x4a, 0xbb, 0x49, 0xe6, 0x8a, 0xfd, 0x53, 0x69, 0x30, 0x32, 0x58, 0x9e,
+ 0x8d, 0x36, 0xa0, 0x61,
+ 0x64, 0x2c, 0xfc, 0xbf, 0x71, 0x6d, 0xe7, 0xa5, 0x94, 0xc5, 0xf8, 0x1e,
+ 0x4b, 0x67, 0xfe, 0x22,
+ 0x71, 0xbd, 0xf1, 0x83, 0xab, 0x89, 0x3a, 0x6b, 0xd7, 0x96, 0x7d, 0x64,
+ 0xa9, 0x14, 0xb7, 0xac,
+ 0x35, 0xa7, 0x3c, 0xf7, 0x30, 0xb6, 0x7a, 0xdc, 0x90, 0x9e, 0x4b, 0x5c,
+ 0x25, 0x82, 0xe6, 0xe4,
+ 0xc7, 0x05, 0xe4, 0xb6, 0xd0, 0x4e, 0xbc, 0x03, 0x75, 0xf6, 0xd6, 0x87,
+ 0x36, 0x33, 0xfd, 0x4a,
+ 0x07, 0xb1, 0x42, 0x49, 0xe9, 0x61, 0xe8, 0x6f, 0xda, 0x1d, 0x37, 0x53,
+ 0xe1, 0x50, 0x99, 0xf5,
+ 0x59, 0x67, 0x5d, 0x0a, 0x9a, 0x2e, 0xc4, 0x9c, 0x40, 0xf9, 0x61, 0xaa,
+ 0x2f, 0x48, 0x43, 0x3d,
+ 0x38, 0xc1, 0x55, 0x0d, 0x44, 0x8e, 0x4c, 0xfe, 0x1f, 0xe8, 0x7b, 0xdd,
+ 0x04, 0xc5, 0x42, 0xa4,
+ 0xea, 0x55, 0xbc, 0x87, 0x4e, 0x24, 0x2d, 0x33, 0x29, 0x4d, 0x28, 0x20,
+ 0xd0, 0x85, 0xf6, 0x60,
+ 0x37, 0x9c, 0x8a, 0x06, 0x76, 0x1a, 0xfd, 0x74, 0x81, 0x57, 0x9e, 0x66,
+ 0xa4, 0x38, 0x80, 0xaa,
+ 0x63, 0x9d, 0xbe, 0xf6, 0x98, 0x0c, 0x0f, 0xca, 0x4e, 0xd8, 0xcf, 0x4d,
+ 0xaa, 0x37, 0x67, 0xd7,
+ 0x18, 0xf7, 0x64, 0xc6, 0xae, 0xdc, 0xeb, 0xec, 0xcc, 0x25, 0xb5, 0xfb,
+ 0xc3, 0x34, 0xed, 0xce,
+ 0xa7, 0x5f, 0xb7, 0x28, 0x2d, 0xb8, 0x96, 0x35, 0xc3, 0x62, 0x47, 0xed,
+ 0xbc, 0xe3, 0xcf, 0xf4,
+ 0x58, 0x9b, 0x06, 0x93, 0xb9, 0x78, 0x66, 0xc8, 0xa9, 0x7c, 0xea, 0xb7,
+ 0x8e, 0x15, 0x70, 0x1a,
+ 0x11, 0xe7, 0xa2, 0x1d, 0x56, 0x7f, 0x10, 0x5d, 0x61, 0x02, 0xec, 0x0e,
+ 0x23, 0xc4, 0x85, 0x12,
+ 0xf5, 0x13, 0x9a, 0x08, 0x09, 0x99, 0x2e, 0xb0, 0x3f, 0x75, 0xaa, 0x88,
+ 0xf2, 0xe1, 0x82, 0x5b,
+ 0xd9, 0xbf, 0x99, 0xa0, 0xb4, 0xa5, 0x1d, 0xd4, 0x8a, 0x4b, 0xdf, 0x32,
+ 0xb5, 0x0a, 0xba, 0x56,
+ 0xe9, 0x92, 0x51, 0xef, 0x2b, 0xde, 0x08, 0xcf, 0xd1, 0x01, 0x76, 0x07,
+ 0xf0, 0x62, 0xa3, 0x09,
+ 0x25, 0xbc, 0xc5, 0x73, 0x45, 0x9f, 0xc8, 0xd5, 0x18, 0x19, 0x2c, 0x4f,
+ 0xa7, 0x1b, 0x50, 0xd1,
+ 0xf8, 0x75, 0xf3, 0xf2, 0x7d, 0xa1, 0x18, 0x92, 0xb0, 0x03, 0x9a, 0x09,
+ 0xd3, 0xa6, 0x26, 0x1b,
+ 0x97, 0x72, 0x7f, 0x67, 0xb2, 0xc3, 0x83, 0x2e, 0x98, 0x28, 0xee, 0xd8,
+ 0xf9, 0x8b, 0xd6, 0xab,
+ 0xb1, 0x09, 0x57, 0x7c, 0x92, 0xa6, 0x6e, 0x07, 0x78, 0x7d, 0x9c, 0xb0,
+ 0x7e, 0x77, 0xd3, 0x13,
+ 0x19, 0x0b, 0x3f, 0x5f, 0x8d, 0x8a, 0x49, 0xb8, 0x25, 0xa0, 0x3e, 0xe6,
+ 0x62, 0x69, 0xde, 0xe9,
+ 0x0f, 0x5d, 0xdf, 0x0b, 0x32, 0x94, 0xb1, 0x8a, 0x9e, 0xbf, 0xe5, 0xbb,
+ 0xa0, 0xfd, 0xc2, 0x0e,
+ 0x89, 0xc8, 0x02, 0x71, 0xd6, 0x28, 0x22, 0xf9, 0x67, 0x95, 0xe7, 0x6d,
+ 0x7a, 0xb2, 0x91, 0xb7,
+ 0xdc, 0x35, 0x6d, 0x18, 0x1b, 0x68, 0x72, 0x13, 0x41, 0x9f, 0x3d, 0x5b,
+ 0xd5, 0xe0, 0x45, 0xed,
+ 0x08, 0xec, 0x9d, 0x42, 0xdb, 0xf5, 0x59, 0xe5, 0x44, 0xa2, 0xd2, 0xe8,
+ 0x41, 0xad, 0x5b, 0xfb,
+ 0xf1, 0x65, 0x35, 0x29, 0x85, 0x02, 0xe3, 0x23, 0x1d, 0x24, 0xc3, 0xfc,
+ 0x33, 0x56, 0x4e, 0xc7,
+ 0xa8, 0x02, 0x68, 0x23, 0x1f, 0x2c, 0x27, 0xbf, 0x5d, 0xdd, 0xa2, 0x56,
+ 0x1c, 0x1e, 0x0d, 0xfa,
+ 0x0e, 0xa1, 0x84, 0x92, 0x11, 0xc2, 0x13, 0xde, 0x77, 0x3a, 0x6e, 0xa6,
+ 0x01, 0xa0, 0xf1, 0x29,
+ 0x6f, 0x07, 0x8c, 0x95, 0xcf, 0x62, 0x9b, 0xbc, 0x28, 0x2b, 0x74, 0xd1,
+ 0x2a, 0x2d, 0xf0, 0xb0,
+ 0x7d, 0x27, 0xc3, 0xe0, 0xfc, 0xe7, 0xae, 0x1d, 0xb1, 0x65, 0xc6, 0xf8,
+ 0x29, 0x0e, 0x20, 0xcb,
+ 0xd4, 0xd9, 0xf0, 0x5a, 0xc0, 0x9d, 0x2b, 0xf6, 0x05, 0x3d, 0xef, 0xb3,
+ 0x94, 0x4d, 0x1e, 0x16,
+ 0xbd, 0x93, 0x65, 0x1f, 0xc5, 0xc8, 0xfa, 0x71, 0x1e, 0x8e, 0x27, 0x2c,
+ 0xfe, 0x6d, 0x44, 0x74,
+ 0x86, 0x95, 0xdd, 0x7a, 0xe4, 0xbc, 0x93, 0x73, 0xf9, 0x2a, 0x02, 0xd6,
+ 0xda, 0x4f, 0x53, 0xb9,
+ 0xec, 0x18, 0xa5, 0x57, 0x84, 0x13, 0x67, 0x08, 0x1a, 0xd5, 0x94, 0x6e,
+ 0x90, 0x88, 0x5c, 0xb2,
+ 0x32, 0x16, 0x7e, 0xbe, 0xd9, 0xd7, 0x92, 0xb3, 0x4a, 0x83, 0x7c, 0x0f,
+ 0xc4, 0xd2, 0x7f, 0x11,
+ 0x7e, 0xe0, 0x2e, 0x88, 0x99, 0x1d, 0x8b, 0xe1, 0x49, 0x29, 0x98, 0xdf,
+ 0x09, 0xe9, 0x75, 0xa2,
+ 0xed, 0xe4, 0xfe, 0xce, 0xa7, 0x45, 0xc5, 0x5c, 0xf3, 0x50, 0x1f, 0x73,
+ 0x31, 0xd5, 0x6f, 0x95,
+ 0x6e, 0xfb, 0xd7, 0x0c, 0xec, 0x34, 0x39, 0xe8, 0xc1, 0xae, 0xff, 0xcc,
+ 0x8b, 0x70, 0xc3, 0x97,
+ 0xc3, 0x73, 0x4b, 0x97, 0x5c, 0xd5, 0x71, 0x90, 0x57, 0xa7, 0xbf, 0xf3,
+ 0xf7, 0x84, 0x31, 0xd6,
+ 0x21, 0xca, 0x6a, 0x52, 0xc9, 0x04, 0x05, 0x46, 0x3a, 0x48, 0x45, 0x3b,
+ 0x66, 0xac, 0x9c, 0x4d,
+ 0x62, 0x61, 0xe5, 0x6f, 0xbb, 0x5a, 0xad, 0x9e, 0xa7, 0x5d, 0x44, 0x50,
+ 0x0b, 0x6a, 0x54, 0xf0,
+ 0xce, 0x15, 0x22, 0x6d, 0x28, 0xed, 0x47, 0xb2, 0xd8, 0xd1, 0x8f, 0x72,
+ 0xd6, 0xc3, 0x95, 0x96,
+ 0x93, 0x04, 0xd0, 0x46, 0x3e, 0x58, 0x4e, 0xbd, 0xba, 0x79, 0x87, 0xac,
+ 0x38, 0x3c, 0x1a, 0x37,
+ 0x4c, 0xf6, 0x50, 0x36, 0x40, 0xca, 0x19, 0x52, 0x03, 0xaa, 0xe4, 0xd0,
+ 0xcd, 0x3b, 0x0a, 0xb3,
+ 0xde, 0x0e, 0xdb, 0xe9, 0x5d, 0xc4, 0xf5, 0xbb, 0x50, 0x56, 0xe8, 0x61,
+ 0x54, 0x5a, 0x23, 0xa3,
+ 0x3f, 0x70, 0x17, 0x44, 0xad, 0xef, 0xa4, 0x91, 0xc5, 0xf5, 0x4c, 0x8e,
+ 0xe5, 0x95, 0xdb, 0x51,
+ 0x43, 0xab, 0x8f, 0x3d, 0x72, 0x5e, 0xa8, 0xd8, 0x9d, 0x15, 0x01, 0x6b,
+ 0x6d, 0xc6, 0xc8, 0xbd,
+ 0x73, 0x86, 0x47, 0x72, 0xed, 0x25, 0xbd, 0xc3, 0xc6, 0x5f, 0xa8, 0x5e,
+ 0x28, 0xae, 0xd1, 0xe2,
+ 0xad, 0x88, 0x9c, 0x9b, 0xb0, 0xe1, 0x48, 0x78, 0x96, 0x09, 0x40, 0x3f,
+ 0x7c, 0xf4, 0xf2, 0x41,
+ 0xf0, 0x99, 0x6e, 0xb0, 0xa6, 0x54, 0x41, 0x77, 0xf4, 0xa1, 0x48, 0xe1,
+ 0x92, 0x0b, 0x7d, 0xe0,
+ 0x47, 0xdd, 0x20, 0x1c, 0xfe, 0xc5, 0x65, 0x4b, 0xbf, 0x44, 0x68, 0x1f,
+ 0xac, 0x71, 0x04, 0x21,
+ 0x3c, 0xb7, 0xfa, 0x2c, 0xc8, 0x15, 0x81, 0x6d, 0x3d, 0xb9, 0x12, 0xa9,
+ 0xc5, 0x72, 0x8e, 0x38,
+ 0x61, 0xa6, 0x08, 0x07, 0xde, 0xa0, 0x88, 0x62, 0x5f, 0x11, 0x1a, 0x77,
+ 0x2b, 0x8d, 0x01, 0x99,
+ 0x56, 0x3a, 0x82, 0x01, 0xa8, 0xba, 0x75, 0x16, 0xde, 0x46, 0x84, 0x11,
+ 0x8f, 0xb5, 0x81, 0x33,
+ 0x29, 0x26, 0xf7, 0x10, 0x12, 0xf1, 0x5c, 0xa3, 0x7e, 0xea, 0x97, 0xd3,
+ 0x27, 0x01, 0xc7, 0xb6,
+ 0x7b, 0x6a, 0xda, 0x30, 0x36, 0xd0, 0xe4, 0x26, 0x82, 0xfd, 0x7a, 0xb6,
+ 0x69, 0x03, 0x8a, 0x19,
+ 0x10, 0x1b, 0xf9, 0x84, 0x75, 0x29, 0xb2, 0x09, 0x88, 0x87, 0x67, 0x13,
+ 0x82, 0x99, 0xb6, 0x35,
+ 0xff, 0xc4, 0xb1, 0xbb, 0x94, 0xc0, 0xf0, 0xfd, 0x6a, 0x1e, 0xad, 0x5a,
+ 0x32, 0xf6, 0xbf, 0xee,
+ 0x5d, 0x11, 0xf2, 0x2b, 0x16, 0xb5, 0x09, 0x0f, 0x62, 0xa8, 0x08, 0xde,
+ 0xee, 0xff, 0x8f, 0xa1,
+ 0x31, 0xd1, 0x93, 0xd6, 0xbc, 0x2d, 0xb7, 0x4f, 0xb2, 0xcf, 0x22, 0x28,
+ 0xe4, 0x35, 0x2a, 0x78,
+ 0xb7, 0x44, 0x4e, 0xac, 0x58, 0x91, 0x24, 0x3c, 0x4b, 0xe5, 0x20, 0xfe,
+ 0x3e, 0x7a, 0x79, 0xc1,
+ 0xb3, 0x32, 0xe1, 0x8d, 0xd4, 0x0a, 0xe9, 0xaf, 0x69, 0xb4, 0x49, 0x8a,
+ 0xff, 0xcd, 0xb5, 0x5d,
+ 0x6b, 0x71, 0x23, 0xb4, 0x43, 0xf9, 0x56, 0x2f, 0x0a, 0x7a, 0x1d, 0xa5,
+ 0xeb, 0x9a, 0x3c, 0x2c,
+ 0xc0, 0xb4, 0xa6, 0xff, 0x39, 0x2f, 0x54, 0x6c, 0xaf, 0xeb, 0xe1, 0xd4,
+ 0xd7, 0x63, 0x64, 0xbf,
+ 0x7f, 0x1c, 0x75, 0x11, 0xba, 0x4b, 0x29, 0xb5, 0xa0, 0xac, 0x13, 0xc2,
+ 0xa8, 0xb4, 0x46, 0x85,
+ 0x1e, 0xba, 0x7d, 0x16, 0x64, 0xeb, 0xa1, 0xd7, 0xff, 0xbd, 0x09, 0xb5,
+ 0x83, 0x39, 0x47, 0x1c,
+ 0xd1, 0x53, 0x04, 0xe2, 0x6f, 0x50, 0x44, 0x31, 0xce, 0xe9, 0x0d, 0xda,
+ 0xf4, 0xa7, 0xe1, 0xad,
+ 0x78, 0xad, 0x37, 0x58, 0x53, 0x2a, 0xc1, 0xda, 0x7a, 0xb1, 0x24, 0x91,
+ 0x49, 0xe4, 0xdf, 0x70,
+ 0xc2, 0x8f, 0x10, 0x0e, 0x7f, 0x83, 0xd3, 0xc4, 0xbe, 0x22, 0x34, 0xee,
+ 0x56, 0xd9, 0x02, 0xf1,
+ 0xbb, 0xde, 0x7c, 0xcf, 0x0f, 0xff, 0xb0, 0x4a, 0x2d, 0x16, 0x9b, 0x62,
+ 0xbe, 0x60, 0xee, 0xa6,
+ 0x6d, 0x3c, 0x3a, 0x64, 0x89, 0xce, 0x1c, 0x14, 0x39, 0xe2, 0xa1, 0xeb,
+ 0xab, 0x97, 0x96, 0xfe,
+ 0xe1, 0x7e, 0xcc, 0xad, 0xf0, 0x2b, 0x51, 0x2a, 0x95, 0xa3, 0xa4, 0xef,
+ 0xb1, 0xcf, 0xf8, 0xf2,
+ 0x1f, 0x46, 0x26, 0x8f, 0x47, 0xbd, 0x03, 0x83, 0x16, 0x38, 0x82, 0xa8,
+ 0x22, 0x64, 0x74, 0x3b,
+ 0x82, 0xe3, 0x72, 0x5b, 0x68, 0x27, 0x5e, 0xe0, 0xdb, 0x7b, 0x6b, 0xa2,
+ 0x1b, 0xf8, 0x9f, 0x25,
+ 0xba, 0x22, 0x27, 0x56, 0x2c, 0xa9, 0x12, 0x1e, 0xc4, 0x93, 0x10, 0x7f,
+ 0x1f, 0x3d, 0xdd, 0x81,
+ 0x8c, 0x42, 0xf6, 0xc9, 0x79, 0xe5, 0x4d, 0x3e, 0xac, 0x41, 0x05, 0x04,
+ 0x1a, 0x58, 0x6e, 0x0c,
+ 0xcf, 0xe9, 0x79, 0xf4, 0x0b, 0xbb, 0xe5, 0xe6, 0x31, 0x54, 0x04, 0x6f,
+ 0x77, 0x9e, 0xa6, 0xb1,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0x38, 0xea, 0x22, 0xb7, 0x96, 0x52, 0xa9, 0x83, 0x9b, 0x26, 0x47,
+ 0x93, 0xab, 0x8c, 0xc9,
+ 0x42, 0x57, 0xd4, 0xa4, 0x51, 0x08, 0x0a, 0x8c, 0x74, 0x90, 0x8a, 0x76,
+ 0xcc, 0x9b, 0xfb, 0x9a,
+ 0xd6, 0xe2, 0x46, 0xab, 0x86, 0x31, 0xac, 0x5e, 0x14, 0xf4, 0x3a, 0x89,
+ 0x15, 0xf7, 0x78, 0x58,
+ },
+ { /* 7 */
+ 0xa5, 0x9d, 0x85, 0x46, 0x8a, 0x0e, 0x61, 0xc4, 0x42, 0xe7, 0xb4, 0xca,
+ 0xc0, 0x3d, 0xf4, 0xe8,
+ 0x2d, 0x30, 0x7c, 0xb1, 0xb2, 0x96, 0xab, 0x86, 0x12, 0x3f, 0xbc, 0x10,
+ 0x25, 0xe6, 0x1e, 0xf1,
+ 0x32, 0xb3, 0x29, 0xf1, 0xe6, 0xb1, 0x53, 0x61, 0xca, 0xf8, 0xa0, 0xd0,
+ 0x5a, 0xc4, 0x96, 0x37,
+ 0x8f, 0xc2, 0x69, 0x55, 0xf0, 0x82, 0xf2, 0x7d, 0x39, 0xb6, 0xe7, 0xff,
+ 0x11, 0x3a, 0xe8, 0x2f,
+ 0x0e, 0xde, 0xe3, 0x87, 0x53, 0x34, 0x70, 0x7e, 0xd2, 0xdc, 0x1d, 0x4a,
+ 0x2b, 0x01, 0x04, 0x6c,
+ 0x30, 0x1b, 0x49, 0x07, 0xfb, 0x7a, 0x43, 0x73, 0xa1, 0x91, 0x25, 0x09,
+ 0xd5, 0x45, 0xd7, 0x23,
+ 0x38, 0xfe, 0x0a, 0x59, 0x8f, 0xd0, 0x03, 0x3b, 0xce, 0xf6, 0x74, 0xeb,
+ 0xac, 0x04, 0x10, 0x73,
+ 0xc0, 0x6c, 0xe7, 0x1c, 0x6a, 0x2b, 0xcf, 0x0f, 0xc1, 0x01, 0x94, 0x24,
+ 0xd2, 0xd7, 0xda, 0x8c,
+ 0x54, 0xbe, 0x1b, 0x26, 0xf4, 0xdb, 0xe5, 0xb1, 0xf6, 0xa2, 0xa6, 0x6a,
+ 0x61, 0x0e, 0x38, 0x4d,
+ 0xe6, 0x45, 0x88, 0x7e, 0x5e, 0x58, 0x3c, 0xda, 0x03, 0xe5, 0x5f, 0x82,
+ 0xa7, 0x50, 0x83, 0x33,
+ 0x9e, 0x9f, 0xdf, 0x92, 0xf7, 0x91, 0x7a, 0xe4, 0x33, 0xad, 0xe6, 0x75,
+ 0x45, 0x19, 0x64, 0x85,
+ 0x39, 0xaa, 0x3a, 0x22, 0x60, 0x54, 0x0b, 0x32, 0x1a, 0x23, 0xd7, 0x66,
+ 0x0a, 0xa5, 0xd1, 0x79,
+ 0x55, 0xea, 0x2b, 0x5d, 0x1b, 0x5f, 0xed, 0xb8, 0x22, 0x77, 0x05, 0xe7,
+ 0xc7, 0xaf, 0xf9, 0x47,
+ 0x7e, 0xe1, 0xf7, 0x35, 0x8e, 0x57, 0x76, 0x08, 0x8d, 0xf3, 0xf5, 0x5f,
+ 0xb0, 0x09, 0x24, 0x8a,
+ 0x52, 0x85, 0xbb, 0xff, 0xd3, 0x45, 0xd5, 0x87, 0x4b, 0x19, 0xea, 0xc2,
+ 0x33, 0x4e, 0xfb, 0x71,
+ 0x91, 0x15, 0x0c, 0x6e, 0x4b, 0x21, 0x02, 0x93, 0x35, 0xa4, 0x58, 0xb2,
+ 0xc8, 0xb9, 0xa1, 0xe3,
+ 0x64, 0xa5, 0x52, 0x21, 0x0f, 0xa1, 0xa6, 0xc2, 0x57, 0x33, 0x83, 0x63,
+ 0xb4, 0x4b, 0xef, 0x6e,
+ 0x03, 0xfc, 0x50, 0x8d, 0xf2, 0x4f, 0x18, 0x1b, 0xbf, 0xbc, 0x26, 0x54,
+ 0x29, 0x20, 0x80, 0x1e,
+ 0x57, 0x42, 0x4b, 0xab, 0x06, 0x94, 0xfd, 0xaa, 0x49, 0x1e, 0x80, 0x3e,
+ 0x48, 0x2e, 0xb8, 0x53,
+ 0x5a, 0x60, 0xf8, 0xa1, 0xa7, 0xef, 0x95, 0xcf, 0x24, 0x7e, 0xbb, 0x20,
+ 0x4a, 0x0f, 0x3c, 0x21,
+ 0x1c, 0x7f, 0x05, 0xcd, 0xa6, 0x68, 0xe0, 0xfc, 0x67, 0x7b, 0x3a, 0x94,
+ 0x56, 0x02, 0x08, 0xd8,
+ 0x60, 0x36, 0x92, 0x0e, 0x35, 0xf4, 0x86, 0xe6, 0x81, 0xe1, 0x4a, 0x12,
+ 0x69, 0x8a, 0x6d, 0x46,
+ 0x07, 0x6f, 0x90, 0xa2, 0xc8, 0x1a, 0x38, 0x3f, 0x69, 0x6e, 0xef, 0x25,
+ 0xf4, 0xe1, 0x02, 0x36,
+ 0x18, 0xec, 0xc5, 0xe2, 0x9c, 0x3d, 0xc0, 0xd8, 0xb1, 0xa9, 0xf3, 0xe5,
+ 0x8b, 0xc3, 0x8a, 0xf0,
+ 0x21, 0x46, 0xff, 0xc0, 0xfc, 0x69, 0xcb, 0xea, 0xab, 0x8a, 0x24, 0x83,
+ 0x81, 0x66, 0x5b, 0x89,
+ 0x72, 0x97, 0x74, 0x44, 0xc0, 0xa8, 0x16, 0x64, 0x34, 0x46, 0x6d, 0xcc,
+ 0x14, 0x89, 0x61, 0xf2,
+ 0xa8, 0xbf, 0x36, 0x4c, 0x2b, 0x75, 0x09, 0xa1, 0x2f, 0x87, 0x8f, 0xd4,
+ 0xc2, 0x1c, 0x70, 0x9a,
+ 0xd1, 0x31, 0x51, 0xdb, 0x6d, 0x38, 0x47, 0x96, 0xcb, 0x1a, 0x95, 0xae,
+ 0x86, 0xf4, 0x56, 0x26,
+ 0x29, 0xa3, 0xbc, 0x9e, 0x88, 0xc3, 0x8b, 0xa2, 0xc4, 0xed, 0x75, 0x61,
+ 0xf8, 0x27, 0x9c, 0xd9,
+ 0xc6, 0x57, 0x47, 0xc5, 0x4d, 0xb5, 0xff, 0x39, 0x7c, 0xba, 0xd8, 0x8c,
+ 0x80, 0x97, 0x19, 0xb0,
+ 0xa4, 0xc9, 0xb5, 0x3d, 0x65, 0x8a, 0x69, 0xcd, 0x96, 0x32, 0x17, 0x47,
+ 0x66, 0x9c, 0x35, 0xe2,
+ 0x3f, 0x91, 0x9a, 0xfb, 0x47, 0xca, 0x3b, 0x04, 0xa7, 0x98, 0x9b, 0xce,
+ 0x58, 0xe5, 0x12, 0x45,
+ 0xe0, 0x7e, 0x28, 0xa7, 0x79, 0xc6, 0x0c, 0xec, 0xbe, 0x5e, 0x13, 0x2a,
+ 0xf5, 0x10, 0x40, 0x0f,
+ 0x27, 0x7d, 0x5f, 0x19, 0xdb, 0xf7, 0xfb, 0xdc, 0x16, 0x31, 0x68, 0x2b,
+ 0xd3, 0x26, 0x98, 0xb5,
+ 0x8d, 0x6a, 0x09, 0xa3, 0xed, 0x49, 0xe2, 0x6f, 0x52, 0xdf, 0x62, 0x26,
+ 0x9e, 0xbb, 0xa9, 0x3b,
+ 0x0c, 0x76, 0x83, 0x71, 0x4e, 0xff, 0x60, 0x6c, 0xb9, 0xb5, 0x98, 0x93,
+ 0xa4, 0x80, 0x45, 0x78,
+ 0x82, 0xe0, 0xda, 0x5f, 0x51, 0xf9, 0x9a, 0x18, 0x54, 0xd6, 0xdc, 0xe1,
+ 0x13, 0x1b, 0x6c, 0x5d,
+ 0xea, 0x33, 0x0b, 0x0f, 0x10, 0xa7, 0x5c, 0xb6, 0xba, 0x50, 0xc7, 0x11,
+ 0x03, 0xd0, 0xc6, 0x4b,
+ 0xae, 0x84, 0x96, 0x95, 0x0c, 0xeb, 0x39, 0x97, 0x92, 0x3c, 0xc3, 0x7c,
+ 0x90, 0x5c, 0xb3, 0xa6,
+ 0xb4, 0xc0, 0x33, 0x81, 0x8d, 0x1d, 0xe9, 0x5d, 0x48, 0xfc, 0xb5, 0x40,
+ 0x94, 0x1e, 0x78, 0x42,
+ 0x9a, 0x0c, 0x1f, 0xbd, 0xcd, 0xc4, 0x5a, 0xc0, 0xe5, 0x7f, 0x2f, 0x04,
+ 0x98, 0xd8, 0xe6, 0xad,
+ 0x63, 0xca, 0xc2, 0x83, 0xc7, 0xbb, 0x9e, 0xfd, 0x3e, 0x5d, 0x6c, 0x46,
+ 0x40, 0xaa, 0xed, 0x58,
+ 0x49, 0x95, 0x2e, 0x90, 0xbd, 0x37, 0x0d, 0x44, 0x45, 0x0c, 0x3f, 0x73,
+ 0x91, 0xad, 0xf1, 0x9f,
+ 0xe5, 0xb9, 0xd8, 0xf3, 0xac, 0x17, 0x24, 0xc1, 0xbc, 0x59, 0x79, 0xd6,
+ 0x8e, 0x70, 0x03, 0x2d,
+ 0x42, 0x8c, 0x3d, 0x43, 0x3b, 0xd2, 0x55, 0x17, 0x95, 0xd7, 0x48, 0xc5,
+ 0xc1, 0xcc, 0xb6, 0xd1,
+ 0xe4, 0xed, 0xe8, 0x88, 0x43, 0x93, 0x2c, 0xc8, 0x68, 0x8c, 0xda, 0x5b,
+ 0x28, 0xd1, 0xc2, 0x27,
+ 0x15, 0xce, 0x76, 0xe8, 0x3d, 0x46, 0xa8, 0xbd, 0xdc, 0xc9, 0xc8, 0xfb,
+ 0x89, 0xe2, 0x0e, 0x82,
+ 0xb7, 0x3c, 0x63, 0x0c, 0x7f, 0x52, 0xf1, 0x46, 0xf7, 0x40, 0x93, 0x14,
+ 0xbd, 0x3e, 0xf8, 0x5c,
+ 0xc8, 0x89, 0xa4, 0x42, 0x1e, 0x81, 0x8f, 0x47, 0xae, 0x66, 0xc5, 0xc6,
+ 0xab, 0x96, 0x1d, 0xdc,
+ 0x06, 0x3b, 0xa0, 0xd9, 0x27, 0x9e, 0x30, 0x36, 0xbd, 0xbb, 0x4c, 0xa8,
+ 0x52, 0x40, 0xc3, 0x3c,
+ 0x70, 0x3f, 0x14, 0xb2, 0xdd, 0x63, 0x06, 0x76, 0x5f, 0x2f, 0xe8, 0x15,
+ 0x9b, 0x08, 0x20, 0xe6,
+ 0x9d, 0x63, 0x8f, 0x1f, 0x05, 0xde, 0x62, 0xff, 0x8c, 0x11, 0xc0, 0x21,
+ 0x6c, 0x39, 0xe4, 0x9b,
+ 0x41, 0x70, 0x6d, 0xce, 0xc9, 0x9d, 0x4d, 0x0c, 0x2a, 0x6b, 0x6e, 0x91,
+ 0xe8, 0xec, 0x36, 0xcf,
+ 0x75, 0xf8, 0xe4, 0xe6, 0x08, 0xb2, 0x2e, 0x5b, 0x5d, 0x28, 0x82, 0xe9,
+ 0xe0, 0x68, 0x63, 0xc4,
+ 0x19, 0xb8, 0xf5, 0x99, 0x73, 0xb9, 0xc8, 0xd1, 0x65, 0x7c, 0x50, 0x68,
+ 0x2d, 0x62, 0x4b, 0xfa,
+ 0xc9, 0xdd, 0x94, 0x39, 0xf1, 0x05, 0x87, 0x4e, 0x7a, 0xb3, 0x66, 0x4b,
+ 0x0d, 0x37, 0xdc, 0xd6,
+ 0xaa, 0x17, 0x56, 0xba, 0x36, 0xbe, 0x19, 0xb3, 0x44, 0xee, 0x0a, 0x0d,
+ 0x4d, 0x9d, 0x31, 0x8e,
+ 0xfc, 0x01, 0x2d, 0x6a, 0xdf, 0xae, 0xec, 0x10, 0xd9, 0x25, 0x29, 0xbe,
+ 0xa3, 0x12, 0x48, 0xd7,
+ 0x4d, 0x06, 0xee, 0xbf, 0x87, 0x62, 0x2d, 0x60, 0x93, 0xde, 0xf6, 0x02,
+ 0x4c, 0x6c, 0x73, 0xb7,
+ 0xbf, 0xd9, 0x20, 0x52, 0x0b, 0xf8, 0xb1, 0x0e, 0x98, 0x27, 0xc2, 0xf6,
+ 0xc4, 0x7f, 0x3f, 0x0c,
+ 0x2a, 0x5f, 0xec, 0x13, 0x7a, 0x8c, 0x93, 0xb9, 0x7b, 0x51, 0x53, 0x35,
+ 0xd1, 0x07, 0x1c, 0xc7,
+ 0x73, 0xc3, 0x44, 0x3f, 0x2f, 0x2c, 0x1e, 0x6d, 0xe0, 0x93, 0xce, 0x41,
+ 0xb2, 0x28, 0xa0, 0xf8,
+ 0x84, 0xdb, 0x7a, 0x86, 0x76, 0x67, 0xaa, 0x2e, 0xe9, 0x6d, 0x90, 0x49,
+ 0x41, 0x5b, 0xaf, 0x61,
+ 0xd5, 0xa2, 0x91, 0xf4, 0x57, 0x6d, 0x67, 0xb2, 0x1d, 0xc8, 0x5c, 0xdf,
+ 0x5b, 0x35, 0xd4, 0x0e,
+ 0xc3, 0x90, 0xb7, 0x91, 0x98, 0x64, 0xd7, 0x14, 0x7e, 0xbd, 0xb2, 0x70,
+ 0xfb, 0xf7, 0x5a, 0x92,
+ 0xaf, 0xd0, 0xa6, 0xee, 0xe3, 0x6f, 0x31, 0x9e, 0x46, 0xe9, 0x60, 0xf1,
+ 0x36, 0xfd, 0x72, 0xac,
+ 0x2b, 0x0b, 0xdc, 0x68, 0x95, 0x08, 0x9b, 0xb0, 0xaf, 0x84, 0xf0, 0xb8,
+ 0x77, 0xa6, 0xdd, 0xcd,
+ 0x86, 0x73, 0x1a, 0x70, 0x6b, 0xac, 0xba, 0x3c, 0x82, 0x04, 0x15, 0x90,
+ 0xce, 0xda, 0xee, 0x75,
+ 0xa7, 0x35, 0xe5, 0xb0, 0x97, 0xc5, 0x71, 0xd6, 0x29, 0x8e, 0x31, 0x13,
+ 0x4f, 0xbc, 0xb5, 0xfc,
+ 0xb1, 0x07, 0xc3, 0xd5, 0x58, 0xcc, 0xc1, 0x70, 0x4a, 0xfb, 0xdf, 0xbc,
+ 0xef, 0x7e, 0x3b, 0x60,
+ 0xb2, 0xfb, 0x93, 0x58, 0xaa, 0x83, 0xd9, 0x6b, 0xf5, 0x47, 0xf9, 0xe8,
+ 0xc6, 0x5e, 0xbb, 0x7e,
+ 0x5b, 0x34, 0xc8, 0xda, 0x48, 0x6b, 0x9d, 0xc6, 0xf0, 0xab, 0x18, 0xad,
+ 0xec, 0xae, 0xfd, 0x2b,
+ 0x46, 0x1f, 0xfd, 0x6c, 0x01, 0x87, 0x75, 0x33, 0x43, 0x05, 0x81, 0xb4,
+ 0x1c, 0x0d, 0x34, 0xf9,
+ 0xd3, 0x99, 0x31, 0x2d, 0x70, 0xf3, 0x57, 0x84, 0xa0, 0x73, 0x10, 0x77,
+ 0x09, 0x75, 0x17, 0x32,
+ 0x9f, 0xcb, 0xef, 0xe9, 0x18, 0x15, 0x72, 0xed, 0xe7, 0x78, 0x45, 0xf8,
+ 0xe3, 0xb8, 0xa5, 0x8f,
+ 0xfd, 0x55, 0x1d, 0x11, 0x30, 0x2a, 0xe4, 0x19, 0x0d, 0xf0, 0x8a, 0x33,
+ 0x05, 0xb3, 0x89, 0xdd,
+ 0xd4, 0xf6, 0xa1, 0x8f, 0xb8, 0xe9, 0x6f, 0xbb, 0xc9, 0x1d, 0xff, 0x52,
+ 0xfd, 0x94, 0x15, 0x04,
+ 0x0f, 0x8a, 0xd3, 0xfc, 0xbc, 0xb0, 0x78, 0x77, 0x06, 0x09, 0xbe, 0xc7,
+ 0x8d, 0xa0, 0xc5, 0x66,
+ 0x9c, 0x37, 0xbf, 0x64, 0xea, 0x5a, 0x6a, 0xf6, 0x58, 0xc4, 0x63, 0xac,
+ 0xca, 0x98, 0x25, 0x91,
+ 0x2f, 0x98, 0x1c, 0x47, 0xaf, 0x5d, 0xbb, 0x94, 0x79, 0x56, 0x39, 0xc9,
+ 0xaa, 0x67, 0x5f, 0xe5,
+ 0x9b, 0x58, 0x2f, 0xc6, 0x22, 0x40, 0x52, 0xc9, 0x31, 0xaa, 0x8c, 0x89,
+ 0x3e, 0x79, 0x27, 0xa7,
+ 0x43, 0xd8, 0x0d, 0x38, 0xd4, 0x56, 0x5d, 0x1e, 0x41, 0x02, 0xeb, 0x48,
+ 0x67, 0x6d, 0x77, 0xdb,
+ 0xef, 0xf4, 0xfb, 0x5b, 0xc5, 0x76, 0x74, 0x9b, 0xb8, 0x57, 0xad, 0xed,
+ 0x78, 0xb0, 0x85, 0x69,
+ 0xd9, 0xd4, 0x12, 0x85, 0x19, 0x92, 0x07, 0xde, 0xa4, 0x7d, 0xc4, 0x4c,
+ 0xff, 0xb5, 0x91, 0x76,
+ 0x79, 0x8e, 0x67, 0x97, 0x46, 0x4d, 0x4e, 0x37, 0xe4, 0x9d, 0x1a, 0x7a,
+ 0x44, 0xe8, 0x26, 0xbc,
+ 0xb6, 0x68, 0x53, 0x77, 0x90, 0xd6, 0xf9, 0x4f, 0x23, 0x95, 0x30, 0x99,
+ 0x1b, 0x9f, 0x39, 0x56,
+ 0x53, 0xd1, 0x8b, 0x84, 0x3c, 0xc1, 0xdd, 0x8e, 0x9f, 0xcc, 0x49, 0x4f,
+ 0x95, 0xef, 0x3a, 0x7b,
+ 0x7f, 0xb5, 0xc7, 0x4e, 0x61, 0xd3, 0x7e, 0x01, 0x59, 0x26, 0x56, 0xd2,
+ 0x16, 0xa8, 0xe5, 0x80,
+ 0xc1, 0x38, 0xd7, 0x67, 0x85, 0xaf, 0xc7, 0x06, 0x15, 0xd4, 0x37, 0xa9,
+ 0x74, 0x76, 0x1b, 0x86,
+ 0xf0, 0x77, 0xae, 0x1b, 0x91, 0x51, 0x8c, 0x7c, 0x60, 0x90, 0xb1, 0x2d,
+ 0x07, 0x92, 0x0d, 0xaf,
+ 0x23, 0xee, 0x9f, 0x36, 0xe1, 0xa2, 0xdb, 0xf8, 0xc0, 0xe3, 0xa1, 0x5a,
+ 0x0e, 0xe7, 0x1a, 0x9d,
+ 0xe7, 0x11, 0xb8, 0x05, 0xb1, 0xdc, 0x34, 0xd3, 0xd7, 0x30, 0xfc, 0x0f,
+ 0x01, 0xf1, 0x42, 0x39,
+ 0x25, 0xd5, 0x3f, 0xef, 0xc6, 0x3c, 0xeb, 0xce, 0x7d, 0x58, 0xed, 0xf2,
+ 0x5c, 0xa7, 0xd9, 0xa1,
+ 0x5e, 0xf3, 0x38, 0x8e, 0x9d, 0xba, 0xb5, 0xeb, 0xf2, 0xac, 0x72, 0x51,
+ 0x97, 0xce, 0xbe, 0x09,
+ 0xb5, 0x94, 0x03, 0xfa, 0x62, 0x99, 0xe1, 0x54, 0x9c, 0x29, 0x16, 0xcd,
+ 0x32, 0xbf, 0xb9, 0x48,
+ 0x1e, 0xd7, 0x65, 0x3b, 0xbb, 0xa3, 0xf0, 0xee, 0x0c, 0x12, 0xbf, 0x4d,
+ 0xd9, 0x83, 0x49, 0xcc,
+ 0xa2, 0xf2, 0x15, 0xe4, 0x42, 0x14, 0x59, 0xfb, 0x2b, 0x89, 0x5b, 0xef,
+ 0x34, 0xdc, 0xf6, 0xde,
+ 0xdf, 0xef, 0xb2, 0x5c, 0x3e, 0x0c, 0x37, 0xe8, 0x19, 0xc6, 0x88, 0xe4,
+ 0xad, 0xf5, 0x52, 0x4a,
+ 0xa6, 0x61, 0xd5, 0xcb, 0x78, 0x41, 0x79, 0xdf, 0xfd, 0x5b, 0x92, 0x9e,
+ 0xe9, 0x1d, 0x74, 0xf6,
+ 0xfe, 0xa9, 0x4d, 0x9c, 0xc2, 0x65, 0xfc, 0x02, 0xb2, 0x4c, 0xac, 0x67,
+ 0x2c, 0x93, 0x09, 0xc3,
+ 0xac, 0x2c, 0xf6, 0x63, 0x11, 0x20, 0x29, 0x85, 0xf9, 0x55, 0x46, 0xa5,
+ 0x1f, 0xdd, 0xf2, 0xb2,
+ 0x22, 0xba, 0xaf, 0x4d, 0x0e, 0x26, 0xd3, 0xf1, 0x14, 0x36, 0x02, 0xd7,
+ 0xa8, 0x46, 0xdb, 0x97,
+ 0xf9, 0xc6, 0xdd, 0x3e, 0x0a, 0x7f, 0xc4, 0x3d, 0xdb, 0x22, 0x43, 0x42,
+ 0xd8, 0x72, 0x0b, 0xf5,
+ 0xe2, 0xd6, 0x48, 0x51, 0x64, 0x0d, 0x1c, 0xfe, 0xd5, 0x37, 0x96, 0xf3,
+ 0x7a, 0x91, 0x01, 0x1b,
+ 0x4a, 0x69, 0x7e, 0x1d, 0x4f, 0x78, 0x15, 0x5f, 0xfa, 0xb0, 0x19, 0x27,
+ 0xb8, 0x8d, 0x71, 0x81,
+ 0xbc, 0x25, 0x70, 0xdf, 0xf9, 0xb7, 0xa9, 0x15, 0x27, 0x9b, 0xe4, 0xa2,
+ 0xed, 0x5f, 0xbf, 0x12,
+ 0x35, 0xdc, 0xb9, 0x53, 0x2e, 0xab, 0x6b, 0x5e, 0xa3, 0x96, 0x4f, 0xf5,
+ 0xae, 0x25, 0x94, 0x01,
+ 0xca, 0x21, 0xc4, 0xb4, 0x03, 0x4a, 0x9f, 0x55, 0xc5, 0x0f, 0x40, 0x1f,
+ 0x24, 0x17, 0x5c, 0xc8,
+ 0xee, 0xa0, 0xcb, 0x20, 0x2a, 0xf2, 0x7c, 0x92, 0x6c, 0x82, 0x0e, 0x60,
+ 0xde, 0x11, 0x44, 0x63,
+ 0x78, 0xda, 0x57, 0xec, 0xa9, 0xc9, 0x46, 0x3e, 0x30, 0x48, 0xb9, 0xf7,
+ 0xe2, 0x49, 0xe7, 0xb6,
+ 0x05, 0xc7, 0xf0, 0x54, 0xd5, 0xd1, 0x28, 0x2d, 0x02, 0x07, 0x6a, 0xfc,
+ 0x7b, 0x60, 0x43, 0x22,
+ 0x6b, 0x2f, 0x81, 0xdd, 0xb3, 0x11, 0xde, 0xb5, 0x51, 0x3a, 0x3d, 0xa4,
+ 0x39, 0xeb, 0x2a, 0x08,
+ 0x51, 0x79, 0xeb, 0x72, 0x21, 0x0a, 0xcd, 0x9c, 0xf4, 0xa5, 0xcc, 0x96,
+ 0x1a, 0x6e, 0x7b, 0x6f,
+ 0xe1, 0x2a, 0x18, 0xdc, 0x96, 0x42, 0x04, 0xe5, 0x6a, 0x8b, 0xb0, 0xa7,
+ 0x53, 0xb1, 0x81, 0x05,
+ 0x59, 0x9c, 0xa8, 0x2c, 0x55, 0xa0, 0x8d, 0xd4, 0x9b, 0xc2, 0x9d, 0x74,
+ 0x63, 0x2f, 0xbc, 0x3f,
+ 0xa3, 0xa6, 0x25, 0x9f, 0xad, 0x90, 0x51, 0xf2, 0xff, 0x5c, 0xf8, 0x62,
+ 0x92, 0x7d, 0x37, 0xd4,
+ 0xf2, 0xdf, 0xce, 0xed, 0x8c, 0x9a, 0x9c, 0x6e, 0x0b, 0xf9, 0x34, 0xf4,
+ 0x88, 0x13, 0x4c, 0xbb,
+ 0x71, 0x6b, 0x24, 0xc9, 0x32, 0xe7, 0x0e, 0x7f, 0x8b, 0xfa, 0x4b, 0x98,
+ 0x3d, 0xa9, 0xe1, 0xec,
+ 0x56, 0x16, 0x7b, 0xd0, 0xe9, 0x10, 0xf5, 0xa3, 0x9d, 0xcb, 0x23, 0xb3,
+ 0xee, 0x8f, 0x79, 0x59,
+ 0x11, 0x5d, 0xb6, 0xc7, 0x07, 0x13, 0x88, 0x99, 0x0a, 0x1b, 0x01, 0x8a,
+ 0x54, 0x23, 0x8c, 0xaa,
+ 0x6a, 0x7b, 0xb1, 0xa6, 0x5c, 0x95, 0xd6, 0xbc, 0x85, 0xef, 0x9e, 0x29,
+ 0x9f, 0x4a, 0xeb, 0x02,
+ 0x89, 0xf9, 0xc9, 0x8c, 0xd7, 0x1c, 0xc2, 0x4b, 0x84, 0x0d, 0xab, 0x57,
+ 0x43, 0x7a, 0x2b, 0x13,
+ 0x94, 0xd2, 0xfc, 0x3a, 0x9e, 0xf0, 0x2a, 0xbe, 0x37, 0xa3, 0x32, 0x4e,
+ 0xb3, 0xd9, 0xe2, 0xc1,
+ 0x65, 0xf1, 0x62, 0x5a, 0xe0, 0x25, 0xae, 0xcb, 0x83, 0xe6, 0x20, 0xee,
+ 0x12, 0xea, 0x2e, 0x64,
+ 0x8c, 0x3e, 0x39, 0xd8, 0x02, 0xcd, 0xea, 0x66, 0x86, 0x0a, 0xc1, 0xab,
+ 0x38, 0x1a, 0x68, 0x31,
+ 0xbb, 0x4a, 0xe0, 0x7d, 0x31, 0xad, 0x91, 0x2a, 0x4e, 0xf5, 0x0b, 0x87,
+ 0x19, 0xbe, 0xbd, 0x24,
+ 0x77, 0x50, 0x84, 0x10, 0x15, 0x79, 0x3e, 0x49, 0x36, 0x41, 0x07, 0x30,
+ 0x6f, 0xe9, 0x22, 0xd0,
+ 0x3c, 0x6d, 0xca, 0x76, 0xb5, 0x85, 0x23, 0x1f, 0x18, 0x24, 0xbd, 0x9a,
+ 0x71, 0xc5, 0x92, 0x5b,
+ 0x7b, 0x26, 0x07, 0x61, 0x5b, 0x86, 0x5e, 0x25, 0x8f, 0xf4, 0x9f, 0xa3,
+ 0xcb, 0x69, 0x67, 0xa8,
+ 0x28, 0xf7, 0x8c, 0xe5, 0x67, 0x47, 0x83, 0xab, 0x10, 0x38, 0xd6, 0xec,
+ 0x5e, 0x86, 0x5d, 0xd3,
+ 0xab, 0x43, 0x66, 0xc1, 0xd9, 0x3a, 0x11, 0xba, 0x90, 0x3b, 0xa9, 0x80,
+ 0xeb, 0x3c, 0xf0, 0x84,
+ 0xd2, 0xcd, 0x01, 0x56, 0x9f, 0x77, 0x5f, 0x8d, 0x74, 0xa6, 0xb3, 0xfa,
+ 0xaf, 0xd4, 0xd6, 0x38,
+ 0x31, 0x4f, 0x79, 0x7c, 0x14, 0xfe, 0x4b, 0x7a, 0x75, 0x44, 0x86, 0x84,
+ 0x73, 0xe4, 0x16, 0x29,
+ 0xde, 0xbb, 0x82, 0x27, 0xd1, 0x88, 0x3f, 0xe1, 0xcd, 0x13, 0x2b, 0x69,
+ 0x0b, 0x54, 0x93, 0x40,
+ 0xc4, 0xff, 0x27, 0x33, 0x50, 0x7e, 0xef, 0x2b, 0x17, 0xd3, 0x5d, 0x55,
+ 0x0f, 0x16, 0x58, 0xa4,
+ 0x5f, 0xa7, 0x08, 0xf5, 0x72, 0x3e, 0xbd, 0xe2, 0x26, 0x79, 0xd1, 0xdc,
+ 0x31, 0x6f, 0x7f, 0x03,
+ 0xcc, 0x1a, 0x64, 0x6d, 0x24, 0xd4, 0xaf, 0x63, 0x78, 0xb4, 0x0c, 0xb7,
+ 0x76, 0x57, 0x9f, 0xf4,
+ 0xcf, 0xe6, 0x34, 0xe0, 0xd6, 0x9b, 0xb7, 0x78, 0xc7, 0x08, 0x2a, 0xe3,
+ 0x5f, 0x77, 0x1f, 0xea,
+ 0x76, 0x04, 0xb4, 0x6b, 0xfa, 0xfd, 0x36, 0x40, 0xe2, 0x94, 0xa4, 0xbd,
+ 0xc9, 0x48, 0xe3, 0xda,
+ 0x2c, 0x64, 0x4c, 0xca, 0x5d, 0x12, 0xa3, 0x8f, 0xc6, 0xea, 0x1f, 0x9d,
+ 0x83, 0x47, 0xdf, 0xfb,
+ 0xb8, 0xb6, 0xb0, 0xf0, 0xc3, 0xe2, 0x89, 0x31, 0xf1, 0x49, 0x2d, 0xd3,
+ 0x30, 0x9e, 0x3d, 0x3a,
+ 0xd8, 0x80, 0x22, 0xfe, 0xf6, 0x16, 0x0f, 0xd7, 0x70, 0xa8, 0x67, 0xc1,
+ 0x59, 0x14, 0x50, 0x7c,
+ 0x2e, 0xcc, 0x2c, 0x3c, 0x40, 0xd9, 0xb3, 0x9d, 0xad, 0x83, 0x9a, 0x44,
+ 0x0c, 0xc6, 0x9e, 0xef,
+ 0x36, 0x20, 0xe9, 0xde, 0xdc, 0xe4, 0x73, 0x45, 0x1c, 0x2a, 0x69, 0xa1,
+ 0x87, 0x05, 0x14, 0x1f,
+ 0xdb, 0x7c, 0x72, 0x73, 0x04, 0x59, 0x17, 0xcc, 0xcf, 0x14, 0x41, 0x95,
+ 0x70, 0x34, 0xd0, 0x62,
+ 0x69, 0x87, 0xe1, 0x2b, 0xae, 0xda, 0xce, 0xa7, 0x3a, 0x53, 0xb8, 0x7d,
+ 0xb6, 0x6a, 0x6b, 0x1c,
+ 0xb3, 0xaf, 0xa3, 0x23, 0x45, 0x07, 0xd1, 0x62, 0x21, 0x92, 0x5a, 0x65,
+ 0x60, 0xff, 0x7a, 0x74,
+ 0x14, 0x9a, 0x46, 0x93, 0xd2, 0xc2, 0xa0, 0xb4, 0x08, 0x1c, 0x6b, 0x76,
+ 0x2f, 0x43, 0xcf, 0x88,
+ 0x95, 0x86, 0xcc, 0x41, 0x71, 0x74, 0x22, 0xb7, 0xe3, 0x76, 0x91, 0xc3,
+ 0x15, 0x78, 0x23, 0xcb,
+ 0xbe, 0x8d, 0x10, 0x29, 0xe4, 0x7c, 0xb9, 0x07, 0x4c, 0xf2, 0x61, 0x7b,
+ 0x62, 0xde, 0xfe, 0x06,
+ 0x62, 0x9e, 0xf2, 0xf8, 0x28, 0x3f, 0x96, 0xf4, 0xea, 0x88, 0xcf, 0xcb,
+ 0xe6, 0x0b, 0x2c, 0x52,
+ 0xa1, 0x0e, 0x45, 0x69, 0xb0, 0x5b, 0x41, 0xe0, 0x94, 0x35, 0x7d, 0xbb,
+ 0x1d, 0xfc, 0x76, 0xc0,
+ 0x3b, 0x02, 0x5a, 0xd4, 0x7d, 0x9f, 0x1b, 0x20, 0x71, 0x4a, 0x52, 0xbf,
+ 0x85, 0x24, 0x90, 0x6d,
+ 0x16, 0x32, 0x26, 0x65, 0xcf, 0x09, 0xb0, 0xa6, 0x63, 0x75, 0xee, 0xaf,
+ 0xa0, 0xc2, 0x8e, 0x9c,
+ 0x66, 0x0d, 0x32, 0xd7, 0x12, 0x6a, 0xb6, 0xd0, 0x3c, 0x5a, 0x06, 0xba,
+ 0x3b, 0xca, 0xae, 0x7a,
+ 0xe9, 0xcf, 0x5b, 0x82, 0xe2, 0xe8, 0x44, 0xad, 0x05, 0xec, 0xe1, 0x45,
+ 0x2a, 0xf0, 0x46, 0x55,
+ 0x5c, 0x5b, 0x58, 0x78, 0x80, 0x71, 0xa5, 0xf9, 0x99, 0xc5, 0xf7, 0x88,
+ 0x18, 0x4f, 0xff, 0x1d,
+ 0x6c, 0x40, 0x11, 0x7f, 0x7b, 0x0b, 0xe6, 0x8a, 0x38, 0x54, 0xd2, 0x81,
+ 0xcd, 0x0a, 0x28, 0x3e,
+ 0x6d, 0x14, 0x21, 0x04, 0x94, 0x8f, 0xee, 0x83, 0xec, 0x81, 0x71, 0x0c,
+ 0x6b, 0xab, 0xe9, 0x34,
+ 0xad, 0x78, 0xc6, 0x18, 0xfe, 0xa4, 0x21, 0x8c, 0x2d, 0x80, 0xe5, 0x28,
+ 0xb9, 0x7c, 0x33, 0xb8,
+ 0x37, 0x74, 0xd9, 0xa5, 0x33, 0x60, 0x7b, 0x4c, 0xc8, 0xff, 0xca, 0x2c,
+ 0x21, 0xa4, 0xd5, 0x15,
+ 0x61, 0x62, 0xa2, 0x75, 0xda, 0x70, 0x8e, 0xef, 0x55, 0x34, 0xe9, 0x9f,
+ 0xcf, 0x2b, 0xac, 0x4c,
+ 0x4b, 0x3d, 0x4e, 0x66, 0xa0, 0xfc, 0x1d, 0x56, 0x2e, 0x65, 0xba, 0xaa,
+ 0x1e, 0x2c, 0xb0, 0x8b,
+ 0xb9, 0xe2, 0x80, 0x8b, 0x2c, 0x66, 0x81, 0x38, 0x25, 0x9c, 0x8e, 0x5e,
+ 0x96, 0x3f, 0xfc, 0x30,
+ 0xe3, 0x82, 0x78, 0x2a, 0x8b, 0x89, 0x14, 0xf7, 0x01, 0xe2, 0x35, 0x7e,
+ 0xdc, 0x30, 0xc0, 0x11,
+ 0xba, 0x1e, 0xd0, 0x06, 0xde, 0x29, 0x99, 0x23, 0x9a, 0x20, 0xa8, 0x0a,
+ 0xbf, 0x1f, 0x7c, 0x2e,
+ 0xf1, 0x23, 0x9e, 0x60, 0x7e, 0xd5, 0x84, 0x75, 0xb4, 0x45, 0x12, 0xa0,
+ 0xa1, 0x33, 0xcc, 0xa5,
+ 0xa0, 0x5a, 0x75, 0x12, 0x5f, 0xdf, 0x49, 0xe9, 0x40, 0xe0, 0xde, 0x36,
+ 0xbb, 0x5d, 0xb7, 0xca,
+ 0x85, 0x8f, 0x4a, 0xfd, 0x99, 0xe3, 0xa2, 0x27, 0x3d, 0xb8, 0x33, 0xc4,
+ 0xe7, 0xfa, 0x6e, 0x6b,
+ 0x83, 0xb4, 0xea, 0x24, 0xbe, 0x7d, 0x92, 0x11, 0x80, 0x03, 0x7f, 0x6c,
+ 0xb5, 0xba, 0xad, 0x57,
+ 0xda, 0x28, 0x42, 0x08, 0xeb, 0xdd, 0x1f, 0xc5, 0x1b, 0xc1, 0xe2, 0x18,
+ 0xd6, 0x95, 0x11, 0x68,
+ 0x47, 0x4b, 0xcd, 0x17, 0xee, 0x03, 0x7d, 0x3a, 0x97, 0xd0, 0x22, 0x39,
+ 0xba, 0xac, 0xf5, 0xf3,
+ 0xc5, 0xab, 0x17, 0x48, 0xbf, 0xfa, 0xe7, 0x22, 0xc3, 0x06, 0xfe, 0xd8,
+ 0xa9, 0xb7, 0x99, 0xae,
+ 0xb0, 0x53, 0xf3, 0xae, 0xb7, 0x48, 0xc9, 0x79, 0x9e, 0x2e, 0x7c, 0x31,
+ 0x49, 0xdf, 0xfa, 0x6a,
+ 0x33, 0xe7, 0x19, 0x8a, 0x09, 0x35, 0x5b, 0x68, 0x1e, 0x2d, 0x03, 0x5d,
+ 0xfc, 0x65, 0x57, 0x3d,
+ 0xfa, 0x3a, 0x8d, 0xb3, 0xf8, 0x30, 0xdc, 0x26, 0x64, 0x9e, 0x65, 0x16,
+ 0xf1, 0x52, 0x8b, 0xeb,
+ 0x96, 0x7a, 0x9c, 0xcc, 0x83, 0x3b, 0x3a, 0xac, 0x5c, 0xca, 0xb7, 0x97,
+ 0x3c, 0x58, 0xa3, 0xd5,
+ 0x6f, 0xbc, 0x41, 0xf2, 0x89, 0x44, 0xfe, 0x91, 0x87, 0xe8, 0xf4, 0xd5,
+ 0xe4, 0x2a, 0xa8, 0x20,
+ 0x6e, 0xe8, 0x71, 0x89, 0x66, 0xc0, 0xf6, 0x98, 0x53, 0x3d, 0x57, 0x58,
+ 0x42, 0x8b, 0x69, 0x2a,
+ 0xc2, 0xc4, 0x87, 0xea, 0x77, 0xe0, 0xdf, 0x1d, 0xaa, 0x68, 0x11, 0xfd,
+ 0x5d, 0x56, 0x9b, 0x98,
+ 0xf6, 0x4c, 0x0e, 0xc2, 0xb6, 0xcf, 0xbc, 0x4a, 0xdd, 0x2b, 0xfd, 0x85,
+ 0x55, 0xd2, 0xce, 0x93,
+ 0x50, 0x2d, 0xdb, 0x09, 0xce, 0x8e, 0xc5, 0x95, 0x20, 0x70, 0x6f, 0x1b,
+ 0xbc, 0xcf, 0xba, 0x65,
+ 0xff, 0xfd, 0x7d, 0xe7, 0x2d, 0xe1, 0xf4, 0x0b, 0x66, 0x99, 0x0f, 0xea,
+ 0x8a, 0x32, 0xc8, 0xc9,
+ 0x5d, 0x0f, 0x68, 0x03, 0x6f, 0xf5, 0xad, 0xf0, 0x4d, 0x10, 0x54, 0x05,
+ 0xbe, 0xee, 0x3e, 0x17,
+ 0xa9, 0xeb, 0x06, 0x37, 0xc4, 0xf1, 0x01, 0xa8, 0xfb, 0x52, 0x2c, 0x59,
+ 0x64, 0xbd, 0xb1, 0x90,
+ 0x8e, 0x96, 0x59, 0x2e, 0x1f, 0x06, 0xfa, 0x74, 0xed, 0x63, 0x44, 0x72,
+ 0xb7, 0x9b, 0x29, 0x25,
+ 0x17, 0x66, 0x16, 0x1e, 0x20, 0x8d, 0xb8, 0xaf, 0xb7, 0xa0, 0x4d, 0x22,
+ 0x06, 0x63, 0x4f, 0x96,
+ 0x1b, 0x10, 0x95, 0x6f, 0x6e, 0x72, 0xd8, 0xc3, 0x0e, 0x15, 0xd5, 0xb1,
+ 0xa2, 0xe3, 0x0a, 0xee,
+ 0x97, 0x2e, 0xac, 0xb7, 0x6c, 0xbf, 0x32, 0xa5, 0x88, 0x1f, 0x14, 0x1a,
+ 0x9a, 0xf9, 0x62, 0xdf,
+ 0x7d, 0x1d, 0xa7, 0xb8, 0x7c, 0x18, 0x6e, 0x13, 0x32, 0x4f, 0xd3, 0x0b,
+ 0x99, 0x29, 0xa4, 0x94,
+ 0xec, 0x08, 0xab, 0xd6, 0x37, 0x39, 0x6c, 0x80, 0x07, 0xeb, 0x8b, 0xb9,
+ 0x51, 0x90, 0x05, 0x77,
+ 0x58, 0xc8, 0x98, 0x57, 0xba, 0x24, 0x85, 0xdd, 0x4f, 0x17, 0x3e, 0xf9,
+ 0xc5, 0x8e, 0x7d, 0x35,
+ 0xf7, 0x18, 0x3e, 0xb9, 0x59, 0x4b, 0xb4, 0x43, 0x09, 0xfe, 0x5e, 0x08,
+ 0xf3, 0x73, 0x0f, 0x99,
+ 0x1f, 0x83, 0x55, 0x40, 0x54, 0x27, 0xf8, 0xe7, 0xd8, 0xc7, 0x1c, 0xc0,
+ 0x7f, 0x22, 0x88, 0xc6,
+ 0xfb, 0x6e, 0xbd, 0xc8, 0x17, 0xb4, 0xd4, 0x2f, 0xb0, 0x4b, 0xc6, 0x9b,
+ 0x57, 0xf3, 0x4a, 0xe1,
+ 0x7c, 0x49, 0x97, 0xc3, 0x93, 0x9c, 0x66, 0x1a, 0xe6, 0x9a, 0x70, 0x86,
+ 0x3f, 0x88, 0x65, 0x9e,
+ 0x09, 0xb1, 0x73, 0x25, 0x9b, 0x2e, 0x48, 0x41, 0xbb, 0xb2, 0xf2, 0x6f,
+ 0xdf, 0xe0, 0x06, 0x5a,
+ 0x0d, 0x22, 0xb3, 0x0a, 0xa1, 0x7b, 0x68, 0x65, 0x6d, 0x60, 0x3b, 0x1e,
+ 0x02, 0x21, 0x84, 0x72,
+ 0x7a, 0x72, 0x37, 0x1a, 0xb4, 0x02, 0x56, 0x2c, 0x5b, 0x21, 0x3c, 0x2e,
+ 0x6d, 0xc8, 0xa6, 0xa2,
+ 0x67, 0x59, 0x02, 0xac, 0xfd, 0xee, 0xbe, 0xd9, 0xe8, 0x8f, 0xa5, 0x37,
+ 0x9d, 0x6b, 0x6f, 0x70,
+ 0x45, 0xe3, 0xad, 0xe1, 0xf3, 0xc8, 0x6d, 0x28, 0xfc, 0xb9, 0xa7, 0xe0,
+ 0x35, 0x2d, 0xb4, 0xe7,
+ 0x87, 0x27, 0x2a, 0x0b, 0x84, 0x28, 0xb2, 0x35, 0x56, 0xd1, 0xb6, 0x1d,
+ 0x68, 0x7b, 0x2f, 0x7f,
+ 0xdc, 0x13, 0xe2, 0xd1, 0xcc, 0x43, 0x2f, 0xf3, 0xa6, 0x7a, 0xae, 0xb0,
+ 0x84, 0xd5, 0xd2, 0x54,
+ 0xe8, 0x9b, 0x6b, 0xf9, 0x0d, 0x6c, 0x4c, 0xa4, 0xd1, 0x39, 0x42, 0xc8,
+ 0x8c, 0x51, 0x87, 0x5f,
+ 0x4f, 0xae, 0x8e, 0x49, 0x9a, 0xa9, 0x3d, 0x72, 0xf8, 0xb7, 0x73, 0xdb,
+ 0xc3, 0xed, 0x32, 0xa3,
+ 0x1d, 0x2b, 0x35, 0xb6, 0x49, 0xec, 0xe8, 0xf5, 0xb3, 0xae, 0x99, 0x19,
+ 0xf0, 0xa3, 0xc9, 0xd2,
+ 0x4e, 0xfa, 0xbe, 0x32, 0x75, 0x2d, 0x35, 0x7b, 0x2c, 0x62, 0xd0, 0x56,
+ 0x65, 0x4c, 0xf3, 0xa9,
+ 0x04, 0x93, 0xc0, 0x2f, 0x3a, 0x55, 0x20, 0x24, 0xd6, 0xd2, 0xc9, 0x71,
+ 0xdd, 0xc1, 0x82, 0x28,
+ 0xeb, 0x67, 0x3b, 0x74, 0xff, 0x23, 0x54, 0xbf, 0x6e, 0x85, 0x64, 0x9c,
+ 0xa5, 0x71, 0x07, 0x41,
+ 0xf8, 0x92, 0xed, 0x45, 0xe5, 0xfb, 0xcc, 0x34, 0x0f, 0xf7, 0xe0, 0xcf,
+ 0x7e, 0xd3, 0xca, 0xff,
+ 0xf3, 0x8b, 0xfe, 0x96, 0x63, 0x1e, 0x94, 0x67, 0xdf, 0x2c, 0x97, 0x79,
+ 0x2e, 0xb2, 0x8d, 0xb1,
+ 0x3e, 0xc5, 0xaa, 0x80, 0xa8, 0x4e, 0x33, 0x0d, 0x73, 0x4d, 0x38, 0x43,
+ 0xfe, 0x44, 0xd3, 0x4f,
+ 0x3d, 0x39, 0xfa, 0x0d, 0x5a, 0x01, 0x2b, 0x16, 0xcc, 0xf1, 0x1e, 0x17,
+ 0xd7, 0x64, 0x53, 0x51,
+ 0xbd, 0x71, 0x40, 0xa4, 0x16, 0x33, 0xa1, 0x1c, 0xf3, 0x4e, 0x47, 0x2f,
+ 0x4b, 0xfe, 0x7e, 0x18,
+ 0x8a, 0x05, 0x99, 0x01, 0x25, 0x53, 0xda, 0x50, 0x3b, 0xb1, 0x8d, 0x03,
+ 0x6a, 0x5a, 0xab, 0x0d,
+ 0x88, 0xad, 0xf9, 0xf7, 0x38, 0x98, 0xca, 0x42, 0x50, 0xd8, 0x08, 0xda,
+ 0xe5, 0xdb, 0xea, 0x19,
+ 0xdd, 0x47, 0xd2, 0xaa, 0x23, 0xc7, 0x27, 0xfa, 0x72, 0xaf, 0x0d, 0x3d,
+ 0x22, 0x74, 0x13, 0x5e,
+ 0xcd, 0x4e, 0x54, 0x16, 0xcb, 0x50, 0xa7, 0x6a, 0xac, 0x61, 0xaf, 0x3a,
+ 0xd0, 0xf6, 0x5e, 0xfe,
+ 0x0b, 0x19, 0x13, 0xd3, 0x86, 0xe5, 0x58, 0x53, 0xd0, 0xdb, 0x77, 0xb6,
+ 0x50, 0x61, 0x47, 0x4e,
+ 0x13, 0xf5, 0xd6, 0x31, 0x1a, 0xd8, 0x98, 0x8b, 0x61, 0x72, 0x84, 0x53,
+ 0xdb, 0xa2, 0xcd, 0xbe,
+ 0x98, 0xa4, 0x7f, 0x4b, 0xd0, 0x0f, 0x4a, 0xd2, 0x8e, 0x16, 0xaa, 0xdd,
+ 0x17, 0x59, 0xa7, 0xb9,
+ 0x02, 0xa8, 0x60, 0xf6, 0x1d, 0xcb, 0x10, 0x12, 0x6b, 0x69, 0x85, 0xd9,
+ 0x8f, 0x81, 0x41, 0x14,
+ 0x93, 0xbd, 0x6c, 0x98, 0x56, 0xea, 0x12, 0x81, 0x5e, 0xcd, 0xdd, 0x6b,
+ 0x47, 0x38, 0xe0, 0xf7,
+ 0x80, 0x48, 0xba, 0xa9, 0x4c, 0x32, 0x8a, 0x0a, 0x3f, 0xbf, 0x59, 0x38,
+ 0x9c, 0x9a, 0x2d, 0x49,
+ 0x90, 0x41, 0x3c, 0x15, 0xa4, 0xa5, 0x0a, 0x9a, 0xe1, 0x71, 0xfb, 0x3f,
+ 0x6e, 0x18, 0x60, 0xe9,
+ 0xd0, 0x65, 0x61, 0xa0, 0x82, 0xbc, 0x4f, 0x9f, 0x1f, 0xcf, 0x36, 0x23,
+ 0x20, 0x55, 0x97, 0x2c,
+ 0x24, 0x81, 0x0f, 0x94, 0x29, 0xb8, 0xe3, 0xc7, 0xa9, 0x8d, 0x4e, 0x7f,
+ 0xfa, 0x06, 0x18, 0xab,
+ 0x34, 0x88, 0x89, 0x28, 0xc1, 0x2f, 0x63, 0x57, 0x77, 0x43, 0xec, 0x78,
+ 0x08, 0x84, 0x55, 0x0b,
+ 0xcb, 0x75, 0xf4, 0xcf, 0xec, 0xce, 0x97, 0x5c, 0x11, 0xda, 0xe3, 0x92,
+ 0x82, 0xb6, 0x9d, 0xc2,
+ 0xed, 0x5c, 0x9b, 0xad, 0xd8, 0xbd, 0x64, 0x89, 0xd3, 0x3e, 0x28, 0x34,
+ 0xf7, 0x31, 0xc4, 0x7d,
+ 0xf4, 0xe4, 0x6e, 0x34, 0xab, 0x04, 0xac, 0x58, 0xb6, 0x42, 0x78, 0x5c,
+ 0xda, 0x53, 0x8f, 0x87,
+ 0xce, 0xb2, 0x04, 0x9b, 0x39, 0x1f, 0xbf, 0x71, 0x13, 0xdd, 0x89, 0x6e,
+ 0xf9, 0xd6, 0xde, 0xe0,
+ 0x99, 0xf0, 0x4f, 0x30, 0x3f, 0x8b, 0x42, 0xdb, 0x5a, 0xc3, 0x09, 0x50,
+ 0xb1, 0xf8, 0x66, 0xb3,
+ 0x10, 0x09, 0x86, 0xbc, 0xe8, 0x97, 0x80, 0x90, 0xde, 0xce, 0xa2, 0x07,
+ 0xf2, 0x82, 0x4d, 0xa0,
+ 0x44, 0xb7, 0x9d, 0x9a, 0x1c, 0x4c, 0x65, 0x21, 0x28, 0x6c, 0x04, 0x6d,
+ 0x93, 0x8c, 0x75, 0xed,
+ 0x40, 0x24, 0x5d, 0xb5, 0x26, 0x19, 0x45, 0x05, 0xfe, 0xbe, 0xcd, 0x1c,
+ 0x4e, 0x4d, 0xf7, 0xc5,
+ 0x92, 0xe9, 0x5c, 0xe3, 0xb9, 0x6e, 0x1a, 0x88, 0x8a, 0x18, 0x7e, 0xe6,
+ 0xe1, 0x99, 0x21, 0xfd,
+ 0x3a, 0x56, 0x6a, 0xaf, 0x92, 0x1b, 0x13, 0x29, 0xa5, 0x9f, 0xf1, 0x32,
+ 0x23, 0x85, 0x51, 0x67,
+ 0x01, 0x54, 0x30, 0x7b, 0xef, 0x84, 0x08, 0x09, 0xd4, 0xd5, 0xa3, 0x8d,
+ 0xa6, 0xa1, 0xc1, 0x0a,
+ 0x26, 0x29, 0x6f, 0x62, 0x34, 0x73, 0xf3, 0xd5, 0xc2, 0xe4, 0xcb, 0xa6,
+ 0x75, 0x87, 0x59, 0xbf,
+ 0x12, 0xa1, 0xe6, 0x4a, 0xf5, 0x5c, 0x90, 0x82, 0xb5, 0xa7, 0x27, 0xde,
+ 0x7d, 0x03, 0x0c, 0xb4,
+ 0x1a, 0x44, 0xa5, 0x14, 0x81, 0xf6, 0xd0, 0xca, 0xda, 0xc0, 0x76, 0x3c,
+ 0x04, 0x42, 0xcb, 0xe4,
+ 0x48, 0xc1, 0x1e, 0xeb, 0x52, 0xb3, 0x05, 0x4d, 0x91, 0xd9, 0x9c, 0xfe,
+ 0x37, 0x0c, 0x30, 0x95,
+ 0x68, 0xd3, 0xd1, 0x50, 0x41, 0x5e, 0xc6, 0xae, 0xee, 0x86, 0x1b, 0xf0,
+ 0x10, 0xcb, 0xaa, 0x16,
+ 0xf5, 0xb0, 0x5e, 0x4f, 0x44, 0x80, 0xa4, 0x51, 0x62, 0x97, 0xdb, 0xd1,
+ 0x7c, 0xf2, 0x4e, 0x8d,
+ 0x81, 0x1c, 0x8a, 0xd2, 0xa3, 0xb6, 0x82, 0x03, 0xeb, 0x6a, 0xfa, 0xb5,
+ 0x3a, 0x3b, 0xec, 0x43,
+ 0x8b, 0x51, 0xa9, 0x7a, 0xca, 0xd7, 0xd2, 0x59, 0xef, 0x64, 0x2e, 0x8e,
+ 0xcc, 0xfb, 0x6a, 0x07,
+ 0xc7, 0x03, 0x77, 0xbe, 0xa2, 0x31, 0xf7, 0x30, 0xa8, 0x6f, 0x7b, 0x01,
+ 0x26, 0x36, 0xd8, 0xba,
+ 0xd6, 0x5e, 0xc1, 0x79, 0xa5, 0x22, 0x7f, 0xa9, 0xa2, 0x74, 0x7a, 0x8b,
+ 0x72, 0x15, 0x54, 0x10,
+ 0x20, 0x12, 0xcf, 0xbb, 0x13, 0xed, 0xc3, 0xe3, 0x7f, 0x5f, 0x87, 0x0e,
+ 0x27, 0xc7, 0x9a, 0x83,
+ 0x0a, 0x4d, 0x23, 0xa8, 0x69, 0x61, 0x50, 0x5a, 0x04, 0x0e, 0xd4, 0x3b,
+ 0xf6, 0xc0, 0x86, 0x44,
+ 0x08, 0xe5, 0x43, 0x5e, 0x74, 0xaa, 0x40, 0x48, 0x6f, 0x67, 0x51, 0xe2,
+ 0x79, 0x41, 0xc7, 0x50,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x4c, 0x52, 0xde, 0xc4, 0x68, 0xe6, 0x25, 0x69, 0x47, 0x0b, 0x55, 0x8f,
+ 0xea, 0xcd, 0xb2, 0xbd,
+ 0xd7, 0x0a, 0xf1, 0x02, 0x4a, 0xa6, 0x77, 0xa0, 0x76, 0xa1, 0xd9, 0x06,
+ 0xd4, 0xb4, 0x95, 0x1a,
+ 0x74, 0xac, 0xd4, 0x9d, 0xe7, 0x36, 0x26, 0x52, 0x89, 0xfd, 0x21, 0x64,
+ 0x46, 0xc9, 0xa2, 0xce,
+ },
+ { /* 8 */
+ 0x99, 0xaa, 0x16, 0x04, 0xc2, 0x95, 0x8c, 0x4a, 0x63, 0xeb, 0xf0, 0x49,
+ 0x21, 0x0a, 0xad, 0xf8,
+ 0x93, 0xe3, 0xda, 0xa3, 0x95, 0xb5, 0xa1, 0x97, 0x1b, 0x19, 0xbd, 0x7f,
+ 0x09, 0x35, 0xa8, 0x38,
+ 0x88, 0xfd, 0x2b, 0x3b, 0xa6, 0xc5, 0x21, 0xbc, 0xaf, 0xb5, 0xad, 0x3e,
+ 0x65, 0x8a, 0x44, 0xdb,
+ 0xae, 0x16, 0x29, 0x6c, 0x27, 0x1a, 0xaa, 0xe1, 0xc4, 0x02, 0x84, 0xcc,
+ 0xfd, 0xee, 0x57, 0x5c,
+ 0x8b, 0xbe, 0x09, 0x55, 0xe0, 0x74, 0xcd, 0x78, 0xbb, 0x23, 0x51, 0x37,
+ 0x69, 0x61, 0xa4, 0xfb,
+ 0xbd, 0x82, 0x28, 0xa6, 0x86, 0x94, 0x0e, 0x2e, 0x10, 0xb8, 0x71, 0xb5,
+ 0xb1, 0xdc, 0xbf, 0xfe,
+ 0x69, 0xbd, 0x24, 0x97, 0x06, 0x13, 0xb2, 0x23, 0xa9, 0x8c, 0x87, 0xdc,
+ 0x67, 0x47, 0xd5, 0x6a,
+ 0xb1, 0x4d, 0xa0, 0xdd, 0x5d, 0x15, 0x38, 0xb8, 0x40, 0xa5, 0x07, 0x91,
+ 0x81, 0xf6, 0xb9, 0x7e,
+ 0x6e, 0xbb, 0x7e, 0xd0, 0x09, 0xdd, 0x4c, 0x95, 0x8d, 0x11, 0xe8, 0xc9,
+ 0x7b, 0x0b, 0x37, 0x8b,
+ 0x38, 0x30, 0x95, 0x7d, 0x78, 0xbf, 0xfc, 0xf9, 0xe3, 0x62, 0xfe, 0xa8,
+ 0xe0, 0x25, 0x1c, 0x04,
+ 0x3e, 0xb6, 0xd1, 0xa1, 0xf4, 0x1e, 0xe7, 0xb2, 0xcb, 0x8d, 0xc5, 0xba,
+ 0xf8, 0x30, 0x1f, 0x44,
+ 0x92, 0x63, 0xc4, 0x38, 0x16, 0xda, 0x44, 0x6a, 0x17, 0x6b, 0xe9, 0x78,
+ 0x0d, 0x6c, 0x49, 0x99,
+ 0x95, 0x65, 0x9e, 0x7f, 0x19, 0x14, 0xba, 0xdc, 0x33, 0xf6, 0x86, 0x6d,
+ 0x11, 0x20, 0xab, 0x78,
+ 0x59, 0x07, 0x41, 0xb8, 0xec, 0x52, 0x6a, 0x3e, 0x2a, 0xf8, 0x9c, 0x4c,
+ 0xa7, 0xef, 0xcd, 0x2f,
+ 0x31, 0x3a, 0x7b, 0xb4, 0x69, 0x2e, 0x3d, 0xe0, 0x8f, 0x06, 0x4f, 0x97,
+ 0xc4, 0xf1, 0xf9, 0xe4,
+ 0x4e, 0xd6, 0x38, 0x5b, 0x04, 0xa3, 0xdc, 0x83, 0xce, 0x49, 0xfa, 0x29,
+ 0xfb, 0x7a, 0x27, 0x4c,
+ 0xd3, 0x39, 0x56, 0x76, 0x8f, 0x49, 0x42, 0xbb, 0x9d, 0xa9, 0x99, 0x7c,
+ 0xca, 0xd7, 0x88, 0x75,
+ 0xce, 0xa1, 0xe3, 0x32, 0x30, 0x98, 0xd9, 0xdb, 0x01, 0xea, 0xb2, 0x2f,
+ 0xbe, 0x7d, 0x67, 0xd6,
+ 0xa0, 0x1a, 0x9d, 0xe2, 0x39, 0x45, 0x95, 0x4e, 0x8c, 0xfb, 0x5a, 0xe6,
+ 0xc5, 0x76, 0x50, 0x5d,
+ 0xe5, 0x05, 0x77, 0x85, 0xe9, 0xa9, 0x81, 0xed, 0x36, 0x32, 0xb9, 0xfe,
+ 0x12, 0x6a, 0x93, 0x70,
+ 0xd5, 0xbf, 0x12, 0xaa, 0x03, 0xe8, 0x59, 0xf0, 0xb5, 0x46, 0xa2, 0x6e,
+ 0xd2, 0xc2, 0x8b, 0x35,
+ 0xb9, 0xc7, 0x50, 0x8f, 0xcf, 0xeb, 0x1c, 0x5c, 0x20, 0xb3, 0xe2, 0xa9,
+ 0xa1, 0x7b, 0xbd, 0x3f,
+ 0xa4, 0x5f, 0xe5, 0xcb, 0x70, 0x3a, 0x87, 0x3c, 0xbc, 0xf0, 0xc9, 0xfa,
+ 0xd5, 0xd1, 0x52, 0x9c,
+ 0xbf, 0x41, 0x14, 0x53, 0x43, 0x4a, 0x07, 0x17, 0x08, 0x5c, 0xd9, 0xbb,
+ 0xb9, 0x6e, 0xbe, 0x7f,
+ 0x2d, 0x22, 0xd0, 0x6b, 0x55, 0x90, 0x43, 0x7d, 0x1f, 0x37, 0x30, 0xc3,
+ 0xb4, 0x02, 0xf7, 0xe6,
+ 0xe7, 0xc6, 0x4b, 0x70, 0x2c, 0x77, 0x88, 0xd4, 0x2e, 0xd6, 0x11, 0xf0,
+ 0x1a, 0xd8, 0x92, 0xf1,
+ 0xdc, 0xb5, 0xfc, 0x63, 0x12, 0x79, 0x98, 0xe9, 0xd9, 0x22, 0x13, 0x51,
+ 0xf6, 0x16, 0x6e, 0xd5,
+ 0x21, 0xed, 0x58, 0x10, 0x8e, 0x11, 0x75, 0xeb, 0x4f, 0x2a, 0x46, 0xe7,
+ 0x84, 0x28, 0xf1, 0x66,
+ 0xf9, 0x1d, 0xdc, 0x5a, 0xd5, 0x17, 0xff, 0x70, 0xa6, 0x03, 0xc6, 0xaa,
+ 0x62, 0x99, 0x9d, 0x72,
+ 0xee, 0xcc, 0xa5, 0xb9, 0x3d, 0xe6, 0x49, 0xcd, 0x42, 0xb2, 0xa0, 0xcf,
+ 0x3e, 0x0c, 0x77, 0x11,
+ 0x62, 0x74, 0xf6, 0xab, 0xd2, 0x5c, 0x7a, 0x03, 0xdd, 0x0c, 0x9e, 0xed,
+ 0x4b, 0x21, 0x31, 0x0b,
+ 0xcd, 0xe2, 0xc1, 0x5c, 0x76, 0x29, 0x35, 0x1f, 0x15, 0x7c, 0x4e, 0x26,
+ 0xb2, 0x96, 0x87, 0xf6,
+ 0x67, 0xb1, 0x90, 0x19, 0x18, 0x4c, 0x8d, 0x8c, 0xe1, 0x75, 0x59, 0xf6,
+ 0x5f, 0xdf, 0xd2, 0x6b,
+ 0x72, 0xa3, 0xd5, 0x0f, 0x35, 0x63, 0x32, 0x08, 0x1d, 0x20, 0x97, 0x9d,
+ 0x0b, 0xf8, 0x39, 0x89,
+ 0x9b, 0x69, 0x2a, 0xf1, 0x07, 0x4b, 0x85, 0x73, 0x7b, 0x0f, 0x58, 0x47,
+ 0x29, 0xb8, 0xac, 0x79,
+ 0xbe, 0xc1, 0x0a, 0xc8, 0xc0, 0x25, 0xe2, 0xea, 0x04, 0x2e, 0x8d, 0xbc,
+ 0xbd, 0x37, 0x5f, 0xde,
+ 0xeb, 0x09, 0xc3, 0x0b, 0xf7, 0xf6, 0xbe, 0x42, 0x7e, 0xcb, 0x67, 0xd4,
+ 0x2a, 0xf2, 0x94, 0x71,
+ 0x86, 0xf1, 0x9f, 0xb5, 0xb8, 0x9a, 0x1e, 0x13, 0xe7, 0x4c, 0x73, 0x14,
+ 0x5d, 0x12, 0x43, 0xda,
+ 0x83, 0x34, 0xf9, 0x07, 0x72, 0x8a, 0xe9, 0x9c, 0xdb, 0x35, 0xb4, 0x0f,
+ 0x49, 0xec, 0xa0, 0xba,
+ 0x09, 0x0a, 0xee, 0xc9, 0x11, 0x91, 0xc1, 0x19, 0x6c, 0x64, 0xb1, 0x3f,
+ 0x24, 0xd4, 0xe5, 0xe0,
+ 0x54, 0x48, 0xd7, 0x58, 0xb4, 0xbc, 0xb9, 0x55, 0x76, 0x97, 0xbe, 0x6f,
+ 0x93, 0x9c, 0x2a, 0x0e,
+ 0x77, 0x66, 0xb3, 0xbd, 0xff, 0x73, 0xc5, 0x87, 0x21, 0x59, 0x50, 0x86,
+ 0x1f, 0x06, 0xda, 0xe9,
+ 0x40, 0xda, 0x8c, 0xd5, 0x1a, 0xfc, 0xe3, 0x2c, 0x86, 0xb0, 0x24, 0x03,
+ 0xc3, 0xe2, 0x20, 0x4d,
+ 0xf6, 0x91, 0x76, 0x4f, 0x48, 0x27, 0x25, 0x22, 0xe2, 0x88, 0x4c, 0x87,
+ 0x5e, 0x58, 0x7b, 0xd2,
+ 0x5a, 0x44, 0x63, 0xd6, 0xaa, 0xe3, 0x86, 0xfa, 0x3e, 0x6e, 0x60, 0x45,
+ 0xab, 0x04, 0x2d, 0x0f,
+ 0x0d, 0x4f, 0x96, 0xe0, 0x58, 0xee, 0xd3, 0x6b, 0x5c, 0x6f, 0x22, 0x23,
+ 0x34, 0x73, 0xe7, 0x21,
+ 0xfa, 0x5e, 0xfe, 0x34, 0x93, 0xa6, 0x13, 0xb4, 0xb2, 0x95, 0x3a, 0xa3,
+ 0x6e, 0x72, 0x7d, 0x52,
+ 0xc7, 0xab, 0x0d, 0xfb, 0x21, 0x09, 0x18, 0xc2, 0x6d, 0x8e, 0x03, 0x10,
+ 0x9a, 0xa9, 0x82, 0x36,
+ 0x65, 0x72, 0xac, 0xec, 0xdd, 0x92, 0x84, 0xb5, 0xf9, 0x91, 0xf1, 0xf8,
+ 0x57, 0x6d, 0xd3, 0xea,
+ 0x5f, 0x81, 0x05, 0x64, 0x60, 0xf3, 0x71, 0x75, 0x02, 0x17, 0xa7, 0x5e,
+ 0xbf, 0xfa, 0xce, 0x6f,
+ 0xd2, 0xb9, 0x48, 0xed, 0x0c, 0x26, 0xa7, 0x46, 0x91, 0xdb, 0xcd, 0x7b,
+ 0xce, 0x8e, 0x69, 0xd4,
+ 0xf0, 0x17, 0x32, 0x93, 0xc4, 0x86, 0x3e, 0x69, 0xca, 0x67, 0x77, 0x95,
+ 0x46, 0x4d, 0x78, 0x92,
+ 0x94, 0xe5, 0x80, 0xe4, 0x9a, 0x7b, 0x5f, 0x21, 0x3f, 0x84, 0xd2, 0x6a,
+ 0x15, 0x79, 0x4a, 0xd9,
+ 0x43, 0x99, 0xae, 0xbb, 0x5c, 0x4d, 0x0f, 0xe8, 0x92, 0x26, 0xd8, 0x0a,
+ 0xcf, 0x09, 0xc0, 0x6d,
+ 0x44, 0x9f, 0xf4, 0xfc, 0x53, 0x83, 0xf1, 0x5e, 0xb6, 0xbb, 0xb7, 0x1f,
+ 0xd3, 0x45, 0x22, 0x8c,
+ 0x9e, 0xac, 0x4c, 0x43, 0xcd, 0x5b, 0x72, 0xfc, 0x47, 0x76, 0x9f, 0x5c,
+ 0x3d, 0x46, 0x4f, 0x19,
+ 0xe9, 0xca, 0xff, 0xfe, 0x32, 0x28, 0xb7, 0x7b, 0x66, 0x2f, 0xcf, 0xda,
+ 0x22, 0x40, 0x95, 0xf0,
+ 0xb2, 0x0e, 0x82, 0xb3, 0x1b, 0xa4, 0xd4, 0x7c, 0x54, 0x33, 0xfb, 0x98,
+ 0x8d, 0x1d, 0x59, 0x5e,
+ 0x2a, 0x24, 0x8a, 0x2c, 0x5a, 0x5e, 0xbd, 0xcb, 0x3b, 0xaa, 0x5f, 0xd6,
+ 0xa8, 0x4e, 0x15, 0x07,
+ 0x13, 0x94, 0x01, 0xca, 0xa1, 0x8e, 0xa4, 0xcf, 0xd4, 0xba, 0xf5, 0x79,
+ 0x4c, 0x32, 0xe8, 0xa2,
+ 0x37, 0xbc, 0x3f, 0x68, 0xe5, 0x8f, 0x26, 0xab, 0xa7, 0xe9, 0x74, 0x85,
+ 0xdc, 0xe4, 0xfa, 0xa4,
+ 0x1c, 0x18, 0xab, 0xdf, 0x3c, 0xbe, 0x7e, 0x9d, 0x90, 0x31, 0x7f, 0x54,
+ 0x70, 0xf3, 0x0e, 0x02,
+ 0xb4, 0x88, 0xc6, 0x6f, 0x97, 0x05, 0xcf, 0x37, 0x7c, 0xdc, 0xc0, 0x8a,
+ 0x95, 0x08, 0x5a, 0x1e,
+ 0x4b, 0x13, 0x5e, 0xe9, 0xce, 0xb3, 0x2b, 0x0c, 0xf2, 0x30, 0x3d, 0x32,
+ 0xef, 0x84, 0xc4, 0x2c,
+ 0x7f, 0xec, 0x43, 0xef, 0x6d, 0x8d, 0xe1, 0x63, 0x41, 0x4f, 0xb5, 0xbe,
+ 0x3f, 0x8b, 0xde, 0xa8,
+ 0x78, 0xea, 0x19, 0xa8, 0x62, 0x43, 0x1f, 0xd5, 0x65, 0xd2, 0xda, 0xab,
+ 0x23, 0xc7, 0x3c, 0x49,
+ 0xcc, 0x62, 0xdf, 0xc7, 0xf5, 0x46, 0xd0, 0xe2, 0x19, 0x0e, 0x1a, 0x21,
+ 0xb6, 0xcf, 0x66, 0x57,
+ 0x81, 0xf7, 0xc5, 0xf2, 0xb7, 0x54, 0xe0, 0xa5, 0xc3, 0xd1, 0x1c, 0x01,
+ 0x41, 0x5e, 0xa1, 0x3b,
+ 0xac, 0xd5, 0x15, 0x99, 0xe2, 0xc4, 0xa3, 0xd8, 0xdc, 0xe6, 0x2c, 0xc2,
+ 0xf5, 0x5c, 0x56, 0xdd,
+ 0x98, 0x2a, 0x08, 0x9f, 0x41, 0xfa, 0x69, 0xb7, 0x6f, 0x99, 0xa4, 0x4e,
+ 0x25, 0x53, 0x4c, 0x59,
+ 0x56, 0x8b, 0xeb, 0xad, 0x71, 0x62, 0xb0, 0x6c, 0x6e, 0x73, 0x16, 0x61,
+ 0x9b, 0x2e, 0x2b, 0x8f,
+ 0x1e, 0xdb, 0x97, 0x2a, 0xf9, 0x60, 0x77, 0xa4, 0x88, 0xd5, 0xd7, 0x5a,
+ 0x78, 0x41, 0x0f, 0x83,
+ 0x30, 0xba, 0x65, 0x2f, 0xea, 0x41, 0xd8, 0x1d, 0x83, 0x74, 0x1b, 0x90,
+ 0xc0, 0xa8, 0x18, 0x45,
+ 0x14, 0x92, 0x5b, 0x8d, 0xae, 0x40, 0x5a, 0x79, 0xf0, 0x27, 0x9a, 0x6c,
+ 0x50, 0x7e, 0x0a, 0x43,
+ 0xc5, 0x68, 0x31, 0x0e, 0xe4, 0xd7, 0x11, 0xfb, 0x75, 0x6a, 0xab, 0x1e,
+ 0x92, 0x1b, 0x83, 0xb7,
+ 0x49, 0xd0, 0x62, 0x1c, 0x0b, 0x6d, 0x22, 0x35, 0xea, 0xd4, 0x95, 0x3c,
+ 0xe7, 0x36, 0xc5, 0xad,
+ 0xb0, 0xcd, 0xbe, 0x46, 0xde, 0x7a, 0xdd, 0x45, 0x4c, 0xd7, 0x53, 0x96,
+ 0x85, 0xaf, 0x58, 0xdf,
+ 0x70, 0x60, 0xe9, 0xfa, 0xf0, 0xbd, 0x3b, 0x31, 0x05, 0xc4, 0x3f, 0x93,
+ 0x03, 0x4a, 0x38, 0x08,
+ 0x0b, 0xc9, 0xd2, 0x3c, 0xd4, 0x4f, 0xc8, 0x20, 0x74, 0x80, 0x19, 0x31,
+ 0x2c, 0x66, 0xe4, 0x61,
+ 0xa6, 0x9c, 0xd9, 0x3e, 0xb5, 0xe4, 0x8e, 0x05, 0xa4, 0x14, 0x61, 0xf4,
+ 0xdd, 0x63, 0x53, 0x1d,
+ 0xaf, 0x96, 0x37, 0xf7, 0xa4, 0x75, 0x4f, 0x1c, 0xc8, 0x70, 0xd0, 0xcb,
+ 0xf9, 0xb7, 0xb6, 0xfd,
+ 0xa1, 0x9a, 0x83, 0x79, 0xba, 0x2a, 0x70, 0xb3, 0x80, 0x89, 0x0e, 0xe1,
+ 0xc1, 0x2f, 0xb1, 0xfc,
+ 0x17, 0xd1, 0x79, 0xe3, 0xe8, 0xf1, 0xb6, 0xbd, 0xe4, 0xb1, 0x66, 0x65,
+ 0x5c, 0x95, 0xea, 0x63,
+ 0xf5, 0xd2, 0x54, 0x21, 0x0e, 0x96, 0xc9, 0xe6, 0xf6, 0x1e, 0xb0, 0x8e,
+ 0x52, 0xb3, 0x9b, 0xf2,
+ 0xfd, 0x58, 0xa4, 0x73, 0x9c, 0x68, 0xed, 0x02, 0x96, 0x08, 0x55, 0xb6,
+ 0x72, 0x3e, 0x9f, 0xb3,
+ 0x3c, 0x75, 0xed, 0x54, 0x31, 0xc0, 0xee, 0x8b, 0xd3, 0x69, 0x6d, 0xb4,
+ 0xf0, 0x82, 0x1e, 0xc5,
+ 0xca, 0xe4, 0x9b, 0x1b, 0x79, 0xe7, 0xcb, 0xa9, 0x31, 0xe1, 0x21, 0x33,
+ 0xae, 0xda, 0x65, 0x17,
+ 0xa2, 0xd9, 0xa1, 0x17, 0xfc, 0x9b, 0x9c, 0x77, 0x94, 0x1f, 0xf2, 0xe8,
+ 0xcd, 0xc4, 0x51, 0xdc,
+ 0x4a, 0x93, 0x40, 0x72, 0x4d, 0xdc, 0xce, 0xf1, 0xfe, 0x42, 0x69, 0x35,
+ 0xeb, 0xdd, 0x25, 0x8d,
+ 0x0c, 0xcf, 0x88, 0x7b, 0xdb, 0x81, 0x36, 0x96, 0x50, 0x1d, 0x76, 0x24,
+ 0x30, 0x2a, 0x06, 0x80,
+ 0x18, 0x5d, 0xd3, 0xf6, 0x75, 0xc1, 0x6c, 0xef, 0xa0, 0x3a, 0xec, 0x48,
+ 0x60, 0x54, 0x0c, 0xc3,
+ 0xc3, 0xee, 0x75, 0xd2, 0x68, 0x76, 0x0a, 0xb0, 0x5d, 0x85, 0x90, 0x0c,
+ 0x8a, 0x0e, 0x80, 0xf7,
+ 0x47, 0xdc, 0xd6, 0x92, 0x15, 0x32, 0x1d, 0x9a, 0xa2, 0x2d, 0x4b, 0x16,
+ 0xdf, 0xae, 0xc2, 0xac,
+ 0x8f, 0xfb, 0x71, 0x7c, 0xa9, 0x0b, 0xdf, 0x0a, 0x8b, 0x28, 0xc2, 0x2b,
+ 0x79, 0xc6, 0xa6, 0x3a,
+ 0xf2, 0xd4, 0x0e, 0x66, 0x01, 0x58, 0x37, 0x50, 0xd2, 0x83, 0xdf, 0x9b,
+ 0x4e, 0xff, 0x79, 0x13,
+ 0xe0, 0xc0, 0x11, 0x37, 0x23, 0xb9, 0x76, 0x62, 0x0a, 0x4b, 0x7e, 0xe5,
+ 0x06, 0x94, 0x70, 0x10,
+ 0x3d, 0xf5, 0xf3, 0xcf, 0xb2, 0xaf, 0x0b, 0x76, 0xdf, 0x1b, 0x39, 0xb3,
+ 0xf4, 0xdb, 0xff, 0x64,
+ 0xaa, 0x53, 0x51, 0x45, 0x6e, 0x65, 0xb8, 0x93, 0xf4, 0x09, 0x17, 0xd0,
+ 0xed, 0x49, 0x55, 0x9d,
+ 0x57, 0x0b, 0xf5, 0x36, 0xf2, 0x0d, 0x55, 0x91, 0x62, 0x01, 0x42, 0x66,
+ 0x9f, 0x77, 0xca, 0x2e,
+ 0x87, 0x71, 0x81, 0x2e, 0x3b, 0xf5, 0xfb, 0xee, 0xeb, 0x3e, 0x27, 0x13,
+ 0x59, 0x4b, 0xa2, 0x7b,
+ 0xb6, 0x4b, 0xfa, 0x9a, 0x52, 0xdb, 0xc6, 0x0e, 0x64, 0x38, 0x68, 0x84,
+ 0x9d, 0xba, 0x5b, 0x9f,
+ 0xe3, 0x83, 0x33, 0x59, 0x65, 0x08, 0x9a, 0xa6, 0x1e, 0xdd, 0x82, 0xec,
+ 0x0a, 0x7f, 0x90, 0x30,
+ 0x23, 0x2e, 0x64, 0xe5, 0x4b, 0xcf, 0x7c, 0xd2, 0x57, 0xce, 0xee, 0xe9,
+ 0x8c, 0x9a, 0xf0, 0xe7,
+ 0x52, 0xce, 0x93, 0x84, 0x38, 0x1d, 0xa2, 0x1e, 0x5e, 0x78, 0x85, 0x7d,
+ 0x8b, 0x89, 0x29, 0x4e,
+ 0x8e, 0x7b, 0x6f, 0xe7, 0x2a, 0x64, 0x3a, 0xf7, 0x87, 0x5a, 0x96, 0x2c,
+ 0x7d, 0x9f, 0x47, 0x9b,
+ 0xdd, 0x35, 0xe2, 0xf8, 0x91, 0x16, 0x7d, 0x14, 0xd5, 0x50, 0x47, 0x56,
+ 0xf2, 0x4f, 0x8f, 0x74,
+ 0x2c, 0xa2, 0xce, 0xf0, 0xd6, 0xff, 0xa6, 0x80, 0x13, 0x45, 0x64, 0xc4,
+ 0xb0, 0x5b, 0x16, 0x47,
+ 0x50, 0x0d, 0xaf, 0x71, 0xfd, 0xc3, 0xab, 0x27, 0x46, 0x9c, 0x2d, 0x73,
+ 0x83, 0x3b, 0x28, 0xcf,
+ 0xec, 0x0f, 0x99, 0x4c, 0xf8, 0x38, 0x40, 0xf4, 0x5a, 0x56, 0x08, 0xc1,
+ 0x36, 0xbe, 0x76, 0x90,
+ 0x06, 0x86, 0x44, 0xdc, 0x8c, 0xa1, 0x1b, 0x4b, 0x28, 0xef, 0x3b, 0x12,
+ 0x18, 0x15, 0x03, 0x40,
+ 0x91, 0x20, 0xe6, 0x56, 0x50, 0x6b, 0xa8, 0xae, 0x03, 0xfd, 0x15, 0x71,
+ 0x01, 0x87, 0xa9, 0xb9,
+ 0xa3, 0x59, 0xbf, 0x8c, 0x7f, 0xf4, 0x79, 0x8a, 0x98, 0x6d, 0xa6, 0xef,
+ 0xc9, 0x9d, 0xb0, 0x7d,
+ 0xff, 0x9b, 0x98, 0x86, 0x59, 0xb6, 0xe4, 0x3b, 0x8e, 0xec, 0xfd, 0xb8,
+ 0x7a, 0x8c, 0x9e, 0x32,
+ 0x9c, 0x6f, 0x70, 0xb6, 0x08, 0x85, 0x7b, 0xc5, 0x5f, 0x92, 0x37, 0x52,
+ 0x35, 0xf4, 0x4e, 0x98,
+ 0x2b, 0xa4, 0x94, 0xb7, 0xd9, 0x31, 0x58, 0x36, 0x37, 0xd8, 0x0b, 0xd1,
+ 0xac, 0x17, 0xf4, 0xa6,
+ 0xc6, 0x2b, 0x13, 0x60, 0xa2, 0x66, 0xfd, 0x3f, 0x61, 0xfc, 0x57, 0x17,
+ 0x9e, 0xf0, 0x63, 0x97,
+ 0x39, 0xb0, 0x8b, 0xe6, 0xfb, 0xd0, 0x19, 0x04, 0xef, 0x10, 0xaa, 0xaf,
+ 0xe4, 0x7c, 0xfd, 0xa5,
+ 0x29, 0x67, 0xa8, 0x42, 0x1c, 0xef, 0x51, 0x0f, 0x2f, 0x3c, 0xa3, 0xdf,
+ 0xa4, 0xa5, 0xf5, 0x27,
+ 0x5b, 0xc4, 0x7d, 0x4d, 0x29, 0x8c, 0x63, 0x07, 0x32, 0x1c, 0x34, 0x42,
+ 0xaf, 0x5d, 0xcc, 0xae,
+ 0x90, 0xa0, 0xf8, 0xcd, 0xd3, 0x04, 0x4d, 0x53, 0x0f, 0x8f, 0x41, 0x76,
+ 0x05, 0xde, 0x48, 0x18,
+ 0x58, 0x87, 0x5f, 0x23, 0x6f, 0x3d, 0x8f, 0xc3, 0x26, 0x8a, 0xc8, 0x4b,
+ 0xa3, 0xb6, 0x2c, 0x8e,
+ 0xf1, 0x97, 0x2c, 0x08, 0x47, 0xe9, 0xdb, 0x94, 0xc6, 0x15, 0x23, 0x92,
+ 0x42, 0x14, 0x99, 0x33,
+ 0xdf, 0xf6, 0xde, 0x0d, 0x54, 0xc8, 0x74, 0x2d, 0xcd, 0xb4, 0xef, 0x58,
+ 0xfa, 0xfd, 0x8e, 0xf5,
+ 0x28, 0xe7, 0xb6, 0xd9, 0x9f, 0x80, 0xb4, 0xf2, 0x23, 0x4e, 0xf7, 0xd8,
+ 0xa0, 0xfc, 0x14, 0x86,
+ 0x60, 0xb7, 0xca, 0x5e, 0x17, 0x82, 0x73, 0x3a, 0xc5, 0xe8, 0x36, 0xe3,
+ 0x43, 0x93, 0x30, 0x8a,
+ 0x79, 0x6a, 0x07, 0x33, 0xe1, 0x2c, 0xfa, 0x28, 0x69, 0xa0, 0x8e, 0xac,
+ 0x27, 0x9e, 0xdd, 0xe8,
+ 0x76, 0xe6, 0xad, 0x26, 0x7c, 0x1c, 0x20, 0x7a, 0x2d, 0x2b, 0x04, 0x81,
+ 0x1b, 0x5f, 0x3b, 0x48,
+ 0x03, 0x43, 0x22, 0x6e, 0x46, 0xb1, 0xec, 0xc4, 0x14, 0x96, 0xfc, 0x09,
+ 0x0c, 0xeb, 0xe0, 0x20,
+ 0xc8, 0x27, 0xa7, 0xee, 0xbc, 0x39, 0xc2, 0x90, 0x29, 0x05, 0x89, 0x3d,
+ 0xa6, 0x68, 0x64, 0x96,
+ 0x02, 0xc3, 0x3c, 0xf5, 0xc5, 0xde, 0x09, 0x39, 0x18, 0xe4, 0xa8, 0x0e,
+ 0x08, 0xb2, 0x01, 0x81,
+ 0x12, 0x14, 0x1f, 0x51, 0x22, 0xe1, 0x41, 0x32, 0xd8, 0xc8, 0xa1, 0x7e,
+ 0x48, 0x6b, 0x09, 0x03,
+ 0xef, 0x4c, 0xbb, 0x22, 0xbe, 0x89, 0xac, 0x30, 0x4e, 0xc0, 0xf4, 0xc8,
+ 0x3a, 0x55, 0x96, 0xb0,
+ 0x46, 0x5c, 0xc8, 0x09, 0x96, 0x5d, 0xf8, 0x67, 0xae, 0x5f, 0x1f, 0x11,
+ 0xdb, 0xf7, 0x23, 0x0d,
+ 0x51, 0x8d, 0xb1, 0xea, 0x7e, 0xac, 0x4e, 0xda, 0x4a, 0xee, 0x79, 0x74,
+ 0x87, 0x62, 0xc9, 0x6e,
+ 0xdb, 0xb3, 0xa6, 0x24, 0x1d, 0xb7, 0x66, 0x5f, 0xfd, 0xbf, 0x7c, 0x44,
+ 0xea, 0x5a, 0x8c, 0x34,
+ 0x74, 0x25, 0x91, 0xd3, 0xb9, 0xc2, 0x29, 0x43, 0x35, 0xcf, 0xac, 0x8f,
+ 0x13, 0xed, 0x3a, 0xc9,
+ 0x0f, 0x8c, 0xaa, 0x15, 0x9d, 0x30, 0xda, 0x52, 0x44, 0x8b, 0x8a, 0x2d,
+ 0x3c, 0xc1, 0xe6, 0xa0,
+ 0xc1, 0x2d, 0x49, 0x27, 0xad, 0xa8, 0x03, 0x89, 0x45, 0x61, 0x38, 0x02,
+ 0x82, 0xbc, 0x81, 0x76,
+ 0x8d, 0x38, 0x4d, 0x89, 0x6c, 0xd5, 0xd6, 0x33, 0x93, 0xcc, 0x6a, 0x25,
+ 0x71, 0x74, 0xa7, 0xbb,
+ 0x68, 0x3d, 0x3a, 0x0c, 0x85, 0x7c, 0x57, 0xde, 0xa5, 0xfe, 0xd3, 0xdb,
+ 0x63, 0x1e, 0x34, 0xcb,
+ 0xb7, 0xcb, 0xe4, 0x01, 0xd1, 0xb4, 0x23, 0xf3, 0x68, 0x4a, 0x3c, 0x83,
+ 0x99, 0xe3, 0xba, 0x3e,
+ 0x0e, 0x0c, 0xb4, 0x8e, 0x1e, 0x5f, 0x3f, 0xaf, 0x48, 0xf9, 0xde, 0x2a,
+ 0x38, 0x98, 0x07, 0x01,
+ 0x5d, 0x42, 0x39, 0x91, 0xa5, 0x2d, 0x78, 0x4c, 0x1a, 0xf3, 0x0f, 0x50,
+ 0xb7, 0x48, 0xcf, 0xee,
+ 0xe2, 0x03, 0x2d, 0xc2, 0xe6, 0x67, 0x7f, 0x5b, 0x12, 0xaf, 0xd6, 0xeb,
+ 0x0e, 0x26, 0x71, 0x91,
+ 0xc0, 0xad, 0x57, 0xbc, 0x2e, 0xc7, 0xe6, 0x74, 0x49, 0x13, 0x6c, 0x05,
+ 0x86, 0xe5, 0x60, 0xd7,
+ 0x96, 0x26, 0xbc, 0x11, 0x5f, 0xa5, 0x56, 0x18, 0x27, 0x60, 0x7a, 0x64,
+ 0x1d, 0xcb, 0x4b, 0x58,
+ 0xad, 0x55, 0x0b, 0x02, 0x61, 0xab, 0x46, 0x25, 0xd0, 0x94, 0x78, 0xc5,
+ 0xf1, 0x05, 0xb7, 0x7c,
+ 0x01, 0x80, 0x1e, 0x9b, 0x83, 0x6f, 0xe5, 0xfd, 0x0c, 0x72, 0x54, 0x07,
+ 0x04, 0x59, 0xe1, 0xa1,
+ 0x24, 0x28, 0x3e, 0xa2, 0x44, 0x01, 0x82, 0x64, 0x73, 0x53, 0x81, 0xfc,
+ 0x90, 0xd6, 0x12, 0x06,
+ 0xe8, 0x4a, 0xe1, 0x65, 0xb1, 0x47, 0x52, 0x86, 0x6a, 0x5d, 0x9b, 0xdd,
+ 0x26, 0x19, 0x74, 0x51,
+ 0x8c, 0xb8, 0x53, 0x12, 0xef, 0xba, 0x33, 0xce, 0x9f, 0xbe, 0x3e, 0x22,
+ 0x75, 0x2d, 0x46, 0x1a,
+ 0xf3, 0x54, 0x10, 0xfd, 0x82, 0x37, 0xd2, 0xad, 0xde, 0xf1, 0x8b, 0x9c,
+ 0x4a, 0xa6, 0x98, 0xb2,
+ 0xa7, 0x1c, 0xc7, 0xa5, 0x36, 0x8b, 0x6b, 0xf8, 0xa8, 0x66, 0x35, 0xf3,
+ 0xd9, 0x3a, 0xb2, 0xbc,
+ 0x34, 0xff, 0x1d, 0x06, 0xa3, 0x3e, 0xca, 0x6f, 0xb3, 0x7f, 0x88, 0x8c,
+ 0xd0, 0x0f, 0x1a, 0x84,
+ 0xe6, 0x46, 0x55, 0xeb, 0xaf, 0x18, 0x6d, 0x29, 0x22, 0xa4, 0x45, 0xf7,
+ 0x1e, 0x81, 0x73, 0x50,
+ 0x48, 0x50, 0x7c, 0x87, 0x88, 0x02, 0xc7, 0xc8, 0xe6, 0xa6, 0xc1, 0x3b,
+ 0xe3, 0x6f, 0x24, 0x0c,
+ 0xba, 0x84, 0x72, 0xe1, 0x89, 0x5a, 0xf0, 0x98, 0x34, 0x25, 0x1e, 0xa0,
+ 0xad, 0x90, 0x5d, 0x1f,
+ 0x07, 0x06, 0x5a, 0x47, 0x0f, 0xce, 0xfe, 0xb6, 0x24, 0x9d, 0x6f, 0x15,
+ 0x1c, 0x4c, 0xe2, 0xe1,
+ 0xfc, 0xd8, 0xba, 0xe8, 0x1f, 0x07, 0x08, 0xff, 0x9a, 0x7a, 0x01, 0xb1,
+ 0x76, 0x67, 0x7e, 0x12,
+ 0x4d, 0x95, 0x1a, 0x35, 0x42, 0x12, 0x30, 0x47, 0xda, 0xdf, 0x06, 0x20,
+ 0xf7, 0x91, 0xc7, 0x6c,
+ 0x19, 0xdd, 0xcd, 0x6d, 0xf6, 0xae, 0x89, 0x12, 0xac, 0x48, 0xb8, 0x4f,
+ 0x64, 0x0d, 0xed, 0x62,
+ 0x42, 0x19, 0xb0, 0x20, 0xdf, 0x22, 0xea, 0x15, 0x9e, 0x54, 0x8c, 0x0d,
+ 0xcb, 0x50, 0x21, 0xcc,
+ 0x75, 0xa5, 0x8f, 0x48, 0x3a, 0xad, 0xcc, 0xbe, 0x39, 0xbd, 0xf8, 0x88,
+ 0x17, 0xb4, 0xdb, 0x68,
+ 0x4c, 0x15, 0x04, 0xae, 0xc1, 0x7d, 0xd5, 0xba, 0xd6, 0xad, 0x52, 0x27,
+ 0xf3, 0xc8, 0x26, 0xcd,
+ 0xa9, 0x10, 0x73, 0x2b, 0x28, 0xd4, 0x54, 0x57, 0xe0, 0x9f, 0xeb, 0xd9,
+ 0xe1, 0xa2, 0xb5, 0xbd,
+ 0x82, 0xb4, 0xe7, 0x9c, 0xf1, 0xe5, 0x0c, 0x61, 0xd7, 0x47, 0xe0, 0x08,
+ 0x4d, 0xb5, 0x41, 0x1b,
+ 0xf7, 0x11, 0x68, 0xd4, 0xcb, 0x48, 0xc0, 0xdf, 0xee, 0xfa, 0x18, 0x80,
+ 0x5a, 0x01, 0x9a, 0x73,
+ 0x08, 0x8a, 0xf0, 0x52, 0x92, 0xfe, 0x24, 0xe4, 0x60, 0x16, 0xe5, 0x38,
+ 0x20, 0x8d, 0x04, 0x41,
+ 0x4f, 0x56, 0x26, 0xc0, 0x87, 0xcc, 0x39, 0x7e, 0xc2, 0x3b, 0xae, 0x2e,
+ 0xff, 0x23, 0xc6, 0xed,
+ 0x10, 0xd7, 0x23, 0xa4, 0xe7, 0x3f, 0x48, 0x0b, 0xc0, 0x2c, 0x09, 0x70,
+ 0x40, 0xd9, 0x08, 0x82,
+ 0x3b, 0x73, 0xb7, 0x13, 0x3e, 0x0e, 0x10, 0x3d, 0xf7, 0xf4, 0x02, 0xa1,
+ 0xec, 0xce, 0xfc, 0x24,
+ 0xcb, 0x64, 0x85, 0x80, 0xfa, 0x88, 0x2e, 0x54, 0x3d, 0x93, 0x75, 0x34,
+ 0xaa, 0x83, 0x84, 0xb6,
+ 0x20, 0x6d, 0x46, 0x8b, 0x0d, 0x7e, 0x90, 0x16, 0x43, 0x58, 0x12, 0xe0,
+ 0x80, 0x71, 0x10, 0xc7,
+ 0x63, 0xf4, 0xe8, 0x30, 0x51, 0x33, 0x9f, 0xfe, 0xd1, 0x7e, 0xca, 0xea,
+ 0x4f, 0x78, 0xd0, 0xaa,
+ 0x73, 0x23, 0xcb, 0x94, 0xb6, 0x0c, 0xd7, 0xf5, 0x11, 0x52, 0xc3, 0x9a,
+ 0x0f, 0xa1, 0xd8, 0x28,
+ 0xed, 0x8f, 0x87, 0xd7, 0x7b, 0x57, 0xa5, 0x09, 0x56, 0x24, 0x5c, 0xc6,
+ 0x32, 0xe7, 0x97, 0x31,
+ 0xea, 0x89, 0xdd, 0x90, 0x74, 0x99, 0x5b, 0xbf, 0x72, 0xb9, 0x33, 0xd3,
+ 0x2e, 0xab, 0x75, 0xd0,
+ 0xc9, 0xa7, 0xb9, 0x75, 0x3f, 0x56, 0x27, 0x6d, 0x25, 0x77, 0xdd, 0x3a,
+ 0xa2, 0x31, 0x85, 0x37,
+ 0x32, 0x79, 0x59, 0xda, 0x2f, 0x9f, 0xd1, 0x24, 0x9b, 0x90, 0xb3, 0x9e,
+ 0xc8, 0x1a, 0x19, 0xc4,
+ 0x84, 0x32, 0xa3, 0x40, 0x7d, 0x44, 0x17, 0x2a, 0xff, 0xa8, 0xdb, 0x1a,
+ 0x55, 0xa0, 0x42, 0x5b,
+ 0x53, 0x4e, 0x8d, 0x1f, 0xbb, 0x72, 0x47, 0xe3, 0x52, 0x0a, 0xd1, 0x7a,
+ 0x8f, 0xd0, 0xc8, 0xef,
+ 0x04, 0x45, 0x78, 0x29, 0x49, 0x7f, 0x12, 0x72, 0x30, 0x0b, 0x93, 0x1c,
+ 0x10, 0xa7, 0x02, 0xc1,
+ 0x7c, 0xaf, 0x61, 0x81, 0x2b, 0x3c, 0x0d, 0xa7, 0x55, 0xd9, 0x49, 0xb7,
+ 0x33, 0x60, 0x3e, 0x88,
+ 0x41, 0x5a, 0x92, 0x4e, 0x99, 0x93, 0x06, 0xd1, 0x8a, 0xc2, 0x70, 0x04,
+ 0xc7, 0xbb, 0xc1, 0xec,
+ 0x27, 0x6b, 0x1c, 0xcc, 0x02, 0xb0, 0x6e, 0xa0, 0x67, 0xc5, 0x7d, 0xf5,
+ 0x9c, 0x3d, 0xf2, 0x26,
+ 0x55, 0xc8, 0xc9, 0xc3, 0x37, 0xd3, 0x5c, 0xa8, 0x7a, 0xe5, 0xea, 0x68,
+ 0x97, 0xc5, 0xcb, 0xaf,
+ 0xcf, 0x21, 0xfd, 0xa9, 0xb3, 0xf7, 0x3c, 0x26, 0x0d, 0x98, 0xe6, 0x28,
+ 0xba, 0x24, 0x86, 0x77,
+ 0x71, 0xe0, 0xf7, 0x61, 0x73, 0xd2, 0xde, 0xcc, 0x09, 0xb6, 0x6b, 0x94,
+ 0x07, 0x13, 0xd9, 0xa9,
+ 0x11, 0x57, 0x3d, 0x3f, 0x64, 0x50, 0xad, 0xf6, 0xcc, 0x5e, 0x5d, 0x77,
+ 0x44, 0x80, 0xe9, 0x23,
+ 0x97, 0xa6, 0xa2, 0x8a, 0xdc, 0xca, 0xb3, 0xe5, 0x2b, 0x12, 0x2e, 0x63,
+ 0x19, 0x92, 0xaa, 0xf9,
+ 0xd9, 0x70, 0x9a, 0xd1, 0xd8, 0x69, 0x6f, 0x66, 0xe5, 0x5b, 0xd4, 0x4a,
+ 0xe2, 0xe8, 0x8d, 0xb5,
+ 0xd0, 0x7a, 0x74, 0x18, 0xc9, 0xf8, 0xae, 0x7f, 0x89, 0x3f, 0x65, 0x75,
+ 0xc6, 0x3c, 0x68, 0x55,
+ 0xa8, 0x90, 0x6d, 0xb0, 0xab, 0xbb, 0xb1, 0xaa, 0xec, 0xed, 0xbf, 0xde,
+ 0xe5, 0xfb, 0x54, 0x1c,
+ 0x1b, 0x1e, 0xf1, 0x98, 0x33, 0x70, 0x80, 0x2b, 0xb4, 0xac, 0x10, 0x41,
+ 0x6c, 0xbf, 0xec, 0xe3,
+ 0x16, 0x51, 0x67, 0x78, 0x6b, 0x9e, 0x53, 0x40, 0xe8, 0xc3, 0x32, 0x62,
+ 0x58, 0xcc, 0x0b, 0xc2,
+ 0x6c, 0x78, 0x42, 0x25, 0xcc, 0x03, 0x45, 0xac, 0x95, 0xf5, 0x40, 0xc7,
+ 0x73, 0xb9, 0x36, 0x0a,
+ 0x2f, 0xe1, 0xec, 0x9e, 0x90, 0x4e, 0x4a, 0x44, 0x07, 0xd3, 0x98, 0xcd,
+ 0xbc, 0xb0, 0xf6, 0x67,
+ 0x45, 0x1f, 0xea, 0x67, 0xd0, 0xec, 0x14, 0xa3, 0xba, 0xc9, 0xe3, 0x18,
+ 0xd7, 0x1c, 0xc3, 0x2d,
+ 0x33, 0xf9, 0x47, 0x41, 0xac, 0xf0, 0x34, 0xd9, 0x97, 0xe2, 0xe7, 0x99,
+ 0xcc, 0x43, 0xf8, 0x65,
+ 0x1d, 0x98, 0xb5, 0x44, 0xbf, 0xd1, 0x9b, 0x60, 0x9c, 0x43, 0x2b, 0x53,
+ 0x74, 0xaa, 0xef, 0xa3,
+ 0xfe, 0x1b, 0x86, 0x1d, 0xda, 0xd9, 0x01, 0xc6, 0x82, 0x9e, 0xa9, 0xbf,
+ 0x7e, 0xd5, 0x7f, 0x93,
+ 0x7a, 0x29, 0x25, 0x5d, 0xa7, 0x9d, 0x16, 0xec, 0x7d, 0x36, 0x72, 0xa5,
+ 0x2b, 0x75, 0x3d, 0xc8,
+ 0x64, 0xf2, 0xb2, 0x77, 0x5e, 0xfd, 0x61, 0x48, 0xf5, 0xe3, 0xa5, 0xff,
+ 0x53, 0x34, 0x32, 0x4b,
+ 0xb3, 0x8e, 0x9c, 0x28, 0x98, 0xcb, 0x31, 0x81, 0x58, 0x41, 0xaf, 0x9f,
+ 0x89, 0x44, 0xb8, 0xff,
+ 0x1f, 0x5b, 0x89, 0xb1, 0x7a, 0x0f, 0x92, 0x59, 0x84, 0xa7, 0x83, 0x5d,
+ 0x7c, 0x18, 0xee, 0x22,
+ 0x2e, 0x61, 0xf2, 0x05, 0x13, 0x21, 0xaf, 0xb9, 0x0b, 0xa1, 0xcc, 0xca,
+ 0xb8, 0xe9, 0x17, 0xc6,
+ 0xe4, 0x85, 0x69, 0x1e, 0x6a, 0xc6, 0x64, 0x10, 0x3a, 0x40, 0xed, 0xf9,
+ 0x16, 0x33, 0x72, 0xd1,
+ 0x6a, 0xfe, 0x06, 0xf9, 0x40, 0xa2, 0x5e, 0xe7, 0xbd, 0x1a, 0x7b, 0xd5,
+ 0x6b, 0xac, 0x35, 0x4a,
+ 0x7d, 0x2f, 0x7f, 0x1a, 0xa8, 0x53, 0xe8, 0x5a, 0x59, 0xab, 0x1d, 0xb0,
+ 0x37, 0x39, 0xdf, 0x29,
+ 0xd8, 0xf0, 0x84, 0x4a, 0x5b, 0x06, 0x8a, 0x9b, 0xe9, 0x29, 0x80, 0x4d,
+ 0xe6, 0xb1, 0x6c, 0x14,
+ 0xc2, 0x6e, 0x6b, 0x49, 0xeb, 0x19, 0xef, 0x4d, 0x51, 0xf7, 0xc4, 0x0b,
+ 0x8e, 0x57, 0x61, 0x56,
+ 0x36, 0x3c, 0x21, 0xf3, 0x66, 0xe0, 0xc3, 0x56, 0xab, 0x9b, 0x20, 0x82,
+ 0xd8, 0xbd, 0x1b, 0x05,
+ 0xf8, 0x9d, 0xc2, 0xc1, 0x56, 0x78, 0x1a, 0x8d, 0xaa, 0x71, 0x92, 0xad,
+ 0x66, 0xc0, 0x7c, 0xd3,
+ 0x26, 0xeb, 0x02, 0x57, 0x81, 0xdf, 0x8b, 0x5d, 0x6b, 0xb7, 0x29, 0xf2,
+ 0x98, 0x64, 0x13, 0x87,
+ 0x3f, 0x36, 0xcf, 0x3a, 0x77, 0x71, 0x02, 0x4f, 0xc7, 0xff, 0x91, 0xbd,
+ 0xfc, 0x69, 0xfe, 0xe5,
+ 0x0a, 0x49, 0xcc, 0xa7, 0x57, 0x20, 0x2d, 0xdd, 0x78, 0xf2, 0x4d, 0x36,
+ 0x28, 0x3f, 0x05, 0xc0,
+ 0x9f, 0x2c, 0x52, 0xd8, 0x4e, 0x34, 0x97, 0x01, 0x4b, 0x04, 0xcb, 0x5b,
+ 0x39, 0x1f, 0xae, 0xb8,
+ 0xf4, 0x52, 0x4a, 0xba, 0x8d, 0xf9, 0x2c, 0x1b, 0xfa, 0x6c, 0xe4, 0x89,
+ 0x56, 0xea, 0x7a, 0x53,
+ 0x1a, 0x9e, 0xef, 0x03, 0xb0, 0x1f, 0x65, 0xd6, 0xb8, 0xde, 0x44, 0x46,
+ 0x68, 0xe6, 0x0d, 0x42,
+ 0xa5, 0xdf, 0xfb, 0x50, 0xf3, 0x55, 0x62, 0xc1, 0xb0, 0x82, 0x9d, 0xfd,
+ 0xd1, 0x88, 0xb3, 0x3d,
+ 0x61, 0x37, 0xd4, 0xc5, 0x94, 0xed, 0x96, 0xc7, 0xc9, 0x9a, 0x62, 0xe4,
+ 0x47, 0xca, 0xd1, 0x2b,
+ 0x35, 0x7f, 0x03, 0x9d, 0x20, 0x51, 0x2f, 0x92, 0xbf, 0x0d, 0xdc, 0x8b,
+ 0xd4, 0x56, 0xfb, 0x25,
+ 0x7b, 0xa9, 0x3b, 0xc6, 0x24, 0xf2, 0xf3, 0x11, 0x71, 0x44, 0x26, 0xa2,
+ 0x2f, 0x2c, 0xdc, 0x69,
+ 0xde, 0x76, 0xc0, 0x96, 0xd7, 0xa7, 0x91, 0xd0, 0xc1, 0xc6, 0xbb, 0x5f,
+ 0xfe, 0xa4, 0x6f, 0x54,
+ 0xb5, 0x08, 0xd8, 0xf4, 0x14, 0x6a, 0x2a, 0xca, 0x70, 0xae, 0x94, 0x8d,
+ 0x91, 0x51, 0xbb, 0xbf,
+ 0xda, 0x33, 0xb8, 0xbf, 0x9e, 0xd8, 0x83, 0xa2, 0xf1, 0xcd, 0x28, 0x43,
+ 0xee, 0x03, 0x6d, 0x95,
+ 0xbc, 0x02, 0x36, 0x3d, 0x05, 0xfb, 0xeb, 0xd3, 0x1c, 0xca, 0x25, 0xb2,
+ 0xb5, 0x85, 0x5e, 0x5f,
+ 0xd7, 0x7c, 0x2e, 0x5f, 0xc6, 0x36, 0x50, 0xc9, 0xad, 0xa2, 0x0a, 0x60,
+ 0xda, 0x70, 0x8a, 0xb4,
+ 0xab, 0xd3, 0x4f, 0xde, 0xed, 0x0a, 0x5d, 0x6e, 0xf8, 0x7b, 0x43, 0xd7,
+ 0xe9, 0x10, 0xb4, 0x3c,
+ 0x22, 0xae, 0x7a, 0x7e, 0xc8, 0xa0, 0x99, 0x2f, 0x5b, 0xbc, 0xba, 0xee,
+ 0x88, 0xc3, 0x11, 0x46,
+ 0x66, 0x31, 0x8e, 0x82, 0x9b, 0x23, 0x68, 0x71, 0xed, 0x07, 0x0d, 0xf1,
+ 0x5b, 0x86, 0x33, 0xca,
+ 0x3a, 0xf3, 0xa9, 0x88, 0xbd, 0x61, 0xf5, 0xc0, 0xfb, 0x86, 0x56, 0xa6,
+ 0xe8, 0x97, 0x1d, 0x85,
+ 0x9a, 0xe9, 0x34, 0x6a, 0x84, 0x24, 0x60, 0x8e, 0x77, 0x7d, 0x0c, 0x40,
+ 0x2d, 0xe1, 0x4d, 0xd8,
+ 0x6b, 0x7e, 0x18, 0x62, 0xc3, 0xcd, 0xbb, 0x1a, 0xb1, 0x68, 0x2f, 0xd2,
+ 0x6f, 0xf5, 0xd4, 0xeb,
+ 0x05, 0xc5, 0x66, 0xb2, 0xca, 0x10, 0xf7, 0x8f, 0x3c, 0x79, 0xc7, 0x1b,
+ 0x14, 0xfe, 0xe3, 0x60,
+ 0x6f, 0x3b, 0x60, 0x4b, 0x8a, 0xb2, 0xa9, 0x68, 0x81, 0x63, 0xbc, 0xce,
+ 0x7f, 0x52, 0xd6, 0x2a,
+ 0x80, 0x77, 0xdb, 0x69, 0x34, 0x3b, 0x05, 0x58, 0xcf, 0xa3, 0x48, 0x06,
+ 0x45, 0x07, 0x40, 0x9a,
+ 0x5c, 0xc2, 0x27, 0x0a, 0x26, 0x42, 0x9d, 0xb1, 0x16, 0x81, 0x5b, 0x57,
+ 0xb3, 0x11, 0x2e, 0x4f,
+ 0xfb, 0xde, 0xe0, 0xaf, 0x10, 0xc9, 0xf6, 0x49, 0xbe, 0xe7, 0x6e, 0xa4,
+ 0x6a, 0x2b, 0x9c, 0xf3,
+ 0x89, 0x7d, 0x35, 0xa0, 0x25, 0xaa, 0xc4, 0x41, 0xa3, 0xc7, 0xf9, 0x39,
+ 0x61, 0xd3, 0xa5, 0x7a,
+ 0x5e, 0x01, 0x1b, 0xff, 0xe3, 0x9c, 0x94, 0x88, 0x0e, 0x65, 0xf3, 0x59,
+ 0xbb, 0xa3, 0x2f, 0xce,
+ 0x8a, 0x3e, 0x17, 0xce, 0x63, 0x1b, 0x28, 0x85, 0xb7, 0x51, 0x05, 0x30,
+ 0x6d, 0x38, 0x45, 0x5a,
+ 0xbb, 0x04, 0x6c, 0x7a, 0x0a, 0x35, 0x15, 0x65, 0x38, 0x57, 0x4a, 0xa7,
+ 0xa9, 0xc9, 0xbc, 0xbe,
+ 0x6d, 0xf8, 0x5c, 0xbe, 0x4f, 0x6c, 0xa0, 0x51, 0x99, 0x87, 0x14, 0xc0,
+ 0x77, 0xe0, 0xd7, 0xab,
+ 0x9d, 0xef, 0x6e, 0x2d, 0x8b, 0xea, 0x9e, 0x38, 0x53, 0xe0, 0x63, 0x55,
+ 0x31, 0xad, 0xaf, 0x39,
+ 0x25, 0xa8, 0x20, 0x39, 0xc7, 0x6e, 0x67, 0x99, 0x7f, 0x21, 0xd5, 0xfb,
+ 0x94, 0x8f, 0xf3, 0xa7,
+ 0xc4, 0xe8, 0x2f, 0x95, 0x67, 0xb8, 0xf4, 0x06, 0x79, 0x18, 0xff, 0x19,
+ 0x96, 0x42, 0x62, 0x16,
+ 0x15, 0x12, 0x45, 0x16, 0x2d, 0x2f, 0xbf, 0x84, 0xfc, 0x55, 0xce, 0x6b,
+ 0x54, 0x27, 0xeb, 0xe2,
+ 0x85, 0xb2, 0xbd, 0xdb, 0xfe, 0x2b, 0xf2, 0xd7, 0xf3, 0xda, 0x8f, 0x1d,
+ 0x51, 0xf9, 0xa3, 0xfa,
+ 0xd6, 0xfc, 0x30, 0xc4, 0x45, 0x59, 0xb5, 0x34, 0xa1, 0xd0, 0x5e, 0x67,
+ 0xde, 0x29, 0x6b, 0x15,
+ 0xe1, 0x40, 0x0f, 0xac, 0xa0, 0xd6, 0x93, 0x9f, 0x06, 0x39, 0x2a, 0xe2,
+ 0x02, 0xcd, 0x91, 0xb1,
+ 0xd4, 0x3f, 0x0c, 0x31, 0x80, 0x87, 0xbc, 0x0d, 0xb9, 0x34, 0xf6, 0x69,
+ 0xd6, 0x9b, 0x6a, 0x94,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xd1, 0xfa, 0x6a, 0x83, 0x4a, 0x97, 0x4b, 0x82, 0x85, 0x4d, 0x31, 0x72,
+ 0xc2, 0x65, 0x89, 0xf4,
+ 0x7e, 0x6c, 0x5d, 0x74, 0xee, 0xe2, 0x04, 0x9e, 0x4d, 0x3d, 0xe1, 0xb9,
+ 0x3b, 0xd2, 0x3f, 0x09,
+ 0xb8, 0x47, 0x4e, 0x14, 0x4c, 0x84, 0xf9, 0xa1, 0x2c, 0xc1, 0xb6, 0xae,
+ 0xa5, 0x22, 0x5c, 0x9e,
+ },
+ { /* 9 */
+ 0xa5, 0x55, 0xa4, 0x90, 0xc6, 0x8d, 0x2f, 0xd5, 0x71, 0x80, 0x04, 0x89,
+ 0xcb, 0x72, 0x1b, 0x5d,
+ 0x2d, 0x90, 0x75, 0x4e, 0x36, 0xf9, 0x9f, 0x17, 0x62, 0x87, 0xa3, 0x5a,
+ 0x48, 0x8a, 0xa4, 0x15,
+ 0x32, 0x9f, 0x4c, 0x80, 0x9d, 0x5f, 0xd4, 0xf3, 0xbf, 0x6c, 0x3b, 0x64,
+ 0xae, 0x3d, 0x18, 0xe9,
+ 0x8f, 0x0b, 0x94, 0x6d, 0x4b, 0xb1, 0x7f, 0x15, 0x81, 0x1e, 0x6c, 0xdd,
+ 0xe4, 0xac, 0x86, 0xd3,
+ 0x0e, 0x5f, 0x8a, 0xa5, 0xb5, 0x49, 0x5d, 0x6d, 0xe7, 0x32, 0x55, 0x1c,
+ 0xce, 0xa8, 0x72, 0xf5,
+ 0x30, 0x41, 0xf8, 0xfa, 0x20, 0xc6, 0xcb, 0x66, 0x9e, 0x27, 0xa6, 0x60,
+ 0xc1, 0x05, 0xc9, 0xce,
+ 0x38, 0xbf, 0x6d, 0xd1, 0x91, 0xe7, 0xb7, 0x77, 0x1a, 0xc8, 0x97, 0x70,
+ 0xbe, 0xe5, 0x0b, 0x52,
+ 0xc0, 0xc7, 0x66, 0x6e, 0x80, 0x9e, 0xaa, 0x5b, 0x3d, 0x9c, 0xdd, 0x43,
+ 0x82, 0x14, 0xa2, 0xbe,
+ 0x54, 0xbc, 0x60, 0x39, 0xd9, 0x78, 0xa0, 0x43, 0x23, 0xff, 0xd0, 0xa8,
+ 0x5e, 0x7f, 0xf9, 0xdf,
+ 0xe6, 0x18, 0x68, 0x4c, 0x05, 0x72, 0xb8, 0x63, 0x0b, 0x7b, 0x7d, 0x0f,
+ 0x0c, 0x5a, 0x9c, 0xe2,
+ 0x9e, 0x5b, 0x27, 0x06, 0x55, 0x5e, 0x69, 0x9c, 0xbb, 0xc7, 0xa1, 0xff,
+ 0xcc, 0xb3, 0x48, 0xda,
+ 0x39, 0xd0, 0x37, 0xec, 0x2e, 0x4a, 0x59, 0xdc, 0xeb, 0x0c, 0x38, 0x72,
+ 0x68, 0xf9, 0x82, 0xa0,
+ 0x55, 0xd3, 0x3a, 0x04, 0x66, 0xd5, 0x4e, 0xe8, 0xd2, 0x3b, 0x7f, 0xaa,
+ 0x88, 0x63, 0x70, 0x2d,
+ 0x7e, 0xe2, 0x50, 0xc4, 0x54, 0x44, 0xf0, 0x83, 0xd3, 0x61, 0xb8, 0xfc,
+ 0x71, 0xa1, 0x64, 0x51,
+ 0x52, 0x1d, 0x7f, 0xb7, 0xdd, 0x10, 0x81, 0x3f, 0x40, 0x22, 0xb4, 0xa4,
+ 0xef, 0x37, 0x49, 0xb6,
+ 0x91, 0x6b, 0xf7, 0x9e, 0x5f, 0xba, 0xda, 0x5a, 0xad, 0x31, 0x5b, 0xe1,
+ 0xd4, 0x07, 0xb3, 0xdd,
+ 0x64, 0xfd, 0x98, 0xc3, 0xf9, 0xbe, 0x6b, 0x25, 0xbd, 0xd8, 0x76, 0xc8,
+ 0x9f, 0x7a, 0x30, 0x11,
+ 0x03, 0xb1, 0xee, 0x47, 0x02, 0x34, 0xf1, 0x3e, 0xd0, 0x8f, 0x32, 0x06,
+ 0xb9, 0x24, 0x58, 0xd5,
+ 0x57, 0x0d, 0x8e, 0x7e, 0xdb, 0x4c, 0x51, 0x7d, 0xf3, 0x70, 0xe2, 0xae,
+ 0xe7, 0x5b, 0xa1, 0x0a,
+ 0x5a, 0xe3, 0xea, 0x9c, 0x6c, 0x31, 0xfd, 0x2e, 0xc4, 0xcd, 0x85, 0xb4,
+ 0x90, 0xd7, 0x8b, 0x2a,
+ 0x1c, 0xbe, 0xd7, 0x89, 0xa9, 0x92, 0xba, 0xda, 0x0d, 0x64, 0xaa, 0x38,
+ 0x5f, 0x93, 0xe4, 0x29,
+ 0x60, 0x82, 0x33, 0x37, 0x40, 0x4f, 0x55, 0xcc, 0xff, 0x4e, 0x8f, 0xc0,
+ 0x41, 0x0a, 0x51, 0x5f,
+ 0x07, 0xce, 0x45, 0xb3, 0xbb, 0xc5, 0xcf, 0xd7, 0x92, 0x19, 0xcb, 0x0e,
+ 0x67, 0x54, 0x39, 0x9b,
+ 0x18, 0xc1, 0x7c, 0x7d, 0x10, 0x63, 0x84, 0x33, 0x4f, 0xf2, 0x53, 0x30,
+ 0x81, 0xe3, 0x85, 0x67,
+ 0x21, 0x11, 0x4b, 0x91, 0x3e, 0x29, 0xdd, 0xef, 0xa4, 0xfe, 0x6b, 0x42,
+ 0xe9, 0x1a, 0x07, 0xc7,
+ 0x72, 0x63, 0x6e, 0x1b, 0x5c, 0x94, 0xb2, 0x7b, 0x15, 0x18, 0x70, 0xe4,
+ 0xd0, 0x31, 0xc7, 0x83,
+ 0xa8, 0xbb, 0xc0, 0x72, 0x71, 0xf0, 0x83, 0x86, 0x46, 0x3d, 0x63, 0x93,
+ 0xbc, 0xfe, 0x31, 0x7d,
+ 0xd1, 0x97, 0xd5, 0x05, 0x9e, 0x71, 0xbc, 0xd2, 0x07, 0x45, 0x10, 0x61,
+ 0xaa, 0x0b, 0x6c, 0xb7,
+ 0x29, 0xef, 0xde, 0xba, 0x8f, 0x08, 0xa1, 0xfe, 0x20, 0x11, 0x5a, 0x52,
+ 0x96, 0xfa, 0xc5, 0x5b,
+ 0xc6, 0x66, 0x79, 0xe0, 0x84, 0xf6, 0x8b, 0x27, 0x5e, 0x41, 0xb9, 0x4f,
+ 0x33, 0x5c, 0x12, 0xd7,
+ 0xa4, 0x3a, 0xfe, 0xad, 0x79, 0x20, 0xc1, 0x7e, 0x80, 0x44, 0xab, 0x8b,
+ 0x1d, 0x6e, 0x92, 0xaf,
+ 0x3f, 0x71, 0x28, 0x62, 0x2a, 0x22, 0x78, 0xa0, 0x88, 0xd1, 0x5c, 0x7e,
+ 0xd9, 0xb1, 0x32, 0xc9,
+ 0xe0, 0xb9, 0x77, 0xc2, 0x01, 0x1a, 0x99, 0x1f, 0x68, 0xa6, 0x19, 0x03,
+ 0xbd, 0x12, 0x2c, 0x8b,
+ 0x27, 0xb0, 0x54, 0x1f, 0x3a, 0x41, 0xfc, 0x93, 0xc7, 0x23, 0x0f, 0x4e,
+ 0x58, 0x52, 0xb7, 0xae,
+ 0x8d, 0xd5, 0x20, 0x17, 0xf6, 0x28, 0x60, 0x80, 0xa0, 0x55, 0xf1, 0xd9,
+ 0x8b, 0x94, 0x57, 0xf4,
+ 0x0c, 0x81, 0x3e, 0xdf, 0x08, 0xd0, 0x42, 0xf8, 0xc6, 0x79, 0xc8, 0x18,
+ 0xa1, 0x90, 0xa3, 0xd2,
+ 0x82, 0xe5, 0xf0, 0x8f, 0xfc, 0xcc, 0xd3, 0x46, 0xb6, 0xa3, 0x0b, 0xc7,
+ 0x93, 0x20, 0xac, 0xf3,
+ 0xea, 0x99, 0x56, 0x93, 0x0d, 0xa2, 0xfa, 0x9b, 0xcd, 0x02, 0xb5, 0x17,
+ 0xad, 0xca, 0x3f, 0x30,
+ 0xae, 0x1a, 0xdf, 0xfc, 0x75, 0x98, 0xa2, 0xfa, 0x25, 0xe0, 0x07, 0x9f,
+ 0x0d, 0xb6, 0x81, 0x14,
+ 0xb4, 0x05, 0x17, 0xfb, 0xd8, 0x62, 0x39, 0x5c, 0x4b, 0x59, 0xc9, 0xab,
+ 0xe3, 0x6d, 0xd5, 0x54,
+ 0x9a, 0x24, 0x8c, 0xf2, 0xec, 0xaf, 0x57, 0x75, 0xf9, 0x51, 0x58, 0xf7,
+ 0x12, 0xc3, 0x29, 0x94,
+ 0x63, 0x33, 0xdd, 0x70, 0x42, 0x7b, 0xa4, 0xf2, 0x2f, 0xc1, 0xbd, 0xc6,
+ 0xf8, 0x2e, 0x09, 0x8a,
+ 0x49, 0x6d, 0xed, 0x8d, 0xcf, 0x47, 0xf4, 0x32, 0xdf, 0x5f, 0xd5, 0x92,
+ 0xd7, 0xf0, 0x94, 0x04,
+ 0xe5, 0xa9, 0x86, 0x0b, 0x07, 0x46, 0x49, 0x5d, 0xdb, 0xf4, 0x4f, 0x09,
+ 0xb5, 0x7e, 0xc4, 0x37,
+ 0x42, 0x22, 0x96, 0xe1, 0x7c, 0x52, 0x79, 0x1d, 0x8b, 0x3f, 0xd6, 0x84,
+ 0x11, 0x34, 0x0e, 0x4d,
+ 0xe4, 0xc6, 0xdc, 0x36, 0xb8, 0xeb, 0xa7, 0xf6, 0x2a, 0x30, 0xe0, 0x0b,
+ 0x63, 0x62, 0x4d, 0xc5,
+ 0x15, 0x2f, 0x18, 0x9f, 0xa7, 0x1e, 0x28, 0x60, 0x78, 0x4f, 0x34, 0x2a,
+ 0xf6, 0x6f, 0xaf, 0x47,
+ 0xb7, 0xb4, 0xf9, 0xbc, 0xda, 0x56, 0xc8, 0x62, 0x9b, 0xd6, 0xfb, 0xad,
+ 0x5a, 0x49, 0x8d, 0x81,
+ 0xc8, 0x39, 0xf3, 0x45, 0x31, 0xbf, 0xd6, 0x4a, 0xb9, 0x73, 0xec, 0x53,
+ 0xfd, 0xf4, 0x60, 0x22,
+ 0x06, 0xa1, 0x1f, 0x8e, 0x04, 0x68, 0x21, 0x7c, 0x63, 0xdd, 0x64, 0x0c,
+ 0xb1, 0x48, 0xb0, 0x69,
+ 0x70, 0xbd, 0xda, 0x61, 0xe1, 0x0d, 0xad, 0xee, 0x34, 0x53, 0xed, 0xe0,
+ 0xbf, 0x09, 0x16, 0xa4,
+ 0x9d, 0xea, 0xc9, 0x41, 0x57, 0x6a, 0x98, 0xa2, 0x6b, 0x48, 0x93, 0xf9,
+ 0x75, 0x97, 0x10, 0x0f,
+ 0x41, 0x93, 0x78, 0xa6, 0x7e, 0x66, 0x88, 0x23, 0x5b, 0xb0, 0xe4, 0x82,
+ 0xa8, 0x10, 0x56, 0x98,
+ 0x75, 0xad, 0x2b, 0xa8, 0xe7, 0x51, 0x7d, 0xac, 0x87, 0x01, 0xbb, 0xea,
+ 0xb7, 0x65, 0xfe, 0x18,
+ 0x19, 0xae, 0x26, 0x40, 0xaf, 0xce, 0x6a, 0x98, 0xbe, 0x36, 0xfc, 0x32,
+ 0x57, 0xff, 0x0c, 0x95,
+ 0xc9, 0x56, 0xa9, 0x78, 0x8e, 0x12, 0x38, 0xe1, 0x48, 0xb7, 0x43, 0x51,
+ 0x2b, 0xe8, 0xe9, 0xd0,
+ 0xaa, 0x65, 0x74, 0x08, 0xcc, 0x69, 0x9c, 0x13, 0x67, 0x76, 0xfe, 0x97,
+ 0xd3, 0xc6, 0xe0, 0x5a,
+ 0xfc, 0x07, 0xa0, 0x4b, 0xa8, 0x88, 0x23, 0xc5, 0x65, 0xc2, 0xb3, 0x3b,
+ 0xe2, 0x81, 0xc8, 0xa2,
+ 0x4d, 0x12, 0x46, 0x79, 0x76, 0xb6, 0xca, 0xdb, 0x9d, 0xc9, 0x2c, 0x9a,
+ 0x09, 0x80, 0xf5, 0x4a,
+ 0xbf, 0x4a, 0x6c, 0x97, 0x6b, 0x77, 0xb4, 0x73, 0x1f, 0x39, 0xca, 0xbd,
+ 0x25, 0xa9, 0x4f, 0x1d,
+ 0x2a, 0x5e, 0x30, 0xfd, 0x8d, 0x3c, 0x50, 0xc0, 0xf0, 0x9e, 0x68, 0x54,
+ 0x2f, 0xde, 0x9d, 0x8e,
+ 0x73, 0x0c, 0x34, 0x26, 0xe3, 0x39, 0x5c, 0xd0, 0xe4, 0xdc, 0xdf, 0xe6,
+ 0x06, 0x2d, 0x4e, 0x71,
+ 0x84, 0x44, 0xef, 0x01, 0xf8, 0xa4, 0xf2, 0x3a, 0xd5, 0x7e, 0x6f, 0xcb,
+ 0x22, 0x68, 0x1c, 0x9a,
+ 0xd5, 0xe8, 0x7e, 0xf1, 0x27, 0x80, 0x82, 0x3b, 0x45, 0xd3, 0xe9, 0x69,
+ 0x74, 0x7b, 0x0d, 0xf9,
+ 0xc3, 0x76, 0x88, 0x29, 0x82, 0xaa, 0x5b, 0x65, 0xed, 0x13, 0xef, 0x45,
+ 0x3b, 0x30, 0xfa, 0x6b,
+ 0xaf, 0x75, 0x85, 0xc1, 0xca, 0x35, 0x4c, 0x51, 0xd4, 0x24, 0xa8, 0x9d,
+ 0xdb, 0xaa, 0x08, 0xe6,
+ 0x2b, 0x31, 0x6a, 0xc0, 0x32, 0x91, 0xbe, 0x6b, 0x01, 0x5a, 0xc7, 0x56,
+ 0xf9, 0xc2, 0x14, 0x7c,
+ 0x86, 0x9a, 0x5b, 0x7b, 0x45, 0x3d, 0xed, 0xaf, 0xf4, 0x35, 0xf2, 0xcf,
+ 0x4d, 0x50, 0xcd, 0xbd,
+ 0xa7, 0x8b, 0x10, 0xea, 0x7b, 0x14, 0x30, 0x40, 0x50, 0xcb, 0x99, 0x8d,
+ 0xa4, 0x4a, 0xca, 0x7a,
+ 0xb1, 0x15, 0xe6, 0x32, 0xde, 0x3e, 0xe9, 0x1e, 0xf8, 0x0b, 0x9f, 0xa1,
+ 0xeb, 0x01, 0x3d, 0xe8,
+ 0xb2, 0xa4, 0x08, 0x75, 0xdc, 0x0a, 0x18, 0x20, 0x28, 0x84, 0xad, 0xa7,
+ 0x52, 0x25, 0x65, 0x3d,
+ 0x5b, 0x8c, 0xb0, 0xa1, 0xd3, 0x9c, 0x13, 0x85, 0x35, 0x09, 0x2a, 0xb6,
+ 0x46, 0xcb, 0x02, 0xd8,
+ 0x46, 0x5d, 0x3d, 0x15, 0xc5, 0xa3, 0x47, 0xf4, 0xc9, 0xa9, 0x2f, 0x8c,
+ 0xcf, 0x44, 0x6f, 0x03,
+ 0xd3, 0x49, 0x61, 0x7f, 0x23, 0xe8, 0xa3, 0x47, 0x26, 0x0e, 0x8d, 0x65,
+ 0xc5, 0x33, 0xbd, 0x90,
+ 0x9f, 0x34, 0x7d, 0x3b, 0xea, 0xf3, 0x87, 0x37, 0x4a, 0x03, 0x0e, 0xfd,
+ 0x1a, 0xaf, 0xc1, 0x28,
+ 0xfd, 0x68, 0xfa, 0x76, 0x17, 0x25, 0xcd, 0x6e, 0x94, 0x06, 0x1c, 0x39,
+ 0x34, 0x9d, 0x41, 0x50,
+ 0xd4, 0x87, 0x24, 0xcc, 0x98, 0x2d, 0x6c, 0x90, 0xb4, 0x17, 0x46, 0x6b,
+ 0xa2, 0x67, 0x84, 0x0b,
+ 0x0f, 0x30, 0xd0, 0x98, 0x0a, 0xe4, 0xb3, 0xc6, 0x16, 0xf6, 0xfa, 0x1e,
+ 0x18, 0xb4, 0xfb, 0x07,
+ 0x9c, 0x85, 0x93, 0x7c, 0xe8, 0xc7, 0x76, 0x09, 0x9a, 0x8c, 0x3c, 0xfb,
+ 0xa3, 0x8b, 0x99, 0xfd,
+ 0x2f, 0x4e, 0xc1, 0x34, 0x8b, 0x60, 0x80, 0x82, 0x43, 0xcc, 0x3e, 0x5e,
+ 0x27, 0xb2, 0x75, 0x32,
+ 0x9b, 0x4b, 0xd6, 0xcf, 0x53, 0x02, 0xb9, 0xde, 0x08, 0x95, 0xf7, 0xf5,
+ 0xc4, 0xdf, 0xa0, 0x66,
+ 0x43, 0x4d, 0xcc, 0xdc, 0xc3, 0xff, 0x97, 0xb6, 0x7a, 0xfb, 0x79, 0x86,
+ 0xc7, 0x28, 0x87, 0xbf,
+ 0xef, 0x89, 0xa7, 0x5a, 0x0b, 0xfe, 0x2a, 0xd9, 0x7e, 0x50, 0xe3, 0x1d,
+ 0xa5, 0xa6, 0xd7, 0x8c,
+ 0xd9, 0x69, 0x40, 0x2e, 0x2f, 0x50, 0xc0, 0xc3, 0x83, 0xaa, 0x21, 0x71,
+ 0xd5, 0xeb, 0xae, 0x2b,
+ 0x79, 0x2c, 0x15, 0x77, 0xef, 0x81, 0x3f, 0x54, 0x41, 0x78, 0x73, 0xf2,
+ 0x16, 0xf5, 0x5d, 0xca,
+ 0xb6, 0xdb, 0xa3, 0x81, 0x65, 0xfb, 0x26, 0xc9, 0x6a, 0x12, 0x54, 0xaf,
+ 0x8c, 0x55, 0x04, 0x73,
+ 0x53, 0x72, 0x25, 0x8a, 0x62, 0xbd, 0x6f, 0x94, 0xb1, 0xe6, 0x1b, 0xa6,
+ 0x39, 0x2b, 0xc0, 0x44,
+ 0x7f, 0x8d, 0x0a, 0xf9, 0xeb, 0xe9, 0x1e, 0x28, 0x22, 0xa5, 0x17, 0xfe,
+ 0xa7, 0xbd, 0xed, 0xa3,
+ 0xc1, 0xa8, 0x3c, 0x53, 0x3f, 0x33, 0x44, 0xf0, 0xcc, 0x58, 0x72, 0x41,
+ 0x54, 0x08, 0x2b, 0x4c,
+ 0xf0, 0x86, 0x9e, 0x94, 0xa0, 0x58, 0x61, 0x3d, 0xa3, 0xbb, 0x7b, 0x23,
+ 0x43, 0x11, 0x6b, 0x70,
+ 0x23, 0xcf, 0xff, 0xeb, 0x83, 0xb0, 0xc2, 0x7a, 0x85, 0xb5, 0xf6, 0x46,
+ 0x86, 0x22, 0xd6, 0xe0,
+ 0xe7, 0x77, 0x32, 0x71, 0xba, 0xdf, 0x56, 0xc8, 0xfa, 0xbf, 0xd2, 0x0d,
+ 0xda, 0x46, 0x15, 0x10,
+ 0x25, 0x6e, 0xe0, 0x65, 0x87, 0xd8, 0xe3, 0x06, 0xe6, 0x68, 0x92, 0x4a,
+ 0x37, 0x6a, 0x66, 0x89,
+ 0x5e, 0x9c, 0x41, 0x68, 0xd5, 0xc0, 0xc3, 0xc7, 0x86, 0x5b, 0x7c, 0xbc,
+ 0x4e, 0xa7, 0xea, 0x64,
+ 0xb5, 0x6a, 0x4d, 0xc6, 0x67, 0xcf, 0xd7, 0xf7, 0xba, 0x9d, 0x66, 0xa9,
+ 0x35, 0x71, 0x5c, 0xa6,
+ 0x1e, 0x60, 0x63, 0xf3, 0x14, 0x0b, 0xa5, 0x4f, 0x2c, 0x2f, 0x37, 0x3c,
+ 0x30, 0xab, 0x35, 0x0e,
+ 0xa2, 0x9b, 0xe1, 0x23, 0x7d, 0x48, 0xe0, 0x02, 0xe3, 0x99, 0xcf, 0x87,
+ 0xac, 0x26, 0x22, 0xc6,
+ 0xdf, 0xc8, 0x5f, 0xa0, 0x2b, 0x38, 0xe1, 0xbf, 0xe0, 0x77, 0x45, 0x7d,
+ 0x64, 0xa3, 0x1e, 0x42,
+ 0xa6, 0xe4, 0x4a, 0xd7, 0xc4, 0xb9, 0xde, 0xeb, 0xa1, 0x0f, 0x36, 0x8f,
+ 0x72, 0x56, 0x43, 0x88,
+ 0xfe, 0xd9, 0x14, 0x31, 0x15, 0x11, 0x3c, 0x50, 0x44, 0x89, 0x2e, 0x3f,
+ 0x8d, 0xb9, 0x19, 0x85,
+ 0xac, 0xc4, 0x6b, 0x86, 0xc8, 0x01, 0xbd, 0x6f, 0x04, 0xab, 0x9a, 0x9b,
+ 0x62, 0x8e, 0x50, 0x33,
+ 0x22, 0xa0, 0xa5, 0xd6, 0x3c, 0x1d, 0x2c, 0xd1, 0x74, 0x71, 0x59, 0x44,
+ 0x50, 0x3e, 0x5f, 0x12,
+ 0xf9, 0x17, 0x51, 0x82, 0xae, 0xd4, 0xf3, 0x87, 0xd6, 0x90, 0xe5, 0x31,
+ 0xea, 0xed, 0x20, 0x1e,
+ 0xe2, 0x67, 0xc3, 0xb8, 0xbc, 0x83, 0x86, 0x8a, 0x49, 0xed, 0x84, 0x07,
+ 0xd2, 0x2a, 0xfd, 0xac,
+ 0x4a, 0xdc, 0x03, 0xca, 0xcd, 0x73, 0x05, 0x0c, 0x0f, 0xd0, 0xe7, 0x94,
+ 0x6e, 0xd4, 0xcc, 0xd1,
+ 0xbc, 0xfb, 0x82, 0xd0, 0x69, 0x43, 0x45, 0x4d, 0xcf, 0xb6, 0xf8, 0xbb,
+ 0x9c, 0x8d, 0x17, 0xc8,
+ 0x35, 0x51, 0x09, 0x33, 0x26, 0x9a, 0x1b, 0x24, 0x2d, 0x75, 0xf0, 0x6a,
+ 0xc9, 0x69, 0x21, 0x72,
+ 0xca, 0xe7, 0x47, 0x3f, 0x8c, 0x26, 0xc9, 0xdf, 0x98, 0x38, 0x71, 0x57,
+ 0x92, 0xcc, 0xb1, 0x05,
+ 0xee, 0xe6, 0xfd, 0x67, 0xb4, 0x53, 0xc4, 0x72, 0x8f, 0x94, 0x4c, 0x1f,
+ 0x73, 0xba, 0x5e, 0x7e,
+ 0x78, 0x43, 0x4f, 0x4a, 0x50, 0x2c, 0xd1, 0xff, 0xb0, 0xbc, 0xdc, 0xf0,
+ 0xc0, 0xe9, 0xd4, 0x38,
+ 0x05, 0x10, 0xf1, 0xc9, 0x06, 0x5c, 0xd0, 0x42, 0xb3, 0x52, 0x56, 0x0a,
+ 0x08, 0x6c, 0xe8, 0xbc,
+ 0x6b, 0xcd, 0x48, 0x5b, 0xf3, 0x5a, 0xd8, 0xe3, 0xab, 0x2e, 0x8c, 0xd6,
+ 0x87, 0xce, 0xcb, 0x16,
+ 0x51, 0xac, 0x91, 0xf0, 0xdf, 0x24, 0x70, 0x01, 0x90, 0xad, 0x86, 0xa2,
+ 0x56, 0x13, 0x11, 0x63,
+ 0xe1, 0xd6, 0x2d, 0xff, 0xbe, 0xb7, 0x77, 0xb4, 0x99, 0x62, 0xb6, 0x01,
+ 0x6b, 0x0e, 0xa5, 0x79,
+ 0x59, 0x52, 0x04, 0xdb, 0x6e, 0x05, 0x0c, 0x10, 0x14, 0x42, 0xb7, 0xb2,
+ 0x29, 0xf3, 0xd3, 0xff,
+ 0xa3, 0xf4, 0xbb, 0x1e, 0xc2, 0xe5, 0x0e, 0xa9, 0x12, 0x5d, 0x60, 0x85,
+ 0x7a, 0x3a, 0xab, 0x34,
+ 0xf2, 0x58, 0x2a, 0xee, 0x1d, 0xc1, 0x7e, 0xa8, 0x82, 0xf0, 0xe6, 0x27,
+ 0x2c, 0x29, 0xba, 0x57,
+ 0x71, 0xd2, 0x80, 0x5c, 0x5e, 0xa0, 0x43, 0x45, 0xc5, 0x97, 0x42, 0xe2,
+ 0x69, 0x15, 0x9f, 0x56,
+ 0x56, 0x62, 0xd4, 0x43, 0x64, 0xe1, 0xbf, 0xd6, 0x02, 0xb4, 0x4d, 0xac,
+ 0x31, 0x47, 0x28, 0xf8,
+ 0x11, 0x50, 0xb3, 0x6b, 0x1e, 0xef, 0x16, 0x89, 0x3a, 0xd9, 0xcd, 0x22,
+ 0x28, 0x1f, 0xce, 0x09,
+ 0x6a, 0xa2, 0x12, 0x66, 0x4c, 0xf7, 0x36, 0x48, 0x5a, 0xea, 0x23, 0xd4,
+ 0x51, 0xd2, 0x42, 0xe4,
+ 0x89, 0xaa, 0x8b, 0xe3, 0x4f, 0xd9, 0x5e, 0x69, 0xe2, 0xc3, 0x08, 0xd1,
+ 0x55, 0xe4, 0x36, 0xba,
+ 0x94, 0x7b, 0x06, 0x57, 0x59, 0xe6, 0x0a, 0x18, 0x1e, 0x63, 0x0d, 0xeb,
+ 0xdc, 0x6b, 0x5b, 0x61,
+ 0x65, 0x92, 0xc2, 0xfe, 0x46, 0x13, 0x85, 0x8e, 0x4c, 0x1c, 0xd9, 0xca,
+ 0x49, 0x66, 0xb9, 0xe3,
+ 0x8c, 0xba, 0x7a, 0x2a, 0x49, 0x85, 0x8e, 0x2b, 0x51, 0x91, 0x5e, 0xdb,
+ 0x5d, 0x88, 0xde, 0x06,
+ 0xbb, 0x35, 0xc7, 0x63, 0xd2, 0x86, 0x8a, 0x9a, 0x5d, 0xaf, 0x33, 0xb5,
+ 0xfb, 0xd9, 0x2e, 0x53,
+ 0x77, 0x73, 0x9f, 0xd2, 0x5a, 0xc8, 0x62, 0x39, 0xa6, 0x4a, 0x26, 0xee,
+ 0xd8, 0x5d, 0x2f, 0x3f,
+ 0x3c, 0xc0, 0xc6, 0x25, 0x28, 0x16, 0x89, 0x9e, 0x58, 0x5e, 0x6e, 0x78,
+ 0x60, 0x95, 0x6a, 0x1c,
+ 0x7b, 0xf2, 0xa1, 0x0d, 0x52, 0x18, 0x20, 0xc1, 0x60, 0x33, 0xee, 0xf6,
+ 0x79, 0xcd, 0x8c, 0xed,
+ 0x28, 0x80, 0x84, 0x87, 0x30, 0xa5, 0x4f, 0x55, 0xd1, 0xd5, 0xf5, 0x50,
+ 0x40, 0xe6, 0x4c, 0xa9,
+ 0xab, 0x0a, 0x2e, 0x35, 0x73, 0xc4, 0x72, 0xb8, 0x96, 0xb2, 0x51, 0x95,
+ 0x05, 0xda, 0x69, 0xa8,
+ 0xd2, 0x26, 0x3b, 0x42, 0x9c, 0x45, 0x4d, 0xec, 0xd7, 0xca, 0x22, 0x67,
+ 0x13, 0x2f, 0x34, 0x62,
+ 0x31, 0x2e, 0xa2, 0xc7, 0x9f, 0x6b, 0x25, 0xcd, 0x6f, 0xe3, 0x09, 0x62,
+ 0x17, 0x19, 0x40, 0x3c,
+ 0xde, 0xa7, 0x05, 0x9d, 0x94, 0x95, 0x0f, 0x14, 0x11, 0xb3, 0xea, 0x7f,
+ 0xb2, 0xbf, 0x97, 0xb0,
+ 0xc4, 0xb8, 0xcd, 0x9a, 0x39, 0x6f, 0x94, 0xb2, 0x7f, 0x0a, 0x24, 0x4b,
+ 0x5c, 0x64, 0xc3, 0xf0,
+ 0x5f, 0xf3, 0x1b, 0x55, 0x6a, 0x6d, 0x2d, 0x6c, 0x77, 0x9f, 0xd3, 0xbe,
+ 0x98, 0xbb, 0x63, 0x96,
+ 0xcc, 0x46, 0x58, 0xb1, 0x88, 0x4e, 0xe8, 0xa3, 0xfb, 0xe5, 0x15, 0x5b,
+ 0x23, 0x84, 0x01, 0x6c,
+ 0xcf, 0xf7, 0xb6, 0xf6, 0x8a, 0x7a, 0x19, 0x9d, 0x2b, 0x6a, 0x27, 0x5d,
+ 0x9a, 0xa0, 0x59, 0xb9,
+ 0x76, 0x1c, 0xc5, 0xef, 0xe5, 0x65, 0x8c, 0x92, 0x57, 0x8e, 0x89, 0xec,
+ 0x0e, 0x41, 0xa6, 0xcd,
+ 0x2c, 0xff, 0x2f, 0x73, 0x89, 0x54, 0x71, 0xbc, 0x93, 0x43, 0x0c, 0x58,
+ 0x9e, 0x96, 0x2d, 0xe7,
+ 0xb8, 0x84, 0x29, 0x24, 0xd0, 0xb2, 0x7b, 0xa4, 0x8d, 0x20, 0x01, 0xb3,
+ 0x42, 0xfd, 0x76, 0x86,
+ 0xd8, 0x06, 0x1a, 0x13, 0x90, 0xfd, 0x2e, 0x68, 0x72, 0x6e, 0x8e, 0x73,
+ 0x03, 0xf7, 0x27, 0xd9,
+ 0x2e, 0x21, 0x9b, 0x09, 0x34, 0xcd, 0x6e, 0x29, 0xb2, 0x08, 0x91, 0x5c,
+ 0xf1, 0xae, 0xfc, 0xc0,
+ 0x36, 0xe0, 0xe7, 0x74, 0x24, 0xae, 0xea, 0x1a, 0xfd, 0xfa, 0xc2, 0x6c,
+ 0x70, 0x4d, 0x79, 0xa7,
+ 0xdb, 0xb7, 0xf4, 0x54, 0x92, 0xc9, 0xdf, 0x56, 0xa2, 0xe1, 0xbc, 0x75,
+ 0xba, 0xd3, 0x7f, 0x0c,
+ 0x69, 0x13, 0xfc, 0x21, 0x4e, 0xc3, 0xc7, 0x76, 0x8a, 0x65, 0x11, 0xd2,
+ 0xe8, 0xf6, 0x1a, 0x31,
+ 0xb3, 0xcb, 0x52, 0x48, 0x63, 0xa7, 0xf6, 0x8b, 0xd9, 0x40, 0x02, 0xa5,
+ 0x84, 0x39, 0xec, 0xcf,
+ 0x14, 0x40, 0x42, 0xa2, 0x18, 0xb3, 0xc6, 0xcb, 0x89, 0x8b, 0x9b, 0x28,
+ 0x20, 0x73, 0x26, 0xb5,
+ 0x95, 0x14, 0x5c, 0x6a, 0xe6, 0x4b, 0xe4, 0xb3, 0xef, 0xa7, 0xa2, 0xe9,
+ 0x0a, 0x77, 0xd2, 0x93,
+ 0xbe, 0x25, 0x36, 0xaa, 0xd4, 0xda, 0x5a, 0xd8, 0xee, 0xfd, 0x65, 0xbf,
+ 0xf3, 0xb5, 0xc6, 0xef,
+ 0x62, 0x5c, 0x87, 0x4d, 0xfd, 0xd6, 0x4a, 0x59, 0xde, 0x05, 0x12, 0xc4,
+ 0x2e, 0x32, 0x80, 0x78,
+ 0xa1, 0x2a, 0x0f, 0x64, 0x7f, 0x7c, 0x11, 0x3c, 0x33, 0x16, 0xfd, 0x81,
+ 0x15, 0x02, 0x7a, 0x13,
+ 0x3b, 0x0e, 0x83, 0x96, 0x93, 0xd3, 0x46, 0x49, 0xca, 0x47, 0xa5, 0x76,
+ 0x07, 0xc1, 0x53, 0x87,
+ 0x16, 0x9e, 0xf6, 0xd8, 0xa5, 0x2a, 0xd9, 0x5e, 0xa8, 0xc0, 0x06, 0x2c,
+ 0x4f, 0x4b, 0xf7, 0x92,
+ 0x66, 0x23, 0x2c, 0xb9, 0x44, 0x27, 0x74, 0xb0, 0x9c, 0x93, 0xeb, 0xcc,
+ 0xf0, 0x42, 0xe1, 0x36,
+ 0xe9, 0x28, 0xb8, 0xd4, 0x0f, 0x96, 0x0b, 0xa5, 0x1d, 0x8d, 0x87, 0x11,
+ 0x14, 0xee, 0x67, 0xe5,
+ 0x5c, 0x42, 0xf5, 0x12, 0x68, 0x59, 0xdc, 0x52, 0xa7, 0x10, 0xe1, 0xb8,
+ 0x21, 0x9f, 0x3b, 0x43,
+ 0x6c, 0x03, 0x0d, 0xe8, 0x48, 0x9f, 0x17, 0x34, 0x39, 0x37, 0x47, 0xd8,
+ 0xe0, 0x9a, 0xf2, 0x8d,
+ 0x6d, 0x6c, 0x57, 0xd5, 0xf7, 0x32, 0xf9, 0x9f, 0xc8, 0xf3, 0xe8, 0xda,
+ 0x36, 0x86, 0x7b, 0x7f,
+ 0xad, 0xab, 0x31, 0xbb, 0x77, 0xac, 0x53, 0xc4, 0xf5, 0x6f, 0x35, 0x99,
+ 0xb4, 0x92, 0xd9, 0xc1,
+ 0x37, 0x8f, 0xbd, 0x49, 0x9b, 0x03, 0x04, 0xb1, 0x0c, 0x3e, 0x6d, 0x6e,
+ 0xa6, 0x51, 0xf0, 0x55,
+ 0x61, 0xed, 0x69, 0x0a, 0xff, 0xe2, 0xbb, 0x67, 0x0e, 0x8a, 0x20, 0xc2,
+ 0x97, 0x16, 0xd8, 0xad,
+ 0x4b, 0xb3, 0x59, 0xf7, 0x72, 0xde, 0xeb, 0xa7, 0xfe, 0x14, 0x48, 0x96,
+ 0xb8, 0xc8, 0x45, 0x23,
+ 0xb9, 0xeb, 0x73, 0x19, 0x6f, 0x1f, 0x95, 0x0f, 0x7c, 0xe4, 0xae, 0xb1,
+ 0x94, 0xe1, 0xff, 0x74,
+ 0xe3, 0x08, 0x99, 0x85, 0x03, 0x2e, 0x68, 0x21, 0xb8, 0x29, 0x2b, 0x05,
+ 0x04, 0x36, 0x74, 0x5e,
+ 0xba, 0x5a, 0x9d, 0x5e, 0x6d, 0x2b, 0x64, 0x31, 0xac, 0x6b, 0x9c, 0xb7,
+ 0x2d, 0xc5, 0xa7, 0xa1,
+ 0xf1, 0xe9, 0xc4, 0xa9, 0x1f, 0xf5, 0x8f, 0x96, 0x52, 0x7f, 0xd4, 0x21,
+ 0x95, 0x0d, 0xe2, 0x82,
+ 0xa0, 0x45, 0x55, 0x59, 0xc0, 0xd1, 0xff, 0x97, 0xc2, 0xd2, 0x52, 0x83,
+ 0xc3, 0x1e, 0xf3, 0xe1,
+ 0x85, 0x2b, 0xb5, 0x3c, 0x47, 0x09, 0x1c, 0x91, 0x24, 0xba, 0xc0, 0xc9,
+ 0xf4, 0x74, 0x95, 0x68,
+ 0x83, 0x8a, 0xaa, 0xb2, 0x43, 0x61, 0x3d, 0xed, 0x47, 0x67, 0xa4, 0xc5,
+ 0x45, 0x3c, 0x25, 0x01,
+ 0xda, 0xd8, 0xae, 0x69, 0x2d, 0x64, 0x31, 0xfd, 0x53, 0x25, 0x13, 0x77,
+ 0x6c, 0xcf, 0xf6, 0xfe,
+ 0x47, 0x32, 0x67, 0x28, 0x7a, 0x0e, 0xa9, 0x5f, 0x38, 0x6d, 0x80, 0x8e,
+ 0x19, 0x58, 0xe6, 0xf1,
+ 0xc5, 0xd7, 0x97, 0xa7, 0x86, 0xc2, 0x7a, 0x19, 0x8e, 0xce, 0x8b, 0x49,
+ 0x8a, 0x78, 0x4a, 0x02,
+ 0xb0, 0x7a, 0xbc, 0x0f, 0x61, 0x93, 0x07, 0xb5, 0x09, 0xcf, 0x30, 0xa3,
+ 0x3d, 0x1d, 0xb4, 0x1a,
+ 0x33, 0xf0, 0x16, 0xbd, 0x22, 0xf2, 0x3a, 0x58, 0x4e, 0xa8, 0x94, 0x66,
+ 0x78, 0x21, 0x91, 0x1b,
+ 0xfa, 0xa6, 0xbf, 0xc5, 0xac, 0xe0, 0x02, 0xb9, 0x06, 0x1f, 0xd7, 0x37,
+ 0x53, 0xc9, 0x78, 0xcb,
+ 0x96, 0xa5, 0xb2, 0x2d, 0xe4, 0x7f, 0x15, 0x8d, 0x3f, 0x28, 0x90, 0xef,
+ 0xb3, 0x53, 0x8a, 0x46,
+ 0x6f, 0xb2, 0xe3, 0xaf, 0x4a, 0xab, 0xe6, 0x0a, 0xe9, 0xb8, 0x75, 0xde,
+ 0x59, 0xbe, 0xaa, 0x58,
+ 0x6e, 0xdd, 0xb9, 0x92, 0xf5, 0x06, 0x08, 0xa1, 0x18, 0x7c, 0xda, 0xdc,
+ 0x8f, 0xa2, 0x23, 0xaa,
+ 0xc2, 0x19, 0xd2, 0x14, 0x3d, 0x07, 0xb5, 0xce, 0x1c, 0xd7, 0x40, 0x47,
+ 0xed, 0x2c, 0x73, 0x99,
+ 0xf6, 0x27, 0x81, 0x1a, 0xa4, 0x30, 0x40, 0x41, 0xc0, 0x66, 0x1f, 0x2f,
+ 0xf2, 0x59, 0xdb, 0x19,
+ 0x50, 0xc3, 0xcb, 0xcd, 0x60, 0x89, 0x9e, 0xaa, 0x61, 0x69, 0x29, 0xa0,
+ 0x80, 0x0f, 0x98, 0x91,
+ 0xff, 0xb6, 0x4e, 0x0c, 0xaa, 0xbc, 0xd2, 0xfb, 0xb5, 0x4d, 0x81, 0x3d,
+ 0x5b, 0xa5, 0x90, 0x77,
+ 0x5d, 0x2d, 0xaf, 0x2f, 0xd7, 0xf4, 0x32, 0xf9, 0x56, 0xd4, 0x4e, 0xba,
+ 0xf7, 0x83, 0xb2, 0xb1,
+ 0xa9, 0xd4, 0x9a, 0x4f, 0xce, 0x5d, 0x6d, 0x2d, 0xb7, 0xf9, 0xcc, 0x91,
+ 0x6a, 0xe2, 0xb8, 0x8f,
+ 0x8e, 0x64, 0xce, 0x50, 0xf4, 0x1c, 0x91, 0xbe, 0x70, 0xda, 0xc3, 0xdf,
+ 0x32, 0xb0, 0x0f, 0x21,
+ 0x17, 0xf1, 0xac, 0xe5, 0x1a, 0x87, 0x37, 0xf5, 0x59, 0x04, 0xa9, 0x2e,
+ 0x99, 0x57, 0x7e, 0x60,
+ 0x1b, 0x70, 0x92, 0x3a, 0x12, 0x57, 0x75, 0x0d, 0x9f, 0x7d, 0x61, 0x36,
+ 0x38, 0xc7, 0xdd, 0xb2,
+ 0x97, 0xca, 0xe8, 0x10, 0x5b, 0xd2, 0xfb, 0x26, 0xce, 0xec, 0x3f, 0xed,
+ 0x65, 0x4f, 0x03, 0xb4,
+ 0x7d, 0x53, 0xbe, 0x83, 0x56, 0x70, 0x01, 0xbd, 0x03, 0xee, 0x8a, 0xfa,
+ 0xc8, 0x85, 0x3c, 0x84,
+ 0xec, 0x38, 0x49, 0x1d, 0x09, 0xca, 0xdb, 0xe7, 0xae, 0xdf, 0xd1, 0x1b,
+ 0x1c, 0x82, 0x8f, 0x59,
+ 0x58, 0x3d, 0x5e, 0xe6, 0xd1, 0xa8, 0xe2, 0xbb, 0xe5, 0x86, 0x18, 0xb0,
+ 0xff, 0xef, 0x5a, 0x0d,
+ 0xf7, 0x48, 0xdb, 0x27, 0x1b, 0x9d, 0xae, 0xea, 0x31, 0xa2, 0xb0, 0x2d,
+ 0x24, 0x45, 0x52, 0xeb,
+ 0x1f, 0x0f, 0x39, 0xce, 0xab, 0xa6, 0x4b, 0xe4, 0xdd, 0xeb, 0x98, 0x3e,
+ 0xe6, 0xb7, 0xbc, 0xfc,
+ 0xfb, 0xc9, 0xe5, 0xf8, 0x13, 0x4d, 0xec, 0x12, 0xf7, 0xdb, 0x78, 0x35,
+ 0x85, 0xd5, 0xf1, 0x39,
+ 0x7c, 0x3c, 0xe4, 0xbe, 0xe9, 0xdd, 0xef, 0x16, 0xf2, 0x2a, 0x25, 0xf8,
+ 0x1e, 0x99, 0xb5, 0x76,
+ 0x09, 0x91, 0xcf, 0x16, 0x0e, 0x8c, 0x92, 0xba, 0x75, 0x2b, 0x9e, 0x12,
+ 0xa9, 0xfc, 0x4b, 0x6e,
+ 0x0d, 0xee, 0x64, 0xe2, 0xb7, 0x7d, 0xac, 0x53, 0x37, 0xbd, 0x67, 0x1a,
+ 0x77, 0x8c, 0x2a, 0x20,
+ 0x7a, 0x9d, 0xfb, 0x30, 0xed, 0xb5, 0xce, 0x6a, 0x91, 0xf7, 0x41, 0xf4,
+ 0xaf, 0xd1, 0x05, 0x1f,
+ 0x67, 0x4c, 0x76, 0x84, 0xfb, 0x8a, 0x9a, 0x1b, 0x6d, 0x57, 0x44, 0xce,
+ 0x26, 0x5e, 0x68, 0xc4,
+ 0x45, 0xec, 0xd3, 0x52, 0xc7, 0x97, 0xb6, 0xca, 0x19, 0x26, 0x1d, 0x8a,
+ 0x76, 0x60, 0x37, 0xd6,
+ 0x87, 0xf5, 0x01, 0x46, 0xfa, 0x90, 0x03, 0x04, 0x05, 0xf1, 0x5d, 0xcd,
+ 0x9b, 0x4c, 0x44, 0x4f,
+ 0xdc, 0x79, 0xb1, 0xe7, 0x29, 0x0c, 0x10, 0x81, 0x30, 0xf8, 0x77, 0x7b,
+ 0xdd, 0x87, 0x46, 0x97,
+ 0xe8, 0x47, 0xe2, 0xe9, 0xb0, 0x3b, 0xe5, 0x0e, 0xec, 0x49, 0x28, 0x13,
+ 0xc2, 0xf2, 0xee, 0x17,
+ 0x4f, 0xcc, 0xf2, 0x03, 0xcb, 0x2f, 0xd5, 0x4e, 0xbc, 0x82, 0xb1, 0x9e,
+ 0x66, 0xb8, 0x24, 0x6d,
+ 0x1d, 0xd1, 0x8d, 0xb4, 0x16, 0x3f, 0x54, 0x71, 0xfc, 0xa0, 0x05, 0x3a,
+ 0x89, 0x8f, 0x6d, 0xdb,
+ 0x4e, 0xa3, 0xa8, 0x3e, 0x74, 0x82, 0x3b, 0xe5, 0x4d, 0x46, 0x1e, 0x9c,
+ 0xb0, 0xa4, 0xad, 0x9f,
+ 0x04, 0x7f, 0xab, 0xf4, 0xb9, 0xf1, 0x3e, 0xe9, 0x42, 0x96, 0xf9, 0x08,
+ 0xde, 0x70, 0x61, 0x4e,
+ 0xeb, 0xf6, 0x0c, 0xae, 0xb2, 0x0f, 0x14, 0x30, 0x3c, 0xc6, 0x1a, 0x15,
+ 0x7b, 0xd6, 0xb6, 0xc2,
+ 0xf8, 0x78, 0x0b, 0xbf, 0x11, 0x79, 0x1d, 0x2c, 0x27, 0x54, 0x4a, 0x33,
+ 0x3c, 0xf1, 0xa9, 0xec,
+ 0xf3, 0x37, 0x70, 0xd3, 0xa2, 0x6c, 0x90, 0x03, 0x73, 0x34, 0x49, 0x25,
+ 0xfa, 0x35, 0x33, 0xa5,
+ 0x3e, 0x1e, 0x72, 0x5f, 0x95, 0x8f, 0x96, 0x0b, 0x79, 0x15, 0xf3, 0x7c,
+ 0x0f, 0xad, 0xbb, 0x3b,
+ 0x3d, 0xaf, 0x9c, 0x18, 0x97, 0xbb, 0x67, 0x35, 0xa9, 0x9a, 0xc1, 0x7a,
+ 0xb6, 0x89, 0xe3, 0xee,
+ 0xbd, 0x94, 0xd8, 0xed, 0xd6, 0xee, 0xab, 0xe6, 0x3e, 0x72, 0x57, 0xb9,
+ 0x4a, 0x91, 0x9e, 0x3a,
+ 0x8a, 0x1b, 0x65, 0xa4, 0x4d, 0xed, 0xaf, 0x57, 0x32, 0x4c, 0x3a, 0xd7,
+ 0xec, 0xc0, 0x6e, 0x6f,
+ 0x88, 0xc5, 0xd1, 0xde, 0xf0, 0x74, 0xb0, 0xc2, 0x13, 0x07, 0xa7, 0xd3,
+ 0x83, 0xf8, 0xbf, 0x48,
+ 0xdd, 0x16, 0xeb, 0xda, 0x96, 0xa1, 0xfe, 0x2a, 0xc1, 0x3c, 0xd8, 0x79,
+ 0x0b, 0x9b, 0xcf, 0x65,
+ 0xcd, 0x29, 0x02, 0x8c, 0x37, 0xe3, 0x06, 0x08, 0x0a, 0x21, 0xba, 0x59,
+ 0xf5, 0x98, 0x88, 0x9e,
+ 0x0b, 0x4f, 0x7b, 0x6c, 0xb3, 0x15, 0x8d, 0x2f, 0x54, 0x60, 0x03, 0x16,
+ 0xc6, 0xc4, 0x9a, 0x49,
+ 0x13, 0x8e, 0x07, 0x11, 0xa3, 0x76, 0x09, 0x1c, 0x1b, 0x92, 0x50, 0x26,
+ 0x47, 0x27, 0x1f, 0x2e,
+ 0x98, 0xfa, 0x38, 0x88, 0x51, 0x36, 0x48, 0xe0, 0xd8, 0x1a, 0xc5, 0xf3,
+ 0x7d, 0xfb, 0xf8, 0xb3,
+ 0x02, 0xde, 0xb4, 0x7a, 0xbd, 0x99, 0x1f, 0x95, 0x21, 0x4b, 0x9d, 0x04,
+ 0x6f, 0x38, 0xd1, 0x27,
+ 0x93, 0xb5, 0x43, 0xe4, 0xe2, 0x23, 0xc5, 0xcf, 0x8c, 0x7a, 0xc6, 0xe5,
+ 0xbb, 0x3f, 0x62, 0xfa,
+ 0x80, 0x3b, 0x44, 0xf5, 0x41, 0x55, 0xcc, 0xd3, 0x97, 0xe8, 0x96, 0xc3,
+ 0xfc, 0x18, 0x7d, 0xd4,
+ 0x90, 0x04, 0xad, 0xa3, 0xe0, 0x17, 0x34, 0xf1, 0x5c, 0xf5, 0xf4, 0xe3,
+ 0x02, 0x1b, 0x3a, 0x2f,
+ 0xd0, 0xf8, 0x8f, 0x38, 0x21, 0xdc, 0x52, 0x79, 0xf6, 0x81, 0xbf, 0x63,
+ 0x7c, 0x17, 0xe5, 0x45,
+ 0x24, 0x01, 0xba, 0x58, 0x38, 0x75, 0x0d, 0xad, 0x17, 0xac, 0x3d, 0x48,
+ 0xe1, 0x76, 0xef, 0x7b,
+ 0x34, 0x3e, 0x53, 0x0e, 0x99, 0x37, 0xf5, 0x8f, 0xdc, 0xb1, 0x5f, 0x68,
+ 0x1f, 0x75, 0xa8, 0x80,
+ 0xcb, 0x88, 0x1d, 0x02, 0x33, 0x8b, 0x27, 0x74, 0x69, 0xfc, 0xde, 0x55,
+ 0x44, 0xd0, 0x38, 0xf7,
+ 0xed, 0x57, 0x13, 0x20, 0xb6, 0x67, 0x35, 0x4c, 0x5f, 0x1b, 0x7e, 0x19,
+ 0xca, 0x9e, 0x06, 0xab,
+ 0xf4, 0xf9, 0x35, 0x60, 0x19, 0xa9, 0x5f, 0xd4, 0xe1, 0x2d, 0x82, 0x2b,
+ 0x9d, 0x61, 0x0a, 0x3e,
+ 0xce, 0x98, 0xec, 0xcb, 0x35, 0xd7, 0xf7, 0x36, 0xda, 0xae, 0x88, 0x5f,
+ 0x4c, 0xbc, 0xd0, 0x4b,
+ 0x99, 0x95, 0x62, 0xb5, 0xee, 0x9b, 0xa6, 0x4b, 0x29, 0xde, 0x6a, 0xf1,
+ 0xab, 0xe7, 0x71, 0x41,
+ 0x10, 0x3f, 0xe9, 0x56, 0xa1, 0x42, 0xf8, 0x22, 0xcb, 0x1d, 0x62, 0x20,
+ 0xfe, 0x03, 0x47, 0xfb,
+ 0x44, 0x83, 0x89, 0x6f, 0x78, 0x3a, 0x58, 0x61, 0xe8, 0xe2, 0xb2, 0x88,
+ 0xa0, 0x7c, 0xbe, 0x24,
+ 0x40, 0xfc, 0x22, 0x9b, 0xc1, 0xcb, 0x66, 0x88, 0xaa, 0x74, 0x4b, 0x80,
+ 0x7e, 0x0c, 0xdf, 0x6a,
+ 0x92, 0xda, 0x19, 0xd9, 0x5d, 0x8e, 0x2b, 0x64, 0x7d, 0xbe, 0x69, 0xe7,
+ 0x6d, 0x23, 0xeb, 0x08,
+ 0x3a, 0x61, 0xd9, 0xab, 0x2c, 0x7e, 0xa8, 0xe2, 0x3b, 0x83, 0x0a, 0x74,
+ 0xd1, 0xdd, 0xda, 0x75,
+ 0x01, 0x6f, 0x5a, 0x3d, 0xbf, 0xad, 0xee, 0xab, 0xf1, 0xc4, 0xaf, 0x02,
+ 0xd6, 0x1c, 0x89, 0xf2,
+ 0x26, 0xdf, 0x0e, 0x22, 0x85, 0xec, 0x12, 0x38, 0x36, 0xe7, 0xa0, 0x4c,
+ 0x8e, 0x4e, 0x3e, 0x5c,
+ 0x12, 0xe1, 0x5d, 0x2c, 0x1c, 0xdb, 0xe7, 0xb7, 0xea, 0x56, 0xff, 0x24,
+ 0x91, 0x3b, 0x96, 0xdc,
+ 0x1a, 0x1f, 0xc8, 0x07, 0xad, 0xfa, 0x9b, 0xa6, 0x6e, 0xb9, 0xce, 0x34,
+ 0xee, 0xdb, 0x54, 0x40,
+ 0x48, 0x02, 0xb7, 0xb0, 0x70, 0xea, 0x1a, 0x99, 0x2e, 0x9b, 0x7a, 0x90,
+ 0x01, 0xec, 0x1d, 0xf6,
+ 0x68, 0x7c, 0xa6, 0x1c, 0xf1, 0x6e, 0x29, 0xdd, 0x7b, 0xa1, 0xbe, 0xd0,
+ 0x3e, 0xea, 0x93, 0xc3,
+ 0xf5, 0x96, 0x6f, 0x5d, 0xa6, 0x04, 0xb1, 0x7f, 0x10, 0xe9, 0x2d, 0x29,
+ 0x4b, 0x7d, 0x83, 0xcc,
+ 0x81, 0x54, 0x1e, 0xc8, 0xfe, 0xf8, 0x22, 0x78, 0x66, 0x2c, 0x39, 0xc1,
+ 0x2a, 0x04, 0xf4, 0x26,
+ 0x8b, 0x74, 0x3f, 0x99, 0xf2, 0x40, 0x41, 0xfc, 0xc3, 0x88, 0x95, 0xd5,
+ 0x3a, 0xdc, 0xe7, 0x9d,
+ 0xc7, 0x09, 0x23, 0xdd, 0x3b, 0x5b, 0x65, 0x8c, 0xaf, 0x85, 0x16, 0x4d,
+ 0xe5, 0x40, 0x9b, 0x25,
+ 0xd6, 0x59, 0x90, 0xb6, 0x25, 0xb4, 0x73, 0x05, 0x95, 0x5c, 0xdb, 0x6f,
+ 0xcd, 0x5f, 0x55, 0x2c,
+ 0x20, 0x7e, 0x11, 0xac, 0x81, 0x84, 0x33, 0x44, 0x55, 0x3a, 0xc4, 0x40,
+ 0x3f, 0x06, 0x8e, 0x35,
+ 0x0a, 0x20, 0x21, 0x51, 0x0c, 0xb8, 0x63, 0x84, 0xa5, 0xa4, 0xac, 0x14,
+ 0x10, 0xd8, 0x13, 0xbb,
+ 0x08, 0xfe, 0x95, 0x2b, 0xb1, 0x21, 0x7c, 0x11, 0x84, 0xef, 0x31, 0x10,
+ 0x7f, 0xe0, 0xc2, 0x9c,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x4c, 0x7d, 0x1c, 0x44, 0xc9, 0x1b, 0x24, 0x70, 0x6c, 0x0d, 0x83, 0x98,
+ 0xdf, 0x9c, 0x7c, 0xb8,
+ 0xd7, 0x36, 0xca, 0x8b, 0x9a, 0x19, 0x9d, 0xae, 0x64, 0x98, 0x74, 0x6d,
+ 0x1b, 0x43, 0xdc, 0xde,
+ 0x74, 0xc2, 0x71, 0x95, 0x58, 0xfc, 0x93, 0x07, 0x76, 0xc5, 0x14, 0xe8,
+ 0x61, 0x79, 0x77, 0xea,
+ },
+ { /* 10 */
+ 0x51, 0xf6, 0x5f, 0xcc, 0xc9, 0xbb, 0x4b, 0xca, 0x7e, 0x52, 0xea, 0x5b,
+ 0x67, 0xa2, 0xef, 0xe6,
+ 0x33, 0xae, 0xa5, 0x03, 0xf8, 0x72, 0xcf, 0x10, 0xac, 0xdb, 0x41, 0x06,
+ 0xb8, 0x66, 0xba, 0x67,
+ 0xa4, 0x6a, 0x15, 0x17, 0x52, 0x6f, 0xc2, 0xd0, 0x70, 0x26, 0xcb, 0x2e,
+ 0x94, 0x8b, 0x8e, 0x86,
+ 0x67, 0xde, 0xe5, 0xa5, 0xd2, 0x7e, 0xfa, 0xff, 0x18, 0x4a, 0x19, 0x89,
+ 0xa8, 0xce, 0x6e, 0xad,
+ 0x0a, 0xcf, 0x3e, 0xd4, 0x05, 0xad, 0xfc, 0x4a, 0x57, 0x45, 0xa7, 0x6b,
+ 0xee, 0x14, 0x76, 0x58,
+ 0xe7, 0x84, 0x9d, 0xfc, 0x92, 0x97, 0xe6, 0x09, 0x2c, 0x7c, 0x70, 0x3b,
+ 0xb6, 0x0d, 0x1e, 0x59,
+ 0x28, 0xba, 0xf8, 0xd6, 0x14, 0xf1, 0x76, 0xeb, 0x9f, 0xd7, 0xd9, 0x6f,
+ 0x3e, 0x50, 0x1b, 0xa3,
+ 0x1a, 0x55, 0x31, 0x76, 0x0d, 0x19, 0x1e, 0x24, 0xb0, 0x33, 0x03, 0xec,
+ 0x9d, 0x34, 0x78, 0xa7,
+ 0x6c, 0x50, 0xb7, 0xd2, 0x36, 0x49, 0xa1, 0x6a, 0xcc, 0x30, 0x25, 0x67,
+ 0x5d, 0xd8, 0xc1, 0x96,
+ 0x65, 0x5c, 0x3d, 0x20, 0xd3, 0x89, 0x77, 0x82, 0xdd, 0x34, 0xec, 0x40,
+ 0x9e, 0xca, 0x1f, 0x6b,
+ 0xfa, 0xd5, 0x6b, 0x65, 0x7d, 0xce, 0x0b, 0x75, 0x93, 0xf2, 0x34, 0xca,
+ 0x6a, 0x37, 0x2c, 0x14,
+ 0xe8, 0xcd, 0xbc, 0x42, 0x74, 0x8d, 0x64, 0x66, 0xb1, 0xfa, 0x65, 0x84,
+ 0x2f, 0x13, 0x53, 0x2d,
+ 0xac, 0x27, 0xf3, 0x46, 0x56, 0x35, 0xb3, 0xe7, 0xe2, 0x1d, 0x99, 0x8c,
+ 0x4c, 0x9b, 0x89, 0x18,
+ 0x5a, 0x78, 0x0d, 0xbb, 0x2d, 0x8c, 0x10, 0x5f, 0xaa, 0x28, 0xd6, 0xb5,
+ 0x92, 0xb4, 0x40, 0xdd,
+ 0xa9, 0xa1, 0xec, 0x2c, 0xb5, 0x82, 0xcd, 0xc2, 0x28, 0xde, 0x2b, 0x58,
+ 0x3b, 0x91, 0xb2, 0x34,
+ 0x30, 0x6d, 0x11, 0x25, 0x18, 0x1f, 0xe5, 0xb2, 0xea, 0x9a, 0x2f, 0x4a,
+ 0x95, 0x60, 0x12, 0xc2,
+ 0x8b, 0xd4, 0x2a, 0x2e, 0xa4, 0xde, 0x47, 0x63, 0xe0, 0x4c, 0x55, 0x5c,
+ 0xeb, 0xd5, 0xdf, 0xcf,
+ 0x83, 0x99, 0xcc, 0x7f, 0xa0, 0x84, 0x36, 0x54, 0x72, 0x77, 0x07, 0xfe,
+ 0x33, 0xc5, 0xd8, 0x51,
+ 0xef, 0xc9, 0x7b, 0xad, 0x96, 0xcd, 0x97, 0x3e, 0xbe, 0x47, 0x22, 0x99,
+ 0x6e, 0x1d, 0x19, 0xc7,
+ 0x66, 0x9f, 0x89, 0x06, 0x33, 0xe4, 0x5d, 0x20, 0x9b, 0x75, 0x82, 0x0c,
+ 0xb3, 0xcc, 0xb7, 0xce,
+ 0x14, 0x5d, 0x7c, 0x6b, 0x0a, 0x99, 0x3b, 0x94, 0xae, 0x8a, 0x8d, 0xd6,
+ 0x1f, 0x28, 0xec, 0xb0,
+ 0x0d, 0xcb, 0xf9, 0x3b, 0xe7, 0xed, 0x0f, 0x12, 0x58, 0xf8, 0xe0, 0x76,
+ 0xaf, 0x1a, 0x3c, 0xb2,
+ 0x05, 0x86, 0x1f, 0x6a, 0xe3, 0xb7, 0x7e, 0x25, 0xca, 0xc3, 0xb2, 0xd4,
+ 0x77, 0x0a, 0x3b, 0x2c,
+ 0x92, 0x42, 0xaf, 0x7e, 0x49, 0xaa, 0x73, 0xe5, 0x16, 0x3e, 0x38, 0xfc,
+ 0x5b, 0xe7, 0x0f, 0xcd,
+ 0x7a, 0x8f, 0x13, 0x3c, 0x3d, 0x27, 0x17, 0x83, 0xa7, 0xc4, 0x5d, 0x78,
+ 0x74, 0xf4, 0x5c, 0xe0,
+ 0x13, 0x59, 0xbb, 0x84, 0xe8, 0xd9, 0xc8, 0xcc, 0xa1, 0x37, 0xca, 0xcb,
+ 0x5e, 0x26, 0xa6, 0x5a,
+ 0xd8, 0xa0, 0xad, 0x67, 0x6c, 0x92, 0x81, 0xd4, 0x5b, 0x60, 0x4a, 0xce,
+ 0xba, 0x73, 0x41, 0xef,
+ 0x87, 0x5e, 0xbf, 0xb6, 0xa2, 0xa9, 0xef, 0xae, 0x3b, 0x8b, 0x2e, 0xaf,
+ 0x5f, 0xcd, 0x3a, 0x1e,
+ 0xb5, 0xb1, 0x76, 0x16, 0xbb, 0x41, 0x87, 0x61, 0x14, 0x6f, 0xf4, 0x2c,
+ 0xfc, 0xa9, 0x59, 0x1a,
+ 0xdf, 0xa4, 0x6a, 0x88, 0x8e, 0xd2, 0x72, 0x8c, 0x54, 0xdd, 0x0d, 0xd3,
+ 0xfb, 0x7d, 0x0b, 0x05,
+ 0x91, 0x81, 0x1b, 0x58, 0xa9, 0xc7, 0x59, 0x47, 0x50, 0x7f, 0x56, 0xb0,
+ 0x76, 0xe1, 0xa7, 0x68,
+ 0x2d, 0x3c, 0xe7, 0xbc, 0xf7, 0x46, 0x08, 0xce, 0x55, 0x14, 0x6b, 0xbb,
+ 0x49, 0x5a, 0x20, 0x8f,
+ 0xa0, 0xad, 0x66, 0xde, 0x50, 0x42, 0x1b, 0x2a, 0x39, 0xda, 0xe2, 0x7f,
+ 0xf8, 0x83, 0x6c, 0xc9,
+ 0xbf, 0x7e, 0x48, 0xc2, 0xbe, 0xec, 0x7b, 0x2b, 0x43, 0x2a, 0x53, 0x47,
+ 0x12, 0xbd, 0x2f, 0x42,
+ 0x24, 0x30, 0x6d, 0x4e, 0x12, 0x86, 0xde, 0x26, 0x44, 0x10, 0xa2, 0x9c,
+ 0x8a, 0x48, 0xfe, 0x72,
+ 0x49, 0x21, 0xb6, 0x3f, 0xc5, 0x55, 0xd8, 0x93, 0x0b, 0x1f, 0x1c, 0x7e,
+ 0xcc, 0x92, 0xe6, 0x87,
+ 0xee, 0x88, 0x17, 0x0e, 0x77, 0x57, 0x30, 0xe1, 0x3d, 0x78, 0xb9, 0x1c,
+ 0x75, 0x1f, 0xc0, 0xa4,
+ 0x2c, 0x7d, 0x8b, 0x1f, 0x16, 0xdc, 0xaf, 0x11, 0xd6, 0x2b, 0xf0, 0x3e,
+ 0x52, 0x58, 0xf9, 0xec,
+ 0x1d, 0x51, 0xf6, 0x99, 0xef, 0x59, 0xed, 0x7c, 0xbf, 0x8e, 0x44, 0xf1,
+ 0xdc, 0x3a, 0x32, 0x4d,
+ 0xcc, 0xfd, 0xd1, 0x0c, 0x66, 0x0b, 0xba, 0x40, 0xf5, 0xea, 0xc7, 0x18,
+ 0xa5, 0x5b, 0xad, 0x5f,
+ 0x7c, 0xca, 0xb8, 0x70, 0x3e, 0xfd, 0x43, 0x04, 0x2b, 0x46, 0x81, 0xe0,
+ 0x2e, 0xf8, 0xcf, 0x69,
+ 0x8e, 0x52, 0x35, 0x44, 0x47, 0x69, 0x39, 0x46, 0x2a, 0x8f, 0xe7, 0x88,
+ 0x9c, 0xdf, 0xe4, 0xe3,
+ 0xb8, 0x7a, 0x8f, 0x2d, 0x5c, 0xac, 0x88, 0x73, 0x4c, 0x97, 0x14, 0x5a,
+ 0x53, 0xb3, 0x65, 0xa8,
+ 0xe6, 0xc5, 0xf1, 0x5f, 0x73, 0x0d, 0x41, 0xd6, 0xaf, 0x43, 0xeb, 0xbe,
+ 0xad, 0x0f, 0xc7, 0x3a,
+ 0xf4, 0xdd, 0x26, 0x78, 0x7a, 0x4e, 0x2e, 0xc5, 0x8d, 0x4b, 0xba, 0xf0,
+ 0xe8, 0x2b, 0xb8, 0x03,
+ 0x26, 0xb2, 0xb5, 0xcb, 0x13, 0x71, 0x53, 0x5b, 0x81, 0x6e, 0x57, 0x55,
+ 0xbc, 0x4c, 0x8f, 0xb4,
+ 0x1b, 0x14, 0x5d, 0xd5, 0xec, 0x83, 0xb9, 0xfb, 0x33, 0x0c, 0x98, 0x69,
+ 0x86, 0x36, 0xa1, 0xc4,
+ 0x4f, 0x64, 0x1d, 0x73, 0xc6, 0x8f, 0x8c, 0x14, 0x87, 0x9d, 0xc0, 0xe6,
+ 0x96, 0x9e, 0x75, 0x0e,
+ 0xd5, 0x6b, 0x54, 0x5c, 0x8b, 0x7f, 0x8e, 0xc6, 0x03, 0x98, 0xaa, 0xb8,
+ 0x15, 0x69, 0x7d, 0x5d,
+ 0xc5, 0xf1, 0x5b, 0xfe, 0x83, 0xcb, 0x6c, 0xa8, 0xe4, 0xee, 0x0e, 0x3f,
+ 0x66, 0x49, 0x73, 0xa2,
+ 0x50, 0xb7, 0x33, 0x6f, 0x28, 0x21, 0xec, 0x15, 0xfd, 0x6d, 0x71, 0xde,
+ 0x7c, 0xa0, 0x36, 0x85,
+ 0x79, 0x4c, 0xa7, 0x1a, 0xdd, 0x4a, 0x3d, 0x21, 0xe1, 0x85, 0x33, 0x34,
+ 0x59, 0xf2, 0xf4, 0x45,
+ 0x77, 0x44, 0xea, 0x07, 0xda, 0xca, 0x18, 0x91, 0xff, 0x3c, 0xbd, 0x0e,
+ 0xdb, 0xee, 0x60, 0x52,
+ 0x16, 0xdf, 0xa4, 0xee, 0x0b, 0x6e, 0xb6, 0xe9, 0x6b, 0xf4, 0x78, 0x1f,
+ 0x29, 0x2c, 0x9d, 0x76,
+ 0x52, 0x35, 0xeb, 0xea, 0x29, 0xd6, 0x61, 0x68, 0x38, 0x13, 0x84, 0x17,
+ 0x4a, 0xa4, 0x47, 0x43,
+ 0x15, 0x1c, 0x10, 0xc8, 0xeb, 0x03, 0x9c, 0x4b, 0x2d, 0xb5, 0x16, 0x53,
+ 0x04, 0x2a, 0x35, 0xd3,
+ 0x9b, 0x4e, 0x25, 0x8c, 0xac, 0x6a, 0xa5, 0x0d, 0x07, 0x3a, 0xf1, 0xdb,
+ 0x98, 0xf5, 0xd1, 0x30,
+ 0xb4, 0xf0, 0x1a, 0xb5, 0x5a, 0xdb, 0x20, 0xbe, 0x97, 0x50, 0x6f, 0xa9,
+ 0xe7, 0xab, 0x80, 0x79,
+ 0x3e, 0x65, 0x5c, 0x38, 0x1f, 0x9f, 0xc0, 0x02, 0xf4, 0x23, 0xa1, 0x70,
+ 0x17, 0x7c, 0x86, 0xd5,
+ 0x80, 0x5a, 0x78, 0x59, 0x40, 0xe9, 0x1c, 0xf6, 0x34, 0x36, 0x69, 0xb2,
+ 0x1e, 0xc3, 0x70, 0xf4,
+ 0x36, 0x28, 0xba, 0x69, 0x1b, 0xc5, 0xb1, 0x35, 0x66, 0x18, 0xf3, 0xd2,
+ 0xcf, 0x6c, 0x81, 0x4b,
+ 0xd3, 0x2e, 0xff, 0x10, 0x88, 0xa5, 0xda, 0x41, 0x8f, 0x1a, 0x76, 0x20,
+ 0x4f, 0x65, 0xee, 0xd4,
+ 0x2b, 0x79, 0x4c, 0xf0, 0xf4, 0x9c, 0x5c, 0x49, 0xd9, 0x96, 0xb7, 0x23,
+ 0x13, 0x56, 0xb3, 0x06,
+ 0x01, 0x41, 0x6c, 0xa3, 0xe1, 0x9a, 0xa7, 0xdf, 0x83, 0x3f, 0x9b, 0x85,
+ 0x1b, 0x02, 0xd9, 0x63,
+ 0x99, 0xcc, 0xfd, 0x09, 0xad, 0x9d, 0x28, 0x70, 0xc2, 0x44, 0x04, 0x12,
+ 0xae, 0xf1, 0xa0, 0xf6,
+ 0xdd, 0x26, 0xb2, 0x0d, 0x8f, 0x25, 0xff, 0xf1, 0x91, 0xa3, 0xf8, 0x1a,
+ 0xcd, 0x79, 0x7a, 0xc3,
+ 0xf6, 0x5f, 0xfe, 0xfd, 0x7b, 0xb9, 0xa3, 0xb8, 0x48, 0x35, 0x4f, 0x39,
+ 0xde, 0x2f, 0xc9, 0xc5,
+ 0x68, 0x97, 0xc4, 0x1b, 0x34, 0x64, 0x78, 0x90, 0x85, 0xcc, 0x0c, 0x36,
+ 0x31, 0xd0, 0x23, 0xd9,
+ 0x12, 0x18, 0xd7, 0x27, 0x09, 0x43, 0x6f, 0x13, 0x22, 0x08, 0x51, 0x4e,
+ 0x45, 0x24, 0x7f, 0x39,
+ 0x8a, 0x95, 0x46, 0x8d, 0x45, 0x44, 0xe0, 0xbc, 0x63, 0x73, 0xce, 0xd9,
+ 0xf0, 0xd7, 0x06, 0xac,
+ 0x09, 0x0c, 0x8a, 0xf2, 0xe5, 0xc0, 0xd6, 0xe8, 0x11, 0x04, 0xc9, 0x27,
+ 0xc3, 0x12, 0xde, 0xfd,
+ 0xa6, 0xe8, 0xcd, 0x92, 0x53, 0x98, 0x4f, 0xad, 0xb5, 0x58, 0x3e, 0xe7,
+ 0xa2, 0x8f, 0xff, 0x40,
+ 0x72, 0xc2, 0xf5, 0x6d, 0x39, 0x7d, 0x66, 0xb4, 0x35, 0xff, 0x0f, 0xda,
+ 0xac, 0xe4, 0x5b, 0x7e,
+ 0xc4, 0xb0, 0x37, 0x5d, 0x62, 0x51, 0xcb, 0x77, 0x67, 0xd1, 0x95, 0xba,
+ 0x7d, 0x4b, 0xaa, 0xc1,
+ 0x3a, 0xa2, 0x2f, 0xf1, 0x1d, 0xb2, 0x19, 0xf8, 0xbd, 0xdf, 0x88, 0x21,
+ 0x7b, 0x74, 0x64, 0x9a,
+ 0x74, 0x87, 0x5e, 0x21, 0x3a, 0xa7, 0x32, 0x33, 0xb9, 0x7d, 0xd3, 0x42,
+ 0xf6, 0xe8, 0xc8, 0xf7,
+ 0xc1, 0x36, 0x28, 0x37, 0x81, 0xe6, 0xb5, 0x52, 0xad, 0x12, 0x27, 0x6e,
+ 0x0a, 0x41, 0x91, 0xed,
+ 0xca, 0xb8, 0x7a, 0x40, 0x65, 0xd1, 0xee, 0xc7, 0x79, 0x68, 0x1b, 0x80,
+ 0xff, 0x57, 0x3e, 0xd6,
+ 0xb9, 0x3b, 0xe3, 0x8e, 0xbd, 0x36, 0x2f, 0xac, 0xcf, 0xa8, 0x8f, 0xdf,
+ 0x48, 0xb1, 0xbc, 0xcb,
+ 0x70, 0x40, 0x2d, 0xe8, 0x38, 0x8a, 0xeb, 0xc9, 0xf0, 0x81, 0xfa, 0x13,
+ 0x9a, 0xe0, 0x2a, 0xb8,
+ 0xbc, 0xbd, 0xfc, 0xe4, 0x5e, 0x81, 0x51, 0x89, 0x05, 0x6b, 0x3d, 0x0b,
+ 0x3f, 0xbb, 0x87, 0xe7,
+ 0x34, 0xaa, 0x62, 0xec, 0x1a, 0x32, 0x3c, 0x48, 0xa3, 0x66, 0x06, 0x1b,
+ 0xf9, 0x68, 0xf0, 0x8d,
+ 0x6a, 0x15, 0x1c, 0x9e, 0x35, 0x93, 0xf5, 0xed, 0x40, 0xb2, 0xf9, 0xff,
+ 0x07, 0xd4, 0x52, 0x1f,
+ 0x48, 0x60, 0xda, 0x9c, 0x24, 0xcf, 0x7f, 0x4c, 0x88, 0x20, 0x87, 0xfb,
+ 0xd7, 0x90, 0x3f, 0xe4,
+ 0x5f, 0xfe, 0x12, 0xd1, 0xce, 0x3b, 0x6e, 0x7a, 0x60, 0xeb, 0x64, 0x61,
+ 0xe5, 0xbe, 0x7b, 0xf1,
+ 0x8f, 0x13, 0x59, 0xe7, 0xa6, 0xf3, 0x9e, 0x99, 0xa9, 0xb0, 0x7c, 0x0d,
+ 0x87, 0xdd, 0x3d, 0x80,
+ 0x69, 0xd6, 0xa8, 0xb8, 0xd5, 0xfe, 0xdf, 0x4f, 0x06, 0xf3, 0x97, 0xb3,
+ 0x2a, 0xd2, 0xfa, 0xba,
+ 0x9a, 0x0f, 0x49, 0x2f, 0x4d, 0xf0, 0x02, 0xd2, 0x84, 0x05, 0x6a, 0x5e,
+ 0x83, 0xf7, 0x08, 0x53,
+ 0xda, 0x22, 0x75, 0xe2, 0x6d, 0x65, 0x0c, 0xa9, 0x9e, 0x1e, 0xbf, 0x07,
+ 0x8c, 0x77, 0x30, 0x29,
+ 0xfd, 0xd1, 0xac, 0x8a, 0x9f, 0x8e, 0xf8, 0x2d, 0x9c, 0x4f, 0x73, 0xd7,
+ 0x2b, 0x39, 0x66, 0xfe,
+ 0x39, 0x61, 0x9b, 0xd7, 0xfd, 0xdf, 0x33, 0x5a, 0xfb, 0x9e, 0xe6, 0x6d,
+ 0x56, 0x72, 0xcc, 0x3f,
+ 0xa5, 0x2b, 0x79, 0xb4, 0xb3, 0xf5, 0x65, 0x0f, 0xf3, 0x19, 0x50, 0xab,
+ 0x8f, 0x89, 0x57, 0xe5,
+ 0xfc, 0x90, 0xc0, 0x29, 0x7e, 0x14, 0x5f, 0xf2, 0x1f, 0x70, 0xe8, 0x52,
+ 0x30, 0x3b, 0xbf, 0x9d,
+ 0xe0, 0x80, 0x5a, 0x13, 0x70, 0xd7, 0x15, 0x51, 0x23, 0xc1, 0x37, 0x26,
+ 0xf7, 0x03, 0x54, 0xb3,
+ 0x0c, 0x8a, 0x95, 0x98, 0x06, 0x77, 0xa8, 0xcd, 0xdb, 0xc7, 0x7b, 0xf3,
+ 0xb4, 0x18, 0xe5, 0xd1,
+ 0x57, 0xb3, 0xf4, 0x80, 0xca, 0x61, 0x1f, 0x4d, 0xf2, 0xd0, 0x36, 0xc3,
+ 0x3d, 0xae, 0x7c, 0x6f,
+ 0x54, 0x70, 0x40, 0xa6, 0x2a, 0x0c, 0x35, 0xef, 0xb4, 0x91, 0x58, 0x8f,
+ 0x10, 0xa8, 0xd4, 0xca,
+ 0x8d, 0x91, 0x81, 0x62, 0xa7, 0x04, 0x13, 0xe4, 0x6c, 0xce, 0x89, 0xc4,
+ 0xb1, 0xd9, 0x4c, 0x46,
+ 0xd2, 0x6f, 0x93, 0xb3, 0x69, 0x3f, 0x7d, 0x9e, 0x0c, 0x25, 0xed, 0xa5,
+ 0x54, 0x67, 0x37, 0xb7,
+ 0xf7, 0x1e, 0x92, 0x5e, 0x9a, 0x23, 0x04, 0x67, 0xcb, 0x0a, 0xd4, 0xbc,
+ 0xc5, 0x2d, 0x10, 0xa6,
+ 0x5e, 0xbf, 0x7e, 0x72, 0x2f, 0xa1, 0xc9, 0xa5, 0xe3, 0xd4, 0xff, 0xe4,
+ 0xfe, 0xbc, 0xa2, 0x92,
+ 0xf9, 0x16, 0xdf, 0x43, 0x9d, 0xa3, 0x21, 0xd7, 0xd5, 0xb3, 0x5a, 0x86,
+ 0x47, 0x31, 0x84, 0xb1,
+ 0xf2, 0x98, 0x8d, 0x34, 0x79, 0x94, 0x7a, 0x42, 0x01, 0xc9, 0x66, 0x68,
+ 0xb2, 0x27, 0x2b, 0x8a,
+ 0xe3, 0x43, 0xee, 0x35, 0x90, 0xba, 0x3f, 0xf3, 0x65, 0x80, 0x59, 0x6a,
+ 0xda, 0x05, 0xfc, 0x16,
+ 0x3b, 0xe3, 0x43, 0x52, 0xfc, 0x28, 0xbe, 0x27, 0x3e, 0xe0, 0x13, 0xa4,
+ 0x60, 0x76, 0xbd, 0xf9,
+ 0x03, 0xc3, 0xb4, 0x26, 0xe0, 0x6d, 0x2a, 0xa2, 0x46, 0x41, 0x6e, 0x4c,
+ 0x2d, 0x06, 0xa8, 0xa5,
+ 0xa1, 0xec, 0x0a, 0x7d, 0xb1, 0xd8, 0xbc, 0xf5, 0xba, 0xe5, 0x79, 0xfa,
+ 0xe3, 0x81, 0xb5, 0xaa,
+ 0x96, 0x85, 0xdc, 0xb7, 0x4b, 0x87, 0xaa, 0x1f, 0x5f, 0xc2, 0x11, 0xad,
+ 0x37, 0xef, 0xed, 0x82,
+ 0xaa, 0x62, 0x58, 0x0a, 0x55, 0xef, 0xe7, 0x60, 0x6e, 0x9f, 0x45, 0x14,
+ 0x16, 0x97, 0x1a, 0x91,
+ 0x9f, 0x89, 0x56, 0x45, 0xae, 0x47, 0x7c, 0xf7, 0x4e, 0xc6, 0xd8, 0x8a,
+ 0xf4, 0xfd, 0x33, 0x7f,
+ 0x46, 0x68, 0x97, 0x81, 0x23, 0x4f, 0x5a, 0xfc, 0x96, 0x99, 0x09, 0xc1,
+ 0x55, 0x8c, 0xab, 0xf3,
+ 0x41, 0x6c, 0x50, 0x6e, 0xc1, 0x0f, 0xa9, 0xa4, 0x99, 0x24, 0x4e, 0xdc,
+ 0x14, 0x82, 0xe1, 0x19,
+ 0x2a, 0x38, 0x20, 0x53, 0x15, 0x06, 0xfb, 0x96, 0x5a, 0xa9, 0x2c, 0xa6,
+ 0x08, 0x54, 0x6a, 0x65,
+ 0x60, 0xda, 0x22, 0x4a, 0x30, 0x3e, 0x09, 0xa7, 0x17, 0xf7, 0x5e, 0x94,
+ 0xe9, 0xc0, 0x24, 0x47,
+ 0xe5, 0x06, 0x45, 0x79, 0x93, 0x60, 0x6b, 0x74, 0xe9, 0x02, 0x85, 0xf2,
+ 0x80, 0x09, 0x6f, 0x9f,
+ 0x94, 0x07, 0x04, 0x32, 0x4a, 0x70, 0x27, 0x62, 0x9a, 0xbc, 0xe4, 0x64,
+ 0x01, 0xeb, 0x9c, 0x44,
+ 0xbe, 0x3f, 0x24, 0x61, 0x5f, 0x76, 0xdc, 0xf4, 0xc0, 0x15, 0xc8, 0xc2,
+ 0x09, 0xbf, 0xf6, 0x21,
+ 0x90, 0xc0, 0x77, 0xfb, 0x48, 0x5d, 0xfe, 0x98, 0xd3, 0x40, 0xcd, 0x35,
+ 0x6d, 0xe3, 0x7e, 0x0b,
+ 0x2f, 0xbe, 0x3f, 0x39, 0xf6, 0xb1, 0x85, 0xb3, 0x90, 0x6a, 0x9e, 0x72,
+ 0x7f, 0x5e, 0x51, 0x49,
+ 0x9d, 0x0b, 0x8e, 0xc0, 0xaf, 0xb0, 0xf1, 0x8a, 0x8b, 0xb8, 0x2d, 0x43,
+ 0xc2, 0xf9, 0x42, 0xb9,
+ 0x81, 0x1b, 0x14, 0xfa, 0xa1, 0x73, 0xbb, 0x29, 0xb7, 0x09, 0xf2, 0x37,
+ 0x05, 0xc1, 0xa9, 0x97,
+ 0xa2, 0x2f, 0xbe, 0x5b, 0x51, 0xb5, 0x96, 0x57, 0xfc, 0xa4, 0x17, 0xb6,
+ 0xce, 0x87, 0x1d, 0x0f,
+ 0x76, 0x05, 0x86, 0xa4, 0x3b, 0x50, 0xbf, 0x4e, 0x7c, 0x03, 0x26, 0x8b,
+ 0xc0, 0xec, 0xb9, 0x31,
+ 0x4b, 0xa3, 0x6e, 0xba, 0xc4, 0xa2, 0x55, 0xee, 0xce, 0x61, 0xe9, 0xb7,
+ 0xfa, 0x96, 0x97, 0x41,
+ 0xe4, 0x47, 0x29, 0xda, 0x72, 0xfa, 0xcc, 0xab, 0x6a, 0x3d, 0x1e, 0x77,
+ 0x9b, 0x0b, 0xb6, 0xfc,
+ 0x06, 0x45, 0xab, 0x4c, 0x03, 0xda, 0x54, 0x87, 0x8c, 0x82, 0xdc, 0x98,
+ 0x5a, 0x0c, 0x93, 0x89,
+ 0x55, 0x31, 0x2c, 0x05, 0xcb, 0x96, 0x92, 0x30, 0x37, 0xae, 0xc3, 0x0a,
+ 0x0b, 0xaa, 0x0d, 0xa9,
+ 0xae, 0xa5, 0x2b, 0xc3, 0x57, 0xc2, 0x3e, 0x9a, 0x27, 0x63, 0x6c, 0x45,
+ 0x7a, 0x9f, 0xf8, 0xde,
+ 0x1c, 0x10, 0x9a, 0x3a, 0x0e, 0xc3, 0x4a, 0xa3, 0x3c, 0xb1, 0xdf, 0x74,
+ 0xc7, 0x38, 0xeb, 0x2e,
+ 0x75, 0xc6, 0x32, 0x82, 0xdb, 0x3d, 0x95, 0xec, 0x3a, 0x42, 0x48, 0xc7,
+ 0xed, 0xea, 0x11, 0x94,
+ 0x5b, 0x39, 0x61, 0x18, 0xcc, 0x16, 0xb7, 0x80, 0x29, 0x17, 0x4d, 0x30,
+ 0x89, 0xb6, 0x99, 0xbe,
+ 0x04, 0xc7, 0x73, 0xc9, 0x02, 0x2d, 0xd9, 0xfa, 0x49, 0xfc, 0x29, 0x51,
+ 0x6c, 0x08, 0xe2, 0x4f,
+ 0x27, 0xf3, 0xd9, 0x68, 0xf2, 0xeb, 0xf4, 0x84, 0x02, 0x51, 0xcc, 0xd0,
+ 0xa7, 0x4e, 0x56, 0xd7,
+ 0x4d, 0xe6, 0xc5, 0xf6, 0xc7, 0x78, 0x01, 0x69, 0x42, 0xe3, 0x35, 0x2f,
+ 0xa0, 0x9a, 0x04, 0xc8,
+ 0x9c, 0x4a, 0xe2, 0x63, 0x4e, 0x2a, 0x56, 0x55, 0x08, 0x87, 0xb6, 0xc6,
+ 0xd9, 0xfb, 0x9b, 0xda,
+ 0x20, 0xf7, 0x1e, 0x87, 0x10, 0xab, 0x07, 0xdc, 0x0d, 0xec, 0x8b, 0xcd,
+ 0xe6, 0x40, 0x1c, 0x3d,
+ 0x53, 0x74, 0x87, 0x49, 0xc8, 0x4c, 0xc6, 0xb7, 0xbb, 0x2c, 0x1f, 0x92,
+ 0x51, 0xa6, 0x9e, 0x20,
+ 0xd0, 0xed, 0x4b, 0x36, 0x68, 0xc8, 0xf0, 0xe3, 0xc9, 0x5b, 0x18, 0x6c,
+ 0x62, 0x63, 0x46, 0x71,
+ 0x95, 0x46, 0x68, 0x91, 0xab, 0xea, 0x80, 0xbd, 0x19, 0x83, 0x7f, 0xe1,
+ 0x1a, 0xe9, 0x45, 0x27,
+ 0xf3, 0xd9, 0xe1, 0x97, 0x98, 0x0e, 0xdd, 0x9d, 0x82, 0xf6, 0xfd, 0xed,
+ 0xa9, 0x25, 0xf2, 0xe9,
+ 0x85, 0xdc, 0x67, 0x33, 0xa3, 0x5e, 0x62, 0xd3, 0xfe, 0xf5, 0xdb, 0x66,
+ 0x69, 0xc9, 0x4b, 0xd8,
+ 0x88, 0x17, 0x9e, 0x08, 0x44, 0xb3, 0x6d, 0xc1, 0xa6, 0x0d, 0x3b, 0x10,
+ 0xc6, 0xd3, 0x77, 0x6a,
+ 0xb0, 0x37, 0x69, 0x7c, 0x58, 0xf6, 0xf9, 0x44, 0xde, 0xac, 0x46, 0xf8,
+ 0x8b, 0xa3, 0x62, 0x36,
+ 0x22, 0x75, 0xc6, 0x02, 0x11, 0x5c, 0x8a, 0xa1, 0xc8, 0x92, 0x7e, 0x04,
+ 0xd0, 0x44, 0x6d, 0xfb,
+ 0x0b, 0x8e, 0x52, 0x77, 0xe4, 0x37, 0x5b, 0x95, 0xd4, 0x7a, 0x3c, 0xee,
+ 0xf5, 0x16, 0xaf, 0x3b,
+ 0x02, 0x82, 0xd8, 0x85, 0x01, 0xf7, 0x8d, 0x7d, 0xc5, 0x7e, 0xf5, 0xc9,
+ 0x36, 0x04, 0x71, 0xc6,
+ 0xc9, 0x7b, 0xce, 0x66, 0x85, 0xbc, 0xc4, 0x65, 0x3f, 0x29, 0x75, 0xcc,
+ 0xd2, 0x51, 0x96, 0x73,
+ 0xdb, 0x63, 0x19, 0x41, 0x8c, 0xff, 0xab, 0x76, 0x1d, 0x21, 0x24, 0x82,
+ 0x97, 0x75, 0xe9, 0x4a,
+ 0xb6, 0x72, 0xc2, 0x30, 0x5b, 0x2c, 0xad, 0xc3, 0x52, 0x2e, 0x9a, 0x60,
+ 0xd1, 0xaf, 0xf1, 0xbf,
+ 0x40, 0x2d, 0x3c, 0xcd, 0x20, 0x95, 0x0e, 0x7b, 0x1a, 0x1b, 0xd5, 0x59,
+ 0x0f, 0x80, 0x38, 0x7a,
+ 0x4e, 0x25, 0x71, 0xd0, 0x27, 0x15, 0x2b, 0xcb, 0x04, 0xa2, 0x5b, 0x63,
+ 0x8d, 0x9c, 0xac, 0x6d,
+ 0xd7, 0xe9, 0x8c, 0xd9, 0x8a, 0x88, 0x03, 0xbb, 0xc6, 0xe6, 0x5f, 0x71,
+ 0x23, 0x6d, 0x0c, 0x9b,
+ 0xab, 0x23, 0x34, 0xa9, 0xb4, 0x75, 0x40, 0xbf, 0xed, 0xa0, 0xde, 0x91,
+ 0x0d, 0x95, 0xc3, 0xf2,
+ 0x98, 0x8d, 0x91, 0xaa, 0x4c, 0x07, 0x8f, 0xaf, 0x41, 0x7b, 0x9f, 0x97,
+ 0xb5, 0xf3, 0x79, 0x95,
+ 0xc8, 0x3a, 0xa2, 0xc5, 0x64, 0x26, 0x63, 0xba, 0xbc, 0x16, 0xee, 0x49,
+ 0xc9, 0x53, 0x4f, 0x10,
+ 0xaf, 0xe4, 0x47, 0x60, 0xb6, 0x58, 0x99, 0x45, 0xa4, 0x5c, 0xf7, 0xc0,
+ 0x61, 0x9d, 0x21, 0xbd,
+ 0xa3, 0x6e, 0xd2, 0xf8, 0xb0, 0x2f, 0x31, 0x88, 0x7f, 0x9b, 0x8c, 0x33,
+ 0xd5, 0x85, 0xc4, 0x6c,
+ 0x44, 0xea, 0x4f, 0x04, 0x22, 0xb8, 0xd7, 0x81, 0x53, 0xe7, 0xfc, 0x08,
+ 0x63, 0x88, 0xda, 0x35,
+ 0x84, 0x9d, 0x0b, 0x90, 0x42, 0xc4, 0xc5, 0x0c, 0x7d, 0xca, 0x40, 0xe3,
+ 0x72, 0xcb, 0x92, 0xbb,
+ 0x9e, 0xc8, 0x3a, 0xe6, 0x4f, 0xdd, 0xdb, 0x28, 0xcd, 0xf9, 0x43, 0x0f,
+ 0xef, 0xff, 0xea, 0x1c,
+ 0xe2, 0x02, 0x82, 0x96, 0x71, 0x20, 0x98, 0x2c, 0xe6, 0xbf, 0xc2, 0xef,
+ 0xc1, 0x07, 0x25, 0x75,
+ 0xcd, 0xbc, 0xbd, 0xaf, 0x87, 0x91, 0x1d, 0x9f, 0x76, 0xd5, 0x5c, 0x9d,
+ 0xbe, 0x59, 0x74, 0x3c,
+ 0xfb, 0x94, 0x07, 0xc6, 0x9c, 0x54, 0xac, 0xaa, 0x10, 0xcd, 0xaf, 0x4f,
+ 0x71, 0x35, 0xf5, 0x77,
+ 0x45, 0xab, 0x23, 0xa7, 0xc3, 0x22, 0x70, 0x5e, 0xd0, 0xd8, 0x67, 0x8d,
+ 0x78, 0x8a, 0x03, 0x56,
+ 0x23, 0x34, 0xaa, 0xa1, 0xf0, 0xc6, 0x2d, 0x7e, 0x4b, 0xad, 0xe5, 0x81,
+ 0xcb, 0x46, 0xb4, 0x98,
+ 0xc6, 0x32, 0xef, 0xd8, 0x63, 0xa6, 0x46, 0x0a, 0xa2, 0xaf, 0x60, 0x73,
+ 0x4b, 0x4f, 0xdb, 0x07,
+ 0x3d, 0xa6, 0xe8, 0x1e, 0xff, 0xf2, 0xea, 0xa0, 0xb2, 0x62, 0xcf, 0x3c,
+ 0x3a, 0x7a, 0x2e, 0x70,
+ 0x17, 0x9e, 0xc8, 0x4d, 0xea, 0xf4, 0x11, 0x36, 0xe8, 0xcb, 0xe3, 0x9a,
+ 0x32, 0x2e, 0x44, 0x15,
+ 0xeb, 0x0e, 0x08, 0x64, 0x94, 0xe0, 0x4e, 0xc4, 0xf7, 0xbb, 0x0b, 0xc8,
+ 0x02, 0x15, 0xfb, 0x88,
+ 0x2e, 0xff, 0x53, 0x9a, 0x17, 0x2b, 0x22, 0x6c, 0x13, 0x55, 0x05, 0xf7,
+ 0x64, 0x5c, 0x88, 0x2a,
+ 0xcb, 0xf9, 0x16, 0xe3, 0x84, 0x4b, 0x49, 0x18, 0xfa, 0x57, 0x80, 0x05,
+ 0xe4, 0x55, 0xe7, 0xb5,
+ 0xb2, 0xb5, 0xb1, 0xf9, 0x59, 0x01, 0x74, 0x39, 0x1b, 0xd2, 0xb3, 0x31,
+ 0xbd, 0xa7, 0x13, 0xf0,
+ 0x5c, 0x3d, 0xa6, 0xf7, 0x2e, 0x56, 0x44, 0xd8, 0x26, 0xaa, 0x0a, 0x2d,
+ 0xc8, 0xb8, 0xd3, 0x54,
+ 0x4a, 0xe2, 0x02, 0x19, 0x25, 0x38, 0xf2, 0x31, 0x4d, 0x5e, 0x72, 0x32,
+ 0xe1, 0x94, 0x4e, 0x22,
+ 0x64, 0x1d, 0x51, 0x83, 0x32, 0x13, 0xd0, 0x5d, 0x5e, 0x0b, 0x77, 0xc5,
+ 0x85, 0xc8, 0xc6, 0x08,
+ 0x71, 0x01, 0x41, 0x4b, 0xd9, 0x10, 0x4c, 0x16, 0x73, 0xbe, 0x61, 0x96,
+ 0x81, 0xe2, 0xf3, 0xdb,
+ 0x35, 0xeb, 0x0e, 0x4f, 0xfb, 0xa8, 0x9b, 0x97, 0x20, 0x59, 0x9d, 0x9e,
+ 0xe2, 0x6a, 0x29, 0xee,
+ 0xc7, 0x73, 0x83, 0x7b, 0x82, 0x3c, 0xe1, 0xd5, 0x21, 0x90, 0xfb, 0xf6,
+ 0x50, 0x4d, 0x02, 0x64,
+ 0x07, 0x04, 0xc7, 0xef, 0xe2, 0x40, 0xf3, 0x58, 0x0f, 0xbd, 0x47, 0x1d,
+ 0x41, 0x0e, 0x4a, 0xea,
+ 0x59, 0xbb, 0xb9, 0x9d, 0xcd, 0xe1, 0x3a, 0xfd, 0xec, 0x69, 0xb8, 0xf9,
+ 0xbf, 0xb2, 0xe8, 0x78,
+ 0x38, 0x20, 0xf7, 0x74, 0x1c, 0x45, 0x94, 0x85, 0x78, 0xa1, 0x7d, 0xe8,
+ 0x4d, 0x70, 0x15, 0x5c,
+ 0xea, 0x4f, 0x64, 0xc7, 0x75, 0x7a, 0xe9, 0x1b, 0x74, 0x84, 0x90, 0x4d,
+ 0x19, 0x17, 0x22, 0xeb,
+ 0x37, 0x69, 0xd6, 0xca, 0xfa, 0x5f, 0x16, 0xea, 0xe5, 0x27, 0x68, 0x57,
+ 0xd4, 0x6e, 0x58, 0x28,
+ 0x63, 0x19, 0x96, 0x6c, 0xd0, 0x53, 0x23, 0x05, 0x51, 0xb6, 0x30, 0xd8,
+ 0xc4, 0xc6, 0x8c, 0xe2,
+ 0x18, 0xd7, 0xe9, 0xf3, 0x0c, 0xee, 0x93, 0x59, 0x75, 0x4d, 0xf6, 0x25,
+ 0xab, 0x30, 0x09, 0x61,
+ 0xa7, 0xa9, 0xa1, 0x31, 0xb2, 0x02, 0xe8, 0x72, 0x36, 0x67, 0xa5, 0x62,
+ 0xb9, 0x8d, 0x26, 0x23,
+ 0x58, 0xfa, 0xd5, 0x3e, 0x2c, 0x7b, 0x9d, 0x22, 0x6f, 0x56, 0x23, 0x7c,
+ 0xa4, 0xb0, 0x31, 0x1b,
+ 0x11, 0xdb, 0x63, 0x01, 0xe9, 0x2e, 0x45, 0xb1, 0x64, 0x49, 0x3f, 0x02,
+ 0x68, 0x22, 0xd7, 0x9c,
+ 0xf5, 0x9c, 0x4a, 0xdb, 0x9b, 0xd4, 0x89, 0x1a, 0x0e, 0x74, 0x21, 0x75,
+ 0xf3, 0x29, 0x61, 0x60,
+ 0xd9, 0xe1, 0xc1, 0xc4, 0x8d, 0x08, 0x26, 0x0b, 0xd8, 0x5f, 0xd1, 0x4b,
+ 0xa1, 0x71, 0x98, 0x8c,
+ 0xe9, 0x8c, 0xd0, 0xe1, 0x95, 0x17, 0xc3, 0xb9, 0x32, 0xc5, 0xfe, 0x01,
+ 0x34, 0x11, 0x8a, 0x4e,
+ 0x25, 0x71, 0x01, 0xed, 0xf3, 0x1c, 0x79, 0xf9, 0xc7, 0x2f, 0x39, 0x19,
+ 0x91, 0x4a, 0x27, 0x11,
+ 0xf8, 0x57, 0xb3, 0xe0, 0x7c, 0x39, 0x86, 0x08, 0x56, 0x8c, 0xc1, 0x03,
+ 0x5c, 0x33, 0x5d, 0xd2,
+ 0x97, 0xc4, 0xb0, 0x14, 0xaa, 0x1d, 0x0d, 0xc0, 0xdc, 0xfd, 0x8a, 0x28,
+ 0x2c, 0xed, 0x34, 0xe1,
+ 0xb1, 0x76, 0x05, 0xdf, 0xb9, 0x6c, 0x5e, 0x9b, 0x5d, 0x93, 0xdd, 0x7d,
+ 0x90, 0xa1, 0xbb, 0x55,
+ 0x19, 0x96, 0x85, 0x50, 0xed, 0x74, 0x34, 0x86, 0xf6, 0x72, 0x6d, 0xa0,
+ 0xb0, 0x32, 0xd0, 0x02,
+ 0x0f, 0x49, 0x21, 0xbe, 0xe6, 0x1a, 0x82, 0x6f, 0x9d, 0x86, 0x15, 0xbf,
+ 0x99, 0x1e, 0x4d, 0x74,
+ 0x89, 0x56, 0xf2, 0xab, 0xa5, 0x29, 0xca, 0x1e, 0x25, 0x32, 0xa0, 0x95,
+ 0xdd, 0xd1, 0xae, 0x09,
+ 0xdc, 0x67, 0xde, 0xae, 0x6e, 0xbf, 0x58, 0x2e, 0x12, 0x9c, 0x63, 0x9f,
+ 0xd6, 0x7b, 0xa3, 0xa0,
+ 0x08, 0x4d, 0xe6, 0x51, 0x04, 0x5a, 0x71, 0x37, 0x92, 0x3b, 0x52, 0xa2,
+ 0xd8, 0x10, 0x07, 0x9e,
+ 0xf1, 0x5b, 0x39, 0x12, 0x99, 0xf9, 0x50, 0xe0, 0x47, 0x88, 0x08, 0x24,
+ 0x9f, 0x21, 0x83, 0x2f,
+ 0xa8, 0xe0, 0x80, 0x8f, 0x54, 0x18, 0x6a, 0x1d, 0xab, 0xe1, 0xb0, 0xdd,
+ 0x20, 0x93, 0x6b, 0x57,
+ 0x0e, 0x08, 0x4d, 0x1d, 0x07, 0x80, 0x25, 0xb0, 0x1e, 0xb9, 0x8e, 0x3a,
+ 0x82, 0x1c, 0x94, 0x17,
+ 0x6f, 0x93, 0x03, 0xf4, 0xd6, 0x24, 0x8b, 0xc8, 0x8a, 0x71, 0x4b, 0x2b,
+ 0x70, 0xde, 0x69, 0x33,
+ 0x7d, 0x8b, 0xd4, 0xd3, 0xdf, 0x67, 0xe4, 0xdb, 0xa8, 0x79, 0x1a, 0x65,
+ 0x35, 0xfa, 0x16, 0x0a,
+ 0xd4, 0x2a, 0x38, 0xff, 0x6a, 0xe5, 0x29, 0x19, 0x80, 0xa7, 0x31, 0x3d,
+ 0x0e, 0x6b, 0xa4, 0x3e,
+ 0xbd, 0xfc, 0x90, 0x47, 0xbf, 0x1b, 0xf6, 0x56, 0x86, 0x54, 0xa6, 0x8e,
+ 0x24, 0xb9, 0x5e, 0x84,
+ 0x86, 0x1f, 0xd3, 0x15, 0x43, 0x33, 0x48, 0x71, 0xb8, 0xb4, 0xb5, 0x2a,
+ 0x44, 0xcf, 0xe3, 0x7d,
+ 0xec, 0x0a, 0xcf, 0x8b, 0x76, 0xa0, 0xbd, 0x9c, 0xf8, 0x06, 0x4c, 0xd5,
+ 0x43, 0x1b, 0xb1, 0x62,
+ 0x32, 0xef, 0xc9, 0xa0, 0x19, 0xe8, 0x68, 0xcf, 0x2f, 0xe4, 0xda, 0x83,
+ 0xa3, 0x64, 0x63, 0x04,
+ 0x7e, 0x48, 0x60, 0xf5, 0x3f, 0x0a, 0xce, 0x79, 0xee, 0x38, 0x74, 0x29,
+ 0x18, 0xfc, 0xbe, 0xaf,
+ 0xed, 0x4b, 0xa3, 0x28, 0x97, 0x3a, 0x1a, 0x43, 0x7b, 0x39, 0xd7, 0x50,
+ 0x58, 0x19, 0x68, 0x01,
+ 0x6e, 0xd2, 0x6f, 0x57, 0x37, 0xbe, 0x2c, 0x17, 0x09, 0x4e, 0xd0, 0xae,
+ 0x6b, 0xdc, 0xb0, 0x50,
+ 0xc3, 0xb4, 0xf0, 0xb2, 0x80, 0x11, 0x38, 0x2f, 0x68, 0x6c, 0xd2, 0xa7,
+ 0x3c, 0x45, 0xe0, 0x2b,
+ 0x21, 0xb6, 0x72, 0x24, 0xf1, 0x31, 0xa0, 0x03, 0x8e, 0xd3, 0x10, 0x48,
+ 0xfd, 0x42, 0xc5, 0x5e,
+ 0x62, 0x58, 0xfa, 0xcf, 0x31, 0xc9, 0x84, 0xda, 0xd2, 0x89, 0xab, 0x5d,
+ 0xdf, 0xc4, 0x55, 0x81,
+ 0xce, 0x7f, 0x09, 0x89, 0x67, 0xfc, 0x37, 0x3d, 0x30, 0x94, 0x32, 0xd1,
+ 0x93, 0x5f, 0xdc, 0x99,
+ 0x93, 0x03, 0xc3, 0xdd, 0xa8, 0x30, 0xd4, 0x3a, 0x95, 0x01, 0xa3, 0x79,
+ 0x40, 0xe5, 0xd6, 0xae,
+ 0x4c, 0xa7, 0xa9, 0x55, 0x26, 0xe2, 0xa6, 0xb6, 0xc1, 0xdc, 0xae, 0xaa,
+ 0xbb, 0x98, 0xdd, 0xab,
+ 0xde, 0xe5, 0x06, 0x2b, 0x6f, 0x48, 0xd5, 0x53, 0xd7, 0xe2, 0x96, 0x56,
+ 0xe0, 0x7f, 0xd2, 0x66,
+ 0x3f, 0x24, 0x30, 0x9b, 0xfe, 0x05, 0x67, 0xdd, 0x77, 0x1c, 0x3a, 0xf5,
+ 0x0c, 0x7e, 0x5f, 0xb6,
+ 0x43, 0xee, 0x88, 0xeb, 0xc0, 0xf8, 0x24, 0xd9, 0x5c, 0x5a, 0xbb, 0x15,
+ 0x22, 0x86, 0x90, 0xdf,
+ 0x73, 0x83, 0x99, 0xce, 0xd8, 0xe7, 0xc1, 0x6b, 0xb6, 0xc0, 0x94, 0x5f,
+ 0xb7, 0xe6, 0x82, 0x1d,
+ 0xad, 0x66, 0x9f, 0xe5, 0xb7, 0xaf, 0x14, 0x38, 0x61, 0x22, 0x02, 0x09,
+ 0x57, 0x99, 0x50, 0x7b,
+ 0xf0, 0x1a, 0x55, 0xb1, 0x78, 0x63, 0xf7, 0x3f, 0xc4, 0xb7, 0x93, 0xa1,
+ 0x84, 0x23, 0x5a, 0x4c,
+ 0x47, 0x29, 0xfb, 0x22, 0xc2, 0xd5, 0xfd, 0x23, 0x15, 0xa6, 0x92, 0x44,
+ 0x4e, 0x8e, 0x72, 0x90,
+ 0x3c, 0xe7, 0x84, 0xbd, 0x1e, 0x68, 0x4d, 0x7f, 0x31, 0x5d, 0x54, 0xb9,
+ 0x21, 0x78, 0xf7, 0x13,
+ 0x61, 0x9b, 0x4e, 0xe9, 0xd1, 0xa4, 0xae, 0x78, 0x94, 0xc8, 0xc5, 0x11,
+ 0xf2, 0xc2, 0xfd, 0x24,
+ 0x56, 0xf2, 0x98, 0x23, 0x2b, 0xfb, 0xb8, 0x92, 0x71, 0xef, 0xad, 0x46,
+ 0x26, 0xac, 0xa5, 0x0c,
+ 0x29, 0xfb, 0x94, 0x75, 0xf5, 0x6b, 0xd1, 0x34, 0x1c, 0xe8, 0x42, 0xea,
+ 0x25, 0x52, 0xc2, 0xc0,
+ 0x7b, 0xce, 0x7f, 0x9f, 0xdc, 0xbd, 0xb0, 0x5c, 0x24, 0xfb, 0xc6, 0xfd,
+ 0x6f, 0xf6, 0x85, 0x83,
+ 0x10, 0x9a, 0x0f, 0xa2, 0x08, 0xb4, 0xe2, 0x6e, 0xe7, 0x76, 0xa4, 0x87,
+ 0x73, 0x20, 0x0e, 0xff,
+ 0xff, 0x53, 0x74, 0x0f, 0x9e, 0x79, 0x75, 0x50, 0x59, 0x31, 0x86, 0x1e,
+ 0x1d, 0x3d, 0x17, 0x38,
+ 0x5d, 0x7c, 0xca, 0x54, 0xcf, 0xcc, 0xe3, 0x07, 0xa5, 0x95, 0x91, 0xa8,
+ 0xd3, 0xba, 0x0a, 0x37,
+ 0x31, 0x2c, 0x7d, 0x86, 0xf9, 0x85, 0x42, 0x6d, 0x69, 0xa5, 0xb4, 0xcf,
+ 0x8e, 0x62, 0xcb, 0xa1,
+ 0xb7, 0x33, 0xae, 0x93, 0xba, 0xb6, 0x0a, 0x1c, 0xd1, 0x11, 0x01, 0xe5,
+ 0xca, 0xad, 0x28, 0xdc,
+ 0xb3, 0xf4, 0xdd, 0x5a, 0xb8, 0x9b, 0xd3, 0xe6, 0x98, 0xed, 0x28, 0xb4,
+ 0xa6, 0xa5, 0xca, 0x93,
+ 0x6b, 0x54, 0x70, 0x3d, 0xd4, 0x09, 0x52, 0x32, 0xc3, 0x8d, 0x62, 0x7a,
+ 0x1c, 0xd6, 0x8b, 0x7c,
+ 0xc0, 0x77, 0x44, 0x94, 0x60, 0x7c, 0x12, 0x8d, 0x2e, 0x2d, 0xbc, 0xeb,
+ 0x11, 0x43, 0x48, 0x8e,
+ 0x7f, 0x09, 0x0c, 0x56, 0xde, 0x90, 0x69, 0xa6, 0x6d, 0x07, 0xef, 0xac,
+ 0x03, 0xfe, 0x67, 0xcc,
+ 0x1e, 0x92, 0x42, 0xbf, 0x0f, 0x34, 0xc7, 0xde, 0xf9, 0xcf, 0x2a, 0xbd,
+ 0xf1, 0x3c, 0x9a, 0xe8,
+ 0xd1, 0xac, 0x27, 0x95, 0x89, 0x52, 0x57, 0x3c, 0x4a, 0x64, 0x83, 0xe9,
+ 0x79, 0x61, 0x9f, 0x12,
+ 0x78, 0x0d, 0xcb, 0xb9, 0x3c, 0xd0, 0x9a, 0xfe, 0x62, 0xba, 0xa8, 0xb1,
+ 0x42, 0xf0, 0x2d, 0x26,
+ 0xc2, 0xf5, 0x9c, 0x11, 0x61, 0x8b, 0x9f, 0xf0, 0xeb, 0x53, 0x49, 0x22,
+ 0x27, 0x47, 0x39, 0x48,
+ 0xbb, 0xb9, 0x3b, 0x0b, 0xbc, 0xc1, 0xa2, 0xd1, 0x0a, 0xd6, 0x7a, 0x16,
+ 0x7e, 0xb5, 0xcd, 0x0d,
+ 0x6d, 0x11, 0xdb, 0x71, 0xd7, 0xd3, 0x06, 0xb5, 0x4f, 0x0f, 0xbe, 0xe2,
+ 0x46, 0xda, 0x18, 0xf5,
+ 0xe1, 0xc1, 0x36, 0xb0, 0x91, 0x4d, 0xb2, 0x8e, 0xa0, 0xfe, 0xac, 0xa3,
+ 0xec, 0x01, 0x8d, 0xd0,
+ 0x1f, 0xd3, 0x2e, 0x1c, 0xee, 0xae, 0x60, 0x01, 0x7a, 0xf0, 0xb1, 0x38,
+ 0xea, 0x3e, 0x43, 0x8b,
+ 0x82, 0xd8, 0xa0, 0xdc, 0x41, 0x1e, 0x91, 0x8b, 0xf1, 0x48, 0x9c, 0x7b,
+ 0x28, 0xc7, 0x01, 0x32,
+ 0xba, 0xf8, 0x57, 0xa8, 0x5d, 0x5b, 0x05, 0x0e, 0x89, 0xe9, 0xe1, 0x93,
+ 0x65, 0xb7, 0x14, 0x6e,
+ 0x8c, 0xd0, 0xed, 0xc1, 0x46, 0x9e, 0xb4, 0x3b, 0xef, 0xf1, 0x12, 0x41,
+ 0xaa, 0xdb, 0x95, 0x25,
+ 0xcf, 0x3e, 0x65, 0x2a, 0x86, 0x66, 0x90, 0xe2, 0xb3, 0xab, 0xa9, 0x54,
+ 0x88, 0x5d, 0x05, 0xfa,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xfe, 0x12, 0x18, 0xac, 0x7f, 0xe3, 0xd2, 0x8f, 0xda, 0x0e, 0x1d, 0x9b,
+ 0x06, 0x3f, 0xce, 0x5b,
+ 0x42, 0xaf, 0xe4, 0x48, 0x21, 0x62, 0x83, 0x06, 0xdf, 0x65, 0x20, 0x90,
+ 0x39, 0x84, 0x49, 0xbc,
+ 0xd6, 0xa8, 0xe0, 0x7a, 0x6b, 0x12, 0xa4, 0x64, 0x45, 0xd9, 0xc4, 0xf4,
+ 0x38, 0x6f, 0xd5, 0xf8,
+ },
+ { /* 11 */
+ 0xd8, 0x59, 0xe0, 0xf8, 0xd2, 0x2a, 0xca, 0x1c, 0x17, 0x58, 0x25, 0x47,
+ 0x72, 0xa8, 0x1d, 0x31,
+ 0x69, 0xb6, 0x74, 0x38, 0x5c, 0x64, 0x10, 0xef, 0x82, 0xee, 0xaa, 0xe9,
+ 0x8a, 0x53, 0xb7, 0xc0,
+ 0xc0, 0xd2, 0x41, 0xdb, 0x4a, 0x91, 0xd0, 0xa1, 0x55, 0xac, 0x5e, 0x8f,
+ 0x3d, 0x01, 0xdf, 0x89,
+ 0xba, 0xbf, 0xf7, 0x5c, 0x54, 0x08, 0xff, 0xc7, 0x32, 0xa4, 0x91, 0x4e,
+ 0xac, 0x20, 0xdc, 0x8e,
+ 0x16, 0xa0, 0xc6, 0xfb, 0x77, 0x8c, 0x4a, 0x68, 0x8d, 0x24, 0x3c, 0x03,
+ 0xa8, 0x75, 0xec, 0xfe,
+ 0x87, 0x68, 0xac, 0xfe, 0x5b, 0xa5, 0x09, 0xf4, 0xe0, 0xa0, 0x17, 0xcf,
+ 0x05, 0xd1, 0x3c, 0x6c,
+ 0x58, 0xc5, 0x9e, 0x6a, 0x1f, 0x75, 0xeb, 0x63, 0x71, 0x90, 0xf0, 0x0c,
+ 0xe5, 0x17, 0x36, 0x7e,
+ 0x59, 0x63, 0xf5, 0x7e, 0xaf, 0xd1, 0x24, 0x56, 0x06, 0xc5, 0x5c, 0xba,
+ 0x14, 0xc2, 0xf0, 0x73,
+ 0xc4, 0x0f, 0x2e, 0x8b, 0xcf, 0x44, 0x6a, 0x75, 0x4a, 0x3b, 0xab, 0x12,
+ 0x7f, 0xd3, 0x41, 0xbd,
+ 0x6a, 0x9f, 0xc9, 0x04, 0x4f, 0x4b, 0x82, 0xb0, 0x1b, 0x11, 0x9d, 0xf0,
+ 0x5a, 0xef, 0x3e, 0xd7,
+ 0x05, 0x7b, 0x04, 0x44, 0x35, 0x71, 0x75, 0xe1, 0x68, 0xc2, 0x59, 0x2b,
+ 0xb3, 0x07, 0x58, 0x39,
+ 0x9a, 0x98, 0x09, 0x99, 0xf6, 0x6f, 0x66, 0xa8, 0xca, 0x96, 0x35, 0x2c,
+ 0xf9, 0x7f, 0xa6, 0xed,
+ 0x06, 0x52, 0xb9, 0x78, 0x26, 0x5e, 0xe7, 0xbe, 0xf1, 0x3d, 0x6e, 0x32,
+ 0x63, 0xbb, 0xd1, 0x2e,
+ 0xa6, 0xe9, 0x39, 0x2f, 0x49, 0x66, 0x5f, 0xae, 0x6f, 0xc7, 0x1f, 0x1b,
+ 0xa1, 0x5b, 0x80, 0x02,
+ 0x0d, 0x02, 0xda, 0xe4, 0xfc, 0x18, 0xc2, 0x8a, 0x56, 0x2f, 0x70, 0xd2,
+ 0x37, 0x60, 0xa7, 0x51,
+ 0xd1, 0x86, 0x55, 0x4c, 0xab, 0xe7, 0xb2, 0x42, 0x5e, 0xe0, 0xa0, 0x08,
+ 0x07, 0x1a, 0x24, 0x54,
+ 0x43, 0x67, 0x82, 0x75, 0x94, 0xe1, 0x63, 0x81, 0xaa, 0x9b, 0xbc, 0xdd,
+ 0x7a, 0x02, 0x7d, 0xd1,
+ 0x85, 0xe7, 0x7a, 0xd6, 0xf8, 0x2e, 0x54, 0x9e, 0x0e, 0x0a, 0x8c, 0x60,
+ 0x24, 0xb8, 0x73, 0x76,
+ 0x41, 0xe8, 0x54, 0x5d, 0x37, 0x6a, 0x3e, 0xeb, 0x44, 0x31, 0x27, 0x72,
+ 0x5b, 0x6b, 0x32, 0xcb,
+ 0xd2, 0xaf, 0xe8, 0x70, 0xb8, 0xc8, 0x20, 0x1d, 0xc7, 0x1f, 0x97, 0x11,
+ 0xd7, 0xa6, 0xad, 0x43,
+ 0x2c, 0x83, 0x4f, 0x35, 0xee, 0xdb, 0x94, 0xd0, 0xd9, 0x48, 0x78, 0x06,
+ 0x93, 0xea, 0x1b, 0x3f,
+ 0xcd, 0xd0, 0x9b, 0x3f, 0xb6, 0x89, 0x12, 0x2b, 0x03, 0x83, 0x2e, 0x5d,
+ 0x0a, 0x61, 0x78, 0xd8,
+ 0x0b, 0x50, 0x63, 0x9c, 0xda, 0x46, 0x25, 0x34, 0xa7, 0x12, 0x1e, 0xe0,
+ 0x54, 0xdb, 0x76, 0x7f,
+ 0xa2, 0x34, 0x56, 0x7f, 0xcc, 0xb3, 0xe5, 0x7a, 0x70, 0x50, 0xea, 0x86,
+ 0xe3, 0x89, 0x1e, 0x36,
+ 0x38, 0xac, 0x5f, 0xe6, 0x3a, 0xdc, 0x83, 0xd2, 0xba, 0xc6, 0xdf, 0xaa,
+ 0x1a, 0xf6, 0xb8, 0xdb,
+ 0xf7, 0xf3, 0x12, 0xf1, 0x2f, 0xde, 0xcc, 0x93, 0x57, 0xef, 0x6a, 0x58,
+ 0x31, 0xfe, 0x8f, 0x19,
+ 0x4b, 0x1e, 0x5c, 0xd5, 0x5d, 0x88, 0xd4, 0xea, 0x94, 0x76, 0x95, 0x24,
+ 0xfe, 0x65, 0x82, 0xb9,
+ 0xe6, 0xa7, 0x06, 0x66, 0xce, 0xa8, 0xae, 0x70, 0x5c, 0xa3, 0x94, 0xdf,
+ 0x0b, 0xe5, 0x74, 0xc4,
+ 0xe7, 0x01, 0x6d, 0x72, 0x7e, 0x0c, 0x61, 0x45, 0x2b, 0xf6, 0x38, 0x69,
+ 0xfa, 0x30, 0xb2, 0xc9,
+ 0x90, 0x6e, 0x01, 0x11, 0x9c, 0x8d, 0x8c, 0xa9, 0x1a, 0xd1, 0x87, 0x7a,
+ 0x5c, 0x71, 0x16, 0x9f,
+ 0x1a, 0x04, 0x77, 0x0b, 0x3b, 0x30, 0x47, 0xd7, 0xac, 0x5e, 0xe0, 0x67,
+ 0x6e, 0xc0, 0x8d, 0xa2,
+ 0x53, 0x95, 0xfd, 0xf6, 0xc5, 0x33, 0xce, 0x57, 0xd6, 0x82, 0xee, 0xec,
+ 0xb1, 0xcc, 0x40, 0x01,
+ 0xa3, 0x92, 0x3d, 0x6b, 0x7c, 0x17, 0x2a, 0x4f, 0x07, 0x05, 0x46, 0x30,
+ 0x12, 0x5c, 0xd8, 0x3b,
+ 0xf1, 0xa1, 0xab, 0x89, 0x09, 0x80, 0x2b, 0x2d, 0xa6, 0xd2, 0x04, 0x6a,
+ 0x52, 0x45, 0x5e, 0x37,
+ 0xfd, 0x05, 0x1a, 0x79, 0x45, 0x3c, 0x26, 0x92, 0x87, 0xa8, 0xd8, 0x0e,
+ 0x94, 0xf0, 0x3f, 0x6b,
+ 0x51, 0x1a, 0x2b, 0xde, 0x66, 0xb8, 0x93, 0x3d, 0x38, 0x28, 0x75, 0x43,
+ 0x90, 0xa5, 0x0f, 0x1b,
+ 0x29, 0xf8, 0x4b, 0x71, 0xdb, 0xaa, 0xe1, 0x31, 0xb1, 0x8a, 0x21, 0x2d,
+ 0x20, 0xed, 0x43, 0x06,
+ 0x3b, 0x85, 0xe2, 0xda, 0x29, 0xf3, 0x11, 0x8d, 0x23, 0x39, 0xe8, 0xb3,
+ 0xca, 0x4a, 0x31, 0xcc,
+ 0x82, 0x13, 0xa8, 0xba, 0x6e, 0xd4, 0x7c, 0x15, 0x88, 0x62, 0x4e, 0xe4,
+ 0xb6, 0xd6, 0x64, 0x55,
+ 0x67, 0x9d, 0x13, 0xe0, 0xb3, 0x53, 0x40, 0x3a, 0x4d, 0x3e, 0xed, 0x22,
+ 0x6d, 0x8f, 0x99, 0x86,
+ 0x8b, 0xcc, 0x1d, 0x0e, 0x17, 0x19, 0x04, 0x4b, 0xc1, 0xda, 0xcb, 0xab,
+ 0xc3, 0x64, 0x5d, 0x30,
+ 0x48, 0x37, 0xe1, 0xe9, 0x4e, 0xa7, 0x46, 0xb5, 0x0d, 0x89, 0xa2, 0x3d,
+ 0x2e, 0xd9, 0x0b, 0xae,
+ 0x2a, 0xd1, 0xf6, 0x4d, 0xc8, 0x85, 0x73, 0x6e, 0x28, 0x75, 0x16, 0x34,
+ 0xf0, 0x51, 0xca, 0x11,
+ 0xef, 0x78, 0xb3, 0xd2, 0xb7, 0x65, 0xd6, 0x2e, 0x15, 0x1b, 0x11, 0x90,
+ 0x7e, 0x57, 0x4d, 0xa1,
+ 0x70, 0x9b, 0xbe, 0x0f, 0x74, 0x7b, 0xc5, 0x67, 0xb7, 0x4f, 0x7d, 0x97,
+ 0x34, 0x2f, 0xb3, 0x75,
+ 0x2d, 0x25, 0x24, 0x21, 0x5e, 0x7f, 0x5b, 0xe5, 0xae, 0x1d, 0xd4, 0xb0,
+ 0x62, 0x3f, 0xdd, 0x32,
+ 0x31, 0x73, 0xea, 0x52, 0x43, 0x11, 0xfb, 0x8c, 0xf3, 0x7e, 0x5a, 0xe5,
+ 0x6f, 0x44, 0x81, 0xbe,
+ 0xe2, 0x7a, 0x69, 0x36, 0x4b, 0x7d, 0x14, 0xa4, 0x43, 0x34, 0x61, 0x42,
+ 0x49, 0x37, 0xea, 0xf0,
+ 0x86, 0xce, 0xc7, 0xea, 0xeb, 0x01, 0xc6, 0xc1, 0x97, 0xf5, 0xbb, 0x79,
+ 0xf4, 0x04, 0xfa, 0x61,
+ 0xc9, 0x0d, 0xf4, 0x6f, 0x33, 0x5c, 0xa8, 0xff, 0x1c, 0x14, 0xdb, 0xc0,
+ 0x48, 0xb3, 0xe6, 0xec,
+ 0xb0, 0x49, 0xff, 0xd4, 0x3e, 0xea, 0x15, 0xc6, 0xe2, 0xe3, 0x23, 0x18,
+ 0x09, 0x2e, 0x6c, 0xfc,
+ 0x80, 0x9c, 0x7e, 0x92, 0xcd, 0x5f, 0x21, 0x7f, 0x66, 0xc8, 0xd5, 0x4b,
+ 0x97, 0xbf, 0x2b, 0x4f,
+ 0xf5, 0x7c, 0xc4, 0xd9, 0x8c, 0x55, 0x91, 0xf9, 0xb9, 0x45, 0xf1, 0xf7,
+ 0x10, 0x97, 0xc0, 0x03,
+ 0xfc, 0xa3, 0x71, 0x6d, 0xf5, 0x98, 0xe9, 0xa7, 0xf0, 0xfd, 0x74, 0xb8,
+ 0x65, 0x25, 0xf9, 0x66,
+ 0x60, 0x69, 0xc1, 0x8c, 0x25, 0xa9, 0x68, 0xb1, 0xcb, 0x56, 0x2f, 0xa6,
+ 0xff, 0xe1, 0x8e, 0xa5,
+ 0x44, 0x93, 0x50, 0x19, 0x02, 0x1b, 0x4b, 0x0a, 0x2c, 0xf3, 0x7e, 0x59,
+ 0xe8, 0x6c, 0x6a, 0xf2,
+ 0x0c, 0xa4, 0xb1, 0xf0, 0x4c, 0xbc, 0x0d, 0xbf, 0x21, 0x7a, 0xdc, 0x64,
+ 0xc6, 0xb5, 0x61, 0x5c,
+ 0x8f, 0x11, 0x72, 0x5e, 0x92, 0xcc, 0xbe, 0x9f, 0xde, 0x4d, 0x3e, 0x36,
+ 0x81, 0xb6, 0xc3, 0x04,
+ 0xa4, 0x66, 0xef, 0x07, 0xea, 0xed, 0x02, 0xc4, 0x81, 0x6d, 0x84, 0xb4,
+ 0x80, 0x32, 0xcf, 0x18,
+ 0x3d, 0xd7, 0x5b, 0xa2, 0x0f, 0xad, 0xf6, 0x33, 0xd2, 0x04, 0x86, 0x81,
+ 0xa9, 0xf1, 0xe0, 0xe2,
+ 0x62, 0xe6, 0x17, 0xa4, 0x86, 0x22, 0x35, 0xdb, 0x25, 0xfc, 0xb4, 0x09,
+ 0xde, 0x88, 0xc1, 0xbf,
+ 0x35, 0xae, 0x85, 0x02, 0xc6, 0xc4, 0x41, 0x58, 0xec, 0xe9, 0xaf, 0x78,
+ 0x2d, 0x96, 0x1f, 0x8a,
+ 0xe0, 0xf5, 0xbf, 0x1e, 0xe8, 0xf6, 0x49, 0xce, 0xad, 0x9e, 0xfa, 0xed,
+ 0x68, 0x5e, 0xa5, 0xea,
+ 0x68, 0x10, 0x1f, 0x2c, 0xec, 0xc0, 0xdf, 0xda, 0xf5, 0xbb, 0x06, 0x5f,
+ 0x7b, 0x86, 0x71, 0xcd,
+ 0xdc, 0x84, 0x8f, 0xa8, 0x57, 0xff, 0x70, 0xc8, 0x08, 0xcf, 0xd0, 0xda,
+ 0x30, 0x7a, 0x83, 0x05,
+ 0x40, 0x4e, 0x3f, 0x49, 0x87, 0xce, 0xf1, 0xde, 0x33, 0x64, 0x8b, 0xc4,
+ 0xaa, 0xbe, 0xf4, 0xc6,
+ 0xa0, 0xbb, 0x80, 0x57, 0x6f, 0x38, 0xb8, 0x10, 0x9e, 0xfa, 0x71, 0x29,
+ 0xc2, 0xe0, 0x51, 0x2c,
+ 0xa7, 0x4f, 0x52, 0x3b, 0xf9, 0xc2, 0x90, 0x9b, 0x18, 0x92, 0xb3, 0xad,
+ 0x50, 0x8e, 0x46, 0x0f,
+ 0x9f, 0xe3, 0x0d, 0xdd, 0xc3, 0x1e, 0x13, 0x49, 0xa2, 0x54, 0x6c, 0x07,
+ 0x4a, 0x78, 0xfe, 0xd4,
+ 0x2b, 0x77, 0x9d, 0x59, 0x78, 0x21, 0xbc, 0x5b, 0x5f, 0x20, 0xba, 0x82,
+ 0x01, 0x84, 0x0c, 0x1c,
+ 0xae, 0x90, 0xe7, 0x8f, 0x80, 0x0f, 0xe8, 0xc5, 0x51, 0x2a, 0x36, 0xe2,
+ 0x25, 0x3c, 0x7f, 0x6a,
+ 0x10, 0xf2, 0x7f, 0x83, 0x51, 0xd2, 0xad, 0xd6, 0x7c, 0x19, 0x52, 0x31,
+ 0xcb, 0xce, 0x3d, 0xd0,
+ 0xfe, 0x2c, 0xa7, 0x45, 0x56, 0x13, 0xb4, 0xcd, 0x1e, 0x57, 0xef, 0x17,
+ 0x44, 0x4c, 0xb6, 0x7c,
+ 0xa1, 0x1d, 0xeb, 0x43, 0xdf, 0x9c, 0x77, 0x25, 0xe9, 0xaf, 0xdd, 0x9f,
+ 0x33, 0x35, 0x97, 0x21,
+ 0xc7, 0x26, 0x93, 0xb7, 0xdc, 0x6b, 0xf8, 0x2a, 0xd3, 0xc4, 0x9c, 0x0b,
+ 0xaf, 0x6f, 0xc8, 0xaa,
+ 0x4d, 0x4c, 0xe5, 0xad, 0x7b, 0xd6, 0x33, 0x54, 0x65, 0x4b, 0xfb, 0x16,
+ 0x9d, 0xde, 0x53, 0x97,
+ 0xaa, 0x4d, 0x88, 0xdf, 0x05, 0xda, 0x52, 0x11, 0x4e, 0xbd, 0xc3, 0x7f,
+ 0x67, 0xee, 0xe1, 0x5e,
+ 0xd4, 0xfd, 0x51, 0x08, 0x9e, 0x96, 0xc7, 0xa3, 0x36, 0x22, 0xf9, 0x23,
+ 0xb4, 0x1d, 0x7c, 0x6d,
+ 0x42, 0xc1, 0xe9, 0x61, 0x24, 0x45, 0xac, 0xb4, 0xdd, 0xce, 0x10, 0x6b,
+ 0x8b, 0xd7, 0xbb, 0xdc,
+ 0x2e, 0x0c, 0x99, 0x1d, 0x4d, 0x50, 0xc9, 0xba, 0x37, 0xe2, 0xe3, 0xa9,
+ 0xb2, 0x83, 0x54, 0x25,
+ 0x49, 0x91, 0x8a, 0xfd, 0xfe, 0x03, 0x89, 0x80, 0x7a, 0xdc, 0x0e, 0x8b,
+ 0xdf, 0x0c, 0xcd, 0xa3,
+ 0xb2, 0xc6, 0x29, 0xfc, 0x9d, 0x61, 0x48, 0xac, 0x0c, 0x49, 0xb8, 0xb7,
+ 0x28, 0x47, 0x23, 0xe6,
+ 0x77, 0x6f, 0x6c, 0x63, 0xe2, 0x81, 0xed, 0xec, 0x31, 0x27, 0xbf, 0x13,
+ 0xa6, 0x41, 0xa4, 0x56,
+ 0x39, 0x0a, 0x34, 0xf2, 0x8a, 0x78, 0x4c, 0xe7, 0xcd, 0x93, 0x73, 0x1c,
+ 0xeb, 0x23, 0x7e, 0xd6,
+ 0xad, 0xb9, 0x5a, 0xb3, 0x93, 0x20, 0x7a, 0x9a, 0xc8, 0xd5, 0x01, 0xfb,
+ 0xf5, 0x80, 0xf6, 0x7d,
+ 0x20, 0x27, 0xfe, 0xc5, 0xa2, 0x67, 0x99, 0x6f, 0xf8, 0x32, 0xa4, 0x62,
+ 0x55, 0x5f, 0x7a, 0x63,
+ 0xcf, 0x5f, 0x4d, 0x17, 0x15, 0x02, 0x4f, 0x41, 0xed, 0x29, 0xb5, 0xf2,
+ 0x2b, 0x08, 0x37, 0xc2,
+ 0x64, 0xb4, 0xae, 0xdc, 0xa0, 0x7c, 0xd2, 0x65, 0xd4, 0xc1, 0xda, 0x3b,
+ 0xbd, 0x33, 0x10, 0x91,
+ 0x9b, 0x3e, 0x62, 0x8d, 0x46, 0xcb, 0xa9, 0x9d, 0xbd, 0xc3, 0x99, 0x9a,
+ 0x08, 0xaa, 0x60, 0xe0,
+ 0xde, 0x0b, 0x59, 0x80, 0xf4, 0x74, 0x2d, 0xa2, 0xe6, 0x65, 0x4b, 0x75,
+ 0x11, 0x13, 0xcc, 0x1f,
+ 0x7f, 0x16, 0xb2, 0xc3, 0x2b, 0xe8, 0x5a, 0x87, 0x0f, 0xca, 0x96, 0xea,
+ 0x22, 0x26, 0x5b, 0x3e,
+ 0xa8, 0xc2, 0x5e, 0xf7, 0xa6, 0x51, 0x0f, 0x7b, 0xa0, 0x17, 0x58, 0xd0,
+ 0x46, 0x87, 0xae, 0x44,
+ 0xb6, 0x1b, 0x46, 0xac, 0x18, 0xb4, 0xf2, 0x78, 0x13, 0xde, 0x4d, 0x2a,
+ 0x6a, 0x95, 0xbd, 0xd2,
+ 0x5c, 0x18, 0xf1, 0x3a, 0x9a, 0xa0, 0x51, 0xb7, 0x6e, 0x07, 0x05, 0x91,
+ 0xa7, 0xc5, 0xa8, 0x4a,
+ 0xa5, 0xc0, 0x84, 0x13, 0x5a, 0x49, 0xcd, 0xf1, 0xf6, 0x38, 0x28, 0x02,
+ 0x71, 0xe7, 0x09, 0x15,
+ 0x6b, 0x39, 0xa2, 0x10, 0xff, 0xef, 0x4d, 0x85, 0x6c, 0x44, 0x31, 0x46,
+ 0xab, 0x3a, 0xf8, 0xda,
+ 0xd3, 0x09, 0x83, 0x64, 0x08, 0x6c, 0xef, 0x28, 0xb0, 0x4a, 0x3b, 0xa7,
+ 0x26, 0x73, 0x6b, 0x4e,
+ 0xf0, 0x07, 0xc0, 0x9d, 0xb9, 0x24, 0xe4, 0x18, 0xd1, 0x87, 0xa8, 0xdc,
+ 0xa3, 0x90, 0x98, 0x3a,
+ 0x5d, 0xbe, 0x9a, 0x2e, 0x2a, 0x04, 0x9e, 0x82, 0x19, 0x52, 0xa9, 0x27,
+ 0x56, 0x10, 0x6e, 0x47,
+ 0xc8, 0xab, 0x9f, 0x7b, 0x83, 0xf8, 0x67, 0xca, 0x6b, 0x41, 0x77, 0x76,
+ 0xb9, 0x66, 0x20, 0xe1,
+ 0xc5, 0xa9, 0x45, 0x9f, 0x7f, 0xe0, 0xa5, 0x40, 0x3d, 0x6e, 0x07, 0xa4,
+ 0x8e, 0x06, 0x87, 0xb0,
+ 0xbd, 0x4b, 0x25, 0x30, 0xc2, 0xf2, 0xd7, 0x4c, 0xb4, 0xcc, 0x53, 0xca,
+ 0x3e, 0x4e, 0xcb, 0xad,
+ 0xc3, 0xfb, 0xfc, 0xe7, 0x59, 0xbe, 0x42, 0xfe, 0xcc, 0x53, 0x69, 0x96,
+ 0xed, 0xbd, 0x56, 0x9e,
+ 0xe4, 0x28, 0xd0, 0x4e, 0x6d, 0x23, 0xf3, 0x1a, 0xb2, 0x09, 0x0f, 0x70,
+ 0x2a, 0x8c, 0x3b, 0xde,
+ 0xaf, 0x36, 0x8c, 0x9b, 0x30, 0xab, 0x27, 0xf0, 0x26, 0x7f, 0x9a, 0x54,
+ 0xd4, 0xe9, 0xb9, 0x67,
+ 0xb8, 0x30, 0x21, 0x74, 0xf7, 0x83, 0xa2, 0xad, 0xdc, 0x0e, 0x0a, 0xe1,
+ 0x8d, 0x49, 0x93, 0x94,
+ 0xcb, 0x82, 0x22, 0x47, 0x90, 0xd7, 0xf5, 0x95, 0xf2, 0xbe, 0x40, 0x6f,
+ 0x69, 0xda, 0xa9, 0xf6,
+ 0xc1, 0x74, 0x2a, 0xcf, 0xfa, 0x35, 0x1f, 0x94, 0x22, 0xf9, 0xf2, 0x39,
+ 0xcc, 0xd4, 0x19, 0x84,
+ 0xb5, 0x32, 0xfb, 0x90, 0x0b, 0x9b, 0x60, 0x27, 0x8a, 0x21, 0x7a, 0x33,
+ 0xba, 0x29, 0x34, 0xc5,
+ 0x6f, 0xe4, 0xcd, 0x40, 0x7a, 0x3a, 0xf7, 0x51, 0x73, 0xd3, 0xc4, 0xdb,
+ 0xe9, 0xe8, 0x66, 0xee,
+ 0x4c, 0xea, 0x8e, 0xb9, 0xcb, 0x72, 0xfc, 0x61, 0x12, 0x1e, 0x57, 0xa0,
+ 0x6c, 0x0b, 0x95, 0x9a,
+ 0x97, 0x9a, 0xd3, 0x7d, 0x0a, 0x77, 0xa4, 0x22, 0x9c, 0xb9, 0x45, 0xfe,
+ 0xce, 0x1f, 0x01, 0xbc,
+ 0x88, 0xe5, 0xa0, 0x32, 0x04, 0x36, 0x96, 0x14, 0x58, 0x25, 0xfc, 0xb2,
+ 0x13, 0xd8, 0xd4, 0x27,
+ 0x61, 0xcf, 0xaa, 0x98, 0x95, 0x0d, 0xa7, 0x84, 0xbc, 0x03, 0x83, 0x10,
+ 0x0e, 0x34, 0x48, 0xa8,
+ 0x57, 0x48, 0x92, 0xa6, 0x40, 0xe6, 0x74, 0x83, 0xc9, 0x15, 0x1b, 0x71,
+ 0xf3, 0x1e, 0xde, 0x35,
+ 0x11, 0x54, 0x14, 0x97, 0xe1, 0x76, 0x62, 0xe3, 0x0b, 0x4c, 0xfe, 0x87,
+ 0x3a, 0x1b, 0xfb, 0xdd,
+ 0x99, 0xb1, 0xb4, 0xa5, 0xe5, 0x40, 0xf4, 0xf7, 0x53, 0x69, 0x02, 0x35,
+ 0x29, 0xc3, 0x2f, 0xfa,
+ 0x72, 0x14, 0x68, 0x27, 0xd7, 0xf0, 0x98, 0x0d, 0x59, 0xe5, 0xe6, 0x38,
+ 0x15, 0x46, 0xfc, 0x6f,
+ 0x83, 0xb5, 0xc3, 0xae, 0xde, 0x70, 0xb3, 0x20, 0xff, 0x37, 0xe2, 0x52,
+ 0x47, 0x03, 0xa2, 0x58,
+ 0xbf, 0xc4, 0xf3, 0x18, 0x61, 0x79, 0x8a, 0x26, 0x5a, 0x66, 0xc8, 0x65,
+ 0x1f, 0x27, 0x84, 0xb7,
+ 0x55, 0xc7, 0x44, 0x8e, 0xe3, 0x6d, 0x29, 0xe9, 0x27, 0xbf, 0x80, 0xde,
+ 0xd2, 0x77, 0x91, 0x2f,
+ 0x73, 0xb2, 0x03, 0x33, 0x67, 0x54, 0x57, 0x38, 0x2e, 0xb0, 0x4a, 0x8e,
+ 0xe4, 0x93, 0x3a, 0x62,
+ 0x9d, 0x6c, 0xdb, 0xf5, 0x60, 0x95, 0x4e, 0x23, 0x4c, 0xfe, 0xf7, 0xa8,
+ 0x6b, 0x11, 0xb1, 0xce,
+ 0x81, 0x3a, 0x15, 0x86, 0x7d, 0xfb, 0xee, 0x4a, 0x11, 0x9d, 0x79, 0xfd,
+ 0x66, 0x6a, 0xed, 0x42,
+ 0x3f, 0x58, 0x8d, 0x8a, 0xac, 0x26, 0xab, 0x59, 0x3c, 0xae, 0x1d, 0x2e,
+ 0x88, 0x98, 0xaf, 0xf8,
+ 0xb3, 0x60, 0x42, 0xe8, 0x2d, 0xc5, 0x87, 0x99, 0x7b, 0x1c, 0x14, 0x01,
+ 0xd9, 0x92, 0xe5, 0xeb,
+ 0xbb, 0x19, 0x9c, 0x48, 0xe4, 0xac, 0x30, 0xf2, 0x45, 0xf1, 0x3d, 0xf8,
+ 0x5d, 0xf5, 0x1a, 0x83,
+ 0xd6, 0x72, 0x87, 0x20, 0x3d, 0x1d, 0x9a, 0xc9, 0xd8, 0x88, 0x62, 0x8c,
+ 0x95, 0x74, 0x33, 0x77,
+ 0xea, 0x03, 0xb7, 0x96, 0x82, 0x14, 0xa3, 0xcf, 0x7d, 0xd9, 0x48, 0xbb,
+ 0xcd, 0x50, 0x15, 0x98,
+ 0x25, 0x5c, 0xfa, 0x81, 0x97, 0x16, 0xec, 0x8e, 0x90, 0xf0, 0xfd, 0x49,
+ 0xe6, 0x58, 0x22, 0x5a,
+ 0xce, 0xf9, 0x26, 0x03, 0xa5, 0xa6, 0x80, 0x74, 0x9a, 0x7c, 0x19, 0x44,
+ 0xda, 0xdd, 0xf1, 0xcf,
+ 0x63, 0x40, 0x7c, 0xb0, 0x36, 0x86, 0xfa, 0xee, 0x52, 0xa9, 0x18, 0xbf,
+ 0x2f, 0x5d, 0x07, 0xb2,
+ 0x45, 0x35, 0x3b, 0x0d, 0xb2, 0xbf, 0x84, 0x3f, 0x5b, 0xa6, 0xd2, 0xef,
+ 0x19, 0xb9, 0xac, 0xff,
+ 0x32, 0x5a, 0x57, 0x6e, 0x50, 0x3e, 0x69, 0xd3, 0x6a, 0x81, 0x6d, 0xfc,
+ 0xbf, 0xf8, 0x08, 0xa9,
+ 0xd7, 0xd4, 0xec, 0x34, 0x8d, 0xb9, 0x55, 0xfc, 0xaf, 0xdd, 0xce, 0x3a,
+ 0x64, 0xa1, 0xf5, 0x7a,
+ 0x9e, 0x45, 0x66, 0xc9, 0x73, 0xba, 0xdc, 0x7c, 0xd5, 0x01, 0xc0, 0xb1,
+ 0xbb, 0xad, 0x38, 0xd9,
+ 0x08, 0x79, 0xde, 0xa0, 0xc9, 0x69, 0xb7, 0x6b, 0x3e, 0xed, 0x29, 0xf9,
+ 0x84, 0x67, 0xff, 0x68,
+ 0x8d, 0x9e, 0xa4, 0x76, 0x31, 0x47, 0xe3, 0xf5, 0x30, 0xe7, 0xa5, 0x99,
+ 0xa0, 0xdf, 0x8c, 0x1e,
+ 0x79, 0x44, 0x0b, 0xbb, 0x0d, 0xb6, 0xbd, 0x39, 0xfe, 0xf7, 0xf8, 0xd8,
+ 0x41, 0x9d, 0x8a, 0x10,
+ 0xab, 0xeb, 0xe3, 0xcb, 0xb5, 0x7e, 0x9d, 0x24, 0x39, 0xe8, 0x6f, 0xc9,
+ 0x96, 0x3b, 0x27, 0x53,
+ 0x36, 0x87, 0x38, 0x3e, 0xd5, 0xeb, 0xd3, 0x07, 0x75, 0x16, 0x98, 0x61,
+ 0xfd, 0x2a, 0x96, 0x9d,
+ 0xfb, 0x57, 0xa3, 0x01, 0x63, 0x62, 0xc1, 0x2c, 0x76, 0x95, 0xb6, 0x3c,
+ 0xf7, 0x4b, 0xee, 0x45,
+ 0xec, 0x51, 0x0e, 0xee, 0xa4, 0x4a, 0x44, 0x71, 0x8c, 0xe4, 0x26, 0x89,
+ 0xae, 0xeb, 0xc4, 0xb6,
+ 0x4e, 0x65, 0x58, 0x91, 0x68, 0xf9, 0xa1, 0x0b, 0xfc, 0xb4, 0xcc, 0x0f,
+ 0x4d, 0x62, 0xda, 0x80,
+ 0x7e, 0xb0, 0xd9, 0xd7, 0x9b, 0x4c, 0x95, 0xb2, 0x78, 0x9f, 0x3a, 0x5c,
+ 0xd3, 0xf3, 0x9d, 0x33,
+ 0xd0, 0x20, 0x3e, 0x58, 0x1b, 0x43, 0x7d, 0x77, 0x29, 0xb5, 0x0c, 0xbe,
+ 0xf6, 0xcf, 0xe2, 0x59,
+ 0x6c, 0xcd, 0x70, 0x7c, 0x69, 0x15, 0x65, 0x0e, 0xea, 0x2c, 0xf3, 0xc2,
+ 0x39, 0x54, 0xef, 0xf9,
+ 0xf3, 0x2e, 0x7d, 0xa1, 0xaa, 0x0b, 0x76, 0x47, 0x48, 0x78, 0x9f, 0xc5,
+ 0x73, 0x2c, 0x11, 0x2d,
+ 0x5f, 0x31, 0x4c, 0x06, 0x89, 0x8f, 0xc3, 0xe8, 0xf7, 0xf8, 0x32, 0x88,
+ 0x77, 0x79, 0x21, 0x5d,
+ 0xff, 0x8a, 0xcc, 0x51, 0xe6, 0xb7, 0x7b, 0xf8, 0x69, 0x02, 0x43, 0xa1,
+ 0xb5, 0x99, 0x70, 0x71,
+ 0x8a, 0x6a, 0x76, 0x1a, 0xa7, 0xbd, 0xcb, 0x7e, 0xb6, 0x8f, 0x67, 0x1d,
+ 0x32, 0xb1, 0x9b, 0x3d,
+ 0x56, 0xee, 0xf9, 0xb2, 0xf0, 0x42, 0xbb, 0xb6, 0xbe, 0x40, 0xb7, 0xc7,
+ 0x02, 0xcb, 0x18, 0x38,
+ 0xdd, 0x22, 0xe4, 0xbc, 0xe7, 0x5b, 0xbf, 0xfd, 0x7f, 0x9a, 0x7c, 0x6c,
+ 0xc1, 0xaf, 0x45, 0x08,
+ 0xb4, 0x94, 0x90, 0x84, 0xbb, 0x3f, 0xaf, 0x12, 0xfd, 0x74, 0xd6, 0x85,
+ 0x4b, 0xfc, 0xf2, 0xc8,
+ 0x04, 0xdd, 0x6f, 0x50, 0x85, 0xd5, 0xba, 0xd4, 0x1f, 0x97, 0xf5, 0x9d,
+ 0x42, 0xd2, 0x9e, 0x34,
+ 0xbe, 0x62, 0x98, 0x0c, 0xd1, 0xdd, 0x45, 0x13, 0x2d, 0x33, 0x64, 0xd3,
+ 0xee, 0xf2, 0x42, 0xba,
+ 0x1b, 0xa2, 0x1c, 0x1f, 0x8b, 0x94, 0x88, 0xe2, 0xdb, 0x0b, 0x4c, 0xd1,
+ 0x9f, 0x15, 0x4b, 0xaf,
+ 0x9c, 0xca, 0xb0, 0xe1, 0xd0, 0x31, 0x81, 0x16, 0x3b, 0xab, 0x5b, 0x1e,
+ 0x9a, 0xc4, 0x77, 0xc3,
+ 0x5e, 0x97, 0x27, 0x12, 0x39, 0x2b, 0x0c, 0xdd, 0x80, 0xad, 0x9e, 0x3e,
+ 0x86, 0xac, 0xe7, 0x50,
+ 0x07, 0xf4, 0xd2, 0x6c, 0x96, 0xfa, 0x28, 0x8b, 0x86, 0x68, 0xc2, 0x84,
+ 0x92, 0x6e, 0x17, 0x23,
+ 0x8c, 0x38, 0xcf, 0x62, 0x81, 0xe3, 0x2c, 0xc0, 0x47, 0xb2, 0x09, 0x2f,
+ 0x51, 0x0a, 0x4a, 0x13,
+ 0x0f, 0x8d, 0x0c, 0xcc, 0x5f, 0x93, 0x9f, 0xe0, 0xb8, 0x85, 0xeb, 0x7d,
+ 0x16, 0x09, 0xe8, 0x4b,
+ 0x6d, 0x6b, 0x1b, 0x68, 0xd9, 0xb1, 0xaa, 0x3b, 0x9d, 0x79, 0x5f, 0x74,
+ 0xc8, 0x81, 0x29, 0xf4,
+ 0xf4, 0xda, 0xaf, 0xcd, 0x3c, 0xf1, 0x5e, 0xcc, 0xce, 0x10, 0x5d, 0x41,
+ 0xe1, 0x42, 0x06, 0x0e,
+ 0x26, 0x75, 0x47, 0xbd, 0x84, 0x39, 0x7e, 0xd1, 0x09, 0x0f, 0xca, 0x50,
+ 0x36, 0xe4, 0xab, 0x4d,
+ 0x71, 0x3d, 0xd5, 0x1b, 0xc4, 0xdf, 0x0a, 0x52, 0xc0, 0x1a, 0xd1, 0x21,
+ 0xc5, 0xfa, 0x75, 0x78,
+ 0x1c, 0x56, 0xce, 0x73, 0x1d, 0x6e, 0xa0, 0x69, 0x5d, 0x63, 0x8e, 0x55,
+ 0x0d, 0x7b, 0x5c, 0x8c,
+ 0x94, 0xb3, 0x6e, 0x41, 0x19, 0x58, 0x36, 0x7d, 0x05, 0x46, 0x72, 0xe7,
+ 0x1e, 0xa3, 0x88, 0xab,
+ 0x22, 0xa8, 0x28, 0xed, 0x01, 0xec, 0xc4, 0x05, 0x16, 0x98, 0x3f, 0xcd,
+ 0x74, 0x36, 0x35, 0x79,
+ 0xeb, 0xa5, 0xdc, 0x82, 0x32, 0xb0, 0x6c, 0xfa, 0x0a, 0x8c, 0xe4, 0x0d,
+ 0x3c, 0x85, 0xd3, 0x95,
+ 0xbc, 0xed, 0x4e, 0x24, 0x72, 0x56, 0x18, 0x79, 0xc3, 0x99, 0xff, 0x7c,
+ 0xcf, 0x9b, 0x0d, 0xa0,
+ 0x3c, 0x71, 0x30, 0xb6, 0xbf, 0x09, 0x39, 0x06, 0xa5, 0x51, 0x2a, 0x37,
+ 0x58, 0x24, 0x26, 0xef,
+ 0x15, 0x89, 0x7b, 0xc7, 0x64, 0xa3, 0xd8, 0x37, 0x14, 0xdb, 0x0b, 0x1a,
+ 0x78, 0xc9, 0x65, 0xe9,
+ 0xe9, 0x2a, 0x0a, 0xaa, 0x91, 0x3b, 0x31, 0x90, 0xe4, 0x26, 0x7f, 0xa2,
+ 0x1d, 0xec, 0x9c, 0x8f,
+ 0x02, 0x8f, 0xd6, 0x28, 0xa3, 0x8b, 0x5d, 0x6a, 0xee, 0xaa, 0x9b, 0xaf,
+ 0x21, 0x69, 0x4f, 0x1a,
+ 0x46, 0x1c, 0x86, 0x31, 0xa1, 0x90, 0x16, 0x60, 0xc2, 0x59, 0xe5, 0xf6,
+ 0xc9, 0x05, 0x25, 0xe8,
+ 0xda, 0xd6, 0x36, 0xd0, 0x71, 0xa1, 0x97, 0x76, 0xf9, 0xf2, 0xbe, 0xe8,
+ 0x53, 0xc1, 0x52, 0x2b,
+ 0x19, 0x2d, 0xca, 0x37, 0x28, 0x1f, 0xd5, 0x88, 0x35, 0xa1, 0xd7, 0x7e,
+ 0xbe, 0x7c, 0x04, 0xb5,
+ 0xdb, 0x70, 0x5d, 0xc4, 0xc1, 0x05, 0x58, 0x43, 0x8e, 0xa7, 0x12, 0x5e,
+ 0xa2, 0x14, 0x94, 0x26,
+ 0x1e, 0xd9, 0x18, 0x5b, 0xbe, 0xe5, 0xfd, 0x03, 0xb3, 0xc9, 0x15, 0xfa,
+ 0x2c, 0x12, 0x13, 0x96,
+ 0x17, 0x06, 0xad, 0xef, 0xc7, 0x28, 0x85, 0x5d, 0xfa, 0x71, 0x90, 0xb5,
+ 0x59, 0xa0, 0x2a, 0xf3,
+ 0x4a, 0xb8, 0x37, 0xc1, 0xed, 0x2c, 0x1b, 0xdf, 0xe3, 0x23, 0x39, 0x92,
+ 0x0f, 0xb0, 0x44, 0xb4,
+ 0x0a, 0xf6, 0x08, 0x88, 0x6a, 0xe2, 0xea, 0x01, 0xd0, 0x47, 0xb2, 0x56,
+ 0xa5, 0x0e, 0xb0, 0x72,
+ 0xd9, 0xff, 0x8b, 0xec, 0x62, 0x8e, 0x05, 0x29, 0x60, 0x0d, 0x89, 0xf1,
+ 0x83, 0x7d, 0xdb, 0x3c,
+ 0x89, 0x43, 0xcb, 0x26, 0xb4, 0x92, 0x59, 0x21, 0x2f, 0x70, 0x50, 0x04,
+ 0xe2, 0x0d, 0x12, 0x2a,
+ 0x78, 0xe2, 0x60, 0xaf, 0xbd, 0x12, 0x72, 0x0c, 0x89, 0xa2, 0x54, 0x6e,
+ 0xb0, 0x48, 0x4c, 0x1d,
+ 0x76, 0xc9, 0x07, 0x77, 0x52, 0x25, 0x22, 0xd9, 0x46, 0x72, 0x13, 0xa5,
+ 0x57, 0x94, 0x62, 0x5b,
+ 0x27, 0xd3, 0x2c, 0xa9, 0x34, 0x9d, 0xb1, 0xe4, 0x7e, 0x5a, 0x66, 0xe6,
+ 0xc7, 0x31, 0x6d, 0x40,
+ 0x18, 0x8b, 0xa1, 0x23, 0x98, 0xbb, 0x1a, 0xbd, 0x42, 0xf4, 0x7b, 0xc8,
+ 0x4f, 0xa9, 0xc2, 0xb8,
+ 0x23, 0x0e, 0x43, 0xf9, 0xb1, 0x48, 0x0b, 0x30, 0x61, 0xcd, 0x93, 0x7b,
+ 0x85, 0xe3, 0xf3, 0x74,
+ 0xf2, 0x88, 0x16, 0xb5, 0x1a, 0xaf, 0xb9, 0x72, 0x3f, 0x2d, 0x33, 0x73,
+ 0x82, 0xf9, 0xd7, 0x20,
+ 0x95, 0x15, 0x05, 0x55, 0xa9, 0xfc, 0xf9, 0x48, 0x72, 0x13, 0xde, 0x51,
+ 0xef, 0x76, 0x4e, 0xa6,
+ 0xd5, 0x5b, 0x3a, 0x1c, 0x2e, 0x32, 0x08, 0x96, 0x41, 0x77, 0x55, 0x95,
+ 0x45, 0xc8, 0xba, 0x60,
+ 0xa9, 0x64, 0x35, 0xe3, 0x16, 0xf5, 0xc0, 0x4e, 0xd7, 0x42, 0xf4, 0x66,
+ 0xb7, 0x52, 0x68, 0x49,
+ 0x84, 0x41, 0x11, 0xc2, 0x48, 0x8a, 0x9b, 0xab, 0x79, 0x5f, 0x20, 0xd6,
+ 0xd5, 0x6d, 0xb5, 0x7b,
+ 0xe1, 0x53, 0xd4, 0x0a, 0x58, 0x52, 0x86, 0xfb, 0xda, 0xcb, 0x56, 0x5b,
+ 0x99, 0x8b, 0x63, 0xe7,
+ 0x1d, 0xf0, 0xa5, 0x67, 0xad, 0xca, 0x6f, 0x5c, 0x2a, 0x36, 0x22, 0xe3,
+ 0xfc, 0xae, 0x9a, 0x81,
+ 0x93, 0x47, 0xbc, 0x2d, 0x8f, 0xa2, 0x1e, 0xf6, 0x83, 0x2e, 0xb0, 0x63,
+ 0x8c, 0xcd, 0x9f, 0x88,
+ 0x28, 0x5e, 0x20, 0x65, 0x6b, 0x0e, 0x2e, 0x04, 0xc6, 0xdf, 0x8d, 0x9b,
+ 0xd1, 0x38, 0x85, 0x0b,
+ 0xc6, 0x80, 0xf8, 0xa3, 0x6c, 0xcf, 0x37, 0x1f, 0xa4, 0x91, 0x30, 0xbd,
+ 0x5e, 0xba, 0x0e, 0xa7,
+ 0x7b, 0xcb, 0xdd, 0x93, 0xae, 0x3d, 0xe0, 0x53, 0x10, 0x5d, 0x63, 0x77,
+ 0x60, 0xf4, 0xc5, 0x0a,
+ 0x65, 0x12, 0xc5, 0xc8, 0x10, 0xd8, 0x1d, 0x50, 0xa3, 0x94, 0x76, 0x8d,
+ 0x4c, 0xe6, 0xd6, 0x9c,
+ 0x75, 0xe0, 0xba, 0x4b, 0x41, 0x0a, 0xb0, 0x86, 0xdf, 0x8d, 0x24, 0xbc,
+ 0x87, 0x28, 0xeb, 0x4c,
+ 0x7c, 0x3f, 0x0f, 0xff, 0x38, 0xc7, 0xc8, 0xd8, 0x96, 0x35, 0xa1, 0xf3,
+ 0xf2, 0x9a, 0xd2, 0x29,
+ 0xe3, 0xdc, 0x02, 0x22, 0xfb, 0xd9, 0xdb, 0x91, 0x34, 0x61, 0xcd, 0xf4,
+ 0xb8, 0xe2, 0x2c, 0xfd,
+ 0xee, 0xde, 0xd8, 0xc6, 0x07, 0xc1, 0x19, 0x1b, 0x62, 0x4e, 0xbd, 0x26,
+ 0x8f, 0x82, 0x8b, 0xac,
+ 0x21, 0x81, 0x95, 0xd1, 0x12, 0xc3, 0x56, 0x5a, 0x8f, 0x67, 0x08, 0xd4,
+ 0xa4, 0x8a, 0xbc, 0x6e,
+ 0x8e, 0xb7, 0x19, 0x4a, 0x22, 0x68, 0x71, 0xaa, 0xa9, 0x18, 0x92, 0x80,
+ 0x70, 0x63, 0x05, 0x09,
+ 0xf9, 0xd8, 0x75, 0x29, 0xc0, 0xe9, 0x9c, 0x46, 0x98, 0x3f, 0x2d, 0x93,
+ 0xd6, 0x22, 0xa1, 0x5f,
+ 0x01, 0xa6, 0x6b, 0x14, 0xb0, 0xa4, 0xcf, 0x35, 0x77, 0x55, 0xac, 0xb6,
+ 0xf1, 0xd5, 0xc6, 0x0d,
+ 0x5b, 0xec, 0x23, 0x56, 0x0c, 0x5a, 0x79, 0x3c, 0xe8, 0x6f, 0xc7, 0x15,
+ 0x35, 0xab, 0xbf, 0x69,
+ 0x91, 0xc8, 0x6a, 0x05, 0x2c, 0x29, 0x43, 0x9c, 0x6d, 0x84, 0x2b, 0xcc,
+ 0xad, 0xa4, 0xd0, 0x92,
+ 0x14, 0x2f, 0x10, 0xd3, 0xd4, 0x07, 0x17, 0x02, 0x63, 0x8e, 0xa7, 0xac,
+ 0x89, 0x1c, 0xa3, 0xe4,
+ 0x7a, 0x6d, 0xb6, 0x87, 0x1e, 0x99, 0x2f, 0x66, 0x67, 0x08, 0xcf, 0xc1,
+ 0x91, 0x21, 0x03, 0x07,
+ 0xf6, 0x55, 0x79, 0xe5, 0x9f, 0x7a, 0x03, 0xa6, 0x20, 0xba, 0xc6, 0xee,
+ 0xc0, 0x2b, 0x49, 0x14,
+ 0xb1, 0xef, 0x94, 0xc0, 0x8e, 0x4e, 0xda, 0xf3, 0x95, 0xb6, 0x8f, 0xae,
+ 0xf8, 0xfb, 0xaa, 0xf1,
+ 0xb7, 0xbd, 0x2d, 0xb8, 0xa8, 0x10, 0x3d, 0x4d, 0x64, 0x8b, 0xe1, 0x9c,
+ 0x9b, 0x40, 0x7b, 0xdf,
+ 0xca, 0x24, 0x49, 0x53, 0x20, 0x73, 0x3a, 0xa0, 0x85, 0xeb, 0xec, 0xd9,
+ 0x98, 0x0f, 0x6f, 0xfb,
+ 0x5a, 0x4a, 0x48, 0x42, 0xbc, 0xfe, 0xb6, 0x09, 0x9f, 0x3a, 0x6b, 0xa3,
+ 0xc4, 0x7e, 0x79, 0x64,
+ 0xf8, 0x7e, 0x1e, 0x3d, 0x70, 0x4d, 0x53, 0x73, 0xef, 0x6a, 0x81, 0x25,
+ 0x27, 0xf7, 0x67, 0x52,
+ 0xcc, 0x76, 0xf0, 0x2b, 0x06, 0x2d, 0xdd, 0x1e, 0x74, 0xd6, 0x82, 0xeb,
+ 0xfb, 0xb4, 0xbe, 0xd5,
+ 0x47, 0xba, 0xed, 0x25, 0x11, 0x34, 0xd9, 0x55, 0xb5, 0x0c, 0x49, 0x40,
+ 0x38, 0xd0, 0xe3, 0xe5,
+ 0x96, 0x3c, 0xb8, 0x69, 0xba, 0xd3, 0x6b, 0x17, 0xeb, 0xec, 0xe9, 0x48,
+ 0x3f, 0xca, 0xc7, 0xb1,
+ 0x6e, 0x42, 0xa6, 0x54, 0xca, 0x9e, 0x38, 0x64, 0x04, 0x86, 0x68, 0x6d,
+ 0x18, 0x3d, 0xa0, 0xe3,
+ 0x13, 0xdb, 0xc2, 0xbf, 0x42, 0xfd, 0x3f, 0x89, 0xe5, 0xe6, 0x65, 0x28,
+ 0x1b, 0x72, 0xb4, 0xc7,
+ 0x24, 0xfa, 0x91, 0x95, 0x27, 0xb2, 0x23, 0xbb, 0xe7, 0xa5, 0x51, 0xff,
+ 0x17, 0x8d, 0xe4, 0x57,
+ 0x74, 0x46, 0xd1, 0x5f, 0xf1, 0xae, 0x7f, 0xb3, 0xa8, 0xd8, 0x88, 0x0a,
+ 0x76, 0xfd, 0x2d, 0x41,
+ 0x09, 0xdf, 0xb5, 0xb4, 0x79, 0xcd, 0x78, 0x5e, 0x49, 0xb8, 0x85, 0x4f,
+ 0x75, 0xb2, 0x39, 0x65,
+ 0x03, 0x29, 0xbd, 0x3c, 0x13, 0x2f, 0x92, 0x5f, 0x99, 0xff, 0x37, 0x19,
+ 0xd0, 0xbc, 0x89, 0x17,
+ 0x30, 0xd5, 0x81, 0x46, 0xf3, 0xb5, 0x34, 0xb9, 0x84, 0x2b, 0xf6, 0x53,
+ 0x9e, 0x91, 0x47, 0xb3,
+ 0x50, 0xbc, 0x40, 0xca, 0xd6, 0x1c, 0x5c, 0x08, 0x4f, 0x7d, 0xd9, 0xf5,
+ 0x61, 0x70, 0xc9, 0x16,
+ 0x4f, 0xc3, 0x33, 0x85, 0xd8, 0x5d, 0x6e, 0x3e, 0x8b, 0xe1, 0x60, 0xb9,
+ 0xbc, 0xb7, 0x1c, 0x8d,
+ 0x0e, 0x2b, 0x67, 0xd8, 0xef, 0x37, 0x50, 0xd5, 0xcf, 0xd0, 0x47, 0xcb,
+ 0xe7, 0xdc, 0x2e, 0x46,
+ 0x7d, 0x99, 0x64, 0xeb, 0x88, 0x63, 0x07, 0xed, 0xe1, 0x60, 0x0d, 0x45,
+ 0x03, 0x4f, 0x14, 0x24,
+ 0xb9, 0x96, 0x4a, 0x60, 0x47, 0x27, 0x6d, 0x98, 0xab, 0x5b, 0xa6, 0x57,
+ 0x7c, 0x9c, 0x55, 0x99,
+ 0x37, 0x21, 0x53, 0x2a, 0x65, 0x4f, 0x1c, 0x32, 0x02, 0x43, 0x34, 0xd7,
+ 0x0c, 0xff, 0x50, 0x90,
+ 0x54, 0x61, 0x2f, 0x9a, 0x53, 0xc9, 0xe6, 0xdc, 0x50, 0xea, 0x2c, 0x68,
+ 0x23, 0xa2, 0x57, 0x22,
+ 0x1f, 0x7f, 0x73, 0x4f, 0x0e, 0x41, 0x32, 0x36, 0xc4, 0x9c, 0xb9, 0x4c,
+ 0xdd, 0xc7, 0xd5, 0x9b,
+ 0xc2, 0x5d, 0x97, 0xf3, 0xe9, 0x1a, 0x8d, 0xcb, 0xbb, 0x06, 0xc5, 0x20,
+ 0x1c, 0x68, 0x90, 0x93,
+ 0x33, 0xfc, 0x3c, 0x7a, 0xe0, 0x9a, 0xa6, 0xe6, 0x1d, 0xd4, 0xc1, 0x4a,
+ 0x4e, 0x2d, 0xce, 0xa4,
+ 0x3a, 0x23, 0x89, 0xce, 0x99, 0x57, 0xde, 0xb8, 0x54, 0x6c, 0x44, 0x05,
+ 0x3b, 0x9f, 0xf7, 0xc1,
+ 0xe5, 0x8e, 0xbb, 0x5a, 0xdd, 0x87, 0x3c, 0x2f, 0xc5, 0x5c, 0xa3, 0xc6,
+ 0xdb, 0x59, 0xfd, 0xd3,
+ 0xe8, 0x8c, 0x61, 0xbe, 0x21, 0x9f, 0xfe, 0xa5, 0x93, 0x73, 0xd3, 0x14,
+ 0xec, 0x39, 0x5a, 0x82,
+ 0x12, 0x7d, 0xa9, 0xab, 0xf2, 0x59, 0xf0, 0xbc, 0x92, 0xb3, 0xc9, 0x9e,
+ 0xea, 0xa7, 0x72, 0xca,
+ 0x92, 0xe1, 0xd7, 0x39, 0x3f, 0x06, 0xd1, 0xc3, 0xf4, 0x7b, 0x1c, 0xd5,
+ 0x7d, 0x18, 0x59, 0x85,
+ 0xac, 0x1f, 0x31, 0xa7, 0x23, 0x84, 0xb5, 0xaf, 0xbf, 0x80, 0xad, 0x4d,
+ 0x04, 0x55, 0x30, 0x70,
+ 0x34, 0x08, 0xee, 0x16, 0x76, 0x60, 0x8e, 0x6d, 0x9b, 0xbc, 0x03, 0xce,
+ 0xdc, 0x43, 0xd9, 0x87,
+ 0x52, 0x33, 0x96, 0xe2, 0x75, 0x97, 0x01, 0x62, 0xa1, 0xd7, 0x42, 0x5a,
+ 0x40, 0x19, 0x86, 0x0c,
+ 0xed, 0xf7, 0x65, 0xfa, 0x14, 0xee, 0x8b, 0x44, 0xfb, 0xb1, 0x8a, 0x3f,
+ 0x5f, 0x3e, 0x02, 0xbb,
+ 0xfa, 0xf1, 0xc8, 0x15, 0xd3, 0xc6, 0x0e, 0x19, 0x01, 0xc0, 0x1a, 0x8a,
+ 0x06, 0x9e, 0x28, 0x48,
+ 0x98, 0x17, 0xdf, 0xb1, 0x55, 0xe4, 0x3b, 0xc2, 0x24, 0x3c, 0xae, 0x83,
+ 0xd8, 0x16, 0xe9, 0xf7,
+ 0xdf, 0xad, 0x32, 0x94, 0x44, 0xd0, 0xe2, 0x97, 0x91, 0x30, 0xe7, 0xc3,
+ 0xe0, 0xc6, 0x0a, 0x12,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x66, 0x3b, 0x78, 0xf4, 0x03, 0xf7, 0x8f, 0x0f, 0x3a, 0x6b, 0x41, 0x94,
+ 0x9c, 0x5a, 0x5f, 0x8b,
+ 0x2f, 0xaa, 0xf2, 0x09, 0xfd, 0xf4, 0x06, 0x8f, 0x40, 0xb7, 0x4f, 0x1f,
+ 0x43, 0x56, 0x92, 0x28,
+ 0x3e, 0xfe, 0xe6, 0x9e, 0x1c, 0x82, 0x64, 0x6c, 0x4b, 0xfb, 0xb1, 0x98,
+ 0x79, 0x4d, 0x69, 0xf5,
+ },
+ { /* 12 */
+ 0xc2, 0x45, 0xb9, 0x57, 0x85, 0xa8, 0xdb, 0x13, 0x2a, 0x3f, 0xb0, 0xb9,
+ 0xb0, 0x0b, 0x7b, 0xc6,
+ 0x95, 0x59, 0xc2, 0x20, 0x7c, 0x53, 0x81, 0x21, 0x64, 0x56, 0x1f, 0xc2,
+ 0x1f, 0x6d, 0x57, 0x36,
+ 0xa6, 0x73, 0x93, 0x63, 0x29, 0x01, 0x42, 0x6e, 0x91, 0x38, 0x9b, 0x93,
+ 0x9b, 0xf4, 0x35, 0x9d,
+ 0x27, 0x78, 0x48, 0x3d, 0x69, 0x20, 0x97, 0x5e, 0x08, 0x0c, 0x8b, 0x48,
+ 0x8b, 0xf5, 0x6f, 0x4b,
+ 0xe0, 0xc8, 0x66, 0x94, 0xe3, 0x75, 0x59, 0xd8, 0x8c, 0xca, 0x48, 0x66,
+ 0x48, 0xe5, 0x86, 0xb5,
+ 0x86, 0x9c, 0xc4, 0x12, 0x49, 0xd1, 0x1c, 0x46, 0xa5, 0x16, 0x83, 0xc4,
+ 0x83, 0x14, 0x42, 0x20,
+ 0x06, 0xa6, 0x5b, 0x15, 0x0a, 0x17, 0xa7, 0xe6, 0x75, 0xae, 0xe3, 0x5b,
+ 0xe3, 0x12, 0x5d, 0x91,
+ 0x5d, 0x35, 0x96, 0x48, 0xe7, 0xc2, 0x70, 0xdb, 0xd1, 0x58, 0x49, 0x96,
+ 0x49, 0x50, 0xcb, 0x80,
+ 0x09, 0x7a, 0x21, 0xd4, 0x1b, 0xd3, 0x98, 0x9a, 0x44, 0x66, 0x76, 0x21,
+ 0x76, 0x3f, 0x28, 0xd9,
+ 0x78, 0x2f, 0x56, 0xc7, 0x88, 0xef, 0x3b, 0x66, 0x4b, 0x8f, 0x22, 0x56,
+ 0x22, 0xab, 0x2e, 0x05,
+ 0xf4, 0x9a, 0x7f, 0xea, 0xdf, 0x07, 0x0d, 0xc9, 0x71, 0xa8, 0x47, 0x7f,
+ 0x47, 0x89, 0x8b, 0x55,
+ 0x16, 0x30, 0x91, 0xcc, 0x3a, 0x7f, 0x88, 0xf2, 0x6f, 0xb9, 0xef, 0x91,
+ 0xef, 0x62, 0x87, 0x2e,
+ 0x19, 0xec, 0xeb, 0x0d, 0x2b, 0xbb, 0xb7, 0x8e, 0x5e, 0x71, 0x7a, 0xeb,
+ 0x7a, 0x4f, 0xf2, 0x66,
+ 0xec, 0x47, 0xd0, 0xbe, 0xf7, 0x5b, 0xd4, 0xd7, 0x66, 0x55, 0x4d, 0xd0,
+ 0x4d, 0xc1, 0x3c, 0x54,
+ 0x69, 0x88, 0xd8, 0x47, 0xbb, 0x60, 0x7a, 0xe2, 0x18, 0x14, 0x5e, 0xd8,
+ 0x5e, 0xdc, 0xb1, 0xdd,
+ 0x04, 0xc4, 0xd3, 0xa7, 0x0c, 0x1a, 0x7b, 0x05, 0xe7, 0x75, 0x03, 0xd3,
+ 0x03, 0x1c, 0xd7, 0x5f,
+ 0x8f, 0xe6, 0xe5, 0xc6, 0x52, 0x02, 0x84, 0xdc, 0xe1, 0x70, 0xf5, 0xe5,
+ 0xf5, 0x2b, 0x6a, 0xf9,
+ 0x30, 0x79, 0x9d, 0xa8, 0x50, 0xb8, 0x71, 0x3c, 0x2e, 0x39, 0x14, 0x9d,
+ 0x14, 0x90, 0xad, 0x02,
+ 0x39, 0x03, 0xbc, 0x7c, 0x4b, 0x6b, 0xe9, 0xa6, 0x6a, 0x5f, 0x62, 0xbc,
+ 0x62, 0xaf, 0x85, 0xdb,
+ 0xe9, 0xb2, 0x47, 0x40, 0xf8, 0xa6, 0xc1, 0x42, 0xc8, 0xac, 0x3e, 0x47,
+ 0x3e, 0xda, 0xae, 0x6c,
+ 0x03, 0x53, 0xcc, 0xeb, 0x05, 0xea, 0xb2, 0x73, 0xdb, 0x57, 0x90, 0xcc,
+ 0x90, 0x09, 0xcf, 0xa9,
+ 0xcf, 0xfb, 0x4b, 0x24, 0x92, 0x61, 0x38, 0x8c, 0x89, 0x2c, 0xc5, 0x4b,
+ 0xc5, 0x28, 0x84, 0x40,
+ 0x70, 0x64, 0x33, 0x4a, 0x90, 0xdb, 0xcd, 0x6c, 0x46, 0x65, 0x24, 0x33,
+ 0x24, 0x93, 0x43, 0xbb,
+ 0x43, 0x4e, 0x62, 0x09, 0xc5, 0x89, 0x0e, 0x23, 0xb3, 0x0b, 0xa0, 0x62,
+ 0xa0, 0x0a, 0x21, 0x10,
+ 0x55, 0x7e, 0xf3, 0xc5, 0xff, 0xf6, 0x86, 0xd1, 0xdc, 0xb2, 0x4f, 0xf3,
+ 0x4f, 0x68, 0xa6, 0x3e,
+ 0x2c, 0x60, 0xe1, 0x5b, 0x74, 0xfe, 0xd3, 0x27, 0xde, 0xb1, 0x1d, 0xe1,
+ 0x1d, 0xc4, 0xcd, 0x5c,
+ 0x12, 0xf4, 0x42, 0x6b, 0x36, 0x65, 0xf3, 0xf7, 0x88, 0xcc, 0xec, 0x42,
+ 0xec, 0x7e, 0x50, 0x71,
+ 0x8e, 0xd7, 0xa1, 0x9f, 0x51, 0xe5, 0xea, 0x4c, 0xa8, 0xfc, 0x85, 0xa1,
+ 0x85, 0x2c, 0x2f, 0x9e,
+ 0xd5, 0x44, 0x6c, 0xc2, 0xbc, 0x30, 0x3d, 0x71, 0x0c, 0x0a, 0x2f, 0x6c,
+ 0x2f, 0x6e, 0xb9, 0x8f,
+ 0x3d, 0xc7, 0x6f, 0xdb, 0x47, 0x71, 0x92, 0xa3, 0x8d, 0x2a, 0x61, 0x6f,
+ 0x61, 0xb3, 0x52, 0x84,
+ 0xd2, 0xd3, 0x73, 0x8e, 0xb5, 0xc0, 0xf4, 0x07, 0x30, 0x28, 0xbc, 0x73,
+ 0xbc, 0x7b, 0xa1, 0x79,
+ 0x76, 0xc2, 0x68, 0x5f, 0x9a, 0xcc, 0x6a, 0x8a, 0x33, 0xcb, 0xc7, 0x68,
+ 0xc7, 0x81, 0x1e, 0x2a,
+ 0x18, 0xdd, 0xaf, 0x54, 0x28, 0x5c, 0xd9, 0x1e, 0x17, 0xfd, 0x0a, 0xaf,
+ 0x0a, 0x48, 0xb7, 0x01,
+ 0x35, 0x8c, 0x0a, 0x56, 0x5f, 0x45, 0x64, 0xa9, 0x80, 0xc0, 0x67, 0x0a,
+ 0x67, 0x8b, 0x3f, 0x3a,
+ 0x07, 0x97, 0x1f, 0x4c, 0x09, 0xf0, 0xc9, 0x76, 0x3c, 0x22, 0x93, 0x1f,
+ 0x93, 0x15, 0x18, 0xf6,
+ 0xc0, 0x27, 0x31, 0xe5, 0x83, 0xa5, 0x07, 0xf0, 0xb8, 0xe4, 0x50, 0x31,
+ 0x50, 0x05, 0xf1, 0x08,
+ 0xf7, 0xc9, 0xb3, 0x01, 0xda, 0xed, 0xbf, 0xba, 0xaa, 0xff, 0xd7, 0xb3,
+ 0xd7, 0x80, 0x44, 0xfc,
+ 0xb8, 0x08, 0x67, 0x22, 0x0b, 0x4a, 0x3c, 0x96, 0xf3, 0x6b, 0x72, 0x67,
+ 0x72, 0xae, 0xdf, 0x0d,
+ 0x72, 0x06, 0xbb, 0xf8, 0x96, 0xd6, 0x11, 0x8f, 0xd4, 0xbe, 0xc4, 0xbb,
+ 0xc4, 0x9d, 0xc9, 0x75,
+ 0x11, 0xa7, 0x8e, 0x80, 0x33, 0x8f, 0x41, 0x84, 0x53, 0x9b, 0x7c, 0x8e,
+ 0x7c, 0x77, 0x9f, 0xd8,
+ 0xb4, 0x87, 0xd1, 0x08, 0x1f, 0x64, 0xb1, 0x99, 0x19, 0xf4, 0x77, 0xd1,
+ 0x77, 0x8a, 0x65, 0xec,
+ 0xff, 0x82, 0xd6, 0x8c, 0xc2, 0xd9, 0x49, 0xb0, 0xa7, 0x15, 0xd1, 0xd6,
+ 0xd1, 0xb8, 0x29, 0x42,
+ 0x1a, 0xbf, 0x27, 0xe6, 0x2e, 0x51, 0x05, 0xfd, 0x85, 0x26, 0xea, 0x27,
+ 0xea, 0x46, 0x3d, 0xcf,
+ 0x48, 0x56, 0xcb, 0x6f, 0xd8, 0x57, 0x4a, 0x5a, 0x65, 0xb6, 0x36, 0xcb,
+ 0x36, 0x3b, 0x83, 0x07,
+ 0xaa, 0xfc, 0x25, 0x49, 0x3d, 0x2f, 0xcf, 0x61, 0x7b, 0xa7, 0x9e, 0x25,
+ 0x9e, 0xd0, 0x8f, 0x7c,
+ 0x58, 0xc0, 0x01, 0xb6, 0xe8, 0x3f, 0x65, 0x4e, 0x7f, 0xa1, 0x3a, 0x01,
+ 0x3a, 0x4b, 0x59, 0xb8,
+ 0x93, 0xff, 0x99, 0x35, 0x76, 0x44, 0x26, 0xc7, 0x11, 0xf8, 0xfc, 0x99,
+ 0xfc, 0x7f, 0x0a, 0xa7,
+ 0x21, 0xde, 0x13, 0x28, 0x63, 0x37, 0x30, 0xb8, 0x7d, 0xa2, 0x68, 0x13,
+ 0x68, 0xe7, 0x32, 0xda,
+ 0xdd, 0x0f, 0x09, 0x4f, 0xa4, 0x04, 0xcb, 0x7b, 0x01, 0xe0, 0x29, 0x09,
+ 0x29, 0x56, 0xd4, 0x31,
+ 0x60, 0xf2, 0xf9, 0x93, 0xa0, 0xb3, 0xe2, 0x78, 0x5c, 0x72, 0x28, 0xf9,
+ 0x28, 0xe3, 0x99, 0x04,
+ 0x0c, 0x8f, 0xb6, 0x2a, 0x14, 0x2e, 0x8d, 0x0f, 0xea, 0x9f, 0x05, 0xb6,
+ 0x05, 0x24, 0xba, 0xe1,
+ 0xc4, 0xe3, 0xe2, 0x42, 0x8f, 0xbf, 0x7c, 0xf5, 0x5f, 0x91, 0x53, 0xe2,
+ 0x53, 0x19, 0x26, 0x57,
+ 0x9a, 0x85, 0xb8, 0xe1, 0x6d, 0x97, 0xbe, 0x5d, 0x55, 0x9e, 0x8a, 0xb8,
+ 0x8a, 0x40, 0x22, 0x7e,
+ 0x5c, 0x04, 0xd2, 0x11, 0xe4, 0x25, 0x1e, 0x4b, 0x98, 0xd4, 0x39, 0xd2,
+ 0x39, 0x57, 0x8e, 0xe7,
+ 0x53, 0xd8, 0xa8, 0xd0, 0xf5, 0xe1, 0x21, 0x37, 0xa9, 0x1c, 0xac, 0xa8,
+ 0xac, 0x7a, 0xfb, 0xaf,
+ 0xcd, 0x99, 0xc3, 0x96, 0x94, 0x6c, 0xe4, 0x6f, 0x1b, 0xf7, 0x25, 0xc3,
+ 0x25, 0x26, 0x0e, 0x8e,
+ 0x32, 0x1b, 0x15, 0x1a, 0x56, 0xb5, 0xad, 0xdf, 0xbc, 0xe2, 0xf4, 0x15,
+ 0xf4, 0x9e, 0x27, 0xcc,
+ 0x1b, 0x8e, 0x63, 0xbf, 0x2d, 0xb6, 0x6b, 0x6d, 0xcc, 0xaa, 0x9a, 0x63,
+ 0x9a, 0x41, 0x78, 0xa8,
+ 0x5a, 0xa2, 0x89, 0x04, 0xee, 0x32, 0xb9, 0xad, 0xed, 0x7a, 0xda, 0x89,
+ 0xda, 0x45, 0xd3, 0x76,
+ 0xa1, 0xe4, 0x8c, 0x2f, 0x20, 0xf1, 0x8b, 0x18, 0xad, 0x1a, 0x08, 0x8c,
+ 0x08, 0xe1, 0x2d, 0x6b,
+ 0xe5, 0x3d, 0xf1, 0x6a, 0xec, 0x88, 0x4c, 0x4d, 0x22, 0x33, 0x3b, 0xf1,
+ 0x3b, 0xfe, 0x14, 0x8d,
+ 0x3c, 0xf6, 0x2b, 0x82, 0x44, 0x96, 0xfc, 0x33, 0xc4, 0xa6, 0x11, 0x2b,
+ 0x11, 0xb4, 0x17, 0xe3,
+ 0x97, 0x3b, 0x4a, 0x92, 0x7a, 0x5e, 0x5d, 0xc2, 0xf6, 0x8d, 0xff, 0x4a,
+ 0xff, 0x63, 0xdd, 0xf8,
+ 0xce, 0xca, 0x0f, 0x7d, 0x91, 0x86, 0x56, 0x1c, 0xc0, 0xa0, 0xb5, 0x0f,
+ 0xb5, 0x2f, 0xc1, 0x27,
+ 0x6d, 0x4c, 0x0b, 0xe0, 0xb7, 0x7a, 0x01, 0xe7, 0xff, 0x61, 0x5d, 0x0b,
+ 0x5d, 0xc0, 0x66, 0x82,
+ 0x62, 0x90, 0x71, 0x21, 0xa6, 0xbe, 0x3e, 0x9b, 0xce, 0xa9, 0xc8, 0x71,
+ 0xc8, 0xed, 0x13, 0xca,
+ 0xf5, 0xab, 0x3b, 0xb3, 0xdc, 0xe0, 0x63, 0x59, 0x38, 0x24, 0x37, 0x3b,
+ 0x37, 0x8e, 0xce, 0x32,
+ 0xb7, 0xd4, 0x1d, 0xe3, 0x1a, 0x8e, 0x03, 0xea, 0xc2, 0xa3, 0xe7, 0x1d,
+ 0xe7, 0x83, 0xaa, 0x45,
+ 0xe2, 0xaa, 0xee, 0x26, 0xe5, 0x78, 0x85, 0x3b, 0x1e, 0x11, 0xa8, 0xee,
+ 0xa8, 0xeb, 0x0c, 0x7b,
+ 0x41, 0x2c, 0xea, 0xbb, 0xc3, 0x84, 0xd2, 0xc0, 0x21, 0xd0, 0x40, 0xea,
+ 0x40, 0x04, 0xab, 0xde,
+ 0x71, 0x55, 0x77, 0x13, 0x93, 0x3c, 0xa3, 0xfc, 0x0f, 0xe9, 0x54, 0x77,
+ 0x54, 0x94, 0x06, 0xdc,
+ 0xf9, 0x24, 0x8d, 0x99, 0xc8, 0xce, 0xee, 0x56, 0xd2, 0xbb, 0x32, 0x8d,
+ 0x32, 0xaa, 0x74, 0xd3,
+ 0xea, 0xe1, 0x8b, 0xab, 0xfd, 0x4c, 0x73, 0x31, 0x13, 0xfb, 0xae, 0x8b,
+ 0xae, 0xd3, 0x61, 0xc5,
+ 0xae, 0x38, 0xf6, 0xee, 0x31, 0x35, 0xb4, 0x64, 0x9c, 0xd2, 0x9d, 0xf6,
+ 0x9d, 0xcc, 0x58, 0x23,
+ 0xe4, 0x0c, 0xb5, 0x33, 0xef, 0x6f, 0x22, 0xdd, 0x6b, 0xbf, 0x4b, 0xb5,
+ 0x4b, 0xf9, 0x51, 0xea,
+ 0x0b, 0x18, 0xa9, 0x66, 0x1d, 0xde, 0x44, 0x79, 0xd6, 0xbd, 0x96, 0xa9,
+ 0x96, 0x31, 0xa2, 0x17,
+ 0xde, 0x5c, 0xc5, 0xa4, 0xa1, 0xee, 0x79, 0x08, 0xda, 0xb7, 0xb9, 0xc5,
+ 0xb9, 0x5f, 0x1b, 0x98,
+ 0xf0, 0x5e, 0xac, 0x4d, 0xd3, 0x1d, 0x76, 0xcc, 0x96, 0xdd, 0x44, 0xac,
+ 0x44, 0x95, 0x5c, 0x0a,
+ 0xd4, 0x75, 0x28, 0x9b, 0xbf, 0xd7, 0x53, 0xe1, 0x45, 0x86, 0x5f, 0x28,
+ 0x5f, 0x69, 0xfc, 0xe8,
+ 0xb5, 0xb6, 0x95, 0x51, 0x1c, 0x83, 0xdf, 0x09, 0x50, 0x78, 0x07, 0x95,
+ 0x07, 0x8d, 0x20, 0x8b,
+ 0xa4, 0x11, 0x1b, 0xd1, 0x2f, 0x0c, 0x9e, 0x8d, 0x03, 0xe3, 0x7b, 0x1b,
+ 0x7b, 0xfa, 0xbf, 0x53,
+ 0xba, 0x6a, 0xef, 0x90, 0x0d, 0x47, 0xe0, 0x75, 0x61, 0xb0, 0x92, 0xef,
+ 0x92, 0xa0, 0x55, 0xc3,
+ 0xe8, 0x83, 0x03, 0x19, 0xfb, 0x41, 0xaf, 0xd2, 0x81, 0x20, 0x4e, 0x03,
+ 0x4e, 0xdd, 0xeb, 0x0b,
+ 0x0e, 0xed, 0x3e, 0x98, 0x12, 0x23, 0x51, 0xec, 0x78, 0x44, 0xe5, 0x3e,
+ 0xe5, 0x2a, 0x30, 0x2f,
+ 0x9c, 0x23, 0xe3, 0xf4, 0x67, 0x80, 0x19, 0xbb, 0x20, 0x30, 0x69, 0xe3,
+ 0x69, 0x52, 0x7f, 0xef,
+ 0x31, 0x48, 0xd9, 0xf1, 0x53, 0x5f, 0x1f, 0xac, 0x67, 0xb5, 0x64, 0xd9,
+ 0x64, 0x97, 0xe8, 0x65,
+ 0x79, 0x1e, 0x12, 0x9e, 0x8b, 0x08, 0x55, 0xf6, 0x02, 0x03, 0x52, 0x12,
+ 0x52, 0xac, 0x6b, 0x62,
+ 0xfc, 0xd1, 0x1a, 0x67, 0xc7, 0x33, 0xfb, 0xc3, 0x7c, 0x42, 0x41, 0x1a,
+ 0x41, 0xb1, 0xe6, 0xeb,
+ 0x4d, 0xa3, 0x5c, 0x91, 0xd7, 0xaa, 0x5f, 0xcf, 0xcb, 0x4f, 0x45, 0x5c,
+ 0x45, 0x20, 0x11, 0x3f,
+ 0xdb, 0xa9, 0x52, 0x5a, 0xae, 0x13, 0x6c, 0x9d, 0x74, 0x4e, 0xca, 0x52,
+ 0xca, 0x44, 0x89, 0xa0,
+ 0x75, 0x91, 0xa4, 0xb4, 0x9f, 0x26, 0xd8, 0xf9, 0xe8, 0x9c, 0x57, 0xa4,
+ 0x57, 0x88, 0xd1, 0x83,
+ 0x68, 0xb9, 0x9c, 0x1e, 0xb8, 0x87, 0x14, 0x72, 0x51, 0x98, 0x2e, 0x9c,
+ 0x2e, 0xdb, 0xf4, 0xba,
+ 0x15, 0x63, 0x5d, 0x27, 0x3f, 0x95, 0x3a, 0x81, 0xb4, 0xee, 0x7f, 0x5d,
+ 0x7f, 0x6b, 0x48, 0x87,
+ 0xa9, 0xaf, 0xe9, 0xa2, 0x38, 0xc5, 0x7d, 0x12, 0xa0, 0xf0, 0x0e, 0xe9,
+ 0x0e, 0xd9, 0x40, 0xd5,
+ 0x01, 0x31, 0x44, 0x59, 0x03, 0xe7, 0x6e, 0x90, 0x49, 0x8c, 0x70, 0x44,
+ 0x70, 0x07, 0x45, 0x67,
+ 0x23, 0xbc, 0x9b, 0x9a, 0x65, 0x3a, 0xec, 0x5b, 0xef, 0x79, 0x88, 0x9b,
+ 0x88, 0xe9, 0xb8, 0x14,
+ 0xb2, 0x21, 0x8a, 0x1d, 0x15, 0x73, 0x16, 0x7f, 0x6c, 0x5a, 0x94, 0x8a,
+ 0x94, 0x98, 0x38, 0x7d,
+ 0x6e, 0x1f, 0xc7, 0x0b, 0xb2, 0x90, 0xb3, 0x94, 0x24, 0x36, 0xcd, 0xc7,
+ 0xcd, 0xc9, 0xa9, 0x2b,
+ 0xf2, 0x3c, 0x24, 0xff, 0xd5, 0x10, 0xaa, 0x2f, 0x04, 0x06, 0xa4, 0x24,
+ 0xa4, 0x9b, 0xd6, 0xc4,
+ 0x3b, 0x61, 0x34, 0xce, 0x4d, 0x66, 0x35, 0x45, 0xf8, 0x84, 0x82, 0x34,
+ 0x82, 0xa1, 0x0f, 0x15,
+ 0x52, 0xe9, 0xec, 0x89, 0xf6, 0x06, 0x4f, 0xa7, 0xe0, 0x90, 0xdc, 0xec,
+ 0xdc, 0x7d, 0xbe, 0xc8,
+ 0x65, 0x07, 0x6e, 0x6d, 0xaf, 0x4e, 0xf7, 0xed, 0xf2, 0x8b, 0x5b, 0x6e,
+ 0x5b, 0xf8, 0x0b, 0x3c,
+ 0x4b, 0x05, 0x07, 0x84, 0xdd, 0xbd, 0xf8, 0x29, 0xbe, 0xe1, 0xa6, 0x07,
+ 0xa6, 0x32, 0x4c, 0xae,
+ 0x38, 0x32, 0xf8, 0x25, 0x48, 0x8c, 0x87, 0x36, 0x23, 0xd3, 0x12, 0xf8,
+ 0x12, 0xa8, 0xc0, 0xbc,
+ 0x2a, 0xc6, 0xba, 0x4e, 0x7e, 0xe9, 0x74, 0xc1, 0xab, 0x1f, 0xfe, 0xba,
+ 0xfe, 0xd6, 0x90, 0xcd,
+ 0x91, 0x9d, 0x11, 0x87, 0x70, 0x49, 0xfa, 0x24, 0x83, 0x23, 0x1c, 0x11,
+ 0x1c, 0x71, 0x80, 0x69,
+ 0xd6, 0x17, 0xa0, 0x29, 0xb9, 0xda, 0x8f, 0x02, 0xd7, 0x5d, 0xbf, 0xa0,
+ 0xbf, 0x67, 0x76, 0x26,
+ 0xfd, 0xe0, 0x5e, 0x3e, 0xc4, 0xd4, 0x95, 0x53, 0x35, 0xce, 0x31, 0x5e,
+ 0x31, 0xb6, 0xa3, 0x8c,
+ 0xf8, 0x15, 0xc9, 0xc0, 0xcb, 0x29, 0x80, 0xc6, 0x9b, 0x37, 0x42, 0xc9,
+ 0x42, 0xad, 0x31, 0xb4,
+ 0x8c, 0xb5, 0x29, 0x2d, 0x57, 0xe8, 0x36, 0xaf, 0x3a, 0x27, 0x65, 0x29,
+ 0x65, 0x22, 0xa5, 0x50,
+ 0x50, 0x8b, 0x64, 0x3b, 0xf0, 0x0b, 0x93, 0x44, 0x72, 0x4b, 0x3c, 0x64,
+ 0x3c, 0x73, 0x34, 0x06,
+ 0x7f, 0xb8, 0x49, 0x8b, 0x81, 0x1f, 0xf2, 0x10, 0x77, 0xad, 0xb1, 0x49,
+ 0xb1, 0xbe, 0x36, 0xf3,
+ 0x59, 0xf1, 0x45, 0xef, 0xeb, 0xd8, 0x0b, 0xde, 0x36, 0x2d, 0x4a, 0x45,
+ 0x4a, 0x4c, 0x1c, 0xdf,
+ 0x08, 0x4b, 0x65, 0x8d, 0x18, 0x34, 0xf6, 0x0a, 0x0d, 0xea, 0x06, 0x65,
+ 0x06, 0x38, 0x6d, 0xbe,
+ 0xd9, 0xcb, 0xda, 0xe8, 0xa8, 0x1e, 0xb0, 0x7e, 0xe6, 0x95, 0x2a, 0xda,
+ 0x2a, 0x4a, 0x03, 0x6e,
+ 0xa2, 0xb7, 0x40, 0xc4, 0x25, 0x1b, 0x39, 0x6b, 0x76, 0x4d, 0x98, 0x40,
+ 0x98, 0xe8, 0xe2, 0xc2,
+ 0xfb, 0x46, 0x05, 0x2b, 0xce, 0xc3, 0x32, 0xb5, 0x40, 0x60, 0xd2, 0x05,
+ 0xd2, 0xa4, 0xfe, 0x1d,
+ 0x1c, 0x19, 0x7c, 0xf3, 0x24, 0x46, 0xa2, 0x1b, 0xf0, 0x88, 0x09, 0x7c,
+ 0x09, 0x54, 0x60, 0x5e,
+ 0x29, 0x95, 0x76, 0xa5, 0x7b, 0x03, 0xc6, 0xb2, 0x70, 0x48, 0x6e, 0x76,
+ 0x6e, 0xdf, 0x5f, 0x64,
+ 0xd3, 0xe2, 0x37, 0xd7, 0xb6, 0x27, 0x9a, 0x97, 0x79, 0xa4, 0xcc, 0x37,
+ 0xcc, 0x7c, 0xe4, 0x1e,
+ 0x6f, 0x2e, 0x83, 0x52, 0xb1, 0x77, 0xdd, 0x04, 0x6d, 0xba, 0xbd, 0x83,
+ 0xbd, 0xce, 0xec, 0x4c,
+ 0x47, 0x8a, 0xb1, 0xae, 0xc9, 0x93, 0x75, 0x26, 0x54, 0x7e, 0xa3, 0xb1,
+ 0xa3, 0x16, 0xf6, 0x4f,
+ 0x54, 0x4f, 0xb7, 0x9c, 0xfc, 0x11, 0xe8, 0x41, 0x95, 0x3e, 0x3f, 0xb7,
+ 0x3f, 0x6f, 0xe3, 0x59,
+ 0x9f, 0x70, 0x2f, 0x1f, 0x62, 0x6a, 0xab, 0xc8, 0xfb, 0x67, 0xf9, 0x2f,
+ 0xf9, 0x5b, 0xb0, 0x46,
+ 0x17, 0x01, 0xd5, 0x95, 0x39, 0x98, 0xe6, 0x62, 0x26, 0x35, 0x9f, 0xd5,
+ 0x9f, 0x65, 0xc2, 0x49,
+ 0xe1, 0xf9, 0x22, 0xcd, 0xe0, 0x92, 0x37, 0x48, 0xc5, 0x46, 0x38, 0x22,
+ 0x38, 0xe2, 0xc3, 0xd2,
+ 0x7c, 0xeb, 0x85, 0x60, 0x84, 0xf5, 0x40, 0x63, 0xac, 0xfa, 0x21, 0x85,
+ 0x21, 0xb7, 0xf9, 0x5a,
+ 0x46, 0xbb, 0xf5, 0xf7, 0xca, 0x74, 0x1b, 0xb6, 0x1d, 0xf2, 0xd3, 0xf5,
+ 0xd3, 0x11, 0xb3, 0x28,
+ 0xbc, 0xcc, 0xb4, 0x85, 0x07, 0x50, 0x47, 0x93, 0x14, 0x1e, 0x71, 0xb4,
+ 0x71, 0xb2, 0x08, 0x52,
+ 0xc5, 0xd2, 0xa6, 0x1b, 0x8c, 0x58, 0x12, 0x65, 0x16, 0x1d, 0x23, 0xa6,
+ 0x23, 0x1e, 0x63, 0x30,
+ 0x22, 0x8d, 0xdf, 0xc3, 0x66, 0xdd, 0x82, 0xcb, 0xa6, 0xf5, 0xf8, 0xdf,
+ 0xf8, 0xee, 0xfd, 0x73,
+ 0xbe, 0xae, 0x3c, 0x37, 0x01, 0x5d, 0x9b, 0x70, 0x86, 0xc5, 0x91, 0x3c,
+ 0x91, 0xbc, 0x82, 0x9c,
+ 0x96, 0x0a, 0x0e, 0xcb, 0x79, 0xb9, 0x33, 0x52, 0xbf, 0x01, 0x8f, 0x0e,
+ 0x8f, 0x64, 0x98, 0x9f,
+ 0x7e, 0x89, 0x0d, 0xd2, 0x82, 0xf8, 0x9c, 0x80, 0x3e, 0x21, 0xc1, 0x0d,
+ 0xc1, 0xb9, 0x73, 0x94,
+ 0x1d, 0x28, 0x38, 0xaa, 0x27, 0xa1, 0xcc, 0x8b, 0xb9, 0x04, 0x79, 0x38,
+ 0x79, 0x53, 0x25, 0x39,
+ 0xb9, 0x39, 0x23, 0x7b, 0x08, 0xad, 0x52, 0x06, 0xba, 0xe7, 0x02, 0x23,
+ 0x02, 0xa9, 0x9a, 0x6a,
+ 0x9d, 0x12, 0xa7, 0xad, 0x64, 0x67, 0x77, 0x2b, 0x69, 0xbc, 0x19, 0xa7,
+ 0x19, 0x55, 0x3a, 0x88,
+ 0xad, 0x6b, 0x3a, 0x05, 0x34, 0xdf, 0x06, 0x17, 0x47, 0x85, 0x0d, 0x3a,
+ 0x0d, 0xc5, 0x97, 0x8a,
+ 0x6c, 0x7d, 0x4f, 0xb9, 0xb4, 0x9d, 0x6f, 0x77, 0xb6, 0xed, 0x2d, 0x4f,
+ 0x2d, 0xc7, 0x23, 0xe5,
+ 0x85, 0xcf, 0x08, 0xf9, 0x4c, 0x3b, 0xae, 0x35, 0x7e, 0x41, 0x13, 0x08,
+ 0x13, 0x1d, 0x8d, 0x89,
+ 0xd1, 0x80, 0xbf, 0x65, 0xb0, 0x2a, 0x46, 0x74, 0xeb, 0x7f, 0x2c, 0xbf,
+ 0x2c, 0x72, 0x6e, 0xd0,
+ 0x1e, 0x7b, 0xf4, 0x41, 0x22, 0x4b, 0x7e, 0xf8, 0x62, 0x53, 0xe9, 0xf4,
+ 0xe9, 0x5a, 0xea, 0x90,
+ 0xa5, 0x20, 0x5f, 0x88, 0x2c, 0xeb, 0xf0, 0x1d, 0x4a, 0x6f, 0x0b, 0x5f,
+ 0x0b, 0xfd, 0xfa, 0x34,
+ 0xe6, 0x6e, 0x3d, 0x81, 0xe9, 0x62, 0xfe, 0x3e, 0xf9, 0x64, 0xab, 0x3d,
+ 0xab, 0xf7, 0xdb, 0x24,
+ 0x2e, 0x02, 0x69, 0xe9, 0x72, 0xf3, 0x0f, 0xc4, 0x4c, 0x6a, 0xfd, 0x69,
+ 0xfd, 0xca, 0x47, 0x92,
+ 0x5f, 0x57, 0x1e, 0xfa, 0xe1, 0xcf, 0xac, 0x38, 0x43, 0x83, 0xa9, 0x1e,
+ 0xa9, 0x5e, 0x41, 0x4e,
+ 0x61, 0xc3, 0xbd, 0xca, 0xa3, 0x54, 0x8c, 0xe8, 0x15, 0xfe, 0x58, 0xbd,
+ 0x58, 0xe4, 0xdc, 0x63,
+ 0x83, 0x69, 0x53, 0xec, 0x46, 0x2c, 0x09, 0xd3, 0x0b, 0xef, 0xf0, 0x53,
+ 0xf0, 0x0f, 0xd0, 0x18,
+ 0x44, 0xd9, 0x7d, 0x45, 0xcc, 0x79, 0xc7, 0x55, 0x8f, 0x29, 0x33, 0x7d,
+ 0x33, 0x1f, 0x39, 0xe6,
+ 0xb1, 0x72, 0x46, 0xf6, 0x10, 0x99, 0xa4, 0x0c, 0xb7, 0x0d, 0x04, 0x46,
+ 0x04, 0x91, 0xf7, 0xd4,
+ 0xef, 0x14, 0x1c, 0x55, 0xf2, 0xb1, 0x66, 0xa4, 0xbd, 0x02, 0xdd, 0x1c,
+ 0xdd, 0xc8, 0xf3, 0xfd,
+ 0x82, 0x58, 0x17, 0xb5, 0x45, 0xcb, 0x67, 0x43, 0x42, 0x63, 0x80, 0x17,
+ 0x80, 0x08, 0x95, 0x7f,
+ 0x36, 0xdf, 0xc6, 0xbd, 0x5a, 0xaf, 0xd6, 0xda, 0x5b, 0x97, 0xf7, 0xc6,
+ 0xf7, 0x82, 0xf0, 0x93,
+ 0xa3, 0x86, 0x04, 0x9d, 0x26, 0xfc, 0x57, 0xfb, 0x3f, 0xc1, 0xe8, 0x04,
+ 0xe8, 0xef, 0xa7, 0xa5,
+ 0xaf, 0x09, 0xb2, 0xb7, 0x32, 0xd2, 0xda, 0xf4, 0xd5, 0x5e, 0xed, 0xb2,
+ 0xed, 0xcb, 0x1d, 0x44,
+ 0x88, 0x71, 0xfa, 0x8a, 0x5b, 0xf2, 0x4d, 0xaa, 0xdd, 0x52, 0x66, 0xfa,
+ 0x66, 0x3e, 0x72, 0x0f,
+ 0x89, 0x40, 0xbe, 0xd3, 0x58, 0x15, 0x23, 0x3a, 0x94, 0xde, 0x16, 0xbe,
+ 0x16, 0x39, 0x37, 0x68,
+ 0x0f, 0xdc, 0x7a, 0xc1, 0x11, 0xc4, 0x3f, 0x7c, 0x31, 0xc8, 0x95, 0x7a,
+ 0x95, 0x2d, 0x75, 0x48,
+ 0x1f, 0x4a, 0xb0, 0x18, 0x21, 0xac, 0x10, 0x68, 0x2b, 0xdf, 0x99, 0xb0,
+ 0x99, 0x5d, 0xaf, 0xf7,
+ 0x42, 0x7f, 0x26, 0x50, 0xc6, 0x6e, 0x60, 0xb3, 0xfa, 0x87, 0xd0, 0x26,
+ 0xd0, 0x0d, 0x64, 0x77,
+ 0xf6, 0xf8, 0xf7, 0x58, 0xd9, 0x0a, 0xd1, 0x2a, 0xe3, 0x73, 0xa7, 0xf7,
+ 0xa7, 0x87, 0x01, 0x9b,
+ 0xdf, 0x6d, 0x81, 0xfd, 0xa2, 0x09, 0x17, 0x98, 0x93, 0x3b, 0xc9, 0x81,
+ 0xc9, 0x58, 0x5e, 0xff,
+ 0x3a, 0x50, 0x70, 0x97, 0x4e, 0x81, 0x5b, 0xd5, 0xb1, 0x08, 0xf2, 0x70,
+ 0xf2, 0xa6, 0x4a, 0x72,
+ 0xc1, 0x16, 0x75, 0xbc, 0x80, 0x42, 0x69, 0x60, 0xf1, 0x68, 0x20, 0x75,
+ 0x20, 0x02, 0xb4, 0x6f,
+ 0x28, 0xa4, 0x32, 0xfc, 0x78, 0xe4, 0xa8, 0x22, 0x39, 0xc4, 0x1e, 0x32,
+ 0x1e, 0xd8, 0x1a, 0x03,
+ 0xf1, 0x6f, 0xe8, 0x14, 0xd0, 0xfa, 0x18, 0x5c, 0xdf, 0x51, 0x34, 0xe8,
+ 0x34, 0x92, 0x19, 0x6d,
+ 0xcb, 0x3f, 0x98, 0x83, 0x9e, 0x7b, 0x43, 0x89, 0x6e, 0x59, 0xc6, 0x98,
+ 0xc6, 0x34, 0x53, 0x1f,
+ 0x92, 0xce, 0xdd, 0x6c, 0x75, 0xa3, 0x48, 0x57, 0x58, 0x74, 0x8c, 0xdd,
+ 0x8c, 0x78, 0x4f, 0xc0,
+ 0x87, 0xad, 0x80, 0x4b, 0x4a, 0x36, 0x72, 0xd6, 0xec, 0x9a, 0xf3, 0x80,
+ 0xf3, 0x13, 0x07, 0x47,
+ 0xe7, 0x5f, 0x79, 0xd8, 0xea, 0x85, 0x90, 0xae, 0xb0, 0xe8, 0xdb, 0x79,
+ 0xdb, 0xf0, 0x9e, 0x43,
+ 0x3e, 0x94, 0xa3, 0x30, 0x42, 0x9b, 0x20, 0xd0, 0x56, 0x7d, 0xf1, 0xa3,
+ 0xf1, 0xba, 0x9d, 0x2d,
+ 0xfa, 0x77, 0x41, 0x72, 0xcd, 0x24, 0x5c, 0x25, 0x09, 0xec, 0xa2, 0x41,
+ 0xa2, 0xa3, 0xbb, 0x7a,
+ 0x0d, 0xbe, 0xf2, 0x73, 0x17, 0xc9, 0xe3, 0x9f, 0xa3, 0x13, 0x75, 0xf2,
+ 0x75, 0x23, 0xff, 0x86,
+ 0x51, 0xba, 0x20, 0x62, 0xf3, 0xec, 0xfd, 0xd4, 0x3b, 0xc7, 0x4c, 0x20,
+ 0x4c, 0x74, 0x71, 0x61,
+ 0xb6, 0xe5, 0x59, 0xba, 0x19, 0x69, 0x6d, 0x7a, 0x8b, 0x2f, 0x97, 0x59,
+ 0x97, 0x84, 0xef, 0x22,
+ 0x7b, 0x7c, 0x9a, 0x2c, 0x8d, 0x05, 0x89, 0x15, 0x90, 0xd8, 0xb2, 0x9a,
+ 0xb2, 0xa2, 0xe1, 0xac,
+ 0x74, 0xa0, 0xe0, 0xed, 0x9c, 0xc1, 0xb6, 0x69, 0xa1, 0x10, 0x27, 0xe0,
+ 0x27, 0x8f, 0x94, 0xe4,
+ 0x3f, 0xa5, 0xe7, 0x69, 0x41, 0x7c, 0x4e, 0x40, 0x1f, 0xf1, 0x81, 0xe7,
+ 0x81, 0xbd, 0xd8, 0x4a,
+ 0x2f, 0x33, 0x2d, 0xb0, 0x71, 0x14, 0x61, 0x54, 0x05, 0xe6, 0x8d, 0x2d,
+ 0x8d, 0xcd, 0x02, 0xf5,
+ 0x7d, 0xda, 0xc1, 0x39, 0x87, 0x12, 0x2e, 0xf3, 0xe5, 0x76, 0x51, 0xc1,
+ 0x51, 0xb0, 0xbc, 0x3d,
+ 0xbb, 0x5b, 0xab, 0xc9, 0x0e, 0xa0, 0x8e, 0xe5, 0x28, 0x3c, 0xe2, 0xab,
+ 0xe2, 0xa7, 0x10, 0xa4,
+ 0x49, 0x67, 0x8f, 0x36, 0xdb, 0xb0, 0x24, 0xca, 0x2c, 0x3a, 0x46, 0x8f,
+ 0x46, 0x3c, 0xc6, 0x60,
+ 0x2b, 0xf7, 0xfe, 0x17, 0x7d, 0x0e, 0x1a, 0x51, 0xe2, 0x93, 0x8e, 0xfe,
+ 0x8e, 0xd1, 0xd5, 0xaa,
+ 0x99, 0xd6, 0x74, 0x0a, 0x68, 0x7d, 0x0c, 0x2e, 0x8e, 0xc9, 0x1a, 0x74,
+ 0x1a, 0x49, 0xed, 0xd7,
+ 0x02, 0x62, 0x88, 0xb2, 0x06, 0x0d, 0xdc, 0xe3, 0x92, 0xdb, 0xe0, 0x88,
+ 0xe0, 0x0e, 0x8a, 0xce,
+ 0x37, 0xee, 0x82, 0xe4, 0x59, 0x48, 0xb8, 0x4a, 0x12, 0x1b, 0x87, 0x82,
+ 0x87, 0x85, 0xb5, 0xf4,
+ 0xb3, 0x10, 0xce, 0x44, 0x16, 0x94, 0x78, 0xef, 0x25, 0xd6, 0xe4, 0xce,
+ 0xe4, 0x9f, 0x7d, 0x1a,
+ 0x73, 0x37, 0xff, 0xa1, 0x95, 0x31, 0x7f, 0x1f, 0x9d, 0x32, 0xb4, 0xff,
+ 0xb4, 0x9a, 0x8c, 0x12,
+ 0x64, 0x36, 0x2a, 0x34, 0xac, 0xa9, 0x99, 0x7d, 0xbb, 0x07, 0x2b, 0x2a,
+ 0x2b, 0xff, 0x4e, 0x5b,
+ 0xdc, 0x3e, 0x4d, 0x16, 0xa7, 0xe3, 0xa5, 0xeb, 0x48, 0x6c, 0x59, 0x4d,
+ 0x59, 0x51, 0x91, 0x56,
+ 0xd8, 0xfa, 0x9e, 0xb1, 0xab, 0xf9, 0xde, 0xee, 0xaf, 0x19, 0x5a, 0x9e,
+ 0x5a, 0x4d, 0x46, 0x09,
+ 0xc9, 0x5d, 0x10, 0x31, 0x98, 0x76, 0x9f, 0x6a, 0xfc, 0x82, 0x26, 0x10,
+ 0x26, 0x3a, 0xd9, 0xd1,
+ 0xab, 0xcd, 0x61, 0x10, 0x3e, 0xc8, 0xa1, 0xf1, 0x32, 0x2b, 0xee, 0x61,
+ 0xee, 0xd7, 0xca, 0x1b,
+ 0x33, 0x2a, 0x51, 0x43, 0x55, 0x52, 0xc3, 0x4f, 0xf5, 0x6e, 0x84, 0x51,
+ 0x84, 0x99, 0x62, 0xab,
+ 0x6b, 0xea, 0x50, 0xf5, 0xbd, 0x6d, 0xa6, 0x01, 0x8a, 0xcf, 0xbe, 0x50,
+ 0xbe, 0xd2, 0x3b, 0x13,
+ 0xcc, 0xa8, 0x87, 0xcf, 0x97, 0x8b, 0x8a, 0xff, 0x52, 0x7b, 0x55, 0x87,
+ 0x55, 0x21, 0x4b, 0xe9,
+ 0x90, 0xac, 0x55, 0xde, 0x73, 0xae, 0x94, 0xb4, 0xca, 0xaf, 0x6c, 0x55,
+ 0x6c, 0x76, 0xc5, 0x0e,
+ 0xd0, 0xb1, 0xfb, 0x3c, 0xb3, 0xcd, 0x28, 0xe4, 0xa2, 0xf3, 0x5c, 0xfb,
+ 0x5c, 0x75, 0x2b, 0xb7,
+ 0xac, 0x5a, 0x7e, 0x5c, 0x37, 0x38, 0x68, 0x87, 0x0e, 0x09, 0x7d, 0x7e,
+ 0x7d, 0xc2, 0xd2, 0xed,
+ 0xbf, 0x9f, 0x78, 0x6e, 0x02, 0xba, 0xf5, 0xe0, 0xcf, 0x49, 0xe1, 0x78,
+ 0xe1, 0xbb, 0xc7, 0xfb,
+ 0xda, 0x98, 0x16, 0x03, 0xad, 0xf4, 0x02, 0x0d, 0x3d, 0xc2, 0xba, 0x16,
+ 0xba, 0x43, 0xcc, 0xc7,
+ 0xa7, 0x42, 0xd7, 0x3a, 0x2a, 0xe6, 0x2c, 0xfe, 0xd8, 0xb4, 0xeb, 0xd7,
+ 0xeb, 0xf3, 0x70, 0xfa,
+ 0x5e, 0x66, 0x5a, 0xa3, 0xe2, 0x28, 0xc2, 0xa8, 0x0a, 0x0f, 0xd9, 0x5a,
+ 0xd9, 0x59, 0x04, 0x29,
+ 0x98, 0xe7, 0x30, 0x53, 0x6b, 0x9a, 0x62, 0xbe, 0xc7, 0x45, 0x6a, 0x30,
+ 0x6a, 0x4e, 0xa8, 0xb0,
+ 0x7a, 0x4d, 0xde, 0x75, 0x8e, 0xe2, 0xe7, 0x85, 0xd9, 0x54, 0xc2, 0xde,
+ 0xc2, 0xa5, 0xa4, 0xcb,
+ 0x13, 0xc5, 0x06, 0x32, 0x35, 0x82, 0x9d, 0x67, 0xc1, 0x40, 0x9c, 0x06,
+ 0x9c, 0x79, 0x15, 0x16,
+ 0x6a, 0xdb, 0x14, 0xac, 0xbe, 0x8a, 0xc8, 0x91, 0xc3, 0x43, 0xce, 0x14,
+ 0xce, 0xd5, 0x7e, 0x74,
+ 0x40, 0x1d, 0xae, 0xe2, 0xc0, 0x63, 0xbc, 0x50, 0x68, 0x5c, 0x30, 0xae,
+ 0x30, 0x03, 0xee, 0xb9,
+ 0xa8, 0x9e, 0xad, 0xfb, 0x3b, 0x22, 0x13, 0x82, 0xe9, 0x7c, 0x7e, 0xad,
+ 0x7e, 0xde, 0x05, 0xb2,
+ 0x5b, 0x93, 0xcd, 0x5d, 0xed, 0xd5, 0xd7, 0x3d, 0xa4, 0xf6, 0xaa, 0xcd,
+ 0xaa, 0x42, 0x96, 0x11,
+ 0xeb, 0xd0, 0xcf, 0xf2, 0xfe, 0xab, 0x1d, 0xa1, 0x5a, 0x77, 0xde, 0xcf,
+ 0xde, 0xd4, 0x24, 0xa2,
+ 0x66, 0x54, 0xa2, 0x86, 0xaa, 0xa4, 0x45, 0x9e, 0x29, 0xdc, 0xcb, 0xa2,
+ 0xcb, 0xf1, 0xc4, 0x95,
+ 0x56, 0x2d, 0x3f, 0x2e, 0xfa, 0x1c, 0x34, 0xa2, 0x07, 0xe5, 0xdf, 0x3f,
+ 0xdf, 0x61, 0x69, 0x97,
+ 0x81, 0x0b, 0xdb, 0x5e, 0x40, 0x21, 0xd5, 0x30, 0x99, 0x34, 0x10, 0xdb,
+ 0x10, 0x01, 0x5a, 0xd6,
+ 0x77, 0xf3, 0x2c, 0x06, 0x99, 0x2b, 0x04, 0x1a, 0x7a, 0x47, 0xb7, 0x2c,
+ 0xb7, 0x86, 0x5b, 0x4d,
+ 0x57, 0x1c, 0x7b, 0x77, 0xf9, 0xfb, 0x5a, 0x32, 0x4e, 0x69, 0xaf, 0x7b,
+ 0xaf, 0x66, 0x2c, 0xf0,
+ 0x4e, 0xf0, 0x90, 0x7a, 0xd2, 0x40, 0xed, 0xbc, 0x10, 0x18, 0xd5, 0x90,
+ 0xd5, 0x29, 0xde, 0x96,
+ 0x8d, 0x84, 0x6d, 0x74, 0x54, 0x0f, 0x58, 0x3f, 0x73, 0xab, 0x15, 0x6d,
+ 0x15, 0x25, 0xe0, 0x37,
+ 0xb0, 0x43, 0x02, 0xaf, 0x13, 0x7e, 0xca, 0x9c, 0xfe, 0x81, 0x74, 0x02,
+ 0x74, 0x96, 0xb2, 0xb3,
+ 0xf3, 0x0d, 0x60, 0xa6, 0xd6, 0xf7, 0xc4, 0xbf, 0x4d, 0x8a, 0xd4, 0x60,
+ 0xd4, 0x9c, 0x93, 0xa3,
+ 0x94, 0x68, 0x86, 0x79, 0x7f, 0xb4, 0xef, 0xb1, 0x2d, 0xda, 0x6f, 0x86,
+ 0x6f, 0x6a, 0x12, 0x51,
+ 0x20, 0xef, 0x57, 0x71, 0x60, 0xd0, 0x5e, 0x28, 0x34, 0x2e, 0x18, 0x57,
+ 0x18, 0xe0, 0x77, 0xbd,
+ 0x24, 0x2b, 0x84, 0xd6, 0x6c, 0xca, 0x25, 0x2d, 0xd3, 0x5b, 0x1b, 0x84,
+ 0x1b, 0xfc, 0xa0, 0xe2,
+ 0xd7, 0x26, 0xe4, 0x70, 0xba, 0x3d, 0xe1, 0x92, 0x9e, 0xd1, 0xcf, 0xe4,
+ 0xcf, 0x60, 0x33, 0x41,
+ 0x14, 0x52, 0x19, 0x7e, 0x3c, 0x72, 0x54, 0x11, 0xfd, 0x62, 0x0f, 0x19,
+ 0x0f, 0x6c, 0x0d, 0xe0,
+ 0x9e, 0x41, 0x6b, 0x46, 0x61, 0x8d, 0xc5, 0x58, 0xb2, 0xeb, 0x89, 0x6b,
+ 0x89, 0x5c, 0xf5, 0x21,
+ 0x05, 0xf5, 0x97, 0xfe, 0x0f, 0xfd, 0x15, 0x95, 0xae, 0xf9, 0x73, 0x97,
+ 0x73, 0x1b, 0x92, 0x38,
+ 0xc6, 0x81, 0x6a, 0xf0, 0x89, 0xb2, 0xa0, 0x16, 0xcd, 0x4a, 0xb3, 0x6a,
+ 0xb3, 0x17, 0xac, 0x99,
+ 0xed, 0x76, 0x94, 0xe7, 0xf4, 0xbc, 0xba, 0x47, 0x2f, 0xd9, 0x3d, 0x94,
+ 0x3d, 0xc6, 0x79, 0x33,
+ 0xc8, 0x6c, 0x54, 0x68, 0x9b, 0x91, 0xf1, 0xfa, 0xb5, 0x0e, 0x56, 0x54,
+ 0x56, 0x3d, 0x9c, 0xb6,
+ 0x9b, 0xb4, 0xfc, 0xb8, 0x6e, 0x70, 0xd0, 0xcd, 0x1c, 0x12, 0xfa, 0xfc,
+ 0xfa, 0x47, 0x67, 0x19,
+ 0xbd, 0xfd, 0xf0, 0xdc, 0x04, 0xb7, 0x29, 0x03, 0x5d, 0x92, 0x01, 0xf0,
+ 0x01, 0xb5, 0x4d, 0x35,
+ 0x84, 0xfe, 0x4c, 0xa0, 0x4f, 0xdc, 0xc0, 0xa5, 0x37, 0xcd, 0x63, 0x4c,
+ 0x63, 0x1a, 0xc8, 0xee,
+ 0xc3, 0x74, 0xfd, 0x0e, 0x86, 0x4f, 0xb5, 0x83, 0x63, 0xb3, 0xc0, 0xfd,
+ 0xc0, 0x0c, 0x3e, 0xa1,
+ 0xca, 0x0e, 0xdc, 0xda, 0x9d, 0x9c, 0x2d, 0x19, 0x27, 0xd5, 0xb6, 0xdc,
+ 0xb6, 0x33, 0x16, 0x78,
+ 0x8a, 0x13, 0x72, 0x38, 0x5d, 0xff, 0x91, 0x49, 0x4f, 0x89, 0x86, 0x72,
+ 0x86, 0x30, 0xf8, 0xc1,
+ 0x34, 0xbd, 0x4e, 0x0f, 0x5c, 0xa2, 0x0a, 0x39, 0xc9, 0x4c, 0x17, 0x4e,
+ 0x17, 0x8c, 0x7a, 0x5d,
+ 0x26, 0x49, 0x0c, 0x64, 0x6a, 0xc7, 0xf9, 0xce, 0x41, 0x80, 0xfb, 0x0c,
+ 0xfb, 0xf2, 0x2a, 0x2c,
+ 0x10, 0x96, 0xca, 0xd9, 0x30, 0x68, 0x2f, 0x14, 0x1a, 0x17, 0x0c, 0xca,
+ 0x0c, 0x70, 0xda, 0xbf,
+ 0x25, 0x1a, 0xc0, 0x8f, 0x6f, 0x2d, 0x4b, 0xbd, 0x9a, 0xd7, 0x6b, 0xc0,
+ 0x6b, 0xfb, 0xe5, 0x85,
+ 0xe3, 0x9b, 0xaa, 0x7f, 0xe6, 0x9f, 0xeb, 0xab, 0x57, 0x9d, 0xd8, 0xaa,
+ 0xd8, 0xec, 0x49, 0x1c,
+ 0x63, 0xa1, 0x35, 0x78, 0xa5, 0x59, 0x50, 0x0b, 0x87, 0x25, 0xb8, 0x35,
+ 0xb8, 0xea, 0x56, 0xad,
+ 0x0a, 0x29, 0xed, 0x3f, 0x1e, 0x39, 0x2a, 0xe9, 0x9f, 0x31, 0xe6, 0xed,
+ 0xe6, 0x36, 0xe7, 0x70,
+ 0x4f, 0xc1, 0xd4, 0x23, 0xd1, 0xa7, 0x83, 0x2c, 0x59, 0x94, 0xa5, 0xd4,
+ 0xa5, 0x2e, 0x9b, 0xf1,
+ 0x8b, 0x22, 0x36, 0x61, 0x5e, 0x18, 0xff, 0xd9, 0x06, 0x05, 0xf6, 0x36,
+ 0xf6, 0x37, 0xbd, 0xa6,
+ 0xc7, 0xb0, 0x2e, 0xa9, 0x8a, 0x55, 0xce, 0x86, 0x84, 0xc6, 0xc3, 0x2e,
+ 0xc3, 0x10, 0xe9, 0xfe,
+ 0x67, 0x65, 0xe6, 0xdf, 0xa9, 0x43, 0x2b, 0x0e, 0x60, 0x50, 0xbb, 0xe6,
+ 0xbb, 0xf6, 0x81, 0xf2,
+ 0x2d, 0x51, 0xa5, 0x02, 0x77, 0x19, 0xbd, 0xb7, 0x97, 0x3d, 0x6d, 0xa5,
+ 0x6d, 0xc3, 0x88, 0x3b,
+ 0xfe, 0xb3, 0x92, 0xd5, 0xc1, 0x3e, 0x27, 0x20, 0xee, 0x99, 0xa1, 0x92,
+ 0xa1, 0xbf, 0x6c, 0x25,
+ 0x45, 0xe8, 0x39, 0x1c, 0xcf, 0x9e, 0xa9, 0xc5, 0xc6, 0xa5, 0x43, 0x39,
+ 0x43, 0x18, 0x7c, 0x81,
+ 0xa0, 0xd5, 0xc8, 0x76, 0x23, 0x16, 0xe5, 0x88, 0xe4, 0x96, 0x78, 0xc8,
+ 0x78, 0xe6, 0x68, 0x0c,
+ 0x80, 0x3a, 0x9f, 0x07, 0x43, 0xc6, 0xbb, 0xa0, 0xd0, 0xb8, 0x60, 0x9f,
+ 0x60, 0x06, 0x1f, 0xb1,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x4a, 0x34, 0x43, 0xdd, 0xde, 0x5a, 0x96, 0xb9, 0xf7, 0x6d, 0xd6, 0x43,
+ 0xd6, 0x35, 0x09, 0xc9,
+ 0xee, 0x25, 0x58, 0x0c, 0xf1, 0x56, 0x08, 0x34, 0xf4, 0x8e, 0xad, 0x58,
+ 0xad, 0xcf, 0xb6, 0x9a,
+ 0x4c, 0x92, 0x18, 0xc8, 0xd4, 0x4d, 0x31, 0x5f, 0x82, 0xc3, 0x35, 0x18,
+ 0x35, 0x27, 0x54, 0x58,
+ },
+ { /* 13 */
+ 0xab, 0xda, 0x7f, 0x93, 0x75, 0x63, 0x3b, 0x22, 0xb7, 0x40, 0xa6, 0x84,
+ 0xc2, 0x22, 0x09, 0xda,
+ 0xbb, 0xd9, 0xf4, 0xa6, 0xc1, 0x1b, 0xf5, 0xe1, 0x54, 0xa2, 0xc5, 0x24,
+ 0x95, 0xe1, 0xdd, 0xd9,
+ 0x83, 0x3c, 0x0e, 0x02, 0x84, 0xaf, 0x03, 0xe7, 0x22, 0x36, 0xb0, 0x57,
+ 0xa6, 0xe7, 0x08, 0x3c,
+ 0x0d, 0x8c, 0x03, 0x40, 0xed, 0xc4, 0x60, 0xd0, 0xca, 0x0f, 0xa2, 0x72,
+ 0x27, 0xd0, 0xc3, 0x8c,
+ 0x3a, 0xdd, 0xd3, 0xea, 0xb2, 0xbb, 0x9f, 0x26, 0x52, 0x19, 0x41, 0x67,
+ 0xe0, 0x26, 0x2e, 0xdd,
+ 0x4a, 0xd4, 0xe4, 0x61, 0x38, 0x10, 0xb0, 0x2a, 0xbe, 0xf2, 0xab, 0x81,
+ 0x86, 0x2a, 0x47, 0xd4,
+ 0xe8, 0xf2, 0xca, 0x2e, 0x8d, 0xa9, 0x39, 0x98, 0x8b, 0x64, 0xc7, 0x5f,
+ 0x06, 0x98, 0xb8, 0xf2,
+ 0xeb, 0xd6, 0x16, 0x47, 0xe0, 0x40, 0x85, 0xa8, 0xbd, 0x4e, 0xe9, 0x41,
+ 0x5d, 0xa8, 0xdf, 0xd6,
+ 0x8f, 0xac, 0xf8, 0x65, 0xf3, 0x8d, 0xb6, 0x27, 0xfa, 0x9e, 0x08, 0x2f,
+ 0x09, 0x27, 0x57, 0xac,
+ 0xbe, 0xb5, 0x53, 0x1d, 0x76, 0xe3, 0xf2, 0xb1, 0x0e, 0xdc, 0xb7, 0x06,
+ 0x78, 0xb1, 0x74, 0xb5,
+ 0x0f, 0xb4, 0x2a, 0x0e, 0x1a, 0xcb, 0x09, 0xf0, 0xee, 0x82, 0x96, 0x66,
+ 0xf4, 0xf0, 0x38, 0xb4,
+ 0x6d, 0x86, 0xbf, 0xfe, 0xd3, 0x17, 0x81, 0x1f, 0xc5, 0x06, 0x2b, 0x34,
+ 0x16, 0x1f, 0x7e, 0x86,
+ 0x0a, 0xd8, 0x8d, 0xb5, 0xad, 0x33, 0x0e, 0xa0, 0xb4, 0xfc, 0xe4, 0x44,
+ 0x19, 0xa0, 0x91, 0xd8,
+ 0x29, 0xfa, 0x84, 0xb6, 0x6b, 0x2a, 0xed, 0xd5, 0x87, 0xd1, 0x0c, 0xd9,
+ 0xec, 0xd5, 0x9d, 0xfa,
+ 0x17, 0x57, 0x05, 0xc0, 0xf4, 0x8f, 0xa0, 0xb3, 0x9d, 0x11, 0x25, 0x96,
+ 0x69, 0xb3, 0x86, 0x57,
+ 0xb0, 0x1d, 0x8c, 0x34, 0xf6, 0xce, 0x2e, 0x51, 0xf2, 0xf9, 0x3b, 0x6a,
+ 0x04, 0x51, 0xd0, 0x1d,
+ 0xc5, 0x78, 0x1c, 0x04, 0xcb, 0x9d, 0x06, 0x0d, 0x44, 0x6c, 0xa3, 0xae,
+ 0x8f, 0x0d, 0x10, 0x78,
+ 0x4c, 0x9c, 0x9f, 0xb3, 0xe2, 0x01, 0x0b, 0x4a, 0xd2, 0xa6, 0xf7, 0xbd,
+ 0x30, 0x4a, 0x89, 0x9c,
+ 0xc3, 0x30, 0x67, 0xd6, 0x11, 0x8c, 0xbd, 0x6d, 0x28, 0x38, 0xff, 0x92,
+ 0x39, 0x6d, 0xde, 0x30,
+ 0xb5, 0x71, 0x2b, 0x8f, 0x41, 0x36, 0x29, 0x01, 0xa8, 0x87, 0x49, 0x48,
+ 0xe9, 0x01, 0x79, 0x71,
+ 0x74, 0x79, 0x65, 0x17, 0xa7, 0xb5, 0xfd, 0x4c, 0xa4, 0x32, 0x82, 0xce,
+ 0x03, 0x4c, 0x5c, 0x79,
+ 0x94, 0x6b, 0x0b, 0xc2, 0x70, 0x20, 0xa3, 0x54, 0xbf, 0x27, 0x95, 0xc1,
+ 0xcf, 0x54, 0x8e, 0x6b,
+ 0x1d, 0x8f, 0x88, 0x75, 0x59, 0xbc, 0xae, 0x13, 0x29, 0xed, 0xc1, 0xd2,
+ 0x70, 0x13, 0x17, 0x8f,
+ 0x25, 0x6a, 0x72, 0xd1, 0x1c, 0x08, 0x58, 0x15, 0x5f, 0x79, 0xb4, 0xa1,
+ 0x43, 0x15, 0xc2, 0x6a,
+ 0x48, 0xec, 0xcd, 0x2f, 0xcf, 0x1f, 0xd9, 0x0a, 0x9a, 0x7f, 0x9f, 0x95,
+ 0x55, 0x0a, 0xbc, 0xec,
+ 0xda, 0xcf, 0xbd, 0x3f, 0x65, 0x2e, 0xc1, 0x3e, 0x49, 0x0c, 0x56, 0x68,
+ 0x2c, 0x3e, 0xfc, 0xcf,
+ 0xdd, 0x9b, 0x33, 0xca, 0x25, 0xd9, 0xaf, 0x4e, 0x37, 0xff, 0x10, 0x5e,
+ 0x12, 0x4e, 0xae, 0x9b,
+ 0xe9, 0xee, 0x3f, 0x09, 0x17, 0x4f, 0xec, 0x88, 0x99, 0xc3, 0xdd, 0x55,
+ 0x8e, 0x88, 0x24, 0xee,
+ 0xea, 0xca, 0xe3, 0x60, 0x7a, 0xa6, 0x50, 0xb8, 0xaf, 0xe9, 0xf3, 0x4b,
+ 0xd5, 0xb8, 0x43, 0xca,
+ 0x73, 0x2d, 0xeb, 0xe2, 0xe7, 0x42, 0x93, 0x3c, 0xda, 0xc1, 0xc4, 0xf8,
+ 0x3d, 0x3c, 0x0e, 0x2d,
+ 0x2e, 0xae, 0x0a, 0x43, 0x2b, 0xdd, 0x83, 0xa5, 0xf9, 0x22, 0x4a, 0xef,
+ 0xd2, 0xa5, 0xcf, 0xae,
+ 0xf5, 0x7d, 0x42, 0x5b, 0xd4, 0x15, 0x97, 0x8b, 0xa2, 0x89, 0x06, 0x8d,
+ 0x76, 0x8b, 0xaf, 0x7d,
+ 0x26, 0x4e, 0xae, 0xb8, 0x71, 0xe1, 0xe4, 0x25, 0x69, 0x53, 0x9a, 0xbf,
+ 0x18, 0x25, 0xa5, 0x4e,
+ 0xd0, 0x17, 0x30, 0x8a, 0xc8, 0x1d, 0xcf, 0x9e, 0xfd, 0xf0, 0xb2, 0x2c,
+ 0x35, 0x9e, 0x6d, 0x17,
+ 0xc4, 0x64, 0xe9, 0x23, 0x51, 0x7b, 0xd3, 0x1d, 0x56, 0xcb, 0xb9, 0xa4,
+ 0x07, 0x1d, 0x8c, 0x64,
+ 0xf3, 0x35, 0x39, 0x89, 0x0e, 0x04, 0x2c, 0xeb, 0xce, 0xdd, 0x5a, 0xb1,
+ 0xc0, 0xeb, 0x61, 0x35,
+ 0x7b, 0xcd, 0x4f, 0x19, 0xbd, 0x7e, 0xf4, 0xbc, 0x4a, 0xb0, 0x14, 0xa8,
+ 0xf7, 0xbc, 0x64, 0xcd,
+ 0x4d, 0x80, 0x6a, 0x94, 0x78, 0xe7, 0xde, 0x5a, 0xc0, 0x01, 0xed, 0xb7,
+ 0xb8, 0x5a, 0x15, 0x80,
+ 0x45, 0x60, 0xce, 0x6f, 0x22, 0xdb, 0xb9, 0xda, 0x50, 0x70, 0x3d, 0xe7,
+ 0x72, 0xda, 0x7f, 0x60,
+ 0xa9, 0xe2, 0x56, 0xdd, 0x82, 0x6c, 0x52, 0x02, 0x93, 0xcd, 0x92, 0x90,
+ 0x11, 0x02, 0xf2, 0xe2,
+ 0x5e, 0xa7, 0x3d, 0xc8, 0xa1, 0x76, 0xac, 0xa9, 0x15, 0xc9, 0xa0, 0x09,
+ 0xb4, 0xa9, 0xa6, 0xa7,
+ 0xd8, 0xf7, 0x94, 0x71, 0x92, 0x21, 0xa8, 0x1e, 0x6d, 0x81, 0x62, 0x7c,
+ 0xff, 0x1e, 0x07, 0xf7,
+ 0x7e, 0xa1, 0xe8, 0xa2, 0x0a, 0x86, 0xf3, 0xec, 0x10, 0xce, 0x66, 0x8a,
+ 0x1a, 0xec, 0xcd, 0xa1,
+ 0xf2, 0x29, 0xcc, 0xae, 0x94, 0xe2, 0xf9, 0xfb, 0xdc, 0x7a, 0x40, 0xbb,
+ 0x48, 0xfb, 0xfd, 0x29,
+ 0x90, 0x1b, 0x59, 0x5e, 0x5d, 0x3e, 0x71, 0x14, 0xf7, 0xfe, 0xfd, 0xe9,
+ 0xaa, 0x14, 0xbb, 0x1b,
+ 0x77, 0x5d, 0xb9, 0x7e, 0xca, 0x5c, 0x41, 0x7c, 0x92, 0x18, 0xac, 0xd0,
+ 0x58, 0x7c, 0x3b, 0x5d,
+ 0x53, 0x2b, 0x3e, 0x88, 0x4c, 0xb2, 0xcc, 0x79, 0xdf, 0xc6, 0x02, 0x7b,
+ 0x93, 0x79, 0x65, 0x2b,
+ 0xe5, 0x7e, 0xc9, 0x6e, 0x60, 0x6d, 0x59, 0x48, 0x41, 0x6b, 0x65, 0x2d,
+ 0x21, 0x48, 0x7b, 0x7e,
+ 0x49, 0xf0, 0x38, 0x08, 0x55, 0xf9, 0x0c, 0x1a, 0x88, 0xd8, 0x85, 0x9f,
+ 0xdd, 0x1a, 0x20, 0xf0,
+ 0x98, 0xfb, 0xfd, 0xa5, 0x07, 0x02, 0x16, 0x94, 0x67, 0x8f, 0x2d, 0xb9,
+ 0x60, 0x94, 0xd1, 0xfb,
+ 0x13, 0x27, 0x57, 0x5c, 0xd9, 0x91, 0x72, 0xf3, 0xd5, 0xc8, 0x4d, 0xbe,
+ 0x0c, 0xf3, 0xb3, 0x27,
+ 0x43, 0x28, 0xb5, 0xbd, 0xf8, 0xca, 0x02, 0xba, 0x3c, 0x24, 0x61, 0xdb,
+ 0xc4, 0xba, 0xb1, 0x28,
+ 0xdc, 0x87, 0xc6, 0xed, 0xbf, 0x3f, 0x7a, 0x5e, 0x25, 0x58, 0x0a, 0x54,
+ 0x9a, 0x5e, 0x32, 0x87,
+ 0xc7, 0x40, 0x35, 0x4a, 0x3c, 0x92, 0x6f, 0x2d, 0x60, 0xe1, 0x97, 0xba,
+ 0x5c, 0x2d, 0xeb, 0x40,
+ 0xa0, 0x1e, 0x07, 0x01, 0x42, 0xb6, 0xe0, 0x92, 0x11, 0x1b, 0x58, 0xca,
+ 0x53, 0x92, 0x04, 0x1e,
+ 0xcc, 0x84, 0x4d, 0xd8, 0x0b, 0x47, 0xb4, 0x9d, 0xc6, 0xba, 0x69, 0xf4,
+ 0xcd, 0x9d, 0xe6, 0x84,
+ 0x14, 0x73, 0xd9, 0xa9, 0x99, 0x66, 0x1c, 0x83, 0xab, 0x3b, 0x0b, 0x88,
+ 0x32, 0x83, 0xe1, 0x73,
+ 0x52, 0x37, 0xcb, 0xaf, 0xd6, 0x54, 0x19, 0x69, 0xcd, 0x61, 0x18, 0x71,
+ 0x1b, 0x69, 0xf9, 0x37,
+ 0x2f, 0xb2, 0xff, 0x64, 0xb1, 0x3b, 0x56, 0xb5, 0xeb, 0x85, 0x50, 0xe5,
+ 0x5a, 0xb5, 0x53, 0xb2,
+ 0x47, 0x58, 0xe7, 0x21, 0xd5, 0xd4, 0xd0, 0xfa, 0x74, 0xfd, 0x09, 0xf3,
+ 0xa1, 0xfa, 0x84, 0x58,
+ 0xa6, 0x56, 0x7c, 0xd3, 0x98, 0xa7, 0x5b, 0xf2, 0x7d, 0x4f, 0x04, 0xf6,
+ 0xe5, 0xf2, 0xca, 0x56,
+ 0x5f, 0xbb, 0xc8, 0xef, 0x3b, 0x90, 0x79, 0xb9, 0x07, 0x6e, 0xba, 0x03,
+ 0x3c, 0xb9, 0x3a, 0xbb,
+ 0xe3, 0x36, 0xb2, 0xbc, 0xba, 0x7c, 0xe2, 0x28, 0x2d, 0x3f, 0x39, 0x11,
+ 0x97, 0x28, 0xb5, 0x36,
+ 0xb8, 0xfd, 0x28, 0xcf, 0xac, 0xf2, 0x49, 0xd1, 0x62, 0x88, 0xeb, 0x3a,
+ 0xce, 0xd1, 0xba, 0xfd,
+ 0xa7, 0x4a, 0x89, 0xf4, 0x02, 0x41, 0x8e, 0xe2, 0x6f, 0xe8, 0x1e, 0xfc,
+ 0x6d, 0xe2, 0x56, 0x4a,
+ 0xc0, 0x14, 0xbb, 0xbf, 0x7c, 0x65, 0x01, 0x5d, 0x1e, 0x12, 0xd1, 0x8c,
+ 0x62, 0x5d, 0xb9, 0x14,
+ 0x23, 0x22, 0x09, 0x03, 0xc6, 0x19, 0xe3, 0x75, 0x33, 0x2d, 0xe8, 0x9d,
+ 0xf5, 0x75, 0x0c, 0x22,
+ 0x2a, 0xde, 0x58, 0xdf, 0x06, 0xc3, 0x51, 0xe5, 0xb1, 0xfb, 0x22, 0xc7,
+ 0xb7, 0xe5, 0xfa, 0xde,
+ 0x62, 0x32, 0x95, 0xf0, 0xc9, 0xdc, 0x88, 0xef, 0x2b, 0x84, 0xbd, 0x52,
+ 0xe2, 0xef, 0x46, 0x32,
+ 0x7d, 0x85, 0x34, 0xcb, 0x67, 0x6f, 0x4f, 0xdc, 0x26, 0xe4, 0x48, 0x94,
+ 0x41, 0xdc, 0xaa, 0x85,
+ 0x31, 0x19, 0xab, 0x78, 0x85, 0x6e, 0x44, 0x96, 0xf4, 0x42, 0xbf, 0x29,
+ 0x71, 0x96, 0x23, 0x19,
+ 0x30, 0x05, 0x5e, 0x5f, 0x1f, 0x88, 0x91, 0x86, 0xe6, 0xe5, 0xa5, 0x23,
+ 0xf9, 0x86, 0xbf, 0x05,
+ 0xc1, 0x08, 0x4e, 0x98, 0xe6, 0x83, 0xd4, 0x4d, 0x0c, 0xb5, 0xcb, 0x86,
+ 0xea, 0x4d, 0x25, 0x08,
+ 0x20, 0x06, 0xd5, 0x6a, 0xab, 0xf0, 0x5f, 0x45, 0x05, 0x07, 0xc6, 0x83,
+ 0xae, 0x45, 0x6b, 0x06,
+ 0x8a, 0xc0, 0x5f, 0xde, 0x44, 0x75, 0xb1, 0x77, 0xa0, 0xe0, 0x7a, 0x0d,
+ 0xe4, 0x77, 0xfe, 0xc0,
+ 0xd7, 0x43, 0xbe, 0x7f, 0x88, 0xea, 0xa1, 0xee, 0x83, 0x03, 0xf4, 0x1a,
+ 0x0b, 0xee, 0x3f, 0x43,
+ 0x3d, 0x89, 0x5d, 0x1f, 0xf2, 0x4c, 0xf1, 0x56, 0x2c, 0xea, 0x07, 0x51,
+ 0xde, 0x56, 0x7c, 0x89,
+ 0xbf, 0xa9, 0xa6, 0x3a, 0xec, 0x05, 0x27, 0xa1, 0x1c, 0x7b, 0xad, 0x0c,
+ 0xf0, 0xa1, 0xe8, 0xa9,
+ 0xc6, 0x5c, 0xc0, 0x6d, 0xa6, 0x74, 0xba, 0x3d, 0x72, 0x46, 0x8d, 0xb0,
+ 0xd4, 0x3d, 0x77, 0x5c,
+ 0x72, 0x31, 0x1e, 0xc5, 0x7d, 0xa4, 0x46, 0x2c, 0xc8, 0x66, 0xde, 0xf2,
+ 0xb5, 0x2c, 0x92, 0x31,
+ 0xdb, 0xd3, 0x48, 0x18, 0xff, 0xc8, 0x14, 0x2e, 0x5b, 0xab, 0x4c, 0x62,
+ 0xa4, 0x2e, 0x60, 0xd3,
+ 0x15, 0x6f, 0x2c, 0x8e, 0x03, 0x80, 0xc9, 0x93, 0xb9, 0x9c, 0x11, 0x82,
+ 0xba, 0x93, 0x7d, 0x6f,
+ 0x99, 0xe7, 0x08, 0x82, 0x9d, 0xe4, 0xc3, 0x84, 0x75, 0x28, 0x37, 0xb3,
+ 0xe8, 0x84, 0x4d, 0xe7,
+ 0x4b, 0xc8, 0x11, 0x46, 0xa2, 0xf6, 0x65, 0x3a, 0xac, 0x55, 0xb1, 0x8b,
+ 0x0e, 0x3a, 0xdb, 0xc8,
+ 0x34, 0x75, 0x0c, 0xc3, 0x32, 0x96, 0x43, 0xc6, 0xae, 0x3c, 0xcd, 0x0b,
+ 0x9c, 0xc6, 0x8a, 0x75,
+ 0x60, 0x0a, 0xbc, 0xbe, 0x3e, 0xd3, 0xe1, 0xcf, 0x0f, 0x09, 0x89, 0x46,
+ 0x31, 0xcf, 0xbd, 0x0a,
+ 0x92, 0x23, 0x70, 0x10, 0xaa, 0x31, 0x18, 0x34, 0xd3, 0x73, 0xc9, 0xfd,
+ 0x79, 0x34, 0x40, 0x23,
+ 0xac, 0x8e, 0xf1, 0x66, 0x35, 0x94, 0x55, 0x52, 0xc9, 0xb3, 0xe0, 0xb2,
+ 0xfc, 0x52, 0x5b, 0x8e,
+ 0x6e, 0xa2, 0x63, 0x97, 0xbe, 0xfe, 0x3d, 0x2f, 0xf3, 0x2c, 0x05, 0x2a,
+ 0x4d, 0x2f, 0x19, 0xa2,
+ 0xa1, 0x02, 0xf2, 0x26, 0xd8, 0x50, 0x35, 0x82, 0x03, 0xbc, 0x42, 0xc0,
+ 0xdb, 0x82, 0x98, 0x02,
+ 0x81, 0x04, 0x27, 0x4c, 0x73, 0xa0, 0x6a, 0xc7, 0x06, 0xbb, 0x84, 0x43,
+ 0x75, 0xc7, 0xf3, 0x04,
+ 0x3b, 0xc1, 0x26, 0xcd, 0x28, 0x5d, 0x4a, 0x36, 0x40, 0xbe, 0x5b, 0x6d,
+ 0x68, 0x36, 0xb2, 0xc1,
+ 0x19, 0xff, 0xda, 0xe9, 0x74, 0xa2, 0x7c, 0x53, 0x61, 0x34, 0xa9, 0xfa,
+ 0x15, 0x53, 0x22, 0xff,
+ 0xe4, 0x62, 0x3c, 0x49, 0xfa, 0x8b, 0x8c, 0x58, 0x53, 0xcc, 0x7f, 0x27,
+ 0xa9, 0x58, 0xe7, 0x62,
+ 0x2c, 0x96, 0x23, 0x0d, 0xdc, 0xd2, 0xea, 0x85, 0xdd, 0xaf, 0x7e, 0xfb,
+ 0x01, 0x85, 0x34, 0x96,
+ 0xbd, 0x91, 0x8f, 0x74, 0x1b, 0x0a, 0x4e, 0x81, 0x38, 0xf6, 0x99, 0x18,
+ 0x23, 0x81, 0x13, 0x91,
+ 0xb6, 0x55, 0xf7, 0xe6, 0x2c, 0xdf, 0x95, 0x31, 0x9e, 0xad, 0x67, 0x56,
+ 0xb2, 0x31, 0x1e, 0x55,
+ 0xd3, 0x33, 0xec, 0xe3, 0xa5, 0xf4, 0x73, 0xae, 0xcb, 0xda, 0x9c, 0x32,
+ 0x6e, 0xae, 0x0a, 0x33,
+ 0xe7, 0x46, 0xe0, 0x20, 0x97, 0x62, 0x30, 0x68, 0x65, 0xe6, 0x51, 0x39,
+ 0xf2, 0x68, 0x80, 0x46,
+ 0x9b, 0xdf, 0x21, 0xcc, 0x6a, 0xeb, 0xaa, 0xa4, 0x51, 0xa5, 0x03, 0xa7,
+ 0x3b, 0xa4, 0xb6, 0xdf,
+ 0x8c, 0x88, 0x24, 0x0c, 0x9e, 0x64, 0x0a, 0x17, 0xcc, 0xb4, 0x26, 0x31,
+ 0x52, 0x17, 0x30, 0x88,
+ 0x04, 0x70, 0x52, 0x9c, 0x2d, 0x1e, 0xd2, 0x40, 0x48, 0xd9, 0x68, 0x28,
+ 0x65, 0x40, 0x35, 0x70,
+ 0x86, 0x50, 0xa9, 0xb9, 0x33, 0x57, 0x04, 0xb7, 0x78, 0x48, 0xc2, 0x75,
+ 0x4b, 0xb7, 0xa1, 0x50,
+ 0xef, 0xa6, 0x44, 0xdb, 0xcd, 0x5e, 0x57, 0xe8, 0xf5, 0x97, 0x81, 0x69,
+ 0x38, 0xe8, 0xea, 0xa6,
+ 0x32, 0x3d, 0x77, 0x11, 0xe8, 0x87, 0xf8, 0xa6, 0xc2, 0x68, 0x91, 0x37,
+ 0x2a, 0xa6, 0x44, 0x3d,
+ 0x0b, 0xc4, 0x78, 0x92, 0x37, 0xd5, 0xdb, 0xb0, 0xa6, 0x5b, 0xfe, 0x4e,
+ 0x91, 0xb0, 0x0d, 0xc4,
+ 0x9e, 0xb3, 0x86, 0x77, 0xdd, 0x13, 0xad, 0xf4, 0x0b, 0xdb, 0x71, 0x85,
+ 0xd6, 0xf4, 0x1f, 0xb3,
+ 0x80, 0x18, 0xd2, 0x6b, 0xe9, 0x46, 0xbf, 0xd7, 0x14, 0x1c, 0x9e, 0x49,
+ 0xfd, 0xd7, 0x6f, 0x18,
+ 0x1c, 0x93, 0x7d, 0x52, 0xc3, 0x5a, 0x7b, 0x03, 0x3b, 0x4a, 0xdb, 0xd8,
+ 0xf8, 0x03, 0x8b, 0x93,
+ 0xb1, 0x01, 0x79, 0x13, 0x6c, 0x28, 0xfb, 0x41, 0xe0, 0x5e, 0x21, 0x60,
+ 0x8c, 0x41, 0x4c, 0x01,
+ 0xd4, 0x67, 0x62, 0x16, 0xe5, 0x03, 0x1d, 0xde, 0xb5, 0x29, 0xda, 0x04,
+ 0x50, 0xde, 0x58, 0x67,
+ 0x7a, 0xd1, 0xba, 0x3e, 0x27, 0x98, 0x21, 0xac, 0x58, 0x17, 0x0e, 0xa2,
+ 0x7f, 0xac, 0xf8, 0xd1,
+ 0x5b, 0xcb, 0x9a, 0x73, 0x16, 0x8e, 0xab, 0xf9, 0x4f, 0xb7, 0xd2, 0x2b,
+ 0x59, 0xf9, 0x0f, 0xcb,
+ 0xa3, 0x3a, 0xdb, 0x68, 0x2f, 0x5f, 0x5c, 0xa2, 0x27, 0x31, 0x76, 0xd4,
+ 0x08, 0xa2, 0x63, 0x3a,
+ 0xf9, 0xed, 0xb4, 0x3c, 0xa3, 0x37, 0x22, 0x4b, 0x7a, 0x21, 0xbe, 0xf5,
+ 0xd9, 0x4b, 0xf0, 0xed,
+ 0x33, 0x21, 0x82, 0x36, 0x72, 0x61, 0x2d, 0xb6, 0xd0, 0xcf, 0x8b, 0x3d,
+ 0xa2, 0xb6, 0xd8, 0x21,
+ 0x68, 0xea, 0x18, 0x45, 0x64, 0xef, 0x86, 0x4f, 0x9f, 0x78, 0x59, 0x16,
+ 0xfb, 0x4f, 0xd7, 0xea,
+ 0x96, 0x53, 0x22, 0x8c, 0x87, 0x2f, 0xca, 0x74, 0x9b, 0xaa, 0xa1, 0xd5,
+ 0x1c, 0x74, 0x75, 0x53,
+ 0x46, 0x44, 0x12, 0x06, 0x4f, 0x32, 0x05, 0xea, 0x66, 0x5a, 0x13, 0xf9,
+ 0x29, 0xea, 0x18, 0x44,
+ 0x02, 0x38, 0x29, 0x4e, 0xf7, 0x0f, 0x69, 0x20, 0x24, 0x8d, 0x34, 0x14,
+ 0xd3, 0x20, 0xfb, 0x38,
+ 0xff, 0xa5, 0xcf, 0xee, 0x79, 0x26, 0x99, 0x2b, 0x16, 0x75, 0xe2, 0xc9,
+ 0x6f, 0x2b, 0x3e, 0xa5,
+ 0x95, 0x77, 0xfe, 0xe5, 0xea, 0xc6, 0x76, 0x44, 0xad, 0x80, 0x8f, 0xcb,
+ 0x47, 0x44, 0x12, 0x77,
+ 0x64, 0x7a, 0xee, 0x22, 0x13, 0xcd, 0x33, 0x8f, 0x47, 0xd0, 0xe1, 0x6e,
+ 0x54, 0x8f, 0x88, 0x7a,
+ 0x40, 0x0c, 0x69, 0xd4, 0x95, 0x23, 0xbe, 0x8a, 0x0a, 0x0e, 0x4f, 0xc5,
+ 0x9f, 0x8a, 0xd6, 0x0c,
+ 0x41, 0x10, 0x9c, 0xf3, 0x0f, 0xc5, 0x6b, 0x9a, 0x18, 0xa9, 0x55, 0xcf,
+ 0x17, 0x9a, 0x4a, 0x10,
+ 0x16, 0x4b, 0xf0, 0xe7, 0x6e, 0x69, 0x75, 0xa3, 0x8f, 0xb6, 0x3f, 0x9c,
+ 0xe1, 0xa3, 0x1a, 0x4b,
+ 0x0e, 0xa8, 0xdf, 0x29, 0x80, 0x2d, 0xdc, 0xe0, 0xfc, 0x25, 0x8c, 0x6c,
+ 0x7c, 0xe0, 0xa4, 0xa8,
+ 0xb9, 0xe1, 0xdd, 0xe8, 0x36, 0x14, 0x9c, 0xc1, 0x70, 0x2f, 0xf1, 0x30,
+ 0x46, 0xc1, 0x26, 0xe1,
+ 0xfd, 0x9d, 0xe6, 0xa0, 0x8e, 0x29, 0xf0, 0x0b, 0x32, 0xf8, 0xd6, 0xdd,
+ 0xbc, 0x0b, 0xc5, 0x9d,
+ 0x6f, 0xbe, 0x96, 0xb0, 0x24, 0x18, 0xe8, 0x3f, 0xe1, 0x8b, 0x1f, 0x20,
+ 0xc5, 0x3f, 0x85, 0xbe,
+ 0x91, 0x07, 0xac, 0x79, 0xc7, 0xd8, 0xa4, 0x04, 0xe5, 0x59, 0xe7, 0xe3,
+ 0x22, 0x04, 0x27, 0x07,
+ 0xa5, 0x72, 0xa0, 0xba, 0xf5, 0x4e, 0xe7, 0xc2, 0x4b, 0x65, 0x2a, 0xe8,
+ 0xbe, 0xc2, 0xad, 0x72,
+ 0xcf, 0xa0, 0x91, 0xb1, 0x66, 0xae, 0x08, 0xad, 0xf0, 0x90, 0x47, 0xea,
+ 0x96, 0xad, 0x81, 0xa0,
+ 0x56, 0x47, 0x99, 0x33, 0xfb, 0x4a, 0xcb, 0x29, 0x85, 0xb8, 0x70, 0x59,
+ 0x7e, 0x29, 0xcc, 0x47,
+ 0xba, 0xc5, 0x01, 0x81, 0x5b, 0xfd, 0x20, 0xf1, 0x46, 0x05, 0xdf, 0x2e,
+ 0x1d, 0xf1, 0x41, 0xc5,
+ 0x61, 0x16, 0x49, 0x99, 0xa4, 0x35, 0x34, 0xdf, 0x1d, 0xae, 0x93, 0x4c,
+ 0xb9, 0xdf, 0x21, 0x16,
+ 0x18, 0xe3, 0x2f, 0xce, 0xee, 0x44, 0xa9, 0x43, 0x73, 0x93, 0xb3, 0xf0,
+ 0x9d, 0x43, 0xbe, 0xe3,
+ 0x54, 0x7f, 0xb0, 0x7d, 0x0c, 0x45, 0xa2, 0x09, 0xa1, 0x35, 0x44, 0x4d,
+ 0xad, 0x09, 0x37, 0x7f,
+ 0x8b, 0xdc, 0xaa, 0xf9, 0xde, 0x93, 0x64, 0x67, 0xb2, 0x47, 0x60, 0x07,
+ 0x6c, 0x67, 0x62, 0xdc,
+ 0x3e, 0xad, 0x81, 0x76, 0x9f, 0xa5, 0x4d, 0x66, 0x1a, 0xc0, 0x29, 0x4f,
+ 0x85, 0x66, 0x1b, 0xad,
+ 0x5a, 0xd7, 0x6f, 0x54, 0x8c, 0x68, 0x7e, 0xe9, 0x5d, 0x10, 0xc8, 0x21,
+ 0xd1, 0xe9, 0x93, 0xd7,
+ 0xce, 0xbc, 0x64, 0x96, 0xfc, 0x48, 0xdd, 0xbd, 0xe2, 0x37, 0x5d, 0xe0,
+ 0x1e, 0xbd, 0x1d, 0xbc,
+ 0xf7, 0x45, 0x6b, 0x15, 0x23, 0x1a, 0xfe, 0xab, 0x86, 0x04, 0x32, 0x99,
+ 0xa5, 0xab, 0x54, 0x45,
+ 0xd2, 0x2f, 0x19, 0xc4, 0x3f, 0x12, 0xa6, 0xbe, 0xd9, 0x7d, 0x86, 0x38,
+ 0xe6, 0xbe, 0x96, 0x2f,
+ 0x82, 0x20, 0xfb, 0x25, 0x1e, 0x49, 0xd6, 0xf7, 0x30, 0x91, 0xaa, 0x5d,
+ 0x2e, 0xf7, 0x94, 0x20,
+ 0xb3, 0x39, 0x50, 0x5d, 0x9b, 0x27, 0x92, 0x61, 0xc4, 0xd3, 0x15, 0x74,
+ 0x5f, 0x61, 0xb7, 0x39,
+ 0xb4, 0x6d, 0xde, 0xa8, 0xdb, 0xd0, 0xfc, 0x11, 0xba, 0x20, 0x53, 0x42,
+ 0x61, 0x11, 0xe5, 0x6d,
+ 0xd6, 0x5f, 0x4b, 0x58, 0x12, 0x0c, 0x74, 0xfe, 0x91, 0xa4, 0xee, 0x10,
+ 0x83, 0xfe, 0xa3, 0x5f,
+ 0xe1, 0x0e, 0x9b, 0xf2, 0x4d, 0x73, 0x8b, 0x08, 0x09, 0xb2, 0x0d, 0x05,
+ 0x44, 0x08, 0x4e, 0x0e,
+ 0xc2, 0x2c, 0x92, 0xf1, 0x8b, 0x6a, 0x68, 0x7d, 0x3a, 0x9f, 0xe5, 0x98,
+ 0xb1, 0x7d, 0x42, 0x2c,
+ 0x5d, 0x83, 0xe1, 0xa1, 0xcc, 0x9f, 0x10, 0x99, 0x23, 0xe3, 0x8e, 0x17,
+ 0xef, 0x99, 0xc1, 0x83,
+ 0xfa, 0xc9, 0x68, 0x55, 0xce, 0xde, 0x9e, 0x7b, 0x4c, 0x0b, 0x90, 0xeb,
+ 0x82, 0x7b, 0x97, 0xc9,
+ 0xa4, 0x6e, 0x55, 0x9d, 0x6f, 0xa8, 0x32, 0xd2, 0x59, 0xc2, 0x30, 0xe2,
+ 0x36, 0xd2, 0x31, 0x6e,
+ 0x1f, 0xb7, 0xa1, 0x3b, 0xae, 0xb3, 0xc7, 0x33, 0x0d, 0x60, 0xf5, 0xc6,
+ 0xa3, 0x33, 0xec, 0xb7,
+ 0x0c, 0x90, 0xf6, 0x67, 0x77, 0x22, 0xb5, 0xc0, 0xd8, 0xa8, 0xb8, 0x78,
+ 0xaf, 0xc0, 0x5f, 0x90,
+ 0x01, 0x1c, 0xf5, 0x27, 0x9a, 0xe6, 0xd5, 0x10, 0x12, 0xa7, 0x1a, 0x0a,
+ 0x88, 0x10, 0x9c, 0x1c,
+ 0x2d, 0x8a, 0xd6, 0x2a, 0x46, 0x34, 0x3f, 0x95, 0xcf, 0x08, 0x64, 0xf1,
+ 0x89, 0x95, 0xa8, 0x8a,
+ 0x67, 0x5e, 0x32, 0x4b, 0x7e, 0x24, 0x8f, 0xbf, 0x71, 0xfa, 0xcf, 0x70,
+ 0x0f, 0xbf, 0xef, 0x5e,
+ 0xe2, 0x2a, 0x47, 0x9b, 0x20, 0x9a, 0x37, 0x38, 0x3f, 0x98, 0x23, 0x1b,
+ 0x1f, 0x38, 0x29, 0x2a,
+ 0x09, 0xfc, 0x51, 0xdc, 0xc0, 0xda, 0xb2, 0x90, 0x82, 0xd6, 0xca, 0x5a,
+ 0x42, 0x90, 0xf6, 0xfc,
+ 0x57, 0x5b, 0x6c, 0x14, 0x61, 0xac, 0x1e, 0x39, 0x97, 0x1f, 0x6a, 0x53,
+ 0xf6, 0x39, 0x50, 0x5b,
+ 0x11, 0x1f, 0x7e, 0x12, 0x2e, 0x9e, 0x1b, 0xd3, 0xf1, 0x45, 0x79, 0xaa,
+ 0xdf, 0xd3, 0x48, 0x1f,
+ 0xb7, 0x49, 0x02, 0xc1, 0xb6, 0x39, 0x40, 0x21, 0x8c, 0x0a, 0x7d, 0x5c,
+ 0x3a, 0x21, 0x82, 0x49,
+ 0xdf, 0xa3, 0x1a, 0x84, 0xd2, 0xd6, 0xc6, 0x6e, 0x13, 0x72, 0x24, 0x4a,
+ 0xc1, 0x6e, 0x55, 0xa3,
+ 0x6a, 0xd2, 0x31, 0x0b, 0x93, 0xe0, 0xef, 0x6f, 0xbb, 0xf5, 0x6d, 0x02,
+ 0x28, 0x6f, 0x2c, 0xd2,
+ 0x93, 0x3f, 0x85, 0x37, 0x30, 0xd7, 0xcd, 0x24, 0xc1, 0xd4, 0xd3, 0xf7,
+ 0xf1, 0x24, 0xdc, 0x3f,
+ 0x24, 0x76, 0x87, 0xf6, 0x86, 0xee, 0x8d, 0x05, 0x4d, 0xde, 0xae, 0xab,
+ 0xcb, 0x05, 0x5e, 0x76,
+ 0x7f, 0xbd, 0x1d, 0x85, 0x90, 0x60, 0x26, 0xfc, 0x02, 0x69, 0x7c, 0x80,
+ 0x92, 0xfc, 0x51, 0xbd,
+ 0x66, 0x42, 0xc7, 0x6c, 0xe4, 0xc2, 0x5a, 0xaf, 0x63, 0x5d, 0xd5, 0x7a,
+ 0x87, 0xaf, 0x73, 0x42,
+ 0xfe, 0xb9, 0x3a, 0xc9, 0xe3, 0xc0, 0x4c, 0x3b, 0x04, 0xd2, 0xf8, 0xc3,
+ 0xe7, 0x3b, 0xa2, 0xb9,
+ 0x07, 0x54, 0x8e, 0xf5, 0x40, 0xf7, 0x6e, 0x70, 0x7e, 0xf3, 0x46, 0x36,
+ 0x3e, 0x70, 0x52, 0x54,
+ 0x44, 0x7c, 0x3b, 0x48, 0xb8, 0x3d, 0x6c, 0xca, 0x42, 0xd7, 0x27, 0xed,
+ 0xfa, 0xca, 0xe3, 0x7c,
+ 0x3f, 0xb1, 0x74, 0x51, 0x05, 0x43, 0x98, 0x76, 0x08, 0x67, 0x33, 0x45,
+ 0x0d, 0x76, 0x87, 0xb1,
+ 0xf8, 0xf1, 0x41, 0x1b, 0x39, 0xd1, 0xf7, 0x5b, 0x68, 0x86, 0xa4, 0xff,
+ 0x51, 0x5b, 0x6c, 0xf1,
+ 0x06, 0x48, 0x7b, 0xd2, 0xda, 0x11, 0xbb, 0x60, 0x6c, 0x54, 0x5c, 0x3c,
+ 0xb6, 0x60, 0xce, 0x48,
+ 0xca, 0xcc, 0x36, 0x0a, 0xd1, 0x56, 0x0f, 0xfd, 0xaa, 0xee, 0x35, 0xc8,
+ 0x7b, 0xfd, 0x28, 0xcc,
+ 0xad, 0x92, 0x04, 0x41, 0xaf, 0x72, 0x80, 0x42, 0xdb, 0x14, 0xfa, 0xb8,
+ 0x74, 0x42, 0xc7, 0x92,
+ 0x2b, 0xc2, 0xad, 0xf8, 0x9c, 0x25, 0x84, 0xf5, 0xa3, 0x5c, 0x38, 0xcd,
+ 0x3f, 0xf5, 0x66, 0xc2,
+ 0xae, 0xb6, 0xd8, 0x28, 0xc2, 0x9b, 0x3c, 0x72, 0xed, 0x3e, 0xd4, 0xa6,
+ 0x2f, 0x72, 0xa0, 0xb6,
+ 0x22, 0x3e, 0xfc, 0x24, 0x5c, 0xff, 0x36, 0x65, 0x21, 0x8a, 0xf2, 0x97,
+ 0x7d, 0x65, 0x90, 0x3e,
+ 0x39, 0xf9, 0x0f, 0x83, 0xdf, 0x52, 0x23, 0x16, 0x64, 0x33, 0x6f, 0x79,
+ 0xbb, 0x16, 0x49, 0xf9,
+ 0xde, 0xbf, 0xef, 0xa3, 0x48, 0x30, 0x13, 0x7e, 0x01, 0xd5, 0x3e, 0x40,
+ 0x49, 0x7e, 0xc9, 0xbf,
+ 0x1e, 0xab, 0x54, 0x1c, 0x34, 0x55, 0x12, 0x23, 0x1f, 0xc7, 0xef, 0xcc,
+ 0x2b, 0x23, 0x70, 0xab,
+ 0xa8, 0xfe, 0xa3, 0xfa, 0x18, 0x8a, 0x87, 0x12, 0x81, 0x6a, 0x88, 0x9a,
+ 0x99, 0x12, 0x6e, 0xfe,
+ 0x58, 0xef, 0x46, 0x1a, 0x7b, 0x67, 0x17, 0xc9, 0x79, 0x9d, 0xfc, 0x35,
+ 0x02, 0xc9, 0x68, 0xef,
+ 0x88, 0xf8, 0x76, 0x90, 0xb3, 0x7a, 0xd8, 0x57, 0x84, 0x6d, 0x4e, 0x19,
+ 0x37, 0x57, 0x05, 0xf8,
+ 0x9a, 0xc3, 0xd4, 0xeb, 0xf0, 0x0d, 0x7f, 0xb4, 0x43, 0x02, 0x19, 0xad,
+ 0xb3, 0xb4, 0x2a, 0xc3,
+ 0x69, 0xf6, 0xed, 0x62, 0xfe, 0x09, 0x53, 0x5f, 0x8d, 0xdf, 0x43, 0x1c,
+ 0x73, 0x5f, 0x4b, 0xf6,
+ 0x28, 0xe6, 0x71, 0x91, 0xf1, 0xcc, 0x38, 0xc5, 0x95, 0x76, 0x16, 0xd3,
+ 0x64, 0xc5, 0x01, 0xe6,
+ 0x65, 0x66, 0x1b, 0x05, 0x89, 0x2b, 0xe6, 0x9f, 0x55, 0x77, 0xfb, 0x64,
+ 0xdc, 0x9f, 0x14, 0x66,
+ 0xd5, 0x7b, 0x97, 0x31, 0x7f, 0xe5, 0xc8, 0xce, 0xa7, 0x8e, 0xc0, 0x0e,
+ 0xd8, 0xce, 0xc4, 0x7b,
+ 0x7c, 0x99, 0xc1, 0xec, 0xfd, 0x89, 0x9a, 0xcc, 0x34, 0x43, 0x52, 0x9e,
+ 0xc9, 0xcc, 0x36, 0x99,
+ 0xbc, 0x8d, 0x7a, 0x53, 0x81, 0xec, 0x9b, 0x91, 0x2a, 0x51, 0x83, 0x12,
+ 0xab, 0x91, 0x8f, 0x8d,
+ 0x38, 0xe5, 0xfa, 0xa4, 0x45, 0xb4, 0xf6, 0x06, 0x76, 0x94, 0x75, 0x73,
+ 0x33, 0x06, 0xd5, 0xe5,
+ 0x4f, 0xb8, 0x43, 0xda, 0x8f, 0xe8, 0xb7, 0x7a, 0xe4, 0x8c, 0xd9, 0xa3,
+ 0x6b, 0x7a, 0xee, 0xb8,
+ 0xe0, 0x12, 0x6e, 0xd5, 0xd7, 0x95, 0x5e, 0x18, 0x1b, 0x15, 0x17, 0x0f,
+ 0xcc, 0x18, 0xd2, 0x12,
+ 0x27, 0x52, 0x5b, 0x9f, 0xeb, 0x07, 0x31, 0x35, 0x7b, 0xf4, 0x80, 0xb5,
+ 0x90, 0x35, 0x39, 0x52,
+ 0x76, 0x41, 0x4c, 0x59, 0x50, 0xba, 0x94, 0x6c, 0x80, 0xbf, 0xb6, 0xda,
+ 0xd0, 0x6c, 0xa7, 0x41,
+ 0x78, 0xe9, 0x93, 0x70, 0xd0, 0x97, 0x48, 0x8c, 0x7c, 0x9a, 0x3a, 0xb6,
+ 0xac, 0x8c, 0x03, 0xe9,
+ 0x89, 0xe4, 0x83, 0xb7, 0x29, 0x9c, 0x0d, 0x47, 0x96, 0xca, 0x54, 0x13,
+ 0xbf, 0x47, 0x99, 0xe4,
+ 0x8d, 0x94, 0xd1, 0x2b, 0x04, 0x82, 0xdf, 0x07, 0xde, 0x13, 0x3c, 0x3b,
+ 0xda, 0x07, 0xac, 0x94,
+ 0xaf, 0xaa, 0x2d, 0x0f, 0x58, 0x7d, 0xe9, 0x62, 0xff, 0x99, 0xce, 0xac,
+ 0xa7, 0x62, 0x3c, 0xaa,
+ 0x9f, 0xaf, 0x73, 0x50, 0x47, 0xf5, 0x78, 0xe4, 0x19, 0x7c, 0x6b, 0x8f,
+ 0x5e, 0xe4, 0x83, 0xaf,
+ 0x84, 0x68, 0x80, 0xf7, 0xc4, 0x58, 0x6d, 0x97, 0x5c, 0xc5, 0xf6, 0x61,
+ 0x98, 0x97, 0x5a, 0x68,
+ 0xe6, 0x5a, 0x15, 0x07, 0x0d, 0x84, 0xe5, 0x78, 0x77, 0x41, 0x4b, 0x33,
+ 0x7a, 0x78, 0x1c, 0x5a,
+ 0xf1, 0x0d, 0x10, 0xc7, 0xf9, 0x0b, 0x45, 0xcb, 0xea, 0x50, 0x6e, 0xa5,
+ 0x13, 0xcb, 0x9a, 0x0d,
+ 0x63, 0x2e, 0x60, 0xd7, 0x53, 0x3a, 0x5d, 0xff, 0x39, 0x23, 0xa7, 0x58,
+ 0x6a, 0xff, 0xda, 0x2e,
+ 0x51, 0x13, 0x17, 0xc6, 0xbb, 0xbd, 0xa5, 0x59, 0xfb, 0x4b, 0x36, 0x6f,
+ 0x40, 0x59, 0x9e, 0x13,
+ 0xc8, 0xf4, 0x1f, 0x44, 0x26, 0x59, 0x66, 0xdd, 0x8e, 0x63, 0x01, 0xdc,
+ 0xa8, 0xdd, 0xd3, 0xf4,
+ 0x03, 0x24, 0xdc, 0x69, 0x6d, 0xe9, 0xbc, 0x30, 0x36, 0x2a, 0x2e, 0x1e,
+ 0x5b, 0x30, 0x67, 0x24,
+ 0xed, 0x9e, 0x6d, 0x95, 0x3a, 0x51, 0x3e, 0xc8, 0xd1, 0x1a, 0xb5, 0x7d,
+ 0xeb, 0xc8, 0x11, 0x9e,
+ 0x70, 0x09, 0x37, 0x8b, 0x8a, 0xab, 0x2f, 0x0c, 0xec, 0xeb, 0xea, 0xe6,
+ 0x66, 0x0c, 0x69, 0x09,
+ 0x3c, 0x95, 0xa8, 0x38, 0x68, 0xaa, 0x24, 0x46, 0x3e, 0x4d, 0x1d, 0x5b,
+ 0x56, 0x46, 0xe0, 0x95,
+ 0x8e, 0xb0, 0x0d, 0x42, 0x69, 0x6b, 0x63, 0x37, 0xe8, 0x39, 0x12, 0x25,
+ 0x81, 0x37, 0xcb, 0xb0,
+ 0xd9, 0xeb, 0x61, 0x56, 0x08, 0xc7, 0x7d, 0x0e, 0x7f, 0x26, 0x78, 0x76,
+ 0x77, 0x0e, 0x9b, 0xeb,
+ 0x10, 0x03, 0x8b, 0x35, 0xb4, 0x78, 0xce, 0xc3, 0xe3, 0xe2, 0x63, 0xa0,
+ 0x57, 0xc3, 0xd4, 0x03,
+ 0x1a, 0xdb, 0x06, 0x80, 0x19, 0x4b, 0xc0, 0x63, 0x57, 0x1e, 0x87, 0xe4,
+ 0x4e, 0x63, 0x45, 0xdb,
+ 0x9d, 0x97, 0x5a, 0x1e, 0xb0, 0xfa, 0x11, 0xc4, 0x3d, 0xf1, 0x5f, 0x9b,
+ 0x8d, 0xc4, 0x78, 0x97,
+ 0xee, 0xba, 0xb1, 0xfc, 0x57, 0xb8, 0x82, 0xf8, 0xe7, 0x30, 0x9b, 0x63,
+ 0xb0, 0xf8, 0x76, 0xba,
+ 0xcb, 0xd0, 0xc3, 0x2d, 0x4b, 0xb0, 0xda, 0xed, 0xb8, 0x49, 0x2f, 0xc2,
+ 0xf3, 0xed, 0xb4, 0xd0,
+ 0x97, 0x4f, 0xd7, 0xab, 0x1d, 0xc9, 0x1f, 0x64, 0x89, 0x0d, 0xbb, 0xdf,
+ 0x94, 0x64, 0xe9, 0x4f,
+ 0xc9, 0xe8, 0xea, 0x63, 0xbc, 0xbf, 0xb3, 0xcd, 0x9c, 0xc4, 0x1b, 0xd6,
+ 0x20, 0xcd, 0x4f, 0xe8,
+ 0x79, 0xf5, 0x66, 0x57, 0x4a, 0x71, 0x9d, 0x9c, 0x6e, 0x3d, 0x20, 0xbc,
+ 0x24, 0x9c, 0x9f, 0xf5,
+ 0xb2, 0x25, 0xa5, 0x7a, 0x01, 0xc1, 0x47, 0x71, 0xd6, 0x74, 0x0f, 0x7e,
+ 0xd7, 0x71, 0x2b, 0x25,
+ 0x35, 0x69, 0xf9, 0xe4, 0xa8, 0x70, 0x96, 0xd6, 0xbc, 0x9b, 0xd7, 0x01,
+ 0x14, 0xd6, 0x16, 0x69,
+ 0x6c, 0x9a, 0x4a, 0xd9, 0x49, 0xf1, 0x54, 0x0f, 0xd7, 0xa1, 0x31, 0x3e,
+ 0x9e, 0x0f, 0xe2, 0x9a,
+ 0x9c, 0x8b, 0xaf, 0x39, 0x2a, 0x1c, 0xc4, 0xd4, 0x2f, 0x56, 0x45, 0x91,
+ 0x05, 0xd4, 0xe4, 0x8b,
+ 0x1b, 0xc7, 0xf3, 0xa7, 0x83, 0xad, 0x15, 0x73, 0x45, 0xb9, 0x9d, 0xee,
+ 0xc6, 0x73, 0xd9, 0xc7,
+ 0x05, 0x6c, 0xa7, 0xbb, 0xb7, 0xf8, 0x07, 0x50, 0x5a, 0x7e, 0x72, 0x22,
+ 0xed, 0x50, 0xa9, 0x6c,
+ 0x50, 0x0f, 0xe2, 0xe1, 0x21, 0x5b, 0x70, 0x49, 0xe9, 0xec, 0x2c, 0x65,
+ 0xc8, 0x49, 0x02, 0x0f,
+ 0xf0, 0x11, 0xe5, 0xe0, 0x63, 0xed, 0x90, 0xdb, 0xf8, 0xf7, 0x74, 0xaf,
+ 0x9b, 0xdb, 0x06, 0x11,
+ 0xd1, 0x0b, 0xc5, 0xad, 0x52, 0xfb, 0x1a, 0x8e, 0xef, 0x57, 0xa8, 0x26,
+ 0xbd, 0x8e, 0xf1, 0x0b,
+ 0x12, 0x3b, 0xa2, 0x7b, 0x43, 0x77, 0xa7, 0xe3, 0xc7, 0x6f, 0x57, 0xb4,
+ 0x84, 0xe3, 0x2f, 0x3b,
+ 0x87, 0x4c, 0x5c, 0x9e, 0xa9, 0xb1, 0xd1, 0xa7, 0x6a, 0xef, 0xd8, 0x7f,
+ 0xc3, 0xa7, 0x3d, 0x4c,
+ 0x08, 0xe0, 0xa4, 0xfb, 0x5a, 0x3c, 0x67, 0x80, 0x90, 0x71, 0xd0, 0x50,
+ 0xca, 0x80, 0x6a, 0xe0,
+ 0x59, 0xf3, 0xb3, 0x3d, 0xe1, 0x81, 0xc2, 0xd9, 0x6b, 0x3a, 0xe6, 0x3f,
+ 0x8a, 0xd9, 0xf4, 0xf3,
+ 0xfc, 0x81, 0x13, 0x87, 0x14, 0xcf, 0x25, 0x1b, 0x20, 0x5f, 0xcc, 0xd7,
+ 0x34, 0x1b, 0x59, 0x81,
+ 0x21, 0x1a, 0x20, 0x4d, 0x31, 0x16, 0x8a, 0x55, 0x17, 0xa0, 0xdc, 0x89,
+ 0x26, 0x55, 0xf7, 0x1a,
+ 0x85, 0x74, 0x75, 0xd0, 0x5e, 0xbe, 0xb8, 0x87, 0x4e, 0x62, 0xec, 0x6b,
+ 0x10, 0x87, 0xc6, 0x74,
+ 0x55, 0x63, 0x45, 0x5a, 0x96, 0xa3, 0x77, 0x19, 0xb3, 0x92, 0x5e, 0x47,
+ 0x25, 0x19, 0xab, 0x63,
+ 0x4e, 0xa4, 0xb6, 0xfd, 0x15, 0x0e, 0x62, 0x6a, 0xf6, 0x2b, 0xc3, 0xa9,
+ 0xe3, 0x6a, 0x72, 0xa4,
+ 0xec, 0x82, 0x98, 0xb2, 0xa0, 0xb7, 0xeb, 0xd8, 0xc3, 0xbd, 0xaf, 0x77,
+ 0x63, 0xd8, 0x8d, 0x82,
+ 0xfb, 0xd5, 0x9d, 0x72, 0x54, 0x38, 0x4b, 0x6b, 0x5e, 0xac, 0x8a, 0xe1,
+ 0x0a, 0x6b, 0x0b, 0xd5,
+ 0x36, 0x4d, 0x25, 0x8d, 0xc5, 0x99, 0x2a, 0xe6, 0x8a, 0xb1, 0xf9, 0x1f,
+ 0x4f, 0xe6, 0x71, 0x4d,
+ 0x75, 0x65, 0x90, 0x30, 0x3d, 0x53, 0x28, 0x5c, 0xb6, 0x95, 0x98, 0xc4,
+ 0x8b, 0x5c, 0xc0, 0x65,
+ 0x37, 0x51, 0xd0, 0xaa, 0x5f, 0x7f, 0xff, 0xf6, 0x98, 0x16, 0xe3, 0x15,
+ 0xc7, 0xf6, 0xed, 0x51,
+ 0x5c, 0x9f, 0x14, 0x86, 0x56, 0x79, 0xc5, 0x89, 0x31, 0x44, 0x94, 0x1d,
+ 0x67, 0x89, 0x5d, 0x9f,
+ 0xf6, 0x59, 0x9e, 0x32, 0xb9, 0xfc, 0x2b, 0xbb, 0x94, 0xa3, 0x28, 0x93,
+ 0x2d, 0xbb, 0xc8, 0x59,
+ 0xf4, 0x61, 0xb7, 0x7c, 0x4e, 0xf3, 0x42, 0x9b, 0xb0, 0x2e, 0x1c, 0x87,
+ 0xfe, 0x9b, 0x33, 0x61,
+ 0xcd, 0x98, 0xb8, 0xff, 0x91, 0xa1, 0x61, 0x8d, 0xd4, 0x1d, 0x73, 0xfe,
+ 0x45, 0x8d, 0x7a, 0x98,
+ 0x6b, 0xce, 0xc4, 0x2c, 0x09, 0x06, 0x3a, 0x7f, 0xa9, 0x52, 0x77, 0x08,
+ 0xa0, 0x7f, 0xb0, 0xce,
+ 0xa2, 0x26, 0x2e, 0x4f, 0xb5, 0xb9, 0x89, 0xb2, 0x35, 0x96, 0x6c, 0xde,
+ 0x80, 0xb2, 0xff, 0x26,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xaa, 0xc6, 0x8a, 0xb4, 0xef, 0x85, 0xee, 0x32, 0xa5, 0xe7, 0xbc, 0x8e,
+ 0x4a, 0x32, 0x95, 0xc6,
+ 0x71, 0x15, 0xc2, 0xac, 0x10, 0x4d, 0xfa, 0x1c, 0xfe, 0x4c, 0xf0, 0xec,
+ 0xee, 0x1c, 0xf5, 0x15,
+ 0x42, 0x34, 0x40, 0x9a, 0x62, 0x2c, 0xd7, 0xaa, 0x2e, 0x83, 0x7b, 0xd1,
+ 0x4c, 0xaa, 0x2d, 0x34,
+ },
+ { /* 14 */
+ 0x47, 0x52, 0xd9, 0xd2, 0x69, 0x81, 0x42, 0x4a, 0x4e, 0xe7, 0x53, 0x5d,
+ 0xa9, 0x30, 0x47, 0x7c,
+ 0xe9, 0xdb, 0x31, 0x5c, 0x2e, 0xdf, 0x12, 0x97, 0x34, 0x3f, 0x83, 0x15,
+ 0x0b, 0x98, 0xe9, 0x1c,
+ 0x8f, 0x26, 0xbe, 0x4a, 0x25, 0x12, 0xca, 0xbc, 0x87, 0xf8, 0x58, 0xe9,
+ 0x7f, 0xf7, 0x8f, 0x8c,
+ 0x4e, 0x4a, 0xa1, 0x54, 0x2a, 0x05, 0x39, 0xe1, 0x8d, 0xb6, 0x51, 0xd3,
+ 0x3b, 0x95, 0x4e, 0x2e,
+ 0x03, 0x45, 0x92, 0x77, 0xda, 0xb6, 0xd2, 0x78, 0x2d, 0xdc, 0xc1, 0xf5,
+ 0xf1, 0x7a, 0x03, 0x9c,
+ 0xcf, 0x7c, 0x4f, 0x5b, 0xcc, 0xef, 0xa1, 0x2e, 0x88, 0x91, 0xb4, 0xce,
+ 0x19, 0xa4, 0xcf, 0x7f,
+ 0x0c, 0xd7, 0x0d, 0x1f, 0xee, 0x9d, 0xce, 0x23, 0xb4, 0xf6, 0x82, 0x52,
+ 0x42, 0x2b, 0x0c, 0x35,
+ 0xba, 0x33, 0xff, 0xaf, 0xb6, 0x3a, 0xc1, 0xb8, 0x65, 0x01, 0x95, 0xbe,
+ 0x64, 0xd5, 0xba, 0x3f,
+ 0x12, 0x30, 0xf0, 0xcf, 0x86, 0xcb, 0xf6, 0x95, 0x45, 0xa2, 0x04, 0xdf,
+ 0xe7, 0x89, 0x12, 0xa4,
+ 0xf0, 0x34, 0xe4, 0x4f, 0xc6, 0xf5, 0x03, 0xf9, 0x84, 0xe5, 0xba, 0xe2,
+ 0x61, 0x59, 0xf0, 0x02,
+ 0x2b, 0xf2, 0xbc, 0x35, 0xfb, 0x7e, 0x33, 0xb2, 0x13, 0xad, 0x4b, 0xda,
+ 0xbe, 0x80, 0x2b, 0x22,
+ 0x2c, 0xfa, 0x94, 0xf6, 0x7b, 0x02, 0x1a, 0x6a, 0x52, 0x23, 0xf4, 0xa0,
+ 0x71, 0xe3, 0x2c, 0xad,
+ 0x32, 0x1d, 0x69, 0x26, 0x13, 0x54, 0x22, 0xdc, 0xa3, 0x77, 0x72, 0x2d,
+ 0xd4, 0x41, 0x32, 0x3c,
+ 0x1b, 0x28, 0x88, 0x49, 0xc5, 0x4f, 0x8d, 0x3e, 0x86, 0xf3, 0x06, 0x51,
+ 0x75, 0x2c, 0x1b, 0xf6,
+ 0xd2, 0xde, 0x20, 0xfc, 0x7e, 0x0f, 0x4b, 0xe0, 0x54, 0x19, 0xf3, 0xb6,
+ 0x4d, 0x7c, 0xd2, 0x72,
+ 0x08, 0x9a, 0xb7, 0xab, 0xb4, 0x57, 0x35, 0x83, 0xd8, 0xa4, 0xfc, 0xdd,
+ 0x7c, 0x32, 0x08, 0x26,
+ 0xdd, 0x4c, 0xbf, 0x94, 0x4a, 0x24, 0x57, 0xbb, 0xcd, 0x33, 0xb0, 0x11,
+ 0xfe, 0x2d, 0xdd, 0xdb,
+ 0x60, 0x77, 0x68, 0xf8, 0x7c, 0x62, 0xbf, 0xdb, 0xe9, 0xbc, 0x9a, 0xd5,
+ 0x55, 0x9b, 0x60, 0x6b,
+ 0x72, 0x47, 0x98, 0x37, 0xfa, 0xa9, 0x49, 0x4e, 0xac, 0x1e, 0x9e, 0x0a,
+ 0xb2, 0x12, 0x72, 0xcf,
+ 0x11, 0x75, 0x62, 0xb8, 0x5c, 0x7d, 0x24, 0xed, 0x68, 0x7e, 0xc5, 0x2a,
+ 0x16, 0xf3, 0x11, 0x38,
+ 0x06, 0x8a, 0xe7, 0xee, 0x77, 0xaf, 0x67, 0xf0, 0x5a, 0x7b, 0x41, 0x29,
+ 0x21, 0xf4, 0x06, 0xfb,
+ 0x5d, 0xf8, 0x9e, 0xb6, 0x5b, 0x1d, 0x81, 0x5c, 0xd3, 0xe1, 0xab, 0x5f,
+ 0x32, 0x8b, 0x5d, 0xfe,
+ 0xe0, 0xc3, 0x49, 0xda, 0x6d, 0x5b, 0x69, 0x3c, 0xf7, 0x6e, 0x81, 0x9b,
+ 0x99, 0x3d, 0xe0, 0x4e,
+ 0x86, 0x3e, 0xc6, 0xcc, 0x66, 0x96, 0xb1, 0x17, 0x44, 0xa9, 0x5a, 0x67,
+ 0xed, 0x52, 0x86, 0xde,
+ 0xaa, 0xc4, 0x52, 0x3a, 0x1d, 0x94, 0xab, 0x7d, 0x16, 0x8a, 0xae, 0xc7,
+ 0x9c, 0xb1, 0xaa, 0x73,
+ 0x58, 0x37, 0xeb, 0x2f, 0xf6, 0x04, 0x34, 0xd4, 0xa4, 0x46, 0x2b, 0x83,
+ 0xe2, 0x05, 0x58, 0x99,
+ 0x24, 0x60, 0x23, 0x5d, 0xcf, 0x55, 0x2f, 0xe9, 0x8a, 0x87, 0x08, 0x7d,
+ 0x0d, 0xd1, 0x24, 0x8b,
+ 0xdf, 0x8b, 0xe2, 0xce, 0x67, 0x41, 0xcb, 0xeb, 0xfb, 0x1a, 0x8f, 0xb7,
+ 0xe1, 0xc0, 0xdf, 0x33,
+ 0x69, 0x6f, 0x10, 0x7e, 0x3f, 0xe6, 0xc4, 0x70, 0x2a, 0xed, 0x98, 0x5b,
+ 0xc7, 0x3e, 0x69, 0x39,
+ 0x7a, 0xdd, 0x2f, 0x9c, 0x4e, 0xfe, 0x7c, 0xcd, 0x74, 0xba, 0x62, 0xd7,
+ 0xce, 0x20, 0x7a, 0xe9,
+ 0x67, 0x7f, 0x40, 0x3b, 0xfc, 0x1e, 0x96, 0x03, 0xa8, 0x32, 0x25, 0xaf,
+ 0x9a, 0xf8, 0x67, 0xe4,
+ 0xec, 0x14, 0x44, 0xc5, 0x83, 0xc6, 0xa7, 0x1f, 0x43, 0x98, 0x03, 0xc9,
+ 0xdb, 0x16, 0xec, 0x7b,
+ 0x30, 0xda, 0x34, 0x7c, 0x3e, 0x31, 0xbe, 0x8c, 0x95, 0x5e, 0x4d, 0x8b,
+ 0xcb, 0xac, 0x30, 0xd4,
+ 0x6a, 0x2a, 0x82, 0x09, 0xe5, 0x50, 0x16, 0x08, 0x07, 0x31, 0x59, 0xae,
+ 0x36, 0x44, 0x6a, 0xa5,
+ 0x0e, 0x10, 0x50, 0x45, 0xc3, 0xf8, 0x52, 0x73, 0x82, 0xdf, 0xbd, 0xf4,
+ 0x5d, 0xc6, 0x0e, 0xdd,
+ 0x43, 0x1f, 0x63, 0x66, 0x33, 0x4b, 0xb9, 0xea, 0x22, 0xb5, 0x2d, 0xd2,
+ 0x97, 0x29, 0x43, 0x6f,
+ 0x2d, 0x78, 0x5b, 0xdb, 0x8c, 0xd1, 0x54, 0x42, 0x49, 0xd6, 0x0a, 0xf3,
+ 0x9f, 0x74, 0x2d, 0xd9,
+ 0xb3, 0x2b, 0x87, 0x29, 0xf5, 0xbe, 0xba, 0x13, 0xa6, 0x50, 0x97, 0x30,
+ 0xf6, 0x70, 0xb3, 0x6d,
+ 0xe4, 0x8e, 0xf3, 0x6e, 0x37, 0x91, 0x92, 0x9c, 0x9b, 0x3c, 0xff, 0x14,
+ 0xa7, 0x24, 0xe4, 0x5d,
+ 0x22, 0xea, 0xc4, 0xb3, 0xb8, 0xfa, 0x48, 0x19, 0xd0, 0xfc, 0x49, 0x54,
+ 0x2c, 0x25, 0x22, 0x70,
+ 0xab, 0x46, 0x9d, 0x17, 0xea, 0x47, 0xe5, 0x55, 0x0d, 0x7f, 0x50, 0x94,
+ 0x72, 0x26, 0xab, 0x07,
+ 0x3d, 0x8f, 0xf6, 0x4e, 0x27, 0x7f, 0x3e, 0x87, 0x3a, 0x5d, 0x31, 0x8a,
+ 0x67, 0x10, 0x3d, 0x95,
+ 0x34, 0x97, 0x8e, 0xc8, 0x64, 0xfb, 0x45, 0x2c, 0xf9, 0x0c, 0x33, 0x04,
+ 0xf5, 0xb5, 0x34, 0xc7,
+ 0x90, 0x43, 0x8c, 0xb7, 0xba, 0x97, 0xbc, 0x22, 0x6d, 0x59, 0x20, 0x37,
+ 0x34, 0xc2, 0x90, 0x69,
+ 0x97, 0x4b, 0xa4, 0x74, 0x3a, 0xeb, 0x95, 0xfa, 0x2c, 0xd7, 0x9f, 0x4d,
+ 0xfb, 0xa1, 0x97, 0xe6,
+ 0xb0, 0x6e, 0x15, 0x5e, 0x2f, 0x08, 0x68, 0x6b, 0x8b, 0x8c, 0x56, 0xc5,
+ 0x07, 0x0a, 0xb0, 0xf1,
+ 0xe5, 0x0c, 0x3c, 0x43, 0xc0, 0x42, 0xdc, 0xb4, 0x80, 0xc9, 0x01, 0x47,
+ 0x49, 0xb3, 0xe5, 0x29,
+ 0x42, 0x9d, 0xac, 0x4b, 0xc4, 0x98, 0xf7, 0xc2, 0x39, 0x40, 0xd3, 0x81,
+ 0x79, 0xbe, 0x42, 0x1b,
+ 0x79, 0x98, 0xbd, 0xeb, 0x94, 0x48, 0xae, 0xb5, 0x59, 0x66, 0xa3, 0x22,
+ 0x3f, 0x5a, 0x79, 0x75,
+ 0xc0, 0xee, 0xd0, 0x33, 0xf8, 0xc4, 0xbd, 0x75, 0x11, 0xbb, 0xf7, 0x69,
+ 0xaa, 0xf5, 0xc0, 0xd6,
+ 0x18, 0x6d, 0x1a, 0x3e, 0x1f, 0xf9, 0x5f, 0x46, 0xab, 0x2f, 0xc7, 0xa4,
+ 0x84, 0x56, 0x18, 0x6a,
+ 0x4b, 0x85, 0xd4, 0xcd, 0x87, 0x1c, 0x8c, 0x69, 0xfa, 0x11, 0xd1, 0x0f,
+ 0xeb, 0x1b, 0x4b, 0x49,
+ 0xf7, 0x3c, 0xcc, 0x8c, 0x46, 0x89, 0x2a, 0x21, 0xc5, 0x6b, 0x05, 0x98,
+ 0xae, 0x3a, 0xf7, 0x8d,
+ 0xb8, 0xf4, 0xa2, 0xf5, 0x9b, 0x5f, 0x5d, 0xe8, 0x53, 0x28, 0xaa, 0x18,
+ 0x7b, 0x38, 0xb8, 0xd7,
+ 0xa6, 0x13, 0x5f, 0x25, 0xf3, 0x09, 0x65, 0x5e, 0xa2, 0x7c, 0x2c, 0x95,
+ 0xde, 0x9a, 0xa6, 0x46,
+ 0x59, 0xb5, 0x24, 0x02, 0x01, 0xd7, 0x7a, 0xfc, 0xbf, 0xb3, 0xd5, 0xd0,
+ 0x0c, 0x92, 0x59, 0xed,
+ 0x64, 0x3a, 0xd2, 0x4c, 0x26, 0xa8, 0x44, 0x7b, 0x85, 0xee, 0xe4, 0x5a,
+ 0x6b, 0x82, 0x64, 0x78,
+ 0x36, 0x50, 0xd3, 0x92, 0x49, 0x9e, 0xd9, 0x7c, 0xcf, 0x25, 0x0c, 0xa2,
+ 0xea, 0x58, 0x36, 0x2f,
+ 0xb4, 0x23, 0xaf, 0xea, 0x75, 0xc2, 0x93, 0xcb, 0xe7, 0xde, 0x28, 0x4a,
+ 0x39, 0x13, 0xb4, 0xe2,
+ 0x81, 0x36, 0xee, 0x0f, 0xe6, 0xea, 0x98, 0xcf, 0x05, 0x27, 0xe5, 0x1d,
+ 0x22, 0x31, 0x81, 0x51,
+ 0x09, 0x18, 0x78, 0x86, 0x43, 0x84, 0x7b, 0xab, 0xc3, 0x51, 0x02, 0x8e,
+ 0x92, 0xa5, 0x09, 0x52,
+ 0x78, 0x1a, 0x72, 0xc6, 0x63, 0x9b, 0xe0, 0x9d, 0x42, 0x93, 0x5d, 0x71,
+ 0xd1, 0xcd, 0x78, 0x01,
+ 0xed, 0x96, 0x8b, 0xe8, 0x74, 0x15, 0xe9, 0x37, 0x58, 0x6d, 0xfd, 0x9a,
+ 0x35, 0x81, 0xed, 0x0f,
+ 0x5f, 0x3f, 0xc3, 0xec, 0x76, 0x78, 0x1d, 0x0c, 0xe5, 0xc8, 0x94, 0xf9,
+ 0x2d, 0x66, 0x5f, 0x16,
+ 0xda, 0x44, 0x97, 0x57, 0xca, 0x58, 0x7e, 0x63, 0x8c, 0xbd, 0x0f, 0x6b,
+ 0x31, 0x4e, 0xda, 0x54,
+ 0xc4, 0xa3, 0x6a, 0x87, 0xa2, 0x0e, 0x46, 0xd5, 0x7d, 0xe9, 0x89, 0xe6,
+ 0x94, 0xec, 0xc4, 0xc5,
+ 0x29, 0x35, 0xe1, 0x6f, 0xd6, 0x1b, 0xaf, 0xe2, 0x25, 0x84, 0x74, 0x7c,
+ 0xa1, 0x6d, 0x29, 0xca,
+ 0xad, 0xcc, 0x7a, 0xf9, 0x9d, 0xe8, 0x82, 0xa5, 0x57, 0x04, 0x11, 0xbd,
+ 0x53, 0xd2, 0xad, 0xfc,
+ 0x07, 0x08, 0x28, 0xc3, 0x80, 0x7c, 0x29, 0xd8, 0x41, 0x8e, 0xbf, 0x7a,
+ 0xcf, 0x63, 0x07, 0x8f,
+ 0x82, 0x73, 0x7c, 0x78, 0x3c, 0x5c, 0x4a, 0xb7, 0x28, 0xfb, 0x24, 0xe8,
+ 0xd3, 0x4b, 0x82, 0xcd,
+ 0xe2, 0x04, 0x14, 0x80, 0x40, 0x3e, 0xf5, 0x6c, 0xc1, 0x47, 0xbe, 0x3d,
+ 0x86, 0xd0, 0xe2, 0xa6,
+ 0x31, 0x58, 0xfb, 0x51, 0xc9, 0xe2, 0xf0, 0xa4, 0x8e, 0xab, 0xb3, 0xd8,
+ 0x25, 0x3b, 0x31, 0xa0,
+ 0x17, 0xff, 0x85, 0x56, 0x2b, 0xd2, 0x43, 0x1d, 0x32, 0x05, 0x84, 0x03,
+ 0x37, 0x07, 0x17, 0xc3,
+ 0x9f, 0xd1, 0x13, 0xdf, 0x8e, 0xbc, 0xa0, 0x79, 0xf4, 0x73, 0x63, 0x90,
+ 0x87, 0x93, 0x9f, 0xc0,
+ 0x0b, 0xdf, 0x25, 0xdc, 0x6e, 0xe1, 0xe7, 0xfb, 0xf5, 0x78, 0x3d, 0x28,
+ 0x8d, 0x48, 0x0b, 0xba,
+ 0x16, 0x7d, 0x4a, 0x7b, 0xdc, 0x01, 0x0d, 0x35, 0x29, 0xf0, 0x7a, 0x50,
+ 0xd9, 0x90, 0x16, 0xb7,
+ 0x7f, 0x12, 0x5a, 0x05, 0xe3, 0xe7, 0xc9, 0x45, 0x03, 0x1d, 0xe2, 0x0b,
+ 0x1e, 0xae, 0x7f, 0x8e,
+ 0x23, 0x68, 0x0b, 0x9e, 0x4f, 0x29, 0x06, 0x31, 0xcb, 0x09, 0xb7, 0x07,
+ 0xc2, 0xb2, 0x23, 0x04,
+ 0x6b, 0xa8, 0x4d, 0x24, 0x12, 0x83, 0x58, 0x20, 0x1c, 0xc4, 0xa7, 0xfd,
+ 0xd8, 0xd3, 0x6b, 0xd1,
+ 0xa9, 0x81, 0xc0, 0x4d, 0xc7, 0x22, 0x79, 0x05, 0x3b, 0x56, 0x6f, 0x32,
+ 0x6d, 0xcb, 0xa9, 0xef,
+ 0x8b, 0x6b, 0x04, 0xfe, 0x7f, 0xd8, 0x31, 0x1c, 0xeb, 0xaa, 0x26, 0x66,
+ 0x41, 0xee, 0x8b, 0x9f,
+ 0xb7, 0x66, 0x3d, 0x9d, 0xaf, 0x74, 0x41, 0xb3, 0xca, 0x02, 0xe9, 0xbf,
+ 0xc8, 0x69, 0xb7, 0x7e,
+ 0x13, 0xb2, 0x3f, 0xe2, 0x71, 0x18, 0xb8, 0xbd, 0x5e, 0x57, 0xfa, 0x8c,
+ 0x09, 0x1e, 0x13, 0xd0,
+ 0x1c, 0x20, 0xa0, 0x8a, 0x45, 0x33, 0xa4, 0xe6, 0xc7, 0x7d, 0xb9, 0x2b,
+ 0xba, 0x4f, 0x1c, 0x79,
+ 0xfb, 0xeb, 0xc1, 0x93, 0xa8, 0x14, 0xe4, 0x02, 0x71, 0x9d, 0x87, 0xca,
+ 0xec, 0x11, 0xfb, 0xb8,
+ 0x62, 0xb0, 0x35, 0xa2, 0x51, 0x07, 0x23, 0x8b, 0xdf, 0x95, 0xa5, 0x73,
+ 0x4a, 0x76, 0x62, 0x83,
+ 0xf2, 0xf3, 0xb9, 0x15, 0xeb, 0x90, 0x9f, 0xa9, 0xb2, 0xcc, 0x85, 0x44,
+ 0x7e, 0xb4, 0xf2, 0xea,
+ 0x3b, 0x05, 0x11, 0xa0, 0x50, 0xd0, 0x59, 0x77, 0x60, 0x26, 0x70, 0xa3,
+ 0x46, 0xe4, 0x3b, 0x6e,
+ 0x9a, 0x1e, 0x66, 0x46, 0x23, 0xa5, 0x15, 0xf1, 0x83, 0xd4, 0xe3, 0x4c,
+ 0x57, 0x1d, 0x9a, 0xa7,
+ 0x75, 0x4f, 0xb0, 0xf4, 0x7a, 0xd5, 0x60, 0x96, 0xed, 0x90, 0x21, 0x70,
+ 0x7d, 0x71, 0x75, 0x40,
+ 0xea, 0x9e, 0xa3, 0x2b, 0xf4, 0x69, 0xc0, 0xef, 0x19, 0xe3, 0x42, 0xe0,
+ 0xfa, 0xe2, 0xea, 0x80,
+ 0xd0, 0x19, 0x7d, 0xa6, 0x53, 0x6a, 0xd7, 0xb0, 0x62, 0x30, 0xcc, 0x10,
+ 0x52, 0x91, 0xd0, 0x9a,
+ 0x2a, 0x70, 0x73, 0x18, 0x0c, 0xad, 0x7d, 0x9a, 0x08, 0x58, 0xb5, 0x89,
+ 0x50, 0x17, 0x2a, 0x56,
+ 0x91, 0xc1, 0x43, 0x9a, 0x4d, 0x44, 0xf2, 0x0a, 0x76, 0xac, 0xde, 0x64,
+ 0xda, 0x55, 0x91, 0x1d,
+ 0x02, 0xc7, 0x5d, 0x5a, 0x2d, 0x65, 0x9c, 0x50, 0x36, 0x29, 0x3f, 0xa6,
+ 0x1f, 0xed, 0x02, 0xe8,
+ 0x46, 0xd0, 0x16, 0xff, 0x9e, 0x52, 0x0c, 0x62, 0x55, 0x12, 0xad, 0x0e,
+ 0x47, 0xa7, 0x46, 0x08,
+ 0xa7, 0x91, 0x90, 0x08, 0x04, 0xda, 0x2b, 0x76, 0xb9, 0x89, 0xd2, 0xc6,
+ 0x30, 0x0d, 0xa7, 0x32,
+ 0xdc, 0xce, 0x70, 0xb9, 0xbd, 0xf7, 0x19, 0x93, 0xd6, 0xc6, 0x4e, 0x42,
+ 0x10, 0xba, 0xdc, 0xaf,
+ 0x27, 0x25, 0xb1, 0x2a, 0x15, 0xe3, 0xfd, 0x91, 0xa7, 0x5b, 0xc9, 0x88,
+ 0xfc, 0xab, 0x27, 0x17,
+ 0x76, 0x0a, 0x22, 0x83, 0xa0, 0x63, 0xb2, 0xee, 0xc0, 0x4c, 0xe0, 0x85,
+ 0x8c, 0x0b, 0x76, 0xdc,
+ 0xa4, 0xd4, 0x02, 0x7f, 0xde, 0x6c, 0xf9, 0x0e, 0x94, 0x55, 0x13, 0x33,
+ 0xc1, 0x77, 0xa4, 0xae,
+ 0xca, 0xb3, 0x3a, 0xc2, 0x61, 0xf6, 0x14, 0xa6, 0xff, 0x36, 0x34, 0x12,
+ 0xc9, 0x2a, 0xca, 0x18,
+ 0x96, 0xc9, 0x6b, 0x59, 0xcd, 0x38, 0xdb, 0xd2, 0x37, 0x22, 0x61, 0x1e,
+ 0x15, 0x36, 0x96, 0x92,
+ 0x70, 0x80, 0xc5, 0x6d, 0xd7, 0xcc, 0xd5, 0x1e, 0x9a, 0x37, 0xa1, 0xac,
+ 0xad, 0xff, 0x70, 0x27,
+ 0x54, 0xe0, 0xe6, 0x30, 0x18, 0x99, 0xfa, 0xf7, 0x10, 0xb0, 0xa9, 0xd1,
+ 0xa0, 0x2e, 0x54, 0xac,
+ 0xe1, 0x41, 0x86, 0xf7, 0x9a, 0x88, 0x27, 0x14, 0xec, 0x9b, 0x7f, 0xc8,
+ 0x77, 0xaa, 0xe1, 0x3a,
+ 0x6f, 0xe5, 0xf7, 0x90, 0x48, 0x49, 0xa3, 0x80, 0x70, 0x96, 0xd9, 0x72,
+ 0xe6, 0xca, 0x6f, 0xc2,
+ 0x39, 0xc2, 0x4c, 0xfa, 0x7d, 0xb5, 0xc5, 0x27, 0x56, 0x0f, 0x4f, 0x05,
+ 0x59, 0x09, 0x39, 0x86,
+ 0x33, 0x9f, 0xa6, 0x0b, 0xe4, 0x87, 0x6c, 0xf4, 0xb8, 0x82, 0x8c, 0x7e,
+ 0x3a, 0xd6, 0x33, 0x48,
+ 0xdb, 0xc6, 0x58, 0x7a, 0x3d, 0x8b, 0x30, 0x4b, 0x97, 0x48, 0xf1, 0x38,
+ 0xdf, 0xd9, 0xdb, 0x20,
+ 0xa0, 0x99, 0xb8, 0xcb, 0x84, 0xa6, 0x02, 0xae, 0xf8, 0x07, 0x6d, 0xbc,
+ 0xff, 0x6e, 0xa0, 0xbd,
+ 0xfe, 0x24, 0xb4, 0x0a, 0x05, 0x0d, 0x51, 0x8a, 0x06, 0x3a, 0x07, 0x16,
+ 0x3c, 0x9f, 0xfe, 0xdf,
+ 0xb2, 0xa9, 0x48, 0x04, 0x02, 0x6d, 0xf4, 0x3b, 0xbd, 0xa5, 0x69, 0x63,
+ 0x18, 0xe7, 0xb2, 0x19,
+ 0x10, 0xf7, 0xad, 0x95, 0xab, 0xae, 0x6a, 0xc5, 0x73, 0x8b, 0x3b, 0x79,
+ 0xf8, 0x64, 0x10, 0x4c,
+ 0x71, 0x02, 0x0a, 0x40, 0x20, 0x1f, 0x9b, 0x36, 0x81, 0xc2, 0x5f, 0xff,
+ 0x43, 0x68, 0x71, 0x53,
+ 0x87, 0xbc, 0x09, 0xe1, 0x91, 0x45, 0xff, 0x3f, 0x5f, 0x5c, 0xa4, 0x34,
+ 0x03, 0xc5, 0x87, 0xaa,
+ 0x35, 0x15, 0x41, 0xe5, 0x93, 0x28, 0x0b, 0x04, 0xe2, 0xf9, 0xcd, 0x57,
+ 0x1b, 0x22, 0x35, 0xb3,
+ 0x38, 0x40, 0x83, 0xd7, 0x8a, 0x66, 0x8b, 0x0f, 0x4d, 0xfa, 0xb1, 0x56,
+ 0xb7, 0x9e, 0x38, 0xf2,
+ 0x52, 0x6a, 0x01, 0xde, 0x6f, 0x36, 0x9d, 0x07, 0x4a, 0xcb, 0xe8, 0xf8,
+ 0x81, 0xda, 0x52, 0x57,
+ 0x65, 0xb8, 0x1d, 0x61, 0xd1, 0x7b, 0x0a, 0x53, 0x9e, 0x1b, 0x1a, 0x09,
+ 0x85, 0x15, 0x65, 0x0c,
+ 0xde, 0x09, 0x2d, 0xe3, 0x90, 0x92, 0x85, 0xc3, 0xe0, 0xef, 0x71, 0xe4,
+ 0x0f, 0x57, 0xde, 0x47,
+ 0x8e, 0xa4, 0x71, 0x67, 0xd2, 0xc1, 0x84, 0x94, 0x9c, 0x0d, 0xa6, 0xba,
+ 0x91, 0x60, 0x8e, 0xf8,
+ 0xa8, 0x03, 0x0f, 0x60, 0x30, 0xf1, 0x37, 0x2d, 0x20, 0xa3, 0x91, 0x61,
+ 0x83, 0x5c, 0xa8, 0x9b,
+ 0xfd, 0x61, 0x26, 0x7d, 0xdf, 0xbb, 0x83, 0xf2, 0x2b, 0xe6, 0xc6, 0xe3,
+ 0xcd, 0xe5, 0xfd, 0x43,
+ 0x2e, 0x3d, 0xc9, 0xac, 0x56, 0x67, 0x86, 0x3a, 0x64, 0x0a, 0xcb, 0x06,
+ 0x6e, 0x0e, 0x2e, 0x45,
+ 0x01, 0x82, 0xcf, 0x2d, 0xf7, 0xd3, 0x4e, 0x28, 0x1b, 0xf5, 0xfe, 0x53,
+ 0xee, 0x97, 0x01, 0x74,
+ 0xf8, 0xae, 0x53, 0xe4, 0x72, 0xa2, 0x36, 0x7a, 0x5c, 0x41, 0x46, 0x3f,
+ 0x1d, 0x6b, 0xf8, 0x24,
+ 0x8c, 0x63, 0x2c, 0x3d, 0xff, 0xa4, 0x18, 0xc4, 0xaa, 0x24, 0x99, 0x1c,
+ 0x8e, 0x8d, 0x8c, 0x10,
+ 0xbb, 0xb1, 0x30, 0x82, 0x41, 0xe9, 0x8f, 0x90, 0x7e, 0xf4, 0x6b, 0xed,
+ 0x8a, 0x42, 0xbb, 0x4b,
+ 0x49, 0x42, 0x89, 0x97, 0xaa, 0x79, 0x10, 0x39, 0xcc, 0x38, 0xee, 0xa9,
+ 0xf4, 0xf6, 0x49, 0xa1,
+ 0x44, 0x17, 0x4b, 0xa5, 0xb3, 0x37, 0x90, 0x32, 0x63, 0x3b, 0x92, 0xa8,
+ 0x58, 0x4a, 0x44, 0xe0,
+ 0xbf, 0xfc, 0x8a, 0x36, 0x1b, 0x23, 0x74, 0x30, 0x12, 0xa6, 0x15, 0x62,
+ 0xb4, 0x5b, 0xbf, 0x58,
+ 0xef, 0x51, 0xd6, 0xb2, 0x59, 0x70, 0x75, 0x67, 0x6e, 0x44, 0xc2, 0x3c,
+ 0x2a, 0x6c, 0xef, 0xe7,
+ 0xfc, 0xe3, 0xe9, 0x50, 0x28, 0x68, 0xcd, 0xda, 0x30, 0x13, 0x38, 0xb0,
+ 0x23, 0x72, 0xfc, 0x37,
+ 0x3a, 0x87, 0xde, 0x8d, 0xa7, 0x03, 0x17, 0x5f, 0x7b, 0xd3, 0x8e, 0xf0,
+ 0xa8, 0x73, 0x3a, 0x1a,
+ 0xb1, 0xec, 0xda, 0x73, 0xd8, 0xdb, 0x26, 0x43, 0x90, 0x79, 0xa8, 0x96,
+ 0xe9, 0x9d, 0xb1, 0x85,
+ 0xf9, 0x2c, 0x9c, 0xc9, 0x85, 0x71, 0x78, 0x52, 0x47, 0xb4, 0xb8, 0x6c,
+ 0xf3, 0xfc, 0xf9, 0x50,
+ 0x99, 0x5b, 0xf4, 0x31, 0xf9, 0x13, 0xc7, 0x89, 0xae, 0x08, 0x22, 0xb9,
+ 0xa6, 0x67, 0x99, 0x3b,
+ 0xd8, 0x83, 0xca, 0x0d, 0xe7, 0x3d, 0xe2, 0x33, 0xba, 0x94, 0x30, 0xcd,
+ 0x2e, 0xa3, 0xd8, 0xbc,
+ 0xc9, 0xf6, 0xa8, 0xb5, 0xbb, 0x40, 0xc6, 0xde, 0xd2, 0xea, 0xf5, 0xe7,
+ 0x38, 0x50, 0xc9, 0x84,
+ 0x61, 0xf5, 0xa7, 0xd5, 0x8b, 0xb1, 0xf1, 0xf3, 0xf2, 0x49, 0x64, 0x86,
+ 0xbb, 0x0c, 0x61, 0x1f,
+ 0x3c, 0x0d, 0x39, 0x63, 0xd0, 0xac, 0x70, 0xaf, 0x21, 0xa8, 0xcf, 0xd9,
+ 0x89, 0x87, 0x3c, 0xe1,
+ 0x89, 0xac, 0x59, 0xa4, 0x52, 0xbd, 0xad, 0x4c, 0xdd, 0x83, 0x19, 0xc0,
+ 0x5e, 0x03, 0x89, 0x77,
+ 0x0f, 0x92, 0x9f, 0x68, 0x34, 0x2b, 0x1c, 0x5b, 0x99, 0x2a, 0x43, 0xa7,
+ 0xb3, 0x51, 0x0f, 0xa9,
+ 0x5c, 0x7a, 0x51, 0x9b, 0xac, 0xce, 0xcf, 0x74, 0xc8, 0x14, 0x55, 0x0c,
+ 0xdc, 0x1c, 0x5c, 0x8a,
+ 0xbe, 0x7e, 0x45, 0x1b, 0xec, 0xf0, 0x3a, 0x18, 0x09, 0x53, 0xeb, 0x31,
+ 0x5a, 0xcc, 0xbe, 0x2c,
+ 0xc2, 0x29, 0x8d, 0x69, 0xd5, 0xa1, 0x21, 0x25, 0x27, 0x92, 0xc8, 0xcf,
+ 0xb5, 0x18, 0xc2, 0x3e,
+ 0xc5, 0x21, 0xa5, 0xaa, 0x55, 0xdd, 0x08, 0xfd, 0x66, 0x1c, 0x77, 0xb5,
+ 0x7a, 0x7b, 0xc5, 0xb1,
+ 0x88, 0x2e, 0x96, 0x89, 0xa5, 0x6e, 0xe3, 0x64, 0xc6, 0x76, 0xe7, 0x93,
+ 0xb0, 0x94, 0x88, 0x03,
+ 0xa1, 0x1b, 0x77, 0xe6, 0x73, 0x75, 0x4c, 0x86, 0xe3, 0xf2, 0x93, 0xef,
+ 0x11, 0xf9, 0xa1, 0xc9,
+ 0x1d, 0xa2, 0x6f, 0xa7, 0xb2, 0xe0, 0xea, 0xce, 0xdc, 0x88, 0x47, 0x78,
+ 0x54, 0xd8, 0x1d, 0x0d,
+ 0xc7, 0xe6, 0xf8, 0xf0, 0x78, 0xb8, 0x94, 0xad, 0x50, 0x35, 0x48, 0x13,
+ 0x65, 0x96, 0xc7, 0x59,
+ 0x6c, 0xa0, 0x65, 0xe7, 0x92, 0xff, 0x71, 0xf8, 0x5d, 0x4a, 0x18, 0x87,
+ 0x17, 0xb0, 0x6c, 0x5e,
+ 0x85, 0x7b, 0x54, 0xbb, 0xbc, 0x20, 0x63, 0x6f, 0x69, 0x75, 0x9b, 0x92,
+ 0x1c, 0x28, 0x85, 0x42,
+ 0x9d, 0x16, 0x4e, 0x85, 0xa3, 0xd9, 0x3c, 0x29, 0xc2, 0x5a, 0x5c, 0x36,
+ 0x98, 0x7e, 0x9d, 0x28,
+ 0xd3, 0x5c, 0xef, 0xd1, 0x89, 0xdc, 0x05, 0xc8, 0x4f, 0xec, 0x0d, 0xe5,
+ 0xa3, 0xeb, 0xd3, 0x06,
+ 0xd1, 0x9b, 0xb2, 0x8b, 0xa4, 0xb9, 0x99, 0x98, 0x79, 0xc5, 0x32, 0x43,
+ 0xbc, 0x06, 0xd1, 0xee,
+ 0x1e, 0xe7, 0xfd, 0xd0, 0x68, 0x56, 0x38, 0xb6, 0xf1, 0x54, 0x86, 0x8d,
+ 0xa5, 0xa2, 0x1e, 0x91,
+ 0x3e, 0xca, 0x64, 0x39, 0xfd, 0xc9, 0xec, 0xff, 0x17, 0x81, 0xf0, 0x7f,
+ 0x96, 0x6a, 0x3e, 0x09,
+ 0x84, 0xf9, 0x9b, 0x96, 0x4b, 0xf3, 0x2d, 0x47, 0x72, 0x80, 0x65, 0xc1,
+ 0xf2, 0xbf, 0x84, 0x36,
+ 0x2f, 0xbf, 0x06, 0x81, 0xa1, 0xb4, 0xc8, 0x12, 0x7f, 0xff, 0x35, 0x55,
+ 0x80, 0x99, 0x2f, 0x31,
+ 0x7d, 0xd5, 0x07, 0x5f, 0xce, 0x82, 0x55, 0x15, 0x35, 0x34, 0xdd, 0xad,
+ 0x01, 0x43, 0x7d, 0x66,
+ 0x74, 0xcd, 0x7f, 0xd9, 0x8d, 0x06, 0x2e, 0xbe, 0xf6, 0x65, 0xdf, 0x23,
+ 0x93, 0xe6, 0x74, 0x34,
+ 0x41, 0xd8, 0x3e, 0x3c, 0x1e, 0x2e, 0x25, 0xba, 0x14, 0x9c, 0x12, 0x74,
+ 0x88, 0xc4, 0x41, 0x87,
+ 0x50, 0xad, 0x5c, 0x84, 0x42, 0x53, 0x01, 0x57, 0x7c, 0xe2, 0xd7, 0x5e,
+ 0x9e, 0x37, 0x50, 0xbf,
+ 0x21, 0xaf, 0x56, 0xc4, 0x62, 0x4c, 0x9a, 0x61, 0xfd, 0x20, 0x88, 0xa1,
+ 0xdd, 0x5f, 0x21, 0xec,
+ 0x55, 0x62, 0x29, 0x1d, 0xef, 0x4a, 0xb4, 0xdf, 0x0b, 0x45, 0x57, 0x82,
+ 0x4e, 0xb9, 0x55, 0xd8,
+ 0xe7, 0xcb, 0x61, 0x19, 0xed, 0x27, 0x40, 0xe4, 0xb6, 0xe0, 0x3e, 0xe1,
+ 0x56, 0x5e, 0xe7, 0xc1,
+ 0xcd, 0xbb, 0x12, 0x01, 0xe1, 0x8a, 0x3d, 0x7e, 0xbe, 0xb8, 0x8b, 0x68,
+ 0x06, 0x49, 0xcd, 0x97,
+ 0x0d, 0x55, 0xc2, 0x32, 0x19, 0x4e, 0x80, 0x0b, 0xaf, 0x03, 0x7c, 0x01,
+ 0xac, 0xbc, 0x0d, 0x41,
+ 0x7c, 0x57, 0xc8, 0x72, 0x39, 0x51, 0x1b, 0x3d, 0x2e, 0xc1, 0x23, 0xfe,
+ 0xef, 0xd4, 0x7c, 0x12,
+ 0x37, 0xd2, 0x1c, 0xbf, 0xbe, 0x4d, 0x97, 0x54, 0xd4, 0xd0, 0xf2, 0xf1,
+ 0x04, 0xcf, 0x37, 0x5b,
+ 0x1a, 0xaa, 0x47, 0x64, 0x32, 0x9c, 0xc3, 0x16, 0x9d, 0x06, 0xf8, 0x02,
+ 0x9b, 0xbb, 0x1a, 0x82,
+ 0xa2, 0x5e, 0xe5, 0x91, 0xa9, 0xc3, 0x9e, 0xfe, 0xce, 0x2e, 0x52, 0x1a,
+ 0xe0, 0x83, 0xa2, 0x55,
+ 0xaf, 0x0b, 0x27, 0xa3, 0xb0, 0x8d, 0x1e, 0xf5, 0x61, 0x2d, 0x2e, 0x1b,
+ 0x4c, 0x3f, 0xaf, 0x14,
+ 0xf6, 0xbe, 0x03, 0xa1, 0xb1, 0x5a, 0x64, 0x09, 0xde, 0x9e, 0xfb, 0xcb,
+ 0x40, 0xad, 0xf6, 0xf9,
+ 0xe8, 0x59, 0xfe, 0x71, 0xd9, 0x0c, 0x5c, 0xbf, 0x2f, 0xca, 0x7d, 0x46,
+ 0xe5, 0x0f, 0xe8, 0x68,
+ 0x7e, 0x90, 0x95, 0x28, 0x14, 0x34, 0x87, 0x6d, 0x18, 0xe8, 0x1c, 0x58,
+ 0xf0, 0x39, 0x7e, 0xfa,
+ 0x5e, 0xbd, 0x0c, 0xc1, 0x81, 0xab, 0x53, 0x24, 0xfe, 0x3d, 0x6a, 0xaa,
+ 0xc3, 0xf1, 0x5e, 0x62,
+ 0xfa, 0x69, 0x0e, 0xbe, 0x5f, 0xc7, 0xaa, 0x2a, 0x6a, 0x68, 0x79, 0x99,
+ 0x02, 0x86, 0xfa, 0xcc,
+ 0xb5, 0xa1, 0x60, 0xc7, 0x82, 0x11, 0xdd, 0xe3, 0xfc, 0x2b, 0xd6, 0x19,
+ 0xd7, 0x84, 0xb5, 0x96,
+ 0x92, 0x84, 0xd1, 0xed, 0x97, 0xf2, 0x20, 0x72, 0x5b, 0x70, 0x1f, 0x91,
+ 0x2b, 0x2f, 0x92, 0x81,
+ 0x56, 0x27, 0xbb, 0x6a, 0x35, 0xfc, 0x66, 0xa7, 0x26, 0x99, 0x96, 0x77,
+ 0xbf, 0xc3, 0x56, 0x44,
+ 0xf1, 0xb6, 0x2b, 0x62, 0x31, 0x26, 0x4d, 0xd1, 0x9f, 0x10, 0x44, 0xb1,
+ 0x8f, 0xce, 0xf1, 0x76,
+ 0x04, 0x4d, 0xba, 0xb4, 0x5a, 0xca, 0xfb, 0xa0, 0x6c, 0x52, 0x7e, 0x8f,
+ 0x3e, 0x19, 0x04, 0x13,
+ 0x6e, 0x67, 0x38, 0xbd, 0xbf, 0x9a, 0xed, 0xa8, 0x6b, 0x63, 0x27, 0x21,
+ 0x08, 0x5d, 0x6e, 0xb6,
+ 0xa5, 0x56, 0xcd, 0x52, 0x29, 0xbf, 0xb7, 0x26, 0x8f, 0xa0, 0xed, 0x60,
+ 0x2f, 0xe0, 0xa5, 0xda,
+ 0xe6, 0x49, 0xae, 0x34, 0x1a, 0xf4, 0x0e, 0xcc, 0xad, 0x15, 0xc0, 0xb2,
+ 0xb8, 0xc9, 0xe6, 0xb5,
+ 0xc8, 0x74, 0x67, 0x98, 0x4c, 0x93, 0x88, 0xf6, 0xc9, 0x1f, 0x0b, 0xb4,
+ 0xd6, 0xc7, 0xc8, 0xf0,
+ 0x7b, 0x5f, 0xe0, 0xb1, 0xb9, 0x2d, 0x32, 0xe5, 0x6f, 0x4f, 0x9c, 0x84,
+ 0x20, 0xb7, 0x7b, 0x9d,
+ 0x73, 0xc5, 0x57, 0x1a, 0x0d, 0x7a, 0x07, 0x66, 0xb7, 0xeb, 0x60, 0x59,
+ 0x5c, 0x85, 0x73, 0xbb,
+ 0x51, 0x2f, 0x93, 0xa9, 0xb5, 0x80, 0x4f, 0x7f, 0x67, 0x17, 0x29, 0x0d,
+ 0x70, 0xa0, 0x51, 0xcb,
+ 0x95, 0x8c, 0xf9, 0x2e, 0x17, 0x8e, 0x09, 0xaa, 0x1a, 0xfe, 0xa0, 0xeb,
+ 0xe4, 0x4c, 0x95, 0x0e,
+ 0x66, 0xfd, 0x8f, 0x16, 0x0b, 0xcd, 0xd8, 0x2b, 0xb3, 0xc7, 0xdb, 0xfc,
+ 0x74, 0x6f, 0x66, 0x90,
+ 0xd6, 0x93, 0x9a, 0x48, 0x24, 0xc5, 0xb0, 0x40, 0x38, 0x4b, 0x8d, 0x39,
+ 0x73, 0x65, 0xd6, 0x61,
+ 0x5b, 0x72, 0x79, 0x58, 0x2c, 0xb2, 0xe6, 0xac, 0x89, 0x9a, 0xea, 0x76,
+ 0x13, 0x7f, 0x5b, 0x05,
+ 0xe3, 0x86, 0xdb, 0xad, 0xb7, 0xed, 0xbb, 0x44, 0xda, 0xb2, 0x40, 0x6e,
+ 0x68, 0x47, 0xe3, 0xd2,
+ 0x63, 0x32, 0xfa, 0x8f, 0xa6, 0xd4, 0x6d, 0xa3, 0xc4, 0x60, 0x5b, 0x20,
+ 0xa4, 0xe1, 0x63, 0xf7,
+ 0x9b, 0x9c, 0xa9, 0x6b, 0xd4, 0x76, 0x5b, 0xd9, 0x98, 0x21, 0x1d, 0x1f,
+ 0xb9, 0x8a, 0x9b, 0xd3,
+ 0xbd, 0x3b, 0xd7, 0x6c, 0x36, 0x46, 0xe8, 0x60, 0x24, 0x8f, 0x2a, 0xc4,
+ 0xab, 0xb6, 0xbd, 0xb0,
+ 0x77, 0x88, 0xed, 0xae, 0x57, 0xb0, 0xfc, 0xc6, 0xdb, 0xb9, 0x1e, 0xd6,
+ 0x62, 0x9c, 0x77, 0xa8,
+ 0x8d, 0xe1, 0xe3, 0x10, 0x08, 0x77, 0x56, 0xec, 0xb1, 0xd1, 0x67, 0x4f,
+ 0x60, 0x1a, 0x8d, 0x64,
+ 0xbc, 0xb9, 0x18, 0x41, 0xc1, 0x95, 0xa6, 0x48, 0x3f, 0x7a, 0xd4, 0x97,
+ 0x45, 0x21, 0xbc, 0xc4,
+ 0xf3, 0x71, 0x76, 0x38, 0x1c, 0x43, 0xd1, 0x81, 0xa9, 0x39, 0x7b, 0x17,
+ 0x90, 0x23, 0xf3, 0x9e,
+ 0xf4, 0x79, 0x5e, 0xfb, 0x9c, 0x3f, 0xf8, 0x59, 0xe8, 0xb7, 0xc4, 0x6d,
+ 0x5f, 0x40, 0xf4, 0x11,
+ 0x26, 0xa7, 0x7e, 0x07, 0xe2, 0x30, 0xb3, 0xb9, 0xbc, 0xae, 0x37, 0xdb,
+ 0x12, 0x3c, 0x26, 0x63,
+ 0xd4, 0x54, 0xc7, 0x12, 0x09, 0xa0, 0x2c, 0x10, 0x0e, 0x62, 0xb2, 0x9f,
+ 0x6c, 0x88, 0xd4, 0x89,
+ 0x80, 0xb4, 0x21, 0x22, 0x11, 0x39, 0xd6, 0xe7, 0x1e, 0xd2, 0x1b, 0x4e,
+ 0xcc, 0xa6, 0x80, 0x25,
+ 0x93, 0x06, 0x1e, 0xc0, 0x60, 0x21, 0x6e, 0x5a, 0x40, 0x85, 0xe1, 0xc2,
+ 0xc5, 0xb8, 0x93, 0xf5,
+ 0xb6, 0xe4, 0xf2, 0xb0, 0x58, 0xa7, 0x0f, 0x9b, 0xd1, 0xf7, 0x17, 0xec,
+ 0x26, 0xfe, 0xb6, 0x0a,
+ 0x15, 0x38, 0xd8, 0x0c, 0x06, 0xb7, 0xdf, 0x4d, 0x04, 0x2c, 0xbb, 0xa5,
+ 0x28, 0xea, 0x15, 0x2b,
+ 0xcc, 0x39, 0xdd, 0x2c, 0x16, 0x59, 0x73, 0x56, 0xa5, 0x4d, 0x75, 0x3b,
+ 0xe8, 0xde, 0xcc, 0xe3,
+ 0xac, 0x4e, 0xb5, 0xd4, 0x6a, 0x3b, 0xcc, 0x8d, 0x4c, 0xf1, 0xef, 0xee,
+ 0xbd, 0x45, 0xac, 0x88,
+ 0xc1, 0x6c, 0x1f, 0x1e, 0x0f, 0x17, 0xf3, 0x5d, 0x0a, 0x4e, 0x09, 0x3a,
+ 0x44, 0x62, 0xc1, 0xa2,
+ 0xee, 0xd3, 0x19, 0x9f, 0xae, 0xa3, 0x3b, 0x4f, 0x75, 0xb1, 0x3c, 0x6f,
+ 0xc4, 0xfb, 0xee, 0x93,
+ 0xae, 0x89, 0xe8, 0x8e, 0x47, 0x5e, 0x50, 0xdd, 0x7a, 0xd8, 0xd0, 0x48,
+ 0xa2, 0xa8, 0xae, 0x60,
+ 0x9c, 0x94, 0x81, 0xa8, 0x54, 0x0a, 0x72, 0x01, 0xd9, 0xaf, 0xa2, 0x65,
+ 0x76, 0xe9, 0x9c, 0x5c,
+ 0xd9, 0x01, 0x05, 0x20, 0x10, 0xee, 0xac, 0x1b, 0xa1, 0x61, 0xce, 0x9e,
+ 0xc0, 0x34, 0xd9, 0xc8,
+ 0xa3, 0xdc, 0x2a, 0xbc, 0x5e, 0x10, 0xd0, 0xd6, 0xd5, 0xdb, 0xac, 0x49,
+ 0x0e, 0x14, 0xa3, 0x21,
+ 0x25, 0xe2, 0xec, 0x70, 0x38, 0x86, 0x61, 0xc1, 0x91, 0x72, 0xf6, 0x2e,
+ 0xe3, 0x46, 0x25, 0xff,
+ 0xeb, 0x1c, 0x6c, 0x06, 0x03, 0xba, 0x8e, 0xc7, 0x02, 0x16, 0xbc, 0xb3,
+ 0x14, 0x75, 0xeb, 0xf4,
+ 0x40, 0x5a, 0xf1, 0x11, 0xe9, 0xfd, 0x6b, 0x92, 0x0f, 0x69, 0xec, 0x27,
+ 0x66, 0x53, 0x40, 0xf3,
+ 0x48, 0xc0, 0x46, 0xba, 0x5d, 0xaa, 0x5e, 0x11, 0xd7, 0xcd, 0x10, 0xfa,
+ 0x1a, 0x61, 0x48, 0xd5,
+ 0x6d, 0x22, 0xaa, 0xca, 0x65, 0x2c, 0x3f, 0xd0, 0x46, 0xbf, 0xe6, 0xd4,
+ 0xf9, 0x27, 0x6d, 0x2a,
+ 0x28, 0xb7, 0x2e, 0x42, 0x21, 0xc8, 0xe1, 0xca, 0x3e, 0x71, 0x8a, 0x2f,
+ 0x4f, 0xfa, 0x28, 0xbe,
+ 0xff, 0xa6, 0x7b, 0x27, 0xf2, 0xde, 0x1f, 0xa2, 0x1d, 0xcf, 0xf9, 0x45,
+ 0xd2, 0x08, 0xff, 0xab,
+ 0x0a, 0x5d, 0xea, 0xf1, 0x99, 0x32, 0xa9, 0xd3, 0xee, 0x8d, 0xc3, 0x7b,
+ 0x63, 0xdf, 0x0a, 0xce,
+ 0x4f, 0xc8, 0x6e, 0x79, 0xdd, 0xd6, 0x77, 0xc9, 0x96, 0x43, 0xaf, 0x80,
+ 0xd5, 0x02, 0x4f, 0x5a,
+ 0x19, 0xef, 0xd5, 0x13, 0xe8, 0x2a, 0x11, 0x6e, 0xb0, 0xda, 0x39, 0xf7,
+ 0x6a, 0xc1, 0x19, 0x1e,
+ 0x53, 0xe8, 0xce, 0xf3, 0x98, 0xe5, 0xd3, 0x2f, 0x51, 0x3e, 0x16, 0xab,
+ 0x6f, 0x4d, 0x53, 0x23,
+ 0xf5, 0xfb, 0x91, 0xd6, 0x6b, 0xec, 0xb6, 0x71, 0xf3, 0x42, 0x3a, 0x3e,
+ 0xb1, 0xd7, 0xf5, 0x65,
+ 0xb9, 0x76, 0x6d, 0xd8, 0x6c, 0x8c, 0x13, 0xc0, 0x48, 0xdd, 0x54, 0x4b,
+ 0x95, 0xaf, 0xb9, 0xa3,
+ 0xcb, 0x31, 0xf5, 0xef, 0x96, 0x25, 0x5a, 0x8e, 0xe4, 0xc3, 0xca, 0x41,
+ 0x27, 0xbd, 0xcb, 0x6c,
+ 0x45, 0x95, 0x84, 0x88, 0x44, 0xe4, 0xde, 0x1a, 0x78, 0xce, 0x6c, 0xfb,
+ 0xb6, 0xdd, 0x45, 0x94,
+ 0x57, 0xa5, 0x74, 0x47, 0xc2, 0x2f, 0x28, 0x8f, 0x3d, 0x6c, 0x68, 0x24,
+ 0x51, 0x54, 0x57, 0x30,
+ 0xd7, 0x11, 0x55, 0x65, 0xd3, 0x16, 0xfe, 0x68, 0x23, 0xbe, 0x73, 0x6a,
+ 0x9d, 0xf2, 0xd7, 0x15,
+ 0x68, 0xed, 0xdf, 0x53, 0xc8, 0x35, 0x8a, 0x58, 0x31, 0x18, 0x66, 0x08,
+ 0x29, 0xa9, 0x68, 0x4d,
+ 0x4c, 0x8d, 0xfc, 0x0e, 0x07, 0x60, 0xa5, 0xb1, 0xbb, 0x9f, 0x6e, 0x75,
+ 0x24, 0x78, 0x4c, 0xc6,
+ 0x20, 0x2d, 0x99, 0xe9, 0x95, 0x9f, 0xd4, 0x49, 0xe6, 0xd5, 0x76, 0xf2,
+ 0x33, 0xc8, 0x20, 0x98,
+ 0x4a, 0x07, 0x1b, 0xe0, 0x70, 0xcf, 0xc2, 0x41, 0xe1, 0xe4, 0x2f, 0x5c,
+ 0x05, 0x8c, 0x4a, 0x3d,
+ 0x05, 0xcf, 0x75, 0x99, 0xad, 0x19, 0xb5, 0x88, 0x77, 0xa7, 0x80, 0xdc,
+ 0xd0, 0x8e, 0x05, 0x67,
+ 0xc6, 0x64, 0x37, 0xdd, 0x8f, 0x6b, 0xda, 0x85, 0x4b, 0xc0, 0xb6, 0x40,
+ 0x8b, 0x01, 0xc6, 0x2d,
+ 0x14, 0xba, 0x17, 0x21, 0xf1, 0x64, 0x91, 0x65, 0x1f, 0xd9, 0x45, 0xf6,
+ 0xc6, 0x7d, 0x14, 0x5f,
+ 0x9e, 0x53, 0xdc, 0xf2, 0x79, 0x6f, 0xee, 0x51, 0xef, 0x86, 0x9d, 0xc3,
+ 0x69, 0x04, 0x9e, 0xb4,
+ 0xd5, 0xd6, 0x08, 0x3f, 0xfe, 0x73, 0x62, 0x38, 0x15, 0x97, 0x4c, 0xcc,
+ 0x82, 0x1f, 0xd5, 0xfd,
+ 0x4d, 0x0f, 0x33, 0x23, 0xf0, 0xb3, 0xeb, 0x99, 0xa0, 0x6a, 0x90, 0x26,
+ 0xca, 0xef, 0x4d, 0xb2,
+ 0xce, 0xfe, 0x80, 0x76, 0x3b, 0x3c, 0xef, 0x06, 0x93, 0x64, 0x4a, 0x9d,
+ 0xf7, 0x33, 0xce, 0x0b,
+ 0x5a, 0xf0, 0xb6, 0x75, 0xdb, 0x61, 0xa8, 0x84, 0x92, 0x6f, 0x14, 0x25,
+ 0xfd, 0xe8, 0x5a, 0x71,
+ 0x3f, 0x48, 0xab, 0x14, 0x0a, 0x1a, 0xa2, 0xd7, 0x0c, 0x74, 0x0e, 0x2c,
+ 0x78, 0xfd, 0x3f, 0x7d,
+ 0x8a, 0xe9, 0xcb, 0xd3, 0x88, 0x0b, 0x7f, 0x34, 0xf0, 0x5f, 0xd8, 0x35,
+ 0xaf, 0x79, 0x8a, 0xeb,
+ 0x83, 0xf1, 0xb3, 0x55, 0xcb, 0x8f, 0x04, 0x9f, 0x33, 0x0e, 0xda, 0xbb,
+ 0x3d, 0xdc, 0x83, 0xb9,
+ 0xc3, 0xab, 0x42, 0x44, 0x22, 0x72, 0x6f, 0x0d, 0x3c, 0x67, 0x36, 0x9c,
+ 0x5b, 0x8f, 0xc3, 0x4a,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x94, 0x0e, 0x36, 0x03, 0xe0, 0x5d, 0x47, 0x82, 0x01, 0x0b, 0x5e, 0xb8,
+ 0x0a, 0xdb, 0x94, 0x7a,
+ 0x1f, 0x65, 0x32, 0xfd, 0x9f, 0x85, 0x76, 0x9e, 0xea, 0xa1, 0x78, 0xde,
+ 0x4b, 0x35, 0x1f, 0xe5,
+ 0x98, 0xd9, 0x3b, 0x1c, 0x0e, 0xc0, 0x89, 0xa1, 0xb5, 0xfd, 0xdc, 0xea,
+ 0x48, 0xf0, 0x98, 0x4f,
+ },
+ { /* 15 */
+ 0xcc, 0x0e, 0x86, 0xc2, 0x4f, 0xba, 0x59, 0x3b, 0xe3, 0xef, 0x79, 0x82,
+ 0x53, 0x11, 0xf0, 0xcd,
+ 0x03, 0x96, 0x94, 0x95, 0x6c, 0x2a, 0xb6, 0xf5, 0x9c, 0xba, 0xe7, 0x37,
+ 0x83, 0x91, 0xbd, 0x5b,
+ 0x17, 0xb1, 0xab, 0xa6, 0xf9, 0x11, 0xd2, 0x03, 0xc3, 0x8e, 0xc9, 0x90,
+ 0x58, 0x92, 0xad, 0x69,
+ 0xa5, 0x82, 0x44, 0x27, 0x96, 0x65, 0xbf, 0x60, 0xda, 0x6e, 0x59, 0x28,
+ 0x51, 0x68, 0x84, 0xbe,
+ 0xd4, 0x34, 0xac, 0xe0, 0xa9, 0x29, 0xa0, 0x9f, 0x89, 0x76, 0x4d, 0xf9,
+ 0xc1, 0x13, 0x51, 0x50,
+ 0xfc, 0x7a, 0xd2, 0x86, 0x40, 0x5f, 0x68, 0xb0, 0x37, 0x1e, 0x11, 0x74,
+ 0xb4, 0x15, 0x71, 0x34,
+ 0xd6, 0xd0, 0xf5, 0x06, 0xe1, 0xa4, 0xc5, 0x39, 0x61, 0x1b, 0xf7, 0x62,
+ 0x82, 0x4c, 0x87, 0x83,
+ 0x76, 0x2b, 0xce, 0x5d, 0xc3, 0xbf, 0x63, 0x85, 0xdc, 0x78, 0x44, 0x13,
+ 0x95, 0x54, 0x07, 0xd0,
+ 0xd2, 0xdb, 0x47, 0x09, 0x71, 0x7d, 0x0f, 0xb6, 0x72, 0xc1, 0x40, 0x97,
+ 0x04, 0xf2, 0xe8, 0xe6,
+ 0x20, 0x58, 0xd9, 0x78, 0x0a, 0x07, 0x9f, 0xf2, 0x98, 0x1f, 0xf1, 0xa4,
+ 0xba, 0xb9, 0xfe, 0xae,
+ 0x65, 0x91, 0xd7, 0xf4, 0xaa, 0x77, 0x7b, 0x09, 0x0c, 0x2c, 0x3a, 0x76,
+ 0x4b, 0x78, 0xc5, 0xdc,
+ 0x42, 0x54, 0x28, 0x16, 0x5c, 0x83, 0x98, 0x81, 0x1b, 0x53, 0x9b, 0x10,
+ 0xf4, 0xee, 0xe9, 0x4c,
+ 0x46, 0x5f, 0x9a, 0x19, 0xcc, 0x5a, 0x52, 0x0e, 0x08, 0x89, 0x2c, 0xe5,
+ 0x72, 0x50, 0x86, 0x29,
+ 0xbb, 0x57, 0x85, 0xec, 0xa8, 0xa2, 0xe9, 0xed, 0x4b, 0x40, 0x60, 0x3d,
+ 0x06, 0x8b, 0x9c, 0x95,
+ 0x2c, 0x45, 0xcc, 0x69, 0x79, 0xaf, 0x02, 0xa0, 0xad, 0xb2, 0xeb, 0x78,
+ 0xf3, 0xb8, 0x4f, 0x01,
+ 0x25, 0x21, 0xa6, 0x04, 0xbe, 0x79, 0x86, 0x2e, 0xff, 0x12, 0x1b, 0xfd,
+ 0xfc, 0xc9, 0xfa, 0x43,
+ 0x2e, 0xa1, 0x95, 0x8f, 0x31, 0x22, 0x67, 0x06, 0x45, 0xdf, 0x51, 0xe3,
+ 0xb0, 0xe7, 0x99, 0xd2,
+ 0x7f, 0x4f, 0xa4, 0x30, 0x04, 0x69, 0xe7, 0x0b, 0x8e, 0xd8, 0xb4, 0x96,
+ 0x9a, 0x25, 0xb2, 0x92,
+ 0xad, 0x94, 0xe3, 0x39, 0x75, 0x14, 0xe8, 0xbd, 0xfc, 0x19, 0xf4, 0x01,
+ 0x9e, 0xd7, 0x5a, 0x74,
+ 0x06, 0xef, 0xeb, 0xe9, 0xd8, 0x54, 0xaf, 0x29, 0xfb, 0xb7, 0x0d, 0x6e,
+ 0xc5, 0xe1, 0xb9, 0xb6,
+ 0x6b, 0x68, 0x9b, 0x03, 0x91, 0x52, 0x83, 0xfd, 0xd1, 0xec, 0x9a, 0x31,
+ 0x41, 0x26, 0xa2, 0xa0,
+ 0x3b, 0xf4, 0x67, 0xcf, 0x80, 0xbe, 0xd0, 0xa3, 0x6e, 0x3c, 0x22, 0xe8,
+ 0xab, 0x2a, 0xe2, 0x68,
+ 0x6a, 0x1a, 0x56, 0x70, 0xb5, 0xf5, 0x50, 0xae, 0xa5, 0x3b, 0xc7, 0x9d,
+ 0x81, 0xe8, 0xc9, 0x28,
+ 0x7e, 0x3d, 0x69, 0x43, 0x20, 0xce, 0x34, 0x58, 0xfa, 0x0f, 0xe9, 0x3a,
+ 0x5a, 0xeb, 0xd9, 0x1a,
+ 0x3c, 0x69, 0x41, 0x55, 0x7c, 0x4d, 0xac, 0xd9, 0xe1, 0x5c, 0x72, 0x2a,
+ 0xae, 0x05, 0x30, 0x56,
+ 0x84, 0xa8, 0x50, 0x2c, 0xb8, 0xc5, 0xf3, 0xc1, 0x36, 0xa6, 0xf5, 0x20,
+ 0x2b, 0x1f, 0x11, 0x98,
+ 0x67, 0x75, 0x8e, 0x12, 0xe2, 0xfa, 0x1e, 0xaf, 0xe4, 0x41, 0x80, 0xed,
+ 0x08, 0x27, 0x13, 0x0f,
+ 0xb6, 0x38, 0x5d, 0x8e, 0xff, 0xad, 0xa7, 0xec, 0x0a, 0x3a, 0x27, 0x4d,
+ 0x8f, 0x44, 0x46, 0xb2,
+ 0x16, 0xc3, 0x66, 0xd5, 0xdd, 0xb6, 0x01, 0x50, 0xb7, 0x59, 0x94, 0x3c,
+ 0x98, 0x5c, 0xc6, 0xe1,
+ 0x88, 0xb5, 0x45, 0x3d, 0xcb, 0x6d, 0x6e, 0x93, 0x03, 0x0b, 0xef, 0xfc,
+ 0x62, 0x1e, 0xa0, 0x37,
+ 0x58, 0x8a, 0x5b, 0xd2, 0xf2, 0x9d, 0x04, 0x83, 0x99, 0xa7, 0x15, 0xf0,
+ 0x25, 0xb3, 0x9e, 0x02,
+ 0xbc, 0xca, 0xa3, 0x76, 0x54, 0x51, 0x95, 0x97, 0xc4, 0x20, 0x30, 0xff,
+ 0x03, 0xa4, 0x4e, 0xab,
+ 0xde, 0xc6, 0x52, 0x18, 0x02, 0xd5, 0x92, 0xe4, 0x47, 0x6c, 0x5a, 0x4b,
+ 0x4d, 0xf3, 0x59, 0x49,
+ 0xc2, 0xf7, 0xca, 0x35, 0x74, 0x9f, 0xa1, 0xcf, 0x3e, 0x2f, 0xd9, 0xc5,
+ 0x59, 0x4f, 0x97, 0xb1,
+ 0x4e, 0x49, 0x3d, 0x07, 0x2f, 0x2b, 0x05, 0xd3, 0x2e, 0xfe, 0x81, 0xcc,
+ 0xbd, 0xef, 0x58, 0xe3,
+ 0x3f, 0xff, 0xd5, 0xc0, 0x10, 0x67, 0x1a, 0x2c, 0x7d, 0xe6, 0x95, 0x1d,
+ 0x2d, 0x94, 0x8d, 0x0d,
+ 0x0e, 0xf9, 0x4c, 0xf7, 0x3b, 0x25, 0xf8, 0xf4, 0xdd, 0xc0, 0xa0, 0x47,
+ 0x0a, 0x5e, 0x67, 0x7c,
+ 0x1f, 0xa7, 0x0c, 0xb8, 0x1a, 0x60, 0x85, 0xde, 0xe5, 0xf9, 0x64, 0xb9,
+ 0x97, 0x2d, 0x73, 0xa3,
+ 0x99, 0xeb, 0x05, 0x72, 0xea, 0x28, 0x13, 0xb9, 0x3b, 0x32, 0x2b, 0x02,
+ 0xff, 0x6d, 0xb4, 0xe8,
+ 0x0c, 0x1d, 0x15, 0x11, 0x73, 0xa8, 0x9d, 0x52, 0x35, 0xad, 0x1a, 0xdc,
+ 0x49, 0x01, 0xb1, 0xaf,
+ 0x70, 0xc4, 0x25, 0xb4, 0x1b, 0xeb, 0xcc, 0xac, 0x27, 0xcf, 0x49, 0x7d,
+ 0x50, 0xb5, 0xbe, 0x66,
+ 0x44, 0xbb, 0xc3, 0xff, 0x84, 0xd7, 0x37, 0xa8, 0xe0, 0xe4, 0x96, 0x7e,
+ 0x31, 0x0f, 0x50, 0xfa,
+ 0x2d, 0x37, 0x01, 0x1a, 0x5d, 0x08, 0xd1, 0xf3, 0xd9, 0x65, 0xb6, 0xd4,
+ 0x33, 0x76, 0x24, 0x89,
+ 0x5f, 0x17, 0x7d, 0x48, 0x0e, 0x6e, 0x78, 0xf9, 0x16, 0xc7, 0x45, 0x32,
+ 0x20, 0x9c, 0x4c, 0x3c,
+ 0x78, 0xd2, 0x82, 0xaa, 0xf8, 0x9a, 0x9b, 0x71, 0x01, 0xb8, 0xe4, 0x54,
+ 0x9f, 0x0a, 0x60, 0xac,
+ 0xcb, 0x93, 0xa0, 0x58, 0xb3, 0x49, 0x25, 0x41, 0x6c, 0x8f, 0x29, 0x40,
+ 0x56, 0x3e, 0x22, 0xf3,
+ 0xd5, 0x46, 0x61, 0x93, 0x8d, 0x8e, 0x73, 0xcc, 0xfd, 0xa1, 0x10, 0x55,
+ 0x01, 0xdd, 0x3a, 0xd8,
+ 0x73, 0x52, 0xb1, 0x21, 0x77, 0xc1, 0x7a, 0x59, 0xbb, 0x75, 0xae, 0x4a,
+ 0xd3, 0x24, 0x03, 0x3d,
+ 0x5c, 0x81, 0xe9, 0xdd, 0x62, 0x44, 0xce, 0x0c, 0x8a, 0x7d, 0xa2, 0x05,
+ 0xa3, 0x0d, 0xf1, 0x67,
+ 0xfe, 0x9e, 0x8b, 0x60, 0x08, 0xd2, 0x0d, 0x16, 0xdf, 0x73, 0xab, 0xef,
+ 0xf7, 0x4a, 0xa7, 0xe7,
+ 0x6f, 0x63, 0x29, 0x0c, 0x01, 0x8b, 0x49, 0x72, 0xc2, 0x36, 0x2d, 0xc4,
+ 0xc7, 0x98, 0xcd, 0xc5,
+ 0x1a, 0xde, 0x73, 0xc4, 0xae, 0x1e, 0x9c, 0x02, 0x82, 0xf4, 0x8e, 0xe0,
+ 0xd1, 0x5d, 0x77, 0x4e,
+ 0x07, 0x9d, 0x26, 0x9a, 0xfc, 0xf3, 0x7c, 0x7a, 0x8f, 0x60, 0x50, 0xc2,
+ 0x05, 0x2f, 0xd2, 0x3e,
+ 0xee, 0xb2, 0x06, 0x5c, 0x0d, 0x30, 0xa3, 0x6f, 0x93, 0x9d, 0x32, 0xbd,
+ 0xaa, 0xf7, 0xd8, 0xb0,
+ 0xea, 0xb9, 0xb4, 0x53, 0x9d, 0xe9, 0x69, 0xe0, 0x80, 0x47, 0x85, 0x48,
+ 0x2c, 0x49, 0xb7, 0xd5,
+ 0xc8, 0x05, 0x34, 0xcd, 0xdf, 0x63, 0x93, 0xb4, 0xf0, 0x35, 0xce, 0x77,
+ 0xd5, 0xaf, 0x9f, 0xa8,
+ 0x8c, 0xbe, 0xf7, 0x32, 0x5b, 0xb4, 0xa4, 0x1c, 0x10, 0xd1, 0x58, 0x09,
+ 0xe4, 0xa0, 0xcf, 0x52,
+ 0xb5, 0xae, 0xc9, 0x1b, 0x93, 0x87, 0x11, 0x19, 0x96, 0x80, 0xc0, 0x7a,
+ 0x0c, 0xd5, 0xfb, 0xe9,
+ 0x38, 0x62, 0xf3, 0x5a, 0xec, 0x94, 0x66, 0x56, 0xf2, 0x86, 0xc5, 0xdf,
+ 0x28, 0xbb, 0x5f, 0x33,
+ 0x59, 0xf8, 0x96, 0xa1, 0xd6, 0x3a, 0xd7, 0xd0, 0xed, 0x70, 0x48, 0x5c,
+ 0xe5, 0x7d, 0xf5, 0x8a,
+ 0x69, 0x8c, 0xc2, 0xe5, 0xd9, 0xdf, 0xe6, 0x5b, 0x39, 0x81, 0x20, 0xaa,
+ 0x02, 0x79, 0x74, 0x73,
+ 0x10, 0x2c, 0x8d, 0x3c, 0x05, 0xe2, 0xae, 0x79, 0x4c, 0xee, 0x99, 0x52,
+ 0x5d, 0xbd, 0x7f, 0x57,
+ 0xf0, 0x67, 0xc7, 0x97, 0x33, 0xf7, 0xf5, 0xe2, 0x02, 0xb3, 0x0b, 0xa8,
+ 0xfd, 0x14, 0xc0, 0x9b,
+ 0xa3, 0x6d, 0xaf, 0xce, 0x4e, 0x31, 0x10, 0x49, 0x21, 0xd9, 0x54, 0x46,
+ 0x94, 0x89, 0x3d, 0x08,
+ 0x09, 0x64, 0x6a, 0x6d, 0xc7, 0xd6, 0x84, 0x8e, 0x52, 0xa0, 0xf0, 0x85,
+ 0x0f, 0x71, 0xb5, 0x42,
+ 0x0d, 0x6f, 0xd8, 0x62, 0x57, 0x0f, 0x4e, 0x01, 0x41, 0x7a, 0x47, 0x70,
+ 0x89, 0xcf, 0xda, 0x27,
+ 0xfd, 0x08, 0x1f, 0xf5, 0x64, 0xf8, 0xbb, 0xe3, 0x43, 0xc9, 0x4c, 0xd8,
+ 0x74, 0xdb, 0x1a, 0xbc,
+ 0x1b, 0xac, 0xbe, 0xb7, 0x8a, 0xb9, 0x4f, 0x51, 0xf6, 0x23, 0xd3, 0x4c,
+ 0x11, 0x93, 0x1c, 0xc6,
+ 0x27, 0xc5, 0xff, 0xe2, 0xf6, 0xf4, 0xe3, 0x88, 0x17, 0x7f, 0xa1, 0x66,
+ 0xbf, 0x96, 0x2c, 0x90,
+ 0x8d, 0xcc, 0x3a, 0x41, 0x7f, 0x13, 0x77, 0x4f, 0x64, 0x06, 0x05, 0xa5,
+ 0x24, 0x6e, 0xa4, 0xda,
+ 0xf2, 0x83, 0x9e, 0x71, 0x7b, 0x7a, 0x90, 0x44, 0xea, 0xde, 0xb1, 0x33,
+ 0xbe, 0x4b, 0x16, 0x48,
+ 0x92, 0x6b, 0x36, 0xf9, 0x65, 0x73, 0xf2, 0x91, 0x81, 0xff, 0x61, 0x1c,
+ 0xb3, 0x43, 0xd7, 0x79,
+ 0x6d, 0x87, 0x70, 0xea, 0x49, 0x06, 0x2c, 0xd4, 0x2a, 0x5b, 0x97, 0x5f,
+ 0x84, 0xc7, 0x1b, 0x16,
+ 0x5d, 0xf3, 0x24, 0xae, 0x46, 0xe3, 0x1d, 0x5f, 0xfe, 0xaa, 0xff, 0xa9,
+ 0x63, 0xc3, 0x9a, 0xef,
+ 0xf1, 0x15, 0x0a, 0xe4, 0x17, 0x50, 0x26, 0xb1, 0x76, 0x64, 0x56, 0x04,
+ 0x3d, 0xda, 0xab, 0x13,
+ 0x21, 0x2a, 0x14, 0x0b, 0x2e, 0xa0, 0x4c, 0xa1, 0xec, 0xc8, 0xac, 0x08,
+ 0x7a, 0x77, 0x95, 0x26,
+ 0x37, 0xe9, 0x72, 0xde, 0xf3, 0x16, 0x4d, 0xf1, 0x5b, 0x91, 0x38, 0x34,
+ 0xe2, 0x2b, 0x53, 0xc7,
+ 0x40, 0xb0, 0x71, 0xf0, 0x14, 0x0e, 0xfd, 0x27, 0xf3, 0x3e, 0x21, 0x8b,
+ 0xb7, 0xb1, 0x3f, 0x9f,
+ 0x8e, 0x5a, 0xae, 0xd4, 0x13, 0x39, 0xc1, 0xba, 0xf8, 0xbc, 0xe2, 0x92,
+ 0xa7, 0xff, 0x19, 0x81,
+ 0xe8, 0x5d, 0xed, 0xb5, 0xd5, 0x64, 0x0c, 0x46, 0x68, 0x2a, 0x3f, 0xd3,
+ 0x6f, 0x16, 0x61, 0x06,
+ 0xe4, 0x40, 0xf8, 0xa4, 0xa6, 0xcc, 0x91, 0x14, 0x5d, 0x87, 0x25, 0x0f,
+ 0x26, 0x17, 0xd0, 0xa9,
+ 0xec, 0x56, 0x5f, 0xba, 0x45, 0xbd, 0xc6, 0xc9, 0x7b, 0xf0, 0x88, 0x26,
+ 0xe9, 0xa8, 0x0e, 0x63,
+ 0x9e, 0x76, 0x23, 0xe8, 0x16, 0xdb, 0x6f, 0xc3, 0xb4, 0x52, 0x7b, 0xc0,
+ 0xfa, 0x42, 0x66, 0xd6,
+ 0x9c, 0x92, 0x7a, 0x0e, 0x5e, 0x56, 0x0a, 0x65, 0x5c, 0x3f, 0xc1, 0x5b,
+ 0xb9, 0x1d, 0xb0, 0x05,
+ 0xd1, 0x4d, 0xd3, 0x9c, 0x1d, 0x57, 0xb9, 0x43, 0xee, 0x7b, 0xa7, 0xa0,
+ 0x87, 0x63, 0x55, 0xbd,
+ 0xe7, 0xd6, 0x6c, 0x31, 0xca, 0xe6, 0x27, 0xe1, 0xc1, 0x3d, 0xc2, 0x38,
+ 0xa5, 0x86, 0x6d, 0xf2,
+ 0xb8, 0xc1, 0x11, 0x79, 0xc4, 0x88, 0x5f, 0x18, 0xd7, 0xfa, 0x87, 0x0a,
+ 0x85, 0x1a, 0x21, 0xce,
+ 0x2f, 0xd3, 0x58, 0xfc, 0x15, 0x85, 0xb4, 0x55, 0x31, 0x08, 0x0c, 0x4f,
+ 0x70, 0x29, 0xf2, 0x5a,
+ 0xe2, 0xaf, 0x13, 0x4d, 0x7e, 0x98, 0x3e, 0x3d, 0xa6, 0x30, 0x28, 0x61,
+ 0xe3, 0xf6, 0x69, 0x1f,
+ 0x8a, 0x51, 0x1c, 0xdb, 0x83, 0xe0, 0x0b, 0x35, 0xeb, 0x66, 0x55, 0x67,
+ 0x21, 0x41, 0x76, 0xe4,
+ 0xd7, 0xa2, 0x38, 0x75, 0xc5, 0x03, 0x16, 0x6a, 0x15, 0xcc, 0xaa, 0xce,
+ 0x42, 0x82, 0xec, 0x0b,
+ 0xb4, 0xdc, 0x04, 0x68, 0xb7, 0x20, 0xc2, 0x4a, 0xe2, 0x57, 0x9d, 0xd6,
+ 0xcc, 0x1b, 0x90, 0x61,
+ 0x29, 0x3c, 0xb3, 0x15, 0xcd, 0xd1, 0x1b, 0x7c, 0xca, 0xbf, 0x01, 0x21,
+ 0xb5, 0xc8, 0x4b, 0xec,
+ 0x13, 0xba, 0x19, 0xa9, 0x69, 0xc8, 0x18, 0x8c, 0xd0, 0x54, 0x7e, 0x65,
+ 0xde, 0x2c, 0xc2, 0x0c,
+ 0x98, 0x99, 0xc8, 0x01, 0xce, 0x8f, 0xc0, 0xea, 0x4f, 0xe5, 0x76, 0xae,
+ 0x3f, 0xa3, 0xdf, 0x60,
+ 0x80, 0xa3, 0xe2, 0x23, 0x28, 0x1c, 0x39, 0x4e, 0x25, 0x7c, 0x42, 0xd5,
+ 0xad, 0xa1, 0x7e, 0xfd,
+ 0xa6, 0x14, 0xd0, 0xb2, 0xfa, 0x4f, 0x09, 0x95, 0x46, 0xd4, 0xbe, 0x1f,
+ 0xd2, 0xf9, 0x39, 0xe5,
+ 0x62, 0x0c, 0xf1, 0x6e, 0x56, 0x84, 0x07, 0x73, 0x83, 0x4c, 0x6a, 0xb4,
+ 0x4e, 0x57, 0x17, 0xe2,
+ 0xb3, 0x41, 0x22, 0xf2, 0x4b, 0xd3, 0xbe, 0x30, 0x6d, 0x37, 0xcd, 0x14,
+ 0xc9, 0x34, 0x42, 0x5f,
+ 0x5e, 0x65, 0xb0, 0x3b, 0x2a, 0xc9, 0xab, 0xaa, 0x62, 0x10, 0x18, 0x9e,
+ 0xe0, 0x52, 0x27, 0xb4,
+ 0x72, 0x20, 0x7c, 0x52, 0x53, 0x66, 0xa9, 0x0a, 0xcf, 0xa2, 0xf3, 0xe6,
+ 0x13, 0xea, 0x68, 0xb5,
+ 0x43, 0x26, 0xe5, 0x65, 0x78, 0x24, 0x4b, 0xd2, 0x6f, 0x84, 0xc6, 0xbc,
+ 0x34, 0x20, 0x82, 0xc4,
+ 0x34, 0x7f, 0xe6, 0x4b, 0x9f, 0x3c, 0xfb, 0x04, 0xc7, 0x2b, 0xdf, 0x03,
+ 0x61, 0xba, 0xee, 0x9c,
+ 0x35, 0x0d, 0x2b, 0x38, 0xbb, 0x9b, 0x28, 0x57, 0xb3, 0xfc, 0x82, 0xaf,
+ 0xa1, 0x74, 0x85, 0x14,
+ 0x52, 0x78, 0xa5, 0x2a, 0x59, 0x61, 0x36, 0xf8, 0x57, 0xbd, 0x02, 0x42,
+ 0xa9, 0x53, 0x96, 0x1b,
+ 0x26, 0xb7, 0x32, 0x91, 0xd2, 0x53, 0x30, 0xdb, 0x63, 0xa8, 0xfc, 0xca,
+ 0x7f, 0x58, 0x47, 0x18,
+ 0x7d, 0xab, 0xfd, 0xd6, 0x4c, 0xe4, 0x82, 0xad, 0x66, 0xb5, 0x0e, 0x0d,
+ 0xd9, 0x7a, 0x64, 0x41,
+ 0xb7, 0x4a, 0x90, 0xfd, 0xdb, 0x0a, 0x74, 0xbf, 0x7e, 0xed, 0x7a, 0xe1,
+ 0x4f, 0x8a, 0x2d, 0x3a,
+ 0x0a, 0xf2, 0xfe, 0xf8, 0xab, 0xfc, 0x32, 0x7b, 0xce, 0x1a, 0x17, 0xb2,
+ 0x8c, 0xe0, 0x08, 0x19,
+ 0x45, 0xc9, 0x0e, 0x8c, 0xa0, 0x70, 0xe4, 0xfb, 0x94, 0x33, 0xcb, 0xd2,
+ 0xf1, 0xc1, 0x3b, 0x72,
+ 0x81, 0xd1, 0x2f, 0x50, 0x0c, 0xbb, 0xea, 0x1d, 0x51, 0xab, 0x1f, 0x79,
+ 0x6d, 0x6f, 0x15, 0x75,
+ 0x6e, 0x11, 0xe4, 0x7f, 0x25, 0x2c, 0x9a, 0x21, 0xb6, 0xe1, 0x70, 0x68,
+ 0x07, 0x56, 0xa6, 0x4d,
+ 0x53, 0x0a, 0x68, 0x59, 0x7d, 0xc6, 0xe5, 0xab, 0x23, 0x6a, 0x5f, 0xee,
+ 0x69, 0x9d, 0xfd, 0x93,
+ 0x4a, 0x42, 0x8f, 0x08, 0xbf, 0xf2, 0xcf, 0x5c, 0x3d, 0x24, 0x36, 0x39,
+ 0x3b, 0x51, 0x37, 0x86,
+ 0x79, 0xa0, 0x4f, 0xd9, 0xdc, 0x3d, 0x48, 0x22, 0x75, 0x6f, 0xb9, 0xf8,
+ 0x5f, 0xc4, 0x0b, 0x24,
+ 0x32, 0x90, 0x0d, 0xa2, 0x47, 0x68, 0x54, 0x2d, 0x3c, 0x9c, 0xd2, 0x6d,
+ 0xa4, 0x5b, 0x57, 0x2a,
+ 0x61, 0x9a, 0x65, 0xfb, 0x3a, 0xae, 0xb1, 0x86, 0x1f, 0xf6, 0x8d, 0x83,
+ 0xcd, 0xc6, 0xaa, 0xb9,
+ 0xfb, 0xe7, 0xf4, 0x1c, 0xbc, 0xac, 0x14, 0xca, 0xb8, 0x7e, 0x41, 0xb6,
+ 0xb1, 0x3a, 0xa3, 0x0a,
+ 0x39, 0x10, 0x3e, 0x29, 0xc8, 0x33, 0xb5, 0x05, 0x86, 0x51, 0x98, 0x73,
+ 0xe8, 0x75, 0x34, 0xbb,
+ 0xc0, 0x13, 0x93, 0xd3, 0x3c, 0x12, 0xc4, 0x69, 0xd6, 0x42, 0x63, 0x5e,
+ 0x1a, 0x10, 0x41, 0x62,
+ 0xfa, 0x95, 0x39, 0x6f, 0x98, 0x0b, 0xc7, 0x99, 0xcc, 0xa9, 0x1c, 0x1a,
+ 0x71, 0xf4, 0xc8, 0x82,
+ 0x5b, 0x1c, 0xcf, 0x47, 0x9e, 0xb7, 0xb2, 0x76, 0x05, 0x1d, 0xf2, 0xc7,
+ 0xa6, 0x22, 0x23, 0x59,
+ 0xa4, 0xf0, 0x89, 0x54, 0xb2, 0xc2, 0x6c, 0x33, 0xae, 0xb9, 0x04, 0x84,
+ 0x91, 0xa6, 0xef, 0x36,
+ 0xba, 0x25, 0x48, 0x9f, 0x8c, 0x05, 0x3a, 0xbe, 0x3f, 0x97, 0x3d, 0x91,
+ 0xc6, 0x45, 0xf7, 0x1d,
+ 0xda, 0xcd, 0xe0, 0x17, 0x92, 0x0c, 0x58, 0x6b, 0x54, 0xb6, 0xed, 0xbe,
+ 0xcb, 0x4d, 0x36, 0x2c,
+ 0x4c, 0xad, 0x64, 0xe1, 0x67, 0xa6, 0x60, 0x75, 0xc6, 0x93, 0x3b, 0x57,
+ 0xfe, 0xb0, 0x8e, 0x30,
+ 0x05, 0x79, 0x7f, 0x7c, 0xb4, 0x7e, 0x19, 0xdc, 0x67, 0x0d, 0xea, 0x59,
+ 0x46, 0x70, 0x04, 0xed,
+ 0xc3, 0x85, 0x07, 0x46, 0x50, 0x38, 0x72, 0x9c, 0x4a, 0xf8, 0x84, 0x69,
+ 0x99, 0x81, 0xfc, 0x39,
+ 0x3a, 0x86, 0xaa, 0xbc, 0xa4, 0x19, 0x03, 0xf0, 0x1a, 0xeb, 0x7f, 0x44,
+ 0x6b, 0xe4, 0x89, 0xe0,
+ 0x82, 0x47, 0xbb, 0xc5, 0x60, 0x91, 0x5c, 0xe8, 0xcd, 0x11, 0xf8, 0x4e,
+ 0xee, 0xfe, 0xa8, 0x2e,
+ 0x18, 0x3a, 0x2a, 0x22, 0xe6, 0x93, 0xf9, 0xa4, 0x6a, 0x99, 0x34, 0x7b,
+ 0x92, 0x02, 0xa1, 0x9d,
+ 0xc9, 0x77, 0xf9, 0xbe, 0xfb, 0xc4, 0x40, 0xe7, 0x84, 0xe2, 0x93, 0xdb,
+ 0x15, 0x61, 0xf4, 0x20,
+ 0x68, 0xfe, 0x0f, 0x96, 0xfd, 0x78, 0x35, 0x08, 0x4d, 0x56, 0x7d, 0x06,
+ 0xc2, 0xb7, 0x1f, 0xfb,
+ 0xf6, 0x88, 0x2c, 0x7e, 0xeb, 0xa3, 0x5a, 0xcb, 0xf9, 0x04, 0x06, 0xc6,
+ 0x38, 0xf5, 0x79, 0x2d,
+ 0x63, 0x7e, 0x3c, 0x1d, 0x72, 0x23, 0xd4, 0x20, 0xf7, 0x9b, 0x37, 0x18,
+ 0x8e, 0x99, 0x7c, 0x6a,
+ 0x87, 0x3e, 0xc4, 0xb9, 0xd4, 0xef, 0x45, 0x34, 0xaa, 0x1c, 0x12, 0x17,
+ 0xa8, 0x8e, 0xac, 0xc3,
+ 0x49, 0xd4, 0x1b, 0x9d, 0xd3, 0xd8, 0x79, 0xa9, 0xa1, 0x9e, 0xd1, 0x0e,
+ 0xb8, 0xc0, 0x8a, 0xdd,
+ 0x36, 0x9b, 0xbf, 0xad, 0xd7, 0xb1, 0x9e, 0xa2, 0x2f, 0x46, 0x65, 0x98,
+ 0x22, 0xe5, 0x38, 0x4f,
+ 0x91, 0xfd, 0xa2, 0x6c, 0x09, 0x59, 0x44, 0x64, 0x1d, 0x45, 0x86, 0x2b,
+ 0x30, 0xd2, 0x6a, 0x22,
+ 0x97, 0x12, 0x49, 0x85, 0xd1, 0x0d, 0xeb, 0x4d, 0xe6, 0xf2, 0x8b, 0x45,
+ 0xf5, 0x33, 0xd3, 0x94,
+ 0x33, 0xe2, 0xc0, 0xd1, 0x63, 0xcf, 0x87, 0x7e, 0x48, 0x4b, 0x8f, 0xc1,
+ 0x64, 0x95, 0x3c, 0xa2,
+ 0x08, 0x16, 0xa7, 0x1e, 0xe3, 0x71, 0x57, 0xdd, 0x26, 0x77, 0xad, 0x29,
+ 0xcf, 0xbf, 0xde, 0xca,
+ 0x7c, 0xd9, 0x30, 0xa5, 0x68, 0x43, 0x51, 0xfe, 0x12, 0x62, 0x53, 0xa1,
+ 0x19, 0xb4, 0x0f, 0xc9,
+ 0x02, 0xe4, 0x59, 0xe6, 0x48, 0x8d, 0x65, 0xa6, 0xe8, 0x6d, 0xba, 0x9b,
+ 0x43, 0x5f, 0xd6, 0xd3,
+ 0x77, 0x59, 0x03, 0x2e, 0xe7, 0x18, 0xb0, 0xd6, 0xa8, 0xaf, 0x19, 0xbf,
+ 0x55, 0x9a, 0x6c, 0x58,
+ 0x85, 0xda, 0x9d, 0x5f, 0x9c, 0x62, 0x20, 0x92, 0x42, 0x71, 0xa8, 0x8c,
+ 0xeb, 0xd1, 0x7a, 0x10,
+ 0x66, 0x07, 0x43, 0x61, 0xc6, 0x5d, 0xcd, 0xfc, 0x90, 0x96, 0xdd, 0x41,
+ 0xc8, 0xe9, 0x78, 0x87,
+ 0x41, 0xc2, 0xbc, 0x83, 0x30, 0xa9, 0x2e, 0x74, 0x87, 0xe9, 0x7c, 0x27,
+ 0x77, 0x7f, 0x54, 0x17,
+ 0x30, 0x74, 0x54, 0x44, 0x0f, 0xe5, 0x31, 0x8b, 0xd4, 0xf1, 0x68, 0xf6,
+ 0xe7, 0x04, 0x81, 0xf9,
+ 0xcd, 0x7c, 0x4b, 0xb1, 0x6b, 0x1d, 0x8a, 0x68, 0x97, 0x38, 0x24, 0x2e,
+ 0x93, 0xdf, 0x9b, 0x45,
+ 0xd0, 0x3f, 0x1e, 0xef, 0x39, 0xf0, 0x6a, 0x10, 0x9a, 0xac, 0xfa, 0x0c,
+ 0x47, 0xad, 0x3e, 0x35,
+ 0xd9, 0x5b, 0x74, 0x82, 0xfe, 0x26, 0xee, 0x9e, 0xc8, 0x0c, 0x0a, 0x89,
+ 0x48, 0xdc, 0x8b, 0x77,
+ 0xa9, 0x9f, 0x51, 0x36, 0xe5, 0xcd, 0x22, 0x32, 0xef, 0xc3, 0x43, 0xf4,
+ 0x18, 0x69, 0x35, 0x11,
+ 0xaa, 0x09, 0xc5, 0xa3, 0x89, 0xe7, 0x94, 0xc7, 0x73, 0x79, 0xa4, 0xc3,
+ 0x9b, 0xf8, 0x88, 0x4a,
+ 0xc5, 0x6a, 0xec, 0xaf, 0x88, 0x6c, 0xdd, 0xb5, 0xb1, 0x4f, 0x89, 0x07,
+ 0x5c, 0x60, 0x45, 0x8f,
+ 0x60, 0xe8, 0xa8, 0x88, 0x1e, 0x09, 0x62, 0xd5, 0x6b, 0x21, 0xd0, 0x2f,
+ 0x0d, 0x08, 0xc1, 0x31,
+ 0xf8, 0x71, 0x60, 0x89, 0xd0, 0x86, 0xa2, 0x3f, 0x24, 0xc4, 0xa6, 0x81,
+ 0x32, 0xab, 0x1e, 0x51,
+ 0x04, 0x0b, 0xb2, 0x0f, 0x90, 0xd9, 0xca, 0x8f, 0x13, 0xda, 0xb7, 0xf5,
+ 0x86, 0xbe, 0x6f, 0x65,
+ 0x90, 0x8f, 0x6f, 0x1f, 0x2d, 0xfe, 0x97, 0x37, 0x69, 0x92, 0xdb, 0x87,
+ 0xf0, 0x1c, 0x01, 0xaa,
+ 0xe6, 0xa4, 0xa1, 0x42, 0xee, 0x41, 0xf4, 0xb2, 0xb5, 0xea, 0x9f, 0x94,
+ 0x65, 0x48, 0x06, 0x7a,
+ 0x96, 0x60, 0x84, 0xf6, 0xf5, 0xaa, 0x38, 0x1e, 0x92, 0x25, 0xd6, 0xe9,
+ 0x35, 0xfd, 0xb8, 0x1c,
+ 0xaf, 0x70, 0xba, 0xdf, 0x3d, 0x99, 0x8d, 0x1b, 0x14, 0x74, 0x4e, 0x9a,
+ 0xdd, 0x88, 0x8c, 0xa7,
+ 0xc6, 0xfc, 0x78, 0x3a, 0xe4, 0x46, 0x6b, 0x40, 0x2d, 0xf5, 0x6e, 0x30,
+ 0xdf, 0xf1, 0xf8, 0xd4,
+ 0xa7, 0x66, 0x1d, 0xc1, 0xde, 0xe8, 0xda, 0xc6, 0x32, 0x03, 0xe3, 0xb3,
+ 0x12, 0x37, 0x52, 0x6d,
+ 0xa1, 0x89, 0xf6, 0x28, 0x06, 0xbc, 0x75, 0xef, 0xc9, 0xb4, 0xee, 0xdd,
+ 0xd7, 0xd6, 0xeb, 0xdb,
+ 0xd8, 0x29, 0xb9, 0xf1, 0xda, 0x81, 0x3d, 0xcd, 0xbc, 0xdb, 0x57, 0x25,
+ 0x88, 0x12, 0xe0, 0xff,
+ 0x1e, 0xd5, 0xc1, 0xcb, 0x3e, 0xc7, 0x56, 0x8d, 0x91, 0x2e, 0x39, 0x15,
+ 0x57, 0xe3, 0x18, 0x2b,
+ 0x4d, 0xdf, 0xa9, 0x92, 0x43, 0x01, 0xb3, 0x26, 0xb2, 0x44, 0x66, 0xfb,
+ 0x3e, 0x7e, 0xe5, 0xb8,
+ 0x64, 0xe3, 0x1a, 0x87, 0x8e, 0xd0, 0xa8, 0x5a, 0x78, 0xfb, 0x67, 0xda,
+ 0x8b, 0xb6, 0xae, 0x54,
+ 0x9a, 0x7d, 0x91, 0xe7, 0x86, 0x02, 0xa5, 0x4c, 0xa7, 0x88, 0xcc, 0x35,
+ 0x7c, 0xfc, 0x09, 0xb3,
+ 0xe3, 0xdd, 0xde, 0x3e, 0x5a, 0x3f, 0xed, 0x6e, 0xd2, 0xe7, 0x75, 0xcd,
+ 0x23, 0x38, 0x02, 0x97,
+ 0xf9, 0x03, 0xad, 0xfa, 0xf4, 0x21, 0x71, 0x6c, 0x50, 0x13, 0xfb, 0x2d,
+ 0xf2, 0x65, 0x75, 0xd9,
+ 0xf7, 0xfa, 0xe1, 0x0d, 0xcf, 0x04, 0x89, 0x98, 0x8d, 0xd3, 0x5b, 0x6a,
+ 0xf8, 0x3b, 0x12, 0xa5,
+ 0x19, 0x48, 0xe7, 0x51, 0xc2, 0x34, 0x2a, 0xf7, 0x1e, 0x4e, 0x69, 0xd7,
+ 0x52, 0xcc, 0xca, 0x15,
+ 0x83, 0x35, 0x76, 0xb6, 0x44, 0x36, 0x8f, 0xbb, 0xb9, 0xc6, 0xa5, 0xe2,
+ 0x2e, 0x30, 0xc3, 0xa6,
+ 0x4b, 0x30, 0x42, 0x7b, 0x9b, 0x55, 0x1c, 0x0f, 0x49, 0xf3, 0x6b, 0x95,
+ 0xfb, 0x9f, 0x5c, 0x0e,
+ 0x4f, 0x3b, 0xf0, 0x74, 0x0b, 0x8c, 0xd6, 0x80, 0x5a, 0x29, 0xdc, 0x60,
+ 0x7d, 0x21, 0x33, 0x6b,
+ 0x7b, 0x44, 0x16, 0x3f, 0x94, 0xb0, 0x2d, 0x84, 0x9d, 0x02, 0x03, 0x63,
+ 0x1c, 0x9b, 0xdd, 0xf7,
+ 0xef, 0xc0, 0xcb, 0x2f, 0x29, 0x97, 0x70, 0x3c, 0xe7, 0x4a, 0x6f, 0x11,
+ 0x6a, 0x39, 0xb3, 0x38,
+ 0x9d, 0xe0, 0xb7, 0x7d, 0x7a, 0xf1, 0xd9, 0x36, 0x28, 0xe8, 0x9c, 0xf7,
+ 0x79, 0xd3, 0xdb, 0x8d,
+ 0x74, 0xcf, 0x97, 0xbb, 0x8b, 0x32, 0x06, 0x23, 0x34, 0x15, 0xfe, 0x88,
+ 0xd6, 0x0b, 0xd1, 0x03,
+ 0xc7, 0x8e, 0xb5, 0x49, 0xc0, 0xe1, 0xb8, 0x13, 0x59, 0x22, 0x33, 0x9c,
+ 0x1f, 0x3f, 0x93, 0x5c,
+ 0xca, 0xe1, 0x6d, 0x2b, 0x97, 0xee, 0xf6, 0x12, 0x18, 0x58, 0x74, 0xec,
+ 0x96, 0xf0, 0x49, 0x7b,
+ 0x6c, 0xf5, 0xbd, 0x99, 0x6d, 0xa1, 0xff, 0x87, 0x5e, 0x8c, 0xca, 0xf3,
+ 0x44, 0x09, 0x70, 0x9e,
+ 0xf3, 0xf1, 0x53, 0x02, 0x5f, 0xdd, 0x43, 0x17, 0x9e, 0x09, 0xec, 0x9f,
+ 0x7e, 0x85, 0x7d, 0xc0,
+ 0x31, 0x06, 0x99, 0x37, 0x2b, 0x42, 0xe2, 0xd8, 0xa0, 0x26, 0x35, 0x5a,
+ 0x27, 0xca, 0xea, 0x71,
+ 0x3e, 0x8d, 0x18, 0xb3, 0x34, 0xc0, 0xc9, 0x7f, 0x09, 0x31, 0xc8, 0xb1,
+ 0xed, 0x5a, 0xe6, 0x85,
+ 0x01, 0x72, 0xcd, 0x73, 0x24, 0xa7, 0xd3, 0x53, 0x74, 0xd7, 0x5d, 0xac,
+ 0xc0, 0xce, 0x6b, 0x88,
+ 0xdb, 0xbf, 0x2d, 0x64, 0xb6, 0xab, 0x8b, 0x38, 0x20, 0x61, 0xb0, 0x12,
+ 0x0b, 0x83, 0x5d, 0xa4,
+ 0xc4, 0x18, 0x21, 0xdc, 0xac, 0xcb, 0x0e, 0xe6, 0xc5, 0x98, 0xd4, 0xab,
+ 0x9c, 0xae, 0x2e, 0x07,
+ 0xe1, 0x39, 0x87, 0xd8, 0x12, 0xb2, 0x88, 0xc8, 0x3a, 0x8a, 0xcf, 0x56,
+ 0x60, 0x67, 0xd4, 0x44,
+ 0xed, 0x24, 0x92, 0xc9, 0x61, 0x1a, 0x15, 0x9a, 0x0f, 0x27, 0xd5, 0x8a,
+ 0x29, 0x66, 0x65, 0xeb,
+ 0xe0, 0x4b, 0x4a, 0xab, 0x36, 0x15, 0x5b, 0x9b, 0x4e, 0x5d, 0x92, 0xfa,
+ 0xa0, 0xa9, 0xbf, 0xcc,
+ 0x14, 0x27, 0x3f, 0x33, 0x95, 0x3b, 0x64, 0xf6, 0x5f, 0x34, 0x2e, 0xa7,
+ 0xdb, 0x03, 0x10, 0x32,
+ 0xdf, 0xb4, 0x9f, 0x6b, 0x26, 0x72, 0x41, 0xb7, 0x33, 0xbb, 0x07, 0xe7,
+ 0x8d, 0x3d, 0x32, 0xc1,
+ 0x50, 0x9c, 0xfc, 0xcc, 0x11, 0xec, 0x53, 0x5e, 0xbf, 0xd0, 0xb8, 0xd9,
+ 0xea, 0x0c, 0x40, 0xc8,
+ 0xbe, 0x2e, 0xfa, 0x90, 0x1c, 0xdc, 0xf0, 0x31, 0x2c, 0x4d, 0x8a, 0x64,
+ 0x40, 0xfb, 0x98, 0x78,
+ 0xab, 0x7b, 0x08, 0xd0, 0xad, 0x40, 0x47, 0x94, 0x07, 0xae, 0xf9, 0x6f,
+ 0x5b, 0x36, 0xe3, 0xc2,
+ 0xae, 0x02, 0x77, 0xac, 0x19, 0x3e, 0x5e, 0x48, 0x60, 0xa3, 0x13, 0x36,
+ 0x1d, 0x46, 0xe7, 0x2f,
+ 0x51, 0xee, 0x31, 0xbf, 0x35, 0x4b, 0x80, 0x0d, 0xcb, 0x07, 0xe5, 0x75,
+ 0x2a, 0xc2, 0x2b, 0x40,
+ 0x12, 0xc8, 0xd4, 0xda, 0x4d, 0x6f, 0xcb, 0xdf, 0xa4, 0x83, 0x23, 0xc9,
+ 0x1e, 0xe2, 0xa9, 0x84,
+ 0x8f, 0x28, 0x63, 0xa7, 0x37, 0x9e, 0x12, 0xe9, 0x8c, 0x6b, 0xbf, 0x3e,
+ 0x67, 0x31, 0x72, 0x09,
+ 0x1d, 0x43, 0x55, 0x5e, 0x52, 0xed, 0xe0, 0x78, 0x0d, 0x94, 0xde, 0x22,
+ 0xd4, 0x72, 0xa5, 0x70,
+ 0xf4, 0x6c, 0x75, 0x98, 0xa3, 0x2e, 0x3f, 0x6d, 0x11, 0x69, 0xbc, 0x5d,
+ 0x7b, 0xaa, 0xaf, 0xfe,
+ 0xd3, 0xa9, 0x8a, 0x7a, 0x55, 0xda, 0xdc, 0xe5, 0x06, 0x16, 0x1d, 0x3b,
+ 0xc4, 0x3c, 0x83, 0x6e,
+ 0xff, 0xec, 0x46, 0x13, 0x2c, 0x75, 0xde, 0x45, 0xab, 0xa4, 0xf6, 0x43,
+ 0x37, 0x84, 0xcc, 0x6f,
+ 0x47, 0x2d, 0x57, 0x6a, 0xe8, 0xfd, 0x81, 0x5d, 0x7c, 0x5e, 0x71, 0x49,
+ 0xb2, 0x9e, 0xed, 0xa1,
+ 0x15, 0x55, 0xf2, 0x40, 0xb1, 0x9c, 0xb7, 0xa5, 0x2b, 0xe3, 0x73, 0x0b,
+ 0x1b, 0xcd, 0x7b, 0xba,
+ 0x8b, 0x23, 0xd1, 0xa8, 0xa7, 0x47, 0xd8, 0x66, 0x9f, 0xb1, 0x08, 0xcb,
+ 0xe1, 0x8f, 0x1d, 0x6c,
+ 0xa0, 0xfb, 0x3b, 0x5b, 0x22, 0x1b, 0xa6, 0xbc, 0xbd, 0x63, 0xb3, 0x71,
+ 0x17, 0x18, 0x80, 0x53,
+ 0xf5, 0x1e, 0xb8, 0xeb, 0x87, 0x89, 0xec, 0x3e, 0x65, 0xbe, 0xe1, 0xf1,
+ 0xbb, 0x64, 0xc4, 0x76,
+ 0x28, 0x4e, 0x7e, 0x66, 0xe9, 0x76, 0xc8, 0x2f, 0xbe, 0x68, 0x5c, 0x8d,
+ 0x75, 0x06, 0x20, 0x64,
+ 0x57, 0x01, 0xda, 0x56, 0xed, 0x1f, 0x2f, 0x24, 0x30, 0xb0, 0xe8, 0x1b,
+ 0xef, 0x23, 0x92, 0xf6,
+ 0xb2, 0x33, 0xef, 0x81, 0x6f, 0x74, 0x6d, 0x63, 0x19, 0xe0, 0x90, 0xb8,
+ 0x09, 0xfa, 0x29, 0xd7,
+ 0x24, 0x53, 0x6b, 0x77, 0x9a, 0xde, 0x55, 0x7d, 0x8b, 0xc5, 0x46, 0x51,
+ 0x3c, 0x07, 0x91, 0xcb,
+ 0xcf, 0x98, 0x12, 0x57, 0x23, 0x90, 0xef, 0xce, 0x7f, 0x55, 0x9e, 0xb5,
+ 0xd0, 0x80, 0x4d, 0x96,
+ 0x89, 0xc7, 0x88, 0x4e, 0xef, 0xca, 0xbd, 0xc0, 0x77, 0xdc, 0xb2, 0x50,
+ 0xa2, 0xd0, 0xcb, 0xbf,
+ 0xdd, 0x50, 0xc6, 0x8d, 0x6e, 0xff, 0x24, 0x11, 0xdb, 0xd6, 0xbd, 0x7c,
+ 0xce, 0x62, 0xe4, 0x12,
+ 0x55, 0xe5, 0x83, 0xb0, 0xa5, 0x92, 0x4a, 0x82, 0xd8, 0xdd, 0x52, 0x80,
+ 0xac, 0x7c, 0x44, 0x25,
+ 0x2b, 0xd8, 0xea, 0xf3, 0x85, 0x5c, 0x7e, 0xda, 0x22, 0xd2, 0xbb, 0xba,
+ 0xf6, 0x97, 0x9d, 0x3f,
+ 0x9b, 0x0f, 0x5c, 0x94, 0xa2, 0xa5, 0x76, 0x1f, 0xd3, 0x5f, 0x91, 0x99,
+ 0xbc, 0x32, 0x62, 0x3b,
+ 0xeb, 0xcb, 0x79, 0x20, 0xb9, 0x4e, 0xba, 0xb3, 0xf4, 0x90, 0xd8, 0xe4,
+ 0xec, 0x87, 0xdc, 0x5d,
+ 0xce, 0xea, 0xdf, 0x24, 0x07, 0x37, 0x3c, 0x9d, 0x0b, 0x82, 0xc3, 0x19,
+ 0x10, 0x4e, 0x26, 0x1e,
+ 0xe5, 0x32, 0x35, 0xd7, 0x82, 0x6b, 0x42, 0x47, 0x29, 0x50, 0x78, 0xa3,
+ 0xe6, 0xd9, 0xbb, 0x21,
+ 0xb1, 0xa5, 0x7b, 0x14, 0x03, 0x5e, 0xdb, 0x96, 0x85, 0x5a, 0x77, 0x8f,
+ 0x8a, 0x6b, 0x94, 0x8c,
+ 0x22, 0xbc, 0x80, 0x9e, 0x42, 0x8a, 0xfa, 0x54, 0x70, 0x72, 0x4b, 0x3f,
+ 0xf9, 0xe6, 0x28, 0x7d,
+ 0xbd, 0xb8, 0x6e, 0x05, 0x70, 0xf6, 0x46, 0xc4, 0xb0, 0xf7, 0x6d, 0x53,
+ 0xc3, 0x6a, 0x25, 0x23,
+ 0xe9, 0x2f, 0x20, 0xc6, 0xf1, 0xc3, 0xdf, 0x15, 0x1c, 0xfd, 0x62, 0x7f,
+ 0xaf, 0xd8, 0x0a, 0x8e,
+ 0x23, 0xce, 0x4d, 0xed, 0x66, 0x2d, 0x29, 0x07, 0x04, 0xa5, 0x16, 0x93,
+ 0x39, 0x28, 0x43, 0xf5,
+ 0x75, 0xbd, 0x5a, 0xc8, 0xaf, 0x95, 0xd5, 0x70, 0x40, 0xc2, 0xa3, 0x24,
+ 0x16, 0xc5, 0xba, 0x8b,
+ 0x9f, 0x04, 0xee, 0x9b, 0x32, 0x7c, 0xbc, 0x90, 0xc0, 0x85, 0x26, 0x6c,
+ 0x3a, 0x8c, 0x0d, 0x5e,
+ 0xa2, 0x1f, 0x62, 0xbd, 0x6a, 0x96, 0xc3, 0x1a, 0x55, 0x0e, 0x09, 0xea,
+ 0x54, 0x47, 0x56, 0x80,
+ 0x0f, 0x8b, 0x81, 0x84, 0x1f, 0x82, 0x2b, 0xa7, 0xa9, 0x17, 0xfd, 0xeb,
+ 0xca, 0x90, 0x0c, 0xf4,
+ 0x54, 0x97, 0x4e, 0xc3, 0x81, 0x35, 0x99, 0xd1, 0xac, 0x0a, 0x0f, 0x2c,
+ 0x6c, 0xb2, 0x2f, 0xad,
+ 0x86, 0x4c, 0x09, 0xca, 0xf0, 0x48, 0x96, 0x67, 0xde, 0xcb, 0x4f, 0xbb,
+ 0x68, 0x40, 0xc7, 0x4b,
+ 0x93, 0x19, 0xfb, 0x8a, 0x41, 0xd4, 0x21, 0xc2, 0xf5, 0x28, 0x3c, 0xb0,
+ 0x73, 0x8d, 0xbc, 0xf1,
+ 0x5a, 0x6e, 0x02, 0x34, 0xba, 0x10, 0x61, 0x25, 0x71, 0xca, 0xaf, 0x6b,
+ 0x66, 0xec, 0x48, 0xd1,
+ 0x3d, 0x1b, 0x8c, 0x26, 0x58, 0xea, 0x7f, 0x8a, 0x95, 0x8b, 0x2f, 0x86,
+ 0x6e, 0xcb, 0x5b, 0xde,
+ 0x94, 0x84, 0xdd, 0x10, 0xbd, 0x27, 0x5d, 0xb8, 0x7a, 0x48, 0x6c, 0x72,
+ 0x76, 0xa2, 0x6e, 0xcf,
+ 0x56, 0x73, 0x17, 0x25, 0xc9, 0xb8, 0xfc, 0x77, 0x44, 0x67, 0xb5, 0xb7,
+ 0x2f, 0xed, 0xf9, 0x7e,
+ 0xbf, 0x5c, 0x37, 0xe3, 0x38, 0x7b, 0x23, 0x62, 0x58, 0x9a, 0xd7, 0xc8,
+ 0x80, 0x35, 0xf3, 0xf0,
+ 0x95, 0xf6, 0x10, 0x63, 0x99, 0x80, 0x8e, 0xeb, 0x0e, 0x9f, 0x31, 0xde,
+ 0xb6, 0x6c, 0x05, 0x47,
+ 0xb9, 0xb3, 0xdc, 0x0a, 0xe0, 0x2f, 0x8c, 0x4b, 0xa3, 0x2d, 0xda, 0xa6,
+ 0x45, 0xd4, 0x4a, 0x46,
+ 0x11, 0x5e, 0x40, 0x4f, 0x21, 0x45, 0x7d, 0x2a, 0x38, 0x39, 0xc4, 0xfe,
+ 0x9d, 0x73, 0x14, 0xdf,
+ 0x0b, 0x80, 0x33, 0x8b, 0x8f, 0x5b, 0xe1, 0x28, 0xba, 0xcd, 0x4a, 0x1e,
+ 0x4c, 0x2e, 0x63, 0x91,
+ 0x71, 0xb6, 0xe8, 0xc7, 0x3f, 0x4c, 0x1f, 0xff, 0x53, 0x18, 0x14, 0xd1,
+ 0x90, 0x7b, 0xd5, 0xee,
+ 0xb0, 0xd7, 0xb6, 0x67, 0x27, 0xf9, 0x08, 0xc5, 0xf1, 0x8d, 0x2a, 0x23,
+ 0x4a, 0xa5, 0xff, 0x04,
+ 0x1c, 0x31, 0x98, 0x2d, 0x76, 0x4a, 0x33, 0x2b, 0x79, 0x43, 0x83, 0x8e,
+ 0x14, 0xbc, 0xce, 0xf8,
+ 0xdc, 0x22, 0x0b, 0xfe, 0x4a, 0x58, 0xf7, 0x42, 0xaf, 0x01, 0xe0, 0xd0,
+ 0x0e, 0xac, 0x8f, 0x9a,
+ 0xa8, 0xed, 0x9c, 0x45, 0xc1, 0x6a, 0xf1, 0x61, 0x9b, 0x14, 0x1e, 0x58,
+ 0xd8, 0xa7, 0x5e, 0x99,
+ 0xc1, 0x61, 0x5e, 0xa0, 0x18, 0xb5, 0x17, 0x3a, 0xa2, 0x95, 0x3e, 0xf2,
+ 0xda, 0xde, 0x2a, 0xea,
+ 0x2a, 0xaa, 0x27, 0x80, 0xa1, 0xfb, 0xad, 0x89, 0x56, 0x05, 0xe6, 0x16,
+ 0x36, 0x59, 0xf6, 0xb7,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0xac, 0xe6, 0x2e, 0x4a, 0x51, 0xb3, 0x3b, 0xee, 0x88, 0xce, 0xa9, 0xad,
+ 0x5e, 0x19, 0x31, 0xfc,
+ 0x48, 0xa6, 0xd6, 0xee, 0xf7, 0x7f, 0xaa, 0xfa, 0xd5, 0x49, 0x8c, 0xa2,
+ 0x78, 0x0e, 0xe1, 0x55,
+ 0x7a, 0x36, 0xdb, 0x4c, 0xb0, 0x17, 0xfe, 0xd7, 0xe9, 0xd5, 0x5e, 0xcf,
+ 0xdc, 0x55, 0xb6, 0x7f,
+ },
};
diff --git a/lib/nettle/gost/magma.c b/lib/nettle/gost/magma.c
index 60d3e44a8b..ffbb394018 100644
--- a/lib/nettle/gost/magma.c
+++ b/lib/nettle/gost/magma.c
@@ -23,70 +23,73 @@
*/
#if HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#ifndef HAVE_NETTLE_MAGMA_SET_KEY
-#include <assert.h>
+# include <assert.h>
-#include <nettle/macros.h>
-#include "nettle-write.h"
-#include "magma.h"
-#ifndef HAVE_NETTLE_GOST28147_SET_KEY
-#include "gost28147.h"
-#else
-#include <nettle/gost28147.h>
-#endif
+# include <nettle/macros.h>
+# include "nettle-write.h"
+# include "magma.h"
+# ifndef HAVE_NETTLE_GOST28147_SET_KEY
+# include "gost28147.h"
+# else
+# include <nettle/gost28147.h>
+# endif
-void
-magma_set_key(struct magma_ctx *ctx, const uint8_t *key)
+void magma_set_key(struct magma_ctx *ctx, const uint8_t * key)
{
- unsigned i;
+ unsigned i;
- for (i = 0; i < 8; i++, key += 4)
- ctx->key[i] = READ_UINT32(key);
+ for (i = 0; i < 8; i++, key += 4)
+ ctx->key[i] = READ_UINT32(key);
}
void
magma_encrypt(const struct magma_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- uint32_t block[2];
+ uint32_t block[2];
- assert(!(length % MAGMA_BLOCK_SIZE));
+ assert(!(length % MAGMA_BLOCK_SIZE));
- while (length)
- {
- block[1] = READ_UINT32(src); src += 4;
- block[0] = READ_UINT32(src); src += 4;
- gost28147_encrypt_simple(ctx->key, gost28147_param_TC26_Z.sbox,
- block, block);
- WRITE_UINT32(dst, block[1]); dst += 4;
- WRITE_UINT32(dst, block[0]); dst += 4;
- length -= MAGMA_BLOCK_SIZE;
- }
+ while (length) {
+ block[1] = READ_UINT32(src);
+ src += 4;
+ block[0] = READ_UINT32(src);
+ src += 4;
+ gost28147_encrypt_simple(ctx->key, gost28147_param_TC26_Z.sbox,
+ block, block);
+ WRITE_UINT32(dst, block[1]);
+ dst += 4;
+ WRITE_UINT32(dst, block[0]);
+ dst += 4;
+ length -= MAGMA_BLOCK_SIZE;
+ }
}
void
magma_decrypt(const struct magma_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src)
+ size_t length, uint8_t * dst, const uint8_t * src)
{
- uint32_t block[2];
+ uint32_t block[2];
- assert(!(length % MAGMA_BLOCK_SIZE));
+ assert(!(length % MAGMA_BLOCK_SIZE));
- while (length)
- {
- block[1] = READ_UINT32(src); src += 4;
- block[0] = READ_UINT32(src); src += 4;
- gost28147_decrypt_simple(ctx->key, gost28147_param_TC26_Z.sbox,
- block, block);
- WRITE_UINT32(dst, block[1]); dst += 4;
- WRITE_UINT32(dst, block[0]); dst += 4;
- length -= MAGMA_BLOCK_SIZE;
- }
+ while (length) {
+ block[1] = READ_UINT32(src);
+ src += 4;
+ block[0] = READ_UINT32(src);
+ src += 4;
+ gost28147_decrypt_simple(ctx->key, gost28147_param_TC26_Z.sbox,
+ block, block);
+ WRITE_UINT32(dst, block[1]);
+ dst += 4;
+ WRITE_UINT32(dst, block[0]);
+ dst += 4;
+ length -= MAGMA_BLOCK_SIZE;
+ }
}
-#endif /* HAVE_NETTLE_MAGMA_SET_KEY */
+#endif /* HAVE_NETTLE_MAGMA_SET_KEY */
diff --git a/lib/nettle/gost/magma.h b/lib/nettle/gost/magma.h
index 245fc7936f..bef8716db8 100644
--- a/lib/nettle/gost/magma.h
+++ b/lib/nettle/gost/magma.h
@@ -32,47 +32,42 @@
*/
#ifndef GNUTLS_LIB_NETTLE_MAGMA_H_INCLUDED
-#define GNUTLS_LIB_NETTLE_MAGMA_H_INCLUDED
+# define GNUTLS_LIB_NETTLE_MAGMA_H_INCLUDED
-#include "config.h"
+# include "config.h"
-#ifndef HAVE_NETTLE_MAGMA_SET_KEY
+# ifndef HAVE_NETTLE_MAGMA_SET_KEY
-#include <nettle/nettle-types.h>
+# include <nettle/nettle-types.h>
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
-
-#define magma_set_key _gnutls_magma_set_key
-#define magma_set_param _gnutls_magma_set_param
-#define magma_encrypt _gnutls_magma_encrypt
-#define magma_decrypt _gnutls_magma_decrypt
-
-#define MAGMA_KEY_SIZE 32
-#define MAGMA_BLOCK_SIZE 8
-
-struct magma_ctx
-{
- uint32_t key[MAGMA_KEY_SIZE/4];
-};
-
-void
-magma_set_key(struct magma_ctx *ctx, const uint8_t *key);
-
-void
-magma_encrypt(const struct magma_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-void
-magma_decrypt(const struct magma_ctx *ctx,
- size_t length, uint8_t *dst,
- const uint8_t *src);
-
-#ifdef __cplusplus
-}
-#endif
+# endif
+
+# define magma_set_key _gnutls_magma_set_key
+# define magma_set_param _gnutls_magma_set_param
+# define magma_encrypt _gnutls_magma_encrypt
+# define magma_decrypt _gnutls_magma_decrypt
+
+# define MAGMA_KEY_SIZE 32
+# define MAGMA_BLOCK_SIZE 8
-#endif
+ struct magma_ctx {
+ uint32_t key[MAGMA_KEY_SIZE / 4];
+ };
-#endif /* GNUTLS_LIB_NETTLE_MAGMA_H_INCLUDED */
+ void
+ magma_set_key(struct magma_ctx *ctx, const uint8_t * key);
+
+ void
+ magma_encrypt(const struct magma_ctx *ctx,
+ size_t length, uint8_t * dst, const uint8_t * src);
+ void
+ magma_decrypt(const struct magma_ctx *ctx,
+ size_t length, uint8_t * dst, const uint8_t * src);
+
+# ifdef __cplusplus
+}
+# endif
+# endif
+#endif /* GNUTLS_LIB_NETTLE_MAGMA_H_INCLUDED */
diff --git a/lib/nettle/gost/nettle-write.h b/lib/nettle/gost/nettle-write.h
index ca0c0843eb..e97e6434b2 100644
--- a/lib/nettle/gost/nettle-write.h
+++ b/lib/nettle/gost/nettle-write.h
@@ -32,12 +32,12 @@
*/
#ifndef GNUTLS_LIB_NETTLE_GOST_NETTLE_WRITE_H
-#define GNUTLS_LIB_NETTLE_GOST_NETTLE_WRITE_H
+# define GNUTLS_LIB_NETTLE_GOST_NETTLE_WRITE_H
/* For size_t */
-#include <stddef.h>
+# include <stddef.h>
-#include <stdint.h>
+# include <stdint.h>
/* Write the word array at SRC to the byte array at DST, using little
endian (le) or big endian (be) byte order, and truncating the
@@ -45,17 +45,14 @@
/* FIXME: Use a macro shortcut to memcpy for native endianness. */
void
-#define _nettle_write_be32 _gnutls_nettle_ecc_write_be32
-_nettle_write_be32(size_t length, uint8_t *dst,
- const uint32_t *src);
+# define _nettle_write_be32 _gnutls_nettle_ecc_write_be32
+ _nettle_write_be32(size_t length, uint8_t * dst, const uint32_t * src);
void
-#define _nettle_write_le32 _gnutls_nettle_ecc_write_le32
-_nettle_write_le32(size_t length, uint8_t *dst,
- const uint32_t *src);
+# define _nettle_write_le32 _gnutls_nettle_ecc_write_le32
+ _nettle_write_le32(size_t length, uint8_t * dst, const uint32_t * src);
void
-#define _nettle_write_le64 _gnutls_nettle_ecc_write_le64
-_nettle_write_le64(size_t length, uint8_t *dst,
- const uint64_t *src);
+# define _nettle_write_le64 _gnutls_nettle_ecc_write_le64
+ _nettle_write_le64(size_t length, uint8_t * dst, const uint64_t * src);
-#endif /* GNUTLS_LIB_NETTLE_GOST_NETTLE_WRITE_H */
+#endif /* GNUTLS_LIB_NETTLE_GOST_NETTLE_WRITE_H */
diff --git a/lib/nettle/gost/streebog-meta.c b/lib/nettle/gost/streebog-meta.c
index c64fa001c9..3b36f2f447 100644
--- a/lib/nettle/gost/streebog-meta.c
+++ b/lib/nettle/gost/streebog-meta.c
@@ -34,15 +34,15 @@
#endif
#ifndef HAVE_NETTLE_STREEBOG512_UPDATE
-#include <gnutls_int.h>
+# include <gnutls_int.h>
-#include <nettle/nettle-meta.h>
+# include <nettle/nettle-meta.h>
-#include "streebog.h"
+# include "streebog.h"
const struct nettle_hash nettle_streebog512
-= _NETTLE_HASH(streebog512, STREEBOG512);
+ = _NETTLE_HASH(streebog512, STREEBOG512);
const struct nettle_hash nettle_streebog256
-= _NETTLE_HASH(streebog256, STREEBOG256);
+ = _NETTLE_HASH(streebog256, STREEBOG256);
#endif
diff --git a/lib/nettle/gost/streebog.c b/lib/nettle/gost/streebog.c
index 2799e9ea4a..bb849c672f 100644
--- a/lib/nettle/gost/streebog.c
+++ b/lib/nettle/gost/streebog.c
@@ -36,1108 +36,1105 @@
#endif
#ifndef HAVE_NETTLE_STREEBOG512_UPDATE
-#include <gnutls_int.h>
+# include <gnutls_int.h>
-#include <stdlib.h>
-#include <string.h>
+# include <stdlib.h>
+# include <string.h>
-#include "streebog.h"
-
-#include <nettle/macros.h>
-#include "nettle-write.h"
+# include "streebog.h"
+# include <nettle/macros.h>
+# include "nettle-write.h"
/* Pre-computed results of multiplication of bytes on A and reordered with
Pi[]. */
-static const uint64_t streebog_table[8][256] =
-{
- /* 0 */
- { 0xd01f715b5c7ef8e6ULL, 0x16fa240980778325ULL,
- 0xa8a42e857ee049c8ULL, 0x6ac1068fa186465bULL,
- 0x6e417bd7a2e9320bULL, 0x665c8167a437daabULL,
- 0x7666681aa89617f6ULL, 0x4b959163700bdcf5ULL,
- 0xf14be6b78df36248ULL, 0xc585bd689a625cffULL,
- 0x9557d7fca67d82cbULL, 0x89f0b969af6dd366ULL,
- 0xb0833d48749f6c35ULL, 0xa1998c23b1ecbc7cULL,
- 0x8d70c431ac02a736ULL, 0xd6dfbc2fd0a8b69eULL,
- 0x37aeb3e551fa198bULL, 0x0b7d128a40b5cf9cULL,
- 0x5a8f2008b5780cbcULL, 0xedec882284e333e5ULL,
- 0xd25fc177d3c7c2ceULL, 0x5e0f5d50b61778ecULL,
- 0x1d873683c0c24cb9ULL, 0xad040bcbb45d208cULL,
- 0x2f89a0285b853c76ULL, 0x5732fff6791b8d58ULL,
- 0x3e9311439ef6ec3fULL, 0xc9183a809fd3c00fULL,
- 0x83adf3f5260a01eeULL, 0xa6791941f4e8ef10ULL,
- 0x103ae97d0ca1cd5dULL, 0x2ce948121dee1b4aULL,
- 0x39738421dbf2bf53ULL, 0x093da2a6cf0cf5b4ULL,
- 0xcd9847d89cbcb45fULL, 0xf9561c078b2d8ae8ULL,
- 0x9c6a755a6971777fULL, 0xbc1ebaa0712ef0c5ULL,
- 0x72e61542abf963a6ULL, 0x78bb5fde229eb12eULL,
- 0x14ba94250fceb90dULL, 0x844d6697630e5282ULL,
- 0x98ea08026a1e032fULL, 0xf06bbea144217f5cULL,
- 0xdb6263d11ccb377aULL, 0x641c314b2b8ee083ULL,
- 0x320e96ab9b4770cfULL, 0x1ee7deb986a96b85ULL,
- 0xe96cf57a878c47b5ULL, 0xfdd6615f8842feb8ULL,
- 0xc83862965601dd1bULL, 0x2ea9f83e92572162ULL,
- 0xf876441142ff97fcULL, 0xeb2c455608357d9dULL,
- 0x5612a7e0b0c9904cULL, 0x6c01cbfb2d500823ULL,
- 0x4548a6a7fa037a2dULL, 0xabc4c6bf388b6ef4ULL,
- 0xbade77d4fdf8bebdULL, 0x799b07c8eb4cac3aULL,
- 0x0c9d87e805b19cf0ULL, 0xcb588aac106afa27ULL,
- 0xea0c1d40c1e76089ULL, 0x2869354a1e816f1aULL,
- 0xff96d17307fbc490ULL, 0x9f0a9d602f1a5043ULL,
- 0x96373fc6e016a5f7ULL, 0x5292dab8b3a6e41cULL,
- 0x9b8ae0382c752413ULL, 0x4f15ec3b7364a8a5ULL,
- 0x3fb349555724f12bULL, 0xc7c50d4415db66d7ULL,
- 0x92b7429ee379d1a7ULL, 0xd37f99611a15dfdaULL,
- 0x231427c05e34a086ULL, 0xa439a96d7b51d538ULL,
- 0xb403401077f01865ULL, 0xdda2aea5901d7902ULL,
- 0x0a5d4a9c8967d288ULL, 0xc265280adf660f93ULL,
- 0x8bb0094520d4e94eULL, 0x2a29856691385532ULL,
- 0x42a833c5bf072941ULL, 0x73c64d54622b7eb2ULL,
- 0x07e095624504536cULL, 0x8a905153e906f45aULL,
- 0x6f6123c16b3b2f1fULL, 0xc6e55552dc097bc3ULL,
- 0x4468feb133d16739ULL, 0xe211e7f0c7398829ULL,
- 0xa2f96419f7879b40ULL, 0x19074bdbc3ad38e9ULL,
- 0xf4ebc3f9474e0b0cULL, 0x43886bd376d53455ULL,
- 0xd8028beb5aa01046ULL, 0x51f23282f5cdc320ULL,
- 0xe7b1c2be0d84e16dULL, 0x081dfab006dee8a0ULL,
- 0x3b33340d544b857bULL, 0x7f5bcabc679ae242ULL,
- 0x0edd37c48a08a6d8ULL, 0x81ed43d9a9b33bc6ULL,
- 0xb1a3655ebd4d7121ULL, 0x69a1eeb5e7ed6167ULL,
- 0xf6ab73d5c8f73124ULL, 0x1a67a3e185c61fd5ULL,
- 0x2dc91004d43c065eULL, 0x0240b02c8fb93a28ULL,
- 0x90f7f2b26cc0eb8fULL, 0x3cd3a16f114fd617ULL,
- 0xaae49ea9f15973e0ULL, 0x06c0cd748cd64e78ULL,
- 0xda423bc7d5192a6eULL, 0xc345701c16b41287ULL,
- 0x6d2193ede4821537ULL, 0xfcf639494190e3acULL,
- 0x7c3b228621f1c57eULL, 0xfb16ac2b0494b0c0ULL,
- 0xbf7e529a3745d7f9ULL, 0x6881b6a32e3f7c73ULL,
- 0xca78d2bad9b8e733ULL, 0xbbfe2fc2342aa3a9ULL,
- 0x0dbddffecc6381e4ULL, 0x70a6a56e2440598eULL,
- 0xe4d12a844befc651ULL, 0x8c509c2765d0ba22ULL,
- 0xee8c6018c28814d9ULL, 0x17da7c1f49a59e31ULL,
- 0x609c4c1328e194d3ULL, 0xb3e3d57232f44b09ULL,
- 0x91d7aaa4a512f69bULL, 0x0ffd6fd243dabbccULL,
- 0x50d26a943c1fde34ULL, 0x6be15e9968545b4fULL,
- 0x94778fea6faf9fdfULL, 0x2b09dd7058ea4826ULL,
- 0x677cd9716de5c7bfULL, 0x49d5214fffb2e6ddULL,
- 0x0360e83a466b273cULL, 0x1fc786af4f7b7691ULL,
- 0xa0b9d435783ea168ULL, 0xd49f0c035f118cb6ULL,
- 0x01205816c9d21d14ULL, 0xac2453dd7d8f3d98ULL,
- 0x545217cc3f70aa64ULL, 0x26b4028e9489c9c2ULL,
- 0xdec2469fd6765e3eULL, 0x04807d58036f7450ULL,
- 0xe5f17292823ddb45ULL, 0xf30b569b024a5860ULL,
- 0x62dcfc3fa758aefbULL, 0xe84cad6c4e5e5aa1ULL,
- 0xccb81fce556ea94bULL, 0x53b282ae7a74f908ULL,
- 0x1b47fbf74c1402c1ULL, 0x368eebf39828049fULL,
- 0x7afbeff2ad278b06ULL, 0xbe5e0a8cfe97caedULL,
- 0xcfd8f7f413058e77ULL, 0xf78b2bc301252c30ULL,
- 0x4d555c17fcdd928dULL, 0x5f2f05467fc565f8ULL,
- 0x24f4b2a21b30f3eaULL, 0x860dd6bbecb768aaULL,
- 0x4c750401350f8f99ULL, 0x0000000000000000ULL,
- 0xecccd0344d312ef1ULL, 0xb5231806be220571ULL,
- 0xc105c030990d28afULL, 0x653c695de25cfd97ULL,
- 0x159acc33c61ca419ULL, 0xb89ec7f872418495ULL,
- 0xa9847693b73254dcULL, 0x58cf90243ac13694ULL,
- 0x59efc832f3132b80ULL, 0x5c4fed7c39ae42c4ULL,
- 0x828dabe3efd81cfaULL, 0xd13f294d95ace5f2ULL,
- 0x7d1b7a90e823d86aULL, 0xb643f03cf849224dULL,
- 0x3df3f979d89dcb03ULL, 0x7426d836272f2ddeULL,
- 0xdfe21e891fa4432aULL, 0x3a136c1b9d99986fULL,
- 0xfa36f43dcd46add4ULL, 0xc025982650df35bbULL,
- 0x856d3e81aadc4f96ULL, 0xc4a5e57e53b041ebULL,
- 0x4708168b75ba4005ULL, 0xaf44bbe73be41aa4ULL,
- 0x971767d029c4b8e3ULL, 0xb9be9feebb939981ULL,
- 0x215497ecd18d9aaeULL, 0x316e7e91dd2c57f3ULL,
- 0xcef8afe2dad79363ULL, 0x3853dc371220a247ULL,
- 0x35ee03c9de4323a3ULL, 0xe6919aa8c456fc79ULL,
- 0xe05157dc4880b201ULL, 0x7bdbb7e464f59612ULL,
- 0x127a59518318f775ULL, 0x332ecebd52956ddbULL,
- 0x8f30741d23bb9d1eULL, 0xd922d3fd93720d52ULL,
- 0x7746300c61440ae2ULL, 0x25d4eab4d2e2eefeULL,
- 0x75068020eefd30caULL, 0x135a01474acaea61ULL,
- 0x304e268714fe4ae7ULL, 0xa519f17bb283c82cULL,
- 0xdc82f6b359cf6416ULL, 0x5baf781e7caa11a8ULL,
- 0xb2c38d64fb26561dULL, 0x34ce5bdf17913eb7ULL,
- 0x5d6fb56af07c5fd0ULL, 0x182713cd0a7f25fdULL,
- 0x9e2ac576e6c84d57ULL, 0x9aaab82ee5a73907ULL,
- 0xa3d93c0f3e558654ULL, 0x7e7b92aaae48ff56ULL,
- 0x872d8ead256575beULL, 0x41c8dbfff96c0e7dULL,
- 0x99ca5014a3cc1e3bULL, 0x40e883e930be1369ULL,
- 0x1ca76e95091051adULL, 0x4e35b42dbab6b5b1ULL,
- 0x05a0254ecabd6944ULL, 0xe1710fca8152af15ULL,
- 0xf22b0e8dcb984574ULL, 0xb763a82a319b3f59ULL,
- 0x63fca4296e8ab3efULL, 0x9d4a2d4ca0a36a6bULL,
- 0xe331bfe60eeb953dULL, 0xd5bf541596c391a2ULL,
- 0xf5cb9bef8e9c1618ULL, 0x46284e9dbc685d11ULL,
- 0x2074cffa185f87baULL, 0xbd3ee2b6b8fcedd1ULL,
- 0xae64e3f1f23607b0ULL, 0xfeb68965ce29d984ULL,
- 0x55724fdaf6a2b770ULL, 0x29496d5cd753720eULL,
- 0xa75941573d3af204ULL, 0x8e102c0bea69800aULL,
- 0x111ab16bc573d049ULL, 0xd7ffe439197aab8aULL,
- 0xefac380e0b5a09cdULL, 0x48f579593660fbc9ULL,
- 0x22347fd697e6bd92ULL, 0x61bc1405e13389c7ULL,
- 0x4ab5c975b9d9c1e1ULL, 0x80cd1bcf606126d2ULL,
- 0x7186fd78ed92449aULL, 0x93971a882aabccb3ULL,
- 0x88d0e17f66bfce72ULL, 0x27945a985d5bd4d6ULL },
- /* 1 */
- { 0xde553f8c05a811c8ULL, 0x1906b59631b4f565ULL,
- 0x436e70d6b1964ff7ULL, 0x36d343cb8b1e9d85ULL,
- 0x843dfacc858aab5aULL, 0xfdfc95c299bfc7f9ULL,
- 0x0f634bdea1d51fa2ULL, 0x6d458b3b76efb3cdULL,
- 0x85c3f77cf8593f80ULL, 0x3c91315fbe737cb2ULL,
- 0x2148b03366ace398ULL, 0x18f8b8264c6761bfULL,
- 0xc830c1c495c9fb0fULL, 0x981a76102086a0aaULL,
- 0xaa16012142f35760ULL, 0x35cc54060c763cf6ULL,
- 0x42907d66cc45db2dULL, 0x8203d44b965af4bcULL,
- 0x3d6f3cefc3a0e868ULL, 0xbc73ff69d292bda7ULL,
- 0x8722ed0102e20a29ULL, 0x8f8185e8cd34deb7ULL,
- 0x9b0561dda7ee01d9ULL, 0x5335a0193227fad6ULL,
- 0xc9cecc74e81a6fd5ULL, 0x54f5832e5c2431eaULL,
- 0x99e47ba05d553470ULL, 0xf7bee756acd226ceULL,
- 0x384e05a5571816fdULL, 0xd1367452a47d0e6aULL,
- 0xf29fde1c386ad85bULL, 0x320c77316275f7caULL,
- 0xd0c879e2d9ae9ab0ULL, 0xdb7406c69110ef5dULL,
- 0x45505e51a2461011ULL, 0xfc029872e46c5323ULL,
- 0xfa3cb6f5f7bc0cc5ULL, 0x031f17cd8768a173ULL,
- 0xbd8df2d9af41297dULL, 0x9d3b4f5ab43e5e3fULL,
- 0x4071671b36feee84ULL, 0x716207e7d3e3b83dULL,
- 0x48d20ff2f9283a1aULL, 0x27769eb4757cbc7eULL,
- 0x5c56ebc793f2e574ULL, 0xa48b474f9ef5dc18ULL,
- 0x52cbada94ff46e0cULL, 0x60c7da982d8199c6ULL,
- 0x0e9d466edc068b78ULL, 0x4eec2175eaf865fcULL,
- 0x550b8e9e21f7a530ULL, 0x6b7ba5bc653fec2bULL,
- 0x5eb7f1ba6949d0ddULL, 0x57ea94e3db4c9099ULL,
- 0xf640eae6d101b214ULL, 0xdd4a284182c0b0bbULL,
- 0xff1d8fbf6304f250ULL, 0xb8accb933bf9d7e8ULL,
- 0xe8867c478eb68c4dULL, 0x3f8e2692391bddc1ULL,
- 0xcb2fd60912a15a7cULL, 0xaec935dbab983d2fULL,
- 0xf55ffd2b56691367ULL, 0x80e2ce366ce1c115ULL,
- 0x179bf3f8edb27e1dULL, 0x01fe0db07dd394daULL,
- 0xda8a0b76ecc37b87ULL, 0x44ae53e1df9584cbULL,
- 0xb310b4b77347a205ULL, 0xdfab323c787b8512ULL,
- 0x3b511268d070b78eULL, 0x65e6e3d2b9396753ULL,
- 0x6864b271e2574d58ULL, 0x259784c98fc789d7ULL,
- 0x02e11a7dfabb35a9ULL, 0x8841a6dfa337158bULL,
- 0x7ade78c39b5dcdd0ULL, 0xb7cf804d9a2cc84aULL,
- 0x20b6bd831b7f7742ULL, 0x75bd331d3a88d272ULL,
- 0x418f6aab4b2d7a5eULL, 0xd9951cbb6babdaf4ULL,
- 0xb6318dfde7ff5c90ULL, 0x1f389b112264aa83ULL,
- 0x492c024284fbaec0ULL, 0xe33a0363c608f9a0ULL,
- 0x2688930408af28a4ULL, 0xc7538a1a341ce4adULL,
- 0x5da8e677ee2171aeULL, 0x8c9e92254a5c7fc4ULL,
- 0x63d8cd55aae938b5ULL, 0x29ebd8daa97a3706ULL,
- 0x959827b37be88aa1ULL, 0x1484e4356adadf6eULL,
- 0xa7945082199d7d6bULL, 0xbf6ce8a455fa1cd4ULL,
- 0x9cc542eac9edcae5ULL, 0x79c16f0e1c356ca3ULL,
- 0x89bfab6fdee48151ULL, 0xd4174d1830c5f0ffULL,
- 0x9258048415eb419dULL, 0x6139d72850520d1cULL,
- 0x6a85a80c18ec78f1ULL, 0xcd11f88e0171059aULL,
- 0xcceff53e7ca29140ULL, 0xd229639f2315af19ULL,
- 0x90b91ef9ef507434ULL, 0x5977d28d074a1be1ULL,
- 0x311360fce51d56b9ULL, 0xc093a92d5a1f2f91ULL,
- 0x1a19a25bb6dc5416ULL, 0xeb996b8a09de2d3eULL,
- 0xfee3820f1ed7668aULL, 0xd7085ad5b7ad518cULL,
- 0x7fff41890fe53345ULL, 0xec5948bd67dde602ULL,
- 0x2fd5f65dbaaa68e0ULL, 0xa5754affe32648c2ULL,
- 0xf8ddac880d07396cULL, 0x6fa491468c548664ULL,
- 0x0c7c5c1326bdbed1ULL, 0x4a33158f03930fb3ULL,
- 0x699abfc19f84d982ULL, 0xe4fa2054a80b329cULL,
- 0x6707f9af438252faULL, 0x08a368e9cfd6d49eULL,
- 0x47b1442c58fd25b8ULL, 0xbbb3dc5ebc91769bULL,
- 0x1665fe489061eac7ULL, 0x33f27a811fa66310ULL,
- 0x93a609346838d547ULL, 0x30ed6d4c98cec263ULL,
- 0x1dd9816cd8df9f2aULL, 0x94662a03063b1e7bULL,
- 0x83fdd9fbeb896066ULL, 0x7b207573e68e590aULL,
- 0x5f49fc0a149a4407ULL, 0x343259b671a5a82cULL,
- 0xfbc2bb458a6f981fULL, 0xc272b350a0a41a38ULL,
- 0x3aaf1fd8ada32354ULL, 0x6cbb868b0b3c2717ULL,
- 0xa2b569c88d2583feULL, 0xf180c9d1bf027928ULL,
- 0xaf37386bd64ba9f5ULL, 0x12bacab2790a8088ULL,
- 0x4c0d3b0810435055ULL, 0xb2eeb9070e9436dfULL,
- 0xc5b29067cea7d104ULL, 0xdcb425f1ff132461ULL,
- 0x4f122cc5972bf126ULL, 0xac282fa651230886ULL,
- 0xe7e537992f6393efULL, 0xe61b3a2952b00735ULL,
- 0x709c0a57ae302ce7ULL, 0xe02514ae416058d3ULL,
- 0xc44c9dd7b37445deULL, 0x5a68c5408022ba92ULL,
- 0x1c278cdca50c0bf0ULL, 0x6e5a9cf6f18712beULL,
- 0x86dce0b17f319ef3ULL, 0x2d34ec2040115d49ULL,
- 0x4bcd183f7e409b69ULL, 0x2815d56ad4a9a3dcULL,
- 0x24698979f2141d0dULL, 0x0000000000000000ULL,
- 0x1ec696a15fb73e59ULL, 0xd86b110b16784e2eULL,
- 0x8e7f8858b0e74a6dULL, 0x063e2e8713d05fe6ULL,
- 0xe2c40ed3bbdb6d7aULL, 0xb1f1aeca89fc97acULL,
- 0xe1db191e3cb3cc09ULL, 0x6418ee62c4eaf389ULL,
- 0xc6ad87aa49cf7077ULL, 0xd6f65765ca7ec556ULL,
- 0x9afb6c6dda3d9503ULL, 0x7ce05644888d9236ULL,
- 0x8d609f95378feb1eULL, 0x23a9aa4e9c17d631ULL,
- 0x6226c0e5d73aac6fULL, 0x56149953a69f0443ULL,
- 0xeeb852c09d66d3abULL, 0x2b0ac2a753c102afULL,
- 0x07c023376e03cb3cULL, 0x2ccae1903dc2c993ULL,
- 0xd3d76e2f5ec63bc3ULL, 0x9e2458973356ff4cULL,
- 0xa66a5d32644ee9b1ULL, 0x0a427294356de137ULL,
- 0x783f62be61e6f879ULL, 0x1344c70204d91452ULL,
- 0x5b96c8f0fdf12e48ULL, 0xa90916ecc59bf613ULL,
- 0xbe92e5142829880eULL, 0x727d102a548b194eULL,
- 0x1be7afebcb0fc0ccULL, 0x3e702b2244c8491bULL,
- 0xd5e940a84d166425ULL, 0x66f9f41f3e51c620ULL,
- 0xabe80c913f20c3baULL, 0xf07ec461c2d1edf2ULL,
- 0xf361d3ac45b94c81ULL, 0x0521394a94b8fe95ULL,
- 0xadd622162cf09c5cULL, 0xe97871f7f3651897ULL,
- 0xf4a1f09b2bba87bdULL, 0x095d6559b2054044ULL,
- 0x0bbc7f2448be75edULL, 0x2af4cf172e129675ULL,
- 0x157ae98517094bb4ULL, 0x9fda55274e856b96ULL,
- 0x914713499283e0eeULL, 0xb952c623462a4332ULL,
- 0x74433ead475b46a8ULL, 0x8b5eb112245fb4f8ULL,
- 0xa34b6478f0f61724ULL, 0x11a5dd7ffe6221fbULL,
- 0xc16da49d27ccbb4bULL, 0x76a224d0bde07301ULL,
- 0x8aa0bca2598c2022ULL, 0x4df336b86d90c48fULL,
- 0xea67663a740db9e4ULL, 0xef465f70e0b54771ULL,
- 0x39b008152acb8227ULL, 0x7d1e5bf4f55e06ecULL,
- 0x105bd0cf83b1b521ULL, 0x775c2960c033e7dbULL,
- 0x7e014c397236a79fULL, 0x811cc386113255cfULL,
- 0xeda7450d1a0e72d8ULL, 0x5889df3d7a998f3bULL,
- 0x2e2bfbedc779fc3aULL, 0xce0eef438619a4e9ULL,
- 0x372d4e7bf6cd095fULL, 0x04df34fae96b6a4fULL,
- 0xf923a13870d4adb6ULL, 0xa1aa7e050a4d228dULL,
- 0xa8f71b5cb84862c9ULL, 0xb52e9a306097fde3ULL,
- 0x0d8251a35b6e2a0bULL, 0x2257a7fee1c442ebULL,
- 0x73831d9a29588d94ULL, 0x51d4ba64c89ccf7fULL,
- 0x502ab7d4b54f5ba5ULL, 0x97793dce8153bf08ULL,
- 0xe5042de4d5d8a646ULL, 0x9687307efc802bd2ULL,
- 0xa05473b5779eb657ULL, 0xb4d097801d446939ULL,
- 0xcff0e2f3fbca3033ULL, 0xc38cbee0dd778ee2ULL,
- 0x464f499c252eb162ULL, 0xcad1dbb96f72cea6ULL,
- 0xba4dd1eec142e241ULL, 0xb00fa37af42f0376ULL },
- /* 2 */
- { 0xcce4cd3aa968b245ULL, 0x089d5484e80b7fafULL,
- 0x638246c1b3548304ULL, 0xd2fe0ec8c2355492ULL,
- 0xa7fbdf7ff2374eeeULL, 0x4df1600c92337a16ULL,
- 0x84e503ea523b12fbULL, 0x0790bbfd53ab0c4aULL,
- 0x198a780f38f6ea9dULL, 0x2ab30c8f55ec48cbULL,
- 0xe0f7fed6b2c49db5ULL, 0xb6ecf3f422cadbdcULL,
- 0x409c9a541358df11ULL, 0xd3ce8a56dfde3fe3ULL,
- 0xc3e9224312c8c1a0ULL, 0x0d6dfa58816ba507ULL,
- 0xddf3e1b179952777ULL, 0x04c02a42748bb1d9ULL,
- 0x94c2abff9f2decb8ULL, 0x4f91752da8f8acf4ULL,
- 0x78682befb169bf7bULL, 0xe1c77a48af2ff6c4ULL,
- 0x0c5d7ec69c80ce76ULL, 0x4cc1e4928fd81167ULL,
- 0xfeed3d24d9997b62ULL, 0x518bb6dfc3a54a23ULL,
- 0x6dbf2d26151f9b90ULL, 0xb5bc624b05ea664fULL,
- 0xe86aaa525acfe21aULL, 0x4801ced0fb53a0beULL,
- 0xc91463e6c00868edULL, 0x1027a815cd16fe43ULL,
- 0xf67069a0319204cdULL, 0xb04ccc976c8abce7ULL,
- 0xc0b9b3fc35e87c33ULL, 0xf380c77c58f2de65ULL,
- 0x50bb3241de4e2152ULL, 0xdf93f490435ef195ULL,
- 0xf1e0d25d62390887ULL, 0xaf668bfb1a3c3141ULL,
- 0xbc11b251f00a7291ULL, 0x73a5eed47e427d47ULL,
- 0x25bee3f6ee4c3b2eULL, 0x43cc0beb34786282ULL,
- 0xc824e778dde3039cULL, 0xf97d86d98a327728ULL,
- 0xf2b043e24519b514ULL, 0xe297ebf7880f4b57ULL,
- 0x3a94a49a98fab688ULL, 0x868516cb68f0c419ULL,
- 0xeffa11af0964ee50ULL, 0xa4ab4ec0d517f37dULL,
- 0xa9c6b498547c567aULL, 0x8e18424f80fbbbb6ULL,
- 0x0bcdc53bcf2bc23cULL, 0x137739aaea3643d0ULL,
- 0x2c1333ec1bac2ff0ULL, 0x8d48d3f0a7db0625ULL,
- 0x1e1ac3f26b5de6d7ULL, 0xf520f81f16b2b95eULL,
- 0x9f0f6ec450062e84ULL, 0x0130849e1deb6b71ULL,
- 0xd45e31ab8c7533a9ULL, 0x652279a2fd14e43fULL,
- 0x3209f01e70f1c927ULL, 0xbe71a770cac1a473ULL,
- 0x0e3d6be7a64b1894ULL, 0x7ec8148cff29d840ULL,
- 0xcb7476c7fac3be0fULL, 0x72956a4a63a91636ULL,
- 0x37f95ec21991138fULL, 0x9e3fea5a4ded45f5ULL,
- 0x7b38ba50964902e8ULL, 0x222e580bbde73764ULL,
- 0x61e253e0899f55e6ULL, 0xfc8d2805e352ad80ULL,
- 0x35994be3235ac56dULL, 0x09add01af5e014deULL,
- 0x5e8659a6780539c6ULL, 0xb17c48097161d796ULL,
- 0x026015213acbd6e2ULL, 0xd1ae9f77e515e901ULL,
- 0xb7dc776a3f21b0adULL, 0xaba6a1b96eb78098ULL,
- 0x9bcf4486248d9f5dULL, 0x582666c536455efdULL,
- 0xfdbdac9bfeb9c6f1ULL, 0xc47999be4163cdeaULL,
- 0x765540081722a7efULL, 0x3e548ed8ec710751ULL,
- 0x3d041f67cb51bac2ULL, 0x7958af71ac82d40aULL,
- 0x36c9da5c047a78feULL, 0xed9a048e33af38b2ULL,
- 0x26ee7249c96c86bdULL, 0x900281bdeba65d61ULL,
- 0x11172c8bd0fd9532ULL, 0xea0abf73600434f8ULL,
- 0x42fc8f75299309f3ULL, 0x34a9cf7d3eb1ae1cULL,
- 0x2b838811480723baULL, 0x5ce64c8742ceef24ULL,
- 0x1adae9b01fd6570eULL, 0x3c349bf9d6bad1b3ULL,
- 0x82453c891c7b75c0ULL, 0x97923a40b80d512bULL,
- 0x4a61dbf1c198765cULL, 0xb48ce6d518010d3eULL,
- 0xcfb45c858e480fd6ULL, 0xd933cbf30d1e96aeULL,
- 0xd70ea014ab558e3aULL, 0xc189376228031742ULL,
- 0x9262949cd16d8b83ULL, 0xeb3a3bed7def5f89ULL,
- 0x49314a4ee6b8cbcfULL, 0xdcc3652f647e4c06ULL,
- 0xda635a4c2a3e2b3dULL, 0x470c21a940f3d35bULL,
- 0x315961a157d174b4ULL, 0x6672e81dda3459acULL,
- 0x5b76f77a1165e36eULL, 0x445cb01667d36ec8ULL,
- 0xc5491d205c88a69bULL, 0x456c34887a3805b9ULL,
- 0xffddb9bac4721013ULL, 0x99af51a71e4649bfULL,
- 0xa15be01cbc7729d5ULL, 0x52db2760e485f7b0ULL,
- 0x8c78576eba306d54ULL, 0xae560f6507d75a30ULL,
- 0x95f22f6182c687c9ULL, 0x71c5fbf54489aba5ULL,
- 0xca44f259e728d57eULL, 0x88b87d2ccebbdc8dULL,
- 0xbab18d32be4a15aaULL, 0x8be8ec93e99b611eULL,
- 0x17b713e89ebdf209ULL, 0xb31c5d284baa0174ULL,
- 0xeeca9531148f8521ULL, 0xb8d198138481c348ULL,
- 0x8988f9b2d350b7fcULL, 0xb9e11c8d996aa839ULL,
- 0x5a4673e40c8e881fULL, 0x1687977683569978ULL,
- 0xbf4123eed72acf02ULL, 0x4ea1f1b3b513c785ULL,
- 0xe767452be16f91ffULL, 0x7505d1b730021a7cULL,
- 0xa59bca5ec8fc980cULL, 0xad069eda20f7e7a3ULL,
- 0x38f4b1bba231606aULL, 0x60d2d77e94743e97ULL,
- 0x9affc0183966f42cULL, 0x248e6768f3a7505fULL,
- 0xcdd449a4b483d934ULL, 0x87b59255751baf68ULL,
- 0x1bea6d2e023d3c7fULL, 0x6b1f12455b5ffcabULL,
- 0x743555292de9710dULL, 0xd8034f6d10f5fddfULL,
- 0xc6198c9f7ba81b08ULL, 0xbb8109aca3a17edbULL,
- 0xfa2d1766ad12cabbULL, 0xc729080166437079ULL,
- 0x9c5fff7b77269317ULL, 0x0000000000000000ULL,
- 0x15d706c9a47624ebULL, 0x6fdf38072fd44d72ULL,
- 0x5fb6dd3865ee52b7ULL, 0xa33bf53d86bcff37ULL,
- 0xe657c1b5fc84fa8eULL, 0xaa962527735cebe9ULL,
- 0x39c43525bfda0b1bULL, 0x204e4d2a872ce186ULL,
- 0x7a083ece8ba26999ULL, 0x554b9c9db72efbfaULL,
- 0xb22cd9b656416a05ULL, 0x96a2bedea5e63a5aULL,
- 0x802529a826b0a322ULL, 0x8115ad363b5bc853ULL,
- 0x8375b81701901eb1ULL, 0x3069e53f4a3a1fc5ULL,
- 0xbd2136cfede119e0ULL, 0x18bafc91251d81ecULL,
- 0x1d4a524d4c7d5b44ULL, 0x05f0aedc6960daa8ULL,
- 0x29e39d3072ccf558ULL, 0x70f57f6b5962c0d4ULL,
- 0x989fd53903ad22ceULL, 0xf84d024797d91c59ULL,
- 0x547b1803aac5908bULL, 0xf0d056c37fd263f6ULL,
- 0xd56eb535919e58d8ULL, 0x1c7ad6d351963035ULL,
- 0x2e7326cd2167f912ULL, 0xac361a443d1c8cd2ULL,
- 0x697f076461942a49ULL, 0x4b515f6fdc731d2dULL,
- 0x8ad8680df4700a6fULL, 0x41ac1eca0eb3b460ULL,
- 0x7d988533d80965d3ULL, 0xa8f6300649973d0bULL,
- 0x7765c4960ac9cc9eULL, 0x7ca801adc5e20ea2ULL,
- 0xdea3700e5eb59ae4ULL, 0xa06b6482a19c42a4ULL,
- 0x6a2f96db46b497daULL, 0x27def6d7d487edccULL,
- 0x463ca5375d18b82aULL, 0xa6cb5be1efdc259fULL,
- 0x53eba3fef96e9cc1ULL, 0xce84d81b93a364a7ULL,
- 0xf4107c810b59d22fULL, 0x333974806d1aa256ULL,
- 0x0f0def79bba073e5ULL, 0x231edc95a00c5c15ULL,
- 0xe437d494c64f2c6cULL, 0x91320523f64d3610ULL,
- 0x67426c83c7df32ddULL, 0x6eefbc99323f2603ULL,
- 0x9d6f7be56acdf866ULL, 0x5916e25b2bae358cULL,
- 0x7ff89012e2c2b331ULL, 0x035091bf2720bd93ULL,
- 0x561b0d22900e4669ULL, 0x28d319ae6f279e29ULL,
- 0x2f43a2533c8c9263ULL, 0xd09e1be9f8fe8270ULL,
- 0xf740ed3e2c796fbcULL, 0xdb53ded237d5404cULL,
- 0x62b2c25faebfe875ULL, 0x0afd41a5d2c0a94dULL,
- 0x6412fd3ce0ff8f4eULL, 0xe3a76f6995e42026ULL,
- 0x6c8fa9b808f4f0e1ULL, 0xc2d9a6dd0f23aad1ULL,
- 0x8f28c6d19d10d0c7ULL, 0x85d587744fd0798aULL,
- 0xa20b71a39b579446ULL, 0x684f83fa7c7f4138ULL,
- 0xe507500adba4471dULL, 0x3f640a46f19a6c20ULL,
- 0x1247bd34f7dd28a1ULL, 0x2d23b77206474481ULL,
- 0x93521002cc86e0f2ULL, 0x572b89bc8de52d18ULL,
- 0xfb1d93f8b0f9a1caULL, 0xe95a2ecc4724896bULL,
- 0x3ba420048511ddf9ULL, 0xd63e248ab6bee54bULL,
- 0x5dd6c8195f258455ULL, 0x06a03f634e40673bULL,
- 0x1f2a476c76b68da6ULL, 0x217ec9b49ac78af7ULL,
- 0xecaa80102e4453c3ULL, 0x14e78257b99d4f9aULL },
- /* 3 */
- { 0x20329b2cc87bba05ULL, 0x4f5eb6f86546a531ULL,
- 0xd4f44775f751b6b1ULL, 0x8266a47b850dfa8bULL,
- 0xbb986aa15a6ca985ULL, 0xc979eb08f9ae0f99ULL,
- 0x2da6f447a2375ea1ULL, 0x1e74275dcd7d8576ULL,
- 0xbc20180a800bc5f8ULL, 0xb4a2f701b2dc65beULL,
- 0xe726946f981b6d66ULL, 0x48e6c453bf21c94cULL,
- 0x42cad9930f0a4195ULL, 0xefa47b64aacccd20ULL,
- 0x71180a8960409a42ULL, 0x8bb3329bf6a44e0cULL,
- 0xd34c35de2d36daccULL, 0xa92f5b7cbc23dc96ULL,
- 0xb31a85aa68bb09c3ULL, 0x13e04836a73161d2ULL,
- 0xb24dfc4129c51d02ULL, 0x8ae44b70b7da5acdULL,
- 0xe671ed84d96579a7ULL, 0xa4bb3417d66f3832ULL,
- 0x4572ab38d56d2de8ULL, 0xb1b47761ea47215cULL,
- 0xe81c09cf70aba15dULL, 0xffbdb872ce7f90acULL,
- 0xa8782297fd5dc857ULL, 0x0d946f6b6a4ce4a4ULL,
- 0xe4df1f4f5b995138ULL, 0x9ebc71edca8c5762ULL,
- 0x0a2c1dc0b02b88d9ULL, 0x3b503c115d9d7b91ULL,
- 0xc64376a8111ec3a2ULL, 0xcec199a323c963e4ULL,
- 0xdc76a87ec58616f7ULL, 0x09d596e073a9b487ULL,
- 0x14583a9d7d560dafULL, 0xf4c6dc593f2a0cb4ULL,
- 0xdd21d19584f80236ULL, 0x4a4836983ddde1d3ULL,
- 0xe58866a41ae745f9ULL, 0xf591a5b27e541875ULL,
- 0x891dc05074586693ULL, 0x5b068c651810a89eULL,
- 0xa30346bc0c08544fULL, 0x3dbf3751c684032dULL,
- 0x2a1e86ec785032dcULL, 0xf73f5779fca830eaULL,
- 0xb60c05ca30204d21ULL, 0x0cc316802b32f065ULL,
- 0x8770241bdd96be69ULL, 0xb861e18199ee95dbULL,
- 0xf805cad91418fcd1ULL, 0x29e70dccbbd20e82ULL,
- 0xc7140f435060d763ULL, 0x0f3a9da0e8b0cc3bULL,
- 0xa2543f574d76408eULL, 0xbd7761e1c175d139ULL,
- 0x4b1f4f737ca3f512ULL, 0x6dc2df1f2fc137abULL,
- 0xf1d05c3967b14856ULL, 0xa742bf3715ed046cULL,
- 0x654030141d1697edULL, 0x07b872abda676c7dULL,
- 0x3ce84eba87fa17ecULL, 0xc1fb0403cb79afdfULL,
- 0x3e46bc7105063f73ULL, 0x278ae987121cd678ULL,
- 0xa1adb4778ef47cd0ULL, 0x26dd906c5362c2b9ULL,
- 0x05168060589b44e2ULL, 0xfbfc41f9d79ac08fULL,
- 0x0e6de44ba9ced8faULL, 0x9feb08068bf243a3ULL,
- 0x7b341749d06b129bULL, 0x229c69e74a87929aULL,
- 0xe09ee6c4427c011bULL, 0x5692e30e725c4c3aULL,
- 0xda99a33e5e9f6e4bULL, 0x353dd85af453a36bULL,
- 0x25241b4c90e0fee7ULL, 0x5de987258309d022ULL,
- 0xe230140fc0802984ULL, 0x93281e86a0c0b3c6ULL,
- 0xf229d719a4337408ULL, 0x6f6c2dd4ad3d1f34ULL,
- 0x8ea5b2fbae3f0aeeULL, 0x8331dd90c473ee4aULL,
- 0x346aa1b1b52db7aaULL, 0xdf8f235e06042aa9ULL,
- 0xcc6f6b68a1354b7bULL, 0x6c95a6f46ebf236aULL,
- 0x52d31a856bb91c19ULL, 0x1a35ded6d498d555ULL,
- 0xf37eaef2e54d60c9ULL, 0x72e181a9a3c2a61cULL,
- 0x98537aad51952fdeULL, 0x16f6c856ffaa2530ULL,
- 0xd960281e9d1d5215ULL, 0x3a0745fa1ce36f50ULL,
- 0x0b7b642bf1559c18ULL, 0x59a87eae9aec8001ULL,
- 0x5e100c05408bec7cULL, 0x0441f98b19e55023ULL,
- 0xd70dcc5534d38aefULL, 0x927f676de1bea707ULL,
- 0x9769e70db925e3e5ULL, 0x7a636ea29115065aULL,
- 0x468b201816ef11b6ULL, 0xab81a9b73edff409ULL,
- 0xc0ac7de88a07bb1eULL, 0x1f235eb68c0391b7ULL,
- 0x6056b074458dd30fULL, 0xbe8eeac102f7ed67ULL,
- 0xcd381283e04b5fbaULL, 0x5cbefecec277c4e3ULL,
- 0xd21b4c356c48ce0dULL, 0x1019c31664b35d8cULL,
- 0x247362a7d19eea26ULL, 0xebe582efb3299d03ULL,
- 0x02aef2cb82fc289fULL, 0x86275df09ce8aaa8ULL,
- 0x28b07427faac1a43ULL, 0x38a9b7319e1f47cfULL,
- 0xc82e92e3b8d01b58ULL, 0x06ef0b409b1978bcULL,
- 0x62f842bfc771fb90ULL, 0x9904034610eb3b1fULL,
- 0xded85ab5477a3e68ULL, 0x90d195a663428f98ULL,
- 0x5384636e2ac708d8ULL, 0xcbd719c37b522706ULL,
- 0xae9729d76644b0ebULL, 0x7c8c65e20a0c7ee6ULL,
- 0x80c856b007f1d214ULL, 0x8c0b40302cc32271ULL,
- 0xdbcedad51fe17a8aULL, 0x740e8ae938dbdea0ULL,
- 0xa615c6dc549310adULL, 0x19cc55f6171ae90bULL,
- 0x49b1bdb8fe5fdd8dULL, 0xed0a89af2830e5bfULL,
- 0x6a7aadb4f5a65bd6ULL, 0x7e22972988f05679ULL,
- 0xf952b3325566e810ULL, 0x39fecedadf61530eULL,
- 0x6101c99f04f3c7ceULL, 0x2e5f7f6761b562ffULL,
- 0xf08725d226cf5c97ULL, 0x63af3b54860fef51ULL,
- 0x8ff2cb10ef411e2fULL, 0x884ab9bb35267252ULL,
- 0x4df04433e7ba8daeULL, 0x9afd8866d3690741ULL,
- 0x66b9bb34de94abb3ULL, 0x9baaf18d92171380ULL,
- 0x543c11c5f0a064a5ULL, 0x17a1b1bdbed431f1ULL,
- 0xb5f58eeaf3a2717fULL, 0xc355f6c849858740ULL,
- 0xec5df044694ef17eULL, 0xd83751f5dc6346d4ULL,
- 0xfc4433520dfdacf2ULL, 0x0000000000000000ULL,
- 0x5a51f58e596ebc5fULL, 0x3285aaf12e34cf16ULL,
- 0x8d5c39db6dbd36b0ULL, 0x12b731dde64f7513ULL,
- 0x94906c2d7aa7dfbbULL, 0x302b583aacc8e789ULL,
- 0x9d45facd090e6b3cULL, 0x2165e2c78905aec4ULL,
- 0x68d45f7f775a7349ULL, 0x189b2c1d5664fdcaULL,
- 0xe1c99f2f030215daULL, 0x6983269436246788ULL,
- 0x8489af3b1e148237ULL, 0xe94b702431d5b59cULL,
- 0x33d2d31a6f4adbd7ULL, 0xbfd9932a4389f9a6ULL,
- 0xb0e30e8aab39359dULL, 0xd1e2c715afcaf253ULL,
- 0x150f43763c28196eULL, 0xc4ed846393e2eb3dULL,
- 0x03f98b20c3823c5eULL, 0xfd134ab94c83b833ULL,
- 0x556b682eb1de7064ULL, 0x36c4537a37d19f35ULL,
- 0x7559f30279a5ca61ULL, 0x799ae58252973a04ULL,
- 0x9c12832648707ffdULL, 0x78cd9c6913e92ec5ULL,
- 0x1d8dac7d0effb928ULL, 0x439da0784e745554ULL,
- 0x413352b3cc887dcbULL, 0xbacf134a1b12bd44ULL,
- 0x114ebafd25cd494dULL, 0x2f08068c20cb763eULL,
- 0x76a07822ba27f63fULL, 0xeab2fb04f25789c2ULL,
- 0xe3676de481fe3d45ULL, 0x1b62a73d95e6c194ULL,
- 0x641749ff5c68832cULL, 0xa5ec4dfc97112cf3ULL,
- 0xf6682e92bdd6242bULL, 0x3f11c59a44782bb2ULL,
- 0x317c21d1edb6f348ULL, 0xd65ab5be75ad9e2eULL,
- 0x6b2dd45fb4d84f17ULL, 0xfaab381296e4d44eULL,
- 0xd0b5befeeeb4e692ULL, 0x0882ef0b32d7a046ULL,
- 0x512a91a5a83b2047ULL, 0x963e9ee6f85bf724ULL,
- 0x4e09cf132438b1f0ULL, 0x77f701c9fb59e2feULL,
- 0x7ddb1c094b726a27ULL, 0x5f4775ee01f5f8bdULL,
- 0x9186ec4d223c9b59ULL, 0xfeeac1998f01846dULL,
- 0xac39db1ce4b89874ULL, 0xb75b7c21715e59e0ULL,
- 0xafc0503c273aa42aULL, 0x6e3b543fec430bf5ULL,
- 0x704f7362213e8e83ULL, 0x58ff0745db9294c0ULL,
- 0x67eec2df9feabf72ULL, 0xa0facd9ccf8a6811ULL,
- 0xb936986ad890811aULL, 0x95c715c63bd9cb7aULL,
- 0xca8060283a2c33c7ULL, 0x507de84ee9453486ULL,
- 0x85ded6d05f6a96f6ULL, 0x1cdad5964f81ade9ULL,
- 0xd5a33e9eb62fa270ULL, 0x40642b588df6690aULL,
- 0x7f75eec2c98e42b8ULL, 0x2cf18dace3494a60ULL,
- 0x23cb100c0bf9865bULL, 0xeef3028febb2d9e1ULL,
- 0x4425d2d394133929ULL, 0xaad6d05c7fa1e0c8ULL,
- 0xad6ea2f7a5c68cb5ULL, 0xc2028f2308fb9381ULL,
- 0x819f2f5b468fc6d5ULL, 0xc5bafd88d29cfffcULL,
- 0x47dc59f357910577ULL, 0x2b49ff07392e261dULL,
- 0x57c59ae5332258fbULL, 0x73b6f842e2bcb2ddULL,
- 0xcf96e04862b77725ULL, 0x4ca73dd8a6c4996fULL,
- 0x015779eb417e14c1ULL, 0x37932a9176af8bf4ULL },
- /* 4 */
- { 0x190a2c9b249df23eULL, 0x2f62f8b62263e1e9ULL,
- 0x7a7f754740993655ULL, 0x330b7ba4d5564d9fULL,
- 0x4c17a16a46672582ULL, 0xb22f08eb7d05f5b8ULL,
- 0x535f47f40bc148ccULL, 0x3aec5d27d4883037ULL,
- 0x10ed0a1825438f96ULL, 0x516101f72c233d17ULL,
- 0x13cc6f949fd04eaeULL, 0x739853c441474bfdULL,
- 0x653793d90d3f5b1bULL, 0x5240647b96b0fc2fULL,
- 0x0c84890ad27623e0ULL, 0xd7189b32703aaea3ULL,
- 0x2685de3523bd9c41ULL, 0x99317c5b11bffefaULL,
- 0x0d9baa854f079703ULL, 0x70b93648fbd48ac5ULL,
- 0xa80441fce30bc6beULL, 0x7287704bdc36ff1eULL,
- 0xb65384ed33dc1f13ULL, 0xd36417343ee34408ULL,
- 0x39cd38ab6e1bf10fULL, 0x5ab861770a1f3564ULL,
- 0x0ebacf09f594563bULL, 0xd04572b884708530ULL,
- 0x3cae9722bdb3af47ULL, 0x4a556b6f2f5cbaf2ULL,
- 0xe1704f1f76c4bd74ULL, 0x5ec4ed7144c6dfcfULL,
- 0x16afc01d4c7810e6ULL, 0x283f113cd629ca7aULL,
- 0xaf59a8761741ed2dULL, 0xeed5a3991e215facULL,
- 0x3bf37ea849f984d4ULL, 0xe413e096a56ce33cULL,
- 0x2c439d3a98f020d1ULL, 0x637559dc6404c46bULL,
- 0x9e6c95d1e5f5d569ULL, 0x24bb9836045fe99aULL,
- 0x44efa466dac8ecc9ULL, 0xc6eab2a5c80895d6ULL,
- 0x803b50c035220cc4ULL, 0x0321658cba93c138ULL,
- 0x8f9ebc465dc7ee1cULL, 0xd15a5137190131d3ULL,
- 0x0fa5ec8668e5e2d8ULL, 0x91c979578d1037b1ULL,
- 0x0642ca05693b9f70ULL, 0xefca80168350eb4fULL,
- 0x38d21b24f36a45ecULL, 0xbeab81e1af73d658ULL,
- 0x8cbfd9cae7542f24ULL, 0xfd19cc0d81f11102ULL,
- 0x0ac6430fbb4dbc90ULL, 0x1d76a09d6a441895ULL,
- 0x2a01573ff1cbbfa1ULL, 0xb572e161894fde2bULL,
- 0x8124734fa853b827ULL, 0x614b1fdf43e6b1b0ULL,
- 0x68ac395c4238cc18ULL, 0x21d837bfd7f7b7d2ULL,
- 0x20c714304a860331ULL, 0x5cfaab726324aa14ULL,
- 0x74c5ba4eb50d606eULL, 0xf3a3030474654739ULL,
- 0x23e671bcf015c209ULL, 0x45f087e947b9582aULL,
- 0xd8bd77b418df4c7bULL, 0xe06f6c90ebb50997ULL,
- 0x0bd96080263c0873ULL, 0x7e03f9410e40dcfeULL,
- 0xb8e94be4c6484928ULL, 0xfb5b0608e8ca8e72ULL,
- 0x1a2b49179e0e3306ULL, 0x4e29e76961855059ULL,
- 0x4f36c4e6fcf4e4baULL, 0x49740ee395cf7bcaULL,
- 0xc2963ea386d17f7dULL, 0x90d65ad810618352ULL,
- 0x12d34c1b02a1fa4dULL, 0xfa44258775bb3a91ULL,
- 0x18150f14b9ec46ddULL, 0x1491861e6b9a653dULL,
- 0x9a1019d7ab2c3fc2ULL, 0x3668d42d06fe13d7ULL,
- 0xdcc1fbb25606a6d0ULL, 0x969490dd795a1c22ULL,
- 0x3549b1a1bc6dd2efULL, 0xc94f5e23a0ed770eULL,
- 0xb9f6686b5b39fdcbULL, 0xc4d4f4a6efeae00dULL,
- 0xe732851a1fff2204ULL, 0x94aad6de5eb869f9ULL,
- 0x3f8ff2ae07206e7fULL, 0xfe38a9813b62d03aULL,
- 0xa7a1ad7a8bee2466ULL, 0x7b6056c8dde882b6ULL,
- 0x302a1e286fc58ca7ULL, 0x8da0fa457a259bc7ULL,
- 0xb3302b64e074415bULL, 0x5402ae7eff8b635fULL,
- 0x08f8050c9cafc94bULL, 0xae468bf98a3059ceULL,
- 0x88c355cca98dc58fULL, 0xb10e6d67c7963480ULL,
- 0xbad70de7e1aa3cf3ULL, 0xbfb4a26e320262bbULL,
- 0xcb711820870f02d5ULL, 0xce12b7a954a75c9dULL,
- 0x563ce87dd8691684ULL, 0x9f73b65e7884618aULL,
- 0x2b1e74b06cba0b42ULL, 0x47cec1ea605b2df1ULL,
- 0x1c698312f735ac76ULL, 0x5fdbcefed9b76b2cULL,
- 0x831a354c8fb1cdfcULL, 0x820516c312c0791fULL,
- 0xb74ca762aeadabf0ULL, 0xfc06ef821c80a5e1ULL,
- 0x5723cbf24518a267ULL, 0x9d4df05d5f661451ULL,
- 0x588627742dfd40bfULL, 0xda8331b73f3d39a0ULL,
- 0x17b0e392d109a405ULL, 0xf965400bcf28fba9ULL,
- 0x7c3dbf4229a2a925ULL, 0x023e460327e275dbULL,
- 0x6cd0b55a0ce126b3ULL, 0xe62da695828e96e7ULL,
- 0x42ad6e63b3f373b9ULL, 0xe50cc319381d57dfULL,
- 0xc5cbd729729b54eeULL, 0x46d1e265fd2a9912ULL,
- 0x6428b056904eeff8ULL, 0x8be23040131e04b7ULL,
- 0x6709d5da2add2ec0ULL, 0x075de98af44a2b93ULL,
- 0x8447dcc67bfbe66fULL, 0x6616f655b7ac9a23ULL,
- 0xd607b8bded4b1a40ULL, 0x0563af89d3a85e48ULL,
- 0x3db1b4ad20c21ba4ULL, 0x11f22997b8323b75ULL,
- 0x292032b34b587e99ULL, 0x7f1cdace9331681dULL,
- 0x8e819fc9c0b65affULL, 0xa1e3677fe2d5bb16ULL,
- 0xcd33d225ee349da5ULL, 0xd9a2543b85aef898ULL,
- 0x795e10cbfa0af76dULL, 0x25a4bbb9992e5d79ULL,
- 0x78413344677b438eULL, 0xf0826688cef68601ULL,
- 0xd27b34bba392f0ebULL, 0x551d8df162fad7bcULL,
- 0x1e57c511d0d7d9adULL, 0xdeffbdb171e4d30bULL,
- 0xf4feea8e802f6caaULL, 0xa480c8f6317de55eULL,
- 0xa0fc44f07fa40ff5ULL, 0x95b5f551c3c9dd1aULL,
- 0x22f952336d6476eaULL, 0x0000000000000000ULL,
- 0xa6be8ef5169f9085ULL, 0xcc2cf1aa73452946ULL,
- 0x2e7ddb39bf12550aULL, 0xd526dd3157d8db78ULL,
- 0x486b2d6c08becf29ULL, 0x9b0f3a58365d8b21ULL,
- 0xac78cdfaadd22c15ULL, 0xbc95c7e28891a383ULL,
- 0x6a927f5f65dab9c3ULL, 0xc3891d2c1ba0cb9eULL,
- 0xeaa92f9f50f8b507ULL, 0xcf0d9426c9d6e87eULL,
- 0xca6e3baf1a7eb636ULL, 0xab25247059980786ULL,
- 0x69b31ad3df4978fbULL, 0xe2512a93cc577c4cULL,
- 0xff278a0ea61364d9ULL, 0x71a615c766a53e26ULL,
- 0x89dc764334fc716cULL, 0xf87a638452594f4aULL,
- 0xf2bc208be914f3daULL, 0x8766b94ac1682757ULL,
- 0xbbc82e687cdb8810ULL, 0x626a7a53f9757088ULL,
- 0xa2c202f358467a2eULL, 0x4d0882e5db169161ULL,
- 0x09e7268301de7da8ULL, 0xe897699c771ac0dcULL,
- 0xc8507dac3d9cc3edULL, 0xc0a878a0a1330aa6ULL,
- 0x978bb352e42ba8c1ULL, 0xe9884a13ea6b743fULL,
- 0x279afdbabecc28a2ULL, 0x047c8c064ed9eaabULL,
- 0x507e2278b15289f4ULL, 0x599904fbb08cf45cULL,
- 0xbd8ae46d15e01760ULL, 0x31353da7f2b43844ULL,
- 0x8558ff49e68a528cULL, 0x76fbfc4d92ef15b5ULL,
- 0x3456922e211c660cULL, 0x86799ac55c1993b4ULL,
- 0x3e90d1219a51da9cULL, 0x2d5cbeb505819432ULL,
- 0x982e5fd48cce4a19ULL, 0xdb9c1238a24c8d43ULL,
- 0xd439febecaa96f9bULL, 0x418c0bef0960b281ULL,
- 0x158ea591f6ebd1deULL, 0x1f48e69e4da66d4eULL,
- 0x8afd13cf8e6fb054ULL, 0xf5e1c9011d5ed849ULL,
- 0xe34e091c5126c8afULL, 0xad67ee7530a398f6ULL,
- 0x43b24dec2e82c75aULL, 0x75da99c1287cd48dULL,
- 0x92e81cdb3783f689ULL, 0xa3dd217cc537cecdULL,
- 0x60543c50de970553ULL, 0x93f73f54aaf2426aULL,
- 0xa91b62737e7a725dULL, 0xf19d4507538732e2ULL,
- 0x77e4dfc20f9ea156ULL, 0x7d229ccdb4d31dc6ULL,
- 0x1b346a98037f87e5ULL, 0xedf4c615a4b29e94ULL,
- 0x4093286094110662ULL, 0xb0114ee85ae78063ULL,
- 0x6ff1d0d6b672e78bULL, 0x6dcf96d591909250ULL,
- 0xdfe09e3eec9567e8ULL, 0x3214582b4827f97cULL,
- 0xb46dc2ee143e6ac8ULL, 0xf6c0ac8da7cd1971ULL,
- 0xebb60c10cd8901e4ULL, 0xf7df8f023abcad92ULL,
- 0x9c52d3d2c217a0b2ULL, 0x6b8d5cd0f8ab0d20ULL,
- 0x3777f7a29b8fa734ULL, 0x011f238f9d71b4e3ULL,
- 0xc1b75b2f3c42be45ULL, 0x5de588fdfe551ef7ULL,
- 0x6eeef3592b035368ULL, 0xaa3a07ffc4e9b365ULL,
- 0xecebe59a39c32a77ULL, 0x5ba742f8976e8187ULL,
- 0x4b4a48e0b22d0e11ULL, 0xddded83dcb771233ULL,
- 0xa59feb79ac0c51bdULL, 0xc7f5912a55792135ULL },
- /* 5 */
- { 0x6d6ae04668a9b08aULL, 0x3ab3f04b0be8c743ULL,
- 0xe51e166b54b3c908ULL, 0xbe90a9eb35c2f139ULL,
- 0xb2c7066637f2bec1ULL, 0xaa6945613392202cULL,
- 0x9a28c36f3b5201ebULL, 0xddce5a93ab536994ULL,
- 0x0e34133ef6382827ULL, 0x52a02ba1ec55048bULL,
- 0xa2f88f97c4b2a177ULL, 0x8640e513ca2251a5ULL,
- 0xcdf1d36258137622ULL, 0xfe6cb708dedf8ddbULL,
- 0x8a174a9ec8121e5dULL, 0x679896036b81560eULL,
- 0x59ed033395795feeULL, 0x1dd778ab8b74edafULL,
- 0xee533ef92d9f926dULL, 0x2a8c79baf8a8d8f5ULL,
- 0x6bcf398e69b119f6ULL, 0xe20491742fafdd95ULL,
- 0x276488e0809c2aecULL, 0xea955b82d88f5cceULL,
- 0x7102c63a99d9e0c4ULL, 0xf9763017a5c39946ULL,
- 0x429fa2501f151b3dULL, 0x4659c72bea05d59eULL,
- 0x984b7fdccf5a6634ULL, 0xf742232953fbb161ULL,
- 0x3041860e08c021c7ULL, 0x747bfd9616cd9386ULL,
- 0x4bb1367192312787ULL, 0x1b72a1638a6c44d3ULL,
- 0x4a0e68a6e8359a66ULL, 0x169a5039f258b6caULL,
- 0xb98a2ef44edee5a4ULL, 0xd9083fe85e43a737ULL,
- 0x967f6ce239624e13ULL, 0x8874f62d3c1a7982ULL,
- 0x3c1629830af06e3fULL, 0x9165ebfd427e5a8eULL,
- 0xb5dd81794ceeaa5cULL, 0x0de8f15a7834f219ULL,
- 0x70bd98ede3dd5d25ULL, 0xaccc9ca9328a8950ULL,
- 0x56664eda1945ca28ULL, 0x221db34c0f8859aeULL,
- 0x26dbd637fa98970dULL, 0x1acdffb4f068f932ULL,
- 0x4585254f64090fa0ULL, 0x72de245e17d53afaULL,
- 0x1546b25d7c546cf4ULL, 0x207e0ffffb803e71ULL,
- 0xfaaad2732bcf4378ULL, 0xb462dfae36ea17bdULL,
- 0xcf926fd1ac1b11fdULL, 0xe0672dc7dba7ba4aULL,
- 0xd3fa49ad5d6b41b3ULL, 0x8ba81449b216a3bcULL,
- 0x14f9ec8a0650d115ULL, 0x40fc1ee3eb1d7ce2ULL,
- 0x23a2ed9b758ce44fULL, 0x782c521b14fddc7eULL,
- 0x1c68267cf170504eULL, 0xbcf31558c1ca96e6ULL,
- 0xa781b43b4ba6d235ULL, 0xf6fd7dfe29ff0c80ULL,
- 0xb0a4bad5c3fad91eULL, 0xd199f51ea963266cULL,
- 0x414340349119c103ULL, 0x5405f269ed4dadf7ULL,
- 0xabd61bb649969dcdULL, 0x6813dbeae7bdc3c8ULL,
- 0x65fb2ab09f8931d1ULL, 0xf1e7fae152e3181dULL,
- 0xc1a67cef5a2339daULL, 0x7a4feea8e0f5bba1ULL,
- 0x1e0b9acf05783791ULL, 0x5b8ebf8061713831ULL,
- 0x80e53cdbcb3af8d9ULL, 0x7e898bd315e57502ULL,
- 0xc6bcfbf0213f2d47ULL, 0x95a38e86b76e942dULL,
- 0x092e94218d243cbaULL, 0x8339debf453622e7ULL,
- 0xb11be402b9fe64ffULL, 0x57d9100d634177c9ULL,
- 0xcc4e8db52217cbc3ULL, 0x3b0cae9c71ec7aa2ULL,
- 0xfb158ca451cbfe99ULL, 0x2b33276d82ac6514ULL,
- 0x01bf5ed77a04bde1ULL, 0xc5601994af33f779ULL,
- 0x75c4a3416cc92e67ULL, 0xf3844652a6eb7fc2ULL,
- 0x3487e375fdd0ef64ULL, 0x18ae430704609eedULL,
- 0x4d14efb993298efbULL, 0x815a620cb13e4538ULL,
- 0x125c354207487869ULL, 0x9eeea614ce42cf48ULL,
- 0xce2d3106d61fac1cULL, 0xbbe99247bad6827bULL,
- 0x071a871f7b1c149dULL, 0x2e4a1cc10db81656ULL,
- 0x77a71ff298c149b8ULL, 0x06a5d9c80118a97cULL,
- 0xad73c27e488e34b1ULL, 0x443a7b981e0db241ULL,
- 0xe3bbcfa355ab6074ULL, 0x0af276450328e684ULL,
- 0x73617a896dd1871bULL, 0x58525de4ef7de20fULL,
- 0xb7be3dcab8e6cd83ULL, 0x19111dd07e64230cULL,
- 0x842359a03e2a367aULL, 0x103f89f1f3401fb6ULL,
- 0xdc710444d157d475ULL, 0xb835702334da5845ULL,
- 0x4320fc876511a6dcULL, 0xd026abc9d3679b8dULL,
- 0x17250eee885c0b2bULL, 0x90dab52a387ae76fULL,
- 0x31fed8d972c49c26ULL, 0x89cba8fa461ec463ULL,
- 0x2ff5421677bcabb7ULL, 0x396f122f85e41d7dULL,
- 0xa09b332430bac6a8ULL, 0xc888e8ced7070560ULL,
- 0xaeaf201ac682ee8fULL, 0x1180d7268944a257ULL,
- 0xf058a43628e7a5fcULL, 0xbd4c4b8fbbce2b07ULL,
- 0xa1246df34abe7b49ULL, 0x7d5569b79be9af3cULL,
- 0xa9b5a705bd9efa12ULL, 0xdb6b835baa4bc0e8ULL,
- 0x05793bac8f147342ULL, 0x21c1512881848390ULL,
- 0xfdb0556c50d357e5ULL, 0x613d4fcb6a99ff72ULL,
- 0x03dce2648e0cda3eULL, 0xe949b9e6568386f0ULL,
- 0xfc0f0bbb2ad7ea04ULL, 0x6a70675913b5a417ULL,
- 0x7f36d5046fe1c8e3ULL, 0x0c57af8d02304ff8ULL,
- 0x32223abdfcc84618ULL, 0x0891caf6f720815bULL,
- 0xa63eeaec31a26fd4ULL, 0x2507345374944d33ULL,
- 0x49d28ac266394058ULL, 0xf5219f9aa7f3d6beULL,
- 0x2d96fea583b4cc68ULL, 0x5a31e1571b7585d0ULL,
- 0x8ed12fe53d02d0feULL, 0xdfade6205f5b0e4bULL,
- 0x4cabb16ee92d331aULL, 0x04c6657bf510cea3ULL,
- 0xd73c2cd6a87b8f10ULL, 0xe1d87310a1a307abULL,
- 0x6cd5be9112ad0d6bULL, 0x97c032354366f3f2ULL,
- 0xd4e0ceb22677552eULL, 0x0000000000000000ULL,
- 0x29509bde76a402cbULL, 0xc27a9e8bd42fe3e4ULL,
- 0x5ef7842cee654b73ULL, 0xaf107ecdbc86536eULL,
- 0x3fcacbe784fcb401ULL, 0xd55f90655c73e8cfULL,
- 0xe6c2f40fdabf1336ULL, 0xe8f6e7312c873b11ULL,
- 0xeb2a0555a28be12fULL, 0xe4a148bc2eb774e9ULL,
- 0x9b979db84156bc0aULL, 0x6eb60222e6a56ab4ULL,
- 0x87ffbbc4b026ec44ULL, 0xc703a5275b3b90a6ULL,
- 0x47e699fc9001687fULL, 0x9c8d1aa73a4aa897ULL,
- 0x7cea3760e1ed12ddULL, 0x4ec80ddd1d2554c5ULL,
- 0x13e36b957d4cc588ULL, 0x5d2b66486069914dULL,
- 0x92b90999cc7280b0ULL, 0x517cc9c56259deb5ULL,
- 0xc937b619ad03b881ULL, 0xec30824ad997f5b2ULL,
- 0xa45d565fc5aa080bULL, 0xd6837201d27f32f1ULL,
- 0x635ef3789e9198adULL, 0x531f75769651b96aULL,
- 0x4f77530a6721e924ULL, 0x486dd4151c3dfdb9ULL,
- 0x5f48dafb9461f692ULL, 0x375b011173dc355aULL,
- 0x3da9775470f4d3deULL, 0x8d0dcd81b30e0ac0ULL,
- 0x36e45fc609d888bbULL, 0x55baacbe97491016ULL,
- 0x8cb29356c90ab721ULL, 0x76184125e2c5f459ULL,
- 0x99f4210bb55edbd5ULL, 0x6f095cf59ca1d755ULL,
- 0x9f51f8c3b44672a9ULL, 0x3538bda287d45285ULL,
- 0x50c39712185d6354ULL, 0xf23b1885dcefc223ULL,
- 0x79930ccc6ef9619fULL, 0xed8fdc9da3934853ULL,
- 0xcb540aaa590bdf5eULL, 0x5c94389f1a6d2cacULL,
- 0xe77daad8a0bbaed7ULL, 0x28efc5090ca0bf2aULL,
- 0xbf2ff73c4fc64cd8ULL, 0xb37858b14df60320ULL,
- 0xf8c96ec0dfc724a7ULL, 0x828680683f329f06ULL,
- 0x941cd051cd6a29ccULL, 0xc3c5c05cae2b5e05ULL,
- 0xb601631dc2e27062ULL, 0xc01922382027843bULL,
- 0x24b86a840e90f0d2ULL, 0xd245177a276ffc52ULL,
- 0x0f8b4de98c3c95c6ULL, 0x3e759530fef809e0ULL,
- 0x0b4d2892792c5b65ULL, 0xc4df4743d5374a98ULL,
- 0xa5e20888bfaeb5eaULL, 0xba56cc90c0d23f9aULL,
- 0x38d04cf8ffe0a09cULL, 0x62e1adafe495254cULL,
- 0x0263bcb3f40867dfULL, 0xcaeb547d230f62bfULL,
- 0x6082111c109d4293ULL, 0xdad4dd8cd04f7d09ULL,
- 0xefec602e579b2f8cULL, 0x1fb4c4187f7c8a70ULL,
- 0xffd3e9dfa4db303aULL, 0x7bf0b07f9af10640ULL,
- 0xf49ec14dddf76b5fULL, 0x8f6e713247066d1fULL,
- 0x339d646a86ccfbf9ULL, 0x64447467e58d8c30ULL,
- 0x2c29a072f9b07189ULL, 0xd8b7613f24471ad6ULL,
- 0x6627c8d41185ebefULL, 0xa347d140beb61c96ULL,
- 0xde12b8f7255fb3aaULL, 0x9d324470404e1576ULL,
- 0x9306574eb6763d51ULL, 0xa80af9d2c79a47f3ULL,
- 0x859c0777442e8b9bULL, 0x69ac853d9db97e29ULL },
- /* 6 */
- { 0xc3407dfc2de6377eULL, 0x5b9e93eea4256f77ULL,
- 0xadb58fdd50c845e0ULL, 0x5219ff11a75bed86ULL,
- 0x356b61cfd90b1de9ULL, 0xfb8f406e25abe037ULL,
- 0x7a5a0231c0f60796ULL, 0x9d3cd216e1f5020bULL,
- 0x0c6550fb6b48d8f3ULL, 0xf57508c427ff1c62ULL,
- 0x4ad35ffa71cb407dULL, 0x6290a2da1666aa6dULL,
- 0xe284ec2349355f9fULL, 0xb3c307c53d7c84ecULL,
- 0x05e23c0468365a02ULL, 0x190bac4d6c9ebfa8ULL,
- 0x94bbbee9e28b80faULL, 0xa34fc777529cb9b5ULL,
- 0xcc7b39f095bcd978ULL, 0x2426addb0ce532e3ULL,
- 0x7e79329312ce4fc7ULL, 0xab09a72eebec2917ULL,
- 0xf8d15499f6b9d6c2ULL, 0x1a55b8babf8c895dULL,
- 0xdb8add17fb769a85ULL, 0xb57f2f368658e81bULL,
- 0x8acd36f18f3f41f6ULL, 0x5ce3b7bba50f11d3ULL,
- 0x114dcc14d5ee2f0aULL, 0xb91a7fcded1030e8ULL,
- 0x81d5425fe55de7a1ULL, 0xb6213bc1554adeeeULL,
- 0x80144ef95f53f5f2ULL, 0x1e7688186db4c10cULL,
- 0x3b912965db5fe1bcULL, 0xc281715a97e8252dULL,
- 0x54a5d7e21c7f8171ULL, 0x4b12535ccbc5522eULL,
- 0x1d289cefbea6f7f9ULL, 0x6ef5f2217d2e729eULL,
- 0xe6a7dc819b0d17ceULL, 0x1b94b41c05829b0eULL,
- 0x33d7493c622f711eULL, 0xdcf7f942fa5ce421ULL,
- 0x600fba8b7f7a8ecbULL, 0x46b60f011a83988eULL,
- 0x235b898e0dcf4c47ULL, 0x957ab24f588592a9ULL,
- 0x4354330572b5c28cULL, 0xa5f3ef84e9b8d542ULL,
- 0x8c711e02341b2d01ULL, 0x0b1874ae6a62a657ULL,
- 0x1213d8e306fc19ffULL, 0xfe6d7c6a4d9dba35ULL,
- 0x65ed868f174cd4c9ULL, 0x88522ea0e6236550ULL,
- 0x899322065c2d7703ULL, 0xc01e690bfef4018bULL,
- 0x915982ed8abddaf8ULL, 0xbe675b98ec3a4e4cULL,
- 0xa996bf7f82f00db1ULL, 0xe1daf8d49a27696aULL,
- 0x2effd5d3dc8986e7ULL, 0xd153a51f2b1a2e81ULL,
- 0x18caa0ebd690adfbULL, 0x390e3134b243c51aULL,
- 0x2778b92cdff70416ULL, 0x029f1851691c24a6ULL,
- 0x5e7cafeacc133575ULL, 0xfa4e4cc89fa5f264ULL,
- 0x5a5f9f481e2b7d24ULL, 0x484c47ab18d764dbULL,
- 0x400a27f2a1a7f479ULL, 0xaeeb9b2a83da7315ULL,
- 0x721c626879869734ULL, 0x042330a2d2384851ULL,
- 0x85f672fd3765aff0ULL, 0xba446b3a3e02061dULL,
- 0x73dd6ecec3888567ULL, 0xffac70ccf793a866ULL,
- 0xdfa9edb5294ed2d4ULL, 0x6c6aea7014325638ULL,
- 0x834a5a0e8c41c307ULL, 0xcdba35562fb2cb2bULL,
- 0x0ad97808d06cb404ULL, 0x0f3b440cb85aee06ULL,
- 0xe5f9c876481f213bULL, 0x98deee1289c35809ULL,
- 0x59018bbfcd394bd1ULL, 0xe01bf47220297b39ULL,
- 0xde68e1139340c087ULL, 0x9fa3ca4788e926adULL,
- 0xbb85679c840c144eULL, 0x53d8f3b71d55ffd5ULL,
- 0x0da45c5dd146caa0ULL, 0x6f34fe87c72060cdULL,
- 0x57fbc315cf6db784ULL, 0xcee421a1fca0fddeULL,
- 0x3d2d0196607b8d4bULL, 0x642c8a29ad42c69aULL,
- 0x14aff010bdd87508ULL, 0xac74837beac657b3ULL,
- 0x3216459ad821634dULL, 0x3fb219c70967a9edULL,
- 0x06bc28f3bb246cf7ULL, 0xf2082c9126d562c6ULL,
- 0x66b39278c45ee23cULL, 0xbd394f6f3f2878b9ULL,
- 0xfd33689d9e8f8cc0ULL, 0x37f4799eb017394fULL,
- 0x108cc0b26fe03d59ULL, 0xda4bd1b1417888d6ULL,
- 0xb09d1332ee6eb219ULL, 0x2f3ed975668794b4ULL,
- 0x58c0871977375982ULL, 0x7561463d78ace990ULL,
- 0x09876cff037e82f1ULL, 0x7fb83e35a8c05d94ULL,
- 0x26b9b58a65f91645ULL, 0xef20b07e9873953fULL,
- 0x3148516d0b3355b8ULL, 0x41cb2b541ba9e62aULL,
- 0x790416c613e43163ULL, 0xa011d380818e8f40ULL,
- 0x3a5025c36151f3efULL, 0xd57095bdf92266d0ULL,
- 0x498d4b0da2d97688ULL, 0x8b0c3a57353153a5ULL,
- 0x21c491df64d368e1ULL, 0x8f2f0af5e7091bf4ULL,
- 0x2da1c1240f9bb012ULL, 0xc43d59a92ccc49daULL,
- 0xbfa6573e56345c1fULL, 0x828b56a8364fd154ULL,
- 0x9a41f643e0df7cafULL, 0xbcf843c985266aeaULL,
- 0x2b1de9d7b4bfdce5ULL, 0x20059d79dedd7ab2ULL,
- 0x6dabe6d6ae3c446bULL, 0x45e81bf6c991ae7bULL,
- 0x6351ae7cac68b83eULL, 0xa432e32253b6c711ULL,
- 0xd092a9b991143cd2ULL, 0xcac711032e98b58fULL,
- 0xd8d4c9e02864ac70ULL, 0xc5fc550f96c25b89ULL,
- 0xd7ef8dec903e4276ULL, 0x67729ede7e50f06fULL,
- 0xeac28c7af045cf3dULL, 0xb15c1f945460a04aULL,
- 0x9cfddeb05bfb1058ULL, 0x93c69abce3a1fe5eULL,
- 0xeb0380dc4a4bdd6eULL, 0xd20db1e8f8081874ULL,
- 0x229a8528b7c15e14ULL, 0x44291750739fbc28ULL,
- 0xd3ccbd4e42060a27ULL, 0xf62b1c33f4ed2a97ULL,
- 0x86a8660ae4779905ULL, 0xd62e814a2a305025ULL,
- 0x477703a7a08d8addULL, 0x7b9b0e977af815c5ULL,
- 0x78c51a60a9ea2330ULL, 0xa6adfb733aaae3b7ULL,
- 0x97e5aa1e3199b60fULL, 0x0000000000000000ULL,
- 0xf4b404629df10e31ULL, 0x5564db44a6719322ULL,
- 0x9207961a59afec0dULL, 0x9624a6b88b97a45cULL,
- 0x363575380a192b1cULL, 0x2c60cd82b595a241ULL,
- 0x7d272664c1dc7932ULL, 0x7142769faa94a1c1ULL,
- 0xa1d0df263b809d13ULL, 0x1630e841d4c451aeULL,
- 0xc1df65ad44fa13d8ULL, 0x13d2d445bcf20bacULL,
- 0xd915c546926abe23ULL, 0x38cf3d92084dd749ULL,
- 0xe766d0272103059dULL, 0xc7634d5effde7f2fULL,
- 0x077d2455012a7ea4ULL, 0xedbfa82ff16fb199ULL,
- 0xaf2a978c39d46146ULL, 0x42953fa3c8bbd0dfULL,
- 0xcb061da59496a7dcULL, 0x25e7a17db6eb20b0ULL,
- 0x34aa6d6963050fbaULL, 0xa76cf7d580a4f1e4ULL,
- 0xf7ea10954ee338c4ULL, 0xfcf2643b24819e93ULL,
- 0xcf252d0746aeef8dULL, 0x4ef06f58a3f3082cULL,
- 0x563acfb37563a5d7ULL, 0x5086e740ce47c920ULL,
- 0x2982f186dda3f843ULL, 0x87696aac5e798b56ULL,
- 0x5d22bb1d1f010380ULL, 0x035e14f7d31236f5ULL,
- 0x3cec0d30da759f18ULL, 0xf3c920379cdb7095ULL,
- 0xb8db736b571e22bbULL, 0xdd36f5e44052f672ULL,
- 0xaac8ab8851e23b44ULL, 0xa857b3d938fe1fe2ULL,
- 0x17f1e4e76eca43fdULL, 0xec7ea4894b61a3caULL,
- 0x9e62c6e132e734feULL, 0xd4b1991b432c7483ULL,
- 0x6ad6c283af163acfULL, 0x1ce9904904a8e5aaULL,
- 0x5fbda34c761d2726ULL, 0xf910583f4cb7c491ULL,
- 0xc6a241f845d06d7cULL, 0x4f3163fe19fd1a7fULL,
- 0xe99c988d2357f9c8ULL, 0x8eee06535d0709a7ULL,
- 0x0efa48aa0254fc55ULL, 0xb4be23903c56fa48ULL,
- 0x763f52caabbedf65ULL, 0xeee1bcd8227d876cULL,
- 0xe345e085f33b4dccULL, 0x3e731561b369bbbeULL,
- 0x2843fd2067adea10ULL, 0x2adce5710eb1ceb6ULL,
- 0xb7e03767ef44ccbdULL, 0x8db012a48e153f52ULL,
- 0x61ceb62dc5749c98ULL, 0xe85d942b9959eb9bULL,
- 0x4c6f7709caef2c8aULL, 0x84377e5b8d6bbda3ULL,
- 0x30895dcbb13d47ebULL, 0x74a04a9bc2a2fbc3ULL,
- 0x6b17ce251518289cULL, 0xe438c4d0f2113368ULL,
- 0x1fb784bed7bad35fULL, 0x9b80fae55ad16efcULL,
- 0x77fe5e6c11b0cd36ULL, 0xc858095247849129ULL,
- 0x08466059b97090a2ULL, 0x01c10ca6ba0e1253ULL,
- 0x6988d6747c040c3aULL, 0x6849dad2c60a1e69ULL,
- 0x5147ebe67449db73ULL, 0xc99905f4fd8a837aULL,
- 0x991fe2b433cd4a5aULL, 0xf09734c04fc94660ULL,
- 0xa28ecbd1e892abe6ULL, 0xf1563866f5c75433ULL,
- 0x4dae7baf70e13ed9ULL, 0x7ce62ac27bd26b61ULL,
- 0x70837a39109ab392ULL, 0x90988e4b30b3c8abULL,
- 0xb2020b63877296bfULL, 0x156efcb607d6675bULL },
- /* 7 */
- { 0xe63f55ce97c331d0ULL, 0x25b506b0015bba16ULL,
- 0xc8706e29e6ad9ba8ULL, 0x5b43d3775d521f6aULL,
- 0x0bfa3d577035106eULL, 0xab95fc172afb0e66ULL,
- 0xf64b63979e7a3276ULL, 0xf58b4562649dad4bULL,
- 0x48f7c3dbae0c83f1ULL, 0xff31916642f5c8c5ULL,
- 0xcbb048dc1c4a0495ULL, 0x66b8f83cdf622989ULL,
- 0x35c130e908e2b9b0ULL, 0x7c761a61f0b34fa1ULL,
- 0x3601161cf205268dULL, 0x9e54ccfe2219b7d6ULL,
- 0x8b7d90a538940837ULL, 0x9cd403588ea35d0bULL,
- 0xbc3c6fea9ccc5b5aULL, 0xe5ff733b6d24aeedULL,
- 0xceed22de0f7eb8d2ULL, 0xec8581cab1ab545eULL,
- 0xb96105e88ff8e71dULL, 0x8ca03501871a5eadULL,
- 0x76ccce65d6db2a2fULL, 0x5883f582a7b58057ULL,
- 0x3f7be4ed2e8adc3eULL, 0x0fe7be06355cd9c9ULL,
- 0xee054e6c1d11be83ULL, 0x1074365909b903a6ULL,
- 0x5dde9f80b4813c10ULL, 0x4a770c7d02b6692cULL,
- 0x5379c8d5d7809039ULL, 0xb4067448161ed409ULL,
- 0x5f5e5026183bd6cdULL, 0xe898029bf4c29df9ULL,
- 0x7fb63c940a54d09cULL, 0xc5171f897f4ba8bcULL,
- 0xa6f28db7b31d3d72ULL, 0x2e4f3be7716eaa78ULL,
- 0x0d6771a099e63314ULL, 0x82076254e41bf284ULL,
- 0x2f0fd2b42733df98ULL, 0x5c9e76d3e2dc49f0ULL,
- 0x7aeb569619606cdbULL, 0x83478b07b2468764ULL,
- 0xcfadcb8d5923cd32ULL, 0x85dac7f05b95a41eULL,
- 0xb5469d1b4043a1e9ULL, 0xb821ecbbd9a592fdULL,
- 0x1b8e0b0e798c13c8ULL, 0x62a57b6d9a0be02eULL,
- 0xfcf1b793b81257f8ULL, 0x9d94ea0bd8fe28ebULL,
- 0x4cea408aeb654a56ULL, 0x23284a47e888996cULL,
- 0x2d8f1d128b893545ULL, 0xf4cbac3132c0d8abULL,
- 0xbd7c86b9ca912ebaULL, 0x3a268eef3dbe6079ULL,
- 0xf0d62f6077a9110cULL, 0x2735c916ade150cbULL,
- 0x89fd5f03942ee2eaULL, 0x1acee25d2fd16628ULL,
- 0x90f39bab41181bffULL, 0x430dfe8cde39939fULL,
- 0xf70b8ac4c8274796ULL, 0x1c53aeaac6024552ULL,
- 0x13b410acf35e9c9bULL, 0xa532ab4249faa24fULL,
- 0x2b1251e5625a163fULL, 0xd7e3e676da4841c7ULL,
- 0xa7b264e4e5404892ULL, 0xda8497d643ae72d3ULL,
- 0x861ae105a1723b23ULL, 0x38a6414991048aa4ULL,
- 0x6578dec92585b6b4ULL, 0x0280cfa6acbaeaddULL,
- 0x88bdb650c273970aULL, 0x9333bd5ebbff84c2ULL,
- 0x4e6a8f2c47dfa08bULL, 0x321c954db76cef2aULL,
- 0x418d312a72837942ULL, 0xb29b38bfffcdf773ULL,
- 0x6c022c38f90a4c07ULL, 0x5a033a240b0f6a8aULL,
- 0x1f93885f3ce5da6fULL, 0xc38a537e96988bc6ULL,
- 0x39e6a81ac759ff44ULL, 0x29929e43cee0fce2ULL,
- 0x40cdd87924de0ca2ULL, 0xe9d8ebc8a29fe819ULL,
- 0x0c2798f3cfbb46f4ULL, 0x55e484223e53b343ULL,
- 0x4650948ecd0d2fd8ULL, 0x20e86cb2126f0651ULL,
- 0x6d42c56baf5739e7ULL, 0xa06fc1405ace1e08ULL,
- 0x7babbfc54f3d193bULL, 0x424d17df8864e67fULL,
- 0xd8045870ef14980eULL, 0xc6d7397c85ac3781ULL,
- 0x21a885e1443273b1ULL, 0x67f8116f893f5c69ULL,
- 0x24f5efe35706cff6ULL, 0xd56329d076f2ab1aULL,
- 0x5e1eb9754e66a32dULL, 0x28d2771098bd8902ULL,
- 0x8f6013f47dfdc190ULL, 0x17a993fdb637553cULL,
- 0xe0a219397e1012aaULL, 0x786b9930b5da8606ULL,
- 0x6e82e39e55b0a6daULL, 0x875a0856f72f4ec3ULL,
- 0x3741ff4fa458536dULL, 0xac4859b3957558fcULL,
- 0x7ef6d5c75c09a57cULL, 0xc04a758b6c7f14fbULL,
- 0xf9acdd91ab26ebbfULL, 0x7391a467c5ef9668ULL,
- 0x335c7c1ee1319acaULL, 0xa91533b18641e4bbULL,
- 0xe4bf9a683b79db0dULL, 0x8e20faa72ba0b470ULL,
- 0x51f907737b3a7ae4ULL, 0x2268a314bed5ec8cULL,
- 0xd944b123b949edeeULL, 0x31dcb3b84d8b7017ULL,
- 0xd3fe65279f218860ULL, 0x097af2f1dc8ffab3ULL,
- 0x9b09a6fc312d0b91ULL, 0xcc6ded78a3c4520fULL,
- 0x3481d9ba5ebfcc50ULL, 0x4f2a667f1182d56bULL,
- 0xdfd9fdd4509ace94ULL, 0x26752045fbbc252bULL,
- 0xbffc491f662bc467ULL, 0xdd593272fc202449ULL,
- 0x3cbbc218d46d4303ULL, 0x91b372f817456e1fULL,
- 0x681faf69bc6385a0ULL, 0xb686bbeebaa43ed4ULL,
- 0x1469b5084cd0ca01ULL, 0x98c98009cbca94acULL,
- 0x6438379a73d8c354ULL, 0xc2caba2dc0c5fe26ULL,
- 0x3e3b0dbe78d7a9deULL, 0x50b9ee202d670f04ULL,
- 0x4590b27b37eab0e5ULL, 0x6025b4cb36b10af3ULL,
- 0xfb2c1237079c0162ULL, 0xa12f28130c936be8ULL,
- 0x4b37e52e54eb1cccULL, 0x083a1ba28ad28f53ULL,
- 0xc10a9cd83a22611bULL, 0x9f1425ad7444c236ULL,
- 0x069d4cf7e9d3237aULL, 0xedc56899e7f621beULL,
- 0x778c273680865fcfULL, 0x309c5aeb1bd605f7ULL,
- 0x8de0dc52d1472b4dULL, 0xf8ec34c2fd7b9e5fULL,
- 0xea18cd3d58787724ULL, 0xaad515447ca67b86ULL,
- 0x9989695a9d97e14cULL, 0x0000000000000000ULL,
- 0xf196c63321f464ecULL, 0x71116bc169557cb5ULL,
- 0xaf887f466f92c7c1ULL, 0x972e3e0ffe964d65ULL,
- 0x190ec4a8d536f915ULL, 0x95aef1a9522ca7b8ULL,
- 0xdc19db21aa7d51a9ULL, 0x94ee18fa0471d258ULL,
- 0x8087adf248a11859ULL, 0xc457f6da2916dd5cULL,
- 0xfa6cfb6451c17482ULL, 0xf256e0c6db13fbd1ULL,
- 0x6a9f60cf10d96f7dULL, 0x4daaa9d9bd383fb6ULL,
- 0x03c026f5fae79f3dULL, 0xde99148706c7bb74ULL,
- 0x2a52b8b6340763dfULL, 0x6fc20acd03edd33aULL,
- 0xd423c08320afdefaULL, 0xbbe1ca4e23420dc0ULL,
- 0x966ed75ca8cb3885ULL, 0xeb58246e0e2502c4ULL,
- 0x055d6a021334bc47ULL, 0xa47242111fa7d7afULL,
- 0xe3623fcc84f78d97ULL, 0x81c744a11efc6db9ULL,
- 0xaec8961539cfb221ULL, 0xf31609958d4e8e31ULL,
- 0x63e5923ecc5695ceULL, 0x47107ddd9b505a38ULL,
- 0xa3afe7b5a0298135ULL, 0x792b7063e387f3e6ULL,
- 0x0140e953565d75e0ULL, 0x12f4f9ffa503e97bULL,
- 0x750ce8902c3cb512ULL, 0xdbc47e8515f30733ULL,
- 0x1ed3610c6ab8af8fULL, 0x5239218681dde5d9ULL,
- 0xe222d69fd2aaf877ULL, 0xfe71783514a8bd25ULL,
- 0xcaf0a18f4a177175ULL, 0x61655d9860ec7f13ULL,
- 0xe77fbc9dc19e4430ULL, 0x2ccff441ddd440a5ULL,
- 0x16e97aaee06a20dcULL, 0xa855dae2d01c915bULL,
- 0x1d1347f9905f30b2ULL, 0xb7c652bdecf94b34ULL,
- 0xd03e43d265c6175dULL, 0xfdb15ec0ee4f2218ULL,
- 0x57644b8492e9599eULL, 0x07dda5a4bf8e569aULL,
- 0x54a46d71680ec6a3ULL, 0x5624a2d7c4b42c7eULL,
- 0xbebca04c3076b187ULL, 0x7d36f332a6ee3a41ULL,
- 0x3b6667bc6be31599ULL, 0x695f463aea3ef040ULL,
- 0xad08b0e0c3282d1cULL, 0xb15b1e4a052a684eULL,
- 0x44d05b2861b7c505ULL, 0x15295c5b1a8dbfe1ULL,
- 0x744c01c37a61c0f2ULL, 0x59c31cd1f1e8f5b7ULL,
- 0xef45a73f4b4ccb63ULL, 0x6bdf899c46841a9dULL,
- 0x3dfb2b4b823036e3ULL, 0xa2ef0ee6f674f4d5ULL,
- 0x184e2dfb836b8cf5ULL, 0x1134df0a5fe47646ULL,
- 0xbaa1231d751f7820ULL, 0xd17eaa81339b62bdULL,
- 0xb01bf71953771daeULL, 0x849a2ea30dc8d1feULL,
- 0x705182923f080955ULL, 0x0ea757556301ac29ULL,
- 0x041d83514569c9a7ULL, 0x0abad4042668658eULL,
- 0x49b72a88f851f611ULL, 0x8a3d79f66ec97dd7ULL,
- 0xcd2d042bf59927efULL, 0xc930877ab0f0ee48ULL,
- 0x9273540deda2f122ULL, 0xc797d02fd3f14261ULL,
- 0xe1e2f06a284d674aULL, 0xd2be8c74c97cfd80ULL,
- 0x9a494faf67707e71ULL, 0xb3dbd1eca9908293ULL,
- 0x72d14d3493b2e388ULL, 0xd6a30f258c153427ULL },
+static const uint64_t streebog_table[8][256] = {
+ /* 0 */
+ {0xd01f715b5c7ef8e6ULL, 0x16fa240980778325ULL,
+ 0xa8a42e857ee049c8ULL, 0x6ac1068fa186465bULL,
+ 0x6e417bd7a2e9320bULL, 0x665c8167a437daabULL,
+ 0x7666681aa89617f6ULL, 0x4b959163700bdcf5ULL,
+ 0xf14be6b78df36248ULL, 0xc585bd689a625cffULL,
+ 0x9557d7fca67d82cbULL, 0x89f0b969af6dd366ULL,
+ 0xb0833d48749f6c35ULL, 0xa1998c23b1ecbc7cULL,
+ 0x8d70c431ac02a736ULL, 0xd6dfbc2fd0a8b69eULL,
+ 0x37aeb3e551fa198bULL, 0x0b7d128a40b5cf9cULL,
+ 0x5a8f2008b5780cbcULL, 0xedec882284e333e5ULL,
+ 0xd25fc177d3c7c2ceULL, 0x5e0f5d50b61778ecULL,
+ 0x1d873683c0c24cb9ULL, 0xad040bcbb45d208cULL,
+ 0x2f89a0285b853c76ULL, 0x5732fff6791b8d58ULL,
+ 0x3e9311439ef6ec3fULL, 0xc9183a809fd3c00fULL,
+ 0x83adf3f5260a01eeULL, 0xa6791941f4e8ef10ULL,
+ 0x103ae97d0ca1cd5dULL, 0x2ce948121dee1b4aULL,
+ 0x39738421dbf2bf53ULL, 0x093da2a6cf0cf5b4ULL,
+ 0xcd9847d89cbcb45fULL, 0xf9561c078b2d8ae8ULL,
+ 0x9c6a755a6971777fULL, 0xbc1ebaa0712ef0c5ULL,
+ 0x72e61542abf963a6ULL, 0x78bb5fde229eb12eULL,
+ 0x14ba94250fceb90dULL, 0x844d6697630e5282ULL,
+ 0x98ea08026a1e032fULL, 0xf06bbea144217f5cULL,
+ 0xdb6263d11ccb377aULL, 0x641c314b2b8ee083ULL,
+ 0x320e96ab9b4770cfULL, 0x1ee7deb986a96b85ULL,
+ 0xe96cf57a878c47b5ULL, 0xfdd6615f8842feb8ULL,
+ 0xc83862965601dd1bULL, 0x2ea9f83e92572162ULL,
+ 0xf876441142ff97fcULL, 0xeb2c455608357d9dULL,
+ 0x5612a7e0b0c9904cULL, 0x6c01cbfb2d500823ULL,
+ 0x4548a6a7fa037a2dULL, 0xabc4c6bf388b6ef4ULL,
+ 0xbade77d4fdf8bebdULL, 0x799b07c8eb4cac3aULL,
+ 0x0c9d87e805b19cf0ULL, 0xcb588aac106afa27ULL,
+ 0xea0c1d40c1e76089ULL, 0x2869354a1e816f1aULL,
+ 0xff96d17307fbc490ULL, 0x9f0a9d602f1a5043ULL,
+ 0x96373fc6e016a5f7ULL, 0x5292dab8b3a6e41cULL,
+ 0x9b8ae0382c752413ULL, 0x4f15ec3b7364a8a5ULL,
+ 0x3fb349555724f12bULL, 0xc7c50d4415db66d7ULL,
+ 0x92b7429ee379d1a7ULL, 0xd37f99611a15dfdaULL,
+ 0x231427c05e34a086ULL, 0xa439a96d7b51d538ULL,
+ 0xb403401077f01865ULL, 0xdda2aea5901d7902ULL,
+ 0x0a5d4a9c8967d288ULL, 0xc265280adf660f93ULL,
+ 0x8bb0094520d4e94eULL, 0x2a29856691385532ULL,
+ 0x42a833c5bf072941ULL, 0x73c64d54622b7eb2ULL,
+ 0x07e095624504536cULL, 0x8a905153e906f45aULL,
+ 0x6f6123c16b3b2f1fULL, 0xc6e55552dc097bc3ULL,
+ 0x4468feb133d16739ULL, 0xe211e7f0c7398829ULL,
+ 0xa2f96419f7879b40ULL, 0x19074bdbc3ad38e9ULL,
+ 0xf4ebc3f9474e0b0cULL, 0x43886bd376d53455ULL,
+ 0xd8028beb5aa01046ULL, 0x51f23282f5cdc320ULL,
+ 0xe7b1c2be0d84e16dULL, 0x081dfab006dee8a0ULL,
+ 0x3b33340d544b857bULL, 0x7f5bcabc679ae242ULL,
+ 0x0edd37c48a08a6d8ULL, 0x81ed43d9a9b33bc6ULL,
+ 0xb1a3655ebd4d7121ULL, 0x69a1eeb5e7ed6167ULL,
+ 0xf6ab73d5c8f73124ULL, 0x1a67a3e185c61fd5ULL,
+ 0x2dc91004d43c065eULL, 0x0240b02c8fb93a28ULL,
+ 0x90f7f2b26cc0eb8fULL, 0x3cd3a16f114fd617ULL,
+ 0xaae49ea9f15973e0ULL, 0x06c0cd748cd64e78ULL,
+ 0xda423bc7d5192a6eULL, 0xc345701c16b41287ULL,
+ 0x6d2193ede4821537ULL, 0xfcf639494190e3acULL,
+ 0x7c3b228621f1c57eULL, 0xfb16ac2b0494b0c0ULL,
+ 0xbf7e529a3745d7f9ULL, 0x6881b6a32e3f7c73ULL,
+ 0xca78d2bad9b8e733ULL, 0xbbfe2fc2342aa3a9ULL,
+ 0x0dbddffecc6381e4ULL, 0x70a6a56e2440598eULL,
+ 0xe4d12a844befc651ULL, 0x8c509c2765d0ba22ULL,
+ 0xee8c6018c28814d9ULL, 0x17da7c1f49a59e31ULL,
+ 0x609c4c1328e194d3ULL, 0xb3e3d57232f44b09ULL,
+ 0x91d7aaa4a512f69bULL, 0x0ffd6fd243dabbccULL,
+ 0x50d26a943c1fde34ULL, 0x6be15e9968545b4fULL,
+ 0x94778fea6faf9fdfULL, 0x2b09dd7058ea4826ULL,
+ 0x677cd9716de5c7bfULL, 0x49d5214fffb2e6ddULL,
+ 0x0360e83a466b273cULL, 0x1fc786af4f7b7691ULL,
+ 0xa0b9d435783ea168ULL, 0xd49f0c035f118cb6ULL,
+ 0x01205816c9d21d14ULL, 0xac2453dd7d8f3d98ULL,
+ 0x545217cc3f70aa64ULL, 0x26b4028e9489c9c2ULL,
+ 0xdec2469fd6765e3eULL, 0x04807d58036f7450ULL,
+ 0xe5f17292823ddb45ULL, 0xf30b569b024a5860ULL,
+ 0x62dcfc3fa758aefbULL, 0xe84cad6c4e5e5aa1ULL,
+ 0xccb81fce556ea94bULL, 0x53b282ae7a74f908ULL,
+ 0x1b47fbf74c1402c1ULL, 0x368eebf39828049fULL,
+ 0x7afbeff2ad278b06ULL, 0xbe5e0a8cfe97caedULL,
+ 0xcfd8f7f413058e77ULL, 0xf78b2bc301252c30ULL,
+ 0x4d555c17fcdd928dULL, 0x5f2f05467fc565f8ULL,
+ 0x24f4b2a21b30f3eaULL, 0x860dd6bbecb768aaULL,
+ 0x4c750401350f8f99ULL, 0x0000000000000000ULL,
+ 0xecccd0344d312ef1ULL, 0xb5231806be220571ULL,
+ 0xc105c030990d28afULL, 0x653c695de25cfd97ULL,
+ 0x159acc33c61ca419ULL, 0xb89ec7f872418495ULL,
+ 0xa9847693b73254dcULL, 0x58cf90243ac13694ULL,
+ 0x59efc832f3132b80ULL, 0x5c4fed7c39ae42c4ULL,
+ 0x828dabe3efd81cfaULL, 0xd13f294d95ace5f2ULL,
+ 0x7d1b7a90e823d86aULL, 0xb643f03cf849224dULL,
+ 0x3df3f979d89dcb03ULL, 0x7426d836272f2ddeULL,
+ 0xdfe21e891fa4432aULL, 0x3a136c1b9d99986fULL,
+ 0xfa36f43dcd46add4ULL, 0xc025982650df35bbULL,
+ 0x856d3e81aadc4f96ULL, 0xc4a5e57e53b041ebULL,
+ 0x4708168b75ba4005ULL, 0xaf44bbe73be41aa4ULL,
+ 0x971767d029c4b8e3ULL, 0xb9be9feebb939981ULL,
+ 0x215497ecd18d9aaeULL, 0x316e7e91dd2c57f3ULL,
+ 0xcef8afe2dad79363ULL, 0x3853dc371220a247ULL,
+ 0x35ee03c9de4323a3ULL, 0xe6919aa8c456fc79ULL,
+ 0xe05157dc4880b201ULL, 0x7bdbb7e464f59612ULL,
+ 0x127a59518318f775ULL, 0x332ecebd52956ddbULL,
+ 0x8f30741d23bb9d1eULL, 0xd922d3fd93720d52ULL,
+ 0x7746300c61440ae2ULL, 0x25d4eab4d2e2eefeULL,
+ 0x75068020eefd30caULL, 0x135a01474acaea61ULL,
+ 0x304e268714fe4ae7ULL, 0xa519f17bb283c82cULL,
+ 0xdc82f6b359cf6416ULL, 0x5baf781e7caa11a8ULL,
+ 0xb2c38d64fb26561dULL, 0x34ce5bdf17913eb7ULL,
+ 0x5d6fb56af07c5fd0ULL, 0x182713cd0a7f25fdULL,
+ 0x9e2ac576e6c84d57ULL, 0x9aaab82ee5a73907ULL,
+ 0xa3d93c0f3e558654ULL, 0x7e7b92aaae48ff56ULL,
+ 0x872d8ead256575beULL, 0x41c8dbfff96c0e7dULL,
+ 0x99ca5014a3cc1e3bULL, 0x40e883e930be1369ULL,
+ 0x1ca76e95091051adULL, 0x4e35b42dbab6b5b1ULL,
+ 0x05a0254ecabd6944ULL, 0xe1710fca8152af15ULL,
+ 0xf22b0e8dcb984574ULL, 0xb763a82a319b3f59ULL,
+ 0x63fca4296e8ab3efULL, 0x9d4a2d4ca0a36a6bULL,
+ 0xe331bfe60eeb953dULL, 0xd5bf541596c391a2ULL,
+ 0xf5cb9bef8e9c1618ULL, 0x46284e9dbc685d11ULL,
+ 0x2074cffa185f87baULL, 0xbd3ee2b6b8fcedd1ULL,
+ 0xae64e3f1f23607b0ULL, 0xfeb68965ce29d984ULL,
+ 0x55724fdaf6a2b770ULL, 0x29496d5cd753720eULL,
+ 0xa75941573d3af204ULL, 0x8e102c0bea69800aULL,
+ 0x111ab16bc573d049ULL, 0xd7ffe439197aab8aULL,
+ 0xefac380e0b5a09cdULL, 0x48f579593660fbc9ULL,
+ 0x22347fd697e6bd92ULL, 0x61bc1405e13389c7ULL,
+ 0x4ab5c975b9d9c1e1ULL, 0x80cd1bcf606126d2ULL,
+ 0x7186fd78ed92449aULL, 0x93971a882aabccb3ULL,
+ 0x88d0e17f66bfce72ULL, 0x27945a985d5bd4d6ULL},
+ /* 1 */
+ {0xde553f8c05a811c8ULL, 0x1906b59631b4f565ULL,
+ 0x436e70d6b1964ff7ULL, 0x36d343cb8b1e9d85ULL,
+ 0x843dfacc858aab5aULL, 0xfdfc95c299bfc7f9ULL,
+ 0x0f634bdea1d51fa2ULL, 0x6d458b3b76efb3cdULL,
+ 0x85c3f77cf8593f80ULL, 0x3c91315fbe737cb2ULL,
+ 0x2148b03366ace398ULL, 0x18f8b8264c6761bfULL,
+ 0xc830c1c495c9fb0fULL, 0x981a76102086a0aaULL,
+ 0xaa16012142f35760ULL, 0x35cc54060c763cf6ULL,
+ 0x42907d66cc45db2dULL, 0x8203d44b965af4bcULL,
+ 0x3d6f3cefc3a0e868ULL, 0xbc73ff69d292bda7ULL,
+ 0x8722ed0102e20a29ULL, 0x8f8185e8cd34deb7ULL,
+ 0x9b0561dda7ee01d9ULL, 0x5335a0193227fad6ULL,
+ 0xc9cecc74e81a6fd5ULL, 0x54f5832e5c2431eaULL,
+ 0x99e47ba05d553470ULL, 0xf7bee756acd226ceULL,
+ 0x384e05a5571816fdULL, 0xd1367452a47d0e6aULL,
+ 0xf29fde1c386ad85bULL, 0x320c77316275f7caULL,
+ 0xd0c879e2d9ae9ab0ULL, 0xdb7406c69110ef5dULL,
+ 0x45505e51a2461011ULL, 0xfc029872e46c5323ULL,
+ 0xfa3cb6f5f7bc0cc5ULL, 0x031f17cd8768a173ULL,
+ 0xbd8df2d9af41297dULL, 0x9d3b4f5ab43e5e3fULL,
+ 0x4071671b36feee84ULL, 0x716207e7d3e3b83dULL,
+ 0x48d20ff2f9283a1aULL, 0x27769eb4757cbc7eULL,
+ 0x5c56ebc793f2e574ULL, 0xa48b474f9ef5dc18ULL,
+ 0x52cbada94ff46e0cULL, 0x60c7da982d8199c6ULL,
+ 0x0e9d466edc068b78ULL, 0x4eec2175eaf865fcULL,
+ 0x550b8e9e21f7a530ULL, 0x6b7ba5bc653fec2bULL,
+ 0x5eb7f1ba6949d0ddULL, 0x57ea94e3db4c9099ULL,
+ 0xf640eae6d101b214ULL, 0xdd4a284182c0b0bbULL,
+ 0xff1d8fbf6304f250ULL, 0xb8accb933bf9d7e8ULL,
+ 0xe8867c478eb68c4dULL, 0x3f8e2692391bddc1ULL,
+ 0xcb2fd60912a15a7cULL, 0xaec935dbab983d2fULL,
+ 0xf55ffd2b56691367ULL, 0x80e2ce366ce1c115ULL,
+ 0x179bf3f8edb27e1dULL, 0x01fe0db07dd394daULL,
+ 0xda8a0b76ecc37b87ULL, 0x44ae53e1df9584cbULL,
+ 0xb310b4b77347a205ULL, 0xdfab323c787b8512ULL,
+ 0x3b511268d070b78eULL, 0x65e6e3d2b9396753ULL,
+ 0x6864b271e2574d58ULL, 0x259784c98fc789d7ULL,
+ 0x02e11a7dfabb35a9ULL, 0x8841a6dfa337158bULL,
+ 0x7ade78c39b5dcdd0ULL, 0xb7cf804d9a2cc84aULL,
+ 0x20b6bd831b7f7742ULL, 0x75bd331d3a88d272ULL,
+ 0x418f6aab4b2d7a5eULL, 0xd9951cbb6babdaf4ULL,
+ 0xb6318dfde7ff5c90ULL, 0x1f389b112264aa83ULL,
+ 0x492c024284fbaec0ULL, 0xe33a0363c608f9a0ULL,
+ 0x2688930408af28a4ULL, 0xc7538a1a341ce4adULL,
+ 0x5da8e677ee2171aeULL, 0x8c9e92254a5c7fc4ULL,
+ 0x63d8cd55aae938b5ULL, 0x29ebd8daa97a3706ULL,
+ 0x959827b37be88aa1ULL, 0x1484e4356adadf6eULL,
+ 0xa7945082199d7d6bULL, 0xbf6ce8a455fa1cd4ULL,
+ 0x9cc542eac9edcae5ULL, 0x79c16f0e1c356ca3ULL,
+ 0x89bfab6fdee48151ULL, 0xd4174d1830c5f0ffULL,
+ 0x9258048415eb419dULL, 0x6139d72850520d1cULL,
+ 0x6a85a80c18ec78f1ULL, 0xcd11f88e0171059aULL,
+ 0xcceff53e7ca29140ULL, 0xd229639f2315af19ULL,
+ 0x90b91ef9ef507434ULL, 0x5977d28d074a1be1ULL,
+ 0x311360fce51d56b9ULL, 0xc093a92d5a1f2f91ULL,
+ 0x1a19a25bb6dc5416ULL, 0xeb996b8a09de2d3eULL,
+ 0xfee3820f1ed7668aULL, 0xd7085ad5b7ad518cULL,
+ 0x7fff41890fe53345ULL, 0xec5948bd67dde602ULL,
+ 0x2fd5f65dbaaa68e0ULL, 0xa5754affe32648c2ULL,
+ 0xf8ddac880d07396cULL, 0x6fa491468c548664ULL,
+ 0x0c7c5c1326bdbed1ULL, 0x4a33158f03930fb3ULL,
+ 0x699abfc19f84d982ULL, 0xe4fa2054a80b329cULL,
+ 0x6707f9af438252faULL, 0x08a368e9cfd6d49eULL,
+ 0x47b1442c58fd25b8ULL, 0xbbb3dc5ebc91769bULL,
+ 0x1665fe489061eac7ULL, 0x33f27a811fa66310ULL,
+ 0x93a609346838d547ULL, 0x30ed6d4c98cec263ULL,
+ 0x1dd9816cd8df9f2aULL, 0x94662a03063b1e7bULL,
+ 0x83fdd9fbeb896066ULL, 0x7b207573e68e590aULL,
+ 0x5f49fc0a149a4407ULL, 0x343259b671a5a82cULL,
+ 0xfbc2bb458a6f981fULL, 0xc272b350a0a41a38ULL,
+ 0x3aaf1fd8ada32354ULL, 0x6cbb868b0b3c2717ULL,
+ 0xa2b569c88d2583feULL, 0xf180c9d1bf027928ULL,
+ 0xaf37386bd64ba9f5ULL, 0x12bacab2790a8088ULL,
+ 0x4c0d3b0810435055ULL, 0xb2eeb9070e9436dfULL,
+ 0xc5b29067cea7d104ULL, 0xdcb425f1ff132461ULL,
+ 0x4f122cc5972bf126ULL, 0xac282fa651230886ULL,
+ 0xe7e537992f6393efULL, 0xe61b3a2952b00735ULL,
+ 0x709c0a57ae302ce7ULL, 0xe02514ae416058d3ULL,
+ 0xc44c9dd7b37445deULL, 0x5a68c5408022ba92ULL,
+ 0x1c278cdca50c0bf0ULL, 0x6e5a9cf6f18712beULL,
+ 0x86dce0b17f319ef3ULL, 0x2d34ec2040115d49ULL,
+ 0x4bcd183f7e409b69ULL, 0x2815d56ad4a9a3dcULL,
+ 0x24698979f2141d0dULL, 0x0000000000000000ULL,
+ 0x1ec696a15fb73e59ULL, 0xd86b110b16784e2eULL,
+ 0x8e7f8858b0e74a6dULL, 0x063e2e8713d05fe6ULL,
+ 0xe2c40ed3bbdb6d7aULL, 0xb1f1aeca89fc97acULL,
+ 0xe1db191e3cb3cc09ULL, 0x6418ee62c4eaf389ULL,
+ 0xc6ad87aa49cf7077ULL, 0xd6f65765ca7ec556ULL,
+ 0x9afb6c6dda3d9503ULL, 0x7ce05644888d9236ULL,
+ 0x8d609f95378feb1eULL, 0x23a9aa4e9c17d631ULL,
+ 0x6226c0e5d73aac6fULL, 0x56149953a69f0443ULL,
+ 0xeeb852c09d66d3abULL, 0x2b0ac2a753c102afULL,
+ 0x07c023376e03cb3cULL, 0x2ccae1903dc2c993ULL,
+ 0xd3d76e2f5ec63bc3ULL, 0x9e2458973356ff4cULL,
+ 0xa66a5d32644ee9b1ULL, 0x0a427294356de137ULL,
+ 0x783f62be61e6f879ULL, 0x1344c70204d91452ULL,
+ 0x5b96c8f0fdf12e48ULL, 0xa90916ecc59bf613ULL,
+ 0xbe92e5142829880eULL, 0x727d102a548b194eULL,
+ 0x1be7afebcb0fc0ccULL, 0x3e702b2244c8491bULL,
+ 0xd5e940a84d166425ULL, 0x66f9f41f3e51c620ULL,
+ 0xabe80c913f20c3baULL, 0xf07ec461c2d1edf2ULL,
+ 0xf361d3ac45b94c81ULL, 0x0521394a94b8fe95ULL,
+ 0xadd622162cf09c5cULL, 0xe97871f7f3651897ULL,
+ 0xf4a1f09b2bba87bdULL, 0x095d6559b2054044ULL,
+ 0x0bbc7f2448be75edULL, 0x2af4cf172e129675ULL,
+ 0x157ae98517094bb4ULL, 0x9fda55274e856b96ULL,
+ 0x914713499283e0eeULL, 0xb952c623462a4332ULL,
+ 0x74433ead475b46a8ULL, 0x8b5eb112245fb4f8ULL,
+ 0xa34b6478f0f61724ULL, 0x11a5dd7ffe6221fbULL,
+ 0xc16da49d27ccbb4bULL, 0x76a224d0bde07301ULL,
+ 0x8aa0bca2598c2022ULL, 0x4df336b86d90c48fULL,
+ 0xea67663a740db9e4ULL, 0xef465f70e0b54771ULL,
+ 0x39b008152acb8227ULL, 0x7d1e5bf4f55e06ecULL,
+ 0x105bd0cf83b1b521ULL, 0x775c2960c033e7dbULL,
+ 0x7e014c397236a79fULL, 0x811cc386113255cfULL,
+ 0xeda7450d1a0e72d8ULL, 0x5889df3d7a998f3bULL,
+ 0x2e2bfbedc779fc3aULL, 0xce0eef438619a4e9ULL,
+ 0x372d4e7bf6cd095fULL, 0x04df34fae96b6a4fULL,
+ 0xf923a13870d4adb6ULL, 0xa1aa7e050a4d228dULL,
+ 0xa8f71b5cb84862c9ULL, 0xb52e9a306097fde3ULL,
+ 0x0d8251a35b6e2a0bULL, 0x2257a7fee1c442ebULL,
+ 0x73831d9a29588d94ULL, 0x51d4ba64c89ccf7fULL,
+ 0x502ab7d4b54f5ba5ULL, 0x97793dce8153bf08ULL,
+ 0xe5042de4d5d8a646ULL, 0x9687307efc802bd2ULL,
+ 0xa05473b5779eb657ULL, 0xb4d097801d446939ULL,
+ 0xcff0e2f3fbca3033ULL, 0xc38cbee0dd778ee2ULL,
+ 0x464f499c252eb162ULL, 0xcad1dbb96f72cea6ULL,
+ 0xba4dd1eec142e241ULL, 0xb00fa37af42f0376ULL},
+ /* 2 */
+ {0xcce4cd3aa968b245ULL, 0x089d5484e80b7fafULL,
+ 0x638246c1b3548304ULL, 0xd2fe0ec8c2355492ULL,
+ 0xa7fbdf7ff2374eeeULL, 0x4df1600c92337a16ULL,
+ 0x84e503ea523b12fbULL, 0x0790bbfd53ab0c4aULL,
+ 0x198a780f38f6ea9dULL, 0x2ab30c8f55ec48cbULL,
+ 0xe0f7fed6b2c49db5ULL, 0xb6ecf3f422cadbdcULL,
+ 0x409c9a541358df11ULL, 0xd3ce8a56dfde3fe3ULL,
+ 0xc3e9224312c8c1a0ULL, 0x0d6dfa58816ba507ULL,
+ 0xddf3e1b179952777ULL, 0x04c02a42748bb1d9ULL,
+ 0x94c2abff9f2decb8ULL, 0x4f91752da8f8acf4ULL,
+ 0x78682befb169bf7bULL, 0xe1c77a48af2ff6c4ULL,
+ 0x0c5d7ec69c80ce76ULL, 0x4cc1e4928fd81167ULL,
+ 0xfeed3d24d9997b62ULL, 0x518bb6dfc3a54a23ULL,
+ 0x6dbf2d26151f9b90ULL, 0xb5bc624b05ea664fULL,
+ 0xe86aaa525acfe21aULL, 0x4801ced0fb53a0beULL,
+ 0xc91463e6c00868edULL, 0x1027a815cd16fe43ULL,
+ 0xf67069a0319204cdULL, 0xb04ccc976c8abce7ULL,
+ 0xc0b9b3fc35e87c33ULL, 0xf380c77c58f2de65ULL,
+ 0x50bb3241de4e2152ULL, 0xdf93f490435ef195ULL,
+ 0xf1e0d25d62390887ULL, 0xaf668bfb1a3c3141ULL,
+ 0xbc11b251f00a7291ULL, 0x73a5eed47e427d47ULL,
+ 0x25bee3f6ee4c3b2eULL, 0x43cc0beb34786282ULL,
+ 0xc824e778dde3039cULL, 0xf97d86d98a327728ULL,
+ 0xf2b043e24519b514ULL, 0xe297ebf7880f4b57ULL,
+ 0x3a94a49a98fab688ULL, 0x868516cb68f0c419ULL,
+ 0xeffa11af0964ee50ULL, 0xa4ab4ec0d517f37dULL,
+ 0xa9c6b498547c567aULL, 0x8e18424f80fbbbb6ULL,
+ 0x0bcdc53bcf2bc23cULL, 0x137739aaea3643d0ULL,
+ 0x2c1333ec1bac2ff0ULL, 0x8d48d3f0a7db0625ULL,
+ 0x1e1ac3f26b5de6d7ULL, 0xf520f81f16b2b95eULL,
+ 0x9f0f6ec450062e84ULL, 0x0130849e1deb6b71ULL,
+ 0xd45e31ab8c7533a9ULL, 0x652279a2fd14e43fULL,
+ 0x3209f01e70f1c927ULL, 0xbe71a770cac1a473ULL,
+ 0x0e3d6be7a64b1894ULL, 0x7ec8148cff29d840ULL,
+ 0xcb7476c7fac3be0fULL, 0x72956a4a63a91636ULL,
+ 0x37f95ec21991138fULL, 0x9e3fea5a4ded45f5ULL,
+ 0x7b38ba50964902e8ULL, 0x222e580bbde73764ULL,
+ 0x61e253e0899f55e6ULL, 0xfc8d2805e352ad80ULL,
+ 0x35994be3235ac56dULL, 0x09add01af5e014deULL,
+ 0x5e8659a6780539c6ULL, 0xb17c48097161d796ULL,
+ 0x026015213acbd6e2ULL, 0xd1ae9f77e515e901ULL,
+ 0xb7dc776a3f21b0adULL, 0xaba6a1b96eb78098ULL,
+ 0x9bcf4486248d9f5dULL, 0x582666c536455efdULL,
+ 0xfdbdac9bfeb9c6f1ULL, 0xc47999be4163cdeaULL,
+ 0x765540081722a7efULL, 0x3e548ed8ec710751ULL,
+ 0x3d041f67cb51bac2ULL, 0x7958af71ac82d40aULL,
+ 0x36c9da5c047a78feULL, 0xed9a048e33af38b2ULL,
+ 0x26ee7249c96c86bdULL, 0x900281bdeba65d61ULL,
+ 0x11172c8bd0fd9532ULL, 0xea0abf73600434f8ULL,
+ 0x42fc8f75299309f3ULL, 0x34a9cf7d3eb1ae1cULL,
+ 0x2b838811480723baULL, 0x5ce64c8742ceef24ULL,
+ 0x1adae9b01fd6570eULL, 0x3c349bf9d6bad1b3ULL,
+ 0x82453c891c7b75c0ULL, 0x97923a40b80d512bULL,
+ 0x4a61dbf1c198765cULL, 0xb48ce6d518010d3eULL,
+ 0xcfb45c858e480fd6ULL, 0xd933cbf30d1e96aeULL,
+ 0xd70ea014ab558e3aULL, 0xc189376228031742ULL,
+ 0x9262949cd16d8b83ULL, 0xeb3a3bed7def5f89ULL,
+ 0x49314a4ee6b8cbcfULL, 0xdcc3652f647e4c06ULL,
+ 0xda635a4c2a3e2b3dULL, 0x470c21a940f3d35bULL,
+ 0x315961a157d174b4ULL, 0x6672e81dda3459acULL,
+ 0x5b76f77a1165e36eULL, 0x445cb01667d36ec8ULL,
+ 0xc5491d205c88a69bULL, 0x456c34887a3805b9ULL,
+ 0xffddb9bac4721013ULL, 0x99af51a71e4649bfULL,
+ 0xa15be01cbc7729d5ULL, 0x52db2760e485f7b0ULL,
+ 0x8c78576eba306d54ULL, 0xae560f6507d75a30ULL,
+ 0x95f22f6182c687c9ULL, 0x71c5fbf54489aba5ULL,
+ 0xca44f259e728d57eULL, 0x88b87d2ccebbdc8dULL,
+ 0xbab18d32be4a15aaULL, 0x8be8ec93e99b611eULL,
+ 0x17b713e89ebdf209ULL, 0xb31c5d284baa0174ULL,
+ 0xeeca9531148f8521ULL, 0xb8d198138481c348ULL,
+ 0x8988f9b2d350b7fcULL, 0xb9e11c8d996aa839ULL,
+ 0x5a4673e40c8e881fULL, 0x1687977683569978ULL,
+ 0xbf4123eed72acf02ULL, 0x4ea1f1b3b513c785ULL,
+ 0xe767452be16f91ffULL, 0x7505d1b730021a7cULL,
+ 0xa59bca5ec8fc980cULL, 0xad069eda20f7e7a3ULL,
+ 0x38f4b1bba231606aULL, 0x60d2d77e94743e97ULL,
+ 0x9affc0183966f42cULL, 0x248e6768f3a7505fULL,
+ 0xcdd449a4b483d934ULL, 0x87b59255751baf68ULL,
+ 0x1bea6d2e023d3c7fULL, 0x6b1f12455b5ffcabULL,
+ 0x743555292de9710dULL, 0xd8034f6d10f5fddfULL,
+ 0xc6198c9f7ba81b08ULL, 0xbb8109aca3a17edbULL,
+ 0xfa2d1766ad12cabbULL, 0xc729080166437079ULL,
+ 0x9c5fff7b77269317ULL, 0x0000000000000000ULL,
+ 0x15d706c9a47624ebULL, 0x6fdf38072fd44d72ULL,
+ 0x5fb6dd3865ee52b7ULL, 0xa33bf53d86bcff37ULL,
+ 0xe657c1b5fc84fa8eULL, 0xaa962527735cebe9ULL,
+ 0x39c43525bfda0b1bULL, 0x204e4d2a872ce186ULL,
+ 0x7a083ece8ba26999ULL, 0x554b9c9db72efbfaULL,
+ 0xb22cd9b656416a05ULL, 0x96a2bedea5e63a5aULL,
+ 0x802529a826b0a322ULL, 0x8115ad363b5bc853ULL,
+ 0x8375b81701901eb1ULL, 0x3069e53f4a3a1fc5ULL,
+ 0xbd2136cfede119e0ULL, 0x18bafc91251d81ecULL,
+ 0x1d4a524d4c7d5b44ULL, 0x05f0aedc6960daa8ULL,
+ 0x29e39d3072ccf558ULL, 0x70f57f6b5962c0d4ULL,
+ 0x989fd53903ad22ceULL, 0xf84d024797d91c59ULL,
+ 0x547b1803aac5908bULL, 0xf0d056c37fd263f6ULL,
+ 0xd56eb535919e58d8ULL, 0x1c7ad6d351963035ULL,
+ 0x2e7326cd2167f912ULL, 0xac361a443d1c8cd2ULL,
+ 0x697f076461942a49ULL, 0x4b515f6fdc731d2dULL,
+ 0x8ad8680df4700a6fULL, 0x41ac1eca0eb3b460ULL,
+ 0x7d988533d80965d3ULL, 0xa8f6300649973d0bULL,
+ 0x7765c4960ac9cc9eULL, 0x7ca801adc5e20ea2ULL,
+ 0xdea3700e5eb59ae4ULL, 0xa06b6482a19c42a4ULL,
+ 0x6a2f96db46b497daULL, 0x27def6d7d487edccULL,
+ 0x463ca5375d18b82aULL, 0xa6cb5be1efdc259fULL,
+ 0x53eba3fef96e9cc1ULL, 0xce84d81b93a364a7ULL,
+ 0xf4107c810b59d22fULL, 0x333974806d1aa256ULL,
+ 0x0f0def79bba073e5ULL, 0x231edc95a00c5c15ULL,
+ 0xe437d494c64f2c6cULL, 0x91320523f64d3610ULL,
+ 0x67426c83c7df32ddULL, 0x6eefbc99323f2603ULL,
+ 0x9d6f7be56acdf866ULL, 0x5916e25b2bae358cULL,
+ 0x7ff89012e2c2b331ULL, 0x035091bf2720bd93ULL,
+ 0x561b0d22900e4669ULL, 0x28d319ae6f279e29ULL,
+ 0x2f43a2533c8c9263ULL, 0xd09e1be9f8fe8270ULL,
+ 0xf740ed3e2c796fbcULL, 0xdb53ded237d5404cULL,
+ 0x62b2c25faebfe875ULL, 0x0afd41a5d2c0a94dULL,
+ 0x6412fd3ce0ff8f4eULL, 0xe3a76f6995e42026ULL,
+ 0x6c8fa9b808f4f0e1ULL, 0xc2d9a6dd0f23aad1ULL,
+ 0x8f28c6d19d10d0c7ULL, 0x85d587744fd0798aULL,
+ 0xa20b71a39b579446ULL, 0x684f83fa7c7f4138ULL,
+ 0xe507500adba4471dULL, 0x3f640a46f19a6c20ULL,
+ 0x1247bd34f7dd28a1ULL, 0x2d23b77206474481ULL,
+ 0x93521002cc86e0f2ULL, 0x572b89bc8de52d18ULL,
+ 0xfb1d93f8b0f9a1caULL, 0xe95a2ecc4724896bULL,
+ 0x3ba420048511ddf9ULL, 0xd63e248ab6bee54bULL,
+ 0x5dd6c8195f258455ULL, 0x06a03f634e40673bULL,
+ 0x1f2a476c76b68da6ULL, 0x217ec9b49ac78af7ULL,
+ 0xecaa80102e4453c3ULL, 0x14e78257b99d4f9aULL},
+ /* 3 */
+ {0x20329b2cc87bba05ULL, 0x4f5eb6f86546a531ULL,
+ 0xd4f44775f751b6b1ULL, 0x8266a47b850dfa8bULL,
+ 0xbb986aa15a6ca985ULL, 0xc979eb08f9ae0f99ULL,
+ 0x2da6f447a2375ea1ULL, 0x1e74275dcd7d8576ULL,
+ 0xbc20180a800bc5f8ULL, 0xb4a2f701b2dc65beULL,
+ 0xe726946f981b6d66ULL, 0x48e6c453bf21c94cULL,
+ 0x42cad9930f0a4195ULL, 0xefa47b64aacccd20ULL,
+ 0x71180a8960409a42ULL, 0x8bb3329bf6a44e0cULL,
+ 0xd34c35de2d36daccULL, 0xa92f5b7cbc23dc96ULL,
+ 0xb31a85aa68bb09c3ULL, 0x13e04836a73161d2ULL,
+ 0xb24dfc4129c51d02ULL, 0x8ae44b70b7da5acdULL,
+ 0xe671ed84d96579a7ULL, 0xa4bb3417d66f3832ULL,
+ 0x4572ab38d56d2de8ULL, 0xb1b47761ea47215cULL,
+ 0xe81c09cf70aba15dULL, 0xffbdb872ce7f90acULL,
+ 0xa8782297fd5dc857ULL, 0x0d946f6b6a4ce4a4ULL,
+ 0xe4df1f4f5b995138ULL, 0x9ebc71edca8c5762ULL,
+ 0x0a2c1dc0b02b88d9ULL, 0x3b503c115d9d7b91ULL,
+ 0xc64376a8111ec3a2ULL, 0xcec199a323c963e4ULL,
+ 0xdc76a87ec58616f7ULL, 0x09d596e073a9b487ULL,
+ 0x14583a9d7d560dafULL, 0xf4c6dc593f2a0cb4ULL,
+ 0xdd21d19584f80236ULL, 0x4a4836983ddde1d3ULL,
+ 0xe58866a41ae745f9ULL, 0xf591a5b27e541875ULL,
+ 0x891dc05074586693ULL, 0x5b068c651810a89eULL,
+ 0xa30346bc0c08544fULL, 0x3dbf3751c684032dULL,
+ 0x2a1e86ec785032dcULL, 0xf73f5779fca830eaULL,
+ 0xb60c05ca30204d21ULL, 0x0cc316802b32f065ULL,
+ 0x8770241bdd96be69ULL, 0xb861e18199ee95dbULL,
+ 0xf805cad91418fcd1ULL, 0x29e70dccbbd20e82ULL,
+ 0xc7140f435060d763ULL, 0x0f3a9da0e8b0cc3bULL,
+ 0xa2543f574d76408eULL, 0xbd7761e1c175d139ULL,
+ 0x4b1f4f737ca3f512ULL, 0x6dc2df1f2fc137abULL,
+ 0xf1d05c3967b14856ULL, 0xa742bf3715ed046cULL,
+ 0x654030141d1697edULL, 0x07b872abda676c7dULL,
+ 0x3ce84eba87fa17ecULL, 0xc1fb0403cb79afdfULL,
+ 0x3e46bc7105063f73ULL, 0x278ae987121cd678ULL,
+ 0xa1adb4778ef47cd0ULL, 0x26dd906c5362c2b9ULL,
+ 0x05168060589b44e2ULL, 0xfbfc41f9d79ac08fULL,
+ 0x0e6de44ba9ced8faULL, 0x9feb08068bf243a3ULL,
+ 0x7b341749d06b129bULL, 0x229c69e74a87929aULL,
+ 0xe09ee6c4427c011bULL, 0x5692e30e725c4c3aULL,
+ 0xda99a33e5e9f6e4bULL, 0x353dd85af453a36bULL,
+ 0x25241b4c90e0fee7ULL, 0x5de987258309d022ULL,
+ 0xe230140fc0802984ULL, 0x93281e86a0c0b3c6ULL,
+ 0xf229d719a4337408ULL, 0x6f6c2dd4ad3d1f34ULL,
+ 0x8ea5b2fbae3f0aeeULL, 0x8331dd90c473ee4aULL,
+ 0x346aa1b1b52db7aaULL, 0xdf8f235e06042aa9ULL,
+ 0xcc6f6b68a1354b7bULL, 0x6c95a6f46ebf236aULL,
+ 0x52d31a856bb91c19ULL, 0x1a35ded6d498d555ULL,
+ 0xf37eaef2e54d60c9ULL, 0x72e181a9a3c2a61cULL,
+ 0x98537aad51952fdeULL, 0x16f6c856ffaa2530ULL,
+ 0xd960281e9d1d5215ULL, 0x3a0745fa1ce36f50ULL,
+ 0x0b7b642bf1559c18ULL, 0x59a87eae9aec8001ULL,
+ 0x5e100c05408bec7cULL, 0x0441f98b19e55023ULL,
+ 0xd70dcc5534d38aefULL, 0x927f676de1bea707ULL,
+ 0x9769e70db925e3e5ULL, 0x7a636ea29115065aULL,
+ 0x468b201816ef11b6ULL, 0xab81a9b73edff409ULL,
+ 0xc0ac7de88a07bb1eULL, 0x1f235eb68c0391b7ULL,
+ 0x6056b074458dd30fULL, 0xbe8eeac102f7ed67ULL,
+ 0xcd381283e04b5fbaULL, 0x5cbefecec277c4e3ULL,
+ 0xd21b4c356c48ce0dULL, 0x1019c31664b35d8cULL,
+ 0x247362a7d19eea26ULL, 0xebe582efb3299d03ULL,
+ 0x02aef2cb82fc289fULL, 0x86275df09ce8aaa8ULL,
+ 0x28b07427faac1a43ULL, 0x38a9b7319e1f47cfULL,
+ 0xc82e92e3b8d01b58ULL, 0x06ef0b409b1978bcULL,
+ 0x62f842bfc771fb90ULL, 0x9904034610eb3b1fULL,
+ 0xded85ab5477a3e68ULL, 0x90d195a663428f98ULL,
+ 0x5384636e2ac708d8ULL, 0xcbd719c37b522706ULL,
+ 0xae9729d76644b0ebULL, 0x7c8c65e20a0c7ee6ULL,
+ 0x80c856b007f1d214ULL, 0x8c0b40302cc32271ULL,
+ 0xdbcedad51fe17a8aULL, 0x740e8ae938dbdea0ULL,
+ 0xa615c6dc549310adULL, 0x19cc55f6171ae90bULL,
+ 0x49b1bdb8fe5fdd8dULL, 0xed0a89af2830e5bfULL,
+ 0x6a7aadb4f5a65bd6ULL, 0x7e22972988f05679ULL,
+ 0xf952b3325566e810ULL, 0x39fecedadf61530eULL,
+ 0x6101c99f04f3c7ceULL, 0x2e5f7f6761b562ffULL,
+ 0xf08725d226cf5c97ULL, 0x63af3b54860fef51ULL,
+ 0x8ff2cb10ef411e2fULL, 0x884ab9bb35267252ULL,
+ 0x4df04433e7ba8daeULL, 0x9afd8866d3690741ULL,
+ 0x66b9bb34de94abb3ULL, 0x9baaf18d92171380ULL,
+ 0x543c11c5f0a064a5ULL, 0x17a1b1bdbed431f1ULL,
+ 0xb5f58eeaf3a2717fULL, 0xc355f6c849858740ULL,
+ 0xec5df044694ef17eULL, 0xd83751f5dc6346d4ULL,
+ 0xfc4433520dfdacf2ULL, 0x0000000000000000ULL,
+ 0x5a51f58e596ebc5fULL, 0x3285aaf12e34cf16ULL,
+ 0x8d5c39db6dbd36b0ULL, 0x12b731dde64f7513ULL,
+ 0x94906c2d7aa7dfbbULL, 0x302b583aacc8e789ULL,
+ 0x9d45facd090e6b3cULL, 0x2165e2c78905aec4ULL,
+ 0x68d45f7f775a7349ULL, 0x189b2c1d5664fdcaULL,
+ 0xe1c99f2f030215daULL, 0x6983269436246788ULL,
+ 0x8489af3b1e148237ULL, 0xe94b702431d5b59cULL,
+ 0x33d2d31a6f4adbd7ULL, 0xbfd9932a4389f9a6ULL,
+ 0xb0e30e8aab39359dULL, 0xd1e2c715afcaf253ULL,
+ 0x150f43763c28196eULL, 0xc4ed846393e2eb3dULL,
+ 0x03f98b20c3823c5eULL, 0xfd134ab94c83b833ULL,
+ 0x556b682eb1de7064ULL, 0x36c4537a37d19f35ULL,
+ 0x7559f30279a5ca61ULL, 0x799ae58252973a04ULL,
+ 0x9c12832648707ffdULL, 0x78cd9c6913e92ec5ULL,
+ 0x1d8dac7d0effb928ULL, 0x439da0784e745554ULL,
+ 0x413352b3cc887dcbULL, 0xbacf134a1b12bd44ULL,
+ 0x114ebafd25cd494dULL, 0x2f08068c20cb763eULL,
+ 0x76a07822ba27f63fULL, 0xeab2fb04f25789c2ULL,
+ 0xe3676de481fe3d45ULL, 0x1b62a73d95e6c194ULL,
+ 0x641749ff5c68832cULL, 0xa5ec4dfc97112cf3ULL,
+ 0xf6682e92bdd6242bULL, 0x3f11c59a44782bb2ULL,
+ 0x317c21d1edb6f348ULL, 0xd65ab5be75ad9e2eULL,
+ 0x6b2dd45fb4d84f17ULL, 0xfaab381296e4d44eULL,
+ 0xd0b5befeeeb4e692ULL, 0x0882ef0b32d7a046ULL,
+ 0x512a91a5a83b2047ULL, 0x963e9ee6f85bf724ULL,
+ 0x4e09cf132438b1f0ULL, 0x77f701c9fb59e2feULL,
+ 0x7ddb1c094b726a27ULL, 0x5f4775ee01f5f8bdULL,
+ 0x9186ec4d223c9b59ULL, 0xfeeac1998f01846dULL,
+ 0xac39db1ce4b89874ULL, 0xb75b7c21715e59e0ULL,
+ 0xafc0503c273aa42aULL, 0x6e3b543fec430bf5ULL,
+ 0x704f7362213e8e83ULL, 0x58ff0745db9294c0ULL,
+ 0x67eec2df9feabf72ULL, 0xa0facd9ccf8a6811ULL,
+ 0xb936986ad890811aULL, 0x95c715c63bd9cb7aULL,
+ 0xca8060283a2c33c7ULL, 0x507de84ee9453486ULL,
+ 0x85ded6d05f6a96f6ULL, 0x1cdad5964f81ade9ULL,
+ 0xd5a33e9eb62fa270ULL, 0x40642b588df6690aULL,
+ 0x7f75eec2c98e42b8ULL, 0x2cf18dace3494a60ULL,
+ 0x23cb100c0bf9865bULL, 0xeef3028febb2d9e1ULL,
+ 0x4425d2d394133929ULL, 0xaad6d05c7fa1e0c8ULL,
+ 0xad6ea2f7a5c68cb5ULL, 0xc2028f2308fb9381ULL,
+ 0x819f2f5b468fc6d5ULL, 0xc5bafd88d29cfffcULL,
+ 0x47dc59f357910577ULL, 0x2b49ff07392e261dULL,
+ 0x57c59ae5332258fbULL, 0x73b6f842e2bcb2ddULL,
+ 0xcf96e04862b77725ULL, 0x4ca73dd8a6c4996fULL,
+ 0x015779eb417e14c1ULL, 0x37932a9176af8bf4ULL},
+ /* 4 */
+ {0x190a2c9b249df23eULL, 0x2f62f8b62263e1e9ULL,
+ 0x7a7f754740993655ULL, 0x330b7ba4d5564d9fULL,
+ 0x4c17a16a46672582ULL, 0xb22f08eb7d05f5b8ULL,
+ 0x535f47f40bc148ccULL, 0x3aec5d27d4883037ULL,
+ 0x10ed0a1825438f96ULL, 0x516101f72c233d17ULL,
+ 0x13cc6f949fd04eaeULL, 0x739853c441474bfdULL,
+ 0x653793d90d3f5b1bULL, 0x5240647b96b0fc2fULL,
+ 0x0c84890ad27623e0ULL, 0xd7189b32703aaea3ULL,
+ 0x2685de3523bd9c41ULL, 0x99317c5b11bffefaULL,
+ 0x0d9baa854f079703ULL, 0x70b93648fbd48ac5ULL,
+ 0xa80441fce30bc6beULL, 0x7287704bdc36ff1eULL,
+ 0xb65384ed33dc1f13ULL, 0xd36417343ee34408ULL,
+ 0x39cd38ab6e1bf10fULL, 0x5ab861770a1f3564ULL,
+ 0x0ebacf09f594563bULL, 0xd04572b884708530ULL,
+ 0x3cae9722bdb3af47ULL, 0x4a556b6f2f5cbaf2ULL,
+ 0xe1704f1f76c4bd74ULL, 0x5ec4ed7144c6dfcfULL,
+ 0x16afc01d4c7810e6ULL, 0x283f113cd629ca7aULL,
+ 0xaf59a8761741ed2dULL, 0xeed5a3991e215facULL,
+ 0x3bf37ea849f984d4ULL, 0xe413e096a56ce33cULL,
+ 0x2c439d3a98f020d1ULL, 0x637559dc6404c46bULL,
+ 0x9e6c95d1e5f5d569ULL, 0x24bb9836045fe99aULL,
+ 0x44efa466dac8ecc9ULL, 0xc6eab2a5c80895d6ULL,
+ 0x803b50c035220cc4ULL, 0x0321658cba93c138ULL,
+ 0x8f9ebc465dc7ee1cULL, 0xd15a5137190131d3ULL,
+ 0x0fa5ec8668e5e2d8ULL, 0x91c979578d1037b1ULL,
+ 0x0642ca05693b9f70ULL, 0xefca80168350eb4fULL,
+ 0x38d21b24f36a45ecULL, 0xbeab81e1af73d658ULL,
+ 0x8cbfd9cae7542f24ULL, 0xfd19cc0d81f11102ULL,
+ 0x0ac6430fbb4dbc90ULL, 0x1d76a09d6a441895ULL,
+ 0x2a01573ff1cbbfa1ULL, 0xb572e161894fde2bULL,
+ 0x8124734fa853b827ULL, 0x614b1fdf43e6b1b0ULL,
+ 0x68ac395c4238cc18ULL, 0x21d837bfd7f7b7d2ULL,
+ 0x20c714304a860331ULL, 0x5cfaab726324aa14ULL,
+ 0x74c5ba4eb50d606eULL, 0xf3a3030474654739ULL,
+ 0x23e671bcf015c209ULL, 0x45f087e947b9582aULL,
+ 0xd8bd77b418df4c7bULL, 0xe06f6c90ebb50997ULL,
+ 0x0bd96080263c0873ULL, 0x7e03f9410e40dcfeULL,
+ 0xb8e94be4c6484928ULL, 0xfb5b0608e8ca8e72ULL,
+ 0x1a2b49179e0e3306ULL, 0x4e29e76961855059ULL,
+ 0x4f36c4e6fcf4e4baULL, 0x49740ee395cf7bcaULL,
+ 0xc2963ea386d17f7dULL, 0x90d65ad810618352ULL,
+ 0x12d34c1b02a1fa4dULL, 0xfa44258775bb3a91ULL,
+ 0x18150f14b9ec46ddULL, 0x1491861e6b9a653dULL,
+ 0x9a1019d7ab2c3fc2ULL, 0x3668d42d06fe13d7ULL,
+ 0xdcc1fbb25606a6d0ULL, 0x969490dd795a1c22ULL,
+ 0x3549b1a1bc6dd2efULL, 0xc94f5e23a0ed770eULL,
+ 0xb9f6686b5b39fdcbULL, 0xc4d4f4a6efeae00dULL,
+ 0xe732851a1fff2204ULL, 0x94aad6de5eb869f9ULL,
+ 0x3f8ff2ae07206e7fULL, 0xfe38a9813b62d03aULL,
+ 0xa7a1ad7a8bee2466ULL, 0x7b6056c8dde882b6ULL,
+ 0x302a1e286fc58ca7ULL, 0x8da0fa457a259bc7ULL,
+ 0xb3302b64e074415bULL, 0x5402ae7eff8b635fULL,
+ 0x08f8050c9cafc94bULL, 0xae468bf98a3059ceULL,
+ 0x88c355cca98dc58fULL, 0xb10e6d67c7963480ULL,
+ 0xbad70de7e1aa3cf3ULL, 0xbfb4a26e320262bbULL,
+ 0xcb711820870f02d5ULL, 0xce12b7a954a75c9dULL,
+ 0x563ce87dd8691684ULL, 0x9f73b65e7884618aULL,
+ 0x2b1e74b06cba0b42ULL, 0x47cec1ea605b2df1ULL,
+ 0x1c698312f735ac76ULL, 0x5fdbcefed9b76b2cULL,
+ 0x831a354c8fb1cdfcULL, 0x820516c312c0791fULL,
+ 0xb74ca762aeadabf0ULL, 0xfc06ef821c80a5e1ULL,
+ 0x5723cbf24518a267ULL, 0x9d4df05d5f661451ULL,
+ 0x588627742dfd40bfULL, 0xda8331b73f3d39a0ULL,
+ 0x17b0e392d109a405ULL, 0xf965400bcf28fba9ULL,
+ 0x7c3dbf4229a2a925ULL, 0x023e460327e275dbULL,
+ 0x6cd0b55a0ce126b3ULL, 0xe62da695828e96e7ULL,
+ 0x42ad6e63b3f373b9ULL, 0xe50cc319381d57dfULL,
+ 0xc5cbd729729b54eeULL, 0x46d1e265fd2a9912ULL,
+ 0x6428b056904eeff8ULL, 0x8be23040131e04b7ULL,
+ 0x6709d5da2add2ec0ULL, 0x075de98af44a2b93ULL,
+ 0x8447dcc67bfbe66fULL, 0x6616f655b7ac9a23ULL,
+ 0xd607b8bded4b1a40ULL, 0x0563af89d3a85e48ULL,
+ 0x3db1b4ad20c21ba4ULL, 0x11f22997b8323b75ULL,
+ 0x292032b34b587e99ULL, 0x7f1cdace9331681dULL,
+ 0x8e819fc9c0b65affULL, 0xa1e3677fe2d5bb16ULL,
+ 0xcd33d225ee349da5ULL, 0xd9a2543b85aef898ULL,
+ 0x795e10cbfa0af76dULL, 0x25a4bbb9992e5d79ULL,
+ 0x78413344677b438eULL, 0xf0826688cef68601ULL,
+ 0xd27b34bba392f0ebULL, 0x551d8df162fad7bcULL,
+ 0x1e57c511d0d7d9adULL, 0xdeffbdb171e4d30bULL,
+ 0xf4feea8e802f6caaULL, 0xa480c8f6317de55eULL,
+ 0xa0fc44f07fa40ff5ULL, 0x95b5f551c3c9dd1aULL,
+ 0x22f952336d6476eaULL, 0x0000000000000000ULL,
+ 0xa6be8ef5169f9085ULL, 0xcc2cf1aa73452946ULL,
+ 0x2e7ddb39bf12550aULL, 0xd526dd3157d8db78ULL,
+ 0x486b2d6c08becf29ULL, 0x9b0f3a58365d8b21ULL,
+ 0xac78cdfaadd22c15ULL, 0xbc95c7e28891a383ULL,
+ 0x6a927f5f65dab9c3ULL, 0xc3891d2c1ba0cb9eULL,
+ 0xeaa92f9f50f8b507ULL, 0xcf0d9426c9d6e87eULL,
+ 0xca6e3baf1a7eb636ULL, 0xab25247059980786ULL,
+ 0x69b31ad3df4978fbULL, 0xe2512a93cc577c4cULL,
+ 0xff278a0ea61364d9ULL, 0x71a615c766a53e26ULL,
+ 0x89dc764334fc716cULL, 0xf87a638452594f4aULL,
+ 0xf2bc208be914f3daULL, 0x8766b94ac1682757ULL,
+ 0xbbc82e687cdb8810ULL, 0x626a7a53f9757088ULL,
+ 0xa2c202f358467a2eULL, 0x4d0882e5db169161ULL,
+ 0x09e7268301de7da8ULL, 0xe897699c771ac0dcULL,
+ 0xc8507dac3d9cc3edULL, 0xc0a878a0a1330aa6ULL,
+ 0x978bb352e42ba8c1ULL, 0xe9884a13ea6b743fULL,
+ 0x279afdbabecc28a2ULL, 0x047c8c064ed9eaabULL,
+ 0x507e2278b15289f4ULL, 0x599904fbb08cf45cULL,
+ 0xbd8ae46d15e01760ULL, 0x31353da7f2b43844ULL,
+ 0x8558ff49e68a528cULL, 0x76fbfc4d92ef15b5ULL,
+ 0x3456922e211c660cULL, 0x86799ac55c1993b4ULL,
+ 0x3e90d1219a51da9cULL, 0x2d5cbeb505819432ULL,
+ 0x982e5fd48cce4a19ULL, 0xdb9c1238a24c8d43ULL,
+ 0xd439febecaa96f9bULL, 0x418c0bef0960b281ULL,
+ 0x158ea591f6ebd1deULL, 0x1f48e69e4da66d4eULL,
+ 0x8afd13cf8e6fb054ULL, 0xf5e1c9011d5ed849ULL,
+ 0xe34e091c5126c8afULL, 0xad67ee7530a398f6ULL,
+ 0x43b24dec2e82c75aULL, 0x75da99c1287cd48dULL,
+ 0x92e81cdb3783f689ULL, 0xa3dd217cc537cecdULL,
+ 0x60543c50de970553ULL, 0x93f73f54aaf2426aULL,
+ 0xa91b62737e7a725dULL, 0xf19d4507538732e2ULL,
+ 0x77e4dfc20f9ea156ULL, 0x7d229ccdb4d31dc6ULL,
+ 0x1b346a98037f87e5ULL, 0xedf4c615a4b29e94ULL,
+ 0x4093286094110662ULL, 0xb0114ee85ae78063ULL,
+ 0x6ff1d0d6b672e78bULL, 0x6dcf96d591909250ULL,
+ 0xdfe09e3eec9567e8ULL, 0x3214582b4827f97cULL,
+ 0xb46dc2ee143e6ac8ULL, 0xf6c0ac8da7cd1971ULL,
+ 0xebb60c10cd8901e4ULL, 0xf7df8f023abcad92ULL,
+ 0x9c52d3d2c217a0b2ULL, 0x6b8d5cd0f8ab0d20ULL,
+ 0x3777f7a29b8fa734ULL, 0x011f238f9d71b4e3ULL,
+ 0xc1b75b2f3c42be45ULL, 0x5de588fdfe551ef7ULL,
+ 0x6eeef3592b035368ULL, 0xaa3a07ffc4e9b365ULL,
+ 0xecebe59a39c32a77ULL, 0x5ba742f8976e8187ULL,
+ 0x4b4a48e0b22d0e11ULL, 0xddded83dcb771233ULL,
+ 0xa59feb79ac0c51bdULL, 0xc7f5912a55792135ULL},
+ /* 5 */
+ {0x6d6ae04668a9b08aULL, 0x3ab3f04b0be8c743ULL,
+ 0xe51e166b54b3c908ULL, 0xbe90a9eb35c2f139ULL,
+ 0xb2c7066637f2bec1ULL, 0xaa6945613392202cULL,
+ 0x9a28c36f3b5201ebULL, 0xddce5a93ab536994ULL,
+ 0x0e34133ef6382827ULL, 0x52a02ba1ec55048bULL,
+ 0xa2f88f97c4b2a177ULL, 0x8640e513ca2251a5ULL,
+ 0xcdf1d36258137622ULL, 0xfe6cb708dedf8ddbULL,
+ 0x8a174a9ec8121e5dULL, 0x679896036b81560eULL,
+ 0x59ed033395795feeULL, 0x1dd778ab8b74edafULL,
+ 0xee533ef92d9f926dULL, 0x2a8c79baf8a8d8f5ULL,
+ 0x6bcf398e69b119f6ULL, 0xe20491742fafdd95ULL,
+ 0x276488e0809c2aecULL, 0xea955b82d88f5cceULL,
+ 0x7102c63a99d9e0c4ULL, 0xf9763017a5c39946ULL,
+ 0x429fa2501f151b3dULL, 0x4659c72bea05d59eULL,
+ 0x984b7fdccf5a6634ULL, 0xf742232953fbb161ULL,
+ 0x3041860e08c021c7ULL, 0x747bfd9616cd9386ULL,
+ 0x4bb1367192312787ULL, 0x1b72a1638a6c44d3ULL,
+ 0x4a0e68a6e8359a66ULL, 0x169a5039f258b6caULL,
+ 0xb98a2ef44edee5a4ULL, 0xd9083fe85e43a737ULL,
+ 0x967f6ce239624e13ULL, 0x8874f62d3c1a7982ULL,
+ 0x3c1629830af06e3fULL, 0x9165ebfd427e5a8eULL,
+ 0xb5dd81794ceeaa5cULL, 0x0de8f15a7834f219ULL,
+ 0x70bd98ede3dd5d25ULL, 0xaccc9ca9328a8950ULL,
+ 0x56664eda1945ca28ULL, 0x221db34c0f8859aeULL,
+ 0x26dbd637fa98970dULL, 0x1acdffb4f068f932ULL,
+ 0x4585254f64090fa0ULL, 0x72de245e17d53afaULL,
+ 0x1546b25d7c546cf4ULL, 0x207e0ffffb803e71ULL,
+ 0xfaaad2732bcf4378ULL, 0xb462dfae36ea17bdULL,
+ 0xcf926fd1ac1b11fdULL, 0xe0672dc7dba7ba4aULL,
+ 0xd3fa49ad5d6b41b3ULL, 0x8ba81449b216a3bcULL,
+ 0x14f9ec8a0650d115ULL, 0x40fc1ee3eb1d7ce2ULL,
+ 0x23a2ed9b758ce44fULL, 0x782c521b14fddc7eULL,
+ 0x1c68267cf170504eULL, 0xbcf31558c1ca96e6ULL,
+ 0xa781b43b4ba6d235ULL, 0xf6fd7dfe29ff0c80ULL,
+ 0xb0a4bad5c3fad91eULL, 0xd199f51ea963266cULL,
+ 0x414340349119c103ULL, 0x5405f269ed4dadf7ULL,
+ 0xabd61bb649969dcdULL, 0x6813dbeae7bdc3c8ULL,
+ 0x65fb2ab09f8931d1ULL, 0xf1e7fae152e3181dULL,
+ 0xc1a67cef5a2339daULL, 0x7a4feea8e0f5bba1ULL,
+ 0x1e0b9acf05783791ULL, 0x5b8ebf8061713831ULL,
+ 0x80e53cdbcb3af8d9ULL, 0x7e898bd315e57502ULL,
+ 0xc6bcfbf0213f2d47ULL, 0x95a38e86b76e942dULL,
+ 0x092e94218d243cbaULL, 0x8339debf453622e7ULL,
+ 0xb11be402b9fe64ffULL, 0x57d9100d634177c9ULL,
+ 0xcc4e8db52217cbc3ULL, 0x3b0cae9c71ec7aa2ULL,
+ 0xfb158ca451cbfe99ULL, 0x2b33276d82ac6514ULL,
+ 0x01bf5ed77a04bde1ULL, 0xc5601994af33f779ULL,
+ 0x75c4a3416cc92e67ULL, 0xf3844652a6eb7fc2ULL,
+ 0x3487e375fdd0ef64ULL, 0x18ae430704609eedULL,
+ 0x4d14efb993298efbULL, 0x815a620cb13e4538ULL,
+ 0x125c354207487869ULL, 0x9eeea614ce42cf48ULL,
+ 0xce2d3106d61fac1cULL, 0xbbe99247bad6827bULL,
+ 0x071a871f7b1c149dULL, 0x2e4a1cc10db81656ULL,
+ 0x77a71ff298c149b8ULL, 0x06a5d9c80118a97cULL,
+ 0xad73c27e488e34b1ULL, 0x443a7b981e0db241ULL,
+ 0xe3bbcfa355ab6074ULL, 0x0af276450328e684ULL,
+ 0x73617a896dd1871bULL, 0x58525de4ef7de20fULL,
+ 0xb7be3dcab8e6cd83ULL, 0x19111dd07e64230cULL,
+ 0x842359a03e2a367aULL, 0x103f89f1f3401fb6ULL,
+ 0xdc710444d157d475ULL, 0xb835702334da5845ULL,
+ 0x4320fc876511a6dcULL, 0xd026abc9d3679b8dULL,
+ 0x17250eee885c0b2bULL, 0x90dab52a387ae76fULL,
+ 0x31fed8d972c49c26ULL, 0x89cba8fa461ec463ULL,
+ 0x2ff5421677bcabb7ULL, 0x396f122f85e41d7dULL,
+ 0xa09b332430bac6a8ULL, 0xc888e8ced7070560ULL,
+ 0xaeaf201ac682ee8fULL, 0x1180d7268944a257ULL,
+ 0xf058a43628e7a5fcULL, 0xbd4c4b8fbbce2b07ULL,
+ 0xa1246df34abe7b49ULL, 0x7d5569b79be9af3cULL,
+ 0xa9b5a705bd9efa12ULL, 0xdb6b835baa4bc0e8ULL,
+ 0x05793bac8f147342ULL, 0x21c1512881848390ULL,
+ 0xfdb0556c50d357e5ULL, 0x613d4fcb6a99ff72ULL,
+ 0x03dce2648e0cda3eULL, 0xe949b9e6568386f0ULL,
+ 0xfc0f0bbb2ad7ea04ULL, 0x6a70675913b5a417ULL,
+ 0x7f36d5046fe1c8e3ULL, 0x0c57af8d02304ff8ULL,
+ 0x32223abdfcc84618ULL, 0x0891caf6f720815bULL,
+ 0xa63eeaec31a26fd4ULL, 0x2507345374944d33ULL,
+ 0x49d28ac266394058ULL, 0xf5219f9aa7f3d6beULL,
+ 0x2d96fea583b4cc68ULL, 0x5a31e1571b7585d0ULL,
+ 0x8ed12fe53d02d0feULL, 0xdfade6205f5b0e4bULL,
+ 0x4cabb16ee92d331aULL, 0x04c6657bf510cea3ULL,
+ 0xd73c2cd6a87b8f10ULL, 0xe1d87310a1a307abULL,
+ 0x6cd5be9112ad0d6bULL, 0x97c032354366f3f2ULL,
+ 0xd4e0ceb22677552eULL, 0x0000000000000000ULL,
+ 0x29509bde76a402cbULL, 0xc27a9e8bd42fe3e4ULL,
+ 0x5ef7842cee654b73ULL, 0xaf107ecdbc86536eULL,
+ 0x3fcacbe784fcb401ULL, 0xd55f90655c73e8cfULL,
+ 0xe6c2f40fdabf1336ULL, 0xe8f6e7312c873b11ULL,
+ 0xeb2a0555a28be12fULL, 0xe4a148bc2eb774e9ULL,
+ 0x9b979db84156bc0aULL, 0x6eb60222e6a56ab4ULL,
+ 0x87ffbbc4b026ec44ULL, 0xc703a5275b3b90a6ULL,
+ 0x47e699fc9001687fULL, 0x9c8d1aa73a4aa897ULL,
+ 0x7cea3760e1ed12ddULL, 0x4ec80ddd1d2554c5ULL,
+ 0x13e36b957d4cc588ULL, 0x5d2b66486069914dULL,
+ 0x92b90999cc7280b0ULL, 0x517cc9c56259deb5ULL,
+ 0xc937b619ad03b881ULL, 0xec30824ad997f5b2ULL,
+ 0xa45d565fc5aa080bULL, 0xd6837201d27f32f1ULL,
+ 0x635ef3789e9198adULL, 0x531f75769651b96aULL,
+ 0x4f77530a6721e924ULL, 0x486dd4151c3dfdb9ULL,
+ 0x5f48dafb9461f692ULL, 0x375b011173dc355aULL,
+ 0x3da9775470f4d3deULL, 0x8d0dcd81b30e0ac0ULL,
+ 0x36e45fc609d888bbULL, 0x55baacbe97491016ULL,
+ 0x8cb29356c90ab721ULL, 0x76184125e2c5f459ULL,
+ 0x99f4210bb55edbd5ULL, 0x6f095cf59ca1d755ULL,
+ 0x9f51f8c3b44672a9ULL, 0x3538bda287d45285ULL,
+ 0x50c39712185d6354ULL, 0xf23b1885dcefc223ULL,
+ 0x79930ccc6ef9619fULL, 0xed8fdc9da3934853ULL,
+ 0xcb540aaa590bdf5eULL, 0x5c94389f1a6d2cacULL,
+ 0xe77daad8a0bbaed7ULL, 0x28efc5090ca0bf2aULL,
+ 0xbf2ff73c4fc64cd8ULL, 0xb37858b14df60320ULL,
+ 0xf8c96ec0dfc724a7ULL, 0x828680683f329f06ULL,
+ 0x941cd051cd6a29ccULL, 0xc3c5c05cae2b5e05ULL,
+ 0xb601631dc2e27062ULL, 0xc01922382027843bULL,
+ 0x24b86a840e90f0d2ULL, 0xd245177a276ffc52ULL,
+ 0x0f8b4de98c3c95c6ULL, 0x3e759530fef809e0ULL,
+ 0x0b4d2892792c5b65ULL, 0xc4df4743d5374a98ULL,
+ 0xa5e20888bfaeb5eaULL, 0xba56cc90c0d23f9aULL,
+ 0x38d04cf8ffe0a09cULL, 0x62e1adafe495254cULL,
+ 0x0263bcb3f40867dfULL, 0xcaeb547d230f62bfULL,
+ 0x6082111c109d4293ULL, 0xdad4dd8cd04f7d09ULL,
+ 0xefec602e579b2f8cULL, 0x1fb4c4187f7c8a70ULL,
+ 0xffd3e9dfa4db303aULL, 0x7bf0b07f9af10640ULL,
+ 0xf49ec14dddf76b5fULL, 0x8f6e713247066d1fULL,
+ 0x339d646a86ccfbf9ULL, 0x64447467e58d8c30ULL,
+ 0x2c29a072f9b07189ULL, 0xd8b7613f24471ad6ULL,
+ 0x6627c8d41185ebefULL, 0xa347d140beb61c96ULL,
+ 0xde12b8f7255fb3aaULL, 0x9d324470404e1576ULL,
+ 0x9306574eb6763d51ULL, 0xa80af9d2c79a47f3ULL,
+ 0x859c0777442e8b9bULL, 0x69ac853d9db97e29ULL},
+ /* 6 */
+ {0xc3407dfc2de6377eULL, 0x5b9e93eea4256f77ULL,
+ 0xadb58fdd50c845e0ULL, 0x5219ff11a75bed86ULL,
+ 0x356b61cfd90b1de9ULL, 0xfb8f406e25abe037ULL,
+ 0x7a5a0231c0f60796ULL, 0x9d3cd216e1f5020bULL,
+ 0x0c6550fb6b48d8f3ULL, 0xf57508c427ff1c62ULL,
+ 0x4ad35ffa71cb407dULL, 0x6290a2da1666aa6dULL,
+ 0xe284ec2349355f9fULL, 0xb3c307c53d7c84ecULL,
+ 0x05e23c0468365a02ULL, 0x190bac4d6c9ebfa8ULL,
+ 0x94bbbee9e28b80faULL, 0xa34fc777529cb9b5ULL,
+ 0xcc7b39f095bcd978ULL, 0x2426addb0ce532e3ULL,
+ 0x7e79329312ce4fc7ULL, 0xab09a72eebec2917ULL,
+ 0xf8d15499f6b9d6c2ULL, 0x1a55b8babf8c895dULL,
+ 0xdb8add17fb769a85ULL, 0xb57f2f368658e81bULL,
+ 0x8acd36f18f3f41f6ULL, 0x5ce3b7bba50f11d3ULL,
+ 0x114dcc14d5ee2f0aULL, 0xb91a7fcded1030e8ULL,
+ 0x81d5425fe55de7a1ULL, 0xb6213bc1554adeeeULL,
+ 0x80144ef95f53f5f2ULL, 0x1e7688186db4c10cULL,
+ 0x3b912965db5fe1bcULL, 0xc281715a97e8252dULL,
+ 0x54a5d7e21c7f8171ULL, 0x4b12535ccbc5522eULL,
+ 0x1d289cefbea6f7f9ULL, 0x6ef5f2217d2e729eULL,
+ 0xe6a7dc819b0d17ceULL, 0x1b94b41c05829b0eULL,
+ 0x33d7493c622f711eULL, 0xdcf7f942fa5ce421ULL,
+ 0x600fba8b7f7a8ecbULL, 0x46b60f011a83988eULL,
+ 0x235b898e0dcf4c47ULL, 0x957ab24f588592a9ULL,
+ 0x4354330572b5c28cULL, 0xa5f3ef84e9b8d542ULL,
+ 0x8c711e02341b2d01ULL, 0x0b1874ae6a62a657ULL,
+ 0x1213d8e306fc19ffULL, 0xfe6d7c6a4d9dba35ULL,
+ 0x65ed868f174cd4c9ULL, 0x88522ea0e6236550ULL,
+ 0x899322065c2d7703ULL, 0xc01e690bfef4018bULL,
+ 0x915982ed8abddaf8ULL, 0xbe675b98ec3a4e4cULL,
+ 0xa996bf7f82f00db1ULL, 0xe1daf8d49a27696aULL,
+ 0x2effd5d3dc8986e7ULL, 0xd153a51f2b1a2e81ULL,
+ 0x18caa0ebd690adfbULL, 0x390e3134b243c51aULL,
+ 0x2778b92cdff70416ULL, 0x029f1851691c24a6ULL,
+ 0x5e7cafeacc133575ULL, 0xfa4e4cc89fa5f264ULL,
+ 0x5a5f9f481e2b7d24ULL, 0x484c47ab18d764dbULL,
+ 0x400a27f2a1a7f479ULL, 0xaeeb9b2a83da7315ULL,
+ 0x721c626879869734ULL, 0x042330a2d2384851ULL,
+ 0x85f672fd3765aff0ULL, 0xba446b3a3e02061dULL,
+ 0x73dd6ecec3888567ULL, 0xffac70ccf793a866ULL,
+ 0xdfa9edb5294ed2d4ULL, 0x6c6aea7014325638ULL,
+ 0x834a5a0e8c41c307ULL, 0xcdba35562fb2cb2bULL,
+ 0x0ad97808d06cb404ULL, 0x0f3b440cb85aee06ULL,
+ 0xe5f9c876481f213bULL, 0x98deee1289c35809ULL,
+ 0x59018bbfcd394bd1ULL, 0xe01bf47220297b39ULL,
+ 0xde68e1139340c087ULL, 0x9fa3ca4788e926adULL,
+ 0xbb85679c840c144eULL, 0x53d8f3b71d55ffd5ULL,
+ 0x0da45c5dd146caa0ULL, 0x6f34fe87c72060cdULL,
+ 0x57fbc315cf6db784ULL, 0xcee421a1fca0fddeULL,
+ 0x3d2d0196607b8d4bULL, 0x642c8a29ad42c69aULL,
+ 0x14aff010bdd87508ULL, 0xac74837beac657b3ULL,
+ 0x3216459ad821634dULL, 0x3fb219c70967a9edULL,
+ 0x06bc28f3bb246cf7ULL, 0xf2082c9126d562c6ULL,
+ 0x66b39278c45ee23cULL, 0xbd394f6f3f2878b9ULL,
+ 0xfd33689d9e8f8cc0ULL, 0x37f4799eb017394fULL,
+ 0x108cc0b26fe03d59ULL, 0xda4bd1b1417888d6ULL,
+ 0xb09d1332ee6eb219ULL, 0x2f3ed975668794b4ULL,
+ 0x58c0871977375982ULL, 0x7561463d78ace990ULL,
+ 0x09876cff037e82f1ULL, 0x7fb83e35a8c05d94ULL,
+ 0x26b9b58a65f91645ULL, 0xef20b07e9873953fULL,
+ 0x3148516d0b3355b8ULL, 0x41cb2b541ba9e62aULL,
+ 0x790416c613e43163ULL, 0xa011d380818e8f40ULL,
+ 0x3a5025c36151f3efULL, 0xd57095bdf92266d0ULL,
+ 0x498d4b0da2d97688ULL, 0x8b0c3a57353153a5ULL,
+ 0x21c491df64d368e1ULL, 0x8f2f0af5e7091bf4ULL,
+ 0x2da1c1240f9bb012ULL, 0xc43d59a92ccc49daULL,
+ 0xbfa6573e56345c1fULL, 0x828b56a8364fd154ULL,
+ 0x9a41f643e0df7cafULL, 0xbcf843c985266aeaULL,
+ 0x2b1de9d7b4bfdce5ULL, 0x20059d79dedd7ab2ULL,
+ 0x6dabe6d6ae3c446bULL, 0x45e81bf6c991ae7bULL,
+ 0x6351ae7cac68b83eULL, 0xa432e32253b6c711ULL,
+ 0xd092a9b991143cd2ULL, 0xcac711032e98b58fULL,
+ 0xd8d4c9e02864ac70ULL, 0xc5fc550f96c25b89ULL,
+ 0xd7ef8dec903e4276ULL, 0x67729ede7e50f06fULL,
+ 0xeac28c7af045cf3dULL, 0xb15c1f945460a04aULL,
+ 0x9cfddeb05bfb1058ULL, 0x93c69abce3a1fe5eULL,
+ 0xeb0380dc4a4bdd6eULL, 0xd20db1e8f8081874ULL,
+ 0x229a8528b7c15e14ULL, 0x44291750739fbc28ULL,
+ 0xd3ccbd4e42060a27ULL, 0xf62b1c33f4ed2a97ULL,
+ 0x86a8660ae4779905ULL, 0xd62e814a2a305025ULL,
+ 0x477703a7a08d8addULL, 0x7b9b0e977af815c5ULL,
+ 0x78c51a60a9ea2330ULL, 0xa6adfb733aaae3b7ULL,
+ 0x97e5aa1e3199b60fULL, 0x0000000000000000ULL,
+ 0xf4b404629df10e31ULL, 0x5564db44a6719322ULL,
+ 0x9207961a59afec0dULL, 0x9624a6b88b97a45cULL,
+ 0x363575380a192b1cULL, 0x2c60cd82b595a241ULL,
+ 0x7d272664c1dc7932ULL, 0x7142769faa94a1c1ULL,
+ 0xa1d0df263b809d13ULL, 0x1630e841d4c451aeULL,
+ 0xc1df65ad44fa13d8ULL, 0x13d2d445bcf20bacULL,
+ 0xd915c546926abe23ULL, 0x38cf3d92084dd749ULL,
+ 0xe766d0272103059dULL, 0xc7634d5effde7f2fULL,
+ 0x077d2455012a7ea4ULL, 0xedbfa82ff16fb199ULL,
+ 0xaf2a978c39d46146ULL, 0x42953fa3c8bbd0dfULL,
+ 0xcb061da59496a7dcULL, 0x25e7a17db6eb20b0ULL,
+ 0x34aa6d6963050fbaULL, 0xa76cf7d580a4f1e4ULL,
+ 0xf7ea10954ee338c4ULL, 0xfcf2643b24819e93ULL,
+ 0xcf252d0746aeef8dULL, 0x4ef06f58a3f3082cULL,
+ 0x563acfb37563a5d7ULL, 0x5086e740ce47c920ULL,
+ 0x2982f186dda3f843ULL, 0x87696aac5e798b56ULL,
+ 0x5d22bb1d1f010380ULL, 0x035e14f7d31236f5ULL,
+ 0x3cec0d30da759f18ULL, 0xf3c920379cdb7095ULL,
+ 0xb8db736b571e22bbULL, 0xdd36f5e44052f672ULL,
+ 0xaac8ab8851e23b44ULL, 0xa857b3d938fe1fe2ULL,
+ 0x17f1e4e76eca43fdULL, 0xec7ea4894b61a3caULL,
+ 0x9e62c6e132e734feULL, 0xd4b1991b432c7483ULL,
+ 0x6ad6c283af163acfULL, 0x1ce9904904a8e5aaULL,
+ 0x5fbda34c761d2726ULL, 0xf910583f4cb7c491ULL,
+ 0xc6a241f845d06d7cULL, 0x4f3163fe19fd1a7fULL,
+ 0xe99c988d2357f9c8ULL, 0x8eee06535d0709a7ULL,
+ 0x0efa48aa0254fc55ULL, 0xb4be23903c56fa48ULL,
+ 0x763f52caabbedf65ULL, 0xeee1bcd8227d876cULL,
+ 0xe345e085f33b4dccULL, 0x3e731561b369bbbeULL,
+ 0x2843fd2067adea10ULL, 0x2adce5710eb1ceb6ULL,
+ 0xb7e03767ef44ccbdULL, 0x8db012a48e153f52ULL,
+ 0x61ceb62dc5749c98ULL, 0xe85d942b9959eb9bULL,
+ 0x4c6f7709caef2c8aULL, 0x84377e5b8d6bbda3ULL,
+ 0x30895dcbb13d47ebULL, 0x74a04a9bc2a2fbc3ULL,
+ 0x6b17ce251518289cULL, 0xe438c4d0f2113368ULL,
+ 0x1fb784bed7bad35fULL, 0x9b80fae55ad16efcULL,
+ 0x77fe5e6c11b0cd36ULL, 0xc858095247849129ULL,
+ 0x08466059b97090a2ULL, 0x01c10ca6ba0e1253ULL,
+ 0x6988d6747c040c3aULL, 0x6849dad2c60a1e69ULL,
+ 0x5147ebe67449db73ULL, 0xc99905f4fd8a837aULL,
+ 0x991fe2b433cd4a5aULL, 0xf09734c04fc94660ULL,
+ 0xa28ecbd1e892abe6ULL, 0xf1563866f5c75433ULL,
+ 0x4dae7baf70e13ed9ULL, 0x7ce62ac27bd26b61ULL,
+ 0x70837a39109ab392ULL, 0x90988e4b30b3c8abULL,
+ 0xb2020b63877296bfULL, 0x156efcb607d6675bULL},
+ /* 7 */
+ {0xe63f55ce97c331d0ULL, 0x25b506b0015bba16ULL,
+ 0xc8706e29e6ad9ba8ULL, 0x5b43d3775d521f6aULL,
+ 0x0bfa3d577035106eULL, 0xab95fc172afb0e66ULL,
+ 0xf64b63979e7a3276ULL, 0xf58b4562649dad4bULL,
+ 0x48f7c3dbae0c83f1ULL, 0xff31916642f5c8c5ULL,
+ 0xcbb048dc1c4a0495ULL, 0x66b8f83cdf622989ULL,
+ 0x35c130e908e2b9b0ULL, 0x7c761a61f0b34fa1ULL,
+ 0x3601161cf205268dULL, 0x9e54ccfe2219b7d6ULL,
+ 0x8b7d90a538940837ULL, 0x9cd403588ea35d0bULL,
+ 0xbc3c6fea9ccc5b5aULL, 0xe5ff733b6d24aeedULL,
+ 0xceed22de0f7eb8d2ULL, 0xec8581cab1ab545eULL,
+ 0xb96105e88ff8e71dULL, 0x8ca03501871a5eadULL,
+ 0x76ccce65d6db2a2fULL, 0x5883f582a7b58057ULL,
+ 0x3f7be4ed2e8adc3eULL, 0x0fe7be06355cd9c9ULL,
+ 0xee054e6c1d11be83ULL, 0x1074365909b903a6ULL,
+ 0x5dde9f80b4813c10ULL, 0x4a770c7d02b6692cULL,
+ 0x5379c8d5d7809039ULL, 0xb4067448161ed409ULL,
+ 0x5f5e5026183bd6cdULL, 0xe898029bf4c29df9ULL,
+ 0x7fb63c940a54d09cULL, 0xc5171f897f4ba8bcULL,
+ 0xa6f28db7b31d3d72ULL, 0x2e4f3be7716eaa78ULL,
+ 0x0d6771a099e63314ULL, 0x82076254e41bf284ULL,
+ 0x2f0fd2b42733df98ULL, 0x5c9e76d3e2dc49f0ULL,
+ 0x7aeb569619606cdbULL, 0x83478b07b2468764ULL,
+ 0xcfadcb8d5923cd32ULL, 0x85dac7f05b95a41eULL,
+ 0xb5469d1b4043a1e9ULL, 0xb821ecbbd9a592fdULL,
+ 0x1b8e0b0e798c13c8ULL, 0x62a57b6d9a0be02eULL,
+ 0xfcf1b793b81257f8ULL, 0x9d94ea0bd8fe28ebULL,
+ 0x4cea408aeb654a56ULL, 0x23284a47e888996cULL,
+ 0x2d8f1d128b893545ULL, 0xf4cbac3132c0d8abULL,
+ 0xbd7c86b9ca912ebaULL, 0x3a268eef3dbe6079ULL,
+ 0xf0d62f6077a9110cULL, 0x2735c916ade150cbULL,
+ 0x89fd5f03942ee2eaULL, 0x1acee25d2fd16628ULL,
+ 0x90f39bab41181bffULL, 0x430dfe8cde39939fULL,
+ 0xf70b8ac4c8274796ULL, 0x1c53aeaac6024552ULL,
+ 0x13b410acf35e9c9bULL, 0xa532ab4249faa24fULL,
+ 0x2b1251e5625a163fULL, 0xd7e3e676da4841c7ULL,
+ 0xa7b264e4e5404892ULL, 0xda8497d643ae72d3ULL,
+ 0x861ae105a1723b23ULL, 0x38a6414991048aa4ULL,
+ 0x6578dec92585b6b4ULL, 0x0280cfa6acbaeaddULL,
+ 0x88bdb650c273970aULL, 0x9333bd5ebbff84c2ULL,
+ 0x4e6a8f2c47dfa08bULL, 0x321c954db76cef2aULL,
+ 0x418d312a72837942ULL, 0xb29b38bfffcdf773ULL,
+ 0x6c022c38f90a4c07ULL, 0x5a033a240b0f6a8aULL,
+ 0x1f93885f3ce5da6fULL, 0xc38a537e96988bc6ULL,
+ 0x39e6a81ac759ff44ULL, 0x29929e43cee0fce2ULL,
+ 0x40cdd87924de0ca2ULL, 0xe9d8ebc8a29fe819ULL,
+ 0x0c2798f3cfbb46f4ULL, 0x55e484223e53b343ULL,
+ 0x4650948ecd0d2fd8ULL, 0x20e86cb2126f0651ULL,
+ 0x6d42c56baf5739e7ULL, 0xa06fc1405ace1e08ULL,
+ 0x7babbfc54f3d193bULL, 0x424d17df8864e67fULL,
+ 0xd8045870ef14980eULL, 0xc6d7397c85ac3781ULL,
+ 0x21a885e1443273b1ULL, 0x67f8116f893f5c69ULL,
+ 0x24f5efe35706cff6ULL, 0xd56329d076f2ab1aULL,
+ 0x5e1eb9754e66a32dULL, 0x28d2771098bd8902ULL,
+ 0x8f6013f47dfdc190ULL, 0x17a993fdb637553cULL,
+ 0xe0a219397e1012aaULL, 0x786b9930b5da8606ULL,
+ 0x6e82e39e55b0a6daULL, 0x875a0856f72f4ec3ULL,
+ 0x3741ff4fa458536dULL, 0xac4859b3957558fcULL,
+ 0x7ef6d5c75c09a57cULL, 0xc04a758b6c7f14fbULL,
+ 0xf9acdd91ab26ebbfULL, 0x7391a467c5ef9668ULL,
+ 0x335c7c1ee1319acaULL, 0xa91533b18641e4bbULL,
+ 0xe4bf9a683b79db0dULL, 0x8e20faa72ba0b470ULL,
+ 0x51f907737b3a7ae4ULL, 0x2268a314bed5ec8cULL,
+ 0xd944b123b949edeeULL, 0x31dcb3b84d8b7017ULL,
+ 0xd3fe65279f218860ULL, 0x097af2f1dc8ffab3ULL,
+ 0x9b09a6fc312d0b91ULL, 0xcc6ded78a3c4520fULL,
+ 0x3481d9ba5ebfcc50ULL, 0x4f2a667f1182d56bULL,
+ 0xdfd9fdd4509ace94ULL, 0x26752045fbbc252bULL,
+ 0xbffc491f662bc467ULL, 0xdd593272fc202449ULL,
+ 0x3cbbc218d46d4303ULL, 0x91b372f817456e1fULL,
+ 0x681faf69bc6385a0ULL, 0xb686bbeebaa43ed4ULL,
+ 0x1469b5084cd0ca01ULL, 0x98c98009cbca94acULL,
+ 0x6438379a73d8c354ULL, 0xc2caba2dc0c5fe26ULL,
+ 0x3e3b0dbe78d7a9deULL, 0x50b9ee202d670f04ULL,
+ 0x4590b27b37eab0e5ULL, 0x6025b4cb36b10af3ULL,
+ 0xfb2c1237079c0162ULL, 0xa12f28130c936be8ULL,
+ 0x4b37e52e54eb1cccULL, 0x083a1ba28ad28f53ULL,
+ 0xc10a9cd83a22611bULL, 0x9f1425ad7444c236ULL,
+ 0x069d4cf7e9d3237aULL, 0xedc56899e7f621beULL,
+ 0x778c273680865fcfULL, 0x309c5aeb1bd605f7ULL,
+ 0x8de0dc52d1472b4dULL, 0xf8ec34c2fd7b9e5fULL,
+ 0xea18cd3d58787724ULL, 0xaad515447ca67b86ULL,
+ 0x9989695a9d97e14cULL, 0x0000000000000000ULL,
+ 0xf196c63321f464ecULL, 0x71116bc169557cb5ULL,
+ 0xaf887f466f92c7c1ULL, 0x972e3e0ffe964d65ULL,
+ 0x190ec4a8d536f915ULL, 0x95aef1a9522ca7b8ULL,
+ 0xdc19db21aa7d51a9ULL, 0x94ee18fa0471d258ULL,
+ 0x8087adf248a11859ULL, 0xc457f6da2916dd5cULL,
+ 0xfa6cfb6451c17482ULL, 0xf256e0c6db13fbd1ULL,
+ 0x6a9f60cf10d96f7dULL, 0x4daaa9d9bd383fb6ULL,
+ 0x03c026f5fae79f3dULL, 0xde99148706c7bb74ULL,
+ 0x2a52b8b6340763dfULL, 0x6fc20acd03edd33aULL,
+ 0xd423c08320afdefaULL, 0xbbe1ca4e23420dc0ULL,
+ 0x966ed75ca8cb3885ULL, 0xeb58246e0e2502c4ULL,
+ 0x055d6a021334bc47ULL, 0xa47242111fa7d7afULL,
+ 0xe3623fcc84f78d97ULL, 0x81c744a11efc6db9ULL,
+ 0xaec8961539cfb221ULL, 0xf31609958d4e8e31ULL,
+ 0x63e5923ecc5695ceULL, 0x47107ddd9b505a38ULL,
+ 0xa3afe7b5a0298135ULL, 0x792b7063e387f3e6ULL,
+ 0x0140e953565d75e0ULL, 0x12f4f9ffa503e97bULL,
+ 0x750ce8902c3cb512ULL, 0xdbc47e8515f30733ULL,
+ 0x1ed3610c6ab8af8fULL, 0x5239218681dde5d9ULL,
+ 0xe222d69fd2aaf877ULL, 0xfe71783514a8bd25ULL,
+ 0xcaf0a18f4a177175ULL, 0x61655d9860ec7f13ULL,
+ 0xe77fbc9dc19e4430ULL, 0x2ccff441ddd440a5ULL,
+ 0x16e97aaee06a20dcULL, 0xa855dae2d01c915bULL,
+ 0x1d1347f9905f30b2ULL, 0xb7c652bdecf94b34ULL,
+ 0xd03e43d265c6175dULL, 0xfdb15ec0ee4f2218ULL,
+ 0x57644b8492e9599eULL, 0x07dda5a4bf8e569aULL,
+ 0x54a46d71680ec6a3ULL, 0x5624a2d7c4b42c7eULL,
+ 0xbebca04c3076b187ULL, 0x7d36f332a6ee3a41ULL,
+ 0x3b6667bc6be31599ULL, 0x695f463aea3ef040ULL,
+ 0xad08b0e0c3282d1cULL, 0xb15b1e4a052a684eULL,
+ 0x44d05b2861b7c505ULL, 0x15295c5b1a8dbfe1ULL,
+ 0x744c01c37a61c0f2ULL, 0x59c31cd1f1e8f5b7ULL,
+ 0xef45a73f4b4ccb63ULL, 0x6bdf899c46841a9dULL,
+ 0x3dfb2b4b823036e3ULL, 0xa2ef0ee6f674f4d5ULL,
+ 0x184e2dfb836b8cf5ULL, 0x1134df0a5fe47646ULL,
+ 0xbaa1231d751f7820ULL, 0xd17eaa81339b62bdULL,
+ 0xb01bf71953771daeULL, 0x849a2ea30dc8d1feULL,
+ 0x705182923f080955ULL, 0x0ea757556301ac29ULL,
+ 0x041d83514569c9a7ULL, 0x0abad4042668658eULL,
+ 0x49b72a88f851f611ULL, 0x8a3d79f66ec97dd7ULL,
+ 0xcd2d042bf59927efULL, 0xc930877ab0f0ee48ULL,
+ 0x9273540deda2f122ULL, 0xc797d02fd3f14261ULL,
+ 0xe1e2f06a284d674aULL, 0xd2be8c74c97cfd80ULL,
+ 0x9a494faf67707e71ULL, 0xb3dbd1eca9908293ULL,
+ 0x72d14d3493b2e388ULL, 0xd6a30f258c153427ULL},
};
-static const uint64_t C16[12][8] =
-{
- { 0xdd806559f2a64507ULL, 0x05767436cc744d23ULL,
- 0xa2422a08a460d315ULL, 0x4b7ce09192676901ULL,
- 0x714eb88d7585c4fcULL, 0x2f6a76432e45d016ULL,
- 0xebcb2f81c0657c1fULL, 0xb1085bda1ecadae9ULL },
- { 0xe679047021b19bb7ULL, 0x55dda21bd7cbcd56ULL,
- 0x5cb561c2db0aa7caULL, 0x9ab5176b12d69958ULL,
- 0x61d55e0f16b50131ULL, 0xf3feea720a232b98ULL,
- 0x4fe39d460f70b5d7ULL, 0x6fa3b58aa99d2f1aULL },
- { 0x991e96f50aba0ab2ULL, 0xc2b6f443867adb31ULL,
- 0xc1c93a376062db09ULL, 0xd3e20fe490359eb1ULL,
- 0xf2ea7514b1297b7bULL, 0x06f15e5f529c1f8bULL,
- 0x0a39fc286a3d8435ULL, 0xf574dcac2bce2fc7ULL },
- { 0x220cbebc84e3d12eULL, 0x3453eaa193e837f1ULL,
- 0xd8b71333935203beULL, 0xa9d72c82ed03d675ULL,
- 0x9d721cad685e353fULL, 0x488e857e335c3c7dULL,
- 0xf948e1a05d71e4ddULL, 0xef1fdfb3e81566d2ULL },
- { 0x601758fd7c6cfe57ULL, 0x7a56a27ea9ea63f5ULL,
- 0xdfff00b723271a16ULL, 0xbfcd1747253af5a3ULL,
- 0x359e35d7800fffbdULL, 0x7f151c1f1686104aULL,
- 0x9a3f410c6ca92363ULL, 0x4bea6bacad474799ULL },
- { 0xfa68407a46647d6eULL, 0xbf71c57236904f35ULL,
- 0x0af21f66c2bec6b6ULL, 0xcffaa6b71c9ab7b4ULL,
- 0x187f9ab49af08ec6ULL, 0x2d66c4f95142a46cULL,
- 0x6fa4c33b7a3039c0ULL, 0xae4faeae1d3ad3d9ULL },
- { 0x8886564d3a14d493ULL, 0x3517454ca23c4af3ULL,
- 0x06476983284a0504ULL, 0x0992abc52d822c37ULL,
- 0xd3473e33197a93c9ULL, 0x399ec6c7e6bf87c9ULL,
- 0x51ac86febf240954ULL, 0xf4c70e16eeaac5ecULL },
- { 0xa47f0dd4bf02e71eULL, 0x36acc2355951a8d9ULL,
- 0x69d18d2bd1a5c42fULL, 0xf4892bcb929b0690ULL,
- 0x89b4443b4ddbc49aULL, 0x4eb7f8719c36de1eULL,
- 0x03e7aa020c6e4141ULL, 0x9b1f5b424d93c9a7ULL },
- { 0x7261445183235adbULL, 0x0e38dc92cb1f2a60ULL,
- 0x7b2b8a9aa6079c54ULL, 0x800a440bdbb2ceb1ULL,
- 0x3cd955b7e00d0984ULL, 0x3a7d3a1b25894224ULL,
- 0x944c9ad8ec165fdeULL, 0x378f5a541631229bULL },
- { 0x74b4c7fb98459cedULL, 0x3698fad1153bb6c3ULL,
- 0x7a1e6c303b7652f4ULL, 0x9fe76702af69334bULL,
- 0x1fffe18a1b336103ULL, 0x8941e71cff8a78dbULL,
- 0x382ae548b2e4f3f3ULL, 0xabbedea680056f52ULL },
- { 0x6bcaa4cd81f32d1bULL, 0xdea2594ac06fd85dULL,
- 0xefbacd1d7d476e98ULL, 0x8a1d71efea48b9caULL,
- 0x2001802114846679ULL, 0xd8fa6bbbebab0761ULL,
- 0x3002c6cd635afe94ULL, 0x7bcd9ed0efc889fbULL },
- { 0x48bc924af11bd720ULL, 0xfaf417d5d9b21b99ULL,
- 0xe71da4aa88e12852ULL, 0x5d80ef9d1891cc86ULL,
- 0xf82012d430219f9bULL, 0xcda43c32bcdf1d77ULL,
- 0xd21380b00449b17aULL, 0x378ee767f11631baULL },
+static const uint64_t C16[12][8] = {
+ {0xdd806559f2a64507ULL, 0x05767436cc744d23ULL,
+ 0xa2422a08a460d315ULL, 0x4b7ce09192676901ULL,
+ 0x714eb88d7585c4fcULL, 0x2f6a76432e45d016ULL,
+ 0xebcb2f81c0657c1fULL, 0xb1085bda1ecadae9ULL},
+ {0xe679047021b19bb7ULL, 0x55dda21bd7cbcd56ULL,
+ 0x5cb561c2db0aa7caULL, 0x9ab5176b12d69958ULL,
+ 0x61d55e0f16b50131ULL, 0xf3feea720a232b98ULL,
+ 0x4fe39d460f70b5d7ULL, 0x6fa3b58aa99d2f1aULL},
+ {0x991e96f50aba0ab2ULL, 0xc2b6f443867adb31ULL,
+ 0xc1c93a376062db09ULL, 0xd3e20fe490359eb1ULL,
+ 0xf2ea7514b1297b7bULL, 0x06f15e5f529c1f8bULL,
+ 0x0a39fc286a3d8435ULL, 0xf574dcac2bce2fc7ULL},
+ {0x220cbebc84e3d12eULL, 0x3453eaa193e837f1ULL,
+ 0xd8b71333935203beULL, 0xa9d72c82ed03d675ULL,
+ 0x9d721cad685e353fULL, 0x488e857e335c3c7dULL,
+ 0xf948e1a05d71e4ddULL, 0xef1fdfb3e81566d2ULL},
+ {0x601758fd7c6cfe57ULL, 0x7a56a27ea9ea63f5ULL,
+ 0xdfff00b723271a16ULL, 0xbfcd1747253af5a3ULL,
+ 0x359e35d7800fffbdULL, 0x7f151c1f1686104aULL,
+ 0x9a3f410c6ca92363ULL, 0x4bea6bacad474799ULL},
+ {0xfa68407a46647d6eULL, 0xbf71c57236904f35ULL,
+ 0x0af21f66c2bec6b6ULL, 0xcffaa6b71c9ab7b4ULL,
+ 0x187f9ab49af08ec6ULL, 0x2d66c4f95142a46cULL,
+ 0x6fa4c33b7a3039c0ULL, 0xae4faeae1d3ad3d9ULL},
+ {0x8886564d3a14d493ULL, 0x3517454ca23c4af3ULL,
+ 0x06476983284a0504ULL, 0x0992abc52d822c37ULL,
+ 0xd3473e33197a93c9ULL, 0x399ec6c7e6bf87c9ULL,
+ 0x51ac86febf240954ULL, 0xf4c70e16eeaac5ecULL},
+ {0xa47f0dd4bf02e71eULL, 0x36acc2355951a8d9ULL,
+ 0x69d18d2bd1a5c42fULL, 0xf4892bcb929b0690ULL,
+ 0x89b4443b4ddbc49aULL, 0x4eb7f8719c36de1eULL,
+ 0x03e7aa020c6e4141ULL, 0x9b1f5b424d93c9a7ULL},
+ {0x7261445183235adbULL, 0x0e38dc92cb1f2a60ULL,
+ 0x7b2b8a9aa6079c54ULL, 0x800a440bdbb2ceb1ULL,
+ 0x3cd955b7e00d0984ULL, 0x3a7d3a1b25894224ULL,
+ 0x944c9ad8ec165fdeULL, 0x378f5a541631229bULL},
+ {0x74b4c7fb98459cedULL, 0x3698fad1153bb6c3ULL,
+ 0x7a1e6c303b7652f4ULL, 0x9fe76702af69334bULL,
+ 0x1fffe18a1b336103ULL, 0x8941e71cff8a78dbULL,
+ 0x382ae548b2e4f3f3ULL, 0xabbedea680056f52ULL},
+ {0x6bcaa4cd81f32d1bULL, 0xdea2594ac06fd85dULL,
+ 0xefbacd1d7d476e98ULL, 0x8a1d71efea48b9caULL,
+ 0x2001802114846679ULL, 0xd8fa6bbbebab0761ULL,
+ 0x3002c6cd635afe94ULL, 0x7bcd9ed0efc889fbULL},
+ {0x48bc924af11bd720ULL, 0xfaf417d5d9b21b99ULL,
+ 0xe71da4aa88e12852ULL, 0x5d80ef9d1891cc86ULL,
+ 0xf82012d430219f9bULL, 0xcda43c32bcdf1d77ULL,
+ 0xd21380b00449b17aULL, 0x378ee767f11631baULL},
};
-#define strido(out, temp, i) do { \
+# define strido(out, temp, i) do { \
uint64_t t; \
t = streebog_table[0][(temp[0] >> (i * 8)) & 0xff]; \
t ^= streebog_table[1][(temp[1] >> (i * 8)) & 0xff]; \
@@ -1149,189 +1146,173 @@ static const uint64_t C16[12][8] =
t ^= streebog_table[7][(temp[7] >> (i * 8)) & 0xff]; \
out[i] = t; } while(0)
-static void LPSX (uint64_t *out, const uint64_t *a, const uint64_t *b)
+static void LPSX(uint64_t * out, const uint64_t * a, const uint64_t * b)
{
- uint64_t temp[8];
- temp[0] = a[0] ^ b[0];
- temp[1] = a[1] ^ b[1];
- temp[2] = a[2] ^ b[2];
- temp[3] = a[3] ^ b[3];
- temp[4] = a[4] ^ b[4];
- temp[5] = a[5] ^ b[5];
- temp[6] = a[6] ^ b[6];
- temp[7] = a[7] ^ b[7];
- strido (out, temp, 0);
- strido (out, temp, 1);
- strido (out, temp, 2);
- strido (out, temp, 3);
- strido (out, temp, 4);
- strido (out, temp, 5);
- strido (out, temp, 6);
- strido (out, temp, 7);
+ uint64_t temp[8];
+ temp[0] = a[0] ^ b[0];
+ temp[1] = a[1] ^ b[1];
+ temp[2] = a[2] ^ b[2];
+ temp[3] = a[3] ^ b[3];
+ temp[4] = a[4] ^ b[4];
+ temp[5] = a[5] ^ b[5];
+ temp[6] = a[6] ^ b[6];
+ temp[7] = a[7] ^ b[7];
+ strido(out, temp, 0);
+ strido(out, temp, 1);
+ strido(out, temp, 2);
+ strido(out, temp, 3);
+ strido(out, temp, 4);
+ strido(out, temp, 5);
+ strido(out, temp, 6);
+ strido(out, temp, 7);
}
-static inline void g (uint64_t *h, uint64_t *m, uint64_t *N)
+static inline void g(uint64_t * h, uint64_t * m, uint64_t * N)
{
- uint64_t K[8];
- uint64_t T[8];
- int i;
+ uint64_t K[8];
+ uint64_t T[8];
+ int i;
- LPSX (K, h, N);
+ LPSX(K, h, N);
- LPSX (T, K, m);
- LPSX (K, K, C16[0]);
- for (i = 1; i < 12; i++)
- {
- LPSX (T, K, T);
- LPSX (K, K, C16[i]);
- }
+ LPSX(T, K, m);
+ LPSX(K, K, C16[0]);
+ for (i = 1; i < 12; i++) {
+ LPSX(T, K, T);
+ LPSX(K, K, C16[i]);
+ }
- h[0] ^= T[0] ^ K[0] ^ m[0];
- h[1] ^= T[1] ^ K[1] ^ m[1];
- h[2] ^= T[2] ^ K[2] ^ m[2];
- h[3] ^= T[3] ^ K[3] ^ m[3];
- h[4] ^= T[4] ^ K[4] ^ m[4];
- h[5] ^= T[5] ^ K[5] ^ m[5];
- h[6] ^= T[6] ^ K[6] ^ m[6];
- h[7] ^= T[7] ^ K[7] ^ m[7];
+ h[0] ^= T[0] ^ K[0] ^ m[0];
+ h[1] ^= T[1] ^ K[1] ^ m[1];
+ h[2] ^= T[2] ^ K[2] ^ m[2];
+ h[3] ^= T[3] ^ K[3] ^ m[3];
+ h[4] ^= T[4] ^ K[4] ^ m[4];
+ h[5] ^= T[5] ^ K[5] ^ m[5];
+ h[6] ^= T[6] ^ K[6] ^ m[6];
+ h[7] ^= T[7] ^ K[7] ^ m[7];
}
-
static void
-streebog512_compress (struct streebog512_ctx *ctx, const uint8_t *input, size_t count)
+streebog512_compress(struct streebog512_ctx *ctx, const uint8_t * input,
+ size_t count)
{
- uint64_t M[8];
- uint64_t l, cf;
- int i;
+ uint64_t M[8];
+ uint64_t l, cf;
+ int i;
- for (i = 0; i < 8; i++, input += 8)
- M[i] = LE_READ_UINT64(input);
+ for (i = 0; i < 8; i++, input += 8)
+ M[i] = LE_READ_UINT64(input);
- g (ctx->state, M, ctx->count);
- l = ctx->count[0];
- ctx->count[0] += count;
- if (ctx->count[0] < l)
- { /* overflow */
- for (i = 1; i < 8; i++)
- {
- ctx->count[i]++;
- if (ctx->count[i] != 0)
- break;
- }
- }
+ g(ctx->state, M, ctx->count);
+ l = ctx->count[0];
+ ctx->count[0] += count;
+ if (ctx->count[0] < l) { /* overflow */
+ for (i = 1; i < 8; i++) {
+ ctx->count[i]++;
+ if (ctx->count[i] != 0)
+ break;
+ }
+ }
- cf = 0;
- ctx->sigma[0] += M[0];
- for (i = 1; i < 8; i++)
- {
- if (ctx->sigma[i-1] != M[i-1])
- cf = (ctx->sigma[i-1] < M[i-1]);
- ctx->sigma[i] += M[i] + cf;
- }
+ cf = 0;
+ ctx->sigma[0] += M[0];
+ for (i = 1; i < 8; i++) {
+ if (ctx->sigma[i - 1] != M[i - 1])
+ cf = (ctx->sigma[i - 1] < M[i - 1]);
+ ctx->sigma[i] += M[i] + cf;
+ }
}
-static void
-streebog_final (struct streebog512_ctx *ctx)
+static void streebog_final(struct streebog512_ctx *ctx)
{
- uint64_t Z[8] = {};
- unsigned int i;
+ uint64_t Z[8] = { };
+ unsigned int i;
- /* PAD. It does not count towards message length */
- i = ctx->index;
- /* We have at least one byte free) */
- ctx->block[i++] = 1;
- while (i < 64)
- ctx->block[i++] = 0;
- streebog512_compress (ctx, ctx->block, ctx->index * 8);
+ /* PAD. It does not count towards message length */
+ i = ctx->index;
+ /* We have at least one byte free) */
+ ctx->block[i++] = 1;
+ while (i < 64)
+ ctx->block[i++] = 0;
+ streebog512_compress(ctx, ctx->block, ctx->index * 8);
- g (ctx->state, ctx->count, Z);
- g (ctx->state, ctx->sigma, Z);
+ g(ctx->state, ctx->count, Z);
+ g(ctx->state, ctx->sigma, Z);
}
-#define COMPRESS(ctx, data) (streebog512_compress((ctx), (data), 64 * 8))
+# define COMPRESS(ctx, data) (streebog512_compress((ctx), (data), 64 * 8))
-void
-streebog512_init(struct streebog512_ctx *ctx)
+void streebog512_init(struct streebog512_ctx *ctx)
{
- memset(ctx->state, 0, sizeof(ctx->state));
- memset(ctx->count, 0, sizeof(ctx->count));
- memset(ctx->sigma, 0, sizeof(ctx->sigma));
+ memset(ctx->state, 0, sizeof(ctx->state));
+ memset(ctx->count, 0, sizeof(ctx->count));
+ memset(ctx->sigma, 0, sizeof(ctx->sigma));
- /* Initialize buffer */
- ctx->index = 0;
+ /* Initialize buffer */
+ ctx->index = 0;
}
void
streebog512_update(struct streebog512_ctx *ctx,
- size_t length, const uint8_t *data)
+ size_t length, const uint8_t * data)
{
- MD_UPDATE (ctx, length, data, COMPRESS, (void)0);
+ MD_UPDATE(ctx, length, data, COMPRESS, (void)0);
}
static void
streebog512_write_digest(struct streebog512_ctx *ctx,
- size_t offset, size_t length,
- uint8_t *digest)
+ size_t offset, size_t length, uint8_t * digest)
{
- unsigned i;
- unsigned words;
- unsigned leftover;
+ unsigned i;
+ unsigned words;
+ unsigned leftover;
- assert(offset + length <= STREEBOG512_DIGEST_SIZE);
+ assert(offset + length <= STREEBOG512_DIGEST_SIZE);
- streebog_final(ctx);
+ streebog_final(ctx);
- words = length / 8;
- leftover = length % 8;
+ words = length / 8;
+ leftover = length % 8;
- for (i = 0; i < words; i++, digest += 8)
- LE_WRITE_UINT64(digest, ctx->state[offset + i]);
+ for (i = 0; i < words; i++, digest += 8)
+ LE_WRITE_UINT64(digest, ctx->state[offset + i]);
- if (leftover)
- {
- /* Truncate to the right size */
- uint64_t word = ctx->state[offset + i] << (8*(8 - leftover));
+ if (leftover) {
+ /* Truncate to the right size */
+ uint64_t word = ctx->state[offset + i] << (8 * (8 - leftover));
- do {
- digest[--leftover] = (word >> 56) & 0xff;
- word <<= 8;
- } while (leftover);
- }
+ do {
+ digest[--leftover] = (word >> 56) & 0xff;
+ word <<= 8;
+ } while (leftover);
+ }
}
void
-streebog512_digest(struct streebog512_ctx *ctx,
- size_t length,
- uint8_t *digest)
+streebog512_digest(struct streebog512_ctx *ctx, size_t length, uint8_t * digest)
{
- assert(length <= STREEBOG512_DIGEST_SIZE);
+ assert(length <= STREEBOG512_DIGEST_SIZE);
- streebog512_write_digest(ctx, 0, length, digest);
- streebog512_init(ctx);
+ streebog512_write_digest(ctx, 0, length, digest);
+ streebog512_init(ctx);
}
-void
-streebog256_init(struct streebog256_ctx *ctx)
+void streebog256_init(struct streebog256_ctx *ctx)
{
- memset(ctx->state, 1, sizeof(ctx->state));
- memset(ctx->count, 0, sizeof(ctx->count));
- memset(ctx->sigma, 0, sizeof(ctx->sigma));
+ memset(ctx->state, 1, sizeof(ctx->state));
+ memset(ctx->count, 0, sizeof(ctx->count));
+ memset(ctx->sigma, 0, sizeof(ctx->sigma));
- /* Initialize buffer */
- ctx->index = 0;
+ /* Initialize buffer */
+ ctx->index = 0;
}
void
-streebog256_digest(struct streebog256_ctx *ctx,
- size_t length,
- uint8_t *digest)
+streebog256_digest(struct streebog256_ctx *ctx, size_t length, uint8_t * digest)
{
- assert(length <= STREEBOG256_DIGEST_SIZE);
+ assert(length <= STREEBOG256_DIGEST_SIZE);
- streebog512_write_digest(ctx,
- 4,
- length,
- digest);
- streebog256_init(ctx);
+ streebog512_write_digest(ctx, 4, length, digest);
+ streebog256_init(ctx);
}
#endif
diff --git a/lib/nettle/gost/streebog.h b/lib/nettle/gost/streebog.h
index e2348bbb41..046cb022e5 100644
--- a/lib/nettle/gost/streebog.h
+++ b/lib/nettle/gost/streebog.h
@@ -30,80 +30,74 @@
the GNU Lesser General Public License along with this program. If
not, see https://www.gnu.org/licenses/.
*/
-
+
#ifndef GNUTLS_LIB_NETTLE_GOST_STREEBOG_H
-#define GNUTLS_LIB_NETTLE_GOST_STREEBOG_H
+# define GNUTLS_LIB_NETTLE_GOST_STREEBOG_H
-#include "config.h"
+# include "config.h"
-#include <nettle/nettle-types.h>
-#include <nettle/nettle-meta.h>
+# include <nettle/nettle-types.h>
+# include <nettle/nettle-meta.h>
-#ifdef __cplusplus
+# ifdef __cplusplus
extern "C" {
-#endif
+# endif
-#ifndef HAVE_NETTLE_STREEBOG512_UPDATE
+# ifndef HAVE_NETTLE_STREEBOG512_UPDATE
/* Name mangling */
-#define streebog256_init _gnutls_streebog256_init
-#define streebog256_digest _gnutls_streebog256_digest
-#define streebog512_init _gnutls_streebog512_init
-#define streebog512_update _gnutls_streebog512_update
-#define streebog512_digest _gnutls_streebog512_digest
+# define streebog256_init _gnutls_streebog256_init
+# define streebog256_digest _gnutls_streebog256_digest
+# define streebog512_init _gnutls_streebog512_init
+# define streebog512_update _gnutls_streebog512_update
+# define streebog512_digest _gnutls_streebog512_digest
/* STREEBOG512 */
-#define STREEBOG512_DIGEST_SIZE 64
-#define STREEBOG512_BLOCK_SIZE 64
+# define STREEBOG512_DIGEST_SIZE 64
+# define STREEBOG512_BLOCK_SIZE 64
/* Digest is kept internally as 8 64-bit words. */
-#define _STREEBOG512_DIGEST_LENGTH 8
-
-struct streebog512_ctx
-{
- uint64_t state[_STREEBOG512_DIGEST_LENGTH]; /* State variables */
- uint64_t count[_STREEBOG512_DIGEST_LENGTH];
- uint64_t sigma[_STREEBOG512_DIGEST_LENGTH];
- uint8_t block[STREEBOG512_BLOCK_SIZE]; /* STREEBOG512 data buffer */
- unsigned int index; /* index into buffer */
-};
+# define _STREEBOG512_DIGEST_LENGTH 8
-void
-streebog512_init(struct streebog512_ctx *ctx);
+ struct streebog512_ctx {
+ uint64_t state[_STREEBOG512_DIGEST_LENGTH]; /* State variables */
+ uint64_t count[_STREEBOG512_DIGEST_LENGTH];
+ uint64_t sigma[_STREEBOG512_DIGEST_LENGTH];
+ uint8_t block[STREEBOG512_BLOCK_SIZE]; /* STREEBOG512 data buffer */
+ unsigned int index; /* index into buffer */
+ };
-void
-streebog512_update(struct streebog512_ctx *ctx,
- size_t length,
- const uint8_t *data);
+ void
+ streebog512_init(struct streebog512_ctx *ctx);
-void
-streebog512_digest(struct streebog512_ctx *ctx,
- size_t length,
- uint8_t *digest);
+ void
+ streebog512_update(struct streebog512_ctx *ctx,
+ size_t length, const uint8_t * data);
+ void
+ streebog512_digest(struct streebog512_ctx *ctx,
+ size_t length, uint8_t * digest);
-#define STREEBOG256_DIGEST_SIZE 32
-#define STREEBOG256_BLOCK_SIZE STREEBOG512_BLOCK_SIZE
-#define streebog256_ctx streebog512_ctx
+# define STREEBOG256_DIGEST_SIZE 32
+# define STREEBOG256_BLOCK_SIZE STREEBOG512_BLOCK_SIZE
+# define streebog256_ctx streebog512_ctx
-void
-streebog256_init(struct streebog256_ctx *ctx);
+ void
+ streebog256_init(struct streebog256_ctx *ctx);
-#define streebog256_update _gnutls_streebog512_update
+# define streebog256_update _gnutls_streebog512_update
-void
-streebog256_digest(struct streebog256_ctx *ctx,
- size_t length,
- uint8_t *digest);
+ void
+ streebog256_digest(struct streebog256_ctx *ctx,
+ size_t length, uint8_t * digest);
-#define nettle_streebog256 _gnutls_streebog256
-#define nettle_streebog512 _gnutls_streebog512
-extern const struct nettle_hash _gnutls_streebog256;
-extern const struct nettle_hash _gnutls_streebog512;
-#endif
+# define nettle_streebog256 _gnutls_streebog256
+# define nettle_streebog512 _gnutls_streebog512
+ extern const struct nettle_hash _gnutls_streebog256;
+ extern const struct nettle_hash _gnutls_streebog512;
+# endif
-#ifdef __cplusplus
+# ifdef __cplusplus
}
-#endif
-
-#endif /* GNUTLS_LIB_NETTLE_GOST_STREEBOG_H */
+# endif
+#endif /* GNUTLS_LIB_NETTLE_GOST_STREEBOG_H */
diff --git a/lib/nettle/gost/write-le32.c b/lib/nettle/gost/write-le32.c
index be5c6e2048..53af496564 100644
--- a/lib/nettle/gost/write-le32.c
+++ b/lib/nettle/gost/write-le32.c
@@ -39,31 +39,27 @@
#include <nettle/macros.h>
-void
-_nettle_write_le32(size_t length, uint8_t *dst,
- const uint32_t *src)
+void _nettle_write_le32(size_t length, uint8_t * dst, const uint32_t * src)
{
- size_t i;
- size_t words;
- unsigned leftover;
-
- words = length / 4;
- leftover = length % 4;
-
- for (i = 0; i < words; i++, dst += 4)
- LE_WRITE_UINT32(dst, src[i]);
-
- if (leftover)
- {
- uint32_t word;
-
- word = src[i];
-
- do
- {
- *dst++ = word & 0xff;
- word >>= 8;
+ size_t i;
+ size_t words;
+ unsigned leftover;
+
+ words = length / 4;
+ leftover = length % 4;
+
+ for (i = 0; i < words; i++, dst += 4)
+ LE_WRITE_UINT32(dst, src[i]);
+
+ if (leftover) {
+ uint32_t word;
+
+ word = src[i];
+
+ do {
+ *dst++ = word & 0xff;
+ word >>= 8;
+ }
+ while (--leftover);
}
- while (--leftover);
- }
}
diff --git a/lib/nettle/gost_keywrap.c b/lib/nettle/gost_keywrap.c
index 61527331f3..600e76b072 100644
--- a/lib/nettle/gost_keywrap.c
+++ b/lib/nettle/gost_keywrap.c
@@ -21,8 +21,8 @@
#include "gnutls_int.h"
#include "gost/gost28147.h"
-static const struct gost28147_param *
-_gnutls_gost_get_param(gnutls_gost_paramset_t param)
+static const struct gost28147_param
+*_gnutls_gost_get_param(gnutls_gost_paramset_t param)
{
if (param == GNUTLS_GOST_PARAMSET_TC26_Z)
return &gost28147_param_TC26_Z;
@@ -41,11 +41,10 @@ _gnutls_gost_get_param(gnutls_gost_paramset_t param)
}
int _gnutls_gost_key_wrap(gnutls_gost_paramset_t gost_params,
- const gnutls_datum_t *kek,
- const gnutls_datum_t *ukm,
- const gnutls_datum_t *cek,
- gnutls_datum_t *enc,
- gnutls_datum_t *imit)
+ const gnutls_datum_t * kek,
+ const gnutls_datum_t * ukm,
+ const gnutls_datum_t * cek,
+ gnutls_datum_t * enc, gnutls_datum_t * imit)
{
const struct gost28147_param *gp;
@@ -80,11 +79,10 @@ int _gnutls_gost_key_wrap(gnutls_gost_paramset_t gost_params,
}
int _gnutls_gost_key_unwrap(gnutls_gost_paramset_t gost_params,
- const gnutls_datum_t *kek,
- const gnutls_datum_t *ukm,
- const gnutls_datum_t *enc,
- const gnutls_datum_t *imit,
- gnutls_datum_t *cek)
+ const gnutls_datum_t * kek,
+ const gnutls_datum_t * ukm,
+ const gnutls_datum_t * enc,
+ const gnutls_datum_t * imit, gnutls_datum_t * cek)
{
const struct gost28147_param *gp;
int ret;
@@ -109,8 +107,7 @@ int _gnutls_gost_key_unwrap(gnutls_gost_paramset_t gost_params,
ret = gost28147_key_unwrap_cryptopro(gp, kek->data,
ukm->data, ukm->size,
- enc->data, imit->data,
- cek->data);
+ enc->data, imit->data, cek->data);
if (ret == 0) {
gnutls_assert();
_gnutls_free_temp_key_datum(cek);
diff --git a/lib/nettle/init.c b/lib/nettle/init.c
index 9cd6b1486b..b85b1c1794 100644
--- a/lib/nettle/init.c
+++ b/lib/nettle/init.c
@@ -25,23 +25,23 @@
#include "errors.h"
#include <num.h>
#include <mpi.h>
-#include <nettle/bignum.h> /* includes gmp.h */
+#include <nettle/bignum.h> /* includes gmp.h */
static void gnutls_free_zero(void *data, size_t size);
static void *gnutls_realloc_zero(void *data, size_t old_size, size_t new_size);
-static void *(*allocfunc) (size_t);
-static void *(*reallocfunc) (void *, size_t, size_t);
-static void (*freefunc) (void *, size_t);
+static void *(*allocfunc)(size_t);
+static void *(*reallocfunc)(void *, size_t, size_t);
+static void (*freefunc)(void *, size_t);
/* Functions that refer to the initialization of the nettle library.
*/
int gnutls_crypto_init(void)
{
- void *(*defallocfunc) (size_t);
- void *(*defreallocfunc) (void *, size_t, size_t);
- void (*deffreefunc) (void *, size_t);
+ void *(*defallocfunc)(size_t);
+ void *(*defreallocfunc)(void *, size_t, size_t);
+ void (*deffreefunc)(void *, size_t);
/* Check if non-default allocators are being used.
* Some applications like guile override GMP allocators
diff --git a/lib/nettle/int/block8.h b/lib/nettle/int/block8.h
index 1d285dde9b..381adf32b9 100644
--- a/lib/nettle/int/block8.h
+++ b/lib/nettle/int/block8.h
@@ -30,32 +30,30 @@
*/
#ifndef GNUTLS_LIB_NETTLE_BLOCK8_H
-#define GNUTLS_LIB_NETTLE_BLOCK8_H
+# define GNUTLS_LIB_NETTLE_BLOCK8_H
-#include "config.h"
+# include "config.h"
-#ifndef HAVE_UNION_NETTLE_BLOCK8
+# ifndef HAVE_UNION_NETTLE_BLOCK8
/* An aligned 16-byte block. */
-union gnutls_nettle_backport_nettle_block16
-{
- uint8_t b[16];
- unsigned long w[16 / sizeof(unsigned long)];
- uint64_t u64[2];
+union gnutls_nettle_backport_nettle_block16 {
+ uint8_t b[16];
+ unsigned long w[16 / sizeof(unsigned long)];
+ uint64_t u64[2];
};
-union gnutls_nettle_backport_nettle_block8
-{
- uint8_t b[8];
- uint64_t u64;
+union gnutls_nettle_backport_nettle_block8 {
+ uint8_t b[8];
+ uint64_t u64;
};
-#undef nettle_block16
-#undef nettle_block8
+# undef nettle_block16
+# undef nettle_block8
-#define nettle_block16 gnutls_nettle_backport_nettle_block16
-#define nettle_block8 gnutls_nettle_backport_nettle_block8
+# define nettle_block16 gnutls_nettle_backport_nettle_block16
+# define nettle_block8 gnutls_nettle_backport_nettle_block8
-#endif
+# endif
-#endif /* GNUTLS_LIB_NETTLE_BLOCK8_H */
+#endif /* GNUTLS_LIB_NETTLE_BLOCK8_H */
diff --git a/lib/nettle/int/drbg-aes-self-test.c b/lib/nettle/int/drbg-aes-self-test.c
index 1b87740947..d0842a2e3b 100644
--- a/lib/nettle/int/drbg-aes-self-test.c
+++ b/lib/nettle/int/drbg-aes-self-test.c
@@ -47,44 +47,44 @@ int drbg_aes_self_test(void)
* successfully validated by ACVP server.
*/
{
- .entropy = { 0xBE, 0x36, 0xDA, 0x22, 0xC5, 0xEE, 0xC2, 0x46,
- 0x88, 0xAF, 0xD5, 0xFB, 0xC7, 0x12, 0x98, 0x58,
- 0x32, 0xD0, 0x35, 0x89, 0x33, 0xF0, 0xFA, 0x2B,
- 0x1B, 0x0D, 0x02, 0xE9, 0x3A, 0x28, 0x5F, 0x06,
- 0x04, 0x3B, 0x97, 0x5F, 0xED, 0xD6, 0x2D, 0xC5,
- 0xD9, 0x76, 0x42, 0x06, 0xEC, 0x80, 0x55, 0xFB },
- .pstring = { 0x50, 0xF9, 0x47, 0x14, 0x27, 0xF4, 0xA0, 0xAF,
- 0x30, 0x08, 0x74, 0x85, 0xC7, 0x94, 0xA3, 0x5D,
- 0x8F, 0x4F, 0x43, 0x52, 0x0C, 0xC0, 0x64, 0x47,
- 0xF8, 0xAD, 0xC7, 0xB2, 0x6C, 0x7F, 0x26, 0x6E },
- .reseed = { 0x64, 0xDB, 0x9E, 0xC3, 0x45, 0x88, 0xED, 0x33,
- 0xC8, 0x4C, 0xE2, 0x87, 0x12, 0x9C, 0xCA, 0x02,
- 0x16, 0x41, 0xB5, 0x3B, 0xCB, 0x5F, 0x01, 0xAE,
- 0xA0, 0x01, 0xBB, 0x16, 0x44, 0x1B, 0x99, 0x82,
- 0x97, 0x84, 0x5B, 0x16, 0x58, 0xF3, 0xBD, 0xBE,
- 0x9A, 0xAB, 0x9F, 0xB7, 0xB2, 0x93, 0xBE, 0xA5 },
+ .entropy = {0xBE, 0x36, 0xDA, 0x22, 0xC5, 0xEE, 0xC2, 0x46,
+ 0x88, 0xAF, 0xD5, 0xFB, 0xC7, 0x12, 0x98, 0x58,
+ 0x32, 0xD0, 0x35, 0x89, 0x33, 0xF0, 0xFA, 0x2B,
+ 0x1B, 0x0D, 0x02, 0xE9, 0x3A, 0x28, 0x5F, 0x06,
+ 0x04, 0x3B, 0x97, 0x5F, 0xED, 0xD6, 0x2D, 0xC5,
+ 0xD9, 0x76, 0x42, 0x06, 0xEC, 0x80, 0x55, 0xFB},
+ .pstring = {0x50, 0xF9, 0x47, 0x14, 0x27, 0xF4, 0xA0, 0xAF,
+ 0x30, 0x08, 0x74, 0x85, 0xC7, 0x94, 0xA3, 0x5D,
+ 0x8F, 0x4F, 0x43, 0x52, 0x0C, 0xC0, 0x64, 0x47,
+ 0xF8, 0xAD, 0xC7, 0xB2, 0x6C, 0x7F, 0x26, 0x6E},
+ .reseed = {0x64, 0xDB, 0x9E, 0xC3, 0x45, 0x88, 0xED, 0x33,
+ 0xC8, 0x4C, 0xE2, 0x87, 0x12, 0x9C, 0xCA, 0x02,
+ 0x16, 0x41, 0xB5, 0x3B, 0xCB, 0x5F, 0x01, 0xAE,
+ 0xA0, 0x01, 0xBB, 0x16, 0x44, 0x1B, 0x99, 0x82,
+ 0x97, 0x84, 0x5B, 0x16, 0x58, 0xF3, 0xBD, 0xBE,
+ 0x9A, 0xAB, 0x9F, 0xB7, 0xB2, 0x93, 0xBE, 0xA5},
.addtl = {
- { 0x10, 0xDD, 0xBC, 0x33, 0x29, 0x10, 0x53, 0x4C,
- 0xA0, 0x10, 0x72, 0xBF, 0x4C, 0x55, 0xDD, 0x7C,
- 0x08, 0x5F, 0xDF, 0x40, 0xB6, 0x03, 0xF2, 0xBC,
- 0xEA, 0xAE, 0x08, 0x46, 0x61, 0x68, 0x91, 0xC9 },
- { 0x00, 0xB6, 0x84, 0xF7, 0xF3, 0x14, 0xC7, 0x80,
- 0x57, 0xA4, 0x8F, 0x48, 0xE5, 0xC9, 0x7F, 0x8D,
- 0x54, 0x88, 0x96, 0xDF, 0x94, 0x55, 0xB1, 0x1C,
- 0xFA, 0xCF, 0xE0, 0x4D, 0xAA, 0x01, 0xFA, 0x25 },
- { 0x97, 0x02, 0xDB, 0xCB, 0x85, 0x2A, 0xAA, 0x55,
- 0x96, 0xC7, 0xF8, 0xF3, 0xB3, 0x9B, 0xBC, 0xCA,
- 0xB5, 0xC1, 0x7C, 0x1C, 0x0D, 0x2F, 0x5B, 0x0E,
- 0x9B, 0xBA, 0xB4, 0xDD, 0x45, 0x90, 0xF2, 0x14 },
- },
- .res = { 0xfe, 0x78, 0x3c, 0x64, 0x98, 0xb8, 0x69, 0x1d,
- 0xb7, 0xd4, 0xfb, 0x71, 0xdb, 0x58, 0xd2, 0xee,
- 0x32, 0x63, 0xfd, 0xed, 0x78, 0xe7, 0x93, 0x13,
- 0x65, 0xd7, 0xf8, 0x6b, 0x71, 0x90, 0xfc, 0xf4,
- 0xa3, 0x29, 0xae, 0x0b, 0xca, 0x40, 0x23, 0x61,
- 0x6c, 0xa3, 0xf8, 0xc6, 0x75, 0x15, 0x38, 0x36,
- 0x11, 0x5c, 0xc0, 0x87, 0x8a, 0x9b, 0x91, 0xdb,
- 0x56, 0xb9, 0x06, 0x98, 0xc5, 0x78, 0x1a, 0x3a }
+ {0x10, 0xDD, 0xBC, 0x33, 0x29, 0x10, 0x53, 0x4C,
+ 0xA0, 0x10, 0x72, 0xBF, 0x4C, 0x55, 0xDD, 0x7C,
+ 0x08, 0x5F, 0xDF, 0x40, 0xB6, 0x03, 0xF2, 0xBC,
+ 0xEA, 0xAE, 0x08, 0x46, 0x61, 0x68, 0x91, 0xC9},
+ {0x00, 0xB6, 0x84, 0xF7, 0xF3, 0x14, 0xC7, 0x80,
+ 0x57, 0xA4, 0x8F, 0x48, 0xE5, 0xC9, 0x7F, 0x8D,
+ 0x54, 0x88, 0x96, 0xDF, 0x94, 0x55, 0xB1, 0x1C,
+ 0xFA, 0xCF, 0xE0, 0x4D, 0xAA, 0x01, 0xFA, 0x25},
+ {0x97, 0x02, 0xDB, 0xCB, 0x85, 0x2A, 0xAA, 0x55,
+ 0x96, 0xC7, 0xF8, 0xF3, 0xB3, 0x9B, 0xBC, 0xCA,
+ 0xB5, 0xC1, 0x7C, 0x1C, 0x0D, 0x2F, 0x5B, 0x0E,
+ 0x9B, 0xBA, 0xB4, 0xDD, 0x45, 0x90, 0xF2, 0x14},
+ },
+ .res = {0xfe, 0x78, 0x3c, 0x64, 0x98, 0xb8, 0x69, 0x1d,
+ 0xb7, 0xd4, 0xfb, 0x71, 0xdb, 0x58, 0xd2, 0xee,
+ 0x32, 0x63, 0xfd, 0xed, 0x78, 0xe7, 0x93, 0x13,
+ 0x65, 0xd7, 0xf8, 0x6b, 0x71, 0x90, 0xfc, 0xf4,
+ 0xa3, 0x29, 0xae, 0x0b, 0xca, 0x40, 0x23, 0x61,
+ 0x6c, 0xa3, 0xf8, 0xc6, 0x75, 0x15, 0x38, 0x36,
+ 0x11, 0x5c, 0xc0, 0x87, 0x8a, 0x9b, 0x91, 0xdb,
+ 0x56, 0xb9, 0x06, 0x98, 0xc5, 0x78, 0x1a, 0x3a}
},
};
unsigned i, j;
@@ -101,13 +101,13 @@ int drbg_aes_self_test(void)
/* Test the error handling of drbg_aes_init */
ret =
drbg_aes_init(&test_ctx, DRBG_AES_SEED_SIZE, tv[0].entropy,
- DRBG_AES_SEED_SIZE*2, (void*)tv);
+ DRBG_AES_SEED_SIZE * 2, (void *)tv);
if (ret != 0) {
gnutls_assert();
return 0;
}
- tmp = gnutls_malloc(MAX_DRBG_AES_GENERATE_SIZE+1);
+ tmp = gnutls_malloc(MAX_DRBG_AES_GENERATE_SIZE + 1);
if (tmp == NULL) {
gnutls_assert();
return 0;
@@ -149,21 +149,25 @@ int drbg_aes_self_test(void)
/* test the error handling of drbg_aes_random() */
saved = test_ctx.reseed_counter;
- test_ctx.reseed_counter = DRBG_AES_RESEED_TIME+1;
+ test_ctx.reseed_counter = DRBG_AES_RESEED_TIME + 1;
if (drbg_aes_random(&test_ctx, 16, result) != 0) {
gnutls_assert();
goto fail;
}
test_ctx.reseed_counter = saved;
- ret = drbg_aes_random(&test_ctx, MAX_DRBG_AES_GENERATE_SIZE+1, tmp);
+ ret =
+ drbg_aes_random(&test_ctx, MAX_DRBG_AES_GENERATE_SIZE + 1,
+ tmp);
if (ret == 0) {
gnutls_assert();
goto fail;
}
/* test the low-level function */
- ret = drbg_aes_generate(&test_ctx, MAX_DRBG_AES_GENERATE_SIZE+1, tmp, 0, NULL);
+ ret =
+ drbg_aes_generate(&test_ctx, MAX_DRBG_AES_GENERATE_SIZE + 1,
+ tmp, 0, NULL);
if (ret != 0) {
gnutls_assert();
goto fail;
@@ -171,19 +175,20 @@ int drbg_aes_self_test(void)
/* Test of the reseed function for error handling */
ret =
- drbg_aes_reseed(&test_ctx, DRBG_AES_SEED_SIZE*2,
- (uint8_t*)tv, 0, NULL);
+ drbg_aes_reseed(&test_ctx, DRBG_AES_SEED_SIZE * 2,
+ (uint8_t *) tv, 0, NULL);
if (ret != 0)
goto fail;
ret =
drbg_aes_reseed(&test_ctx, DRBG_AES_SEED_SIZE,
- tv[i].entropy, DRBG_AES_SEED_SIZE*2, (uint8_t*)tv);
+ tv[i].entropy, DRBG_AES_SEED_SIZE * 2,
+ (uint8_t *) tv);
if (ret != 0)
goto fail;
/* check whether reseed detection works */
- if (i==0) {
+ if (i == 0) {
ret =
drbg_aes_reseed(&test_ctx, DRBG_AES_SEED_SIZE,
tv[i].entropy, 0, NULL);
@@ -191,8 +196,8 @@ int drbg_aes_self_test(void)
goto fail;
saved = test_ctx.reseed_counter;
- test_ctx.reseed_counter = DRBG_AES_RESEED_TIME-4;
- for (j=0;j<5;j++) {
+ test_ctx.reseed_counter = DRBG_AES_RESEED_TIME - 4;
+ for (j = 0; j < 5; j++) {
if (drbg_aes_random(&test_ctx, 1, result) == 0) {
gnutls_assert();
goto fail;
@@ -214,7 +219,6 @@ int drbg_aes_self_test(void)
goto fail;
}
-
}
gnutls_free(tmp);
diff --git a/lib/nettle/int/drbg-aes.c b/lib/nettle/int/drbg-aes.c
index af8b347a5a..587c5b03f7 100644
--- a/lib/nettle/int/drbg-aes.c
+++ b/lib/nettle/int/drbg-aes.c
@@ -104,7 +104,7 @@ int drbg_aes_random(struct drbg_aes_ctx *ctx, unsigned length, uint8_t * dst)
uint8_t *p = dst;
int ret;
- while(left > 0) {
+ while (left > 0) {
p_len = MIN(MAX_DRBG_AES_GENERATE_SIZE, left);
ret = drbg_aes_generate(ctx, p_len, p, 0, 0);
if (ret == 0)
@@ -119,7 +119,7 @@ int drbg_aes_random(struct drbg_aes_ctx *ctx, unsigned length, uint8_t * dst)
/* we don't use additional input */
int drbg_aes_generate(struct drbg_aes_ctx *ctx, unsigned length, uint8_t * dst,
- unsigned add_size, const uint8_t *add)
+ unsigned add_size, const uint8_t * add)
{
uint8_t tmp[AES_BLOCK_SIZE];
uint8_t seed[DRBG_AES_SEED_SIZE];
@@ -136,7 +136,8 @@ int drbg_aes_generate(struct drbg_aes_ctx *ctx, unsigned length, uint8_t * dst,
return gnutls_assert_val(0);
memcpy(seed, add, add_size);
if (add_size != DRBG_AES_SEED_SIZE)
- memset(&seed[add_size], 0, DRBG_AES_SEED_SIZE - add_size);
+ memset(&seed[add_size], 0,
+ DRBG_AES_SEED_SIZE - add_size);
drbg_aes_update(ctx, seed);
} else {
diff --git a/lib/nettle/int/drbg-aes.h b/lib/nettle/int/drbg-aes.h
index 06c2597408..f147706523 100644
--- a/lib/nettle/int/drbg-aes.h
+++ b/lib/nettle/int/drbg-aes.h
@@ -20,14 +20,14 @@
*/
#ifndef GNUTLS_LIB_NETTLE_INT_DRBG_AES_H
-#define GNUTLS_LIB_NETTLE_INT_DRBG_AES_H
+# define GNUTLS_LIB_NETTLE_INT_DRBG_AES_H
-#include <config.h>
-#include <nettle/aes.h>
+# include <config.h>
+# include <nettle/aes.h>
/* This is nettle's increment macro */
/* Requires that size > 0 */
-#define INCREMENT(size, ctr) \
+# define INCREMENT(size, ctr) \
do { \
unsigned increment_i = (size) - 1; \
if (++(ctr)[increment_i] == 0) \
@@ -36,8 +36,8 @@
; \
} while (0)
-#define DRBG_AES_KEY_SIZE AES256_KEY_SIZE
-#define DRBG_AES_SEED_SIZE (AES_BLOCK_SIZE+DRBG_AES_KEY_SIZE)
+# define DRBG_AES_KEY_SIZE AES256_KEY_SIZE
+# define DRBG_AES_SEED_SIZE (AES_BLOCK_SIZE+DRBG_AES_KEY_SIZE)
/* This is the CTR-AES-256-based random-number generator from SP800-90A.
*/
@@ -52,35 +52,33 @@ struct drbg_aes_ctx {
};
/* max_number_of_bits_per_request */
-#define MAX_DRBG_AES_GENERATE_SIZE 65536 /* 2^19 */
+# define MAX_DRBG_AES_GENERATE_SIZE 65536 /* 2^19 */
/* This DRBG should be reseeded if reseed_counter exceeds
* that number. Otherwise drbg_aes_random() will fail.
*/
-#define DRBG_AES_RESEED_TIME 16777216
+# define DRBG_AES_RESEED_TIME 16777216
/* The entropy provided in these functions should be of
* size DRBG_AES_SEED_SIZE. Additional data and pers.
* string may be <= DRBG_AES_SEED_SIZE.
*/
int
-drbg_aes_init(struct drbg_aes_ctx *ctx,
- unsigned entropy_size, const uint8_t *entropy,
- unsigned pstring_size, const uint8_t* pstring);
+drbg_aes_init(struct drbg_aes_ctx *ctx,
+ unsigned entropy_size, const uint8_t * entropy,
+ unsigned pstring_size, const uint8_t * pstring);
int
-drbg_aes_reseed(struct drbg_aes_ctx *ctx,
- unsigned entropy_size, const uint8_t *entropy,
- unsigned add_size, const uint8_t* add);
+drbg_aes_reseed(struct drbg_aes_ctx *ctx,
+ unsigned entropy_size, const uint8_t * entropy,
+ unsigned add_size, const uint8_t * add);
/* our wrapper for the low-level drbg_aes_generate */
-int
-drbg_aes_random(struct drbg_aes_ctx *ctx, unsigned length,
- uint8_t * dst);
+int drbg_aes_random(struct drbg_aes_ctx *ctx, unsigned length, uint8_t * dst);
int
drbg_aes_generate(struct drbg_aes_ctx *ctx, unsigned length,
- uint8_t * dst, unsigned add_size, const uint8_t* add);
+ uint8_t * dst, unsigned add_size, const uint8_t * add);
/* For deinitialization use zeroize_key() on the context */
@@ -88,4 +86,4 @@ int drbg_aes_is_seeded(struct drbg_aes_ctx *ctx);
int drbg_aes_self_test(void);
-#endif /* GNUTLS_LIB_NETTLE_INT_DRBG_AES_H */
+#endif /* GNUTLS_LIB_NETTLE_INT_DRBG_AES_H */
diff --git a/lib/nettle/int/dsa-compute-k.c b/lib/nettle/int/dsa-compute-k.c
index 3f5105acd3..44d9f9acb1 100644
--- a/lib/nettle/int/dsa-compute-k.c
+++ b/lib/nettle/int/dsa-compute-k.c
@@ -48,15 +48,14 @@ _gnutls_dsa_compute_k(mpz_t k,
const mpz_t q,
const mpz_t x,
gnutls_mac_algorithm_t mac,
- const uint8_t *digest,
- size_t length)
+ const uint8_t * digest, size_t length)
{
uint8_t V[MAX_HASH_SIZE];
uint8_t K[MAX_HASH_SIZE];
uint8_t xp[MAX_Q_SIZE];
uint8_t tp[MAX_Q_SIZE];
mp_limb_t h[MAX(MAX_Q_LIMBS, MAX_HASH_LIMBS)];
- mp_bitcnt_t q_bits = mpz_sizeinbase (q, 2);
+ mp_bitcnt_t q_bits = mpz_sizeinbase(q, 2);
mp_size_t qn = mpz_size(q);
mp_bitcnt_t h_bits = length * 8;
mp_size_t hn = BITS_TO_LIMBS(h_bits);
@@ -169,17 +168,16 @@ _gnutls_dsa_compute_k(mpz_t k,
ret = gnutls_hmac_fast(mac, K, length, V, length, V);
if (ret < 0)
goto out;
- memcpy (&tp[tlen], V, remaining);
+ memcpy(&tp[tlen], V, remaining);
tlen += remaining;
}
/* Step 3 */
- mpn_set_base256 (h, qn, tp, tlen);
+ mpn_set_base256(h, qn, tp, tlen);
if (tlen * 8 > q_bits)
- mpn_rshift (h, h, qn, tlen * 8 - q_bits);
+ mpn_rshift(h, h, qn, tlen * 8 - q_bits);
/* Check if k is in [1,q-1] */
- if (!mpn_zero_p (h, qn) &&
- mpn_cmp (h, mpz_limbs_read(q), qn) < 0) {
+ if (!mpn_zero_p(h, qn) && mpn_cmp(h, mpz_limbs_read(q), qn) < 0) {
mpn_copyi(mpz_limbs_write(k, qn), h, qn);
mpz_limbs_finish(k, qn);
break;
diff --git a/lib/nettle/int/dsa-compute-k.h b/lib/nettle/int/dsa-compute-k.h
index 1cb096eebf..1e9ec824da 100644
--- a/lib/nettle/int/dsa-compute-k.h
+++ b/lib/nettle/int/dsa-compute-k.h
@@ -21,17 +21,16 @@
*/
#ifndef GNUTLS_LIB_NETTLE_INT_DSA_COMPUTE_K_H
-#define GNUTLS_LIB_NETTLE_INT_DSA_COMPUTE_K_H
+# define GNUTLS_LIB_NETTLE_INT_DSA_COMPUTE_K_H
-#include <gnutls/gnutls.h>
-#include <nettle/bignum.h> /* includes gmp.h */
+# include <gnutls/gnutls.h>
+# include <nettle/bignum.h> /* includes gmp.h */
int
_gnutls_dsa_compute_k(mpz_t k,
const mpz_t q,
const mpz_t x,
gnutls_mac_algorithm_t mac,
- const uint8_t *digest,
- size_t length);
+ const uint8_t * digest, size_t length);
-#endif /* GNUTLS_LIB_NETTLE_INT_DSA_COMPUTE_K_H */
+#endif /* GNUTLS_LIB_NETTLE_INT_DSA_COMPUTE_K_H */
diff --git a/lib/nettle/int/dsa-fips.h b/lib/nettle/int/dsa-fips.h
index 1b7dddb703..1dd6e19a99 100644
--- a/lib/nettle/int/dsa-fips.h
+++ b/lib/nettle/int/dsa-fips.h
@@ -18,109 +18,109 @@
* You should have received a copy of the GNU Lesser General Public License
* along with the nettle library. If not, see <https://www.gnu.org/licenses/>.
*/
-
+
#ifndef GNUTLS_LIB_NETTLE_INT_DSA_FIPS_H
-#define GNUTLS_LIB_NETTLE_INT_DSA_FIPS_H
+# define GNUTLS_LIB_NETTLE_INT_DSA_FIPS_H
-#include <nettle/bignum.h> /* includes gmp.h */
-#include <nettle/dsa.h>
-#include <nettle/sha2.h>
-#include <fips.h>
+# include <nettle/bignum.h> /* includes gmp.h */
+# include <nettle/dsa.h>
+# include <nettle/sha2.h>
+# include <fips.h>
-#define div_ceil(x,y) ((x+(y)-1)/(y))
+# define div_ceil(x,y) ((x+(y)-1)/(y))
struct dss_params_validation_seeds {
- unsigned seed_length; /* first seed */
- uint8_t seed[MAX_PVP_SEED_SIZE+1];
-
+ unsigned seed_length; /* first seed */
+ uint8_t seed[MAX_PVP_SEED_SIZE + 1];
+
unsigned pseed_length;
- uint8_t pseed[MAX_PVP_SEED_SIZE+1];
+ uint8_t pseed[MAX_PVP_SEED_SIZE + 1];
unsigned qseed_length;
- uint8_t qseed[MAX_PVP_SEED_SIZE+1];
+ uint8_t qseed[MAX_PVP_SEED_SIZE + 1];
unsigned pgen_counter;
unsigned qgen_counter;
};
int
-st_provable_prime (mpz_t p,
- unsigned *prime_seed_length, void *prime_seed,
- unsigned *prime_gen_counter,
- unsigned bits,
- unsigned seed_length, const void *seed,
- void *progress_ctx, nettle_progress_func * progress);
+st_provable_prime(mpz_t p,
+ unsigned *prime_seed_length, void *prime_seed,
+ unsigned *prime_gen_counter,
+ unsigned bits,
+ unsigned seed_length, const void *seed,
+ void *progress_ctx, nettle_progress_func * progress);
int
dsa_generate_dss_pqg(struct dsa_params *params,
- struct dss_params_validation_seeds* cert,
+ struct dss_params_validation_seeds *cert,
unsigned index,
- void *random_ctx, nettle_random_func *random,
- void *progress_ctx, nettle_progress_func *progress,
- unsigned p_bits /* = L */, unsigned q_bits /* = N */);
+ void *random_ctx, nettle_random_func * random,
+ void *progress_ctx, nettle_progress_func * progress,
+ unsigned p_bits /* = L */ , unsigned q_bits /* = N */ );
int
_dsa_generate_dss_pqg(struct dsa_params *params,
- struct dss_params_validation_seeds *cert,
- unsigned index,
- unsigned seed_size, void *seed,
- void *progress_ctx, nettle_progress_func * progress,
- unsigned p_bits /* = L */ , unsigned q_bits /* = N */ );
+ struct dss_params_validation_seeds *cert,
+ unsigned index,
+ unsigned seed_size, void *seed,
+ void *progress_ctx, nettle_progress_func * progress,
+ unsigned p_bits /* = L */ , unsigned q_bits /* = N */ );
int
dsa_generate_dss_keypair(struct dsa_params *params,
- mpz_t y,
- mpz_t x,
- void *random_ctx, nettle_random_func *random,
- void *progress_ctx, nettle_progress_func *progress);
+ mpz_t y,
+ mpz_t x,
+ void *random_ctx, nettle_random_func * random,
+ void *progress_ctx, nettle_progress_func * progress);
int
dsa_validate_dss_pqg(struct dsa_params *pub,
- struct dss_params_validation_seeds* cert,
- unsigned index);
+ struct dss_params_validation_seeds *cert, unsigned index);
int
_dsa_validate_dss_pq(struct dsa_params *pub,
- struct dss_params_validation_seeds* cert);
+ struct dss_params_validation_seeds *cert);
int
_dsa_validate_dss_g(struct dsa_params *pub,
- unsigned domain_seed_size, const uint8_t *domain_seed, unsigned index);
+ unsigned domain_seed_size, const uint8_t * domain_seed,
+ unsigned index);
-unsigned _dsa_check_qp_sizes(unsigned q_bits, unsigned p_bits, unsigned generate);
+unsigned _dsa_check_qp_sizes(unsigned q_bits, unsigned p_bits,
+ unsigned generate);
/* The following low-level functions can be used for DH key exchange as well
*/
int
_dsa_generate_dss_pq(struct dsa_params *pub,
- struct dss_params_validation_seeds* cert,
- unsigned seed_length, void* seed,
- void *progress_ctx, nettle_progress_func *progress,
+ struct dss_params_validation_seeds *cert,
+ unsigned seed_length, void *seed,
+ void *progress_ctx, nettle_progress_func * progress,
unsigned p_bits, unsigned q_bits);
int
_dsa_generate_dss_g(struct dsa_params *pub,
- unsigned domain_seed_size, const uint8_t* domain_seed,
+ unsigned domain_seed_size, const uint8_t * domain_seed,
void *progress_ctx, nettle_progress_func * progress,
unsigned index);
void
_dsa_generate_dss_xy(struct dsa_params *pub,
mpz_t y,
- mpz_t x,
- void *random_ctx, nettle_random_func *random);
+ mpz_t x, void *random_ctx, nettle_random_func * random);
-#define DIGEST_SIZE SHA384_DIGEST_SIZE
+# define DIGEST_SIZE SHA384_DIGEST_SIZE
inline static void
-hash (uint8_t digest[DIGEST_SIZE], unsigned length, void *data)
+hash(uint8_t digest[DIGEST_SIZE], unsigned length, void *data)
{
- struct sha384_ctx ctx;
+ struct sha384_ctx ctx;
- sha384_init (&ctx);
- sha384_update (&ctx, length, data);
- sha384_digest (&ctx, DIGEST_SIZE, digest);
+ sha384_init(&ctx);
+ sha384_update(&ctx, length, data);
+ sha384_digest(&ctx, DIGEST_SIZE, digest);
- return;
+ return;
}
unsigned mpz_seed_sizeinbase_256_u(mpz_t s, unsigned nominal);
-#endif /* GNUTLS_LIB_NETTLE_INT_DSA_FIPS_H */
+#endif /* GNUTLS_LIB_NETTLE_INT_DSA_FIPS_H */
diff --git a/lib/nettle/int/dsa-keygen-fips186.c b/lib/nettle/int/dsa-keygen-fips186.c
index 39255fd863..29993962b2 100644
--- a/lib/nettle/int/dsa-keygen-fips186.c
+++ b/lib/nettle/int/dsa-keygen-fips186.c
@@ -22,7 +22,7 @@
*/
#if HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <stdlib.h>
@@ -33,7 +33,8 @@
#include <nettle/bignum.h>
-unsigned _dsa_check_qp_sizes(unsigned q_bits, unsigned p_bits, unsigned generate)
+unsigned _dsa_check_qp_sizes(unsigned q_bits, unsigned p_bits,
+ unsigned generate)
{
switch (q_bits) {
case 160:
@@ -79,7 +80,9 @@ _dsa_generate_dss_pq(struct dsa_params *params,
}
if (seed_length < q_bits / 8) {
- _gnutls_debug_log("Seed length must be larger than %d bytes (it is %d)\n", q_bits/8, seed_length);
+ _gnutls_debug_log
+ ("Seed length must be larger than %d bytes (it is %d)\n",
+ q_bits / 8, seed_length);
return 0;
}
@@ -125,7 +128,7 @@ _dsa_generate_dss_pq(struct dsa_params *params,
goto fail;
}
- iterations = div_ceil(p_bits, DIGEST_SIZE*8);
+ iterations = div_ceil(p_bits, DIGEST_SIZE * 8);
old_counter = cert->pgen_counter;
if (iterations > 0) {
@@ -138,7 +141,8 @@ _dsa_generate_dss_pq(struct dsa_params *params,
nettle_mpz_set_str_256_u(s, cert->pseed_length, cert->pseed);
for (i = 0; i < iterations; i++) {
cert->pseed_length = nettle_mpz_sizeinbase_256_u(s);
- nettle_mpz_get_str_256(cert->pseed_length, cert->pseed, s);
+ nettle_mpz_get_str_256(cert->pseed_length, cert->pseed,
+ s);
hash(&storage[(iterations - i - 1) * DIGEST_SIZE],
cert->pseed_length, cert->pseed);
@@ -186,7 +190,8 @@ _dsa_generate_dss_pq(struct dsa_params *params,
if (iterations > 0) {
for (i = 0; i < iterations; i++) {
cert->pseed_length = nettle_mpz_sizeinbase_256_u(s);
- nettle_mpz_get_str_256(cert->pseed_length, cert->pseed, s);
+ nettle_mpz_get_str_256(cert->pseed_length, cert->pseed,
+ s);
hash(&storage[(iterations - i - 1) * DIGEST_SIZE],
cert->pseed_length, cert->pseed);
@@ -253,7 +258,7 @@ _dsa_generate_dss_pq(struct dsa_params *params,
int
_dsa_generate_dss_g(struct dsa_params *params,
- unsigned domain_seed_size, const uint8_t* domain_seed,
+ unsigned domain_seed_size, const uint8_t * domain_seed,
void *progress_ctx, nettle_progress_func * progress,
unsigned index)
{
@@ -362,14 +367,14 @@ _dsa_generate_dss_xy(struct dsa_params *params,
*/
int
dsa_generate_dss_pqg(struct dsa_params *params,
- struct dss_params_validation_seeds *cert,
- unsigned index,
- void *random_ctx, nettle_random_func * random,
- void *progress_ctx, nettle_progress_func * progress,
- unsigned p_bits /* = L */ , unsigned q_bits /* = N */ )
+ struct dss_params_validation_seeds *cert,
+ unsigned index,
+ void *random_ctx, nettle_random_func * random,
+ void *progress_ctx, nettle_progress_func * progress,
+ unsigned p_bits /* = L */ , unsigned q_bits /* = N */ )
{
int ret;
- uint8_t domain_seed[MAX_PVP_SEED_SIZE*3];
+ uint8_t domain_seed[MAX_PVP_SEED_SIZE * 3];
unsigned domain_seed_size = 0;
ret = _dsa_check_qp_sizes(q_bits, p_bits, 1);
@@ -388,12 +393,16 @@ dsa_generate_dss_pqg(struct dsa_params *params,
if (ret == 0)
return 0;
- domain_seed_size = cert->seed_length + cert->qseed_length + cert->pseed_length;
+ domain_seed_size =
+ cert->seed_length + cert->qseed_length + cert->pseed_length;
memcpy(domain_seed, cert->seed, cert->seed_length);
- memcpy(&domain_seed[cert->seed_length], cert->pseed, cert->pseed_length);
- memcpy(&domain_seed[cert->seed_length+cert->pseed_length], cert->qseed, cert->qseed_length);
- ret = _dsa_generate_dss_g(params, domain_seed_size, domain_seed,
- progress_ctx, progress, index);
+ memcpy(&domain_seed[cert->seed_length], cert->pseed,
+ cert->pseed_length);
+ memcpy(&domain_seed[cert->seed_length + cert->pseed_length],
+ cert->qseed, cert->qseed_length);
+ ret =
+ _dsa_generate_dss_g(params, domain_seed_size, domain_seed,
+ progress_ctx, progress, index);
if (ret == 0)
return 0;
@@ -402,14 +411,14 @@ dsa_generate_dss_pqg(struct dsa_params *params,
int
_dsa_generate_dss_pqg(struct dsa_params *params,
- struct dss_params_validation_seeds *cert,
- unsigned index,
- unsigned seed_size, void *seed,
- void *progress_ctx, nettle_progress_func * progress,
- unsigned p_bits /* = L */ , unsigned q_bits /* = N */ )
+ struct dss_params_validation_seeds *cert,
+ unsigned index,
+ unsigned seed_size, void *seed,
+ void *progress_ctx, nettle_progress_func * progress,
+ unsigned p_bits /* = L */ , unsigned q_bits /* = N */ )
{
int ret;
- uint8_t domain_seed[MAX_PVP_SEED_SIZE*3];
+ uint8_t domain_seed[MAX_PVP_SEED_SIZE * 3];
unsigned domain_seed_size = 0;
ret = _dsa_check_qp_sizes(q_bits, p_bits, 1);
@@ -419,7 +428,9 @@ _dsa_generate_dss_pqg(struct dsa_params *params,
if (_gnutls_fips_mode_enabled() != 0) {
cert->seed_length = 2 * (q_bits / 8) + 1;
- FIPS_RULE(cert->seed_length != seed_size, 0, "unsupported DSA seed length (is %d, should be %d)\n", seed_size, cert->seed_length);
+ FIPS_RULE(cert->seed_length != seed_size, 0,
+ "unsupported DSA seed length (is %d, should be %d)\n",
+ seed_size, cert->seed_length);
} else {
cert->seed_length = seed_size;
}
@@ -427,7 +438,6 @@ _dsa_generate_dss_pqg(struct dsa_params *params,
if (cert->seed_length > sizeof(cert->seed))
return 0;
-
memcpy(cert->seed, seed, cert->seed_length);
ret = _dsa_generate_dss_pq(params, cert, cert->seed_length, cert->seed,
@@ -435,12 +445,16 @@ _dsa_generate_dss_pqg(struct dsa_params *params,
if (ret == 0)
return 0;
- domain_seed_size = cert->seed_length + cert->qseed_length + cert->pseed_length;
+ domain_seed_size =
+ cert->seed_length + cert->qseed_length + cert->pseed_length;
memcpy(domain_seed, cert->seed, cert->seed_length);
- memcpy(&domain_seed[cert->seed_length], cert->pseed, cert->pseed_length);
- memcpy(&domain_seed[cert->seed_length+cert->pseed_length], cert->qseed, cert->qseed_length);
- ret = _dsa_generate_dss_g(params, domain_seed_size, domain_seed,
- progress_ctx, progress, index);
+ memcpy(&domain_seed[cert->seed_length], cert->pseed,
+ cert->pseed_length);
+ memcpy(&domain_seed[cert->seed_length + cert->pseed_length],
+ cert->qseed, cert->qseed_length);
+ ret =
+ _dsa_generate_dss_g(params, domain_seed_size, domain_seed,
+ progress_ctx, progress, index);
if (ret == 0)
return 0;
diff --git a/lib/nettle/int/dsa-validate.c b/lib/nettle/int/dsa-validate.c
index fbbc216d63..8443b6ad08 100644
--- a/lib/nettle/int/dsa-validate.c
+++ b/lib/nettle/int/dsa-validate.c
@@ -22,7 +22,7 @@
*/
#if HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <stdlib.h>
@@ -49,17 +49,20 @@ dsa_validate_dss_pqg(struct dsa_params *pub,
struct dss_params_validation_seeds *cert, unsigned index)
{
int ret;
- uint8_t domain_seed[MAX_PVP_SEED_SIZE*3];
+ uint8_t domain_seed[MAX_PVP_SEED_SIZE * 3];
unsigned domain_seed_size = 0;
ret = _dsa_validate_dss_pq(pub, cert);
if (ret == 0)
return 0;
- domain_seed_size = cert->seed_length + cert->qseed_length + cert->pseed_length;
+ domain_seed_size =
+ cert->seed_length + cert->qseed_length + cert->pseed_length;
memcpy(domain_seed, cert->seed, cert->seed_length);
- memcpy(&domain_seed[cert->seed_length], cert->pseed, cert->pseed_length);
- memcpy(&domain_seed[cert->seed_length+cert->pseed_length], cert->qseed, cert->qseed_length);
+ memcpy(&domain_seed[cert->seed_length], cert->pseed,
+ cert->pseed_length);
+ memcpy(&domain_seed[cert->seed_length + cert->pseed_length],
+ cert->qseed, cert->qseed_length);
ret = _dsa_validate_dss_g(pub, domain_seed_size, domain_seed, index);
if (ret == 0)
@@ -70,7 +73,8 @@ dsa_validate_dss_pqg(struct dsa_params *pub,
int
_dsa_validate_dss_g(struct dsa_params *pub,
- unsigned domain_seed_size, const uint8_t *domain_seed, unsigned index)
+ unsigned domain_seed_size, const uint8_t * domain_seed,
+ unsigned index)
{
int ret;
unsigned p_bits, q_bits;
diff --git a/lib/nettle/int/ecdsa-compute-k.c b/lib/nettle/int/ecdsa-compute-k.c
index 94914ebdfa..9c1344e12a 100644
--- a/lib/nettle/int/ecdsa-compute-k.c
+++ b/lib/nettle/int/ecdsa-compute-k.c
@@ -30,57 +30,51 @@
#include "gnutls_int.h"
static inline int
-_gnutls_ecc_curve_to_dsa_q(mpz_t *q, gnutls_ecc_curve_t curve)
+_gnutls_ecc_curve_to_dsa_q(mpz_t * q, gnutls_ecc_curve_t curve)
{
switch (curve) {
#ifdef ENABLE_NON_SUITEB_CURVES
case GNUTLS_ECC_CURVE_SECP192R1:
mpz_init_set_str(*q,
"FFFFFFFFFFFFFFFFFFFFFFFF99DEF836"
- "146BC9B1B4D22831",
- 16);
+ "146BC9B1B4D22831", 16);
return 0;
case GNUTLS_ECC_CURVE_SECP224R1:
mpz_init_set_str(*q,
"FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2"
- "E0B8F03E13DD29455C5C2A3D",
- 16);
+ "E0B8F03E13DD29455C5C2A3D", 16);
return 0;
#endif
case GNUTLS_ECC_CURVE_SECP256R1:
mpz_init_set_str(*q,
"FFFFFFFF00000000FFFFFFFFFFFFFFFF"
- "BCE6FAADA7179E84F3B9CAC2FC632551",
- 16);
+ "BCE6FAADA7179E84F3B9CAC2FC632551", 16);
return 0;
case GNUTLS_ECC_CURVE_SECP384R1:
mpz_init_set_str(*q,
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
"FFFFFFFFFFFFFFFFC7634D81F4372DDF"
- "581A0DB248B0A77AECEC196ACCC52973",
- 16);
+ "581A0DB248B0A77AECEC196ACCC52973", 16);
return 0;
case GNUTLS_ECC_CURVE_SECP521R1:
mpz_init_set_str(*q,
"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
"FFA51868783BF2F966B7FCC0148F709A"
- "5D03BB5C9B8899C47AEBB6FB71E91386"
- "409",
- 16);
+ "5D03BB5C9B8899C47AEBB6FB71E91386" "409", 16);
return 0;
default:
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
+ return
+ gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
}
}
int
-_gnutls_ecdsa_compute_k (mpz_t k,
- gnutls_ecc_curve_t curve,
- const mpz_t x,
- gnutls_mac_algorithm_t mac,
- const uint8_t *digest,
- size_t length)
+_gnutls_ecdsa_compute_k(mpz_t k,
+ gnutls_ecc_curve_t curve,
+ const mpz_t x,
+ gnutls_mac_algorithm_t mac,
+ const uint8_t * digest, size_t length)
{
mpz_t q;
int ret;
@@ -89,7 +83,7 @@ _gnutls_ecdsa_compute_k (mpz_t k,
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _gnutls_dsa_compute_k (k, q, x, mac, digest, length);
+ ret = _gnutls_dsa_compute_k(k, q, x, mac, digest, length);
mpz_clear(q);
return ret;
}
diff --git a/lib/nettle/int/ecdsa-compute-k.h b/lib/nettle/int/ecdsa-compute-k.h
index aac23dd920..0607e7c8eb 100644
--- a/lib/nettle/int/ecdsa-compute-k.h
+++ b/lib/nettle/int/ecdsa-compute-k.h
@@ -21,17 +21,16 @@
*/
#ifndef GNUTLS_LIB_NETTLE_INT_ECDSA_COMPUTE_K_H
-#define GNUTLS_LIB_NETTLE_INT_ECDSA_COMPUTE_K_H
+# define GNUTLS_LIB_NETTLE_INT_ECDSA_COMPUTE_K_H
-#include <gnutls/gnutls.h>
-#include <nettle/bignum.h> /* includes gmp.h */
+# include <gnutls/gnutls.h>
+# include <nettle/bignum.h> /* includes gmp.h */
int
-_gnutls_ecdsa_compute_k (mpz_t k,
- gnutls_ecc_curve_t curve,
- const mpz_t x,
- gnutls_mac_algorithm_t mac,
- const uint8_t *digest,
- size_t length);
+_gnutls_ecdsa_compute_k(mpz_t k,
+ gnutls_ecc_curve_t curve,
+ const mpz_t x,
+ gnutls_mac_algorithm_t mac,
+ const uint8_t * digest, size_t length);
-#endif /* GNUTLS_LIB_NETTLE_INT_ECDSA_COMPUTE_K_H */
+#endif /* GNUTLS_LIB_NETTLE_INT_ECDSA_COMPUTE_K_H */
diff --git a/lib/nettle/int/mpn-base256.c b/lib/nettle/int/mpn-base256.c
index cd628b8b45..428cb1628a 100644
--- a/lib/nettle/int/mpn-base256.c
+++ b/lib/nettle/int/mpn-base256.c
@@ -37,61 +37,51 @@
#include "mpn-base256.h"
void
-mpn_set_base256 (mp_limb_t *rp, mp_size_t rn,
- const uint8_t *xp, size_t xn)
+mpn_set_base256(mp_limb_t * rp, mp_size_t rn, const uint8_t * xp, size_t xn)
{
- size_t xi;
- mp_limb_t out;
- unsigned bits;
- for (xi = xn, out = bits = 0; xi > 0 && rn > 0; )
- {
- mp_limb_t in = xp[--xi];
- out |= (in << bits) & GMP_NUMB_MASK;
- bits += 8;
- if (bits >= GMP_NUMB_BITS)
- {
- *rp++ = out;
- rn--;
+ size_t xi;
+ mp_limb_t out;
+ unsigned bits;
+ for (xi = xn, out = bits = 0; xi > 0 && rn > 0;) {
+ mp_limb_t in = xp[--xi];
+ out |= (in << bits) & GMP_NUMB_MASK;
+ bits += 8;
+ if (bits >= GMP_NUMB_BITS) {
+ *rp++ = out;
+ rn--;
- bits -= GMP_NUMB_BITS;
- out = in >> (8 - bits);
+ bits -= GMP_NUMB_BITS;
+ out = in >> (8 - bits);
+ }
+ }
+ if (rn > 0) {
+ *rp++ = out;
+ if (--rn > 0)
+ mpn_zero(rp, rn);
}
- }
- if (rn > 0)
- {
- *rp++ = out;
- if (--rn > 0)
- mpn_zero (rp, rn);
- }
}
void
-mpn_get_base256 (uint8_t *rp, size_t rn,
- const mp_limb_t *xp, mp_size_t xn)
+mpn_get_base256(uint8_t * rp, size_t rn, const mp_limb_t * xp, mp_size_t xn)
{
- unsigned bits;
- mp_limb_t in;
- for (bits = in = 0; xn > 0 && rn > 0; )
- {
- if (bits >= 8)
- {
- rp[--rn] = in;
- in >>= 8;
- bits -= 8;
+ unsigned bits;
+ mp_limb_t in;
+ for (bits = in = 0; xn > 0 && rn > 0;) {
+ if (bits >= 8) {
+ rp[--rn] = in;
+ in >>= 8;
+ bits -= 8;
+ } else {
+ uint8_t old = in;
+ in = *xp++;
+ xn--;
+ rp[--rn] = old | (in << bits);
+ in >>= (8 - bits);
+ bits += GMP_NUMB_BITS - 8;
+ }
}
- else
- {
- uint8_t old = in;
- in = *xp++;
- xn--;
- rp[--rn] = old | (in << bits);
- in >>= (8 - bits);
- bits += GMP_NUMB_BITS - 8;
+ while (rn > 0) {
+ rp[--rn] = in;
+ in >>= 8;
}
- }
- while (rn > 0)
- {
- rp[--rn] = in;
- in >>= 8;
- }
}
diff --git a/lib/nettle/int/mpn-base256.h b/lib/nettle/int/mpn-base256.h
index 0b770480f8..016b4ef1e3 100644
--- a/lib/nettle/int/mpn-base256.h
+++ b/lib/nettle/int/mpn-base256.h
@@ -31,18 +31,16 @@
*/
#ifndef NETTLE_GMP_GLUE_H_INCLUDED
-#define NETTLE_GMP_GLUE_H_INCLUDED
+# define NETTLE_GMP_GLUE_H_INCLUDED
-#include <nettle/bignum.h>
+# include <nettle/bignum.h>
/* Like mpn_set_str, but always writes rn limbs. If input is larger,
higher bits are ignored. */
void
-mpn_set_base256 (mp_limb_t *rp, mp_size_t rn,
- const uint8_t *xp, size_t xn);
+mpn_set_base256(mp_limb_t * rp, mp_size_t rn, const uint8_t * xp, size_t xn);
void
-mpn_get_base256 (uint8_t *rp, size_t rn,
- const mp_limb_t *xp, mp_size_t xn);
+mpn_get_base256(uint8_t * rp, size_t rn, const mp_limb_t * xp, mp_size_t xn);
-#endif /* NETTLE_GMP_GLUE_H_INCLUDED */
+#endif /* NETTLE_GMP_GLUE_H_INCLUDED */
diff --git a/lib/nettle/int/provable-prime.c b/lib/nettle/int/provable-prime.c
index 3653177724..00b278db72 100644
--- a/lib/nettle/int/provable-prime.c
+++ b/lib/nettle/int/provable-prime.c
@@ -20,7 +20,7 @@
*/
#if HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <assert.h>
@@ -1012,7 +1012,7 @@ static int st_provable_prime_small(mpz_t p,
{
unsigned gen_counter = 0;
unsigned tseed_length;
- uint8_t tseed[MAX_PVP_SEED_SIZE+1];
+ uint8_t tseed[MAX_PVP_SEED_SIZE + 1];
uint8_t h1[DIGEST_SIZE];
uint8_t h2[DIGEST_SIZE];
uint32_t c;
@@ -1124,7 +1124,7 @@ st_provable_prime(mpz_t p,
{
unsigned gen_counter;
unsigned tseed_length;
- uint8_t tseed[MAX_PVP_SEED_SIZE+1];
+ uint8_t tseed[MAX_PVP_SEED_SIZE + 1];
int ret;
unsigned pseed_length, iterations;
uint8_t *pseed;
@@ -1156,7 +1156,7 @@ st_provable_prime(mpz_t p,
goto fail;
ret = st_provable_prime(c0, &pseed_length, pseed, &gen_counter,
- 1+div_ceil(bits, 2), seed_length, seed,
+ 1 + div_ceil(bits, 2), seed_length, seed,
progress_ctx, progress);
if (ret == 0)
goto fail;
@@ -1176,7 +1176,8 @@ st_provable_prime(mpz_t p,
goto fail;
for (i = 0; i < iterations; i++) {
- tseed_length = mpz_seed_sizeinbase_256_u(s, pseed_length);
+ tseed_length =
+ mpz_seed_sizeinbase_256_u(s, pseed_length);
if (tseed_length > sizeof(tseed))
goto fail;
nettle_mpz_get_str_256(tseed_length, tseed, s);
@@ -1215,7 +1216,7 @@ st_provable_prime(mpz_t p,
if (mpz_cmp(c, r) > 0) {
/* t = 2^(bits-1)/2c0 */
- mpz_fdiv_q_2exp(r, r, 1); /* r = 2^(bits-1) */
+ mpz_fdiv_q_2exp(r, r, 1); /* r = 2^(bits-1) */
mpz_cdiv_q(t, r, dc0);
/* c = t* 2c0 + 1 */
@@ -1225,10 +1226,11 @@ st_provable_prime(mpz_t p,
gen_counter++;
- mpz_set_ui(r, 0); /* a = 0 */
+ mpz_set_ui(r, 0); /* a = 0 */
if (iterations > 0) {
for (i = 0; i < iterations; i++) {
- tseed_length = mpz_seed_sizeinbase_256_u(s, pseed_length);
+ tseed_length =
+ mpz_seed_sizeinbase_256_u(s, pseed_length);
if (tseed_length > sizeof(tseed))
goto fail;
@@ -1250,7 +1252,7 @@ st_provable_prime(mpz_t p,
mpz_add_ui(r, r, 2);
/* z = a^(2t) mod c */
- mpz_mul_2exp(tmp, t, 1); /* tmp = 2t */
+ mpz_mul_2exp(tmp, t, 1); /* tmp = 2t */
mpz_powm(z, r, tmp, c);
mpz_sub_ui(tmp, z, 1);
@@ -1263,7 +1265,8 @@ st_provable_prime(mpz_t p,
mpz_set(p, c);
if (prime_seed != NULL) {
- tseed_length = mpz_seed_sizeinbase_256_u(s, pseed_length);
+ tseed_length =
+ mpz_seed_sizeinbase_256_u(s, pseed_length);
if (*prime_seed_length < tseed_length)
goto fail;
diff --git a/lib/nettle/int/rsa-fips.h b/lib/nettle/int/rsa-fips.h
index a441dab86c..e39656c352 100644
--- a/lib/nettle/int/rsa-fips.h
+++ b/lib/nettle/int/rsa-fips.h
@@ -20,9 +20,9 @@
*/
#ifndef GNUTLS_LIB_NETTLE_INT_RSA_FIPS_H
-#define GNUTLS_LIB_NETTLE_INT_RSA_FIPS_H
+# define GNUTLS_LIB_NETTLE_INT_RSA_FIPS_H
-#include <nettle/rsa.h>
+# include <nettle/rsa.h>
int
_rsa_generate_fips186_4_keypair(struct rsa_public_key *pub,
@@ -39,9 +39,8 @@ rsa_generate_fips186_4_keypair(struct rsa_public_key *pub,
void *random_ctx, nettle_random_func * random,
void *progress_ctx,
nettle_progress_func * progress,
- unsigned *rseed_size,
- void *rseed,
+ unsigned *rseed_size, void *rseed,
/* Desired size of modulo, in bits */
unsigned n_size);
-#endif /* GNUTLS_LIB_NETTLE_INT_RSA_FIPS_H */
+#endif /* GNUTLS_LIB_NETTLE_INT_RSA_FIPS_H */
diff --git a/lib/nettle/int/rsa-keygen-fips186.c b/lib/nettle/int/rsa-keygen-fips186.c
index 65fc4293ad..d392ca81e6 100644
--- a/lib/nettle/int/rsa-keygen-fips186.c
+++ b/lib/nettle/int/rsa-keygen-fips186.c
@@ -22,7 +22,7 @@
*/
#if HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <assert.h>
@@ -37,22 +37,21 @@
#include <nettle/bignum.h>
static int
-rsa_provable_prime (mpz_t p,
- unsigned *prime_seed_length, void *prime_seed,
- unsigned bits,
- unsigned seed_length, const void *seed,
- mpz_t e,
- void *progress_ctx, nettle_progress_func * progress)
+rsa_provable_prime(mpz_t p,
+ unsigned *prime_seed_length, void *prime_seed,
+ unsigned bits,
+ unsigned seed_length, const void *seed,
+ mpz_t e, void *progress_ctx, nettle_progress_func * progress)
{
-mpz_t x, t, s, r1, r2, p0, sq;
-int ret;
-unsigned pcounter = 0;
-unsigned iterations;
-unsigned storage_length = 0, i;
-uint8_t *storage = NULL;
-uint8_t pseed[MAX_PVP_SEED_SIZE+1];
-unsigned pseed_length = sizeof(pseed), tseed_length;
-unsigned max = bits*5;
+ mpz_t x, t, s, r1, r2, p0, sq;
+ int ret;
+ unsigned pcounter = 0;
+ unsigned iterations;
+ unsigned storage_length = 0, i;
+ uint8_t *storage = NULL;
+ uint8_t pseed[MAX_PVP_SEED_SIZE + 1];
+ unsigned pseed_length = sizeof(pseed), tseed_length;
+ unsigned max = bits * 5;
mpz_init(p0);
mpz_init(sq);
@@ -65,13 +64,13 @@ unsigned max = bits*5;
/* p1 = p2 = 1 */
ret = st_provable_prime(p0, &pseed_length, pseed,
- NULL, 1+div_ceil(bits,2), seed_length,
+ NULL, 1 + div_ceil(bits, 2), seed_length,
seed, progress_ctx, progress);
if (ret == 0) {
goto cleanup;
}
- iterations = div_ceil(bits, DIGEST_SIZE*8);
+ iterations = div_ceil(bits, DIGEST_SIZE * 8);
mpz_set_ui(x, 0);
if (iterations > 0) {
@@ -83,7 +82,8 @@ unsigned max = bits*5;
nettle_mpz_set_str_256_u(s, pseed_length, pseed);
for (i = 0; i < iterations; i++) {
- tseed_length = mpz_seed_sizeinbase_256_u(s, pseed_length);
+ tseed_length =
+ mpz_seed_sizeinbase_256_u(s, pseed_length);
if (tseed_length > sizeof(pseed))
goto fail;
nettle_mpz_get_str_256(tseed_length, pseed, s);
@@ -100,7 +100,7 @@ unsigned max = bits*5;
/* sq = sqrt(2)*2^(bits-1) */
mpz_set_ui(r1, 1);
- mpz_mul_2exp(r1, r1, 2*bits-1);
+ mpz_mul_2exp(r1, r1, 2 * bits - 1);
mpz_sqrt(sq, r1);
/* r2 = 2^bits - sq */
@@ -134,7 +134,7 @@ unsigned max = bits*5;
mpz_mul(p, p, p0);
mpz_mul_2exp(p, p, 1);
- /* p = 2(tp2-y)p0p1 + 1*/
+ /* p = 2(tp2-y)p0p1 + 1 */
mpz_add_ui(p, p, 1);
mpz_set_ui(r2, 1);
@@ -167,15 +167,17 @@ unsigned max = bits*5;
mpz_gcd(r1, e, r2);
if (mpz_cmp_ui(r1, 1) == 0) {
- mpz_set_ui(x, 0); /* a = 0 */
+ mpz_set_ui(x, 0); /* a = 0 */
if (iterations > 0) {
for (i = 0; i < iterations; i++) {
- tseed_length = mpz_seed_sizeinbase_256_u(s, pseed_length);
+ tseed_length =
+ mpz_seed_sizeinbase_256_u(s, pseed_length);
if (tseed_length > sizeof(pseed))
goto fail;
nettle_mpz_get_str_256(tseed_length, pseed, s);
- hash(&storage[(iterations - i - 1) * DIGEST_SIZE],
+ hash(&storage
+ [(iterations - i - 1) * DIGEST_SIZE],
tseed_length, pseed);
mpz_add_ui(s, s, 1);
}
@@ -205,19 +207,24 @@ unsigned max = bits*5;
mpz_powm(r1, r2, p0, p);
if (mpz_cmp_ui(r1, 1) == 0) {
if (prime_seed_length != NULL) {
- tseed_length = mpz_seed_sizeinbase_256_u(s, pseed_length);
+ tseed_length =
+ mpz_seed_sizeinbase_256_u(s,
+ pseed_length);
if (tseed_length > sizeof(pseed))
goto fail;
- nettle_mpz_get_str_256(tseed_length, pseed, s);
+ nettle_mpz_get_str_256(tseed_length,
+ pseed, s);
if (*prime_seed_length < tseed_length) {
- *prime_seed_length = tseed_length;
+ *prime_seed_length =
+ tseed_length;
goto fail;
}
*prime_seed_length = tseed_length;
if (prime_seed != NULL)
- memcpy(prime_seed, pseed, tseed_length);
+ memcpy(prime_seed, pseed,
+ tseed_length);
}
ret = 1;
goto cleanup;
@@ -232,9 +239,9 @@ unsigned max = bits*5;
mpz_add_ui(t, t, 1);
goto retry;
-fail:
+ fail:
ret = 0;
-cleanup:
+ cleanup:
free(storage);
mpz_clear(p0);
mpz_clear(sq);
@@ -250,23 +257,22 @@ cleanup:
/* Return the pre-defined seed length for modulus size, or 0 when the
* modulus size is unsupported.
*/
-static inline unsigned
-seed_length_for_modulus_size(unsigned modulus_size)
+static inline unsigned seed_length_for_modulus_size(unsigned modulus_size)
{
switch (modulus_size) {
- case 2048: /* SP 800-56B rev 2 Appendix D and FIPS 140-2 IG 7.5 */
+ case 2048: /* SP 800-56B rev 2 Appendix D and FIPS 140-2 IG 7.5 */
return 14 * 2;
- case 3072: /* SP 800-56B rev 2 Appendix D and FIPS 140-2 IG 7.5 */
+ case 3072: /* SP 800-56B rev 2 Appendix D and FIPS 140-2 IG 7.5 */
return 16 * 2;
- case 4096: /* SP 800-56B rev 2 Appendix D */
+ case 4096: /* SP 800-56B rev 2 Appendix D */
return 19 * 2;
- case 6144: /* SP 800-56B rev 2 Appendix D */
+ case 6144: /* SP 800-56B rev 2 Appendix D */
return 22 * 2;
- case 7680: /* FIPS 140-2 IG 7.5 */
+ case 7680: /* FIPS 140-2 IG 7.5 */
return 24 * 2;
- case 8192: /* SP 800-56B rev 2 Appendix D */
+ case 8192: /* SP 800-56B rev 2 Appendix D */
return 25 * 2;
- case 15360: /* FIPS 140-2 IG 7.5 */
+ case 15360: /* FIPS 140-2 IG 7.5 */
return 32 * 2;
default:
return 0;
@@ -298,8 +304,7 @@ _rsa_generate_fips186_4_keypair(struct rsa_public_key *pub,
FIPS_RULE(false, 0, "unsupported modulus size\n");
}
- FIPS_RULE(seed_length != s, 0,
- "seed length other than %u bytes\n", s);
+ FIPS_RULE(seed_length != s, 0, "seed length other than %u bytes\n", s);
if (!mpz_tstbit(pub->e, 0)) {
_gnutls_debug_log("Unacceptable e (it is even)\n");
@@ -327,8 +332,8 @@ _rsa_generate_fips186_4_keypair(struct rsa_public_key *pub,
cert.pseed_length = sizeof(cert.pseed);
ret = rsa_provable_prime(key->p, &cert.pseed_length, cert.pseed,
- l, seed_length,
- seed, pub->e, progress_ctx, progress);
+ l, seed_length,
+ seed, pub->e, progress_ctx, progress);
if (ret == 0) {
goto cleanup;
}
@@ -339,18 +344,15 @@ _rsa_generate_fips186_4_keypair(struct rsa_public_key *pub,
do {
cert.qseed_length = sizeof(cert.qseed);
ret = rsa_provable_prime(key->q, &cert.qseed_length, cert.qseed,
- l, cert.pseed_length, cert.pseed,
- pub->e,
- progress_ctx, progress);
+ l, cert.pseed_length, cert.pseed,
+ pub->e, progress_ctx, progress);
if (ret == 0) {
goto cleanup;
}
-
cert.pseed_length = cert.qseed_length;
memcpy(cert.pseed, cert.qseed, cert.qseed_length);
-
if (mpz_cmp(key->p, key->q) > 0)
mpz_sub(t, key->p, key->q);
else
@@ -383,7 +385,7 @@ _rsa_generate_fips186_4_keypair(struct rsa_public_key *pub,
}
/* check whether d > 2^(nlen/2) -- FIPS186-4 5.3.1 */
- if (mpz_sizeinbase(key->d, 2) < n_size/2) {
+ if (mpz_sizeinbase(key->d, 2) < n_size / 2) {
ret = 0;
goto cleanup;
}
@@ -424,8 +426,7 @@ rsa_generate_fips186_4_keypair(struct rsa_public_key *pub,
void *random_ctx, nettle_random_func * random,
void *progress_ctx,
nettle_progress_func * progress,
- unsigned *rseed_size,
- void *rseed,
+ unsigned *rseed_size, void *rseed,
/* Desired size of modulo, in bits */
unsigned n_size)
{
@@ -449,7 +450,7 @@ rsa_generate_fips186_4_keypair(struct rsa_public_key *pub,
}
ret = _rsa_generate_fips186_4_keypair(pub, key, seed_length, seed,
- progress_ctx, progress, n_size);
+ progress_ctx, progress, n_size);
gnutls_memset(seed, 0, seed_length);
return ret;
}
diff --git a/lib/nettle/int/rsa-pad.c b/lib/nettle/int/rsa-pad.c
index d6a4e831a2..fda2e304ed 100644
--- a/lib/nettle/int/rsa-pad.c
+++ b/lib/nettle/int/rsa-pad.c
@@ -37,7 +37,7 @@
int
_gnutls_rsa_pkcs1_sign_pad(size_t key_bits,
- const gnutls_datum_t *data,
+ const gnutls_datum_t * data,
unsigned char *buffer, size_t buffer_size)
{
size_t key_size = (key_bits + 7) / 8;
@@ -64,9 +64,9 @@ _gnutls_rsa_pkcs1_sign_pad(size_t key_bits,
}
int
-_gnutls_rsa_pss_sign_pad(gnutls_x509_spki_st *params,
+_gnutls_rsa_pss_sign_pad(gnutls_x509_spki_st * params,
size_t key_bits,
- const gnutls_datum_t *data,
+ const gnutls_datum_t * data,
unsigned char *buffer, size_t buffer_size)
{
mpz_t m;
diff --git a/lib/nettle/int/tls1-prf.c b/lib/nettle/int/tls1-prf.c
index 19ca5d34dc..241d6505a5 100644
--- a/lib/nettle/int/tls1-prf.c
+++ b/lib/nettle/int/tls1-prf.c
@@ -38,19 +38,16 @@
#include <nettle/sha1.h>
#include <nettle/md5.h>
-
/* The RFC2246 P_hash() function. The mac_ctx is expected to
* be initialized and key set to be the secret key.
*/
static void
-P_hash( void *mac_ctx,
- nettle_hash_update_func *update,
- nettle_hash_digest_func *digest,
- size_t digest_size,
- size_t seed_size, const uint8_t *seed,
- size_t label_size, const char *label,
- size_t dst_length,
- uint8_t *dst)
+P_hash(void *mac_ctx,
+ nettle_hash_update_func * update,
+ nettle_hash_digest_func * digest,
+ size_t digest_size,
+ size_t seed_size, const uint8_t * seed,
+ size_t label_size, const char *label, size_t dst_length, uint8_t * dst)
{
uint8_t Atmp[MAX_HASH_SIZE];
ssize_t left;
@@ -59,21 +56,21 @@ P_hash( void *mac_ctx,
/* round up */
left = dst_length;
- while(left > 0) {
- if (started == 0) { /* A(0) */
- update(mac_ctx, label_size, (const uint8_t *)label); /* hash label */
+ while (left > 0) {
+ if (started == 0) { /* A(0) */
+ update(mac_ctx, label_size, (const uint8_t *)label); /* hash label */
update(mac_ctx, seed_size, seed);
started = 1;
} else {
update(mac_ctx, digest_size, Atmp);
}
- digest(mac_ctx, digest_size, Atmp); /* store A(i) */
+ digest(mac_ctx, digest_size, Atmp); /* store A(i) */
- update(mac_ctx, digest_size, Atmp); /* hash A(i) */
- update(mac_ctx, label_size, (const uint8_t *)label); /* hash label */
- update(mac_ctx, seed_size, seed); /* hash seed */
+ update(mac_ctx, digest_size, Atmp); /* hash A(i) */
+ update(mac_ctx, label_size, (const uint8_t *)label); /* hash label */
+ update(mac_ctx, seed_size, seed); /* hash seed */
- if (left < (ssize_t)digest_size)
+ if (left < (ssize_t) digest_size)
digest_size = left;
digest(mac_ctx, digest_size, dst);
@@ -86,10 +83,9 @@ P_hash( void *mac_ctx,
}
int
-tls10_prf(size_t secret_size, const uint8_t *secret,
+tls10_prf(size_t secret_size, const uint8_t * secret,
size_t label_size, const char *label,
- size_t seed_size, const uint8_t *seed,
- size_t length, uint8_t *dst)
+ size_t seed_size, const uint8_t * seed, size_t length, uint8_t * dst)
{
int l_s;
const uint8_t *s1, *s2;
@@ -109,17 +105,16 @@ tls10_prf(size_t secret_size, const uint8_t *secret,
hmac_md5_set_key(&md5_ctx, l_s, s1);
- P_hash(&md5_ctx, (nettle_hash_update_func*)hmac_md5_update,
- (nettle_hash_digest_func*)hmac_md5_digest,
- MD5_DIGEST_SIZE,
- seed_size, seed, label_size, label, length, o1);
+ P_hash(&md5_ctx, (nettle_hash_update_func *) hmac_md5_update,
+ (nettle_hash_digest_func *) hmac_md5_digest,
+ MD5_DIGEST_SIZE, seed_size, seed, label_size, label, length, o1);
hmac_sha1_set_key(&sha1_ctx, l_s, s2);
- P_hash(&sha1_ctx, (nettle_hash_update_func*)hmac_sha1_update,
- (nettle_hash_digest_func*)hmac_sha1_digest,
- SHA1_DIGEST_SIZE,
- seed_size, seed, label_size, label, length, dst);
+ P_hash(&sha1_ctx, (nettle_hash_update_func *) hmac_sha1_update,
+ (nettle_hash_digest_func *) hmac_sha1_digest,
+ SHA1_DIGEST_SIZE,
+ seed_size, seed, label_size, label, length, dst);
memxor(dst, o1, length);
@@ -145,15 +140,14 @@ tls10_prf(size_t secret_size, const uint8_t *secret,
-*/
int
tls12_prf(void *mac_ctx,
- nettle_hash_update_func *update,
- nettle_hash_digest_func *digest,
+ nettle_hash_update_func * update,
+ nettle_hash_digest_func * digest,
size_t digest_size,
size_t label_size, const char *label,
- size_t seed_size, const uint8_t *seed,
- size_t length, uint8_t *dst)
+ size_t seed_size, const uint8_t * seed, size_t length, uint8_t * dst)
{
P_hash(mac_ctx, update, digest, digest_size,
- seed_size, seed, label_size, label, length, dst);
+ seed_size, seed, label_size, label, length, dst);
return 1;
}
diff --git a/lib/nettle/int/tls1-prf.h b/lib/nettle/int/tls1-prf.h
index e79d1c8639..9b2586e0a3 100644
--- a/lib/nettle/int/tls1-prf.h
+++ b/lib/nettle/int/tls1-prf.h
@@ -21,29 +21,27 @@
*/
#ifndef GNUTLS_LIB_NETTLE_INT_TLS1_PRF_H
-#define GNUTLS_LIB_NETTLE_INT_TLS1_PRF_H
+# define GNUTLS_LIB_NETTLE_INT_TLS1_PRF_H
-#include <nettle/nettle-meta.h>
+# include <nettle/nettle-meta.h>
-#define MAX_PRF_BYTES 200
+# define MAX_PRF_BYTES 200
/* Namespace mangling */
-#define tls10_prf nettle_tls10_prf
-#define tls12_prf nettle_tls12_prf
+# define tls10_prf nettle_tls10_prf
+# define tls12_prf nettle_tls12_prf
int
-tls10_prf(size_t secret_size, const uint8_t *secret,
+tls10_prf(size_t secret_size, const uint8_t * secret,
size_t label_size, const char *label,
- size_t seed_size, const uint8_t *seed,
- size_t length, uint8_t *dst);
+ size_t seed_size, const uint8_t * seed, size_t length, uint8_t * dst);
int
tls12_prf(void *mac_ctx,
- nettle_hash_update_func *update,
- nettle_hash_digest_func *digest,
+ nettle_hash_update_func * update,
+ nettle_hash_digest_func * digest,
size_t digest_size,
size_t label_size, const char *label,
- size_t seed_size, const uint8_t *seed,
- size_t length, uint8_t *dst);
+ size_t seed_size, const uint8_t * seed, size_t length, uint8_t * dst);
-#endif /* GNUTLS_LIB_NETTLE_INT_TLS1_PRF_H */
+#endif /* GNUTLS_LIB_NETTLE_INT_TLS1_PRF_H */
diff --git a/lib/nettle/mac.c b/lib/nettle/mac.c
index c891c8d028..5435f2e31f 100644
--- a/lib/nettle/mac.c
+++ b/lib/nettle/mac.c
@@ -36,21 +36,20 @@
#include <nettle/pbkdf2.h>
#include <nettle/cmac.h>
#if ENABLE_GOST
-#include "gost/hmac-gost.h"
-#ifndef HAVE_NETTLE_GOST28147_SET_KEY
-#include "gost/gost28147.h"
-#endif
-#include "gost/cmac.h"
+# include "gost/hmac-gost.h"
+# ifndef HAVE_NETTLE_GOST28147_SET_KEY
+# include "gost/gost28147.h"
+# endif
+# include "gost/cmac.h"
#endif
#include <nettle/gcm.h>
-typedef void (*update_func) (void *, size_t, const uint8_t *);
-typedef void (*digest_func) (void *, size_t, uint8_t *);
-typedef void (*set_key_func) (void *, size_t, const uint8_t *);
-typedef void (*set_nonce_func) (void *, size_t, const uint8_t *);
+typedef void (*update_func)(void *, size_t, const uint8_t *);
+typedef void (*digest_func)(void *, size_t, uint8_t *);
+typedef void (*set_key_func)(void *, size_t, const uint8_t *);
+typedef void (*set_nonce_func)(void *, size_t, const uint8_t *);
-static int wrap_nettle_hash_init(gnutls_digest_algorithm_t algo,
- void **_ctx);
+static int wrap_nettle_hash_init(gnutls_digest_algorithm_t algo, void **_ctx);
struct md5_sha1_ctx {
struct md5_ctx md5;
@@ -115,8 +114,8 @@ struct nettle_mac_ctx {
#endif
struct umac96_ctx umac96;
struct umac128_ctx umac128;
- struct cmac_aes128_ctx cmac128;
- struct cmac_aes256_ctx cmac256;
+ struct cmac_aes128_ctx cmac128;
+ struct cmac_aes256_ctx cmac256;
struct gmac_ctx gmac;
} ctx;
@@ -137,8 +136,7 @@ _wrap_gost28147_imit_set_key_tc26z(void *ctx, size_t len, const uint8_t * key)
gost28147_imit_set_key(ctx, len, key);
}
-static void
-_wrap_cmac_magma_set_key(void *ctx, size_t len, const uint8_t * key)
+static void _wrap_cmac_magma_set_key(void *ctx, size_t len, const uint8_t * key)
{
cmac_magma_set_key(ctx, key);
}
@@ -150,32 +148,28 @@ _wrap_cmac_kuznyechik_set_key(void *ctx, size_t len, const uint8_t * key)
}
#endif
-static void
-_wrap_umac96_set_key(void *ctx, size_t len, const uint8_t * key)
+static void _wrap_umac96_set_key(void *ctx, size_t len, const uint8_t * key)
{
if (unlikely(len != 16))
abort();
umac96_set_key(ctx, key);
}
-static void
-_wrap_umac128_set_key(void *ctx, size_t len, const uint8_t * key)
+static void _wrap_umac128_set_key(void *ctx, size_t len, const uint8_t * key)
{
if (unlikely(len != 16))
abort();
umac128_set_key(ctx, key);
}
-static void
-_wrap_cmac128_set_key(void *ctx, size_t len, const uint8_t * key)
+static void _wrap_cmac128_set_key(void *ctx, size_t len, const uint8_t * key)
{
if (unlikely(len != 16))
abort();
cmac_aes128_set_key(ctx, key);
}
-static void
-_wrap_cmac256_set_key(void *ctx, size_t len, const uint8_t * key)
+static void _wrap_cmac256_set_key(void *ctx, size_t len, const uint8_t * key)
{
if (unlikely(len != 32))
abort();
@@ -218,14 +212,15 @@ _wrap_gmac_aes256_set_key(void *_ctx, size_t len, const uint8_t * key)
ctx->pos = 0;
}
-static void _wrap_gmac_set_nonce(void *_ctx, size_t nonce_length, const uint8_t *nonce)
+static void _wrap_gmac_set_nonce(void *_ctx, size_t nonce_length,
+ const uint8_t * nonce)
{
struct gmac_ctx *ctx = _ctx;
gcm_set_iv(&ctx->ctx, &ctx->key, nonce_length, nonce);
}
-static void _wrap_gmac_update(void *_ctx, size_t length, const uint8_t *data)
+static void _wrap_gmac_update(void *_ctx, size_t length, const uint8_t * data)
{
struct gmac_ctx *ctx = _ctx;
@@ -244,8 +239,7 @@ static void _wrap_gmac_update(void *_ctx, size_t length, const uint8_t *data)
if (length >= GCM_BLOCK_SIZE) {
gcm_update(&ctx->ctx, &ctx->key,
- length / GCM_BLOCK_SIZE * GCM_BLOCK_SIZE,
- data);
+ length / GCM_BLOCK_SIZE * GCM_BLOCK_SIZE, data);
data += length / GCM_BLOCK_SIZE * GCM_BLOCK_SIZE;
length %= GCM_BLOCK_SIZE;
}
@@ -254,13 +248,14 @@ static void _wrap_gmac_update(void *_ctx, size_t length, const uint8_t *data)
ctx->pos = length;
}
-static void _wrap_gmac_digest(void *_ctx, size_t length, uint8_t *digest)
+static void _wrap_gmac_digest(void *_ctx, size_t length, uint8_t * digest)
{
struct gmac_ctx *ctx = _ctx;
if (ctx->pos)
gcm_update(&ctx->ctx, &ctx->key, ctx->pos, ctx->buffer);
- gcm_digest(&ctx->ctx, &ctx->key, &ctx->cipher, ctx->encrypt, length, digest);
+ gcm_digest(&ctx->ctx, &ctx->key, &ctx->cipher, ctx->encrypt, length,
+ digest);
ctx->pos = 0;
}
@@ -395,7 +390,7 @@ static int _mac_ctx_init(gnutls_mac_algorithm_t algo,
ctx->digest = _wrap_gmac_digest;
ctx->ctx_ptr = &ctx->ctx.gmac;
ctx->length = GCM_DIGEST_SIZE;
- ctx->ctx.gmac.encrypt = (nettle_cipher_func *)aes128_encrypt;
+ ctx->ctx.gmac.encrypt = (nettle_cipher_func *) aes128_encrypt;
break;
case GNUTLS_MAC_AES_GMAC_192:
ctx->set_key = _wrap_gmac_aes192_set_key;
@@ -404,7 +399,7 @@ static int _mac_ctx_init(gnutls_mac_algorithm_t algo,
ctx->digest = _wrap_gmac_digest;
ctx->ctx_ptr = &ctx->ctx.gmac;
ctx->length = GCM_DIGEST_SIZE;
- ctx->ctx.gmac.encrypt = (nettle_cipher_func *)aes192_encrypt;
+ ctx->ctx.gmac.encrypt = (nettle_cipher_func *) aes192_encrypt;
break;
case GNUTLS_MAC_AES_GMAC_256:
ctx->set_key = _wrap_gmac_aes256_set_key;
@@ -413,7 +408,7 @@ static int _mac_ctx_init(gnutls_mac_algorithm_t algo,
ctx->digest = _wrap_gmac_digest;
ctx->ctx_ptr = &ctx->ctx.gmac;
ctx->length = GCM_DIGEST_SIZE;
- ctx->ctx.gmac.encrypt = (nettle_cipher_func *)aes256_encrypt;
+ ctx->ctx.gmac.encrypt = (nettle_cipher_func *) aes256_encrypt;
break;
default:
gnutls_assert();
@@ -445,7 +440,7 @@ static int wrap_nettle_mac_fast(gnutls_mac_algorithm_t algo,
}
ctx.update(&ctx, text_size, text);
ctx.digest(&ctx, ctx.length, digest);
-
+
zeroize_temp_key(&ctx, sizeof(ctx));
return 0;
@@ -509,20 +504,19 @@ static void *wrap_nettle_mac_copy(const void *_ctx)
{
const struct nettle_mac_ctx *ctx = _ctx;
struct nettle_mac_ctx *new_ctx;
- ptrdiff_t off = (uint8_t *)ctx->ctx_ptr - (uint8_t *)(&ctx->ctx);
+ ptrdiff_t off = (uint8_t *) ctx->ctx_ptr - (uint8_t *) (&ctx->ctx);
new_ctx = gnutls_calloc(1, sizeof(struct nettle_mac_ctx));
if (new_ctx == NULL)
return NULL;
memcpy(new_ctx, ctx, sizeof(*ctx));
- new_ctx->ctx_ptr = (uint8_t *)&new_ctx->ctx + off;
+ new_ctx->ctx_ptr = (uint8_t *) & new_ctx->ctx + off;
return new_ctx;
}
-static int
-wrap_nettle_mac_set_key(void *_ctx, const void *key, size_t keylen)
+static int wrap_nettle_mac_set_key(void *_ctx, const void *key, size_t keylen)
{
struct nettle_mac_ctx *ctx = _ctx;
@@ -546,8 +540,7 @@ wrap_nettle_mac_set_nonce(void *_ctx, const void *nonce, size_t noncelen)
return GNUTLS_E_SUCCESS;
}
-static int
-wrap_nettle_mac_update(void *_ctx, const void *text, size_t textsize)
+static int wrap_nettle_mac_update(void *_ctx, const void *text, size_t textsize)
{
struct nettle_mac_ctx *ctx = _ctx;
@@ -575,7 +568,7 @@ wrap_nettle_mac_output(void *src_ctx, void *digest, size_t digestsize)
static void wrap_nettle_mac_deinit(void *hd)
{
struct nettle_mac_ctx *ctx = hd;
-
+
zeroize_temp_key(ctx, sizeof(*ctx));
gnutls_free(ctx);
}
@@ -633,7 +626,7 @@ static int wrap_nettle_hash_exists(gnutls_digest_algorithm_t algo)
}
}
-static void _md5_sha1_update(void *_ctx, size_t len, const uint8_t *data)
+static void _md5_sha1_update(void *_ctx, size_t len, const uint8_t * data)
{
struct md5_sha1_ctx *ctx = _ctx;
@@ -641,7 +634,7 @@ static void _md5_sha1_update(void *_ctx, size_t len, const uint8_t *data)
sha1_update(&ctx->sha1, len, data);
}
-static void _md5_sha1_digest(void *_ctx, size_t len, uint8_t *digest)
+static void _md5_sha1_digest(void *_ctx, size_t len, uint8_t * digest)
{
struct md5_sha1_ctx *ctx = _ctx;
@@ -797,8 +790,7 @@ static int wrap_nettle_hash_fast(gnutls_digest_algorithm_t algo,
return 0;
}
-static int
-wrap_nettle_hash_init(gnutls_digest_algorithm_t algo, void **_ctx)
+static int wrap_nettle_hash_init(gnutls_digest_algorithm_t algo, void **_ctx)
{
struct nettle_hash_ctx *ctx;
int ret;
@@ -826,14 +818,14 @@ static void *wrap_nettle_hash_copy(const void *_ctx)
{
const struct nettle_hash_ctx *ctx = _ctx;
struct nettle_hash_ctx *new_ctx;
- ptrdiff_t off = (uint8_t *)ctx->ctx_ptr - (uint8_t *)(&ctx->ctx);
+ ptrdiff_t off = (uint8_t *) ctx->ctx_ptr - (uint8_t *) (&ctx->ctx);
new_ctx = gnutls_calloc(1, sizeof(struct nettle_hash_ctx));
if (new_ctx == NULL)
return NULL;
memcpy(new_ctx, ctx, sizeof(*ctx));
- new_ctx->ctx_ptr = (uint8_t *)&new_ctx->ctx + off;
+ new_ctx->ctx_ptr = (uint8_t *) & new_ctx->ctx + off;
return new_ctx;
}
@@ -857,10 +849,9 @@ wrap_nettle_hash_output(void *src_ctx, void *digest, size_t digestsize)
/* KDF functions based on MAC
*/
static int
-wrap_nettle_hkdf_extract (gnutls_mac_algorithm_t mac,
- const void *key, size_t keysize,
- const void *salt, size_t saltsize,
- void *output)
+wrap_nettle_hkdf_extract(gnutls_mac_algorithm_t mac,
+ const void *key, size_t keysize,
+ const void *salt, size_t saltsize, void *output)
{
struct nettle_mac_ctx ctx;
int ret;
@@ -878,10 +869,10 @@ wrap_nettle_hkdf_extract (gnutls_mac_algorithm_t mac,
}
static int
-wrap_nettle_hkdf_expand (gnutls_mac_algorithm_t mac,
- const void *key, size_t keysize,
- const void *info, size_t infosize,
- void *output, size_t length)
+wrap_nettle_hkdf_expand(gnutls_mac_algorithm_t mac,
+ const void *key, size_t keysize,
+ const void *info, size_t infosize,
+ void *output, size_t length)
{
struct nettle_mac_ctx ctx;
int ret;
@@ -904,11 +895,10 @@ wrap_nettle_hkdf_expand (gnutls_mac_algorithm_t mac,
}
static int
-wrap_nettle_pbkdf2 (gnutls_mac_algorithm_t mac,
- const void *key, size_t keysize,
- const void *salt, size_t saltsize,
- unsigned iter_count,
- void *output, size_t length)
+wrap_nettle_pbkdf2(gnutls_mac_algorithm_t mac,
+ const void *key, size_t keysize,
+ const void *salt, size_t saltsize,
+ unsigned iter_count, void *output, size_t length)
{
struct nettle_mac_ctx ctx;
int ret;
diff --git a/lib/nettle/mpi.c b/lib/nettle/mpi.c
index 55086de603..94e9f517ab 100644
--- a/lib/nettle/mpi.c
+++ b/lib/nettle/mpi.c
@@ -28,19 +28,19 @@
#include <algorithms.h>
#include <num.h>
#include <mpi.h>
-#include <nettle/bignum.h> /* includes gmp.h */
+#include <nettle/bignum.h> /* includes gmp.h */
#if ENABLE_GOST
-#include "gost/bignum-le.h"
+# include "gost/bignum-le.h"
#endif
#include <gnettle.h>
#include <random.h>
static int
-wrap_nettle_mpi_print(const bigint_t a, void *buffer, size_t * nbytes,
+wrap_nettle_mpi_print(const bigint_t a, void *buffer, size_t *nbytes,
gnutls_bigint_format_t format)
{
unsigned int size;
- mpz_t *p = (void *) a;
+ mpz_t *p = (void *)a;
if (format == GNUTLS_MPI_FORMAT_USG) {
size = nettle_mpz_sizeinbase_256_u(*p);
@@ -72,9 +72,9 @@ wrap_nettle_mpi_print(const bigint_t a, void *buffer, size_t * nbytes,
return 0;
}
-static int wrap_nettle_mpi_init(bigint_t *w)
+static int wrap_nettle_mpi_init(bigint_t * w)
{
-bigint_t r;
+ bigint_t r;
r = gnutls_malloc(SIZEOF_MPZT);
if (r == NULL) {
@@ -88,12 +88,12 @@ bigint_t r;
return 0;
}
-static int wrap_nettle_mpi_init_multi(bigint_t *w, ...)
+static int wrap_nettle_mpi_init_multi(bigint_t * w, ...)
{
va_list args;
bigint_t *next;
int ret;
- bigint_t* last_failed = NULL;
+ bigint_t *last_failed = NULL;
ret = wrap_nettle_mpi_init(w);
if (ret < 0) {
@@ -102,9 +102,9 @@ static int wrap_nettle_mpi_init_multi(bigint_t *w, ...)
}
va_start(args, w);
-
+
do {
- next = va_arg(args, bigint_t*);
+ next = va_arg(args, bigint_t *);
if (next != NULL) {
ret = wrap_nettle_mpi_init(next);
if (ret < 0) {
@@ -114,27 +114,27 @@ static int wrap_nettle_mpi_init_multi(bigint_t *w, ...)
goto fail;
}
}
- } while(next != 0);
-
+ } while (next != 0);
+
va_end(args);
return 0;
-fail:
+ fail:
mpz_clear(TOMPZ(*w));
gnutls_free(*w);
va_start(args, w);
-
+
do {
- next = va_arg(args, bigint_t*);
+ next = va_arg(args, bigint_t *);
if (next != last_failed) {
mpz_clear(TOMPZ(*next));
gnutls_free(*next);
}
- } while(next != last_failed);
-
+ } while (next != last_failed);
+
va_end(args);
-
+
return GNUTLS_E_MEMORY_ERROR;
}
@@ -216,7 +216,7 @@ static void wrap_nettle_mpi_release(bigint_t a)
static void wrap_nettle_mpi_clear(bigint_t a)
{
zeroize_key(TOMPZ(a)[0]._mp_d,
- TOMPZ(a)[0]._mp_alloc * sizeof(mp_limb_t));
+ TOMPZ(a)[0]._mp_alloc * sizeof(mp_limb_t));
}
static int wrap_nettle_mpi_modm(bigint_t r, const bigint_t a, const bigint_t b)
@@ -225,7 +225,7 @@ static int wrap_nettle_mpi_modm(bigint_t r, const bigint_t a, const bigint_t b)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
mpz_mod(TOMPZ(r), TOMPZ(a), TOMPZ(b));
-
+
return 0;
}
@@ -268,24 +268,21 @@ wrap_nettle_mpi_mulm(bigint_t w, const bigint_t a, const bigint_t b,
return 0;
}
-static int
-wrap_nettle_mpi_add(bigint_t w, const bigint_t a, const bigint_t b)
+static int wrap_nettle_mpi_add(bigint_t w, const bigint_t a, const bigint_t b)
{
mpz_add(TOMPZ(w), TOMPZ(a), TOMPZ(b));
return 0;
}
-static int
-wrap_nettle_mpi_sub(bigint_t w, const bigint_t a, const bigint_t b)
+static int wrap_nettle_mpi_sub(bigint_t w, const bigint_t a, const bigint_t b)
{
mpz_sub(TOMPZ(w), TOMPZ(a), TOMPZ(b));
return 0;
}
-static int
-wrap_nettle_mpi_mul(bigint_t w, const bigint_t a, const bigint_t b)
+static int wrap_nettle_mpi_mul(bigint_t w, const bigint_t a, const bigint_t b)
{
mpz_mul(TOMPZ(w), TOMPZ(a), TOMPZ(b));
@@ -293,32 +290,28 @@ wrap_nettle_mpi_mul(bigint_t w, const bigint_t a, const bigint_t b)
}
/* q = a / b */
-static int
-wrap_nettle_mpi_div(bigint_t q, const bigint_t a, const bigint_t b)
+static int wrap_nettle_mpi_div(bigint_t q, const bigint_t a, const bigint_t b)
{
mpz_cdiv_q(TOMPZ(q), TOMPZ(a), TOMPZ(b));
return 0;
}
-static int
-wrap_nettle_mpi_add_ui(bigint_t w, const bigint_t a, unsigned long b)
+static int wrap_nettle_mpi_add_ui(bigint_t w, const bigint_t a, unsigned long b)
{
mpz_add_ui(TOMPZ(w), TOMPZ(a), b);
return 0;
}
-static int
-wrap_nettle_mpi_sub_ui(bigint_t w, const bigint_t a, unsigned long b)
+static int wrap_nettle_mpi_sub_ui(bigint_t w, const bigint_t a, unsigned long b)
{
mpz_sub_ui(TOMPZ(w), TOMPZ(a), b);
return 0;
}
-static int
-wrap_nettle_mpi_mul_ui(bigint_t w, const bigint_t a, unsigned long b)
+static int wrap_nettle_mpi_mul_ui(bigint_t w, const bigint_t a, unsigned long b)
{
mpz_mul_ui(TOMPZ(w), TOMPZ(a), b);
@@ -337,8 +330,6 @@ static int wrap_nettle_prime_check(bigint_t pp)
return GNUTLS_E_INTERNAL_ERROR; /* ignored */
}
-
-
int crypto_bigint_prio = INT_MAX;
gnutls_crypto_bigint_st _gnutls_mpi_ops = {
diff --git a/lib/nettle/nettle-alloca.h b/lib/nettle/nettle-alloca.h
index e91604358b..a8750a8943 100644
--- a/lib/nettle/nettle-alloca.h
+++ b/lib/nettle/nettle-alloca.h
@@ -33,25 +33,25 @@
*/
#ifndef GNUTLS_LIB_NETTLE_GOST_NETTLE_INTERNAL_H
-#define GNUTLS_LIB_NETTLE_GOST_NETTLE_INTERNAL_H
+# define GNUTLS_LIB_NETTLE_GOST_NETTLE_INTERNAL_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+# ifdef HAVE_CONFIG_H
+# include <config.h>
+# endif
/* Temporary allocation, for systems that don't support alloca. Note
* that the allocation requests should always be reasonably small, so
* that they can fit on the stack. For non-alloca systems, we use a
* fix maximum size, and abort if we ever need anything larger. */
-#if HAVE_ALLOCA
-#include <alloca.h>
-# define TMP_DECL(name, type, max) type *name
-# define TMP_ALLOC(name, size) (name = alloca(sizeof (*name) * (size)))
-#else /* !HAVE_ALLOCA */
-# define TMP_DECL(name, type, max) type name[max]
-# define TMP_ALLOC(name, size) \
+# if HAVE_ALLOCA
+# include <alloca.h>
+# define TMP_DECL(name, type, max) type *name
+# define TMP_ALLOC(name, size) (name = alloca(sizeof (*name) * (size)))
+# else /* !HAVE_ALLOCA */
+# define TMP_DECL(name, type, max) type name[max]
+# define TMP_ALLOC(name, size) \
do { if ((size) > (sizeof(name) / sizeof(name[0]))) abort(); } while (0)
-#endif
+# endif
-#endif /* GNUTLS_LIB_NETTLE_GOST_NETTLE_INTERNAL_H */
+#endif /* GNUTLS_LIB_NETTLE_GOST_NETTLE_INTERNAL_H */
diff --git a/lib/nettle/pk.c b/lib/nettle/pk.c
index 7732e90542..6adf958a61 100644
--- a/lib/nettle/pk.c
+++ b/lib/nettle/pk.c
@@ -52,15 +52,15 @@
#include <nettle/eddsa.h>
#include <nettle/version.h>
#if ENABLE_GOST
-#if NEED_INT_ECC
-#include "ecc/gostdsa.h"
-#include "ecc-gost-curve.h"
-#else
-#include <nettle/gostdsa.h>
-#define gost_point_mul_g ecc_point_mul_g
-#define gost_point_set ecc_point_set
-#endif
-#include "gost/gostdsa2.h"
+# if NEED_INT_ECC
+# include "ecc/gostdsa.h"
+# include "ecc-gost-curve.h"
+# else
+# include <nettle/gostdsa.h>
+# define gost_point_mul_g ecc_point_mul_g
+# define gost_point_set ecc_point_set
+# endif
+# include "gost/gostdsa2.h"
#endif
#include "int/ecdsa-compute-k.h"
#include "int/dsa-compute-k.h"
@@ -100,7 +100,7 @@ static void rnd_nonce_func(void *_ctx, size_t length, uint8_t * data)
static void rnd_mpz_func(void *_ctx, size_t length, uint8_t * data)
{
mpz_t *k = _ctx;
- nettle_mpz_get_str_256 (length, data, *k);
+ nettle_mpz_get_str_256(length, data, *k);
}
static void rnd_nonce_func_fallback(void *_ctx, size_t length, uint8_t * data)
@@ -112,23 +112,20 @@ static void rnd_nonce_func_fallback(void *_ctx, size_t length, uint8_t * data)
memset(data, 0xAA, length);
}
-static void
-ecc_scalar_zclear (struct ecc_scalar *s)
+static void ecc_scalar_zclear(struct ecc_scalar *s)
{
- zeroize_key(s->p, ecc_size(s->ecc)*sizeof(mp_limb_t));
+ zeroize_key(s->p, ecc_size(s->ecc) * sizeof(mp_limb_t));
ecc_scalar_clear(s);
}
-static void
-ecc_point_zclear (struct ecc_point *p)
+static void ecc_point_zclear(struct ecc_point *p)
{
- zeroize_key(p->p, ecc_size_a(p->ecc)*sizeof(mp_limb_t));
+ zeroize_key(p->p, ecc_size_a(p->ecc) * sizeof(mp_limb_t));
ecc_point_clear(p);
}
-
+
static void
-_dsa_params_get(const gnutls_pk_params_st * pk_params,
- struct dsa_params *pub)
+_dsa_params_get(const gnutls_pk_params_st * pk_params, struct dsa_params *pub)
{
memcpy(pub->p, pk_params->params[DSA_P], SIZEOF_MPZT);
@@ -150,8 +147,7 @@ _rsa_params_to_privkey(const gnutls_pk_params_st * pk_params,
/* we do not rsa_private_key_prepare() because it involves a multiplication.
* we call it once when we import the parameters */
priv->size =
- nettle_mpz_sizeinbase_256_u(TOMPZ
- (pk_params->params[RSA_MODULUS]));
+ nettle_mpz_sizeinbase_256_u(TOMPZ(pk_params->params[RSA_MODULUS]));
}
/* returns a negative value on invalid pubkey */
@@ -169,8 +165,7 @@ _rsa_params_to_pubkey(const gnutls_pk_params_st * pk_params,
static int
_ecc_params_to_privkey(const gnutls_pk_params_st * pk_params,
- struct ecc_scalar *priv,
- const struct ecc_curve *curve)
+ struct ecc_scalar *priv, const struct ecc_curve *curve)
{
ecc_scalar_init(priv, curve);
if (ecc_scalar_set(priv, pk_params->params[ECC_K]) == 0) {
@@ -198,8 +193,7 @@ _ecc_params_to_pubkey(const gnutls_pk_params_st * pk_params,
#if ENABLE_GOST
static int
_gost_params_to_privkey(const gnutls_pk_params_st * pk_params,
- struct ecc_scalar *priv,
- const struct ecc_curve *curve)
+ struct ecc_scalar *priv, const struct ecc_curve *curve)
{
ecc_scalar_init(priv, curve);
if (ecc_scalar_set(priv, pk_params->params[GOST_K]) == 0) {
@@ -268,7 +262,7 @@ ecc_shared_secret(struct ecc_scalar *private_key,
static inline int
edwards_curve_mul(gnutls_pk_algorithm_t algo,
- uint8_t *q, const uint8_t *n, const uint8_t *p)
+ uint8_t * q, const uint8_t * n, const uint8_t * p)
{
switch (algo) {
case GNUTLS_PK_ECDH_X25519:
@@ -296,111 +290,117 @@ static int _wrap_nettle_pk_derive(gnutls_pk_algorithm_t algo,
bool not_approved = false;
switch (algo) {
- case GNUTLS_PK_DH: {
- bigint_t f, x, q, prime;
- bigint_t k = NULL, primesub1 = NULL, r = NULL;
- unsigned int bits;
-
- if (nonce != NULL) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- goto cleanup;
- }
-
- f = pub->params[DH_Y];
- x = priv->params[DH_X];
- q = priv->params[DH_Q];
- prime = priv->params[DH_P];
+ case GNUTLS_PK_DH:{
+ bigint_t f, x, q, prime;
+ bigint_t k = NULL, primesub1 = NULL, r = NULL;
+ unsigned int bits;
- ret = _gnutls_mpi_init_multi(&k, &primesub1, &r, NULL);
- if (ret < 0) {
- gnutls_assert();
- goto cleanup;
- }
+ if (nonce != NULL) {
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ goto cleanup;
+ }
- ret = _gnutls_mpi_sub_ui(primesub1, prime, 1);
- if (ret < 0) {
- gnutls_assert();
- goto dh_cleanup;
- }
+ f = pub->params[DH_Y];
+ x = priv->params[DH_X];
+ q = priv->params[DH_Q];
+ prime = priv->params[DH_P];
- /* check if f==0,1, or f >= p-1 */
- if ((_gnutls_mpi_cmp_ui(f, 1) == 0)
- || (_gnutls_mpi_cmp_ui(f, 0) == 0)
- || (_gnutls_mpi_cmp(f, primesub1) >= 0)) {
- gnutls_assert();
- ret = GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
- goto dh_cleanup;
- }
+ ret = _gnutls_mpi_init_multi(&k, &primesub1, &r, NULL);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
- /* if we have Q check that y ^ q mod p == 1 */
- if (q != NULL) {
- ret = _gnutls_mpi_powm(r, f, q, prime);
+ ret = _gnutls_mpi_sub_ui(primesub1, prime, 1);
if (ret < 0) {
gnutls_assert();
goto dh_cleanup;
}
- ret = _gnutls_mpi_cmp_ui(r, 1);
- if (ret != 0) {
+
+ /* check if f==0,1, or f >= p-1 */
+ if ((_gnutls_mpi_cmp_ui(f, 1) == 0)
+ || (_gnutls_mpi_cmp_ui(f, 0) == 0)
+ || (_gnutls_mpi_cmp(f, primesub1) >= 0)) {
gnutls_assert();
ret = GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
goto dh_cleanup;
}
- } else if ((flags & PK_DERIVE_TLS13) &&
- _gnutls_fips_mode_enabled()) {
- /* Mandatory in FIPS mode for TLS 1.3 */
- ret = gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- goto dh_cleanup;
- }
- /* prevent denial of service */
- bits = _gnutls_mpi_get_nbits(prime);
- if (bits == 0 || bits > MAX_DH_BITS) {
- gnutls_assert();
- ret = GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
- goto dh_cleanup;
- }
+ /* if we have Q check that y ^ q mod p == 1 */
+ if (q != NULL) {
+ ret = _gnutls_mpi_powm(r, f, q, prime);
+ if (ret < 0) {
+ gnutls_assert();
+ goto dh_cleanup;
+ }
+ ret = _gnutls_mpi_cmp_ui(r, 1);
+ if (ret != 0) {
+ gnutls_assert();
+ ret =
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
+ goto dh_cleanup;
+ }
+ } else if ((flags & PK_DERIVE_TLS13) &&
+ _gnutls_fips_mode_enabled()) {
+ /* Mandatory in FIPS mode for TLS 1.3 */
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ goto dh_cleanup;
+ }
- if (bits < 2048) {
- not_approved = true;
- }
+ /* prevent denial of service */
+ bits = _gnutls_mpi_get_nbits(prime);
+ if (bits == 0 || bits > MAX_DH_BITS) {
+ gnutls_assert();
+ ret = GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
+ goto dh_cleanup;
+ }
- ret = _gnutls_mpi_powm(k, f, x, prime);
- if (ret < 0) {
- gnutls_assert();
- goto dh_cleanup;
- }
+ if (bits < 2048) {
+ not_approved = true;
+ }
- /* check if k==0,1, or k = p-1 */
- if ((_gnutls_mpi_cmp_ui(k, 1) == 0)
- || (_gnutls_mpi_cmp_ui(k, 0) == 0)
- || (_gnutls_mpi_cmp(k, primesub1) == 0)) {
- ret = gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- goto dh_cleanup;
- }
+ ret = _gnutls_mpi_powm(k, f, x, prime);
+ if (ret < 0) {
+ gnutls_assert();
+ goto dh_cleanup;
+ }
- if (flags & PK_DERIVE_TLS13) {
- ret =
- _gnutls_mpi_dprint_size(k, out,
- (bits+7)/8);
- } else {
- ret = _gnutls_mpi_dprint(k, out);
- }
+ /* check if k==0,1, or k = p-1 */
+ if ((_gnutls_mpi_cmp_ui(k, 1) == 0)
+ || (_gnutls_mpi_cmp_ui(k, 0) == 0)
+ || (_gnutls_mpi_cmp(k, primesub1) == 0)) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ goto dh_cleanup;
+ }
- if (ret < 0) {
- gnutls_assert();
- goto dh_cleanup;
- }
+ if (flags & PK_DERIVE_TLS13) {
+ ret =
+ _gnutls_mpi_dprint_size(k, out,
+ (bits + 7) / 8);
+ } else {
+ ret = _gnutls_mpi_dprint(k, out);
+ }
- ret = 0;
-dh_cleanup:
- _gnutls_mpi_release(&r);
- _gnutls_mpi_release(&primesub1);
- zrelease_temp_mpi_key(&k);
- if (ret < 0)
- goto cleanup;
+ if (ret < 0) {
+ gnutls_assert();
+ goto dh_cleanup;
+ }
- break;
- }
+ ret = 0;
+ dh_cleanup:
+ _gnutls_mpi_release(&r);
+ _gnutls_mpi_release(&primesub1);
+ zrelease_temp_mpi_key(&k);
+ if (ret < 0)
+ goto cleanup;
+
+ break;
+ }
case GNUTLS_PK_EC:
{
struct ecc_scalar ecc_priv;
@@ -410,13 +410,16 @@ dh_cleanup:
out->data = NULL;
if (nonce != NULL) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
curve = get_supported_nist_curve(priv->curve);
if (curve == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
@@ -431,8 +434,7 @@ dh_cleanup:
goto cleanup;
}
- ret =
- _ecc_params_to_privkey(priv, &ecc_priv, curve);
+ ret = _ecc_params_to_privkey(priv, &ecc_priv, curve);
if (ret < 0) {
ecc_point_clear(&ecc_pub);
gnutls_assert();
@@ -443,9 +445,7 @@ dh_cleanup:
/*ecc_size(curve)*sizeof(mp_limb_t); */
out->data = gnutls_malloc(out->size);
if (out->data == NULL) {
- ret =
- gnutls_assert_val
- (GNUTLS_E_MEMORY_ERROR);
+ ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto ecc_cleanup;
}
@@ -454,7 +454,7 @@ dh_cleanup:
if (ret < 0)
gnutls_free(out->data);
- ecc_cleanup:
+ ecc_cleanup:
ecc_point_clear(&ecc_pub);
ecc_scalar_zclear(&ecc_priv);
if (ret < 0)
@@ -470,14 +470,16 @@ dh_cleanup:
not_approved = true;
if (nonce != NULL) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
/* The point is in pub, while the private part (scalar) in priv. */
if (size == 0 || priv->raw_priv.size != size) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
@@ -489,7 +491,10 @@ dh_cleanup:
out->size = size;
- ret = edwards_curve_mul(algo, out->data, priv->raw_priv.data, pub->raw_pub.data);
+ ret =
+ edwards_curve_mul(algo, out->data,
+ priv->raw_priv.data,
+ pub->raw_pub.data);
if (ret < 0)
goto cleanup;
@@ -505,60 +510,59 @@ dh_cleanup:
case GNUTLS_PK_GOST_01:
case GNUTLS_PK_GOST_12_256:
case GNUTLS_PK_GOST_12_512:
- {
- struct ecc_scalar ecc_priv;
- struct ecc_point ecc_pub;
- const struct ecc_curve *curve;
+ {
+ struct ecc_scalar ecc_priv;
+ struct ecc_point ecc_pub;
+ const struct ecc_curve *curve;
- /* GOST curves are not approved */
- not_approved = true;
+ /* GOST curves are not approved */
+ not_approved = true;
- out->data = NULL;
+ out->data = NULL;
- curve = get_supported_gost_curve(priv->curve);
- if (curve == NULL) {
- gnutls_assert();
- ret = GNUTLS_E_ECC_UNSUPPORTED_CURVE;
- goto cleanup;
- }
+ curve = get_supported_gost_curve(priv->curve);
+ if (curve == NULL) {
+ gnutls_assert();
+ ret = GNUTLS_E_ECC_UNSUPPORTED_CURVE;
+ goto cleanup;
+ }
- if (nonce == NULL) {
- gnutls_assert();
- ret = GNUTLS_E_INVALID_REQUEST;
- goto cleanup;
- }
+ if (nonce == NULL) {
+ gnutls_assert();
+ ret = GNUTLS_E_INVALID_REQUEST;
+ goto cleanup;
+ }
- ret = _gost_params_to_pubkey(pub, &ecc_pub, curve);
- if (ret < 0) {
- gnutls_assert();
- goto cleanup;
- }
+ ret = _gost_params_to_pubkey(pub, &ecc_pub, curve);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
- ret = _gost_params_to_privkey(priv, &ecc_priv, curve);
- if (ret < 0) {
- ecc_point_clear(&ecc_pub);
- gnutls_assert();
- goto cleanup;
- }
+ ret = _gost_params_to_privkey(priv, &ecc_priv, curve);
+ if (ret < 0) {
+ ecc_point_clear(&ecc_pub);
+ gnutls_assert();
+ goto cleanup;
+ }
- out->size = 2 * gnutls_ecc_curve_get_size(priv->curve);
- out->data = gnutls_malloc(out->size);
- if (out->data == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- goto gost_cleanup;
- }
+ out->size = 2 * gnutls_ecc_curve_get_size(priv->curve);
+ out->data = gnutls_malloc(out->size);
+ if (out->data == NULL) {
+ ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
+ goto gost_cleanup;
+ }
- gostdsa_vko(&ecc_priv, &ecc_pub,
- nonce->size, nonce->data,
- out->data);
+ gostdsa_vko(&ecc_priv, &ecc_pub,
+ nonce->size, nonce->data, out->data);
- gost_cleanup:
- ecc_point_clear(&ecc_pub);
- ecc_scalar_zclear(&ecc_priv);
- if (ret < 0)
- goto cleanup;
- break;
- }
+ gost_cleanup:
+ ecc_point_clear(&ecc_pub);
+ ecc_scalar_zclear(&ecc_priv);
+ if (ret < 0)
+ goto cleanup;
+ break;
+ }
#endif
default:
gnutls_assert();
@@ -568,7 +572,7 @@ dh_cleanup:
ret = 0;
- cleanup:
+ cleanup:
if (ret < 0) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
} else if (not_approved) {
@@ -611,8 +615,7 @@ _wrap_nettle_pk_encrypt(gnutls_pk_algorithm_t algo,
random_func = rnd_nonce_func;
ret =
rsa_encrypt(&pub, NULL, random_func,
- plaintext->size, plaintext->data,
- p);
+ plaintext->size, plaintext->data, p);
if (ret == 0 || HAVE_LIB_ERROR()) {
ret =
gnutls_assert_val
@@ -620,9 +623,7 @@ _wrap_nettle_pk_encrypt(gnutls_pk_algorithm_t algo,
goto cleanup;
}
- ret =
- _gnutls_mpi_dprint_size(p, ciphertext,
- pub.size);
+ ret = _gnutls_mpi_dprint_size(p, ciphertext, pub.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -638,7 +639,7 @@ _wrap_nettle_pk_encrypt(gnutls_pk_algorithm_t algo,
ret = 0;
- cleanup:
+ cleanup:
if (ret < 0) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
} else {
@@ -681,25 +682,23 @@ _wrap_nettle_pk_decrypt(gnutls_pk_algorithm_t algo,
}
if (ciphertext->size != pub.size) {
- ret = gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_DECRYPTION_FAILED);
goto cleanup;
}
if (_gnutls_mpi_init_scan_nz
- (&c, ciphertext->data,
- ciphertext->size) != 0) {
+ (&c, ciphertext->data, ciphertext->size) != 0) {
ret =
- gnutls_assert_val
- (GNUTLS_E_MPI_SCAN_FAILED);
+ gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
goto cleanup;
}
length = pub.size;
plaintext->data = gnutls_malloc(length);
if (plaintext->data == NULL) {
- ret =
- gnutls_assert_val
- (GNUTLS_E_MEMORY_ERROR);
+ ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto cleanup;
}
@@ -709,8 +708,7 @@ _wrap_nettle_pk_decrypt(gnutls_pk_algorithm_t algo,
random_func = rnd_nonce_func;
ret =
rsa_decrypt_tr(&pub, &priv, NULL, random_func,
- &length, plaintext->data,
- TOMPZ(c));
+ &length, plaintext->data, TOMPZ(c));
_gnutls_mpi_release(&c);
plaintext->size = length;
@@ -731,7 +729,7 @@ _wrap_nettle_pk_decrypt(gnutls_pk_algorithm_t algo,
ret = 0;
- cleanup:
+ cleanup:
if (ret < 0) {
gnutls_free(plaintext->data);
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
@@ -749,7 +747,7 @@ _wrap_nettle_pk_decrypt(gnutls_pk_algorithm_t algo,
static int
_wrap_nettle_pk_decrypt2(gnutls_pk_algorithm_t algo,
const gnutls_datum_t * ciphertext,
- unsigned char * plaintext,
+ unsigned char *plaintext,
size_t plaintext_size,
const gnutls_pk_params_st * pk_params)
{
@@ -790,7 +788,7 @@ _wrap_nettle_pk_decrypt2(gnutls_pk_algorithm_t algo,
else
random_func = rnd_nonce_func;
ret = rsa_sec_decrypt(&pub, &priv, NULL, random_func,
- plaintext_size, plaintext, TOMPZ(c));
+ plaintext_size, plaintext, TOMPZ(c));
/* The decrypt operation is infallible; treat the approved
* operation as complete at this point, regardless of any
@@ -826,17 +824,13 @@ static int
_rsa_pss_sign_digest_tr(gnutls_digest_algorithm_t dig,
const struct rsa_public_key *pub,
const struct rsa_private_key *priv,
- void *rnd_ctx, nettle_random_func *rnd_func,
- size_t salt_size,
- const uint8_t *digest,
- mpz_t s)
+ void *rnd_ctx, nettle_random_func * rnd_func,
+ size_t salt_size, const uint8_t * digest, mpz_t s)
{
int (*sign_func)(const struct rsa_public_key *,
- const struct rsa_private_key *,
- void *, nettle_random_func *,
- size_t, const uint8_t *,
- const uint8_t *,
- mpz_t);
+ const struct rsa_private_key *,
+ void *, nettle_random_func *,
+ size_t, const uint8_t *, const uint8_t *, mpz_t);
uint8_t *salt = NULL;
size_t hash_size;
int ret;
@@ -860,7 +854,8 @@ _rsa_pss_sign_digest_tr(gnutls_digest_algorithm_t dig,
}
/* This is also checked in pss_encode_mgf1, but error out earlier. */
- CHECK_INVALID_RSA_PSS_PARAMS(hash_size, salt_size, pub->size, GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
+ CHECK_INVALID_RSA_PSS_PARAMS(hash_size, salt_size, pub->size,
+ GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
if (salt_size > 0) {
salt = gnutls_malloc(salt_size);
@@ -887,8 +882,7 @@ _rsa_pss_sign_digest_tr(gnutls_digest_algorithm_t dig,
return ret;
}
-static inline gnutls_ecc_curve_t
-get_eddsa_curve(gnutls_pk_algorithm_t algo)
+static inline gnutls_ecc_curve_t get_eddsa_curve(gnutls_pk_algorithm_t algo)
{
switch (algo) {
case GNUTLS_PK_EDDSA_ED25519:
@@ -900,8 +894,7 @@ get_eddsa_curve(gnutls_pk_algorithm_t algo)
}
}
-static inline gnutls_ecc_curve_t
-get_ecdh_curve(gnutls_pk_algorithm_t algo)
+static inline gnutls_ecc_curve_t get_ecdh_curve(gnutls_pk_algorithm_t algo)
{
switch (algo) {
case GNUTLS_PK_ECDH_X25519:
@@ -915,10 +908,9 @@ get_ecdh_curve(gnutls_pk_algorithm_t algo)
static inline int
eddsa_sign(gnutls_pk_algorithm_t algo,
- const uint8_t *pub,
- const uint8_t *priv,
- size_t length, const uint8_t *msg,
- uint8_t *signature)
+ const uint8_t * pub,
+ const uint8_t * priv,
+ size_t length, const uint8_t * msg, uint8_t * signature)
{
switch (algo) {
case GNUTLS_PK_EDDSA_ED25519:
@@ -928,7 +920,8 @@ eddsa_sign(gnutls_pk_algorithm_t algo,
ed448_shake256_sign(pub, priv, length, msg, signature);
return 0;
default:
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
+ return
+ gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
}
}
@@ -980,13 +973,16 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
not_approved = true;
if (unlikely(get_eddsa_curve(algo) != pk_params->curve)) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
e = _gnutls_ecc_curve_get_params(pk_params->curve);
if (e == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
@@ -998,8 +994,10 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
signature->size = e->sig_size;
- if (pk_params->raw_pub.size != e->size || pk_params->raw_priv.size != e->size) {
- ret = gnutls_assert_val(GNUTLS_E_PK_SIGN_FAILED);
+ if (pk_params->raw_pub.size != e->size
+ || pk_params->raw_priv.size != e->size) {
+ ret =
+ gnutls_assert_val(GNUTLS_E_PK_SIGN_FAILED);
goto cleanup;
}
@@ -1027,13 +1025,13 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
curve = get_supported_gost_curve(pk_params->curve);
if (curve == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
- ret =
- _ecc_params_to_privkey(pk_params, &priv,
- curve);
+ ret = _ecc_params_to_privkey(pk_params, &priv, curve);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1041,13 +1039,15 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
/* This call will return a valid MAC entry and
* getters will check that is not null anyway. */
- me = hash_to_entry(_gnutls_gost_digest(pk_params->algo));
+ me = hash_to_entry(_gnutls_gost_digest
+ (pk_params->algo));
if (_gnutls_mac_get_algo_len(me) != vdata->size) {
_gnutls_debug_log
("Security level of algorithm requires hash %s(%zd)\n",
_gnutls_mac_get_name(me),
_gnutls_mac_get_algo_len(me));
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
@@ -1058,7 +1058,8 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
ret =
_gnutls_encode_gost_rs(signature, &sig.r, &sig.s,
- (ecc_bit_size(curve) + 7) / 8);
+ (ecc_bit_size(curve) +
+ 7) / 8);
dsa_signature_clear(&sig);
ecc_scalar_zclear(&priv);
@@ -1082,7 +1083,9 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
curve = get_supported_nist_curve(curve_id);
if (curve == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
@@ -1091,9 +1094,7 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
not_approved = true;
}
- ret =
- _ecc_params_to_privkey(pk_params, &priv,
- curve);
+ ret = _ecc_params_to_privkey(pk_params, &priv, curve);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1101,8 +1102,7 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
dsa_signature_init(&sig);
- me = _gnutls_dsa_q_to_hash(pk_params,
- &hash_len);
+ me = _gnutls_dsa_q_to_hash(pk_params, &hash_len);
if (hash_len > vdata->size) {
gnutls_assert();
@@ -1125,13 +1125,16 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
mpz_init(k);
if (_gnutls_get_lib_state() == LIB_STATE_SELFTEST ||
- (sign_params->flags & GNUTLS_PK_FLAG_REPRODUCIBLE)) {
- ret = _gnutls_ecdsa_compute_k(k,
- curve_id,
- pk_params->params[ECC_K],
- DIG_TO_MAC(sign_params->dsa_dig),
- vdata->data,
- vdata->size);
+ (sign_params->flags & GNUTLS_PK_FLAG_REPRODUCIBLE))
+ {
+ ret =
+ _gnutls_ecdsa_compute_k(k, curve_id,
+ pk_params->params
+ [ECC_K],
+ DIG_TO_MAC
+ (sign_params->dsa_dig),
+ vdata->data,
+ vdata->size);
if (ret < 0)
goto ecdsa_cleanup;
random_ctx = &k;
@@ -1149,9 +1152,7 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
goto ecdsa_cleanup;
}
- ret =
- _gnutls_encode_ber_rs(signature, &sig.r,
- &sig.s);
+ ret = _gnutls_encode_ber_rs(signature, &sig.r, &sig.s);
ecdsa_cleanup:
dsa_signature_clear(&sig);
@@ -1185,30 +1186,31 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
dsa_signature_init(&sig);
- me = _gnutls_dsa_q_to_hash(pk_params,
- &hash_len);
+ me = _gnutls_dsa_q_to_hash(pk_params, &hash_len);
if (hash_len > vdata->size) {
gnutls_assert();
_gnutls_debug_log
("Security level of algorithm requires hash %s(%d) or better (have: %d)\n",
- _gnutls_mac_get_name(me), hash_len, (int)vdata->size);
+ _gnutls_mac_get_name(me), hash_len,
+ (int)vdata->size);
hash_len = vdata->size;
}
mpz_init(k);
if (_gnutls_get_lib_state() == LIB_STATE_SELFTEST ||
- (sign_params->flags & GNUTLS_PK_FLAG_REPRODUCIBLE)) {
- ret = _gnutls_dsa_compute_k(k,
- pub.q,
- TOMPZ(priv),
- DIG_TO_MAC(sign_params->dsa_dig),
- vdata->data,
- vdata->size);
+ (sign_params->flags & GNUTLS_PK_FLAG_REPRODUCIBLE))
+ {
+ ret =
+ _gnutls_dsa_compute_k(k, pub.q, TOMPZ(priv),
+ DIG_TO_MAC
+ (sign_params->dsa_dig),
+ vdata->data,
+ vdata->size);
if (ret < 0)
goto dsa_fail;
/* cancel-out dsa_sign's addition of 1 to random data */
- mpz_sub_ui (k, k, 1);
+ mpz_sub_ui(k, k, 1);
random_ctx = &k;
random_func = rnd_mpz_func;
} else {
@@ -1224,9 +1226,7 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
goto dsa_fail;
}
- ret =
- _gnutls_encode_ber_rs(signature, &sig.r,
- &sig.s);
+ ret = _gnutls_encode_ber_rs(signature, &sig.r, &sig.s);
dsa_fail:
dsa_signature_clear(&sig);
@@ -1276,11 +1276,9 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
goto rsa_fail;
}
- ret =
- _gnutls_mpi_dprint_size(s, signature,
- pub.size);
+ ret = _gnutls_mpi_dprint_size(s, signature, pub.size);
- rsa_fail:
+ rsa_fail:
mpz_clear(s);
if (ret < 0) {
@@ -1321,7 +1319,8 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
/* According to FIPS 186-5 5.4, the salt length must be
* in the range between 0 and the hash length inclusive.
*/
- if (sign_params->salt_size > _gnutls_mac_get_algo_len(me)) {
+ if (sign_params->salt_size >
+ _gnutls_mac_get_algo_len(me)) {
not_approved = true;
}
@@ -1337,11 +1336,9 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
goto rsa_pss_fail;
}
- ret =
- _gnutls_mpi_dprint_size(s, signature,
- pub.size);
+ ret = _gnutls_mpi_dprint_size(s, signature, pub.size);
- rsa_pss_fail:
+ rsa_pss_fail:
mpz_clear(s);
if (ret < 0) {
@@ -1359,7 +1356,7 @@ _wrap_nettle_pk_sign(gnutls_pk_algorithm_t algo,
ret = 0;
- cleanup:
+ cleanup:
if (ret < 0) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
} else if (not_approved) {
@@ -1376,14 +1373,11 @@ static int
_rsa_pss_verify_digest(gnutls_digest_algorithm_t dig,
const struct rsa_public_key *pub,
size_t salt_size,
- const uint8_t *digest,
- size_t digest_size,
- const mpz_t s)
+ const uint8_t * digest,
+ size_t digest_size, const mpz_t s)
{
- int (*verify_func) (const struct rsa_public_key *,
- size_t,
- const uint8_t *,
- const mpz_t);
+ int (*verify_func)(const struct rsa_public_key *,
+ size_t, const uint8_t *, const mpz_t);
size_t hash_size;
switch (dig) {
@@ -1414,9 +1408,8 @@ _rsa_pss_verify_digest(gnutls_digest_algorithm_t dig,
static inline int
eddsa_verify(gnutls_pk_algorithm_t algo,
- const uint8_t *pub,
- size_t length, const uint8_t *msg,
- const uint8_t *signature)
+ const uint8_t * pub,
+ size_t length, const uint8_t * msg, const uint8_t * signature)
{
int ret;
@@ -1432,7 +1425,8 @@ eddsa_verify(gnutls_pk_algorithm_t algo,
return gnutls_assert_val(GNUTLS_E_PK_SIG_VERIFY_FAILED);
return 0;
default:
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
+ return
+ gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
}
}
@@ -1466,23 +1460,30 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
not_approved = true;
if (unlikely(get_eddsa_curve(algo) != pk_params->curve)) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
e = _gnutls_ecc_curve_get_params(pk_params->curve);
if (e == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
if (signature->size != e->sig_size) {
- ret = gnutls_assert_val(GNUTLS_E_PK_SIG_VERIFY_FAILED);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_PK_SIG_VERIFY_FAILED);
goto cleanup;
}
if (pk_params->raw_pub.size != e->size) {
- ret = gnutls_assert_val(GNUTLS_E_PK_SIGN_FAILED);
+ ret =
+ gnutls_assert_val(GNUTLS_E_PK_SIGN_FAILED);
goto cleanup;
}
@@ -1507,28 +1508,31 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
curve = get_supported_gost_curve(pk_params->curve);
if (curve == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
/* This call will return a valid MAC entry and
* getters will check that is not null anyway. */
- me = hash_to_entry(_gnutls_gost_digest(pk_params->algo));
+ me = hash_to_entry(_gnutls_gost_digest
+ (pk_params->algo));
if (_gnutls_mac_get_algo_len(me) != vdata->size) {
- ret = gnutls_assert_val(GNUTLS_E_PK_SIG_VERIFY_FAILED);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_PK_SIG_VERIFY_FAILED);
goto cleanup;
}
ret =
- _gnutls_decode_gost_rs(signature, &tmp[0],
- &tmp[1]);
+ _gnutls_decode_gost_rs(signature, &tmp[0], &tmp[1]);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret =
- _gost_params_to_pubkey(pk_params, &pub, curve);
+ ret = _gost_params_to_pubkey(pk_params, &pub, curve);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1537,7 +1541,9 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
memcpy(sig.r, tmp[0], SIZEOF_MPZT);
memcpy(sig.s, tmp[1], SIZEOF_MPZT);
- ret = gostdsa_verify(&pub, vdata->size, vdata->data, &sig);
+ ret =
+ gostdsa_verify(&pub, vdata->size, vdata->data,
+ &sig);
if (ret == 0) {
gnutls_assert();
ret = GNUTLS_E_PK_SIG_VERIFY_FAILED;
@@ -1557,20 +1563,20 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
curve = get_supported_nist_curve(curve_id);
if (curve == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
ret =
- _gnutls_decode_ber_rs(signature, &tmp[0],
- &tmp[1]);
+ _gnutls_decode_ber_rs(signature, &tmp[0], &tmp[1]);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret =
- _ecc_params_to_pubkey(pk_params, &pub, curve);
+ ret = _ecc_params_to_pubkey(pk_params, &pub, curve);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1597,9 +1603,7 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
not_approved = true;
}
- ret =
- ecdsa_verify(&pub, hash_len, vdata->data,
- &sig);
+ ret = ecdsa_verify(&pub, hash_len, vdata->data, &sig);
if (ret == 0) {
gnutls_assert();
ret = GNUTLS_E_PK_SIG_VERIFY_FAILED;
@@ -1620,8 +1624,7 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
not_approved = true;
ret =
- _gnutls_decode_ber_rs(signature, &tmp[0],
- &tmp[1]);
+ _gnutls_decode_ber_rs(signature, &tmp[0], &tmp[1]);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1639,7 +1642,8 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
hash_len = vdata->size;
ret =
- dsa_verify(&pub, TOMPZ(y), hash_len, vdata->data, &sig);
+ dsa_verify(&pub, TOMPZ(y), hash_len, vdata->data,
+ &sig);
if (ret == 0) {
gnutls_assert();
ret = GNUTLS_E_PK_SIG_VERIFY_FAILED;
@@ -1676,13 +1680,15 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
}
if (signature->size != pub.size) {
- ret = gnutls_assert_val(GNUTLS_E_PK_SIG_VERIFY_FAILED);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_PK_SIG_VERIFY_FAILED);
goto cleanup;
}
ret =
_gnutls_mpi_init_scan_nz(&tmp[0], signature->data,
- signature->size);
+ signature->size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1707,7 +1713,9 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
if ((sign_params->flags &
GNUTLS_PK_FLAG_RSA_PSS_FIXED_SALT_LENGTH) &&
sign_params->salt_size != vdata->size) {
- ret = gnutls_assert_val(GNUTLS_E_PK_SIG_VERIFY_FAILED);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_PK_SIG_VERIFY_FAILED);
goto cleanup;
}
@@ -1728,7 +1736,9 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
}
if (signature->size != pub.size) {
- ret = gnutls_assert_val(GNUTLS_E_PK_SIG_VERIFY_FAILED);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_PK_SIG_VERIFY_FAILED);
goto cleanup;
}
@@ -1760,7 +1770,7 @@ _wrap_nettle_pk_verify(gnutls_pk_algorithm_t algo,
goto cleanup;
}
- cleanup:
+ cleanup:
if (ret < 0) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
} else if (not_approved) {
@@ -1802,30 +1812,27 @@ static inline const char *get_supported_nist_curve_order(int curve)
const char *order;
} orders[] = {
#ifdef ENABLE_NON_SUITEB_CURVES
- { GNUTLS_ECC_CURVE_SECP192R1,
- "ffffffffffffffffffffffff99def836"
- "146bc9b1b4d22831" },
- { GNUTLS_ECC_CURVE_SECP224R1,
- "ffffffffffffffffffffffffffff16a2"
- "e0b8f03e13dd29455c5c2a3d" },
+ {GNUTLS_ECC_CURVE_SECP192R1,
+ "ffffffffffffffffffffffff99def836" "146bc9b1b4d22831"},
+ {GNUTLS_ECC_CURVE_SECP224R1,
+ "ffffffffffffffffffffffffffff16a2" "e0b8f03e13dd29455c5c2a3d"},
#endif
- { GNUTLS_ECC_CURVE_SECP256R1,
- "ffffffff00000000ffffffffffffffff"
- "bce6faada7179e84f3b9cac2fc632551" },
- { GNUTLS_ECC_CURVE_SECP384R1,
- "ffffffffffffffffffffffffffffffff"
- "ffffffffffffffffc7634d81f4372ddf"
- "581a0db248b0a77aecec196accc52973" },
- { GNUTLS_ECC_CURVE_SECP521R1,
- "1fffffffffffffffffffffffffffffff"
- "ffffffffffffffffffffffffffffffff"
- "ffa51868783bf2f966b7fcc0148f709a"
- "5d03bb5c9b8899c47aebb6fb71e91386"
- "409" },
+ {GNUTLS_ECC_CURVE_SECP256R1,
+ "ffffffff00000000ffffffffffffffff"
+ "bce6faada7179e84f3b9cac2fc632551"},
+ {GNUTLS_ECC_CURVE_SECP384R1,
+ "ffffffffffffffffffffffffffffffff"
+ "ffffffffffffffffc7634d81f4372ddf"
+ "581a0db248b0a77aecec196accc52973"},
+ {GNUTLS_ECC_CURVE_SECP521R1,
+ "1fffffffffffffffffffffffffffffff"
+ "ffffffffffffffffffffffffffffffff"
+ "ffa51868783bf2f966b7fcc0148f709a"
+ "5d03bb5c9b8899c47aebb6fb71e91386" "409"},
};
size_t i;
- for (i = 0; i < sizeof(orders)/sizeof(orders[0]); i++) {
+ for (i = 0; i < sizeof(orders) / sizeof(orders[0]); i++) {
if (orders[i].curve == curve)
return orders[i].order;
}
@@ -1839,30 +1846,28 @@ static inline const char *get_supported_nist_curve_modulus(int curve)
const char *order;
} orders[] = {
#ifdef ENABLE_NON_SUITEB_CURVES
- { GNUTLS_ECC_CURVE_SECP192R1,
- "fffffffffffffffffffffffffffffffe"
- "ffffffffffffffff" },
- { GNUTLS_ECC_CURVE_SECP224R1,
- "ffffffffffffffffffffffffffffffff"
- "000000000000000000000001" },
+ {GNUTLS_ECC_CURVE_SECP192R1,
+ "fffffffffffffffffffffffffffffffe" "ffffffffffffffff"},
+ {GNUTLS_ECC_CURVE_SECP224R1,
+ "ffffffffffffffffffffffffffffffff" "000000000000000000000001"},
#endif
- { GNUTLS_ECC_CURVE_SECP256R1,
- "ffffffff000000010000000000000000"
- "00000000ffffffffffffffffffffffff" },
- { GNUTLS_ECC_CURVE_SECP384R1,
- "ffffffffffffffffffffffffffffffff"
- "fffffffffffffffffffffffffffffffe"
- "ffffffff0000000000000000ffffffff" },
- { GNUTLS_ECC_CURVE_SECP521R1,
- "1ff"
- "ffffffffffffffffffffffffffffffff"
- "ffffffffffffffffffffffffffffffff"
- "ffffffffffffffffffffffffffffffff"
- "ffffffffffffffffffffffffffffffff" },
+ {GNUTLS_ECC_CURVE_SECP256R1,
+ "ffffffff000000010000000000000000"
+ "00000000ffffffffffffffffffffffff"},
+ {GNUTLS_ECC_CURVE_SECP384R1,
+ "ffffffffffffffffffffffffffffffff"
+ "fffffffffffffffffffffffffffffffe"
+ "ffffffff0000000000000000ffffffff"},
+ {GNUTLS_ECC_CURVE_SECP521R1,
+ "1ff"
+ "ffffffffffffffffffffffffffffffff"
+ "ffffffffffffffffffffffffffffffff"
+ "ffffffffffffffffffffffffffffffff"
+ "ffffffffffffffffffffffffffffffff"},
};
size_t i;
- for (i = 0; i < sizeof(orders)/sizeof(orders[0]); i++) {
+ for (i = 0; i < sizeof(orders) / sizeof(orders[0]); i++) {
if (orders[i].curve == curve)
return orders[i].order;
}
@@ -1888,14 +1893,14 @@ static inline const struct ecc_curve *get_supported_gost_curve(int curve)
static int _wrap_nettle_pk_curve_exists(gnutls_ecc_curve_t curve)
{
switch (curve) {
- case GNUTLS_ECC_CURVE_ED25519:
- case GNUTLS_ECC_CURVE_X25519:
- case GNUTLS_ECC_CURVE_ED448:
- case GNUTLS_ECC_CURVE_X448:
- return 1;
- default:
- return ((get_supported_nist_curve(curve)!=NULL ||
- get_supported_gost_curve(curve)!=NULL)?1:0);
+ case GNUTLS_ECC_CURVE_ED25519:
+ case GNUTLS_ECC_CURVE_X25519:
+ case GNUTLS_ECC_CURVE_ED448:
+ case GNUTLS_ECC_CURVE_X448:
+ return 1;
+ default:
+ return ((get_supported_nist_curve(curve) != NULL ||
+ get_supported_gost_curve(curve) != NULL) ? 1 : 0);
}
}
@@ -1990,7 +1995,7 @@ static int _wrap_nettle_pk_sign_exists(gnutls_sign_algorithm_t sign)
*/
static int
wrap_nettle_pk_generate_params(gnutls_pk_algorithm_t algo,
- unsigned int level /*bits or curve*/ ,
+ unsigned int level /*bits or curve */ ,
gnutls_pk_params_st * params)
{
int ret;
@@ -2014,19 +2019,24 @@ wrap_nettle_pk_generate_params(gnutls_pk_algorithm_t algo,
q_bits = GNUTLS_BITS_TO_SUBGROUP(level);
level = GNUTLS_BITS_TO_GROUP(level);
} else {
- q_bits = _gnutls_pk_bits_to_subgroup_bits(level);
+ q_bits =
+ _gnutls_pk_bits_to_subgroup_bits(level);
}
if (q_bits == 0)
- return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_ILLEGAL_PARAMETER);
- if (_gnutls_fips_mode_enabled() != 0 || params->pkflags & GNUTLS_PK_FLAG_PROVABLE) {
- if (algo==GNUTLS_PK_DSA)
+ if (_gnutls_fips_mode_enabled() != 0
+ || params->pkflags & GNUTLS_PK_FLAG_PROVABLE) {
+ if (algo == GNUTLS_PK_DSA)
index = 1;
else
index = 2;
- if (params->palgo != 0 && params->palgo != GNUTLS_DIG_SHA384) {
+ if (params->palgo != 0
+ && params->palgo != GNUTLS_DIG_SHA384) {
ret = GNUTLS_E_INVALID_REQUEST;
goto dsa_fail;
}
@@ -2035,14 +2045,20 @@ wrap_nettle_pk_generate_params(gnutls_pk_algorithm_t algo,
if (params->seed_size) {
ret =
- _dsa_generate_dss_pqg(&pub, &cert,
- index, params->seed_size, params->seed,
- NULL, NULL, level, q_bits);
+ _dsa_generate_dss_pqg(&pub, &cert,
+ index,
+ params->seed_size,
+ params->seed,
+ NULL, NULL,
+ level,
+ q_bits);
} else {
ret =
- dsa_generate_dss_pqg(&pub, &cert,
- index, NULL, rnd_tmpkey_func,
- NULL, NULL, level, q_bits);
+ dsa_generate_dss_pqg(&pub, &cert,
+ index, NULL,
+ rnd_tmpkey_func,
+ NULL, NULL,
+ level, q_bits);
}
if (ret != 1 || HAVE_LIB_ERROR()) {
gnutls_assert();
@@ -2050,9 +2066,12 @@ wrap_nettle_pk_generate_params(gnutls_pk_algorithm_t algo,
goto dsa_fail;
}
- if (cert.seed_length && cert.seed_length < sizeof(params->seed)) {
+ if (cert.seed_length
+ && cert.seed_length <
+ sizeof(params->seed)) {
params->seed_size = cert.seed_length;
- memcpy(params->seed, cert.seed, cert.seed_length);
+ memcpy(params->seed, cert.seed,
+ cert.seed_length);
}
/* verify the generated parameters */
@@ -2066,8 +2085,10 @@ wrap_nettle_pk_generate_params(gnutls_pk_algorithm_t algo,
if (q_bits < 160)
q_bits = 160;
- ret = dsa_generate_params(&pub, NULL, rnd_tmpkey_func,
- NULL, NULL, level, q_bits);
+ ret =
+ dsa_generate_params(&pub, NULL,
+ rnd_tmpkey_func, NULL,
+ NULL, level, q_bits);
if (ret != 1 || HAVE_LIB_ERROR()) {
gnutls_assert();
ret = GNUTLS_E_PK_GENERATION_ERROR;
@@ -2077,8 +2098,11 @@ wrap_nettle_pk_generate_params(gnutls_pk_algorithm_t algo,
params->params_nr = 0;
- ret = _gnutls_mpi_init_multi(&params->params[DSA_P], &params->params[DSA_Q],
- &params->params[DSA_G], NULL);
+ ret =
+ _gnutls_mpi_init_multi(&params->params[DSA_P],
+ &params->params[DSA_Q],
+ &params->params[DSA_G],
+ NULL);
if (ret < 0) {
gnutls_assert();
goto dsa_fail;
@@ -2091,7 +2115,7 @@ wrap_nettle_pk_generate_params(gnutls_pk_algorithm_t algo,
ret = 0;
- dsa_fail:
+ dsa_fail:
dsa_params_clear(&pub);
if (ret < 0)
@@ -2120,7 +2144,7 @@ wrap_nettle_pk_generate_params(gnutls_pk_algorithm_t algo,
FAIL_IF_LIB_ERROR;
return 0;
- fail:
+ fail:
for (i = 0; i < params->params_nr; i++) {
_gnutls_mpi_release(&params->params[i]);
@@ -2133,25 +2157,26 @@ wrap_nettle_pk_generate_params(gnutls_pk_algorithm_t algo,
#ifdef ENABLE_FIPS140
int _gnutls_dh_generate_key(gnutls_dh_params_t dh_params,
- gnutls_datum_t *priv_key, gnutls_datum_t *pub_key);
+ gnutls_datum_t * priv_key,
+ gnutls_datum_t * pub_key);
int _gnutls_dh_compute_key(gnutls_dh_params_t dh_params,
- const gnutls_datum_t *priv_key, const gnutls_datum_t *pub_key,
- const gnutls_datum_t *peer_key, gnutls_datum_t *Z);
+ const gnutls_datum_t * priv_key,
+ const gnutls_datum_t * pub_key,
+ const gnutls_datum_t * peer_key, gnutls_datum_t * Z);
int _gnutls_ecdh_compute_key(gnutls_ecc_curve_t curve,
- const gnutls_datum_t *x, const gnutls_datum_t *y,
- const gnutls_datum_t *k,
- const gnutls_datum_t *peer_x, const gnutls_datum_t *peer_y,
- gnutls_datum_t *Z);
+ const gnutls_datum_t * x, const gnutls_datum_t * y,
+ const gnutls_datum_t * k,
+ const gnutls_datum_t * peer_x,
+ const gnutls_datum_t * peer_y, gnutls_datum_t * Z);
int _gnutls_ecdh_generate_key(gnutls_ecc_curve_t curve,
- gnutls_datum_t *x, gnutls_datum_t *y,
- gnutls_datum_t *k);
-
+ gnutls_datum_t * x, gnutls_datum_t * y,
+ gnutls_datum_t * k);
int _gnutls_dh_generate_key(gnutls_dh_params_t dh_params,
- gnutls_datum_t *priv_key, gnutls_datum_t *pub_key)
+ gnutls_datum_t * priv_key, gnutls_datum_t * pub_key)
{
gnutls_pk_params_st params;
int ret;
@@ -2166,20 +2191,20 @@ int _gnutls_dh_generate_key(gnutls_dh_params_t dh_params,
priv_key->data = NULL;
pub_key->data = NULL;
- ret = _gnutls_pk_generate_keys(GNUTLS_PK_DH, dh_params->q_bits, &params, 0);
+ ret =
+ _gnutls_pk_generate_keys(GNUTLS_PK_DH, dh_params->q_bits, &params,
+ 0);
if (ret < 0) {
return gnutls_assert_val(ret);
}
- ret =
- _gnutls_mpi_dprint_lz(params.params[DH_X], priv_key);
+ ret = _gnutls_mpi_dprint_lz(params.params[DH_X], priv_key);
if (ret < 0) {
gnutls_assert();
goto fail;
}
- ret =
- _gnutls_mpi_dprint_lz(params.params[DH_Y], pub_key);
+ ret = _gnutls_mpi_dprint_lz(params.params[DH_Y], pub_key);
if (ret < 0) {
gnutls_assert();
goto fail;
@@ -2199,8 +2224,9 @@ int _gnutls_dh_generate_key(gnutls_dh_params_t dh_params,
/* Note that the value of Z will have the leading bytes stripped if they are zero -
* which follows the TLS approach. */
int _gnutls_dh_compute_key(gnutls_dh_params_t dh_params,
- const gnutls_datum_t *priv_key, const gnutls_datum_t *pub_key,
- const gnutls_datum_t *peer_key, gnutls_datum_t *Z)
+ const gnutls_datum_t * priv_key,
+ const gnutls_datum_t * pub_key,
+ const gnutls_datum_t * peer_key, gnutls_datum_t * Z)
{
gnutls_pk_params_st pub, priv;
int ret;
@@ -2214,10 +2240,8 @@ int _gnutls_dh_compute_key(gnutls_dh_params_t dh_params,
priv.algo = GNUTLS_PK_DH;
if (_gnutls_mpi_init_scan_nz
- (&pub.params[DH_Y], peer_key->data,
- peer_key->size) != 0) {
- ret =
- gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+ (&pub.params[DH_Y], peer_key->data, peer_key->size) != 0) {
+ ret = gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
goto cleanup;
}
@@ -2227,10 +2251,8 @@ int _gnutls_dh_compute_key(gnutls_dh_params_t dh_params,
priv.params[DH_Q] = _gnutls_mpi_copy(dh_params->params[2]);
if (_gnutls_mpi_init_scan_nz
- (&priv.params[DH_X], priv_key->data,
- priv_key->size) != 0) {
- ret =
- gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+ (&priv.params[DH_X], priv_key->data, priv_key->size) != 0) {
+ ret = gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
goto cleanup;
}
@@ -2252,8 +2274,8 @@ int _gnutls_dh_compute_key(gnutls_dh_params_t dh_params,
}
int _gnutls_ecdh_generate_key(gnutls_ecc_curve_t curve,
- gnutls_datum_t *x, gnutls_datum_t *y,
- gnutls_datum_t *k)
+ gnutls_datum_t * x, gnutls_datum_t * y,
+ gnutls_datum_t * k)
{
gnutls_pk_params_st params;
int ret;
@@ -2272,22 +2294,19 @@ int _gnutls_ecdh_generate_key(gnutls_ecc_curve_t curve,
return gnutls_assert_val(ret);
}
- ret =
- _gnutls_mpi_dprint_lz(params.params[ECC_X], x);
+ ret = _gnutls_mpi_dprint_lz(params.params[ECC_X], x);
if (ret < 0) {
gnutls_assert();
goto fail;
}
- ret =
- _gnutls_mpi_dprint_lz(params.params[ECC_Y], y);
+ ret = _gnutls_mpi_dprint_lz(params.params[ECC_Y], y);
if (ret < 0) {
gnutls_assert();
goto fail;
}
- ret =
- _gnutls_mpi_dprint_lz(params.params[ECC_K], k);
+ ret = _gnutls_mpi_dprint_lz(params.params[ECC_K], k);
if (ret < 0) {
gnutls_assert();
goto fail;
@@ -2306,10 +2325,10 @@ int _gnutls_ecdh_generate_key(gnutls_ecc_curve_t curve,
}
int _gnutls_ecdh_compute_key(gnutls_ecc_curve_t curve,
- const gnutls_datum_t *x, const gnutls_datum_t *y,
- const gnutls_datum_t *k,
- const gnutls_datum_t *peer_x, const gnutls_datum_t *peer_y,
- gnutls_datum_t *Z)
+ const gnutls_datum_t * x, const gnutls_datum_t * y,
+ const gnutls_datum_t * k,
+ const gnutls_datum_t * peer_x,
+ const gnutls_datum_t * peer_y, gnutls_datum_t * Z)
{
gnutls_pk_params_st pub, priv;
int ret;
@@ -2325,42 +2344,32 @@ int _gnutls_ecdh_compute_key(gnutls_ecc_curve_t curve,
priv.curve = curve;
if (_gnutls_mpi_init_scan_nz
- (&pub.params[ECC_Y], peer_y->data,
- peer_y->size) != 0) {
- ret =
- gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+ (&pub.params[ECC_Y], peer_y->data, peer_y->size) != 0) {
+ ret = gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
goto cleanup;
}
if (_gnutls_mpi_init_scan_nz
- (&pub.params[ECC_X], peer_x->data,
- peer_x->size) != 0) {
- ret =
- gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+ (&pub.params[ECC_X], peer_x->data, peer_x->size) != 0) {
+ ret = gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
goto cleanup;
}
if (_gnutls_mpi_init_scan_nz
- (&priv.params[ECC_Y], y->data,
- y->size) != 0) {
- ret =
- gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+ (&priv.params[ECC_Y], y->data, y->size) != 0) {
+ ret = gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
goto cleanup;
}
if (_gnutls_mpi_init_scan_nz
- (&priv.params[ECC_X], x->data,
- x->size) != 0) {
- ret =
- gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+ (&priv.params[ECC_X], x->data, x->size) != 0) {
+ ret = gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
goto cleanup;
}
if (_gnutls_mpi_init_scan_nz
- (&priv.params[ECC_K], k->data,
- k->size) != 0) {
- ret =
- gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+ (&priv.params[ECC_K], k->data, k->size) != 0) {
+ ret = gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
goto cleanup;
}
@@ -2381,16 +2390,19 @@ int _gnutls_ecdh_compute_key(gnutls_ecc_curve_t curve,
return ret;
}
-static int pct_test(gnutls_pk_algorithm_t algo, const gnutls_pk_params_st* params)
+static int pct_test(gnutls_pk_algorithm_t algo,
+ const gnutls_pk_params_st * params)
{
int ret;
- gnutls_datum_t sig = {NULL, 0};
+ gnutls_datum_t sig = { NULL, 0 };
const char const_data[20] = "onetwothreefourfive";
const char const_data_sha256[32] = "onetwothreefourfivesixseveneight";
- const char const_data_sha384[48] = "onetwothreefourfivesixseveneightnineteneleventwe";
- const char const_data_sha512[64] = "onetwothreefourfivesixseveneightnineteneleventwelvethirteenfourt";
- gnutls_datum_t ddata, tmp = {NULL,0};
- char* gen_data = NULL;
+ const char const_data_sha384[48] =
+ "onetwothreefourfivesixseveneightnineteneleventwe";
+ const char const_data_sha512[64] =
+ "onetwothreefourfivesixseveneightnineteneleventwelvethirteenfourt";
+ gnutls_datum_t ddata, tmp = { NULL, 0 };
+ char *gen_data = NULL;
gnutls_x509_spki_st spki;
gnutls_fips140_context_t context;
@@ -2405,13 +2417,13 @@ static int pct_test(gnutls_pk_algorithm_t algo, const gnutls_pk_params_st* param
gen_data = gnutls_malloc(hash_len);
gnutls_rnd(GNUTLS_RND_NONCE, gen_data, hash_len);
- ddata.data = (void*)gen_data;
+ ddata.data = (void *)gen_data;
ddata.size = hash_len;
} else if (algo == GNUTLS_PK_GOST_01 || algo == GNUTLS_PK_GOST_12_256) {
- ddata.data = (void*)const_data_sha256;
+ ddata.data = (void *)const_data_sha256;
ddata.size = sizeof(const_data_sha256);
} else if (algo == GNUTLS_PK_GOST_12_512) {
- ddata.data = (void*)const_data_sha512;
+ ddata.data = (void *)const_data_sha512;
ddata.size = sizeof(const_data_sha512);
} else if (algo == GNUTLS_PK_RSA_PSS) {
if (spki.rsa_pss_dig == GNUTLS_DIG_UNKNOWN)
@@ -2419,15 +2431,15 @@ static int pct_test(gnutls_pk_algorithm_t algo, const gnutls_pk_params_st* param
switch (spki.rsa_pss_dig) {
case GNUTLS_DIG_SHA256:
- ddata.data = (void*)const_data_sha256;
+ ddata.data = (void *)const_data_sha256;
ddata.size = sizeof(const_data_sha256);
break;
case GNUTLS_DIG_SHA384:
- ddata.data = (void*)const_data_sha384;
+ ddata.data = (void *)const_data_sha384;
ddata.size = sizeof(const_data_sha384);
break;
case GNUTLS_DIG_SHA512:
- ddata.data = (void*)const_data_sha512;
+ ddata.data = (void *)const_data_sha512;
ddata.size = sizeof(const_data_sha512);
break;
default:
@@ -2435,7 +2447,7 @@ static int pct_test(gnutls_pk_algorithm_t algo, const gnutls_pk_params_st* param
goto cleanup;
}
} else {
- ddata.data = (void*)const_data;
+ ddata.data = (void *)const_data;
ddata.size = sizeof(const_data);
}
@@ -2486,7 +2498,7 @@ static int pct_test(gnutls_pk_algorithm_t algo, const gnutls_pk_params_st* param
sig.data = NULL;
FALLTHROUGH;
- case GNUTLS_PK_EC: /* we only do keys for ECDSA */
+ case GNUTLS_PK_EC: /* we only do keys for ECDSA */
case GNUTLS_PK_EDDSA_ED25519:
case GNUTLS_PK_EDDSA_ED448:
case GNUTLS_PK_DSA:
@@ -2518,7 +2530,7 @@ static int pct_test(gnutls_pk_algorithm_t algo, const gnutls_pk_params_st* param
}
ret = 0;
-cleanup:
+ cleanup:
if (ret == GNUTLS_E_PK_GENERATION_ERROR) {
_gnutls_switch_lib_state(LIB_STATE_ERROR);
}
@@ -2531,7 +2543,7 @@ cleanup:
static inline int
eddsa_public_key(gnutls_pk_algorithm_t algo,
- uint8_t *pub, const uint8_t *priv)
+ uint8_t * pub, const uint8_t * priv)
{
switch (algo) {
case GNUTLS_PK_EDDSA_ED25519:
@@ -2541,13 +2553,13 @@ eddsa_public_key(gnutls_pk_algorithm_t algo,
ed448_shake256_public_key(pub, priv);
return 0;
default:
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
+ return
+ gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
}
}
static inline int
-edwards_curve_mul_g(gnutls_pk_algorithm_t algo,
- uint8_t *q, const uint8_t *n)
+edwards_curve_mul_g(gnutls_pk_algorithm_t algo, uint8_t * q, const uint8_t * n)
{
switch (algo) {
case GNUTLS_PK_ECDH_X25519:
@@ -2561,8 +2573,7 @@ edwards_curve_mul_g(gnutls_pk_algorithm_t algo,
}
}
-static inline int
-dh_find_q(const gnutls_pk_params_st *pk_params, mpz_t q)
+static inline int dh_find_q(const gnutls_pk_params_st * pk_params, mpz_t q)
{
gnutls_datum_t prime = { NULL, 0 };
gnutls_datum_t generator = { NULL, 0 };
@@ -2587,8 +2598,7 @@ dh_find_q(const gnutls_pk_params_st *pk_params, mpz_t q)
prime.size,
generator.data,
generator.size,
- &data_q,
- &n_q)) {
+ &data_q, &n_q)) {
ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
@@ -2613,9 +2623,9 @@ dh_find_q(const gnutls_pk_params_st *pk_params, mpz_t q)
*/
static int
wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
- unsigned int level /*bits or curve */ ,
- gnutls_pk_params_st * params,
- unsigned ephemeral /*non-zero if they are ephemeral keys */)
+ unsigned int level /*bits or curve */ ,
+ gnutls_pk_params_st * params, unsigned ephemeral
+ /*non-zero if they are ephemeral keys */ )
{
int ret;
unsigned int i;
@@ -2651,7 +2661,8 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
not_approved = true;
if (params->params[DSA_Q] == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
@@ -2662,15 +2673,18 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
ret =
dsa_generate_dss_keypair(&pub, y, x,
- NULL, rnd_func,
- NULL, NULL);
+ NULL, rnd_func,
+ NULL, NULL);
if (ret != 1 || HAVE_LIB_ERROR()) {
gnutls_assert();
ret = GNUTLS_E_PK_GENERATION_ERROR;
goto dsa_fail;
}
- ret = _gnutls_mpi_init_multi(&params->params[DSA_Y], &params->params[DSA_X], NULL);
+ ret =
+ _gnutls_mpi_init_multi(&params->params[DSA_Y],
+ &params->params[DSA_X],
+ NULL);
if (ret < 0) {
gnutls_assert();
goto dsa_fail;
@@ -2680,7 +2694,7 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
mpz_set(TOMPZ(params->params[DSA_X]), x);
params->params_nr += 2;
- dsa_fail:
+ dsa_fail:
mpz_clear(x);
mpz_clear(y);
@@ -2703,7 +2717,8 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
mpz_t ypowq;
if (algo != params->algo) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
@@ -2714,7 +2729,8 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
/* This check is for the case !ENABLE_FIPS140 */
if (algo == GNUTLS_PK_DSA && have_q == 0) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
@@ -2734,10 +2750,14 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
nettle_mpz_random(x, NULL, rnd_func, r);
mpz_add_ui(x, x, 1);
} else {
- unsigned size = mpz_sizeinbase(pub.p, 2);
+ unsigned size =
+ mpz_sizeinbase(pub.p, 2);
if (level == 0)
- level = MIN(size, DH_EXPONENT_SIZE(size));
- nettle_mpz_random_size(x, NULL, rnd_func, level);
+ level =
+ MIN(size,
+ DH_EXPONENT_SIZE(size));
+ nettle_mpz_random_size(x, NULL,
+ rnd_func, level);
if (level >= size)
mpz_mod(x, x, pub.p);
@@ -2758,7 +2778,7 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
goto dh_fail;
}
- } while(mpz_cmp_ui(y, 1) == 0);
+ } while (mpz_cmp_ui(y, 1) == 0);
#ifdef ENABLE_FIPS140
if (_gnutls_fips_mode_enabled()) {
@@ -2769,8 +2789,11 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
/* Step 1: 2 <= y <= p - 2 */
mpz_sub_ui(primesub1, pub.p, 1);
- if (mpz_cmp_ui(y, 2) < 0 || mpz_cmp(y, primesub1) >= 0) {
- ret = gnutls_assert_val(GNUTLS_E_RANDOM_FAILED);
+ if (mpz_cmp_ui(y, 2) < 0
+ || mpz_cmp(y, primesub1) >= 0) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_RANDOM_FAILED);
goto dh_fail;
}
@@ -2785,13 +2808,18 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
mpz_powm(ypowq, y, q, pub.p);
if (mpz_cmp_ui(ypowq, 1) != 0) {
- ret = gnutls_assert_val(GNUTLS_E_RANDOM_FAILED);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_RANDOM_FAILED);
goto dh_fail;
}
}
#endif
- ret = _gnutls_mpi_init_multi(&params->params[DSA_Y], &params->params[DSA_X], NULL);
+ ret =
+ _gnutls_mpi_init_multi(&params->params[DSA_Y],
+ &params->params[DSA_X],
+ NULL);
if (ret < 0) {
gnutls_assert();
goto dh_fail;
@@ -2803,7 +2831,7 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
ret = 0;
- dh_fail:
+ dh_fail:
mpz_clear(r);
mpz_clear(x);
mpz_clear(y);
@@ -2827,9 +2855,11 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
mpz_set_ui(pub.e, 65537);
- if ((params->pkflags & GNUTLS_PK_FLAG_PROVABLE) || _gnutls_fips_mode_enabled() != 0) {
+ if ((params->pkflags & GNUTLS_PK_FLAG_PROVABLE)
+ || _gnutls_fips_mode_enabled() != 0) {
params->pkflags |= GNUTLS_PK_FLAG_PROVABLE;
- if (params->palgo != 0 && params->palgo != GNUTLS_DIG_SHA384) {
+ if (params->palgo != 0
+ && params->palgo != GNUTLS_DIG_SHA384) {
ret = GNUTLS_E_INVALID_REQUEST;
goto rsa_fail;
}
@@ -2837,9 +2867,10 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
params->palgo = GNUTLS_DIG_SHA384;
if (params->seed_size) {
- ret = _rsa_generate_fips186_4_keypair(&pub, &priv,
- params->seed_size, params->seed,
- NULL, NULL, level);
+ ret =
+ _rsa_generate_fips186_4_keypair
+ (&pub, &priv, params->seed_size,
+ params->seed, NULL, NULL, level);
} else {
unsigned retries = 0;
/* The provable RSA key generation process is deterministic
@@ -2849,12 +2880,14 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
* occasionally. When we generate the random seed internally, remediate
* by retrying a different seed on failure. */
do {
- params->seed_size = sizeof(params->seed);
+ params->seed_size =
+ sizeof(params->seed);
ret =
- rsa_generate_fips186_4_keypair(&pub, &priv, NULL,
- rnd_func, NULL, NULL,
- &params->seed_size, params->seed,
- level);
+ rsa_generate_fips186_4_keypair
+ (&pub, &priv, NULL,
+ rnd_func, NULL, NULL,
+ &params->seed_size,
+ params->seed, level);
} while (ret != 1 && ++retries < 3);
}
} else {
@@ -2862,8 +2895,8 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
ret =
rsa_generate_keypair(&pub, &priv, NULL,
- rnd_func, NULL, NULL,
- level, 0);
+ rnd_func, NULL, NULL,
+ level, 0);
}
if (ret != 1 || HAVE_LIB_ERROR()) {
gnutls_assert();
@@ -2896,7 +2929,7 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
ret = 0;
- rsa_fail:
+ rsa_fail:
rsa_private_key_clear(&priv);
rsa_public_key_clear(&pub);
@@ -2914,17 +2947,21 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
not_approved = true;
if (params->pkflags & GNUTLS_PK_FLAG_PROVABLE) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
if (unlikely(get_eddsa_curve(algo) != level)) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
if (size == 0) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
@@ -2942,7 +2979,8 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
goto cleanup;
}
- ret = gnutls_rnd(rnd_level, params->raw_priv.data, size);
+ ret =
+ gnutls_rnd(rnd_level, params->raw_priv.data, size);
if (ret < 0) {
ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto cleanup;
@@ -2973,7 +3011,9 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
curve = get_supported_nist_curve(level);
if (curve == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
@@ -2997,12 +3037,17 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
ecdsa_generate_keypair(&pub, &key, NULL, rnd_func);
if (HAVE_LIB_ERROR()) {
- ret = gnutls_assert_val(GNUTLS_E_LIB_IN_ERROR_STATE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_LIB_IN_ERROR_STATE);
goto ecc_fail;
}
- ret = _gnutls_mpi_init_multi(&params->params[ECC_X], &params->params[ECC_Y],
- &params->params[ECC_K], NULL);
+ ret =
+ _gnutls_mpi_init_multi(&params->params[ECC_X],
+ &params->params[ECC_Y],
+ &params->params[ECC_K],
+ NULL);
if (ret < 0) {
gnutls_assert();
goto ecc_fail;
@@ -3026,8 +3071,11 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
* cannot happen in the nettle implementation,
* because it cannot represent an infinity point
* on curves. */
- if (mpz_cmp_ui(x, 0) == 0 && mpz_cmp_ui(y, 0) == 0) {
- ret = gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
+ if (mpz_cmp_ui(x, 0) == 0
+ && mpz_cmp_ui(y, 0) == 0) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ILLEGAL_PARAMETER);
goto ecc_fail;
}
@@ -3038,7 +3086,9 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
*
* Both checks are performed in nettle. */
if (!ecc_point_set(&r, x, y)) {
- ret = gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ILLEGAL_PARAMETER);
goto ecc_fail;
}
@@ -3055,37 +3105,48 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
*/
order = get_supported_nist_curve_order(level);
if (unlikely(order == NULL)) {
- ret = gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
goto ecc_fail;
}
ret = mpz_set_str(nn, order, 16);
if (unlikely(ret < 0)) {
- ret = gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_MPI_SCAN_FAILED);
goto ecc_fail;
}
- modulus = get_supported_nist_curve_modulus(level);
+ modulus =
+ get_supported_nist_curve_modulus(level);
if (unlikely(modulus == NULL)) {
- ret = gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
goto ecc_fail;
}
ret = mpz_set_str(mm, modulus, 16);
if (unlikely(ret < 0)) {
- ret = gnutls_assert_val(GNUTLS_E_MPI_SCAN_FAILED);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_MPI_SCAN_FAILED);
goto ecc_fail;
}
/* (n - 1) * Q = -Q */
- mpz_sub_ui (nn, nn, 1);
+ mpz_sub_ui(nn, nn, 1);
ecc_scalar_set(&n, nn);
ecc_point_mul(&r, &n, &r);
ecc_point_get(&r, xx, yy);
- mpz_sub (mm, mm, y);
+ mpz_sub(mm, mm, y);
if (mpz_cmp(xx, x) != 0 || mpz_cmp(yy, mm) != 0) {
- ret = gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ILLEGAL_PARAMETER);
goto ecc_fail;
}
} else {
@@ -3100,7 +3161,7 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
ret = 0;
- ecc_fail:
+ ecc_fail:
mpz_clear(x);
mpz_clear(y);
mpz_clear(xx);
@@ -3136,28 +3197,36 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
curve = get_supported_gost_curve(level);
if (curve == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
goto cleanup;
}
me = hash_to_entry(_gnutls_gost_digest(algo));
if (!me || me->output_size * 8 != ecc_bit_size(curve)) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
ecc_scalar_init(&key, curve);
ecc_point_init(&pub, curve);
- gostdsa_generate_keypair(&pub, &key, NULL, rnd_key_func);
+ gostdsa_generate_keypair(&pub, &key, NULL,
+ rnd_key_func);
if (HAVE_LIB_ERROR()) {
- ret = gnutls_assert_val(GNUTLS_E_LIB_IN_ERROR_STATE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_LIB_IN_ERROR_STATE);
goto ecc_fail;
}
-
- ret = _gnutls_mpi_init_multi(&params->params[GOST_X], &params->params[GOST_Y],
- &params->params[GOST_K], NULL);
+ ret =
+ _gnutls_mpi_init_multi(&params->params[GOST_X],
+ &params->params[GOST_Y],
+ &params->params[GOST_K],
+ NULL);
if (ret < 0) {
gnutls_assert();
goto gost_fail;
@@ -3172,7 +3241,7 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
ret = 0;
- gost_fail:
+ gost_fail:
ecc_point_clear(&pub);
ecc_scalar_clear(&key);
@@ -3190,7 +3259,8 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
not_approved = true;
if (size == 0) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ ret =
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
goto cleanup;
}
@@ -3208,7 +3278,8 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
goto cleanup;
}
- ret = gnutls_rnd(rnd_level, params->raw_priv.data, size);
+ ret =
+ gnutls_rnd(rnd_level, params->raw_priv.data, size);
if (ret < 0) {
ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto cleanup;
@@ -3216,7 +3287,9 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
params->raw_pub.size = size;
params->raw_priv.size = size;
- ret = edwards_curve_mul_g(algo, params->raw_pub.data, params->raw_priv.data);
+ ret =
+ edwards_curve_mul_g(algo, params->raw_pub.data,
+ params->raw_priv.data);
if (ret < 0)
goto cleanup;
break;
@@ -3255,10 +3328,9 @@ wrap_nettle_pk_generate_keys(gnutls_pk_algorithm_t algo,
return ret;
}
-
static int
wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
- const gnutls_pk_params_st * params)
+ const gnutls_pk_params_st * params)
{
int ret;
@@ -3270,13 +3342,11 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
if (params->params_nr != RSA_PRIVATE_PARAMS)
return
- gnutls_assert_val
- (GNUTLS_E_INVALID_REQUEST);
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
ret = _gnutls_mpi_init_multi(&t1, &t2, NULL);
if (ret < 0)
- return
- gnutls_assert_val(ret);
+ return gnutls_assert_val(ret);
_gnutls_mpi_mulm(t1, params->params[RSA_PRIME1],
params->params[RSA_PRIME2],
@@ -3300,37 +3370,31 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
}
/* [RSA_PRIME1] = d % p-1, [RSA_PRIME2] = d % q-1 */
- _gnutls_mpi_sub_ui(t1, params->params[RSA_PRIME1],
- 1);
- ret = _gnutls_mpi_modm(t2, params->params[RSA_PRIV], t1);
+ _gnutls_mpi_sub_ui(t1, params->params[RSA_PRIME1], 1);
+ ret =
+ _gnutls_mpi_modm(t2, params->params[RSA_PRIV], t1);
if (ret < 0) {
- ret =
- gnutls_assert_val
- (GNUTLS_E_MEMORY_ERROR);
+ ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto rsa_cleanup;
}
- if (_gnutls_mpi_cmp(params->params[RSA_E1], t2) !=
- 0) {
+ if (_gnutls_mpi_cmp(params->params[RSA_E1], t2) != 0) {
ret =
gnutls_assert_val
(GNUTLS_E_ILLEGAL_PARAMETER);
goto rsa_cleanup;
}
- _gnutls_mpi_sub_ui(t1, params->params[RSA_PRIME2],
- 1);
+ _gnutls_mpi_sub_ui(t1, params->params[RSA_PRIME2], 1);
- ret = _gnutls_mpi_modm(t2, params->params[RSA_PRIV], t1);
+ ret =
+ _gnutls_mpi_modm(t2, params->params[RSA_PRIV], t1);
if (ret < 0) {
- ret =
- gnutls_assert_val
- (GNUTLS_E_MEMORY_ERROR);
+ ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto rsa_cleanup;
}
- if (_gnutls_mpi_cmp(params->params[RSA_E2], t2) !=
- 0) {
+ if (_gnutls_mpi_cmp(params->params[RSA_E2], t2) != 0) {
ret =
gnutls_assert_val
(GNUTLS_E_ILLEGAL_PARAMETER);
@@ -3339,7 +3403,7 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
ret = 0;
- rsa_cleanup:
+ rsa_cleanup:
zrelease_mpi_key(&t1);
zrelease_mpi_key(&t2);
}
@@ -3351,24 +3415,21 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
if (params->params_nr != DSA_PRIVATE_PARAMS)
return
- gnutls_assert_val
- (GNUTLS_E_INVALID_REQUEST);
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
ret = _gnutls_mpi_init(&t1);
if (ret < 0)
- return
- gnutls_assert_val(ret);
+ return gnutls_assert_val(ret);
ret = _gnutls_mpi_powm(t1, params->params[DSA_G],
- params->params[DSA_X],
- params->params[DSA_P]);
+ params->params[DSA_X],
+ params->params[DSA_P]);
if (ret < 0) {
gnutls_assert();
goto dsa_cleanup;
}
- if (_gnutls_mpi_cmp(t1, params->params[DSA_Y]) !=
- 0) {
+ if (_gnutls_mpi_cmp(t1, params->params[DSA_Y]) != 0) {
ret =
gnutls_assert_val
(GNUTLS_E_ILLEGAL_PARAMETER);
@@ -3377,7 +3438,7 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
ret = 0;
- dsa_cleanup:
+ dsa_cleanup:
zrelease_mpi_key(&t1);
}
@@ -3391,8 +3452,7 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
if (params->params_nr != ECC_PRIVATE_PARAMS)
return
- gnutls_assert_val
- (GNUTLS_E_INVALID_REQUEST);
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
curve = get_supported_nist_curve(params->curve);
if (curve == NULL)
@@ -3445,7 +3505,7 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
ret = 0;
- ecc_cleanup:
+ ecc_cleanup:
ecc_scalar_zclear(&priv);
ecc_point_clear(&pub);
@@ -3456,61 +3516,74 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
}
break;
case GNUTLS_PK_EDDSA_ED25519:
- case GNUTLS_PK_EDDSA_ED448: {
- gnutls_ecc_curve_t curve;
- const gnutls_ecc_curve_entry_st *e;
- uint8_t pub[57]; /* can accommodate both curves */
-
- curve = get_eddsa_curve(algo);
- e = _gnutls_ecc_curve_get_params(curve);
- if (e == NULL)
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ case GNUTLS_PK_EDDSA_ED448:{
+ gnutls_ecc_curve_t curve;
+ const gnutls_ecc_curve_entry_st *e;
+ uint8_t pub[57]; /* can accommodate both curves */
- if (params->raw_pub.data == NULL) {
- return 0; /* nothing to verify */
- }
+ curve = get_eddsa_curve(algo);
+ e = _gnutls_ecc_curve_get_params(curve);
+ if (e == NULL)
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- if (params->raw_pub.size != e->size)
- return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
+ if (params->raw_pub.data == NULL) {
+ return 0; /* nothing to verify */
+ }
- ret = eddsa_public_key(algo, pub, params->raw_priv.data);
- if (ret < 0)
- return ret;
+ if (params->raw_pub.size != e->size)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_ILLEGAL_PARAMETER);
- if (memcmp(params->raw_pub.data, pub, e->size) != 0)
- return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
+ ret =
+ eddsa_public_key(algo, pub, params->raw_priv.data);
+ if (ret < 0)
+ return ret;
- ret = 0;
- break;
- }
- case GNUTLS_PK_ECDH_X25519:
- case GNUTLS_PK_ECDH_X448: {
- gnutls_ecc_curve_t curve;
- const gnutls_ecc_curve_entry_st *e;
- uint8_t pub[57]; /* can accommodate both curves */
-
- curve = get_ecdh_curve(algo);
- e = _gnutls_ecc_curve_get_params(curve);
- if (e == NULL)
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ if (memcmp(params->raw_pub.data, pub, e->size) != 0)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_ILLEGAL_PARAMETER);
- if (params->raw_pub.data == NULL) {
- return 0; /* nothing to verify */
+ ret = 0;
+ break;
}
+ case GNUTLS_PK_ECDH_X25519:
+ case GNUTLS_PK_ECDH_X448:{
+ gnutls_ecc_curve_t curve;
+ const gnutls_ecc_curve_entry_st *e;
+ uint8_t pub[57]; /* can accommodate both curves */
- if (params->raw_pub.size != e->size)
- return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
+ curve = get_ecdh_curve(algo);
+ e = _gnutls_ecc_curve_get_params(curve);
+ if (e == NULL)
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- ret = edwards_curve_mul_g(algo, pub, params->raw_priv.data);
- if (ret < 0)
- return ret;
+ if (params->raw_pub.data == NULL) {
+ return 0; /* nothing to verify */
+ }
+
+ if (params->raw_pub.size != e->size)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_ILLEGAL_PARAMETER);
- if (memcmp(params->raw_pub.data, pub, e->size) != 0)
- return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
+ ret =
+ edwards_curve_mul_g(algo, pub,
+ params->raw_priv.data);
+ if (ret < 0)
+ return ret;
- ret = 0;
- break;
- }
+ if (memcmp(params->raw_pub.data, pub, e->size) != 0)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_ILLEGAL_PARAMETER);
+
+ ret = 0;
+ break;
+ }
#if ENABLE_GOST
case GNUTLS_PK_GOST_01:
case GNUTLS_PK_GOST_12_256:
@@ -3523,8 +3596,7 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
if (params->params_nr != GOST_PRIVATE_PARAMS)
return
- gnutls_assert_val
- (GNUTLS_E_INVALID_REQUEST);
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
curve = get_supported_gost_curve(params->curve);
if (curve == NULL)
@@ -3546,7 +3618,7 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
/* verify that x,y lie on the curve */
ret =
gost_point_set(&r, TOMPZ(params->params[GOST_X]),
- TOMPZ(params->params[GOST_Y]));
+ TOMPZ(params->params[GOST_Y]));
if (ret == 0) {
ret =
gnutls_assert_val
@@ -3577,7 +3649,7 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
ret = 0;
- gost_cleanup:
+ gost_cleanup:
ecc_scalar_zclear(&priv);
ecc_point_clear(&pub);
@@ -3597,7 +3669,7 @@ wrap_nettle_pk_verify_priv_params(gnutls_pk_algorithm_t algo,
static int
wrap_nettle_pk_verify_pub_params(gnutls_pk_algorithm_t algo,
- const gnutls_pk_params_st * params)
+ const gnutls_pk_params_st * params)
{
int ret;
@@ -3616,8 +3688,7 @@ wrap_nettle_pk_verify_pub_params(gnutls_pk_algorithm_t algo,
if (params->params_nr != ECC_PUBLIC_PARAMS)
return
- gnutls_assert_val
- (GNUTLS_E_INVALID_REQUEST);
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
curve = get_supported_nist_curve(params->curve);
if (curve == NULL)
@@ -3644,7 +3715,7 @@ wrap_nettle_pk_verify_pub_params(gnutls_pk_algorithm_t algo,
ret = 0;
- ecc_cleanup:
+ ecc_cleanup:
ecc_point_clear(&pub);
}
break;
@@ -3659,8 +3730,7 @@ wrap_nettle_pk_verify_pub_params(gnutls_pk_algorithm_t algo,
if (params->params_nr != GOST_PUBLIC_PARAMS)
return
- gnutls_assert_val
- (GNUTLS_E_INVALID_REQUEST);
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
curve = get_supported_gost_curve(params->curve);
if (curve == NULL)
@@ -3687,7 +3757,7 @@ wrap_nettle_pk_verify_pub_params(gnutls_pk_algorithm_t algo,
ret = 0;
- gost_cleanup:
+ gost_cleanup:
ecc_point_clear(&pub);
}
break;
@@ -3711,20 +3781,24 @@ static int calc_rsa_exp(gnutls_pk_params_st * params)
params->params[RSA_E1] = params->params[RSA_E2] = NULL;
- ret = _gnutls_mpi_init_multi(&tmp, &params->params[RSA_E1], &params->params[RSA_E2], NULL);
+ ret =
+ _gnutls_mpi_init_multi(&tmp, &params->params[RSA_E1],
+ &params->params[RSA_E2], NULL);
if (ret < 0)
return gnutls_assert_val(ret);
/* [6] = d % p-1, [7] = d % q-1 */
_gnutls_mpi_sub_ui(tmp, params->params[RSA_PRIME1], 1);
ret =
- _gnutls_mpi_modm(params->params[RSA_E1], params->params[RSA_PRIV] /*d */ , tmp);
+ _gnutls_mpi_modm(params->params[RSA_E1],
+ params->params[RSA_PRIV] /*d */ , tmp);
if (ret < 0)
goto fail;
_gnutls_mpi_sub_ui(tmp, params->params[RSA_PRIME2], 1);
ret =
- _gnutls_mpi_modm(params->params[RSA_E2], params->params[RSA_PRIV] /*d */ , tmp);
+ _gnutls_mpi_modm(params->params[RSA_E2],
+ params->params[RSA_PRIV] /*d */ , tmp);
if (ret < 0)
goto fail;
@@ -3732,7 +3806,7 @@ static int calc_rsa_exp(gnutls_pk_params_st * params)
return 0;
-fail:
+ fail:
zrelease_mpi_key(&tmp);
zrelease_mpi_key(&params->params[RSA_E1]);
zrelease_mpi_key(&params->params[RSA_E2]);
@@ -3747,7 +3821,9 @@ static int calc_rsa_priv(gnutls_pk_params_st * params)
params->params[RSA_PRIV] = NULL;
- ret = _gnutls_mpi_init_multi(&params->params[RSA_PRIV], &lcm, &p1, &q1, NULL);
+ ret =
+ _gnutls_mpi_init_multi(&params->params[RSA_PRIV], &lcm, &p1, &q1,
+ NULL);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -3760,7 +3836,8 @@ static int calc_rsa_priv(gnutls_pk_params_st * params)
zrelease_mpi_key(&q1);
/* d = e^{-1} (mod lcm) */
- ret = mpz_invert(params->params[RSA_PRIV], params->params[RSA_PUB], lcm);
+ ret =
+ mpz_invert(params->params[RSA_PRIV], params->params[RSA_PUB], lcm);
zrelease_mpi_key(&lcm);
@@ -3784,7 +3861,7 @@ static int calc_dsa_pub(gnutls_pk_params_st * params)
/* y = g^x mod p */
ret = _gnutls_mpi_powm(params->params[DSA_Y], params->params[DSA_G],
- params->params[DSA_X], params->params[DSA_P]);
+ params->params[DSA_X], params->params[DSA_P]);
if (ret < 0) {
zrelease_mpi_key(&params->params[DSA_Y]);
return gnutls_assert_val(ret);
@@ -3795,8 +3872,7 @@ static int calc_dsa_pub(gnutls_pk_params_st * params)
static int
wrap_nettle_pk_fixup(gnutls_pk_algorithm_t algo,
- gnutls_direction_t direction,
- gnutls_pk_params_st * params)
+ gnutls_direction_t direction, gnutls_pk_params_st * params)
{
int ret;
@@ -3856,13 +3932,15 @@ wrap_nettle_pk_fixup(gnutls_pk_algorithm_t algo,
} else if (algo == GNUTLS_PK_EDDSA_ED25519 ||
algo == GNUTLS_PK_EDDSA_ED448) {
if (unlikely(get_eddsa_curve(algo) != params->curve))
- return gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ return
+ gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
if (params->raw_priv.data == NULL)
return gnutls_assert_val(GNUTLS_E_PK_INVALID_PRIVKEY);
if (params->raw_pub.data == NULL) {
- params->raw_pub.data = gnutls_malloc(params->raw_priv.size);
+ params->raw_pub.data =
+ gnutls_malloc(params->raw_priv.size);
}
if (params->raw_pub.data == NULL)
@@ -3877,16 +3955,17 @@ wrap_nettle_pk_fixup(gnutls_pk_algorithm_t algo,
}
params->raw_pub.size = params->raw_priv.size;
- } else if (algo == GNUTLS_PK_ECDH_X25519 ||
- algo == GNUTLS_PK_ECDH_X448) {
+ } else if (algo == GNUTLS_PK_ECDH_X25519 || algo == GNUTLS_PK_ECDH_X448) {
if (unlikely(get_ecdh_curve(algo) != params->curve))
- return gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ return
+ gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
if (params->raw_priv.data == NULL)
return gnutls_assert_val(GNUTLS_E_PK_INVALID_PRIVKEY);
if (params->raw_pub.data == NULL) {
- params->raw_pub.data = gnutls_malloc(params->raw_priv.size);
+ params->raw_pub.data =
+ gnutls_malloc(params->raw_priv.size);
}
if (params->raw_pub.data == NULL)
@@ -3906,10 +3985,15 @@ wrap_nettle_pk_fixup(gnutls_pk_algorithm_t algo,
return gnutls_assert_val(GNUTLS_E_PK_INVALID_PRIVKEY);
if (params->spki.rsa_pss_dig != 0) {
- unsigned pub_size = nettle_mpz_sizeinbase_256_u(TOMPZ(params->params[RSA_MODULUS]));
+ unsigned pub_size =
+ nettle_mpz_sizeinbase_256_u(TOMPZ
+ (params->params
+ [RSA_MODULUS]));
/* sanity check for private key */
- CHECK_INVALID_RSA_PSS_PARAMS(gnutls_hash_get_len(params->spki.rsa_pss_dig),
- params->spki.salt_size, pub_size,
+ CHECK_INVALID_RSA_PSS_PARAMS(gnutls_hash_get_len
+ (params->spki.rsa_pss_dig),
+ params->spki.salt_size,
+ pub_size,
GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
}
} else if (algo == GNUTLS_PK_DSA) {
@@ -3929,16 +4013,17 @@ wrap_nettle_pk_fixup(gnutls_pk_algorithm_t algo,
const struct ecc_curve *curve;
if (params->params_nr != GOST_PRIVATE_PARAMS)
- return gnutls_assert_val
- (GNUTLS_E_INVALID_REQUEST);
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
curve = get_supported_gost_curve(params->curve);
if (curve == NULL)
return gnutls_assert_val
- (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
+ (GNUTLS_E_ECC_UNSUPPORTED_CURVE);
- if (ecc_bit_size(curve) < _gnutls_mpi_get_nbits(params->params[GOST_K]))
- gostdsa_unmask_key(curve, TOMPZ(params->params[GOST_K]));
+ if (ecc_bit_size(curve) <
+ _gnutls_mpi_get_nbits(params->params[GOST_K]))
+ gostdsa_unmask_key(curve,
+ TOMPZ(params->params[GOST_K]));
ret = _gost_params_to_privkey(params, &priv, curve);
if (ret < 0) {
@@ -3949,7 +4034,7 @@ wrap_nettle_pk_fixup(gnutls_pk_algorithm_t algo,
gost_point_mul_g(&r, &priv);
ecc_point_get(&r, params->params[GOST_X],
- params->params[GOST_Y]);
+ params->params[GOST_Y]);
ecc_point_clear(&r);
ecc_scalar_clear(&priv);
diff --git a/lib/nettle/prf.c b/lib/nettle/prf.c
index 631ba3b8c0..02c5eae7a5 100644
--- a/lib/nettle/prf.c
+++ b/lib/nettle/prf.c
@@ -24,7 +24,7 @@
#include "int/tls1-prf.h"
#include <nettle/hmac.h>
#if ENABLE_GOST
-#include "gost/hmac-gost.h"
+# include "gost/hmac-gost.h"
#endif
/*-
@@ -48,84 +48,84 @@ int
_gnutls_prf_raw(gnutls_mac_algorithm_t mac,
size_t master_size, const void *master,
size_t label_size, const char *label,
- size_t seed_size, const uint8_t *seed, size_t outsize, char *out)
+ size_t seed_size, const uint8_t * seed, size_t outsize,
+ char *out)
{
int ret;
switch (mac) {
case GNUTLS_MAC_MD5_SHA1:
- tls10_prf(master_size, (uint8_t*)master, label_size, label,
- seed_size, seed, outsize, (uint8_t*)out);
+ tls10_prf(master_size, (uint8_t *) master, label_size, label,
+ seed_size, seed, outsize, (uint8_t *) out);
return 0;
case GNUTLS_MAC_SHA256:{
- struct hmac_sha256_ctx ctx;
- hmac_sha256_set_key(&ctx, master_size, (uint8_t*)master);
+ struct hmac_sha256_ctx ctx;
+ hmac_sha256_set_key(&ctx, master_size,
+ (uint8_t *) master);
- ret = tls12_prf(&ctx,
- (nettle_hash_update_func *)
- hmac_sha256_update,
- (nettle_hash_digest_func *)
- hmac_sha256_digest, SHA256_DIGEST_SIZE,
- label_size, label, seed_size,
- seed, outsize,
- (uint8_t*)out);
+ ret = tls12_prf(&ctx, (nettle_hash_update_func *)
+ hmac_sha256_update,
+ (nettle_hash_digest_func *)
+ hmac_sha256_digest, SHA256_DIGEST_SIZE,
+ label_size, label, seed_size,
+ seed, outsize, (uint8_t *) out);
- if (unlikely(ret != 1))
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- break;
- }
+ if (unlikely(ret != 1))
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ break;
+ }
case GNUTLS_MAC_SHA384:{
- struct hmac_sha384_ctx ctx;
- hmac_sha384_set_key(&ctx, master_size, master);
+ struct hmac_sha384_ctx ctx;
+ hmac_sha384_set_key(&ctx, master_size, master);
- ret = tls12_prf(&ctx,
- (nettle_hash_update_func *)
- hmac_sha384_update,
- (nettle_hash_digest_func *)
- hmac_sha384_digest, SHA384_DIGEST_SIZE,
- label_size, label, seed_size,
- seed, outsize,
- (uint8_t*)out);
+ ret = tls12_prf(&ctx, (nettle_hash_update_func *)
+ hmac_sha384_update,
+ (nettle_hash_digest_func *)
+ hmac_sha384_digest, SHA384_DIGEST_SIZE,
+ label_size, label, seed_size,
+ seed, outsize, (uint8_t *) out);
- if (unlikely(ret != 1))
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- break;
- }
+ if (unlikely(ret != 1))
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ break;
+ }
#if ENABLE_GOST
case GNUTLS_MAC_STREEBOG_256:{
- struct hmac_streebog256_ctx ctx;
- hmac_streebog256_set_key(&ctx, master_size, master);
+ struct hmac_streebog256_ctx ctx;
+ hmac_streebog256_set_key(&ctx, master_size, master);
- ret = tls12_prf(&ctx,
- (nettle_hash_update_func *)
- hmac_streebog256_update,
- (nettle_hash_digest_func *)
- hmac_streebog256_digest, STREEBOG256_DIGEST_SIZE,
- label_size, label, seed_size,
- seed, outsize,
- (uint8_t*)out);
+ ret = tls12_prf(&ctx, (nettle_hash_update_func *)
+ hmac_streebog256_update,
+ (nettle_hash_digest_func *)
+ hmac_streebog256_digest,
+ STREEBOG256_DIGEST_SIZE, label_size,
+ label, seed_size, seed, outsize,
+ (uint8_t *) out);
- if (unlikely(ret != 1))
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- break;
- }
+ if (unlikely(ret != 1))
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ break;
+ }
case GNUTLS_MAC_STREEBOG_512:{
- struct hmac_streebog512_ctx ctx;
- hmac_streebog512_set_key(&ctx, master_size, master);
+ struct hmac_streebog512_ctx ctx;
+ hmac_streebog512_set_key(&ctx, master_size, master);
- ret = tls12_prf(&ctx,
- (nettle_hash_update_func *)
- hmac_streebog512_update,
- (nettle_hash_digest_func *)
- hmac_streebog512_digest, STREEBOG512_DIGEST_SIZE,
- label_size, label, seed_size,
- seed, outsize,
- (uint8_t*)out);
+ ret = tls12_prf(&ctx, (nettle_hash_update_func *)
+ hmac_streebog512_update,
+ (nettle_hash_digest_func *)
+ hmac_streebog512_digest,
+ STREEBOG512_DIGEST_SIZE, label_size,
+ label, seed_size, seed, outsize,
+ (uint8_t *) out);
- if (unlikely(ret != 1))
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- break;
- }
+ if (unlikely(ret != 1))
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ break;
+ }
#endif
default:
gnutls_assert();
diff --git a/lib/nettle/rnd-common.h b/lib/nettle/rnd-common.h
index 025fe02e8f..32c63700ae 100644
--- a/lib/nettle/rnd-common.h
+++ b/lib/nettle/rnd-common.h
@@ -22,24 +22,23 @@
*/
#ifndef GNUTLS_LIB_NETTLE_RND_COMMON_H
-#define GNUTLS_LIB_NETTLE_RND_COMMON_H
+# define GNUTLS_LIB_NETTLE_RND_COMMON_H
-#include "gnutls_int.h"
-#ifdef HAVE_GETPID
-# include <unistd.h> /* getpid */
-#endif
-#ifdef HAVE_GETRUSAGE
-# include <sys/resource.h>
-#endif
+# include "gnutls_int.h"
+# ifdef HAVE_GETPID
+# include <unistd.h> /* getpid */
+# endif
+# ifdef HAVE_GETRUSAGE
+# include <sys/resource.h>
+# endif
-#include <fips.h>
+# include <fips.h>
int _rnd_system_entropy_init(void);
void _rnd_system_entropy_deinit(void);
-typedef int (*get_entropy_func)(void* rnd, size_t size);
+typedef int (*get_entropy_func)(void *rnd, size_t size);
extern get_entropy_func _rnd_get_system_entropy;
-
-#endif /* GNUTLS_LIB_NETTLE_RND_COMMON_H */
+#endif /* GNUTLS_LIB_NETTLE_RND_COMMON_H */
diff --git a/lib/nettle/rnd-fips.c b/lib/nettle/rnd-fips.c
index 2f985e42d4..591911e3b3 100644
--- a/lib/nettle/rnd-fips.c
+++ b/lib/nettle/rnd-fips.c
@@ -48,14 +48,14 @@ struct fips_ctx {
static int _rngfips_ctx_reinit(struct fips_ctx *fctx);
static int _rngfips_ctx_init(struct fips_ctx *fctx);
static int drbg_reseed(struct fips_ctx *fctx, struct drbg_aes_ctx *ctx);
-static int get_entropy(struct fips_ctx *fctx, uint8_t *buffer, size_t length);
+static int get_entropy(struct fips_ctx *fctx, uint8_t * buffer, size_t length);
static int get_random(struct drbg_aes_ctx *ctx, struct fips_ctx *fctx,
void *buffer, size_t length)
{
int ret;
- if ( _gnutls_detect_fork(fctx->forkid) != 0) {
+ if (_gnutls_detect_fork(fctx->forkid) != 0) {
ret = _rngfips_ctx_reinit(fctx);
if (ret < 0) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
@@ -81,7 +81,7 @@ static int get_random(struct drbg_aes_ctx *ctx, struct fips_ctx *fctx,
return 0;
}
-static int get_entropy(struct fips_ctx *fctx, uint8_t *buffer, size_t length)
+static int get_entropy(struct fips_ctx *fctx, uint8_t * buffer, size_t length)
{
int ret;
uint8_t block[ENTROPY_BLOCK_SIZE];
@@ -136,7 +136,7 @@ static int drbg_init(struct fips_ctx *fctx, struct drbg_aes_ctx *ctx)
}
ret = drbg_aes_init(ctx, sizeof(buffer), buffer,
- PSTRING_SIZE, (void*)PSTRING);
+ PSTRING_SIZE, (void *)PSTRING);
zeroize_key(buffer, sizeof(buffer));
if (ret == 0) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
@@ -305,4 +305,3 @@ gnutls_crypto_rnd_st _gnutls_fips_rnd_ops = {
.rnd_refresh = _rngfips_refresh,
.self_test = selftest_kat,
};
-
diff --git a/lib/nettle/rnd-fuzzer.c b/lib/nettle/rnd-fuzzer.c
index 225fd50000..687ab9faa5 100644
--- a/lib/nettle/rnd-fuzzer.c
+++ b/lib/nettle/rnd-fuzzer.c
@@ -44,9 +44,9 @@ struct r48_rand_data {
formula. */
};
-#ifdef __clang__
+# ifdef __clang__
__attribute__((no_sanitize("integer")))
-#endif
+# endif
static int
__r48_rand_iterate(unsigned short int xsubi[3], struct r48_rand_data *buffer)
{
@@ -75,11 +75,11 @@ __r48_rand_iterate(unsigned short int xsubi[3], struct r48_rand_data *buffer)
return 0;
}
-#ifdef __clang__
+# ifdef __clang__
__attribute__((no_sanitize("integer")))
-#elif defined __GNUC__
+# elif defined __GNUC__
__attribute__((no_sanitize("shift-base")))
-#endif
+# endif
static int
r48_r(unsigned short int xsubi[3], struct r48_rand_data *buffer,
long int *result)
@@ -147,4 +147,4 @@ gnutls_crypto_rnd_st _gnutls_fuzz_rnd_ops = {
.self_test = NULL,
};
-#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
+#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
diff --git a/lib/nettle/rnd.c b/lib/nettle/rnd.c
index cddf1f72ff..a7fe09db75 100644
--- a/lib/nettle/rnd.c
+++ b/lib/nettle/rnd.c
@@ -49,15 +49,15 @@
/* after this number of bytes PRNG will rekey using the system RNG */
static const unsigned prng_reseed_limits[] = {
- [GNUTLS_RND_NONCE] = 16*1024*1024, /* 16 MB - we re-seed using the GNUTLS_RND_RANDOM output */
- [GNUTLS_RND_RANDOM] = 2*1024*1024, /* 2MB - we re-seed by time as well */
- [GNUTLS_RND_KEY] = 2*1024*1024 /* same as GNUTLS_RND_RANDOM - but we re-key on every operation */
+ [GNUTLS_RND_NONCE] = 16 * 1024 * 1024, /* 16 MB - we re-seed using the GNUTLS_RND_RANDOM output */
+ [GNUTLS_RND_RANDOM] = 2 * 1024 * 1024, /* 2MB - we re-seed by time as well */
+ [GNUTLS_RND_KEY] = 2 * 1024 * 1024 /* same as GNUTLS_RND_RANDOM - but we re-key on every operation */
};
static const time_t prng_reseed_time[] = {
- [GNUTLS_RND_NONCE] = 14400, /* 4 hours */
- [GNUTLS_RND_RANDOM] = 7200, /* 2 hours */
- [GNUTLS_RND_KEY] = 7200 /* same as RANDOM */
+ [GNUTLS_RND_NONCE] = 14400, /* 4 hours */
+ [GNUTLS_RND_RANDOM] = 7200, /* 2 hours */
+ [GNUTLS_RND_KEY] = 7200 /* same as RANDOM */
};
struct prng_ctx_st {
@@ -68,11 +68,10 @@ struct prng_ctx_st {
};
struct generators_ctx_st {
- struct prng_ctx_st nonce; /* GNUTLS_RND_NONCE */
- struct prng_ctx_st normal; /* GNUTLS_RND_RANDOM, GNUTLS_RND_KEY */
+ struct prng_ctx_st nonce; /* GNUTLS_RND_NONCE */
+ struct prng_ctx_st normal; /* GNUTLS_RND_RANDOM, GNUTLS_RND_KEY */
};
-
static void wrap_nettle_rnd_deinit(void *_ctx)
{
gnutls_free(_ctx);
@@ -87,12 +86,11 @@ static void wrap_nettle_rnd_deinit(void *_ctx)
*/
static int single_prng_init(struct prng_ctx_st *ctx,
uint8_t new_key[PRNG_KEY_SIZE],
- unsigned new_key_size,
- unsigned init)
+ unsigned new_key_size, unsigned init)
{
uint8_t nonce[CHACHA_NONCE_SIZE];
- memset(nonce, 0, sizeof(nonce)); /* to prevent valgrind from whinning */
+ memset(nonce, 0, sizeof(nonce)); /* to prevent valgrind from whinning */
if (init == 0) {
/* use the previous key to generate IV as well */
@@ -102,7 +100,7 @@ static int single_prng_init(struct prng_ctx_st *ctx,
* from the old key */
chacha_crypt(&ctx->ctx, new_key_size, new_key, new_key);
} else {
- struct timespec now; /* current time */
+ struct timespec now; /* current time */
ctx->forkid = _gnutls_get_forkid();
@@ -126,7 +124,7 @@ static int single_prng_init(struct prng_ctx_st *ctx,
static int wrap_nettle_rnd_init(void **_ctx)
{
int ret;
- uint8_t new_key[PRNG_KEY_SIZE*2];
+ uint8_t new_key[PRNG_KEY_SIZE * 2];
struct generators_ctx_st *ctx;
ctx = calloc(1, sizeof(*ctx));
@@ -147,7 +145,9 @@ static int wrap_nettle_rnd_init(void **_ctx)
}
/* initialize the random/key RNG */
- ret = single_prng_init(&ctx->normal, new_key+PRNG_KEY_SIZE, PRNG_KEY_SIZE, 1);
+ ret =
+ single_prng_init(&ctx->normal, new_key + PRNG_KEY_SIZE,
+ PRNG_KEY_SIZE, 1);
if (ret < 0) {
gnutls_assert();
goto fail;
@@ -161,8 +161,7 @@ static int wrap_nettle_rnd_init(void **_ctx)
return ret;
}
-static int
-wrap_nettle_rnd(void *_ctx, int level, void *data, size_t datasize)
+static int wrap_nettle_rnd(void *_ctx, int level, void *data, size_t datasize)
{
struct generators_ctx_st *ctx = _ctx;
struct prng_ctx_st *prng_ctx;
@@ -199,7 +198,9 @@ wrap_nettle_rnd(void *_ctx, int level, void *data, size_t datasize)
if (reseed != 0 || prng_ctx->counter > prng_reseed_limits[level]) {
if (level == GNUTLS_RND_NONCE) {
- ret = wrap_nettle_rnd(_ctx, GNUTLS_RND_RANDOM, new_key, sizeof(new_key));
+ ret =
+ wrap_nettle_rnd(_ctx, GNUTLS_RND_RANDOM, new_key,
+ sizeof(new_key));
} else {
/* we also use the system entropy to reduce the impact
@@ -227,8 +228,10 @@ wrap_nettle_rnd(void *_ctx, int level, void *data, size_t datasize)
chacha_crypt(&prng_ctx->ctx, datasize, data, data);
prng_ctx->counter += datasize;
- if (level == GNUTLS_RND_KEY) { /* prevent backtracking */
- ret = wrap_nettle_rnd(_ctx, GNUTLS_RND_RANDOM, new_key, sizeof(new_key));
+ if (level == GNUTLS_RND_KEY) { /* prevent backtracking */
+ ret =
+ wrap_nettle_rnd(_ctx, GNUTLS_RND_RANDOM, new_key,
+ sizeof(new_key));
if (ret < 0) {
gnutls_assert();
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
@@ -246,7 +249,7 @@ wrap_nettle_rnd(void *_ctx, int level, void *data, size_t datasize)
ret = 0;
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_NOT_APPROVED);
-cleanup:
+ cleanup:
return ret;
}
@@ -256,8 +259,8 @@ static void wrap_nettle_rnd_refresh(void *_ctx)
char tmp;
/* force reseed */
- ctx->nonce.counter = prng_reseed_limits[GNUTLS_RND_NONCE]+1;
- ctx->normal.counter = prng_reseed_limits[GNUTLS_RND_RANDOM]+1;
+ ctx->nonce.counter = prng_reseed_limits[GNUTLS_RND_NONCE] + 1;
+ ctx->normal.counter = prng_reseed_limits[GNUTLS_RND_RANDOM] + 1;
wrap_nettle_rnd(_ctx, GNUTLS_RND_NONCE, &tmp, 1);
wrap_nettle_rnd(_ctx, GNUTLS_RND_RANDOM, &tmp, 1);
diff --git a/lib/nettle/sysrng-bcrypt.c b/lib/nettle/sysrng-bcrypt.c
index a08e9deb92..5547b7becf 100644
--- a/lib/nettle/sysrng-bcrypt.c
+++ b/lib/nettle/sysrng-bcrypt.c
@@ -53,7 +53,7 @@ get_entropy_func _rnd_get_system_entropy = NULL;
static BCRYPT_ALG_HANDLE device_fd = 0;
static
-int _rnd_get_system_entropy_win32(void* rnd, size_t size)
+int _rnd_get_system_entropy_win32(void *rnd, size_t size)
{
NTSTATUS err = BCryptGenRandom(device_fd, rnd, size, 0);
if (!BCRYPT_SUCCESS(err)) {
diff --git a/lib/nettle/sysrng-getentropy.c b/lib/nettle/sysrng-getentropy.c
index 0666d482c2..0f0f3e11f7 100644
--- a/lib/nettle/sysrng-getentropy.c
+++ b/lib/nettle/sysrng-getentropy.c
@@ -35,7 +35,7 @@
#include <sys/stat.h>
#include <unistd.h>
#ifdef __APPLE__
-#include <sys/random.h>
+# include <sys/random.h>
#endif
/* gnulib wants to claim strerror even if it cannot provide it. WTF */
@@ -52,14 +52,13 @@
get_entropy_func _rnd_get_system_entropy = NULL;
-static int _rnd_get_system_entropy_simple(void* _rnd, size_t size)
+static int _rnd_get_system_entropy_simple(void *_rnd, size_t size)
{
if (getentropy(_rnd, size) < 0) {
int e = errno;
gnutls_assert();
_gnutls_debug_log
- ("Failed to use getentropy: %s\n",
- strerror(e));
+ ("Failed to use getentropy: %s\n", strerror(e));
return GNUTLS_E_RANDOM_DEVICE_ERROR;
}
return 0;
@@ -75,4 +74,3 @@ void _rnd_system_entropy_deinit(void)
{
return;
}
-
diff --git a/lib/nettle/sysrng-linux.c b/lib/nettle/sysrng-linux.c
index 6b3971c65f..e24709affe 100644
--- a/lib/nettle/sysrng-linux.c
+++ b/lib/nettle/sysrng-linux.c
@@ -59,19 +59,19 @@ get_entropy_func _rnd_get_system_entropy = NULL;
# else
static ssize_t _getrandom0(void *buf, size_t buflen, unsigned int flags)
{
- errno = ENOSYS;
- return -1;
+ errno = ENOSYS;
+ return -1;
}
+
# define getrandom(dst,s,flags) _getrandom0(dst,s,flags)
# endif
# endif
-
static unsigned have_getrandom(void)
{
char c;
int ret;
- ret = getrandom(&c, 1, 1/*GRND_NONBLOCK*/);
+ ret = getrandom(&c, 1, 1 /*GRND_NONBLOCK */ );
if (ret == 1 || (ret == -1 && errno == EAGAIN))
return 1;
return 0;
@@ -100,28 +100,26 @@ static int force_getrandom(void *buf, size_t buflen, unsigned int flags)
return buflen;
}
-static int _rnd_get_system_entropy_getrandom(void* _rnd, size_t size)
+static int _rnd_get_system_entropy_getrandom(void *_rnd, size_t size)
{
int ret;
ret = force_getrandom(_rnd, size, 0);
if (ret == -1) {
int e = errno;
gnutls_assert();
- _gnutls_debug_log
- ("Failed to use getrandom: %s\n",
- strerror(e));
+ _gnutls_debug_log("Failed to use getrandom: %s\n", strerror(e));
return GNUTLS_E_RANDOM_DEVICE_ERROR;
}
return 0;
}
-#else /* not linux */
+#else /* not linux */
# define have_getrandom() 0
#endif
-static int _rnd_get_system_entropy_urandom(void* _rnd, size_t size)
+static int _rnd_get_system_entropy_urandom(void *_rnd, size_t size)
{
- uint8_t* rnd = _rnd;
+ uint8_t *rnd = _rnd;
uint32_t done;
int urandom_fd;
@@ -141,11 +139,11 @@ static int _rnd_get_system_entropy_urandom(void* _rnd, size_t size)
int e = errno;
if (res < 0) {
_gnutls_debug_log
- ("Failed to read /dev/urandom: %s\n",
- strerror(e));
+ ("Failed to read /dev/urandom: %s\n",
+ strerror(e));
} else {
_gnutls_debug_log
- ("Failed to read /dev/urandom: end of file\n");
+ ("Failed to read /dev/urandom: end of file\n");
}
close(urandom_fd);
@@ -179,7 +177,8 @@ int _rnd_system_entropy_init(void)
/* Check that we can open it */
urandom_fd = open("/dev/urandom", O_RDONLY);
if (urandom_fd < 0) {
- _gnutls_debug_log("Cannot open /dev/urandom during initialization!\n");
+ _gnutls_debug_log
+ ("Cannot open /dev/urandom during initialization!\n");
return gnutls_assert_val(GNUTLS_E_RANDOM_DEVICE_ERROR);
}
close(urandom_fd);
@@ -195,4 +194,3 @@ void _rnd_system_entropy_deinit(void)
/* A no-op now when we open and close /dev/urandom every time */
return;
}
-
diff --git a/lib/nettle/sysrng-netbsd.c b/lib/nettle/sysrng-netbsd.c
index 7f74b4eed4..15bce72438 100644
--- a/lib/nettle/sysrng-netbsd.c
+++ b/lib/nettle/sysrng-netbsd.c
@@ -39,11 +39,11 @@
get_entropy_func _rnd_get_system_entropy = NULL;
-static int _rnd_get_system_entropy_sysctl(void* _rnd, size_t size)
+static int _rnd_get_system_entropy_sysctl(void *_rnd, size_t size)
{
- static int name[] = {CTL_KERN, KERN_ARND};
+ static int name[] = { CTL_KERN, KERN_ARND };
size_t count, req;
- unsigned char* p;
+ unsigned char *p;
p = _rnd;
while (size) {
@@ -55,7 +55,7 @@ static int _rnd_get_system_entropy_sysctl(void* _rnd, size_t size)
}
if (count != req) {
- return GNUTLS_E_RANDOM_DEVICE_ERROR; /* Can't happen. */
+ return GNUTLS_E_RANDOM_DEVICE_ERROR; /* Can't happen. */
}
p += count;
@@ -75,4 +75,3 @@ void _rnd_system_entropy_deinit(void)
{
return;
}
-
diff --git a/lib/nettle/sysrng-windows.c b/lib/nettle/sysrng-windows.c
index 8c931d29cc..9694dd6ed7 100644
--- a/lib/nettle/sysrng-windows.c
+++ b/lib/nettle/sysrng-windows.c
@@ -53,11 +53,11 @@ get_entropy_func _rnd_get_system_entropy = NULL;
static HCRYPTPROV device_fd = 0;
static
-int _rnd_get_system_entropy_win32(void* rnd, size_t size)
+int _rnd_get_system_entropy_win32(void *rnd, size_t size)
{
if (!CryptGenRandom(device_fd, (DWORD) size, rnd)) {
_gnutls_debug_log("Error in CryptGenRandom: %d\n",
- (int)GetLastError());
+ (int)GetLastError());
return GNUTLS_E_RANDOM_DEVICE_ERROR;
}
@@ -67,10 +67,9 @@ int _rnd_get_system_entropy_win32(void* rnd, size_t size)
int _rnd_system_entropy_init(void)
{
if (!CryptAcquireContext
- (&device_fd, NULL, NULL, PROV_RSA_FULL,
- CRYPT_SILENT | CRYPT_VERIFYCONTEXT)) {
- _gnutls_debug_log
- ("error in CryptAcquireContext!\n");
+ (&device_fd, NULL, NULL, PROV_RSA_FULL,
+ CRYPT_SILENT | CRYPT_VERIFYCONTEXT)) {
+ _gnutls_debug_log("error in CryptAcquireContext!\n");
return GNUTLS_E_RANDOM_DEVICE_ERROR;
}
diff --git a/lib/num.h b/lib/num.h
index dd2ee41464..b74f5a4f60 100644
--- a/lib/num.h
+++ b/lib/num.h
@@ -21,12 +21,12 @@
*/
#ifndef GNUTLS_LIB_NUM_H
-#define GNUTLS_LIB_NUM_H
+# define GNUTLS_LIB_NUM_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
-#include <minmax.h>
-#include <byteswap.h>
+# include <minmax.h>
+# include <byteswap.h>
/* data should be at least 3 bytes */
inline static uint32_t _gnutls_read_uint24(const uint8_t * data)
@@ -39,17 +39,17 @@ inline static uint64_t _gnutls_read_uint64(const uint8_t * data)
uint64_t res;
memcpy(&res, data, sizeof(uint64_t));
-#ifndef WORDS_BIGENDIAN
+# ifndef WORDS_BIGENDIAN
res = bswap_64(res);
-#endif
+# endif
return res;
}
inline static void _gnutls_write_uint64(uint64_t num, uint8_t * data)
{
-#ifndef WORDS_BIGENDIAN
+# ifndef WORDS_BIGENDIAN
num = bswap_64(num);
-#endif
+# endif
memcpy(data, &num, 8);
}
@@ -65,18 +65,18 @@ inline static uint32_t _gnutls_read_uint32(const uint8_t * data)
uint32_t res;
memcpy(&res, data, sizeof(uint32_t));
-#ifndef WORDS_BIGENDIAN
+# ifndef WORDS_BIGENDIAN
res = bswap_32(res);
-#endif
+# endif
return res;
}
inline static void _gnutls_write_uint32(uint32_t num, uint8_t * data)
{
-#ifndef WORDS_BIGENDIAN
+# ifndef WORDS_BIGENDIAN
num = bswap_32(num);
-#endif
+# endif
memcpy(data, &num, sizeof(uint32_t));
}
@@ -84,37 +84,37 @@ inline static uint16_t _gnutls_read_uint16(const uint8_t * data)
{
uint16_t res;
memcpy(&res, data, sizeof(uint16_t));
-#ifndef WORDS_BIGENDIAN
+# ifndef WORDS_BIGENDIAN
res = bswap_16(res);
-#endif
+# endif
return res;
}
inline static void _gnutls_write_uint16(uint16_t num, uint8_t * data)
{
-#ifndef WORDS_BIGENDIAN
+# ifndef WORDS_BIGENDIAN
num = bswap_16(num);
-#endif
+# endif
memcpy(data, &num, sizeof(uint16_t));
}
inline static uint32_t _gnutls_conv_uint32(uint32_t data)
{
-#ifndef WORDS_BIGENDIAN
+# ifndef WORDS_BIGENDIAN
return bswap_32(data);
-#else
+# else
return data;
-#endif
+# endif
}
inline static uint16_t _gnutls_conv_uint16(uint16_t data)
{
-#ifndef WORDS_BIGENDIAN
+# ifndef WORDS_BIGENDIAN
return bswap_16(data);
-#else
+# else
return data;
-#endif
+# endif
}
-#endif /* GNUTLS_LIB_NUM_H */
+#endif /* GNUTLS_LIB_NUM_H */
diff --git a/lib/ocsp-api.c b/lib/ocsp-api.c
index 28f7e05a26..59e8973f94 100644
--- a/lib/ocsp-api.c
+++ b/lib/ocsp-api.c
@@ -34,8 +34,8 @@
#ifdef ENABLE_OCSP
-#include <gnutls/ocsp.h>
-#include "x509/ocsp.h"
+# include <gnutls/ocsp.h>
+# include "x509/ocsp.h"
/**
* gnutls_ocsp_status_request_get:
@@ -83,20 +83,19 @@ gnutls_ocsp_status_request_get(gnutls_session_t session,
**/
int
gnutls_ocsp_status_request_get2(gnutls_session_t session,
- unsigned idx,
- gnutls_datum_t * response)
+ unsigned idx, gnutls_datum_t * response)
{
const version_entry_st *ver = get_version(session);
- cert_auth_info_t info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ cert_auth_info_t info =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
- if (!ver->tls13_sem && session->security_parameters.entity == GNUTLS_SERVER)
+ if (!ver->tls13_sem
+ && session->security_parameters.entity == GNUTLS_SERVER)
return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
if (info == NULL || info->raw_ocsp_list == NULL ||
info->nocsp <= idx || info->raw_ocsp_list[idx].size == 0)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
response->data = info->raw_ocsp_list[idx].data;
response->size = info->raw_ocsp_list[idx].size;
@@ -131,10 +130,9 @@ gnutls_ocsp_status_request_get2(gnutls_session_t session,
* Since: 3.1.3
**/
void
-gnutls_certificate_set_ocsp_status_request_function
-(gnutls_certificate_credentials_t sc,
-gnutls_status_request_ocsp_func ocsp_func, void *ptr)
-{
+ gnutls_certificate_set_ocsp_status_request_function
+ (gnutls_certificate_credentials_t sc,
+ gnutls_status_request_ocsp_func ocsp_func, void *ptr) {
sc->glob_ocsp_func = ocsp_func;
sc->glob_ocsp_func_ptr = ptr;
@@ -176,9 +174,9 @@ gnutls_status_request_ocsp_func ocsp_func, void *ptr)
* Since: 3.5.5
**/
int
-gnutls_certificate_set_ocsp_status_request_function2
-(gnutls_certificate_credentials_t sc, unsigned idx, gnutls_status_request_ocsp_func ocsp_func, void *ptr)
-{
+ gnutls_certificate_set_ocsp_status_request_function2
+ (gnutls_certificate_credentials_t sc, unsigned idx,
+ gnutls_status_request_ocsp_func ocsp_func, void *ptr) {
if (idx >= sc->ncerts)
return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
@@ -189,7 +187,8 @@ gnutls_certificate_set_ocsp_status_request_function2
}
static
-unsigned resp_matches_pcert(gnutls_ocsp_resp_t resp, const gnutls_pcert_st *cert)
+unsigned resp_matches_pcert(gnutls_ocsp_resp_t resp,
+ const gnutls_pcert_st * cert)
{
gnutls_x509_crt_t crt;
int ret;
@@ -252,14 +251,16 @@ unsigned resp_matches_pcert(gnutls_ocsp_resp_t resp, const gnutls_pcert_st *cert
* Since: 3.1.3
**/
int
-gnutls_certificate_set_ocsp_status_request_file(gnutls_certificate_credentials_t sc,
- const char *response_file,
+gnutls_certificate_set_ocsp_status_request_file(gnutls_certificate_credentials_t
+ sc, const char *response_file,
unsigned idx)
{
int ret;
- ret = gnutls_certificate_set_ocsp_status_request_file2(sc, response_file,
- idx, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file2(sc, response_file,
+ idx,
+ GNUTLS_X509_FMT_DER);
if (ret >= 0)
return 0;
else
@@ -267,7 +268,7 @@ gnutls_certificate_set_ocsp_status_request_file(gnutls_certificate_credentials_t
}
static int append_response(gnutls_certificate_credentials_t sc, unsigned idx,
- gnutls_ocsp_resp_t resp, const gnutls_datum_t *der)
+ gnutls_ocsp_resp_t resp, const gnutls_datum_t * der)
{
int ret;
unsigned i, found = 0;
@@ -279,8 +280,11 @@ static int append_response(gnutls_certificate_credentials_t sc, unsigned idx,
/* iterate through all certificates in chain, and add the response
* to the certificate that it matches with.
*/
- for (i=0;i<MIN(sc->certs[idx].cert_list_length, MAX_OCSP_RESPONSES);i++) {
- if (!try_already_set && sc->certs[idx].ocsp_data[i].response.data)
+ for (i = 0;
+ i < MIN(sc->certs[idx].cert_list_length, MAX_OCSP_RESPONSES);
+ i++) {
+ if (!try_already_set
+ && sc->certs[idx].ocsp_data[i].response.data)
continue;
if (!resp_matches_pcert(resp, &sc->certs[idx].cert_list[i]))
@@ -288,11 +292,15 @@ static int append_response(gnutls_certificate_credentials_t sc, unsigned idx,
t = _gnutls_ocsp_get_validity(resp);
/* if already invalid */
- if (t == (time_t)-1) {
- _gnutls_debug_log("the OCSP response associated with chain %d on pos %d, is invalid/expired\n", idx, i);
+ if (t == (time_t) - 1) {
+ _gnutls_debug_log
+ ("the OCSP response associated with chain %d on pos %d, is invalid/expired\n",
+ idx, i);
return GNUTLS_E_EXPIRED;
- } else if (t == (time_t)-2) {
- _gnutls_debug_log("the OCSP response associated with chain %d on pos %d, is too old (ignoring)\n", idx, i);
+ } else if (t == (time_t) - 2) {
+ _gnutls_debug_log
+ ("the OCSP response associated with chain %d on pos %d, is too old (ignoring)\n",
+ idx, i);
return 0;
}
@@ -301,13 +309,14 @@ static int append_response(gnutls_certificate_credentials_t sc, unsigned idx,
else
sc->certs[idx].ocsp_data[i].exptime = 0;
- _gnutls_debug_log("associating OCSP response with chain %d on pos %d\n", idx, i);
+ _gnutls_debug_log
+ ("associating OCSP response with chain %d on pos %d\n", idx,
+ i);
gnutls_free(sc->certs[idx].ocsp_data[i].response.data);
ret = _gnutls_set_datum(&sc->certs[idx].ocsp_data[i].response,
- der->data,
- der->size);
+ der->data, der->size);
if (ret < 0) {
gnutls_assert();
sc->certs[idx].ocsp_data[i].response.data = NULL;
@@ -316,7 +325,7 @@ static int append_response(gnutls_certificate_credentials_t sc, unsigned idx,
}
if (sc->certs[idx].ocsp_data_length <= i)
- sc->certs[idx].ocsp_data_length = i+1;
+ sc->certs[idx].ocsp_data_length = i + 1;
found = 1;
break;
@@ -366,13 +375,10 @@ static int append_response(gnutls_certificate_credentials_t sc, unsigned idx,
*
* Since: 3.1.3
**/
-int
-gnutls_certificate_set_ocsp_status_request_file2(gnutls_certificate_credentials_t sc,
- const char *response_file,
- unsigned idx,
- gnutls_x509_crt_fmt_t fmt)
-{
- gnutls_datum_t raw = {NULL, 0};
+int gnutls_certificate_set_ocsp_status_request_file2
+ (gnutls_certificate_credentials_t sc, const char *response_file,
+ unsigned idx, gnutls_x509_crt_fmt_t fmt) {
+ gnutls_datum_t raw = { NULL, 0 };
int ret;
if (idx >= sc->ncerts)
@@ -382,13 +388,14 @@ gnutls_certificate_set_ocsp_status_request_file2(gnutls_certificate_credentials_
if (ret < 0)
return gnutls_assert_val(GNUTLS_E_FILE_ERROR);
- ret = gnutls_certificate_set_ocsp_status_request_mem(sc, &raw, idx, fmt);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_mem(sc, &raw, idx, fmt);
gnutls_free(raw.data);
return ret;
}
-#define PEM_OCSP_RESPONSE "OCSP RESPONSE"
-#define FULL_PEM_OCSP_RESPONSE "-----BEGIN OCSP RESPONSE"
+# define PEM_OCSP_RESPONSE "OCSP RESPONSE"
+# define FULL_PEM_OCSP_RESPONSE "-----BEGIN OCSP RESPONSE"
/**
* gnutls_certificate_set_ocsp_status_request_mem:
@@ -424,13 +431,13 @@ gnutls_certificate_set_ocsp_status_request_file2(gnutls_certificate_credentials_
* Since: 3.6.3
**/
int
-gnutls_certificate_set_ocsp_status_request_mem(gnutls_certificate_credentials_t sc,
- const gnutls_datum_t *resp_data,
+gnutls_certificate_set_ocsp_status_request_mem(gnutls_certificate_credentials_t
+ sc,
+ const gnutls_datum_t * resp_data,
unsigned idx,
gnutls_x509_crt_fmt_t fmt)
-
{
- gnutls_datum_t der = {NULL, 0};
+ gnutls_datum_t der = { NULL, 0 };
gnutls_ocsp_resp_t resp = NULL;
int ret;
unsigned int nresp = 0;
@@ -442,30 +449,39 @@ gnutls_certificate_set_ocsp_status_request_mem(gnutls_certificate_credentials_t
if (fmt == GNUTLS_X509_FMT_PEM) {
/* load multiple responses */
- gnutls_datum_t p = {resp_data->data, resp_data->size};
+ gnutls_datum_t p = { resp_data->data, resp_data->size };
p.data = memmem(p.data, p.size, FULL_PEM_OCSP_RESPONSE,
- sizeof(FULL_PEM_OCSP_RESPONSE)-1);
+ sizeof(FULL_PEM_OCSP_RESPONSE) - 1);
if (p.data == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
goto cleanup;
}
p.size -= p.data - resp_data->data;
if (p.size <= 0) {
- ret = gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
goto cleanup;
}
do {
- ret = gnutls_pem_base64_decode2(PEM_OCSP_RESPONSE, &p, &der);
+ ret =
+ gnutls_pem_base64_decode2(PEM_OCSP_RESPONSE, &p,
+ &der);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = gnutls_certificate_set_ocsp_status_request_mem(sc, &der, idx,
- GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_mem(sc,
+ &der,
+ idx,
+ GNUTLS_X509_FMT_DER);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -478,19 +494,22 @@ gnutls_certificate_set_ocsp_status_request_mem(gnutls_certificate_credentials_t
p.size--;
p.data = memmem(p.data, p.size, FULL_PEM_OCSP_RESPONSE,
- sizeof(FULL_PEM_OCSP_RESPONSE)-1);
+ sizeof(FULL_PEM_OCSP_RESPONSE) - 1);
if (p.data == NULL)
break;
p.size = resp_data->size - (p.data - resp_data->data);
- } while(p.size > 0);
+ } while (p.size > 0);
ret = nresp;
} else {
/* DER: load a single response */
if (sc->flags & GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK) {
- ret = gnutls_ocsp_resp_import2(resp, resp_data, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_ocsp_resp_import2(resp, resp_data,
+ GNUTLS_X509_FMT_DER);
if (ret >= 0) {
- sc->certs[idx].ocsp_data[0].exptime = _gnutls_ocsp_get_validity(resp);
+ sc->certs[idx].ocsp_data[0].exptime =
+ _gnutls_ocsp_get_validity(resp);
if (sc->certs[idx].ocsp_data[0].exptime <= 0)
sc->certs[idx].ocsp_data[0].exptime = 0;
}
@@ -498,9 +517,10 @@ gnutls_certificate_set_ocsp_status_request_mem(gnutls_certificate_credentials_t
/* quick load of first response */
gnutls_free(sc->certs[idx].ocsp_data[0].response.data);
- ret = _gnutls_set_datum(&sc->certs[idx].ocsp_data[0].response,
- resp_data->data,
- resp_data->size);
+ ret =
+ _gnutls_set_datum(&sc->certs[idx].
+ ocsp_data[0].response,
+ resp_data->data, resp_data->size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -510,7 +530,9 @@ gnutls_certificate_set_ocsp_status_request_mem(gnutls_certificate_credentials_t
goto cleanup;
}
- ret = gnutls_ocsp_resp_import2(resp, resp_data, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_ocsp_resp_import2(resp, resp_data,
+ GNUTLS_X509_FMT_DER);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -524,7 +546,7 @@ gnutls_certificate_set_ocsp_status_request_mem(gnutls_certificate_credentials_t
ret = 1;
}
- cleanup:
+ cleanup:
gnutls_free(der.data);
if (resp)
gnutls_ocsp_resp_deinit(resp);
@@ -558,34 +580,34 @@ gnutls_certificate_set_ocsp_status_request_mem(gnutls_certificate_credentials_t
**/
time_t
gnutls_certificate_get_ocsp_expiration(gnutls_certificate_credentials_t sc,
- unsigned idx,
- int oidx,
- unsigned flags)
+ unsigned idx, int oidx, unsigned flags)
{
unsigned j;
if (idx >= sc->ncerts)
- return (time_t)-2;
+ return (time_t) - 2;
if (oidx == -1) {
time_t min = 0;
- for (j=0;j<MIN(sc->certs[idx].cert_list_length, MAX_OCSP_RESPONSES);j++) {
+ for (j = 0;
+ j < MIN(sc->certs[idx].cert_list_length,
+ MAX_OCSP_RESPONSES); j++) {
if (min <= 0)
min = sc->certs[idx].ocsp_data[j].exptime;
- else
- if (sc->certs[idx].ocsp_data[j].exptime > 0 &&
- min >= sc->certs[idx].ocsp_data[j].exptime)
- min = sc->certs[idx].ocsp_data[j].exptime;
+ else if (sc->certs[idx].ocsp_data[j].exptime > 0 &&
+ min >= sc->certs[idx].ocsp_data[j].exptime)
+ min = sc->certs[idx].ocsp_data[j].exptime;
}
return min;
}
- if (oidx >= MAX_OCSP_RESPONSES || (unsigned)oidx >= sc->certs[idx].cert_list_length)
- return (time_t)-2;
+ if (oidx >= MAX_OCSP_RESPONSES
+ || (unsigned)oidx >= sc->certs[idx].cert_list_length)
+ return (time_t) - 2;
if (sc->certs[idx].ocsp_data[oidx].response.data == NULL)
- return (time_t)-1;
+ return (time_t) - 1;
return sc->certs[idx].ocsp_data[oidx].exptime;
}
diff --git a/lib/openpgp_compat.c b/lib/openpgp_compat.c
index d96ee8d8c6..6371daba97 100644
--- a/lib/openpgp_compat.c
+++ b/lib/openpgp_compat.c
@@ -47,36 +47,33 @@ int gnutls_openpgp_crt_import(gnutls_openpgp_crt_t key,
int gnutls_openpgp_crt_export(gnutls_openpgp_crt_t key,
gnutls_openpgp_crt_fmt_t format,
- void *output_data,
- size_t * output_data_size)
+ void *output_data, size_t *output_data_size)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_crt_export2(gnutls_openpgp_crt_t key,
gnutls_openpgp_crt_fmt_t format,
- gnutls_datum_t * out)
+ gnutls_datum_t * out)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_crt_print(gnutls_openpgp_crt_t cert,
gnutls_certificate_print_formats_t
- format, gnutls_datum_t * out)
+ format, gnutls_datum_t * out)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_crt_get_key_usage(gnutls_openpgp_crt_t key,
- unsigned int *key_usage)
+ unsigned int *key_usage)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_crt_get_fingerprint(gnutls_openpgp_crt_t key,
- void *fpr, size_t * fprlen)
+ void *fpr, size_t *fprlen)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -84,137 +81,125 @@ int gnutls_openpgp_crt_get_fingerprint(gnutls_openpgp_crt_t key,
int gnutls_openpgp_crt_get_subkey_fingerprint(gnutls_openpgp_crt_t
key,
unsigned int idx,
- void *fpr, size_t * fprlen)
+ void *fpr, size_t *fprlen)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_crt_get_name(gnutls_openpgp_crt_t key,
- int idx, char *buf, size_t * sizeof_buf)
+ int idx, char *buf, size_t *sizeof_buf)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
gnutls_pk_algorithm_t
gnutls_openpgp_crt_get_pk_algorithm(gnutls_openpgp_crt_t key,
- unsigned int *bits)
+ unsigned int *bits)
{
return GNUTLS_PK_UNKNOWN;
}
-
-int gnutls_openpgp_crt_get_version(gnutls_openpgp_crt_t key)
+int gnutls_openpgp_crt_get_version(gnutls_openpgp_crt_t key)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
-time_t gnutls_openpgp_crt_get_creation_time(gnutls_openpgp_crt_t key)
+time_t gnutls_openpgp_crt_get_creation_time(gnutls_openpgp_crt_t key)
{
- return (time_t)-1;
+ return (time_t) - 1;
}
-time_t gnutls_openpgp_crt_get_expiration_time(gnutls_openpgp_crt_t key)
+time_t gnutls_openpgp_crt_get_expiration_time(gnutls_openpgp_crt_t key)
{
- return (time_t)-1;
+ return (time_t) - 1;
}
-
int gnutls_openpgp_crt_get_key_id(gnutls_openpgp_crt_t key,
- gnutls_openpgp_keyid_t keyid)
+ gnutls_openpgp_keyid_t keyid)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_crt_check_hostname(gnutls_openpgp_crt_t key,
- const char *hostname)
+ const char *hostname)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_crt_check_hostname2(gnutls_openpgp_crt_t key,
- const char *hostname, unsigned int flags)
+ const char *hostname, unsigned int flags)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int
-gnutls_openpgp_crt_check_email(gnutls_openpgp_crt_t key, const char *email, unsigned flags)
+gnutls_openpgp_crt_check_email(gnutls_openpgp_crt_t key, const char *email,
+ unsigned flags)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
-int gnutls_openpgp_crt_get_revoked_status(gnutls_openpgp_crt_t key)
+int gnutls_openpgp_crt_get_revoked_status(gnutls_openpgp_crt_t key)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
-int gnutls_openpgp_crt_get_subkey_count(gnutls_openpgp_crt_t key)
+int gnutls_openpgp_crt_get_subkey_count(gnutls_openpgp_crt_t key)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_crt_get_subkey_idx(gnutls_openpgp_crt_t key,
- const gnutls_openpgp_keyid_t keyid)
+ const gnutls_openpgp_keyid_t keyid)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_crt_get_subkey_revoked_status
- (gnutls_openpgp_crt_t key, unsigned int idx)
-{
+ (gnutls_openpgp_crt_t key, unsigned int idx) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
gnutls_pk_algorithm_t
gnutls_openpgp_crt_get_subkey_pk_algorithm(gnutls_openpgp_crt_t
key,
- unsigned int idx,
- unsigned int *bits)
+ unsigned int idx, unsigned int *bits)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
time_t
gnutls_openpgp_crt_get_subkey_creation_time
- (gnutls_openpgp_crt_t key, unsigned int idx)
-{
- return (time_t)-1;
+ (gnutls_openpgp_crt_t key, unsigned int idx) {
+ return (time_t) - 1;
}
time_t
gnutls_openpgp_crt_get_subkey_expiration_time
- (gnutls_openpgp_crt_t key, unsigned int idx)
-{
- return (time_t)-1;
+ (gnutls_openpgp_crt_t key, unsigned int idx) {
+ return (time_t) - 1;
}
int gnutls_openpgp_crt_get_subkey_id(gnutls_openpgp_crt_t key,
unsigned int idx,
- gnutls_openpgp_keyid_t keyid)
+ gnutls_openpgp_keyid_t keyid)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_crt_get_subkey_usage(gnutls_openpgp_crt_t key,
unsigned int idx,
- unsigned int *key_usage)
+ unsigned int *key_usage)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_crt_get_subkey_pk_dsa_raw(gnutls_openpgp_crt_t
crt, unsigned int idx,
gnutls_datum_t * p,
gnutls_datum_t * q,
gnutls_datum_t * g,
- gnutls_datum_t * y)
+ gnutls_datum_t * y)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -222,7 +207,7 @@ int gnutls_openpgp_crt_get_subkey_pk_dsa_raw(gnutls_openpgp_crt_t
int gnutls_openpgp_crt_get_subkey_pk_rsa_raw(gnutls_openpgp_crt_t
crt, unsigned int idx,
gnutls_datum_t * m,
- gnutls_datum_t * e)
+ gnutls_datum_t * e)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -230,39 +215,33 @@ int gnutls_openpgp_crt_get_subkey_pk_rsa_raw(gnutls_openpgp_crt_t
int gnutls_openpgp_crt_get_pk_dsa_raw(gnutls_openpgp_crt_t crt,
gnutls_datum_t * p,
gnutls_datum_t * q,
- gnutls_datum_t * g,
- gnutls_datum_t * y)
+ gnutls_datum_t * g, gnutls_datum_t * y)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_crt_get_pk_rsa_raw(gnutls_openpgp_crt_t crt,
- gnutls_datum_t * m,
- gnutls_datum_t * e)
+ gnutls_datum_t * m, gnutls_datum_t * e)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_crt_get_preferred_key_id(gnutls_openpgp_crt_t
- key,
- gnutls_openpgp_keyid_t keyid)
+ key, gnutls_openpgp_keyid_t keyid)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int
gnutls_openpgp_crt_set_preferred_key_id(gnutls_openpgp_crt_t key,
- const
- gnutls_openpgp_keyid_t keyid)
+ const gnutls_openpgp_keyid_t keyid)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
/* privkey stuff.
*/
-int gnutls_openpgp_privkey_init(gnutls_openpgp_privkey_t * key)
+int gnutls_openpgp_privkey_init(gnutls_openpgp_privkey_t * key)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -274,13 +253,12 @@ void gnutls_openpgp_privkey_deinit(gnutls_openpgp_privkey_t key)
gnutls_pk_algorithm_t
gnutls_openpgp_privkey_get_pk_algorithm
- (gnutls_openpgp_privkey_t key, unsigned int *bits)
-{
+ (gnutls_openpgp_privkey_t key, unsigned int *bits) {
return GNUTLS_PK_UNKNOWN;
}
gnutls_sec_param_t
-gnutls_openpgp_privkey_sec_param(gnutls_openpgp_privkey_t key)
+gnutls_openpgp_privkey_sec_param(gnutls_openpgp_privkey_t key)
{
return 0;
}
@@ -288,115 +266,96 @@ gnutls_openpgp_privkey_sec_param(gnutls_openpgp_privkey_t key)
int gnutls_openpgp_privkey_import(gnutls_openpgp_privkey_t key,
const gnutls_datum_t * data,
gnutls_openpgp_crt_fmt_t format,
- const char *password,
- unsigned int flags)
+ const char *password, unsigned int flags)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_privkey_get_fingerprint(gnutls_openpgp_privkey_t
- key, void *fpr,
- size_t * fprlen)
+ key, void *fpr, size_t *fprlen)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_privkey_get_subkey_fingerprint
(gnutls_openpgp_privkey_t key, unsigned int idx, void *fpr,
- size_t * fprlen)
-{
+ size_t *fprlen) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_privkey_get_key_id(gnutls_openpgp_privkey_t key,
- gnutls_openpgp_keyid_t keyid)
+ gnutls_openpgp_keyid_t keyid)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-int gnutls_openpgp_privkey_get_subkey_count(gnutls_openpgp_privkey_t key)
+int gnutls_openpgp_privkey_get_subkey_count(gnutls_openpgp_privkey_t key)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_privkey_get_subkey_idx(gnutls_openpgp_privkey_t
key,
- const
- gnutls_openpgp_keyid_t keyid)
+ const gnutls_openpgp_keyid_t keyid)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_privkey_get_subkey_revoked_status
- (gnutls_openpgp_privkey_t key, unsigned int idx)
-{
+ (gnutls_openpgp_privkey_t key, unsigned int idx) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
-int gnutls_openpgp_privkey_get_revoked_status
- (gnutls_openpgp_privkey_t key)
+int gnutls_openpgp_privkey_get_revoked_status(gnutls_openpgp_privkey_t key)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
gnutls_pk_algorithm_t
gnutls_openpgp_privkey_get_subkey_pk_algorithm
- (gnutls_openpgp_privkey_t key, unsigned int idx, unsigned int *bits)
-{
+ (gnutls_openpgp_privkey_t key, unsigned int idx, unsigned int *bits) {
return GNUTLS_PK_UNKNOWN;
}
-
time_t
gnutls_openpgp_privkey_get_subkey_expiration_time
- (gnutls_openpgp_privkey_t key, unsigned int idx)
-{
- return (time_t)-1;
+ (gnutls_openpgp_privkey_t key, unsigned int idx) {
+ return (time_t) - 1;
}
int gnutls_openpgp_privkey_get_subkey_id(gnutls_openpgp_privkey_t
key, unsigned int idx,
- gnutls_openpgp_keyid_t keyid)
+ gnutls_openpgp_keyid_t keyid)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
time_t
gnutls_openpgp_privkey_get_subkey_creation_time
- (gnutls_openpgp_privkey_t key, unsigned int idx)
-{
- return (time_t)-1;
+ (gnutls_openpgp_privkey_t key, unsigned int idx) {
+ return (time_t) - 1;
}
-
int gnutls_openpgp_privkey_export_subkey_dsa_raw
(gnutls_openpgp_privkey_t pkey, unsigned int idx,
gnutls_datum_t * p, gnutls_datum_t * q, gnutls_datum_t * g,
- gnutls_datum_t * y, gnutls_datum_t * x)
-{
+ gnutls_datum_t * y, gnutls_datum_t * x) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_privkey_export_subkey_rsa_raw
(gnutls_openpgp_privkey_t pkey, unsigned int idx,
gnutls_datum_t * m, gnutls_datum_t * e, gnutls_datum_t * d,
- gnutls_datum_t * p, gnutls_datum_t * q, gnutls_datum_t * u)
-{
+ gnutls_datum_t * p, gnutls_datum_t * q, gnutls_datum_t * u) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_privkey_export_dsa_raw(gnutls_openpgp_privkey_t
pkey, gnutls_datum_t * p,
gnutls_datum_t * q,
gnutls_datum_t * g,
gnutls_datum_t * y,
- gnutls_datum_t * x)
+ gnutls_datum_t * x)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -407,18 +366,16 @@ int gnutls_openpgp_privkey_export_rsa_raw(gnutls_openpgp_privkey_t
gnutls_datum_t * d,
gnutls_datum_t * p,
gnutls_datum_t * q,
- gnutls_datum_t * u)
+ gnutls_datum_t * u)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_privkey_export(gnutls_openpgp_privkey_t key,
gnutls_openpgp_crt_fmt_t format,
const char *password,
unsigned int flags,
- void *output_data,
- size_t * output_data_size)
+ void *output_data, size_t *output_data_size)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -426,38 +383,32 @@ int gnutls_openpgp_privkey_export(gnutls_openpgp_privkey_t key,
int gnutls_openpgp_privkey_export2(gnutls_openpgp_privkey_t key,
gnutls_openpgp_crt_fmt_t format,
const char *password,
- unsigned int flags,
- gnutls_datum_t * out)
+ unsigned int flags, gnutls_datum_t * out)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_privkey_set_preferred_key_id
- (gnutls_openpgp_privkey_t key, const gnutls_openpgp_keyid_t keyid)
-{
+ (gnutls_openpgp_privkey_t key, const gnutls_openpgp_keyid_t keyid) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_openpgp_privkey_get_preferred_key_id
- (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid)
-{
+ (gnutls_openpgp_privkey_t key, gnutls_openpgp_keyid_t keyid) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_crt_get_auth_subkey(gnutls_openpgp_crt_t crt,
gnutls_openpgp_keyid_t
- keyid, unsigned int flag)
+ keyid, unsigned int flag)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
/* Keyring stuff.
*/
-int gnutls_openpgp_keyring_init(gnutls_openpgp_keyring_t * keyring)
+int gnutls_openpgp_keyring_init(gnutls_openpgp_keyring_t * keyring)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -469,56 +420,46 @@ void gnutls_openpgp_keyring_deinit(gnutls_openpgp_keyring_t keyring)
int gnutls_openpgp_keyring_import(gnutls_openpgp_keyring_t keyring,
const gnutls_datum_t * data,
- gnutls_openpgp_crt_fmt_t format)
+ gnutls_openpgp_crt_fmt_t format)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_keyring_check_id(gnutls_openpgp_keyring_t ring,
const gnutls_openpgp_keyid_t
- keyid, unsigned int flags)
+ keyid, unsigned int flags)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
-
int gnutls_openpgp_crt_verify_ring(gnutls_openpgp_crt_t key,
gnutls_openpgp_keyring_t
keyring, unsigned int flags,
unsigned int *verify
/* the output of the verification */
- )
+ )
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_crt_verify_self(gnutls_openpgp_crt_t key,
- unsigned int flags,
- unsigned int *verify)
+ unsigned int flags, unsigned int *verify)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_openpgp_keyring_get_crt(gnutls_openpgp_keyring_t ring,
unsigned int idx,
- gnutls_openpgp_crt_t * cert)
+ gnutls_openpgp_crt_t * cert)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
-int gnutls_openpgp_keyring_get_crt_count(gnutls_openpgp_keyring_t ring)
+int gnutls_openpgp_keyring_get_crt_count(gnutls_openpgp_keyring_t ring)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
-
-
void
gnutls_openpgp_set_recv_key_function(gnutls_session_t session,
gnutls_openpgp_recv_key_func func)
@@ -528,53 +469,46 @@ gnutls_openpgp_set_recv_key_function(gnutls_session_t session,
int gnutls_certificate_set_openpgp_key
(gnutls_certificate_credentials_t res,
- gnutls_openpgp_crt_t crt, gnutls_openpgp_privkey_t pkey)
-{
+ gnutls_openpgp_crt_t crt, gnutls_openpgp_privkey_t pkey) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int
gnutls_certificate_get_openpgp_key(gnutls_certificate_credentials_t res,
- unsigned index,
- gnutls_openpgp_privkey_t *key)
+ unsigned index,
+ gnutls_openpgp_privkey_t * key)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int
gnutls_certificate_get_openpgp_crt(gnutls_certificate_credentials_t res,
- unsigned index,
- gnutls_openpgp_crt_t **crt_list,
- unsigned *crt_list_size)
+ unsigned index,
+ gnutls_openpgp_crt_t ** crt_list,
+ unsigned *crt_list_size)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int
gnutls_certificate_set_openpgp_key_file
(gnutls_certificate_credentials_t res, const char *certfile,
- const char *keyfile, gnutls_openpgp_crt_fmt_t format)
-{
+ const char *keyfile, gnutls_openpgp_crt_fmt_t format) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int gnutls_certificate_set_openpgp_key_mem
(gnutls_certificate_credentials_t res,
const gnutls_datum_t * cert, const gnutls_datum_t * key,
- gnutls_openpgp_crt_fmt_t format)
-{
+ gnutls_openpgp_crt_fmt_t format) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int
gnutls_certificate_set_openpgp_key_file2
(gnutls_certificate_credentials_t res, const char *certfile,
const char *keyfile, const char *subkey_id,
- gnutls_openpgp_crt_fmt_t format)
-{
+ gnutls_openpgp_crt_fmt_t format) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -582,24 +516,19 @@ int
gnutls_certificate_set_openpgp_key_mem2
(gnutls_certificate_credentials_t res,
const gnutls_datum_t * cert, const gnutls_datum_t * key,
- const char *subkey_id, gnutls_openpgp_crt_fmt_t format)
-{
+ const char *subkey_id, gnutls_openpgp_crt_fmt_t format) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_certificate_set_openpgp_keyring_mem
(gnutls_certificate_credentials_t c, const unsigned char *data,
- size_t dlen, gnutls_openpgp_crt_fmt_t format)
-{
+ size_t dlen, gnutls_openpgp_crt_fmt_t format) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
int gnutls_certificate_set_openpgp_keyring_file
(gnutls_certificate_credentials_t c, const char *file,
- gnutls_openpgp_crt_fmt_t format)
-{
+ gnutls_openpgp_crt_fmt_t format) {
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -616,8 +545,7 @@ int gnutls_certificate_set_openpgp_keyring_file
* Since: 2.12.0
**/
int gnutls_pubkey_import_openpgp(gnutls_pubkey_t key,
- gnutls_openpgp_crt_t crt,
- unsigned int flags)
+ gnutls_openpgp_crt_t crt, unsigned int flags)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -665,8 +593,7 @@ int
gnutls_pubkey_get_openpgp_key_id(gnutls_pubkey_t key,
unsigned int flags,
unsigned char *output_data,
- size_t * output_data_size,
- unsigned int *subkey)
+ size_t *output_data_size, unsigned int *subkey)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -702,7 +629,7 @@ int gnutls_privkey_import_openpgp(gnutls_privkey_t pkey,
* Since: 3.4.0
*/
int gnutls_privkey_export_openpgp(gnutls_privkey_t pkey,
- gnutls_openpgp_privkey_t * key)
+ gnutls_openpgp_privkey_t * key)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -768,8 +695,7 @@ int gnutls_pcert_import_openpgp_raw(gnutls_pcert_st * pcert,
* Since: 3.0
**/
int gnutls_pcert_import_openpgp(gnutls_pcert_st * pcert,
- gnutls_openpgp_crt_t crt,
- unsigned int flags)
+ gnutls_openpgp_crt_t crt, unsigned int flags)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -786,7 +712,7 @@ int gnutls_pcert_import_openpgp(gnutls_pcert_st * pcert,
* Since: 3.4.0
*/
int gnutls_pcert_export_openpgp(gnutls_pcert_st * pcert,
- gnutls_openpgp_crt_t * crt)
+ gnutls_openpgp_crt_t * crt)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -841,4 +767,3 @@ gnutls_openpgp_privkey_sign_hash(gnutls_openpgp_privkey_t key,
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-
diff --git a/lib/pathbuf.c b/lib/pathbuf.c
index a5d6316fcd..88a39e284b 100644
--- a/lib/pathbuf.c
+++ b/lib/pathbuf.c
@@ -28,8 +28,7 @@
#include <limits.h>
#include "intprops.h"
-static int
-pathbuf_reserve(struct gnutls_pathbuf_st *buffer, size_t to_add)
+static int pathbuf_reserve(struct gnutls_pathbuf_st *buffer, size_t to_add)
{
size_t len;
char *ptr;
@@ -70,8 +69,7 @@ pathbuf_reserve(struct gnutls_pathbuf_st *buffer, size_t to_add)
return 0;
}
-int
-_gnutls_pathbuf_init(struct gnutls_pathbuf_st *buffer, const char *base)
+int _gnutls_pathbuf_init(struct gnutls_pathbuf_st *buffer, const char *base)
{
size_t len;
int ret;
@@ -124,8 +122,7 @@ _gnutls_pathbuf_append(struct gnutls_pathbuf_st *buffer, const char *component)
return 0;
}
-int
-_gnutls_pathbuf_truncate(struct gnutls_pathbuf_st *buffer, size_t len)
+int _gnutls_pathbuf_truncate(struct gnutls_pathbuf_st *buffer, size_t len)
{
if (len > buffer->len) {
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -135,12 +132,10 @@ _gnutls_pathbuf_truncate(struct gnutls_pathbuf_st *buffer, size_t len)
return 0;
}
-void
-_gnutls_pathbuf_deinit(struct gnutls_pathbuf_st *buffer)
+void _gnutls_pathbuf_deinit(struct gnutls_pathbuf_st *buffer)
{
if (buffer->ptr != buffer->base) {
gnutls_free(buffer->ptr);
}
memset(buffer, 0, sizeof(*buffer));
}
-
diff --git a/lib/pathbuf.h b/lib/pathbuf.h
index 2739e4dd29..b2e90c6136 100644
--- a/lib/pathbuf.h
+++ b/lib/pathbuf.h
@@ -22,10 +22,10 @@
*/
#ifndef GNUTLS_LIB_PATHBUF_H
-#define GNUTLS_LIB_PATHBUF_H
+# define GNUTLS_LIB_PATHBUF_H
-#include "pathmax.h"
-#define GNUTLS_PATH_MAX PATH_MAX
+# include "pathmax.h"
+# define GNUTLS_PATH_MAX PATH_MAX
struct gnutls_pathbuf_st {
char base[GNUTLS_PATH_MAX + 1];
@@ -38,7 +38,8 @@ struct gnutls_pathbuf_st {
int _gnutls_pathbuf_init(struct gnutls_pathbuf_st *buffer, const char *base);
/* Append COMPONENT to BUFFER, separated with a "/". */
-int _gnutls_pathbuf_append(struct gnutls_pathbuf_st *buffer, const char *component);
+int _gnutls_pathbuf_append(struct gnutls_pathbuf_st *buffer,
+ const char *component);
/* Truncate the length of BUFFER to LEN. */
int _gnutls_pathbuf_truncate(struct gnutls_pathbuf_st *buffer, size_t len);
@@ -46,4 +47,4 @@ int _gnutls_pathbuf_truncate(struct gnutls_pathbuf_st *buffer, size_t len);
/* Deinitialize BUFFER. */
void _gnutls_pathbuf_deinit(struct gnutls_pathbuf_st *buffer);
-#endif /* GNUTLS_LIB_PATHBUF_H */
+#endif /* GNUTLS_LIB_PATHBUF_H */
diff --git a/lib/pcert.c b/lib/pcert.c
index e5057aec51..84da6d2fd7 100644
--- a/lib/pcert.c
+++ b/lib/pcert.c
@@ -54,9 +54,7 @@ int gnutls_pcert_import_x509(gnutls_pcert_st * pcert,
pcert->type = GNUTLS_CRT_X509;
pcert->cert.data = NULL;
- ret =
- gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_DER,
- &pcert->cert);
+ ret = gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_DER, &pcert->cert);
if (ret < 0) {
ret = gnutls_assert_val(ret);
goto cleanup;
@@ -78,7 +76,7 @@ int gnutls_pcert_import_x509(gnutls_pcert_st * pcert,
return 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(&pcert->cert);
return ret;
@@ -107,7 +105,7 @@ int gnutls_pcert_import_x509(gnutls_pcert_st * pcert,
* Since: 3.4.0
**/
int gnutls_pcert_import_x509_list(gnutls_pcert_st * pcert_list,
- gnutls_x509_crt_t *crt, unsigned *ncrt,
+ gnutls_x509_crt_t * crt, unsigned *ncrt,
unsigned int flags)
{
int ret;
@@ -134,7 +132,7 @@ int gnutls_pcert_import_x509_list(gnutls_pcert_st * pcert_list,
}
}
- for (i=0;i<*ncrt;i++) {
+ for (i = 0; i < *ncrt; i++) {
ret = gnutls_pcert_import_x509(&pcert_list[i], s[i], 0);
if (ret < 0) {
current = i;
@@ -145,7 +143,7 @@ int gnutls_pcert_import_x509_list(gnutls_pcert_st * pcert_list,
return 0;
cleanup:
- for (i=0;i<current;i++) {
+ for (i = 0; i < current; i++) {
gnutls_pcert_deinit(&pcert_list[i]);
}
return ret;
@@ -175,9 +173,9 @@ int gnutls_pcert_import_x509_list(gnutls_pcert_st * pcert_list,
* Since: 3.0
**/
int
-gnutls_pcert_list_import_x509_raw(gnutls_pcert_st *pcert_list,
+gnutls_pcert_list_import_x509_raw(gnutls_pcert_st * pcert_list,
unsigned int *pcert_list_size,
- const gnutls_datum_t *data,
+ const gnutls_datum_t * data,
gnutls_x509_crt_fmt_t format,
unsigned int flags)
{
@@ -246,7 +244,7 @@ gnutls_pcert_list_import_x509_raw(gnutls_pcert_st *pcert_list,
*
* Since: 3.6.3
**/
-int gnutls_pcert_list_import_x509_file(gnutls_pcert_st *pcert_list,
+int gnutls_pcert_list_import_x509_file(gnutls_pcert_st * pcert_list,
unsigned *pcert_list_size,
const char *file,
gnutls_x509_crt_fmt_t format,
@@ -258,13 +256,20 @@ int gnutls_pcert_list_import_x509_file(gnutls_pcert_st *pcert_list,
unsigned i;
gnutls_x509_crt_t *crts = NULL;
unsigned crts_size = 0;
- gnutls_datum_t data = {NULL, 0};
+ gnutls_datum_t data = { NULL, 0 };
if (gnutls_url_is_supported(file) != 0) {
- ret = gnutls_x509_crt_list_import_url(&crts, &crts_size, file, pin_fn, pin_fn_userdata, 0);
+ ret =
+ gnutls_x509_crt_list_import_url(&crts, &crts_size, file,
+ pin_fn, pin_fn_userdata, 0);
if (ret < 0) {
- ret2 = gnutls_x509_crt_list_import_url(&crts, &crts_size, file, pin_fn, pin_fn_userdata, GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
- if (ret2 >= 0) ret = ret2;
+ ret2 =
+ gnutls_x509_crt_list_import_url(&crts, &crts_size,
+ file, pin_fn,
+ pin_fn_userdata,
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ if (ret2 >= 0)
+ ret = ret2;
}
if (ret < 0) {
@@ -272,12 +277,16 @@ int gnutls_pcert_list_import_x509_file(gnutls_pcert_st *pcert_list,
goto cleanup;
}
- } else { /* file */
+ } else { /* file */
ret = gnutls_load_file(file, &data);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &data, format, flags|GNUTLS_X509_CRT_LIST_SORT);
+ ret =
+ gnutls_x509_crt_list_import2(&crts, &crts_size, &data,
+ format,
+ flags |
+ GNUTLS_X509_CRT_LIST_SORT);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -290,7 +299,8 @@ int gnutls_pcert_list_import_x509_file(gnutls_pcert_st *pcert_list,
goto cleanup;
}
- ret = gnutls_pcert_import_x509_list(pcert_list, crts, &crts_size, flags);
+ ret =
+ gnutls_pcert_import_x509_list(pcert_list, crts, &crts_size, flags);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -298,15 +308,14 @@ int gnutls_pcert_list_import_x509_file(gnutls_pcert_st *pcert_list,
*pcert_list_size = crts_size;
ret = 0;
-cleanup:
- for (i=0;i<crts_size;i++)
+ cleanup:
+ for (i = 0; i < crts_size; i++)
gnutls_x509_crt_deinit(crts[i]);
gnutls_free(crts);
gnutls_free(data.data);
return ret;
}
-
/**
* gnutls_pcert_import_x509_raw:
* @pcert: The pcert structure
@@ -351,7 +360,7 @@ int gnutls_pcert_import_x509_raw(gnutls_pcert_st * pcert,
ret = 0;
- cleanup:
+ cleanup:
gnutls_x509_crt_deinit(crt);
return ret;
@@ -374,8 +383,8 @@ int gnutls_pcert_import_x509_raw(gnutls_pcert_st * pcert,
*
* Since: 3.6.6
**/
-int gnutls_pcert_import_rawpk(gnutls_pcert_st* pcert,
- gnutls_pubkey_t pubkey, unsigned int flags)
+int gnutls_pcert_import_rawpk(gnutls_pcert_st * pcert,
+ gnutls_pubkey_t pubkey, unsigned int flags)
{
int ret;
@@ -426,10 +435,10 @@ int gnutls_pcert_import_rawpk(gnutls_pcert_st* pcert,
*
* Since: 3.6.6
**/
-int gnutls_pcert_import_rawpk_raw(gnutls_pcert_st* pcert,
- const gnutls_datum_t* rawpubkey,
- gnutls_x509_crt_fmt_t format,
- unsigned int key_usage, unsigned int flags)
+int gnutls_pcert_import_rawpk_raw(gnutls_pcert_st * pcert,
+ const gnutls_datum_t * rawpubkey,
+ gnutls_x509_crt_fmt_t format,
+ unsigned int key_usage, unsigned int flags)
{
int ret;
@@ -443,7 +452,6 @@ int gnutls_pcert_import_rawpk_raw(gnutls_pcert_st* pcert,
if (ret < 0) {
return gnutls_assert_val(ret);
}
-
// Convert our raw public-key to a gnutls_pubkey_t structure
ret = gnutls_pubkey_import(pcert->pubkey, rawpubkey, format);
if (ret < 0) {
@@ -460,8 +468,8 @@ int gnutls_pcert_import_rawpk_raw(gnutls_pcert_st* pcert,
*/
if (format == GNUTLS_X509_FMT_PEM) {
ret = _gnutls_fbase64_decode(PEM_PK,
- rawpubkey->data, rawpubkey->size,
- &pcert->cert);
+ rawpubkey->data, rawpubkey->size,
+ &pcert->cert);
if (ret < 0) {
gnutls_pubkey_deinit(pcert->pubkey);
@@ -470,7 +478,9 @@ int gnutls_pcert_import_rawpk_raw(gnutls_pcert_st* pcert,
}
} else {
// Directly copy the raw DER data to our pcert
- ret = _gnutls_set_datum(&pcert->cert, rawpubkey->data, rawpubkey->size);
+ ret =
+ _gnutls_set_datum(&pcert->cert, rawpubkey->data,
+ rawpubkey->size);
if (ret < 0) {
gnutls_pubkey_deinit(pcert->pubkey);
@@ -499,8 +509,7 @@ int gnutls_pcert_import_rawpk_raw(gnutls_pcert_st* pcert,
*
* Since: 3.4.0
*/
-int gnutls_pcert_export_x509(gnutls_pcert_st * pcert,
- gnutls_x509_crt_t * crt)
+int gnutls_pcert_export_x509(gnutls_pcert_st * pcert, gnutls_x509_crt_t * crt)
{
int ret;
@@ -549,17 +558,17 @@ _gnutls_get_auth_info_pcert(gnutls_pcert_st * pcert,
cert_auth_info_t info)
{
switch (type) {
- case GNUTLS_CRT_X509:
- return gnutls_pcert_import_x509_raw(pcert,
- &info->raw_certificate_list[0],
- GNUTLS_X509_FMT_DER,
- 0);
- case GNUTLS_CRT_RAWPK:
- return gnutls_pcert_import_rawpk_raw(pcert,
- &info->raw_certificate_list[0],
- GNUTLS_X509_FMT_DER,
- 0, 0);
- default:
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ case GNUTLS_CRT_X509:
+ return gnutls_pcert_import_x509_raw(pcert,
+ &info->raw_certificate_list
+ [0], GNUTLS_X509_FMT_DER,
+ 0);
+ case GNUTLS_CRT_RAWPK:
+ return gnutls_pcert_import_rawpk_raw(pcert,
+ &info->raw_certificate_list
+ [0], GNUTLS_X509_FMT_DER,
+ 0, 0);
+ default:
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
}
diff --git a/lib/pin.c b/lib/pin.c
index 2c6f06ee2c..427e8ac27d 100644
--- a/lib/pin.c
+++ b/lib/pin.c
@@ -37,8 +37,7 @@ void *_gnutls_pin_data;
*
* Since: 2.12.0
**/
-void
-gnutls_pkcs11_set_pin_function(gnutls_pin_callback_t fn, void *userdata)
+void gnutls_pkcs11_set_pin_function(gnutls_pin_callback_t fn, void *userdata)
{
_gnutls_pin_func = fn;
_gnutls_pin_data = userdata;
@@ -65,22 +64,20 @@ gnutls_pin_callback_t gnutls_pkcs11_get_pin_function(void **userdata)
}
int
-_gnutls_retrieve_pin(struct pin_info_st *pin_info, const char *url, const char *label,
- unsigned flags,
- char *pin, unsigned pin_size)
+_gnutls_retrieve_pin(struct pin_info_st *pin_info, const char *url,
+ const char *label, unsigned flags, char *pin,
+ unsigned pin_size)
{
int ret;
if (pin_info && pin_info->cb)
ret =
pin_info->cb(pin_info->data, 0,
- (char *) url, label, flags,
- pin, pin_size);
+ (char *)url, label, flags, pin, pin_size);
else if (_gnutls_pin_func)
ret =
_gnutls_pin_func(_gnutls_pin_data, 0,
- (char *) url, label, flags,
- pin, pin_size);
+ (char *)url, label, flags, pin, pin_size);
else
ret = gnutls_assert_val(GNUTLS_E_PKCS11_PIN_ERROR);
diff --git a/lib/pin.h b/lib/pin.h
index a21b185802..81d05c969f 100644
--- a/lib/pin.h
+++ b/lib/pin.h
@@ -1,11 +1,12 @@
#ifndef GNUTLS_LIB_PIN_H
-#define GNUTLS_LIB_PIN_H
+# define GNUTLS_LIB_PIN_H
extern gnutls_pin_callback_t _gnutls_pin_func;
extern void *_gnutls_pin_data;
int
-_gnutls_retrieve_pin(struct pin_info_st *pin_info, const char *url, const char *label,
- unsigned pin_flags, char *pin, unsigned pin_size);
+_gnutls_retrieve_pin(struct pin_info_st *pin_info, const char *url,
+ const char *label, unsigned pin_flags, char *pin,
+ unsigned pin_size);
-#endif /* GNUTLS_LIB_PIN_H */
+#endif /* GNUTLS_LIB_PIN_H */
diff --git a/lib/pk.c b/lib/pk.c
index 753cecd187..400d499892 100644
--- a/lib/pk.c
+++ b/lib/pk.c
@@ -58,8 +58,7 @@
**/
int
gnutls_encode_rs_value(gnutls_datum_t * sig_value,
- const gnutls_datum_t * r,
- const gnutls_datum_t * s)
+ const gnutls_datum_t * r, const gnutls_datum_t * s)
{
return _gnutls_encode_ber_rs_raw(sig_value, r, s);
}
@@ -69,8 +68,7 @@ gnutls_encode_rs_value(gnutls_datum_t * sig_value,
*/
int
_gnutls_encode_ber_rs_raw(gnutls_datum_t * sig_value,
- const gnutls_datum_t * r,
- const gnutls_datum_t * s)
+ const gnutls_datum_t * r, const gnutls_datum_t * s)
{
asn1_node sig;
int result, ret;
@@ -85,7 +83,7 @@ _gnutls_encode_ber_rs_raw(gnutls_datum_t * sig_value,
}
if (s->data[0] >= 0x80 || r->data[0] >= 0x80) {
- tmp = gnutls_malloc(MAX(r->size, s->size)+1);
+ tmp = gnutls_malloc(MAX(r->size, s->size) + 1);
if (tmp == NULL) {
ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto cleanup;
@@ -96,7 +94,7 @@ _gnutls_encode_ber_rs_raw(gnutls_datum_t * sig_value,
assert(tmp);
tmp[0] = 0;
memcpy(&tmp[1], r->data, r->size);
- result = asn1_write_value(sig, "r", tmp, 1+r->size);
+ result = asn1_write_value(sig, "r", tmp, 1 + r->size);
} else {
result = asn1_write_value(sig, "r", r->data, r->size);
}
@@ -107,12 +105,11 @@ _gnutls_encode_ber_rs_raw(gnutls_datum_t * sig_value,
goto cleanup;
}
-
if (s->data[0] >= 0x80) {
assert(tmp);
tmp[0] = 0;
memcpy(&tmp[1], s->data, s->size);
- result = asn1_write_value(sig, "s", tmp, 1+s->size);
+ result = asn1_write_value(sig, "s", tmp, 1 + s->size);
} else {
result = asn1_write_value(sig, "s", s->data, s->size);
}
@@ -136,8 +133,7 @@ _gnutls_encode_ber_rs_raw(gnutls_datum_t * sig_value,
return ret;
}
-int
-_gnutls_encode_ber_rs(gnutls_datum_t * sig_value, bigint_t r, bigint_t s)
+int _gnutls_encode_ber_rs(gnutls_datum_t * sig_value, bigint_t r, bigint_t s)
{
asn1_node sig;
int result;
@@ -173,7 +169,6 @@ _gnutls_encode_ber_rs(gnutls_datum_t * sig_value, bigint_t r, bigint_t s)
return 0;
}
-
/* decodes the Dss-Sig-Value structure
*/
int
@@ -194,8 +189,7 @@ _gnutls_decode_ber_rs(const gnutls_datum_t * sig_value, bigint_t * r,
/* rfc3279 doesn't specify whether Dss-Sig-Value is encoded
* as DER or BER. As such we do not restrict to the DER subset. */
result =
- asn1_der_decoding(&sig, sig_value->data, sig_value->size,
- NULL);
+ asn1_der_decoding(&sig, sig_value->data, sig_value->size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
asn1_delete_structure(&sig);
@@ -242,8 +236,8 @@ _gnutls_decode_ber_rs(const gnutls_datum_t * sig_value, bigint_t * r,
* Since: 3.6.0
*
**/
-int gnutls_decode_rs_value(const gnutls_datum_t * sig_value, gnutls_datum_t *r,
- gnutls_datum_t *s)
+int gnutls_decode_rs_value(const gnutls_datum_t * sig_value, gnutls_datum_t * r,
+ gnutls_datum_t * s)
{
return _gnutls_decode_ber_rs_raw(sig_value, r, s);
}
@@ -252,8 +246,8 @@ int gnutls_decode_rs_value(const gnutls_datum_t * sig_value, gnutls_datum_t *r,
* to be exported for FIPS140 CAVS testing.
*/
int
-_gnutls_decode_ber_rs_raw(const gnutls_datum_t * sig_value, gnutls_datum_t *r,
- gnutls_datum_t *s)
+_gnutls_decode_ber_rs_raw(const gnutls_datum_t * sig_value, gnutls_datum_t * r,
+ gnutls_datum_t * s)
{
asn1_node sig;
int result;
@@ -269,8 +263,7 @@ _gnutls_decode_ber_rs_raw(const gnutls_datum_t * sig_value, gnutls_datum_t *r,
/* rfc3279 doesn't specify whether Dss-Sig-Value is encoded
* as DER or BER. As such we do not restrict to the DER subset. */
result =
- asn1_der_decoding(&sig, sig_value->data, sig_value->size,
- NULL);
+ asn1_der_decoding(&sig, sig_value->data, sig_value->size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
asn1_delete_structure(&sig);
@@ -369,7 +362,9 @@ _gnutls_decode_gost_rs(const gnutls_datum_t * sig_value, bigint_t * r,
*
* Since: 3.6.0
*/
-int gnutls_encode_gost_rs_value(gnutls_datum_t * sig_value, const gnutls_datum_t * r, const gnutls_datum_t *s)
+int gnutls_encode_gost_rs_value(gnutls_datum_t * sig_value,
+ const gnutls_datum_t * r,
+ const gnutls_datum_t * s)
{
uint8_t *data;
size_t intsize = r->size;
@@ -412,7 +407,8 @@ int gnutls_encode_gost_rs_value(gnutls_datum_t * sig_value, const gnutls_datum_t
*
* Since: 3.6.0
*/
-int gnutls_decode_gost_rs_value(const gnutls_datum_t * sig_value, gnutls_datum_t * r, gnutls_datum_t * s)
+int gnutls_decode_gost_rs_value(const gnutls_datum_t * sig_value,
+ gnutls_datum_t * r, gnutls_datum_t * s)
{
int ret;
unsigned halfsize = sig_value->size >> 1;
@@ -465,8 +461,7 @@ gnutls_gost_paramset_t _gnutls_gost_paramset_default(gnutls_pk_algorithm_t pk)
{
if (pk == GNUTLS_PK_GOST_01)
return GNUTLS_GOST_PARAMSET_CP_A;
- else if (pk == GNUTLS_PK_GOST_12_256 ||
- pk == GNUTLS_PK_GOST_12_512)
+ else if (pk == GNUTLS_PK_GOST_12_256 || pk == GNUTLS_PK_GOST_12_512)
return GNUTLS_GOST_PARAMSET_TC26_Z;
else
return gnutls_assert_val(GNUTLS_GOST_PARAMSET_UNKNOWN);
@@ -500,12 +495,14 @@ int _gnutls_pk_params_copy(gnutls_pk_params_st * dst,
dst->params_nr++;
}
- if (_gnutls_set_datum(&dst->raw_priv, src->raw_priv.data, src->raw_priv.size) < 0) {
+ if (_gnutls_set_datum
+ (&dst->raw_priv, src->raw_priv.data, src->raw_priv.size) < 0) {
gnutls_assert();
goto fail;
}
- if (_gnutls_set_datum(&dst->raw_pub, src->raw_pub.data, src->raw_pub.size) < 0) {
+ if (_gnutls_set_datum
+ (&dst->raw_pub, src->raw_pub.data, src->raw_pub.size) < 0) {
gnutls_assert();
goto fail;
}
@@ -520,7 +517,7 @@ int _gnutls_pk_params_copy(gnutls_pk_params_st * dst,
return 0;
-fail:
+ fail:
for (j = 0; j < i; j++)
_gnutls_mpi_release(&dst->params[j]);
return GNUTLS_E_MEMORY_ERROR;
@@ -559,7 +556,7 @@ void gnutls_pk_params_clear(gnutls_pk_params_st * p)
}
int
-_gnutls_find_rsa_pss_salt_size(unsigned bits, const mac_entry_st *me,
+_gnutls_find_rsa_pss_salt_size(unsigned bits, const mac_entry_st * me,
unsigned salt_size)
{
unsigned digest_size;
@@ -591,8 +588,7 @@ _gnutls_find_rsa_pss_salt_size(unsigned bits, const mac_entry_st *me,
*/
int
encode_ber_digest_info(const mac_entry_st * e,
- const gnutls_datum_t * digest,
- gnutls_datum_t * output)
+ const gnutls_datum_t * digest, gnutls_datum_t * output)
{
asn1_node dinfo = NULL;
int result;
@@ -611,8 +607,7 @@ encode_ber_digest_info(const mac_entry_st * e,
algo = _gnutls_x509_mac_to_oid(e);
if (algo == NULL) {
gnutls_assert();
- _gnutls_debug_log("Hash algorithm: %d has no OID\n",
- e->id);
+ _gnutls_debug_log("Hash algorithm: %d has no OID\n", e->id);
return GNUTLS_E_UNKNOWN_PK_ALGORITHM;
}
@@ -623,8 +618,7 @@ encode_ber_digest_info(const mac_entry_st * e,
return _gnutls_asn2err(result);
}
- result =
- asn1_write_value(dinfo, "digestAlgorithm.algorithm", algo, 1);
+ result = asn1_write_value(dinfo, "digestAlgorithm.algorithm", algo, 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
asn1_delete_structure(&dinfo);
@@ -644,8 +638,7 @@ encode_ber_digest_info(const mac_entry_st * e,
return _gnutls_asn2err(result);
}
- result =
- asn1_write_value(dinfo, "digest", digest->data, digest->size);
+ result = asn1_write_value(dinfo, "digest", digest->data, digest->size);
if (result != ASN1_SUCCESS) {
gnutls_assert();
asn1_delete_structure(&dinfo);
@@ -667,8 +660,7 @@ encode_ber_digest_info(const mac_entry_st * e,
return GNUTLS_E_MEMORY_ERROR;
}
- result =
- asn1_der_coding(dinfo, "", tmp_output, &tmp_output_size, NULL);
+ result = asn1_der_coding(dinfo, "", tmp_output, &tmp_output_size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
asn1_delete_structure(&dinfo);
@@ -708,7 +700,7 @@ gnutls_encode_ber_digest_info(gnutls_digest_algorithm_t hash,
if (unlikely(e == NULL))
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- return encode_ber_digest_info(e , digest, output);
+ return encode_ber_digest_info(e, digest, output);
}
/**
@@ -729,8 +721,8 @@ gnutls_encode_ber_digest_info(gnutls_digest_algorithm_t hash,
**/
int
gnutls_decode_ber_digest_info(const gnutls_datum_t * info,
- gnutls_digest_algorithm_t * hash,
- unsigned char * digest, unsigned int *digest_size)
+ gnutls_digest_algorithm_t * hash,
+ unsigned char *digest, unsigned int *digest_size)
{
asn1_node dinfo = NULL;
int result;
@@ -754,8 +746,7 @@ gnutls_decode_ber_digest_info(const gnutls_datum_t * info,
}
len = sizeof(str) - 1;
- result =
- asn1_read_value(dinfo, "digestAlgorithm.algorithm", str, &len);
+ result = asn1_read_value(dinfo, "digestAlgorithm.algorithm", str, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
asn1_delete_structure(&dinfo);
@@ -775,8 +766,7 @@ gnutls_decode_ber_digest_info(const gnutls_datum_t * info,
len = sizeof(str) - 1;
result =
- asn1_read_value(dinfo, "digestAlgorithm.parameters", str,
- &len);
+ asn1_read_value(dinfo, "digestAlgorithm.parameters", str, &len);
/* To avoid permitting garbage in the parameters field, either the
parameters field is not present, or it contains 0x05 0x00. */
if (!(result == ASN1_ELEMENT_NOT_FOUND ||
@@ -804,13 +794,12 @@ gnutls_decode_ber_digest_info(const gnutls_datum_t * info,
}
int
-_gnutls_params_get_rsa_raw(const gnutls_pk_params_st* params,
- gnutls_datum_t * m, gnutls_datum_t * e,
- gnutls_datum_t * d, gnutls_datum_t * p,
- gnutls_datum_t * q, gnutls_datum_t * u,
- gnutls_datum_t * e1,
- gnutls_datum_t * e2,
- unsigned int flags)
+_gnutls_params_get_rsa_raw(const gnutls_pk_params_st * params,
+ gnutls_datum_t * m, gnutls_datum_t * e,
+ gnutls_datum_t * d, gnutls_datum_t * p,
+ gnutls_datum_t * q, gnutls_datum_t * u,
+ gnutls_datum_t * e1,
+ gnutls_datum_t * e2, unsigned int flags)
{
int ret;
mpi_dprint_func dprint = _gnutls_mpi_dprint_lz;
@@ -919,7 +908,7 @@ _gnutls_params_get_rsa_raw(const gnutls_pk_params_st* params,
return 0;
- error:
+ error:
_gnutls_free_datum(m);
_gnutls_free_datum(d);
_gnutls_free_datum(e);
@@ -932,10 +921,10 @@ _gnutls_params_get_rsa_raw(const gnutls_pk_params_st* params,
}
int
-_gnutls_params_get_dsa_raw(const gnutls_pk_params_st* params,
- gnutls_datum_t * p, gnutls_datum_t * q,
- gnutls_datum_t * g, gnutls_datum_t * y,
- gnutls_datum_t * x, unsigned int flags)
+_gnutls_params_get_dsa_raw(const gnutls_pk_params_st * params,
+ gnutls_datum_t * p, gnutls_datum_t * q,
+ gnutls_datum_t * g, gnutls_datum_t * y,
+ gnutls_datum_t * x, unsigned int flags)
{
int ret;
mpi_dprint_func dprint = _gnutls_mpi_dprint_lz;
@@ -972,7 +961,6 @@ _gnutls_params_get_dsa_raw(const gnutls_pk_params_st* params,
}
}
-
/* G */
if (g) {
ret = dprint(params->params[2], g);
@@ -984,7 +972,6 @@ _gnutls_params_get_dsa_raw(const gnutls_pk_params_st* params,
}
}
-
/* Y */
if (y) {
ret = dprint(params->params[3], y);
@@ -1013,12 +1000,11 @@ _gnutls_params_get_dsa_raw(const gnutls_pk_params_st* params,
return 0;
}
-int _gnutls_params_get_ecc_raw(const gnutls_pk_params_st* params,
- gnutls_ecc_curve_t * curve,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k,
- unsigned int flags)
+int _gnutls_params_get_ecc_raw(const gnutls_pk_params_st * params,
+ gnutls_ecc_curve_t * curve,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y,
+ gnutls_datum_t * k, unsigned int flags)
{
int ret;
mpi_dprint_func dprint = _gnutls_mpi_dprint_lz;
@@ -1039,7 +1025,9 @@ int _gnutls_params_get_ecc_raw(const gnutls_pk_params_st* params,
if (_curve_is_eddsa(e) || _curve_is_modern_ecdh(e)) {
if (x) {
- ret = _gnutls_set_datum(x, params->raw_pub.data, params->raw_pub.size);
+ ret =
+ _gnutls_set_datum(x, params->raw_pub.data,
+ params->raw_pub.size);
if (ret < 0) {
return gnutls_assert_val(ret);
}
@@ -1051,7 +1039,9 @@ int _gnutls_params_get_ecc_raw(const gnutls_pk_params_st* params,
}
if (k) {
- ret = _gnutls_set_datum(k, params->raw_priv.data, params->raw_priv.size);
+ ret =
+ _gnutls_set_datum(k, params->raw_priv.data,
+ params->raw_priv.size);
if (ret < 0) {
_gnutls_free_datum(x);
return gnutls_assert_val(ret);
@@ -1083,7 +1073,6 @@ int _gnutls_params_get_ecc_raw(const gnutls_pk_params_st* params,
}
}
-
/* K */
if (k) {
ret = dprint(params->params[ECC_K], k);
@@ -1099,14 +1088,13 @@ int _gnutls_params_get_ecc_raw(const gnutls_pk_params_st* params,
}
-int _gnutls_params_get_gost_raw(const gnutls_pk_params_st* params,
- gnutls_ecc_curve_t * curve,
- gnutls_digest_algorithm_t * digest,
- gnutls_gost_paramset_t * paramset,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k,
- unsigned int flags)
+int _gnutls_params_get_gost_raw(const gnutls_pk_params_st * params,
+ gnutls_ecc_curve_t * curve,
+ gnutls_digest_algorithm_t * digest,
+ gnutls_gost_paramset_t * paramset,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y,
+ gnutls_datum_t * k, unsigned int flags)
{
int ret;
mpi_dprint_func dprint = _gnutls_mpi_dprint_le;
@@ -1144,7 +1132,6 @@ int _gnutls_params_get_gost_raw(const gnutls_pk_params_st* params,
}
}
-
/* K */
if (k) {
ret = dprint(params->params[GOST_K], k);
@@ -1175,8 +1162,8 @@ pk_hash_data(gnutls_pk_algorithm_t pk, const mac_entry_st * hash,
}
ret =
- _gnutls_hash_fast((gnutls_digest_algorithm_t)hash->id, data->data, data->size,
- digest->data);
+ _gnutls_hash_fast((gnutls_digest_algorithm_t) hash->id, data->data,
+ data->size, digest->data);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1184,12 +1171,11 @@ pk_hash_data(gnutls_pk_algorithm_t pk, const mac_entry_st * hash,
return 0;
- cleanup:
+ cleanup:
gnutls_free(digest->data);
return ret;
}
-
/*
* This function will do RSA PKCS #1 1.5 encoding
* on the given digest. The given digest must be allocated
@@ -1215,14 +1201,14 @@ pk_prepare_hash(gnutls_pk_algorithm_t pk,
case GNUTLS_MAC_SHA224:
break;
default:
- _gnutls_switch_fips_state(GNUTLS_FIPS140_OP_NOT_APPROVED);
+ _gnutls_switch_fips_state
+ (GNUTLS_FIPS140_OP_NOT_APPROVED);
}
/* Encode the digest as a DigestInfo
*/
if ((ret =
- encode_ber_digest_info(hash, &old_digest,
- digest)) != 0) {
+ encode_ber_digest_info(hash, &old_digest, digest)) != 0) {
gnutls_assert();
return ret;
}
diff --git a/lib/pk.h b/lib/pk.h
index 7f3c9995da..bc3a0950be 100644
--- a/lib/pk.h
+++ b/lib/pk.h
@@ -21,27 +21,27 @@
*/
#ifndef GNUTLS_LIB_PK_H
-#define GNUTLS_LIB_PK_H
+# define GNUTLS_LIB_PK_H
extern int crypto_pk_prio;
extern gnutls_crypto_pk_st _gnutls_pk_ops;
-#define _gnutls_pk_encrypt( algo, ciphertext, plaintext, params) _gnutls_pk_ops.encrypt( algo, ciphertext, plaintext, params)
-#define _gnutls_pk_decrypt( algo, ciphertext, plaintext, params) _gnutls_pk_ops.decrypt( algo, ciphertext, plaintext, params)
-#define _gnutls_pk_decrypt2( algo, ciphertext, plaintext, size, params) _gnutls_pk_ops.decrypt2( algo, ciphertext, plaintext, size, params)
-#define _gnutls_pk_sign( algo, sig, data, params, sign_params) _gnutls_pk_ops.sign( algo, sig, data, params, sign_params)
-#define _gnutls_pk_verify( algo, data, sig, params, sign_params) _gnutls_pk_ops.verify( algo, data, sig, params, sign_params)
-#define _gnutls_pk_verify_priv_params( algo, params) _gnutls_pk_ops.verify_priv_params( algo, params)
-#define _gnutls_pk_verify_pub_params( algo, params) _gnutls_pk_ops.verify_pub_params( algo, params)
-#define _gnutls_pk_derive( algo, out, pub, priv) _gnutls_pk_ops.derive( algo, out, pub, priv, NULL, 0)
-#define _gnutls_pk_derive_nonce( algo, out, pub, priv, nonce) _gnutls_pk_ops.derive( algo, out, pub, priv, nonce, 0)
-#define _gnutls_pk_derive_tls13( algo, out, pub, priv) _gnutls_pk_ops.derive( algo, out, pub, priv, NULL, PK_DERIVE_TLS13)
-#define _gnutls_pk_generate_keys( algo, bits, params, temporal) _gnutls_pk_ops.generate_keys( algo, bits, params, temporal)
-#define _gnutls_pk_generate_params( algo, bits, priv) _gnutls_pk_ops.generate_params( algo, bits, priv)
-#define _gnutls_pk_hash_algorithm( pk, sig, params, hash) _gnutls_pk_ops.hash_algorithm(pk, sig, params, hash)
-#define _gnutls_pk_curve_exists( curve) _gnutls_pk_ops.curve_exists(curve)
-#define _gnutls_pk_exists(algo) _gnutls_pk_ops.pk_exists(algo)
-#define _gnutls_pk_sign_exists(algo) _gnutls_pk_ops.sign_exists(algo)
+# define _gnutls_pk_encrypt( algo, ciphertext, plaintext, params) _gnutls_pk_ops.encrypt( algo, ciphertext, plaintext, params)
+# define _gnutls_pk_decrypt( algo, ciphertext, plaintext, params) _gnutls_pk_ops.decrypt( algo, ciphertext, plaintext, params)
+# define _gnutls_pk_decrypt2( algo, ciphertext, plaintext, size, params) _gnutls_pk_ops.decrypt2( algo, ciphertext, plaintext, size, params)
+# define _gnutls_pk_sign( algo, sig, data, params, sign_params) _gnutls_pk_ops.sign( algo, sig, data, params, sign_params)
+# define _gnutls_pk_verify( algo, data, sig, params, sign_params) _gnutls_pk_ops.verify( algo, data, sig, params, sign_params)
+# define _gnutls_pk_verify_priv_params( algo, params) _gnutls_pk_ops.verify_priv_params( algo, params)
+# define _gnutls_pk_verify_pub_params( algo, params) _gnutls_pk_ops.verify_pub_params( algo, params)
+# define _gnutls_pk_derive( algo, out, pub, priv) _gnutls_pk_ops.derive( algo, out, pub, priv, NULL, 0)
+# define _gnutls_pk_derive_nonce( algo, out, pub, priv, nonce) _gnutls_pk_ops.derive( algo, out, pub, priv, nonce, 0)
+# define _gnutls_pk_derive_tls13( algo, out, pub, priv) _gnutls_pk_ops.derive( algo, out, pub, priv, NULL, PK_DERIVE_TLS13)
+# define _gnutls_pk_generate_keys( algo, bits, params, temporal) _gnutls_pk_ops.generate_keys( algo, bits, params, temporal)
+# define _gnutls_pk_generate_params( algo, bits, priv) _gnutls_pk_ops.generate_params( algo, bits, priv)
+# define _gnutls_pk_hash_algorithm( pk, sig, params, hash) _gnutls_pk_ops.hash_algorithm(pk, sig, params, hash)
+# define _gnutls_pk_curve_exists( curve) _gnutls_pk_ops.curve_exists(curve)
+# define _gnutls_pk_exists(algo) _gnutls_pk_ops.pk_exists(algo)
+# define _gnutls_pk_sign_exists(algo) _gnutls_pk_ops.sign_exists(algo)
inline static int
_gnutls_pk_fixup(gnutls_pk_algorithm_t algo, gnutls_direction_t direction,
@@ -58,20 +58,18 @@ int _gnutls_pk_params_copy(gnutls_pk_params_st * dst,
const gnutls_pk_params_st * src);
/* The internal PK interface */
-int
-_gnutls_encode_ber_rs(gnutls_datum_t * sig_value, bigint_t r, bigint_t s);
+int _gnutls_encode_ber_rs(gnutls_datum_t * sig_value, bigint_t r, bigint_t s);
int
_gnutls_encode_ber_rs_raw(gnutls_datum_t * sig_value,
- const gnutls_datum_t * r,
- const gnutls_datum_t * s);
+ const gnutls_datum_t * r, const gnutls_datum_t * s);
int
_gnutls_decode_ber_rs(const gnutls_datum_t * sig_value, bigint_t * r,
bigint_t * s);
int
-_gnutls_decode_ber_rs_raw(const gnutls_datum_t * sig_value, gnutls_datum_t *r,
- gnutls_datum_t *s);
+_gnutls_decode_ber_rs_raw(const gnutls_datum_t * sig_value, gnutls_datum_t * r,
+ gnutls_datum_t * s);
int
_gnutls_encode_gost_rs(gnutls_datum_t * sig_value, bigint_t r, bigint_t s,
@@ -87,41 +85,37 @@ gnutls_gost_paramset_t _gnutls_gost_paramset_default(gnutls_pk_algorithm_t pk);
int
encode_ber_digest_info(const mac_entry_st * e,
- const gnutls_datum_t * digest,
- gnutls_datum_t * output);
+ const gnutls_datum_t * digest, gnutls_datum_t * output);
-#define decode_ber_digest_info gnutls_decode_ber_digest_info
+# define decode_ber_digest_info gnutls_decode_ber_digest_info
int
-_gnutls_params_get_rsa_raw(const gnutls_pk_params_st* params,
- gnutls_datum_t * m, gnutls_datum_t * e,
- gnutls_datum_t * d, gnutls_datum_t * p,
- gnutls_datum_t * q, gnutls_datum_t * u,
- gnutls_datum_t * e1,
- gnutls_datum_t * e2,
- unsigned int flags);
+_gnutls_params_get_rsa_raw(const gnutls_pk_params_st * params,
+ gnutls_datum_t * m, gnutls_datum_t * e,
+ gnutls_datum_t * d, gnutls_datum_t * p,
+ gnutls_datum_t * q, gnutls_datum_t * u,
+ gnutls_datum_t * e1,
+ gnutls_datum_t * e2, unsigned int flags);
int
-_gnutls_params_get_dsa_raw(const gnutls_pk_params_st* params,
- gnutls_datum_t * p, gnutls_datum_t * q,
- gnutls_datum_t * g, gnutls_datum_t * y,
- gnutls_datum_t * x, unsigned int flags);
-
-int _gnutls_params_get_ecc_raw(const gnutls_pk_params_st* params,
- gnutls_ecc_curve_t * curve,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k,
- unsigned int flags);
-
-int _gnutls_params_get_gost_raw(const gnutls_pk_params_st* params,
- gnutls_ecc_curve_t * curve,
- gnutls_digest_algorithm_t * digest,
- gnutls_gost_paramset_t * paramset,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k,
- unsigned int flags);
+_gnutls_params_get_dsa_raw(const gnutls_pk_params_st * params,
+ gnutls_datum_t * p, gnutls_datum_t * q,
+ gnutls_datum_t * g, gnutls_datum_t * y,
+ gnutls_datum_t * x, unsigned int flags);
+
+int _gnutls_params_get_ecc_raw(const gnutls_pk_params_st * params,
+ gnutls_ecc_curve_t * curve,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y,
+ gnutls_datum_t * k, unsigned int flags);
+
+int _gnutls_params_get_gost_raw(const gnutls_pk_params_st * params,
+ gnutls_ecc_curve_t * curve,
+ gnutls_digest_algorithm_t * digest,
+ gnutls_gost_paramset_t * paramset,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y,
+ gnutls_datum_t * k, unsigned int flags);
int pk_prepare_hash(gnutls_pk_algorithm_t pk, const mac_entry_st * hash,
gnutls_datum_t * output);
@@ -129,7 +123,7 @@ int pk_hash_data(gnutls_pk_algorithm_t pk, const mac_entry_st * hash,
gnutls_pk_params_st * params, const gnutls_datum_t * data,
gnutls_datum_t * digest);
-int _gnutls_find_rsa_pss_salt_size(unsigned bits, const mac_entry_st *me,
+int _gnutls_find_rsa_pss_salt_size(unsigned bits, const mac_entry_st * me,
unsigned salt_size);
-#endif /* GNUTLS_LIB_PK_H */
+#endif /* GNUTLS_LIB_PK_H */
diff --git a/lib/pkcs11.c b/lib/pkcs11.c
index d47dd9ee69..2fce456212 100644
--- a/lib/pkcs11.c
+++ b/lib/pkcs11.c
@@ -52,21 +52,21 @@ struct gnutls_pkcs11_provider_st {
struct ck_function_list *module;
unsigned active;
unsigned custom_init;
- unsigned trusted; /* in the sense of p11-kit trusted:
- * it can be used for verification */
+ unsigned trusted; /* in the sense of p11-kit trusted:
+ * it can be used for verification */
struct ck_info info;
};
struct find_flags_data_st {
struct p11_kit_uri *info;
- unsigned int slot_flags; /* Slot Information Flags */
- unsigned int token_flags; /* Token Information Flags */
+ unsigned int slot_flags; /* Slot Information Flags */
+ unsigned int token_flags; /* Token Information Flags */
unsigned int trusted;
};
struct find_single_obj_st {
gnutls_pkcs11_obj_t obj;
- bool overwrite_exts; /* only valid if looking for a certificate */
+ bool overwrite_exts; /* only valid if looking for a certificate */
};
struct find_obj_session_st {
@@ -82,7 +82,7 @@ struct find_multi_obj_st {
unsigned int current;
unsigned int flags;
struct p11_kit_uri *info;
- bool overwrite_exts; /* only valid if looking for a certificate */
+ bool overwrite_exts; /* only valid if looking for a certificate */
};
struct find_token_num {
@@ -111,11 +111,10 @@ struct find_cert_st {
unsigned need_import;
gnutls_pkcs11_obj_t obj;
- gnutls_x509_crt_t crt; /* used when compare flag is specified */
+ gnutls_x509_crt_t crt; /* used when compare flag is specified */
unsigned flags;
};
-
static struct gnutls_pkcs11_provider_st providers[MAX_PROVIDERS];
static unsigned int active_providers = 0;
@@ -214,7 +213,6 @@ int pkcs11_rv_to_err(ck_rv_t rv)
}
}
-
static int scan_slots(struct gnutls_pkcs11_provider_st *p,
ck_slot_id_t * slots, unsigned long *nslots)
{
@@ -229,7 +227,8 @@ static int scan_slots(struct gnutls_pkcs11_provider_st *p,
}
static int
-pkcs11_add_module(const char* name, struct ck_function_list *module, unsigned custom_init, const char *params)
+pkcs11_add_module(const char *name, struct ck_function_list *module,
+ unsigned custom_init, const char *params)
{
unsigned int i;
struct ck_info info;
@@ -247,7 +246,8 @@ pkcs11_add_module(const char* name, struct ck_function_list *module, unsigned cu
/* already loaded, skip the rest */
if (module == providers[i].module ||
memcmp(&info, &providers[i].info, sizeof(info)) == 0) {
- _gnutls_debug_log("p11: module %s is already loaded.\n", name);
+ _gnutls_debug_log("p11: module %s is already loaded.\n",
+ name);
return GNUTLS_E_INT_RET_0;
}
}
@@ -259,7 +259,7 @@ pkcs11_add_module(const char* name, struct ck_function_list *module, unsigned cu
providers[active_providers - 1].custom_init = custom_init;
if (p11_kit_module_get_flags(module) & P11_KIT_MODULE_TRUSTED ||
- (params != NULL && strstr(params, "trusted") != 0))
+ (params != NULL && strstr(params, "trusted") != 0))
providers[active_providers - 1].trusted = 1;
memcpy(&providers[active_providers - 1].info, &info, sizeof(info));
@@ -275,7 +275,8 @@ pkcs11_add_module(const char* name, struct ck_function_list *module, unsigned cu
* The output value of the callback will be returned if it is
* a negative one (indicating failure).
*/
-int _gnutls_pkcs11_check_init(init_level_t req_level, void *priv, pkcs11_reinit_function cb)
+int _gnutls_pkcs11_check_init(init_level_t req_level, void *priv,
+ pkcs11_reinit_function cb)
{
int ret, sret = 0;
@@ -312,40 +313,43 @@ int _gnutls_pkcs11_check_init(init_level_t req_level, void *priv, pkcs11_reinit_
* request for PROV_INIT_TRUSTED may result to PROV_INIT_MANUAL_TRUSTED
* request for PROV_INIT_ALL may result to PROV_INIT_MANUAL or PROV_INIT_MANUAL_TRUSTED
*/
- switch(req_level) {
- case PROV_UNINITIALIZED:
- case PROV_INIT_MANUAL:
- break;
- case PROV_INIT_TRUSTED:
- case PROV_INIT_MANUAL_TRUSTED:
- if (providers_initialized < PROV_INIT_MANUAL_TRUSTED) {
- _gnutls_debug_log("Initializing needed PKCS #11 modules\n");
- ret = auto_load(1);
- if (ret < 0) {
- gnutls_assert();
- }
+ switch (req_level) {
+ case PROV_UNINITIALIZED:
+ case PROV_INIT_MANUAL:
+ break;
+ case PROV_INIT_TRUSTED:
+ case PROV_INIT_MANUAL_TRUSTED:
+ if (providers_initialized < PROV_INIT_MANUAL_TRUSTED) {
+ _gnutls_debug_log
+ ("Initializing needed PKCS #11 modules\n");
+ ret = auto_load(1);
+ if (ret < 0) {
+ gnutls_assert();
+ }
- if (providers_initialized == PROV_INIT_MANUAL)
- providers_initialized = PROV_INIT_MANUAL_TRUSTED;
- else
- providers_initialized = PROV_INIT_TRUSTED;
+ if (providers_initialized == PROV_INIT_MANUAL)
+ providers_initialized =
+ PROV_INIT_MANUAL_TRUSTED;
+ else
+ providers_initialized = PROV_INIT_TRUSTED;
- goto cleanup;
+ goto cleanup;
+ }
+ break;
+ case PROV_INIT_ALL:
+ if (providers_initialized == PROV_INIT_TRUSTED ||
+ providers_initialized == PROV_UNINITIALIZED) {
+ _gnutls_debug_log
+ ("Initializing all PKCS #11 modules\n");
+ ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_AUTO, NULL);
+ if (ret < 0) {
+ gnutls_assert();
}
- break;
- case PROV_INIT_ALL:
- if (providers_initialized == PROV_INIT_TRUSTED ||
- providers_initialized == PROV_UNINITIALIZED) {
- _gnutls_debug_log("Initializing all PKCS #11 modules\n");
- ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_AUTO, NULL);
- if (ret < 0) {
- gnutls_assert();
- }
- providers_initialized = PROV_INIT_ALL;
- goto cleanup;
- }
- break;
+ providers_initialized = PROV_INIT_ALL;
+ goto cleanup;
+ }
+ break;
}
ret = sret;
@@ -356,7 +360,6 @@ int _gnutls_pkcs11_check_init(init_level_t req_level, void *priv, pkcs11_reinit_
return ret;
}
-
/**
* gnutls_pkcs11_add_provider:
* @name: The filename of the module
@@ -385,23 +388,22 @@ int gnutls_pkcs11_add_provider(const char *name, const char *params)
int ret;
if (params && (p = strstr(params, "p11-kit:")) != 0) {
- memset (&args, 0, sizeof (args));
- args.reserved = (char*)(p + sizeof("p11-kit:")-1);
+ memset(&args, 0, sizeof(args));
+ args.reserved = (char *)(p + sizeof("p11-kit:") - 1);
args.flags = CKF_OS_LOCKING_OK;
custom_init = 1;
flags = P11_KIT_MODULE_UNMANAGED;
}
- module = p11_kit_module_load(name, P11_KIT_MODULE_CRITICAL|flags);
+ module = p11_kit_module_load(name, P11_KIT_MODULE_CRITICAL | flags);
if (module == NULL) {
gnutls_assert();
_gnutls_debug_log("p11: Cannot load provider %s\n", name);
return GNUTLS_E_PKCS11_LOAD_ERROR;
}
- _gnutls_debug_log
- ("p11: Initializing module: %s\n", name);
+ _gnutls_debug_log("p11: Initializing module: %s\n", name);
/* check if we have special information for a p11-kit trust module */
if (custom_init) {
@@ -432,7 +434,9 @@ int gnutls_pkcs11_add_provider(const char *name, const char *params)
}
static
-int add_obj_attrs(struct p11_kit_uri *info, struct ck_attribute a[4], unsigned *a_vals, ck_object_class_t *class, ck_certificate_type_t *type)
+int add_obj_attrs(struct p11_kit_uri *info, struct ck_attribute a[4],
+ unsigned *a_vals, ck_object_class_t * class,
+ ck_certificate_type_t * type)
{
struct ck_attribute *attr;
@@ -461,8 +465,7 @@ int add_obj_attrs(struct p11_kit_uri *info, struct ck_attribute a[4], unsigned *
/* Find objects with given class and type */
attr = p11_kit_uri_get_attribute(info, CKA_CLASS);
if (attr) {
- if (attr->value
- && attr->value_len == sizeof(ck_object_class_t))
+ if (attr->value && attr->value_len == sizeof(ck_object_class_t))
memcpy(class, attr->value, sizeof(ck_object_class_t));
if (*class == CKO_CERTIFICATE)
*type = CKC_X_509;
@@ -499,8 +502,7 @@ int add_obj_attrs(struct p11_kit_uri *info, struct ck_attribute a[4], unsigned *
int
gnutls_pkcs11_obj_set_info(gnutls_pkcs11_obj_t obj,
gnutls_pkcs11_obj_info_t itype,
- const void *data, size_t data_size,
- unsigned flags)
+ const void *data, size_t data_size, unsigned flags)
{
struct p11_kit_uri *info = obj->info;
struct pkcs11_session_info sinfo;
@@ -519,8 +521,7 @@ gnutls_pkcs11_obj_set_info(gnutls_pkcs11_obj_t obj,
ret =
pkcs11_open_session(&sinfo, NULL, info,
- SESSION_WRITE |
- pkcs11_obj_flags_to_int(flags));
+ SESSION_WRITE | pkcs11_obj_flags_to_int(flags));
if (ret < 0) {
gnutls_assert();
return ret;
@@ -532,8 +533,7 @@ gnutls_pkcs11_obj_set_info(gnutls_pkcs11_obj_t obj,
goto cleanup;
}
- rv = pkcs11_find_objects_init(sinfo.module, sinfo.pks, a,
- a_vals);
+ rv = pkcs11_find_objects_init(sinfo.module, sinfo.pks, a, a_vals);
if (rv != CKR_OK) {
gnutls_assert();
_gnutls_debug_log("p11: FindObjectsInit failed.\n");
@@ -552,7 +552,9 @@ gnutls_pkcs11_obj_set_info(gnutls_pkcs11_obj_t obj,
if (count > 1 || count == 0) {
gnutls_assert();
if (count > 1)
- _gnutls_debug_log("p11: More than one objects match (%d)\n", (int)count);
+ _gnutls_debug_log
+ ("p11: More than one objects match (%d)\n",
+ (int)count);
ret = GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
goto cleanup;
}
@@ -560,7 +562,7 @@ gnutls_pkcs11_obj_set_info(gnutls_pkcs11_obj_t obj,
switch (itype) {
case GNUTLS_PKCS11_OBJ_ID_HEX:
size = sizeof(tmp);
- ret = _gnutls_hex2bin(data, data_size, (uint8_t*)tmp, &size);
+ ret = _gnutls_hex2bin(data, data_size, (uint8_t *) tmp, &size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -571,10 +573,11 @@ gnutls_pkcs11_obj_set_info(gnutls_pkcs11_obj_t obj,
FALLTHROUGH;
case GNUTLS_PKCS11_OBJ_ID:
a[0].type = CKA_ID;
- a[0].value = (void*)data;
+ a[0].value = (void *)data;
a[0].value_len = data_size;
- rv = pkcs11_set_attribute_value(sinfo.module, sinfo.pks, ctx[0], a, 1);
+ rv = pkcs11_set_attribute_value(sinfo.module, sinfo.pks, ctx[0],
+ a, 1);
if (rv != CKR_OK) {
gnutls_assert();
_gnutls_debug_log("p11: set_attribute_value failed.\n");
@@ -585,10 +588,11 @@ gnutls_pkcs11_obj_set_info(gnutls_pkcs11_obj_t obj,
break;
case GNUTLS_PKCS11_OBJ_LABEL:
a[0].type = CKA_LABEL;
- a[0].value = (void*)data;
+ a[0].value = (void *)data;
a[0].value_len = data_size;
- rv = pkcs11_set_attribute_value(sinfo.module, sinfo.pks, ctx[0], a, 1);
+ rv = pkcs11_set_attribute_value(sinfo.module, sinfo.pks, ctx[0],
+ a, 1);
if (rv != CKR_OK) {
gnutls_assert();
_gnutls_debug_log("p11: set_attribute_value failed.\n");
@@ -636,13 +640,14 @@ gnutls_pkcs11_obj_set_info(gnutls_pkcs11_obj_t obj,
int
gnutls_pkcs11_obj_get_info(gnutls_pkcs11_obj_t obj,
gnutls_pkcs11_obj_info_t itype,
- void *output, size_t * output_size)
+ void *output, size_t *output_size)
{
return pkcs11_get_info(obj->info, itype, output, output_size);
}
static int
-find_obj_session_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
+find_obj_session_cb(struct ck_function_list *module,
+ struct pkcs11_session_info *sinfo,
struct ck_token_info *tinfo, struct ck_info *lib_info,
void *input)
{
@@ -652,8 +657,8 @@ find_obj_session_cb(struct ck_function_list *module, struct pkcs11_session_info
ck_object_handle_t ctx = CK_INVALID_HANDLE;
unsigned long count;
unsigned a_vals;
- ck_certificate_type_t type;
- ck_object_class_t class;
+ ck_certificate_type_t type;
+ ck_object_class_t class;
int found = 0, ret;
if (tinfo == NULL) { /* we don't support multiple calls */
@@ -664,8 +669,7 @@ find_obj_session_cb(struct ck_function_list *module, struct pkcs11_session_info
/* do not bother reading the token if basic fields do not match
*/
if (!p11_kit_uri_match_token_info(find_data->obj->info, tinfo) ||
- !p11_kit_uri_match_module_info(find_data->obj->info,
- lib_info)) {
+ !p11_kit_uri_match_module_info(find_data->obj->info, lib_info)) {
gnutls_assert();
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
@@ -674,8 +678,7 @@ find_obj_session_cb(struct ck_function_list *module, struct pkcs11_session_info
if (ret < 0)
return gnutls_assert_val(ret);
- rv = pkcs11_find_objects_init(sinfo->module, sinfo->pks, a,
- a_vals);
+ rv = pkcs11_find_objects_init(sinfo->module, sinfo->pks, a, a_vals);
if (rv != CKR_OK) {
gnutls_assert();
_gnutls_debug_log("p11: FindObjectsInit failed.\n");
@@ -683,8 +686,8 @@ find_obj_session_cb(struct ck_function_list *module, struct pkcs11_session_info
goto cleanup;
}
- if (pkcs11_find_objects(sinfo->module, sinfo->pks, &ctx, 1, &count) == CKR_OK &&
- count == 1) {
+ if (pkcs11_find_objects(sinfo->module, sinfo->pks, &ctx, 1, &count) ==
+ CKR_OK && count == 1) {
find_data->ptr = sinfo->module;
find_data->pks = sinfo->pks;
find_data->slot_id = sinfo->sid;
@@ -709,7 +712,6 @@ find_obj_session_cb(struct ck_function_list *module, struct pkcs11_session_info
return ret;
}
-
/**
* gnutls_pkcs11_obj_get_ptr:
* @obj: should contain a #gnutls_pkcs11_obj_t type
@@ -731,8 +733,7 @@ find_obj_session_cb(struct ck_function_list *module, struct pkcs11_session_info
int
gnutls_pkcs11_obj_get_ptr(gnutls_pkcs11_obj_t obj, void **ptr,
void **session, void **ohandle,
- unsigned long *slot_id,
- unsigned int flags)
+ unsigned long *slot_id, unsigned int flags)
{
int ret;
struct find_obj_session_st find_data;
@@ -745,7 +746,8 @@ gnutls_pkcs11_obj_get_ptr(gnutls_pkcs11_obj_t obj, void **ptr,
ret =
_pkcs11_traverse_tokens(find_obj_session_cb, &find_data, obj->info,
&obj->pin,
- SESSION_NO_CLOSE|pkcs11_obj_flags_to_int(flags));
+ SESSION_NO_CLOSE |
+ pkcs11_obj_flags_to_int(flags));
if (ret < 0) {
gnutls_assert();
return ret;
@@ -754,8 +756,8 @@ gnutls_pkcs11_obj_get_ptr(gnutls_pkcs11_obj_t obj, void **ptr,
if (ptr)
*ptr = find_data.ptr;
- *ohandle = (void*)find_data.ohandle;
- *session = (void*)find_data.pks;
+ *ohandle = (void *)find_data.ohandle;
+ *session = (void *)find_data.pks;
if (slot_id)
*slot_id = find_data.slot_id;
@@ -766,7 +768,7 @@ gnutls_pkcs11_obj_get_ptr(gnutls_pkcs11_obj_t obj, void **ptr,
int
pkcs11_get_info(struct p11_kit_uri *info,
gnutls_pkcs11_obj_info_t itype, void *output,
- size_t * output_size)
+ size_t *output_size)
{
struct ck_attribute *attr = NULL;
struct ck_version *version = NULL;
@@ -813,13 +815,11 @@ pkcs11_get_info(struct p11_kit_uri *info,
str_max = 16;
break;
case GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION:
- str =
- p11_kit_uri_get_module_info(info)->library_description;
+ str = p11_kit_uri_get_module_info(info)->library_description;
str_max = 32;
break;
case GNUTLS_PKCS11_OBJ_LIBRARY_VERSION:
- version =
- &p11_kit_uri_get_module_info(info)->library_version;
+ version = &p11_kit_uri_get_module_info(info)->library_version;
break;
case GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER:
str = p11_kit_uri_get_module_info(info)->manufacturer_id;
@@ -834,14 +834,14 @@ pkcs11_get_info(struct p11_kit_uri *info,
data = attr->value;
length = attr->value_len;
} else if (str != NULL) {
- data = (void *) str;
+ data = (void *)str;
length = p11_kit_space_strlen(str, str_max);
terminate = 1;
} else if (version != NULL) {
data = buf;
length =
snprintf(buf, sizeof(buf), "%d.%d",
- (int) version->major, (int) version->minor);
+ (int)version->major, (int)version->minor);
terminate = 1;
} else {
*output_size = 0;
@@ -869,7 +869,7 @@ pkcs11_get_info(struct p11_kit_uri *info,
if (output) {
memcpy(output, data, length);
if (terminate)
- ((unsigned char *) output)[length] = '\0';
+ ((unsigned char *)output)[length] = '\0';
}
*output_size = length;
}
@@ -897,8 +897,7 @@ static void compat_load(const char *configfile)
return;
}
- _gnutls_debug_log("Loading PKCS #11 libraries from %s\n",
- configfile);
+ _gnutls_debug_log("Loading PKCS #11 libraries from %s\n", configfile);
while (fgets(line, sizeof(line), fp) != NULL) {
if (strncmp(line, "load", sizeof("load") - 1) == 0) {
char *p;
@@ -915,8 +914,7 @@ static void compat_load(const char *configfile)
if (ret < 0) {
gnutls_assert();
_gnutls_debug_log
- ("Cannot load provider: %s\n",
- library);
+ ("Cannot load provider: %s\n", library);
continue;
}
}
@@ -930,9 +928,11 @@ static int auto_load(unsigned trusted)
{
struct ck_function_list **modules;
int i, ret;
- char* name;
+ char *name;
- modules = p11_kit_modules_load_and_initialize(trusted?P11_KIT_MODULE_TRUSTED:0);
+ modules =
+ p11_kit_modules_load_and_initialize(trusted ? P11_KIT_MODULE_TRUSTED
+ : 0);
if (modules == NULL) {
gnutls_assert();
_gnutls_debug_log
@@ -943,8 +943,7 @@ static int auto_load(unsigned trusted)
for (i = 0; modules[i] != NULL; i++) {
name = p11_kit_module_get_name(modules[i]);
- _gnutls_debug_log
- ("p11: Initializing module: %s\n", name);
+ _gnutls_debug_log("p11: Initializing module: %s\n", name);
ret = pkcs11_add_module(name, modules[i], 0, NULL);
if (ret < 0) {
@@ -981,8 +980,7 @@ static int auto_load(unsigned trusted)
*
* Since: 2.12.0
**/
-int
-gnutls_pkcs11_init(unsigned int flags, const char *deprecated_config_file)
+int gnutls_pkcs11_init(unsigned int flags, const char *deprecated_config_file)
{
int ret = 0;
@@ -995,15 +993,14 @@ gnutls_pkcs11_init(unsigned int flags, const char *deprecated_config_file)
pkcs11_forkid = _gnutls_get_forkid();
p11_kit_pin_register_callback(P11_KIT_PIN_FALLBACK,
- p11_kit_pin_file_callback, NULL,
- NULL);
+ p11_kit_pin_file_callback, NULL, NULL);
if (flags == GNUTLS_PKCS11_FLAG_MANUAL) {
/* if manual configuration is requested then don't
* bother loading any other providers */
providers_initialized = PROV_INIT_MANUAL;
return 0;
- } else if (flags & GNUTLS_PKCS11_FLAG_AUTO) {
+ } else if (flags & GNUTLS_PKCS11_FLAG_AUTO) {
if (deprecated_config_file == NULL)
ret = auto_load(0);
@@ -1030,15 +1027,16 @@ static int _gnutls_pkcs11_reinit(void)
for (i = 0; i < active_providers; i++) {
if (providers[i].module != NULL) {
- rv = p11_kit_module_initialize(providers
- [i].module);
- if (rv == CKR_OK || rv == CKR_CRYPTOKI_ALREADY_INITIALIZED) {
+ rv = p11_kit_module_initialize(providers[i].module);
+ if (rv == CKR_OK
+ || rv == CKR_CRYPTOKI_ALREADY_INITIALIZED) {
providers[i].active = 1;
} else {
providers[i].active = 0;
_gnutls_debug_log
("Cannot re-initialize registered module '%.*s': %s\n",
- (int)32, providers[i].info.library_description,
+ (int)32,
+ providers[i].info.library_description,
p11_kit_strerror(rv));
}
}
@@ -1134,7 +1132,8 @@ gnutls_pkcs11_set_token_function(gnutls_pkcs11_token_callback_t fn,
_gnutls_token_data = userdata;
}
-int pkcs11_url_to_info(const char *url, struct p11_kit_uri **info, unsigned flags)
+int pkcs11_url_to_info(const char *url, struct p11_kit_uri **info,
+ unsigned flags)
{
int allocated = 0;
int ret;
@@ -1166,20 +1165,20 @@ int pkcs11_url_to_info(const char *url, struct p11_kit_uri **info, unsigned flag
klass = CKO_CERTIFICATE;
at.type = CKA_CLASS;
at.value = &klass;
- at.value_len = sizeof (klass);
- p11_kit_uri_set_attribute (*info, &at);
+ at.value_len = sizeof(klass);
+ p11_kit_uri_set_attribute(*info, &at);
} else if (flags & GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PRIVKEY) {
klass = CKO_PRIVATE_KEY;
at.type = CKA_CLASS;
at.value = &klass;
- at.value_len = sizeof (klass);
- p11_kit_uri_set_attribute (*info, &at);
+ at.value_len = sizeof(klass);
+ p11_kit_uri_set_attribute(*info, &at);
} else if (flags & GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PUBKEY) {
klass = CKO_PUBLIC_KEY;
at.type = CKA_CLASS;
at.value = &klass;
- at.value_len = sizeof (klass);
- p11_kit_uri_set_attribute (*info, &at);
+ at.value_len = sizeof(klass);
+ p11_kit_uri_set_attribute(*info, &at);
}
return 0;
@@ -1259,8 +1258,7 @@ int gnutls_pkcs11_obj_init(gnutls_pkcs11_obj_t * obj)
**/
void
gnutls_pkcs11_obj_set_pin_function(gnutls_pkcs11_obj_t obj,
- gnutls_pin_callback_t fn,
- void *userdata)
+ gnutls_pin_callback_t fn, void *userdata)
{
obj->pin.cb = fn;
obj->pin.data = userdata;
@@ -1277,7 +1275,7 @@ gnutls_pkcs11_obj_set_pin_function(gnutls_pkcs11_obj_t obj,
void gnutls_pkcs11_obj_deinit(gnutls_pkcs11_obj_t obj)
{
unsigned i;
- for (i=0;i<obj->pubkey_size;i++)
+ for (i = 0; i < obj->pubkey_size; i++)
_gnutls_free_datum(&obj->pubkey[i]);
_gnutls_free_datum(&obj->raw);
p11_kit_uri_free(obj->info);
@@ -1306,7 +1304,7 @@ void gnutls_pkcs11_obj_deinit(gnutls_pkcs11_obj_t obj)
**/
int
gnutls_pkcs11_obj_export(gnutls_pkcs11_obj_t obj,
- void *output_data, size_t * output_data_size)
+ void *output_data, size_t *output_data_size)
{
if (obj == NULL || obj->raw.data == NULL) {
gnutls_assert();
@@ -1340,8 +1338,7 @@ gnutls_pkcs11_obj_export(gnutls_pkcs11_obj_t obj,
*
* Since: 3.1.3
**/
-int
-gnutls_pkcs11_obj_export2(gnutls_pkcs11_obj_t obj, gnutls_datum_t * out)
+int gnutls_pkcs11_obj_export2(gnutls_pkcs11_obj_t obj, gnutls_datum_t * out)
{
return gnutls_pkcs11_obj_export3(obj, GNUTLS_X509_FMT_DER, out);
}
@@ -1377,7 +1374,9 @@ gnutls_pkcs11_obj_export3(gnutls_pkcs11_obj_t obj,
switch (obj->type) {
case GNUTLS_PKCS11_OBJ_X509_CRT:
if (obj->raw.data == NULL)
- return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
if (fmt == GNUTLS_X509_FMT_PEM) {
return
@@ -1396,30 +1395,27 @@ gnutls_pkcs11_obj_export3(gnutls_pkcs11_obj_t obj,
if (ret < 0)
return gnutls_assert_val(ret);
- ret =
- gnutls_pubkey_import_pkcs11(pubkey,
- obj, 0);
+ ret = gnutls_pubkey_import_pkcs11(pubkey, obj, 0);
if (ret < 0) {
gnutls_assert();
goto pcleanup;
}
- ret =
- gnutls_pubkey_export2(pubkey, fmt,
- out);
+ ret = gnutls_pubkey_export2(pubkey, fmt, out);
- pcleanup:
+ pcleanup:
gnutls_pubkey_deinit(pubkey);
return ret;
}
default:
if (obj->raw.data == NULL)
- return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
if (fmt == GNUTLS_X509_FMT_PEM) {
return gnutls_pem_base64_encode2("DATA",
- &obj->raw,
- out);
+ &obj->raw, out);
} else {
return _gnutls_set_datum(out, obj->raw.data,
obj->raw.size);
@@ -1427,13 +1423,11 @@ gnutls_pkcs11_obj_export3(gnutls_pkcs11_obj_t obj,
}
}
-
int
pkcs11_find_slot(struct ck_function_list **module, ck_slot_id_t * slot,
struct p11_kit_uri *info,
struct ck_token_info *_tinfo,
- struct ck_slot_info *_slot_info,
- unsigned int *trusted)
+ struct ck_slot_info *_slot_info, unsigned int *trusted)
{
unsigned int x, z;
int ret;
@@ -1444,8 +1438,7 @@ pkcs11_find_slot(struct ck_function_list **module, ck_slot_id_t * slot,
if (providers[x].active == 0)
continue;
- if (!p11_kit_uri_match_module_info(info,
- &providers[x].info)) {
+ if (!p11_kit_uri_match_module_info(info, &providers[x].info)) {
continue;
}
@@ -1461,8 +1454,7 @@ pkcs11_find_slot(struct ck_function_list **module, ck_slot_id_t * slot,
struct ck_slot_info sinfo;
if (pkcs11_get_token_info
- (providers[x].module, slots[z],
- &tinfo) != CKR_OK) {
+ (providers[x].module, slots[z], &tinfo) != CKR_OK) {
continue;
}
@@ -1511,8 +1503,7 @@ pkcs11_open_session(struct pkcs11_session_info *sinfo,
memset(sinfo, 0, sizeof(*sinfo));
ret = pkcs11_find_slot(&module, &slot, info, &tinfo,
- &sinfo->slot_info,
- &sinfo->trusted);
+ &sinfo->slot_info, &sinfo->trusted);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1533,9 +1524,7 @@ pkcs11_open_session(struct pkcs11_session_info *sinfo,
sinfo->init = 1;
memcpy(&sinfo->tinfo, &tinfo, sizeof(sinfo->tinfo));
- ret =
- pkcs11_login(sinfo, pin_info, info,
- flags);
+ ret = pkcs11_login(sinfo, pin_info, info, flags);
if (ret < 0) {
gnutls_assert();
pkcs11_close_session(sinfo);
@@ -1545,7 +1534,6 @@ pkcs11_open_session(struct pkcs11_session_info *sinfo,
return 0;
}
-
int
_pkcs11_traverse_tokens(find_func_t find_func, void *input,
struct p11_kit_uri *info,
@@ -1567,7 +1555,9 @@ _pkcs11_traverse_tokens(find_func_t find_func, void *input,
if (flags & SESSION_TRUSTED && providers[x].trusted == 0)
continue;
- if (info && !p11_kit_uri_match_module_info(info, &providers[x].info)) {
+ if (info
+ && !p11_kit_uri_match_module_info(info,
+ &providers[x].info)) {
continue;
}
@@ -1588,7 +1578,8 @@ _pkcs11_traverse_tokens(find_func_t find_func, void *input,
continue;
}
- if (info && !p11_kit_uri_match_token_info(info, &l_tinfo)) {
+ if (info
+ && !p11_kit_uri_match_token_info(info, &l_tinfo)) {
continue;
}
@@ -1598,9 +1589,10 @@ _pkcs11_traverse_tokens(find_func_t find_func, void *input,
}
rv = (module)->C_OpenSession(slots[z],
- ((flags & SESSION_WRITE) ? CKF_RW_SESSION : 0)
- | CKF_SERIAL_SESSION,
- NULL, NULL, &pks);
+ ((flags & SESSION_WRITE) ?
+ CKF_RW_SESSION : 0)
+ | CKF_SERIAL_SESSION, NULL,
+ NULL, &pks);
if (rv != CKR_OK) {
continue;
}
@@ -1612,11 +1604,10 @@ _pkcs11_traverse_tokens(find_func_t find_func, void *input,
sinfo.trusted = providers[x].trusted;
memcpy(&sinfo.tinfo, &l_tinfo, sizeof(sinfo.tinfo));
- memcpy(&sinfo.slot_info, &l_sinfo, sizeof(sinfo.slot_info));
+ memcpy(&sinfo.slot_info, &l_sinfo,
+ sizeof(sinfo.slot_info));
- ret =
- pkcs11_login(&sinfo, pin_info,
- info, flags);
+ ret = pkcs11_login(&sinfo, pin_info, info, flags);
if (ret < 0) {
gnutls_assert();
pkcs11_close_session(&sinfo);
@@ -1629,7 +1620,8 @@ _pkcs11_traverse_tokens(find_func_t find_func, void *input,
}
ret =
- find_func(providers[x].module, &sinfo, &l_tinfo, &providers[x].info, input);
+ find_func(providers[x].module, &sinfo, &l_tinfo,
+ &providers[x].info, input);
if (ret == 0) {
found = 1;
@@ -1641,14 +1633,16 @@ _pkcs11_traverse_tokens(find_func_t find_func, void *input,
}
}
- finish:
+ finish:
/* final call */
if (found == 0) {
if (module) {
sinfo.module = module;
sinfo.pks = pks;
- ret = find_func(providers[x].module, &sinfo, NULL, NULL, input);
+ ret =
+ find_func(providers[x].module, &sinfo, NULL, NULL,
+ input);
} else
ret =
gnutls_assert_val
@@ -1701,7 +1695,8 @@ static gnutls_pkcs11_obj_type_t pkcs11_class_to_type(ck_object_class_t class)
case CKO_DATA:
return GNUTLS_PKCS11_OBJ_DATA;
default:
- _gnutls_debug_log("unknown pkcs11 object class %x\n", (unsigned)class);
+ _gnutls_debug_log("unknown pkcs11 object class %x\n",
+ (unsigned)class);
return GNUTLS_PKCS11_OBJ_UNKNOWN;
}
}
@@ -1929,14 +1924,16 @@ int pkcs11_read_pubkey(struct ck_function_list *module,
break;
#endif
default:
- _gnutls_debug_log("requested reading public key of unsupported type %u\n", (unsigned)key_type);
+ _gnutls_debug_log
+ ("requested reading public key of unsupported type %u\n",
+ (unsigned)key_type);
ret = gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
goto cleanup;
}
return 0;
-cleanup:
+ cleanup:
gnutls_free(tmp1);
gnutls_free(tmp2);
@@ -1948,11 +1945,10 @@ pkcs11_obj_import_pubkey(struct ck_function_list *module,
ck_session_handle_t pks,
ck_object_handle_t ctx,
gnutls_pkcs11_obj_t pobj,
- gnutls_datum_t *data,
- const gnutls_datum_t *id,
- const gnutls_datum_t *label,
- struct ck_token_info *tinfo,
- struct ck_info *lib_info)
+ gnutls_datum_t * data,
+ const gnutls_datum_t * id,
+ const gnutls_datum_t * label,
+ struct ck_token_info *tinfo, struct ck_info *lib_info)
{
struct ck_attribute a[4];
ck_key_type_t key_type;
@@ -1966,9 +1962,7 @@ pkcs11_obj_import_pubkey(struct ck_function_list *module,
if (pkcs11_get_attribute_value(module, pks, ctx, a, 1) == CKR_OK) {
pobj->pk_algorithm = key_type_to_pk(key_type);
- ret =
- pkcs11_read_pubkey(module, pks, ctx, key_type,
- pobj);
+ ret = pkcs11_read_pubkey(module, pks, ctx, key_type, pobj);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -2029,7 +2023,7 @@ pkcs11_obj_import_pubkey(struct ck_function_list *module,
}
ret = pkcs11_obj_import(CKO_PUBLIC_KEY, pobj, data, id, label,
- tinfo, lib_info);
+ tinfo, lib_info);
return ret;
}
@@ -2045,7 +2039,7 @@ pkcs11_import_object(ck_object_handle_t ctx, ck_object_class_t class,
unsigned long category = 0;
char label_tmp[PKCS11_LABEL_SIZE];
char id_tmp[PKCS11_ID_SIZE];
- gnutls_datum_t id, label, data = {NULL, 0};
+ gnutls_datum_t id, label, data = { NULL, 0 };
/* now figure out flags */
pobj->flags = 0;
@@ -2081,12 +2075,13 @@ pkcs11_import_object(ck_object_handle_t ctx, ck_object_class_t class,
if (rv == CKR_OK && b != 0)
pobj->flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED;
- if (sinfo->trusted) { /* only p11-kit "trusted" modules support this flag */
+ if (sinfo->trusted) { /* only p11-kit "trusted" modules support this flag */
a[0].type = CKA_X_DISTRUSTED;
a[0].value = &b;
a[0].value_len = sizeof(b);
- rv = pkcs11_get_attribute_value(sinfo->module, sinfo->pks, ctx, a, 1);
+ rv = pkcs11_get_attribute_value(sinfo->module, sinfo->pks, ctx,
+ a, 1);
if (rv == CKR_OK && b != 0)
pobj->flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED;
}
@@ -2100,7 +2095,8 @@ pkcs11_import_object(ck_object_handle_t ctx, ck_object_class_t class,
if (b != 0)
pobj->flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE;
else
- pobj->flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE;
+ pobj->flags |=
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE;
}
a[0].type = CKA_EXTRACTABLE;
@@ -2139,8 +2135,7 @@ pkcs11_import_object(ck_object_handle_t ctx, ck_object_class_t class,
a[0].type = CKA_LABEL;
a[0].value = label_tmp;
a[0].value_len = sizeof(label_tmp);
- rv = pkcs11_get_attribute_value
- (sinfo->module, sinfo->pks, ctx, a, 1);
+ rv = pkcs11_get_attribute_value(sinfo->module, sinfo->pks, ctx, a, 1);
if (rv != CKR_OK) {
gnutls_assert();
label.data = NULL;
@@ -2153,8 +2148,7 @@ pkcs11_import_object(ck_object_handle_t ctx, ck_object_class_t class,
a[0].type = CKA_ID;
a[0].value = id_tmp;
a[0].value_len = sizeof(id_tmp);
- rv = pkcs11_get_attribute_value
- (sinfo->module, sinfo->pks, ctx, a, 1);
+ rv = pkcs11_get_attribute_value(sinfo->module, sinfo->pks, ctx, a, 1);
if (rv != CKR_OK) {
gnutls_assert();
id.data = NULL;
@@ -2181,16 +2175,12 @@ pkcs11_import_object(ck_object_handle_t ctx, ck_object_class_t class,
ctx,
pobj,
&data,
- &id, &label,
- tinfo,
- lib_info);
+ &id, &label, tinfo, lib_info);
} else {
ret =
pkcs11_obj_import(class,
pobj,
- &data, &id, &label,
- tinfo,
- lib_info);
+ &data, &id, &label, tinfo, lib_info);
}
if (ret < 0) {
gnutls_assert();
@@ -2204,9 +2194,10 @@ pkcs11_import_object(ck_object_handle_t ctx, ck_object_class_t class,
}
static int
-find_single_obj_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
- struct ck_token_info *tinfo, struct ck_info *lib_info,
- void *input)
+find_single_obj_cb(struct ck_function_list *module,
+ struct pkcs11_session_info *sinfo,
+ struct ck_token_info *tinfo, struct ck_info *lib_info,
+ void *input)
{
struct find_single_obj_st *find_data = input;
struct ck_attribute a[4];
@@ -2225,10 +2216,8 @@ find_single_obj_cb(struct ck_function_list *module, struct pkcs11_session_info *
/* do not bother reading the token if basic fields do not match
*/
- if (!p11_kit_uri_match_token_info
- (find_data->obj->info, tinfo)
- || !p11_kit_uri_match_module_info(find_data->obj->info,
- lib_info)) {
+ if (!p11_kit_uri_match_token_info(find_data->obj->info, tinfo)
+ || !p11_kit_uri_match_module_info(find_data->obj->info, lib_info)) {
gnutls_assert();
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
@@ -2237,8 +2226,7 @@ find_single_obj_cb(struct ck_function_list *module, struct pkcs11_session_info *
if (ret < 0)
return gnutls_assert_val(ret);
- rv = pkcs11_find_objects_init(sinfo->module, sinfo->pks, a,
- a_vals);
+ rv = pkcs11_find_objects_init(sinfo->module, sinfo->pks, a, a_vals);
if (rv != CKR_OK) {
gnutls_assert();
_gnutls_debug_log("p11: FindObjectsInit failed.\n");
@@ -2246,15 +2234,16 @@ find_single_obj_cb(struct ck_function_list *module, struct pkcs11_session_info *
goto cleanup;
}
- if (pkcs11_find_objects(sinfo->module, sinfo->pks, &ctx, 1, &count) == CKR_OK &&
- count == 1) {
- ret = pkcs11_import_object(ctx, class, sinfo, tinfo, lib_info, find_data->obj);
+ if (pkcs11_find_objects(sinfo->module, sinfo->pks, &ctx, 1, &count) ==
+ CKR_OK && count == 1) {
+ ret =
+ pkcs11_import_object(ctx, class, sinfo, tinfo, lib_info,
+ find_data->obj);
if (ret >= 0) {
found = 1;
}
} else {
- _gnutls_debug_log
- ("p11: Skipped object, missing attrs.\n");
+ _gnutls_debug_log("p11: Skipped object, missing attrs.\n");
}
if (found == 0) {
@@ -2264,14 +2253,18 @@ find_single_obj_cb(struct ck_function_list *module, struct pkcs11_session_info *
ret = 0;
}
- cleanup:
+ cleanup:
pkcs11_find_objects_final(sinfo);
- if (ret == 0 && find_data->overwrite_exts && find_data->obj->raw.size > 0 && ctx != CK_INVALID_HANDLE) {
+ if (ret == 0 && find_data->overwrite_exts
+ && find_data->obj->raw.size > 0 && ctx != CK_INVALID_HANDLE) {
gnutls_datum_t spki;
- rv = pkcs11_get_attribute_avalue(sinfo->module, sinfo->pks, ctx, CKA_PUBLIC_KEY_INFO, &spki);
+ rv = pkcs11_get_attribute_avalue(sinfo->module, sinfo->pks, ctx,
+ CKA_PUBLIC_KEY_INFO, &spki);
if (rv == CKR_OK) {
- ret = pkcs11_override_cert_exts(sinfo, &spki, &find_data->obj->raw);
+ ret =
+ pkcs11_override_cert_exts(sinfo, &spki,
+ &find_data->obj->raw);
gnutls_free(spki.data);
if (ret < 0) {
gnutls_assert();
@@ -2291,7 +2284,9 @@ unsigned int pkcs11_obj_flags_to_int(unsigned int flags)
ret_flags |= SESSION_LOGIN | SESSION_FORCE_LOGIN;
if (flags & GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO)
- ret_flags |= SESSION_LOGIN | SESSION_SO | SESSION_FORCE_LOGIN | SESSION_WRITE;
+ ret_flags |=
+ SESSION_LOGIN | SESSION_SO | SESSION_FORCE_LOGIN |
+ SESSION_WRITE;
if (flags & GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE)
ret_flags |= SESSION_TRUSTED;
@@ -2344,8 +2339,7 @@ gnutls_pkcs11_obj_import_url(gnutls_pkcs11_obj_t obj, const char *url,
ret =
_pkcs11_traverse_tokens(find_single_obj_cb, &find_data, obj->info,
- &obj->pin,
- pkcs11_obj_flags_to_int(flags));
+ &obj->pin, pkcs11_obj_flags_to_int(flags));
if (ret < 0) {
gnutls_assert();
return ret;
@@ -2355,9 +2349,10 @@ gnutls_pkcs11_obj_import_url(gnutls_pkcs11_obj_t obj, const char *url,
}
static int
-find_token_num_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
- struct ck_token_info *tinfo,
- struct ck_info *lib_info, void *input)
+find_token_num_cb(struct ck_function_list *module,
+ struct pkcs11_session_info *sinfo,
+ struct ck_token_info *tinfo, struct ck_info *lib_info,
+ void *input)
{
struct find_token_num *find_data = input;
@@ -2377,14 +2372,14 @@ find_token_num_cb(struct ck_function_list *module, struct pkcs11_session_info *s
find_data->current++;
/* search the token for the id */
-
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE; /* non zero is enough */
}
static int
-find_token_modname_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
- struct ck_token_info *tinfo,
- struct ck_info *lib_info, void *input)
+find_token_modname_cb(struct ck_function_list *module,
+ struct pkcs11_session_info *sinfo,
+ struct ck_token_info *tinfo, struct ck_info *lib_info,
+ void *input)
{
struct find_token_modname *find_data = input;
@@ -2394,8 +2389,7 @@ find_token_modname_cb(struct ck_function_list *module, struct pkcs11_session_inf
}
if (!p11_kit_uri_match_token_info(find_data->info, tinfo)
- || !p11_kit_uri_match_module_info(find_data->info,
- lib_info)) {
+ || !p11_kit_uri_match_module_info(find_data->info, lib_info)) {
gnutls_assert();
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
@@ -2507,7 +2501,7 @@ gnutls_pkcs11_token_get_url(unsigned int seq,
int
gnutls_pkcs11_token_get_info(const char *url,
gnutls_pkcs11_token_info_t ttype,
- void *output, size_t * output_size)
+ void *output, size_t *output_size)
{
struct p11_kit_uri *info = NULL;
const uint8_t *str;
@@ -2540,28 +2534,30 @@ gnutls_pkcs11_token_get_info(const char *url,
str = p11_kit_uri_get_token_info(info)->model;
len = p11_kit_space_strlen(str, 16);
break;
- case GNUTLS_PKCS11_TOKEN_MODNAME: {
- struct find_token_modname tn;
+ case GNUTLS_PKCS11_TOKEN_MODNAME:{
+ struct find_token_modname tn;
- memset(&tn, 0, sizeof(tn));
- tn.info = info;
+ memset(&tn, 0, sizeof(tn));
+ tn.info = info;
- ret = _pkcs11_traverse_tokens(find_token_modname_cb, &tn, NULL, NULL, 0);
- if (ret < 0) {
- gnutls_assert();
- goto cleanup;
- }
+ ret =
+ _pkcs11_traverse_tokens(find_token_modname_cb, &tn,
+ NULL, NULL, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
- temp_str = tn.modname;
- if (temp_str) {
- str = (uint8_t *)temp_str;
- len = strlen(temp_str);
- } else {
- gnutls_assert();
- len = 0;
+ temp_str = tn.modname;
+ if (temp_str) {
+ str = (uint8_t *) temp_str;
+ len = strlen(temp_str);
+ } else {
+ gnutls_assert();
+ len = 0;
+ }
+ break;
}
- break;
- }
default:
gnutls_assert();
ret = GNUTLS_E_INVALID_REQUEST;
@@ -2571,7 +2567,7 @@ gnutls_pkcs11_token_get_info(const char *url,
if (len < *output_size) {
if (len)
memcpy(output, str, len);
- ((char *) output)[len] = '\0';
+ ((char *)output)[len] = '\0';
*output_size = len;
ret = 0;
} else {
@@ -2620,7 +2616,8 @@ gnutls_pkcs11_token_get_ptr(const char *url, void **ptr, unsigned long *slot_id,
memset(&tn, 0, sizeof(tn));
tn.info = info;
- ret = _pkcs11_traverse_tokens(find_token_modname_cb, &tn, NULL, NULL, 0);
+ ret =
+ _pkcs11_traverse_tokens(find_token_modname_cb, &tn, NULL, NULL, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2678,8 +2675,7 @@ gnutls_pkcs11_obj_export_url(gnutls_pkcs11_obj_t obj,
*
* Since: 2.12.0
**/
-gnutls_pkcs11_obj_type_t
-gnutls_pkcs11_obj_get_type(gnutls_pkcs11_obj_t obj)
+gnutls_pkcs11_obj_type_t gnutls_pkcs11_obj_get_type(gnutls_pkcs11_obj_t obj)
{
return obj->type;
}
@@ -2687,8 +2683,7 @@ gnutls_pkcs11_obj_get_type(gnutls_pkcs11_obj_t obj)
static int
retrieve_pin_from_source(const char *pinfile,
struct ck_token_info *token_info, int attempts,
- ck_user_type_t user_type,
- struct p11_kit_pin **pin)
+ ck_user_type_t user_type, struct p11_kit_pin **pin)
{
unsigned int flags = 0;
struct p11_kit_uri *token_uri;
@@ -2696,8 +2691,7 @@ retrieve_pin_from_source(const char *pinfile,
char *label;
label =
- p11_kit_space_strdup(token_info->label,
- sizeof(token_info->label));
+ p11_kit_space_strdup(token_info->label, sizeof(token_info->label));
if (label == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -2758,8 +2752,7 @@ retrieve_pin_from_callback(const struct pin_info_st *pin_info,
int ret = 0;
label =
- p11_kit_space_strdup(token_info->label,
- sizeof(token_info->label));
+ p11_kit_space_strdup(token_info->label, sizeof(token_info->label));
if (label == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -2806,12 +2799,12 @@ retrieve_pin_from_callback(const struct pin_info_st *pin_info,
if (pin_info && pin_info->cb)
ret =
pin_info->cb(pin_info->data, attempts,
- (char *) token_str, label, flags,
+ (char *)token_str, label, flags,
pin_value, GNUTLS_PKCS11_MAX_PIN_LEN);
else if (_gnutls_pin_func)
ret =
_gnutls_pin_func(_gnutls_pin_data, attempts,
- (char *) token_str, label, flags,
+ (char *)token_str, label, flags,
pin_value, GNUTLS_PKCS11_MAX_PIN_LEN);
else
ret = gnutls_assert_val(GNUTLS_E_PKCS11_PIN_ERROR);
@@ -2844,7 +2837,8 @@ pkcs11_retrieve_pin(struct pin_info_st *pin_info, struct p11_kit_uri *info,
pinfile = p11_kit_uri_get_pin_value(info);
if (pinfile != NULL) {
if (attempts > 0) {
- _gnutls_debug_log("p11: refusing more than a single attempts with pin-value\n");
+ _gnutls_debug_log
+ ("p11: refusing more than a single attempts with pin-value\n");
return gnutls_assert_val(GNUTLS_E_PKCS11_PIN_ERROR);
}
@@ -2852,19 +2846,23 @@ pkcs11_retrieve_pin(struct pin_info_st *pin_info, struct p11_kit_uri *info,
*pin = p11_kit_pin_new_for_string(pinfile);
if (*pin != NULL)
ret = 0;
- } else { /* try pin-source */
+ } else { /* try pin-source */
/* Check if a pinfile is specified, and use that if possible */
pinfile = p11_kit_uri_get_pin_source(info);
if (pinfile != NULL) {
if (attempts > 0) {
- _gnutls_debug_log("p11: refusing more than a single attempts with pin-source\n");
- return gnutls_assert_val(GNUTLS_E_PKCS11_PIN_ERROR);
+ _gnutls_debug_log
+ ("p11: refusing more than a single attempts with pin-source\n");
+ return
+ gnutls_assert_val
+ (GNUTLS_E_PKCS11_PIN_ERROR);
}
- _gnutls_debug_log("p11: Using pin-source to retrieve PIN\n");
+ _gnutls_debug_log
+ ("p11: Using pin-source to retrieve PIN\n");
ret =
- retrieve_pin_from_source(pinfile, token_info, attempts,
- user_type, pin);
+ retrieve_pin_from_source(pinfile, token_info,
+ attempts, user_type, pin);
}
}
@@ -2889,8 +2887,7 @@ pkcs11_retrieve_pin(struct pin_info_st *pin_info, struct p11_kit_uri *info,
int
pkcs11_login(struct pkcs11_session_info *sinfo,
struct pin_info_st *pin_info,
- struct p11_kit_uri *info,
- unsigned flags)
+ struct p11_kit_uri *info, unsigned flags)
{
struct ck_session_info session_info;
int attempt = 0, ret;
@@ -2910,7 +2907,7 @@ pkcs11_login(struct pkcs11_session_info *sinfo,
user_type = CKU_USER;
}
- if (!(flags & (SESSION_FORCE_LOGIN|SESSION_SO)) &&
+ if (!(flags & (SESSION_FORCE_LOGIN | SESSION_SO)) &&
!(sinfo->tinfo.flags & CKF_LOGIN_REQUIRED)) {
gnutls_assert();
_gnutls_debug_log("p11: No login required in token.\n");
@@ -2921,15 +2918,12 @@ pkcs11_login(struct pkcs11_session_info *sinfo,
* path, calling login with a NULL username is all that is
* required. */
if (sinfo->tinfo.flags & CKF_PROTECTED_AUTHENTICATION_PATH) {
- rv = (sinfo->module)->C_Login(sinfo->pks,
- user_type,
- NULL, 0);
+ rv = (sinfo->module)->C_Login(sinfo->pks, user_type, NULL, 0);
if (rv == CKR_OK || rv == CKR_USER_ALREADY_LOGGED_IN) {
return 0;
} else {
gnutls_assert();
- _gnutls_debug_log
- ("p11: Protected login failed.\n");
+ _gnutls_debug_log("p11: Protected login failed.\n");
ret = pkcs11_rv_to_err(rv);
goto cleanup;
}
@@ -2947,14 +2941,17 @@ pkcs11_login(struct pkcs11_session_info *sinfo,
&session_info);
if (rv == CKR_OK) {
if (flags & SESSION_SO) {
- if (session_info.state == CKS_RW_SO_FUNCTIONS) {
+ if (session_info.state ==
+ CKS_RW_SO_FUNCTIONS) {
ret = 0;
_gnutls_debug_log
("p11: Already logged in as SO\n");
goto cleanup;
}
- } else if (session_info.state == CKS_RO_USER_FUNCTIONS
- || session_info.state == CKS_RW_USER_FUNCTIONS) {
+ } else if (session_info.state ==
+ CKS_RO_USER_FUNCTIONS
+ || session_info.state ==
+ CKS_RW_USER_FUNCTIONS) {
ret = 0;
_gnutls_debug_log
("p11: Already logged in as user\n");
@@ -2967,11 +2964,10 @@ pkcs11_login(struct pkcs11_session_info *sinfo,
* status again, the flags might change. */
if (attempt) {
rv = pkcs11_get_token_info(sinfo->module, sinfo->sid,
- &tinfo);
+ &tinfo);
if (rv != CKR_OK) {
gnutls_assert();
- _gnutls_debug_log
- ("p11: GetTokenInfo failed\n");
+ _gnutls_debug_log("p11: GetTokenInfo failed\n");
ret = pkcs11_rv_to_err(rv);
goto cleanup;
@@ -2996,7 +2992,8 @@ pkcs11_login(struct pkcs11_session_info *sinfo,
}
while (rv == CKR_PIN_INCORRECT);
- _gnutls_debug_log("p11: Login result = %s (%lu)\n", (rv==0)?"ok":p11_kit_strerror(rv), rv);
+ _gnutls_debug_log("p11: Login result = %s (%lu)\n",
+ (rv == 0) ? "ok" : p11_kit_strerror(rv), rv);
ret = (rv == CKR_OK || rv ==
CKR_USER_ALREADY_LOGGED_IN) ? 0 : pkcs11_rv_to_err(rv);
@@ -3019,7 +3016,6 @@ int pkcs11_call_token_func(struct p11_kit_uri *info, const unsigned retry)
return ret;
}
-
static int
find_privkeys(struct pkcs11_session_info *sinfo,
struct ck_token_info *tinfo, struct find_pkey_list_st *list)
@@ -3081,8 +3077,7 @@ find_privkeys(struct pkcs11_session_info *sinfo,
current = 0;
while (pkcs11_find_objects
(sinfo->module, sinfo->pks, &ctx, 1, &count) == CKR_OK
- && count == 1
- && current < list->key_ids_size) {
+ && count == 1 && current < list->key_ids_size) {
a[0].type = CKA_ID;
a[0].value = certid_tmp;
@@ -3092,9 +3087,10 @@ find_privkeys(struct pkcs11_session_info *sinfo,
if (pkcs11_get_attribute_value
(sinfo->module, sinfo->pks, ctx, a, 1) == CKR_OK) {
- ret = _gnutls_buffer_append_data(&list->key_ids[current],
- a[0].value,
- a[0].value_len);
+ ret =
+ _gnutls_buffer_append_data(&list->key_ids[current],
+ a[0].value,
+ a[0].value_len);
if (ret < 0)
return gnutls_assert_val(ret);
current++;
@@ -3113,14 +3109,16 @@ find_privkeys(struct pkcs11_session_info *sinfo,
#define OBJECTS_A_TIME 8*1024
static int
-find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
- struct ck_token_info *tinfo, struct ck_info *lib_info, void *input)
+find_multi_objs_cb(struct ck_function_list *module,
+ struct pkcs11_session_info *sinfo,
+ struct ck_token_info *tinfo, struct ck_info *lib_info,
+ void *input)
{
struct find_multi_obj_st *find_data = input;
struct ck_attribute a[16];
struct ck_attribute *attr;
- ck_object_class_t class = (ck_object_class_t) -1;
- ck_certificate_type_t type = (ck_certificate_type_t) -1;
+ ck_object_class_t class = (ck_object_class_t) - 1;
+ ck_certificate_type_t type = (ck_certificate_type_t) - 1;
ck_bool_t trusted;
unsigned long category;
ck_rv_t rv;
@@ -3163,8 +3161,7 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
/* Find objects with given class and type */
attr = p11_kit_uri_get_attribute(find_data->info, CKA_CLASS);
if (attr) {
- if (attr->value
- && attr->value_len == sizeof(ck_object_class_t))
+ if (attr->value && attr->value_len == sizeof(ck_object_class_t))
class = *((ck_object_class_t *) attr->value);
if (class == CKO_CERTIFICATE)
type = CKC_X_509;
@@ -3184,7 +3181,8 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
a[tot_values].value = &type;
a[tot_values].value_len = sizeof type;
tot_values++;
- _gnutls_assert_log("p11 attrs: CKA_CLASS (CERT), CKA_CERTIFICATE_TYPE\n");
+ _gnutls_assert_log
+ ("p11 attrs: CKA_CLASS (CERT), CKA_CERTIFICATE_TYPE\n");
}
if (find_data->flags & GNUTLS_PKCS11_OBJ_FLAG_PUBKEY) {
@@ -3219,7 +3217,7 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
}
if (find_data->flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED) {
- if (!sinfo->trusted) { /* only p11-kit trust modules support this */
+ if (!sinfo->trusted) { /* only p11-kit trust modules support this */
gnutls_assert();
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
@@ -3241,7 +3239,7 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
_gnutls_assert_log("p11 attrs: CKA_CERTIFICATE_CATEGORY=CA\n");
}
- if (class_set == 0 && class != (ck_object_class_t)-1) {
+ if (class_set == 0 && class != (ck_object_class_t) - 1) {
a[tot_values].type = CKA_CLASS;
a[tot_values].value = &class;
a[tot_values].value_len = sizeof class;
@@ -3268,8 +3266,7 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
_gnutls_assert_log("p11 attrs: CKA_LABEL\n");
}
- rv = pkcs11_find_objects_init(sinfo->module, sinfo->pks, a,
- tot_values);
+ rv = pkcs11_find_objects_init(sinfo->module, sinfo->pks, a, tot_values);
if (rv != CKR_OK) {
gnutls_assert();
_gnutls_debug_log("p11: FindObjectsInit failed.\n");
@@ -3285,8 +3282,8 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
start_elem = find_data->current;
while (pkcs11_find_objects
- (sinfo->module, sinfo->pks, ctx, OBJECTS_A_TIME, &count) == CKR_OK
- && count > 0) {
+ (sinfo->module, sinfo->pks, ctx, OBJECTS_A_TIME,
+ &count) == CKR_OK && count > 0) {
unsigned j;
gnutls_datum_t id;
@@ -3296,21 +3293,22 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
}
find_data->p_list =
- _gnutls_reallocarray_fast(find_data->p_list,
- find_data->current + count,
- sizeof(find_data->p_list[0]));
+ _gnutls_reallocarray_fast(find_data->p_list,
+ find_data->current + count,
+ sizeof(find_data->p_list[0]));
if (find_data->p_list == NULL) {
ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto fail;
}
- for (j=0;j<count;j++) {
+ for (j = 0; j < count; j++) {
a[0].type = CKA_ID;
a[0].value = certid_tmp;
a[0].value_len = sizeof certid_tmp;
if (pkcs11_get_attribute_value
- (sinfo->module, sinfo->pks, ctx[j], a, 1) == CKR_OK) {
+ (sinfo->module, sinfo->pks, ctx[j], a,
+ 1) == CKR_OK) {
id.data = a[0].value;
id.size = a[0].value_len;
} else {
@@ -3324,19 +3322,20 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
a[0].value_len = sizeof class;
rv = pkcs11_get_attribute_value(sinfo->module,
- sinfo->pks, ctx[j], a, 1);
+ sinfo->pks,
+ ctx[j], a, 1);
if (rv != CKR_OK) {
class = -1;
}
}
- if (find_data->flags & GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY) {
+ if (find_data->flags &
+ GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY) {
for (i = 0; i < plist.key_ids_size; i++) {
if (plist.key_ids[i].length !=
id.size
|| memcmp(plist.key_ids[i].data,
- id.data,
- id.size) != 0) {
+ id.data, id.size) != 0) {
/* not found */
continue;
}
@@ -3352,8 +3351,9 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
}
ret = pkcs11_import_object(ctx[j], class, sinfo,
- tinfo, lib_info,
- find_data->p_list[find_data->current]);
+ tinfo, lib_info,
+ find_data->
+ p_list[find_data->current]);
if (ret < 0) {
gnutls_assert();
/* skip the failed object */
@@ -3369,12 +3369,20 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
/* we can have only a search state going on, so we can only overwrite extensions
* after we have read everything. */
if (find_data->overwrite_exts) {
- for (i=start_elem;i<find_data->current;i++) {
+ for (i = start_elem; i < find_data->current; i++) {
if (find_data->p_list[i]->raw.size > 0) {
gnutls_datum_t spki;
- rv = pkcs11_get_attribute_avalue(sinfo->module, sinfo->pks, ctx[i], CKA_PUBLIC_KEY_INFO, &spki);
+ rv = pkcs11_get_attribute_avalue(sinfo->module,
+ sinfo->pks,
+ ctx[i],
+ CKA_PUBLIC_KEY_INFO,
+ &spki);
if (rv == CKR_OK) {
- ret = pkcs11_override_cert_exts(sinfo, &spki, &find_data->p_list[i]->raw);
+ ret =
+ pkcs11_override_cert_exts(sinfo,
+ &spki,
+ &find_data->p_list
+ [i]->raw);
gnutls_free(spki.data);
if (ret < 0) {
gnutls_assert();
@@ -3388,7 +3396,7 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE; /* continue until all tokens have been checked */
- fail:
+ fail:
gnutls_free(ctx);
pkcs11_find_objects_final(sinfo);
if (plist.key_ids != NULL) {
@@ -3444,9 +3452,8 @@ find_multi_objs_cb(struct ck_function_list *module, struct pkcs11_session_info *
**/
int
gnutls_pkcs11_obj_list_import_url3(gnutls_pkcs11_obj_t * p_list,
- unsigned int *n_list,
- const char *url,
- unsigned int flags)
+ unsigned int *n_list,
+ const char *url, unsigned int flags)
{
gnutls_pkcs11_obj_t *list1 = NULL;
unsigned int n_list1, i;
@@ -3458,7 +3465,7 @@ gnutls_pkcs11_obj_list_import_url3(gnutls_pkcs11_obj_t * p_list,
if (n_list1 > *n_list) {
*n_list = n_list1;
- for (i=0;i<n_list1;i++) {
+ for (i = 0; i < n_list1; i++) {
gnutls_pkcs11_obj_deinit(list1[i]);
}
gnutls_free(list1);
@@ -3467,7 +3474,7 @@ gnutls_pkcs11_obj_list_import_url3(gnutls_pkcs11_obj_t * p_list,
*n_list = n_list1;
if (p_list && list1)
- memcpy(p_list, list1, n_list1*sizeof(p_list[0]));
+ memcpy(p_list, list1, n_list1 * sizeof(p_list[0]));
gnutls_free(list1);
return 0;
@@ -3505,8 +3512,7 @@ gnutls_pkcs11_obj_list_import_url3(gnutls_pkcs11_obj_t * p_list,
int
gnutls_pkcs11_obj_list_import_url4(gnutls_pkcs11_obj_t ** p_list,
unsigned int *n_list,
- const char *url,
- unsigned int flags)
+ const char *url, unsigned int flags)
{
int ret;
struct find_multi_obj_st priv;
@@ -3591,7 +3597,7 @@ gnutls_x509_crt_import_pkcs11(gnutls_x509_crt_t crt,
-*/
int
_gnutls_x509_crt_import_pkcs11_url(gnutls_x509_crt_t crt,
- const char *url, unsigned int flags)
+ const char *url, unsigned int flags)
{
gnutls_pkcs11_obj_t pcrt;
int ret;
@@ -3606,7 +3612,10 @@ _gnutls_x509_crt_import_pkcs11_url(gnutls_x509_crt_t crt,
gnutls_pkcs11_obj_set_pin_function(pcrt, crt->pin.cb,
crt->pin.data);
- ret = gnutls_pkcs11_obj_import_url(pcrt, url, flags|GNUTLS_PKCS11_OBJ_FLAG_EXPECT_CERT);
+ ret =
+ gnutls_pkcs11_obj_import_url(pcrt, url,
+ flags |
+ GNUTLS_PKCS11_OBJ_FLAG_EXPECT_CERT);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -3617,7 +3626,6 @@ _gnutls_x509_crt_import_pkcs11_url(gnutls_x509_crt_t crt,
gnutls_assert();
goto cleanup;
}
-
ret = 0;
cleanup:
@@ -3666,7 +3674,7 @@ gnutls_x509_crt_list_import_pkcs11(gnutls_x509_crt_t * certs,
return 0;
- cleanup:
+ cleanup:
for (j = 0; j < i; j++) {
gnutls_x509_crt_deinit(certs[j]);
}
@@ -3675,8 +3683,9 @@ gnutls_x509_crt_list_import_pkcs11(gnutls_x509_crt_t * certs,
}
static int
-find_flags_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
- struct ck_token_info *tinfo, struct ck_info *lib_info, void *input)
+find_flags_cb(struct ck_function_list *module,
+ struct pkcs11_session_info *sinfo, struct ck_token_info *tinfo,
+ struct ck_info *lib_info, void *input)
{
struct find_flags_data_st *find_data = input;
@@ -3953,9 +3962,8 @@ const char *gnutls_pkcs11_type_get_name(gnutls_pkcs11_obj_type_t type)
static
int check_found_cert(struct find_cert_st *priv,
ck_object_handle_t ctx,
- gnutls_datum_t *data,
- time_t now,
- ck_object_handle_t *cand_ctx)
+ gnutls_datum_t * data,
+ time_t now, ck_object_handle_t * cand_ctx)
{
gnutls_x509_crt_t tcrt = NULL;
unsigned has_ski;
@@ -3982,7 +3990,8 @@ int check_found_cert(struct find_cert_st *priv,
if (gnutls_x509_crt_equals(priv->crt, tcrt) == 0) {
/* doesn't match */
- _gnutls_debug_log("check_found_cert: cert doesn't match the expected\n");
+ _gnutls_debug_log
+ ("check_found_cert: cert doesn't match the expected\n");
ret = -1;
goto cleanup;
}
@@ -3997,7 +4006,8 @@ int check_found_cert(struct find_cert_st *priv,
if (_gnutls_check_if_same_key(priv->crt, tcrt, 1) == 0) {
/* doesn't match */
- _gnutls_debug_log("check_found_cert: cert key doesn't match the expected key\n");
+ _gnutls_debug_log
+ ("check_found_cert: cert key doesn't match the expected key\n");
ret = -1;
goto cleanup;
}
@@ -4007,7 +4017,8 @@ int check_found_cert(struct find_cert_st *priv,
!_gnutls_check_valid_key_id(&priv->key_id, tcrt, now, &has_ski)) {
gnutls_assert();
if (has_ski) {
- _gnutls_debug_log("check_found_cert: cert has invalid key ID\n");
+ _gnutls_debug_log
+ ("check_found_cert: cert has invalid key ID\n");
ret = -1;
} else {
/* That's a possible match; there can be CA certificates without
@@ -4018,23 +4029,24 @@ int check_found_cert(struct find_cert_st *priv,
}
ret = 0;
-cleanup:
+ cleanup:
if (tcrt != NULL)
gnutls_x509_crt_deinit(tcrt);
return ret;
}
static int get_data_and_attrs(struct pkcs11_session_info *sinfo,
- ck_object_handle_t object, gnutls_datum_t *data,
+ ck_object_handle_t object, gnutls_datum_t * data,
char *label, size_t label_size,
- uint8_t *id, size_t id_size,
- gnutls_datum_t *o_label, gnutls_datum_t *o_id)
+ uint8_t * id, size_t id_size,
+ gnutls_datum_t * o_label, gnutls_datum_t * o_id)
{
ck_rv_t rv;
struct ck_attribute a[2];
/* data will contain the certificate */
- rv = pkcs11_get_attribute_avalue(sinfo->module, sinfo->pks, object, CKA_VALUE, data);
+ rv = pkcs11_get_attribute_avalue(sinfo->module, sinfo->pks, object,
+ CKA_VALUE, data);
if (rv == CKR_OK) {
a[0].type = CKA_LABEL;
a[0].value = label;
@@ -4044,8 +4056,8 @@ static int get_data_and_attrs(struct pkcs11_session_info *sinfo,
a[1].value = id;
a[1].value_len = id_size;
- if (pkcs11_get_attribute_value(sinfo->module, sinfo->pks, object, a,
- 2) == CKR_OK) {
+ if (pkcs11_get_attribute_value
+ (sinfo->module, sinfo->pks, object, a, 2) == CKR_OK) {
o_label->data = a[0].value;
o_label->size = a[0].value_len;
o_id->data = a[1].value;
@@ -4055,7 +4067,7 @@ static int get_data_and_attrs(struct pkcs11_session_info *sinfo,
} else {
_gnutls_free_datum(data);
_gnutls_debug_log
- ("p11: Skipped cert, missing attrs.\n");
+ ("p11: Skipped cert, missing attrs.\n");
}
}
@@ -4064,7 +4076,7 @@ static int get_data_and_attrs(struct pkcs11_session_info *sinfo,
static int
find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
- struct ck_token_info *tinfo, struct ck_info *lib_info, void *input)
+ struct ck_token_info *tinfo, struct ck_info *lib_info, void *input)
{
struct ck_attribute a[10];
ck_object_class_t class = -1;
@@ -4076,12 +4088,12 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
struct find_cert_st *priv = input;
char label_tmp[PKCS11_LABEL_SIZE];
uint8_t id_tmp[PKCS11_ID_SIZE];
- gnutls_datum_t data = {NULL, 0};
+ gnutls_datum_t data = { NULL, 0 };
unsigned finalized;
int i, tries;
ck_bool_t trusted = 1;
time_t now;
- gnutls_datum_t label = {NULL,0}, id = {NULL,0};
+ gnutls_datum_t label = { NULL, 0 }, id = { NULL, 0 };
if (tinfo == NULL) {
gnutls_assert();
@@ -4096,8 +4108,8 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
}
}
- if (priv->dn.size == 0 && priv->key_id.size == 0 && priv->issuer_dn.size == 0 &&
- priv->serial.size == 0)
+ if (priv->dn.size == 0 && priv->key_id.size == 0
+ && priv->issuer_dn.size == 0 && priv->serial.size == 0)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
/* Find objects with given class and type */
@@ -4125,8 +4137,10 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
}
if (priv->flags & GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED) {
- if (!sinfo->trusted) /* only p11-kit "trusted" modules support this flag */
- return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ if (!sinfo->trusted) /* only p11-kit "trusted" modules support this flag */
+ return
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
a[a_vals].type = CKA_X_DISTRUSTED;
a[a_vals].value = &trusted;
@@ -4178,8 +4192,7 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
a_vals);
if (rv != CKR_OK) {
gnutls_assert();
- _gnutls_debug_log
- ("p11: FindObjectsInit failed.\n");
+ _gnutls_debug_log("p11: FindObjectsInit failed.\n");
ret = pkcs11_rv_to_err(rv);
goto cleanup;
}
@@ -4188,8 +4201,10 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
(sinfo->module, sinfo->pks, &ctx, 1,
&count) == CKR_OK && count == 1) {
- if (priv->need_import == 0 && !(priv->flags & GNUTLS_PKCS11_OBJ_FLAG_COMPARE)
- && !(priv->flags & GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY)) {
+ if (priv->need_import == 0
+ && !(priv->flags & GNUTLS_PKCS11_OBJ_FLAG_COMPARE)
+ && !(priv->flags &
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY)) {
found = 1;
break;
}
@@ -4197,12 +4212,12 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
ret = get_data_and_attrs(sinfo, ctx, &data,
label_tmp, sizeof(label_tmp),
id_tmp, sizeof(id_tmp),
- &label,
- &id);
+ &label, &id);
if (ret < 0)
continue;
- ret = check_found_cert(priv, ctx, &data, now, &cand_ctx);
+ ret =
+ check_found_cert(priv, ctx, &data, now, &cand_ctx);
if (ret < 0) {
_gnutls_free_datum(&data);
continue;
@@ -4218,8 +4233,7 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
ret = get_data_and_attrs(sinfo, cand_ctx, &data,
label_tmp, sizeof(label_tmp),
id_tmp, sizeof(id_tmp),
- &label,
- &id);
+ &label, &id);
if (ret >= 0)
found = 1;
@@ -4232,12 +4246,22 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
finalized = 1;
if (found != 0) {
- if (!(priv->flags & GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED) &&
- (priv->flags & GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT) && data.size > 0) {
+ if (!
+ (priv->flags &
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED)
+&& (priv->flags & GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT)
+&& data.size > 0) {
gnutls_datum_t spki;
- rv = pkcs11_get_attribute_avalue(sinfo->module, sinfo->pks, ctx, CKA_PUBLIC_KEY_INFO, &spki);
+ rv = pkcs11_get_attribute_avalue(sinfo->module,
+ sinfo->pks,
+ ctx,
+ CKA_PUBLIC_KEY_INFO,
+ &spki);
if (rv == CKR_OK) {
- ret = pkcs11_override_cert_exts(sinfo, &spki, &data);
+ ret =
+ pkcs11_override_cert_exts(sinfo,
+ &spki,
+ &data);
gnutls_free(spki.data);
if (ret < 0) {
gnutls_assert();
@@ -4250,8 +4274,7 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
ret =
pkcs11_obj_import(class, priv->obj,
&data, &id, &label,
- tinfo,
- lib_info);
+ tinfo, lib_info);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -4268,7 +4291,7 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
ret = 0;
}
- cleanup:
+ cleanup:
gnutls_free(data.data);
if (finalized == 0)
pkcs11_find_objects_final(sinfo);
@@ -4296,8 +4319,7 @@ find_cert_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
**/
int gnutls_pkcs11_get_raw_issuer(const char *url, gnutls_x509_crt_t cert,
gnutls_datum_t * issuer,
- gnutls_x509_crt_fmt_t fmt,
- unsigned int flags)
+ gnutls_x509_crt_fmt_t fmt, unsigned int flags)
{
int ret;
struct find_cert_st priv;
@@ -4320,8 +4342,7 @@ int gnutls_pkcs11_get_raw_issuer(const char *url, gnutls_x509_crt_t cert,
}
id_size = sizeof(id);
- ret =
- gnutls_x509_crt_get_authority_key_id(cert, id, &id_size, NULL);
+ ret = gnutls_x509_crt_get_authority_key_id(cert, id, &id_size, NULL);
if (ret >= 0) {
priv.key_id.data = id;
priv.key_id.size = id_size;
@@ -4341,7 +4362,8 @@ int gnutls_pkcs11_get_raw_issuer(const char *url, gnutls_x509_crt_t cert,
goto cleanup;
}
- gnutls_pkcs11_obj_set_pin_function(priv.obj, cert->pin.cb, cert->pin.data);
+ gnutls_pkcs11_obj_set_pin_function(priv.obj, cert->pin.cb,
+ cert->pin.data);
priv.need_import = 1;
@@ -4354,7 +4376,8 @@ int gnutls_pkcs11_get_raw_issuer(const char *url, gnutls_x509_crt_t cert,
priv.flags |= GNUTLS_PKCS11_OBJ_FLAG_FIRST_CLOSE_MATCH;
ret =
_pkcs11_traverse_tokens(find_cert_cb, &priv, info,
- &cert->pin, pkcs11_obj_flags_to_int(flags));
+ &cert->pin,
+ pkcs11_obj_flags_to_int(flags));
}
if (ret < 0) {
@@ -4370,7 +4393,7 @@ int gnutls_pkcs11_get_raw_issuer(const char *url, gnutls_x509_crt_t cert,
ret = 0;
- cleanup:
+ cleanup:
if (priv.obj)
gnutls_pkcs11_obj_deinit(priv.obj);
if (info)
@@ -4400,10 +4423,11 @@ int gnutls_pkcs11_get_raw_issuer(const char *url, gnutls_x509_crt_t cert,
*
* Since: 3.4.0
**/
-int gnutls_pkcs11_get_raw_issuer_by_dn (const char *url, const gnutls_datum_t *dn,
- gnutls_datum_t *issuer,
- gnutls_x509_crt_fmt_t fmt,
- unsigned int flags)
+int gnutls_pkcs11_get_raw_issuer_by_dn(const char *url,
+ const gnutls_datum_t * dn,
+ gnutls_datum_t * issuer,
+ gnutls_x509_crt_fmt_t fmt,
+ unsigned int flags)
{
int ret;
struct find_cert_st priv;
@@ -4454,7 +4478,7 @@ int gnutls_pkcs11_get_raw_issuer_by_dn (const char *url, const gnutls_datum_t *d
ret = 0;
- cleanup:
+ cleanup:
if (priv.obj)
gnutls_pkcs11_obj_deinit(priv.obj);
if (info)
@@ -4485,12 +4509,12 @@ int gnutls_pkcs11_get_raw_issuer_by_dn (const char *url, const gnutls_datum_t *d
*
* Since: 3.4.2
**/
-int gnutls_pkcs11_get_raw_issuer_by_subject_key_id (const char *url,
- const gnutls_datum_t *dn,
- const gnutls_datum_t *spki,
- gnutls_datum_t *issuer,
- gnutls_x509_crt_fmt_t fmt,
- unsigned int flags)
+int gnutls_pkcs11_get_raw_issuer_by_subject_key_id(const char *url,
+ const gnutls_datum_t * dn,
+ const gnutls_datum_t * spki,
+ gnutls_datum_t * issuer,
+ gnutls_x509_crt_fmt_t fmt,
+ unsigned int flags)
{
int ret;
struct find_cert_st priv;
@@ -4546,7 +4570,7 @@ int gnutls_pkcs11_get_raw_issuer_by_subject_key_id (const char *url,
ret = 0;
- cleanup:
+ cleanup:
if (priv.obj)
gnutls_pkcs11_obj_deinit(priv.obj);
if (info)
@@ -4558,7 +4582,7 @@ int gnutls_pkcs11_get_raw_issuer_by_subject_key_id (const char *url,
unsigned
_gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
unsigned int flags,
- gnutls_x509_crt_t *trusted_cert)
+ gnutls_x509_crt_t * trusted_cert)
{
int ret;
struct find_cert_st priv;
@@ -4591,8 +4615,7 @@ _gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
/* Attempt searching using the issuer DN + serial number */
serial_size = sizeof(serial);
- ret =
- gnutls_x509_crt_get_serial(cert, serial, &serial_size);
+ ret = gnutls_x509_crt_get_serial(cert, serial, &serial_size);
if (ret < 0) {
gnutls_assert();
ret = 0;
@@ -4612,7 +4635,8 @@ _gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
priv.issuer_dn.size = cert->raw_issuer_dn.size;
/* assume PKCS11_OBJ_FLAG_COMPARE everywhere but DISTRUST info */
- if (!(flags & GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED) && !(flags & GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY)) {
+ if (!(flags & GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED)
+ && !(flags & GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY)) {
flags |= GNUTLS_PKCS11_OBJ_FLAG_COMPARE;
}
@@ -4622,7 +4646,8 @@ _gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
_pkcs11_traverse_tokens(find_cert_cb, &priv, info,
NULL, pkcs11_obj_flags_to_int(flags));
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
- _gnutls_debug_log("crt_is_known: did not find cert, using issuer DN + serial, using DN only\n");
+ _gnutls_debug_log
+ ("crt_is_known: did not find cert, using issuer DN + serial, using DN only\n");
/* attempt searching with the subject DN only */
gnutls_assert();
if (priv.obj)
@@ -4644,7 +4669,8 @@ _gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
priv.dn.size = cert->raw_dn.size;
ret =
_pkcs11_traverse_tokens(find_cert_cb, &priv, info,
- NULL, pkcs11_obj_flags_to_int(flags));
+ NULL,
+ pkcs11_obj_flags_to_int(flags));
}
if (ret < 0) {
gnutls_assert();
@@ -4670,7 +4696,7 @@ _gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
}
ret = 1;
- cleanup:
+ cleanup:
if (priv.obj)
gnutls_pkcs11_obj_deinit(priv.obj);
if (info)
@@ -4705,7 +4731,7 @@ _gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
* Since: 3.3.0
**/
unsigned gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
- unsigned int flags)
+ unsigned int flags)
{
return _gnutls_pkcs11_crt_is_known(url, cert, flags, NULL);
}
@@ -4724,8 +4750,7 @@ unsigned gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
*
* Since: 3.3.7
**/
-int
-gnutls_pkcs11_obj_get_flags(gnutls_pkcs11_obj_t obj, unsigned int *oflags)
+int gnutls_pkcs11_obj_get_flags(gnutls_pkcs11_obj_t obj, unsigned int *oflags)
{
*oflags = obj->flags;
@@ -4758,7 +4783,8 @@ char *gnutls_pkcs11_obj_flags_get_str(unsigned int flags)
_gnutls_buffer_append_str(&str, "CKA_WRAP/UNWRAP; ");
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_CA)
- _gnutls_buffer_append_str(&str, "CKA_CERTIFICATE_CATEGORY=CA; ");
+ _gnutls_buffer_append_str(&str,
+ "CKA_CERTIFICATE_CATEGORY=CA; ");
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE)
_gnutls_buffer_append_str(&str, "CKA_PRIVATE; ");
@@ -4787,8 +4813,8 @@ char *gnutls_pkcs11_obj_flags_get_str(unsigned int flags)
goto fail;
}
- return (char*)out.data;
-fail:
+ return (char *)out.data;
+ fail:
return NULL;
}
diff --git a/lib/pkcs11_int.c b/lib/pkcs11_int.c
index c4e867ae76..76136a5d42 100644
--- a/lib/pkcs11_int.c
+++ b/lib/pkcs11_int.c
@@ -37,7 +37,7 @@
#include <p11-kit/pin.h>
ck_rv_t
-pkcs11_get_slot_list(struct ck_function_list * module,
+pkcs11_get_slot_list(struct ck_function_list *module,
unsigned char token_present, ck_slot_id_t * slot_list,
unsigned long *count)
{
@@ -45,72 +45,68 @@ pkcs11_get_slot_list(struct ck_function_list * module,
}
ck_rv_t
-pkcs11_get_module_info(struct ck_function_list * module,
- struct ck_info * info)
+pkcs11_get_module_info(struct ck_function_list *module, struct ck_info *info)
{
return (module)->C_GetInfo(info);
}
ck_rv_t
-pkcs11_get_slot_info(struct ck_function_list * module,
- ck_slot_id_t slot_id, struct ck_slot_info * info)
+pkcs11_get_slot_info(struct ck_function_list *module,
+ ck_slot_id_t slot_id, struct ck_slot_info *info)
{
return (module)->C_GetSlotInfo(slot_id, info);
}
ck_rv_t
-pkcs11_get_token_info(struct ck_function_list * module,
- ck_slot_id_t slot_id, struct ck_token_info * info)
+pkcs11_get_token_info(struct ck_function_list *module,
+ ck_slot_id_t slot_id, struct ck_token_info *info)
{
return (module)->C_GetTokenInfo(slot_id, info);
}
ck_rv_t
-pkcs11_find_objects_init(struct ck_function_list * module,
+pkcs11_find_objects_init(struct ck_function_list *module,
ck_session_handle_t sess,
- struct ck_attribute * templ, unsigned long count)
+ struct ck_attribute *templ, unsigned long count)
{
return (module)->C_FindObjectsInit(sess, templ, count);
}
ck_rv_t
-pkcs11_find_objects(struct ck_function_list * module,
+pkcs11_find_objects(struct ck_function_list *module,
ck_session_handle_t sess,
ck_object_handle_t * objects,
- unsigned long max_object_count,
- unsigned long *object_count)
+ unsigned long max_object_count, unsigned long *object_count)
{
return (module)->C_FindObjects(sess, objects, max_object_count,
object_count);
}
-ck_rv_t pkcs11_find_objects_final(struct pkcs11_session_info * sinfo)
+ck_rv_t pkcs11_find_objects_final(struct pkcs11_session_info *sinfo)
{
return (sinfo->module)->C_FindObjectsFinal(sinfo->pks);
}
-ck_rv_t pkcs11_close_session(struct pkcs11_session_info * sinfo)
+ck_rv_t pkcs11_close_session(struct pkcs11_session_info *sinfo)
{
sinfo->init = 0;
return (sinfo->module)->C_CloseSession(sinfo->pks);
}
ck_rv_t
-pkcs11_set_attribute_value(struct ck_function_list * module,
+pkcs11_set_attribute_value(struct ck_function_list *module,
ck_session_handle_t sess,
ck_object_handle_t object,
- struct ck_attribute * templ,
- unsigned long count)
+ struct ck_attribute *templ, unsigned long count)
{
return (module)->C_SetAttributeValue(sess, object, templ, count);
}
ck_rv_t
-pkcs11_get_attribute_value(struct ck_function_list * module,
+pkcs11_get_attribute_value(struct ck_function_list *module,
ck_session_handle_t sess,
ck_object_handle_t object,
- struct ck_attribute * templ,
- unsigned long count)
+ struct ck_attribute *templ, unsigned long count)
{
return (module)->C_GetAttributeValue(sess, object, templ, count);
}
@@ -119,11 +115,10 @@ pkcs11_get_attribute_value(struct ck_function_list * module,
* Only the type needs to be set.
*/
ck_rv_t
-pkcs11_get_attribute_avalue(struct ck_function_list * module,
- ck_session_handle_t sess,
- ck_object_handle_t object,
- ck_attribute_type_t type,
- gnutls_datum_t *res)
+pkcs11_get_attribute_avalue(struct ck_function_list *module,
+ ck_session_handle_t sess,
+ ck_object_handle_t object,
+ ck_attribute_type_t type, gnutls_datum_t * res)
{
ck_rv_t rv;
struct ck_attribute templ;
@@ -163,13 +158,12 @@ pkcs11_get_attribute_avalue(struct ck_function_list * module,
}
ck_rv_t
-pkcs11_get_mechanism_list(struct ck_function_list * module,
+pkcs11_get_mechanism_list(struct ck_function_list *module,
ck_slot_id_t slot_id,
ck_mechanism_type_t * mechanism_list,
unsigned long *count)
{
- return (module)->C_GetMechanismList(slot_id, mechanism_list,
- count);
+ return (module)->C_GetMechanismList(slot_id, mechanism_list, count);
}
ck_rv_t
@@ -178,47 +172,44 @@ pkcs11_get_mechanism_info(struct ck_function_list *module,
ck_mechanism_type_t mechanism,
struct ck_mechanism_info *ptr)
{
- return (module)->C_GetMechanismInfo(slot_id, mechanism,
- ptr);
+ return (module)->C_GetMechanismInfo(slot_id, mechanism, ptr);
}
ck_rv_t
-pkcs11_sign_init(struct ck_function_list * module,
+pkcs11_sign_init(struct ck_function_list *module,
ck_session_handle_t sess,
- struct ck_mechanism * mechanism, ck_object_handle_t key)
+ struct ck_mechanism *mechanism, ck_object_handle_t key)
{
return (module)->C_SignInit(sess, mechanism, key);
}
ck_rv_t
-pkcs11_sign(struct ck_function_list * module,
+pkcs11_sign(struct ck_function_list *module,
ck_session_handle_t sess,
unsigned char *data,
unsigned long data_len,
unsigned char *signature, unsigned long *signature_len)
{
- return (module)->C_Sign(sess, data, data_len, signature,
- signature_len);
+ return (module)->C_Sign(sess, data, data_len, signature, signature_len);
}
ck_rv_t
-pkcs11_generate_key(struct ck_function_list * module,
+pkcs11_generate_key(struct ck_function_list *module,
ck_session_handle_t sess,
- struct ck_mechanism * mechanism,
- struct ck_attribute * templ,
- unsigned long count,
- ck_object_handle_t * key)
+ struct ck_mechanism *mechanism,
+ struct ck_attribute *templ,
+ unsigned long count, ck_object_handle_t * key)
{
return (module)->C_GenerateKey(sess, mechanism, templ, count, key);
}
ck_rv_t
-pkcs11_generate_key_pair(struct ck_function_list * module,
+pkcs11_generate_key_pair(struct ck_function_list *module,
ck_session_handle_t sess,
- struct ck_mechanism * mechanism,
- struct ck_attribute * pub_templ,
+ struct ck_mechanism *mechanism,
+ struct ck_attribute *pub_templ,
unsigned long pub_templ_count,
- struct ck_attribute * priv_templ,
+ struct ck_attribute *priv_templ,
unsigned long priv_templ_count,
ck_object_handle_t * pub_ctx,
ck_object_handle_t * priv_ctx)
@@ -229,16 +220,15 @@ pkcs11_generate_key_pair(struct ck_function_list * module,
}
ck_rv_t
-pkcs11_decrypt_init(struct ck_function_list * module,
+pkcs11_decrypt_init(struct ck_function_list *module,
ck_session_handle_t sess,
- struct ck_mechanism * mechanism,
- ck_object_handle_t key_ctx)
+ struct ck_mechanism *mechanism, ck_object_handle_t key_ctx)
{
return (module)->C_DecryptInit(sess, mechanism, key_ctx);
}
ck_rv_t
-pkcs11_decrypt(struct ck_function_list * module,
+pkcs11_decrypt(struct ck_function_list *module,
ck_session_handle_t sess,
unsigned char *encrypted_data,
unsigned long encrypted_data_len,
@@ -249,23 +239,23 @@ pkcs11_decrypt(struct ck_function_list * module,
}
ck_rv_t
-pkcs11_create_object(struct ck_function_list * module,
+pkcs11_create_object(struct ck_function_list *module,
ck_session_handle_t sess,
- struct ck_attribute * templ,
+ struct ck_attribute *templ,
unsigned long count, ck_object_handle_t * ctx)
{
return (module)->C_CreateObject(sess, templ, count, ctx);
}
ck_rv_t
-pkcs11_destroy_object(struct ck_function_list * module,
+pkcs11_destroy_object(struct ck_function_list *module,
ck_session_handle_t sess, ck_object_handle_t ctx)
{
return (module)->C_DestroyObject(sess, ctx);
}
ck_rv_t
-pkcs11_init_token(struct ck_function_list * module,
+pkcs11_init_token(struct ck_function_list *module,
ck_slot_id_t slot_id, unsigned char *pin,
unsigned long pin_len, unsigned char *label)
{
@@ -273,7 +263,7 @@ pkcs11_init_token(struct ck_function_list * module,
}
ck_rv_t
-pkcs11_init_pin(struct ck_function_list * module,
+pkcs11_init_pin(struct ck_function_list *module,
ck_session_handle_t sess,
unsigned char *pin, unsigned long pin_len)
{
@@ -281,7 +271,7 @@ pkcs11_init_pin(struct ck_function_list * module,
}
ck_rv_t
-pkcs11_set_pin(struct ck_function_list * module,
+pkcs11_set_pin(struct ck_function_list *module,
ck_session_handle_t sess,
const char *old_pin,
unsigned long old_len,
@@ -292,8 +282,8 @@ pkcs11_set_pin(struct ck_function_list * module,
}
ck_rv_t
-_gnutls_pkcs11_get_random(struct ck_function_list * module,
- ck_session_handle_t sess, void *data, size_t len)
+_gnutls_pkcs11_get_random(struct ck_function_list *module,
+ ck_session_handle_t sess, void *data, size_t len)
{
return (module)->C_GenerateRandom(sess, data, len);
}
diff --git a/lib/pkcs11_int.h b/lib/pkcs11_int.h
index 86cce0dee5..b93a6591f8 100644
--- a/lib/pkcs11_int.h
+++ b/lib/pkcs11_int.h
@@ -19,26 +19,26 @@
*/
#ifndef GNUTLS_LIB_PKCS11_INT_H
-#define GNUTLS_LIB_PKCS11_INT_H
+# define GNUTLS_LIB_PKCS11_INT_H
-#ifdef ENABLE_PKCS11
+# ifdef ENABLE_PKCS11
-#define CRYPTOKI_GNU
-#include <p11-kit/pkcs11.h>
-#include <gnutls/pkcs11.h>
-#include <x509/x509_int.h>
+# define CRYPTOKI_GNU
+# include <p11-kit/pkcs11.h>
+# include <gnutls/pkcs11.h>
+# include <x509/x509_int.h>
/* Part of PKCS#11 3.0 interface, which was added in p11-kit 0.23.14 */
-#ifdef CKM_EDDSA
-#define HAVE_CKM_EDDSA
-#endif
+# ifdef CKM_EDDSA
+# define HAVE_CKM_EDDSA
+# endif
-#define PKCS11_ID_SIZE 128
-#define PKCS11_LABEL_SIZE 128
+# define PKCS11_ID_SIZE 128
+# define PKCS11_LABEL_SIZE 128
-#include <p11-kit/p11-kit.h>
-#include <p11-kit/pin.h>
-#include <p11-kit/uri.h>
+# include <p11-kit/p11-kit.h>
+# include <p11-kit/pin.h>
+# include <p11-kit/uri.h>
typedef unsigned char ck_bool_t;
struct pkcs11_session_info {
@@ -48,7 +48,7 @@ struct pkcs11_session_info {
ck_session_handle_t pks;
ck_slot_id_t sid;
unsigned int init;
- unsigned int trusted; /* whether module is marked as trusted */
+ unsigned int trusted; /* whether module is marked as trusted */
};
struct gnutls_pkcs11_obj_st {
@@ -70,7 +70,7 @@ struct gnutls_pkcs11_obj_st {
struct gnutls_pkcs11_privkey_st {
gnutls_pk_algorithm_t pk_algorithm;
- unsigned int rsa_pss_ok; /* if it is an RSA key, it can do RSA-PSS */
+ unsigned int rsa_pss_ok; /* if it is an RSA key, it can do RSA-PSS */
unsigned int bits;
unsigned int flags;
@@ -79,9 +79,9 @@ struct gnutls_pkcs11_privkey_st {
struct pkcs11_session_info sinfo;
ck_object_handle_t ref; /* the key in the session */
- unsigned reauth; /* whether we need to login on each operation */
+ unsigned reauth; /* whether we need to login on each operation */
- void *mutex; /* lock for operations requiring co-ordination */
+ void *mutex; /* lock for operations requiring co-ordination */
struct pin_info_st pin;
};
@@ -102,9 +102,10 @@ typedef enum init_level_t {
/* See _gnutls_pkcs11_check_init() for possible Transitions.
*/
-int _gnutls_pkcs11_check_init(init_level_t req_level, void *priv, pkcs11_reinit_function cb);
+int _gnutls_pkcs11_check_init(init_level_t req_level, void *priv,
+ pkcs11_reinit_function cb);
-#define FIX_KEY_USAGE(pk, usage) \
+# define FIX_KEY_USAGE(pk, usage) \
if (usage == 0) { \
if (pk == GNUTLS_PK_RSA) \
usage = GNUTLS_KEY_DECIPHER_ONLY|GNUTLS_KEY_DIGITAL_SIGNATURE; \
@@ -112,51 +113,52 @@ int _gnutls_pkcs11_check_init(init_level_t req_level, void *priv, pkcs11_reinit_
usage = GNUTLS_KEY_DIGITAL_SIGNATURE; \
}
-#define PKCS11_CHECK_INIT \
+# define PKCS11_CHECK_INIT \
ret = _gnutls_pkcs11_check_init(PROV_INIT_ALL, NULL, NULL); \
if (ret < 0) \
return gnutls_assert_val(ret)
-#define PKCS11_CHECK_INIT_RET(x) \
+# define PKCS11_CHECK_INIT_RET(x) \
ret = _gnutls_pkcs11_check_init(PROV_INIT_ALL, NULL, NULL); \
if (ret < 0) \
return gnutls_assert_val(x)
-#define PKCS11_CHECK_INIT_FLAGS(f) \
+# define PKCS11_CHECK_INIT_FLAGS(f) \
ret = _gnutls_pkcs11_check_init((f & GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE)?PROV_INIT_TRUSTED:PROV_INIT_ALL, NULL, NULL); \
if (ret < 0) \
return gnutls_assert_val(ret)
-#define PKCS11_CHECK_INIT_FLAGS_RET(f, x) \
+# define PKCS11_CHECK_INIT_FLAGS_RET(f, x) \
ret = _gnutls_pkcs11_check_init((f & GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE)?PROV_INIT_TRUSTED:PROV_INIT_ALL, NULL, NULL); \
if (ret < 0) \
return gnutls_assert_val(x)
-
/* thus function is called for every token in the traverse_tokens
* function. Once everything is traversed it is called with NULL tinfo.
* It should return 0 if found what it was looking for.
*/
-typedef int (*find_func_t) (struct ck_function_list *, struct pkcs11_session_info *,
- struct ck_token_info * tinfo, struct ck_info *,
- void *input);
+typedef int (*find_func_t)(struct ck_function_list *,
+ struct pkcs11_session_info *,
+ struct ck_token_info * tinfo, struct ck_info *,
+ void *input);
int pkcs11_rv_to_err(ck_rv_t rv);
-int pkcs11_url_to_info(const char *url, struct p11_kit_uri **info, unsigned flags);
-int
-pkcs11_find_slot(struct ck_function_list **module, ck_slot_id_t * slot,
- struct p11_kit_uri *info, struct ck_token_info *_tinfo,
- struct ck_slot_info *_slot_info, unsigned int *trusted);
+int pkcs11_url_to_info(const char *url, struct p11_kit_uri **info,
+ unsigned flags);
+int pkcs11_find_slot(struct ck_function_list **module, ck_slot_id_t * slot,
+ struct p11_kit_uri *info, struct ck_token_info *_tinfo,
+ struct ck_slot_info *_slot_info, unsigned int *trusted);
int pkcs11_read_pubkey(struct ck_function_list *module,
ck_session_handle_t pks, ck_object_handle_t obj,
ck_key_type_t key_type, gnutls_pkcs11_obj_t pobj);
-int pkcs11_override_cert_exts(struct pkcs11_session_info *sinfo, gnutls_datum_t *spki, gnutls_datum_t *der);
+int pkcs11_override_cert_exts(struct pkcs11_session_info *sinfo,
+ gnutls_datum_t * spki, gnutls_datum_t * der);
int pkcs11_get_info(struct p11_kit_uri *info,
gnutls_pkcs11_obj_info_t itype, void *output,
- size_t * output_size);
+ size_t *output_size);
int pkcs11_login(struct pkcs11_session_info *sinfo,
struct pin_info_st *pin_info,
struct p11_kit_uri *info, unsigned flags);
@@ -172,32 +174,32 @@ int pkcs11_info_to_url(struct p11_kit_uri *info,
int
_gnutls_x509_crt_import_pkcs11_url(gnutls_x509_crt_t crt,
- const char *url, unsigned int flags);
+ const char *url, unsigned int flags);
-#define SESSION_WRITE (1<<0)
-#define SESSION_LOGIN (1<<1)
-#define SESSION_SO (1<<2) /* security officer session */
-#define SESSION_TRUSTED (1<<3) /* session on a marked as trusted (p11-kit) module */
-#define SESSION_FORCE_LOGIN (1<<4) /* force login even when CFK_LOGIN_REQUIRED is not set */
-#define SESSION_CONTEXT_SPECIFIC (1<<5)
-#define SESSION_NO_CLOSE (1<<6) /* don't close session on success */
+# define SESSION_WRITE (1<<0)
+# define SESSION_LOGIN (1<<1)
+# define SESSION_SO (1<<2) /* security officer session */
+# define SESSION_TRUSTED (1<<3)/* session on a marked as trusted (p11-kit) module */
+# define SESSION_FORCE_LOGIN (1<<4) /* force login even when CFK_LOGIN_REQUIRED is not set */
+# define SESSION_CONTEXT_SPECIFIC (1<<5)
+# define SESSION_NO_CLOSE (1<<6)
+ /* don't close session on success */
int pkcs11_open_session(struct pkcs11_session_info *sinfo,
struct pin_info_st *pin_info,
struct p11_kit_uri *info, unsigned int flags);
int _pkcs11_traverse_tokens(find_func_t find_func, void *input,
struct p11_kit_uri *info,
- struct pin_info_st *pin_info,
- unsigned int flags);
+ struct pin_info_st *pin_info, unsigned int flags);
ck_object_class_t pkcs11_strtype_to_class(const char *type);
/* Additional internal flags for gnutls_pkcs11_obj_flags */
/* @GNUTLS_PKCS11_OBJ_FLAG_EXPECT_CERT: When importing an object, provide a hint on the type, to allow incomplete URLs
* @GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PRIVKEY: Hint for private key */
-#define GNUTLS_PKCS11_OBJ_FLAG_FIRST_CLOSE_MATCH ((unsigned int)1<<28)
-#define GNUTLS_PKCS11_OBJ_FLAG_EXPECT_CERT (1<<29)
-#define GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PRIVKEY (1<<30)
-#define GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PUBKEY ((unsigned int)1<<31)
+# define GNUTLS_PKCS11_OBJ_FLAG_FIRST_CLOSE_MATCH ((unsigned int)1<<28)
+# define GNUTLS_PKCS11_OBJ_FLAG_EXPECT_CERT (1<<29)
+# define GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PRIVKEY (1<<30)
+# define GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PUBKEY ((unsigned int)1<<31)
int pkcs11_token_matches_info(struct p11_kit_uri *info,
struct ck_token_info *tinfo,
@@ -207,10 +209,10 @@ unsigned int pkcs11_obj_flags_to_int(unsigned int flags);
int
_gnutls_pkcs11_privkey_sign(gnutls_pkcs11_privkey_t key,
- const gnutls_sign_entry_st *se,
+ const gnutls_sign_entry_st * se,
const gnutls_datum_t * hash,
gnutls_datum_t * signature,
- gnutls_x509_spki_st *spki_params);
+ gnutls_x509_spki_st * spki_params);
int
_gnutls_pkcs11_privkey_decrypt_data(gnutls_pkcs11_privkey_t key,
@@ -222,11 +224,12 @@ int
_gnutls_pkcs11_privkey_decrypt_data2(gnutls_pkcs11_privkey_t key,
unsigned int flags,
const gnutls_datum_t * ciphertext,
- unsigned char * plaintext,
- size_t plaintext_size);
+ unsigned char *plaintext,
+ size_t plaintext_size);
int
-_pkcs11_privkey_get_pubkey (gnutls_pkcs11_privkey_t pkey, gnutls_pubkey_t *pub, unsigned flags);
+_pkcs11_privkey_get_pubkey(gnutls_pkcs11_privkey_t pkey, gnutls_pubkey_t * pub,
+ unsigned flags);
static inline int pk_to_mech(gnutls_pk_algorithm_t pk)
{
@@ -238,10 +241,10 @@ static inline int pk_to_mech(gnutls_pk_algorithm_t pk)
return CKM_RSA_PKCS;
else if (pk == GNUTLS_PK_RSA_PSS)
return CKM_RSA_PKCS_PSS;
-#ifdef HAVE_CKM_EDDSA
- else if (pk == GNUTLS_PK_EDDSA_ED25519)
- return CKM_EDDSA;
-#endif
+# ifdef HAVE_CKM_EDDSA
+ else if (pk == GNUTLS_PK_EDDSA_ED25519)
+ return CKM_EDDSA;
+# endif
else
return -1;
}
@@ -254,10 +257,10 @@ static inline int pk_to_key_type(gnutls_pk_algorithm_t pk)
return CKK_ECDSA;
else if (pk == GNUTLS_PK_RSA_PSS || pk == GNUTLS_PK_RSA)
return CKK_RSA;
-#ifdef HAVE_CKM_EDDSA
- else if (pk == GNUTLS_PK_EDDSA_ED25519)
- return CKK_EC_EDWARDS;
-#endif
+# ifdef HAVE_CKM_EDDSA
+ else if (pk == GNUTLS_PK_EDDSA_ED25519)
+ return CKK_EC_EDWARDS;
+# endif
else
return -1;
}
@@ -270,15 +273,15 @@ static inline gnutls_pk_algorithm_t key_type_to_pk(ck_key_type_t m)
return GNUTLS_PK_DSA;
else if (m == CKK_ECDSA)
return GNUTLS_PK_EC;
-#ifdef HAVE_CKM_EDDSA
- else if (m == CKK_EC_EDWARDS)
- return GNUTLS_PK_EDDSA_ED25519;
-#endif
+# ifdef HAVE_CKM_EDDSA
+ else if (m == CKK_EC_EDWARDS)
+ return GNUTLS_PK_EDDSA_ED25519;
+# endif
else
return GNUTLS_PK_UNKNOWN;
}
-static inline int pk_to_genmech(gnutls_pk_algorithm_t pk, ck_key_type_t *type)
+static inline int pk_to_genmech(gnutls_pk_algorithm_t pk, ck_key_type_t * type)
{
if (pk == GNUTLS_PK_DSA) {
*type = CKK_DSA;
@@ -289,11 +292,11 @@ static inline int pk_to_genmech(gnutls_pk_algorithm_t pk, ck_key_type_t *type)
} else if (pk == GNUTLS_PK_RSA_PSS || pk == GNUTLS_PK_RSA) {
*type = CKK_RSA;
return CKM_RSA_PKCS_KEY_PAIR_GEN;
-#ifdef HAVE_CKM_EDDSA
- } else if (pk == GNUTLS_PK_EDDSA_ED25519) {
- *type = CKK_EC_EDWARDS;
- return CKM_EDDSA;
-#endif
+# ifdef HAVE_CKM_EDDSA
+ } else if (pk == GNUTLS_PK_EDDSA_ED25519) {
+ *type = CKK_EC_EDWARDS;
+ return CKM_EDDSA;
+# endif
} else {
*type = -1;
return -1;
@@ -308,23 +311,21 @@ pkcs11_retrieve_pin(struct pin_info_st *pin_info, struct p11_kit_uri *info,
ck_object_class_t pkcs11_type_to_class(gnutls_pkcs11_obj_type_t type);
ck_rv_t
-pkcs11_generate_key(struct ck_function_list * module,
+pkcs11_generate_key(struct ck_function_list *module,
ck_session_handle_t sess,
- struct ck_mechanism * mechanism,
- struct ck_attribute * templ,
- unsigned long count,
- ck_object_handle_t * key);
+ struct ck_mechanism *mechanism,
+ struct ck_attribute *templ,
+ unsigned long count, ck_object_handle_t * key);
ck_rv_t
-pkcs11_generate_key_pair(struct ck_function_list * module,
+pkcs11_generate_key_pair(struct ck_function_list *module,
ck_session_handle_t sess,
- struct ck_mechanism * mechanism,
- struct ck_attribute * pub_templ,
+ struct ck_mechanism *mechanism,
+ struct ck_attribute *pub_templ,
unsigned long pub_templ_count,
- struct ck_attribute * priv_templ,
+ struct ck_attribute *priv_templ,
unsigned long priv_templ_count,
- ck_object_handle_t * pub,
- ck_object_handle_t * priv);
+ ck_object_handle_t * pub, ck_object_handle_t * priv);
ck_rv_t
pkcs11_get_slot_list(struct ck_function_list *module,
@@ -332,8 +333,7 @@ pkcs11_get_slot_list(struct ck_function_list *module,
ck_slot_id_t * slot_list, unsigned long *count);
ck_rv_t
-pkcs11_get_module_info(struct ck_function_list *module,
- struct ck_info *info);
+pkcs11_get_module_info(struct ck_function_list *module, struct ck_info *info);
ck_rv_t
pkcs11_get_slot_info(struct ck_function_list *module,
@@ -360,25 +360,22 @@ ck_rv_t pkcs11_find_objects_final(struct pkcs11_session_info *);
ck_rv_t pkcs11_close_session(struct pkcs11_session_info *);
ck_rv_t
-pkcs11_set_attribute_value(struct ck_function_list * module,
+pkcs11_set_attribute_value(struct ck_function_list *module,
ck_session_handle_t sess,
ck_object_handle_t object,
- struct ck_attribute * templ,
- unsigned long count);
+ struct ck_attribute *templ, unsigned long count);
ck_rv_t
pkcs11_get_attribute_value(struct ck_function_list *module,
ck_session_handle_t sess,
ck_object_handle_t object,
- struct ck_attribute *templ,
- unsigned long count);
+ struct ck_attribute *templ, unsigned long count);
ck_rv_t
-pkcs11_get_attribute_avalue(struct ck_function_list * module,
- ck_session_handle_t sess,
- ck_object_handle_t object,
- ck_attribute_type_t type,
- gnutls_datum_t *res);
+pkcs11_get_attribute_avalue(struct ck_function_list *module,
+ ck_session_handle_t sess,
+ ck_object_handle_t object,
+ ck_attribute_type_t type, gnutls_datum_t * res);
ck_rv_t
pkcs11_get_mechanism_list(struct ck_function_list *module,
@@ -407,8 +404,7 @@ pkcs11_sign(struct ck_function_list *module,
ck_rv_t
pkcs11_decrypt_init(struct ck_function_list *module,
ck_session_handle_t sess,
- struct ck_mechanism *mechanism,
- ck_object_handle_t key);
+ struct ck_mechanism *mechanism, ck_object_handle_t key);
ck_rv_t
pkcs11_decrypt(struct ck_function_list *module,
@@ -446,8 +442,7 @@ pkcs11_set_pin(struct ck_function_list *module,
ck_rv_t
_gnutls_pkcs11_get_random(struct ck_function_list *module,
- ck_session_handle_t sess, void *data, size_t len);
-
+ ck_session_handle_t sess, void *data, size_t len);
const char *pkcs11_strerror(ck_rv_t rv);
@@ -463,8 +458,8 @@ inline static bool is_pkcs11_url_object(const char *url)
unsigned
_gnutls_pkcs11_crt_is_known(const char *url, gnutls_x509_crt_t cert,
unsigned int flags,
- gnutls_x509_crt_t *trusted_cert);
+ gnutls_x509_crt_t * trusted_cert);
-#endif /* ENABLE_PKCS11 */
+# endif /* ENABLE_PKCS11 */
-#endif /* GNUTLS_LIB_PKCS11_INT_H */
+#endif /* GNUTLS_LIB_PKCS11_INT_H */
diff --git a/lib/pkcs11_privkey.c b/lib/pkcs11_privkey.c
index 513d68ee8f..330b6d3897 100644
--- a/lib/pkcs11_privkey.c
+++ b/lib/pkcs11_privkey.c
@@ -59,7 +59,6 @@
break; \
} while (1);
-
/**
* gnutls_pkcs11_privkey_init:
* @key: A pointer to the type to be initialized
@@ -178,7 +177,7 @@ gnutls_pkcs11_privkey_get_pk_algorithm(gnutls_pkcs11_privkey_t key,
int
gnutls_pkcs11_privkey_get_info(gnutls_pkcs11_privkey_t pkey,
gnutls_pkcs11_obj_info_t itype,
- void *output, size_t * output_size)
+ void *output, size_t *output_size)
{
return pkcs11_get_info(pkey->uinfo, itype, output, output_size);
}
@@ -196,9 +195,7 @@ find_object(struct pkcs11_session_info *sinfo,
unsigned long count;
ck_rv_t rv;
- ret =
- pkcs11_open_session(sinfo, pin_info, info,
- flags & SESSION_LOGIN);
+ ret = pkcs11_open_session(sinfo, pin_info, info, flags & SESSION_LOGIN);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -223,7 +220,7 @@ find_object(struct pkcs11_session_info *sinfo,
ret = GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
pkcs11_find_objects_final(sinfo);
- fail:
+ fail:
pkcs11_close_session(sinfo);
return ret;
@@ -233,7 +230,7 @@ find_object(struct pkcs11_session_info *sinfo,
* It is run, only when a fork has been detected, and data have
* been re-initialized. In that case we reset the session and re-open
* the object. */
-static int reopen_privkey_session(void * _privkey)
+static int reopen_privkey_session(void *_privkey)
{
int ret;
gnutls_pkcs11_privkey_t privkey = _privkey;
@@ -255,11 +252,10 @@ static int reopen_privkey_session(void * _privkey)
struct hash_mappings_st {
gnutls_digest_algorithm_t id;
- unsigned long phash; /* pkcs11 hash ID */
+ unsigned long phash; /* pkcs11 hash ID */
unsigned long mgf_id;
};
-
#ifndef CKG_MGF1_SHA224
# define CKG_MGF1_SHA224 0x00000005UL
# define CKG_MGF1_SHA256 0x00000002UL
@@ -274,30 +270,26 @@ struct ck_rsa_pkcs_pss_params {
};
#endif
-static const struct hash_mappings_st hash_mappings[] =
-{
+static const struct hash_mappings_st hash_mappings[] = {
{.id = GNUTLS_DIG_SHA224,
.phash = CKM_SHA224,
- .mgf_id = CKG_MGF1_SHA224
- },
+ .mgf_id = CKG_MGF1_SHA224},
{.id = GNUTLS_DIG_SHA256,
.phash = CKM_SHA256,
- .mgf_id = CKG_MGF1_SHA256
- },
+ .mgf_id = CKG_MGF1_SHA256},
{.id = GNUTLS_DIG_SHA384,
.phash = CKM_SHA384,
- .mgf_id = CKG_MGF1_SHA384
- },
+ .mgf_id = CKG_MGF1_SHA384},
{.id = GNUTLS_DIG_SHA512,
.phash = CKM_SHA512,
- .mgf_id = CKG_MGF1_SHA512
- }
+ .mgf_id = CKG_MGF1_SHA512}
};
-static const struct hash_mappings_st *hash_to_map(gnutls_digest_algorithm_t hash)
+static const struct hash_mappings_st *hash_to_map(gnutls_digest_algorithm_t
+ hash)
{
unsigned i;
- for (i=0;i<sizeof(hash_mappings)/sizeof(hash_mappings[0]);i++) {
+ for (i = 0; i < sizeof(hash_mappings) / sizeof(hash_mappings[0]); i++) {
if (hash == hash_mappings[i].id)
return &hash_mappings[i];
}
@@ -320,10 +312,10 @@ static const struct hash_mappings_st *hash_to_map(gnutls_digest_algorithm_t hash
-*/
int
_gnutls_pkcs11_privkey_sign(gnutls_pkcs11_privkey_t key,
- const gnutls_sign_entry_st *se,
+ const gnutls_sign_entry_st * se,
const gnutls_datum_t * hash,
gnutls_datum_t * signature,
- gnutls_x509_spki_st *spki_params)
+ gnutls_x509_spki_st * spki_params)
{
ck_rv_t rv;
int ret;
@@ -332,7 +324,7 @@ _gnutls_pkcs11_privkey_sign(gnutls_pkcs11_privkey_t key,
unsigned long siglen;
struct pkcs11_session_info *sinfo;
unsigned req_login = 0;
- unsigned login_flags = SESSION_LOGIN|SESSION_CONTEXT_SPECIFIC;
+ unsigned login_flags = SESSION_LOGIN | SESSION_CONTEXT_SPECIFIC;
struct ck_rsa_pkcs_pss_params rsa_pss_params;
PKCS11_CHECK_INIT_PRIVKEY(key);
@@ -346,7 +338,9 @@ _gnutls_pkcs11_privkey_sign(gnutls_pkcs11_privkey_t key,
return gnutls_assert_val(GNUTLS_E_UNKNOWN_PK_ALGORITHM);
if (unlikely(!key->rsa_pss_ok))
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
rsa_pss_params.hash_alg = map->phash;
rsa_pss_params.mgf = map->mgf_id;
@@ -372,7 +366,9 @@ _gnutls_pkcs11_privkey_sign(gnutls_pkcs11_privkey_t key,
/* Initialize signing operation; using the private key discovered
* earlier. */
- REPEAT_ON_INVALID_HANDLE(rv = pkcs11_sign_init(sinfo->module, sinfo->pks, &mech, key->ref));
+ REPEAT_ON_INVALID_HANDLE(rv =
+ pkcs11_sign_init(sinfo->module, sinfo->pks,
+ &mech, key->ref));
if (rv != CKR_OK) {
_gnutls_debug_log("p11: %s\n", pkcs11_strerror(rv));
gnutls_assert();
@@ -383,13 +379,14 @@ _gnutls_pkcs11_privkey_sign(gnutls_pkcs11_privkey_t key,
retry_login:
if (key->reauth || req_login) {
if (req_login)
- login_flags = SESSION_FORCE_LOGIN|SESSION_LOGIN;
+ login_flags = SESSION_FORCE_LOGIN | SESSION_LOGIN;
ret =
pkcs11_login(&key->sinfo, &key->pin,
key->uinfo, login_flags);
if (ret < 0) {
gnutls_assert();
- _gnutls_debug_log("PKCS #11 login failed, trying operation anyway\n");
+ _gnutls_debug_log
+ ("PKCS #11 login failed, trying operation anyway\n");
/* let's try the operation anyway */
}
}
@@ -419,7 +416,6 @@ _gnutls_pkcs11_privkey_sign(gnutls_pkcs11_privkey_t key,
goto cleanup;
}
-
if (key->pk_algorithm == GNUTLS_PK_ECDSA
|| key->pk_algorithm == GNUTLS_PK_DSA) {
unsigned int hlen = siglen / 2;
@@ -451,7 +447,7 @@ _gnutls_pkcs11_privkey_sign(gnutls_pkcs11_privkey_t key,
ret = 0;
- cleanup:
+ cleanup:
gnutls_mutex_unlock(&key->mutex);
if (sinfo != &key->sinfo)
pkcs11_close_session(sinfo);
@@ -481,14 +477,17 @@ unsigned gnutls_pkcs11_privkey_status(gnutls_pkcs11_privkey_t key)
PKCS11_CHECK_INIT_PRIVKEY(key);
- REPEAT_ON_INVALID_HANDLE(rv = (key->sinfo.module)->C_GetSessionInfo(key->sinfo.pks, &session_info));
+ REPEAT_ON_INVALID_HANDLE(rv =
+ (key->sinfo.module)->
+ C_GetSessionInfo(key->sinfo.pks,
+ &session_info));
if (rv != CKR_OK) {
ret = 0;
goto cleanup;
}
ret = 1;
- cleanup:
+ cleanup:
return ret;
}
@@ -534,7 +533,9 @@ gnutls_pkcs11_privkey_import_url(gnutls_pkcs11_privkey_t pkey,
if (pkey->url == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- ret = pkcs11_url_to_info(pkey->url, &pkey->uinfo, flags|GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PRIVKEY);
+ ret =
+ pkcs11_url_to_info(pkey->url, &pkey->uinfo,
+ flags | GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PRIVKEY);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -566,20 +567,19 @@ gnutls_pkcs11_privkey_import_url(gnutls_pkcs11_privkey_t pkey,
a[0].type = CKA_KEY_TYPE;
a[0].value = &key_type;
a[0].value_len = sizeof(key_type);
- if (pkcs11_get_attribute_value(pkey->sinfo.module, pkey->sinfo.pks, pkey->ref, a, 1)
+ if (pkcs11_get_attribute_value
+ (pkey->sinfo.module, pkey->sinfo.pks, pkey->ref, a, 1)
== CKR_OK) {
pkey->pk_algorithm = key_type_to_pk(key_type);
}
if (pkey->pk_algorithm == GNUTLS_PK_UNKNOWN) {
- _gnutls_debug_log
- ("Cannot determine PKCS #11 key algorithm\n");
+ _gnutls_debug_log("Cannot determine PKCS #11 key algorithm\n");
ret = GNUTLS_E_UNKNOWN_ALGORITHM;
goto cleanup;
}
-
- if (pkey->pk_algorithm == GNUTLS_PK_RSA) { /* determine whether it can do rsa-pss */
+ if (pkey->pk_algorithm == GNUTLS_PK_RSA) { /* determine whether it can do rsa-pss */
tval = 0;
a[0].type = CKA_MODULUS;
a[0].value = NULL;
@@ -587,16 +587,21 @@ gnutls_pkcs11_privkey_import_url(gnutls_pkcs11_privkey_t pkey,
a[1].type = CKA_SIGN;
a[1].value = &tval;
a[1].value_len = sizeof(tval);
- if (pkcs11_get_attribute_value(pkey->sinfo.module, pkey->sinfo.pks, pkey->ref, a, 2)
+ if (pkcs11_get_attribute_value
+ (pkey->sinfo.module, pkey->sinfo.pks, pkey->ref, a, 2)
== CKR_OK) {
- pkey->bits = a[0].value_len*8;
+ pkey->bits = a[0].value_len * 8;
}
- ret = gnutls_pkcs11_token_check_mechanism(url, CKM_RSA_PKCS_PSS, NULL, 0, 0);
+ ret =
+ gnutls_pkcs11_token_check_mechanism(url, CKM_RSA_PKCS_PSS,
+ NULL, 0, 0);
if (ret != 0 && tval) {
pkey->rsa_pss_ok = 1;
} else {
- _gnutls_debug_log("Detected incompatible with TLS1.3 RSA key! (%s)\n", url);
+ _gnutls_debug_log
+ ("Detected incompatible with TLS1.3 RSA key! (%s)\n",
+ url);
}
}
@@ -604,7 +609,8 @@ gnutls_pkcs11_privkey_import_url(gnutls_pkcs11_privkey_t pkey,
a[0].value = &reauth;
a[0].value_len = sizeof(reauth);
- if (pkcs11_get_attribute_value(pkey->sinfo.module, pkey->sinfo.pks, pkey->ref, a, 1)
+ if (pkcs11_get_attribute_value
+ (pkey->sinfo.module, pkey->sinfo.pks, pkey->ref, a, 1)
== CKR_OK) {
pkey->reauth = reauth;
}
@@ -613,7 +619,7 @@ gnutls_pkcs11_privkey_import_url(gnutls_pkcs11_privkey_t pkey,
return ret;
- cleanup:
+ cleanup:
if (pkey->uinfo != NULL) {
p11_kit_uri_free(pkey->uinfo);
pkey->uinfo = NULL;
@@ -647,7 +653,7 @@ _gnutls_pkcs11_privkey_decrypt_data(gnutls_pkcs11_privkey_t key,
struct ck_mechanism mech;
unsigned long siglen;
unsigned req_login = 0;
- unsigned login_flags = SESSION_LOGIN|SESSION_CONTEXT_SPECIFIC;
+ unsigned login_flags = SESSION_LOGIN | SESSION_CONTEXT_SPECIFIC;
PKCS11_CHECK_INIT_PRIVKEY(key);
@@ -664,7 +670,10 @@ _gnutls_pkcs11_privkey_decrypt_data(gnutls_pkcs11_privkey_t key,
/* Initialize signing operation; using the private key discovered
* earlier. */
- REPEAT_ON_INVALID_HANDLE(rv = pkcs11_decrypt_init(key->sinfo.module, key->sinfo.pks, &mech, key->ref));
+ REPEAT_ON_INVALID_HANDLE(rv =
+ pkcs11_decrypt_init(key->sinfo.module,
+ key->sinfo.pks, &mech,
+ key->ref));
if (rv != CKR_OK) {
gnutls_assert();
ret = pkcs11_rv_to_err(rv);
@@ -674,13 +683,14 @@ _gnutls_pkcs11_privkey_decrypt_data(gnutls_pkcs11_privkey_t key,
retry_login:
if (key->reauth || req_login) {
if (req_login)
- login_flags = SESSION_FORCE_LOGIN|SESSION_LOGIN;
+ login_flags = SESSION_FORCE_LOGIN | SESSION_LOGIN;
ret =
pkcs11_login(&key->sinfo, &key->pin,
key->uinfo, login_flags);
if (ret < 0) {
gnutls_assert();
- _gnutls_debug_log("PKCS #11 login failed, trying operation anyway\n");
+ _gnutls_debug_log
+ ("PKCS #11 login failed, trying operation anyway\n");
/* let's try the operation anyway */
}
}
@@ -715,7 +725,7 @@ _gnutls_pkcs11_privkey_decrypt_data(gnutls_pkcs11_privkey_t key,
ret = 0;
- cleanup:
+ cleanup:
gnutls_mutex_unlock(&key->mutex);
return ret;
}
@@ -744,7 +754,7 @@ int
_gnutls_pkcs11_privkey_decrypt_data2(gnutls_pkcs11_privkey_t key,
unsigned int flags,
const gnutls_datum_t * ciphertext,
- unsigned char * plaintext,
+ unsigned char *plaintext,
size_t plaintext_size)
{
ck_rv_t rv;
@@ -752,7 +762,7 @@ _gnutls_pkcs11_privkey_decrypt_data2(gnutls_pkcs11_privkey_t key,
struct ck_mechanism mech;
unsigned long siglen = ciphertext->size;
unsigned req_login = 0;
- unsigned login_flags = SESSION_LOGIN|SESSION_CONTEXT_SPECIFIC;
+ unsigned login_flags = SESSION_LOGIN | SESSION_CONTEXT_SPECIFIC;
unsigned char *buffer;
volatile unsigned char value;
unsigned char mask;
@@ -778,10 +788,11 @@ _gnutls_pkcs11_privkey_decrypt_data2(gnutls_pkcs11_privkey_t key,
/* Initialize signing operation; using the private key discovered
* earlier. */
- REPEAT_ON_INVALID_HANDLE(
- rv = pkcs11_decrypt_init(key->sinfo.module, key->sinfo.pks,
- &mech, key->ref)
- );
+ REPEAT_ON_INVALID_HANDLE(rv =
+ pkcs11_decrypt_init(key->sinfo.module,
+ key->sinfo.pks, &mech,
+ key->ref)
+ );
if (rv != CKR_OK) {
gnutls_assert();
ret = pkcs11_rv_to_err(rv);
@@ -791,13 +802,14 @@ _gnutls_pkcs11_privkey_decrypt_data2(gnutls_pkcs11_privkey_t key,
retry_login:
if (key->reauth || req_login) {
if (req_login)
- login_flags = SESSION_FORCE_LOGIN|SESSION_LOGIN;
+ login_flags = SESSION_FORCE_LOGIN | SESSION_LOGIN;
ret =
pkcs11_login(&key->sinfo, &key->pin,
key->uinfo, login_flags);
if (ret < 0) {
gnutls_assert();
- _gnutls_debug_log("PKCS #11 login failed, trying operation anyway\n");
+ _gnutls_debug_log
+ ("PKCS #11 login failed, trying operation anyway\n");
/* let's try the operation anyway */
}
}
@@ -823,13 +835,13 @@ _gnutls_pkcs11_privkey_decrypt_data2(gnutls_pkcs11_privkey_t key,
/* conditionally copy buffer in a side-channel silent way */
/* on success mask is 0xFF, on failure it is 0 */
- mask = ((uint32_t)ret >> 31) - 1U;
+ mask = ((uint32_t) ret >> 31) - 1U;
for (size_t i = 0; i < plaintext_size; i++) {
value = (buffer[i] & mask) + (plaintext[i] & ~mask);
plaintext[i] = value;
}
- cleanup:
+ cleanup:
gnutls_mutex_unlock(&key->mutex);
gnutls_free(buffer);
return ret;
@@ -848,8 +860,7 @@ _gnutls_pkcs11_privkey_decrypt_data2(gnutls_pkcs11_privkey_t key,
**/
int
gnutls_pkcs11_privkey_export_url(gnutls_pkcs11_privkey_t key,
- gnutls_pkcs11_url_type_t detailed,
- char **url)
+ gnutls_pkcs11_url_type_t detailed, char **url)
{
int ret;
@@ -917,14 +928,13 @@ int
gnutls_pkcs11_privkey_generate2(const char *url, gnutls_pk_algorithm_t pk,
unsigned int bits, const char *label,
gnutls_x509_crt_fmt_t fmt,
- gnutls_datum_t * pubkey,
- unsigned int flags)
+ gnutls_datum_t * pubkey, unsigned int flags)
{
int x;
}
#endif
-static const char def_rsa_pub_exp[3] = { 1,0,1 }; // 65537 = 0x10001
+static const char def_rsa_pub_exp[3] = { 1, 0, 1 }; // 65537 = 0x10001
struct dsa_params {
/* FIPS 186-3 maximal size for L and N length pair is (3072,256). */
@@ -934,9 +944,10 @@ struct dsa_params {
};
static int
-_dsa_params_generate(struct ck_function_list *module, ck_session_handle_t session,
- unsigned long bits, struct dsa_params *params,
- struct ck_attribute *a, int *a_val)
+_dsa_params_generate(struct ck_function_list *module,
+ ck_session_handle_t session, unsigned long bits,
+ struct dsa_params *params, struct ck_attribute *a,
+ int *a_val)
{
struct ck_mechanism mech = { CKM_DSA_PARAMETER_GEN };
struct ck_attribute attr = { CKA_PRIME_BITS, &bits, sizeof(bits) };
@@ -1011,11 +1022,10 @@ _dsa_params_generate(struct ck_function_list *module, ck_session_handle_t sessio
int
gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
unsigned int bits, const char *label,
- const gnutls_datum_t *cid,
+ const gnutls_datum_t * cid,
gnutls_x509_crt_fmt_t fmt,
gnutls_datum_t * pubkey,
- unsigned int key_usage,
- unsigned int flags)
+ unsigned int key_usage, unsigned int flags)
{
int ret;
const ck_bool_t tval = 1;
@@ -1030,7 +1040,7 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
struct ck_mechanism mech;
gnutls_pubkey_t pkey = NULL;
gnutls_pkcs11_obj_t obj = NULL;
- gnutls_datum_t der = {NULL, 0};
+ gnutls_datum_t der = { NULL, 0 };
ck_key_type_t key_type;
uint8_t id[20];
struct dsa_params dsa_params;
@@ -1048,8 +1058,7 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
ret =
pkcs11_open_session(&sinfo, NULL, info,
- SESSION_WRITE |
- pkcs11_obj_flags_to_int(flags));
+ SESSION_WRITE | pkcs11_obj_flags_to_int(flags));
p11_kit_uri_free(info);
if (ret < 0) {
@@ -1066,12 +1075,12 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
if (!(flags & GNUTLS_PKCS11_OBJ_FLAG_NO_STORE_PUBKEY)) {
a[a_val].type = CKA_TOKEN;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
a[a_val].type = CKA_PRIVATE;
- a[a_val].value = (void *) &fval;
+ a[a_val].value = (void *)&fval;
a[a_val].value_len = sizeof(fval);
a_val++;
}
@@ -1084,10 +1093,10 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
goto cleanup;
}
- a[a_val].value = (void *) id;
+ a[a_val].value = (void *)id;
a[a_val].value_len = sizeof(id);
} else {
- a[a_val].value = (void *) cid->data;
+ a[a_val].value = (void *)cid->data;
a[a_val].value_len = cid->size;
}
@@ -1100,32 +1109,33 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
switch (pk) {
case GNUTLS_PK_RSA:
p[p_val].type = CKA_DECRYPT;
- if (key_usage & (GNUTLS_KEY_DECIPHER_ONLY|GNUTLS_KEY_ENCIPHER_ONLY)) {
- p[p_val].value = (void *) &tval;
+ if (key_usage &
+ (GNUTLS_KEY_DECIPHER_ONLY | GNUTLS_KEY_ENCIPHER_ONLY)) {
+ p[p_val].value = (void *)&tval;
p[p_val].value_len = sizeof(tval);
} else {
- p[p_val].value = (void *) &fval;
+ p[p_val].value = (void *)&fval;
p[p_val].value_len = sizeof(fval);
}
p_val++;
p[p_val].type = CKA_SIGN;
if (key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE) {
- p[p_val].value = (void *) &tval;
+ p[p_val].value = (void *)&tval;
p[p_val].value_len = sizeof(tval);
} else {
- p[p_val].value = (void *) &fval;
+ p[p_val].value = (void *)&fval;
p[p_val].value_len = sizeof(fval);
}
p_val++;
a[a_val].type = CKA_ENCRYPT;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
a[a_val].type = CKA_VERIFY;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
@@ -1135,7 +1145,7 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
a_val++;
a[a_val].type = CKA_PUBLIC_EXPONENT;
- a[a_val].value = (char*)def_rsa_pub_exp;
+ a[a_val].value = (char *)def_rsa_pub_exp;
a[a_val].value_len = sizeof(def_rsa_pub_exp);
a_val++;
@@ -1143,16 +1153,16 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
case GNUTLS_PK_DSA:
p[p_val].type = CKA_SIGN;
if (key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE) {
- p[p_val].value = (void *) &tval;
+ p[p_val].value = (void *)&tval;
p[p_val].value_len = sizeof(tval);
} else {
- p[p_val].value = (void *) &fval;
+ p[p_val].value = (void *)&fval;
p[p_val].value_len = sizeof(fval);
}
p_val++;
a[a_val].type = CKA_VERIFY;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
@@ -1166,16 +1176,16 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
case GNUTLS_PK_ECDSA:
p[p_val].type = CKA_SIGN;
if (key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE) {
- p[p_val].value = (void *) &tval;
+ p[p_val].value = (void *)&tval;
p[p_val].value_len = sizeof(tval);
} else {
- p[p_val].value = (void *) &fval;
+ p[p_val].value = (void *)&fval;
p[p_val].value_len = sizeof(fval);
}
p_val++;
a[a_val].type = CKA_VERIFY;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
@@ -1199,16 +1209,18 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
break;
case GNUTLS_PK_EDDSA_ED25519:
p[p_val].type = CKA_SIGN;
- p[p_val].value = (void *) &tval;
+ p[p_val].value = (void *)&tval;
p[p_val].value_len = sizeof(tval);
p_val++;
a[a_val].type = CKA_VERIFY;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
- ret = _gnutls_x509_write_ecc_params(GNUTLS_ECC_CURVE_ED25519, &der);
+ ret =
+ _gnutls_x509_write_ecc_params(GNUTLS_ECC_CURVE_ED25519,
+ &der);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1229,11 +1241,11 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
*/
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_KEY_WRAP) {
p[p_val].type = CKA_UNWRAP;
- p[p_val].value = (void*)&tval;
+ p[p_val].value = (void *)&tval;
p[p_val].value_len = sizeof(tval);
p_val++;
a[a_val].type = CKA_WRAP;
- a[a_val].value = (void*)&tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
}
@@ -1243,41 +1255,41 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
*/
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE) {
p[p_val].type = CKA_PRIVATE;
- p[p_val].value = (void *) &fval;
+ p[p_val].value = (void *)&fval;
p[p_val].value_len = sizeof(fval);
p_val++;
} else {
p[p_val].type = CKA_PRIVATE;
- p[p_val].value = (void *) &tval;
+ p[p_val].value = (void *)&tval;
p[p_val].value_len = sizeof(tval);
p_val++;
}
p[p_val].type = CKA_TOKEN;
- p[p_val].value = (void *) &tval;
+ p[p_val].value = (void *)&tval;
p[p_val].value_len = sizeof(tval);
p_val++;
if (label) {
p[p_val].type = CKA_LABEL;
- p[p_val].value = (void *) label;
+ p[p_val].value = (void *)label;
p[p_val].value_len = strlen(label);
p_val++;
a[a_val].type = CKA_LABEL;
- a[a_val].value = (void *) label;
+ a[a_val].value = (void *)label;
a[a_val].value_len = strlen(label);
a_val++;
}
if (!(flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE)) {
p[p_val].type = CKA_SENSITIVE;
- p[p_val].value = (void *) &tval;
+ p[p_val].value = (void *)&tval;
p[p_val].value_len = sizeof(tval);
p_val++;
} else {
p[p_val].type = CKA_SENSITIVE;
- p[p_val].value = (void *) &fval;
+ p[p_val].value = (void *)&fval;
p[p_val].value_len = sizeof(fval);
p_val++;
}
@@ -1329,7 +1341,7 @@ gnutls_pkcs11_privkey_generate3(const char *url, gnutls_pk_algorithm_t pk,
}
}
- cleanup:
+ cleanup:
if (obj != NULL)
gnutls_pkcs11_obj_deinit(obj);
if (pkey != NULL)
@@ -1379,7 +1391,8 @@ static int load_pubkey_obj(gnutls_pkcs11_privkey_t pkey, gnutls_pubkey_t pub)
}
int
-_pkcs11_privkey_get_pubkey (gnutls_pkcs11_privkey_t pkey, gnutls_pubkey_t *pub, unsigned flags)
+_pkcs11_privkey_get_pubkey(gnutls_pkcs11_privkey_t pkey, gnutls_pubkey_t * pub,
+ unsigned flags)
{
gnutls_pubkey_t pubkey = NULL;
gnutls_pkcs11_obj_t obj = NULL;
@@ -1420,7 +1433,9 @@ _pkcs11_privkey_get_pubkey (gnutls_pkcs11_privkey_t pkey, gnutls_pubkey_t *pub,
goto cleanup;
}
} else {
- ret = pkcs11_read_pubkey(pkey->sinfo.module, pkey->sinfo.pks, pkey->ref, key_type, obj);
+ ret =
+ pkcs11_read_pubkey(pkey->sinfo.module, pkey->sinfo.pks,
+ pkey->ref, key_type, obj);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1466,9 +1481,8 @@ _pkcs11_privkey_get_pubkey (gnutls_pkcs11_privkey_t pkey, gnutls_pubkey_t *pub,
**/
int
gnutls_pkcs11_privkey_export_pubkey(gnutls_pkcs11_privkey_t pkey,
- gnutls_x509_crt_fmt_t fmt,
- gnutls_datum_t * data,
- unsigned int flags)
+ gnutls_x509_crt_fmt_t fmt,
+ gnutls_datum_t * data, unsigned int flags)
{
int ret;
gnutls_pubkey_t pubkey = NULL;
@@ -1485,7 +1499,7 @@ gnutls_pkcs11_privkey_export_pubkey(gnutls_pkcs11_privkey_t pkey,
ret = 0;
- cleanup:
+ cleanup:
if (pubkey != NULL)
gnutls_pubkey_deinit(pubkey);
@@ -1507,8 +1521,7 @@ gnutls_pkcs11_privkey_export_pubkey(gnutls_pkcs11_privkey_t pkey,
**/
void
gnutls_pkcs11_privkey_set_pin_function(gnutls_pkcs11_privkey_t key,
- gnutls_pin_callback_t fn,
- void *userdata)
+ gnutls_pin_callback_t fn, void *userdata)
{
key->pin.cb = fn;
key->pin.data = userdata;
diff --git a/lib/pkcs11_secret.c b/lib/pkcs11_secret.c
index 95bbfae757..1b7521f39d 100644
--- a/lib/pkcs11_secret.c
+++ b/lib/pkcs11_secret.c
@@ -60,7 +60,7 @@ gnutls_pkcs11_copy_secret_key(const char *token_url, gnutls_datum_t * key,
int a_val;
uint8_t id[16];
struct pkcs11_session_info sinfo;
-
+
PKCS11_CHECK_INIT;
memset(&sinfo, 0, sizeof(sinfo));
@@ -80,8 +80,7 @@ gnutls_pkcs11_copy_secret_key(const char *token_url, gnutls_datum_t * key,
ret =
pkcs11_open_session(&sinfo, NULL, info,
- SESSION_WRITE |
- pkcs11_obj_flags_to_int(flags));
+ SESSION_WRITE | pkcs11_obj_flags_to_int(flags));
p11_kit_uri_free(info);
if (ret < 0) {
@@ -114,7 +113,7 @@ gnutls_pkcs11_copy_secret_key(const char *token_url, gnutls_datum_t * key,
if (label) {
a[a_val].type = CKA_LABEL;
- a[a_val].value = (void *) label;
+ a[a_val].value = (void *)label;
a[a_val].value_len = strlen(label);
a_val++;
}
@@ -142,7 +141,7 @@ gnutls_pkcs11_copy_secret_key(const char *token_url, gnutls_datum_t * key,
ret = 0;
- cleanup:
+ cleanup:
pkcs11_close_session(&sinfo);
return ret;
diff --git a/lib/pkcs11_write.c b/lib/pkcs11_write.c
index 3ce794b076..0ca2130af3 100644
--- a/lib/pkcs11_write.c
+++ b/lib/pkcs11_write.c
@@ -34,13 +34,14 @@ static const ck_bool_t fval = 0;
#define MAX_ASIZE 24
-static void mark_flags(unsigned flags, struct ck_attribute *a, unsigned *a_val, unsigned trusted)
+static void mark_flags(unsigned flags, struct ck_attribute *a, unsigned *a_val,
+ unsigned trusted)
{
static const unsigned long category = 2;
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_CA) {
a[*a_val].type = CKA_CERTIFICATE_CATEGORY;
- a[*a_val].value = (void *) &category;
+ a[*a_val].value = (void *)&category;
a[*a_val].value_len = sizeof(category);
(*a_val)++;
}
@@ -48,33 +49,34 @@ static void mark_flags(unsigned flags, struct ck_attribute *a, unsigned *a_val,
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED) {
if (trusted) {
a[*a_val].type = CKA_X_DISTRUSTED;
- a[*a_val].value = (void *) &tval;
+ a[*a_val].value = (void *)&tval;
a[*a_val].value_len = sizeof(tval);
(*a_val)++;
} else {
- _gnutls_debug_log("p11: ignoring the distrusted flag as it is not valid on non-p11-kit-trust modules\n");
+ _gnutls_debug_log
+ ("p11: ignoring the distrusted flag as it is not valid on non-p11-kit-trust modules\n");
}
}
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED) {
a[*a_val].type = CKA_TRUSTED;
- a[*a_val].value = (void *) &tval;
+ a[*a_val].value = (void *)&tval;
a[*a_val].value_len = sizeof(tval);
(*a_val)++;
a[*a_val].type = CKA_PRIVATE;
- a[*a_val].value = (void *) &fval;
+ a[*a_val].value = (void *)&fval;
a[*a_val].value_len = sizeof(fval);
(*a_val)++;
} else {
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE) {
a[*a_val].type = CKA_PRIVATE;
- a[*a_val].value = (void *) &tval;
+ a[*a_val].value = (void *)&tval;
a[*a_val].value_len = sizeof(tval);
(*a_val)++;
} else if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE) {
a[*a_val].type = CKA_PRIVATE;
- a[*a_val].value = (void *) &fval;
+ a[*a_val].value = (void *)&fval;
a[*a_val].value_len = sizeof(fval);
(*a_val)++;
}
@@ -101,15 +103,14 @@ static void mark_flags(unsigned flags, struct ck_attribute *a, unsigned *a_val,
**/
int
gnutls_pkcs11_copy_x509_crt2(const char *token_url,
- gnutls_x509_crt_t crt, const char *label,
- const gnutls_datum_t *cid,
- unsigned int flags)
+ gnutls_x509_crt_t crt, const char *label,
+ const gnutls_datum_t * cid, unsigned int flags)
{
int ret;
struct p11_kit_uri *info = NULL;
ck_rv_t rv;
size_t der_size, id_size, serial_size;
- gnutls_datum_t serial_der = {NULL, 0};
+ gnutls_datum_t serial_der = { NULL, 0 };
uint8_t *der = NULL;
uint8_t serial[128];
uint8_t id[20];
@@ -119,7 +120,7 @@ gnutls_pkcs11_copy_x509_crt2(const char *token_url,
ck_object_handle_t ctx;
unsigned a_val;
struct pkcs11_session_info sinfo;
-
+
PKCS11_CHECK_INIT;
ret = pkcs11_url_to_info(token_url, &info, 0);
@@ -130,8 +131,7 @@ gnutls_pkcs11_copy_x509_crt2(const char *token_url,
ret =
pkcs11_open_session(&sinfo, NULL, info,
- SESSION_WRITE |
- pkcs11_obj_flags_to_int(flags));
+ SESSION_WRITE | pkcs11_obj_flags_to_int(flags));
p11_kit_uri_free(info);
if (ret < 0) {
@@ -140,9 +140,7 @@ gnutls_pkcs11_copy_x509_crt2(const char *token_url,
}
der_size = 0;
- ret =
- gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_DER, NULL,
- &der_size);
+ ret = gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_DER, NULL, &der_size);
if (ret < 0 && ret != GNUTLS_E_SHORT_MEMORY_BUFFER) {
gnutls_assert();
goto cleanup;
@@ -155,9 +153,7 @@ gnutls_pkcs11_copy_x509_crt2(const char *token_url,
goto cleanup;
}
- ret =
- gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_DER, der,
- &der_size);
+ ret = gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_DER, der, &der_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -170,13 +166,14 @@ gnutls_pkcs11_copy_x509_crt2(const char *token_url,
a[1].type = CKA_ID;
if (cid == NULL || cid->size == 0) {
id_size = sizeof(id);
- ret = gnutls_x509_crt_get_subject_key_id(crt, id, &id_size, NULL);
+ ret =
+ gnutls_x509_crt_get_subject_key_id(crt, id, &id_size, NULL);
if (ret < 0) {
id_size = sizeof(id);
ret = gnutls_x509_crt_get_key_id(crt, 0, id, &id_size);
if (ret < 0) {
- gnutls_assert();
- goto cleanup;
+ gnutls_assert();
+ goto cleanup;
}
}
@@ -193,7 +190,7 @@ gnutls_pkcs11_copy_x509_crt2(const char *token_url,
a[2].value = der;
a[2].value_len = der_size;
a[3].type = CKA_TOKEN;
- a[3].value = (void *) &tval;
+ a[3].value = (void *)&tval;
a[3].value_len = sizeof(tval);
a[4].type = CKA_CERTIFICATE_TYPE;
a[4].value = &type;
@@ -215,10 +212,12 @@ gnutls_pkcs11_copy_x509_crt2(const char *token_url,
serial_size = sizeof(serial);
if (gnutls_x509_crt_get_serial(crt, serial, &serial_size) >= 0) {
- ret = _gnutls_x509_ext_gen_number(serial, serial_size, &serial_der);
+ ret =
+ _gnutls_x509_ext_gen_number(serial, serial_size,
+ &serial_der);
if (ret >= 0) {
a[a_val].type = CKA_SERIAL_NUMBER;
- a[a_val].value = (void *) serial_der.data;
+ a[a_val].value = (void *)serial_der.data;
a[a_val].value_len = serial_der.size;
a_val++;
}
@@ -226,7 +225,7 @@ gnutls_pkcs11_copy_x509_crt2(const char *token_url,
if (label) {
a[a_val].type = CKA_LABEL;
- a[a_val].value = (void *) label;
+ a[a_val].value = (void *)label;
a[a_val].value_len = strlen(label);
a_val++;
}
@@ -246,7 +245,7 @@ gnutls_pkcs11_copy_x509_crt2(const char *token_url,
ret = 0;
- cleanup:
+ cleanup:
gnutls_free(der);
gnutls_free(serial_der.data);
pkcs11_close_session(&sinfo);
@@ -258,23 +257,24 @@ static void clean_pubkey(struct ck_attribute *a, unsigned a_val)
{
unsigned i;
- for (i=0;i<a_val;i++) {
- switch(a[i].type) {
- case CKA_MODULUS:
- case CKA_PUBLIC_EXPONENT:
- case CKA_PRIME:
- case CKA_SUBPRIME:
- case CKA_VALUE:
- case CKA_BASE:
- case CKA_EC_PARAMS:
- case CKA_EC_POINT:
- gnutls_free(a[i].value);
- break;
+ for (i = 0; i < a_val; i++) {
+ switch (a[i].type) {
+ case CKA_MODULUS:
+ case CKA_PUBLIC_EXPONENT:
+ case CKA_PRIME:
+ case CKA_SUBPRIME:
+ case CKA_VALUE:
+ case CKA_BASE:
+ case CKA_EC_PARAMS:
+ case CKA_EC_POINT:
+ gnutls_free(a[i].value);
+ break;
}
}
}
-static int add_pubkey(gnutls_pubkey_t pubkey, struct ck_attribute *a, unsigned *a_val)
+static int add_pubkey(gnutls_pubkey_t pubkey, struct ck_attribute *a,
+ unsigned *a_val)
{
gnutls_pk_algorithm_t pk;
int ret;
@@ -283,114 +283,124 @@ static int add_pubkey(gnutls_pubkey_t pubkey, struct ck_attribute *a, unsigned *
switch (pk) {
case GNUTLS_PK_RSA_PSS:
- case GNUTLS_PK_RSA: {
- gnutls_datum_t m, e;
+ case GNUTLS_PK_RSA:{
+ gnutls_datum_t m, e;
- /* PKCS#11 defines integers as unsigned having most significant byte
- * first, e.g., 32768 = 0x80 0x00. This is interpreted literraly by
- * some HSMs which do not accept an integer with a leading zero */
- ret = gnutls_pubkey_export_rsa_raw2(pubkey, &m, &e, GNUTLS_EXPORT_FLAG_NO_LZ);
- if (ret < 0) {
- gnutls_assert();
- return ret;
- }
-
-
- a[*a_val].type = CKA_MODULUS;
- a[*a_val].value = m.data;
- a[*a_val].value_len = m.size;
- (*a_val)++;
+ /* PKCS#11 defines integers as unsigned having most significant byte
+ * first, e.g., 32768 = 0x80 0x00. This is interpreted literraly by
+ * some HSMs which do not accept an integer with a leading zero */
+ ret =
+ gnutls_pubkey_export_rsa_raw2(pubkey, &m, &e,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
+ if (ret < 0) {
+ gnutls_assert();
+ return ret;
+ }
- a[*a_val].type = CKA_PUBLIC_EXPONENT;
- a[*a_val].value = e.data;
- a[*a_val].value_len = e.size;
- (*a_val)++;
- break;
- }
- case GNUTLS_PK_DSA: {
- gnutls_datum_t p, q, g, y;
+ a[*a_val].type = CKA_MODULUS;
+ a[*a_val].value = m.data;
+ a[*a_val].value_len = m.size;
+ (*a_val)++;
- ret = gnutls_pubkey_export_dsa_raw2(pubkey, &p, &q, &g, &y, GNUTLS_EXPORT_FLAG_NO_LZ);
- if (ret < 0) {
- gnutls_assert();
- return ret;
+ a[*a_val].type = CKA_PUBLIC_EXPONENT;
+ a[*a_val].value = e.data;
+ a[*a_val].value_len = e.size;
+ (*a_val)++;
+ break;
}
+ case GNUTLS_PK_DSA:{
+ gnutls_datum_t p, q, g, y;
- a[*a_val].type = CKA_PRIME;
- a[*a_val].value = p.data;
- a[*a_val].value_len = p.size;
- (*a_val)++;
+ ret =
+ gnutls_pubkey_export_dsa_raw2(pubkey, &p, &q, &g,
+ &y,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
+ if (ret < 0) {
+ gnutls_assert();
+ return ret;
+ }
- a[*a_val].type = CKA_SUBPRIME;
- a[*a_val].value = q.data;
- a[*a_val].value_len = q.size;
- (*a_val)++;
+ a[*a_val].type = CKA_PRIME;
+ a[*a_val].value = p.data;
+ a[*a_val].value_len = p.size;
+ (*a_val)++;
- a[*a_val].type = CKA_BASE;
- a[*a_val].value = g.data;
- a[*a_val].value_len = g.size;
- (*a_val)++;
+ a[*a_val].type = CKA_SUBPRIME;
+ a[*a_val].value = q.data;
+ a[*a_val].value_len = q.size;
+ (*a_val)++;
- a[*a_val].type = CKA_VALUE;
- a[*a_val].value = y.data;
- a[*a_val].value_len = y.size;
- (*a_val)++;
- break;
- }
- case GNUTLS_PK_EC: {
- gnutls_datum_t params, point;
+ a[*a_val].type = CKA_BASE;
+ a[*a_val].value = g.data;
+ a[*a_val].value_len = g.size;
+ (*a_val)++;
- ret = gnutls_pubkey_export_ecc_x962(pubkey, &params, &point);
- if (ret < 0) {
- gnutls_assert();
- return ret;
+ a[*a_val].type = CKA_VALUE;
+ a[*a_val].value = y.data;
+ a[*a_val].value_len = y.size;
+ (*a_val)++;
+ break;
}
+ case GNUTLS_PK_EC:{
+ gnutls_datum_t params, point;
- a[*a_val].type = CKA_EC_PARAMS;
- a[*a_val].value = params.data;
- a[*a_val].value_len = params.size;
- (*a_val)++;
+ ret =
+ gnutls_pubkey_export_ecc_x962(pubkey, &params,
+ &point);
+ if (ret < 0) {
+ gnutls_assert();
+ return ret;
+ }
- a[*a_val].type = CKA_EC_POINT;
- a[*a_val].value = point.data;
- a[*a_val].value_len = point.size;
- (*a_val)++;
- break;
- }
- case GNUTLS_PK_EDDSA_ED25519: {
- gnutls_datum_t params, ecpoint;
+ a[*a_val].type = CKA_EC_PARAMS;
+ a[*a_val].value = params.data;
+ a[*a_val].value_len = params.size;
+ (*a_val)++;
- ret =
- _gnutls_x509_write_ecc_params(pubkey->params.curve,
- &params);
- if (ret < 0) {
- gnutls_assert();
- return ret;
+ a[*a_val].type = CKA_EC_POINT;
+ a[*a_val].value = point.data;
+ a[*a_val].value_len = point.size;
+ (*a_val)++;
+ break;
}
+ case GNUTLS_PK_EDDSA_ED25519:{
+ gnutls_datum_t params, ecpoint;
- a[*a_val].type = CKA_EC_PARAMS;
- a[*a_val].value = params.data;
- a[*a_val].value_len = params.size;
- (*a_val)++;
+ ret =
+ _gnutls_x509_write_ecc_params(pubkey->params.curve,
+ &params);
+ if (ret < 0) {
+ gnutls_assert();
+ return ret;
+ }
- ret = _gnutls_x509_encode_string(ASN1_ETYPE_OCTET_STRING,
- pubkey->params.raw_pub.data,
- pubkey->params.raw_pub.size,
- &ecpoint);
- if (ret < 0) {
- gnutls_assert();
- return ret;
- }
+ a[*a_val].type = CKA_EC_PARAMS;
+ a[*a_val].value = params.data;
+ a[*a_val].value_len = params.size;
+ (*a_val)++;
- a[*a_val].type = CKA_EC_POINT;
- a[*a_val].value = ecpoint.data;
- a[*a_val].value_len = ecpoint.size;
- (*a_val)++;
- break;
- }
+ ret =
+ _gnutls_x509_encode_string(ASN1_ETYPE_OCTET_STRING,
+ pubkey->params.
+ raw_pub.data,
+ pubkey->params.
+ raw_pub.size, &ecpoint);
+ if (ret < 0) {
+ gnutls_assert();
+ return ret;
+ }
+
+ a[*a_val].type = CKA_EC_POINT;
+ a[*a_val].value = ecpoint.data;
+ a[*a_val].value_len = ecpoint.size;
+ (*a_val)++;
+ break;
+ }
default:
- _gnutls_debug_log("requested writing public key of unsupported type %u\n", (unsigned)pk);
+ _gnutls_debug_log
+ ("requested writing public key of unsupported type %u\n",
+ (unsigned)pk);
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
}
@@ -419,7 +429,7 @@ static int add_pubkey(gnutls_pubkey_t pubkey, struct ck_attribute *a, unsigned *
int
gnutls_pkcs11_copy_pubkey(const char *token_url,
gnutls_pubkey_t pubkey, const char *label,
- const gnutls_datum_t *cid,
+ const gnutls_datum_t * cid,
unsigned int key_usage, unsigned int flags)
{
int ret;
@@ -434,7 +444,7 @@ gnutls_pkcs11_copy_pubkey(const char *token_url,
unsigned a_val;
ck_key_type_t type;
struct pkcs11_session_info sinfo;
-
+
PKCS11_CHECK_INIT;
ret = pkcs11_url_to_info(token_url, &info, 0);
@@ -445,8 +455,7 @@ gnutls_pkcs11_copy_pubkey(const char *token_url,
ret =
pkcs11_open_session(&sinfo, NULL, info,
- SESSION_WRITE |
- pkcs11_obj_flags_to_int(flags));
+ SESSION_WRITE | pkcs11_obj_flags_to_int(flags));
p11_kit_uri_free(info);
if (ret < 0) {
@@ -459,7 +468,7 @@ gnutls_pkcs11_copy_pubkey(const char *token_url,
a[0].value_len = sizeof(class);
a[1].type = CKA_TOKEN;
- a[1].value = (void *) &tval;
+ a[1].value = (void *)&tval;
a[1].value_len = sizeof(tval);
a_val = 2;
@@ -472,7 +481,7 @@ gnutls_pkcs11_copy_pubkey(const char *token_url,
if (label) {
a[a_val].type = CKA_LABEL;
- a[a_val].value = (void *) label;
+ a[a_val].value = (void *)label;
a[a_val].value_len = strlen(label);
a_val++;
}
@@ -491,8 +500,8 @@ gnutls_pkcs11_copy_pubkey(const char *token_url,
id_size = sizeof(id);
ret = gnutls_pubkey_get_key_id(pubkey, 0, id, &id_size);
if (ret < 0) {
- gnutls_assert();
- goto cleanup;
+ gnutls_assert();
+ goto cleanup;
}
a[a_val].value = id;
@@ -507,21 +516,22 @@ gnutls_pkcs11_copy_pubkey(const char *token_url,
a[a_val].type = CKA_VERIFY;
if (key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE) {
- a[a_val].value = (void*)&tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
} else {
- a[a_val].value = (void*)&fval;
+ a[a_val].value = (void *)&fval;
a[a_val].value_len = sizeof(fval);
}
a_val++;
if (pk == GNUTLS_PK_RSA) {
a[a_val].type = CKA_ENCRYPT;
- if (key_usage & (GNUTLS_KEY_ENCIPHER_ONLY|GNUTLS_KEY_DECIPHER_ONLY)) {
- a[a_val].value = (void*)&tval;
+ if (key_usage &
+ (GNUTLS_KEY_ENCIPHER_ONLY | GNUTLS_KEY_DECIPHER_ONLY)) {
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
} else {
- a[a_val].value = (void*)&fval;
+ a[a_val].value = (void *)&fval;
a[a_val].value_len = sizeof(fval);
}
a_val++;
@@ -540,14 +550,13 @@ gnutls_pkcs11_copy_pubkey(const char *token_url,
ret = 0;
- cleanup:
+ cleanup:
clean_pubkey(a, a_val);
pkcs11_close_session(&sinfo);
return ret;
}
-
/**
* gnutls_pkcs11_copy_attached_extension:
* @token_url: A PKCS #11 URL specifying a token
@@ -568,10 +577,9 @@ gnutls_pkcs11_copy_pubkey(const char *token_url,
**/
int
gnutls_pkcs11_copy_attached_extension(const char *token_url,
- gnutls_x509_crt_t crt,
- gnutls_datum_t *data,
- const char *label,
- unsigned int flags)
+ gnutls_x509_crt_t crt,
+ gnutls_datum_t * data,
+ const char *label, unsigned int flags)
{
int ret;
struct p11_kit_uri *info = NULL;
@@ -581,8 +589,8 @@ gnutls_pkcs11_copy_attached_extension(const char *token_url,
unsigned a_vals;
struct pkcs11_session_info sinfo;
ck_object_class_t class;
- gnutls_datum_t spki = {NULL, 0};
-
+ gnutls_datum_t spki = { NULL, 0 };
+
PKCS11_CHECK_INIT;
ret = pkcs11_url_to_info(token_url, &info, 0);
@@ -593,8 +601,7 @@ gnutls_pkcs11_copy_attached_extension(const char *token_url,
ret =
pkcs11_open_session(&sinfo, NULL, info,
- SESSION_WRITE |
- pkcs11_obj_flags_to_int(flags));
+ SESSION_WRITE | pkcs11_obj_flags_to_int(flags));
p11_kit_uri_free(info);
if (ret < 0) {
@@ -623,12 +630,12 @@ gnutls_pkcs11_copy_attached_extension(const char *token_url,
a[a_vals++].value_len = data->size;
a[a_vals].type = CKA_TOKEN;
- a[a_vals].value = (void *) &tval;
+ a[a_vals].value = (void *)&tval;
a[a_vals++].value_len = sizeof(tval);
if (label) {
a[a_vals].type = CKA_LABEL;
- a[a_vals].value = (void *) label;
+ a[a_vals].value = (void *)label;
a[a_vals++].value_len = strlen(label);
}
@@ -642,7 +649,7 @@ gnutls_pkcs11_copy_attached_extension(const char *token_url,
ret = 0;
- cleanup:
+ cleanup:
pkcs11_close_session(&sinfo);
gnutls_free(spki.data);
return ret;
@@ -671,10 +678,10 @@ gnutls_pkcs11_copy_attached_extension(const char *token_url,
**/
int
gnutls_pkcs11_copy_x509_privkey2(const char *token_url,
- gnutls_x509_privkey_t key,
- const char *label,
- const gnutls_datum_t *cid,
- unsigned int key_usage, unsigned int flags)
+ gnutls_x509_privkey_t key,
+ const char *label,
+ const gnutls_datum_t * cid,
+ unsigned int key_usage, unsigned int flags)
{
int ret;
struct p11_kit_uri *info = NULL;
@@ -713,8 +720,7 @@ gnutls_pkcs11_copy_x509_privkey2(const char *token_url,
ret =
pkcs11_open_session(&sinfo, NULL, info,
- SESSION_WRITE |
- pkcs11_obj_flags_to_int(flags));
+ SESSION_WRITE | pkcs11_obj_flags_to_int(flags));
p11_kit_uri_free(info);
if (ret < 0) {
@@ -751,29 +757,30 @@ gnutls_pkcs11_copy_x509_privkey2(const char *token_url,
a[a_val].type = CKA_SIGN;
if (key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE) {
- a[a_val].value = (void*)&tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
} else {
- a[a_val].value = (void*)&fval;
+ a[a_val].value = (void *)&fval;
a[a_val].value_len = sizeof(fval);
}
a_val++;
if (pk == GNUTLS_PK_RSA) {
a[a_val].type = CKA_DECRYPT;
- if ((key_usage & (GNUTLS_KEY_ENCIPHER_ONLY|GNUTLS_KEY_DECIPHER_ONLY)) ||
- (key_usage & GNUTLS_KEY_KEY_ENCIPHERMENT)) {
- a[a_val].value = (void*)&tval;
+ if ((key_usage &
+ (GNUTLS_KEY_ENCIPHER_ONLY | GNUTLS_KEY_DECIPHER_ONLY))
+ || (key_usage & GNUTLS_KEY_KEY_ENCIPHERMENT)) {
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
} else {
- a[a_val].value = (void*)&fval;
+ a[a_val].value = (void *)&fval;
a[a_val].value_len = sizeof(fval);
}
a_val++;
}
a[a_val].type = CKA_TOKEN;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
@@ -782,50 +789,50 @@ gnutls_pkcs11_copy_x509_privkey2(const char *token_url,
*/
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE) {
a[a_val].type = CKA_PRIVATE;
- a[a_val].value = (void *) &fval;
+ a[a_val].value = (void *)&fval;
a[a_val].value_len = sizeof(fval);
a_val++;
} else {
a[a_val].type = CKA_PRIVATE;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
}
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_ALWAYS_AUTH) {
a[a_val].type = CKA_ALWAYS_AUTHENTICATE;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
}
if (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_EXTRACTABLE) {
a[a_val].type = CKA_EXTRACTABLE;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
(a_val)++;
} else {
a[a_val].type = CKA_EXTRACTABLE;
- a[a_val].value = (void *) &fval;
+ a[a_val].value = (void *)&fval;
a[a_val].value_len = sizeof(fval);
(a_val)++;
}
if (label) {
a[a_val].type = CKA_LABEL;
- a[a_val].value = (void *) label;
+ a[a_val].value = (void *)label;
a[a_val].value_len = strlen(label);
a_val++;
}
if (!(flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE)) {
a[a_val].type = CKA_SENSITIVE;
- a[a_val].value = (void *) &tval;
+ a[a_val].value = (void *)&tval;
a[a_val].value_len = sizeof(tval);
a_val++;
} else {
a[a_val].type = CKA_SENSITIVE;
- a[a_val].value = (void *) &fval;
+ a[a_val].value = (void *)&fval;
a[a_val].value_len = sizeof(fval);
a_val++;
}
@@ -835,9 +842,10 @@ gnutls_pkcs11_copy_x509_privkey2(const char *token_url,
case GNUTLS_PK_RSA_PSS:
{
- ret = _gnutls_params_get_rsa_raw(&key->params, &m, &e, &d, &p,
- &q, &u, &exp1, &exp2,
- GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ _gnutls_params_get_rsa_raw(&key->params, &m, &e, &d,
+ &p, &q, &u, &exp1, &exp2,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -889,8 +897,10 @@ gnutls_pkcs11_copy_x509_privkey2(const char *token_url,
}
case GNUTLS_PK_DSA:
{
- ret = _gnutls_params_get_dsa_raw(&key->params, &p, &q, &g, &y, &x,
- GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ _gnutls_params_get_dsa_raw(&key->params, &p, &q, &g,
+ &y, &x,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -930,9 +940,7 @@ gnutls_pkcs11_copy_x509_privkey2(const char *token_url,
goto cleanup;
}
- ret =
- _gnutls_mpi_dprint(key->params.
- params[ECC_K], &x);
+ ret = _gnutls_mpi_dprint(key->params.params[ECC_K], &x);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -999,7 +1007,7 @@ gnutls_pkcs11_copy_x509_privkey2(const char *token_url,
ret = 0;
- cleanup:
+ cleanup:
switch (pk) {
case GNUTLS_PK_RSA_PSS:
case GNUTLS_PK_RSA:
@@ -1049,9 +1057,10 @@ struct delete_data_st {
};
static int
-delete_obj_url_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
- struct ck_token_info *tinfo,
- struct ck_info *lib_info, void *input)
+delete_obj_url_cb(struct ck_function_list *module,
+ struct pkcs11_session_info *sinfo,
+ struct ck_token_info *tinfo, struct ck_info *lib_info,
+ void *input)
{
struct delete_data_st *find_data = input;
struct ck_attribute a[4];
@@ -1082,8 +1091,7 @@ delete_obj_url_cb(struct ck_function_list *module, struct pkcs11_session_info *s
attr = p11_kit_uri_get_attribute(find_data->info, CKA_CLASS);
if (attr != NULL) {
- if (attr->value
- && attr->value_len == sizeof(ck_object_class_t))
+ if (attr->value && attr->value_len == sizeof(ck_object_class_t))
class = *((ck_object_class_t *) attr->value);
if (class == CKO_CERTIFICATE)
type = CKC_X_509;
@@ -1113,8 +1121,7 @@ delete_obj_url_cb(struct ck_function_list *module, struct pkcs11_session_info *s
a_vals++;
}
- rv = pkcs11_find_objects_init(sinfo->module, sinfo->pks, a,
- a_vals);
+ rv = pkcs11_find_objects_init(sinfo->module, sinfo->pks, a, a_vals);
if (rv != CKR_OK) {
gnutls_assert();
_gnutls_debug_log("p11: FindObjectsInit failed.\n");
@@ -1144,13 +1151,12 @@ delete_obj_url_cb(struct ck_function_list *module, struct pkcs11_session_info *s
ret = 0;
}
- cleanup:
+ cleanup:
pkcs11_find_objects_final(sinfo);
return ret;
}
-
/**
* gnutls_pkcs11_delete_url:
* @object_url: The URL of the object to delete.
@@ -1309,8 +1315,7 @@ gnutls_pkcs11_token_set_pin(const char *token_url,
(uint8_t *) newpin, strlen(newpin));
if (rv != CKR_OK) {
gnutls_assert();
- _gnutls_debug_log("p11: %s\n",
- pkcs11_strerror(rv));
+ _gnutls_debug_log("p11: %s\n", pkcs11_strerror(rv));
ret = pkcs11_rv_to_err(rv);
goto finish;
}
@@ -1322,29 +1327,33 @@ gnutls_pkcs11_token_set_pin(const char *token_url,
if (!(sinfo.tinfo.flags & CKF_PROTECTED_AUTHENTICATION_PATH)) {
if (newpin == NULL)
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if (oldpin == NULL) {
struct pin_info_st pin_info;
memset(&pin_info, 0, sizeof(pin_info));
- ret = pkcs11_retrieve_pin(&pin_info, info, &sinfo.tinfo, 0, CKU_SO, &pin);
+ ret =
+ pkcs11_retrieve_pin(&pin_info, info,
+ &sinfo.tinfo, 0, CKU_SO,
+ &pin);
if (ret < 0) {
gnutls_assert();
goto finish;
}
- oldpin = (const char*)p11_kit_pin_get_value(pin, NULL);
+ oldpin =
+ (const char *)p11_kit_pin_get_value(pin,
+ NULL);
oldpin_size = p11_kit_pin_get_length(pin);
}
}
rv = pkcs11_set_pin(sinfo.module, sinfo.pks,
- oldpin, oldpin_size,
- newpin, L(newpin));
+ oldpin, oldpin_size, newpin, L(newpin));
if (rv != CKR_OK) {
gnutls_assert();
- _gnutls_debug_log("p11: %s\n",
- pkcs11_strerror(rv));
+ _gnutls_debug_log("p11: %s\n", pkcs11_strerror(rv));
ret = pkcs11_rv_to_err(rv);
goto finish;
}
@@ -1352,7 +1361,7 @@ gnutls_pkcs11_token_set_pin(const char *token_url,
ret = 0;
- finish:
+ finish:
pkcs11_close_session(&sinfo);
return ret;
@@ -1372,8 +1381,7 @@ gnutls_pkcs11_token_set_pin(const char *token_url,
* negative error value.
**/
int
-gnutls_pkcs11_token_get_random(const char *token_url,
- void *rnddata, size_t len)
+gnutls_pkcs11_token_get_random(const char *token_url, void *rnddata, size_t len)
{
int ret;
struct p11_kit_uri *info = NULL;
@@ -1406,7 +1414,7 @@ gnutls_pkcs11_token_get_random(const char *token_url,
ret = 0;
- finish:
+ finish:
pkcs11_close_session(&sinfo);
return ret;
@@ -1415,7 +1423,6 @@ gnutls_pkcs11_token_get_random(const char *token_url,
#if 0
/* For documentation purposes */
-
/**
* gnutls_pkcs11_copy_x509_crt:
* @token_url: A PKCS #11 URL specifying a token
@@ -1432,8 +1439,8 @@ gnutls_pkcs11_token_get_random(const char *token_url,
* Since: 2.12.0
**/
int gnutls_pkcs11_copy_x509_crt(const char *token_url,
- gnutls_x509_crt_t crt, const char *label,
- unsigned int flags)
+ gnutls_x509_crt_t crt, const char *label,
+ unsigned int flags)
{
int x;
}
@@ -1458,9 +1465,9 @@ int gnutls_pkcs11_copy_x509_crt(const char *token_url,
* Since: 2.12.0
**/
int gnutls_pkcs11_copy_x509_privkey(const char *token_url,
- gnutls_x509_privkey_t key,
- const char *label,
- unsigned int key_usage, unsigned int flags)
+ gnutls_x509_privkey_t key,
+ const char *label,
+ unsigned int key_usage, unsigned int flags)
{
int x;
}
diff --git a/lib/pkcs11x.c b/lib/pkcs11x.c
index dfaee58a39..01aac1ddd4 100644
--- a/lib/pkcs11x.c
+++ b/lib/pkcs11x.c
@@ -40,7 +40,7 @@ struct find_ext_data_st {
unsigned int exts_size;
};
-static int override_ext(gnutls_x509_crt_t crt, gnutls_datum_t *ext)
+static int override_ext(gnutls_x509_crt_t crt, gnutls_datum_t * ext)
{
gnutls_x509_ext_st parsed;
int ret;
@@ -50,12 +50,14 @@ static int override_ext(gnutls_x509_crt_t crt, gnutls_datum_t *ext)
return gnutls_assert_val(ret);
/* set the new extension */
- ret = _gnutls_x509_crt_set_extension(crt, parsed.oid, &parsed.data, parsed.critical);
+ ret =
+ _gnutls_x509_crt_set_extension(crt, parsed.oid, &parsed.data,
+ parsed.critical);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
-
+
ret = 0;
cleanup:
gnutls_x509_ext_deinit(&parsed);
@@ -65,10 +67,11 @@ static int override_ext(gnutls_x509_crt_t crt, gnutls_datum_t *ext)
/* This function re-encodes a certificate to contain its stapled extensions.
* That assumes that the certificate is not in the distrusted list.
*/
-int pkcs11_override_cert_exts(struct pkcs11_session_info *sinfo, gnutls_datum_t *spki, gnutls_datum_t *der)
+int pkcs11_override_cert_exts(struct pkcs11_session_info *sinfo,
+ gnutls_datum_t * spki, gnutls_datum_t * der)
{
int ret;
- gnutls_datum_t new_der = {NULL, 0};
+ gnutls_datum_t new_der = { NULL, 0 };
struct ck_attribute a[2];
struct ck_attribute b[1];
unsigned long count;
@@ -81,7 +84,8 @@ int pkcs11_override_cert_exts(struct pkcs11_session_info *sinfo, gnutls_datum_t
ck_object_handle_t obj;
if (sinfo->trusted == 0) {
- _gnutls_debug_log("p11: cannot override extensions on a non-p11-kit trust module\n");
+ _gnutls_debug_log
+ ("p11: cannot override extensions on a non-p11-kit trust module\n");
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -134,7 +138,8 @@ int pkcs11_override_cert_exts(struct pkcs11_session_info *sinfo, gnutls_datum_t
if (pkcs11_get_attribute_value
(sinfo->module, sinfo->pks, obj, b, 1) == CKR_OK) {
- gnutls_datum_t data = { b[0].value, b[0].value_len };
+ gnutls_datum_t data =
+ { b[0].value, b[0].value_len };
ret = override_ext(crt, &data);
if (ret < 0) {
@@ -142,10 +147,13 @@ int pkcs11_override_cert_exts(struct pkcs11_session_info *sinfo, gnutls_datum_t
goto cleanup;
}
}
- } while (pkcs11_find_objects(sinfo->module, sinfo->pks, &obj, 1, &count) == CKR_OK && count == 1);
+ } while (pkcs11_find_objects
+ (sinfo->module, sinfo->pks, &obj, 1, &count) == CKR_OK
+ && count == 1);
/* overwrite the old certificate with the new */
- ret = gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_DER, &new_der);
+ ret =
+ gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_DER, &new_der);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -169,8 +177,7 @@ int pkcs11_override_cert_exts(struct pkcs11_session_info *sinfo, gnutls_datum_t
static int
find_ext_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
- struct ck_token_info *tinfo, struct ck_info *lib_info,
- void *input)
+ struct ck_token_info *tinfo, struct ck_info *lib_info, void *input)
{
struct find_ext_data_st *find_data = input;
struct ck_attribute a[4];
@@ -188,10 +195,8 @@ find_ext_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
/* do not bother reading the token if basic fields do not match
*/
- if (!p11_kit_uri_match_token_info
- (find_data->obj->info, tinfo)
- || !p11_kit_uri_match_module_info(find_data->obj->info,
- lib_info)) {
+ if (!p11_kit_uri_match_token_info(find_data->obj->info, tinfo)
+ || !p11_kit_uri_match_module_info(find_data->obj->info, lib_info)) {
gnutls_assert();
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
@@ -214,8 +219,10 @@ find_ext_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
return pkcs11_rv_to_err(rv);
}
- while(pkcs11_find_objects(sinfo->module, sinfo->pks, &obj, 1, &count) == CKR_OK && count == 1) {
- rv = pkcs11_get_attribute_avalue(sinfo->module, sinfo->pks, obj, CKA_VALUE, &ext);
+ while (pkcs11_find_objects(sinfo->module, sinfo->pks, &obj, 1, &count)
+ == CKR_OK && count == 1) {
+ rv = pkcs11_get_attribute_avalue(sinfo->module, sinfo->pks, obj,
+ CKA_VALUE, &ext);
if (rv == CKR_OK) {
if (unlikely(INT_ADD_OVERFLOW(find_data->exts_size, 1))) {
@@ -224,15 +231,18 @@ find_ext_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
}
find_data->exts =
- _gnutls_reallocarray_fast(find_data->exts,
- find_data->exts_size + 1,
- sizeof(find_data->exts[0]));
+ _gnutls_reallocarray_fast(find_data->exts,
+ find_data->exts_size + 1,
+ sizeof(find_data->exts
+ [0]));
if (find_data->exts == NULL) {
ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto cleanup;
}
- if (_gnutls_x509_decode_ext(&ext, &find_data->exts[find_data->exts_size]) == 0) {
+ if (_gnutls_x509_decode_ext
+ (&ext,
+ &find_data->exts[find_data->exts_size]) == 0) {
find_data->exts_size++;
}
gnutls_free(ext.data);
@@ -265,11 +275,11 @@ find_ext_cb(struct ck_function_list *module, struct pkcs11_session_info *sinfo,
**/
int
gnutls_pkcs11_obj_get_exts(gnutls_pkcs11_obj_t obj,
- gnutls_x509_ext_st **exts, unsigned int *exts_size,
+ gnutls_x509_ext_st ** exts, unsigned int *exts_size,
unsigned int flags)
{
int ret;
- gnutls_datum_t spki = {NULL, 0};
+ gnutls_datum_t spki = { NULL, 0 };
struct find_ext_data_st find_data;
unsigned deinit_spki = 0;
@@ -278,7 +288,8 @@ gnutls_pkcs11_obj_get_exts(gnutls_pkcs11_obj_t obj,
*exts_size = 0;
- if (obj->type != GNUTLS_PKCS11_OBJ_X509_CRT && obj->type != GNUTLS_PKCS11_OBJ_PUBKEY)
+ if (obj->type != GNUTLS_PKCS11_OBJ_X509_CRT
+ && obj->type != GNUTLS_PKCS11_OBJ_PUBKEY)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if (obj->type == GNUTLS_PKCS11_OBJ_PUBKEY) {
@@ -296,8 +307,7 @@ gnutls_pkcs11_obj_get_exts(gnutls_pkcs11_obj_t obj,
find_data.obj = obj;
ret =
_pkcs11_traverse_tokens(find_ext_cb, &find_data, obj->info,
- &obj->pin,
- pkcs11_obj_flags_to_int(flags));
+ &obj->pin, pkcs11_obj_flags_to_int(flags));
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -312,4 +322,3 @@ gnutls_pkcs11_obj_get_exts(gnutls_pkcs11_obj_t obj,
gnutls_free(spki.data);
return ret;
}
-
diff --git a/lib/pkcs11x.h b/lib/pkcs11x.h
index 6fb10cb4cf..30e3b2a0fd 100644
--- a/lib/pkcs11x.h
+++ b/lib/pkcs11x.h
@@ -19,8 +19,8 @@
*/
#ifndef GNUTLS_LIB_PKCS11X_H
-#define GNUTLS_LIB_PKCS11X_H
+# define GNUTLS_LIB_PKCS11X_H
-#include <p11-kit/pkcs11x.h>
+# include <p11-kit/pkcs11x.h>
-#endif /* GNUTLS_LIB_PKCS11X_H */
+#endif /* GNUTLS_LIB_PKCS11X_H */
diff --git a/lib/prf.c b/lib/prf.c
index bb76e2ed4e..644dfaefb5 100644
--- a/lib/prf.c
+++ b/lib/prf.c
@@ -71,8 +71,7 @@ int
gnutls_prf_raw(gnutls_session_t session,
size_t label_size,
const char *label,
- size_t seed_size, const char *seed, size_t outsize,
- char *out)
+ size_t seed_size, const char *seed, size_t outsize, char *out)
{
int ret;
const version_entry_st *vers = get_version(session);
@@ -84,21 +83,20 @@ gnutls_prf_raw(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
ret = _gnutls_prf_raw(session->security_parameters.prf->id,
- GNUTLS_MASTER_SIZE, session->security_parameters.master_secret,
- label_size, label,
- seed_size, (uint8_t *) seed,
- outsize, out);
+ GNUTLS_MASTER_SIZE,
+ session->security_parameters.master_secret,
+ label_size, label, seed_size, (uint8_t *) seed,
+ outsize, out);
return ret;
}
static int
-_tls13_derive_exporter(const mac_entry_st *prf,
+_tls13_derive_exporter(const mac_entry_st * prf,
gnutls_session_t session,
size_t label_size, const char *label,
size_t context_size, const char *context,
- size_t outsize, char *out,
- bool early)
+ size_t outsize, char *out, bool early)
{
uint8_t secret[MAX_HASH_SIZE];
uint8_t digest[MAX_HASH_SIZE];
@@ -106,20 +104,18 @@ _tls13_derive_exporter(const mac_entry_st *prf,
int ret;
ret = _tls13_derive_secret2(prf, label, label_size, NULL, 0,
- session->key.proto.tls13.ap_expkey,
- secret);
+ session->key.proto.tls13.ap_expkey, secret);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = gnutls_hash_fast((gnutls_digest_algorithm_t)prf->id,
+ ret = gnutls_hash_fast((gnutls_digest_algorithm_t) prf->id,
context, context_size, digest);
if (ret < 0)
return gnutls_assert_val(ret);
return _tls13_expand_secret2(prf,
- EXPORTER_LABEL, sizeof(EXPORTER_LABEL)-1,
- digest, digest_size,
- secret, outsize, out);
+ EXPORTER_LABEL, sizeof(EXPORTER_LABEL) - 1,
+ digest, digest_size, secret, outsize, out);
}
/**
@@ -176,25 +172,24 @@ gnutls_prf_rfc5705(gnutls_session_t session,
session,
label_size, label,
context_size, context,
- outsize, out,
- 0);
+ outsize, out, 0);
} else {
char *pctx = NULL;
- if (context != NULL && context_size > 65535) {
+ if (context != NULL && context_size > 65535) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
if (context != NULL) {
- pctx = gnutls_malloc(context_size+2);
+ pctx = gnutls_malloc(context_size + 2);
if (!pctx) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
}
- memcpy(pctx+2, context, context_size);
- _gnutls_write_uint16(context_size, (void*)pctx);
+ memcpy(pctx + 2, context, context_size);
+ _gnutls_write_uint16(context_size, (void *)pctx);
context_size += 2;
}
@@ -254,9 +249,7 @@ gnutls_prf_early(gnutls_session_t session,
return _tls13_derive_exporter(session->key.binders[0].prf, session,
label_size, label,
- context_size, context,
- outsize, out,
- 1);
+ context_size, context, outsize, out, 1);
}
/**
@@ -299,8 +292,7 @@ gnutls_prf(gnutls_session_t session,
size_t label_size,
const char *label,
int server_random_first,
- size_t extra_size, const char *extra,
- size_t outsize, char *out)
+ size_t extra_size, const char *extra, size_t outsize, char *out)
{
int ret;
uint8_t *seed;
@@ -310,7 +302,8 @@ gnutls_prf(gnutls_session_t session,
if (vers && vers->tls13_sem) {
if (extra == NULL && server_random_first == 0)
return gnutls_prf_rfc5705(session, label_size, label,
- extra_size, extra, outsize, out);
+ extra_size, extra, outsize,
+ out);
else
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -326,8 +319,7 @@ gnutls_prf(gnutls_session_t session,
memcpy(seed, server_random_first ?
session->security_parameters.server_random :
- session->security_parameters.client_random,
- GNUTLS_RANDOM_SIZE);
+ session->security_parameters.client_random, GNUTLS_RANDOM_SIZE);
memcpy(seed + GNUTLS_RANDOM_SIZE,
server_random_first ? session->security_parameters.
client_random : session->security_parameters.server_random,
@@ -339,13 +331,11 @@ gnutls_prf(gnutls_session_t session,
ret =
_gnutls_prf_raw(session->security_parameters.prf->id,
- GNUTLS_MASTER_SIZE, session->security_parameters.master_secret,
- label_size, label,
- seedsize, seed,
- outsize, out);
+ GNUTLS_MASTER_SIZE,
+ session->security_parameters.master_secret,
+ label_size, label, seedsize, seed, outsize, out);
gnutls_free(seed);
return ret;
}
-
diff --git a/lib/priority.c b/lib/priority.c
index 6266bb5711..154929eb9f 100644
--- a/lib/priority.c
+++ b/lib/priority.c
@@ -52,7 +52,7 @@
} while(0)
/* This function is used by the test suite */
-char *_gnutls_resolve_priorities(const char* priorities);
+char *_gnutls_resolve_priorities(const char *priorities);
/* This variable points to either a constant value (DEFAULT_PRIORITY_STRING or
* externally assigned) or heap-allocated
@@ -64,9 +64,7 @@ const char *_gnutls_default_priority_string = DEFAULT_PRIORITY_STRING;
static void prio_remove(priority_st * priority_list, unsigned int algo);
static void prio_add(priority_st * priority_list, unsigned int algo);
-static void
-break_list(char *etag,
- char *broken_etag[MAX_ELEMENTS], int *size);
+static void break_list(char *etag, char *broken_etag[MAX_ELEMENTS], int *size);
typedef void (bulk_rmadd_func) (priority_st * priority_list, const int *);
@@ -99,7 +97,7 @@ inline static void _add_priority(priority_st * st, const int *list)
}
for (j = 0; j < init; j++) {
- if (st->priorities[j] == (unsigned) list[num]) {
+ if (st->priorities[j] == (unsigned)list[num]) {
break;
}
}
@@ -122,7 +120,7 @@ static void _clear_given_priorities(priority_st * st, const int *list)
{
unsigned i;
- for (i=0;list[i]!=0;i++) {
+ for (i = 0; list[i] != 0; i++) {
prio_remove(st, list[i]);
}
}
@@ -140,8 +138,8 @@ static const int _supported_groups_ecdh[] = {
GNUTLS_GROUP_SECP256R1,
GNUTLS_GROUP_SECP384R1,
GNUTLS_GROUP_SECP521R1,
- GNUTLS_GROUP_X25519, /* RFC 8422 */
- GNUTLS_GROUP_X448, /* RFC 8422 */
+ GNUTLS_GROUP_X25519, /* RFC 8422 */
+ GNUTLS_GROUP_X448, /* RFC 8422 */
0
};
@@ -162,8 +160,8 @@ static const int _supported_groups_normal[] = {
GNUTLS_GROUP_SECP256R1,
GNUTLS_GROUP_SECP384R1,
GNUTLS_GROUP_SECP521R1,
- GNUTLS_GROUP_X25519, /* RFC 8422 */
- GNUTLS_GROUP_X448, /* RFC 8422 */
+ GNUTLS_GROUP_X25519, /* RFC 8422 */
+ GNUTLS_GROUP_X448, /* RFC 8422 */
/* These should stay last as our default behavior
* is to send key shares for two top types (GNUTLS_KEY_SHARE_TOP2)
@@ -176,14 +174,15 @@ static const int _supported_groups_normal[] = {
GNUTLS_GROUP_FFDHE8192,
0
};
-static const int* supported_groups_normal = _supported_groups_normal;
+
+static const int *supported_groups_normal = _supported_groups_normal;
static const int _supported_groups_secure128[] = {
GNUTLS_GROUP_SECP256R1,
GNUTLS_GROUP_SECP384R1,
GNUTLS_GROUP_SECP521R1,
- GNUTLS_GROUP_X25519, /* RFC 8422 */
- GNUTLS_GROUP_X448, /* RFC 8422 */
+ GNUTLS_GROUP_X25519, /* RFC 8422 */
+ GNUTLS_GROUP_X448, /* RFC 8422 */
GNUTLS_GROUP_FFDHE2048,
GNUTLS_GROUP_FFDHE3072,
GNUTLS_GROUP_FFDHE4096,
@@ -191,20 +190,23 @@ static const int _supported_groups_secure128[] = {
GNUTLS_GROUP_FFDHE8192,
0
};
-static const int* supported_groups_secure128 = _supported_groups_secure128;
+
+static const int *supported_groups_secure128 = _supported_groups_secure128;
static const int _supported_groups_suiteb128[] = {
GNUTLS_GROUP_SECP256R1,
GNUTLS_GROUP_SECP384R1,
0
};
-static const int* supported_groups_suiteb128 = _supported_groups_suiteb128;
+
+static const int *supported_groups_suiteb128 = _supported_groups_suiteb128;
static const int _supported_groups_suiteb192[] = {
GNUTLS_GROUP_SECP384R1,
0
};
-static const int* supported_groups_suiteb192 = _supported_groups_suiteb192;
+
+static const int *supported_groups_suiteb192 = _supported_groups_suiteb192;
static const int _supported_groups_secure192[] = {
GNUTLS_GROUP_SECP384R1,
@@ -212,7 +214,8 @@ static const int _supported_groups_secure192[] = {
GNUTLS_GROUP_FFDHE8192,
0
};
-static const int* supported_groups_secure192 = _supported_groups_secure192;
+
+static const int *supported_groups_secure192 = _supported_groups_secure192;
static const int protocol_priority[] = {
GNUTLS_TLS1_3,
@@ -253,7 +256,8 @@ static const int _protocol_priority_suiteb[] = {
GNUTLS_TLS1_2,
0
};
-static const int* protocol_priority_suiteb = _protocol_priority_suiteb;
+
+static const int *protocol_priority_suiteb = _protocol_priority_suiteb;
static const int _kx_priority_performance[] = {
GNUTLS_KX_RSA,
@@ -266,7 +270,8 @@ static const int _kx_priority_performance[] = {
#endif
0
};
-static const int* kx_priority_performance = _kx_priority_performance;
+
+static const int *kx_priority_performance = _kx_priority_performance;
static const int _kx_priority_pfs[] = {
#ifdef ENABLE_ECDHE
@@ -278,13 +283,15 @@ static const int _kx_priority_pfs[] = {
#endif
0
};
-static const int* kx_priority_pfs = _kx_priority_pfs;
+
+static const int *kx_priority_pfs = _kx_priority_pfs;
static const int _kx_priority_suiteb[] = {
GNUTLS_KX_ECDHE_ECDSA,
0
};
-static const int* kx_priority_suiteb = _kx_priority_suiteb;
+
+static const int *kx_priority_suiteb = _kx_priority_suiteb;
static const int _kx_priority_secure[] = {
/* The ciphersuites that offer forward secrecy take
@@ -306,7 +313,8 @@ static const int _kx_priority_secure[] = {
*/
0
};
-static const int* kx_priority_secure = _kx_priority_secure;
+
+static const int *kx_priority_secure = _kx_priority_secure;
static const int _kx_priority_gost[] = {
#ifdef ENABLE_GOST
@@ -314,7 +322,8 @@ static const int _kx_priority_gost[] = {
#endif
0,
};
-static const int* kx_priority_gost = _kx_priority_gost;
+
+static const int *kx_priority_gost = _kx_priority_gost;
static const int _cipher_priority_performance_default[] = {
GNUTLS_CIPHER_AES_128_GCM,
@@ -379,20 +388,20 @@ static const int cipher_priority_normal_fips[] = {
0
};
-
static const int _cipher_priority_suiteb128[] = {
GNUTLS_CIPHER_AES_256_GCM,
GNUTLS_CIPHER_AES_128_GCM,
0
};
-static const int* cipher_priority_suiteb128 = _cipher_priority_suiteb128;
+
+static const int *cipher_priority_suiteb128 = _cipher_priority_suiteb128;
static const int _cipher_priority_suiteb192[] = {
GNUTLS_CIPHER_AES_256_GCM,
0
};
-static const int* cipher_priority_suiteb192 = _cipher_priority_suiteb192;
+static const int *cipher_priority_suiteb192 = _cipher_priority_suiteb192;
static const int _cipher_priority_secure128[] = {
GNUTLS_CIPHER_AES_256_GCM,
@@ -405,8 +414,8 @@ static const int _cipher_priority_secure128[] = {
GNUTLS_CIPHER_AES_128_CCM,
0
};
-static const int *cipher_priority_secure128 = _cipher_priority_secure128;
+static const int *cipher_priority_secure128 = _cipher_priority_secure128;
static const int _cipher_priority_secure192[] = {
GNUTLS_CIPHER_AES_256_GCM,
@@ -415,7 +424,8 @@ static const int _cipher_priority_secure192[] = {
GNUTLS_CIPHER_AES_256_CCM,
0
};
-static const int* cipher_priority_secure192 = _cipher_priority_secure192;
+
+static const int *cipher_priority_secure192 = _cipher_priority_secure192;
static const int _sign_priority_default[] = {
GNUTLS_SIGN_RSA_SHA256,
@@ -446,7 +456,8 @@ static const int _sign_priority_default[] = {
0
};
-static const int* sign_priority_default = _sign_priority_default;
+
+static const int *sign_priority_default = _sign_priority_default;
static const int _sign_priority_suiteb128[] = {
GNUTLS_SIGN_ECDSA_SHA256,
@@ -455,14 +466,16 @@ static const int _sign_priority_suiteb128[] = {
GNUTLS_SIGN_ECDSA_SECP384R1_SHA384,
0
};
-static const int* sign_priority_suiteb128 = _sign_priority_suiteb128;
+
+static const int *sign_priority_suiteb128 = _sign_priority_suiteb128;
static const int _sign_priority_suiteb192[] = {
GNUTLS_SIGN_ECDSA_SHA384,
GNUTLS_SIGN_ECDSA_SECP384R1_SHA384,
0
};
-static const int* sign_priority_suiteb192 = _sign_priority_suiteb192;
+
+static const int *sign_priority_suiteb192 = _sign_priority_suiteb192;
static const int _sign_priority_secure128[] = {
GNUTLS_SIGN_RSA_SHA256,
@@ -489,7 +502,8 @@ static const int _sign_priority_secure128[] = {
0
};
-static const int* sign_priority_secure128 = _sign_priority_secure128;
+
+static const int *sign_priority_secure128 = _sign_priority_secure128;
static const int _sign_priority_secure192[] = {
GNUTLS_SIGN_RSA_SHA384,
@@ -506,7 +520,8 @@ static const int _sign_priority_secure192[] = {
0
};
-static const int* sign_priority_secure192 = _sign_priority_secure192;
+
+static const int *sign_priority_secure192 = _sign_priority_secure192;
static const int _sign_priority_gost[] = {
#ifdef ENABLE_GOST
@@ -515,7 +530,8 @@ static const int _sign_priority_gost[] = {
#endif
0
};
-static const int* sign_priority_gost = _sign_priority_gost;
+
+static const int *sign_priority_gost = _sign_priority_gost;
static const int mac_priority_normal_default[] = {
GNUTLS_MAC_SHA1,
@@ -529,7 +545,8 @@ static const int mac_priority_normal_fips[] = {
0
};
-static const int *cipher_priority_performance = _cipher_priority_performance_default;
+static const int *cipher_priority_performance =
+ _cipher_priority_performance_default;
static const int *cipher_priority_normal = _cipher_priority_normal_default;
static const int *mac_priority_normal = mac_priority_normal_default;
@@ -539,6 +556,7 @@ static const int _cipher_priority_gost[] = {
#endif
0
};
+
static const int *cipher_priority_gost = _cipher_priority_gost;
static const int _mac_priority_gost[] = {
@@ -547,6 +565,7 @@ static const int _mac_priority_gost[] = {
#endif
0
};
+
static const int *mac_priority_gost = _mac_priority_gost;
/* if called with replace the default priorities with the FIPS140 ones */
@@ -562,7 +581,8 @@ void _gnutls_priority_update_non_aesni(void)
/* if we have no AES acceleration in performance mode
* prefer fast stream ciphers */
if (_gnutls_fips_mode_enabled() == 0) {
- cipher_priority_performance = _cipher_priority_performance_no_aesni;
+ cipher_priority_performance =
+ _cipher_priority_performance_no_aesni;
}
}
@@ -570,20 +590,23 @@ static const int _mac_priority_suiteb[] = {
GNUTLS_MAC_AEAD,
0
};
-static const int* mac_priority_suiteb = _mac_priority_suiteb;
+
+static const int *mac_priority_suiteb = _mac_priority_suiteb;
static const int _mac_priority_secure128[] = {
GNUTLS_MAC_SHA1,
GNUTLS_MAC_AEAD,
0
};
-static const int* mac_priority_secure128 = _mac_priority_secure128;
+
+static const int *mac_priority_secure128 = _mac_priority_secure128;
static const int _mac_priority_secure192[] = {
GNUTLS_MAC_AEAD,
0
};
-static const int* mac_priority_secure192 = _mac_priority_secure192;
+
+static const int *mac_priority_secure192 = _mac_priority_secure192;
static const int cert_type_priority_default[] = {
GNUTLS_CRT_X509,
@@ -610,10 +633,9 @@ static void prio_remove(priority_st * priority_list, unsigned int algo)
&priority_list->priorities[i + 1],
(priority_list->num_priorities -
i) *
- sizeof(priority_list->
- priorities[0]));
+ sizeof(priority_list->priorities[0]));
priority_list->priorities[priority_list->
- num_priorities] = 0;
+ num_priorities] = 0;
break;
}
}
@@ -639,7 +661,6 @@ static void prio_add(priority_st * priority_list, unsigned int algo)
return;
}
-
/**
* gnutls_priority_set:
* @session: is a #gnutls_session_t type.
@@ -653,8 +674,7 @@ static void prio_add(priority_st * priority_list, unsigned int algo)
*
* Returns: %GNUTLS_E_SUCCESS on success, or an error code on error.
**/
-int
-gnutls_priority_set(gnutls_session_t session, gnutls_priority_t priority)
+int gnutls_priority_set(gnutls_session_t session, gnutls_priority_t priority)
{
int ret;
@@ -669,7 +689,8 @@ gnutls_priority_set(gnutls_session_t session, gnutls_priority_t priority)
if (!session->internals.handshake_in_progress &&
!session->internals.initial_negotiation_completed) {
ret = _gnutls_set_current_version(session,
- priority->protocol.priorities[0]);
+ priority->
+ protocol.priorities[0]);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -711,7 +732,6 @@ gnutls_priority_set(gnutls_session_t session, gnutls_priority_t priority)
return 0;
}
-
#define LEVEL_NONE "NONE"
#define LEVEL_NORMAL "NORMAL"
#define LEVEL_PFS "PFS"
@@ -739,8 +759,7 @@ struct priority_groups_st {
bool no_tickets_tls12;
};
-static const struct priority_groups_st pgroups[] =
-{
+static const struct priority_groups_st pgroups[] = {
{.name = LEVEL_NORMAL,
.cipher_list = &cipher_priority_normal,
.mac_list = &mac_priority_normal,
@@ -748,8 +767,7 @@ static const struct priority_groups_st pgroups[] =
.sign_list = &sign_priority_default,
.group_list = &supported_groups_normal,
.profile = GNUTLS_PROFILE_LOW,
- .sec_param = GNUTLS_SEC_PARAM_WEAK
- },
+ .sec_param = GNUTLS_SEC_PARAM_WEAK},
{.name = LEVEL_PFS,
.cipher_list = &cipher_priority_normal,
.mac_list = &mac_priority_secure128,
@@ -758,8 +776,7 @@ static const struct priority_groups_st pgroups[] =
.group_list = &supported_groups_normal,
.profile = GNUTLS_PROFILE_LOW,
.sec_param = GNUTLS_SEC_PARAM_WEAK,
- .no_tickets_tls12 = 1
- },
+ .no_tickets_tls12 = 1},
{.name = LEVEL_SECURE128,
.alias = "SECURE",
.cipher_list = &cipher_priority_secure128,
@@ -767,12 +784,11 @@ static const struct priority_groups_st pgroups[] =
.kx_list = &kx_priority_secure,
.sign_list = &sign_priority_secure128,
.group_list = &supported_groups_secure128,
- /* The profile should have been HIGH but if we don't allow
- * SHA-1 (80-bits) as signature algorithm we are not able
- * to connect anywhere with this level */
+ /* The profile should have been HIGH but if we don't allow
+ * SHA-1 (80-bits) as signature algorithm we are not able
+ * to connect anywhere with this level */
.profile = GNUTLS_PROFILE_LOW,
- .sec_param = GNUTLS_SEC_PARAM_LOW
- },
+ .sec_param = GNUTLS_SEC_PARAM_LOW},
{.name = LEVEL_SECURE192,
.alias = LEVEL_SECURE256,
.cipher_list = &cipher_priority_secure192,
@@ -781,8 +797,7 @@ static const struct priority_groups_st pgroups[] =
.sign_list = &sign_priority_secure192,
.group_list = &supported_groups_secure192,
.profile = GNUTLS_PROFILE_HIGH,
- .sec_param = GNUTLS_SEC_PARAM_HIGH
- },
+ .sec_param = GNUTLS_SEC_PARAM_HIGH},
{.name = LEVEL_SUITEB128,
.proto_list = &protocol_priority_suiteb,
.cipher_list = &cipher_priority_suiteb128,
@@ -791,8 +806,7 @@ static const struct priority_groups_st pgroups[] =
.sign_list = &sign_priority_suiteb128,
.group_list = &supported_groups_suiteb128,
.profile = GNUTLS_PROFILE_SUITEB128,
- .sec_param = GNUTLS_SEC_PARAM_HIGH
- },
+ .sec_param = GNUTLS_SEC_PARAM_HIGH},
{.name = LEVEL_SUITEB192,
.proto_list = &protocol_priority_suiteb,
.cipher_list = &cipher_priority_suiteb192,
@@ -801,16 +815,14 @@ static const struct priority_groups_st pgroups[] =
.sign_list = &sign_priority_suiteb192,
.group_list = &supported_groups_suiteb192,
.profile = GNUTLS_PROFILE_SUITEB192,
- .sec_param = GNUTLS_SEC_PARAM_ULTRA
- },
+ .sec_param = GNUTLS_SEC_PARAM_ULTRA},
{.name = LEVEL_LEGACY,
.cipher_list = &cipher_priority_normal,
.mac_list = &mac_priority_normal,
.kx_list = &kx_priority_secure,
.sign_list = &sign_priority_default,
.group_list = &supported_groups_normal,
- .sec_param = GNUTLS_SEC_PARAM_VERY_WEAK
- },
+ .sec_param = GNUTLS_SEC_PARAM_VERY_WEAK},
{.name = LEVEL_PERFORMANCE,
.cipher_list = &cipher_priority_performance,
.mac_list = &mac_priority_normal,
@@ -818,11 +830,10 @@ static const struct priority_groups_st pgroups[] =
.sign_list = &sign_priority_default,
.group_list = &supported_groups_normal,
.profile = GNUTLS_PROFILE_LOW,
- .sec_param = GNUTLS_SEC_PARAM_WEAK
- },
+ .sec_param = GNUTLS_SEC_PARAM_WEAK},
{
.name = NULL,
- }
+ }
};
#define SET_PROFILE(to_set) \
@@ -837,8 +848,7 @@ static const struct priority_groups_st pgroups[] =
priority_cache->level = to_set
static
-int check_level(const char *level, gnutls_priority_t priority_cache,
- int add)
+int check_level(const char *level, gnutls_priority_t priority_cache, int add)
{
bulk_rmadd_func *func;
unsigned profile = 0;
@@ -851,30 +861,40 @@ int check_level(const char *level, gnutls_priority_t priority_cache,
else
func = _set_priority;
- for (i=0;;i++) {
+ for (i = 0;; i++) {
if (pgroups[i].name == NULL)
return 0;
if (c_strcasecmp(level, pgroups[i].name) == 0 ||
- (pgroups[i].alias != NULL && c_strcasecmp(level, pgroups[i].alias) == 0)) {
+ (pgroups[i].alias != NULL
+ && c_strcasecmp(level, pgroups[i].alias) == 0)) {
if (pgroups[i].proto_list != NULL)
- func(&priority_cache->protocol, *pgroups[i].proto_list);
+ func(&priority_cache->protocol,
+ *pgroups[i].proto_list);
func(&priority_cache->_cipher, *pgroups[i].cipher_list);
func(&priority_cache->_kx, *pgroups[i].kx_list);
func(&priority_cache->_mac, *pgroups[i].mac_list);
- func(&priority_cache->_sign_algo, *pgroups[i].sign_list);
- func(&priority_cache->_supported_ecc, *pgroups[i].group_list);
+ func(&priority_cache->_sign_algo,
+ *pgroups[i].sign_list);
+ func(&priority_cache->_supported_ecc,
+ *pgroups[i].group_list);
if (pgroups[i].profile != 0) {
- SET_PROFILE(pgroups[i].profile); /* set certificate level */
+ SET_PROFILE(pgroups[i].profile); /* set certificate level */
}
- SET_LEVEL(pgroups[i].sec_param); /* set DH params level */
+ SET_LEVEL(pgroups[i].sec_param); /* set DH params level */
priority_cache->no_tickets = pgroups[i].no_tickets;
- priority_cache->no_tickets_tls12 = pgroups[i].no_tickets_tls12;
+ priority_cache->no_tickets_tls12 =
+ pgroups[i].no_tickets_tls12;
if (priority_cache->have_cbc == 0) {
- for (j=0;(*pgroups[i].cipher_list)[j]!=0;j++) {
- centry = cipher_to_entry((*pgroups[i].cipher_list)[j]);
- if (centry != NULL && centry->type == CIPHER_BLOCK) {
+ for (j = 0; (*pgroups[i].cipher_list)[j] != 0;
+ j++) {
+ centry =
+ cipher_to_entry((*pgroups
+ [i].cipher_list)
+ [j]);
+ if (centry != NULL
+ && centry->type == CIPHER_BLOCK) {
priority_cache->have_cbc = 1;
break;
}
@@ -889,143 +909,173 @@ static void enable_compat(gnutls_priority_t c)
{
ENABLE_PRIO_COMPAT(c);
}
+
static void enable_server_key_usage_violations(gnutls_priority_t c)
{
c->allow_server_key_usage_violation = 1;
}
+
static void enable_allow_small_records(gnutls_priority_t c)
{
c->_allow_small_records = 1;
}
+
static void enable_dumbfw(gnutls_priority_t c)
{
c->_dumbfw = 1;
}
+
static void enable_no_extensions(gnutls_priority_t c)
{
c->no_extensions = 1;
}
+
static void enable_no_status_request(gnutls_priority_t c)
{
c->no_status_request = 1;
}
+
static void enable_no_ext_master_secret(gnutls_priority_t c)
{
c->_no_ext_master_secret = 1;
}
+
static void enable_no_etm(gnutls_priority_t c)
{
c->_no_etm = 1;
}
+
static void enable_force_etm(gnutls_priority_t c)
{
c->force_etm = 1;
}
+
static void enable_no_tickets(gnutls_priority_t c)
{
c->no_tickets = 1;
}
+
static void enable_no_tickets_tls12(gnutls_priority_t c)
{
c->no_tickets_tls12 = 1;
}
+
static void disable_wildcards(gnutls_priority_t c)
{
c->additional_verify_flags |= GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS;
}
+
static void enable_profile_very_weak(gnutls_priority_t c)
{
ENABLE_PROFILE(c, GNUTLS_PROFILE_VERY_WEAK);
}
+
static void enable_profile_low(gnutls_priority_t c)
{
ENABLE_PROFILE(c, GNUTLS_PROFILE_LOW);
}
+
static void enable_profile_legacy(gnutls_priority_t c)
{
ENABLE_PROFILE(c, GNUTLS_PROFILE_LEGACY);
}
+
static void enable_profile_medium(gnutls_priority_t c)
{
ENABLE_PROFILE(c, GNUTLS_PROFILE_MEDIUM);
}
+
static void enable_profile_high(gnutls_priority_t c)
{
ENABLE_PROFILE(c, GNUTLS_PROFILE_HIGH);
}
+
static void enable_profile_ultra(gnutls_priority_t c)
{
ENABLE_PROFILE(c, GNUTLS_PROFILE_ULTRA);
}
+
static void enable_profile_future(gnutls_priority_t c)
{
ENABLE_PROFILE(c, GNUTLS_PROFILE_FUTURE);
}
+
static void enable_profile_suiteb128(gnutls_priority_t c)
{
ENABLE_PROFILE(c, GNUTLS_PROFILE_SUITEB128);
}
+
static void enable_profile_suiteb192(gnutls_priority_t c)
{
ENABLE_PROFILE(c, GNUTLS_PROFILE_SUITEB128);
}
+
static void enable_safe_renegotiation(gnutls_priority_t c)
{
c->sr = SR_SAFE;
}
+
static void enable_unsafe_renegotiation(gnutls_priority_t c)
{
c->sr = SR_UNSAFE;
}
+
static void enable_partial_safe_renegotiation(gnutls_priority_t c)
{
c->sr = SR_PARTIAL;
}
+
static void disable_safe_renegotiation(gnutls_priority_t c)
{
c->sr = SR_DISABLED;
}
+
static void enable_fallback_scsv(gnutls_priority_t c)
{
c->fallback = 1;
}
+
static void enable_latest_record_version(gnutls_priority_t c)
{
c->min_record_version = 0;
}
+
static void enable_ssl3_record_version(gnutls_priority_t c)
{
c->min_record_version = 1;
}
+
static void enable_verify_allow_rsa_md5(gnutls_priority_t c)
{
- c->additional_verify_flags |=
- GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5;
+ c->additional_verify_flags |= GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5;
}
+
static void enable_verify_allow_sha1(gnutls_priority_t c)
{
- c->additional_verify_flags |=
- GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1;
+ c->additional_verify_flags |= GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1;
}
+
static void enable_verify_allow_broken(gnutls_priority_t c)
{
- c->additional_verify_flags |=
- GNUTLS_VERIFY_ALLOW_BROKEN;
+ c->additional_verify_flags |= GNUTLS_VERIFY_ALLOW_BROKEN;
}
+
static void disable_crl_checks(gnutls_priority_t c)
{
- c->additional_verify_flags |=
- GNUTLS_VERIFY_DISABLE_CRL_CHECKS;
+ c->additional_verify_flags |= GNUTLS_VERIFY_DISABLE_CRL_CHECKS;
}
+
static void enable_server_precedence(gnutls_priority_t c)
{
c->server_precedence = 1;
}
+
static void disable_tls13_compat_mode(gnutls_priority_t c)
{
c->tls13_compat_mode = false;
}
+
static void dummy_func(gnutls_priority_t c)
{
}
@@ -1041,20 +1091,19 @@ struct cfg {
char *default_priority_string;
gnutls_certificate_verification_profiles_t verification_profile;
- gnutls_cipher_algorithm_t ciphers[MAX_ALGOS+1];
- gnutls_mac_algorithm_t macs[MAX_ALGOS+1];
- gnutls_group_t groups[MAX_ALGOS+1];
- gnutls_kx_algorithm_t kxs[MAX_ALGOS+1];
- gnutls_sign_algorithm_t sigs[MAX_ALGOS+1];
- gnutls_protocol_t versions[MAX_ALGOS+1];
+ gnutls_cipher_algorithm_t ciphers[MAX_ALGOS + 1];
+ gnutls_mac_algorithm_t macs[MAX_ALGOS + 1];
+ gnutls_group_t groups[MAX_ALGOS + 1];
+ gnutls_kx_algorithm_t kxs[MAX_ALGOS + 1];
+ gnutls_sign_algorithm_t sigs[MAX_ALGOS + 1];
+ gnutls_protocol_t versions[MAX_ALGOS + 1];
- gnutls_digest_algorithm_t hashes[MAX_ALGOS+1];
- gnutls_ecc_curve_t ecc_curves[MAX_ALGOS+1];
- gnutls_sign_algorithm_t sigs_for_cert[MAX_ALGOS+1];
+ gnutls_digest_algorithm_t hashes[MAX_ALGOS + 1];
+ gnutls_ecc_curve_t ecc_curves[MAX_ALGOS + 1];
+ gnutls_sign_algorithm_t sigs_for_cert[MAX_ALGOS + 1];
};
-static inline void
-cfg_deinit(struct cfg *cfg)
+static inline void cfg_deinit(struct cfg *cfg)
{
if (cfg->priority_strings) {
_name_val_array_clear(&cfg->priority_strings);
@@ -1090,7 +1139,8 @@ static void _clear_default_system_priority(void)
_gnutls_default_priority_string = DEFAULT_PRIORITY_STRING;
}
-gnutls_certificate_verification_profiles_t _gnutls_get_system_wide_verification_profile(void)
+gnutls_certificate_verification_profiles_t
+_gnutls_get_system_wide_verification_profile(void)
{
return system_wide_config.verification_profile;
}
@@ -1108,7 +1158,7 @@ static char *clear_spaces(const char *str, char out[MAX_ALGO_NAME])
out[i++] = *p;
p++;
- if (i >= MAX_ALGO_NAME-1)
+ if (i >= MAX_ALGO_NAME - 1)
break;
}
out[i] = 0;
@@ -1130,8 +1180,7 @@ struct ini_ctx {
size_t curves_size;
};
-static inline void
-ini_ctx_deinit(struct ini_ctx *ctx)
+static inline void ini_ctx_deinit(struct ini_ctx *ctx)
{
cfg_deinit(&ctx->cfg);
gnutls_free(ctx->hashes);
@@ -1141,8 +1190,7 @@ ini_ctx_deinit(struct ini_ctx *ctx)
gnutls_free(ctx->curves);
}
-static inline void
-cfg_steal(struct cfg *dst, struct cfg *src)
+static inline void cfg_steal(struct cfg *dst, struct cfg *src)
{
dst->verification_profile = src->verification_profile;
@@ -1173,8 +1221,7 @@ cfg_steal(struct cfg *dst, struct cfg *src)
*/
/* global side-effect! modifies `flags` in `hash_algorithms[]` */
-static inline int /* allowlisting-only */
-_cfg_hashes_remark(struct cfg* cfg)
+static inline int /* allowlisting-only */ _cfg_hashes_remark(struct cfg *cfg)
{
size_t i;
_gnutls_digest_mark_insecure_all();
@@ -1188,21 +1235,20 @@ _cfg_hashes_remark(struct cfg* cfg)
}
/* global side-effect! modifies `flags` in `sign_algorithms[]` */
-static inline int /* allowlisting-only */
-_cfg_sigs_remark(struct cfg* cfg)
+static inline int /* allowlisting-only */ _cfg_sigs_remark(struct cfg *cfg)
{
size_t i;
_gnutls_sign_mark_insecure_all(_INSECURE);
for (i = 0; cfg->sigs[i] != 0; i++) {
int ret = _gnutls_sign_set_secure(cfg->sigs[i],
- _INSECURE_FOR_CERTS);
+ _INSECURE_FOR_CERTS);
if (unlikely(ret < 0)) {
return gnutls_assert_val(ret);
}
}
for (i = 0; cfg->sigs_for_cert[i] != 0; i++) {
int ret = _gnutls_sign_set_secure(cfg->sigs_for_cert[i],
- _SECURE);
+ _SECURE);
if (unlikely(ret < 0)) {
return gnutls_assert_val(ret);
}
@@ -1211,8 +1257,7 @@ _cfg_sigs_remark(struct cfg* cfg)
}
/* global side-effect! modifies `supported` in `sup_versions[]` */
-static inline int /* allowlisting-only */
-_cfg_versions_remark(struct cfg* cfg)
+static inline int /* allowlisting-only */ _cfg_versions_remark(struct cfg *cfg)
{
size_t i;
_gnutls_version_mark_disabled_all();
@@ -1226,8 +1271,8 @@ _cfg_versions_remark(struct cfg* cfg)
}
/* global side-effect! modifies `supported` in `ecc_curves[]` */
-static inline int /* allowlisting-only */
-_cfg_ecc_curves_remark(struct cfg* cfg)
+static inline int /* allowlisting-only */ _cfg_ecc_curves_remark(struct cfg
+ *cfg)
{
size_t i;
_gnutls_ecc_curve_mark_disabled_all();
@@ -1244,9 +1289,10 @@ _cfg_ecc_curves_remark(struct cfg* cfg)
* setting arrays of struct cfg: from other arrays
*/
-static inline int /* allowlisting-only */
-cfg_hashes_set_array(struct cfg* cfg,
- gnutls_digest_algorithm_t* src, size_t len)
+static inline int /* allowlisting-only */ cfg_hashes_set_array(struct cfg *cfg,
+ gnutls_digest_algorithm_t
+ * src,
+ size_t len)
{
if (unlikely(len >= MAX_ALGOS)) {
return gnutls_assert_val(GNUTLS_A_INTERNAL_ERROR);
@@ -1259,10 +1305,13 @@ cfg_hashes_set_array(struct cfg* cfg,
return _cfg_hashes_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_sigs_set_arrays(struct cfg* cfg,
- gnutls_sign_algorithm_t* src, size_t len,
- gnutls_sign_algorithm_t* src_for_cert, size_t len_for_cert)
+static inline int /* allowlisting-only */ cfg_sigs_set_arrays(struct cfg *cfg,
+ gnutls_sign_algorithm_t
+ * src, size_t len,
+ gnutls_sign_algorithm_t
+ * src_for_cert,
+ size_t
+ len_for_cert)
{
if (unlikely(len >= MAX_ALGOS)) {
return gnutls_assert_val(GNUTLS_A_INTERNAL_ERROR);
@@ -1282,8 +1331,11 @@ cfg_sigs_set_arrays(struct cfg* cfg,
return _cfg_sigs_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_versions_set_array(struct cfg* cfg, gnutls_protocol_t* src, size_t len)
+static inline int /* allowlisting-only */ cfg_versions_set_array(struct cfg
+ *cfg,
+ gnutls_protocol_t
+ * src,
+ size_t len)
{
if (unlikely(len >= MAX_ALGOS)) {
return gnutls_assert_val(GNUTLS_A_INTERNAL_ERROR);
@@ -1295,8 +1347,11 @@ cfg_versions_set_array(struct cfg* cfg, gnutls_protocol_t* src, size_t len)
return _cfg_versions_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_ecc_curves_set_array(struct cfg* cfg, gnutls_ecc_curve_t* src, size_t len)
+static inline int /* allowlisting-only */ cfg_ecc_curves_set_array(struct cfg
+ *cfg,
+ gnutls_ecc_curve_t
+ * src,
+ size_t len)
{
if (unlikely(len >= MAX_ALGOS)) {
return gnutls_assert_val(GNUTLS_A_INTERNAL_ERROR);
@@ -1333,49 +1388,54 @@ cfg_ecc_curves_set_array(struct cfg* cfg, gnutls_ecc_curve_t* src, size_t len)
dst[i + 1] = 0; \
} while (0)
-static inline int /* allowlisting-only */
-cfg_hashes_add(struct cfg *cfg, gnutls_digest_algorithm_t dig)
+static inline int /* allowlisting-only */ cfg_hashes_add(struct cfg *cfg,
+ gnutls_digest_algorithm_t
+ dig)
{
_gnutls_debug_log("cfg: enabling digest algorithm %s\n",
- gnutls_digest_get_name(dig));
+ gnutls_digest_get_name(dig));
APPEND_TO_NULL_TERMINATED_ARRAY(cfg->hashes, dig);
return _cfg_hashes_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_sigs_add(struct cfg *cfg, gnutls_sign_algorithm_t sig)
+static inline int /* allowlisting-only */ cfg_sigs_add(struct cfg *cfg,
+ gnutls_sign_algorithm_t
+ sig)
{
_gnutls_debug_log("cfg: enabling signature algorithm "
- "(for non-certificate usage) "
- "%s\n", gnutls_sign_get_name(sig));
+ "(for non-certificate usage) "
+ "%s\n", gnutls_sign_get_name(sig));
APPEND_TO_NULL_TERMINATED_ARRAY(cfg->sigs, sig);
return _cfg_sigs_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_sigs_for_cert_add(struct cfg *cfg, gnutls_sign_algorithm_t sig)
+static inline int /* allowlisting-only */ cfg_sigs_for_cert_add(struct cfg *cfg,
+ gnutls_sign_algorithm_t
+ sig)
{
_gnutls_debug_log("cfg: enabling signature algorithm"
- "(for certificate usage) "
- "%s\n", gnutls_sign_get_name(sig));
+ "(for certificate usage) "
+ "%s\n", gnutls_sign_get_name(sig));
APPEND_TO_NULL_TERMINATED_ARRAY(cfg->sigs_for_cert, sig);
return _cfg_sigs_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_versions_add(struct cfg *cfg, gnutls_protocol_t prot)
+static inline int /* allowlisting-only */ cfg_versions_add(struct cfg *cfg,
+ gnutls_protocol_t
+ prot)
{
_gnutls_debug_log("cfg: enabling version %s\n",
- gnutls_protocol_get_name(prot));
+ gnutls_protocol_get_name(prot));
APPEND_TO_NULL_TERMINATED_ARRAY(cfg->versions, prot);
return _cfg_versions_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_ecc_curves_add(struct cfg *cfg, gnutls_ecc_curve_t curve)
+static inline int /* allowlisting-only */ cfg_ecc_curves_add(struct cfg *cfg,
+ gnutls_ecc_curve_t
+ curve)
{
_gnutls_debug_log("cfg: enabling curve %s\n",
- gnutls_ecc_curve_get_name(curve));
+ gnutls_ecc_curve_get_name(curve));
APPEND_TO_NULL_TERMINATED_ARRAY(cfg->ecc_curves, curve);
return _cfg_ecc_curves_remark(cfg);
}
@@ -1399,55 +1459,60 @@ cfg_ecc_curves_add(struct cfg *cfg, gnutls_ecc_curve_t curve)
} \
} while (0)
-static inline int /* allowlisting-only */
-cfg_hashes_remove(struct cfg *cfg, gnutls_digest_algorithm_t dig)
+static inline int /* allowlisting-only */ cfg_hashes_remove(struct cfg *cfg,
+ gnutls_digest_algorithm_t
+ dig)
{
_gnutls_debug_log("cfg: disabling digest algorithm %s\n",
- gnutls_digest_get_name(dig));
+ gnutls_digest_get_name(dig));
REMOVE_FROM_NULL_TERMINATED_ARRAY(cfg->hashes, dig);
return _cfg_hashes_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_sigs_remove(struct cfg *cfg, gnutls_sign_algorithm_t sig)
+static inline int /* allowlisting-only */ cfg_sigs_remove(struct cfg *cfg,
+ gnutls_sign_algorithm_t
+ sig)
{
_gnutls_debug_log("cfg: disabling signature algorithm "
- "(for non-certificate usage) "
- "%s\n", gnutls_sign_get_name(sig));
+ "(for non-certificate usage) "
+ "%s\n", gnutls_sign_get_name(sig));
REMOVE_FROM_NULL_TERMINATED_ARRAY(cfg->sigs, sig);
return _cfg_sigs_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_sigs_for_cert_remove(struct cfg *cfg, gnutls_sign_algorithm_t sig)
+static inline int /* allowlisting-only */ cfg_sigs_for_cert_remove(struct cfg
+ *cfg,
+ gnutls_sign_algorithm_t
+ sig)
{
_gnutls_debug_log("cfg: disabling signature algorithm"
- "(for certificate usage) "
- "%s\n", gnutls_sign_get_name(sig));
+ "(for certificate usage) "
+ "%s\n", gnutls_sign_get_name(sig));
REMOVE_FROM_NULL_TERMINATED_ARRAY(cfg->sigs_for_cert, sig);
return _cfg_sigs_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_versions_remove(struct cfg *cfg, gnutls_protocol_t prot)
+static inline int /* allowlisting-only */ cfg_versions_remove(struct cfg *cfg,
+ gnutls_protocol_t
+ prot)
{
_gnutls_debug_log("cfg: disabling version %s\n",
- gnutls_protocol_get_name(prot));
+ gnutls_protocol_get_name(prot));
REMOVE_FROM_NULL_TERMINATED_ARRAY(cfg->versions, prot);
return _cfg_versions_remark(cfg);
}
-static inline int /* allowlisting-only */
-cfg_ecc_curves_remove(struct cfg *cfg, gnutls_ecc_curve_t curve)
+static inline int /* allowlisting-only */ cfg_ecc_curves_remove(struct cfg *cfg,
+ gnutls_ecc_curve_t
+ curve)
{
_gnutls_debug_log("cfg: disabling curve %s\n",
- gnutls_ecc_curve_get_name(curve));
+ gnutls_ecc_curve_get_name(curve));
REMOVE_FROM_NULL_TERMINATED_ARRAY(cfg->ecc_curves, curve);
return _cfg_ecc_curves_remark(cfg);
}
-static inline int
-cfg_apply(struct cfg *cfg, struct ini_ctx *ctx)
+static inline int cfg_apply(struct cfg *cfg, struct ini_ctx *ctx)
{
size_t i;
int ret;
@@ -1495,13 +1560,15 @@ cfg_apply(struct cfg *cfg, struct ini_ctx *ctx)
}
for (i = 0; i < ctx->sigs_size; i++) {
ret = _gnutls_sign_mark_insecure(ctx->sigs[i],
- _INSECURE);
+ _INSECURE);
if (unlikely(ret < 0)) {
return ret;
}
}
for (i = 0; i < ctx->sigs_for_cert_size; i++) {
- ret = _gnutls_sign_mark_insecure(ctx->sigs_for_cert[i], _INSECURE_FOR_CERTS);
+ ret =
+ _gnutls_sign_mark_insecure(ctx->sigs_for_cert[i],
+ _INSECURE_FOR_CERTS);
if (unlikely(ret < 0)) {
return ret;
}
@@ -1525,7 +1592,8 @@ cfg_apply(struct cfg *cfg, struct ini_ctx *ctx)
/* This function parses the global section of the configuration file.
*/
-static int global_ini_handler(void *ctx, const char *section, const char *name, const char *value)
+static int global_ini_handler(void *ctx, const char *section, const char *name,
+ const char *value)
{
char *p;
char str[MAX_ALGO_NAME];
@@ -1539,8 +1607,8 @@ static int global_ini_handler(void *ctx, const char *section, const char *name,
} else if (c_strcasecmp(p, "blocklist") == 0) {
cfg->allowlisting = false;
} else {
- _gnutls_debug_log("cfg: unknown override mode %s\n",
- p);
+ _gnutls_debug_log
+ ("cfg: unknown override mode %s\n", p);
if (fail_on_invalid_config)
return 0;
}
@@ -1552,7 +1620,7 @@ static int global_ini_handler(void *ctx, const char *section, const char *name,
cfg->ktls_enabled = false;
} else {
_gnutls_debug_log("cfg: unknown ktls mode %s\n",
- p);
+ p);
if (fail_on_invalid_config)
return 0;
}
@@ -1566,22 +1634,21 @@ static int global_ini_handler(void *ctx, const char *section, const char *name,
return 1;
}
-static bool
-override_allowed(bool allowlisting, const char *name)
+static bool override_allowed(bool allowlisting, const char *name)
{
static const struct {
const char *allowlist_name;
const char *blocklist_name;
} names[] = {
- { "secure-hash", "insecure-hash" },
- { "secure-sig", "insecure-sig" },
- { "secure-sig-for-cert", "insecure-sig-for-cert" },
- { "enabled-version", "disabled-version" },
- { "enabled-curve", "disabled-curve" },
- { "tls-enabled-cipher", "tls-disabled-cipher" },
- { "tls-enabled-group", "tls-disabled-group" },
- { "tls-enabled-kx", "tls-disabled-kx" },
- { "tls-enabled-mac", "tls-disabled-mac" }
+ {"secure-hash", "insecure-hash"},
+ {"secure-sig", "insecure-sig"},
+ {"secure-sig-for-cert", "insecure-sig-for-cert"},
+ {"enabled-version", "disabled-version"},
+ {"enabled-curve", "disabled-curve"},
+ {"tls-enabled-cipher", "tls-disabled-cipher"},
+ {"tls-enabled-group", "tls-disabled-group"},
+ {"tls-enabled-kx", "tls-disabled-kx"},
+ {"tls-enabled-mac", "tls-disabled-mac"}
};
size_t i;
@@ -1599,7 +1666,8 @@ override_allowed(bool allowlisting, const char *name)
/* This function parses a gnutls configuration file. Updating internal settings
* according to the parsed configuration is done by cfg_apply.
*/
-static int cfg_ini_handler(void *_ctx, const char *section, const char *name, const char *value)
+static int cfg_ini_handler(void *_ctx, const char *section, const char *name,
+ const char *value)
{
char *p;
int ret;
@@ -1612,33 +1680,39 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
* not use that value after we handle it. */
/* Parse sections */
- if (section == NULL || section[0] == 0 || c_strcasecmp(section, CUSTOM_PRIORITY_SECTION)==0) {
- _gnutls_debug_log("cfg: adding priority: %s -> %s\n", name, value);
+ if (section == NULL || section[0] == 0
+ || c_strcasecmp(section, CUSTOM_PRIORITY_SECTION) == 0) {
+ _gnutls_debug_log("cfg: adding priority: %s -> %s\n", name,
+ value);
- ret = _name_val_array_append(&cfg->priority_strings, name, value);
+ ret =
+ _name_val_array_append(&cfg->priority_strings, name, value);
if (ret < 0)
return 0;
- } else if (c_strcasecmp(section, OVERRIDES_SECTION)==0) {
+ } else if (c_strcasecmp(section, OVERRIDES_SECTION) == 0) {
if (!override_allowed(cfg->allowlisting, name)) {
- _gnutls_debug_log("cfg: %s is not allowed in this mode\n",
- name);
+ _gnutls_debug_log
+ ("cfg: %s is not allowed in this mode\n", name);
if (fail_on_invalid_config)
return 0;
- } else if (c_strcasecmp(name, "default-priority-string")==0) {
+ } else if (c_strcasecmp(name, "default-priority-string") == 0) {
if (cfg->default_priority_string) {
gnutls_free(cfg->default_priority_string);
cfg->default_priority_string = NULL;
}
p = clear_spaces(value, str);
- _gnutls_debug_log("cfg: setting default-priority-string to %s\n", p);
+ _gnutls_debug_log
+ ("cfg: setting default-priority-string to %s\n", p);
if (strlen(p) > 0) {
cfg->default_priority_string = gnutls_strdup(p);
if (!cfg->default_priority_string) {
- _gnutls_debug_log("cfg: failed setting default-priority-string\n");
+ _gnutls_debug_log
+ ("cfg: failed setting default-priority-string\n");
return 0;
}
} else {
- _gnutls_debug_log("cfg: empty default-priority-string, using default\n");
+ _gnutls_debug_log
+ ("cfg: empty default-priority-string, using default\n");
if (fail_on_invalid_config)
return 0;
}
@@ -1649,31 +1723,35 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
p = clear_spaces(value, str);
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: marking hash %s as secure\n",
- p);
+ _gnutls_debug_log
+ ("cfg: marking hash %s as secure\n", p);
} else {
- _gnutls_debug_log("cfg: marking hash %s as insecure\n",
- p);
+ _gnutls_debug_log
+ ("cfg: marking hash %s as insecure\n", p);
}
dig = gnutls_digest_get_id(p);
if (dig == GNUTLS_DIG_UNKNOWN) {
- _gnutls_debug_log("cfg: found unknown hash %s in %s\n",
- p, name);
+ _gnutls_debug_log
+ ("cfg: found unknown hash %s in %s\n", p,
+ name);
if (fail_on_invalid_config)
return 0;
goto exit;
}
tmp = _gnutls_reallocarray(ctx->hashes,
ctx->hashes_size + 1,
- sizeof(gnutls_digest_algorithm_t));
+ sizeof
+ (gnutls_digest_algorithm_t));
if (!tmp) {
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: failed marking hash %s as secure\n",
- p);
+ _gnutls_debug_log
+ ("cfg: failed marking hash %s as secure\n",
+ p);
} else {
- _gnutls_debug_log("cfg: failed marking hash %s as insecure\n",
- p);
+ _gnutls_debug_log
+ ("cfg: failed marking hash %s as insecure\n",
+ p);
}
if (fail_on_invalid_config)
return 0;
@@ -1690,31 +1768,37 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
p = clear_spaces(value, str);
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: marking signature %s as secure\n",
- p);
+ _gnutls_debug_log
+ ("cfg: marking signature %s as secure\n",
+ p);
} else {
- _gnutls_debug_log("cfg: marking signature %s as insecure\n",
- p);
+ _gnutls_debug_log
+ ("cfg: marking signature %s as insecure\n",
+ p);
}
sig = gnutls_sign_get_id(p);
if (sig == GNUTLS_SIGN_UNKNOWN) {
- _gnutls_debug_log("cfg: found unknown signature algorithm %s in %s\n",
- p, name);
+ _gnutls_debug_log
+ ("cfg: found unknown signature algorithm %s in %s\n",
+ p, name);
if (fail_on_invalid_config)
return 0;
goto exit;
}
tmp = _gnutls_reallocarray(ctx->sigs,
ctx->sigs_size + 1,
- sizeof(gnutls_sign_algorithm_t));
+ sizeof
+ (gnutls_sign_algorithm_t));
if (!tmp) {
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: failed marking signature %s as secure\n",
- p);
+ _gnutls_debug_log
+ ("cfg: failed marking signature %s as secure\n",
+ p);
} else {
- _gnutls_debug_log("cfg: failed marking signature %s as insecure\n",
- p);
+ _gnutls_debug_log
+ ("cfg: failed marking signature %s as insecure\n",
+ p);
}
if (fail_on_invalid_config)
return 0;
@@ -1731,31 +1815,37 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
p = clear_spaces(value, str);
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: marking signature %s as secure for certs\n",
- p);
+ _gnutls_debug_log
+ ("cfg: marking signature %s as secure for certs\n",
+ p);
} else {
- _gnutls_debug_log("cfg: marking signature %s as insecure for certs\n",
- p);
+ _gnutls_debug_log
+ ("cfg: marking signature %s as insecure for certs\n",
+ p);
}
sig = gnutls_sign_get_id(p);
if (sig == GNUTLS_SIGN_UNKNOWN) {
- _gnutls_debug_log("cfg: found unknown signature algorithm %s in %s\n",
- p, name);
+ _gnutls_debug_log
+ ("cfg: found unknown signature algorithm %s in %s\n",
+ p, name);
if (fail_on_invalid_config)
return 0;
goto exit;
}
tmp = _gnutls_reallocarray(ctx->sigs_for_cert,
ctx->sigs_for_cert_size + 1,
- sizeof(gnutls_sign_algorithm_t));
+ sizeof
+ (gnutls_sign_algorithm_t));
if (!tmp) {
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: failed marking signature %s as secure for certs\n",
- p);
+ _gnutls_debug_log
+ ("cfg: failed marking signature %s as secure for certs\n",
+ p);
} else {
- _gnutls_debug_log("cfg: failed marking signature %s as insecure for certs\n",
- p);
+ _gnutls_debug_log
+ ("cfg: failed marking signature %s as insecure for certs\n",
+ p);
}
if (fail_on_invalid_config)
return 0;
@@ -1781,8 +1871,9 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
prot = gnutls_protocol_get_id(p);
if (prot == GNUTLS_VERSION_UNKNOWN) {
- _gnutls_debug_log("cfg: found unknown version %s in %s\n",
- p, name);
+ _gnutls_debug_log
+ ("cfg: found unknown version %s in %s\n", p,
+ name);
if (fail_on_invalid_config)
return 0;
goto exit;
@@ -1792,11 +1883,13 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
sizeof(gnutls_protocol_t));
if (!tmp) {
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: failed enabling version %s\n",
- p);
+ _gnutls_debug_log
+ ("cfg: failed enabling version %s\n",
+ p);
} else {
- _gnutls_debug_log("cfg: failed disabling version %s\n",
- p);
+ _gnutls_debug_log
+ ("cfg: failed disabling version %s\n",
+ p);
}
if (fail_on_invalid_config)
return 0;
@@ -1822,8 +1915,9 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
curve = gnutls_ecc_curve_get_id(p);
if (curve == GNUTLS_ECC_CURVE_INVALID) {
- _gnutls_debug_log("cfg: found unknown curve %s in %s\n",
- p, name);
+ _gnutls_debug_log
+ ("cfg: found unknown curve %s in %s\n", p,
+ name);
if (fail_on_invalid_config)
return 0;
goto exit;
@@ -1833,11 +1927,13 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
sizeof(gnutls_ecc_curve_t));
if (!tmp) {
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: failed enabling curve %s\n",
- p);
+ _gnutls_debug_log
+ ("cfg: failed enabling curve %s\n",
+ p);
} else {
- _gnutls_debug_log("cfg: failed disabling curve %s\n",
- p);
+ _gnutls_debug_log
+ ("cfg: failed disabling curve %s\n",
+ p);
}
if (fail_on_invalid_config)
return 0;
@@ -1847,13 +1943,16 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
ctx->curves = tmp;
ctx->curves[ctx->curves_size] = curve;
ctx->curves_size++;
- } else if (c_strcasecmp(name, "min-verification-profile")==0) {
+ } else if (c_strcasecmp(name, "min-verification-profile") == 0) {
gnutls_certificate_verification_profiles_t profile;
- profile = gnutls_certificate_verification_profile_get_id(value);
+ profile =
+ gnutls_certificate_verification_profile_get_id
+ (value);
if (profile == GNUTLS_PROFILE_UNKNOWN) {
- _gnutls_debug_log("cfg: found unknown profile %s in %s\n",
- value, name);
+ _gnutls_debug_log
+ ("cfg: found unknown profile %s in %s\n",
+ value, name);
if (fail_on_invalid_config)
return 0;
goto exit;
@@ -1867,17 +1966,18 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
p = clear_spaces(value, str);
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: enabling cipher %s for TLS\n",
- p);
+ _gnutls_debug_log
+ ("cfg: enabling cipher %s for TLS\n", p);
} else {
- _gnutls_debug_log("cfg: disabling cipher %s for TLS\n",
- p);
+ _gnutls_debug_log
+ ("cfg: disabling cipher %s for TLS\n", p);
}
algo = gnutls_cipher_get_id(p);
if (algo == GNUTLS_CIPHER_UNKNOWN) {
- _gnutls_debug_log("cfg: unknown algorithm %s listed at %s\n",
- p, name);
+ _gnutls_debug_log
+ ("cfg: unknown algorithm %s listed at %s\n",
+ p, name);
if (fail_on_invalid_config)
return 0;
goto exit;
@@ -1887,20 +1987,22 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
while (cfg->ciphers[i] != 0)
i++;
- if (i > MAX_ALGOS-1) {
+ if (i > MAX_ALGOS - 1) {
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: too many (%d) enabled ciphers from %s\n",
- i, name);
+ _gnutls_debug_log
+ ("cfg: too many (%d) enabled ciphers from %s\n",
+ i, name);
} else {
- _gnutls_debug_log("cfg: too many (%d) disabled ciphers from %s\n",
- i, name);
+ _gnutls_debug_log
+ ("cfg: too many (%d) disabled ciphers from %s\n",
+ i, name);
}
if (fail_on_invalid_config)
return 0;
goto exit;
}
cfg->ciphers[i] = algo;
- cfg->ciphers[i+1] = 0;
+ cfg->ciphers[i + 1] = 0;
} else if (c_strcasecmp(name, "tls-disabled-mac") == 0 ||
c_strcasecmp(name, "tls-enabled-mac") == 0) {
@@ -1909,17 +2011,18 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
p = clear_spaces(value, str);
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: enabling MAC %s for TLS\n",
- p);
+ _gnutls_debug_log
+ ("cfg: enabling MAC %s for TLS\n", p);
} else {
- _gnutls_debug_log("cfg: disabling MAC %s for TLS\n",
- p);
+ _gnutls_debug_log
+ ("cfg: disabling MAC %s for TLS\n", p);
}
algo = gnutls_mac_get_id(p);
if (algo == 0) {
- _gnutls_debug_log("cfg: unknown algorithm %s listed at %s\n",
- p, name);
+ _gnutls_debug_log
+ ("cfg: unknown algorithm %s listed at %s\n",
+ p, name);
if (fail_on_invalid_config)
return 0;
goto exit;
@@ -1929,20 +2032,22 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
while (cfg->macs[i] != 0)
i++;
- if (i > MAX_ALGOS-1) {
+ if (i > MAX_ALGOS - 1) {
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: too many (%d) enabled MACs from %s\n",
- i, name);
+ _gnutls_debug_log
+ ("cfg: too many (%d) enabled MACs from %s\n",
+ i, name);
} else {
- _gnutls_debug_log("cfg: too many (%d) disabled MACs from %s\n",
- i, name);
+ _gnutls_debug_log
+ ("cfg: too many (%d) disabled MACs from %s\n",
+ i, name);
}
if (fail_on_invalid_config)
return 0;
goto exit;
}
cfg->macs[i] = algo;
- cfg->macs[i+1] = 0;
+ cfg->macs[i + 1] = 0;
} else if (c_strcasecmp(name, "tls-disabled-group") == 0 ||
c_strcasecmp(name, "tls-enabled-group") == 0) {
gnutls_group_t algo;
@@ -1953,17 +2058,18 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
p += 6;
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: enabling group %s for TLS\n",
- p);
+ _gnutls_debug_log
+ ("cfg: enabling group %s for TLS\n", p);
} else {
- _gnutls_debug_log("cfg: disabling group %s for TLS\n",
- p);
+ _gnutls_debug_log
+ ("cfg: disabling group %s for TLS\n", p);
}
algo = _gnutls_group_get_id(p);
if (algo == 0) {
- _gnutls_debug_log("cfg: unknown group %s listed at %s\n",
- p, name);
+ _gnutls_debug_log
+ ("cfg: unknown group %s listed at %s\n", p,
+ name);
if (fail_on_invalid_config)
return 0;
goto exit;
@@ -1973,20 +2079,22 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
while (cfg->groups[i] != 0)
i++;
- if (i > MAX_ALGOS-1) {
+ if (i > MAX_ALGOS - 1) {
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: too many (%d) enabled groups from %s\n",
- i, name);
+ _gnutls_debug_log
+ ("cfg: too many (%d) enabled groups from %s\n",
+ i, name);
} else {
- _gnutls_debug_log("cfg: too many (%d) disabled groups from %s\n",
- i, name);
+ _gnutls_debug_log
+ ("cfg: too many (%d) disabled groups from %s\n",
+ i, name);
}
if (fail_on_invalid_config)
return 0;
goto exit;
}
cfg->groups[i] = algo;
- cfg->groups[i+1] = 0;
+ cfg->groups[i + 1] = 0;
} else if (c_strcasecmp(name, "tls-disabled-kx") == 0 ||
c_strcasecmp(name, "tls-enabled-kx") == 0) {
unsigned algo;
@@ -1994,17 +2102,20 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
p = clear_spaces(value, str);
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: enabling key exchange %s for TLS\n",
- p);
+ _gnutls_debug_log
+ ("cfg: enabling key exchange %s for TLS\n",
+ p);
} else {
- _gnutls_debug_log("cfg: disabling key exchange %s for TLS\n",
- p);
+ _gnutls_debug_log
+ ("cfg: disabling key exchange %s for TLS\n",
+ p);
}
algo = gnutls_kx_get_id(p);
if (algo == 0) {
- _gnutls_debug_log("cfg: unknown key exchange %s listed at %s\n",
- p, name);
+ _gnutls_debug_log
+ ("cfg: unknown key exchange %s listed at %s\n",
+ p, name);
if (fail_on_invalid_config)
return 0;
goto exit;
@@ -2014,28 +2125,29 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
while (cfg->kxs[i] != 0)
i++;
- if (i > MAX_ALGOS-1) {
+ if (i > MAX_ALGOS - 1) {
if (cfg->allowlisting) {
- _gnutls_debug_log("cfg: too many (%d) enabled key exchanges from %s\n",
- i, name);
+ _gnutls_debug_log
+ ("cfg: too many (%d) enabled key exchanges from %s\n",
+ i, name);
} else {
- _gnutls_debug_log("cfg: too many (%d) disabled key exchanges from %s\n",
- i, name);
+ _gnutls_debug_log
+ ("cfg: too many (%d) disabled key exchanges from %s\n",
+ i, name);
}
if (fail_on_invalid_config)
return 0;
goto exit;
}
cfg->kxs[i] = algo;
- cfg->kxs[i+1] = 0;
+ cfg->kxs[i + 1] = 0;
} else {
_gnutls_debug_log("unknown parameter %s\n", name);
if (fail_on_invalid_config)
return 0;
}
} else if (c_strcasecmp(section, GLOBAL_SECTION) != 0) {
- _gnutls_debug_log("cfg: unknown section %s\n",
- section);
+ _gnutls_debug_log("cfg: unknown section %s\n", section);
if (fail_on_invalid_config)
return 0;
}
@@ -2045,7 +2157,7 @@ static int cfg_ini_handler(void *_ctx, const char *section, const char *name, co
}
static int /* not locking system_wide_config */
-construct_system_wide_priority_string(gnutls_buffer_st* buf)
+construct_system_wide_priority_string(gnutls_buffer_st * buf)
{
int ret;
size_t i;
@@ -2066,7 +2178,8 @@ construct_system_wide_priority_string(gnutls_buffer_st* buf)
}
ret = _gnutls_buffer_append_str(buf,
- gnutls_kx_get_name(system_wide_config.kxs[i]));
+ gnutls_kx_get_name
+ (system_wide_config.kxs[i]));
if (ret < 0) {
_gnutls_buffer_clear(buf);
return ret;
@@ -2081,7 +2194,8 @@ construct_system_wide_priority_string(gnutls_buffer_st* buf)
}
ret = _gnutls_buffer_append_str(buf,
- gnutls_group_get_name(system_wide_config.groups[i]));
+ gnutls_group_get_name
+ (system_wide_config.groups[i]));
if (ret < 0) {
_gnutls_buffer_clear(buf);
return ret;
@@ -2096,7 +2210,9 @@ construct_system_wide_priority_string(gnutls_buffer_st* buf)
}
ret = _gnutls_buffer_append_str(buf,
- gnutls_cipher_get_name(system_wide_config.ciphers[i]));
+ gnutls_cipher_get_name
+ (system_wide_config.ciphers
+ [i]));
if (ret < 0) {
_gnutls_buffer_clear(buf);
return ret;
@@ -2111,7 +2227,8 @@ construct_system_wide_priority_string(gnutls_buffer_st* buf)
}
ret = _gnutls_buffer_append_str(buf,
- gnutls_mac_get_name(system_wide_config.macs[i]));
+ gnutls_mac_get_name
+ (system_wide_config.macs[i]));
if (ret < 0) {
_gnutls_buffer_clear(buf);
return ret;
@@ -2126,7 +2243,8 @@ construct_system_wide_priority_string(gnutls_buffer_st* buf)
}
ret = _gnutls_buffer_append_str(buf,
- gnutls_sign_get_name(system_wide_config.sigs[i]));
+ gnutls_sign_get_name
+ (system_wide_config.sigs[i]));
if (ret < 0) {
_gnutls_buffer_clear(buf);
return ret;
@@ -2141,7 +2259,9 @@ construct_system_wide_priority_string(gnutls_buffer_st* buf)
}
ret = _gnutls_buffer_append_str(buf,
- gnutls_protocol_get_name(system_wide_config.versions[i]));
+ gnutls_protocol_get_name
+ (system_wide_config.versions
+ [i]));
if (ret < 0) {
_gnutls_buffer_clear(buf);
return ret;
@@ -2197,7 +2317,7 @@ static int _gnutls_update_system_priorities(bool defer_system_wide)
_gnutls_debug_log("cfg: system priority %s has not changed\n",
system_priority_file);
if (system_wide_config.priority_string) {
- goto out; /* nothing to do */
+ goto out; /* nothing to do */
}
}
@@ -2213,7 +2333,7 @@ static int _gnutls_update_system_priorities(bool defer_system_wide)
*/
if (system_priority_file_loaded) {
system_priority_file_loaded =
- (system_priority_last_mod == sb.st_mtime);
+ (system_priority_last_mod == sb.st_mtime);
}
if (!system_priority_file_loaded) {
@@ -2274,8 +2394,9 @@ static int _gnutls_update_system_priorities(bool defer_system_wide)
"system-wide priority string\n");
}
if (ret < 0) {
- _gnutls_debug_log("cfg: unable to build priority string: %s\n",
- gnutls_strerror(ret));
+ _gnutls_debug_log
+ ("cfg: unable to build priority string: %s\n",
+ gnutls_strerror(ret));
if (fail_on_invalid_config)
exit(1);
goto out;
@@ -2308,7 +2429,7 @@ void _gnutls_prepare_to_load_system_priorities(void)
if (p != NULL && p[0] == '1' && p[1] == 0)
fail_on_invalid_config = 1;
- ret = _gnutls_update_system_priorities(true /* defer_system_wide */);
+ ret = _gnutls_update_system_priorities(true /* defer_system_wide */ );
if (ret < 0) {
_gnutls_debug_log("failed to update system priorities: %s\n",
gnutls_strerror(ret));
@@ -2347,7 +2468,7 @@ const char *gnutls_get_system_config_file(void)
*
* The returned string must be released using gnutls_free().
*/
-char *_gnutls_resolve_priorities(const char* priorities)
+char *_gnutls_resolve_priorities(const char *priorities)
{
const char *p = priorities;
char *additional = NULL;
@@ -2366,7 +2487,7 @@ char *_gnutls_resolve_priorities(const char* priorities)
return gnutls_strdup(p);
}
- ss = p+1;
+ ss = p + 1;
additional = strchr(ss, ':');
if (additional) {
additional++;
@@ -2375,7 +2496,7 @@ char *_gnutls_resolve_priorities(const char* priorities)
/* Always try to refresh the cached data, to allow it to be
* updated without restarting all applications.
*/
- ret = _gnutls_update_system_priorities(false /* defer_system_wide */);
+ ret = _gnutls_update_system_priorities(false /* defer_system_wide */ );
if (ret < 0) {
_gnutls_debug_log("failed to update system priorities: %s\n",
gnutls_strerror(ret));
@@ -2404,8 +2525,9 @@ char *_gnutls_resolve_priorities(const char* priorities)
ret = gnutls_rwlock_rdlock(&system_wide_config_rwlock);
if (ret < 0) {
- _gnutls_debug_log("cannot read system priority strings: %s\n",
- gnutls_strerror(ret));
+ _gnutls_debug_log
+ ("cannot read system priority strings: %s\n",
+ gnutls_strerror(ret));
break;
}
if (system_wide_config.allowlisting &&
@@ -2413,7 +2535,8 @@ char *_gnutls_resolve_priorities(const char* priorities)
strncmp(LEVEL_SYSTEM, ss, ss_len) == 0) {
p = system_wide_config.priority_string;
} else {
- p = _name_val_array_value(system_wide_config.priority_strings, ss, ss_len);
+ p = _name_val_array_value
+ (system_wide_config.priority_strings, ss, ss_len);
}
_gnutls_debug_log("resolved '%.*s' to '%s', next '%.*s'\n",
@@ -2425,13 +2548,14 @@ char *_gnutls_resolve_priorities(const char* priorities)
n2 = strlen(additional);
}
- resolved = gnutls_malloc(n+n2+1+1);
+ resolved = gnutls_malloc(n + n2 + 1 + 1);
if (resolved) {
memcpy(resolved, p, n);
if (additional) {
resolved[n] = ':';
- memcpy(&resolved[n+1], additional, n2);
- resolved[n+n2+1] = 0;
+ memcpy(&resolved[n + 1], additional,
+ n2);
+ resolved[n + n2 + 1] = 0;
} else {
resolved[n] = 0;
}
@@ -2458,12 +2582,17 @@ static void add_ec(gnutls_priority_t priority_cache)
unsigned i;
for (i = 0; i < priority_cache->_supported_ecc.num_priorities; i++) {
- ge = _gnutls_id_to_group(priority_cache->_supported_ecc.priorities[i]);
- if (ge != NULL && priority_cache->groups.size < sizeof(priority_cache->groups.entry)/sizeof(priority_cache->groups.entry[0])) {
+ ge = _gnutls_id_to_group(priority_cache->
+ _supported_ecc.priorities[i]);
+ if (ge != NULL
+ && priority_cache->groups.size <
+ sizeof(priority_cache->groups.entry) /
+ sizeof(priority_cache->groups.entry[0])) {
/* do not add groups which do not correspond to enabled ciphersuites */
if (!ge->curve)
continue;
- priority_cache->groups.entry[priority_cache->groups.size++] = ge;
+ priority_cache->groups.entry[priority_cache->
+ groups.size++] = ge;
}
}
}
@@ -2474,12 +2603,17 @@ static void add_dh(gnutls_priority_t priority_cache)
unsigned i;
for (i = 0; i < priority_cache->_supported_ecc.num_priorities; i++) {
- ge = _gnutls_id_to_group(priority_cache->_supported_ecc.priorities[i]);
- if (ge != NULL && priority_cache->groups.size < sizeof(priority_cache->groups.entry)/sizeof(priority_cache->groups.entry[0])) {
+ ge = _gnutls_id_to_group(priority_cache->
+ _supported_ecc.priorities[i]);
+ if (ge != NULL
+ && priority_cache->groups.size <
+ sizeof(priority_cache->groups.entry) /
+ sizeof(priority_cache->groups.entry[0])) {
/* do not add groups which do not correspond to enabled ciphersuites */
if (!ge->prime)
continue;
- priority_cache->groups.entry[priority_cache->groups.size++] = ge;
+ priority_cache->groups.entry[priority_cache->
+ groups.size++] = ge;
priority_cache->groups.have_ffdhe = 1;
}
}
@@ -2528,9 +2662,12 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
/* disable key exchanges which are globally disabled */
z = 0;
while (system_wide_config.kxs[z] != 0) {
- for (i = j = 0; i < priority_cache->_kx.num_priorities; i++) {
- if (priority_cache->_kx.priorities[i] != system_wide_config.kxs[z])
- priority_cache->_kx.priorities[j++] = priority_cache->_kx.priorities[i];
+ for (i = j = 0; i < priority_cache->_kx.num_priorities;
+ i++) {
+ if (priority_cache->_kx.priorities[i] !=
+ system_wide_config.kxs[z])
+ priority_cache->_kx.priorities[j++] =
+ priority_cache->_kx.priorities[i];
}
priority_cache->_kx.num_priorities = j;
z++;
@@ -2539,9 +2676,16 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
/* disable groups which are globally disabled */
z = 0;
while (system_wide_config.groups[z] != 0) {
- for (i = j = 0; i < priority_cache->_supported_ecc.num_priorities; i++) {
- if (priority_cache->_supported_ecc.priorities[i] != system_wide_config.groups[z])
- priority_cache->_supported_ecc.priorities[j++] = priority_cache->_supported_ecc.priorities[i];
+ for (i = j = 0;
+ i < priority_cache->_supported_ecc.num_priorities;
+ i++) {
+ if (priority_cache->
+ _supported_ecc.priorities[i] !=
+ system_wide_config.groups[z])
+ priority_cache->
+ _supported_ecc.priorities[j++] =
+ priority_cache->
+ _supported_ecc.priorities[i];
}
priority_cache->_supported_ecc.num_priorities = j;
z++;
@@ -2550,9 +2694,14 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
/* disable ciphers which are globally disabled */
z = 0;
while (system_wide_config.ciphers[z] != 0) {
- for (i = j = 0; i < priority_cache->_cipher.num_priorities; i++) {
- if (priority_cache->_cipher.priorities[i] != system_wide_config.ciphers[z])
- priority_cache->_cipher.priorities[j++] = priority_cache->_cipher.priorities[i];
+ for (i = j = 0;
+ i < priority_cache->_cipher.num_priorities; i++) {
+ if (priority_cache->_cipher.priorities[i] !=
+ system_wide_config.ciphers[z])
+ priority_cache->
+ _cipher.priorities[j++] =
+ priority_cache->
+ _cipher.priorities[i];
}
priority_cache->_cipher.num_priorities = j;
z++;
@@ -2561,16 +2710,19 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
/* disable MACs which are globally disabled */
z = 0;
while (system_wide_config.macs[z] != 0) {
- for (i = j = 0; i < priority_cache->_mac.num_priorities; i++) {
- if (priority_cache->_mac.priorities[i] != system_wide_config.macs[z])
- priority_cache->_mac.priorities[j++] = priority_cache->_mac.priorities[i];
+ for (i = j = 0; i < priority_cache->_mac.num_priorities;
+ i++) {
+ if (priority_cache->_mac.priorities[i] !=
+ system_wide_config.macs[z])
+ priority_cache->_mac.priorities[j++] =
+ priority_cache->_mac.priorities[i];
}
priority_cache->_mac.num_priorities = j;
z++;
}
}
- for (j=0;j<priority_cache->_cipher.num_priorities;j++) {
+ for (j = 0; j < priority_cache->_cipher.num_priorities; j++) {
if (priority_cache->_cipher.priorities[j] == GNUTLS_CIPHER_NULL) {
have_null = 1;
break;
@@ -2581,7 +2733,8 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
if (IS_SRP_KX(priority_cache->_kx.priorities[i])) {
have_srp = 1;
} else if (_gnutls_kx_is_psk(priority_cache->_kx.priorities[i])) {
- if (priority_cache->_kx.priorities[i] == GNUTLS_KX_RSA_PSK)
+ if (priority_cache->_kx.priorities[i] ==
+ GNUTLS_KX_RSA_PSK)
have_rsa_psk = 1;
else
have_psk = 1;
@@ -2592,20 +2745,25 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
for (i = j = 0; i < priority_cache->protocol.num_priorities; i++) {
vers = version_to_entry(priority_cache->protocol.priorities[i]);
if (!vers || vers->supported ||
- (system_wide_config.allowlisting && \
- vers->supported_revertible))
- priority_cache->protocol.priorities[j++] = priority_cache->protocol.priorities[i];
+ (system_wide_config.allowlisting &&
+ vers->supported_revertible))
+ priority_cache->protocol.priorities[j++] =
+ priority_cache->protocol.priorities[i];
}
priority_cache->protocol.num_priorities = j;
-
/* if we have NULL ciphersuites, SRP, or RSA-PSK enabled remove TLS1.3+
* protocol versions; they cannot be negotiated under TLS1.3. */
- if (have_null || have_srp || have_rsa_psk || priority_cache->no_extensions) {
- for (i = j = 0; i < priority_cache->protocol.num_priorities; i++) {
- vers = version_to_entry(priority_cache->protocol.priorities[i]);
+ if (have_null || have_srp || have_rsa_psk
+ || priority_cache->no_extensions) {
+ for (i = j = 0; i < priority_cache->protocol.num_priorities;
+ i++) {
+ vers =
+ version_to_entry(priority_cache->
+ protocol.priorities[i]);
if (!vers || !vers->tls13_sem)
- priority_cache->protocol.priorities[j++] = priority_cache->protocol.priorities[i];
+ priority_cache->protocol.priorities[j++] =
+ priority_cache->protocol.priorities[i];
}
priority_cache->protocol.num_priorities = j;
}
@@ -2615,7 +2773,7 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
if (!vers)
continue;
- if (vers->transport == GNUTLS_STREAM) { /* TLS */
+ if (vers->transport == GNUTLS_STREAM) { /* TLS */
tls_sig_sem |= vers->tls_sig_sem;
if (vers->tls13_sem)
have_tls13 = 1;
@@ -2629,7 +2787,7 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
tlsmax = vers;
if (tlsmin == NULL || vers->age < tlsmin->age)
tlsmin = vers;
- } else { /* dtls */
+ } else { /* dtls */
tls_sig_sem |= vers->tls_sig_sem;
/* we need to introduce similar handling to above
@@ -2658,11 +2816,13 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
}
/* Add TLS 1.3 ciphersuites (no KX) */
- for (j=0;j<priority_cache->_cipher.num_priorities;j++) {
- for (z=0;z<priority_cache->_mac.num_priorities;z++) {
- ce = cipher_suite_get(
- 0, priority_cache->_cipher.priorities[j],
- priority_cache->_mac.priorities[z]);
+ for (j = 0; j < priority_cache->_cipher.num_priorities; j++) {
+ for (z = 0; z < priority_cache->_mac.num_priorities; z++) {
+ ce = cipher_suite_get(0,
+ priority_cache->
+ _cipher.priorities[j],
+ priority_cache->
+ _mac.priorities[z]);
if (ce == NULL)
continue;
@@ -2673,17 +2833,21 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
continue;
if (priority_cache->cs.size < MAX_CIPHERSUITE_SIZE)
- priority_cache->cs.entry[priority_cache->cs.size++] = ce;
+ priority_cache->cs.entry[priority_cache->
+ cs.size++] = ce;
}
}
for (i = 0; i < priority_cache->_kx.num_priorities; i++) {
- for (j=0;j<priority_cache->_cipher.num_priorities;j++) {
- for (z=0;z<priority_cache->_mac.num_priorities;z++) {
- ce = cipher_suite_get(
- priority_cache->_kx.priorities[i],
- priority_cache->_cipher.priorities[j],
- priority_cache->_mac.priorities[z]);
+ for (j = 0; j < priority_cache->_cipher.num_priorities; j++) {
+ for (z = 0; z < priority_cache->_mac.num_priorities;
+ z++) {
+ ce = cipher_suite_get(priority_cache->
+ _kx.priorities[i],
+ priority_cache->
+ _cipher.priorities[j],
+ priority_cache->
+ _mac.priorities[z]);
if (ce == NULL)
continue;
@@ -2693,15 +2857,21 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
if (_gnutls_digest_is_insecure(prf_digest))
continue;
- if (priority_cache->cs.size == MAX_CIPHERSUITE_SIZE)
+ if (priority_cache->cs.size ==
+ MAX_CIPHERSUITE_SIZE)
continue;
- priority_cache->cs.entry[priority_cache->cs.size++] = ce;
- if (!have_ec && (_gnutls_kx_is_ecc(ce->kx_algorithm) ||
- _gnutls_kx_is_vko_gost(ce->kx_algorithm))) {
+ priority_cache->cs.entry[priority_cache->
+ cs.size++] = ce;
+ if (!have_ec
+ && (_gnutls_kx_is_ecc(ce->kx_algorithm)
+ ||
+ _gnutls_kx_is_vko_gost
+ (ce->kx_algorithm))) {
have_ec = 1;
add_ec(priority_cache);
}
- if (!have_dh && _gnutls_kx_is_dhe(ce->kx_algorithm)) {
+ if (!have_dh
+ && _gnutls_kx_is_dhe(ce->kx_algorithm)) {
have_dh = 1;
add_dh(priority_cache);
}
@@ -2711,9 +2881,11 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
if (have_tls13 && (!have_ec || !have_dh)) {
/* scan groups to determine have_ec and have_dh */
- for (i=0; i < priority_cache->_supported_ecc.num_priorities; i++) {
+ for (i = 0; i < priority_cache->_supported_ecc.num_priorities;
+ i++) {
const gnutls_group_entry_st *ge;
- ge = _gnutls_id_to_group(priority_cache->_supported_ecc.priorities[i]);
+ ge = _gnutls_id_to_group(priority_cache->
+ _supported_ecc.priorities[i]);
if (ge) {
if (ge->curve && !have_ec) {
add_ec(priority_cache);
@@ -2731,25 +2903,32 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
}
for (i = 0; i < priority_cache->_sign_algo.num_priorities; i++) {
- se = _gnutls_sign_to_entry(priority_cache->_sign_algo.priorities[i]);
- if (se != NULL && priority_cache->sigalg.size < sizeof(priority_cache->sigalg.entry)/sizeof(priority_cache->sigalg.entry[0])) {
+ se = _gnutls_sign_to_entry(priority_cache->
+ _sign_algo.priorities[i]);
+ if (se != NULL
+ && priority_cache->sigalg.size <
+ sizeof(priority_cache->sigalg.entry) /
+ sizeof(priority_cache->sigalg.entry[0])) {
/* if the signature algorithm semantics is not
* compatible with the protocol's, or the algorithm is
* marked as insecure, then skip. */
if ((se->aid.tls_sem & tls_sig_sem) == 0 ||
- !_gnutls_sign_is_secure2(se, system_wide_config.allowlisting ?
- GNUTLS_SIGN_FLAG_ALLOW_INSECURE_REVERTIBLE :
- 0)) {
+ !_gnutls_sign_is_secure2(se,
+ system_wide_config.allowlisting
+ ?
+ GNUTLS_SIGN_FLAG_ALLOW_INSECURE_REVERTIBLE
+ : 0)) {
continue;
}
- priority_cache->sigalg.entry[priority_cache->sigalg.size++] = se;
+ priority_cache->sigalg.entry[priority_cache->
+ sigalg.size++] = se;
}
}
- _gnutls_debug_log("added %d protocols, %d ciphersuites, %d sig algos and %d groups into priority list\n",
- priority_cache->protocol.num_priorities,
- priority_cache->cs.size, priority_cache->sigalg.size,
- priority_cache->groups.size);
+ _gnutls_debug_log
+ ("added %d protocols, %d ciphersuites, %d sig algos and %d groups into priority list\n",
+ priority_cache->protocol.num_priorities, priority_cache->cs.size,
+ priority_cache->sigalg.size, priority_cache->groups.size);
if (priority_cache->sigalg.size == 0) {
/* no signature algorithms; eliminate TLS 1.2 or DTLS 1.2 and later */
@@ -2758,11 +2937,16 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
/* we need to eliminate TLS 1.2 or DTLS 1.2 and later protocols */
for (i = 0; i < priority_cache->protocol.num_priorities; i++) {
- if (priority_cache->protocol.priorities[i] < GNUTLS_TLS1_2) {
- newp.priorities[newp.num_priorities++] = priority_cache->protocol.priorities[i];
- } else if (priority_cache->protocol.priorities[i] >= GNUTLS_DTLS_VERSION_MIN &&
- priority_cache->protocol.priorities[i] < GNUTLS_DTLS1_2) {
- newp.priorities[newp.num_priorities++] = priority_cache->protocol.priorities[i];
+ if (priority_cache->protocol.priorities[i] <
+ GNUTLS_TLS1_2) {
+ newp.priorities[newp.num_priorities++] =
+ priority_cache->protocol.priorities[i];
+ } else if (priority_cache->protocol.priorities[i] >=
+ GNUTLS_DTLS_VERSION_MIN
+ && priority_cache->protocol.priorities[i] <
+ GNUTLS_DTLS1_2) {
+ newp.priorities[newp.num_priorities++] =
+ priority_cache->protocol.priorities[i];
}
}
memcpy(&priority_cache->protocol, &newp, sizeof(newp));
@@ -2773,7 +2957,9 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
goto out;
}
#ifndef ENABLE_SSL3
- else if (unlikely(priority_cache->protocol.num_priorities == 1 && priority_cache->protocol.priorities[0] == GNUTLS_SSL3)) {
+ else if (unlikely
+ (priority_cache->protocol.num_priorities == 1
+ && priority_cache->protocol.priorities[0] == GNUTLS_SSL3)) {
ret = gnutls_assert_val(GNUTLS_E_NO_PRIORITIES_WERE_SET);
goto out;
}
@@ -2788,12 +2974,20 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
* we require TLS1.2 to be enabled if TLS1.3 is asked for, and
* a pre-TLS1.2 protocol is there; that is because servers which
* do not support TLS1.3 will negotiate TLS1.2 if seen a TLS1.3 handshake */
- if (unlikely((!have_psk && tlsmax && tlsmax->id >= GNUTLS_TLS1_3 && priority_cache->groups.size == 0)) ||
- (!have_tls12 && have_pre_tls12 && have_tls13)) {
- for (i = j = 0; i < priority_cache->protocol.num_priorities; i++) {
- vers = version_to_entry(priority_cache->protocol.priorities[i]);
- if (!vers || vers->transport != GNUTLS_STREAM || !vers->tls13_sem)
- priority_cache->protocol.priorities[j++] = priority_cache->protocol.priorities[i];
+ if (unlikely
+ ((!have_psk && tlsmax && tlsmax->id >= GNUTLS_TLS1_3
+ && priority_cache->groups.size == 0)) || (!have_tls12
+ && have_pre_tls12
+ && have_tls13)) {
+ for (i = j = 0; i < priority_cache->protocol.num_priorities;
+ i++) {
+ vers =
+ version_to_entry(priority_cache->
+ protocol.priorities[i]);
+ if (!vers || vers->transport != GNUTLS_STREAM
+ || !vers->tls13_sem)
+ priority_cache->protocol.priorities[j++] =
+ priority_cache->protocol.priorities[i];
}
priority_cache->protocol.num_priorities = j;
}
@@ -2801,10 +2995,13 @@ static int set_ciphersuite_list(gnutls_priority_t priority_cache)
/* ensure that the verification profile is not lower from the configured */
if (system_wide_config.verification_profile) {
gnutls_sec_param_t level = priority_cache->level;
- gnutls_sec_param_t system_wide_level = _gnutls_profile_to_sec_level(system_wide_config.verification_profile);
+ gnutls_sec_param_t system_wide_level =
+ _gnutls_profile_to_sec_level
+ (system_wide_config.verification_profile);
if (level < system_wide_level) {
- ENABLE_PROFILE(priority_cache, system_wide_config.verification_profile);
+ ENABLE_PROFILE(priority_cache,
+ system_wide_config.verification_profile);
}
}
@@ -2933,7 +3130,9 @@ gnutls_priority_init2(gnutls_priority_t * priority_cache,
_gnutls_buffer_init(&buf);
- ret = _gnutls_buffer_append_str(&buf, _gnutls_default_priority_string);
+ ret =
+ _gnutls_buffer_append_str(&buf,
+ _gnutls_default_priority_string);
if (ret < 0) {
_gnutls_buffer_clear(&buf);
return gnutls_assert_val(ret);
@@ -2951,10 +3150,13 @@ gnutls_priority_init2(gnutls_priority_t * priority_cache,
return gnutls_assert_val(ret);
}
- ret = gnutls_priority_init(priority_cache, (const char*)buf.data, &ep);
- if (ret < 0 && ep != (const char*)buf.data && ep != NULL) {
- ptrdiff_t diff = (ptrdiff_t)ep-(ptrdiff_t)buf.data;
- unsigned hlen = strlen(_gnutls_default_priority_string)+1;
+ ret =
+ gnutls_priority_init(priority_cache, (const char *)buf.data,
+ &ep);
+ if (ret < 0 && ep != (const char *)buf.data && ep != NULL) {
+ ptrdiff_t diff = (ptrdiff_t)ep - (ptrdiff_t)buf.data;
+ unsigned hlen =
+ strlen(_gnutls_default_priority_string) + 1;
if (err_pos && diff > hlen) {
*err_pos = priorities + diff - hlen;
@@ -2963,7 +3165,8 @@ gnutls_priority_init2(gnutls_priority_t * priority_cache,
_gnutls_buffer_clear(&buf);
return ret;
} else {
- return gnutls_priority_init(priority_cache, priorities, err_pos);
+ return gnutls_priority_init(priority_cache, priorities,
+ err_pos);
}
}
@@ -3008,8 +3211,7 @@ gnutls_priority_init(gnutls_priority_t * priority_cache,
if (err_pos)
*err_pos = priorities;
- *priority_cache =
- gnutls_calloc(1, sizeof(struct gnutls_priority_st));
+ *priority_cache = gnutls_calloc(1, sizeof(struct gnutls_priority_st));
if (*priority_cache == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -3048,8 +3250,7 @@ gnutls_priority_init(gnutls_priority_t * priority_cache,
/* This is our default set of protocol version, certificate types.
*/
if (c_strcasecmp(broken_list[0], LEVEL_NONE) != 0) {
- _set_priority(&(*priority_cache)->protocol,
- protocol_priority);
+ _set_priority(&(*priority_cache)->protocol, protocol_priority);
_set_priority(&(*priority_cache)->client_ctype,
cert_type_priority_default);
_set_priority(&(*priority_cache)->server_ctype,
@@ -3065,7 +3266,8 @@ gnutls_priority_init(gnutls_priority_t * priority_cache,
}
for (; i < broken_list_size; i++) {
- if (check_level(broken_list[i], *priority_cache, ikeyword_set) != 0) {
+ if (check_level(broken_list[i], *priority_cache, ikeyword_set)
+ != 0) {
ikeyword_set = 1;
continue;
} else if (broken_list[i][0] == '!'
@@ -3089,49 +3291,58 @@ gnutls_priority_init(gnutls_priority_t * priority_cache,
gnutls_mac_get_id(&broken_list[i][1]))
!= GNUTLS_MAC_UNKNOWN) {
fn(&(*priority_cache)->_mac, algo);
- } else if ((centry = cipher_name_to_entry(&broken_list[i][1])) != NULL) {
+ } else
+ if ((centry =
+ cipher_name_to_entry(&broken_list[i][1])) !=
+ NULL) {
if (_gnutls_cipher_exists(centry->id)) {
- fn(&(*priority_cache)->_cipher, centry->id);
+ fn(&(*priority_cache)->_cipher,
+ centry->id);
if (centry->type == CIPHER_BLOCK)
(*priority_cache)->have_cbc = 1;
}
} else if ((algo =
- _gnutls_kx_get_id(&broken_list[i][1])) !=
- GNUTLS_KX_UNKNOWN) {
+ _gnutls_kx_get_id(&broken_list[i][1])) !=
+ GNUTLS_KX_UNKNOWN) {
if (algo != GNUTLS_KX_INVALID)
fn(&(*priority_cache)->_kx, algo);
} else if (PRIO_MATCH("VERS-") == 0) {
if (PRIO_MATCH("VERS-TLS-ALL") == 0) {
- bulk_given_fn(&(*priority_cache)->
- protocol,
- stream_protocol_priority);
+ bulk_given_fn(&
+ (*priority_cache)->
+ protocol,
+ stream_protocol_priority);
} else if (PRIO_MATCH("VERS-DTLS-ALL") == 0) {
- bulk_given_fn(&(*priority_cache)->
- protocol,
- (bulk_given_fn==_add_priority)?dtls_protocol_priority:dgram_protocol_priority);
+ bulk_given_fn(&
+ (*priority_cache)->
+ protocol,
+ (bulk_given_fn ==
+ _add_priority) ?
+ dtls_protocol_priority :
+ dgram_protocol_priority);
} else if (PRIO_MATCH("VERS-ALL") == 0) {
- bulk_fn(&(*priority_cache)->
- protocol,
+ bulk_fn(&(*priority_cache)->protocol,
protocol_priority);
} else {
if ((algo =
gnutls_protocol_get_id
(&broken_list[i][6])) !=
GNUTLS_VERSION_UNKNOWN) {
- fn(&(*priority_cache)->
- protocol, algo);
+ fn(&(*priority_cache)->protocol,
+ algo);
} else
goto error;
}
- } /* now check if the element is something like -ALGO */
+ } /* now check if the element is something like -ALGO */
else if (PRIO_MATCH("COMP-") == 0) {
/* ignore all compression methods */
continue;
- } /* now check if the element is something like -ALGO */
+ } /* now check if the element is something like -ALGO */
else if (PRIO_MATCH("CURVE-") == 0) {
if (PRIO_MATCH("CURVE-ALL") == 0) {
- bulk_fn(&(*priority_cache)->
+ bulk_fn(&
+ (*priority_cache)->
_supported_ecc,
supported_groups_normal);
} else {
@@ -3139,34 +3350,40 @@ gnutls_priority_init(gnutls_priority_t * priority_cache,
gnutls_ecc_curve_get_id
(&broken_list[i][7])) !=
GNUTLS_ECC_CURVE_INVALID)
- fn(&(*priority_cache)->
+ fn(&
+ (*priority_cache)->
_supported_ecc, algo);
else
goto error;
}
} else if (PRIO_MATCH("GROUP-") == 0) {
if (PRIO_MATCH("GROUP-ALL") == 0) {
- bulk_fn(&(*priority_cache)->
+ bulk_fn(&
+ (*priority_cache)->
_supported_ecc,
supported_groups_normal);
} else if (PRIO_MATCH("GROUP-DH-ALL") == 0) {
- bulk_given_fn(&(*priority_cache)->
- _supported_ecc,
- _supported_groups_dh);
+ bulk_given_fn(&
+ (*priority_cache)->
+ _supported_ecc,
+ _supported_groups_dh);
} else if (PRIO_MATCH("GROUP-EC-ALL") == 0) {
- bulk_given_fn(&(*priority_cache)->
- _supported_ecc,
- _supported_groups_ecdh);
+ bulk_given_fn(&
+ (*priority_cache)->
+ _supported_ecc,
+ _supported_groups_ecdh);
} else if (PRIO_MATCH("GROUP-GOST-ALL") == 0) {
- bulk_given_fn(&(*priority_cache)->
- _supported_ecc,
- _supported_groups_gost);
+ bulk_given_fn(&
+ (*priority_cache)->
+ _supported_ecc,
+ _supported_groups_gost);
} else {
if ((algo =
_gnutls_group_get_id
(&broken_list[i][7])) !=
GNUTLS_GROUP_INVALID)
- fn(&(*priority_cache)->
+ fn(&
+ (*priority_cache)->
_supported_ecc, algo);
else
goto error;
@@ -3175,57 +3392,80 @@ gnutls_priority_init(gnutls_priority_t * priority_cache,
// Certificate types
if (PRIO_MATCH("CTYPE-ALL") == 0) {
// Symmetric cert types, all types allowed
- bulk_fn(&(*priority_cache)->client_ctype,
+ bulk_fn(&
+ (*priority_cache)->client_ctype,
cert_type_priority_all);
- bulk_fn(&(*priority_cache)->server_ctype,
+ bulk_fn(&
+ (*priority_cache)->server_ctype,
cert_type_priority_all);
} else if (PRIO_MATCH("CTYPE-CLI-") == 0) {
// Client certificate types
if (PRIO_MATCH("CTYPE-CLI-ALL") == 0) {
// All client cert types allowed
- bulk_fn(&(*priority_cache)->client_ctype,
+ bulk_fn(&
+ (*priority_cache)->client_ctype,
cert_type_priority_all);
- } else if ((algo = gnutls_certificate_type_get_id
- (&broken_list[i][11])) != GNUTLS_CRT_UNKNOWN) {
+ } else
+ if ((algo =
+ gnutls_certificate_type_get_id
+ (&broken_list[i][11])) !=
+ GNUTLS_CRT_UNKNOWN) {
// Specific client cert type allowed
- fn(&(*priority_cache)->client_ctype, algo);
- } else goto error;
+ fn(&
+ (*priority_cache)->client_ctype,
+ algo);
+ } else
+ goto error;
} else if (PRIO_MATCH("CTYPE-SRV-") == 0) {
// Server certificate types
if (PRIO_MATCH("CTYPE-SRV-ALL") == 0) {
// All server cert types allowed
- bulk_fn(&(*priority_cache)->server_ctype,
+ bulk_fn(&
+ (*priority_cache)->server_ctype,
cert_type_priority_all);
- } else if ((algo = gnutls_certificate_type_get_id
- (&broken_list[i][11])) != GNUTLS_CRT_UNKNOWN) {
- // Specific server cert type allowed
- fn(&(*priority_cache)->server_ctype, algo);
- } else goto error;
- } else { // Symmetric certificate type
- if ((algo = gnutls_certificate_type_get_id
- (&broken_list[i][7])) != GNUTLS_CRT_UNKNOWN) {
- fn(&(*priority_cache)->client_ctype, algo);
- fn(&(*priority_cache)->server_ctype, algo);
- } else if (PRIO_MATCH("CTYPE-OPENPGP") == 0) {
+ } else
+ if ((algo =
+ gnutls_certificate_type_get_id
+ (&broken_list[i][11])) !=
+ GNUTLS_CRT_UNKNOWN) {
+ // Specific server cert type allowed
+ fn(&
+ (*priority_cache)->server_ctype,
+ algo);
+ } else
+ goto error;
+ } else { // Symmetric certificate type
+ if ((algo =
+ gnutls_certificate_type_get_id
+ (&broken_list[i][7])) !=
+ GNUTLS_CRT_UNKNOWN) {
+ fn(&
+ (*priority_cache)->client_ctype,
+ algo);
+ fn(&
+ (*priority_cache)->server_ctype,
+ algo);
+ } else if (PRIO_MATCH("CTYPE-OPENPGP")
+ == 0) {
/* legacy openpgp option - ignore */
continue;
- } else goto error;
+ } else
+ goto error;
}
} else if (PRIO_MATCH("SIGN-") == 0) {
if (PRIO_MATCH("SIGN-ALL") == 0) {
- bulk_fn(&(*priority_cache)->
- _sign_algo,
+ bulk_fn(&(*priority_cache)->_sign_algo,
sign_priority_default);
} else if (PRIO_MATCH("SIGN-GOST-ALL") == 0) {
- bulk_fn(&(*priority_cache)->
- _sign_algo,
+ bulk_fn(&(*priority_cache)->_sign_algo,
sign_priority_gost);
} else {
if ((algo =
gnutls_sign_get_id
(&broken_list[i][6])) !=
GNUTLS_SIGN_UNKNOWN)
- fn(&(*priority_cache)->
+ fn(&
+ (*priority_cache)->
_sign_algo, algo);
else
goto error;
@@ -3233,45 +3473,47 @@ gnutls_priority_init(gnutls_priority_t * priority_cache,
} else if (PRIO_MATCH("MAC-") == 0) {
if (PRIO_MATCH("MAC-ALL") == 0) {
bulk_fn(&(*priority_cache)->_mac,
- mac_priority_normal);
+ mac_priority_normal);
} else if (PRIO_MATCH("MAC-GOST-ALL") == 0) {
bulk_fn(&(*priority_cache)->_mac,
- mac_priority_gost);
+ mac_priority_gost);
}
} else if (PRIO_MATCH("CIPHER-") == 0) {
if (PRIO_MATCH("CIPHER-ALL") == 0) {
bulk_fn(&(*priority_cache)->_cipher,
- cipher_priority_normal);
+ cipher_priority_normal);
} else if (PRIO_MATCH("CIPHER-GOST-ALL") == 0) {
bulk_fn(&(*priority_cache)->_cipher,
- cipher_priority_gost);
+ cipher_priority_gost);
}
} else if (PRIO_MATCH("KX-") == 0) {
if (PRIO_MATCH("KX-ALL") == 0) {
bulk_fn(&(*priority_cache)->_kx,
- kx_priority_secure);
+ kx_priority_secure);
} else if (PRIO_MATCH("KX-GOST-ALL") == 0) {
bulk_fn(&(*priority_cache)->_kx,
- kx_priority_gost);
+ kx_priority_gost);
}
} else if (PRIO_MATCH("GOST") == 0) {
- bulk_given_fn(&(*priority_cache)->_supported_ecc,
- _supported_groups_gost);
+ bulk_given_fn(&
+ (*priority_cache)->_supported_ecc,
+ _supported_groups_gost);
bulk_fn(&(*priority_cache)->_sign_algo,
sign_priority_gost);
bulk_fn(&(*priority_cache)->_mac,
- mac_priority_gost);
+ mac_priority_gost);
bulk_fn(&(*priority_cache)->_cipher,
- cipher_priority_gost);
+ cipher_priority_gost);
bulk_fn(&(*priority_cache)->_kx,
- kx_priority_gost);
+ kx_priority_gost);
} else
goto error;
} else if (broken_list[i][0] == '%') {
- const struct priority_options_st * o;
+ const struct priority_options_st *o;
/* to add a new option modify
* priority_options.gperf */
- o = in_word_set(&broken_list[i][1], strlen(&broken_list[i][1]));
+ o = in_word_set(&broken_list[i][1],
+ strlen(&broken_list[i][1]));
if (o == NULL) {
goto error;
}
@@ -3336,7 +3578,6 @@ void gnutls_priority_deinit(gnutls_priority_t priority_cache)
}
}
-
/**
* gnutls_priority_set_direct:
* @session: is a #gnutls_session_t type.
@@ -3382,9 +3623,7 @@ gnutls_priority_set_direct(gnutls_session_t session,
/* Breaks a list of "xxx", "yyy", to a character array, of
* MAX_COMMA_SEP_ELEMENTS size; Note that the given string is modified.
*/
-static void
-break_list(char *list,
- char *broken_list[MAX_ELEMENTS], int *size)
+static void break_list(char *list, char *broken_list[MAX_ELEMENTS], int *size)
{
char *p = list;
@@ -3465,13 +3704,14 @@ int gnutls_set_default_priority(gnutls_session_t session)
**/
int gnutls_set_default_priority_append(gnutls_session_t session,
const char *add_prio,
- const char **err_pos,
- unsigned flags)
+ const char **err_pos, unsigned flags)
{
gnutls_priority_t prio;
int ret;
- ret = gnutls_priority_init2(&prio, add_prio, err_pos, GNUTLS_PRIORITY_INIT_DEF_APPEND);
+ ret =
+ gnutls_priority_init2(&prio, add_prio, err_pos,
+ GNUTLS_PRIORITY_INIT_DEF_APPEND);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -3517,7 +3757,7 @@ gnutls_priority_ecc_curve_list(gnutls_priority_t pcache,
/* to ensure we don't confuse the caller, we do not include
* any FFDHE groups. This may return an incomplete list. */
- for (i=0;i<pcache->_supported_ecc.num_priorities;i++)
+ for (i = 0; i < pcache->_supported_ecc.num_priorities; i++)
if (pcache->_supported_ecc.priorities[i] > GNUTLS_ECC_CURVE_MAX)
return i;
@@ -3537,8 +3777,7 @@ gnutls_priority_ecc_curve_list(gnutls_priority_t pcache,
* Since: 3.6.0
**/
int
-gnutls_priority_group_list(gnutls_priority_t pcache,
- const unsigned int **list)
+gnutls_priority_group_list(gnutls_priority_t pcache, const unsigned int **list)
{
if (pcache->_supported_ecc.num_priorities == 0)
return 0;
@@ -3558,9 +3797,7 @@ gnutls_priority_group_list(gnutls_priority_t pcache,
* Returns: the number of items, or an error code.
* Since: 3.2.3
**/
-int
-gnutls_priority_kx_list(gnutls_priority_t pcache,
- const unsigned int **list)
+int gnutls_priority_kx_list(gnutls_priority_t pcache, const unsigned int **list)
{
if (pcache->_kx.num_priorities == 0)
return 0;
@@ -3581,8 +3818,7 @@ gnutls_priority_kx_list(gnutls_priority_t pcache,
* Since: 3.2.3
**/
int
-gnutls_priority_cipher_list(gnutls_priority_t pcache,
- const unsigned int **list)
+gnutls_priority_cipher_list(gnutls_priority_t pcache, const unsigned int **list)
{
if (pcache->_cipher.num_priorities == 0)
return 0;
@@ -3603,8 +3839,7 @@ gnutls_priority_cipher_list(gnutls_priority_t pcache,
* Since: 3.2.3
**/
int
-gnutls_priority_mac_list(gnutls_priority_t pcache,
- const unsigned int **list)
+gnutls_priority_mac_list(gnutls_priority_t pcache, const unsigned int **list)
{
if (pcache->_mac.num_priorities == 0)
return 0;
@@ -3628,7 +3863,7 @@ int
gnutls_priority_compression_list(gnutls_priority_t pcache,
const unsigned int **list)
{
- static const unsigned int priority[1] = {GNUTLS_COMP_NULL};
+ static const unsigned int priority[1] = { GNUTLS_COMP_NULL };
*list = priority;
return 1;
@@ -3668,8 +3903,7 @@ gnutls_priority_protocol_list(gnutls_priority_t pcache,
* Since: 3.0
**/
int
-gnutls_priority_sign_list(gnutls_priority_t pcache,
- const unsigned int **list)
+gnutls_priority_sign_list(gnutls_priority_t pcache, const unsigned int **list)
{
if (pcache->_sign_algo.num_priorities == 0)
return 0;
@@ -3700,7 +3934,8 @@ gnutls_priority_certificate_type_list(gnutls_priority_t pcache,
const unsigned int **list)
{
gnutls_ctype_target_t target =
- pcache->server_precedence ? GNUTLS_CTYPE_SERVER : GNUTLS_CTYPE_CLIENT;
+ pcache->server_precedence ? GNUTLS_CTYPE_SERVER :
+ GNUTLS_CTYPE_CLIENT;
return gnutls_priority_certificate_type_list2(pcache, list, target);
}
@@ -3721,24 +3956,25 @@ gnutls_priority_certificate_type_list(gnutls_priority_t pcache,
**/
int
gnutls_priority_certificate_type_list2(gnutls_priority_t pcache,
- const unsigned int **list, gnutls_ctype_target_t target)
+ const unsigned int **list,
+ gnutls_ctype_target_t target)
{
- switch (target) {
- case GNUTLS_CTYPE_CLIENT:
- if(pcache->client_ctype.num_priorities > 0) {
- *list = pcache->client_ctype.priorities;
- return pcache->client_ctype.num_priorities;
- }
- break;
- case GNUTLS_CTYPE_SERVER:
- if(pcache->server_ctype.num_priorities > 0) {
- *list = pcache->server_ctype.priorities;
- return pcache->server_ctype.num_priorities;
- }
- break;
- default:
- // Invalid target given
- gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ switch (target) {
+ case GNUTLS_CTYPE_CLIENT:
+ if (pcache->client_ctype.num_priorities > 0) {
+ *list = pcache->client_ctype.priorities;
+ return pcache->client_ctype.num_priorities;
+ }
+ break;
+ case GNUTLS_CTYPE_SERVER:
+ if (pcache->server_ctype.num_priorities > 0) {
+ *list = pcache->server_ctype.priorities;
+ return pcache->server_ctype.num_priorities;
+ }
+ break;
+ default:
+ // Invalid target given
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
// Found a matching target but non of them had any ctypes set
@@ -3758,22 +3994,22 @@ gnutls_priority_certificate_type_list2(gnutls_priority_t pcache,
* Returns: a priority string
* Since: 3.4.0
**/
-const char *
-gnutls_priority_string_list(unsigned iter, unsigned int flags)
+const char *gnutls_priority_string_list(unsigned iter, unsigned int flags)
{
if (flags & GNUTLS_PRIORITY_LIST_INIT_KEYWORDS) {
- if (iter >= (sizeof(pgroups)/sizeof(pgroups[0]))-1)
+ if (iter >= (sizeof(pgroups) / sizeof(pgroups[0])) - 1)
return NULL;
return pgroups[iter].name;
} else if (flags & GNUTLS_PRIORITY_LIST_SPECIAL) {
- if (iter >= (sizeof(wordlist)/sizeof(wordlist[0]))-1)
+ if (iter >= (sizeof(wordlist) / sizeof(wordlist[0])) - 1)
return NULL;
return wordlist[iter].name;
}
return NULL;
}
-bool _gnutls_config_is_ktls_enabled(void){
+bool _gnutls_config_is_ktls_enabled(void)
+{
return system_wide_config.ktls_enabled;
}
@@ -3782,14 +4018,15 @@ bool _gnutls_config_is_ktls_enabled(void){
*/
static inline bool /* not locking system_wide_config */
-system_wide_config_is_malleable(void) {
+system_wide_config_is_malleable(void)
+{
if (!system_wide_config.allowlisting) {
_gnutls_audit_log(NULL, "allowlisting is not enabled!\n");
return false;
}
if (system_wide_config.priority_string) {
_gnutls_audit_log(NULL, "priority strings have already been "
- "initialized!\n");
+ "initialized!\n");
return false;
}
return true;
@@ -3807,8 +4044,7 @@ system_wide_config_is_malleable(void) {
*
* Since: 3.7.3
*/
-int
-gnutls_digest_set_secure(gnutls_digest_algorithm_t dig, unsigned int secure)
+int gnutls_digest_set_secure(gnutls_digest_algorithm_t dig, unsigned int secure)
{
#ifndef DISABLE_SYSTEM_CONFIG
int ret;
@@ -3862,8 +4098,7 @@ gnutls_digest_set_secure(gnutls_digest_algorithm_t dig, unsigned int secure)
*
* Since: 3.7.3
*/
-int
-gnutls_sign_set_secure(gnutls_sign_algorithm_t sign, unsigned int secure)
+int gnutls_sign_set_secure(gnutls_sign_algorithm_t sign, unsigned int secure)
{
#ifndef DISABLE_SYSTEM_CONFIG
int ret;
@@ -3896,7 +4131,6 @@ gnutls_sign_set_secure(gnutls_sign_algorithm_t sign, unsigned int secure)
#endif
}
-
/**
* gnutls_sign_set_secure_for_certs:
* @sign: the sign algorithm
@@ -3983,8 +4217,9 @@ gnutls_sign_set_secure_for_certs(gnutls_sign_algorithm_t sign,
*
* Since: 3.7.3
*/
-int /* allowlisting-only */ /* not thread-safe */
-gnutls_protocol_set_enabled(gnutls_protocol_t version, unsigned int enabled)
+int /* allowlisting-only */
+ /* not thread-safe */ gnutls_protocol_set_enabled(gnutls_protocol_t version,
+ unsigned int enabled)
{
#ifndef DISABLE_SYSTEM_CONFIG
int ret;
@@ -4034,8 +4269,7 @@ gnutls_protocol_set_enabled(gnutls_protocol_t version, unsigned int enabled)
*
* Since: 3.7.3
*/
-int
-gnutls_ecc_curve_set_enabled(gnutls_ecc_curve_t curve, unsigned int enabled)
+int gnutls_ecc_curve_set_enabled(gnutls_ecc_curve_t curve, unsigned int enabled)
{
#ifndef DISABLE_SYSTEM_CONFIG
int ret;
diff --git a/lib/privkey.c b/lib/privkey.c
index b94db068a8..7a5a38a58d 100644
--- a/lib/privkey.c
+++ b/lib/privkey.c
@@ -41,7 +41,7 @@
static int
privkey_sign_prehashed(gnutls_privkey_t signer,
- const gnutls_sign_entry_st *se,
+ const gnutls_sign_entry_st * se,
const gnutls_datum_t * hash_data,
gnutls_datum_t * signature,
gnutls_x509_spki_st * params);
@@ -79,11 +79,14 @@ gnutls_privkey_type_t gnutls_privkey_get_type(gnutls_privkey_t key)
*
* Since: 3.5.0
**/
-int gnutls_privkey_get_seed(gnutls_privkey_t key, gnutls_digest_algorithm_t *digest, void *seed, size_t *seed_size)
+int gnutls_privkey_get_seed(gnutls_privkey_t key,
+ gnutls_digest_algorithm_t * digest, void *seed,
+ size_t *seed_size)
{
if (key->type != GNUTLS_PRIVKEY_X509)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- return gnutls_x509_privkey_get_seed(key->key.x509, digest, seed, seed_size);
+ return gnutls_x509_privkey_get_seed(key->key.x509, digest, seed,
+ seed_size);
}
/**
@@ -101,11 +104,14 @@ int gnutls_privkey_get_seed(gnutls_privkey_t key, gnutls_digest_algorithm_t *dig
*
* Since: 3.5.0
**/
-int gnutls_privkey_verify_seed(gnutls_privkey_t key, gnutls_digest_algorithm_t digest, const void *seed, size_t seed_size)
+int gnutls_privkey_verify_seed(gnutls_privkey_t key,
+ gnutls_digest_algorithm_t digest,
+ const void *seed, size_t seed_size)
{
if (key->type != GNUTLS_PRIVKEY_X509)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- return gnutls_x509_privkey_verify_seed(key->key.x509, digest, seed, seed_size);
+ return gnutls_x509_privkey_verify_seed(key->key.x509, digest, seed,
+ seed_size);
}
/**
@@ -209,7 +215,9 @@ privkey_to_pubkey(gnutls_pk_algorithm_t pk,
case GNUTLS_PK_EDDSA_ED448:
case GNUTLS_PK_ECDH_X25519:
case GNUTLS_PK_ECDH_X448:
- ret = _gnutls_set_datum(&pub->raw_pub, priv->raw_pub.data, priv->raw_pub.size);
+ ret =
+ _gnutls_set_datum(&pub->raw_pub, priv->raw_pub.data,
+ priv->raw_pub.size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -242,8 +250,7 @@ privkey_to_pubkey(gnutls_pk_algorithm_t pk,
/* Returns the public key of the private key (if possible)
*/
-int
-_gnutls_privkey_get_mpis(gnutls_privkey_t key, gnutls_pk_params_st * params)
+int _gnutls_privkey_get_mpis(gnutls_privkey_t key, gnutls_pk_params_st * params)
{
int ret;
@@ -252,17 +259,19 @@ _gnutls_privkey_get_mpis(gnutls_privkey_t key, gnutls_pk_params_st * params)
ret = _gnutls_pk_params_copy(params, &key->key.x509->params);
break;
#ifdef ENABLE_PKCS11
- case GNUTLS_PRIVKEY_PKCS11: {
- gnutls_pubkey_t pubkey;
+ case GNUTLS_PRIVKEY_PKCS11:{
+ gnutls_pubkey_t pubkey;
- ret = _pkcs11_privkey_get_pubkey(key->key.pkcs11, &pubkey, 0);
- if (ret < 0)
- return gnutls_assert_val(ret);
+ ret =
+ _pkcs11_privkey_get_pubkey(key->key.pkcs11, &pubkey,
+ 0);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
- ret = _gnutls_pubkey_get_mpis(pubkey, params);
- gnutls_pubkey_deinit(pubkey);
+ ret = _gnutls_pubkey_get_mpis(pubkey, params);
+ gnutls_pubkey_deinit(pubkey);
- break;
+ break;
}
#endif
default:
@@ -338,10 +347,9 @@ _gnutls_privkey_get_spki_params(gnutls_privkey_t key,
*/
int
_gnutls_privkey_update_spki_params(gnutls_privkey_t key,
- gnutls_pk_algorithm_t pk,
- gnutls_digest_algorithm_t dig,
- unsigned flags,
- gnutls_x509_spki_st *params)
+ gnutls_pk_algorithm_t pk,
+ gnutls_digest_algorithm_t dig,
+ unsigned flags, gnutls_x509_spki_st * params)
{
unsigned salt_size = 0;
unsigned bits = 0;
@@ -355,7 +363,7 @@ _gnutls_privkey_update_spki_params(gnutls_privkey_t key,
key_pk = gnutls_privkey_get_pk_algorithm(key, &bits);
if ((key_pk != pk) &&
- !(key_pk == GNUTLS_PK_RSA && pk == GNUTLS_PK_RSA_PSS)) {
+ !(key_pk == GNUTLS_PK_RSA && pk == GNUTLS_PK_RSA_PSS)) {
gnutls_assert();
return GNUTLS_E_CONSTRAINT_ERROR;
}
@@ -371,8 +379,11 @@ _gnutls_privkey_update_spki_params(gnutls_privkey_t key,
if (params->pk == GNUTLS_PK_RSA)
salt_size = 0;
else if (params->pk == GNUTLS_PK_RSA_PSS) {
- if (params->rsa_pss_dig != GNUTLS_DIG_UNKNOWN && dig != params->rsa_pss_dig) {
- return gnutls_assert_val(GNUTLS_E_CONSTRAINT_ERROR);
+ if (params->rsa_pss_dig != GNUTLS_DIG_UNKNOWN
+ && dig != params->rsa_pss_dig) {
+ return
+ gnutls_assert_val
+ (GNUTLS_E_CONSTRAINT_ERROR);
}
salt_size = params->salt_size;
@@ -381,12 +392,16 @@ _gnutls_privkey_update_spki_params(gnutls_privkey_t key,
if (flags & GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE)
params->salt_size = 0;
else {
- ret = _gnutls_find_rsa_pss_salt_size(bits, me, salt_size);
+ ret =
+ _gnutls_find_rsa_pss_salt_size(bits, me, salt_size);
if (ret < 0)
return gnutls_assert_val(ret);
- if (flags & GNUTLS_PRIVKEY_FLAG_RSA_PSS_FIXED_SALT_LENGTH &&
- (size_t)ret != _gnutls_hash_get_algo_len(me)) {
- return gnutls_assert_val(GNUTLS_E_CONSTRAINT_ERROR);
+ if (flags &
+ GNUTLS_PRIVKEY_FLAG_RSA_PSS_FIXED_SALT_LENGTH
+ && (size_t)ret != _gnutls_hash_get_algo_len(me)) {
+ return
+ gnutls_assert_val
+ (GNUTLS_E_CONSTRAINT_ERROR);
}
params->salt_size = ret;
}
@@ -535,7 +550,7 @@ gnutls_privkey_import_pkcs11(gnutls_privkey_t pkey,
return 0;
}
-#if 0
+# if 0
/**
* gnutls_privkey_import_pkcs11_url:
* @key: A key of type #gnutls_pubkey_t
@@ -554,10 +569,11 @@ int gnutls_privkey_import_pkcs11_url(gnutls_privkey_t key, const char *url)
{
int x;
}
-#endif
+# endif
static
-int _gnutls_privkey_import_pkcs11_url(gnutls_privkey_t key, const char *url, unsigned flags)
+int _gnutls_privkey_import_pkcs11_url(gnutls_privkey_t key, const char *url,
+ unsigned flags)
{
gnutls_pkcs11_privkey_t pkey;
int ret;
@@ -611,7 +627,7 @@ int _gnutls_privkey_import_pkcs11_url(gnutls_privkey_t key, const char *url, uns
*/
int
gnutls_privkey_export_pkcs11(gnutls_privkey_t pkey,
- gnutls_pkcs11_privkey_t *key)
+ gnutls_pkcs11_privkey_t * key)
{
int ret;
@@ -777,8 +793,7 @@ gnutls_privkey_import_ext3(gnutls_privkey_t pkey,
gnutls_privkey_sign_func sign_fn,
gnutls_privkey_decrypt_func decrypt_fn,
gnutls_privkey_deinit_func deinit_fn,
- gnutls_privkey_info_func info_fn,
- unsigned int flags)
+ gnutls_privkey_info_func info_fn, unsigned int flags)
{
int ret;
@@ -802,7 +817,9 @@ gnutls_privkey_import_ext3(gnutls_privkey_t pkey,
pkey->type = GNUTLS_PRIVKEY_EXT;
pkey->flags = flags;
- pkey->pk_algorithm = pkey->key.ext.info_func(pkey, GNUTLS_PRIVKEY_INFO_PK_ALGO, pkey->key.ext.userdata);
+ pkey->pk_algorithm =
+ pkey->key.ext.info_func(pkey, GNUTLS_PRIVKEY_INFO_PK_ALGO,
+ pkey->key.ext.userdata);
if (!PK_IS_OK_FOR_EXT2(pkey->pk_algorithm))
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -862,13 +879,12 @@ gnutls_privkey_import_ext3(gnutls_privkey_t pkey,
**/
int
gnutls_privkey_import_ext4(gnutls_privkey_t pkey,
- void *userdata,
- gnutls_privkey_sign_data_func sign_data_fn,
- gnutls_privkey_sign_hash_func sign_hash_fn,
- gnutls_privkey_decrypt_func decrypt_fn,
- gnutls_privkey_deinit_func deinit_fn,
- gnutls_privkey_info_func info_fn,
- unsigned int flags)
+ void *userdata,
+ gnutls_privkey_sign_data_func sign_data_fn,
+ gnutls_privkey_sign_hash_func sign_hash_fn,
+ gnutls_privkey_decrypt_func decrypt_fn,
+ gnutls_privkey_deinit_func deinit_fn,
+ gnutls_privkey_info_func info_fn, unsigned int flags)
{
int ret;
@@ -893,9 +909,13 @@ gnutls_privkey_import_ext4(gnutls_privkey_t pkey,
pkey->type = GNUTLS_PRIVKEY_EXT;
pkey->flags = flags;
- pkey->pk_algorithm = pkey->key.ext.info_func(pkey, GNUTLS_PRIVKEY_INFO_PK_ALGO, pkey->key.ext.userdata);
+ pkey->pk_algorithm =
+ pkey->key.ext.info_func(pkey, GNUTLS_PRIVKEY_INFO_PK_ALGO,
+ pkey->key.ext.userdata);
- ret = pkey->key.ext.info_func(pkey, GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS, pkey->key.ext.userdata);
+ ret =
+ pkey->key.ext.info_func(pkey, GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS,
+ pkey->key.ext.userdata);
if (ret >= 0)
pkey->key.ext.bits = ret;
@@ -974,8 +994,7 @@ gnutls_privkey_import_x509(gnutls_privkey_t pkey,
* Since: 3.4.0
*/
int
-gnutls_privkey_export_x509(gnutls_privkey_t pkey,
- gnutls_x509_privkey_t *key)
+gnutls_privkey_export_x509(gnutls_privkey_t pkey, gnutls_x509_privkey_t * key)
{
int ret;
@@ -1084,7 +1103,8 @@ gnutls_privkey_generate(gnutls_privkey_t pkey,
int
gnutls_privkey_generate2(gnutls_privkey_t pkey,
gnutls_pk_algorithm_t algo, unsigned int bits,
- unsigned int flags, const gnutls_keygen_data_st *data, unsigned data_size)
+ unsigned int flags, const gnutls_keygen_data_st * data,
+ unsigned data_size)
{
int ret;
@@ -1092,7 +1112,9 @@ gnutls_privkey_generate2(gnutls_privkey_t pkey,
if (ret < 0)
return gnutls_assert_val(ret);
- ret = gnutls_x509_privkey_generate2(pkey->key.x509, algo, bits, flags, data, data_size);
+ ret =
+ gnutls_x509_privkey_generate2(pkey->key.x509, algo, bits, flags,
+ data, data_size);
if (ret < 0) {
gnutls_x509_privkey_deinit(pkey->key.x509);
pkey->key.x509 = NULL;
@@ -1147,7 +1169,7 @@ gnutls_privkey_sign_data(gnutls_privkey_t signer,
}
ret = _gnutls_privkey_update_spki_params(signer, signer->pk_algorithm,
- hash, flags, &params);
+ hash, flags, &params);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1155,7 +1177,10 @@ gnutls_privkey_sign_data(gnutls_privkey_t signer,
FIX_SIGN_PARAMS(params, flags, hash);
- return privkey_sign_and_hash_data(signer, _gnutls_pk_to_sign_entry(params.pk, hash), data, signature, &params);
+ return privkey_sign_and_hash_data(signer,
+ _gnutls_pk_to_sign_entry(params.pk,
+ hash), data,
+ signature, &params);
}
/**
@@ -1201,7 +1226,7 @@ gnutls_privkey_sign_data2(gnutls_privkey_t signer,
}
ret = _gnutls_privkey_update_spki_params(signer, se->pk, se->hash,
- flags, &params);
+ flags, &params);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1267,7 +1292,7 @@ gnutls_privkey_sign_hash2(gnutls_privkey_t signer,
}
ret = _gnutls_privkey_update_spki_params(signer, se->pk, se->hash,
- flags, &params);
+ flags, &params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1288,7 +1313,7 @@ gnutls_privkey_sign_hash2(gnutls_privkey_t signer,
int
privkey_sign_and_hash_data(gnutls_privkey_t signer,
- const gnutls_sign_entry_st *se,
+ const gnutls_sign_entry_st * se,
const gnutls_datum_t * data,
gnutls_datum_t * signature,
gnutls_x509_spki_st * params)
@@ -1301,7 +1326,8 @@ privkey_sign_and_hash_data(gnutls_privkey_t signer,
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if (_gnutls_pk_is_not_prehashed(se->pk)) {
- return privkey_sign_raw_data(signer, se, data, signature, params);
+ return privkey_sign_raw_data(signer, se, data, signature,
+ params);
}
me = hash_to_entry(se->hash);
@@ -1335,7 +1361,6 @@ privkey_sign_and_hash_data(gnutls_privkey_t signer,
return ret;
}
-
/**
* gnutls_privkey_sign_hash:
* @signer: Holds the signer's key
@@ -1382,7 +1407,7 @@ gnutls_privkey_sign_hash(gnutls_privkey_t signer,
}
ret = _gnutls_privkey_update_spki_params(signer, signer->pk_algorithm,
- hash_algo, flags, &params);
+ hash_algo, flags, &params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1391,11 +1416,13 @@ gnutls_privkey_sign_hash(gnutls_privkey_t signer,
/* legacy callers of this API could use a hash algorithm of 0 (unknown)
* to indicate raw hashing. As we now always want to know the signing
* algorithm involved, we try discovering the hash algorithm. */
- if (hash_algo == 0 && (params.pk == GNUTLS_PK_DSA || params.pk == GNUTLS_PK_ECDSA)) {
+ if (hash_algo == 0
+ && (params.pk == GNUTLS_PK_DSA || params.pk == GNUTLS_PK_ECDSA)) {
hash_algo = _gnutls_hash_size_to_sha_hash(hash_data->size);
}
- if (params.pk == GNUTLS_PK_RSA && (flags & GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA)) {
+ if (params.pk == GNUTLS_PK_RSA
+ && (flags & GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA)) {
/* the corresponding signature algorithm is SIGN_RSA_RAW,
* irrespective of hash algorithm. */
se = _gnutls_sign_to_entry(GNUTLS_SIGN_RSA_RAW);
@@ -1410,8 +1437,7 @@ gnutls_privkey_sign_hash(gnutls_privkey_t signer,
FIX_SIGN_PARAMS(params, flags, hash_algo);
- ret = privkey_sign_prehashed(signer, se,
- hash_data, signature, &params);
+ ret = privkey_sign_prehashed(signer, se, hash_data, signature, &params);
cleanup:
if (ret < 0) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
@@ -1423,10 +1449,9 @@ gnutls_privkey_sign_hash(gnutls_privkey_t signer,
static int
privkey_sign_prehashed(gnutls_privkey_t signer,
- const gnutls_sign_entry_st *se,
+ const gnutls_sign_entry_st * se,
const gnutls_datum_t * hash_data,
- gnutls_datum_t * signature,
- gnutls_x509_spki_st * params)
+ gnutls_datum_t * signature, gnutls_x509_spki_st * params)
{
int ret;
gnutls_datum_t digest;
@@ -1436,9 +1461,7 @@ privkey_sign_prehashed(gnutls_privkey_t signer,
if (se->id == GNUTLS_SIGN_RSA_RAW) {
return privkey_sign_raw_data(signer,
- se,
- hash_data, signature,
- params);
+ se, hash_data, signature, params);
}
if (_gnutls_pk_is_not_prehashed(signer->pk_algorithm)) {
@@ -1459,10 +1482,7 @@ privkey_sign_prehashed(gnutls_privkey_t signer,
goto cleanup;
}
- ret = privkey_sign_raw_data(signer,
- se,
- &digest, signature,
- params);
+ ret = privkey_sign_raw_data(signer, se, &digest, signature, params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1499,10 +1519,9 @@ privkey_sign_prehashed(gnutls_privkey_t signer,
-*/
int
privkey_sign_raw_data(gnutls_privkey_t key,
- const gnutls_sign_entry_st *se,
+ const gnutls_sign_entry_st * se,
const gnutls_datum_t * data,
- gnutls_datum_t * signature,
- gnutls_x509_spki_st * params)
+ gnutls_datum_t * signature, gnutls_x509_spki_st * params)
{
if (unlikely(se == NULL))
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -1511,25 +1530,25 @@ privkey_sign_raw_data(gnutls_privkey_t key,
#ifdef ENABLE_PKCS11
case GNUTLS_PRIVKEY_PKCS11:
return _gnutls_pkcs11_privkey_sign(key->key.pkcs11, se,
- data, signature,
- params);
+ data, signature, params);
#endif
case GNUTLS_PRIVKEY_X509:
return _gnutls_pk_sign(se->pk, signature, data,
&key->key.x509->params, params);
case GNUTLS_PRIVKEY_EXT:
if (unlikely(key->key.ext.sign_data_func == NULL &&
- key->key.ext.sign_hash_func == NULL &&
- key->key.ext.sign_func == NULL))
+ key->key.ext.sign_hash_func == NULL &&
+ key->key.ext.sign_func == NULL))
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if (_gnutls_pk_is_not_prehashed(se->pk)) {
if (!key->key.ext.sign_data_func)
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
return key->key.ext.sign_data_func(key, se->id,
- key->key.ext.userdata,
- 0,
+ key->key.
+ ext.userdata, 0,
data, signature);
} else if (key->key.ext.sign_hash_func) {
if (se->pk == GNUTLS_PK_RSA) {
@@ -1539,14 +1558,16 @@ privkey_sign_raw_data(gnutls_privkey_t key,
/* se may not be set here if we are doing legacy RSA */
return key->key.ext.sign_hash_func(key, se->id,
- key->key.ext.userdata,
- 0,
+ key->key.
+ ext.userdata, 0,
data, signature);
} else {
if (!PK_IS_OK_FOR_EXT2(se->pk))
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- return key->key.ext.sign_func(key, key->key.ext.userdata,
+ return key->key.ext.sign_func(key,
+ key->key.ext.userdata,
data, signature);
}
default:
@@ -1622,8 +1643,7 @@ int
gnutls_privkey_decrypt_data2(gnutls_privkey_t key,
unsigned int flags,
const gnutls_datum_t * ciphertext,
- unsigned char * plaintext,
- size_t plaintext_size)
+ unsigned char *plaintext, size_t plaintext_size)
{
/* Note: except for the backwards compatibility function, no
* conditional code should be called after the decryption
@@ -1638,8 +1658,7 @@ gnutls_privkey_decrypt_data2(gnutls_privkey_t key,
int ret;
ret = key->key.ext.decrypt_func(key,
key->key.ext.userdata,
- ciphertext,
- &plain);
+ ciphertext, &plain);
if (plain.size != plaintext_size) {
ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
} else {
@@ -1767,10 +1786,14 @@ gnutls_privkey_import_url(gnutls_privkey_t key, const char *url,
unsigned i;
int ret;
- for (i=0;i<_gnutls_custom_urls_size;i++) {
- if (strncmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) {
+ for (i = 0; i < _gnutls_custom_urls_size; i++) {
+ if (strncmp
+ (url, _gnutls_custom_urls[i].name,
+ _gnutls_custom_urls[i].name_size) == 0) {
if (_gnutls_custom_urls[i].import_key) {
- ret = _gnutls_custom_urls[i].import_key(key, url, flags);
+ ret =
+ _gnutls_custom_urls[i].import_key(key, url,
+ flags);
goto cleanup;
}
break;
@@ -1840,8 +1863,7 @@ void gnutls_privkey_set_pin_function(gnutls_privkey_t key,
* Since: 3.5.0
*
**/
-void gnutls_privkey_set_flags(gnutls_privkey_t key,
- unsigned int flags)
+void gnutls_privkey_set_flags(gnutls_privkey_t key, unsigned int flags)
{
key->flags |= flags;
if (key->type == GNUTLS_PRIVKEY_X509)
@@ -1924,7 +1946,8 @@ int gnutls_privkey_verify_params(gnutls_privkey_t key)
* Since: 3.6.0
**/
int
-gnutls_privkey_get_spki(gnutls_privkey_t privkey, gnutls_x509_spki_t spki, unsigned int flags)
+gnutls_privkey_get_spki(gnutls_privkey_t privkey, gnutls_x509_spki_t spki,
+ unsigned int flags)
{
gnutls_x509_spki_t p = &privkey->key.x509->params.spki;
@@ -1956,7 +1979,8 @@ gnutls_privkey_get_spki(gnutls_privkey_t privkey, gnutls_x509_spki_t spki, unsig
* Since: 3.6.0
**/
int
-gnutls_privkey_set_spki(gnutls_privkey_t privkey, const gnutls_x509_spki_t spki, unsigned int flags)
+gnutls_privkey_set_spki(gnutls_privkey_t privkey, const gnutls_x509_spki_t spki,
+ unsigned int flags)
{
if (privkey == NULL || privkey->type != GNUTLS_PRIVKEY_X509) {
gnutls_assert();
@@ -1987,10 +2011,12 @@ unsigned _gnutls_privkey_compatible_with_sig(gnutls_privkey_t privkey,
* negotiating RSA-PSS sig.
*/
- if (se->pk != privkey->pk_algorithm) { /* if the PK algorithm of the signature differs to the one on the pubkey */
+ if (se->pk != privkey->pk_algorithm) { /* if the PK algorithm of the signature differs to the one on the pubkey */
if (!sign_supports_priv_pk_algorithm(se, privkey->pk_algorithm)) {
- _gnutls_handshake_log("cannot use privkey of %s with %s\n",
- gnutls_pk_get_name(privkey->pk_algorithm), se->name);
+ _gnutls_handshake_log
+ ("cannot use privkey of %s with %s\n",
+ gnutls_pk_get_name(privkey->pk_algorithm),
+ se->name);
return 0;
}
}
@@ -2000,14 +2026,20 @@ unsigned _gnutls_privkey_compatible_with_sig(gnutls_privkey_t privkey,
int ret;
ret = privkey->key.ext.info_func(privkey,
- GNUTLS_SIGN_ALGO_TO_FLAGS(sign)|GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO,
- privkey->key.ext.userdata);
+ GNUTLS_SIGN_ALGO_TO_FLAGS
+ (sign) |
+ GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO,
+ privkey->key.
+ ext.userdata);
if (ret != -1)
return ret;
/* use the old flag */
- ret = privkey->key.ext.info_func(privkey, GNUTLS_PRIVKEY_INFO_SIGN_ALGO,
- privkey->key.ext.userdata);
+ ret =
+ privkey->key.ext.info_func(privkey,
+ GNUTLS_PRIVKEY_INFO_SIGN_ALGO,
+ privkey->key.
+ ext.userdata);
if (ret == (int)sign)
return 1;
}
@@ -2018,7 +2050,8 @@ unsigned _gnutls_privkey_compatible_with_sig(gnutls_privkey_t privkey,
}
#ifdef ENABLE_PKCS11
else if (privkey->type == GNUTLS_PRIVKEY_PKCS11) {
- if (privkey->pk_algorithm == GNUTLS_PK_RSA && se->pk == GNUTLS_PK_RSA_PSS) {
+ if (privkey->pk_algorithm == GNUTLS_PK_RSA
+ && se->pk == GNUTLS_PK_RSA_PSS) {
if (!privkey->key.pkcs11->rsa_pss_ok)
return 0;
}
diff --git a/lib/privkey_raw.c b/lib/privkey_raw.c
index ba6d86d40c..695dc2fcdd 100644
--- a/lib/privkey_raw.c
+++ b/lib/privkey_raw.c
@@ -55,11 +55,10 @@
**/
int
gnutls_privkey_export_rsa_raw(gnutls_privkey_t key,
- gnutls_datum_t * m, gnutls_datum_t * e,
- gnutls_datum_t * d, gnutls_datum_t * p,
- gnutls_datum_t * q, gnutls_datum_t * u,
- gnutls_datum_t * e1,
- gnutls_datum_t * e2)
+ gnutls_datum_t * m, gnutls_datum_t * e,
+ gnutls_datum_t * d, gnutls_datum_t * p,
+ gnutls_datum_t * q, gnutls_datum_t * u,
+ gnutls_datum_t * e1, gnutls_datum_t * e2)
{
return gnutls_privkey_export_rsa_raw2(key, m, e, d, p, q, u, e1, e2, 0);
}
@@ -87,28 +86,29 @@ gnutls_privkey_export_rsa_raw(gnutls_privkey_t key,
**/
int
gnutls_privkey_export_rsa_raw2(gnutls_privkey_t key,
- gnutls_datum_t * m, gnutls_datum_t * e,
- gnutls_datum_t * d, gnutls_datum_t * p,
- gnutls_datum_t * q, gnutls_datum_t * u,
- gnutls_datum_t * e1,
- gnutls_datum_t * e2,
- unsigned int flags)
+ gnutls_datum_t * m, gnutls_datum_t * e,
+ gnutls_datum_t * d, gnutls_datum_t * p,
+ gnutls_datum_t * q, gnutls_datum_t * u,
+ gnutls_datum_t * e1,
+ gnutls_datum_t * e2, unsigned int flags)
{
-gnutls_pk_params_st params;
-int ret;
+ gnutls_pk_params_st params;
+ int ret;
if (key == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
-
+
gnutls_pk_params_init(&params);
ret = _gnutls_privkey_get_mpis(key, &params);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _gnutls_params_get_rsa_raw(&params, m, e, d, p, q, u, e1, e2, flags);
+ ret =
+ _gnutls_params_get_rsa_raw(&params, m, e, d, p, q, u, e1, e2,
+ flags);
gnutls_pk_params_release(&params);
@@ -134,9 +134,9 @@ int ret;
**/
int
gnutls_privkey_export_dsa_raw(gnutls_privkey_t key,
- gnutls_datum_t * p, gnutls_datum_t * q,
- gnutls_datum_t * g, gnutls_datum_t * y,
- gnutls_datum_t * x)
+ gnutls_datum_t * p, gnutls_datum_t * q,
+ gnutls_datum_t * g, gnutls_datum_t * y,
+ gnutls_datum_t * x)
{
return gnutls_privkey_export_dsa_raw2(key, p, q, g, y, x, 0);
}
@@ -161,18 +161,18 @@ gnutls_privkey_export_dsa_raw(gnutls_privkey_t key,
**/
int
gnutls_privkey_export_dsa_raw2(gnutls_privkey_t key,
- gnutls_datum_t * p, gnutls_datum_t * q,
- gnutls_datum_t * g, gnutls_datum_t * y,
- gnutls_datum_t * x, unsigned int flags)
+ gnutls_datum_t * p, gnutls_datum_t * q,
+ gnutls_datum_t * g, gnutls_datum_t * y,
+ gnutls_datum_t * x, unsigned int flags)
{
-gnutls_pk_params_st params;
-int ret;
+ gnutls_pk_params_st params;
+ int ret;
if (key == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
-
+
gnutls_pk_params_init(&params);
ret = _gnutls_privkey_get_mpis(key, &params);
@@ -186,7 +186,6 @@ int ret;
return ret;
}
-
/**
* gnutls_privkey_export_ecc_raw:
* @key: Holds the public key
@@ -208,10 +207,9 @@ int ret;
**/
int
gnutls_privkey_export_ecc_raw(gnutls_privkey_t key,
- gnutls_ecc_curve_t * curve,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k)
+ gnutls_ecc_curve_t * curve,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y, gnutls_datum_t * k)
{
return gnutls_privkey_export_ecc_raw2(key, curve, x, y, k, 0);
}
@@ -238,20 +236,19 @@ gnutls_privkey_export_ecc_raw(gnutls_privkey_t key,
**/
int
gnutls_privkey_export_ecc_raw2(gnutls_privkey_t key,
- gnutls_ecc_curve_t * curve,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k,
- unsigned int flags)
+ gnutls_ecc_curve_t * curve,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y,
+ gnutls_datum_t * k, unsigned int flags)
{
-gnutls_pk_params_st params;
-int ret;
+ gnutls_pk_params_st params;
+ int ret;
if (key == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
-
+
gnutls_pk_params_init(&params);
ret = _gnutls_privkey_get_mpis(key, &params);
@@ -289,13 +286,12 @@ int ret;
**/
int
gnutls_privkey_export_gost_raw2(gnutls_privkey_t key,
- gnutls_ecc_curve_t * curve,
- gnutls_digest_algorithm_t * digest,
- gnutls_gost_paramset_t * paramset,
- gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k,
- unsigned int flags)
+ gnutls_ecc_curve_t * curve,
+ gnutls_digest_algorithm_t * digest,
+ gnutls_gost_paramset_t * paramset,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y,
+ gnutls_datum_t * k, unsigned int flags)
{
gnutls_pk_params_st params;
int ret;
@@ -340,37 +336,40 @@ gnutls_privkey_export_gost_raw2(gnutls_privkey_t key,
**/
int
gnutls_privkey_import_rsa_raw(gnutls_privkey_t key,
- const gnutls_datum_t * m,
- const gnutls_datum_t * e,
- const gnutls_datum_t * d,
- const gnutls_datum_t * p,
- const gnutls_datum_t * q,
- const gnutls_datum_t * u,
- const gnutls_datum_t * e1,
- const gnutls_datum_t * e2)
+ const gnutls_datum_t * m,
+ const gnutls_datum_t * e,
+ const gnutls_datum_t * d,
+ const gnutls_datum_t * p,
+ const gnutls_datum_t * q,
+ const gnutls_datum_t * u,
+ const gnutls_datum_t * e1,
+ const gnutls_datum_t * e2)
{
-int ret;
-gnutls_x509_privkey_t xkey;
+ int ret;
+ gnutls_x509_privkey_t xkey;
ret = gnutls_x509_privkey_init(&xkey);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = gnutls_x509_privkey_import_rsa_raw2(xkey, m, e, d, p, q, u, e1, e1);
+ ret =
+ gnutls_x509_privkey_import_rsa_raw2(xkey, m, e, d, p, q, u, e1, e1);
if (ret < 0) {
gnutls_assert();
goto error;
}
-
- ret = gnutls_privkey_import_x509(key, xkey, GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
+
+ ret =
+ gnutls_privkey_import_x509(key, xkey,
+ GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
if (ret < 0) {
gnutls_assert();
goto error;
}
-
+
return 0;
-error:
+ error:
gnutls_x509_privkey_deinit(xkey);
return ret;
}
@@ -393,14 +392,14 @@ error:
**/
int
gnutls_privkey_import_dsa_raw(gnutls_privkey_t key,
- const gnutls_datum_t * p,
- const gnutls_datum_t * q,
- const gnutls_datum_t * g,
- const gnutls_datum_t * y,
- const gnutls_datum_t * x)
+ const gnutls_datum_t * p,
+ const gnutls_datum_t * q,
+ const gnutls_datum_t * g,
+ const gnutls_datum_t * y,
+ const gnutls_datum_t * x)
{
-int ret;
-gnutls_x509_privkey_t xkey;
+ int ret;
+ gnutls_x509_privkey_t xkey;
ret = gnutls_x509_privkey_init(&xkey);
if (ret < 0)
@@ -411,16 +410,18 @@ gnutls_x509_privkey_t xkey;
gnutls_assert();
goto error;
}
-
- ret = gnutls_privkey_import_x509(key, xkey, GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
+
+ ret =
+ gnutls_privkey_import_x509(key, xkey,
+ GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
if (ret < 0) {
gnutls_assert();
goto error;
}
-
+
return 0;
-error:
+ error:
gnutls_x509_privkey_deinit(xkey);
return ret;
}
@@ -452,8 +453,8 @@ gnutls_privkey_import_ecc_raw(gnutls_privkey_t key,
const gnutls_datum_t * y,
const gnutls_datum_t * k)
{
-int ret;
-gnutls_x509_privkey_t xkey;
+ int ret;
+ gnutls_x509_privkey_t xkey;
ret = gnutls_x509_privkey_init(&xkey);
if (ret < 0)
@@ -464,16 +465,18 @@ gnutls_x509_privkey_t xkey;
gnutls_assert();
goto error;
}
-
- ret = gnutls_privkey_import_x509(key, xkey, GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
+
+ ret =
+ gnutls_privkey_import_x509(key, xkey,
+ GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
if (ret < 0) {
gnutls_assert();
goto error;
}
-
+
return 0;
-error:
+ error:
gnutls_x509_privkey_deinit(xkey);
return ret;
}
@@ -505,12 +508,12 @@ error:
**/
int
gnutls_privkey_import_gost_raw(gnutls_privkey_t key,
- gnutls_ecc_curve_t curve,
- gnutls_digest_algorithm_t digest,
- gnutls_gost_paramset_t paramset,
- const gnutls_datum_t * x,
- const gnutls_datum_t * y,
- const gnutls_datum_t * k)
+ gnutls_ecc_curve_t curve,
+ gnutls_digest_algorithm_t digest,
+ gnutls_gost_paramset_t paramset,
+ const gnutls_datum_t * x,
+ const gnutls_datum_t * y,
+ const gnutls_datum_t * k)
{
int ret;
gnutls_x509_privkey_t xkey;
@@ -519,13 +522,17 @@ gnutls_privkey_import_gost_raw(gnutls_privkey_t key,
if (ret < 0)
return gnutls_assert_val(ret);
- ret = gnutls_x509_privkey_import_gost_raw(xkey, curve, digest, paramset, x, y, k);
+ ret =
+ gnutls_x509_privkey_import_gost_raw(xkey, curve, digest, paramset,
+ x, y, k);
if (ret < 0) {
gnutls_assert();
goto error;
}
- ret = gnutls_privkey_import_x509(key, xkey, GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
+ ret =
+ gnutls_privkey_import_x509(key, xkey,
+ GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -533,7 +540,7 @@ gnutls_privkey_import_gost_raw(gnutls_privkey_t key,
return 0;
-error:
+ error:
gnutls_x509_privkey_deinit(xkey);
return ret;
}
diff --git a/lib/profiles.c b/lib/profiles.c
index d74cc2caaa..199020345b 100644
--- a/lib/profiles.c
+++ b/lib/profiles.c
@@ -46,11 +46,12 @@ static const gnutls_profile_entry profiles[] = {
{NULL, 0, 0}
};
-gnutls_sec_param_t _gnutls_profile_to_sec_level(gnutls_certificate_verification_profiles_t profile)
+gnutls_sec_param_t
+_gnutls_profile_to_sec_level(gnutls_certificate_verification_profiles_t profile)
{
const gnutls_profile_entry *p;
- for(p = profiles; p->name != NULL; p++) {
+ for (p = profiles; p->name != NULL; p++) {
if (profile == p->profile)
return p->sec_param;
}
@@ -68,7 +69,8 @@ gnutls_sec_param_t _gnutls_profile_to_sec_level(gnutls_certificate_verification_
* Returns: a #gnutls_certificate_verification_profiles_t id of the specified profile,
* or %GNUTLS_PROFILE_UNKNOWN on failure.
**/
-gnutls_certificate_verification_profiles_t gnutls_certificate_verification_profile_get_id(const char *name)
+gnutls_certificate_verification_profiles_t
+gnutls_certificate_verification_profile_get_id(const char *name)
{
const gnutls_profile_entry *p;
@@ -91,9 +93,9 @@ gnutls_certificate_verification_profiles_t gnutls_certificate_verification_profi
*
* Returns: a string that contains the name of the specified profile or %NULL.
**/
-const char *
-gnutls_certificate_verification_profile_get_name(gnutls_certificate_verification_profiles_t id)
-{
+const char
+*gnutls_certificate_verification_profile_get_name
+ (gnutls_certificate_verification_profiles_t id) {
const gnutls_profile_entry *p;
for (p = profiles; p->name != NULL; p++) {
diff --git a/lib/profiles.h b/lib/profiles.h
index ee49f9b08f..b5c0ca6182 100644
--- a/lib/profiles.h
+++ b/lib/profiles.h
@@ -21,13 +21,16 @@
*/
#ifndef GNUTLS_LIB_PROFILES_H
-#define GNUTLS_LIB_PROFILES_H
+# define GNUTLS_LIB_PROFILES_H
-#include <gnutls/gnutls.h>
-#include <gnutls/x509.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/x509.h>
-gnutls_sec_param_t _gnutls_profile_to_sec_level(gnutls_certificate_verification_profiles_t profile) __GNUTLS_PURE__;
+gnutls_sec_param_t
+_gnutls_profile_to_sec_level(gnutls_certificate_verification_profiles_t profile)
+__GNUTLS_PURE__;
-gnutls_certificate_verification_profiles_t _gnutls_get_system_wide_verification_profile(void);
+gnutls_certificate_verification_profiles_t
+_gnutls_get_system_wide_verification_profile(void);
-#endif /* GNUTLS_LIB_PROFILES_H */
+#endif /* GNUTLS_LIB_PROFILES_H */
diff --git a/lib/psk.c b/lib/psk.c
index 49fe91c995..b9823439e8 100644
--- a/lib/psk.c
+++ b/lib/psk.c
@@ -30,12 +30,12 @@
#ifdef ENABLE_PSK
-#include <auth/psk_passwd.h>
-#include <num.h>
-#include <file.h>
-#include <datum.h>
-#include "debug.h"
-#include "dh.h"
+# include <auth/psk_passwd.h>
+# include <num.h>
+# include <file.h>
+# include <datum.h>
+# include "debug.h"
+# include "dh.h"
/**
* gnutls_psk_free_client_credentials:
@@ -59,9 +59,7 @@ void gnutls_psk_free_client_credentials(gnutls_psk_client_credentials_t sc)
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise
* an error code is returned.
**/
-int
-gnutls_psk_allocate_client_credentials(gnutls_psk_client_credentials_t *
- sc)
+int gnutls_psk_allocate_client_credentials(gnutls_psk_client_credentials_t * sc)
{
*sc = gnutls_calloc(1, sizeof(psk_client_credentials_st));
@@ -102,7 +100,7 @@ gnutls_psk_set_client_credentials(gnutls_psk_client_credentials_t res,
if (username == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- dat.data = (unsigned char *) username;
+ dat.data = (unsigned char *)username;
dat.size = strlen(username);
return gnutls_psk_set_client_credentials2(res, &dat, key, flags);
@@ -124,19 +122,19 @@ gnutls_psk_set_client_credentials(gnutls_psk_client_credentials_t res,
*/
int
gnutls_psk_set_client_credentials2(gnutls_psk_client_credentials_t res,
- const gnutls_datum_t *username,
- const gnutls_datum_t *key,
+ const gnutls_datum_t * username,
+ const gnutls_datum_t * key,
gnutls_psk_key_flags flags)
{
int ret;
- if (username == NULL || username->data == NULL || key == NULL || key->data == NULL) {
+ if (username == NULL || username->data == NULL || key == NULL
+ || key->data == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
- ret =
- _gnutls_set_datum(&res->username, username->data, username->size);
+ ret = _gnutls_set_datum(&res->username, username->data, username->size);
if (ret < 0)
return ret;
@@ -156,11 +154,10 @@ gnutls_psk_set_client_credentials2(gnutls_psk_client_credentials_t res,
goto error;
}
- ret =
- gnutls_hex_decode(key, (char *) res->key.data, &size);
- res->key.size = (unsigned int) size;
+ ret = gnutls_hex_decode(key, (char *)res->key.data, &size);
+ res->key.size = (unsigned int)size;
if (ret < 0) {
-
+
gnutls_assert();
goto error;
}
@@ -174,7 +171,7 @@ gnutls_psk_set_client_credentials2(gnutls_psk_client_credentials_t res,
return 0;
- error:
+ error:
_gnutls_free_datum(&res->username);
_gnutls_free_datum(&res->key);
@@ -207,9 +204,7 @@ void gnutls_psk_free_server_credentials(gnutls_psk_server_credentials_t sc)
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise
* an error code is returned.
**/
-int
-gnutls_psk_allocate_server_credentials(gnutls_psk_server_credentials_t *
- sc)
+int gnutls_psk_allocate_server_credentials(gnutls_psk_server_credentials_t * sc)
{
*sc = gnutls_calloc(1, sizeof(psk_server_cred_st));
@@ -221,7 +216,6 @@ gnutls_psk_allocate_server_credentials(gnutls_psk_server_credentials_t *
return 0;
}
-
/**
* gnutls_psk_set_server_credentials_file:
* @res: is a #gnutls_psk_server_credentials_t type.
@@ -293,16 +287,16 @@ gnutls_psk_set_server_credentials_hint(gnutls_psk_server_credentials_t res,
}
static int call_server_callback_legacy(gnutls_session_t session,
- const gnutls_datum_t *username,
- gnutls_datum_t *key)
+ const gnutls_datum_t * username,
+ gnutls_datum_t * key)
{
- gnutls_psk_server_credentials_t cred =
- (gnutls_psk_server_credentials_t)
- _gnutls_get_cred(session, GNUTLS_CRD_PSK);
+ gnutls_psk_server_credentials_t cred = (gnutls_psk_server_credentials_t)
+ _gnutls_get_cred(session, GNUTLS_CRD_PSK);
if (unlikely(cred == NULL))
- return gnutls_assert_val(-1);
+ return gnutls_assert_val(-1);
- return cred->pwd_callback_legacy(session, (const char *) username->data, key);
+ return cred->pwd_callback_legacy(session, (const char *)username->data,
+ key);
}
/**
@@ -359,25 +353,25 @@ gnutls_psk_set_server_credentials_function(gnutls_psk_server_credentials_t
* an error.
**/
void
-gnutls_psk_set_server_credentials_function2(gnutls_psk_server_credentials_t cred,
- gnutls_psk_server_credentials_function2 func)
+gnutls_psk_set_server_credentials_function2(gnutls_psk_server_credentials_t
+ cred,
+ gnutls_psk_server_credentials_function2
+ func)
{
cred->pwd_callback = func;
cred->pwd_callback_legacy = NULL;
}
static int call_client_callback_legacy(gnutls_session_t session,
- gnutls_datum_t *username,
- gnutls_datum_t *key)
+ gnutls_datum_t * username,
+ gnutls_datum_t * key)
{
int ret;
char *user_p;
- gnutls_psk_client_credentials_t cred =
- (gnutls_psk_client_credentials_t)
- _gnutls_get_cred(session, GNUTLS_CRD_PSK);
+ gnutls_psk_client_credentials_t cred = (gnutls_psk_client_credentials_t)
+ _gnutls_get_cred(session, GNUTLS_CRD_PSK);
if (unlikely(cred == NULL))
- return gnutls_assert_val(-1);
-
+ return gnutls_assert_val(-1);
ret = cred->get_function_legacy(session, &user_p, key);
@@ -387,7 +381,7 @@ static int call_client_callback_legacy(gnutls_session_t session,
username->data = (uint8_t *) user_p;
username->size = strlen(user_p);
-end:
+ end:
return ret;
}
@@ -447,14 +441,15 @@ gnutls_psk_set_client_credentials_function(gnutls_psk_client_credentials_t
* -1 indicates an error.
**/
void
-gnutls_psk_set_client_credentials_function2(gnutls_psk_client_credentials_t cred,
- gnutls_psk_client_credentials_function2 *func)
+gnutls_psk_set_client_credentials_function2(gnutls_psk_client_credentials_t
+ cred,
+ gnutls_psk_client_credentials_function2
+ * func)
{
cred->get_function = func;
cred->get_function_legacy = NULL;
}
-
/**
* gnutls_psk_server_get_username:
* @session: is a gnutls session
@@ -481,7 +476,8 @@ const char *gnutls_psk_server_get_username(gnutls_session_t session)
if (info == NULL)
return NULL;
- if (info->username[0] != 0 && !_gnutls_has_embedded_null(info->username, info->username_len))
+ if (info->username[0] != 0
+ && !_gnutls_has_embedded_null(info->username, info->username_len))
return info->username;
return NULL;
@@ -503,7 +499,8 @@ const char *gnutls_psk_server_get_username(gnutls_session_t session)
*
* Returns: %GNUTLS_E_SUCCESS, or a negative value in case of an error.
**/
-int gnutls_psk_server_get_username2(gnutls_session_t session, gnutls_datum_t *username)
+int gnutls_psk_server_get_username2(gnutls_session_t session,
+ gnutls_datum_t * username)
{
psk_auth_info_t info;
@@ -514,7 +511,7 @@ int gnutls_psk_server_get_username2(gnutls_session_t session, gnutls_datum_t *us
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
if (info->username_len > 0) {
- username->data = (unsigned char *) info->username;
+ username->data = (unsigned char *)info->username;
username->size = info->username_len;
return 0;
}
@@ -572,7 +569,10 @@ gnutls_psk_set_server_dh_params(gnutls_psk_server_credentials_t res,
}
res->dh_params = dh_params;
- res->dh_sec_param = gnutls_pk_bits_to_sec_param(GNUTLS_PK_DH, _gnutls_mpi_get_nbits(dh_params->params[0]));
+ res->dh_sec_param =
+ gnutls_pk_bits_to_sec_param(GNUTLS_PK_DH,
+ _gnutls_mpi_get_nbits(dh_params->params
+ [0]));
}
/**
@@ -596,7 +596,7 @@ gnutls_psk_set_server_dh_params(gnutls_psk_server_credentials_t res,
**/
int
gnutls_psk_set_server_known_dh_params(gnutls_psk_server_credentials_t res,
- gnutls_sec_param_t sec_param)
+ gnutls_sec_param_t sec_param)
{
res->dh_sec_param = sec_param;
diff --git a/lib/pubkey.c b/lib/pubkey.c
index fd72b49674..a396e56f26 100644
--- a/lib/pubkey.c
+++ b/lib/pubkey.c
@@ -39,17 +39,16 @@
#include <ecc.h>
static int
-pubkey_verify_hashed_data(const gnutls_sign_entry_st *se,
- const mac_entry_st *me,
+pubkey_verify_hashed_data(const gnutls_sign_entry_st * se,
+ const mac_entry_st * me,
const gnutls_datum_t * hash,
const gnutls_datum_t * signature,
gnutls_pk_params_st * params,
- gnutls_x509_spki_st * sign_params,
- unsigned flags);
+ gnutls_x509_spki_st * sign_params, unsigned flags);
static
int pubkey_supports_sig(gnutls_pubkey_t pubkey,
- const gnutls_sign_entry_st *se);
+ const gnutls_sign_entry_st * se);
unsigned pubkey_to_bits(const gnutls_pk_params_st * params)
{
@@ -310,7 +309,7 @@ gnutls_pubkey_get_preferred_hash_algorithm(gnutls_pubkey_t key,
me = _gnutls_dsa_q_to_hash(&key->params, NULL);
if (hash)
- *hash = (gnutls_digest_algorithm_t)me->id;
+ *hash = (gnutls_digest_algorithm_t) me->id;
ret = 0;
break;
@@ -344,14 +343,18 @@ gnutls_pubkey_get_preferred_hash_algorithm(gnutls_pubkey_t key,
if (key->params.spki.rsa_pss_dig) {
*hash = key->params.spki.rsa_pss_dig;
} else {
- *hash = _gnutls_pk_bits_to_sha_hash(pubkey_to_bits(&key->params));
+ *hash =
+ _gnutls_pk_bits_to_sha_hash(pubkey_to_bits
+ (&key->params));
}
}
ret = 0;
break;
case GNUTLS_PK_RSA:
if (hash)
- *hash = _gnutls_pk_bits_to_sha_hash(pubkey_to_bits(&key->params));
+ *hash =
+ _gnutls_pk_bits_to_sha_hash(pubkey_to_bits
+ (&key->params));
ret = 0;
break;
@@ -368,8 +371,8 @@ gnutls_pubkey_get_preferred_hash_algorithm(gnutls_pubkey_t key,
/* The EC_PARAMS attribute can contain either printable string with curve name
* or OID defined in RFC 8410 */
static int
-gnutls_pubkey_parse_ecc_eddsa_params(const gnutls_datum_t *parameters,
- gnutls_ecc_curve_t *outcurve)
+gnutls_pubkey_parse_ecc_eddsa_params(const gnutls_datum_t * parameters,
+ gnutls_ecc_curve_t * outcurve)
{
gnutls_ecc_curve_t curve = GNUTLS_ECC_CURVE_INVALID;
asn1_node asn1 = NULL;
@@ -424,7 +427,8 @@ gnutls_pubkey_parse_ecc_eddsa_params(const gnutls_datum_t *parameters,
curve = gnutls_oid_to_ecc_curve(str);
if (curve != GNUTLS_ECC_CURVE_ED25519 &&
curve != GNUTLS_ECC_CURVE_ED448) {
- _gnutls_debug_log("Curve %s is not supported for EdDSA\n", str);
+ _gnutls_debug_log
+ ("Curve %s is not supported for EdDSA\n", str);
gnutls_assert();
curve = GNUTLS_ECC_CURVE_INVALID;
ret = GNUTLS_E_ECC_UNSUPPORTED_CURVE;
@@ -463,14 +467,12 @@ gnutls_pubkey_parse_ecc_eddsa_params(const gnutls_datum_t *parameters,
break;
}
-
- cleanup:
+ cleanup:
asn1_delete_structure(&asn1);
*outcurve = curve;
return ret;
}
-
static int
gnutls_pubkey_import_ecc_eddsa(gnutls_pubkey_t key,
const gnutls_datum_t * parameters,
@@ -479,7 +481,7 @@ gnutls_pubkey_import_ecc_eddsa(gnutls_pubkey_t key,
int ret;
gnutls_ecc_curve_t curve = GNUTLS_ECC_CURVE_INVALID;
- gnutls_datum_t raw_point = {NULL, 0};
+ gnutls_datum_t raw_point = { NULL, 0 };
ret = gnutls_pubkey_parse_ecc_eddsa_params(parameters, &curve);
if (ret < 0) {
@@ -502,8 +504,8 @@ gnutls_pubkey_import_ecc_eddsa(gnutls_pubkey_t key,
/* Same as above, but for Edwards key agreement */
static int
-gnutls_pubkey_parse_ecc_ecdh_params(const gnutls_datum_t *parameters,
- gnutls_ecc_curve_t *outcurve)
+gnutls_pubkey_parse_ecc_ecdh_params(const gnutls_datum_t * parameters,
+ gnutls_ecc_curve_t * outcurve)
{
gnutls_ecc_curve_t curve = GNUTLS_ECC_CURVE_INVALID;
asn1_node asn1 = NULL;
@@ -558,7 +560,9 @@ gnutls_pubkey_parse_ecc_ecdh_params(const gnutls_datum_t *parameters,
curve = gnutls_oid_to_ecc_curve(str);
if (curve != GNUTLS_ECC_CURVE_X25519 &&
curve != GNUTLS_ECC_CURVE_X448) {
- _gnutls_debug_log("Curve %s is not supported for Edwards-based key agreement\n", str);
+ _gnutls_debug_log
+ ("Curve %s is not supported for Edwards-based key agreement\n",
+ str);
gnutls_assert();
curve = GNUTLS_ECC_CURVE_INVALID;
ret = GNUTLS_E_ECC_UNSUPPORTED_CURVE;
@@ -597,8 +601,7 @@ gnutls_pubkey_parse_ecc_ecdh_params(const gnutls_datum_t *parameters,
break;
}
-
- cleanup:
+ cleanup:
asn1_delete_structure(&asn1);
*outcurve = curve;
return ret;
@@ -606,13 +609,13 @@ gnutls_pubkey_parse_ecc_ecdh_params(const gnutls_datum_t *parameters,
static int
gnutls_pubkey_import_ecc_ecdh(gnutls_pubkey_t key,
- const gnutls_datum_t * parameters,
- const gnutls_datum_t * ecpoint)
+ const gnutls_datum_t * parameters,
+ const gnutls_datum_t * ecpoint)
{
int ret;
gnutls_ecc_curve_t curve = GNUTLS_ECC_CURVE_INVALID;
- gnutls_datum_t raw_point = {NULL, 0};
+ gnutls_datum_t raw_point = { NULL, 0 };
ret = gnutls_pubkey_parse_ecc_ecdh_params(parameters, &curve);
if (ret < 0) {
@@ -681,12 +684,13 @@ gnutls_pubkey_import_pkcs11(gnutls_pubkey_t key,
goto cleanup_crt;
}
- ret = gnutls_x509_crt_get_key_usage(xcrt, &key->key_usage, NULL);
+ ret =
+ gnutls_x509_crt_get_key_usage(xcrt, &key->key_usage, NULL);
if (ret < 0)
- key->key_usage = 0;
+ key->key_usage = 0;
ret = 0;
- cleanup_crt:
+ cleanup_crt:
gnutls_x509_crt_deinit(xcrt);
return ret;
}
@@ -715,7 +719,7 @@ gnutls_pubkey_import_pkcs11(gnutls_pubkey_t key,
break;
case GNUTLS_PK_ECDH_X25519:
ret = gnutls_pubkey_import_ecc_ecdh(key, &obj->pubkey[0],
- &obj->pubkey[1]);
+ &obj->pubkey[1]);
break;
default:
gnutls_assert();
@@ -759,7 +763,7 @@ gnutls_pubkey_import_pkcs11(gnutls_pubkey_t key,
int
gnutls_pubkey_export(gnutls_pubkey_t key,
gnutls_x509_crt_fmt_t format, void *output_data,
- size_t * output_data_size)
+ size_t *output_data_size)
{
int result;
asn1_node spk = NULL;
@@ -776,9 +780,7 @@ gnutls_pubkey_export(gnutls_pubkey_t key,
return _gnutls_asn2err(result);
}
- result =
- _gnutls_x509_encode_and_copy_PKI_params(spk, "",
- &key->params);
+ result = _gnutls_x509_encode_and_copy_PKI_params(spk, "", &key->params);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -786,8 +788,7 @@ gnutls_pubkey_export(gnutls_pubkey_t key,
result = _gnutls_x509_export_int_named(spk, "",
format, PEM_PK,
- output_data,
- output_data_size);
+ output_data, output_data_size);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -795,7 +796,7 @@ gnutls_pubkey_export(gnutls_pubkey_t key,
result = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&spk);
return result;
@@ -840,17 +841,13 @@ gnutls_pubkey_export2(gnutls_pubkey_t key,
return _gnutls_asn2err(result);
}
- result =
- _gnutls_x509_encode_and_copy_PKI_params(spk, "",
- &key->params);
+ result = _gnutls_x509_encode_and_copy_PKI_params(spk, "", &key->params);
if (result < 0) {
gnutls_assert();
goto cleanup;
}
- result = _gnutls_x509_export_int_named2(spk, "",
- format, PEM_PK,
- out);
+ result = _gnutls_x509_export_int_named2(spk, "", format, PEM_PK, out);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -858,7 +855,7 @@ gnutls_pubkey_export2(gnutls_pubkey_t key,
result = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&spk);
return result;
@@ -888,8 +885,7 @@ gnutls_pubkey_export2(gnutls_pubkey_t key,
**/
int
gnutls_pubkey_get_key_id(gnutls_pubkey_t key, unsigned int flags,
- unsigned char *output_data,
- size_t * output_data_size)
+ unsigned char *output_data, size_t *output_data_size)
{
int ret = 0;
@@ -928,8 +924,8 @@ gnutls_pubkey_get_key_id(gnutls_pubkey_t key, unsigned int flags,
**/
int
gnutls_pubkey_export_rsa_raw2(gnutls_pubkey_t key,
- gnutls_datum_t * m, gnutls_datum_t * e,
- unsigned flags)
+ gnutls_datum_t * m, gnutls_datum_t * e,
+ unsigned flags)
{
int ret;
mpi_dprint_func dprint = _gnutls_mpi_dprint_lz;
@@ -990,7 +986,6 @@ gnutls_pubkey_export_rsa_raw(gnutls_pubkey_t key,
return gnutls_pubkey_export_rsa_raw2(key, m, e, 0);
}
-
/**
* gnutls_pubkey_export_dsa_raw:
* @key: Holds the public key
@@ -1038,9 +1033,9 @@ gnutls_pubkey_export_dsa_raw(gnutls_pubkey_t key,
**/
int
gnutls_pubkey_export_dsa_raw2(gnutls_pubkey_t key,
- gnutls_datum_t * p, gnutls_datum_t * q,
- gnutls_datum_t * g, gnutls_datum_t * y,
- unsigned flags)
+ gnutls_datum_t * p, gnutls_datum_t * q,
+ gnutls_datum_t * g, gnutls_datum_t * y,
+ unsigned flags)
{
int ret;
mpi_dprint_func dprint = _gnutls_mpi_dprint_lz;
@@ -1154,9 +1149,9 @@ gnutls_pubkey_export_ecc_raw(gnutls_pubkey_t key,
**/
int
gnutls_pubkey_export_ecc_raw2(gnutls_pubkey_t key,
- gnutls_ecc_curve_t * curve,
- gnutls_datum_t * x, gnutls_datum_t * y,
- unsigned int flags)
+ gnutls_ecc_curve_t * curve,
+ gnutls_datum_t * x, gnutls_datum_t * y,
+ unsigned int flags)
{
int ret;
mpi_dprint_func dprint = _gnutls_mpi_dprint_lz;
@@ -1182,7 +1177,9 @@ gnutls_pubkey_export_ecc_raw2(gnutls_pubkey_t key,
key->params.algo == GNUTLS_PK_ECDH_X25519 ||
key->params.algo == GNUTLS_PK_ECDH_X448) {
if (x) {
- ret = _gnutls_set_datum(x, key->params.raw_pub.data, key->params.raw_pub.size);
+ ret =
+ _gnutls_set_datum(x, key->params.raw_pub.data,
+ key->params.raw_pub.size);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -1236,7 +1233,7 @@ int gnutls_pubkey_export_ecc_x962(gnutls_pubkey_t key,
gnutls_datum_t * ecpoint)
{
int ret;
- gnutls_datum_t raw_point = {NULL,0};
+ gnutls_datum_t raw_point = { NULL, 0 };
if (key == NULL || key->params.algo != GNUTLS_PK_EC)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -1246,7 +1243,8 @@ int gnutls_pubkey_export_ecc_x962(gnutls_pubkey_t key,
return gnutls_assert_val(ret);
ret = _gnutls_x509_encode_string(ASN1_ETYPE_OCTET_STRING,
- raw_point.data, raw_point.size, ecpoint);
+ raw_point.data, raw_point.size,
+ ecpoint);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1360,8 +1358,7 @@ gnutls_pubkey_export_gost_raw2(gnutls_pubkey_t key,
**/
int
gnutls_pubkey_import(gnutls_pubkey_t key,
- const gnutls_datum_t * data,
- gnutls_x509_crt_fmt_t format)
+ const gnutls_datum_t * data, gnutls_x509_crt_fmt_t format)
{
int result = 0, need_free = 0;
gnutls_datum_t _data;
@@ -1415,7 +1412,7 @@ gnutls_pubkey_import(gnutls_pubkey_t key,
key->bits = pubkey_to_bits(&key->params);
result = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&spk);
if (need_free)
@@ -1483,9 +1480,7 @@ int gnutls_x509_crq_set_pubkey(gnutls_x509_crq_t crq, gnutls_pubkey_t key)
}
result = _gnutls_x509_encode_and_copy_PKI_params
- (crq->crq,
- "certificationRequestInfo.subjectPKInfo",
- &key->params);
+ (crq->crq, "certificationRequestInfo.subjectPKInfo", &key->params);
if (result < 0) {
gnutls_assert();
@@ -1521,7 +1516,7 @@ int gnutls_pubkey_set_key_usage(gnutls_pubkey_t key, unsigned int usage)
#ifdef ENABLE_PKCS11
-#if 0
+# if 0
/**
* gnutls_pubkey_import_pkcs11_url:
* @key: A key of type #gnutls_pubkey_t
@@ -1542,11 +1537,11 @@ gnutls_pubkey_import_pkcs11_url(gnutls_pubkey_t key, const char *url,
{
int x;
}
-#endif
+# endif
static int
_gnutls_pubkey_import_pkcs11_url(gnutls_pubkey_t key, const char *url,
- unsigned int flags)
+ unsigned int flags)
{
gnutls_pkcs11_obj_t pcrt;
int ret;
@@ -1561,7 +1556,10 @@ _gnutls_pubkey_import_pkcs11_url(gnutls_pubkey_t key, const char *url,
gnutls_pkcs11_obj_set_pin_function(pcrt, key->pin.cb,
key->pin.data);
- ret = gnutls_pkcs11_obj_import_url(pcrt, url, flags|GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PUBKEY);
+ ret =
+ gnutls_pkcs11_obj_import_url(pcrt, url,
+ flags |
+ GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PUBKEY);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1574,7 +1572,7 @@ _gnutls_pubkey_import_pkcs11_url(gnutls_pubkey_t key, const char *url,
}
ret = 0;
- cleanup:
+ cleanup:
gnutls_pkcs11_obj_deinit(pcrt);
@@ -1602,10 +1600,14 @@ gnutls_pubkey_import_url(gnutls_pubkey_t key, const char *url,
{
unsigned i;
- for (i=0;i<_gnutls_custom_urls_size;i++) {
- if (strncmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) {
+ for (i = 0; i < _gnutls_custom_urls_size; i++) {
+ if (strncmp
+ (url, _gnutls_custom_urls[i].name,
+ _gnutls_custom_urls[i].name_size) == 0) {
if (_gnutls_custom_urls[i].import_pubkey)
- return _gnutls_custom_urls[i].import_pubkey(key, url, flags);
+ return _gnutls_custom_urls[i].import_pubkey(key,
+ url,
+ flags);
}
}
@@ -1642,8 +1644,7 @@ gnutls_pubkey_import_url(gnutls_pubkey_t key, const char *url,
**/
int
gnutls_pubkey_import_rsa_raw(gnutls_pubkey_t key,
- const gnutls_datum_t * m,
- const gnutls_datum_t * e)
+ const gnutls_datum_t * m, const gnutls_datum_t * e)
{
if (key == NULL) {
gnutls_assert();
@@ -1692,8 +1693,7 @@ gnutls_pubkey_import_rsa_raw(gnutls_pubkey_t key,
int
gnutls_pubkey_import_ecc_raw(gnutls_pubkey_t key,
gnutls_ecc_curve_t curve,
- const gnutls_datum_t * x,
- const gnutls_datum_t * y)
+ const gnutls_datum_t * x, const gnutls_datum_t * y)
{
int ret;
@@ -1762,7 +1762,7 @@ gnutls_pubkey_import_ecc_raw(gnutls_pubkey_t key,
return 0;
- cleanup:
+ cleanup:
gnutls_pk_params_release(&key->params);
return ret;
}
@@ -1787,7 +1787,7 @@ gnutls_pubkey_import_ecc_x962(gnutls_pubkey_t key,
const gnutls_datum_t * ecpoint)
{
int ret;
- gnutls_datum_t raw_point = {NULL,0};
+ gnutls_datum_t raw_point = { NULL, 0 };
if (key == NULL) {
gnutls_assert();
@@ -1808,7 +1808,8 @@ gnutls_pubkey_import_ecc_x962(gnutls_pubkey_t key,
}
ret = _gnutls_x509_decode_string(ASN1_ETYPE_OCTET_STRING,
- ecpoint->data, ecpoint->size, &raw_point, 0);
+ ecpoint->data, ecpoint->size,
+ &raw_point, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1827,7 +1828,7 @@ gnutls_pubkey_import_ecc_x962(gnutls_pubkey_t key,
gnutls_free(raw_point.data);
return 0;
- cleanup:
+ cleanup:
gnutls_pk_params_release(&key->params);
gnutls_free(raw_point.data);
return ret;
@@ -1858,11 +1859,11 @@ gnutls_pubkey_import_ecc_x962(gnutls_pubkey_t key,
**/
int
gnutls_pubkey_import_gost_raw(gnutls_pubkey_t key,
- gnutls_ecc_curve_t curve,
- gnutls_digest_algorithm_t digest,
- gnutls_gost_paramset_t paramset,
- const gnutls_datum_t * x,
- const gnutls_datum_t * y)
+ gnutls_ecc_curve_t curve,
+ gnutls_digest_algorithm_t digest,
+ gnutls_gost_paramset_t paramset,
+ const gnutls_datum_t * x,
+ const gnutls_datum_t * y)
{
int ret;
gnutls_pk_algorithm_t pk_algo;
@@ -1904,7 +1905,7 @@ gnutls_pubkey_import_gost_raw(gnutls_pubkey_t key,
return 0;
- cleanup:
+ cleanup:
gnutls_pk_params_release(&key->params);
return ret;
}
@@ -1930,8 +1931,7 @@ int
gnutls_pubkey_import_dsa_raw(gnutls_pubkey_t key,
const gnutls_datum_t * p,
const gnutls_datum_t * q,
- const gnutls_datum_t * g,
- const gnutls_datum_t * y)
+ const gnutls_datum_t * g, const gnutls_datum_t * y)
{
size_t siz = 0;
@@ -1985,16 +1985,17 @@ gnutls_pubkey_import_dsa_raw(gnutls_pubkey_t key,
* information, and reports any incompatibilities between the existing
* parameters (if any) with the signature algorithm */
static
-int fixup_spki_params(const gnutls_pk_params_st *key_params, const gnutls_sign_entry_st *se,
- const mac_entry_st *me, gnutls_x509_spki_st *params)
+int fixup_spki_params(const gnutls_pk_params_st * key_params,
+ const gnutls_sign_entry_st * se, const mac_entry_st * me,
+ gnutls_x509_spki_st * params)
{
unsigned bits;
if (se->pk != key_params->algo) {
if (!sign_supports_priv_pk_algorithm(se, key_params->algo)) {
_gnutls_debug_log("have key: %s/%d, with sign %s/%d\n",
- gnutls_pk_get_name(key_params->algo), key_params->algo,
- se->name, se->id);
+ gnutls_pk_get_name(key_params->algo),
+ key_params->algo, se->name, se->id);
return gnutls_assert_val(GNUTLS_E_CONSTRAINT_ERROR);
}
}
@@ -2007,7 +2008,8 @@ int fixup_spki_params(const gnutls_pk_params_st *key_params, const gnutls_sign_e
/* The requested sign algorithm is RSA-PSS, while the
* pubkey doesn't include parameter information. Fill
* it with the same way as gnutls_privkey_sign*. */
- if (key_params->algo == GNUTLS_PK_RSA || params->rsa_pss_dig == 0) {
+ if (key_params->algo == GNUTLS_PK_RSA
+ || params->rsa_pss_dig == 0) {
bits = pubkey_to_bits(key_params);
params->rsa_pss_dig = se->hash;
ret = _gnutls_find_rsa_pss_salt_size(bits, me, 0);
@@ -2019,8 +2021,7 @@ int fixup_spki_params(const gnutls_pk_params_st *key_params, const gnutls_sign_e
if (params->rsa_pss_dig != se->hash)
return gnutls_assert_val(GNUTLS_E_CONSTRAINT_ERROR);
- } else if (params->pk == GNUTLS_PK_DSA ||
- params->pk == GNUTLS_PK_ECDSA) {
+ } else if (params->pk == GNUTLS_PK_DSA || params->pk == GNUTLS_PK_ECDSA) {
params->dsa_dig = se->hash;
}
@@ -2139,7 +2140,9 @@ gnutls_pubkey_verify_hash2(gnutls_pubkey_t key,
if (flags & GNUTLS_VERIFY_USE_TLS1_RSA) {
if (!GNUTLS_PK_IS_RSA(key->params.algo))
- return gnutls_assert_val(GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY);
params.pk = GNUTLS_PK_RSA;
/* we do not check for insecure algorithms with this flag */
return _gnutls_pk_verify(params.pk, hash, signature,
@@ -2160,8 +2163,7 @@ gnutls_pubkey_verify_hash2(gnutls_pubkey_t key,
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
ret = pubkey_verify_hashed_data(se, me, hash, signature,
- &key->params,
- &params, flags);
+ &key->params, &params, flags);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -2201,26 +2203,31 @@ gnutls_pubkey_encrypt_data(gnutls_pubkey_t key, unsigned int flags,
}
static
-int pubkey_supports_sig(gnutls_pubkey_t pubkey,
- const gnutls_sign_entry_st *se)
+int pubkey_supports_sig(gnutls_pubkey_t pubkey, const gnutls_sign_entry_st * se)
{
if (pubkey->params.algo == GNUTLS_PK_ECDSA && se->curve) {
gnutls_ecc_curve_t curve = pubkey->params.curve;
if (curve != se->curve) {
- _gnutls_handshake_log("have key: ECDSA with %s/%d, with sign %s/%d\n",
- gnutls_ecc_curve_get_name(curve), (int)curve,
- se->name, se->id);
- return gnutls_assert_val(GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY);
+ _gnutls_handshake_log
+ ("have key: ECDSA with %s/%d, with sign %s/%d\n",
+ gnutls_ecc_curve_get_name(curve), (int)curve,
+ se->name, se->id);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY);
}
}
- if (se->pk != pubkey->params.algo) { /* if the PK algorithm of the signature differs to the one on the pubkey */
+ if (se->pk != pubkey->params.algo) { /* if the PK algorithm of the signature differs to the one on the pubkey */
if (!sign_supports_priv_pk_algorithm(se, pubkey->params.algo)) {
- _gnutls_handshake_log("have key: %s/%d, with sign %s/%d\n",
- gnutls_pk_get_name(pubkey->params.algo), pubkey->params.algo,
- se->name, se->id);
- return gnutls_assert_val(GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY);
+ _gnutls_handshake_log
+ ("have key: %s/%d, with sign %s/%d\n",
+ gnutls_pk_get_name(pubkey->params.algo),
+ pubkey->params.algo, se->name, se->id);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY);
}
}
@@ -2267,8 +2274,7 @@ int _gnutls_pubkey_compatible_with_sig(gnutls_session_t session,
if (sig_hash_size < hash_size)
_gnutls_audit_log(session,
"The hash size used in signature (%u) is less than the expected (%u)\n",
- sig_hash_size,
- hash_size);
+ sig_hash_size, hash_size);
}
} else if (pubkey->params.algo == GNUTLS_PK_ECDSA) {
@@ -2283,8 +2289,7 @@ int _gnutls_pubkey_compatible_with_sig(gnutls_session_t session,
if (sig_hash_size < hash_size)
_gnutls_audit_log(session,
"The hash size used in signature (%u) is less than the expected (%u)\n",
- sig_hash_size,
- hash_size);
+ sig_hash_size, hash_size);
}
} else if (pubkey->params.algo == GNUTLS_PK_GOST_01 ||
@@ -2292,11 +2297,16 @@ int _gnutls_pubkey_compatible_with_sig(gnutls_session_t session,
pubkey->params.algo == GNUTLS_PK_GOST_12_512) {
if (_gnutls_version_has_selectable_sighash(ver)
&& se != NULL) {
- if (_gnutls_gost_digest(pubkey->params.algo) != se->hash) {
+ if (_gnutls_gost_digest(pubkey->params.algo) !=
+ se->hash) {
_gnutls_audit_log(session,
"The hash algo used in signature (%u) is not expected (%u)\n",
- se->hash, _gnutls_gost_digest(pubkey->params.algo));
- return gnutls_assert_val(GNUTLS_E_CONSTRAINT_ERROR);
+ se->hash,
+ _gnutls_gost_digest
+ (pubkey->params.algo));
+ return
+ gnutls_assert_val
+ (GNUTLS_E_CONSTRAINT_ERROR);
}
}
@@ -2307,7 +2317,8 @@ int _gnutls_pubkey_compatible_with_sig(gnutls_session_t session,
/* RSA PSS public keys are restricted to a single digest, i.e., signature */
- if (pubkey->params.spki.rsa_pss_dig && pubkey->params.spki.rsa_pss_dig != se->hash) {
+ if (pubkey->params.spki.rsa_pss_dig
+ && pubkey->params.spki.rsa_pss_dig != se->hash) {
return gnutls_assert_val(GNUTLS_E_CONSTRAINT_ERROR);
}
}
@@ -2317,8 +2328,7 @@ int _gnutls_pubkey_compatible_with_sig(gnutls_session_t session,
/* Returns the public key.
*/
-int
-_gnutls_pubkey_get_mpis(gnutls_pubkey_t key, gnutls_pk_params_st * params)
+int _gnutls_pubkey_get_mpis(gnutls_pubkey_t key, gnutls_pk_params_st * params)
{
return _gnutls_pk_params_copy(params, &key->params);
}
@@ -2357,7 +2367,7 @@ _pkcs1_rsa_verify_sig(gnutls_pk_algorithm_t pk,
return GNUTLS_E_INVALID_REQUEST;
}
- ret = _gnutls_hash_fast((gnutls_digest_algorithm_t)me->id,
+ ret = _gnutls_hash_fast((gnutls_digest_algorithm_t) me->id,
text->data, text->size, md);
if (ret < 0) {
gnutls_assert();
@@ -2381,7 +2391,8 @@ _pkcs1_rsa_verify_sig(gnutls_pk_algorithm_t pk,
case GNUTLS_MAC_SHA224:
break;
default:
- _gnutls_switch_fips_state(GNUTLS_FIPS140_OP_NOT_APPROVED);
+ _gnutls_switch_fips_state
+ (GNUTLS_FIPS140_OP_NOT_APPROVED);
}
/* decrypted is a BER encoded data of type DigestInfo
@@ -2394,8 +2405,7 @@ _pkcs1_rsa_verify_sig(gnutls_pk_algorithm_t pk,
sign_params);
_gnutls_free_datum(&di);
} else {
- ret = _gnutls_pk_verify(pk, &d, signature, params,
- sign_params);
+ ret = _gnutls_pk_verify(pk, &d, signature, params, sign_params);
}
return ret;
@@ -2424,13 +2434,10 @@ dsa_verify_hashed_data(gnutls_pk_algorithm_t pk,
gnutls_assert();
_gnutls_debug_log
("Hash size (%d) does not correspond to hash %s(%d) or better.\n",
- (int) hash->size, _gnutls_mac_get_name(algo),
- hash_len);
+ (int)hash->size, _gnutls_mac_get_name(algo), hash_len);
if (hash->size != 20) /* SHA1 is allowed */
- return
- gnutls_assert_val
- (GNUTLS_E_PK_SIG_VERIFY_FAILED);
+ return gnutls_assert_val(GNUTLS_E_PK_SIG_VERIFY_FAILED);
}
digest.data = hash->data;
@@ -2444,8 +2451,7 @@ dsa_verify_data(gnutls_pk_algorithm_t pk,
const mac_entry_st * algo,
const gnutls_datum_t * data,
const gnutls_datum_t * signature,
- gnutls_pk_params_st * params,
- gnutls_x509_spki_st * sign_params)
+ gnutls_pk_params_st * params, gnutls_x509_spki_st * sign_params)
{
int ret;
uint8_t _digest[MAX_HASH_SIZE];
@@ -2454,7 +2460,7 @@ dsa_verify_data(gnutls_pk_algorithm_t pk,
if (algo == NULL)
algo = _gnutls_dsa_q_to_hash(params, NULL);
- ret = _gnutls_hash_fast((gnutls_digest_algorithm_t)algo->id,
+ ret = _gnutls_hash_fast((gnutls_digest_algorithm_t) algo->id,
data->data, data->size, _digest);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -2469,17 +2475,16 @@ dsa_verify_data(gnutls_pk_algorithm_t pk,
* not verified, or 1 otherwise.
*/
static int
-pubkey_verify_hashed_data(const gnutls_sign_entry_st *se,
- const mac_entry_st *me,
+pubkey_verify_hashed_data(const gnutls_sign_entry_st * se,
+ const mac_entry_st * me,
const gnutls_datum_t * hash,
const gnutls_datum_t * signature,
gnutls_pk_params_st * params,
- gnutls_x509_spki_st * sign_params,
- unsigned flags)
+ gnutls_x509_spki_st * sign_params, unsigned flags)
{
int ret;
- if (unlikely(me==NULL))
+ if (unlikely(me == NULL))
return gnutls_assert_val(GNUTLS_E_UNKNOWN_HASH_ALGORITHM);
ret = fixup_spki_params(params, se, me, sign_params);
@@ -2491,8 +2496,8 @@ pubkey_verify_hashed_data(const gnutls_sign_entry_st *se,
case GNUTLS_PK_RSA_PSS:
if (_pkcs1_rsa_verify_sig
- (se->pk, me, NULL, hash, signature, params, sign_params) != 0)
- {
+ (se->pk, me, NULL, hash, signature, params,
+ sign_params) != 0) {
gnutls_assert();
return GNUTLS_E_PK_SIG_VERIFY_FAILED;
}
@@ -2517,7 +2522,8 @@ pubkey_verify_hashed_data(const gnutls_sign_entry_st *se,
}
- if (_gnutls_sign_is_secure2(se, 0) == 0 && _gnutls_is_broken_sig_allowed(se, flags) == 0) {
+ if (_gnutls_sign_is_secure2(se, 0) == 0
+ && _gnutls_is_broken_sig_allowed(se, flags) == 0) {
return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_SECURITY);
}
@@ -2528,13 +2534,12 @@ pubkey_verify_hashed_data(const gnutls_sign_entry_st *se,
* not verified, or 1 otherwise.
*/
int
-pubkey_verify_data(const gnutls_sign_entry_st *se,
- const mac_entry_st *me,
+pubkey_verify_data(const gnutls_sign_entry_st * se,
+ const mac_entry_st * me,
const gnutls_datum_t * data,
const gnutls_datum_t * signature,
gnutls_pk_params_st * params,
- gnutls_x509_spki_st * sign_params,
- unsigned flags)
+ gnutls_x509_spki_st * sign_params, unsigned flags)
{
int ret;
@@ -2549,7 +2554,8 @@ pubkey_verify_data(const gnutls_sign_entry_st *se,
case GNUTLS_PK_RSA:
case GNUTLS_PK_RSA_PSS:
if (_pkcs1_rsa_verify_sig
- (se->pk, me, data, NULL, signature, params, sign_params) != 0) {
+ (se->pk, me, data, NULL, signature, params,
+ sign_params) != 0) {
gnutls_assert();
return GNUTLS_E_PK_SIG_VERIFY_FAILED;
}
@@ -2558,7 +2564,8 @@ pubkey_verify_data(const gnutls_sign_entry_st *se,
case GNUTLS_PK_EDDSA_ED25519:
case GNUTLS_PK_EDDSA_ED448:
- if (_gnutls_pk_verify(se->pk, data, signature, params, sign_params) != 0) {
+ if (_gnutls_pk_verify
+ (se->pk, data, signature, params, sign_params) != 0) {
gnutls_assert();
return GNUTLS_E_PK_SIG_VERIFY_FAILED;
}
@@ -2583,7 +2590,8 @@ pubkey_verify_data(const gnutls_sign_entry_st *se,
}
- if (_gnutls_sign_is_secure2(se,0) == 0 && _gnutls_is_broken_sig_allowed(se, flags) == 0) {
+ if (_gnutls_sign_is_secure2(se, 0) == 0
+ && _gnutls_is_broken_sig_allowed(se, flags) == 0) {
return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_SECURITY);
}
@@ -2647,8 +2655,7 @@ const mac_entry_st *_gnutls_dsa_q_to_hash(const gnutls_pk_params_st *
*
**/
void gnutls_pubkey_set_pin_function(gnutls_pubkey_t key,
- gnutls_pin_callback_t fn,
- void *userdata)
+ gnutls_pin_callback_t fn, void *userdata)
{
key->pin.cb = fn;
key->pin.data = userdata;
@@ -2695,7 +2702,7 @@ int gnutls_pubkey_import_x509_raw(gnutls_pubkey_t pkey,
ret = 0;
- cleanup:
+ cleanup:
gnutls_x509_crt_deinit(xpriv);
return ret;
@@ -2740,7 +2747,8 @@ int gnutls_pubkey_verify_params(gnutls_pubkey_t key)
* Since: 3.6.0
**/
int
-gnutls_pubkey_get_spki(gnutls_pubkey_t pubkey, gnutls_x509_spki_t spki, unsigned int flags)
+gnutls_pubkey_get_spki(gnutls_pubkey_t pubkey, gnutls_x509_spki_t spki,
+ unsigned int flags)
{
gnutls_x509_spki_t p = &pubkey->params.spki;
@@ -2772,7 +2780,8 @@ gnutls_pubkey_get_spki(gnutls_pubkey_t pubkey, gnutls_x509_spki_t spki, unsigned
* Since: 3.6.0
**/
int
-gnutls_pubkey_set_spki(gnutls_pubkey_t pubkey, const gnutls_x509_spki_t spki, unsigned int flags)
+gnutls_pubkey_set_spki(gnutls_pubkey_t pubkey, const gnutls_x509_spki_t spki,
+ unsigned int flags)
{
if (pubkey == NULL) {
gnutls_assert();
@@ -2780,7 +2789,7 @@ gnutls_pubkey_set_spki(gnutls_pubkey_t pubkey, const gnutls_x509_spki_t spki, un
}
if (!_gnutls_pk_are_compat(pubkey->params.algo, spki->pk))
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
memcpy(&pubkey->params.spki, spki, sizeof(gnutls_x509_spki_st));
diff --git a/lib/random.c b/lib/random.c
index 6358616af9..9cd1ba4223 100644
--- a/lib/random.c
+++ b/lib/random.c
@@ -131,7 +131,9 @@ int _gnutls_rnd_preinit(void)
if (ret)
return gnutls_assert_val(GNUTLS_E_RANDOM_FAILED);
- list = gl_list_nx_create_empty(GL_LINKEDHASH_LIST, NULL, NULL, free_ctx, false);
+ list =
+ gl_list_nx_create_empty(GL_LINKEDHASH_LIST, NULL, NULL, free_ctx,
+ false);
if (list == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -173,7 +175,8 @@ int gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
return gnutls_assert_val(ret);
if (likely(len > 0))
- return _gnutls_rnd_ops.rnd(gl_tls_get(ctx_key), level, data, len);
+ return _gnutls_rnd_ops.rnd(gl_tls_get(ctx_key), level, data,
+ len);
return 0;
}
diff --git a/lib/random.h b/lib/random.h
index 0d76738971..7e63a3ab43 100644
--- a/lib/random.h
+++ b/lib/random.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_LIB_RANDOM_H
-#define GNUTLS_LIB_RANDOM_H
+# define GNUTLS_LIB_RANDOM_H
-#include <gnutls/crypto.h>
-#include <crypto-backend.h>
-#include "nettle/rnd-common.h"
+# include <gnutls/crypto.h>
+# include <crypto-backend.h>
+# include "nettle/rnd-common.h"
extern int crypto_rnd_prio;
extern gnutls_crypto_rnd_st _gnutls_rnd_ops;
@@ -33,4 +33,4 @@ extern gnutls_crypto_rnd_st _gnutls_rnd_ops;
void _gnutls_rnd_deinit(void);
int _gnutls_rnd_preinit(void);
-#endif /* GNUTLS_LIB_RANDOM_H */
+#endif /* GNUTLS_LIB_RANDOM_H */
diff --git a/lib/randomart.c b/lib/randomart.c
index f300fab439..d9efdaa997 100644
--- a/lib/randomart.c
+++ b/lib/randomart.c
@@ -49,14 +49,12 @@ int gnutls_random_art(gnutls_random_art_t type,
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
art->data =
- (void *) _gnutls_key_fingerprint_randomart(fpr, fpr_size,
- key_type, key_size,
- NULL);
+ (void *)_gnutls_key_fingerprint_randomart(fpr, fpr_size,
+ key_type, key_size, NULL);
if (art->data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- art->size = strlen((char *) art->data);
+ art->size = strlen((char *)art->data);
return 0;
}
-
diff --git a/lib/range.c b/lib/range.c
index 2b478da459..7f967758de 100644
--- a/lib/range.c
+++ b/lib/range.c
@@ -27,8 +27,7 @@
#include "record.h"
static void
-_gnutls_set_range(gnutls_range_st * dst, const size_t low,
- const size_t high)
+_gnutls_set_range(gnutls_range_st * dst, const size_t low, const size_t high)
{
dst->low = low;
dst->high = high;
@@ -55,14 +54,12 @@ _gnutls_range_max_lh_pad(gnutls_session_t session, ssize_t data_length,
if (unlikely(vers == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- ret =
- _gnutls_epoch_get(session, EPOCH_WRITE_CURRENT,
- &record_params);
+ ret = _gnutls_epoch_get(session, EPOCH_WRITE_CURRENT, &record_params);
if (ret < 0) {
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
- if (!vers->tls13_sem && record_params->write.is_aead) /* not yet ready */
+ if (!vers->tls13_sem && record_params->write.is_aead) /* not yet ready */
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
if (vers->tls13_sem) {
@@ -76,9 +73,7 @@ _gnutls_range_max_lh_pad(gnutls_session_t session, ssize_t data_length,
this_pad = MIN(max_pad, max_frag - data_length);
block_size = _gnutls_cipher_get_block_size(record_params->cipher);
- tag_size =
- _gnutls_auth_cipher_tag_len(&record_params->write.
- ctx.tls12);
+ tag_size = _gnutls_auth_cipher_tag_len(&record_params->write.ctx.tls12);
switch (_gnutls_cipher_type(record_params->cipher)) {
case CIPHER_AEAD:
case CIPHER_STREAM:
@@ -130,9 +125,7 @@ unsigned gnutls_record_can_use_length_hiding(gnutls_session_t session)
return 0;
#endif
- ret =
- _gnutls_epoch_get(session, EPOCH_WRITE_CURRENT,
- &record_params);
+ ret = _gnutls_epoch_get(session, EPOCH_WRITE_CURRENT, &record_params);
if (ret < 0) {
return 0;
}
@@ -176,9 +169,7 @@ gnutls_range_split(gnutls_session_t session,
ssize_t orig_high = (ssize_t) orig->high;
record_parameters_st *record_params;
- ret =
- _gnutls_epoch_get(session, EPOCH_WRITE_CURRENT,
- &record_params);
+ ret = _gnutls_epoch_get(session, EPOCH_WRITE_CURRENT, &record_params);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -205,11 +196,9 @@ gnutls_range_split(gnutls_session_t session,
ssize_t this_pad = MIN(ret, orig_high - orig_low);
- _gnutls_set_range(next, orig_low,
- orig_low + this_pad);
+ _gnutls_set_range(next, orig_low, orig_low + this_pad);
_gnutls_set_range(remainder, 0,
- orig_high - (orig_low +
- this_pad));
+ orig_high - (orig_low + this_pad));
}
return 0;
@@ -267,7 +256,7 @@ gnutls_record_send_range(gnutls_session_t session, const void *data,
_gnutls_record_log
("RANGE: Preparing message with size %d, range (%d,%d)\n",
- (int) data_size, (int) range->low, (int) range->high);
+ (int)data_size, (int)range->low, (int)range->high);
while (cur_range.high != 0) {
ret =
@@ -278,32 +267,28 @@ gnutls_record_send_range(gnutls_session_t session, const void *data,
}
next_fragment_length =
- _gnutls_range_fragment(data_size, cur_range,
- next_range);
+ _gnutls_range_fragment(data_size, cur_range, next_range);
_gnutls_record_log
("RANGE: Next fragment size: %d (%d,%d); remaining range: (%d,%d)\n",
- (int) next_fragment_length, (int) cur_range.low,
- (int) cur_range.high, (int) next_range.low,
- (int) next_range.high);
+ (int)next_fragment_length, (int)cur_range.low,
+ (int)cur_range.high, (int)next_range.low,
+ (int)next_range.high);
ret =
_gnutls_send_tlen_int(session, GNUTLS_APPLICATION_DATA,
-1, EPOCH_WRITE_CURRENT,
- &(((char *) data)[sent]),
+ &(((char *)data)[sent]),
next_fragment_length,
cur_range.high -
- next_fragment_length,
- MBUFFER_FLUSH);
+ next_fragment_length, MBUFFER_FLUSH);
- while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED) {
+ while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED) {
ret =
_gnutls_send_tlen_int(session,
GNUTLS_APPLICATION_DATA,
-1, EPOCH_WRITE_CURRENT,
- NULL, 0, 0,
- MBUFFER_FLUSH);
+ NULL, 0, 0, MBUFFER_FLUSH);
}
if (ret < 0) {
@@ -312,13 +297,12 @@ gnutls_record_send_range(gnutls_session_t session, const void *data,
if (ret != (ssize_t) next_fragment_length) {
_gnutls_record_log
("RANGE: ERROR: ret = %d; next_fragment_length = %d\n",
- (int) ret, (int) next_fragment_length);
+ (int)ret, (int)next_fragment_length);
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
sent += next_fragment_length;
data_size -= next_fragment_length;
- _gnutls_set_range(&cur_range, next_range.low,
- next_range.high);
+ _gnutls_set_range(&cur_range, next_range.low, next_range.high);
}
return sent;
diff --git a/lib/record.c b/lib/record.c
index e5a630ed0d..bcec9c0e28 100644
--- a/lib/record.c
+++ b/lib/record.c
@@ -57,7 +57,6 @@
#include "system/ktls.h"
#include <intprops.h>
-
struct tls_record_st {
uint16_t header_size;
uint8_t version[2];
@@ -101,8 +100,7 @@ void gnutls_record_disable_padding(gnutls_session_t session)
*
**/
void
-gnutls_transport_set_ptr(gnutls_session_t session,
- gnutls_transport_ptr_t ptr)
+gnutls_transport_set_ptr(gnutls_session_t session, gnutls_transport_ptr_t ptr)
{
session->internals.transport_recv_ptr = ptr;
session->internals.transport_send_ptr = ptr;
@@ -145,13 +143,12 @@ gnutls_transport_set_ptr2(gnutls_session_t session,
* Since: 3.1.9
**/
void
-gnutls_transport_set_int2(gnutls_session_t session,
- int recv_fd, int send_fd)
+gnutls_transport_set_int2(gnutls_session_t session, int recv_fd, int send_fd)
{
session->internals.transport_send_ptr =
- (gnutls_transport_ptr_t) (long) send_fd;
+ (gnutls_transport_ptr_t) (long)send_fd;
session->internals.transport_recv_ptr =
- (gnutls_transport_ptr_t) (long) recv_fd;
+ (gnutls_transport_ptr_t) (long)recv_fd;
}
#if 0
@@ -174,9 +171,9 @@ gnutls_transport_set_int2(gnutls_session_t session,
void gnutls_transport_set_int(gnutls_session_t session, int fd)
{
session->internals.transport_recv_ptr =
- (gnutls_transport_ptr_t) (long) fd;
+ (gnutls_transport_ptr_t) (long)fd;
session->internals.transport_send_ptr =
- (gnutls_transport_ptr_t) (long) fd;
+ (gnutls_transport_ptr_t) (long)fd;
}
#endif
@@ -232,8 +229,8 @@ gnutls_transport_get_int2(gnutls_session_t session,
int *recv_int, int *send_int)
{
- *recv_int = (long) session->internals.transport_recv_ptr;
- *send_int = (long) session->internals.transport_send_ptr;
+ *recv_int = (long)session->internals.transport_recv_ptr;
+ *send_int = (long)session->internals.transport_send_ptr;
}
/**
@@ -250,7 +247,7 @@ gnutls_transport_get_int2(gnutls_session_t session,
**/
int gnutls_transport_get_int(gnutls_session_t session)
{
- return (long) session->internals.transport_recv_ptr;
+ return (long)session->internals.transport_recv_ptr;
}
/**
@@ -301,7 +298,7 @@ int gnutls_bye(gnutls_session_t session, gnutls_close_request_t how)
FALLTHROUGH;
case BYE_STATE1:
ret = gnutls_alert_send(session, GNUTLS_AL_WARNING,
- GNUTLS_A_CLOSE_NOTIFY);
+ GNUTLS_A_CLOSE_NOTIFY);
BYE_STATE = BYE_STATE1;
if (ret < 0) {
gnutls_assert();
@@ -311,19 +308,21 @@ int gnutls_bye(gnutls_session_t session, gnutls_close_request_t how)
case BYE_STATE2:
BYE_STATE = BYE_STATE2;
if (how == GNUTLS_SHUT_RDWR) {
- if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)){
+ if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)) {
do {
ret = _gnutls_ktls_recv_int(session,
- GNUTLS_ALERT, NULL, 0);
+ GNUTLS_ALERT,
+ NULL, 0);
}
while (ret == GNUTLS_E_GOT_APPLICATION_DATA);
} else {
do {
ret =
- _gnutls_recv_int(session, GNUTLS_ALERT,
- NULL, 0, NULL,
- session->internals.
- record_timeout_ms);
+ _gnutls_recv_int(session,
+ GNUTLS_ALERT, NULL,
+ 0, NULL,
+ session->internals.
+ record_timeout_ms);
}
while (ret == GNUTLS_E_GOT_APPLICATION_DATA);
}
@@ -370,8 +369,7 @@ inline static int session_is_valid(gnutls_session_t session)
*/
inline static int
copy_record_version(gnutls_session_t session,
- gnutls_handshake_description_t htype,
- uint8_t version[2])
+ gnutls_handshake_description_t htype, uint8_t version[2])
{
const version_entry_st *lver;
@@ -401,8 +399,7 @@ copy_record_version(gnutls_session_t session,
/* Increments the sequence value
*/
-inline static int
-sequence_increment(gnutls_session_t session, uint64_t * value)
+inline static int sequence_increment(gnutls_session_t session, uint64_t * value)
{
uint64_t snmax = UINT64_C(0xffffffffffffffff);
@@ -452,8 +449,7 @@ ssize_t
_gnutls_send_tlen_int(gnutls_session_t session, content_type_t type,
gnutls_handshake_description_t htype,
unsigned int epoch_rel, const void *_data,
- size_t data_size, size_t min_pad,
- unsigned int mflags)
+ size_t data_size, size_t min_pad, unsigned int mflags)
{
mbuffer_st *bufel;
ssize_t cipher_size;
@@ -523,15 +519,17 @@ _gnutls_send_tlen_int(gnutls_session_t session, content_type_t type,
/* now proceed to packet encryption
*/
cipher_size = max_record_send_size(session) +
- MAX_RECORD_SEND_OVERHEAD(session);
+ MAX_RECORD_SEND_OVERHEAD(session);
bufel = _mbuffer_alloc_align16(cipher_size + CIPHER_SLACK_SIZE,
- get_total_headers2(session, record_params));
+ get_total_headers2(session,
+ record_params));
if (bufel == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
headers = _mbuffer_get_uhead_ptr(bufel);
- if (vers->tls13_sem && record_params->cipher->id != GNUTLS_CIPHER_NULL)
+ if (vers->tls13_sem
+ && record_params->cipher->id != GNUTLS_CIPHER_NULL)
headers[0] = GNUTLS_APPLICATION_DATA;
else
headers[0] = type;
@@ -544,12 +542,13 @@ _gnutls_send_tlen_int(gnutls_session_t session, content_type_t type,
/* Adjust header length and add sequence for DTLS */
if (IS_DTLS(session))
- _gnutls_write_uint64(record_state->sequence_number, &headers[3]);
+ _gnutls_write_uint64(record_state->sequence_number,
+ &headers[3]);
_gnutls_record_log
("REC[%p]: Preparing Packet %s(%d) with length: %d and min pad: %d\n",
session, _gnutls_packet2str(type), type,
- (int) data_size, (int) min_pad);
+ (int)data_size, (int)min_pad);
header_size = RECORD_HEADER_SIZE(session);
_mbuffer_set_udata_size(bufel, cipher_size);
@@ -578,9 +577,7 @@ _gnutls_send_tlen_int(gnutls_session_t session, content_type_t type,
(session, &record_state->sequence_number) != 0) {
session_invalidate(session);
gnutls_free(bufel);
- return
- gnutls_assert_val
- (GNUTLS_E_RECORD_LIMIT_REACHED);
+ return gnutls_assert_val(GNUTLS_E_RECORD_LIMIT_REACHED);
}
ret = _gnutls_io_write_buffered(session, bufel, mflags);
@@ -606,15 +603,19 @@ _gnutls_send_tlen_int(gnutls_session_t session, content_type_t type,
_gnutls_record_log
("REC[%p]: Sent Packet[%ld] %s(%d) in epoch %d and length: %d\n",
session, (unsigned long)(record_state->sequence_number),
- _gnutls_packet2str(type), type, (int) record_params->epoch,
- (int) cipher_size);
-
- if (vers->tls13_sem && !(session->internals.flags & GNUTLS_NO_AUTO_REKEY) &&
- !(record_params->cipher->flags & GNUTLS_CIPHER_FLAG_NO_REKEY)) {
- if (unlikely((record_state->sequence_number & UINT64_C(0xffffff)) == UINT64_C(0xfffffd))) {
+ _gnutls_packet2str(type), type, (int)record_params->epoch,
+ (int)cipher_size);
+
+ if (vers->tls13_sem
+ && !(session->internals.flags & GNUTLS_NO_AUTO_REKEY)
+ && !(record_params->cipher->flags & GNUTLS_CIPHER_FLAG_NO_REKEY)) {
+ if (unlikely
+ ((record_state->sequence_number & UINT64_C(0xffffff)) ==
+ UINT64_C(0xfffffd))) {
/* After we have sent 2^24 messages, mark the session
* as needing a key update. */
- session->internals.rsend_state = RECORD_SEND_KEY_UPDATE_1;
+ session->internals.rsend_state =
+ RECORD_SEND_KEY_UPDATE_1;
}
}
@@ -635,19 +636,18 @@ check_recv_type(gnutls_session_t session, content_type_t recv_type)
gnutls_assert();
_gnutls_audit_log(session,
"Received record packet of unknown type %u\n",
- (unsigned int) recv_type);
+ (unsigned int)recv_type);
return GNUTLS_E_UNEXPECTED_PACKET;
}
}
-
/* Checks if there are pending data in the record buffers. If there are
* then it copies the data.
*/
static int
get_data_from_buffers(gnutls_session_t session, content_type_t type,
- uint8_t * data, int data_size, void *seq)
+ uint8_t * data, int data_size, void *seq)
{
if ((type == GNUTLS_APPLICATION_DATA ||
type == GNUTLS_HANDSHAKE || type == GNUTLS_CHANGE_CIPHER_SPEC)
@@ -676,12 +676,11 @@ get_data_from_buffers(gnutls_session_t session, content_type_t type,
*/
static int
get_packet_from_buffers(gnutls_session_t session, content_type_t type,
- gnutls_packet_t *packet)
+ gnutls_packet_t * packet)
{
if (_gnutls_record_buffer_get_size(session) > 0) {
int ret;
- ret =
- _gnutls_record_buffer_get_packet(type, session, packet);
+ ret = _gnutls_record_buffer_get_packet(type, session, packet);
if (ret < 0) {
if (IS_DTLS(session)) {
if (ret == GNUTLS_E_UNEXPECTED_PACKET) {
@@ -699,15 +698,12 @@ get_packet_from_buffers(gnutls_session_t session, content_type_t type,
return 0;
}
-
-
/* Here we check if the advertized version is the one we
* negotiated in the handshake.
*/
inline static int
record_check_version(gnutls_session_t session,
- gnutls_handshake_description_t htype,
- uint8_t version[2])
+ gnutls_handshake_description_t htype, uint8_t version[2])
{
const version_entry_st *vers = get_version(session);
int diff = 0;
@@ -729,8 +725,7 @@ record_check_version(gnutls_session_t session,
gnutls_assert();
_gnutls_record_log
("REC[%p]: INVALID VERSION PACKET: (%d) %d.%d\n",
- session, htype, version[0],
- version[1]);
+ session, htype, version[0], version[1]);
return GNUTLS_E_UNSUPPORTED_VERSION_PACKET;
}
} else if (diff != 0) {
@@ -759,8 +754,7 @@ record_check_version(gnutls_session_t session,
gnutls_assert();
_gnutls_record_log
("REC[%p]: INVALID VERSION PACKET: (%d) %d.%d\n",
- session, htype, version[0],
- version[1]);
+ session, htype, version[0], version[1]);
return GNUTLS_E_UNSUPPORTED_VERSION_PACKET;
}
@@ -783,8 +777,7 @@ record_check_version(gnutls_session_t session,
}
static int
-recv_hello_request(gnutls_session_t session, void *data,
- uint32_t data_size)
+recv_hello_request(gnutls_session_t session, void *data, uint32_t data_size)
{
uint8_t type;
@@ -850,7 +843,8 @@ record_add_to_buffers(gnutls_session_t session,
* messages */
if (type == GNUTLS_APPLICATION_DATA &&
(session->internals.handshake_recv_buffer_size != 0 ||
- session->internals.handshake_header_recv_buffer.length != 0)) {
+ session->internals.handshake_header_recv_buffer.length !=
+ 0)) {
ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
goto unexpected_packet;
}
@@ -886,12 +880,12 @@ record_add_to_buffers(gnutls_session_t session,
("REC[%p]: Alert[%d|%d] - %s - was received\n",
session, bufel->msg.data[0],
bufel->msg.data[1],
- gnutls_alert_get_name((int) bufel->msg.
- data[1]));
+ gnutls_alert_get_name((int)bufel->msg.data[1]));
- if (!session->internals.initial_negotiation_completed &&
- session->internals.handshake_in_progress && STATE == STATE0) { /* handshake hasn't started */
- ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
+ if (!session->internals.initial_negotiation_completed && session->internals.handshake_in_progress && STATE == STATE0) { /* handshake hasn't started */
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET);
goto unexpected_packet;
}
@@ -913,7 +907,8 @@ record_add_to_buffers(gnutls_session_t session,
*/
gnutls_assert();
ret = GNUTLS_E_WARNING_ALERT_RECEIVED;
- if ((ver && ver->tls13_sem) || bufel->msg.data[0] == GNUTLS_AL_FATAL) {
+ if ((ver && ver->tls13_sem)
+ || bufel->msg.data[0] == GNUTLS_AL_FATAL) {
session_unresumable(session);
session_invalidate(session);
ret =
@@ -926,7 +921,9 @@ record_add_to_buffers(gnutls_session_t session,
case GNUTLS_CHANGE_CIPHER_SPEC:
if (!(IS_DTLS(session))) {
- ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET);
goto cleanup;
}
@@ -935,7 +932,9 @@ record_add_to_buffers(gnutls_session_t session,
* includes a sequence number */
if (!(ver && ver->id == GNUTLS_DTLS0_9) &&
(bufel->msg.size != 1 || bufel->msg.data[0] != 1)) {
- ret = gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET);
goto unexpected_packet;
}
@@ -951,8 +950,8 @@ record_add_to_buffers(gnutls_session_t session,
#endif
case GNUTLS_APPLICATION_DATA:
- if (session->internals.
- initial_negotiation_completed == 0) {
+ if (session->internals.initial_negotiation_completed ==
+ 0) {
ret =
gnutls_assert_val
(GNUTLS_E_UNEXPECTED_PACKET);
@@ -961,9 +960,10 @@ record_add_to_buffers(gnutls_session_t session,
/* In TLS1.3 post-handshake authentication allow application
* data error code. */
- if ((ver && ver->tls13_sem) && type == GNUTLS_HANDSHAKE &&
- htype == GNUTLS_HANDSHAKE_CERTIFICATE_PKT &&
- session->internals.initial_negotiation_completed) {
+ if ((ver && ver->tls13_sem) && type == GNUTLS_HANDSHAKE
+ && htype == GNUTLS_HANDSHAKE_CERTIFICATE_PKT
+ && session->
+ internals.initial_negotiation_completed) {
_gnutls_record_buffer_put(session, recv->type,
seq, bufel);
return
@@ -977,8 +977,8 @@ record_add_to_buffers(gnutls_session_t session,
*/
if (type == GNUTLS_ALERT
|| ((htype == GNUTLS_HANDSHAKE_SERVER_HELLO ||
- htype == GNUTLS_HANDSHAKE_CLIENT_HELLO ||
- htype == GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST)
+ htype == GNUTLS_HANDSHAKE_CLIENT_HELLO ||
+ htype == GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST)
&& type == GNUTLS_HANDSHAKE)) {
/* even if data is unexpected put it into the buffer */
_gnutls_record_buffer_put(session, recv->type,
@@ -1012,18 +1012,14 @@ record_add_to_buffers(gnutls_session_t session,
if (session->security_parameters.
entity == GNUTLS_SERVER
&& bufel->htype ==
- GNUTLS_HANDSHAKE_CLIENT_HELLO)
- {
+ GNUTLS_HANDSHAKE_CLIENT_HELLO) {
/* client requested rehandshake. Delete the timer */
_dtls_async_timer_delete
(session);
} else {
- session->internals.
- recv_state =
+ session->internals.recv_state =
RECV_STATE_DTLS_RETRANSMIT;
- ret =
- _dtls_retransmit
- (session);
+ ret = _dtls_retransmit(session);
if (ret == 0) {
session->internals.
recv_state =
@@ -1040,7 +1036,8 @@ record_add_to_buffers(gnutls_session_t session,
/* retrieve async handshake messages */
if (ver && ver->tls13_sem) {
- _gnutls_record_buffer_put(session, recv->type, seq, bufel);
+ _gnutls_record_buffer_put(session, recv->type,
+ seq, bufel);
ret = _gnutls13_recv_async_handshake(session);
if (ret < 0)
@@ -1056,12 +1053,11 @@ record_add_to_buffers(gnutls_session_t session,
if (session->security_parameters.entity ==
GNUTLS_SERVER
&& session->internals.handshake_in_progress == 0
- && bufel->htype ==
- GNUTLS_HANDSHAKE_CLIENT_HELLO) {
+ && bufel->htype == GNUTLS_HANDSHAKE_CLIENT_HELLO) {
gnutls_assert();
_gnutls_record_buffer_put(session,
- recv->type,
- seq, bufel);
+ recv->type,
+ seq, bufel);
return GNUTLS_E_REHANDSHAKE;
}
@@ -1106,7 +1102,6 @@ record_add_to_buffers(gnutls_session_t session,
}
-
/* Checks the record headers and returns the length, version and
* content type.
*/
@@ -1149,8 +1144,7 @@ record_read_headers(gnutls_session_t session,
_gnutls_record_log
("REC[%p]: SSL 2.0 %s packet received. Length: %d\n",
- session, _gnutls_packet2str(record->type),
- record->length);
+ session, _gnutls_packet2str(record->type), record->length);
} else
#endif
@@ -1169,17 +1163,16 @@ record_read_headers(gnutls_session_t session,
record->length = _gnutls_read_uint16(&headers[11]);
record->epoch = record->sequence >> 48;
} else {
- memset(&record->sequence, 0,
- sizeof(record->sequence));
+ memset(&record->sequence, 0, sizeof(record->sequence));
record->length = _gnutls_read_uint16(&headers[3]);
record->epoch = session->security_parameters.epoch_read;
}
_gnutls_record_log
("REC[%p]: SSL %d.%d %s packet received. Epoch %d, length: %d\n",
- session, (int) record->version[0],
- (int) record->version[1],
- _gnutls_packet2str(record->type), (int) record->epoch,
+ session, (int)record->version[0],
+ (int)record->version[1],
+ _gnutls_packet2str(record->type), (int)record->epoch,
record->length);
}
@@ -1187,9 +1180,8 @@ record_read_headers(gnutls_session_t session,
record->packet_size += record->length;
}
-
static int recv_headers(gnutls_session_t session,
- record_parameters_st *record_params,
+ record_parameters_st * record_params,
content_type_t type,
gnutls_handshake_description_t htype,
struct tls_record_st *record, unsigned int *ms)
@@ -1198,11 +1190,9 @@ static int recv_headers(gnutls_session_t session,
gnutls_datum_t raw; /* raw headers */
/* Read the headers.
*/
- record->header_size = record->packet_size =
- RECORD_HEADER_SIZE(session);
+ record->header_size = record->packet_size = RECORD_HEADER_SIZE(session);
- ret =
- _gnutls_io_read_buffered(session, record->header_size, -1, ms);
+ ret = _gnutls_io_read_buffered(session, record->header_size, -1, ms);
if (ret != record->header_size) {
if (ret < 0 && gnutls_error_is_fatal(ret) == 0)
return ret;
@@ -1216,15 +1206,14 @@ static int recv_headers(gnutls_session_t session,
}
ret = _mbuffer_linearize_align16(&session->internals.record_recv_buffer,
- get_total_headers2(session, record_params));
+ get_total_headers2(session,
+ record_params));
if (ret < 0)
return gnutls_assert_val(ret);
- _mbuffer_head_get_first(&session->internals.record_recv_buffer,
- &raw);
+ _mbuffer_head_get_first(&session->internals.record_recv_buffer, &raw);
if (raw.size < RECORD_HEADER_SIZE(session))
- return
- gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
record_read_headers(session, raw.data, type, htype, record);
@@ -1234,7 +1223,8 @@ static int recv_headers(gnutls_session_t session,
_gnutls_audit_log(session,
"Discarded message[%lu] with invalid epoch %u.\n",
(unsigned long)record->sequence,
- (unsigned int) (record->sequence >> 48));
+ (unsigned int)(record->sequence >>
+ 48));
gnutls_assert();
/* doesn't matter, just a fatal error */
return GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
@@ -1250,14 +1240,15 @@ static int recv_headers(gnutls_session_t session,
/* Here we check if the advertized version is the one we
* negotiated in the handshake.
*/
- if ((ret =
- record_check_version(session, htype, record->version)) < 0)
+ if ((ret = record_check_version(session, htype, record->version)) < 0)
return gnutls_assert_val(ret);
- if (record->length == 0 || record->length > max_record_recv_size(session)) {
- _gnutls_audit_log
- (session, "Received packet with illegal length: %u (max: %u)\n",
- (unsigned int) record->length, (unsigned)max_record_recv_size(session));
+ if (record->length == 0
+ || record->length > max_record_recv_size(session)) {
+ _gnutls_audit_log(session,
+ "Received packet with illegal length: %u (max: %u)\n",
+ (unsigned int)record->length,
+ (unsigned)max_record_recv_size(session));
if (record->length == 0) {
/* Empty, unencrypted records are always unexpected. */
@@ -1268,8 +1259,7 @@ static int recv_headers(gnutls_session_t session,
return gnutls_assert_val(GNUTLS_E_DECRYPTION_FAILED);
}
- return
- gnutls_assert_val(GNUTLS_E_RECORD_OVERFLOW);
+ return gnutls_assert_val(GNUTLS_E_RECORD_OVERFLOW);
}
_gnutls_record_log
@@ -1277,9 +1267,7 @@ static int recv_headers(gnutls_session_t session,
_gnutls_packet2str(type), type);
_gnutls_record_log
("REC[%p]: Received Packet %s(%d) with length: %d\n", session,
- _gnutls_packet2str(record->type), record->type,
- record->length);
-
+ _gnutls_packet2str(record->type), record->type, record->length);
return 0;
}
@@ -1294,8 +1282,7 @@ static int recv_headers(gnutls_session_t session,
*/
ssize_t
_gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
- gnutls_handshake_description_t htype,
- unsigned int ms)
+ gnutls_handshake_description_t htype, unsigned int ms)
{
uint64_t packet_sequence;
gnutls_datum_t ciphertext;
@@ -1324,8 +1311,7 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
return gnutls_assert_val(GNUTLS_E_INVALID_SESSION);
/* get the record state parameters */
- ret =
- _gnutls_epoch_get(session, EPOCH_READ_CURRENT, &record_params);
+ ret = _gnutls_epoch_get(session, EPOCH_READ_CURRENT, &record_params);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1336,7 +1322,10 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
record_state = &record_params->read;
/* receive headers */
- ret = recv_headers(session, record_params, type, htype, &record, (!(session->internals.flags & GNUTLS_NONBLOCK))?&ms:0);
+ ret =
+ recv_headers(session, record_params, type, htype, &record,
+ (!(session->
+ internals.flags & GNUTLS_NONBLOCK)) ? &ms : 0);
if (ret < 0) {
ret = gnutls_assert_val_fatal(ret);
goto recv_error;
@@ -1351,7 +1340,10 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
*/
ret =
_gnutls_io_read_buffered(session, record.packet_size,
- record.type, (!(session->internals.flags & GNUTLS_NONBLOCK))?&ms:0);
+ record.type,
+ (!(session->
+ internals.flags & GNUTLS_NONBLOCK)) ?
+ &ms : 0);
if (ret != record.packet_size) {
gnutls_assert();
goto recv_error;
@@ -1361,7 +1353,8 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
* move on !
*/
ret = _mbuffer_linearize_align16(&session->internals.record_recv_buffer,
- get_total_headers2(session, record_params));
+ get_total_headers2(session,
+ record_params));
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1424,38 +1417,42 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
* as decryption failure if otherwise */
record_params->cipher->id == GNUTLS_CIPHER_NULL) {
_gnutls_record_log
- ("REC[%p]: failed to decrypt early data, in epoch %d\n",
- session,
- record_params->epoch);
+ ("REC[%p]: failed to decrypt early data, in epoch %d\n",
+ session, record_params->epoch);
ret = GNUTLS_E_DECRYPTION_FAILED;
goto sanity_check_error;
} else if (record.type == GNUTLS_APPLICATION_DATA) {
size_t decrypted_length =
- _mbuffer_get_udata_size(decrypted);
+ _mbuffer_get_udata_size(decrypted);
_gnutls_record_log
- ("REC[%p]: decrypted early data with length: %d, in epoch %d\n",
- session,
- (int) decrypted_length,
- record_params->epoch);
+ ("REC[%p]: decrypted early data with length: %d, in epoch %d\n",
+ session,
+ (int)decrypted_length,
+ record_params->epoch);
if (decrypted_length >
- session->security_parameters.max_early_data_size -
+ session->
+ security_parameters.max_early_data_size -
session->internals.early_data_received) {
_gnutls_record_log
- ("REC[%p]: max_early_data_size exceeded\n",
- session);
+ ("REC[%p]: max_early_data_size exceeded\n",
+ session);
ret = GNUTLS_E_UNEXPECTED_PACKET;
goto sanity_check_error;
}
- _mbuffer_enqueue(&session->internals.early_data_recv_buffer, decrypted);
+ _mbuffer_enqueue(&session->
+ internals.early_data_recv_buffer,
+ decrypted);
session->internals.early_data_received +=
- decrypted_length;
+ decrypted_length;
/* Increase sequence number. We do both for TLS and DTLS, since in
* DTLS we also rely on that number (roughly) since it may get reported
* to application via gnutls_record_get_state().
*/
- if (sequence_increment(session, &record_state->sequence_number) != 0) {
+ if (sequence_increment
+ (session,
+ &record_state->sequence_number) != 0) {
session_invalidate(session);
gnutls_assert();
ret = GNUTLS_E_RECORD_LIMIT_REACHED;
@@ -1477,26 +1474,29 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
* as decryption failure if otherwise */
record_params->cipher->id == GNUTLS_CIPHER_NULL)) {
if (record.length >
- session->security_parameters.max_early_data_size -
+ session->
+ security_parameters.max_early_data_size -
session->internals.early_data_received) {
_gnutls_record_log
- ("REC[%p]: max_early_data_size exceeded\n",
- session);
+ ("REC[%p]: max_early_data_size exceeded\n",
+ session);
ret = GNUTLS_E_UNEXPECTED_PACKET;
goto sanity_check_error;
}
- _gnutls_record_log("REC[%p]: Discarded early data[%lu] due to invalid decryption, length: %u\n",
- session,
- (unsigned long)packet_sequence,
- (unsigned int)
- record.length);
- session->internals.early_data_received += record.length;
+ _gnutls_record_log
+ ("REC[%p]: Discarded early data[%lu] due to invalid decryption, length: %u\n",
+ session, (unsigned long)packet_sequence,
+ (unsigned int)
+ record.length);
+ session->internals.early_data_received +=
+ record.length;
/* silently discard received data */
_mbuffer_xfree(&decrypted);
return gnutls_assert_val(GNUTLS_E_AGAIN);
} else {
- session->internals.hsk_flags &= ~HSK_EARLY_DATA_IN_FLIGHT;
+ session->internals.hsk_flags &=
+ ~HSK_EARLY_DATA_IN_FLIGHT;
}
}
}
@@ -1513,14 +1513,17 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
/* check for duplicates. We check after the message
* is processed and authenticated to avoid someone
* messing with our windows. */
- if (likely(!(session->internals.flags & GNUTLS_NO_REPLAY_PROTECTION))) {
- ret = _dtls_record_check(record_params, packet_sequence);
+ if (likely
+ (!(session->
+ internals.flags & GNUTLS_NO_REPLAY_PROTECTION))) {
+ ret =
+ _dtls_record_check(record_params, packet_sequence);
if (ret < 0) {
_gnutls_record_log
("REC[%p]: Discarded duplicate message[%u.%lu]: %s\n",
session,
- (unsigned int) (record.sequence >> 48),
- (unsigned long) (packet_sequence),
+ (unsigned int)(record.sequence >> 48),
+ (unsigned long)(packet_sequence),
_gnutls_packet2str(record.type));
goto sanity_check_error;
}
@@ -1529,10 +1532,10 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
_gnutls_record_log
("REC[%p]: Decrypted Packet[%u.%lu] %s(%d) with length: %d\n",
session,
- (unsigned int) (record.sequence >> 48),
- (unsigned long) packet_sequence,
+ (unsigned int)(record.sequence >> 48),
+ (unsigned long)packet_sequence,
_gnutls_packet2str(record.type), record.type,
- (int) _mbuffer_get_udata_size(decrypted));
+ (int)_mbuffer_get_udata_size(decrypted));
/* store the last valid sequence number. We don't use that internally but
* callers of gnutls_record_get_state() could take advantage of it. */
@@ -1541,9 +1544,9 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
_gnutls_record_log
("REC[%p]: Decrypted Packet[%lu] %s(%d) with length: %d\n",
session,
- (unsigned long) packet_sequence,
+ (unsigned long)packet_sequence,
_gnutls_packet2str(record.type), record.type,
- (int) _mbuffer_get_udata_size(decrypted));
+ (int)_mbuffer_get_udata_size(decrypted));
}
@@ -1558,13 +1561,13 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
goto sanity_check_error;
}
-/* (originally for) TLS 1.0 CBC protection.
- * Actually this code is called if we just received
- * an empty packet. An empty TLS packet is usually
- * sent to protect some vulnerabilities in the CBC mode.
- * In that case we go to the beginning and start reading
- * the next packet.
- */
+ /* (originally for) TLS 1.0 CBC protection.
+ * Actually this code is called if we just received
+ * an empty packet. An empty TLS packet is usually
+ * sent to protect some vulnerabilities in the CBC mode.
+ * In that case we go to the beginning and start reading
+ * the next packet.
+ */
if (_mbuffer_get_udata_size(decrypted) == 0 &&
/* Under TLS 1.3, there are only AEAD ciphers and this
* logic is meaningless. Moreover, the implementation need
@@ -1581,7 +1584,7 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
if (_mbuffer_get_udata_size(decrypted) > max_decrypted_size(session)) {
_gnutls_audit_log
(session, "Received packet with illegal length: %u\n",
- (unsigned int) ret);
+ (unsigned int)ret);
ret = gnutls_assert_val(GNUTLS_E_RECORD_OVERFLOW);
goto sanity_check_error;
@@ -1612,9 +1615,7 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
session->internals.dtls.packets_dropped++;
/* discard the whole received fragment. */
- bufel =
- _mbuffer_head_pop_first(&session->internals.
- record_recv_buffer);
+ bufel = _mbuffer_head_pop_first(&session->internals.record_recv_buffer);
_mbuffer_xfree(&bufel);
return gnutls_assert_val(GNUTLS_E_AGAIN);
@@ -1634,8 +1635,7 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
recv_error:
if (ret < 0
- && (gnutls_error_is_fatal(ret) == 0
- || ret == GNUTLS_E_TIMEDOUT))
+ && (gnutls_error_is_fatal(ret) == 0 || ret == GNUTLS_E_TIMEDOUT))
return ret;
if (type == GNUTLS_ALERT) { /* we were expecting close notify */
@@ -1645,12 +1645,12 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
}
if (IS_DTLS(session) && (ret == GNUTLS_E_DECRYPTION_FAILED ||
- ret == GNUTLS_E_UNSUPPORTED_VERSION_PACKET ||
- ret == GNUTLS_E_UNEXPECTED_PACKET_LENGTH ||
- ret == GNUTLS_E_RECORD_OVERFLOW ||
- ret == GNUTLS_E_UNEXPECTED_PACKET ||
- ret == GNUTLS_E_ERROR_IN_FINISHED_PACKET ||
- ret == GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET)) {
+ ret == GNUTLS_E_UNSUPPORTED_VERSION_PACKET ||
+ ret == GNUTLS_E_UNEXPECTED_PACKET_LENGTH ||
+ ret == GNUTLS_E_RECORD_OVERFLOW ||
+ ret == GNUTLS_E_UNEXPECTED_PACKET ||
+ ret == GNUTLS_E_ERROR_IN_FINISHED_PACKET ||
+ ret == GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET)) {
goto discard;
}
@@ -1665,8 +1665,7 @@ _gnutls_recv_in_buffers(gnutls_session_t session, content_type_t type,
/* Returns a value greater than zero (>= 0) if buffers should be checked
* for data. */
-static ssize_t
-check_session_status(gnutls_session_t session, unsigned ms)
+static ssize_t check_session_status(gnutls_session_t session, unsigned ms)
{
int ret;
@@ -1706,7 +1705,8 @@ check_session_status(gnutls_session_t session, unsigned ms)
return 1;
case RECV_STATE_ASYNC_HANDSHAKE:
- ret = _gnutls_recv_in_buffers(session, GNUTLS_HANDSHAKE, -1, ms);
+ ret =
+ _gnutls_recv_in_buffers(session, GNUTLS_HANDSHAKE, -1, ms);
if (ret < 0 && ret != GNUTLS_E_SESSION_EOF)
return gnutls_assert_val(ret);
@@ -1780,8 +1780,7 @@ check_session_status(gnutls_session_t session, unsigned ms)
*/
ssize_t
_gnutls_recv_int(gnutls_session_t session, content_type_t type,
- uint8_t * data, size_t data_size, void *seq,
- unsigned int ms)
+ uint8_t * data, size_t data_size, void *seq, unsigned int ms)
{
int ret;
@@ -1819,7 +1818,8 @@ _gnutls_recv_int(gnutls_session_t session, content_type_t type,
* Since: 3.3.5
**/
-void gnutls_packet_get(gnutls_packet_t packet, gnutls_datum_t *data, unsigned char *sequence)
+void gnutls_packet_get(gnutls_packet_t packet, gnutls_datum_t * data,
+ unsigned char *sequence)
{
if (unlikely(packet == NULL)) {
gnutls_assert();
@@ -1871,8 +1871,7 @@ void gnutls_packet_deinit(gnutls_packet_t packet)
*
* Since: 3.4.0
**/
-size_t
-gnutls_record_discard_queued(gnutls_session_t session)
+size_t gnutls_record_discard_queued(gnutls_session_t session)
{
size_t ret = session->internals.record_send_buffer.byte_length;
_mbuffer_head_clear(&session->internals.record_send_buffer);
@@ -1899,15 +1898,15 @@ gnutls_record_discard_queued(gnutls_session_t session)
* Since: 3.3.5
**/
ssize_t
-gnutls_record_recv_packet(gnutls_session_t session,
- gnutls_packet_t *packet)
+gnutls_record_recv_packet(gnutls_session_t session, gnutls_packet_t * packet)
{
int ret;
if (packet == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- ret = check_session_status(session, session->internals.record_timeout_ms);
+ ret =
+ check_session_status(session, session->internals.record_timeout_ms);
if (ret <= 0)
return ret;
@@ -1920,25 +1919,27 @@ gnutls_record_recv_packet(gnutls_session_t session,
if (ret < 0 && ret != GNUTLS_E_SESSION_EOF)
return gnutls_assert_val(ret);
- return get_packet_from_buffers(session, GNUTLS_APPLICATION_DATA, packet);
+ return get_packet_from_buffers(session, GNUTLS_APPLICATION_DATA,
+ packet);
}
static
-ssize_t append_data_to_corked(gnutls_session_t session, const void *data, size_t data_size)
+ssize_t append_data_to_corked(gnutls_session_t session, const void *data,
+ size_t data_size)
{
int ret;
if (IS_DTLS(session)) {
- if (data_size + session->internals.record_presend_buffer.length >
- gnutls_dtls_get_data_mtu(session)) {
+ if (data_size +
+ session->internals.record_presend_buffer.length >
+ gnutls_dtls_get_data_mtu(session)) {
return gnutls_assert_val(GNUTLS_E_LARGE_PACKET);
}
}
ret =
_gnutls_buffer_append_data(&session->internals.
- record_presend_buffer, data,
- data_size);
+ record_presend_buffer, data, data_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1985,8 +1986,7 @@ ssize_t append_data_to_corked(gnutls_session_t session, const void *data, size_t
* on the negotiated maximum record size.
**/
ssize_t
-gnutls_record_send(gnutls_session_t session, const void *data,
- size_t data_size)
+gnutls_record_send(gnutls_session_t session, const void *data, size_t data_size)
{
return gnutls_record_send2(session, data, data_size, 0, 0);
}
@@ -2033,13 +2033,19 @@ gnutls_record_send2(gnutls_session_t session, const void *data,
* to avoid locking during normal operation of gnutls_record_send2() */
if (!session->internals.initial_negotiation_completed &&
session->internals.recv_state != RECV_STATE_FALSE_START &&
- session->internals.recv_state != RECV_STATE_FALSE_START_HANDLING &&
- session->internals.recv_state != RECV_STATE_EARLY_START &&
- session->internals.recv_state != RECV_STATE_EARLY_START_HANDLING &&
- !(session->internals.hsk_flags & HSK_EARLY_DATA_IN_FLIGHT)) {
-
- gnutls_mutex_unlock(&session->internals.post_negotiation_lock);
- return gnutls_assert_val(GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE);
+ session->internals.recv_state !=
+ RECV_STATE_FALSE_START_HANDLING
+ && session->internals.recv_state != RECV_STATE_EARLY_START
+ && session->internals.recv_state !=
+ RECV_STATE_EARLY_START_HANDLING
+ && !(session->
+ internals.hsk_flags & HSK_EARLY_DATA_IN_FLIGHT)) {
+
+ gnutls_mutex_unlock(&session->
+ internals.post_negotiation_lock);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE);
}
gnutls_mutex_unlock(&session->internals.post_negotiation_lock);
}
@@ -2048,60 +2054,74 @@ gnutls_record_send2(gnutls_session_t session, const void *data,
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
if (vers->tls13_sem)
- max_pad = gnutls_record_get_max_size(session) - gnutls_record_overhead_size(session);
+ max_pad =
+ gnutls_record_get_max_size(session) -
+ gnutls_record_overhead_size(session);
if (pad > max_pad)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- switch(session->internals.rsend_state) {
- case RECORD_SEND_NORMAL:
- if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)) {
- return _gnutls_ktls_send(session, data, data_size);
- } else {
- return _gnutls_send_tlen_int(session, GNUTLS_APPLICATION_DATA,
- -1, EPOCH_WRITE_CURRENT, data,
- data_size, pad, MBUFFER_FLUSH);
- }
- case RECORD_SEND_CORKED:
- case RECORD_SEND_CORKED_TO_KU:
- return append_data_to_corked(session, data, data_size);
- case RECORD_SEND_KEY_UPDATE_1:
- _gnutls_buffer_reset(&session->internals.record_key_update_buffer);
-
- ret = _gnutls_buffer_append_data(&session->internals.record_key_update_buffer,
- data, data_size);
- if (ret < 0)
- return gnutls_assert_val(ret);
-
- session->internals.rsend_state = RECORD_SEND_KEY_UPDATE_2;
- FALLTHROUGH;
- case RECORD_SEND_KEY_UPDATE_2:
- ret = gnutls_session_key_update(session, 0);
- if (ret < 0)
- return gnutls_assert_val(ret);
-
- session->internals.rsend_state = RECORD_SEND_KEY_UPDATE_3;
- FALLTHROUGH;
- case RECORD_SEND_KEY_UPDATE_3:
- if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)) {
- return _gnutls_ktls_send(session,
- session->internals.record_key_update_buffer.data,
- session->internals.record_key_update_buffer.length);
- } else {
- ret = _gnutls_send_int(session, GNUTLS_APPLICATION_DATA,
- -1, EPOCH_WRITE_CURRENT,
- session->internals.record_key_update_buffer.data,
- session->internals.record_key_update_buffer.length,
- MBUFFER_FLUSH);
- }
- _gnutls_buffer_clear(&session->internals.record_key_update_buffer);
- session->internals.rsend_state = RECORD_SEND_NORMAL;
- if (ret < 0)
- gnutls_assert();
+ switch (session->internals.rsend_state) {
+ case RECORD_SEND_NORMAL:
+ if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)) {
+ return _gnutls_ktls_send(session, data, data_size);
+ } else {
+ return _gnutls_send_tlen_int(session,
+ GNUTLS_APPLICATION_DATA,
+ -1, EPOCH_WRITE_CURRENT,
+ data, data_size, pad,
+ MBUFFER_FLUSH);
+ }
+ case RECORD_SEND_CORKED:
+ case RECORD_SEND_CORKED_TO_KU:
+ return append_data_to_corked(session, data, data_size);
+ case RECORD_SEND_KEY_UPDATE_1:
+ _gnutls_buffer_reset(&session->
+ internals.record_key_update_buffer);
- return ret;
- default:
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ ret =
+ _gnutls_buffer_append_data(&session->
+ internals.record_key_update_buffer,
+ data, data_size);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
+
+ session->internals.rsend_state = RECORD_SEND_KEY_UPDATE_2;
+ FALLTHROUGH;
+ case RECORD_SEND_KEY_UPDATE_2:
+ ret = gnutls_session_key_update(session, 0);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
+
+ session->internals.rsend_state = RECORD_SEND_KEY_UPDATE_3;
+ FALLTHROUGH;
+ case RECORD_SEND_KEY_UPDATE_3:
+ if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)) {
+ return _gnutls_ktls_send(session,
+ session->
+ internals.record_key_update_buffer.
+ data,
+ session->
+ internals.record_key_update_buffer.length);
+ } else {
+ ret = _gnutls_send_int(session, GNUTLS_APPLICATION_DATA,
+ -1, EPOCH_WRITE_CURRENT,
+ session->
+ internals.record_key_update_buffer.
+ data,
+ session->
+ internals.record_key_update_buffer.
+ length, MBUFFER_FLUSH);
+ }
+ _gnutls_buffer_clear(&session->
+ internals.record_key_update_buffer);
+ session->internals.rsend_state = RECORD_SEND_NORMAL;
+ if (ret < 0)
+ gnutls_assert();
+
+ return ret;
+ default:
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
}
@@ -2129,8 +2149,7 @@ gnutls_record_send2(gnutls_session_t session, const void *data,
* Since: 3.6.5
**/
ssize_t gnutls_record_send_early_data(gnutls_session_t session,
- const void *data,
- size_t data_size)
+ const void *data, size_t data_size)
{
int ret;
@@ -2141,10 +2160,8 @@ ssize_t gnutls_record_send_early_data(gnutls_session_t session,
return 0;
}
- if (xsum(session->internals.
- early_data_presend_buffer.length,
- data_size) >
- session->security_parameters.max_early_data_size)
+ if (xsum(session->internals.early_data_presend_buffer.length,
+ data_size) > session->security_parameters.max_early_data_size)
return gnutls_assert_val(GNUTLS_E_RECORD_LIMIT_REACHED);
ret =
@@ -2181,7 +2198,7 @@ ssize_t gnutls_record_send_early_data(gnutls_session_t session,
* Returns: The number of bytes sent, or a negative error code.
**/
ssize_t gnutls_record_send_file(gnutls_session_t session, int fd,
- off_t *offset, size_t count)
+ off_t * offset, size_t count)
{
ssize_t ret;
size_t buf_len;
@@ -2195,7 +2212,7 @@ ssize_t gnutls_record_send_file(gnutls_session_t session, int fd,
if (offset != NULL) {
saved_offset = lseek(fd, 0, SEEK_CUR);
- if (saved_offset == (off_t)-1) {
+ if (saved_offset == (off_t) - 1) {
return GNUTLS_E_FILE_ERROR;
}
if (lseek(fd, *offset, SEEK_CUR) == -1) {
@@ -2216,7 +2233,7 @@ ssize_t gnutls_record_send_file(gnutls_session_t session, int fd,
ret = read(fd, buf, MIN(buf_len, count - sent));
if (ret == 0) {
break;
- } else if (ret == -1){
+ } else if (ret == -1) {
if (errno == EAGAIN) {
ret = GNUTLS_E_AGAIN;
goto end;
@@ -2239,8 +2256,8 @@ ssize_t gnutls_record_send_file(gnutls_session_t session, int fd,
ret = sent;
- end:
- if (offset != NULL){
+ end:
+ if (offset != NULL) {
if (likely(!INT_ADD_OVERFLOW(*offset, sent))) {
*offset += sent;
} else {
@@ -2277,7 +2294,8 @@ ssize_t gnutls_record_send_file(gnutls_session_t session, int fd,
* Since: 3.6.5
**/
ssize_t
-gnutls_record_recv_early_data(gnutls_session_t session, void *data, size_t data_size)
+gnutls_record_recv_early_data(gnutls_session_t session, void *data,
+ size_t data_size)
{
mbuffer_st *bufel;
gnutls_datum_t msg;
@@ -2286,12 +2304,11 @@ gnutls_record_recv_early_data(gnutls_session_t session, void *data, size_t data_
if (session->security_parameters.entity != GNUTLS_SERVER)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- bufel = _mbuffer_head_get_first(&session->internals.early_data_recv_buffer,
- &msg);
+ bufel =
+ _mbuffer_head_get_first(&session->internals.early_data_recv_buffer,
+ &msg);
if (bufel == NULL)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
length = MIN(msg.size, data_size);
memcpy(data, msg.data, length);
@@ -2363,15 +2380,16 @@ int gnutls_record_uncork(gnutls_session_t session, unsigned int flags)
record_presend_buffer.
length);
}
- while (ret < 0 && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
+ while (ret < 0
+ && (ret == GNUTLS_E_AGAIN
+ || ret == GNUTLS_E_INTERRUPTED));
} else {
ret =
gnutls_record_send(session,
session->internals.
record_presend_buffer.data,
session->internals.
- record_presend_buffer.
- length);
+ record_presend_buffer.length);
}
if (ret < 0)
goto fail;
@@ -2383,7 +2401,7 @@ int gnutls_record_uncork(gnutls_session_t session, unsigned int flags)
return total;
- fail:
+ fail:
session->internals.rsend_state = orig_state;
return ret;
}
@@ -2423,7 +2441,9 @@ gnutls_record_recv(gnutls_session_t session, void *data, size_t data_size)
* state. */
if (session->internals.recv_state != RECV_STATE_FALSE_START &&
session->internals.recv_state != RECV_STATE_EARLY_START)
- return gnutls_assert_val(GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE);
}
if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_RECV)) {
@@ -2500,8 +2520,8 @@ void gnutls_record_set_timeout(gnutls_session_t session, unsigned int ms)
*/
int
gnutls_handshake_write(gnutls_session_t session,
- gnutls_record_encryption_level_t level,
- const void *data, size_t data_size)
+ gnutls_record_encryption_level_t level,
+ const void *data, size_t data_size)
{
record_parameters_st *record_params;
record_state_st *record_state;
@@ -2522,7 +2542,8 @@ gnutls_handshake_write(gnutls_session_t session,
* in GNUTLS_KTLS_RECV mode in which case the outgoing messages
* are handled by GnuTLS.
*/
- if (!session->internals.h_read_func && !IS_KTLS_ENABLED(session, GNUTLS_KTLS_RECV))
+ if (!session->internals.h_read_func
+ && !IS_KTLS_ENABLED(session, GNUTLS_KTLS_RECV))
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if (session->internals.initial_negotiation_completed) {
diff --git a/lib/record.h b/lib/record.h
index 27aab48c7b..6b08ed4129 100644
--- a/lib/record.h
+++ b/lib/record.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_LIB_RECORD_H
-#define GNUTLS_LIB_RECORD_H
+# define GNUTLS_LIB_RECORD_H
-#include <gnutls/gnutls.h>
-#include <buffers.h>
-#include <constate.h>
+# include <gnutls/gnutls.h>
+# include <buffers.h>
+# include <constate.h>
ssize_t _gnutls_send_tlen_int(gnutls_session_t session,
content_type_t type,
@@ -53,7 +53,9 @@ inline static unsigned max_record_recv_size(gnutls_session_t session)
unsigned size;
if (session->internals.max_recv_size == 0) {
- size = session->security_parameters.max_record_recv_size + RECORD_HEADER_SIZE(session);
+ size =
+ session->security_parameters.max_record_recv_size +
+ RECORD_HEADER_SIZE(session);
if (session->internals.allow_large_records != 0)
size += EXTRA_COMP_SIZE;
} else {
@@ -88,12 +90,13 @@ unsigned int get_total_headers(gnutls_session_t session)
if (ret < 0) {
return total;
}
-
+
return total + _gnutls_cipher_get_explicit_iv_size(params->cipher);
}
inline static
-unsigned int get_total_headers2(gnutls_session_t session, record_parameters_st *params)
+unsigned int get_total_headers2(gnutls_session_t session,
+ record_parameters_st * params)
{
unsigned total = RECORD_HEADER_SIZE(session);
@@ -105,4 +108,4 @@ inline static void session_invalidate(gnutls_session_t session)
session->internals.invalid_connection = 1;
}
-#endif /* GNUTLS_LIB_RECORD_H */
+#endif /* GNUTLS_LIB_RECORD_H */
diff --git a/lib/safe-memfuncs.c b/lib/safe-memfuncs.c
index e8e47d824b..72e0436b9e 100644
--- a/lib/safe-memfuncs.c
+++ b/lib/safe-memfuncs.c
@@ -59,7 +59,7 @@ int gnutls_memcmp(const void *s1, const void *s2, size_t n)
const uint8_t *_s1 = s1;
const uint8_t *_s2 = s2;
- for (i=0;i<n;i++) {
+ for (i = 0; i < n; i++) {
status |= (_s1[i] ^ _s2[i]);
}
diff --git a/lib/secrets.c b/lib/secrets.c
index 728876ede3..8eea85172e 100644
--- a/lib/secrets.c
+++ b/lib/secrets.c
@@ -30,18 +30,19 @@
#include "secrets.h"
/* HKDF-Extract(0,0) or HKDF-Extract(0, PSK) */
-int _tls13_init_secret(gnutls_session_t session, const uint8_t *psk, size_t psk_size)
+int _tls13_init_secret(gnutls_session_t session, const uint8_t * psk,
+ size_t psk_size)
{
- session->key.proto.tls13.temp_secret_size = session->security_parameters.prf->output_size;
+ session->key.proto.tls13.temp_secret_size =
+ session->security_parameters.prf->output_size;
return _tls13_init_secret2(session->security_parameters.prf,
psk, psk_size,
session->key.proto.tls13.temp_secret);
}
-int _tls13_init_secret2(const mac_entry_st *prf,
- const uint8_t *psk, size_t psk_size,
- void *out)
+int _tls13_init_secret2(const mac_entry_st * prf,
+ const uint8_t * psk, size_t psk_size, void *out)
{
char buf[128];
@@ -55,17 +56,15 @@ int _tls13_init_secret2(const mac_entry_st *prf,
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
memset(buf, 0, psk_size);
- psk = (uint8_t*) buf;
+ psk = (uint8_t *) buf;
}
- return gnutls_hmac_fast(prf->id,
- "", 0,
- psk, psk_size,
- out);
+ return gnutls_hmac_fast(prf->id, "", 0, psk, psk_size, out);
}
/* HKDF-Extract(Prev-Secret, key) */
-int _tls13_update_secret(gnutls_session_t session, const uint8_t *key, size_t key_size)
+int _tls13_update_secret(gnutls_session_t session, const uint8_t * key,
+ size_t key_size)
{
gnutls_datum_t _key;
gnutls_datum_t salt;
@@ -77,8 +76,8 @@ int _tls13_update_secret(gnutls_session_t session, const uint8_t *key, size_t ke
salt.size = session->key.proto.tls13.temp_secret_size;
ret = _gnutls_hkdf_extract(session->security_parameters.prf->id,
- &_key, &salt,
- session->key.proto.tls13.temp_secret);
+ &_key, &salt,
+ session->key.proto.tls13.temp_secret);
if (ret < 0)
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
else
@@ -88,11 +87,10 @@ int _tls13_update_secret(gnutls_session_t session, const uint8_t *key, size_t ke
}
/* Derive-Secret(Secret, Label, Messages) */
-int _tls13_derive_secret2(const mac_entry_st *prf,
- const char *label, unsigned label_size,
- const uint8_t *tbh, size_t tbh_size,
- const uint8_t secret[MAX_HASH_SIZE],
- void *out)
+int _tls13_derive_secret2(const mac_entry_st * prf,
+ const char *label, unsigned label_size,
+ const uint8_t * tbh, size_t tbh_size,
+ const uint8_t secret[MAX_HASH_SIZE], void *out)
{
uint8_t digest[MAX_HASH_SIZE];
int ret;
@@ -105,35 +103,33 @@ int _tls13_derive_secret2(const mac_entry_st *prf,
digest_size = prf->output_size;
ret = gnutls_hash_fast((gnutls_digest_algorithm_t) prf->id,
- tbh, tbh_size, digest);
+ tbh, tbh_size, digest);
if (ret < 0)
return gnutls_assert_val(ret);
- return _tls13_expand_secret2(prf, label, label_size, digest, digest_size, secret, digest_size, out);
+ return _tls13_expand_secret2(prf, label, label_size, digest,
+ digest_size, secret, digest_size, out);
}
/* Derive-Secret(Secret, Label, Messages) */
int _tls13_derive_secret(gnutls_session_t session,
const char *label, unsigned label_size,
- const uint8_t *tbh, size_t tbh_size,
- const uint8_t secret[MAX_HASH_SIZE],
- void *out)
+ const uint8_t * tbh, size_t tbh_size,
+ const uint8_t secret[MAX_HASH_SIZE], void *out)
{
if (unlikely(session->security_parameters.prf == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- return _tls13_derive_secret2(session->security_parameters.prf, label, label_size, tbh, tbh_size,
- secret,
- out);
+ return _tls13_derive_secret2(session->security_parameters.prf, label,
+ label_size, tbh, tbh_size, secret, out);
}
/* HKDF-Expand-Label(Secret, Label, HashValue, Length) */
-int _tls13_expand_secret2(const mac_entry_st *prf,
- const char *label, unsigned label_size,
- const uint8_t *msg, size_t msg_size,
- const uint8_t secret[MAX_HASH_SIZE],
- unsigned out_size,
- void *out)
+int _tls13_expand_secret2(const mac_entry_st * prf,
+ const char *label, unsigned label_size,
+ const uint8_t * msg, size_t msg_size,
+ const uint8_t secret[MAX_HASH_SIZE],
+ unsigned out_size, void *out)
{
uint8_t tmp[256] = "tls13 ";
gnutls_buffer_st str;
@@ -141,7 +137,7 @@ int _tls13_expand_secret2(const mac_entry_st *prf,
gnutls_datum_t info;
int ret;
- if (unlikely(label_size >= sizeof(tmp)-6))
+ if (unlikely(label_size >= sizeof(tmp) - 6))
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
_gnutls_buffer_init(&str);
@@ -153,7 +149,7 @@ int _tls13_expand_secret2(const mac_entry_st *prf,
}
memcpy(&tmp[6], label, label_size);
- ret = _gnutls_buffer_append_data_prefix(&str, 8, tmp, label_size+6);
+ ret = _gnutls_buffer_append_data_prefix(&str, 8, tmp, label_size + 6);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -166,7 +162,7 @@ int _tls13_expand_secret2(const mac_entry_st *prf,
}
key.data = (void *)secret;
- key.size =_gnutls_mac_get_algo_len(mac_to_entry(prf->id));
+ key.size = _gnutls_mac_get_algo_len(mac_to_entry(prf->id));
info.data = str.data;
info.size = str.length;
@@ -180,14 +176,14 @@ int _tls13_expand_secret2(const mac_entry_st *prf,
}
#if 0
- _gnutls_hard_log("INT: hkdf label: %d,%s\n",
- out_size,
- _gnutls_bin2hex(str.data, str.length,
- (char*)tmp, sizeof(tmp), NULL));
- _gnutls_hard_log("INT: secret expanded for '%.*s': %d,%s\n",
- (int)label_size, label, out_size,
- _gnutls_bin2hex(out, out_size,
- (char*)tmp, sizeof(tmp), NULL));
+ _gnutls_hard_log("INT: hkdf label: %d,%s\n",
+ out_size,
+ _gnutls_bin2hex(str.data, str.length,
+ (char *)tmp, sizeof(tmp), NULL));
+ _gnutls_hard_log("INT: secret expanded for '%.*s': %d,%s\n",
+ (int)label_size, label, out_size,
+ _gnutls_bin2hex(out, out_size,
+ (char *)tmp, sizeof(tmp), NULL));
#endif
ret = 0;
@@ -197,18 +193,15 @@ int _tls13_expand_secret2(const mac_entry_st *prf,
}
int _tls13_expand_secret(gnutls_session_t session,
- const char *label, unsigned label_size,
- const uint8_t *msg, size_t msg_size,
- const uint8_t secret[MAX_HASH_SIZE],
- unsigned out_size,
- void *out)
+ const char *label, unsigned label_size,
+ const uint8_t * msg, size_t msg_size,
+ const uint8_t secret[MAX_HASH_SIZE],
+ unsigned out_size, void *out)
{
if (unlikely(session->security_parameters.prf == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
return _tls13_expand_secret2(session->security_parameters.prf,
- label, label_size,
- msg, msg_size, secret,
- out_size, out);
+ label, label_size,
+ msg, msg_size, secret, out_size, out);
}
-
diff --git a/lib/secrets.h b/lib/secrets.h
index 181b53bed2..bf47a2030c 100644
--- a/lib/secrets.h
+++ b/lib/secrets.h
@@ -21,38 +21,37 @@
*/
#ifndef GNUTLS_LIB_SECRETS_H
-#define GNUTLS_LIB_SECRETS_H
+# define GNUTLS_LIB_SECRETS_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
-int _tls13_init_secret(gnutls_session_t session, const uint8_t *psk, size_t psk_size);
-int _tls13_update_secret(gnutls_session_t session, const uint8_t *key, size_t key_size);
+int _tls13_init_secret(gnutls_session_t session, const uint8_t * psk,
+ size_t psk_size);
+int _tls13_update_secret(gnutls_session_t session, const uint8_t * key,
+ size_t key_size);
-int _tls13_init_secret2(const mac_entry_st *prf,
- const uint8_t *psk, size_t psk_size,
- void *out);
+int _tls13_init_secret2(const mac_entry_st * prf,
+ const uint8_t * psk, size_t psk_size, void *out);
int _tls13_derive_secret(gnutls_session_t session,
const char *label, unsigned label_size,
- const uint8_t *msg, size_t msg_size,
+ const uint8_t * msg, size_t msg_size,
const uint8_t secret[MAX_HASH_SIZE],
- void *out /* of enough length to hold PRF MAC */);
-int _tls13_derive_secret2(const mac_entry_st *prf,
+ void *out /* of enough length to hold PRF MAC */ );
+int _tls13_derive_secret2(const mac_entry_st * prf,
const char *label, unsigned label_size,
- const uint8_t *tbh, size_t tbh_size,
- const uint8_t secret[MAX_HASH_SIZE],
- void *out);
+ const uint8_t * tbh, size_t tbh_size,
+ const uint8_t secret[MAX_HASH_SIZE], void *out);
int _tls13_expand_secret(gnutls_session_t session,
const char *label, unsigned label_size,
- const uint8_t *msg, size_t msg_size,
+ const uint8_t * msg, size_t msg_size,
const uint8_t secret[MAX_HASH_SIZE],
- unsigned out_size,
- void *out);
-int _tls13_expand_secret2(const mac_entry_st *prf,
+ unsigned out_size, void *out);
+int _tls13_expand_secret2(const mac_entry_st * prf,
const char *label, unsigned label_size,
- const uint8_t *msg, size_t msg_size,
+ const uint8_t * msg, size_t msg_size,
const uint8_t secret[MAX_HASH_SIZE],
unsigned out_size, void *out);
-#endif /* GNUTLS_LIB_SECRETS_H */
+#endif /* GNUTLS_LIB_SECRETS_H */
diff --git a/lib/session.c b/lib/session.c
index 744c83d0c6..6f4e98ed65 100644
--- a/lib/session.c
+++ b/lib/session.c
@@ -46,7 +46,7 @@
**/
int
gnutls_session_get_data(gnutls_session_t session,
- void *session_data, size_t * session_data_size)
+ void *session_data, size_t *session_data_size)
{
gnutls_datum_t psession;
@@ -70,7 +70,7 @@ gnutls_session_get_data(gnutls_session_t session,
ret = 0;
- error:
+ error:
_gnutls_free_datum(&psession);
return ret;
}
@@ -118,8 +118,7 @@ gnutls_session_get_data(gnutls_session_t session,
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise
* an error code is returned.
**/
-int
-gnutls_session_get_data2(gnutls_session_t session, gnutls_datum_t *data)
+int gnutls_session_get_data2(gnutls_session_t session, gnutls_datum_t * data)
{
const version_entry_st *vers = get_version(session);
int ret;
@@ -128,7 +127,8 @@ gnutls_session_get_data2(gnutls_session_t session, gnutls_datum_t *data)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
- if (vers->tls13_sem && !(session->internals.hsk_flags & HSK_TICKET_RECEIVED)) {
+ if (vers->tls13_sem
+ && !(session->internals.hsk_flags & HSK_TICKET_RECEIVED)) {
unsigned ertt = session->internals.ertt;
/* use our estimation of round-trip + some time for the server to calculate
* the value(s). */
@@ -136,19 +136,27 @@ gnutls_session_get_data2(gnutls_session_t session, gnutls_datum_t *data)
/* we cannot use a read with timeout if the caller has not set
* a callback with gnutls_transport_set_pull_timeout_function() */
- if (NO_TIMEOUT_FUNC_SET(session) || (session->internals.flags & GNUTLS_NONBLOCK)) {
+ if (NO_TIMEOUT_FUNC_SET(session)
+ || (session->internals.flags & GNUTLS_NONBLOCK)) {
if (!(session->internals.flags & GNUTLS_NONBLOCK))
- _gnutls_debug_log("TLS1.3 works efficiently if a callback with gnutls_transport_set_pull_timeout_function() is set\n");
+ _gnutls_debug_log
+ ("TLS1.3 works efficiently if a callback with gnutls_transport_set_pull_timeout_function() is set\n");
} else {
/* wait for a message with timeout */
- ret = _gnutls_recv_in_buffers(session, GNUTLS_APPLICATION_DATA, -1, ertt);
- if (ret < 0 && (gnutls_error_is_fatal(ret) && ret != GNUTLS_E_TIMEDOUT)) {
+ ret =
+ _gnutls_recv_in_buffers(session,
+ GNUTLS_APPLICATION_DATA, -1,
+ ertt);
+ if (ret < 0 && (gnutls_error_is_fatal(ret)
+ && ret != GNUTLS_E_TIMEDOUT)) {
return gnutls_assert_val(ret);
}
}
if (!(session->internals.hsk_flags & HSK_TICKET_RECEIVED)) {
- ret = _gnutls_set_datum(data, EMPTY_DATA, EMPTY_DATA_SIZE);
+ ret =
+ _gnutls_set_datum(data, EMPTY_DATA,
+ EMPTY_DATA_SIZE);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -157,8 +165,14 @@ gnutls_session_get_data2(gnutls_session_t session, gnutls_datum_t *data)
} else if (!vers->tls13_sem) {
/* under TLS1.3 we want to pack the latest ticket, while that's
* not the case in TLS1.2 or earlier. */
- if (gnutls_session_is_resumed(session) && session->internals.resumption_data.data) {
- ret = _gnutls_set_datum(data, session->internals.resumption_data.data, session->internals.resumption_data.size);
+ if (gnutls_session_is_resumed(session)
+ && session->internals.resumption_data.data) {
+ ret =
+ _gnutls_set_datum(data,
+ session->
+ internals.resumption_data.data,
+ session->
+ internals.resumption_data.size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -178,7 +192,6 @@ gnutls_session_get_data2(gnutls_session_t session, gnutls_datum_t *data)
return 0;
}
-
/**
* gnutls_session_get_id:
* @session: is a #gnutls_session_t type.
@@ -208,7 +221,7 @@ gnutls_session_get_data2(gnutls_session_t session, gnutls_datum_t *data)
**/
int
gnutls_session_get_id(gnutls_session_t session,
- void *session_id, size_t * session_id_size)
+ void *session_id, size_t *session_id_size)
{
size_t given_session_id_size = *session_id_size;
@@ -259,8 +272,7 @@ gnutls_session_get_id(gnutls_session_t session,
* Since: 3.1.4
**/
int
-gnutls_session_get_id2(gnutls_session_t session,
- gnutls_datum_t * session_id)
+gnutls_session_get_id2(gnutls_session_t session, gnutls_datum_t * session_id)
{
session_id->size = session->security_parameters.session_id_size;
session_id->data = session->security_parameters.session_id;
@@ -318,7 +330,9 @@ gnutls_session_set_data(gnutls_session_t session,
if (session->internals.resumption_data.data != NULL)
gnutls_free(session->internals.resumption_data.data);
- ret = _gnutls_set_datum(&session->internals.resumption_data, session_data, session_data_size);
+ ret =
+ _gnutls_set_datum(&session->internals.resumption_data, session_data,
+ session_data_size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -385,7 +399,8 @@ char *gnutls_session_get_desc(gnutls_session_t session)
if (group_name == NULL && _gnutls_kx_is_dhe(kx)) {
dh_bits = gnutls_dh_get_prime_bits(session);
if (dh_bits > 0)
- snprintf(_group_name, sizeof(_group_name), "CUSTOM%d", dh_bits);
+ snprintf(_group_name, sizeof(_group_name), "CUSTOM%d",
+ dh_bits);
else
snprintf(_group_name, sizeof(_group_name), "CUSTOM");
group_name = _group_name;
@@ -399,25 +414,26 @@ char *gnutls_session_get_desc(gnutls_session_t session)
sign_algo = gnutls_sign_algorithm_get(session);
sign_str = gnutls_sign_get_name(sign_algo);
- if (kx == 0 && ver->tls13_sem) { /* TLS 1.3 */
+ if (kx == 0 && ver->tls13_sem) { /* TLS 1.3 */
if (session->internals.hsk_flags & HSK_PSK_SELECTED) {
if (group) {
if (group->pk == GNUTLS_PK_DH)
- snprintf(kx_name, sizeof(kx_name), "(DHE-PSK-%s)",
- group_name);
+ snprintf(kx_name, sizeof(kx_name),
+ "(DHE-PSK-%s)", group_name);
else
- snprintf(kx_name, sizeof(kx_name), "(ECDHE-PSK-%s)",
- group_name);
+ snprintf(kx_name, sizeof(kx_name),
+ "(ECDHE-PSK-%s)", group_name);
} else {
- snprintf(kx_name, sizeof(kx_name), "(PSK)");
+ snprintf(kx_name, sizeof(kx_name), "(PSK)");
}
} else if (group && sign_str) {
if (group->curve)
- snprintf(kx_name, sizeof(kx_name), "(ECDHE-%s)-(%s)",
- group_name, sign_str);
+ snprintf(kx_name, sizeof(kx_name),
+ "(ECDHE-%s)-(%s)", group_name,
+ sign_str);
else
- snprintf(kx_name, sizeof(kx_name), "(DHE-%s)-(%s)",
- group_name, sign_str);
+ snprintf(kx_name, sizeof(kx_name),
+ "(DHE-%s)-(%s)", group_name, sign_str);
}
} else {
kx_str = gnutls_kx_get_name(kx);
@@ -427,48 +443,57 @@ char *gnutls_session_get_desc(gnutls_session_t session)
}
if ((kx == GNUTLS_KX_ECDHE_ECDSA || kx == GNUTLS_KX_ECDHE_RSA ||
- kx == GNUTLS_KX_ECDHE_PSK) && group_name) {
+ kx == GNUTLS_KX_ECDHE_PSK) && group_name) {
if (sign_str)
- snprintf(kx_name, sizeof(kx_name), "(ECDHE-%s)-(%s)",
- group_name, sign_str);
+ snprintf(kx_name, sizeof(kx_name),
+ "(ECDHE-%s)-(%s)", group_name,
+ sign_str);
else
snprintf(kx_name, sizeof(kx_name), "(ECDHE-%s)",
group_name);
- } else if ((kx == GNUTLS_KX_DHE_DSS || kx == GNUTLS_KX_DHE_RSA ||
- kx == GNUTLS_KX_DHE_PSK) && group_name) {
+ } else
+ if ((kx == GNUTLS_KX_DHE_DSS || kx == GNUTLS_KX_DHE_RSA
+ || kx == GNUTLS_KX_DHE_PSK) && group_name) {
if (sign_str)
- snprintf(kx_name, sizeof(kx_name), "(DHE-%s)-(%s)", group_name, sign_str);
+ snprintf(kx_name, sizeof(kx_name),
+ "(DHE-%s)-(%s)", group_name, sign_str);
else
- snprintf(kx_name, sizeof(kx_name), "(DHE-%s)", group_name);
+ snprintf(kx_name, sizeof(kx_name), "(DHE-%s)",
+ group_name);
} else if (kx == GNUTLS_KX_RSA) {
/* Possible enhancement: include the certificate bits */
snprintf(kx_name, sizeof(kx_name), "(RSA)");
} else {
- snprintf(kx_name, sizeof(kx_name), "(%s)",
- kx_str);
+ snprintf(kx_name, sizeof(kx_name), "(%s)", kx_str);
}
}
if (are_alternative_cert_types_allowed(session)) {
// Get certificate types
- ctype_client = get_certificate_type(session, GNUTLS_CTYPE_CLIENT);
- ctype_server = get_certificate_type(session, GNUTLS_CTYPE_SERVER);
+ ctype_client =
+ get_certificate_type(session, GNUTLS_CTYPE_CLIENT);
+ ctype_server =
+ get_certificate_type(session, GNUTLS_CTYPE_SERVER);
if (ctype_client == ctype_server) {
// print proto version, client/server cert type
snprintf(proto_name, sizeof(proto_name), "%s-%s",
- gnutls_protocol_get_name(get_num_version(session)),
- gnutls_certificate_type_get_name(ctype_client));
+ gnutls_protocol_get_name(get_num_version
+ (session)),
+ gnutls_certificate_type_get_name
+ (ctype_client));
} else {
// print proto version, client cert type, server cert type
snprintf(proto_name, sizeof(proto_name), "%s-%s-%s",
- gnutls_protocol_get_name(get_num_version(session)),
+ gnutls_protocol_get_name(get_num_version
+ (session)),
gnutls_certificate_type_get_name(ctype_client),
- gnutls_certificate_type_get_name(ctype_server));
+ gnutls_certificate_type_get_name
+ (ctype_server));
}
- } else { // Assumed default certificate type (X.509)
+ } else { // Assumed default certificate type (X.509)
snprintf(proto_name, sizeof(proto_name), "%s",
- gnutls_protocol_get_name(get_num_version(session)));
+ gnutls_protocol_get_name(get_num_version(session)));
}
desc = gnutls_malloc(DESC_SIZE);
@@ -476,7 +501,7 @@ char *gnutls_session_get_desc(gnutls_session_t session)
return NULL;
mac_id = gnutls_mac_get(session);
- if (mac_id == GNUTLS_MAC_AEAD) { /* no need to print */
+ if (mac_id == GNUTLS_MAC_AEAD) { /* no need to print */
snprintf(desc, DESC_SIZE,
"(%s)-%s-(%s)",
proto_name,
@@ -510,8 +535,7 @@ char *gnutls_session_get_desc(gnutls_session_t session)
*
* Since: 3.2.1
**/
-int
-gnutls_session_set_id(gnutls_session_t session, const gnutls_datum_t * sid)
+int gnutls_session_set_id(gnutls_session_t session, const gnutls_datum_t * sid)
{
if (session->security_parameters.entity == GNUTLS_SERVER ||
sid->size > GNUTLS_MAX_SESSION_ID_SIZE)
diff --git a/lib/session_pack.c b/lib/session_pack.c
index 14d3677f9e..47ede0af4c 100644
--- a/lib/session_pack.c
+++ b/lib/session_pack.c
@@ -27,10 +27,10 @@
#include "gnutls_int.h"
#ifdef ENABLE_SRP
-#include <auth/srp_kx.h>
+# include <auth/srp_kx.h>
#endif
#ifdef ENABLE_PSK
-#include <auth/psk.h>
+# include <auth/psk.h>
#endif
#include <auth/anon.h>
#include <auth/cert.h>
@@ -77,7 +77,6 @@ static int tls13_unpack_security_parameters(gnutls_session_t session,
static int tls13_pack_security_parameters(gnutls_session_t session,
gnutls_buffer_st * packed_session);
-
/* Since auth_info structures contain malloced data, this function
* is required in order to pack these structures in a vector in
* order to store them to the DB.
@@ -87,8 +86,7 @@ static int tls13_pack_security_parameters(gnutls_session_t session,
* The data will be in a platform independent format.
*/
int
-_gnutls_session_pack(gnutls_session_t session,
- gnutls_datum_t * packed_session)
+_gnutls_session_pack(gnutls_session_t session, gnutls_datum_t * packed_session)
{
int ret;
gnutls_buffer_st sb;
@@ -101,7 +99,6 @@ _gnutls_session_pack(gnutls_session_t session,
_gnutls_buffer_init(&sb);
-
id = gnutls_auth_get_type(session);
BUFFER_APPEND_NUM(&sb, PACKED_SESSION_MAGIC);
@@ -159,7 +156,6 @@ _gnutls_session_pack(gnutls_session_t session,
goto fail;
}
-
if (session->security_parameters.pversion->tls13_sem) {
ret = tls13_pack_security_parameters(session, &sb);
if (ret < 0) {
@@ -179,12 +175,11 @@ _gnutls_session_pack(gnutls_session_t session,
return _gnutls_buffer_to_datum(&sb, packed_session, 0);
- fail:
+ fail:
_gnutls_buffer_clear(&sb);
return ret;
}
-
/* Load session data from a buffer.
*/
int
@@ -226,7 +221,7 @@ _gnutls_session_unpack(gnutls_session_t session,
session->internals.resumed_security_parameters.
timestamp);
BUFFER_POP_NUM(&sb, expire_time);
- (void) expire_time;
+ (void)expire_time;
BUFFER_POP(&sb, &id, 1);
switch (id) {
@@ -299,7 +294,7 @@ _gnutls_session_unpack(gnutls_session_t session,
ret = 0;
- error:
+ error:
_gnutls_buffer_clear(&sb);
return ret;
@@ -325,7 +320,7 @@ _gnutls_session_unpack(gnutls_session_t session,
* its nonsense to store all that info.
*/
static int
-tls13_pack_security_parameters(gnutls_session_t session, gnutls_buffer_st *ps)
+tls13_pack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
{
int ret = 0;
uint32_t length = 0;
@@ -340,13 +335,10 @@ tls13_pack_security_parameters(gnutls_session_t session, gnutls_buffer_st *ps)
length += 4;
BUFFER_APPEND_NUM(ps, ticket->age_add);
length += 4;
- BUFFER_APPEND_PFX1(ps,
- ticket->nonce,
- ticket->nonce_size);
+ BUFFER_APPEND_PFX1(ps, ticket->nonce, ticket->nonce_size);
length += (1 + ticket->nonce_size);
BUFFER_APPEND_PFX4(ps,
- ticket->ticket.data,
- ticket->ticket.size);
+ ticket->ticket.data, ticket->ticket.size);
length += (4 + ticket->ticket.size);
BUFFER_APPEND_PFX1(ps,
ticket->resumption_master_secret,
@@ -367,7 +359,8 @@ tls13_pack_security_parameters(gnutls_session_t session, gnutls_buffer_st *ps)
}
static int
-tls13_unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st *ps)
+tls13_unpack_security_parameters(gnutls_session_t session,
+ gnutls_buffer_st * ps)
{
uint32_t ttl_len;
tls13_ticket_st *ticket = &session->internals.tls13_ticket;
@@ -382,9 +375,9 @@ tls13_unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st *ps)
ret = _gnutls_buffer_pop_datum_prefix8(ps, &t);
if (ret < 0 || t.size > sizeof(ticket->nonce)) {
- ret = GNUTLS_E_PARSING_ERROR;
- gnutls_assert();
- goto error;
+ ret = GNUTLS_E_PARSING_ERROR;
+ gnutls_assert();
+ goto error;
}
ticket->nonce_size = t.size;
memcpy(ticket->nonce, t.data, t.size);
@@ -392,18 +385,22 @@ tls13_unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st *ps)
BUFFER_POP_DATUM(ps, &ticket->ticket);
ret = _gnutls_buffer_pop_datum_prefix8(ps, &t);
- if (ret < 0 || t.size > sizeof(ticket->resumption_master_secret)) {
- ret = GNUTLS_E_PARSING_ERROR;
- gnutls_assert();
- goto error;
+ if (ret < 0
+ || t.size > sizeof(ticket->resumption_master_secret)) {
+ ret = GNUTLS_E_PARSING_ERROR;
+ gnutls_assert();
+ goto error;
}
memcpy(ticket->resumption_master_secret, t.data, t.size);
- if (unlikely(session->internals.resumed_security_parameters.prf == NULL ||
- session->internals.resumed_security_parameters.prf->output_size != t.size))
+ if (unlikely
+ (session->internals.resumed_security_parameters.prf == NULL
+ || session->internals.resumed_security_parameters.
+ prf->output_size != t.size))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- ticket->prf = session->internals.resumed_security_parameters.prf;
+ ticket->prf =
+ session->internals.resumed_security_parameters.prf;
BUFFER_POP_TS(ps, ticket->arrival_time);
BUFFER_POP_NUM(ps,
@@ -411,7 +408,7 @@ tls13_unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st *ps)
max_early_data_size);
}
-error:
+ error:
return ret;
}
@@ -442,7 +439,8 @@ pack_certificate_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
{
unsigned int i;
int cur_size, ret;
- cert_auth_info_t info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ cert_auth_info_t info =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
int size_offset;
size_offset = ps->length;
@@ -463,36 +461,29 @@ pack_certificate_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
for (i = 0; i < info->ncerts; i++) {
BUFFER_APPEND_PFX4(ps,
- info->raw_certificate_list[i].
- data,
- info->raw_certificate_list[i].
- size);
+ info->raw_certificate_list[i].data,
+ info->raw_certificate_list[i].size);
}
BUFFER_APPEND_NUM(ps, info->nocsp);
for (i = 0; i < info->nocsp; i++) {
BUFFER_APPEND_PFX4(ps,
- info->raw_ocsp_list[i].
- data,
- info->raw_ocsp_list[i].
- size);
+ info->raw_ocsp_list[i].data,
+ info->raw_ocsp_list[i].size);
}
}
/* write the real size */
- _gnutls_write_uint32(ps->length - cur_size,
- ps->data + size_offset);
+ _gnutls_write_uint32(ps->length - cur_size, ps->data + size_offset);
return 0;
}
-
/* Upack certificate info.
*/
static int
-unpack_certificate_auth_info(gnutls_session_t session,
- gnutls_buffer_st * ps)
+unpack_certificate_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
{
int ret;
unsigned int i = 0, j = 0;
@@ -510,7 +501,7 @@ unpack_certificate_auth_info(gnutls_session_t session,
*/
ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_CERTIFICATE,
- sizeof(cert_auth_info_st), 1);
+ sizeof(cert_auth_info_st), 1);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -563,7 +554,7 @@ unpack_certificate_auth_info(gnutls_session_t session,
return 0;
- error:
+ error:
if (info) {
_gnutls_free_datum(&info->dh.prime);
_gnutls_free_datum(&info->dh.generator);
@@ -592,10 +583,10 @@ unpack_certificate_auth_info(gnutls_session_t session,
* 4 bytes the size of the SRP username (x)
* x bytes the SRP username
*/
-static int
-pack_srp_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
+static int pack_srp_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
{
- srp_server_auth_info_t info = _gnutls_get_auth_info(session, GNUTLS_CRD_SRP);
+ srp_server_auth_info_t info =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_SRP);
int len, ret;
int size_offset;
size_t cur_size;
@@ -604,7 +595,7 @@ pack_srp_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
if (info) {
if (info->username) {
username = info->username;
- len = strlen(info->username) + 1; /* include the terminating null */
+ len = strlen(info->username) + 1; /* include the terminating null */
} else {
username = "\0";
len = 1;
@@ -619,15 +610,12 @@ pack_srp_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
BUFFER_APPEND_PFX4(ps, username, len);
/* write the real size */
- _gnutls_write_uint32(ps->length - cur_size,
- ps->data + size_offset);
+ _gnutls_write_uint32(ps->length - cur_size, ps->data + size_offset);
return 0;
}
-
-static int
-unpack_srp_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
+static int unpack_srp_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
{
size_t username_size;
int ret;
@@ -658,12 +646,11 @@ unpack_srp_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
ret = 0;
- error:
+ error:
return ret;
}
#endif
-
#ifdef ENABLE_ANON
/* Packs the ANON session authentication data.
*/
@@ -679,8 +666,7 @@ unpack_srp_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
* 4 bytes the size of the public key
* x bytes the public key
*/
-static int
-pack_anon_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
+static int pack_anon_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
{
int cur_size, ret;
anon_auth_info_t info = _gnutls_get_auth_info(session, GNUTLS_CRD_ANON);
@@ -701,13 +687,11 @@ pack_anon_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
}
/* write the real size */
- _gnutls_write_uint32(ps->length - cur_size,
- ps->data + size_offset);
+ _gnutls_write_uint32(ps->length - cur_size, ps->data + size_offset);
return 0;
}
-
static int
unpack_anon_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
{
@@ -724,7 +708,7 @@ unpack_anon_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
*/
ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_ANON,
- sizeof(anon_auth_info_st), 1);
+ sizeof(anon_auth_info_st), 1);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -742,7 +726,7 @@ unpack_anon_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
return 0;
- error:
+ error:
if (info) {
_gnutls_free_datum(&info->dh.prime);
_gnutls_free_datum(&info->dh.generator);
@@ -771,8 +755,7 @@ unpack_anon_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
* 4 bytes the size of the public key
* x bytes the public key
*/
-static int
-pack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
+static int pack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
{
psk_auth_info_t info;
int username_len;
@@ -785,7 +768,7 @@ pack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
username_len = info->username_len;
- hint_len = info->hint_len + 1; /* include the terminating null */
+ hint_len = info->hint_len + 1; /* include the terminating null */
size_offset = ps->length;
BUFFER_APPEND_NUM(ps, 0);
@@ -802,13 +785,11 @@ pack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
info->dh.public_key.size);
/* write the real size */
- _gnutls_write_uint32(ps->length - cur_size,
- ps->data + size_offset);
+ _gnutls_write_uint32(ps->length - cur_size, ps->data + size_offset);
return 0;
}
-static int
-unpack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
+static int unpack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
{
size_t username_size, hint_size;
int ret;
@@ -817,7 +798,7 @@ unpack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_PSK,
- sizeof(psk_auth_info_st), 1);
+ sizeof(psk_auth_info_st), 1);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -863,7 +844,7 @@ unpack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
ret = 0;
- error:
+ error:
_gnutls_free_datum(&info->dh.prime);
_gnutls_free_datum(&info->dh.generator);
_gnutls_free_datum(&info->dh.public_key);
@@ -872,7 +853,6 @@ unpack_psk_auth_info(gnutls_session_t session, gnutls_buffer_st * ps)
}
#endif
-
/* Packs the security parameters.
*/
static int
@@ -905,13 +885,10 @@ pack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
BUFFER_APPEND_NUM(ps, session->security_parameters.entity);
BUFFER_APPEND_NUM(ps, session->security_parameters.prf->id);
- BUFFER_APPEND_NUM(ps,
- session->security_parameters.client_auth_type);
- BUFFER_APPEND_NUM(ps,
- session->security_parameters.server_auth_type);
+ BUFFER_APPEND_NUM(ps, session->security_parameters.client_auth_type);
+ BUFFER_APPEND_NUM(ps, session->security_parameters.server_auth_type);
- BUFFER_APPEND(ps, &session->security_parameters.session_id_size,
- 1);
+ BUFFER_APPEND(ps, &session->security_parameters.session_id_size, 1);
BUFFER_APPEND(ps, session->security_parameters.session_id,
session->security_parameters.session_id_size);
@@ -925,16 +902,20 @@ pack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
/* if we are under TLS 1.3 do not pack keys or params negotiated using an extension
* they are not necessary */
if (!session->security_parameters.pversion->tls13_sem) {
- BUFFER_APPEND_PFX1(ps, session->security_parameters.master_secret,
- GNUTLS_MASTER_SIZE);
- BUFFER_APPEND_PFX1(ps, session->security_parameters.client_random,
- GNUTLS_RANDOM_SIZE);
- BUFFER_APPEND_PFX1(ps, session->security_parameters.server_random,
- GNUTLS_RANDOM_SIZE);
+ BUFFER_APPEND_PFX1(ps,
+ session->security_parameters.master_secret,
+ GNUTLS_MASTER_SIZE);
+ BUFFER_APPEND_PFX1(ps,
+ session->security_parameters.client_random,
+ GNUTLS_RANDOM_SIZE);
+ BUFFER_APPEND_PFX1(ps,
+ session->security_parameters.server_random,
+ GNUTLS_RANDOM_SIZE);
/* reset max_record_recv_size if it was negotiated
* using the record_size_limit extension */
- if (session->internals.hsk_flags & HSK_RECORD_SIZE_LIMIT_NEGOTIATED) {
+ if (session->
+ internals.hsk_flags & HSK_RECORD_SIZE_LIMIT_NEGOTIATED) {
BUFFER_APPEND_NUM(ps,
session->security_parameters.
max_user_record_send_size);
@@ -951,24 +932,25 @@ pack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
}
if (session->security_parameters.grp) {
- BUFFER_APPEND_NUM(ps, session->security_parameters.grp->id);
+ BUFFER_APPEND_NUM(ps,
+ session->security_parameters.grp->id);
} else {
BUFFER_APPEND_NUM(ps, 0);
}
BUFFER_APPEND_NUM(ps,
- session->security_parameters.server_sign_algo);
- BUFFER_APPEND_NUM(ps,
- session->security_parameters.client_sign_algo);
+ session->
+ security_parameters.server_sign_algo);
BUFFER_APPEND_NUM(ps,
- session->security_parameters.ext_master_secret);
+ session->
+ security_parameters.client_sign_algo);
BUFFER_APPEND_NUM(ps,
- session->security_parameters.etm);
+ session->
+ security_parameters.ext_master_secret);
+ BUFFER_APPEND_NUM(ps, session->security_parameters.etm);
}
-
- _gnutls_write_uint32(ps->length - cur_size,
- ps->data + size_offset);
+ _gnutls_write_uint32(ps->length - cur_size, ps->data + size_offset);
return 0;
}
@@ -988,19 +970,17 @@ unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
if (pack_size == 0)
return GNUTLS_E_INVALID_REQUEST;
- timestamp =
- session->internals.resumed_security_parameters.timestamp;
+ timestamp = session->internals.resumed_security_parameters.timestamp;
memset(&session->internals.resumed_security_parameters, 0,
sizeof(session->internals.resumed_security_parameters));
- session->internals.resumed_security_parameters.timestamp =
- timestamp;
+ session->internals.resumed_security_parameters.timestamp = timestamp;
BUFFER_POP_NUM(ps,
- session->internals.resumed_security_parameters.
- entity);
+ session->internals.resumed_security_parameters.entity);
BUFFER_POP_NUM(ps, version);
- session->internals.resumed_security_parameters.prf = mac_to_entry(version);
+ session->internals.resumed_security_parameters.prf =
+ mac_to_entry(version);
if (session->internals.resumed_security_parameters.prf == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -1016,16 +996,14 @@ unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
session_id_size, 1);
BUFFER_POP(ps,
- session->internals.resumed_security_parameters.
- session_id,
+ session->internals.resumed_security_parameters.session_id,
session->internals.resumed_security_parameters.
session_id_size);
BUFFER_POP_NUM(ps, version);
session->internals.resumed_security_parameters.pversion =
version_to_entry(version);
- if (session->internals.resumed_security_parameters.pversion ==
- NULL)
+ if (session->internals.resumed_security_parameters.pversion == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
BUFFER_POP_NUM(ps,
@@ -1036,7 +1014,8 @@ unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
server_ctype);
BUFFER_POP(ps, cs, 2);
- session->internals.resumed_security_parameters.cs = ciphersuite_to_entry(cs);
+ session->internals.resumed_security_parameters.cs =
+ ciphersuite_to_entry(cs);
if (session->internals.resumed_security_parameters.cs == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -1049,7 +1028,9 @@ unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
goto error;
}
if (t.size == GNUTLS_MASTER_SIZE)
- memcpy(session->internals.resumed_security_parameters.master_secret, t.data, t.size);
+ memcpy(session->internals.
+ resumed_security_parameters.master_secret,
+ t.data, t.size);
/* client random */
ret = _gnutls_buffer_pop_datum_prefix8(ps, &t);
@@ -1059,7 +1040,9 @@ unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
goto error;
}
if (t.size == GNUTLS_RANDOM_SIZE)
- memcpy(session->internals.resumed_security_parameters.client_random, t.data, t.size);
+ memcpy(session->internals.
+ resumed_security_parameters.client_random,
+ t.data, t.size);
/* server random */
ret = _gnutls_buffer_pop_datum_prefix8(ps, &t);
@@ -1069,8 +1052,9 @@ unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
goto error;
}
if (t.size == GNUTLS_RANDOM_SIZE)
- memcpy(session->internals.resumed_security_parameters.server_random, t.data, t.size);
-
+ memcpy(session->internals.
+ resumed_security_parameters.server_random,
+ t.data, t.size);
BUFFER_POP_NUM(ps,
session->internals.resumed_security_parameters.
@@ -1080,7 +1064,8 @@ unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
max_record_recv_size);
BUFFER_POP_NUM(ps, ret);
- session->internals.resumed_security_parameters.grp = _gnutls_id_to_group(ret);
+ session->internals.resumed_security_parameters.grp =
+ _gnutls_id_to_group(ret);
/* it can be null */
BUFFER_POP_NUM(ps,
@@ -1106,7 +1091,7 @@ unpack_security_parameters(gnutls_session_t session, gnutls_buffer_st * ps)
ret = 0;
- error:
+ error:
return ret;
}
@@ -1148,37 +1133,40 @@ gnutls_session_set_premaster(gnutls_session_t session, unsigned int entity,
session->internals.resumed_security_parameters.entity = entity;
- ret =
- _gnutls_cipher_suite_get_id(kx, cipher, mac, cs);
+ ret = _gnutls_cipher_suite_get_id(kx, cipher, mac, cs);
if (ret < 0)
return gnutls_assert_val(ret);
- session->internals.resumed_security_parameters.cs = ciphersuite_to_entry(cs);
+ session->internals.resumed_security_parameters.cs =
+ ciphersuite_to_entry(cs);
if (session->internals.resumed_security_parameters.cs == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
session->internals.resumed_security_parameters.client_ctype =
- DEFAULT_CERT_TYPE;
+ DEFAULT_CERT_TYPE;
session->internals.resumed_security_parameters.server_ctype =
- DEFAULT_CERT_TYPE;
+ DEFAULT_CERT_TYPE;
session->internals.resumed_security_parameters.pversion =
version_to_entry(version);
- if (session->internals.resumed_security_parameters.pversion ==
- NULL)
+ if (session->internals.resumed_security_parameters.pversion == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- if (session->internals.resumed_security_parameters.pversion->selectable_prf)
- session->internals.resumed_security_parameters.prf = mac_to_entry(session->internals.resumed_security_parameters.cs->prf);
+ if (session->internals.resumed_security_parameters.
+ pversion->selectable_prf)
+ session->internals.resumed_security_parameters.prf =
+ mac_to_entry(session->internals.
+ resumed_security_parameters.cs->prf);
else
- session->internals.resumed_security_parameters.prf = mac_to_entry(GNUTLS_MAC_MD5_SHA1);
+ session->internals.resumed_security_parameters.prf =
+ mac_to_entry(GNUTLS_MAC_MD5_SHA1);
if (session->internals.resumed_security_parameters.prf == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if (master->size != GNUTLS_MASTER_SIZE)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- memcpy(session->internals.resumed_security_parameters.
- master_secret, master->data, master->size);
+ memcpy(session->internals.resumed_security_parameters.master_secret,
+ master->data, master->size);
if (session_id->size > GNUTLS_MAX_SESSION_ID)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -1188,8 +1176,7 @@ gnutls_session_set_premaster(gnutls_session_t session, unsigned int entity,
memcpy(session->internals.resumed_security_parameters.session_id,
session_id->data, session_id->size);
- session->internals.resumed_security_parameters.
- max_record_send_size =
+ session->internals.resumed_security_parameters.max_record_send_size =
session->internals.resumed_security_parameters.
max_record_recv_size = DEFAULT_MAX_RECORD_SIZE;
diff --git a/lib/session_pack.h b/lib/session_pack.h
index 20b3fbcd5e..8a8de00688 100644
--- a/lib/session_pack.h
+++ b/lib/session_pack.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_LIB_SESSION_PACK_H
-#define GNUTLS_LIB_SESSION_PACK_H
+# define GNUTLS_LIB_SESSION_PACK_H
int _gnutls_session_pack(gnutls_session_t session,
gnutls_datum_t * packed_session);
int _gnutls_session_unpack(gnutls_session_t session,
const gnutls_datum_t * packed_session);
-#endif /* GNUTLS_LIB_SESSION_PACK_H */
+#endif /* GNUTLS_LIB_SESSION_PACK_H */
diff --git a/lib/srp.c b/lib/srp.c
index 17dc4edcf6..ae2024cd06 100644
--- a/lib/srp.c
+++ b/lib/srp.c
@@ -28,16 +28,16 @@
#ifdef ENABLE_SRP
-#include "srp.h"
-#include <auth/srp_passwd.h>
-#include <mpi.h>
-#include <num.h>
-#include <file.h>
-#include <algorithms.h>
-#include <random.h>
+# include "srp.h"
+# include <auth/srp_passwd.h>
+# include <mpi.h>
+# include <num.h>
+# include <file.h>
+# include <algorithms.h>
+# include <random.h>
-#include "debug.h"
-#include "attribute.h"
+# include "debug.h"
+# include "attribute.h"
/* Here functions for SRP (like g^x mod n) are defined
*/
@@ -82,7 +82,7 @@ _gnutls_srp_gx(uint8_t * text, size_t textsize, uint8_t ** result,
ret = GNUTLS_E_MPI_PRINT_FAILED;
}
-cleanup:
+ cleanup:
_gnutls_mpi_release(&e);
_gnutls_mpi_release(&x);
@@ -90,7 +90,6 @@ cleanup:
}
-
/****************
* Choose a random value b and calculate B = (k* v + g^b) % N.
* where k == SHA1(N|g)
@@ -146,7 +145,7 @@ _gnutls_calc_srp_B(bigint_t * ret_b, bigint_t g, bigint_t n, bigint_t v)
return B;
- error:
+ error:
_gnutls_mpi_release(&b);
_gnutls_mpi_release(&B);
_gnutls_mpi_release(&k);
@@ -212,8 +211,7 @@ bigint_t _gnutls_calc_srp_u(bigint_t A, bigint_t B, bigint_t n)
* this is our shared key (server premaster secret)
*/
bigint_t
-_gnutls_calc_srp_S1(bigint_t A, bigint_t b, bigint_t u, bigint_t v,
- bigint_t n)
+_gnutls_calc_srp_S1(bigint_t A, bigint_t b, bigint_t u, bigint_t v, bigint_t n)
{
bigint_t tmp1 = NULL, tmp2 = NULL;
bigint_t S = NULL;
@@ -242,7 +240,7 @@ _gnutls_calc_srp_S1(bigint_t A, bigint_t b, bigint_t u, bigint_t v,
return S;
-error:
+ error:
_gnutls_mpi_release(&S);
_gnutls_mpi_release(&tmp1);
_gnutls_mpi_release(&tmp2);
@@ -276,7 +274,7 @@ bigint_t _gnutls_calc_srp_A(bigint_t * a, bigint_t g, bigint_t n)
_gnutls_mpi_release(&tmpa);
return A;
-error:
+ error:
_gnutls_mpi_release(&tmpa);
_gnutls_mpi_release(&A);
return NULL;
@@ -287,7 +285,7 @@ error:
*/
static int
_gnutls_calc_srp_sha(const char *username, const char *_password,
- uint8_t * salt, int salt_size, size_t * size,
+ uint8_t * salt, int salt_size, size_t *size,
void *digest, unsigned allow_invalid_pass)
{
digest_hd_st td;
@@ -299,10 +297,12 @@ _gnutls_calc_srp_sha(const char *username, const char *_password,
*size = 20;
- ret = _gnutls_utf8_password_normalize(_password, strlen(_password), &pout, allow_invalid_pass);
+ ret =
+ _gnutls_utf8_password_normalize(_password, strlen(_password), &pout,
+ allow_invalid_pass);
if (ret < 0)
return gnutls_assert_val(ret);
- password = (char*)pout.data;
+ password = (char *)pout.data;
ret = _gnutls_hash_init(&td, me);
if (ret < 0) {
@@ -334,14 +334,13 @@ _gnutls_calc_srp_sha(const char *username, const char *_password,
int
_gnutls_calc_srp_x(char *username, char *password, uint8_t * salt,
- size_t salt_size, size_t * size, void *digest)
+ size_t salt_size, size_t *size, void *digest)
{
return _gnutls_calc_srp_sha(username, password, salt,
salt_size, size, digest, 1);
}
-
/* S = (B - k*g^x) ^ (a + u * x) % N
* this is our shared key (client premaster secret)
*/
@@ -407,7 +406,7 @@ _gnutls_calc_srp_S2(bigint_t B, bigint_t g, bigint_t x, bigint_t a,
return S;
- freeall:
+ freeall:
_gnutls_mpi_release(&k);
_gnutls_mpi_release(&tmp1);
_gnutls_mpi_release(&tmp2);
@@ -439,9 +438,7 @@ void gnutls_srp_free_client_credentials(gnutls_srp_client_credentials_t sc)
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, or an
* error code.
**/
-int
-gnutls_srp_allocate_client_credentials(gnutls_srp_client_credentials_t *
- sc)
+int gnutls_srp_allocate_client_credentials(gnutls_srp_client_credentials_t * sc)
{
*sc = gnutls_calloc(1, sizeof(srp_client_credentials_st));
@@ -469,8 +466,7 @@ gnutls_srp_allocate_client_credentials(gnutls_srp_client_credentials_t *
**/
int
gnutls_srp_set_client_credentials(gnutls_srp_client_credentials_t res,
- const char *username,
- const char *password)
+ const char *username, const char *password)
{
if (username == NULL || password == NULL) {
@@ -509,13 +505,13 @@ void gnutls_srp_free_server_credentials(gnutls_srp_server_credentials_t sc)
* gnutls_srp_set_server_fake_salt_seed() is not called to set
* a seed.
*/
-#define DEFAULT_FAKE_SALT_SEED_SIZE 20
+# define DEFAULT_FAKE_SALT_SEED_SIZE 20
/* Size of the fake salts generated if
* gnutls_srp_set_server_fake_salt_seed() is not called to set
* another size.
*/
-#define DEFAULT_FAKE_SALT_SIZE 16
+# define DEFAULT_FAKE_SALT_SIZE 16
/**
* gnutls_srp_allocate_server_credentials:
@@ -526,9 +522,7 @@ void gnutls_srp_free_server_credentials(gnutls_srp_server_credentials_t sc)
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, or an
* error code.
**/
-int
-gnutls_srp_allocate_server_credentials(gnutls_srp_server_credentials_t *
- sc)
+int gnutls_srp_allocate_server_credentials(gnutls_srp_server_credentials_t * sc)
{
int ret;
*sc = gnutls_calloc(1, sizeof(srp_server_cred_st));
@@ -548,7 +542,7 @@ gnutls_srp_allocate_server_credentials(gnutls_srp_server_credentials_t *
(*sc)->fake_salt_length = DEFAULT_FAKE_SALT_SIZE;
return 0;
-cleanup:
+ cleanup:
gnutls_free(*sc);
return ret;
}
@@ -605,7 +599,6 @@ gnutls_srp_set_server_credentials_file(gnutls_srp_server_credentials_t res,
return 0;
}
-
/**
* gnutls_srp_set_server_credentials_function:
* @cred: is a #gnutls_srp_server_credentials_t type.
@@ -644,7 +637,7 @@ void
gnutls_srp_set_server_credentials_function(gnutls_srp_server_credentials_t
cred,
gnutls_srp_server_credentials_function
- *func)
+ * func)
{
cred->pwd_callback = func;
}
@@ -686,7 +679,6 @@ gnutls_srp_set_client_credentials_function(gnutls_srp_client_credentials_t
cred->get_function = func;
}
-
/**
* gnutls_srp_server_get_username:
* @session: is a gnutls session
@@ -843,26 +835,30 @@ gnutls_srp_set_server_fake_salt_seed(gnutls_srp_server_credentials_t cred,
/* Cap the salt length at the output size of the MAC algorithm
* we are using to generate the fake salts.
*/
- const mac_entry_st * me = mac_to_entry(SRP_FAKE_SALT_MAC);
+ const mac_entry_st *me = mac_to_entry(SRP_FAKE_SALT_MAC);
const size_t mac_len = me->output_size;
- cred->fake_salt_length = (salt_length < mac_len ? salt_length : mac_len);
+ cred->fake_salt_length =
+ (salt_length < mac_len ? salt_length : mac_len);
}
#else
-void gnutls_srp_free_client_credentials(gnutls_srp_client_credentials_t sc MAYBE_UNUSED)
+void gnutls_srp_free_client_credentials(gnutls_srp_client_credentials_t sc
+ MAYBE_UNUSED)
{
}
int
-gnutls_srp_allocate_client_credentials(gnutls_srp_client_credentials_t *sc MAYBE_UNUSED)
+gnutls_srp_allocate_client_credentials(gnutls_srp_client_credentials_t *
+ sc MAYBE_UNUSED)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int
-gnutls_srp_set_client_credentials(gnutls_srp_client_credentials_t res MAYBE_UNUSED,
+gnutls_srp_set_client_credentials(gnutls_srp_client_credentials_t res
+ MAYBE_UNUSED,
const char *username MAYBE_UNUSED,
const char *password MAYBE_UNUSED)
{
@@ -870,38 +866,46 @@ gnutls_srp_set_client_credentials(gnutls_srp_client_credentials_t res MAYBE_UNUS
}
void
-gnutls_srp_free_server_credentials(gnutls_srp_server_credentials_t sc MAYBE_UNUSED)
+gnutls_srp_free_server_credentials(gnutls_srp_server_credentials_t sc
+ MAYBE_UNUSED)
{
}
int
-gnutls_srp_allocate_server_credentials(gnutls_srp_server_credentials_t *sc MAYBE_UNUSED)
+gnutls_srp_allocate_server_credentials(gnutls_srp_server_credentials_t *
+ sc MAYBE_UNUSED)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
int
-gnutls_srp_set_server_credentials_file(gnutls_srp_server_credentials_t res MAYBE_UNUSED,
+gnutls_srp_set_server_credentials_file(gnutls_srp_server_credentials_t res
+ MAYBE_UNUSED,
const char *password_file MAYBE_UNUSED,
- const char *password_conf_file MAYBE_UNUSED)
+ const char *password_conf_file
+ MAYBE_UNUSED)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
void
-gnutls_srp_set_server_credentials_function(gnutls_srp_server_credentials_t cred MAYBE_UNUSED,
- gnutls_srp_server_credentials_function *func MAYBE_UNUSED)
+gnutls_srp_set_server_credentials_function(gnutls_srp_server_credentials_t cred
+ MAYBE_UNUSED,
+ gnutls_srp_server_credentials_function
+ * func MAYBE_UNUSED)
{
}
void
-gnutls_srp_set_client_credentials_function(gnutls_srp_client_credentials_t cred MAYBE_UNUSED,
- gnutls_srp_client_credentials_function *func MAYBE_UNUSED)
+gnutls_srp_set_client_credentials_function(gnutls_srp_client_credentials_t cred
+ MAYBE_UNUSED,
+ gnutls_srp_client_credentials_function
+ * func MAYBE_UNUSED)
{
}
-const char *
-gnutls_srp_server_get_username(gnutls_session_t session MAYBE_UNUSED)
+const char *gnutls_srp_server_get_username(gnutls_session_t session
+ MAYBE_UNUSED)
{
return NULL;
}
@@ -909,10 +913,10 @@ gnutls_srp_server_get_username(gnutls_session_t session MAYBE_UNUSED)
int
gnutls_srp_verifier(const char *username MAYBE_UNUSED,
const char *password MAYBE_UNUSED,
- const gnutls_datum_t *salt MAYBE_UNUSED,
- const gnutls_datum_t *generator MAYBE_UNUSED,
- const gnutls_datum_t *prime MAYBE_UNUSED,
- gnutls_datum_t *res MAYBE_UNUSED)
+ const gnutls_datum_t * salt MAYBE_UNUSED,
+ const gnutls_datum_t * generator MAYBE_UNUSED,
+ const gnutls_datum_t * prime MAYBE_UNUSED,
+ gnutls_datum_t * res MAYBE_UNUSED)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -924,8 +928,9 @@ gnutls_srp_set_prime_bits(gnutls_session_t session MAYBE_UNUSED,
}
void
-gnutls_srp_set_server_fake_salt_seed(gnutls_srp_server_credentials_t cred MAYBE_UNUSED,
- const gnutls_datum_t *seed MAYBE_UNUSED,
+gnutls_srp_set_server_fake_salt_seed(gnutls_srp_server_credentials_t cred
+ MAYBE_UNUSED,
+ const gnutls_datum_t * seed MAYBE_UNUSED,
unsigned int salt_length MAYBE_UNUSED)
{
}
diff --git a/lib/srp.h b/lib/srp.h
index ab5a184ac7..5a03e7bb0e 100644
--- a/lib/srp.h
+++ b/lib/srp.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_LIB_SRP_H
-#define GNUTLS_LIB_SRP_H
+# define GNUTLS_LIB_SRP_H
-#include <config.h>
+# include <config.h>
-#ifdef ENABLE_SRP
+# ifdef ENABLE_SRP
bigint_t _gnutls_calc_srp_B(bigint_t * ret_b, bigint_t g, bigint_t n,
bigint_t v);
@@ -36,12 +36,12 @@ bigint_t _gnutls_calc_srp_A(bigint_t * a, bigint_t g, bigint_t n);
bigint_t _gnutls_calc_srp_S2(bigint_t B, bigint_t g, bigint_t x,
bigint_t a, bigint_t u, bigint_t n);
int _gnutls_calc_srp_x(char *username, char *password, uint8_t * salt,
- size_t salt_size, size_t * size, void *digest);
+ size_t salt_size, size_t *size, void *digest);
int _gnutls_srp_gn(uint8_t ** ret_g, uint8_t ** ret_n, int bits);
/* g is defined to be 2 */
-#define SRP_MAX_HASH_SIZE 24
+# define SRP_MAX_HASH_SIZE 24
-#endif
+# endif
-#endif /* GNUTLS_LIB_SRP_H */
+#endif /* GNUTLS_LIB_SRP_H */
diff --git a/lib/sslv2_compat.c b/lib/sslv2_compat.c
index c4a0143b92..f80431e235 100644
--- a/lib/sslv2_compat.c
+++ b/lib/sslv2_compat.c
@@ -81,7 +81,6 @@ _gnutls_handshake_select_v2_suite(gnutls_session_t session,
}
-
/* Read a v2 client hello. Some browsers still use that beast!
* However they set their version to 3.0 or 3.1.
*/
@@ -176,8 +175,7 @@ _gnutls_read_client_hello_v2(gnutls_session_t session, uint8_t * data,
/* check if the credentials (username, public key etc.) are ok
*/
if (_gnutls_get_kx_cred
- (session,
- session->security_parameters.cs->kx_algorithm) == NULL) {
+ (session, session->security_parameters.cs->kx_algorithm) == NULL) {
gnutls_assert();
return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
}
@@ -188,7 +186,7 @@ _gnutls_read_client_hello_v2(gnutls_session_t session, uint8_t * data,
*/
session->internals.auth_struct =
_gnutls_kx_auth_struct(session->security_parameters.
- cs->kx_algorithm);
+ cs->kx_algorithm);
if (session->internals.auth_struct == NULL) {
_gnutls_handshake_log
@@ -207,8 +205,7 @@ _gnutls_read_client_hello_v2(gnutls_session_t session, uint8_t * data,
DECR_LEN(len, challenge);
memset(rnd, 0, GNUTLS_RANDOM_SIZE);
- memcpy(&rnd[GNUTLS_RANDOM_SIZE - challenge], &data[pos],
- challenge);
+ memcpy(&rnd[GNUTLS_RANDOM_SIZE - challenge], &data[pos], challenge);
_gnutls_set_client_random(session, rnd);
@@ -219,13 +216,11 @@ _gnutls_read_client_hello_v2(gnutls_session_t session, uint8_t * data,
session->security_parameters.timestamp = gnutls_time(NULL);
-
/* RESUME SESSION */
DECR_LEN(len, session_id_len);
ret =
- _gnutls_server_restore_session(session, session_id,
- session_id_len);
+ _gnutls_server_restore_session(session, session_id, session_id_len);
if (ret == 0) { /* resumed! */
/* get the new random values */
@@ -241,9 +236,11 @@ _gnutls_read_client_hello_v2(gnutls_session_t session, uint8_t * data,
session->internals.resumed = true;
return 0;
} else {
- ret = _gnutls_generate_session_id(
- session->security_parameters.session_id,
- &session->security_parameters.session_id_size);
+ ret =
+ _gnutls_generate_session_id(session->
+ security_parameters.session_id,
+ &session->
+ security_parameters.session_id_size);
if (ret < 0)
return gnutls_assert_val(ret);
diff --git a/lib/sslv2_compat.h b/lib/sslv2_compat.h
index 61b62cd650..15405febe4 100644
--- a/lib/sslv2_compat.h
+++ b/lib/sslv2_compat.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_LIB_SSLV2_COMPAT_H
-#define GNUTLS_LIB_SSLV2_COMPAT_H
+# define GNUTLS_LIB_SSLV2_COMPAT_H
int _gnutls_read_client_hello_v2(gnutls_session_t session, uint8_t * data,
unsigned int datalen);
-#endif /* GNUTLS_LIB_SSLV2_COMPAT_H */
+#endif /* GNUTLS_LIB_SSLV2_COMPAT_H */
diff --git a/lib/state.c b/lib/state.c
index 71e94450d9..631299846b 100644
--- a/lib/state.c
+++ b/lib/state.c
@@ -80,8 +80,7 @@ gnutls_cipher_algorithm_t gnutls_cipher_get(gnutls_session_t session)
record_parameters_st *record_params;
int ret;
- ret =
- _gnutls_epoch_get(session, EPOCH_READ_CURRENT, &record_params);
+ ret = _gnutls_epoch_get(session, EPOCH_READ_CURRENT, &record_params);
if (ret < 0)
return gnutls_assert_val(GNUTLS_CIPHER_NULL);
@@ -107,13 +106,11 @@ gnutls_cipher_algorithm_t gnutls_early_cipher_get(gnutls_session_t session)
return gnutls_assert_val(GNUTLS_CIPHER_UNKNOWN);
}
- if (unlikely(session->internals.
- resumed_security_parameters.cs == NULL)) {
+ if (unlikely(session->internals.resumed_security_parameters.cs == NULL)) {
return gnutls_assert_val(GNUTLS_CIPHER_UNKNOWN);
}
- ce = cipher_to_entry(session->internals.
- resumed_security_parameters.
+ ce = cipher_to_entry(session->internals.resumed_security_parameters.
cs->block_algorithm);
if (unlikely(ce == NULL)) {
return gnutls_assert_val(GNUTLS_CIPHER_UNKNOWN);
@@ -140,8 +137,7 @@ gnutls_cipher_algorithm_t gnutls_early_cipher_get(gnutls_session_t session)
* Returns: the currently used #gnutls_certificate_type_t certificate
* type as negotiated for 'our' side of the connection.
**/
-gnutls_certificate_type_t
-gnutls_certificate_type_get(gnutls_session_t session)
+gnutls_certificate_type_t gnutls_certificate_type_get(gnutls_session_t session)
{
return gnutls_certificate_type_get2(session, GNUTLS_CTYPE_OURS);
}
@@ -201,7 +197,7 @@ gnutls_kx_algorithm_t gnutls_kx_get(gnutls_session_t session)
if (session->security_parameters.cs == 0)
return 0;
- if (session->security_parameters.cs->kx_algorithm == 0) { /* TLS 1.3 */
+ if (session->security_parameters.cs->kx_algorithm == 0) { /* TLS 1.3 */
const version_entry_st *ver = get_version(session);
const gnutls_group_entry_st *group = get_group(session);
@@ -241,8 +237,7 @@ gnutls_mac_algorithm_t gnutls_mac_get(gnutls_session_t session)
record_parameters_st *record_params;
int ret;
- ret =
- _gnutls_epoch_get(session, EPOCH_READ_CURRENT, &record_params);
+ ret = _gnutls_epoch_get(session, EPOCH_READ_CURRENT, &record_params);
if (ret < 0)
return gnutls_assert_val(GNUTLS_MAC_NULL);
@@ -258,8 +253,7 @@ gnutls_mac_algorithm_t gnutls_mac_get(gnutls_session_t session)
* Returns: the currently used compression method, a
* #gnutls_compression_method_t value.
**/
-gnutls_compression_method_t
-gnutls_compression_get(gnutls_session_t session)
+gnutls_compression_method_t gnutls_compression_get(gnutls_session_t session)
{
return GNUTLS_COMP_NULL;
}
@@ -278,8 +272,7 @@ gnutls_compression_get(gnutls_session_t session)
*
* Since: 3.6.13
**/
-gnutls_digest_algorithm_t
-gnutls_prf_hash_get(const gnutls_session_t session)
+gnutls_digest_algorithm_t gnutls_prf_hash_get(const gnutls_session_t session)
{
if (session->security_parameters.prf == NULL)
return gnutls_assert_val(GNUTLS_DIG_UNKNOWN);
@@ -287,7 +280,7 @@ gnutls_prf_hash_get(const gnutls_session_t session)
if (session->security_parameters.prf->id >= GNUTLS_MAC_AEAD)
return gnutls_assert_val(GNUTLS_DIG_UNKNOWN);
- return (gnutls_digest_algorithm_t)session->security_parameters.prf->id;
+ return (gnutls_digest_algorithm_t) session->security_parameters.prf->id;
}
/**
@@ -309,18 +302,19 @@ gnutls_early_prf_hash_get(const gnutls_session_t session)
return gnutls_assert_val(GNUTLS_DIG_UNKNOWN);
}
- if (unlikely(session->internals.
- resumed_security_parameters.prf == NULL)) {
+ if (unlikely
+ (session->internals.resumed_security_parameters.prf == NULL)) {
return gnutls_assert_val(GNUTLS_DIG_UNKNOWN);
}
- if (unlikely(session->internals.
- resumed_security_parameters.prf->id >= GNUTLS_MAC_AEAD)) {
+ if (unlikely
+ (session->internals.resumed_security_parameters.prf->id >=
+ GNUTLS_MAC_AEAD)) {
return gnutls_assert_val(GNUTLS_DIG_UNKNOWN);
}
- return (gnutls_digest_algorithm_t)session->internals.
- resumed_security_parameters.prf->id;
+ return (gnutls_digest_algorithm_t) session->internals.
+ resumed_security_parameters.prf->id;
}
/**
@@ -343,8 +337,7 @@ gnutls_early_prf_hash_get(const gnutls_session_t session)
*
* Since: 3.7.4
**/
-const char *
-gnutls_ciphersuite_get(gnutls_session_t session)
+const char *gnutls_ciphersuite_get(gnutls_session_t session)
{
if (unlikely(session->internals.handshake_in_progress)) {
return NULL;
@@ -363,7 +356,7 @@ void reset_binders(gnutls_session_t session)
* for the current session.
*/
static bool _gnutls_has_cert_credentials(gnutls_session_t session,
- gnutls_certificate_type_t cert_type)
+ gnutls_certificate_type_t cert_type)
{
unsigned i;
unsigned cert_found = 0;
@@ -373,7 +366,7 @@ static bool _gnutls_has_cert_credentials(gnutls_session_t session,
* credentials set then we don't support certificates at all.
*/
cred = (gnutls_certificate_credentials_t)
- _gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE);
+ _gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE);
if (cred == NULL)
return false;
@@ -396,7 +389,7 @@ static bool _gnutls_has_cert_credentials(gnutls_session_t session,
}
}
- return true; // OK
+ return true; // OK
}
/* Check if the given certificate type is supported.
@@ -406,21 +399,23 @@ static bool _gnutls_has_cert_credentials(gnutls_session_t session,
*/
bool
_gnutls_session_is_cert_type_supported(gnutls_session_t session,
- gnutls_certificate_type_t cert_type,
- bool check_credentials,
- gnutls_ctype_target_t target)
+ gnutls_certificate_type_t cert_type,
+ bool check_credentials,
+ gnutls_ctype_target_t target)
{
unsigned i;
- priority_st* ctype_priorities;
+ priority_st *ctype_priorities;
// Check whether this cert type is enabled by the application
if (!is_cert_type_enabled(session, cert_type))
return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
// Perform a credentials check if requested
- if (check_credentials) {
+ if (check_credentials) {
if (!_gnutls_has_cert_credentials(session, cert_type))
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
}
/* So far so good. We have the required credentials (if needed).
@@ -429,16 +424,16 @@ _gnutls_session_is_cert_type_supported(gnutls_session_t session,
*/
// Which certificate type should we query?
switch (target) {
- case GNUTLS_CTYPE_CLIENT:
- ctype_priorities =
- &(session->internals.priorities->client_ctype);
- break;
- case GNUTLS_CTYPE_SERVER:
- ctype_priorities =
- &(session->internals.priorities->server_ctype);
- break;
- default:
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ case GNUTLS_CTYPE_CLIENT:
+ ctype_priorities =
+ &(session->internals.priorities->client_ctype);
+ break;
+ case GNUTLS_CTYPE_SERVER:
+ ctype_priorities =
+ &(session->internals.priorities->server_ctype);
+ break;
+ default:
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
// No explicit priorities set, and default ctype is asked
@@ -596,14 +591,16 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
ret = gnutls_mutex_init(&(*session)->internals.epoch_lock);
if (ret < 0) {
gnutls_assert();
- gnutls_mutex_deinit(&(*session)->internals.post_negotiation_lock);
+ gnutls_mutex_deinit(&(*session)->
+ internals.post_negotiation_lock);
gnutls_free(*session);
return ret;
}
ret = _gnutls_epoch_setup_next(*session, 1, NULL);
if (ret < 0) {
- gnutls_mutex_deinit(&(*session)->internals.post_negotiation_lock);
+ gnutls_mutex_deinit(&(*session)->
+ internals.post_negotiation_lock);
gnutls_mutex_deinit(&(*session)->internals.epoch_lock);
gnutls_free(*session);
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -645,10 +642,8 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
/* set the socket pointers to -1;
*/
- (*session)->internals.transport_recv_ptr =
- (gnutls_transport_ptr_t) - 1;
- (*session)->internals.transport_send_ptr =
- (gnutls_transport_ptr_t) - 1;
+ (*session)->internals.transport_recv_ptr = (gnutls_transport_ptr_t) - 1;
+ (*session)->internals.transport_send_ptr = (gnutls_transport_ptr_t) - 1;
/* set the default maximum record size for TLS
*/
@@ -665,10 +660,10 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
*/
if ((*session)->security_parameters.entity == GNUTLS_SERVER) {
(*session)->security_parameters.max_early_data_size =
- DEFAULT_MAX_EARLY_DATA_SIZE;
+ DEFAULT_MAX_EARLY_DATA_SIZE;
} else {
(*session)->security_parameters.max_early_data_size =
- UINT32_MAX;
+ UINT32_MAX;
}
/* Everything else not initialized here is initialized as NULL
@@ -677,11 +672,14 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
* runtime before being used. Mark such regions with a
* valgrind client request as undefined.
*/
- _gnutls_memory_mark_undefined((*session)->security_parameters.master_secret,
+ _gnutls_memory_mark_undefined((*session)->
+ security_parameters.master_secret,
GNUTLS_MASTER_SIZE);
- _gnutls_memory_mark_undefined((*session)->security_parameters.client_random,
+ _gnutls_memory_mark_undefined((*session)->
+ security_parameters.client_random,
GNUTLS_RANDOM_SIZE);
- _gnutls_memory_mark_undefined((*session)->security_parameters.server_random,
+ _gnutls_memory_mark_undefined((*session)->
+ security_parameters.server_random,
GNUTLS_RANDOM_SIZE);
_gnutls_memory_mark_undefined((*session)->key.session_ticket_key,
TICKET_MASTER_KEY_SIZE);
@@ -694,7 +692,8 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
#ifdef MSG_NOSIGNAL
if (flags & GNUTLS_NO_SIGNAL)
- gnutls_transport_set_vec_push_function(*session, system_writev_nosignal);
+ gnutls_transport_set_vec_push_function(*session,
+ system_writev_nosignal);
else
#endif
gnutls_transport_set_vec_push_function(*session, system_writev);
@@ -722,7 +721,8 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
if ((flags & GNUTLS_CLIENT) && !(flags & GNUTLS_NO_EXTENSIONS)) {
#ifdef ENABLE_OCSP
if (!(flags & GNUTLS_NO_STATUS_REQUEST))
- gnutls_ocsp_status_request_enable_client(*session, NULL, 0, NULL);
+ gnutls_ocsp_status_request_enable_client(*session, NULL,
+ 0, NULL);
#endif
}
@@ -741,7 +741,6 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
return 0;
}
-
/**
* gnutls_deinit:
* @session: is a #gnutls_session_t type.
@@ -813,21 +812,20 @@ void gnutls_deinit(gnutls_session_t session)
_gnutls_memory_mark_defined(session->key.session_ticket_key,
TICKET_MASTER_KEY_SIZE);
gnutls_memset(&session->key.session_ticket_key, 0,
- TICKET_MASTER_KEY_SIZE);
+ TICKET_MASTER_KEY_SIZE);
_gnutls_memory_mark_undefined(session->key.session_ticket_key,
TICKET_MASTER_KEY_SIZE);
_gnutls_memory_mark_defined(session->key.previous_ticket_key,
TICKET_MASTER_KEY_SIZE);
gnutls_memset(&session->key.previous_ticket_key, 0,
- TICKET_MASTER_KEY_SIZE);
+ TICKET_MASTER_KEY_SIZE);
_gnutls_memory_mark_undefined(session->key.previous_ticket_key,
TICKET_MASTER_KEY_SIZE);
_gnutls_memory_mark_defined(session->key.initial_stek,
TICKET_MASTER_KEY_SIZE);
- gnutls_memset(&session->key.initial_stek, 0,
- TICKET_MASTER_KEY_SIZE);
+ gnutls_memset(&session->key.initial_stek, 0, TICKET_MASTER_KEY_SIZE);
_gnutls_memory_mark_undefined(session->key.initial_stek,
TICKET_MASTER_KEY_SIZE);
@@ -848,7 +846,8 @@ int _gnutls_dh_set_peer_public(gnutls_session_t session, bigint_t public)
anon_auth_info_t info;
info = _gnutls_get_auth_info(session, GNUTLS_CRD_ANON);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
@@ -858,7 +857,8 @@ int _gnutls_dh_set_peer_public(gnutls_session_t session, bigint_t public)
psk_auth_info_t info;
info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
@@ -867,9 +867,12 @@ int _gnutls_dh_set_peer_public(gnutls_session_t session, bigint_t public)
{
cert_auth_info_t info;
- info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ info =
+ _gnutls_get_auth_info(session,
+ GNUTLS_CRD_CERTIFICATE);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
@@ -898,7 +901,8 @@ int _gnutls_dh_set_secret_bits(gnutls_session_t session, unsigned bits)
anon_auth_info_t info;
info = _gnutls_get_auth_info(session, GNUTLS_CRD_ANON);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
info->dh.secret_bits = bits;
break;
}
@@ -907,7 +911,8 @@ int _gnutls_dh_set_secret_bits(gnutls_session_t session, unsigned bits)
psk_auth_info_t info;
info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
info->dh.secret_bits = bits;
break;
}
@@ -915,9 +920,12 @@ int _gnutls_dh_set_secret_bits(gnutls_session_t session, unsigned bits)
{
cert_auth_info_t info;
- info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ info =
+ _gnutls_get_auth_info(session,
+ GNUTLS_CRD_CERTIFICATE);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
info->dh.secret_bits = bits;
break;
@@ -932,8 +940,7 @@ int _gnutls_dh_set_secret_bits(gnutls_session_t session, unsigned bits)
/* Sets the prime and the generator in the auth info structure.
*/
int
-_gnutls_dh_save_group(gnutls_session_t session, bigint_t gen,
- bigint_t prime)
+_gnutls_dh_save_group(gnutls_session_t session, bigint_t gen, bigint_t prime)
{
dh_info_st *dh;
int ret;
@@ -944,7 +951,8 @@ _gnutls_dh_save_group(gnutls_session_t session, bigint_t gen,
anon_auth_info_t info;
info = _gnutls_get_auth_info(session, GNUTLS_CRD_ANON);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
@@ -954,7 +962,8 @@ _gnutls_dh_save_group(gnutls_session_t session, bigint_t gen,
psk_auth_info_t info;
info = _gnutls_get_auth_info(session, GNUTLS_CRD_PSK);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
@@ -963,9 +972,12 @@ _gnutls_dh_save_group(gnutls_session_t session, bigint_t gen,
{
cert_auth_info_t info;
- info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ info =
+ _gnutls_get_auth_info(session,
+ GNUTLS_CRD_CERTIFICATE);
if (info == NULL)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
dh = &info->dh;
break;
@@ -1015,8 +1027,7 @@ _gnutls_dh_save_group(gnutls_session_t session, bigint_t gen,
* methods other than certificate with X.509 certificates.
**/
void
-gnutls_certificate_send_x509_rdn_sequence(gnutls_session_t session,
- int status)
+gnutls_certificate_send_x509_rdn_sequence(gnutls_session_t session, int status)
{
session->internals.ignore_rdn_sequence = status;
}
@@ -1033,8 +1044,7 @@ gnutls_certificate_send_x509_rdn_sequence(gnutls_session_t session,
-*/
void
_gnutls_record_set_default_version(gnutls_session_t session,
- unsigned char major,
- unsigned char minor)
+ unsigned char major, unsigned char minor)
{
session->internals.default_record_version[0] = major;
session->internals.default_record_version[1] = minor;
@@ -1052,8 +1062,7 @@ _gnutls_record_set_default_version(gnutls_session_t session,
-*/
void
_gnutls_hello_set_default_version(gnutls_session_t session,
- unsigned char major,
- unsigned char minor)
+ unsigned char major, unsigned char minor)
{
session->internals.default_hello_version[0] = major;
session->internals.default_hello_version[1] = minor;
@@ -1075,14 +1084,12 @@ _gnutls_hello_set_default_version(gnutls_session_t session,
* gnutls servers and clients may cause interoperability problems.
**/
void
-gnutls_handshake_set_private_extensions(gnutls_session_t session,
- int allow)
+gnutls_handshake_set_private_extensions(gnutls_session_t session, int allow)
{
/* we have no private extensions */
return;
}
-
/**
* gnutls_session_is_resumed:
* @session: is a #gnutls_session_t type.
@@ -1106,11 +1113,10 @@ int gnutls_session_is_resumed(gnutls_session_t session)
session->internals.resumed_security_parameters.
session_id_size
&& memcmp(session->security_parameters.session_id,
- session->
- internals.resumed_security_parameters.
+ session->internals.resumed_security_parameters.
session_id,
- session->security_parameters.
- session_id_size) == 0)
+ session->security_parameters.session_id_size) ==
+ 0)
return 1;
} else {
if (session->internals.resumed)
@@ -1229,11 +1235,8 @@ void gnutls_session_set_ptr(gnutls_session_t session, void *ptr)
*
* Since: 3.4.6
**/
-void
- gnutls_session_set_verify_function
- (gnutls_session_t session,
- gnutls_certificate_verify_function * func)
-{
+void gnutls_session_set_verify_function
+ (gnutls_session_t session, gnutls_certificate_verify_function * func) {
session->internals.verify_callback = func;
}
@@ -1280,7 +1283,7 @@ _gnutls_rsa_pms_set_version(gnutls_session_t session,
}
void _gnutls_session_client_cert_type_set(gnutls_session_t session,
- gnutls_certificate_type_t ct)
+ gnutls_certificate_type_t ct)
{
_gnutls_handshake_log
("HSK[%p]: Selected client certificate type %s (%d)\n", session,
@@ -1289,7 +1292,7 @@ void _gnutls_session_client_cert_type_set(gnutls_session_t session,
}
void _gnutls_session_server_cert_type_set(gnutls_session_t session,
- gnutls_certificate_type_t ct)
+ gnutls_certificate_type_t ct)
{
_gnutls_handshake_log
("HSK[%p]: Selected server certificate type %s (%d)\n", session,
@@ -1325,12 +1328,12 @@ void _gnutls_session_server_cert_type_set(gnutls_session_t session,
**/
void
gnutls_handshake_set_post_client_hello_function(gnutls_session_t session,
- gnutls_handshake_simple_hook_func func)
+ gnutls_handshake_simple_hook_func
+ func)
{
session->internals.user_hello_func = func;
}
-
/**
* gnutls_session_enable_compatibility_mode:
* @session: is a #gnutls_session_t type.
@@ -1401,32 +1404,33 @@ gnutls_session_channel_binding(gnutls_session_t session,
gnutls_digest_algorithm_t algo;
/* Only X509 certificates are supported for this binding type */
- ret = gnutls_certificate_type_get (session);
+ ret = gnutls_certificate_type_get(session);
if (ret != GNUTLS_CRT_X509)
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
if (session->security_parameters.entity == GNUTLS_CLIENT)
- ders = gnutls_certificate_get_peers (session, &num_certs);
+ ders =
+ gnutls_certificate_get_peers(session, &num_certs);
else
- ders = gnutls_certificate_get_ours (session);
+ ders = gnutls_certificate_get_ours(session);
/* Previous check indicated we have x509 but you never know */
if (!ders || num_certs == 0)
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
- ret = gnutls_x509_crt_list_import (&cert, &num_certs, ders,
- GNUTLS_X509_FMT_DER, 0);
+ ret = gnutls_x509_crt_list_import(&cert, &num_certs, ders,
+ GNUTLS_X509_FMT_DER, 0);
/* Again, this is not supposed to happen (normally) */
if (ret < 0 || num_certs == 0)
return GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE;
/* Obtain signature algorithm used by certificate */
- ret = gnutls_x509_crt_get_signature_algorithm (cert);
+ ret = gnutls_x509_crt_get_signature_algorithm(cert);
if (ret < 0 || ret == GNUTLS_SIGN_UNKNOWN)
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
/* obtain hash function from signature and normalize it */
- algo = gnutls_sign_get_hash_algorithm (ret);
+ algo = gnutls_sign_get_hash_algorithm(ret);
switch (algo) {
case GNUTLS_DIG_MD5:
case GNUTLS_DIG_SHA1:
@@ -1436,7 +1440,7 @@ gnutls_session_channel_binding(gnutls_session_t session,
case GNUTLS_DIG_NULL:
case GNUTLS_DIG_MD5_SHA1:
/* double hashing not supported either */
- gnutls_x509_crt_deinit (cert);
+ gnutls_x509_crt_deinit(cert);
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
default:
break;
@@ -1446,23 +1450,23 @@ gnutls_session_channel_binding(gnutls_session_t session,
rlen = MAX_HASH_SIZE;
cb->data = gnutls_malloc(rlen);
if (cb->data == NULL) {
- gnutls_x509_crt_deinit (cert);
+ gnutls_x509_crt_deinit(cert);
return GNUTLS_E_MEMORY_ERROR;
}
- ret = gnutls_x509_crt_get_fingerprint (cert, algo, cb->data,
- &rlen);
+ ret = gnutls_x509_crt_get_fingerprint(cert, algo, cb->data,
+ &rlen);
if (ret == GNUTLS_E_SHORT_MEMORY_BUFFER) {
- cb->data = gnutls_realloc_fast (cb->data, cb->size);
+ cb->data = gnutls_realloc_fast(cb->data, cb->size);
if (cb->data == NULL) {
- gnutls_x509_crt_deinit (cert);
+ gnutls_x509_crt_deinit(cert);
return GNUTLS_E_MEMORY_ERROR;
}
- ret = gnutls_x509_crt_get_fingerprint (cert, algo,
- cb->data, &rlen);
+ ret = gnutls_x509_crt_get_fingerprint(cert, algo,
+ cb->data, &rlen);
}
cb->size = rlen;
- gnutls_x509_crt_deinit (cert);
+ gnutls_x509_crt_deinit(cert);
return ret;
}
@@ -1492,10 +1496,10 @@ gnutls_session_channel_binding(gnutls_session_t session,
if (cb->data == NULL)
return GNUTLS_E_MEMORY_ERROR;
- return gnutls_prf_rfc5705 (session,
- RFC5705_LABEL_LEN, RFC5705_LABEL_DATA,
- EXPORTER_CTX_LEN, EXPORTER_CTX_DATA,
- cb->size, (char *) cb->data);
+ return gnutls_prf_rfc5705(session,
+ RFC5705_LABEL_LEN, RFC5705_LABEL_DATA,
+ EXPORTER_CTX_LEN, EXPORTER_CTX_DATA,
+ cb->size, (char *)cb->data);
}
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
@@ -1603,7 +1607,8 @@ gnutls_session_get_random(gnutls_session_t session,
* Since: 3.5.0
**/
void
-gnutls_session_get_master_secret(gnutls_session_t session, gnutls_datum_t *secret)
+gnutls_session_get_master_secret(gnutls_session_t session,
+ gnutls_datum_t * secret)
{
secret->data = session->security_parameters.master_secret;
secret->size = sizeof(session->security_parameters.master_secret);
@@ -1615,7 +1620,8 @@ unsigned int timespec_sub_ms(struct timespec *a, struct timespec *b)
dsecs = a->tv_sec - b->tv_sec;
if (!INT_MULTIPLY_OVERFLOW(dsecs, 1000)) {
- return (dsecs*1000 + (a->tv_nsec - b->tv_nsec) / (1000 * 1000));
+ return (dsecs * 1000 +
+ (a->tv_nsec - b->tv_nsec) / (1000 * 1000));
} else {
return UINT_MAX;
}
@@ -1685,8 +1691,7 @@ gnutls_handshake_set_random(gnutls_session_t session,
void
gnutls_handshake_set_hook_function(gnutls_session_t session,
unsigned int htype,
- int when,
- gnutls_handshake_hook_func func)
+ int when, gnutls_handshake_hook_func func)
{
session->internals.h_hook = func;
session->internals.h_type = htype;
@@ -1750,9 +1755,9 @@ gnutls_alert_set_read_function(gnutls_session_t session,
int
gnutls_record_get_state(gnutls_session_t session,
unsigned read,
- gnutls_datum_t *mac_key,
- gnutls_datum_t *IV,
- gnutls_datum_t *cipher_key,
+ gnutls_datum_t * mac_key,
+ gnutls_datum_t * IV,
+ gnutls_datum_t * cipher_key,
unsigned char seq_number[8])
{
record_parameters_st *record_params;
@@ -1813,8 +1818,7 @@ gnutls_record_get_state(gnutls_session_t session,
**/
int
gnutls_record_set_state(gnutls_session_t session,
- unsigned read,
- const unsigned char seq_number[8])
+ unsigned read, const unsigned char seq_number[8])
{
record_parameters_st *record_params;
record_state_st *record_state;
diff --git a/lib/state.h b/lib/state.h
index be6fad8cca..4519b41ec0 100644
--- a/lib/state.h
+++ b/lib/state.h
@@ -21,17 +21,16 @@
*/
#ifndef GNUTLS_LIB_STATE_H
-#define GNUTLS_LIB_STATE_H
+# define GNUTLS_LIB_STATE_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
void _gnutls_session_client_cert_type_set(gnutls_session_t session,
- gnutls_certificate_type_t);
+ gnutls_certificate_type_t);
void _gnutls_session_server_cert_type_set(gnutls_session_t session,
- gnutls_certificate_type_t);
+ gnutls_certificate_type_t);
-inline static const gnutls_group_entry_st *
-get_group(gnutls_session_t session)
+inline static const gnutls_group_entry_st *get_group(gnutls_session_t session)
{
return session->security_parameters.grp;
}
@@ -40,7 +39,7 @@ int _gnutls_session_is_ecc(gnutls_session_t session);
inline static void
_gnutls_session_group_set(gnutls_session_t session,
- const gnutls_group_entry_st *e)
+ const gnutls_group_entry_st * e)
{
_gnutls_handshake_log("HSK[%p]: Selected group %s (%d)\n",
session, e->name, e->id);
@@ -48,7 +47,7 @@ _gnutls_session_group_set(gnutls_session_t session,
}
inline static
-void set_default_version(gnutls_session_t session, const version_entry_st *ver)
+void set_default_version(gnutls_session_t session, const version_entry_st * ver)
{
if (ver->tls13_sem) {
session->internals.default_record_version[0] = 3;
@@ -61,31 +60,28 @@ void set_default_version(gnutls_session_t session, const version_entry_st *ver)
void
_gnutls_record_set_default_version(gnutls_session_t session,
- unsigned char major,
- unsigned char minor);
+ unsigned char major, unsigned char minor);
void
_gnutls_hello_set_default_version(gnutls_session_t session,
- unsigned char major,
- unsigned char minor);
+ unsigned char major, unsigned char minor);
-#include <auth.h>
+# include <auth.h>
-#define CHECK_AUTH_TYPE(auth, ret) if (gnutls_auth_get_type(session) != auth) { \
+# define CHECK_AUTH_TYPE(auth, ret) if (gnutls_auth_get_type(session) != auth) { \
gnutls_assert(); \
return ret; \
}
-
bool _gnutls_session_is_cert_type_supported(gnutls_session_t session,
- gnutls_certificate_type_t cert_type,
- bool check_credentials,
- gnutls_ctype_target_t target);
+ gnutls_certificate_type_t cert_type,
+ bool check_credentials,
+ gnutls_ctype_target_t target);
int _gnutls_dh_set_secret_bits(gnutls_session_t session, unsigned bits);
int _gnutls_dh_set_peer_public(gnutls_session_t session, bigint_t public);
int _gnutls_dh_save_group(gnutls_session_t session, bigint_t gen,
- bigint_t prime);
+ bigint_t prime);
static inline int _gnutls_dh_get_min_prime_bits(gnutls_session_t session)
{
@@ -112,10 +108,9 @@ _gnutls_PRF(gnutls_session_t session,
return _gnutls_prf_raw(session->security_parameters.prf->id,
secret_size, secret,
label_size, label,
- seed_size, seed,
- total_bytes, ret);
+ seed_size, seed, total_bytes, ret);
}
-#define DEFAULT_CERT_TYPE GNUTLS_CRT_X509
+# define DEFAULT_CERT_TYPE GNUTLS_CRT_X509
-#endif /* GNUTLS_LIB_STATE_H */
+#endif /* GNUTLS_LIB_STATE_H */
diff --git a/lib/stek.c b/lib/stek.c
index 22ab5051c9..cf8971491e 100644
--- a/lib/stek.c
+++ b/lib/stek.c
@@ -27,9 +27,9 @@
#define MAC_SECRET_POS (TICKET_KEY_NAME_SIZE+TICKET_CIPHER_KEY_SIZE)
static int totp_sha3(gnutls_session_t session,
- uint64_t t,
- const gnutls_datum_t *secret,
- uint8_t out[TICKET_MASTER_KEY_SIZE])
+ uint64_t t,
+ const gnutls_datum_t * secret,
+ uint8_t out[TICKET_MASTER_KEY_SIZE])
{
int retval;
uint8_t t_be[8];
@@ -40,7 +40,7 @@ static int totp_sha3(gnutls_session_t session,
*/
const gnutls_digest_algorithm_t algo = GNUTLS_DIG_SHA3_512;
#if TICKET_MASTER_KEY_SIZE != 64
-#error "TICKET_MASTER_KEY_SIZE must be 64 bytes"
+# error "TICKET_MASTER_KEY_SIZE must be 64 bytes"
#endif
if (unlikely(secret == NULL))
@@ -63,7 +63,8 @@ static int totp_sha3(gnutls_session_t session,
static uint64_t T(gnutls_session_t session, time_t t)
{
uint64_t numeral = t;
- unsigned int x = session->internals.expire_time * STEK_ROTATION_PERIOD_PRODUCT;
+ unsigned int x =
+ session->internals.expire_time * STEK_ROTATION_PERIOD_PRODUCT;
if (numeral <= 0)
return 0;
@@ -77,7 +78,7 @@ static int64_t totp_next(gnutls_session_t session)
uint64_t result;
t = gnutls_time(NULL);
- if (unlikely(t == (time_t) -1))
+ if (unlikely(t == (time_t) - 1))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
result = T(session, t);
@@ -107,7 +108,8 @@ static int64_t totp_previous(gnutls_session_t session)
}
static void call_rotation_callback(gnutls_session_t session,
- uint8_t key[TICKET_MASTER_KEY_SIZE], uint64_t t)
+ uint8_t key[TICKET_MASTER_KEY_SIZE],
+ uint64_t t)
{
gnutls_datum_t prev_key, new_key;
@@ -196,9 +198,9 @@ static int rotate_back_and_peek(gnutls_session_t session,
* before returning it to the caller.
*/
int _gnutls_get_session_ticket_encryption_key(gnutls_session_t session,
- gnutls_datum_t *key_name,
- gnutls_datum_t *mac_key,
- gnutls_datum_t *enc_key)
+ gnutls_datum_t * key_name,
+ gnutls_datum_t * mac_key,
+ gnutls_datum_t * enc_key)
{
int retval;
@@ -220,7 +222,8 @@ int _gnutls_get_session_ticket_encryption_key(gnutls_session_t session,
key_name->size = TICKET_KEY_NAME_SIZE;
}
if (mac_key) {
- mac_key->data = &session->key.session_ticket_key[MAC_SECRET_POS];
+ mac_key->data =
+ &session->key.session_ticket_key[MAC_SECRET_POS];
mac_key->size = TICKET_MAC_SECRET_SIZE;
}
if (enc_key) {
@@ -249,15 +252,18 @@ int _gnutls_get_session_ticket_encryption_key(gnutls_session_t session,
* %GNUTLS_E_REQUSTED_DATA_NOT_AVAILABLE if no key could be found for the supplied ticket.
*/
int _gnutls_get_session_ticket_decryption_key(gnutls_session_t session,
- const gnutls_datum_t *ticket_data,
- gnutls_datum_t *key_name,
- gnutls_datum_t *mac_key,
- gnutls_datum_t *enc_key)
+ const gnutls_datum_t *
+ ticket_data,
+ gnutls_datum_t * key_name,
+ gnutls_datum_t * mac_key,
+ gnutls_datum_t * enc_key)
{
int retval;
uint8_t *key_data;
- if (unlikely(session == NULL || ticket_data == NULL || ticket_data->data == NULL))
+ if (unlikely
+ (session == NULL || ticket_data == NULL
+ || ticket_data->data == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
if (ticket_data->size < TICKET_KEY_NAME_SIZE)
@@ -285,9 +291,13 @@ int _gnutls_get_session_ticket_decryption_key(gnutls_session_t session,
* Current key is not valid.
* Compute previous key and see if that matches.
*/
- _gnutls_memory_mark_defined(session->key.previous_ticket_key, TICKET_MASTER_KEY_SIZE);
- if ((retval = rotate_back_and_peek(session, session->key.previous_ticket_key)) < 0) {
- _gnutls_memory_mark_undefined(session->key.previous_ticket_key, TICKET_MASTER_KEY_SIZE);
+ _gnutls_memory_mark_defined(session->key.previous_ticket_key,
+ TICKET_MASTER_KEY_SIZE);
+ if ((retval =
+ rotate_back_and_peek(session,
+ session->key.previous_ticket_key)) < 0) {
+ _gnutls_memory_mark_undefined(session->key.previous_ticket_key,
+ TICKET_MASTER_KEY_SIZE);
return gnutls_assert_val(retval);
}
@@ -300,7 +310,7 @@ int _gnutls_get_session_ticket_decryption_key(gnutls_session_t session,
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
-key_found:
+ key_found:
if (key_name) {
key_name->data = &key_data[NAME_POS];
key_name->size = TICKET_KEY_NAME_SIZE;
@@ -329,7 +339,8 @@ key_found:
*
* Returns: %GNUTLS_E_SUCCESS (0) on success, or %GNUTLS_E_INVALID_REQUEST on error.
*/
-int _gnutls_initialize_session_ticket_key_rotation(gnutls_session_t session, const gnutls_datum_t *key)
+int _gnutls_initialize_session_ticket_key_rotation(gnutls_session_t session,
+ const gnutls_datum_t * key)
{
if (unlikely(session == NULL || key == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
@@ -357,7 +368,9 @@ int _gnutls_initialize_session_ticket_key_rotation(gnutls_session_t session, con
* step value that caused the key to rotate.
*
*/
-void _gnutls_set_session_ticket_key_rotation_callback(gnutls_session_t session, gnutls_stek_rotation_callback_t cb)
+void _gnutls_set_session_ticket_key_rotation_callback(gnutls_session_t session,
+ gnutls_stek_rotation_callback_t
+ cb)
{
if (session)
session->key.totp.cb = cb;
diff --git a/lib/stek.h b/lib/stek.h
index 284e6cbdb9..ce06fad53e 100644
--- a/lib/stek.h
+++ b/lib/stek.h
@@ -21,24 +21,26 @@
*/
#ifndef GNUTLS_LIB_STEK_H
-#define GNUTLS_LIB_STEK_H
+# define GNUTLS_LIB_STEK_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
int _gnutls_get_session_ticket_encryption_key(gnutls_session_t session,
- gnutls_datum_t *key_name,
- gnutls_datum_t *mac_key,
- gnutls_datum_t *enc_key);
+ gnutls_datum_t * key_name,
+ gnutls_datum_t * mac_key,
+ gnutls_datum_t * enc_key);
int _gnutls_get_session_ticket_decryption_key(gnutls_session_t session,
- const gnutls_datum_t *ticket_data,
- gnutls_datum_t *key_name,
- gnutls_datum_t *mac_key,
- gnutls_datum_t *enc_key);
+ const gnutls_datum_t *
+ ticket_data,
+ gnutls_datum_t * key_name,
+ gnutls_datum_t * mac_key,
+ gnutls_datum_t * enc_key);
void _gnutls_set_session_ticket_key_rotation_callback(gnutls_session_t session,
- gnutls_stek_rotation_callback_t cb);
+ gnutls_stek_rotation_callback_t
+ cb);
int _gnutls_initialize_session_ticket_key_rotation(gnutls_session_t session,
- const gnutls_datum_t *key);
+ const gnutls_datum_t * key);
-#endif /* GNUTLS_LIB_STEK_H */
+#endif /* GNUTLS_LIB_STEK_H */
diff --git a/lib/str-iconv.c b/lib/str-iconv.c
index 7786dc8cfa..3a85aa3ece 100644
--- a/lib/str-iconv.c
+++ b/lib/str-iconv.c
@@ -34,7 +34,8 @@
#include <uninorm.h>
#include "num.h"
-static void change_u16_endianness(uint8_t *dst, const uint8_t *src, unsigned size, unsigned be)
+static void change_u16_endianness(uint8_t * dst, const uint8_t * src,
+ unsigned size, unsigned be)
{
unsigned convert = 0;
unsigned i;
@@ -70,14 +71,15 @@ int _gnutls_ucs2_to_utf8(const void *data, size_t size,
uint8_t *tmp_dst = NULL;
uint8_t *dst = NULL;
- if (size > 2 && ((uint8_t *) data)[size-1] == 0 && ((uint8_t *) data)[size-2] == 0) {
+ if (size > 2 && ((uint8_t *) data)[size - 1] == 0
+ && ((uint8_t *) data)[size - 2] == 0) {
size -= 2;
}
if (size == 0)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- src = gnutls_malloc(size+2);
+ src = gnutls_malloc(size + 2);
if (src == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -85,13 +87,13 @@ int _gnutls_ucs2_to_utf8(const void *data, size_t size,
change_u16_endianness(src, data, size, be);
dstlen = 0;
- tmp_dst = u16_to_u8((uint16_t*)src, size/2, NULL, &dstlen);
+ tmp_dst = u16_to_u8((uint16_t *) src, size / 2, NULL, &dstlen);
if (tmp_dst == NULL) {
ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto fail;
}
- dst = gnutls_malloc(dstlen+1);
+ dst = gnutls_malloc(dstlen + 1);
if (dst == NULL) {
gnutls_assert();
ret = GNUTLS_E_MEMORY_ERROR;
@@ -101,7 +103,7 @@ int _gnutls_ucs2_to_utf8(const void *data, size_t size,
memcpy(dst, tmp_dst, dstlen);
dst[dstlen] = 0;
- output->data = (void *) dst;
+ output->data = (void *)dst;
output->size = dstlen;
ret = 0;
@@ -133,15 +135,16 @@ int _gnutls_utf8_to_ucs2(const void *data, size_t size,
if (tmp_dst == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- nrm_dst = u16_normalize(UNINORM_NFC, tmp_dst, tmp_size, NULL, &nrm_size);
+ nrm_dst =
+ u16_normalize(UNINORM_NFC, tmp_dst, tmp_size, NULL, &nrm_size);
if (nrm_dst == NULL) {
ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
goto fail;
}
- dstlen = nrm_size * 2; /* convert to bytes */
+ dstlen = nrm_size * 2; /* convert to bytes */
- dst = gnutls_malloc(dstlen+2);
+ dst = gnutls_malloc(dstlen + 2);
if (dst == NULL) {
gnutls_assert();
ret = GNUTLS_E_MEMORY_ERROR;
@@ -149,11 +152,11 @@ int _gnutls_utf8_to_ucs2(const void *data, size_t size,
}
/* convert to BE */
- change_u16_endianness(dst, (uint8_t*)tmp_dst, dstlen, be);
+ change_u16_endianness(dst, (uint8_t *) tmp_dst, dstlen, be);
dst[dstlen] = 0;
- dst[dstlen+1] = 0;
+ dst[dstlen + 1] = 0;
- output->data = (void *) dst;
+ output->data = (void *)dst;
output->size = dstlen;
ret = 0;
@@ -168,4 +171,3 @@ int _gnutls_utf8_to_ucs2(const void *data, size_t size,
return ret;
}
-
diff --git a/lib/str-idna.c b/lib/str-idna.c
index 74b8d220b9..288b3adc64 100644
--- a/lib/str-idna.c
+++ b/lib/str-idna.c
@@ -56,7 +56,8 @@
*
* Since: 3.5.8
**/
-int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsigned flags)
+int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t * out,
+ unsigned flags)
{
char *idna = NULL;
int rc, ret;
@@ -79,7 +80,7 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig
idn2_tflags |= IDN2_TRANSITIONAL | IDN2_USE_STD3_ASCII_RULES;
if (ilen == 0) {
- out->data = (uint8_t*)gnutls_strdup("");
+ out->data = (uint8_t *) gnutls_strdup("");
out->size = 0;
if (out->data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -96,22 +97,26 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig
return ret;
}
- rc = idn2_to_ascii_8z((ICAST*)istr.data, (ICAST**)&idna, idn2_flags);
+ rc = idn2_to_ascii_8z((ICAST *) istr.data, (ICAST **) & idna,
+ idn2_flags);
if (rc == IDN2_DISALLOWED && !(flags & GNUTLS_IDNA_FORCE_2008))
- rc = idn2_to_ascii_8z((ICAST*)istr.data, (ICAST**)&idna, idn2_tflags);
+ rc = idn2_to_ascii_8z((ICAST *) istr.data, (ICAST **) & idna,
+ idn2_tflags);
if (rc != IDN2_OK) {
gnutls_assert();
- idna = NULL; /* in case idn2_lookup_u8 modifies &idna */
- _gnutls_debug_log("unable to convert name '%s' to IDNA format: %s\n", istr.data, idn2_strerror(rc));
+ idna = NULL; /* in case idn2_lookup_u8 modifies &idna */
+ _gnutls_debug_log
+ ("unable to convert name '%s' to IDNA format: %s\n",
+ istr.data, idn2_strerror(rc));
ret = GNUTLS_E_INVALID_UTF8_STRING;
goto fail;
}
if (gnutls_free != idn2_free) {
ret = _gnutls_set_strdatum(out, idna, strlen(idna));
- } else {
- out->data = (unsigned char*)idna;
+ } else {
+ out->data = (unsigned char *)idna;
out->size = strlen(idna);
idna = NULL;
ret = 0;
@@ -142,14 +147,15 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig
*
* Since: 3.5.8
**/
-int gnutls_idna_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsigned flags)
+int gnutls_idna_reverse_map(const char *input, unsigned ilen,
+ gnutls_datum_t * out, unsigned flags)
{
char *u8 = NULL;
int rc, ret;
gnutls_datum_t istr;
if (ilen == 0) {
- out->data = (uint8_t*)gnutls_strdup("");
+ out->data = (uint8_t *) gnutls_strdup("");
out->size = 0;
if (out->data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -163,18 +169,20 @@ int gnutls_idna_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *ou
}
/* currently libidn2 just converts single labels, thus a wrapper function */
- rc = idn2_to_unicode_8z8z((char*)istr.data, &u8, 0);
+ rc = idn2_to_unicode_8z8z((char *)istr.data, &u8, 0);
if (rc != IDN2_OK) {
gnutls_assert();
- _gnutls_debug_log("unable to convert ACE name '%s' to UTF-8 format: %s\n", istr.data, idn2_strerror(rc));
+ _gnutls_debug_log
+ ("unable to convert ACE name '%s' to UTF-8 format: %s\n",
+ istr.data, idn2_strerror(rc));
ret = GNUTLS_E_INVALID_UTF8_STRING;
goto fail;
}
if (gnutls_malloc != malloc) {
ret = _gnutls_set_strdatum(out, u8, strlen(u8));
- } else {
- out->data = (unsigned char*)u8;
+ } else {
+ out->data = (unsigned char *)u8;
out->size = strlen(u8);
u8 = NULL;
ret = 0;
@@ -185,10 +193,11 @@ int gnutls_idna_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *ou
return ret;
}
-#else /* no HAVE_LIBIDN2 */
+#else /* no HAVE_LIBIDN2 */
# undef gnutls_idna_map
-int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsigned flags)
+int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t * out,
+ unsigned flags)
{
if (!_gnutls_str_is_print(input, ilen)) {
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
@@ -197,17 +206,19 @@ int gnutls_idna_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsig
return _gnutls_set_strdatum(out, input, ilen);
}
-int gnutls_idna_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *out, unsigned flags)
+int gnutls_idna_reverse_map(const char *input, unsigned ilen,
+ gnutls_datum_t * out, unsigned flags)
{
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
}
-#endif /* HAVE_LIBIDN2 */
+#endif /* HAVE_LIBIDN2 */
-int _gnutls_idna_email_map(const char *input, unsigned ilen, gnutls_datum_t *output)
+int _gnutls_idna_email_map(const char *input, unsigned ilen,
+ gnutls_datum_t * output)
{
const char *p = input;
- while(*p != 0 && *p != '@') {
+ while (*p != 0 && *p != '@') {
if (!c_isprint(*p))
return gnutls_assert_val(GNUTLS_E_INVALID_UTF8_EMAIL);
p++;
@@ -218,24 +229,24 @@ int _gnutls_idna_email_map(const char *input, unsigned ilen, gnutls_datum_t *out
}
if (*p == '@') {
- unsigned name_part = p-input;
+ unsigned name_part = p - input;
int ret;
gnutls_datum_t domain;
- ret = gnutls_idna_map(p+1, ilen-name_part-1, &domain, 0);
+ ret = gnutls_idna_map(p + 1, ilen - name_part - 1, &domain, 0);
if (ret < 0)
return gnutls_assert_val(ret);
- output->data = gnutls_malloc(name_part+1+domain.size+1);
+ output->data = gnutls_malloc(name_part + 1 + domain.size + 1);
if (output->data == NULL) {
gnutls_free(domain.data);
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
memcpy(output->data, input, name_part);
output->data[name_part] = '@';
- memcpy(&output->data[name_part+1], domain.data, domain.size);
- output->data[name_part+domain.size+1] = 0;
- output->size = name_part+domain.size+1;
+ memcpy(&output->data[name_part + 1], domain.data, domain.size);
+ output->data[name_part + domain.size + 1] = 0;
+ output->size = name_part + domain.size + 1;
gnutls_free(domain.data);
return 0;
} else {
@@ -243,35 +254,38 @@ int _gnutls_idna_email_map(const char *input, unsigned ilen, gnutls_datum_t *out
}
}
-int _gnutls_idna_email_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *output)
+int _gnutls_idna_email_reverse_map(const char *input, unsigned ilen,
+ gnutls_datum_t * output)
{
const char *p = input;
- while(*p != 0 && *p != '@') {
+ while (*p != 0 && *p != '@') {
if (!c_isprint(*p))
return gnutls_assert_val(GNUTLS_E_INVALID_UTF8_EMAIL);
p++;
}
if (*p == '@') {
- unsigned name_part = p-input;
+ unsigned name_part = p - input;
int ret;
gnutls_datum_t domain;
- ret = gnutls_idna_reverse_map(p+1, ilen-name_part-1, &domain, 0);
+ ret =
+ gnutls_idna_reverse_map(p + 1, ilen - name_part - 1,
+ &domain, 0);
if (ret < 0)
return gnutls_assert_val(ret);
- output->data = gnutls_malloc(name_part+1+domain.size+1);
+ output->data = gnutls_malloc(name_part + 1 + domain.size + 1);
if (output->data == NULL) {
gnutls_free(domain.data);
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
memcpy(output->data, input, name_part);
output->data[name_part] = '@';
- memcpy(&output->data[name_part+1], domain.data, domain.size);
- output->data[name_part+domain.size+1] = 0;
- output->size = name_part+domain.size+1;
+ memcpy(&output->data[name_part + 1], domain.data, domain.size);
+ output->data[name_part + domain.size + 1] = 0;
+ output->size = name_part + domain.size + 1;
gnutls_free(domain.data);
return 0;
} else {
diff --git a/lib/str-unicode.c b/lib/str-unicode.c
index d66710a5f2..ad7c18a6d9 100644
--- a/lib/str-unicode.c
+++ b/lib/str-unicode.c
@@ -32,57 +32,57 @@
inline static int is_allowed_exception(uint32_t ch)
{
switch (ch) {
- case 0xB7:
- case 0x0375:
- case 0x05F3:
- case 0x05F4:
- case 0x30FB:
- case 0x0660:
- case 0x0661:
- case 0x0662:
- case 0x0663:
- case 0x0664:
- case 0x0665:
- case 0x0666:
- case 0x0667:
- case 0x0668:
- case 0x0669:
- case 0x06F0:
- case 0x06F1:
- case 0x06F2:
- case 0x06F3:
- case 0x06F4:
- case 0x06F5:
- case 0x06F6:
- case 0x06F7:
- case 0x06F8:
- case 0x06F9:
- case 0x0640:
- case 0x07FA:
- case 0x302E:
- case 0x302F:
- case 0x3031:
- case 0x3032:
- case 0x3033:
- case 0x3034:
- case 0x3035:
- case 0x303B:
- return 0; /* disallowed */
- case 0xDF:
- case 0x03C2:
- case 0x06FD:
- case 0x06FE:
- case 0x0F0B:
- case 0x3007:
- return 1; /* allowed */
- default:
- return -1; /* not exception */
+ case 0xB7:
+ case 0x0375:
+ case 0x05F3:
+ case 0x05F4:
+ case 0x30FB:
+ case 0x0660:
+ case 0x0661:
+ case 0x0662:
+ case 0x0663:
+ case 0x0664:
+ case 0x0665:
+ case 0x0666:
+ case 0x0667:
+ case 0x0668:
+ case 0x0669:
+ case 0x06F0:
+ case 0x06F1:
+ case 0x06F2:
+ case 0x06F3:
+ case 0x06F4:
+ case 0x06F5:
+ case 0x06F6:
+ case 0x06F7:
+ case 0x06F8:
+ case 0x06F9:
+ case 0x0640:
+ case 0x07FA:
+ case 0x302E:
+ case 0x302F:
+ case 0x3031:
+ case 0x3032:
+ case 0x3033:
+ case 0x3034:
+ case 0x3035:
+ case 0x303B:
+ return 0; /* disallowed */
+ case 0xDF:
+ case 0x03C2:
+ case 0x06FD:
+ case 0x06FE:
+ case 0x0F0B:
+ case 0x3007:
+ return 1; /* allowed */
+ default:
+ return -1; /* not exception */
}
}
/* Checks whether the provided string is in the valid set of FreeFormClass (RFC7564
* as an RFC7613 requirement), and converts all spaces to the ASCII-space. */
-static int check_for_valid_freeformclass(uint32_t *ucs4, unsigned ucs4_size)
+static int check_for_valid_freeformclass(uint32_t * ucs4, unsigned ucs4_size)
{
unsigned i;
int rc;
@@ -93,37 +93,37 @@ static int check_for_valid_freeformclass(uint32_t *ucs4, unsigned ucs4_size)
unsigned is_invalid;
/* make the union of Valid categories, excluding any invalid (i.e., control) */
- cat = uc_general_category_or(UC_CATEGORY_Ll, UC_CATEGORY_Lu); /* LetterDigits */
+ cat = uc_general_category_or(UC_CATEGORY_Ll, UC_CATEGORY_Lu); /* LetterDigits */
cat = uc_general_category_or(cat, UC_CATEGORY_Lo);
cat = uc_general_category_or(cat, UC_CATEGORY_Nd);
cat = uc_general_category_or(cat, UC_CATEGORY_Lm);
cat = uc_general_category_or(cat, UC_CATEGORY_Mn);
cat = uc_general_category_or(cat, UC_CATEGORY_Mc);
- cat = uc_general_category_or(cat, UC_CATEGORY_Lt); /* OtherLetterDigits */
+ cat = uc_general_category_or(cat, UC_CATEGORY_Lt); /* OtherLetterDigits */
cat = uc_general_category_or(cat, UC_CATEGORY_Nl);
cat = uc_general_category_or(cat, UC_CATEGORY_No);
cat = uc_general_category_or(cat, UC_CATEGORY_Me);
- cat = uc_general_category_or(cat, UC_CATEGORY_Sm); /* Symbols */
+ cat = uc_general_category_or(cat, UC_CATEGORY_Sm); /* Symbols */
cat = uc_general_category_or(cat, UC_CATEGORY_Sc);
cat = uc_general_category_or(cat, UC_CATEGORY_So);
cat = uc_general_category_or(cat, UC_CATEGORY_Sk);
- cat = uc_general_category_or(cat, UC_CATEGORY_Pc); /* Punctuation */
+ cat = uc_general_category_or(cat, UC_CATEGORY_Pc); /* Punctuation */
cat = uc_general_category_or(cat, UC_CATEGORY_Pd);
cat = uc_general_category_or(cat, UC_CATEGORY_Ps);
cat = uc_general_category_or(cat, UC_CATEGORY_Pe);
cat = uc_general_category_or(cat, UC_CATEGORY_Pi);
cat = uc_general_category_or(cat, UC_CATEGORY_Pf);
cat = uc_general_category_or(cat, UC_CATEGORY_Po);
- cat = uc_general_category_or(cat, UC_CATEGORY_Zs); /* Spaces */
- cat = uc_general_category_and_not(cat, UC_CATEGORY_Cc); /* Not in Control */
+ cat = uc_general_category_or(cat, UC_CATEGORY_Zs); /* Spaces */
+ cat = uc_general_category_and_not(cat, UC_CATEGORY_Cc); /* Not in Control */
/* check for being in the allowed sets in rfc7564#section-4.3 */
- for (i=0;i<ucs4_size;i++) {
+ for (i = 0; i < ucs4_size; i++) {
is_invalid = 0;
/* Disallowed
o Old Hangul Jamo characters, i.e., the OldHangulJamo ("I") category
- (not handled in this code)
+ (not handled in this code)
o Control characters, i.e., the Controls ("L") category
@@ -134,7 +134,6 @@ static int check_for_valid_freeformclass(uint32_t *ucs4, unsigned ucs4_size)
return gnutls_assert_val(GNUTLS_E_INVALID_UTF8_STRING);
}
-
/* Contextual rules - we do not implement them / we reject chars from these sets
o A number of characters from the Exceptions ("F") category defined
@@ -144,32 +143,35 @@ static int check_for_valid_freeformclass(uint32_t *ucs4, unsigned ucs4_size)
if (rc == 0 || uc_is_property_join_control(ucs4[i]))
return gnutls_assert_val(GNUTLS_E_INVALID_UTF8_STRING);
- if (rc == 1) /* exceptionally allowed, continue */
+ if (rc == 1) /* exceptionally allowed, continue */
continue;
-
/* Replace all spaces; an RFC7613 requirement
*/
- if (uc_is_general_category(ucs4[i], UC_CATEGORY_Zs)) /* replace */
+ if (uc_is_general_category(ucs4[i], UC_CATEGORY_Zs)) /* replace */
ucs4[i] = 0x20;
/* Valid */
- if ((ucs4[i] < 0x21 || ucs4[i] > 0x7E) && !uc_is_general_category(ucs4[i], cat))
+ if ((ucs4[i] < 0x21 || ucs4[i] > 0x7E)
+ && !uc_is_general_category(ucs4[i], cat))
is_invalid = 1;
/* HasCompat */
if (is_invalid) {
- tmp_size = sizeof(tmp)/sizeof(tmp[0]);
- nrm = u32_normalize(UNINORM_NFKC, &ucs4[i], 1, tmp, &tmp_size);
+ tmp_size = sizeof(tmp) / sizeof(tmp[0]);
+ nrm =
+ u32_normalize(UNINORM_NFKC, &ucs4[i], 1, tmp,
+ &tmp_size);
if (nrm == NULL || (tmp_size == 1 && nrm[0] == ucs4[i]))
- return gnutls_assert_val(GNUTLS_E_INVALID_UTF8_STRING);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INVALID_UTF8_STRING);
}
}
return 0;
}
-
/**
* gnutls_utf8_password_normalize:
* @password: contain the UTF-8 formatted password
@@ -188,7 +190,7 @@ static int check_for_valid_freeformclass(uint32_t *ucs4, unsigned ucs4_size)
* Since: 3.5.7
**/
int gnutls_utf8_password_normalize(const unsigned char *password, unsigned plen,
- gnutls_datum_t *out, unsigned flags)
+ gnutls_datum_t * out, unsigned flags)
{
size_t ucs4_size = 0, nrm_size = 0;
size_t final_size = 0;
@@ -199,7 +201,7 @@ int gnutls_utf8_password_normalize(const unsigned char *password, unsigned plen,
int ret;
if (plen == 0) {
- out->data = (uint8_t*)gnutls_strdup("");
+ out->data = (uint8_t *) gnutls_strdup("");
out->size = 0;
if (out->data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -207,11 +209,11 @@ int gnutls_utf8_password_normalize(const unsigned char *password, unsigned plen,
}
/* check for invalid UTF-8 */
- if (u8_check((uint8_t*)password, plen) != NULL) {
+ if (u8_check((uint8_t *) password, plen) != NULL) {
gnutls_assert();
if (flags & GNUTLS_UTF8_IGNORE_ERRS) {
raw_copy:
- out->data = gnutls_malloc(plen+1);
+ out->data = gnutls_malloc(plen + 1);
if (out->data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
out->size = plen;
@@ -224,7 +226,7 @@ int gnutls_utf8_password_normalize(const unsigned char *password, unsigned plen,
}
/* convert to UTF-32 */
- ucs4 = u8_to_u32((uint8_t*)password, plen, NULL, &ucs4_size);
+ ucs4 = u8_to_u32((uint8_t *) password, plen, NULL, &ucs4_size);
if (ucs4 == NULL) {
gnutls_assert();
ret = GNUTLS_E_PARSING_ERROR;
@@ -261,7 +263,7 @@ int gnutls_utf8_password_normalize(const unsigned char *password, unsigned plen,
}
/* copy to output with null terminator */
- final = gnutls_malloc(final_size+1);
+ final = gnutls_malloc(final_size + 1);
if (final == NULL) {
gnutls_assert();
ret = GNUTLS_E_MEMORY_ERROR;
@@ -287,4 +289,3 @@ int gnutls_utf8_password_normalize(const unsigned char *password, unsigned plen,
free(nrmu8);
return ret;
}
-
diff --git a/lib/str.c b/lib/str.c
index 787a6b37e1..d7c4686703 100644
--- a/lib/str.c
+++ b/lib/str.c
@@ -46,8 +46,7 @@ void _gnutls_str_cat(char *dest, size_t dest_tot_size, const char *src)
strcat(dest, src);
} else {
if (dest_tot_size - dest_size > 0) {
- strncat(dest, src,
- (dest_tot_size - dest_size) - 1);
+ strncat(dest, src, (dest_tot_size - dest_size) - 1);
dest[dest_tot_size - 1] = 0;
}
}
@@ -101,7 +100,7 @@ void _gnutls_buffer_clear(gnutls_buffer_st * str)
**/
int
gnutls_buffer_append_data(gnutls_buffer_t dest, const void *data,
- size_t data_size)
+ size_t data_size)
{
size_t const tot_len = data_size + dest->length;
int ret;
@@ -113,7 +112,8 @@ gnutls_buffer_append_data(gnutls_buffer_t dest, const void *data,
return 0;
if (unlikely(sizeof(size_t) == 4 &&
- INT_ADD_OVERFLOW (((ssize_t)MAX(data_size, MIN_CHUNK)), ((ssize_t)dest->length)))) {
+ INT_ADD_OVERFLOW(((ssize_t) MAX(data_size, MIN_CHUNK)),
+ ((ssize_t) dest->length)))) {
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
@@ -145,8 +145,7 @@ int _gnutls_buffer_resize(gnutls_buffer_st * dest, size_t new_size)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
unused = MEMSUB(dest->data, dest->allocd);
- dest->allocd =
- gnutls_realloc_fast(dest->allocd, new_size + unused);
+ dest->allocd = gnutls_realloc_fast(dest->allocd, new_size + unused);
if (dest->allocd == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -186,8 +185,7 @@ int _gnutls_buffer_resize(gnutls_buffer_st * dest, size_t new_size)
MAX(new_size, MIN_CHUNK) + MAX(dest->max_length,
MIN_CHUNK);
- dest->allocd =
- gnutls_realloc_fast(dest->allocd, alloc_len);
+ dest->allocd = gnutls_realloc_fast(dest->allocd, alloc_len);
if (dest->allocd == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -250,7 +248,8 @@ _gnutls_buffer_pop_datum(gnutls_buffer_st * str, gnutls_datum_t * data,
/* converts the buffer to a datum if possible. After this call
* (failed or not) the buffer should be considered deinitialized.
*/
-int _gnutls_buffer_to_datum(gnutls_buffer_st * str, gnutls_datum_t * data, unsigned is_str)
+int _gnutls_buffer_to_datum(gnutls_buffer_st * str, gnutls_datum_t * data,
+ unsigned is_str)
{
int ret;
@@ -298,9 +297,7 @@ int _gnutls_buffer_to_datum(gnutls_buffer_st * str, gnutls_datum_t * data, unsig
/* returns data from a string in a constant buffer. Will
* fail with GNUTLS_E_PARSING_ERROR, if the string has not enough data.
*/
-int
-_gnutls_buffer_pop_data(gnutls_buffer_st * str, void *data,
- size_t req_size)
+int _gnutls_buffer_pop_data(gnutls_buffer_st * str, void *data, size_t req_size)
{
gnutls_datum_t tdata;
@@ -314,8 +311,7 @@ _gnutls_buffer_pop_data(gnutls_buffer_st * str, void *data,
return 0;
}
-int
-_gnutls_buffer_append_printf(gnutls_buffer_st * dest, const char *fmt, ...)
+int _gnutls_buffer_append_printf(gnutls_buffer_st * dest, const char *fmt, ...)
{
va_list args;
int len;
@@ -358,8 +354,7 @@ _gnutls_buffer_insert_data(gnutls_buffer_st * dest, int pos,
}
static void
-_gnutls_buffer_delete_data(gnutls_buffer_st * dest, int pos,
- size_t str_size)
+_gnutls_buffer_delete_data(gnutls_buffer_st * dest, int pos, size_t str_size)
{
memmove(&dest->data[pos], &dest->data[pos + str_size],
dest->length - pos - str_size);
@@ -369,7 +364,6 @@ _gnutls_buffer_delete_data(gnutls_buffer_st * dest, int pos,
return;
}
-
int
_gnutls_buffer_append_escape(gnutls_buffer_st * dest, const void *data,
size_t data_size, const char *invalid_chars)
@@ -385,11 +379,11 @@ _gnutls_buffer_append_escape(gnutls_buffer_st * dest, const void *data,
while (pos < dest->length) {
if (dest->data[pos] == '\\'
- || strchr(invalid_chars, dest->data[pos])
- || !c_isgraph(dest->data[pos])) {
+ || strchr(invalid_chars, dest->data[pos])
+ || !c_isgraph(dest->data[pos])) {
snprintf(t, sizeof(t), "%%%.2X",
- (unsigned int) dest->data[pos]);
+ (unsigned int)dest->data[pos]);
_gnutls_buffer_delete_data(dest, pos, 1);
@@ -404,7 +398,7 @@ _gnutls_buffer_append_escape(gnutls_buffer_st * dest, const void *data,
rv = 0;
- cleanup:
+ cleanup:
return rv;
}
@@ -415,13 +409,17 @@ int _gnutls_buffer_unescape(gnutls_buffer_st * dest)
while (pos < dest->length) {
if (dest->data[pos] == '%') {
- if (pos + 1 < dest->length && dest->data[pos + 1] == '%') {
+ if (pos + 1 < dest->length
+ && dest->data[pos + 1] == '%') {
// %% -> %
_gnutls_buffer_delete_data(dest, pos, 1);
- } else if (pos + 2 < dest->length && c_isxdigit(dest->data[pos + 1]) && c_isxdigit(dest->data[pos + 2])) {
+ } else if (pos + 2 < dest->length
+ && c_isxdigit(dest->data[pos + 1])
+ && c_isxdigit(dest->data[pos + 2])) {
unsigned char x;
- hex_decode((char *) dest->data + pos + 1, 2, &x, 1);
+ hex_decode((char *)dest->data + pos + 1, 2, &x,
+ 1);
_gnutls_buffer_delete_data(dest, pos, 3);
_gnutls_buffer_insert_data(dest, pos, &x, 1);
@@ -435,15 +433,13 @@ int _gnutls_buffer_unescape(gnutls_buffer_st * dest)
return rv;
}
-
/* Converts the given string (old) to hex. A buffer must be provided
* to hold the new hex string. The new string will be null terminated.
* If the buffer does not have enough space to hold the string, a
* truncated hex string is returned (always null terminated).
*/
char *_gnutls_bin2hex(const void *_old, size_t oldlen,
- char *buffer, size_t buffer_size,
- const char *separator)
+ char *buffer, size_t buffer_size, const char *separator)
{
unsigned int i, j;
const uint8_t *old = _old;
@@ -492,15 +488,14 @@ char *_gnutls_bin2hex(const void *_old, size_t oldlen,
**/
int
gnutls_hex2bin(const char *hex_data,
- size_t hex_size, void *bin_data, size_t * bin_size)
+ size_t hex_size, void *bin_data, size_t *bin_size)
{
- return _gnutls_hex2bin(hex_data, hex_size, (void *) bin_data,
- bin_size);
+ return _gnutls_hex2bin(hex_data, hex_size, (void *)bin_data, bin_size);
}
int
_gnutls_hex2bin(const char *hex_data, size_t hex_size, uint8_t * bin_data,
- size_t * bin_size)
+ size_t *bin_size)
{
unsigned int i, j;
uint8_t hex2_data[3];
@@ -518,14 +513,14 @@ _gnutls_hex2bin(const char *hex_data, size_t hex_size, uint8_t * bin_data,
return GNUTLS_E_SHORT_MEMORY_BUFFER;
}
- if (i+1 >= hex_size)
+ if (i + 1 >= hex_size)
return gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
hex2_data[0] = hex_data[i];
hex2_data[1] = hex_data[i + 1];
i += 2;
- val = strtoul((char *) hex2_data, NULL, 16);
+ val = strtoul((char *)hex2_data, NULL, 16);
if (val == ULONG_MAX) {
gnutls_assert();
return GNUTLS_E_PARSING_ERROR;
@@ -548,8 +543,7 @@ _gnutls_hex2bin(const char *hex_data, size_t hex_size, uint8_t * bin_data,
*
* Returns: %GNUTLS_E_PARSING_ERROR on invalid hex data, or 0 on success.
**/
-int
-gnutls_hex_decode2(const gnutls_datum_t * hex_data, gnutls_datum_t *result)
+int gnutls_hex_decode2(const gnutls_datum_t * hex_data, gnutls_datum_t * result)
{
int ret;
int size = hex_data_size(hex_data->size);
@@ -561,7 +555,7 @@ gnutls_hex_decode2(const gnutls_datum_t * hex_data, gnutls_datum_t *result)
}
result->size = size;
- ret = hex_decode((char *) hex_data->data, hex_data->size,
+ ret = hex_decode((char *)hex_data->data, hex_data->size,
result->data, result->size);
if (ret == 0) {
gnutls_assert();
@@ -589,7 +583,7 @@ gnutls_hex_decode2(const gnutls_datum_t * hex_data, gnutls_datum_t *result)
**/
int
gnutls_hex_decode(const gnutls_datum_t * hex_data, void *result,
- size_t * result_size)
+ size_t *result_size)
{
int ret;
size_t size = hex_data_size(hex_data->size);
@@ -599,8 +593,7 @@ gnutls_hex_decode(const gnutls_datum_t * hex_data, void *result,
return GNUTLS_E_SHORT_MEMORY_BUFFER;
}
- ret = hex_decode((char *) hex_data->data, hex_data->size,
- result, size);
+ ret = hex_decode((char *)hex_data->data, hex_data->size, result, size);
if (ret == 0) {
return gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
}
@@ -625,7 +618,7 @@ gnutls_hex_decode(const gnutls_datum_t * hex_data, void *result,
**/
int
gnutls_hex_encode(const gnutls_datum_t * data, char *result,
- size_t * result_size)
+ size_t *result_size)
{
int ret;
size_t size = hex_str_size(data->size);
@@ -657,8 +650,7 @@ gnutls_hex_encode(const gnutls_datum_t * data, char *result,
*
* Returns: %GNUTLS_E_SUCCESS on success, otherwise a negative error code.
**/
-int
-gnutls_hex_encode2(const gnutls_datum_t * data, gnutls_datum_t *result)
+int gnutls_hex_encode2(const gnutls_datum_t * data, gnutls_datum_t * result)
{
int ret;
int size = hex_str_size(data->size);
@@ -669,34 +661,37 @@ gnutls_hex_encode2(const gnutls_datum_t * data, gnutls_datum_t *result)
return GNUTLS_E_MEMORY_ERROR;
}
- ret = hex_encode((char*)data->data, data->size, (char*)result->data, size);
+ ret =
+ hex_encode((char *)data->data, data->size, (char *)result->data,
+ size);
if (ret == 0) {
gnutls_free(result->data);
return gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
}
- result->size = size-1;
+ result->size = size - 1;
return 0;
}
static int
hostname_compare_raw(const char *certname,
- size_t certnamesize, const char *hostname)
+ size_t certnamesize, const char *hostname)
{
- if (certnamesize == strlen(hostname) && memcmp(hostname, certname, certnamesize) == 0)
+ if (certnamesize == strlen(hostname)
+ && memcmp(hostname, certname, certnamesize) == 0)
return 1;
return 0;
}
static int
hostname_compare_ascii(const char *certname,
- size_t certnamesize, const char *hostname)
+ size_t certnamesize, const char *hostname)
{
for (;
*certname && *hostname
&& c_toupper(*certname) == c_toupper(*hostname);
- certname++, hostname++, certnamesize--);
+ certname++, hostname++, certnamesize--) ;
/* the strings are the same */
if (certnamesize == 0 && *hostname == '\0')
@@ -717,17 +712,20 @@ hostname_compare_ascii(const char *certname,
*/
int
_gnutls_hostname_compare(const char *certname,
- size_t certnamesize, const char *hostname, unsigned vflags)
+ size_t certnamesize, const char *hostname,
+ unsigned vflags)
{
char *p;
unsigned i;
- for (i=0;i<certnamesize;i++) {
+ for (i = 0; i < certnamesize; i++) {
if (c_isprint(certname[i]) == 0)
- return hostname_compare_raw(certname, certnamesize, hostname);
+ return hostname_compare_raw(certname, certnamesize,
+ hostname);
}
- if (*certname == '*' && !(vflags & GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS)) {
+ if (*certname == '*'
+ && !(vflags & GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS)) {
/* a wildcard certificate */
/* ensure that we have at least two domain components after
@@ -741,7 +739,8 @@ _gnutls_hostname_compare(const char *certname,
certnamesize--;
while (1) {
- if (hostname_compare_ascii(certname, certnamesize, hostname))
+ if (hostname_compare_ascii
+ (certname, certnamesize, hostname))
return 1;
/* wildcards are only allowed to match a single domain
@@ -781,7 +780,8 @@ _gnutls_buffer_append_prefix(gnutls_buffer_st * buf, int pfx_size,
return _gnutls_buffer_append_data(buf, ss, pfx_size);
}
-int _gnutls_buffer_pop_prefix8(gnutls_buffer_st *buf, uint8_t *data, int check)
+int _gnutls_buffer_pop_prefix8(gnutls_buffer_st * buf, uint8_t * data,
+ int check)
{
if (buf->length < 1) {
gnutls_assert();
@@ -802,7 +802,7 @@ int _gnutls_buffer_pop_prefix8(gnutls_buffer_st *buf, uint8_t *data, int check)
}
int
-_gnutls_buffer_pop_prefix16(gnutls_buffer_st * buf, size_t * data_size,
+_gnutls_buffer_pop_prefix16(gnutls_buffer_st * buf, size_t *data_size,
int check)
{
size_t size;
@@ -827,7 +827,7 @@ _gnutls_buffer_pop_prefix16(gnutls_buffer_st * buf, size_t * data_size,
}
int
-_gnutls_buffer_pop_prefix24(gnutls_buffer_st * buf, size_t * data_size,
+_gnutls_buffer_pop_prefix24(gnutls_buffer_st * buf, size_t *data_size,
int check)
{
size_t size;
@@ -855,7 +855,7 @@ _gnutls_buffer_pop_prefix24(gnutls_buffer_st * buf, size_t * data_size,
* the number read, is less than the data in the buffer
*/
int
-_gnutls_buffer_pop_prefix32(gnutls_buffer_st * buf, size_t * data_size,
+_gnutls_buffer_pop_prefix32(gnutls_buffer_st * buf, size_t *data_size,
int check)
{
size_t size;
@@ -880,8 +880,7 @@ _gnutls_buffer_pop_prefix32(gnutls_buffer_st * buf, size_t * data_size,
}
int
-_gnutls_buffer_pop_datum_prefix32(gnutls_buffer_st * buf,
- gnutls_datum_t * data)
+_gnutls_buffer_pop_datum_prefix32(gnutls_buffer_st * buf, gnutls_datum_t * data)
{
size_t size;
int ret;
@@ -908,8 +907,7 @@ _gnutls_buffer_pop_datum_prefix32(gnutls_buffer_st * buf,
}
int
-_gnutls_buffer_pop_datum_prefix24(gnutls_buffer_st * buf,
- gnutls_datum_t * data)
+_gnutls_buffer_pop_datum_prefix24(gnutls_buffer_st * buf, gnutls_datum_t * data)
{
size_t size;
int ret;
@@ -936,8 +934,7 @@ _gnutls_buffer_pop_datum_prefix24(gnutls_buffer_st * buf,
}
int
-_gnutls_buffer_pop_datum_prefix16(gnutls_buffer_st * buf,
- gnutls_datum_t * data)
+_gnutls_buffer_pop_datum_prefix16(gnutls_buffer_st * buf, gnutls_datum_t * data)
{
size_t size;
@@ -967,8 +964,7 @@ _gnutls_buffer_pop_datum_prefix16(gnutls_buffer_st * buf,
}
int
-_gnutls_buffer_pop_datum_prefix8(gnutls_buffer_st * buf,
- gnutls_datum_t * data)
+_gnutls_buffer_pop_datum_prefix8(gnutls_buffer_st * buf, gnutls_datum_t * data)
{
size_t size;
@@ -1032,8 +1028,7 @@ int _gnutls_buffer_append_mpi(gnutls_buffer_st * buf, int pfx_size,
return gnutls_assert_val(ret);
ret =
- _gnutls_buffer_append_data_prefix(buf, pfx_size, dd.data,
- dd.size);
+ _gnutls_buffer_append_data_prefix(buf, pfx_size, dd.data, dd.size);
_gnutls_free_datum(&dd);
@@ -1058,9 +1053,8 @@ int _gnutls_buffer_append_fixed_mpi(gnutls_buffer_st * buf,
}
pad = size - dd.size;
- for (i=0;i<pad;i++) {
- ret =
- _gnutls_buffer_append_data(buf, "\x00", 1);
+ for (i = 0; i < pad; i++) {
+ ret = _gnutls_buffer_append_data(buf, "\x00", 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1068,8 +1062,7 @@ int _gnutls_buffer_append_fixed_mpi(gnutls_buffer_st * buf,
}
/* append the rest */
- ret =
- _gnutls_buffer_append_data(buf, dd.data, dd.size);
+ ret = _gnutls_buffer_append_data(buf, dd.data, dd.size);
cleanup:
_gnutls_free_datum(&dd);
@@ -1077,8 +1070,7 @@ int _gnutls_buffer_append_fixed_mpi(gnutls_buffer_st * buf,
}
void
-_gnutls_buffer_hexprint(gnutls_buffer_st * str,
- const void *_data, size_t len)
+_gnutls_buffer_hexprint(gnutls_buffer_st * str, const void *_data, size_t len)
{
size_t j;
const unsigned char *data = _data;
@@ -1088,7 +1080,7 @@ _gnutls_buffer_hexprint(gnutls_buffer_st * str,
else {
for (j = 0; j < len; j++)
_gnutls_buffer_append_printf(str, "%.2x",
- (unsigned) data[j]);
+ (unsigned)data[j]);
}
}
@@ -1100,12 +1092,12 @@ _gnutls_buffer_base64print(gnutls_buffer_st * str,
unsigned b64len = BASE64_ENCODE_RAW_LENGTH(len);
int ret;
- ret = _gnutls_buffer_resize(str, str->length+b64len+1);
+ ret = _gnutls_buffer_resize(str, str->length + b64len + 1);
if (ret < 0) {
return gnutls_assert_val(ret);
}
- base64_encode_raw((void*)&str->data[str->length], len, data);
+ base64_encode_raw((void *)&str->data[str->length], len, data);
str->length += b64len;
str->data[str->length] = 0;
@@ -1124,30 +1116,28 @@ _gnutls_buffer_hexdump(gnutls_buffer_st * str, const void *_data,
for (j = 0; j < len; j++) {
if (((j + 1) % 16) == 0) {
_gnutls_buffer_append_printf(str, "%.2x\n",
- (unsigned) data[j]);
+ (unsigned)data[j]);
if (spc && j != (len - 1))
_gnutls_buffer_append_str(str, spc);
} else if (j == (len - 1))
_gnutls_buffer_append_printf(str, "%.2x",
- (unsigned) data[j]);
+ (unsigned)data[j]);
else
_gnutls_buffer_append_printf(str, "%.2x:",
- (unsigned) data[j]);
+ (unsigned)data[j]);
}
if ((j % 16) != 0)
_gnutls_buffer_append_str(str, "\n");
}
void
-_gnutls_buffer_asciiprint(gnutls_buffer_st * str,
- const char *data, size_t len)
+_gnutls_buffer_asciiprint(gnutls_buffer_st * str, const char *data, size_t len)
{
size_t j;
for (j = 0; j < len; j++)
if (c_isprint(data[j]))
- _gnutls_buffer_append_printf(str, "%c",
- (unsigned char)
+ _gnutls_buffer_append_printf(str, "%c", (unsigned char)
data[j]);
else
_gnutls_buffer_append_printf(str, ".");
diff --git a/lib/str.h b/lib/str.h
index c80d2f5a09..ac0ef6e134 100644
--- a/lib/str.h
+++ b/lib/str.h
@@ -22,38 +22,41 @@
*/
#ifndef GNUTLS_LIB_STR_H
-#define GNUTLS_LIB_STR_H
-
-#include <config.h>
-#include "gnutls_int.h"
-#include "errors.h"
-#include <datum.h>
-#include <c-ctype.h>
-#include "errors.h"
-
-#ifdef HAVE_DCGETTEXT
-# include "gettext.h"
-# define _(String) dgettext (PACKAGE, String)
-# define N_(String) gettext_noop (String)
-#else
-# define _(String) String
-# define N_(String) String
-#endif
-
-int gnutls_utf8_password_normalize(const uint8_t *password, unsigned password_len,
- gnutls_datum_t *out, unsigned flags);
-
-#define _gnutls_utf8_password_normalize(p, plen, out, ignore_errs) \
+# define GNUTLS_LIB_STR_H
+
+# include <config.h>
+# include "gnutls_int.h"
+# include "errors.h"
+# include <datum.h>
+# include <c-ctype.h>
+# include "errors.h"
+
+# ifdef HAVE_DCGETTEXT
+# include "gettext.h"
+# define _(String) dgettext (PACKAGE, String)
+# define N_(String) gettext_noop (String)
+# else
+# define _(String) String
+# define N_(String) String
+# endif
+
+int gnutls_utf8_password_normalize(const uint8_t * password,
+ unsigned password_len, gnutls_datum_t * out,
+ unsigned flags);
+
+# define _gnutls_utf8_password_normalize(p, plen, out, ignore_errs) \
gnutls_utf8_password_normalize((unsigned char*)p, plen, out, \
ignore_errs?(GNUTLS_UTF8_IGNORE_ERRS):0)
-int _gnutls_idna_email_map(const char *input, unsigned ilen, gnutls_datum_t *output);
-int _gnutls_idna_email_reverse_map(const char *input, unsigned ilen, gnutls_datum_t *output);
+int _gnutls_idna_email_map(const char *input, unsigned ilen,
+ gnutls_datum_t * output);
+int _gnutls_idna_email_reverse_map(const char *input, unsigned ilen,
+ gnutls_datum_t * output);
inline static unsigned _gnutls_str_is_print(const char *str, unsigned size)
{
unsigned i;
- for (i=0;i<size;i++) {
+ for (i = 0; i < size; i++) {
if (!c_isprint(str[i]))
return 0;
}
@@ -63,7 +66,7 @@ inline static unsigned _gnutls_str_is_print(const char *str, unsigned size)
inline static unsigned _gnutls_dnsname_is_valid(const char *str, unsigned size)
{
unsigned i;
- for (i=0;i<size;i++) {
+ for (i = 0; i < size; i++) {
if (!(c_isalnum(str[i]) || str[i] == '-' || str[i] == '.'))
return 0;
}
@@ -104,9 +107,9 @@ int _gnutls_buffer_resize(gnutls_buffer_st *, size_t new_size);
int _gnutls_buffer_append_str(gnutls_buffer_st *, const char *str);
-#define _gnutls_buffer_append_data gnutls_buffer_append_data
+# define _gnutls_buffer_append_data gnutls_buffer_append_data
-#include <num.h>
+# include <num.h>
int _gnutls_buffer_append_prefix(gnutls_buffer_st * buf, int pfx_size,
size_t data_size);
@@ -124,9 +127,12 @@ void _gnutls_buffer_pop_datum(gnutls_buffer_st *, gnutls_datum_t *,
size_t max_size);
/* 32-bit prefix */
-int _gnutls_buffer_pop_prefix32(gnutls_buffer_st * buf, size_t * data_size, int check);
-int _gnutls_buffer_pop_prefix24(gnutls_buffer_st * buf, size_t * data_size, int check);
-int _gnutls_buffer_pop_prefix16(gnutls_buffer_st * buf, size_t * data_size, int check);
+int _gnutls_buffer_pop_prefix32(gnutls_buffer_st * buf, size_t *data_size,
+ int check);
+int _gnutls_buffer_pop_prefix24(gnutls_buffer_st * buf, size_t *data_size,
+ int check);
+int _gnutls_buffer_pop_prefix16(gnutls_buffer_st * buf, size_t *data_size,
+ int check);
int _gnutls_buffer_pop_prefix8(gnutls_buffer_st *, uint8_t *, int check);
/* 32-bit prefix */
@@ -145,7 +151,8 @@ int _gnutls_buffer_pop_datum_prefix16(gnutls_buffer_st * buf,
int _gnutls_buffer_pop_datum_prefix8(gnutls_buffer_st * buf,
gnutls_datum_t * data);
-int _gnutls_buffer_to_datum(gnutls_buffer_st * str, gnutls_datum_t * data, unsigned is_str);
+int _gnutls_buffer_to_datum(gnutls_buffer_st * str, gnutls_datum_t * data,
+ unsigned is_str);
inline static
void _gnutls_ro_buffer_from_datum(gnutls_buffer_st * str, gnutls_datum_t * data)
@@ -161,21 +168,20 @@ _gnutls_buffer_append_escape(gnutls_buffer_st * dest, const void *data,
size_t data_size, const char *invalid_chars);
int _gnutls_buffer_unescape(gnutls_buffer_st * dest);
-#ifndef __attribute__
+# ifndef __attribute__
/* This feature is available in gcc versions 2.5 and later. */
-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define __attribute__(Spec) /* empty */
-#endif
-#endif
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+# define __attribute__(Spec) /* empty */
+# endif
+# endif
-int _gnutls_buffer_append_printf(gnutls_buffer_st * dest, const char *fmt,
- ...)
- __attribute__ ((format(printf, 2, 3)));
+int _gnutls_buffer_append_printf(gnutls_buffer_st * dest, const char *fmt, ...)
+ __attribute__((format(printf, 2, 3)));
void _gnutls_buffer_hexprint(gnutls_buffer_st * str,
const void *data, size_t len);
int _gnutls_buffer_base64print(gnutls_buffer_st * str,
- const void *data, size_t len);
+ const void *data, size_t len);
void _gnutls_buffer_hexdump(gnutls_buffer_st * str, const void *data,
size_t len, const char *spc);
void _gnutls_buffer_asciiprint(gnutls_buffer_st * str,
@@ -184,15 +190,15 @@ void _gnutls_buffer_asciiprint(gnutls_buffer_st * str,
char *_gnutls_bin2hex(const void *old, size_t oldlen, char *buffer,
size_t buffer_size, const char *separator);
int _gnutls_hex2bin(const char *hex_data, size_t hex_size,
- uint8_t * bin_data, size_t * bin_size);
+ uint8_t * bin_data, size_t *bin_size);
int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
const char *hostname, unsigned vflags);
-#define MAX_CN 256
-#define MAX_DN 1024
+# define MAX_CN 256
+# define MAX_DN 1024
-#define BUFFER_APPEND(b, x, s) { \
+# define BUFFER_APPEND(b, x, s) { \
ret = _gnutls_buffer_append_data(b, x, s); \
if (ret < 0) { \
gnutls_assert(); \
@@ -201,7 +207,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
}
/* append data prefixed with 4-bytes length field*/
-#define BUFFER_APPEND_PFX4(b, x, s) { \
+# define BUFFER_APPEND_PFX4(b, x, s) { \
ret = _gnutls_buffer_append_data_prefix(b, 32, x, s); \
if (ret < 0) { \
gnutls_assert(); \
@@ -209,7 +215,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
} \
}
-#define BUFFER_APPEND_PFX3(b, x, s) { \
+# define BUFFER_APPEND_PFX3(b, x, s) { \
ret = _gnutls_buffer_append_data_prefix(b, 24, x, s); \
if (ret < 0) { \
gnutls_assert(); \
@@ -217,7 +223,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
} \
}
-#define BUFFER_APPEND_PFX2(b, x, s) { \
+# define BUFFER_APPEND_PFX2(b, x, s) { \
ret = _gnutls_buffer_append_data_prefix(b, 16, x, s); \
if (ret < 0) { \
gnutls_assert(); \
@@ -225,7 +231,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
} \
}
-#define BUFFER_APPEND_PFX1(b, x, s) { \
+# define BUFFER_APPEND_PFX1(b, x, s) { \
ret = _gnutls_buffer_append_data_prefix(b, 8, x, s); \
if (ret < 0) { \
gnutls_assert(); \
@@ -233,7 +239,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
} \
}
-#define BUFFER_APPEND_NUM(b, s) { \
+# define BUFFER_APPEND_NUM(b, s) { \
ret = _gnutls_buffer_append_prefix(b, 32, s); \
if (ret < 0) { \
gnutls_assert(); \
@@ -241,7 +247,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
} \
}
-#define BUFFER_APPEND_TS(b, s) { \
+# define BUFFER_APPEND_TS(b, s) { \
ret = _gnutls_buffer_append_prefix(b, 32, (uint64_t) s.tv_sec >> 32); \
if (ret < 0) { \
gnutls_assert(); \
@@ -259,7 +265,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
} \
}
-#define BUFFER_POP(b, x, s) { \
+# define BUFFER_POP(b, x, s) { \
ret = _gnutls_buffer_pop_data(b, x, s); \
if (ret < 0) { \
ret = GNUTLS_E_PARSING_ERROR; \
@@ -268,7 +274,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
} \
}
-#define BUFFER_POP_DATUM(b, o) { \
+# define BUFFER_POP_DATUM(b, o) { \
gnutls_datum_t d; \
ret = _gnutls_buffer_pop_datum_prefix32(b, &d); \
if (ret >= 0) \
@@ -279,7 +285,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
} \
}
-#define BUFFER_POP_NUM(b, o) { \
+# define BUFFER_POP_NUM(b, o) { \
size_t s; \
ret = _gnutls_buffer_pop_prefix32(b, &s, 0); \
if (ret < 0) { \
@@ -289,7 +295,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
o = s; \
}
-#define BUFFER_POP_CAST_NUM(b, o) { \
+# define BUFFER_POP_CAST_NUM(b, o) { \
size_t s; \
ret = _gnutls_buffer_pop_prefix32(b, &s, 0); \
if (ret < 0) { \
@@ -299,7 +305,7 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
o = (void *) (intptr_t)(s); \
}
-#define BUFFER_POP_TS(b, o) { \
+# define BUFFER_POP_TS(b, o) { \
size_t s; \
uint64_t v; \
ret = _gnutls_buffer_pop_prefix32(b, &s, 0); \
@@ -323,4 +329,4 @@ int _gnutls_hostname_compare(const char *certname, size_t certnamesize,
o.tv_nsec = s; \
}
-#endif /* GNUTLS_LIB_STR_H */
+#endif /* GNUTLS_LIB_STR_H */
diff --git a/lib/str_array.h b/lib/str_array.h
index 2a787233b8..c7ce732d1b 100644
--- a/lib/str_array.h
+++ b/lib/str_array.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_STR_ARRAY_H
-#define GNUTLS_LIB_STR_ARRAY_H
+# define GNUTLS_LIB_STR_ARRAY_H
-#include "gnutls_int.h"
-#include "errors.h"
+# include "gnutls_int.h"
+# include "errors.h"
/* Functionality to allow an array of strings. Strings
* are allowed to be added to the list and matched against it.
@@ -67,10 +67,9 @@ inline static int _gnutls_str_array_match(gnutls_str_array_t head,
return 0;
}
-inline static void append(gnutls_str_array_t array, const char *str,
- int len)
+inline static void append(gnutls_str_array_t array, const char *str, int len)
{
- array->str = ((char *) array) + sizeof(struct gnutls_str_array_st);
+ array->str = ((char *)array) + sizeof(struct gnutls_str_array_st);
memcpy(array->str, str, len);
array->str[len] = 0;
array->len = len;
@@ -83,8 +82,7 @@ inline static int _gnutls_str_array_append(gnutls_str_array_t * head,
gnutls_str_array_t prev, array;
if (*head == NULL) {
*head =
- gnutls_malloc(len + 1 +
- sizeof(struct gnutls_str_array_st));
+ gnutls_malloc(len + 1 + sizeof(struct gnutls_str_array_st));
if (*head == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -98,8 +96,7 @@ inline static int _gnutls_str_array_append(gnutls_str_array_t * head,
array = prev->next;
}
prev->next =
- gnutls_malloc(len + 1 +
- sizeof(struct gnutls_str_array_st));
+ gnutls_malloc(len + 1 + sizeof(struct gnutls_str_array_st));
array = prev->next;
@@ -113,7 +110,7 @@ inline static int _gnutls_str_array_append(gnutls_str_array_t * head,
}
inline static int _gnutls_str_array_append_idna(gnutls_str_array_t * head,
- const char *name, size_t size)
+ const char *name, size_t size)
{
int ret;
gnutls_datum_t ahost;
@@ -121,15 +118,16 @@ inline static int _gnutls_str_array_append_idna(gnutls_str_array_t * head,
/* convert the provided hostname to ACE-Labels domain. */
ret = gnutls_idna_map(name, size, &ahost, 0);
if (ret < 0) {
- _gnutls_debug_log("unable to convert hostname %s to IDNA format\n", name);
+ _gnutls_debug_log
+ ("unable to convert hostname %s to IDNA format\n", name);
/* insert the raw name */
return _gnutls_str_array_append(head, name, size);
}
- ret = _gnutls_str_array_append(head, (char*)ahost.data, ahost.size);
+ ret = _gnutls_str_array_append(head, (char *)ahost.data, ahost.size);
gnutls_free(ahost.data);
return ret;
}
-#endif /* GNUTLS_LIB_STR_ARRAY_H */
+#endif /* GNUTLS_LIB_STR_ARRAY_H */
diff --git a/lib/supplemental.c b/lib/supplemental.c
index becb01e50c..8573b267df 100644
--- a/lib/supplemental.c
+++ b/lib/supplemental.c
@@ -71,8 +71,7 @@ static gnutls_supplemental_entry_st *suppfunc = NULL;
* supplemental data format type, or %NULL for unknown types.
**/
const char
- *gnutls_supplemental_get_name(gnutls_supplemental_data_format_type_t
- type)
+*gnutls_supplemental_get_name(gnutls_supplemental_data_format_type_t type)
{
size_t i;
@@ -98,7 +97,8 @@ void _gnutls_supplemental_deinit(void)
}
static gnutls_supp_recv_func
-get_supp_func_recv(gnutls_session_t session, gnutls_supplemental_data_format_type_t type)
+get_supp_func_recv(gnutls_session_t session,
+ gnutls_supplemental_data_format_type_t type)
{
size_t i;
@@ -115,7 +115,8 @@ get_supp_func_recv(gnutls_session_t session, gnutls_supplemental_data_format_typ
return NULL;
}
-static int gen_supplemental(gnutls_session_t session, const gnutls_supplemental_entry_st *supp,
+static int gen_supplemental(gnutls_session_t session,
+ const gnutls_supplemental_entry_st * supp,
gnutls_buffer_st * buf)
{
int ret;
@@ -141,16 +142,14 @@ static int gen_supplemental(gnutls_session_t session, const gnutls_supplemental_
buf->data[sizepos + 1] = supp->type & 0xFF;
buf->data[sizepos + 2] =
((buf->length - sizepos - 4) >> 8) & 0xFF;
- buf->data[sizepos + 3] =
- (buf->length - sizepos - 4) & 0xFF;
+ buf->data[sizepos + 3] = (buf->length - sizepos - 4) & 0xFF;
} else
buf->length -= 4;
return 0;
}
-int
-_gnutls_gen_supplemental(gnutls_session_t session, gnutls_buffer_st * buf)
+int _gnutls_gen_supplemental(gnutls_session_t session, gnutls_buffer_st * buf)
{
size_t i;
int ret;
@@ -164,7 +163,8 @@ _gnutls_gen_supplemental(gnutls_session_t session, gnutls_buffer_st * buf)
}
for (i = 0; i < session->internals.rsup_size; i++) {
- ret = gen_supplemental(session, &session->internals.rsup[i], buf);
+ ret =
+ gen_supplemental(session, &session->internals.rsup[i], buf);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -178,12 +178,12 @@ _gnutls_gen_supplemental(gnutls_session_t session, gnutls_buffer_st * buf)
i = buf->length - init_pos - 3;
buf->data[init_pos] = (i >> 16) & 0xFF;
- buf->data[init_pos+1] = (i >> 8) & 0xFF;
- buf->data[init_pos+2] = i & 0xFF;
+ buf->data[init_pos + 1] = (i >> 8) & 0xFF;
+ buf->data[init_pos + 2] = i & 0xFF;
_gnutls_debug_log
("EXT[%p]: Sending %d bytes of supplemental data\n", session,
- (int) buf->length);
+ (int)buf->length);
return buf->length - init_pos;
}
@@ -242,8 +242,7 @@ _gnutls_parse_supplemental(gnutls_session_t session,
return 0;
}
-static int
-_gnutls_supplemental_register(gnutls_supplemental_entry_st *entry)
+static int _gnutls_supplemental_register(gnutls_supplemental_entry_st * entry)
{
gnutls_supplemental_entry_st *p;
unsigned i;
@@ -295,8 +294,10 @@ _gnutls_supplemental_register(gnutls_supplemental_entry_st *entry)
* Since: 3.4.0
**/
int
-gnutls_supplemental_register(const char *name, gnutls_supplemental_data_format_type_t type,
- gnutls_supp_recv_func recv_func, gnutls_supp_send_func send_func)
+gnutls_supplemental_register(const char *name,
+ gnutls_supplemental_data_format_type_t type,
+ gnutls_supp_recv_func recv_func,
+ gnutls_supp_send_func send_func)
{
gnutls_supplemental_entry_st tmp_entry;
int ret;
@@ -305,7 +306,7 @@ gnutls_supplemental_register(const char *name, gnutls_supplemental_data_format_t
tmp_entry.type = type;
tmp_entry.supp_recv_func = recv_func;
tmp_entry.supp_send_func = send_func;
-
+
ret = _gnutls_supplemental_register(&tmp_entry);
if (ret < 0) {
gnutls_free(tmp_entry.name);
@@ -342,8 +343,8 @@ gnutls_supplemental_register(const char *name, gnutls_supplemental_data_format_t
**/
int
gnutls_session_supplemental_register(gnutls_session_t session, const char *name,
- gnutls_supplemental_data_format_type_t type,
- gnutls_supp_recv_func recv_func,
+ gnutls_supplemental_data_format_type_t
+ type, gnutls_supp_recv_func recv_func,
gnutls_supp_send_func send_func,
unsigned flags)
{
@@ -362,13 +363,15 @@ gnutls_session_supplemental_register(gnutls_session_t session, const char *name,
}
p = gnutls_realloc(session->internals.rsup,
- sizeof(gnutls_supplemental_entry_st)*(session->internals.rsup_size + 1));
+ sizeof(gnutls_supplemental_entry_st) *
+ (session->internals.rsup_size + 1));
if (!p)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
session->internals.rsup = p;
- memcpy(&session->internals.rsup[session->internals.rsup_size], &tmp_entry, sizeof(tmp_entry));
+ memcpy(&session->internals.rsup[session->internals.rsup_size],
+ &tmp_entry, sizeof(tmp_entry));
session->internals.rsup_size++;
session->internals.flags |= INT_FLAG_NO_TLS13;
@@ -388,9 +391,11 @@ gnutls_session_supplemental_register(gnutls_session_t session, const char *name,
* Since: 3.4.0
**/
void
-gnutls_supplemental_recv(gnutls_session_t session, unsigned do_recv_supplemental)
+gnutls_supplemental_recv(gnutls_session_t session,
+ unsigned do_recv_supplemental)
{
- session->security_parameters.do_recv_supplemental = do_recv_supplemental;
+ session->security_parameters.do_recv_supplemental =
+ do_recv_supplemental;
}
/**
@@ -404,7 +409,9 @@ gnutls_supplemental_recv(gnutls_session_t session, unsigned do_recv_supplemental
* Since: 3.4.0
**/
void
-gnutls_supplemental_send(gnutls_session_t session, unsigned do_send_supplemental)
+gnutls_supplemental_send(gnutls_session_t session,
+ unsigned do_send_supplemental)
{
- session->security_parameters.do_send_supplemental = do_send_supplemental;
+ session->security_parameters.do_send_supplemental =
+ do_send_supplemental;
}
diff --git a/lib/supplemental.h b/lib/supplemental.h
index 446d70927a..06b099192c 100644
--- a/lib/supplemental.h
+++ b/lib/supplemental.h
@@ -21,15 +21,14 @@
*/
#ifndef GNUTLS_LIB_SUPPLEMENTAL_H
-#define GNUTLS_LIB_SUPPLEMENTAL_H
+# define GNUTLS_LIB_SUPPLEMENTAL_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
int _gnutls_parse_supplemental(gnutls_session_t session,
const uint8_t * data, int data_size);
-int _gnutls_gen_supplemental(gnutls_session_t session,
- gnutls_buffer_st * buf);
+int _gnutls_gen_supplemental(gnutls_session_t session, gnutls_buffer_st * buf);
void _gnutls_supplemental_deinit(void);
-#endif /* GNUTLS_LIB_SUPPLEMENTAL_H */
+#endif /* GNUTLS_LIB_SUPPLEMENTAL_H */
diff --git a/lib/system-keys.h b/lib/system-keys.h
index ad3c411ca6..7687816553 100644
--- a/lib/system-keys.h
+++ b/lib/system-keys.h
@@ -19,22 +19,19 @@
*/
#ifndef GNUTLS_LIB_SYSTEM_KEYS_H
-#define GNUTLS_LIB_SYSTEM_KEYS_H
+# define GNUTLS_LIB_SYSTEM_KEYS_H
-#ifdef _WIN32
-# define _gnutls_system_url_is_supported(x) 1
-#else
-# define _gnutls_system_url_is_supported(x) 0
-#endif
+# ifdef _WIN32
+# define _gnutls_system_url_is_supported(x) 1
+# else
+# define _gnutls_system_url_is_supported(x) 0
+# endif
-int
-_gnutls_x509_crt_import_system_url(gnutls_x509_crt_t crt, const char *url);
+int _gnutls_x509_crt_import_system_url(gnutls_x509_crt_t crt, const char *url);
-int
-_gnutls_privkey_import_system_url(gnutls_privkey_t pkey,
- const char *url);
+int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url);
void _gnutls_system_key_deinit(void);
int _gnutls_system_key_init(void);
-#endif /* GNUTLS_LIB_SYSTEM_KEYS_H */
+#endif /* GNUTLS_LIB_SYSTEM_KEYS_H */
diff --git a/lib/system.c b/lib/system.c
index f01669dff8..a7b742d2eb 100644
--- a/lib/system.c
+++ b/lib/system.c
@@ -77,7 +77,7 @@ int gnutls_system_global_init(void)
pCertEnumCRLsInStore =
(CertEnumCRLsInStoreFunc) GetProcAddress(crypto,
- "CertEnumCRLsInStore");
+ "CertEnumCRLsInStore");
if (pCertEnumCRLsInStore == NULL) {
FreeLibrary(crypto);
return GNUTLS_E_CRYPTO_INIT_FAILED;
@@ -98,5 +98,3 @@ void gnutls_system_global_deinit(void)
gnutls_time = time;
gnutls_gettime = _gnutls_gettime;
}
-
-
diff --git a/lib/system.h b/lib/system.h
index 13cbf1a9fe..329cf3a368 100644
--- a/lib/system.h
+++ b/lib/system.h
@@ -22,71 +22,70 @@
*/
#ifndef GNUTLS_LIB_SYSTEM_H
-#define GNUTLS_LIB_SYSTEM_H
+# define GNUTLS_LIB_SYSTEM_H
-#include "gnutls_int.h"
-#include <time.h>
-#include <sys/time.h>
+# include "gnutls_int.h"
+# include <time.h>
+# include <sys/time.h>
-#ifdef _WIN32
-# if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) && __MINGW32_MAJOR_VERSION <= 3 && __MINGW32_MINOR_VERSION <= 20
-# define NEED_CERT_ENUM_CRLS
+# ifdef _WIN32
+# if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) && __MINGW32_MAJOR_VERSION <= 3 && __MINGW32_MINOR_VERSION <= 20
+# define NEED_CERT_ENUM_CRLS
typedef PCCRL_CONTEXT WINAPI(*CertEnumCRLsInStoreFunc) (HCERTSTORE
- hCertStore,
- PCCRL_CONTEXT
- pPrevCrlContext);
+ hCertStore,
+ PCCRL_CONTEXT
+ pPrevCrlContext);
extern CertEnumCRLsInStoreFunc pCertEnumCRLsInStore;
+# else
+# define pCertEnumCRLsInStore CertEnumCRLsInStore
+# endif
+# include <windows.h> /* for Sleep */
# else
-# define pCertEnumCRLsInStore CertEnumCRLsInStore
+# include <sys/uio.h> /* for writev */
# endif
-#include <windows.h> /* for Sleep */
-#else
-#include <sys/uio.h> /* for writev */
-#endif
-#include "pathbuf.h"
+# include "pathbuf.h"
int system_errno(gnutls_transport_ptr_t);
ssize_t system_write(gnutls_transport_ptr_t ptr, const void *data,
size_t data_size);
-#define HAVE_WRITEV
+# define HAVE_WRITEV
ssize_t system_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec,
int iovec_cnt);
-ssize_t system_writev_nosignal(gnutls_transport_ptr_t ptr, const giovec_t * iovec,
- int iovec_cnt);
+ssize_t system_writev_nosignal(gnutls_transport_ptr_t ptr,
+ const giovec_t * iovec, int iovec_cnt);
ssize_t system_writev_tfo(gnutls_session_t ptr, const giovec_t * iovec,
- int iovec_cnt);
+ int iovec_cnt);
ssize_t system_writev_nosignal_tfo(gnutls_session_t ptr, const giovec_t * iovec,
- int iovec_cnt);
-ssize_t system_read(gnutls_transport_ptr_t ptr, void *data,
- size_t data_size);
+ int iovec_cnt);
+ssize_t system_read(gnutls_transport_ptr_t ptr, void *data, size_t data_size);
-#if defined(_WIN32)
-# define HAVE_WIN32_LOCKS
-#elif defined(HAVE_LIBPTHREAD) || defined(HAVE_PTHREAD_MUTEX_LOCK)
-# define HAVE_PTHREAD_LOCKS
-#else
-# define HAVE_NO_LOCKS
-#endif
+# if defined(_WIN32)
+# define HAVE_WIN32_LOCKS
+# elif defined(HAVE_LIBPTHREAD) || defined(HAVE_PTHREAD_MUTEX_LOCK)
+# define HAVE_PTHREAD_LOCKS
+# else
+# define HAVE_NO_LOCKS
+# endif
-typedef void (*gnutls_gettime_func) (struct timespec *);
+typedef void (*gnutls_gettime_func)(struct timespec *);
extern gnutls_time_func gnutls_time;
extern gnutls_gettime_func gnutls_gettime;
static inline void millisleep(unsigned int ms)
{
-#ifdef _WIN32
+# ifdef _WIN32
Sleep(ms);
-#else
+# else
struct timespec ts;
ts.tv_sec = 0;
ts.tv_nsec = ms * 1000 * 1000;
nanosleep(&ts, NULL);
-#endif
+# endif
}
int _gnutls_find_config_path(char *path, size_t max_size);
@@ -100,4 +99,4 @@ void _gnutls_global_set_gettime_function(gnutls_gettime_func gettime_func);
int gnutls_system_global_init(void);
void gnutls_system_global_deinit(void);
-#endif /* GNUTLS_LIB_SYSTEM_H */
+#endif /* GNUTLS_LIB_SYSTEM_H */
diff --git a/lib/system/certs.c b/lib/system/certs.c
index e155bd9389..b7d9a0b312 100644
--- a/lib/system/certs.c
+++ b/lib/system/certs.c
@@ -35,7 +35,7 @@
# include <windows.h>
# include <wincrypt.h>
-#else /* !_WIN32 */
+#else /* !_WIN32 */
# include <poll.h>
@@ -73,7 +73,8 @@ int _gnutls_find_config_path(char *path, size_t max_size)
const char *home_path = getenv("HOMEPATH");
if (home_drive != NULL && home_path != NULL) {
- snprintf(path, max_size, "%s%s\\" CONFIG_PATH, home_drive, home_path);
+ snprintf(path, max_size, "%s%s\\" CONFIG_PATH,
+ home_drive, home_path);
} else {
path[0] = 0;
}
@@ -87,14 +88,15 @@ int _gnutls_find_config_path(char *path, size_t max_size)
ret = getpwuid_r(getuid(), &_pwd, tmp, sizeof(tmp), &pwd);
if (ret == 0 && pwd != NULL) {
- snprintf(path, max_size, "%s/" CONFIG_PATH, pwd->pw_dir);
+ snprintf(path, max_size, "%s/" CONFIG_PATH,
+ pwd->pw_dir);
} else {
path[0] = 0;
}
}
#else
if (home_dir == NULL || home_dir[0] == '\0') {
- path[0] = 0;
+ path[0] = 0;
}
#endif
@@ -109,13 +111,13 @@ add_system_trust(gnutls_x509_trust_list_t list,
{
int ret, r = 0;
const char *crl_file =
-#ifdef DEFAULT_CRL_FILE
+# ifdef DEFAULT_CRL_FILE
DEFAULT_CRL_FILE;
-#else
+# else
NULL;
-#endif
+# endif
-#if defined(ENABLE_PKCS11) && defined(DEFAULT_TRUST_STORE_PKCS11)
+# if defined(ENABLE_PKCS11) && defined(DEFAULT_TRUST_STORE_PKCS11)
ret =
gnutls_x509_trust_list_add_trust_file(list,
DEFAULT_TRUST_STORE_PKCS11,
@@ -124,9 +126,9 @@ add_system_trust(gnutls_x509_trust_list_t list,
tl_flags, tl_vflags);
if (ret > 0)
r += ret;
-#endif
+# endif
-#ifdef DEFAULT_TRUST_STORE_FILE
+# ifdef DEFAULT_TRUST_STORE_FILE
ret =
gnutls_x509_trust_list_add_trust_file(list,
DEFAULT_TRUST_STORE_FILE,
@@ -135,14 +137,18 @@ add_system_trust(gnutls_x509_trust_list_t list,
tl_flags, tl_vflags);
if (ret > 0)
r += ret;
-#endif
+# endif
-#ifdef DEFAULT_BLOCKLIST_FILE
- ret = gnutls_x509_trust_list_remove_trust_file(list, DEFAULT_BLOCKLIST_FILE, GNUTLS_X509_FMT_PEM);
+# ifdef DEFAULT_BLOCKLIST_FILE
+ ret =
+ gnutls_x509_trust_list_remove_trust_file(list,
+ DEFAULT_BLOCKLIST_FILE,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
- _gnutls_debug_log("Could not load blocklist file '%s'\n", DEFAULT_BLOCKLIST_FILE);
+ _gnutls_debug_log("Could not load blocklist file '%s'\n",
+ DEFAULT_BLOCKLIST_FILE);
}
-#endif
+# endif
return r;
}
@@ -161,9 +167,15 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
gnutls_datum_t data;
if (i == 0)
- store = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_CURRENT_USER , L"ROOT");
+ store =
+ CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0,
+ CERT_SYSTEM_STORE_CURRENT_USER,
+ L"ROOT");
else
- store = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_CURRENT_USER, L"CA");
+ store =
+ CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0,
+ CERT_SYSTEM_STORE_CURRENT_USER,
+ L"CA");
if (store == NULL)
return GNUTLS_E_FILE_ERROR;
@@ -200,12 +212,16 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
CertCloseStore(store, 0);
}
-#ifdef DEFAULT_BLOCKLIST_FILE
- ret = gnutls_x509_trust_list_remove_trust_file(list, DEFAULT_BLOCKLIST_FILE, GNUTLS_X509_FMT_PEM);
+# ifdef DEFAULT_BLOCKLIST_FILE
+ ret =
+ gnutls_x509_trust_list_remove_trust_file(list,
+ DEFAULT_BLOCKLIST_FILE,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
- _gnutls_debug_log("Could not load blocklist file '%s'\n", DEFAULT_BLOCKLIST_FILE);
+ _gnutls_debug_log("Could not load blocklist file '%s'\n",
+ DEFAULT_BLOCKLIST_FILE);
}
-#endif
+# endif
return r;
}
@@ -238,19 +254,19 @@ static int load_revoked_certs(gnutls_x509_trust_list_t list, unsigned type)
base_len = pathbuf.len;
while ((d = readdir(dirp)) != NULL) {
- if (d->d_type != DT_REG) {
- continue;
- }
- ret = _gnutls_pathbuf_append(&pathbuf, d->d_name);
- if (ret < 0) {
- continue;
- }
- ret = gnutls_x509_trust_list_remove_trust_file
- (list, pathbuf.ptr, type);
- if (ret >= 0) {
- r += ret;
- }
- (void)_gnutls_pathbuf_truncate(&pathbuf, base_len);
+ if (d->d_type != DT_REG) {
+ continue;
+ }
+ ret = _gnutls_pathbuf_append(&pathbuf, d->d_name);
+ if (ret < 0) {
+ continue;
+ }
+ ret = gnutls_x509_trust_list_remove_trust_file
+ (list, pathbuf.ptr, type);
+ if (ret >= 0) {
+ r += ret;
+ }
+ (void)_gnutls_pathbuf_truncate(&pathbuf, base_len);
}
_gnutls_pathbuf_deinit(&pathbuf);
closedir(dirp);
@@ -260,7 +276,6 @@ static int load_revoked_certs(gnutls_x509_trust_list_t list, unsigned type)
}
# endif
-
/* This works on android 4.x
*/
static
@@ -269,8 +284,10 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
{
int r = 0, ret;
- ret = gnutls_x509_trust_list_add_trust_dir(list, DEFAULT_TRUST_STORE_DIR,
- NULL, GNUTLS_X509_FMT_PEM, tl_flags, tl_vflags);
+ ret =
+ gnutls_x509_trust_list_add_trust_dir(list, DEFAULT_TRUST_STORE_DIR,
+ NULL, GNUTLS_X509_FMT_PEM,
+ tl_flags, tl_vflags);
if (ret >= 0)
r += ret;
@@ -279,8 +296,11 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
if (ret >= 0)
r -= ret;
- ret = gnutls_x509_trust_list_add_trust_dir(list, "/data/misc/keychain/cacerts-added/",
- NULL, GNUTLS_X509_FMT_DER, tl_flags, tl_vflags);
+ ret =
+ gnutls_x509_trust_list_add_trust_dir(list,
+ "/data/misc/keychain/cacerts-added/",
+ NULL, GNUTLS_X509_FMT_DER,
+ tl_flags, tl_vflags);
if (ret >= 0)
r += ret;
# endif
@@ -293,7 +313,8 @@ int osstatus_error(status)
{
CFStringRef err_str = SecCopyErrorMessageString(status, NULL);
_gnutls_debug_log("Error loading system root certificates: %s\n",
- CFStringGetCStringPtr(err_str, kCFStringEncodingUTF8));
+ CFStringGetCStringPtr(err_str,
+ kCFStringEncodingUTF8));
CFRelease(err_str);
return GNUTLS_E_FILE_ERROR;
}
@@ -302,12 +323,13 @@ static
int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
unsigned int tl_vflags)
{
- int r=0;
+ int r = 0;
SecTrustSettingsDomain domain[] = { kSecTrustSettingsDomainUser,
- kSecTrustSettingsDomainAdmin,
- kSecTrustSettingsDomainSystem };
- for (size_t d=0; d<sizeof(domain)/sizeof(*domain); d++) {
+ kSecTrustSettingsDomainAdmin,
+ kSecTrustSettingsDomainSystem
+ };
+ for (size_t d = 0; d < sizeof(domain) / sizeof(*domain); d++) {
CFArrayRef certs = NULL;
OSStatus status = SecTrustSettingsCopyCertificates(domain[d],
&certs);
@@ -317,9 +339,9 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
return osstatus_error(status);
int cert_count = CFArrayGetCount(certs);
- for (int i=0; i<cert_count; i++) {
+ for (int i = 0; i < cert_count; i++) {
SecCertificateRef cert =
- (void*)CFArrayGetValueAtIndex(certs, i);
+ (void *)CFArrayGetValueAtIndex(certs, i);
CFDataRef der;
status = SecItemExport(cert, kSecFormatX509Cert, 0,
NULL, &der);
@@ -330,32 +352,34 @@ int add_system_trust(gnutls_x509_trust_list_t list, unsigned int tl_flags,
}
if (gnutls_x509_trust_list_add_trust_mem(list,
- &(gnutls_datum_t) {
- .data = (void*)CFDataGetBytePtr(der),
- .size = CFDataGetLength(der),
- },
- NULL,
- GNUTLS_X509_FMT_DER,
- tl_flags,
- tl_vflags) > 0)
+ &
+ (gnutls_datum_t)
+ {
+ .data =
+ (void *)
+ CFDataGetBytePtr(der),.size = CFDataGetLength(der),}, NULL, GNUTLS_X509_FMT_DER, tl_flags, tl_vflags) > 0)
r++;
CFRelease(der);
}
CFRelease(certs);
}
-#ifdef DEFAULT_BLOCKLIST_FILE
- ret = gnutls_x509_trust_list_remove_trust_file(list, DEFAULT_BLOCKLIST_FILE, GNUTLS_X509_FMT_PEM);
+# ifdef DEFAULT_BLOCKLIST_FILE
+ ret =
+ gnutls_x509_trust_list_remove_trust_file(list,
+ DEFAULT_BLOCKLIST_FILE,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
- _gnutls_debug_log("Could not load blocklist file '%s'\n", DEFAULT_BLOCKLIST_FILE);
+ _gnutls_debug_log("Could not load blocklist file '%s'\n",
+ DEFAULT_BLOCKLIST_FILE);
}
-#endif
+# endif
return r;
}
#else
-#define add_system_trust(x,y,z) GNUTLS_E_UNIMPLEMENTED_FEATURE
+# define add_system_trust(x,y,z) GNUTLS_E_UNIMPLEMENTED_FEATURE
#endif
@@ -380,6 +404,6 @@ gnutls_x509_trust_list_add_system_trust(gnutls_x509_trust_list_t list,
unsigned int tl_flags,
unsigned int tl_vflags)
{
- return add_system_trust(list, tl_flags|GNUTLS_TL_NO_DUPLICATES, tl_vflags);
+ return add_system_trust(list, tl_flags | GNUTLS_TL_NO_DUPLICATES,
+ tl_vflags);
}
-
diff --git a/lib/system/fastopen.c b/lib/system/fastopen.c
index a904e37949..e60abf4aa5 100644
--- a/lib/system/fastopen.c
+++ b/lib/system/fastopen.c
@@ -26,7 +26,7 @@
#include "errors.h"
#include <sys/socket.h>
-#include <netinet/in.h> /* IPPROTO_TCP */
+#include <netinet/in.h> /* IPPROTO_TCP */
#include <errno.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -63,8 +63,8 @@ tfo_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt)
if (unlikely(p->connect_addrlen != 0)) {
int ret;
- ret = connect(fd, (struct sockaddr*)&p->connect_addr,
- p->connect_addrlen);
+ ret = connect(fd, (struct sockaddr *)&p->connect_addr,
+ p->connect_addrlen);
if (ret == -1 && (errno == EINPROGRESS)) {
gnutls_assert();
errno = EAGAIN;
@@ -80,7 +80,7 @@ tfo_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt)
return system_writev(GNUTLS_INT_TO_POINTER(fd), iovec, iovec_cnt);
}
-#else /* sendmsg */
+#else /* sendmsg */
static ssize_t
tfo_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt)
{
@@ -100,8 +100,10 @@ tfo_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt)
if (!p->connect_only) {
int on = 1;
- if (setsockopt(fd, IPPROTO_TCP, TCP_FASTOPEN, &on, sizeof(on)) == -1)
- _gnutls_debug_log("Failed to set socket option FASTOPEN\n");
+ if (setsockopt(fd, IPPROTO_TCP, TCP_FASTOPEN, &on, sizeof(on))
+ == -1)
+ _gnutls_debug_log
+ ("Failed to set socket option FASTOPEN\n");
hdr.msg_name = &p->connect_addr;
hdr.msg_namelen = p->connect_addrlen;
@@ -111,17 +113,20 @@ tfo_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt)
if (ret < 0) {
if (errno == EINPROGRESS) {
gnutls_assert();
- errno = EAGAIN; // GnuTLS does not handle EINPROGRESS
+ errno = EAGAIN; // GnuTLS does not handle EINPROGRESS
} else if (errno == EOPNOTSUPP) {
// fallback from fastopen, e.g. when fastopen is disabled in system
- _gnutls_debug_log("Fallback from TCP Fast Open... TFO is not enabled at system level\n");
+ _gnutls_debug_log
+ ("Fallback from TCP Fast Open... TFO is not enabled at system level\n");
p->connect_only = 1;
goto connect_only;
}
}
} else {
connect_only:
- ret = connect(fd, (struct sockaddr*)&p->connect_addr, p->connect_addrlen);
+ ret =
+ connect(fd, (struct sockaddr *)&p->connect_addr,
+ p->connect_addrlen);
if (errno == ENOTCONN || errno == EINPROGRESS) {
gnutls_assert();
errno = EAGAIN;
@@ -132,14 +137,23 @@ tfo_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt)
}
# elif defined(TCP_FASTOPEN_OSX)
{
- if(__builtin_available(macOS 10.11, iOS 9.0, tvOS 9.0, watchOS 2.0, *)) {
- sa_endpoints_t endpoints = { .sae_dstaddr = (struct sockaddr*)&p->connect_addr, .sae_dstaddrlen = p->connect_addrlen };
-
- ret = connectx(fd, &endpoints, SAE_ASSOCID_ANY, CONNECT_RESUME_ON_READ_WRITE | CONNECT_DATA_IDEMPOTENT, NULL, 0, NULL, NULL);
- }
- else
- {
- ret = connect(fd, (struct sockaddr*)&p->connect_addr, p->connect_addrlen);
+ if (__builtin_available
+ (macOS 10.11, iOS 9.0, tvOS 9.0, watchOS 2.0, *)) {
+ sa_endpoints_t endpoints = {.sae_dstaddr =
+ (struct sockaddr *)&p->
+ connect_addr,.sae_dstaddrlen =
+ p->connect_addrlen
+ };
+
+ ret =
+ connectx(fd, &endpoints, SAE_ASSOCID_ANY,
+ CONNECT_RESUME_ON_READ_WRITE |
+ CONNECT_DATA_IDEMPOTENT, NULL, 0, NULL,
+ NULL);
+ } else {
+ ret =
+ connect(fd, (struct sockaddr *)&p->connect_addr,
+ p->connect_addrlen);
}
if (errno == ENOTCONN || errno == EINPROGRESS) {
gnutls_assert();
@@ -147,7 +161,9 @@ tfo_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt)
}
}
# else
- ret = connect(fd, (struct sockaddr*)&p->connect_addr, p->connect_addrlen);
+ ret =
+ connect(fd, (struct sockaddr *)&p->connect_addr,
+ p->connect_addrlen);
if (errno == ENOTCONN || errno == EINPROGRESS) {
gnutls_assert();
errno = EAGAIN;
@@ -161,14 +177,15 @@ tfo_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt)
return ret;
}
-#endif /* sendmsg */
+#endif /* sendmsg */
static
int tfo_recv_timeout(gnutls_transport_ptr_t ptr, unsigned int ms)
{
tfo_st *p = ptr;
- return gnutls_system_recv_timeout((gnutls_transport_ptr_t)(long)p->fd, ms);
+ return gnutls_system_recv_timeout((gnutls_transport_ptr_t) (long)p->fd,
+ ms);
}
static ssize_t
@@ -213,10 +230,11 @@ tfo_read(gnutls_transport_ptr_t ptr, void *data, size_t data_size)
**/
void
gnutls_transport_set_fastopen(gnutls_session_t session,
- int fd, struct sockaddr *connect_addr, socklen_t connect_addrlen,
- unsigned int flags)
+ int fd, struct sockaddr *connect_addr,
+ socklen_t connect_addrlen, unsigned int flags)
{
- if (connect_addrlen > (socklen_t)sizeof(session->internals.tfo.connect_addr)) {
+ if (connect_addrlen >
+ (socklen_t) sizeof(session->internals.tfo.connect_addr)) {
gnutls_assert();
return;
}
@@ -226,7 +244,8 @@ gnutls_transport_set_fastopen(gnutls_session_t session,
return;
}
- memcpy(&session->internals.tfo.connect_addr, connect_addr, connect_addrlen);
+ memcpy(&session->internals.tfo.connect_addr, connect_addr,
+ connect_addrlen);
session->internals.tfo.connect_addrlen = connect_addrlen;
session->internals.tfo.fd = fd;
@@ -242,4 +261,3 @@ gnutls_transport_set_fastopen(gnutls_session_t session,
gnutls_transport_set_vec_push_function(session, tfo_writev);
}
-
diff --git a/lib/system/keys-dummy.c b/lib/system/keys-dummy.c
index bd3fba47d4..d2fb5910c4 100644
--- a/lib/system/keys-dummy.c
+++ b/lib/system/keys-dummy.c
@@ -34,13 +34,12 @@ void gnutls_system_key_iter_deinit(gnutls_system_key_iter_t iter)
}
int
-gnutls_system_key_iter_get_info(gnutls_system_key_iter_t *iter,
+gnutls_system_key_iter_get_info(gnutls_system_key_iter_t * iter,
unsigned cert_type,
char **cert_url,
char **key_url,
char **label,
- gnutls_datum_t *der,
- unsigned int flags)
+ gnutls_datum_t * der, unsigned int flags)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
@@ -50,21 +49,19 @@ int gnutls_system_key_delete(const char *cert_url, const char *key_url)
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-int gnutls_system_key_add_x509(gnutls_x509_crt_t crt, gnutls_x509_privkey_t privkey,
- const char *label, char **cert_url, char **key_url)
+int gnutls_system_key_add_x509(gnutls_x509_crt_t crt,
+ gnutls_x509_privkey_t privkey, const char *label,
+ char **cert_url, char **key_url)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-int
-_gnutls_privkey_import_system_url(gnutls_privkey_t pkey,
- const char *url)
+int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
-int
-_gnutls_x509_crt_import_system_url(gnutls_x509_crt_t crt, const char *url)
+int _gnutls_x509_crt_import_system_url(gnutls_x509_crt_t crt, const char *url)
{
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
diff --git a/lib/system/keys-win.c b/lib/system/keys-win.c
index a0fffe249e..27152558ef 100644
--- a/lib/system/keys-win.c
+++ b/lib/system/keys-win.c
@@ -22,8 +22,8 @@
// Before including any Windows header we need to set _WIN32_WINNT to Vista
// (or higher) so that the NCRYPT stuff can be used.
#if _WIN32_WINNT < 0x600
-#undef _WIN32_WINNT
-#define _WIN32_WINNT 0x600
+# undef _WIN32_WINNT
+# define _WIN32_WINNT 0x600
#endif
#include <config.h>
@@ -39,7 +39,7 @@
#include <urls.h>
#if !defined(_WIN32)
-#error should not be included
+# error should not be included
#endif
#include <wincrypt.h>
@@ -53,17 +53,17 @@
# include <ncrypt.h>
# else
/* mingw.org's MinGW */
-# include <security.h>
-# define BCRYPT_PAD_PKCS1 0x00000002
-# define BCRYPT_RSA_ALGORITHM L"RSA"
-# define BCRYPT_DSA_ALGORITHM L"DSA"
-# define BCRYPT_SHA1_ALGORITHM L"SHA1"
-# define BCRYPT_SHA256_ALGORITHM L"SHA256"
-# define BCRYPT_SHA384_ALGORITHM L"SHA384"
-# define BCRYPT_SHA512_ALGORITHM L"SHA512"
-# define BCRYPT_ECDSA_P256_ALGORITHM L"ECDSA_P256"
-# define BCRYPT_ECDSA_P384_ALGORITHM L"ECDSA_P384"
-# define BCRYPT_ECDSA_P521_ALGORITHM L"ECDSA_P521"
+# include <security.h>
+# define BCRYPT_PAD_PKCS1 0x00000002
+# define BCRYPT_RSA_ALGORITHM L"RSA"
+# define BCRYPT_DSA_ALGORITHM L"DSA"
+# define BCRYPT_SHA1_ALGORITHM L"SHA1"
+# define BCRYPT_SHA256_ALGORITHM L"SHA256"
+# define BCRYPT_SHA384_ALGORITHM L"SHA384"
+# define BCRYPT_SHA512_ALGORITHM L"SHA512"
+# define BCRYPT_ECDSA_P256_ALGORITHM L"ECDSA_P256"
+# define BCRYPT_ECDSA_P384_ALGORITHM L"ECDSA_P384"
+# define BCRYPT_ECDSA_P521_ALGORITHM L"ECDSA_P521"
typedef ULONG_PTR NCRYPT_HANDLE;
typedef ULONG_PTR NCRYPT_PROV_HANDLE;
typedef ULONG_PTR NCRYPT_KEY_HANDLE;
@@ -71,31 +71,31 @@ typedef struct _BCRYPT_PKCS1_PADDING_INFO {
LPCWSTR pszAlgId;
} BCRYPT_PKCS1_PADDING_INFO;
# endif
-#else /* non-mingw */
+#else /* non-mingw */
# include <ncrypt.h>
#endif
// MinGW headers may not have these defines
#ifndef NCRYPT_SHA1_ALGORITHM
-#define NCRYPT_SHA1_ALGORITHM BCRYPT_SHA1_ALGORITHM
+# define NCRYPT_SHA1_ALGORITHM BCRYPT_SHA1_ALGORITHM
#endif
#ifndef NCRYPT_SHA256_ALGORITHM
-#define NCRYPT_SHA256_ALGORITHM BCRYPT_SHA256_ALGORITHM
+# define NCRYPT_SHA256_ALGORITHM BCRYPT_SHA256_ALGORITHM
#endif
#ifndef NCRYPT_SHA384_ALGORITHM
-#define NCRYPT_SHA384_ALGORITHM BCRYPT_SHA384_ALGORITHM
+# define NCRYPT_SHA384_ALGORITHM BCRYPT_SHA384_ALGORITHM
#endif
#ifndef NCRYPT_SHA512_ALGORITHM
-#define NCRYPT_SHA512_ALGORITHM BCRYPT_SHA512_ALGORITHM
+# define NCRYPT_SHA512_ALGORITHM BCRYPT_SHA512_ALGORITHM
#endif
#ifndef NCRYPT_PAD_PKCS1_FLAG
-#define NCRYPT_PAD_PKCS1_FLAG 2
+# define NCRYPT_PAD_PKCS1_FLAG 2
#endif
#ifndef NCRYPT_ALGORITHM_PROPERTY
-#define NCRYPT_ALGORITHM_PROPERTY L"Algorithm Name"
+# define NCRYPT_ALGORITHM_PROPERTY L"Algorithm Name"
#endif
#ifndef CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID
-#define CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID 99
+# define CERT_NCRYPT_KEY_HANDLE_TRANSFER_PROP_ID 99
#endif
#define MAX_WID_SIZE 48
@@ -177,13 +177,13 @@ static NCryptFreeObjectFunc pNCryptFreeObject;
static NCryptDecryptFunc pNCryptDecrypt;
static NCryptSignHashFunc pNCryptSignHash;
#else
-#define pNCryptDeleteKey NCryptDeleteKey
-#define pNCryptOpenStorageProvider NCryptOpenStorageProvider
-#define pNCryptOpenKey NCryptOpenKey
-#define pNCryptGetProperty NCryptGetProperty
-#define pNCryptFreeObject NCryptFreeObject
-#define pNCryptDecrypt NCryptDecrypt
-#define pNCryptSignHash NCryptSignHash
+# define pNCryptDeleteKey NCryptDeleteKey
+# define pNCryptOpenStorageProvider NCryptOpenStorageProvider
+# define pNCryptOpenKey NCryptOpenKey
+# define pNCryptGetProperty NCryptGetProperty
+# define pNCryptFreeObject NCryptFreeObject
+# define pNCryptDecrypt NCryptDecrypt
+# define pNCryptSignHash NCryptSignHash
#endif
static unsigned ncrypt_init = 0;
@@ -193,7 +193,7 @@ static HMODULE ncrypt_lib;
#define WIN_URL_SIZE 11
static int
-get_id(const char *url, uint8_t * bin, size_t * bin_size, unsigned cert)
+get_id(const char *url, uint8_t * bin, size_t *bin_size, unsigned cert)
{
int ret;
unsigned url_size = strlen(url);
@@ -300,11 +300,11 @@ int capi_sign(gnutls_privkey_t key, void *userdata,
case GNUTLS_DIG_SHA1:
Algid = CALG_SHA1;
break;
-#ifdef NCRYPT_SHA224_ALGORITHM
+# ifdef NCRYPT_SHA224_ALGORITHM
case GNUTLS_DIG_SHA224:
Algid = CALG_SHA_224;
break;
-#endif
+# endif
case GNUTLS_DIG_SHA256:
Algid = CALG_SHA_256;
break;
@@ -437,26 +437,23 @@ static int capi_info(gnutls_privkey_t key, unsigned int flags, void *userdata)
return -1;
}
-static
-int privkey_import_capi(gnutls_privkey_t pkey, const char *url,
- priv_st *priv, CRYPT_KEY_PROV_INFO *kpi)
+static
+int privkey_import_capi(gnutls_privkey_t pkey, const char *url,
+ priv_st * priv, CRYPT_KEY_PROV_INFO * kpi)
{
HCRYPTPROV hCryptProv = 0;
int ret, enc_too = 0;
DWORD i, dwErrCode = 0;
if (CryptAcquireContextW(&hCryptProv,
- kpi->pwszContainerName,
- kpi->pwszProvName,
- kpi->dwProvType, kpi->dwFlags)) {
+ kpi->pwszContainerName,
+ kpi->pwszProvName,
+ kpi->dwProvType, kpi->dwFlags)) {
for (i = 0; i < kpi->cProvParam; i++)
if (!CryptSetProvParam(hCryptProv,
- kpi->rgProvParam[i].
- dwParam,
- kpi->rgProvParam[i].
- pbData,
- kpi->rgProvParam[i].
- dwFlags)) {
+ kpi->rgProvParam[i].dwParam,
+ kpi->rgProvParam[i].pbData,
+ kpi->rgProvParam[i].dwFlags)) {
dwErrCode = GetLastError();
break;
};
@@ -466,11 +463,9 @@ int privkey_import_capi(gnutls_privkey_t pkey, const char *url,
if (ERROR_SUCCESS != dwErrCode) {
_gnutls_debug_log
- ("error in getting cryptprov: %d from %s\n",
- (int)GetLastError(), url);
- ret =
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ ("error in getting cryptprov: %d from %s\n",
+ (int)GetLastError(), url);
+ ret = gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
goto cleanup;
}
@@ -480,8 +475,7 @@ int privkey_import_capi(gnutls_privkey_t pkey, const char *url,
DWORD len = sizeof(buf);
if (CryptGetProvParam
- (hCryptProv, PP_ENUMALGS_EX, buf, &len,
- CRYPT_FIRST)) {
+ (hCryptProv, PP_ENUMALGS_EX, buf, &len, CRYPT_FIRST)) {
DWORD hash = 0;
do {
switch (pAlgo->aiAlgid) {
@@ -491,10 +485,9 @@ int privkey_import_capi(gnutls_privkey_t pkey, const char *url,
break;
case CALG_DSS_SIGN:
priv->pk =
- priv->pk ==
- GNUTLS_PK_RSA ?
- GNUTLS_PK_RSA :
- GNUTLS_PK_DSA;
+ priv->pk ==
+ GNUTLS_PK_RSA ?
+ GNUTLS_PK_RSA : GNUTLS_PK_DSA;
break;
case CALG_SHA1:
hash = 1;
@@ -508,16 +501,16 @@ int privkey_import_capi(gnutls_privkey_t pkey, const char *url,
len = sizeof(buf); // reset the buffer size
} while (CryptGetProvParam
- (hCryptProv, PP_ENUMALGS_EX, buf, &len,
- CRYPT_NEXT));
+ (hCryptProv, PP_ENUMALGS_EX, buf, &len,
+ CRYPT_NEXT));
if (priv->pk == GNUTLS_PK_DSA)
priv->sign_algo = GNUTLS_SIGN_DSA_SHA1;
else
priv->sign_algo =
- (hash >
- 1) ? GNUTLS_SIGN_RSA_SHA256 :
- GNUTLS_SIGN_RSA_SHA1;
+ (hash >
+ 1) ? GNUTLS_SIGN_RSA_SHA256 :
+ GNUTLS_SIGN_RSA_SHA1;
}
}
@@ -525,9 +518,9 @@ int privkey_import_capi(gnutls_privkey_t pkey, const char *url,
priv->dwKeySpec = kpi->dwKeySpec;
ret = gnutls_privkey_import_ext3(pkey, priv, capi_sign,
- (enc_too !=
- 0) ? capi_decrypt : NULL,
- capi_deinit, capi_info, 0);
+ (enc_too !=
+ 0) ? capi_decrypt : NULL,
+ capi_deinit, capi_info, 0);
cleanup:
if (ret < 0) {
if (hCryptProv != 0)
@@ -535,7 +528,7 @@ int privkey_import_capi(gnutls_privkey_t pkey, const char *url,
}
return ret;
}
-#endif /* WINAPI_PARTITION_DESKTOP */
+#endif /* WINAPI_PARTITION_DESKTOP */
static
int cng_sign(gnutls_privkey_t key, void *userdata,
@@ -698,8 +691,9 @@ static int cng_info(gnutls_privkey_t key, unsigned int flags, void *userdata)
}
static
-int privkey_import_ncrypt(gnutls_privkey_t pkey, const char *url,
- priv_st *priv, CRYPT_KEY_PROV_INFO *kpi, NCRYPT_PROV_HANDLE *sctx)
+int privkey_import_ncrypt(gnutls_privkey_t pkey, const char *url,
+ priv_st * priv, CRYPT_KEY_PROV_INFO * kpi,
+ NCRYPT_PROV_HANDLE * sctx)
{
SECURITY_STATUS r;
NCRYPT_KEY_HANDLE nc = 0;
@@ -709,19 +703,15 @@ int privkey_import_ncrypt(gnutls_privkey_t pkey, const char *url,
r = pNCryptOpenKey(*sctx, &nc, kpi->pwszContainerName, 0, 0);
if (FAILED(r)) {
- ret =
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ ret = gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
goto cleanup;
}
r = pNCryptGetProperty(nc, NCRYPT_ALGORITHM_PROPERTY,
- (BYTE *) algo_str, sizeof(algo_str),
- &algo_str_size, 0);
+ (BYTE *) algo_str, sizeof(algo_str),
+ &algo_str_size, 0);
if (FAILED(r)) {
- ret =
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ ret = gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
goto cleanup;
}
@@ -742,17 +732,16 @@ int privkey_import_ncrypt(gnutls_privkey_t pkey, const char *url,
priv->pk = GNUTLS_PK_EC;
priv->sign_algo = GNUTLS_SIGN_ECDSA_SHA512;
} else {
- _gnutls_debug_log("unknown key algorithm: %ls\n",
- algo_str);
+ _gnutls_debug_log("unknown key algorithm: %ls\n", algo_str);
ret = gnutls_assert_val(GNUTLS_E_UNKNOWN_PK_ALGORITHM);
goto cleanup;
}
priv->nc = nc;
ret = gnutls_privkey_import_ext3(pkey, priv, cng_sign,
- (enc_too !=
- 0) ? cng_decrypt : NULL,
- cng_deinit, cng_info, 0);
+ (enc_too !=
+ 0) ? cng_decrypt : NULL,
+ cng_deinit, cng_info, 0);
cleanup:
if (ret < 0) {
if (nc != 0)
@@ -778,8 +767,8 @@ int privkey_import_ncrypt(gnutls_privkey_t pkey, const char *url,
int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url)
{
#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && _WIN32_WINNT < 0x0A00 /*win10 */
- return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
-#else /* WINAPI_PARTITION_DESKTOP || _WIN32_WINNT_WIN10 */
+ return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
+#else /* WINAPI_PARTITION_DESKTOP || _WIN32_WINNT_WIN10 */
uint8_t id[MAX_WID_SIZE];
HCERTSTORE store = NULL;
size_t id_size;
@@ -810,7 +799,9 @@ int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url)
blob.cbData = id_size;
blob.pbData = id;
- store = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_CURRENT_USER, L"MY");
+ store =
+ CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0,
+ CERT_SYSTEM_STORE_CURRENT_USER, L"MY");
if (store == NULL) {
gnutls_assert();
ret = GNUTLS_E_FILE_ERROR;
@@ -867,10 +858,10 @@ int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url)
goto cleanup;
}
} else {
-#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+# if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* CAPI is not supported in UWP */
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
-#else /* WINAPI_PARTITION_DESKTOP */
+# else /* WINAPI_PARTITION_DESKTOP */
/* this should be CAPI */
_gnutls_debug_log
("error in opening CNG keystore: %x from %ls\n", (int)r,
@@ -881,7 +872,7 @@ int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url)
gnutls_assert();
goto cleanup;
}
-#endif /* WINAPI_PARTITION_DESKTOP */
+# endif /* WINAPI_PARTITION_DESKTOP */
}
ret = 0;
cleanup:
@@ -898,7 +889,7 @@ int _gnutls_privkey_import_system_url(gnutls_privkey_t pkey, const char *url)
CertCloseStore(store, 0);
return ret;
-#endif /* WINAPI_PARTITION_DESKTOP || _WIN32_WINNT_WIN10 */
+#endif /* WINAPI_PARTITION_DESKTOP || _WIN32_WINNT_WIN10 */
}
int _gnutls_x509_crt_import_system_url(gnutls_x509_crt_t crt, const char *url)
@@ -922,7 +913,9 @@ int _gnutls_x509_crt_import_system_url(gnutls_x509_crt_t crt, const char *url)
blob.cbData = id_size;
blob.pbData = id;
- store = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_CURRENT_USER, L"MY");
+ store =
+ CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0,
+ CERT_SYSTEM_STORE_CURRENT_USER, L"MY");
if (store == NULL) {
gnutls_assert();
ret = GNUTLS_E_FILE_ERROR;
@@ -1171,7 +1164,9 @@ gnutls_system_key_iter_get_info(gnutls_system_key_iter_t * iter,
if (*iter == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- (*iter)->store = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_CURRENT_USER, L"MY");
+ (*iter)->store =
+ CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0,
+ CERT_SYSTEM_STORE_CURRENT_USER, L"MY");
if ((*iter)->store == NULL) {
gnutls_free(*iter);
*iter = NULL;
@@ -1244,7 +1239,9 @@ int gnutls_system_key_delete(const char *cert_url, const char *key_url)
blob.cbData = id_size;
blob.pbData = id;
- store = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_CURRENT_USER, L"MY");
+ store =
+ CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0,
+ CERT_SYSTEM_STORE_CURRENT_USER, L"MY");
if (store != NULL) {
do {
cert = CertFindCertificateInStore(store,
@@ -1528,8 +1525,8 @@ int _gnutls_system_key_init(void)
FreeLibrary(ncrypt_lib);
return ret;
#else
- ncrypt_init = 1;
- return 0;
+ ncrypt_init = 1;
+ return 0;
#endif
}
diff --git a/lib/system/ktls.c b/lib/system/ktls.c
index 792d09ccfa..fd57a9c309 100644
--- a/lib/system/ktls.c
+++ b/lib/system/ktls.c
@@ -25,14 +25,14 @@
#ifdef ENABLE_KTLS
-#include <linux/tls.h>
-#include <record.h>
-#include <sys/socket.h>
-#include <netinet/tcp.h>
-#include <unistd.h>
-#include <errno.h>
-#include "ext/session_ticket.h"
-#include <sys/sendfile.h>
+# include <linux/tls.h>
+# include <record.h>
+# include <sys/socket.h>
+# include <netinet/tcp.h>
+# include <unistd.h>
+# include <errno.h>
+# include "ext/session_ticket.h"
+# include <sys/sendfile.h>
/**
* gnutls_transport_is_ktls_enabled:
@@ -45,8 +45,9 @@
* Since: 3.7.3
**/
gnutls_transport_ktls_enable_flags_t
-gnutls_transport_is_ktls_enabled(gnutls_session_t session){
- if (unlikely(!session->internals.initial_negotiation_completed)){
+gnutls_transport_is_ktls_enabled(gnutls_session_t session)
+{
+ if (unlikely(!session->internals.initial_negotiation_completed)) {
_gnutls_debug_log("Initial negotiation is not yet complete\n");
return 0;
}
@@ -60,27 +61,30 @@ void _gnutls_ktls_enable(gnutls_session_t session)
gnutls_transport_get_int2(session, &sockin, &sockout);
- if (setsockopt(sockin, SOL_TCP, TCP_ULP, "tls", sizeof ("tls")) == 0) {
+ if (setsockopt(sockin, SOL_TCP, TCP_ULP, "tls", sizeof("tls")) == 0) {
session->internals.ktls_enabled |= GNUTLS_KTLS_RECV;
if (sockin == sockout) {
session->internals.ktls_enabled |= GNUTLS_KTLS_SEND;
}
} else {
- _gnutls_record_log("Unable to set TCP_ULP for read socket: %d\n",
- errno);
+ _gnutls_record_log
+ ("Unable to set TCP_ULP for read socket: %d\n", errno);
}
if (sockin != sockout) {
- if (setsockopt(sockout, SOL_TCP, TCP_ULP, "tls", sizeof ("tls")) == 0) {
+ if (setsockopt(sockout, SOL_TCP, TCP_ULP, "tls", sizeof("tls"))
+ == 0) {
session->internals.ktls_enabled |= GNUTLS_KTLS_SEND;
} else {
- _gnutls_record_log("Unable to set TCP_ULP for write socket: %d\n",
- errno);
+ _gnutls_record_log
+ ("Unable to set TCP_ULP for write socket: %d\n",
+ errno);
}
}
}
-int _gnutls_ktls_set_keys(gnutls_session_t session, gnutls_transport_ktls_enable_flags_t in)
+int _gnutls_ktls_set_keys(gnutls_session_t session,
+ gnutls_transport_ktls_enable_flags_t in)
{
gnutls_cipher_algorithm_t cipher = gnutls_cipher_get(session);
gnutls_datum_t mac_key;
@@ -96,340 +100,445 @@ int _gnutls_ktls_set_keys(gnutls_session_t session, gnutls_transport_ktls_enable
*/
int version = gnutls_protocol_get_version(session);
if ((version != GNUTLS_TLS1_3 && version != GNUTLS_TLS1_2) ||
- (gnutls_cipher_get(session) != GNUTLS_CIPHER_AES_128_GCM &&
- gnutls_cipher_get(session) != GNUTLS_CIPHER_AES_256_GCM &&
- gnutls_cipher_get(session) != GNUTLS_CIPHER_AES_128_CCM &&
- gnutls_cipher_get(session) != GNUTLS_CIPHER_CHACHA20_POLY1305)) {
- return GNUTLS_E_UNIMPLEMENTED_FEATURE;
+ (gnutls_cipher_get(session) != GNUTLS_CIPHER_AES_128_GCM &&
+ gnutls_cipher_get(session) != GNUTLS_CIPHER_AES_256_GCM &&
+ gnutls_cipher_get(session) != GNUTLS_CIPHER_AES_128_CCM &&
+ gnutls_cipher_get(session) != GNUTLS_CIPHER_CHACHA20_POLY1305)) {
+ return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
ret = gnutls_record_get_state(session, 1, &mac_key, &iv, &cipher_key,
- seq_number);
+ seq_number);
if (ret < 0) {
return ret;
}
in &= session->internals.ktls_enabled;
- if(in & GNUTLS_KTLS_RECV){
+ if (in & GNUTLS_KTLS_RECV) {
switch (cipher) {
- case GNUTLS_CIPHER_AES_128_GCM:
+ case GNUTLS_CIPHER_AES_128_GCM:
{
- struct tls12_crypto_info_aes_gcm_128 crypto_info;
- memset(&crypto_info, 0, sizeof (crypto_info));
+ struct tls12_crypto_info_aes_gcm_128
+ crypto_info;
+ memset(&crypto_info, 0, sizeof(crypto_info));
- crypto_info.info.cipher_type = TLS_CIPHER_AES_GCM_128;
- assert(cipher_key.size == TLS_CIPHER_AES_GCM_128_KEY_SIZE);
+ crypto_info.info.cipher_type =
+ TLS_CIPHER_AES_GCM_128;
+ assert(cipher_key.size ==
+ TLS_CIPHER_AES_GCM_128_KEY_SIZE);
/* for TLS 1.2 IV is generated in kernel */
if (version == GNUTLS_TLS1_2) {
- crypto_info.info.version = TLS_1_2_VERSION;
- memcpy(crypto_info.iv, seq_number, TLS_CIPHER_AES_GCM_128_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_2_VERSION;
+ memcpy(crypto_info.iv, seq_number,
+ TLS_CIPHER_AES_GCM_128_IV_SIZE);
} else {
- crypto_info.info.version = TLS_1_3_VERSION;
- assert(iv.size == TLS_CIPHER_AES_GCM_128_SALT_SIZE
- + TLS_CIPHER_AES_GCM_128_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_3_VERSION;
+ assert(iv.size ==
+ TLS_CIPHER_AES_GCM_128_SALT_SIZE
+ +
+ TLS_CIPHER_AES_GCM_128_IV_SIZE);
memcpy(crypto_info.iv, iv.data +
- TLS_CIPHER_AES_GCM_128_SALT_SIZE,
- TLS_CIPHER_AES_GCM_128_IV_SIZE);
+ TLS_CIPHER_AES_GCM_128_SALT_SIZE,
+ TLS_CIPHER_AES_GCM_128_IV_SIZE);
}
memcpy(crypto_info.salt, iv.data,
- TLS_CIPHER_AES_GCM_128_SALT_SIZE);
+ TLS_CIPHER_AES_GCM_128_SALT_SIZE);
memcpy(crypto_info.rec_seq, seq_number,
- TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE);
+ TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE);
memcpy(crypto_info.key, cipher_key.data,
- TLS_CIPHER_AES_GCM_128_KEY_SIZE);
-
- if (setsockopt (sockin, SOL_TLS, TLS_RX,
- &crypto_info, sizeof (crypto_info))) {
- session->internals.ktls_enabled &= ~GNUTLS_KTLS_RECV;
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ TLS_CIPHER_AES_GCM_128_KEY_SIZE);
+
+ if (setsockopt(sockin, SOL_TLS, TLS_RX,
+ &crypto_info,
+ sizeof(crypto_info))) {
+ session->internals.ktls_enabled &=
+ ~GNUTLS_KTLS_RECV;
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
}
}
break;
- case GNUTLS_CIPHER_AES_256_GCM:
+ case GNUTLS_CIPHER_AES_256_GCM:
{
- struct tls12_crypto_info_aes_gcm_256 crypto_info;
- memset(&crypto_info, 0, sizeof (crypto_info));
+ struct tls12_crypto_info_aes_gcm_256
+ crypto_info;
+ memset(&crypto_info, 0, sizeof(crypto_info));
- crypto_info.info.cipher_type = TLS_CIPHER_AES_GCM_256;
- assert (cipher_key.size == TLS_CIPHER_AES_GCM_256_KEY_SIZE);
+ crypto_info.info.cipher_type =
+ TLS_CIPHER_AES_GCM_256;
+ assert(cipher_key.size ==
+ TLS_CIPHER_AES_GCM_256_KEY_SIZE);
/* for TLS 1.2 IV is generated in kernel */
if (version == GNUTLS_TLS1_2) {
- crypto_info.info.version = TLS_1_2_VERSION;
- memcpy(crypto_info.iv, seq_number, TLS_CIPHER_AES_GCM_256_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_2_VERSION;
+ memcpy(crypto_info.iv, seq_number,
+ TLS_CIPHER_AES_GCM_256_IV_SIZE);
} else {
- crypto_info.info.version = TLS_1_3_VERSION;
- assert (iv.size == TLS_CIPHER_AES_GCM_256_SALT_SIZE
- + TLS_CIPHER_AES_GCM_256_IV_SIZE);
-
- memcpy(crypto_info.iv, iv.data + TLS_CIPHER_AES_GCM_256_SALT_SIZE,
- TLS_CIPHER_AES_GCM_256_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_3_VERSION;
+ assert(iv.size ==
+ TLS_CIPHER_AES_GCM_256_SALT_SIZE
+ +
+ TLS_CIPHER_AES_GCM_256_IV_SIZE);
+
+ memcpy(crypto_info.iv,
+ iv.data +
+ TLS_CIPHER_AES_GCM_256_SALT_SIZE,
+ TLS_CIPHER_AES_GCM_256_IV_SIZE);
}
- memcpy (crypto_info.salt, iv.data,
- TLS_CIPHER_AES_GCM_256_SALT_SIZE);
- memcpy (crypto_info.rec_seq, seq_number,
- TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE);
- memcpy (crypto_info.key, cipher_key.data,
- TLS_CIPHER_AES_GCM_256_KEY_SIZE);
-
- if (setsockopt (sockin, SOL_TLS, TLS_RX,
- &crypto_info, sizeof (crypto_info))) {
- session->internals.ktls_enabled &= ~GNUTLS_KTLS_RECV;
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ memcpy(crypto_info.salt, iv.data,
+ TLS_CIPHER_AES_GCM_256_SALT_SIZE);
+ memcpy(crypto_info.rec_seq, seq_number,
+ TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE);
+ memcpy(crypto_info.key, cipher_key.data,
+ TLS_CIPHER_AES_GCM_256_KEY_SIZE);
+
+ if (setsockopt(sockin, SOL_TLS, TLS_RX,
+ &crypto_info,
+ sizeof(crypto_info))) {
+ session->internals.ktls_enabled &=
+ ~GNUTLS_KTLS_RECV;
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
}
}
break;
- case GNUTLS_CIPHER_AES_128_CCM:
+ case GNUTLS_CIPHER_AES_128_CCM:
{
- struct tls12_crypto_info_aes_ccm_128 crypto_info;
- memset(&crypto_info, 0, sizeof (crypto_info));
+ struct tls12_crypto_info_aes_ccm_128
+ crypto_info;
+ memset(&crypto_info, 0, sizeof(crypto_info));
- crypto_info.info.cipher_type = TLS_CIPHER_AES_CCM_128;
- assert(cipher_key.size == TLS_CIPHER_AES_CCM_128_KEY_SIZE);
+ crypto_info.info.cipher_type =
+ TLS_CIPHER_AES_CCM_128;
+ assert(cipher_key.size ==
+ TLS_CIPHER_AES_CCM_128_KEY_SIZE);
/* for TLS 1.2 IV is generated in kernel */
if (version == GNUTLS_TLS1_2) {
- crypto_info.info.version = TLS_1_2_VERSION;
- memcpy(crypto_info.iv, seq_number, TLS_CIPHER_AES_CCM_128_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_2_VERSION;
+ memcpy(crypto_info.iv, seq_number,
+ TLS_CIPHER_AES_CCM_128_IV_SIZE);
} else {
- crypto_info.info.version = TLS_1_3_VERSION;
- assert(iv.size == TLS_CIPHER_AES_CCM_128_SALT_SIZE
- + TLS_CIPHER_AES_CCM_128_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_3_VERSION;
+ assert(iv.size ==
+ TLS_CIPHER_AES_CCM_128_SALT_SIZE
+ +
+ TLS_CIPHER_AES_CCM_128_IV_SIZE);
memcpy(crypto_info.iv, iv.data +
- TLS_CIPHER_AES_CCM_128_SALT_SIZE,
- TLS_CIPHER_AES_CCM_128_IV_SIZE);
+ TLS_CIPHER_AES_CCM_128_SALT_SIZE,
+ TLS_CIPHER_AES_CCM_128_IV_SIZE);
}
memcpy(crypto_info.salt, iv.data,
- TLS_CIPHER_AES_CCM_128_SALT_SIZE);
+ TLS_CIPHER_AES_CCM_128_SALT_SIZE);
memcpy(crypto_info.rec_seq, seq_number,
- TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE);
+ TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE);
memcpy(crypto_info.key, cipher_key.data,
- TLS_CIPHER_AES_CCM_128_KEY_SIZE);
-
- if (setsockopt (sockin, SOL_TLS, TLS_RX,
- &crypto_info, sizeof (crypto_info))) {
- session->internals.ktls_enabled &= ~GNUTLS_KTLS_RECV;
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ TLS_CIPHER_AES_CCM_128_KEY_SIZE);
+
+ if (setsockopt(sockin, SOL_TLS, TLS_RX,
+ &crypto_info,
+ sizeof(crypto_info))) {
+ session->internals.ktls_enabled &=
+ ~GNUTLS_KTLS_RECV;
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
}
}
break;
- case GNUTLS_CIPHER_CHACHA20_POLY1305:
+ case GNUTLS_CIPHER_CHACHA20_POLY1305:
{
- struct tls12_crypto_info_chacha20_poly1305 crypto_info;
- memset(&crypto_info, 0, sizeof (crypto_info));
+ struct tls12_crypto_info_chacha20_poly1305
+ crypto_info;
+ memset(&crypto_info, 0, sizeof(crypto_info));
- crypto_info.info.cipher_type = TLS_CIPHER_CHACHA20_POLY1305;
- assert(cipher_key.size == TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE);
+ crypto_info.info.cipher_type =
+ TLS_CIPHER_CHACHA20_POLY1305;
+ assert(cipher_key.size ==
+ TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE);
/* for TLS 1.2 IV is generated in kernel */
if (version == GNUTLS_TLS1_2) {
- crypto_info.info.version = TLS_1_2_VERSION;
- memcpy(crypto_info.iv, seq_number, TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_2_VERSION;
+ memcpy(crypto_info.iv, seq_number,
+ TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
} else {
- crypto_info.info.version = TLS_1_3_VERSION;
- assert(iv.size == TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE
- + TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_3_VERSION;
+ assert(iv.size ==
+ TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE
+ +
+ TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
memcpy(crypto_info.iv, iv.data +
- TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE,
- TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
+ TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE,
+ TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
}
memcpy(crypto_info.salt, iv.data,
- TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE);
+ TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE);
memcpy(crypto_info.rec_seq, seq_number,
- TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE);
+ TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE);
memcpy(crypto_info.key, cipher_key.data,
- TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE);
-
- if (setsockopt (sockin, SOL_TLS, TLS_RX,
- &crypto_info, sizeof (crypto_info))) {
- session->internals.ktls_enabled &= ~GNUTLS_KTLS_RECV;
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE);
+
+ if (setsockopt(sockin, SOL_TLS, TLS_RX,
+ &crypto_info,
+ sizeof(crypto_info))) {
+ session->internals.ktls_enabled &=
+ ~GNUTLS_KTLS_RECV;
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
}
}
break;
- default:
- assert(0);
+ default:
+ assert(0);
}
-
}
- ret = gnutls_record_get_state (session, 0, &mac_key, &iv, &cipher_key,
- seq_number);
+ ret = gnutls_record_get_state(session, 0, &mac_key, &iv, &cipher_key,
+ seq_number);
if (ret < 0) {
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
- if(in & GNUTLS_KTLS_SEND){
+ if (in & GNUTLS_KTLS_SEND) {
switch (cipher) {
- case GNUTLS_CIPHER_AES_128_GCM:
+ case GNUTLS_CIPHER_AES_128_GCM:
{
- struct tls12_crypto_info_aes_gcm_128 crypto_info;
- memset(&crypto_info, 0, sizeof (crypto_info));
+ struct tls12_crypto_info_aes_gcm_128
+ crypto_info;
+ memset(&crypto_info, 0, sizeof(crypto_info));
- crypto_info.info.cipher_type = TLS_CIPHER_AES_GCM_128;
+ crypto_info.info.cipher_type =
+ TLS_CIPHER_AES_GCM_128;
- assert (cipher_key.size == TLS_CIPHER_AES_GCM_128_KEY_SIZE);
+ assert(cipher_key.size ==
+ TLS_CIPHER_AES_GCM_128_KEY_SIZE);
/* for TLS 1.2 IV is generated in kernel */
if (version == GNUTLS_TLS1_2) {
- crypto_info.info.version = TLS_1_2_VERSION;
- memcpy(crypto_info.iv, seq_number, TLS_CIPHER_AES_GCM_128_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_2_VERSION;
+ memcpy(crypto_info.iv, seq_number,
+ TLS_CIPHER_AES_GCM_128_IV_SIZE);
} else {
- crypto_info.info.version = TLS_1_3_VERSION;
- assert (iv.size == TLS_CIPHER_AES_GCM_128_SALT_SIZE
- + TLS_CIPHER_AES_GCM_128_IV_SIZE);
-
- memcpy (crypto_info.iv, iv.data + TLS_CIPHER_AES_GCM_128_SALT_SIZE,
- TLS_CIPHER_AES_GCM_128_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_3_VERSION;
+ assert(iv.size ==
+ TLS_CIPHER_AES_GCM_128_SALT_SIZE
+ +
+ TLS_CIPHER_AES_GCM_128_IV_SIZE);
+
+ memcpy(crypto_info.iv,
+ iv.data +
+ TLS_CIPHER_AES_GCM_128_SALT_SIZE,
+ TLS_CIPHER_AES_GCM_128_IV_SIZE);
}
- memcpy (crypto_info.salt, iv.data,
- TLS_CIPHER_AES_GCM_128_SALT_SIZE);
- memcpy (crypto_info.rec_seq, seq_number,
- TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE);
- memcpy (crypto_info.key, cipher_key.data,
- TLS_CIPHER_AES_GCM_128_KEY_SIZE);
-
- if (setsockopt (sockout, SOL_TLS, TLS_TX,
- &crypto_info, sizeof (crypto_info))) {
- session->internals.ktls_enabled &= ~GNUTLS_KTLS_SEND;
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ memcpy(crypto_info.salt, iv.data,
+ TLS_CIPHER_AES_GCM_128_SALT_SIZE);
+ memcpy(crypto_info.rec_seq, seq_number,
+ TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE);
+ memcpy(crypto_info.key, cipher_key.data,
+ TLS_CIPHER_AES_GCM_128_KEY_SIZE);
+
+ if (setsockopt(sockout, SOL_TLS, TLS_TX,
+ &crypto_info,
+ sizeof(crypto_info))) {
+ session->internals.ktls_enabled &=
+ ~GNUTLS_KTLS_SEND;
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
}
}
break;
- case GNUTLS_CIPHER_AES_256_GCM:
+ case GNUTLS_CIPHER_AES_256_GCM:
{
- struct tls12_crypto_info_aes_gcm_256 crypto_info;
- memset(&crypto_info, 0, sizeof (crypto_info));
+ struct tls12_crypto_info_aes_gcm_256
+ crypto_info;
+ memset(&crypto_info, 0, sizeof(crypto_info));
- crypto_info.info.cipher_type = TLS_CIPHER_AES_GCM_256;
- assert (cipher_key.size == TLS_CIPHER_AES_GCM_256_KEY_SIZE);
+ crypto_info.info.cipher_type =
+ TLS_CIPHER_AES_GCM_256;
+ assert(cipher_key.size ==
+ TLS_CIPHER_AES_GCM_256_KEY_SIZE);
/* for TLS 1.2 IV is generated in kernel */
if (version == GNUTLS_TLS1_2) {
- crypto_info.info.version = TLS_1_2_VERSION;
- memcpy(crypto_info.iv, seq_number, TLS_CIPHER_AES_GCM_256_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_2_VERSION;
+ memcpy(crypto_info.iv, seq_number,
+ TLS_CIPHER_AES_GCM_256_IV_SIZE);
} else {
- crypto_info.info.version = TLS_1_3_VERSION;
- assert (iv.size == TLS_CIPHER_AES_GCM_256_SALT_SIZE +
- TLS_CIPHER_AES_GCM_256_IV_SIZE);
-
- memcpy (crypto_info.iv, iv.data + TLS_CIPHER_AES_GCM_256_SALT_SIZE,
- TLS_CIPHER_AES_GCM_256_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_3_VERSION;
+ assert(iv.size ==
+ TLS_CIPHER_AES_GCM_256_SALT_SIZE
+ +
+ TLS_CIPHER_AES_GCM_256_IV_SIZE);
+
+ memcpy(crypto_info.iv,
+ iv.data +
+ TLS_CIPHER_AES_GCM_256_SALT_SIZE,
+ TLS_CIPHER_AES_GCM_256_IV_SIZE);
}
- memcpy (crypto_info.salt, iv.data,
- TLS_CIPHER_AES_GCM_256_SALT_SIZE);
- memcpy (crypto_info.rec_seq, seq_number,
- TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE);
- memcpy (crypto_info.key, cipher_key.data,
- TLS_CIPHER_AES_GCM_256_KEY_SIZE);
-
- if (setsockopt (sockout, SOL_TLS, TLS_TX,
- &crypto_info, sizeof (crypto_info))) {
- session->internals.ktls_enabled &= ~GNUTLS_KTLS_SEND;
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ memcpy(crypto_info.salt, iv.data,
+ TLS_CIPHER_AES_GCM_256_SALT_SIZE);
+ memcpy(crypto_info.rec_seq, seq_number,
+ TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE);
+ memcpy(crypto_info.key, cipher_key.data,
+ TLS_CIPHER_AES_GCM_256_KEY_SIZE);
+
+ if (setsockopt(sockout, SOL_TLS, TLS_TX,
+ &crypto_info,
+ sizeof(crypto_info))) {
+ session->internals.ktls_enabled &=
+ ~GNUTLS_KTLS_SEND;
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
}
}
break;
- case GNUTLS_CIPHER_AES_128_CCM:
+ case GNUTLS_CIPHER_AES_128_CCM:
{
- struct tls12_crypto_info_aes_ccm_128 crypto_info;
- memset(&crypto_info, 0, sizeof (crypto_info));
+ struct tls12_crypto_info_aes_ccm_128
+ crypto_info;
+ memset(&crypto_info, 0, sizeof(crypto_info));
- crypto_info.info.cipher_type = TLS_CIPHER_AES_CCM_128;
- assert (cipher_key.size == TLS_CIPHER_AES_CCM_128_KEY_SIZE);
+ crypto_info.info.cipher_type =
+ TLS_CIPHER_AES_CCM_128;
+ assert(cipher_key.size ==
+ TLS_CIPHER_AES_CCM_128_KEY_SIZE);
/* for TLS 1.2 IV is generated in kernel */
if (version == GNUTLS_TLS1_2) {
- crypto_info.info.version = TLS_1_2_VERSION;
- memcpy(crypto_info.iv, seq_number, TLS_CIPHER_AES_CCM_128_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_2_VERSION;
+ memcpy(crypto_info.iv, seq_number,
+ TLS_CIPHER_AES_CCM_128_IV_SIZE);
} else {
- crypto_info.info.version = TLS_1_3_VERSION;
- assert (iv.size == TLS_CIPHER_AES_CCM_128_SALT_SIZE +
- TLS_CIPHER_AES_CCM_128_IV_SIZE);
-
- memcpy (crypto_info.iv, iv.data + TLS_CIPHER_AES_CCM_128_SALT_SIZE,
- TLS_CIPHER_AES_CCM_128_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_3_VERSION;
+ assert(iv.size ==
+ TLS_CIPHER_AES_CCM_128_SALT_SIZE
+ +
+ TLS_CIPHER_AES_CCM_128_IV_SIZE);
+
+ memcpy(crypto_info.iv,
+ iv.data +
+ TLS_CIPHER_AES_CCM_128_SALT_SIZE,
+ TLS_CIPHER_AES_CCM_128_IV_SIZE);
}
- memcpy (crypto_info.salt, iv.data,
- TLS_CIPHER_AES_CCM_128_SALT_SIZE);
- memcpy (crypto_info.rec_seq, seq_number,
- TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE);
- memcpy (crypto_info.key, cipher_key.data,
- TLS_CIPHER_AES_CCM_128_KEY_SIZE);
-
- if (setsockopt (sockout, SOL_TLS, TLS_TX,
- &crypto_info, sizeof (crypto_info))) {
- session->internals.ktls_enabled &= ~GNUTLS_KTLS_SEND;
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ memcpy(crypto_info.salt, iv.data,
+ TLS_CIPHER_AES_CCM_128_SALT_SIZE);
+ memcpy(crypto_info.rec_seq, seq_number,
+ TLS_CIPHER_AES_CCM_128_REC_SEQ_SIZE);
+ memcpy(crypto_info.key, cipher_key.data,
+ TLS_CIPHER_AES_CCM_128_KEY_SIZE);
+
+ if (setsockopt(sockout, SOL_TLS, TLS_TX,
+ &crypto_info,
+ sizeof(crypto_info))) {
+ session->internals.ktls_enabled &=
+ ~GNUTLS_KTLS_SEND;
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
}
}
break;
- case GNUTLS_CIPHER_CHACHA20_POLY1305:
+ case GNUTLS_CIPHER_CHACHA20_POLY1305:
{
- struct tls12_crypto_info_chacha20_poly1305 crypto_info;
- memset(&crypto_info, 0, sizeof (crypto_info));
+ struct tls12_crypto_info_chacha20_poly1305
+ crypto_info;
+ memset(&crypto_info, 0, sizeof(crypto_info));
- crypto_info.info.cipher_type = TLS_CIPHER_CHACHA20_POLY1305;
- assert (cipher_key.size == TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE);
+ crypto_info.info.cipher_type =
+ TLS_CIPHER_CHACHA20_POLY1305;
+ assert(cipher_key.size ==
+ TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE);
/* for TLS 1.2 IV is generated in kernel */
if (version == GNUTLS_TLS1_2) {
- crypto_info.info.version = TLS_1_2_VERSION;
- memcpy(crypto_info.iv, seq_number, TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_2_VERSION;
+ memcpy(crypto_info.iv, seq_number,
+ TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
} else {
- crypto_info.info.version = TLS_1_3_VERSION;
- assert (iv.size == TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE +
- TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
-
- memcpy (crypto_info.iv, iv.data + TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE,
- TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
+ crypto_info.info.version =
+ TLS_1_3_VERSION;
+ assert(iv.size ==
+ TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE
+ +
+ TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
+
+ memcpy(crypto_info.iv,
+ iv.data +
+ TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE,
+ TLS_CIPHER_CHACHA20_POLY1305_IV_SIZE);
}
- memcpy (crypto_info.salt, iv.data,
- TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE);
- memcpy (crypto_info.rec_seq, seq_number,
- TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE);
- memcpy (crypto_info.key, cipher_key.data,
- TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE);
-
- if (setsockopt (sockout, SOL_TLS, TLS_TX,
- &crypto_info, sizeof (crypto_info))) {
- session->internals.ktls_enabled &= ~GNUTLS_KTLS_SEND;
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ memcpy(crypto_info.salt, iv.data,
+ TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE);
+ memcpy(crypto_info.rec_seq, seq_number,
+ TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE);
+ memcpy(crypto_info.key, cipher_key.data,
+ TLS_CIPHER_CHACHA20_POLY1305_KEY_SIZE);
+
+ if (setsockopt(sockout, SOL_TLS, TLS_TX,
+ &crypto_info,
+ sizeof(crypto_info))) {
+ session->internals.ktls_enabled &=
+ ~GNUTLS_KTLS_SEND;
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
}
}
break;
- default:
- assert(0);
+ default:
+ assert(0);
}
-
// set callback for sending handshake messages
gnutls_handshake_set_read_function(session,
_gnutls_ktls_send_handshake_msg);
// set callback for sending alert messages
- gnutls_alert_set_read_function(session, _gnutls_ktls_send_alert_msg);
+ gnutls_alert_set_read_function(session,
+ _gnutls_ktls_send_alert_msg);
}
return in;
}
ssize_t _gnutls_ktls_send_file(gnutls_session_t session, int fd,
- off_t *offset, size_t count)
+ off_t * offset, size_t count)
{
ssize_t ret;
int sockin, sockout;
@@ -439,14 +548,14 @@ ssize_t _gnutls_ktls_send_file(gnutls_session_t session, int fd,
gnutls_transport_get_int2(session, &sockin, &sockout);
ret = sendfile(sockout, fd, offset, count);
- if (ret == -1){
- switch(errno) {
- case EINTR:
- return GNUTLS_E_INTERRUPTED;
- case EAGAIN:
- return GNUTLS_E_AGAIN;
- default:
- return GNUTLS_E_PUSH_ERROR;
+ if (ret == -1) {
+ switch (errno) {
+ case EINTR:
+ return GNUTLS_E_INTERRUPTED;
+ case EAGAIN:
+ return GNUTLS_E_AGAIN;
+ default:
+ return GNUTLS_E_PUSH_ERROR;
}
}
@@ -454,21 +563,22 @@ ssize_t _gnutls_ktls_send_file(gnutls_session_t session, int fd,
}
int _gnutls_ktls_send_control_msg(gnutls_session_t session,
- unsigned char record_type, const void *data, size_t data_size)
+ unsigned char record_type, const void *data,
+ size_t data_size)
{
const char *buf = data;
ssize_t ret;
int sockin, sockout;
size_t data_to_send = data_size;
- assert (session != NULL);
+ assert(session != NULL);
gnutls_transport_get_int2(session, &sockin, &sockout);
while (data_to_send > 0) {
- char cmsg[CMSG_SPACE(sizeof (unsigned char))];
+ char cmsg[CMSG_SPACE(sizeof(unsigned char))];
struct msghdr msg = { 0 };
- struct iovec msg_iov; /* Vector of data to send/receive into. */
+ struct iovec msg_iov; /* Vector of data to send/receive into. */
struct cmsghdr *hdr;
msg.msg_control = cmsg;
@@ -477,7 +587,7 @@ int _gnutls_ktls_send_control_msg(gnutls_session_t session,
hdr = CMSG_FIRSTHDR(&msg);
hdr->cmsg_level = SOL_TLS;
hdr->cmsg_type = TLS_SET_RECORD_TYPE;
- hdr->cmsg_len = CMSG_LEN(sizeof (unsigned char));
+ hdr->cmsg_len = CMSG_LEN(sizeof(unsigned char));
// construct record header
*CMSG_DATA(hdr) = record_type;
@@ -493,12 +603,12 @@ int _gnutls_ktls_send_control_msg(gnutls_session_t session,
if (ret == -1) {
switch (errno) {
- case EINTR:
- return GNUTLS_E_INTERRUPTED;
- case EAGAIN:
- return GNUTLS_E_AGAIN;
- default:
- return GNUTLS_E_PUSH_ERROR;
+ case EINTR:
+ return GNUTLS_E_INTERRUPTED;
+ case EAGAIN:
+ return GNUTLS_E_AGAIN;
+ default:
+ return GNUTLS_E_PUSH_ERROR;
}
}
@@ -530,25 +640,26 @@ int _gnutls_ktls_send_alert_msg(gnutls_session_t session,
}
int _gnutls_ktls_recv_control_msg(gnutls_session_t session,
- unsigned char *record_type, void *data, size_t data_size)
+ unsigned char *record_type, void *data,
+ size_t data_size)
{
char *buf = data;
ssize_t ret;
int sockin, sockout;
- char cmsg[CMSG_SPACE(sizeof (unsigned char))];
+ char cmsg[CMSG_SPACE(sizeof(unsigned char))];
struct msghdr msg = { 0 };
struct iovec msg_iov;
struct cmsghdr *hdr;
- assert (session != NULL);
+ assert(session != NULL);
gnutls_transport_get_int2(session, &sockin, &sockout);
if (session->internals.read_eof != 0) {
return 0;
} else if (session->internals.invalid_connection != 0 ||
- session->internals.may_not_read != 0)
+ session->internals.may_not_read != 0)
return GNUTLS_E_INVALID_SESSION;
/* receive message */
@@ -563,18 +674,18 @@ int _gnutls_ktls_recv_control_msg(gnutls_session_t session,
ret = recvmsg(sockin, &msg, MSG_DONTWAIT);
- if (ret == -1){
- switch(errno){
- case EAGAIN:
- return GNUTLS_E_AGAIN;
- case EINVAL:
- return GNUTLS_E_UNSUPPORTED_VERSION_PACKET;
- case EMSGSIZE:
- return GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
- case EBADMSG:
- return GNUTLS_E_DECRYPTION_FAILED;
- default:
- return GNUTLS_E_PULL_ERROR;
+ if (ret == -1) {
+ switch (errno) {
+ case EAGAIN:
+ return GNUTLS_E_AGAIN;
+ case EINVAL:
+ return GNUTLS_E_UNSUPPORTED_VERSION_PACKET;
+ case EMSGSIZE:
+ return GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
+ case EBADMSG:
+ return GNUTLS_E_DECRYPTION_FAILED;
+ default:
+ return GNUTLS_E_PULL_ERROR;
}
}
@@ -584,7 +695,7 @@ int _gnutls_ktls_recv_control_msg(gnutls_session_t session,
/* get record type from header */
hdr = CMSG_FIRSTHDR(&msg);
- if (hdr == NULL){
+ if (hdr == NULL) {
return GNUTLS_E_PULL_ERROR;
}
if (hdr->cmsg_level == SOL_TLS && hdr->cmsg_type == TLS_GET_RECORD_TYPE)
@@ -596,68 +707,76 @@ int _gnutls_ktls_recv_control_msg(gnutls_session_t session,
}
int _gnutls_ktls_recv_int(gnutls_session_t session, content_type_t type,
- void *data, size_t data_size)
+ void *data, size_t data_size)
{
unsigned char record_type;
int ret;
ret = _gnutls_ktls_recv_control_msg(session,
- &record_type, data, data_size);
+ &record_type, data, data_size);
if (ret > 0) {
- switch (record_type){
- case GNUTLS_CHANGE_CIPHER_SPEC:
- return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
- break;
- case GNUTLS_ALERT:
- session_invalidate(session);
- ret = 0;
- break;
- case GNUTLS_HANDSHAKE:
- ret = gnutls_handshake_write(session,
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- data, ret);
-
- if (ret < 0)
- return gnutls_assert_val(ret);
-
- if (type != record_type)
- return GNUTLS_E_AGAIN;
- break;
- case GNUTLS_APPLICATION_DATA:
- if (type != record_type)
- ret = GNUTLS_E_GOT_APPLICATION_DATA;
- break;
- case GNUTLS_HEARTBEAT:
- break;
- default:
- gnutls_assert();
- return GNUTLS_E_UNEXPECTED_PACKET;
+ switch (record_type) {
+ case GNUTLS_CHANGE_CIPHER_SPEC:
+ return
+ gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
+ break;
+ case GNUTLS_ALERT:
+ session_invalidate(session);
+ ret = 0;
+ break;
+ case GNUTLS_HANDSHAKE:
+ ret = gnutls_handshake_write(session,
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ data, ret);
+
+ if (ret < 0)
+ return gnutls_assert_val(ret);
+
+ if (type != record_type)
+ return GNUTLS_E_AGAIN;
+ break;
+ case GNUTLS_APPLICATION_DATA:
+ if (type != record_type)
+ ret = GNUTLS_E_GOT_APPLICATION_DATA;
+ break;
+ case GNUTLS_HEARTBEAT:
+ break;
+ default:
+ gnutls_assert();
+ return GNUTLS_E_UNEXPECTED_PACKET;
}
}
return ret;
}
-#else //ENABLE_KTLS
+#else //ENABLE_KTLS
gnutls_transport_ktls_enable_flags_t
-gnutls_transport_is_ktls_enabled(gnutls_session_t session) {
+gnutls_transport_is_ktls_enabled(gnutls_session_t session)
+{
return 0;
}
-void _gnutls_ktls_enable(gnutls_session_t session) {
+void _gnutls_ktls_enable(gnutls_session_t session)
+{
}
-int _gnutls_ktls_set_keys(gnutls_session_t sessioni, gnutls_transport_ktls_enable_flags_t in) {
+int _gnutls_ktls_set_keys(gnutls_session_t sessioni,
+ gnutls_transport_ktls_enable_flags_t in)
+{
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
}
ssize_t _gnutls_ktls_send_file(gnutls_session_t session, int fd,
- off_t *offset, size_t count) {
+ off_t * offset, size_t count)
+{
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
}
int _gnutls_ktls_send_control_msg(gnutls_session_t session,
- unsigned char record_type, const void *data, size_t data_size) {
+ unsigned char record_type, const void *data,
+ size_t data_size)
+{
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
}
@@ -671,8 +790,9 @@ int _gnutls_ktls_send_handshake_msg(gnutls_session_t session,
}
int _gnutls_ktls_recv_int(gnutls_session_t session, content_type_t type,
- void *data, size_t data_size) {
+ void *data, size_t data_size)
+{
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
}
-#endif //ENABLE_KTLS
+#endif //ENABLE_KTLS
diff --git a/lib/system/ktls.h b/lib/system/ktls.h
index 64e1c9c1ca..186612e326 100644
--- a/lib/system/ktls.h
+++ b/lib/system/ktls.h
@@ -1,14 +1,15 @@
#ifndef GNUTLS_LIB_ACCELERATED_KTLS_H
-#define GNUTLS_LIB_ACCELERATED_KTLS_H
+# define GNUTLS_LIB_ACCELERATED_KTLS_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
void _gnutls_ktls_enable(gnutls_session_t session);
-int _gnutls_ktls_set_keys(gnutls_session_t session, gnutls_transport_ktls_enable_flags_t in);
+int _gnutls_ktls_set_keys(gnutls_session_t session,
+ gnutls_transport_ktls_enable_flags_t in);
ssize_t _gnutls_ktls_send_file(gnutls_session_t session, int fd,
- off_t *offset, size_t count);
+ off_t * offset, size_t count);
int _gnutls_ktls_send_handshake_msg(gnutls_session_t session,
gnutls_record_encryption_level_t level,
@@ -20,14 +21,17 @@ int _gnutls_ktls_send_alert_msg(gnutls_session_t session,
gnutls_alert_level_t alert_level,
gnutls_alert_description_t alert_desc);
-int _gnutls_ktls_send_control_msg(gnutls_session_t session, unsigned char record_type,
- const void *data, size_t data_size);
-#define _gnutls_ktls_send(x, y, z) _gnutls_ktls_send_control_msg(x, GNUTLS_APPLICATION_DATA, y, z);
+int _gnutls_ktls_send_control_msg(gnutls_session_t session,
+ unsigned char record_type, const void *data,
+ size_t data_size);
+# define _gnutls_ktls_send(x, y, z) _gnutls_ktls_send_control_msg(x, GNUTLS_APPLICATION_DATA, y, z);
-int _gnutls_ktls_recv_control_msg(gnutls_session_t session, unsigned char *record_type,
- void *data, size_t data_size);
+int _gnutls_ktls_recv_control_msg(gnutls_session_t session,
+ unsigned char *record_type, void *data,
+ size_t data_size);
-int _gnutls_ktls_recv_int(gnutls_session_t session, content_type_t type, void *data, size_t data_size);
-#define _gnutls_ktls_recv(x, y, z) _gnutls_ktls_recv_int(x, GNUTLS_APPLICATION_DATA, y, z)
+int _gnutls_ktls_recv_int(gnutls_session_t session, content_type_t type,
+ void *data, size_t data_size);
+# define _gnutls_ktls_recv(x, y, z) _gnutls_ktls_recv_int(x, GNUTLS_APPLICATION_DATA, y, z)
-#endif /* GNUTLS_LIB_ACCELERATED_KTLS_H */
+#endif /* GNUTLS_LIB_ACCELERATED_KTLS_H */
diff --git a/lib/system/sockets.c b/lib/system/sockets.c
index e1d6fd1842..6367114f30 100644
--- a/lib/system/sockets.c
+++ b/lib/system/sockets.c
@@ -33,7 +33,7 @@
#ifdef _WIN32
# include <windows.h>
-#else /* !_WIN32 */
+#else /* !_WIN32 */
# include <poll.h>
#endif
@@ -44,9 +44,9 @@
/* Do not use the gnulib functions for sending and receiving data.
* Using them makes gnutls only working with gnulib applications.
*/
-#undef send
-#undef recv
-#undef select
+# undef send
+# undef recv
+# undef select
int system_errno(gnutls_transport_ptr p)
{
@@ -81,8 +81,7 @@ system_write(gnutls_transport_ptr ptr, const void *data, size_t data_size)
}
ssize_t
-system_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec,
- int iovec_cnt)
+system_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt)
{
WSABUF bufs[32];
DWORD bytes_sent;
@@ -92,7 +91,7 @@ system_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec,
if ((size_t)iovec_cnt > sizeof(bufs) / sizeof(bufs[0]))
iovec_cnt = sizeof(bufs) / sizeof(bufs[0]);
- while (to_send_cnt < (DWORD)iovec_cnt && to_send_bytes < SSIZE_MAX) {
+ while (to_send_cnt < (DWORD) iovec_cnt && to_send_bytes < SSIZE_MAX) {
bufs[to_send_cnt].buf = iovec[to_send_cnt].iov_base;
if (to_send_bytes + iovec[to_send_cnt].iov_len > SSIZE_MAX) {
@@ -100,46 +99,45 @@ system_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec,
* exceed SSIZE_MAX */
size_t space_left = (size_t)SSIZE_MAX - to_send_bytes;
bufs[to_send_cnt].len = (unsigned long)
- (space_left > ULONG_MAX ?
- ULONG_MAX : space_left);
+ (space_left > ULONG_MAX ? ULONG_MAX : space_left);
to_send_cnt++;
break;
}
-#ifdef _WIN64
+# ifdef _WIN64
if (iovec[to_send_cnt].iov_len > ULONG_MAX) {
/* WSASend() limitation */
bufs[to_send_cnt].len = ULONG_MAX;
to_send_cnt++;
break;
}
-#endif
+# endif
bufs[to_send_cnt].len =
- (unsigned long) iovec[to_send_cnt].iov_len;
+ (unsigned long)iovec[to_send_cnt].iov_len;
to_send_bytes += iovec[to_send_cnt].iov_len;
to_send_cnt++;
}
if (WSASend(GNUTLS_POINTER_TO_INT(ptr), bufs, to_send_cnt, &bytes_sent,
- 0, NULL, NULL) != 0)
+ 0, NULL, NULL) != 0)
return -1;
- return (ssize_t)bytes_sent;
+ return (ssize_t) bytes_sent;
}
#else /* POSIX */
int system_errno(gnutls_transport_ptr_t ptr)
{
-#if defined(_AIX) || defined(AIX)
+# if defined(_AIX) || defined(AIX)
if (errno == 0)
errno = EAGAIN;
-#endif
+# endif
return errno;
}
static ssize_t
_system_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec,
- int iovec_cnt, int flags)
+ int iovec_cnt, int flags)
{
struct msghdr hdr;
@@ -150,28 +148,25 @@ _system_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec,
return sendmsg(GNUTLS_POINTER_TO_INT(ptr), &hdr, flags);
}
-#ifdef MSG_NOSIGNAL
+# ifdef MSG_NOSIGNAL
ssize_t
system_writev_nosignal(gnutls_transport_ptr_t ptr, const giovec_t * iovec,
- int iovec_cnt)
+ int iovec_cnt)
{
return _system_writev(ptr, iovec, iovec_cnt, MSG_NOSIGNAL);
}
-#endif
+# endif
ssize_t
-system_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec,
- int iovec_cnt)
+system_writev(gnutls_transport_ptr_t ptr, const giovec_t * iovec, int iovec_cnt)
{
return _system_writev(ptr, iovec, iovec_cnt, 0);
}
#endif
-
-ssize_t
-system_read(gnutls_transport_ptr_t ptr, void *data, size_t data_size)
+ssize_t system_read(gnutls_transport_ptr_t ptr, void *data, size_t data_size)
{
return recv(GNUTLS_POINTER_TO_INT(ptr), data, data_size, 0);
}
@@ -210,7 +205,7 @@ int gnutls_system_recv_timeout(gnutls_transport_ptr_t ptr, unsigned int ms)
timeo = ms;
do {
ret = poll(&pfd, 1, timeo);
- } while(ret == -1 && errno == EINTR);
+ } while (ret == -1 && errno == EINTR);
#else
fd_set rfds;
struct timeval _tv, *tv = NULL;
@@ -219,7 +214,7 @@ int gnutls_system_recv_timeout(gnutls_transport_ptr_t ptr, unsigned int ms)
FD_SET(fd, &rfds);
if (ms != GNUTLS_INDEFINITE_TIMEOUT) {
- _tv.tv_sec = ms/1000;
+ _tv.tv_sec = ms / 1000;
_tv.tv_usec = (ms % 1000) * 1000;
tv = &_tv;
}
@@ -231,4 +226,3 @@ int gnutls_system_recv_timeout(gnutls_transport_ptr_t ptr, unsigned int ms)
return ret;
}
-
diff --git a/lib/system/threads.c b/lib/system/threads.c
index 89b5959ee6..a98cd968c3 100644
--- a/lib/system/threads.c
+++ b/lib/system/threads.c
@@ -84,4 +84,3 @@ mutex_init_func gnutls_mutex_init = gnutls_system_mutex_init;
mutex_deinit_func gnutls_mutex_deinit = gnutls_system_mutex_deinit;
mutex_lock_func gnutls_mutex_lock = gnutls_system_mutex_lock;
mutex_unlock_func gnutls_mutex_unlock = gnutls_system_mutex_unlock;
-
diff --git a/lib/system_override.c b/lib/system_override.c
index 9179bf5c8a..53173309df 100644
--- a/lib/system_override.c
+++ b/lib/system_override.c
@@ -36,7 +36,7 @@
#include <errno.h>
#ifdef _WIN32
-#include <windows.h>
+# include <windows.h>
#endif
/**
diff --git a/lib/tls-sig.c b/lib/tls-sig.c
index 84fd57dd31..45869fd802 100644
--- a/lib/tls-sig.c
+++ b/lib/tls-sig.c
@@ -40,17 +40,21 @@
#include <x509/common.h>
#include <abstract_int.h>
-int _gnutls_check_key_usage_for_sig(gnutls_session_t session, unsigned key_usage, unsigned our_cert)
+int _gnutls_check_key_usage_for_sig(gnutls_session_t session,
+ unsigned key_usage, unsigned our_cert)
{
const char *lstr;
unsigned allow_key_usage_violation;
if (our_cert) {
lstr = "Local";
- allow_key_usage_violation = session->internals.priorities->allow_server_key_usage_violation;
+ allow_key_usage_violation =
+ session->internals.
+ priorities->allow_server_key_usage_violation;
} else {
lstr = "Peer's";
- allow_key_usage_violation = session->internals.allow_key_usage_violation;
+ allow_key_usage_violation =
+ session->internals.allow_key_usage_violation;
}
if (key_usage != 0) {
@@ -58,11 +62,13 @@ int _gnutls_check_key_usage_for_sig(gnutls_session_t session, unsigned key_usage
gnutls_assert();
if (likely(allow_key_usage_violation == 0)) {
_gnutls_audit_log(session,
- "%s certificate does not allow digital signatures. Key usage violation detected.\n", lstr);
+ "%s certificate does not allow digital signatures. Key usage violation detected.\n",
+ lstr);
return GNUTLS_E_KEY_USAGE_VIOLATION;
} else {
_gnutls_audit_log(session,
- "%s certificate does not allow digital signatures. Key usage violation detected (ignored).\n", lstr);
+ "%s certificate does not allow digital signatures. Key usage violation detected (ignored).\n",
+ lstr);
}
}
}
@@ -74,10 +80,10 @@ int _gnutls_check_key_usage_for_sig(gnutls_session_t session, unsigned key_usage
*/
static int
_gnutls_handshake_sign_data12(gnutls_session_t session,
- gnutls_pcert_st * cert, gnutls_privkey_t pkey,
- gnutls_datum_t * params,
- gnutls_datum_t * signature,
- gnutls_sign_algorithm_t sign_algo)
+ gnutls_pcert_st * cert, gnutls_privkey_t pkey,
+ gnutls_datum_t * params,
+ gnutls_datum_t * signature,
+ gnutls_sign_algorithm_t sign_algo)
{
gnutls_datum_t dconcat;
int ret;
@@ -86,17 +92,22 @@ _gnutls_handshake_sign_data12(gnutls_session_t session,
("HSK[%p]: signing TLS 1.2 handshake data: using %s\n", session,
gnutls_sign_algorithm_get_name(sign_algo));
- if (unlikely(gnutls_sign_supports_pk_algorithm(sign_algo, pkey->pk_algorithm) == 0))
+ if (unlikely
+ (gnutls_sign_supports_pk_algorithm(sign_algo, pkey->pk_algorithm) ==
+ 0))
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- dconcat.size = GNUTLS_RANDOM_SIZE*2 + params->size;
+ dconcat.size = GNUTLS_RANDOM_SIZE * 2 + params->size;
dconcat.data = gnutls_malloc(dconcat.size);
if (dconcat.data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- memcpy(dconcat.data, session->security_parameters.client_random, GNUTLS_RANDOM_SIZE);
- memcpy(dconcat.data+GNUTLS_RANDOM_SIZE, session->security_parameters.server_random, GNUTLS_RANDOM_SIZE);
- memcpy(dconcat.data+GNUTLS_RANDOM_SIZE*2, params->data, params->size);
+ memcpy(dconcat.data, session->security_parameters.client_random,
+ GNUTLS_RANDOM_SIZE);
+ memcpy(dconcat.data + GNUTLS_RANDOM_SIZE,
+ session->security_parameters.server_random, GNUTLS_RANDOM_SIZE);
+ memcpy(dconcat.data + GNUTLS_RANDOM_SIZE * 2, params->data,
+ params->size);
ret = gnutls_privkey_sign_data2(pkey, sign_algo,
0, &dconcat, signature);
@@ -111,10 +122,10 @@ _gnutls_handshake_sign_data12(gnutls_session_t session,
static int
_gnutls_handshake_sign_data10(gnutls_session_t session,
- gnutls_pcert_st * cert, gnutls_privkey_t pkey,
- gnutls_datum_t * params,
- gnutls_datum_t * signature,
- gnutls_sign_algorithm_t sign_algo)
+ gnutls_pcert_st * cert, gnutls_privkey_t pkey,
+ gnutls_datum_t * params,
+ gnutls_datum_t * signature,
+ gnutls_sign_algorithm_t sign_algo)
{
gnutls_datum_t dconcat;
int ret;
@@ -127,12 +138,12 @@ _gnutls_handshake_sign_data10(gnutls_session_t session,
if (pk_algo == GNUTLS_PK_RSA)
me = hash_to_entry(GNUTLS_DIG_MD5_SHA1);
else
- me = hash_to_entry(
- gnutls_sign_get_hash_algorithm(sign_algo));
+ me = hash_to_entry(gnutls_sign_get_hash_algorithm(sign_algo));
if (me == NULL)
return gnutls_assert_val(GNUTLS_E_UNKNOWN_HASH_ALGORITHM);
- if (unlikely(gnutls_sign_supports_pk_algorithm(sign_algo, pk_algo) == 0))
+ if (unlikely
+ (gnutls_sign_supports_pk_algorithm(sign_algo, pk_algo) == 0))
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
pk_algo = gnutls_sign_get_pk_algorithm(sign_algo);
@@ -160,8 +171,10 @@ _gnutls_handshake_sign_data10(gnutls_session_t session,
dconcat.data = concat;
dconcat.size = _gnutls_hash_get_algo_len(me);
- ret = gnutls_privkey_sign_hash(pkey, MAC_TO_DIG(me->id), GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
- &dconcat, signature);
+ ret =
+ gnutls_privkey_sign_hash(pkey, MAC_TO_DIG(me->id),
+ GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
+ &dconcat, signature);
if (ret < 0) {
gnutls_assert();
}
@@ -196,9 +209,13 @@ _gnutls_handshake_sign_data(gnutls_session_t session,
return gnutls_assert_val(ret);
if (_gnutls_version_has_selectable_sighash(ver))
- return _gnutls_handshake_sign_data12(session, cert, pkey, params, signature, *sign_algo);
+ return _gnutls_handshake_sign_data12(session, cert, pkey,
+ params, signature,
+ *sign_algo);
else
- return _gnutls_handshake_sign_data10(session, cert, pkey, params, signature, *sign_algo);
+ return _gnutls_handshake_sign_data10(session, cert, pkey,
+ params, signature,
+ *sign_algo);
}
/* Generates a signature of all the random data and the parameters.
@@ -206,11 +223,11 @@ _gnutls_handshake_sign_data(gnutls_session_t session,
*/
static int
_gnutls_handshake_verify_data10(gnutls_session_t session,
- unsigned verify_flags,
- gnutls_pcert_st * cert,
- const gnutls_datum_t * params,
- gnutls_datum_t * signature,
- gnutls_sign_algorithm_t sign_algo)
+ unsigned verify_flags,
+ gnutls_pcert_st * cert,
+ const gnutls_datum_t * params,
+ gnutls_datum_t * signature,
+ gnutls_sign_algorithm_t sign_algo)
{
gnutls_datum_t dconcat;
int ret;
@@ -251,8 +268,8 @@ _gnutls_handshake_verify_data10(gnutls_session_t session,
dconcat.size = _gnutls_hash_get_algo_len(me);
ret = gnutls_pubkey_verify_hash2(cert->pubkey, sign_algo,
- GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1|verify_flags,
- &dconcat, signature);
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1 |
+ verify_flags, &dconcat, signature);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -261,11 +278,11 @@ _gnutls_handshake_verify_data10(gnutls_session_t session,
static int
_gnutls_handshake_verify_data12(gnutls_session_t session,
- unsigned verify_flags,
- gnutls_pcert_st * cert,
- const gnutls_datum_t * params,
- gnutls_datum_t * signature,
- gnutls_sign_algorithm_t sign_algo)
+ unsigned verify_flags,
+ gnutls_pcert_st * cert,
+ const gnutls_datum_t * params,
+ gnutls_datum_t * signature,
+ gnutls_sign_algorithm_t sign_algo)
{
gnutls_datum_t dconcat;
int ret;
@@ -278,30 +295,35 @@ _gnutls_handshake_verify_data12(gnutls_session_t session,
ret =
_gnutls_pubkey_compatible_with_sig(session,
- cert->pubkey, ver,
- sign_algo);
+ cert->pubkey, ver, sign_algo);
if (ret < 0)
return gnutls_assert_val(ret);
- if (unlikely(sign_supports_cert_pk_algorithm(se, cert->pubkey->params.algo) == 0)) {
- _gnutls_handshake_log("HSK[%p]: certificate of %s cannot be combined with %s sig\n",
- session, gnutls_pk_get_name(cert->pubkey->params.algo), se->name);
+ if (unlikely
+ (sign_supports_cert_pk_algorithm(se, cert->pubkey->params.algo) ==
+ 0)) {
+ _gnutls_handshake_log
+ ("HSK[%p]: certificate of %s cannot be combined with %s sig\n",
+ session, gnutls_pk_get_name(cert->pubkey->params.algo),
+ se->name);
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
- ret =
- _gnutls_session_sign_algo_enabled(session, sign_algo);
+ ret = _gnutls_session_sign_algo_enabled(session, sign_algo);
if (ret < 0)
return gnutls_assert_val(ret);
- dconcat.size = GNUTLS_RANDOM_SIZE*2+params->size;
+ dconcat.size = GNUTLS_RANDOM_SIZE * 2 + params->size;
dconcat.data = gnutls_malloc(dconcat.size);
if (dconcat.data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- memcpy(dconcat.data, session->security_parameters.client_random, GNUTLS_RANDOM_SIZE);
- memcpy(dconcat.data+GNUTLS_RANDOM_SIZE, session->security_parameters.server_random, GNUTLS_RANDOM_SIZE);
- memcpy(dconcat.data+GNUTLS_RANDOM_SIZE*2, params->data, params->size);
+ memcpy(dconcat.data, session->security_parameters.client_random,
+ GNUTLS_RANDOM_SIZE);
+ memcpy(dconcat.data + GNUTLS_RANDOM_SIZE,
+ session->security_parameters.server_random, GNUTLS_RANDOM_SIZE);
+ memcpy(dconcat.data + GNUTLS_RANDOM_SIZE * 2, params->data,
+ params->size);
ret = gnutls_pubkey_verify_data2(cert->pubkey, sign_algo, verify_flags,
&dconcat, signature);
@@ -339,21 +361,23 @@ _gnutls_handshake_verify_data(gnutls_session_t session,
gnutls_sign_algorithm_set_server(session, sign_algo);
if (_gnutls_version_has_selectable_sighash(ver))
- return _gnutls_handshake_verify_data12(session, verify_flags, cert, params, signature, sign_algo);
+ return _gnutls_handshake_verify_data12(session, verify_flags,
+ cert, params, signature,
+ sign_algo);
else
- return _gnutls_handshake_verify_data10(session, verify_flags, cert, params, signature, sign_algo);
+ return _gnutls_handshake_verify_data10(session, verify_flags,
+ cert, params, signature,
+ sign_algo);
}
-
/* Client certificate verify calculations
*/
-static void
-_gnutls_reverse_datum(gnutls_datum_t * d)
+static void _gnutls_reverse_datum(gnutls_datum_t * d)
{
unsigned i;
- for (i = 0; i < d->size / 2; i ++) {
+ for (i = 0; i < d->size / 2; i++) {
uint8_t t = d->data[i];
d->data[i] = d->data[d->size - 1 - i];
d->data[d->size - 1 - i] = t;
@@ -361,7 +385,7 @@ _gnutls_reverse_datum(gnutls_datum_t * d)
}
static int
-_gnutls_create_reverse(const gnutls_datum_t *src, gnutls_datum_t *dst)
+_gnutls_create_reverse(const gnutls_datum_t * src, gnutls_datum_t * dst)
{
unsigned int i;
@@ -388,15 +412,19 @@ _gnutls_handshake_verify_crt_vrfy12(gnutls_session_t session,
int ret;
gnutls_datum_t dconcat;
const gnutls_sign_entry_st *se = _gnutls_sign_to_entry(sign_algo);
- gnutls_datum_t sig_rev = {NULL, 0};
+ gnutls_datum_t sig_rev = { NULL, 0 };
ret = _gnutls_session_sign_algo_enabled(session, sign_algo);
if (ret < 0)
return gnutls_assert_val(ret);
- if (unlikely(sign_supports_cert_pk_algorithm(se, cert->pubkey->params.algo) == 0)) {
- _gnutls_handshake_log("HSK[%p]: certificate of %s cannot be combined with %s sig\n",
- session, gnutls_pk_get_name(cert->pubkey->params.algo), se->name);
+ if (unlikely
+ (sign_supports_cert_pk_algorithm(se, cert->pubkey->params.algo) ==
+ 0)) {
+ _gnutls_handshake_log
+ ("HSK[%p]: certificate of %s cannot be combined with %s sig\n",
+ session, gnutls_pk_get_name(cert->pubkey->params.algo),
+ se->name);
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
@@ -412,9 +440,11 @@ _gnutls_handshake_verify_crt_vrfy12(gnutls_session_t session,
/* Here we intentionally enable flag GNUTLS_VERIFY_ALLOW_BROKEN
* because we have checked whether the currently used signature
* algorithm is allowed in the session. */
- ret = gnutls_pubkey_verify_data2(cert->pubkey, sign_algo, verify_flags|GNUTLS_VERIFY_ALLOW_BROKEN,
- &dconcat,
- sig_rev.data ? &sig_rev : signature);
+ ret =
+ gnutls_pubkey_verify_data2(cert->pubkey, sign_algo,
+ verify_flags |
+ GNUTLS_VERIFY_ALLOW_BROKEN, &dconcat,
+ sig_rev.data ? &sig_rev : signature);
_gnutls_free_datum(&sig_rev);
if (ret < 0)
gnutls_assert();
@@ -452,19 +482,18 @@ _gnutls_handshake_verify_crt_vrfy3(gnutls_session_t session,
if (pk == GNUTLS_PK_RSA) {
digest_hd_st td_md5;
- ret = _gnutls_hash_init(&td_md5,
- hash_to_entry(GNUTLS_DIG_MD5));
+ ret = _gnutls_hash_init(&td_md5, hash_to_entry(GNUTLS_DIG_MD5));
if (ret < 0)
return gnutls_assert_val(ret);
_gnutls_hash(&td_md5,
- session->internals.handshake_hash_buffer.data,
- session->internals.handshake_hash_buffer_prev_len);
+ session->internals.handshake_hash_buffer.data,
+ session->internals.handshake_hash_buffer_prev_len);
ret = _gnutls_mac_deinit_ssl3_handshake(&td_md5, concat,
- session->security_parameters.
- master_secret,
- GNUTLS_MASTER_SIZE);
+ session->security_parameters.
+ master_secret,
+ GNUTLS_MASTER_SIZE);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -495,8 +524,8 @@ _gnutls_handshake_verify_crt_vrfy3(gnutls_session_t session,
dconcat.size += 20;
ret = gnutls_pubkey_verify_hash2(cert->pubkey, GNUTLS_SIGN_UNKNOWN,
- GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1|verify_flags,
- &dconcat, signature);
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1 |
+ verify_flags, &dconcat, signature);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -544,8 +573,8 @@ _gnutls_handshake_verify_crt_vrfy10(gnutls_session_t session,
dconcat.size = _gnutls_hash_get_algo_len(me);
ret = gnutls_pubkey_verify_hash2(cert->pubkey, sign_algo,
- GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1|verify_flags,
- &dconcat, signature);
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1 |
+ verify_flags, &dconcat, signature);
if (ret < 0)
gnutls_assert();
@@ -588,7 +617,7 @@ _gnutls_handshake_verify_crt_vrfy(gnutls_session_t session,
/* TLS 1.2 */
if (_gnutls_version_has_selectable_sighash(ver))
- return _gnutls_handshake_verify_crt_vrfy12(session,
+ return _gnutls_handshake_verify_crt_vrfy12(session,
verify_flags,
cert,
signature,
@@ -598,16 +627,13 @@ _gnutls_handshake_verify_crt_vrfy(gnutls_session_t session,
return _gnutls_handshake_verify_crt_vrfy3(session,
verify_flags,
cert,
- signature,
- sign_algo);
+ signature, sign_algo);
#endif
/* TLS 1.0 and TLS 1.1 */
return _gnutls_handshake_verify_crt_vrfy10(session,
verify_flags,
- cert,
- signature,
- sign_algo);
+ cert, signature, sign_algo);
}
/* the same as _gnutls_handshake_sign_crt_vrfy except that it is made for TLS 1.2.
@@ -624,7 +650,9 @@ _gnutls_handshake_sign_crt_vrfy12(gnutls_session_t session,
const gnutls_sign_entry_st *se;
int ret;
- sign_algo = _gnutls_session_get_sign_algo(session, cert, pkey, 1, GNUTLS_KX_UNKNOWN);
+ sign_algo =
+ _gnutls_session_get_sign_algo(session, cert, pkey, 1,
+ GNUTLS_KX_UNKNOWN);
if (sign_algo == GNUTLS_SIGN_UNKNOWN) {
gnutls_assert();
return GNUTLS_E_UNWANTED_ALGORITHM;
@@ -636,7 +664,9 @@ _gnutls_handshake_sign_crt_vrfy12(gnutls_session_t session,
gnutls_sign_algorithm_set_client(session, sign_algo);
- if (unlikely(gnutls_sign_supports_pk_algorithm(sign_algo, pkey->pk_algorithm) == 0))
+ if (unlikely
+ (gnutls_sign_supports_pk_algorithm(sign_algo, pkey->pk_algorithm) ==
+ 0))
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
_gnutls_debug_log("sign handshake cert vrfy: picked %s\n",
@@ -662,7 +692,7 @@ _gnutls_handshake_sign_crt_vrfy12(gnutls_session_t session,
static int
_gnutls_handshake_sign_crt_vrfy3(gnutls_session_t session,
gnutls_pcert_st * cert,
- const version_entry_st *ver,
+ const version_entry_st * ver,
gnutls_privkey_t pkey,
gnutls_datum_t * signature)
{
@@ -670,8 +700,7 @@ _gnutls_handshake_sign_crt_vrfy3(gnutls_session_t session,
int ret;
uint8_t concat[MAX_SIG_SIZE];
digest_hd_st td_sha;
- gnutls_pk_algorithm_t pk =
- gnutls_privkey_get_pk_algorithm(pkey, NULL);
+ gnutls_pk_algorithm_t pk = gnutls_privkey_get_pk_algorithm(pkey, NULL);
/* ensure 1024 bit DSA keys are used */
ret =
@@ -691,16 +720,13 @@ _gnutls_handshake_sign_crt_vrfy3(gnutls_session_t session,
if (pk == GNUTLS_PK_RSA) {
digest_hd_st td_md5;
- ret =
- _gnutls_hash_init(&td_md5,
- hash_to_entry(GNUTLS_DIG_MD5));
+ ret = _gnutls_hash_init(&td_md5, hash_to_entry(GNUTLS_DIG_MD5));
if (ret < 0)
return gnutls_assert_val(ret);
_gnutls_hash(&td_md5,
session->internals.handshake_hash_buffer.data,
- session->internals.handshake_hash_buffer.
- length);
+ session->internals.handshake_hash_buffer.length);
ret = _gnutls_mac_deinit_ssl3_handshake(&td_md5,
dconcat.data,
@@ -723,11 +749,11 @@ _gnutls_handshake_sign_crt_vrfy3(gnutls_session_t session,
session->internals.handshake_hash_buffer.data,
session->internals.handshake_hash_buffer.length);
ret =
- _gnutls_mac_deinit_ssl3_handshake(&td_sha,
- dconcat.data + dconcat.size,
- session->security_parameters.
- master_secret,
- GNUTLS_MASTER_SIZE);
+ _gnutls_mac_deinit_ssl3_handshake(&td_sha,
+ dconcat.data + dconcat.size,
+ session->security_parameters.
+ master_secret,
+ GNUTLS_MASTER_SIZE);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -746,7 +772,7 @@ _gnutls_handshake_sign_crt_vrfy3(gnutls_session_t session,
static int
_gnutls_handshake_sign_crt_vrfy10(gnutls_session_t session,
gnutls_pcert_st * cert,
- const version_entry_st *ver,
+ const version_entry_st * ver,
gnutls_privkey_t pkey,
gnutls_datum_t * signature)
{
@@ -754,8 +780,7 @@ _gnutls_handshake_sign_crt_vrfy10(gnutls_session_t session,
int ret;
uint8_t concat[MAX_SIG_SIZE];
digest_hd_st td_sha;
- gnutls_pk_algorithm_t pk =
- gnutls_privkey_get_pk_algorithm(pkey, NULL);
+ gnutls_pk_algorithm_t pk = gnutls_privkey_get_pk_algorithm(pkey, NULL);
const mac_entry_st *me;
/* ensure 1024 bit DSA keys are used */
@@ -785,8 +810,10 @@ _gnutls_handshake_sign_crt_vrfy10(gnutls_session_t session,
dconcat.data = concat;
dconcat.size = _gnutls_hash_get_algo_len(me);
- ret = gnutls_privkey_sign_hash(pkey, MAC_TO_DIG(me->id), GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
- &dconcat, signature);
+ ret =
+ gnutls_privkey_sign_hash(pkey, MAC_TO_DIG(me->id),
+ GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
+ &dconcat, signature);
if (ret < 0) {
gnutls_assert();
return ret;
diff --git a/lib/tls-sig.h b/lib/tls-sig.h
index e2635eece4..a445088ddc 100644
--- a/lib/tls-sig.h
+++ b/lib/tls-sig.h
@@ -21,19 +21,19 @@
*/
#ifndef GNUTLS_LIB_TLS_SIG_H
-#define GNUTLS_LIB_TLS_SIG_H
+# define GNUTLS_LIB_TLS_SIG_H
-#include <gnutls/abstract.h>
+# include <gnutls/abstract.h>
/* While this is currently equal to the length of RSA/SHA512
* signature, it should also be sufficient for DSS signature and any
* other RSA signatures including one with the old MD5/SHA1-combined
* format.
*/
-#define MAX_SIG_SIZE (19 + MAX_HASH_SIZE)
+# define MAX_SIG_SIZE (19 + MAX_HASH_SIZE)
-int _gnutls_check_key_usage_for_sig(gnutls_session_t session, unsigned key_usage,
- unsigned our_cert);
+int _gnutls_check_key_usage_for_sig(gnutls_session_t session,
+ unsigned key_usage, unsigned our_cert);
int _gnutls_handshake_sign_crt_vrfy(gnutls_session_t session,
gnutls_pcert_st * cert,
@@ -60,4 +60,4 @@ int _gnutls_handshake_verify_data(gnutls_session_t session,
gnutls_datum_t * signature,
gnutls_sign_algorithm_t algo);
-#endif /* GNUTLS_LIB_TLS_SIG_H */
+#endif /* GNUTLS_LIB_TLS_SIG_H */
diff --git a/lib/tls13-sig.c b/lib/tls13-sig.c
index 3b193d71e7..c80b69e48e 100644
--- a/lib/tls13-sig.c
+++ b/lib/tls13-sig.c
@@ -39,11 +39,11 @@
int
_gnutls13_handshake_verify_data(gnutls_session_t session,
- unsigned verify_flags,
- gnutls_pcert_st *cert,
- const gnutls_datum_t *context,
- const gnutls_datum_t *signature,
- const gnutls_sign_entry_st *se)
+ unsigned verify_flags,
+ gnutls_pcert_st * cert,
+ const gnutls_datum_t * context,
+ const gnutls_datum_t * signature,
+ const gnutls_sign_entry_st * se)
{
int ret;
const version_entry_st *ver = get_version(session);
@@ -58,23 +58,25 @@ _gnutls13_handshake_verify_data(gnutls_session_t session,
ret =
_gnutls_pubkey_compatible_with_sig(session,
- cert->pubkey, ver,
- se->id);
+ cert->pubkey, ver, se->id);
if (ret < 0)
return gnutls_assert_val(ret);
- if (unlikely(sign_supports_cert_pk_algorithm(se, cert->pubkey->params.algo) == 0)) {
- _gnutls_handshake_log("HSK[%p]: certificate of %s cannot be combined with %s sig\n",
- session, gnutls_pk_get_name(cert->pubkey->params.algo), se->name);
+ if (unlikely
+ (sign_supports_cert_pk_algorithm(se, cert->pubkey->params.algo) ==
+ 0)) {
+ _gnutls_handshake_log
+ ("HSK[%p]: certificate of %s cannot be combined with %s sig\n",
+ session, gnutls_pk_get_name(cert->pubkey->params.algo),
+ se->name);
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
- ret =
- _gnutls_session_sign_algo_enabled(session, se->id);
+ ret = _gnutls_session_sign_algo_enabled(session, se->id);
if (ret < 0)
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- if ((se->flags & GNUTLS_SIGN_FLAG_TLS13_OK) == 0) /* explicitly prohibited */
+ if ((se->flags & GNUTLS_SIGN_FLAG_TLS13_OK) == 0) /* explicitly prohibited */
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
gnutls_pubkey_get_key_usage(cert->pubkey, &key_usage);
@@ -106,14 +108,18 @@ _gnutls13_handshake_verify_data(gnutls_session_t session,
ret = gnutls_hash_fast(MAC_TO_DIG(session->security_parameters.prf->id),
session->internals.handshake_hash_buffer.data,
- session->internals.handshake_hash_buffer_prev_len,
+ session->
+ internals.handshake_hash_buffer_prev_len,
prefix);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = _gnutls_buffer_append_data(&buf, prefix, session->security_parameters.prf->output_size);
+ ret =
+ _gnutls_buffer_append_data(&buf, prefix,
+ session->security_parameters.
+ prf->output_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -140,25 +146,27 @@ _gnutls13_handshake_verify_data(gnutls_session_t session,
int
_gnutls13_handshake_sign_data(gnutls_session_t session,
gnutls_pcert_st * cert, gnutls_privkey_t pkey,
- const gnutls_datum_t *context,
+ const gnutls_datum_t * context,
gnutls_datum_t * signature,
- const gnutls_sign_entry_st *se)
+ const gnutls_sign_entry_st * se)
{
gnutls_datum_t p;
int ret;
gnutls_buffer_st buf;
uint8_t tmp[MAX_HASH_SIZE];
- if (unlikely(se == NULL || (se->flags & GNUTLS_SIGN_FLAG_TLS13_OK) == 0))
+ if (unlikely
+ (se == NULL || (se->flags & GNUTLS_SIGN_FLAG_TLS13_OK) == 0))
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
- if (unlikely(sign_supports_priv_pk_algorithm(se, pkey->pk_algorithm) == 0))
+ if (unlikely
+ (sign_supports_priv_pk_algorithm(se, pkey->pk_algorithm) == 0))
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
/* when we reach here we know we have a signing certificate */
_gnutls_handshake_log
- ("HSK[%p]: signing TLS 1.3 handshake data: using %s and PRF: %s\n", session, se->name,
- session->security_parameters.prf->name);
+ ("HSK[%p]: signing TLS 1.3 handshake data: using %s and PRF: %s\n",
+ session, se->name, session->security_parameters.prf->name);
_gnutls_buffer_init(&buf);
@@ -192,7 +200,10 @@ _gnutls13_handshake_sign_data(gnutls_session_t session,
goto cleanup;
}
- ret = _gnutls_buffer_append_data(&buf, tmp, session->security_parameters.prf->output_size);
+ ret =
+ _gnutls_buffer_append_data(&buf, tmp,
+ session->security_parameters.
+ prf->output_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
diff --git a/lib/tls13-sig.h b/lib/tls13-sig.h
index a638420b45..c222403f60 100644
--- a/lib/tls13-sig.h
+++ b/lib/tls13-sig.h
@@ -21,23 +21,23 @@
*/
#ifndef GNUTLS_LIB_TLS13_SIG_H
-#define GNUTLS_LIB_TLS13_SIG_H
+# define GNUTLS_LIB_TLS13_SIG_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
int
_gnutls13_handshake_verify_data(gnutls_session_t session,
- unsigned verify_flags,
- gnutls_pcert_st *cert,
- const gnutls_datum_t *context,
- const gnutls_datum_t *signature,
- const gnutls_sign_entry_st *se);
+ unsigned verify_flags,
+ gnutls_pcert_st * cert,
+ const gnutls_datum_t * context,
+ const gnutls_datum_t * signature,
+ const gnutls_sign_entry_st * se);
int
_gnutls13_handshake_sign_data(gnutls_session_t session,
gnutls_pcert_st * cert, gnutls_privkey_t pkey,
- const gnutls_datum_t *context,
+ const gnutls_datum_t * context,
gnutls_datum_t * signature,
- const gnutls_sign_entry_st *se);
+ const gnutls_sign_entry_st * se);
-#endif /* GNUTLS_LIB_TLS13_SIG_H */
+#endif /* GNUTLS_LIB_TLS13_SIG_H */
diff --git a/lib/tls13/anti_replay.c b/lib/tls13/anti_replay.c
index f8333c560c..7b41c29241 100644
--- a/lib/tls13/anti_replay.c
+++ b/lib/tls13/anti_replay.c
@@ -49,8 +49,7 @@ struct gnutls_anti_replay_st {
*
* Since: 3.6.5
**/
-int
-gnutls_anti_replay_init(gnutls_anti_replay_t *anti_replay)
+int gnutls_anti_replay_init(gnutls_anti_replay_t * anti_replay)
{
*anti_replay = gnutls_calloc(1, sizeof(struct gnutls_anti_replay_st));
if (!*anti_replay)
@@ -95,8 +94,7 @@ gnutls_anti_replay_set_window(gnutls_anti_replay_t anti_replay,
*
* Since: 3.6.5
**/
-void
-gnutls_anti_replay_deinit(gnutls_anti_replay_t anti_replay)
+void gnutls_anti_replay_deinit(gnutls_anti_replay_t anti_replay)
{
gnutls_free(anti_replay);
}
@@ -126,7 +124,7 @@ int
_gnutls_anti_replay_check(gnutls_anti_replay_t anti_replay,
uint32_t client_ticket_age,
struct timespec *ticket_creation_time,
- gnutls_datum_t *id)
+ gnutls_datum_t * id)
{
struct timespec now;
time_t window;
@@ -134,7 +132,7 @@ _gnutls_anti_replay_check(gnutls_anti_replay_t anti_replay,
gnutls_datum_t key = { NULL, 0 };
gnutls_datum_t entry = { NULL, 0 };
unsigned char key_buffer[MAX_HASH_SIZE + 12];
- unsigned char entry_buffer[12]; /* magic + timestamp + expire_time */
+ unsigned char entry_buffer[12]; /* magic + timestamp + expire_time */
unsigned char *p;
int ret;
@@ -155,7 +153,8 @@ _gnutls_anti_replay_check(gnutls_anti_replay_t anti_replay,
*/
if (_gnutls_timespec_cmp(ticket_creation_time,
&anti_replay->start_time) < 0) {
- _gnutls_handshake_log("anti_replay: ticket is created before recording has started\n");
+ _gnutls_handshake_log
+ ("anti_replay: ticket is created before recording has started\n");
return gnutls_assert_val(GNUTLS_E_EARLY_DATA_REJECTED);
}
@@ -170,9 +169,9 @@ _gnutls_anti_replay_check(gnutls_anti_replay_t anti_replay,
* data.
*/
if (server_ticket_age - client_ticket_age > anti_replay->window) {
- _gnutls_handshake_log("anti_replay: server ticket age: %u, client ticket age: %u\n",
- server_ticket_age,
- client_ticket_age);
+ _gnutls_handshake_log
+ ("anti_replay: server ticket age: %u, client ticket age: %u\n",
+ server_ticket_age, client_ticket_age);
return gnutls_assert_val(GNUTLS_E_EARLY_DATA_REJECTED);
}
@@ -187,7 +186,8 @@ _gnutls_anti_replay_check(gnutls_anti_replay_t anti_replay,
* the key becomes 44+ octets.
*/
p = key_buffer;
- _gnutls_write_uint32((uint64_t) anti_replay->start_time.tv_sec >> 32, p);
+ _gnutls_write_uint32((uint64_t) anti_replay->start_time.tv_sec >> 32,
+ p);
p += 4;
_gnutls_write_uint32(anti_replay->start_time.tv_sec & 0xFFFFFFFF, p);
p += 4;
@@ -214,9 +214,11 @@ _gnutls_anti_replay_check(gnutls_anti_replay_t anti_replay,
entry.size = p - entry_buffer;
ret = anti_replay->db_add_func(anti_replay->db_ptr,
- (uint64_t)now.tv_sec+(uint64_t)window, &key, &entry);
+ (uint64_t) now.tv_sec +
+ (uint64_t) window, &key, &entry);
if (ret < 0) {
- _gnutls_handshake_log("anti_replay: duplicate ClientHello found\n");
+ _gnutls_handshake_log
+ ("anti_replay: duplicate ClientHello found\n");
return gnutls_assert_val(GNUTLS_E_EARLY_DATA_REJECTED);
}
diff --git a/lib/tls13/anti_replay.h b/lib/tls13/anti_replay.h
index 87726c3939..e3ff48aa26 100644
--- a/lib/tls13/anti_replay.h
+++ b/lib/tls13/anti_replay.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_LIB_TLS13_ANTI_REPLAY_H
-#define GNUTLS_LIB_TLS13_ANTI_REPLAY_H
+# define GNUTLS_LIB_TLS13_ANTI_REPLAY_H
int _gnutls_anti_replay_check(gnutls_anti_replay_t,
uint32_t client_ticket_age,
struct timespec *ticket_creation_time,
- gnutls_datum_t *id);
+ gnutls_datum_t * id);
-#endif /* GNUTLS_LIB_TLS13_ANTI_REPLAY_H */
+#endif /* GNUTLS_LIB_TLS13_ANTI_REPLAY_H */
diff --git a/lib/tls13/certificate.c b/lib/tls13/certificate.c
index a9e7c312b5..e071a74aaa 100644
--- a/lib/tls13/certificate.c
+++ b/lib/tls13/certificate.c
@@ -31,11 +31,14 @@
#include "ext/compress_certificate.h"
#include "ext/status_request.h"
-static int parse_cert_extension(void *ctx, unsigned tls_id, const uint8_t *data, unsigned data_size);
-static int parse_cert_list(gnutls_session_t session, uint8_t * data, size_t data_size);
+static int parse_cert_extension(void *ctx, unsigned tls_id,
+ const uint8_t * data, unsigned data_size);
+static int parse_cert_list(gnutls_session_t session, uint8_t * data,
+ size_t data_size);
static int compress_certificate(gnutls_buffer_st * buf, unsigned cert_pos_mark,
- gnutls_compression_method_t comp_method);
-static int decompress_certificate(gnutls_session_t session, gnutls_buffer_st * buf);
+ gnutls_compression_method_t comp_method);
+static int decompress_certificate(gnutls_session_t session,
+ gnutls_buffer_st * buf);
int _gnutls13_recv_certificate(gnutls_session_t session)
{
@@ -56,21 +59,31 @@ int _gnutls13_recv_certificate(gnutls_session_t session)
optional = 1;
}
- ret = _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_CERTIFICATE_PKT, 0, &buf);
+ ret =
+ _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_CERTIFICATE_PKT, 0,
+ &buf);
if (ret == GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET) {
/* check if we received compressed certificate */
- err = _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT, 0, &buf);
+ err =
+ _gnutls_recv_handshake(session,
+ GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
+ 0, &buf);
if (err >= 0) {
/* fail if we receive unsolicited compressed certificate */
- if (!(session->internals.hsk_flags & HSK_COMP_CRT_REQ_SENT))
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
+ if (!
+ (session->
+ internals.hsk_flags & HSK_COMP_CRT_REQ_SENT))
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET);
decompress_cert = 1;
ret = err;
}
}
if (ret < 0) {
- if (ret == GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET && session->internals.send_cert_req)
+ if (ret == GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET
+ && session->internals.send_cert_req)
return gnutls_assert_val(GNUTLS_E_NO_CERTIFICATE_FOUND);
return gnutls_assert_val(ret);
@@ -86,7 +99,8 @@ int _gnutls13_recv_certificate(gnutls_session_t session)
ret = decompress_certificate(session, &buf);
if (ret < 0) {
gnutls_assert();
- gnutls_alert_send(session, GNUTLS_AL_FATAL, GNUTLS_A_BAD_CERTIFICATE);
+ gnutls_alert_send(session, GNUTLS_AL_FATAL,
+ GNUTLS_A_BAD_CERTIFICATE);
goto cleanup;
}
}
@@ -102,9 +116,11 @@ int _gnutls13_recv_certificate(gnutls_session_t session)
goto cleanup;
}
- if (context.size != session->internals.post_handshake_cr_context.size ||
- memcmp(context.data, session->internals.post_handshake_cr_context.data,
- context.size) != 0) {
+ if (context.size !=
+ session->internals.post_handshake_cr_context.size
+ || memcmp(context.data,
+ session->internals.post_handshake_cr_context.data,
+ context.size) != 0) {
ret = GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER;
gnutls_assert();
goto cleanup;
@@ -122,7 +138,8 @@ int _gnutls13_recv_certificate(gnutls_session_t session)
buf.length--;
}
- _gnutls_handshake_log("HSK[%p]: parsing certificate message\n", session);
+ _gnutls_handshake_log("HSK[%p]: parsing certificate message\n",
+ session);
ret = parse_cert_list(session, buf.data, buf.length);
if (ret < 0) {
@@ -140,7 +157,7 @@ int _gnutls13_recv_certificate(gnutls_session_t session)
session->internals.hsk_flags |= HSK_CRT_VRFY_EXPECTED;
ret = 0;
-cleanup:
+ cleanup:
_gnutls_buffer_clear(&buf);
return ret;
@@ -154,7 +171,7 @@ struct ocsp_req_ctx_st {
};
static
-int append_status_request(void *_ctx, gnutls_buffer_st *buf)
+int append_status_request(void *_ctx, gnutls_buffer_st * buf)
{
struct ocsp_req_ctx_st *ctx = _ctx;
gnutls_session_t session = ctx->session;
@@ -167,26 +184,41 @@ int append_status_request(void *_ctx, gnutls_buffer_st *buf)
/* The global ocsp callback function can only be used to return
* a single certificate request */
- if (session->internals.selected_ocsp_length == 1 && ctx->cert_index != 0)
+ if (session->internals.selected_ocsp_length == 1
+ && ctx->cert_index != 0)
return 0;
if (session->internals.selected_ocsp_length > 0) {
if (ctx->cert_index < session->internals.selected_ocsp_length) {
- if ((session->internals.selected_ocsp[ctx->cert_index].exptime != 0 &&
- gnutls_time(0) >= session->internals.selected_ocsp[ctx->cert_index].exptime) ||
- session->internals.selected_ocsp[ctx->cert_index].response.data == NULL) {
+ if ((session->internals.
+ selected_ocsp[ctx->cert_index].exptime != 0
+ && gnutls_time(0) >=
+ session->internals.selected_ocsp[ctx->
+ cert_index].exptime)
+ || session->internals.
+ selected_ocsp[ctx->cert_index].response.data ==
+ NULL) {
return 0;
}
- resp.data = session->internals.selected_ocsp[ctx->cert_index].response.data;
- resp.size = session->internals.selected_ocsp[ctx->cert_index].response.size;
+ resp.data =
+ session->internals.selected_ocsp[ctx->
+ cert_index].response.
+ data;
+ resp.size =
+ session->internals.selected_ocsp[ctx->
+ cert_index].response.
+ size;
ret = 0;
} else {
return 0;
}
} else if (session->internals.selected_ocsp_func) {
if (ctx->cert_index == 0) {
- ret = session->internals.selected_ocsp_func(session, session->internals.selected_ocsp_func_ptr, &resp);
+ ret =
+ session->internals.selected_ocsp_func(session,
+ session->internals.selected_ocsp_func_ptr,
+ &resp);
free_resp = 1;
} else {
return 0;
@@ -237,7 +269,7 @@ int _gnutls13_send_certificate(gnutls_session_t session, unsigned again)
comp_method = gnutls_compress_certificate_get_selected_method(session);
compress_cert = comp_method != GNUTLS_COMP_UNKNOWN;
h_type = compress_cert ? GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT
- : GNUTLS_HANDSHAKE_CERTIFICATE_PKT;
+ : GNUTLS_HANDSHAKE_CERTIFICATE_PKT;
if (again == 0) {
if (!session->internals.initial_negotiation_completed &&
@@ -261,7 +293,8 @@ int _gnutls13_send_certificate(gnutls_session_t session, unsigned again)
}
ret = _gnutls_get_selected_cert(session, &apr_cert_list,
- &apr_cert_list_length, &apr_pkey);
+ &apr_cert_list_length,
+ &apr_pkey);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -296,20 +329,26 @@ int _gnutls13_send_certificate(gnutls_session_t session, unsigned again)
goto cleanup;
}
- for (i=0;i<(unsigned)apr_cert_list_length;i++) {
+ for (i = 0; i < (unsigned)apr_cert_list_length; i++) {
ret = _gnutls_buffer_append_data_prefix(&buf, 24,
- apr_cert_list[i].cert.data,
- apr_cert_list[i].cert.size);
+ apr_cert_list
+ [i].cert.data,
+ apr_cert_list
+ [i].cert.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
-
#ifdef ENABLE_OCSP
if ((session->internals.selected_ocsp_length > 0 ||
session->internals.selected_ocsp_func) &&
- (((session->internals.hsk_flags & HSK_OCSP_REQUESTED) && IS_SERVER(session)) ||
- ((session->internals.hsk_flags & HSK_CLIENT_OCSP_REQUESTED) && !IS_SERVER(session)))) {
+ (((session->
+ internals.hsk_flags & HSK_OCSP_REQUESTED)
+ && IS_SERVER(session))
+ ||
+ ((session->
+ internals.hsk_flags & HSK_CLIENT_OCSP_REQUESTED)
+ && !IS_SERVER(session)))) {
/* append status response if available */
ret = _gnutls_extv_append_init(&buf);
if (ret < 0) {
@@ -322,14 +361,19 @@ int _gnutls13_send_certificate(gnutls_session_t session, unsigned again)
ctx.cert_index = i;
ctx.session = session;
ctx.cred = cred;
- ret = _gnutls_extv_append(&buf, STATUS_REQUEST_TLS_ID,
- &ctx, append_status_request);
+ ret =
+ _gnutls_extv_append(&buf,
+ STATUS_REQUEST_TLS_ID,
+ &ctx,
+ append_status_request);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = _gnutls_extv_append_final(&buf, ext_pos_mark, 0);
+ ret =
+ _gnutls_extv_append_final(&buf,
+ ext_pos_mark, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -345,10 +389,13 @@ int _gnutls13_send_certificate(gnutls_session_t session, unsigned again)
}
}
- _gnutls_write_uint24(buf.length-pos_mark-3, &buf.data[pos_mark]);
+ _gnutls_write_uint24(buf.length - pos_mark - 3,
+ &buf.data[pos_mark]);
if (compress_cert) {
- ret = compress_certificate(&buf, cert_pos_mark, comp_method);
+ ret =
+ compress_certificate(&buf, cert_pos_mark,
+ comp_method);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -371,7 +418,8 @@ typedef struct crt_cert_ctx_st {
unsigned idx;
} crt_cert_ctx_st;
-static int parse_cert_extension(void *_ctx, unsigned tls_id, const uint8_t *data, unsigned data_size)
+static int parse_cert_extension(void *_ctx, unsigned tls_id,
+ const uint8_t * data, unsigned data_size)
{
crt_cert_ctx_st *ctx = _ctx;
gnutls_session_t session = ctx->session;
@@ -379,14 +427,18 @@ static int parse_cert_extension(void *_ctx, unsigned tls_id, const uint8_t *data
if (tls_id == STATUS_REQUEST_TLS_ID) {
#ifdef ENABLE_OCSP
- if (!_gnutls_hello_ext_is_present(session, ext_mod_status_request.gid)) {
+ if (!_gnutls_hello_ext_is_present
+ (session, ext_mod_status_request.gid)) {
gnutls_assert();
goto unexpected;
}
- _gnutls_handshake_log("Found OCSP response on cert %d\n", ctx->idx);
+ _gnutls_handshake_log("Found OCSP response on cert %d\n",
+ ctx->idx);
- ret = _gnutls_parse_ocsp_response(session, data, data_size, ctx->ocsp);
+ ret =
+ _gnutls_parse_ocsp_response(session, data, data_size,
+ ctx->ocsp);
if (ret < 0)
return gnutls_assert_val(ret);
#endif
@@ -397,7 +449,8 @@ static int parse_cert_extension(void *_ctx, unsigned tls_id, const uint8_t *data
return 0;
unexpected:
- _gnutls_debug_log("received unexpected certificate extension (%d)\n", (int)tls_id);
+ _gnutls_debug_log("received unexpected certificate extension (%d)\n",
+ (int)tls_id);
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
}
@@ -426,7 +479,7 @@ parse_cert_list(gnutls_session_t session, uint8_t * data, size_t data_size)
if ((ret =
_gnutls_auth_info_init(session, GNUTLS_CRD_CERTIFICATE,
- sizeof(cert_auth_info_st), 1)) < 0) {
+ sizeof(cert_auth_info_st), 1)) < 0) {
gnutls_assert();
return ret;
}
@@ -456,7 +509,9 @@ parse_cert_list(gnutls_session_t session, uint8_t * data, size_t data_size)
DECR_LEN(data_size, 3);
len = _gnutls_read_uint24(p);
if (len == 0)
- return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_UNEXPECTED_PACKET_LENGTH);
DECR_LEN(data_size, len);
p += len + 3;
@@ -496,7 +551,7 @@ parse_cert_list(gnutls_session_t session, uint8_t * data, size_t data_size)
goto cleanup;
}
- p = data+3;
+ p = data + 3;
/* Now we start parsing the list (again).
* We don't use DECR_LEN since the list has
@@ -524,28 +579,28 @@ parse_cert_list(gnutls_session_t session, uint8_t * data, size_t data_size)
ctx.ocsp = &peer_ocsp[j];
ctx.idx = j;
- ret = _gnutls_extv_parse(&ctx, parse_cert_extension, p, len+2);
+ ret =
+ _gnutls_extv_parse(&ctx, parse_cert_extension, p, len + 2);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- p += len+2;
+ p += len + 2;
npeer_ocsp++;
}
/* The OCSP entries match the certificate entries, although
* the contents of each OCSP entry may be NULL.
*/
- for(j=0;j<info->ncerts;j++)
+ for (j = 0; j < info->ncerts; j++)
gnutls_free(info->raw_certificate_list[j].data);
gnutls_free(info->raw_certificate_list);
- for(j=0;j<info->nocsp;j++)
+ for (j = 0; j < info->nocsp; j++)
gnutls_free(info->raw_ocsp_list[j].data);
gnutls_free(info->raw_ocsp_list);
-
info->raw_certificate_list = peer_certs;
info->ncerts = npeer_certs;
@@ -555,10 +610,10 @@ parse_cert_list(gnutls_session_t session, uint8_t * data, size_t data_size)
return 0;
cleanup:
- for(j=0;j<npeer_certs;j++)
+ for (j = 0; j < npeer_certs; j++)
gnutls_free(peer_certs[j].data);
- for(j=0;j<npeer_ocsp;j++)
+ for (j = 0; j < npeer_ocsp; j++)
gnutls_free(peer_ocsp[j].data);
gnutls_free(peer_certs);
gnutls_free(peer_ocsp);
@@ -587,7 +642,9 @@ compress_certificate(gnutls_buffer_st * buf, unsigned cert_pos_mark,
comp.data = gnutls_malloc(comp_bound);
if (comp.data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- ret = _gnutls_compress(comp_method, comp.data, comp_bound, plain.data, plain.size);
+ ret =
+ _gnutls_compress(comp_method, comp.data, comp_bound, plain.data,
+ plain.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -610,8 +667,8 @@ compress_certificate(gnutls_buffer_st * buf, unsigned cert_pos_mark,
gnutls_assert();
goto cleanup;
}
-
-cleanup:
+
+ cleanup:
gnutls_free(comp.data);
return ret;
}
@@ -629,7 +686,8 @@ decompress_certificate(gnutls_session_t session, gnutls_buffer_st * buf)
return gnutls_assert_val(ret);
comp_method = _gnutls_compress_certificate_num2method(method_num);
- if (!_gnutls_compress_certificate_is_method_enabled(session, comp_method))
+ if (!_gnutls_compress_certificate_is_method_enabled
+ (session, comp_method))
return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
ret = _gnutls_buffer_pop_prefix24(buf, &plain_exp_len, 0);
@@ -643,7 +701,9 @@ decompress_certificate(gnutls_session_t session, gnutls_buffer_st * buf)
plain.data = gnutls_malloc(plain_exp_len);
if (plain.data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- ret = _gnutls_decompress(comp_method, plain.data, plain_exp_len, comp.data, comp.size);
+ ret =
+ _gnutls_decompress(comp_method, plain.data, plain_exp_len,
+ comp.data, comp.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -663,7 +723,7 @@ decompress_certificate(gnutls_session_t session, gnutls_buffer_st * buf)
goto cleanup;
}
-cleanup:
+ cleanup:
gnutls_free(plain.data);
return ret;
}
diff --git a/lib/tls13/certificate.h b/lib/tls13/certificate.h
index 6f46cc2dd6..a0505d560b 100644
--- a/lib/tls13/certificate.h
+++ b/lib/tls13/certificate.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_LIB_TLS13_CERTIFICATE_H
-#define GNUTLS_LIB_TLS13_CERTIFICATE_H
+# define GNUTLS_LIB_TLS13_CERTIFICATE_H
int _gnutls13_recv_certificate(gnutls_session_t session);
int _gnutls13_send_certificate(gnutls_session_t session, unsigned again);
-#endif /* GNUTLS_LIB_TLS13_CERTIFICATE_H */
+#endif /* GNUTLS_LIB_TLS13_CERTIFICATE_H */
diff --git a/lib/tls13/certificate_request.c b/lib/tls13/certificate_request.c
index b613cab13f..1dd92628b5 100644
--- a/lib/tls13/certificate_request.c
+++ b/lib/tls13/certificate_request.c
@@ -42,15 +42,17 @@ typedef struct crt_req_ctx_st {
unsigned got_sig_algo;
gnutls_pk_algorithm_t pk_algos[MAX_ALGOS];
unsigned pk_algos_length;
- const uint8_t *rdn; /* pointer inside the message buffer */
+ const uint8_t *rdn; /* pointer inside the message buffer */
unsigned rdn_size;
} crt_req_ctx_st;
-static unsigned is_algo_in_list(gnutls_pk_algorithm_t algo, gnutls_pk_algorithm_t *list, unsigned list_size)
+static unsigned is_algo_in_list(gnutls_pk_algorithm_t algo,
+ gnutls_pk_algorithm_t * list,
+ unsigned list_size)
{
unsigned j;
- for (j=0;j<list_size;j++) {
+ for (j = 0; j < list_size; j++) {
if (list[j] == algo)
return 1;
}
@@ -58,7 +60,8 @@ static unsigned is_algo_in_list(gnutls_pk_algorithm_t algo, gnutls_pk_algorithm_
}
static
-int parse_cert_extension(void *_ctx, unsigned tls_id, const uint8_t *data, unsigned data_size)
+int parse_cert_extension(void *_ctx, unsigned tls_id, const uint8_t * data,
+ unsigned data_size)
{
crt_req_ctx_st *ctx = _ctx;
gnutls_session_t session = ctx->session;
@@ -75,21 +78,28 @@ int parse_cert_extension(void *_ctx, unsigned tls_id, const uint8_t *data, unsig
unsigned i;
if (ctx->got_sig_algo)
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION);
ctx->got_sig_algo = 1;
if (data_size < 2)
- return gnutls_assert_val(GNUTLS_E_TLS_PACKET_DECODING_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_TLS_PACKET_DECODING_ERROR);
v = _gnutls_read_uint16(data);
- if (v != data_size-2)
- return gnutls_assert_val(GNUTLS_E_TLS_PACKET_DECODING_ERROR);
+ if (v != data_size - 2)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_TLS_PACKET_DECODING_ERROR);
data += 2;
data_size -= 2;
- ret = _gnutls_sign_algorithm_parse_data(session, data, data_size);
+ ret =
+ _gnutls_sign_algorithm_parse_data(session, data, data_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -97,15 +107,18 @@ int parse_cert_extension(void *_ctx, unsigned tls_id, const uint8_t *data, unsig
* key algorithms instead of signatures. Get the public key algorithms
* from the signatures.
*/
- for (i=0;i<(unsigned)data_size;i+=2) {
- se = _gnutls_tls_aid_to_sign_entry(data[i], data[i+1], ver);
+ for (i = 0; i < (unsigned)data_size; i += 2) {
+ se = _gnutls_tls_aid_to_sign_entry(data[i], data[i + 1],
+ ver);
if (se == NULL)
continue;
- if (ctx->pk_algos_length >= sizeof(ctx->pk_algos)/sizeof(ctx->pk_algos[0]))
+ if (ctx->pk_algos_length >=
+ sizeof(ctx->pk_algos) / sizeof(ctx->pk_algos[0]))
break;
- if (is_algo_in_list(se->pk, ctx->pk_algos, ctx->pk_algos_length))
+ if (is_algo_in_list
+ (se->pk, ctx->pk_algos, ctx->pk_algos_length))
continue;
ctx->pk_algos[ctx->pk_algos_length++] = se->pk;
@@ -113,26 +126,31 @@ int parse_cert_extension(void *_ctx, unsigned tls_id, const uint8_t *data, unsig
#ifdef ENABLE_OCSP
} else if (tls_id == ext_mod_status_request.tls_id) {
if (data_size != 0)
- return gnutls_assert_val(GNUTLS_E_TLS_PACKET_DECODING_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_TLS_PACKET_DECODING_ERROR);
/* we are now allowed to send OCSP staples */
session->internals.hsk_flags |= HSK_CLIENT_OCSP_REQUESTED;
#endif
} else if (tls_id == EXTID_CERTIFICATE_AUTHORITIES) {
if (data_size < 3) {
- return gnutls_assert_val(GNUTLS_E_TLS_PACKET_DECODING_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_TLS_PACKET_DECODING_ERROR);
}
v = _gnutls_read_uint16(data);
- if (v != data_size-2)
- return gnutls_assert_val(GNUTLS_E_TLS_PACKET_DECODING_ERROR);
+ if (v != data_size - 2)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_TLS_PACKET_DECODING_ERROR);
- ctx->rdn = data+2;
+ ctx->rdn = data + 2;
ctx->rdn_size = v;
} else if (tls_id == ext_mod_compress_certificate.tls_id) {
ret = _gnutls_compress_certificate_recv_params(session,
- data,
- data_size);
+ data, data_size);
if (ret < 0) {
return gnutls_assert_val(ret);
}
@@ -141,7 +159,8 @@ int parse_cert_extension(void *_ctx, unsigned tls_id, const uint8_t *data, unsig
return 0;
}
-int _gnutls13_recv_certificate_request_int(gnutls_session_t session, gnutls_buffer_st *buf)
+int _gnutls13_recv_certificate_request_int(gnutls_session_t session,
+ gnutls_buffer_st * buf)
{
int ret;
crt_req_ctx_st ctx;
@@ -149,7 +168,8 @@ int _gnutls13_recv_certificate_request_int(gnutls_session_t session, gnutls_buff
gnutls_privkey_t apr_pkey;
int apr_cert_list_length;
- _gnutls_handshake_log("HSK[%p]: parsing certificate request\n", session);
+ _gnutls_handshake_log("HSK[%p]: parsing certificate request\n",
+ session);
if (unlikely(session->security_parameters.entity == GNUTLS_SERVER))
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -158,7 +178,9 @@ int _gnutls13_recv_certificate_request_int(gnutls_session_t session, gnutls_buff
if (!session->internals.initial_negotiation_completed) {
if (buf->data[0] != 0) {
/* The context field must be empty during handshake */
- return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
}
/* buf->length is positive */
@@ -172,8 +194,10 @@ int _gnutls13_recv_certificate_request_int(gnutls_session_t session, gnutls_buff
return gnutls_assert_val(ret);
gnutls_free(session->internals.post_handshake_cr_context.data);
- ret = _gnutls_set_datum(&session->internals.post_handshake_cr_context,
- context.data, context.size);
+ ret =
+ _gnutls_set_datum(&session->
+ internals.post_handshake_cr_context,
+ context.data, context.size);
if (ret < 0)
return gnutls_assert_val(ret);
}
@@ -181,7 +205,9 @@ int _gnutls13_recv_certificate_request_int(gnutls_session_t session, gnutls_buff
memset(&ctx, 0, sizeof(ctx));
ctx.session = session;
- ret = _gnutls_extv_parse(&ctx, parse_cert_extension, buf->data, buf->length);
+ ret =
+ _gnutls_extv_parse(&ctx, parse_cert_extension, buf->data,
+ buf->length);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -204,9 +230,14 @@ int _gnutls13_recv_certificate_request_int(gnutls_session_t session, gnutls_buff
if (apr_cert_list_length > 0) {
gnutls_sign_algorithm_t algo;
- algo = _gnutls_session_get_sign_algo(session, &apr_cert_list[0], apr_pkey, 0, GNUTLS_KX_UNKNOWN);
+ algo =
+ _gnutls_session_get_sign_algo(session, &apr_cert_list[0],
+ apr_pkey, 0,
+ GNUTLS_KX_UNKNOWN);
if (algo == GNUTLS_SIGN_UNKNOWN) {
- _gnutls_handshake_log("HSK[%p]: rejecting client auth because of no suitable signature algorithm\n", session);
+ _gnutls_handshake_log
+ ("HSK[%p]: rejecting client auth because of no suitable signature algorithm\n",
+ session);
_gnutls_selected_certs_deinit(session);
return gnutls_assert_val(0);
}
@@ -229,7 +260,10 @@ int _gnutls13_recv_certificate_request(gnutls_session_t session)
if (unlikely(session->security_parameters.entity != GNUTLS_CLIENT))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- ret = _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST, 1, &buf);
+ ret =
+ _gnutls_recv_handshake(session,
+ GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST, 1,
+ &buf);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -246,7 +280,7 @@ int _gnutls13_recv_certificate_request(gnutls_session_t session)
}
static
-int write_certificate_authorities(void *ctx, gnutls_buffer_st *buf)
+int write_certificate_authorities(void *ctx, gnutls_buffer_st * buf)
{
gnutls_session_t session = ctx;
gnutls_certificate_credentials_t cred;
@@ -266,15 +300,13 @@ int write_certificate_authorities(void *ctx, gnutls_buffer_st *buf)
return
_gnutls_buffer_append_data_prefix(buf, 16,
- cred->
- tlist->x509_rdn_sequence.
+ cred->tlist->x509_rdn_sequence.
data,
- cred->
- tlist->x509_rdn_sequence.
+ cred->tlist->x509_rdn_sequence.
size);
}
-static int append_empty_ext(void *ctx, gnutls_buffer_st *buf)
+static int append_empty_ext(void *ctx, gnutls_buffer_st * buf)
{
return GNUTLS_E_INT_RET_0;
}
@@ -300,30 +332,35 @@ int _gnutls13_send_certificate_request(gnutls_session_t session, unsigned again)
cred = (gnutls_certificate_credentials_t)
_gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE);
if (cred == NULL)
- return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INSUFFICIENT_CREDENTIALS);
ret = _gnutls_buffer_init_handshake_mbuffer(&buf);
if (ret < 0)
return gnutls_assert_val(ret);
- if (session->internals.initial_negotiation_completed) { /* reauth */
+ if (session->internals.initial_negotiation_completed) { /* reauth */
ret = gnutls_rnd(GNUTLS_RND_NONCE, rnd, sizeof(rnd));
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- gnutls_free(session->internals.post_handshake_cr_context.data);
- ret = _gnutls_set_datum(&session->internals.post_handshake_cr_context,
- rnd, sizeof(rnd));
+ gnutls_free(session->
+ internals.post_handshake_cr_context.data);
+ ret =
+ _gnutls_set_datum(&session->
+ internals.post_handshake_cr_context,
+ rnd, sizeof(rnd));
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
ret = _gnutls_buffer_append_data_prefix(&buf, 8,
- session->internals.post_handshake_cr_context.data,
- session->internals.post_handshake_cr_context.size);
+ session->internals.post_handshake_cr_context.data,
+ session->internals.post_handshake_cr_context.size);
} else {
ret = _gnutls_buffer_append_prefix(&buf, 8, 0);
}
@@ -341,23 +378,25 @@ int _gnutls13_send_certificate_request(gnutls_session_t session, unsigned again)
init_pos = ret;
ret = _gnutls_extv_append(&buf, ext_mod_sig.tls_id, session,
- (extv_append_func)_gnutls_sign_algorithm_write_params);
+ (extv_append_func)
+ _gnutls_sign_algorithm_write_params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = _gnutls_extv_append(&buf, EXTID_CERTIFICATE_AUTHORITIES, session,
- write_certificate_authorities);
+ ret =
+ _gnutls_extv_append(&buf, EXTID_CERTIFICATE_AUTHORITIES,
+ session, write_certificate_authorities);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
-
#ifdef ENABLE_OCSP
/* We always advertise our support for OCSP stapling */
- ret = _gnutls_extv_append(&buf, ext_mod_status_request.tls_id, session,
- append_empty_ext);
+ ret =
+ _gnutls_extv_append(&buf, ext_mod_status_request.tls_id,
+ session, append_empty_ext);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -365,8 +404,11 @@ int _gnutls13_send_certificate_request(gnutls_session_t session, unsigned again)
session->internals.hsk_flags |= HSK_CLIENT_OCSP_REQUESTED;
#endif
- ret = _gnutls_extv_append(&buf, ext_mod_compress_certificate.tls_id, session,
- (extv_append_func)_gnutls_compress_certificate_send_params);
+ ret =
+ _gnutls_extv_append(&buf,
+ ext_mod_compress_certificate.tls_id,
+ session, (extv_append_func)
+ _gnutls_compress_certificate_send_params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -383,11 +425,11 @@ int _gnutls13_send_certificate_request(gnutls_session_t session, unsigned again)
session->internals.hsk_flags |= HSK_CRT_REQ_SENT;
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST);
cleanup:
_gnutls_buffer_clear(&buf);
return ret;
}
-
diff --git a/lib/tls13/certificate_request.h b/lib/tls13/certificate_request.h
index 40ac9f2ca2..3f0c9e29f0 100644
--- a/lib/tls13/certificate_request.h
+++ b/lib/tls13/certificate_request.h
@@ -21,11 +21,13 @@
*/
#ifndef GNUTLS_LIB_TLS13_CERTIFICATE_REQUEST_H
-#define GNUTLS_LIB_TLS13_CERTIFICATE_REQUEST_H
+# define GNUTLS_LIB_TLS13_CERTIFICATE_REQUEST_H
int _gnutls13_recv_certificate_request(gnutls_session_t session);
-int _gnutls13_recv_certificate_request_int(gnutls_session_t session, gnutls_buffer_st *buf);
+int _gnutls13_recv_certificate_request_int(gnutls_session_t session,
+ gnutls_buffer_st * buf);
-int _gnutls13_send_certificate_request(gnutls_session_t session, unsigned again);
+int _gnutls13_send_certificate_request(gnutls_session_t session,
+ unsigned again);
-#endif /* GNUTLS_LIB_TLS13_CERTIFICATE_REQUEST_H */
+#endif /* GNUTLS_LIB_TLS13_CERTIFICATE_REQUEST_H */
diff --git a/lib/tls13/certificate_verify.c b/lib/tls13/certificate_verify.c
index 45ff6facfc..fdb9f6da0d 100644
--- a/lib/tls13/certificate_verify.c
+++ b/lib/tls13/certificate_verify.c
@@ -32,12 +32,12 @@
#define SRV_CTX "TLS 1.3, server CertificateVerify"
static const gnutls_datum_t srv_ctx = {
- (void*)SRV_CTX, sizeof(SRV_CTX)-1
+ (void *)SRV_CTX, sizeof(SRV_CTX) - 1
};
#define CLI_CTX "TLS 1.3, client CertificateVerify"
static const gnutls_datum_t cli_ctx = {
- (void*)CLI_CTX, sizeof(CLI_CTX)-1
+ (void *)CLI_CTX, sizeof(CLI_CTX) - 1
};
int _gnutls13_recv_certificate_verify(gnutls_session_t session)
@@ -49,7 +49,8 @@ int _gnutls13_recv_certificate_verify(gnutls_session_t session)
gnutls_certificate_credentials_t cred;
unsigned vflags;
gnutls_pcert_st peer_cert;
- cert_auth_info_t info = _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
+ cert_auth_info_t info =
+ _gnutls_get_auth_info(session, GNUTLS_CRD_CERTIFICATE);
bool server = 0;
gnutls_certificate_type_t cert_type;
@@ -64,13 +65,15 @@ int _gnutls13_recv_certificate_verify(gnutls_session_t session)
server = 1;
cred = (gnutls_certificate_credentials_t)
- _gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE);
+ _gnutls_get_cred(session, GNUTLS_CRD_CERTIFICATE);
if (unlikely(cred == NULL))
return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
if (unlikely(info == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
- ret = _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY, 0, &buf);
+ ret =
+ _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY,
+ 0, &buf);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -82,9 +85,11 @@ int _gnutls13_recv_certificate_verify(gnutls_session_t session)
goto cleanup;
}
- se = _gnutls_tls_aid_to_sign_entry(buf.data[0], buf.data[1], get_version(session));
+ se = _gnutls_tls_aid_to_sign_entry(buf.data[0], buf.data[1],
+ get_version(session));
if (se == NULL) {
- _gnutls_handshake_log("Found unsupported signature (%d.%d)\n", (int)buf.data[0], (int)buf.data[1]);
+ _gnutls_handshake_log("Found unsupported signature (%d.%d)\n",
+ (int)buf.data[0], (int)buf.data[1]);
ret = gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
goto cleanup;
}
@@ -94,8 +99,8 @@ int _gnutls13_recv_certificate_verify(gnutls_session_t session)
else
gnutls_sign_algorithm_set_server(session, se->id);
- buf.data+=2;
- buf.length-=2;
+ buf.data += 2;
+ buf.length -= 2;
/* we check during verification whether the algorithm is enabled */
@@ -122,10 +127,11 @@ int _gnutls13_recv_certificate_verify(gnutls_session_t session)
goto cleanup;
}
- vflags = cred->verify_flags | session->internals.additional_verify_flags;
+ vflags =
+ cred->verify_flags | session->internals.additional_verify_flags;
ret = _gnutls13_handshake_verify_data(session, vflags, &peer_cert,
- server?(&cli_ctx):(&srv_ctx),
+ server ? (&cli_ctx) : (&srv_ctx),
&sig_data, se);
if (ret < 0) {
gnutls_assert();
@@ -153,7 +159,7 @@ int _gnutls13_send_certificate_verify(gnutls_session_t session, unsigned again)
int apr_cert_list_length;
mbuffer_st *bufel = NULL;
gnutls_buffer_st buf;
- gnutls_datum_t sig = {NULL, 0};
+ gnutls_datum_t sig = { NULL, 0 };
gnutls_sign_algorithm_t algo;
const gnutls_sign_entry_st *se;
bool server = 0;
@@ -171,13 +177,16 @@ int _gnutls13_send_certificate_verify(gnutls_session_t session, unsigned again)
server = 1;
ret = _gnutls_get_selected_cert(session, &apr_cert_list,
- &apr_cert_list_length, &apr_pkey);
+ &apr_cert_list_length,
+ &apr_pkey);
if (ret < 0)
return gnutls_assert_val(ret);
if (apr_cert_list_length == 0) {
if (server) {
- return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INSUFFICIENT_CREDENTIALS);
} else {
/* for client, this means either we
* didn't get a cert request or we are
@@ -188,9 +197,15 @@ int _gnutls13_send_certificate_verify(gnutls_session_t session, unsigned again)
}
if (server) {
- algo = _gnutls_session_get_sign_algo(session, &apr_cert_list[0], apr_pkey, 0, GNUTLS_KX_UNKNOWN);
+ algo =
+ _gnutls_session_get_sign_algo(session,
+ &apr_cert_list[0],
+ apr_pkey, 0,
+ GNUTLS_KX_UNKNOWN);
if (algo == GNUTLS_SIGN_UNKNOWN)
- return gnutls_assert_val(GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY);
gnutls_sign_algorithm_set_server(session, algo);
} else {
@@ -198,14 +213,16 @@ int _gnutls13_send_certificate_verify(gnutls_session_t session, unsigned again)
* determined from Certificate Request */
algo = gnutls_sign_algorithm_get_client(session);
if (unlikely(algo == GNUTLS_SIGN_UNKNOWN))
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
se = _gnutls_sign_to_entry(algo);
- ret = _gnutls13_handshake_sign_data(session, &apr_cert_list[0], apr_pkey,
- server?(&srv_ctx):(&cli_ctx),
- &sig, se);
+ ret =
+ _gnutls13_handshake_sign_data(session, &apr_cert_list[0],
+ apr_pkey, server ? (&srv_ctx)
+ : (&cli_ctx), &sig, se);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -221,7 +238,9 @@ int _gnutls13_send_certificate_verify(gnutls_session_t session, unsigned again)
goto cleanup;
}
- ret = _gnutls_buffer_append_data_prefix(&buf, 16, sig.data, sig.size);
+ ret =
+ _gnutls_buffer_append_data_prefix(&buf, 16, sig.data,
+ sig.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -232,7 +251,8 @@ int _gnutls13_send_certificate_verify(gnutls_session_t session, unsigned again)
gnutls_free(sig.data);
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY);
cleanup:
gnutls_free(sig.data);
diff --git a/lib/tls13/certificate_verify.h b/lib/tls13/certificate_verify.h
index 9d4ce3135f..ece2df3f77 100644
--- a/lib/tls13/certificate_verify.h
+++ b/lib/tls13/certificate_verify.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_LIB_TLS13_CERTIFICATE_VERIFY_H
-#define GNUTLS_LIB_TLS13_CERTIFICATE_VERIFY_H
+# define GNUTLS_LIB_TLS13_CERTIFICATE_VERIFY_H
int _gnutls13_recv_certificate_verify(gnutls_session_t session);
int _gnutls13_send_certificate_verify(gnutls_session_t session, unsigned again);
-#endif /* GNUTLS_LIB_TLS13_CERTIFICATE_VERIFY_H */
+#endif /* GNUTLS_LIB_TLS13_CERTIFICATE_VERIFY_H */
diff --git a/lib/tls13/early_data.c b/lib/tls13/early_data.c
index 3d565d54b3..5dc74c325e 100644
--- a/lib/tls13/early_data.c
+++ b/lib/tls13/early_data.c
@@ -34,12 +34,11 @@ int _gnutls13_send_early_data(gnutls_session_t session)
while (session->internals.early_data_presend_buffer.length > 0) {
ret =
- gnutls_record_send(session,
- session->internals.
- early_data_presend_buffer.data,
- session->internals.
- early_data_presend_buffer.
- length);
+ gnutls_record_send(session,
+ session->internals.
+ early_data_presend_buffer.data,
+ session->internals.
+ early_data_presend_buffer.length);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -47,7 +46,6 @@ int _gnutls13_send_early_data(gnutls_session_t session)
session->internals.early_data_presend_buffer.length -= ret;
}
-
return 0;
}
@@ -73,7 +71,8 @@ int _gnutls13_send_end_of_early_data(gnutls_session_t session, unsigned again)
bufel = _gnutls_buffer_to_mbuffer(&buf);
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_END_OF_EARLY_DATA);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_END_OF_EARLY_DATA);
}
int _gnutls13_recv_end_of_early_data(gnutls_session_t session)
@@ -86,7 +85,10 @@ int _gnutls13_recv_end_of_early_data(gnutls_session_t session)
return 0;
if (!(session->internals.flags & GNUTLS_NO_END_OF_EARLY_DATA)) {
- ret = _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_END_OF_EARLY_DATA, 0, &buf);
+ ret =
+ _gnutls_recv_handshake(session,
+ GNUTLS_HANDSHAKE_END_OF_EARLY_DATA,
+ 0, &buf);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -100,7 +102,7 @@ int _gnutls13_recv_end_of_early_data(gnutls_session_t session)
session->internals.hsk_flags &= ~HSK_EARLY_DATA_IN_FLIGHT;
ret = 0;
-cleanup:
+ cleanup:
_gnutls_buffer_clear(&buf);
return ret;
diff --git a/lib/tls13/early_data.h b/lib/tls13/early_data.h
index 6fef12c107..004365605f 100644
--- a/lib/tls13/early_data.h
+++ b/lib/tls13/early_data.h
@@ -21,10 +21,10 @@
*/
#ifndef GNUTLS_LIB_TLS13_EARLY_DATA_H
-#define GNUTLS_LIB_TLS13_EARLY_DATA_H
+# define GNUTLS_LIB_TLS13_EARLY_DATA_H
int _gnutls13_send_end_of_early_data(gnutls_session_t session, unsigned again);
int _gnutls13_recv_end_of_early_data(gnutls_session_t session);
int _gnutls13_send_early_data(gnutls_session_t session);
-#endif /* GNUTLS_LIB_TLS13_EARLY_DATA_H */
+#endif /* GNUTLS_LIB_TLS13_EARLY_DATA_H */
diff --git a/lib/tls13/encrypted_extensions.c b/lib/tls13/encrypted_extensions.c
index 84c328ff26..9821913fad 100644
--- a/lib/tls13/encrypted_extensions.c
+++ b/lib/tls13/encrypted_extensions.c
@@ -32,13 +32,19 @@ int _gnutls13_recv_encrypted_extensions(gnutls_session_t session)
int ret;
gnutls_buffer_st buf;
- ret = _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS, 0, &buf);
+ ret =
+ _gnutls_recv_handshake(session,
+ GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS, 0,
+ &buf);
if (ret < 0)
return gnutls_assert_val(ret);
- _gnutls_handshake_log("HSK[%p]: parsing encrypted extensions\n", session);
- ret = _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_EE, GNUTLS_EXT_ANY,
- buf.data, buf.length);
+ _gnutls_handshake_log("HSK[%p]: parsing encrypted extensions\n",
+ session);
+ ret =
+ _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_EE,
+ GNUTLS_EXT_ANY, buf.data,
+ buf.length);
_gnutls_buffer_clear(&buf);
if (ret < 0)
@@ -47,7 +53,8 @@ int _gnutls13_recv_encrypted_extensions(gnutls_session_t session)
return 0;
}
-int _gnutls13_send_encrypted_extensions(gnutls_session_t session, unsigned again)
+int _gnutls13_send_encrypted_extensions(gnutls_session_t session,
+ unsigned again)
{
int ret;
mbuffer_st *bufel = NULL;
@@ -58,7 +65,10 @@ int _gnutls13_send_encrypted_extensions(gnutls_session_t session, unsigned again
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _gnutls_gen_hello_extensions(session, &buf, GNUTLS_EXT_FLAG_EE, GNUTLS_EXT_ANY);
+ ret =
+ _gnutls_gen_hello_extensions(session, &buf,
+ GNUTLS_EXT_FLAG_EE,
+ GNUTLS_EXT_ANY);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -67,7 +77,8 @@ int _gnutls13_send_encrypted_extensions(gnutls_session_t session, unsigned again
bufel = _gnutls_buffer_to_mbuffer(&buf);
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS);
cleanup:
_gnutls_buffer_clear(&buf);
diff --git a/lib/tls13/encrypted_extensions.h b/lib/tls13/encrypted_extensions.h
index 2c7cf7534a..83b77672ca 100644
--- a/lib/tls13/encrypted_extensions.h
+++ b/lib/tls13/encrypted_extensions.h
@@ -21,9 +21,10 @@
*/
#ifndef GNUTLS_LIB_TLS13_ENCRYPTED_EXTENSIONS_H
-#define GNUTLS_LIB_TLS13_ENCRYPTED_EXTENSIONS_H
+# define GNUTLS_LIB_TLS13_ENCRYPTED_EXTENSIONS_H
int _gnutls13_recv_encrypted_extensions(gnutls_session_t session);
-int _gnutls13_send_encrypted_extensions(gnutls_session_t session, unsigned again);
+int _gnutls13_send_encrypted_extensions(gnutls_session_t session,
+ unsigned again);
-#endif /* GNUTLS_LIB_TLS13_ENCRYPTED_EXTENSIONS_H */
+#endif /* GNUTLS_LIB_TLS13_ENCRYPTED_EXTENSIONS_H */
diff --git a/lib/tls13/finished.c b/lib/tls13/finished.c
index ec646e6732..e447e9e50e 100644
--- a/lib/tls13/finished.c
+++ b/lib/tls13/finished.c
@@ -28,34 +28,30 @@
#include "mbuffers.h"
#include "secrets.h"
-int _gnutls13_compute_finished(const mac_entry_st *prf,
- const uint8_t *base_key,
- gnutls_buffer_st *handshake_hash_buffer,
- void *out)
+int _gnutls13_compute_finished(const mac_entry_st * prf,
+ const uint8_t * base_key,
+ gnutls_buffer_st * handshake_hash_buffer,
+ void *out)
{
int ret;
uint8_t fkey[MAX_HASH_SIZE];
uint8_t ts_hash[MAX_HASH_SIZE];
ret = _tls13_expand_secret2(prf,
- "finished", 8,
- NULL, 0,
- base_key,
- prf->output_size, fkey);
+ "finished", 8,
+ NULL, 0, base_key, prf->output_size, fkey);
if (ret < 0)
return gnutls_assert_val(ret);
ret = gnutls_hash_fast(MAC_TO_DIG(prf->id),
handshake_hash_buffer->data,
- handshake_hash_buffer->length,
- ts_hash);
+ handshake_hash_buffer->length, ts_hash);
if (ret < 0)
return gnutls_assert_val(ret);
ret = gnutls_hmac_fast(prf->id,
fkey, prf->output_size,
- ts_hash, prf->output_size,
- out);
+ ts_hash, prf->output_size, out);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -88,15 +84,17 @@ int _gnutls13_recv_finished(gnutls_session_t session)
}
ret = _gnutls13_compute_finished(session->security_parameters.prf,
- base_key,
- &session->internals.handshake_hash_buffer,
- verifier);
+ base_key,
+ &session->
+ internals.handshake_hash_buffer,
+ verifier);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_FINISHED, 0, &buf);
+ ret =
+ _gnutls_recv_handshake(session, GNUTLS_HANDSHAKE_FINISHED, 0, &buf);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -107,8 +105,6 @@ int _gnutls13_recv_finished(gnutls_session_t session)
ret = GNUTLS_E_UNEXPECTED_PACKET_LENGTH;
goto cleanup;
}
-
-
#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
# warning This is unsafe for production builds
#else
@@ -120,8 +116,8 @@ int _gnutls13_recv_finished(gnutls_session_t session)
#endif
ret = 0;
-cleanup:
-
+ cleanup:
+
_gnutls_buffer_clear(&buf);
return ret;
}
@@ -141,21 +137,25 @@ int _gnutls13_send_finished(gnutls_session_t session, unsigned again)
hash_size = session->security_parameters.prf->output_size;
if (!session->internals.initial_negotiation_completed) {
- if (session->security_parameters.entity == GNUTLS_CLIENT)
+ if (session->security_parameters.entity ==
+ GNUTLS_CLIENT)
base_key = session->key.proto.tls13.hs_ckey;
else
base_key = session->key.proto.tls13.hs_skey;
} else {
- if (session->security_parameters.entity == GNUTLS_CLIENT)
+ if (session->security_parameters.entity ==
+ GNUTLS_CLIENT)
base_key = session->key.proto.tls13.ap_ckey;
else
base_key = session->key.proto.tls13.ap_skey;
}
- ret = _gnutls13_compute_finished(session->security_parameters.prf,
- base_key,
- &session->internals.handshake_hash_buffer,
- verifier);
+ ret =
+ _gnutls13_compute_finished(session->security_parameters.prf,
+ base_key,
+ &session->
+ internals.handshake_hash_buffer,
+ verifier);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -175,9 +175,10 @@ int _gnutls13_send_finished(gnutls_session_t session, unsigned again)
}
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_FINISHED);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_FINISHED);
-cleanup:
+ cleanup:
_mbuffer_xfree(&bufel);
return ret;
}
diff --git a/lib/tls13/finished.h b/lib/tls13/finished.h
index cf475b220f..3628d163e2 100644
--- a/lib/tls13/finished.h
+++ b/lib/tls13/finished.h
@@ -21,13 +21,13 @@
*/
#ifndef GNUTLS_LIB_TLS13_FINISHED_H
-#define GNUTLS_LIB_TLS13_FINISHED_H
+# define GNUTLS_LIB_TLS13_FINISHED_H
-int _gnutls13_compute_finished(const mac_entry_st *prf,
- const uint8_t *base_key,
- gnutls_buffer_st *handshake_hash_buffer,
- void *out);
+int _gnutls13_compute_finished(const mac_entry_st * prf,
+ const uint8_t * base_key,
+ gnutls_buffer_st * handshake_hash_buffer,
+ void *out);
int _gnutls13_recv_finished(gnutls_session_t session);
int _gnutls13_send_finished(gnutls_session_t session, unsigned again);
-#endif /* GNUTLS_LIB_TLS13_FINISHED_H */
+#endif /* GNUTLS_LIB_TLS13_FINISHED_H */
diff --git a/lib/tls13/hello_retry.c b/lib/tls13/hello_retry.c
index dd4cba576a..00a0360aff 100644
--- a/lib/tls13/hello_retry.c
+++ b/lib/tls13/hello_retry.c
@@ -35,11 +35,12 @@ int _gnutls13_send_hello_retry_request(gnutls_session_t session, unsigned again)
mbuffer_st *bufel = NULL;
gnutls_buffer_st buf;
const version_entry_st *ver;
- const uint8_t vbuf[2] = {0x03, 0x03};
+ const uint8_t vbuf[2] = { 0x03, 0x03 };
if (again == 0) {
ver = get_version(session);
- if (unlikely(ver == NULL || session->security_parameters.cs == NULL))
+ if (unlikely
+ (ver == NULL || session->security_parameters.cs == NULL))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
ret = _gnutls_buffer_init_handshake_mbuffer(&buf);
@@ -66,7 +67,10 @@ int _gnutls13_send_hello_retry_request(gnutls_session_t session, unsigned again)
goto cleanup;
}
- ret = _gnutls_buffer_append_data(&buf, session->security_parameters.cs->id, 2);
+ ret =
+ _gnutls_buffer_append_data(&buf,
+ session->security_parameters.
+ cs->id, 2);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -95,7 +99,8 @@ int _gnutls13_send_hello_retry_request(gnutls_session_t session, unsigned again)
bufel = _gnutls_buffer_to_mbuffer(&buf);
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST);
cleanup:
_gnutls_buffer_clear(&buf);
@@ -104,7 +109,7 @@ int _gnutls13_send_hello_retry_request(gnutls_session_t session, unsigned again)
int
_gnutls13_recv_hello_retry_request(gnutls_session_t session,
- gnutls_buffer_st *buf)
+ gnutls_buffer_st * buf)
{
int ret;
uint8_t tmp[2];
@@ -151,7 +156,8 @@ _gnutls13_recv_hello_retry_request(gnutls_session_t session,
if (unlikely(cs == NULL))
return gnutls_assert_val(GNUTLS_E_UNKNOWN_CIPHER_SUITE);
- _gnutls_handshake_log("EXT[%p]: Hello Retry Request with %s\n", session, cs->name);
+ _gnutls_handshake_log("EXT[%p]: Hello Retry Request with %s\n", session,
+ cs->name);
memcpy(session->internals.hrr_cs, cs->id, 2);
prf = mac_to_entry(cs->prf);
@@ -184,8 +190,10 @@ _gnutls13_recv_hello_retry_request(gnutls_session_t session,
return gnutls_assert_val(ret);
/* parse the rest of extensions */
- ret = _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_HRR, GNUTLS_EXT_ANY,
- buf->data, buf->length);
+ ret =
+ _gnutls_parse_hello_extensions(session, GNUTLS_EXT_FLAG_HRR,
+ GNUTLS_EXT_ANY, buf->data,
+ buf->length);
if (ret < 0)
return gnutls_assert_val(ret);
diff --git a/lib/tls13/hello_retry.h b/lib/tls13/hello_retry.h
index 373670f208..95f0400358 100644
--- a/lib/tls13/hello_retry.h
+++ b/lib/tls13/hello_retry.h
@@ -21,8 +21,9 @@
*/
#ifndef GNUTLS_LIB_TLS13_HELLO_RETRY_H
-#define GNUTLS_LIB_TLS13_HELLO_RETRY_H
+# define GNUTLS_LIB_TLS13_HELLO_RETRY_H
-int _gnutls13_send_hello_retry_request(gnutls_session_t session, unsigned again);
+int _gnutls13_send_hello_retry_request(gnutls_session_t session,
+ unsigned again);
-#endif /* GNUTLS_LIB_TLS13_HELLO_RETRY_H */
+#endif /* GNUTLS_LIB_TLS13_HELLO_RETRY_H */
diff --git a/lib/tls13/key_update.c b/lib/tls13/key_update.c
index 10d2c77050..7a1641e880 100644
--- a/lib/tls13/key_update.c
+++ b/lib/tls13/key_update.c
@@ -38,13 +38,14 @@
* because KTLS most likely doesn't support key update.
*/
static inline int set_ktls_keys(gnutls_session_t session,
- gnutls_transport_ktls_enable_flags_t iface)
+ gnutls_transport_ktls_enable_flags_t iface)
{
if (_gnutls_ktls_set_keys(session, iface) < 0) {
session->internals.ktls_enabled = 0;
session->internals.invalid_connection = true;
session->internals.resumable = false;
- _gnutls_audit_log(session, "invalidating session: KTLS - couldn't update keys\n");
+ _gnutls_audit_log(session,
+ "invalidating session: KTLS - couldn't update keys\n");
return GNUTLS_E_INTERNAL_ERROR;
}
return 0;
@@ -54,8 +55,9 @@ static int update_keys(gnutls_session_t session, hs_stage_t stage)
{
int ret;
- ret = _tls13_update_secret(session, session->key.proto.tls13.temp_secret,
- session->key.proto.tls13.temp_secret_size);
+ ret =
+ _tls13_update_secret(session, session->key.proto.tls13.temp_secret,
+ session->key.proto.tls13.temp_secret_size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -72,15 +74,17 @@ static int update_keys(gnutls_session_t session, hs_stage_t stage)
return gnutls_assert_val(ret);
if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND))
- ret = set_ktls_keys(session, GNUTLS_KTLS_SEND);
+ ret = set_ktls_keys(session, GNUTLS_KTLS_SEND);
} else {
ret = _tls13_connection_state_init(session, stage);
if (ret < 0)
return gnutls_assert_val(ret);
- if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND) && stage == STAGE_UPD_OURS)
+ if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_SEND)
+ && stage == STAGE_UPD_OURS)
ret = set_ktls_keys(session, GNUTLS_KTLS_SEND);
- else if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_RECV) && stage == STAGE_UPD_PEERS)
+ else if (IS_KTLS_ENABLED(session, GNUTLS_KTLS_RECV)
+ && stage == STAGE_UPD_PEERS)
ret = set_ktls_keys(session, GNUTLS_KTLS_RECV);
}
if (ret < 0)
@@ -89,7 +93,7 @@ static int update_keys(gnutls_session_t session, hs_stage_t stage)
return 0;
}
-int _gnutls13_recv_key_update(gnutls_session_t session, gnutls_buffer_st *buf)
+int _gnutls13_recv_key_update(gnutls_session_t session, gnutls_buffer_st * buf)
{
int ret;
struct timespec now;
@@ -109,9 +113,9 @@ int _gnutls13_recv_key_update(gnutls_session_t session, gnutls_buffer_st *buf)
if (unlikely(++session->internals.key_update_count >
KEY_UPDATES_PER_WINDOW)) {
- _gnutls_debug_log("reached maximum number of key updates per %d milliseconds (%d)\n",
- KEY_UPDATES_WINDOW,
- KEY_UPDATES_PER_WINDOW);
+ _gnutls_debug_log
+ ("reached maximum number of key updates per %d milliseconds (%d)\n",
+ KEY_UPDATES_WINDOW, KEY_UPDATES_PER_WINDOW);
return gnutls_assert_val(GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS);
}
@@ -120,7 +124,7 @@ int _gnutls13_recv_key_update(gnutls_session_t session, gnutls_buffer_st *buf)
_gnutls_handshake_log("HSK[%p]: received TLS 1.3 key update (%u)\n",
session, (unsigned)buf->data[0]);
- switch(buf->data[0]) {
+ switch (buf->data[0]) {
case 0:
/* peer updated its key, not requested our key update */
ret = update_keys(session, STAGE_UPD_PEERS);
@@ -145,9 +149,11 @@ int _gnutls13_recv_key_update(gnutls_session_t session, gnutls_buffer_st *buf)
* message.
*/
if (session->internals.rsend_state == RECORD_SEND_NORMAL)
- session->internals.rsend_state = RECORD_SEND_KEY_UPDATE_1;
+ session->internals.rsend_state =
+ RECORD_SEND_KEY_UPDATE_1;
else if (session->internals.rsend_state == RECORD_SEND_CORKED)
- session->internals.rsend_state = RECORD_SEND_CORKED_TO_KU;
+ session->internals.rsend_state =
+ RECORD_SEND_CORKED_TO_KU;
break;
default:
@@ -159,7 +165,8 @@ int _gnutls13_recv_key_update(gnutls_session_t session, gnutls_buffer_st *buf)
return 0;
}
-int _gnutls13_send_key_update(gnutls_session_t session, unsigned again, unsigned flags /* GNUTLS_KU_* */)
+int _gnutls13_send_key_update(gnutls_session_t session, unsigned again,
+ unsigned flags /* GNUTLS_KU_* */ )
{
int ret;
mbuffer_st *bufel = NULL;
@@ -175,7 +182,8 @@ int _gnutls13_send_key_update(gnutls_session_t session, unsigned again, unsigned
val = 0x00;
}
- _gnutls_handshake_log("HSK[%p]: sending key update (%u)\n", session, (unsigned)val);
+ _gnutls_handshake_log("HSK[%p]: sending key update (%u)\n",
+ session, (unsigned)val);
bufel = _gnutls_handshake_alloc(session, 1);
if (bufel == NULL)
@@ -190,9 +198,10 @@ int _gnutls13_send_key_update(gnutls_session_t session, unsigned again, unsigned
}
- return _gnutls_send_handshake(session, bufel, GNUTLS_HANDSHAKE_KEY_UPDATE);
+ return _gnutls_send_handshake(session, bufel,
+ GNUTLS_HANDSHAKE_KEY_UPDATE);
-cleanup:
+ cleanup:
_mbuffer_xfree(&bufel);
return ret;
}
@@ -227,8 +236,7 @@ int gnutls_session_key_update(gnutls_session_t session, unsigned flags)
if (!vers->tls13_sem)
return GNUTLS_E_INVALID_REQUEST;
- ret =
- _gnutls13_send_key_update(session, AGAIN(STATE150), flags);
+ ret = _gnutls13_send_key_update(session, AGAIN(STATE150), flags);
STATE = STATE150;
if (ret < 0) {
diff --git a/lib/tls13/key_update.h b/lib/tls13/key_update.h
index 4a0123a1fb..ad29c34b89 100644
--- a/lib/tls13/key_update.h
+++ b/lib/tls13/key_update.h
@@ -21,9 +21,10 @@
*/
#ifndef GNUTLS_LIB_TLS13_KEY_UPDATE_H
-#define GNUTLS_LIB_TLS13_KEY_UPDATE_H
+# define GNUTLS_LIB_TLS13_KEY_UPDATE_H
-int _gnutls13_recv_key_update(gnutls_session_t session, gnutls_buffer_st *buf);
-int _gnutls13_send_key_update(gnutls_session_t session, unsigned again, unsigned flags);
+int _gnutls13_recv_key_update(gnutls_session_t session, gnutls_buffer_st * buf);
+int _gnutls13_send_key_update(gnutls_session_t session, unsigned again,
+ unsigned flags);
-#endif /* GNUTLS_LIB_TLS13_KEY_UPDATE_H */
+#endif /* GNUTLS_LIB_TLS13_KEY_UPDATE_H */
diff --git a/lib/tls13/post_handshake.c b/lib/tls13/post_handshake.c
index 97ca287db7..fa42b2c126 100644
--- a/lib/tls13/post_handshake.c
+++ b/lib/tls13/post_handshake.c
@@ -78,24 +78,37 @@ int _gnutls13_reauth_client(gnutls_session_t session)
/* restore handshake transcript */
_gnutls_buffer_reset(&session->internals.handshake_hash_buffer);
- ret = gnutls_buffer_append_data(&session->internals.handshake_hash_buffer,
- session->internals.post_handshake_hash_buffer.data,
- session->internals.post_handshake_hash_buffer.length);
+ ret =
+ gnutls_buffer_append_data(&session->
+ internals.handshake_hash_buffer,
+ session->
+ internals.post_handshake_hash_buffer.
+ data,
+ session->
+ internals.post_handshake_hash_buffer.length);
if (ret < 0)
return gnutls_assert_val(ret);
/* append the previously received certificate request message, to the
* transcript. */
- ret = gnutls_buffer_append_data(&session->internals.handshake_hash_buffer,
- session->internals.reauth_buffer.data,
- session->internals.reauth_buffer.length);
+ ret =
+ gnutls_buffer_append_data(&session->
+ internals.handshake_hash_buffer,
+ session->internals.
+ reauth_buffer.data,
+ session->internals.
+ reauth_buffer.length);
if (ret < 0)
return gnutls_assert_val(ret);
- session->internals.handshake_hash_buffer_prev_len = session->internals.handshake_hash_buffer.length;
+ session->internals.handshake_hash_buffer_prev_len =
+ session->internals.handshake_hash_buffer.length;
/* skip the reauth buffer handshake message headers */
- ret = _gnutls_buffer_pop_prefix32(&session->internals.reauth_buffer, &tmp, 0);
+ ret =
+ _gnutls_buffer_pop_prefix32(&session->
+ internals.reauth_buffer, &tmp,
+ 0);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -112,7 +125,9 @@ int _gnutls13_reauth_client(gnutls_session_t session)
IMED_RET("send certificate", ret, 0);
FALLTHROUGH;
case REAUTH_STATE3:
- ret = _gnutls13_send_certificate_verify(session, AGAIN(REAUTH_STATE3));
+ ret =
+ _gnutls13_send_certificate_verify(session,
+ AGAIN(REAUTH_STATE3));
REAUTH_STATE = REAUTH_STATE3;
IMED_RET("send certificate verify", ret, 0);
FALLTHROUGH;
@@ -146,7 +161,8 @@ int _gnutls13_reauth_server(gnutls_session_t session)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if (session->internals.send_cert_req == 0) {
- _gnutls_debug_log("You need to call gnutls_certificate_server_set_request to enable post handshake auth\n");
+ _gnutls_debug_log
+ ("You need to call gnutls_certificate_server_set_request to enable post handshake auth\n");
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -154,17 +170,25 @@ int _gnutls13_reauth_server(gnutls_session_t session)
case REAUTH_STATE0:
/* restore handshake transcript */
_gnutls_buffer_reset(&session->internals.handshake_hash_buffer);
- ret = gnutls_buffer_append_data(&session->internals.handshake_hash_buffer,
- session->internals.post_handshake_hash_buffer.data,
- session->internals.post_handshake_hash_buffer.length);
+ ret =
+ gnutls_buffer_append_data(&session->
+ internals.handshake_hash_buffer,
+ session->
+ internals.post_handshake_hash_buffer.
+ data,
+ session->
+ internals.post_handshake_hash_buffer.length);
if (ret < 0)
return gnutls_assert_val(ret);
- session->internals.handshake_hash_buffer_prev_len = session->internals.handshake_hash_buffer.length;
+ session->internals.handshake_hash_buffer_prev_len =
+ session->internals.handshake_hash_buffer.length;
FALLTHROUGH;
case REAUTH_STATE1:
- ret = _gnutls13_send_certificate_request(session, AGAIN(REAUTH_STATE1));
+ ret =
+ _gnutls13_send_certificate_request(session,
+ AGAIN(REAUTH_STATE1));
REAUTH_STATE = REAUTH_STATE1;
IMED_RET("send certificate request", ret, 0);
FALLTHROUGH;
diff --git a/lib/tls13/psk_ext_parser.c b/lib/tls13/psk_ext_parser.c
index 33ebc04615..68ac0ea50b 100644
--- a/lib/tls13/psk_ext_parser.c
+++ b/lib/tls13/psk_ext_parser.c
@@ -27,7 +27,7 @@
/* Returns GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE when no identities
* are present, or 0, on success.
*/
-int _gnutls13_psk_ext_parser_init(psk_ext_parser_st *p,
+int _gnutls13_psk_ext_parser_init(psk_ext_parser_st * p,
const unsigned char *data, size_t len)
{
if (!p || !data || !len)
@@ -42,7 +42,7 @@ int _gnutls13_psk_ext_parser_init(psk_ext_parser_st *p,
if (p->identities_len == 0)
return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
- p->identities_data = (unsigned char *) data;
+ p->identities_data = (unsigned char *)data;
DECR_LEN(len, p->identities_len);
data += p->identities_len;
@@ -62,7 +62,7 @@ int _gnutls13_psk_ext_parser_init(psk_ext_parser_st *p,
* Returns GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE when no more identities
* are present, or 0, on success.
*/
-int _gnutls13_psk_ext_iter_next_identity(psk_ext_iter_st *iter,
+int _gnutls13_psk_ext_iter_next_identity(psk_ext_iter_st * iter,
struct psk_st *psk)
{
if (iter->identities_len == 0)
@@ -74,7 +74,7 @@ int _gnutls13_psk_ext_iter_next_identity(psk_ext_iter_st *iter,
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
iter->identities_data += 2;
- psk->identity.data = (void*)iter->identities_data;
+ psk->identity.data = (void *)iter->identities_data;
DECR_LEN(iter->identities_len, psk->identity.size);
iter->identities_data += psk->identity.size;
@@ -91,8 +91,8 @@ int _gnutls13_psk_ext_iter_next_identity(psk_ext_iter_st *iter,
* Returns GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE when no more identities
* are present, or 0, on success.
*/
-int _gnutls13_psk_ext_iter_next_binder(psk_ext_iter_st *iter,
- gnutls_datum_t *binder)
+int _gnutls13_psk_ext_iter_next_binder(psk_ext_iter_st * iter,
+ gnutls_datum_t * binder)
{
if (iter->binders_len == 0)
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
@@ -103,7 +103,7 @@ int _gnutls13_psk_ext_iter_next_binder(psk_ext_iter_st *iter,
return gnutls_assert_val(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
iter->binders_data++;
- binder->data = (uint8_t *)iter->binders_data;
+ binder->data = (uint8_t *) iter->binders_data;
DECR_LEN(iter->binders_len, binder->size);
iter->binders_data += binder->size;
diff --git a/lib/tls13/psk_ext_parser.h b/lib/tls13/psk_ext_parser.h
index f46b211e0a..65c617f43d 100644
--- a/lib/tls13/psk_ext_parser.h
+++ b/lib/tls13/psk_ext_parser.h
@@ -21,7 +21,7 @@
*/
#ifndef GNUTLS_LIB_TLS13_PSK_EXT_PARSER_H
-#define GNUTLS_LIB_TLS13_PSK_EXT_PARSER_H
+# define GNUTLS_LIB_TLS13_PSK_EXT_PARSER_H
struct psk_ext_parser_st {
const unsigned char *identities_data;
@@ -40,19 +40,19 @@ struct psk_st {
uint32_t ob_ticket_age;
};
-int _gnutls13_psk_ext_parser_init(psk_ext_parser_st *p,
+int _gnutls13_psk_ext_parser_init(psk_ext_parser_st * p,
const unsigned char *data, size_t len);
inline static
-void _gnutls13_psk_ext_iter_init(psk_ext_iter_st *iter,
- const psk_ext_parser_st *p)
+void _gnutls13_psk_ext_iter_init(psk_ext_iter_st * iter,
+ const psk_ext_parser_st * p)
{
memcpy(iter, p, sizeof(*p));
}
-int _gnutls13_psk_ext_iter_next_identity(psk_ext_iter_st *iter,
+int _gnutls13_psk_ext_iter_next_identity(psk_ext_iter_st * iter,
struct psk_st *psk);
-int _gnutls13_psk_ext_iter_next_binder(psk_ext_iter_st *iter,
- gnutls_datum_t *binder);
+int _gnutls13_psk_ext_iter_next_binder(psk_ext_iter_st * iter,
+ gnutls_datum_t * binder);
-#endif /* GNUTLS_LIB_TLS13_PSK_EXT_PARSER_H */
+#endif /* GNUTLS_LIB_TLS13_PSK_EXT_PARSER_H */
diff --git a/lib/tls13/session_ticket.c b/lib/tls13/session_ticket.c
index 909ab05dc0..546f90257a 100644
--- a/lib/tls13/session_ticket.c
+++ b/lib/tls13/session_ticket.c
@@ -34,7 +34,8 @@
#include "db.h"
static int
-pack_ticket(gnutls_session_t session, tls13_ticket_st *ticket, gnutls_datum_t *packed)
+pack_ticket(gnutls_session_t session, tls13_ticket_st * ticket,
+ gnutls_datum_t * packed)
{
uint8_t *p;
gnutls_datum_t state;
@@ -45,8 +46,8 @@ pack_ticket(gnutls_session_t session, tls13_ticket_st *ticket, gnutls_datum_t *p
return gnutls_assert_val(ret);
packed->size = 2 + 4 + 4 +
- 1 + ticket->prf->output_size +
- 1 + ticket->nonce_size + 2 + state.size + 12;
+ 1 + ticket->prf->output_size +
+ 1 + ticket->nonce_size + 2 + state.size + 12;
packed->data = gnutls_malloc(packed->size);
if (!packed->data) {
@@ -93,7 +94,8 @@ pack_ticket(gnutls_session_t session, tls13_ticket_st *ticket, gnutls_datum_t *p
}
static int
-unpack_ticket(gnutls_session_t session, gnutls_datum_t *packed, tls13_ticket_st *data)
+unpack_ticket(gnutls_session_t session, gnutls_datum_t * packed,
+ tls13_ticket_st * data)
{
uint32_t age_add, lifetime;
struct timespec creation_time;
@@ -193,7 +195,7 @@ unpack_ticket(gnutls_session_t session, gnutls_datum_t *packed, tls13_ticket_st
}
static int
-generate_session_ticket(gnutls_session_t session, tls13_ticket_st *ticket)
+generate_session_ticket(gnutls_session_t session, tls13_ticket_st * ticket)
{
int ret;
gnutls_datum_t packed = { NULL, 0 };
@@ -204,11 +206,14 @@ generate_session_ticket(gnutls_session_t session, tls13_ticket_st *ticket)
if (session->internals.resumed) {
/* If we are resuming ensure that we don't extend the lifetime
* of the ticket past the original session expiration time */
- if (now.tv_sec >= session->security_parameters.timestamp + session->internals.expire_time)
- return GNUTLS_E_INT_RET_0; /* don't send ticket */
+ if (now.tv_sec >=
+ session->security_parameters.timestamp +
+ session->internals.expire_time)
+ return GNUTLS_E_INT_RET_0; /* don't send ticket */
else
- ticket->lifetime = session->security_parameters.timestamp +
- session->internals.expire_time - now.tv_sec;
+ ticket->lifetime =
+ session->security_parameters.timestamp +
+ session->internals.expire_time - now.tv_sec;
} else {
/* Set ticket lifetime to the default expiration time */
ticket->lifetime = session->internals.expire_time;
@@ -218,10 +223,12 @@ generate_session_ticket(gnutls_session_t session, tls13_ticket_st *ticket)
ticket->nonce_size = 4;
if ((ret = gnutls_rnd(GNUTLS_RND_NONCE,
- ticket->nonce, ticket->nonce_size)) < 0)
+ ticket->nonce, ticket->nonce_size)) < 0)
return gnutls_assert_val(ret);
- if ((ret = gnutls_rnd(GNUTLS_RND_NONCE, &ticket->age_add, sizeof(uint32_t))) < 0)
+ if ((ret =
+ gnutls_rnd(GNUTLS_RND_NONCE, &ticket->age_add,
+ sizeof(uint32_t))) < 0)
return gnutls_assert_val(ret);
/* This is merely to produce the same binder value on
* different endian architectures. */
@@ -239,8 +246,7 @@ generate_session_ticket(gnutls_session_t session, tls13_ticket_st *ticket)
ticket_data.nonce_size = ticket->nonce_size;
ticket_data.prf = ticket->prf;
memcpy(&ticket_data.resumption_master_secret,
- session->key.proto.tls13.ap_rms,
- ticket->prf->output_size);
+ session->key.proto.tls13.ap_rms, ticket->prf->output_size);
ret = pack_ticket(session, &ticket_data, &packed);
if (ret < 0)
@@ -254,7 +260,7 @@ generate_session_ticket(gnutls_session_t session, tls13_ticket_st *ticket)
return 0;
}
-static int append_nst_extension(void *ctx, gnutls_buffer_st *buf)
+static int append_nst_extension(void *ctx, gnutls_buffer_st * buf)
{
gnutls_session_t session = ctx;
int ret;
@@ -271,7 +277,8 @@ static int append_nst_extension(void *ctx, gnutls_buffer_st *buf)
return ret;
}
-int _gnutls13_send_session_ticket(gnutls_session_t session, unsigned nr, unsigned again)
+int _gnutls13_send_session_ticket(gnutls_session_t session, unsigned nr,
+ unsigned again)
{
int ret = 0;
mbuffer_st *bufel = NULL;
@@ -294,7 +301,7 @@ int _gnutls13_send_session_ticket(gnutls_session_t session, unsigned nr, unsigne
return gnutls_assert_val(0);
if (again == 0) {
- for (i=0;i<nr;i++) {
+ for (i = 0; i < nr; i++) {
unsigned init_pos;
memset(&ticket, 0, sizeof(tls13_ticket_st));
@@ -314,27 +321,39 @@ int _gnutls13_send_session_ticket(gnutls_session_t session, unsigned nr, unsigne
goto cleanup;
}
- ret = _gnutls_buffer_append_prefix(&buf, 32, ticket.lifetime);
+ ret =
+ _gnutls_buffer_append_prefix(&buf, 32,
+ ticket.lifetime);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = _gnutls_buffer_append_prefix(&buf, 32, ticket.age_add);
+ ret =
+ _gnutls_buffer_append_prefix(&buf, 32,
+ ticket.age_add);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
/* append ticket_nonce */
- ret = _gnutls_buffer_append_data_prefix(&buf, 8, ticket.nonce, ticket.nonce_size);
+ ret =
+ _gnutls_buffer_append_data_prefix(&buf, 8,
+ ticket.nonce,
+ ticket.nonce_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
/* append ticket */
- ret = _gnutls_buffer_append_data_prefix(&buf, 16, ticket.ticket.data, ticket.ticket.size);
+ ret =
+ _gnutls_buffer_append_data_prefix(&buf, 16,
+ ticket.
+ ticket.data,
+ ticket.
+ ticket.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -350,8 +369,10 @@ int _gnutls13_send_session_ticket(gnutls_session_t session, unsigned nr, unsigne
}
init_pos = ret;
- ret = _gnutls_extv_append(&buf, ext_mod_early_data.tls_id, session,
- (extv_append_func)append_nst_extension);
+ ret =
+ _gnutls_extv_append(&buf, ext_mod_early_data.tls_id,
+ session, (extv_append_func)
+ append_nst_extension);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -366,7 +387,8 @@ int _gnutls13_send_session_ticket(gnutls_session_t session, unsigned nr, unsigne
bufel = _gnutls_buffer_to_mbuffer(&buf);
ret = _gnutls_send_handshake2(session, bufel,
- GNUTLS_HANDSHAKE_NEW_SESSION_TICKET, 1);
+ GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
+ 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -380,7 +402,7 @@ int _gnutls13_send_session_ticket(gnutls_session_t session, unsigned nr, unsigne
return ret;
-cleanup:
+ cleanup:
_gnutls_free_datum(&ticket.ticket);
_mbuffer_xfree(&bufel);
_gnutls_buffer_clear(&buf);
@@ -388,19 +410,23 @@ cleanup:
return ret;
}
-static int parse_nst_extension(void *ctx, unsigned tls_id, const unsigned char *data, unsigned data_size)
+static int parse_nst_extension(void *ctx, unsigned tls_id,
+ const unsigned char *data, unsigned data_size)
{
gnutls_session_t session = ctx;
if (tls_id == ext_mod_early_data.tls_id) {
if (data_size < 4)
- return gnutls_assert_val(GNUTLS_E_TLS_PACKET_DECODING_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_TLS_PACKET_DECODING_ERROR);
session->security_parameters.max_early_data_size =
- _gnutls_read_uint32(data);
+ _gnutls_read_uint32(data);
}
return 0;
}
-int _gnutls13_recv_session_ticket(gnutls_session_t session, gnutls_buffer_st *buf)
+int _gnutls13_recv_session_ticket(gnutls_session_t session,
+ gnutls_buffer_st * buf)
{
int ret;
uint8_t value;
@@ -414,7 +440,8 @@ int _gnutls13_recv_session_ticket(gnutls_session_t session, gnutls_buffer_st *bu
_gnutls_free_datum(&ticket->ticket);
memset(ticket, 0, sizeof(tls13_ticket_st));
- _gnutls_handshake_log("HSK[%p]: parsing session ticket message\n", session);
+ _gnutls_handshake_log("HSK[%p]: parsing session ticket message\n",
+ session);
/* ticket_lifetime */
ret = _gnutls_buffer_pop_prefix32(buf, &val, 0);
@@ -449,7 +476,9 @@ int _gnutls13_recv_session_ticket(gnutls_session_t session, gnutls_buffer_st *bu
return gnutls_assert_val(ret);
/* Extensions */
- ret = _gnutls_extv_parse(session, parse_nst_extension, buf->data, buf->length);
+ ret =
+ _gnutls_extv_parse(session, parse_nst_extension, buf->data,
+ buf->length);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -464,8 +493,8 @@ int _gnutls13_recv_session_ticket(gnutls_session_t session, gnutls_buffer_st *bu
* and the KDF ID associated to it.
*/
int _gnutls13_unpack_session_ticket(gnutls_session_t session,
- gnutls_datum_t *data,
- tls13_ticket_st *ticket_data)
+ gnutls_datum_t * data,
+ tls13_ticket_st * ticket_data)
{
int ret;
gnutls_datum_t decrypted = { NULL, 0 };
diff --git a/lib/tls13/session_ticket.h b/lib/tls13/session_ticket.h
index db0be15ca1..e28d77d7e7 100644
--- a/lib/tls13/session_ticket.h
+++ b/lib/tls13/session_ticket.h
@@ -21,24 +21,25 @@
*/
#ifndef GNUTLS_LIB_TLS13_SESSION_TICKET_H
-#define GNUTLS_LIB_TLS13_SESSION_TICKET_H
+# define GNUTLS_LIB_TLS13_SESSION_TICKET_H
-int _gnutls13_recv_session_ticket(gnutls_session_t session, gnutls_buffer_st *buf);
-int _gnutls13_send_session_ticket(gnutls_session_t session, unsigned nr, unsigned again);
+int _gnutls13_recv_session_ticket(gnutls_session_t session,
+ gnutls_buffer_st * buf);
+int _gnutls13_send_session_ticket(gnutls_session_t session, unsigned nr,
+ unsigned again);
-static inline bool
-_gnutls13_can_send_session_ticket(gnutls_session_t session)
+static inline bool _gnutls13_can_send_session_ticket(gnutls_session_t session)
{
return session->key.stek_initialized &&
- !(session->internals.flags & GNUTLS_NO_TICKETS);
+ !(session->internals.flags & GNUTLS_NO_TICKETS);
}
int _gnutls13_unpack_session_ticket(gnutls_session_t session,
- gnutls_datum_t *data,
- tls13_ticket_st *ticket_data);
+ gnutls_datum_t * data,
+ tls13_ticket_st * ticket_data);
inline static
-void tls13_ticket_deinit(tls13_ticket_st *ticket)
+void tls13_ticket_deinit(tls13_ticket_st * ticket)
{
zeroize_temp_key(&ticket->resumption_master_secret,
sizeof(ticket->resumption_master_secret));
@@ -47,4 +48,4 @@ void tls13_ticket_deinit(tls13_ticket_st *ticket)
memset(ticket, 0, sizeof(tls13_ticket_st));
}
-#endif /* GNUTLS_LIB_TLS13_SESSION_TICKET_H */
+#endif /* GNUTLS_LIB_TLS13_SESSION_TICKET_H */
diff --git a/lib/tpm.c b/lib/tpm.c
index 46b1ca970b..6b6c8d5a63 100644
--- a/lib/tpm.c
+++ b/lib/tpm.c
@@ -36,46 +36,66 @@
#ifdef HAVE_TROUSERS
-#include "errors.h"
-#include <pkcs11_int.h>
-#include <x509/common.h>
-#include <x509_b64.h>
-#include <random.h>
-#include <pin.h>
-#include <c-ctype.h>
-
-#include <dlfcn.h>
-#include <trousers/tss.h>
-#include <trousers/trousers.h>
+# include "errors.h"
+# include <pkcs11_int.h>
+# include <x509/common.h>
+# include <x509_b64.h>
+# include <random.h>
+# include <pin.h>
+# include <c-ctype.h>
+
+# include <dlfcn.h>
+# include <trousers/tss.h>
+# include <trousers/trousers.h>
typedef char *(*Trspi_Error_Layer_func)(TSS_RESULT);
typedef char *(*Trspi_Error_String_func)(TSS_RESULT);
-typedef TSS_RESULT (*Trspi_Error_Code_func)(TSS_RESULT);
-
-typedef TSS_RESULT (*Tspi_Context_CloseObject_func)(TSS_HCONTEXT, TSS_HOBJECT);
-typedef TSS_RESULT (*Tspi_Context_Close_func)(TSS_HCONTEXT);
-typedef TSS_RESULT (*Tspi_Context_CreateObject_func)(TSS_HCONTEXT, TSS_FLAG, TSS_FLAG, TSS_HOBJECT*);
-typedef TSS_RESULT (*Tspi_Context_FreeMemory_func)(TSS_HCONTEXT, BYTE*);
-typedef TSS_RESULT (*Tspi_Context_GetTpmObject_func)(TSS_HCONTEXT, TSS_HTPM*);
-typedef TSS_RESULT (*Tspi_Context_LoadKeyByUUID_func)(TSS_HCONTEXT, TSS_FLAG, TSS_UUID, TSS_HKEY*);
-typedef TSS_RESULT (*Tspi_Context_RegisterKey_func)(TSS_HCONTEXT, TSS_HKEY, TSS_FLAG, TSS_UUID, TSS_FLAG, TSS_UUID);
-typedef TSS_RESULT (*Tspi_Context_UnregisterKey_func)(TSS_HCONTEXT, TSS_FLAG, TSS_UUID, TSS_HKEY*);
-typedef TSS_RESULT (*Tspi_Key_CreateKey_func)(TSS_HKEY, TSS_HKEY, TSS_HPCRS);
-typedef TSS_RESULT (*Tspi_Hash_SetHashValue_func)(TSS_HHASH, UINT32, BYTE*);
-typedef TSS_RESULT (*Tspi_Hash_Sign_func)(TSS_HHASH, TSS_HKEY, UINT32*, BYTE**);
-typedef TSS_RESULT (*Tspi_Policy_SetSecret_func)(TSS_HPOLICY, TSS_FLAG, UINT32, BYTE*);
-typedef TSS_RESULT (*Tspi_Context_Create_func)(TSS_HCONTEXT*);
-typedef TSS_RESULT (*Tspi_Context_Connect_func)(TSS_HCONTEXT, TSS_UNICODE*);
-typedef TSS_RESULT (*Tspi_GetPolicyObject_func)(TSS_HOBJECT, TSS_FLAG, TSS_HPOLICY*);
-typedef TSS_RESULT (*Tspi_DecodeBER_TssBlob_func)(UINT32, BYTE*, UINT32*, UINT32*, BYTE*);
-typedef TSS_RESULT (*Tspi_Context_LoadKeyByBlob_func)(TSS_HCONTEXT, TSS_HKEY, UINT32, BYTE*, TSS_HKEY*);
-typedef TSS_RESULT (*Tspi_Policy_AssignToObject_func)(TSS_HPOLICY, TSS_HOBJECT);
-typedef TSS_RESULT (*Tspi_GetAttribData_func)(TSS_HOBJECT, TSS_FLAG, TSS_FLAG, UINT32*, BYTE**);
-typedef TSS_RESULT (*Tspi_GetAttribUint32_func)(TSS_HOBJECT, TSS_FLAG, TSS_FLAG, UINT32*);
-typedef TSS_RESULT (*Tspi_TPM_StirRandom_func)(TSS_HTPM, UINT32, BYTE*);
-typedef TSS_RESULT (*Tspi_SetAttribUint32_func)(TSS_HOBJECT, TSS_FLAG, TSS_FLAG, UINT32);
-typedef TSS_RESULT (*Tspi_EncodeDER_TssBlob_func)(UINT32, BYTE*, UINT32, UINT32*, BYTE*);
-typedef TSS_RESULT (*Tspi_Context_GetRegisteredKeysByUUID2_func)(TSS_HCONTEXT, TSS_FLAG, TSS_UUID*, UINT32*, TSS_KM_KEYINFO2**);
+typedef TSS_RESULT(*Trspi_Error_Code_func) (TSS_RESULT);
+
+typedef TSS_RESULT(*Tspi_Context_CloseObject_func) (TSS_HCONTEXT, TSS_HOBJECT);
+typedef TSS_RESULT(*Tspi_Context_Close_func) (TSS_HCONTEXT);
+typedef TSS_RESULT(*Tspi_Context_CreateObject_func) (TSS_HCONTEXT, TSS_FLAG,
+ TSS_FLAG, TSS_HOBJECT *);
+typedef TSS_RESULT(*Tspi_Context_FreeMemory_func) (TSS_HCONTEXT, BYTE *);
+typedef TSS_RESULT(*Tspi_Context_GetTpmObject_func) (TSS_HCONTEXT, TSS_HTPM *);
+typedef TSS_RESULT(*Tspi_Context_LoadKeyByUUID_func) (TSS_HCONTEXT, TSS_FLAG,
+ TSS_UUID, TSS_HKEY *);
+typedef TSS_RESULT(*Tspi_Context_RegisterKey_func) (TSS_HCONTEXT, TSS_HKEY,
+ TSS_FLAG, TSS_UUID,
+ TSS_FLAG, TSS_UUID);
+typedef TSS_RESULT(*Tspi_Context_UnregisterKey_func) (TSS_HCONTEXT, TSS_FLAG,
+ TSS_UUID, TSS_HKEY *);
+typedef TSS_RESULT(*Tspi_Key_CreateKey_func) (TSS_HKEY, TSS_HKEY, TSS_HPCRS);
+typedef TSS_RESULT(*Tspi_Hash_SetHashValue_func) (TSS_HHASH, UINT32, BYTE *);
+typedef TSS_RESULT(*Tspi_Hash_Sign_func) (TSS_HHASH, TSS_HKEY, UINT32 *,
+ BYTE **);
+typedef TSS_RESULT(*Tspi_Policy_SetSecret_func) (TSS_HPOLICY, TSS_FLAG, UINT32,
+ BYTE *);
+typedef TSS_RESULT(*Tspi_Context_Create_func) (TSS_HCONTEXT *);
+typedef TSS_RESULT(*Tspi_Context_Connect_func) (TSS_HCONTEXT, TSS_UNICODE *);
+typedef TSS_RESULT(*Tspi_GetPolicyObject_func) (TSS_HOBJECT, TSS_FLAG,
+ TSS_HPOLICY *);
+typedef TSS_RESULT(*Tspi_DecodeBER_TssBlob_func) (UINT32, BYTE *, UINT32 *,
+ UINT32 *, BYTE *);
+typedef TSS_RESULT(*Tspi_Context_LoadKeyByBlob_func) (TSS_HCONTEXT, TSS_HKEY,
+ UINT32, BYTE *,
+ TSS_HKEY *);
+typedef TSS_RESULT(*Tspi_Policy_AssignToObject_func) (TSS_HPOLICY, TSS_HOBJECT);
+typedef TSS_RESULT(*Tspi_GetAttribData_func) (TSS_HOBJECT, TSS_FLAG, TSS_FLAG,
+ UINT32 *, BYTE **);
+typedef TSS_RESULT(*Tspi_GetAttribUint32_func) (TSS_HOBJECT, TSS_FLAG, TSS_FLAG,
+ UINT32 *);
+typedef TSS_RESULT(*Tspi_TPM_StirRandom_func) (TSS_HTPM, UINT32, BYTE *);
+typedef TSS_RESULT(*Tspi_SetAttribUint32_func) (TSS_HOBJECT, TSS_FLAG, TSS_FLAG,
+ UINT32);
+typedef TSS_RESULT(*Tspi_EncodeDER_TssBlob_func) (UINT32, BYTE *, UINT32,
+ UINT32 *, BYTE *);
+typedef TSS_RESULT(*Tspi_Context_GetRegisteredKeysByUUID2_func) (TSS_HCONTEXT,
+ TSS_FLAG,
+ TSS_UUID *,
+ UINT32 *,
+ TSS_KM_KEYINFO2
+ **);
static Tspi_Context_CloseObject_func pTspi_Context_CloseObject;
static Tspi_Context_Close_func pTspi_Context_Close;
@@ -101,7 +121,8 @@ static Tspi_Context_GetTpmObject_func pTspi_Context_GetTpmObject;
static Tspi_TPM_StirRandom_func pTspi_TPM_StirRandom;
static Tspi_SetAttribUint32_func pTspi_SetAttribUint32;
static Tspi_EncodeDER_TssBlob_func pTspi_EncodeDER_TssBlob;
-static Tspi_Context_GetRegisteredKeysByUUID2_func pTspi_Context_GetRegisteredKeysByUUID2;
+static Tspi_Context_GetRegisteredKeysByUUID2_func
+ pTspi_Context_GetRegisteredKeysByUUID2;
static Trspi_Error_Layer_func pTrspi_Error_Layer;
static Trspi_Error_String_func pTrspi_Error_String;
@@ -109,7 +130,7 @@ static Trspi_Error_Code_func pTrspi_Error_Code;
static void *tpm_dl = NULL;
-#define _DLSYM(dl, sym) \
+# define _DLSYM(dl, sym) \
p##sym = dlsym(dl, #sym); \
if (p##sym == NULL) { \
dlclose(dl); \
@@ -126,44 +147,44 @@ static int check_init(void)
return -1;
}
- _DLSYM(tpm_dl,Tspi_Context_CloseObject);
- _DLSYM(tpm_dl,Tspi_Context_Close);
- _DLSYM(tpm_dl,Tspi_Context_CreateObject);
- _DLSYM(tpm_dl,Tspi_Context_FreeMemory);
- _DLSYM(tpm_dl,Tspi_Context_GetTpmObject);
- _DLSYM(tpm_dl,Tspi_Context_LoadKeyByUUID);
- _DLSYM(tpm_dl,Tspi_Context_RegisterKey);
- _DLSYM(tpm_dl,Tspi_Context_UnregisterKey);
- _DLSYM(tpm_dl,Tspi_Key_CreateKey);
- _DLSYM(tpm_dl,Tspi_Hash_SetHashValue);
- _DLSYM(tpm_dl,Tspi_Hash_Sign);
- _DLSYM(tpm_dl,Tspi_Policy_SetSecret);
- _DLSYM(tpm_dl,Tspi_Context_Create);
- _DLSYM(tpm_dl,Tspi_Context_Connect);
- _DLSYM(tpm_dl,Tspi_GetPolicyObject);
- _DLSYM(tpm_dl,Tspi_DecodeBER_TssBlob);
- _DLSYM(tpm_dl,Tspi_Context_LoadKeyByBlob);
- _DLSYM(tpm_dl,Tspi_Policy_AssignToObject);
- _DLSYM(tpm_dl,Tspi_GetAttribData);
- _DLSYM(tpm_dl,Tspi_GetAttribUint32);
- _DLSYM(tpm_dl,Tspi_Context_GetTpmObject);
- _DLSYM(tpm_dl,Tspi_TPM_StirRandom);
- _DLSYM(tpm_dl,Tspi_SetAttribUint32);
- _DLSYM(tpm_dl,Tspi_EncodeDER_TssBlob);
- _DLSYM(tpm_dl,Tspi_Context_GetRegisteredKeysByUUID2);
-
- _DLSYM(tpm_dl,Trspi_Error_Layer);
- _DLSYM(tpm_dl,Trspi_Error_String);
- _DLSYM(tpm_dl,Trspi_Error_Code);
+ _DLSYM(tpm_dl, Tspi_Context_CloseObject);
+ _DLSYM(tpm_dl, Tspi_Context_Close);
+ _DLSYM(tpm_dl, Tspi_Context_CreateObject);
+ _DLSYM(tpm_dl, Tspi_Context_FreeMemory);
+ _DLSYM(tpm_dl, Tspi_Context_GetTpmObject);
+ _DLSYM(tpm_dl, Tspi_Context_LoadKeyByUUID);
+ _DLSYM(tpm_dl, Tspi_Context_RegisterKey);
+ _DLSYM(tpm_dl, Tspi_Context_UnregisterKey);
+ _DLSYM(tpm_dl, Tspi_Key_CreateKey);
+ _DLSYM(tpm_dl, Tspi_Hash_SetHashValue);
+ _DLSYM(tpm_dl, Tspi_Hash_Sign);
+ _DLSYM(tpm_dl, Tspi_Policy_SetSecret);
+ _DLSYM(tpm_dl, Tspi_Context_Create);
+ _DLSYM(tpm_dl, Tspi_Context_Connect);
+ _DLSYM(tpm_dl, Tspi_GetPolicyObject);
+ _DLSYM(tpm_dl, Tspi_DecodeBER_TssBlob);
+ _DLSYM(tpm_dl, Tspi_Context_LoadKeyByBlob);
+ _DLSYM(tpm_dl, Tspi_Policy_AssignToObject);
+ _DLSYM(tpm_dl, Tspi_GetAttribData);
+ _DLSYM(tpm_dl, Tspi_GetAttribUint32);
+ _DLSYM(tpm_dl, Tspi_Context_GetTpmObject);
+ _DLSYM(tpm_dl, Tspi_TPM_StirRandom);
+ _DLSYM(tpm_dl, Tspi_SetAttribUint32);
+ _DLSYM(tpm_dl, Tspi_EncodeDER_TssBlob);
+ _DLSYM(tpm_dl, Tspi_Context_GetRegisteredKeysByUUID2);
+
+ _DLSYM(tpm_dl, Trspi_Error_Layer);
+ _DLSYM(tpm_dl, Trspi_Error_String);
+ _DLSYM(tpm_dl, Trspi_Error_Code);
}
return 0;
}
-#define CHECK_INIT \
+# define CHECK_INIT \
if (check_init() < 0) return gnutls_assert_val(GNUTLS_E_TPM_NO_LIB)
-#define CHECK_INIT_VOID \
+# define CHECK_INIT_VOID \
if (check_init() < 0) return
void _gnutls_tpm_global_deinit(void)
@@ -194,8 +215,7 @@ static int import_tpm_key(gnutls_privkey_t pkey,
gnutls_tpmkey_fmt_t format,
TSS_UUID * uuid,
TSS_FLAG storage_type,
- const char *srk_password,
- const char *key_password);
+ const char *srk_password, const char *key_password);
static int encode_tpmkey_url(char **url, const TSS_UUID * uuid,
TSS_FLAG storage);
@@ -207,12 +227,11 @@ static int encode_tpmkey_url(char **url, const TSS_UUID * uuid,
*
*/
-
static int tss_err_pwd(TSS_RESULT err, int pwd_error)
{
_gnutls_debug_log("TPM (%s) error: %s (%x)\n",
pTrspi_Error_Layer(err), pTrspi_Error_String(err),
- (unsigned int) pTrspi_Error_Code(err));
+ (unsigned int)pTrspi_Error_Code(err));
switch (ERROR_LAYER(err)) {
case TSS_LAYER_TPM:
@@ -242,8 +261,8 @@ static int tss_err_pwd(TSS_RESULT err, int pwd_error)
}
}
-#define tss_err(x) tss_err_pwd(x, GNUTLS_E_TPM_SRK_PASSWORD_ERROR)
-#define tss_err_key(x) tss_err_pwd(x, GNUTLS_E_TPM_KEY_PASSWORD_ERROR)
+# define tss_err(x) tss_err_pwd(x, GNUTLS_E_TPM_SRK_PASSWORD_ERROR)
+# define tss_err_key(x) tss_err_pwd(x, GNUTLS_E_TPM_KEY_PASSWORD_ERROR)
static void tpm_deinit_fn(gnutls_privkey_t key, void *_s)
{
@@ -269,8 +288,8 @@ tpm_sign_fn(gnutls_privkey_t key, void *_s,
err =
pTspi_Context_CreateObject(s->tpm_ctx,
- TSS_OBJECT_TYPE_HASH, TSS_HASH_OTHER,
- &hash);
+ TSS_OBJECT_TYPE_HASH, TSS_HASH_OTHER,
+ &hash);
if (err) {
gnutls_assert();
_gnutls_debug_log("Failed to create TPM hash object: %s\n",
@@ -302,7 +321,7 @@ tpm_sign_fn(gnutls_privkey_t key, void *_s,
}
static const unsigned char nullpass[20];
-static const gnutls_datum_t nulldata = { (void *) nullpass, 20 };
+static const gnutls_datum_t nulldata = { (void *)nullpass, 20 };
const TSS_UUID srk_uuid = TSS_UUID_SRK;
@@ -342,12 +361,11 @@ static int tpm_pin(struct pin_info_st *pin_info, const TSS_UUID * uuid,
}
ret = 0;
- cleanup:
+ cleanup:
gnutls_free(url);
return ret;
}
-
static TSS_RESULT myTspi_Policy_SetSecret(TSS_HPOLICY hPolicy,
UINT32 ulSecretLength,
BYTE * rgbSecret)
@@ -355,20 +373,21 @@ static TSS_RESULT myTspi_Policy_SetSecret(TSS_HPOLICY hPolicy,
if (rgbSecret == NULL) {
/* Well known NULL key */
return pTspi_Policy_SetSecret(hPolicy,
- TSS_SECRET_MODE_SHA1,
- sizeof(nullpass),
- (BYTE *) nullpass);
+ TSS_SECRET_MODE_SHA1,
+ sizeof(nullpass),
+ (BYTE *) nullpass);
} else { /* key is given */
return pTspi_Policy_SetSecret(hPolicy,
- TSS_SECRET_MODE_PLAIN,
- ulSecretLength, rgbSecret);
+ TSS_SECRET_MODE_PLAIN,
+ ulSecretLength, rgbSecret);
}
}
-#define SAFE_LEN(x) (x==NULL?0:strlen(x))
+# define SAFE_LEN(x) (x==NULL?0:strlen(x))
-static int tpm_open_session(struct tpm_ctx_st *s, const char *_srk_password, unsigned allow_invalid_pass)
+static int tpm_open_session(struct tpm_ctx_st *s, const char *_srk_password,
+ unsigned allow_invalid_pass)
{
int err, ret;
char *password = NULL;
@@ -381,12 +400,15 @@ static int tpm_open_session(struct tpm_ctx_st *s, const char *_srk_password, uns
if (_srk_password != NULL) {
gnutls_datum_t pout;
- ret = _gnutls_utf8_password_normalize(_srk_password, strlen(_srk_password), &pout, allow_invalid_pass);
+ ret =
+ _gnutls_utf8_password_normalize(_srk_password,
+ strlen(_srk_password),
+ &pout, allow_invalid_pass);
if (ret < 0) {
gnutls_assert();
goto out_tspi_ctx;
}
- password = (char*)pout.data;
+ password = (char *)pout.data;
}
err = pTspi_Context_Connect(s->tpm_ctx, NULL);
@@ -398,15 +420,14 @@ static int tpm_open_session(struct tpm_ctx_st *s, const char *_srk_password, uns
err =
pTspi_Context_LoadKeyByUUID(s->tpm_ctx, TSS_PS_TYPE_SYSTEM,
- srk_uuid, &s->srk);
+ srk_uuid, &s->srk);
if (err) {
gnutls_assert();
ret = tss_err(err);
goto out_tspi_ctx;
}
- err =
- pTspi_GetPolicyObject(s->srk, TSS_POLICY_USAGE, &s->srk_policy);
+ err = pTspi_GetPolicyObject(s->srk, TSS_POLICY_USAGE, &s->srk_policy);
if (err) {
gnutls_assert();
ret = tss_err(err);
@@ -414,8 +435,7 @@ static int tpm_open_session(struct tpm_ctx_st *s, const char *_srk_password, uns
}
err = myTspi_Policy_SetSecret(s->srk_policy,
- SAFE_LEN(password),
- (BYTE *) password);
+ SAFE_LEN(password), (BYTE *) password);
if (err) {
gnutls_assert();
ret = tss_err(err);
@@ -425,13 +445,13 @@ static int tpm_open_session(struct tpm_ctx_st *s, const char *_srk_password, uns
return 0;
- out_srkpol:
+ out_srkpol:
pTspi_Context_CloseObject(s->tpm_ctx, s->srk_policy);
s->srk_policy = 0;
- out_srk:
+ out_srk:
pTspi_Context_CloseObject(s->tpm_ctx, s->srk);
s->srk = 0;
- out_tspi_ctx:
+ out_tspi_ctx:
pTspi_Context_Close(s->tpm_ctx);
s->tpm_ctx = 0;
gnutls_free(password);
@@ -508,9 +528,7 @@ static int load_key(TSS_HCONTEXT tpm_ctx, TSS_HKEY srk,
if (format == GNUTLS_TPMKEY_FMT_CTK_PEM) {
gnutls_datum_t td;
- ret =
- gnutls_pem_base64_decode2("TSS KEY BLOB", fdata,
- &asn1);
+ ret = gnutls_pem_base64_decode2("TSS KEY BLOB", fdata, &asn1);
if (ret) {
gnutls_assert();
_gnutls_debug_log
@@ -544,7 +562,7 @@ static int load_key(TSS_HCONTEXT tpm_ctx, TSS_HKEY srk,
tint2 = asn1.size;
err =
pTspi_DecodeBER_TssBlob(fdata->size, fdata->data, &type,
- &tint2, asn1.data);
+ &tint2, asn1.data);
if (err != 0) {
gnutls_assert();
ret = tss_err(err);
@@ -556,7 +574,7 @@ static int load_key(TSS_HCONTEXT tpm_ctx, TSS_HKEY srk,
/* ... we get it here instead. */
err = pTspi_Context_LoadKeyByBlob(tpm_ctx, srk,
- asn1.size, asn1.data, tpm_key);
+ asn1.size, asn1.data, tpm_key);
if (err != 0) {
gnutls_assert();
ret = tss_err(err);
@@ -565,7 +583,7 @@ static int load_key(TSS_HCONTEXT tpm_ctx, TSS_HKEY srk,
ret = 0;
- cleanup:
+ cleanup:
gnutls_free(asn1.data);
return ret;
@@ -593,12 +611,15 @@ import_tpm_key(gnutls_privkey_t pkey,
if (_key_password != NULL) {
gnutls_datum_t pout;
- ret = _gnutls_utf8_password_normalize(_key_password, strlen(_key_password), &pout, 1);
+ ret =
+ _gnutls_utf8_password_normalize(_key_password,
+ strlen(_key_password),
+ &pout, 1);
if (ret < 0) {
gnutls_assert();
goto out_ctx;
}
- key_password = (char*)pout.data;
+ key_password = (char *)pout.data;
}
/* normalization of srk_password happens in tpm_open_session() */
@@ -610,9 +631,7 @@ import_tpm_key(gnutls_privkey_t pkey,
}
if (fdata != NULL) {
- ret =
- load_key(s->tpm_ctx, s->srk, fdata, format,
- &s->tpm_key);
+ ret = load_key(s->tpm_ctx, s->srk, fdata, format, &s->tpm_key);
if (ret < 0) {
gnutls_assert();
goto out_session;
@@ -620,7 +639,7 @@ import_tpm_key(gnutls_privkey_t pkey,
} else if (uuid) {
err =
pTspi_Context_LoadKeyByUUID(s->tpm_ctx, storage,
- *uuid, &s->tpm_key);
+ *uuid, &s->tpm_key);
if (err) {
gnutls_assert();
@@ -659,7 +678,7 @@ import_tpm_key(gnutls_privkey_t pkey,
}
err = pTspi_Policy_AssignToObject(s->tpm_key_policy,
- s->tpm_key);
+ s->tpm_key);
if (err) {
gnutls_assert();
ret = tss_err(err);
@@ -668,7 +687,7 @@ import_tpm_key(gnutls_privkey_t pkey,
err = myTspi_Policy_SetSecret(s->tpm_key_policy,
SAFE_LEN(key_password),
- (void *) key_password);
+ (void *)key_password);
if (err) {
gnutls_assert();
@@ -679,8 +698,7 @@ import_tpm_key(gnutls_privkey_t pkey,
ret =
gnutls_privkey_import_ext2(pkey, GNUTLS_PK_RSA, s,
- tpm_sign_fn, NULL, tpm_deinit_fn,
- 0);
+ tpm_sign_fn, NULL, tpm_deinit_fn, 0);
if (ret < 0) {
gnutls_assert();
goto out_session;
@@ -697,16 +715,16 @@ import_tpm_key(gnutls_privkey_t pkey,
gnutls_free(key_password);
return 0;
- out_key_policy:
+ out_key_policy:
pTspi_Context_CloseObject(s->tpm_ctx, s->tpm_key_policy);
s->tpm_key_policy = 0;
- out_key:
+ out_key:
pTspi_Context_CloseObject(s->tpm_ctx, s->tpm_key);
s->tpm_key = 0;
- out_session:
+ out_session:
_gnutls_privkey_cleanup(pkey);
tpm_close_session(s);
- out_ctx:
+ out_ctx:
gnutls_free(s);
gnutls_free(key_password);
return ret;
@@ -763,8 +781,7 @@ static void clear_tpmkey_url(struct tpmkey_url_st *s)
}
static int
-unescape_string(char *output, const char *input, size_t * size,
- char terminator)
+unescape_string(char *output, const char *input, size_t *size, char terminator)
{
gnutls_buffer_st str;
int ret = 0;
@@ -809,7 +826,7 @@ unescape_string(char *output, const char *input, size_t * size,
return ret;
}
-#define UUID_SIZE 16
+# define UUID_SIZE 16
static int randomize_uuid(TSS_UUID * uuid)
{
@@ -862,22 +879,22 @@ static int encode_tpmkey_url(char **url, const TSS_UUID * uuid,
ret =
_gnutls_buffer_append_printf(&buf,
"%.2x%.2x%.2x%.2x-%.2x%.2x-%.2x%.2x-%.2x%.2x-%.2x%.2x%.2x%.2x%.2x%.2x",
- (unsigned int) u1[0],
- (unsigned int) u1[1],
- (unsigned int) u1[2],
- (unsigned int) u1[3],
- (unsigned int) u1[4],
- (unsigned int) u1[5],
- (unsigned int) u1[6],
- (unsigned int) u1[7],
- (unsigned int) u1[8],
- (unsigned int) u1[9],
- (unsigned int) u1[10],
- (unsigned int) u1[11],
- (unsigned int) u1[12],
- (unsigned int) u1[13],
- (unsigned int) u1[14],
- (unsigned int) u1[15]);
+ (unsigned int)u1[0],
+ (unsigned int)u1[1],
+ (unsigned int)u1[2],
+ (unsigned int)u1[3],
+ (unsigned int)u1[4],
+ (unsigned int)u1[5],
+ (unsigned int)u1[6],
+ (unsigned int)u1[7],
+ (unsigned int)u1[8],
+ (unsigned int)u1[9],
+ (unsigned int)u1[10],
+ (unsigned int)u1[11],
+ (unsigned int)u1[12],
+ (unsigned int)u1[13],
+ (unsigned int)u1[14],
+ (unsigned int)u1[15]);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -899,10 +916,10 @@ static int encode_tpmkey_url(char **url, const TSS_UUID * uuid,
goto cleanup;
}
- *url = (char *) dret.data;
+ *url = (char *)dret.data;
return 0;
- cleanup:
+ cleanup:
_gnutls_buffer_clear(&buf);
return ret;
}
@@ -950,12 +967,10 @@ static int decode_tpmkey_url(const char *url, struct tpmkey_url_st *s)
}
tmp_uuid[j] = 0;
- tmp.data = (void*)tmp_uuid;
+ tmp.data = (void *)tmp_uuid;
tmp.size = strlen(tmp_uuid);
size = sizeof(raw_uuid);
- ret =
- gnutls_hex_decode(&tmp, raw_uuid,
- &size);
+ ret = gnutls_hex_decode(&tmp, raw_uuid, &size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -979,7 +994,7 @@ static int decode_tpmkey_url(const char *url, struct tpmkey_url_st *s)
return 0;
- cleanup:
+ cleanup:
clear_tpmkey_url(s);
return ret;
}
@@ -1029,8 +1044,7 @@ gnutls_privkey_import_tpm_url(gnutls_privkey_t pkey,
ret = gnutls_load_file(durl.filename, &fdata);
if (ret < 0) {
gnutls_assert();
- _gnutls_debug_log("Error loading %s\n",
- durl.filename);
+ _gnutls_debug_log("Error loading %s\n", durl.filename);
goto cleanup;
}
@@ -1044,8 +1058,7 @@ gnutls_privkey_import_tpm_url(gnutls_privkey_t pkey,
gnutls_privkey_import_tpm_raw(pkey, &fdata,
GNUTLS_TPMKEY_FMT_RAW,
srk_password,
- key_password,
- flags);
+ key_password, flags);
if (ret < 0) {
gnutls_assert();
@@ -1069,18 +1082,16 @@ gnutls_privkey_import_tpm_url(gnutls_privkey_t pkey,
}
ret = 0;
- cleanup:
+ cleanup:
gnutls_free(fdata.data);
clear_tpmkey_url(&durl);
return ret;
}
-
/* reads the RSA public key from the given TSS key.
* If psize is non-null it contains the total size of the parameters
* in bytes */
-static int read_pubkey(gnutls_pubkey_t pub, TSS_HKEY key_ctx,
- size_t * psize)
+static int read_pubkey(gnutls_pubkey_t pub, TSS_HKEY key_ctx, size_t *psize)
{
void *tdata;
UINT32 tint;
@@ -1091,8 +1102,8 @@ static int read_pubkey(gnutls_pubkey_t pub, TSS_HKEY key_ctx,
/* read the public key */
tssret = pTspi_GetAttribData(key_ctx, TSS_TSPATTRIB_RSAKEY_INFO,
- TSS_TSPATTRIB_KEYINFO_RSA_MODULUS,
- &tint, (void *) &tdata);
+ TSS_TSPATTRIB_KEYINFO_RSA_MODULUS,
+ &tint, (void *)&tdata);
if (tssret != 0) {
gnutls_assert();
return tss_err(tssret);
@@ -1102,8 +1113,8 @@ static int read_pubkey(gnutls_pubkey_t pub, TSS_HKEY key_ctx,
m.size = tint;
tssret = pTspi_GetAttribData(key_ctx, TSS_TSPATTRIB_RSAKEY_INFO,
- TSS_TSPATTRIB_KEYINFO_RSA_EXPONENT,
- &tint, (void *) &tdata);
+ TSS_TSPATTRIB_KEYINFO_RSA_EXPONENT,
+ &tint, (void *)&tdata);
if (tssret != 0) {
gnutls_assert();
pTspi_Context_FreeMemory(key_ctx, m.data);
@@ -1127,14 +1138,11 @@ static int read_pubkey(gnutls_pubkey_t pub, TSS_HKEY key_ctx,
return 0;
}
-
-
static int
import_tpm_pubkey(gnutls_pubkey_t pkey,
const gnutls_datum_t * fdata,
gnutls_tpmkey_fmt_t format,
- TSS_UUID * uuid,
- TSS_FLAG storage, const char *srk_password)
+ TSS_UUID * uuid, TSS_FLAG storage, const char *srk_password)
{
int err, ret;
struct tpm_ctx_st s;
@@ -1144,8 +1152,7 @@ import_tpm_pubkey(gnutls_pubkey_t pkey,
return gnutls_assert_val(ret);
if (fdata != NULL) {
- ret =
- load_key(s.tpm_ctx, s.srk, fdata, format, &s.tpm_key);
+ ret = load_key(s.tpm_ctx, s.srk, fdata, format, &s.tpm_key);
if (ret < 0) {
gnutls_assert();
goto out_session;
@@ -1153,7 +1160,7 @@ import_tpm_pubkey(gnutls_pubkey_t pkey,
} else if (uuid) {
err =
pTspi_Context_LoadKeyByUUID(s.tpm_ctx, storage,
- *uuid, &s.tpm_key);
+ *uuid, &s.tpm_key);
if (err) {
gnutls_assert();
ret = tss_err(err);
@@ -1172,7 +1179,7 @@ import_tpm_pubkey(gnutls_pubkey_t pkey,
}
ret = 0;
- out_session:
+ out_session:
tpm_close_session(&s);
return ret;
}
@@ -1214,7 +1221,6 @@ import_tpm_pubkey_cb(gnutls_pubkey_t pkey,
return ret;
}
-
/**
* gnutls_pubkey_import_tpm_raw:
* @pkey: The public key
@@ -1303,8 +1309,7 @@ gnutls_pubkey_import_tpm_url(gnutls_pubkey_t pkey,
ret =
gnutls_pubkey_import_tpm_raw(pkey, &fdata,
GNUTLS_TPMKEY_FMT_RAW,
- srk_password,
- flags);
+ srk_password, flags);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1317,8 +1322,7 @@ gnutls_pubkey_import_tpm_url(gnutls_pubkey_t pkey,
else
ret =
import_tpm_pubkey_cb(pkey, NULL, 0, &durl.uuid,
- durl.storage,
- srk_password);
+ durl.storage, srk_password);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1326,13 +1330,12 @@ gnutls_pubkey_import_tpm_url(gnutls_pubkey_t pkey,
}
ret = 0;
- cleanup:
+ cleanup:
gnutls_free(fdata.data);
clear_tpmkey_url(&durl);
return ret;
}
-
/**
* gnutls_tpm_privkey_generate:
* @pk: the public key algorithm
@@ -1433,7 +1436,6 @@ gnutls_tpm_privkey_generate(gnutls_pk_algorithm_t pk, unsigned int bits,
goto err_cc;
}
-
ret = gnutls_rnd(GNUTLS_RND_RANDOM, buf, sizeof(buf));
if (ret < 0) {
gnutls_assert();
@@ -1447,7 +1449,7 @@ gnutls_tpm_privkey_generate(gnutls_pk_algorithm_t pk, unsigned int bits,
tssret =
pTspi_Context_CreateObject(s.tpm_ctx, TSS_OBJECT_TYPE_RSAKEY,
- tpm_flags, &key_ctx);
+ tpm_flags, &key_ctx);
if (tssret != 0) {
gnutls_assert();
ret = tss_err(tssret);
@@ -1456,8 +1458,8 @@ gnutls_tpm_privkey_generate(gnutls_pk_algorithm_t pk, unsigned int bits,
tssret =
pTspi_SetAttribUint32(key_ctx, TSS_TSPATTRIB_KEY_INFO,
- TSS_TSPATTRIB_KEYINFO_SIGSCHEME,
- TSS_SS_RSASSAPKCS1V15_DER);
+ TSS_TSPATTRIB_KEYINFO_SIGSCHEME,
+ TSS_SS_RSASSAPKCS1V15_DER);
if (tssret != 0) {
gnutls_assert();
ret = tss_err(tssret);
@@ -1471,19 +1473,22 @@ gnutls_tpm_privkey_generate(gnutls_pk_algorithm_t pk, unsigned int bits,
tssret =
pTspi_GetPolicyObject(key_ctx, TSS_POLICY_USAGE,
- &key_policy);
+ &key_policy);
if (tssret != 0) {
gnutls_assert();
ret = tss_err(tssret);
goto err_sa;
}
- ret = _gnutls_utf8_password_normalize(key_password, strlen(key_password), &pout, 0);
+ ret =
+ _gnutls_utf8_password_normalize(key_password,
+ strlen(key_password), &pout,
+ 0);
if (ret < 0) {
gnutls_assert();
goto err_sa;
}
- password = (char*)pout.data;
+ password = (char *)pout.data;
tssret = myTspi_Policy_SetSecret(key_policy,
SAFE_LEN(password),
@@ -1514,8 +1519,8 @@ gnutls_tpm_privkey_generate(gnutls_pk_algorithm_t pk, unsigned int bits,
tssret =
pTspi_Context_RegisterKey(s.tpm_ctx, key_ctx,
- storage_type, key_uuid,
- TSS_PS_TYPE_SYSTEM, srk_uuid);
+ storage_type, key_uuid,
+ TSS_PS_TYPE_SYSTEM, srk_uuid);
if (tssret != 0) {
gnutls_assert();
ret = tss_err(tssret);
@@ -1523,37 +1528,34 @@ gnutls_tpm_privkey_generate(gnutls_pk_algorithm_t pk, unsigned int bits,
}
ret =
- encode_tpmkey_url((char **) &privkey->data, &key_uuid,
+ encode_tpmkey_url((char **)&privkey->data, &key_uuid,
storage_type);
if (ret < 0) {
TSS_HKEY tkey;
pTspi_Context_UnregisterKey(s.tpm_ctx, storage_type,
- key_uuid, &tkey);
+ key_uuid, &tkey);
gnutls_assert();
goto err_sa;
}
- privkey->size = strlen((char *) privkey->data);
+ privkey->size = strlen((char *)privkey->data);
} else { /* get the key as blob */
-
tssret =
pTspi_GetAttribData(key_ctx, TSS_TSPATTRIB_KEY_BLOB,
- TSS_TSPATTRIB_KEYBLOB_BLOB, &tint,
- (void *) &tdata);
+ TSS_TSPATTRIB_KEYBLOB_BLOB, &tint,
+ (void *)&tdata);
if (tssret != 0) {
gnutls_assert();
ret = tss_err(tssret);
goto err_sa;
}
-
if (format == GNUTLS_TPMKEY_FMT_CTK_PEM) {
ret =
_gnutls_x509_encode_string
- (ASN1_ETYPE_OCTET_STRING, tdata, tint,
- &tmpkey);
+ (ASN1_ETYPE_OCTET_STRING, tdata, tint, &tmpkey);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1581,8 +1583,8 @@ gnutls_tpm_privkey_generate(gnutls_pk_algorithm_t pk, unsigned int bits,
tint2 = tmpkey.size;
tssret =
pTspi_EncodeDER_TssBlob(tint, tdata,
- TSS_BLOB_TYPE_PRIVATEKEY,
- &tint2, tmpkey.data);
+ TSS_BLOB_TYPE_PRIVATEKEY,
+ &tint2, tmpkey.data);
if (tssret != 0) {
gnutls_assert();
ret = tss_err(tssret);
@@ -1622,8 +1624,7 @@ gnutls_tpm_privkey_generate(gnutls_pk_algorithm_t pk, unsigned int bits,
}
ret =
- gnutls_pubkey_export(pub, pub_format, pubkey->data,
- &psize);
+ gnutls_pubkey_export(pub, pub_format, pubkey->data, &psize);
if (ret < 0) {
gnutls_assert();
goto pubkey_cleanup;
@@ -1636,20 +1637,19 @@ gnutls_tpm_privkey_generate(gnutls_pk_algorithm_t pk, unsigned int bits,
ret = 0;
goto cleanup;
- pubkey_cleanup:
+ pubkey_cleanup:
gnutls_pubkey_deinit(pub);
- privkey_cleanup:
+ privkey_cleanup:
gnutls_free(privkey->data);
- cleanup:
+ cleanup:
gnutls_free(tmpkey.data);
- err_sa:
+ err_sa:
pTspi_Context_CloseObject(s.tpm_ctx, key_ctx);
- err_cc:
+ err_cc:
tpm_close_session(&s);
return ret;
}
-
/**
* gnutls_tpm_key_list_deinit:
* @list: a list of the keys
@@ -1691,9 +1691,7 @@ gnutls_tpm_key_list_get_url(gnutls_tpm_key_list_t list, unsigned int idx,
CHECK_INIT;
if (idx >= list->size)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
return encode_tpmkey_url(url, &list->ki[idx].keyUUID,
list->ki[idx].persistentStorageType);
@@ -1738,9 +1736,9 @@ int gnutls_tpm_get_registered(gnutls_tpm_key_list_t * list)
tssret =
pTspi_Context_GetRegisteredKeysByUUID2((*list)->tpm_ctx,
- TSS_PS_TYPE_SYSTEM, NULL,
- &(*list)->size,
- &(*list)->ki);
+ TSS_PS_TYPE_SYSTEM, NULL,
+ &(*list)->size,
+ &(*list)->ki);
if (tssret) {
gnutls_assert();
ret = tss_err(tssret);
@@ -1748,7 +1746,7 @@ int gnutls_tpm_get_registered(gnutls_tpm_key_list_t * list)
}
return 0;
- cleanup:
+ cleanup:
gnutls_tpm_key_list_deinit(*list);
return ret;
@@ -1790,7 +1788,7 @@ int gnutls_tpm_privkey_delete(const char *url, const char *srk_password)
tssret =
pTspi_Context_UnregisterKey(s.tpm_ctx, durl.storage, durl.uuid,
- &tkey);
+ &tkey);
if (tssret != 0) {
gnutls_assert();
ret = tss_err(tssret);
@@ -1798,7 +1796,7 @@ int gnutls_tpm_privkey_delete(const char *url, const char *srk_password)
}
ret = 0;
- err_cc:
+ err_cc:
tpm_close_session(&s);
return ret;
}
diff --git a/lib/tpm2.c b/lib/tpm2.c
index 1c1b710893..c34333cd63 100644
--- a/lib/tpm2.c
+++ b/lib/tpm2.c
@@ -66,8 +66,9 @@ static int rsa_key_info(gnutls_privkey_t key, unsigned int flags, void *_info)
return 1;
default:
- _gnutls_debug_log("tpm2: unsupported RSA sign algo %s\n",
- gnutls_sign_get_name(algo));
+ _gnutls_debug_log
+ ("tpm2: unsupported RSA sign algo %s\n",
+ gnutls_sign_get_name(algo));
return 0;
}
}
@@ -96,13 +97,13 @@ static int ec_key_info(gnutls_privkey_t key, unsigned int flags, void *_info)
return 1;
case GNUTLS_SIGN_ECDSA_SECP256R1_SHA256:
- return tpm2_curve == 0x0003; /* TPM2_ECC_NIST_P256 */
+ return tpm2_curve == 0x0003; /* TPM2_ECC_NIST_P256 */
case GNUTLS_SIGN_ECDSA_SECP384R1_SHA384:
- return tpm2_curve == 0x0004; /* TPM2_ECC_NIST_P384 */
+ return tpm2_curve == 0x0004; /* TPM2_ECC_NIST_P384 */
case GNUTLS_SIGN_ECDSA_SECP521R1_SHA512:
- return tpm2_curve == 0x0005; /* TPM2_ECC_NIST_P521 */
+ return tpm2_curve == 0x0005; /* TPM2_ECC_NIST_P521 */
default:
_gnutls_debug_log("tpm2: unsupported EC sign algo %s\n",
@@ -118,7 +119,7 @@ static int ec_key_info(gnutls_privkey_t key, unsigned int flags, void *_info)
return -1;
}
-static int decode_data(asn1_node n, gnutls_datum_t *r)
+static int decode_data(asn1_node n, gnutls_datum_t * r)
{
asn1_data_node_st d;
int lenlen;
@@ -144,7 +145,7 @@ static int decode_data(asn1_node n, gnutls_datum_t *r)
return 0;
}
-int _gnutls_load_tpm2_key(gnutls_privkey_t pkey, const gnutls_datum_t *fdata)
+int _gnutls_load_tpm2_key(gnutls_privkey_t pkey, const gnutls_datum_t * fdata)
{
gnutls_datum_t asn1, pubdata, privdata;
asn1_node tpmkey = NULL;
@@ -205,7 +206,7 @@ int _gnutls_load_tpm2_key(gnutls_privkey_t pkey, const gnutls_datum_t *fdata)
value_buflen = 5;
err = asn1_read_value(tpmkey, "parent", value_buf, &value_buflen);
if (err == ASN1_ELEMENT_NOT_FOUND) {
- parent = 0x40000001; /* RH_OWNER */
+ parent = 0x40000001; /* RH_OWNER */
} else if (err != ASN1_SUCCESS) {
_gnutls_debug_log("tpm2: failed to parse TPM2 key parent: %s\n",
asn1_strerror(err));
@@ -218,14 +219,15 @@ int _gnutls_load_tpm2_key(gnutls_privkey_t pkey, const gnutls_datum_t *fdata)
if (value_buflen == 5) {
if (value_buf[0]) {
gnutls_assert();
- _gnutls_debug_log("tpm2: failed to parse parent key\n");
+ _gnutls_debug_log
+ ("tpm2: failed to parse parent key\n");
ret = GNUTLS_E_TPM_ERROR;
goto out_tpmkey;
}
/* Skip the leading zero */
i++;
}
- for ( ; i < value_buflen; i++) {
+ for (; i < value_buflen; i++) {
parent <<= 8;
parent |= value_buf[i];
}
@@ -285,7 +287,7 @@ int _gnutls_load_tpm2_key(gnutls_privkey_t pkey, const gnutls_datum_t *fdata)
}
ret = 0;
- info = NULL; /* part of pkey now */
+ info = NULL; /* part of pkey now */
out_tpmkey:
asn1_delete_structure(&tpmkey);
diff --git a/lib/tpm2.h b/lib/tpm2.h
index 7966e2d811..45105b86d0 100644
--- a/lib/tpm2.h
+++ b/lib/tpm2.h
@@ -24,12 +24,12 @@
#ifndef GNUTLS_LIB_TPM2_H
# define GNUTLS_LIB_TPM2_H
-#include "pin.h"
+# include "pin.h"
/* Functions used outside tpm2.c */
void _gnutls_tpm2_deinit(void);
-int _gnutls_load_tpm2_key(gnutls_privkey_t pkey, const gnutls_datum_t *fdata);
+int _gnutls_load_tpm2_key(gnutls_privkey_t pkey, const gnutls_datum_t * fdata);
/* Functions only used in tpm2.c */
@@ -43,23 +43,22 @@ void release_tpm2_ctx(struct tpm2_info_st *info);
int install_tpm2_key(struct tpm2_info_st *info, gnutls_privkey_t pkey,
unsigned int parent, bool emptyauth,
- gnutls_datum_t *privdata, gnutls_datum_t *pubdata);
+ gnutls_datum_t * privdata, gnutls_datum_t * pubdata);
void tpm2_deinit_fn(gnutls_privkey_t key, void *priv);
int tpm2_rsa_sign_hash_fn(gnutls_privkey_t key, gnutls_sign_algorithm_t algo,
void *_info, unsigned int flags,
- const gnutls_datum_t *data, gnutls_datum_t *sig);
+ const gnutls_datum_t * data, gnutls_datum_t * sig);
int tpm2_ec_sign_hash_fn(gnutls_privkey_t key, gnutls_sign_algorithm_t algo,
void *_info, unsigned int flags,
- const gnutls_datum_t *data, gnutls_datum_t *sig);
+ const gnutls_datum_t * data, gnutls_datum_t * sig);
uint16_t tpm2_key_curve(struct tpm2_info_st *info);
int tpm2_rsa_key_bits(struct tpm2_info_st *info);
int tpm2_convert_public(gnutls_privkey_t key,
- void *userdata,
- gnutls_pk_params_st *params);
+ void *userdata, gnutls_pk_params_st * params);
-#endif /* GNUTLS_LIB_TPM2_H */
+#endif /* GNUTLS_LIB_TPM2_H */
diff --git a/lib/tpm2_esys.c b/lib/tpm2_esys.c
index 70209b7dac..54d619e420 100644
--- a/lib/tpm2_esys.c
+++ b/lib/tpm2_esys.c
@@ -112,109 +112,108 @@ static __typeof__(Esys_RSA_Decrypt) (*_gnutls_tss2_Esys_RSA_Decrypt);
static __typeof__(Esys_Sign) (*_gnutls_tss2_Esys_Sign);
static __typeof__(Tss2_MU_TPM2B_PRIVATE_Unmarshal)
-(*_gnutls_tss2_Tss2_MU_TPM2B_PRIVATE_Unmarshal);
+ (*_gnutls_tss2_Tss2_MU_TPM2B_PRIVATE_Unmarshal);
static __typeof__(Tss2_MU_TPM2B_PUBLIC_Unmarshal)
-(*_gnutls_tss2_Tss2_MU_TPM2B_PUBLIC_Unmarshal);
+ (*_gnutls_tss2_Tss2_MU_TPM2B_PUBLIC_Unmarshal);
static __typeof__(Tss2_TctiLdr_Initialize)
-(*_gnutls_tss2_Tss2_TctiLdr_Initialize);
+ (*_gnutls_tss2_Tss2_TctiLdr_Initialize);
static __typeof__(Tss2_TctiLdr_Finalize)
-(*_gnutls_tss2_Tss2_TctiLdr_Finalize);
+ (*_gnutls_tss2_Tss2_TctiLdr_Finalize);
#else
static TSS2_RC
-(*_gnutls_tss2_Esys_GetCapability)(ESYS_CONTEXT *esysContext,
- ESYS_TR shandle1,
- ESYS_TR shandle2,
- ESYS_TR shandle3,
- TPM2_CAP capability,
- UINT32 property,
- UINT32 propertyCount,
- TPMI_YES_NO *moreData,
- TPMS_CAPABILITY_DATA **capabilityData);
+ (*_gnutls_tss2_Esys_GetCapability) (ESYS_CONTEXT * esysContext,
+ ESYS_TR shandle1,
+ ESYS_TR shandle2,
+ ESYS_TR shandle3,
+ TPM2_CAP capability,
+ UINT32 property,
+ UINT32 propertyCount,
+ TPMI_YES_NO * moreData,
+ TPMS_CAPABILITY_DATA ** capabilityData);
static void (*_gnutls_tss2_Esys_Free)(void *__ptr);
-static TSS2_RC (*_gnutls_tss2_Esys_TR_SetAuth)(ESYS_CONTEXT *esysContext,
+static TSS2_RC(*_gnutls_tss2_Esys_TR_SetAuth) (ESYS_CONTEXT * esysContext,
ESYS_TR handle,
TPM2B_AUTH const *authValue);
static TSS2_RC
-(*_gnutls_tss2_Esys_CreatePrimary)(ESYS_CONTEXT *esysContext,
- ESYS_TR primaryHandle,
- ESYS_TR shandle1,
- ESYS_TR shandle2,
- ESYS_TR shandle3,
- const TPM2B_SENSITIVE_CREATE *inSensitive,
- const TPM2B_PUBLIC *inPublic,
- const TPM2B_DATA *outsideInfo,
- const TPML_PCR_SELECTION *creationPCR,
- ESYS_TR *objectHandle,
- TPM2B_PUBLIC **outPublic,
- TPM2B_CREATION_DATA **creationData,
- TPM2B_DIGEST **creationHash,
- TPMT_TK_CREATION **creationTicket);
-static TSS2_RC (*_gnutls_tss2_Esys_Initialize)(ESYS_CONTEXT **esys_context,
- TSS2_TCTI_CONTEXT *tcti,
- TSS2_ABI_VERSION *abiVersion);
-static TSS2_RC (*_gnutls_tss2_Esys_Startup)(ESYS_CONTEXT *esysContext,
+ (*_gnutls_tss2_Esys_CreatePrimary) (ESYS_CONTEXT * esysContext,
+ ESYS_TR primaryHandle,
+ ESYS_TR shandle1,
+ ESYS_TR shandle2,
+ ESYS_TR shandle3,
+ const TPM2B_SENSITIVE_CREATE *
+ inSensitive,
+ const TPM2B_PUBLIC * inPublic,
+ const TPM2B_DATA * outsideInfo,
+ const TPML_PCR_SELECTION * creationPCR,
+ ESYS_TR * objectHandle,
+ TPM2B_PUBLIC ** outPublic,
+ TPM2B_CREATION_DATA ** creationData,
+ TPM2B_DIGEST ** creationHash,
+ TPMT_TK_CREATION ** creationTicket);
+static TSS2_RC(*_gnutls_tss2_Esys_Initialize) (ESYS_CONTEXT ** esys_context,
+ TSS2_TCTI_CONTEXT * tcti,
+ TSS2_ABI_VERSION * abiVersion);
+static TSS2_RC(*_gnutls_tss2_Esys_Startup) (ESYS_CONTEXT * esysContext,
TPM2_SU startupType);
-static TSS2_RC (*_gnutls_tss2_Esys_TR_FromTPMPublic)(ESYS_CONTEXT *esysContext,
+static TSS2_RC(*_gnutls_tss2_Esys_TR_FromTPMPublic) (ESYS_CONTEXT * esysContext,
TPM2_HANDLE tpm_handle,
ESYS_TR optionalSession1,
ESYS_TR optionalSession2,
ESYS_TR optionalSession3,
- ESYS_TR *object);
-static TSS2_RC (*_gnutls_tss2_Esys_ReadPublic)(ESYS_CONTEXT *esysContext,
+ ESYS_TR * object);
+static TSS2_RC(*_gnutls_tss2_Esys_ReadPublic) (ESYS_CONTEXT * esysContext,
ESYS_TR objectHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
- TPM2B_PUBLIC **outPublic,
- TPM2B_NAME **name,
- TPM2B_NAME **qualifiedName);
-static TSS2_RC (*_gnutls_tss2_Esys_Load)(ESYS_CONTEXT *esysContext,
- ESYS_TR parentHandle,
- ESYS_TR shandle1,
- ESYS_TR shandle2,
- ESYS_TR shandle3,
- const TPM2B_PRIVATE *inPrivate,
- const TPM2B_PUBLIC *inPublic,
- ESYS_TR *objectHandle);
-static TSS2_RC (*_gnutls_tss2_Esys_FlushContext)(ESYS_CONTEXT *esysContext,
+ TPM2B_PUBLIC ** outPublic,
+ TPM2B_NAME ** name,
+ TPM2B_NAME ** qualifiedName);
+static TSS2_RC(*_gnutls_tss2_Esys_Load) (ESYS_CONTEXT * esysContext,
+ ESYS_TR parentHandle, ESYS_TR shandle1,
+ ESYS_TR shandle2, ESYS_TR shandle3,
+ const TPM2B_PRIVATE * inPrivate,
+ const TPM2B_PUBLIC * inPublic,
+ ESYS_TR * objectHandle);
+static TSS2_RC(*_gnutls_tss2_Esys_FlushContext) (ESYS_CONTEXT * esysContext,
ESYS_TR flushHandle);
-static void (*_gnutls_tss2_Esys_Finalize)(ESYS_CONTEXT **context);
+static void (*_gnutls_tss2_Esys_Finalize)(ESYS_CONTEXT ** context);
static TSS2_RC
-(*_gnutls_tss2_Esys_RSA_Decrypt)(ESYS_CONTEXT *esysContext,
- ESYS_TR keyHandle,
- ESYS_TR shandle1,
- ESYS_TR shandle2,
- ESYS_TR shandle3,
- const TPM2B_PUBLIC_KEY_RSA *cipherText,
- const TPMT_RSA_DECRYPT *inScheme,
- const TPM2B_DATA *label,
- TPM2B_PUBLIC_KEY_RSA **message);
-static TSS2_RC (*_gnutls_tss2_Esys_Sign)(ESYS_CONTEXT *esysContext,
+ (*_gnutls_tss2_Esys_RSA_Decrypt) (ESYS_CONTEXT * esysContext,
+ ESYS_TR keyHandle,
+ ESYS_TR shandle1,
+ ESYS_TR shandle2,
+ ESYS_TR shandle3,
+ const TPM2B_PUBLIC_KEY_RSA * cipherText,
+ const TPMT_RSA_DECRYPT * inScheme,
+ const TPM2B_DATA * label,
+ TPM2B_PUBLIC_KEY_RSA ** message);
+static TSS2_RC(*_gnutls_tss2_Esys_Sign) (ESYS_CONTEXT * esysContext,
ESYS_TR keyHandle,
ESYS_TR shandle1,
ESYS_TR shandle2,
ESYS_TR shandle3,
- const TPM2B_DIGEST *digest,
- const TPMT_SIG_SCHEME *inScheme,
- const TPMT_TK_HASHCHECK *validation,
- TPMT_SIGNATURE **signature);
+ const TPM2B_DIGEST * digest,
+ const TPMT_SIG_SCHEME * inScheme,
+ const TPMT_TK_HASHCHECK * validation,
+ TPMT_SIGNATURE ** signature);
static TSS2_RC
-(*_gnutls_tss2_Tss2_MU_TPM2B_PRIVATE_Unmarshal)(uint8_t const buffer[],
- size_t buffer_size,
- size_t *offset,
- TPM2B_PRIVATE *dest);
+ (*_gnutls_tss2_Tss2_MU_TPM2B_PRIVATE_Unmarshal) (uint8_t const buffer[],
+ size_t buffer_size,
+ size_t *offset,
+ TPM2B_PRIVATE * dest);
static TSS2_RC
-(*_gnutls_tss2_Tss2_MU_TPM2B_PUBLIC_Unmarshal)(uint8_t const buffer[],
- size_t buffer_size,
- size_t *offset,
- TPM2B_PUBLIC *dest);
+ (*_gnutls_tss2_Tss2_MU_TPM2B_PUBLIC_Unmarshal) (uint8_t const buffer[],
+ size_t buffer_size,
+ size_t *offset,
+ TPM2B_PUBLIC * dest);
static TSS2_RC
-(*_gnutls_tss2_Tss2_TctiLdr_Initialize)(const char *nameConf,
- TSS2_TCTI_CONTEXT **context);
-static void (*_gnutls_tss2_Tss2_TctiLdr_Finalize)(TSS2_TCTI_CONTEXT **context);
+ (*_gnutls_tss2_Tss2_TctiLdr_Initialize) (const char *nameConf,
+ TSS2_TCTI_CONTEXT ** context);
+static void (*_gnutls_tss2_Tss2_TctiLdr_Finalize)(TSS2_TCTI_CONTEXT ** context);
#endif
#define DLSYM_TSS2(sys, sym) \
@@ -223,57 +222,56 @@ static void (*_gnutls_tss2_Tss2_TctiLdr_Finalize)(TSS2_TCTI_CONTEXT **context);
return -1; \
}
-static int
-init_tss2_funcs(void)
+static int init_tss2_funcs(void)
{
if (!_gnutls_tss2_esys_dlhandle) {
_gnutls_tss2_esys_dlhandle =
- dlopen("libtss2-esys.so.0", RTLD_NOW | RTLD_GLOBAL);
+ dlopen("libtss2-esys.so.0", RTLD_NOW | RTLD_GLOBAL);
if (!_gnutls_tss2_esys_dlhandle) {
- _gnutls_debug_log("tpm2: unable to dlopen libtss2-esys\n");
+ _gnutls_debug_log
+ ("tpm2: unable to dlopen libtss2-esys\n");
return -1;
}
}
DLSYM_TSS2(esys, Esys_GetCapability)
- DLSYM_TSS2(esys, Esys_Free)
- DLSYM_TSS2(esys, Esys_TR_SetAuth)
- DLSYM_TSS2(esys, Esys_CreatePrimary)
- DLSYM_TSS2(esys, Esys_Initialize)
- DLSYM_TSS2(esys, Esys_Startup)
- DLSYM_TSS2(esys, Esys_TR_FromTPMPublic)
- DLSYM_TSS2(esys, Esys_ReadPublic)
- DLSYM_TSS2(esys, Esys_Load)
- DLSYM_TSS2(esys, Esys_FlushContext)
- DLSYM_TSS2(esys, Esys_Finalize)
- DLSYM_TSS2(esys, Esys_RSA_Decrypt)
- DLSYM_TSS2(esys, Esys_Sign)
-
- if (!_gnutls_tss2_mu_dlhandle) {
+ DLSYM_TSS2(esys, Esys_Free)
+ DLSYM_TSS2(esys, Esys_TR_SetAuth)
+ DLSYM_TSS2(esys, Esys_CreatePrimary)
+ DLSYM_TSS2(esys, Esys_Initialize)
+ DLSYM_TSS2(esys, Esys_Startup)
+ DLSYM_TSS2(esys, Esys_TR_FromTPMPublic)
+ DLSYM_TSS2(esys, Esys_ReadPublic)
+ DLSYM_TSS2(esys, Esys_Load)
+ DLSYM_TSS2(esys, Esys_FlushContext)
+ DLSYM_TSS2(esys, Esys_Finalize)
+ DLSYM_TSS2(esys, Esys_RSA_Decrypt)
+ DLSYM_TSS2(esys, Esys_Sign)
+ if (!_gnutls_tss2_mu_dlhandle) {
_gnutls_tss2_mu_dlhandle =
- dlopen("libtss2-mu.so.0", RTLD_NOW | RTLD_GLOBAL);
+ dlopen("libtss2-mu.so.0", RTLD_NOW | RTLD_GLOBAL);
if (!_gnutls_tss2_mu_dlhandle) {
- _gnutls_debug_log("tpm2: unable to dlopen libtss2-mu\n");
+ _gnutls_debug_log
+ ("tpm2: unable to dlopen libtss2-mu\n");
return -1;
}
}
DLSYM_TSS2(mu, Tss2_MU_TPM2B_PRIVATE_Unmarshal)
- DLSYM_TSS2(mu, Tss2_MU_TPM2B_PUBLIC_Unmarshal)
-
- if (!_gnutls_tss2_tctildr_dlhandle) {
+ DLSYM_TSS2(mu, Tss2_MU_TPM2B_PUBLIC_Unmarshal)
+ if (!_gnutls_tss2_tctildr_dlhandle) {
_gnutls_tss2_tctildr_dlhandle =
- dlopen("libtss2-tctildr.so.0", RTLD_NOW | RTLD_GLOBAL);
+ dlopen("libtss2-tctildr.so.0", RTLD_NOW | RTLD_GLOBAL);
if (!_gnutls_tss2_tctildr_dlhandle) {
- _gnutls_debug_log("tpm2: unable to dlopen libtss2-tctildr\n");
+ _gnutls_debug_log
+ ("tpm2: unable to dlopen libtss2-tctildr\n");
return -1;
}
}
DLSYM_TSS2(tctildr, Tss2_TctiLdr_Initialize)
- DLSYM_TSS2(tctildr, Tss2_TctiLdr_Finalize)
-
- return 0;
+ DLSYM_TSS2(tctildr, Tss2_TctiLdr_Finalize)
+ return 0;
}
struct tpm2_info_st {
@@ -302,71 +300,78 @@ static TSS2_TCTI_CONTEXT *tcti_ctx;
static const TPM2B_PUBLIC primary_template_rsa = {
.publicArea = {
- .type = TPM2_ALG_RSA,
- .nameAlg = PRIMARY_HASH_ALGORITHM,
- .objectAttributes = PRIMARY_OBJECT_ATTRIBUTES,
- .authPolicy = {
- .size = 0,
- },
- .parameters.rsaDetail = {
- .symmetric = {
- .algorithm = TPM2_ALG_AES,
- .keyBits.aes = 128,
- .mode.aes = TPM2_ALG_CFB,
- },
- .scheme = {
- .scheme = TPM2_ALG_NULL,
- .details = {}
- },
- .keyBits = 2048,
- .exponent = 0,
- },
- .unique.rsa = {
- .size = 0,
- }
- }
+ .type = TPM2_ALG_RSA,
+ .nameAlg = PRIMARY_HASH_ALGORITHM,
+ .objectAttributes = PRIMARY_OBJECT_ATTRIBUTES,
+ .authPolicy = {
+ .size = 0,
+ },
+ .parameters.rsaDetail = {
+ .symmetric = {
+ .algorithm =
+ TPM2_ALG_AES,
+ .keyBits.aes =
+ 128,
+ .mode.aes =
+ TPM2_ALG_CFB,
+ },
+ .scheme = {
+ .scheme =
+ TPM2_ALG_NULL,
+ .details = {}
+ },
+ .keyBits = 2048,
+ .exponent = 0,
+ },
+ .unique.rsa = {
+ .size = 0,
+ }
+ }
};
static const TPM2B_PUBLIC primary_template_ecc = {
.publicArea = {
- .type = TPM2_ALG_ECC,
- .nameAlg = PRIMARY_HASH_ALGORITHM,
- .objectAttributes = PRIMARY_OBJECT_ATTRIBUTES,
- .authPolicy = {
- .size = 0,
- },
- .parameters.eccDetail = {
- .symmetric = {
- .algorithm = TPM2_ALG_AES,
- .keyBits.aes = 128,
- .mode.aes = TPM2_ALG_CFB,
- },
- .scheme = {
- .scheme = TPM2_ALG_NULL,
- .details = {}
- },
- .curveID = TPM2_ECC_NIST_P256,
- .kdf = {
- .scheme = TPM2_ALG_NULL,
- .details = {}
- },
- },
- .unique.ecc = {
- .x.size = 0,
- .y.size = 0
- }
- }
+ .type = TPM2_ALG_ECC,
+ .nameAlg = PRIMARY_HASH_ALGORITHM,
+ .objectAttributes = PRIMARY_OBJECT_ATTRIBUTES,
+ .authPolicy = {
+ .size = 0,
+ },
+ .parameters.eccDetail = {
+ .symmetric = {
+ .algorithm =
+ TPM2_ALG_AES,
+ .keyBits.aes =
+ 128,
+ .mode.aes =
+ TPM2_ALG_CFB,
+ },
+ .scheme = {
+ .scheme =
+ TPM2_ALG_NULL,
+ .details = {}
+ },
+ .curveID = TPM2_ECC_NIST_P256,
+ .kdf = {
+ .scheme = TPM2_ALG_NULL,
+ .details = {}
+ },
+ },
+ .unique.ecc = {
+ .x.size = 0,
+ .y.size = 0}
+ }
};
static const TPM2B_SENSITIVE_CREATE primary_sensitive = {
.sensitive = {
- .userAuth = {
- .size = 0,
- },
- .data = {
- .size = 0,
- }
- }
+ .userAuth = {
+ .size = 0,
+ },
+ .data = {
+ .size = 0,
+ }
+ }
};
static const TPM2B_DATA all_outside_info = {
@@ -377,7 +382,6 @@ static const TPML_PCR_SELECTION all_creation_pcr = {
.count = 0,
};
-
#define rc_is_key_auth_failed(rc) (((rc) & 0xff) == TPM2_RC_BAD_AUTH)
#define rc_is_parent_auth_failed(rc) (((rc) & 0xff) == TPM2_RC_AUTH_FAIL)
@@ -395,8 +399,7 @@ struct tpm2_info_st *tpm2_info_init(struct pin_info_st *pin)
}
static int tpm2_pin(struct pin_info_st *pin_info, const char *url,
- const char *label,
- char *pin, unsigned int pin_size)
+ const char *label, char *pin, unsigned int pin_size)
{
int ret;
@@ -411,32 +414,33 @@ static int tpm2_pin(struct pin_info_st *pin_info, const char *url,
return ret;
}
-static void install_tpm_passphrase(TPM2B_DIGEST *auth, char *pass)
+static void install_tpm_passphrase(TPM2B_DIGEST * auth, char *pass)
{
if (strlen(pass) > sizeof(auth->buffer) - 1) {
_gnutls_debug_log("tpm2: password too long; truncating\n");
}
auth->size = strlen(pass);
- snprintf((char*)auth->buffer, sizeof(auth->buffer), "%s", pass);
+ snprintf((char *)auth->buffer, sizeof(auth->buffer), "%s", pass);
zeroize_key(pass, auth->size);
}
/* Figure out usable primary template according to the capabilities of
* the TPM chip; ECC is preferred over RSA for performance reasons.
*/
-static const TPM2B_PUBLIC *
-get_primary_template(ESYS_CONTEXT *ctx)
+static const TPM2B_PUBLIC *get_primary_template(ESYS_CONTEXT * ctx)
{
TPMS_CAPABILITY_DATA *capability_data;
UINT32 i;
TSS2_RC rc;
rc = _gnutls_tss2_Esys_GetCapability(ctx,
- ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE,
- TPM2_CAP_ALGS, 0, TPM2_MAX_CAP_ALGS,
- NULL, &capability_data);
+ ESYS_TR_NONE, ESYS_TR_NONE,
+ ESYS_TR_NONE, TPM2_CAP_ALGS, 0,
+ TPM2_MAX_CAP_ALGS, NULL,
+ &capability_data);
if (rc) {
- _gnutls_debug_log("tpm2: Esys_GetCapability failed: 0x%x\n", rc);
+ _gnutls_debug_log("tpm2: Esys_GetCapability failed: 0x%x\n",
+ rc);
return NULL;
}
@@ -454,15 +458,14 @@ get_primary_template(ESYS_CONTEXT *ctx)
_gnutls_tss2_Esys_Free(capability_data);
return &primary_template_rsa;
}
- }
+ }
_gnutls_tss2_Esys_Free(capability_data);
_gnutls_debug_log("tpm2: unable to find primary template\n");
return NULL;
}
-static const char *
-tpm2_hierarchy_name(TPM2_RH hierarchy)
+static const char *tpm2_hierarchy_name(TPM2_RH hierarchy)
{
switch (hierarchy) {
case TPM2_RH_OWNER:
@@ -479,8 +482,7 @@ tpm2_hierarchy_name(TPM2_RH hierarchy)
}
}
-static ESYS_TR
-tpm2_hierarchy_to_esys_handle(TPM2_RH hierarchy)
+static ESYS_TR tpm2_hierarchy_to_esys_handle(TPM2_RH hierarchy)
{
switch (hierarchy) {
case TPM2_RH_OWNER:
@@ -498,7 +500,7 @@ tpm2_hierarchy_to_esys_handle(TPM2_RH hierarchy)
}
static int init_tpm2_primary(struct tpm2_info_st *info,
- ESYS_CONTEXT *ctx, ESYS_TR *primary_handle)
+ ESYS_CONTEXT * ctx, ESYS_TR * primary_handle)
{
TSS2_RC rc;
const char *hierarchy_name;
@@ -519,7 +521,8 @@ static int init_tpm2_primary(struct tpm2_info_st *info,
char pass[GNUTLS_PKCS11_MAX_PIN_LEN];
if (tpm2_pin(info->pin_info, "tpm2:", hierarchy_name,
pass, sizeof(pass))) {
- return gnutls_assert_val(GNUTLS_E_TPM_KEY_PASSWORD_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_TPM_KEY_PASSWORD_ERROR);
}
install_tpm_passphrase(&info->ownerauth, pass);
info->need_ownerauth = false;
@@ -534,17 +537,20 @@ static int init_tpm2_primary(struct tpm2_info_st *info,
return gnutls_assert_val(GNUTLS_E_TPM_ERROR);
}
rc = _gnutls_tss2_Esys_CreatePrimary(ctx, hierarchy,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE,
- &primary_sensitive,
- primary_template,
- &all_outside_info, &all_creation_pcr,
- primary_handle, NULL, NULL, NULL, NULL);
+ ESYS_TR_PASSWORD, ESYS_TR_NONE,
+ ESYS_TR_NONE, &primary_sensitive,
+ primary_template,
+ &all_outside_info,
+ &all_creation_pcr, primary_handle,
+ NULL, NULL, NULL, NULL);
if (rc_is_key_auth_failed(rc)) {
- _gnutls_debug_log("tpm2: Esys_CreatePrimary owner auth failed\n");
+ _gnutls_debug_log
+ ("tpm2: Esys_CreatePrimary owner auth failed\n");
info->need_ownerauth = true;
goto reauth;
} else if (rc) {
- _gnutls_debug_log("tpm2: Esys_CreatePrimary failed: 0x%x\n", rc);
+ _gnutls_debug_log("tpm2: Esys_CreatePrimary failed: 0x%x\n",
+ rc);
return gnutls_assert_val(GNUTLS_E_TPM_ERROR);
}
return 0;
@@ -553,7 +559,7 @@ static int init_tpm2_primary(struct tpm2_info_st *info,
#define parent_is_generated(parent) ((parent) >> TPM2_HR_SHIFT == TPM2_HT_PERMANENT)
#define parent_is_persistent(parent) ((parent) >> TPM2_HR_SHIFT == TPM2_HT_PERSISTENT)
-static int init_tpm2_key(ESYS_CONTEXT **ctx, ESYS_TR *key_handle,
+static int init_tpm2_key(ESYS_CONTEXT ** ctx, ESYS_TR * key_handle,
struct tpm2_info_st *info)
{
ESYS_TR parent_handle = ESYS_TR_NONE;
@@ -572,7 +578,8 @@ static int init_tpm2_key(ESYS_CONTEXT **ctx, ESYS_TR *key_handle,
rc = _gnutls_tss2_Esys_Startup(*ctx, TPM2_SU_CLEAR);
if (rc == TPM2_RC_INITIALIZE) {
- _gnutls_debug_log("tpm2: was already started up thus false positive failing in tpm2tss log\n");
+ _gnutls_debug_log
+ ("tpm2: was already started up thus false positive failing in tpm2tss log\n");
} else if (rc) {
gnutls_assert();
_gnutls_debug_log("tpm2: Esys_Startup failed: 0x%x\n", rc);
@@ -586,14 +593,15 @@ static int init_tpm2_key(ESYS_CONTEXT **ctx, ESYS_TR *key_handle,
}
} else {
rc = _gnutls_tss2_Esys_TR_FromTPMPublic(*ctx, info->parent,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &parent_handle);
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ &parent_handle);
if (rc) {
gnutls_assert();
- _gnutls_debug_log("tpm2: Esys_TR_FromTPMPublic failed for parent 0x%x: 0x%x\n",
- info->parent, rc);
+ _gnutls_debug_log
+ ("tpm2: Esys_TR_FromTPMPublic failed for parent 0x%x: 0x%x\n",
+ info->parent, rc);
goto error;
}
/* If we don't already have a password (and haven't already authenticated
@@ -604,31 +612,35 @@ static int init_tpm2_key(ESYS_CONTEXT **ctx, ESYS_TR *key_handle,
TPM2B_PUBLIC *pub = NULL;
rc = _gnutls_tss2_Esys_ReadPublic(*ctx, parent_handle,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- ESYS_TR_NONE,
- &pub, NULL, NULL);
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ ESYS_TR_NONE,
+ &pub, NULL, NULL);
if (!rc &&
- !(pub->publicArea.objectAttributes & TPMA_OBJECT_NODA)) {
+ !(pub->
+ publicArea.objectAttributes & TPMA_OBJECT_NODA)) {
info->need_ownerauth = true;
}
_gnutls_tss2_Esys_Free(pub);
}
- reauth:
+ reauth:
if (info->need_ownerauth) {
char pass[GNUTLS_PKCS11_MAX_PIN_LEN];
if (tpm2_pin(info->pin_info, "tpm2:", "parent",
pass, sizeof(pass))) {
- return gnutls_assert_val(GNUTLS_E_TPM_KEY_PASSWORD_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_TPM_KEY_PASSWORD_ERROR);
}
install_tpm_passphrase(&info->ownerauth, pass);
info->need_ownerauth = false;
}
- rc = _gnutls_tss2_Esys_TR_SetAuth(*ctx, parent_handle, &info->ownerauth);
+ rc = _gnutls_tss2_Esys_TR_SetAuth(*ctx, parent_handle,
+ &info->ownerauth);
if (rc) {
gnutls_assert();
- _gnutls_debug_log("tpm2: Esys_TR_SetAuth failed: 0x%x\n",
- rc);
+ _gnutls_debug_log
+ ("tpm2: Esys_TR_SetAuth failed: 0x%x\n", rc);
goto error;
}
}
@@ -637,9 +649,9 @@ static int init_tpm2_key(ESYS_CONTEXT **ctx, ESYS_TR *key_handle,
parent_handle);
rc = _gnutls_tss2_Esys_Load(*ctx, parent_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE,
- &info->priv, &info->pub,
- key_handle);
+ ESYS_TR_PASSWORD, ESYS_TR_NONE,
+ ESYS_TR_NONE, &info->priv, &info->pub,
+ key_handle);
if (rc_is_parent_auth_failed(rc)) {
gnutls_assert();
_gnutls_debug_log("tpm2: Esys_Load auth failed\n");
@@ -656,8 +668,9 @@ static int init_tpm2_key(ESYS_CONTEXT **ctx, ESYS_TR *key_handle,
if (parent_is_generated(info->parent)) {
rc = _gnutls_tss2_Esys_FlushContext(*ctx, parent_handle);
if (rc) {
- _gnutls_debug_log("tpm2: Esys_FlushContext for generated primary failed: 0x%x\n",
- rc);
+ _gnutls_debug_log
+ ("tpm2: Esys_FlushContext for generated primary failed: 0x%x\n",
+ rc);
}
/* But it's non-fatal. */
}
@@ -677,7 +690,7 @@ static int init_tpm2_key(ESYS_CONTEXT **ctx, ESYS_TR *key_handle,
}
static int
-auth_tpm2_key(struct tpm2_info_st *info, ESYS_CONTEXT *ctx, ESYS_TR key_handle)
+auth_tpm2_key(struct tpm2_info_st *info, ESYS_CONTEXT * ctx, ESYS_TR key_handle)
{
TSS2_RC rc;
@@ -685,7 +698,8 @@ auth_tpm2_key(struct tpm2_info_st *info, ESYS_CONTEXT *ctx, ESYS_TR key_handle)
char pass[GNUTLS_PKCS11_MAX_PIN_LEN];
if (tpm2_pin(info->pin_info, "tpm2:", "key",
pass, sizeof(pass))) {
- return gnutls_assert_val(GNUTLS_E_TPM_KEY_PASSWORD_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_TPM_KEY_PASSWORD_ERROR);
}
install_tpm_passphrase(&info->userauth, pass);
@@ -702,14 +716,14 @@ auth_tpm2_key(struct tpm2_info_st *info, ESYS_CONTEXT *ctx, ESYS_TR key_handle)
int tpm2_rsa_sign_hash_fn(gnutls_privkey_t key, gnutls_sign_algorithm_t algo,
void *_info, unsigned int flags,
- const gnutls_datum_t *data, gnutls_datum_t *sig)
+ const gnutls_datum_t * data, gnutls_datum_t * sig)
{
struct tpm2_info_st *info = _info;
int ret;
ESYS_CONTEXT *ectx = NULL;
TPM2B_PUBLIC_KEY_RSA digest, *tsig = NULL;
- TPM2B_DATA label = { .size = 0 };
- TPMT_RSA_DECRYPT in_scheme = { .scheme = TPM2_ALG_NULL };
+ TPM2B_DATA label = {.size = 0 };
+ TPMT_RSA_DECRYPT in_scheme = {.scheme = TPM2_ALG_NULL };
ESYS_TR key_handle = ESYS_TR_NONE;
const gnutls_sign_entry_st *se;
gnutls_x509_spki_st params;
@@ -779,8 +793,9 @@ int tpm2_rsa_sign_hash_fn(gnutls_privkey_t key, gnutls_sign_algorithm_t algo,
}
rc = _gnutls_tss2_Esys_RSA_Decrypt(ectx, key_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE,
- &digest, &in_scheme, &label, &tsig);
+ ESYS_TR_PASSWORD, ESYS_TR_NONE,
+ ESYS_TR_NONE, &digest, &in_scheme,
+ &label, &tsig);
if (rc_is_key_auth_failed(rc)) {
gnutls_assert();
_gnutls_debug_log("tpm2: Esys_RSA_Decrypt auth failed\n");
@@ -789,7 +804,8 @@ int tpm2_rsa_sign_hash_fn(gnutls_privkey_t key, gnutls_sign_algorithm_t algo,
}
if (rc) {
gnutls_assert();
- _gnutls_debug_log("tpm2: failed to generate RSA signature: 0x%x\n", rc);
+ _gnutls_debug_log
+ ("tpm2: failed to generate RSA signature: 0x%x\n", rc);
goto out;
}
@@ -810,7 +826,7 @@ int tpm2_rsa_sign_hash_fn(gnutls_privkey_t key, gnutls_sign_algorithm_t algo,
int tpm2_ec_sign_hash_fn(gnutls_privkey_t key, gnutls_sign_algorithm_t algo,
void *_info, unsigned int flags,
- const gnutls_datum_t *data, gnutls_datum_t *sig)
+ const gnutls_datum_t * data, gnutls_datum_t * sig)
{
struct tpm2_info_st *info = _info;
int ret;
@@ -819,10 +835,11 @@ int tpm2_ec_sign_hash_fn(gnutls_privkey_t key, gnutls_sign_algorithm_t algo,
TPMT_SIGNATURE *tsig = NULL;
ESYS_TR key_handle = ESYS_TR_NONE;
TSS2_RC rc;
- TPMT_TK_HASHCHECK validation = { .tag = TPM2_ST_HASHCHECK,
- .hierarchy = TPM2_RH_NULL,
- .digest.size = 0 };
- TPMT_SIG_SCHEME in_scheme = { .scheme = TPM2_ALG_ECDSA };
+ TPMT_TK_HASHCHECK validation = {.tag = TPM2_ST_HASHCHECK,
+ .hierarchy = TPM2_RH_NULL,
+ .digest.size = 0
+ };
+ TPMT_SIG_SCHEME in_scheme = {.scheme = TPM2_ALG_ECDSA };
gnutls_datum_t sig_r, sig_s;
_gnutls_debug_log("tpm2: EC sign function called for %d bytes\n",
@@ -866,16 +883,17 @@ int tpm2_ec_sign_hash_fn(gnutls_privkey_t key, gnutls_sign_algorithm_t algo,
}
rc = _gnutls_tss2_Esys_Sign(ectx, key_handle,
- ESYS_TR_PASSWORD, ESYS_TR_NONE, ESYS_TR_NONE,
- &digest, &in_scheme, &validation,
- &tsig);
+ ESYS_TR_PASSWORD, ESYS_TR_NONE,
+ ESYS_TR_NONE, &digest, &in_scheme,
+ &validation, &tsig);
if (rc_is_key_auth_failed(rc)) {
_gnutls_debug_log("tpm2: Esys_Sign auth failed\n");
info->need_userauth = true;
goto reauth;
}
if (rc) {
- _gnutls_debug_log("tpm2: failed to generate EC signature: 0x%x\n", rc);
+ _gnutls_debug_log
+ ("tpm2: failed to generate EC signature: 0x%x\n", rc);
goto out;
}
@@ -901,11 +919,10 @@ int tpm2_ec_sign_hash_fn(gnutls_privkey_t key, gnutls_sign_algorithm_t algo,
GNUTLS_ONCE(tpm2_esys_once);
-static void
-tpm2_esys_once_init(void)
+static void tpm2_esys_once_init(void)
{
const char *tcti;
- const char * const tcti_vars[] = {
+ const char *const tcti_vars[] = {
"GNUTLS_TPM2_TCTI",
"TPM2TOOLS_TCTI",
"TCTI",
@@ -915,30 +932,32 @@ tpm2_esys_once_init(void)
TSS2_RC rc;
if (init_tss2_funcs() < 0) {
- _gnutls_debug_log("tpm2: unable to initialize TSS2 functions\n");
+ _gnutls_debug_log
+ ("tpm2: unable to initialize TSS2 functions\n");
return;
}
for (i = 0; i < sizeof(tcti_vars) / sizeof(tcti_vars[0]); i++) {
tcti = secure_getenv(tcti_vars[i]);
if (tcti && *tcti != '\0') {
- _gnutls_debug_log("tpm2: TCTI configuration found in %s\n",
- tcti_vars[i]);
+ _gnutls_debug_log
+ ("tpm2: TCTI configuration found in %s\n",
+ tcti_vars[i]);
break;
}
}
if (tcti && *tcti != '\0') {
rc = _gnutls_tss2_Tss2_TctiLdr_Initialize(tcti, &tcti_ctx);
if (rc) {
- _gnutls_debug_log("tpm2: TSS2_TctiLdr_Initialize failed: 0x%x\n",
- rc);
+ _gnutls_debug_log
+ ("tpm2: TSS2_TctiLdr_Initialize failed: 0x%x\n",
+ rc);
}
}
}
/* called by the global destructor through _gnutls_tpm2_deinit */
-void
-tpm2_esys_deinit(void)
+void tpm2_esys_deinit(void)
{
if (tcti_ctx) {
_gnutls_tss2_Tss2_TctiLdr_Finalize(&tcti_ctx);
@@ -960,7 +979,7 @@ tpm2_esys_deinit(void)
int install_tpm2_key(struct tpm2_info_st *info, gnutls_privkey_t pkey,
unsigned int parent, bool emptyauth,
- gnutls_datum_t *privdata, gnutls_datum_t *pubdata)
+ gnutls_datum_t * privdata, gnutls_datum_t * pubdata)
{
TSS2_RC rc;
@@ -980,19 +999,21 @@ int install_tpm2_key(struct tpm2_info_st *info, gnutls_privkey_t pkey,
info->parent = parent;
- rc = _gnutls_tss2_Tss2_MU_TPM2B_PRIVATE_Unmarshal(privdata->data, privdata->size, NULL,
- &info->priv);
+ rc = _gnutls_tss2_Tss2_MU_TPM2B_PRIVATE_Unmarshal(privdata->data,
+ privdata->size, NULL,
+ &info->priv);
if (rc) {
- _gnutls_debug_log("tpm2: failed to import private key data: 0x%x\n",
- rc);
+ _gnutls_debug_log
+ ("tpm2: failed to import private key data: 0x%x\n", rc);
return gnutls_assert_val(GNUTLS_E_TPM_ERROR);
}
- rc = _gnutls_tss2_Tss2_MU_TPM2B_PUBLIC_Unmarshal(pubdata->data, pubdata->size, NULL,
- &info->pub);
+ rc = _gnutls_tss2_Tss2_MU_TPM2B_PUBLIC_Unmarshal(pubdata->data,
+ pubdata->size, NULL,
+ &info->pub);
if (rc) {
- _gnutls_debug_log("tpm2: failed to import public key data: 0x%x\n",
- rc);
+ _gnutls_debug_log
+ ("tpm2: failed to import public key data: 0x%x\n", rc);
return gnutls_assert_val(GNUTLS_E_TPM_ERROR);
}
@@ -1036,8 +1057,8 @@ void tpm2_deinit_fn(gnutls_privkey_t key, void *priv)
release_tpm2_ctx(priv);
}
-static gnutls_ecc_curve_t
-tpm2_curve_to_gnutls_curve(TPMI_ECC_CURVE curve) {
+static gnutls_ecc_curve_t tpm2_curve_to_gnutls_curve(TPMI_ECC_CURVE curve)
+{
switch (curve) {
case TPM2_ECC_NIST_P192:
return GNUTLS_ECC_CURVE_SECP192R1;
@@ -1055,7 +1076,7 @@ tpm2_curve_to_gnutls_curve(TPMI_ECC_CURVE curve) {
}
static int
-convert_public_rsa(struct tpm2_info_st *info, gnutls_pk_params_st *params)
+convert_public_rsa(struct tpm2_info_st *info, gnutls_pk_params_st * params)
{
int ret;
UINT32 exponent;
@@ -1086,7 +1107,7 @@ convert_public_rsa(struct tpm2_info_st *info, gnutls_pk_params_st *params)
}
static int
-convert_public_ecc(struct tpm2_info_st *info, gnutls_pk_params_st *params)
+convert_public_ecc(struct tpm2_info_st *info, gnutls_pk_params_st * params)
{
int ret;
@@ -1119,8 +1140,7 @@ convert_public_ecc(struct tpm2_info_st *info, gnutls_pk_params_st *params)
int
tpm2_convert_public(gnutls_privkey_t key,
- void *_info,
- gnutls_pk_params_st *params)
+ void *_info, gnutls_pk_params_st * params)
{
struct tpm2_info_st *info = _info;
diff --git a/lib/urls.c b/lib/urls.c
index 7a797ee1f8..48060f355c 100644
--- a/lib/urls.c
+++ b/lib/urls.c
@@ -46,20 +46,22 @@ unsigned gnutls_url_is_supported(const char *url)
{
unsigned i;
- for (i=0;i<_gnutls_custom_urls_size;i++) {
- if (c_strncasecmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0)
+ for (i = 0; i < _gnutls_custom_urls_size; i++) {
+ if (c_strncasecmp
+ (url, _gnutls_custom_urls[i].name,
+ _gnutls_custom_urls[i].name_size) == 0)
return 1;
}
#ifdef ENABLE_PKCS11
- if (c_strncasecmp(url, PKCS11_URL, sizeof(PKCS11_URL)-1) == 0)
+ if (c_strncasecmp(url, PKCS11_URL, sizeof(PKCS11_URL) - 1) == 0)
return 1;
#endif
#ifdef HAVE_TROUSERS
- if (c_strncasecmp(url, TPMKEY_URL, sizeof(TPMKEY_URL)-1) == 0)
+ if (c_strncasecmp(url, TPMKEY_URL, sizeof(TPMKEY_URL) - 1) == 0)
return 1;
#endif
- if (c_strncasecmp(url, SYSTEM_URL, sizeof(SYSTEM_URL)-1) == 0)
+ if (c_strncasecmp(url, SYSTEM_URL, sizeof(SYSTEM_URL) - 1) == 0)
return _gnutls_system_url_is_supported(url);
return 0;
@@ -69,15 +71,17 @@ int _gnutls_url_is_known(const char *url)
{
unsigned i;
- if (c_strncasecmp(url, PKCS11_URL, sizeof(PKCS11_URL)-1) == 0)
+ if (c_strncasecmp(url, PKCS11_URL, sizeof(PKCS11_URL) - 1) == 0)
return 1;
- else if (c_strncasecmp(url, TPMKEY_URL, sizeof(TPMKEY_URL)-1) == 0)
+ else if (c_strncasecmp(url, TPMKEY_URL, sizeof(TPMKEY_URL) - 1) == 0)
return 1;
- else if (c_strncasecmp(url, SYSTEM_URL, sizeof(SYSTEM_URL)-1) == 0)
+ else if (c_strncasecmp(url, SYSTEM_URL, sizeof(SYSTEM_URL) - 1) == 0)
return 1;
else {
- for (i=0;i<_gnutls_custom_urls_size;i++) {
- if (c_strncasecmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0)
+ for (i = 0; i < _gnutls_custom_urls_size; i++) {
+ if (c_strncasecmp
+ (url, _gnutls_custom_urls[i].name,
+ _gnutls_custom_urls[i].name_size) == 0)
return 1;
}
@@ -106,19 +110,20 @@ int _gnutls_url_is_known(const char *url)
*
* Since: 3.4.0
**/
-int gnutls_register_custom_url(const gnutls_custom_url_st *st)
+int gnutls_register_custom_url(const gnutls_custom_url_st * st)
{
unsigned i;
- for (i=0;i<_gnutls_custom_urls_size;i++) {
+ for (i = 0; i < _gnutls_custom_urls_size; i++) {
if (_gnutls_custom_urls[i].name_size == st->name_size &&
strcmp(_gnutls_custom_urls[i].name, st->name) == 0) {
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
}
- if (_gnutls_custom_urls_size < MAX_CUSTOM_URLS-1) {
- memcpy(&_gnutls_custom_urls[_gnutls_custom_urls_size], st, sizeof(*st));
+ if (_gnutls_custom_urls_size < MAX_CUSTOM_URLS - 1) {
+ memcpy(&_gnutls_custom_urls[_gnutls_custom_urls_size], st,
+ sizeof(*st));
_gnutls_custom_urls_size++;
return 0;
} else {
@@ -142,20 +147,25 @@ int gnutls_register_custom_url(const gnutls_custom_url_st *st)
* Since: 3.4.0
-*/
int _gnutls_get_raw_issuer(const char *url, gnutls_x509_crt_t cert,
- gnutls_datum_t * issuer,
- unsigned int flags)
+ gnutls_datum_t * issuer, unsigned int flags)
{
unsigned i;
#ifdef ENABLE_PKCS11
if (c_strncasecmp(url, PKCS11_URL, PKCS11_URL_SIZE) == 0) {
- return gnutls_pkcs11_get_raw_issuer(url, cert, issuer, GNUTLS_X509_FMT_DER, flags);
+ return gnutls_pkcs11_get_raw_issuer(url, cert, issuer,
+ GNUTLS_X509_FMT_DER, flags);
}
#endif
- for (i=0;i<_gnutls_custom_urls_size;i++) {
- if (c_strncasecmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) {
+ for (i = 0; i < _gnutls_custom_urls_size; i++) {
+ if (c_strncasecmp
+ (url, _gnutls_custom_urls[i].name,
+ _gnutls_custom_urls[i].name_size) == 0) {
if (_gnutls_custom_urls[i].get_issuer) {
- return _gnutls_custom_urls[i].get_issuer(url, cert, issuer, flags);
+ return _gnutls_custom_urls[i].get_issuer(url,
+ cert,
+ issuer,
+ flags);
}
break;
}
diff --git a/lib/urls.h b/lib/urls.h
index 636592c45a..7965ef9006 100644
--- a/lib/urls.h
+++ b/lib/urls.h
@@ -19,17 +19,17 @@
*/
#ifndef GNUTLS_LIB_URLS_H
-#define GNUTLS_LIB_URLS_H
+# define GNUTLS_LIB_URLS_H
-#define PKCS11_URL "pkcs11:"
-#define SYSTEM_URL "system:"
-#define TPMKEY_URL "tpmkey:"
+# define PKCS11_URL "pkcs11:"
+# define SYSTEM_URL "system:"
+# define TPMKEY_URL "tpmkey:"
-#define PKCS11_URL_SIZE (sizeof(PKCS11_URL)-1)
-#define SYSTEM_URL_SIZE (sizeof(SYSTEM_URL)-1)
-#define TPMKEY_URL_SIZE (sizeof(TPMKEY_URL)-1)
+# define PKCS11_URL_SIZE (sizeof(PKCS11_URL)-1)
+# define SYSTEM_URL_SIZE (sizeof(SYSTEM_URL)-1)
+# define TPMKEY_URL_SIZE (sizeof(TPMKEY_URL)-1)
-#include <gnutls/urls.h>
+# include <gnutls/urls.h>
extern gnutls_custom_url_st _gnutls_custom_urls[];
extern unsigned _gnutls_custom_urls_size;
@@ -37,7 +37,6 @@ extern unsigned _gnutls_custom_urls_size;
int _gnutls_url_is_known(const char *url);
int _gnutls_get_raw_issuer(const char *url, gnutls_x509_crt_t cert,
- gnutls_datum_t * issuer,
- unsigned int flags);
+ gnutls_datum_t * issuer, unsigned int flags);
-#endif /* GNUTLS_LIB_URLS_H */
+#endif /* GNUTLS_LIB_URLS_H */
diff --git a/lib/verify-tofu.c b/lib/verify-tofu.c
index 97f47385e6..6b4ccafab7 100644
--- a/lib/verify-tofu.c
+++ b/lib/verify-tofu.c
@@ -66,7 +66,6 @@ struct gnutls_tdb_int default_tdb = {
verify_pubkey
};
-
/**
* gnutls_verify_stored_pubkey:
* @db_name: A file specifying the stored keys (use NULL for the default)
@@ -109,15 +108,13 @@ gnutls_verify_stored_pubkey(const char *db_name,
const char *host,
const char *service,
gnutls_certificate_type_t cert_type,
- const gnutls_datum_t * cert,
- unsigned int flags)
+ const gnutls_datum_t * cert, unsigned int flags)
{
- gnutls_datum_t pubkey = { NULL, 0 }; // Holds the pubkey in subjectPublicKeyInfo format (DER encoded)
+ gnutls_datum_t pubkey = { NULL, 0 }; // Holds the pubkey in subjectPublicKeyInfo format (DER encoded)
int ret;
char local_file[MAX_FILENAME];
bool need_free;
-
if (db_name == NULL && tdb == NULL) {
ret = find_config_file(local_file, sizeof(local_file));
if (ret < 0)
@@ -130,25 +127,25 @@ gnutls_verify_stored_pubkey(const char *db_name,
/* Import the public key depending on the provided certificate type */
switch (cert_type) {
- case GNUTLS_CRT_X509:
- /* Extract the pubkey from the cert. This function does a malloc
- * deep down the call chain. We are responsible for freeing. */
- ret = _gnutls_x509_raw_crt_to_raw_pubkey(cert, &pubkey);
-
- if (ret < 0) {
- _gnutls_free_datum(&pubkey);
- return gnutls_assert_val(ret);
- }
-
- need_free = true;
- break;
- case GNUTLS_CRT_RAWPK:
- pubkey.data = cert->data;
- pubkey.size = cert->size;
- need_free = false;
- break;
- default:
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
+ case GNUTLS_CRT_X509:
+ /* Extract the pubkey from the cert. This function does a malloc
+ * deep down the call chain. We are responsible for freeing. */
+ ret = _gnutls_x509_raw_crt_to_raw_pubkey(cert, &pubkey);
+
+ if (ret < 0) {
+ _gnutls_free_datum(&pubkey);
+ return gnutls_assert_val(ret);
+ }
+
+ need_free = true;
+ break;
+ case GNUTLS_CRT_RAWPK:
+ pubkey.data = cert->data;
+ pubkey.size = cert->size;
+ need_free = false;
+ break;
+ default:
+ return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
}
// Verify our pubkey against the database
@@ -222,32 +219,29 @@ static int parse_commitment_line(char *line,
/* hash and hex encode */
ret =
- _gnutls_hash_fast((gnutls_digest_algorithm_t)hash_algo->id,
- skey->data, skey->size, phash);
+ _gnutls_hash_fast((gnutls_digest_algorithm_t) hash_algo->id,
+ skey->data, skey->size, phash);
if (ret < 0)
return gnutls_assert_val(ret);
phash_size = _gnutls_hash_get_algo_len(hash_algo);
- p = _gnutls_bin2hex(phash, phash_size, (void *) hphash,
+ p = _gnutls_bin2hex(phash, phash_size, (void *)hphash,
sizeof(hphash), NULL);
if (p == NULL)
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
kp_len = strlen(kp);
if (kp_len != phash_size * 2)
- return
- gnutls_assert_val(GNUTLS_E_CERTIFICATE_KEY_MISMATCH);
+ return gnutls_assert_val(GNUTLS_E_CERTIFICATE_KEY_MISMATCH);
if (memcmp(kp, hphash, kp_len) != 0)
- return
- gnutls_assert_val(GNUTLS_E_CERTIFICATE_KEY_MISMATCH);
+ return gnutls_assert_val(GNUTLS_E_CERTIFICATE_KEY_MISMATCH);
/* key found and matches */
return 0;
}
-
static int parse_line(char *line,
const char *host, size_t host_len,
const char *service, size_t service_len,
@@ -267,8 +261,7 @@ static int parse_line(char *line,
if (strncmp(p, "c0", 2) == 0)
return parse_commitment_line(p + 3, host, host_len,
- service, service_len, now,
- rawkey);
+ service, service_len, now, rawkey);
if (strncmp(p, "g0", 2) != 0)
return gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
@@ -309,12 +302,10 @@ static int parse_line(char *line,
kp_len = strlen(kp);
if (kp_len != b64key->size)
- return
- gnutls_assert_val(GNUTLS_E_CERTIFICATE_KEY_MISMATCH);
+ return gnutls_assert_val(GNUTLS_E_CERTIFICATE_KEY_MISMATCH);
if (memcmp(kp, b64key->data, b64key->size) != 0)
- return
- gnutls_assert_val(GNUTLS_E_CERTIFICATE_KEY_MISMATCH);
+ return gnutls_assert_val(GNUTLS_E_CERTIFICATE_KEY_MISMATCH);
/* key found and matches */
return 0;
@@ -357,8 +348,7 @@ static int verify_pubkey(const char *file,
service_len, now, pubkey, &b64key);
if (ret == 0) { /* found */
goto cleanup;
- } else if (ret ==
- GNUTLS_E_CERTIFICATE_KEY_MISMATCH)
+ } else if (ret == GNUTLS_E_CERTIFICATE_KEY_MISMATCH)
mismatch = 1;
}
}
@@ -369,7 +359,7 @@ static int verify_pubkey(const char *file,
else
ret = GNUTLS_E_NO_CERTIFICATE_FOUND;
- cleanup:
+ cleanup:
free(line);
if (fp != NULL)
fclose(fp);
@@ -389,7 +379,7 @@ static int raw_pubkey_to_base64(const gnutls_datum_t * raw,
if (b64->data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- base64_encode_raw((void*)b64->data, raw->size, raw->data);
+ base64_encode_raw((void *)b64->data, raw->size, raw->data);
b64->size = size;
return 0;
@@ -426,11 +416,11 @@ int store_pubkey(const char *db_name, const char *host,
host = "*";
fprintf(fp, "|g0|%s|%s|%lu|%.*s\n", host, service,
- (unsigned long) expiration, b64key.size, b64key.data);
+ (unsigned long)expiration, b64key.size, b64key.data);
ret = 0;
- cleanup:
+ cleanup:
if (fp != NULL)
fclose(fp);
@@ -459,7 +449,7 @@ int store_commitment(const char *db_name, const char *host,
host = "*";
fprintf(fp, "|c0|%s|%s|%lu|%u|%s\n", host, service,
- (unsigned long) expiration, (unsigned) hash_algo,
+ (unsigned long)expiration, (unsigned)hash_algo,
_gnutls_bin2hex(hash->data, hash->size, buffer,
sizeof(buffer), NULL));
@@ -510,16 +500,13 @@ gnutls_store_pubkey(const char *db_name,
const gnutls_datum_t * cert,
time_t expiration, unsigned int flags)
{
- gnutls_datum_t pubkey = { NULL, 0 }; // Holds the pubkey in subjectPublicKeyInfo format (DER encoded)
+ gnutls_datum_t pubkey = { NULL, 0 }; // Holds the pubkey in subjectPublicKeyInfo format (DER encoded)
int ret;
char local_file[MAX_FILENAME];
bool need_free;
-
if (db_name == NULL && tdb == NULL) {
- ret =
- _gnutls_find_config_path(local_file,
- sizeof(local_file));
+ ret = _gnutls_find_config_path(local_file, sizeof(local_file));
if (ret < 0)
return gnutls_assert_val(ret);
@@ -537,25 +524,25 @@ gnutls_store_pubkey(const char *db_name,
/* Import the public key depending on the provided certificate type */
switch (cert_type) {
- case GNUTLS_CRT_X509:
- /* Extract the pubkey from the cert. This function does a malloc
- * deep down the call chain. We are responsible for freeing. */
- ret = _gnutls_x509_raw_crt_to_raw_pubkey(cert, &pubkey);
-
- if (ret < 0) {
- _gnutls_free_datum(&pubkey);
- return gnutls_assert_val(ret);
- }
-
- need_free = true;
- break;
- case GNUTLS_CRT_RAWPK:
- pubkey.data = cert->data;
- pubkey.size = cert->size;
- need_free = false;
- break;
- default:
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
+ case GNUTLS_CRT_X509:
+ /* Extract the pubkey from the cert. This function does a malloc
+ * deep down the call chain. We are responsible for freeing. */
+ ret = _gnutls_x509_raw_crt_to_raw_pubkey(cert, &pubkey);
+
+ if (ret < 0) {
+ _gnutls_free_datum(&pubkey);
+ return gnutls_assert_val(ret);
+ }
+
+ need_free = true;
+ break;
+ case GNUTLS_CRT_RAWPK:
+ pubkey.data = cert->data;
+ pubkey.size = cert->size;
+ need_free = false;
+ break;
+ default:
+ return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE);
}
_gnutls_debug_log("Configuration file: %s\n", db_name);
@@ -615,16 +602,15 @@ gnutls_store_commitment(const char *db_name,
if (me == NULL)
return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
- if (!(flags & GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN) && _gnutls_digest_is_secure(me) == 0)
+ if (!(flags & GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN)
+ && _gnutls_digest_is_secure(me) == 0)
return gnutls_assert_val(GNUTLS_E_INSUFFICIENT_SECURITY);
if (_gnutls_hash_get_algo_len(me) != hash->size)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if (db_name == NULL && tdb == NULL) {
- ret =
- _gnutls_find_config_path(local_file,
- sizeof(local_file));
+ ret = _gnutls_find_config_path(local_file, sizeof(local_file));
if (ret < 0)
return gnutls_assert_val(ret);
@@ -643,7 +629,7 @@ gnutls_store_commitment(const char *db_name,
_gnutls_debug_log("Configuration file: %s\n", db_name);
ret = tdb->cstore(db_name, host, service, expiration,
- (gnutls_digest_algorithm_t)me->id, hash);
+ (gnutls_digest_algorithm_t) me->id, hash);
if (ret < 0) {
return gnutls_assert_val(GNUTLS_E_DB_ERROR);
}
@@ -704,8 +690,7 @@ int gnutls_tdb_init(gnutls_tdb_t * tdb)
* The @db_name should be used to pass any private data to this function.
*
**/
-void gnutls_tdb_set_store_func(gnutls_tdb_t tdb,
- gnutls_tdb_store_func store)
+void gnutls_tdb_set_store_func(gnutls_tdb_t tdb, gnutls_tdb_store_func store)
{
tdb->store = store;
}
@@ -749,8 +734,7 @@ void gnutls_tdb_set_store_commitment_func(gnutls_tdb_t tdb,
* The @db_name should be used to pass any private data to this function.
*
**/
-void gnutls_tdb_set_verify_func(gnutls_tdb_t tdb,
- gnutls_tdb_verify_func verify)
+void gnutls_tdb_set_verify_func(gnutls_tdb_t tdb, gnutls_tdb_verify_func verify)
{
tdb->verify = verify;
}
diff --git a/lib/vko.c b/lib/vko.c
index adcce0fd1f..4f91d77ad4 100644
--- a/lib/vko.c
+++ b/lib/vko.c
@@ -29,17 +29,15 @@
#include "common.h"
static int
-_gnutls_gost_vko_key(gnutls_pk_params_st *pub,
- gnutls_pk_params_st *priv,
- gnutls_datum_t *ukm,
- gnutls_digest_algorithm_t digalg,
- gnutls_datum_t *kek)
+_gnutls_gost_vko_key(gnutls_pk_params_st * pub,
+ gnutls_pk_params_st * priv,
+ gnutls_datum_t * ukm,
+ gnutls_digest_algorithm_t digalg, gnutls_datum_t * kek)
{
gnutls_datum_t tmp_vko_key;
int ret;
- ret = _gnutls_pk_derive_nonce(pub->algo, &tmp_vko_key,
- priv, pub, ukm);
+ ret = _gnutls_pk_derive_nonce(pub->algo, &tmp_vko_key, priv, pub, ukm);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -51,7 +49,9 @@ _gnutls_gost_vko_key(gnutls_pk_params_st *pub,
goto cleanup;
}
- ret = gnutls_hash_fast(digalg, tmp_vko_key.data, tmp_vko_key.size, kek->data);
+ ret =
+ gnutls_hash_fast(digalg, tmp_vko_key.data, tmp_vko_key.size,
+ kek->data);
if (ret < 0) {
gnutls_assert();
_gnutls_free_datum(kek);
@@ -60,7 +60,7 @@ _gnutls_gost_vko_key(gnutls_pk_params_st *pub,
ret = 0;
-cleanup:
+ cleanup:
_gnutls_free_temp_key_datum(&tmp_vko_key);
return ret;
@@ -69,11 +69,10 @@ cleanup:
static const gnutls_datum_t zero_data = { NULL, 0 };
int
-_gnutls_gost_keytrans_encrypt(gnutls_pk_params_st *pub,
- gnutls_pk_params_st *priv,
- gnutls_datum_t *cek,
- gnutls_datum_t *ukm,
- gnutls_datum_t *out)
+_gnutls_gost_keytrans_encrypt(gnutls_pk_params_st * pub,
+ gnutls_pk_params_st * priv,
+ gnutls_datum_t * cek,
+ gnutls_datum_t * ukm, gnutls_datum_t * out)
{
int ret;
gnutls_datum_t kek;
@@ -103,8 +102,7 @@ _gnutls_gost_keytrans_encrypt(gnutls_pk_params_st *pub,
}
ret = asn1_create_element(_gnutls_get_gnutls_asn(),
- "GNUTLS.GostR3410-KeyTransport",
- &kx);
+ "GNUTLS.GostR3410-KeyTransport", &kx);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -121,28 +119,33 @@ _gnutls_gost_keytrans_encrypt(gnutls_pk_params_st *pub,
}
ret = _gnutls_x509_encode_and_copy_PKI_params(kx,
- "transportParameters.ephemeralPublicKey",
- priv);
+ "transportParameters.ephemeralPublicKey",
+ priv);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- if ((ret = asn1_write_value(kx, "transportParameters.encryptionParamSet",
- gnutls_gost_paramset_get_oid(pub->gost_params),
- 1)) != ASN1_SUCCESS) {
+ if ((ret =
+ asn1_write_value(kx, "transportParameters.encryptionParamSet",
+ gnutls_gost_paramset_get_oid(pub->gost_params),
+ 1)) != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
goto cleanup;
}
- ret = _gnutls_x509_write_value(kx, "sessionEncryptedKey.encryptedKey", &enc);
+ ret =
+ _gnutls_x509_write_value(kx, "sessionEncryptedKey.encryptedKey",
+ &enc);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret = _gnutls_x509_write_value(kx, "sessionEncryptedKey.maskKey", &zero_data);
+ ret =
+ _gnutls_x509_write_value(kx, "sessionEncryptedKey.maskKey",
+ &zero_data);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -161,7 +164,7 @@ _gnutls_gost_keytrans_encrypt(gnutls_pk_params_st *pub,
ret = 0;
-cleanup:
+ cleanup:
asn1_delete_structure(&kx);
_gnutls_free_datum(&enc);
_gnutls_free_datum(&imit);
@@ -170,10 +173,9 @@ cleanup:
}
int
-_gnutls_gost_keytrans_decrypt(gnutls_pk_params_st *priv,
- gnutls_datum_t *cek,
- gnutls_datum_t *ukm,
- gnutls_datum_t *out)
+_gnutls_gost_keytrans_decrypt(gnutls_pk_params_st * priv,
+ gnutls_datum_t * cek,
+ gnutls_datum_t * ukm, gnutls_datum_t * out)
{
int ret;
asn1_node kx;
@@ -211,15 +213,16 @@ _gnutls_gost_keytrans_decrypt(gnutls_pk_params_st *priv,
}
if (pub.algo != priv->algo ||
- pub.gost_params != priv->gost_params ||
- pub.curve != priv->curve) {
+ pub.gost_params != priv->gost_params || pub.curve != priv->curve) {
gnutls_assert();
ret = GNUTLS_E_ILLEGAL_PARAMETER;
goto cleanup;
}
oid_size = sizeof(oid);
- ret = asn1_read_value(kx, "transportParameters.encryptionParamSet", oid, &oid_size);
+ ret =
+ asn1_read_value(kx, "transportParameters.encryptionParamSet", oid,
+ &oid_size);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -245,7 +248,8 @@ _gnutls_gost_keytrans_decrypt(gnutls_pk_params_st *priv,
* of any kind as all values are transmitted in cleartext. Returning
* that this point won't give any information to the attacker.
*/
- if (ukm2.size != ukm->size || memcmp(ukm2.data, ukm->data, ukm->size) != 0) {
+ if (ukm2.size != ukm->size
+ || memcmp(ukm2.data, ukm->data, ukm->size) != 0) {
gnutls_assert();
_gnutls_free_datum(&ukm2);
ret = GNUTLS_E_DECRYPTION_FAILED;
@@ -260,8 +264,7 @@ _gnutls_gost_keytrans_decrypt(gnutls_pk_params_st *priv,
goto cleanup;
}
- ret = _gnutls_x509_read_value(kx, "sessionEncryptedKey.macKey",
- &imit);
+ ret = _gnutls_x509_read_value(kx, "sessionEncryptedKey.macKey", &imit);
if (ret < 0) {
gnutls_assert();
_gnutls_free_datum(&enc);
@@ -290,10 +293,10 @@ _gnutls_gost_keytrans_decrypt(gnutls_pk_params_st *priv,
ret = 0;
-cleanup2:
+ cleanup2:
_gnutls_free_datum(&imit);
_gnutls_free_datum(&enc);
-cleanup:
+ cleanup:
gnutls_pk_params_release(&pub);
asn1_delete_structure(&kx);
diff --git a/lib/vko.h b/lib/vko.h
index cee6b3a2df..c3681c79aa 100644
--- a/lib/vko.h
+++ b/lib/vko.h
@@ -20,19 +20,17 @@
*/
#ifndef GNUTLS_LIB_VKO_H
-#define GNUTLS_LIB_VKO_H
+# define GNUTLS_LIB_VKO_H
int
-_gnutls_gost_keytrans_encrypt(gnutls_pk_params_st *pub,
- gnutls_pk_params_st *priv,
- gnutls_datum_t *cek,
- gnutls_datum_t *ukm,
- gnutls_datum_t *out);
+_gnutls_gost_keytrans_encrypt(gnutls_pk_params_st * pub,
+ gnutls_pk_params_st * priv,
+ gnutls_datum_t * cek,
+ gnutls_datum_t * ukm, gnutls_datum_t * out);
int
-_gnutls_gost_keytrans_decrypt(gnutls_pk_params_st *priv,
- gnutls_datum_t *cek,
- gnutls_datum_t *ukm,
- gnutls_datum_t *out);
+_gnutls_gost_keytrans_decrypt(gnutls_pk_params_st * priv,
+ gnutls_datum_t * cek,
+ gnutls_datum_t * ukm, gnutls_datum_t * out);
-#endif /* GNUTLS_LIB_VKO_H */
+#endif /* GNUTLS_LIB_VKO_H */
diff --git a/lib/x509.h b/lib/x509.h
index 3ad21f519a..f70742e7c8 100644
--- a/lib/x509.h
+++ b/lib/x509.h
@@ -21,26 +21,23 @@
*/
#ifndef GNUTLS_LIB_X509_H
-#define GNUTLS_LIB_X509_H
-
-#include <libtasn1.h>
+# define GNUTLS_LIB_X509_H
+# include <libtasn1.h>
int _gnutls_x509_cert_verify_peers(gnutls_session_t session,
gnutls_typed_vdata_st * data,
- unsigned int elements,
- unsigned int *status);
-
-#define PEM_CERT_SEP2 "-----BEGIN X509 CERTIFICATE"
-#define PEM_CERT_SEP "-----BEGIN CERTIFICATE"
-#define PEM_OCSP_RESPONSE "-----BEGIN OCSP RESPONSE"
-#define BARE_PEM_OCSP_RESPONSE "OCSP RESPONSE"
+ unsigned int elements, unsigned int *status);
-#define PEM_CRL_SEP "-----BEGIN X509 CRL"
+# define PEM_CERT_SEP2 "-----BEGIN X509 CERTIFICATE"
+# define PEM_CERT_SEP "-----BEGIN CERTIFICATE"
+# define PEM_OCSP_RESPONSE "-----BEGIN OCSP RESPONSE"
+# define BARE_PEM_OCSP_RESPONSE "OCSP RESPONSE"
+# define PEM_CRL_SEP "-----BEGIN X509 CRL"
int _gnutls_x509_raw_privkey_to_gkey(gnutls_privkey_t * privkey,
const gnutls_datum_t * raw_key,
gnutls_x509_crt_fmt_t type);
-#endif /* GNUTLS_LIB_X509_H */
+#endif /* GNUTLS_LIB_X509_H */
diff --git a/lib/x509/attributes.c b/lib/x509/attributes.c
index 3aab65b360..5ca57a9b3e 100644
--- a/lib/x509/attributes.c
+++ b/lib/x509/attributes.c
@@ -55,7 +55,6 @@ overwrite_attribute(asn1_node asn, const char *root, unsigned indx,
return result;
}
-
return 0;
}
@@ -71,8 +70,8 @@ overwrite_attribute(asn1_node asn, const char *root, unsigned indx,
*/
int
_x509_parse_attribute(asn1_node asn1_struct,
- const char *attr_name, const char *given_oid, unsigned indx,
- int raw, gnutls_datum_t * out)
+ const char *attr_name, const char *given_oid,
+ unsigned indx, int raw, gnutls_datum_t * out)
{
int k1, result;
char tmpbuffer1[MAX_NAME_SIZE];
@@ -92,12 +91,10 @@ _x509_parse_attribute(asn1_node asn1_struct,
snprintf(tmpbuffer1, sizeof(tmpbuffer1), "%s.?%d",
attr_name, k1);
else
- snprintf(tmpbuffer1, sizeof(tmpbuffer1), "?%d",
- k1);
+ snprintf(tmpbuffer1, sizeof(tmpbuffer1), "?%d", k1);
len = sizeof(value) - 1;
- result =
- asn1_read_value(asn1_struct, tmpbuffer1, value, &len);
+ result = asn1_read_value(asn1_struct, tmpbuffer1, value, &len);
if (result == ASN1_ELEMENT_NOT_FOUND) {
gnutls_assert();
@@ -114,13 +111,11 @@ _x509_parse_attribute(asn1_node asn1_struct,
*/
/* Read the OID
*/
- _gnutls_str_cpy(tmpbuffer3, sizeof(tmpbuffer3),
- tmpbuffer1);
+ _gnutls_str_cpy(tmpbuffer3, sizeof(tmpbuffer3), tmpbuffer1);
_gnutls_str_cat(tmpbuffer3, sizeof(tmpbuffer3), ".type");
len = sizeof(oid) - 1;
- result =
- asn1_read_value(asn1_struct, tmpbuffer3, oid, &len);
+ result = asn1_read_value(asn1_struct, tmpbuffer3, oid, &len);
if (result == ASN1_ELEMENT_NOT_FOUND)
break;
@@ -175,7 +170,7 @@ _x509_parse_attribute(asn1_node asn1_struct,
result = GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
- cleanup:
+ cleanup:
return result;
}
@@ -228,10 +223,9 @@ add_attribute(asn1_node asn, const char *root, const char *attribute_id,
return 0;
}
-
int
_x509_set_attribute(asn1_node asn, const char *root,
- const char *ext_id, const gnutls_datum_t * ext_data)
+ const char *ext_id, const gnutls_datum_t * ext_data)
{
int result;
int k, len;
@@ -281,7 +275,6 @@ _x509_set_attribute(asn1_node asn, const char *root,
ext_data);
}
-
}
while (0);
}
@@ -294,6 +287,5 @@ _x509_set_attribute(asn1_node asn, const char *root,
return _gnutls_asn2err(result);
}
-
return 0;
}
diff --git a/lib/x509/attributes.h b/lib/x509/attributes.h
index 4ebb7dd34d..ff2328ad46 100644
--- a/lib/x509/attributes.h
+++ b/lib/x509/attributes.h
@@ -21,15 +21,15 @@
*/
#ifndef GNUTLS_LIB_X509_ATTRIBUTES_H
-#define GNUTLS_LIB_X509_ATTRIBUTES_H
+# define GNUTLS_LIB_X509_ATTRIBUTES_H
int
_x509_parse_attribute(asn1_node asn1_struct,
- const char *attr_name, const char *given_oid, unsigned indx,
- int raw, gnutls_datum_t * out);
+ const char *attr_name, const char *given_oid,
+ unsigned indx, int raw, gnutls_datum_t * out);
int
_x509_set_attribute(asn1_node asn, const char *root,
- const char *ext_id, const gnutls_datum_t * ext_data);
+ const char *ext_id, const gnutls_datum_t * ext_data);
-#endif /* GNUTLS_LIB_X509_ATTRIBUTES_H */
+#endif /* GNUTLS_LIB_X509_ATTRIBUTES_H */
diff --git a/lib/x509/common.c b/lib/x509/common.c
index ca0b71cb69..2cc95c9b8b 100644
--- a/lib/x509/common.c
+++ b/lib/x509/common.c
@@ -35,9 +35,7 @@
#include "extras/hex.h"
#include <common.h>
-static int
-data2hex(const void *data, size_t data_size,
- gnutls_datum_t *out);
+static int data2hex(const void *data, size_t data_size, gnutls_datum_t * out);
#define ENTRY(oid, ldap, asn, etype) {oid, sizeof(oid)-1, ldap, sizeof(ldap)-1, asn, etype}
@@ -51,12 +49,12 @@ static const struct oid_to_string _oid2str[] = {
/* PKIX
*/
ENTRY("1.3.6.1.5.5.7.9.2", "placeOfBirth", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
ENTRY("1.3.6.1.5.5.7.9.3", "gender", NULL, ASN1_ETYPE_PRINTABLE_STRING),
ENTRY("1.3.6.1.5.5.7.9.4", "countryOfCitizenship", NULL,
- ASN1_ETYPE_PRINTABLE_STRING),
+ ASN1_ETYPE_PRINTABLE_STRING),
ENTRY("1.3.6.1.5.5.7.9.5", "countryOfResidence", NULL,
- ASN1_ETYPE_PRINTABLE_STRING),
+ ASN1_ETYPE_PRINTABLE_STRING),
ENTRY("2.5.4.6", "C", NULL, ASN1_ETYPE_PRINTABLE_STRING),
ENTRY("2.5.4.9", "street", "PKIX1.DirectoryString", ASN1_ETYPE_INVALID),
@@ -67,50 +65,51 @@ static const struct oid_to_string _oid2str[] = {
ENTRY("2.5.4.7", "L", "PKIX1.DirectoryString", ASN1_ETYPE_INVALID),
ENTRY("2.5.4.8", "ST", "PKIX1.DirectoryString", ASN1_ETYPE_INVALID),
ENTRY("2.5.4.13", "description", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
ENTRY("2.5.4.5", "serialNumber", NULL, ASN1_ETYPE_PRINTABLE_STRING),
ENTRY("2.5.4.20", "telephoneNumber", NULL, ASN1_ETYPE_PRINTABLE_STRING),
ENTRY("2.5.4.4", "surName", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
ENTRY("2.5.4.43", "initials", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
ENTRY("2.5.4.44", "generationQualifier", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
ENTRY("2.5.4.42", "givenName", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
ENTRY("2.5.4.65", "pseudonym", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
ENTRY("2.5.4.46", "dnQualifier", NULL, ASN1_ETYPE_PRINTABLE_STRING),
ENTRY("2.5.4.17", "postalCode", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
ENTRY("2.5.4.41", "name", "PKIX1.DirectoryString", ASN1_ETYPE_INVALID),
ENTRY("2.5.4.15", "businessCategory", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
ENTRY("0.9.2342.19200300.100.1.25", "DC", NULL, ASN1_ETYPE_IA5_STRING),
ENTRY("0.9.2342.19200300.100.1.1", "UID", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
- ENTRY("1.2.840.113556.1.4.656", "userPrincipalName", "PKIX1.DirectoryString",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
+ ENTRY("1.2.840.113556.1.4.656", "userPrincipalName",
+ "PKIX1.DirectoryString",
+ ASN1_ETYPE_INVALID),
/* Extended validation
*/
ENTRY("1.3.6.1.4.1.311.60.2.1.1",
- "jurisdictionOfIncorporationLocalityName",
- "PKIX1.DirectoryString", ASN1_ETYPE_INVALID),
+ "jurisdictionOfIncorporationLocalityName",
+ "PKIX1.DirectoryString", ASN1_ETYPE_INVALID),
ENTRY("1.3.6.1.4.1.311.60.2.1.2",
- "jurisdictionOfIncorporationStateOrProvinceName",
- "PKIX1.DirectoryString", ASN1_ETYPE_INVALID),
+ "jurisdictionOfIncorporationStateOrProvinceName",
+ "PKIX1.DirectoryString", ASN1_ETYPE_INVALID),
ENTRY("1.3.6.1.4.1.311.60.2.1.3",
- "jurisdictionOfIncorporationCountryName",
- NULL, ASN1_ETYPE_PRINTABLE_STRING),
+ "jurisdictionOfIncorporationCountryName",
+ NULL, ASN1_ETYPE_PRINTABLE_STRING),
/* PKCS #9
*/
ENTRY("1.2.840.113549.1.9.1", "EMAIL", NULL, ASN1_ETYPE_IA5_STRING),
ENTRY_ND("1.2.840.113549.1.9.7", "PKIX1.pkcs-9-challengePassword",
- ASN1_ETYPE_INVALID),
+ ASN1_ETYPE_INVALID),
/* friendly name */
ENTRY_ND("1.2.840.113549.1.9.20", NULL, ASN1_ETYPE_BMP_STRING),
@@ -134,14 +133,14 @@ static const struct oid_to_string _oid2str[] = {
{NULL, 0, NULL, 0, NULL, 0}
};
-const struct oid_to_string *_gnutls_oid_get_entry(const struct oid_to_string *ots, const char *oid)
+const struct oid_to_string *_gnutls_oid_get_entry(const struct oid_to_string
+ *ots, const char *oid)
{
unsigned int i = 0;
unsigned len = strlen(oid);
do {
- if (len == ots[i].oid_size &&
- strcmp(ots[i].oid, oid) == 0)
+ if (len == ots[i].oid_size && strcmp(ots[i].oid, oid) == 0)
return &ots[i];
i++;
}
@@ -152,7 +151,8 @@ const struct oid_to_string *_gnutls_oid_get_entry(const struct oid_to_string *ot
const char *_gnutls_oid_get_asn_desc(const char *oid)
{
- const struct oid_to_string *entry = _gnutls_oid_get_entry(_oid2str, oid);
+ const struct oid_to_string *entry =
+ _gnutls_oid_get_entry(_oid2str, oid);
return entry ? entry->asn_desc : NULL;
}
@@ -163,8 +163,7 @@ const char *_gnutls_ldap_string_to_oid(const char *str, unsigned str_len)
do {
if ((_oid2str[i].name_desc != NULL) &&
(str_len == _oid2str[i].name_desc_size) &&
- (c_strncasecmp(_oid2str[i].name_desc, str, str_len) ==
- 0))
+ (c_strncasecmp(_oid2str[i].name_desc, str, str_len) == 0))
return _oid2str[i].oid;
i++;
}
@@ -217,7 +216,7 @@ static int str_escape(const gnutls_datum_t * str, gnutls_datum_t * escaped)
escaped->size = j;
return 0;
- cleanup:
+ cleanup:
gnutls_free(buffer);
return ret;
}
@@ -257,7 +256,8 @@ int gnutls_x509_dn_oid_known(const char *oid)
**/
const char *gnutls_x509_dn_oid_name(const char *oid, unsigned int flags)
{
- const struct oid_to_string *entry =_gnutls_oid_get_entry(_oid2str, oid);
+ const struct oid_to_string *entry =
+ _gnutls_oid_get_entry(_oid2str, oid);
if (entry && entry->name_desc)
return entry->name_desc;
@@ -294,12 +294,10 @@ make_printable_string(unsigned etype, const gnutls_datum_t * input,
/* HACK: if the teletex string contains only ascii
* characters then treat it as printable.
*/
- if (_gnutls_str_is_print((char*)input->data, input->size)) {
+ if (_gnutls_str_is_print((char *)input->data, input->size)) {
out->data = gnutls_malloc(input->size + 1);
if (out->data == NULL)
- return
- gnutls_assert_val
- (GNUTLS_E_MEMORY_ERROR);
+ return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
memcpy(out->data, input->data, input->size);
out->size = input->size;
@@ -331,7 +329,7 @@ decode_complex_string(const struct oid_to_string *oentry, void *value,
asn1_node tmpasn = NULL;
char asn1_err[ASN1_MAX_ERROR_DESCRIPTION_SIZE] = "";
unsigned int etype;
- gnutls_datum_t td = {NULL, 0};
+ gnutls_datum_t td = { NULL, 0 };
if (oentry->asn_desc == NULL) {
gnutls_assert();
@@ -347,7 +345,7 @@ decode_complex_string(const struct oid_to_string *oentry, void *value,
if ((result =
_asn1_strict_der_decode(&tmpasn, value, value_size,
- asn1_err)) != ASN1_SUCCESS) {
+ asn1_err)) != ASN1_SUCCESS) {
gnutls_assert();
_gnutls_debug_log("_asn1_strict_der_decode: %s\n", asn1_err);
asn1_delete_structure(&tmpasn);
@@ -400,7 +398,7 @@ decode_complex_string(const struct oid_to_string *oentry, void *value,
assert(out->data != NULL);
/* Refuse to deal with strings containing NULs. */
- if (strlen((void *) out->data) != (size_t) out->size) {
+ if (strlen((void *)out->data) != (size_t)out->size) {
_gnutls_free_datum(out);
return gnutls_assert_val(GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING);
}
@@ -408,7 +406,6 @@ decode_complex_string(const struct oid_to_string *oentry, void *value,
return 0;
}
-
/* This function will convert an attribute value, specified by the OID,
* to a string. The result will be a null terminated string.
*
@@ -421,7 +418,7 @@ _gnutls_x509_dn_to_string(const char *oid, void *value,
{
const struct oid_to_string *oentry;
int ret;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
if (value == NULL || value_size <= 0) {
gnutls_assert();
@@ -440,8 +437,7 @@ _gnutls_x509_dn_to_string(const char *oid, void *value,
}
if (oentry->asn_desc != NULL) { /* complex */
- ret =
- decode_complex_string(oentry, value, value_size, &tmp);
+ ret = decode_complex_string(oentry, value, value_size, &tmp);
if (ret < 0) {
/* we failed decoding -> handle it as unknown OID */
goto unknown_oid;
@@ -468,34 +464,30 @@ _gnutls_x509_dn_to_string(const char *oid, void *value,
/* Converts a data string to an LDAP rfc2253 hex string
* something like '#01020304'
*/
-static int
-data2hex(const void *data, size_t data_size,
- gnutls_datum_t *out)
+static int data2hex(const void *data, size_t data_size, gnutls_datum_t * out)
{
gnutls_datum_t tmp, td;
int ret;
size_t size;
- td.size = hex_str_size(data_size) + 1; /* +1 for '#' */
+ td.size = hex_str_size(data_size) + 1; /* +1 for '#' */
td.data = gnutls_malloc(td.size);
if (td.data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- tmp.data = (void*)data;
+ tmp.data = (void *)data;
tmp.size = data_size;
td.data[0] = '#';
- size = td.size-1; /* don't include '#' */
- ret =
- gnutls_hex_encode(&tmp,
- (char*)&td.data[1], &size);
+ size = td.size - 1; /* don't include '#' */
+ ret = gnutls_hex_encode(&tmp, (char *)&td.data[1], &size);
if (ret < 0) {
gnutls_assert();
gnutls_free(td.data);
return GNUTLS_E_SHORT_MEMORY_BUFFER;
}
- td.size--; /* don't include null */
+ td.size--; /* don't include null */
out->data = td.data;
out->size = td.size;
@@ -531,10 +523,10 @@ _gnutls_x509_export_int_named(asn1_node asn1_data, const char *name,
gnutls_x509_crt_fmt_t format,
const char *pem_header,
unsigned char *output_data,
- size_t * output_data_size)
+ size_t *output_data_size)
{
int ret;
- gnutls_datum_t out = {NULL,0};
+ gnutls_datum_t out = { NULL, 0 };
size_t size;
ret = _gnutls_x509_export_int_named2(asn1_data, name,
@@ -553,10 +545,10 @@ _gnutls_x509_export_int_named(asn1_node asn1_data, const char *name,
goto cleanup;
}
- *output_data_size = (size_t) out.size;
+ *output_data_size = (size_t)out.size;
if (output_data) {
if (out.size > 0) {
- memcpy(output_data, out.data, (size_t) out.size);
+ memcpy(output_data, out.data, (size_t)out.size);
}
if (format == GNUTLS_X509_FMT_PEM)
output_data[out.size] = 0;
@@ -564,7 +556,7 @@ _gnutls_x509_export_int_named(asn1_node asn1_data, const char *name,
ret = 0;
- cleanup:
+ cleanup:
gnutls_free(out.data);
return ret;
@@ -576,8 +568,7 @@ _gnutls_x509_export_int_named(asn1_node asn1_data, const char *name,
int
_gnutls_x509_export_int_named2(asn1_node asn1_data, const char *name,
gnutls_x509_crt_fmt_t format,
- const char *pem_header,
- gnutls_datum_t * out)
+ const char *pem_header, gnutls_datum_t * out)
{
int ret;
@@ -593,8 +584,7 @@ _gnutls_x509_export_int_named2(asn1_node asn1_data, const char *name,
return gnutls_assert_val(ret);
ret =
- _gnutls_fbase64_encode(pem_header, tmp.data, tmp.size,
- out);
+ _gnutls_fbase64_encode(pem_header, tmp.data, tmp.size, out);
_gnutls_free_datum(&tmp);
if (ret < 0)
@@ -623,10 +613,12 @@ _gnutls_x509_decode_string(unsigned int etype,
if (allow_ber)
ret =
- asn1_decode_simple_ber(etype, der, der_size, &str, &str_size, NULL);
+ asn1_decode_simple_ber(etype, der, der_size, &str,
+ &str_size, NULL);
else
ret =
- asn1_decode_simple_der(etype, der, der_size, (const uint8_t**)&str, &str_size);
+ asn1_decode_simple_der(etype, der, der_size,
+ (const uint8_t **)&str, &str_size);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -638,8 +630,8 @@ _gnutls_x509_decode_string(unsigned int etype,
if (td.data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- if (str_size > 0)
- memcpy(td.data, str, str_size);
+ if (str_size > 0)
+ memcpy(td.data, str, str_size);
td.data[str_size] = 0;
if (allow_ber)
@@ -657,20 +649,21 @@ _gnutls_x509_decode_string(unsigned int etype,
/* Refuse to deal with strings containing NULs. */
if (etype != ASN1_ETYPE_OCTET_STRING) {
if (output->data)
- len = strlen((void *) output->data);
+ len = strlen((void *)output->data);
else
len = 0;
- if (len != (size_t) output->size) {
+ if (len != (size_t)output->size) {
_gnutls_free_datum(output);
- ret = gnutls_assert_val(GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING);
}
}
return ret;
}
-
/* Reads a value from an ASN1 tree, and puts the output
* in an allocated variable in the given datum.
*
@@ -689,7 +682,8 @@ x509_read_value(asn1_node c, const char *root,
if (result == 0 && allow_null == 0 && len == 0) {
/* don't allow null strings */
return gnutls_assert_val(GNUTLS_E_ASN1_DER_ERROR);
- } else if (result == 0 && allow_null == 0 && etype == ASN1_ETYPE_OBJECT_ID && len == 1) {
+ } else if (result == 0 && allow_null == 0
+ && etype == ASN1_ETYPE_OBJECT_ID && len == 1) {
return gnutls_assert_val(GNUTLS_E_ASN1_DER_ERROR);
}
@@ -704,7 +698,7 @@ x509_read_value(asn1_node c, const char *root,
len = (len + 7) / 8;
}
- tmp = gnutls_malloc((size_t) len + 1);
+ tmp = gnutls_malloc((size_t)len + 1);
if (tmp == NULL) {
gnutls_assert();
result = GNUTLS_E_MEMORY_ERROR;
@@ -727,12 +721,13 @@ x509_read_value(asn1_node c, const char *root,
if (len > 0) {
ret->size = len - 1;
} else {
- result = gnutls_assert_val(GNUTLS_E_ASN1_DER_ERROR);
+ result =
+ gnutls_assert_val(GNUTLS_E_ASN1_DER_ERROR);
goto cleanup;
}
break;
default:
- ret->size = (unsigned) len;
+ ret->size = (unsigned)len;
break;
}
} else {
@@ -744,21 +739,19 @@ x509_read_value(asn1_node c, const char *root,
return 0;
- cleanup:
+ cleanup:
gnutls_free(tmp);
return result;
}
-int
-_gnutls_x509_read_value(asn1_node c, const char *root,
- gnutls_datum_t * ret)
+int _gnutls_x509_read_value(asn1_node c, const char *root, gnutls_datum_t * ret)
{
return x509_read_value(c, root, ret, 0);
}
int
_gnutls_x509_read_null_value(asn1_node c, const char *root,
- gnutls_datum_t * ret)
+ gnutls_datum_t * ret)
{
return x509_read_value(c, root, ret, 1);
}
@@ -771,7 +764,8 @@ _gnutls_x509_read_null_value(asn1_node c, const char *root,
*/
int
_gnutls_x509_read_string(asn1_node c, const char *root,
- gnutls_datum_t * ret, unsigned int etype, unsigned int allow_ber)
+ gnutls_datum_t * ret, unsigned int etype,
+ unsigned int allow_ber)
{
int len = 0, result;
size_t slen;
@@ -788,7 +782,7 @@ _gnutls_x509_read_string(asn1_node c, const char *root,
if (rtype == ASN1_ETYPE_BIT_STRING)
len /= 8;
- tmp = gnutls_malloc((size_t) len + 1);
+ tmp = gnutls_malloc((size_t)len + 1);
if (tmp == NULL) {
gnutls_assert();
result = GNUTLS_E_MEMORY_ERROR;
@@ -807,7 +801,7 @@ _gnutls_x509_read_string(asn1_node c, const char *root,
/* Extract the STRING.
*/
- slen = (size_t) len;
+ slen = (size_t)len;
result = _gnutls_x509_decode_string(etype, tmp, slen, ret, allow_ber);
if (result < 0) {
@@ -818,7 +812,7 @@ _gnutls_x509_read_string(asn1_node c, const char *root,
return 0;
- cleanup:
+ cleanup:
gnutls_free(tmp);
return result;
}
@@ -835,8 +829,7 @@ int _gnutls_x509_encode_string(unsigned int etype,
tl_size = sizeof(tl);
ret =
- asn1_encode_simple_der(etype, input_data, input_size, tl,
- &tl_size);
+ asn1_encode_simple_der(etype, input_data, input_size, tl, &tl_size);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -883,7 +876,7 @@ _gnutls_x509_der_encode(asn1_node src, const char *src_name,
size += 16; /* for later to include the octet tags */
asize = size;
- data = gnutls_malloc((size_t) size);
+ data = gnutls_malloc((size_t)size);
if (data == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -925,10 +918,10 @@ _gnutls_x509_der_encode(asn1_node src, const char *src_name,
}
res->data = data;
- res->size = (unsigned) size;
+ res->size = (unsigned)size;
return 0;
- cleanup:
+ cleanup:
gnutls_free(data);
asn1_delete_structure(&c2);
return result;
@@ -942,11 +935,10 @@ _gnutls_x509_der_encode(asn1_node src, const char *src_name,
*/
int
_gnutls_x509_der_encode_and_copy(asn1_node src, const char *src_name,
- asn1_node dest, const char *dest_name,
- int str)
+ asn1_node dest, const char *dest_name, int str)
{
int result;
- gnutls_datum_t encoded = {NULL, 0};
+ gnutls_datum_t encoded = { NULL, 0 };
result = _gnutls_x509_der_encode(src, src_name, &encoded, str);
@@ -958,8 +950,7 @@ _gnutls_x509_der_encode_and_copy(asn1_node src, const char *src_name,
/* Write the data.
*/
result =
- asn1_write_value(dest, dest_name, encoded.data,
- (int) encoded.size);
+ asn1_write_value(dest, dest_name, encoded.data, (int)encoded.size);
_gnutls_free_datum(&encoded);
@@ -999,9 +990,7 @@ _gnutls_x509_write_string(asn1_node c, const char *root,
int ret;
gnutls_datum_t val = { NULL, 0 };
- ret =
- _gnutls_x509_encode_string(etype, data->data, data->size,
- &val);
+ ret = _gnutls_x509_encode_string(etype, data->data, data->size, &val);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1016,7 +1005,7 @@ _gnutls_x509_write_string(asn1_node c, const char *root,
ret = 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(&val);
return ret;
}
@@ -1033,8 +1022,6 @@ _asnstr_append_name(char *name, size_t name_size, const char *part1,
part2 + 1 /* remove initial dot */ );
}
-
-
/* Encodes and copies the private key parameters into a
* subjectPublicKeyInfo structure.
*
@@ -1066,8 +1053,7 @@ _gnutls_x509_encode_and_copy_PKI_params(asn1_node dst,
return _gnutls_asn2err(result);
}
- result =
- _gnutls_x509_write_pubkey_params(params, &der);
+ result = _gnutls_x509_write_pubkey_params(params, &der);
if (result < 0) {
gnutls_assert();
return result;
@@ -1092,8 +1078,7 @@ _gnutls_x509_encode_and_copy_PKI_params(asn1_node dst,
/* Write the DER parameters. (in bits)
*/
- _asnstr_append_name(name, sizeof(name), dst_name,
- ".subjectPublicKey");
+ _asnstr_append_name(name, sizeof(name), dst_name, ".subjectPublicKey");
result = asn1_write_value(dst, name, der.data, der.size * 8);
_gnutls_free_datum(&der);
@@ -1136,7 +1121,7 @@ _gnutls_x509_encode_PKI_params(gnutls_datum_t * der,
"tbsCertificate.subjectPublicKeyInfo",
der, 0);
- cleanup:
+ cleanup:
asn1_delete_structure(&tmp);
return ret;
@@ -1147,8 +1132,7 @@ _gnutls_x509_encode_PKI_params(gnutls_datum_t * der,
*/
int
_gnutls_x509_get_pk_algorithm(asn1_node src, const char *src_name,
- gnutls_ecc_curve_t *curve,
- unsigned int *bits)
+ gnutls_ecc_curve_t * curve, unsigned int *bits)
{
int result;
int algo;
@@ -1170,8 +1154,7 @@ _gnutls_x509_get_pk_algorithm(asn1_node src, const char *src_name,
algo = _gnutls_oid_to_pk_and_curve(oid, &lcurve);
if (algo == GNUTLS_PK_UNKNOWN) {
_gnutls_debug_log
- ("%s: unknown public key algorithm: %s\n", __func__,
- oid);
+ ("%s: unknown public key algorithm: %s\n", __func__, oid);
}
if (curve)
@@ -1183,8 +1166,8 @@ _gnutls_x509_get_pk_algorithm(asn1_node src, const char *src_name,
/* Now read the parameters' bits
*/
- if (lcurve != GNUTLS_ECC_CURVE_INVALID) { /* curve present */
- bits[0] = gnutls_ecc_curve_get_size(lcurve)*8;
+ if (lcurve != GNUTLS_ECC_CURVE_INVALID) { /* curve present */
+ bits[0] = gnutls_ecc_curve_get_size(lcurve) * 8;
} else {
gnutls_pk_params_st params;
gnutls_pk_params_init(&params);
@@ -1204,9 +1187,8 @@ _gnutls_x509_get_pk_algorithm(asn1_node src, const char *src_name,
* returns them into signed_data.
*/
int
-_gnutls_x509_get_signed_data(asn1_node src, const gnutls_datum_t *der,
- const char *src_name,
- gnutls_datum_t * signed_data)
+_gnutls_x509_get_signed_data(asn1_node src, const gnutls_datum_t * der,
+ const char *src_name, gnutls_datum_t * signed_data)
{
int start, end, result;
@@ -1225,8 +1207,7 @@ _gnutls_x509_get_signed_data(asn1_node src, const gnutls_datum_t *der,
}
result =
- _gnutls_set_datum(signed_data, &der->data[start],
- end - start + 1);
+ _gnutls_set_datum(signed_data, &der->data[start], end - start + 1);
if (result < 0) {
gnutls_assert();
@@ -1235,7 +1216,7 @@ _gnutls_x509_get_signed_data(asn1_node src, const gnutls_datum_t *der,
result = 0;
- cleanup:
+ cleanup:
return result;
}
@@ -1251,12 +1232,11 @@ _gnutls_x509_get_signed_data(asn1_node src, const gnutls_datum_t *der,
* Returns: a #gnutls_sign_algorithm_t value, or a negative error code on
* error.
-*/
-int
-_gnutls_x509_get_signature_algorithm(asn1_node src, const char *src_name)
+int _gnutls_x509_get_signature_algorithm(asn1_node src, const char *src_name)
{
int result;
char name[128];
- gnutls_datum_t sa = {NULL, 0};
+ gnutls_datum_t sa = { NULL, 0 };
_gnutls_str_cpy(name, sizeof(name), src_name);
_gnutls_str_cat(name, sizeof(name), ".algorithm");
@@ -1273,8 +1253,8 @@ _gnutls_x509_get_signature_algorithm(asn1_node src, const char *src_name)
* RSA-PSS, parameters are not read. They will be read from
* the issuer's certificate if needed.
*/
- if (sa.data && strcmp ((char *) sa.data, PK_PKIX1_RSA_PSS_OID) == 0) {
- gnutls_datum_t der = {NULL, 0};
+ if (sa.data && strcmp((char *)sa.data, PK_PKIX1_RSA_PSS_OID) == 0) {
+ gnutls_datum_t der = { NULL, 0 };
gnutls_x509_spki_st params;
_gnutls_str_cpy(name, sizeof(name), src_name);
@@ -1291,9 +1271,10 @@ _gnutls_x509_get_signature_algorithm(asn1_node src, const char *src_name)
_gnutls_free_datum(&der);
if (result == 0)
- result = gnutls_pk_to_sign(params.pk, params.rsa_pss_dig);
+ result =
+ gnutls_pk_to_sign(params.pk, params.rsa_pss_dig);
} else if (sa.data) {
- result = gnutls_oid_to_sign((char *) sa.data);
+ result = gnutls_oid_to_sign((char *)sa.data);
} else {
result = GNUTLS_E_UNKNOWN_ALGORITHM;
}
@@ -1306,7 +1287,6 @@ _gnutls_x509_get_signature_algorithm(asn1_node src, const char *src_name)
return result;
}
-
/* Reads the DER signature from the certificate and allocates space and
* returns them into signed_data.
*/
@@ -1350,8 +1330,7 @@ _gnutls_x509_get_signature(asn1_node src, const char *src_name,
/* read the bit string of the signature
*/
bits = len;
- result =
- asn1_read_value(src, src_name, signature->data, &bits);
+ result = asn1_read_value(src, src_name, signature->data, &bits);
if (result != ASN1_SUCCESS) {
result = _gnutls_asn2err(result);
@@ -1390,8 +1369,7 @@ static int write_complex_string(asn1_node asn_struct, const char *where,
const char *string_type;
unsigned int i;
- result =
- asn1_create_element(_gnutls_get_pkix(), oentry->asn_desc, &c2);
+ result = asn1_create_element(_gnutls_get_pkix(), oentry->asn_desc, &c2);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -1430,8 +1408,7 @@ static int write_complex_string(asn1_node asn_struct, const char *where,
goto error;
}
- result =
- _gnutls_x509_der_encode_and_copy(c2, "", asn_struct, where, 0);
+ result = _gnutls_x509_der_encode_and_copy(c2, "", asn_struct, where, 0);
if (result < 0) {
gnutls_assert();
goto error;
@@ -1439,12 +1416,11 @@ static int write_complex_string(asn1_node asn_struct, const char *where,
result = 0;
- error:
+ error:
asn1_delete_structure(&c2);
return result;
}
-
/* This will encode and write the AttributeTypeAndValue field.
* 'multi' must be (0) if writing an AttributeTypeAndValue, and 1 if Attribute.
* In all cases only one value is written.
@@ -1497,7 +1473,7 @@ _gnutls_x509_encode_and_write_attribute(const char *given_oid,
gnutls_datum_t td;
- td.data = (void *) data;
+ td.data = (void *)data;
td.size = data_size;
result =
_gnutls_x509_write_string(asn1_struct, tmp, &td,
@@ -1522,7 +1498,7 @@ _gnutls_x509_encode_and_write_attribute(const char *given_oid,
result = 0;
- error:
+ error:
return result;
}
@@ -1532,8 +1508,7 @@ _gnutls_x509_encode_and_write_attribute(const char *given_oid,
*
* The buffer will always be null terminated.
*/
-int _gnutls_strdatum_to_buf(gnutls_datum_t * d, void *buf,
- size_t * buf_size)
+int _gnutls_strdatum_to_buf(gnutls_datum_t * d, void *buf, size_t *buf_size)
{
int ret;
uint8_t *_buf = buf;
@@ -1549,7 +1524,7 @@ int _gnutls_strdatum_to_buf(gnutls_datum_t * d, void *buf,
*buf_size = d->size;
ret = 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(d);
return ret;
@@ -1557,7 +1532,7 @@ int _gnutls_strdatum_to_buf(gnutls_datum_t * d, void *buf,
int
_gnutls_x509_get_raw_field2(asn1_node c2, const gnutls_datum_t * raw,
- const char *whom, gnutls_datum_t * dn)
+ const char *whom, gnutls_datum_t * dn)
{
int result, len1;
int start1, end1;
@@ -1577,17 +1552,18 @@ _gnutls_x509_get_raw_field2(asn1_node c2, const gnutls_datum_t * raw,
dn->size = len1;
result = 0;
- cleanup:
+ cleanup:
return result;
}
-int _gnutls_copy_string(const gnutls_datum_t* str, uint8_t *out, size_t *out_size)
+int _gnutls_copy_string(const gnutls_datum_t * str, uint8_t * out,
+ size_t *out_size)
{
-unsigned size_to_check;
+ unsigned size_to_check;
size_to_check = str->size + 1;
- if ((unsigned) size_to_check > *out_size) {
+ if ((unsigned)size_to_check > *out_size) {
gnutls_assert();
(*out_size) = size_to_check;
return GNUTLS_E_SHORT_MEMORY_BUFFER;
@@ -1604,9 +1580,10 @@ unsigned size_to_check;
return 0;
}
-int _gnutls_copy_data(const gnutls_datum_t* str, uint8_t *out, size_t *out_size)
+int _gnutls_copy_data(const gnutls_datum_t * str, uint8_t * out,
+ size_t *out_size)
{
- if ((unsigned) str->size > *out_size) {
+ if ((unsigned)str->size > *out_size) {
gnutls_assert();
(*out_size) = str->size;
return GNUTLS_E_SHORT_MEMORY_BUFFER;
@@ -1621,8 +1598,7 @@ int _gnutls_copy_data(const gnutls_datum_t* str, uint8_t *out, size_t *out_size)
}
/* Converts an X.509 certificate to subjectPublicKeyInfo */
-int x509_crt_to_raw_pubkey(gnutls_x509_crt_t crt,
- gnutls_datum_t * rpubkey)
+int x509_crt_to_raw_pubkey(gnutls_x509_crt_t crt, gnutls_datum_t * rpubkey)
{
gnutls_pubkey_t pubkey = NULL;
int ret;
@@ -1637,8 +1613,7 @@ int x509_crt_to_raw_pubkey(gnutls_x509_crt_t crt,
goto cleanup;
}
- ret =
- gnutls_pubkey_export2(pubkey, GNUTLS_X509_FMT_DER, rpubkey);
+ ret = gnutls_pubkey_export2(pubkey, GNUTLS_X509_FMT_DER, rpubkey);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1646,14 +1621,14 @@ int x509_crt_to_raw_pubkey(gnutls_x509_crt_t crt,
ret = 0;
- cleanup:
+ cleanup:
gnutls_pubkey_deinit(pubkey);
return ret;
}
/* Converts an X.509 certificate to subjectPublicKeyInfo */
int _gnutls_x509_raw_crt_to_raw_pubkey(const gnutls_datum_t * cert,
- gnutls_datum_t * rpubkey)
+ gnutls_datum_t * rpubkey)
{
gnutls_x509_crt_t crt = NULL;
int ret;
@@ -1676,7 +1651,7 @@ int _gnutls_x509_raw_crt_to_raw_pubkey(const gnutls_datum_t * cert,
}
unsigned
-_gnutls_check_valid_key_id(const gnutls_datum_t *key_id,
+_gnutls_check_valid_key_id(const gnutls_datum_t * key_id,
gnutls_x509_crt_t cert, time_t now,
unsigned *has_ski)
{
@@ -1746,13 +1721,13 @@ _gnutls_check_valid_key_id(const gnutls_datum_t *key_id,
* It will return 3, meaning that the first segment contains [G, H, I]. At this
* point, sorting of @clist is complete.
*/
-unsigned int _gnutls_sort_clist(gnutls_x509_crt_t *clist,
+unsigned int _gnutls_sort_clist(gnutls_x509_crt_t * clist,
unsigned int clist_size)
{
int prev;
unsigned int i, j, k;
int issuer[DEFAULT_MAX_VERIFY_DEPTH]; /* contain the index of the issuers */
- bool insorted[DEFAULT_MAX_VERIFY_DEPTH]; /* non zero if clist[i] used in sorted list */
+ bool insorted[DEFAULT_MAX_VERIFY_DEPTH]; /* non zero if clist[i] used in sorted list */
gnutls_x509_crt_t sorted[DEFAULT_MAX_VERIFY_DEPTH];
assert(clist_size <= DEFAULT_MAX_VERIFY_DEPTH);
@@ -1824,8 +1799,9 @@ int _gnutls_check_if_sorted(gnutls_x509_crt_t * crt, int nr)
if (nr > 1) {
for (i = 0; i < nr; i++) {
if (i > 0) {
- if (!_gnutls_x509_compare_raw_dn(&crt[i]->raw_dn,
- &crt[i-1]->raw_issuer_dn)) {
+ if (!_gnutls_x509_compare_raw_dn
+ (&crt[i]->raw_dn,
+ &crt[i - 1]->raw_issuer_dn)) {
ret =
gnutls_assert_val
(GNUTLS_E_CERTIFICATE_LIST_UNSORTED);
@@ -1836,7 +1812,7 @@ int _gnutls_check_if_sorted(gnutls_x509_crt_t * crt, int nr)
}
ret = 0;
-cleanup:
+ cleanup:
return ret;
}
@@ -1853,7 +1829,7 @@ cleanup:
**/
const char *gnutls_gost_paramset_get_name(gnutls_gost_paramset_t param)
{
- switch(param) {
+ switch (param) {
case GNUTLS_GOST_PARAMSET_TC26_Z:
return "TC26-Z";
case GNUTLS_GOST_PARAMSET_CP_A:
@@ -1883,7 +1859,7 @@ const char *gnutls_gost_paramset_get_name(gnutls_gost_paramset_t param)
**/
const char *gnutls_gost_paramset_get_oid(gnutls_gost_paramset_t param)
{
- switch(param) {
+ switch (param) {
case GNUTLS_GOST_PARAMSET_TC26_Z:
return GOST28147_89_TC26Z_OID;
case GNUTLS_GOST_PARAMSET_CP_A:
@@ -1944,5 +1920,5 @@ int _gnutls_x509_get_version(asn1_node root, const char *name)
if (len != 1 || version[0] >= 0x80)
return gnutls_assert_val(GNUTLS_E_ASN1_DER_ERROR);
- return (int) version[0] + 1;
+ return (int)version[0] + 1;
}
diff --git a/lib/x509/common.h b/lib/x509/common.h
index 457d4c4efb..46b5bc7926 100644
--- a/lib/x509/common.h
+++ b/lib/x509/common.h
@@ -22,101 +22,101 @@
*/
#ifndef GNUTLS_LIB_X509_COMMON_H
-#define GNUTLS_LIB_X509_COMMON_H
+# define GNUTLS_LIB_X509_COMMON_H
-#include <algorithms.h>
-#include <abstract_int.h>
-#include <x509/x509_int.h>
-#include <fips.h>
+# include <algorithms.h>
+# include <abstract_int.h>
+# include <x509/x509_int.h>
+# include <fips.h>
-#define MAX_STRING_LEN 512
+# define MAX_STRING_LEN 512
-#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
-# define MAX_ITER_COUNT 10*1024
-#else
+# if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
+# define MAX_ITER_COUNT 10*1024
+# else
/* Set a maximum iteration count over which we refuse to
* decode a file. That is to prevent DoS. */
-# define MAX_ITER_COUNT (10*1024*1024)
-#endif
+# define MAX_ITER_COUNT (10*1024*1024)
+# endif
-#define GNUTLS_XML_SHOW_ALL 1
+# define GNUTLS_XML_SHOW_ALL 1
-#define PEM_CRL "X509 CRL"
-#define PEM_X509_CERT "X509 CERTIFICATE"
-#define PEM_X509_CERT2 "CERTIFICATE"
-#define PEM_PKCS7 "PKCS7"
-#define PEM_PKCS12 "PKCS12"
-#define PEM_PK "PUBLIC KEY"
+# define PEM_CRL "X509 CRL"
+# define PEM_X509_CERT "X509 CERTIFICATE"
+# define PEM_X509_CERT2 "CERTIFICATE"
+# define PEM_PKCS7 "PKCS7"
+# define PEM_PKCS12 "PKCS12"
+# define PEM_PK "PUBLIC KEY"
/* public key algorithm's OIDs
*/
-#define PK_PKIX1_RSA_OID "1.2.840.113549.1.1.1"
-#define PK_PKIX1_RSA_PSS_OID "1.2.840.113549.1.1.10"
-#define PK_X509_RSA_OID "2.5.8.1.1"
-#define PK_DSA_OID "1.2.840.10040.4.1"
-#define PK_GOST_R3410_94_OID "1.2.643.2.2.20"
-#define PK_GOST_R3410_2001_OID "1.2.643.2.2.19"
-#define PK_GOST_R3410_2012_256_OID "1.2.643.7.1.1.1.1"
-#define PK_GOST_R3410_2012_512_OID "1.2.643.7.1.1.1.2"
+# define PK_PKIX1_RSA_OID "1.2.840.113549.1.1.1"
+# define PK_PKIX1_RSA_PSS_OID "1.2.840.113549.1.1.10"
+# define PK_X509_RSA_OID "2.5.8.1.1"
+# define PK_DSA_OID "1.2.840.10040.4.1"
+# define PK_GOST_R3410_94_OID "1.2.643.2.2.20"
+# define PK_GOST_R3410_2001_OID "1.2.643.2.2.19"
+# define PK_GOST_R3410_2012_256_OID "1.2.643.7.1.1.1.1"
+# define PK_GOST_R3410_2012_512_OID "1.2.643.7.1.1.1.2"
/* signature OIDs
*/
-#define SIG_DSA_SHA1_OID "1.2.840.10040.4.3"
+# define SIG_DSA_SHA1_OID "1.2.840.10040.4.3"
/* those two from draft-ietf-pkix-sha2-dsa-ecdsa-06 */
-#define SIG_DSA_SHA224_OID "2.16.840.1.101.3.4.3.1"
-#define SIG_DSA_SHA256_OID "2.16.840.1.101.3.4.3.2"
-#define SIG_DSA_SHA384_OID "2.16.840.1.101.3.4.3.3"
-#define SIG_DSA_SHA512_OID "2.16.840.1.101.3.4.3.4"
-
-#define SIG_RSA_MD5_OID "1.2.840.113549.1.1.4"
-#define SIG_RSA_MD2_OID "1.2.840.113549.1.1.2"
-#define SIG_RSA_SHA1_OID "1.2.840.113549.1.1.5"
-#define SIG_RSA_SHA224_OID "1.2.840.113549.1.1.14"
-#define SIG_RSA_SHA256_OID "1.2.840.113549.1.1.11"
-#define SIG_RSA_SHA384_OID "1.2.840.113549.1.1.12"
-#define SIG_RSA_SHA512_OID "1.2.840.113549.1.1.13"
-#define SIG_RSA_RMD160_OID "1.3.36.3.3.1.2"
-#define SIG_GOST_R3410_94_OID "1.2.643.2.2.4"
-#define SIG_GOST_R3410_2001_OID "1.2.643.2.2.3"
-#define SIG_GOST_R3410_2012_256_OID "1.2.643.7.1.1.3.2"
-#define SIG_GOST_R3410_2012_512_OID "1.2.643.7.1.1.3.3"
-#define ISO_SIG_RSA_SHA1_OID "1.3.14.3.2.29"
-
-#define SIG_DSA_SHA3_224_OID "2.16.840.1.101.3.4.3.5"
-#define SIG_DSA_SHA3_256_OID "2.16.840.1.101.3.4.3.6"
-#define SIG_DSA_SHA3_384_OID "2.16.840.1.101.3.4.3.7"
-#define SIG_DSA_SHA3_512_OID "2.16.840.1.101.3.4.3.8"
-
-#define SIG_ECDSA_SHA3_224_OID "2.16.840.1.101.3.4.3.9"
-#define SIG_ECDSA_SHA3_256_OID "2.16.840.1.101.3.4.3.10"
-#define SIG_ECDSA_SHA3_384_OID "2.16.840.1.101.3.4.3.11"
-#define SIG_ECDSA_SHA3_512_OID "2.16.840.1.101.3.4.3.12"
-
-#define SIG_RSA_SHA3_224_OID "2.16.840.1.101.3.4.3.13"
-#define SIG_RSA_SHA3_256_OID "2.16.840.1.101.3.4.3.14"
-#define SIG_RSA_SHA3_384_OID "2.16.840.1.101.3.4.3.15"
-#define SIG_RSA_SHA3_512_OID "2.16.840.1.101.3.4.3.16"
-
-#define ECDH_X25519_OID "1.3.101.110"
-#define ECDH_X448_OID "1.3.101.111"
-
-#define SIG_EDDSA_SHA512_OID "1.3.101.112"
-#define SIG_ED448_OID "1.3.101.113"
-
-#define XMPP_OID "1.3.6.1.5.5.7.8.5"
-#define KRB5_PRINCIPAL_OID "1.3.6.1.5.2.2"
-#define MSUSER_PRINCIPAL_NAME_OID "1.3.6.1.4.1.311.20.2.3"
-#define PKIX1_RSA_PSS_MGF1_OID "1.2.840.113549.1.1.8"
-
-#define GOST28147_89_OID "1.2.643.2.2.21"
-#define GOST28147_89_TC26Z_OID "1.2.643.7.1.2.5.1.1"
-#define GOST28147_89_CPA_OID "1.2.643.2.2.31.1"
-#define GOST28147_89_CPB_OID "1.2.643.2.2.31.2"
-#define GOST28147_89_CPC_OID "1.2.643.2.2.31.3"
-#define GOST28147_89_CPD_OID "1.2.643.2.2.31.4"
-
-#define ASN1_NULL "\x05\x00"
-#define ASN1_NULL_SIZE 2
+# define SIG_DSA_SHA224_OID "2.16.840.1.101.3.4.3.1"
+# define SIG_DSA_SHA256_OID "2.16.840.1.101.3.4.3.2"
+# define SIG_DSA_SHA384_OID "2.16.840.1.101.3.4.3.3"
+# define SIG_DSA_SHA512_OID "2.16.840.1.101.3.4.3.4"
+
+# define SIG_RSA_MD5_OID "1.2.840.113549.1.1.4"
+# define SIG_RSA_MD2_OID "1.2.840.113549.1.1.2"
+# define SIG_RSA_SHA1_OID "1.2.840.113549.1.1.5"
+# define SIG_RSA_SHA224_OID "1.2.840.113549.1.1.14"
+# define SIG_RSA_SHA256_OID "1.2.840.113549.1.1.11"
+# define SIG_RSA_SHA384_OID "1.2.840.113549.1.1.12"
+# define SIG_RSA_SHA512_OID "1.2.840.113549.1.1.13"
+# define SIG_RSA_RMD160_OID "1.3.36.3.3.1.2"
+# define SIG_GOST_R3410_94_OID "1.2.643.2.2.4"
+# define SIG_GOST_R3410_2001_OID "1.2.643.2.2.3"
+# define SIG_GOST_R3410_2012_256_OID "1.2.643.7.1.1.3.2"
+# define SIG_GOST_R3410_2012_512_OID "1.2.643.7.1.1.3.3"
+# define ISO_SIG_RSA_SHA1_OID "1.3.14.3.2.29"
+
+# define SIG_DSA_SHA3_224_OID "2.16.840.1.101.3.4.3.5"
+# define SIG_DSA_SHA3_256_OID "2.16.840.1.101.3.4.3.6"
+# define SIG_DSA_SHA3_384_OID "2.16.840.1.101.3.4.3.7"
+# define SIG_DSA_SHA3_512_OID "2.16.840.1.101.3.4.3.8"
+
+# define SIG_ECDSA_SHA3_224_OID "2.16.840.1.101.3.4.3.9"
+# define SIG_ECDSA_SHA3_256_OID "2.16.840.1.101.3.4.3.10"
+# define SIG_ECDSA_SHA3_384_OID "2.16.840.1.101.3.4.3.11"
+# define SIG_ECDSA_SHA3_512_OID "2.16.840.1.101.3.4.3.12"
+
+# define SIG_RSA_SHA3_224_OID "2.16.840.1.101.3.4.3.13"
+# define SIG_RSA_SHA3_256_OID "2.16.840.1.101.3.4.3.14"
+# define SIG_RSA_SHA3_384_OID "2.16.840.1.101.3.4.3.15"
+# define SIG_RSA_SHA3_512_OID "2.16.840.1.101.3.4.3.16"
+
+# define ECDH_X25519_OID "1.3.101.110"
+# define ECDH_X448_OID "1.3.101.111"
+
+# define SIG_EDDSA_SHA512_OID "1.3.101.112"
+# define SIG_ED448_OID "1.3.101.113"
+
+# define XMPP_OID "1.3.6.1.5.5.7.8.5"
+# define KRB5_PRINCIPAL_OID "1.3.6.1.5.2.2"
+# define MSUSER_PRINCIPAL_NAME_OID "1.3.6.1.4.1.311.20.2.3"
+# define PKIX1_RSA_PSS_MGF1_OID "1.2.840.113549.1.1.8"
+
+# define GOST28147_89_OID "1.2.643.2.2.21"
+# define GOST28147_89_TC26Z_OID "1.2.643.7.1.2.5.1.1"
+# define GOST28147_89_CPA_OID "1.2.643.2.2.31.1"
+# define GOST28147_89_CPB_OID "1.2.643.2.2.31.2"
+# define GOST28147_89_CPC_OID "1.2.643.2.2.31.3"
+# define GOST28147_89_CPD_OID "1.2.643.2.2.31.4"
+
+# define ASN1_NULL "\x05\x00"
+# define ASN1_NULL_SIZE 2
struct oid_to_string {
const char *oid;
@@ -128,19 +128,18 @@ struct oid_to_string {
* if cannot be simply parsed */
};
-const struct oid_to_string *_gnutls_oid_get_entry(const struct oid_to_string *ots, const char *oid);
+const struct oid_to_string *_gnutls_oid_get_entry(const struct oid_to_string
+ *ots, const char *oid);
const char *_gnutls_oid_get_asn_desc(const char *oid);
int _gnutls_x509_set_time(asn1_node c2, const char *where, time_t tim,
int force_general);
-int
-_gnutls_x509_set_raw_time(asn1_node c2, const char *where, time_t tim);
+int _gnutls_x509_set_raw_time(asn1_node c2, const char *where, time_t tim);
int _gnutls_x509_decode_string(unsigned int etype,
const uint8_t * der, size_t der_size,
- gnutls_datum_t * output,
- unsigned allow_ber);
+ gnutls_datum_t * output, unsigned allow_ber);
int _gnutls_x509_encode_string(unsigned int etype,
const void *input_data, size_t input_size,
@@ -160,16 +159,16 @@ int _gnutls_x509_der_encode_and_copy(asn1_node src, const char *src_name,
int _gnutls_x509_der_encode(asn1_node src, const char *src_name,
gnutls_datum_t * res, int str);
-#define _gnutls_x509_export_int(asn1, format, header, out, out_size) \
+# define _gnutls_x509_export_int(asn1, format, header, out, out_size) \
_gnutls_x509_export_int_named(asn1, "", format, header, out, out_size)
int _gnutls_x509_export_int_named(asn1_node asn1_data, const char *name,
gnutls_x509_crt_fmt_t format,
const char *pem_header,
unsigned char *output_data,
- size_t * output_data_size);
+ size_t *output_data_size);
-#define _gnutls_x509_export_int2(asn1, format, header, out) \
+# define _gnutls_x509_export_int2(asn1, format, header, out) \
_gnutls_x509_export_int_named2(asn1, "", format, header, out)
int _gnutls_x509_export_int_named2(asn1_node asn1_data, const char *name,
gnutls_x509_crt_fmt_t format,
@@ -179,7 +178,7 @@ int _gnutls_x509_export_int_named2(asn1_node asn1_data, const char *name,
int _gnutls_x509_read_value(asn1_node c, const char *root,
gnutls_datum_t * ret);
int _gnutls_x509_read_null_value(asn1_node c, const char *root,
- gnutls_datum_t * ret);
+ gnutls_datum_t * ret);
int _gnutls_x509_read_string(asn1_node c, const char *root,
gnutls_datum_t * ret, unsigned int etype,
unsigned allow_ber);
@@ -187,8 +186,7 @@ int _gnutls_x509_write_value(asn1_node c, const char *root,
const gnutls_datum_t * data);
int _gnutls_x509_write_string(asn1_node c, const char *root,
- const gnutls_datum_t * data,
- unsigned int etype);
+ const gnutls_datum_t * data, unsigned int etype);
int _gnutls_x509_encode_and_write_attribute(const char *given_oid,
asn1_node asn1_struct,
@@ -202,11 +200,10 @@ int _gnutls_x509_decode_and_read_attribute(asn1_node asn1_struct,
int multi, int octet);
int _gnutls_x509_get_pk_algorithm(asn1_node src, const char *src_name,
- gnutls_ecc_curve_t *curve,
+ gnutls_ecc_curve_t * curve,
unsigned int *bits);
-int
-_gnutls_x509_get_signature_algorithm(asn1_node src, const char *src_name);
+int _gnutls_x509_get_signature_algorithm(asn1_node src, const char *src_name);
int _gnutls_x509_encode_and_copy_PKI_params(asn1_node dst,
const char *dst_name,
@@ -216,93 +213,94 @@ int _gnutls_x509_encode_PKI_params(gnutls_datum_t * der,
int _gnutls_asn1_copy_node(asn1_node * dst, const char *dst_name,
asn1_node src, const char *src_name);
-int _gnutls_x509_get_signed_data(asn1_node src, const gnutls_datum_t *der,
+int _gnutls_x509_get_signed_data(asn1_node src, const gnutls_datum_t * der,
const char *src_name,
gnutls_datum_t * signed_data);
int _gnutls_x509_get_signature(asn1_node src, const char *src_name,
gnutls_datum_t * signature);
-
int _gnutls_get_asn_mpis(asn1_node asn, const char *root,
gnutls_pk_params_st * params);
int _gnutls_get_key_id(gnutls_pk_params_st *,
unsigned char *output_data,
- size_t * output_data_size, unsigned flags);
+ size_t *output_data_size, unsigned flags);
void _asnstr_append_name(char *name, size_t name_size, const char *part1,
const char *part2);
/* Given a @c2 which it returns an allocated DER encoding of @whom in @out */
inline static int
-_gnutls_x509_get_raw_field(asn1_node c2, const char *whom, gnutls_datum_t *out)
+_gnutls_x509_get_raw_field(asn1_node c2, const char *whom, gnutls_datum_t * out)
{
return _gnutls_x509_der_encode(c2, whom, out, 0);
}
int
_gnutls_x509_get_raw_field2(asn1_node c2, const gnutls_datum_t * raw,
- const char *whom, gnutls_datum_t * dn);
+ const char *whom, gnutls_datum_t * dn);
unsigned
_gnutls_check_if_same_key(gnutls_x509_crt_t cert1,
- gnutls_x509_crt_t cert2,
- unsigned is_ca);
+ gnutls_x509_crt_t cert2, unsigned is_ca);
unsigned
-_gnutls_check_if_same_key2(gnutls_x509_crt_t cert1,
- gnutls_datum_t *cert2bin);
+_gnutls_check_if_same_key2(gnutls_x509_crt_t cert1, gnutls_datum_t * cert2bin);
unsigned
-_gnutls_check_valid_key_id(const gnutls_datum_t *key_id,
+_gnutls_check_valid_key_id(const gnutls_datum_t * key_id,
gnutls_x509_crt_t cert, time_t now,
unsigned *has_ski);
-unsigned _gnutls_check_key_purpose(gnutls_x509_crt_t cert, const char *purpose, unsigned no_any);
+unsigned _gnutls_check_key_purpose(gnutls_x509_crt_t cert, const char *purpose,
+ unsigned no_any);
time_t _gnutls_x509_generalTime2gtime(const char *ttime);
int _gnutls_get_extension(asn1_node asn, const char *root,
- const char *extension_id, int indx,
- gnutls_datum_t * ret, unsigned int *_critical);
+ const char *extension_id, int indx,
+ gnutls_datum_t * ret, unsigned int *_critical);
int _gnutls_set_extension(asn1_node asn, const char *root,
- const char *ext_id,
- const gnutls_datum_t * ext_data, unsigned int critical);
+ const char *ext_id,
+ const gnutls_datum_t * ext_data,
+ unsigned int critical);
-int _gnutls_strdatum_to_buf(gnutls_datum_t * d, void *buf,
- size_t * sizeof_buf);
+int _gnutls_strdatum_to_buf(gnutls_datum_t * d, void *buf, size_t *sizeof_buf);
unsigned _gnutls_is_same_dn(gnutls_x509_crt_t cert1, gnutls_x509_crt_t cert2);
-int _gnutls_copy_string(const gnutls_datum_t* str, uint8_t *out, size_t *out_size);
-int _gnutls_copy_data(const gnutls_datum_t* str, uint8_t *out, size_t *out_size);
+int _gnutls_copy_string(const gnutls_datum_t * str, uint8_t * out,
+ size_t *out_size);
+int _gnutls_copy_data(const gnutls_datum_t * str, uint8_t * out,
+ size_t *out_size);
-int _gnutls_x509_decode_ext(const gnutls_datum_t *der, gnutls_x509_ext_st *out);
+int _gnutls_x509_decode_ext(const gnutls_datum_t * der,
+ gnutls_x509_ext_st * out);
int _gnutls_x509_raw_crt_to_raw_pubkey(const gnutls_datum_t * cert,
- gnutls_datum_t * rpubkey);
+ gnutls_datum_t * rpubkey);
int _gnutls_x509_get_version(asn1_node root, const char *name);
-int x509_crt_to_raw_pubkey(gnutls_x509_crt_t crt,
- gnutls_datum_t * rpubkey);
+int x509_crt_to_raw_pubkey(gnutls_x509_crt_t crt, gnutls_datum_t * rpubkey);
typedef void (*gnutls_cert_vfunc)(gnutls_x509_crt_t);
-unsigned int _gnutls_sort_clist(gnutls_x509_crt_t *clist,
+unsigned int _gnutls_sort_clist(gnutls_x509_crt_t * clist,
unsigned int clist_size);
int _gnutls_check_if_sorted(gnutls_x509_crt_t * crt, int nr);
-inline static int _asn1_strict_der_decode (asn1_node * element, const void *ider,
- int len, char *errorDescription)
+inline static int _asn1_strict_der_decode(asn1_node * element, const void *ider,
+ int len, char *errorDescription)
{
-#if defined(STRICT_DER_TIME) || !defined(ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME)
-# define _ASN1_DER_FLAGS ASN1_DECODE_FLAG_STRICT_DER
-#else
-# define _ASN1_DER_FLAGS (ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME|ASN1_DECODE_FLAG_STRICT_DER)
-#endif
- return asn1_der_decoding2(element, ider, &len, _ASN1_DER_FLAGS, errorDescription);
+# if defined(STRICT_DER_TIME) || !defined(ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME)
+# define _ASN1_DER_FLAGS ASN1_DECODE_FLAG_STRICT_DER
+# else
+# define _ASN1_DER_FLAGS (ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME|ASN1_DECODE_FLAG_STRICT_DER)
+# endif
+ return asn1_der_decoding2(element, ider, &len, _ASN1_DER_FLAGS,
+ errorDescription);
}
-#endif /* GNUTLS_LIB_X509_COMMON_H */
+#endif /* GNUTLS_LIB_X509_COMMON_H */
diff --git a/lib/x509/crl.c b/lib/x509/crl.c
index d4fc7d93ac..f6c6089af7 100644
--- a/lib/x509/crl.c
+++ b/lib/x509/crl.c
@@ -34,14 +34,13 @@
static int crl_reinit(gnutls_x509_crl_t crl)
{
-int result;
+ int result;
if (crl->crl)
asn1_delete_structure(&crl->crl);
result = asn1_create_element(_gnutls_get_pkix(),
- "PKIX1.CertificateList",
- &crl->crl);
+ "PKIX1.CertificateList", &crl->crl);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -160,7 +159,8 @@ gnutls_x509_crl_import(gnutls_x509_crl_t crl,
crl->expanded = 1;
result =
- _asn1_strict_der_decode(&crl->crl, crl->der.data, crl->der.size, NULL);
+ _asn1_strict_der_decode(&crl->crl, crl->der.data, crl->der.size,
+ NULL);
if (result != ASN1_SUCCESS) {
result = _gnutls_asn2err(result);
gnutls_assert();
@@ -168,8 +168,8 @@ gnutls_x509_crl_import(gnutls_x509_crl_t crl,
}
result = _gnutls_x509_get_raw_field2(crl->crl, &crl->der,
- "tbsCertList.issuer.rdnSequence",
- &crl->raw_issuer_dn);
+ "tbsCertList.issuer.rdnSequence",
+ &crl->raw_issuer_dn);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -177,12 +177,11 @@ gnutls_x509_crl_import(gnutls_x509_crl_t crl,
return 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(&crl->der);
return result;
}
-
/**
* gnutls_x509_crl_get_issuer_dn:
* @crl: should contain a gnutls_x509_crl_t type
@@ -206,7 +205,7 @@ gnutls_x509_crl_import(gnutls_x509_crl_t crl,
**/
int
gnutls_x509_crl_get_issuer_dn(gnutls_x509_crl_t crl, char *buf,
- size_t * sizeof_buf)
+ size_t *sizeof_buf)
{
if (crl == NULL) {
gnutls_assert();
@@ -215,7 +214,8 @@ gnutls_x509_crl_get_issuer_dn(gnutls_x509_crl_t crl, char *buf,
return _gnutls_x509_parse_dn(crl->crl,
"tbsCertList.issuer.rdnSequence",
- buf, sizeof_buf, GNUTLS_X509_DN_FLAG_COMPAT);
+ buf, sizeof_buf,
+ GNUTLS_X509_DN_FLAG_COMPAT);
}
/**
@@ -248,7 +248,7 @@ int
gnutls_x509_crl_get_issuer_dn_by_oid(gnutls_x509_crl_t crl,
const char *oid, unsigned indx,
unsigned int raw_flag, void *buf,
- size_t * sizeof_buf)
+ size_t *sizeof_buf)
{
gnutls_datum_t td;
int ret;
@@ -267,7 +267,6 @@ gnutls_x509_crl_get_issuer_dn_by_oid(gnutls_x509_crl_t crl,
return _gnutls_strdatum_to_buf(&td, buf, sizeof_buf);
}
-
/**
* gnutls_x509_crl_get_dn_oid:
* @crl: should contain a gnutls_x509_crl_t type
@@ -286,7 +285,7 @@ gnutls_x509_crl_get_issuer_dn_by_oid(gnutls_x509_crl_t crl,
**/
int
gnutls_x509_crl_get_dn_oid(gnutls_x509_crl_t crl,
- unsigned indx, void *oid, size_t * sizeof_oid)
+ unsigned indx, void *oid, size_t *sizeof_oid)
{
if (crl == NULL) {
gnutls_assert();
@@ -316,8 +315,7 @@ gnutls_x509_crl_get_dn_oid(gnutls_x509_crl_t crl,
*
* Since: 3.1.10
**/
-int
-gnutls_x509_crl_get_issuer_dn2(gnutls_x509_crl_t crl, gnutls_datum_t * dn)
+int gnutls_x509_crl_get_issuer_dn2(gnutls_x509_crl_t crl, gnutls_datum_t * dn)
{
if (crl == NULL) {
gnutls_assert();
@@ -350,7 +348,8 @@ gnutls_x509_crl_get_issuer_dn2(gnutls_x509_crl_t crl, gnutls_datum_t * dn)
* Since: 3.5.7
**/
int
-gnutls_x509_crl_get_issuer_dn3(gnutls_x509_crl_t crl, gnutls_datum_t * dn, unsigned flags)
+gnutls_x509_crl_get_issuer_dn3(gnutls_x509_crl_t crl, gnutls_datum_t * dn,
+ unsigned flags)
{
if (crl == NULL) {
gnutls_assert();
@@ -358,8 +357,7 @@ gnutls_x509_crl_get_issuer_dn3(gnutls_x509_crl_t crl, gnutls_datum_t * dn, unsig
}
return _gnutls_x509_get_dn(crl->crl,
- "tbsCertList.issuer.rdnSequence",
- dn, flags);
+ "tbsCertList.issuer.rdnSequence", dn, flags);
}
/**
@@ -378,7 +376,7 @@ gnutls_x509_crl_get_issuer_dn3(gnutls_x509_crl_t crl, gnutls_datum_t * dn, unsig
int gnutls_x509_crl_get_signature_algorithm(gnutls_x509_crl_t crl)
{
return map_errs_to_zero(_gnutls_x509_get_signature_algorithm(crl->crl,
- "signatureAlgorithm"));
+ "signatureAlgorithm"));
}
/**
@@ -396,23 +394,26 @@ int gnutls_x509_crl_get_signature_algorithm(gnutls_x509_crl_t crl)
*
* Since: 3.5.0
**/
-int gnutls_x509_crl_get_signature_oid(gnutls_x509_crl_t crl, char *oid, size_t *oid_size)
+int gnutls_x509_crl_get_signature_oid(gnutls_x509_crl_t crl, char *oid,
+ size_t *oid_size)
{
char str[MAX_OID_SIZE];
int len, result, ret;
gnutls_datum_t out;
len = sizeof(str);
- result = asn1_read_value(crl->crl, "signatureAlgorithm.algorithm", str, &len);
+ result =
+ asn1_read_value(crl->crl, "signatureAlgorithm.algorithm", str,
+ &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
- out.data = (void*)str;
+ out.data = (void *)str;
out.size = len;
- ret = _gnutls_copy_string(&out, (void*)oid, oid_size);
+ ret = _gnutls_copy_string(&out, (void *)oid, oid_size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -434,7 +435,7 @@ int gnutls_x509_crl_get_signature_oid(gnutls_x509_crl_t crl, char *oid, size_t *
**/
int
gnutls_x509_crl_get_signature(gnutls_x509_crl_t crl,
- char *sig, size_t * sizeof_sig)
+ char *sig, size_t *sizeof_sig)
{
int result;
unsigned int bits;
@@ -461,7 +462,7 @@ gnutls_x509_crl_get_signature(gnutls_x509_crl_t crl,
len = bits / 8;
- if (*sizeof_sig < (unsigned) len) {
+ if (*sizeof_sig < (unsigned)len) {
*sizeof_sig = bits / 8;
return GNUTLS_E_SHORT_MEMORY_BUFFER;
}
@@ -508,8 +509,7 @@ time_t gnutls_x509_crl_get_this_update(gnutls_x509_crl_t crl)
return (time_t) - 1;
}
- return _gnutls_x509_get_time(crl->crl, "tbsCertList.thisUpdate",
- 0);
+ return _gnutls_x509_get_time(crl->crl, "tbsCertList.thisUpdate", 0);
}
/**
@@ -529,8 +529,7 @@ time_t gnutls_x509_crl_get_next_update(gnutls_x509_crl_t crl)
return (time_t) - 1;
}
- return _gnutls_x509_get_time(crl->crl, "tbsCertList.nextUpdate",
- 0);
+ return _gnutls_x509_get_time(crl->crl, "tbsCertList.nextUpdate", 0);
}
/**
@@ -554,8 +553,7 @@ int gnutls_x509_crl_get_crt_count(gnutls_x509_crl_t crl)
result =
asn1_number_of_elements(crl->crl,
- "tbsCertList.revokedCertificates",
- &count);
+ "tbsCertList.revokedCertificates", &count);
if (result != ASN1_SUCCESS) {
gnutls_assert();
@@ -585,7 +583,7 @@ int gnutls_x509_crl_get_crt_count(gnutls_x509_crl_t crl)
int
gnutls_x509_crl_get_crt_serial(gnutls_x509_crl_t crl, unsigned indx,
unsigned char *serial,
- size_t * serial_size, time_t * t)
+ size_t *serial_size, time_t * t)
{
int result, _serial_size;
@@ -605,8 +603,7 @@ gnutls_x509_crl_get_crt_serial(gnutls_x509_crl_t crl, unsigned indx,
indx + 1);
_serial_size = *serial_size;
- result =
- asn1_read_value(crl->crl, serial_name, serial, &_serial_size);
+ result = asn1_read_value(crl->crl, serial_name, serial, &_serial_size);
*serial_size = _serial_size;
if (result != ASN1_SUCCESS) {
@@ -660,9 +657,9 @@ void gnutls_x509_crl_iter_deinit(gnutls_x509_crl_iter_t iter)
**/
int
gnutls_x509_crl_iter_crt_serial(gnutls_x509_crl_t crl,
- gnutls_x509_crl_iter_t *iter,
+ gnutls_x509_crl_iter_t * iter,
unsigned char *serial,
- size_t * serial_size, time_t * t)
+ size_t *serial_size, time_t * t)
{
int result, _serial_size;
@@ -681,12 +678,14 @@ gnutls_x509_crl_iter_crt_serial(gnutls_x509_crl_t crl,
}
if ((*iter)->rcache == NULL) {
- (*iter)->rcache = asn1_find_node (crl->crl, "tbsCertList.revokedCertificates.?1");
+ (*iter)->rcache =
+ asn1_find_node(crl->crl,
+ "tbsCertList.revokedCertificates.?1");
(*iter)->rcache_idx = 1;
} else {
snprintf(serial_name, sizeof(serial_name),
"?%u", (*iter)->rcache_idx);
- (*iter)->rcache = asn1_find_node ((*iter)->rcache, serial_name);
+ (*iter)->rcache = asn1_find_node((*iter)->rcache, serial_name);
}
if ((*iter)->rcache == NULL) {
/* reset */
@@ -699,7 +698,8 @@ gnutls_x509_crl_iter_crt_serial(gnutls_x509_crl_t crl,
_serial_size = *serial_size;
result =
- asn1_read_value((*iter)->rcache, serial_name, serial, &_serial_size);
+ asn1_read_value((*iter)->rcache, serial_name, serial,
+ &_serial_size);
*serial_size = _serial_size;
if (result != ASN1_SUCCESS) {
@@ -736,14 +736,15 @@ gnutls_x509_crl_iter_crt_serial(gnutls_x509_crl_t crl,
* Since: 2.12.0
**/
int
-gnutls_x509_crl_get_raw_issuer_dn(gnutls_x509_crl_t crl,
- gnutls_datum_t * dn)
+gnutls_x509_crl_get_raw_issuer_dn(gnutls_x509_crl_t crl, gnutls_datum_t * dn)
{
if (crl->raw_issuer_dn.size != 0) {
return _gnutls_set_datum(dn, crl->raw_issuer_dn.data,
crl->raw_issuer_dn.size);
} else {
- return _gnutls_x509_get_raw_field(crl->crl, "tbsCertList.issuer.rdnSequence", dn);
+ return _gnutls_x509_get_raw_field(crl->crl,
+ "tbsCertList.issuer.rdnSequence",
+ dn);
}
}
@@ -769,7 +770,7 @@ gnutls_x509_crl_get_raw_issuer_dn(gnutls_x509_crl_t crl,
int
gnutls_x509_crl_export(gnutls_x509_crl_t crl,
gnutls_x509_crt_fmt_t format, void *output_data,
- size_t * output_data_size)
+ size_t *output_data_size)
{
if (crl == NULL) {
gnutls_assert();
@@ -914,10 +915,10 @@ int
gnutls_x509_crl_get_authority_key_gn_serial(gnutls_x509_crl_t crl,
unsigned int seq,
void *alt,
- size_t * alt_size,
+ size_t *alt_size,
unsigned int *alt_type,
void *serial,
- size_t * serial_size,
+ size_t *serial_size,
unsigned int *critical)
{
int ret, result, len;
@@ -952,13 +953,12 @@ gnutls_x509_crl_get_authority_key_gn_serial(gnutls_x509_crl_t crl,
ret = 0;
- fail:
+ fail:
asn1_delete_structure(&c2);
return ret;
}
-
/**
* gnutls_x509_crl_get_authority_key_id:
* @crl: should contain a #gnutls_x509_crl_t type
@@ -982,8 +982,7 @@ gnutls_x509_crl_get_authority_key_gn_serial(gnutls_x509_crl_t crl,
**/
int
gnutls_x509_crl_get_authority_key_id(gnutls_x509_crl_t crl, void *id,
- size_t * id_size,
- unsigned int *critical)
+ size_t *id_size, unsigned int *critical)
{
int result, len, ret;
asn1_node c2;
@@ -998,10 +997,8 @@ gnutls_x509_crl_get_authority_key_id(gnutls_x509_crl_t crl, void *id,
*id_size = len;
asn1_delete_structure(&c2);
- if (result == ASN1_VALUE_NOT_FOUND
- || result == ASN1_ELEMENT_NOT_FOUND)
- return
- gnutls_assert_val(GNUTLS_E_X509_UNSUPPORTED_EXTENSION);
+ if (result == ASN1_VALUE_NOT_FOUND || result == ASN1_ELEMENT_NOT_FOUND)
+ return gnutls_assert_val(GNUTLS_E_X509_UNSUPPORTED_EXTENSION);
if (result != ASN1_SUCCESS) {
gnutls_assert();
@@ -1029,7 +1026,7 @@ gnutls_x509_crl_get_authority_key_id(gnutls_x509_crl_t crl, void *id,
**/
int
gnutls_x509_crl_get_number(gnutls_x509_crl_t crl, void *ret,
- size_t * ret_size, unsigned int *critical)
+ size_t *ret_size, unsigned int *critical)
{
int result;
gnutls_datum_t id;
@@ -1056,8 +1053,7 @@ gnutls_x509_crl_get_number(gnutls_x509_crl_t crl, void *ret,
}
result =
- _gnutls_x509_ext_extract_number(ret, ret_size, id.data,
- id.size);
+ _gnutls_x509_ext_extract_number(ret, ret_size, id.data, id.size);
_gnutls_free_datum(&id);
@@ -1089,7 +1085,7 @@ gnutls_x509_crl_get_number(gnutls_x509_crl_t crl, void *ret,
**/
int
gnutls_x509_crl_get_extension_oid(gnutls_x509_crl_t crl, unsigned indx,
- void *oid, size_t * sizeof_oid)
+ void *oid, size_t *sizeof_oid)
{
int result;
@@ -1098,8 +1094,7 @@ gnutls_x509_crl_get_extension_oid(gnutls_x509_crl_t crl, unsigned indx,
return GNUTLS_E_INVALID_REQUEST;
}
- result =
- _gnutls_x509_crl_get_extension_oid(crl, indx, oid, sizeof_oid);
+ result = _gnutls_x509_crl_get_extension_oid(crl, indx, oid, sizeof_oid);
if (result < 0) {
return result;
}
@@ -1135,7 +1130,7 @@ gnutls_x509_crl_get_extension_oid(gnutls_x509_crl_t crl, unsigned indx,
**/
int
gnutls_x509_crl_get_extension_info(gnutls_x509_crl_t crl, unsigned indx,
- void *oid, size_t * sizeof_oid,
+ void *oid, size_t *sizeof_oid,
unsigned int *critical)
{
int result;
@@ -1207,7 +1202,7 @@ gnutls_x509_crl_get_extension_info(gnutls_x509_crl_t crl, unsigned indx,
**/
int
gnutls_x509_crl_get_extension_data(gnutls_x509_crl_t crl, unsigned indx,
- void *data, size_t * sizeof_data)
+ void *data, size_t *sizeof_data)
{
int result, len;
char name[MAX_NAME_SIZE];
@@ -1257,8 +1252,7 @@ int
gnutls_x509_crl_list_import2(gnutls_x509_crl_t ** crls,
unsigned int *size,
const gnutls_datum_t * data,
- gnutls_x509_crt_fmt_t format,
- unsigned int flags)
+ gnutls_x509_crt_fmt_t format, unsigned int flags)
{
unsigned int init = 1024;
int ret;
@@ -1271,7 +1265,8 @@ gnutls_x509_crl_list_import2(gnutls_x509_crl_t ** crls,
ret =
gnutls_x509_crl_list_import(*crls, &init, data, format,
- flags | GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED);
+ flags |
+ GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED);
if (ret == GNUTLS_E_SHORT_MEMORY_BUFFER) {
*crls = _gnutls_reallocarray_fast(*crls, init,
sizeof(gnutls_x509_crl_t));
@@ -1317,8 +1312,7 @@ int
gnutls_x509_crl_list_import(gnutls_x509_crl_t * crls,
unsigned int *crl_max,
const gnutls_datum_t * data,
- gnutls_x509_crt_fmt_t format,
- unsigned int flags)
+ gnutls_x509_crt_fmt_t format, unsigned int flags)
{
int size;
const char *ptr;
@@ -1381,9 +1375,8 @@ gnutls_x509_crl_list_import(gnutls_x509_crl_t * crls,
goto error;
}
- tmp.data = (void *) ptr;
- tmp.size =
- data->size - (ptr - (char *) data->data);
+ tmp.data = (void *)ptr;
+ tmp.size = data->size - (ptr - (char *)data->data);
ret =
gnutls_x509_crl_import(crls[count], &tmp,
GNUTLS_X509_FMT_PEM);
@@ -1399,7 +1392,7 @@ gnutls_x509_crl_list_import(gnutls_x509_crl_t * crls,
ptr++;
/* find the next certificate (if any)
*/
- size = data->size - (ptr - (char *) data->data);
+ size = data->size - (ptr - (char *)data->data);
if (size > 0) {
ptr =
@@ -1419,7 +1412,7 @@ gnutls_x509_crl_list_import(gnutls_x509_crl_t * crls,
else
return GNUTLS_E_SHORT_MEMORY_BUFFER;
- error:
+ error:
for (j = 0; j < count; j++)
gnutls_x509_crl_deinit(crls[j]);
return ret;
diff --git a/lib/x509/crl_write.c b/lib/x509/crl_write.c
index 36ca452488..1f3989a205 100644
--- a/lib/x509/crl_write.c
+++ b/lib/x509/crl_write.c
@@ -49,8 +49,7 @@ static void disable_optional_stuff(gnutls_x509_crl_t crl);
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
* negative error value.
**/
-int
-gnutls_x509_crl_set_version(gnutls_x509_crl_t crl, unsigned int version)
+int gnutls_x509_crl_set_version(gnutls_x509_crl_t crl, unsigned int version)
{
int result;
uint8_t null = version & 0xFF;
@@ -63,8 +62,7 @@ gnutls_x509_crl_set_version(gnutls_x509_crl_t crl, unsigned int version)
if (null > 0)
null -= 1;
- result =
- asn1_write_value(crl->crl, "tbsCertList.version", &null, 1);
+ result = asn1_write_value(crl->crl, "tbsCertList.version", &null, 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -123,8 +121,7 @@ gnutls_x509_crl_sign2(gnutls_x509_crl_t crl, gnutls_x509_crt_t issuer,
goto fail;
}
- result =
- gnutls_x509_crl_privkey_sign(crl, issuer, privkey, dig, flags);
+ result = gnutls_x509_crl_privkey_sign(crl, issuer, privkey, dig, flags);
if (result < 0) {
gnutls_assert();
goto fail;
@@ -132,7 +129,7 @@ gnutls_x509_crl_sign2(gnutls_x509_crl_t crl, gnutls_x509_crt_t issuer,
result = 0;
- fail:
+ fail:
gnutls_privkey_deinit(privkey);
return result;
@@ -156,8 +153,7 @@ int
gnutls_x509_crl_sign(gnutls_x509_crl_t crl, gnutls_x509_crt_t issuer,
gnutls_x509_privkey_t issuer_key)
{
- return gnutls_x509_crl_sign2(crl, issuer, issuer_key,
- 0, 0);
+ return gnutls_x509_crl_sign2(crl, issuer, issuer_key, 0, 0);
}
/**
@@ -310,7 +306,6 @@ gnutls_x509_crl_set_crt(gnutls_x509_crl_t crl, gnutls_x509_crt_t crt,
return 0;
}
-
/* If OPTIONAL fields have not been initialized then
* disable them.
*/
@@ -319,13 +314,14 @@ static void disable_optional_stuff(gnutls_x509_crl_t crl)
time_t t;
t = _gnutls_x509_get_time(crl->crl, "tbsCertList.nextUpdate", 0);
- if (t == (time_t)-1) {
- (void)asn1_write_value(crl->crl, "tbsCertList.nextUpdate", NULL, 0);
+ if (t == (time_t) - 1) {
+ (void)asn1_write_value(crl->crl, "tbsCertList.nextUpdate", NULL,
+ 0);
}
if (crl->use_extensions == 0) {
(void)asn1_write_value(crl->crl, "tbsCertList.crlExtensions",
- NULL, 0);
+ NULL, 0);
}
return;
@@ -381,8 +377,7 @@ gnutls_x509_crl_set_authority_key_id(gnutls_x509_crl_t crl,
return result;
}
- result =
- _gnutls_x509_crl_set_extension(crl, "2.5.29.35", &der_data, 0);
+ result = _gnutls_x509_crl_set_extension(crl, "2.5.29.35", &der_data, 0);
_gnutls_free_datum(&der_data);
@@ -445,8 +440,7 @@ gnutls_x509_crl_set_number(gnutls_x509_crl_t crl,
return result;
}
- result =
- _gnutls_x509_crl_set_extension(crl, "2.5.29.20", &der_data, 0);
+ result = _gnutls_x509_crl_set_extension(crl, "2.5.29.20", &der_data, 0);
_gnutls_free_datum(&der_data);
@@ -490,8 +484,7 @@ int
gnutls_x509_crl_privkey_sign(gnutls_x509_crl_t crl,
gnutls_x509_crt_t issuer,
gnutls_privkey_t issuer_key,
- gnutls_digest_algorithm_t dig,
- unsigned int flags)
+ gnutls_digest_algorithm_t dig, unsigned int flags)
{
int result;
@@ -501,7 +494,9 @@ gnutls_x509_crl_privkey_sign(gnutls_x509_crl_t crl,
}
if (dig == 0) {
- result = gnutls_x509_crt_get_preferred_hash_algorithm(issuer, &dig, NULL);
+ result =
+ gnutls_x509_crt_get_preferred_hash_algorithm(issuer, &dig,
+ NULL);
if (result < 0)
return gnutls_assert_val(result);
}
diff --git a/lib/x509/crq.c b/lib/x509/crq.c
index 162f16a638..b43214af69 100644
--- a/lib/x509/crq.c
+++ b/lib/x509/crq.c
@@ -157,7 +157,7 @@ gnutls_x509_crq_import(gnutls_x509_crq_t crq,
result = 0;
- cleanup:
+ cleanup:
if (need_free)
_gnutls_free_datum(&_data);
return result;
@@ -182,7 +182,7 @@ gnutls_x509_crq_import(gnutls_x509_crq_t crq,
int gnutls_x509_crq_get_signature_algorithm(gnutls_x509_crq_t crq)
{
return map_errs_to_zero(_gnutls_x509_get_signature_algorithm(crq->crq,
- "signatureAlgorithm"));
+ "signatureAlgorithm"));
}
/**
@@ -215,8 +215,7 @@ gnutls_x509_crq_get_private_key_usage_period(gnutls_x509_crq_t crq,
}
ret = gnutls_x509_crq_get_extension_by_oid(crq, "2.5.29.16", 0,
- buf, &buf_size,
- critical);
+ buf, &buf_size, critical);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -243,13 +242,12 @@ gnutls_x509_crq_get_private_key_usage_period(gnutls_x509_crq_t crq,
ret = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&c2);
return ret;
}
-
/**
* gnutls_x509_crq_get_dn:
* @crq: should contain a #gnutls_x509_crq_t type
@@ -269,8 +267,7 @@ gnutls_x509_crq_get_private_key_usage_period(gnutls_x509_crq_t crq,
* long enough, and in that case the *@buf_size will be updated with
* the required size. On success 0 is returned.
**/
-int
-gnutls_x509_crq_get_dn(gnutls_x509_crq_t crq, char *buf, size_t * buf_size)
+int gnutls_x509_crq_get_dn(gnutls_x509_crq_t crq, char *buf, size_t *buf_size)
{
if (crq == NULL) {
gnutls_assert();
@@ -332,7 +329,8 @@ int gnutls_x509_crq_get_dn2(gnutls_x509_crq_t crq, gnutls_datum_t * dn)
*
* Since: 3.5.7
**/
-int gnutls_x509_crq_get_dn3(gnutls_x509_crq_t crq, gnutls_datum_t * dn, unsigned flags)
+int gnutls_x509_crq_get_dn3(gnutls_x509_crq_t crq, gnutls_datum_t * dn,
+ unsigned flags)
{
if (crq == NULL) {
gnutls_assert();
@@ -372,7 +370,7 @@ int gnutls_x509_crq_get_dn3(gnutls_x509_crq_t crq, gnutls_datum_t * dn, unsigned
int
gnutls_x509_crq_get_dn_by_oid(gnutls_x509_crq_t crq, const char *oid,
unsigned indx, unsigned int raw_flag,
- void *buf, size_t * buf_size)
+ void *buf, size_t *buf_size)
{
gnutls_datum_t td;
int ret;
@@ -408,7 +406,7 @@ gnutls_x509_crq_get_dn_by_oid(gnutls_x509_crq_t crq, const char *oid,
**/
int
gnutls_x509_crq_get_dn_oid(gnutls_x509_crq_t crq,
- unsigned indx, void *oid, size_t * sizeof_oid)
+ unsigned indx, void *oid, size_t *sizeof_oid)
{
if (crq == NULL) {
gnutls_assert();
@@ -435,7 +433,7 @@ gnutls_x509_crq_get_dn_oid(gnutls_x509_crq_t crq,
**/
int
gnutls_x509_crq_get_challenge_password(gnutls_x509_crq_t crq,
- char *pass, size_t * pass_size)
+ char *pass, size_t *pass_size)
{
gnutls_datum_t td;
int ret;
@@ -447,8 +445,8 @@ gnutls_x509_crq_get_challenge_password(gnutls_x509_crq_t crq,
ret =
_x509_parse_attribute(crq->crq,
- "certificationRequestInfo.attributes",
- "1.2.840.113549.1.9.7", 0, 0, &td);
+ "certificationRequestInfo.attributes",
+ "1.2.840.113549.1.9.7", 0, 0, &td);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -488,8 +486,8 @@ gnutls_x509_crq_set_attribute_by_oid(gnutls_x509_crq_t crq,
}
return _x509_set_attribute(crq->crq,
- "certificationRequestInfo.attributes", oid,
- &data);
+ "certificationRequestInfo.attributes", oid,
+ &data);
}
/**
@@ -514,7 +512,7 @@ gnutls_x509_crq_set_attribute_by_oid(gnutls_x509_crq_t crq,
int
gnutls_x509_crq_get_attribute_by_oid(gnutls_x509_crq_t crq,
const char *oid, unsigned indx, void *buf,
- size_t * buf_size)
+ size_t *buf_size)
{
int ret;
gnutls_datum_t td;
@@ -526,8 +524,8 @@ gnutls_x509_crq_get_attribute_by_oid(gnutls_x509_crq_t crq,
ret =
_x509_parse_attribute(crq->crq,
- "certificationRequestInfo.attributes", oid,
- indx, 1, &td);
+ "certificationRequestInfo.attributes", oid,
+ indx, 1, &td);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -580,8 +578,7 @@ gnutls_x509_crq_set_dn_by_oid(gnutls_x509_crq_t crq, const char *oid,
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
* negative error value.
**/
-int
-gnutls_x509_crq_set_version(gnutls_x509_crq_t crq, unsigned int version)
+int gnutls_x509_crq_set_version(gnutls_x509_crq_t crq, unsigned int version)
{
int result;
unsigned char null = version;
@@ -636,7 +633,7 @@ int gnutls_x509_crq_get_version(gnutls_x509_crq_t crq)
return _gnutls_asn2err(result);
}
- return (int) version[0] + 1;
+ return (int)version[0] + 1;
}
/**
@@ -650,8 +647,7 @@ int gnutls_x509_crq_get_version(gnutls_x509_crq_t crq)
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
* negative error value.
**/
-int
-gnutls_x509_crq_set_key(gnutls_x509_crq_t crq, gnutls_x509_privkey_t key)
+int gnutls_x509_crq_set_key(gnutls_x509_crq_t crq, gnutls_x509_privkey_t key)
{
int result;
@@ -661,9 +657,7 @@ gnutls_x509_crq_set_key(gnutls_x509_crq_t crq, gnutls_x509_privkey_t key)
}
result = _gnutls_x509_encode_and_copy_PKI_params
- (crq->crq,
- "certificationRequestInfo.subjectPKInfo",
- &key->params);
+ (crq->crq, "certificationRequestInfo.subjectPKInfo", &key->params);
if (result < 0) {
gnutls_assert();
@@ -729,7 +723,7 @@ gnutls_x509_crq_get_key_rsa_raw(gnutls_x509_crq_t crq,
ret = 0;
- cleanup:
+ cleanup:
gnutls_pk_params_release(&params);
return ret;
}
@@ -784,9 +778,7 @@ gnutls_x509_crq_set_key_rsa_raw(gnutls_x509_crq_t crq,
temp_params.algo = GNUTLS_PK_RSA;
result = _gnutls_x509_encode_and_copy_PKI_params
- (crq->crq,
- "certificationRequestInfo.subjectPKInfo",
- &temp_params);
+ (crq->crq, "certificationRequestInfo.subjectPKInfo", &temp_params);
if (result < 0) {
gnutls_assert();
@@ -796,7 +788,7 @@ gnutls_x509_crq_set_key_rsa_raw(gnutls_x509_crq_t crq,
ret = 0;
- error:
+ error:
gnutls_pk_params_release(&temp_params);
return ret;
}
@@ -813,8 +805,7 @@ gnutls_x509_crq_set_key_rsa_raw(gnutls_x509_crq_t crq,
* negative error value.
**/
int
-gnutls_x509_crq_set_challenge_password(gnutls_x509_crq_t crq,
- const char *pass)
+gnutls_x509_crq_set_challenge_password(gnutls_x509_crq_t crq, const char *pass)
{
int result;
char *password = NULL;
@@ -828,8 +819,7 @@ gnutls_x509_crq_set_challenge_password(gnutls_x509_crq_t crq,
*/
result =
asn1_write_value(crq->crq,
- "certificationRequestInfo.attributes", "NEW",
- 1);
+ "certificationRequestInfo.attributes", "NEW", 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -837,11 +827,13 @@ gnutls_x509_crq_set_challenge_password(gnutls_x509_crq_t crq,
if (pass) {
gnutls_datum_t out;
- result = _gnutls_utf8_password_normalize(pass, strlen(pass), &out, 0);
+ result =
+ _gnutls_utf8_password_normalize(pass, strlen(pass), &out,
+ 0);
if (result < 0)
return gnutls_assert_val(result);
- password = (char*)out.data;
+ password = (char *)out.data;
}
assert(password != NULL);
@@ -922,7 +914,7 @@ gnutls_x509_crq_sign2(gnutls_x509_crq_t crq, gnutls_x509_privkey_t key,
result = 0;
- fail:
+ fail:
gnutls_privkey_deinit(privkey);
return result;
@@ -974,7 +966,7 @@ int gnutls_x509_crq_sign(gnutls_x509_crq_t crq, gnutls_x509_privkey_t key)
int
gnutls_x509_crq_export(gnutls_x509_crq_t crq,
gnutls_x509_crt_fmt_t format, void *output_data,
- size_t * output_data_size)
+ size_t *output_data_size)
{
if (crq == NULL) {
gnutls_assert();
@@ -1031,8 +1023,7 @@ gnutls_x509_crq_export2(gnutls_x509_crq_t crq,
* Returns: a member of the #gnutls_pk_algorithm_t enumeration on
* success, or a negative error code on error.
**/
-int
-gnutls_x509_crq_get_pk_algorithm(gnutls_x509_crq_t crq, unsigned int *bits)
+int gnutls_x509_crq_get_pk_algorithm(gnutls_x509_crq_t crq, unsigned int *bits)
{
int result;
@@ -1064,8 +1055,7 @@ gnutls_x509_crq_get_pk_algorithm(gnutls_x509_crq_t crq, unsigned int *bits)
**/
int
gnutls_x509_crq_get_spki(gnutls_x509_crq_t crq,
- gnutls_x509_spki_t spki,
- unsigned int flags)
+ gnutls_x509_spki_t spki, unsigned int flags)
{
int result;
gnutls_x509_spki_st params;
@@ -1109,23 +1099,26 @@ gnutls_x509_crq_get_spki(gnutls_x509_crq_t crq,
*
* Since: 3.5.0
**/
-int gnutls_x509_crq_get_signature_oid(gnutls_x509_crq_t crq, char *oid, size_t *oid_size)
+int gnutls_x509_crq_get_signature_oid(gnutls_x509_crq_t crq, char *oid,
+ size_t *oid_size)
{
char str[MAX_OID_SIZE];
int len, result, ret;
gnutls_datum_t out;
len = sizeof(str);
- result = asn1_read_value(crq->crq, "signatureAlgorithm.algorithm", str, &len);
+ result =
+ asn1_read_value(crq->crq, "signatureAlgorithm.algorithm", str,
+ &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
- out.data = (void*)str;
+ out.data = (void *)str;
out.size = len;
- ret = _gnutls_copy_string(&out, (void*)oid, oid_size);
+ ret = _gnutls_copy_string(&out, (void *)oid, oid_size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1149,23 +1142,27 @@ int gnutls_x509_crq_get_signature_oid(gnutls_x509_crq_t crq, char *oid, size_t *
*
* Since: 3.5.0
**/
-int gnutls_x509_crq_get_pk_oid(gnutls_x509_crq_t crq, char *oid, size_t *oid_size)
+int gnutls_x509_crq_get_pk_oid(gnutls_x509_crq_t crq, char *oid,
+ size_t *oid_size)
{
char str[MAX_OID_SIZE];
int len, result, ret;
gnutls_datum_t out;
len = sizeof(str);
- result = asn1_read_value(crq->crq, "certificationRequestInfo.subjectPKInfo.algorithm.algorithm", str, &len);
+ result =
+ asn1_read_value(crq->crq,
+ "certificationRequestInfo.subjectPKInfo.algorithm.algorithm",
+ str, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
- out.data = (void*)str;
+ out.data = (void *)str;
out.size = len;
- ret = _gnutls_copy_string(&out, (void*)oid, oid_size);
+ ret = _gnutls_copy_string(&out, (void *)oid, oid_size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1200,7 +1197,7 @@ int gnutls_x509_crq_get_pk_oid(gnutls_x509_crq_t crq, char *oid, size_t *oid_siz
**/
int
gnutls_x509_crq_get_attribute_info(gnutls_x509_crq_t crq, unsigned indx,
- void *oid, size_t * sizeof_oid)
+ void *oid, size_t *sizeof_oid)
{
int result;
char name[MAX_NAME_SIZE];
@@ -1254,7 +1251,7 @@ gnutls_x509_crq_get_attribute_info(gnutls_x509_crq_t crq, unsigned indx,
**/
int
gnutls_x509_crq_get_attribute_data(gnutls_x509_crq_t crq, unsigned indx,
- void *data, size_t * sizeof_data)
+ void *data, size_t *sizeof_data)
{
int result, len;
char name[MAX_NAME_SIZE];
@@ -1265,8 +1262,7 @@ gnutls_x509_crq_get_attribute_data(gnutls_x509_crq_t crq, unsigned indx,
}
snprintf(name, sizeof(name),
- "certificationRequestInfo.attributes.?%u.values.?1",
- indx + 1);
+ "certificationRequestInfo.attributes.?%u.values.?1", indx + 1);
len = *sizeof_data;
result = asn1_read_value(crq->crq, name, data, &len);
@@ -1309,7 +1305,7 @@ gnutls_x509_crq_get_attribute_data(gnutls_x509_crq_t crq, unsigned indx,
**/
int
gnutls_x509_crq_get_extension_info(gnutls_x509_crq_t crq, unsigned indx,
- void *oid, size_t * sizeof_oid,
+ void *oid, size_t *sizeof_oid,
unsigned int *critical)
{
int result;
@@ -1329,8 +1325,7 @@ gnutls_x509_crq_get_extension_info(gnutls_x509_crq_t crq, unsigned indx,
result =
gnutls_x509_crq_get_attribute_by_oid(crq,
"1.2.840.113549.1.9.14",
- 0, NULL,
- &extensions_size);
+ 0, NULL, &extensions_size);
if (result == GNUTLS_E_SHORT_MEMORY_BUFFER) {
extensions = gnutls_malloc(extensions_size);
if (extensions == NULL) {
@@ -1350,15 +1345,15 @@ gnutls_x509_crq_get_extension_info(gnutls_x509_crq_t crq, unsigned indx,
}
result =
- asn1_create_element(_gnutls_get_pkix(), "PKIX1.Extensions",
- &c2);
+ asn1_create_element(_gnutls_get_pkix(), "PKIX1.Extensions", &c2);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
goto out;
}
- result = _asn1_strict_der_decode(&c2, extensions, extensions_size, NULL);
+ result =
+ _asn1_strict_der_decode(&c2, extensions, extensions_size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
asn1_delete_structure(&c2);
@@ -1404,7 +1399,7 @@ gnutls_x509_crq_get_extension_info(gnutls_x509_crq_t crq, unsigned indx,
result = 0;
- out:
+ out:
gnutls_free(extensions);
return result;
}
@@ -1434,7 +1429,7 @@ gnutls_x509_crq_get_extension_info(gnutls_x509_crq_t crq, unsigned indx,
**/
int
gnutls_x509_crq_get_extension_data(gnutls_x509_crq_t crq, unsigned indx,
- void *data, size_t * sizeof_data)
+ void *data, size_t *sizeof_data)
{
int ret;
gnutls_datum_t raw;
@@ -1472,7 +1467,7 @@ gnutls_x509_crq_get_extension_data(gnutls_x509_crq_t crq, unsigned indx,
**/
int
gnutls_x509_crq_get_extension_data2(gnutls_x509_crq_t crq,
- unsigned indx, gnutls_datum_t * data)
+ unsigned indx, gnutls_datum_t * data)
{
int ret, result;
char name[MAX_NAME_SIZE];
@@ -1489,8 +1484,7 @@ gnutls_x509_crq_get_extension_data2(gnutls_x509_crq_t crq,
ret =
gnutls_x509_crq_get_attribute_by_oid(crq,
"1.2.840.113549.1.9.14",
- 0, NULL,
- &extensions_size);
+ 0, NULL, &extensions_size);
if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) {
gnutls_assert();
if (ret == 0)
@@ -1515,15 +1509,15 @@ gnutls_x509_crq_get_extension_data2(gnutls_x509_crq_t crq,
}
result =
- asn1_create_element(_gnutls_get_pkix(), "PKIX1.Extensions",
- &c2);
+ asn1_create_element(_gnutls_get_pkix(), "PKIX1.Extensions", &c2);
if (result != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(result);
goto cleanup;
}
- result = _asn1_strict_der_decode(&c2, extensions, extensions_size, NULL);
+ result =
+ _asn1_strict_der_decode(&c2, extensions, extensions_size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(result);
@@ -1571,8 +1565,7 @@ gnutls_x509_crq_get_extension_data2(gnutls_x509_crq_t crq,
**/
int
gnutls_x509_crq_get_key_usage(gnutls_x509_crq_t crq,
- unsigned int *key_usage,
- unsigned int *critical)
+ unsigned int *key_usage, unsigned int *critical)
{
int result;
uint8_t buf[128];
@@ -1585,8 +1578,7 @@ gnutls_x509_crq_get_key_usage(gnutls_x509_crq_t crq,
}
result = gnutls_x509_crq_get_extension_by_oid(crq, "2.5.29.15", 0,
- buf, &buf_size,
- critical);
+ buf, &buf_size, critical);
if (result < 0) {
gnutls_assert();
return result;
@@ -1642,8 +1634,7 @@ gnutls_x509_crq_get_basic_constraints(gnutls_x509_crq_t crq,
}
result = gnutls_x509_crq_get_extension_by_oid(crq, "2.5.29.19", 0,
- buf, &buf_size,
- critical);
+ buf, &buf_size, critical);
if (result < 0) {
gnutls_assert();
return result;
@@ -1651,7 +1642,8 @@ gnutls_x509_crq_get_basic_constraints(gnutls_x509_crq_t crq,
bd.data = buf;
bd.size = buf_size;
- result = gnutls_x509_ext_import_basic_constraints(&bd, &tmp_ca, pathlen);
+ result =
+ gnutls_x509_ext_import_basic_constraints(&bd, &tmp_ca, pathlen);
if (ca)
*ca = tmp_ca;
@@ -1666,7 +1658,7 @@ gnutls_x509_crq_get_basic_constraints(gnutls_x509_crq_t crq,
static int
get_subject_alt_name(gnutls_x509_crq_t crq,
unsigned int seq, void *ret,
- size_t * ret_size, unsigned int *ret_type,
+ size_t *ret_size, unsigned int *ret_type,
unsigned int *critical, int othername_oid)
{
int result;
@@ -1770,7 +1762,7 @@ get_subject_alt_name(gnutls_x509_crq_t crq,
int
gnutls_x509_crq_get_subject_alt_name(gnutls_x509_crq_t crq,
unsigned int seq, void *ret,
- size_t * ret_size,
+ size_t *ret_size,
unsigned int *ret_type,
unsigned int *critical)
{
@@ -1809,10 +1801,9 @@ gnutls_x509_crq_get_subject_alt_name(gnutls_x509_crq_t crq,
int
gnutls_x509_crq_get_subject_alt_othername_oid(gnutls_x509_crq_t crq,
unsigned int seq,
- void *ret, size_t * ret_size)
+ void *ret, size_t *ret_size)
{
- return get_subject_alt_name(crq, seq, ret, ret_size, NULL, NULL,
- 1);
+ return get_subject_alt_name(crq, seq, ret, ret_size, NULL, NULL, 1);
}
/**
@@ -1839,7 +1830,7 @@ gnutls_x509_crq_get_subject_alt_othername_oid(gnutls_x509_crq_t crq,
int
gnutls_x509_crq_get_extension_by_oid(gnutls_x509_crq_t crq,
const char *oid, unsigned indx,
- void *buf, size_t * buf_size,
+ void *buf, size_t *buf_size,
unsigned int *critical)
{
int result;
@@ -1851,8 +1842,7 @@ gnutls_x509_crq_get_extension_by_oid(gnutls_x509_crq_t crq,
oid_size = sizeof(_oid);
result =
gnutls_x509_crq_get_extension_info(crq, i, _oid,
- &oid_size,
- critical);
+ &oid_size, critical);
if (result < 0) {
gnutls_assert();
return result;
@@ -1870,7 +1860,6 @@ gnutls_x509_crq_get_extension_by_oid(gnutls_x509_crq_t crq,
}
}
-
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
@@ -1897,9 +1886,9 @@ gnutls_x509_crq_get_extension_by_oid(gnutls_x509_crq_t crq,
**/
int
gnutls_x509_crq_get_extension_by_oid2(gnutls_x509_crq_t crq,
- const char *oid, unsigned indx,
- gnutls_datum_t *output,
- unsigned int *critical)
+ const char *oid, unsigned indx,
+ gnutls_datum_t * output,
+ unsigned int *critical)
{
int result;
unsigned int i;
@@ -1910,8 +1899,7 @@ gnutls_x509_crq_get_extension_by_oid2(gnutls_x509_crq_t crq,
oid_size = sizeof(_oid);
result =
gnutls_x509_crq_get_extension_info(crq, i, _oid,
- &oid_size,
- critical);
+ &oid_size, critical);
if (result < 0) {
gnutls_assert();
return result;
@@ -1921,8 +1909,8 @@ gnutls_x509_crq_get_extension_by_oid2(gnutls_x509_crq_t crq,
if (indx == 0)
return
gnutls_x509_crq_get_extension_data2(crq,
- i,
- output);
+ i,
+ output);
else
indx--;
}
@@ -1966,8 +1954,7 @@ int
gnutls_x509_crq_set_subject_alt_name(gnutls_x509_crq_t crq,
gnutls_x509_subject_alt_name_t nt,
const void *data,
- unsigned int data_size,
- unsigned int flags)
+ unsigned int data_size, unsigned int flags)
{
int result = 0;
gnutls_datum_t der_data = { NULL, 0 };
@@ -1996,8 +1983,7 @@ gnutls_x509_crq_set_subject_alt_name(gnutls_x509_crq_t crq,
break;
case GNUTLS_E_SUCCESS:
- prev_der_data.data =
- gnutls_malloc(prev_der_data.size);
+ prev_der_data.data = gnutls_malloc(prev_der_data.size);
if (prev_der_data.data == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -2026,9 +2012,9 @@ gnutls_x509_crq_set_subject_alt_name(gnutls_x509_crq_t crq,
/* generate the extension.
*/
- result = _gnutls_x509_ext_gen_subject_alt_name(nt, NULL, data, data_size,
- &prev_der_data,
- &der_data);
+ result =
+ _gnutls_x509_ext_gen_subject_alt_name(nt, NULL, data, data_size,
+ &prev_der_data, &der_data);
gnutls_free(prev_der_data.data);
if (result < 0) {
gnutls_assert();
@@ -2048,7 +2034,7 @@ gnutls_x509_crq_set_subject_alt_name(gnutls_x509_crq_t crq,
return 0;
- finish:
+ finish:
return result;
}
@@ -2073,10 +2059,10 @@ gnutls_x509_crq_set_subject_alt_name(gnutls_x509_crq_t crq,
**/
int
gnutls_x509_crq_set_subject_alt_othername(gnutls_x509_crq_t crq,
- const char *oid,
- const void *data,
- unsigned int data_size,
- unsigned int flags)
+ const char *oid,
+ const void *data,
+ unsigned int data_size,
+ unsigned int flags)
{
int result = 0;
gnutls_datum_t der_data = { NULL, 0 };
@@ -2106,8 +2092,7 @@ gnutls_x509_crq_set_subject_alt_othername(gnutls_x509_crq_t crq,
break;
case GNUTLS_E_SUCCESS:
- prev_der_data.data =
- gnutls_malloc(prev_der_data.size);
+ prev_der_data.data = gnutls_malloc(prev_der_data.size);
if (prev_der_data.data == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -2133,7 +2118,9 @@ gnutls_x509_crq_set_subject_alt_othername(gnutls_x509_crq_t crq,
}
}
- result = _gnutls_encode_othername_data(flags, data, data_size, &encoded_data);
+ result =
+ _gnutls_encode_othername_data(flags, data, data_size,
+ &encoded_data);
if (result < 0) {
gnutls_assert();
goto finish;
@@ -2141,10 +2128,11 @@ gnutls_x509_crq_set_subject_alt_othername(gnutls_x509_crq_t crq,
/* generate the extension.
*/
- result = _gnutls_x509_ext_gen_subject_alt_name(GNUTLS_SAN_OTHERNAME, oid,
- encoded_data.data, encoded_data.size,
- &prev_der_data,
- &der_data);
+ result =
+ _gnutls_x509_ext_gen_subject_alt_name(GNUTLS_SAN_OTHERNAME, oid,
+ encoded_data.data,
+ encoded_data.size,
+ &prev_der_data, &der_data);
if (result < 0) {
gnutls_assert();
goto finish;
@@ -2161,7 +2149,7 @@ gnutls_x509_crq_set_subject_alt_othername(gnutls_x509_crq_t crq,
result = 0;
- finish:
+ finish:
_gnutls_free_datum(&prev_der_data);
_gnutls_free_datum(&der_data);
_gnutls_free_datum(&encoded_data);
@@ -2185,8 +2173,7 @@ gnutls_x509_crq_set_subject_alt_othername(gnutls_x509_crq_t crq,
**/
int
gnutls_x509_crq_set_basic_constraints(gnutls_x509_crq_t crq,
- unsigned int ca,
- int pathLenConstraint)
+ unsigned int ca, int pathLenConstraint)
{
int result;
gnutls_datum_t der_data;
@@ -2198,14 +2185,15 @@ gnutls_x509_crq_set_basic_constraints(gnutls_x509_crq_t crq,
/* generate the extension.
*/
- result = gnutls_x509_ext_export_basic_constraints(ca, pathLenConstraint, &der_data);
+ result =
+ gnutls_x509_ext_export_basic_constraints(ca, pathLenConstraint,
+ &der_data);
if (result < 0) {
gnutls_assert();
return result;
}
- result =
- _gnutls_x509_crq_set_extension(crq, "2.5.29.19", &der_data, 1);
+ result = _gnutls_x509_crq_set_extension(crq, "2.5.29.19", &der_data, 1);
_gnutls_free_datum(&der_data);
@@ -2229,8 +2217,7 @@ gnutls_x509_crq_set_basic_constraints(gnutls_x509_crq_t crq,
*
* Since: 2.8.0
**/
-int
-gnutls_x509_crq_set_key_usage(gnutls_x509_crq_t crq, unsigned int usage)
+int gnutls_x509_crq_set_key_usage(gnutls_x509_crq_t crq, unsigned int usage)
{
int result;
gnutls_datum_t der_data;
@@ -2242,15 +2229,13 @@ gnutls_x509_crq_set_key_usage(gnutls_x509_crq_t crq, unsigned int usage)
/* generate the extension.
*/
- result =
- gnutls_x509_ext_export_key_usage(usage, &der_data);
+ result = gnutls_x509_ext_export_key_usage(usage, &der_data);
if (result < 0) {
gnutls_assert();
return result;
}
- result =
- _gnutls_x509_crq_set_extension(crq, "2.5.29.15", &der_data, 1);
+ result = _gnutls_x509_crq_set_extension(crq, "2.5.29.15", &der_data, 1);
_gnutls_free_datum(&der_data);
@@ -2284,8 +2269,7 @@ gnutls_x509_crq_set_key_usage(gnutls_x509_crq_t crq, unsigned int usage)
int
gnutls_x509_crq_get_key_purpose_oid(gnutls_x509_crq_t crq,
unsigned indx, void *oid,
- size_t * sizeof_oid,
- unsigned int *critical)
+ size_t *sizeof_oid, unsigned int *critical)
{
char tmpstr[MAX_NAME_SIZE];
int result, len;
@@ -2318,8 +2302,7 @@ gnutls_x509_crq_get_key_purpose_oid(gnutls_x509_crq_t crq,
result = gnutls_x509_crq_get_extension_by_oid(crq, "2.5.29.37", 0,
prev.data,
- &prev_size,
- critical);
+ &prev_size, critical);
if (result < 0) {
gnutls_assert();
gnutls_free(prev.data);
@@ -2353,8 +2336,7 @@ gnutls_x509_crq_get_key_purpose_oid(gnutls_x509_crq_t crq,
*sizeof_oid = len;
asn1_delete_structure(&c2);
- if (result == ASN1_VALUE_NOT_FOUND
- || result == ASN1_ELEMENT_NOT_FOUND) {
+ if (result == ASN1_VALUE_NOT_FOUND || result == ASN1_ELEMENT_NOT_FOUND) {
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
@@ -2415,8 +2397,7 @@ gnutls_x509_crq_set_key_purpose_oid(gnutls_x509_crq_t crq,
result =
gnutls_x509_crq_get_extension_by_oid(crq, "2.5.29.37",
0, prev.data,
- &prev_size,
- &critical);
+ &prev_size, &critical);
if (result < 0) {
gnutls_assert();
gnutls_free(prev.data);
@@ -2513,8 +2494,7 @@ gnutls_x509_crq_set_key_purpose_oid(gnutls_x509_crq_t crq,
**/
int
gnutls_x509_crq_get_key_id(gnutls_x509_crq_t crq, unsigned int flags,
- unsigned char *output_data,
- size_t * output_data_size)
+ unsigned char *output_data, size_t *output_data_size)
{
int ret = 0;
gnutls_pk_params_st params;
@@ -2530,8 +2510,7 @@ gnutls_x509_crq_get_key_id(gnutls_x509_crq_t crq, unsigned int flags,
return ret;
}
- ret =
- _gnutls_get_key_id(&params, output_data, output_data_size, flags);
+ ret = _gnutls_get_key_id(&params, output_data, output_data_size, flags);
gnutls_pk_params_release(&params);
@@ -2569,8 +2548,7 @@ gnutls_x509_crq_get_key_id(gnutls_x509_crq_t crq, unsigned int flags,
**/
int
gnutls_x509_crq_privkey_sign(gnutls_x509_crq_t crq, gnutls_privkey_t key,
- gnutls_digest_algorithm_t dig,
- unsigned int flags)
+ gnutls_digest_algorithm_t dig, unsigned int flags)
{
int result;
gnutls_datum_t signature;
@@ -2585,8 +2563,7 @@ gnutls_x509_crq_privkey_sign(gnutls_x509_crq_t crq, gnutls_privkey_t key,
}
/* Make sure version field is set. */
- if (gnutls_x509_crq_get_version(crq) ==
- GNUTLS_E_ASN1_VALUE_NOT_FOUND) {
+ if (gnutls_x509_crq_get_version(crq) == GNUTLS_E_ASN1_VALUE_NOT_FOUND) {
result = gnutls_x509_crq_set_version(crq, 1);
if (result < 0) {
gnutls_assert();
@@ -2608,7 +2585,9 @@ gnutls_x509_crq_privkey_sign(gnutls_x509_crq_t crq, gnutls_privkey_t key,
gnutls_pubkey_deinit(pubkey);
return gnutls_assert_val(ret);
}
- ret = gnutls_pubkey_get_preferred_hash_algorithm(pubkey, &dig, NULL);
+ ret =
+ gnutls_pubkey_get_preferred_hash_algorithm(pubkey, &dig,
+ NULL);
gnutls_pubkey_deinit(pubkey);
if (ret < 0)
@@ -2631,8 +2610,7 @@ gnutls_x509_crq_privkey_sign(gnutls_x509_crq_t crq, gnutls_privkey_t key,
/* Step 1. Self sign the request.
*/
result =
- _gnutls_x509_get_tbs(crq->crq, "certificationRequestInfo",
- &tbs);
+ _gnutls_x509_get_tbs(crq->crq, "certificationRequestInfo", &tbs);
if (result < 0) {
gnutls_assert();
@@ -2645,8 +2623,7 @@ gnutls_x509_crq_privkey_sign(gnutls_x509_crq_t crq, gnutls_privkey_t key,
FIX_SIGN_PARAMS(params, flags, dig);
- result = privkey_sign_and_hash_data(key, se,
- &tbs, &signature, &params);
+ result = privkey_sign_and_hash_data(key, se, &tbs, &signature, &params);
gnutls_free(tbs.data);
if (result < 0) {
@@ -2680,7 +2657,6 @@ gnutls_x509_crq_privkey_sign(gnutls_x509_crq_t crq, gnutls_privkey_t key,
return 0;
}
-
/**
* gnutls_x509_crq_verify:
* @crq: is the crq to be verified
@@ -2707,8 +2683,7 @@ int gnutls_x509_crq_verify(gnutls_x509_crq_t crq, unsigned int flags)
ret =
_gnutls_x509_get_signed_data(crq->crq, NULL,
- "certificationRequestInfo",
- &data);
+ "certificationRequestInfo", &data);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -2729,8 +2704,7 @@ int gnutls_x509_crq_verify(gnutls_x509_crq_t crq, unsigned int flags)
goto cleanup;
}
- ret =
- _gnutls_x509_get_signature(crq->crq, "signature", &signature);
+ ret = _gnutls_x509_get_signature(crq->crq, "signature", &signature);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2743,8 +2717,7 @@ int gnutls_x509_crq_verify(gnutls_x509_crq_t crq, unsigned int flags)
}
ret = _gnutls_x509_read_sign_params(crq->crq,
- "signatureAlgorithm",
- &sign_params);
+ "signatureAlgorithm", &sign_params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2760,7 +2733,7 @@ int gnutls_x509_crq_verify(gnutls_x509_crq_t crq, unsigned int flags)
ret = 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(&data);
_gnutls_free_datum(&signature);
gnutls_pk_params_release(&params);
@@ -2819,12 +2792,11 @@ gnutls_x509_crq_set_private_key_usage_period(gnutls_x509_crq_t crq,
goto cleanup;
}
- result = _gnutls_x509_crq_set_extension(crq, "2.5.29.16",
- &der_data, 0);
+ result = _gnutls_x509_crq_set_extension(crq, "2.5.29.16", &der_data, 0);
_gnutls_free_datum(&der_data);
- cleanup:
+ cleanup:
asn1_delete_structure(&c2);
return result;
@@ -2857,11 +2829,10 @@ gnutls_x509_crq_set_private_key_usage_period(gnutls_x509_crq_t crq,
**/
int gnutls_x509_crq_get_tlsfeatures(gnutls_x509_crq_t crq,
gnutls_x509_tlsfeatures_t features,
- unsigned int flags,
- unsigned int *critical)
+ unsigned int flags, unsigned int *critical)
{
int ret;
- gnutls_datum_t der = {NULL, 0};
+ gnutls_datum_t der = { NULL, 0 };
if (crq == NULL) {
gnutls_assert();
@@ -2869,9 +2840,9 @@ int gnutls_x509_crq_get_tlsfeatures(gnutls_x509_crq_t crq,
}
if ((ret =
- gnutls_x509_crq_get_extension_by_oid2(crq, GNUTLS_X509EXT_OID_TLSFEATURES, 0,
- &der, critical)) < 0)
- {
+ gnutls_x509_crq_get_extension_by_oid2(crq,
+ GNUTLS_X509EXT_OID_TLSFEATURES,
+ 0, &der, critical)) < 0) {
return ret;
}
@@ -2924,7 +2895,9 @@ int gnutls_x509_crq_set_tlsfeatures(gnutls_x509_crq_t crq,
return ret;
}
- ret = _gnutls_x509_crq_set_extension(crq, GNUTLS_X509EXT_OID_TLSFEATURES, &der, 0);
+ ret =
+ _gnutls_x509_crq_set_extension(crq, GNUTLS_X509EXT_OID_TLSFEATURES,
+ &der, 0);
_gnutls_free_datum(&der);
@@ -2953,13 +2926,12 @@ int gnutls_x509_crq_set_tlsfeatures(gnutls_x509_crq_t crq,
int
gnutls_x509_crq_set_extension_by_oid(gnutls_x509_crq_t crq,
const char *oid, const void *buf,
- size_t sizeof_buf,
- unsigned int critical)
+ size_t sizeof_buf, unsigned int critical)
{
int result;
gnutls_datum_t der_data;
- der_data.data = (void *) buf;
+ der_data.data = (void *)buf;
der_data.size = sizeof_buf;
if (crq == NULL) {
@@ -2967,8 +2939,7 @@ gnutls_x509_crq_set_extension_by_oid(gnutls_x509_crq_t crq,
return GNUTLS_E_INVALID_REQUEST;
}
- result =
- _gnutls_x509_crq_set_extension(crq, oid, &der_data, critical);
+ result = _gnutls_x509_crq_set_extension(crq, oid, &der_data, critical);
if (result < 0) {
gnutls_assert();
return result;
@@ -2999,8 +2970,7 @@ gnutls_x509_crq_set_extension_by_oid(gnutls_x509_crq_t crq,
**/
int
gnutls_x509_crq_set_spki(gnutls_x509_crq_t crq,
- const gnutls_x509_spki_t spki,
- unsigned int flags)
+ const gnutls_x509_spki_t spki, unsigned int flags)
{
int ret;
gnutls_pk_algorithm_t crq_pk;
@@ -3023,8 +2993,8 @@ gnutls_x509_crq_set_spki(gnutls_x509_crq_t crq,
crq_pk = params.algo;
if (!_gnutls_pk_are_compat(crq_pk, spki->pk)) {
- ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- goto cleanup;
+ ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ goto cleanup;
}
if (spki->pk != GNUTLS_PK_RSA_PSS) {
@@ -3084,10 +3054,9 @@ gnutls_x509_crq_set_spki(gnutls_x509_crq_t crq,
}
ret = _gnutls_x509_write_spki_params(crq->crq,
- "certificationRequestInfo."
- "subjectPKInfo."
- "algorithm",
- &tpki);
+ "certificationRequestInfo."
+ "subjectPKInfo."
+ "algorithm", &tpki);
if (ret < 0) {
gnutls_assert();
goto cleanup;
diff --git a/lib/x509/dn.c b/lib/x509/dn.c
index 8d89f56259..c13ce113e8 100644
--- a/lib/x509/dn.c
+++ b/lib/x509/dn.c
@@ -33,7 +33,8 @@
* Name (you need a parser just to read a name in the X.509 protocols!!!)
*/
-static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name, gnutls_buffer_st *str, int k1, unsigned last)
+static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name,
+ gnutls_buffer_st * str, int k1, unsigned last)
{
int k2, result, max_k2;
int len;
@@ -52,14 +53,12 @@ static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name, gnu
snprintf(tmpbuffer1, sizeof(tmpbuffer1), "%s.?%d",
asn1_rdn_name, k1);
else
- snprintf(tmpbuffer1, sizeof(tmpbuffer1), "?%d",
- k1);
+ snprintf(tmpbuffer1, sizeof(tmpbuffer1), "?%d", k1);
len = sizeof(value) - 1;
- result =
- asn1_read_value(asn1_struct, tmpbuffer1, value, &len);
+ result = asn1_read_value(asn1_struct, tmpbuffer1, value, &len);
- if (result != ASN1_VALUE_NOT_FOUND && result != ASN1_SUCCESS) { /* expected */
+ if (result != ASN1_VALUE_NOT_FOUND && result != ASN1_SUCCESS) { /* expected */
gnutls_assert();
result = _gnutls_asn2err(result);
goto cleanup;
@@ -74,7 +73,7 @@ static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name, gnu
goto cleanup;
}
- do { /* Move to the attribute type and values
+ do { /* Move to the attribute type and values
*/
k2++;
@@ -82,20 +81,17 @@ static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name, gnu
snprintf(tmpbuffer2, sizeof(tmpbuffer2),
"%s.?%d", tmpbuffer1, k2);
else
- snprintf(tmpbuffer2, sizeof(tmpbuffer2),
- "?%d", k2);
+ snprintf(tmpbuffer2, sizeof(tmpbuffer2), "?%d", k2);
/* Try to read the RelativeDistinguishedName attributes.
*/
len = sizeof(value) - 1;
- result =
- asn1_read_value(asn1_struct, tmpbuffer2, value,
- &len);
+ result = asn1_read_value(asn1_struct, tmpbuffer2, value, &len);
if (result == ASN1_ELEMENT_NOT_FOUND)
break;
- if (result != ASN1_VALUE_NOT_FOUND && result != ASN1_SUCCESS) { /* expected */
+ if (result != ASN1_VALUE_NOT_FOUND && result != ASN1_SUCCESS) { /* expected */
gnutls_assert();
result = _gnutls_asn2err(result);
goto cleanup;
@@ -103,15 +99,11 @@ static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name, gnu
/* Read the OID
*/
- _gnutls_str_cpy(tmpbuffer3, sizeof(tmpbuffer3),
- tmpbuffer2);
- _gnutls_str_cat(tmpbuffer3, sizeof(tmpbuffer3),
- ".type");
+ _gnutls_str_cpy(tmpbuffer3, sizeof(tmpbuffer3), tmpbuffer2);
+ _gnutls_str_cat(tmpbuffer3, sizeof(tmpbuffer3), ".type");
len = sizeof(oid) - 1;
- result =
- asn1_read_value(asn1_struct, tmpbuffer3, oid,
- &len);
+ result = asn1_read_value(asn1_struct, tmpbuffer3, oid, &len);
if (result == ASN1_ELEMENT_NOT_FOUND)
break;
@@ -123,16 +115,12 @@ static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name, gnu
/* Read the Value
*/
- _gnutls_str_cpy(tmpbuffer3, sizeof(tmpbuffer3),
- tmpbuffer2);
- _gnutls_str_cat(tmpbuffer3, sizeof(tmpbuffer3),
- ".value");
+ _gnutls_str_cpy(tmpbuffer3, sizeof(tmpbuffer3), tmpbuffer2);
+ _gnutls_str_cat(tmpbuffer3, sizeof(tmpbuffer3), ".value");
len = 0;
- result =
- _gnutls_x509_read_value(asn1_struct,
- tmpbuffer3, &tvd);
+ result = _gnutls_x509_read_value(asn1_struct, tmpbuffer3, &tvd);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -150,8 +138,7 @@ static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name, gnu
*/
ldap_desc =
- gnutls_x509_dn_oid_name(oid,
- GNUTLS_X509_DN_OID_RETURN_OID);
+ gnutls_x509_dn_oid_name(oid, GNUTLS_X509_DN_OID_RETURN_OID);
STR_APPEND(ldap_desc);
STR_APPEND("=");
@@ -163,7 +150,8 @@ static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name, gnu
* Explicitly reject DirectoryString in such case.
*/
const char *asn_desc = _gnutls_oid_get_asn_desc(oid);
- if (asn_desc && !strcmp(asn_desc, "PKIX1.DirectoryString") && tvd.data[1] == 0) {
+ if (asn_desc && !strcmp(asn_desc, "PKIX1.DirectoryString")
+ && tvd.data[1] == 0) {
gnutls_assert();
result = GNUTLS_E_ASN1_VALUE_NOT_VALID;
_gnutls_debug_log("Empty DirectoryString\n");
@@ -171,8 +159,7 @@ static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name, gnu
}
result =
- _gnutls_x509_dn_to_string(oid, tvd.data,
- tvd.size, &td);
+ _gnutls_x509_dn_to_string(oid, tvd.data, tvd.size, &td);
if (result < 0) {
gnutls_assert();
_gnutls_debug_log
@@ -180,9 +167,7 @@ static int append_elements(asn1_node asn1_struct, const char *asn1_rdn_name, gnu
oid, _gnutls_bin2hex(tvd.data,
tvd.size,
tmpbuffer3,
- sizeof
- (tmpbuffer3),
- NULL));
+ sizeof(tmpbuffer3), NULL));
goto cleanup;
}
@@ -222,8 +207,11 @@ _gnutls_x509_get_dn(asn1_node asn1_struct,
result = asn1_number_of_elements(asn1_struct, asn1_rdn_name, &k1);
if (result != ASN1_SUCCESS) {
- if (result == ASN1_ELEMENT_NOT_FOUND || result == ASN1_VALUE_NOT_FOUND) {
- result = gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ if (result == ASN1_ELEMENT_NOT_FOUND
+ || result == ASN1_VALUE_NOT_FOUND) {
+ result =
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
} else {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -238,8 +226,11 @@ _gnutls_x509_get_dn(asn1_node asn1_struct,
}
if (flags & GNUTLS_X509_DN_FLAG_COMPAT) {
- for (i=0;i<k1;i++) {
- result = append_elements(asn1_struct, asn1_rdn_name, &out_str, i+1, (i==(k1-1))?1:0);
+ for (i = 0; i < k1; i++) {
+ result =
+ append_elements(asn1_struct, asn1_rdn_name,
+ &out_str, i + 1,
+ (i == (k1 - 1)) ? 1 : 0);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -247,7 +238,9 @@ _gnutls_x509_get_dn(asn1_node asn1_struct,
}
} else {
while (k1 > 0) {
- result = append_elements(asn1_struct, asn1_rdn_name, &out_str, k1, k1==1?1:0);
+ result =
+ append_elements(asn1_struct, asn1_rdn_name,
+ &out_str, k1, k1 == 1 ? 1 : 0);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -264,7 +257,6 @@ _gnutls_x509_get_dn(asn1_node asn1_struct,
}
-
/* Parses an X509 DN in the asn1_struct, and puts the output into
* the string buf. The output is an LDAP encoded DN.
*
@@ -274,10 +266,10 @@ _gnutls_x509_get_dn(asn1_node asn1_struct,
int
_gnutls_x509_parse_dn(asn1_node asn1_struct,
const char *asn1_rdn_name, char *buf,
- size_t * buf_size, unsigned flags)
+ size_t *buf_size, unsigned flags)
{
int ret;
- gnutls_datum_t dn = {NULL, 0};
+ gnutls_datum_t dn = { NULL, 0 };
if (buf_size == NULL) {
gnutls_assert();
@@ -293,7 +285,7 @@ _gnutls_x509_parse_dn(asn1_node asn1_struct,
if (ret < 0)
return gnutls_assert_val(ret);
- if (dn.size >= (unsigned int) *buf_size) {
+ if (dn.size >= (unsigned int)*buf_size) {
gnutls_assert();
*buf_size = dn.size + 1;
ret = GNUTLS_E_SHORT_MEMORY_BUFFER;
@@ -310,7 +302,7 @@ _gnutls_x509_parse_dn(asn1_node asn1_struct,
*buf_size = dn.size + 1;
ret = 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(&dn);
return ret;
}
@@ -353,12 +345,10 @@ _gnutls_x509_parse_dn_oid(asn1_node asn1_struct,
snprintf(tmpbuffer1, sizeof(tmpbuffer1), "%s.?%d",
asn1_rdn_name, k1);
else
- snprintf(tmpbuffer1, sizeof(tmpbuffer1), "?%d",
- k1);
+ snprintf(tmpbuffer1, sizeof(tmpbuffer1), "?%d", k1);
len = sizeof(value) - 1;
- result =
- asn1_read_value(asn1_struct, tmpbuffer1, value, &len);
+ result = asn1_read_value(asn1_struct, tmpbuffer1, value, &len);
if (result == ASN1_ELEMENT_NOT_FOUND) {
gnutls_assert();
@@ -410,8 +400,7 @@ _gnutls_x509_parse_dn_oid(asn1_node asn1_struct,
len = sizeof(oid) - 1;
result =
- asn1_read_value(asn1_struct, tmpbuffer3, oid,
- &len);
+ asn1_read_value(asn1_struct, tmpbuffer3, oid, &len);
if (result == ASN1_ELEMENT_NOT_FOUND)
break;
@@ -426,16 +415,13 @@ _gnutls_x509_parse_dn_oid(asn1_node asn1_struct,
/* Read the Value
*/
_gnutls_str_cpy(tmpbuffer3,
- sizeof(tmpbuffer3),
- tmpbuffer2);
+ sizeof(tmpbuffer3), tmpbuffer2);
_gnutls_str_cat(tmpbuffer3,
- sizeof(tmpbuffer3),
- ".value");
+ sizeof(tmpbuffer3), ".value");
result =
_gnutls_x509_read_value(asn1_struct,
- tmpbuffer3,
- &td);
+ tmpbuffer3, &td);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -449,10 +435,8 @@ _gnutls_x509_parse_dn_oid(asn1_node asn1_struct,
} else { /* parse data. raw_flag == 0 */
result =
_gnutls_x509_dn_to_string(oid,
- td.
- data,
- td.
- size,
+ td.data,
+ td.size,
out);
_gnutls_free_datum(&td);
@@ -475,11 +459,10 @@ _gnutls_x509_parse_dn_oid(asn1_node asn1_struct,
result = GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
- cleanup:
+ cleanup:
return result;
}
-
/* Parses an X509 DN in the asn1_struct, and returns the requested
* DN OID.
*
@@ -492,7 +475,7 @@ _gnutls_x509_parse_dn_oid(asn1_node asn1_struct,
int
_gnutls_x509_get_dn_oid(asn1_node asn1_struct,
const char *asn1_rdn_name,
- int indx, void *_oid, size_t * sizeof_oid)
+ int indx, void *_oid, size_t *sizeof_oid)
{
int k2, k1, result;
char tmpbuffer1[MAX_NAME_SIZE];
@@ -513,12 +496,10 @@ _gnutls_x509_get_dn_oid(asn1_node asn1_struct,
snprintf(tmpbuffer1, sizeof(tmpbuffer1), "%s.?%d",
asn1_rdn_name, k1);
else
- snprintf(tmpbuffer1, sizeof(tmpbuffer1), "?%d",
- k1);
+ snprintf(tmpbuffer1, sizeof(tmpbuffer1), "?%d", k1);
len = sizeof(value) - 1;
- result =
- asn1_read_value(asn1_struct, tmpbuffer1, value, &len);
+ result = asn1_read_value(asn1_struct, tmpbuffer1, value, &len);
if (result == ASN1_ELEMENT_NOT_FOUND) {
gnutls_assert();
@@ -570,8 +551,7 @@ _gnutls_x509_get_dn_oid(asn1_node asn1_struct,
len = sizeof(oid) - 1;
result =
- asn1_read_value(asn1_struct, tmpbuffer3, oid,
- &len);
+ asn1_read_value(asn1_struct, tmpbuffer3, oid, &len);
if (result == ASN1_ELEMENT_NOT_FOUND)
break;
@@ -585,11 +565,10 @@ _gnutls_x509_get_dn_oid(asn1_node asn1_struct,
len = strlen(oid) + 1;
- if (*sizeof_oid < (unsigned) len) {
+ if (*sizeof_oid < (unsigned)len) {
*sizeof_oid = len;
gnutls_assert();
- return
- GNUTLS_E_SHORT_MEMORY_BUFFER;
+ return GNUTLS_E_SHORT_MEMORY_BUFFER;
}
memcpy(_oid, oid, len);
@@ -607,7 +586,7 @@ _gnutls_x509_get_dn_oid(asn1_node asn1_struct,
result = GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
- cleanup:
+ cleanup:
return result;
}
@@ -649,7 +628,6 @@ _gnutls_x509_write_attribute(const char *given_oid,
return 0;
}
-
/* Decodes an X.509 Attribute (if multi==1) or an AttributeTypeAndValue
* otherwise.
*
@@ -696,8 +674,7 @@ _gnutls_x509_decode_and_read_attribute(asn1_node asn1_struct,
_gnutls_x509_read_string(asn1_struct, tmpbuffer, value,
ASN1_ETYPE_OCTET_STRING, 0);
else
- result =
- _gnutls_x509_read_value(asn1_struct, tmpbuffer, value);
+ result = _gnutls_x509_read_value(asn1_struct, tmpbuffer, value);
if (result < 0) {
gnutls_assert();
return result;
@@ -729,19 +706,20 @@ _gnutls_x509_set_dn_oid(asn1_node asn1_struct,
/* create the rdnSequence
*/
- result =
- asn1_write_value(asn1_struct, asn1_name, "rdnSequence", 1);
+ result = asn1_write_value(asn1_struct, asn1_name, "rdnSequence", 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
if (asn1_name[0] != 0) {
- _gnutls_str_cpy(asn1_rdn_name, sizeof(asn1_rdn_name), asn1_name);
+ _gnutls_str_cpy(asn1_rdn_name, sizeof(asn1_rdn_name),
+ asn1_name);
_gnutls_str_cat(asn1_rdn_name, sizeof(asn1_rdn_name),
- ".rdnSequence");
+ ".rdnSequence");
} else {
- _gnutls_str_cpy(asn1_rdn_name, sizeof(asn1_rdn_name), "rdnSequence");
+ _gnutls_str_cpy(asn1_rdn_name, sizeof(asn1_rdn_name),
+ "rdnSequence");
}
/* create a new element
@@ -763,7 +741,6 @@ _gnutls_x509_set_dn_oid(asn1_node asn1_struct,
return _gnutls_asn2err(result);
}
-
/* Encode and write the data
*/
_gnutls_str_cpy(tmp, sizeof(tmp), asn1_rdn_name);
@@ -774,8 +751,7 @@ _gnutls_x509_set_dn_oid(asn1_node asn1_struct,
_gnutls_x509_encode_and_write_attribute(given_oid,
asn1_struct,
tmp, name,
- sizeof_name,
- 0);
+ sizeof_name, 0);
} else {
result =
_gnutls_x509_write_attribute(given_oid, asn1_struct,
@@ -790,7 +766,6 @@ _gnutls_x509_set_dn_oid(asn1_node asn1_struct,
return 0;
}
-
/**
* gnutls_x509_rdn_get:
* @idn: should contain a DER encoded RDN sequence
@@ -809,9 +784,7 @@ _gnutls_x509_set_dn_oid(asn1_node asn1_struct,
* updated if the provided buffer is not long enough, otherwise a
* negative error value.
**/
-int
-gnutls_x509_rdn_get(const gnutls_datum_t * idn,
- char *buf, size_t * buf_size)
+int gnutls_x509_rdn_get(const gnutls_datum_t * idn, char *buf, size_t *buf_size)
{
int ret;
gnutls_datum_t out;
@@ -820,7 +793,7 @@ gnutls_x509_rdn_get(const gnutls_datum_t * idn,
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _gnutls_copy_string(&out, (void*)buf, buf_size);
+ ret = _gnutls_copy_string(&out, (void *)buf, buf_size);
gnutls_free(out.data);
if (ret < 0) {
gnutls_assert();
@@ -850,7 +823,7 @@ gnutls_x509_rdn_get(const gnutls_datum_t * idn,
**/
int
gnutls_x509_rdn_get2(const gnutls_datum_t * idn,
- gnutls_datum_t *str, unsigned flags)
+ gnutls_datum_t * str, unsigned flags)
{
int ret;
gnutls_x509_dn_t dn;
@@ -899,7 +872,7 @@ gnutls_x509_rdn_get2(const gnutls_datum_t * idn,
int
gnutls_x509_rdn_get_by_oid(const gnutls_datum_t * idn, const char *oid,
unsigned indx, unsigned int raw_flag,
- void *buf, size_t * buf_size)
+ void *buf, size_t *buf_size)
{
int result;
asn1_node dn = NULL;
@@ -954,7 +927,7 @@ gnutls_x509_rdn_get_by_oid(const gnutls_datum_t * idn, const char *oid,
**/
int
gnutls_x509_rdn_get_oid(const gnutls_datum_t * idn,
- unsigned indx, void *buf, size_t * buf_size)
+ unsigned indx, void *buf, size_t *buf_size)
{
int result;
asn1_node dn = NULL;
@@ -979,8 +952,7 @@ gnutls_x509_rdn_get_oid(const gnutls_datum_t * idn,
}
result =
- _gnutls_x509_get_dn_oid(dn, "rdnSequence", indx, buf,
- buf_size);
+ _gnutls_x509_get_dn_oid(dn, "rdnSequence", indx, buf, buf_size);
asn1_delete_structure(&dn);
return result;
@@ -1043,7 +1015,7 @@ _gnutls_x509_compare_raw_dn(const gnutls_datum_t * dn1,
ret = 1; /* they match */
-cleanup:
+ cleanup:
_gnutls_free_datum(&str1);
_gnutls_free_datum(&str2);
diff --git a/lib/x509/email-verify.c b/lib/x509/email-verify.c
index 053e512872..bedbcd2e20 100644
--- a/lib/x509/email-verify.c
+++ b/lib/x509/email-verify.c
@@ -52,10 +52,11 @@ gnutls_x509_crt_check_email(gnutls_x509_crt_t cert,
/* convert the provided email to ACE-Labels domain. */
ret = _gnutls_idna_email_map(email, strlen(email), &out);
if (ret < 0) {
- _gnutls_debug_log("unable to convert email %s to IDNA format\n", email);
- a_email = (char*)email;
+ _gnutls_debug_log("unable to convert email %s to IDNA format\n",
+ email);
+ a_email = (char *)email;
} else {
- a_email = (char*)out.data;
+ a_email = (char *)out.data;
}
/* try matching against:
@@ -81,17 +82,25 @@ gnutls_x509_crt_check_email(gnutls_x509_crt_t cert,
if (ret == GNUTLS_SAN_RFC822NAME) {
found_rfc822name = 1;
- if (_gnutls_has_embedded_null(rfc822name, rfc822namesize)) {
- _gnutls_debug_log("certificate has %s with embedded null in rfc822name\n", rfc822name);
+ if (_gnutls_has_embedded_null
+ (rfc822name, rfc822namesize)) {
+ _gnutls_debug_log
+ ("certificate has %s with embedded null in rfc822name\n",
+ rfc822name);
continue;
}
if (!_gnutls_str_is_print(rfc822name, rfc822namesize)) {
- _gnutls_debug_log("invalid (non-ASCII) email in certificate %.*s\n", (int)rfc822namesize, rfc822name);
+ _gnutls_debug_log
+ ("invalid (non-ASCII) email in certificate %.*s\n",
+ (int)rfc822namesize, rfc822name);
continue;
}
- ret = _gnutls_hostname_compare(rfc822name, rfc822namesize, a_email, GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS);
+ ret =
+ _gnutls_hostname_compare(rfc822name, rfc822namesize,
+ a_email,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS);
if (ret != 0) {
ret = 1;
goto cleanup;
@@ -107,8 +116,8 @@ gnutls_x509_crt_check_email(gnutls_x509_crt_t cert,
* a single CN must be present */
rfc822namesize = sizeof(rfc822name);
ret = gnutls_x509_crt_get_dn_by_oid
- (cert, GNUTLS_OID_PKCS9_EMAIL, 1, 0, rfc822name,
- &rfc822namesize);
+ (cert, GNUTLS_OID_PKCS9_EMAIL, 1, 0, rfc822name,
+ &rfc822namesize);
if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
ret = 0;
goto cleanup;
@@ -116,26 +125,33 @@ gnutls_x509_crt_check_email(gnutls_x509_crt_t cert,
rfc822namesize = sizeof(rfc822name);
ret = gnutls_x509_crt_get_dn_by_oid
- (cert, GNUTLS_OID_PKCS9_EMAIL, 0, 0, rfc822name,
- &rfc822namesize);
+ (cert, GNUTLS_OID_PKCS9_EMAIL, 0, 0, rfc822name,
+ &rfc822namesize);
if (ret < 0) {
ret = 0;
goto cleanup;
}
if (_gnutls_has_embedded_null(rfc822name, rfc822namesize)) {
- _gnutls_debug_log("certificate has EMAIL %s with embedded null in name\n", rfc822name);
+ _gnutls_debug_log
+ ("certificate has EMAIL %s with embedded null in name\n",
+ rfc822name);
ret = 0;
goto cleanup;
}
if (!_gnutls_str_is_print(rfc822name, rfc822namesize)) {
- _gnutls_debug_log("invalid (non-ASCII) email in certificate DN %.*s\n", (int)rfc822namesize, rfc822name);
+ _gnutls_debug_log
+ ("invalid (non-ASCII) email in certificate DN %.*s\n",
+ (int)rfc822namesize, rfc822name);
ret = 0;
goto cleanup;
}
- ret = _gnutls_hostname_compare(rfc822name, rfc822namesize, a_email, GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS);
+ ret =
+ _gnutls_hostname_compare(rfc822name, rfc822namesize,
+ a_email,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS);
if (ret != 0) {
ret = 1;
goto cleanup;
diff --git a/lib/x509/extensions.c b/lib/x509/extensions.c
index dc333f4d3d..73133e9db4 100644
--- a/lib/x509/extensions.c
+++ b/lib/x509/extensions.c
@@ -35,8 +35,8 @@
int
_gnutls_get_extension(asn1_node asn, const char *root,
- const char *extension_id, int indx,
- gnutls_datum_t * ret, unsigned int *_critical)
+ const char *extension_id, int indx,
+ gnutls_datum_t * ret, unsigned int *_critical)
{
int k, result, len;
char name[MAX_NAME_SIZE], name2[MAX_NAME_SIZE];
@@ -70,8 +70,7 @@ _gnutls_get_extension(asn1_node asn, const char *root,
/* Handle Extension
*/
- if (strcmp(extnID, extension_id) == 0
- && indx == indx_counter++) {
+ if (strcmp(extnID, extension_id) == 0 && indx == indx_counter++) {
/* extension was found
*/
@@ -82,8 +81,7 @@ _gnutls_get_extension(asn1_node asn, const char *root,
len = sizeof(str_critical);
result =
- asn1_read_value(asn, name2,
- str_critical, &len);
+ asn1_read_value(asn, name2, str_critical, &len);
if (result == ASN1_ELEMENT_NOT_FOUND) {
gnutls_assert();
@@ -101,11 +99,9 @@ _gnutls_get_extension(asn1_node asn, const char *root,
/* read the value.
*/
_gnutls_str_cpy(name2, sizeof(name2), name);
- _gnutls_str_cat(name2, sizeof(name2),
- ".extnValue");
+ _gnutls_str_cat(name2, sizeof(name2), ".extnValue");
- result =
- _gnutls_x509_read_value(asn, name2, &value);
+ result = _gnutls_x509_read_value(asn, name2, &value);
if (result < 0) {
gnutls_assert();
return result;
@@ -132,7 +128,7 @@ _gnutls_get_extension(asn1_node asn, const char *root,
static int
get_indx_extension(asn1_node asn, const char *root,
- int indx, gnutls_datum_t * out)
+ int indx, gnutls_datum_t * out)
{
char name[MAX_NAME_SIZE];
int ret;
@@ -140,7 +136,7 @@ get_indx_extension(asn1_node asn, const char *root,
out->data = NULL;
out->size = 0;
- snprintf(name, sizeof(name), "%s.?%d.extnValue", root, indx+1);
+ snprintf(name, sizeof(name), "%s.?%d.extnValue", root, indx + 1);
ret = _gnutls_x509_read_value(asn, name, out);
if (ret < 0)
@@ -155,7 +151,7 @@ _gnutls_x509_crt_get_extension(gnutls_x509_crt_t cert,
gnutls_datum_t * data, unsigned int *critical)
{
return _gnutls_get_extension(cert->cert, "tbsCertificate.extensions",
- extension_id, indx, data, critical);
+ extension_id, indx, data, critical);
}
/**
@@ -177,21 +173,19 @@ _gnutls_x509_crt_get_extension(gnutls_x509_crt_t cert,
**/
int
gnutls_x509_crt_get_extension_data2(gnutls_x509_crt_t cert,
- unsigned indx,
- gnutls_datum_t * data)
+ unsigned indx, gnutls_datum_t * data)
{
return get_indx_extension(cert->cert, "tbsCertificate.extensions",
- indx, data);
+ indx, data);
}
int
_gnutls_x509_crl_get_extension(gnutls_x509_crl_t crl,
const char *extension_id, int indx,
- gnutls_datum_t * data,
- unsigned int *critical)
+ gnutls_datum_t * data, unsigned int *critical)
{
return _gnutls_get_extension(crl->crl, "tbsCertList.crlExtensions",
- extension_id, indx, data, critical);
+ extension_id, indx, data, critical);
}
/**
@@ -213,11 +207,10 @@ _gnutls_x509_crl_get_extension(gnutls_x509_crl_t crl,
**/
int
gnutls_x509_crl_get_extension_data2(gnutls_x509_crl_t crl,
- unsigned indx,
- gnutls_datum_t * data)
+ unsigned indx, gnutls_datum_t * data)
{
return get_indx_extension(crl->crl, "tbsCertList.crlExtensions",
- indx, data);
+ indx, data);
}
/* This function will attempt to return the requested extension OID found in
@@ -227,7 +220,7 @@ gnutls_x509_crl_get_extension_data2(gnutls_x509_crl_t crl,
* be returned.
*/
static int get_extension_oid(asn1_node asn, const char *root,
- unsigned indx, void *oid, size_t * sizeof_oid)
+ unsigned indx, void *oid, size_t *sizeof_oid)
{
int k, result, len;
char name[MAX_NAME_SIZE], name2[MAX_NAME_SIZE];
@@ -259,7 +252,7 @@ static int get_extension_oid(asn1_node asn, const char *root,
if (indx == indx_counter++) {
len = strlen(extnID) + 1;
- if (*sizeof_oid < (unsigned) len) {
+ if (*sizeof_oid < (unsigned)len) {
*sizeof_oid = len;
gnutls_assert();
return GNUTLS_E_SHORT_MEMORY_BUFFER;
@@ -271,7 +264,6 @@ static int get_extension_oid(asn1_node asn, const char *root,
return 0;
}
-
}
while (1);
@@ -291,8 +283,7 @@ static int get_extension_oid(asn1_node asn, const char *root,
*/
int
_gnutls_x509_crt_get_extension_oid(gnutls_x509_crt_t cert,
- int indx, void *oid,
- size_t * sizeof_oid)
+ int indx, void *oid, size_t *sizeof_oid)
{
return get_extension_oid(cert->cert, "tbsCertificate.extensions",
indx, oid, sizeof_oid);
@@ -300,8 +291,7 @@ _gnutls_x509_crt_get_extension_oid(gnutls_x509_crt_t cert,
int
_gnutls_x509_crl_get_extension_oid(gnutls_x509_crl_t crl,
- int indx, void *oid,
- size_t * sizeof_oid)
+ int indx, void *oid, size_t *sizeof_oid)
{
return get_extension_oid(crl->crl, "tbsCertList.crlExtensions",
indx, oid, sizeof_oid);
@@ -415,8 +405,8 @@ overwrite_extension(asn1_node asn, const char *root, unsigned int indx,
int
_gnutls_set_extension(asn1_node asn, const char *root,
- const char *ext_id,
- const gnutls_datum_t * ext_data, unsigned int critical)
+ const char *ext_id,
+ const gnutls_datum_t * ext_data, unsigned int critical)
{
int result = 0;
int k, len;
@@ -466,25 +456,21 @@ _gnutls_set_extension(asn1_node asn, const char *root,
/* extension was found
*/
return overwrite_extension(asn, root, k,
- ext_data,
- critical);
+ ext_data, critical);
}
-
}
while (0);
}
while (1);
if (result == ASN1_ELEMENT_NOT_FOUND) {
- return add_extension(asn, root, ext_id, ext_data,
- critical);
+ return add_extension(asn, root, ext_id, ext_data, critical);
} else {
gnutls_assert();
return _gnutls_asn2err(result);
}
-
return 0;
}
@@ -503,7 +489,7 @@ _gnutls_x509_crt_set_extension(gnutls_x509_crt_t cert,
cert->use_extensions = 1;
return _gnutls_set_extension(cert->cert, "tbsCertificate.extensions",
- ext_id, ext_data, critical);
+ ext_id, ext_data, critical);
}
int
@@ -512,8 +498,8 @@ _gnutls_x509_crl_set_extension(gnutls_x509_crl_t crl,
const gnutls_datum_t * ext_data,
unsigned int critical)
{
- return _gnutls_set_extension(crl->crl, "tbsCertList.crlExtensions", ext_id,
- ext_data, critical);
+ return _gnutls_set_extension(crl->crl, "tbsCertList.crlExtensions",
+ ext_id, ext_data, critical);
}
int
@@ -531,8 +517,7 @@ _gnutls_x509_crq_set_extension(gnutls_x509_crq_t crq,
result =
gnutls_x509_crq_get_attribute_by_oid(crq,
"1.2.840.113549.1.9.14",
- 0, NULL,
- &extensions_size);
+ 0, NULL, &extensions_size);
if (result == GNUTLS_E_SHORT_MEMORY_BUFFER) {
extensions = gnutls_malloc(extensions_size);
if (extensions == NULL) {
@@ -557,8 +542,7 @@ _gnutls_x509_crq_set_extension(gnutls_x509_crq_t crq,
}
result =
- asn1_create_element(_gnutls_get_pkix(), "PKIX1.Extensions",
- &c2);
+ asn1_create_element(_gnutls_get_pkix(), "PKIX1.Extensions", &c2);
if (result != ASN1_SUCCESS) {
gnutls_assert();
gnutls_free(extensions);
@@ -568,7 +552,7 @@ _gnutls_x509_crq_set_extension(gnutls_x509_crq_t crq,
if (extensions_size > 0) {
result =
_asn1_strict_der_decode(&c2, extensions, extensions_size,
- NULL);
+ NULL);
gnutls_free(extensions);
if (result != ASN1_SUCCESS) {
gnutls_assert();
@@ -603,7 +587,6 @@ _gnutls_x509_crq_set_extension(gnutls_x509_crq_t crq,
return result;
}
-
return 0;
}
@@ -611,7 +594,7 @@ _gnutls_x509_crq_set_extension(gnutls_x509_crq_t crq,
*/
int
_gnutls_x509_ext_extract_number(uint8_t * number,
- size_t * _nr_size,
+ size_t *_nr_size,
uint8_t * extnValue, int extnValueLen)
{
asn1_node ext = NULL;
@@ -688,8 +671,8 @@ _gnutls_x509_ext_gen_number(const uint8_t * number, size_t nr_size,
int
_gnutls_write_general_name(asn1_node ext, const char *ext_name,
- gnutls_x509_subject_alt_name_t type,
- const void *data, unsigned int data_size)
+ gnutls_x509_subject_alt_name_t type,
+ const void *data, unsigned int data_size)
{
const char *str;
int result;
@@ -697,7 +680,7 @@ _gnutls_write_general_name(asn1_node ext, const char *ext_name,
if (data == NULL) {
if (data_size == 0)
- data = (void*)"";
+ data = (void *)"";
else
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -743,8 +726,8 @@ _gnutls_write_general_name(asn1_node ext, const char *ext_name,
int
_gnutls_write_new_general_name(asn1_node ext, const char *ext_name,
- gnutls_x509_subject_alt_name_t type,
- const void *data, unsigned int data_size)
+ gnutls_x509_subject_alt_name_t type,
+ const void *data, unsigned int data_size)
{
int result;
char name[128];
@@ -762,8 +745,7 @@ _gnutls_write_new_general_name(asn1_node ext, const char *ext_name,
_gnutls_str_cat(name, sizeof(name), ".?LAST");
}
- result = _gnutls_write_general_name(ext, name, type,
- data, data_size);
+ result = _gnutls_write_general_name(ext, name, type, data, data_size);
if (result < 0) {
gnutls_assert();
return result;
@@ -774,8 +756,8 @@ _gnutls_write_new_general_name(asn1_node ext, const char *ext_name,
int
_gnutls_write_new_othername(asn1_node ext, const char *ext_name,
- const char *oid,
- const void *data, unsigned int data_size)
+ const char *oid,
+ const void *data, unsigned int data_size)
{
int result;
char name[128];
@@ -843,17 +825,19 @@ _gnutls_x509_ext_gen_subject_alt_name(gnutls_x509_subject_alt_name_t
return ret;
}
- if (prev_der_ext && prev_der_ext->data != NULL &&
- prev_der_ext->size != 0) {
+ if (prev_der_ext && prev_der_ext->data != NULL &&
+ prev_der_ext->size != 0) {
- ret = gnutls_x509_ext_import_subject_alt_names(prev_der_ext, sans, 0);
+ ret =
+ gnutls_x509_ext_import_subject_alt_names(prev_der_ext, sans,
+ 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
}
- name.data = (void*)data;
+ name.data = (void *)data;
name.size = data_size;
ret = gnutls_subject_alt_names_set(sans, type, &name, othername_oid);
if (ret < 0) {
@@ -868,7 +852,7 @@ _gnutls_x509_ext_gen_subject_alt_name(gnutls_x509_subject_alt_name_t
}
ret = 0;
-cleanup:
+ cleanup:
if (sans != NULL)
gnutls_subject_alt_names_deinit(sans);
@@ -889,7 +873,7 @@ _gnutls_x509_ext_gen_auth_key_id(const void *id, size_t id_size,
if (ret < 0)
return gnutls_assert_val(ret);
- l_id.data = (void*)id;
+ l_id.data = (void *)id;
l_id.size = id_size;
ret = gnutls_x509_aki_set_id(aki, &l_id);
if (ret < 0) {
diff --git a/lib/x509/hostname-verify.c b/lib/x509/hostname-verify.c
index 6ef8ba0303..c3c6a3e70a 100644
--- a/lib/x509/hostname-verify.c
+++ b/lib/x509/hostname-verify.c
@@ -44,14 +44,12 @@
* Returns: non-zero for a successful match, and zero on failure.
**/
unsigned
-gnutls_x509_crt_check_hostname(gnutls_x509_crt_t cert,
- const char *hostname)
+gnutls_x509_crt_check_hostname(gnutls_x509_crt_t cert, const char *hostname)
{
return gnutls_x509_crt_check_hostname2(cert, hostname, 0);
}
-static int
-check_ip(gnutls_x509_crt_t cert, const void *ip, unsigned ip_size)
+static int check_ip(gnutls_x509_crt_t cert, const void *ip, unsigned ip_size)
{
char temp[16];
size_t temp_size;
@@ -70,11 +68,11 @@ check_ip(gnutls_x509_crt_t cert, const void *ip, unsigned ip_size)
temp_size = sizeof(temp);
ret = gnutls_x509_crt_get_subject_alt_name(cert, i,
temp,
- &temp_size,
- NULL);
+ &temp_size, NULL);
if (ret == GNUTLS_SAN_IPADDRESS) {
- if (temp_size == ip_size && memcmp(temp, ip, ip_size) == 0)
+ if (temp_size == ip_size
+ && memcmp(temp, ip, ip_size) == 0)
return 1;
} else if (ret == GNUTLS_E_SHORT_MEMORY_BUFFER) {
ret = 0;
@@ -165,7 +163,8 @@ gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert,
/* check whether @hostname is an ip address */
if (!(flags & GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES) &&
- ((p=strchr(hostname, ':')) != NULL || inet_pton(AF_INET, hostname, &ipv4) != 0)) {
+ ((p = strchr(hostname, ':')) != NULL
+ || inet_pton(AF_INET, hostname, &ipv4) != 0)) {
if (p != NULL) {
struct in6_addr ipv6;
@@ -187,12 +186,14 @@ gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert,
hostname_fallback:
/* convert the provided hostname to ACE-Labels domain. */
- ret = gnutls_idna_map (hostname, strlen(hostname), &out, 0);
+ ret = gnutls_idna_map(hostname, strlen(hostname), &out, 0);
if (ret < 0) {
- _gnutls_debug_log("unable to convert hostname %s to IDNA format\n", hostname);
- a_hostname = (char*)hostname;
+ _gnutls_debug_log
+ ("unable to convert hostname %s to IDNA format\n",
+ hostname);
+ a_hostname = (char *)hostname;
} else {
- a_hostname = (char*)out.data;
+ a_hostname = (char *)out.data;
}
/* try matching against:
@@ -214,23 +215,28 @@ gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert,
dnsnamesize = sizeof(dnsname);
ret = gnutls_x509_crt_get_subject_alt_name(cert, i,
dnsname,
- &dnsnamesize,
- NULL);
+ &dnsnamesize, NULL);
if (ret == GNUTLS_SAN_DNSNAME) {
found_dnsname = 1;
if (_gnutls_has_embedded_null(dnsname, dnsnamesize)) {
- _gnutls_debug_log("certificate has %s with embedded null in name\n", dnsname);
+ _gnutls_debug_log
+ ("certificate has %s with embedded null in name\n",
+ dnsname);
continue;
}
if (!_gnutls_str_is_print(dnsname, dnsnamesize)) {
- _gnutls_debug_log("invalid (non-ASCII) name in certificate %.*s\n", (int)dnsnamesize, dnsname);
+ _gnutls_debug_log
+ ("invalid (non-ASCII) name in certificate %.*s\n",
+ (int)dnsnamesize, dnsname);
continue;
}
- ret = _gnutls_hostname_compare(dnsname, dnsnamesize, a_hostname, flags);
+ ret =
+ _gnutls_hostname_compare(dnsname, dnsnamesize,
+ a_hostname, flags);
if (ret != 0) {
ret = 1;
goto cleanup;
@@ -241,7 +247,9 @@ gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert,
}
}
- if (!have_other_addresses && !found_dnsname && _gnutls_check_key_purpose(cert, GNUTLS_KP_TLS_WWW_SERVER, 0) != 0) {
+ if (!have_other_addresses && !found_dnsname
+ && _gnutls_check_key_purpose(cert, GNUTLS_KP_TLS_WWW_SERVER,
+ 0) != 0) {
/* did not get the necessary extension, use CN instead, if the
* certificate would have been acceptable for a TLS WWW server purpose.
* That is because only for that purpose the CN is a valid field to
@@ -252,8 +260,7 @@ gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert,
* a single CN must be present */
dnsnamesize = sizeof(dnsname);
ret = gnutls_x509_crt_get_dn_by_oid
- (cert, OID_X520_COMMON_NAME, 1, 0, dnsname,
- &dnsnamesize);
+ (cert, OID_X520_COMMON_NAME, 1, 0, dnsname, &dnsnamesize);
if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
ret = 0;
goto cleanup;
@@ -261,26 +268,31 @@ gnutls_x509_crt_check_hostname2(gnutls_x509_crt_t cert,
dnsnamesize = sizeof(dnsname);
ret = gnutls_x509_crt_get_dn_by_oid
- (cert, OID_X520_COMMON_NAME, 0, 0, dnsname,
- &dnsnamesize);
+ (cert, OID_X520_COMMON_NAME, 0, 0, dnsname, &dnsnamesize);
if (ret < 0) {
ret = 0;
goto cleanup;
}
if (_gnutls_has_embedded_null(dnsname, dnsnamesize)) {
- _gnutls_debug_log("certificate has CN %s with embedded null in name\n", dnsname);
+ _gnutls_debug_log
+ ("certificate has CN %s with embedded null in name\n",
+ dnsname);
ret = 0;
goto cleanup;
}
if (!_gnutls_str_is_print(dnsname, dnsnamesize)) {
- _gnutls_debug_log("invalid (non-ASCII) name in certificate CN %.*s\n", (int)dnsnamesize, dnsname);
+ _gnutls_debug_log
+ ("invalid (non-ASCII) name in certificate CN %.*s\n",
+ (int)dnsnamesize, dnsname);
ret = 0;
goto cleanup;
}
- ret = _gnutls_hostname_compare(dnsname, dnsnamesize, a_hostname, flags);
+ ret =
+ _gnutls_hostname_compare(dnsname, dnsnamesize, a_hostname,
+ flags);
if (ret != 0) {
ret = 1;
goto cleanup;
diff --git a/lib/x509/ip-in-cidr.h b/lib/x509/ip-in-cidr.h
index d5e26eb948..3a8c0bae8a 100644
--- a/lib/x509/ip-in-cidr.h
+++ b/lib/x509/ip-in-cidr.h
@@ -22,7 +22,7 @@
*/
#ifndef GNUTLS_LIB_X509_IP_IN_CIDR_H
-#define GNUTLS_LIB_X509_IP_IN_CIDR_H
+# define GNUTLS_LIB_X509_IP_IN_CIDR_H
/*-
* ip_in_cidr:
@@ -35,24 +35,29 @@
*
* Returns: 1 if @ip lies within @cidr, 0 otherwise
-*/
-static unsigned ip_in_cidr(const gnutls_datum_t *ip, const gnutls_datum_t *cidr)
+static unsigned ip_in_cidr(const gnutls_datum_t * ip,
+ const gnutls_datum_t * cidr)
{
unsigned byte;
-#ifndef BUILD_IN_TESTS
+# ifndef BUILD_IN_TESTS
char str_ip[48];
char str_cidr[97];
_gnutls_hard_log("matching %.*s with CIDR constraint %.*s\n",
- (int) sizeof(str_ip),
- _gnutls_ip_to_string(ip->data, ip->size, str_ip, sizeof(str_ip)),
- (int) sizeof(str_cidr),
- _gnutls_cidr_to_string(cidr->data, cidr->size, str_cidr, sizeof(str_cidr)));
-#endif
+ (int)sizeof(str_ip),
+ _gnutls_ip_to_string(ip->data, ip->size, str_ip,
+ sizeof(str_ip)),
+ (int)sizeof(str_cidr),
+ _gnutls_cidr_to_string(cidr->data, cidr->size,
+ str_cidr, sizeof(str_cidr)));
+# endif
for (byte = 0; byte < ip->size; byte++)
- if (((ip->data[byte] ^ cidr->data[byte]) & cidr->data[ip->size+byte]) != 0)
+ if (((ip->data[byte] ^ cidr->data[byte]) & cidr->data[ip->size +
+ byte]) !=
+ 0)
return 0;
- return 1; /* match */
+ return 1; /* match */
}
-#endif /* GNUTLS_LIB_X509_IP_IN_CIDR_H */
+#endif /* GNUTLS_LIB_X509_IP_IN_CIDR_H */
diff --git a/lib/x509/ip.c b/lib/x509/ip.c
index c4cb008314..06d0fe90c1 100644
--- a/lib/x509/ip.c
+++ b/lib/x509/ip.c
@@ -38,28 +38,43 @@
int _gnutls_mask_to_prefix(const unsigned char *mask, unsigned mask_size)
{
unsigned i, prefix_length = 0;
- for (i=0; i<mask_size; i++) {
+ for (i = 0; i < mask_size; i++) {
if (mask[i] == 0xFF) {
prefix_length += 8;
} else {
- switch(mask[i]) {
- case 0xFE: prefix_length += 7; break;
- case 0xFC: prefix_length += 6; break;
- case 0xF8: prefix_length += 5; break;
- case 0xF0: prefix_length += 4; break;
- case 0xE0: prefix_length += 3; break;
- case 0xC0: prefix_length += 2; break;
- case 0x80: prefix_length += 1; break;
- case 0x00: break;
- default:
- return -1;
+ switch (mask[i]) {
+ case 0xFE:
+ prefix_length += 7;
+ break;
+ case 0xFC:
+ prefix_length += 6;
+ break;
+ case 0xF8:
+ prefix_length += 5;
+ break;
+ case 0xF0:
+ prefix_length += 4;
+ break;
+ case 0xE0:
+ prefix_length += 3;
+ break;
+ case 0xC0:
+ prefix_length += 2;
+ break;
+ case 0x80:
+ prefix_length += 1;
+ break;
+ case 0x00:
+ break;
+ default:
+ return -1;
}
break;
}
}
i++;
// mask is invalid, if there follows something else than 0x00
- for ( ; i<mask_size; i++) {
+ for (; i < mask_size; i++) {
if (mask[i] != 0)
return -1;
}
@@ -79,7 +94,8 @@ int _gnutls_mask_to_prefix(const unsigned char *mask, unsigned mask_size)
*
* Returns: Address of result string.
-*/
-const char *_gnutls_ip_to_string(const void *_ip, unsigned int ip_size, char *out, unsigned int out_size)
+const char *_gnutls_ip_to_string(const void *_ip, unsigned int ip_size,
+ char *out, unsigned int out_size)
{
if (ip_size != 4 && ip_size != 16) {
@@ -118,7 +134,8 @@ const char *_gnutls_ip_to_string(const void *_ip, unsigned int ip_size, char *ou
*
* Returns: Address of result string.
-*/
-const char *_gnutls_cidr_to_string(const void *_ip, unsigned int ip_size, char *out, unsigned int out_size)
+const char *_gnutls_cidr_to_string(const void *_ip, unsigned int ip_size,
+ char *out, unsigned int out_size)
{
const unsigned char *ip = _ip;
char tmp[64];
@@ -133,12 +150,14 @@ const char *_gnutls_cidr_to_string(const void *_ip, unsigned int ip_size, char *
p = inet_ntop(AF_INET, ip, tmp, sizeof(tmp));
if (p)
- snprintf(out, out_size, "%s/%d", tmp, _gnutls_mask_to_prefix(ip+4, 4));
+ snprintf(out, out_size, "%s/%d", tmp,
+ _gnutls_mask_to_prefix(ip + 4, 4));
} else {
p = inet_ntop(AF_INET6, ip, tmp, sizeof(tmp));
if (p)
- snprintf(out, out_size, "%s/%d", tmp, _gnutls_mask_to_prefix(ip+16, 16));
+ snprintf(out, out_size, "%s/%d", tmp,
+ _gnutls_mask_to_prefix(ip + 16, 16));
}
if (p == NULL)
@@ -147,7 +166,8 @@ const char *_gnutls_cidr_to_string(const void *_ip, unsigned int ip_size, char *
return out;
}
-static void prefix_to_mask(unsigned prefix, unsigned char *mask, size_t mask_size)
+static void prefix_to_mask(unsigned prefix, unsigned char *mask,
+ size_t mask_size)
{
int i;
unsigned j;
@@ -172,7 +192,8 @@ static void prefix_to_mask(unsigned prefix, unsigned char *mask, size_t mask_siz
*
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a negative error value.
-*/
-int _gnutls_mask_ip(unsigned char *ip, const unsigned char *mask, unsigned ipsize)
+int _gnutls_mask_ip(unsigned char *ip, const unsigned char *mask,
+ unsigned ipsize)
{
unsigned i;
@@ -202,7 +223,7 @@ int _gnutls_mask_ip(unsigned char *ip, const unsigned char *mask, unsigned ipsiz
*
* Since: 3.5.4
*/
-int gnutls_x509_cidr_to_rfc5280(const char *cidr, gnutls_datum_t *cidr_rfc5280)
+int gnutls_x509_cidr_to_rfc5280(const char *cidr, gnutls_datum_t * cidr_rfc5280)
{
unsigned iplength, prefix;
int ret;
@@ -212,34 +233,36 @@ int gnutls_x509_cidr_to_rfc5280(const char *cidr, gnutls_datum_t *cidr_rfc5280)
p = strchr(cidr, '/');
if (p != NULL) {
- prefix = strtol(p+1, &p_end, 10);
- if (prefix == 0 && p_end == p+1) {
- _gnutls_debug_log("Cannot parse prefix given in CIDR %s\n", cidr);
+ prefix = strtol(p + 1, &p_end, 10);
+ if (prefix == 0 && p_end == p + 1) {
+ _gnutls_debug_log
+ ("Cannot parse prefix given in CIDR %s\n", cidr);
gnutls_assert();
return GNUTLS_E_MALFORMED_CIDR;
}
- unsigned length = p-cidr+1;
+ unsigned length = p - cidr + 1;
cidr_tmp = gnutls_malloc(length);
if (cidr_tmp == NULL) {
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
memcpy(cidr_tmp, cidr, length);
- cidr_tmp[length-1] = 0;
+ cidr_tmp[length - 1] = 0;
} else {
_gnutls_debug_log("No prefix given in CIDR %s\n", cidr);
gnutls_assert();
return GNUTLS_E_MALFORMED_CIDR;
}
- if (strchr(cidr, ':') != 0) { /* IPv6 */
+ if (strchr(cidr, ':') != 0) { /* IPv6 */
iplength = 16;
- } else { /* IPv4 */
+ } else { /* IPv4 */
iplength = 4;
}
- cidr_rfc5280->size = 2*iplength;
+ cidr_rfc5280->size = 2 * iplength;
- if (prefix > iplength*8) {
- _gnutls_debug_log("Invalid prefix given in CIDR %s (%d)\n", cidr, prefix);
+ if (prefix > iplength * 8) {
+ _gnutls_debug_log("Invalid prefix given in CIDR %s (%d)\n",
+ cidr, prefix);
ret = gnutls_assert_val(GNUTLS_E_MALFORMED_CIDR);
goto cleanup;
}
@@ -250,7 +273,9 @@ int gnutls_x509_cidr_to_rfc5280(const char *cidr, gnutls_datum_t *cidr_rfc5280)
goto cleanup;
}
- ret = inet_pton(iplength == 4 ? AF_INET : AF_INET6, cidr_tmp, cidr_rfc5280->data);
+ ret =
+ inet_pton(iplength == 4 ? AF_INET : AF_INET6, cidr_tmp,
+ cidr_rfc5280->data);
if (ret == 0) {
_gnutls_debug_log("Cannot parse IP from CIDR %s\n", cidr_tmp);
ret = gnutls_assert_val(GNUTLS_E_MALFORMED_CIDR);
@@ -258,11 +283,12 @@ int gnutls_x509_cidr_to_rfc5280(const char *cidr, gnutls_datum_t *cidr_rfc5280)
}
prefix_to_mask(prefix, &cidr_rfc5280->data[iplength], iplength);
- _gnutls_mask_ip(cidr_rfc5280->data, &cidr_rfc5280->data[iplength], iplength);
+ _gnutls_mask_ip(cidr_rfc5280->data, &cidr_rfc5280->data[iplength],
+ iplength);
ret = GNUTLS_E_SUCCESS;
-cleanup:
+ cleanup:
gnutls_free(cidr_tmp);
return ret;
}
diff --git a/lib/x509/ip.h b/lib/x509/ip.h
index 2c8569b889..7bea20e4a3 100644
--- a/lib/x509/ip.h
+++ b/lib/x509/ip.h
@@ -22,18 +22,21 @@
*/
#ifndef GNUTLS_LIB_X509_IP_H
-#define GNUTLS_LIB_X509_IP_H
+# define GNUTLS_LIB_X509_IP_H
// for documentation, see the definition
int _gnutls_mask_to_prefix(const unsigned char *mask, unsigned mask_size);
// for documentation, see the definition
-const char *_gnutls_ip_to_string(const void *_ip, unsigned int ip_size, char *out, unsigned int out_size);
+const char *_gnutls_ip_to_string(const void *_ip, unsigned int ip_size,
+ char *out, unsigned int out_size);
// for documentation, see the definition
-const char *_gnutls_cidr_to_string(const void *_ip, unsigned int ip_size, char *out, unsigned int out_size);
+const char *_gnutls_cidr_to_string(const void *_ip, unsigned int ip_size,
+ char *out, unsigned int out_size);
// for documentation, see the definition
-int _gnutls_mask_ip(unsigned char *ip, const unsigned char *mask, unsigned ipsize);
+int _gnutls_mask_ip(unsigned char *ip, const unsigned char *mask,
+ unsigned ipsize);
-#endif /* GNUTLS_LIB_X509_IP_H */
+#endif /* GNUTLS_LIB_X509_IP_H */
diff --git a/lib/x509/key_decode.c b/lib/x509/key_decode.c
index 44e4297db0..add24b8bd9 100644
--- a/lib/x509/key_decode.c
+++ b/lib/x509/key_decode.c
@@ -45,7 +45,7 @@ static int _gnutls_x509_read_ecdh_pubkey(gnutls_ecc_curve_t curve,
uint8_t * der, int dersize,
gnutls_pk_params_st * params);
static int _gnutls_x509_read_gost_pubkey(uint8_t * der, int dersize,
- gnutls_pk_params_st * params);
+ gnutls_pk_params_st * params);
static int
_gnutls_x509_read_dsa_params(uint8_t * der, int dersize,
@@ -78,9 +78,7 @@ _gnutls_x509_read_rsa_pubkey(uint8_t * der, int dersize,
return _gnutls_asn2err(result);
}
-
- if (_gnutls_x509_read_int(spk, "modulus",
- &params->params[0]) < 0) {
+ if (_gnutls_x509_read_int(spk, "modulus", &params->params[0]) < 0) {
gnutls_assert();
asn1_delete_structure(&spk);
return GNUTLS_E_ASN1_GENERIC_ERROR;
@@ -143,7 +141,7 @@ int _gnutls_x509_read_ecdh_pubkey(gnutls_ecc_curve_t curve,
* encoded into OCTET STRING. */
static int
_gnutls_x509_read_gost_pubkey(uint8_t * der, int dersize,
- gnutls_pk_params_st * params)
+ gnutls_pk_params_st * params)
{
int ret;
int len;
@@ -192,8 +190,7 @@ _gnutls_x509_read_dsa_params(uint8_t * der, int dersize,
asn1_node spk = NULL;
if ((result = asn1_create_element
- (_gnutls_get_pkix(), "PKIX1.Dss-Parms",
- &spk)) != ASN1_SUCCESS) {
+ (_gnutls_get_pkix(), "PKIX1.Dss-Parms", &spk)) != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
@@ -240,7 +237,7 @@ _gnutls_x509_read_dsa_params(uint8_t * der, int dersize,
asn1_delete_structure(&spk);
- params->params_nr = 3; /* public key is missing */
+ params->params_nr = 3; /* public key is missing */
params->algo = GNUTLS_PK_DSA;
return 0;
@@ -251,8 +248,7 @@ _gnutls_x509_read_dsa_params(uint8_t * der, int dersize,
* params[0-4]. It does NOT set params_nr.
*/
int
-_gnutls_x509_read_ecc_params(uint8_t * der, int dersize,
- unsigned int * curve)
+_gnutls_x509_read_ecc_params(uint8_t * der, int dersize, unsigned int *curve)
{
int ret;
asn1_node spk = NULL;
@@ -293,7 +289,7 @@ _gnutls_x509_read_ecc_params(uint8_t * der, int dersize,
ret = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&spk);
@@ -367,7 +363,9 @@ _gnutls_x509_read_rsa_pss_params(uint8_t * der, int dersize,
/* Check if maskGenAlgorithm.parameters does exist and
* is identical to hashAlgorithm */
- result = _gnutls_x509_read_value(spk, "maskGenAlgorithm.parameters", &value);
+ result =
+ _gnutls_x509_read_value(spk, "maskGenAlgorithm.parameters",
+ &value);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -381,7 +379,8 @@ _gnutls_x509_read_rsa_pss_params(uint8_t * der, int dersize,
goto cleanup;
}
- result = _asn1_strict_der_decode(&c2, value.data, value.size, NULL);
+ result =
+ _asn1_strict_der_decode(&c2, value.data, value.size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -499,8 +498,7 @@ _gnutls_x509_read_gost_params(uint8_t * der, int dersize,
/* Read the digest */
oid_size = sizeof(oid);
ret = asn1_read_value(spk, "digestParamSet", oid, &oid_size);
- if (ret != ASN1_SUCCESS &&
- ret != ASN1_ELEMENT_NOT_FOUND) {
+ if (ret != ASN1_SUCCESS && ret != ASN1_ELEMENT_NOT_FOUND) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
goto cleanup;
@@ -509,8 +507,7 @@ _gnutls_x509_read_gost_params(uint8_t * der, int dersize,
oid_size = sizeof(oid);
ret = asn1_read_value(spk, "encryptionParamSet", oid, &oid_size);
- if (ret != ASN1_SUCCESS &&
- ret != ASN1_ELEMENT_NOT_FOUND) {
+ if (ret != ASN1_SUCCESS && ret != ASN1_ELEMENT_NOT_FOUND) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
goto cleanup;
@@ -531,7 +528,7 @@ _gnutls_x509_read_gost_params(uint8_t * der, int dersize,
params->gost_params = param;
ret = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&spk);
@@ -556,7 +553,7 @@ int _gnutls_x509_read_pubkey(gnutls_pk_algorithm_t algo, uint8_t * der,
}
break;
case GNUTLS_PK_DSA:
- if (params->params_nr != 3) /* _gnutls_x509_read_pubkey_params must have been called */
+ if (params->params_nr != 3) /* _gnutls_x509_read_pubkey_params must have been called */
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
ret = _gnutls_x509_read_dsa_pubkey(der, dersize, params);
@@ -573,16 +570,24 @@ int _gnutls_x509_read_pubkey(gnutls_pk_algorithm_t algo, uint8_t * der,
}
break;
case GNUTLS_PK_EDDSA_ED25519:
- ret = _gnutls_x509_read_eddsa_pubkey(GNUTLS_ECC_CURVE_ED25519, der, dersize, params);
+ ret =
+ _gnutls_x509_read_eddsa_pubkey(GNUTLS_ECC_CURVE_ED25519,
+ der, dersize, params);
break;
case GNUTLS_PK_EDDSA_ED448:
- ret = _gnutls_x509_read_eddsa_pubkey(GNUTLS_ECC_CURVE_ED448, der, dersize, params);
+ ret =
+ _gnutls_x509_read_eddsa_pubkey(GNUTLS_ECC_CURVE_ED448, der,
+ dersize, params);
break;
case GNUTLS_PK_ECDH_X25519:
- ret = _gnutls_x509_read_ecdh_pubkey(GNUTLS_ECC_CURVE_X25519, der, dersize, params);
+ ret =
+ _gnutls_x509_read_ecdh_pubkey(GNUTLS_ECC_CURVE_X25519, der,
+ dersize, params);
break;
case GNUTLS_PK_ECDH_X448:
- ret = _gnutls_x509_read_ecdh_pubkey(GNUTLS_ECC_CURVE_X448, der, dersize, params);
+ ret =
+ _gnutls_x509_read_ecdh_pubkey(GNUTLS_ECC_CURVE_X448, der,
+ dersize, params);
break;
case GNUTLS_PK_GOST_01:
case GNUTLS_PK_GOST_12_256:
@@ -612,15 +617,18 @@ int _gnutls_x509_read_pubkey_params(gnutls_pk_algorithm_t algo,
case GNUTLS_PK_EDDSA_ED448:
return 0;
case GNUTLS_PK_RSA_PSS:
- return _gnutls_x509_read_rsa_pss_params(der, dersize, &params->spki);
+ return _gnutls_x509_read_rsa_pss_params(der, dersize,
+ &params->spki);
case GNUTLS_PK_DSA:
return _gnutls_x509_read_dsa_params(der, dersize, params);
case GNUTLS_PK_EC:
- return _gnutls_x509_read_ecc_params(der, dersize, &params->curve);
+ return _gnutls_x509_read_ecc_params(der, dersize,
+ &params->curve);
case GNUTLS_PK_GOST_01:
case GNUTLS_PK_GOST_12_256:
case GNUTLS_PK_GOST_12_512:
- return _gnutls_x509_read_gost_params(der, dersize, params, algo);
+ return _gnutls_x509_read_gost_params(der, dersize, params,
+ algo);
default:
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
}
@@ -631,25 +639,30 @@ int _gnutls_x509_read_pubkey_params(gnutls_pk_algorithm_t algo,
int _gnutls_x509_check_pubkey_params(gnutls_pk_params_st * params)
{
switch (params->algo) {
- case GNUTLS_PK_RSA_PSS: {
- unsigned bits;
- const mac_entry_st *me;
- size_t hash_size;
-
- if (params->spki.pk == GNUTLS_PK_UNKNOWN) /* no params present */
+ case GNUTLS_PK_RSA_PSS:{
+ unsigned bits;
+ const mac_entry_st *me;
+ size_t hash_size;
+
+ if (params->spki.pk == GNUTLS_PK_UNKNOWN) /* no params present */
+ return 0;
+
+ bits = pubkey_to_bits(params);
+
+ me = hash_to_entry(params->spki.rsa_pss_dig);
+ if (unlikely(me == NULL))
+ return
+ gnutls_assert_val
+ (GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
+
+ hash_size = _gnutls_hash_get_algo_len(me);
+ if (hash_size + params->spki.salt_size + 2 >
+ (bits + 7) / 8)
+ return
+ gnutls_assert_val
+ (GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
return 0;
-
- bits = pubkey_to_bits(params);
-
- me = hash_to_entry(params->spki.rsa_pss_dig);
- if (unlikely(me == NULL))
- return gnutls_assert_val(GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
-
- hash_size = _gnutls_hash_get_algo_len(me);
- if (hash_size + params->spki.salt_size + 2 > (bits + 7) / 8)
- return gnutls_assert_val(GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
- return 0;
- }
+ }
case GNUTLS_PK_RSA:
case GNUTLS_PK_DSA:
case GNUTLS_PK_ECDSA:
diff --git a/lib/x509/key_encode.c b/lib/x509/key_encode.c
index 8428cd1733..4aa493b7cc 100644
--- a/lib/x509/key_encode.c
+++ b/lib/x509/key_encode.c
@@ -40,9 +40,9 @@ static int _gnutls_x509_write_dsa_params(const gnutls_pk_params_st * params,
static int _gnutls_x509_write_dsa_pubkey(const gnutls_pk_params_st * params,
gnutls_datum_t * der);
static int _gnutls_x509_write_gost_params(const gnutls_pk_params_st * params,
- gnutls_datum_t * der);
+ gnutls_datum_t * der);
static int _gnutls_x509_write_gost_pubkey(const gnutls_pk_params_st * params,
- gnutls_datum_t * der);
+ gnutls_datum_t * der);
/*
* some x509 certificate functions that relate to MPI parameter
@@ -74,16 +74,14 @@ _gnutls_x509_write_rsa_pubkey(const gnutls_pk_params_st * params,
return _gnutls_asn2err(result);
}
- result =
- _gnutls_x509_write_int(spk, "modulus", params->params[0], 1);
+ result = _gnutls_x509_write_int(spk, "modulus", params->params[0], 1);
if (result < 0) {
gnutls_assert();
goto cleanup;
}
result =
- _gnutls_x509_write_int(spk, "publicExponent",
- params->params[1], 1);
+ _gnutls_x509_write_int(spk, "publicExponent", params->params[1], 1);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -97,7 +95,7 @@ _gnutls_x509_write_rsa_pubkey(const gnutls_pk_params_st * params,
result = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&spk);
return result;
@@ -121,11 +119,8 @@ _gnutls_x509_write_ecc_pubkey(const gnutls_pk_params_st * params,
if (params->params_nr < ECC_PUBLIC_PARAMS)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- result =
- _gnutls_ecc_ansi_x962_export(params->curve,
- params->params[ECC_X],
- params->params[ECC_Y], /*&out */
- der);
+ result = _gnutls_ecc_ansi_x962_export(params->curve, params->params[ECC_X], params->params[ECC_Y], /*&out */
+ der);
if (result < 0)
return gnutls_assert_val(result);
@@ -140,7 +135,7 @@ _gnutls_x509_write_ecc_pubkey(const gnutls_pk_params_st * params,
*/
int
_gnutls_x509_write_eddsa_pubkey(const gnutls_pk_params_st * params,
- gnutls_datum_t * raw)
+ gnutls_datum_t * raw)
{
int ret;
@@ -154,7 +149,8 @@ _gnutls_x509_write_eddsa_pubkey(const gnutls_pk_params_st * params,
params->curve != GNUTLS_ECC_CURVE_ED448)
return gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
- ret = _gnutls_set_datum(raw, params->raw_pub.data, params->raw_pub.size);
+ ret =
+ _gnutls_set_datum(raw, params->raw_pub.data, params->raw_pub.size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -169,7 +165,7 @@ _gnutls_x509_write_eddsa_pubkey(const gnutls_pk_params_st * params,
*/
static int
_gnutls_x509_write_modern_ecdh_pubkey(const gnutls_pk_params_st * params,
- gnutls_datum_t * raw)
+ gnutls_datum_t * raw)
{
int ret;
@@ -183,7 +179,8 @@ _gnutls_x509_write_modern_ecdh_pubkey(const gnutls_pk_params_st * params,
params->curve != GNUTLS_ECC_CURVE_X448)
return gnutls_assert_val(GNUTLS_E_ECC_UNSUPPORTED_CURVE);
- ret = _gnutls_set_datum(raw, params->raw_pub.data, params->raw_pub.size);
+ ret =
+ _gnutls_set_datum(raw, params->raw_pub.data, params->raw_pub.size);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -192,7 +189,7 @@ _gnutls_x509_write_modern_ecdh_pubkey(const gnutls_pk_params_st * params,
int
_gnutls_x509_write_gost_pubkey(const gnutls_pk_params_st * params,
- gnutls_datum_t * der)
+ gnutls_datum_t * der)
{
bigint_t x, y;
int numlen;
@@ -380,7 +377,7 @@ _gnutls_x509_write_dsa_params(const gnutls_pk_params_st * params,
result = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&spk);
return result;
}
@@ -406,7 +403,6 @@ _gnutls_x509_write_ecc_params(const gnutls_ecc_curve_t curve,
if (oid == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
-
if ((result = asn1_create_element
(_gnutls_get_gnutls_asn(), "GNUTLS.ECParameters", &spk))
!= ASN1_SUCCESS) {
@@ -422,8 +418,7 @@ _gnutls_x509_write_ecc_params(const gnutls_ecc_curve_t curve,
}
if ((result =
- asn1_write_value(spk, "namedCurve", oid,
- 1)) != ASN1_SUCCESS) {
+ asn1_write_value(spk, "namedCurve", oid, 1)) != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
goto cleanup;
@@ -437,14 +432,14 @@ _gnutls_x509_write_ecc_params(const gnutls_ecc_curve_t curve,
result = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&spk);
return result;
}
int
-_gnutls_x509_write_rsa_pss_params(const gnutls_x509_spki_st *params,
- gnutls_datum_t *der)
+_gnutls_x509_write_rsa_pss_params(const gnutls_x509_spki_st * params,
+ gnutls_datum_t * der)
{
int result;
asn1_node spk = NULL;
@@ -459,7 +454,8 @@ _gnutls_x509_write_rsa_pss_params(const gnutls_x509_spki_st *params,
return 0;
/* refuse to write parameters we cannot read */
- if (gnutls_pk_to_sign(GNUTLS_PK_RSA_PSS, params->rsa_pss_dig) == GNUTLS_SIGN_UNKNOWN)
+ if (gnutls_pk_to_sign(GNUTLS_PK_RSA_PSS, params->rsa_pss_dig) ==
+ GNUTLS_SIGN_UNKNOWN)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
if ((result = asn1_create_element
@@ -479,7 +475,8 @@ _gnutls_x509_write_rsa_pss_params(const gnutls_x509_spki_st *params,
goto cleanup;
}
- if ((result = asn1_write_value(spk, "hashAlgorithm.parameters", NULL, 0))
+ if ((result =
+ asn1_write_value(spk, "hashAlgorithm.parameters", NULL, 0))
!= ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -553,7 +550,7 @@ _gnutls_x509_write_rsa_pss_params(const gnutls_x509_spki_st *params,
result = 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(&tmp);
asn1_delete_structure(&c2);
asn1_delete_structure(&spk);
@@ -562,7 +559,7 @@ _gnutls_x509_write_rsa_pss_params(const gnutls_x509_spki_st *params,
static int
_gnutls_x509_write_gost_params(const gnutls_pk_params_st * params,
- gnutls_datum_t * der)
+ gnutls_datum_t * der)
{
int result;
asn1_node spk = NULL;
@@ -575,12 +572,10 @@ _gnutls_x509_write_gost_params(const gnutls_pk_params_st * params,
if (oid == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
-
if ((result = asn1_create_element
(_gnutls_get_gnutls_asn(),
params->algo == GNUTLS_PK_GOST_01 ?
- "GNUTLS.GOSTParametersOld" :
- "GNUTLS.GOSTParameters", &spk))
+ "GNUTLS.GOSTParametersOld" : "GNUTLS.GOSTParameters", &spk))
!= ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -613,7 +608,9 @@ _gnutls_x509_write_gost_params(const gnutls_pk_params_st * params,
else
oid = NULL;
- if ((result = asn1_write_value(spk, "digestParamSet", oid, oid ? 1 : 0)) != ASN1_SUCCESS) {
+ if ((result =
+ asn1_write_value(spk, "digestParamSet", oid,
+ oid ? 1 : 0)) != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
goto cleanup;
@@ -627,7 +624,8 @@ _gnutls_x509_write_gost_params(const gnutls_pk_params_st * params,
}
if (params->algo == GNUTLS_PK_GOST_01) {
- if (params->gost_params == _gnutls_gost_paramset_default(params->algo))
+ if (params->gost_params ==
+ _gnutls_gost_paramset_default(params->algo))
oid = NULL;
if ((result =
@@ -647,7 +645,7 @@ _gnutls_x509_write_gost_params(const gnutls_pk_params_st * params,
result = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&spk);
return result;
}
@@ -695,15 +693,14 @@ _gnutls_x509_write_dsa_pubkey(const gnutls_pk_params_st * params,
result = 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&spk);
return result;
}
/* Encodes the RSA parameters into an ASN.1 RSA private key structure.
*/
-static int
-_gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
+static int _gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
{
int result, ret;
uint8_t null = '\0';
@@ -719,8 +716,7 @@ _gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
return ret;
}
- ret =
- _gnutls_pk_fixup(GNUTLS_PK_RSA, GNUTLS_EXPORT, &pk_params);
+ ret = _gnutls_pk_fixup(GNUTLS_PK_RSA, GNUTLS_EXPORT, &pk_params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -763,7 +759,7 @@ _gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
ret =
_gnutls_x509_write_key_int(*c2, "privateExponent",
- params->params[RSA_PRIV], 1);
+ params->params[RSA_PRIV], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -771,7 +767,7 @@ _gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
ret =
_gnutls_x509_write_key_int(*c2, "prime1",
- params->params[RSA_PRIME1], 1);
+ params->params[RSA_PRIME1], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -779,7 +775,7 @@ _gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
ret =
_gnutls_x509_write_key_int(*c2, "prime2",
- params->params[RSA_PRIME2], 1);
+ params->params[RSA_PRIME2], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -787,7 +783,7 @@ _gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
ret =
_gnutls_x509_write_key_int(*c2, "coefficient",
- params->params[RSA_COEF], 1);
+ params->params[RSA_COEF], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -795,7 +791,7 @@ _gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
ret =
_gnutls_x509_write_key_int(*c2, "exponent1",
- params->params[RSA_E1], 1);
+ params->params[RSA_E1], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -803,7 +799,7 @@ _gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
ret =
_gnutls_x509_write_key_int(*c2, "exponent2",
- params->params[RSA_E2], 1);
+ params->params[RSA_E2], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -825,7 +821,7 @@ _gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
ret = 0;
- cleanup:
+ cleanup:
if (ret < 0)
asn1_delete_structure2(c2, ASN1_DELETE_FLAG_ZEROIZE);
@@ -836,8 +832,7 @@ _gnutls_asn1_encode_rsa(asn1_node * c2, gnutls_pk_params_st * params)
/* Encodes the ECC parameters into an ASN.1 ECPrivateKey structure.
*/
-static int
-_gnutls_asn1_encode_ecc(asn1_node * c2, gnutls_pk_params_st * params)
+static int _gnutls_asn1_encode_ecc(asn1_node * c2, gnutls_pk_params_st * params)
{
int ret;
uint8_t one = '\x01';
@@ -862,19 +857,19 @@ _gnutls_asn1_encode_ecc(asn1_node * c2, gnutls_pk_params_st * params)
goto cleanup;
}
- if ((ret =
- asn1_write_value(*c2, "Version", &one, 1)) != ASN1_SUCCESS) {
+ if ((ret = asn1_write_value(*c2, "Version", &one, 1)) != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
goto cleanup;
}
if (curve_is_eddsa(params->curve) ||
- curve_is_modern_ecdh(params->curve)) {
+ curve_is_modern_ecdh(params->curve)) {
if (params->raw_pub.size == 0 || params->raw_priv.size == 0)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
ret =
- asn1_write_value(*c2, "privateKey", params->raw_priv.data, params->raw_priv.size);
+ asn1_write_value(*c2, "privateKey", params->raw_priv.data,
+ params->raw_priv.size);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -882,7 +877,8 @@ _gnutls_asn1_encode_ecc(asn1_node * c2, gnutls_pk_params_st * params)
}
ret =
- asn1_write_value(*c2, "publicKey", params->raw_pub.data, params->raw_pub.size*8);
+ asn1_write_value(*c2, "publicKey", params->raw_pub.data,
+ params->raw_pub.size * 8);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -895,13 +891,14 @@ _gnutls_asn1_encode_ecc(asn1_node * c2, gnutls_pk_params_st * params)
ret =
_gnutls_ecc_ansi_x962_export(params->curve,
params->params[ECC_X],
- params->params[ECC_Y], &pubkey);
+ params->params[ECC_Y],
+ &pubkey);
if (ret < 0)
return gnutls_assert_val(ret);
ret =
_gnutls_x509_write_key_int(*c2, "privateKey",
- params->params[ECC_K], 1);
+ params->params[ECC_K], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -936,7 +933,7 @@ _gnutls_asn1_encode_ecc(asn1_node * c2, gnutls_pk_params_st * params)
_gnutls_free_datum(&pubkey);
return 0;
-cleanup:
+ cleanup:
asn1_delete_structure2(c2, ASN1_DELETE_FLAG_ZEROIZE);
_gnutls_free_datum(&pubkey);
@@ -968,17 +965,15 @@ _gnutls_asn1_encode_gost(asn1_node * c2, gnutls_pk_params_st * params)
goto cleanup;
}
- ret =
- _gnutls_x509_write_key_int_le(*c2, "", params->params[GOST_K]);
+ ret = _gnutls_x509_write_key_int_le(*c2, "", params->params[GOST_K]);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
-
return 0;
-cleanup:
+ cleanup:
asn1_delete_structure2(c2, ASN1_DELETE_FLAG_ZEROIZE);
return ret;
@@ -986,8 +981,7 @@ cleanup:
/* Encodes the DSA parameters into an ASN.1 DSAPrivateKey structure.
*/
-static int
-_gnutls_asn1_encode_dsa(asn1_node * c2, gnutls_pk_params_st * params)
+static int _gnutls_asn1_encode_dsa(asn1_node * c2, gnutls_pk_params_st * params)
{
int result, ret;
const uint8_t null = '\0';
@@ -1007,41 +1001,31 @@ _gnutls_asn1_encode_dsa(asn1_node * c2, gnutls_pk_params_st * params)
/* Write PRIME
*/
- ret =
- _gnutls_x509_write_int(*c2, "p",
- params->params[DSA_P], 1);
+ ret = _gnutls_x509_write_int(*c2, "p", params->params[DSA_P], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret =
- _gnutls_x509_write_int(*c2, "q",
- params->params[DSA_Q], 1);
+ ret = _gnutls_x509_write_int(*c2, "q", params->params[DSA_Q], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret =
- _gnutls_x509_write_int(*c2, "g",
- params->params[DSA_G], 1);
+ ret = _gnutls_x509_write_int(*c2, "g", params->params[DSA_G], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret =
- _gnutls_x509_write_int(*c2, "Y",
- params->params[DSA_Y], 1);
+ ret = _gnutls_x509_write_int(*c2, "Y", params->params[DSA_Y], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret =
- _gnutls_x509_write_key_int(*c2, "priv",
- params->params[DSA_X], 1);
+ ret = _gnutls_x509_write_key_int(*c2, "priv", params->params[DSA_X], 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1056,14 +1040,13 @@ _gnutls_asn1_encode_dsa(asn1_node * c2, gnutls_pk_params_st * params)
return 0;
-cleanup:
+ cleanup:
asn1_delete_structure2(c2, ASN1_DELETE_FLAG_ZEROIZE);
return ret;
}
-int _gnutls_asn1_encode_privkey(asn1_node * c2,
- gnutls_pk_params_st * params)
+int _gnutls_asn1_encode_privkey(asn1_node * c2, gnutls_pk_params_st * params)
{
switch (params->algo) {
case GNUTLS_PK_RSA:
diff --git a/lib/x509/krb5.h b/lib/x509/krb5.h
index 815bb28f72..da9f07b8c0 100644
--- a/lib/x509/krb5.h
+++ b/lib/x509/krb5.h
@@ -21,9 +21,10 @@
*/
#ifndef GNUTLS_LIB_X509_KRB5_H
-#define GNUTLS_LIB_X509_KRB5_H
+# define GNUTLS_LIB_X509_KRB5_H
int _gnutls_krb5_principal_to_der(const char *name, gnutls_datum_t * der);
-int _gnutls_krb5_der_to_principal(const gnutls_datum_t * der, gnutls_datum_t *name);
+int _gnutls_krb5_der_to_principal(const gnutls_datum_t * der,
+ gnutls_datum_t * name);
-#endif /* GNUTLS_LIB_X509_KRB5_H */
+#endif /* GNUTLS_LIB_X509_KRB5_H */
diff --git a/lib/x509/mpi.c b/lib/x509/mpi.c
index c0751df5d0..c696d89936 100644
--- a/lib/x509/mpi.c
+++ b/lib/x509/mpi.c
@@ -104,7 +104,6 @@ int _gnutls_x509_read_der_uint(uint8_t * der, int dersize, unsigned int *out)
}
-
/* Extracts DSA and RSA parameters from a certificate.
*/
int
@@ -131,16 +130,18 @@ _gnutls_get_asn_mpis(asn1_node asn, const char *root,
/* Read the algorithm's parameters
*/
- _asnstr_append_name(name, sizeof(name), root,
- ".algorithm.parameters");
+ _asnstr_append_name(name, sizeof(name), root, ".algorithm.parameters");
if (pk_algorithm != GNUTLS_PK_RSA &&
- pk_algorithm != GNUTLS_PK_EDDSA_ED25519 && pk_algorithm != GNUTLS_PK_ECDH_X25519 &&
- pk_algorithm != GNUTLS_PK_EDDSA_ED448 && pk_algorithm != GNUTLS_PK_ECDH_X448) {
+ pk_algorithm != GNUTLS_PK_EDDSA_ED25519
+ && pk_algorithm != GNUTLS_PK_ECDH_X25519
+ && pk_algorithm != GNUTLS_PK_EDDSA_ED448
+ && pk_algorithm != GNUTLS_PK_ECDH_X448) {
/* RSA and EdDSA do not use parameters */
result = _gnutls_x509_read_value(asn, name, &tmp);
- if (pk_algorithm == GNUTLS_PK_RSA_PSS &&
- (result == GNUTLS_E_ASN1_VALUE_NOT_FOUND || result == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND)) {
+ if (pk_algorithm == GNUTLS_PK_RSA_PSS &&
+ (result == GNUTLS_E_ASN1_VALUE_NOT_FOUND
+ || result == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND)) {
goto skip_params;
}
if (result < 0) {
@@ -149,9 +150,8 @@ _gnutls_get_asn_mpis(asn1_node asn, const char *root,
}
result =
- _gnutls_x509_read_pubkey_params(pk_algorithm,
- tmp.data, tmp.size,
- params);
+ _gnutls_x509_read_pubkey_params(pk_algorithm,
+ tmp.data, tmp.size, params);
if (result < 0) {
gnutls_assert();
goto error;
@@ -195,8 +195,7 @@ _gnutls_get_asn_mpis(asn1_node asn, const char *root,
/* Extracts DSA and RSA parameters from a certificate.
*/
int
-_gnutls_x509_crt_get_mpis(gnutls_x509_crt_t cert,
- gnutls_pk_params_st * params)
+_gnutls_x509_crt_get_mpis(gnutls_x509_crt_t cert, gnutls_pk_params_st * params)
{
/* Read the algorithm's OID
*/
@@ -208,8 +207,7 @@ _gnutls_x509_crt_get_mpis(gnutls_x509_crt_t cert,
/* Extracts DSA and RSA parameters from a certificate.
*/
int
-_gnutls_x509_crq_get_mpis(gnutls_x509_crq_t cert,
- gnutls_pk_params_st * params)
+_gnutls_x509_crq_get_mpis(gnutls_x509_crq_t cert, gnutls_pk_params_st * params)
{
/* Read the algorithm's OID
*/
@@ -224,7 +222,7 @@ _gnutls_x509_crq_get_mpis(gnutls_x509_crq_t cert,
*/
int
_gnutls_x509_read_pkalgo_params(asn1_node src, const char *src_name,
- gnutls_x509_spki_st *spki, unsigned is_sig)
+ gnutls_x509_spki_st * spki, unsigned is_sig)
{
int result;
char name[128];
@@ -244,7 +242,7 @@ _gnutls_x509_read_pkalgo_params(asn1_node src, const char *src_name,
return _gnutls_asn2err(result);
}
- if (strcmp (oid, PK_PKIX1_RSA_PSS_OID) == 0) {
+ if (strcmp(oid, PK_PKIX1_RSA_PSS_OID) == 0) {
gnutls_datum_t tmp = { NULL, 0 };
_gnutls_str_cpy(name, sizeof(name), src_name);
@@ -277,7 +275,8 @@ _gnutls_x509_read_pkalgo_params(asn1_node src, const char *src_name,
return 0;
}
-static int write_oid_and_params(asn1_node dst, const char *dst_name, const char *oid, gnutls_x509_spki_st *params)
+static int write_oid_and_params(asn1_node dst, const char *dst_name,
+ const char *oid, gnutls_x509_spki_st * params)
{
int result;
char name[128];
@@ -302,8 +301,7 @@ static int write_oid_and_params(asn1_node dst, const char *dst_name, const char
_gnutls_str_cat(name, sizeof(name), ".parameters");
if (params->pk == GNUTLS_PK_RSA)
- result =
- asn1_write_value(dst, name, ASN1_NULL, ASN1_NULL_SIZE);
+ result = asn1_write_value(dst, name, ASN1_NULL, ASN1_NULL_SIZE);
else if (params->pk == GNUTLS_PK_RSA_PSS) {
gnutls_datum_t tmp = { NULL, 0 };
@@ -329,7 +327,7 @@ static int write_oid_and_params(asn1_node dst, const char *dst_name, const char
int
_gnutls_x509_write_spki_params(asn1_node dst, const char *dst_name,
- gnutls_x509_spki_st *params)
+ gnutls_x509_spki_st * params)
{
const char *oid;
@@ -353,7 +351,8 @@ _gnutls_x509_write_spki_params(asn1_node dst, const char *dst_name,
int
_gnutls_x509_write_sign_params(asn1_node dst, const char *dst_name,
- const gnutls_sign_entry_st *se, gnutls_x509_spki_st *params)
+ const gnutls_sign_entry_st * se,
+ gnutls_x509_spki_st * params)
{
const char *oid;
@@ -367,8 +366,7 @@ _gnutls_x509_write_sign_params(asn1_node dst, const char *dst_name,
if (oid == NULL) {
gnutls_assert();
_gnutls_debug_log
- ("Cannot find OID for sign algorithm %s\n",
- se->name);
+ ("Cannot find OID for sign algorithm %s\n", se->name);
return GNUTLS_E_INVALID_REQUEST;
}
@@ -379,9 +377,7 @@ _gnutls_x509_write_sign_params(asn1_node dst, const char *dst_name,
* from asn1 structs. Combines the read and the conversion
* steps.
*/
-int
-_gnutls_x509_read_uint(asn1_node node, const char *value,
- unsigned int *ret)
+int _gnutls_x509_read_uint(asn1_node node, const char *value, unsigned int *ret)
{
int len, result;
uint8_t *tmpstr;
@@ -427,19 +423,18 @@ _gnutls_x509_read_uint(asn1_node node, const char *value,
/* Writes the specified integer into the specified node.
*/
-int
-_gnutls_x509_write_uint32(asn1_node node, const char *value, uint32_t num)
+int _gnutls_x509_write_uint32(asn1_node node, const char *value, uint32_t num)
{
uint8_t tmpstr[5];
int result;
tmpstr[0] = 0;
- _gnutls_write_uint32(num, tmpstr+1);
+ _gnutls_write_uint32(num, tmpstr + 1);
if (tmpstr[1] > SCHAR_MAX) {
result = asn1_write_value(node, value, tmpstr, 5);
} else {
- result = asn1_write_value(node, value, tmpstr+1, 4);
+ result = asn1_write_value(node, value, tmpstr + 1, 4);
}
if (result != ASN1_SUCCESS) {
diff --git a/lib/x509/name_constraints.c b/lib/x509/name_constraints.c
index ba37674042..a7294afa6a 100644
--- a/lib/x509/name_constraints.c
+++ b/lib/x509/name_constraints.c
@@ -41,7 +41,8 @@
// for documentation see the implementation
static int name_constraints_intersect_nodes(name_constraints_node_st * nc1,
name_constraints_node_st * nc2,
- name_constraints_node_st ** intersection);
+ name_constraints_node_st **
+ intersection);
/*-
* is_nc_empty:
@@ -53,7 +54,8 @@ static int name_constraints_intersect_nodes(name_constraints_node_st * nc1,
*
* Returns: 0 if @nc contains constraints of type @type, 1 otherwise
-*/
-static unsigned is_nc_empty(struct gnutls_name_constraints_st* nc, unsigned type)
+static unsigned is_nc_empty(struct gnutls_name_constraints_st *nc,
+ unsigned type)
{
name_constraints_node_st *t;
@@ -92,19 +94,20 @@ static unsigned is_nc_empty(struct gnutls_name_constraints_st* nc, unsigned type
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a negative error value.
-*/
static int validate_name_constraints_node(gnutls_x509_subject_alt_name_t type,
- const gnutls_datum_t* name)
+ const gnutls_datum_t * name)
{
if (type != GNUTLS_SAN_DNSNAME && type != GNUTLS_SAN_RFC822NAME &&
- type != GNUTLS_SAN_DN && type != GNUTLS_SAN_URI &&
- type != GNUTLS_SAN_IPADDRESS &&
- type != GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL) {
+ type != GNUTLS_SAN_DN && type != GNUTLS_SAN_URI &&
+ type != GNUTLS_SAN_IPADDRESS &&
+ type != GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL) {
return gnutls_assert_val(GNUTLS_E_X509_UNKNOWN_SAN);
}
if (type == GNUTLS_SAN_IPADDRESS) {
if (name->size != 8 && name->size != 32)
return gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
- int prefix = _gnutls_mask_to_prefix(name->data + name->size/2, name->size/2);
+ int prefix = _gnutls_mask_to_prefix(name->data + name->size / 2,
+ name->size / 2);
if (prefix < 0)
return gnutls_assert_val(GNUTLS_E_MALFORMED_CIDR);
}
@@ -113,7 +116,7 @@ static int validate_name_constraints_node(gnutls_x509_subject_alt_name_t type,
}
int _gnutls_extract_name_constraints(asn1_node c2, const char *vstr,
- name_constraints_node_st ** _nc)
+ name_constraints_node_st ** _nc)
{
int ret;
char tmpstr[128];
@@ -124,11 +127,11 @@ int _gnutls_extract_name_constraints(asn1_node c2, const char *vstr,
prev = *_nc;
if (prev != NULL) {
- while(prev->next != NULL)
+ while (prev->next != NULL)
prev = prev->next;
}
- for (indx=1;;indx++) {
+ for (indx = 1;; indx++) {
snprintf(tmpstr, sizeof(tmpstr), "%s.?%u.base", vstr, indx);
ret =
@@ -141,24 +144,28 @@ int _gnutls_extract_name_constraints(asn1_node c2, const char *vstr,
if (type == GNUTLS_SAN_OTHERNAME) {
gnutls_datum_t oid = { NULL, 0 };
- gnutls_datum_t parsed_othername = { NULL, 0 };
- ret = _gnutls_parse_general_name2(c2, tmpstr, -1, &oid, &type, 1);
- if(ret < 0) {
- gnutls_assert();
- goto cleanup;
- }
-
- ret = gnutls_x509_othername_to_virtual((char*)oid.data, &tmp, &type,
- &parsed_othername);
- if(ret < 0) {
- gnutls_assert();
- goto cleanup;
- }
+ gnutls_datum_t parsed_othername = { NULL, 0 };
+ ret =
+ _gnutls_parse_general_name2(c2, tmpstr, -1, &oid,
+ &type, 1);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
+
+ ret =
+ gnutls_x509_othername_to_virtual((char *)oid.data,
+ &tmp, &type,
+ &parsed_othername);
+ if (ret < 0) {
+ gnutls_assert();
+ goto cleanup;
+ }
gnutls_free(oid.data);
gnutls_free(tmp.data);
- memcpy(&tmp, &parsed_othername, sizeof(gnutls_datum_t));
+ memcpy(&tmp, &parsed_othername, sizeof(gnutls_datum_t));
}
ret = validate_name_constraints_node(type, &tmp);
@@ -206,7 +213,7 @@ int _gnutls_extract_name_constraints(asn1_node c2, const char *vstr,
*
* Deallocate a list of name constraints nodes starting at the given node.
-*/
-void _gnutls_name_constraints_node_free(name_constraints_node_st *node)
+void _gnutls_name_constraints_node_free(name_constraints_node_st * node)
{
name_constraints_node_st *next, *t;
@@ -231,11 +238,12 @@ void _gnutls_name_constraints_node_free(name_constraints_node_st *node)
*
* Returns: Pointer to newly allocated node or NULL in case of memory error.
-*/
-static name_constraints_node_st* name_constraints_node_new(unsigned type,
+static name_constraints_node_st *name_constraints_node_new(unsigned type,
unsigned char *data,
unsigned int size)
{
- name_constraints_node_st *tmp = gnutls_malloc(sizeof(struct name_constraints_node_st));
+ name_constraints_node_st *tmp =
+ gnutls_malloc(sizeof(struct name_constraints_node_st));
if (tmp == NULL)
return NULL;
tmp->type = type;
@@ -276,14 +284,16 @@ int _gnutls_name_constraints_intersect(name_constraints_node_st ** _nc,
name_constraints_node_st * _nc2,
name_constraints_node_st ** _nc_excluded)
{
- name_constraints_node_st *nc, *nc2, *t, *tmp, *dest = NULL, *prev = NULL;
+ name_constraints_node_st *nc, *nc2, *t, *tmp, *dest = NULL, *prev =
+ NULL;
int ret, type, used;
/* temporary array to see, if we need to add universal excluded constraints
* (see phase 3 for details)
* indexed directly by (gnutls_x509_subject_alt_name_t enum - 1) */
unsigned char types_with_empty_intersection[GNUTLS_SAN_MAX];
- memset(types_with_empty_intersection, 0, sizeof(types_with_empty_intersection));
+ memset(types_with_empty_intersection, 0,
+ sizeof(types_with_empty_intersection));
if (*_nc == NULL || _nc2 == NULL)
return 0;
@@ -300,7 +310,9 @@ int _gnutls_name_constraints_intersect(name_constraints_node_st ** _nc,
if (t->type == nc2->type) {
// check bounds (we will use 't->type' as index)
if (t->type > GNUTLS_SAN_MAX || t->type == 0)
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
// note the possibility of empty intersection for this type
// if we add something to the intersection in phase 2,
// we will reset this flag back to 0 then
@@ -310,10 +322,10 @@ int _gnutls_name_constraints_intersect(name_constraints_node_st ** _nc,
nc2 = nc2->next;
}
if (nc2 == NULL ||
- (t->type != GNUTLS_SAN_DNSNAME &&
- t->type != GNUTLS_SAN_RFC822NAME &&
- t->type != GNUTLS_SAN_IPADDRESS)
- ) {
+ (t->type != GNUTLS_SAN_DNSNAME &&
+ t->type != GNUTLS_SAN_RFC822NAME &&
+ t->type != GNUTLS_SAN_IPADDRESS)
+ ) {
/* move node from NC to DEST */
if (prev != NULL)
prev->next = next;
@@ -339,17 +351,22 @@ int _gnutls_name_constraints_intersect(name_constraints_node_st ** _nc,
while (t != NULL) {
// save intersection of name constraints into tmp
ret = name_constraints_intersect_nodes(t, nc2, &tmp);
- if (ret < 0) return gnutls_assert_val(ret);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
used = 1;
// if intersection is not empty
- if (tmp != NULL) { // intersection for this type is not empty
+ if (tmp != NULL) { // intersection for this type is not empty
// check bounds
- if (tmp->type > GNUTLS_SAN_MAX || tmp->type == 0) {
+ if (tmp->type > GNUTLS_SAN_MAX
+ || tmp->type == 0) {
gnutls_free(tmp);
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INTERNAL_ERROR);
}
// we will not add universal excluded constraint for this type
- types_with_empty_intersection[tmp->type - 1] = 0;
+ types_with_empty_intersection[tmp->type - 1] =
+ 0;
// add intersection node to DEST
tmp->next = dest;
dest = tmp;
@@ -358,9 +375,11 @@ int _gnutls_name_constraints_intersect(name_constraints_node_st ** _nc,
}
// if the node from nc2 was not used for intersection, copy it to DEST
// Beware: also copies nodes other than DNS, email, IP,
- // since their counterpart may have been moved in phase 1.
+ // since their counterpart may have been moved in phase 1.
if (!used) {
- tmp = name_constraints_node_new(nc2->type, nc2->name.data, nc2->name.size);
+ tmp =
+ name_constraints_node_new(nc2->type, nc2->name.data,
+ nc2->name.size);
if (tmp == NULL) {
_gnutls_name_constraints_node_free(dest);
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -381,47 +400,53 @@ int _gnutls_name_constraints_intersect(name_constraints_node_st ** _nc,
* excluded constraint with universal wildcard
* (since the intersection of permitted is now empty). */
for (type = 1; type <= GNUTLS_SAN_MAX; type++) {
- if (types_with_empty_intersection[type-1] == 0)
+ if (types_with_empty_intersection[type - 1] == 0)
continue;
- _gnutls_hard_log("Adding universal excluded name constraint for type %d.\n", type);
+ _gnutls_hard_log
+ ("Adding universal excluded name constraint for type %d.\n",
+ type);
switch (type) {
- case GNUTLS_SAN_IPADDRESS:
- // add universal restricted range for IPv4
- tmp = name_constraints_node_new(GNUTLS_SAN_IPADDRESS, NULL, 8);
- if (tmp == NULL) {
- _gnutls_name_constraints_node_free(dest);
- return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- }
- tmp->next = *_nc_excluded;
- *_nc_excluded = tmp;
- // add universal restricted range for IPv6
- tmp = name_constraints_node_new(GNUTLS_SAN_IPADDRESS, NULL, 32);
- if (tmp == NULL) {
- _gnutls_name_constraints_node_free(dest);
- return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- }
- tmp->next = *_nc_excluded;
- *_nc_excluded = tmp;
- break;
- case GNUTLS_SAN_DNSNAME:
- case GNUTLS_SAN_RFC822NAME:
- tmp = name_constraints_node_new(type, NULL, 0);
- if (tmp == NULL) {
- _gnutls_name_constraints_node_free(dest);
- return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- }
- tmp->next = *_nc_excluded;
- *_nc_excluded = tmp;
- break;
- default: // do nothing, at least one node was already moved in phase 1
- break;
+ case GNUTLS_SAN_IPADDRESS:
+ // add universal restricted range for IPv4
+ tmp =
+ name_constraints_node_new(GNUTLS_SAN_IPADDRESS,
+ NULL, 8);
+ if (tmp == NULL) {
+ _gnutls_name_constraints_node_free(dest);
+ return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
+ }
+ tmp->next = *_nc_excluded;
+ *_nc_excluded = tmp;
+ // add universal restricted range for IPv6
+ tmp =
+ name_constraints_node_new(GNUTLS_SAN_IPADDRESS,
+ NULL, 32);
+ if (tmp == NULL) {
+ _gnutls_name_constraints_node_free(dest);
+ return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
+ }
+ tmp->next = *_nc_excluded;
+ *_nc_excluded = tmp;
+ break;
+ case GNUTLS_SAN_DNSNAME:
+ case GNUTLS_SAN_RFC822NAME:
+ tmp = name_constraints_node_new(type, NULL, 0);
+ if (tmp == NULL) {
+ _gnutls_name_constraints_node_free(dest);
+ return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
+ }
+ tmp->next = *_nc_excluded;
+ *_nc_excluded = tmp;
+ break;
+ default: // do nothing, at least one node was already moved in phase 1
+ break;
}
}
return GNUTLS_E_SUCCESS;
}
-static int _gnutls_name_constraints_append(name_constraints_node_st **_nc,
- name_constraints_node_st *_nc2)
+static int _gnutls_name_constraints_append(name_constraints_node_st ** _nc,
+ name_constraints_node_st * _nc2)
{
name_constraints_node_st *nc, *nc2;
struct name_constraints_node_st *tmp;
@@ -433,7 +458,9 @@ static int _gnutls_name_constraints_append(name_constraints_node_st **_nc,
while (nc2) {
nc = *_nc;
- tmp = name_constraints_node_new(nc2->type, nc2->name.data, nc2->name.size);
+ tmp =
+ name_constraints_node_new(nc2->type, nc2->name.data,
+ nc2->name.size);
if (tmp == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -487,8 +514,7 @@ int gnutls_x509_crt_get_name_constraints(gnutls_x509_crt_t crt,
}
ret =
- _gnutls_x509_crt_get_extension(crt, "2.5.29.30", 0, &der,
- critical);
+ _gnutls_x509_crt_get_extension(crt, "2.5.29.30", 0, &der, critical);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -536,7 +562,7 @@ void gnutls_x509_name_constraints_deinit(gnutls_x509_name_constraints_t nc)
*
* Since: 3.3.0
**/
-int gnutls_x509_name_constraints_init(gnutls_x509_name_constraints_t *nc)
+int gnutls_x509_name_constraints_init(gnutls_x509_name_constraints_t * nc)
{
*nc = gnutls_calloc(1, sizeof(struct gnutls_name_constraints_st));
if (*nc == NULL) {
@@ -550,10 +576,9 @@ int gnutls_x509_name_constraints_init(gnutls_x509_name_constraints_t *nc)
static
int name_constraints_add(gnutls_x509_name_constraints_t nc,
gnutls_x509_subject_alt_name_t type,
- const gnutls_datum_t * name,
- unsigned permitted)
+ const gnutls_datum_t * name, unsigned permitted)
{
- struct name_constraints_node_st * tmp, *prev = NULL;
+ struct name_constraints_node_st *tmp, *prev = NULL;
int ret;
ret = validate_name_constraints_node(type, name);
@@ -565,7 +590,7 @@ int name_constraints_add(gnutls_x509_name_constraints_t nc,
else
prev = tmp = nc->excluded;
- while(tmp != NULL) {
+ while (tmp != NULL) {
tmp = tmp->next;
if (tmp != NULL)
prev = tmp;
@@ -610,15 +635,13 @@ int _gnutls_x509_name_constraints_merge(gnutls_x509_name_constraints_t nc,
ret =
_gnutls_name_constraints_intersect(&nc->permitted,
- nc2->permitted, &nc->excluded);
+ nc2->permitted, &nc->excluded);
if (ret < 0) {
gnutls_assert();
return ret;
}
- ret =
- _gnutls_name_constraints_append(&nc->excluded,
- nc2->excluded);
+ ret = _gnutls_name_constraints_append(&nc->excluded, nc2->excluded);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -643,8 +666,10 @@ int _gnutls_x509_name_constraints_merge(gnutls_x509_name_constraints_t nc,
*
* Since: 3.3.0
**/
-int gnutls_x509_name_constraints_add_permitted(gnutls_x509_name_constraints_t nc,
- gnutls_x509_subject_alt_name_t type,
+int gnutls_x509_name_constraints_add_permitted(gnutls_x509_name_constraints_t
+ nc,
+ gnutls_x509_subject_alt_name_t
+ type,
const gnutls_datum_t * name)
{
return name_constraints_add(nc, type, name, 1);
@@ -668,8 +693,8 @@ int gnutls_x509_name_constraints_add_permitted(gnutls_x509_name_constraints_t nc
* Since: 3.3.0
**/
int gnutls_x509_name_constraints_add_excluded(gnutls_x509_name_constraints_t nc,
- gnutls_x509_subject_alt_name_t type,
- const gnutls_datum_t * name)
+ gnutls_x509_subject_alt_name_t
+ type, const gnutls_datum_t * name)
{
return name_constraints_add(nc, type, name, 0);
}
@@ -688,19 +713,18 @@ int gnutls_x509_name_constraints_add_excluded(gnutls_x509_name_constraints_t nc,
*
* Since: 3.3.0
**/
-int gnutls_x509_crt_set_name_constraints(gnutls_x509_crt_t crt,
+int gnutls_x509_crt_set_name_constraints(gnutls_x509_crt_t crt,
gnutls_x509_name_constraints_t nc,
unsigned int critical)
{
-int ret;
-gnutls_datum_t der;
+ int ret;
+ gnutls_datum_t der;
ret = gnutls_x509_ext_export_name_constraints(nc, &der);
if (ret < 0)
return gnutls_assert_val(ret);
- ret =
- _gnutls_x509_crt_set_extension(crt, "2.5.29.30", &der, critical);
+ ret = _gnutls_x509_crt_set_extension(crt, "2.5.29.30", &der, critical);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -709,7 +733,7 @@ gnutls_datum_t der;
ret = 0;
crt->use_extensions = 1;
-cleanup:
+ cleanup:
_gnutls_free_datum(&der);
return ret;
}
@@ -725,55 +749,64 @@ unsigned ends_with(const gnutls_datum_t * str, const gnutls_datum_t * suffix)
tree = suffix->data;
treelen = suffix->size;
- if((treelen > 0) && (tree[0] == '.')) {
+ if ((treelen > 0) && (tree[0] == '.')) {
tree++;
treelen--;
}
if (memcmp(str->data + str->size - treelen, tree, treelen) == 0 &&
- str->data[str->size - treelen -1] == '.')
- return 1; /* match */
+ str->data[str->size - treelen - 1] == '.')
+ return 1; /* match */
return 0;
}
static
-unsigned email_ends_with(const gnutls_datum_t * str, const gnutls_datum_t * suffix)
+unsigned email_ends_with(const gnutls_datum_t * str,
+ const gnutls_datum_t * suffix)
{
if (suffix->size >= str->size)
return 0;
if (suffix->size > 1 && suffix->data[0] == '.') {
/* .domain.com */
- if (memcmp(str->data + str->size - suffix->size, suffix->data, suffix->size) == 0)
- return 1; /* match */
+ if (memcmp
+ (str->data + str->size - suffix->size, suffix->data,
+ suffix->size) == 0)
+ return 1; /* match */
} else {
- if (memcmp(str->data + str->size - suffix->size, suffix->data, suffix->size) == 0 &&
- str->data[str->size - suffix->size -1] == '@')
- return 1; /* match */
+ if (memcmp
+ (str->data + str->size - suffix->size, suffix->data,
+ suffix->size) == 0
+ && str->data[str->size - suffix->size - 1] == '@')
+ return 1; /* match */
}
return 0;
}
-static unsigned dnsname_matches(const gnutls_datum_t *name, const gnutls_datum_t *suffix)
+static unsigned dnsname_matches(const gnutls_datum_t * name,
+ const gnutls_datum_t * suffix)
{
- _gnutls_hard_log("matching %.*s with DNS constraint %.*s\n", name->size, name->data,
- suffix->size, suffix->data);
+ _gnutls_hard_log("matching %.*s with DNS constraint %.*s\n", name->size,
+ name->data, suffix->size, suffix->data);
- if (suffix->size == name->size && memcmp(suffix->data, name->data, suffix->size) == 0)
- return 1; /* match */
+ if (suffix->size == name->size
+ && memcmp(suffix->data, name->data, suffix->size) == 0)
+ return 1; /* match */
return ends_with(name, suffix);
}
-static unsigned email_matches(const gnutls_datum_t *name, const gnutls_datum_t *suffix)
+static unsigned email_matches(const gnutls_datum_t * name,
+ const gnutls_datum_t * suffix)
{
- _gnutls_hard_log("matching %.*s with e-mail constraint %.*s\n", name->size, name->data,
- suffix->size, suffix->data);
+ _gnutls_hard_log("matching %.*s with e-mail constraint %.*s\n",
+ name->size, name->data, suffix->size, suffix->data);
- if (suffix->size == name->size && memcmp(suffix->data, name->data, suffix->size) == 0)
- return 1; /* match */
+ if (suffix->size == name->size
+ && memcmp(suffix->data, name->data, suffix->size) == 0)
+ return 1; /* match */
return email_ends_with(name, suffix);
}
@@ -820,12 +853,12 @@ name_constraints_intersect_nodes(name_constraints_node_st * nc1,
case GNUTLS_SAN_IPADDRESS:
if (nc1->name.size != nc2->name.size)
return GNUTLS_E_SUCCESS;
- iplength = nc1->name.size/2;
+ iplength = nc1->name.size / 2;
for (byte = 0; byte < iplength; byte++) {
- if (((nc1->name.data[byte]^nc2->name.data[byte]) // XOR of addresses
- & nc1->name.data[byte+iplength] // AND mask from nc1
- & nc2->name.data[byte+iplength]) // AND mask from nc2
- != 0) {
+ if (((nc1->name.data[byte] ^ nc2->name.data[byte]) // XOR of addresses
+ & nc1->name.data[byte + iplength] // AND mask from nc1
+ & nc2->name.data[byte + iplength]) // AND mask from nc2
+ != 0) {
// CIDRS do not intersect
return GNUTLS_E_SUCCESS;
}
@@ -839,7 +872,9 @@ name_constraints_intersect_nodes(name_constraints_node_st * nc1,
// copy existing node if applicable
if (to_copy != NULL) {
- *_intersection = name_constraints_node_new(to_copy->type, to_copy->name.data, to_copy->name.size);
+ *_intersection =
+ name_constraints_node_new(to_copy->type, to_copy->name.data,
+ to_copy->name.size);
if (*_intersection == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
intersection = *_intersection;
@@ -848,11 +883,15 @@ name_constraints_intersect_nodes(name_constraints_node_st * nc1,
if (intersection->type == GNUTLS_SAN_IPADDRESS) {
// make sure both IP addresses are correctly masked
- _gnutls_mask_ip(intersection->name.data, intersection->name.data+iplength, iplength);
- _gnutls_mask_ip(nc1->name.data, nc1->name.data+iplength, iplength);
+ _gnutls_mask_ip(intersection->name.data,
+ intersection->name.data + iplength,
+ iplength);
+ _gnutls_mask_ip(nc1->name.data,
+ nc1->name.data + iplength, iplength);
// update intersection, if necessary (we already know one is subset of other)
for (byte = 0; byte < 2 * iplength; byte++) {
- intersection->name.data[byte] |= nc1->name.data[byte];
+ intersection->name.data[byte] |=
+ nc1->name.data[byte];
}
}
}
@@ -865,19 +904,21 @@ name_constraints_intersect_nodes(name_constraints_node_st * nc1,
*/
static
unsigned check_unsupported_constraint(gnutls_x509_name_constraints_t nc,
- gnutls_x509_subject_alt_name_t type)
+ gnutls_x509_subject_alt_name_t type)
{
-unsigned i;
-int ret;
-unsigned rtype;
-gnutls_datum_t rname;
+ unsigned i;
+ int ret;
+ unsigned rtype;
+ gnutls_datum_t rname;
/* check if there is a restrictions with that type, if
* yes, then reject the name.
*/
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_excluded(nc, i++, &rtype, &rname);
+ ret =
+ gnutls_x509_name_constraints_get_excluded(nc, i++, &rtype,
+ &rname);
if (ret >= 0) {
if (rtype != type)
continue;
@@ -885,25 +926,27 @@ gnutls_datum_t rname;
return gnutls_assert_val(0);
}
- } while(ret == 0);
+ } while (ret == 0);
return 1;
}
static
unsigned check_dns_constraints(gnutls_x509_name_constraints_t nc,
- const gnutls_datum_t * name)
+ const gnutls_datum_t * name)
{
-unsigned i;
-int ret;
-unsigned rtype;
-unsigned allowed_found = 0;
-gnutls_datum_t rname;
+ unsigned i;
+ int ret;
+ unsigned rtype;
+ unsigned allowed_found = 0;
+ gnutls_datum_t rname;
/* check restrictions */
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_excluded(nc, i++, &rtype, &rname);
+ ret =
+ gnutls_x509_name_constraints_get_excluded(nc, i++, &rtype,
+ &rname);
if (ret >= 0) {
if (rtype != GNUTLS_SAN_DNSNAME)
continue;
@@ -914,14 +957,16 @@ gnutls_datum_t rname;
return gnutls_assert_val(0);
if (dnsname_matches(name, &rname) != 0)
- return gnutls_assert_val(0); /* rejected */
+ return gnutls_assert_val(0); /* rejected */
}
- } while(ret == 0);
+ } while (ret == 0);
/* check allowed */
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_permitted(nc, i++, &rtype, &rname);
+ ret =
+ gnutls_x509_name_constraints_get_permitted(nc, i++, &rtype,
+ &rname);
if (ret >= 0) {
if (rtype != GNUTLS_SAN_DNSNAME)
continue;
@@ -932,11 +977,11 @@ gnutls_datum_t rname;
allowed_found = 1;
if (dnsname_matches(name, &rname) != 0)
- return 1; /* accepted */
+ return 1; /* accepted */
}
- } while(ret == 0);
+ } while (ret == 0);
- if (allowed_found != 0) /* there are allowed directives but this host wasn't found */
+ if (allowed_found != 0) /* there are allowed directives but this host wasn't found */
return gnutls_assert_val(0);
return 1;
@@ -944,18 +989,20 @@ gnutls_datum_t rname;
static
unsigned check_email_constraints(gnutls_x509_name_constraints_t nc,
- const gnutls_datum_t * name)
+ const gnutls_datum_t * name)
{
-unsigned i;
-int ret;
-unsigned rtype;
-unsigned allowed_found = 0;
-gnutls_datum_t rname;
+ unsigned i;
+ int ret;
+ unsigned rtype;
+ unsigned allowed_found = 0;
+ gnutls_datum_t rname;
/* check restrictions */
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_excluded(nc, i++, &rtype, &rname);
+ ret =
+ gnutls_x509_name_constraints_get_excluded(nc, i++, &rtype,
+ &rname);
if (ret >= 0) {
if (rtype != GNUTLS_SAN_RFC822NAME)
continue;
@@ -966,14 +1013,16 @@ gnutls_datum_t rname;
return gnutls_assert_val(0);
if (email_matches(name, &rname) != 0)
- return gnutls_assert_val(0); /* rejected */
+ return gnutls_assert_val(0); /* rejected */
}
- } while(ret == 0);
+ } while (ret == 0);
/* check allowed */
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_permitted(nc, i++, &rtype, &rname);
+ ret =
+ gnutls_x509_name_constraints_get_permitted(nc, i++, &rtype,
+ &rname);
if (ret >= 0) {
if (rtype != GNUTLS_SAN_RFC822NAME)
continue;
@@ -984,11 +1033,11 @@ gnutls_datum_t rname;
allowed_found = 1;
if (email_matches(name, &rname) != 0)
- return 1; /* accepted */
+ return 1; /* accepted */
}
- } while(ret == 0);
+ } while (ret == 0);
- if (allowed_found != 0) /* there are allowed directives but this host wasn't found */
+ if (allowed_found != 0) /* there are allowed directives but this host wasn't found */
return gnutls_assert_val(0);
return 1;
@@ -996,7 +1045,7 @@ gnutls_datum_t rname;
static
unsigned check_ip_constraints(gnutls_x509_name_constraints_t nc,
- const gnutls_datum_t * name)
+ const gnutls_datum_t * name)
{
unsigned i;
int ret;
@@ -1007,7 +1056,9 @@ unsigned check_ip_constraints(gnutls_x509_name_constraints_t nc,
/* check restrictions */
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_excluded(nc, i++, &rtype, &rname);
+ ret =
+ gnutls_x509_name_constraints_get_excluded(nc, i++, &rtype,
+ &rname);
if (ret >= 0) {
if (rtype != GNUTLS_SAN_IPADDRESS)
continue;
@@ -1017,14 +1068,16 @@ unsigned check_ip_constraints(gnutls_x509_name_constraints_t nc,
continue;
if (ip_in_cidr(name, &rname) != 0)
- return gnutls_assert_val(0); /* rejected */
+ return gnutls_assert_val(0); /* rejected */
}
- } while(ret == 0);
+ } while (ret == 0);
/* check allowed */
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_permitted(nc, i++, &rtype, &rname);
+ ret =
+ gnutls_x509_name_constraints_get_permitted(nc, i++, &rtype,
+ &rname);
if (ret >= 0) {
if (rtype != GNUTLS_SAN_IPADDRESS)
continue;
@@ -1036,11 +1089,11 @@ unsigned check_ip_constraints(gnutls_x509_name_constraints_t nc,
allowed_found = 1;
if (ip_in_cidr(name, &rname) != 0)
- return 1; /* accepted */
+ return 1; /* accepted */
}
- } while(ret == 0);
+ } while (ret == 0);
- if (allowed_found != 0) /* there are allowed directives but this host wasn't found */
+ if (allowed_found != 0) /* there are allowed directives but this host wasn't found */
return gnutls_assert_val(0);
return 1;
@@ -1084,9 +1137,10 @@ unsigned gnutls_x509_name_constraints_check(gnutls_x509_name_constraints_t nc,
*
* Returns: true if the certification is acceptable, and false otherwise
*/
-static unsigned check_unsupported_constraint2(gnutls_x509_crt_t cert,
+static unsigned check_unsupported_constraint2(gnutls_x509_crt_t cert,
gnutls_x509_name_constraints_t nc,
- gnutls_x509_subject_alt_name_t type)
+ gnutls_x509_subject_alt_name_t
+ type)
{
unsigned idx, found_one;
char name[MAX_CN];
@@ -1096,10 +1150,12 @@ static unsigned check_unsupported_constraint2(gnutls_x509_crt_t cert,
found_one = 0;
- for (idx=0;;idx++) {
+ for (idx = 0;; idx++) {
name_size = sizeof(name);
ret = gnutls_x509_crt_get_subject_alt_name2(cert,
- idx, name, &name_size, &san_type, NULL);
+ idx, name,
+ &name_size,
+ &san_type, NULL);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
else if (ret < 0)
@@ -1136,26 +1192,30 @@ static unsigned check_unsupported_constraint2(gnutls_x509_crt_t cert,
*
* Since: 3.3.0
**/
-unsigned gnutls_x509_name_constraints_check_crt(gnutls_x509_name_constraints_t nc,
- gnutls_x509_subject_alt_name_t type,
- gnutls_x509_crt_t cert)
+unsigned gnutls_x509_name_constraints_check_crt(gnutls_x509_name_constraints_t
+ nc,
+ gnutls_x509_subject_alt_name_t
+ type, gnutls_x509_crt_t cert)
{
-char name[MAX_CN];
-size_t name_size;
-int ret;
-unsigned idx, t, san_type;
-gnutls_datum_t n;
-unsigned found_one;
+ char name[MAX_CN];
+ size_t name_size;
+ int ret;
+ unsigned idx, t, san_type;
+ gnutls_datum_t n;
+ unsigned found_one;
if (is_nc_empty(nc, type) != 0)
- return 1; /* shortcut; no constraints to check */
+ return 1; /* shortcut; no constraints to check */
if (type == GNUTLS_SAN_RFC822NAME) {
found_one = 0;
- for (idx=0;;idx++) {
+ for (idx = 0;; idx++) {
name_size = sizeof(name);
ret = gnutls_x509_crt_get_subject_alt_name2(cert,
- idx, name, &name_size, &san_type, NULL);
+ idx, name,
+ &name_size,
+ &san_type,
+ NULL);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
else if (ret < 0)
@@ -1165,10 +1225,11 @@ unsigned found_one;
continue;
found_one = 1;
- n.data = (void*)name;
+ n.data = (void *)name;
n.size = name_size;
- t = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME,
- &n);
+ t = gnutls_x509_name_constraints_check(nc,
+ GNUTLS_SAN_RFC822NAME,
+ &n);
if (t == 0)
return gnutls_assert_val(t);
}
@@ -1181,26 +1242,34 @@ unsigned found_one;
do {
/* ensure there is only a single EMAIL, similarly to CN handling (rfc6125) */
name_size = sizeof(name);
- ret = gnutls_x509_crt_get_dn_by_oid(cert, GNUTLS_OID_PKCS9_EMAIL,
- 1, 0, name, &name_size);
+ ret =
+ gnutls_x509_crt_get_dn_by_oid(cert,
+ GNUTLS_OID_PKCS9_EMAIL,
+ 1, 0, name,
+ &name_size);
if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
return gnutls_assert_val(0);
name_size = sizeof(name);
- ret = gnutls_x509_crt_get_dn_by_oid(cert, GNUTLS_OID_PKCS9_EMAIL,
- 0, 0, name, &name_size);
+ ret =
+ gnutls_x509_crt_get_dn_by_oid(cert,
+ GNUTLS_OID_PKCS9_EMAIL,
+ 0, 0, name,
+ &name_size);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
else if (ret < 0)
return gnutls_assert_val(0);
found_one = 1;
- n.data = (void*)name;
+ n.data = (void *)name;
n.size = name_size;
- t = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME, &n);
+ t = gnutls_x509_name_constraints_check(nc,
+ GNUTLS_SAN_RFC822NAME,
+ &n);
if (t == 0)
return gnutls_assert_val(t);
- } while(0);
+ } while (0);
/* passed */
if (found_one != 0)
@@ -1213,10 +1282,13 @@ unsigned found_one;
}
} else if (type == GNUTLS_SAN_DNSNAME) {
found_one = 0;
- for (idx=0;;idx++) {
+ for (idx = 0;; idx++) {
name_size = sizeof(name);
ret = gnutls_x509_crt_get_subject_alt_name2(cert,
- idx, name, &name_size, &san_type, NULL);
+ idx, name,
+ &name_size,
+ &san_type,
+ NULL);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
else if (ret < 0)
@@ -1226,10 +1298,11 @@ unsigned found_one;
continue;
found_one = 1;
- n.data = (void*)name;
+ n.data = (void *)name;
n.size = name_size;
- t = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_DNSNAME,
- &n);
+ t = gnutls_x509_name_constraints_check(nc,
+ GNUTLS_SAN_DNSNAME,
+ &n);
if (t == 0)
return gnutls_assert_val(t);
}
@@ -1242,31 +1315,41 @@ unsigned found_one;
/* verify the name constraints against the CN, if the certificate is
* not a CA. We do this check only on certificates marked as WWW server,
* because that's where the CN check is only performed. */
- if (_gnutls_check_key_purpose(cert, GNUTLS_KP_TLS_WWW_SERVER, 0) != 0)
- do {
- /* ensure there is only a single CN, according to rfc6125 */
- name_size = sizeof(name);
- ret = gnutls_x509_crt_get_dn_by_oid(cert, GNUTLS_OID_X520_COMMON_NAME,
- 1, 0, name, &name_size);
- if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
- return gnutls_assert_val(0);
+ if (_gnutls_check_key_purpose(cert, GNUTLS_KP_TLS_WWW_SERVER, 0)
+ != 0)
+ do {
+ /* ensure there is only a single CN, according to rfc6125 */
+ name_size = sizeof(name);
+ ret =
+ gnutls_x509_crt_get_dn_by_oid(cert,
+ GNUTLS_OID_X520_COMMON_NAME,
+ 1, 0, name,
+ &name_size);
+ if (ret !=
+ GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ return gnutls_assert_val(0);
- name_size = sizeof(name);
- ret = gnutls_x509_crt_get_dn_by_oid(cert, GNUTLS_OID_X520_COMMON_NAME,
- 0, 0, name, &name_size);
- if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
- break;
- else if (ret < 0)
- return gnutls_assert_val(0);
+ name_size = sizeof(name);
+ ret =
+ gnutls_x509_crt_get_dn_by_oid(cert,
+ GNUTLS_OID_X520_COMMON_NAME,
+ 0, 0, name,
+ &name_size);
+ if (ret ==
+ GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ break;
+ else if (ret < 0)
+ return gnutls_assert_val(0);
- found_one = 1;
- n.data = (void*)name;
- n.size = name_size;
- t = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_DNSNAME,
- &n);
- if (t == 0)
- return gnutls_assert_val(t);
- } while(0);
+ found_one = 1;
+ n.data = (void *)name;
+ n.size = name_size;
+ t = gnutls_x509_name_constraints_check(nc,
+ GNUTLS_SAN_DNSNAME,
+ &n);
+ if (t == 0)
+ return gnutls_assert_val(t);
+ } while (0);
/* passed */
if (found_one != 0)
@@ -1278,37 +1361,42 @@ unsigned found_one;
return gnutls_assert_val(1);
}
} else if (type == GNUTLS_SAN_IPADDRESS) {
- found_one = 0;
- for (idx=0;;idx++) {
- name_size = sizeof(name);
- ret = gnutls_x509_crt_get_subject_alt_name2(cert,
- idx, name, &name_size, &san_type, NULL);
- if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
- break;
- else if (ret < 0)
- return gnutls_assert_val(0);
+ found_one = 0;
+ for (idx = 0;; idx++) {
+ name_size = sizeof(name);
+ ret = gnutls_x509_crt_get_subject_alt_name2(cert,
+ idx, name,
+ &name_size,
+ &san_type,
+ NULL);
+ if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ break;
+ else if (ret < 0)
+ return gnutls_assert_val(0);
- if (san_type != GNUTLS_SAN_IPADDRESS)
- continue;
+ if (san_type != GNUTLS_SAN_IPADDRESS)
+ continue;
- found_one = 1;
- n.data = (void*)name;
- n.size = name_size;
- t = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, &n);
- if (t == 0)
- return gnutls_assert_val(t);
- }
+ found_one = 1;
+ n.data = (void *)name;
+ n.size = name_size;
+ t = gnutls_x509_name_constraints_check(nc,
+ GNUTLS_SAN_IPADDRESS,
+ &n);
+ if (t == 0)
+ return gnutls_assert_val(t);
+ }
- /* there is at least a single IP address. */
+ /* there is at least a single IP address. */
- if (found_one != 0) {
- return 1;
- } else {
- /* no name was found. According to RFC5280:
- * If no name of the type is in the certificate, the certificate is acceptable.
- */
- return gnutls_assert_val(1);
- }
+ if (found_one != 0) {
+ return 1;
+ } else {
+ /* no name was found. According to RFC5280:
+ * If no name of the type is in the certificate, the certificate is acceptable.
+ */
+ return gnutls_assert_val(1);
+ }
} else if (type == GNUTLS_SAN_URI) {
return check_unsupported_constraint2(cert, nc, type);
} else
@@ -1334,12 +1422,12 @@ unsigned found_one;
*
* Since: 3.3.0
**/
-int gnutls_x509_name_constraints_get_permitted(gnutls_x509_name_constraints_t nc,
- unsigned idx,
- unsigned *type, gnutls_datum_t * name)
+int gnutls_x509_name_constraints_get_permitted(gnutls_x509_name_constraints_t
+ nc, unsigned idx, unsigned *type,
+ gnutls_datum_t * name)
{
unsigned int i;
- struct name_constraints_node_st * tmp = nc->permitted;
+ struct name_constraints_node_st *tmp = nc->permitted;
for (i = 0; i < idx; i++) {
if (tmp == NULL)
@@ -1380,10 +1468,11 @@ int gnutls_x509_name_constraints_get_permitted(gnutls_x509_name_constraints_t nc
**/
int gnutls_x509_name_constraints_get_excluded(gnutls_x509_name_constraints_t nc,
unsigned idx,
- unsigned *type, gnutls_datum_t * name)
+ unsigned *type,
+ gnutls_datum_t * name)
{
unsigned int i;
- struct name_constraints_node_st * tmp = nc->excluded;
+ struct name_constraints_node_st *tmp = nc->excluded;
for (i = 0; i < idx; i++) {
if (tmp == NULL)
diff --git a/lib/x509/ocsp.c b/lib/x509/ocsp.c
index d233c63a3f..954427bd97 100644
--- a/lib/x509/ocsp.c
+++ b/lib/x509/ocsp.c
@@ -66,8 +66,7 @@ typedef struct gnutls_ocsp_resp_int {
**/
int gnutls_ocsp_req_init(gnutls_ocsp_req_t * req)
{
- gnutls_ocsp_req_t tmp =
- gnutls_calloc(1, sizeof(gnutls_ocsp_req_int));
+ gnutls_ocsp_req_t tmp = gnutls_calloc(1, sizeof(gnutls_ocsp_req_int));
int ret;
*req = NULL;
@@ -116,8 +115,7 @@ void gnutls_ocsp_req_deinit(gnutls_ocsp_req_t req)
**/
int gnutls_ocsp_resp_init(gnutls_ocsp_resp_t * resp)
{
- gnutls_ocsp_resp_t tmp =
- gnutls_calloc(1, sizeof(gnutls_ocsp_resp_int));
+ gnutls_ocsp_resp_t tmp = gnutls_calloc(1, sizeof(gnutls_ocsp_resp_int));
int ret;
*resp = NULL;
@@ -133,8 +131,7 @@ int gnutls_ocsp_resp_init(gnutls_ocsp_resp_t * resp)
}
ret = asn1_create_element(_gnutls_get_pkix(),
- "PKIX1.BasicOCSPResponse",
- &tmp->basicresp);
+ "PKIX1.BasicOCSPResponse", &tmp->basicresp);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
asn1_delete_structure(&tmp->resp);
@@ -183,8 +180,7 @@ void gnutls_ocsp_resp_deinit(gnutls_ocsp_resp_t resp)
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
* negative error value.
**/
-int
-gnutls_ocsp_req_import(gnutls_ocsp_req_t req, const gnutls_datum_t * data)
+int gnutls_ocsp_req_import(gnutls_ocsp_req_t req, const gnutls_datum_t * data)
{
int ret = 0;
@@ -230,8 +226,7 @@ gnutls_ocsp_req_import(gnutls_ocsp_req_t req, const gnutls_datum_t * data)
* negative error value.
**/
int
-gnutls_ocsp_resp_import(gnutls_ocsp_resp_t resp,
- const gnutls_datum_t * data)
+gnutls_ocsp_resp_import(gnutls_ocsp_resp_t resp, const gnutls_datum_t * data)
{
return gnutls_ocsp_resp_import2(resp, data, GNUTLS_X509_FMT_DER);
}
@@ -253,8 +248,7 @@ gnutls_ocsp_resp_import(gnutls_ocsp_resp_t resp,
**/
int
gnutls_ocsp_resp_import2(gnutls_ocsp_resp_t resp,
- const gnutls_datum_t *data,
- gnutls_x509_crt_fmt_t fmt)
+ const gnutls_datum_t * data, gnutls_x509_crt_fmt_t fmt)
{
int ret = 0;
gnutls_datum_t der;
@@ -268,7 +262,9 @@ gnutls_ocsp_resp_import2(gnutls_ocsp_resp_t resp,
der.size = data->size;
if (fmt == GNUTLS_X509_FMT_PEM) {
- ret = gnutls_pem_base64_decode2(BARE_PEM_OCSP_RESPONSE, data, &der);
+ ret =
+ gnutls_pem_base64_decode2(BARE_PEM_OCSP_RESPONSE, data,
+ &der);
if (ret < 0) {
return gnutls_assert_val(ret);
}
@@ -283,8 +279,7 @@ gnutls_ocsp_resp_import2(gnutls_ocsp_resp_t resp,
asn1_delete_structure(&resp->basicresp);
ret = asn1_create_element(_gnutls_get_pkix(),
- "PKIX1.OCSPResponse",
- &resp->resp);
+ "PKIX1.OCSPResponse", &resp->resp);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -311,8 +306,7 @@ gnutls_ocsp_resp_import2(gnutls_ocsp_resp_t resp,
goto cleanup;
}
- if (gnutls_ocsp_resp_get_status(resp) !=
- GNUTLS_OCSP_RESP_SUCCESSFUL) {
+ if (gnutls_ocsp_resp_get_status(resp) != GNUTLS_OCSP_RESP_SUCCESSFUL) {
ret = GNUTLS_E_SUCCESS;
goto cleanup;
}
@@ -333,15 +327,16 @@ gnutls_ocsp_resp_import2(gnutls_ocsp_resp_t resp,
ret =
_gnutls_x509_read_value(resp->resp,
- "responseBytes.response", &resp->der);
+ "responseBytes.response",
+ &resp->der);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
ret =
- _asn1_strict_der_decode(&resp->basicresp, resp->der.data, resp->der.size,
- NULL);
+ _asn1_strict_der_decode(&resp->basicresp, resp->der.data,
+ resp->der.size, NULL);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -353,7 +348,7 @@ gnutls_ocsp_resp_import2(gnutls_ocsp_resp_t resp,
}
ret = GNUTLS_E_SUCCESS;
-cleanup:
+ cleanup:
if (der.data != data->data)
gnutls_free(der.data);
return ret;
@@ -386,7 +381,7 @@ int gnutls_ocsp_req_export(gnutls_ocsp_req_const_t req, gnutls_datum_t * data)
ret = gnutls_ocsp_req_get_extension(req, 0, NULL, NULL, NULL);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
(void)asn1_write_value(req->req, "tbsRequest.requestExtensions",
- NULL, 0);
+ NULL, 0);
return _gnutls_x509_get_raw_field(req->req, "", data);
}
@@ -401,7 +396,8 @@ int gnutls_ocsp_req_export(gnutls_ocsp_req_const_t req, gnutls_datum_t * data)
* Returns: In case of failure a negative error code will be
* returned, and 0 on success.
**/
-int gnutls_ocsp_resp_export(gnutls_ocsp_resp_const_t resp, gnutls_datum_t * data)
+int gnutls_ocsp_resp_export(gnutls_ocsp_resp_const_t resp,
+ gnutls_datum_t * data)
{
return gnutls_ocsp_resp_export2(resp, data, GNUTLS_X509_FMT_DER);
}
@@ -419,8 +415,8 @@ int gnutls_ocsp_resp_export(gnutls_ocsp_resp_const_t resp, gnutls_datum_t * data
*
* Since: 3.6.3
**/
-int gnutls_ocsp_resp_export2(gnutls_ocsp_resp_const_t resp, gnutls_datum_t * data,
- gnutls_x509_crt_fmt_t fmt)
+int gnutls_ocsp_resp_export2(gnutls_ocsp_resp_const_t resp,
+ gnutls_datum_t * data, gnutls_x509_crt_fmt_t fmt)
{
int ret;
gnutls_datum_t der;
@@ -524,7 +520,7 @@ gnutls_ocsp_req_get_cert_id(gnutls_ocsp_req_const_t req,
return ret;
}
- ret = gnutls_oid_to_digest((char *) sa.data);
+ ret = gnutls_oid_to_digest((char *)sa.data);
_gnutls_free_datum(&sa);
if (ret < 0) {
gnutls_assert();
@@ -538,9 +534,7 @@ gnutls_ocsp_req_get_cert_id(gnutls_ocsp_req_const_t req,
snprintf(name, sizeof(name),
"tbsRequest.requestList.?%u.reqCert.issuerNameHash",
indx + 1);
- ret =
- _gnutls_x509_read_value(req->req, name,
- issuer_name_hash);
+ ret = _gnutls_x509_read_value(req->req, name, issuer_name_hash);
if (ret != GNUTLS_E_SUCCESS) {
gnutls_assert();
return ret;
@@ -551,9 +545,7 @@ gnutls_ocsp_req_get_cert_id(gnutls_ocsp_req_const_t req,
snprintf(name, sizeof(name),
"tbsRequest.requestList.?%u.reqCert.issuerKeyHash",
indx + 1);
- ret =
- _gnutls_x509_read_value(req->req, name,
- issuer_key_hash);
+ ret = _gnutls_x509_read_value(req->req, name, issuer_key_hash);
if (ret != GNUTLS_E_SUCCESS) {
gnutls_assert();
if (issuer_name_hash)
@@ -566,8 +558,7 @@ gnutls_ocsp_req_get_cert_id(gnutls_ocsp_req_const_t req,
snprintf(name, sizeof(name),
"tbsRequest.requestList.?%u.reqCert.serialNumber",
indx + 1);
- ret =
- _gnutls_x509_read_value(req->req, name, serial_number);
+ ret = _gnutls_x509_read_value(req->req, name, serial_number);
if (ret != GNUTLS_E_SUCCESS) {
gnutls_assert();
if (issuer_name_hash)
@@ -629,8 +620,7 @@ gnutls_ocsp_req_add_cert_id(gnutls_ocsp_req_t req,
return GNUTLS_E_INVALID_REQUEST;
}
- result =
- asn1_write_value(req->req, "tbsRequest.requestList", "NEW", 1);
+ result = asn1_write_value(req->req, "tbsRequest.requestList", "NEW", 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -684,8 +674,7 @@ gnutls_ocsp_req_add_cert_id(gnutls_ocsp_req_t req,
/* XXX add separate function that can add extensions too */
result = asn1_write_value
(req->req,
- "tbsRequest.requestList.?LAST.singleRequestExtensions", NULL,
- 0);
+ "tbsRequest.requestList.?LAST.singleRequestExtensions", NULL, 0);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -809,8 +798,7 @@ int
gnutls_ocsp_req_get_extension(gnutls_ocsp_req_const_t req,
unsigned indx,
gnutls_datum_t * oid,
- unsigned int *critical,
- gnutls_datum_t * data)
+ unsigned int *critical, gnutls_datum_t * data)
{
int ret;
char str_critical[10];
@@ -842,8 +830,7 @@ gnutls_ocsp_req_get_extension(gnutls_ocsp_req_const_t req,
if (oid) {
snprintf(name, sizeof(name),
- "tbsRequest.requestExtensions.?%u.extnID",
- indx + 1);
+ "tbsRequest.requestExtensions.?%u.extnID", indx + 1);
ret = _gnutls_x509_read_value(req->req, name, oid);
if (ret != GNUTLS_E_SUCCESS) {
gnutls_assert();
@@ -892,8 +879,8 @@ gnutls_ocsp_req_set_extension(gnutls_ocsp_req_t req,
return GNUTLS_E_INVALID_REQUEST;
}
- return _gnutls_set_extension(req->req, "tbsRequest.requestExtensions", oid,
- data, critical);
+ return _gnutls_set_extension(req->req, "tbsRequest.requestExtensions",
+ oid, data, critical);
}
/**
@@ -923,7 +910,7 @@ gnutls_ocsp_req_get_nonce(gnutls_ocsp_req_const_t req,
}
ret = _gnutls_get_extension(req->req, "tbsRequest.requestExtensions",
- GNUTLS_OCSP_NONCE, 0, &tmp, critical);
+ GNUTLS_OCSP_NONCE, 0, &tmp, critical);
if (ret != GNUTLS_E_SUCCESS) {
gnutls_assert();
return ret;
@@ -931,7 +918,7 @@ gnutls_ocsp_req_get_nonce(gnutls_ocsp_req_const_t req,
ret =
_gnutls_x509_decode_string(ASN1_ETYPE_OCTET_STRING, tmp.data,
- (size_t) tmp.size, nonce, 0);
+ (size_t)tmp.size, nonce, 0);
if (ret < 0) {
gnutls_assert();
gnutls_free(tmp.data);
@@ -958,8 +945,7 @@ gnutls_ocsp_req_get_nonce(gnutls_ocsp_req_const_t req,
**/
int
gnutls_ocsp_req_set_nonce(gnutls_ocsp_req_t req,
- unsigned int critical,
- const gnutls_datum_t * nonce)
+ unsigned int critical, const gnutls_datum_t * nonce)
{
int ret;
gnutls_datum_t dernonce;
@@ -985,7 +971,7 @@ gnutls_ocsp_req_set_nonce(gnutls_ocsp_req_t req,
memcpy(dernonce.data + 1 + len, nonce->data, nonce->size);
ret = _gnutls_set_extension(req->req, "tbsRequest.requestExtensions",
- GNUTLS_OCSP_NONCE, &dernonce, critical);
+ GNUTLS_OCSP_NONCE, &dernonce, critical);
gnutls_free(dernonce.data);
if (ret != GNUTLS_E_SUCCESS) {
gnutls_assert();
@@ -1073,7 +1059,7 @@ int gnutls_ocsp_resp_get_status(gnutls_ocsp_resp_const_t resp)
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_PACKET);
}
- return (int) str[0];
+ return (int)str[0];
}
/**
@@ -1125,8 +1111,7 @@ gnutls_ocsp_resp_get_response(gnutls_ocsp_resp_const_t resp,
if (response != NULL) {
ret =
_gnutls_x509_read_value(resp->resp,
- "responseBytes.response",
- response);
+ "responseBytes.response", response);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1185,11 +1170,13 @@ gnutls_ocsp_resp_get_responder(gnutls_ocsp_resp_const_t resp,
{
int ret;
- ret = gnutls_ocsp_resp_get_responder2(resp, dn, GNUTLS_X509_DN_FLAG_COMPAT);
+ ret =
+ gnutls_ocsp_resp_get_responder2(resp, dn,
+ GNUTLS_X509_DN_FLAG_COMPAT);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
dn->data = NULL;
dn->size = 0;
- return 0; /* for backwards compatibility */
+ return 0; /* for backwards compatibility */
}
return ret;
@@ -1222,7 +1209,7 @@ gnutls_ocsp_resp_get_responder(gnutls_ocsp_resp_const_t resp,
**/
int
gnutls_ocsp_resp_get_responder2(gnutls_ocsp_resp_const_t resp,
- gnutls_datum_t * dn, unsigned flags)
+ gnutls_datum_t * dn, unsigned flags)
{
if (resp == NULL || dn == NULL) {
gnutls_assert();
@@ -1233,8 +1220,8 @@ gnutls_ocsp_resp_get_responder2(gnutls_ocsp_resp_const_t resp,
dn->size = 0;
return _gnutls_x509_get_dn(resp->basicresp,
- "tbsResponseData.responderID.byName",
- dn, flags);
+ "tbsResponseData.responderID.byName",
+ dn, flags);
}
/**
@@ -1255,8 +1242,7 @@ gnutls_ocsp_resp_get_responder2(gnutls_ocsp_resp_const_t resp,
**/
int
gnutls_ocsp_resp_get_responder_raw_id(gnutls_ocsp_resp_const_t resp,
- unsigned type,
- gnutls_datum_t * raw)
+ unsigned type, gnutls_datum_t * raw)
{
int ret;
@@ -1266,14 +1252,17 @@ gnutls_ocsp_resp_get_responder_raw_id(gnutls_ocsp_resp_const_t resp,
}
if (type == GNUTLS_OCSP_RESP_ID_KEY)
- ret = _gnutls_x509_read_value(resp->basicresp, "tbsResponseData.responderID.byKey", raw);
+ ret =
+ _gnutls_x509_read_value(resp->basicresp,
+ "tbsResponseData.responderID.byKey",
+ raw);
else {
gnutls_datum_t tmp;
/* simply reading a CHOICE of CHOICE value doesn't work in libtasn1 */
ret = _gnutls_x509_get_raw_field2(resp->basicresp, &resp->der,
- "tbsResponseData.responderID.byName",
- &tmp);
+ "tbsResponseData.responderID.byName",
+ &tmp);
if (ret >= 0) {
int real;
/* skip the tag */
@@ -1299,14 +1288,15 @@ gnutls_ocsp_resp_get_responder_raw_id(gnutls_ocsp_resp_const_t resp,
goto fail;
}
- tmp.data+=real;
- tmp.size-=real;
+ tmp.data += real;
+ tmp.size -= real;
ret = _gnutls_set_datum(raw, tmp.data, tmp.size);
}
}
- if (ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND || ret == GNUTLS_E_ASN1_VALUE_NOT_FOUND)
+ if (ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND
+ || ret == GNUTLS_E_ASN1_VALUE_NOT_FOUND)
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
fail:
@@ -1368,12 +1358,13 @@ gnutls_ocsp_resp_check_crt(gnutls_ocsp_resp_const_t resp,
int ret;
gnutls_digest_algorithm_t digest;
gnutls_datum_t rdn_hash = { NULL, 0 }, rserial = {
- NULL, 0};
+ NULL, 0
+ };
gnutls_datum_t cserial = { NULL, 0 };
gnutls_datum_t dn = { NULL, 0 };
uint8_t cdn_hash[MAX_HASH_SIZE];
size_t t, hash_len;
-
+
if (resp == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -1437,7 +1428,7 @@ gnutls_ocsp_resp_check_crt(gnutls_ocsp_resp_const_t resp,
ret = 0;
- cleanup:
+ cleanup:
gnutls_free(rdn_hash.data);
gnutls_free(rserial.data);
gnutls_free(cserial.data);
@@ -1561,8 +1552,7 @@ gnutls_ocsp_resp_get_single(gnutls_ocsp_resp_const_t resp,
if (cert_status) {
snprintf(name, sizeof(name),
- "tbsResponseData.responses.?%u.certStatus",
- indx + 1);
+ "tbsResponseData.responses.?%u.certStatus", indx + 1);
len = sizeof(oidtmp);
result = asn1_read_value(resp->basicresp, name, oidtmp, &len);
@@ -1578,11 +1568,9 @@ gnutls_ocsp_resp_get_single(gnutls_ocsp_resp_const_t resp,
if (len == 5 && memcmp(oidtmp, "good", len) == 0)
*cert_status = GNUTLS_OCSP_CERT_GOOD;
- else if (len == 8
- && memcmp(oidtmp, "revoked", len) == 0)
+ else if (len == 8 && memcmp(oidtmp, "revoked", len) == 0)
*cert_status = GNUTLS_OCSP_CERT_REVOKED;
- else if (len == 8
- && memcmp(oidtmp, "unknown", len) == 0)
+ else if (len == 8 && memcmp(oidtmp, "unknown", len) == 0)
*cert_status = GNUTLS_OCSP_CERT_UNKNOWN;
else {
gnutls_assert();
@@ -1593,8 +1581,7 @@ gnutls_ocsp_resp_get_single(gnutls_ocsp_resp_const_t resp,
if (this_update) {
snprintf(name, sizeof(name),
- "tbsResponseData.responses.?%u.thisUpdate",
- indx + 1);
+ "tbsResponseData.responses.?%u.thisUpdate", indx + 1);
len = sizeof(ttime) - 1;
result = asn1_read_value(resp->basicresp, name, ttime, &len);
if (result != ASN1_SUCCESS) {
@@ -1602,23 +1589,20 @@ gnutls_ocsp_resp_get_single(gnutls_ocsp_resp_const_t resp,
ret = GNUTLS_E_ASN1_DER_ERROR;
goto fail;
} else {
- *this_update =
- _gnutls_x509_generalTime2gtime(ttime);
+ *this_update = _gnutls_x509_generalTime2gtime(ttime);
}
}
if (next_update) {
snprintf(name, sizeof(name),
- "tbsResponseData.responses.?%u.nextUpdate",
- indx + 1);
+ "tbsResponseData.responses.?%u.nextUpdate", indx + 1);
len = sizeof(ttime) - 1;
result = asn1_read_value(resp->basicresp, name, ttime, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
*next_update = (time_t) (-1);
} else
- *next_update =
- _gnutls_x509_generalTime2gtime(ttime);
+ *next_update = _gnutls_x509_generalTime2gtime(ttime);
}
if (revocation_time) {
@@ -1644,8 +1628,7 @@ gnutls_ocsp_resp_get_single(gnutls_ocsp_resp_const_t resp,
ret = _gnutls_x509_read_uint(resp->basicresp, name,
revocation_reason);
if (ret < 0)
- *revocation_reason =
- GNUTLS_X509_CRLREASON_UNSPECIFIED;
+ *revocation_reason = GNUTLS_X509_CRLREASON_UNSPECIFIED;
}
return GNUTLS_E_SUCCESS;
@@ -1688,8 +1671,7 @@ int
gnutls_ocsp_resp_get_extension(gnutls_ocsp_resp_const_t resp,
unsigned indx,
gnutls_datum_t * oid,
- unsigned int *critical,
- gnutls_datum_t * data)
+ unsigned int *critical, gnutls_datum_t * data)
{
int ret;
char str_critical[10];
@@ -1702,8 +1684,7 @@ gnutls_ocsp_resp_get_extension(gnutls_ocsp_resp_const_t resp,
}
snprintf(name, sizeof(name),
- "tbsResponseData.responseExtensions.?%u.critical",
- indx + 1);
+ "tbsResponseData.responseExtensions.?%u.critical", indx + 1);
len = sizeof(str_critical);
ret = asn1_read_value(resp->basicresp, name, str_critical, &len);
if (ret == ASN1_ELEMENT_NOT_FOUND)
@@ -1771,8 +1752,8 @@ gnutls_ocsp_resp_get_nonce(gnutls_ocsp_resp_const_t resp,
ret =
_gnutls_get_extension(resp->basicresp,
- "tbsResponseData.responseExtensions",
- GNUTLS_OCSP_NONCE, 0, &tmp, critical);
+ "tbsResponseData.responseExtensions",
+ GNUTLS_OCSP_NONCE, 0, &tmp, critical);
if (ret != GNUTLS_E_SUCCESS) {
gnutls_assert();
return ret;
@@ -1780,7 +1761,7 @@ gnutls_ocsp_resp_get_nonce(gnutls_ocsp_resp_const_t resp,
ret =
_gnutls_x509_decode_string(ASN1_ETYPE_OCTET_STRING, tmp.data,
- (size_t) tmp.size, nonce, 0);
+ (size_t)tmp.size, nonce, 0);
if (ret < 0) {
gnutls_assert();
gnutls_free(tmp.data);
@@ -1815,7 +1796,7 @@ int gnutls_ocsp_resp_get_signature_algorithm(gnutls_ocsp_resp_const_t resp)
return ret;
}
- ret = gnutls_oid_to_sign((char *) sa.data);
+ ret = gnutls_oid_to_sign((char *)sa.data);
_gnutls_free_datum(&sa);
@@ -1876,7 +1857,7 @@ gnutls_ocsp_resp_get_signature(gnutls_ocsp_resp_const_t resp,
**/
int
gnutls_ocsp_resp_get_certs(gnutls_ocsp_resp_const_t resp,
- gnutls_x509_crt_t ** certs, size_t * ncerts)
+ gnutls_x509_crt_t ** certs, size_t *ncerts)
{
int ret;
size_t ctr = 0, i;
@@ -1898,9 +1879,8 @@ gnutls_ocsp_resp_get_certs(gnutls_ocsp_resp_const_t resp,
char name[MAX_NAME_SIZE];
snprintf(name, sizeof(name), "certs.?%u",
- (unsigned int) (ctr + 1));
- ret =
- _gnutls_x509_der_encode(resp->basicresp, name, &c, 0);
+ (unsigned int)(ctr + 1));
+ ret = _gnutls_x509_der_encode(resp->basicresp, name, &c, 0);
if (ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND)
break;
if (ret != GNUTLS_E_SUCCESS) {
@@ -1953,7 +1933,7 @@ gnutls_ocsp_resp_get_certs(gnutls_ocsp_resp_const_t resp,
return GNUTLS_E_SUCCESS;
- error:
+ error:
gnutls_free(c.data);
for (i = 0; i < ctr; i++)
gnutls_x509_crt_deinit(tmpcerts[i]);
@@ -1968,14 +1948,17 @@ static gnutls_x509_crt_t find_signercert(gnutls_ocsp_resp_const_t resp)
int rc;
gnutls_x509_crt_t *certs = NULL;
size_t ncerts = 0, i;
- gnutls_datum_t riddn = {NULL, 0};
- gnutls_datum_t keyid = {NULL, 0};
+ gnutls_datum_t riddn = { NULL, 0 };
+ gnutls_datum_t keyid = { NULL, 0 };
gnutls_x509_crt_t signercert = NULL;
- rc = gnutls_ocsp_resp_get_responder_raw_id(resp, GNUTLS_OCSP_RESP_ID_DN, &riddn);
+ rc = gnutls_ocsp_resp_get_responder_raw_id(resp, GNUTLS_OCSP_RESP_ID_DN,
+ &riddn);
if (rc == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
gnutls_assert();
- rc = gnutls_ocsp_resp_get_responder_raw_id(resp, GNUTLS_OCSP_RESP_ID_KEY, &keyid);
+ rc = gnutls_ocsp_resp_get_responder_raw_id(resp,
+ GNUTLS_OCSP_RESP_ID_KEY,
+ &keyid);
}
if (rc != GNUTLS_E_SUCCESS) {
gnutls_assert();
@@ -1993,28 +1976,34 @@ static gnutls_x509_crt_t find_signercert(gnutls_ocsp_resp_const_t resp)
assert(certs[i] != NULL);
_gnutls_cert_log("checking whether signed against", certs[i]);
if (keyid.data != NULL) {
- uint8_t digest[64]; /* to support longer key IDs */
+ uint8_t digest[64]; /* to support longer key IDs */
gnutls_datum_t spki;
size_t digest_size = sizeof(digest);
int len;
- _gnutls_debug_log("checking key ID against SPK identifier\n");
+ _gnutls_debug_log
+ ("checking key ID against SPK identifier\n");
/* check subject key identifier as well, some certificates
* match that, but not the hash */
- rc = gnutls_x509_crt_get_subject_key_id(certs[i], digest, &digest_size, NULL);
- if (rc >= 0 && digest_size == keyid.size &&
- memcmp(keyid.data, digest, digest_size) == 0) {
+ rc = gnutls_x509_crt_get_subject_key_id(certs[i],
+ digest,
+ &digest_size,
+ NULL);
+ if (rc >= 0 && digest_size == keyid.size
+ && memcmp(keyid.data, digest, digest_size) == 0) {
signercert = certs[i];
goto quit;
}
- _gnutls_debug_log("checking key ID against SPKI hash\n");
+ _gnutls_debug_log
+ ("checking key ID against SPKI hash\n");
/* continue with checking the hash */
- rc = _gnutls_x509_get_raw_field2(certs[i]->cert, &certs[i]->der,
- "tbsCertificate.subjectPublicKeyInfo.subjectPublicKey",
- &spki);
+ rc = _gnutls_x509_get_raw_field2(certs[i]->cert,
+ &certs[i]->der,
+ "tbsCertificate.subjectPublicKeyInfo.subjectPublicKey",
+ &spki);
if (rc < 0 || spki.size < 6) {
gnutls_assert();
signercert = NULL;
@@ -2024,26 +2013,28 @@ static gnutls_x509_crt_t find_signercert(gnutls_ocsp_resp_const_t resp)
/* For some reason the protocol requires we skip the
* tag, length and number of unused bits.
*/
- if (spki.data[0] != 0x03) { /* bit string */
+ if (spki.data[0] != 0x03) { /* bit string */
gnutls_assert();
signercert = NULL;
continue;
}
- rc = asn1_get_length_der(spki.data+1, spki.size-1, &len);
+ rc = asn1_get_length_der(spki.data + 1, spki.size - 1,
+ &len);
if (rc <= 0) {
gnutls_assert();
signercert = NULL;
continue;
}
- len += 1+1; /* skip unused bits as well */
+ len += 1 + 1; /* skip unused bits as well */
if (len >= (int)spki.size) {
gnutls_assert();
signercert = NULL;
continue;
}
- rc = gnutls_hash_fast(GNUTLS_DIG_SHA1, spki.data+len, spki.size-len, digest);
+ rc = gnutls_hash_fast(GNUTLS_DIG_SHA1, spki.data + len,
+ spki.size - len, digest);
if (rc < 0) {
gnutls_assert();
signercert = NULL;
@@ -2051,7 +2042,7 @@ static gnutls_x509_crt_t find_signercert(gnutls_ocsp_resp_const_t resp)
}
if ((20 == keyid.size) &&
- memcmp(keyid.data, digest, 20) == 0) {
+ memcmp(keyid.data, digest, 20) == 0) {
signercert = certs[i];
goto quit;
}
@@ -2061,7 +2052,8 @@ static gnutls_x509_crt_t find_signercert(gnutls_ocsp_resp_const_t resp)
assert(riddn.data != NULL);
if ((certs[i]->raw_dn.size == riddn.size)
- && memcmp(riddn.data, certs[i]->raw_dn.data, riddn.size) == 0) {
+ && memcmp(riddn.data, certs[i]->raw_dn.data,
+ riddn.size) == 0) {
signercert = certs[i];
goto quit;
}
@@ -2072,7 +2064,7 @@ static gnutls_x509_crt_t find_signercert(gnutls_ocsp_resp_const_t resp)
gnutls_assert();
signercert = NULL;
- quit:
+ quit:
gnutls_free(riddn.data);
gnutls_free(keyid.data);
for (i = 0; i < ncerts; i++)
@@ -2105,7 +2097,8 @@ _ocsp_resp_verify_direct(gnutls_ocsp_resp_const_t resp,
}
sigalg = rc;
- rc = _gnutls_x509_get_raw_field2(resp->basicresp, &resp->der, "tbsResponseData", &data);
+ rc = _gnutls_x509_get_raw_field2(resp->basicresp, &resp->der,
+ "tbsResponseData", &data);
if (rc != GNUTLS_E_SUCCESS) {
gnutls_assert();
goto done;
@@ -2143,7 +2136,7 @@ _ocsp_resp_verify_direct(gnutls_ocsp_resp_const_t resp,
rc = GNUTLS_E_SUCCESS;
- done:
+ done:
gnutls_free(sig.data);
gnutls_pubkey_deinit(pubkey);
@@ -2270,7 +2263,7 @@ gnutls_ocsp_resp_verify_direct(gnutls_ocsp_resp_const_t resp,
rc = _ocsp_resp_verify_direct(resp, signercert, verify, flags);
- done:
+ done:
if (signercert != issuer)
gnutls_x509_crt_deinit(signercert);
@@ -2328,7 +2321,9 @@ gnutls_ocsp_resp_verify(gnutls_ocsp_resp_const_t resp,
if (!signercert) {
gnutls_datum_t dn;
- rc = gnutls_ocsp_resp_get_responder_raw_id(resp, GNUTLS_OCSP_RESP_ID_DN, &dn);
+ rc = gnutls_ocsp_resp_get_responder_raw_id(resp,
+ GNUTLS_OCSP_RESP_ID_DN,
+ &dn);
if (rc < 0) {
gnutls_assert();
*verify = GNUTLS_OCSP_VERIFY_SIGNER_NOT_FOUND;
@@ -2336,7 +2331,8 @@ gnutls_ocsp_resp_verify(gnutls_ocsp_resp_const_t resp,
goto done;
}
- rc = gnutls_x509_trust_list_get_issuer_by_dn(trustlist, &dn, &signercert, 0);
+ rc = gnutls_x509_trust_list_get_issuer_by_dn(trustlist, &dn,
+ &signercert, 0);
gnutls_free(dn.data);
if (rc < 0) {
@@ -2356,7 +2352,7 @@ gnutls_ocsp_resp_verify(gnutls_ocsp_resp_const_t resp,
gnutls_typed_vdata_st vdata;
vdata.type = GNUTLS_DT_KEY_PURPOSE_OID;
- vdata.data = (void*)GNUTLS_KP_OCSP_SIGNING;
+ vdata.data = (void *)GNUTLS_KP_OCSP_SIGNING;
vdata.size = 0;
gnutls_assert();
@@ -2364,7 +2360,8 @@ gnutls_ocsp_resp_verify(gnutls_ocsp_resp_const_t resp,
rc = gnutls_x509_trust_list_verify_crt2(trustlist,
&signercert, 1,
&vdata, 1,
- flags, &vtmp, NULL);
+ flags, &vtmp,
+ NULL);
if (rc != GNUTLS_E_SUCCESS) {
gnutls_assert();
goto done;
@@ -2380,7 +2377,8 @@ gnutls_ocsp_resp_verify(gnutls_ocsp_resp_const_t resp,
rc = check_ocsp_purpose(signercert);
if (rc < 0) {
gnutls_assert();
- *verify = GNUTLS_OCSP_VERIFY_SIGNER_KEYUSAGE_ERROR;
+ *verify =
+ GNUTLS_OCSP_VERIFY_SIGNER_KEYUSAGE_ERROR;
rc = GNUTLS_E_SUCCESS;
goto done;
}
@@ -2389,7 +2387,7 @@ gnutls_ocsp_resp_verify(gnutls_ocsp_resp_const_t resp,
rc = _ocsp_resp_verify_direct(resp, signercert, verify, flags);
- done:
+ done:
gnutls_x509_crt_deinit(signercert);
return rc;
@@ -2420,35 +2418,37 @@ gnutls_ocsp_resp_verify(gnutls_ocsp_resp_const_t resp,
* Since: 3.6.3
**/
int
-gnutls_ocsp_resp_list_import2(gnutls_ocsp_resp_t **ocsps,
- unsigned int *size,
- const gnutls_datum_t *resp_data,
- gnutls_x509_crt_fmt_t format,
- unsigned int flags)
+gnutls_ocsp_resp_list_import2(gnutls_ocsp_resp_t ** ocsps,
+ unsigned int *size,
+ const gnutls_datum_t * resp_data,
+ gnutls_x509_crt_fmt_t format, unsigned int flags)
{
gnutls_ocsp_resp_t resp = NULL;
gnutls_ocsp_resp_t *new_ocsps;
int ret;
unsigned i;
-
if (format == GNUTLS_X509_FMT_PEM) {
/* load multiple responses */
- gnutls_datum_t p = {resp_data->data, resp_data->size};
+ gnutls_datum_t p = { resp_data->data, resp_data->size };
*size = 0;
*ocsps = NULL;
p.data = memmem(p.data, p.size, PEM_OCSP_RESPONSE,
- sizeof(PEM_OCSP_RESPONSE)-1);
+ sizeof(PEM_OCSP_RESPONSE) - 1);
if (p.data == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
goto cleanup;
}
p.size -= p.data - resp_data->data;
if (p.size <= 0) {
- ret = gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
goto cleanup;
}
@@ -2459,7 +2459,9 @@ gnutls_ocsp_resp_list_import2(gnutls_ocsp_resp_t **ocsps,
goto fail;
}
- ret = gnutls_ocsp_resp_import2(resp, &p, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_ocsp_resp_import2(resp, &p,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
gnutls_assert();
goto fail;
@@ -2472,7 +2474,8 @@ gnutls_ocsp_resp_list_import2(gnutls_ocsp_resp_t **ocsps,
new_ocsps = _gnutls_reallocarray(*ocsps,
*size + 1,
- sizeof(gnutls_ocsp_resp_t));
+ sizeof
+ (gnutls_ocsp_resp_t));
if (new_ocsps == NULL) {
resp = NULL;
gnutls_assert();
@@ -2488,11 +2491,11 @@ gnutls_ocsp_resp_list_import2(gnutls_ocsp_resp_t **ocsps,
p.size--;
p.data = memmem(p.data, p.size, PEM_OCSP_RESPONSE,
- sizeof(PEM_OCSP_RESPONSE)-1);
+ sizeof(PEM_OCSP_RESPONSE) - 1);
if (p.data == NULL)
break;
p.size = resp_data->size - (p.data - resp_data->data);
- } while(p.size > 0);
+ } while (p.size > 0);
} else {
/* DER: load a single response */
ret = gnutls_ocsp_resp_init(&resp);
@@ -2500,7 +2503,9 @@ gnutls_ocsp_resp_list_import2(gnutls_ocsp_resp_t **ocsps,
return gnutls_assert_val(ret);
}
- ret = gnutls_ocsp_resp_import2(resp, resp_data, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_ocsp_resp_import2(resp, resp_data,
+ GNUTLS_X509_FMT_DER);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2522,7 +2527,7 @@ gnutls_ocsp_resp_list_import2(gnutls_ocsp_resp_t **ocsps,
goto cleanup;
fail:
- for (i=0;i<*size;i++) {
+ for (i = 0; i < *size; i++) {
gnutls_ocsp_resp_deinit((*ocsps)[i]);
}
gnutls_free(*ocsps);
@@ -2548,8 +2553,9 @@ time_t _gnutls_ocsp_get_validity(gnutls_ocsp_resp_const_t resp)
&cert_status, &vtime, &ntime,
&rtime, NULL);
if (ret < 0) {
- _gnutls_debug_log("There was an error parsing the OCSP response: %s\n",
- gnutls_strerror(ret));
+ _gnutls_debug_log
+ ("There was an error parsing the OCSP response: %s\n",
+ gnutls_strerror(ret));
return gnutls_assert_val(-1);
}
@@ -2585,7 +2591,8 @@ time_t _gnutls_ocsp_get_validity(gnutls_ocsp_resp_const_t resp)
}
}
-const char *_gnutls_ocsp_verify_status_to_str(gnutls_ocsp_verify_reason_t r, char out[MAX_OCSP_MSG_SIZE])
+const char *_gnutls_ocsp_verify_status_to_str(gnutls_ocsp_verify_reason_t r,
+ char out[MAX_OCSP_MSG_SIZE])
{
gnutls_buffer_st str;
gnutls_datum_t buf;
@@ -2595,8 +2602,7 @@ const char *_gnutls_ocsp_verify_status_to_str(gnutls_ocsp_verify_reason_t r, cha
if (r == 0)
_gnutls_buffer_append_str(&str,
- _
- ("The OCSP response is trusted. "));
+ _("The OCSP response is trusted. "));
if (r & GNUTLS_OCSP_VERIFY_SIGNER_NOT_FOUND)
_gnutls_buffer_append_str(&str,
diff --git a/lib/x509/ocsp.h b/lib/x509/ocsp.h
index b9c47570a2..8607a01ed5 100644
--- a/lib/x509/ocsp.h
+++ b/lib/x509/ocsp.h
@@ -21,17 +21,18 @@
*/
#ifndef GNUTLS_LIB_X509_OCSP_H
-#define GNUTLS_LIB_X509_OCSP_H
+# define GNUTLS_LIB_X509_OCSP_H
/* Online Certificate Status Protocol - RFC 2560
*/
-#include <gnutls/ocsp.h>
+# include <gnutls/ocsp.h>
/* fifteen days */
-#define MAX_OCSP_VALIDITY_SECS (15*60*60*24)
+# define MAX_OCSP_VALIDITY_SECS (15*60*60*24)
time_t _gnutls_ocsp_get_validity(gnutls_ocsp_resp_const_t resp);
-#define MAX_OCSP_MSG_SIZE 128
-const char *_gnutls_ocsp_verify_status_to_str(gnutls_ocsp_verify_reason_t r, char out[MAX_OCSP_MSG_SIZE]);
+# define MAX_OCSP_MSG_SIZE 128
+const char *_gnutls_ocsp_verify_status_to_str(gnutls_ocsp_verify_reason_t r,
+ char out[MAX_OCSP_MSG_SIZE]);
-#endif /* GNUTLS_LIB_X509_OCSP_H */
+#endif /* GNUTLS_LIB_X509_OCSP_H */
diff --git a/lib/x509/ocsp_output.c b/lib/x509/ocsp_output.c
index 8ead90c466..cdab4e866b 100644
--- a/lib/x509/ocsp_output.c
+++ b/lib/x509/ocsp_output.c
@@ -114,9 +114,7 @@ static void print_req(gnutls_buffer_st * str, gnutls_ocsp_req_const_t req)
gnutls_datum_t nonce;
unsigned int ncrit;
- ret =
- gnutls_ocsp_req_get_nonce(req, &ncrit,
- &nonce);
+ ret = gnutls_ocsp_req_get_nonce(req, &ncrit, &nonce);
if (ret != GNUTLS_E_SUCCESS) {
addf(str, "error: get_nonce: %s\n",
gnutls_strerror(ret));
@@ -130,16 +128,15 @@ static void print_req(gnutls_buffer_st * str, gnutls_ocsp_req_const_t req)
}
} else {
addf(str, "\t\tUnknown extension %s (%s):\n",
- oid.data,
- critical ? "critical" : "not critical");
+ oid.data, critical ? "critical" : "not critical");
adds(str, _("\t\t\tASCII: "));
- _gnutls_buffer_asciiprint(str, (char *) data.data,
+ _gnutls_buffer_asciiprint(str, (char *)data.data,
data.size);
addf(str, "\n");
adds(str, _("\t\t\tHexdump: "));
- _gnutls_buffer_hexprint(str, (char *) data.data,
+ _gnutls_buffer_hexprint(str, (char *)data.data,
data.size);
adds(str, "\n");
}
@@ -170,8 +167,7 @@ static void print_req(gnutls_buffer_st * str, gnutls_ocsp_req_const_t req)
**/
int
gnutls_ocsp_req_print(gnutls_ocsp_req_const_t req,
- gnutls_ocsp_print_formats_t format,
- gnutls_datum_t * out)
+ gnutls_ocsp_print_formats_t format, gnutls_datum_t * out)
{
gnutls_buffer_st str;
int rc;
@@ -278,16 +274,20 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
/* responderID */
{
- gnutls_datum_t dn = {NULL, 0};
+ gnutls_datum_t dn = { NULL, 0 };
ret = gnutls_ocsp_resp_get_responder2(resp, &dn, 0);
if (ret < 0) {
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
- ret = gnutls_ocsp_resp_get_responder_raw_id(resp, GNUTLS_OCSP_RESP_ID_KEY, &dn);
+ ret =
+ gnutls_ocsp_resp_get_responder_raw_id(resp,
+ GNUTLS_OCSP_RESP_ID_KEY,
+ &dn);
if (ret >= 0) {
addf(str, _("\tResponder Key ID: "));
- _gnutls_buffer_hexprint(str, dn.data, dn.size);
+ _gnutls_buffer_hexprint(str, dn.data,
+ dn.size);
adds(str, "\n");
}
gnutls_free(dn.data);
@@ -311,11 +311,11 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
addf(str, "error: ocsp_resp_get_produced\n");
else if (gmtime_r(&tim, &t) == NULL)
addf(str, "error: gmtime_r (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else if (strftime(s, max, "%a %b %d %H:%M:%S UTC %Y", &t)
== 0)
addf(str, "error: strftime (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else
addf(str, _("\tProduced At: %s\n"), s);
}
@@ -389,8 +389,7 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
}
if (p)
- addf(str, "\t\tCertificate Status: %s\n",
- p);
+ addf(str, "\t\tCertificate Status: %s\n", p);
}
/* XXX revocation reason */
@@ -404,15 +403,13 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
addf(str, "error: revocation_time\n");
else if (gmtime_r(&revocation_time, &t) == NULL)
addf(str, "error: gmtime_r (%ld)\n",
- (unsigned long) revocation_time);
+ (unsigned long)revocation_time);
else if (strftime
- (s, max, "%a %b %d %H:%M:%S UTC %Y",
- &t) == 0)
+ (s, max, "%a %b %d %H:%M:%S UTC %Y", &t) == 0)
addf(str, "error: strftime (%ld)\n",
- (unsigned long) revocation_time);
+ (unsigned long)revocation_time);
else
- addf(str, _("\t\tRevocation time: %s\n"),
- s);
+ addf(str, _("\t\tRevocation time: %s\n"), s);
}
{
@@ -424,12 +421,11 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
addf(str, "error: this_update\n");
else if (gmtime_r(&this_update, &t) == NULL)
addf(str, "error: gmtime_r (%ld)\n",
- (unsigned long) this_update);
+ (unsigned long)this_update);
else if (strftime
- (s, max, "%a %b %d %H:%M:%S UTC %Y",
- &t) == 0)
+ (s, max, "%a %b %d %H:%M:%S UTC %Y", &t) == 0)
addf(str, "error: strftime (%ld)\n",
- (unsigned long) this_update);
+ (unsigned long)this_update);
else
addf(str, _("\t\tThis Update: %s\n"), s);
}
@@ -442,14 +438,15 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
if (next_update != (time_t) - 1) {
if (gmtime_r(&next_update, &t) == NULL)
addf(str, "error: gmtime_r (%ld)\n",
- (unsigned long) next_update);
+ (unsigned long)next_update);
else if (strftime
(s, max, "%a %b %d %H:%M:%S UTC %Y",
&t) == 0)
addf(str, "error: strftime (%ld)\n",
- (unsigned long) next_update);
+ (unsigned long)next_update);
else
- addf(str, _("\t\tNext Update: %s\n"), s);
+ addf(str, _("\t\tNext Update: %s\n"),
+ s);
}
}
@@ -478,9 +475,7 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
gnutls_datum_t nonce;
unsigned int ncrit;
- ret =
- gnutls_ocsp_resp_get_nonce(resp, &ncrit,
- &nonce);
+ ret = gnutls_ocsp_resp_get_nonce(resp, &ncrit, &nonce);
if (ret != GNUTLS_E_SUCCESS) {
addf(str, "error: get_nonce: %s\n",
gnutls_strerror(ret));
@@ -494,16 +489,15 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
}
} else {
addf(str, "\t\tUnknown extension %s (%s):\n",
- oid.data,
- critical ? "critical" : "not critical");
+ oid.data, critical ? "critical" : "not critical");
adds(str, _("\t\t\tASCII: "));
- _gnutls_buffer_asciiprint(str, (char *) data.data,
+ _gnutls_buffer_asciiprint(str, (char *)data.data,
data.size);
addf(str, "\n");
adds(str, _("\t\t\tHexdump: "));
- _gnutls_buffer_hexprint(str, (char *) data.data,
+ _gnutls_buffer_hexprint(str, (char *)data.data,
data.size);
adds(str, "\n");
}
@@ -518,8 +512,7 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
addf(str, "error: get_signature_algorithm: %s\n",
gnutls_strerror(ret));
else {
- const char *name =
- gnutls_sign_algorithm_get_name(ret);
+ const char *name = gnutls_sign_algorithm_get_name(ret);
if (name == NULL)
name = _("unknown");
addf(str, _("\tSignature Algorithm: %s\n"), name);
@@ -543,8 +536,7 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
gnutls_strerror(ret));
else {
adds(str, _("\tSignature:\n"));
- _gnutls_buffer_hexdump(str, sig.data, sig.size,
- "\t\t");
+ _gnutls_buffer_hexdump(str, sig.data, sig.size, "\t\t");
gnutls_free(sig.data);
}
@@ -569,8 +561,7 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
addf(str, "error: crt_print: %s\n",
gnutls_strerror(ret));
else {
- addf(str, "%.*s", out.size,
- out.data);
+ addf(str, "%.*s", out.size, out.data);
gnutls_free(out.data);
}
@@ -636,8 +627,7 @@ print_resp(gnutls_buffer_st * str, gnutls_ocsp_resp_const_t resp,
**/
int
gnutls_ocsp_resp_print(gnutls_ocsp_resp_const_t resp,
- gnutls_ocsp_print_formats_t format,
- gnutls_datum_t * out)
+ gnutls_ocsp_print_formats_t format, gnutls_datum_t * out)
{
gnutls_buffer_st str;
int rc;
diff --git a/lib/x509/output.c b/lib/x509/output.c
index 2ec288c933..182155fda6 100644
--- a/lib/x509/output.c
+++ b/lib/x509/output.c
@@ -39,25 +39,31 @@
#define NON_NULL(x) (((x)!=NULL)?((char*)(x)):"")
#define ERROR_STR (char*) "(error)"
-static void print_idn_name(gnutls_buffer_st *str, const char *prefix, const char *type, gnutls_datum_t *name)
+static void print_idn_name(gnutls_buffer_st * str, const char *prefix,
+ const char *type, gnutls_datum_t * name)
{
unsigned printable = 1;
unsigned is_printed = 0;
- gnutls_datum_t out = {NULL, 0};
+ gnutls_datum_t out = { NULL, 0 };
int ret;
- if (!_gnutls_str_is_print((char*)name->data, name->size))
+ if (!_gnutls_str_is_print((char *)name->data, name->size))
printable = 0;
is_printed = 0;
if (!printable) {
- addf(str, _("%s%s: %.*s (contains illegal chars)\n"), prefix, type, name->size, NON_NULL(name->data));
+ addf(str, _("%s%s: %.*s (contains illegal chars)\n"), prefix,
+ type, name->size, NON_NULL(name->data));
is_printed = 1;
} else if (name->data != NULL) {
- if (strstr((char*)name->data, "xn--") != NULL) {
- ret = gnutls_idna_reverse_map((char*)name->data, name->size, &out, 0);
+ if (strstr((char *)name->data, "xn--") != NULL) {
+ ret =
+ gnutls_idna_reverse_map((char *)name->data,
+ name->size, &out, 0);
if (ret >= 0) {
- addf(str, _("%s%s: %.*s (%s)\n"), prefix, type, name->size, NON_NULL(name->data), out.data);
+ addf(str, _("%s%s: %.*s (%s)\n"), prefix, type,
+ name->size, NON_NULL(name->data),
+ out.data);
is_printed = 1;
gnutls_free(out.data);
}
@@ -65,29 +71,36 @@ static void print_idn_name(gnutls_buffer_st *str, const char *prefix, const char
}
if (is_printed == 0) {
- addf(str, _("%s%s: %.*s\n"), prefix, type, name->size, NON_NULL(name->data));
+ addf(str, _("%s%s: %.*s\n"), prefix, type, name->size,
+ NON_NULL(name->data));
}
}
-static void print_idn_email(gnutls_buffer_st *str, const char *prefix, const char *type, gnutls_datum_t *name)
+static void print_idn_email(gnutls_buffer_st * str, const char *prefix,
+ const char *type, gnutls_datum_t * name)
{
unsigned printable = 1;
unsigned is_printed = 0;
- gnutls_datum_t out = {NULL, 0};
+ gnutls_datum_t out = { NULL, 0 };
int ret;
- if (!_gnutls_str_is_print((char*)name->data, name->size))
+ if (!_gnutls_str_is_print((char *)name->data, name->size))
printable = 0;
is_printed = 0;
if (!printable) {
- addf(str, _("%s%s: %.*s (contains illegal chars)\n"), prefix, type, name->size, NON_NULL(name->data));
+ addf(str, _("%s%s: %.*s (contains illegal chars)\n"), prefix,
+ type, name->size, NON_NULL(name->data));
is_printed = 1;
} else if (name->data != NULL) {
- if (strstr((char*)name->data, "xn--") != NULL) {
- ret = _gnutls_idna_email_reverse_map((char*)name->data, name->size, &out);
+ if (strstr((char *)name->data, "xn--") != NULL) {
+ ret =
+ _gnutls_idna_email_reverse_map((char *)name->data,
+ name->size, &out);
if (ret >= 0) {
- addf(str, _("%s%s: %.*s (%s)\n"), prefix, type, name->size, NON_NULL(name->data), out.data);
+ addf(str, _("%s%s: %.*s (%s)\n"), prefix, type,
+ name->size, NON_NULL(name->data),
+ out.data);
is_printed = 1;
gnutls_free(out.data);
}
@@ -95,14 +108,16 @@ static void print_idn_email(gnutls_buffer_st *str, const char *prefix, const cha
}
if (is_printed == 0) {
- addf(str, _("%s%s: %.*s\n"), prefix, type, name->size, NON_NULL(name->data));
+ addf(str, _("%s%s: %.*s\n"), prefix, type, name->size,
+ NON_NULL(name->data));
}
}
static void
-print_name(gnutls_buffer_st *str, const char *prefix, unsigned type, gnutls_datum_t *name, unsigned ip_is_cidr)
+print_name(gnutls_buffer_st * str, const char *prefix, unsigned type,
+ gnutls_datum_t * name, unsigned ip_is_cidr)
{
- char *sname = (char*)name->data;
+ char *sname = (char *)name->data;
char str_ip[64];
const char *p;
@@ -110,10 +125,11 @@ print_name(gnutls_buffer_st *str, const char *prefix, unsigned type, gnutls_datu
|| type == GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL
|| type == GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL
|| type == GNUTLS_SAN_RFC822NAME
- || type == GNUTLS_SAN_URI) && sname != NULL && strlen(sname) != name->size) {
+ || type == GNUTLS_SAN_URI) && sname != NULL
+ && strlen(sname) != name->size) {
adds(str,
_("warning: SAN contains an embedded NUL, "
- "replacing with '!'\n"));
+ "replacing with '!'\n"));
while (strlen(sname) < name->size)
name->data[strlen(sname)] = '!';
}
@@ -128,41 +144,49 @@ print_name(gnutls_buffer_st *str, const char *prefix, unsigned type, gnutls_datu
break;
case GNUTLS_SAN_URI:
- addf(str, _("%sURI: %.*s\n"), prefix, name->size, NON_NULL(name->data));
+ addf(str, _("%sURI: %.*s\n"), prefix, name->size,
+ NON_NULL(name->data));
break;
case GNUTLS_SAN_IPADDRESS:
if (!ip_is_cidr)
- p = _gnutls_ip_to_string(name->data, name->size, str_ip, sizeof(str_ip));
+ p = _gnutls_ip_to_string(name->data, name->size, str_ip,
+ sizeof(str_ip));
else
- p = _gnutls_cidr_to_string(name->data, name->size, str_ip, sizeof(str_ip));
+ p = _gnutls_cidr_to_string(name->data, name->size,
+ str_ip, sizeof(str_ip));
if (p == NULL)
p = ERROR_STR;
addf(str, "%sIPAddress: %s\n", prefix, p);
break;
case GNUTLS_SAN_DN:
- addf(str, _("%sdirectoryName: %.*s\n"), prefix, name->size, NON_NULL(name->data));
+ addf(str, _("%sdirectoryName: %.*s\n"), prefix, name->size,
+ NON_NULL(name->data));
break;
case GNUTLS_SAN_REGISTERED_ID:
- addf(str, _("%sRegistered ID: %.*s\n"), prefix, name->size, NON_NULL(name->data));
- break;
+ addf(str, _("%sRegistered ID: %.*s\n"), prefix, name->size,
+ NON_NULL(name->data));
+ break;
case GNUTLS_SAN_OTHERNAME_XMPP:
- addf(str, _("%sXMPP Address: %.*s\n"), prefix, name->size, NON_NULL(name->data));
+ addf(str, _("%sXMPP Address: %.*s\n"), prefix, name->size,
+ NON_NULL(name->data));
break;
case GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL:
- addf(str, _("%sKRB5Principal: %.*s\n"), prefix, name->size, NON_NULL(name->data));
+ addf(str, _("%sKRB5Principal: %.*s\n"), prefix, name->size,
+ NON_NULL(name->data));
break;
case GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL:
- addf(str, _("%sUser Principal Name: %.*s\n"), prefix, name->size, NON_NULL(name->data));
+ addf(str, _("%sUser Principal Name: %.*s\n"), prefix,
+ name->size, NON_NULL(name->data));
break;
default:
- addf(str, _("%sUnknown name: "), prefix);
+ addf(str, _("%sUnknown name: "), prefix);
_gnutls_buffer_hexprint(str, name->data, name->size);
adds(str, "\n");
break;
@@ -287,8 +311,7 @@ static char *crl_get_sign_name(gnutls_x509_crl_t crl, int *algo)
return gnutls_strdup(oid);
}
-
-static void print_proxy(gnutls_buffer_st * str, gnutls_datum_t *der)
+static void print_proxy(gnutls_buffer_st * str, gnutls_datum_t * der)
{
int pathlen;
char *policyLanguage;
@@ -297,15 +320,14 @@ static void print_proxy(gnutls_buffer_st * str, gnutls_datum_t *der)
int err;
err = gnutls_x509_ext_import_proxy(der, &pathlen, &policyLanguage,
- &policy, &npolicy);
+ &policy, &npolicy);
if (err < 0) {
addf(str, "error: get_proxy: %s\n", gnutls_strerror(err));
return;
}
if (pathlen >= 0)
- addf(str, _("\t\t\tPath Length Constraint: %d\n"),
- pathlen);
+ addf(str, _("\t\t\tPath Length Constraint: %d\n"), pathlen);
addf(str, _("\t\t\tPolicy Language: %s"), policyLanguage);
if (strcmp(policyLanguage, "1.3.6.1.5.5.7.21.1") == 0)
adds(str, " (id-ppl-inheritALL)\n");
@@ -324,8 +346,8 @@ static void print_proxy(gnutls_buffer_st * str, gnutls_datum_t *der)
gnutls_free(policyLanguage);
}
-
-static void print_nc(gnutls_buffer_st * str, const char* prefix, gnutls_datum_t *der)
+static void print_nc(gnutls_buffer_st * str, const char *prefix,
+ gnutls_datum_t * der)
{
gnutls_x509_name_constraints_t nc;
int ret;
@@ -345,11 +367,13 @@ static void print_nc(gnutls_buffer_st * str, const char* prefix, gnutls_datum_t
snprintf(new_prefix, sizeof(new_prefix), "%s\t\t\t\t", prefix);
do {
- ret = gnutls_x509_name_constraints_get_permitted(nc, idx++, &type, &name);
+ ret =
+ gnutls_x509_name_constraints_get_permitted(nc, idx++, &type,
+ &name);
if (ret >= 0) {
if (idx == 1)
- addf(str, _("%s\t\t\tPermitted:\n"), prefix);
+ addf(str, _("%s\t\t\tPermitted:\n"), prefix);
print_name(str, new_prefix, type, &name, 1);
}
@@ -357,25 +381,27 @@ static void print_nc(gnutls_buffer_st * str, const char* prefix, gnutls_datum_t
idx = 0;
do {
- ret = gnutls_x509_name_constraints_get_excluded(nc, idx++, &type, &name);
+ ret =
+ gnutls_x509_name_constraints_get_excluded(nc, idx++, &type,
+ &name);
if (ret >= 0) {
if (idx == 1)
- addf(str, _("%s\t\t\tExcluded:\n"), prefix);
+ addf(str, _("%s\t\t\tExcluded:\n"), prefix);
print_name(str, new_prefix, type, &name, 1);
}
} while (ret == 0);
-cleanup:
+ cleanup:
gnutls_x509_name_constraints_deinit(nc);
}
-static void print_aia(gnutls_buffer_st * str, const gnutls_datum_t *der)
+static void print_aia(gnutls_buffer_st * str, const gnutls_datum_t * der)
{
int err;
int seq;
- gnutls_datum_t san = { NULL, 0 }, oid = {NULL, 0};
+ gnutls_datum_t san = { NULL, 0 }, oid = { NULL, 0 };
gnutls_x509_aia_t aia;
unsigned int san_type;
@@ -385,40 +411,41 @@ static void print_aia(gnutls_buffer_st * str, const gnutls_datum_t *der)
err = gnutls_x509_ext_import_aia(der, aia, 0);
if (err < 0) {
- addf(str, "error: get_aia: %s\n",
- gnutls_strerror(err));
+ addf(str, "error: get_aia: %s\n", gnutls_strerror(err));
goto cleanup;
}
- for (seq=0;;seq++) {
+ for (seq = 0;; seq++) {
err = gnutls_x509_aia_get(aia, seq, &oid, &san_type, &san);
if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
goto cleanup;
if (err < 0) {
- addf(str, "error: aia_get: %s\n",
- gnutls_strerror(err));
+ addf(str, "error: aia_get: %s\n", gnutls_strerror(err));
goto cleanup;
}
- if (strcmp((char*)oid.data, GNUTLS_OID_AD_OCSP) == 0)
- addf(str, _("\t\t\tAccess Method: %s (%s)\n"), GNUTLS_OID_AD_OCSP, "id-ad-ocsp");
- else if (strcmp((char*)oid.data, GNUTLS_OID_AD_CAISSUERS) == 0)
- addf(str, _("\t\t\tAccess Method: %s (%s)\n"), GNUTLS_OID_AD_CAISSUERS, "id-ad-caIssuers");
+ if (strcmp((char *)oid.data, GNUTLS_OID_AD_OCSP) == 0)
+ addf(str, _("\t\t\tAccess Method: %s (%s)\n"),
+ GNUTLS_OID_AD_OCSP, "id-ad-ocsp");
+ else if (strcmp((char *)oid.data, GNUTLS_OID_AD_CAISSUERS) == 0)
+ addf(str, _("\t\t\tAccess Method: %s (%s)\n"),
+ GNUTLS_OID_AD_CAISSUERS, "id-ad-caIssuers");
else {
- addf(str, _("\t\t\tAccess Method: %s (%s)\n"), (char*)oid.data, "UNKNOWN");
+ addf(str, _("\t\t\tAccess Method: %s (%s)\n"),
+ (char *)oid.data, "UNKNOWN");
}
adds(str, "\t\t\tAccess Location ");
print_name(str, "", san_type, &san, 0);
}
-cleanup:
+ cleanup:
gnutls_x509_aia_deinit(aia);
}
-static void print_ski(gnutls_buffer_st * str, gnutls_datum_t *der)
+static void print_ski(gnutls_buffer_st * str, gnutls_datum_t * der)
{
- gnutls_datum_t id = {NULL, 0};
+ gnutls_datum_t id = { NULL, 0 };
int err;
err = gnutls_x509_ext_import_subject_key_id(der, &id);
@@ -435,7 +462,7 @@ static void print_ski(gnutls_buffer_st * str, gnutls_datum_t *der)
gnutls_free(id.data);
}
-static void print_time(gnutls_buffer_st *str, time_t timestamp)
+static void print_time(gnutls_buffer_st * str, time_t timestamp)
{
char s[42];
size_t max = sizeof(s);
@@ -452,7 +479,7 @@ static void print_time(gnutls_buffer_st *str, time_t timestamp)
addf(str, "%s\n", s);
}
-static void print_scts(gnutls_buffer_st * str, const gnutls_datum_t *der,
+static void print_scts(gnutls_buffer_st * str, const gnutls_datum_t * der,
const char *prefix)
{
int retval;
@@ -482,32 +509,31 @@ static void print_scts(gnutls_buffer_st * str, const gnutls_datum_t *der,
break;
addf(str, _("%s\t\t\tSigned Certificate Timestamp %d:\n"),
- prefix, (i+1));
+ prefix, (i + 1));
if (version != 1) {
- addf(str, _("%s\t\t\t\tVersion: %d (unknown SCT version)\n"),
+ addf(str,
+ _("%s\t\t\t\tVersion: %d (unknown SCT version)\n"),
prefix, version);
continue;
}
retval = gnutls_x509_ct_sct_get(scts, i,
&timestamp,
- &logid,
- &sigalg, &sig);
+ &logid, &sigalg, &sig);
if (retval < 0) {
addf(str, "error: could not get SCT info: %s\n",
gnutls_strerror(retval));
break;
}
- addf(str, _("%s\t\t\t\tVersion: %d\n"),
- prefix, version);
+ addf(str, _("%s\t\t\t\tVersion: %d\n"), prefix, version);
addf(str, _("%s\t\t\t\tLog ID: "), prefix);
_gnutls_buffer_hexprint(str, logid.data, logid.size);
addf(str, "\n");
addf(str, _("%s\t\t\t\tTime: "), prefix);
print_time(str, timestamp);
- addf(str, _("%s\t\t\t\tExtensions: none\n"), /* there are no extensions defined for v1 */
+ addf(str, _("%s\t\t\t\tExtensions: none\n"), /* there are no extensions defined for v1 */
prefix);
addf(str, _("%s\t\t\t\tSignature algorithm: %s\n"),
prefix, gnutls_sign_get_name(sigalg));
@@ -521,13 +547,12 @@ static void print_scts(gnutls_buffer_st * str, const gnutls_datum_t *der,
logid.data = NULL;
}
-cleanup:
+ cleanup:
_gnutls_free_datum(&sig);
_gnutls_free_datum(&logid);
gnutls_x509_ext_ct_scts_deinit(scts);
}
-
#define TYPE_CRT 2
#define TYPE_CRQ 3
@@ -536,8 +561,7 @@ typedef union {
gnutls_x509_crq_t crq;
} cert_type_t;
-static void
-print_aki_gn_serial(gnutls_buffer_st * str, gnutls_x509_aki_t aki)
+static void print_aki_gn_serial(gnutls_buffer_st * str, gnutls_x509_aki_t aki)
{
gnutls_datum_t san, other_oid, serial;
unsigned int alt_type;
@@ -545,7 +569,8 @@ print_aki_gn_serial(gnutls_buffer_st * str, gnutls_x509_aki_t aki)
err =
gnutls_x509_aki_get_cert_issuer(aki,
- 0, &alt_type, &san, &other_oid, &serial);
+ 0, &alt_type, &san, &other_oid,
+ &serial);
if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
return;
} else if (err < 0) {
@@ -561,7 +586,7 @@ print_aki_gn_serial(gnutls_buffer_st * str, gnutls_x509_aki_t aki)
adds(str, "\n");
}
-static void print_aki(gnutls_buffer_st * str, gnutls_datum_t *der)
+static void print_aki(gnutls_buffer_st * str, gnutls_datum_t * der)
{
int err;
gnutls_x509_aki_t aki;
@@ -576,7 +601,8 @@ static void print_aki(gnutls_buffer_st * str, gnutls_datum_t *der)
err = gnutls_x509_ext_import_authority_key_id(der, aki, 0);
if (err < 0) {
- addf(str, "error: gnutls_x509_ext_import_authority_key_id: %s\n",
+ addf(str,
+ "error: gnutls_x509_ext_import_authority_key_id: %s\n",
gnutls_strerror(err));
goto cleanup;
}
@@ -602,7 +628,8 @@ static void print_aki(gnutls_buffer_st * str, gnutls_datum_t *der)
}
static void
-print_key_usage2(gnutls_buffer_st * str, const char *prefix, unsigned int key_usage)
+print_key_usage2(gnutls_buffer_st * str, const char *prefix,
+ unsigned int key_usage)
{
if (key_usage & GNUTLS_KEY_DIGITAL_SIGNATURE)
addf(str, _("%sDigital signature.\n"), prefix);
@@ -625,15 +652,15 @@ print_key_usage2(gnutls_buffer_st * str, const char *prefix, unsigned int key_us
}
static void
-print_key_usage(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
+print_key_usage(gnutls_buffer_st * str, const char *prefix,
+ gnutls_datum_t * der)
{
unsigned int key_usage;
int err;
err = gnutls_x509_ext_import_key_usage(der, &key_usage);
if (err < 0) {
- addf(str, "error: get_key_usage: %s\n",
- gnutls_strerror(err));
+ addf(str, "error: get_key_usage: %s\n", gnutls_strerror(err));
return;
}
@@ -641,7 +668,8 @@ print_key_usage(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
}
static void
-print_private_key_usage_period(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
+print_private_key_usage_period(gnutls_buffer_st * str, const char *prefix,
+ gnutls_datum_t * der)
{
time_t activation, expiration;
int err;
@@ -649,7 +677,9 @@ print_private_key_usage_period(gnutls_buffer_st * str, const char *prefix, gnutl
struct tm t;
size_t max;
- err = gnutls_x509_ext_import_private_key_usage_period(der, &activation, &expiration);
+ err =
+ gnutls_x509_ext_import_private_key_usage_period(der, &activation,
+ &expiration);
if (err < 0) {
addf(str, "error: get_private_key_usage_period: %s\n",
gnutls_strerror(err));
@@ -659,26 +689,22 @@ print_private_key_usage_period(gnutls_buffer_st * str, const char *prefix, gnutl
max = sizeof(s);
if (gmtime_r(&activation, &t) == NULL)
- addf(str, "error: gmtime_r (%ld)\n",
- (unsigned long) activation);
+ addf(str, "error: gmtime_r (%ld)\n", (unsigned long)activation);
else if (strftime(s, max, "%a %b %d %H:%M:%S UTC %Y", &t) == 0)
- addf(str, "error: strftime (%ld)\n",
- (unsigned long) activation);
+ addf(str, "error: strftime (%ld)\n", (unsigned long)activation);
else
addf(str, _("\t\t\tNot Before: %s\n"), s);
if (gmtime_r(&expiration, &t) == NULL)
- addf(str, "error: gmtime_r (%ld)\n",
- (unsigned long) expiration);
+ addf(str, "error: gmtime_r (%ld)\n", (unsigned long)expiration);
else if (strftime(s, max, "%a %b %d %H:%M:%S UTC %Y", &t) == 0)
- addf(str, "error: strftime (%ld)\n",
- (unsigned long) expiration);
+ addf(str, "error: strftime (%ld)\n", (unsigned long)expiration);
else
addf(str, _("\t\t\tNot After: %s\n"), s);
}
-static void print_crldist(gnutls_buffer_st * str, gnutls_datum_t *der)
+static void print_crldist(gnutls_buffer_st * str, gnutls_datum_t * der)
{
int err;
int indx;
@@ -702,7 +728,8 @@ static void print_crldist(gnutls_buffer_st * str, gnutls_datum_t *der)
for (indx = 0;; indx++) {
err =
- gnutls_x509_crl_dist_points_get(dp, indx, &type, &dist, &flags);
+ gnutls_x509_crl_dist_points_get(dp, indx, &type, &dist,
+ &flags);
if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
goto cleanup;
else if (err < 0) {
@@ -718,7 +745,8 @@ static void print_crldist(gnutls_buffer_st * str, gnutls_datum_t *der)
}
static void
-print_key_purpose(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
+print_key_purpose(gnutls_buffer_st * str, const char *prefix,
+ gnutls_datum_t * der)
{
int indx;
gnutls_datum_t oid;
@@ -750,7 +778,7 @@ print_key_purpose(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *de
goto cleanup;
}
- p = (void*)oid.data;
+ p = (void *)oid.data;
if (strcmp(p, GNUTLS_KP_TLS_WWW_SERVER) == 0)
addf(str, _("%s\t\t\tTLS WWW Server.\n"), prefix);
else if (strcmp(p, GNUTLS_KP_TLS_WWW_CLIENT) == 0)
@@ -758,8 +786,7 @@ print_key_purpose(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *de
else if (strcmp(p, GNUTLS_KP_CODE_SIGNING) == 0)
addf(str, _("%s\t\t\tCode signing.\n"), prefix);
else if (strcmp(p, GNUTLS_KP_EMAIL_PROTECTION) == 0)
- addf(str, _("%s\t\t\tEmail protection.\n"),
- prefix);
+ addf(str, _("%s\t\t\tEmail protection.\n"), prefix);
else if (strcmp(p, GNUTLS_KP_TIME_STAMPING) == 0)
addf(str, _("%s\t\t\tTime stamping.\n"), prefix);
else if (strcmp(p, GNUTLS_KP_OCSP_SIGNING) == 0)
@@ -778,7 +805,7 @@ print_key_purpose(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *de
}
static void
-print_basic(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
+print_basic(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t * der)
{
int pathlen;
unsigned ca;
@@ -803,9 +830,8 @@ print_basic(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
prefix, pathlen);
}
-
static void
-print_altname(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
+print_altname(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t * der)
{
unsigned int altname_idx;
gnutls_subject_alt_names_t names;
@@ -824,7 +850,8 @@ print_altname(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
err = gnutls_x509_ext_import_subject_alt_names(der, names, 0);
if (err < 0) {
- addf(str, "error: gnutls_x509_ext_import_subject_alt_names: %s\n",
+ addf(str,
+ "error: gnutls_x509_ext_import_subject_alt_names: %s\n",
gnutls_strerror(err));
goto cleanup;
}
@@ -841,12 +868,14 @@ print_altname(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
break;
}
-
if (type == GNUTLS_SAN_OTHERNAME) {
unsigned vtype;
gnutls_datum_t virt;
- err = gnutls_x509_othername_to_virtual((char*)othername.data, &san, &vtype, &virt);
+ err = gnutls_x509_othername_to_virtual((char *)
+ othername.data,
+ &san, &vtype,
+ &virt);
if (err >= 0) {
snprintf(pfx, sizeof(pfx), "%s\t\t\t", prefix);
print_name(str, pfx, vtype, &virt, 0);
@@ -856,14 +885,14 @@ print_altname(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
addf(str,
_("%s\t\t\totherName OID: %.*s\n"),
- prefix, (int)othername.size, (char*)othername.data);
- addf(str, _("%s\t\t\totherName DER: "),
- prefix);
+ prefix, (int)othername.size,
+ (char *)othername.data);
+ addf(str, _("%s\t\t\totherName DER: "), prefix);
_gnutls_buffer_hexprint(str, san.data, san.size);
- addf(str, _("\n%s\t\t\totherName ASCII: "),
- prefix);
- _gnutls_buffer_asciiprint(str, (char*)san.data, san.size);
- addf(str, "\n");
+ addf(str, _("\n%s\t\t\totherName ASCII: "), prefix);
+ _gnutls_buffer_asciiprint(str, (char *)san.data,
+ san.size);
+ addf(str, "\n");
} else {
snprintf(pfx, sizeof(pfx), "%s\t\t\t", prefix);
@@ -876,30 +905,29 @@ print_altname(gnutls_buffer_st * str, const char *prefix, gnutls_datum_t *der)
}
static void
-guiddump(gnutls_buffer_st * str, const char *data, size_t len,
- const char *spc)
+guiddump(gnutls_buffer_st * str, const char *data, size_t len, const char *spc)
{
size_t j;
if (spc)
adds(str, spc);
addf(str, "{");
- addf(str, "%.2X", (unsigned char) data[3]);
- addf(str, "%.2X", (unsigned char) data[2]);
- addf(str, "%.2X", (unsigned char) data[1]);
- addf(str, "%.2X", (unsigned char) data[0]);
+ addf(str, "%.2X", (unsigned char)data[3]);
+ addf(str, "%.2X", (unsigned char)data[2]);
+ addf(str, "%.2X", (unsigned char)data[1]);
+ addf(str, "%.2X", (unsigned char)data[0]);
addf(str, "-");
- addf(str, "%.2X", (unsigned char) data[5]);
- addf(str, "%.2X", (unsigned char) data[4]);
+ addf(str, "%.2X", (unsigned char)data[5]);
+ addf(str, "%.2X", (unsigned char)data[4]);
addf(str, "-");
- addf(str, "%.2X", (unsigned char) data[7]);
- addf(str, "%.2X", (unsigned char) data[6]);
+ addf(str, "%.2X", (unsigned char)data[7]);
+ addf(str, "%.2X", (unsigned char)data[6]);
addf(str, "-");
- addf(str, "%.2X", (unsigned char) data[8]);
- addf(str, "%.2X", (unsigned char) data[9]);
+ addf(str, "%.2X", (unsigned char)data[8]);
+ addf(str, "%.2X", (unsigned char)data[9]);
addf(str, "-");
for (j = 10; j < 16; j++) {
- addf(str, "%.2X", (unsigned char) data[j]);
+ addf(str, "%.2X", (unsigned char)data[j]);
}
addf(str, "}\n");
}
@@ -911,8 +939,7 @@ print_unique_ids(gnutls_buffer_st * str, const gnutls_x509_crt_t cert)
char buf[256]; /* if its longer, we won't bother to print it */
size_t buf_size = 256;
- result =
- gnutls_x509_crt_get_issuer_unique_id(cert, buf, &buf_size);
+ result = gnutls_x509_crt_get_issuer_unique_id(cert, buf, &buf_size);
if (result >= 0) {
addf(str, ("\tIssuer Unique ID:\n"));
_gnutls_buffer_hexdump(str, buf, buf_size, "\t\t\t");
@@ -922,8 +949,7 @@ print_unique_ids(gnutls_buffer_st * str, const gnutls_x509_crt_t cert)
}
buf_size = 256;
- result =
- gnutls_x509_crt_get_subject_unique_id(cert, buf, &buf_size);
+ result = gnutls_x509_crt_get_subject_unique_id(cert, buf, &buf_size);
if (result >= 0) {
addf(str, ("\tSubject Unique ID:\n"));
_gnutls_buffer_hexdump(str, buf, buf_size, "\t\t\t");
@@ -933,7 +959,8 @@ print_unique_ids(gnutls_buffer_st * str, const gnutls_x509_crt_t cert)
}
}
-static void print_tlsfeatures(gnutls_buffer_st * str, const char *prefix, const gnutls_datum_t *der)
+static void print_tlsfeatures(gnutls_buffer_st * str, const char *prefix,
+ const gnutls_datum_t * der)
{
int err;
int seq;
@@ -947,18 +974,17 @@ static void print_tlsfeatures(gnutls_buffer_st * str, const char *prefix, const
err = gnutls_x509_ext_import_tlsfeatures(der, features, 0);
if (err < 0) {
- addf(str, "error: get_tlsfeatures: %s\n",
- gnutls_strerror(err));
+ addf(str, "error: get_tlsfeatures: %s\n", gnutls_strerror(err));
goto cleanup;
}
- for (seq=0;;seq++) {
+ for (seq = 0;; seq++) {
err = gnutls_x509_tlsfeatures_get(features, seq, &feature);
if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
goto cleanup;
if (err < 0) {
addf(str, "error: get_tlsfeatures: %s\n",
- gnutls_strerror(err));
+ gnutls_strerror(err));
goto cleanup;
}
@@ -969,23 +995,26 @@ static void print_tlsfeatures(gnutls_buffer_st * str, const char *prefix, const
addf(str, "%s\t\t\t%s(%u)\n", prefix, name, feature);
}
-cleanup:
+ cleanup:
gnutls_x509_tlsfeatures_deinit(features);
}
-static void print_subject_sign_tool(gnutls_buffer_st * str, const char *prefix, const gnutls_datum_t *der)
+static void print_subject_sign_tool(gnutls_buffer_st * str, const char *prefix,
+ const gnutls_datum_t * der)
{
int ret;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
- ret = _gnutls_x509_decode_string(ASN1_ETYPE_UTF8_STRING, der->data, der->size, &tmp, 0);
+ ret =
+ _gnutls_x509_decode_string(ASN1_ETYPE_UTF8_STRING, der->data,
+ der->size, &tmp, 0);
if (ret < 0) {
addf(str, _("%s\t\t\tASCII: "), prefix);
- _gnutls_buffer_asciiprint(str, (char*)der->data, der->size);
+ _gnutls_buffer_asciiprint(str, (char *)der->data, der->size);
addf(str, "\n");
addf(str, _("%s\t\t\tHexdump: "), prefix);
- _gnutls_buffer_hexprint(str, (char*)der->data, der->size);
+ _gnutls_buffer_hexprint(str, (char *)der->data, der->size);
adds(str, "\n");
return;
@@ -995,20 +1024,23 @@ static void print_subject_sign_tool(gnutls_buffer_st * str, const char *prefix,
_gnutls_free_datum(&tmp);
}
-static void print_issuer_sign_tool(gnutls_buffer_st * str, const char *prefix, const gnutls_datum_t *der)
+static void print_issuer_sign_tool(gnutls_buffer_st * str, const char *prefix,
+ const gnutls_datum_t * der)
{
int ret;
asn1_node tmpasn = NULL;
char asn1_err[ASN1_MAX_ERROR_DESCRIPTION_SIZE] = "";
gnutls_datum_t tmp;
- if (asn1_create_element(_gnutls_get_gnutls_asn(), "GNUTLS.IssuerSignTool",
- &tmpasn) != ASN1_SUCCESS) {
+ if (asn1_create_element
+ (_gnutls_get_gnutls_asn(), "GNUTLS.IssuerSignTool",
+ &tmpasn) != ASN1_SUCCESS) {
gnutls_assert();
goto hexdump;
}
- if (_asn1_strict_der_decode(&tmpasn, der->data, der->size, asn1_err) != ASN1_SUCCESS) {
+ if (_asn1_strict_der_decode(&tmpasn, der->data, der->size, asn1_err) !=
+ ASN1_SUCCESS) {
gnutls_assert();
_gnutls_debug_log("_asn1_strict_der_decode: %s\n", asn1_err);
goto hexdump;
@@ -1019,7 +1051,8 @@ static void print_issuer_sign_tool(gnutls_buffer_st * str, const char *prefix, c
gnutls_assert();
goto hexdump;
}
- addf(str, _("%s\t\t\tSignTool: %.*s\n"), prefix, tmp.size, NON_NULL(tmp.data));
+ addf(str, _("%s\t\t\tSignTool: %.*s\n"), prefix, tmp.size,
+ NON_NULL(tmp.data));
_gnutls_free_datum(&tmp);
ret = _gnutls_x509_read_value(tmpasn, "cATool", &tmp);
@@ -1027,7 +1060,8 @@ static void print_issuer_sign_tool(gnutls_buffer_st * str, const char *prefix, c
gnutls_assert();
goto hexdump;
}
- addf(str, _("%s\t\t\tCATool: %.*s\n"), prefix, tmp.size, NON_NULL(tmp.data));
+ addf(str, _("%s\t\t\tCATool: %.*s\n"), prefix, tmp.size,
+ NON_NULL(tmp.data));
_gnutls_free_datum(&tmp);
ret = _gnutls_x509_read_value(tmpasn, "signToolCert", &tmp);
@@ -1035,7 +1069,8 @@ static void print_issuer_sign_tool(gnutls_buffer_st * str, const char *prefix, c
gnutls_assert();
goto hexdump;
}
- addf(str, _("%s\t\t\tSignToolCert: %.*s\n"), prefix, tmp.size, NON_NULL(tmp.data));
+ addf(str, _("%s\t\t\tSignToolCert: %.*s\n"), prefix, tmp.size,
+ NON_NULL(tmp.data));
_gnutls_free_datum(&tmp);
ret = _gnutls_x509_read_value(tmpasn, "cAToolCert", &tmp);
@@ -1043,22 +1078,23 @@ static void print_issuer_sign_tool(gnutls_buffer_st * str, const char *prefix, c
gnutls_assert();
goto hexdump;
}
- addf(str, _("%s\t\t\tCAToolCert: %.*s\n"), prefix, tmp.size, NON_NULL(tmp.data));
+ addf(str, _("%s\t\t\tCAToolCert: %.*s\n"), prefix, tmp.size,
+ NON_NULL(tmp.data));
_gnutls_free_datum(&tmp);
asn1_delete_structure(&tmpasn);
return;
-hexdump:
+ hexdump:
asn1_delete_structure(&tmpasn);
addf(str, _("%s\t\t\tASCII: "), prefix);
- _gnutls_buffer_asciiprint(str, (char*)der->data, der->size);
+ _gnutls_buffer_asciiprint(str, (char *)der->data, der->size);
addf(str, "\n");
addf(str, _("%s\t\t\tHexdump: "), prefix);
- _gnutls_buffer_hexprint(str, (char*)der->data, der->size);
+ _gnutls_buffer_hexprint(str, (char *)der->data, der->size);
adds(str, "\n");
}
@@ -1098,7 +1134,7 @@ struct ext_indexes_st {
static void print_extension(gnutls_buffer_st * str, const char *prefix,
struct ext_indexes_st *idx, const char *oid,
- unsigned critical, gnutls_datum_t *der)
+ unsigned critical, gnutls_datum_t * der)
{
int err;
unsigned j;
@@ -1106,27 +1142,23 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
if (strcmp(oid, "2.5.29.19") == 0) {
if (idx->basic) {
- addf(str,
- "warning: more than one basic constraint\n");
+ addf(str, "warning: more than one basic constraint\n");
}
addf(str, _("%s\t\tBasic Constraints (%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
print_basic(str, prefix, der);
idx->basic++;
} else if (strcmp(oid, "2.5.29.14") == 0) {
if (idx->ski) {
- addf(str,
- "warning: more than one SKI extension\n");
+ addf(str, "warning: more than one SKI extension\n");
}
addf(str,
_("%s\t\tSubject Key Identifier (%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
print_ski(str, der);
@@ -1157,8 +1189,7 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
for (x = 0;; x++) {
err = gnutls_x509_policies_get(policies, x, &policy);
- if (err ==
- GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
if (err < 0) {
@@ -1177,22 +1208,21 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
entry = _gnutls_oid_get_entry(cp_oid2str, policy.oid);
if (entry != NULL && entry->name_desc != NULL)
- addf(str, "%s\t\t\t%s (%s)\n", prefix, policy.oid, entry->name_desc);
+ addf(str, "%s\t\t\t%s (%s)\n", prefix,
+ policy.oid, entry->name_desc);
else
addf(str, "%s\t\t\t%s\n", prefix, policy.oid);
for (j = 0; j < policy.qualifiers; j++) {
if (policy.qualifier[j].type ==
GNUTLS_X509_QUALIFIER_URI)
name = "URI";
- else if (policy.qualifier[j].
- type ==
+ else if (policy.qualifier[j].type ==
GNUTLS_X509_QUALIFIER_NOTICE)
name = "Note";
else
name = "Unknown qualifier";
addf(str, "%s\t\t\t\t%s: %s\n",
- prefix, name,
- policy.qualifier[j].data);
+ prefix, name, policy.qualifier[j].data);
}
}
gnutls_x509_policies_deinit(policies);
@@ -1209,21 +1239,18 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
addf(str,
"%s\t\tInhibit anyPolicy skip certs: %u (%s)\n",
- prefix, skipcerts,
- critical ? _("critical") :
- _("not critical"));
+ prefix, skipcerts,
+ critical ? _("critical") : _("not critical"));
} else if (strcmp(oid, "2.5.29.35") == 0) {
if (idx->aki) {
- addf(str,
- "warning: more than one AKI extension\n");
+ addf(str, "warning: more than one AKI extension\n");
}
addf(str,
_("%s\t\tAuthority Key Identifier (%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
print_aki(str, der);
@@ -1235,7 +1262,7 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
}
addf(str, _("%s\t\tKey Usage (%s):\n"), prefix,
- critical ? _("critical") : _("not critical"));
+ critical ? _("critical") : _("not critical"));
snprintf(pfx, sizeof(pfx), "%s\t\t\t", prefix);
print_key_usage(str, pfx, der);
@@ -1249,8 +1276,7 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
addf(str,
_("%s\t\tPrivate Key Usage Period (%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
print_private_key_usage_period(str, prefix, der);
@@ -1268,15 +1294,13 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
idx->keypurpose++;
} else if (strcmp(oid, "2.5.29.17") == 0) {
if (idx->san) {
- addf(str,
- "warning: more than one SKI extension\n");
+ addf(str, "warning: more than one SKI extension\n");
}
addf(str,
_("%s\t\tSubject Alternative Name (%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
- print_altname(str, prefix, der);
+ prefix, critical ? _("critical") : _("not critical"));
+ print_altname(str, prefix, der);
idx->san++;
} else if (strcmp(oid, "2.5.29.18") == 0) {
if (idx->ian) {
@@ -1286,8 +1310,7 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
addf(str,
_("%s\t\tIssuer Alternative Name (%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
print_altname(str, prefix, der);
@@ -1300,22 +1323,19 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
addf(str,
_("%s\t\tCRL Distribution points (%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
print_crldist(str, der);
idx->crldist++;
} else if (strcmp(oid, "1.3.6.1.5.5.7.1.14") == 0) {
if (idx->proxy) {
- addf(str,
- "warning: more than one proxy extension\n");
+ addf(str, "warning: more than one proxy extension\n");
}
addf(str,
- _
+ _
("%s\t\tProxy Certificate Information (%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
print_proxy(str, der);
@@ -1345,55 +1365,52 @@ static void print_extension(gnutls_buffer_st * str, const char *prefix,
} else if (strcmp(oid, GNUTLS_X509EXT_OID_TLSFEATURES) == 0) {
if (idx->tlsfeatures) {
addf(str,
- "warning: more than one tlsfeatures extension\n");
+ "warning: more than one tlsfeatures extension\n");
}
addf(str, _("%s\t\tTLS Features (%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
print_tlsfeatures(str, prefix, der);
idx->tlsfeatures++;
} else if (strcmp(oid, "1.2.643.100.111") == 0) {
addf(str, _("%s\t\tSubject Signing Tool(%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
print_subject_sign_tool(str, prefix, der);
} else if (strcmp(oid, "1.2.643.100.112") == 0) {
addf(str, _("%s\t\tIssuer Signing Tool(%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
print_issuer_sign_tool(str, prefix, der);
} else if (strcmp(oid, "2.5.4.3") == 0) {
int ret;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
addf(str, _("%s\t\tCommon Name (%s):\n"),
- prefix,
- critical ? _("critical") : _("not critical"));
+ prefix, critical ? _("critical") : _("not critical"));
- ret = _gnutls_x509_decode_string(ASN1_ETYPE_PRINTABLE_STRING, der->data, der->size, &tmp, 0);
+ ret =
+ _gnutls_x509_decode_string(ASN1_ETYPE_PRINTABLE_STRING,
+ der->data, der->size, &tmp, 0);
if (ret < 0) {
addf(str, "error: x509_decode_string: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
} else {
addf(str, "%s\t\t\t%s\n", prefix, tmp.data);
gnutls_free(tmp.data);
}
} else {
addf(str, _("%s\t\tUnknown extension %s (%s):\n"),
- prefix, oid,
- critical ? _("critical") : _("not critical"));
+ prefix, oid, critical ? _("critical") : _("not critical"));
addf(str, _("%s\t\t\tASCII: "), prefix);
- _gnutls_buffer_asciiprint(str, (char*)der->data, der->size);
+ _gnutls_buffer_asciiprint(str, (char *)der->data, der->size);
addf(str, "\n");
addf(str, _("%s\t\t\tHexdump: "), prefix);
- _gnutls_buffer_hexprint(str, (char*)der->data, der->size);
+ _gnutls_buffer_hexprint(str, (char *)der->data, der->size);
adds(str, "\n");
}
}
@@ -1404,7 +1421,7 @@ print_extensions(gnutls_buffer_st * str, const char *prefix, int type,
{
unsigned i;
int err;
- gnutls_datum_t der = {NULL, 0};
+ gnutls_datum_t der = { NULL, 0 };
struct ext_indexes_st idx;
memset(&idx, 0, sizeof(idx));
@@ -1444,9 +1461,13 @@ print_extensions(gnutls_buffer_st * str, const char *prefix, int type,
addf(str, _("%s\tExtensions:\n"), prefix);
if (type == TYPE_CRT)
- err = gnutls_x509_crt_get_extension_data2(cert.crt, i, &der);
+ err =
+ gnutls_x509_crt_get_extension_data2(cert.crt, i,
+ &der);
else
- err = gnutls_x509_crq_get_extension_data2(cert.crq, i, &der);
+ err =
+ gnutls_x509_crq_get_extension_data2(cert.crq, i,
+ &der);
if (err < 0) {
der.data = NULL;
@@ -1458,7 +1479,7 @@ print_extensions(gnutls_buffer_st * str, const char *prefix, int type,
}
}
-static void reverse_datum(gnutls_datum_t *d)
+static void reverse_datum(gnutls_datum_t * d)
{
unsigned int i;
unsigned char c;
@@ -1472,7 +1493,7 @@ static void reverse_datum(gnutls_datum_t *d)
static void
print_pubkey(gnutls_buffer_st * str, const char *key_name,
- gnutls_pubkey_t pubkey, gnutls_x509_spki_st *spki,
+ gnutls_pubkey_t pubkey, gnutls_x509_spki_st * spki,
gnutls_certificate_print_formats_t format)
{
int err;
@@ -1517,21 +1538,18 @@ print_pubkey(gnutls_buffer_st * str, const char *key_name,
addf(str, "error: get_pk_rsa_raw: %s\n",
gnutls_strerror(err));
else {
- if (format ==
- GNUTLS_CRT_PRINT_FULL_NUMBERS) {
+ if (format == GNUTLS_CRT_PRINT_FULL_NUMBERS) {
addf(str,
_("\t\tModulus (bits %d): "),
bits);
_gnutls_buffer_hexprint(str,
- m.data,
- m.size);
+ m.data, m.size);
adds(str, "\n");
addf(str,
_("\t\tExponent (bits %d): "),
e.size * 8);
_gnutls_buffer_hexprint(str,
- e.data,
- e.size);
+ e.data, e.size);
adds(str, "\n");
} else {
addf(str,
@@ -1574,12 +1592,10 @@ print_pubkey(gnutls_buffer_st * str, const char *key_name,
} else {
addf(str, _("\t\tCurve:\t%s\n"),
gnutls_ecc_curve_get_name(curve));
- if (format ==
- GNUTLS_CRT_PRINT_FULL_NUMBERS) {
+ if (format == GNUTLS_CRT_PRINT_FULL_NUMBERS) {
adds(str, _("\t\tX: "));
_gnutls_buffer_hexprint(str,
- x.data,
- x.size);
+ x.data, x.size);
adds(str, "\n");
if (y.size > 0) {
adds(str, _("\t\tY: "));
@@ -1595,7 +1611,8 @@ print_pubkey(gnutls_buffer_st * str, const char *key_name,
"\t\t\t");
if (y.size > 0) {
adds(str, _("\t\tY:\n"));
- _gnutls_buffer_hexdump(str, y.data,
+ _gnutls_buffer_hexdump(str,
+ y.data,
y.size,
"\t\t\t");
}
@@ -1618,30 +1635,25 @@ print_pubkey(gnutls_buffer_st * str, const char *key_name,
addf(str, "error: get_pk_dsa_raw: %s\n",
gnutls_strerror(err));
else {
- if (format ==
- GNUTLS_CRT_PRINT_FULL_NUMBERS) {
+ if (format == GNUTLS_CRT_PRINT_FULL_NUMBERS) {
addf(str,
_
("\t\tPublic key (bits %d): "),
bits);
_gnutls_buffer_hexprint(str,
- y.data,
- y.size);
+ y.data, y.size);
adds(str, "\n");
adds(str, _("\t\tP: "));
_gnutls_buffer_hexprint(str,
- p.data,
- p.size);
+ p.data, p.size);
adds(str, "\n");
adds(str, _("\t\tQ: "));
_gnutls_buffer_hexprint(str,
- q.data,
- q.size);
+ q.data, q.size);
adds(str, "\n");
adds(str, _("\t\tG: "));
_gnutls_buffer_hexprint(str,
- g.data,
- g.size);
+ g.data, g.size);
adds(str, "\n");
} else {
addf(str,
@@ -1686,8 +1698,7 @@ print_pubkey(gnutls_buffer_st * str, const char *key_name,
err =
gnutls_pubkey_export_gost_raw2(pubkey, &curve,
&digest,
- &param,
- &x, &y, 0);
+ &param, &x, &y, 0);
if (err < 0)
addf(str, "error: get_pk_gost_raw: %s\n",
gnutls_strerror(err));
@@ -1700,17 +1711,14 @@ print_pubkey(gnutls_buffer_st * str, const char *key_name,
gnutls_gost_paramset_get_name(param));
reverse_datum(&x);
reverse_datum(&y);
- if (format ==
- GNUTLS_CRT_PRINT_FULL_NUMBERS) {
+ if (format == GNUTLS_CRT_PRINT_FULL_NUMBERS) {
adds(str, _("\t\tX: "));
_gnutls_buffer_hexprint(str,
- x.data,
- x.size);
+ x.data, x.size);
adds(str, "\n");
adds(str, _("\t\tY: "));
_gnutls_buffer_hexprint(str,
- y.data,
- y.size);
+ y.data, y.size);
adds(str, "\n");
} else {
adds(str, _("\t\tX:\n"));
@@ -1792,7 +1800,7 @@ print_crt_pubkey(gnutls_buffer_st * str, gnutls_x509_crt_t crt,
}
if (pk == GNUTLS_PK_UNKNOWN) {
- print_pk_name(str, crt); /* print basic info only */
+ print_pk_name(str, crt); /* print basic info only */
return 0;
}
@@ -1803,8 +1811,9 @@ print_crt_pubkey(gnutls_buffer_st * str, gnutls_x509_crt_t crt,
ret = gnutls_pubkey_import_x509(pubkey, crt, 0);
if (ret < 0) {
if (ret != GNUTLS_E_UNIMPLEMENTED_FEATURE)
- addf(str, "error importing public key: %s\n", gnutls_strerror(ret));
- print_pk_name(str, crt); /* print basic info only */
+ addf(str, "error importing public key: %s\n",
+ gnutls_strerror(ret));
+ print_pk_name(str, crt); /* print basic info only */
ret = 0;
goto cleanup;
}
@@ -1838,8 +1847,7 @@ print_cert(gnutls_buffer_st * str, gnutls_x509_crt_t cert,
size_t serial_size = sizeof(serial);
int err;
- err =
- gnutls_x509_crt_get_serial(cert, serial, &serial_size);
+ err = gnutls_x509_crt_get_serial(cert, serial, &serial_size);
if (err < 0)
addf(str, "error: get_serial: %s\n",
gnutls_strerror(err));
@@ -1881,12 +1889,11 @@ print_cert(gnutls_buffer_st * str, gnutls_x509_crt_t cert,
if (gmtime_r(&tim, &t) == NULL)
addf(str, "error: gmtime_r (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else if (strftime
- (s, max, "%a %b %d %H:%M:%S UTC %Y",
- &t) == 0)
+ (s, max, "%a %b %d %H:%M:%S UTC %Y", &t) == 0)
addf(str, "error: strftime (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else
addf(str, _("\t\tNot Before: %s\n"), s);
} else {
@@ -1901,12 +1908,11 @@ print_cert(gnutls_buffer_st * str, gnutls_x509_crt_t cert,
if (gmtime_r(&tim, &t) == NULL)
addf(str, "error: gmtime_r (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else if (strftime
- (s, max, "%a %b %d %H:%M:%S UTC %Y",
- &t) == 0)
+ (s, max, "%a %b %d %H:%M:%S UTC %Y", &t) == 0)
addf(str, "error: strftime (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else
addf(str, _("\t\tNot After: %s\n"), s);
} else {
@@ -1923,8 +1929,7 @@ print_cert(gnutls_buffer_st * str, gnutls_x509_crt_t cert,
if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
addf(str, _("\tSubject:\n"));
} else if (err < 0) {
- addf(str, "error: get_dn: %s\n",
- gnutls_strerror(err));
+ addf(str, "error: get_dn: %s\n", gnutls_strerror(err));
} else {
addf(str, _("\tSubject: %s\n"), dn.data);
gnutls_free(dn.data);
@@ -1963,7 +1968,10 @@ print_cert(gnutls_buffer_st * str, gnutls_x509_crt_t cert,
print_crt_sig_params(str, cert, format);
- if (err != GNUTLS_SIGN_UNKNOWN && gnutls_sign_is_secure2(err, GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0) {
+ if (err != GNUTLS_SIGN_UNKNOWN
+ && gnutls_sign_is_secure2(err,
+ GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS)
+ == 0) {
adds(str,
_("warning: signed using a broken signature "
"algorithm that can be forged.\n"));
@@ -1998,8 +2006,7 @@ print_cert(gnutls_buffer_st * str, gnutls_x509_crt_t cert,
}
}
-static void
-print_fingerprint(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
+static void print_fingerprint(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
{
int err;
char buffer[MAX_HASH_SIZE];
@@ -2007,10 +2014,11 @@ print_fingerprint(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
adds(str, _("\tFingerprint:\n"));
- err = gnutls_x509_crt_get_fingerprint(cert, GNUTLS_DIG_SHA1, buffer, &size);
+ err =
+ gnutls_x509_crt_get_fingerprint(cert, GNUTLS_DIG_SHA1, buffer,
+ &size);
if (err < 0) {
- addf(str, "error: get_fingerprint: %s\n",
- gnutls_strerror(err));
+ addf(str, "error: get_fingerprint: %s\n", gnutls_strerror(err));
return;
}
@@ -2019,10 +2027,11 @@ print_fingerprint(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
adds(str, "\n");
size = sizeof(buffer);
- err = gnutls_x509_crt_get_fingerprint(cert, GNUTLS_DIG_SHA256, buffer, &size);
+ err =
+ gnutls_x509_crt_get_fingerprint(cert, GNUTLS_DIG_SHA256, buffer,
+ &size);
if (err < 0) {
- addf(str, "error: get_fingerprint: %s\n",
- gnutls_strerror(err));
+ addf(str, "error: get_fingerprint: %s\n", gnutls_strerror(err));
return;
}
adds(str, _("\t\tsha256:"));
@@ -2030,9 +2039,10 @@ print_fingerprint(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
adds(str, "\n");
}
-typedef int get_id_func(void *obj, unsigned, unsigned char*, size_t*);
+typedef int get_id_func(void *obj, unsigned, unsigned char *, size_t *);
-static void print_obj_id(gnutls_buffer_st *str, const char *prefix, void *obj, get_id_func *get_id)
+static void print_obj_id(gnutls_buffer_st * str, const char *prefix, void *obj,
+ get_id_func * get_id)
{
unsigned char sha1_buffer[MAX_HASH_SIZE];
unsigned char sha2_buffer[MAX_HASH_SIZE];
@@ -2041,21 +2051,23 @@ static void print_obj_id(gnutls_buffer_st *str, const char *prefix, void *obj, g
sha1_size = sizeof(sha1_buffer);
err = get_id(obj, GNUTLS_KEYID_USE_SHA1, sha1_buffer, &sha1_size);
- if (err == GNUTLS_E_UNIMPLEMENTED_FEATURE) /* unsupported algo */
+ if (err == GNUTLS_E_UNIMPLEMENTED_FEATURE) /* unsupported algo */
return;
if (err < 0) {
- addf(str, "error: get_key_id(sha1): %s\n", gnutls_strerror(err));
+ addf(str, "error: get_key_id(sha1): %s\n",
+ gnutls_strerror(err));
return;
}
sha2_size = sizeof(sha2_buffer);
err = get_id(obj, GNUTLS_KEYID_USE_SHA256, sha2_buffer, &sha2_size);
- if (err == GNUTLS_E_UNIMPLEMENTED_FEATURE) /* unsupported algo */
+ if (err == GNUTLS_E_UNIMPLEMENTED_FEATURE) /* unsupported algo */
return;
if (err < 0) {
- addf(str, "error: get_key_id(sha256): %s\n", gnutls_strerror(err));
+ addf(str, "error: get_key_id(sha256): %s\n",
+ gnutls_strerror(err));
return;
}
@@ -2084,7 +2096,8 @@ static void print_keyid(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
if (err < 0)
return;
- print_obj_id(str, "\t", cert, (get_id_func*)gnutls_x509_crt_get_key_id);
+ print_obj_id(str, "\t", cert,
+ (get_id_func *) gnutls_x509_crt_get_key_id);
if (IS_EC(err)) {
gnutls_ecc_curve_t curve;
@@ -2098,7 +2111,9 @@ static void print_keyid(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
} else if (IS_GOSTEC(err)) {
gnutls_ecc_curve_t curve;
- err = gnutls_x509_crt_get_pk_gost_raw(cert, &curve, NULL, NULL, NULL, NULL);
+ err =
+ gnutls_x509_crt_get_pk_gost_raw(cert, &curve, NULL, NULL,
+ NULL, NULL);
if (err < 0)
return;
@@ -2112,8 +2127,10 @@ static void print_keyid(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
return;
sha1_size = sizeof(sha1_buffer);
- err = gnutls_x509_crt_get_key_id(cert, GNUTLS_KEYID_USE_SHA1, sha1_buffer, &sha1_size);
- if (err == GNUTLS_E_UNIMPLEMENTED_FEATURE) /* unsupported algo */
+ err =
+ gnutls_x509_crt_get_key_id(cert, GNUTLS_KEYID_USE_SHA1, sha1_buffer,
+ &sha1_size);
+ if (err == GNUTLS_E_UNIMPLEMENTED_FEATURE) /* unsupported algo */
return;
}
@@ -2167,8 +2184,7 @@ static void print_oneline(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
char serial[128];
size_t serial_size = sizeof(serial);
- err =
- gnutls_x509_crt_get_serial(cert, serial, &serial_size);
+ err = gnutls_x509_crt_get_serial(cert, serial, &serial_size);
if (err >= 0) {
adds(str, "serial 0x");
_gnutls_buffer_hexprint(str, serial, serial_size);
@@ -2199,7 +2215,10 @@ static void print_oneline(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
else
p = name;
- if (err != GNUTLS_SIGN_UNKNOWN && gnutls_sign_is_secure2(err, GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0)
+ if (err != GNUTLS_SIGN_UNKNOWN
+ && gnutls_sign_is_secure2(err,
+ GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS)
+ == 0)
addf(str, _("signed using %s (broken!), "), p);
else
addf(str, _("signed using %s, "), p);
@@ -2218,12 +2237,11 @@ static void print_oneline(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
if (gmtime_r(&tim, &t) == NULL)
addf(str, "unknown activation (%ld), ",
- (unsigned long) tim);
+ (unsigned long)tim);
else if (strftime
- (s, max, "%Y-%m-%d %H:%M:%S UTC",
- &t) == 0)
+ (s, max, "%Y-%m-%d %H:%M:%S UTC", &t) == 0)
addf(str, "failed activation (%ld), ",
- (unsigned long) tim);
+ (unsigned long)tim);
else
addf(str, "activated `%s', ", s);
}
@@ -2236,12 +2254,11 @@ static void print_oneline(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
if (gmtime_r(&tim, &t) == NULL)
addf(str, "unknown expiry (%ld), ",
- (unsigned long) tim);
+ (unsigned long)tim);
else if (strftime
- (s, max, "%Y-%m-%d %H:%M:%S UTC",
- &t) == 0)
+ (s, max, "%Y-%m-%d %H:%M:%S UTC", &t) == 0)
addf(str, "failed expiry (%ld), ",
- (unsigned long) tim);
+ (unsigned long)tim);
else
addf(str, "expires `%s', ", s);
}
@@ -2256,12 +2273,10 @@ static void print_oneline(gnutls_buffer_st * str, gnutls_x509_crt_t cert)
NULL, NULL);
if (err == 0) {
addf(str, "proxy certificate (policy=");
- if (strcmp(policyLanguage, "1.3.6.1.5.5.7.21.1") ==
- 0)
+ if (strcmp(policyLanguage, "1.3.6.1.5.5.7.21.1") == 0)
addf(str, "id-ppl-inheritALL");
else if (strcmp
- (policyLanguage,
- "1.3.6.1.5.5.7.21.2") == 0)
+ (policyLanguage, "1.3.6.1.5.5.7.21.2") == 0)
addf(str, "id-ppl-independent");
else
addf(str, "%s", policyLanguage);
@@ -2394,12 +2409,11 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
if (gmtime_r(&tim, &t) == NULL)
addf(str, "error: gmtime_r (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else if (strftime
- (s, max, "%a %b %d %H:%M:%S UTC %Y",
- &t) == 0)
+ (s, max, "%a %b %d %H:%M:%S UTC %Y", &t) == 0)
addf(str, "error: strftime (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else
addf(str, _("\t\tIssued: %s\n"), s);
}
@@ -2414,12 +2428,11 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
addf(str, "\t\tNo next update time.\n");
else if (gmtime_r(&tim, &t) == NULL)
addf(str, "error: gmtime_r (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else if (strftime
- (s, max, "%a %b %d %H:%M:%S UTC %Y",
- &t) == 0)
+ (s, max, "%a %b %d %H:%M:%S UTC %Y", &t) == 0)
addf(str, "error: strftime (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else
addf(str, _("\t\tNext at: %s\n"), s);
}
@@ -2496,7 +2509,9 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
critical ? _("critical") :
_("not critical"));
- err = gnutls_x509_crl_get_extension_data2(crl, i, &der);
+ err =
+ gnutls_x509_crl_get_extension_data2(crl, i,
+ &der);
if (err < 0) {
addf(str,
"error: get_extension_data2: %s\n",
@@ -2518,8 +2533,8 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
err =
gnutls_x509_crl_get_extension_data2(crl,
- i,
- &der);
+ i,
+ &der);
if (err < 0) {
addf(str,
"error: get_extension_data2: %s\n",
@@ -2528,11 +2543,13 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
}
adds(str, _("\t\t\tASCII: "));
- _gnutls_buffer_asciiprint(str, (char*)der.data, der.size);
+ _gnutls_buffer_asciiprint(str, (char *)der.data,
+ der.size);
adds(str, "\n");
adds(str, _("\t\t\tHexdump: "));
- _gnutls_buffer_hexprint(str, der.data, der.size);
+ _gnutls_buffer_hexprint(str, der.data,
+ der.size);
adds(str, "\n");
gnutls_free(der.data);
@@ -2540,7 +2557,6 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
}
}
-
/* Revoked certificates. */
{
int num = gnutls_x509_crl_get_crt_count(crl);
@@ -2548,8 +2564,7 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
int j;
if (num)
- addf(str, _("\tRevoked certificates (%d):\n"),
- num);
+ addf(str, _("\tRevoked certificates (%d):\n"), num);
else
adds(str, _("\tNo revoked certificates.\n"));
@@ -2561,8 +2576,7 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
err =
gnutls_x509_crl_iter_crt_serial(crl, &iter, serial,
- &serial_size,
- &tim);
+ &serial_size, &tim);
if (err < 0) {
addf(str, "error: iter_crt_serial: %s\n",
gnutls_strerror(err));
@@ -2580,17 +2594,15 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
if (gmtime_r(&tim, &t) == NULL)
addf(str,
"error: gmtime_r (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else if (strftime
(s, max,
- "%a %b %d %H:%M:%S UTC %Y",
- &t) == 0)
+ "%a %b %d %H:%M:%S UTC %Y", &t) == 0)
addf(str,
"error: strftime (%ld)\n",
- (unsigned long) tim);
+ (unsigned long)tim);
else
- addf(str,
- _("\t\tRevoked at: %s\n"), s);
+ addf(str, _("\t\tRevoked at: %s\n"), s);
}
}
gnutls_x509_crl_iter_deinit(iter);
@@ -2613,7 +2625,10 @@ print_crl(gnutls_buffer_st * str, gnutls_x509_crl_t crl, int notsigned)
addf(str, _("\tSignature Algorithm: %s\n"), p);
gnutls_free(name);
- if (err != GNUTLS_SIGN_UNKNOWN && gnutls_sign_is_secure2(err, GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0) {
+ if (err != GNUTLS_SIGN_UNKNOWN
+ && gnutls_sign_is_secure2(err,
+ GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS)
+ == 0) {
adds(str,
_("warning: signed using a broken signature "
"algorithm that can be forged.\n"));
@@ -2727,10 +2742,10 @@ print_crq_pubkey(gnutls_buffer_st * str, gnutls_x509_crq_t crq,
print_pubkey(str, _("Subject "), pubkey, &params, format);
ret = 0;
- cleanup:
+ cleanup:
gnutls_pubkey_deinit(pubkey);
- if (ret < 0) { /* print only name */
+ if (ret < 0) { /* print only name */
const char *p;
char *name = crq_get_pk_name(crq);
if (name == NULL)
@@ -2769,8 +2784,7 @@ print_crq(gnutls_buffer_st * str, gnutls_x509_crq_t cert,
if (err == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
addf(str, _("\tSubject:\n"));
} else if (err < 0) {
- addf(str, "error: get_dn: %s\n",
- gnutls_strerror(err));
+ addf(str, "error: get_dn: %s\n", gnutls_strerror(err));
} else {
addf(str, _("\tSubject: %s\n"), dn.data);
gnutls_free(dn.data);
@@ -2832,12 +2846,10 @@ print_crq(gnutls_buffer_st * str, gnutls_x509_crq_t cert,
}
ccert.crq = cert;
- print_extensions(str, "\t", TYPE_CRQ,
- ccert);
+ print_extensions(str, "\t", TYPE_CRQ, ccert);
extensions++;
- } else if (strcmp(oid, "1.2.840.113549.1.9.7") ==
- 0) {
+ } else if (strcmp(oid, "1.2.840.113549.1.9.7") == 0) {
char *pass;
size_t size;
@@ -2850,8 +2862,7 @@ print_crq(gnutls_buffer_st * str, gnutls_x509_crq_t cert,
gnutls_x509_crq_get_challenge_password
(cert, NULL, &size);
if (err < 0
- && err !=
- GNUTLS_E_SHORT_MEMORY_BUFFER) {
+ && err != GNUTLS_E_SHORT_MEMORY_BUFFER) {
addf(str,
"error: get_challenge_password: %s\n",
gnutls_strerror(err));
@@ -2921,13 +2932,11 @@ print_crq(gnutls_buffer_st * str, gnutls_x509_crq_t cert,
}
adds(str, _("\t\t\tASCII: "));
- _gnutls_buffer_asciiprint(str, buffer,
- extlen);
+ _gnutls_buffer_asciiprint(str, buffer, extlen);
adds(str, "\n");
adds(str, _("\t\t\tHexdump: "));
- _gnutls_buffer_hexprint(str, buffer,
- extlen);
+ _gnutls_buffer_hexprint(str, buffer, extlen);
adds(str, "\n");
gnutls_free(buffer);
@@ -2945,7 +2954,8 @@ static void print_crq_other(gnutls_buffer_st * str, gnutls_x509_crq_t crq)
if (ret < 0)
return;
- print_obj_id(str, "\t", crq, (get_id_func*)gnutls_x509_crq_get_key_id);
+ print_obj_id(str, "\t", crq,
+ (get_id_func *) gnutls_x509_crq_get_key_id);
}
/**
@@ -2994,8 +3004,7 @@ print_pubkey_other(gnutls_buffer_st * str, gnutls_pubkey_t pubkey,
ret = gnutls_pubkey_get_key_usage(pubkey, &usage);
if (ret < 0) {
- addf(str, "error: get_key_usage: %s\n",
- gnutls_strerror(ret));
+ addf(str, "error: get_key_usage: %s\n", gnutls_strerror(ret));
return;
}
@@ -3010,7 +3019,7 @@ print_pubkey_other(gnutls_buffer_st * str, gnutls_pubkey_t pubkey,
if (ret < 0)
return;
- print_obj_id(str, "", pubkey, (get_id_func*)gnutls_pubkey_get_key_id);
+ print_obj_id(str, "", pubkey, (get_id_func *) gnutls_pubkey_get_key_id);
}
/**
@@ -3065,7 +3074,7 @@ gnutls_pubkey_print(gnutls_pubkey_t pubkey,
* negative error value.
**/
int
-gnutls_x509_ext_print(gnutls_x509_ext_st *exts, unsigned int exts_size,
+gnutls_x509_ext_print(gnutls_x509_ext_st * exts, unsigned int exts_size,
gnutls_certificate_print_formats_t format,
gnutls_datum_t * out)
{
@@ -3076,8 +3085,9 @@ gnutls_x509_ext_print(gnutls_x509_ext_st *exts, unsigned int exts_size,
memset(&idx, 0, sizeof(idx));
_gnutls_buffer_init(&str);
- for (i=0;i<exts_size;i++)
- print_extension(&str, "", &idx, (char*)exts[i].oid, exts[i].critical, &exts[i].data);
+ for (i = 0; i < exts_size; i++)
+ print_extension(&str, "", &idx, (char *)exts[i].oid,
+ exts[i].critical, &exts[i].data);
return _gnutls_buffer_to_datum(&str, out, 1);
}
diff --git a/lib/x509/pkcs12.c b/lib/x509/pkcs12.c
index 11b9da3ac9..b84dff94c5 100644
--- a/lib/x509/pkcs12.c
+++ b/lib/x509/pkcs12.c
@@ -39,7 +39,6 @@
#include <random.h>
#include "intprops.h"
-
/* Decodes the PKCS #12 auth_safe, and returns the allocated raw data,
* which holds them. Returns an asn1_node of authenticatedSafe.
*/
@@ -54,8 +53,7 @@ _decode_pkcs12_auth_safe(asn1_node pkcs12, asn1_node * authen_safe,
char error_str[ASN1_MAX_ERROR_DESCRIPTION_SIZE];
len = sizeof(oid) - 1;
- result =
- asn1_read_value(pkcs12, "authSafe.contentType", oid, &len);
+ result = asn1_read_value(pkcs12, "authSafe.contentType", oid, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -63,8 +61,7 @@ _decode_pkcs12_auth_safe(asn1_node pkcs12, asn1_node * authen_safe,
if (strcmp(oid, DATA_OID) != 0) {
gnutls_assert();
- _gnutls_debug_log("Unknown PKCS12 Content OID '%s'\n",
- oid);
+ _gnutls_debug_log("Unknown PKCS12 Content OID '%s'\n", oid);
return GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE;
}
@@ -91,8 +88,7 @@ _decode_pkcs12_auth_safe(asn1_node pkcs12, asn1_node * authen_safe,
}
result =
- asn1_der_decoding(&c2, auth_safe.data, auth_safe.size,
- error_str);
+ asn1_der_decoding(&c2, auth_safe.data, auth_safe.size, error_str);
if (result != ASN1_SUCCESS) {
gnutls_assert();
_gnutls_debug_log("DER error: %s\n", error_str);
@@ -114,7 +110,7 @@ _decode_pkcs12_auth_safe(asn1_node pkcs12, asn1_node * authen_safe,
return 0;
- cleanup:
+ cleanup:
if (c2)
asn1_delete_structure(&c2);
_gnutls_free_datum(&auth_safe);
@@ -123,14 +119,13 @@ _decode_pkcs12_auth_safe(asn1_node pkcs12, asn1_node * authen_safe,
static int pkcs12_reinit(gnutls_pkcs12_t pkcs12)
{
-int result;
+ int result;
if (pkcs12->pkcs12)
asn1_delete_structure(&pkcs12->pkcs12);
result = asn1_create_element(_gnutls_get_pkix(),
- "PKIX1.pkcs-12-PFX",
- &pkcs12->pkcs12);
+ "PKIX1.pkcs-12-PFX", &pkcs12->pkcs12);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -254,13 +249,12 @@ gnutls_pkcs12_import(gnutls_pkcs12_t pkcs12,
return 0;
- cleanup:
+ cleanup:
if (need_free)
_gnutls_free_datum(&_data);
return result;
}
-
/**
* gnutls_pkcs12_export:
* @pkcs12: A pkcs12 type
@@ -284,7 +278,7 @@ gnutls_pkcs12_import(gnutls_pkcs12_t pkcs12,
int
gnutls_pkcs12_export(gnutls_pkcs12_t pkcs12,
gnutls_x509_crt_fmt_t format, void *output_data,
- size_t * output_data_size)
+ size_t *output_data_size)
{
int ret;
@@ -337,8 +331,7 @@ gnutls_pkcs12_export2(gnutls_pkcs12_t pkcs12,
return GNUTLS_E_INVALID_REQUEST;
}
- ret = _gnutls_x509_export_int2(pkcs12->pkcs12, format, PEM_PKCS12,
- out);
+ ret = _gnutls_x509_export_int2(pkcs12->pkcs12, format, PEM_PKCS12, out);
if (ret < 0) {
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
} else {
@@ -411,8 +404,7 @@ _pkcs12_decode_safe_contents(const gnutls_datum_t * content,
goto cleanup;
}
- result =
- asn1_der_decoding(&c2, content->data, content->size, NULL);
+ result = asn1_der_decoding(&c2, content->data, content->size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -457,8 +449,7 @@ _pkcs12_decode_safe_contents(const gnutls_datum_t * content,
snprintf(root, sizeof(root), "?%u.bagValue", i + 1);
result =
- _gnutls_x509_read_value(c2, root,
- &bag->element[i].data);
+ _gnutls_x509_read_value(c2, root, &bag->element[i].data);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -486,8 +477,7 @@ _pkcs12_decode_safe_contents(const gnutls_datum_t * content,
snprintf(root, sizeof(root), "?%u.bagAttributes", i + 1);
result = asn1_number_of_elements(c2, root, &attributes);
- if (result != ASN1_SUCCESS
- && result != ASN1_ELEMENT_NOT_FOUND) {
+ if (result != ASN1_SUCCESS && result != ASN1_ELEMENT_NOT_FOUND) {
gnutls_assert();
result = _gnutls_asn2err(result);
goto cleanup;
@@ -500,8 +490,7 @@ _pkcs12_decode_safe_contents(const gnutls_datum_t * content,
for (j = 0; j < attributes; j++) {
snprintf(root, sizeof(root),
- "?%u.bagAttributes.?%d", i + 1,
- j + 1);
+ "?%u.bagAttributes.?%d", i + 1, j + 1);
result =
_gnutls_x509_decode_and_read_attribute
@@ -529,15 +518,20 @@ _pkcs12_decode_safe_contents(const gnutls_datum_t * content,
continue;
}
- _gnutls_free_datum(&bag->element[i].local_key_id);
- bag->element[i].local_key_id.data = t.data;
- bag->element[i].local_key_id.size = t.size;
- } else if (strcmp(oid, FRIENDLY_NAME_OID) == 0 && bag->element[i].friendly_name == NULL) {
+ _gnutls_free_datum(&bag->element
+ [i].local_key_id);
+ bag->element[i].local_key_id.data =
+ t.data;
+ bag->element[i].local_key_id.size =
+ t.size;
+ } else if (strcmp(oid, FRIENDLY_NAME_OID) == 0
+ && bag->element[i].friendly_name ==
+ NULL) {
result =
_gnutls_x509_decode_string
(ASN1_ETYPE_BMP_STRING,
- attr_val.data, attr_val.size,
- &t, 1);
+ attr_val.data, attr_val.size, &t,
+ 1);
_gnutls_free_datum(&attr_val);
if (result < 0) {
@@ -548,8 +542,10 @@ _pkcs12_decode_safe_contents(const gnutls_datum_t * content,
continue;
}
- gnutls_free(bag->element[i].friendly_name);
- bag->element[i].friendly_name = (char *) t.data;
+ gnutls_free(bag->
+ element[i].friendly_name);
+ bag->element[i].friendly_name =
+ (char *)t.data;
} else {
_gnutls_free_datum(&attr_val);
_gnutls_debug_log
@@ -558,24 +554,21 @@ _pkcs12_decode_safe_contents(const gnutls_datum_t * content,
}
}
-
bag->element[i].type = bag_type;
}
result = 0;
- cleanup:
+ cleanup:
if (c2)
asn1_delete_structure(&c2);
return result;
}
-
static int
-_parse_safe_contents(asn1_node sc, const char *sc_name,
- gnutls_pkcs12_bag_t bag)
+_parse_safe_contents(asn1_node sc, const char *sc_name, gnutls_pkcs12_bag_t bag)
{
gnutls_datum_t content = { NULL, 0 };
int result;
@@ -601,12 +594,11 @@ _parse_safe_contents(asn1_node sc, const char *sc_name,
return 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(&content);
return result;
}
-
/**
* gnutls_pkcs12_get_bag:
* @pkcs12: A pkcs12 type
@@ -622,8 +614,7 @@ _parse_safe_contents(asn1_node sc, const char *sc_name,
* negative error value.
**/
int
-gnutls_pkcs12_get_bag(gnutls_pkcs12_t pkcs12,
- int indx, gnutls_pkcs12_bag_t bag)
+gnutls_pkcs12_get_bag(gnutls_pkcs12_t pkcs12, int indx, gnutls_pkcs12_bag_t bag)
{
asn1_node c2 = NULL;
int result, len;
@@ -685,7 +676,7 @@ gnutls_pkcs12_get_bag(gnutls_pkcs12_t pkcs12,
result = 0;
- cleanup:
+ cleanup:
if (c2)
asn1_delete_structure(&c2);
return result;
@@ -710,8 +701,7 @@ static int create_empty_pfx(asn1_node pkcs12)
/* Write the content type of the data
*/
- result =
- asn1_write_value(pkcs12, "authSafe.contentType", DATA_OID, 1);
+ result = asn1_write_value(pkcs12, "authSafe.contentType", DATA_OID, 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -741,7 +731,7 @@ static int create_empty_pfx(asn1_node pkcs12)
return 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&c2);
return result;
@@ -774,8 +764,7 @@ int gnutls_pkcs12_set_bag(gnutls_pkcs12_t pkcs12, gnutls_pkcs12_bag_t bag)
* case generate an empty PFX.
*/
result =
- asn1_read_value(pkcs12->pkcs12, "authSafe.content", &null,
- &dum);
+ asn1_read_value(pkcs12->pkcs12, "authSafe.content", &null, &dum);
if (result == ASN1_VALUE_NOT_FOUND) {
result = create_empty_pfx(pkcs12->pkcs12);
if (result < 0) {
@@ -813,11 +802,9 @@ int gnutls_pkcs12_set_bag(gnutls_pkcs12_t pkcs12, gnutls_pkcs12_bag_t bag)
if (enc)
result =
- asn1_write_value(c2, "?LAST.contentType", ENC_DATA_OID,
- 1);
+ asn1_write_value(c2, "?LAST.contentType", ENC_DATA_OID, 1);
else
- result =
- asn1_write_value(c2, "?LAST.contentType", DATA_OID, 1);
+ result = asn1_write_value(c2, "?LAST.contentType", DATA_OID, 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -848,7 +835,6 @@ int gnutls_pkcs12_set_bag(gnutls_pkcs12_t pkcs12, gnutls_pkcs12_bag_t bag)
asn1_delete_structure(&safe_cont);
-
/* Step 5. Re-encode and copy the AuthenticatedSafe into the pkcs12
* structure.
*/
@@ -864,7 +850,7 @@ int gnutls_pkcs12_set_bag(gnutls_pkcs12_t pkcs12, gnutls_pkcs12_bag_t bag)
return 0;
- cleanup:
+ cleanup:
asn1_delete_structure(&c2);
asn1_delete_structure(&safe_cont);
return result;
@@ -921,7 +907,8 @@ _gnutls_pkcs12_gost_string_to_key(gnutls_mac_algorithm_t algo,
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
* negative error value.
**/
-int gnutls_pkcs12_generate_mac2(gnutls_pkcs12_t pkcs12, gnutls_mac_algorithm_t mac, const char *pass)
+int gnutls_pkcs12_generate_mac2(gnutls_pkcs12_t pkcs12,
+ gnutls_mac_algorithm_t mac, const char *pass)
{
uint8_t salt[8], key[MAX_HASH_SIZE];
int result;
@@ -984,9 +971,7 @@ int gnutls_pkcs12_generate_mac2(gnutls_pkcs12_t pkcs12, gnutls_mac_algorithm_t m
salt,
sizeof(salt),
iter,
- pass,
- key_len,
- key);
+ pass, key_len, key);
} else
#endif
result = _gnutls_pkcs12_string_to_key(me, 3 /*MAC*/,
@@ -1008,8 +993,7 @@ int gnutls_pkcs12_generate_mac2(gnutls_pkcs12_t pkcs12, gnutls_mac_algorithm_t m
/* MAC the data
*/
- result = _gnutls_mac_init(&td1, me,
- key, key_len);
+ result = _gnutls_mac_init(&td1, me, key, key_len);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -1020,7 +1004,6 @@ int gnutls_pkcs12_generate_mac2(gnutls_pkcs12_t pkcs12, gnutls_mac_algorithm_t m
_gnutls_mac_deinit(&td1, mac_out);
-
result =
asn1_write_value(pkcs12->pkcs12, "macData.mac.digest", mac_out,
mac_size);
@@ -1032,8 +1015,7 @@ int gnutls_pkcs12_generate_mac2(gnutls_pkcs12_t pkcs12, gnutls_mac_algorithm_t m
result =
asn1_write_value(pkcs12->pkcs12,
- "macData.mac.digestAlgorithm.parameters",
- NULL, 0);
+ "macData.mac.digestAlgorithm.parameters", NULL, 0);
if (result != ASN1_SUCCESS && result != ASN1_ELEMENT_NOT_FOUND) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -1054,7 +1036,7 @@ int gnutls_pkcs12_generate_mac2(gnutls_pkcs12_t pkcs12, gnutls_mac_algorithm_t m
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_NOT_APPROVED);
return 0;
- cleanup:
+ cleanup:
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_ERROR);
_gnutls_free_datum(&tmp);
return result;
@@ -1094,7 +1076,8 @@ int gnutls_pkcs12_verify_mac(gnutls_pkcs12_t pkcs12, const char *pass)
int len;
mac_hd_st td1;
gnutls_datum_t tmp = { NULL, 0 }, salt = {
- NULL, 0};
+ NULL, 0
+ };
uint8_t mac_output[MAX_HASH_SIZE];
uint8_t mac_output_orig[MAX_HASH_SIZE];
gnutls_mac_algorithm_t algo;
@@ -1112,16 +1095,15 @@ int gnutls_pkcs12_verify_mac(gnutls_pkcs12_t pkcs12, const char *pass)
/* read the iterations
*/
result =
- _gnutls_x509_read_uint(pkcs12->pkcs12, "macData.iterations",
- &iter);
+ _gnutls_x509_read_uint(pkcs12->pkcs12, "macData.iterations", &iter);
if (result < 0) {
iter = 1; /* the default */
}
len = sizeof(oid);
result =
- asn1_read_value(pkcs12->pkcs12, "macData.mac.digestAlgorithm.algorithm",
- oid, &len);
+ asn1_read_value(pkcs12->pkcs12,
+ "macData.mac.digestAlgorithm.algorithm", oid, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -1145,7 +1127,7 @@ int gnutls_pkcs12_verify_mac(gnutls_pkcs12_t pkcs12, const char *pass)
*/
result =
_gnutls_x509_read_null_value(pkcs12->pkcs12, "macData.macSalt",
- &salt);
+ &salt);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -1155,8 +1137,7 @@ int gnutls_pkcs12_verify_mac(gnutls_pkcs12_t pkcs12, const char *pass)
*/
result = _gnutls_pkcs12_string_to_key(entry, 3 /*MAC*/,
salt.data, salt.size,
- iter, pass,
- key_len, key);
+ iter, pass, key_len, key);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -1169,11 +1150,10 @@ int gnutls_pkcs12_verify_mac(gnutls_pkcs12_t pkcs12, const char *pass)
gnutls_assert();
goto cleanup;
}
-
#if ENABLE_GOST
/* GOST PKCS#12 files use either PKCS#12 scheme or proprietary
* HMAC-based scheme to generate MAC key. */
-pkcs12_try_gost:
+ pkcs12_try_gost:
#endif
/* MAC the data
@@ -1241,7 +1221,6 @@ pkcs12_try_gost:
return result;
}
-
static int
write_attributes(gnutls_pkcs12_bag_t bag, int elem,
asn1_node c2, const char *where)
@@ -1284,8 +1263,7 @@ write_attributes(gnutls_pkcs12_bag_t bag, int elem,
bag->element
[elem].
local_key_id.data,
- bag->element
- [elem].
+ bag->element[elem].
local_key_id.size,
1);
if (result < 0) {
@@ -1342,7 +1320,6 @@ write_attributes(gnutls_pkcs12_bag_t bag, int elem,
return 0;
}
-
/* Encodes the bag into a SafeContents structure, and puts the output in
* the given datum. Enc is set to non-zero if the data are encrypted;
*/
@@ -1398,14 +1375,12 @@ _pkcs12_encode_safe_contents(gnutls_pkcs12_bag_t bag, asn1_node * contents,
/* Set empty attributes
*/
- result =
- write_attributes(bag, i, c2, "?LAST.bagAttributes");
+ result = write_attributes(bag, i, c2, "?LAST.bagAttributes");
if (result < 0) {
gnutls_assert();
goto cleanup;
}
-
/* Copy the Bag Value
*/
@@ -1420,8 +1395,7 @@ _pkcs12_encode_safe_contents(gnutls_pkcs12_bag_t bag, asn1_node * contents,
result =
_pkcs12_encode_crt_bag(bag->element[i].type,
- &bag->element[i].data,
- &tmp);
+ &bag->element[i].data, &tmp);
if (result < 0) {
gnutls_assert();
@@ -1438,8 +1412,7 @@ _pkcs12_encode_safe_contents(gnutls_pkcs12_bag_t bag, asn1_node * contents,
result =
_gnutls_x509_write_value(c2, "?LAST.bagValue",
- &bag->element[i].
- data);
+ &bag->element[i].data);
}
if (result < 0) {
@@ -1455,7 +1428,7 @@ _pkcs12_encode_safe_contents(gnutls_pkcs12_bag_t bag, asn1_node * contents,
return 0;
- cleanup:
+ cleanup:
if (c2)
asn1_delete_structure(&c2);
return result;
@@ -1508,7 +1481,7 @@ static int make_chain(gnutls_x509_crt_t ** chain, unsigned int *chain_len,
continue;
}
- skip:
+ skip:
i++;
}
return 0;
@@ -1813,24 +1786,26 @@ gnutls_pkcs12_simple_parse(gnutls_pkcs12_t p12,
}
if (memcmp(cert_id, key_id, cert_id_size) != 0) { /* they don't match - skip the certificate */
- if (unlikely(INT_ADD_OVERFLOW(_extra_certs_len, 1))) {
- ret = gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
+ if (unlikely
+ (INT_ADD_OVERFLOW
+ (_extra_certs_len, 1))) {
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_MEMORY_ERROR);
goto done;
}
_extra_certs =
- _gnutls_reallocarray_fast(_extra_certs,
- ++_extra_certs_len,
- sizeof(_extra_certs[0]));
+ _gnutls_reallocarray_fast
+ (_extra_certs, ++_extra_certs_len,
+ sizeof(_extra_certs[0]));
if (!_extra_certs) {
gnutls_assert();
- ret =
- GNUTLS_E_MEMORY_ERROR;
+ ret = GNUTLS_E_MEMORY_ERROR;
goto done;
}
_extra_certs
- [_extra_certs_len -
- 1] = this_cert;
+ [_extra_certs_len - 1] = this_cert;
this_cert = NULL;
} else {
if (chain && _chain_len == 0) {
@@ -1910,7 +1885,7 @@ gnutls_pkcs12_simple_parse(gnutls_pkcs12_t p12,
ret = 0;
- done:
+ done:
if (bag)
gnutls_pkcs12_bag_deinit(bag);
@@ -1958,7 +1933,6 @@ gnutls_pkcs12_simple_parse(gnutls_pkcs12_t p12,
return ret;
}
-
/**
* gnutls_pkcs12_mac_info:
* @pkcs12: A pkcs12 type
@@ -1981,11 +1955,13 @@ gnutls_pkcs12_simple_parse(gnutls_pkcs12_t p12,
**/
int
gnutls_pkcs12_mac_info(gnutls_pkcs12_t pkcs12, unsigned int *mac,
- void *salt, unsigned int *salt_size, unsigned int *iter_count, char **oid)
+ void *salt, unsigned int *salt_size,
+ unsigned int *iter_count, char **oid)
{
int ret;
gnutls_datum_t tmp = { NULL, 0 }, dsalt = {
- NULL, 0};
+ NULL, 0
+ };
gnutls_mac_algorithm_t algo;
if (oid)
@@ -1997,7 +1973,8 @@ gnutls_pkcs12_mac_info(gnutls_pkcs12_t pkcs12, unsigned int *mac,
}
ret =
- _gnutls_x509_read_value(pkcs12->pkcs12, "macData.mac.digestAlgorithm.algorithm",
+ _gnutls_x509_read_value(pkcs12->pkcs12,
+ "macData.mac.digestAlgorithm.algorithm",
&tmp);
if (ret < 0) {
gnutls_assert();
@@ -2005,10 +1982,10 @@ gnutls_pkcs12_mac_info(gnutls_pkcs12_t pkcs12, unsigned int *mac,
}
if (oid) {
- *oid = (char*)tmp.data;
+ *oid = (char *)tmp.data;
}
- algo = DIG_TO_MAC(gnutls_oid_to_digest((char*)tmp.data));
+ algo = DIG_TO_MAC(gnutls_oid_to_digest((char *)tmp.data));
if (algo == GNUTLS_MAC_UNKNOWN || mac_to_entry(algo) == NULL) {
gnutls_assert();
return GNUTLS_E_UNKNOWN_HASH_ALGORITHM;
@@ -2025,7 +2002,7 @@ gnutls_pkcs12_mac_info(gnutls_pkcs12_t pkcs12, unsigned int *mac,
if (iter_count) {
ret =
_gnutls_x509_read_uint(pkcs12->pkcs12, "macData.iterations",
- iter_count);
+ iter_count);
if (ret < 0) {
*iter_count = 1; /* the default */
}
@@ -2035,8 +2012,8 @@ gnutls_pkcs12_mac_info(gnutls_pkcs12_t pkcs12, unsigned int *mac,
/* Read the salt from the structure.
*/
ret =
- _gnutls_x509_read_null_value(pkcs12->pkcs12, "macData.macSalt",
- &dsalt);
+ _gnutls_x509_read_null_value(pkcs12->pkcs12,
+ "macData.macSalt", &dsalt);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2060,4 +2037,3 @@ gnutls_pkcs12_mac_info(gnutls_pkcs12_t pkcs12, unsigned int *mac,
return ret;
}
-
diff --git a/lib/x509/pkcs12_bag.c b/lib/x509/pkcs12_bag.c
index 51a506e01e..012d92f8d4 100644
--- a/lib/x509/pkcs12_bag.c
+++ b/lib/x509/pkcs12_bag.c
@@ -67,7 +67,6 @@ static inline void _pkcs12_bag_free_data(gnutls_pkcs12_bag_t bag)
}
-
/**
* gnutls_pkcs12_bag_deinit:
* @bag: A pointer to the type to be initialized
@@ -93,8 +92,7 @@ void gnutls_pkcs12_bag_deinit(gnutls_pkcs12_bag_t bag)
*
* Returns: On error a negative error value or one of the #gnutls_pkcs12_bag_type_t enumerations.
**/
-int
-gnutls_pkcs12_bag_get_type(gnutls_pkcs12_bag_t bag, unsigned indx)
+int gnutls_pkcs12_bag_get_type(gnutls_pkcs12_bag_t bag, unsigned indx)
{
if (bag == NULL) {
gnutls_assert();
@@ -253,14 +251,12 @@ _pkcs12_decode_crt_bag(gnutls_pkcs12_bag_type_t type,
return 0;
-
- cleanup:
+ cleanup:
asn1_delete_structure(&c2);
return ret;
}
-
int
_pkcs12_encode_crt_bag(gnutls_pkcs12_bag_type_t type,
const gnutls_datum_t * raw, gnutls_datum_t * out)
@@ -328,9 +324,7 @@ _pkcs12_encode_crt_bag(gnutls_pkcs12_bag_type_t type,
goto cleanup;
}
- ret =
- asn1_write_value(c2, "secretTypeId", RANDOM_NONCE_OID,
- 1);
+ ret = asn1_write_value(c2, "secretTypeId", RANDOM_NONCE_OID, 1);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -363,14 +357,12 @@ _pkcs12_encode_crt_bag(gnutls_pkcs12_bag_type_t type,
return 0;
-
- cleanup:
+ cleanup:
asn1_delete_structure(&c2);
return ret;
}
-
/**
* gnutls_pkcs12_bag_set_data:
* @bag: The bag
@@ -440,8 +432,7 @@ gnutls_pkcs12_bag_set_data(gnutls_pkcs12_bag_t bag,
* Returns: the index of the added bag on success, or a negative
* value on failure.
**/
-int
-gnutls_pkcs12_bag_set_crt(gnutls_pkcs12_bag_t bag, gnutls_x509_crt_t crt)
+int gnutls_pkcs12_bag_set_crt(gnutls_pkcs12_bag_t bag, gnutls_x509_crt_t crt)
{
int ret;
gnutls_datum_t data;
@@ -457,8 +448,7 @@ gnutls_pkcs12_bag_set_crt(gnutls_pkcs12_bag_t bag, gnutls_x509_crt_t crt)
return ret;
}
- ret =
- gnutls_pkcs12_bag_set_data(bag, GNUTLS_BAG_CERTIFICATE, &data);
+ ret = gnutls_pkcs12_bag_set_data(bag, GNUTLS_BAG_CERTIFICATE, &data);
_gnutls_free_datum(&data);
@@ -476,13 +466,11 @@ gnutls_pkcs12_bag_set_crt(gnutls_pkcs12_bag_t bag, gnutls_x509_crt_t crt)
* Returns: the index of the added bag on success, or a negative error code
* on failure.
**/
-int
-gnutls_pkcs12_bag_set_crl(gnutls_pkcs12_bag_t bag, gnutls_x509_crl_t crl)
+int gnutls_pkcs12_bag_set_crl(gnutls_pkcs12_bag_t bag, gnutls_x509_crl_t crl)
{
int ret;
gnutls_datum_t data;
-
if (bag == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
@@ -521,7 +509,6 @@ gnutls_pkcs12_bag_set_key_id(gnutls_pkcs12_bag_t bag, unsigned indx,
{
int ret;
-
if (bag == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
@@ -608,7 +595,6 @@ gnutls_pkcs12_bag_get_friendly_name(gnutls_pkcs12_bag_t bag, unsigned indx,
return 0;
}
-
/**
* gnutls_pkcs12_bag_set_friendly_name:
* @bag: The bag
@@ -647,7 +633,6 @@ gnutls_pkcs12_bag_set_friendly_name(gnutls_pkcs12_bag_t bag, unsigned indx,
return 0;
}
-
/**
* gnutls_pkcs12_bag_decrypt:
* @bag: The bag
@@ -674,8 +659,7 @@ int gnutls_pkcs12_bag_decrypt(gnutls_pkcs12_bag_t bag, const char *pass)
return GNUTLS_E_INVALID_REQUEST;
}
- ret =
- _gnutls_pkcs7_decrypt_data(&bag->element[0].data, pass, &dec);
+ ret = _gnutls_pkcs7_decrypt_data(&bag->element[0].data, pass, &dec);
if (ret < 0) {
gnutls_assert();
@@ -779,7 +763,6 @@ gnutls_pkcs12_bag_encrypt(gnutls_pkcs12_bag_t bag, const char *pass,
bag->bag_elements = 1;
-
return 0;
}
@@ -805,8 +788,10 @@ gnutls_pkcs12_bag_encrypt(gnutls_pkcs12_bag_t bag, const char *pass,
* another negative error code in case of a failure. Zero on success.
**/
int
-gnutls_pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, unsigned int *schema, unsigned int *cipher,
- void *salt, unsigned int *salt_size, unsigned int *iter_count, char **oid)
+gnutls_pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, unsigned int *schema,
+ unsigned int *cipher, void *salt,
+ unsigned int *salt_size, unsigned int *iter_count,
+ char **oid)
{
int ret;
struct pbkdf2_params kdf;
@@ -822,8 +807,7 @@ gnutls_pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, unsigned int *schema, unsign
return GNUTLS_E_INVALID_REQUEST;
}
- ret =
- _gnutls_pkcs7_data_enc_info(&bag->element[0].data, &p, &kdf, oid);
+ ret = _gnutls_pkcs7_data_enc_info(&bag->element[0].data, &p, &kdf, oid);
if (ret < 0) {
gnutls_assert();
@@ -837,7 +821,7 @@ gnutls_pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, unsigned int *schema, unsign
*cipher = p->cipher;
if (iter_count)
- *iter_count = kdf.iter_count;
+ *iter_count = kdf.iter_count;
if (salt) {
if (*salt_size >= (unsigned)kdf.salt_size) {
@@ -851,7 +835,6 @@ gnutls_pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, unsigned int *schema, unsign
if (salt_size)
*salt_size = kdf.salt_size;
-
return 0;
}
@@ -869,11 +852,12 @@ gnutls_pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, unsigned int *schema, unsign
* value on failure.
**/
int
-gnutls_pkcs12_bag_set_privkey(gnutls_pkcs12_bag_t bag, gnutls_x509_privkey_t privkey,
+gnutls_pkcs12_bag_set_privkey(gnutls_pkcs12_bag_t bag,
+ gnutls_x509_privkey_t privkey,
const char *password, unsigned flags)
{
int ret;
- gnutls_datum_t data = {NULL, 0};
+ gnutls_datum_t data = { NULL, 0 };
if (bag == NULL) {
gnutls_assert();
@@ -886,13 +870,18 @@ gnutls_pkcs12_bag_set_privkey(gnutls_pkcs12_bag_t bag, gnutls_x509_privkey_t pri
return gnutls_assert_val(ret);
if (password == NULL) {
- ret = gnutls_pkcs12_bag_set_data(bag, GNUTLS_BAG_PKCS8_KEY, &data);
+ ret =
+ gnutls_pkcs12_bag_set_data(bag, GNUTLS_BAG_PKCS8_KEY,
+ &data);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
} else {
- ret = gnutls_pkcs12_bag_set_data(bag, GNUTLS_BAG_PKCS8_ENCRYPTED_KEY, &data);
+ ret =
+ gnutls_pkcs12_bag_set_data(bag,
+ GNUTLS_BAG_PKCS8_ENCRYPTED_KEY,
+ &data);
if (ret < 0) {
gnutls_assert();
goto cleanup;
diff --git a/lib/x509/pkcs12_encr.c b/lib/x509/pkcs12_encr.c
index 55c46e4b6b..4c961b2919 100644
--- a/lib/x509/pkcs12_encr.c
+++ b/lib/x509/pkcs12_encr.c
@@ -50,40 +50,41 @@ _gnutls_pkcs12_string_to_key(const mac_entry_st * me,
bigint_t num_b1 = NULL, num_ij = NULL;
bigint_t v_mpi = NULL;
unsigned int pwlen;
- uint8_t hash[MAX_HASH_SIZE], buf_b[MAX_V_SIZE], buf_i[MAX_PASS_LEN + MAX_V_SIZE], *p;
+ uint8_t hash[MAX_HASH_SIZE], buf_b[MAX_V_SIZE],
+ buf_i[MAX_PASS_LEN + MAX_V_SIZE], *p;
uint8_t d[MAX_V_SIZE];
size_t cur_keylen;
size_t n, m, plen, i_size;
size_t slen;
- gnutls_datum_t ucs2 = {NULL, 0};
+ gnutls_datum_t ucs2 = { NULL, 0 };
unsigned mac_len;
- uint8_t v_val[MAX_V_SIZE+1];
+ uint8_t v_val[MAX_V_SIZE + 1];
unsigned v_size = 0;
switch (me->id) {
- case GNUTLS_DIG_GOSTR_94:
- v_size = 32;
- break;
- case GNUTLS_DIG_SHA1:
- case GNUTLS_DIG_SHA224:
- case GNUTLS_DIG_SHA256:
- case GNUTLS_DIG_STREEBOG_256:
- case GNUTLS_DIG_STREEBOG_512:
- v_size = 64;
- break;
- case GNUTLS_DIG_SHA384:
- case GNUTLS_DIG_SHA512:
- v_size = 128;
- break;
- default:
- break;
+ case GNUTLS_DIG_GOSTR_94:
+ v_size = 32;
+ break;
+ case GNUTLS_DIG_SHA1:
+ case GNUTLS_DIG_SHA224:
+ case GNUTLS_DIG_SHA256:
+ case GNUTLS_DIG_STREEBOG_256:
+ case GNUTLS_DIG_STREEBOG_512:
+ v_size = 64;
+ break;
+ case GNUTLS_DIG_SHA384:
+ case GNUTLS_DIG_SHA512:
+ v_size = 128;
+ break;
+ default:
+ break;
}
if (v_size == 0 || v_size > MAX_V_SIZE)
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
memset(v_val, 0, sizeof(v_val));
- v_val[0] = 0x01; /* make it be 2^64 or 2^128 */
+ v_val[0] = 0x01; /* make it be 2^64 or 2^128 */
cur_keylen = 0;
@@ -101,10 +102,10 @@ _gnutls_pkcs12_string_to_key(const mac_entry_st * me,
return gnutls_assert_val(rc);
/* include terminating zero */
- ucs2.size+=2;
+ ucs2.size += 2;
}
pwlen = ucs2.size;
- pw = (char*)ucs2.data;
+ pw = (char *)ucs2.data;
} else {
pwlen = 0;
}
@@ -114,15 +115,15 @@ _gnutls_pkcs12_string_to_key(const mac_entry_st * me,
goto cleanup;
}
- rc = _gnutls_mpi_init_scan(&v_mpi, v_val, v_size+1);
+ rc = _gnutls_mpi_init_scan(&v_mpi, v_val, v_size + 1);
if (rc < 0) {
gnutls_assert();
goto cleanup;
}
/* Store salt and password in BUF_I */
- slen = ((salt_size+v_size-1)/v_size) * v_size;
- plen = ((pwlen+v_size-1)/v_size) * v_size;
+ slen = ((salt_size + v_size - 1) / v_size) * v_size;
+ plen = ((pwlen + v_size - 1) / v_size) * v_size;
i_size = slen + plen;
if (i_size > sizeof(buf_i)) {
@@ -137,8 +138,8 @@ _gnutls_pkcs12_string_to_key(const mac_entry_st * me,
if (pw) {
for (i = j = 0; i < plen; i += 2) {
*p++ = pw[j];
- *p++ = pw[j+1];
- j+=2;
+ *p++ = pw[j + 1];
+ j += 2;
if (j >= pwlen)
j = 0;
}
@@ -160,8 +161,8 @@ _gnutls_pkcs12_string_to_key(const mac_entry_st * me,
_gnutls_hash(&md, buf_i, i_size);
_gnutls_hash_deinit(&md, hash);
for (i = 1; i < iter; i++) {
- rc = _gnutls_hash_fast((gnutls_digest_algorithm_t)me->id,
- hash, mac_len, hash);
+ rc = _gnutls_hash_fast((gnutls_digest_algorithm_t)
+ me->id, hash, mac_len, hash);
if (rc < 0) {
gnutls_assert();
goto cleanup;
@@ -208,8 +209,7 @@ _gnutls_pkcs12_string_to_key(const mac_entry_st * me,
m = (_gnutls_mpi_get_nbits(num_ij) + 7) / 8;
memset(buf_i + i, 0, n - m);
- rc = _gnutls_mpi_print(num_ij, buf_i + i + n - m,
- &n);
+ rc = _gnutls_mpi_print(num_ij, buf_i + i + n - m, &n);
if (rc < 0) {
gnutls_assert();
goto cleanup;
@@ -217,7 +217,7 @@ _gnutls_pkcs12_string_to_key(const mac_entry_st * me,
_gnutls_mpi_release(&num_ij);
}
}
- cleanup:
+ cleanup:
_gnutls_mpi_release(&num_ij);
_gnutls_mpi_release(&num_b1);
_gnutls_mpi_release(&v_mpi);
diff --git a/lib/x509/pkcs7-crypt.c b/lib/x509/pkcs7-crypt.c
index 6f528a9114..8cdfb85ac0 100644
--- a/lib/x509/pkcs7-crypt.c
+++ b/lib/x509/pkcs7-crypt.c
@@ -848,28 +848,27 @@ write_pkcs12_kdf_params(asn1_node pasn, const struct pbkdf2_params *kdf_params)
}
static int
-read_pbes2_gost_oid(uint8_t *der, size_t len, char *oid, int oid_size)
+read_pbes2_gost_oid(uint8_t * der, size_t len, char *oid, int oid_size)
{
int result;
asn1_node pbe_asn = NULL;
if ((result =
asn1_create_element(_gnutls_get_pkix(),
- "PKIX1.Gost28147-89-Parameters", &pbe_asn)) != ASN1_SUCCESS) {
+ "PKIX1.Gost28147-89-Parameters",
+ &pbe_asn)) != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
- result =
- _asn1_strict_der_decode(&pbe_asn, der, len, NULL);
+ result = _asn1_strict_der_decode(&pbe_asn, der, len, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
goto error;
}
- result = asn1_read_value(pbe_asn, "encryptionParamSet",
- oid, &oid_size);
+ result = asn1_read_value(pbe_asn, "encryptionParamSet", oid, &oid_size);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -897,7 +896,9 @@ read_pbes2_enc_params(asn1_node pasn,
/* Check the encryption algorithm
*/
len = sizeof(params->pbes2_oid);
- result = asn1_read_value(pasn, "encryptionScheme.algorithm", params->pbes2_oid, &len);
+ result =
+ asn1_read_value(pasn, "encryptionScheme.algorithm",
+ params->pbes2_oid, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -918,14 +919,17 @@ read_pbes2_enc_params(asn1_node pasn,
if (!strcmp(params->pbes2_oid, GOST28147_89_OID)) {
len = sizeof(params->pbes2_oid);
result = read_pbes2_gost_oid(&der->data[params_start],
- params_len, params->pbes2_oid, len);
+ params_len, params->pbes2_oid,
+ len);
if (result < 0) {
gnutls_assert();
return result;
}
}
- if ((result = pbes2_cipher_oid_to_algo(params->pbes2_oid, &params->cipher)) < 0) {
+ if ((result =
+ pbes2_cipher_oid_to_algo(params->pbes2_oid,
+ &params->cipher)) < 0) {
gnutls_assert();
return result;
}
@@ -957,8 +961,7 @@ read_pbes2_enc_params(asn1_node pasn,
/* read the IV */
params->iv_size = sizeof(params->iv);
result = asn1_read_value(pbe_asn,
- p->iv_name,
- params->iv, &params->iv_size);
+ p->iv_name, params->iv, &params->iv_size);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -1106,7 +1109,7 @@ _gnutls_read_pkcs_schema_params(schema_id * schema, const char *password,
static int
_gnutls_pbes2_string_to_key(unsigned int pass_len, const char *password,
const struct pbkdf2_params *kdf_params,
- int key_size, uint8_t *key)
+ int key_size, uint8_t * key)
{
gnutls_datum_t _key;
gnutls_datum_t salt;
@@ -1140,11 +1143,14 @@ _gnutls_pkcs_raw_decrypt_data(schema_id schema, asn1_node pkcs8_asn,
if (_password) {
gnutls_datum_t pout;
- ret = _gnutls_utf8_password_normalize(_password, strlen(_password), &pout, 1);
+ ret =
+ _gnutls_utf8_password_normalize(_password,
+ strlen(_password), &pout,
+ 1);
if (ret < 0)
return gnutls_assert_val(ret);
- password = (char*)pout.data;
+ password = (char *)pout.data;
pass_len = pout.size;
} else {
password = NULL;
@@ -1160,9 +1166,9 @@ _gnutls_pkcs_raw_decrypt_data(schema_id schema, asn1_node pkcs8_asn,
if (schema == PBES1_DES_MD5) {
ret = _gnutls_decrypt_pbes1_des_md5_data(password, pass_len,
- kdf_params,
- enc_params, &enc,
- decrypted_data);
+ kdf_params,
+ enc_params, &enc,
+ decrypted_data);
if (ret < 0)
goto error;
goto cleanup;
@@ -1185,8 +1191,7 @@ _gnutls_pkcs_raw_decrypt_data(schema_id schema, asn1_node pkcs8_asn,
p = _gnutls_pkcs_schema_get(schema);
if (p != NULL && p->pbes2 != 0) { /* PBES2 */
ret = _gnutls_pbes2_string_to_key(pass_len, password,
- kdf_params,
- key_size, key);
+ kdf_params, key_size, key);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -1218,7 +1223,8 @@ _gnutls_pkcs_raw_decrypt_data(schema_id schema, asn1_node pkcs8_asn,
block_size = _gnutls_cipher_get_block_size(ce);
if (ce->type == CIPHER_BLOCK) {
- if (enc.size % block_size != 0 || (unsigned)enc_params->iv_size != block_size) {
+ if (enc.size % block_size != 0
+ || (unsigned)enc_params->iv_size != block_size) {
gnutls_assert();
ret = GNUTLS_E_DECRYPTION_FAILED;
goto error;
@@ -1260,10 +1266,10 @@ _gnutls_pkcs_raw_decrypt_data(schema_id schema, asn1_node pkcs8_asn,
decrypted_data->data = enc.data;
if (ce->type == CIPHER_BLOCK && block_size != 1) {
- unsigned pslen = (uint8_t)enc.data[enc.size - 1];
+ unsigned pslen = (uint8_t) enc.data[enc.size - 1];
unsigned i;
- if (pslen > block_size || pslen >= enc.size || pslen == 0) {
+ if (pslen > block_size || pslen >= enc.size || pslen == 0) {
gnutls_assert();
ret = GNUTLS_E_DECRYPTION_FAILED;
goto error;
@@ -1271,8 +1277,8 @@ _gnutls_pkcs_raw_decrypt_data(schema_id schema, asn1_node pkcs8_asn,
/* verify padding according to rfc2898 */
decrypted_data->size = enc.size - pslen;
- for (i=0;i<pslen;i++) {
- if (enc.data[enc.size-1-i] != pslen) {
+ for (i = 0; i < pslen; i++) {
+ if (enc.data[enc.size - 1 - i] != pslen) {
gnutls_assert();
ret = GNUTLS_E_DECRYPTION_FAILED;
goto error;
@@ -1469,9 +1475,7 @@ write_pbes2_enc_params(asn1_node pasn, const struct pbe_enc_params *params)
}
result =
- asn1_write_value(pasn, "encryptionScheme.algorithm",
- cipher_oid,
- 1);
+ asn1_write_value(pasn, "encryptionScheme.algorithm", cipher_oid, 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
goto error;
@@ -1525,11 +1529,14 @@ _gnutls_pkcs_generate_key(schema_id schema,
if (_password) {
gnutls_datum_t pout;
- ret = _gnutls_utf8_password_normalize(_password, strlen(_password), &pout, 0);
+ ret =
+ _gnutls_utf8_password_normalize(_password,
+ strlen(_password), &pout,
+ 0);
if (ret < 0)
return gnutls_assert_val(ret);
- password = (char*)pout.data;
+ password = (char *)pout.data;
pass_len = pout.size;
} else {
password = NULL;
@@ -1560,7 +1567,7 @@ _gnutls_pkcs_generate_key(schema_id schema,
}
ret = gnutls_rnd(GNUTLS_RND_RANDOM, kdf_params->salt,
- kdf_params->salt_size);
+ kdf_params->salt_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1602,7 +1609,7 @@ _gnutls_pkcs_generate_key(schema_id schema,
if (enc_params->iv_size) {
ret = gnutls_rnd(GNUTLS_RND_NONCE,
- enc_params->iv, enc_params->iv_size);
+ enc_params->iv, enc_params->iv_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1733,7 +1740,8 @@ _gnutls_pkcs_write_schema_params(schema_id schema, asn1_node pkcs8_asn,
int
_gnutls_pkcs_raw_encrypt_data(const gnutls_datum_t * plain,
const struct pbe_enc_params *enc_params,
- const gnutls_datum_t * key, gnutls_datum_t * encrypted)
+ const gnutls_datum_t * key,
+ gnutls_datum_t * encrypted)
{
int result;
int data_size;
diff --git a/lib/x509/pkcs7-output.c b/lib/x509/pkcs7-output.c
index 3d686df228..b5f00db18a 100644
--- a/lib/x509/pkcs7-output.c
+++ b/lib/x509/pkcs7-output.c
@@ -69,9 +69,9 @@ static void print_dn(gnutls_buffer_st * str, const char *prefix,
#define ENTRY2(oid, name) {oid, sizeof(oid)-1, name, sizeof(name)-1, NULL, ASN1_ETYPE_INVALID}
static const struct oid_to_string pkcs7_attrs[] = {
- ENTRY ("1.2.840.113549.1.9.3", "contentType", ASN1_ETYPE_OBJECT_ID),
- ENTRY ("1.2.840.113549.1.9.4", "messageDigest", ASN1_ETYPE_OCTET_STRING),
- ENTRY ("1.2.840.113549.1.9.5", "signingTime", ASN1_ETYPE_INVALID),
+ ENTRY("1.2.840.113549.1.9.3", "contentType", ASN1_ETYPE_OBJECT_ID),
+ ENTRY("1.2.840.113549.1.9.4", "messageDigest", ASN1_ETYPE_OCTET_STRING),
+ ENTRY("1.2.840.113549.1.9.5", "signingTime", ASN1_ETYPE_INVALID),
ENTRY2("1.2.840.113549.1.9.6", "countersignature"),
ENTRY2("1.2.840.113549.1.9.15", "smimeCapabilities"),
@@ -119,7 +119,7 @@ static void print_pkcs7_info(gnutls_pkcs7_signature_info_st * info,
char s[42];
size_t max;
int ret;
- const struct oid_to_string * entry;
+ const struct oid_to_string *entry;
if (info->issuer_dn.size > 0)
print_dn(str, "\tSigner's issuer DN", &info->issuer_dn);
@@ -158,7 +158,9 @@ static void print_pkcs7_info(gnutls_pkcs7_signature_info_st * info,
entry = _gnutls_oid_get_entry(pkcs7_attrs, oid);
snprintf(prefix, sizeof(prefix), "\t\t%s",
- (entry && entry->name_desc) ? entry->name_desc : oid);
+ (entry
+ && entry->
+ name_desc) ? entry->name_desc : oid);
print_raw(str, prefix, &data);
gnutls_free(data.data);
}
@@ -175,7 +177,9 @@ static void print_pkcs7_info(gnutls_pkcs7_signature_info_st * info,
entry = _gnutls_oid_get_entry(pkcs7_attrs, oid);
snprintf(prefix, sizeof(prefix), "\t\t%s",
- (entry && entry->name_desc) ? entry->name_desc : oid);
+ (entry
+ && entry->
+ name_desc) ? entry->name_desc : oid);
print_raw(str, prefix, &data);
gnutls_free(data.data);
}
@@ -271,8 +275,7 @@ int gnutls_pkcs7_print(gnutls_pkcs7_t pkcs7,
count = gnutls_pkcs7_get_crt_count(pkcs7);
if (count > 0) {
- addf(&str, "Number of certificates: %u\n\n",
- count);
+ addf(&str, "Number of certificates: %u\n\n", count);
for (i = 0; i < count; i++) {
ret =
@@ -292,7 +295,7 @@ int gnutls_pkcs7_print(gnutls_pkcs7_t pkcs7,
continue;
}
- adds(&str, (char*)b64.data);
+ adds(&str, (char *)b64.data);
adds(&str, "\n");
gnutls_free(b64.data);
gnutls_free(data.data);
@@ -321,7 +324,7 @@ int gnutls_pkcs7_print(gnutls_pkcs7_t pkcs7,
continue;
}
- adds(&str, (char*)b64.data);
+ adds(&str, (char *)b64.data);
adds(&str, "\n");
gnutls_free(b64.data);
gnutls_free(data.data);
diff --git a/lib/x509/pkcs7.c b/lib/x509/pkcs7.c
index ff8cab0158..c67bef6c32 100644
--- a/lib/x509/pkcs7.c
+++ b/lib/x509/pkcs7.c
@@ -50,10 +50,12 @@ static int _decode_pkcs7_signed_data(gnutls_pkcs7_t pkcs7)
{
asn1_node c2;
int len, result;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
len = MAX_OID_SIZE - 1;
- result = asn1_read_value(pkcs7->pkcs7, "contentType", pkcs7->encap_data_oid, &len);
+ result =
+ asn1_read_value(pkcs7->pkcs7, "contentType", pkcs7->encap_data_oid,
+ &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -61,7 +63,8 @@ static int _decode_pkcs7_signed_data(gnutls_pkcs7_t pkcs7)
if (strcmp(pkcs7->encap_data_oid, SIGNED_DATA_OID) != 0) {
gnutls_assert();
- _gnutls_debug_log("Unknown PKCS7 Content OID '%s'\n", pkcs7->encap_data_oid);
+ _gnutls_debug_log("Unknown PKCS7 Content OID '%s'\n",
+ pkcs7->encap_data_oid);
return GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE;
}
@@ -94,7 +97,8 @@ static int _decode_pkcs7_signed_data(gnutls_pkcs7_t pkcs7)
/* read the encapsulated content */
len = MAX_OID_SIZE - 1;
result =
- asn1_read_value(c2, "encapContentInfo.eContentType", pkcs7->encap_data_oid, &len);
+ asn1_read_value(c2, "encapContentInfo.eContentType",
+ pkcs7->encap_data_oid, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -111,9 +115,14 @@ static int _decode_pkcs7_signed_data(gnutls_pkcs7_t pkcs7)
/* Try reading as octet string according to rfc5652. If that fails, attempt
* a raw read according to rfc2315 */
- result = _gnutls_x509_read_string(c2, "encapContentInfo.eContent", &pkcs7->der_signed_data, ASN1_ETYPE_OCTET_STRING, 1);
+ result =
+ _gnutls_x509_read_string(c2, "encapContentInfo.eContent",
+ &pkcs7->der_signed_data,
+ ASN1_ETYPE_OCTET_STRING, 1);
if (result < 0) {
- result = _gnutls_x509_read_value(c2, "encapContentInfo.eContent", &pkcs7->der_signed_data);
+ result =
+ _gnutls_x509_read_value(c2, "encapContentInfo.eContent",
+ &pkcs7->der_signed_data);
if (result < 0) {
pkcs7->der_signed_data.data = NULL;
pkcs7->der_signed_data.size = 0;
@@ -123,14 +132,21 @@ static int _decode_pkcs7_signed_data(gnutls_pkcs7_t pkcs7)
unsigned long tag;
/* we skip the embedded element's tag and length - uncharted territorry - used by MICROSOFT_CERT_TRUST_LIST */
- result = asn1_get_tag_der(pkcs7->der_signed_data.data, pkcs7->der_signed_data.size, &cls, &tag_len, &tag);
+ result =
+ asn1_get_tag_der(pkcs7->der_signed_data.data,
+ pkcs7->der_signed_data.size, &cls,
+ &tag_len, &tag);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
goto cleanup;
}
- result = asn1_get_length_ber(pkcs7->der_signed_data.data+tag_len, pkcs7->der_signed_data.size-tag_len, &len_len);
+ result =
+ asn1_get_length_ber(pkcs7->der_signed_data.data +
+ tag_len,
+ pkcs7->der_signed_data.size -
+ tag_len, &len_len);
if (result < 0) {
gnutls_assert();
result = GNUTLS_E_ASN1_DER_ERROR;
@@ -138,8 +154,10 @@ static int _decode_pkcs7_signed_data(gnutls_pkcs7_t pkcs7)
}
tag_len += len_len;
- memmove(pkcs7->der_signed_data.data, &pkcs7->der_signed_data.data[tag_len], pkcs7->der_signed_data.size-tag_len);
- pkcs7->der_signed_data.size-=tag_len;
+ memmove(pkcs7->der_signed_data.data,
+ &pkcs7->der_signed_data.data[tag_len],
+ pkcs7->der_signed_data.size - tag_len);
+ pkcs7->der_signed_data.size -= tag_len;
}
}
@@ -405,7 +423,7 @@ gnutls_pkcs7_get_crt_raw2(gnutls_pkcs7_t pkcs7,
int
gnutls_pkcs7_get_crt_raw(gnutls_pkcs7_t pkcs7,
unsigned indx, void *certificate,
- size_t * certificate_size)
+ size_t *certificate_size)
{
int ret;
gnutls_datum_t tmp = { NULL, 0 };
@@ -753,7 +771,7 @@ int gnutls_pkcs7_get_signature_info(gnutls_pkcs7_t pkcs7, unsigned idx,
* and matches our calculated hash */
static int verify_hash_attr(gnutls_pkcs7_t pkcs7, const char *root,
gnutls_sign_algorithm_t algo,
- const gnutls_datum_t *data)
+ const gnutls_datum_t * data)
{
unsigned hash;
gnutls_datum_t tmp = { NULL, 0 };
@@ -886,7 +904,8 @@ static int figure_pkcs7_sigdata(gnutls_pkcs7_t pkcs7, const char *root,
/* We have no signedAttrs. Use the provided data, or the encapsulated */
if (data == NULL || data->data == NULL) {
- return _gnutls_set_datum(sigdata, pkcs7->der_signed_data.data, pkcs7->der_signed_data.size);
+ return _gnutls_set_datum(sigdata, pkcs7->der_signed_data.data,
+ pkcs7->der_signed_data.size);
}
return _gnutls_set_datum(sigdata, data->data, data->size);
@@ -916,7 +935,7 @@ static int figure_pkcs7_sigdata(gnutls_pkcs7_t pkcs7, const char *root,
**/
int
gnutls_pkcs7_get_embedded_data(gnutls_pkcs7_t pkcs7, unsigned flags,
- gnutls_datum_t *data)
+ gnutls_datum_t * data)
{
if (pkcs7 == NULL)
return GNUTLS_E_INVALID_REQUEST;
@@ -926,11 +945,16 @@ gnutls_pkcs7_get_embedded_data(gnutls_pkcs7_t pkcs7, unsigned flags,
if (flags & GNUTLS_PKCS7_EDATA_GET_RAW) {
if (pkcs7->signed_data == NULL)
- return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
- return _gnutls_x509_read_value(pkcs7->signed_data, "encapContentInfo.eContent", data);
+ return _gnutls_x509_read_value(pkcs7->signed_data,
+ "encapContentInfo.eContent",
+ data);
} else {
- return _gnutls_set_datum(data, pkcs7->der_signed_data.data, pkcs7->der_signed_data.size);
+ return _gnutls_set_datum(data, pkcs7->der_signed_data.data,
+ pkcs7->der_signed_data.size);
}
}
@@ -947,8 +971,7 @@ gnutls_pkcs7_get_embedded_data(gnutls_pkcs7_t pkcs7, unsigned flags,
*
* Since: 3.5.5
**/
-const char *
-gnutls_pkcs7_get_embedded_data_oid(gnutls_pkcs7_t pkcs7)
+const char *gnutls_pkcs7_get_embedded_data_oid(gnutls_pkcs7_t pkcs7)
{
if (pkcs7 == NULL || pkcs7->encap_data_oid[0] == 0)
return NULL;
@@ -987,7 +1010,7 @@ gnutls_pkcs7_get_embedded_data_oid(gnutls_pkcs7_t pkcs7)
int gnutls_pkcs7_verify_direct(gnutls_pkcs7_t pkcs7,
gnutls_x509_crt_t signer,
unsigned idx,
- const gnutls_datum_t *data, unsigned flags)
+ const gnutls_datum_t * data, unsigned flags)
{
int count, ret;
gnutls_datum_t tmpdata = { NULL, 0 };
@@ -1038,9 +1061,9 @@ int gnutls_pkcs7_verify_direct(gnutls_pkcs7_t pkcs7,
/* Finds the issuer of the given certificate (@cert) in the
* included in PKCS#7 list of certificates */
static gnutls_x509_crt_t find_verified_issuer_of(gnutls_pkcs7_t pkcs7,
- gnutls_x509_crt_t cert,
- const char *purpose,
- unsigned vflags)
+ gnutls_x509_crt_t cert,
+ const char *purpose,
+ unsigned vflags)
{
gnutls_x509_crt_t issuer = NULL;
int ret, count;
@@ -1078,9 +1101,14 @@ static gnutls_x509_crt_t find_verified_issuer_of(gnutls_pkcs7_t pkcs7,
goto skip;
}
- ret = gnutls_x509_crt_verify(cert, &issuer, 1, vflags|GNUTLS_VERIFY_DO_NOT_ALLOW_SAME, &vtmp);
- if (ret < 0 || vtmp != 0 ||
- (purpose != NULL && !_gnutls_check_key_purpose(issuer, purpose, 0))) {
+ ret =
+ gnutls_x509_crt_verify(cert, &issuer, 1,
+ vflags |
+ GNUTLS_VERIFY_DO_NOT_ALLOW_SAME,
+ &vtmp);
+ if (ret < 0 || vtmp != 0
+ || (purpose != NULL
+ && !_gnutls_check_key_purpose(issuer, purpose, 0))) {
gnutls_assert(); /* maybe next one is trusted */
_gnutls_cert_log("failed verification with", issuer);
skip:
@@ -1120,7 +1148,8 @@ static gnutls_x509_crt_t find_verified_issuer_of(gnutls_pkcs7_t pkcs7,
static gnutls_x509_crt_t find_child_of_with_serial(gnutls_pkcs7_t pkcs7,
gnutls_x509_crt_t issuer,
const char *purpose,
- gnutls_pkcs7_signature_info_st *info)
+ gnutls_pkcs7_signature_info_st
+ * info)
{
gnutls_x509_crt_t crt = NULL;
int ret, count;
@@ -1149,7 +1178,8 @@ static gnutls_x509_crt_t find_child_of_with_serial(gnutls_pkcs7_t pkcs7,
goto fail;
}
- ret = gnutls_x509_crt_import(crt, &tmpdata, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_x509_crt_import(crt, &tmpdata, GNUTLS_X509_FMT_DER);
if (ret < 0) {
gnutls_assert();
goto fail;
@@ -1163,10 +1193,10 @@ static gnutls_x509_crt_t find_child_of_with_serial(gnutls_pkcs7_t pkcs7,
}
if (purpose) {
- ret =
- _gnutls_check_key_purpose(crt, purpose, 0);
+ ret = _gnutls_check_key_purpose(crt, purpose, 0);
if (ret == 0) {
- _gnutls_cert_log("key purpose unacceptable", crt);
+ _gnutls_cert_log("key purpose unacceptable",
+ crt);
goto skip;
}
}
@@ -1188,7 +1218,9 @@ static gnutls_x509_crt_t find_child_of_with_serial(gnutls_pkcs7_t pkcs7,
}
} else if (info->issuer_keyid.size > 0) {
tmp_size = sizeof(tmp);
- ret = gnutls_x509_crt_get_subject_key_id(crt, tmp, &tmp_size, NULL);
+ ret =
+ gnutls_x509_crt_get_subject_key_id(crt, tmp,
+ &tmp_size, NULL);
if (ret < 0) {
gnutls_assert();
goto skip;
@@ -1285,7 +1317,9 @@ gnutls_x509_crt_t find_signer(gnutls_pkcs7_t pkcs7, gnutls_x509_trust_list_t tl,
if (issuer) {
/* try to find the actual signer in the list of
* certificates */
- signer = find_child_of_with_serial(pkcs7, issuer, purpose, info);
+ signer =
+ find_child_of_with_serial(pkcs7, issuer, purpose,
+ info);
if (signer == NULL) {
gnutls_assert();
goto fail;
@@ -1307,7 +1341,10 @@ gnutls_x509_crt_t find_signer(gnutls_pkcs7_t pkcs7, gnutls_x509_trust_list_t tl,
/* if the signer cannot be verified from our trust list, make a chain of certificates
* starting from the identified signer, to a root we know. */
- ret = gnutls_x509_trust_list_verify_crt2(tl, &signer, 1, vdata, vdata_size, vflags, &vtmp, NULL);
+ ret =
+ gnutls_x509_trust_list_verify_crt2(tl, &signer, 1, vdata,
+ vdata_size, vflags,
+ &vtmp, NULL);
if (ret < 0 || vtmp != 0) {
gnutls_x509_crt_t prev = NULL;
@@ -1319,37 +1356,52 @@ gnutls_x509_crt_t find_signer(gnutls_pkcs7_t pkcs7, gnutls_x509_trust_list_t tl,
}
prev = issuer;
- issuer = find_verified_issuer_of(pkcs7, issuer, purpose, vflags);
+ issuer =
+ find_verified_issuer_of(pkcs7, issuer,
+ purpose, vflags);
- if (issuer != NULL && gnutls_x509_crt_check_issuer(issuer, issuer)) {
+ if (issuer != NULL
+ && gnutls_x509_crt_check_issuer(issuer,
+ issuer)) {
if (prev && prev != signer)
gnutls_x509_crt_deinit(prev);
prev = issuer;
break;
}
- } while(issuer != NULL);
+ } while (issuer != NULL);
- issuer = prev; /* the last we have seen */
+ issuer = prev; /* the last we have seen */
if (issuer == NULL) {
gnutls_assert();
goto fail;
}
- ret = gnutls_x509_trust_list_verify_crt2(tl, &issuer, 1, vdata, vdata_size, vflags, &vtmp, NULL);
+ ret =
+ gnutls_x509_trust_list_verify_crt2(tl, &issuer, 1,
+ vdata,
+ vdata_size,
+ vflags, &vtmp,
+ NULL);
if (ret < 0 || vtmp != 0) {
/* could not construct a valid chain */
- _gnutls_reason_log("signer's chain failed trust list verification", vtmp);
+ _gnutls_reason_log
+ ("signer's chain failed trust list verification",
+ vtmp);
gnutls_assert();
goto fail;
}
}
} else {
/* verify that the signer we got is trusted */
- ret = gnutls_x509_trust_list_verify_crt2(tl, &signer, 1, vdata, vdata_size, vflags, &vtmp, NULL);
+ ret =
+ gnutls_x509_trust_list_verify_crt2(tl, &signer, 1, vdata,
+ vdata_size, vflags,
+ &vtmp, NULL);
if (ret < 0 || vtmp != 0) {
/* could not construct a valid chain */
- _gnutls_reason_log("signer failed trust list verification", vtmp);
+ _gnutls_reason_log
+ ("signer failed trust list verification", vtmp);
gnutls_assert();
goto fail;
}
@@ -1404,10 +1456,10 @@ gnutls_x509_crt_t find_signer(gnutls_pkcs7_t pkcs7, gnutls_x509_trust_list_t tl,
**/
int gnutls_pkcs7_verify(gnutls_pkcs7_t pkcs7,
gnutls_x509_trust_list_t tl,
- gnutls_typed_vdata_st *vdata,
+ gnutls_typed_vdata_st * vdata,
unsigned int vdata_size,
unsigned idx,
- const gnutls_datum_t *data, unsigned flags)
+ const gnutls_datum_t * data, unsigned flags)
{
int count, ret;
gnutls_datum_t tmpdata = { NULL, 0 };
@@ -1445,10 +1497,12 @@ int gnutls_pkcs7_verify(gnutls_pkcs7_t pkcs7,
signer = find_signer(pkcs7, tl, vdata, vdata_size, flags, &info);
if (signer) {
ret =
- gnutls_x509_crt_verify_data3(signer, info.algo, vdata, vdata_size,
- &sigdata, &info.sig, flags);
+ gnutls_x509_crt_verify_data3(signer, info.algo, vdata,
+ vdata_size, &sigdata,
+ &info.sig, flags);
if (ret < 0) {
- _gnutls_cert_log("failed struct verification with", signer);
+ _gnutls_cert_log("failed struct verification with",
+ signer);
gnutls_assert();
}
gnutls_x509_crt_deinit(signer);
@@ -1479,7 +1533,8 @@ static void disable_opt_fields(gnutls_pkcs7_t pkcs7)
result =
asn1_number_of_elements(pkcs7->signed_data, "certificates", &count);
if (result != ASN1_SUCCESS || count == 0) {
- (void)asn1_write_value(pkcs7->signed_data, "certificates", NULL, 0);
+ (void)asn1_write_value(pkcs7->signed_data, "certificates", NULL,
+ 0);
}
return;
@@ -1538,7 +1593,7 @@ static int reencode(gnutls_pkcs7_t pkcs7)
int
gnutls_pkcs7_export(gnutls_pkcs7_t pkcs7,
gnutls_x509_crt_fmt_t format, void *output_data,
- size_t * output_data_size)
+ size_t *output_data_size)
{
int ret;
if (pkcs7 == NULL)
@@ -1867,7 +1922,7 @@ gnutls_pkcs7_get_crl_raw2(gnutls_pkcs7_t pkcs7,
**/
int
gnutls_pkcs7_get_crl_raw(gnutls_pkcs7_t pkcs7,
- unsigned indx, void *crl, size_t * crl_size)
+ unsigned indx, void *crl, size_t *crl_size)
{
int ret;
gnutls_datum_t tmp = { NULL, 0 };
@@ -2282,7 +2337,9 @@ static int write_attributes(asn1_node c2, const char *root,
/* If we add any attribute we should add them all */
/* Add hash */
digest_size = _gnutls_hash_get_algo_len(me);
- ret = gnutls_hash_fast(MAC_TO_DIG(me->id), data->data, data->size, digest);
+ ret =
+ gnutls_hash_fast(MAC_TO_DIG(me->id), data->data, data->size,
+ digest);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -2337,7 +2394,7 @@ static int write_attributes(asn1_node c2, const char *root,
int gnutls_pkcs7_sign(gnutls_pkcs7_t pkcs7,
gnutls_x509_crt_t signer,
gnutls_privkey_t signer_key,
- const gnutls_datum_t *data,
+ const gnutls_datum_t * data,
gnutls_pkcs7_attrs_t signed_attrs,
gnutls_pkcs7_attrs_t unsigned_attrs,
gnutls_digest_algorithm_t dig, unsigned flags)
@@ -2366,7 +2423,8 @@ int gnutls_pkcs7_sign(gnutls_pkcs7_t pkcs7,
if (!(flags & GNUTLS_PKCS7_EMBED_DATA)) {
(void)asn1_write_value(pkcs7->signed_data,
- "encapContentInfo.eContent", NULL, 0);
+ "encapContentInfo.eContent",
+ NULL, 0);
}
}
@@ -2378,8 +2436,7 @@ int gnutls_pkcs7_sign(gnutls_pkcs7_t pkcs7,
result =
asn1_write_value(pkcs7->signed_data,
- "encapContentInfo.eContentType", DATA_OID,
- 0);
+ "encapContentInfo.eContentType", DATA_OID, 0);
if (result != ASN1_SUCCESS) {
ret = _gnutls_asn2err(result);
goto cleanup;
@@ -2388,8 +2445,8 @@ int gnutls_pkcs7_sign(gnutls_pkcs7_t pkcs7,
if ((flags & GNUTLS_PKCS7_EMBED_DATA) && data->data) { /* embed data */
ret =
_gnutls_x509_write_string(pkcs7->signed_data,
- "encapContentInfo.eContent", data,
- ASN1_ETYPE_OCTET_STRING);
+ "encapContentInfo.eContent", data,
+ ASN1_ETYPE_OCTET_STRING);
if (ret < 0) {
goto cleanup;
}
@@ -2423,7 +2480,7 @@ int gnutls_pkcs7_sign(gnutls_pkcs7_t pkcs7,
}
(void)asn1_write_value(pkcs7->signed_data,
- "digestAlgorithms.?LAST.parameters", NULL, 0);
+ "digestAlgorithms.?LAST.parameters", NULL, 0);
/* append signer's info */
result = asn1_write_value(pkcs7->signed_data, "signerInfos", "NEW", 1);
@@ -2453,8 +2510,8 @@ int gnutls_pkcs7_sign(gnutls_pkcs7_t pkcs7,
}
(void)asn1_write_value(pkcs7->signed_data,
- "signerInfos.?LAST.digestAlgorithm.parameters", NULL,
- 0);
+ "signerInfos.?LAST.digestAlgorithm.parameters",
+ NULL, 0);
ret =
write_signer_id(pkcs7->signed_data, "signerInfos.?LAST", signer,
@@ -2499,7 +2556,7 @@ int gnutls_pkcs7_sign(gnutls_pkcs7_t pkcs7,
}
ret = _gnutls_privkey_update_spki_params(signer_key, pk, dig, 0,
- &params);
+ &params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2507,7 +2564,8 @@ int gnutls_pkcs7_sign(gnutls_pkcs7_t pkcs7,
se = _gnutls_pk_to_sign_entry(params.pk, dig);
if (se == NULL) {
- ret = gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
+ ret =
+ gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
goto cleanup;
}
diff --git a/lib/x509/pkcs7_int.h b/lib/x509/pkcs7_int.h
index 3d57124693..b691ae95a9 100644
--- a/lib/x509/pkcs7_int.h
+++ b/lib/x509/pkcs7_int.h
@@ -22,21 +22,20 @@
*/
#ifndef GNUTLS_LIB_X509_PKCS7_INT_H
-#define GNUTLS_LIB_X509_PKCS7_INT_H
+# define GNUTLS_LIB_X509_PKCS7_INT_H
-#include <gnutls/x509.h>
+# include <gnutls/x509.h>
/* PKCS #7
*/
-#define DATA_OID "1.2.840.113549.1.7.1"
-#define ENC_DATA_OID "1.2.840.113549.1.7.6"
-
-#define SIGNED_DATA_OID "1.2.840.113549.1.7.2"
-#define DIGESTED_DATA_OID "1.2.840.113549.1.7.5"
+# define DATA_OID "1.2.840.113549.1.7.1"
+# define ENC_DATA_OID "1.2.840.113549.1.7.6"
+# define SIGNED_DATA_OID "1.2.840.113549.1.7.2"
+# define DIGESTED_DATA_OID "1.2.840.113549.1.7.5"
typedef enum schema_id {
- PBES2_GENERIC=1, /* when the algorithm is unknown, temporal use when reading only */
+ PBES2_GENERIC = 1, /* when the algorithm is unknown, temporal use when reading only */
PBES2_DES, /* the stuff in PKCS #5 */
PBES2_3DES,
PBES2_AES_128,
@@ -72,55 +71,57 @@ struct pbe_enc_params {
gnutls_cipher_algorithm_t cipher;
uint8_t iv[MAX_CIPHER_BLOCK_SIZE];
int iv_size;
- char pbes2_oid[MAX_OID_SIZE]; /* when reading params, the OID is stored for info purposes */
+ char pbes2_oid[MAX_OID_SIZE]; /* when reading params, the OID is stored for info purposes */
};
int
_gnutls_decrypt_pbes1_des_md5_data(const char *password,
- unsigned password_len,
- const struct pbkdf2_params *kdf_params,
- const struct pbe_enc_params *enc_params,
- const gnutls_datum_t *encrypted_data,
- gnutls_datum_t *decrypted_data);
+ unsigned password_len,
+ const struct pbkdf2_params *kdf_params,
+ const struct pbe_enc_params *enc_params,
+ const gnutls_datum_t * encrypted_data,
+ gnutls_datum_t * decrypted_data);
int _gnutls_check_pkcs_cipher_schema(const char *oid);
int
_gnutls_pkcs_raw_decrypt_data(schema_id schema, asn1_node pkcs8_asn,
- const char *root, const char *password,
- const struct pbkdf2_params *kdf_params,
- const struct pbe_enc_params *enc_params,
- gnutls_datum_t *decrypted_data);
+ const char *root, const char *password,
+ const struct pbkdf2_params *kdf_params,
+ const struct pbe_enc_params *enc_params,
+ gnutls_datum_t * decrypted_data);
int
_gnutls_pkcs_raw_encrypt_data(const gnutls_datum_t * plain,
- const struct pbe_enc_params *enc_params,
- const gnutls_datum_t * key, gnutls_datum_t * encrypted);
+ const struct pbe_enc_params *enc_params,
+ const gnutls_datum_t * key,
+ gnutls_datum_t * encrypted);
int _gnutls_pkcs7_decrypt_data(const gnutls_datum_t * data,
const char *password, gnutls_datum_t * dec);
int _gnutls_read_pbkdf1_params(const uint8_t * data, int data_size,
- struct pbkdf2_params *kdf_params,
- struct pbe_enc_params *enc_params);
+ struct pbkdf2_params *kdf_params,
+ struct pbe_enc_params *enc_params);
int
_gnutls_read_pkcs_schema_params(schema_id * schema, const char *password,
- const uint8_t * data, int data_size,
- struct pbkdf2_params *kdf_params,
- struct pbe_enc_params *enc_params);
+ const uint8_t * data, int data_size,
+ struct pbkdf2_params *kdf_params,
+ struct pbe_enc_params *enc_params);
int
_gnutls_pkcs_write_schema_params(schema_id schema, asn1_node pkcs8_asn,
- const char *where,
- const struct pbkdf2_params *kdf_params,
- const struct pbe_enc_params *enc_params);
+ const char *where,
+ const struct pbkdf2_params *kdf_params,
+ const struct pbe_enc_params *enc_params);
int
_gnutls_pkcs_generate_key(schema_id schema,
- const char *password,
- struct pbkdf2_params *kdf_params,
- struct pbe_enc_params *enc_params, gnutls_datum_t * key);
+ const char *password,
+ struct pbkdf2_params *kdf_params,
+ struct pbe_enc_params *enc_params,
+ gnutls_datum_t * key);
int _gnutls_pkcs_flags_to_schema(unsigned int flags);
int _gnutls_pkcs7_encrypt_data(schema_id schema,
@@ -128,7 +129,8 @@ int _gnutls_pkcs7_encrypt_data(schema_id schema,
const char *password, gnutls_datum_t * enc);
int
-_gnutls_pkcs7_data_enc_info(const gnutls_datum_t * data, const struct pkcs_cipher_schema_st **p,
- struct pbkdf2_params *kdf_params, char **oid);
+_gnutls_pkcs7_data_enc_info(const gnutls_datum_t * data,
+ const struct pkcs_cipher_schema_st **p,
+ struct pbkdf2_params *kdf_params, char **oid);
-#endif /* GNUTLS_LIB_X509_PKCS7_INT_H */
+#endif /* GNUTLS_LIB_X509_PKCS7_INT_H */
diff --git a/lib/x509/privkey.c b/lib/x509/privkey.c
index 54253818d5..19082b74db 100644
--- a/lib/x509/privkey.c
+++ b/lib/x509/privkey.c
@@ -99,8 +99,7 @@ void gnutls_x509_privkey_deinit(gnutls_x509_privkey_t key)
* negative error value.
**/
int
-gnutls_x509_privkey_cpy(gnutls_x509_privkey_t dst,
- gnutls_x509_privkey_t src)
+gnutls_x509_privkey_cpy(gnutls_x509_privkey_t dst, gnutls_x509_privkey_t src)
{
int ret;
@@ -112,9 +111,7 @@ gnutls_x509_privkey_cpy(gnutls_x509_privkey_t dst,
return gnutls_assert_val(ret);
}
- ret =
- _gnutls_asn1_encode_privkey(&dst->key,
- &dst->params);
+ ret = _gnutls_asn1_encode_privkey(&dst->key, &dst->params);
if (ret < 0) {
gnutls_assert();
gnutls_pk_params_release(&dst->params);
@@ -145,15 +142,14 @@ _gnutls_privkey_decode_pkcs1_rsa_key(const gnutls_datum_t * raw_key,
result =
_asn1_strict_der_decode(&pkey_asn, raw_key->data, raw_key->size,
- NULL);
+ NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
goto error;
}
if (_gnutls_x509_read_int(pkey_asn, "modulus",
- &pkey->params.params[0]) < 0)
- {
+ &pkey->params.params[0]) < 0) {
gnutls_assert();
goto error;
}
@@ -213,7 +209,7 @@ _gnutls_privkey_decode_pkcs1_rsa_key(const gnutls_datum_t * raw_key,
return pkey_asn;
- error:
+ error:
asn1_delete_structure2(&pkey_asn, ASN1_DELETE_FLAG_ZEROIZE);
gnutls_pk_params_clear(&pkey->params);
gnutls_pk_params_release(&pkey->params);
@@ -224,8 +220,10 @@ _gnutls_privkey_decode_pkcs1_rsa_key(const gnutls_datum_t * raw_key,
* an internal structure (gnutls_private_key)
*/
int
-_gnutls_privkey_decode_ecc_key(asn1_node* pkey_asn, const gnutls_datum_t * raw_key,
- gnutls_x509_privkey_t pkey, gnutls_ecc_curve_t curve)
+_gnutls_privkey_decode_ecc_key(asn1_node * pkey_asn,
+ const gnutls_datum_t * raw_key,
+ gnutls_x509_privkey_t pkey,
+ gnutls_ecc_curve_t curve)
{
int ret;
unsigned int version;
@@ -249,7 +247,7 @@ _gnutls_privkey_decode_ecc_key(asn1_node* pkey_asn, const gnutls_datum_t * raw_k
ret =
_asn1_strict_der_decode(pkey_asn, raw_key->data, raw_key->size,
- NULL);
+ NULL);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -264,8 +262,7 @@ _gnutls_privkey_decode_ecc_key(asn1_node* pkey_asn, const gnutls_datum_t * raw_k
if (version != 1) {
_gnutls_debug_log
- ("ECC private key version %u is not supported\n",
- version);
+ ("ECC private key version %u is not supported\n", version);
gnutls_assert();
ret = GNUTLS_E_ECC_UNSUPPORTED_CURVE;
goto error;
@@ -276,7 +273,7 @@ _gnutls_privkey_decode_ecc_key(asn1_node* pkey_asn, const gnutls_datum_t * raw_k
oid_size = sizeof(oid);
ret =
asn1_read_value(*pkey_asn, "parameters.namedCurve", oid,
- &oid_size);
+ &oid_size);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
@@ -295,7 +292,6 @@ _gnutls_privkey_decode_ecc_key(asn1_node* pkey_asn, const gnutls_datum_t * raw_k
pkey->params.curve = curve;
}
-
/* read the public key */
ret = _gnutls_x509_read_value(*pkey_asn, "publicKey", &out);
if (ret < 0) {
@@ -318,7 +314,7 @@ _gnutls_privkey_decode_ecc_key(asn1_node* pkey_asn, const gnutls_datum_t * raw_k
/* read the private key */
ret =
_gnutls_x509_read_key_int(*pkey_asn, "privateKey",
- &pkey->params.params[ECC_K]);
+ &pkey->params.params[ECC_K]);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -328,7 +324,7 @@ _gnutls_privkey_decode_ecc_key(asn1_node* pkey_asn, const gnutls_datum_t * raw_k
return 0;
- error:
+ error:
asn1_delete_structure2(pkey_asn, ASN1_DELETE_FLAG_ZEROIZE);
gnutls_pk_params_clear(&pkey->params);
gnutls_pk_params_release(&pkey->params);
@@ -336,13 +332,12 @@ _gnutls_privkey_decode_ecc_key(asn1_node* pkey_asn, const gnutls_datum_t * raw_k
}
-
static asn1_node
decode_dsa_key(const gnutls_datum_t * raw_key, gnutls_x509_privkey_t pkey)
{
int result;
asn1_node dsa_asn;
- gnutls_datum_t seed = {NULL,0};
+ gnutls_datum_t seed = { NULL, 0 };
char oid[MAX_OID_SIZE];
int oid_size;
@@ -355,46 +350,40 @@ decode_dsa_key(const gnutls_datum_t * raw_key, gnutls_x509_privkey_t pkey)
gnutls_pk_params_init(&pkey->params);
-
result =
_asn1_strict_der_decode(&dsa_asn, raw_key->data, raw_key->size,
- NULL);
+ NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
goto error;
}
- if (_gnutls_x509_read_int(dsa_asn, "p",
- &pkey->params.params[0]) < 0) {
+ if (_gnutls_x509_read_int(dsa_asn, "p", &pkey->params.params[0]) < 0) {
gnutls_assert();
goto error;
}
pkey->params.params_nr++;
- if (_gnutls_x509_read_int(dsa_asn, "q",
- &pkey->params.params[1]) < 0) {
+ if (_gnutls_x509_read_int(dsa_asn, "q", &pkey->params.params[1]) < 0) {
gnutls_assert();
goto error;
}
pkey->params.params_nr++;
- if (_gnutls_x509_read_int(dsa_asn, "g",
- &pkey->params.params[2]) < 0) {
+ if (_gnutls_x509_read_int(dsa_asn, "g", &pkey->params.params[2]) < 0) {
gnutls_assert();
goto error;
}
pkey->params.params_nr++;
- if (_gnutls_x509_read_int(dsa_asn, "Y",
- &pkey->params.params[3]) < 0) {
+ if (_gnutls_x509_read_int(dsa_asn, "Y", &pkey->params.params[3]) < 0) {
gnutls_assert();
goto error;
}
pkey->params.params_nr++;
if (_gnutls_x509_read_key_int(dsa_asn, "priv",
- &pkey->params.params[4]) < 0)
- {
+ &pkey->params.params[4]) < 0) {
gnutls_assert();
goto error;
}
@@ -418,7 +407,7 @@ decode_dsa_key(const gnutls_datum_t * raw_key, gnutls_x509_privkey_t pkey)
return dsa_asn;
- error:
+ error:
asn1_delete_structure2(&dsa_asn, ASN1_DELETE_FLAG_ZEROIZE);
gnutls_pk_params_clear(&pkey->params);
gnutls_pk_params_release(&pkey->params);
@@ -426,7 +415,6 @@ decode_dsa_key(const gnutls_datum_t * raw_key, gnutls_x509_privkey_t pkey)
}
-
#define PEM_KEY_DSA "DSA PRIVATE KEY"
#define PEM_KEY_RSA "RSA PRIVATE KEY"
#define PEM_KEY_ECC "EC PRIVATE KEY"
@@ -476,47 +464,81 @@ gnutls_x509_privkey_import(gnutls_x509_privkey_t key,
char *ptr;
uint8_t *begin_ptr;
- ptr = memmem(data->data, data->size, "PRIVATE KEY-----", sizeof("PRIVATE KEY-----")-1);
+ ptr =
+ memmem(data->data, data->size, "PRIVATE KEY-----",
+ sizeof("PRIVATE KEY-----") - 1);
result = GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
if (ptr != NULL) {
- left = data->size - ((ptrdiff_t)ptr - (ptrdiff_t)data->data);
+ left =
+ data->size - ((ptrdiff_t)ptr -
+ (ptrdiff_t)data->data);
if (data->size - left > MAX_PEM_HEADER_SIZE) {
ptr -= MAX_PEM_HEADER_SIZE;
left += MAX_PEM_HEADER_SIZE;
} else {
- ptr = (char*)data->data;
+ ptr = (char *)data->data;
left = data->size;
}
- ptr = memmem(ptr, left, "-----BEGIN ", sizeof("-----BEGIN ")-1);
+ ptr =
+ memmem(ptr, left, "-----BEGIN ",
+ sizeof("-----BEGIN ") - 1);
if (ptr != NULL) {
- begin_ptr = (uint8_t*)ptr;
- left = data->size - ((ptrdiff_t)begin_ptr - (ptrdiff_t)data->data);
+ begin_ptr = (uint8_t *) ptr;
+ left =
+ data->size - ((ptrdiff_t)begin_ptr -
+ (ptrdiff_t)data->data);
- ptr += sizeof("-----BEGIN ")-1;
+ ptr += sizeof("-----BEGIN ") - 1;
- if (left > sizeof(PEM_KEY_RSA) && memcmp(ptr, PEM_KEY_RSA, sizeof(PEM_KEY_RSA)-1) == 0) {
- result = _gnutls_fbase64_decode(PEM_KEY_RSA, begin_ptr, left, &_data);
+ if (left > sizeof(PEM_KEY_RSA)
+ && memcmp(ptr, PEM_KEY_RSA,
+ sizeof(PEM_KEY_RSA) - 1) == 0) {
+ result =
+ _gnutls_fbase64_decode(PEM_KEY_RSA,
+ begin_ptr,
+ left,
+ &_data);
if (result >= 0)
- key->params.algo = GNUTLS_PK_RSA;
- } else if (left > sizeof(PEM_KEY_ECC) && memcmp(ptr, PEM_KEY_ECC, sizeof(PEM_KEY_ECC)-1) == 0) {
- result = _gnutls_fbase64_decode(PEM_KEY_ECC, begin_ptr, left, &_data);
+ key->params.algo =
+ GNUTLS_PK_RSA;
+ } else if (left > sizeof(PEM_KEY_ECC)
+ && memcmp(ptr, PEM_KEY_ECC,
+ sizeof(PEM_KEY_ECC) - 1) ==
+ 0) {
+ result =
+ _gnutls_fbase64_decode(PEM_KEY_ECC,
+ begin_ptr,
+ left,
+ &_data);
if (result >= 0)
key->params.algo = GNUTLS_PK_EC;
- } else if (left > sizeof(PEM_KEY_DSA) && memcmp(ptr, PEM_KEY_DSA, sizeof(PEM_KEY_DSA)-1) == 0) {
- result = _gnutls_fbase64_decode(PEM_KEY_DSA, begin_ptr, left, &_data);
+ } else if (left > sizeof(PEM_KEY_DSA)
+ && memcmp(ptr, PEM_KEY_DSA,
+ sizeof(PEM_KEY_DSA) - 1) ==
+ 0) {
+ result =
+ _gnutls_fbase64_decode(PEM_KEY_DSA,
+ begin_ptr,
+ left,
+ &_data);
if (result >= 0)
- key->params.algo = GNUTLS_PK_DSA;
+ key->params.algo =
+ GNUTLS_PK_DSA;
}
- if (key->params.algo == GNUTLS_PK_UNKNOWN && left >= sizeof(PEM_KEY_PKCS8)) {
- if (memcmp(ptr, PEM_KEY_PKCS8, sizeof(PEM_KEY_PKCS8)-1) == 0) {
+ if (key->params.algo == GNUTLS_PK_UNKNOWN
+ && left >= sizeof(PEM_KEY_PKCS8)) {
+ if (memcmp
+ (ptr, PEM_KEY_PKCS8,
+ sizeof(PEM_KEY_PKCS8) - 1) == 0) {
result =
- _gnutls_fbase64_decode(PEM_KEY_PKCS8,
- begin_ptr, left, &_data);
+ _gnutls_fbase64_decode
+ (PEM_KEY_PKCS8, begin_ptr,
+ left, &_data);
if (result >= 0) {
/* signal for PKCS #8 keys */
key->params.algo = -1;
@@ -540,11 +562,10 @@ gnutls_x509_privkey_import(gnutls_x509_privkey_t key,
}
key->expanded = 1;
- if (key->params.algo == (gnutls_pk_algorithm_t)-1) {
+ if (key->params.algo == (gnutls_pk_algorithm_t) - 1) {
result =
gnutls_x509_privkey_import_pkcs8(key, data, format,
- NULL,
- GNUTLS_PKCS_PLAIN);
+ NULL, GNUTLS_PKCS_PLAIN);
if (result < 0) {
gnutls_assert();
key->key = NULL;
@@ -554,8 +575,7 @@ gnutls_x509_privkey_import(gnutls_x509_privkey_t key,
goto finish;
}
} else if (key->params.algo == GNUTLS_PK_RSA) {
- key->key =
- _gnutls_privkey_decode_pkcs1_rsa_key(&_data, key);
+ key->key = _gnutls_privkey_decode_pkcs1_rsa_key(&_data, key);
if (key->key == NULL)
gnutls_assert();
} else if (key->params.algo == GNUTLS_PK_DSA) {
@@ -563,7 +583,8 @@ gnutls_x509_privkey_import(gnutls_x509_privkey_t key,
if (key->key == NULL)
gnutls_assert();
} else if (key->params.algo == GNUTLS_PK_EC) {
- result = _gnutls_privkey_decode_ecc_key(&key->key, &_data, key, 0);
+ result =
+ _gnutls_privkey_decode_ecc_key(&key->key, &_data, key, 0);
if (result < 0) {
gnutls_assert();
key->key = NULL;
@@ -573,8 +594,7 @@ gnutls_x509_privkey_import(gnutls_x509_privkey_t key,
* succeeds.
*/
key->params.algo = GNUTLS_PK_RSA;
- key->key =
- _gnutls_privkey_decode_pkcs1_rsa_key(&_data, key);
+ key->key = _gnutls_privkey_decode_pkcs1_rsa_key(&_data, key);
if (key->key == NULL) {
key->params.algo = GNUTLS_PK_DSA;
@@ -582,12 +602,14 @@ gnutls_x509_privkey_import(gnutls_x509_privkey_t key,
if (key->key == NULL) {
key->params.algo = GNUTLS_PK_EC;
result =
- _gnutls_privkey_decode_ecc_key(&key->key, &_data, key, 0);
+ _gnutls_privkey_decode_ecc_key(&key->key,
+ &_data, key,
+ 0);
if (result < 0) {
result =
- gnutls_x509_privkey_import_pkcs8(key, data, format,
- NULL,
- GNUTLS_PKCS_PLAIN);
+ gnutls_x509_privkey_import_pkcs8
+ (key, data, format, NULL,
+ GNUTLS_PKCS_PLAIN);
if (result >= 0) {
/* there are keys (ed25519) which leave key->key NULL */
goto finish;
@@ -597,7 +619,8 @@ gnutls_x509_privkey_import(gnutls_x509_privkey_t key,
gnutls_assert();
key->key = NULL;
- if (result == GNUTLS_E_PK_INVALID_PRIVKEY)
+ if (result ==
+ GNUTLS_E_PK_INVALID_PRIVKEY)
goto cleanup;
}
}
@@ -664,7 +687,7 @@ static int import_pkcs12_privkey(gnutls_x509_privkey_t key,
}
ret = 0;
- fail:
+ fail:
gnutls_pkcs12_deinit(p12);
@@ -708,36 +731,49 @@ gnutls_x509_privkey_import2(gnutls_x509_privkey_t key,
size_t left;
char *ptr;
- ptr = memmem(data->data, data->size, "PRIVATE KEY-----", sizeof("PRIVATE KEY-----")-1);
+ ptr =
+ memmem(data->data, data->size, "PRIVATE KEY-----",
+ sizeof("PRIVATE KEY-----") - 1);
if (ptr != NULL) {
- left = data->size - ((ptrdiff_t)ptr - (ptrdiff_t)data->data);
+ left =
+ data->size - ((ptrdiff_t)ptr -
+ (ptrdiff_t)data->data);
if (data->size - left > 15) {
ptr -= 15;
left += 15;
} else {
- ptr = (char*)data->data;
+ ptr = (char *)data->data;
left = data->size;
}
- ptr = memmem(ptr, left, "-----BEGIN ", sizeof("-----BEGIN ")-1);
+ ptr =
+ memmem(ptr, left, "-----BEGIN ",
+ sizeof("-----BEGIN ") - 1);
if (ptr != NULL) {
- ptr += sizeof("-----BEGIN ")-1;
- left = data->size - ((ptrdiff_t)ptr - (ptrdiff_t)data->data);
+ ptr += sizeof("-----BEGIN ") - 1;
+ left =
+ data->size - ((ptrdiff_t)ptr -
+ (ptrdiff_t)data->data);
}
if (ptr != NULL && left > sizeof(PEM_KEY_RSA)) {
- if (memcmp(ptr, PEM_KEY_RSA, sizeof(PEM_KEY_RSA)-1) == 0 ||
- memcmp(ptr, PEM_KEY_ECC, sizeof(PEM_KEY_ECC)-1) == 0 ||
- memcmp(ptr, PEM_KEY_DSA, sizeof(PEM_KEY_DSA)-1) == 0) {
+ if (memcmp
+ (ptr, PEM_KEY_RSA,
+ sizeof(PEM_KEY_RSA) - 1) == 0
+ || memcmp(ptr, PEM_KEY_ECC,
+ sizeof(PEM_KEY_ECC) - 1) == 0
+ || memcmp(ptr, PEM_KEY_DSA,
+ sizeof(PEM_KEY_DSA) - 1) == 0) {
head_enc = 0;
}
}
}
}
- if (head_enc == 0 || (password == NULL && !(flags & GNUTLS_PKCS_NULL_PASSWORD))) {
+ if (head_enc == 0
+ || (password == NULL && !(flags & GNUTLS_PKCS_NULL_PASSWORD))) {
ret = gnutls_x509_privkey_import(key, data, format);
if (ret >= 0)
return ret;
@@ -756,15 +792,17 @@ gnutls_x509_privkey_import2(gnutls_x509_privkey_t key,
if (ret == GNUTLS_E_DECRYPTION_FAILED &&
password == NULL && (!(flags & GNUTLS_PKCS_PLAIN))) {
- /* use the callback if any */
- ret = _gnutls_retrieve_pin(&key->pin, "key:", "", 0, pin, sizeof(pin));
+ /* use the callback if any */
+ ret =
+ _gnutls_retrieve_pin(&key->pin, "key:", "", 0, pin,
+ sizeof(pin));
if (ret == 0) {
password = pin;
}
ret =
gnutls_x509_privkey_import_pkcs8(key, data, format,
- password, flags);
+ password, flags);
}
if (saved_ret == GNUTLS_E_PARSING_ERROR)
@@ -785,13 +823,22 @@ gnutls_x509_privkey_import2(gnutls_x509_privkey_t key,
data,
password);
- if (ret == GNUTLS_E_DECRYPTION_FAILED && password == NULL &&
- (key->pin.cb || _gnutls_pin_func)) {
+ if (ret == GNUTLS_E_DECRYPTION_FAILED
+ && password == NULL && (key->pin.cb
+ ||
+ _gnutls_pin_func)) {
/* use the callback if any */
- memset(pin, 0, GNUTLS_PKCS11_MAX_PIN_LEN);
- ret = _gnutls_retrieve_pin(&key->pin, "key:", "", 0, pin, sizeof(pin));
+ memset(pin, 0,
+ GNUTLS_PKCS11_MAX_PIN_LEN);
+ ret =
+ _gnutls_retrieve_pin(&key->pin,
+ "key:", "", 0,
+ pin,
+ sizeof(pin));
if (ret == 0) {
- ret = gnutls_x509_privkey_import_openssl(key, data, pin);
+ ret =
+ gnutls_x509_privkey_import_openssl
+ (key, data, pin);
}
}
@@ -808,14 +855,13 @@ gnutls_x509_privkey_import2(gnutls_x509_privkey_t key,
ret = 0;
- cleanup:
+ cleanup:
if (ret == GNUTLS_E_PARSING_ERROR)
ret = saved_ret;
return ret;
}
-
/**
* gnutls_x509_privkey_import_rsa_raw:
* @key: The data to store the parsed key
@@ -887,7 +933,8 @@ gnutls_x509_privkey_import_rsa_raw2(gnutls_x509_privkey_t key,
gnutls_pk_params_init(&key->params);
siz = m->size;
- if (_gnutls_mpi_init_scan_nz(&key->params.params[RSA_MODULUS], m->data, siz)) {
+ if (_gnutls_mpi_init_scan_nz
+ (&key->params.params[RSA_MODULUS], m->data, siz)) {
gnutls_assert();
ret = GNUTLS_E_MPI_SCAN_FAILED;
goto cleanup;
@@ -895,7 +942,8 @@ gnutls_x509_privkey_import_rsa_raw2(gnutls_x509_privkey_t key,
key->params.params_nr++;
siz = e->size;
- if (_gnutls_mpi_init_scan_nz(&key->params.params[RSA_PUB], e->data, siz)) {
+ if (_gnutls_mpi_init_scan_nz
+ (&key->params.params[RSA_PUB], e->data, siz)) {
gnutls_assert();
ret = GNUTLS_E_MPI_SCAN_FAILED;
goto cleanup;
@@ -904,7 +952,8 @@ gnutls_x509_privkey_import_rsa_raw2(gnutls_x509_privkey_t key,
if (d) {
siz = d->size;
- if (_gnutls_mpi_init_scan_nz(&key->params.params[RSA_PRIV], d->data, siz)) {
+ if (_gnutls_mpi_init_scan_nz
+ (&key->params.params[RSA_PRIV], d->data, siz)) {
gnutls_assert();
ret = GNUTLS_E_MPI_SCAN_FAILED;
goto cleanup;
@@ -913,7 +962,8 @@ gnutls_x509_privkey_import_rsa_raw2(gnutls_x509_privkey_t key,
}
siz = p->size;
- if (_gnutls_mpi_init_scan_nz(&key->params.params[RSA_PRIME1], p->data, siz)) {
+ if (_gnutls_mpi_init_scan_nz
+ (&key->params.params[RSA_PRIME1], p->data, siz)) {
gnutls_assert();
ret = GNUTLS_E_MPI_SCAN_FAILED;
goto cleanup;
@@ -921,7 +971,8 @@ gnutls_x509_privkey_import_rsa_raw2(gnutls_x509_privkey_t key,
key->params.params_nr++;
siz = q->size;
- if (_gnutls_mpi_init_scan_nz(&key->params.params[RSA_PRIME2], q->data, siz)) {
+ if (_gnutls_mpi_init_scan_nz
+ (&key->params.params[RSA_PRIME2], q->data, siz)) {
gnutls_assert();
ret = GNUTLS_E_MPI_SCAN_FAILED;
goto cleanup;
@@ -930,7 +981,8 @@ gnutls_x509_privkey_import_rsa_raw2(gnutls_x509_privkey_t key,
if (u) {
siz = u->size;
- if (_gnutls_mpi_init_scan_nz(&key->params.params[RSA_COEF], u->data, siz)) {
+ if (_gnutls_mpi_init_scan_nz
+ (&key->params.params[RSA_COEF], u->data, siz)) {
gnutls_assert();
ret = GNUTLS_E_MPI_SCAN_FAILED;
goto cleanup;
@@ -969,9 +1021,7 @@ gnutls_x509_privkey_import_rsa_raw2(gnutls_x509_privkey_t key,
key->params.params_nr = RSA_PRIVATE_PARAMS;
key->params.algo = GNUTLS_PK_RSA;
- ret =
- _gnutls_asn1_encode_privkey(&key->key,
- &key->params);
+ ret = _gnutls_asn1_encode_privkey(&key->key, &key->params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -979,7 +1029,7 @@ gnutls_x509_privkey_import_rsa_raw2(gnutls_x509_privkey_t key,
return 0;
- cleanup:
+ cleanup:
gnutls_pk_params_clear(&key->params);
gnutls_pk_params_release(&key->params);
return ret;
@@ -1043,7 +1093,8 @@ gnutls_x509_privkey_import_dsa_raw(gnutls_x509_privkey_t key,
if (y) {
siz = y->size;
- if (_gnutls_mpi_init_scan_nz(&key->params.params[3], y->data, siz)) {
+ if (_gnutls_mpi_init_scan_nz
+ (&key->params.params[3], y->data, siz)) {
gnutls_assert();
ret = GNUTLS_E_MPI_SCAN_FAILED;
goto cleanup;
@@ -1057,8 +1108,7 @@ gnutls_x509_privkey_import_dsa_raw(gnutls_x509_privkey_t key,
goto cleanup;
}
- ret =
- _gnutls_pk_fixup(GNUTLS_PK_DSA, GNUTLS_IMPORT, &key->params);
+ ret = _gnutls_pk_fixup(GNUTLS_PK_DSA, GNUTLS_IMPORT, &key->params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1067,9 +1117,7 @@ gnutls_x509_privkey_import_dsa_raw(gnutls_x509_privkey_t key,
key->params.algo = GNUTLS_PK_DSA;
key->params.params_nr = DSA_PRIVATE_PARAMS;
- ret =
- _gnutls_asn1_encode_privkey(&key->key,
- &key->params);
+ ret = _gnutls_asn1_encode_privkey(&key->key, &key->params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1077,7 +1125,7 @@ gnutls_x509_privkey_import_dsa_raw(gnutls_x509_privkey_t key,
return 0;
- cleanup:
+ cleanup:
gnutls_pk_params_clear(&key->params);
gnutls_pk_params_release(&key->params);
return ret;
@@ -1146,7 +1194,8 @@ gnutls_x509_privkey_import_ecc_raw(gnutls_x509_privkey_t key,
goto cleanup;
}
- ret = _gnutls_set_datum(&key->params.raw_priv, k->data, k->size);
+ ret =
+ _gnutls_set_datum(&key->params.raw_priv, k->data, k->size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1181,16 +1230,13 @@ gnutls_x509_privkey_import_ecc_raw(gnutls_x509_privkey_t key,
key->params.algo = GNUTLS_PK_EC;
- ret =
- _gnutls_pk_fixup(GNUTLS_PK_EC, GNUTLS_IMPORT, &key->params);
+ ret = _gnutls_pk_fixup(GNUTLS_PK_EC, GNUTLS_IMPORT, &key->params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret =
- _gnutls_asn1_encode_privkey(&key->key,
- &key->params);
+ ret = _gnutls_asn1_encode_privkey(&key->key, &key->params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1198,7 +1244,7 @@ gnutls_x509_privkey_import_ecc_raw(gnutls_x509_privkey_t key,
return 0;
- cleanup:
+ cleanup:
gnutls_pk_params_clear(&key->params);
gnutls_pk_params_release(&key->params);
return ret;
@@ -1278,8 +1324,7 @@ gnutls_x509_privkey_import_gost_raw(gnutls_x509_privkey_t key,
}
key->params.params_nr++;
- ret =
- _gnutls_pk_fixup(key->params.algo, GNUTLS_IMPORT, &key->params);
+ ret = _gnutls_pk_fixup(key->params.algo, GNUTLS_IMPORT, &key->params);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1287,14 +1332,13 @@ gnutls_x509_privkey_import_gost_raw(gnutls_x509_privkey_t key,
return 0;
- cleanup:
+ cleanup:
gnutls_pk_params_clear(&key->params);
gnutls_pk_params_release(&key->params);
return ret;
}
-
/**
* gnutls_x509_privkey_get_pk_algorithm:
* @key: should contain a #gnutls_x509_privkey_t type
@@ -1349,7 +1393,7 @@ gnutls_x509_privkey_get_pk_algorithm2(gnutls_x509_privkey_t key,
void
_gnutls_x509_privkey_get_spki_params(gnutls_x509_privkey_t key,
- gnutls_x509_spki_st *params)
+ gnutls_x509_spki_st * params)
{
memcpy(params, &key->params.spki, sizeof(gnutls_x509_spki_st));
}
@@ -1366,7 +1410,8 @@ _gnutls_x509_privkey_get_spki_params(gnutls_x509_privkey_t key,
* Returns: Zero on success, or a negative error code on error.
**/
int
-gnutls_x509_privkey_get_spki(gnutls_x509_privkey_t key, gnutls_x509_spki_t spki, unsigned int flags)
+gnutls_x509_privkey_get_spki(gnutls_x509_privkey_t key, gnutls_x509_spki_t spki,
+ unsigned int flags)
{
if (key == NULL) {
gnutls_assert();
@@ -1393,7 +1438,8 @@ gnutls_x509_privkey_get_spki(gnutls_x509_privkey_t key, gnutls_x509_spki_t spki,
* Returns: Zero on success, or a negative error code on error.
**/
int
-gnutls_x509_privkey_set_spki(gnutls_x509_privkey_t key, const gnutls_x509_spki_t spki, unsigned int flags)
+gnutls_x509_privkey_set_spki(gnutls_x509_privkey_t key,
+ const gnutls_x509_spki_t spki, unsigned int flags)
{
gnutls_pk_params_st tparams;
int ret;
@@ -1404,15 +1450,15 @@ gnutls_x509_privkey_set_spki(gnutls_x509_privkey_t key, const gnutls_x509_spki_t
}
if (!_gnutls_pk_are_compat(key->params.algo, spki->pk))
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
memcpy(&tparams, &key->params, sizeof(gnutls_pk_params_st));
- memcpy(&tparams.spki, spki, sizeof (gnutls_x509_spki_st));
+ memcpy(&tparams.spki, spki, sizeof(gnutls_x509_spki_st));
ret = _gnutls_x509_check_pubkey_params(&tparams);
if (ret < 0)
return gnutls_assert_val(ret);
- memcpy(&key->params.spki, spki, sizeof (gnutls_x509_spki_st));
+ memcpy(&key->params.spki, spki, sizeof(gnutls_x509_spki_st));
key->params.algo = spki->pk;
@@ -1455,7 +1501,7 @@ static const char *set_msg(gnutls_x509_privkey_t key)
int
gnutls_x509_privkey_export(gnutls_x509_privkey_t key,
gnutls_x509_crt_fmt_t format, void *output_data,
- size_t * output_data_size)
+ size_t *output_data_size)
{
gnutls_datum_t out;
int ret;
@@ -1495,8 +1541,7 @@ gnutls_x509_privkey_export(gnutls_x509_privkey_t key,
**/
int
gnutls_x509_privkey_export2(gnutls_x509_privkey_t key,
- gnutls_x509_crt_fmt_t format,
- gnutls_datum_t * out)
+ gnutls_x509_crt_fmt_t format, gnutls_datum_t * out)
{
const char *msg;
int ret;
@@ -1506,8 +1551,9 @@ gnutls_x509_privkey_export2(gnutls_x509_privkey_t key,
return GNUTLS_E_INVALID_REQUEST;
}
- if (key->key == NULL) { /* can only export in PKCS#8 form */
- return gnutls_x509_privkey_export2_pkcs8(key, format, NULL, 0, out);
+ if (key->key == NULL) { /* can only export in PKCS#8 form */
+ return gnutls_x509_privkey_export2_pkcs8(key, format, NULL, 0,
+ out);
}
msg = set_msg(key);
@@ -1565,10 +1611,9 @@ gnutls_sec_param_t gnutls_x509_privkey_sec_param(gnutls_x509_privkey_t key)
* Since: 3.0
**/
int gnutls_x509_privkey_export_ecc_raw(gnutls_x509_privkey_t key,
- gnutls_ecc_curve_t *curve,
- gnutls_datum_t *x,
- gnutls_datum_t *y,
- gnutls_datum_t *k)
+ gnutls_ecc_curve_t * curve,
+ gnutls_datum_t * x,
+ gnutls_datum_t * y, gnutls_datum_t * k)
{
if (key == NULL) {
gnutls_assert();
@@ -1605,16 +1650,15 @@ int gnutls_x509_privkey_export_gost_raw(gnutls_x509_privkey_t key,
gnutls_digest_algorithm_t * digest,
gnutls_gost_paramset_t * paramset,
gnutls_datum_t * x,
- gnutls_datum_t * y,
- gnutls_datum_t * k)
+ gnutls_datum_t * y, gnutls_datum_t * k)
{
if (key == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
- return _gnutls_params_get_gost_raw(&key->params, curve, digest, paramset,
- x, y, k, 0);
+ return _gnutls_params_get_gost_raw(&key->params, curve, digest,
+ paramset, x, y, k, 0);
}
/**
@@ -1640,7 +1684,8 @@ gnutls_x509_privkey_export_rsa_raw(gnutls_x509_privkey_t key,
gnutls_datum_t * d, gnutls_datum_t * p,
gnutls_datum_t * q, gnutls_datum_t * u)
{
- return _gnutls_params_get_rsa_raw(&key->params, m, e, d, p, q, u, NULL, NULL, 0);
+ return _gnutls_params_get_rsa_raw(&key->params, m, e, d, p, q, u, NULL,
+ NULL, 0);
}
/**
@@ -1669,10 +1714,10 @@ gnutls_x509_privkey_export_rsa_raw2(gnutls_x509_privkey_t key,
gnutls_datum_t * m, gnutls_datum_t * e,
gnutls_datum_t * d, gnutls_datum_t * p,
gnutls_datum_t * q, gnutls_datum_t * u,
- gnutls_datum_t * e1,
- gnutls_datum_t * e2)
+ gnutls_datum_t * e1, gnutls_datum_t * e2)
{
- return _gnutls_params_get_rsa_raw(&key->params, m, e, d, p, q, u, e1, e2, 0);
+ return _gnutls_params_get_rsa_raw(&key->params, m, e, d, p, q, u, e1,
+ e2, 0);
}
/**
@@ -1736,7 +1781,7 @@ gnutls_x509_privkey_generate(gnutls_x509_privkey_t key,
gnutls_pk_algorithm_t algo, unsigned int bits,
unsigned int flags)
{
- return gnutls_x509_privkey_generate2(key, algo, bits, flags, NULL, 0);
+ return gnutls_x509_privkey_generate2(key, algo, bits, flags, NULL, 0);
}
/**
@@ -1782,7 +1827,9 @@ gnutls_x509_privkey_generate(gnutls_x509_privkey_t key,
int
gnutls_x509_privkey_generate2(gnutls_x509_privkey_t key,
gnutls_pk_algorithm_t algo, unsigned int bits,
- unsigned int flags, const gnutls_keygen_data_st *data, unsigned data_size)
+ unsigned int flags,
+ const gnutls_keygen_data_st * data,
+ unsigned data_size)
{
int ret;
unsigned i;
@@ -1795,14 +1842,15 @@ gnutls_x509_privkey_generate2(gnutls_x509_privkey_t key,
gnutls_pk_params_init(&key->params);
- for (i=0;i<data_size;i++) {
- if (data[i].type == GNUTLS_KEYGEN_SEED && data[i].size < sizeof(key->params.seed)) {
+ for (i = 0; i < data_size; i++) {
+ if (data[i].type == GNUTLS_KEYGEN_SEED
+ && data[i].size < sizeof(key->params.seed)) {
key->params.seed_size = data[i].size;
memcpy(key->params.seed, data[i].data, data[i].size);
} else if (data[i].type == GNUTLS_KEYGEN_DIGEST) {
key->params.palgo = data[i].size;
} else if (data[i].type == GNUTLS_KEYGEN_SPKI) {
- tpki = (void*)data[i].data;
+ tpki = (void *)data[i].data;
}
}
@@ -1813,7 +1861,8 @@ gnutls_x509_privkey_generate2(gnutls_x509_privkey_t key,
bits = _gnutls_ecc_bits_to_curve(algo, bits);
if (gnutls_ecc_curve_get_pk(bits) != algo) {
- _gnutls_debug_log("curve is incompatible with public key algorithm\n");
+ _gnutls_debug_log
+ ("curve is incompatible with public key algorithm\n");
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
}
@@ -1831,7 +1880,8 @@ gnutls_x509_privkey_generate2(gnutls_x509_privkey_t key,
if ((algo == GNUTLS_PK_GOST_01 && size != 32) ||
(algo == GNUTLS_PK_GOST_12_256 && size != 32) ||
(algo == GNUTLS_PK_GOST_12_512 && size != 64)) {
- _gnutls_debug_log("curve is incompatible with public key algorithm\n");
+ _gnutls_debug_log
+ ("curve is incompatible with public key algorithm\n");
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
@@ -1855,7 +1905,8 @@ gnutls_x509_privkey_generate2(gnutls_x509_privkey_t key,
const mac_entry_st *me;
key->params.spki.pk = GNUTLS_PK_RSA_PSS;
- key->params.spki.rsa_pss_dig = _gnutls_pk_bits_to_sha_hash(bits);
+ key->params.spki.rsa_pss_dig =
+ _gnutls_pk_bits_to_sha_hash(bits);
me = hash_to_entry(key->params.spki.rsa_pss_dig);
if (unlikely(me == NULL)) {
@@ -1901,7 +1952,7 @@ gnutls_x509_privkey_generate2(gnutls_x509_privkey_t key,
return 0;
- cleanup:
+ cleanup:
key->params.algo = GNUTLS_PK_UNKNOWN;
gnutls_pk_params_clear(&key->params);
gnutls_pk_params_release(&key->params);
@@ -1925,7 +1976,9 @@ gnutls_x509_privkey_generate2(gnutls_x509_privkey_t key,
*
* Since: 3.5.0
**/
-int gnutls_x509_privkey_get_seed(gnutls_x509_privkey_t key, gnutls_digest_algorithm_t *digest, void *seed, size_t *seed_size)
+int gnutls_x509_privkey_get_seed(gnutls_x509_privkey_t key,
+ gnutls_digest_algorithm_t * digest, void *seed,
+ size_t *seed_size)
{
if (key->params.seed_size == 0)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -1946,24 +1999,30 @@ int gnutls_x509_privkey_get_seed(gnutls_x509_privkey_t key, gnutls_digest_algori
*digest = key->params.palgo;
memcpy(seed, key->params.seed, key->params.seed_size);
- *seed_size = key->params.seed_size;
+ *seed_size = key->params.seed_size;
return 0;
}
static
int cmp_rsa_key(gnutls_x509_privkey_t key1, gnutls_x509_privkey_t key2)
{
- gnutls_datum_t m1 = {NULL, 0}, e1 = {NULL, 0}, d1 = {NULL, 0}, p1 = {NULL, 0}, q1 = {NULL, 0};
- gnutls_datum_t m2 = {NULL, 0}, e2 = {NULL, 0}, d2 = {NULL, 0}, p2 = {NULL, 0}, q2 = {NULL, 0};
+ gnutls_datum_t m1 = { NULL, 0 }, e1 = { NULL, 0 }, d1 =
+ { NULL, 0 }, p1 = { NULL, 0 }, q1 = { NULL, 0 };
+ gnutls_datum_t m2 = { NULL, 0 }, e2 = { NULL, 0 }, d2 =
+ { NULL, 0 }, p2 = { NULL, 0 }, q2 = { NULL, 0 };
int ret;
- ret = gnutls_x509_privkey_export_rsa_raw(key1, &m1, &e1, &d1, &p1, &q1, NULL);
+ ret =
+ gnutls_x509_privkey_export_rsa_raw(key1, &m1, &e1, &d1, &p1, &q1,
+ NULL);
if (ret < 0) {
gnutls_assert();
return ret;
}
- ret = gnutls_x509_privkey_export_rsa_raw(key2, &m2, &e2, &d2, &p2, &q2, NULL);
+ ret =
+ gnutls_x509_privkey_export_rsa_raw(key2, &m2, &e2, &d2, &p2, &q2,
+ NULL);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2017,17 +2076,19 @@ int cmp_rsa_key(gnutls_x509_privkey_t key1, gnutls_x509_privkey_t key2)
static
int cmp_dsa_key(gnutls_x509_privkey_t key1, gnutls_x509_privkey_t key2)
{
- gnutls_datum_t p1 = {NULL, 0}, q1 = {NULL, 0}, g1 = {NULL, 0};
- gnutls_datum_t p2 = {NULL, 0}, q2 = {NULL, 0}, g2 = {NULL, 0};
+ gnutls_datum_t p1 = { NULL, 0 }, q1 = { NULL, 0 }, g1 = { NULL, 0 };
+ gnutls_datum_t p2 = { NULL, 0 }, q2 = { NULL, 0 }, g2 = { NULL, 0 };
int ret;
- ret = gnutls_x509_privkey_export_dsa_raw(key1, &p1, &q1, &g1, NULL, NULL);
+ ret =
+ gnutls_x509_privkey_export_dsa_raw(key1, &p1, &q1, &g1, NULL, NULL);
if (ret < 0) {
gnutls_assert();
return ret;
}
- ret = gnutls_x509_privkey_export_dsa_raw(key2, &p2, &q2, &g2, NULL, NULL);
+ ret =
+ gnutls_x509_privkey_export_dsa_raw(key2, &p2, &q2, &g2, NULL, NULL);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2078,7 +2139,9 @@ int cmp_dsa_key(gnutls_x509_privkey_t key1, gnutls_x509_privkey_t key2)
*
* Since: 3.5.0
**/
-int gnutls_x509_privkey_verify_seed(gnutls_x509_privkey_t key, gnutls_digest_algorithm_t digest, const void *seed, size_t seed_size)
+int gnutls_x509_privkey_verify_seed(gnutls_x509_privkey_t key,
+ gnutls_digest_algorithm_t digest,
+ const void *seed, size_t seed_size)
{
int ret;
gnutls_x509_privkey_t okey;
@@ -2090,7 +2153,8 @@ int gnutls_x509_privkey_verify_seed(gnutls_x509_privkey_t key, gnutls_digest_alg
return GNUTLS_E_INVALID_REQUEST;
}
- if (key->params.algo != GNUTLS_PK_RSA && key->params.algo != GNUTLS_PK_DSA)
+ if (key->params.algo != GNUTLS_PK_RSA
+ && key->params.algo != GNUTLS_PK_DSA)
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
ret = gnutls_x509_privkey_get_pk_algorithm2(key, &bits);
@@ -2110,11 +2174,12 @@ int gnutls_x509_privkey_verify_seed(gnutls_x509_privkey_t key, gnutls_digest_alg
return gnutls_assert_val(GNUTLS_E_PK_NO_VALIDATION_PARAMS);
data.type = GNUTLS_KEYGEN_SEED;
- data.data = (void*)seed;
+ data.data = (void *)seed;
data.size = seed_size;
ret = gnutls_x509_privkey_generate2(okey, key->params.algo, bits,
- GNUTLS_PRIVKEY_FLAG_PROVABLE, &data, 1);
+ GNUTLS_PRIVKEY_FLAG_PROVABLE, &data,
+ 1);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2125,7 +2190,7 @@ int gnutls_x509_privkey_verify_seed(gnutls_x509_privkey_t key, gnutls_digest_alg
else
ret = cmp_dsa_key(key, okey);
- cleanup:
+ cleanup:
gnutls_x509_privkey_deinit(okey);
return ret;
@@ -2177,7 +2242,7 @@ int
gnutls_x509_privkey_get_key_id(gnutls_x509_privkey_t key,
unsigned int flags,
unsigned char *output_data,
- size_t * output_data_size)
+ size_t *output_data_size)
{
int ret;
@@ -2196,7 +2261,6 @@ gnutls_x509_privkey_get_key_id(gnutls_x509_privkey_t key,
return ret;
}
-
/**
* gnutls_x509_privkey_sign_hash:
* @key: a key
@@ -2229,8 +2293,9 @@ gnutls_x509_privkey_sign_hash(gnutls_x509_privkey_t key,
return GNUTLS_E_INVALID_REQUEST;
}
- if (key->params.algo != GNUTLS_PK_RSA && key->params.algo != GNUTLS_PK_ECDSA &&
- key->params.algo != GNUTLS_PK_DSA) {
+ if (key->params.algo != GNUTLS_PK_RSA
+ && key->params.algo != GNUTLS_PK_ECDSA
+ && key->params.algo != GNUTLS_PK_DSA) {
/* too primitive API - use only with legacy types */
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
@@ -2278,10 +2343,10 @@ gnutls_x509_privkey_sign_data(gnutls_x509_privkey_t key,
gnutls_digest_algorithm_t digest,
unsigned int flags,
const gnutls_datum_t * data,
- void *signature, size_t * signature_size)
+ void *signature, size_t *signature_size)
{
gnutls_privkey_t privkey;
- gnutls_datum_t sig = {NULL, 0};
+ gnutls_datum_t sig = { NULL, 0 };
int ret;
ret = gnutls_privkey_init(&privkey);
@@ -2309,7 +2374,7 @@ gnutls_x509_privkey_sign_data(gnutls_x509_privkey_t key,
*signature_size = sig.size;
memcpy(signature, sig.data, sig.size);
-cleanup:
+ cleanup:
_gnutls_free_datum(&sig);
gnutls_privkey_deinit(privkey);
return ret;
@@ -2337,9 +2402,7 @@ int gnutls_x509_privkey_fix(gnutls_x509_privkey_t key)
if (key->key) {
asn1_delete_structure2(&key->key, ASN1_DELETE_FLAG_ZEROIZE);
- ret =
- _gnutls_asn1_encode_privkey(&key->key,
- &key->params);
+ ret = _gnutls_asn1_encode_privkey(&key->key, &key->params);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -2365,8 +2428,8 @@ int gnutls_x509_privkey_fix(gnutls_x509_privkey_t key)
*
**/
void gnutls_x509_privkey_set_pin_function(gnutls_x509_privkey_t privkey,
- gnutls_pin_callback_t fn,
- void *userdata)
+ gnutls_pin_callback_t fn,
+ void *userdata)
{
privkey->pin.cb = fn;
privkey->pin.data = userdata;
@@ -2389,4 +2452,3 @@ void gnutls_x509_privkey_set_flags(gnutls_x509_privkey_t key,
{
key->flags |= flags;
}
-
diff --git a/lib/x509/privkey_openssl.c b/lib/x509/privkey_openssl.c
index 4ac1ad2672..a9206e7d70 100644
--- a/lib/x509/privkey_openssl.c
+++ b/lib/x509/privkey_openssl.c
@@ -45,11 +45,14 @@ openssl_hash_password(const char *_password, gnutls_datum_t * key,
if (_password != NULL) {
gnutls_datum_t pout;
- ret = _gnutls_utf8_password_normalize(_password, strlen(_password), &pout, 1);
+ ret =
+ _gnutls_utf8_password_normalize(_password,
+ strlen(_password), &pout,
+ 1);
if (ret < 0)
return gnutls_assert_val(ret);
- password = (char*)pout.data;
+ password = (char *)pout.data;
}
while (count < key->size) {
@@ -62,7 +65,7 @@ openssl_hash_password(const char *_password, gnutls_datum_t * key,
if (count) {
ret = _gnutls_hash(&hd, md5, sizeof(md5));
if (ret < 0) {
- hash_err:
+ hash_err:
_gnutls_hash_deinit(&hd, NULL);
gnutls_assert();
goto cleanup;
@@ -105,13 +108,13 @@ struct pem_cipher {
};
static const struct pem_cipher pem_ciphers[] = {
- {"DES-CBC", GNUTLS_CIPHER_DES_CBC},
- {"DES-EDE3-CBC", GNUTLS_CIPHER_3DES_CBC},
- {"AES-128-CBC", GNUTLS_CIPHER_AES_128_CBC},
- {"AES-192-CBC", GNUTLS_CIPHER_AES_192_CBC},
- {"AES-256-CBC", GNUTLS_CIPHER_AES_256_CBC},
- {"CAMELLIA-128-CBC", GNUTLS_CIPHER_CAMELLIA_128_CBC},
- {"CAMELLIA-192-CBC", GNUTLS_CIPHER_CAMELLIA_192_CBC},
+ {"DES-CBC", GNUTLS_CIPHER_DES_CBC},
+ {"DES-EDE3-CBC", GNUTLS_CIPHER_3DES_CBC},
+ {"AES-128-CBC", GNUTLS_CIPHER_AES_128_CBC},
+ {"AES-192-CBC", GNUTLS_CIPHER_AES_192_CBC},
+ {"AES-256-CBC", GNUTLS_CIPHER_AES_256_CBC},
+ {"CAMELLIA-128-CBC", GNUTLS_CIPHER_CAMELLIA_128_CBC},
+ {"CAMELLIA-192-CBC", GNUTLS_CIPHER_CAMELLIA_192_CBC},
{"CAMELLIA-256-CBC", GNUTLS_CIPHER_CAMELLIA_256_CBC},
};
@@ -145,8 +148,8 @@ gnutls_x509_privkey_import_openssl(gnutls_x509_privkey_t key,
gnutls_datum_t salt, enc_key, hex_data;
unsigned char *key_data;
size_t key_data_size;
- const char *pem_header = (void *) data->data;
- const char *pem_header_start = (void *) data->data;
+ const char *pem_header = (void *)data->data;
+ const char *pem_header_start = (void *)data->data;
ssize_t pem_header_size;
int ret;
unsigned int i, iv_size, l;
@@ -154,14 +157,13 @@ gnutls_x509_privkey_import_openssl(gnutls_x509_privkey_t key,
pem_header_size = data->size;
- pem_header =
- memmem(pem_header, pem_header_size, "PRIVATE KEY---", 14);
+ pem_header = memmem(pem_header, pem_header_size, "PRIVATE KEY---", 14);
if (pem_header == NULL) {
gnutls_assert();
return GNUTLS_E_PARSING_ERROR;
}
- pem_header_size -= (ptrdiff_t) (pem_header - pem_header_start);
+ pem_header_size -= (ptrdiff_t)(pem_header - pem_header_start);
pem_header = memmem(pem_header, pem_header_size, "DEK-Info: ", 10);
if (pem_header == NULL) {
@@ -170,7 +172,7 @@ gnutls_x509_privkey_import_openssl(gnutls_x509_privkey_t key,
}
pem_header_size =
- data->size - (ptrdiff_t) (pem_header - pem_header_start) - 10;
+ data->size - (ptrdiff_t)(pem_header - pem_header_start) - 10;
pem_header += 10;
for (i = 0; i < sizeof(pem_ciphers) / sizeof(pem_ciphers[0]); i++) {
@@ -185,8 +187,7 @@ gnutls_x509_privkey_import_openssl(gnutls_x509_privkey_t key,
if (cipher == GNUTLS_CIPHER_UNKNOWN) {
_gnutls_debug_log
- ("Unsupported PEM encryption type: %.10s\n",
- pem_header);
+ ("Unsupported PEM encryption type: %.10s\n", pem_header);
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
@@ -221,7 +222,7 @@ gnutls_x509_privkey_import_openssl(gnutls_x509_privkey_t key,
pem_header++;
ret =
- _gnutls_base64_decode((const void *) pem_header,
+ _gnutls_base64_decode((const void *)pem_header,
pem_header_size, &b64_data);
if (ret < 0) {
gnutls_assert();
@@ -265,8 +266,7 @@ gnutls_x509_privkey_import_openssl(gnutls_x509_privkey_t key,
goto out;
}
- ret =
- gnutls_cipher_decrypt(handle, key_data, key_data_size);
+ ret = gnutls_cipher_decrypt(handle, key_data, key_data_size);
gnutls_cipher_deinit(handle);
if (ret < 0) {
@@ -301,7 +301,8 @@ gnutls_x509_privkey_import_openssl(gnutls_x509_privkey_t key,
keylen += ofs;
/* If there appears to be more or less padding than required, fail */
- if (key_data_size - keylen > blocksize || key_data_size < keylen+1) {
+ if (key_data_size - keylen > blocksize
+ || key_data_size < keylen + 1) {
gnutls_assert();
goto fail;
}
@@ -309,8 +310,7 @@ gnutls_x509_privkey_import_openssl(gnutls_x509_privkey_t key,
/* If the padding bytes aren't all equal to the amount of padding, fail */
ofs = keylen;
while (ofs < key_data_size) {
- if (key_data[ofs] !=
- key_data_size - keylen) {
+ if (key_data[ofs] != key_data_size - keylen) {
gnutls_assert();
goto fail;
}
@@ -325,18 +325,18 @@ gnutls_x509_privkey_import_openssl(gnutls_x509_privkey_t key,
if (ret == 0)
goto out;
}
- fail:
+ fail:
ret = GNUTLS_E_DECRYPTION_FAILED;
goto out;
}
- out:
+ out:
zeroize_key(key_data, key_data_size);
gnutls_free(key_data);
- out_enc_key:
+ out_enc_key:
_gnutls_free_key_datum(&enc_key);
- out_b64:
+ out_b64:
gnutls_free(b64_data.data);
- out_salt:
+ out_salt:
gnutls_free(salt.data);
return ret;
}
diff --git a/lib/x509/privkey_pkcs8.c b/lib/x509/privkey_pkcs8.c
index c22ece9456..5ee1961c1e 100644
--- a/lib/x509/privkey_pkcs8.c
+++ b/lib/x509/privkey_pkcs8.c
@@ -44,8 +44,7 @@ static int _decode_pkcs8_ecc_key(asn1_node pkcs8_asn,
static
int pkcs8_key_info(const gnutls_datum_t * raw_key,
const struct pkcs_cipher_schema_st **p,
- struct pbkdf2_params *kdf_params,
- char **oid);
+ struct pbkdf2_params *kdf_params, char **oid);
static int decode_private_key_info(const gnutls_datum_t * der,
gnutls_x509_privkey_t pkey);
@@ -74,7 +73,8 @@ _encode_privkey(gnutls_x509_privkey_t pkey, gnutls_datum_t * raw)
/* we encode as octet string (which is going to be stored inside
* another octet string). No comments. */
ret = _gnutls_x509_encode_string(ASN1_ETYPE_OCTET_STRING,
- pkey->params.raw_priv.data, pkey->params.raw_priv.size,
+ pkey->params.raw_priv.data,
+ pkey->params.raw_priv.size,
raw);
if (ret < 0)
gnutls_assert();
@@ -84,14 +84,16 @@ _encode_privkey(gnutls_x509_privkey_t pkey, gnutls_datum_t * raw)
case GNUTLS_PK_GOST_12_256:
case GNUTLS_PK_GOST_12_512:
if ((ret = asn1_create_element
- (_gnutls_get_gnutls_asn(), "GNUTLS.GOSTPrivateKey", &spk))
- != ASN1_SUCCESS) {
+ (_gnutls_get_gnutls_asn(), "GNUTLS.GOSTPrivateKey", &spk))
+ != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
goto error;
}
- ret = _gnutls_x509_write_key_int_le(spk, "", pkey->params.params[GOST_K]);
+ ret =
+ _gnutls_x509_write_key_int_le(spk, "",
+ pkey->params.params[GOST_K]);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -121,16 +123,14 @@ _encode_privkey(gnutls_x509_privkey_t pkey, gnutls_datum_t * raw)
case GNUTLS_PK_DSA:
/* DSAPublicKey == INTEGER */
if ((ret = asn1_create_element
- (_gnutls_get_gnutls_asn(), "GNUTLS.DSAPublicKey",
- &spk))
+ (_gnutls_get_gnutls_asn(), "GNUTLS.DSAPublicKey", &spk))
!= ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(ret);
}
ret =
- _gnutls_x509_write_int(spk, "", pkey->params.params[4],
- 1);
+ _gnutls_x509_write_int(spk, "", pkey->params.params[4], 1);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -151,7 +151,7 @@ _encode_privkey(gnutls_x509_privkey_t pkey, gnutls_datum_t * raw)
return 0;
- error:
+ error:
asn1_delete_structure2(&spk, ASN1_DELETE_FLAG_ZEROIZE);
asn1_delete_structure(&spk);
return ret;
@@ -179,8 +179,7 @@ encode_to_private_key_info(gnutls_x509_privkey_t pkey,
return GNUTLS_E_UNIMPLEMENTED_FEATURE;
}
- result =
- _gnutls_x509_write_pubkey_params(&pkey->params, &algo_params);
+ result = _gnutls_x509_write_pubkey_params(&pkey->params, &algo_params);
if (result < 0) {
gnutls_assert();
return result;
@@ -227,7 +226,6 @@ encode_to_private_key_info(gnutls_x509_privkey_t pkey,
goto error;
}
-
/* Write the raw private key
*/
result = _encode_privkey(pkey, &algo_privkey);
@@ -247,7 +245,8 @@ encode_to_private_key_info(gnutls_x509_privkey_t pkey,
goto error;
}
- if ((pkey->params.pkflags & GNUTLS_PK_FLAG_PROVABLE) && pkey->params.seed_size > 0) {
+ if ((pkey->params.pkflags & GNUTLS_PK_FLAG_PROVABLE)
+ && pkey->params.seed_size > 0) {
gnutls_datum_t seed_info;
/* rfc8479 attribute encoding */
@@ -257,7 +256,9 @@ encode_to_private_key_info(gnutls_x509_privkey_t pkey,
goto error;
}
- result = _x509_set_attribute(*pkey_info, "attributes", OID_ATTR_PROV_SEED, &seed_info);
+ result =
+ _x509_set_attribute(*pkey_info, "attributes",
+ OID_ATTR_PROV_SEED, &seed_info);
gnutls_free(seed_info.data);
if (result < 0) {
gnutls_assert();
@@ -302,7 +303,7 @@ encode_to_private_key_info(gnutls_x509_privkey_t pkey,
return 0;
- error:
+ error:
asn1_delete_structure2(pkey_info, ASN1_DELETE_FLAG_ZEROIZE);
_gnutls_free_datum(&algo_params);
_gnutls_free_key_datum(&algo_privkey);
@@ -354,7 +355,8 @@ encode_to_pkcs8_key(schema_id schema, const gnutls_datum_t * der_key,
*/
result =
- _gnutls_pkcs_generate_key(schema, password, &kdf_params, &enc_params, &key);
+ _gnutls_pkcs_generate_key(schema, password, &kdf_params,
+ &enc_params, &key);
if (result < 0) {
gnutls_assert();
goto error;
@@ -362,8 +364,8 @@ encode_to_pkcs8_key(schema_id schema, const gnutls_datum_t * der_key,
result =
_gnutls_pkcs_write_schema_params(schema, pkcs8_asn,
- "encryptionAlgorithm.parameters",
- &kdf_params, &enc_params);
+ "encryptionAlgorithm.parameters",
+ &kdf_params, &enc_params);
if (result < 0) {
gnutls_assert();
goto error;
@@ -372,7 +374,8 @@ encode_to_pkcs8_key(schema_id schema, const gnutls_datum_t * der_key,
/* Parameters have been encoded. Now
* encrypt the Data.
*/
- result = _gnutls_pkcs_raw_encrypt_data(der_key, &enc_params, &key, &tmp);
+ result =
+ _gnutls_pkcs_raw_encrypt_data(der_key, &enc_params, &key, &tmp);
if (result < 0) {
gnutls_assert();
goto error;
@@ -381,8 +384,7 @@ encode_to_pkcs8_key(schema_id schema, const gnutls_datum_t * der_key,
/* write the encrypted data.
*/
result =
- asn1_write_value(pkcs8_asn, "encryptedData", tmp.data,
- tmp.size);
+ asn1_write_value(pkcs8_asn, "encryptedData", tmp.data, tmp.size);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -396,14 +398,13 @@ encode_to_pkcs8_key(schema_id schema, const gnutls_datum_t * der_key,
return 0;
- error:
+ error:
_gnutls_free_key_datum(&key);
_gnutls_free_datum(&tmp);
asn1_delete_structure2(&pkcs8_asn, ASN1_DELETE_FLAG_ZEROIZE);
return result;
}
-
/**
* gnutls_x509_privkey_export_pkcs8:
* @key: Holds the key
@@ -438,12 +439,11 @@ gnutls_x509_privkey_export_pkcs8(gnutls_x509_privkey_t key,
gnutls_x509_crt_fmt_t format,
const char *password,
unsigned int flags,
- void *output_data,
- size_t * output_data_size)
+ void *output_data, size_t *output_data_size)
{
asn1_node pkcs8_asn = NULL, pkey_info;
int ret;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
schema_id schema;
if (key == NULL) {
@@ -475,9 +475,7 @@ gnutls_x509_privkey_export_pkcs8(gnutls_x509_privkey_t key,
} else {
asn1_delete_structure2(&pkey_info, ASN1_DELETE_FLAG_ZEROIZE); /* we don't need it */
- ret =
- encode_to_pkcs8_key(schema, &tmp, password,
- &pkcs8_asn);
+ ret = encode_to_pkcs8_key(schema, &tmp, password, &pkcs8_asn);
_gnutls_free_key_datum(&tmp);
if (ret < 0) {
@@ -523,8 +521,7 @@ int
gnutls_pkcs8_info(const gnutls_datum_t * data, gnutls_x509_crt_fmt_t format,
unsigned int *schema, unsigned int *cipher,
void *salt, unsigned int *salt_size,
- unsigned int *iter_count,
- char **oid)
+ unsigned int *iter_count, char **oid)
{
int ret = 0, need_free = 0;
gnutls_datum_t _data;
@@ -549,7 +546,7 @@ gnutls_pkcs8_info(const gnutls_datum_t * data, gnutls_x509_crt_fmt_t format,
data->data, data->size, &_data);
if (ret < 0) { /* Try the encrypted header
- */
+ */
ret =
_gnutls_fbase64_decode(PEM_PKCS8, data->data,
data->size, &_data);
@@ -644,7 +641,7 @@ gnutls_x509_privkey_export2_pkcs8(gnutls_x509_privkey_t key,
{
asn1_node pkcs8_asn = NULL, pkey_info;
int ret;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
schema_id schema;
if (key == NULL) {
@@ -675,9 +672,7 @@ gnutls_x509_privkey_export2_pkcs8(gnutls_x509_privkey_t key,
} else {
asn1_delete_structure2(&pkey_info, ASN1_DELETE_FLAG_ZEROIZE); /* we don't need it */
- ret =
- encode_to_pkcs8_key(schema, &tmp, password,
- &pkcs8_asn);
+ ret = encode_to_pkcs8_key(schema, &tmp, password, &pkcs8_asn);
_gnutls_free_key_datum(&tmp);
if (ret < 0) {
@@ -686,8 +681,7 @@ gnutls_x509_privkey_export2_pkcs8(gnutls_x509_privkey_t key,
}
ret =
- _gnutls_x509_export_int2(pkcs8_asn, format, PEM_PKCS8,
- out);
+ _gnutls_x509_export_int2(pkcs8_asn, format, PEM_PKCS8, out);
asn1_delete_structure2(&pkcs8_asn, ASN1_DELETE_FLAG_ZEROIZE);
}
@@ -695,8 +689,6 @@ gnutls_x509_privkey_export2_pkcs8(gnutls_x509_privkey_t key,
return ret;
}
-
-
/* We've gotten this far. In the real world it's almost certain
* that we're dealing with a good file, but wrong password.
* Sadly like 90% of random data is somehow valid DER for the
@@ -722,7 +714,7 @@ static int pkcs8_key_decrypt(const gnutls_datum_t * raw_key,
{
int result, len;
char enc_oid[MAX_OID_SIZE];
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
int params_start, params_end, params_len;
struct pbkdf2_params kdf_params;
struct pbe_enc_params enc_params;
@@ -762,8 +754,9 @@ static int pkcs8_key_decrypt(const gnutls_datum_t * raw_key,
result =
_gnutls_read_pkcs_schema_params(&schema, password,
- &raw_key->data[params_start],
- params_len, &kdf_params, &enc_params);
+ &raw_key->data[params_start],
+ params_len, &kdf_params,
+ &enc_params);
if (result < 0) {
gnutls_assert();
@@ -774,8 +767,9 @@ static int pkcs8_key_decrypt(const gnutls_datum_t * raw_key,
* decrypt the EncryptedData.
*/
result =
- _gnutls_pkcs_raw_decrypt_data(schema, pkcs8_asn, "encryptedData", password,
- &kdf_params, &enc_params, &tmp);
+ _gnutls_pkcs_raw_decrypt_data(schema, pkcs8_asn, "encryptedData",
+ password, &kdf_params, &enc_params,
+ &tmp);
if (result < 0) {
gnutls_assert();
result = GNUTLS_E_DECRYPTION_FAILED;
@@ -793,11 +787,11 @@ static int pkcs8_key_decrypt(const gnutls_datum_t * raw_key,
return 0;
- error:
+ error:
return result;
}
-static int check_for_decrypted(const gnutls_datum_t *der)
+static int check_for_decrypted(const gnutls_datum_t * der)
{
int result;
asn1_node pkcs8_asn = NULL;
@@ -810,7 +804,8 @@ static int check_for_decrypted(const gnutls_datum_t *der)
return _gnutls_asn2err(result);
}
- result = _asn1_strict_der_decode(&pkcs8_asn, der->data, der->size, NULL);
+ result =
+ _asn1_strict_der_decode(&pkcs8_asn, der->data, der->size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -827,11 +822,10 @@ static int check_for_decrypted(const gnutls_datum_t *der)
static
int pkcs8_key_info(const gnutls_datum_t * raw_key,
const struct pkcs_cipher_schema_st **p,
- struct pbkdf2_params *kdf_params,
- char **oid)
+ struct pbkdf2_params *kdf_params, char **oid)
{
int result, len;
- char enc_oid[MAX_OID_SIZE*2];
+ char enc_oid[MAX_OID_SIZE * 2];
int params_start, params_end, params_len;
struct pbe_enc_params enc_params;
schema_id schema;
@@ -854,7 +848,7 @@ int pkcs8_key_info(const gnutls_datum_t * raw_key,
result =
_asn1_strict_der_decode(&pkcs8_asn, raw_key->data, raw_key->size,
- NULL);
+ NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -899,13 +893,15 @@ int pkcs8_key_info(const gnutls_datum_t * raw_key,
result =
_gnutls_read_pkcs_schema_params(&schema, NULL,
- &raw_key->data[params_start],
- params_len, kdf_params, &enc_params);
+ &raw_key->data[params_start],
+ params_len, kdf_params,
+ &enc_params);
if (result < 0) {
gnutls_assert();
if (oid && enc_params.pbes2_oid[0] != 0) {
- snprintf(enc_oid, sizeof(enc_oid), "%s/%s", *oid, enc_params.pbes2_oid);
+ snprintf(enc_oid, sizeof(enc_oid), "%s/%s", *oid,
+ enc_params.pbes2_oid);
gnutls_free(*oid);
*oid = gnutls_strdup(enc_oid);
}
@@ -921,7 +917,7 @@ int pkcs8_key_info(const gnutls_datum_t * raw_key,
result = 0;
- error:
+ error:
asn1_delete_structure2(&pkcs8_asn, ASN1_DELETE_FLAG_ZEROIZE);
return result;
}
@@ -949,7 +945,7 @@ pkcs8_key_decode(const gnutls_datum_t * raw_key,
result =
_asn1_strict_der_decode(&pkcs8_asn, raw_key->data, raw_key->size,
- NULL);
+ NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -957,12 +953,11 @@ pkcs8_key_decode(const gnutls_datum_t * raw_key,
}
if (decrypt)
- result =
- pkcs8_key_decrypt(raw_key, pkcs8_asn, password, pkey);
+ result = pkcs8_key_decrypt(raw_key, pkcs8_asn, password, pkey);
else
result = 0;
- error:
+ error:
asn1_delete_structure2(&pkcs8_asn, ASN1_DELETE_FLAG_ZEROIZE);
return result;
@@ -974,7 +969,7 @@ static int
_decode_pkcs8_rsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
{
int ret;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
ret = _gnutls_x509_read_value(pkcs8_asn, "privateKey", &tmp);
if (ret < 0) {
@@ -993,7 +988,7 @@ _decode_pkcs8_rsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
ret = 0;
- error:
+ error:
return ret;
}
@@ -1003,7 +998,7 @@ static int
_decode_pkcs8_rsa_pss_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
{
int ret;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
gnutls_x509_spki_st params;
memset(&params, 0, sizeof(params));
@@ -1011,7 +1006,8 @@ _decode_pkcs8_rsa_pss_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
ret = _gnutls_x509_read_value(pkcs8_asn,
"privateKeyAlgorithm.parameters", &tmp);
if (ret < 0) {
- if (ret == GNUTLS_E_ASN1_VALUE_NOT_FOUND || ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND)
+ if (ret == GNUTLS_E_ASN1_VALUE_NOT_FOUND
+ || ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND)
goto skip_params;
gnutls_assert();
@@ -1038,7 +1034,7 @@ _decode_pkcs8_rsa_pss_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
ret = 0;
- error:
+ error:
return ret;
}
@@ -1048,7 +1044,7 @@ static int
_decode_pkcs8_ecc_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
{
int ret;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
unsigned char oid[MAX_OID_SIZE];
unsigned curve = GNUTLS_ECC_CURVE_INVALID;
int len, result;
@@ -1063,7 +1059,8 @@ _decode_pkcs8_ecc_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
if (result == ASN1_SUCCESS) {
ret = _gnutls_x509_read_ecc_params(oid, len, &curve);
if (ret < 0) {
- _gnutls_debug_log("PKCS#8: unknown curve OID %s\n", oid);
+ _gnutls_debug_log("PKCS#8: unknown curve OID %s\n",
+ oid);
curve = GNUTLS_ECC_CURVE_INVALID;
}
}
@@ -1084,12 +1081,13 @@ _decode_pkcs8_ecc_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
ret = 0;
- error:
+ error:
return ret;
}
static int
-_decode_pkcs8_eddsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey, const char *oid)
+_decode_pkcs8_eddsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey,
+ const char *oid)
{
int ret;
gnutls_datum_t tmp;
@@ -1106,7 +1104,9 @@ _decode_pkcs8_eddsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey, const c
ce = _gnutls_ecc_curve_get_params(curve);
if (_curve_is_eddsa(ce)) {
- ret = _gnutls_x509_read_string(pkcs8_asn, "privateKey", &tmp, ASN1_ETYPE_OCTET_STRING, 1);
+ ret =
+ _gnutls_x509_read_string(pkcs8_asn, "privateKey", &tmp,
+ ASN1_ETYPE_OCTET_STRING, 1);
if (ret < 0) {
gnutls_assert();
return gnutls_assert_val(ret);
@@ -1139,7 +1139,8 @@ _decode_pkcs8_eddsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey, const c
}
static int
-_decode_pkcs8_modern_ecdh_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey, const char *oid)
+_decode_pkcs8_modern_ecdh_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey,
+ const char *oid)
{
int ret;
gnutls_datum_t tmp;
@@ -1156,7 +1157,9 @@ _decode_pkcs8_modern_ecdh_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey, c
ce = _gnutls_ecc_curve_get_params(curve);
if (_curve_is_modern_ecdh(ce)) {
- ret = _gnutls_x509_read_string(pkcs8_asn, "privateKey", &tmp, ASN1_ETYPE_OCTET_STRING, 1);
+ ret =
+ _gnutls_x509_read_string(pkcs8_asn, "privateKey", &tmp,
+ ASN1_ETYPE_OCTET_STRING, 1);
if (ret < 0) {
gnutls_assert();
return gnutls_assert_val(ret);
@@ -1210,7 +1213,7 @@ _privkey_decode_gost_key(const gnutls_datum_t * raw_key,
* each part is of ecc_size bytes. Key will be unmasked in pk_fixup */
if (raw_key->size % ecc_size == 0) {
ret = _gnutls_mpi_init_scan_le(&pkey->params.params[GOST_K],
- raw_key->data, raw_key->size);
+ raw_key->data, raw_key->size);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -1228,12 +1231,13 @@ _privkey_decode_gost_key(const gnutls_datum_t * raw_key,
}
ret = _asn1_strict_der_decode(&pkey_asn,
- raw_key->data, raw_key->size,
- NULL);
+ raw_key->data, raw_key->size,
+ NULL);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
- asn1_delete_structure2(&pkey_asn, ASN1_DELETE_FLAG_ZEROIZE);
+ asn1_delete_structure2(&pkey_asn,
+ ASN1_DELETE_FLAG_ZEROIZE);
goto error;
}
@@ -1241,7 +1245,8 @@ _privkey_decode_gost_key(const gnutls_datum_t * raw_key,
&pkey->params.params[GOST_K]);
if (ret < 0) {
gnutls_assert();
- asn1_delete_structure2(&pkey_asn, ASN1_DELETE_FLAG_ZEROIZE);
+ asn1_delete_structure2(&pkey_asn,
+ ASN1_DELETE_FLAG_ZEROIZE);
goto error;
}
asn1_delete_structure2(&pkey_asn, ASN1_DELETE_FLAG_ZEROIZE);
@@ -1258,20 +1263,23 @@ _privkey_decode_gost_key(const gnutls_datum_t * raw_key,
}
ret = _asn1_strict_der_decode(&pkey_asn,
- raw_key->data, raw_key->size,
- NULL);
+ raw_key->data, raw_key->size,
+ NULL);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(ret);
- asn1_delete_structure2(&pkey_asn, ASN1_DELETE_FLAG_ZEROIZE);
+ asn1_delete_structure2(&pkey_asn,
+ ASN1_DELETE_FLAG_ZEROIZE);
goto error;
}
ret = _gnutls_x509_read_key_int_le(pkey_asn, "",
- &pkey->params.params[GOST_K]);
+ &pkey->
+ params.params[GOST_K]);
if (ret < 0) {
gnutls_assert();
- asn1_delete_structure2(&pkey_asn, ASN1_DELETE_FLAG_ZEROIZE);
+ asn1_delete_structure2(&pkey_asn,
+ ASN1_DELETE_FLAG_ZEROIZE);
goto error;
}
asn1_delete_structure2(&pkey_asn, ASN1_DELETE_FLAG_ZEROIZE);
@@ -1285,7 +1293,7 @@ _privkey_decode_gost_key(const gnutls_datum_t * raw_key,
return 0;
- error:
+ error:
return ret;
}
@@ -1298,7 +1306,7 @@ _decode_pkcs8_gost_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey,
{
int ret;
gnutls_datum_t tmp;
- unsigned char oid[3 * MAX_OID_SIZE]; /* GOST parameters can have 3 OIDs at most */
+ unsigned char oid[3 * MAX_OID_SIZE]; /* GOST parameters can have 3 OIDs at most */
int len, result;
gnutls_pk_params_init(&pkey->params);
@@ -1311,7 +1319,9 @@ _decode_pkcs8_gost_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey,
ret = GNUTLS_E_PARSING_ERROR;
goto error;
} else {
- ret = _gnutls_x509_read_gost_params(oid, len, &pkey->params, algo);
+ ret =
+ _gnutls_x509_read_gost_params(oid, len, &pkey->params,
+ algo);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -1354,7 +1364,7 @@ _decode_pkcs8_gost_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey,
return 0;
-error:
+ error:
gnutls_pk_params_clear(&pkey->params);
gnutls_pk_params_release(&pkey->params);
@@ -1367,7 +1377,7 @@ static int
_decode_pkcs8_dsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
{
int ret;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
gnutls_pk_params_init(&pkey->params);
@@ -1389,8 +1399,7 @@ _decode_pkcs8_dsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
ret =
_gnutls_x509_read_value(pkcs8_asn,
- "privateKeyAlgorithm.parameters",
- &tmp);
+ "privateKeyAlgorithm.parameters", &tmp);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -1419,7 +1428,7 @@ _decode_pkcs8_dsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
}
ret = _gnutls_mpi_powm(pkey->params.params[3], pkey->params.params[2],
- pkey->params.params[4], pkey->params.params[0]);
+ pkey->params.params[4], pkey->params.params[0]);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -1428,9 +1437,7 @@ _decode_pkcs8_dsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
pkey->params.algo = GNUTLS_PK_DSA;
pkey->params.params_nr = DSA_PRIVATE_PARAMS;
- ret =
- _gnutls_asn1_encode_privkey(&pkey->key,
- &pkey->params);
+ ret = _gnutls_asn1_encode_privkey(&pkey->key, &pkey->params);
if (ret < 0) {
gnutls_assert();
goto error;
@@ -1444,10 +1451,8 @@ _decode_pkcs8_dsa_key(asn1_node pkcs8_asn, gnutls_x509_privkey_t pkey)
return ret;
}
-
static int
-decode_private_key_info(const gnutls_datum_t * der,
- gnutls_x509_privkey_t pkey)
+decode_private_key_info(const gnutls_datum_t * der, gnutls_x509_privkey_t pkey)
{
int result, len;
char oid[MAX_OID_SIZE];
@@ -1464,7 +1469,8 @@ decode_private_key_info(const gnutls_datum_t * der,
goto error;
}
- result = _asn1_strict_der_decode(&pkcs8_asn, der->data, der->size, NULL);
+ result =
+ _asn1_strict_der_decode(&pkcs8_asn, der->data, der->size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
result = _gnutls_asn2err(result);
@@ -1487,8 +1493,7 @@ decode_private_key_info(const gnutls_datum_t * der,
if (pkey->params.algo == GNUTLS_PK_UNKNOWN) {
gnutls_assert();
_gnutls_debug_log
- ("PKCS #8 private key OID '%s' is unsupported.\n",
- oid);
+ ("PKCS #8 private key OID '%s' is unsupported.\n", oid);
result = GNUTLS_E_UNKNOWN_PK_ALGORITHM;
goto error;
}
@@ -1496,36 +1501,36 @@ decode_private_key_info(const gnutls_datum_t * der,
/* Get the DER encoding of the actual private key.
*/
- switch(pkey->params.algo) {
- case GNUTLS_PK_RSA:
- result = _decode_pkcs8_rsa_key(pkcs8_asn, pkey);
- break;
- case GNUTLS_PK_RSA_PSS:
- result = _decode_pkcs8_rsa_pss_key(pkcs8_asn, pkey);
- break;
- case GNUTLS_PK_DSA:
- result = _decode_pkcs8_dsa_key(pkcs8_asn, pkey);
- break;
- case GNUTLS_PK_ECDSA:
- result = _decode_pkcs8_ecc_key(pkcs8_asn, pkey);
- break;
- case GNUTLS_PK_EDDSA_ED25519:
- case GNUTLS_PK_EDDSA_ED448:
- result = _decode_pkcs8_eddsa_key(pkcs8_asn, pkey, oid);
- break;
- case GNUTLS_PK_ECDH_X25519:
- case GNUTLS_PK_ECDH_X448:
- result = _decode_pkcs8_modern_ecdh_key(pkcs8_asn, pkey, oid);
- break;
- case GNUTLS_PK_GOST_01:
- case GNUTLS_PK_GOST_12_256:
- case GNUTLS_PK_GOST_12_512:
- result = _decode_pkcs8_gost_key(pkcs8_asn,
- pkey, pkey->params.algo);
- break;
- default:
- result = gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
- goto error;
+ switch (pkey->params.algo) {
+ case GNUTLS_PK_RSA:
+ result = _decode_pkcs8_rsa_key(pkcs8_asn, pkey);
+ break;
+ case GNUTLS_PK_RSA_PSS:
+ result = _decode_pkcs8_rsa_pss_key(pkcs8_asn, pkey);
+ break;
+ case GNUTLS_PK_DSA:
+ result = _decode_pkcs8_dsa_key(pkcs8_asn, pkey);
+ break;
+ case GNUTLS_PK_ECDSA:
+ result = _decode_pkcs8_ecc_key(pkcs8_asn, pkey);
+ break;
+ case GNUTLS_PK_EDDSA_ED25519:
+ case GNUTLS_PK_EDDSA_ED448:
+ result = _decode_pkcs8_eddsa_key(pkcs8_asn, pkey, oid);
+ break;
+ case GNUTLS_PK_ECDH_X25519:
+ case GNUTLS_PK_ECDH_X448:
+ result = _decode_pkcs8_modern_ecdh_key(pkcs8_asn, pkey, oid);
+ break;
+ case GNUTLS_PK_GOST_01:
+ case GNUTLS_PK_GOST_12_256:
+ case GNUTLS_PK_GOST_12_512:
+ result = _decode_pkcs8_gost_key(pkcs8_asn,
+ pkey, pkey->params.algo);
+ break;
+ default:
+ result = gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
+ goto error;
}
if (result < 0) {
@@ -1534,8 +1539,10 @@ decode_private_key_info(const gnutls_datum_t * der,
}
/* check for provable parameters attribute */
- ret = _x509_parse_attribute(pkcs8_asn, "attributes", OID_ATTR_PROV_SEED, 0, 1, &sder);
- if (ret >= 0) { /* ignore it when not being present */
+ ret =
+ _x509_parse_attribute(pkcs8_asn, "attributes", OID_ATTR_PROV_SEED,
+ 0, 1, &sder);
+ if (ret >= 0) { /* ignore it when not being present */
ret = _x509_decode_provable_seed(pkey, &sder);
gnutls_free(sder.data);
if (ret < 0) {
@@ -1545,7 +1552,7 @@ decode_private_key_info(const gnutls_datum_t * der,
result = 0;
-error:
+ error:
asn1_delete_structure2(&pkcs8_asn, ASN1_DELETE_FLAG_ZEROIZE);
return result;
@@ -1672,4 +1679,3 @@ gnutls_x509_privkey_import_pkcs8(gnutls_x509_privkey_t key,
}
return result;
}
-
diff --git a/lib/x509/privkey_pkcs8_pbes1.c b/lib/x509/privkey_pkcs8_pbes1.c
index 983530e46a..c08df189aa 100644
--- a/lib/x509/privkey_pkcs8_pbes1.c
+++ b/lib/x509/privkey_pkcs8_pbes1.c
@@ -38,8 +38,8 @@
*/
int _gnutls_read_pbkdf1_params(const uint8_t * data, int data_size,
- struct pbkdf2_params *kdf_params,
- struct pbe_enc_params *enc_params)
+ struct pbkdf2_params *kdf_params,
+ struct pbe_enc_params *enc_params)
{
asn1_node pasn = NULL;
int len;
@@ -49,17 +49,16 @@ int _gnutls_read_pbkdf1_params(const uint8_t * data, int data_size,
memset(enc_params, 0, sizeof(*enc_params));
if ((result =
- asn1_create_element(_gnutls_get_pkix(),
- "PKIX1.pkcs-5-PBE-params",
- &pasn)) != ASN1_SUCCESS) {
+ asn1_create_element(_gnutls_get_pkix(),
+ "PKIX1.pkcs-5-PBE-params",
+ &pasn)) != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
/* Decode the parameters.
*/
- result =
- _asn1_strict_der_decode(&pasn, data, data_size, NULL);
+ result = _asn1_strict_der_decode(&pasn, data, data_size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(result);
@@ -68,21 +67,20 @@ int _gnutls_read_pbkdf1_params(const uint8_t * data, int data_size,
ret =
_gnutls_x509_read_uint(pasn, "iterationCount",
- &kdf_params->iter_count);
+ &kdf_params->iter_count);
if (ret < 0) {
gnutls_assert();
goto error;
}
- if (kdf_params->iter_count >= MAX_ITER_COUNT || kdf_params->iter_count == 0) {
+ if (kdf_params->iter_count >= MAX_ITER_COUNT
+ || kdf_params->iter_count == 0) {
ret = gnutls_assert_val(GNUTLS_E_ILLEGAL_PARAMETER);
goto error;
}
len = sizeof(kdf_params->salt);
- result =
- asn1_read_value(pasn, "salt",
- kdf_params->salt, &len);
+ result = asn1_read_value(pasn, "salt", kdf_params->salt, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(result);
@@ -105,7 +103,8 @@ int _gnutls_read_pbkdf1_params(const uint8_t * data, int data_size,
}
static void pbkdf1_md5(const char *password, unsigned password_len,
- const uint8_t salt[8], unsigned iter_count, unsigned key_size, uint8_t *key)
+ const uint8_t salt[8], unsigned iter_count,
+ unsigned key_size, uint8_t * key)
{
struct md5_ctx ctx;
uint8_t tmp[16];
@@ -114,10 +113,10 @@ static void pbkdf1_md5(const char *password, unsigned password_len,
if (key_size > sizeof(tmp))
abort();
- for (i=0;i<iter_count;i++) {
+ for (i = 0; i < iter_count; i++) {
md5_init(&ctx);
- if (i==0) {
- md5_update(&ctx, password_len, (uint8_t*)password);
+ if (i == 0) {
+ md5_update(&ctx, password_len, (uint8_t *) password);
md5_update(&ctx, 8, salt);
md5_digest(&ctx, 16, tmp);
} else {
@@ -132,11 +131,11 @@ static void pbkdf1_md5(const char *password, unsigned password_len,
int
_gnutls_decrypt_pbes1_des_md5_data(const char *password,
- unsigned password_len,
- const struct pbkdf2_params *kdf_params,
- const struct pbe_enc_params *enc_params,
- const gnutls_datum_t *encrypted_data,
- gnutls_datum_t *decrypted_data)
+ unsigned password_len,
+ const struct pbkdf2_params *kdf_params,
+ const struct pbe_enc_params *enc_params,
+ const gnutls_datum_t * encrypted_data,
+ gnutls_datum_t * decrypted_data)
{
int result;
gnutls_datum_t dkey, d_iv;
@@ -152,7 +151,8 @@ _gnutls_decrypt_pbes1_des_md5_data(const char *password,
/* generate the key
*/
- pbkdf1_md5(password, password_len, kdf_params->salt, kdf_params->iter_count, sizeof(key), key);
+ pbkdf1_md5(password, password_len, kdf_params->salt,
+ kdf_params->iter_count, sizeof(key), key);
dkey.data = key;
dkey.size = 8;
@@ -165,20 +165,25 @@ _gnutls_decrypt_pbes1_des_md5_data(const char *password,
}
_gnutls_switch_fips_state(GNUTLS_FIPS140_OP_NOT_APPROVED);
- result = gnutls_cipher_decrypt(ch, encrypted_data->data, encrypted_data->size);
+ result =
+ gnutls_cipher_decrypt(ch, encrypted_data->data,
+ encrypted_data->size);
if (result < 0) {
gnutls_assert();
goto error;
}
- if ((int)encrypted_data->size - encrypted_data->data[encrypted_data->size - 1] < 0) {
+ if ((int)encrypted_data->size -
+ encrypted_data->data[encrypted_data->size - 1] < 0) {
gnutls_assert();
result = GNUTLS_E_ILLEGAL_PARAMETER;
goto error;
}
decrypted_data->data = encrypted_data->data;
- decrypted_data->size = encrypted_data->size - encrypted_data->data[encrypted_data->size - 1];
+ decrypted_data->size =
+ encrypted_data->size - encrypted_data->data[encrypted_data->size -
+ 1];
result = 0;
error:
@@ -186,4 +191,3 @@ _gnutls_decrypt_pbes1_des_md5_data(const char *password,
return result;
}
-
diff --git a/lib/x509/prov-seed.c b/lib/x509/prov-seed.c
index d0119b4342..0e2543d87f 100644
--- a/lib/x509/prov-seed.c
+++ b/lib/x509/prov-seed.c
@@ -33,7 +33,7 @@
/* This function encodes a seed value and a hash algorithm OID to the format
* described in RFC8479. The output is the DER encoded form.
*/
-int _x509_encode_provable_seed(gnutls_x509_privkey_t pkey, gnutls_datum_t *der)
+int _x509_encode_provable_seed(gnutls_x509_privkey_t pkey, gnutls_datum_t * der)
{
asn1_node c2;
@@ -46,13 +46,14 @@ int _x509_encode_provable_seed(gnutls_x509_privkey_t pkey, gnutls_datum_t *der)
if ((result =
asn1_create_element(_gnutls_get_gnutls_asn(),
- "GNUTLS.ProvableSeed",
- &c2)) != ASN1_SUCCESS) {
+ "GNUTLS.ProvableSeed", &c2)) != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
- result = asn1_write_value(c2, "seed", pkey->params.seed, pkey->params.seed_size);
+ result =
+ asn1_write_value(c2, "seed", pkey->params.seed,
+ pkey->params.seed_size);
if (result != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(result);
@@ -82,19 +83,19 @@ int _x509_encode_provable_seed(gnutls_x509_privkey_t pkey, gnutls_datum_t *der)
/* This function decodes a DER encoded form of seed and a hash algorithm, as in
* RFC8479.
*/
-int _x509_decode_provable_seed(gnutls_x509_privkey_t pkey, const gnutls_datum_t *der)
+int _x509_decode_provable_seed(gnutls_x509_privkey_t pkey,
+ const gnutls_datum_t * der)
{
asn1_node c2;
int ret, result;
char oid[MAX_OID_SIZE];
int oid_size;
- gnutls_datum_t seed = {NULL, 0};
+ gnutls_datum_t seed = { NULL, 0 };
if ((result =
asn1_create_element(_gnutls_get_gnutls_asn(),
- "GNUTLS.ProvableSeed",
- &c2)) != ASN1_SUCCESS) {
+ "GNUTLS.ProvableSeed", &c2)) != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
@@ -116,8 +117,10 @@ int _x509_decode_provable_seed(gnutls_x509_privkey_t pkey, const gnutls_datum_t
memcpy(pkey->params.seed, seed.data, seed.size);
pkey->params.seed_size = seed.size;
} else {
- ret = 0; /* ignore struct */
- _gnutls_debug_log("%s: ignoring ProvableSeed due to very long params\n", __func__);
+ ret = 0; /* ignore struct */
+ _gnutls_debug_log
+ ("%s: ignoring ProvableSeed due to very long params\n",
+ __func__);
goto cleanup;
}
diff --git a/lib/x509/prov-seed.h b/lib/x509/prov-seed.h
index a7753ccb50..a314a86e89 100644
--- a/lib/x509/prov-seed.h
+++ b/lib/x509/prov-seed.h
@@ -21,9 +21,11 @@
*/
#ifndef GNUTLS_LIB_X509_PROV_SEED_H
-#define GNUTLS_LIB_X509_PROV_SEED_H
+# define GNUTLS_LIB_X509_PROV_SEED_H
-int _x509_encode_provable_seed(gnutls_x509_privkey_t pkey, gnutls_datum_t *der);
-int _x509_decode_provable_seed(gnutls_x509_privkey_t pkey, const gnutls_datum_t *der);
+int _x509_encode_provable_seed(gnutls_x509_privkey_t pkey,
+ gnutls_datum_t * der);
+int _x509_decode_provable_seed(gnutls_x509_privkey_t pkey,
+ const gnutls_datum_t * der);
-#endif /* GNUTLS_LIB_X509_PROV_SEED_H */
+#endif /* GNUTLS_LIB_X509_PROV_SEED_H */
diff --git a/lib/x509/sign.c b/lib/x509/sign.c
index 303e9f2f91..8cb99b9ec1 100644
--- a/lib/x509/sign.c
+++ b/lib/x509/sign.c
@@ -43,16 +43,15 @@
* of the TBS and sign it on the fly.
*/
int
-_gnutls_x509_get_tbs(asn1_node cert, const char *tbs_name,
- gnutls_datum_t * tbs)
+_gnutls_x509_get_tbs(asn1_node cert, const char *tbs_name, gnutls_datum_t * tbs)
{
return _gnutls_x509_der_encode(cert, tbs_name, tbs, 0);
}
int
_gnutls_x509_crt_get_spki_params(gnutls_x509_crt_t crt,
- const gnutls_x509_spki_st *key_params,
- gnutls_x509_spki_st *params)
+ const gnutls_x509_spki_st * key_params,
+ gnutls_x509_spki_st * params)
{
int result;
gnutls_x509_spki_st crt_params;
@@ -74,7 +73,8 @@ _gnutls_x509_crt_get_spki_params(gnutls_x509_crt_t crt,
gnutls_assert();
return GNUTLS_E_CERTIFICATE_ERROR;
}
- } else if (key_params->pk != GNUTLS_PK_RSA && key_params->pk != GNUTLS_PK_UNKNOWN) {
+ } else if (key_params->pk != GNUTLS_PK_RSA
+ && key_params->pk != GNUTLS_PK_UNKNOWN) {
gnutls_assert();
return GNUTLS_E_CERTIFICATE_ERROR;
}
@@ -102,8 +102,7 @@ int
_gnutls_x509_pkix_sign(asn1_node src, const char *src_name,
gnutls_digest_algorithm_t dig,
unsigned int flags,
- gnutls_x509_crt_t issuer,
- gnutls_privkey_t issuer_key)
+ gnutls_x509_crt_t issuer, gnutls_privkey_t issuer_key)
{
int result;
gnutls_datum_t signature;
@@ -130,7 +129,7 @@ _gnutls_x509_pkix_sign(asn1_node src, const char *src_name,
}
result = _gnutls_privkey_update_spki_params(issuer_key, pk, dig, flags,
- &params);
+ &params);
if (result < 0) {
gnutls_assert();
return result;
@@ -142,8 +141,7 @@ _gnutls_x509_pkix_sign(asn1_node src, const char *src_name,
_gnutls_str_cat(name, sizeof(name), ".issuer");
result =
- asn1_copy_node(src, name, issuer->cert,
- "tbsCertificate.subject");
+ asn1_copy_node(src, name, issuer->cert, "tbsCertificate.subject");
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -156,7 +154,8 @@ _gnutls_x509_pkix_sign(asn1_node src, const char *src_name,
se = _gnutls_pk_to_sign_entry(params.pk, dig);
if (se == NULL)
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
+ return
+ gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
_gnutls_debug_log("signing structure using %s\n", se->name);
@@ -178,7 +177,9 @@ _gnutls_x509_pkix_sign(asn1_node src, const char *src_name,
FIX_SIGN_PARAMS(params, flags, dig);
if (_gnutls_pk_is_not_prehashed(params.pk)) {
- result = privkey_sign_raw_data(issuer_key, se, &tbs, &signature, &params);
+ result =
+ privkey_sign_raw_data(issuer_key, se, &tbs, &signature,
+ &params);
} else {
result = privkey_sign_and_hash_data(issuer_key, se,
&tbs, &signature, &params);
diff --git a/lib/x509/spki.c b/lib/x509/spki.c
index 454f8cf3c5..885a5c8bc4 100644
--- a/lib/x509/spki.c
+++ b/lib/x509/spki.c
@@ -40,16 +40,14 @@
* Since: 3.6.0
*
**/
-int
-gnutls_x509_spki_init(gnutls_x509_spki_t *spki)
+int gnutls_x509_spki_init(gnutls_x509_spki_t * spki)
{
gnutls_x509_spki_t tmp;
*spki = NULL;
FAIL_IF_LIB_ERROR;
- tmp =
- gnutls_calloc(1, sizeof(gnutls_x509_spki_st));
+ tmp = gnutls_calloc(1, sizeof(gnutls_x509_spki_st));
if (!tmp)
return GNUTLS_E_MEMORY_ERROR;
@@ -68,8 +66,7 @@ gnutls_x509_spki_init(gnutls_x509_spki_t *spki)
* Since: 3.6.0
*
**/
-void
-gnutls_x509_spki_deinit(gnutls_x509_spki_t spki)
+void gnutls_x509_spki_deinit(gnutls_x509_spki_t spki)
{
gnutls_free(spki);
}
@@ -113,7 +110,7 @@ gnutls_x509_spki_set_rsa_pss_params(gnutls_x509_spki_t spki,
**/
int
gnutls_x509_spki_get_rsa_pss_params(gnutls_x509_spki_t spki,
- gnutls_digest_algorithm_t *dig,
+ gnutls_digest_algorithm_t * dig,
unsigned int *salt_size)
{
if (spki->pk == 0)
diff --git a/lib/x509/time.c b/lib/x509/time.c
index 272660069b..63db6d60a1 100644
--- a/lib/x509/time.c
+++ b/lib/x509/time.c
@@ -89,7 +89,8 @@ static time_t mktime_utc(const struct fake_tm *tm)
return (time_t) - 1;
/* Check for "obvious" mistakes in dates */
- if (tm->tm_sec > 60 || tm->tm_min > 59 || tm->tm_mday > 31 || tm->tm_mday < 1 || tm->tm_hour > 23)
+ if (tm->tm_sec > 60 || tm->tm_min > 59 || tm->tm_mday > 31
+ || tm->tm_mday < 1 || tm->tm_hour > 23)
return (time_t) - 1;
/* Convert to a time_t.
@@ -106,7 +107,6 @@ static time_t mktime_utc(const struct fake_tm *tm)
return result;
}
-
/* this one will parse dates of the form:
* month|day|hour|minute|sec* (2 chars each)
* and year is given. Returns a time_t date.
@@ -167,7 +167,6 @@ static time_t time2gtime(const char *ttime, int year)
return mktime_utc(&etime);
}
-
/* returns a time_t value that contains the given time.
* The given time is expressed as:
* YEAR(2)|MONTH(2)|DAY(2)|HOUR(2)|MIN(2)|SEC(2)*
@@ -184,13 +183,12 @@ time_t _gnutls_utcTime2gtime(const char *ttime)
gnutls_assert();
return (time_t) - 1;
}
-
#ifdef STRICT_DER_TIME
/* Make sure everything else is digits. */
for (i = 0; i < len - 1; i++) {
if (c_isdigit(ttime[i]))
continue;
- return gnutls_assert_val((time_t)-1);
+ return gnutls_assert_val((time_t) - 1);
}
#endif
xx[2] = 0;
@@ -249,16 +247,17 @@ time_t _gnutls_x509_generalTime2gtime(const char *ttime)
#pragma GCC diagnostic ignored "-Wformat-y2k"
/* tag will contain ASN1_TAG_UTCTime or ASN1_TAG_GENERALIZEDTime */
static int
-gtime_to_suitable_time(time_t gtime, char *str_time, size_t str_time_size, unsigned *tag)
+gtime_to_suitable_time(time_t gtime, char *str_time, size_t str_time_size,
+ unsigned *tag)
{
size_t ret;
struct tm _tm;
- if (gtime == (time_t)-1
+ if (gtime == (time_t) - 1
#if SIZEOF_LONG == 8
- || gtime >= 253402210800
+ || gtime >= 253402210800
#endif
- ) {
+ ) {
if (tag)
*tag = ASN1_TAG_GENERALIZEDTime;
snprintf(str_time, str_time_size, "99991231235959Z");
@@ -287,6 +286,7 @@ gtime_to_suitable_time(time_t gtime, char *str_time, size_t str_time_size, unsig
return 0;
}
+
#pragma GCC diagnostic pop
static int
@@ -295,11 +295,11 @@ gtime_to_generalTime(time_t gtime, char *str_time, size_t str_time_size)
size_t ret;
struct tm _tm;
- if (gtime == (time_t)-1
+ if (gtime == (time_t) - 1
#if SIZEOF_LONG == 8
- || gtime >= 253402210800
+ || gtime >= 253402210800
#endif
- ) {
+ ) {
snprintf(str_time, str_time_size, "99991231235959Z");
return 0;
}
@@ -318,7 +318,6 @@ gtime_to_generalTime(time_t gtime, char *str_time, size_t str_time_size)
return 0;
}
-
/* Extracts the time in time_t from the asn1_node given. When should
* be something like "tbsCertList.thisUpdate".
*/
@@ -353,8 +352,7 @@ time_t _gnutls_x509_get_time(asn1_node c2, const char *where, int force_general)
len = sizeof(ttime) - 1;
result = asn1_read_value(c2, name, ttime, &len);
if (result == ASN1_SUCCESS)
- c_time =
- _gnutls_x509_generalTime2gtime(ttime);
+ c_time = _gnutls_x509_generalTime2gtime(ttime);
} else { /* UTCTIME */
if (name[0] == 0)
_gnutls_str_cpy(name, sizeof(name), "utcTime");
@@ -391,8 +389,7 @@ _gnutls_x509_set_time(asn1_node c2, const char *where, time_t tim,
unsigned tag;
if (force_general != 0) {
- result =
- gtime_to_generalTime(tim, str_time, sizeof(str_time));
+ result = gtime_to_generalTime(tim, str_time, sizeof(str_time));
if (result < 0)
return gnutls_assert_val(result);
len = strlen(str_time);
@@ -417,7 +414,8 @@ _gnutls_x509_set_time(asn1_node c2, const char *where, time_t tim,
}
_gnutls_str_cat(name, sizeof(name), ".utcTime");
} else {
- if ((result = asn1_write_value(c2, where, "generalTime", 1)) < 0) {
+ if ((result =
+ asn1_write_value(c2, where, "generalTime", 1)) < 0) {
gnutls_assert();
return _gnutls_asn2err(result);
}
@@ -437,32 +435,29 @@ _gnutls_x509_set_time(asn1_node c2, const char *where, time_t tim,
/* This will set a DER encoded Time element. To be used in fields
* which are of the ANY.
*/
-int
-_gnutls_x509_set_raw_time(asn1_node c2, const char *where, time_t tim)
+int _gnutls_x509_set_raw_time(asn1_node c2, const char *where, time_t tim)
{
char str_time[MAX_TIME];
uint8_t buf[128];
int result, len, der_len;
unsigned tag;
- result =
- gtime_to_suitable_time(tim, str_time, sizeof(str_time), &tag);
+ result = gtime_to_suitable_time(tim, str_time, sizeof(str_time), &tag);
if (result < 0)
return gnutls_assert_val(result);
len = strlen(str_time);
buf[0] = tag;
- asn1_length_der(len, buf+1, &der_len);
+ asn1_length_der(len, buf + 1, &der_len);
- if ((unsigned)len > sizeof(buf)-der_len-1) {
+ if ((unsigned)len > sizeof(buf) - der_len - 1) {
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
- memcpy(buf+1+der_len, str_time, len);
+ memcpy(buf + 1 + der_len, str_time, len);
- result = asn1_write_value(c2, where, buf, len+1+der_len);
+ result = asn1_write_value(c2, where, buf, len + 1 + der_len);
if (result != ASN1_SUCCESS)
return gnutls_assert_val(_gnutls_asn2err(result));
return 0;
}
-
diff --git a/lib/x509/tls_features.c b/lib/x509/tls_features.c
index bbb9896f99..c269fe3926 100644
--- a/lib/x509/tls_features.c
+++ b/lib/x509/tls_features.c
@@ -45,7 +45,7 @@
*
* Since: 3.5.1
**/
-int gnutls_x509_tlsfeatures_init(gnutls_x509_tlsfeatures_t *f)
+int gnutls_x509_tlsfeatures_init(gnutls_x509_tlsfeatures_t * f)
{
*f = gnutls_calloc(1, sizeof(struct gnutls_x509_tlsfeatures_st));
if (*f == NULL)
@@ -81,7 +81,8 @@ void gnutls_x509_tlsfeatures_deinit(gnutls_x509_tlsfeatures_t f)
*
* Since: 3.5.1
**/
-int gnutls_x509_tlsfeatures_get(gnutls_x509_tlsfeatures_t f, unsigned idx, unsigned int *feature)
+int gnutls_x509_tlsfeatures_get(gnutls_x509_tlsfeatures_t f, unsigned idx,
+ unsigned int *feature)
{
if (f == NULL) {
gnutls_assert();
@@ -123,8 +124,7 @@ int gnutls_x509_tlsfeatures_get(gnutls_x509_tlsfeatures_t f, unsigned idx, unsig
**/
int gnutls_x509_crt_get_tlsfeatures(gnutls_x509_crt_t crt,
gnutls_x509_tlsfeatures_t features,
- unsigned int flags,
- unsigned int *critical)
+ unsigned int flags, unsigned int *critical)
{
int ret;
gnutls_datum_t der;
@@ -135,9 +135,8 @@ int gnutls_x509_crt_get_tlsfeatures(gnutls_x509_crt_t crt,
}
if ((ret =
- _gnutls_x509_crt_get_extension(crt, GNUTLS_X509EXT_OID_TLSFEATURES, 0,
- &der, critical)) < 0)
- {
+ _gnutls_x509_crt_get_extension(crt, GNUTLS_X509EXT_OID_TLSFEATURES,
+ 0, &der, critical)) < 0) {
return ret;
}
@@ -189,7 +188,9 @@ int gnutls_x509_crt_set_tlsfeatures(gnutls_x509_crt_t crt,
return ret;
}
- ret = _gnutls_x509_crt_set_extension(crt, GNUTLS_X509EXT_OID_TLSFEATURES, &der, 0);
+ ret =
+ _gnutls_x509_crt_set_extension(crt, GNUTLS_X509EXT_OID_TLSFEATURES,
+ &der, 0);
_gnutls_free_datum(&der);
@@ -221,7 +222,7 @@ unsigned gnutls_x509_tlsfeatures_check_crt(gnutls_x509_tlsfeatures_t feat,
unsigned i, j, uret, found;
if (feat->size == 0)
- return 1; /* shortcut; no constraints to check */
+ return 1; /* shortcut; no constraints to check */
ret = gnutls_x509_tlsfeatures_init(&cfeat);
if (ret < 0)
@@ -236,15 +237,17 @@ unsigned gnutls_x509_tlsfeatures_check_crt(gnutls_x509_tlsfeatures_t feat,
/* if cert's features cannot be a superset */
if (feat->size > cfeat->size) {
- _gnutls_debug_log("certificate has %u, while issuer has %u tlsfeatures\n", cfeat->size, feat->size);
+ _gnutls_debug_log
+ ("certificate has %u, while issuer has %u tlsfeatures\n",
+ cfeat->size, feat->size);
gnutls_assert();
uret = 0;
goto cleanup;
}
- for (i=0;i<feat->size;i++) {
+ for (i = 0; i < feat->size; i++) {
found = 0;
- for (j=0;j<cfeat->size;j++) {
+ for (j = 0; j < cfeat->size; j++) {
if (feat->feature[i] == cfeat->feature[j]) {
found = 1;
break;
@@ -252,7 +255,8 @@ unsigned gnutls_x509_tlsfeatures_check_crt(gnutls_x509_tlsfeatures_t feat,
}
if (found == 0) {
- _gnutls_debug_log("feature %d was not found in cert\n", (int)feat->feature[i]);
+ _gnutls_debug_log("feature %d was not found in cert\n",
+ (int)feat->feature[i]);
uret = 0;
goto cleanup;
}
diff --git a/lib/x509/verify-high.c b/lib/x509/verify-high.c
index 5d29929e7d..7b8b270d69 100644
--- a/lib/x509/verify-high.c
+++ b/lib/x509/verify-high.c
@@ -62,7 +62,7 @@ struct gnutls_x509_trust_list_iter {
unsigned int ca_index;
#ifdef ENABLE_PKCS11
- gnutls_pkcs11_obj_t* pkcs11_list;
+ gnutls_pkcs11_obj_t *pkcs11_list;
unsigned int pkcs11_index;
unsigned int pkcs11_size;
#endif
@@ -70,19 +70,18 @@ struct gnutls_x509_trust_list_iter {
#define DEFAULT_SIZE 127
-static bool
-cert_eq(const void *cert1, const void *cert2)
+static bool cert_eq(const void *cert1, const void *cert2)
{
const gnutls_x509_crt_t c1 = (const gnutls_x509_crt_t)cert1;
const gnutls_x509_crt_t c2 = (const gnutls_x509_crt_t)cert2;
return gnutls_x509_crt_equals(c1, c2);
}
-static size_t
-cert_hashcode(const void *cert)
+static size_t cert_hashcode(const void *cert)
{
const gnutls_x509_crt_t c = (const gnutls_x509_crt_t)cert;
- return hash_pjw_bare(c->raw_dn.data, c->raw_dn.size) % DEFAULT_MAX_VERIFY_DEPTH;
+ return hash_pjw_bare(c->raw_dn.data,
+ c->raw_dn.size) % DEFAULT_MAX_VERIFY_DEPTH;
}
/**
@@ -98,16 +97,14 @@ cert_hashcode(const void *cert)
* Since: 3.0.0
**/
int
-gnutls_x509_trust_list_init(gnutls_x509_trust_list_t * list,
- unsigned int size)
+gnutls_x509_trust_list_init(gnutls_x509_trust_list_t * list, unsigned int size)
{
gnutls_x509_trust_list_t tmp;
*list = NULL;
FAIL_IF_LIB_ERROR;
- tmp =
- gnutls_calloc(1, sizeof(struct gnutls_x509_trust_list_st));
+ tmp = gnutls_calloc(1, sizeof(struct gnutls_x509_trust_list_st));
if (!tmp)
return GNUTLS_E_MEMORY_ERROR;
@@ -141,8 +138,7 @@ gnutls_x509_trust_list_init(gnutls_x509_trust_list_t * list,
* Since: 3.0.0
**/
void
-gnutls_x509_trust_list_deinit(gnutls_x509_trust_list_t list,
- unsigned int all)
+gnutls_x509_trust_list_deinit(gnutls_x509_trust_list_t list, unsigned int all)
{
unsigned int i, j;
@@ -168,20 +164,17 @@ gnutls_x509_trust_list_deinit(gnutls_x509_trust_list_t list,
}
gnutls_free(list->node[i].trusted_cas);
-
if (all) {
for (j = 0; j < list->node[i].crl_size; j++) {
- gnutls_x509_crl_deinit(list->node[i].
- crls[j]);
+ gnutls_x509_crl_deinit(list->node[i].crls[j]);
}
}
gnutls_free(list->node[i].crls);
if (all) {
for (j = 0; j < list->node[i].named_cert_size; j++) {
- gnutls_x509_crt_deinit(list->node[i].
- named_certs[j].
- cert);
+ gnutls_x509_crt_deinit(list->node[i].named_certs
+ [j].cert);
}
}
gnutls_free(list->node[i].named_certs);
@@ -194,8 +187,7 @@ gnutls_x509_trust_list_deinit(gnutls_x509_trust_list_t list,
}
static int
-add_new_ca_to_rdn_seq(gnutls_x509_trust_list_t list,
- gnutls_x509_crt_t ca)
+add_new_ca_to_rdn_seq(gnutls_x509_trust_list_t list, gnutls_x509_crt_t ca)
{
gnutls_datum_t tmp;
size_t newsize;
@@ -214,9 +206,7 @@ add_new_ca_to_rdn_seq(gnutls_x509_trust_list_t list,
return GNUTLS_E_SHORT_MEMORY_BUFFER;
}
- newdata =
- gnutls_realloc_fast(list->x509_rdn_sequence.data,
- newsize);
+ newdata = gnutls_realloc_fast(list->x509_rdn_sequence.data, newsize);
if (newdata == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -239,17 +229,16 @@ add_new_ca_to_rdn_seq(gnutls_x509_trust_list_t list,
* pkcs11 trust modules when the GNUTLS_TL_GET_COPY flag isn't
* given. It is not thread safe. */
static int
-trust_list_add_compat(gnutls_x509_trust_list_t list,
- gnutls_x509_crt_t cert)
+trust_list_add_compat(gnutls_x509_trust_list_t list, gnutls_x509_crt_t cert)
{
if (unlikely(INT_ADD_OVERFLOW(list->keep_certs_size, 1))) {
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
list->keep_certs =
- _gnutls_reallocarray_fast(list->keep_certs,
- list->keep_certs_size + 1,
- sizeof(list->keep_certs[0]));
+ _gnutls_reallocarray_fast(list->keep_certs,
+ list->keep_certs_size + 1,
+ sizeof(list->keep_certs[0]));
if (list->keep_certs == NULL) {
gnutls_assert();
return GNUTLS_E_MEMORY_ERROR;
@@ -303,17 +292,26 @@ gnutls_x509_trust_list_add_cas(gnutls_x509_trust_list_t list,
for (i = 0; i < clist_size; i++) {
exists = 0;
hash =
- hash_pjw_bare(clist[i]->raw_dn.data,
- clist[i]->raw_dn.size);
+ hash_pjw_bare(clist[i]->raw_dn.data, clist[i]->raw_dn.size);
hash %= list->size;
/* avoid duplicates */
- if (flags & GNUTLS_TL_NO_DUPLICATES || flags & GNUTLS_TL_NO_DUPLICATE_KEY) {
- for (j=0;j<list->node[hash].trusted_ca_size;j++) {
+ if (flags & GNUTLS_TL_NO_DUPLICATES
+ || flags & GNUTLS_TL_NO_DUPLICATE_KEY) {
+ for (j = 0; j < list->node[hash].trusted_ca_size; j++) {
if (flags & GNUTLS_TL_NO_DUPLICATES)
- ret = gnutls_x509_crt_equals(list->node[hash].trusted_cas[j], clist[i]);
+ ret =
+ gnutls_x509_crt_equals(list->node
+ [hash].trusted_cas
+ [j],
+ clist[i]);
else
- ret = _gnutls_check_if_same_key(list->node[hash].trusted_cas[j], clist[i], 1);
+ ret =
+ _gnutls_check_if_same_key(list->node
+ [hash].trusted_cas
+ [j],
+ clist[i],
+ 1);
if (ret != 0) {
exists = 1;
break;
@@ -321,21 +319,27 @@ gnutls_x509_trust_list_add_cas(gnutls_x509_trust_list_t list,
}
if (exists != 0) {
- gnutls_x509_crt_deinit(list->node[hash].trusted_cas[j]);
+ gnutls_x509_crt_deinit(list->
+ node[hash].trusted_cas
+ [j]);
list->node[hash].trusted_cas[j] = clist[i];
continue;
}
}
- if (unlikely(INT_ADD_OVERFLOW(list->node[hash].trusted_ca_size, 1))) {
+ if (unlikely
+ (INT_ADD_OVERFLOW(list->node[hash].trusted_ca_size, 1))) {
gnutls_assert();
return i;
}
list->node[hash].trusted_cas =
- _gnutls_reallocarray_fast(list->node[hash].trusted_cas,
- list->node[hash].trusted_ca_size + 1,
- sizeof(list->node[hash].trusted_cas[0]));
+ _gnutls_reallocarray_fast(list->node[hash].trusted_cas,
+ list->node[hash].trusted_ca_size +
+ 1,
+ sizeof(list->
+ node[hash].trusted_cas
+ [0]));
if (list->node[hash].trusted_cas == NULL) {
gnutls_assert();
return i;
@@ -347,21 +351,21 @@ gnutls_x509_trust_list_add_cas(gnutls_x509_trust_list_t list,
gnutls_assert();
if (gnutls_x509_crt_get_dn2(clist[i], &dn) >= 0) {
_gnutls_audit_log(NULL,
- "There was a non-CA certificate in the trusted list: %s.\n",
- dn.data);
+ "There was a non-CA certificate in the trusted list: %s.\n",
+ dn.data);
gnutls_free(dn.data);
}
}
- list->node[hash].trusted_cas[list->node[hash].
- trusted_ca_size] = clist[i];
+ list->node[hash].trusted_cas[list->node[hash].trusted_ca_size] =
+ clist[i];
list->node[hash].trusted_ca_size++;
if (flags & GNUTLS_TL_USE_IN_TLS) {
ret = add_new_ca_to_rdn_seq(list, clist[i]);
if (ret < 0) {
gnutls_assert();
- return i+1;
+ return i + 1;
}
}
}
@@ -370,15 +374,15 @@ gnutls_x509_trust_list_add_cas(gnutls_x509_trust_list_t list,
}
static int
-advance_iter(gnutls_x509_trust_list_t list,
- gnutls_x509_trust_list_iter_t iter)
+advance_iter(gnutls_x509_trust_list_t list, gnutls_x509_trust_list_iter_t iter)
{
if (iter->node_index < list->size) {
++iter->ca_index;
/* skip entries */
while (iter->node_index < list->size &&
- iter->ca_index >= list->node[iter->node_index].trusted_ca_size) {
+ iter->ca_index >=
+ list->node[iter->node_index].trusted_ca_size) {
++iter->node_index;
iter->ca_index = 0;
}
@@ -390,8 +394,18 @@ advance_iter(gnutls_x509_trust_list_t list,
#ifdef ENABLE_PKCS11
if (list->pkcs11_token != NULL) {
if (iter->pkcs11_list == NULL) {
- int ret = gnutls_pkcs11_obj_list_import_url2(&iter->pkcs11_list, &iter->pkcs11_size,
- list->pkcs11_token, (GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE|GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_MARK_CA|GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED), 0);
+ int ret =
+ gnutls_pkcs11_obj_list_import_url2
+ (&iter->pkcs11_list,
+ &iter->pkcs11_size,
+ list->pkcs11_token,
+ (GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_CRT
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_CA
+ | GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED),
+ 0);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -434,14 +448,15 @@ advance_iter(gnutls_x509_trust_list_t list,
**/
int
gnutls_x509_trust_list_iter_get_ca(gnutls_x509_trust_list_t list,
- gnutls_x509_trust_list_iter_t *iter,
- gnutls_x509_crt_t *crt)
+ gnutls_x509_trust_list_iter_t * iter,
+ gnutls_x509_crt_t * crt)
{
int ret;
/* initialize iterator */
if (*iter == NULL) {
- *iter = gnutls_malloc(sizeof (struct gnutls_x509_trust_list_iter));
+ *iter =
+ gnutls_malloc(sizeof(struct gnutls_x509_trust_list_iter));
if (*iter == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -473,19 +488,25 @@ gnutls_x509_trust_list_iter_get_ca(gnutls_x509_trust_list_t list,
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _gnutls_x509_crt_cpy(*crt, list->node[(*iter)->node_index].trusted_cas[(*iter)->ca_index]);
+ ret =
+ _gnutls_x509_crt_cpy(*crt,
+ list->node[(*iter)->
+ node_index].trusted_cas[(*iter)->ca_index]);
if (ret < 0) {
gnutls_x509_crt_deinit(*crt);
return gnutls_assert_val(ret);
}
}
#ifdef ENABLE_PKCS11
- else if ( (*iter)->pkcs11_index < (*iter)->pkcs11_size) {
+ else if ((*iter)->pkcs11_index < (*iter)->pkcs11_size) {
ret = gnutls_x509_crt_init(crt);
if (ret < 0)
return gnutls_assert_val(ret);
- ret = gnutls_x509_crt_import_pkcs11(*crt, (*iter)->pkcs11_list[(*iter)->pkcs11_index]);
+ ret =
+ gnutls_x509_crt_import_pkcs11(*crt,
+ (*iter)->
+ pkcs11_list[(*iter)->pkcs11_index]);
if (ret < 0) {
gnutls_x509_crt_deinit(*crt);
return gnutls_assert_val(ret);
@@ -508,7 +529,7 @@ gnutls_x509_trust_list_iter_get_ca(gnutls_x509_trust_list_t list,
* certificate that we read and when this function is called again we
* report GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE to our caller. */
ret = advance_iter(list, *iter);
- if (ret < 0 && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
+ if (ret < 0 && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
gnutls_x509_crt_deinit(*crt);
*crt = NULL;
@@ -545,8 +566,8 @@ void gnutls_x509_trust_list_iter_deinit(gnutls_x509_trust_list_iter_t iter)
static gnutls_x509_crt_t crt_cpy(gnutls_x509_crt_t src)
{
-gnutls_x509_crt_t dst;
-int ret;
+ gnutls_x509_crt_t dst;
+ int ret;
ret = gnutls_x509_crt_init(&dst);
if (ret < 0) {
@@ -594,21 +615,18 @@ gnutls_x509_trust_list_remove_cas(gnutls_x509_trust_list_t list,
for (i = 0; i < clist_size; i++) {
hash =
- hash_pjw_bare(clist[i]->raw_dn.data,
- clist[i]->raw_dn.size);
+ hash_pjw_bare(clist[i]->raw_dn.data, clist[i]->raw_dn.size);
hash %= list->size;
for (j = 0; j < list->node[hash].trusted_ca_size; j++) {
if (gnutls_x509_crt_equals
- (clist[i],
- list->node[hash].trusted_cas[j]) != 0) {
+ (clist[i], list->node[hash].trusted_cas[j]) != 0) {
gnutls_x509_crt_deinit(list->node[hash].
trusted_cas[j]);
list->node[hash].trusted_cas[j] =
list->node[hash].trusted_cas[list->
- node
- [hash].
+ node[hash].
trusted_ca_size
- 1];
list->node[hash].trusted_ca_size--;
@@ -626,9 +644,9 @@ gnutls_x509_trust_list_remove_cas(gnutls_x509_trust_list_t list,
* ensure that a server certificate will also get rejected.
*/
list->distrusted =
- _gnutls_reallocarray_fast(list->distrusted,
- list->distrusted_size + 1,
- sizeof(list->distrusted[0]));
+ _gnutls_reallocarray_fast(list->distrusted,
+ list->distrusted_size + 1,
+ sizeof(list->distrusted[0]));
if (list->distrusted == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -679,8 +697,7 @@ gnutls_x509_trust_list_add_named_crt(gnutls_x509_trust_list_t list,
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
hash =
- hash_pjw_bare(cert->raw_issuer_dn.data,
- cert->raw_issuer_dn.size);
+ hash_pjw_bare(cert->raw_issuer_dn.data, cert->raw_issuer_dn.size);
hash %= list->size;
if (unlikely(INT_ADD_OVERFLOW(list->node[hash].named_cert_size, 1))) {
@@ -688,20 +705,19 @@ gnutls_x509_trust_list_add_named_crt(gnutls_x509_trust_list_t list,
}
list->node[hash].named_certs =
- _gnutls_reallocarray_fast(list->node[hash].named_certs,
- list->node[hash].named_cert_size + 1,
- sizeof(list->node[hash].named_certs[0]));
+ _gnutls_reallocarray_fast(list->node[hash].named_certs,
+ list->node[hash].named_cert_size + 1,
+ sizeof(list->node[hash].named_certs[0]));
if (list->node[hash].named_certs == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- list->node[hash].named_certs[list->node[hash].named_cert_size].
- cert = cert;
+ list->node[hash].named_certs[list->node[hash].named_cert_size].cert =
+ cert;
memcpy(list->node[hash].
named_certs[list->node[hash].named_cert_size].name, name,
name_size);
list->node[hash].named_certs[list->node[hash].
- named_cert_size].name_size =
- name_size;
+ named_cert_size].name_size = name_size;
list->node[hash].named_cert_size++;
@@ -763,18 +779,19 @@ gnutls_x509_trust_list_add_crls(gnutls_x509_trust_list_t list,
ret =
gnutls_x509_crl_verify(crl_list[i],
- list->node[hash].
- trusted_cas,
+ list->node[hash].trusted_cas,
list->node[hash].
trusted_ca_size,
- verification_flags,
- &vret);
+ verification_flags, &vret);
if (ret < 0 || vret != 0) {
- _gnutls_debug_log("CRL verification failed, not adding it\n");
+ _gnutls_debug_log
+ ("CRL verification failed, not adding it\n");
if (flags & GNUTLS_TL_NO_DUPLICATES)
gnutls_x509_crl_deinit(crl_list[i]);
if (flags & GNUTLS_TL_FAIL_ON_INVALID_CRL)
- return gnutls_assert_val(GNUTLS_E_CRL_VERIFICATION_ERROR);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_CRL_VERIFICATION_ERROR);
continue;
}
}
@@ -782,18 +799,28 @@ gnutls_x509_trust_list_add_crls(gnutls_x509_trust_list_t list,
/* If the CRL added overrides a previous one, then overwrite
* the old one */
if (flags & GNUTLS_TL_NO_DUPLICATES) {
- for (x=0;x<list->node[hash].crl_size;x++) {
- if (crl_list[i]->raw_issuer_dn.size == list->node[hash].crls[x]->raw_issuer_dn.size &&
- memcmp(crl_list[i]->raw_issuer_dn.data, list->node[hash].crls[x]->raw_issuer_dn.data, crl_list[i]->raw_issuer_dn.size) == 0) {
- if (gnutls_x509_crl_get_this_update(crl_list[i]) >=
- gnutls_x509_crl_get_this_update(list->node[hash].crls[x])) {
-
- gnutls_x509_crl_deinit(list->node[hash].crls[x]);
- list->node[hash].crls[x] = crl_list[i];
+ for (x = 0; x < list->node[hash].crl_size; x++) {
+ if (crl_list[i]->raw_issuer_dn.size ==
+ list->node[hash].crls[x]->raw_issuer_dn.size
+ && memcmp(crl_list[i]->raw_issuer_dn.data,
+ list->node[hash].
+ crls[x]->raw_issuer_dn.data,
+ crl_list[i]->
+ raw_issuer_dn.size) == 0) {
+ if (gnutls_x509_crl_get_this_update
+ (crl_list[i]) >=
+ gnutls_x509_crl_get_this_update
+ (list->node[hash].crls[x])) {
+
+ gnutls_x509_crl_deinit
+ (list->node[hash].crls[x]);
+ list->node[hash].crls[x] =
+ crl_list[i];
goto next;
} else {
/* The new is older, discard it */
- gnutls_x509_crl_deinit(crl_list[i]);
+ gnutls_x509_crl_deinit(crl_list
+ [i]);
goto next;
}
}
@@ -814,9 +841,7 @@ gnutls_x509_trust_list_add_crls(gnutls_x509_trust_list_t list,
}
list->node[hash].crls = tmp;
-
- list->node[hash].crls[list->node[hash].crl_size] =
- crl_list[i];
+ list->node[hash].crls[list->node[hash].crl_size] = crl_list[i];
list->node[hash].crl_size++;
next:
@@ -896,7 +921,7 @@ static int shorten_clist(gnutls_x509_trust_list_t list,
static int
retrieve_issuers(gnutls_x509_trust_list_t list,
gnutls_x509_crt_t subject,
- gnutls_x509_crt_t *certificate_list,
+ gnutls_x509_crt_t * certificate_list,
unsigned int clist_size_max)
{
gnutls_x509_crt_t *issuers;
@@ -959,8 +984,7 @@ int _gnutls_trust_list_get_issuer(gnutls_x509_trust_list_t list,
size_t hash;
hash =
- hash_pjw_bare(cert->raw_issuer_dn.data,
- cert->raw_issuer_dn.size);
+ hash_pjw_bare(cert->raw_issuer_dn.data, cert->raw_issuer_dn.size);
hash %= list->size;
for (i = 0; i < list->node[hash].trusted_ca_size; i++) {
@@ -970,7 +994,8 @@ int _gnutls_trust_list_get_issuer(gnutls_x509_trust_list_t list,
trusted_cas[i]);
if (ret != 0) {
if (flags & GNUTLS_TL_GET_COPY) {
- *issuer = crt_cpy(list->node[hash].trusted_cas[i]);
+ *issuer =
+ crt_cpy(list->node[hash].trusted_cas[i]);
} else {
*issuer = list->node[hash].trusted_cas[i];
}
@@ -983,10 +1008,9 @@ int _gnutls_trust_list_get_issuer(gnutls_x509_trust_list_t list,
static
int trust_list_get_issuer_by_dn(gnutls_x509_trust_list_t list,
- const gnutls_datum_t *dn,
- const gnutls_datum_t *spki,
- gnutls_x509_crt_t * issuer,
- unsigned int flags)
+ const gnutls_datum_t * dn,
+ const gnutls_datum_t * spki,
+ gnutls_x509_crt_t * issuer, unsigned int flags)
{
int ret;
unsigned int i, j;
@@ -995,24 +1019,32 @@ int trust_list_get_issuer_by_dn(gnutls_x509_trust_list_t list,
size_t tmp_size;
if (dn) {
- hash =
- hash_pjw_bare(dn->data,
- dn->size);
+ hash = hash_pjw_bare(dn->data, dn->size);
hash %= list->size;
for (i = 0; i < list->node[hash].trusted_ca_size; i++) {
- ret = _gnutls_x509_compare_raw_dn(dn, &list->node[hash].trusted_cas[i]->raw_dn);
+ ret =
+ _gnutls_x509_compare_raw_dn(dn,
+ &list->
+ node[hash].trusted_cas
+ [i]->raw_dn);
if (ret != 0) {
if (spki && spki->size > 0) {
tmp_size = sizeof(tmp);
- ret = gnutls_x509_crt_get_subject_key_id(list->node[hash].trusted_cas[i], tmp, &tmp_size, NULL);
+ ret =
+ gnutls_x509_crt_get_subject_key_id
+ (list->node[hash].trusted_cas[i],
+ tmp, &tmp_size, NULL);
if (ret < 0)
continue;
- if (spki->size != tmp_size || memcmp(spki->data, tmp, spki->size) != 0)
+ if (spki->size != tmp_size
+ || memcmp(spki->data, tmp,
+ spki->size) != 0)
continue;
}
- *issuer = crt_cpy(list->node[hash].trusted_cas[i]);
+ *issuer =
+ crt_cpy(list->node[hash].trusted_cas[i]);
return 0;
}
}
@@ -1022,11 +1054,15 @@ int trust_list_get_issuer_by_dn(gnutls_x509_trust_list_t list,
for (j = 0; j < list->node[i].trusted_ca_size; j++) {
tmp_size = sizeof(tmp);
- ret = gnutls_x509_crt_get_subject_key_id(list->node[i].trusted_cas[j], tmp, &tmp_size, NULL);
+ ret =
+ gnutls_x509_crt_get_subject_key_id
+ (list->node[i].trusted_cas[j], tmp,
+ &tmp_size, NULL);
if (ret < 0)
continue;
- if (spki->size != tmp_size || memcmp(spki->data, tmp, spki->size) != 0)
+ if (spki->size != tmp_size
+ || memcmp(spki->data, tmp, spki->size) != 0)
continue;
*issuer = crt_cpy(list->node[i].trusted_cas[j]);
@@ -1074,10 +1110,12 @@ int gnutls_x509_trust_list_get_issuer(gnutls_x509_trust_list_t list,
#ifdef ENABLE_PKCS11
if (ret < 0 && list->pkcs11_token) {
gnutls_x509_crt_t crt;
- gnutls_datum_t der = {NULL, 0};
+ gnutls_datum_t der = { NULL, 0 };
/* use the token for verification */
- ret = gnutls_pkcs11_get_raw_issuer(list->pkcs11_token, cert, &der,
- GNUTLS_X509_FMT_DER, GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE);
+ ret =
+ gnutls_pkcs11_get_raw_issuer(list->pkcs11_token, cert, &der,
+ GNUTLS_X509_FMT_DER,
+ GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1132,9 +1170,9 @@ int gnutls_x509_trust_list_get_issuer(gnutls_x509_trust_list_t list,
* Since: 3.4.0
**/
int gnutls_x509_trust_list_get_issuer_by_dn(gnutls_x509_trust_list_t list,
- const gnutls_datum_t *dn,
- gnutls_x509_crt_t *issuer,
- unsigned int flags)
+ const gnutls_datum_t * dn,
+ gnutls_x509_crt_t * issuer,
+ unsigned int flags)
{
int ret;
@@ -1146,10 +1184,13 @@ int gnutls_x509_trust_list_get_issuer_by_dn(gnutls_x509_trust_list_t list,
#ifdef ENABLE_PKCS11
if (ret < 0 && list->pkcs11_token) {
gnutls_x509_crt_t crt;
- gnutls_datum_t der = {NULL, 0};
+ gnutls_datum_t der = { NULL, 0 };
/* use the token for verification */
- ret = gnutls_pkcs11_get_raw_issuer_by_dn(list->pkcs11_token, dn, &der,
- GNUTLS_X509_FMT_DER, GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE);
+ ret =
+ gnutls_pkcs11_get_raw_issuer_by_dn(list->pkcs11_token, dn,
+ &der,
+ GNUTLS_X509_FMT_DER,
+ GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1191,11 +1232,15 @@ int gnutls_x509_trust_list_get_issuer_by_dn(gnutls_x509_trust_list_t list,
*
* Since: 3.4.2
**/
-int gnutls_x509_trust_list_get_issuer_by_subject_key_id(gnutls_x509_trust_list_t list,
- const gnutls_datum_t *dn,
- const gnutls_datum_t *spki,
- gnutls_x509_crt_t *issuer,
- unsigned int flags)
+int gnutls_x509_trust_list_get_issuer_by_subject_key_id(gnutls_x509_trust_list_t
+ list,
+ const gnutls_datum_t *
+ dn,
+ const gnutls_datum_t *
+ spki,
+ gnutls_x509_crt_t *
+ issuer,
+ unsigned int flags)
{
int ret;
@@ -1207,10 +1252,12 @@ int gnutls_x509_trust_list_get_issuer_by_subject_key_id(gnutls_x509_trust_list_t
#ifdef ENABLE_PKCS11
if (ret < 0 && list->pkcs11_token) {
gnutls_x509_crt_t crt;
- gnutls_datum_t der = {NULL, 0};
+ gnutls_datum_t der = { NULL, 0 };
/* use the token for verification */
- ret = gnutls_pkcs11_get_raw_issuer_by_subject_key_id(list->pkcs11_token, dn, spki, &der,
- GNUTLS_X509_FMT_DER, GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE);
+ ret =
+ gnutls_pkcs11_get_raw_issuer_by_subject_key_id
+ (list->pkcs11_token, dn, spki, &der, GNUTLS_X509_FMT_DER,
+ GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1237,17 +1284,20 @@ int gnutls_x509_trust_list_get_issuer_by_subject_key_id(gnutls_x509_trust_list_t
}
static
-int check_if_in_blocklist(gnutls_x509_crt_t * cert_list, unsigned int cert_list_size,
- gnutls_x509_crt_t * blocklist, unsigned int blocklist_size)
+int check_if_in_blocklist(gnutls_x509_crt_t * cert_list,
+ unsigned int cert_list_size,
+ gnutls_x509_crt_t * blocklist,
+ unsigned int blocklist_size)
{
-unsigned i, j;
+ unsigned i, j;
if (blocklist_size == 0)
return 0;
- for (i=0;i<cert_list_size;i++) {
- for (j=0;j<blocklist_size;j++) {
- if (gnutls_x509_crt_equals(cert_list[i], blocklist[j]) != 0) {
+ for (i = 0; i < cert_list_size; i++) {
+ for (j = 0; j < blocklist_size; j++) {
+ if (gnutls_x509_crt_equals(cert_list[i], blocklist[j])
+ != 0) {
return 1;
}
}
@@ -1284,8 +1334,9 @@ gnutls_x509_trust_list_verify_crt(gnutls_x509_trust_list_t list,
unsigned int *voutput,
gnutls_verify_output_function func)
{
- return gnutls_x509_trust_list_verify_crt2(list, cert_list, cert_list_size,
- NULL, 0, flags, voutput, func);
+ return gnutls_x509_trust_list_verify_crt2(list, cert_list,
+ cert_list_size, NULL, 0,
+ flags, voutput, func);
}
#define LAST_DN cert_list[cert_list_size-1]->raw_dn
@@ -1349,7 +1400,7 @@ int
gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
gnutls_x509_crt_t * cert_list,
unsigned int cert_list_size,
- gnutls_typed_vdata_st *data,
+ gnutls_typed_vdata_st * data,
unsigned int elements,
unsigned int flags,
unsigned int *voutput,
@@ -1365,20 +1416,22 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
unsigned hostname_size = 0;
unsigned have_set_name = 0;
unsigned saved_output;
- gnutls_datum_t ip = {NULL, 0};
+ gnutls_datum_t ip = { NULL, 0 };
gl_list_t records;
if (cert_list == NULL || cert_list_size < 1)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- for (i=0;i<elements;i++) {
+ for (i = 0; i < elements; i++) {
if (data[i].type == GNUTLS_DT_DNS_HOSTNAME) {
- hostname = (void*)data[i].data;
+ hostname = (void *)data[i].data;
if (data[i].size > 0) {
hostname_size = data[i].size;
}
- if (have_set_name != 0) return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ if (have_set_name != 0)
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
have_set_name = 1;
} else if (data[i].type == GNUTLS_DT_IP_ADDRESS) {
if (data[i].size > 0) {
@@ -1386,26 +1439,33 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
ip.size = data[i].size;
}
- if (have_set_name != 0) return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ if (have_set_name != 0)
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
have_set_name = 1;
} else if (data[i].type == GNUTLS_DT_RFC822NAME) {
- email = (void*)data[i].data;
+ email = (void *)data[i].data;
- if (have_set_name != 0) return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ if (have_set_name != 0)
+ return
+ gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
have_set_name = 1;
} else if (data[i].type == GNUTLS_DT_KEY_PURPOSE_OID) {
- purpose = (void*)data[i].data;
+ purpose = (void *)data[i].data;
}
}
- if (hostname) { /* shortcut using the named certs - if any */
+ if (hostname) { /* shortcut using the named certs - if any */
unsigned vtmp = 0;
if (hostname_size == 0)
hostname_size = strlen(hostname);
ret = gnutls_x509_trust_list_verify_named_crt(list,
- cert_list[0], hostname, hostname_size,
- flags, &vtmp, func);
+ cert_list[0],
+ hostname,
+ hostname_size,
+ flags, &vtmp,
+ func);
if (ret == 0 && vtmp == 0) {
*voutput = vtmp;
return 0;
@@ -1415,12 +1475,14 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
memcpy(sorted, cert_list, cert_list_size * sizeof(gnutls_x509_crt_t));
cert_list = sorted;
- records = gl_list_nx_create_empty(GL_LINKEDHASH_LIST, cert_eq, cert_hashcode, NULL, false);
+ records =
+ gl_list_nx_create_empty(GL_LINKEDHASH_LIST, cert_eq, cert_hashcode,
+ NULL, false);
if (records == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
for (i = 0; i < cert_list_size &&
- cert_list_size <= DEFAULT_MAX_VERIFY_DEPTH; ) {
+ cert_list_size <= DEFAULT_MAX_VERIFY_DEPTH;) {
unsigned int sorted_size = 1;
unsigned int j;
gnutls_x509_crt_t issuer;
@@ -1461,7 +1523,8 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
if (gnutls_x509_trust_list_get_issuer(list,
cert_list[i - 1],
&issuer,
- GNUTLS_TL_GET_COPY) == 0) {
+ GNUTLS_TL_GET_COPY) ==
+ 0) {
gnutls_x509_crt_deinit(issuer);
cert_list_size = i;
break;
@@ -1479,8 +1542,7 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
cert_list[i - 1],
&retrieved[retrieved_size],
DEFAULT_MAX_VERIFY_DEPTH -
- MAX(retrieved_size,
- cert_list_size));
+ MAX(retrieved_size, cert_list_size));
if (ret < 0) {
break;
} else if (ret > 0) {
@@ -1507,14 +1569,12 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
hash =
- hash_pjw_bare(cert_list[cert_list_size - 1]->raw_issuer_dn.
- data,
- cert_list[cert_list_size -
- 1]->raw_issuer_dn.size);
+ hash_pjw_bare(cert_list[cert_list_size - 1]->raw_issuer_dn.data,
+ cert_list[cert_list_size - 1]->raw_issuer_dn.size);
hash %= list->size;
ret = check_if_in_blocklist(cert_list, cert_list_size,
- list->distrusted, list->distrusted_size);
+ list->distrusted, list->distrusted_size);
if (ret != 0) {
*voutput = 0;
*voutput |= GNUTLS_CERT_REVOKED;
@@ -1531,18 +1591,19 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
saved_output = *voutput;
if (SIGNER_OLD_OR_UNKNOWN(*voutput) &&
- (LAST_DN.size != LAST_IDN.size ||
- memcmp(LAST_DN.data, LAST_IDN.data, LAST_IDN.size) != 0)) {
+ (LAST_DN.size != LAST_IDN.size ||
+ memcmp(LAST_DN.data, LAST_IDN.data, LAST_IDN.size) != 0)) {
/* if we couldn't find the issuer, try to see if the last
* certificate is in the trusted list and try to verify against
* (if it is not self signed) */
hash =
- hash_pjw_bare(cert_list[cert_list_size - 1]->raw_dn.
- data, cert_list[cert_list_size - 1]->raw_dn.size);
+ hash_pjw_bare(cert_list[cert_list_size - 1]->raw_dn.data,
+ cert_list[cert_list_size - 1]->raw_dn.size);
hash %= list->size;
- _gnutls_debug_log("issuer in verification was not found or insecure; trying against trust list\n");
+ _gnutls_debug_log
+ ("issuer in verification was not found or insecure; trying against trust list\n");
*voutput =
_gnutls_verify_crt_status(list, cert_list, cert_list_size,
@@ -1562,10 +1623,10 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
if (SIGNER_OLD_OR_UNKNOWN(*voutput) && list->pkcs11_token) {
/* use the token for verification */
- *voutput = _gnutls_pkcs11_verify_crt_status(list, list->pkcs11_token,
- cert_list, cert_list_size,
- purpose,
- flags, func);
+ *voutput =
+ _gnutls_pkcs11_verify_crt_status(list, list->pkcs11_token,
+ cert_list, cert_list_size,
+ purpose, flags, func);
if (*voutput != 0) {
if (SIGNER_WAS_KNOWN(saved_output))
*voutput = saved_output;
@@ -1579,34 +1640,39 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
ret = _gnutls_check_key_purpose(cert_list[0], purpose, 0);
if (ret != 1) {
gnutls_assert();
- *voutput |= GNUTLS_CERT_PURPOSE_MISMATCH|GNUTLS_CERT_INVALID;
+ *voutput |=
+ GNUTLS_CERT_PURPOSE_MISMATCH | GNUTLS_CERT_INVALID;
}
}
if (hostname) {
ret =
- gnutls_x509_crt_check_hostname2(cert_list[0], hostname, flags);
+ gnutls_x509_crt_check_hostname2(cert_list[0], hostname,
+ flags);
if (ret == 0) {
gnutls_assert();
- *voutput |= GNUTLS_CERT_UNEXPECTED_OWNER|GNUTLS_CERT_INVALID;
+ *voutput |=
+ GNUTLS_CERT_UNEXPECTED_OWNER | GNUTLS_CERT_INVALID;
}
}
if (ip.data) {
ret =
- gnutls_x509_crt_check_ip(cert_list[0], ip.data, ip.size, flags);
+ gnutls_x509_crt_check_ip(cert_list[0], ip.data, ip.size,
+ flags);
if (ret == 0) {
gnutls_assert();
- *voutput |= GNUTLS_CERT_UNEXPECTED_OWNER|GNUTLS_CERT_INVALID;
+ *voutput |=
+ GNUTLS_CERT_UNEXPECTED_OWNER | GNUTLS_CERT_INVALID;
}
}
if (email) {
- ret =
- gnutls_x509_crt_check_email(cert_list[0], email, 0);
+ ret = gnutls_x509_crt_check_email(cert_list[0], email, 0);
if (ret == 0) {
gnutls_assert();
- *voutput |= GNUTLS_CERT_UNEXPECTED_OWNER|GNUTLS_CERT_INVALID;
+ *voutput |=
+ GNUTLS_CERT_UNEXPECTED_OWNER | GNUTLS_CERT_INVALID;
}
}
@@ -1624,8 +1690,7 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
_gnutls_x509_crt_check_revocation(cert_list
[cert_list_size - 1],
list->node[hash].crls,
- list->node[hash].crl_size,
- func);
+ list->node[hash].crl_size, func);
if (ret == 1) { /* revoked */
*voutput |= GNUTLS_CERT_REVOKED;
*voutput |= GNUTLS_CERT_INVALID;
@@ -1640,8 +1705,7 @@ gnutls_x509_trust_list_verify_crt2(gnutls_x509_trust_list_t list,
hash %= list->size;
ret = _gnutls_x509_crt_check_revocation(cert_list[i],
- list->node[hash].
- crls,
+ list->node[hash].crls,
list->node[hash].
crl_size, func);
if (ret < 0) {
@@ -1701,14 +1765,12 @@ gnutls_x509_trust_list_verify_named_crt(gnutls_x509_trust_list_t list,
unsigned int i;
size_t hash;
-
hash =
- hash_pjw_bare(cert->raw_issuer_dn.data,
- cert->raw_issuer_dn.size);
+ hash_pjw_bare(cert->raw_issuer_dn.data, cert->raw_issuer_dn.size);
hash %= list->size;
ret = check_if_in_blocklist(&cert, 1,
- list->distrusted, list->distrusted_size);
+ list->distrusted, list->distrusted_size);
if (ret != 0) {
*voutput = 0;
*voutput |= GNUTLS_CERT_REVOKED;
@@ -1751,8 +1813,7 @@ gnutls_x509_trust_list_verify_named_crt(gnutls_x509_trust_list_t list,
/* return 1 if @cert is in @list, 0 if not */
int
-_gnutls_trustlist_inlist(gnutls_x509_trust_list_t list,
- gnutls_x509_crt_t cert)
+_gnutls_trustlist_inlist(gnutls_x509_trust_list_t list, gnutls_x509_crt_t cert)
{
int ret;
unsigned int i;
@@ -1764,8 +1825,7 @@ _gnutls_trustlist_inlist(gnutls_x509_trust_list_t list,
for (i = 0; i < list->node[hash].trusted_ca_size; i++) {
ret =
gnutls_x509_crt_equals(cert,
- list->node[hash].
- trusted_cas[i]);
+ list->node[hash].trusted_cas[i]);
if (ret != 0)
return 1;
}
diff --git a/lib/x509/verify-high.h b/lib/x509/verify-high.h
index f2061492fc..e2bec75261 100644
--- a/lib/x509/verify-high.h
+++ b/lib/x509/verify-high.h
@@ -21,7 +21,7 @@
*/
#ifndef GNUTLS_LIB_X509_VERIFY_HIGH_H
-#define GNUTLS_LIB_X509_VERIFY_HIGH_H
+# define GNUTLS_LIB_X509_VERIFY_HIGH_H
struct gnutls_x509_trust_list_st {
unsigned int size;
@@ -40,7 +40,7 @@ struct gnutls_x509_trust_list_st {
gnutls_x509_crt_t *keep_certs;
unsigned int keep_certs_size;
- char* pkcs11_token;
+ char *pkcs11_token;
/* set this callback if the issuer in the certificate
* chain is missing. */
@@ -52,4 +52,4 @@ struct gnutls_x509_trust_list_st {
int _gnutls_trustlist_inlist(gnutls_x509_trust_list_t list,
gnutls_x509_crt_t cert);
-#endif /* GNUTLS_LIB_X509_VERIFY_HIGH_H */
+#endif /* GNUTLS_LIB_X509_VERIFY_HIGH_H */
diff --git a/lib/x509/verify-high2.c b/lib/x509/verify-high2.c
index e69b1567c4..7391fa273c 100644
--- a/lib/x509/verify-high2.c
+++ b/lib/x509/verify-high2.c
@@ -97,7 +97,9 @@ gnutls_x509_trust_list_add_trust_mem(gnutls_x509_trust_list_t list,
ret =
gnutls_x509_trust_list_add_cas(list, x509_ca_list,
- x509_ncas, tl_flags|GNUTLS_TL_NO_DUPLICATES);
+ x509_ncas,
+ tl_flags |
+ GNUTLS_TL_NO_DUPLICATES);
gnutls_free(x509_ca_list);
if (ret < 0)
@@ -109,14 +111,15 @@ gnutls_x509_trust_list_add_trust_mem(gnutls_x509_trust_list_t list,
if (crls != NULL && crls->data != NULL) {
ret =
gnutls_x509_crl_list_import2(&x509_crl_list,
- &x509_ncrls, crls, type,
- 0);
+ &x509_ncrls, crls, type, 0);
if (ret < 0)
return gnutls_assert_val(ret);
ret =
gnutls_x509_trust_list_add_crls(list, x509_crl_list,
- x509_ncrls, tl_flags|GNUTLS_TL_NO_DUPLICATES,
+ x509_ncrls,
+ tl_flags |
+ GNUTLS_TL_NO_DUPLICATES,
tl_vflags);
gnutls_free(x509_crl_list);
@@ -193,7 +196,8 @@ int remove_pkcs11_url(gnutls_x509_trust_list_t list, const char *ca_file)
* trusted PKCS#11 token.
*/
static
-int add_trust_list_pkcs11_object_url(gnutls_x509_trust_list_t list, const char *url, unsigned flags)
+int add_trust_list_pkcs11_object_url(gnutls_x509_trust_list_t list,
+ const char *url, unsigned flags)
{
gnutls_x509_crt_t *xcrt_list = NULL;
gnutls_pkcs11_obj_t *pcrt_list = NULL;
@@ -206,7 +210,8 @@ int add_trust_list_pkcs11_object_url(gnutls_x509_trust_list_t list, const char *
ret =
gnutls_pkcs11_obj_list_import_url2(&pcrt_list, &pcrt_list_size,
url,
- GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED,
+ GNUTLS_PKCS11_OBJ_FLAG_CRT |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED,
0);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -255,7 +260,8 @@ int remove_pkcs11_object_url(gnutls_x509_trust_list_t list, const char *url)
ret =
gnutls_pkcs11_obj_list_import_url2(&pcrt_list, &pcrt_list_size,
url,
- GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED,
+ GNUTLS_PKCS11_OBJ_FLAG_CRT |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED,
0);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -296,7 +302,6 @@ int remove_pkcs11_object_url(gnutls_x509_trust_list_t list, const char *url)
}
#endif
-
/**
* gnutls_x509_trust_list_add_trust_file:
* @list: The list
@@ -339,18 +344,31 @@ gnutls_x509_trust_list_add_trust_file(gnutls_x509_trust_list_t list,
* otherwise import the individual certificates.
*/
if (is_pkcs11_url_object(ca_file) != 0) {
- return add_trust_list_pkcs11_object_url(list, ca_file, tl_flags);
- } else { /* trusted token */
+ return add_trust_list_pkcs11_object_url(list,
+ ca_file,
+ tl_flags);
+ } else { /* trusted token */
if (list->pkcs11_token != NULL)
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_INVALID_REQUEST);
list->pkcs11_token = gnutls_strdup(ca_file);
/* enumerate the certificates */
- ret = gnutls_pkcs11_obj_list_import_url(NULL, &pcrt_list_size,
- ca_file,
- (GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE|GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_MARK_CA|GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED),
- 0);
- if (ret < 0 && ret != GNUTLS_E_SHORT_MEMORY_BUFFER)
+ ret =
+ gnutls_pkcs11_obj_list_import_url(NULL,
+ &pcrt_list_size,
+ ca_file,
+ (GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_CRT
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_CA
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED),
+ 0);
+ if (ret < 0
+ && ret != GNUTLS_E_SHORT_MEMORY_BUFFER)
return gnutls_assert_val(ret);
return pcrt_list_size;
@@ -358,7 +376,7 @@ gnutls_x509_trust_list_add_trust_file(gnutls_x509_trust_list_t list,
} else
#endif
{
- cas.data = (void *) read_file(ca_file, RF_BINARY, &size);
+ cas.data = (void *)read_file(ca_file, RF_BINARY, &size);
if (cas.data == NULL) {
gnutls_assert();
return GNUTLS_E_FILE_ERROR;
@@ -368,7 +386,7 @@ gnutls_x509_trust_list_add_trust_file(gnutls_x509_trust_list_t list,
}
if (crl_file) {
- crls.data = (void *) read_file(crl_file, RF_BINARY, &size);
+ crls.data = (void *)read_file(crl_file, RF_BINARY, &size);
if (crls.data == NULL) {
gnutls_assert();
return GNUTLS_E_FILE_ERROR;
@@ -387,9 +405,9 @@ gnutls_x509_trust_list_add_trust_file(gnutls_x509_trust_list_t list,
static
int load_dir_certs(const char *dirname,
- gnutls_x509_trust_list_t list,
- unsigned int tl_flags, unsigned int tl_vflags,
- unsigned type, unsigned crl)
+ gnutls_x509_trust_list_t list,
+ unsigned int tl_flags, unsigned int tl_vflags,
+ unsigned type, unsigned crl)
{
int ret;
int r = 0;
@@ -410,7 +428,7 @@ int load_dir_certs(const char *dirname,
base_len = pathbuf.len;
while ((d = readdir(dirp)) != NULL) {
-#ifdef _DIRENT_HAVE_D_TYPE
+# ifdef _DIRENT_HAVE_D_TYPE
switch (d->d_type) {
case DT_REG:
case DT_LNK:
@@ -419,19 +437,19 @@ int load_dir_certs(const char *dirname,
default:
continue;
}
-#endif
+# endif
ret = _gnutls_pathbuf_append(&pathbuf, d->d_name);
if (ret < 0) {
continue;
}
if (crl != 0) {
ret = gnutls_x509_trust_list_add_trust_file
- (list, NULL, pathbuf.ptr, type, tl_flags,
- tl_vflags);
+ (list, NULL, pathbuf.ptr, type, tl_flags,
+ tl_vflags);
} else {
ret = gnutls_x509_trust_list_add_trust_file
- (list, pathbuf.ptr, NULL, type, tl_flags,
- tl_vflags);
+ (list, pathbuf.ptr, NULL, type, tl_flags,
+ tl_vflags);
}
if (ret >= 0) {
r += ret;
@@ -441,24 +459,25 @@ int load_dir_certs(const char *dirname,
_gnutls_pathbuf_deinit(&pathbuf);
closedir(dirp);
}
-#else /* _WIN32 */
+#else /* _WIN32 */
_TDIR *dirp;
struct _tdirent *d;
- gnutls_datum_t utf16 = {NULL, 0};
+ gnutls_datum_t utf16 = { NULL, 0 };
-#undef UCS2_ENDIAN
-#ifdef WORDS_BIGENDIAN
-#define UCS2_ENDIAN 1
-#else
-#define UCS2_ENDIAN 0
-#endif
+# undef UCS2_ENDIAN
+# ifdef WORDS_BIGENDIAN
+# define UCS2_ENDIAN 1
+# else
+# define UCS2_ENDIAN 0
+# endif
- ret = _gnutls_utf8_to_ucs2(dirname, strlen(dirname), &utf16, UCS2_ENDIAN);
+ ret =
+ _gnutls_utf8_to_ucs2(dirname, strlen(dirname), &utf16, UCS2_ENDIAN);
if (ret < 0) {
return gnutls_assert_val(ret);
}
- dirp = _topendir((_TCHAR*)utf16.data);
+ dirp = _topendir((_TCHAR *) utf16.data);
gnutls_free(utf16.data);
if (dirp != NULL) {
size_t base_len;
@@ -470,8 +489,8 @@ int load_dir_certs(const char *dirname,
base_len = pathbuf.len;
while ((d = _treaddir(dirp)) != NULL) {
- gnutls_datum_t utf8 = {NULL, 0};
-#ifdef _DIRENT_HAVE_D_TYPE
+ gnutls_datum_t utf8 = { NULL, 0 };
+# ifdef _DIRENT_HAVE_D_TYPE
switch (d->d_type) {
case DT_REG:
case DT_LNK:
@@ -480,10 +499,10 @@ int load_dir_certs(const char *dirname,
default:
continue;
}
-#endif
+# endif
ret = _gnutls_ucs2_to_utf8(d->d_name,
- d->d_namlen * sizeof(d->d_name[0]),
- &utf8,
+ d->d_namlen *
+ sizeof(d->d_name[0]), &utf8,
UCS2_ENDIAN);
if (ret < 0) {
continue;
@@ -496,12 +515,12 @@ int load_dir_certs(const char *dirname,
if (crl != 0) {
ret = gnutls_x509_trust_list_add_trust_file
- (list, NULL, pathbuf.ptr, type, tl_flags,
- tl_vflags);
+ (list, NULL, pathbuf.ptr, type, tl_flags,
+ tl_vflags);
} else {
ret = gnutls_x509_trust_list_add_trust_file
- (list, pathbuf.ptr, NULL, type, tl_flags,
- tl_vflags);
+ (list, pathbuf.ptr, NULL, type, tl_flags,
+ tl_vflags);
}
if (ret >= 0)
r += ret;
@@ -510,8 +529,8 @@ int load_dir_certs(const char *dirname,
_gnutls_pathbuf_deinit(&pathbuf);
_tclosedir(dirp);
}
-#undef UCS2_ENDIAN
-#endif /* _WIN32 */
+# undef UCS2_ENDIAN
+#endif /* _WIN32 */
return r;
}
@@ -534,11 +553,11 @@ int load_dir_certs(const char *dirname,
**/
int
gnutls_x509_trust_list_add_trust_dir(gnutls_x509_trust_list_t list,
- const char *ca_dir,
- const char *crl_dir,
- gnutls_x509_crt_fmt_t type,
- unsigned int tl_flags,
- unsigned int tl_vflags)
+ const char *ca_dir,
+ const char *crl_dir,
+ gnutls_x509_crt_fmt_t type,
+ unsigned int tl_flags,
+ unsigned int tl_vflags)
{
int ret = 0;
@@ -591,13 +610,13 @@ gnutls_x509_trust_list_remove_trust_file(gnutls_x509_trust_list_t list,
if (c_strncasecmp(ca_file, PKCS11_URL, PKCS11_URL_SIZE) == 0) {
if (is_pkcs11_url_object(ca_file) != 0) {
return remove_pkcs11_object_url(list, ca_file);
- } else { /* token */
+ } else { /* token */
return remove_pkcs11_url(list, ca_file);
}
} else
#endif
{
- cas.data = (void *) read_file(ca_file, RF_BINARY, &size);
+ cas.data = (void *)read_file(ca_file, RF_BINARY, &size);
if (cas.data == NULL) {
gnutls_assert();
return GNUTLS_E_FILE_ERROR;
diff --git a/lib/x509/verify.c b/lib/x509/verify.c
index eac8a2adb8..f4384c4aa5 100644
--- a/lib/x509/verify.c
+++ b/lib/x509/verify.c
@@ -47,8 +47,7 @@
*/
unsigned
_gnutls_check_if_same_key(gnutls_x509_crt_t cert1,
- gnutls_x509_crt_t cert2,
- unsigned is_ca)
+ gnutls_x509_crt_t cert2, unsigned is_ca)
{
int ret;
unsigned result;
@@ -60,8 +59,12 @@ _gnutls_check_if_same_key(gnutls_x509_crt_t cert1,
if (ret == 0)
return 0;
- if (cert1->raw_spki.size > 0 && (cert1->raw_spki.size == cert2->raw_spki.size) &&
- (memcmp(cert1->raw_spki.data, cert2->raw_spki.data, cert1->raw_spki.size) == 0))
+ if (cert1->raw_spki.size > 0
+ && (cert1->raw_spki.size == cert2->raw_spki.size)
+ &&
+ (memcmp
+ (cert1->raw_spki.data, cert2->raw_spki.data,
+ cert1->raw_spki.size) == 0))
result = 1;
else
result = 0;
@@ -70,8 +73,7 @@ _gnutls_check_if_same_key(gnutls_x509_crt_t cert1,
}
unsigned
-_gnutls_check_if_same_key2(gnutls_x509_crt_t cert1,
- gnutls_datum_t * cert2bin)
+_gnutls_check_if_same_key2(gnutls_x509_crt_t cert1, gnutls_datum_t * cert2bin)
{
int ret;
gnutls_x509_crt_t cert2;
@@ -104,12 +106,14 @@ static unsigned check_for_unknown_exts(gnutls_x509_crt_t cert)
unsigned critical;
int ret;
- for (i=0;;i++) {
+ for (i = 0;; i++) {
oid_size = sizeof(oid);
oid[0] = 0;
critical = 0;
- ret = gnutls_x509_crt_get_extension_info(cert, i, oid, &oid_size, &critical);
+ ret =
+ gnutls_x509_crt_get_extension_info(cert, i, oid, &oid_size,
+ &critical);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
return 0;
} else if (ret < 0) {
@@ -124,7 +128,8 @@ static unsigned check_for_unknown_exts(gnutls_x509_crt_t cert)
if (is_ext_oid_supported(oid, oid_size) == NULL) {
gnutls_assert();
- _gnutls_debug_log("Unsupported critical extension: %s\n", oid);
+ _gnutls_debug_log
+ ("Unsupported critical extension: %s\n", oid);
return 1;
}
}
@@ -157,16 +162,16 @@ check_if_ca(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
*/
ret =
- _gnutls_x509_get_signed_data(issuer->cert, &issuer->der, "tbsCertificate",
- &issuer_signed_data);
+ _gnutls_x509_get_signed_data(issuer->cert, &issuer->der,
+ "tbsCertificate", &issuer_signed_data);
if (ret < 0) {
gnutls_assert();
goto fail;
}
ret =
- _gnutls_x509_get_signed_data(cert->cert, &cert->der, "tbsCertificate",
- &cert_signed_data);
+ _gnutls_x509_get_signed_data(cert->cert, &cert->der,
+ "tbsCertificate", &cert_signed_data);
if (ret < 0) {
gnutls_assert();
goto fail;
@@ -197,8 +202,7 @@ check_if_ca(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
(cert_signed_data.data,
issuer_signed_data.data,
cert_signed_data.size) == 0)
- && (cert_signature.size ==
- issuer_signature.size)
+ && (cert_signature.size == issuer_signature.size)
&&
(memcmp
(cert_signature.data, issuer_signature.data,
@@ -217,7 +221,7 @@ check_if_ca(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
}
if (ca_status != 0 && pathlen != -1) {
- if ((unsigned) pathlen < *max_path)
+ if ((unsigned)pathlen < *max_path)
*max_path = pathlen;
}
@@ -249,7 +253,6 @@ check_if_ca(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
return result;
}
-
/* This function checks if cert's issuer is issuer.
* This does a straight (DER) compare of the issuer/subject DN fields in
* the given certificates, as well as check the authority key ID.
@@ -298,14 +301,13 @@ static unsigned is_issuer(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer)
goto cleanup;
}
- if (id1_size == id2_size
- && memcmp(id1, id2, id1_size) == 0)
+ if (id1_size == id2_size && memcmp(id1, id2, id1_size) == 0)
result = 1;
else
result = 0;
}
- cleanup:
+ cleanup:
return result;
}
@@ -327,8 +329,7 @@ static unsigned is_crl_issuer(gnutls_x509_crl_t crl, gnutls_x509_crt_t issuer)
*/
unsigned _gnutls_is_same_dn(gnutls_x509_crt_t cert1, gnutls_x509_crt_t cert2)
{
- if (_gnutls_x509_compare_raw_dn(&cert1->raw_dn, &cert2->raw_dn) !=
- 0)
+ if (_gnutls_x509_compare_raw_dn(&cert1->raw_dn, &cert2->raw_dn) != 0)
return 1;
else
return 0;
@@ -390,7 +391,8 @@ static unsigned int check_time_status(gnutls_x509_crt_t crt, time_t now)
return 0;
}
-unsigned _gnutls_is_broken_sig_allowed(const gnutls_sign_entry_st *se, unsigned int flags)
+unsigned _gnutls_is_broken_sig_allowed(const gnutls_sign_entry_st * se,
+ unsigned int flags)
{
gnutls_digest_algorithm_t hash;
@@ -407,7 +409,8 @@ unsigned _gnutls_is_broken_sig_allowed(const gnutls_sign_entry_st *se, unsigned
return 1;
hash = se->hash;
- if (hash == GNUTLS_DIG_SHA1 && (flags & GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1))
+ if (hash == GNUTLS_DIG_SHA1
+ && (flags & GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1))
return 1;
return 0;
@@ -460,12 +463,13 @@ unsigned _gnutls_is_broken_sig_allowed(const gnutls_sign_entry_st *se, unsigned
* be skipped
* @flags: the specified verification flags
*/
-static unsigned is_level_acceptable(
- gnutls_x509_crt_t crt, gnutls_x509_crt_t issuer,
- gnutls_sign_algorithm_t sigalg, bool trusted,
- unsigned flags)
+static unsigned is_level_acceptable(gnutls_x509_crt_t crt,
+ gnutls_x509_crt_t issuer,
+ gnutls_sign_algorithm_t sigalg,
+ bool trusted, unsigned flags)
{
- gnutls_certificate_verification_profiles_t profile = GNUTLS_VFLAGS_TO_PROFILE(flags);
+ gnutls_certificate_verification_profiles_t profile =
+ GNUTLS_VFLAGS_TO_PROFILE(flags);
int issuer_pkalg = 0, pkalg, ret;
unsigned bits = 0, issuer_bits = 0, sym_bits = 0;
gnutls_pk_params_st params;
@@ -491,48 +495,56 @@ static unsigned is_level_acceptable(
return gnutls_assert_val(0);
if (issuer) {
- issuer_pkalg = gnutls_x509_crt_get_pk_algorithm(issuer, &issuer_bits);
+ issuer_pkalg =
+ gnutls_x509_crt_get_pk_algorithm(issuer, &issuer_bits);
if (issuer_pkalg < 0)
return gnutls_assert_val(0);
}
switch (profile) {
- CASE_SEC_PARAM(GNUTLS_PROFILE_VERY_WEAK, GNUTLS_SEC_PARAM_VERY_WEAK);
+ CASE_SEC_PARAM(GNUTLS_PROFILE_VERY_WEAK,
+ GNUTLS_SEC_PARAM_VERY_WEAK);
CASE_SEC_PARAM(GNUTLS_PROFILE_LOW, GNUTLS_SEC_PARAM_LOW);
CASE_SEC_PARAM(GNUTLS_PROFILE_LEGACY, GNUTLS_SEC_PARAM_LEGACY);
CASE_SEC_PARAM(GNUTLS_PROFILE_MEDIUM, GNUTLS_SEC_PARAM_MEDIUM);
CASE_SEC_PARAM(GNUTLS_PROFILE_HIGH, GNUTLS_SEC_PARAM_HIGH);
CASE_SEC_PARAM(GNUTLS_PROFILE_ULTRA, GNUTLS_SEC_PARAM_ULTRA);
CASE_SEC_PARAM(GNUTLS_PROFILE_FUTURE, GNUTLS_SEC_PARAM_FUTURE);
- case GNUTLS_PROFILE_SUITEB128:
- case GNUTLS_PROFILE_SUITEB192: {
+ case GNUTLS_PROFILE_SUITEB128:
+ case GNUTLS_PROFILE_SUITEB192:{
unsigned curve, issuer_curve;
/* check suiteB params validity: rfc5759 */
if (gnutls_x509_crt_get_version(crt) != 3) {
- _gnutls_debug_log("SUITEB: certificate uses an unacceptable version number\n");
+ _gnutls_debug_log
+ ("SUITEB: certificate uses an unacceptable version number\n");
return gnutls_assert_val(0);
}
- if (sigalg != GNUTLS_SIGN_ECDSA_SHA256 && sigalg != GNUTLS_SIGN_ECDSA_SHA384) {
- _gnutls_debug_log("SUITEB: certificate is not signed using ECDSA-SHA256 or ECDSA-SHA384\n");
+ if (sigalg != GNUTLS_SIGN_ECDSA_SHA256
+ && sigalg != GNUTLS_SIGN_ECDSA_SHA384) {
+ _gnutls_debug_log
+ ("SUITEB: certificate is not signed using ECDSA-SHA256 or ECDSA-SHA384\n");
return gnutls_assert_val(0);
}
if (pkalg != GNUTLS_PK_EC) {
- _gnutls_debug_log("SUITEB: certificate does not contain ECC parameters\n");
+ _gnutls_debug_log
+ ("SUITEB: certificate does not contain ECC parameters\n");
return gnutls_assert_val(0);
}
if (issuer_pkalg != GNUTLS_PK_EC) {
- _gnutls_debug_log("SUITEB: certificate's issuer does not have ECC parameters\n");
+ _gnutls_debug_log
+ ("SUITEB: certificate's issuer does not have ECC parameters\n");
return gnutls_assert_val(0);
}
ret = _gnutls_x509_crt_get_mpis(crt, &params);
if (ret < 0) {
- _gnutls_debug_log("SUITEB: cannot read certificate params\n");
+ _gnutls_debug_log
+ ("SUITEB: cannot read certificate params\n");
return gnutls_assert_val(0);
}
@@ -540,54 +552,66 @@ static unsigned is_level_acceptable(
gnutls_pk_params_release(&params);
if (curve != GNUTLS_ECC_CURVE_SECP256R1 &&
- curve != GNUTLS_ECC_CURVE_SECP384R1) {
- _gnutls_debug_log("SUITEB: certificate's ECC params do not contain SECP256R1 or SECP384R1\n");
+ curve != GNUTLS_ECC_CURVE_SECP384R1) {
+ _gnutls_debug_log
+ ("SUITEB: certificate's ECC params do not contain SECP256R1 or SECP384R1\n");
return gnutls_assert_val(0);
}
if (profile == GNUTLS_PROFILE_SUITEB192) {
if (curve != GNUTLS_ECC_CURVE_SECP384R1) {
- _gnutls_debug_log("SUITEB192: certificate does not use SECP384R1\n");
+ _gnutls_debug_log
+ ("SUITEB192: certificate does not use SECP384R1\n");
return gnutls_assert_val(0);
}
}
if (issuer != NULL) {
if (gnutls_x509_crt_get_version(issuer) != 3) {
- _gnutls_debug_log("SUITEB: certificate's issuer uses an unacceptable version number\n");
+ _gnutls_debug_log
+ ("SUITEB: certificate's issuer uses an unacceptable version number\n");
return gnutls_assert_val(0);
}
- ret = _gnutls_x509_crt_get_mpis(issuer, &params);
+ ret =
+ _gnutls_x509_crt_get_mpis(issuer, &params);
if (ret < 0) {
- _gnutls_debug_log("SUITEB: cannot read certificate params\n");
+ _gnutls_debug_log
+ ("SUITEB: cannot read certificate params\n");
return gnutls_assert_val(0);
}
issuer_curve = params.curve;
gnutls_pk_params_release(&params);
- if (issuer_curve != GNUTLS_ECC_CURVE_SECP256R1 &&
- issuer_curve != GNUTLS_ECC_CURVE_SECP384R1) {
- _gnutls_debug_log("SUITEB: certificate's issuer ECC params do not contain SECP256R1 or SECP384R1\n");
+ if (issuer_curve != GNUTLS_ECC_CURVE_SECP256R1
+ && issuer_curve !=
+ GNUTLS_ECC_CURVE_SECP384R1) {
+ _gnutls_debug_log
+ ("SUITEB: certificate's issuer ECC params do not contain SECP256R1 or SECP384R1\n");
return gnutls_assert_val(0);
}
if (issuer_curve < curve) {
- _gnutls_debug_log("SUITEB: certificate's issuer ECC params are weaker than the certificate's\n");
+ _gnutls_debug_log
+ ("SUITEB: certificate's issuer ECC params are weaker than the certificate's\n");
return gnutls_assert_val(0);
}
- if (sigalg == GNUTLS_SIGN_ECDSA_SHA256 &&
- issuer_curve == GNUTLS_ECC_CURVE_SECP384R1) {
- _gnutls_debug_log("SUITEB: certificate is signed with ECDSA-SHA256 when using SECP384R1\n");
+ if (sigalg == GNUTLS_SIGN_ECDSA_SHA256 &&
+ issuer_curve ==
+ GNUTLS_ECC_CURVE_SECP384R1) {
+ _gnutls_debug_log
+ ("SUITEB: certificate is signed with ECDSA-SHA256 when using SECP384R1\n");
return gnutls_assert_val(0);
}
}
break;
- case GNUTLS_PROFILE_UNKNOWN: /* already checked; avoid compiler warnings */
- _gnutls_debug_log("An unknown profile (%d) was encountered\n", (int)profile);
+ case GNUTLS_PROFILE_UNKNOWN: /* already checked; avoid compiler warnings */
+ _gnutls_debug_log
+ ("An unknown profile (%d) was encountered\n",
+ (int)profile);
}
}
@@ -610,8 +634,7 @@ static int _gnutls_x509_verify_data(gnutls_sign_algorithm_t sign,
const gnutls_datum_t * data,
const gnutls_datum_t * signature,
gnutls_x509_crt_t cert,
- gnutls_x509_crt_t issuer,
- unsigned vflags);
+ gnutls_x509_crt_t issuer, unsigned vflags);
/*
* Verifies the given certificate against a certificate list of
@@ -630,8 +653,7 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
const gnutls_x509_crt_t * trusted_cas,
int tcas_size, unsigned int flags,
unsigned int *output,
- verify_state_st *vparams,
- unsigned end_cert)
+ verify_state_st * vparams, unsigned end_cert)
{
gnutls_datum_t cert_signed_data = { NULL, 0 };
gnutls_datum_t cert_signature = { NULL, 0 };
@@ -656,8 +678,8 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
issuer = find_issuer(cert, trusted_cas, tcas_size);
ret =
- _gnutls_x509_get_signed_data(cert->cert, &cert->der, "tbsCertificate",
- &cert_signed_data);
+ _gnutls_x509_get_signed_data(cert->cert, &cert->der,
+ "tbsCertificate", &cert_signed_data);
if (ret < 0) {
MARK_INVALID(0);
cert_signed_data.data = NULL;
@@ -689,42 +711,62 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
} else {
if (vparams->nc != NULL) {
/* append the issuer's constraints */
- ret = gnutls_x509_crt_get_name_constraints(issuer, vparams->nc,
- GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND, NULL);
- if (ret < 0 && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
- MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ ret =
+ gnutls_x509_crt_get_name_constraints(issuer,
+ vparams->nc,
+ GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND,
+ NULL);
+ if (ret < 0
+ && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
+ MARK_INVALID
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
goto nc_done;
}
/* only check name constraints in server certificates, not CAs */
if (end_cert != 0) {
- ret = gnutls_x509_name_constraints_check_crt(vparams->nc, GNUTLS_SAN_DNSNAME, cert);
+ ret =
+ gnutls_x509_name_constraints_check_crt
+ (vparams->nc, GNUTLS_SAN_DNSNAME, cert);
if (ret == 0) {
- MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ MARK_INVALID
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
goto nc_done;
}
- ret = gnutls_x509_name_constraints_check_crt(vparams->nc, GNUTLS_SAN_RFC822NAME, cert);
+ ret =
+ gnutls_x509_name_constraints_check_crt
+ (vparams->nc, GNUTLS_SAN_RFC822NAME, cert);
if (ret == 0) {
- MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ MARK_INVALID
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
goto nc_done;
}
- ret = gnutls_x509_name_constraints_check_crt(vparams->nc, GNUTLS_SAN_DN, cert);
+ ret =
+ gnutls_x509_name_constraints_check_crt
+ (vparams->nc, GNUTLS_SAN_DN, cert);
if (ret == 0) {
- MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ MARK_INVALID
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
goto nc_done;
}
- ret = gnutls_x509_name_constraints_check_crt(vparams->nc, GNUTLS_SAN_URI, cert);
+ ret =
+ gnutls_x509_name_constraints_check_crt
+ (vparams->nc, GNUTLS_SAN_URI, cert);
if (ret == 0) {
- MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ MARK_INVALID
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
goto nc_done;
}
- ret = gnutls_x509_name_constraints_check_crt(vparams->nc, GNUTLS_SAN_IPADDRESS, cert);
+ ret =
+ gnutls_x509_name_constraints_check_crt
+ (vparams->nc, GNUTLS_SAN_IPADDRESS, cert);
if (ret == 0) {
- MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ MARK_INVALID
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
goto nc_done;
}
}
@@ -733,15 +775,24 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
nc_done:
if (vparams->tls_feat != NULL) {
/* append the issuer's constraints */
- ret = gnutls_x509_crt_get_tlsfeatures(issuer, vparams->tls_feat, GNUTLS_EXT_FLAG_APPEND, NULL);
- if (ret < 0 && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
- MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ ret =
+ gnutls_x509_crt_get_tlsfeatures(issuer,
+ vparams->tls_feat,
+ GNUTLS_EXT_FLAG_APPEND,
+ NULL);
+ if (ret < 0
+ && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
+ MARK_INVALID
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
goto feat_done;
}
- ret = gnutls_x509_tlsfeatures_check_crt(vparams->tls_feat, cert);
+ ret =
+ gnutls_x509_tlsfeatures_check_crt(vparams->tls_feat,
+ cert);
if (ret == 0) {
- MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ MARK_INVALID
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
goto feat_done;
}
}
@@ -754,7 +805,8 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
} else if (!(flags & GNUTLS_VERIFY_DISABLE_CA_SIGN) &&
((flags & GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT)
|| issuer_version != 1)) {
- if (check_if_ca(cert, issuer, &vparams->max_path, flags) != 1) {
+ if (check_if_ca(cert, issuer, &vparams->max_path, flags)
+ != 1) {
MARK_INVALID(GNUTLS_CERT_SIGNER_NOT_CA);
}
@@ -764,7 +816,8 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
if (ret < 0) {
MARK_INVALID(0);
} else if (!(usage & GNUTLS_KEY_KEY_CERT_SIGN)) {
- MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ MARK_INVALID
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
}
}
}
@@ -772,18 +825,18 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
if (sigalg < 0) {
MARK_INVALID(0);
} else if (cert_signed_data.data != NULL &&
- cert_signature.data != NULL) {
+ cert_signature.data != NULL) {
ret =
_gnutls_x509_verify_data(sigalg,
&cert_signed_data,
&cert_signature,
- cert,
- issuer, flags);
+ cert, issuer, flags);
if (ret == GNUTLS_E_PK_SIG_VERIFY_FAILED) {
MARK_INVALID(GNUTLS_CERT_SIGNATURE_FAILURE);
} else if (ret == GNUTLS_E_CONSTRAINT_ERROR) {
- MARK_INVALID(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ MARK_INVALID
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
} else if (ret < 0) {
MARK_INVALID(0);
}
@@ -807,7 +860,8 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
}
if (sigalg >= 0 && se) {
- if (is_level_acceptable(cert, issuer, sigalg, false, flags) == 0) {
+ if (is_level_acceptable(cert, issuer, sigalg, false, flags) ==
+ 0) {
MARK_INVALID(GNUTLS_CERT_INSECURE_ALGORITHM);
}
@@ -815,9 +869,10 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
* used are secure. If the certificate is self signed it doesn't
* really matter.
*/
- if (_gnutls_sign_is_secure2(se, GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0 &&
- _gnutls_is_broken_sig_allowed(se, flags) == 0 &&
- is_issuer(cert, cert) == 0) {
+ if (_gnutls_sign_is_secure2
+ (se, GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0
+ && _gnutls_is_broken_sig_allowed(se, flags) == 0
+ && is_issuer(cert, cert) == 0) {
MARK_INVALID(GNUTLS_CERT_INSECURE_ALGORITHM);
}
}
@@ -842,7 +897,7 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
}
}
- cleanup:
+ cleanup:
if (output)
*output |= out;
@@ -874,8 +929,7 @@ static unsigned verify_crt(gnutls_x509_trust_list_t tlist,
* by the given issuer, and false (0) if not.
**/
unsigned
-gnutls_x509_crt_check_issuer(gnutls_x509_crt_t cert,
- gnutls_x509_crt_t issuer)
+gnutls_x509_crt_check_issuer(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer)
{
return is_issuer(cert, issuer);
}
@@ -897,13 +951,14 @@ unsigned check_ca_sanity(const gnutls_x509_crt_t issuer,
}
ret =
- _gnutls_x509_get_signature_algorithm(issuer->cert, "signatureAlgorithm");
+ _gnutls_x509_get_signature_algorithm(issuer->cert,
+ "signatureAlgorithm");
sigalg = ret;
/* we explicitly allow CAs which we do not support their self-algorithms
* to pass. */
if (ret >= 0 && !is_level_acceptable(issuer, NULL, sigalg, true, flags)) {
- status |= GNUTLS_CERT_INSECURE_ALGORITHM|GNUTLS_CERT_INVALID;
+ status |= GNUTLS_CERT_INSECURE_ALGORITHM | GNUTLS_CERT_INVALID;
}
return status;
@@ -970,7 +1025,8 @@ _gnutls_verify_crt_status(gnutls_x509_trust_list_t tlist,
if (_gnutls_check_if_same_key
(certificate_list[i], trusted_cas[j], i) != 0) {
- status |= check_ca_sanity(trusted_cas[j], now, flags);
+ status |=
+ check_ca_sanity(trusted_cas[j], now, flags);
if (func)
func(certificate_list[i],
@@ -1021,11 +1077,9 @@ _gnutls_verify_crt_status(gnutls_x509_trust_list_t tlist,
output = 0;
ret = verify_crt(tlist,
- certificate_list[clist_size - 1],
+ certificate_list[clist_size - 1],
trusted_cas, tcas_size, flags,
- &output,
- &vparams,
- clist_size==1?1:0);
+ &output, &vparams, clist_size == 1 ? 1 : 0);
if (ret != 1) {
/* if the last certificate in the certificate
* list is invalid, then the certificate is not
@@ -1043,14 +1097,16 @@ _gnutls_verify_crt_status(gnutls_x509_trust_list_t tlist,
output = 0;
if (purpose != NULL) {
- ret = _gnutls_check_key_purpose(certificate_list[i], purpose, 1);
+ ret =
+ _gnutls_check_key_purpose(certificate_list[i],
+ purpose, 1);
if (ret != 1) {
gnutls_assert();
status |= GNUTLS_CERT_INVALID;
status |= GNUTLS_CERT_PURPOSE_MISMATCH;
if (func)
- func(certificate_list[i-1],
+ func(certificate_list[i - 1],
certificate_list[i], NULL, status);
goto cleanup;
}
@@ -1066,9 +1122,7 @@ _gnutls_verify_crt_status(gnutls_x509_trust_list_t tlist,
if (!verify_crt(tlist,
certificate_list[i - 1],
&certificate_list[i], 1,
- flags, &output,
- &vparams,
- i==1?1:0)) {
+ flags, &output, &vparams, i == 1 ? 1 : 0)) {
gnutls_assert();
status |= output;
status |= GNUTLS_CERT_INVALID;
@@ -1076,19 +1130,19 @@ _gnutls_verify_crt_status(gnutls_x509_trust_list_t tlist,
}
}
-cleanup:
+ cleanup:
gnutls_x509_name_constraints_deinit(vparams.nc);
gnutls_x509_tlsfeatures_deinit(vparams.tls_feat);
return status;
}
-
#define PURPOSE_NSSGC "2.16.840.1.113730.4.1"
#define PURPOSE_VSGC "2.16.840.1.113733.1.8.1"
/* Returns true if the provided purpose is in accordance with the certificate.
*/
-unsigned _gnutls_check_key_purpose(gnutls_x509_crt_t cert, const char *purpose, unsigned no_any)
+unsigned _gnutls_check_key_purpose(gnutls_x509_crt_t cert, const char *purpose,
+ unsigned no_any)
{
char oid[MAX_OID_SIZE];
size_t oid_size;
@@ -1104,8 +1158,8 @@ unsigned _gnutls_check_key_purpose(gnutls_x509_crt_t cert, const char *purpose,
if (strcmp(purpose, GNUTLS_KP_TLS_WWW_SERVER) == 0) {
unsigned ca_status;
ret =
- gnutls_x509_crt_get_basic_constraints(cert, NULL, &ca_status,
- NULL);
+ gnutls_x509_crt_get_basic_constraints(cert, NULL,
+ &ca_status, NULL);
if (ret < 0)
ca_status = 0;
@@ -1113,11 +1167,13 @@ unsigned _gnutls_check_key_purpose(gnutls_x509_crt_t cert, const char *purpose,
check_obsolete_oids = 1;
}
- for (i=0;;i++) {
+ for (i = 0;; i++) {
oid_size = sizeof(oid);
- ret = gnutls_x509_crt_get_key_purpose_oid(cert, i, oid, &oid_size, &critical);
+ ret =
+ gnutls_x509_crt_get_key_purpose_oid(cert, i, oid, &oid_size,
+ &critical);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
- if (i==0) {
+ if (i == 0) {
/* no key purpose in certificate, assume ANY */
return 1;
} else {
@@ -1137,10 +1193,13 @@ unsigned _gnutls_check_key_purpose(gnutls_x509_crt_t cert, const char *purpose,
}
}
- if (strcmp(oid, purpose) == 0 || (no_any == 0 && strcmp(oid, GNUTLS_KP_ANY) == 0)) {
+ if (strcmp(oid, purpose) == 0
+ || (no_any == 0 && strcmp(oid, GNUTLS_KP_ANY) == 0)) {
return 1;
}
- _gnutls_debug_log("looking for key purpose '%s', but have '%s'\n", purpose, oid);
+ _gnutls_debug_log
+ ("looking for key purpose '%s', but have '%s'\n", purpose,
+ oid);
}
return 0;
}
@@ -1159,7 +1218,7 @@ unsigned _gnutls_check_key_purpose(gnutls_x509_crt_t cert, const char *purpose,
*/
unsigned int
_gnutls_pkcs11_verify_crt_status(gnutls_x509_trust_list_t tlist,
- const char* url,
+ const char *url,
const gnutls_x509_crt_t * certificate_list,
unsigned clist_size,
const char *purpose,
@@ -1169,7 +1228,7 @@ _gnutls_pkcs11_verify_crt_status(gnutls_x509_trust_list_t tlist,
int ret;
unsigned int status = 0, i;
gnutls_x509_crt_t issuer = NULL;
- gnutls_datum_t raw_issuer = {NULL, 0};
+ gnutls_datum_t raw_issuer = { NULL, 0 };
time_t now = gnutls_time(0);
if (clist_size > 1) {
@@ -1203,14 +1262,19 @@ _gnutls_pkcs11_verify_crt_status(gnutls_x509_trust_list_t tlist,
unsigned vflags;
gnutls_x509_crt_t trusted_cert;
- if (i == 0) /* in the end certificate do full comparison */
- vflags = GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE|
- GNUTLS_PKCS11_OBJ_FLAG_COMPARE|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED;
+ if (i == 0) /* in the end certificate do full comparison */
+ vflags =
+ GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE |
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED;
else
- vflags = GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE|
- GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED;
+ vflags =
+ GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE |
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED;
- if (_gnutls_pkcs11_crt_is_known (url, certificate_list[i], vflags, &trusted_cert) != 0) {
+ if (_gnutls_pkcs11_crt_is_known
+ (url, certificate_list[i], vflags, &trusted_cert) != 0) {
status |= check_ca_sanity(trusted_cert, now, flags);
@@ -1238,34 +1302,49 @@ _gnutls_pkcs11_verify_crt_status(gnutls_x509_trust_list_t tlist,
/* check for blocklists */
for (i = 0; i < clist_size; i++) {
- if (gnutls_pkcs11_crt_is_known (url, certificate_list[i],
- GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE|
- GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED) != 0) {
+ if (gnutls_pkcs11_crt_is_known(url, certificate_list[i],
+ GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED)
+ != 0) {
status |= GNUTLS_CERT_INVALID;
status |= GNUTLS_CERT_REVOKED;
if (func)
- func(certificate_list[i], certificate_list[i], NULL, status);
+ func(certificate_list[i], certificate_list[i],
+ NULL, status);
goto cleanup;
}
}
/* check against issuer */
- ret = gnutls_pkcs11_get_raw_issuer(url, certificate_list[clist_size - 1],
- &raw_issuer, GNUTLS_X509_FMT_DER,
- GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT|GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE);
+ ret =
+ gnutls_pkcs11_get_raw_issuer(url, certificate_list[clist_size - 1],
+ &raw_issuer, GNUTLS_X509_FMT_DER,
+ GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE);
if (ret < 0) {
gnutls_assert();
- if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE && clist_size > 2) {
+ if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE
+ && clist_size > 2) {
/* check if the last certificate in the chain is present
* in our trusted list, and if yes, verify against it. */
- ret = gnutls_pkcs11_crt_is_known(url, certificate_list[clist_size - 1],
- GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED|GNUTLS_PKCS11_OBJ_FLAG_COMPARE);
+ ret =
+ gnutls_pkcs11_crt_is_known(url,
+ certificate_list
+ [clist_size - 1],
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE);
if (ret != 0) {
return _gnutls_verify_crt_status(tlist,
- certificate_list, clist_size,
- &certificate_list[clist_size - 1],
- 1, flags, purpose, func);
+ certificate_list,
+ clist_size,
+ &certificate_list
+ [clist_size -
+ 1], 1, flags,
+ purpose, func);
}
}
@@ -1274,8 +1353,10 @@ _gnutls_pkcs11_verify_crt_status(gnutls_x509_trust_list_t tlist,
/* verify the certificate list against 0 trusted CAs in order
* to get, any additional flags from the certificate list (e.g.,
* insecure algorithms or expired */
- status |= _gnutls_verify_crt_status(tlist, certificate_list, clist_size,
- NULL, 0, flags, purpose, func);
+ status |=
+ _gnutls_verify_crt_status(tlist, certificate_list,
+ clist_size, NULL, 0, flags,
+ purpose, func);
goto cleanup;
}
@@ -1298,18 +1379,24 @@ _gnutls_pkcs11_verify_crt_status(gnutls_x509_trust_list_t tlist,
/* check if the raw issuer is distrusted (it can happen if
* the issuer is both in the trusted list and the distrusted)
*/
- if (gnutls_pkcs11_crt_is_known (url, issuer,
- GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE|
- GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED) != 0) {
+ if (gnutls_pkcs11_crt_is_known(url, issuer,
+ GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED)
+ != 0) {
status |= GNUTLS_CERT_INVALID;
- status |= GNUTLS_CERT_SIGNER_NOT_FOUND; /* if the signer is revoked - it is as if it doesn't exist */
+ status |= GNUTLS_CERT_SIGNER_NOT_FOUND; /* if the signer is revoked - it is as if it doesn't exist */
goto cleanup;
}
/* security modules that provide trust, bundle all certificates (of all purposes)
* together. In software that doesn't specify any purpose assume the default to
* be www-server. */
- ret = _gnutls_check_key_purpose(issuer, purpose==NULL?GNUTLS_KP_TLS_WWW_SERVER:purpose, 0);
+ ret =
+ _gnutls_check_key_purpose(issuer,
+ purpose ==
+ NULL ? GNUTLS_KP_TLS_WWW_SERVER : purpose,
+ 0);
if (ret != 1) {
gnutls_assert();
status |= GNUTLS_CERT_INVALID;
@@ -1320,7 +1407,7 @@ _gnutls_pkcs11_verify_crt_status(gnutls_x509_trust_list_t tlist,
status = _gnutls_verify_crt_status(tlist, certificate_list, clist_size,
&issuer, 1, flags, purpose, func);
-cleanup:
+ cleanup:
gnutls_free(raw_issuer.data);
if (issuer != NULL)
gnutls_x509_crt_deinit(issuer);
@@ -1333,7 +1420,7 @@ static int
_gnutls_x509_validate_sign_params(gnutls_pk_algorithm_t pk_algorithm,
asn1_node cert,
const char *name,
- gnutls_x509_spki_st *sig_params)
+ gnutls_x509_spki_st * sig_params)
{
/* The signature parameter validation is only needed for RSA-PSS */
if (pk_algorithm == GNUTLS_PK_RSA_PSS) {
@@ -1379,8 +1466,7 @@ _gnutls_x509_verify_data(gnutls_sign_algorithm_t sign,
const gnutls_datum_t * data,
const gnutls_datum_t * signature,
gnutls_x509_crt_t cert,
- gnutls_x509_crt_t issuer,
- unsigned vflags)
+ gnutls_x509_crt_t issuer, unsigned vflags)
{
gnutls_pk_params_st params;
gnutls_pk_algorithm_t issuer_pk;
@@ -1400,7 +1486,8 @@ _gnutls_x509_verify_data(gnutls_sign_algorithm_t sign,
se = _gnutls_sign_to_entry(sign);
if (se == NULL)
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
+ return
+ gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
if (cert != NULL) {
ret = _gnutls_x509_read_sign_params(cert->cert,
@@ -1422,16 +1509,16 @@ _gnutls_x509_verify_data(gnutls_sign_algorithm_t sign,
goto cleanup;
}
} else {
- memcpy(&sign_params, &params.spki,
- sizeof(gnutls_x509_spki_st));
+ memcpy(&sign_params, &params.spki, sizeof(gnutls_x509_spki_st));
sign_params.pk = se->pk;
if (sign_params.pk == GNUTLS_PK_RSA_PSS)
sign_params.rsa_pss_dig = se->hash;
}
- ret = pubkey_verify_data(se, hash_to_entry(se->hash), data, signature, &params,
- &sign_params, vflags);
+ ret =
+ pubkey_verify_data(se, hash_to_entry(se->hash), data, signature,
+ &params, &sign_params, vflags);
if (ret < 0) {
gnutls_assert();
}
@@ -1482,12 +1569,12 @@ gnutls_x509_crt_list_verify(const gnutls_x509_crt_t * cert_list,
{
unsigned i;
int ret;
- gnutls_x509_trust_list_t tlist;
+ gnutls_x509_trust_list_t tlist;
if (cert_list == NULL || cert_list_length == 0)
return GNUTLS_E_NO_CERTIFICATE_FOUND;
- gnutls_x509_trust_list_init(&tlist, 0);
+ gnutls_x509_trust_list_init(&tlist, 0);
/* Verify certificate
*/
@@ -1507,7 +1594,7 @@ gnutls_x509_crt_list_verify(const gnutls_x509_crt_t * cert_list,
}
}
- gnutls_x509_trust_list_deinit(tlist, 0);
+ gnutls_x509_trust_list_deinit(tlist, 0);
return 0;
}
@@ -1561,8 +1648,7 @@ gnutls_x509_crt_verify(gnutls_x509_crt_t cert,
* and false (0) if not.
**/
unsigned
-gnutls_x509_crl_check_issuer(gnutls_x509_crl_t crl,
- gnutls_x509_crt_t issuer)
+gnutls_x509_crl_check_issuer(gnutls_x509_crl_t crl, gnutls_x509_crt_t issuer)
{
return is_crl_issuer(crl, issuer);
}
@@ -1640,8 +1726,7 @@ gnutls_x509_crl_verify(gnutls_x509_crl_t crl,
}
result =
- _gnutls_x509_get_signature(crl->crl, "signature",
- &crl_signature);
+ _gnutls_x509_get_signature(crl->crl, "signature", &crl_signature);
if (result < 0) {
gnutls_assert();
if (verify)
@@ -1666,8 +1751,7 @@ gnutls_x509_crl_verify(gnutls_x509_crl_t crl,
gnutls_assert();
if (verify)
*verify |=
- GNUTLS_CERT_SIGNER_NOT_FOUND |
- GNUTLS_CERT_INVALID;
+ GNUTLS_CERT_SIGNER_NOT_FOUND | GNUTLS_CERT_INVALID;
} else {
if (!(flags & GNUTLS_VERIFY_DISABLE_CA_SIGN)) {
if (gnutls_x509_crt_get_ca_status(issuer, NULL) != 1) {
@@ -1698,8 +1782,7 @@ gnutls_x509_crl_verify(gnutls_x509_crl_t crl,
result =
_gnutls_x509_verify_data(sigalg,
&crl_signed_data, &crl_signature,
- NULL,
- issuer, flags);
+ NULL, issuer, flags);
if (result == GNUTLS_E_PK_SIG_VERIFY_FAILED) {
gnutls_assert();
/* error. ignore it */
@@ -1708,7 +1791,8 @@ gnutls_x509_crl_verify(gnutls_x509_crl_t crl,
result = 0;
} else if (result == GNUTLS_E_CONSTRAINT_ERROR) {
if (verify)
- *verify |= GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE;
+ *verify |=
+ GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE;
result = 0;
} else if (result < 0) {
gnutls_assert();
@@ -1716,7 +1800,7 @@ gnutls_x509_crl_verify(gnutls_x509_crl_t crl,
*verify |= GNUTLS_CERT_INVALID;
goto cleanup;
} else {
- result = 0; /* everything ok */
+ result = 0; /* everything ok */
}
}
@@ -1740,8 +1824,7 @@ gnutls_x509_crl_verify(gnutls_x509_crl_t crl,
if (nextu != -1 && nextu < now && verify)
*verify |= GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED;
-
- cleanup:
+ cleanup:
if (verify && *verify != 0)
*verify |= GNUTLS_CERT_INVALID;
diff --git a/lib/x509/virt-san.c b/lib/x509/virt-san.c
index e62bd4a038..71275dbca6 100644
--- a/lib/x509/virt-san.c
+++ b/lib/x509/virt-san.c
@@ -34,14 +34,17 @@ static
int san_othername_to_virtual(const char *oid, size_t size)
{
if (oid) {
- if ((unsigned) size == (sizeof(XMPP_OID)-1)
- && memcmp(oid, XMPP_OID, sizeof(XMPP_OID)-1) == 0)
+ if ((unsigned)size == (sizeof(XMPP_OID) - 1)
+ && memcmp(oid, XMPP_OID, sizeof(XMPP_OID) - 1) == 0)
return GNUTLS_SAN_OTHERNAME_XMPP;
- else if ((unsigned) size == (sizeof(KRB5_PRINCIPAL_OID)-1)
- && memcmp(oid, KRB5_PRINCIPAL_OID, sizeof(KRB5_PRINCIPAL_OID)-1) == 0)
+ else if ((unsigned)size == (sizeof(KRB5_PRINCIPAL_OID) - 1)
+ && memcmp(oid, KRB5_PRINCIPAL_OID,
+ sizeof(KRB5_PRINCIPAL_OID) - 1) == 0)
return GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL;
- else if ((unsigned) size == (sizeof(MSUSER_PRINCIPAL_NAME_OID)-1)
- && memcmp(oid, MSUSER_PRINCIPAL_NAME_OID, sizeof(MSUSER_PRINCIPAL_NAME_OID)-1) == 0)
+ else if ((unsigned)size ==
+ (sizeof(MSUSER_PRINCIPAL_NAME_OID) - 1)
+ && memcmp(oid, MSUSER_PRINCIPAL_NAME_OID,
+ sizeof(MSUSER_PRINCIPAL_NAME_OID) - 1) == 0)
return GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL;
}
@@ -49,24 +52,26 @@ int san_othername_to_virtual(const char *oid, size_t size)
}
static
-const char * virtual_to_othername_oid(unsigned type)
+const char *virtual_to_othername_oid(unsigned type)
{
- switch(type) {
- case GNUTLS_SAN_OTHERNAME_XMPP:
- return XMPP_OID;
- case GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL:
- return KRB5_PRINCIPAL_OID;
- case GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL:
- return MSUSER_PRINCIPAL_NAME_OID;
- default:
- return NULL;
+ switch (type) {
+ case GNUTLS_SAN_OTHERNAME_XMPP:
+ return XMPP_OID;
+ case GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL:
+ return KRB5_PRINCIPAL_OID;
+ case GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL:
+ return MSUSER_PRINCIPAL_NAME_OID;
+ default:
+ return NULL;
}
}
-int _gnutls_alt_name_assign_virt_type(struct name_st *name, unsigned type, gnutls_datum_t *san, const char *othername_oid, unsigned raw)
+int _gnutls_alt_name_assign_virt_type(struct name_st *name, unsigned type,
+ gnutls_datum_t * san,
+ const char *othername_oid, unsigned raw)
{
- gnutls_datum_t encoded = {NULL, 0};
- gnutls_datum_t xmpp = {NULL,0};
+ gnutls_datum_t encoded = { NULL, 0 };
+ gnutls_datum_t xmpp = { NULL, 0 };
int ret;
if (type < 1000) {
@@ -83,45 +88,50 @@ int _gnutls_alt_name_assign_virt_type(struct name_st *name, unsigned type, gnutl
name->othername_oid.data = NULL;
name->othername_oid.size = 0;
}
- } else { /* virtual types */
+ } else { /* virtual types */
const char *oid = virtual_to_othername_oid(type);
if (oid == NULL)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- switch(type) {
- case GNUTLS_SAN_OTHERNAME_XMPP:
+ switch (type) {
+ case GNUTLS_SAN_OTHERNAME_XMPP:
- ret = gnutls_idna_map((char*)san->data, san->size, &xmpp, 0);
- if (ret < 0)
- return gnutls_assert_val(ret);
+ ret =
+ gnutls_idna_map((char *)san->data, san->size, &xmpp,
+ 0);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
- ret = _gnutls_x509_encode_string(ASN1_ETYPE_UTF8_STRING,
- xmpp.data, xmpp.size, &encoded);
+ ret = _gnutls_x509_encode_string(ASN1_ETYPE_UTF8_STRING,
+ xmpp.data, xmpp.size,
+ &encoded);
- gnutls_free(xmpp.data);
- if (ret < 0)
- return gnutls_assert_val(ret);
+ gnutls_free(xmpp.data);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
- name->type = GNUTLS_SAN_OTHERNAME;
- name->san.data = encoded.data;
- name->san.size = encoded.size;
- name->othername_oid.data = (void*)gnutls_strdup(oid);
- name->othername_oid.size = strlen(oid);
- break;
+ name->type = GNUTLS_SAN_OTHERNAME;
+ name->san.data = encoded.data;
+ name->san.size = encoded.size;
+ name->othername_oid.data = (void *)gnutls_strdup(oid);
+ name->othername_oid.size = strlen(oid);
+ break;
- case GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL:
- ret = _gnutls_krb5_principal_to_der((char*)san->data, &name->san);
- if (ret < 0)
- return gnutls_assert_val(ret);
+ case GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL:
+ ret =
+ _gnutls_krb5_principal_to_der((char *)san->data,
+ &name->san);
+ if (ret < 0)
+ return gnutls_assert_val(ret);
- name->othername_oid.data = (void*)gnutls_strdup(oid);
- name->othername_oid.size = strlen(oid);
- name->type = GNUTLS_SAN_OTHERNAME;
- break;
+ name->othername_oid.data = (void *)gnutls_strdup(oid);
+ name->othername_oid.size = strlen(oid);
+ name->type = GNUTLS_SAN_OTHERNAME;
+ break;
- default:
- return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
+ default:
+ return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
}
gnutls_free(san->data);
@@ -144,10 +154,10 @@ int _gnutls_alt_name_assign_virt_type(struct name_st *name, unsigned type, gnutl
*
* Since: 3.3.8
**/
-int gnutls_x509_othername_to_virtual(const char *oid,
- const gnutls_datum_t *othername,
+int gnutls_x509_othername_to_virtual(const char *oid,
+ const gnutls_datum_t * othername,
unsigned int *virt_type,
- gnutls_datum_t *virt)
+ gnutls_datum_t * virt)
{
int ret;
unsigned type;
@@ -159,33 +169,33 @@ int gnutls_x509_othername_to_virtual(const char *oid,
if (virt_type)
*virt_type = type;
- switch(type) {
- case GNUTLS_SAN_OTHERNAME_XMPP:
- ret = _gnutls_x509_decode_string
- (ASN1_ETYPE_UTF8_STRING, othername->data,
- othername->size, virt, 0);
- if (ret < 0) {
- gnutls_assert();
- return ret;
- }
- return 0;
- case GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL:
- ret = _gnutls_krb5_der_to_principal(othername, virt);
- if (ret < 0) {
- gnutls_assert();
- return ret;
- }
- return 0;
- case GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL:
- ret = _gnutls_x509_decode_string
- (ASN1_ETYPE_UTF8_STRING, othername->data,
- othername->size, virt, 0);
- if (ret < 0) {
- gnutls_assert();
- return ret;
- }
- return 0;
- default:
- return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
+ switch (type) {
+ case GNUTLS_SAN_OTHERNAME_XMPP:
+ ret = _gnutls_x509_decode_string
+ (ASN1_ETYPE_UTF8_STRING, othername->data,
+ othername->size, virt, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ return ret;
+ }
+ return 0;
+ case GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL:
+ ret = _gnutls_krb5_der_to_principal(othername, virt);
+ if (ret < 0) {
+ gnutls_assert();
+ return ret;
+ }
+ return 0;
+ case GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL:
+ ret = _gnutls_x509_decode_string
+ (ASN1_ETYPE_UTF8_STRING, othername->data,
+ othername->size, virt, 0);
+ if (ret < 0) {
+ gnutls_assert();
+ return ret;
+ }
+ return 0;
+ default:
+ return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
}
}
diff --git a/lib/x509/virt-san.h b/lib/x509/virt-san.h
index 44b6fe65c5..040b491125 100644
--- a/lib/x509/virt-san.h
+++ b/lib/x509/virt-san.h
@@ -20,10 +20,12 @@
*/
#ifndef GNUTLS_LIB_X509_VIRT_SAN_H
-#define GNUTLS_LIB_X509_VIRT_SAN_H
+# define GNUTLS_LIB_X509_VIRT_SAN_H
-#include "x509_ext_int.h"
+# include "x509_ext_int.h"
-int _gnutls_alt_name_assign_virt_type(struct name_st *name, unsigned type, gnutls_datum_t *san, const char *othername_oid, unsigned raw);
+int _gnutls_alt_name_assign_virt_type(struct name_st *name, unsigned type,
+ gnutls_datum_t * san,
+ const char *othername_oid, unsigned raw);
-#endif /* GNUTLS_LIB_X509_VIRT_SAN_H */
+#endif /* GNUTLS_LIB_X509_VIRT_SAN_H */
diff --git a/lib/x509/x509.c b/lib/x509/x509.c
index 0c03ec635b..a2f84b1cb3 100644
--- a/lib/x509/x509.c
+++ b/lib/x509/x509.c
@@ -53,8 +53,7 @@ static int crt_reinit(gnutls_x509_crt_t crt)
asn1_delete_structure(&crt->cert);
result = asn1_create_element(_gnutls_get_pkix(),
- "PKIX1.Certificate",
- &crt->cert);
+ "PKIX1.Certificate", &crt->cert);
if (result != ASN1_SUCCESS) {
result = _gnutls_asn2err(result);
gnutls_assert();
@@ -129,7 +128,8 @@ unsigned gnutls_x509_crt_equals(gnutls_x509_crt_t cert1,
gnutls_free(tmp2.data);
} else {
if ((cert1->der.size == cert2->der.size) &&
- (memcmp(cert1->der.data, cert2->der.data, cert1->der.size) == 0))
+ (memcmp(cert1->der.data, cert2->der.data, cert1->der.size)
+ == 0))
result = 1;
else
result = 0;
@@ -151,8 +151,7 @@ unsigned gnutls_x509_crt_equals(gnutls_x509_crt_t cert1,
* Since: 3.5.0
**/
unsigned
-gnutls_x509_crt_equals2(gnutls_x509_crt_t cert1,
- const gnutls_datum_t * der)
+gnutls_x509_crt_equals2(gnutls_x509_crt_t cert1, const gnutls_datum_t * der)
{
bool result;
@@ -204,8 +203,7 @@ int gnutls_x509_crt_init(gnutls_x509_crt_t * cert)
*cert = NULL;
FAIL_IF_LIB_ERROR;
- tmp =
- gnutls_calloc(1, sizeof(gnutls_x509_crt_int));
+ tmp = gnutls_calloc(1, sizeof(gnutls_x509_crt_int));
if (!tmp)
return GNUTLS_E_MEMORY_ERROR;
@@ -261,8 +259,7 @@ int _gnutls_x509_crt_cpy(gnutls_x509_crt_t dest, gnutls_x509_crt_t src)
unsigned dealloc = 0;
if (src->der.size == 0 || src->modified) {
- ret =
- gnutls_x509_crt_export2(src, GNUTLS_X509_FMT_DER, &tmp);
+ ret = gnutls_x509_crt_export2(src, GNUTLS_X509_FMT_DER, &tmp);
if (ret < 0)
return gnutls_assert_val(ret);
dealloc = 1;
@@ -307,33 +304,40 @@ static int compare_sig_algorithm(gnutls_x509_crt_t cert)
int ret, len1, len2, result;
char oid1[MAX_OID_SIZE];
char oid2[MAX_OID_SIZE];
- gnutls_datum_t sp1 = {NULL, 0};
- gnutls_datum_t sp2 = {NULL, 0};
+ gnutls_datum_t sp1 = { NULL, 0 };
+ gnutls_datum_t sp2 = { NULL, 0 };
unsigned empty1 = 0, empty2 = 0;
len1 = sizeof(oid1);
- result = asn1_read_value(cert->cert, "signatureAlgorithm.algorithm", oid1, &len1);
+ result =
+ asn1_read_value(cert->cert, "signatureAlgorithm.algorithm", oid1,
+ &len1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
len2 = sizeof(oid2);
- result = asn1_read_value(cert->cert, "tbsCertificate.signature.algorithm", oid2, &len2);
+ result =
+ asn1_read_value(cert->cert, "tbsCertificate.signature.algorithm",
+ oid2, &len2);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
if (len1 != len2 || memcmp(oid1, oid2, len1) != 0) {
- _gnutls_debug_log("signatureAlgorithm.algorithm differs from tbsCertificate.signature.algorithm: %s, %s\n",
- oid1, oid2);
+ _gnutls_debug_log
+ ("signatureAlgorithm.algorithm differs from tbsCertificate.signature.algorithm: %s, %s\n",
+ oid1, oid2);
gnutls_assert();
return GNUTLS_E_CERTIFICATE_ERROR;
}
/* compare the parameters */
- ret = _gnutls_x509_read_value(cert->cert, "signatureAlgorithm.parameters", &sp1);
+ ret =
+ _gnutls_x509_read_value(cert->cert, "signatureAlgorithm.parameters",
+ &sp1);
if (ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND) {
empty1 = 1;
} else if (ret < 0) {
@@ -341,7 +345,10 @@ static int compare_sig_algorithm(gnutls_x509_crt_t cert)
return ret;
}
- ret = _gnutls_x509_read_value(cert->cert, "tbsCertificate.signature.parameters", &sp2);
+ ret =
+ _gnutls_x509_read_value(cert->cert,
+ "tbsCertificate.signature.parameters",
+ &sp2);
if (ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND) {
empty2 = 1;
} else if (ret < 0) {
@@ -377,29 +384,35 @@ static int compare_sig_algorithm(gnutls_x509_crt_t cert)
static int cache_alt_names(gnutls_x509_crt_t cert)
{
- gnutls_datum_t tmpder = {NULL, 0};
+ gnutls_datum_t tmpder = { NULL, 0 };
int ret;
/* pre-parse subject alt name */
- ret = _gnutls_x509_crt_get_extension(cert, "2.5.29.17", 0, &tmpder, NULL);
+ ret =
+ _gnutls_x509_crt_get_extension(cert, "2.5.29.17", 0, &tmpder, NULL);
if (ret < 0 && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
gnutls_free(tmpder.data);
return gnutls_assert_val(ret);
}
if (ret >= 0) {
- ret = gnutls_x509_ext_import_subject_alt_names(&tmpder, cert->san, 0);
+ ret =
+ gnutls_x509_ext_import_subject_alt_names(&tmpder, cert->san,
+ 0);
gnutls_free(tmpder.data);
if (ret < 0)
return gnutls_assert_val(ret);
}
- ret = _gnutls_x509_crt_get_extension(cert, "2.5.29.18", 0, &tmpder, NULL);
+ ret =
+ _gnutls_x509_crt_get_extension(cert, "2.5.29.18", 0, &tmpder, NULL);
if (ret < 0 && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
return gnutls_assert_val(ret);
if (ret >= 0) {
- ret = gnutls_x509_ext_import_subject_alt_names(&tmpder, cert->ian, 0);
+ ret =
+ gnutls_x509_ext_import_subject_alt_names(&tmpder, cert->ian,
+ 0);
gnutls_free(tmpder.data);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -410,7 +423,7 @@ static int cache_alt_names(gnutls_x509_crt_t cert)
static bool hcomparator(const void *v1, const void *v2)
{
- return (strcmp(v1, v2)==0);
+ return (strcmp(v1, v2) == 0);
}
static size_t hhasher(const void *entry, size_t n)
@@ -439,7 +452,8 @@ static bool has_valid_serial(gnutls_x509_crt_t cert)
}
if (serial_size > 20) {
- _gnutls_debug_log("error: serial number value is longer than 20 octets\n");
+ _gnutls_debug_log
+ ("error: serial number value is longer than 20 octets\n");
return false;
}
@@ -465,14 +479,14 @@ static bool has_valid_serial(gnutls_x509_crt_t cert)
}
/* Check if extension can be successfully parsed */
-static bool is_valid_extension(const char *oid, gnutls_datum_t *der)
+static bool is_valid_extension(const char *oid, gnutls_datum_t * der)
{
int err = 0, i;
unsigned u;
size_t sz;
time_t t1, t2;
char *s1 = NULL, *s2 = NULL;
- gnutls_datum_t datum = {NULL, 0};
+ gnutls_datum_t datum = { NULL, 0 };
if (!strcmp(oid, GNUTLS_X509EXT_OID_BASIC_CONSTRAINTS)) {
err = gnutls_x509_ext_import_basic_constraints(der, &u, &i);
@@ -495,7 +509,9 @@ static bool is_valid_extension(const char *oid, gnutls_datum_t *der)
} else if (!strcmp(oid, GNUTLS_X509EXT_OID_KEY_USAGE)) {
err = gnutls_x509_ext_import_key_usage(der, &u);
} else if (!strcmp(oid, GNUTLS_X509EXT_OID_PRIVATE_KEY_USAGE_PERIOD)) {
- err = gnutls_x509_ext_import_private_key_usage_period(der, &t1, &t2);
+ err =
+ gnutls_x509_ext_import_private_key_usage_period(der, &t1,
+ &t2);
} else if (!strcmp(oid, GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE)) {
gnutls_x509_key_purposes_t purposes;
if (gnutls_x509_key_purpose_init(&purposes) < 0)
@@ -552,7 +568,7 @@ static bool is_valid_extension(const char *oid, gnutls_datum_t *der)
return err == 0;
}
-#endif /* STRICT_X509 */
+#endif /* STRICT_X509 */
int _gnutls_check_cert_sanity(gnutls_x509_crt_t cert)
{
@@ -574,23 +590,34 @@ int _gnutls_check_cert_sanity(gnutls_x509_crt_t cert)
#ifdef STRICT_X509
/* enforce upper bound on certificate version (RFC5280 compliant) */
if (version > 3) {
- _gnutls_debug_log("error: invalid certificate version %d\n", version);
+ _gnutls_debug_log("error: invalid certificate version %d\n",
+ version);
return gnutls_assert_val(GNUTLS_E_X509_CERTIFICATE_ERROR);
}
#endif
if (version < 3) {
if (!cert->modified) {
- ret = _gnutls_x509_get_raw_field2(cert->cert, &cert->der,
- "tbsCertificate.extensions", &exts);
+ ret =
+ _gnutls_x509_get_raw_field2(cert->cert, &cert->der,
+ "tbsCertificate.extensions",
+ &exts);
if (ret >= 0 && exts.size > 0) {
- _gnutls_debug_log("error: extensions present in certificate with version %d\n", version);
- return gnutls_assert_val(GNUTLS_E_X509_CERTIFICATE_ERROR);
+ _gnutls_debug_log
+ ("error: extensions present in certificate with version %d\n",
+ version);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_X509_CERTIFICATE_ERROR);
}
} else {
if (cert->use_extensions) {
- _gnutls_debug_log("error: extensions set in certificate with version %d\n", version);
- return gnutls_assert_val(GNUTLS_E_X509_CERTIFICATE_ERROR);
+ _gnutls_debug_log
+ ("error: extensions set in certificate with version %d\n",
+ version);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_X509_CERTIFICATE_ERROR);
}
}
} else {
@@ -600,15 +627,21 @@ int _gnutls_check_cert_sanity(gnutls_x509_crt_t cert)
size_t oid_size;
char *o;
- htable = hash_initialize(16, NULL, hhasher, hcomparator, gnutls_free);
+ htable =
+ hash_initialize(16, NULL, hhasher, hcomparator,
+ gnutls_free);
if (htable == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
- for (i=0;;i++) {
+ for (i = 0;; i++) {
oid_size = sizeof(oid);
- ret = gnutls_x509_crt_get_extension_info(cert, i, oid, &oid_size, &critical);
+ ret =
+ gnutls_x509_crt_get_extension_info(cert, i, oid,
+ &oid_size,
+ &critical);
if (ret < 0) {
- if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ if (ret ==
+ GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
gnutls_assert();
goto cleanup;
@@ -627,20 +660,28 @@ int _gnutls_check_cert_sanity(gnutls_x509_crt_t cert)
} else if (ret == 0) {
/* duplicate */
gnutls_free(o);
- _gnutls_debug_log("error: duplicate extension (%s) detected\n", oid);
- ret = gnutls_assert_val(GNUTLS_E_X509_DUPLICATE_EXTENSION);
+ _gnutls_debug_log
+ ("error: duplicate extension (%s) detected\n",
+ oid);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_X509_DUPLICATE_EXTENSION);
goto cleanup;
}
#ifdef STRICT_X509
gnutls_datum_t der = { NULL, 0 };
- ret = gnutls_x509_crt_get_extension_data2(cert, i, &der);
+ ret =
+ gnutls_x509_crt_get_extension_data2(cert, i, &der);
if (ret < 0)
continue;
if (critical && !is_valid_extension(oid, &der)) {
_gnutls_free_datum(&der);
- _gnutls_debug_log("error: could not parse extension (%s)\n");
- return gnutls_assert_val(GNUTLS_E_X509_CERTIFICATE_ERROR);
+ _gnutls_debug_log
+ ("error: could not parse extension (%s)\n");
+ return
+ gnutls_assert_val
+ (GNUTLS_E_X509_CERTIFICATE_ERROR);
}
_gnutls_free_datum(&der);
#endif
@@ -657,16 +698,22 @@ int _gnutls_check_cert_sanity(gnutls_x509_crt_t cert)
id_size = sizeof(id);
ret = gnutls_x509_crt_get_subject_unique_id(cert, id, &id_size);
if (ret >= 0 || ret == GNUTLS_E_SHORT_MEMORY_BUFFER) {
- _gnutls_debug_log("error: subjectUniqueID present in certificate with version %d\n", version);
- ret = gnutls_assert_val(GNUTLS_E_X509_CERTIFICATE_ERROR);
+ _gnutls_debug_log
+ ("error: subjectUniqueID present in certificate with version %d\n",
+ version);
+ ret =
+ gnutls_assert_val(GNUTLS_E_X509_CERTIFICATE_ERROR);
goto cleanup;
}
id_size = sizeof(id);
ret = gnutls_x509_crt_get_issuer_unique_id(cert, id, &id_size);
if (ret >= 0 || ret == GNUTLS_E_SHORT_MEMORY_BUFFER) {
- _gnutls_debug_log("error: subjectUniqueID present in certificate with version %d\n", version);
- ret = gnutls_assert_val(GNUTLS_E_X509_CERTIFICATE_ERROR);
+ _gnutls_debug_log
+ ("error: subjectUniqueID present in certificate with version %d\n",
+ version);
+ ret =
+ gnutls_assert_val(GNUTLS_E_X509_CERTIFICATE_ERROR);
goto cleanup;
}
}
@@ -680,7 +727,8 @@ int _gnutls_check_cert_sanity(gnutls_x509_crt_t cert)
if (gnutls_x509_crt_get_expiration_time(cert) == -1 ||
gnutls_x509_crt_get_activation_time(cert) == -1) {
- _gnutls_debug_log("error: invalid expiration or activation time in certificate\n");
+ _gnutls_debug_log
+ ("error: invalid expiration or activation time in certificate\n");
ret = gnutls_assert_val(GNUTLS_E_CERTIFICATE_TIME_ERROR);
goto cleanup;
}
@@ -764,7 +812,8 @@ gnutls_x509_crt_import(gnutls_x509_crt_t cert,
cert->modified = 0;
result =
- _asn1_strict_der_decode(&cert->cert, cert->der.data, cert->der.size, NULL);
+ _asn1_strict_der_decode(&cert->cert, cert->der.data, cert->der.size,
+ NULL);
if (result != ASN1_SUCCESS) {
result = _gnutls_asn2err(result);
gnutls_assert();
@@ -779,24 +828,24 @@ gnutls_x509_crt_import(gnutls_x509_crt_t cert,
/* The following do not allocate but rather point to DER data */
result = _gnutls_x509_get_raw_field2(cert->cert, &cert->der,
- "tbsCertificate.issuer.rdnSequence",
- &cert->raw_issuer_dn);
+ "tbsCertificate.issuer.rdnSequence",
+ &cert->raw_issuer_dn);
if (result < 0) {
gnutls_assert();
goto cleanup;
}
result = _gnutls_x509_get_raw_field2(cert->cert, &cert->der,
- "tbsCertificate.subject.rdnSequence",
- &cert->raw_dn);
+ "tbsCertificate.subject.rdnSequence",
+ &cert->raw_dn);
if (result < 0) {
gnutls_assert();
goto cleanup;
}
result = _gnutls_x509_get_raw_field2(cert->cert, &cert->der,
- "tbsCertificate.subjectPublicKeyInfo",
- &cert->raw_spki);
+ "tbsCertificate.subjectPublicKeyInfo",
+ &cert->raw_spki);
if (result < 0) {
gnutls_assert();
goto cleanup;
@@ -820,12 +869,11 @@ gnutls_x509_crt_import(gnutls_x509_crt_t cert,
return 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(&cert->der);
return result;
}
-
/**
* gnutls_x509_crt_get_issuer_dn:
* @cert: should contain a #gnutls_x509_crt_t type
@@ -849,7 +897,7 @@ gnutls_x509_crt_import(gnutls_x509_crt_t cert,
**/
int
gnutls_x509_crt_get_issuer_dn(gnutls_x509_crt_t cert, char *buf,
- size_t * buf_size)
+ size_t *buf_size)
{
if (cert == NULL) {
gnutls_assert();
@@ -879,8 +927,7 @@ gnutls_x509_crt_get_issuer_dn(gnutls_x509_crt_t cert, char *buf,
*
* Since: 3.1.10
**/
-int
-gnutls_x509_crt_get_issuer_dn2(gnutls_x509_crt_t cert, gnutls_datum_t * dn)
+int gnutls_x509_crt_get_issuer_dn2(gnutls_x509_crt_t cert, gnutls_datum_t * dn)
{
if (cert == NULL) {
gnutls_assert();
@@ -913,7 +960,8 @@ gnutls_x509_crt_get_issuer_dn2(gnutls_x509_crt_t cert, gnutls_datum_t * dn)
* Since: 3.5.7
**/
int
-gnutls_x509_crt_get_issuer_dn3(gnutls_x509_crt_t cert, gnutls_datum_t *dn, unsigned flags)
+gnutls_x509_crt_get_issuer_dn3(gnutls_x509_crt_t cert, gnutls_datum_t * dn,
+ unsigned flags)
{
if (cert == NULL) {
gnutls_assert();
@@ -958,7 +1006,7 @@ int
gnutls_x509_crt_get_issuer_dn_by_oid(gnutls_x509_crt_t cert,
const char *oid, unsigned indx,
unsigned int raw_flag, void *buf,
- size_t * buf_size)
+ size_t *buf_size)
{
gnutls_datum_t td;
int ret;
@@ -998,7 +1046,7 @@ gnutls_x509_crt_get_issuer_dn_by_oid(gnutls_x509_crt_t cert,
**/
int
gnutls_x509_crt_get_issuer_dn_oid(gnutls_x509_crt_t cert,
- unsigned indx, void *oid, size_t * oid_size)
+ unsigned indx, void *oid, size_t *oid_size)
{
if (cert == NULL) {
gnutls_assert();
@@ -1032,9 +1080,7 @@ gnutls_x509_crt_get_issuer_dn_oid(gnutls_x509_crt_t cert,
* with the required size. %GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE if
* the DN does not exist, or another error value on error. On success 0 is returned.
**/
-int
-gnutls_x509_crt_get_dn(gnutls_x509_crt_t cert, char *buf,
- size_t * buf_size)
+int gnutls_x509_crt_get_dn(gnutls_x509_crt_t cert, char *buf, size_t *buf_size)
{
if (cert == NULL) {
gnutls_assert();
@@ -1096,7 +1142,8 @@ int gnutls_x509_crt_get_dn2(gnutls_x509_crt_t cert, gnutls_datum_t * dn)
*
* Since: 3.5.7
**/
-int gnutls_x509_crt_get_dn3(gnutls_x509_crt_t cert, gnutls_datum_t *dn, unsigned flags)
+int gnutls_x509_crt_get_dn3(gnutls_x509_crt_t cert, gnutls_datum_t * dn,
+ unsigned flags)
{
if (cert == NULL) {
gnutls_assert();
@@ -1140,7 +1187,7 @@ int gnutls_x509_crt_get_dn3(gnutls_x509_crt_t cert, gnutls_datum_t *dn, unsigned
int
gnutls_x509_crt_get_dn_by_oid(gnutls_x509_crt_t cert, const char *oid,
unsigned indx, unsigned int raw_flag,
- void *buf, size_t * buf_size)
+ void *buf, size_t *buf_size)
{
gnutls_datum_t td;
int ret;
@@ -1180,7 +1227,7 @@ gnutls_x509_crt_get_dn_by_oid(gnutls_x509_crt_t cert, const char *oid,
**/
int
gnutls_x509_crt_get_dn_oid(gnutls_x509_crt_t cert,
- unsigned indx, void *oid, size_t * oid_size)
+ unsigned indx, void *oid, size_t *oid_size)
{
if (cert == NULL) {
gnutls_assert();
@@ -1209,7 +1256,7 @@ gnutls_x509_crt_get_dn_oid(gnutls_x509_crt_t cert,
int gnutls_x509_crt_get_signature_algorithm(gnutls_x509_crt_t cert)
{
return map_errs_to_zero(_gnutls_x509_get_signature_algorithm(cert->cert,
- "signatureAlgorithm"));
+ "signatureAlgorithm"));
}
/**
@@ -1227,23 +1274,26 @@ int gnutls_x509_crt_get_signature_algorithm(gnutls_x509_crt_t cert)
*
* Since: 3.5.0
**/
-int gnutls_x509_crt_get_signature_oid(gnutls_x509_crt_t cert, char *oid, size_t *oid_size)
+int gnutls_x509_crt_get_signature_oid(gnutls_x509_crt_t cert, char *oid,
+ size_t *oid_size)
{
char str[MAX_OID_SIZE];
int len, result, ret;
gnutls_datum_t out;
len = sizeof(str);
- result = asn1_read_value(cert->cert, "signatureAlgorithm.algorithm", str, &len);
+ result =
+ asn1_read_value(cert->cert, "signatureAlgorithm.algorithm", str,
+ &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
- out.data = (void*)str;
+ out.data = (void *)str;
out.size = len;
- ret = _gnutls_copy_string(&out, (void*)oid, oid_size);
+ ret = _gnutls_copy_string(&out, (void *)oid, oid_size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1267,23 +1317,27 @@ int gnutls_x509_crt_get_signature_oid(gnutls_x509_crt_t cert, char *oid, size_t
*
* Since: 3.5.0
**/
-int gnutls_x509_crt_get_pk_oid(gnutls_x509_crt_t cert, char *oid, size_t *oid_size)
+int gnutls_x509_crt_get_pk_oid(gnutls_x509_crt_t cert, char *oid,
+ size_t *oid_size)
{
char str[MAX_OID_SIZE];
int len, result, ret;
gnutls_datum_t out;
len = sizeof(str);
- result = asn1_read_value(cert->cert, "tbsCertificate.subjectPublicKeyInfo.algorithm.algorithm", str, &len);
+ result =
+ asn1_read_value(cert->cert,
+ "tbsCertificate.subjectPublicKeyInfo.algorithm.algorithm",
+ str, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
- out.data = (void*)str;
+ out.data = (void *)str;
out.size = len;
- ret = _gnutls_copy_string(&out, (void*)oid, oid_size);
+ ret = _gnutls_copy_string(&out, (void *)oid, oid_size);
if (ret < 0) {
gnutls_assert();
return ret;
@@ -1305,9 +1359,9 @@ int gnutls_x509_crt_get_pk_oid(gnutls_x509_crt_t cert, char *oid, size_t *oid_si
**/
int
gnutls_x509_crt_get_signature(gnutls_x509_crt_t cert,
- char *sig, size_t * sig_size)
+ char *sig, size_t *sig_size)
{
- gnutls_datum_t dsig = {NULL, 0};
+ gnutls_datum_t dsig = { NULL, 0 };
int ret;
if (cert == NULL)
@@ -1317,7 +1371,7 @@ gnutls_x509_crt_get_signature(gnutls_x509_crt_t cert,
if (ret < 0)
return gnutls_assert_val(ret);
- ret = _gnutls_copy_data(&dsig, (uint8_t*)sig, sig_size);
+ ret = _gnutls_copy_data(&dsig, (uint8_t *) sig, sig_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1364,8 +1418,7 @@ time_t gnutls_x509_crt_get_activation_time(gnutls_x509_crt_t cert)
}
return _gnutls_x509_get_time(cert->cert,
- "tbsCertificate.validity.notBefore",
- 0);
+ "tbsCertificate.validity.notBefore", 0);
}
/**
@@ -1385,8 +1438,7 @@ time_t gnutls_x509_crt_get_expiration_time(gnutls_x509_crt_t cert)
}
return _gnutls_x509_get_time(cert->cert,
- "tbsCertificate.validity.notAfter",
- 0);
+ "tbsCertificate.validity.notAfter", 0);
}
/**
@@ -1424,11 +1476,11 @@ gnutls_x509_crt_get_private_key_usage_period(gnutls_x509_crt_t cert,
return gnutls_assert_val(ret);
if (der.size == 0 || der.data == NULL)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
- ret = gnutls_x509_ext_import_private_key_usage_period(&der, activation, expiration);
+ ret =
+ gnutls_x509_ext_import_private_key_usage_period(&der, activation,
+ expiration);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1436,13 +1488,12 @@ gnutls_x509_crt_get_private_key_usage_period(gnutls_x509_crt_t cert,
ret = 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(&der);
return ret;
}
-
/**
* gnutls_x509_crt_get_serial:
* @cert: should contain a #gnutls_x509_crt_t type
@@ -1459,7 +1510,7 @@ gnutls_x509_crt_get_private_key_usage_period(gnutls_x509_crt_t cert,
**/
int
gnutls_x509_crt_get_serial(gnutls_x509_crt_t cert, void *result,
- size_t * result_size)
+ size_t *result_size)
{
int ret, len;
@@ -1498,12 +1549,11 @@ gnutls_x509_crt_get_serial(gnutls_x509_crt_t cert, void *result,
**/
int
gnutls_x509_crt_get_subject_key_id(gnutls_x509_crt_t cert, void *ret,
- size_t * ret_size,
- unsigned int *critical)
+ size_t *ret_size, unsigned int *critical)
{
int result;
- gnutls_datum_t id = {NULL,0};
- gnutls_datum_t der = {NULL, 0};
+ gnutls_datum_t id = { NULL, 0 };
+ gnutls_datum_t der = { NULL, 0 };
if (cert == NULL) {
gnutls_assert();
@@ -1576,10 +1626,10 @@ inline static int is_type_printable(int type)
int
gnutls_x509_crt_get_authority_key_gn_serial(gnutls_x509_crt_t cert,
unsigned int seq, void *alt,
- size_t * alt_size,
+ size_t *alt_size,
unsigned int *alt_type,
void *serial,
- size_t * serial_size,
+ size_t *serial_size,
unsigned int *critical)
{
int ret;
@@ -1615,7 +1665,9 @@ gnutls_x509_crt_get_authority_key_gn_serial(gnutls_x509_crt_t cert,
goto cleanup;
}
- ret = gnutls_x509_aki_get_cert_issuer(aki, seq, &san_type, &san, NULL, &iserial);
+ ret =
+ gnutls_x509_aki_get_cert_issuer(aki, seq, &san_type, &san, NULL,
+ &iserial);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1667,8 +1719,7 @@ gnutls_x509_crt_get_authority_key_gn_serial(gnutls_x509_crt_t cert,
**/
int
gnutls_x509_crt_get_authority_key_id(gnutls_x509_crt_t cert, void *id,
- size_t * id_size,
- unsigned int *critical)
+ size_t *id_size, unsigned int *critical)
{
int ret;
gnutls_datum_t der, l_id;
@@ -1706,11 +1757,17 @@ gnutls_x509_crt_get_authority_key_id(gnutls_x509_crt_t cert, void *id,
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
gnutls_datum_t serial;
- ret = gnutls_x509_aki_get_cert_issuer(aki, 0, NULL, NULL, NULL, &serial);
+ ret =
+ gnutls_x509_aki_get_cert_issuer(aki, 0, NULL, NULL, NULL,
+ &serial);
if (ret >= 0) {
- ret = gnutls_assert_val(GNUTLS_E_X509_UNSUPPORTED_EXTENSION);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_X509_UNSUPPORTED_EXTENSION);
} else {
- ret = gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
}
}
@@ -1751,9 +1808,7 @@ gnutls_x509_crt_get_authority_key_id(gnutls_x509_crt_t cert, void *id,
* Returns: a member of the #gnutls_pk_algorithm_t enumeration on
* success, or a negative error code on error.
**/
-int
-gnutls_x509_crt_get_pk_algorithm(gnutls_x509_crt_t cert,
- unsigned int *bits)
+int gnutls_x509_crt_get_pk_algorithm(gnutls_x509_crt_t cert, unsigned int *bits)
{
int result;
@@ -1768,8 +1823,7 @@ gnutls_x509_crt_get_pk_algorithm(gnutls_x509_crt_t cert,
result =
_gnutls_x509_get_pk_algorithm(cert->cert,
"tbsCertificate.subjectPublicKeyInfo",
- NULL,
- bits);
+ NULL, bits);
if (result < 0) {
gnutls_assert();
@@ -1791,7 +1845,8 @@ gnutls_x509_crt_get_pk_algorithm(gnutls_x509_crt_t cert,
* Since: 3.6.0
**/
int
-gnutls_x509_crt_get_spki(gnutls_x509_crt_t cert, gnutls_x509_spki_t spki, unsigned int flags)
+gnutls_x509_crt_get_spki(gnutls_x509_crt_t cert, gnutls_x509_spki_t spki,
+ unsigned int flags)
{
int result;
gnutls_x509_spki_st params;
@@ -1801,7 +1856,6 @@ gnutls_x509_crt_get_spki(gnutls_x509_crt_t cert, gnutls_x509_spki_t spki, unsign
return GNUTLS_E_INVALID_REQUEST;
}
-
spki->pk = gnutls_x509_crt_get_pk_algorithm(cert, NULL);
memset(&params, 0, sizeof(params));
@@ -1833,18 +1887,18 @@ gnutls_x509_crt_get_spki(gnutls_x509_crt_t cert, gnutls_x509_spki_t spki, unsign
*/
int
_gnutls_parse_general_name2(asn1_node src, const char *src_name,
- int seq, gnutls_datum_t *dname,
- unsigned int *ret_type, int othername_oid)
+ int seq, gnutls_datum_t * dname,
+ unsigned int *ret_type, int othername_oid)
{
int len, ret;
char nptr[MAX_NAME_SIZE];
int result;
- gnutls_datum_t tmp = {NULL, 0};
+ gnutls_datum_t tmp = { NULL, 0 };
char choice_type[128];
gnutls_x509_subject_alt_name_t type;
if (seq != -1) {
- seq++; /* 0->1, 1->2 etc */
+ seq++; /* 0->1, 1->2 etc */
if (src_name[0] != 0)
snprintf(nptr, sizeof(nptr), "%s.?%d", src_name, seq);
@@ -1856,8 +1910,7 @@ _gnutls_parse_general_name2(asn1_node src, const char *src_name,
len = sizeof(choice_type);
result = asn1_read_value(src, nptr, choice_type, &len);
- if (result == ASN1_VALUE_NOT_FOUND
- || result == ASN1_ELEMENT_NOT_FOUND) {
+ if (result == ASN1_VALUE_NOT_FOUND || result == ASN1_ELEMENT_NOT_FOUND) {
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
@@ -1880,8 +1933,7 @@ _gnutls_parse_general_name2(asn1_node src, const char *src_name,
_gnutls_str_cat(nptr, sizeof(nptr),
".otherName.type-id");
else
- _gnutls_str_cat(nptr, sizeof(nptr),
- ".otherName.value");
+ _gnutls_str_cat(nptr, sizeof(nptr), ".otherName.value");
ret = _gnutls_x509_read_value(src, nptr, &tmp);
if (ret < 0) {
@@ -1901,8 +1953,7 @@ _gnutls_parse_general_name2(asn1_node src, const char *src_name,
src_name, seq);
else if (src_name[0] != 0)
snprintf(nptr, sizeof(nptr),
- "%s.otherName.type-id",
- src_name);
+ "%s.otherName.type-id", src_name);
else
snprintf(nptr, sizeof(nptr),
"?%d.otherName.type-id", seq);
@@ -1915,7 +1966,8 @@ _gnutls_parse_general_name2(asn1_node src, const char *src_name,
ret = _gnutls_asn2err(result);
goto cleanup;
}
- if (len > 0) len--;
+ if (len > 0)
+ len--;
dname->size = tmp.size;
dname->data = tmp.data;
@@ -1958,14 +2010,16 @@ _gnutls_parse_general_name2(asn1_node src, const char *src_name,
*/
int
_gnutls_parse_general_name(asn1_node src, const char *src_name,
- int seq, void *name, size_t * name_size,
+ int seq, void *name, size_t *name_size,
unsigned int *ret_type, int othername_oid)
{
int ret;
- gnutls_datum_t res = {NULL,0};
+ gnutls_datum_t res = { NULL, 0 };
unsigned type;
- ret = _gnutls_parse_general_name2(src, src_name, seq, &res, ret_type, othername_oid);
+ ret =
+ _gnutls_parse_general_name2(src, src_name, seq, &res, ret_type,
+ othername_oid);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -1983,21 +2037,21 @@ _gnutls_parse_general_name(asn1_node src, const char *src_name,
}
ret = type;
-cleanup:
+ cleanup:
gnutls_free(res.data);
return ret;
}
static int
get_alt_name(gnutls_subject_alt_names_t san,
- unsigned int seq, uint8_t *alt,
- size_t * alt_size, unsigned int *alt_type,
+ unsigned int seq, uint8_t * alt,
+ size_t *alt_size, unsigned int *alt_type,
unsigned int *critical, int othername_oid)
{
int ret;
- gnutls_datum_t ooid = {NULL, 0};
+ gnutls_datum_t ooid = { NULL, 0 };
gnutls_datum_t oname;
- gnutls_datum_t virt = {NULL, 0};
+ gnutls_datum_t virt = { NULL, 0 };
unsigned int type;
if (san == NULL) {
@@ -2016,7 +2070,9 @@ get_alt_name(gnutls_subject_alt_names_t san,
if (type == GNUTLS_SAN_OTHERNAME && ooid.data) {
unsigned vtype;
- ret = gnutls_x509_othername_to_virtual((char*)ooid.data, &oname, &vtype, &virt);
+ ret =
+ gnutls_x509_othername_to_virtual((char *)ooid.data, &oname,
+ &vtype, &virt);
if (ret >= 0) {
type = vtype;
oname.data = virt.data;
@@ -2043,7 +2099,7 @@ get_alt_name(gnutls_subject_alt_names_t san,
}
ret = type;
-cleanup:
+ cleanup:
gnutls_free(virt.data);
return ret;
@@ -2082,11 +2138,9 @@ cleanup:
int
gnutls_x509_crt_get_subject_alt_name(gnutls_x509_crt_t cert,
unsigned int seq, void *san,
- size_t * san_size,
- unsigned int *critical)
+ size_t *san_size, unsigned int *critical)
{
- return get_alt_name(cert->san, seq, san, san_size, NULL,
- critical, 0);
+ return get_alt_name(cert->san, seq, san, san_size, NULL, critical, 0);
}
/**
@@ -2125,11 +2179,9 @@ gnutls_x509_crt_get_subject_alt_name(gnutls_x509_crt_t cert,
int
gnutls_x509_crt_get_issuer_alt_name(gnutls_x509_crt_t cert,
unsigned int seq, void *ian,
- size_t * ian_size,
- unsigned int *critical)
+ size_t *ian_size, unsigned int *critical)
{
- return get_alt_name(cert->ian, seq, ian, ian_size, NULL,
- critical, 0);
+ return get_alt_name(cert->ian, seq, ian, ian_size, NULL, critical, 0);
}
/**
@@ -2159,7 +2211,7 @@ gnutls_x509_crt_get_issuer_alt_name(gnutls_x509_crt_t cert,
int
gnutls_x509_crt_get_subject_alt_name2(gnutls_x509_crt_t cert,
unsigned int seq, void *san,
- size_t * san_size,
+ size_t *san_size,
unsigned int *san_type,
unsigned int *critical)
{
@@ -2197,7 +2249,7 @@ gnutls_x509_crt_get_subject_alt_name2(gnutls_x509_crt_t cert,
int
gnutls_x509_crt_get_issuer_alt_name2(gnutls_x509_crt_t cert,
unsigned int seq, void *ian,
- size_t * ian_size,
+ size_t *ian_size,
unsigned int *ian_type,
unsigned int *critical)
{
@@ -2238,10 +2290,9 @@ gnutls_x509_crt_get_issuer_alt_name2(gnutls_x509_crt_t cert,
int
gnutls_x509_crt_get_subject_alt_othername_oid(gnutls_x509_crt_t cert,
unsigned int seq,
- void *oid, size_t * oid_size)
+ void *oid, size_t *oid_size)
{
- return get_alt_name(cert->san, seq, oid, oid_size, NULL,
- NULL, 1);
+ return get_alt_name(cert->san, seq, oid, oid_size, NULL, NULL, 1);
}
/**
@@ -2279,10 +2330,9 @@ gnutls_x509_crt_get_subject_alt_othername_oid(gnutls_x509_crt_t cert,
int
gnutls_x509_crt_get_issuer_alt_othername_oid(gnutls_x509_crt_t cert,
unsigned int seq,
- void *ret, size_t * ret_size)
+ void *ret, size_t *ret_size)
{
- return get_alt_name(cert->ian, seq, ret, ret_size, NULL,
- NULL, 1);
+ return get_alt_name(cert->ian, seq, ret, ret_size, NULL, NULL, 1);
}
/**
@@ -2321,8 +2371,7 @@ gnutls_x509_crt_get_basic_constraints(gnutls_x509_crt_t cert,
if ((result =
_gnutls_x509_crt_get_extension(cert, "2.5.29.19", 0,
- &basicConstraints,
- critical)) < 0) {
+ &basicConstraints, critical)) < 0) {
return result;
}
@@ -2331,7 +2380,9 @@ gnutls_x509_crt_get_basic_constraints(gnutls_x509_crt_t cert,
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
- result = gnutls_x509_ext_import_basic_constraints(&basicConstraints, &tmp_ca, pathlen);
+ result =
+ gnutls_x509_ext_import_basic_constraints(&basicConstraints, &tmp_ca,
+ pathlen);
if (ca)
*ca = tmp_ca;
@@ -2365,8 +2416,7 @@ gnutls_x509_crt_get_basic_constraints(gnutls_x509_crt_t cert,
* GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE will be returned.
**/
int
-gnutls_x509_crt_get_ca_status(gnutls_x509_crt_t cert,
- unsigned int *critical)
+gnutls_x509_crt_get_ca_status(gnutls_x509_crt_t cert, unsigned int *critical)
{
int pathlen;
unsigned int ca;
@@ -2395,8 +2445,7 @@ gnutls_x509_crt_get_ca_status(gnutls_x509_crt_t cert,
**/
int
gnutls_x509_crt_get_key_usage(gnutls_x509_crt_t cert,
- unsigned int *key_usage,
- unsigned int *critical)
+ unsigned int *key_usage, unsigned int *critical)
{
int result;
gnutls_datum_t keyUsage;
@@ -2449,8 +2498,8 @@ gnutls_x509_crt_get_key_usage(gnutls_x509_crt_t cert,
**/
int
gnutls_x509_crt_get_inhibit_anypolicy(gnutls_x509_crt_t cert,
- unsigned int *skipcerts,
- unsigned int *critical)
+ unsigned int *skipcerts,
+ unsigned int *critical)
{
int ret;
gnutls_datum_t ext;
@@ -2504,7 +2553,7 @@ gnutls_x509_crt_get_proxy(gnutls_x509_crt_t cert,
unsigned int *critical,
int *pathlen,
char **policyLanguage,
- char **policy, size_t * sizeof_policy)
+ char **policy, size_t *sizeof_policy)
{
int result;
gnutls_datum_t proxyCertInfo;
@@ -2516,8 +2565,7 @@ gnutls_x509_crt_get_proxy(gnutls_x509_crt_t cert,
if ((result =
_gnutls_x509_crt_get_extension(cert, "1.3.6.1.5.5.7.1.14", 0,
- &proxyCertInfo, critical)) < 0)
- {
+ &proxyCertInfo, critical)) < 0) {
return result;
}
@@ -2527,9 +2575,8 @@ gnutls_x509_crt_get_proxy(gnutls_x509_crt_t cert,
}
result = gnutls_x509_ext_import_proxy(&proxyCertInfo, pathlen,
- policyLanguage,
- policy,
- sizeof_policy);
+ policyLanguage,
+ policy, sizeof_policy);
_gnutls_free_datum(&proxyCertInfo);
if (result < 0) {
gnutls_assert();
@@ -2539,7 +2586,6 @@ gnutls_x509_crt_get_proxy(gnutls_x509_crt_t cert,
return 0;
}
-
/**
* gnutls_x509_policy_release:
* @policy: a certificate policy
@@ -2558,7 +2604,6 @@ void gnutls_x509_policy_release(struct gnutls_x509_policy_st *policy)
gnutls_free(policy->qualifier[i].data);
}
-
/**
* gnutls_x509_crt_get_policy:
* @crt: should contain a #gnutls_x509_crt_t type
@@ -2633,7 +2678,6 @@ gnutls_x509_crt_get_policy(gnutls_x509_crt_t crt, unsigned indx,
return ret;
}
-
/**
* gnutls_x509_crt_get_extension_by_oid:
* @cert: should contain a #gnutls_x509_crt_t type
@@ -2655,7 +2699,7 @@ gnutls_x509_crt_get_policy(gnutls_x509_crt_t crt, unsigned indx,
int
gnutls_x509_crt_get_extension_by_oid(gnutls_x509_crt_t cert,
const char *oid, unsigned indx,
- void *buf, size_t * buf_size,
+ void *buf, size_t *buf_size,
unsigned int *critical)
{
int result;
@@ -2678,7 +2722,7 @@ gnutls_x509_crt_get_extension_by_oid(gnutls_x509_crt_t cert,
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
- if (output.size > (unsigned int) *buf_size) {
+ if (output.size > (unsigned int)*buf_size) {
*buf_size = output.size;
_gnutls_free_datum(&output);
return GNUTLS_E_SHORT_MEMORY_BUFFER;
@@ -2715,9 +2759,9 @@ gnutls_x509_crt_get_extension_by_oid(gnutls_x509_crt_t cert,
**/
int
gnutls_x509_crt_get_extension_by_oid2(gnutls_x509_crt_t cert,
- const char *oid, unsigned indx,
- gnutls_datum_t *output,
- unsigned int *critical)
+ const char *oid, unsigned indx,
+ gnutls_datum_t * output,
+ unsigned int *critical)
{
int ret;
@@ -2761,7 +2805,7 @@ gnutls_x509_crt_get_extension_by_oid2(gnutls_x509_crt_t cert,
**/
int
gnutls_x509_crt_get_extension_oid(gnutls_x509_crt_t cert, unsigned indx,
- void *oid, size_t * oid_size)
+ void *oid, size_t *oid_size)
{
int result;
@@ -2770,8 +2814,7 @@ gnutls_x509_crt_get_extension_oid(gnutls_x509_crt_t cert, unsigned indx,
return GNUTLS_E_INVALID_REQUEST;
}
- result =
- _gnutls_x509_crt_get_extension_oid(cert, indx, oid, oid_size);
+ result = _gnutls_x509_crt_get_extension_oid(cert, indx, oid, oid_size);
if (result < 0) {
return result;
}
@@ -2807,7 +2850,7 @@ gnutls_x509_crt_get_extension_oid(gnutls_x509_crt_t cert, unsigned indx,
**/
int
gnutls_x509_crt_get_extension_info(gnutls_x509_crt_t cert, unsigned indx,
- void *oid, size_t * oid_size,
+ void *oid, size_t *oid_size,
unsigned int *critical)
{
int result;
@@ -2835,7 +2878,7 @@ gnutls_x509_crt_get_extension_info(gnutls_x509_crt_t cert, unsigned indx,
}
/* remove any trailing null */
- if (oid && len > 0 && ((uint8_t*)oid)[len-1] == 0)
+ if (oid && len > 0 && ((uint8_t *) oid)[len - 1] == 0)
(*oid_size)--;
if (critical) {
@@ -2881,7 +2924,7 @@ gnutls_x509_crt_get_extension_info(gnutls_x509_crt_t cert, unsigned indx,
**/
int
gnutls_x509_crt_get_extension_data(gnutls_x509_crt_t cert, unsigned indx,
- void *data, size_t * sizeof_data)
+ void *data, size_t *sizeof_data)
{
int result, len;
char name[MAX_NAME_SIZE];
@@ -2926,14 +2969,15 @@ gnutls_x509_crt_get_extension_data(gnutls_x509_crt_t cert, unsigned indx,
*
**/
int
-gnutls_x509_crt_get_raw_issuer_dn(gnutls_x509_crt_t cert,
- gnutls_datum_t * dn)
+gnutls_x509_crt_get_raw_issuer_dn(gnutls_x509_crt_t cert, gnutls_datum_t * dn)
{
if (cert->raw_issuer_dn.size > 0 && cert->modified == 0) {
return _gnutls_set_datum(dn, cert->raw_issuer_dn.data,
cert->raw_issuer_dn.size);
} else {
- return _gnutls_x509_get_raw_field(cert->cert, "tbsCertificate.issuer.rdnSequence", dn);
+ return _gnutls_x509_get_raw_field(cert->cert,
+ "tbsCertificate.issuer.rdnSequence",
+ dn);
}
}
@@ -2952,14 +2996,18 @@ gnutls_x509_crt_get_raw_issuer_dn(gnutls_x509_crt_t cert,
int gnutls_x509_crt_get_raw_dn(gnutls_x509_crt_t cert, gnutls_datum_t * dn)
{
if (cert->raw_dn.size > 0 && cert->modified == 0) {
- return _gnutls_set_datum(dn, cert->raw_dn.data, cert->raw_dn.size);
+ return _gnutls_set_datum(dn, cert->raw_dn.data,
+ cert->raw_dn.size);
} else {
- return _gnutls_x509_get_raw_field(cert->cert, "tbsCertificate.subject.rdnSequence", dn);
+ return _gnutls_x509_get_raw_field(cert->cert,
+ "tbsCertificate.subject.rdnSequence",
+ dn);
}
}
static int
-get_dn(gnutls_x509_crt_t cert, const char *whom, gnutls_x509_dn_t * dn, unsigned subject)
+get_dn(gnutls_x509_crt_t cert, const char *whom, gnutls_x509_dn_t * dn,
+ unsigned subject)
{
gnutls_x509_dn_st *store;
@@ -2991,8 +3039,7 @@ get_dn(gnutls_x509_crt_t cert, const char *whom, gnutls_x509_dn_t * dn, unsigned
*
* Returns: Returns 0 on success, or an error code.
**/
-int
-gnutls_x509_crt_get_subject(gnutls_x509_crt_t cert, gnutls_x509_dn_t * dn)
+int gnutls_x509_crt_get_subject(gnutls_x509_crt_t cert, gnutls_x509_dn_t * dn)
{
return get_dn(cert, "tbsCertificate.subject.rdnSequence", dn, 1);
}
@@ -3011,8 +3058,7 @@ gnutls_x509_crt_get_subject(gnutls_x509_crt_t cert, gnutls_x509_dn_t * dn)
*
* Returns: Returns 0 on success, or an error code.
**/
-int
-gnutls_x509_crt_get_issuer(gnutls_x509_crt_t cert, gnutls_x509_dn_t * dn)
+int gnutls_x509_crt_get_issuer(gnutls_x509_crt_t cert, gnutls_x509_dn_t * dn)
{
return get_dn(cert, "tbsCertificate.issuer.rdnSequence", dn, 0);
}
@@ -3037,7 +3083,7 @@ gnutls_x509_crt_get_issuer(gnutls_x509_crt_t cert, gnutls_x509_dn_t * dn)
int
gnutls_x509_crt_get_fingerprint(gnutls_x509_crt_t cert,
gnutls_digest_algorithm_t algo,
- void *buf, size_t * buf_size)
+ void *buf, size_t *buf_size)
{
uint8_t *cert_buf;
int cert_buf_size;
@@ -3062,8 +3108,7 @@ gnutls_x509_crt_get_fingerprint(gnutls_x509_crt_t cert,
}
result =
- asn1_der_coding(cert->cert, "", cert_buf, &cert_buf_size,
- NULL);
+ asn1_der_coding(cert->cert, "", cert_buf, &cert_buf_size, NULL);
if (result != ASN1_SUCCESS) {
gnutls_assert();
@@ -3103,7 +3148,7 @@ gnutls_x509_crt_get_fingerprint(gnutls_x509_crt_t cert,
int
gnutls_x509_crt_export(gnutls_x509_crt_t cert,
gnutls_x509_crt_fmt_t format, void *output_data,
- size_t * output_data_size)
+ size_t *output_data_size)
{
gnutls_datum_t out;
int ret;
@@ -3113,9 +3158,13 @@ gnutls_x509_crt_export(gnutls_x509_crt_t cert,
return gnutls_assert_val(ret);
if (format == GNUTLS_X509_FMT_PEM)
- ret = _gnutls_copy_string(&out, (uint8_t*)output_data, output_data_size);
+ ret =
+ _gnutls_copy_string(&out, (uint8_t *) output_data,
+ output_data_size);
else
- ret = _gnutls_copy_data(&out, (uint8_t*)output_data, output_data_size);
+ ret =
+ _gnutls_copy_data(&out, (uint8_t *) output_data,
+ output_data_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -3155,7 +3204,8 @@ gnutls_x509_crt_export2(gnutls_x509_crt_t cert,
if (!cert->modified && cert->der.size) {
if (format == GNUTLS_X509_FMT_DER)
- return _gnutls_set_datum(out, cert->der.data, cert->der.size);
+ return _gnutls_set_datum(out, cert->der.data,
+ cert->der.size);
else {
int ret = _gnutls_fbase64_encode(PEM_X509_CERT2,
cert->der.data,
@@ -3173,7 +3223,7 @@ gnutls_x509_crt_export2(gnutls_x509_crt_t cert,
int
_gnutls_get_key_id(gnutls_pk_params_st * params,
- unsigned char *output_data, size_t * output_data_size,
+ unsigned char *output_data, size_t *output_data_size,
unsigned flags)
{
int ret = 0;
@@ -3181,13 +3231,13 @@ _gnutls_get_key_id(gnutls_pk_params_st * params,
gnutls_digest_algorithm_t hash = GNUTLS_DIG_SHA1;
unsigned int digest_len;
- if ((flags & GNUTLS_KEYID_USE_SHA512) || (flags & GNUTLS_KEYID_USE_BEST_KNOWN))
+ if ((flags & GNUTLS_KEYID_USE_SHA512)
+ || (flags & GNUTLS_KEYID_USE_BEST_KNOWN))
hash = GNUTLS_DIG_SHA512;
else if (flags & GNUTLS_KEYID_USE_SHA256)
hash = GNUTLS_DIG_SHA256;
- digest_len =
- _gnutls_hash_get_algo_len(hash_to_entry(hash));
+ digest_len = _gnutls_hash_get_algo_len(hash_to_entry(hash));
if (output_data == NULL || *output_data_size < digest_len) {
gnutls_assert();
@@ -3208,7 +3258,7 @@ _gnutls_get_key_id(gnutls_pk_params_st * params,
ret = 0;
- cleanup:
+ cleanup:
_gnutls_free_datum(&der);
return ret;
@@ -3236,8 +3286,7 @@ _gnutls_get_key_id(gnutls_pk_params_st * params,
**/
int
gnutls_x509_crt_get_key_id(gnutls_x509_crt_t crt, unsigned int flags,
- unsigned char *output_data,
- size_t * output_data_size)
+ unsigned char *output_data, size_t *output_data_size)
{
int ret = 0;
gnutls_pk_params_st params;
@@ -3254,16 +3303,14 @@ gnutls_x509_crt_get_key_id(gnutls_x509_crt_t crt, unsigned int flags,
return ret;
}
- ret =
- _gnutls_get_key_id(&params, output_data, output_data_size, flags);
+ ret = _gnutls_get_key_id(&params, output_data, output_data_size, flags);
gnutls_pk_params_release(&params);
return ret;
}
-static int
-crl_issuer_matches(gnutls_x509_crl_t crl, gnutls_x509_crt_t cert)
+static int crl_issuer_matches(gnutls_x509_crl_t crl, gnutls_x509_crt_t cert)
{
if (_gnutls_x509_compare_raw_dn
(&crl->raw_issuer_dn, &cert->raw_issuer_dn) != 0)
@@ -3327,8 +3374,7 @@ _gnutls_x509_crt_check_revocation(gnutls_x509_crt_t cert,
gnutls_x509_crl_iter_crt_serial(crl_list[j],
&iter,
serial,
- &serial_size,
- NULL);
+ &serial_size, NULL);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
break;
} else if (ret < 0) {
@@ -3338,8 +3384,7 @@ _gnutls_x509_crt_check_revocation(gnutls_x509_crt_t cert,
if (serial_size == cert_serial_size) {
if (memcmp
- (serial, cert_serial,
- serial_size) == 0) {
+ (serial, cert_serial, serial_size) == 0) {
/* serials match */
if (func)
func(cert, NULL,
@@ -3350,7 +3395,7 @@ _gnutls_x509_crt_check_revocation(gnutls_x509_crt_t cert,
goto fail;
}
}
- } while(1);
+ } while (1);
gnutls_x509_crl_iter_deinit(iter);
iter = NULL;
@@ -3366,7 +3411,6 @@ _gnutls_x509_crt_check_revocation(gnutls_x509_crt_t cert,
return ret;
}
-
/**
* gnutls_x509_crt_check_revocation:
* @cert: should contain a #gnutls_x509_crt_t type
@@ -3404,10 +3448,11 @@ gnutls_x509_crt_check_revocation(gnutls_x509_crt_t cert,
**/
unsigned
gnutls_x509_crt_check_key_purpose(gnutls_x509_crt_t cert,
- const char *purpose,
- unsigned flags)
+ const char *purpose, unsigned flags)
{
- return _gnutls_check_key_purpose(cert, purpose, (flags&GNUTLS_KP_FLAG_DISALLOW_ANY)?1:0);
+ return _gnutls_check_key_purpose(cert, purpose,
+ (flags & GNUTLS_KP_FLAG_DISALLOW_ANY) ?
+ 1 : 0);
}
/**
@@ -3485,7 +3530,7 @@ gnutls_x509_crt_get_preferred_hash_algorithm(gnutls_x509_crt_t crt,
int
gnutls_x509_crt_get_crl_dist_points(gnutls_x509_crt_t cert,
unsigned int seq, void *san,
- size_t * san_size,
+ size_t *san_size,
unsigned int *reason_flags,
unsigned int *critical)
{
@@ -3527,7 +3572,9 @@ gnutls_x509_crt_get_crl_dist_points(gnutls_x509_crt_t cert,
goto cleanup;
}
- ret = gnutls_x509_crl_dist_points_get(cdp, seq, &type, &t_san, reason_flags);
+ ret =
+ gnutls_x509_crl_dist_points_get(cdp, seq, &type, &t_san,
+ reason_flags);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -3572,7 +3619,7 @@ gnutls_x509_crt_get_crl_dist_points(gnutls_x509_crt_t cert,
**/
int
gnutls_x509_crt_get_key_purpose_oid(gnutls_x509_crt_t cert,
- unsigned indx, void *oid, size_t * oid_size,
+ unsigned indx, void *oid, size_t *oid_size,
unsigned int *critical)
{
int ret;
@@ -3629,7 +3676,7 @@ gnutls_x509_crt_get_key_purpose_oid(gnutls_x509_crt_t cert,
cleanup:
gnutls_free(ext.data);
- if (p!=NULL)
+ if (p != NULL)
gnutls_x509_key_purpose_deinit(p);
return ret;
}
@@ -3699,8 +3746,8 @@ gnutls_x509_crt_get_pk_rsa_raw(gnutls_x509_crt_t crt,
**/
int
gnutls_x509_crt_get_pk_ecc_raw(gnutls_x509_crt_t crt,
- gnutls_ecc_curve_t *curve,
- gnutls_datum_t *x, gnutls_datum_t *y)
+ gnutls_ecc_curve_t * curve,
+ gnutls_datum_t * x, gnutls_datum_t * y)
{
int ret;
gnutls_pubkey_t pubkey;
@@ -3750,10 +3797,10 @@ gnutls_x509_crt_get_pk_ecc_raw(gnutls_x509_crt_t crt,
**/
int
gnutls_x509_crt_get_pk_gost_raw(gnutls_x509_crt_t crt,
- gnutls_ecc_curve_t *curve,
- gnutls_digest_algorithm_t *digest,
- gnutls_gost_paramset_t *paramset,
- gnutls_datum_t *x, gnutls_datum_t *y)
+ gnutls_ecc_curve_t * curve,
+ gnutls_digest_algorithm_t * digest,
+ gnutls_gost_paramset_t * paramset,
+ gnutls_datum_t * x, gnutls_datum_t * y)
{
int ret;
gnutls_pubkey_t pubkey;
@@ -3859,8 +3906,7 @@ int
gnutls_x509_crt_list_import2(gnutls_x509_crt_t ** certs,
unsigned int *size,
const gnutls_datum_t * data,
- gnutls_x509_crt_fmt_t format,
- unsigned int flags)
+ gnutls_x509_crt_fmt_t format, unsigned int flags)
{
unsigned int init = 1024;
int ret;
@@ -3873,7 +3919,8 @@ gnutls_x509_crt_list_import2(gnutls_x509_crt_t ** certs,
ret =
gnutls_x509_crt_list_import(*certs, &init, data, format,
- flags | GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED);
+ flags |
+ GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED);
if (ret == GNUTLS_E_SHORT_MEMORY_BUFFER) {
*certs = _gnutls_reallocarray_fast(*certs, init,
sizeof(gnutls_x509_crt_t));
@@ -3923,8 +3970,7 @@ int
gnutls_x509_crt_list_import(gnutls_x509_crt_t * certs,
unsigned int *cert_max,
const gnutls_datum_t * data,
- gnutls_x509_crt_fmt_t format,
- unsigned int flags)
+ gnutls_x509_crt_fmt_t format, unsigned int flags)
{
int size;
const char *ptr;
@@ -3986,9 +4032,8 @@ gnutls_x509_crt_list_import(gnutls_x509_crt_t * certs,
goto error;
}
- tmp.data = (void *) ptr;
- tmp.size =
- data->size - (ptr - (char *) data->data);
+ tmp.data = (void *)ptr;
+ tmp.size = data->size - (ptr - (char *)data->data);
ret =
gnutls_x509_crt_import(certs[count], &tmp,
@@ -4007,7 +4052,7 @@ gnutls_x509_crt_list_import(gnutls_x509_crt_t * certs,
ptr++;
/* find the next certificate (if any)
*/
- size = data->size - (ptr - (char *) data->data);
+ size = data->size - (ptr - (char *)data->data);
if (size > 0) {
char *ptr2;
@@ -4058,7 +4103,7 @@ gnutls_x509_crt_list_import(gnutls_x509_crt_t * certs,
ret = GNUTLS_E_SHORT_MEMORY_BUFFER;
}
- error:
+ error:
for (j = 0; j < count; j++)
gnutls_x509_crt_deinit(certs[j]);
return ret;
@@ -4087,15 +4132,14 @@ gnutls_x509_crt_list_import(gnutls_x509_crt_t * certs,
**/
int
gnutls_x509_crt_get_subject_unique_id(gnutls_x509_crt_t crt, char *buf,
- size_t * buf_size)
+ size_t *buf_size)
{
int result;
gnutls_datum_t datum = { NULL, 0 };
result =
_gnutls_x509_read_value(crt->cert,
- "tbsCertificate.subjectUniqueID",
- &datum);
+ "tbsCertificate.subjectUniqueID", &datum);
if (result < 0)
return gnutls_assert_val(result);
@@ -4137,15 +4181,14 @@ gnutls_x509_crt_get_subject_unique_id(gnutls_x509_crt_t crt, char *buf,
**/
int
gnutls_x509_crt_get_issuer_unique_id(gnutls_x509_crt_t crt, char *buf,
- size_t * buf_size)
+ size_t *buf_size)
{
int result;
gnutls_datum_t datum = { NULL, 0 };
result =
_gnutls_x509_read_value(crt->cert,
- "tbsCertificate.issuerUniqueID",
- &datum);
+ "tbsCertificate.issuerUniqueID", &datum);
if (result < 0)
return gnutls_assert_val(result);
@@ -4164,7 +4207,7 @@ gnutls_x509_crt_get_issuer_unique_id(gnutls_x509_crt_t crt, char *buf,
static int
legacy_parse_aia(asn1_node src,
- unsigned int seq, int what, gnutls_datum_t * data)
+ unsigned int seq, int what, gnutls_datum_t * data)
{
int len;
char nptr[MAX_NAME_SIZE];
@@ -4191,8 +4234,7 @@ legacy_parse_aia(asn1_node src,
oid = GNUTLS_OID_AD_OCSP;
{
char tmpoid[MAX_OID_SIZE];
- snprintf(nptr, sizeof(nptr), "?%u.accessMethod",
- seq);
+ snprintf(nptr, sizeof(nptr), "?%u.accessMethod", seq);
len = sizeof(tmpoid);
result = asn1_read_value(src, nptr, tmpoid, &len);
@@ -4206,7 +4248,7 @@ legacy_parse_aia(asn1_node src,
gnutls_assert();
return _gnutls_asn2err(result);
}
- if ((unsigned) len != strlen(oid) + 1
+ if ((unsigned)len != strlen(oid) + 1
|| memcmp(tmpoid, oid, len) != 0)
return
gnutls_assert_val
@@ -4216,8 +4258,7 @@ legacy_parse_aia(asn1_node src,
case GNUTLS_IA_URI:
snprintf(nptr, sizeof(nptr),
- "?%u.accessLocation.uniformResourceIdentifier",
- seq);
+ "?%u.accessLocation.uniformResourceIdentifier", seq);
break;
default:
@@ -4226,11 +4267,8 @@ legacy_parse_aia(asn1_node src,
len = 0;
result = asn1_read_value(src, nptr, NULL, &len);
- if (result == ASN1_VALUE_NOT_FOUND
- || result == ASN1_ELEMENT_NOT_FOUND)
- return
- gnutls_assert_val
- (GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ if (result == ASN1_VALUE_NOT_FOUND || result == ASN1_ELEMENT_NOT_FOUND)
+ return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
if (result != ASN1_MEM_ERROR) {
gnutls_assert();
@@ -4397,8 +4435,7 @@ gnutls_x509_crt_get_authority_info_access(gnutls_x509_crt_t crt,
*
**/
void gnutls_x509_crt_set_pin_function(gnutls_x509_crt_t crt,
- gnutls_pin_callback_t fn,
- void *userdata)
+ gnutls_pin_callback_t fn, void *userdata)
{
if (crt) {
crt->pin.cb = fn;
@@ -4431,10 +4468,14 @@ gnutls_x509_crt_import_url(gnutls_x509_crt_t crt,
int ret;
unsigned i;
- for (i=0;i<_gnutls_custom_urls_size;i++) {
- if (strncmp(url, _gnutls_custom_urls[i].name, _gnutls_custom_urls[i].name_size) == 0) {
+ for (i = 0; i < _gnutls_custom_urls_size; i++) {
+ if (strncmp
+ (url, _gnutls_custom_urls[i].name,
+ _gnutls_custom_urls[i].name_size) == 0) {
if (_gnutls_custom_urls[i].import_crt) {
- ret = _gnutls_custom_urls[i].import_crt(crt, url, flags);
+ ret =
+ _gnutls_custom_urls[i].import_crt(crt, url,
+ flags);
goto cleanup;
}
break;
@@ -4445,7 +4486,7 @@ gnutls_x509_crt_import_url(gnutls_x509_crt_t crt,
ret = _gnutls_x509_crt_import_system_url(crt, url);
#ifdef ENABLE_PKCS11
} else if (strncmp(url, PKCS11_URL, PKCS11_URL_SIZE) == 0) {
- ret = _gnutls_x509_crt_import_pkcs11_url(crt, url, flags);
+ ret = _gnutls_x509_crt_import_pkcs11_url(crt, url, flags);
#endif
} else {
ret = gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
@@ -4479,17 +4520,16 @@ gnutls_x509_crt_import_url(gnutls_x509_crt_t crt,
* Since: 3.6.3
**/
int
-gnutls_x509_crt_list_import_url(gnutls_x509_crt_t **certs,
+gnutls_x509_crt_list_import_url(gnutls_x509_crt_t ** certs,
unsigned int *size,
const char *url,
gnutls_pin_callback_t pin_fn,
- void *pin_fn_userdata,
- unsigned int flags)
+ void *pin_fn_userdata, unsigned int flags)
{
int ret;
unsigned i;
gnutls_x509_crt_t crts[DEFAULT_MAX_VERIFY_DEPTH];
- gnutls_datum_t issuer = {NULL, 0};
+ gnutls_datum_t issuer = { NULL, 0 };
unsigned total = 0;
memset(crts, 0, sizeof(crts));
@@ -4508,14 +4548,17 @@ gnutls_x509_crt_list_import_url(gnutls_x509_crt_t **certs,
goto cleanup;
}
- for (i=1;i<DEFAULT_MAX_VERIFY_DEPTH;i++) {
- ret = _gnutls_get_raw_issuer(url, crts[i-1], &issuer, flags|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_ANY);
+ for (i = 1; i < DEFAULT_MAX_VERIFY_DEPTH; i++) {
+ ret =
+ _gnutls_get_raw_issuer(url, crts[i - 1], &issuer,
+ flags |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_ANY);
if (ret < 0) {
issuer.data = NULL;
break;
}
- if (gnutls_x509_crt_equals2(crts[i-1], &issuer)) {
+ if (gnutls_x509_crt_equals2(crts[i - 1], &issuer)) {
gnutls_free(issuer.data);
break;
}
@@ -4528,9 +4571,12 @@ gnutls_x509_crt_list_import_url(gnutls_x509_crt_t **certs,
total++;
- gnutls_x509_crt_set_pin_function(crts[i], pin_fn, pin_fn_userdata);
+ gnutls_x509_crt_set_pin_function(crts[i], pin_fn,
+ pin_fn_userdata);
- ret = gnutls_x509_crt_import(crts[i], &issuer, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_x509_crt_import(crts[i], &issuer,
+ GNUTLS_X509_FMT_DER);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -4545,13 +4591,13 @@ gnutls_x509_crt_list_import_url(gnutls_x509_crt_t **certs,
goto cleanup;
}
- memcpy(*certs, crts, total*sizeof(gnutls_x509_crt_t));
+ memcpy(*certs, crts, total * sizeof(gnutls_x509_crt_t));
*size = total;
return 0;
cleanup:
gnutls_free(issuer.data);
- for (i=0;i<total;i++)
+ for (i = 0; i < total; i++)
gnutls_x509_crt_deinit(crts[i]);
return ret;
@@ -4577,10 +4623,10 @@ gnutls_x509_crt_list_import_url(gnutls_x509_crt_t **certs,
int
gnutls_x509_crt_verify_data3(gnutls_x509_crt_t crt,
gnutls_sign_algorithm_t algo,
- gnutls_typed_vdata_st *vdata,
+ gnutls_typed_vdata_st * vdata,
unsigned int vdata_size,
- const gnutls_datum_t *data,
- const gnutls_datum_t *signature,
+ const gnutls_datum_t * data,
+ const gnutls_datum_t * signature,
unsigned int flags)
{
int ret;
@@ -4591,7 +4637,6 @@ gnutls_x509_crt_verify_data3(gnutls_x509_crt_t crt,
return GNUTLS_E_INVALID_REQUEST;
}
-
ret = gnutls_pubkey_init(&pubkey);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -4615,22 +4660,30 @@ gnutls_x509_crt_verify_data3(gnutls_x509_crt_t crt,
}
if (now < gnutls_x509_crt_get_activation_time(crt)) {
- return gnutls_assert_val(GNUTLS_E_NOT_YET_ACTIVATED);
+ return
+ gnutls_assert_val
+ (GNUTLS_E_NOT_YET_ACTIVATED);
}
}
res = gnutls_x509_crt_get_key_usage(crt, &usage, NULL);
if (res >= 0) {
if (!(usage & GNUTLS_KEY_DIGITAL_SIGNATURE)) {
- return gnutls_assert_val(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ return
+ gnutls_assert_val
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
}
}
- for (i=0;i<vdata_size;i++) {
+ for (i = 0; i < vdata_size; i++) {
if (vdata[i].type == GNUTLS_DT_KEY_PURPOSE_OID) {
- res = _gnutls_check_key_purpose(crt, (char *)vdata[i].data, 0);
+ res = _gnutls_check_key_purpose(crt, (char *)
+ vdata[i].data,
+ 0);
if (res == 0)
- return gnutls_assert_val(GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
+ return
+ gnutls_assert_val
+ (GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE);
break;
}
}
@@ -4661,13 +4714,13 @@ gnutls_x509_crt_verify_data3(gnutls_x509_crt_t crt,
**/
int
gnutls_x509_crt_verify_data2(gnutls_x509_crt_t crt,
- gnutls_sign_algorithm_t algo,
- unsigned int flags,
- const gnutls_datum_t *data,
- const gnutls_datum_t *signature)
+ gnutls_sign_algorithm_t algo,
+ unsigned int flags,
+ const gnutls_datum_t * data,
+ const gnutls_datum_t * signature)
{
return gnutls_x509_crt_verify_data3(crt, algo, NULL, 0,
- data, signature, flags);
+ data, signature, flags);
}
/**
@@ -4682,9 +4735,7 @@ gnutls_x509_crt_verify_data2(gnutls_x509_crt_t crt,
* Since: 3.6.0
*
**/
-void gnutls_x509_crt_set_flags(gnutls_x509_crt_t cert,
- unsigned int flags)
+void gnutls_x509_crt_set_flags(gnutls_x509_crt_t cert, unsigned int flags)
{
cert->flags = flags;
}
-
diff --git a/lib/x509/x509_dn.c b/lib/x509/x509_dn.c
index 1dde410d17..a20e21e54c 100644
--- a/lib/x509/x509_dn.c
+++ b/lib/x509/x509_dn.c
@@ -32,8 +32,8 @@
#include <x509_b64.h>
#include <c-ctype.h>
-typedef int (*set_dn_func) (void *, const char *oid, unsigned int raw_flag,
- const void *name, unsigned int name_size);
+typedef int (*set_dn_func)(void *, const char *oid, unsigned int raw_flag,
+ const void *name, unsigned int name_size);
static
int dn_attr_crt_set(set_dn_func f, void *crt, const gnutls_datum_t * name,
@@ -43,7 +43,7 @@ int dn_attr_crt_set(set_dn_func f, void *crt, const gnutls_datum_t * name,
gnutls_datum_t tmp;
const char *oid;
int ret;
- unsigned i,j;
+ unsigned i, j;
if (name->size == 0 || val->size == 0)
return gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
@@ -63,42 +63,48 @@ int dn_attr_crt_set(set_dn_func f, void *crt, const gnutls_datum_t * name,
}
} else {
oid =
- _gnutls_ldap_string_to_oid((char *) name->data,
- name->size);
+ _gnutls_ldap_string_to_oid((char *)name->data, name->size);
}
if (oid == NULL) {
_gnutls_debug_log("Unknown DN attribute: '%.*s'\n",
- (int) name->size, name->data);
+ (int)name->size, name->data);
return gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
}
if (is_raw) {
- gnutls_datum_t hex = {val->data+1, val->size-1};
+ gnutls_datum_t hex = { val->data + 1, val->size - 1 };
ret = gnutls_hex_decode2(&hex, &tmp);
if (ret < 0)
return gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
} else {
tmp.size = val->size;
- tmp.data = gnutls_malloc(tmp.size+1);
+ tmp.data = gnutls_malloc(tmp.size + 1);
if (tmp.data == NULL) {
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
/* unescape */
- for (j=i=0;i<tmp.size;i++) {
- if (1+j!=val->size && val->data[j] == '\\') {
- if (val->data[j+1] == ',' || val->data[j+1] == '#' ||
- val->data[j+1] == ' ' || val->data[j+1] == '+' ||
- val->data[j+1] == '"' || val->data[j+1] == '<' ||
- val->data[j+1] == '>' || val->data[j+1] == ';' ||
- val->data[j+1] == '\\' || val->data[j+1] == '=') {
- tmp.data[i] = val->data[j+1];
- j+=2;
+ for (j = i = 0; i < tmp.size; i++) {
+ if (1 + j != val->size && val->data[j] == '\\') {
+ if (val->data[j + 1] == ','
+ || val->data[j + 1] == '#'
+ || val->data[j + 1] == ' '
+ || val->data[j + 1] == '+'
+ || val->data[j + 1] == '"'
+ || val->data[j + 1] == '<'
+ || val->data[j + 1] == '>'
+ || val->data[j + 1] == ';'
+ || val->data[j + 1] == '\\'
+ || val->data[j + 1] == '=') {
+ tmp.data[i] = val->data[j + 1];
+ j += 2;
tmp.size--;
} else {
- ret = gnutls_assert_val(GNUTLS_E_PARSING_ERROR);
+ ret =
+ gnutls_assert_val
+ (GNUTLS_E_PARSING_ERROR);
goto fail;
}
} else {
@@ -121,10 +127,10 @@ int dn_attr_crt_set(set_dn_func f, void *crt, const gnutls_datum_t * name,
}
static int read_attr_and_val(const char **ptr,
- gnutls_datum_t *name, gnutls_datum_t *val,
+ gnutls_datum_t * name, gnutls_datum_t * val,
unsigned *is_raw)
{
- const unsigned char *p = (void *) *ptr;
+ const unsigned char *p = (void *)*ptr;
*is_raw = 0;
@@ -133,7 +139,7 @@ static int read_attr_and_val(const char **ptr,
p++;
/* Read the name */
- name->data = (void *) p;
+ name->data = (void *)p;
while (*p != '=' && *p != 0 && !c_isspace(*p))
p++;
@@ -155,13 +161,13 @@ static int read_attr_and_val(const char **ptr,
}
/* Read value */
- val->data = (void *) p;
+ val->data = (void *)p;
while (*p != 0 && (*p != ',' || (*p == ',' && *(p - 1) == '\\'))
&& *p != '\n') {
p++;
}
val->size = p - (val->data);
- *ptr = (void*)p;
+ *ptr = (void *)p;
p = val->data;
/* check for unescaped '+' - we do not support them */
@@ -172,8 +178,8 @@ static int read_attr_and_val(const char **ptr,
}
/* remove spaces from the end */
- while(val->size > 0 && c_isspace(val->data[val->size-1])) {
- if (val->size > 2 && val->data[val->size-2] == '\\')
+ while (val->size > 0 && c_isspace(val->data[val->size - 1])) {
+ if (val->size > 2 && val->data[val->size - 2] == '\\')
break;
val->size--;
}
@@ -192,7 +198,9 @@ typedef struct elem_list_st {
struct elem_list_st *next;
} elem_list_st;
-static int add_new_elem(elem_list_st **head, const gnutls_datum_t *name, const gnutls_datum_t *val, const char *pos, unsigned is_raw)
+static int add_new_elem(elem_list_st ** head, const gnutls_datum_t * name,
+ const gnutls_datum_t * val, const char *pos,
+ unsigned is_raw)
{
elem_list_st *elem = gnutls_malloc(sizeof(*elem));
if (elem == NULL)
@@ -255,10 +263,12 @@ crt_set_dn(set_dn_func f, void *crt, const char *dn, const char **err)
}
plist = list;
- while(plist) {
+ while (plist) {
if (err)
*err = plist->pos;
- ret = dn_attr_crt_set(f, crt, &plist->name, &plist->val, plist->is_raw);
+ ret =
+ dn_attr_crt_set(f, crt, &plist->name, &plist->val,
+ plist->is_raw);
if (ret < 0)
goto fail;
@@ -266,9 +276,9 @@ crt_set_dn(set_dn_func f, void *crt, const char *dn, const char **err)
}
ret = 0;
-fail:
+ fail:
plist = list;
- while(plist) {
+ while (plist) {
next = plist->next;
gnutls_free(plist);
plist = next;
@@ -276,7 +286,6 @@ fail:
return ret;
}
-
/**
* gnutls_x509_crt_set_dn:
* @crt: a certificate of type #gnutls_x509_crt_t
@@ -296,8 +305,7 @@ fail:
* negative error value.
**/
int
-gnutls_x509_crt_set_dn(gnutls_x509_crt_t crt, const char *dn,
- const char **err)
+gnutls_x509_crt_set_dn(gnutls_x509_crt_t crt, const char *dn, const char **err)
{
return crt_set_dn((set_dn_func) gnutls_x509_crt_set_dn_by_oid, crt,
dn, err);
@@ -321,8 +329,7 @@ gnutls_x509_crt_set_issuer_dn(gnutls_x509_crt_t crt, const char *dn,
const char **err)
{
return crt_set_dn((set_dn_func)
- gnutls_x509_crt_set_issuer_dn_by_oid, crt, dn,
- err);
+ gnutls_x509_crt_set_issuer_dn_by_oid, crt, dn, err);
}
/**
@@ -339,17 +346,18 @@ gnutls_x509_crt_set_issuer_dn(gnutls_x509_crt_t crt, const char *dn,
* negative error value.
**/
int
-gnutls_x509_crq_set_dn(gnutls_x509_crq_t crq, const char *dn,
- const char **err)
+gnutls_x509_crq_set_dn(gnutls_x509_crq_t crq, const char *dn, const char **err)
{
return crt_set_dn((set_dn_func) gnutls_x509_crq_set_dn_by_oid, crq,
dn, err);
}
static
-int set_dn_by_oid(gnutls_x509_dn_t dn, const char *oid, unsigned int raw_flag, const void *name, unsigned name_size)
+int set_dn_by_oid(gnutls_x509_dn_t dn, const char *oid, unsigned int raw_flag,
+ const void *name, unsigned name_size)
{
- return _gnutls_x509_set_dn_oid(dn->asn, "", oid, raw_flag, name, name_size);
+ return _gnutls_x509_set_dn_oid(dn->asn, "", oid, raw_flag, name,
+ name_size);
}
/**
@@ -375,8 +383,7 @@ gnutls_x509_dn_set_str(gnutls_x509_dn_t dn, const char *str, const char **err)
return GNUTLS_E_INVALID_REQUEST;
}
- return crt_set_dn((set_dn_func) set_dn_by_oid, dn,
- str, err);
+ return crt_set_dn((set_dn_func) set_dn_by_oid, dn, str, err);
}
/**
@@ -433,8 +440,7 @@ int gnutls_x509_dn_import(gnutls_x509_dn_t dn, const gnutls_datum_t * data)
if (data->data == NULL || data->size == 0)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- result = _asn1_strict_der_decode(&dn->asn,
- data->data, data->size, err);
+ result = _asn1_strict_der_decode(&dn->asn, data->data, data->size, err);
if (result != ASN1_SUCCESS) {
/* couldn't decode DER */
_gnutls_debug_log("ASN.1 Decoding error: %s\n", err);
@@ -483,7 +489,7 @@ void gnutls_x509_dn_deinit(gnutls_x509_dn_t dn)
int
gnutls_x509_dn_export(gnutls_x509_dn_t dn,
gnutls_x509_crt_fmt_t format, void *output_data,
- size_t * output_data_size)
+ size_t *output_data_size)
{
if (dn == NULL) {
gnutls_assert();
@@ -492,8 +498,7 @@ gnutls_x509_dn_export(gnutls_x509_dn_t dn,
return _gnutls_x509_export_int_named(dn->asn, "rdnSequence",
format, "NAME",
- output_data,
- output_data_size);
+ output_data, output_data_size);
}
/**
@@ -590,7 +595,7 @@ gnutls_x509_dn_get_rdn_ava(gnutls_x509_dn_t dn,
return GNUTLS_E_ASN1_ELEMENT_NOT_FOUND;
}
- ava->oid.data = (void *) vnode.value;
+ ava->oid.data = (void *)vnode.value;
ava->oid.size = vnode.value_len;
snprintf(rbuf, sizeof(rbuf), "?%d.value", iava);
@@ -619,8 +624,7 @@ gnutls_x509_dn_get_rdn_ava(gnutls_x509_dn_t dn,
ptr += lenlen;
remlen -= lenlen;
- ret =
- asn1_get_tag_der(ptr, remlen, &cls, &lenlen, &ava->value_tag);
+ ret = asn1_get_tag_der(ptr, remlen, &cls, &lenlen, &ava->value_tag);
if (ret) {
gnutls_assert();
return _gnutls_asn2err(ret);
@@ -639,7 +643,7 @@ gnutls_x509_dn_get_rdn_ava(gnutls_x509_dn_t dn,
}
ava->value.size = tmp;
}
- ava->value.data = (void *) (ptr + lenlen);
+ ava->value.data = (void *)(ptr + lenlen);
return 0;
}
@@ -659,15 +663,15 @@ gnutls_x509_dn_get_rdn_ava(gnutls_x509_dn_t dn,
*
* Since: 3.4.2
**/
-int
-gnutls_x509_dn_get_str(gnutls_x509_dn_t dn, gnutls_datum_t *str)
+int gnutls_x509_dn_get_str(gnutls_x509_dn_t dn, gnutls_datum_t * str)
{
if (dn == NULL) {
gnutls_assert();
return GNUTLS_E_INVALID_REQUEST;
}
- return _gnutls_x509_get_dn(dn->asn, "rdnSequence", str, GNUTLS_X509_DN_FLAG_COMPAT);
+ return _gnutls_x509_get_dn(dn->asn, "rdnSequence", str,
+ GNUTLS_X509_DN_FLAG_COMPAT);
}
/**
@@ -691,7 +695,8 @@ gnutls_x509_dn_get_str(gnutls_x509_dn_t dn, gnutls_datum_t *str)
* Since: 3.5.7
**/
int
-gnutls_x509_dn_get_str2(gnutls_x509_dn_t dn, gnutls_datum_t *str, unsigned flags)
+gnutls_x509_dn_get_str2(gnutls_x509_dn_t dn, gnutls_datum_t * str,
+ unsigned flags)
{
if (dn == NULL) {
gnutls_assert();
diff --git a/lib/x509/x509_ext.c b/lib/x509/x509_ext.c
index 0b4c6a0134..d369a47440 100644
--- a/lib/x509/x509_ext.c
+++ b/lib/x509/x509_ext.c
@@ -117,7 +117,8 @@ int gnutls_subject_alt_names_get(gnutls_subject_alt_names_t sans,
if (san_type)
*san_type = sans->names[seq].type;
- if (othername_oid != NULL && sans->names[seq].type == GNUTLS_SAN_OTHERNAME) {
+ if (othername_oid != NULL
+ && sans->names[seq].type == GNUTLS_SAN_OTHERNAME) {
othername_oid->data = sans->names[seq].othername_oid.data;
othername_oid->size = sans->names[seq].othername_oid.size;
}
@@ -148,7 +149,9 @@ int subject_alt_names_set(struct name_st **names,
}
*names = tmp;
- ret = _gnutls_alt_name_assign_virt_type(&(*names)[*size], san_type, san, othername_oid, raw);
+ ret =
+ _gnutls_alt_name_assign_virt_type(&(*names)[*size], san_type, san,
+ othername_oid, raw);
if (ret < 0)
return gnutls_assert_val(ret);
@@ -218,8 +221,8 @@ int gnutls_subject_alt_names_set(gnutls_subject_alt_names_t sans,
* Since: 3.3.0
**/
int gnutls_x509_ext_import_subject_alt_names(const gnutls_datum_t * ext,
- gnutls_subject_alt_names_t sans,
- unsigned int flags)
+ gnutls_subject_alt_names_t sans,
+ unsigned int flags)
{
asn1_node c2 = NULL;
int result, ret;
@@ -241,7 +244,7 @@ int gnutls_x509_ext_import_subject_alt_names(const gnutls_datum_t * ext,
goto cleanup;
}
- for (i=0;;i++) {
+ for (i = 0;; i++) {
san.data = NULL;
san.size = 0;
othername_oid.data = NULL;
@@ -298,7 +301,7 @@ int gnutls_x509_ext_import_subject_alt_names(const gnutls_datum_t * ext,
* Since: 3.3.0
**/
int gnutls_x509_ext_export_subject_alt_names(gnutls_subject_alt_names_t sans,
- gnutls_datum_t * ext)
+ gnutls_datum_t * ext)
{
asn1_node c2 = NULL;
int result, ret;
@@ -313,13 +316,22 @@ int gnutls_x509_ext_export_subject_alt_names(gnutls_subject_alt_names_t sans,
for (i = 0; i < sans->size; i++) {
if (sans->names[i].type == GNUTLS_SAN_OTHERNAME) {
- ret = _gnutls_write_new_othername(c2, "", (char*)sans->names[i].othername_oid.data,
- sans->names[i].san.data, sans->names[i].san.size);
+ ret =
+ _gnutls_write_new_othername(c2, "",
+ (char *)sans->
+ names[i].othername_oid.
+ data,
+ sans->names[i].san.data,
+ sans->names[i].
+ san.size);
} else {
ret =
- _gnutls_write_new_general_name(c2, "", sans->names[i].type,
- sans->names[i].san.data,
- sans->names[i].san.size);
+ _gnutls_write_new_general_name(c2, "",
+ sans->names[i].type,
+ sans->names[i].
+ san.data,
+ sans->names[i].
+ san.size);
}
if (ret < 0) {
@@ -367,8 +379,8 @@ int gnutls_x509_ext_export_subject_alt_names(gnutls_subject_alt_names_t sans,
* Since: 3.3.0
**/
int gnutls_x509_ext_import_name_constraints(const gnutls_datum_t * ext,
- gnutls_x509_name_constraints_t nc,
- unsigned int flags)
+ gnutls_x509_name_constraints_t nc,
+ unsigned int flags)
{
int result, ret;
asn1_node c2 = NULL;
@@ -390,7 +402,7 @@ int gnutls_x509_ext_import_name_constraints(const gnutls_datum_t * ext,
if (flags & GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND &&
(nc->permitted != NULL || nc->excluded != NULL)) {
- ret = gnutls_x509_name_constraints_init (&nc2);
+ ret = gnutls_x509_name_constraints_init(&nc2);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -443,7 +455,7 @@ int gnutls_x509_ext_import_name_constraints(const gnutls_datum_t * ext,
cleanup:
asn1_delete_structure(&c2);
if (nc2)
- gnutls_x509_name_constraints_deinit (nc2);
+ gnutls_x509_name_constraints_deinit(nc2);
return ret;
}
@@ -462,7 +474,7 @@ int gnutls_x509_ext_import_name_constraints(const gnutls_datum_t * ext,
* Since: 3.3.0
**/
int gnutls_x509_ext_export_name_constraints(gnutls_x509_name_constraints_t nc,
- gnutls_datum_t * ext)
+ gnutls_datum_t * ext)
{
int ret, result;
uint8_t null = 0;
@@ -602,7 +614,7 @@ int gnutls_x509_ext_export_name_constraints(gnutls_x509_name_constraints_t nc,
* Since: 3.3.0
**/
int gnutls_x509_ext_import_subject_key_id(const gnutls_datum_t * ext,
- gnutls_datum_t * id)
+ gnutls_datum_t * id)
{
int result, ret;
asn1_node c2 = NULL;
@@ -655,7 +667,7 @@ int gnutls_x509_ext_import_subject_key_id(const gnutls_datum_t * ext,
* Since: 3.3.0
**/
int gnutls_x509_ext_export_subject_key_id(const gnutls_datum_t * id,
- gnutls_datum_t * ext)
+ gnutls_datum_t * ext)
{
asn1_node c2 = NULL;
int ret, result;
@@ -788,9 +800,9 @@ int gnutls_x509_aki_set_id(gnutls_x509_aki_t aki, const gnutls_datum_t * id)
**/
int gnutls_x509_aki_set_cert_issuer(gnutls_x509_aki_t aki,
unsigned int san_type,
- const gnutls_datum_t *san,
+ const gnutls_datum_t * san,
const char *othername_oid,
- const gnutls_datum_t *serial)
+ const gnutls_datum_t * serial)
{
int ret;
gnutls_datum_t t_san, t_othername_oid = { NULL, 0 };
@@ -846,9 +858,9 @@ int gnutls_x509_aki_set_cert_issuer(gnutls_x509_aki_t aki,
**/
int gnutls_x509_aki_get_cert_issuer(gnutls_x509_aki_t aki, unsigned int seq,
unsigned int *san_type,
- gnutls_datum_t *san,
- gnutls_datum_t *othername_oid,
- gnutls_datum_t *serial)
+ gnutls_datum_t * san,
+ gnutls_datum_t * othername_oid,
+ gnutls_datum_t * serial)
{
if (seq >= aki->cert_issuer.size)
return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
@@ -894,8 +906,8 @@ int gnutls_x509_aki_get_cert_issuer(gnutls_x509_aki_t aki, unsigned int seq,
* Since: 3.3.0
**/
int gnutls_x509_ext_import_authority_key_id(const gnutls_datum_t * ext,
- gnutls_x509_aki_t aki,
- unsigned int flags)
+ gnutls_x509_aki_t aki,
+ unsigned int flags)
{
int ret;
unsigned i;
@@ -918,7 +930,7 @@ int gnutls_x509_ext_import_authority_key_id(const gnutls_datum_t * ext,
}
/* Read authorityCertIssuer */
- for (i=0;;i++) {
+ for (i = 0;; i++) {
san.data = NULL;
san.size = 0;
othername_oid.data = NULL;
@@ -998,7 +1010,7 @@ int gnutls_x509_ext_import_authority_key_id(const gnutls_datum_t * ext,
* Since: 3.3.0
**/
int gnutls_x509_ext_export_authority_key_id(gnutls_x509_aki_t aki,
- gnutls_datum_t * ext)
+ gnutls_datum_t * ext)
{
asn1_node c2 = NULL;
unsigned i;
@@ -1035,7 +1047,8 @@ int gnutls_x509_ext_export_authority_key_id(gnutls_x509_aki_t aki,
goto cleanup;
}
} else {
- (void)asn1_write_value(c2, "authorityCertSerialNumber", NULL, 0);
+ (void)asn1_write_value(c2, "authorityCertSerialNumber", NULL,
+ 0);
}
if (aki->cert_issuer.size == 0) {
@@ -1093,7 +1106,7 @@ int gnutls_x509_ext_export_authority_key_id(gnutls_x509_aki_t aki,
* Since: 3.3.0
**/
int gnutls_x509_ext_import_key_usage(const gnutls_datum_t * ext,
- unsigned int *key_usage)
+ unsigned int *key_usage)
{
asn1_node c2 = NULL;
int len, result;
@@ -1135,26 +1148,26 @@ static int _last_key_usage_set_bit(int usage)
/* the byte ordering is a bit strange here, see how GNUTLS_KEY_* is laid out, and how
* asn1_write_value() writes out BIT STRING objects.
*/
- if (usage & GNUTLS_KEY_DECIPHER_ONLY)
- return 9;
- else if (usage & GNUTLS_KEY_ENCIPHER_ONLY)
- return 8;
- else if (usage & GNUTLS_KEY_CRL_SIGN)
- return 7;
- else if (usage & GNUTLS_KEY_KEY_CERT_SIGN)
- return 6;
- else if (usage & GNUTLS_KEY_KEY_AGREEMENT)
- return 5;
- else if (usage & GNUTLS_KEY_DATA_ENCIPHERMENT)
- return 4;
- else if (usage & GNUTLS_KEY_KEY_ENCIPHERMENT)
- return 3;
- else if (usage & GNUTLS_KEY_NON_REPUDIATION)
- return 2;
- else if (usage & GNUTLS_KEY_DIGITAL_SIGNATURE)
- return 1;
- else
- return 0;
+ if (usage & GNUTLS_KEY_DECIPHER_ONLY)
+ return 9;
+ else if (usage & GNUTLS_KEY_ENCIPHER_ONLY)
+ return 8;
+ else if (usage & GNUTLS_KEY_CRL_SIGN)
+ return 7;
+ else if (usage & GNUTLS_KEY_KEY_CERT_SIGN)
+ return 6;
+ else if (usage & GNUTLS_KEY_KEY_AGREEMENT)
+ return 5;
+ else if (usage & GNUTLS_KEY_DATA_ENCIPHERMENT)
+ return 4;
+ else if (usage & GNUTLS_KEY_KEY_ENCIPHERMENT)
+ return 3;
+ else if (usage & GNUTLS_KEY_NON_REPUDIATION)
+ return 2;
+ else if (usage & GNUTLS_KEY_DIGITAL_SIGNATURE)
+ return 1;
+ else
+ return 0;
}
/**
@@ -1227,7 +1240,7 @@ int gnutls_x509_ext_export_key_usage(unsigned int usage, gnutls_datum_t * ext)
* Since: 3.6.0
**/
int gnutls_x509_ext_import_inhibit_anypolicy(const gnutls_datum_t * ext,
- unsigned int *skipcerts)
+ unsigned int *skipcerts)
{
int ret;
@@ -1253,12 +1266,15 @@ int gnutls_x509_ext_import_inhibit_anypolicy(const gnutls_datum_t * ext,
*
* Since: 3.6.0
**/
-int gnutls_x509_ext_export_inhibit_anypolicy(unsigned int skipcerts, gnutls_datum_t * ext)
+int gnutls_x509_ext_export_inhibit_anypolicy(unsigned int skipcerts,
+ gnutls_datum_t * ext)
{
asn1_node c2 = NULL;
int result, ret;
- result = asn1_create_element(_gnutls_get_gnutls_asn(), "GNUTLS.DSAPublicKey", &c2);
+ result =
+ asn1_create_element(_gnutls_get_gnutls_asn(), "GNUTLS.DSAPublicKey",
+ &c2);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -1300,8 +1316,8 @@ int gnutls_x509_ext_export_inhibit_anypolicy(unsigned int skipcerts, gnutls_datu
* Since: 3.3.0
**/
int gnutls_x509_ext_import_private_key_usage_period(const gnutls_datum_t * ext,
- time_t * activation,
- time_t * expiration)
+ time_t * activation,
+ time_t * expiration)
{
int result, ret;
asn1_node c2 = NULL;
@@ -1353,8 +1369,8 @@ int gnutls_x509_ext_import_private_key_usage_period(const gnutls_datum_t * ext,
* Since: 3.3.0
**/
int gnutls_x509_ext_export_private_key_usage_period(time_t activation,
- time_t expiration,
- gnutls_datum_t * ext)
+ time_t expiration,
+ gnutls_datum_t * ext)
{
int result;
asn1_node c2 = NULL;
@@ -1407,10 +1423,10 @@ int gnutls_x509_ext_export_private_key_usage_period(time_t activation,
* Since: 3.3.0
**/
int gnutls_x509_ext_import_basic_constraints(const gnutls_datum_t * ext,
- unsigned int *ca, int *pathlen)
+ unsigned int *ca, int *pathlen)
{
asn1_node c2 = NULL;
- char str[128]="";
+ char str[128] = "";
int len, result;
if ((result = asn1_create_element
@@ -1475,7 +1491,7 @@ int gnutls_x509_ext_import_basic_constraints(const gnutls_datum_t * ext,
* Since: 3.3.0
**/
int gnutls_x509_ext_export_basic_constraints(unsigned int ca, int pathlen,
- gnutls_datum_t * ext)
+ gnutls_datum_t * ext)
{
asn1_node c2 = NULL;
const char *str;
@@ -1547,9 +1563,9 @@ int gnutls_x509_ext_export_basic_constraints(unsigned int ca, int pathlen,
*
* Since: 3.3.0
**/
-int gnutls_x509_ext_import_proxy(const gnutls_datum_t *ext, int *pathlen,
- char **policyLanguage, char **policy,
- size_t *sizeof_policy)
+int gnutls_x509_ext_import_proxy(const gnutls_datum_t * ext, int *pathlen,
+ char **policyLanguage, char **policy,
+ size_t *sizeof_policy)
{
asn1_node c2 = NULL;
int result;
@@ -1640,9 +1656,9 @@ int gnutls_x509_ext_import_proxy(const gnutls_datum_t *ext, int *pathlen,
*
* Since: 3.3.0
**/
-int gnutls_x509_ext_export_proxy(int pathLenConstraint, const char *policyLanguage,
- const char *policy, size_t sizeof_policy,
- gnutls_datum_t * ext)
+int gnutls_x509_ext_export_proxy(int pathLenConstraint,
+ const char *policyLanguage, const char *policy,
+ size_t sizeof_policy, gnutls_datum_t * ext)
{
asn1_node c2 = NULL;
int result;
@@ -1708,7 +1724,7 @@ static int decode_user_notice(const void *data, size_t size,
int ret, len;
char choice_type[64];
char name[128];
- gnutls_datum_t td = {NULL,0}, utd;
+ gnutls_datum_t td = { NULL, 0 }, utd;
ret = asn1_create_element(_gnutls_get_pkix(), "PKIX1.UserNotice", &c2);
if (ret != ASN1_SUCCESS) {
@@ -1918,8 +1934,8 @@ int gnutls_x509_policies_set(gnutls_x509_policies_t policies,
* Since: 3.3.0
**/
int gnutls_x509_ext_import_policies(const gnutls_datum_t * ext,
- gnutls_x509_policies_t policies,
- unsigned int flags)
+ gnutls_x509_policies_t policies,
+ unsigned int flags)
{
asn1_node c2 = NULL;
char tmpstr[128];
@@ -1953,7 +1969,7 @@ int gnutls_x509_ext_import_policies(const gnutls_datum_t * ext,
/* create a string like "?1"
*/
snprintf(tmpstr, sizeof(tmpstr), "?%u.policyIdentifier", j + 1);
- current = j+1;
+ current = j + 1;
ret = _gnutls_x509_read_value(c2, tmpstr, &tmpd);
if (ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND)
@@ -1993,7 +2009,8 @@ int gnutls_x509_ext_import_policies(const gnutls_datum_t * ext,
ret =
_gnutls_x509_read_string(c2, tmpstr, &td,
- ASN1_ETYPE_IA5_STRING, 0);
+ ASN1_ETYPE_IA5_STRING,
+ 0);
if (ret < 0) {
gnutls_assert();
goto full_cleanup;
@@ -2006,7 +2023,7 @@ int gnutls_x509_ext_import_policies(const gnutls_datum_t * ext,
policies->policy[j].qualifier[i].type =
GNUTLS_X509_QUALIFIER_URI;
} else if (strcmp(tmpoid, "1.3.6.1.5.5.7.2.2") == 0) {
- gnutls_datum_t txt = {NULL, 0};
+ gnutls_datum_t txt = { NULL, 0 };
snprintf(tmpstr, sizeof(tmpstr),
"?%u.policyQualifiers.?%u.qualifier",
@@ -2125,11 +2142,11 @@ static int encode_user_notice(const gnutls_datum_t * txt,
* Since: 3.3.0
**/
int gnutls_x509_ext_export_policies(gnutls_x509_policies_t policies,
- gnutls_datum_t * ext)
+ gnutls_datum_t * ext)
{
int result;
unsigned i, j;
- gnutls_datum_t der_data = {NULL, 0}, tmpd;
+ gnutls_datum_t der_data = { NULL, 0 }, tmpd;
asn1_node c2 = NULL;
const char *oid;
@@ -2162,15 +2179,17 @@ int gnutls_x509_ext_export_policies(gnutls_x509_policies_t policies,
goto cleanup;
}
- if (policies->policy[j].qualifiers == 0) {
- /* remove the optional policyQualifiers if none are present. */
- result = asn1_write_value(c2, "?LAST.policyQualifiers", NULL, 0);
- if (result != ASN1_SUCCESS) {
- gnutls_assert();
- result = _gnutls_asn2err(result);
- goto cleanup;
- }
- }
+ if (policies->policy[j].qualifiers == 0) {
+ /* remove the optional policyQualifiers if none are present. */
+ result =
+ asn1_write_value(c2, "?LAST.policyQualifiers", NULL,
+ 0);
+ if (result != ASN1_SUCCESS) {
+ gnutls_assert();
+ result = _gnutls_asn2err(result);
+ goto cleanup;
+ }
+ }
for (i = 0;
i < MIN(policies->policy[j].qualifiers,
@@ -2430,8 +2449,8 @@ int gnutls_x509_crl_dist_points_set(gnutls_x509_crl_dist_points_t cdp,
* Since: 3.3.0
**/
int gnutls_x509_ext_import_crl_dist_points(const gnutls_datum_t * ext,
- gnutls_x509_crl_dist_points_t cdp,
- unsigned int flags)
+ gnutls_x509_crl_dist_points_t cdp,
+ unsigned int flags)
{
int result;
asn1_node c2 = NULL;
@@ -2439,7 +2458,7 @@ int gnutls_x509_ext_import_crl_dist_points(const gnutls_datum_t * ext,
int len, ret;
uint8_t reasons[2];
unsigned i, type, rflags, j;
- gnutls_datum_t san = {NULL, 0};
+ gnutls_datum_t san = { NULL, 0 };
result = asn1_create_element
(_gnutls_get_pkix(), "PKIX1.CRLDistributionPoints", &c2);
@@ -2484,7 +2503,7 @@ int gnutls_x509_ext_import_crl_dist_points(const gnutls_datum_t * ext,
snprintf(name, sizeof(name),
"?%u.distributionPoint.fullName", (unsigned)i + 1);
- for (j=0;;j++) {
+ for (j = 0;; j++) {
san.data = NULL;
san.size = 0;
@@ -2502,7 +2521,7 @@ int gnutls_x509_ext_import_crl_dist_points(const gnutls_datum_t * ext,
ret = crl_dist_points_set(cdp, type, &san, rflags);
if (ret < 0)
break;
- san.data = NULL; /* it is now in cdp */
+ san.data = NULL; /* it is now in cdp */
}
i++;
@@ -2535,7 +2554,7 @@ int gnutls_x509_ext_import_crl_dist_points(const gnutls_datum_t * ext,
* Since: 3.3.0
**/
int gnutls_x509_ext_export_crl_dist_points(gnutls_x509_crl_dist_points_t cdp,
- gnutls_datum_t * ext)
+ gnutls_datum_t * ext)
{
asn1_node c2 = NULL;
int result;
@@ -2697,9 +2716,8 @@ void gnutls_x509_aia_deinit(gnutls_x509_aia_t aia)
* Since: 3.3.0
**/
int gnutls_x509_aia_get(gnutls_x509_aia_t aia, unsigned int seq,
- gnutls_datum_t *oid,
- unsigned *san_type,
- gnutls_datum_t *san)
+ gnutls_datum_t * oid,
+ unsigned *san_type, gnutls_datum_t * san)
{
if (seq >= aia->size)
return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
@@ -2719,23 +2737,25 @@ int gnutls_x509_aia_get(gnutls_x509_aia_t aia, unsigned int seq,
return 0;
}
-int _gnutls_alt_name_process(gnutls_datum_t *out, unsigned type, const gnutls_datum_t *san, unsigned raw)
+int _gnutls_alt_name_process(gnutls_datum_t * out, unsigned type,
+ const gnutls_datum_t * san, unsigned raw)
{
int ret;
if (type == GNUTLS_SAN_DNSNAME && !raw) {
- ret = gnutls_idna_map((char*)san->data, san->size, out, 0);
+ ret = gnutls_idna_map((char *)san->data, san->size, out, 0);
if (ret < 0) {
return gnutls_assert_val(ret);
}
} else if (type == GNUTLS_SAN_RFC822NAME && !raw) {
- ret = _gnutls_idna_email_map((char*)san->data, san->size, out);
+ ret = _gnutls_idna_email_map((char *)san->data, san->size, out);
if (ret < 0) {
return gnutls_assert_val(ret);
}
} else if (type == GNUTLS_SAN_URI && !raw) {
- if (!_gnutls_str_is_print((char*)san->data, san->size)) {
+ if (!_gnutls_str_is_print((char *)san->data, san->size)) {
_gnutls_debug_log("non-ASCII URIs are not supported\n");
- return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
+ return
+ gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
} else {
ret = _gnutls_set_strdatum(out, san->data, san->size);
if (ret < 0)
@@ -2773,8 +2793,7 @@ int _gnutls_alt_name_process(gnutls_datum_t *out, unsigned type, const gnutls_da
**/
int gnutls_x509_aia_set(gnutls_x509_aia_t aia,
const char *oid,
- unsigned san_type,
- const gnutls_datum_t * san)
+ unsigned san_type, const gnutls_datum_t * san)
{
int ret;
void *tmp;
@@ -2784,16 +2803,17 @@ int gnutls_x509_aia_set(gnutls_x509_aia_t aia,
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
- tmp = _gnutls_reallocarray(aia->aia, aia->size + 1, sizeof(aia->aia[0]));
+ tmp =
+ _gnutls_reallocarray(aia->aia, aia->size + 1, sizeof(aia->aia[0]));
if (tmp == NULL) {
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
}
aia->aia = tmp;
indx = aia->size;
-
+
aia->aia[indx].san_type = san_type;
if (oid) {
- aia->aia[indx].oid.data = (void*)gnutls_strdup(oid);
+ aia->aia[indx].oid.data = (void *)gnutls_strdup(oid);
aia->aia[indx].oid.size = strlen(oid);
} else {
aia->aia[indx].oid.data = NULL;
@@ -2806,17 +2826,16 @@ int gnutls_x509_aia_set(gnutls_x509_aia_t aia,
aia->size++;
- return 0;
+ return 0;
}
-
static int parse_aia(asn1_node c2, gnutls_x509_aia_t aia)
{
int len;
char nptr[MAX_NAME_SIZE];
int ret, result;
char tmpoid[MAX_OID_SIZE];
- void * tmp;
+ void *tmp;
unsigned i, indx;
for (i = 1;; i++) {
@@ -2848,14 +2867,15 @@ static int parse_aia(asn1_node c2, gnutls_x509_aia_t aia)
snprintf(nptr, sizeof(nptr), "?%u.accessLocation", i);
-
- ret = _gnutls_parse_general_name2(c2, nptr, -1, &aia->aia[indx].san,
- &aia->aia[indx].san_type, 0);
+ ret =
+ _gnutls_parse_general_name2(c2, nptr, -1,
+ &aia->aia[indx].san,
+ &aia->aia[indx].san_type, 0);
if (ret < 0)
break;
/* we do the strdup after parsing to avoid a memory leak */
- aia->aia[indx].oid.data = (void*)gnutls_strdup(tmpoid);
+ aia->aia[indx].oid.data = (void *)gnutls_strdup(tmpoid);
aia->aia[indx].oid.size = strlen(tmpoid);
aia->size++;
@@ -2890,8 +2910,7 @@ static int parse_aia(asn1_node c2, gnutls_x509_aia_t aia)
* Since: 3.3.0
**/
int gnutls_x509_ext_import_aia(const gnutls_datum_t * ext,
- gnutls_x509_aia_t aia,
- unsigned int flags)
+ gnutls_x509_aia_t aia, unsigned int flags)
{
int ret;
asn1_node c2 = NULL;
@@ -2941,8 +2960,7 @@ int gnutls_x509_ext_import_aia(const gnutls_datum_t * ext,
*
* Since: 3.3.0
**/
-int gnutls_x509_ext_export_aia(gnutls_x509_aia_t aia,
- gnutls_datum_t * ext)
+int gnutls_x509_ext_export_aia(gnutls_x509_aia_t aia, gnutls_datum_t * ext)
{
int ret, result;
asn1_node c2 = NULL;
@@ -2957,7 +2975,7 @@ int gnutls_x509_ext_export_aia(gnutls_x509_aia_t aia,
/* 1. create a new element.
*/
- for (i=0;i<aia->size;i++) {
+ for (i = 0; i < aia->size; i++) {
result = asn1_write_value(c2, "", "NEW", 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
@@ -2967,7 +2985,9 @@ int gnutls_x509_ext_export_aia(gnutls_x509_aia_t aia,
/* 2. Add the OID.
*/
- result = asn1_write_value(c2, "?LAST.accessMethod", aia->aia[i].oid.data, 1);
+ result =
+ asn1_write_value(c2, "?LAST.accessMethod",
+ aia->aia[i].oid.data, 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
ret = _gnutls_asn2err(result);
@@ -2976,10 +2996,10 @@ int gnutls_x509_ext_export_aia(gnutls_x509_aia_t aia,
ret =
_gnutls_write_general_name(c2,
- "?LAST.accessLocation",
- aia->aia[i].san_type,
- aia->aia[i].san.data,
- aia->aia[i].san.size);
+ "?LAST.accessLocation",
+ aia->aia[i].san_type,
+ aia->aia[i].san.data,
+ aia->aia[i].san.size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2998,7 +3018,6 @@ int gnutls_x509_ext_export_aia(gnutls_x509_aia_t aia,
return ret;
}
-
struct gnutls_x509_key_purposes_st {
gnutls_datum_t oid[MAX_ENTRIES];
unsigned int size;
@@ -3065,7 +3084,7 @@ int gnutls_x509_key_purpose_set(gnutls_x509_key_purposes_t p, const char *oid)
if (p->size + 1 > MAX_ENTRIES)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- p->oid[p->size].data = (void*)gnutls_strdup(oid);
+ p->oid[p->size].data = (void *)gnutls_strdup(oid);
if (p->oid[p->size].data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -3089,7 +3108,8 @@ int gnutls_x509_key_purpose_set(gnutls_x509_key_purposes_t p, const char *oid)
*
* Since: 3.3.0
**/
-int gnutls_x509_key_purpose_get(gnutls_x509_key_purposes_t p, unsigned idx, gnutls_datum_t *oid)
+int gnutls_x509_key_purpose_get(gnutls_x509_key_purposes_t p, unsigned idx,
+ gnutls_datum_t * oid)
{
if (idx >= p->size)
return gnutls_assert_val(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
@@ -3115,13 +3135,13 @@ int gnutls_x509_key_purpose_get(gnutls_x509_key_purposes_t p, unsigned idx, gnut
* Since: 3.3.0
**/
int gnutls_x509_ext_import_key_purposes(const gnutls_datum_t * ext,
- gnutls_x509_key_purposes_t p,
- unsigned int flags)
+ gnutls_x509_key_purposes_t p,
+ unsigned int flags)
{
char tmpstr[MAX_NAME_SIZE];
int result, ret;
asn1_node c2 = NULL;
- gnutls_datum_t oid = {NULL, 0};
+ gnutls_datum_t oid = { NULL, 0 };
unsigned i;
result = asn1_create_element
@@ -3142,10 +3162,10 @@ int gnutls_x509_ext_import_key_purposes(const gnutls_datum_t * ext,
i = 0;
p->size = 0;
- for (;i<MAX_ENTRIES;i++) {
+ for (; i < MAX_ENTRIES; i++) {
/* create a string like "?1"
*/
- snprintf(tmpstr, sizeof(tmpstr), "?%u", i+1);
+ snprintf(tmpstr, sizeof(tmpstr), "?%u", i + 1);
ret = _gnutls_x509_read_value(c2, tmpstr, &oid);
if (ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND) {
@@ -3188,7 +3208,7 @@ int gnutls_x509_ext_import_key_purposes(const gnutls_datum_t * ext,
* Since: 3.3.0
**/
int gnutls_x509_ext_export_key_purposes(gnutls_x509_key_purposes_t p,
- gnutls_datum_t * ext)
+ gnutls_datum_t * ext)
{
int result, ret;
asn1_node c2 = NULL;
@@ -3203,7 +3223,7 @@ int gnutls_x509_ext_export_key_purposes(gnutls_x509_key_purposes_t p,
/* generate the extension.
*/
- for (i=0;i<p->size;i++) {
+ for (i = 0; i < p->size; i++) {
/* 1. create a new element.
*/
result = asn1_write_value(c2, "", "NEW", 1);
@@ -3244,13 +3264,14 @@ int gnutls_x509_ext_export_key_purposes(gnutls_x509_key_purposes_t p,
*
* Since: 3.3.8
**/
-void gnutls_x509_ext_deinit(gnutls_x509_ext_st *ext)
+void gnutls_x509_ext_deinit(gnutls_x509_ext_st * ext)
{
gnutls_free(ext->oid);
gnutls_free(ext->data.data);
}
-int _gnutls_x509_decode_ext(const gnutls_datum_t *der, gnutls_x509_ext_st *out)
+int _gnutls_x509_decode_ext(const gnutls_datum_t * der,
+ gnutls_x509_ext_st * out)
{
asn1_node c2 = NULL;
char str_critical[10];
@@ -3260,7 +3281,8 @@ int _gnutls_x509_decode_ext(const gnutls_datum_t *der, gnutls_x509_ext_st *out)
memset(out, 0, sizeof(*out));
/* decode der */
- result = asn1_create_element(_gnutls_get_pkix(), "PKIX1.Extension", &c2);
+ result =
+ asn1_create_element(_gnutls_get_pkix(), "PKIX1.Extension", &c2);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -3273,7 +3295,7 @@ int _gnutls_x509_decode_ext(const gnutls_datum_t *der, gnutls_x509_ext_st *out)
goto cleanup;
}
- len = sizeof(oid)-1;
+ len = sizeof(oid) - 1;
result = asn1_read_value(c2, "extnID", oid, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
@@ -3281,7 +3303,7 @@ int _gnutls_x509_decode_ext(const gnutls_datum_t *der, gnutls_x509_ext_st *out)
goto cleanup;
}
- len = sizeof(str_critical)-1;
+ len = sizeof(str_critical) - 1;
result = asn1_read_value(c2, "critical", str_critical, &len);
if (result != ASN1_SUCCESS) {
gnutls_assert();
@@ -3295,7 +3317,8 @@ int _gnutls_x509_decode_ext(const gnutls_datum_t *der, gnutls_x509_ext_st *out)
out->critical = 0;
ret = _gnutls_x509_read_value(c2, "extnValue", &out->data);
- if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE || ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND) {
+ if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE
+ || ret == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND) {
out->data.data = NULL;
out->data.size = 0;
} else if (ret < 0) {
@@ -3316,12 +3339,13 @@ int _gnutls_x509_decode_ext(const gnutls_datum_t *der, gnutls_x509_ext_st *out)
cleanup:
asn1_delete_structure(&c2);
return ret;
-
+
}
/* flags can be zero or GNUTLS_EXT_FLAG_APPEND
*/
-static int parse_tlsfeatures(asn1_node c2, gnutls_x509_tlsfeatures_t f, unsigned flags)
+static int parse_tlsfeatures(asn1_node c2, gnutls_x509_tlsfeatures_t f,
+ unsigned flags)
{
char nptr[MAX_NAME_SIZE];
int result;
@@ -3337,10 +3361,10 @@ static int parse_tlsfeatures(asn1_node c2, gnutls_x509_tlsfeatures_t f, unsigned
result = _gnutls_x509_read_uint(c2, nptr, &feature);
- if (result == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND || result == GNUTLS_E_ASN1_VALUE_NOT_FOUND) {
+ if (result == GNUTLS_E_ASN1_ELEMENT_NOT_FOUND
+ || result == GNUTLS_E_ASN1_VALUE_NOT_FOUND) {
break;
- }
- else if (result != GNUTLS_E_SUCCESS) {
+ } else if (result != GNUTLS_E_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
}
@@ -3351,7 +3375,7 @@ static int parse_tlsfeatures(asn1_node c2, gnutls_x509_tlsfeatures_t f, unsigned
}
/* skip duplicates */
- for (j=0;j<f->size;j++) {
+ for (j = 0; j < f->size; j++) {
if (f->feature[j] == feature) {
skip = 1;
break;
@@ -3359,7 +3383,8 @@ static int parse_tlsfeatures(asn1_node c2, gnutls_x509_tlsfeatures_t f, unsigned
}
if (!skip) {
- if (f->size >= sizeof(f->feature)/sizeof(f->feature[0])) {
+ if (f->size >=
+ sizeof(f->feature) / sizeof(f->feature[0])) {
gnutls_assert();
return GNUTLS_E_INTERNAL_ERROR;
}
@@ -3404,8 +3429,7 @@ int gnutls_x509_ext_import_tlsfeatures(const gnutls_datum_t * ext,
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
- ret = asn1_create_element(_gnutls_get_pkix(),
- "PKIX1.TlsFeatures", &c2);
+ ret = asn1_create_element(_gnutls_get_pkix(), "PKIX1.TlsFeatures", &c2);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(ret);
@@ -3443,7 +3467,7 @@ int gnutls_x509_ext_import_tlsfeatures(const gnutls_datum_t * ext,
* Since: 3.5.1
**/
int gnutls_x509_ext_export_tlsfeatures(gnutls_x509_tlsfeatures_t f,
- gnutls_datum_t * ext)
+ gnutls_datum_t * ext)
{
if (f == NULL) {
gnutls_assert();
@@ -3502,7 +3526,8 @@ int gnutls_x509_ext_export_tlsfeatures(gnutls_x509_tlsfeatures_t f,
*
* Since: 3.5.1
**/
-int gnutls_x509_tlsfeatures_add(gnutls_x509_tlsfeatures_t f, unsigned int feature)
+int gnutls_x509_tlsfeatures_add(gnutls_x509_tlsfeatures_t f,
+ unsigned int feature)
{
if (f == NULL) {
gnutls_assert();
@@ -3512,7 +3537,7 @@ int gnutls_x509_tlsfeatures_add(gnutls_x509_tlsfeatures_t f, unsigned int featur
if (feature > UINT16_MAX)
return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST);
- if (f->size >= sizeof(f->feature)/sizeof(f->feature[0]))
+ if (f->size >= sizeof(f->feature) / sizeof(f->feature[0]))
return gnutls_assert_val(GNUTLS_E_INTERNAL_ERROR);
f->feature[f->size++] = feature;
@@ -3577,69 +3602,56 @@ struct sct_sign_algorithm_st {
static const struct sct_sign_algorithm_st algos[] = {
{
- .codepoint = { 0x01, 0x01 },
- .sign_algo = GNUTLS_SIGN_RSA_MD5
- },
+ .codepoint = {0x01, 0x01},
+ .sign_algo = GNUTLS_SIGN_RSA_MD5},
{
- .codepoint = { 0x02, 0x01 },
- .sign_algo = GNUTLS_SIGN_RSA_SHA1
- },
+ .codepoint = {0x02, 0x01},
+ .sign_algo = GNUTLS_SIGN_RSA_SHA1},
{
- .codepoint = { 0x03, 0x01 },
- .sign_algo = GNUTLS_SIGN_RSA_SHA224
- },
+ .codepoint = {0x03, 0x01},
+ .sign_algo = GNUTLS_SIGN_RSA_SHA224},
{
- .codepoint = { 0x04, 0x01 },
- .sign_algo = GNUTLS_SIGN_RSA_SHA256
- },
+ .codepoint = {0x04, 0x01},
+ .sign_algo = GNUTLS_SIGN_RSA_SHA256},
{
- .codepoint = { 0x05, 0x01 },
- .sign_algo = GNUTLS_SIGN_RSA_SHA384
- },
+ .codepoint = {0x05, 0x01},
+ .sign_algo = GNUTLS_SIGN_RSA_SHA384},
{
- .codepoint = { 0x06, 0x01 },
- .sign_algo = GNUTLS_SIGN_RSA_SHA512,
- },
+ .codepoint = {0x06, 0x01},
+ .sign_algo = GNUTLS_SIGN_RSA_SHA512,
+ },
{
- .codepoint = { 0x02, 0x02 },
- .sign_algo = GNUTLS_SIGN_DSA_SHA1
- },
+ .codepoint = {0x02, 0x02},
+ .sign_algo = GNUTLS_SIGN_DSA_SHA1},
{
- .codepoint = { 0x03, 0x02 },
- .sign_algo = GNUTLS_SIGN_DSA_SHA224
- },
+ .codepoint = {0x03, 0x02},
+ .sign_algo = GNUTLS_SIGN_DSA_SHA224},
{
- .codepoint = { 0x04, 0x02 },
- .sign_algo = GNUTLS_SIGN_DSA_SHA256
- },
+ .codepoint = {0x04, 0x02},
+ .sign_algo = GNUTLS_SIGN_DSA_SHA256},
{
- .codepoint = { 0x05, 0x02 },
- .sign_algo = GNUTLS_SIGN_DSA_SHA384
- },
+ .codepoint = {0x05, 0x02},
+ .sign_algo = GNUTLS_SIGN_DSA_SHA384},
{
- .codepoint = { 0x06, 0x02 },
- .sign_algo = GNUTLS_SIGN_DSA_SHA512,
- },
+ .codepoint = {0x06, 0x02},
+ .sign_algo = GNUTLS_SIGN_DSA_SHA512,
+ },
{
- .codepoint = { 0x02, 0x03 },
- .sign_algo = GNUTLS_SIGN_ECDSA_SHA1
- },
+ .codepoint = {0x02, 0x03},
+ .sign_algo = GNUTLS_SIGN_ECDSA_SHA1},
{
- .codepoint = { 0x03, 0x03 },
- .sign_algo = GNUTLS_SIGN_ECDSA_SHA224
- },
+ .codepoint = {0x03, 0x03},
+ .sign_algo = GNUTLS_SIGN_ECDSA_SHA224},
{
- .codepoint = { 0x04, 0x03 },
- .sign_algo = GNUTLS_SIGN_ECDSA_SHA256
- },
+ .codepoint = {0x04, 0x03},
+ .sign_algo = GNUTLS_SIGN_ECDSA_SHA256},
{
- .codepoint = { 0x05, 0x03 },
- .sign_algo = GNUTLS_SIGN_ECDSA_SHA384
- },
+ .codepoint = {0x05, 0x03},
+ .sign_algo = GNUTLS_SIGN_ECDSA_SHA384},
{
- .codepoint = { 0x06, 0x03 },
- .sign_algo = GNUTLS_SIGN_ECDSA_SHA512,
- }
+ .codepoint = {0x06, 0x03},
+ .sign_algo = GNUTLS_SIGN_ECDSA_SHA512,
+ }
};
static gnutls_sign_algorithm_t get_sigalg(uint8_t hash_algo, uint8_t sig_algo)
@@ -3652,7 +3664,8 @@ static gnutls_sign_algorithm_t get_sigalg(uint8_t hash_algo, uint8_t sig_algo)
for (i = 0; i < num_algos; i++) {
algo = &algos[i];
- if (algo->codepoint[0] == hash_algo && algo->codepoint[1] == sig_algo)
+ if (algo->codepoint[0] == hash_algo
+ && algo->codepoint[1] == sig_algo)
break;
}
@@ -3681,7 +3694,7 @@ static int write_sigalg(gnutls_sign_algorithm_t sigalg, uint8_t out[])
return 0;
}
-static int _gnutls_parse_ct_sct(uint8_t *ptr, uint16_t length,
+static int _gnutls_parse_ct_sct(uint8_t * ptr, uint16_t length,
struct ct_sct_st *sct)
{
uint16_t sig_length;
@@ -3691,18 +3704,20 @@ static int _gnutls_parse_ct_sct(uint8_t *ptr, uint16_t length,
sct->signature.data = NULL;
DECR_LENGTH_RET(length, 1, GNUTLS_E_PREMATURE_TERMINATION);
- sct->version = (int) *ptr;
+ sct->version = (int)*ptr;
ptr++;
/* LogID
* In version 1, it has a fixed length of 32 bytes.
*/
- DECR_LENGTH_RET(length, SCT_V1_LOGID_SIZE, GNUTLS_E_PREMATURE_TERMINATION);
+ DECR_LENGTH_RET(length, SCT_V1_LOGID_SIZE,
+ GNUTLS_E_PREMATURE_TERMINATION);
memcpy(sct->logid, ptr, SCT_V1_LOGID_SIZE);
ptr += SCT_V1_LOGID_SIZE;
/* Timestamp */
- DECR_LENGTH_RET(length, sizeof(uint64_t), GNUTLS_E_PREMATURE_TERMINATION);
+ DECR_LENGTH_RET(length, sizeof(uint64_t),
+ GNUTLS_E_PREMATURE_TERMINATION);
sct->timestamp = (uint64_t) _gnutls_read_uint64(ptr);
ptr += sizeof(uint64_t);
@@ -3711,7 +3726,7 @@ static int _gnutls_parse_ct_sct(uint8_t *ptr, uint16_t length,
* Check that there are actually no extensions - the following two bytes should be zero.
*/
DECR_LENGTH_RET(length, 2, GNUTLS_E_PREMATURE_TERMINATION);
- if (*ptr != 0 || *(ptr+1) != 0)
+ if (*ptr != 0 || *(ptr + 1) != 0)
return gnutls_assert_val(GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH);
ptr += 2;
@@ -3728,10 +3743,12 @@ static int _gnutls_parse_ct_sct(uint8_t *ptr, uint16_t length,
sct->sigalg = get_sigalg(hash_algo, sig_algo);
if (sct->sigalg == GNUTLS_SIGN_UNKNOWN)
- return gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
+ return
+ gnutls_assert_val(GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM);
/* Signature, length and content */
- DECR_LENGTH_RET(length, sizeof(uint16_t), GNUTLS_E_PREMATURE_TERMINATION);
+ DECR_LENGTH_RET(length, sizeof(uint16_t),
+ GNUTLS_E_PREMATURE_TERMINATION);
sig_length = _gnutls_read_uint16(ptr);
ptr += sizeof(uint16_t);
if (sig_length == 0)
@@ -3754,7 +3771,8 @@ static int _gnutls_ct_sct_add(struct ct_sct_st *sct,
{
struct ct_sct_st *new_scts;
- new_scts = _gnutls_reallocarray(*scts, *size + 1, sizeof(struct ct_sct_st));
+ new_scts =
+ _gnutls_reallocarray(*scts, *size + 1, sizeof(struct ct_sct_st));
if (new_scts == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
@@ -3765,7 +3783,7 @@ static int _gnutls_ct_sct_add(struct ct_sct_st *sct,
return 0;
}
-static int _gnutls_export_ct_v1_sct(gnutls_buffer_st *buf,
+static int _gnutls_export_ct_v1_sct(gnutls_buffer_st * buf,
const struct ct_sct_st *sct)
{
int ret;
@@ -3781,36 +3799,40 @@ static int _gnutls_export_ct_v1_sct(gnutls_buffer_st *buf,
/* Version */
if ((ret = _gnutls_buffer_append_data(buf,
- &sct->version, sizeof(uint8_t))) < 0)
+ &sct->version,
+ sizeof(uint8_t))) < 0)
return gnutls_assert_val(ret);
/* Log ID - has a fixed 32-byte size in version 1 */
if ((ret = _gnutls_buffer_append_data(buf,
- sct->logid, SCT_V1_LOGID_SIZE)) < 0)
+ sct->logid,
+ SCT_V1_LOGID_SIZE)) < 0)
return gnutls_assert_val(ret);
/* Timestamp */
_gnutls_write_uint64(sct->timestamp, tstamp_out);
if ((ret = _gnutls_buffer_append_data(buf,
- tstamp_out, sizeof(tstamp_out))) < 0)
+ tstamp_out,
+ sizeof(tstamp_out))) < 0)
return gnutls_assert_val(ret);
/* Extensions */
if ((ret = _gnutls_buffer_append_data(buf,
- extensions, sizeof(extensions))) < 0)
+ extensions,
+ sizeof(extensions))) < 0)
return gnutls_assert_val(ret);
/* Hash and signature algorithms */
if ((ret = write_sigalg(sct->sigalg, sigalg)) < 0)
return gnutls_assert_val(ret);
- if ((ret = _gnutls_buffer_append_data(buf,
- sigalg, sizeof(sigalg))) < 0)
+ if ((ret = _gnutls_buffer_append_data(buf, sigalg, sizeof(sigalg))) < 0)
return gnutls_assert_val(ret);
/* Signature */
if ((ret = _gnutls_buffer_append_data_prefix(buf, 16,
- sct->signature.data, sct->signature.size)) < 0)
+ sct->signature.data,
+ sct->signature.size)) < 0)
return gnutls_assert_val(ret);
/* Fill the length */
@@ -3835,7 +3857,8 @@ static int _gnutls_export_ct_v1_sct(gnutls_buffer_st *buf,
*
* Returns: %GNUTLS_E_SUCCESS (0) on success or a negative error value.
**/
-int gnutls_x509_ext_ct_import_scts(const gnutls_datum_t *ext, gnutls_x509_ct_scts_t scts,
+int gnutls_x509_ext_ct_import_scts(const gnutls_datum_t * ext,
+ gnutls_x509_ct_scts_t scts,
unsigned int flags)
{
int retval;
@@ -3848,9 +3871,8 @@ int gnutls_x509_ext_ct_import_scts(const gnutls_datum_t *ext, gnutls_x509_ct_sct
return gnutls_assert_val(GNUTLS_E_UNIMPLEMENTED_FEATURE);
retval =
- _gnutls_x509_decode_string(ASN1_ETYPE_OCTET_STRING,
- ext->data, ext->size, &scts_content,
- 0);
+ _gnutls_x509_decode_string(ASN1_ETYPE_OCTET_STRING,
+ ext->data, ext->size, &scts_content, 0);
if (retval < 0)
return gnutls_assert_val(retval);
@@ -3912,7 +3934,8 @@ int gnutls_x509_ext_ct_import_scts(const gnutls_datum_t *ext, gnutls_x509_ct_sct
*
* Returns: %GNUTLS_E_SUCCESS (0) on success or a negative error value.
**/
-int gnutls_x509_ext_ct_export_scts(const gnutls_x509_ct_scts_t scts, gnutls_datum_t *ext)
+int gnutls_x509_ext_ct_export_scts(const gnutls_x509_ct_scts_t scts,
+ gnutls_datum_t * ext)
{
int ret;
gnutls_buffer_st buf;
@@ -3924,8 +3947,7 @@ int gnutls_x509_ext_ct_export_scts(const gnutls_x509_ct_scts_t scts, gnutls_datu
_gnutls_buffer_append_prefix(&buf, 16, 0);
for (size_t i = 0; i < scts->size; i++) {
- if ((ret = _gnutls_export_ct_v1_sct(&buf,
- &scts->scts[i])) < 0) {
+ if ((ret = _gnutls_export_ct_v1_sct(&buf, &scts->scts[i])) < 0) {
gnutls_assert();
goto cleanup;
}
@@ -3935,10 +3957,8 @@ int gnutls_x509_ext_ct_export_scts(const gnutls_x509_ct_scts_t scts, gnutls_datu
_gnutls_write_uint16(buf.length - 2, buf.data);
/* DER-encode the whole thing as an opaque OCTET STRING, as the spec mandates */
- ret = _gnutls_x509_encode_string(
- ASN1_ETYPE_OCTET_STRING,
- buf.data, buf.length,
- ext);
+ ret = _gnutls_x509_encode_string(ASN1_ETYPE_OCTET_STRING,
+ buf.data, buf.length, ext);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -3946,7 +3966,7 @@ int gnutls_x509_ext_ct_export_scts(const gnutls_x509_ct_scts_t scts, gnutls_datu
ret = GNUTLS_E_SUCCESS;
-cleanup:
+ cleanup:
_gnutls_buffer_clear(&buf);
return ret;
}
@@ -4007,10 +4027,10 @@ int gnutls_x509_ct_sct_get_version(gnutls_x509_ct_scts_t scts, unsigned idx,
* or a negative error value.
**/
int gnutls_x509_ct_sct_get(const gnutls_x509_ct_scts_t scts, unsigned idx,
- time_t *timestamp,
- gnutls_datum_t *logid,
- gnutls_sign_algorithm_t *sigalg,
- gnutls_datum_t *signature)
+ time_t * timestamp,
+ gnutls_datum_t * logid,
+ gnutls_sign_algorithm_t * sigalg,
+ gnutls_datum_t * signature)
{
int retval = 0;
struct ct_sct_st *sct;
@@ -4032,8 +4052,7 @@ int gnutls_x509_ct_sct_get(const gnutls_x509_ct_scts_t scts, unsigned idx,
if (logid) {
retval = _gnutls_set_datum(logid,
- sct->logid,
- SCT_V1_LOGID_SIZE);
+ sct->logid, SCT_V1_LOGID_SIZE);
if (retval < 0) {
_gnutls_free_datum(signature);
return retval;
diff --git a/lib/x509/x509_ext_int.h b/lib/x509/x509_ext_int.h
index 2e3f162a5d..23df542d7e 100644
--- a/lib/x509/x509_ext_int.h
+++ b/lib/x509/x509_ext_int.h
@@ -20,15 +20,16 @@
*/
#ifndef GNUTLS_LIB_X509_X509_EXT_INT_H
-#define GNUTLS_LIB_X509_X509_EXT_INT_H
+# define GNUTLS_LIB_X509_X509_EXT_INT_H
-#include "gnutls_int.h"
+# include "gnutls_int.h"
struct name_st {
unsigned int type;
gnutls_datum_t san;
gnutls_datum_t othername_oid;
};
-int _gnutls_alt_name_process(gnutls_datum_t *out, unsigned type, const gnutls_datum_t *san, unsigned raw);
+int _gnutls_alt_name_process(gnutls_datum_t * out, unsigned type,
+ const gnutls_datum_t * san, unsigned raw);
-#endif /* GNUTLS_LIB_X509_X509_EXT_INT_H */
+#endif /* GNUTLS_LIB_X509_X509_EXT_INT_H */
diff --git a/lib/x509/x509_int.h b/lib/x509/x509_int.h
index acbc185c71..cf2044d58d 100644
--- a/lib/x509/x509_int.h
+++ b/lib/x509/x509_int.h
@@ -22,42 +22,42 @@
*/
#ifndef GNUTLS_LIB_X509_X509_INT_H
-#define GNUTLS_LIB_X509_X509_INT_H
-
-#include <gnutls/x509.h>
-#include <gnutls/x509-ext.h>
-#include <gnutls/abstract.h>
-
-#include <libtasn1.h>
-
-#define MAX_CRQ_EXTENSIONS_SIZE 8*1024
-#define MAX_OID_SIZE 128
-#define MAX_KEY_ID_SIZE 128
-#define MAX_SALT_SIZE 256
-#define MAX_NAME_SIZE (3*ASN1_MAX_NAME_SIZE)
-
-#define HASH_OID_SHA1 "1.3.14.3.2.26"
-#define HASH_OID_MD5 "1.2.840.113549.2.5"
-#define HASH_OID_MD2 "1.2.840.113549.2.2"
-#define HASH_OID_RMD160 "1.3.36.3.2.1"
-#define HASH_OID_SHA224 "2.16.840.1.101.3.4.2.4"
-#define HASH_OID_SHA256 "2.16.840.1.101.3.4.2.1"
-#define HASH_OID_SHA384 "2.16.840.1.101.3.4.2.2"
-#define HASH_OID_SHA512 "2.16.840.1.101.3.4.2.3"
-#define HASH_OID_SHA3_224 "2.16.840.1.101.3.4.2.7"
-#define HASH_OID_SHA3_256 "2.16.840.1.101.3.4.2.8"
-#define HASH_OID_SHA3_384 "2.16.840.1.101.3.4.2.9"
-#define HASH_OID_SHA3_512 "2.16.840.1.101.3.4.2.10"
-#define HASH_OID_SHAKE_128 "2.16.840.1.101.3.4.2.11"
-#define HASH_OID_SHAKE_256 "2.16.840.1.101.3.4.2.12"
-#define HASH_OID_GOST_R_3411_94 "1.2.643.2.2.9"
-#define HASH_OID_STREEBOG_256 "1.2.643.7.1.1.2.2"
-#define HASH_OID_STREEBOG_512 "1.2.643.7.1.1.2.3"
-
-#define HASH_OID_GOST_R_3411_94_CRYPTOPRO_PARAMS "1.2.643.2.2.30.1"
+# define GNUTLS_LIB_X509_X509_INT_H
+
+# include <gnutls/x509.h>
+# include <gnutls/x509-ext.h>
+# include <gnutls/abstract.h>
+
+# include <libtasn1.h>
+
+# define MAX_CRQ_EXTENSIONS_SIZE 8*1024
+# define MAX_OID_SIZE 128
+# define MAX_KEY_ID_SIZE 128
+# define MAX_SALT_SIZE 256
+# define MAX_NAME_SIZE (3*ASN1_MAX_NAME_SIZE)
+
+# define HASH_OID_SHA1 "1.3.14.3.2.26"
+# define HASH_OID_MD5 "1.2.840.113549.2.5"
+# define HASH_OID_MD2 "1.2.840.113549.2.2"
+# define HASH_OID_RMD160 "1.3.36.3.2.1"
+# define HASH_OID_SHA224 "2.16.840.1.101.3.4.2.4"
+# define HASH_OID_SHA256 "2.16.840.1.101.3.4.2.1"
+# define HASH_OID_SHA384 "2.16.840.1.101.3.4.2.2"
+# define HASH_OID_SHA512 "2.16.840.1.101.3.4.2.3"
+# define HASH_OID_SHA3_224 "2.16.840.1.101.3.4.2.7"
+# define HASH_OID_SHA3_256 "2.16.840.1.101.3.4.2.8"
+# define HASH_OID_SHA3_384 "2.16.840.1.101.3.4.2.9"
+# define HASH_OID_SHA3_512 "2.16.840.1.101.3.4.2.10"
+# define HASH_OID_SHAKE_128 "2.16.840.1.101.3.4.2.11"
+# define HASH_OID_SHAKE_256 "2.16.840.1.101.3.4.2.12"
+# define HASH_OID_GOST_R_3411_94 "1.2.643.2.2.9"
+# define HASH_OID_STREEBOG_256 "1.2.643.7.1.1.2.2"
+# define HASH_OID_STREEBOG_512 "1.2.643.7.1.1.2.3"
+
+# define HASH_OID_GOST_R_3411_94_CRYPTOPRO_PARAMS "1.2.643.2.2.30.1"
/* from rfc8479 */
-#define OID_ATTR_PROV_SEED "1.3.6.1.4.1.2312.18.8.1"
+# define OID_ATTR_PROV_SEED "1.3.6.1.4.1.2312.18.8.1"
struct gnutls_x509_crl_iter {
/* This is used to optimize reads by gnutls_x509_crl_iter_crt_serial() */
@@ -85,8 +85,8 @@ typedef struct gnutls_x509_dn_st {
typedef struct gnutls_x509_crt_int {
asn1_node cert;
int use_extensions;
- unsigned expanded; /* a certificate has been expanded */
- unsigned modified; /* the cached values below may no longer be valid */
+ unsigned expanded; /* a certificate has been expanded */
+ unsigned modified; /* the cached values below may no longer be valid */
unsigned flags;
struct pin_info_st pin;
@@ -109,7 +109,7 @@ typedef struct gnutls_x509_crt_int {
gnutls_x509_dn_st idn;
} gnutls_x509_crt_int;
-#define MODIFIED(crt) crt->modified=1
+# define MODIFIED(crt) crt->modified=1
typedef struct gnutls_x509_crq_int {
asn1_node crq;
@@ -170,26 +170,25 @@ int _gnutls_x509_pkix_sign(asn1_node src, const char *src_name,
gnutls_x509_crt_t issuer,
gnutls_privkey_t issuer_key);
int _gnutls_x509_crt_get_spki_params(gnutls_x509_crt_t issuer,
- const gnutls_x509_spki_st *key_params,
- gnutls_x509_spki_st *params);
+ const gnutls_x509_spki_st * key_params,
+ gnutls_x509_spki_st * params);
-#define map_errs_to_zero(x) ((x)<0?0:(x))
+# define map_errs_to_zero(x) ((x)<0?0:(x))
/* dn.c */
-#define OID_X520_COUNTRY_NAME "2.5.4.6"
-#define OID_X520_ORGANIZATION_NAME "2.5.4.10"
-#define OID_X520_ORGANIZATIONAL_UNIT_NAME "2.5.4.11"
-#define OID_X520_COMMON_NAME "2.5.4.3"
-#define OID_X520_LOCALITY_NAME "2.5.4.7"
-#define OID_X520_STATE_OR_PROVINCE_NAME "2.5.4.8"
-#define OID_LDAP_DC "0.9.2342.19200300.100.1.25"
-#define OID_LDAP_UID "0.9.2342.19200300.100.1.1"
-#define OID_PKCS9_EMAIL "1.2.840.113549.1.9.1"
+# define OID_X520_COUNTRY_NAME "2.5.4.6"
+# define OID_X520_ORGANIZATION_NAME "2.5.4.10"
+# define OID_X520_ORGANIZATIONAL_UNIT_NAME "2.5.4.11"
+# define OID_X520_COMMON_NAME "2.5.4.3"
+# define OID_X520_LOCALITY_NAME "2.5.4.7"
+# define OID_X520_STATE_OR_PROVINCE_NAME "2.5.4.8"
+# define OID_LDAP_DC "0.9.2342.19200300.100.1.25"
+# define OID_LDAP_UID "0.9.2342.19200300.100.1.1"
+# define OID_PKCS9_EMAIL "1.2.840.113549.1.9.1"
int _gnutls_x509_parse_dn(asn1_node asn1_struct,
const char *asn1_rdn_name, char *buf,
- size_t * sizeof_buf,
- unsigned flags);
+ size_t *sizeof_buf, unsigned flags);
int
_gnutls_x509_get_dn(asn1_node asn1_struct,
@@ -204,40 +203,38 @@ _gnutls_x509_parse_dn_oid(asn1_node asn1_struct,
int _gnutls_x509_set_dn_oid(asn1_node asn1_struct,
const char *asn1_rdn_name, const char *oid,
- int raw_flag, const char *name,
- int sizeof_name);
+ int raw_flag, const char *name, int sizeof_name);
int _gnutls_x509_get_dn_oid(asn1_node asn1_struct,
const char *asn1_rdn_name,
- int indx, void *_oid, size_t * sizeof_oid);
+ int indx, void *_oid, size_t *sizeof_oid);
-int _gnutls_encode_othername_data(unsigned flags, const void *data, unsigned data_size, gnutls_datum_t *output);
+int _gnutls_encode_othername_data(unsigned flags, const void *data,
+ unsigned data_size, gnutls_datum_t * output);
int _gnutls_parse_general_name(asn1_node src, const char *src_name,
- int seq, void *name, size_t * name_size,
+ int seq, void *name, size_t *name_size,
unsigned int *ret_type, int othername_oid);
int
_gnutls_parse_general_name2(asn1_node src, const char *src_name,
- int seq, gnutls_datum_t *dname,
- unsigned int *ret_type, int othername_oid);
+ int seq, gnutls_datum_t * dname,
+ unsigned int *ret_type, int othername_oid);
int
_gnutls_write_new_general_name(asn1_node ext, const char *ext_name,
- gnutls_x509_subject_alt_name_t type,
- const void *data, unsigned int data_size);
+ gnutls_x509_subject_alt_name_t type,
+ const void *data, unsigned int data_size);
int
_gnutls_write_new_othername(asn1_node ext, const char *ext_name,
- const char *oid,
- const void *data, unsigned int data_size);
+ const char *oid,
+ const void *data, unsigned int data_size);
/* dsa.c */
-
/* verify.c */
-int gnutls_x509_crt_is_issuer(gnutls_x509_crt_t cert,
- gnutls_x509_crt_t issuer);
+int gnutls_x509_crt_is_issuer(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer);
int
_gnutls_x509_verify_algorithm(gnutls_digest_algorithm_t * hash,
@@ -251,27 +248,25 @@ void _gnutls_x509_privkey_reinit(gnutls_x509_privkey_t key);
asn1_node _gnutls_privkey_decode_pkcs1_rsa_key(const gnutls_datum_t *
raw_key,
gnutls_x509_privkey_t pkey);
-int _gnutls_privkey_decode_ecc_key(asn1_node* pkey_asn, const gnutls_datum_t *
- raw_key,
- gnutls_x509_privkey_t pkey,
- gnutls_ecc_curve_t curve);
+int _gnutls_privkey_decode_ecc_key(asn1_node * pkey_asn, const gnutls_datum_t *
+ raw_key,
+ gnutls_x509_privkey_t pkey,
+ gnutls_ecc_curve_t curve);
-int _gnutls_privkey_decode_eddsa_key(asn1_node* pkey_asn,
- const gnutls_datum_t *raw_key,
- gnutls_x509_privkey_t pkey,
- gnutls_ecc_curve_t curve);
+int _gnutls_privkey_decode_eddsa_key(asn1_node * pkey_asn,
+ const gnutls_datum_t * raw_key,
+ gnutls_x509_privkey_t pkey,
+ gnutls_ecc_curve_t curve);
int
-_gnutls_x509_read_ecc_params(uint8_t * der, int dersize,
- unsigned int *curve);
+_gnutls_x509_read_ecc_params(uint8_t * der, int dersize, unsigned int *curve);
int
_gnutls_x509_read_gost_params(uint8_t * der, int dersize,
gnutls_pk_params_st * params,
gnutls_pk_algorithm_t algo);
-int _gnutls_asn1_encode_privkey(asn1_node * c2,
- gnutls_pk_params_st * params);
+int _gnutls_asn1_encode_privkey(asn1_node * c2, gnutls_pk_params_st * params);
void _gnutls_x509_privkey_get_spki_params(gnutls_x509_privkey_t key,
gnutls_x509_spki_st * params);
@@ -283,8 +278,7 @@ int _gnutls_x509_write_rsa_pss_params(const gnutls_x509_spki_st * params,
/* extensions.c */
int _gnutls_x509_crl_get_extension_oid(gnutls_x509_crl_t crl,
- int indx, void *oid,
- size_t * sizeof_oid);
+ int indx, void *oid, size_t *sizeof_oid);
int _gnutls_x509_crl_set_extension(gnutls_x509_crl_t crl,
const char *ext_id,
@@ -294,8 +288,7 @@ int _gnutls_x509_crl_set_extension(gnutls_x509_crl_t crl,
int
_gnutls_x509_crl_get_extension(gnutls_x509_crl_t crl,
const char *extension_id, int indx,
- gnutls_datum_t * data,
- unsigned int *critical);
+ gnutls_datum_t * data, unsigned int *critical);
int
_gnutls_x509_crt_get_extension(gnutls_x509_crt_t cert,
@@ -303,8 +296,7 @@ _gnutls_x509_crt_get_extension(gnutls_x509_crt_t cert,
gnutls_datum_t * data, unsigned int *critical);
int _gnutls_x509_crt_get_extension_oid(gnutls_x509_crt_t cert,
- int indx, void *ret,
- size_t * ret_size);
+ int indx, void *ret, size_t *ret_size);
int _gnutls_x509_crt_set_extension(gnutls_x509_crt_t cert,
const char *extension_id,
const gnutls_datum_t * ext_data,
@@ -312,17 +304,16 @@ int _gnutls_x509_crt_set_extension(gnutls_x509_crt_t cert,
int
_gnutls_x509_ext_extract_number(uint8_t * number,
- size_t * nr_size,
+ size_t *nr_size,
uint8_t * extnValue, int extnValueLen);
int
_gnutls_x509_ext_gen_number(const uint8_t * number, size_t nr_size,
gnutls_datum_t * der_ext);
-
int
_gnutls_write_general_name(asn1_node ext, const char *ext_name,
- gnutls_x509_subject_alt_name_t type,
- const void *data, unsigned int data_size);
+ gnutls_x509_subject_alt_name_t type,
+ const void *data, unsigned int data_size);
int _gnutls_x509_ext_gen_subject_alt_name(gnutls_x509_subject_alt_name_t
type,
@@ -335,15 +326,13 @@ int _gnutls_x509_ext_gen_auth_key_id(const void *id, size_t id_size,
gnutls_datum_t * der_data);
/* mpi.c */
-int _gnutls_x509_crq_get_mpis(gnutls_x509_crq_t cert,
- gnutls_pk_params_st *);
+int _gnutls_x509_crq_get_mpis(gnutls_x509_crq_t cert, gnutls_pk_params_st *);
int _gnutls_x509_crt_get_mpis(gnutls_x509_crt_t cert,
gnutls_pk_params_st * params);
int _gnutls_x509_read_pubkey_params(gnutls_pk_algorithm_t, uint8_t * der,
- int dersize,
- gnutls_pk_params_st * params);
+ int dersize, gnutls_pk_params_st * params);
int _gnutls_x509_check_pubkey_params(gnutls_pk_params_st * params);
int _gnutls_x509_read_pubkey(gnutls_pk_algorithm_t, uint8_t * der,
@@ -378,14 +367,12 @@ int _gnutls_x509_read_int(asn1_node node, const char *value,
int _gnutls_x509_write_int(asn1_node node, const char *value, bigint_t mpi,
int lz);
-int _gnutls_x509_write_uint32(asn1_node node, const char *value,
- uint32_t num);
-
+int _gnutls_x509_write_uint32(asn1_node node, const char *value, uint32_t num);
int _gnutls_x509_read_key_int(asn1_node node, const char *value,
- bigint_t * ret_mpi);
+ bigint_t * ret_mpi);
int _gnutls_x509_write_key_int(asn1_node node, const char *value, bigint_t mpi,
- int lz);
+ int lz);
int _gnutls_x509_read_key_int_le(asn1_node node, const char *value,
bigint_t * ret_mpi);
@@ -393,47 +380,46 @@ int _gnutls_x509_write_key_int_le(asn1_node node, const char *value,
bigint_t mpi);
int _gnutls_x509_read_pkalgo_params(asn1_node src, const char *src_name,
- gnutls_x509_spki_st *params, unsigned is_sig);
+ gnutls_x509_spki_st * params,
+ unsigned is_sig);
int _gnutls_x509_write_sign_params(asn1_node dst, const char *dst_name,
- const gnutls_sign_entry_st *se, gnutls_x509_spki_st *params);
+ const gnutls_sign_entry_st * se,
+ gnutls_x509_spki_st * params);
-#define _gnutls_x509_read_sign_params(src,name,params) _gnutls_x509_read_pkalgo_params(src,name,params,1)
-#define _gnutls_x509_read_spki_params(src,name,params) _gnutls_x509_read_pkalgo_params(src,name,params,0)
+# define _gnutls_x509_read_sign_params(src,name,params) _gnutls_x509_read_pkalgo_params(src,name,params,1)
+# define _gnutls_x509_read_spki_params(src,name,params) _gnutls_x509_read_pkalgo_params(src,name,params,0)
int _gnutls_x509_write_spki_params(asn1_node dst, const char *dst_name,
- gnutls_x509_spki_st *params);
+ gnutls_x509_spki_st * params);
inline static int
_gnutls_x509_crt_read_spki_params(gnutls_x509_crt_t crt,
- gnutls_x509_spki_st *params)
+ gnutls_x509_spki_st * params)
{
return _gnutls_x509_read_spki_params(crt->cert,
"tbsCertificate."
"subjectPublicKeyInfo."
- "algorithm",
- params);
+ "algorithm", params);
}
inline static int
_gnutls_x509_crq_read_spki_params(gnutls_x509_crq_t crt,
- gnutls_x509_spki_st *params)
+ gnutls_x509_spki_st * params)
{
return _gnutls_x509_read_spki_params(crt->crq,
"certificationRequestInfo."
"subjectPKInfo."
- "algorithm",
- params);
+ "algorithm", params);
}
-
/* pkcs12.h */
-#include <gnutls/pkcs12.h>
+# include <gnutls/pkcs12.h>
typedef struct gnutls_pkcs12_int {
asn1_node pkcs12;
unsigned expanded;
} gnutls_pkcs12_int;
-#define MAX_BAG_ELEMENTS 32
+# define MAX_BAG_ELEMENTS 32
struct bag_element {
gnutls_datum_t data;
@@ -447,16 +433,16 @@ typedef struct gnutls_pkcs12_bag_int {
unsigned bag_elements;
} gnutls_pkcs12_bag_int;
-#define BAG_PKCS8_KEY "1.2.840.113549.1.12.10.1.1"
-#define BAG_PKCS8_ENCRYPTED_KEY "1.2.840.113549.1.12.10.1.2"
-#define BAG_CERTIFICATE "1.2.840.113549.1.12.10.1.3"
-#define BAG_CRL "1.2.840.113549.1.12.10.1.4"
-#define BAG_SECRET "1.2.840.113549.1.12.10.1.5"
+# define BAG_PKCS8_KEY "1.2.840.113549.1.12.10.1.1"
+# define BAG_PKCS8_ENCRYPTED_KEY "1.2.840.113549.1.12.10.1.2"
+# define BAG_CERTIFICATE "1.2.840.113549.1.12.10.1.3"
+# define BAG_CRL "1.2.840.113549.1.12.10.1.4"
+# define BAG_SECRET "1.2.840.113549.1.12.10.1.5"
/* Bag attributes
*/
-#define FRIENDLY_NAME_OID "1.2.840.113549.1.9.20"
-#define KEY_ID_OID "1.2.840.113549.1.9.21"
+# define FRIENDLY_NAME_OID "1.2.840.113549.1.9.20"
+# define KEY_ID_OID "1.2.840.113549.1.9.21"
int
_gnutls_pkcs12_string_to_key(const mac_entry_st * me,
@@ -465,7 +451,6 @@ _gnutls_pkcs12_string_to_key(const mac_entry_st * me,
const char *pw, unsigned int req_keylen,
uint8_t * keybuf);
-
int _pkcs12_decode_safe_contents(const gnutls_datum_t * content,
gnutls_pkcs12_bag_t bag);
@@ -474,11 +459,9 @@ _pkcs12_encode_safe_contents(gnutls_pkcs12_bag_t bag, asn1_node * content,
int *enc);
int _pkcs12_decode_crt_bag(gnutls_pkcs12_bag_type_t type,
- const gnutls_datum_t * in,
- gnutls_datum_t * out);
+ const gnutls_datum_t * in, gnutls_datum_t * out);
int _pkcs12_encode_crt_bag(gnutls_pkcs12_bag_type_t type,
- const gnutls_datum_t * raw,
- gnutls_datum_t * out);
+ const gnutls_datum_t * raw, gnutls_datum_t * out);
/* crq */
int _gnutls_x509_crq_set_extension(gnutls_x509_crq_t crq,
@@ -489,10 +472,10 @@ int _gnutls_x509_crq_set_extension(gnutls_x509_crq_t crq,
int
gnutls_x509_crt_verify_data3(gnutls_x509_crt_t crt,
gnutls_sign_algorithm_t algo,
- gnutls_typed_vdata_st *vdata,
+ gnutls_typed_vdata_st * vdata,
unsigned int vdata_size,
- const gnutls_datum_t *data,
- const gnutls_datum_t *signature,
+ const gnutls_datum_t * data,
+ const gnutls_datum_t * signature,
unsigned int flags);
int _gnutls_trust_list_get_issuer(gnutls_x509_trust_list_t list,
@@ -510,16 +493,16 @@ _gnutls_verify_crt_status(gnutls_x509_trust_list_t tlist,
const char *purpose,
gnutls_verify_output_function func);
-#ifdef ENABLE_PKCS11
+# ifdef ENABLE_PKCS11
unsigned int
_gnutls_pkcs11_verify_crt_status(gnutls_x509_trust_list_t tlist,
- const char* url,
+ const char *url,
const gnutls_x509_crt_t * certificate_list,
unsigned clist_size,
const char *purpose,
unsigned int flags,
gnutls_verify_output_function func);
-#endif
+# endif
int _gnutls_check_cert_sanity(gnutls_x509_crt_t cert);
@@ -530,8 +513,8 @@ _gnutls_x509_crt_check_revocation(gnutls_x509_crt_t cert,
gnutls_verify_output_function func);
typedef struct gnutls_name_constraints_st {
- struct name_constraints_node_st * permitted;
- struct name_constraints_node_st * excluded;
+ struct name_constraints_node_st *permitted;
+ struct name_constraints_node_st *excluded;
} gnutls_name_constraints_st;
typedef struct name_constraints_node_st {
@@ -541,18 +524,20 @@ typedef struct name_constraints_node_st {
} name_constraints_node_st;
int _gnutls_extract_name_constraints(asn1_node c2, const char *vstr,
- name_constraints_node_st ** _nc);
-void _gnutls_name_constraints_node_free (name_constraints_node_st *node);
+ name_constraints_node_st ** _nc);
+void _gnutls_name_constraints_node_free(name_constraints_node_st * node);
int _gnutls_x509_name_constraints_merge(gnutls_x509_name_constraints_t nc,
gnutls_x509_name_constraints_t nc2);
-void _gnutls_x509_policies_erase(gnutls_x509_policies_t policies, unsigned int seq);
+void _gnutls_x509_policies_erase(gnutls_x509_policies_t policies,
+ unsigned int seq);
struct gnutls_x509_tlsfeatures_st {
uint16_t feature[MAX_EXT_TYPES];
unsigned int size;
};
-unsigned _gnutls_is_broken_sig_allowed(const gnutls_sign_entry_st *se, unsigned int flags);
+unsigned _gnutls_is_broken_sig_allowed(const gnutls_sign_entry_st * se,
+ unsigned int flags);
-#endif /* GNUTLS_LIB_X509_X509_INT_H */
+#endif /* GNUTLS_LIB_X509_X509_INT_H */
diff --git a/lib/x509/x509_write.c b/lib/x509/x509_write.c
index e9a7087bdc..786b683016 100644
--- a/lib/x509/x509_write.c
+++ b/lib/x509/x509_write.c
@@ -104,8 +104,7 @@ int
gnutls_x509_crt_set_issuer_dn_by_oid(gnutls_x509_crt_t crt,
const char *oid,
unsigned int raw_flag,
- const void *name,
- unsigned int sizeof_name)
+ const void *name, unsigned int sizeof_name)
{
if (sizeof_name == 0 || name == NULL || crt == NULL) {
return GNUTLS_E_INVALID_REQUEST;
@@ -159,8 +158,7 @@ gnutls_x509_crt_set_proxy_dn(gnutls_x509_crt_t crt,
return _gnutls_x509_set_dn_oid(crt->cert,
"tbsCertificate.subject",
GNUTLS_OID_X520_COMMON_NAME,
- raw_flag, name,
- sizeof_name);
+ raw_flag, name, sizeof_name);
}
return 0;
@@ -183,8 +181,7 @@ gnutls_x509_crt_set_proxy_dn(gnutls_x509_crt_t crt,
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
* negative error value.
**/
-int
-gnutls_x509_crt_set_version(gnutls_x509_crt_t crt, unsigned int version)
+int gnutls_x509_crt_set_version(gnutls_x509_crt_t crt, unsigned int version)
{
int result;
unsigned char null = version;
@@ -200,8 +197,7 @@ gnutls_x509_crt_set_version(gnutls_x509_crt_t crt, unsigned int version)
null--;
result =
- asn1_write_value(crt->cert, "tbsCertificate.version", &null,
- 1);
+ asn1_write_value(crt->cert, "tbsCertificate.version", &null, 1);
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -225,8 +221,7 @@ gnutls_x509_crt_set_version(gnutls_x509_crt_t crt, unsigned int version)
* negative error value.
*
**/
-int
-gnutls_x509_crt_set_key(gnutls_x509_crt_t crt, gnutls_x509_privkey_t key)
+int gnutls_x509_crt_set_key(gnutls_x509_crt_t crt, gnutls_x509_privkey_t key)
{
int result;
@@ -280,8 +275,7 @@ int gnutls_x509_crt_set_crq(gnutls_x509_crt_t crt, gnutls_x509_crq_t crq)
return gnutls_assert_val(result);
result = asn1_copy_node(crt->cert, "tbsCertificate.subject",
- crq->crq,
- "certificationRequestInfo.subject");
+ crq->crq, "certificationRequestInfo.subject");
if (result != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(result);
@@ -313,8 +307,7 @@ int gnutls_x509_crt_set_crq(gnutls_x509_crt_t crt, gnutls_x509_crq_t crq)
* Since: 2.8.0
**/
int
-gnutls_x509_crt_set_crq_extensions(gnutls_x509_crt_t crt,
- gnutls_x509_crq_t crq)
+gnutls_x509_crt_set_crq_extensions(gnutls_x509_crt_t crt, gnutls_x509_crq_t crq)
{
return gnutls_x509_crt_set_crq_extension_by_oid(crt, crq, NULL, 0);
}
@@ -362,8 +355,7 @@ gnutls_x509_crt_set_crq_extension_by_oid(gnutls_x509_crt_t crt,
&local_oid_size,
&critical);
if (result < 0) {
- if (result ==
- GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ if (result == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
gnutls_assert();
@@ -430,13 +422,12 @@ gnutls_x509_crt_set_crq_extension_by_oid(gnutls_x509_crt_t crt,
int
gnutls_x509_crt_set_extension_by_oid(gnutls_x509_crt_t crt,
const char *oid, const void *buf,
- size_t sizeof_buf,
- unsigned int critical)
+ size_t sizeof_buf, unsigned int critical)
{
int result;
gnutls_datum_t der_data;
- der_data.data = (void *) buf;
+ der_data.data = (void *)buf;
der_data.size = sizeof_buf;
if (crt == NULL) {
@@ -444,8 +435,7 @@ gnutls_x509_crt_set_extension_by_oid(gnutls_x509_crt_t crt,
return GNUTLS_E_INVALID_REQUEST;
}
- result =
- _gnutls_x509_crt_set_extension(crt, oid, &der_data, critical);
+ result = _gnutls_x509_crt_set_extension(crt, oid, &der_data, critical);
if (result < 0) {
gnutls_assert();
return result;
@@ -470,8 +460,7 @@ gnutls_x509_crt_set_extension_by_oid(gnutls_x509_crt_t crt,
**/
int
gnutls_x509_crt_set_basic_constraints(gnutls_x509_crt_t crt,
- unsigned int ca,
- int pathLenConstraint)
+ unsigned int ca, int pathLenConstraint)
{
int result;
gnutls_datum_t der_data;
@@ -483,14 +472,15 @@ gnutls_x509_crt_set_basic_constraints(gnutls_x509_crt_t crt,
/* generate the extension.
*/
- result = gnutls_x509_ext_export_basic_constraints(ca, pathLenConstraint, &der_data);
+ result =
+ gnutls_x509_ext_export_basic_constraints(ca, pathLenConstraint,
+ &der_data);
if (result < 0) {
gnutls_assert();
return result;
}
- result =
- _gnutls_x509_crt_set_extension(crt, "2.5.29.19", &der_data, 1);
+ result = _gnutls_x509_crt_set_extension(crt, "2.5.29.19", &der_data, 1);
_gnutls_free_datum(&der_data);
@@ -529,8 +519,7 @@ int gnutls_x509_crt_set_ca_status(gnutls_x509_crt_t crt, unsigned int ca)
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
* negative error value.
**/
-int
-gnutls_x509_crt_set_key_usage(gnutls_x509_crt_t crt, unsigned int usage)
+int gnutls_x509_crt_set_key_usage(gnutls_x509_crt_t crt, unsigned int usage)
{
int result;
gnutls_datum_t der_data;
@@ -542,15 +531,13 @@ gnutls_x509_crt_set_key_usage(gnutls_x509_crt_t crt, unsigned int usage)
/* generate the extension.
*/
- result =
- gnutls_x509_ext_export_key_usage(usage, &der_data);
+ result = gnutls_x509_ext_export_key_usage(usage, &der_data);
if (result < 0) {
gnutls_assert();
return result;
}
- result =
- _gnutls_x509_crt_set_extension(crt, "2.5.29.15", &der_data, 1);
+ result = _gnutls_x509_crt_set_extension(crt, "2.5.29.15", &der_data, 1);
_gnutls_free_datum(&der_data);
@@ -573,7 +560,8 @@ gnutls_x509_crt_set_key_usage(gnutls_x509_crt_t crt, unsigned int usage)
* negative error value.
**/
int
-gnutls_x509_crt_set_inhibit_anypolicy(gnutls_x509_crt_t crt, unsigned int skipcerts)
+gnutls_x509_crt_set_inhibit_anypolicy(gnutls_x509_crt_t crt,
+ unsigned int skipcerts)
{
int ret;
gnutls_datum_t der_data;
@@ -585,15 +573,13 @@ gnutls_x509_crt_set_inhibit_anypolicy(gnutls_x509_crt_t crt, unsigned int skipce
/* generate the extension.
*/
- ret =
- gnutls_x509_ext_export_inhibit_anypolicy(skipcerts, &der_data);
+ ret = gnutls_x509_ext_export_inhibit_anypolicy(skipcerts, &der_data);
if (ret < 0) {
gnutls_assert();
return ret;
}
- ret =
- _gnutls_x509_crt_set_extension(crt, "2.5.29.54", &der_data, 1);
+ ret = _gnutls_x509_crt_set_extension(crt, "2.5.29.54", &der_data, 1);
_gnutls_free_datum(&der_data);
if (ret < 0) {
@@ -670,8 +656,7 @@ int
gnutls_x509_crt_set_subject_alt_name(gnutls_x509_crt_t crt,
gnutls_x509_subject_alt_name_t type,
const void *data,
- unsigned int data_size,
- unsigned int flags)
+ unsigned int data_size, unsigned int flags)
{
int result;
gnutls_datum_t der_data = { NULL, 0 };
@@ -689,8 +674,7 @@ gnutls_x509_crt_set_subject_alt_name(gnutls_x509_crt_t crt,
if (flags & GNUTLS_FSAN_APPEND) {
result =
_gnutls_x509_crt_get_extension(crt, "2.5.29.17", 0,
- &prev_der_data,
- &critical);
+ &prev_der_data, &critical);
if (result < 0
&& result != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
gnutls_assert();
@@ -702,8 +686,7 @@ gnutls_x509_crt_set_subject_alt_name(gnutls_x509_crt_t crt,
*/
result =
_gnutls_x509_ext_gen_subject_alt_name(type, NULL, data, data_size,
- &prev_der_data,
- &der_data);
+ &prev_der_data, &der_data);
if (result < 0) {
gnutls_assert();
@@ -723,7 +706,7 @@ gnutls_x509_crt_set_subject_alt_name(gnutls_x509_crt_t crt,
result = 0;
- finish:
+ finish:
_gnutls_free_datum(&prev_der_data);
return result;
}
@@ -749,10 +732,9 @@ gnutls_x509_crt_set_subject_alt_name(gnutls_x509_crt_t crt,
**/
int
gnutls_x509_crt_set_issuer_alt_name(gnutls_x509_crt_t crt,
- gnutls_x509_subject_alt_name_t type,
- const void *data,
- unsigned int data_size,
- unsigned int flags)
+ gnutls_x509_subject_alt_name_t type,
+ const void *data,
+ unsigned int data_size, unsigned int flags)
{
int result;
gnutls_datum_t der_data = { NULL, 0 };
@@ -770,8 +752,7 @@ gnutls_x509_crt_set_issuer_alt_name(gnutls_x509_crt_t crt,
if (flags & GNUTLS_FSAN_APPEND) {
result =
_gnutls_x509_crt_get_extension(crt, "2.5.29.18", 0,
- &prev_der_data,
- &critical);
+ &prev_der_data, &critical);
if (result < 0
&& result != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
gnutls_assert();
@@ -783,8 +764,7 @@ gnutls_x509_crt_set_issuer_alt_name(gnutls_x509_crt_t crt,
*/
result =
_gnutls_x509_ext_gen_subject_alt_name(type, NULL, data, data_size,
- &prev_der_data,
- &der_data);
+ &prev_der_data, &der_data);
if (result < 0) {
gnutls_assert();
@@ -804,20 +784,21 @@ gnutls_x509_crt_set_issuer_alt_name(gnutls_x509_crt_t crt,
result = 0;
- finish:
+ finish:
_gnutls_free_datum(&prev_der_data);
return result;
}
-int _gnutls_encode_othername_data(unsigned flags, const void *data, unsigned data_size, gnutls_datum_t *output)
+int _gnutls_encode_othername_data(unsigned flags, const void *data,
+ unsigned data_size, gnutls_datum_t * output)
{
int ret;
if (flags & GNUTLS_FSAN_ENCODE_OCTET_STRING) {
ret = _gnutls_x509_encode_string(ASN1_ETYPE_OCTET_STRING,
- data, data_size, output);
+ data, data_size, output);
} else if (flags & GNUTLS_FSAN_ENCODE_UTF8_STRING) {
ret = _gnutls_x509_encode_string(ASN1_ETYPE_UTF8_STRING,
- data, data_size, output);
+ data, data_size, output);
} else {
ret = _gnutls_set_datum(output, data, data_size);
}
@@ -846,10 +827,10 @@ int _gnutls_encode_othername_data(unsigned flags, const void *data, unsigned dat
**/
int
gnutls_x509_crt_set_subject_alt_othername(gnutls_x509_crt_t crt,
- const char *oid,
- const void *data,
- unsigned int data_size,
- unsigned int flags)
+ const char *oid,
+ const void *data,
+ unsigned int data_size,
+ unsigned int flags)
{
int result;
gnutls_datum_t der_data = { NULL, 0 };
@@ -868,8 +849,7 @@ gnutls_x509_crt_set_subject_alt_othername(gnutls_x509_crt_t crt,
if (flags & GNUTLS_FSAN_APPEND) {
result =
_gnutls_x509_crt_get_extension(crt, "2.5.29.17", 0,
- &prev_der_data,
- &critical);
+ &prev_der_data, &critical);
if (result < 0
&& result != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
gnutls_assert();
@@ -877,7 +857,9 @@ gnutls_x509_crt_set_subject_alt_othername(gnutls_x509_crt_t crt,
}
}
- result = _gnutls_encode_othername_data(flags, data, data_size, &encoded_data);
+ result =
+ _gnutls_encode_othername_data(flags, data, data_size,
+ &encoded_data);
if (result < 0) {
gnutls_assert();
goto finish;
@@ -886,9 +868,10 @@ gnutls_x509_crt_set_subject_alt_othername(gnutls_x509_crt_t crt,
/* generate the extension.
*/
result =
- _gnutls_x509_ext_gen_subject_alt_name(GNUTLS_SAN_OTHERNAME, oid,
- encoded_data.data, encoded_data.size,
- &prev_der_data, &der_data);
+ _gnutls_x509_ext_gen_subject_alt_name(GNUTLS_SAN_OTHERNAME, oid,
+ encoded_data.data,
+ encoded_data.size,
+ &prev_der_data, &der_data);
if (result < 0) {
gnutls_assert();
@@ -899,7 +882,6 @@ gnutls_x509_crt_set_subject_alt_othername(gnutls_x509_crt_t crt,
_gnutls_x509_crt_set_extension(crt, "2.5.29.17", &der_data,
critical);
-
if (result < 0) {
gnutls_assert();
goto finish;
@@ -907,7 +889,7 @@ gnutls_x509_crt_set_subject_alt_othername(gnutls_x509_crt_t crt,
result = 0;
- finish:
+ finish:
_gnutls_free_datum(&der_data);
_gnutls_free_datum(&prev_der_data);
_gnutls_free_datum(&encoded_data);
@@ -936,15 +918,15 @@ gnutls_x509_crt_set_subject_alt_othername(gnutls_x509_crt_t crt,
**/
int
gnutls_x509_crt_set_issuer_alt_othername(gnutls_x509_crt_t crt,
- const char *oid,
- const void *data,
- unsigned int data_size,
- unsigned int flags)
+ const char *oid,
+ const void *data,
+ unsigned int data_size,
+ unsigned int flags)
{
int result;
gnutls_datum_t der_data = { NULL, 0 };
gnutls_datum_t prev_der_data = { NULL, 0 };
- gnutls_datum_t encoded_data = {NULL, 0};
+ gnutls_datum_t encoded_data = { NULL, 0 };
unsigned int critical = 0;
if (crt == NULL) {
@@ -958,8 +940,7 @@ gnutls_x509_crt_set_issuer_alt_othername(gnutls_x509_crt_t crt,
if (flags & GNUTLS_FSAN_APPEND) {
result =
_gnutls_x509_crt_get_extension(crt, "2.5.29.18", 0,
- &prev_der_data,
- &critical);
+ &prev_der_data, &critical);
if (result < 0
&& result != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
gnutls_assert();
@@ -967,7 +948,9 @@ gnutls_x509_crt_set_issuer_alt_othername(gnutls_x509_crt_t crt,
}
}
- result = _gnutls_encode_othername_data(flags, data, data_size, &encoded_data);
+ result =
+ _gnutls_encode_othername_data(flags, data, data_size,
+ &encoded_data);
if (result < 0) {
gnutls_assert();
goto finish;
@@ -976,9 +959,10 @@ gnutls_x509_crt_set_issuer_alt_othername(gnutls_x509_crt_t crt,
/* generate the extension.
*/
result =
- _gnutls_x509_ext_gen_subject_alt_name(GNUTLS_SAN_OTHERNAME, oid,
- encoded_data.data, encoded_data.size,
- &prev_der_data, &der_data);
+ _gnutls_x509_ext_gen_subject_alt_name(GNUTLS_SAN_OTHERNAME, oid,
+ encoded_data.data,
+ encoded_data.size,
+ &prev_der_data, &der_data);
if (result < 0) {
gnutls_assert();
goto finish;
@@ -995,7 +979,7 @@ gnutls_x509_crt_set_issuer_alt_othername(gnutls_x509_crt_t crt,
result = 0;
- finish:
+ finish:
_gnutls_free_datum(&der_data);
_gnutls_free_datum(&prev_der_data);
_gnutls_free_datum(&encoded_data);
@@ -1034,9 +1018,8 @@ gnutls_x509_crt_set_proxy(gnutls_x509_crt_t crt,
/* generate the extension.
*/
result = gnutls_x509_ext_export_proxy(pathLenConstraint,
- policyLanguage,
- policy, sizeof_policy,
- &der_data);
+ policyLanguage,
+ policy, sizeof_policy, &der_data);
if (result < 0) {
gnutls_assert();
return result;
@@ -1080,14 +1063,14 @@ gnutls_x509_crt_set_private_key_usage_period(gnutls_x509_crt_t crt,
}
result = gnutls_x509_ext_export_private_key_usage_period(activation,
- expiration, &der_data);
+ expiration,
+ &der_data);
if (result < 0) {
gnutls_assert();
goto cleanup;
}
- result = _gnutls_x509_crt_set_extension(crt, "2.5.29.16",
- &der_data, 0);
+ result = _gnutls_x509_crt_set_extension(crt, "2.5.29.16", &der_data, 0);
_gnutls_free_datum(&der_data);
@@ -1146,8 +1129,7 @@ gnutls_x509_crt_sign2(gnutls_x509_crt_t crt, gnutls_x509_crt_t issuer,
goto fail;
}
- result =
- gnutls_x509_crt_privkey_sign(crt, issuer, privkey, dig, flags);
+ result = gnutls_x509_crt_privkey_sign(crt, issuer, privkey, dig, flags);
if (result < 0) {
gnutls_assert();
goto fail;
@@ -1155,7 +1137,7 @@ gnutls_x509_crt_sign2(gnutls_x509_crt_t crt, gnutls_x509_crt_t issuer,
result = 0;
- fail:
+ fail:
gnutls_privkey_deinit(privkey);
return result;
@@ -1179,8 +1161,7 @@ int
gnutls_x509_crt_sign(gnutls_x509_crt_t crt, gnutls_x509_crt_t issuer,
gnutls_x509_privkey_t issuer_key)
{
- return gnutls_x509_crt_sign2(crt, issuer, issuer_key,
- 0, 0);
+ return gnutls_x509_crt_sign2(crt, issuer, issuer_key, 0, 0);
}
/**
@@ -1194,9 +1175,7 @@ gnutls_x509_crt_sign(gnutls_x509_crt_t crt, gnutls_x509_crt_t issuer,
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
* negative error value.
**/
-int
-gnutls_x509_crt_set_activation_time(gnutls_x509_crt_t cert,
- time_t act_time)
+int gnutls_x509_crt_set_activation_time(gnutls_x509_crt_t cert, time_t act_time)
{
if (cert == NULL) {
gnutls_assert();
@@ -1222,9 +1201,7 @@ gnutls_x509_crt_set_activation_time(gnutls_x509_crt_t cert,
* Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, otherwise a
* negative error value.
**/
-int
-gnutls_x509_crt_set_expiration_time(gnutls_x509_crt_t cert,
- time_t exp_time)
+int gnutls_x509_crt_set_expiration_time(gnutls_x509_crt_t cert, time_t exp_time)
{
if (cert == NULL) {
gnutls_assert();
@@ -1273,7 +1250,7 @@ gnutls_x509_crt_set_serial(gnutls_x509_crt_t cert, const void *serial,
/* check for non-zero serial */
all_zero = 1;
- for (i=0;i<serial_size;i++) {
+ for (i = 0; i < serial_size; i++) {
if (pserial[i] != 0) {
all_zero = 0;
break;
@@ -1314,7 +1291,7 @@ gnutls_x509_crt_set_serial(gnutls_x509_crt_t cert, const void *serial,
**/
int
gnutls_x509_crt_set_issuer_unique_id(gnutls_x509_crt_t cert, const void *id,
- size_t id_size)
+ size_t id_size)
{
int ret;
@@ -1327,7 +1304,7 @@ gnutls_x509_crt_set_issuer_unique_id(gnutls_x509_crt_t cert, const void *id,
ret =
asn1_write_value(cert->cert, "tbsCertificate.issuerUniqueID",
- id, id_size*8);
+ id, id_size * 8);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(ret);
@@ -1351,7 +1328,7 @@ gnutls_x509_crt_set_issuer_unique_id(gnutls_x509_crt_t cert, const void *id,
**/
int
gnutls_x509_crt_set_subject_unique_id(gnutls_x509_crt_t cert, const void *id,
- size_t id_size)
+ size_t id_size)
{
int ret;
@@ -1364,7 +1341,7 @@ gnutls_x509_crt_set_subject_unique_id(gnutls_x509_crt_t cert, const void *id,
ret =
asn1_write_value(cert->cert, "tbsCertificate.subjectUniqueID",
- id, id_size*8);
+ id, id_size * 8);
if (ret != ASN1_SUCCESS) {
gnutls_assert();
return _gnutls_asn2err(ret);
@@ -1385,28 +1362,32 @@ static void disable_optional_stuff(gnutls_x509_crt_t cert)
node = asn1_find_node(cert->cert, "tbsCertificate.issuerUniqueID");
if (node) {
- if (asn1_read_node_value(node, &n) == ASN1_SUCCESS && n.value_len != 0)
+ if (asn1_read_node_value(node, &n) == ASN1_SUCCESS
+ && n.value_len != 0)
remove_issuer_unique_id = 0;
}
node = asn1_find_node(cert->cert, "tbsCertificate.subjectUniqueID");
if (node) {
- if (asn1_read_node_value(node, &n) == ASN1_SUCCESS && n.value_len != 0)
+ if (asn1_read_node_value(node, &n) == ASN1_SUCCESS
+ && n.value_len != 0)
remove_subject_unique_id = 0;
}
if (remove_issuer_unique_id)
- (void)asn1_write_value(cert->cert, "tbsCertificate.issuerUniqueID", NULL,
- 0);
+ (void)asn1_write_value(cert->cert,
+ "tbsCertificate.issuerUniqueID", NULL,
+ 0);
if (remove_subject_unique_id)
- (void)asn1_write_value(cert->cert, "tbsCertificate.subjectUniqueID",
- NULL, 0);
+ (void)asn1_write_value(cert->cert,
+ "tbsCertificate.subjectUniqueID", NULL,
+ 0);
if (cert->use_extensions == 0) {
_gnutls_debug_log("Disabling X.509 extensions.\n");
(void)asn1_write_value(cert->cert, "tbsCertificate.extensions",
- NULL, 0);
+ NULL, 0);
}
return;
@@ -1487,7 +1468,7 @@ gnutls_x509_crt_set_crl_dist_points2(gnutls_x509_crt_t crt,
}
}
- san.data = (void*)data;
+ san.data = (void *)data;
san.size = data_size;
ret = gnutls_x509_crl_dist_points_set(cdp, type, &san, reason_flags);
if (ret < 0) {
@@ -1497,15 +1478,13 @@ gnutls_x509_crt_set_crl_dist_points2(gnutls_x509_crt_t crt,
/* generate the extension.
*/
- ret =
- gnutls_x509_ext_export_crl_dist_points(cdp, &der_data);
+ ret = gnutls_x509_ext_export_crl_dist_points(cdp, &der_data);
if (ret < 0) {
gnutls_assert();
goto cleanup;
}
- ret =
- _gnutls_x509_crt_set_extension(crt, "2.5.29.31", &der_data, 0);
+ ret = _gnutls_x509_crt_set_extension(crt, "2.5.29.31", &der_data, 0);
if (ret < 0) {
gnutls_assert();
@@ -1612,7 +1591,7 @@ gnutls_x509_crt_set_subject_key_id(gnutls_x509_crt_t cert,
/* generate the extension.
*/
- d_id.data = (void*)id;
+ d_id.data = (void *)id;
d_id.size = id_size;
result = gnutls_x509_ext_export_subject_key_id(&d_id, &der_data);
@@ -1622,8 +1601,7 @@ gnutls_x509_crt_set_subject_key_id(gnutls_x509_crt_t cert,
}
result =
- _gnutls_x509_crt_set_extension(cert, "2.5.29.14", &der_data,
- 0);
+ _gnutls_x509_crt_set_extension(cert, "2.5.29.14", &der_data, 0);
_gnutls_free_datum(&der_data);
@@ -1682,8 +1660,7 @@ gnutls_x509_crt_set_authority_key_id(gnutls_x509_crt_t cert,
}
result =
- _gnutls_x509_crt_set_extension(cert, "2.5.29.35", &der_data,
- 0);
+ _gnutls_x509_crt_set_extension(cert, "2.5.29.35", &der_data, 0);
_gnutls_free_datum(&der_data);
@@ -1715,8 +1692,8 @@ gnutls_x509_crt_set_key_purpose_oid(gnutls_x509_crt_t cert,
const void *oid, unsigned int critical)
{
int ret;
- gnutls_datum_t old_id = {NULL,0};
- gnutls_datum_t der = {NULL,0};
+ gnutls_datum_t old_id = { NULL, 0 };
+ gnutls_datum_t der = { NULL, 0 };
gnutls_x509_key_purposes_t p = NULL;
if (cert == NULL) {
@@ -1731,8 +1708,7 @@ gnutls_x509_crt_set_key_purpose_oid(gnutls_x509_crt_t cert,
/* Check if the extension already exists.
*/
ret =
- _gnutls_x509_crt_get_extension(cert, "2.5.29.37", 0, &old_id,
- NULL);
+ _gnutls_x509_crt_get_extension(cert, "2.5.29.37", 0, &old_id, NULL);
if (ret >= 0) {
ret = gnutls_x509_ext_import_key_purposes(&old_id, p, 0);
@@ -1754,8 +1730,7 @@ gnutls_x509_crt_set_key_purpose_oid(gnutls_x509_crt_t cert,
goto cleanup;
}
- ret = _gnutls_x509_crt_set_extension(cert, "2.5.29.37",
- &der, critical);
+ ret = _gnutls_x509_crt_set_extension(cert, "2.5.29.37", &der, critical);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1800,8 +1775,7 @@ int
gnutls_x509_crt_privkey_sign(gnutls_x509_crt_t crt,
gnutls_x509_crt_t issuer,
gnutls_privkey_t issuer_key,
- gnutls_digest_algorithm_t dig,
- unsigned int flags)
+ gnutls_digest_algorithm_t dig, unsigned int flags)
{
int result;
@@ -1811,7 +1785,9 @@ gnutls_x509_crt_privkey_sign(gnutls_x509_crt_t crt,
}
if (dig == 0) {
- result = gnutls_x509_crt_get_preferred_hash_algorithm(issuer, &dig, NULL);
+ result =
+ gnutls_x509_crt_get_preferred_hash_algorithm(issuer, &dig,
+ NULL);
if (result < 0)
return gnutls_assert_val(result);
}
@@ -1879,8 +1855,7 @@ gnutls_x509_crt_set_authority_info_access(gnutls_x509_crt_t crt,
return ret;
}
- ret = _gnutls_x509_crt_get_extension(crt, GNUTLS_OID_AIA, 0, &der,
- &c);
+ ret = _gnutls_x509_crt_get_extension(crt, GNUTLS_OID_AIA, 0, &der, &c);
if (ret >= 0) { /* decode it */
ret = gnutls_x509_ext_import_aia(&der, aia_ctx, 0);
if (ret < 0) {
@@ -1907,8 +1882,7 @@ gnutls_x509_crt_set_authority_info_access(gnutls_x509_crt_t crt,
goto cleanup;
}
- ret = _gnutls_x509_crt_set_extension(crt, GNUTLS_OID_AIA,
- &new_der, 0);
+ ret = _gnutls_x509_crt_set_extension(crt, GNUTLS_OID_AIA, &new_der, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1923,7 +1897,6 @@ gnutls_x509_crt_set_authority_info_access(gnutls_x509_crt_t crt,
return ret;
}
-
/**
* gnutls_x509_crt_set_policy:
* @crt: should contain a #gnutls_x509_crt_t type
@@ -1948,7 +1921,7 @@ gnutls_x509_crt_set_policy(gnutls_x509_crt_t crt,
unsigned int critical)
{
int ret;
- gnutls_datum_t der_data = {NULL, 0}, prev_der_data = { NULL, 0 };
+ gnutls_datum_t der_data = { NULL, 0 }, prev_der_data = { NULL, 0 };
gnutls_x509_policies_t policies = NULL;
if (crt == NULL) {
@@ -1963,16 +1936,15 @@ gnutls_x509_crt_set_policy(gnutls_x509_crt_t crt,
}
ret = _gnutls_x509_crt_get_extension(crt, "2.5.29.32", 0,
- &prev_der_data, NULL);
+ &prev_der_data, NULL);
if (ret < 0 && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
gnutls_assert();
goto cleanup;
}
-
if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
ret = gnutls_x509_ext_import_policies(&prev_der_data,
- policies, 0);
+ policies, 0);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -1991,8 +1963,7 @@ gnutls_x509_crt_set_policy(gnutls_x509_crt_t crt,
goto cleanup;
}
- ret = _gnutls_x509_crt_set_extension(crt, "2.5.29.32",
- &der_data, 0);
+ ret = _gnutls_x509_crt_set_extension(crt, "2.5.29.32", &der_data, 0);
cleanup:
if (policies != NULL)
@@ -2024,8 +1995,7 @@ gnutls_x509_crt_set_policy(gnutls_x509_crt_t crt,
**/
int
gnutls_x509_crt_set_spki(gnutls_x509_crt_t crt,
- const gnutls_x509_spki_t spki,
- unsigned int flags)
+ const gnutls_x509_spki_t spki, unsigned int flags)
{
int ret;
gnutls_pk_algorithm_t crt_pk;
@@ -2081,7 +2051,7 @@ gnutls_x509_crt_set_spki(gnutls_x509_crt_t crt,
/* If salt size is zero, find the optimal salt size. */
if (spki->salt_size == 0) {
ret = _gnutls_find_rsa_pss_salt_size(bits, me,
- spki->salt_size);
+ spki->salt_size);
if (ret < 0) {
gnutls_assert();
goto cleanup;
@@ -2110,9 +2080,9 @@ gnutls_x509_crt_set_spki(gnutls_x509_crt_t crt,
MODIFIED(crt);
ret = _gnutls_x509_write_spki_params(crt->cert,
- "tbsCertificate."
- "subjectPublicKeyInfo.algorithm",
- &tpki);
+ "tbsCertificate."
+ "subjectPublicKeyInfo.algorithm",
+ &tpki);
if (ret < 0) {
gnutls_assert();
goto cleanup;
diff --git a/lib/x509_b64.c b/lib/x509_b64.c
index 668760a0b3..bda4707ca2 100644
--- a/lib/x509_b64.c
+++ b/lib/x509_b64.c
@@ -100,9 +100,10 @@ _gnutls_fbase64_encode(const char *msg, const uint8_t * data,
size = BASE64_ENCODE_RAW_LENGTH(tmp);
if (sizeof(tmpres) < size)
- return gnutls_assert_val(GNUTLS_E_BASE64_ENCODING_ERROR);
+ return
+ gnutls_assert_val(GNUTLS_E_BASE64_ENCODING_ERROR);
- base64_encode_raw((void*)tmpres, tmp, &data[i]);
+ base64_encode_raw((void *)tmpres, tmp, &data[i]);
INCR(bytes, size + 1, max);
ptr = &result->data[pos];
@@ -146,7 +147,7 @@ _gnutls_fbase64_encode(const char *msg, const uint8_t * data,
**/
int
gnutls_pem_base64_encode(const char *msg, const gnutls_datum_t * data,
- char *result, size_t * result_size)
+ char *result, size_t *result_size)
{
gnutls_datum_t res;
int ret;
@@ -155,7 +156,7 @@ gnutls_pem_base64_encode(const char *msg, const gnutls_datum_t * data,
if (ret < 0)
return ret;
- if (result == NULL || *result_size < (unsigned) res.size) {
+ if (result == NULL || *result_size < (unsigned)res.size) {
gnutls_free(res.data);
*result_size = res.size + 1;
return GNUTLS_E_SHORT_MEMORY_BUFFER;
@@ -192,8 +193,7 @@ gnutls_pem_base64_encode(const char *msg, const gnutls_datum_t * data,
**/
int
gnutls_pem_base64_encode2(const char *header,
- const gnutls_datum_t * data,
- gnutls_datum_t * result)
+ const gnutls_datum_t * data, gnutls_datum_t * result)
{
int ret;
@@ -235,7 +235,7 @@ cpydata(const uint8_t * data, int data_size, gnutls_datum_t * result)
result->size = j;
result->data[j] = 0;
- if (j==0) {
+ if (j == 0) {
gnutls_free(result->data);
return gnutls_assert_val(GNUTLS_E_BASE64_DECODING_ERROR);
}
@@ -259,7 +259,7 @@ _gnutls_base64_decode(const uint8_t * data, size_t data_size,
struct base64_decode_ctx ctx;
if (data_size == 0) {
- result->data = (unsigned char*)gnutls_strdup("");
+ result->data = (unsigned char *)gnutls_strdup("");
if (result->data == NULL)
return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR);
result->size = 0;
@@ -287,7 +287,7 @@ _gnutls_base64_decode(const uint8_t * data, size_t data_size,
}
ret = base64_decode_update(&ctx, &size, result->data,
- pdata.size, (void*)pdata.data);
+ pdata.size, (void *)pdata.data);
if (ret == 0 || size == 0) {
gnutls_assert();
ret = GNUTLS_E_BASE64_DECODING_ERROR;
@@ -313,7 +313,6 @@ _gnutls_base64_decode(const uint8_t * data, size_t data_size,
return ret;
}
-
/* Searches the given string for ONE PEM encoded certificate, and
* stores it in the result.
*
@@ -350,8 +349,7 @@ _gnutls_fbase64_decode(const char *header, const uint8_t * data,
return GNUTLS_E_BASE64_DECODING_ERROR;
}
- kdata =
- memmem(rdata + 1, data_size - 1, ENDSTR, sizeof(ENDSTR) - 1);
+ kdata = memmem(rdata + 1, data_size - 1, ENDSTR, sizeof(ENDSTR) - 1);
/* allow CR as well.
*/
if (kdata == NULL) {
@@ -408,7 +406,7 @@ _gnutls_fbase64_decode(const char *header, const uint8_t * data,
int
gnutls_pem_base64_decode(const char *header,
const gnutls_datum_t * b64_data,
- unsigned char *result, size_t * result_size)
+ unsigned char *result, size_t *result_size)
{
gnutls_datum_t res;
int ret;
@@ -419,7 +417,7 @@ gnutls_pem_base64_decode(const char *header,
if (ret < 0)
return gnutls_assert_val(ret);
- if (result == NULL || *result_size < (unsigned) res.size) {
+ if (result == NULL || *result_size < (unsigned)res.size) {
gnutls_free(res.data);
*result_size = res.size;
return GNUTLS_E_SHORT_MEMORY_BUFFER;
@@ -457,8 +455,8 @@ gnutls_pem_base64_decode(const char *header,
**/
int
gnutls_pem_base64_decode2(const char *header,
- const gnutls_datum_t * b64_data,
- gnutls_datum_t * result)
+ const gnutls_datum_t * b64_data,
+ gnutls_datum_t * result)
{
int ret;
@@ -490,8 +488,7 @@ gnutls_pem_base64_decode2(const char *header,
* Since: 3.6.0
**/
int
-gnutls_base64_decode2(const gnutls_datum_t *base64,
- gnutls_datum_t *result)
+gnutls_base64_decode2(const gnutls_datum_t * base64, gnutls_datum_t * result)
{
int ret;
@@ -519,9 +516,7 @@ gnutls_base64_decode2(const gnutls_datum_t *base64,
*
* Since: 3.6.0
**/
-int
-gnutls_base64_encode2(const gnutls_datum_t *data,
- gnutls_datum_t *result)
+int gnutls_base64_encode2(const gnutls_datum_t * data, gnutls_datum_t * result)
{
int ret;
diff --git a/lib/x509_b64.h b/lib/x509_b64.h
index 271850a1dc..bc4402dba7 100644
--- a/lib/x509_b64.h
+++ b/lib/x509_b64.h
@@ -21,7 +21,7 @@
*/
#ifndef GNUTLS_LIB_X509_B64_H
-#define GNUTLS_LIB_X509_B64_H
+# define GNUTLS_LIB_X509_B64_H
int _gnutls_fbase64_encode(const char *msg, const uint8_t * data,
size_t data_size, gnutls_datum_t * result);
@@ -32,13 +32,13 @@ int
_gnutls_base64_decode(const uint8_t * data, size_t data_size,
gnutls_datum_t * result);
-#define B64SIZE( data_size) ((data_size%3==0)?((data_size*4)/3):(4+((data_size/3)*4)))
+# define B64SIZE( data_size) ((data_size%3==0)?((data_size*4)/3):(4+((data_size/3)*4)))
/* The size for B64 encoding + newlines plus header
*/
-#define B64FSIZE( hsize, dsize) \
+# define B64FSIZE( hsize, dsize) \
(B64SIZE(dsize) + (hsize) + /*newlines*/ \
B64SIZE(dsize)/64 + (((B64SIZE(dsize) % 64) > 0) ? 1 : 0))
-#endif /* GNUTLS_LIB_X509_B64_H */
+#endif /* GNUTLS_LIB_X509_B64_H */
diff --git a/libdane/dane-params.c b/libdane/dane-params.c
index e04e54d5a1..0a262bb3ff 100644
--- a/libdane/dane-params.c
+++ b/libdane/dane-params.c
@@ -68,8 +68,6 @@ static const cert_usage_entry dane_cert_usages[] = {
{NULL, 0}
};
-
-
/**
* dane_cert_type_name:
* @type: is a DANE match type
diff --git a/libdane/dane.c b/libdane/dane.c
index 5d89f38454..e25d600fd7 100644
--- a/libdane/dane.c
+++ b/libdane/dane.c
@@ -42,16 +42,16 @@
#undef gnutls_assert_val
#ifdef DEBUG
-#define gnutls_assert() fprintf(stderr, "ASSERT: %s: %d\n", __FILE__, __LINE__);
-#define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __LINE__)
+# define gnutls_assert() fprintf(stderr, "ASSERT: %s: %d\n", __FILE__, __LINE__);
+# define gnutls_assert_val(x) gnutls_assert_val_int(x, __FILE__, __LINE__)
static int gnutls_assert_val_int(int val, const char *file, int line)
{
fprintf(stderr, "ASSERT: %s: %d\n", file, line);
return val;
}
#else
-#define gnutls_assert()
-#define gnutls_assert_val(x) (x)
+# define gnutls_assert()
+# define gnutls_assert_val(x) (x)
#endif
struct dane_state_st {
@@ -118,8 +118,7 @@ dane_query_data(dane_query_t q, unsigned int idx,
unsigned int *match, gnutls_datum_t * data)
{
if (idx >= q->data_entries)
- return
- gnutls_assert_val(DANE_E_REQUESTED_DATA_NOT_AVAILABLE);
+ return gnutls_assert_val(DANE_E_REQUESTED_DATA_NOT_AVAILABLE);
if (usage)
*usage = q->usage[idx];
@@ -160,7 +159,8 @@ dane_query_data(dane_query_t q, unsigned int idx,
*/
int
dane_query_to_raw_tlsa(dane_query_t q, unsigned int *data_entries,
- char ***dane_data, int **dane_data_len, int *secure, int *bogus)
+ char ***dane_data, int **dane_data_len, int *secure,
+ int *bogus)
{
size_t data_sz;
char *data_buf;
@@ -185,17 +185,18 @@ dane_query_to_raw_tlsa(dane_query_t q, unsigned int *data_entries,
}
/* pack dane_data pointer list followed by dane_data contents */
- data_sz = sizeof (**dane_data) * (q->data_entries + 1);
+ data_sz = sizeof(**dane_data) * (q->data_entries + 1);
for (idx = 0; idx < q->data_entries; idx++)
data_sz += 3 + q->data[idx].size;
- *dane_data = gnutls_calloc (1, data_sz);
+ *dane_data = gnutls_calloc(1, data_sz);
if (*dane_data == NULL)
return DANE_E_MEMORY_ERROR;
data_buf = (char *)*dane_data;
- data_buf += sizeof (**dane_data) * (q->data_entries + 1);
+ data_buf += sizeof(**dane_data) * (q->data_entries + 1);
- *dane_data_len = gnutls_calloc (q->data_entries + 1, sizeof (**dane_data_len));
+ *dane_data_len =
+ gnutls_calloc(q->data_entries + 1, sizeof(**dane_data_len));
if (*dane_data_len == NULL) {
free(*dane_data);
*dane_data = NULL;
@@ -207,7 +208,8 @@ dane_query_to_raw_tlsa(dane_query_t q, unsigned int *data_entries,
(*dane_data)[idx][0] = q->usage[idx];
(*dane_data)[idx][1] = q->type[idx];
(*dane_data)[idx][2] = q->match[idx];
- memcpy(&(*dane_data)[idx][3], q->data[idx].data, q->data[idx].size);
+ memcpy(&(*dane_data)[idx][3], q->data[idx].data,
+ q->data[idx].size);
(*dane_data_len)[idx] = 3 + q->data[idx].size;
data_buf += 3 + q->data[idx].size;
}
@@ -263,9 +265,7 @@ int dane_state_init(dane_state_t * s, unsigned int flags)
/* read public keys for DNSSEC verification */
if (!(flags & DANE_F_IGNORE_DNSSEC)) {
- if (ub_ctx_add_ta_file(ctx,
- (char *) UNBOUND_ROOT_KEY_FILE) !=
- 0) {
+ if (ub_ctx_add_ta_file(ctx, (char *)UNBOUND_ROOT_KEY_FILE) != 0) {
gnutls_assert();
ret = DANE_E_INITIALIZATION_ERROR;
goto cleanup;
@@ -276,7 +276,7 @@ int dane_state_init(dane_state_t * s, unsigned int flags)
(*s)->flags = flags;
return DANE_E_SUCCESS;
- cleanup:
+ cleanup:
if (ctx)
ub_ctx_delete(ctx);
@@ -312,8 +312,7 @@ int dane_state_set_dlv_file(dane_state_t s, const char *file)
int ret;
ret =
- ub_ctx_set_option(s->ctx, (char *) "dlv-anchor-file:",
- (void *) file);
+ ub_ctx_set_option(s->ctx, (char *)"dlv-anchor-file:", (void *)file);
if (ret != 0)
return gnutls_assert_val(DANE_E_FILE_ERROR);
@@ -334,7 +333,6 @@ void dane_query_deinit(dane_query_t q)
free(q);
}
-
/**
* dane_raw_tlsa:
* @s: The DANE state structure
@@ -373,14 +371,12 @@ dane_raw_tlsa(dane_state_t s, dane_query_t * r, char *const *dane_data,
break;
if (dane_data_len[i] <= 3)
- return
- gnutls_assert_val
- (DANE_E_RECEIVED_CORRUPT_DATA);
+ return gnutls_assert_val(DANE_E_RECEIVED_CORRUPT_DATA);
(*r)->usage[i] = dane_data[i][0];
(*r)->type[i] = dane_data[i][1];
(*r)->match[i] = dane_data[i][2];
- (*r)->data[i].data = (void *) &dane_data[i][3];
+ (*r)->data[i].data = (void *)&dane_data[i][3];
(*r)->data[i].size = dane_data_len[i] - 3;
(*r)->data_entries++;
}
@@ -406,7 +402,6 @@ dane_raw_tlsa(dane_state_t s, dane_query_t * r, char *const *dane_data,
return ret;
}
-
/**
* dane_query_tlsa:
* @s: The DANE state structure
@@ -454,7 +449,6 @@ dane_query_tlsa(dane_state_t s, dane_query_t * r, const char *host,
return ret;
}
-
static unsigned int
matches(const gnutls_datum_t * raw1, const gnutls_datum_t * raw2,
dane_match_type_t match)
@@ -504,8 +498,7 @@ matches(const gnutls_datum_t * raw1, const gnutls_datum_t * raw2,
return gnutls_assert_val(0);
}
-static int
-crt_to_pubkey(const gnutls_datum_t * raw_crt, gnutls_datum_t * out)
+static int crt_to_pubkey(const gnutls_datum_t * raw_crt, gnutls_datum_t * out)
{
gnutls_pubkey_t pub = NULL;
gnutls_x509_crt_t crt = NULL;
@@ -548,10 +541,10 @@ crt_to_pubkey(const gnutls_datum_t * raw_crt, gnutls_datum_t * out)
ret = 0;
goto clean_certs;
- cleanup:
+ cleanup:
free(out->data);
out->data = NULL;
- clean_certs:
+ clean_certs:
if (pub)
gnutls_pubkey_deinit(pub);
if (crt)
@@ -564,8 +557,7 @@ static int
verify_ca(const gnutls_datum_t * raw_crt, unsigned raw_crt_size,
gnutls_certificate_type_t crt_type,
dane_cert_type_t ctype,
- dane_match_type_t match, gnutls_datum_t * data,
- unsigned int *verify)
+ dane_match_type_t match, gnutls_datum_t * data, unsigned int *verify)
{
gnutls_datum_t pubkey = { NULL, 0 };
int ret, i;
@@ -573,12 +565,12 @@ verify_ca(const gnutls_datum_t * raw_crt, unsigned raw_crt_size,
gnutls_x509_crt_t crt = NULL, ca = NULL;
unsigned is_ok = 0;
- if (raw_crt_size < 2) /* we cannot verify the CA */
+ if (raw_crt_size < 2) /* we cannot verify the CA */
return gnutls_assert_val(DANE_E_UNKNOWN_DANE_DATA);
if (ctype == DANE_CERT_X509 && crt_type == GNUTLS_CRT_X509) {
is_ok = 0;
- for (i=raw_crt_size-1;i>=1;i--) {
+ for (i = raw_crt_size - 1; i >= 1; i--) {
if (matches(&raw_crt[i], data, match)) {
is_ok = 1;
break;
@@ -593,7 +585,7 @@ verify_ca(const gnutls_datum_t * raw_crt, unsigned raw_crt_size,
} else if (ctype == DANE_CERT_PK && crt_type == GNUTLS_CRT_X509) {
is_ok = 0;
- for (i=raw_crt_size-1;i>=1;i--) {
+ for (i = raw_crt_size - 1; i >= 1; i--) {
ret = crt_to_pubkey(&raw_crt[i], &pubkey);
if (ret < 0) {
gnutls_assert();
@@ -625,21 +617,22 @@ verify_ca(const gnutls_datum_t * raw_crt, unsigned raw_crt_size,
goto cleanup;
}
- ret =
- gnutls_x509_crt_import(crt, &raw_crt[0], GNUTLS_X509_FMT_DER);
+ ret = gnutls_x509_crt_import(crt, &raw_crt[0], GNUTLS_X509_FMT_DER);
if (ret < 0) {
ret = gnutls_assert_val(DANE_E_CERT_ERROR);
goto cleanup;
}
- for (i=raw_crt_size-1;i>=1;i--) {
+ for (i = raw_crt_size - 1; i >= 1; i--) {
ret = gnutls_x509_crt_init(&ca);
if (ret < 0) {
ret = gnutls_assert_val(DANE_E_CERT_ERROR);
goto cleanup;
}
- ret = gnutls_x509_crt_import(ca, &raw_crt[i], GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_x509_crt_import(ca, &raw_crt[i],
+ GNUTLS_X509_FMT_DER);
if (ret < 0) {
ret = gnutls_assert_val(DANE_E_CERT_ERROR);
goto cleanup;
@@ -668,7 +661,7 @@ verify_ca(const gnutls_datum_t * raw_crt, unsigned raw_crt_size,
}
ret = 0;
- cleanup:
+ cleanup:
free(pubkey.data);
if (crt != NULL)
gnutls_x509_crt_deinit(crt);
@@ -680,8 +673,7 @@ verify_ca(const gnutls_datum_t * raw_crt, unsigned raw_crt_size,
static int
verify_ee(const gnutls_datum_t * raw_crt,
gnutls_certificate_type_t crt_type, dane_cert_type_t ctype,
- dane_match_type_t match, gnutls_datum_t * data,
- unsigned int *verify)
+ dane_match_type_t match, gnutls_datum_t * data, unsigned int *verify)
{
gnutls_datum_t pubkey = { NULL, 0 };
int ret;
@@ -711,7 +703,7 @@ verify_ee(const gnutls_datum_t * raw_crt,
}
ret = 0;
- cleanup:
+ cleanup:
free(pubkey.data);
return ret;
}
@@ -780,9 +772,7 @@ dane_verify_crt_raw(dane_state_t s,
do {
unsigned int record_verify = 0;
- ret =
- dane_query_data(r, idx++, &usage, &type, &match,
- &data);
+ ret = dane_query_data(r, idx++, &usage, &type, &match, &data);
if (ret == DANE_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
@@ -811,19 +801,17 @@ dane_verify_crt_raw(dane_state_t s,
while (1);
if ((vflags & DANE_VFLAG_FAIL_IF_NOT_CHECKED) && checked == 0) {
- ret =
- gnutls_assert_val(DANE_E_REQUESTED_DATA_NOT_AVAILABLE);
+ ret = gnutls_assert_val(DANE_E_REQUESTED_DATA_NOT_AVAILABLE);
} else if (checked == 0) {
*verify |= DANE_VERIFY_UNKNOWN_DANE_INFO;
} else {
ret = 0;
}
- cleanup:
+ cleanup:
return ret;
}
-
/**
* dane_verify_crt:
* @s: A DANE state structure (may be NULL)
@@ -866,8 +854,7 @@ dane_verify_crt(dane_state_t s,
const gnutls_datum_t * chain, unsigned chain_size,
gnutls_certificate_type_t chain_type,
const char *hostname, const char *proto, unsigned int port,
- unsigned int sflags, unsigned int vflags,
- unsigned int *verify)
+ unsigned int sflags, unsigned int vflags, unsigned int *verify)
{
dane_state_t state = NULL;
dane_query_t r = NULL;
@@ -890,7 +877,7 @@ dane_verify_crt(dane_state_t s,
}
ret = dane_verify_crt_raw(state, chain, chain_size, chain_type,
r, sflags, vflags, verify);
- cleanup:
+ cleanup:
if (state != s)
dane_state_deinit(state);
if (r != NULL)
@@ -952,7 +939,9 @@ dane_verify_session_crt(dane_state_t s,
goto failsafe;
}
- ret = gnutls_x509_crt_import(crt, &cert_list[cert_list_size-1], GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_x509_crt_import(crt, &cert_list[cert_list_size - 1],
+ GNUTLS_X509_FMT_DER);
if (ret < 0) {
gnutls_assert();
gnutls_x509_crt_deinit(crt);
@@ -968,7 +957,9 @@ dane_verify_session_crt(dane_state_t s,
}
/* chain does not finish in a self signed cert, try to obtain the issuer */
- ret = gnutls_credentials_get(session, GNUTLS_CRD_CERTIFICATE, (void**)&sc);
+ ret =
+ gnutls_credentials_get(session, GNUTLS_CRD_CERTIFICATE,
+ (void **)&sc);
if (ret < 0) {
gnutls_assert();
gnutls_x509_crt_deinit(crt);
@@ -985,16 +976,20 @@ dane_verify_session_crt(dane_state_t s,
/* make the new list */
gnutls_datum_t *new_cert_list;
- new_cert_list = gnutls_malloc((cert_list_size + 1) * sizeof(gnutls_datum_t));
+ new_cert_list =
+ gnutls_malloc((cert_list_size + 1) * sizeof(gnutls_datum_t));
if (new_cert_list == NULL) {
gnutls_assert();
gnutls_x509_crt_deinit(crt);
goto failsafe;
}
- memcpy(new_cert_list, cert_list, cert_list_size*sizeof(gnutls_datum_t));
+ memcpy(new_cert_list, cert_list,
+ cert_list_size * sizeof(gnutls_datum_t));
- ret = gnutls_x509_crt_export2(ca, GNUTLS_X509_FMT_DER, &new_cert_list[cert_list_size]);
+ ret =
+ gnutls_x509_crt_export2(ca, GNUTLS_X509_FMT_DER,
+ &new_cert_list[cert_list_size]);
if (ret < 0) {
gnutls_assert();
free(new_cert_list);
@@ -1002,9 +997,8 @@ dane_verify_session_crt(dane_state_t s,
goto failsafe;
}
- ret = dane_verify_crt(s, new_cert_list, cert_list_size+1, type,
- hostname, proto, port, sflags, vflags,
- verify);
+ ret = dane_verify_crt(s, new_cert_list, cert_list_size + 1, type,
+ hostname, proto, port, sflags, vflags, verify);
if (ret < 0) {
gnutls_assert();
}
@@ -1014,8 +1008,7 @@ dane_verify_session_crt(dane_state_t s,
failsafe:
return dane_verify_crt(s, cert_list, cert_list_size, type,
- hostname, proto, port, sflags, vflags,
- verify);
+ hostname, proto, port, sflags, vflags, verify);
}
/**
@@ -1042,20 +1035,16 @@ dane_verification_status_print(unsigned int status,
_gnutls_buffer_init(&str);
if (status == 0)
- _gnutls_buffer_append_str(&str,
- _("Certificate matches. "));
+ _gnutls_buffer_append_str(&str, _("Certificate matches. "));
else
- _gnutls_buffer_append_str(&str,
- _("Verification failed. "));
+ _gnutls_buffer_append_str(&str, _("Verification failed. "));
if (status & DANE_VERIFY_CA_CONSTRAINTS_VIOLATED)
_gnutls_buffer_append_str(&str,
- _
- ("CA constrains were violated. "));
+ _("CA constrains were violated. "));
if (status & DANE_VERIFY_CERT_DIFFERS)
- _gnutls_buffer_append_str(&str,
- _("The certificate differs. "));
+ _gnutls_buffer_append_str(&str, _("The certificate differs. "));
if (status & DANE_VERIFY_NO_DANE_INFO)
_gnutls_buffer_append_str(&str,
diff --git a/libdane/includes/gnutls/dane.h b/libdane/includes/gnutls/dane.h
index 92d1da9226..f6ea07d2aa 100644
--- a/libdane/includes/gnutls/dane.h
+++ b/libdane/includes/gnutls/dane.h
@@ -21,9 +21,9 @@
*/
#ifndef GNUTLS_DANE_H
-#define GNUTLS_DANE_H
+# define GNUTLS_DANE_H
-#include <gnutls/gnutls.h> /* for gnutls_datum_t */
+# include <gnutls/gnutls.h> /* for gnutls_datum_t */
/**
* dane_cert_usage_t:
@@ -108,7 +108,6 @@ int dane_state_init(dane_state_t * s, unsigned int flags);
int dane_state_set_dlv_file(dane_state_t s, const char *file);
void dane_state_deinit(dane_state_t s);
-
int dane_raw_tlsa(dane_state_t s, dane_query_t * r, char *const *dane_data,
const int *dane_data_len, int secure, int bogus);
@@ -121,7 +120,8 @@ int dane_query_data(dane_query_t q, unsigned int idx,
unsigned int *usage, unsigned int *type,
unsigned int *match, gnutls_datum_t * data);
int dane_query_to_raw_tlsa(dane_query_t q, unsigned int *data_entries,
- char ***dane_data, int **dane_data_len, int *secure, int *bogus);
+ char ***dane_data, int **dane_data_len, int *secure,
+ int *bogus);
void dane_query_deinit(dane_query_t q);
const char *dane_cert_type_name(dane_cert_type_t type);
@@ -156,8 +156,8 @@ typedef enum dane_verify_status_t {
DANE_VERIFY_UNKNOWN_DANE_INFO = 1 << 2,
} dane_verify_status_t;
-#define DANE_VERIFY_CA_CONSTRAINS_VIOLATED DANE_VERIFY_CA_CONSTRAINTS_VIOLATED
-#define DANE_VERIFY_NO_DANE_INFO DANE_VERIFY_UNKNOWN_DANE_INFO
+# define DANE_VERIFY_CA_CONSTRAINS_VIOLATED DANE_VERIFY_CA_CONSTRAINTS_VIOLATED
+# define DANE_VERIFY_NO_DANE_INFO DANE_VERIFY_UNKNOWN_DANE_INFO
int
dane_verification_status_print(unsigned int status,
@@ -185,20 +185,20 @@ int dane_verify_session_crt(dane_state_t s,
const char *dane_strerror(int error);
-#define DANE_E_SUCCESS 0
-#define DANE_E_INITIALIZATION_ERROR -1
-#define DANE_E_RESOLVING_ERROR -2
-#define DANE_E_NO_DANE_DATA -3
-#define DANE_E_RECEIVED_CORRUPT_DATA -4
-#define DANE_E_INVALID_DNSSEC_SIG -5
-#define DANE_E_NO_DNSSEC_SIG -6
-#define DANE_E_MEMORY_ERROR -7
-#define DANE_E_REQUESTED_DATA_NOT_AVAILABLE -8
-#define DANE_E_INVALID_REQUEST -9
-#define DANE_E_PUBKEY_ERROR -10
-#define DANE_E_NO_CERT -11
-#define DANE_E_FILE_ERROR -12
-#define DANE_E_CERT_ERROR -13
-#define DANE_E_UNKNOWN_DANE_DATA -14
-
-#endif /* GNUTLS_DANE_H */
+# define DANE_E_SUCCESS 0
+# define DANE_E_INITIALIZATION_ERROR -1
+# define DANE_E_RESOLVING_ERROR -2
+# define DANE_E_NO_DANE_DATA -3
+# define DANE_E_RECEIVED_CORRUPT_DATA -4
+# define DANE_E_INVALID_DNSSEC_SIG -5
+# define DANE_E_NO_DNSSEC_SIG -6
+# define DANE_E_MEMORY_ERROR -7
+# define DANE_E_REQUESTED_DATA_NOT_AVAILABLE -8
+# define DANE_E_INVALID_REQUEST -9
+# define DANE_E_PUBKEY_ERROR -10
+# define DANE_E_NO_CERT -11
+# define DANE_E_FILE_ERROR -12
+# define DANE_E_CERT_ERROR -13
+# define DANE_E_UNKNOWN_DANE_DATA -14
+
+#endif /* GNUTLS_DANE_H */
diff --git a/src/benchmark-cipher.c b/src/benchmark-cipher.c
index 76a3cdc50a..31949e35f1 100644
--- a/src/benchmark-cipher.c
+++ b/src/benchmark-cipher.c
@@ -115,7 +115,7 @@ static void cipher_mac_bench(int algo, int mac_algo, int size)
stop_benchmark(&st, NULL, 1);
- leave:
+ leave:
FREE(input);
FREE(output);
free(_key);
@@ -125,12 +125,12 @@ static void cipher_mac_bench(int algo, int mac_algo, int size)
static void force_memcpy(void *dest, const void *src, size_t n)
{
volatile unsigned volatile_zero = 0;
- volatile char *vdest = (volatile char*)dest;
+ volatile char *vdest = (volatile char *)dest;
if (n > 0) {
do {
memcpy(dest, src, n);
- } while(vdest[volatile_zero] != ((char*)src)[volatile_zero]);
+ } while (vdest[volatile_zero] != ((char *)src)[volatile_zero]);
}
}
@@ -155,8 +155,8 @@ static void cipher_bench(int algo, int size, int aead)
/* For AES-XTS, the block and tweak key must be different */
if (algo == GNUTLS_CIPHER_AES_128_XTS ||
- algo == GNUTLS_CIPHER_AES_256_XTS) {
- memset((uint8_t *)_key + (keysize / 2), 0x0f, (keysize / 2));
+ algo == GNUTLS_CIPHER_AES_256_XTS) {
+ memset((uint8_t *) _key + (keysize / 2), 0x0f, (keysize / 2));
}
_iv = malloc(ivsize);
@@ -177,7 +177,7 @@ static void cipher_bench(int algo, int size, int aead)
assert(gnutls_rnd(GNUTLS_RND_NONCE, &c, 1) >= 0);
ALLOCM(input, MAX_MEM);
- ALLOCM(output, step+64);
+ ALLOCM(output, step + 64);
i = input;
start_benchmark(&st);
@@ -200,9 +200,10 @@ static void cipher_bench(int algo, int size, int aead)
}
do {
- out_size = step+tag_size;
- assert(gnutls_aead_cipher_encrypt(actx, iv.data, iv.size, NULL, 0, tag_size,
- i, step, output, &out_size) >= 0);
+ out_size = step + tag_size;
+ assert(gnutls_aead_cipher_encrypt
+ (actx, iv.data, iv.size, NULL, 0, tag_size, i,
+ step, output, &out_size) >= 0);
st.size += step;
INC(input, i, step);
}
@@ -229,7 +230,7 @@ static void cipher_bench(int algo, int size, int aead)
FREE(input);
FREE(output);
- leave:
+ leave:
free(_key);
free(_iv);
}
@@ -286,14 +287,14 @@ void benchmark_cipher(int debug_level)
cipher_bench(GNUTLS_CIPHER_AES_128_CCM, size, 1);
cipher_bench(GNUTLS_CIPHER_CHACHA20_POLY1305, size, 1);
- printf("\nChecking cipher-MAC combinations, payload size: %u\n", size * 1024);
+ printf("\nChecking cipher-MAC combinations, payload size: %u\n",
+ size * 1024);
cipher_mac_bench(GNUTLS_CIPHER_SALSA20_256, GNUTLS_MAC_SHA1, size);
cipher_mac_bench(GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA1, size);
- cipher_mac_bench(GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA256,
- size);
+ cipher_mac_bench(GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA256, size);
#ifdef ENABLE_GOST
- cipher_mac_bench(GNUTLS_CIPHER_GOST28147_TC26Z_CNT, GNUTLS_MAC_GOST28147_TC26Z_IMIT,
- size);
+ cipher_mac_bench(GNUTLS_CIPHER_GOST28147_TC26Z_CNT,
+ GNUTLS_MAC_GOST28147_TC26Z_IMIT, size);
#endif
printf("\nChecking MAC algorithms, payload size: %u\n", size * 1024);
diff --git a/src/benchmark-tls.c b/src/benchmark-tls.c
index 2c062a6ee7..d0e8c27dcb 100644
--- a/src/benchmark-tls.c
+++ b/src/benchmark-tls.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -52,7 +52,6 @@ const char *side = "";
#define PRIO_RSA "NONE:+VERS-TLS1.2:+AES-128-GCM:+AEAD:+SIGN-ALL:+COMP-NULL:+RSA"
#define PRIO_ECDH_RSA_PSS "NONE:+VERS-TLS1.3:+AES-128-GCM:+AEAD:+SIGN-RSA-PSS-SHA256:+COMP-NULL:+ECDHE-RSA:+CURVE-SECP256R1"
-
#define PRIO_AES_CBC_SHA1 "NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA"
#define PRIO_TLS12_AES_GCM "NONE:+VERS-TLS1.2:+AES-128-GCM:+AEAD:+SIGN-ALL:+COMP-NULL:+RSA"
#define PRIO_AES_GCM "NONE:+VERS-TLS1.3:+AES-128-GCM:+AEAD:+SIGN-ALL:+COMP-NULL:+GROUP-ALL"
@@ -66,34 +65,33 @@ const char *side = "";
static const int rsa_bits = 3072, ec_bits = 256;
static unsigned char server_rsa_pss_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIErTCCAuWgAwIBAgIIWTZrqjOeCfIwPQYJKoZIhvcNAQEKMDCgDTALBglghkgB\n"
- "ZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASAwFzEVMBMGA1UE\n"
- "AxMMcnNhLXBzcyBjZXJ0MCAXDTE3MDYwNjA4NDUzMVoYDzk5OTkxMjMxMjM1OTU5\n"
- "WjAXMRUwEwYDVQQDEwxyc2EtcHNzIGNlcnQwggHSMD0GCSqGSIb3DQEBCjAwoA0w\n"
- "CwYJYIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCAaIDAgEgA4IB\n"
- "jwAwggGKAoIBgQDswF+JIWGcyu+JfjTcM8UDRKaxOuLVY0SODV1uaXPB5ZW9nEX/\n"
- "FFYIG+ldSKCyz5JF5ThrdvwqO+GVByuvETJdM7N4i8fzGHU8WIsj/CABAV+SaDT/\n"
- "xb+h1ar9dIehKelBmXQADVFX+xvu9OM5Ft3P/wyO9gWWrR7e/MU/SVzWzMT69+5Y\n"
- "oE4QkrYYCuEBtlVHDo2mmNWGSQ5tUVIWARgXbqsmj4voWkutE/CiT0+g6GQilMAR\n"
- "kROElIhO5NH+u3/Lt2wRQO5tEP1JmSoqvrMOmF16txze8qMzvKg1Eafijv9DR4Nc\n"
- "Cc6s8+g+CZbyODSdAybiyKsC7JCIrQjsnAjgPKKBLuZ1NTmu5liuXO05XsdcBoKD\n"
- "bKNAQdJCz4uxfqTr4CGFgHQk48Nhmq01EGmpwAeA/BOCB5qsWzqURtMX8EVB1Zdo\n"
- "3LD5Vwz18mm+ZdeLPlYy3L/FBpVPDbYoZlFgINUNCQvGgvzqGJAQrKR4w8X/Y6HH\n"
- "9R8sv+U8kNtQI90CAwEAAaNrMGkwDAYDVR0TAQH/BAIwADAUBgNVHREEDTALggls\n"
- "b2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0PAQH/BAUDAweAADAd\n"
- "BgNVHQ4EFgQU1TmyUrkZZn4yMf4asV5OKq8bZ1gwPQYJKoZIhvcNAQEKMDCgDTAL\n"
- "BglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASADggGB\n"
- "AGxMPB+Z6pgmWNRw5NjIJgnvJfdMWmQib0II5kdU9I1UybrVRUGpI6tFjIB/pRWU\n"
- "SiD8wTZpxfTHkRHUn+Wyhh14XOg2Pdad5Ek2XU/QblL2k4kh1sHdOcCRFbDzP5k8\n"
- "LKIzFcndgnKTRun5368H+NLcXRx/KAi7s9zi4swp9dPxRvNvp8HjQyVhdFi5pK6n\n"
- "pN1Sw/QD22CE1fRVJ3OYxq4sqCEZANhRv6h/M3AcetGt4LR8ErwuzP1fdtuXeumw\n"
- "T0deQ2hhSYZmbkk/S+qHA8as6J224ry7Zr5bhB9hr52yum9yC9SjFy0XEV/895jJ\n"
- "0MDIM33DmPUdnn90Btt+Oq+bgZqTIolifSmcs0sPH10SuxDOnXwkbR44Wu9NbCzx\n"
- "h3VzhlxAdgcnOYSmJnXKWXog4N1BPFrB4rFqXWFF0Avqs4euK81W4IQ4Sk7fYT7C\n"
- "tyrDILPqBhN80Q9Me70y7KRsek6yFn4Jd0Lok6vetaeWtSW0929bhU49b1hkdSzt\n"
- "kw==\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIErTCCAuWgAwIBAgIIWTZrqjOeCfIwPQYJKoZIhvcNAQEKMDCgDTALBglghkgB\n"
+ "ZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASAwFzEVMBMGA1UE\n"
+ "AxMMcnNhLXBzcyBjZXJ0MCAXDTE3MDYwNjA4NDUzMVoYDzk5OTkxMjMxMjM1OTU5\n"
+ "WjAXMRUwEwYDVQQDEwxyc2EtcHNzIGNlcnQwggHSMD0GCSqGSIb3DQEBCjAwoA0w\n"
+ "CwYJYIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCAaIDAgEgA4IB\n"
+ "jwAwggGKAoIBgQDswF+JIWGcyu+JfjTcM8UDRKaxOuLVY0SODV1uaXPB5ZW9nEX/\n"
+ "FFYIG+ldSKCyz5JF5ThrdvwqO+GVByuvETJdM7N4i8fzGHU8WIsj/CABAV+SaDT/\n"
+ "xb+h1ar9dIehKelBmXQADVFX+xvu9OM5Ft3P/wyO9gWWrR7e/MU/SVzWzMT69+5Y\n"
+ "oE4QkrYYCuEBtlVHDo2mmNWGSQ5tUVIWARgXbqsmj4voWkutE/CiT0+g6GQilMAR\n"
+ "kROElIhO5NH+u3/Lt2wRQO5tEP1JmSoqvrMOmF16txze8qMzvKg1Eafijv9DR4Nc\n"
+ "Cc6s8+g+CZbyODSdAybiyKsC7JCIrQjsnAjgPKKBLuZ1NTmu5liuXO05XsdcBoKD\n"
+ "bKNAQdJCz4uxfqTr4CGFgHQk48Nhmq01EGmpwAeA/BOCB5qsWzqURtMX8EVB1Zdo\n"
+ "3LD5Vwz18mm+ZdeLPlYy3L/FBpVPDbYoZlFgINUNCQvGgvzqGJAQrKR4w8X/Y6HH\n"
+ "9R8sv+U8kNtQI90CAwEAAaNrMGkwDAYDVR0TAQH/BAIwADAUBgNVHREEDTALggls\n"
+ "b2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0PAQH/BAUDAweAADAd\n"
+ "BgNVHQ4EFgQU1TmyUrkZZn4yMf4asV5OKq8bZ1gwPQYJKoZIhvcNAQEKMDCgDTAL\n"
+ "BglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASADggGB\n"
+ "AGxMPB+Z6pgmWNRw5NjIJgnvJfdMWmQib0II5kdU9I1UybrVRUGpI6tFjIB/pRWU\n"
+ "SiD8wTZpxfTHkRHUn+Wyhh14XOg2Pdad5Ek2XU/QblL2k4kh1sHdOcCRFbDzP5k8\n"
+ "LKIzFcndgnKTRun5368H+NLcXRx/KAi7s9zi4swp9dPxRvNvp8HjQyVhdFi5pK6n\n"
+ "pN1Sw/QD22CE1fRVJ3OYxq4sqCEZANhRv6h/M3AcetGt4LR8ErwuzP1fdtuXeumw\n"
+ "T0deQ2hhSYZmbkk/S+qHA8as6J224ry7Zr5bhB9hr52yum9yC9SjFy0XEV/895jJ\n"
+ "0MDIM33DmPUdnn90Btt+Oq+bgZqTIolifSmcs0sPH10SuxDOnXwkbR44Wu9NbCzx\n"
+ "h3VzhlxAdgcnOYSmJnXKWXog4N1BPFrB4rFqXWFF0Avqs4euK81W4IQ4Sk7fYT7C\n"
+ "tyrDILPqBhN80Q9Me70y7KRsek6yFn4Jd0Lok6vetaeWtSW0929bhU49b1hkdSzt\n"
+ "kw==\n" "-----END CERTIFICATE-----\n";
static unsigned char server_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
@@ -119,8 +117,7 @@ static unsigned char server_cert_pem[] =
"iD0a4cO2FPjjVt5ji+iaJTaXBEd9GHklKE6ZTZhj5az9ygQj1m6HZ2i3shWtG2ks\n"
"AjgnGzsA8Wm/5X6YyR8UND41rS/lAc9yx8Az9Hqzfg8aOyvixYVPNKoTEPAMmypA\n"
"oQT6g4b989lZFcjrwnLCrwz83jPD683p5IenCnRI5yhuFoQauy2tgHIbC1FRgs0C\n"
- "dyiOeDh80u1fekMVjRztIAwavuwxI6XgRzPSHhWR\n"
- "-----END CERTIFICATE-----\n";
+ "dyiOeDh80u1fekMVjRztIAwavuwxI6XgRzPSHhWR\n" "-----END CERTIFICATE-----\n";
static unsigned char server_key_pem[] =
"-----BEGIN RSA PRIVATE KEY-----\n"
@@ -167,8 +164,7 @@ static unsigned char server_ecc_key_pem[] =
"-----BEGIN EC PRIVATE KEY-----\n"
"MHgCAQEEIQDrAKCAbdMKPngHu4zdSQ2Pghob8PhyrbUpWAR8V07E+qAKBggqhkjO\n"
"PQMBB6FEA0IABDfo4YLPkO4pBpQamtObIV3J6l92vI+RkyNtaQ9gtSWDj20w/aBC\n"
- "WlbcTsRZ2itEpJ6GdLsGOW4RRfmiubzC9JU=\n"
- "-----END EC PRIVATE KEY-----\n";
+ "WlbcTsRZ2itEpJ6GdLsGOW4RRfmiubzC9JU=\n" "-----END EC PRIVATE KEY-----\n";
static unsigned char server_ecc_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
@@ -181,61 +177,59 @@ static unsigned char server_ecc_cert_pem[] =
"VR0OBBYEFOuSntH2To0gJLH79Ow4wNpBuhmEMB8GA1UdIwQYMBaAFMZ1miRvZAYr\n"
"nBEymOtPjbfTrnblMAoGCCqGSM49BAMCA0gAMEUCIQCMP3aBcCxSPbCUhihOsUmH\n"
"G04AgT1PKw8z4LgZ4VGTVAIgYw3IFwS5sSYEAHRZAH8eaTXTz7XFmWmnkve9EBkN\n"
- "cBE=\n"
- "-----END CERTIFICATE-----\n";
+ "cBE=\n" "-----END CERTIFICATE-----\n";
static unsigned char server_ed25519_key_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MC4CAQAwBQYDK2VwBCIEIOXDJXOU6J6XdXx4WfcyPILPYJDH5bRfm9em+DYMkllw\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MC4CAQAwBQYDK2VwBCIEIOXDJXOU6J6XdXx4WfcyPILPYJDH5bRfm9em+DYMkllw\n"
+ "-----END PRIVATE KEY-----\n";
static unsigned char server_ed25519_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIBwTCCAWagAwIBAgIIWTZasQWGNVEwCgYIKoZIzj0EAwIwfTELMAkGA1UEBhMC\n"
- "QkUxDzANBgNVBAoTBkdudVRMUzElMCMGA1UECxMcR251VExTIGNlcnRpZmljYXRl\n"
- "IGF1dGhvcml0eTEPMA0GA1UECBMGTGV1dmVuMSUwIwYDVQQDExxHbnVUTFMgY2Vy\n"
- "dGlmaWNhdGUgYXV0aG9yaXR5MCAXDTE3MDYwNjA3MzMwNVoYDzk5OTkxMjMxMjM1\n"
- "OTU5WjAZMRcwFQYDVQQDEw5FZDI1NTE5IHNpZ25lcjAqMAUGAytlcAMhAPMF++lz\n"
- "LIzfyCX0v0B7LIabZWZ/dePW9HexIbW3tYmHo2EwXzAMBgNVHRMBAf8EAjAAMA8G\n"
- "A1UdDwEB/wQFAwMHgAAwHQYDVR0OBBYEFONSSnOdGLzpv3xNcci8ZiKKqzyqMB8G\n"
- "A1UdIwQYMBaAFPC0gf6YEr+1KLlkQAPLzB9mTigDMAoGCCqGSM49BAMCA0kAMEYC\n"
- "IQDHGfSgM44DVZfrP5CF8LSNlFN55ti3Z69YJ0SK8Fy9eQIhAN2UKeX3l8A9Ckcm\n"
- "7barRoh+qx7ZVYpe+5w3JYuxy16w\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIBwTCCAWagAwIBAgIIWTZasQWGNVEwCgYIKoZIzj0EAwIwfTELMAkGA1UEBhMC\n"
+ "QkUxDzANBgNVBAoTBkdudVRMUzElMCMGA1UECxMcR251VExTIGNlcnRpZmljYXRl\n"
+ "IGF1dGhvcml0eTEPMA0GA1UECBMGTGV1dmVuMSUwIwYDVQQDExxHbnVUTFMgY2Vy\n"
+ "dGlmaWNhdGUgYXV0aG9yaXR5MCAXDTE3MDYwNjA3MzMwNVoYDzk5OTkxMjMxMjM1\n"
+ "OTU5WjAZMRcwFQYDVQQDEw5FZDI1NTE5IHNpZ25lcjAqMAUGAytlcAMhAPMF++lz\n"
+ "LIzfyCX0v0B7LIabZWZ/dePW9HexIbW3tYmHo2EwXzAMBgNVHRMBAf8EAjAAMA8G\n"
+ "A1UdDwEB/wQFAwMHgAAwHQYDVR0OBBYEFONSSnOdGLzpv3xNcci8ZiKKqzyqMB8G\n"
+ "A1UdIwQYMBaAFPC0gf6YEr+1KLlkQAPLzB9mTigDMAoGCCqGSM49BAMCA0kAMEYC\n"
+ "IQDHGfSgM44DVZfrP5CF8LSNlFN55ti3Z69YJ0SK8Fy9eQIhAN2UKeX3l8A9Ckcm\n"
+ "7barRoh+qx7ZVYpe+5w3JYuxy16w\n" "-----END CERTIFICATE-----\n";
#ifdef ENABLE_GOST
static unsigned char server_gost12_256_key_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIkAAYIKoUDBwEBAgIEIgQg0+JttJEV\n"
- "Ud+XBzX9q13ByKK+j2b+mEmNIo1yB0wGleo=\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIkAAYIKoUDBwEBAgIEIgQg0+JttJEV\n"
+ "Ud+XBzX9q13ByKK+j2b+mEmNIo1yB0wGleo=\n" "-----END PRIVATE KEY-----\n";
static unsigned char server_gost12_256_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIC8DCCAVigAwIBAgIIWcZKgxkCMvcwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xOTEwMDgxMDQ4MTZaGA85OTk5MTIzMTIzNTk1OVowDTELMAkG\n"
- "A1UEAxMCR1IwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARA\n"
- "J9sMEEx0JW9QsT5bDqyc0TNcjVg9ZSdp4GkMtShM+OOgyBGrWK3zLP5IzHYSXja8\n"
- "373QrJOUvdX7T7TUk5yU5aOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuC\n"
- "CWxvY2FsaG9zdDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB4AA\n"
- "MB0GA1UdDgQWBBQYSEtdwsYrtnOq6Ya3nt8DgFPCQjAfBgNVHSMEGDAWgBT5qIYZ\n"
- "Y7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAR0xtx7MWEP1KyIzM\n"
- "4lXKdTyU4Nve5RcgqF82yR/0odqT5MPoaZDvLuRWEcQryztZD3kmRUmPmn1ujSfc\n"
- "BbPfRnSutDXcf6imq0/U1/TV/BF3vpS1plltzetvibf8MYetHVFQHUBJDZJHh9h7\n"
- "PGwA9SnmnGKFIxFdV6bVOLkPR54Gob9zN3E17KslL19lNtht1pxk9pshwTn35oRY\n"
- "uOdxof9F4XjpI/4WbC8kp15QeG8XyZd5JWSl+niNOqYK31+ilQdVBr4RiZSDIcAg\n"
- "twS5yV9Ap+R8rM8TLbeT2io4rhdUgmDllUf49zV3t6AbVvbsQfkqXmHXW8uW2WBu\n"
- "A8FiXEbIIOb+QIW0ZGwk3BVQ7wdiw1M5w6kYtz5kBtNPxBmc+eu1+e6EAfYbFNr3\n"
- "pkxtMk3veYWHb5s3dHZ4/t2Rn85hWqh03CWwCkKTN3qmEs4/XpybbXE/UE49e7u1\n"
- "FkpM1bT/0gUNsNt5h3pyUzQZdiB0XbdGGFta3tB3+inIO45h\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC8DCCAVigAwIBAgIIWcZKgxkCMvcwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xOTEwMDgxMDQ4MTZaGA85OTk5MTIzMTIzNTk1OVowDTELMAkG\n"
+ "A1UEAxMCR1IwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARA\n"
+ "J9sMEEx0JW9QsT5bDqyc0TNcjVg9ZSdp4GkMtShM+OOgyBGrWK3zLP5IzHYSXja8\n"
+ "373QrJOUvdX7T7TUk5yU5aOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuC\n"
+ "CWxvY2FsaG9zdDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB4AA\n"
+ "MB0GA1UdDgQWBBQYSEtdwsYrtnOq6Ya3nt8DgFPCQjAfBgNVHSMEGDAWgBT5qIYZ\n"
+ "Y7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAR0xtx7MWEP1KyIzM\n"
+ "4lXKdTyU4Nve5RcgqF82yR/0odqT5MPoaZDvLuRWEcQryztZD3kmRUmPmn1ujSfc\n"
+ "BbPfRnSutDXcf6imq0/U1/TV/BF3vpS1plltzetvibf8MYetHVFQHUBJDZJHh9h7\n"
+ "PGwA9SnmnGKFIxFdV6bVOLkPR54Gob9zN3E17KslL19lNtht1pxk9pshwTn35oRY\n"
+ "uOdxof9F4XjpI/4WbC8kp15QeG8XyZd5JWSl+niNOqYK31+ilQdVBr4RiZSDIcAg\n"
+ "twS5yV9Ap+R8rM8TLbeT2io4rhdUgmDllUf49zV3t6AbVvbsQfkqXmHXW8uW2WBu\n"
+ "A8FiXEbIIOb+QIW0ZGwk3BVQ7wdiw1M5w6kYtz5kBtNPxBmc+eu1+e6EAfYbFNr3\n"
+ "pkxtMk3veYWHb5s3dHZ4/t2Rn85hWqh03CWwCkKTN3qmEs4/XpybbXE/UE49e7u1\n"
+ "FkpM1bT/0gUNsNt5h3pyUzQZdiB0XbdGGFta3tB3+inIO45h\n"
+ "-----END CERTIFICATE-----\n";
static const gnutls_datum_t server_gost12_256_key = { server_gost12_256_key_pem,
- sizeof(server_gost12_256_key_pem)-1
+ sizeof(server_gost12_256_key_pem) - 1
};
-static const gnutls_datum_t server_gost12_256_cert = { server_gost12_256_cert_pem,
- sizeof(server_gost12_256_cert_pem)-1
+static const gnutls_datum_t server_gost12_256_cert =
+ { server_gost12_256_cert_pem,
+ sizeof(server_gost12_256_cert_pem) - 1
};
#endif
@@ -298,8 +292,7 @@ static void test_ciphersuite(const char *cipher_prio, int size)
gnutls_certificate_allocate_credentials(&s_certcred);
gnutls_certificate_set_x509_key_mem(s_certcred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_certificate_set_x509_key_mem(s_certcred, &server_ecc_cert,
&server_ecc_key,
GNUTLS_X509_FMT_PEM);
@@ -347,8 +340,8 @@ static void test_ciphersuite(const char *cipher_prio, int size)
HANDSHAKE(client, server);
name = gnutls_cipher_get_name(gnutls_cipher_get(server));
- fprintf(stdout, "%30s - %s ", name, gnutls_protocol_get_name(
- gnutls_protocol_get_version(server)));
+ fprintf(stdout, "%30s - %s ", name,
+ gnutls_protocol_get_name(gnutls_protocol_get_version(server)));
fflush(stdout);
ret = gnutls_rnd(GNUTLS_RND_NONCE, buffer, sizeof(buffer));
@@ -371,13 +364,13 @@ static void test_ciphersuite(const char *cipher_prio, int size)
}
do {
- ret =
- gnutls_record_recv_packet(server, &packet);
+ ret = gnutls_record_recv_packet(server, &packet);
}
while (ret == GNUTLS_E_AGAIN);
if (ret < 0) {
- fprintf(stderr, "Failed receiving from client: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Failed receiving from client: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -401,7 +394,7 @@ static void test_ciphersuite(const char *cipher_prio, int size)
}
static
-double calc_avg(uint64_t *diffs, unsigned int diffs_size)
+double calc_avg(uint64_t * diffs, unsigned int diffs_size)
{
double avg = 0;
unsigned int i;
@@ -415,14 +408,13 @@ double calc_avg(uint64_t *diffs, unsigned int diffs_size)
}
static
-double calc_svar(uint64_t *diffs, unsigned int diffs_size,
- double avg)
+double calc_svar(uint64_t * diffs, unsigned int diffs_size, double avg)
{
double sum = 0, d;
unsigned int i;
for (i = 0; i < diffs_size; i++) {
- d = ((double) diffs[i] - avg);
+ d = ((double)diffs[i] - avg);
d *= d;
sum += d;
@@ -432,7 +424,6 @@ double calc_svar(uint64_t *diffs, unsigned int diffs_size,
return sum;
}
-
uint64_t total_diffs[32 * 1024];
unsigned int total_diffs_size = 0;
@@ -464,13 +455,17 @@ static void test_ciphersuite_kx(const char *cipher_prio, unsigned pk)
ret = 0;
if (pk == GNUTLS_PK_RSA_PSS)
- ret = gnutls_certificate_set_x509_key_mem(s_certcred, &server_rsa_pss_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(s_certcred,
+ &server_rsa_pss_cert,
+ &server_key,
+ GNUTLS_X509_FMT_PEM);
else if (pk == GNUTLS_PK_RSA)
- ret = gnutls_certificate_set_x509_key_mem(s_certcred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(s_certcred,
+ &server_cert,
+ &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "Error in %d: %s\n", __LINE__,
gnutls_strerror(ret));
@@ -479,18 +474,24 @@ static void test_ciphersuite_kx(const char *cipher_prio, unsigned pk)
ret = 0;
if (pk == GNUTLS_PK_ECDSA)
- ret = gnutls_certificate_set_x509_key_mem(s_certcred, &server_ecc_cert,
- &server_ecc_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(s_certcred,
+ &server_ecc_cert,
+ &server_ecc_key,
+ GNUTLS_X509_FMT_PEM);
else if (pk == GNUTLS_PK_EDDSA_ED25519)
- ret = gnutls_certificate_set_x509_key_mem(s_certcred, &server_ed25519_cert,
- &server_ed25519_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(s_certcred,
+ &server_ed25519_cert,
+ &server_ed25519_key,
+ GNUTLS_X509_FMT_PEM);
#ifdef ENABLE_GOST
else if (pk == GNUTLS_PK_GOST_12_256)
- ret = gnutls_certificate_set_x509_key_mem(s_certcred, &server_gost12_256_cert,
- &server_gost12_256_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(s_certcred,
+ &server_gost12_256_cert,
+ &server_gost12_256_key,
+ GNUTLS_X509_FMT_PEM);
#endif
if (ret < 0) {
fprintf(stderr, "Error in %d: %s\n", __LINE__,
@@ -515,15 +516,14 @@ static void test_ciphersuite_kx(const char *cipher_prio, unsigned pk)
do {
gnutls_init(&server, GNUTLS_SERVER);
- ret =
- gnutls_priority_set(server, priority_cache);
+ ret = gnutls_priority_set(server, priority_cache);
if (ret < 0) {
- fprintf(stderr, "Error in setting priority: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error in setting priority: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
#ifdef ENABLE_ANON
- gnutls_credentials_set(server, GNUTLS_CRD_ANON,
- s_anoncred);
+ gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anoncred);
#endif
gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
s_certcred);
@@ -535,15 +535,14 @@ static void test_ciphersuite_kx(const char *cipher_prio, unsigned pk)
gnutls_init(&client, GNUTLS_CLIENT);
- ret =
- gnutls_priority_set(client, priority_cache);
+ ret = gnutls_priority_set(client, priority_cache);
if (ret < 0) {
- fprintf(stderr, "Error in setting priority: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error in setting priority: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
#ifdef ENABLE_ANON
- gnutls_credentials_set(client, GNUTLS_CRD_ANON,
- c_anoncred);
+ gnutls_credentials_set(client, GNUTLS_CRD_ANON, c_anoncred);
#endif
gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
c_certcred);
@@ -560,14 +559,15 @@ static void test_ciphersuite_kx(const char *cipher_prio, unsigned pk)
gettime(&tr_stop);
if (suite == NULL)
- suite =
- gnutls_session_get_desc(server);
+ suite = gnutls_session_get_desc(server);
gnutls_deinit(client);
gnutls_deinit(server);
- total_diffs[total_diffs_size++] = timespec_sub_ns(&tr_stop, &tr_start);
- if (total_diffs_size > sizeof(total_diffs)/sizeof(total_diffs[0]))
+ total_diffs[total_diffs_size++] =
+ timespec_sub_ns(&tr_stop, &tr_start);
+ if (total_diffs_size >
+ sizeof(total_diffs) / sizeof(total_diffs[0]))
abort();
st.size += 1;
@@ -586,19 +586,20 @@ static void test_ciphersuite_kx(const char *cipher_prio, unsigned pk)
} else if (avg < 1000000) {
scale = "\u00B5s";
avg /= 1000;
- for (i=0;i<total_diffs_size;i++)
+ for (i = 0; i < total_diffs_size; i++)
total_diffs[i] /= 1000;
} else {
scale = "ms";
- avg /= 1000*1000;
- for (i=0;i<total_diffs_size;i++)
- total_diffs[i] /= 1000*1000;
+ avg /= 1000 * 1000;
+ for (i = 0; i < total_diffs_size; i++)
+ total_diffs[i] /= 1000 * 1000;
}
svar = calc_svar(total_diffs, total_diffs_size, avg);
- printf(" - avg. handshake time: %.2f %s\n - standard deviation: %.2f %s\n\n",
- avg, scale, sqrt(svar), scale);
+ printf
+ (" - avg. handshake time: %.2f %s\n - standard deviation: %.2f %s\n\n",
+ avg, scale, sqrt(svar), scale);
#ifdef ENABLE_ANON
gnutls_anon_free_client_credentials(c_anoncred);
@@ -657,7 +658,8 @@ void benchmark_tls(int debug_level, int ciphers)
test_ciphersuite_kx(PRIO_ECDH_X25519, GNUTLS_PK_RSA);
test_ciphersuite_kx(PRIO_ECDHE_ECDSA, GNUTLS_PK_ECC);
test_ciphersuite_kx(PRIO_ECDH_X25519_ECDSA, GNUTLS_PK_ECC);
- test_ciphersuite_kx(PRIO_ECDH_X25519_EDDSA, GNUTLS_PK_EDDSA_ED25519);
+ test_ciphersuite_kx(PRIO_ECDH_X25519_EDDSA,
+ GNUTLS_PK_EDDSA_ED25519);
test_ciphersuite_kx(PRIO_RSA, GNUTLS_PK_RSA);
#ifdef ENABLE_GOST
test_ciphersuite_kx(PRIO_GOST_CNT, GNUTLS_PK_GOST_12_256);
diff --git a/src/benchmark.c b/src/benchmark.c
index b582571dc3..45a6f77e57 100644
--- a/src/benchmark.c
+++ b/src/benchmark.c
@@ -31,7 +31,7 @@
volatile int benchmark_must_finish = 0;
#if defined(_WIN32)
-#include <windows.h>
+# include <windows.h>
static DWORD WINAPI alarm_handler(LPVOID lpParameter)
{
HANDLE wtimer = *((HANDLE *) lpParameter);
@@ -51,22 +51,22 @@ value2human(uint64_t bytes, double time, double *data, double *speed,
char *metric)
{
if (bytes > 1000 && bytes < 1000 * 1000) {
- *data = ((double) bytes) / 1000;
+ *data = ((double)bytes) / 1000;
*speed = *data / time;
strcpy(metric, "KB");
return;
} else if (bytes >= 1000 * 1000 && bytes < 1000 * 1000 * 1000) {
- *data = ((double) bytes) / (1000 * 1000);
+ *data = ((double)bytes) / (1000 * 1000);
*speed = *data / time;
strcpy(metric, "MB");
return;
} else if (bytes >= 1000 * 1000 * 1000) {
- *data = ((double) bytes) / (1000 * 1000 * 1000);
+ *data = ((double)bytes) / (1000 * 1000 * 1000);
*speed = *data / time;
strcpy(metric, "GB");
return;
} else {
- *data = (double) bytes;
+ *data = (double)bytes;
*speed = *data / time;
strcpy(metric, "bytes");
return;
@@ -92,15 +92,13 @@ void start_benchmark(struct benchmark_st *st)
st->wthread =
CreateThread(NULL, 0, alarm_handler, &st->wtimer, 0, NULL);
if (st->wthread == NULL) {
- fprintf(stderr, "error: CreateThread %u\n",
- GetLastError());
+ fprintf(stderr, "error: CreateThread %u\n", GetLastError());
exit(1);
}
st->alarm_timeout.QuadPart = (BSECS) * 10000000;
if (SetWaitableTimer
(st->wtimer, &st->alarm_timeout, 0, NULL, NULL, FALSE) == 0) {
- fprintf(stderr, "error: SetWaitableTimer %u\n",
- GetLastError());
+ fprintf(stderr, "error: SetWaitableTimer %u\n", GetLastError());
exit(1);
}
#else
@@ -110,8 +108,7 @@ void start_benchmark(struct benchmark_st *st)
}
/* returns the elapsed time */
-double stop_benchmark(struct benchmark_st *st, const char *metric,
- int quiet)
+double stop_benchmark(struct benchmark_st *st, const char *metric, int quiet)
{
double secs;
unsigned long lsecs;
@@ -141,7 +138,7 @@ double stop_benchmark(struct benchmark_st *st, const char *metric,
imetric, secs);
printf("%.2f %s/sec\n", dspeed, imetric);
} else {
- ddata = (double) st->size;
+ ddata = (double)st->size;
dspeed = ddata / secs;
if (quiet == 0)
printf(" Processed %.2f %s in %.2f secs: ", ddata,
diff --git a/src/benchmark.h b/src/benchmark.h
index a5e2aff124..af9bc3a4c8 100644
--- a/src/benchmark.h
+++ b/src/benchmark.h
@@ -18,22 +18,22 @@
*/
#ifndef GNUTLS_SRC_BENCHMARK_H
-#define GNUTLS_SRC_BENCHMARK_H
+# define GNUTLS_SRC_BENCHMARK_H
-#include <sys/time.h>
-#include <time.h>
-#include <signal.h>
-#if defined(_WIN32)
-#include <windows.h>
-#endif
+# include <sys/time.h>
+# include <time.h>
+# include <signal.h>
+# if defined(_WIN32)
+# include <windows.h>
+# endif
/* for uint64_t */
# include <stdint.h>
-#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID)
-#undef gettime
-#define gettime(x) clock_gettime(CLOCK_PROCESS_CPUTIME_ID, x)
-#else
+# if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_PROCESS_CPUTIME_ID)
+# undef gettime
+# define gettime(x) clock_gettime(CLOCK_PROCESS_CPUTIME_ID, x)
+# else
inline static void gettime(struct timespec *ts)
{
struct timeval tv;
@@ -41,9 +41,9 @@ inline static void gettime(struct timespec *ts)
ts->tv_sec = tv.tv_sec;
ts->tv_nsec = tv.tv_usec * 1000;
}
-#endif
+# endif
-typedef void (*sighandler_t) (int);
+typedef void (*sighandler_t)(int);
void benchmark_cipher(int debug_level);
void benchmark_tls(int debug_level, int ciphers);
@@ -52,23 +52,23 @@ struct benchmark_st {
struct timespec start;
uint64_t size;
sighandler_t old_handler;
-#if defined(_WIN32)
+# if defined(_WIN32)
HANDLE wtimer;
HANDLE wthread;
LARGE_INTEGER alarm_timeout;
-#endif
+# endif
};
extern volatile int benchmark_must_finish;
void start_benchmark(struct benchmark_st *st);
-double stop_benchmark(struct benchmark_st *st, const char *metric,
- int quiet);
+double stop_benchmark(struct benchmark_st *st, const char *metric, int quiet);
inline static unsigned int
timespec_sub_ms(struct timespec *a, struct timespec *b)
{
- return (a->tv_sec - b->tv_sec) * 1000 + (a->tv_nsec - b->tv_nsec) / (1000 * 1000);
+ return (a->tv_sec - b->tv_sec) * 1000 + (a->tv_nsec -
+ b->tv_nsec) / (1000 * 1000);
}
inline static unsigned long
@@ -77,4 +77,4 @@ timespec_sub_ns(struct timespec *a, struct timespec *b)
return (a->tv_sec - b->tv_sec) * 1000000000 + (a->tv_nsec - b->tv_nsec);
}
-#endif /* GNUTLS_SRC_BENCHMARK_H */
+#endif /* GNUTLS_SRC_BENCHMARK_H */
diff --git a/src/certtool-cfg.c b/src/certtool-cfg.c
index a8a135a4a4..9a323c61e8 100644
--- a/src/certtool-cfg.c
+++ b/src/certtool-cfg.c
@@ -43,9 +43,9 @@
#include <sys/types.h>
#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
+# include <sys/socket.h>
#elif HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
+# include <ws2tcpip.h>
#endif
/* From gnulib for inet_pton() */
@@ -56,8 +56,8 @@
#include "certtool-common.h"
/* to print uint64_t */
-# define __STDC_FORMAT_MACROS
-# include <inttypes.h>
+#define __STDC_FORMAT_MACROS
+#include <inttypes.h>
extern int batch;
extern int ask_pass;
@@ -75,7 +75,9 @@ extern int ask_pass;
if (sizeof(time_t) < 8) \
fprintf(stderr, "This system expresses time with a 32-bit time_t; that prevents dates after 2038 to be expressed by GnuTLS.\n")
-enum option_types { OPTION_NUMERIC, OPTION_STRING, OPTION_BOOLEAN, OPTION_MULTI_LINE };
+enum option_types { OPTION_NUMERIC, OPTION_STRING, OPTION_BOOLEAN,
+ OPTION_MULTI_LINE
+};
struct cfg_options {
const char *name;
@@ -86,76 +88,76 @@ struct cfg_options {
};
static struct cfg_options available_options[] = {
- { .name = "unit", .type = OPTION_MULTI_LINE },
- { .name = "ou", .type = OPTION_MULTI_LINE },
- { .name = "organization", .type = OPTION_MULTI_LINE },
- { .name = "o", .type = OPTION_MULTI_LINE },
- { .name = "dc", .type = OPTION_MULTI_LINE },
- { .name = "dns_name", .type = OPTION_MULTI_LINE },
- { .name = "ip_address", .type = OPTION_MULTI_LINE },
- { .name = "email", .type = OPTION_MULTI_LINE },
- { .name = "krb5_principal", .type = OPTION_MULTI_LINE },
- { .name = "other_name", .type = OPTION_MULTI_LINE },
- { .name = "other_name_utf8", .type = OPTION_MULTI_LINE },
- { .name = "other_name_octet", .type = OPTION_MULTI_LINE },
- { .name = "xmpp_name", .type = OPTION_MULTI_LINE },
- { .name = "key_purpose_oid", .type = OPTION_MULTI_LINE },
- { .name = "nc_exclude_dns", .type = OPTION_MULTI_LINE },
- { .name = "nc_exclude_ip", .type = OPTION_MULTI_LINE },
- { .name = "nc_exclude_email", .type = OPTION_MULTI_LINE },
- { .name = "nc_permit_dns", .type = OPTION_MULTI_LINE },
- { .name = "nc_permit_ip", .type = OPTION_MULTI_LINE },
- { .name = "nc_permit_email", .type = OPTION_MULTI_LINE },
- { .name = "dn_oid", .type = OPTION_MULTI_LINE },
- { .name = "add_extension", .type = OPTION_MULTI_LINE },
- { .name = "add_critical_extension", .type = OPTION_MULTI_LINE },
- { .name = "crl_dist_points", .type = OPTION_MULTI_LINE },
- { .name = "uri", .type = OPTION_MULTI_LINE },
- { .name = "ocsp_uri", .type = OPTION_MULTI_LINE },
- { .name = "ca_issuers_uri", .type = OPTION_MULTI_LINE },
- { .name = "locality", .type = OPTION_STRING },
- { .name = "state", .type = OPTION_STRING },
- { .name = "dn", .type = OPTION_STRING },
- { .name = "cn", .type = OPTION_STRING },
- { .name = "uid", .type = OPTION_STRING },
- { .name = "subject_unique_id", .type = OPTION_STRING },
- { .name = "issuer_unique_id", .type = OPTION_STRING },
- { .name = "challenge_password", .type = OPTION_STRING },
- { .name = "password", .type = OPTION_STRING },
- { .name = "pkcs9_email", .type = OPTION_STRING },
- { .name = "country", .type = OPTION_STRING },
- { .name = "expiration_date", .type = OPTION_STRING },
- { .name = "activation_date", .type = OPTION_STRING },
- { .name = "crl_revocation_date", .type = OPTION_STRING },
- { .name = "crl_this_update_date", .type = OPTION_STRING },
- { .name = "crl_next_update_date", .type = OPTION_STRING },
- { .name = "policy*", .type = OPTION_MULTI_LINE }, /* not a multi-line but there are multi as it is a wildcard */
- { .name = "inhibit_anypolicy_skip_certs", .type = OPTION_NUMERIC },
- { .name = "pkcs12_key_name", .type = OPTION_STRING },
- { .name = "proxy_policy_language", .type = OPTION_STRING },
- { .name = "serial", .type = OPTION_STRING },
- { .name = "expiration_days", .type = OPTION_NUMERIC },
- { .name = "crl_next_update", .type = OPTION_NUMERIC },
- { .name = "crl_number", .type = OPTION_STRING },
- { .name = "path_len", .type = OPTION_NUMERIC },
- { .name = "ca", .type = OPTION_BOOLEAN },
- { .name = "honor_crq_extensions", .type = OPTION_BOOLEAN },
- { .name = "honor_crq_ext", .type = OPTION_MULTI_LINE },
- { .name = "tls_www_client", .type = OPTION_BOOLEAN },
- { .name = "tls_www_server", .type = OPTION_BOOLEAN },
- { .name = "signing_key", .type = OPTION_BOOLEAN },
- { .name = "encryption_key", .type = OPTION_BOOLEAN },
- { .name = "cert_signing_key", .type = OPTION_BOOLEAN },
- { .name = "crl_signing_key", .type = OPTION_BOOLEAN },
- { .name = "code_signing_key", .type = OPTION_BOOLEAN },
- { .name = "ocsp_signing_key", .type = OPTION_BOOLEAN },
- { .name = "time_stamping_key", .type = OPTION_BOOLEAN },
- { .name = "email_protection_key", .type = OPTION_BOOLEAN },
- { .name = "ipsec_ike_key", .type = OPTION_BOOLEAN },
- { .name = "key_agreement", .type = OPTION_BOOLEAN },
- { .name = "data_encipherment", .type = OPTION_BOOLEAN },
- { .name = "non_repudiation", .type = OPTION_BOOLEAN },
- { .name = "tls_feature", .type = OPTION_MULTI_LINE },
+ {.name = "unit",.type = OPTION_MULTI_LINE},
+ {.name = "ou",.type = OPTION_MULTI_LINE},
+ {.name = "organization",.type = OPTION_MULTI_LINE},
+ {.name = "o",.type = OPTION_MULTI_LINE},
+ {.name = "dc",.type = OPTION_MULTI_LINE},
+ {.name = "dns_name",.type = OPTION_MULTI_LINE},
+ {.name = "ip_address",.type = OPTION_MULTI_LINE},
+ {.name = "email",.type = OPTION_MULTI_LINE},
+ {.name = "krb5_principal",.type = OPTION_MULTI_LINE},
+ {.name = "other_name",.type = OPTION_MULTI_LINE},
+ {.name = "other_name_utf8",.type = OPTION_MULTI_LINE},
+ {.name = "other_name_octet",.type = OPTION_MULTI_LINE},
+ {.name = "xmpp_name",.type = OPTION_MULTI_LINE},
+ {.name = "key_purpose_oid",.type = OPTION_MULTI_LINE},
+ {.name = "nc_exclude_dns",.type = OPTION_MULTI_LINE},
+ {.name = "nc_exclude_ip",.type = OPTION_MULTI_LINE},
+ {.name = "nc_exclude_email",.type = OPTION_MULTI_LINE},
+ {.name = "nc_permit_dns",.type = OPTION_MULTI_LINE},
+ {.name = "nc_permit_ip",.type = OPTION_MULTI_LINE},
+ {.name = "nc_permit_email",.type = OPTION_MULTI_LINE},
+ {.name = "dn_oid",.type = OPTION_MULTI_LINE},
+ {.name = "add_extension",.type = OPTION_MULTI_LINE},
+ {.name = "add_critical_extension",.type = OPTION_MULTI_LINE},
+ {.name = "crl_dist_points",.type = OPTION_MULTI_LINE},
+ {.name = "uri",.type = OPTION_MULTI_LINE},
+ {.name = "ocsp_uri",.type = OPTION_MULTI_LINE},
+ {.name = "ca_issuers_uri",.type = OPTION_MULTI_LINE},
+ {.name = "locality",.type = OPTION_STRING},
+ {.name = "state",.type = OPTION_STRING},
+ {.name = "dn",.type = OPTION_STRING},
+ {.name = "cn",.type = OPTION_STRING},
+ {.name = "uid",.type = OPTION_STRING},
+ {.name = "subject_unique_id",.type = OPTION_STRING},
+ {.name = "issuer_unique_id",.type = OPTION_STRING},
+ {.name = "challenge_password",.type = OPTION_STRING},
+ {.name = "password",.type = OPTION_STRING},
+ {.name = "pkcs9_email",.type = OPTION_STRING},
+ {.name = "country",.type = OPTION_STRING},
+ {.name = "expiration_date",.type = OPTION_STRING},
+ {.name = "activation_date",.type = OPTION_STRING},
+ {.name = "crl_revocation_date",.type = OPTION_STRING},
+ {.name = "crl_this_update_date",.type = OPTION_STRING},
+ {.name = "crl_next_update_date",.type = OPTION_STRING},
+ {.name = "policy*",.type = OPTION_MULTI_LINE}, /* not a multi-line but there are multi as it is a wildcard */
+ {.name = "inhibit_anypolicy_skip_certs",.type = OPTION_NUMERIC},
+ {.name = "pkcs12_key_name",.type = OPTION_STRING},
+ {.name = "proxy_policy_language",.type = OPTION_STRING},
+ {.name = "serial",.type = OPTION_STRING},
+ {.name = "expiration_days",.type = OPTION_NUMERIC},
+ {.name = "crl_next_update",.type = OPTION_NUMERIC},
+ {.name = "crl_number",.type = OPTION_STRING},
+ {.name = "path_len",.type = OPTION_NUMERIC},
+ {.name = "ca",.type = OPTION_BOOLEAN},
+ {.name = "honor_crq_extensions",.type = OPTION_BOOLEAN},
+ {.name = "honor_crq_ext",.type = OPTION_MULTI_LINE},
+ {.name = "tls_www_client",.type = OPTION_BOOLEAN},
+ {.name = "tls_www_server",.type = OPTION_BOOLEAN},
+ {.name = "signing_key",.type = OPTION_BOOLEAN},
+ {.name = "encryption_key",.type = OPTION_BOOLEAN},
+ {.name = "cert_signing_key",.type = OPTION_BOOLEAN},
+ {.name = "crl_signing_key",.type = OPTION_BOOLEAN},
+ {.name = "code_signing_key",.type = OPTION_BOOLEAN},
+ {.name = "ocsp_signing_key",.type = OPTION_BOOLEAN},
+ {.name = "time_stamping_key",.type = OPTION_BOOLEAN},
+ {.name = "email_protection_key",.type = OPTION_BOOLEAN},
+ {.name = "ipsec_ike_key",.type = OPTION_BOOLEAN},
+ {.name = "key_agreement",.type = OPTION_BOOLEAN},
+ {.name = "data_encipherment",.type = OPTION_BOOLEAN},
+ {.name = "non_repudiation",.type = OPTION_BOOLEAN},
+ {.name = "tls_feature",.type = OPTION_MULTI_LINE},
};
typedef struct _cfg_ctx {
@@ -206,7 +208,7 @@ typedef struct _cfg_ctx {
uint8_t *serial;
unsigned serial_size;
int expiration_days;
- int skip_certs; /* from inhibit anypolicy */
+ int skip_certs; /* from inhibit anypolicy */
int ca;
int path_len;
int tls_www_client;
@@ -341,23 +343,28 @@ void cfg_init(void)
output_size = _output.size; \
}
-
static int handle_option(cfg_option_t val)
{
unsigned j;
unsigned len, cmp;
- for (j=0;j<sizeof(available_options)/sizeof(available_options[0]);j++) {
+ for (j = 0;
+ j < sizeof(available_options) / sizeof(available_options[0]);
+ j++) {
len = strlen(available_options[j].name);
- if (len > 2 && available_options[j].name[len-1] == '*')
- cmp = strncasecmp(val->name, available_options[j].name, len-1);
+ if (len > 2 && available_options[j].name[len - 1] == '*')
+ cmp =
+ strncasecmp(val->name, available_options[j].name,
+ len - 1);
else
cmp = strcasecmp(val->name, available_options[j].name);
if (cmp == 0) {
if (available_options[j].type != OPTION_MULTI_LINE &&
available_options[j].found != 0) {
- fprintf(stderr, "Warning: multiple options found for '%s'; only the first will be taken into account.\n", available_options[j].name);
+ fprintf(stderr,
+ "Warning: multiple options found for '%s'; only the first will be taken into account.\n",
+ available_options[j].name);
}
available_options[j].found = 1;
return 1;
@@ -385,7 +392,9 @@ int template_parse(const char *template)
for (val = pov; val->name; val++) {
if (handle_option(val) == 0) {
- fprintf(stderr, "Warning: skipping unknown option '%s'\n", val->name);
+ fprintf(stderr,
+ "Warning: skipping unknown option '%s'\n",
+ val->name);
}
}
@@ -422,11 +431,13 @@ int template_parse(const char *template)
val = cfg_next(pov, "issuer_unique_id");
if (val != NULL)
- HEX_DECODE(val->value, cfg.issuer_unique_id, cfg.issuer_unique_id_size);
+ HEX_DECODE(val->value, cfg.issuer_unique_id,
+ cfg.issuer_unique_id_size);
val = cfg_next(pov, "subject_unique_id");
if (val != NULL)
- HEX_DECODE(val->value, cfg.subject_unique_id, cfg.subject_unique_id_size);
+ HEX_DECODE(val->value, cfg.subject_unique_id,
+ cfg.subject_unique_id_size);
val = cfg_next(pov, "challenge_password");
if (val != NULL)
@@ -473,14 +484,12 @@ int template_parse(const char *template)
cfg.policy_oid[i] = strdup(val->value);
if (cfg.policy_oid[i] != NULL) {
- snprintf(tmpstr, sizeof(tmpstr), "policy%d_url",
- i + 1);
+ snprintf(tmpstr, sizeof(tmpstr), "policy%d_url", i + 1);
val = cfg_next(pov, tmpstr);
if (val != NULL)
cfg.policy_url[i] = strdup(val->value);
- snprintf(tmpstr, sizeof(tmpstr), "policy%d_txt",
- i + 1);
+ snprintf(tmpstr, sizeof(tmpstr), "policy%d_txt", i + 1);
val = cfg_next(pov, tmpstr);
if (val != NULL) {
cfg.policy_txt[i] = strdup(val->value);
@@ -511,7 +520,8 @@ int template_parse(const char *template)
READ_MULTI_LINE_TOKENIZED("dn_oid", cfg.dn_oid);
READ_MULTI_LINE_TOKENIZED("add_extension", cfg.extensions);
- READ_MULTI_LINE_TOKENIZED("add_critical_extension", cfg.crit_extensions);
+ READ_MULTI_LINE_TOKENIZED("add_critical_extension",
+ cfg.crit_extensions);
READ_MULTI_LINE("crl_dist_points", cfg.crl_dist_points);
@@ -519,7 +529,6 @@ int template_parse(const char *template)
if (val != NULL)
cfg.pkcs12_key_name = strdup(val->value);
-
val = cfg_next(pov, "serial");
if (val != NULL)
SERIAL_DECODE(val->value, cfg.serial, cfg.serial_size);
@@ -583,19 +592,20 @@ static size_t strip_nl(char *str, size_t str_size)
return str_size;
}
-static int copystr_without_nl(char *out, size_t out_size, const char *in, size_t in_size)
+static int copystr_without_nl(char *out, size_t out_size, const char *in,
+ size_t in_size)
{
- if (in_size+1 >= out_size) {
- fprintf(stderr, "Too long line to parse in interactive mode; please use templates.\n");
+ if (in_size + 1 >= out_size) {
+ fprintf(stderr,
+ "Too long line to parse in interactive mode; please use templates.\n");
exit(1);
}
- memcpy(out, in, in_size+1); /* copy terminating null */
+ memcpy(out, in, in_size + 1); /* copy terminating null */
strip_nl(out, in_size);
return 0;
}
-void
-read_crt_set(gnutls_x509_crt_t crt, const char *input_str, const char *oid)
+void read_crt_set(gnutls_x509_crt_t crt, const char *input_str, const char *oid)
{
ssize_t ret;
char *lineptr = NULL;
@@ -613,9 +623,7 @@ read_crt_set(gnutls_x509_crt_t crt, const char *input_str, const char *oid)
linesize = strip_nl(lineptr, ret);
- ret =
- gnutls_x509_crt_set_dn_by_oid(crt, oid, 0, lineptr,
- linesize);
+ ret = gnutls_x509_crt_set_dn_by_oid(crt, oid, 0, lineptr, linesize);
if (ret < 0) {
fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
@@ -623,8 +631,7 @@ read_crt_set(gnutls_x509_crt_t crt, const char *input_str, const char *oid)
free(lineptr);
}
-void
-read_crq_set(gnutls_x509_crq_t crq, const char *input_str, const char *oid)
+void read_crq_set(gnutls_x509_crq_t crq, const char *input_str, const char *oid)
{
ssize_t ret;
char *lineptr = NULL;
@@ -642,9 +649,7 @@ read_crq_set(gnutls_x509_crq_t crq, const char *input_str, const char *oid)
linesize = strip_nl(lineptr, ret);
- ret =
- gnutls_x509_crq_set_dn_by_oid(crq, oid, 0, lineptr,
- linesize);
+ ret = gnutls_x509_crq_set_dn_by_oid(crq, oid, 0, lineptr, linesize);
if (ret < 0) {
fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
@@ -673,41 +678,40 @@ static int64_t read_int_with_default(const char *input_str, long def)
l = strtoll(input, &endptr, 0);
if (*endptr != '\0' && *endptr != '\r' && *endptr != '\n') {
- fprintf(stderr, "Trailing garbage ignored: `%s'\n",
- endptr);
+ fprintf(stderr, "Trailing garbage ignored: `%s'\n", endptr);
return 0;
} else {
*endptr = 0;
}
if (l <= LLONG_MIN || l >= LLONG_MAX) {
- fprintf(stderr, "Integer out of range: `%s' (max: %llu)\n", input, LLONG_MAX-1);
+ fprintf(stderr, "Integer out of range: `%s' (max: %llu)\n",
+ input, LLONG_MAX - 1);
return 0;
}
#else
l = strtol(input, &endptr, 0);
if (*endptr != '\0' && *endptr != '\r' && *endptr != '\n') {
- fprintf(stderr, "Trailing garbage ignored: `%s'\n",
- endptr);
+ fprintf(stderr, "Trailing garbage ignored: `%s'\n", endptr);
return 0;
} else {
*endptr = 0;
}
if (l <= LONG_MIN || l >= LONG_MAX) {
- fprintf(stderr, "Integer out of range: `%s' (max: %lu)\n", input, LONG_MAX-1);
+ fprintf(stderr, "Integer out of range: `%s' (max: %lu)\n",
+ input, LONG_MAX - 1);
return 0;
}
#endif
-
-
if (input == endptr)
l = def;
return l;
}
+
#pragma GCC diagnostic pop
int64_t read_int(const char *input_str)
@@ -715,7 +719,7 @@ int64_t read_int(const char *input_str)
return read_int_with_default(input_str, 0);
}
-int serial_decode(const char *input, gnutls_datum_t *output)
+int serial_decode(const char *input, gnutls_datum_t * output)
{
int i;
int64_t value;
@@ -724,14 +728,13 @@ int serial_decode(const char *input, gnutls_datum_t *output)
gnutls_datum_t input_datum;
if (input[0] == '0' && input[1] == 'x') {
- input_datum.data = (void *) (input + 2);
+ input_datum.data = (void *)(input + 2);
input_datum.size = strlen(input + 2);
if (input_datum.size == 0) {
return GNUTLS_E_PARSING_ERROR;
}
return gnutls_hex_decode2(&input_datum, output);
}
-
#if SIZEOF_LONG < 8
value = strtol(input, &endptr, 10);
value_limit = LONG_MAX;
@@ -746,7 +749,9 @@ int serial_decode(const char *input, gnutls_datum_t *output)
}
if (value <= 0 || value >= value_limit) {
- fprintf(stderr, "Integer out of range: `%s' (min: 1, max: %"PRId64")\n", input, value_limit-1);
+ fprintf(stderr,
+ "Integer out of range: `%s' (min: 1, max: %" PRId64
+ ")\n", input, value_limit - 1);
return GNUTLS_E_PARSING_ERROR;
}
@@ -799,7 +804,7 @@ int read_yesno(const char *input_str, int def)
{
char input[MAX_INPUT_SIZE];
- restart:
+ restart:
fputs(input_str, stderr);
if (fgets(input, sizeof(input), stdin) == NULL)
return def;
@@ -815,7 +820,6 @@ int read_yesno(const char *input_str, int def)
goto restart;
}
-
/* Wrapper functions for non-interactive mode.
*/
const char *get_pass(void)
@@ -846,8 +850,7 @@ const char *get_confirmed_pass(bool empty_ok)
CHECK_MALLOC(copy);
pass = getpass("Confirm password: ");
}
- while (strcmp(pass, copy) != 0
- && !(empty_ok && *pass == '\0'));
+ while (strcmp(pass, copy) != 0 && !(empty_ok && *pass == '\0'));
free(copy);
@@ -874,8 +877,7 @@ void get_crl_dist_point_set(gnutls_x509_crt_t crt)
for (i = 0; cfg.crl_dist_points[i] != NULL; i++) {
ret =
gnutls_x509_crt_set_crl_dist_points
- (crt, GNUTLS_SAN_URI, cfg.crl_dist_points[i],
- 0);
+ (crt, GNUTLS_SAN_URI, cfg.crl_dist_points[i], 0);
if (ret < 0)
break;
}
@@ -924,8 +926,7 @@ void get_country_crt_set(gnutls_x509_crt_t crt)
0, cfg.country,
strlen(cfg.country));
if (ret < 0) {
- fprintf(stderr, "set_dn: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
}
} else {
@@ -947,9 +948,12 @@ void get_organization_crt_set(gnutls_x509_crt_t crt)
for (i = 0; cfg.organization[i] != NULL; i++) {
ret =
gnutls_x509_crt_set_dn_by_oid(crt,
- GNUTLS_OID_X520_ORGANIZATION_NAME,
- 0, cfg.organization[i],
- strlen(cfg.organization[i]));
+ GNUTLS_OID_X520_ORGANIZATION_NAME,
+ 0,
+ cfg.organization[i],
+ strlen
+ (cfg.organization
+ [i]));
if (ret < 0) {
fprintf(stderr, "set_dn: %s\n",
gnutls_strerror(ret));
@@ -975,9 +979,9 @@ void get_unit_crt_set(gnutls_x509_crt_t crt)
for (i = 0; cfg.unit[i] != NULL; i++) {
ret =
gnutls_x509_crt_set_dn_by_oid(crt,
- GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME,
- 0, cfg.unit[i],
- strlen(cfg.unit[i]));
+ GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME,
+ 0, cfg.unit[i],
+ strlen(cfg.unit[i]));
if (ret < 0) {
fprintf(stderr, "set_dn: %s\n",
gnutls_strerror(ret));
@@ -1004,8 +1008,7 @@ void get_state_crt_set(gnutls_x509_crt_t crt)
0, cfg.state,
strlen(cfg.state));
if (ret < 0) {
- fprintf(stderr, "set_dn: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
}
} else {
@@ -1028,8 +1031,7 @@ void get_locality_crt_set(gnutls_x509_crt_t crt)
0, cfg.locality,
strlen(cfg.locality));
if (ret < 0) {
- fprintf(stderr, "set_dn: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
}
} else {
@@ -1049,16 +1051,14 @@ void get_cn_crt_set(gnutls_x509_crt_t crt)
ret =
gnutls_x509_crt_set_dn_by_oid(crt,
GNUTLS_OID_X520_COMMON_NAME,
- 0, cfg.cn,
- strlen(cfg.cn));
+ 0, cfg.cn, strlen(cfg.cn));
if (ret < 0) {
fprintf(stderr, "set_dn_by_oid: %s\n",
gnutls_strerror(ret));
exit(1);
}
} else {
- read_crt_set(crt, "Common name: ",
- GNUTLS_OID_X520_COMMON_NAME);
+ read_crt_set(crt, "Common name: ", GNUTLS_OID_X520_COMMON_NAME);
}
}
@@ -1088,10 +1088,13 @@ void crt_constraints_set(gnutls_x509_crt_t crt)
gnutls_datum_t name;
if (batch) {
- if (cfg.permitted_nc_dns == NULL && cfg.permitted_nc_email == NULL &&
- cfg.excluded_nc_dns == NULL && cfg.excluded_nc_email == NULL &&
- cfg.permitted_nc_ip == NULL && cfg.excluded_nc_ip == NULL)
- return; /* nothing to do */
+ if (cfg.permitted_nc_dns == NULL
+ && cfg.permitted_nc_email == NULL
+ && cfg.excluded_nc_dns == NULL
+ && cfg.excluded_nc_email == NULL
+ && cfg.permitted_nc_ip == NULL
+ && cfg.excluded_nc_ip == NULL)
+ return; /* nothing to do */
ret = gnutls_x509_name_constraints_init(&nc);
if (ret < 0) {
@@ -1101,14 +1104,22 @@ void crt_constraints_set(gnutls_x509_crt_t crt)
if (cfg.permitted_nc_ip) {
for (i = 0; cfg.permitted_nc_ip[i] != NULL; i++) {
- ret = gnutls_x509_cidr_to_rfc5280(cfg.permitted_nc_ip[i], &name);
+ ret =
+ gnutls_x509_cidr_to_rfc5280
+ (cfg.permitted_nc_ip[i], &name);
if (ret < 0) {
- fprintf(stderr, "error parsing IP constraint: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error parsing IP constraint: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted
+ (nc, GNUTLS_SAN_IPADDRESS, &name);
if (ret < 0) {
- fprintf(stderr, "error adding constraint: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error adding constraint: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
free(name.data);
@@ -1117,14 +1128,22 @@ void crt_constraints_set(gnutls_x509_crt_t crt)
if (cfg.excluded_nc_ip) {
for (i = 0; cfg.excluded_nc_ip[i] != NULL; i++) {
- ret = gnutls_x509_cidr_to_rfc5280(cfg.excluded_nc_ip[i], &name);
+ ret =
+ gnutls_x509_cidr_to_rfc5280
+ (cfg.excluded_nc_ip[i], &name);
if (ret < 0) {
- fprintf(stderr, "error parsing IP constraint: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error parsing IP constraint: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_IPADDRESS, &name);
+ ret =
+ gnutls_x509_name_constraints_add_excluded
+ (nc, GNUTLS_SAN_IPADDRESS, &name);
if (ret < 0) {
- fprintf(stderr, "error adding constraint: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error adding constraint: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
free(name.data);
@@ -1135,24 +1154,31 @@ void crt_constraints_set(gnutls_x509_crt_t crt)
for (i = 0; cfg.permitted_nc_dns[i] != NULL; i++) {
- name.data = (void*)cfg.permitted_nc_dns[i];
- name.size = strlen((char*)name.data);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_DNSNAME, &name);
+ name.data = (void *)cfg.permitted_nc_dns[i];
+ name.size = strlen((char *)name.data);
+ ret =
+ gnutls_x509_name_constraints_add_permitted
+ (nc, GNUTLS_SAN_DNSNAME, &name);
if (ret < 0) {
- fprintf(stderr, "error adding constraint: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error adding constraint: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
}
}
-
if (cfg.excluded_nc_dns) {
for (i = 0; cfg.excluded_nc_dns[i] != NULL; i++) {
- name.data = (void*)cfg.excluded_nc_dns[i];
- name.size = strlen((char*)name.data);
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_DNSNAME, &name);
+ name.data = (void *)cfg.excluded_nc_dns[i];
+ name.size = strlen((char *)name.data);
+ ret =
+ gnutls_x509_name_constraints_add_excluded
+ (nc, GNUTLS_SAN_DNSNAME, &name);
if (ret < 0) {
- fprintf(stderr, "error adding constraint: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error adding constraint: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
}
@@ -1160,11 +1186,15 @@ void crt_constraints_set(gnutls_x509_crt_t crt)
if (cfg.permitted_nc_email) {
for (i = 0; cfg.permitted_nc_email[i] != NULL; i++) {
- name.data = (void*)cfg.permitted_nc_email[i];
- name.size = strlen((char*)name.data);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_RFC822NAME, &name);
+ name.data = (void *)cfg.permitted_nc_email[i];
+ name.size = strlen((char *)name.data);
+ ret =
+ gnutls_x509_name_constraints_add_permitted
+ (nc, GNUTLS_SAN_RFC822NAME, &name);
if (ret < 0) {
- fprintf(stderr, "error adding constraint: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error adding constraint: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
}
@@ -1172,11 +1202,15 @@ void crt_constraints_set(gnutls_x509_crt_t crt)
if (cfg.excluded_nc_email) {
for (i = 0; cfg.excluded_nc_email[i] != NULL; i++) {
- name.data = (void*)cfg.excluded_nc_email[i];
- name.size = strlen((char*)name.data);
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_RFC822NAME, &name);
+ name.data = (void *)cfg.excluded_nc_email[i];
+ name.size = strlen((char *)name.data);
+ ret =
+ gnutls_x509_name_constraints_add_excluded
+ (nc, GNUTLS_SAN_RFC822NAME, &name);
if (ret < 0) {
- fprintf(stderr, "error adding constraint: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error adding constraint: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
}
@@ -1184,7 +1218,8 @@ void crt_constraints_set(gnutls_x509_crt_t crt)
ret = gnutls_x509_crt_set_name_constraints(crt, nc, 1);
if (ret < 0) {
- fprintf(stderr, "error setting constraints: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "error setting constraints: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -1197,21 +1232,32 @@ void crt_unique_ids_set(gnutls_x509_crt_t crt)
int ret;
if (batch) {
- if (cfg.subject_unique_id == NULL && cfg.issuer_unique_id == NULL)
- return; /* nothing to do */
+ if (cfg.subject_unique_id == NULL
+ && cfg.issuer_unique_id == NULL)
+ return; /* nothing to do */
if (cfg.subject_unique_id) {
- ret = gnutls_x509_crt_set_subject_unique_id(crt, cfg.subject_unique_id, cfg.subject_unique_id_size);
+ ret =
+ gnutls_x509_crt_set_subject_unique_id(crt,
+ cfg.subject_unique_id,
+ cfg.subject_unique_id_size);
if (ret < 0) {
- fprintf(stderr, "error setting subject unique ID: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error setting subject unique ID: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
}
if (cfg.issuer_unique_id) {
- ret = gnutls_x509_crt_set_issuer_unique_id(crt, cfg.issuer_unique_id, cfg.issuer_unique_id_size);
+ ret =
+ gnutls_x509_crt_set_issuer_unique_id(crt,
+ cfg.issuer_unique_id,
+ cfg.issuer_unique_id_size);
if (ret < 0) {
- fprintf(stderr, "error setting issuer unique ID: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error setting issuer unique ID: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
}
@@ -1227,11 +1273,9 @@ void get_uid_crt_set(gnutls_x509_crt_t crt)
return;
ret =
gnutls_x509_crt_set_dn_by_oid(crt, GNUTLS_OID_LDAP_UID,
- 0, cfg.uid,
- strlen(cfg.uid));
+ 0, cfg.uid, strlen(cfg.uid));
if (ret < 0) {
- fprintf(stderr, "set_dn: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
}
} else {
@@ -1259,9 +1303,8 @@ void get_oid_crt_set(gnutls_x509_crt_t crt)
cfg.dn_oid[i], 0,
cfg.dn_oid[i +
1],
- strlen(cfg.
- dn_oid[i +
- 1]));
+ strlen(cfg.dn_oid[i +
+ 1]));
if (ret < 0) {
fprintf(stderr, "set_dn_oid: %s\n",
@@ -1296,7 +1339,9 @@ static unsigned char *decode_ext_string(char *str, unsigned int *ret_size)
p++;
p2 = strchr(p, ')');
if (p2 == NULL) {
- fprintf(stderr, "there is no terminating parenthesis in: %s\n", str);
+ fprintf(stderr,
+ "there is no terminating parenthesis in: %s\n",
+ str);
exit(1);
}
*p2 = 0;
@@ -1305,28 +1350,31 @@ static unsigned char *decode_ext_string(char *str, unsigned int *ret_size)
}
if (strncmp(p, "0x", 2) == 0)
- p+=2;
+ p += 2;
HEX_DECODE(p, raw, raw_size);
- switch(action) {
- case ENCODE_OCTET_STRING:
- tag_len = sizeof(tag);
- res = asn1_encode_simple_der(ASN1_ETYPE_OCTET_STRING, raw, raw_size, tag, &tag_len);
- if (res != ASN1_SUCCESS) {
- fprintf(stderr, "error in DER encoding: %s\n", asn1_strerror(res));
- exit(1);
- }
- tmp = gnutls_malloc(raw_size+tag_len);
- if (tmp == NULL) {
- fprintf(stderr, "error in allocation\n");
- exit(1);
- }
- memcpy(tmp, tag, tag_len);
- memcpy(tmp+tag_len, raw, raw_size);
- gnutls_free(raw);
- raw = tmp;
- raw_size += tag_len;
- break;
+ switch (action) {
+ case ENCODE_OCTET_STRING:
+ tag_len = sizeof(tag);
+ res =
+ asn1_encode_simple_der(ASN1_ETYPE_OCTET_STRING, raw,
+ raw_size, tag, &tag_len);
+ if (res != ASN1_SUCCESS) {
+ fprintf(stderr, "error in DER encoding: %s\n",
+ asn1_strerror(res));
+ exit(1);
+ }
+ tmp = gnutls_malloc(raw_size + tag_len);
+ if (tmp == NULL) {
+ fprintf(stderr, "error in allocation\n");
+ exit(1);
+ }
+ memcpy(tmp, tag, tag_len);
+ memcpy(tmp + tag_len, raw, raw_size);
+ gnutls_free(raw);
+ raw = tmp;
+ raw_size += tag_len;
+ break;
}
*ret_size = raw_size;
@@ -1351,18 +1399,25 @@ void get_extensions_crt_set(int type, void *crt)
}
/* convert hex to bin */
- raw = decode_ext_string(cfg.extensions[i+1], &raw_size);
+ raw =
+ decode_ext_string(cfg.extensions[i + 1], &raw_size);
if (type == TYPE_CRT)
ret =
gnutls_x509_crt_set_extension_by_oid(crt,
- cfg.extensions[i],
- raw, raw_size, 0);
+ cfg.extensions
+ [i],
+ raw,
+ raw_size,
+ 0);
else
ret =
gnutls_x509_crq_set_extension_by_oid(crt,
- cfg.extensions[i],
- raw, raw_size, 0);
+ cfg.extensions
+ [i],
+ raw,
+ raw_size,
+ 0);
gnutls_free(raw);
if (ret < 0) {
@@ -1383,18 +1438,26 @@ void get_extensions_crt_set(int type, void *crt)
exit(1);
}
/* convert hex to bin */
- raw = decode_ext_string(cfg.crit_extensions[i+1], &raw_size);
+ raw =
+ decode_ext_string(cfg.crit_extensions[i + 1],
+ &raw_size);
if (type == TYPE_CRT)
ret =
gnutls_x509_crt_set_extension_by_oid(crt,
- cfg.crit_extensions[i],
- raw, raw_size, 1);
+ cfg.crit_extensions
+ [i],
+ raw,
+ raw_size,
+ 1);
else
ret =
gnutls_x509_crq_set_extension_by_oid(crt,
- cfg.crit_extensions[i],
- raw, raw_size, 1);
+ cfg.crit_extensions
+ [i],
+ raw,
+ raw_size,
+ 1);
gnutls_free(raw);
@@ -1444,7 +1507,7 @@ void get_ocsp_issuer_set(gnutls_x509_crt_t crt)
if (!cfg.ocsp_uris)
return;
for (i = 0; cfg.ocsp_uris[i] != NULL; i++) {
- uri.data = (void*)cfg.ocsp_uris[i];
+ uri.data = (void *)cfg.ocsp_uris[i];
uri.size = strlen(cfg.ocsp_uris[i]);
ret =
gnutls_x509_crt_set_authority_info_access(crt,
@@ -1452,8 +1515,7 @@ void get_ocsp_issuer_set(gnutls_x509_crt_t crt)
&uri);
if (ret < 0) {
fprintf(stderr, "set OCSP URI (%s): %s\n",
- cfg.ocsp_uris[i],
- gnutls_strerror(ret));
+ cfg.ocsp_uris[i], gnutls_strerror(ret));
exit(1);
}
}
@@ -1469,7 +1531,7 @@ void get_ca_issuers_set(gnutls_x509_crt_t crt)
if (!cfg.ca_issuers_uris)
return;
for (i = 0; cfg.ca_issuers_uris[i] != NULL; i++) {
- uri.data = (void*)cfg.ca_issuers_uris[i];
+ uri.data = (void *)cfg.ca_issuers_uris[i];
uri.size = strlen(cfg.ca_issuers_uris[i]);
ret =
gnutls_x509_crt_set_authority_info_access(crt,
@@ -1486,7 +1548,6 @@ void get_ca_issuers_set(gnutls_x509_crt_t crt)
}
}
-
void get_pkcs9_email_crt_set(gnutls_x509_crt_t crt)
{
int ret;
@@ -1500,8 +1561,7 @@ void get_pkcs9_email_crt_set(gnutls_x509_crt_t crt)
0, cfg.pkcs9_email,
strlen(cfg.pkcs9_email));
if (ret < 0) {
- fprintf(stderr, "set_dn: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
}
} else {
@@ -1510,9 +1570,8 @@ void get_pkcs9_email_crt_set(gnutls_x509_crt_t crt)
}
-
static
-int default_crl_number(unsigned char* serial, size_t *size)
+int default_crl_number(unsigned char *serial, size_t *size)
{
struct timespec ts;
time_t tv_sec_tmp;
@@ -1561,7 +1620,7 @@ int default_crl_number(unsigned char* serial, size_t *size)
**/
static
void read_serial_value(unsigned char *serial, size_t *size, size_t max_size,
- const char *label, const char *rfc_section)
+ const char *label, const char *rfc_section)
{
static char input[MAX_INPUT_SIZE];
int ret;
@@ -1583,8 +1642,7 @@ void read_serial_value(unsigned char *serial, size_t *size, size_t max_size,
fprintf(stderr,
"Enter the %s in decimal (123) or hex (0xabcd)\n"
"(default is 0x%s)\n"
- "value: ",
- label, encoded_default.data);
+ "value: ", label, encoded_default.data);
if (fgets(input, sizeof(input), stdin) == NULL)
break;
@@ -1600,17 +1658,19 @@ void read_serial_value(unsigned char *serial, size_t *size, size_t max_size,
continue;
}
- if ((decoded.size == SERIAL_MAX_BYTES && decoded.data[0] & 0x80) ||
- decoded.size > SERIAL_MAX_BYTES) {
- fprintf(stderr, "%s would be encoded in more than 20 bytes,"
- "see RFC 5280, section %s\n", label, rfc_section);
+ if ((decoded.size == SERIAL_MAX_BYTES && decoded.data[0] & 0x80)
+ || decoded.size > SERIAL_MAX_BYTES) {
+ fprintf(stderr,
+ "%s would be encoded in more than 20 bytes,"
+ "see RFC 5280, section %s\n", label,
+ rfc_section);
gnutls_free(decoded.data);
continue;
}
if (decoded.size > max_size) {
fprintf(stderr, "maximum %zu octets allowed for %s\n",
- max_size, label);
+ max_size, label);
gnutls_free(decoded.data);
continue;
}
@@ -1626,9 +1686,9 @@ void read_serial_value(unsigned char *serial, size_t *size, size_t max_size,
static
void get_serial_value(unsigned char *serial, size_t *size,
- const unsigned char *config, size_t config_size,
- int (create_default)(unsigned char *, size_t *),
- const char *label, const char *rfc_section)
+ const unsigned char *config, size_t config_size,
+ int (create_default) (unsigned char *, size_t *),
+ const char *label, const char *rfc_section)
{
size_t max_size = *size;
int ret;
@@ -1636,7 +1696,7 @@ void get_serial_value(unsigned char *serial, size_t *size,
if (batch && config != NULL) {
if (config_size > max_size) {
fprintf(stderr, "maximum %zu octets allowed for %s!\n",
- max_size, label);
+ max_size, label);
exit(1);
}
memcpy(serial, config, config_size);
@@ -1645,7 +1705,7 @@ void get_serial_value(unsigned char *serial, size_t *size,
ret = create_default(serial, size);
if (ret < 0) {
fprintf(stderr, "error generating default %s: %s\n",
- label, gnutls_strerror(ret));
+ label, gnutls_strerror(ret));
exit(1);
}
}
@@ -1653,9 +1713,11 @@ void get_serial_value(unsigned char *serial, size_t *size,
if (!batch)
read_serial_value(serial, size, max_size, label, rfc_section);
- if ((*size == SERIAL_MAX_BYTES && serial[0] & 0x80) || *size > SERIAL_MAX_BYTES) {
- fprintf(stderr, "%s would be encoded in more than 20 bytes,"
- "see RFC 5280, section %s\n", label, rfc_section);
+ if ((*size == SERIAL_MAX_BYTES && serial[0] & 0x80)
+ || *size > SERIAL_MAX_BYTES) {
+ fprintf(stderr,
+ "%s would be encoded in more than 20 bytes,"
+ "see RFC 5280, section %s\n", label, rfc_section);
exit(1);
}
}
@@ -1684,15 +1746,16 @@ int default_serial(unsigned char *serial, size_t *size)
void get_serial(unsigned char *serial, size_t *size)
{
get_serial_value(serial, size, cfg.serial, cfg.serial_size,
- default_serial, "certificate's serial number", "4.1.2.2");
+ default_serial, "certificate's serial number",
+ "4.1.2.2");
}
static
-time_t get_date(const char* date)
+time_t get_date(const char *date)
{
struct timespec r;
- if (date==NULL || parse_datetime(&r, date, NULL) == 0) {
+ if (date == NULL || parse_datetime(&r, date, NULL) == 0) {
PRINT_TIME_T_ERROR;
fprintf(stderr, "Cannot parse date: %s\n", date);
exit(1);
@@ -1734,18 +1797,18 @@ time_t get_crl_this_update_date(void)
static
time_t days_to_secs(int days)
{
-time_t secs = days;
-time_t now = time(NULL);
+ time_t secs = days;
+ time_t now = time(NULL);
- if (secs != (time_t)-1) {
- if (INT_MULTIPLY_OVERFLOW(secs, 24*60*60)) {
+ if (secs != (time_t) - 1) {
+ if (INT_MULTIPLY_OVERFLOW(secs, 24 * 60 * 60)) {
goto overflow;
} else {
- secs *= 24*60*60;
+ secs *= 24 * 60 * 60;
}
}
- if (secs != (time_t)-1) {
+ if (secs != (time_t) - 1) {
if (INT_ADD_OVERFLOW(secs, now)) {
goto overflow;
} else {
@@ -1780,8 +1843,7 @@ time_t get_int_date(const char *txt_val, int int_val, const char *msg)
int days;
do {
- days =
- read_int(msg);
+ days = read_int(msg);
}
while (days == 0);
return days_to_secs(days);
@@ -1790,7 +1852,8 @@ time_t get_int_date(const char *txt_val, int int_val, const char *msg)
time_t get_expiration_date(void)
{
- return get_int_date(cfg.expiration_date, cfg.expiration_days, "The certificate will expire in (days): ");
+ return get_int_date(cfg.expiration_date, cfg.expiration_days,
+ "The certificate will expire in (days): ");
}
int get_ca_status(void)
@@ -1800,8 +1863,7 @@ int get_ca_status(void)
} else {
return
read_yesno
- ("Does the certificate belong to an authority? (y/N): ",
- 0);
+ ("Does the certificate belong to an authority? (y/N): ", 0);
}
}
@@ -1817,10 +1879,10 @@ int get_crq_extensions_status(void)
}
}
-void get_crl_number(unsigned char* serial, size_t * size)
+void get_crl_number(unsigned char *serial, size_t *size)
{
get_serial_value(serial, size, cfg.crl_number, cfg.crl_number_size,
- default_crl_number, "CRL's serial number", "5.2.3");
+ default_crl_number, "CRL's serial number", "5.2.3");
}
int get_path_len(void)
@@ -2028,7 +2090,6 @@ void get_email_set(int type, void *crt)
}
}
-
void get_dc_set(int type, void *crt)
{
int ret = 0, i;
@@ -2043,21 +2104,17 @@ void get_dc_set(int type, void *crt)
gnutls_x509_crt_set_dn_by_oid(crt,
GNUTLS_OID_LDAP_DC,
0,
- cfg.
- dc[i],
+ cfg.dc[i],
strlen
- (cfg.
- dc[i]));
+ (cfg.dc[i]));
else
ret =
gnutls_x509_crq_set_dn_by_oid(crt,
GNUTLS_OID_LDAP_DC,
0,
- cfg.
- dc[i],
+ cfg.dc[i],
strlen
- (cfg.
- dc[i]));
+ (cfg.dc[i]));
if (ret < 0)
break;
@@ -2082,15 +2139,13 @@ void get_dc_set(int type, void *crt)
gnutls_x509_crt_set_dn_by_oid(crt,
GNUTLS_OID_LDAP_DC,
0, p,
- strlen
- (p));
+ strlen(p));
else
ret =
gnutls_x509_crq_set_dn_by_oid(crt,
GNUTLS_OID_LDAP_DC,
0, p,
- strlen
- (p));
+ strlen(p));
counter++;
if (ret < 0)
break;
@@ -2099,8 +2154,7 @@ void get_dc_set(int type, void *crt)
}
if (ret < 0) {
- fprintf(stderr, "set_dn_by_oid: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn_by_oid: %s\n", gnutls_strerror(ret));
exit(1);
}
}
@@ -2138,9 +2192,11 @@ void get_dns_name_set(int type, void *crt)
do {
if (counter == 0) {
- p = read_str("Enter a dnsName of the subject of the certificate: ");
+ p = read_str
+ ("Enter a dnsName of the subject of the certificate: ");
} else {
- p = read_str("Enter an additional dnsName of the subject of the certificate: ");
+ p = read_str
+ ("Enter an additional dnsName of the subject of the certificate: ");
}
if (!p)
return;
@@ -2172,18 +2228,20 @@ static int set_krb5_principal(int type, void *crt)
if (!cfg.krb5_principal)
return 0;
- for (i = 0; cfg.krb5_principal[i] != NULL; i ++) {
+ for (i = 0; cfg.krb5_principal[i] != NULL; i++) {
if (type == TYPE_CRT)
ret =
gnutls_x509_crt_set_subject_alt_name
(crt, GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL,
- cfg.krb5_principal[i], strlen(cfg.krb5_principal[i]),
+ cfg.krb5_principal[i],
+ strlen(cfg.krb5_principal[i]),
GNUTLS_FSAN_APPEND);
else
ret =
gnutls_x509_crq_set_subject_alt_name
(crt, GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL,
- cfg.krb5_principal[i], strlen(cfg.krb5_principal[i]),
+ cfg.krb5_principal[i],
+ strlen(cfg.krb5_principal[i]),
GNUTLS_FSAN_APPEND);
if (ret < 0)
@@ -2192,7 +2250,8 @@ static int set_krb5_principal(int type, void *crt)
}
if (ret < 0) {
- fprintf(stderr, "set_subject_alt_name(GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL): %s\n",
+ fprintf(stderr,
+ "set_subject_alt_name(GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL): %s\n",
gnutls_strerror(ret));
exit(1);
}
@@ -2221,7 +2280,7 @@ static int set_othername(int type, void *crt)
exit(1);
}
- HEX_DECODE (cfg.other_name[i+1], binname, binnamelen);
+ HEX_DECODE(cfg.other_name[i + 1], binname, binnamelen);
if (binnamelen == 0)
break;
@@ -2229,15 +2288,13 @@ static int set_othername(int type, void *crt)
ret =
gnutls_x509_crt_set_subject_alt_othername
(crt, oid,
- binname, binnamelen,
- GNUTLS_FSAN_APPEND);
+ binname, binnamelen, GNUTLS_FSAN_APPEND);
else
ret =
gnutls_x509_crq_set_subject_alt_othername
(crt, oid,
- binname, binnamelen,
- GNUTLS_FSAN_APPEND);
- free (binname);
+ binname, binnamelen, GNUTLS_FSAN_APPEND);
+ free(binname);
binname = NULL;
if (ret < 0)
@@ -2277,14 +2334,18 @@ static int set_othername_utf8(int type, void *crt)
ret =
gnutls_x509_crt_set_subject_alt_othername
(crt, oid,
- cfg.other_name_utf8[i + 1], strlen(cfg.other_name_utf8[i + 1]),
- GNUTLS_FSAN_APPEND|GNUTLS_FSAN_ENCODE_UTF8_STRING);
+ cfg.other_name_utf8[i + 1],
+ strlen(cfg.other_name_utf8[i + 1]),
+ GNUTLS_FSAN_APPEND |
+ GNUTLS_FSAN_ENCODE_UTF8_STRING);
else
ret =
gnutls_x509_crq_set_subject_alt_othername
(crt, oid,
- cfg.other_name_utf8[i + 1], strlen(cfg.other_name_utf8[i + 1]),
- GNUTLS_FSAN_APPEND|GNUTLS_FSAN_ENCODE_UTF8_STRING);
+ cfg.other_name_utf8[i + 1],
+ strlen(cfg.other_name_utf8[i + 1]),
+ GNUTLS_FSAN_APPEND |
+ GNUTLS_FSAN_ENCODE_UTF8_STRING);
if (ret < 0)
break;
@@ -2323,14 +2384,18 @@ static int set_othername_octet(int type, void *crt)
ret =
gnutls_x509_crt_set_subject_alt_othername
(crt, oid,
- cfg.other_name_octet[i + 1], strlen(cfg.other_name_octet[i + 1]),
- GNUTLS_FSAN_APPEND|GNUTLS_FSAN_ENCODE_OCTET_STRING);
+ cfg.other_name_octet[i + 1],
+ strlen(cfg.other_name_octet[i + 1]),
+ GNUTLS_FSAN_APPEND |
+ GNUTLS_FSAN_ENCODE_OCTET_STRING);
else
ret =
gnutls_x509_crq_set_subject_alt_othername
(crt, oid,
- cfg.other_name_octet[i + 1], strlen(cfg.other_name_octet[i + 1]),
- GNUTLS_FSAN_APPEND|GNUTLS_FSAN_ENCODE_OCTET_STRING);
+ cfg.other_name_octet[i + 1],
+ strlen(cfg.other_name_octet[i + 1]),
+ GNUTLS_FSAN_APPEND |
+ GNUTLS_FSAN_ENCODE_OCTET_STRING);
if (ret < 0)
break;
@@ -2354,7 +2419,7 @@ static int set_xmpp_name(int type, void *crt)
if (!cfg.xmpp_name)
return 0;
- for (i = 0; cfg.xmpp_name[i] != NULL; i ++) {
+ for (i = 0; cfg.xmpp_name[i] != NULL; i++) {
if (type == TYPE_CRT)
ret =
gnutls_x509_crt_set_subject_alt_name
@@ -2382,7 +2447,6 @@ static int set_xmpp_name(int type, void *crt)
return ret;
}
-
void get_other_name_set(int type, void *crt)
{
set_othername(type, crt);
@@ -2399,9 +2463,13 @@ void get_policy_set(gnutls_x509_crt_t crt)
if (batch) {
if (cfg.skip_certs >= 0) {
- ret = gnutls_x509_crt_set_inhibit_anypolicy(crt, cfg.skip_certs);
+ ret =
+ gnutls_x509_crt_set_inhibit_anypolicy(crt,
+ cfg.skip_certs);
if (ret < 0) {
- fprintf(stderr, "error setting inhibit anypolicy: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error setting inhibit anypolicy: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
}
@@ -2455,14 +2523,12 @@ void get_uri_set(int type, void *crt)
ret =
gnutls_x509_crt_set_subject_alt_name
(crt, GNUTLS_SAN_URI, cfg.uri[i],
- strlen(cfg.uri[i]),
- GNUTLS_FSAN_APPEND);
+ strlen(cfg.uri[i]), GNUTLS_FSAN_APPEND);
else
ret =
gnutls_x509_crq_set_subject_alt_name
(crt, GNUTLS_SAN_URI, cfg.uri[i],
- strlen(cfg.uri[i]),
- GNUTLS_FSAN_APPEND);
+ strlen(cfg.uri[i]), GNUTLS_FSAN_APPEND);
if (ret < 0)
break;
@@ -2504,8 +2570,6 @@ void get_uri_set(int type, void *crt)
}
}
-
-
int get_sign_status(int server)
{
const char *msg;
@@ -2559,8 +2623,7 @@ int get_crl_sign_status(void)
} else {
return
read_yesno
- ("Will the certificate be used to sign CRLs? (y/N): ",
- 0);
+ ("Will the certificate be used to sign CRLs? (y/N): ", 0);
}
}
@@ -2589,7 +2652,10 @@ int get_data_encipherment_status(void)
if (batch) {
return cfg.data_encipherment;
} else {
- return read_yesno("Will the certificate be used for data encryption? (y/N): ", 0);
+ return
+ read_yesno
+ ("Will the certificate be used for data encryption? (y/N): ",
+ 0);
}
}
@@ -2600,8 +2666,7 @@ int get_code_sign_status(void)
} else {
return
read_yesno
- ("Will the certificate be used to sign code? (y/N): ",
- 0);
+ ("Will the certificate be used to sign code? (y/N): ", 0);
}
}
@@ -2655,10 +2720,11 @@ int get_ipsec_ike_status(void)
time_t get_crl_next_update(void)
{
- return get_int_date(cfg.next_update_date, cfg.crl_next_update, "The next CRL will be issued in (days): ");
+ return get_int_date(cfg.next_update_date, cfg.crl_next_update,
+ "The next CRL will be issued in (days): ");
}
-const char *get_proxy_policy(char **policy, size_t * policylen)
+const char *get_proxy_policy(char **policy, size_t *policylen)
{
const char *ret;
@@ -2702,8 +2768,7 @@ void get_country_crq_set(gnutls_x509_crq_t crq)
0, cfg.country,
strlen(cfg.country));
if (ret < 0) {
- fprintf(stderr, "set_dn: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
}
} else {
@@ -2725,10 +2790,12 @@ void get_organization_crq_set(gnutls_x509_crq_t crq)
for (i = 0; cfg.organization[i] != NULL; i++) {
ret =
gnutls_x509_crq_set_dn_by_oid(crq,
- GNUTLS_OID_X520_ORGANIZATION_NAME,
- 0, cfg.organization[i],
- strlen(cfg.
- organization[i]));
+ GNUTLS_OID_X520_ORGANIZATION_NAME,
+ 0,
+ cfg.organization[i],
+ strlen
+ (cfg.organization
+ [i]));
if (ret < 0) {
fprintf(stderr, "set_dn: %s\n",
gnutls_strerror(ret));
@@ -2754,9 +2821,9 @@ void get_unit_crq_set(gnutls_x509_crq_t crq)
for (i = 0; cfg.unit[i] != NULL; i++) {
ret =
gnutls_x509_crq_set_dn_by_oid(crq,
- GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME,
- 0, cfg.unit[i],
- strlen(cfg.unit[i]));
+ GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME,
+ 0, cfg.unit[i],
+ strlen(cfg.unit[i]));
if (ret < 0) {
fprintf(stderr, "set_dn: %s\n",
gnutls_strerror(ret));
@@ -2783,8 +2850,7 @@ void get_state_crq_set(gnutls_x509_crq_t crq)
0, cfg.state,
strlen(cfg.state));
if (ret < 0) {
- fprintf(stderr, "set_dn: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
}
} else {
@@ -2807,8 +2873,7 @@ void get_locality_crq_set(gnutls_x509_crq_t crq)
0, cfg.locality,
strlen(cfg.locality));
if (ret < 0) {
- fprintf(stderr, "set_dn: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
}
} else {
@@ -2845,16 +2910,13 @@ void get_cn_crq_set(gnutls_x509_crq_t crq)
ret =
gnutls_x509_crq_set_dn_by_oid(crq,
GNUTLS_OID_X520_COMMON_NAME,
- 0, cfg.cn,
- strlen(cfg.cn));
+ 0, cfg.cn, strlen(cfg.cn));
if (ret < 0) {
- fprintf(stderr, "set_dn: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
}
} else {
- read_crq_set(crq, "Common name: ",
- GNUTLS_OID_X520_COMMON_NAME);
+ read_crq_set(crq, "Common name: ", GNUTLS_OID_X520_COMMON_NAME);
}
}
@@ -2868,11 +2930,9 @@ void get_uid_crq_set(gnutls_x509_crq_t crq)
return;
ret =
gnutls_x509_crq_set_dn_by_oid(crq, GNUTLS_OID_LDAP_UID,
- 0, cfg.uid,
- strlen(cfg.uid));
+ 0, cfg.uid, strlen(cfg.uid));
if (ret < 0) {
- fprintf(stderr, "set_dn: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_dn: %s\n", gnutls_strerror(ret));
exit(1);
}
} else {
@@ -2900,9 +2960,8 @@ void get_oid_crq_set(gnutls_x509_crq_t crq)
cfg.dn_oid[i], 0,
cfg.dn_oid[i +
1],
- strlen(cfg.
- dn_oid[i +
- 1]));
+ strlen(cfg.dn_oid[i +
+ 1]));
if (ret < 0) {
fprintf(stderr, "set_dn_oid: %s\n",
@@ -2935,7 +2994,8 @@ void get_tlsfeatures_set(int type, void *crt)
feature = strtoul(cfg.tls_features[i], 0, 10);
ret = gnutls_x509_tlsfeatures_add(features, feature);
if (ret < 0) {
- fprintf(stderr, "gnutls_x509_tlsfeatures_add: %s\n",
+ fprintf(stderr,
+ "gnutls_x509_tlsfeatures_add: %s\n",
gnutls_strerror(ret));
exit(1);
}
@@ -2944,15 +3004,16 @@ void get_tlsfeatures_set(int type, void *crt)
if (type == TYPE_CRT) {
ret = gnutls_x509_crt_set_tlsfeatures(crt, features);
if (ret < 0) {
- fprintf(stderr, "gnutls_x509_crt_set_tlsfeatures: %s\n",
+ fprintf(stderr,
+ "gnutls_x509_crt_set_tlsfeatures: %s\n",
gnutls_strerror(ret));
exit(1);
}
- }
- else {
+ } else {
ret = gnutls_x509_crq_set_tlsfeatures(crt, features);
if (ret < 0) {
- fprintf(stderr, "gnutls_x509_crq_set_tlsfeatures: %s\n",
+ fprintf(stderr,
+ "gnutls_x509_crq_set_tlsfeatures: %s\n",
gnutls_strerror(ret));
exit(1);
}
@@ -2971,9 +3032,14 @@ void crq_extensions_set(gnutls_x509_crt_t crt, gnutls_x509_crq_t crq)
return;
for (i = 0; cfg.exts_to_honor[i]; ++i) {
- ret = gnutls_x509_crt_set_crq_extension_by_oid(crt, crq, cfg.exts_to_honor[i], 0);
+ ret =
+ gnutls_x509_crt_set_crq_extension_by_oid(crt, crq,
+ cfg.exts_to_honor
+ [i], 0);
if (ret < 0) {
- fprintf(stderr, "setting extension failed: %s: %s\n", cfg.exts_to_honor[i],
+ fprintf(stderr,
+ "setting extension failed: %s: %s\n",
+ cfg.exts_to_honor[i],
gnutls_strerror(ret));
}
}
diff --git a/src/certtool-cfg.h b/src/certtool-cfg.h
index c23ff5b0b0..4886683e87 100644
--- a/src/certtool-cfg.h
+++ b/src/certtool-cfg.h
@@ -21,11 +21,11 @@
*/
#ifndef GNUTLS_SRC_CERTTOOL_CFG_H
-#define GNUTLS_SRC_CERTTOOL_CFG_H
+# define GNUTLS_SRC_CERTTOOL_CFG_H
-#include <stdbool.h>
-#include <stdint.h>
-#include <gnutls/x509.h>
+# include <stdbool.h>
+# include <stdint.h>
+# include <gnutls/x509.h>
void cfg_init(void);
int template_parse(const char *template);
@@ -35,7 +35,7 @@ void read_crt_set(gnutls_x509_crt_t crt, const char *input_str,
void read_crq_set(gnutls_x509_crq_t crq, const char *input_str,
const char *oid);
int64_t read_int(const char *input_str);
-int serial_decode(const char *input, gnutls_datum_t *output);
+int serial_decode(const char *input, gnutls_datum_t * output);
const char *read_str(const char *input_str);
int read_yesno(const char *input_str, int def);
@@ -56,11 +56,11 @@ void get_uid_crt_set(gnutls_x509_crt_t crt);
void get_pkcs9_email_crt_set(gnutls_x509_crt_t crt);
void get_oid_crt_set(gnutls_x509_crt_t crt);
void get_key_purpose_set(int type, void *crt);
-void get_serial(unsigned char* serial, size_t* serial_size);
+void get_serial(unsigned char *serial, size_t *serial_size);
time_t get_expiration_date(void);
time_t get_activation_date(void);
int get_ca_status(void);
-void get_crl_number(unsigned char* serial, size_t* serial_size);
+void get_crl_number(unsigned char *serial, size_t *serial_size);
int get_path_len(void);
int get_crq_extensions_status(void);
const char *get_pkcs12_key_name(void);
@@ -103,8 +103,8 @@ void get_unit_crq_set(gnutls_x509_crq_t crq);
void get_organization_crq_set(gnutls_x509_crq_t crq);
void get_country_crq_set(gnutls_x509_crq_t crq);
void get_oid_crq_set(gnutls_x509_crq_t crq);
-const char *get_proxy_policy(char **policy, size_t * policylen);
+const char *get_proxy_policy(char **policy, size_t *policylen);
void crq_extensions_set(gnutls_x509_crt_t crt, gnutls_x509_crq_t crq);
-#endif /* GNUTLS_SRC_CERTTOOL_CFG_H */
+#endif /* GNUTLS_SRC_CERTTOOL_CFG_H */
diff --git a/src/certtool-common.c b/src/certtool-common.c
index fae3a489d4..463b94477f 100644
--- a/src/certtool-common.c
+++ b/src/certtool-common.c
@@ -51,7 +51,7 @@
unsigned char *lbuffer = NULL;
unsigned long lbuffer_size = 0;
-static unsigned long file_size(FILE *fp)
+static unsigned long file_size(FILE * fp)
{
unsigned long size;
long cur = ftell(fp);
@@ -74,12 +74,12 @@ void fix_lbuffer(unsigned long size)
{
if (lbuffer_size == 0 || lbuffer == NULL) {
if (size == 0)
- lbuffer_size = 64*1024;
+ lbuffer_size = 64 * 1024;
else
- lbuffer_size = MAX(64*1024,size+1);
+ lbuffer_size = MAX(64 * 1024, size + 1);
lbuffer = malloc(lbuffer_size);
} else if (size > lbuffer_size) {
- lbuffer_size = MAX(64*1024,size+1);
+ lbuffer_size = MAX(64 * 1024, size + 1);
lbuffer = realloc(lbuffer, lbuffer_size);
}
@@ -126,7 +126,7 @@ gnutls_datum_t *load_secret_key(int mand, common_info_st * info)
return NULL;
}
- hex_key.data = (void *) info->secret_key;
+ hex_key.data = (void *)info->secret_key;
hex_key.size = strlen(info->secret_key);
ret = gnutls_hex_decode(&hex_key, raw_key, &raw_key_size);
@@ -135,7 +135,7 @@ gnutls_datum_t *load_secret_key(int mand, common_info_st * info)
app_exit(1);
}
- key.data = (void *) raw_key;
+ key.data = (void *)raw_key;
key.size = raw_key_size;
return &key;
@@ -198,7 +198,8 @@ static gnutls_privkey_t _load_privkey(gnutls_datum_t * dat,
}
if (ret < 0) {
- fprintf(stderr, "error loading file at --load-privkey: %s: %s\n",
+ fprintf(stderr,
+ "error loading file at --load-privkey: %s: %s\n",
info->privkey, gnutls_strerror(ret));
app_exit(1);
}
@@ -270,7 +271,7 @@ gnutls_privkey_t load_private_key(int mand, common_info_st * info)
if (gnutls_url_is_supported(info->privkey) != 0)
return _load_url_privkey(info->privkey);
- dat.data = (void *) read_file(info->privkey, RF_BINARY, &size);
+ dat.data = (void *)read_file(info->privkey, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
@@ -289,8 +290,7 @@ gnutls_privkey_t load_private_key(int mand, common_info_st * info)
/* Load the private key.
* @mand should be non zero if it is required to read a private key.
*/
-gnutls_x509_privkey_t
-load_x509_private_key(int mand, common_info_st * info)
+gnutls_x509_privkey_t load_x509_private_key(int mand, common_info_st * info)
{
gnutls_x509_privkey_t key;
int ret;
@@ -313,7 +313,7 @@ load_x509_private_key(int mand, common_info_st * info)
app_exit(1);
}
- dat.data = (void *) read_file(info->privkey, RF_BINARY, &size);
+ dat.data = (void *)read_file(info->privkey, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
@@ -331,14 +331,12 @@ load_x509_private_key(int mand, common_info_st * info)
} else {
ret =
gnutls_x509_privkey_import2(key, &dat,
- info->incert_format, NULL,
- 0);
+ info->incert_format, NULL, 0);
if (ret == GNUTLS_E_DECRYPTION_FAILED) {
pass = get_password(info, &flags, 0);
ret =
gnutls_x509_privkey_import2(key, &dat,
- info->
- incert_format,
+ info->incert_format,
pass, flags);
}
}
@@ -361,7 +359,6 @@ load_x509_private_key(int mand, common_info_st * info)
return key;
}
-
/* Loads the certificate
* If mand is non zero then a certificate is mandatory. Otherwise
* null will be returned if the certificate loading fails.
@@ -375,7 +372,7 @@ gnutls_x509_crt_t load_cert(int mand, common_info_st * info)
crt = load_cert_list(mand, &size, info);
if (crt) {
ret_crt = crt[0];
- for (i=1;i<size;i++)
+ for (i = 1; i < size; i++)
gnutls_x509_crt_deinit(crt[i]);
gnutls_free(crt);
return ret_crt;
@@ -386,7 +383,7 @@ gnutls_x509_crt_t load_cert(int mand, common_info_st * info)
/* Loads a certificate list
*/
-gnutls_x509_crt_t *load_cert_list(int mand, size_t * crt_size,
+gnutls_x509_crt_t *load_cert_list(int mand, size_t *crt_size,
common_info_st * info)
{
FILE *fp;
@@ -422,31 +419,33 @@ gnutls_x509_crt_t *load_cert_list(int mand, size_t * crt_size,
fclose(fp);
- dat.data = (void *) lbuffer;
+ dat.data = (void *)lbuffer;
dat.size = size;
if (info->sort_chain)
flags |= GNUTLS_X509_CRT_LIST_SORT;
- ret = gnutls_x509_crt_list_import2(&crt, &crt_max, &dat, GNUTLS_X509_FMT_PEM, flags);
+ ret =
+ gnutls_x509_crt_list_import2(&crt, &crt_max, &dat,
+ GNUTLS_X509_FMT_PEM, flags);
if (ret < 0) {
- fprintf(stderr, "Error loading certificates: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error loading certificates: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
*crt_size = crt_max;
if (info->verbose)
- fprintf(stderr, "Loaded %d certificates.\n",
- (int) crt_max);
+ fprintf(stderr, "Loaded %d certificates.\n", (int)crt_max);
return crt;
}
/* Loads a CRL list
*/
-gnutls_x509_crl_t *load_crl_list(int mand, size_t * crl_size,
- common_info_st * info)
+gnutls_x509_crl_t *load_crl_list(int mand, size_t *crl_size,
+ common_info_st * info)
{
FILE *fp;
static gnutls_x509_crl_t *crl;
@@ -480,23 +479,27 @@ gnutls_x509_crl_t *load_crl_list(int mand, size_t * crl_size,
fclose(fp);
- dat.data = (void *) lbuffer;
+ dat.data = (void *)lbuffer;
dat.size = size;
- ret = gnutls_x509_crl_list_import2(&crl, &crl_max, &dat, GNUTLS_X509_FMT_PEM, 0);
+ ret =
+ gnutls_x509_crl_list_import2(&crl, &crl_max, &dat,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret == GNUTLS_E_BASE64_DECODING_ERROR) {
- ret = gnutls_x509_crl_list_import2(&crl, &crl_max, &dat, GNUTLS_X509_FMT_DER, 0);
+ ret =
+ gnutls_x509_crl_list_import2(&crl, &crl_max, &dat,
+ GNUTLS_X509_FMT_DER, 0);
}
if (ret < 0) {
- fprintf(stderr, "Error loading CRLs: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error loading CRLs: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
*crl_size = crl_max;
if (info->verbose)
- fprintf(stderr, "Loaded %d CRLs.\n",
- (int) *crl_size);
+ fprintf(stderr, "Loaded %d CRLs.\n", (int)*crl_size);
return crl;
}
@@ -519,7 +522,7 @@ gnutls_x509_crq_t load_request(common_info_st * info)
app_exit(1);
}
- dat.data = (void *) read_file(info->request, RF_BINARY, &size);
+ dat.data = (void *)read_file(info->request, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
@@ -560,7 +563,7 @@ gnutls_privkey_t load_ca_private_key(common_info_st * info)
if (gnutls_url_is_supported(info->ca_privkey) != 0)
return _load_url_privkey(info->ca_privkey);
- dat.data = (void *) read_file(info->ca_privkey, RF_BINARY, &size);
+ dat.data = (void *)read_file(info->ca_privkey, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
@@ -603,18 +606,20 @@ gnutls_x509_crt_t load_ca_cert(unsigned mand, common_info_st * info)
if (gnutls_url_is_supported(info->ca) != 0) {
ret = gnutls_x509_crt_import_url(crt, info->ca, 0);
if (ret < 0) {
- fprintf(stderr, "error importing CA certificate: %s: %s\n",
+ fprintf(stderr,
+ "error importing CA certificate: %s: %s\n",
info->ca, gnutls_strerror(ret));
app_exit(1);
}
return crt;
}
- dat.data = (void *) read_file(info->ca, RF_BINARY, &size);
+ dat.data = (void *)read_file(info->ca, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
- fprintf(stderr, "error reading file at --load-ca-certificate: %s\n",
+ fprintf(stderr,
+ "error reading file at --load-ca-certificate: %s\n",
info->ca);
app_exit(1);
}
@@ -657,17 +662,20 @@ gnutls_pubkey_t load_pubkey(int mand, common_info_st * info)
app_exit(1);
}
- dat.data = (void *) read_file(info->pubkey, RF_BINARY, &size);
+ dat.data = (void *)read_file(info->pubkey, RF_BINARY, &size);
dat.size = size;
if (!dat.data) {
- fprintf(stderr, "error reading file at --load-pubkey: %s\n", info->pubkey);
+ fprintf(stderr, "error reading file at --load-pubkey: %s\n",
+ info->pubkey);
app_exit(1);
}
ret = gnutls_pubkey_import(key, &dat, info->incert_format);
if (ret == GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR) {
- ret = gnutls_pubkey_import_x509_raw(key, &dat, info->incert_format, 0);
+ ret =
+ gnutls_pubkey_import_x509_raw(key, &dat,
+ info->incert_format, 0);
if (ret < 0) {
fprintf(stderr,
"import error: could not find a valid PEM header; "
@@ -702,7 +710,8 @@ gnutls_pubkey_t load_public_key_or_import(int mand,
gnutls_pubkey_deinit(pubkey);
pubkey = load_pubkey(0, info);
if (pubkey == NULL && mand) {
- fprintf(stderr, "Could not determine the public key for the operation.\nYou must specify --load-privkey or --load-pubkey if missing.\n");
+ fprintf(stderr,
+ "Could not determine the public key for the operation.\nYou must specify --load-privkey or --load-pubkey if missing.\n");
app_exit(1);
}
}
@@ -729,7 +738,8 @@ get_bits(gnutls_pk_algorithm_t key_type, int info_bits,
if (info_bits != 0) {
static int warned = 0;
- if (warned == 0 && warn != 0 && GNUTLS_BITS_ARE_CURVE(info_bits)==0) {
+ if (warned == 0 && warn != 0
+ && GNUTLS_BITS_ARE_CURVE(info_bits) == 0) {
warned = 1;
fprintf(stderr,
"** Note: You may use '--sec-param %s' instead of '--bits %d'\n",
@@ -756,7 +766,8 @@ gnutls_sec_param_t str_to_sec_param(const char *str)
return GNUTLS_SEC_PARAM_LOW;
} else if (strcasecmp(str, "legacy") == 0) {
return GNUTLS_SEC_PARAM_LEGACY;
- } else if (strcasecmp(str, "normal") == 0 || strcasecmp(str, "medium") == 0) {
+ } else if (strcasecmp(str, "normal") == 0
+ || strcasecmp(str, "medium") == 0) {
return GNUTLS_SEC_PARAM_MEDIUM;
} else if (strcasecmp(str, "high") == 0) {
return GNUTLS_SEC_PARAM_HIGH;
@@ -765,16 +776,14 @@ gnutls_sec_param_t str_to_sec_param(const char *str)
} else if (strcasecmp(str, "future") == 0) {
return GNUTLS_SEC_PARAM_FUTURE;
} else {
- fprintf(stderr, "Unknown security parameter string: %s\n",
- str);
+ fprintf(stderr, "Unknown security parameter string: %s\n", str);
app_exit(1);
}
}
#define SPACE "\t"
-static void
-print_hex_datum(FILE * outfile, gnutls_datum_t * dat, int cprint)
+static void print_hex_datum(FILE * outfile, gnutls_datum_t * dat, int cprint)
{
unsigned int j;
@@ -782,7 +791,7 @@ print_hex_datum(FILE * outfile, gnutls_datum_t * dat, int cprint)
fprintf(outfile, "\n" SPACE "\"");
for (j = 0; j < dat->size; j++) {
fprintf(outfile, "\\x%.2x",
- (unsigned char) dat->data[j]);
+ (unsigned char)dat->data[j]);
if ((j + 1) % 16 == 0) {
fprintf(outfile, "\"\n" SPACE "\"");
}
@@ -795,10 +804,10 @@ print_hex_datum(FILE * outfile, gnutls_datum_t * dat, int cprint)
fprintf(outfile, "\n" SPACE);
for (j = 0; j < dat->size; j++) {
if ((j + 1) % 16 == 0) {
- fprintf(outfile, "%.2x", (unsigned char) dat->data[j]);
+ fprintf(outfile, "%.2x", (unsigned char)dat->data[j]);
fprintf(outfile, "\n" SPACE);
} else {
- fprintf(outfile, "%.2x:", (unsigned char) dat->data[j]);
+ fprintf(outfile, "%.2x:", (unsigned char)dat->data[j]);
}
}
fprintf(outfile, "\n\n");
@@ -860,13 +869,13 @@ print_dsa_pkey(FILE * outfile, gnutls_datum_t * x, gnutls_datum_t * y,
gnutls_ecc_curve_t str_to_curve(const char *str)
{
-unsigned num = 0;
-const gnutls_ecc_curve_t *list, *p;
+ unsigned num = 0;
+ const gnutls_ecc_curve_t *list, *p;
list = gnutls_ecc_curve_list();
p = list;
- while(*p != 0) {
+ while (*p != 0) {
if (strcasecmp(str, gnutls_ecc_curve_get_name(*p)) == 0)
return *p;
p++;
@@ -877,9 +886,8 @@ const gnutls_ecc_curve_t *list, *p;
if (num == 0)
printf("none\n");
p = list;
- while(*p != 0) {
- fprintf(stderr, "\t- %s\n",
- gnutls_ecc_curve_get_name(*p));
+ while (*p != 0) {
+ fprintf(stderr, "\t- %s\n", gnutls_ecc_curve_get_name(*p));
p++;
}
app_exit(1);
@@ -913,7 +921,7 @@ print_ecc_pkey(FILE * outfile, gnutls_ecc_curve_t curve,
}
}
-static void reverse_datum(gnutls_datum_t *d)
+static void reverse_datum(gnutls_datum_t * d)
{
unsigned int i;
unsigned char c;
@@ -927,9 +935,9 @@ static void reverse_datum(gnutls_datum_t *d)
void
print_gost_pkey(FILE * outfile, gnutls_ecc_curve_t curve,
- gnutls_digest_algorithm_t digest, gnutls_gost_paramset_t paramset,
- gnutls_datum_t * k, gnutls_datum_t * x, gnutls_datum_t * y,
- int cprint)
+ gnutls_digest_algorithm_t digest,
+ gnutls_gost_paramset_t paramset, gnutls_datum_t * k,
+ gnutls_datum_t * x, gnutls_datum_t * y, int cprint)
{
if (cprint != 0)
fprintf(outfile, "/* curve: %s */\n",
@@ -994,7 +1002,7 @@ print_rsa_pkey(FILE * outfile, gnutls_datum_t * m, gnutls_datum_t * e,
}
void print_pubkey_info(gnutls_pubkey_t pubkey,
- FILE *outfile,
+ FILE * outfile,
gnutls_certificate_print_formats_t format,
gnutls_x509_crt_fmt_t outcert_format,
unsigned int outtext)
@@ -1018,9 +1026,7 @@ void print_pubkey_info(gnutls_pubkey_t pubkey,
fix_lbuffer(0);
size = lbuffer_size;
- ret =
- gnutls_pubkey_export(pubkey, outcert_format, lbuffer,
- &size);
+ ret = gnutls_pubkey_export(pubkey, outcert_format, lbuffer, &size);
if (ret < 0) {
fprintf(stderr, "export error: %s\n", gnutls_strerror(ret));
app_exit(1);
@@ -1050,11 +1056,11 @@ print_dh_info(FILE * outfile, gnutls_datum_t * p, gnutls_datum_t * g,
print_head(outfile, "prime", p->size, cprint);
print_hex_datum(outfile, p, cprint);
-
}
static
-int import_dsa_dh(gnutls_dh_params_t dh_params, gnutls_datum_t *params, gnutls_x509_crt_fmt_t format)
+int import_dsa_dh(gnutls_dh_params_t dh_params, gnutls_datum_t * params,
+ gnutls_x509_crt_fmt_t format)
{
gnutls_x509_privkey_t pkey;
int ret;
@@ -1090,7 +1096,7 @@ void dh_info(FILE * infile, FILE * outfile, common_info_st * ci)
app_exit(1);
}
- params.data = (void *) fread_file(infile, 0, &size);
+ params.data = (void *)fread_file(infile, 0, &size);
params.size = size;
if (params.data == NULL) {
@@ -1136,8 +1142,7 @@ void dh_info(FILE * infile, FILE * outfile, common_info_st * ci)
fwrite(lbuffer, 1, len, outfile);
}
} else {
- fprintf(stderr, "Error: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "Error: %s\n", gnutls_strerror(ret));
}
}
@@ -1182,7 +1187,7 @@ int cipher_to_flags(const char *cipher)
app_exit(1);
}
-static void privkey_info_int(FILE *outfile, common_info_st * cinfo,
+static void privkey_info_int(FILE * outfile, common_info_st * cinfo,
gnutls_x509_privkey_t key)
{
int ret, key_type;
@@ -1220,7 +1225,8 @@ static void privkey_info_int(FILE *outfile, common_info_st * cinfo,
goto spki_skip;
}
- ret = gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size);
+ ret =
+ gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size);
if (ret < 0) {
fprintf(stderr, "spki_get_rsa_pss_params: %s\n",
gnutls_strerror(ret));
@@ -1267,8 +1273,7 @@ static void privkey_info_int(FILE *outfile, common_info_st * cinfo,
gnutls_datum_t p, q, g, y, x;
ret =
- gnutls_x509_privkey_export_dsa_raw(key, &p, &q, &g, &y,
- &x);
+ gnutls_x509_privkey_export_dsa_raw(key, &p, &q, &g, &y, &x);
if (ret < 0)
fprintf(stderr,
"Error in key DSA data export: %s\n",
@@ -1292,8 +1297,7 @@ static void privkey_info_int(FILE *outfile, common_info_st * cinfo,
gnutls_ecc_curve_t curve;
ret =
- gnutls_x509_privkey_export_ecc_raw(key, &curve, &x, &y,
- &k);
+ gnutls_x509_privkey_export_ecc_raw(key, &curve, &x, &y, &k);
if (ret < 0)
fprintf(stderr,
"Error in key ECC data export: %s\n",
@@ -1317,16 +1321,14 @@ static void privkey_info_int(FILE *outfile, common_info_st * cinfo,
ret =
gnutls_x509_privkey_export_gost_raw(key, &curve,
&digest,
- &paramset,
- &x, &y, &k);
+ &paramset, &x, &y, &k);
if (ret < 0)
fprintf(stderr,
"Error in key GOST data export: %s\n",
gnutls_strerror(ret));
else {
print_gost_pkey(outfile, curve, digest, paramset,
- &k, &x, &y,
- cinfo->cprint);
+ &k, &x, &y, cinfo->cprint);
gnutls_free(x.data);
gnutls_free(y.data);
@@ -1338,17 +1340,16 @@ static void privkey_info_int(FILE *outfile, common_info_st * cinfo,
ret = gnutls_x509_privkey_get_seed(key, &dig, lbuffer, &size);
if (ret >= 0) {
fprintf(outfile, "Validation parameters:\n");
- fprintf(outfile, "\tHash: %s\n",
- gnutls_digest_get_name(dig));
- fprintf(outfile, "\tSeed: %s\n",
- raw_to_hex(lbuffer, size));
+ fprintf(outfile, "\tHash: %s\n", gnutls_digest_get_name(dig));
+ fprintf(outfile, "\tSeed: %s\n", raw_to_hex(lbuffer, size));
}
fprintf(outfile, "\n");
size = lbuffer_size;
ret =
- gnutls_x509_privkey_get_key_id(key, GNUTLS_KEYID_USE_SHA256, lbuffer, &size);
+ gnutls_x509_privkey_get_key_id(key, GNUTLS_KEYID_USE_SHA256,
+ lbuffer, &size);
if (ret < 0) {
fprintf(stderr, "Error in key id calculation: %s\n",
gnutls_strerror(ret));
@@ -1361,7 +1362,8 @@ static void privkey_info_int(FILE *outfile, common_info_st * cinfo,
size = lbuffer_size;
ret =
- gnutls_x509_privkey_get_key_id(key, GNUTLS_KEYID_USE_SHA1, lbuffer, &size);
+ gnutls_x509_privkey_get_key_id(key, GNUTLS_KEYID_USE_SHA1,
+ lbuffer, &size);
if (ret >= 0) {
fprintf(outfile, "\tsha1:%s\n",
raw_to_hex(lbuffer, size));
@@ -1372,7 +1374,8 @@ static void privkey_info_int(FILE *outfile, common_info_st * cinfo,
}
void
-print_private_key(FILE *outfile, common_info_st * cinfo, gnutls_x509_privkey_t key)
+print_private_key(FILE * outfile, common_info_st * cinfo,
+ gnutls_x509_privkey_t key)
{
int ret;
size_t size;
@@ -1382,7 +1385,8 @@ print_private_key(FILE *outfile, common_info_st * cinfo, gnutls_x509_privkey_t k
/* Only print private key parameters when an unencrypted
* format is used */
- switch_to_pkcs8_when_needed(cinfo, key, gnutls_x509_privkey_get_pk_algorithm(key));
+ switch_to_pkcs8_when_needed(cinfo, key,
+ gnutls_x509_privkey_get_pk_algorithm(key));
if (!cinfo->pkcs8) {
@@ -1459,17 +1463,28 @@ int generate_prime(FILE * outfile, int how, common_info_st * info)
gnutls_keygen_data_st data;
if (info->seed_size < 32) {
- fprintf(stderr, "For DH parameter generation a 32-byte seed value or larger is expected (have: %d); use -d 2 for more information.\n", (int)info->seed_size);
+ fprintf(stderr,
+ "For DH parameter generation a 32-byte seed value or larger is expected (have: %d); use -d 2 for more information.\n",
+ (int)info->seed_size);
app_exit(1);
}
data.type = GNUTLS_KEYGEN_SEED;
- data.data = (void*)info->seed;
+ data.data = (void *)info->seed;
data.size = info->seed_size;
- ret = gnutls_x509_privkey_generate2(pkey, GNUTLS_PK_DSA, bits, GNUTLS_PRIVKEY_FLAG_PROVABLE, &data, 1);
+ ret =
+ gnutls_x509_privkey_generate2(pkey,
+ GNUTLS_PK_DSA,
+ bits,
+ GNUTLS_PRIVKEY_FLAG_PROVABLE,
+ &data, 1);
} else {
- ret = gnutls_x509_privkey_generate(pkey, GNUTLS_PK_DSA, bits, GNUTLS_PRIVKEY_FLAG_PROVABLE);
+ ret =
+ gnutls_x509_privkey_generate(pkey,
+ GNUTLS_PK_DSA,
+ bits,
+ GNUTLS_PRIVKEY_FLAG_PROVABLE);
}
if (ret < 0) {
@@ -1502,9 +1517,7 @@ int generate_prime(FILE * outfile, int how, common_info_st * info)
}
}
- ret =
- gnutls_dh_params_export_raw(dh_params, &p, &g,
- &q_bits);
+ ret = gnutls_dh_params_export_raw(dh_params, &p, &g, &q_bits);
if (ret < 0) {
fprintf(stderr, "Error exporting parameters: %s\n",
gnutls_strerror(ret));
@@ -1512,7 +1525,8 @@ int generate_prime(FILE * outfile, int how, common_info_st * info)
}
} else {
if (info->provable != 0) {
- fprintf(stderr, "The DH parameters obtained via this option are not provable\n");
+ fprintf(stderr,
+ "The DH parameters obtained via this option are not provable\n");
app_exit(1);
}
#if defined(ENABLE_DHE) || defined(ENABLE_ANON)
@@ -1569,8 +1583,7 @@ int generate_prime(FILE * outfile, int how, common_info_st * info)
app_exit(1);
}
#else
- fprintf(stderr,
- "Parameters unavailable as SRP is disabled.\n");
+ fprintf(stderr, "Parameters unavailable as SRP is disabled.\n");
app_exit(1);
#endif
}
@@ -1593,8 +1606,7 @@ int generate_prime(FILE * outfile, int how, common_info_st * info)
fwrite(lbuffer, 1, len, outfile);
} else {
- fprintf(stderr, "Error: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "Error: %s\n", gnutls_strerror(ret));
}
}
@@ -1609,7 +1621,7 @@ int generate_prime(FILE * outfile, int how, common_info_st * info)
return 0;
}
-void decode_seed(gnutls_datum_t *seed, const char *hex, unsigned hex_size)
+void decode_seed(gnutls_datum_t * seed, const char *hex, unsigned hex_size)
{
int ret;
size_t seed_size;
@@ -1625,7 +1637,8 @@ void decode_seed(gnutls_datum_t *seed, const char *hex, unsigned hex_size)
seed_size = hex_size;
ret = gnutls_hex2bin(hex, hex_size, seed->data, &seed_size);
if (ret < 0) {
- fprintf(stderr, "Could not hex decode data: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Could not hex decode data: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
seed->size = seed_size;
@@ -1639,7 +1652,8 @@ gnutls_pk_algorithm_t figure_key_type(const char *key_type)
return GNUTLS_PK_RSA;
else if (strcasecmp(key_type, "rsa-pss") == 0)
return GNUTLS_PK_RSA_PSS;
- else if (strcasecmp(key_type, "ed25519") == 0 || strcasecmp(key_type, "eddsa") == 0)
+ else if (strcasecmp(key_type, "ed25519") == 0
+ || strcasecmp(key_type, "eddsa") == 0)
return GNUTLS_PK_EDDSA_ED25519;
else if (strcasecmp(key_type, "ed448") == 0)
return GNUTLS_PK_EDDSA_ED448;
@@ -1649,7 +1663,8 @@ gnutls_pk_algorithm_t figure_key_type(const char *key_type)
return GNUTLS_PK_ECDH_X448;
else if (strcasecmp(key_type, "dsa") == 0)
return GNUTLS_PK_DSA;
- else if (strcasecmp(key_type, "ecdsa") == 0 || strcasecmp(key_type, "ecc") == 0)
+ else if (strcasecmp(key_type, "ecdsa") == 0
+ || strcasecmp(key_type, "ecc") == 0)
return GNUTLS_PK_ECDSA;
else if (strcasecmp(key_type, "gost01") == 0)
return GNUTLS_PK_GOST_01;
@@ -1694,7 +1709,7 @@ gnutls_digest_algorithm_t hash_to_id(const char *hash)
}
}
-void sign_params_to_flags(common_info_st *cinfo, const char *params)
+void sign_params_to_flags(common_info_st * cinfo, const char *params)
{
char *p, *sp;
@@ -1706,15 +1721,15 @@ void sign_params_to_flags(common_info_st *cinfo, const char *params)
p = strtok(sp, ",");
- while(p != NULL) {
- if (strcasecmp(p, "rsa-pss")==0) {
+ while (p != NULL) {
+ if (strcasecmp(p, "rsa-pss") == 0) {
cinfo->rsa_pss_sign = 1;
} else {
fprintf(stderr, "Unknown signature parameter: %s\n", p);
app_exit(1);
}
- p=strtok(NULL, ",");
+ p = strtok(NULL, ",");
}
free(sp);
diff --git a/src/certtool-common.h b/src/certtool-common.h
index 0c8c69540f..071ddd4fbe 100644
--- a/src/certtool-common.h
+++ b/src/certtool-common.h
@@ -20,22 +20,22 @@
*/
#ifndef GNUTLS_SRC_CERTTOOL_COMMON_H
-#define GNUTLS_SRC_CERTTOOL_COMMON_H
+# define GNUTLS_SRC_CERTTOOL_COMMON_H
-#include <gnutls/x509.h>
-#include <stdio.h>
-#include <stdbool.h>
-#include "attribute.h"
+# include <gnutls/x509.h>
+# include <stdio.h>
+# include <stdbool.h>
+# include "attribute.h"
-#define TYPE_CRT 1
-#define TYPE_CRQ 2
+# define TYPE_CRT 1
+# define TYPE_CRQ 2
-#define SERIAL_MAX_BYTES 20
+# define SERIAL_MAX_BYTES 20
void certtool_version(void);
-#include <gnutls/x509.h>
-#include <gnutls/abstract.h>
+# include <gnutls/x509.h>
+# include <gnutls/abstract.h>
typedef struct common_info {
const char *secret_key;
@@ -86,26 +86,33 @@ typedef struct common_info {
} common_info_st;
static inline
-void switch_to_pkcs8_when_needed(common_info_st *cinfo, gnutls_x509_privkey_t key, unsigned key_type)
+ void switch_to_pkcs8_when_needed(common_info_st * cinfo,
+ gnutls_x509_privkey_t key,
+ unsigned key_type)
{
if (cinfo->pkcs8)
return;
- if (key_type == GNUTLS_PK_RSA_PSS || key_type == GNUTLS_PK_EDDSA_ED25519 || key_type == GNUTLS_PK_EDDSA_ED448 ||
- key_type == GNUTLS_PK_ECDH_X25519 || key_type == GNUTLS_PK_ECDH_X448 ||
- key_type == GNUTLS_PK_GOST_01 || key_type == GNUTLS_PK_GOST_12_256 ||
- key_type == GNUTLS_PK_GOST_12_512) {
+ if (key_type == GNUTLS_PK_RSA_PSS || key_type == GNUTLS_PK_EDDSA_ED25519
+ || key_type == GNUTLS_PK_EDDSA_ED448
+ || key_type == GNUTLS_PK_ECDH_X25519
+ || key_type == GNUTLS_PK_ECDH_X448 || key_type == GNUTLS_PK_GOST_01
+ || key_type == GNUTLS_PK_GOST_12_256
+ || key_type == GNUTLS_PK_GOST_12_512) {
if (cinfo->verbose)
- fprintf(stderr, "Assuming --pkcs8 is given; %s private keys can only be exported in PKCS#8 format\n",
+ fprintf(stderr,
+ "Assuming --pkcs8 is given; %s private keys can only be exported in PKCS#8 format\n",
gnutls_pk_algorithm_get_name(key_type));
cinfo->pkcs8 = 1;
if (cinfo->password == NULL)
cinfo->password = "";
}
- if (gnutls_x509_privkey_get_seed(key, NULL, NULL, 0) != GNUTLS_E_INVALID_REQUEST) {
+ if (gnutls_x509_privkey_get_seed(key, NULL, NULL, 0) !=
+ GNUTLS_E_INVALID_REQUEST) {
if (cinfo->verbose)
- fprintf(stderr, "Assuming --pkcs8 is given; provable private keys can only be exported in PKCS#8 format\n");
+ fprintf(stderr,
+ "Assuming --pkcs8 is given; provable private keys can only be exported in PKCS#8 format\n");
cinfo->pkcs8 = 1;
if (cinfo->password == NULL)
cinfo->password = "";
@@ -116,21 +123,20 @@ void switch_to_pkcs8_when_needed(common_info_st *cinfo, gnutls_x509_privkey_t ke
const char *get_pass(void);
const char *get_confirmed_pass(bool empty_ok);
void app_exit(int val)
-#ifdef __GNUC__
-__attribute__ ((__noreturn__))
-#endif
-;
+# ifdef __GNUC__
+ __attribute__((__noreturn__))
+# endif
+ ;
int cipher_to_flags(const char *cipher);
void
-print_private_key(FILE *outfile, common_info_st * cinfo, gnutls_x509_privkey_t key);
-gnutls_pubkey_t load_public_key_or_import(int mand,
- gnutls_privkey_t privkey,
+print_private_key(FILE * outfile, common_info_st * cinfo,
+ gnutls_x509_privkey_t key);
+gnutls_pubkey_t load_public_key_or_import(int mand, gnutls_privkey_t privkey,
common_info_st * info);
gnutls_privkey_t load_private_key(int mand, common_info_st * info);
-gnutls_x509_privkey_t load_x509_private_key(int mand,
- common_info_st * info);
-gnutls_x509_privkey_t *load_privkey_list(int mand, size_t * privkey_size,
+gnutls_x509_privkey_t load_x509_private_key(int mand, common_info_st * info);
+gnutls_x509_privkey_t *load_privkey_list(int mand, size_t *privkey_size,
common_info_st * info);
gnutls_x509_crq_t load_request(common_info_st * info);
gnutls_privkey_t load_ca_private_key(common_info_st * info);
@@ -138,10 +144,9 @@ gnutls_x509_crt_t load_ca_cert(unsigned mand, common_info_st * info);
gnutls_x509_crt_t load_cert(int mand, common_info_st * info);
gnutls_datum_t *load_secret_key(int mand, common_info_st * info);
gnutls_pubkey_t load_pubkey(int mand, common_info_st * info);
-gnutls_x509_crt_t *load_cert_list(int mand, size_t * size,
- common_info_st * info);
-gnutls_x509_crl_t *load_crl_list(int mand, size_t * size,
+gnutls_x509_crt_t *load_cert_list(int mand, size_t *size,
common_info_st * info);
+gnutls_x509_crl_t *load_crl_list(int mand, size_t *size, common_info_st * info);
int get_bits(gnutls_pk_algorithm_t key_type, int info_bits,
const char *info_sec_param, int warn);
@@ -152,11 +157,11 @@ gnutls_ecc_curve_t str_to_curve(const char *str);
int generate_prime(FILE * outfile, int how, common_info_st * info);
void dh_info(FILE * infile, FILE * outfile, common_info_st * ci);
-gnutls_x509_privkey_t *load_privkey_list(int mand, size_t * privkey_size,
+gnutls_x509_privkey_t *load_privkey_list(int mand, size_t *privkey_size,
common_info_st * info);
void print_pubkey_info(gnutls_pubkey_t pubkey,
- FILE *outfile,
+ FILE * outfile,
gnutls_certificate_print_formats_t format,
gnutls_x509_crt_fmt_t outcert_format,
unsigned int outtext);
@@ -171,14 +176,12 @@ void print_gost_pkey(FILE * outfile, gnutls_ecc_curve_t curve,
void print_rsa_pkey(FILE * outfile, gnutls_datum_t * m, gnutls_datum_t * e,
gnutls_datum_t * d, gnutls_datum_t * p,
gnutls_datum_t * q, gnutls_datum_t * u,
- gnutls_datum_t * exp1, gnutls_datum_t * exp2,
- int cprint);
+ gnutls_datum_t * exp1, gnutls_datum_t * exp2, int cprint);
void print_dsa_pkey(FILE * outfile, gnutls_datum_t * x, gnutls_datum_t * y,
gnutls_datum_t * p, gnutls_datum_t * q,
gnutls_datum_t * g, int cprint);
-ATTRIBUTE_MALLOC
-FILE *safe_open_rw(const char *file, int privkey_op);
+ATTRIBUTE_MALLOC FILE *safe_open_rw(const char *file, int privkey_op);
const char *get_password(common_info_st * cinfo, unsigned int *flags,
int confirm);
@@ -188,14 +191,14 @@ extern unsigned long lbuffer_size;
void fix_lbuffer(unsigned long);
-void decode_seed(gnutls_datum_t *seed, const char *hex, unsigned hex_size);
+void decode_seed(gnutls_datum_t * seed, const char *hex, unsigned hex_size);
-#define GNUTLS_PK_IS_RSA(pk) ((pk) == GNUTLS_PK_RSA || (pk) == GNUTLS_PK_RSA_PSS)
+# define GNUTLS_PK_IS_RSA(pk) ((pk) == GNUTLS_PK_RSA || (pk) == GNUTLS_PK_RSA_PSS)
gnutls_pk_algorithm_t figure_key_type(const char *key_type);
gnutls_digest_algorithm_t hash_to_id(const char *hash);
-void sign_params_to_flags(common_info_st *cinfo, const char *params);
+void sign_params_to_flags(common_info_st * cinfo, const char *params);
-#endif /* GNUTLS_SRC_CERTTOOL_COMMON_H */
+#endif /* GNUTLS_SRC_CERTTOOL_COMMON_H */
diff --git a/src/certtool-extras.c b/src/certtool-extras.c
index 7ae54faa50..38317d5b4d 100644
--- a/src/certtool-extras.c
+++ b/src/certtool-extras.c
@@ -41,12 +41,11 @@
#include "certtool-common.h"
#include "certtool-cfg.h"
-
#define MAX_KEYS 256
/* Loads a x509 private key list
*/
-gnutls_x509_privkey_t *load_privkey_list(int mand, size_t * privkey_size,
+gnutls_x509_privkey_t *load_privkey_list(int mand, size_t *privkey_size,
common_info_st * info)
{
static gnutls_x509_privkey_t key[MAX_KEYS];
@@ -74,7 +73,7 @@ gnutls_x509_privkey_t *load_privkey_list(int mand, size_t * privkey_size,
exit(1);
}
- ptr = (void *) file_data.data;
+ ptr = (void *)file_data.data;
ptr_size = file_data.size;
for (i = 0; i < MAX_KEYS; i++) {
@@ -85,19 +84,17 @@ gnutls_x509_privkey_t *load_privkey_list(int mand, size_t * privkey_size,
exit(1);
}
- dat.data = (void *) ptr;
+ dat.data = (void *)ptr;
dat.size = ptr_size;
ret =
gnutls_x509_privkey_import2(key[i], &dat,
- info->incert_format, NULL,
- 0);
+ info->incert_format, NULL, 0);
if (ret == GNUTLS_E_DECRYPTION_FAILED) {
pass = get_password(info, &flags, 0);
ret =
gnutls_x509_privkey_import2(key[i], &dat,
- info->
- incert_format,
+ info->incert_format,
pass, flags);
}
@@ -121,8 +118,7 @@ gnutls_x509_privkey_t *load_privkey_list(int mand, size_t * privkey_size,
ptr_size = file_data.size;
ptr_size -=
- ((unsigned char *) ptr -
- (unsigned char *) file_data.data);
+ ((unsigned char *)ptr - (unsigned char *)file_data.data);
if (ptr_size < 0)
break;
@@ -130,7 +126,7 @@ gnutls_x509_privkey_t *load_privkey_list(int mand, size_t * privkey_size,
}
gnutls_free(file_data.data);
- fprintf(stderr, "Loaded %d private keys.\n", (int) *privkey_size);
+ fprintf(stderr, "Loaded %d private keys.\n", (int)*privkey_size);
return key;
}
diff --git a/src/certtool.c b/src/certtool.c
index 71d4aff13e..b6cbcfb082 100644
--- a/src/certtool.c
+++ b/src/certtool.c
@@ -57,24 +57,26 @@
static FILE *stdlog = NULL;
-static void print_crl_info(gnutls_x509_crl_t crl, FILE * out, common_info_st *cinfo);
-void pkcs7_info(common_info_st *cinfo, unsigned display_data);
+static void print_crl_info(gnutls_x509_crl_t crl, FILE * out,
+ common_info_st * cinfo);
+void pkcs7_info(common_info_st * cinfo, unsigned display_data);
void pkcs7_sign(common_info_st *, unsigned embed);
void pkcs7_generate(common_info_st *);
void pkcs8_info(void);
-void pkcs8_info_int(gnutls_datum_t *data, unsigned format,
- unsigned ignore_err, FILE *out, const char *tab);
-void crq_info(common_info_st *cinfo);
+void pkcs8_info_int(gnutls_datum_t * data, unsigned format,
+ unsigned ignore_err, FILE * out, const char *tab);
+void crq_info(common_info_st * cinfo);
void smime_to_pkcs7(void);
void pkcs12_info(common_info_st *);
void generate_pkcs12(common_info_st *);
void generate_pkcs8(common_info_st *);
static void verify_chain(common_info_st * cinfo);
void verify_crl(common_info_st * cinfo);
-void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_data);
+void verify_pkcs7(common_info_st * cinfo, const char *purpose,
+ unsigned display_data);
void pubkey_info(gnutls_x509_crt_t crt, common_info_st *);
void certificate_info(int, common_info_st *);
-void crl_info(common_info_st *cinfo);
+void crl_info(common_info_st * cinfo);
void privkey_info(common_info_st *);
static void cmd_parser(int argc, char **argv);
void generate_self_signed(common_info_st *);
@@ -87,10 +89,11 @@ static void privkey_to_rsa(common_info_st * cinfo);
static void pubkey_keyid(common_info_st * cinfo);
static void certificate_fpr(common_info_st * cinfo);
-static gnutls_digest_algorithm_t get_dig(gnutls_x509_crt_t crt, common_info_st * cinfo);
+static gnutls_digest_algorithm_t get_dig(gnutls_x509_crt_t crt,
+ common_info_st * cinfo);
FILE *outfile;
-static const char *outfile_name = NULL; /* to delete on exit */
+static const char *outfile_name = NULL; /* to delete on exit */
#define REQ_KEY_TYPE_DEFAULT GNUTLS_PK_RSA
@@ -145,8 +148,7 @@ int main(int argc, char **argv)
gnutls_x509_spki_set_rsa_pss_params(spki, cinfo->hash, _salt_size); \
} while(0)
-static gnutls_x509_privkey_t
-generate_private_key_int(common_info_st * cinfo)
+static gnutls_x509_privkey_t generate_private_key_int(common_info_st * cinfo)
{
gnutls_x509_privkey_t key;
int ret, key_type, bits;
@@ -178,7 +180,8 @@ generate_private_key_int(common_info_st * cinfo)
if (GNUTLS_BITS_ARE_CURVE(bits)) {
gnutls_ecc_curve_t curve = GNUTLS_BITS_TO_CURVE(bits);
ecc_bits = gnutls_ecc_curve_get_size(curve) * 8;
- snprintf(name, sizeof(name), "(%s)", gnutls_ecc_curve_get_name(curve));
+ snprintf(name, sizeof(name), "(%s)",
+ gnutls_ecc_curve_get_name(curve));
} else {
ecc_bits = bits;
name[0] = 0;
@@ -195,7 +198,8 @@ generate_private_key_int(common_info_st * cinfo)
bits, gnutls_pk_algorithm_get_name(key_type));
}
- if (provable && (!GNUTLS_PK_IS_RSA(key_type) && key_type != GNUTLS_PK_DSA)) {
+ if (provable
+ && (!GNUTLS_PK_IS_RSA(key_type) && key_type != GNUTLS_PK_DSA)) {
fprintf(stderr,
"The --provable parameter can only be used with RSA and DSA keys.\n");
app_exit(1);
@@ -211,13 +215,15 @@ generate_private_key_int(common_info_st * cinfo)
if (bits != 2048 && bits != 3072 && bits != 4096 &&
bits != 6144 && bits != 7680 && bits != 8192 &&
bits != 15360) {
- fprintf(stderr, "Note that the FIPS 186-4 key generation restricts keys to be of known lengths (2048, 3072, etc)\n");
+ fprintf(stderr,
+ "Note that the FIPS 186-4 key generation restricts keys to be of known lengths (2048, 3072, etc)\n");
}
}
ret = gnutls_x509_spki_init(&spki);
if (ret < 0) {
- fprintf(stderr, "error in SPKI initialization: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "error in SPKI initialization: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
@@ -225,7 +231,7 @@ generate_private_key_int(common_info_st * cinfo)
if (cinfo->seed_size > 0) {
kdata[kdata_size].type = GNUTLS_KEYGEN_SEED;
- kdata[kdata_size].data = (void*)cinfo->seed;
+ kdata[kdata_size].data = (void *)cinfo->seed;
kdata[kdata_size++].size = cinfo->seed_size;
if (GNUTLS_PK_IS_RSA(key_type)) {
@@ -238,33 +244,39 @@ generate_private_key_int(common_info_st * cinfo)
(bits == 7680 && cinfo->seed_size != 48) ||
(bits == 8192 && cinfo->seed_size != 50) ||
(bits == 15360 && cinfo->seed_size != 64)) {
- fprintf(stderr, "The seed size (%d) doesn't match the size of the request security level; use -d 2 for more information.\n", (int)cinfo->seed_size);
+ fprintf(stderr,
+ "The seed size (%d) doesn't match the size of the request security level; use -d 2 for more information.\n",
+ (int)cinfo->seed_size);
}
} else if (key_type == GNUTLS_PK_DSA) {
if (cinfo->seed_size != 65) {
- fprintf(stderr, "The seed size (%d) doesn't match the size of the request security level; use -d 2 for more information.\n", (int)cinfo->seed_size);
+ fprintf(stderr,
+ "The seed size (%d) doesn't match the size of the request security level; use -d 2 for more information.\n",
+ (int)cinfo->seed_size);
}
}
flags |= GNUTLS_PRIVKEY_FLAG_PROVABLE;
}
- if (key_type == GNUTLS_PK_RSA_PSS && (cinfo->hash || HAVE_OPT(SALT_SIZE))) {
+ if (key_type == GNUTLS_PK_RSA_PSS
+ && (cinfo->hash || HAVE_OPT(SALT_SIZE))) {
SET_SPKI_PARAMS(spki, cinfo);
kdata[kdata_size].type = GNUTLS_KEYGEN_SPKI;
- kdata[kdata_size].data = (void*)spki;
+ kdata[kdata_size].data = (void *)spki;
kdata[kdata_size++].size = sizeof(spki);
}
if (provable)
flags |= GNUTLS_PRIVKEY_FLAG_PROVABLE;
- ret = gnutls_x509_privkey_generate2(key, key_type, bits, flags, kdata, kdata_size);
+ ret =
+ gnutls_x509_privkey_generate2(key, key_type, bits, flags, kdata,
+ kdata_size);
if (ret < 0) {
- fprintf(stderr, "privkey_generate: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "privkey_generate: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -280,7 +292,6 @@ generate_private_key_int(common_info_st * cinfo)
return key;
}
-
static void generate_private_key(common_info_st * cinfo)
{
gnutls_x509_privkey_t key;
@@ -300,16 +311,20 @@ static void verify_provable_privkey(common_info_st * cinfo)
pkey = load_private_key(1, cinfo);
if (cinfo->seed_size > 0) {
- ret = gnutls_privkey_verify_seed(pkey, 0, cinfo->seed, cinfo->seed_size);
+ ret =
+ gnutls_privkey_verify_seed(pkey, 0, cinfo->seed,
+ cinfo->seed_size);
} else {
ret = gnutls_privkey_verify_seed(pkey, 0, NULL, 0);
}
if (ret < 0) {
if (ret == GNUTLS_E_UNIMPLEMENTED_FEATURE)
- fprintf(stderr, "The private key type cannot be associated with validated parameters\n");
+ fprintf(stderr,
+ "The private key type cannot be associated with validated parameters\n");
else
- fprintf(stderr, "Error verifying private key: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error verifying private key: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
@@ -449,15 +464,20 @@ generate_certificate(gnutls_privkey_t * ret_key,
ask = 0;
secs = get_expiration_date();
- if (ca_crt && (secs > gnutls_x509_crt_get_expiration_time(ca_crt))) {
- time_t exp = gnutls_x509_crt_get_expiration_time(ca_crt);
- fprintf(stderr, "\nExpiration time: %s\n", simple_ctime(&secs, timebuf));
- fprintf(stderr, "CA expiration time: %s\n", simple_ctime(&exp, timebuf));
- fprintf(stderr, "Warning: The time set exceeds the CA's expiration time\n");
+ if (ca_crt
+ && (secs > gnutls_x509_crt_get_expiration_time(ca_crt))) {
+ time_t exp =
+ gnutls_x509_crt_get_expiration_time(ca_crt);
+ fprintf(stderr, "\nExpiration time: %s\n",
+ simple_ctime(&secs, timebuf));
+ fprintf(stderr, "CA expiration time: %s\n",
+ simple_ctime(&exp, timebuf));
+ fprintf(stderr,
+ "Warning: The time set exceeds the CA's expiration time\n");
ask = 1;
}
- } while(batch == 0 && ask != 0 && read_yesno("Is it ok to proceed? (y/N): ", 0) == 0);
-
+ } while (batch == 0 && ask != 0
+ && read_yesno("Is it ok to proceed? (y/N): ", 0) == 0);
result = gnutls_x509_crt_set_expiration_time(crt, secs);
if (result < 0) {
@@ -497,8 +517,7 @@ generate_certificate(gnutls_privkey_t * ret_key,
("1.3.6.1.5.5.7.21.2 ::= id-ppl-independent\n");
}
- policylanguage =
- get_proxy_policy(&policy, &policylen);
+ policylanguage = get_proxy_policy(&policy, &policylen);
result =
gnutls_x509_crt_set_proxy(crt, proxypathlen,
@@ -565,23 +584,18 @@ generate_certificate(gnutls_privkey_t * ret_key,
}
if (!ca_status || server) {
- if (pk == GNUTLS_PK_RSA ||
- pk == GNUTLS_PK_GOST_01 ||
- pk == GNUTLS_PK_GOST_12_256 ||
- pk == GNUTLS_PK_GOST_12_512) { /* DSA and ECDSA keys can only sign. */
+ if (pk == GNUTLS_PK_RSA || pk == GNUTLS_PK_GOST_01 || pk == GNUTLS_PK_GOST_12_256 || pk == GNUTLS_PK_GOST_12_512) { /* DSA and ECDSA keys can only sign. */
result = get_sign_status(server);
if (result)
- usage |=
- GNUTLS_KEY_DIGITAL_SIGNATURE;
+ usage |= GNUTLS_KEY_DIGITAL_SIGNATURE;
result = get_encrypt_status(server);
if (result)
- usage |=
- GNUTLS_KEY_KEY_ENCIPHERMENT;
+ usage |= GNUTLS_KEY_KEY_ENCIPHERMENT;
} else if (pk == GNUTLS_PK_ECDH_X25519 ||
- pk == GNUTLS_PK_ECDH_X448) {
- /* X25519 and X448 are only for key agreement. */
- usage |= GNUTLS_KEY_KEY_AGREEMENT;
+ pk == GNUTLS_PK_ECDH_X448) {
+ /* X25519 and X448 are only for key agreement. */
+ usage |= GNUTLS_KEY_KEY_AGREEMENT;
} else {
usage |= GNUTLS_KEY_DIGITAL_SIGNATURE;
}
@@ -672,7 +686,6 @@ generate_certificate(gnutls_privkey_t * ret_key,
if (result)
usage |= GNUTLS_KEY_CRL_SIGN;
-
crt_constraints_set(crt);
}
@@ -696,7 +709,9 @@ generate_certificate(gnutls_privkey_t * ret_key,
/* Subject Key ID.
*/
size = lbuffer_size;
- result = gnutls_x509_crt_get_key_id(crt, GNUTLS_KEYID_USE_SHA1, lbuffer, &size);
+ result =
+ gnutls_x509_crt_get_key_id(crt, GNUTLS_KEYID_USE_SHA1,
+ lbuffer, &size);
if (result >= 0) {
result =
gnutls_x509_crt_set_subject_key_id(crt, lbuffer,
@@ -715,8 +730,7 @@ generate_certificate(gnutls_privkey_t * ret_key,
result =
gnutls_x509_crt_get_subject_key_id(ca_crt,
lbuffer,
- &size,
- NULL);
+ &size, NULL);
if (result >= 0) {
result =
gnutls_x509_crt_set_authority_key_id
@@ -744,10 +758,13 @@ generate_certificate(gnutls_privkey_t * ret_key,
app_exit(1);
}
- if ((HAVE_OPT(KEY_TYPE) || req_key_type != REQ_KEY_TYPE_DEFAULT) && req_key_type != pk) {
+ if ((HAVE_OPT(KEY_TYPE) || req_key_type != REQ_KEY_TYPE_DEFAULT)
+ && req_key_type != pk) {
if (pk != GNUTLS_PK_RSA || req_key_type != GNUTLS_PK_RSA_PSS) {
- fprintf(stderr, "cannot set certificate type (%s) incompatible with the key (%s)\n",
- gnutls_pk_get_name(req_key_type), gnutls_pk_get_name(pk));
+ fprintf(stderr,
+ "cannot set certificate type (%s) incompatible with the key (%s)\n",
+ gnutls_pk_get_name(req_key_type),
+ gnutls_pk_get_name(pk));
app_exit(1);
}
}
@@ -766,7 +783,8 @@ generate_certificate(gnutls_privkey_t * ret_key,
if (result >= 0) {
result = gnutls_x509_crt_set_spki(crt, spki, 0);
if (result < 0) {
- fprintf(stderr, "error setting RSA-PSS SPKI information: %s\n",
+ fprintf(stderr,
+ "error setting RSA-PSS SPKI information: %s\n",
gnutls_strerror(result));
app_exit(1);
}
@@ -786,7 +804,8 @@ generate_certificate(gnutls_privkey_t * ret_key,
result = gnutls_x509_crt_set_spki(crt, spki, 0);
if (result < 0) {
- fprintf(stderr, "error setting RSA-PSS SPKI information: %s\n",
+ fprintf(stderr,
+ "error setting RSA-PSS SPKI information: %s\n",
gnutls_strerror(result));
app_exit(1);
}
@@ -828,7 +847,8 @@ generate_crl(gnutls_x509_crt_t ca_crt, common_info_st * cinfo)
} else {
result = gnutls_x509_crl_init(&crl);
if (result < 0) {
- fprintf(stderr, "crl_init: %s\n", gnutls_strerror(result));
+ fprintf(stderr, "crl_init: %s\n",
+ gnutls_strerror(result));
app_exit(1);
}
}
@@ -852,25 +872,21 @@ generate_crl(gnutls_x509_crt_t ca_crt, common_info_st * cinfo)
result = gnutls_x509_crl_set_this_update(crl, this_update);
if (result < 0) {
- fprintf(stderr, "this_update: %s\n",
- gnutls_strerror(result));
+ fprintf(stderr, "this_update: %s\n", gnutls_strerror(result));
app_exit(1);
}
secs = get_crl_next_update();
- result =
- gnutls_x509_crl_set_next_update(crl, secs);
+ result = gnutls_x509_crl_set_next_update(crl, secs);
if (result < 0) {
- fprintf(stderr, "next_update: %s\n",
- gnutls_strerror(result));
+ fprintf(stderr, "next_update: %s\n", gnutls_strerror(result));
app_exit(1);
}
result = gnutls_x509_crl_set_version(crl, 2);
if (result < 0) {
- fprintf(stderr, "set_version: %s\n",
- gnutls_strerror(result));
+ fprintf(stderr, "set_version: %s\n", gnutls_strerror(result));
app_exit(1);
}
@@ -883,8 +899,7 @@ generate_crl(gnutls_x509_crt_t ca_crt, common_info_st * cinfo)
if (result >= 0) {
result =
gnutls_x509_crl_set_authority_key_id(crl,
- lbuffer,
- size);
+ lbuffer, size);
if (result < 0) {
fprintf(stderr, "set_authority_key_id: %s\n",
gnutls_strerror(result));
@@ -913,15 +928,15 @@ generate_crl(gnutls_x509_crt_t ca_crt, common_info_st * cinfo)
return crl;
}
-static gnutls_digest_algorithm_t get_dig_for_pub(gnutls_pubkey_t pubkey, common_info_st * cinfo)
+static gnutls_digest_algorithm_t get_dig_for_pub(gnutls_pubkey_t pubkey,
+ common_info_st * cinfo)
{
gnutls_digest_algorithm_t dig;
int result;
unsigned int mand;
result =
- gnutls_pubkey_get_preferred_hash_algorithm(pubkey, &dig,
- &mand);
+ gnutls_pubkey_get_preferred_hash_algorithm(pubkey, &dig, &mand);
if (result < 0) {
{
fprintf(stderr,
@@ -938,7 +953,8 @@ static gnutls_digest_algorithm_t get_dig_for_pub(gnutls_pubkey_t pubkey, common_
return dig;
}
-static gnutls_digest_algorithm_t get_dig(gnutls_x509_crt_t crt, common_info_st * cinfo)
+static gnutls_digest_algorithm_t get_dig(gnutls_x509_crt_t crt,
+ common_info_st * cinfo)
{
gnutls_digest_algorithm_t dig;
gnutls_pubkey_t pubkey;
@@ -989,14 +1005,14 @@ void generate_self_signed(common_info_st * cinfo)
flags |= GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS;
result =
- gnutls_x509_crt_privkey_sign(crt, crt, key, get_dig(crt, cinfo), flags);
+ gnutls_x509_crt_privkey_sign(crt, crt, key, get_dig(crt, cinfo),
+ flags);
if (result < 0) {
fprintf(stderr, "crt_sign: %s\n", gnutls_strerror(result));
app_exit(1);
}
- result =
- gnutls_x509_crt_export2(crt, outcert_format, &out);
+ result = gnutls_x509_crt_export2(crt, outcert_format, &out);
if (result < 0) {
fprintf(stderr, "crt_export: %s\n", gnutls_strerror(result));
app_exit(1);
@@ -1041,8 +1057,7 @@ static void generate_signed_certificate(common_info_st * cinfo)
app_exit(1);
}
- result =
- gnutls_x509_crt_export2(crt, outcert_format, &out);
+ result = gnutls_x509_crt_export2(crt, outcert_format, &out);
if (result < 0) {
fprintf(stderr, "crt_export: %s\n", gnutls_strerror(result));
app_exit(1);
@@ -1080,15 +1095,14 @@ static void generate_proxy_certificate(common_info_st * cinfo)
flags |= GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS;
result =
- gnutls_x509_crt_privkey_sign(crt, eecrt, eekey, get_dig(eecrt, cinfo),
- flags);
+ gnutls_x509_crt_privkey_sign(crt, eecrt, eekey,
+ get_dig(eecrt, cinfo), flags);
if (result < 0) {
fprintf(stderr, "crt_sign: %s\n", gnutls_strerror(result));
app_exit(1);
}
- result =
- gnutls_x509_crt_export2(crt, outcert_format, &out);
+ result = gnutls_x509_crt_export2(crt, outcert_format, &out);
if (result < 0) {
fprintf(stderr, "crt_export: %s\n", gnutls_strerror(result));
app_exit(1);
@@ -1147,7 +1161,6 @@ static void update_signed_certificate(common_info_st * cinfo)
fprintf(stdlog, "Generating a signed certificate...\n");
-
ca_key = load_ca_private_key(cinfo);
ca_crt = load_ca_cert(1, cinfo);
crt = load_cert(1, cinfo);
@@ -1196,8 +1209,7 @@ static void update_signed_certificate(common_info_st * cinfo)
app_exit(1);
}
- result =
- gnutls_x509_crt_export2(crt, outcert_format, &out);
+ result = gnutls_x509_crt_export2(crt, outcert_format, &out);
if (result < 0) {
fprintf(stderr, "crt_export: %s\n", gnutls_strerror(result));
app_exit(1);
@@ -1213,12 +1225,13 @@ static void load_infile(const char *file)
{
struct stat st;
if (stat(file, &st) == 0) {
- fix_lbuffer(2*st.st_size);
+ fix_lbuffer(2 * st.st_size);
}
infile = fopen(file, "rb");
if (infile == NULL) {
- fprintf(stderr, "Cannot open %s for reading\n", OPT_ARG(INFILE));
+ fprintf(stderr, "Cannot open %s for reading\n",
+ OPT_ARG(INFILE));
app_exit(1);
}
}
@@ -1246,7 +1259,8 @@ static void cmd_parser(int argc, char **argv)
if (HAVE_OPT(OUTFILE)) {
outfile = safe_open_rw(OPT_ARG(OUTFILE), privkey_op);
if (outfile == NULL) {
- fprintf(stderr, "Cannot open %s for writing\n", OPT_ARG(OUTFILE));
+ fprintf(stderr, "Cannot open %s for writing\n",
+ OPT_ARG(OUTFILE));
app_exit(1);
}
outfile_name = OPT_ARG(OUTFILE);
@@ -1274,7 +1288,6 @@ static void cmd_parser(int argc, char **argv)
load_infile(OPT_ARG(INFILE));
}
-
fix_lbuffer(0);
if (HAVE_OPT(INDER))
@@ -1308,12 +1321,11 @@ static void cmd_parser(int argc, char **argv)
template_parse(OPT_ARG(TEMPLATE));
}
-
gnutls_global_set_log_function(tls_log_func);
if (HAVE_OPT(DEBUG)) {
gnutls_global_set_log_level(OPT_VALUE_DEBUG);
- printf("Setting log level to %d\n", (int) OPT_VALUE_DEBUG);
+ printf("Setting log level to %d\n", (int)OPT_VALUE_DEBUG);
}
if ((ret = gnutls_global_init()) < 0) {
@@ -1332,7 +1344,6 @@ static void cmd_parser(int argc, char **argv)
app_exit(1);
}
}
-
#ifdef ENABLE_PKCS11
if (HAVE_OPT(PROVIDER)) {
ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_MANUAL, NULL);
@@ -1341,8 +1352,7 @@ static void cmd_parser(int argc, char **argv)
gnutls_strerror(ret));
else {
ret =
- gnutls_pkcs11_add_provider(OPT_ARG(PROVIDER),
- NULL);
+ gnutls_pkcs11_add_provider(OPT_ARG(PROVIDER), NULL);
if (ret < 0) {
fprintf(stderr, "pkcs11_add_provider: %s",
gnutls_strerror(ret));
@@ -1389,7 +1399,8 @@ static void cmd_parser(int argc, char **argv)
cinfo.pkcs8 = HAVE_OPT(PKCS8);
cinfo.incert_format = incert_format;
cinfo.outcert_format = outcert_format;
- cinfo.outtext = ENABLED_OPT(TEXT) && outcert_format == GNUTLS_X509_FMT_PEM;
+ cinfo.outtext = ENABLED_OPT(TEXT)
+ && outcert_format == GNUTLS_X509_FMT_PEM;
if (HAVE_OPT(LOAD_CERTIFICATE))
cinfo.cert = OPT_ARG(LOAD_CERTIFICATE);
@@ -1440,14 +1451,19 @@ static void cmd_parser(int argc, char **argv)
if (HAVE_OPT(VERIFY_PROFILE)) {
if (strcasecmp(OPT_ARG(VERIFY_PROFILE), "none") == 0) {
- cinfo.verification_profile = (gnutls_sec_param_t)GNUTLS_PROFILE_UNKNOWN;
+ cinfo.verification_profile =
+ (gnutls_sec_param_t) GNUTLS_PROFILE_UNKNOWN;
} else {
- cinfo.verification_profile = (gnutls_sec_param_t)gnutls_certificate_verification_profile_get_id(OPT_ARG(VERIFY_PROFILE));
+ cinfo.verification_profile = (gnutls_sec_param_t)
+ gnutls_certificate_verification_profile_get_id
+ (OPT_ARG(VERIFY_PROFILE));
}
} else if (!HAVE_OPT(VERIFY_ALLOW_BROKEN)) {
if (HAVE_OPT(VERIFY_CHAIN) || HAVE_OPT(VERIFY)) {
- fprintf(stderr, "Note that no verification profile was selected. In the future the medium profile will be enabled by default.\n");
- fprintf(stderr, "Use --verify-profile low to apply the default verification of NORMAL priority string.\n");
+ fprintf(stderr,
+ "Note that no verification profile was selected. In the future the medium profile will be enabled by default.\n");
+ fprintf(stderr,
+ "Use --verify-profile low to apply the default verification of NORMAL priority string.\n");
}
/* cinfo.verification_profile = GNUTLS_PROFILE_LOW; */
}
@@ -1512,7 +1528,8 @@ static void cmd_parser(int argc, char **argv)
else if (HAVE_OPT(P7_DETACHED_SIGN))
pkcs7_sign(&cinfo, 0);
else if (HAVE_OPT(P7_VERIFY))
- verify_pkcs7(&cinfo, OPT_ARG(VERIFY_PURPOSE), ENABLED_OPT(P7_SHOW_DATA));
+ verify_pkcs7(&cinfo, OPT_ARG(VERIFY_PURPOSE),
+ ENABLED_OPT(P7_SHOW_DATA));
else if (HAVE_OPT(P8_INFO))
pkcs8_info();
else if (HAVE_OPT(SMIME_TO_P7))
@@ -1527,7 +1544,6 @@ static void cmd_parser(int argc, char **argv)
if (outfile != stdout)
fclose(outfile);
-
free(cinfo.seed);
#ifdef ENABLE_PKCS11
gnutls_pkcs11_deinit();
@@ -1544,7 +1560,7 @@ void certificate_info(int pubkey, common_info_st * cinfo)
gnutls_datum_t pem;
unsigned int crt_num;
- pem.data = (void *) fread_file(infile, 0, &size);
+ pem.data = (void *)fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
@@ -1553,7 +1569,8 @@ void certificate_info(int pubkey, common_info_st * cinfo)
}
ret =
- gnutls_x509_crt_list_import2(&crts, &crt_num, &pem, incert_format, 0);
+ gnutls_x509_crt_list_import2(&crts, &crt_num, &pem, incert_format,
+ 0);
if (ret < 0) {
fprintf(stderr, "import error: %s\n", gnutls_strerror(ret));
app_exit(1);
@@ -1582,7 +1599,8 @@ void certificate_info(int pubkey, common_info_st * cinfo)
pubkey_info(crts[i], cinfo);
} else {
ret =
- gnutls_x509_crt_export2(crts[i], outcert_format, &out);
+ gnutls_x509_crt_export2(crts[i], outcert_format,
+ &out);
if (ret < 0) {
fprintf(stderr, "export error: %s\n",
gnutls_strerror(ret));
@@ -1624,7 +1642,8 @@ print_certificate_info(gnutls_x509_crt_t crt, FILE * out, unsigned int all)
}
}
-static void print_crl_info(gnutls_x509_crl_t crl, FILE * out, common_info_st *cinfo)
+static void print_crl_info(gnutls_x509_crl_t crl, FILE * out,
+ common_info_st * cinfo)
{
gnutls_datum_t data;
gnutls_datum_t cout;
@@ -1633,7 +1652,8 @@ static void print_crl_info(gnutls_x509_crl_t crl, FILE * out, common_info_st *ci
if (cinfo->outtext) {
ret = gnutls_x509_crl_print(crl, full_format, &data);
if (ret < 0) {
- fprintf(stderr, "crl_print: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "crl_print: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
fprintf(out, "%s\n", data.data);
@@ -1641,8 +1661,7 @@ static void print_crl_info(gnutls_x509_crl_t crl, FILE * out, common_info_st *ci
gnutls_free(data.data);
}
- ret =
- gnutls_x509_crl_export2(crl, outcert_format, &cout);
+ ret = gnutls_x509_crl_export2(crl, outcert_format, &cout);
if (ret < 0) {
fprintf(stderr, "crl_export: %s\n", gnutls_strerror(ret));
app_exit(1);
@@ -1652,7 +1671,7 @@ static void print_crl_info(gnutls_x509_crl_t crl, FILE * out, common_info_st *ci
gnutls_free(cout.data);
}
-void crl_info(common_info_st *cinfo)
+void crl_info(common_info_st * cinfo)
{
gnutls_x509_crl_t crl;
int ret;
@@ -1665,7 +1684,7 @@ void crl_info(common_info_st *cinfo)
app_exit(1);
}
- pem.data = (void *) fread_file(infile, 0, &size);
+ pem.data = (void *)fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
@@ -1686,7 +1705,8 @@ void crl_info(common_info_st *cinfo)
gnutls_x509_crl_deinit(crl);
}
-static void print_crq_info(gnutls_x509_crq_t crq, FILE * out, common_info_st *cinfo)
+static void print_crq_info(gnutls_x509_crq_t crq, FILE * out,
+ common_info_st * cinfo)
{
gnutls_datum_t data;
int ret;
@@ -1724,7 +1744,7 @@ static void print_crq_info(gnutls_x509_crq_t crq, FILE * out, common_info_st *ci
fwrite(lbuffer, 1, size, outfile);
}
-void crq_info(common_info_st *cinfo)
+void crq_info(common_info_st * cinfo)
{
gnutls_x509_crq_t crq;
int ret;
@@ -1737,7 +1757,7 @@ void crq_info(common_info_st *cinfo)
app_exit(1);
}
- pem.data = (void *) fread_file(infile, 0, &size);
+ pem.data = (void *)fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
@@ -1780,7 +1800,8 @@ void privkey_info(common_info_st * cinfo)
pem.size = size;
ret =
- gnutls_x509_privkey_import2(key, &pem, incert_format, NULL, GNUTLS_PKCS_PLAIN);
+ gnutls_x509_privkey_import2(key, &pem, incert_format, NULL,
+ GNUTLS_PKCS_PLAIN);
/* If we failed to import the certificate previously try PKCS #8 */
if (ret == GNUTLS_E_DECRYPTION_FAILED) {
@@ -1794,8 +1815,7 @@ void privkey_info(common_info_st * cinfo)
pass = get_password(cinfo, &flags, 0);
ret = gnutls_x509_privkey_import2(key, &pem,
- incert_format, pass,
- flags);
+ incert_format, pass, flags);
}
if (ret < 0) {
fprintf(stderr, "import error: %s\n", gnutls_strerror(ret));
@@ -1838,7 +1858,8 @@ static void privkey_to_rsa(common_info_st * cinfo)
pem.size = size;
ret =
- gnutls_x509_privkey_import2(key, &pem, incert_format, NULL, GNUTLS_PKCS_PLAIN);
+ gnutls_x509_privkey_import2(key, &pem, incert_format, NULL,
+ GNUTLS_PKCS_PLAIN);
/* If we failed to import the certificate previously try PKCS #8 */
if (ret == GNUTLS_E_DECRYPTION_FAILED) {
@@ -1852,8 +1873,7 @@ static void privkey_to_rsa(common_info_st * cinfo)
pass = get_password(cinfo, &flags, 0);
ret = gnutls_x509_privkey_import2(key, &pem,
- incert_format, pass,
- flags);
+ incert_format, pass, flags);
}
if (ret < 0) {
fprintf(stderr, "import error: %s\n", gnutls_strerror(ret));
@@ -1862,7 +1882,8 @@ static void privkey_to_rsa(common_info_st * cinfo)
ret = gnutls_x509_privkey_get_pk_algorithm(key);
if (ret != GNUTLS_PK_RSA && ret != GNUTLS_PK_RSA_PSS) {
- fprintf(stderr, "unexpected key type: %s\n", gnutls_pk_get_name(ret));
+ fprintf(stderr, "unexpected key type: %s\n",
+ gnutls_pk_get_name(ret));
app_exit(1);
}
@@ -1880,7 +1901,6 @@ static void privkey_to_rsa(common_info_st * cinfo)
gnutls_x509_privkey_deinit(key);
}
-
/* Generate a PKCS #10 certificate request.
*/
void generate_request(common_info_st * cinfo)
@@ -1906,7 +1926,8 @@ void generate_request(common_info_st * cinfo)
pkey = load_private_key(0, cinfo);
if (!pkey) {
if (HAVE_OPT(LOAD_PUBKEY)) {
- fprintf(stderr, "--load-pubkey was specified without corresponding --load-privkey\n");
+ fprintf(stderr,
+ "--load-pubkey was specified without corresponding --load-privkey\n");
app_exit(1);
}
@@ -1962,8 +1983,7 @@ void generate_request(common_info_st * cinfo)
if (pass != NULL && pass[0] != 0) {
ret = gnutls_x509_crq_set_challenge_password(crq, pass);
if (ret < 0) {
- fprintf(stderr, "set_pass: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "set_pass: %s\n", gnutls_strerror(ret));
app_exit(1);
}
}
@@ -2001,7 +2021,8 @@ void generate_request(common_info_st * cinfo)
usage |= GNUTLS_KEY_DIGITAL_SIGNATURE;
} else { /* DSA and ECDSA are always signing */
if (get_encrypt_status(1))
- fprintf(stderr, "warning: this algorithm does not support encryption; disabling the encryption flag\n");
+ fprintf(stderr,
+ "warning: this algorithm does not support encryption; disabling the encryption flag\n");
usage |= GNUTLS_KEY_DIGITAL_SIGNATURE;
}
@@ -2071,7 +2092,6 @@ void generate_request(common_info_st * cinfo)
if (ret)
usage |= GNUTLS_KEY_CRL_SIGN;
-
}
ret = gnutls_x509_crq_set_key_usage(crq, usage);
@@ -2156,12 +2176,11 @@ static int detailed_verification(gnutls_x509_crt_t cert,
{
char tmp[255];
size_t tmp_size;
- gnutls_datum_t name = {NULL,0}, issuer_name = {NULL,0};
- gnutls_datum_t serial = {NULL,0};
+ gnutls_datum_t name = { NULL, 0 }, issuer_name = { NULL, 0 };
+ gnutls_datum_t serial = { NULL, 0 };
int ret;
- ret =
- gnutls_x509_crt_get_issuer_dn3(cert, &issuer_name, 0);
+ ret = gnutls_x509_crt_get_issuer_dn3(cert, &issuer_name, 0);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_get_issuer_dn: %s\n",
gnutls_strerror(ret));
@@ -2185,8 +2204,7 @@ static int detailed_verification(gnutls_x509_crt_t cert,
if (issuer != NULL) {
gnutls_free(issuer_name.data);
- ret =
- gnutls_x509_crt_get_dn3(issuer, &issuer_name, 0);
+ ret = gnutls_x509_crt_get_dn3(issuer, &issuer_name, 0);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_get_issuer_dn: %s\n",
@@ -2197,14 +2215,14 @@ static int detailed_verification(gnutls_x509_crt_t cert,
fprintf(outfile, "\tChecked against: %s\n", issuer_name.data);
}
- fprintf(outfile, "\tSignature algorithm: %s\n", get_signature_algo(cert));
+ fprintf(outfile, "\tSignature algorithm: %s\n",
+ get_signature_algo(cert));
if (crl != NULL) {
gnutls_datum_t data;
gnutls_free(issuer_name.data);
- ret =
- gnutls_x509_crl_get_issuer_dn3(crl, &issuer_name, 0);
+ ret = gnutls_x509_crl_get_issuer_dn3(crl, &issuer_name, 0);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crl_get_issuer_dn: %s\n",
@@ -2213,12 +2231,11 @@ static int detailed_verification(gnutls_x509_crt_t cert,
}
tmp_size = sizeof(tmp);
- ret =
- gnutls_x509_crl_get_number(crl, tmp, &tmp_size, NULL);
+ ret = gnutls_x509_crl_get_number(crl, tmp, &tmp_size, NULL);
if (ret < 0) {
- serial.data = (void*)gnutls_strdup("unnumbered");
+ serial.data = (void *)gnutls_strdup("unnumbered");
} else {
- data.data = (void *) tmp;
+ data.data = (void *)tmp;
data.size = tmp_size;
ret = gnutls_hex_encode2(&data, &serial);
@@ -2244,7 +2261,7 @@ static int detailed_verification(gnutls_x509_crt_t cert,
return 0;
}
-static void load_data(common_info_st *cinfo, gnutls_datum_t *data)
+static void load_data(common_info_st * cinfo, gnutls_datum_t * data)
{
FILE *fp;
size_t size;
@@ -2255,7 +2272,7 @@ static void load_data(common_info_st *cinfo, gnutls_datum_t *data)
app_exit(1);
}
- data->data = (void *) fread_file(fp, 0, &size);
+ data->data = (void *)fread_file(fp, 0, &size);
if (data->data == NULL) {
fprintf(stderr, "Error reading data file");
app_exit(1);
@@ -2277,24 +2294,36 @@ static gnutls_x509_trust_list_t load_tl(common_info_st * cinfo)
app_exit(1);
}
- if (cinfo->ca == NULL) { /* system */
+ if (cinfo->ca == NULL) { /* system */
ret = gnutls_x509_trust_list_add_system_trust(list, 0, 0);
if (ret < 0) {
fprintf(stderr, "Error loading system trust: %s\n",
gnutls_strerror(ret));
app_exit(1);
}
- fprintf(stderr, "Loaded system trust (%d CAs available)\n", ret);
+ fprintf(stderr, "Loaded system trust (%d CAs available)\n",
+ ret);
} else if (cinfo->ca != NULL) {
- ret = gnutls_x509_trust_list_add_trust_file(list, cinfo->ca, cinfo->crl, cinfo->incert_format, 0, 0);
+ ret =
+ gnutls_x509_trust_list_add_trust_file(list, cinfo->ca,
+ cinfo->crl,
+ cinfo->incert_format,
+ 0, 0);
if (ret < 0) {
- int ret2 = gnutls_x509_trust_list_add_trust_file(list, cinfo->ca, cinfo->crl, GNUTLS_X509_FMT_PEM, 0, 0);
+ int ret2 = gnutls_x509_trust_list_add_trust_file(list,
+ cinfo->
+ ca,
+ cinfo->
+ crl,
+ GNUTLS_X509_FMT_PEM,
+ 0, 0);
if (ret2 >= 0)
ret = ret2;
}
if (ret < 0) {
- fprintf(stderr, "gnutls_x509_trust_add_trust_file: %s\n",
+ fprintf(stderr,
+ "gnutls_x509_trust_add_trust_file: %s\n",
gnutls_strerror(ret));
app_exit(1);
}
@@ -2308,7 +2337,8 @@ static gnutls_x509_trust_list_t load_tl(common_info_st * cinfo)
/* Loads from a certificate chain, the last certificate on the
* trusted list. In addition it will load any CRLs if present.
*/
-static gnutls_x509_trust_list_t load_tl_from_cert_chain(const char *cert, int cert_size)
+static gnutls_x509_trust_list_t load_tl_from_cert_chain(const char *cert,
+ int cert_size)
{
gnutls_datum_t tmp;
gnutls_x509_crt_t *x509_cert_list = NULL;
@@ -2326,10 +2356,12 @@ static gnutls_x509_trust_list_t load_tl_from_cert_chain(const char *cert, int ce
app_exit(1);
}
- tmp.data = (void *) cert;
+ tmp.data = (void *)cert;
tmp.size = cert_size;
- ret = gnutls_x509_crt_list_import2(&x509_cert_list, &x509_ncerts, &tmp, GNUTLS_X509_FMT_PEM, 0);
+ ret =
+ gnutls_x509_crt_list_import2(&x509_cert_list, &x509_ncerts, &tmp,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0 || x509_ncerts < 1) {
fprintf(stderr, "error parsing CRTs: %s\n",
gnutls_strerror(ret));
@@ -2347,8 +2379,9 @@ static gnutls_x509_trust_list_t load_tl_from_cert_chain(const char *cert, int ce
/* add CAs */
ret =
- gnutls_x509_trust_list_add_cas(list, &x509_cert_list[x509_ncerts - 1],
- 1, 0);
+ gnutls_x509_trust_list_add_cas(list,
+ &x509_cert_list[x509_ncerts - 1], 1,
+ 0);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_trust_add_cas: %s\n",
gnutls_strerror(ret));
@@ -2368,7 +2401,7 @@ static gnutls_x509_trust_list_t load_tl_from_cert_chain(const char *cert, int ce
}
if (x509_ncerts > 1) {
- for (i=0;i<x509_ncerts-1;i++)
+ for (i = 0; i < x509_ncerts - 1; i++)
gnutls_x509_crt_deinit(x509_cert_list[i]);
}
gnutls_free(x509_cert_list);
@@ -2383,11 +2416,9 @@ static gnutls_x509_trust_list_t load_tl_from_cert_chain(const char *cert, int ce
*
* If @system is non-zero then the system's CA will be used.
*/
-static int
-_verify_x509_mem(const void *cert, int cert_size, common_info_st *cinfo,
- unsigned use_system_trust, /* if ca_file == NULL */
- const char *purpose,
- const char *hostname, const char *email)
+static int _verify_x509_mem(const void *cert, int cert_size, common_info_st * cinfo, unsigned use_system_trust, /* if ca_file == NULL */
+ const char *purpose,
+ const char *hostname, const char *email)
{
int ret;
unsigned i;
@@ -2411,7 +2442,7 @@ _verify_x509_mem(const void *cert, int cert_size, common_info_st *cinfo,
}
}
- tmp.data = (void *) cert;
+ tmp.data = (void *)cert;
tmp.size = cert_size;
ret =
@@ -2430,26 +2461,25 @@ _verify_x509_mem(const void *cert, int cert_size, common_info_st *cinfo,
if (HAVE_OPT(VERIFY_ALLOW_BROKEN))
vflags |= GNUTLS_VERIFY_ALLOW_BROKEN;
-
if (purpose || hostname || email) {
gnutls_typed_vdata_st vdata[2];
unsigned vdata_size = 0;
if (purpose) {
vdata[vdata_size].type = GNUTLS_DT_KEY_PURPOSE_OID;
- vdata[vdata_size].data = (void*)purpose;
+ vdata[vdata_size].data = (void *)purpose;
vdata[vdata_size].size = strlen(purpose);
vdata_size++;
}
if (hostname) {
vdata[vdata_size].type = GNUTLS_DT_DNS_HOSTNAME;
- vdata[vdata_size].data = (void*)hostname;
+ vdata[vdata_size].data = (void *)hostname;
vdata[vdata_size].size = strlen(hostname);
vdata_size++;
} else if (email) {
vdata[vdata_size].type = GNUTLS_DT_RFC822NAME;
- vdata[vdata_size].data = (void*)email;
+ vdata[vdata_size].data = (void *)email;
vdata[vdata_size].size = strlen(email);
vdata_size++;
}
@@ -2482,7 +2512,7 @@ _verify_x509_mem(const void *cert, int cert_size, common_info_st *cinfo,
fprintf(outfile, "\n\n");
gnutls_x509_trust_list_deinit(list, 1);
- for (i=0;i<x509_ncerts;i++)
+ for (i = 0; i < x509_ncerts; i++)
gnutls_x509_crt_deinit(x509_cert_list[i]);
gnutls_free(x509_cert_list);
@@ -2523,11 +2553,12 @@ static void verify_chain(common_info_st * cinfo)
size_t size;
if (cinfo->ca != NULL) {
- fprintf(stderr, "This option cannot be combined with --load-ca-certificate\n");
+ fprintf(stderr,
+ "This option cannot be combined with --load-ca-certificate\n");
app_exit(1);
}
- buf = (void *) fread_file(infile, 0, &size);
+ buf = (void *)fread_file(infile, 0, &size);
if (buf == NULL) {
fprintf(stderr, "Error reading certificate chain");
app_exit(1);
@@ -2544,7 +2575,7 @@ static void verify_certificate(common_info_st * cinfo)
char *cas = NULL;
size_t cert_size;
- cert = (void *) fread_file(infile, 0, &cert_size);
+ cert = (void *)fread_file(infile, 0, &cert_size);
if (cert == NULL) {
fprintf(stderr, "Error reading certificate chain");
app_exit(1);
@@ -2556,7 +2587,6 @@ static void verify_certificate(common_info_st * cinfo)
free(cert);
free(cas);
-
}
void verify_crl(common_info_st * cinfo)
@@ -2587,7 +2617,7 @@ void verify_crl(common_info_st * cinfo)
app_exit(1);
}
- pem.data = (void *) fread_file(infile, 0, &size);
+ pem.data = (void *)fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
@@ -2638,15 +2668,17 @@ void verify_crl(common_info_st * cinfo)
app_exit(rc);
}
-static void print_pkcs7_sig_info(gnutls_pkcs7_signature_info_st *info, common_info_st *cinfo)
+static void print_pkcs7_sig_info(gnutls_pkcs7_signature_info_st * info,
+ common_info_st * cinfo)
{
int ret;
gnutls_datum_t str;
- ret = gnutls_pkcs7_print_signature_info(info, GNUTLS_CRT_PRINT_COMPACT, &str);
+ ret =
+ gnutls_pkcs7_print_signature_info(info, GNUTLS_CRT_PRINT_COMPACT,
+ &str);
if (ret < 0) {
- fprintf(stderr, "printing error: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "printing error: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -2654,13 +2686,14 @@ static void print_pkcs7_sig_info(gnutls_pkcs7_signature_info_st *info, common_in
gnutls_free(str.data);
}
-void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_data)
+void verify_pkcs7(common_info_st * cinfo, const char *purpose,
+ unsigned display_data)
{
gnutls_pkcs7_t pkcs7;
int ret, ecode;
size_t size;
- gnutls_datum_t data, detached = {NULL,0};
- gnutls_datum_t tmp = {NULL,0};
+ gnutls_datum_t data, detached = { NULL, 0 };
+ gnutls_datum_t tmp = { NULL, 0 };
int i;
gnutls_pkcs7_signature_info_st info;
gnutls_x509_trust_list_t tl = NULL;
@@ -2675,7 +2708,7 @@ void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_
app_exit(1);
}
- data.data = (void *) fread_file(infile, 0, &size);
+ data.data = (void *)fread_file(infile, 0, &size);
data.size = size;
if (!data.data) {
@@ -2686,14 +2719,13 @@ void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_
ret = gnutls_pkcs7_import(pkcs7, &data, cinfo->incert_format);
free(data.data);
if (ret < 0) {
- fprintf(stderr, "import error: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "import error: %s\n", gnutls_strerror(ret));
app_exit(1);
}
if (cinfo->cert != NULL) {
signer = load_cert(1, cinfo);
- } else { /* trust list */
+ } else { /* trust list */
tl = load_tl(cinfo);
if (tl == NULL) {
fprintf(stderr, "error loading trust list\n");
@@ -2705,28 +2737,34 @@ void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_
if (purpose) {
vdata[vdata_size].type = GNUTLS_DT_KEY_PURPOSE_OID;
- vdata[vdata_size].data = (void*)purpose;
+ vdata[vdata_size].data = (void *)purpose;
vdata[vdata_size].size = strlen(purpose);
vdata_size++;
}
ecode = 1;
- for (i=0;;i++) {
+ for (i = 0;; i++) {
ret = gnutls_pkcs7_get_signature_info(pkcs7, i, &info);
if (ret < 0)
break;
if (!display_data) {
- if (i==0) {
- fprintf(outfile, "eContent Type: %s\n", gnutls_pkcs7_get_embedded_data_oid(pkcs7));
+ if (i == 0) {
+ fprintf(outfile, "eContent Type: %s\n",
+ gnutls_pkcs7_get_embedded_data_oid
+ (pkcs7));
fprintf(outfile, "Signers:\n");
}
print_pkcs7_sig_info(&info, cinfo);
} else if (i == 0) {
if (!detached.data) {
- ret = gnutls_pkcs7_get_embedded_data(pkcs7, 0, &tmp);
+ ret =
+ gnutls_pkcs7_get_embedded_data(pkcs7, 0,
+ &tmp);
if (ret < 0) {
- fprintf(stderr, "error getting embedded data: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error getting embedded data: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
@@ -2734,7 +2772,8 @@ void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_
gnutls_free(tmp.data);
tmp.data = NULL;
} else {
- fwrite(detached.data, 1, detached.size, outfile);
+ fwrite(detached.data, 1, detached.size,
+ outfile);
}
}
@@ -2744,20 +2783,32 @@ void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_
flags |= GNUTLS_VERIFY_ALLOW_BROKEN;
if (signer) {
- ret = gnutls_pkcs7_verify_direct(pkcs7, signer, i, detached.data!=NULL?&detached:NULL, flags);
+ ret =
+ gnutls_pkcs7_verify_direct(pkcs7, signer, i,
+ detached.data !=
+ NULL ? &detached : NULL,
+ flags);
if (ret >= 0 && purpose) {
- unsigned res = gnutls_x509_crt_check_key_purpose(signer, purpose, 0);
+ unsigned res =
+ gnutls_x509_crt_check_key_purpose(signer,
+ purpose,
+ 0);
if (res == 0)
ret = GNUTLS_E_CONSTRAINT_ERROR;
}
} else {
assert(tl != NULL);
- ret = gnutls_pkcs7_verify(pkcs7, tl, vdata, vdata_size, i, detached.data!=NULL?&detached:NULL, flags);
+ ret =
+ gnutls_pkcs7_verify(pkcs7, tl, vdata, vdata_size, i,
+ detached.data !=
+ NULL ? &detached : NULL, flags);
}
if (ret < 0) {
- fprintf(stderr, "\tSignature status: verification failed: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "\tSignature status: verification failed: %s\n",
+ gnutls_strerror(ret));
ecode = 1;
} else {
fprintf(stderr, "\tSignature status: ok\n");
@@ -2765,7 +2816,6 @@ void verify_pkcs7(common_info_st * cinfo, const char *purpose, unsigned display_
}
}
-
gnutls_pkcs7_deinit(pkcs7);
if (signer)
gnutls_x509_crt_deinit(signer);
@@ -2799,7 +2849,7 @@ void pkcs7_sign(common_info_st * cinfo, unsigned embed)
app_exit(1);
}
- data.data = (void *) fread_file(infile, 0, &size);
+ data.data = (void *)fread_file(infile, 0, &size);
data.size = size;
if (!data.data) {
@@ -2813,24 +2863,25 @@ void pkcs7_sign(common_info_st * cinfo, unsigned embed)
if (embed)
flags |= GNUTLS_PKCS7_EMBED_DATA;
- ret = gnutls_pkcs7_sign(pkcs7, *crts, key, &data, NULL, NULL, get_dig(*crts, cinfo), flags);
+ ret =
+ gnutls_pkcs7_sign(pkcs7, *crts, key, &data, NULL, NULL,
+ get_dig(*crts, cinfo), flags);
if (ret < 0) {
fprintf(stderr, "Error signing: %s\n", gnutls_strerror(ret));
app_exit(1);
}
- for (i=1;i<crt_size;i++) {
+ for (i = 1; i < crt_size; i++) {
ret = gnutls_pkcs7_set_crt(pkcs7, crts[i]);
if (ret < 0) {
- fprintf(stderr, "Error adding cert: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error adding cert: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
}
-
size = lbuffer_size;
- ret =
- gnutls_pkcs7_export(pkcs7, outcert_format, lbuffer, &size);
+ ret = gnutls_pkcs7_export(pkcs7, outcert_format, lbuffer, &size);
if (ret < 0) {
fprintf(stderr, "pkcs7_export: %s\n", gnutls_strerror(ret));
app_exit(1);
@@ -2839,7 +2890,7 @@ void pkcs7_sign(common_info_st * cinfo, unsigned embed)
fwrite(lbuffer, 1, size, outfile);
gnutls_privkey_deinit(key);
- for (i=0;i<crt_size;i++) {
+ for (i = 0; i < crt_size; i++) {
gnutls_x509_crt_deinit(crts[i]);
}
gnutls_free(crts);
@@ -2866,28 +2917,29 @@ void pkcs7_generate(common_info_st * cinfo)
app_exit(1);
}
- for (i=0;i<crt_size;i++) {
+ for (i = 0; i < crt_size; i++) {
ret = gnutls_pkcs7_set_crt(pkcs7, crts[i]);
if (ret < 0) {
- fprintf(stderr, "Error adding cert: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error adding cert: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
gnutls_x509_crt_deinit(crts[i]);
}
gnutls_free(crts);
- for (i=0;i<crl_size;i++) {
+ for (i = 0; i < crl_size; i++) {
ret = gnutls_pkcs7_set_crl(pkcs7, crls[i]);
if (ret < 0) {
- fprintf(stderr, "Error adding CRL: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error adding CRL: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
gnutls_x509_crl_deinit(crls[i]);
}
gnutls_free(crls);
- ret =
- gnutls_pkcs7_export2(pkcs7, outcert_format, &tmp);
+ ret = gnutls_pkcs7_export2(pkcs7, outcert_format, &tmp);
if (ret < 0) {
fprintf(stderr, "pkcs7_export: %s\n", gnutls_strerror(ret));
app_exit(1);
@@ -2900,7 +2952,6 @@ void pkcs7_generate(common_info_st * cinfo)
app_exit(0);
}
-
void generate_pkcs8(common_info_st * cinfo)
{
gnutls_x509_privkey_t key;
@@ -2920,8 +2971,7 @@ void generate_pkcs8(common_info_st * cinfo)
size = lbuffer_size;
result =
gnutls_x509_privkey_export_pkcs8(key, outcert_format,
- password, flags, lbuffer,
- &size);
+ password, flags, lbuffer, &size);
if (result < 0) {
fprintf(stderr, "key_export: %s\n", gnutls_strerror(result));
@@ -2932,7 +2982,6 @@ void generate_pkcs8(common_info_st * cinfo)
}
-
#include <gnutls/pkcs12.h>
#include <unistd.h>
@@ -2965,12 +3014,13 @@ void generate_pkcs12(common_info_st * cinfo)
crls = load_crl_list(0, &ncrls, cinfo);
if (keys == NULL && crts == NULL && ca_crt == NULL && crls == NULL) {
- fprintf(stderr, "You must specify one of\n\t--load-privkey\n\t--load-certificate\n\t--load-ca-certificate\n\t--load-crl\n");
+ fprintf(stderr,
+ "You must specify one of\n\t--load-privkey\n\t--load-certificate\n\t--load-ca-certificate\n\t--load-crl\n");
app_exit(1);
}
if (cinfo->hash != GNUTLS_DIG_UNKNOWN)
- mac = (gnutls_mac_algorithm_t)cinfo->hash;
+ mac = (gnutls_mac_algorithm_t) cinfo->hash;
else
mac = GNUTLS_MAC_SHA256;
@@ -2982,8 +3032,7 @@ void generate_pkcs12(common_info_st * cinfo)
result = gnutls_pkcs12_init(&pkcs12);
if (result < 0) {
- fprintf(stderr, "pkcs12_init: %s\n",
- gnutls_strerror(result));
+ fprintf(stderr, "pkcs12_init: %s\n", gnutls_strerror(result));
app_exit(1);
}
@@ -3024,7 +3073,8 @@ void generate_pkcs12(common_info_st * cinfo)
size = sizeof(_key_id);
result =
- gnutls_x509_crt_get_key_id(crts[i], GNUTLS_KEYID_USE_SHA1, _key_id, &size);
+ gnutls_x509_crt_get_key_id(crts[i], GNUTLS_KEYID_USE_SHA1,
+ _key_id, &size);
if (result < 0) {
fprintf(stderr, "key_id[%d]: %s\n", i,
gnutls_strerror(result));
@@ -3164,8 +3214,7 @@ void generate_pkcs12(common_info_st * cinfo)
indx = result;
- result =
- gnutls_pkcs12_bag_set_friendly_name(kbag, indx, name);
+ result = gnutls_pkcs12_bag_set_friendly_name(kbag, indx, name);
if (result < 0) {
fprintf(stderr, "bag_set_friendly_name: %s\n",
gnutls_strerror(result));
@@ -3174,8 +3223,9 @@ void generate_pkcs12(common_info_st * cinfo)
size = sizeof(_key_id);
result =
- gnutls_x509_privkey_get_key_id(keys[i], GNUTLS_KEYID_USE_SHA1, _key_id,
- &size);
+ gnutls_x509_privkey_get_key_id(keys[i],
+ GNUTLS_KEYID_USE_SHA1,
+ _key_id, &size);
if (result < 0) {
fprintf(stderr, "key_id[%d]: %s\n", i,
gnutls_strerror(result));
@@ -3203,22 +3253,19 @@ void generate_pkcs12(common_info_st * cinfo)
result = gnutls_pkcs12_generate_mac2(pkcs12, mac, pass);
if (result < 0) {
- fprintf(stderr, "generate_mac: %s\n",
- gnutls_strerror(result));
+ fprintf(stderr, "generate_mac: %s\n", gnutls_strerror(result));
app_exit(1);
}
size = lbuffer_size;
- result =
- gnutls_pkcs12_export(pkcs12, outcert_format, lbuffer, &size);
+ result = gnutls_pkcs12_export(pkcs12, outcert_format, lbuffer, &size);
if (result < 0) {
- fprintf(stderr, "pkcs12_export: %s\n",
- gnutls_strerror(result));
+ fprintf(stderr, "pkcs12_export: %s\n", gnutls_strerror(result));
app_exit(1);
}
fwrite(lbuffer, 1, size, outfile);
- for (i=0;i<ncrts;i++)
+ for (i = 0; i < ncrts; i++)
gnutls_x509_crt_deinit(crts[i]);
gnutls_free(crts);
gnutls_x509_crt_deinit(ca_crt);
@@ -3282,14 +3329,13 @@ static void print_bag_data(gnutls_pkcs12_bag_t bag, int outtext)
app_exit(1);
}
- if (type == GNUTLS_BAG_PKCS8_ENCRYPTED_KEY &&
- outtext)
- pkcs8_info_int(&cdata, GNUTLS_X509_FMT_DER, 1, outfile, "\t");
+ if (type == GNUTLS_BAG_PKCS8_ENCRYPTED_KEY && outtext)
+ pkcs8_info_int(&cdata, GNUTLS_X509_FMT_DER, 1, outfile,
+ "\t");
name = NULL;
result =
- gnutls_pkcs12_bag_get_friendly_name(bag, i,
- (char **) &name);
+ gnutls_pkcs12_bag_get_friendly_name(bag, i, (char **)&name);
if (result < 0) {
fprintf(stderr, "get_friendly_name: %s\n",
gnutls_strerror(result));
@@ -3312,7 +3358,6 @@ static void print_bag_data(gnutls_pkcs12_bag_t bag, int outtext)
fprintf(outfile, "\tKey ID: %s\n",
raw_to_string(id.data, id.size));
-
switch (type) {
case GNUTLS_BAG_PKCS8_ENCRYPTED_KEY:
str = "ENCRYPTED PRIVATE KEY";
@@ -3333,9 +3378,12 @@ static void print_bag_data(gnutls_pkcs12_bag_t bag, int outtext)
}
if (str != NULL) {
- result = gnutls_pem_base64_encode_alloc(str, &cdata, &out);
+ result =
+ gnutls_pem_base64_encode_alloc(str, &cdata, &out);
if (result < 0) {
- fprintf(stderr, "Error in base64 encoding: %s\n", gnutls_strerror(result));
+ fprintf(stderr,
+ "Error in base64 encoding: %s\n",
+ gnutls_strerror(result));
app_exit(1);
}
fprintf(outfile, "%s", out.data);
@@ -3346,13 +3394,13 @@ static void print_bag_data(gnutls_pkcs12_bag_t bag, int outtext)
}
static
-void pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, FILE *out)
+void pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, FILE * out)
{
int ret;
unsigned schema;
unsigned cipher;
unsigned char salt[32];
- char hex[64+1];
+ char hex[64 + 1];
unsigned salt_size = sizeof(salt);
unsigned iter_count;
gnutls_datum_t bin;
@@ -3361,7 +3409,8 @@ void pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, FILE *out)
char *oid = NULL;
ret = gnutls_pkcs12_bag_enc_info(bag,
- &schema, &cipher, salt, &salt_size, &iter_count, &oid);
+ &schema, &cipher, salt, &salt_size,
+ &iter_count, &oid);
if (ret == GNUTLS_E_UNKNOWN_CIPHER_TYPE) {
fprintf(out, "\tSchema: unsupported (%s)\n", oid);
gnutls_free(oid);
@@ -3379,15 +3428,15 @@ void pkcs12_bag_enc_info(gnutls_pkcs12_bag_t bag, FILE *out)
str = gnutls_pkcs_schema_get_name(schema);
if (str != NULL) {
- fprintf(out, "\tSchema: %s (%s)\n", str, gnutls_pkcs_schema_get_oid(schema));
+ fprintf(out, "\tSchema: %s (%s)\n", str,
+ gnutls_pkcs_schema_get_oid(schema));
}
bin.data = salt;
bin.size = salt_size;
ret = gnutls_hex_encode(&bin, hex, &hex_size);
if (ret < 0) {
- fprintf(stderr, "hex encode error: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "hex encode error: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -3402,7 +3451,7 @@ void pkcs12_info(common_info_st * cinfo)
gnutls_pkcs12_bag_t bag;
gnutls_mac_algorithm_t mac_algo;
char *mac_oid = NULL;
- char hex[64+1];
+ char hex[64 + 1];
size_t hex_size = sizeof(hex);
char salt[32];
unsigned int salt_size;
@@ -3419,7 +3468,7 @@ void pkcs12_info(common_info_st * cinfo)
app_exit(1);
}
- data.data = (void *) fread_file(infile, 0, &size);
+ data.data = (void *)fread_file(infile, 0, &size);
data.size = size;
if (!data.data) {
@@ -3435,7 +3484,9 @@ void pkcs12_info(common_info_st * cinfo)
}
salt_size = sizeof(salt);
- result = gnutls_pkcs12_mac_info(pkcs12, &mac_algo, salt, &salt_size, &mac_iter, &mac_oid);
+ result =
+ gnutls_pkcs12_mac_info(pkcs12, &mac_algo, salt, &salt_size,
+ &mac_iter, &mac_oid);
if (result == GNUTLS_E_UNKNOWN_HASH_ALGORITHM && cinfo->outtext) {
fprintf(outfile, "MAC info:\n");
if (mac_oid != NULL)
@@ -3444,9 +3495,10 @@ void pkcs12_info(common_info_st * cinfo)
gnutls_datum_t bin;
fprintf(outfile, "MAC info:\n");
- fprintf(outfile, "\tMAC: %s (%s)\n", gnutls_mac_get_name(mac_algo), mac_oid);
+ fprintf(outfile, "\tMAC: %s (%s)\n",
+ gnutls_mac_get_name(mac_algo), mac_oid);
- bin.data = (void*)salt;
+ bin.data = (void *)salt;
bin.size = salt_size;
result = gnutls_hex_encode(&bin, hex, &hex_size);
if (result < 0) {
@@ -3504,7 +3556,8 @@ void pkcs12_info(common_info_st * cinfo)
if (result == GNUTLS_BAG_ENCRYPTED) {
if (cinfo->outtext) {
- fprintf(outfile, "\tType: %s\n", BAGTYPE(result));
+ fprintf(outfile, "\tType: %s\n",
+ BAGTYPE(result));
pkcs12_bag_enc_info(bag, outfile);
fprintf(outfile, "\n\tDecrypting...\n");
}
@@ -3536,20 +3589,19 @@ void pkcs12_info(common_info_st * cinfo)
gnutls_pkcs12_deinit(pkcs12);
if (fail) {
- fprintf(stderr,
- "There were errors parsing the structure\n");
+ fprintf(stderr, "There were errors parsing the structure\n");
app_exit(1);
}
}
-void pkcs8_info_int(gnutls_datum_t *data, unsigned format,
- unsigned ignore_err, FILE *out, const char *tab)
+void pkcs8_info_int(gnutls_datum_t * data, unsigned format,
+ unsigned ignore_err, FILE * out, const char *tab)
{
int ret;
unsigned schema;
unsigned cipher;
unsigned char salt[32];
- char hex[64+1];
+ char hex[64 + 1];
unsigned salt_size = sizeof(salt);
unsigned iter_count;
gnutls_datum_t bin;
@@ -3558,7 +3610,8 @@ void pkcs8_info_int(gnutls_datum_t *data, unsigned format,
char *oid = NULL;
ret = gnutls_pkcs8_info(data, format,
- &schema, &cipher, salt, &salt_size, &iter_count, &oid);
+ &schema, &cipher, salt, &salt_size, &iter_count,
+ &oid);
if (ret == GNUTLS_E_UNKNOWN_CIPHER_TYPE) {
fprintf(out, "PKCS #8 information:\n");
fprintf(out, "\tSchema: unsupported (%s)\n", oid);
@@ -3582,16 +3635,15 @@ void pkcs8_info_int(gnutls_datum_t *data, unsigned format,
str = gnutls_pkcs_schema_get_name(schema);
if (str != NULL) {
- fprintf(out, "%s\tSchema: %s (%s)\n", tab, str, gnutls_pkcs_schema_get_oid(schema));
+ fprintf(out, "%s\tSchema: %s (%s)\n", tab, str,
+ gnutls_pkcs_schema_get_oid(schema));
}
-
bin.data = salt;
bin.size = salt_size;
ret = gnutls_hex_encode(&bin, hex, &hex_size);
if (ret < 0) {
- fprintf(stderr, "hex encode error: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "hex encode error: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -3608,7 +3660,7 @@ void pkcs8_info(void)
size_t size;
gnutls_datum_t data;
- data.data = (void *) fread_file(infile, 0, &size);
+ data.data = (void *)fread_file(infile, 0, &size);
data.size = size;
if (!data.data) {
@@ -3620,7 +3672,7 @@ void pkcs8_info(void)
free(data.data);
}
-void pkcs7_info(common_info_st *cinfo, unsigned display_data)
+void pkcs7_info(common_info_st * cinfo, unsigned display_data)
{
gnutls_pkcs7_t pkcs7;
int ret;
@@ -3633,7 +3685,7 @@ void pkcs7_info(common_info_st *cinfo, unsigned display_data)
app_exit(1);
}
- data.data = (void *) fread_file(infile, 0, &size);
+ data.data = (void *)fread_file(infile, 0, &size);
data.size = size;
if (!data.data) {
@@ -3644,8 +3696,7 @@ void pkcs7_info(common_info_st *cinfo, unsigned display_data)
ret = gnutls_pkcs7_import(pkcs7, &data, incert_format);
free(data.data);
if (ret < 0) {
- fprintf(stderr, "import error: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "import error: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -3655,7 +3706,9 @@ void pkcs7_info(common_info_st *cinfo, unsigned display_data)
ret = gnutls_pkcs7_get_embedded_data(pkcs7, 0, &tmp);
if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
if (ret < 0) {
- fprintf(stderr, "error getting embedded data: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "error getting embedded data: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
@@ -3667,7 +3720,9 @@ void pkcs7_info(common_info_st *cinfo, unsigned display_data)
}
} else {
if (cinfo->outtext) {
- ret = gnutls_pkcs7_print(pkcs7, GNUTLS_CRT_PRINT_FULL, &str);
+ ret =
+ gnutls_pkcs7_print(pkcs7, GNUTLS_CRT_PRINT_FULL,
+ &str);
if (ret < 0) {
fprintf(stderr, "printing error: %s\n",
gnutls_strerror(ret));
@@ -3680,8 +3735,7 @@ void pkcs7_info(common_info_st *cinfo, unsigned display_data)
size = lbuffer_size;
ret =
- gnutls_pkcs7_export(pkcs7, outcert_format,
- lbuffer, &size);
+ gnutls_pkcs7_export(pkcs7, outcert_format, lbuffer, &size);
if (ret < 0) {
fprintf(stderr, "export error: %s\n",
gnutls_strerror(ret));
@@ -3788,8 +3842,7 @@ gnutls_pubkey_t find_pubkey(gnutls_x509_crt_t crt, common_info_st * cinfo)
if (privkey != NULL) {
ret =
- gnutls_pubkey_import_privkey(pubkey, privkey,
- 0, 0);
+ gnutls_pubkey_import_privkey(pubkey, privkey, 0, 0);
if (ret < 0) {
fprintf(stderr,
"pubkey_import_privkey: %s\n",
@@ -3801,12 +3854,14 @@ gnutls_pubkey_t find_pubkey(gnutls_x509_crt_t crt, common_info_st * cinfo)
gnutls_pubkey_deinit(pubkey);
pubkey = load_pubkey(0, cinfo);
- if (pubkey == NULL) { /* load from stdin */
- pem.data = (void *) fread_file(infile, 0, &size);
+ if (pubkey == NULL) { /* load from stdin */
+ pem.data = (void *)fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
- fprintf(stderr, "%s", infile ? "file" : "standard input");
+ fprintf(stderr, "%s",
+ infile ? "file" :
+ "standard input");
app_exit(1);
}
@@ -3818,8 +3873,11 @@ gnutls_pubkey_t find_pubkey(gnutls_x509_crt_t crt, common_info_st * cinfo)
app_exit(1);
}
- if (memmem(pem.data, pem.size, "BEGIN CERTIFICATE", 16) != 0 ||
- memmem(pem.data, pem.size, "BEGIN X509", 10) != 0) {
+ if (memmem
+ (pem.data, pem.size, "BEGIN CERTIFICATE",
+ 16) != 0
+ || memmem(pem.data, pem.size, "BEGIN X509",
+ 10) != 0) {
ret = gnutls_x509_crt_init(&crt);
if (ret < 0) {
fprintf(stderr,
@@ -3828,7 +3886,9 @@ gnutls_pubkey_t find_pubkey(gnutls_x509_crt_t crt, common_info_st * cinfo)
app_exit(1);
}
- ret = gnutls_x509_crt_import(crt, &pem, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_crt_import(crt, &pem,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
"crt_import: %s\n",
@@ -3836,15 +3896,20 @@ gnutls_pubkey_t find_pubkey(gnutls_x509_crt_t crt, common_info_st * cinfo)
app_exit(1);
}
- ret = gnutls_pubkey_import_x509(pubkey, crt, 0);
+ ret =
+ gnutls_pubkey_import_x509(pubkey,
+ crt, 0);
if (ret < 0) {
- fprintf(stderr, "pubkey_import_x509: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr,
+ "pubkey_import_x509: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
gnutls_x509_crt_deinit(crt);
} else {
- ret = gnutls_pubkey_import(pubkey, &pem, incert_format);
+ ret =
+ gnutls_pubkey_import(pubkey, &pem,
+ incert_format);
if (ret < 0) {
fprintf(stderr,
"pubkey_import: %s\n",
@@ -3871,7 +3936,8 @@ void pubkey_info(gnutls_x509_crt_t crt, common_info_st * cinfo)
app_exit(1);
}
- print_pubkey_info(pubkey, outfile, full_format, outcert_format, cinfo->outtext);
+ print_pubkey_info(pubkey, outfile, full_format, outcert_format,
+ cinfo->outtext);
gnutls_pubkey_deinit(pubkey);
}
@@ -3880,7 +3946,7 @@ void pubkey_keyid(common_info_st * cinfo)
{
gnutls_pubkey_t pubkey;
uint8_t fpr[MAX_HASH_SIZE];
- char txt[MAX_HASH_SIZE*2+1];
+ char txt[MAX_HASH_SIZE * 2 + 1];
int ret;
size_t size, fpr_size;
gnutls_datum_t tmp;
@@ -3893,22 +3959,21 @@ void pubkey_keyid(common_info_st * cinfo)
}
if (cinfo->hash == GNUTLS_DIG_SHA1 || cinfo->hash == GNUTLS_DIG_UNKNOWN)
- flags = GNUTLS_KEYID_USE_SHA1; /* be backwards compatible */
+ flags = GNUTLS_KEYID_USE_SHA1; /* be backwards compatible */
else if (cinfo->hash == GNUTLS_DIG_SHA512)
flags = GNUTLS_KEYID_USE_SHA512;
else if (cinfo->hash == GNUTLS_DIG_SHA256)
flags = GNUTLS_KEYID_USE_SHA256;
else {
- fprintf(stderr, "Cannot calculate key ID with the provided hash (use sha1, sha256 or sha512)\n");
+ fprintf(stderr,
+ "Cannot calculate key ID with the provided hash (use sha1, sha256 or sha512)\n");
app_exit(1);
}
fpr_size = sizeof(fpr);
ret = gnutls_pubkey_get_key_id(pubkey, flags, fpr, &fpr_size);
if (ret < 0) {
- fprintf(stderr,
- "get_key_id: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "get_key_id: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -3918,9 +3983,7 @@ void pubkey_keyid(common_info_st * cinfo)
size = sizeof(txt);
ret = gnutls_hex_encode(&tmp, txt, &size);
if (ret < 0) {
- fprintf(stderr,
- "hex_encode: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "hex_encode: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -3940,27 +4003,28 @@ void certificate_fpr(common_info_st * cinfo)
gnutls_datum_t pem, tmp;
unsigned int crt_num;
uint8_t fpr[MAX_HASH_SIZE];
- char txt[MAX_HASH_SIZE*2+1];
+ char txt[MAX_HASH_SIZE * 2 + 1];
size_t fpr_size;
crt = load_cert(0, cinfo);
if (crt == NULL) {
- pem.data = (void *) fread_file(infile, 0, &size);
+ pem.data = (void *)fread_file(infile, 0, &size);
pem.size = size;
if (!pem.data) {
- fprintf(stderr, "%s", infile ? "file" : "standard input");
+ fprintf(stderr, "%s",
+ infile ? "file" : "standard input");
app_exit(1);
}
crt_num = 1;
ret =
- gnutls_x509_crt_list_import(&crt, &crt_num, &pem, incert_format,
+ gnutls_x509_crt_list_import(&crt, &crt_num, &pem,
+ incert_format,
GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED);
if (ret == GNUTLS_E_SHORT_MEMORY_BUFFER) {
- fprintf(stderr, "too many certificates (%d).",
- crt_num);
+ fprintf(stderr, "too many certificates (%d).", crt_num);
} else if (ret >= 0 && crt_num == 0) {
fprintf(stderr, "no certificates were found.\n");
}
@@ -3980,9 +4044,7 @@ void certificate_fpr(common_info_st * cinfo)
ret = gnutls_x509_crt_get_fingerprint(crt, cinfo->hash, fpr, &fpr_size);
if (ret < 0) {
- fprintf(stderr,
- "get_key_id: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "get_key_id: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -3992,9 +4054,7 @@ void certificate_fpr(common_info_st * cinfo)
size = sizeof(txt);
ret = gnutls_hex_encode(&tmp, txt, &size);
if (ret < 0) {
- fprintf(stderr,
- "hex_encode: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "hex_encode: %s\n", gnutls_strerror(ret));
app_exit(1);
}
diff --git a/src/cfg.c b/src/cfg.c
index b8925f9c7c..545e73f140 100644
--- a/src/cfg.c
+++ b/src/cfg.c
@@ -39,23 +39,20 @@ struct options_st {
size_t capacity;
};
-struct parser_st
-{
+struct parser_st {
FILE *fp;
char pushback[2];
size_t pushback_length;
};
-static inline void
-clear_option(struct cfg_option_st *option)
+static inline void clear_option(struct cfg_option_st *option)
{
free(option->name);
free(option->value);
memset(option, 0, sizeof(*option));
}
-void
-cfg_free(cfg_option_t options)
+void cfg_free(cfg_option_t options)
{
for (size_t i = 0; options[i].name; i++) {
clear_option(&options[i]);
@@ -76,8 +73,7 @@ struct buffer_st {
size_t capacity;
};
-static int
-buffer_append(struct buffer_st *buffer, int c)
+static int buffer_append(struct buffer_st *buffer, int c)
{
size_t new_length = xsum(buffer->length, 1);
if (size_overflow_p(new_length)) {
@@ -103,8 +99,7 @@ buffer_append(struct buffer_st *buffer, int c)
return 0;
}
-static int
-parser_getc(struct parser_st *parser)
+static int parser_getc(struct parser_st *parser)
{
if (parser->pushback_length > 0) {
return parser->pushback[--parser->pushback_length];
@@ -113,15 +108,13 @@ parser_getc(struct parser_st *parser)
return c;
}
-static void
-parser_ungetc(struct parser_st *parser, int c)
+static void parser_ungetc(struct parser_st *parser, int c)
{
assert(parser->pushback_length < SIZEOF(parser->pushback));
parser->pushback[parser->pushback_length++] = c;
}
-static void
-skip_comment(struct parser_st *parser)
+static void skip_comment(struct parser_st *parser)
{
int c;
@@ -144,8 +137,7 @@ skip_comment(struct parser_st *parser)
parser_ungetc(parser, c);
}
-static void
-skip_chars(struct parser_st *parser, const char *chars)
+static void skip_chars(struct parser_st *parser, const char *chars)
{
int c;
@@ -161,8 +153,7 @@ skip_chars(struct parser_st *parser, const char *chars)
parser_ungetc(parser, c);
}
-static void
-skip_comments_and_whitespaces(struct parser_st *parser)
+static void skip_comments_and_whitespaces(struct parser_st *parser)
{
int c;
@@ -183,8 +174,7 @@ skip_comments_and_whitespaces(struct parser_st *parser)
}
/* Read the name part of an option. Returns NULL if it fails. */
-static char *
-read_name(struct parser_st *parser)
+static char *read_name(struct parser_st *parser)
{
struct buffer_st buffer;
int c;
@@ -227,8 +217,7 @@ read_name(struct parser_st *parser)
return buffer.data;
}
-static char *
-read_quoted_value(struct parser_st *parser)
+static char *read_quoted_value(struct parser_st *parser)
{
struct buffer_st buffer;
int c, quote_char;
@@ -278,8 +267,7 @@ read_quoted_value(struct parser_st *parser)
}
/* Read the value part of an option. Returns NULL if it fails. */
-static char *
-read_value(struct parser_st *parser)
+static char *read_value(struct parser_st *parser)
{
struct buffer_st buffer;
int c;
@@ -308,7 +296,7 @@ read_value(struct parser_st *parser)
}
if (c == '\n') {
- return strdup(""); /* empty value */
+ return strdup(""); /* empty value */
} else if (c == '"' || c == '\'') {
parser_ungetc(parser, c);
return read_quoted_value(parser);
@@ -342,8 +330,7 @@ read_value(struct parser_st *parser)
}
/* Append OPTION to OPTIONS. Take ownership of the fields of OPTION. */
-static int
-take_option(struct options_st *options, struct cfg_option_st *option)
+static int take_option(struct options_st *options, struct cfg_option_st *option)
{
size_t new_length = xsum(options->length, 1);
if (size_overflow_p(new_length)) {
@@ -379,16 +366,14 @@ take_option(struct options_st *options, struct cfg_option_st *option)
return 0;
}
-static void
-clear_options(struct options_st *options)
+static void clear_options(struct options_st *options)
{
for (size_t i = 0; options->length; i++) {
clear_option(&options->data[i]);
}
}
-cfg_option_t
-cfg_load(const char *filename)
+cfg_option_t cfg_load(const char *filename)
{
struct parser_st parser;
struct options_st options;
@@ -428,14 +413,13 @@ cfg_load(const char *filename)
take_option(&options, &null_option);
return options.data;
-error:
+ error:
clear_options(&options);
fclose(parser.fp);
return NULL;
}
-cfg_option_t
-cfg_next(const cfg_option_t options, const char *name)
+cfg_option_t cfg_next(const cfg_option_t options, const char *name)
{
for (size_t i = 0; options[i].name; i++) {
if (strcmp(options[i].name, name) == 0) {
@@ -446,8 +430,7 @@ cfg_next(const cfg_option_t options, const char *name)
}
#ifdef TEST
-int
-main(int argc, char **argv)
+int main(int argc, char **argv)
{
cfg_option_t opts;
diff --git a/src/cfg.h b/src/cfg.h
index 20e8fc9faa..6bfd70bdc7 100644
--- a/src/cfg.h
+++ b/src/cfg.h
@@ -19,7 +19,7 @@
*/
#ifndef CFG_H_
-#define CFG_H_ 1
+# define CFG_H_ 1
typedef struct cfg_option_st {
char *name;
@@ -30,4 +30,4 @@ cfg_option_t cfg_load(const char *filename);
void cfg_free(cfg_option_t options);
cfg_option_t cfg_next(const cfg_option_t options, const char *name);
-#endif /* CFG_H_ */
+#endif /* CFG_H_ */
diff --git a/src/cli-debug.c b/src/cli-debug.c
index cdd88b96ea..493556054e 100644
--- a/src/cli-debug.c
+++ b/src/cli-debug.c
@@ -28,9 +28,9 @@
#include <gnutls/gnutls.h>
#include <sys/time.h>
#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
+# include <sys/socket.h>
#elif HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
+# include <ws2tcpip.h>
#endif
#include <tests.h>
#include <common.h>
@@ -88,7 +88,8 @@ static const TLS_TEST tls_tests[] = {
/* The following test will disable extensions if the server
* does support SSL 3.0, but only incompletely and without
* extensions. */
- {"for SSL 3.0 with extensions", test_ssl3_with_extensions, "yes", "no", "dunno"},
+ {"for SSL 3.0 with extensions", test_ssl3_with_extensions, "yes", "no",
+ "dunno"},
{"for SSL 3.0 with cipher suites not in SSL 3.0 spec",
test_ssl3_unknown_ciphersuites, "yes", "no", "dunno"},
#endif
@@ -107,30 +108,39 @@ static const TLS_TEST tls_tests[] = {
{"whether %COMPAT is required", test_record_padding, "no", "yes",
"dunno"},
{"for TLS 1.0 (RFC2246) support", test_tls1, "yes", "no", "dunno"},
- {"for TLS 1.0 (RFC2246) support with TLS 1.0 record version", test_tls1_nossl3, "yes", "no", "dunno"},
+ {"for TLS 1.0 (RFC2246) support with TLS 1.0 record version",
+ test_tls1_nossl3, "yes", "no", "dunno"},
{"for TLS 1.1 (RFC4346) support", test_tls1_1, "yes", "no", "dunno"},
{"fallback from TLS 1.1 to", test_tls1_1_fallback, "TLS 1.0",
"failed",
"SSL 3.0"},
{"for TLS 1.2 (RFC5246) support", test_tls1_2, "yes", "no", "dunno"},
{"for TLS 1.3 (RFC8446) support", test_tls1_3, "yes", "no", "dunno"},
- {"for known TLS or SSL protocols support", test_known_protocols, "yes", "no", "dunno", 0, 1},
+ {"for known TLS or SSL protocols support", test_known_protocols, "yes",
+ "no", "dunno", 0, 1},
{"TLS1.2 neg fallback from TLS 1.6 to", test_tls1_6_fallback, NULL,
"failed (server requires fallback dance)", "dunno"},
- {"for inappropriate fallback (RFC7507) support", test_rfc7507, "yes", "no", "dunno"},
- {"for HTTPS server name", test_server, NULL, "failed", "not checked", 1},
+ {"for inappropriate fallback (RFC7507) support", test_rfc7507, "yes",
+ "no", "dunno"},
+ {"for HTTPS server name", test_server, NULL, "failed", "not checked",
+ 1},
{"for certificate information", test_certificate, NULL, "", ""},
- {"for certificate chain order", test_chain_order, "sorted", "unsorted", "unknown"},
+ {"for certificate chain order", test_chain_order, "sorted", "unsorted",
+ "unknown"},
{"for trusted CAs", test_server_cas, NULL, "", ""},
- {"for safe renegotiation (RFC5746) support", test_safe_renegotiation, "yes",
+ {"for safe renegotiation (RFC5746) support", test_safe_renegotiation,
+ "yes",
"no", "dunno"},
{"for Safe renegotiation support (SCSV)",
test_safe_renegotiation_scsv,
"yes", "no", "dunno"},
- {"for encrypt-then-MAC (RFC7366) support", test_etm, "yes", "no", "dunno"},
- {"for ext master secret (RFC7627) support", test_ext_master_secret, "yes", "no", "dunno"},
- {"for heartbeat (RFC6520) support", test_heartbeat_extension, "yes", "no", "dunno"},
+ {"for encrypt-then-MAC (RFC7366) support", test_etm, "yes", "no",
+ "dunno"},
+ {"for ext master secret (RFC7627) support", test_ext_master_secret,
+ "yes", "no", "dunno"},
+ {"for heartbeat (RFC6520) support", test_heartbeat_extension, "yes",
+ "no", "dunno"},
{"for version rollback bug in RSA PMS", test_rsa_pms, "no", "yes",
"dunno"},
{"for version rollback bug in Client Hello", test_version_rollback,
@@ -141,7 +151,8 @@ static const TLS_TEST tls_tests[] = {
test_small_records, "yes", "no", "dunno"},
{"whether cipher suites not in SSL 3.0 spec are accepted",
test_unknown_ciphersuites, "yes", "no", "dunno"},
- {"whether a bogus TLS record version in the client hello is accepted", test_version_oob, "yes", "no", "dunno"},
+ {"whether a bogus TLS record version in the client hello is accepted",
+ test_version_oob, "yes", "no", "dunno"},
{"whether the server understands TLS closure alerts", test_bye,
"yes", "no", "partially"},
/* the fact that is after the closure alert test does matter.
@@ -168,11 +179,15 @@ static const TLS_TEST tls_tests[] = {
"no",
"dunno"},
#ifdef ENABLE_GOST
- {"for VKO GOST-2012 (draft-smyshlyaev-tls12-gost-suites) support", test_vko_gost_12, "yes", "no", "dunno"},
+ {"for VKO GOST-2012 (draft-smyshlyaev-tls12-gost-suites) support",
+ test_vko_gost_12, "yes", "no", "dunno"},
#endif
- {"for curve SECP256r1 (RFC4492)", test_ecdhe_secp256r1, "yes", "no", "dunno"},
- {"for curve SECP384r1 (RFC4492)", test_ecdhe_secp384r1, "yes", "no", "dunno"},
- {"for curve SECP521r1 (RFC4492)", test_ecdhe_secp521r1, "yes", "no", "dunno"},
+ {"for curve SECP256r1 (RFC4492)", test_ecdhe_secp256r1, "yes", "no",
+ "dunno"},
+ {"for curve SECP384r1 (RFC4492)", test_ecdhe_secp384r1, "yes", "no",
+ "dunno"},
+ {"for curve SECP521r1 (RFC4492)", test_ecdhe_secp521r1, "yes", "no",
+ "dunno"},
{"for curve X25519 (RFC8422)", test_ecdhe_x25519, "yes", "no", "dunno"},
{"for AES-GCM cipher (RFC5288) support", test_aes_gcm, "yes", "no",
"dunno"},
@@ -182,14 +197,18 @@ static const TLS_TEST tls_tests[] = {
"dunno"},
{"for AES-CBC cipher (RFC3268) support", test_aes, "yes", "no",
"dunno"},
- {"for CAMELLIA-GCM cipher (RFC6367) support", test_camellia_gcm, "yes", "no",
+ {"for CAMELLIA-GCM cipher (RFC6367) support", test_camellia_gcm, "yes",
+ "no",
+ "dunno"},
+ {"for CAMELLIA-CBC cipher (RFC5932) support", test_camellia_cbc, "yes",
+ "no",
"dunno"},
- {"for CAMELLIA-CBC cipher (RFC5932) support", test_camellia_cbc, "yes", "no",
+ {"for 3DES-CBC cipher (RFC2246) support", test_3des, "yes", "no",
"dunno"},
- {"for 3DES-CBC cipher (RFC2246) support", test_3des, "yes", "no", "dunno"},
{"for ARCFOUR 128 cipher (RFC2246) support", test_arcfour, "yes", "no",
"dunno"},
- {"for CHACHA20-POLY1305 cipher (RFC7905) support", test_chacha20, "yes", "no",
+ {"for CHACHA20-POLY1305 cipher (RFC7905) support", test_chacha20, "yes",
+ "no",
"dunno"},
#ifdef ENABLE_GOST
{"for GOST28147-CNT cipher (draft-smyshlyaev-tls12-gost-suites) support", test_gost_cnt, "yes", "no",
@@ -199,7 +218,8 @@ static const TLS_TEST tls_tests[] = {
{"for SHA1 MAC support", test_sha, "yes", "no", "dunno"},
{"for SHA256 MAC support", test_sha256, "yes", "no", "dunno"},
#ifdef ENABLE_GOST
- {"for GOST28147-IMIT MAC (draft-smyshlyaev-tls12-gost-suites) support", test_gost_imit, "yes", "no", "dunno"},
+ {"for GOST28147-IMIT MAC (draft-smyshlyaev-tls12-gost-suites) support",
+ test_gost_imit, "yes", "no", "dunno"},
#endif
{"for max record size (RFC6066) support", test_max_record_size, "yes",
"no", "dunno"},
@@ -227,7 +247,7 @@ gnutls_session_t init_tls_session(const char *host)
int do_handshake(socket_st * socket)
{
- return 0; /* we do it locally */
+ return 0; /* we do it locally */
}
int main(int argc, char **argv)
@@ -281,11 +301,13 @@ int main(int argc, char **argv)
#endif
if (HAVE_OPT(STARTTLS_PROTO)) {
- snprintf(app_proto, sizeof(app_proto), "%s", OPT_ARG(STARTTLS_PROTO));
+ snprintf(app_proto, sizeof(app_proto), "%s",
+ OPT_ARG(STARTTLS_PROTO));
}
if (app_proto[0] == 0) {
- snprintf(app_proto, sizeof(app_proto), "%s", port_to_service(portname, "tcp"));
+ snprintf(app_proto, sizeof(app_proto), "%s",
+ port_to_service(portname, "tcp"));
}
sockets_init();
@@ -295,16 +317,17 @@ int main(int argc, char **argv)
canonicalize_host(hostname, portname, sizeof(portname));
printf("Checking %s:%s\n", hostname, portname);
- for (i = 0;
- tls_tests[i].test_name != NULL;
- i++) {
+ for (i = 0; tls_tests[i].test_name != NULL; i++) {
- if (strcmp(app_proto, "https") != 0 && tls_tests[i].https_only != 0) {
+ if (strcmp(app_proto, "https") != 0
+ && tls_tests[i].https_only != 0) {
continue;
}
if (!socket_opened) {
- socket_open(&hd, hostname, portname, app_proto, SOCKET_FLAG_STARTTLS|SOCKET_FLAG_RAW, NULL, NULL);
+ socket_open(&hd, hostname, portname, app_proto,
+ SOCKET_FLAG_STARTTLS | SOCKET_FLAG_RAW,
+ NULL, NULL);
hd.verbose = verbose;
socket_opened = true;
}
diff --git a/src/cli.c b/src/cli.c
index 1af329fadc..3579e1a73a 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -29,9 +29,9 @@
#include <sys/time.h>
#include <sys/stat.h>
#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
+# include <sys/socket.h>
#elif HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
+# include <ws2tcpip.h>
#endif
#include <sys/select.h>
#include <unistd.h>
@@ -44,7 +44,7 @@
/* Get TCP_FASTOPEN */
#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
+# include <netinet/tcp.h>
#endif
#include <gnutls/gnutls.h>
@@ -65,7 +65,7 @@
#include "inline_cmds.h"
#ifdef HAVE_DANE
-#include <gnutls/dane.h>
+# include <gnutls/dane.h>
#endif
#include <common.h>
@@ -86,7 +86,7 @@ int resume, starttls, insecure, ranges, rehandshake, udp, mtu,
inline_commands, waitresumption;
unsigned int global_vflags = 0;
char *hostname = NULL;
-char service[32]="";
+char service[32] = "";
int record_max_size;
int crlf;
int fastopen;
@@ -123,11 +123,12 @@ static gnutls_certificate_credentials_t xcred;
static void check_server_cmd(socket_st * socket, int ret);
static void init_global_tls_stuff(void);
static int cert_verify_ocsp(gnutls_session_t session);
-static const char *host_from_url(const char *url, unsigned int *port, const char **path);
+static const char *host_from_url(const char *url, unsigned int *port,
+ const char **path);
static size_t get_data(void *buf, size_t size, size_t nmemb, void *userp);
static int getissuer_callback(const gnutls_x509_trust_list_t tlist,
const gnutls_x509_crt_t cert,
- gnutls_x509_crt_t **issuers,
+ gnutls_x509_crt_t ** issuers,
unsigned int *issuers_size);
#define MAX_CRT 6
@@ -137,10 +138,9 @@ static gnutls_privkey_t x509_key = NULL;
static gnutls_pcert_st rawpk;
static gnutls_privkey_t rawpk_key = NULL;
-
/* Load a PKCS #8, PKCS #12 private key or PKCS #11 URL
*/
-static void load_priv_key(gnutls_privkey_t* privkey, const char* key_source)
+static void load_priv_key(gnutls_privkey_t * privkey, const char *key_source)
{
int ret;
gnutls_datum_t data = { NULL, 0 };
@@ -153,8 +153,7 @@ static void load_priv_key(gnutls_privkey_t* privkey, const char* key_source)
exit(1);
}
- gnutls_privkey_set_pin_function(*privkey, pin_callback,
- NULL);
+ gnutls_privkey_set_pin_function(*privkey, pin_callback, NULL);
if (gnutls_url_is_supported(key_source) != 0) {
ret = gnutls_privkey_import_url(*privkey, key_source, 0);
@@ -167,13 +166,12 @@ static void load_priv_key(gnutls_privkey_t* privkey, const char* key_source)
} else {
ret = gnutls_load_file(key_source, &data);
if (ret < 0) {
- fprintf(stderr,
- "*** Error loading key file.\n");
+ fprintf(stderr, "*** Error loading key file.\n");
exit(1);
}
ret = gnutls_privkey_import_x509_raw(*privkey, &data,
- x509ctype, NULL, 0);
+ x509ctype, NULL, 0);
if (ret < 0) {
fprintf(stderr,
"*** Error importing key: %s\n",
@@ -205,13 +203,11 @@ static void load_x509_keys(void)
exit(1);
}
gnutls_x509_crt_set_pin_function(crt_list[0],
- pin_callback,
- NULL);
+ pin_callback, NULL);
ret =
gnutls_x509_crt_import_pkcs11_url(crt_list[0],
- x509_certfile,
- 0);
+ x509_certfile, 0);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
ret =
@@ -291,16 +287,17 @@ static void load_rawpk_keys(void)
// First we load the raw public key
ret = gnutls_load_file(rawpk_file, &data);
if (ret < 0) {
- fprintf(stderr,
- "*** Error loading cert file.\n");
+ fprintf(stderr, "*** Error loading cert file.\n");
exit(1);
}
- ret = gnutls_pcert_import_rawpk_raw(&rawpk, &data, x509ctype, 0, 0);
+ ret =
+ gnutls_pcert_import_rawpk_raw(&rawpk, &data, x509ctype, 0,
+ 0);
if (ret < 0) {
fprintf(stderr,
- "*** Error importing rawpk to pcert: %s\n",
- gnutls_strerror(ret));
+ "*** Error importing rawpk to pcert: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -310,7 +307,7 @@ static void load_rawpk_keys(void)
load_priv_key(&rawpk_key, rawpk_keyfile);
log_msg(stdout,
- "Processed %d client raw public key pair...\n", 1);
+ "Processed %d client raw public key pair...\n", 1);
}
}
@@ -353,8 +350,10 @@ static void try_save_cert(gnutls_session_t session)
exit(1);
}
- for (i=0;i<cert_list_size;i++) {
- ret = gnutls_pem_base64_encode_alloc("CERTIFICATE", &cert_list[i], &t);
+ for (i = 0; i < cert_list_size; i++) {
+ ret =
+ gnutls_pem_base64_encode_alloc("CERTIFICATE", &cert_list[i],
+ &t);
if (ret < 0) {
fprintf(stderr, "error[%d]: %s\n", __LINE__,
gnutls_strerror(ret));
@@ -374,7 +373,8 @@ static void try_save_ocsp_status(gnutls_session_t session)
unsigned int cert_num = 0;
gnutls_certificate_get_peers(session, &cert_num);
if (cert_num == 0) {
- fprintf(stderr, "no certificates sent by server, so can't get OCSP status!\n");
+ fprintf(stderr,
+ "no certificates sent by server, so can't get OCSP status!\n");
return;
}
@@ -384,8 +384,7 @@ static void try_save_ocsp_status(gnutls_session_t session)
/* This function is called if exactly one of SAVE_OCSP and
* SAVE_OCSP_MULTI is set. */
- if (HAVE_OPT(SAVE_OCSP))
- {
+ if (HAVE_OPT(SAVE_OCSP)) {
path = OPT_ARG(SAVE_OCSP);
type = GNUTLS_X509_FMT_DER;
max_out = 1;
@@ -405,11 +404,12 @@ static void try_save_ocsp_status(gnutls_session_t session)
gnutls_datum_t oresp;
int ret = gnutls_ocsp_status_request_get2(session, i, &oresp);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
- fprintf(stderr, "no OCSP response for certificate %u\n", i);
+ fprintf(stderr, "no OCSP response for certificate %u\n",
+ i);
continue;
} else if (ret < 0) {
fprintf(stderr, "error getting OCSP response %u: %s\n",
- i, gnutls_strerror(ret));
+ i, gnutls_strerror(ret));
exit(1);
}
@@ -425,10 +425,11 @@ static void try_save_ocsp_status(gnutls_session_t session)
gnutls_datum_t t;
ret = gnutls_pem_base64_encode_alloc("OCSP RESPONSE",
- &oresp, &t);
+ &oresp, &t);
if (ret < 0) {
- fprintf(stderr, "error allocating PEM OCSP response: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr,
+ "error allocating PEM OCSP response: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -468,7 +469,7 @@ static int cert_verify_callback(gnutls_session_t session)
if (HAVE_OPT(VERIFY_HOSTNAME)) {
host = OPT_ARG(VERIFY_HOSTNAME);
- canonicalize_host((char *) host, NULL, 0);
+ canonicalize_host((char *)host, NULL, 0);
} else
host = hostname;
@@ -493,7 +494,8 @@ static int cert_verify_callback(gnutls_session_t session)
rc = cert_verify(session, host, GNUTLS_KP_TLS_WWW_SERVER);
if (rc == 0) {
log_msg
- (stdout, "*** PKI verification of server certificate failed...\n");
+ (stdout,
+ "*** PKI verification of server certificate failed...\n");
if (!insecure && !ssh)
return -1;
}
@@ -502,13 +504,17 @@ static int cert_verify_callback(gnutls_session_t session)
rc = cert_verify_ocsp(session);
if (rc == -1) {
log_msg
- (stdout, "*** Verifying (with OCSP) server certificate chain failed...\n");
+ (stdout,
+ "*** Verifying (with OCSP) server certificate chain failed...\n");
if (!insecure && !ssh)
return -1;
} else if (rc == 0)
- log_msg(stdout, "*** OCSP: nothing to check.\n");
+ log_msg(stdout,
+ "*** OCSP: nothing to check.\n");
else
- log_msg(stdout, "*** OCSP: verified %d certificate(s).\n", rc);
+ log_msg(stdout,
+ "*** OCSP: verified %d certificate(s).\n",
+ rc);
}
#endif
}
@@ -518,15 +524,14 @@ static int cert_verify_callback(gnutls_session_t session)
int port;
unsigned vflags = 0;
unsigned int sflags =
- ENABLED_OPT(LOCAL_DNS) ? 0 :
- DANE_F_IGNORE_LOCAL_RESOLVER;
+ ENABLED_OPT(LOCAL_DNS) ? 0 : DANE_F_IGNORE_LOCAL_RESOLVER;
/* if we didn't verify the chain it only makes sense
* to check the end certificate using dane. */
if (ca_verify == 0)
vflags |= DANE_VFLAG_ONLY_CHECK_EE_USAGE;
- port = service_to_port(service, udp?"udp":"tcp");
+ port = service_to_port(service, udp ? "udp" : "tcp");
rc = dane_verify_session_crt(NULL, session, host,
udp ? "udp" : "tcp", port,
sflags, vflags, &status);
@@ -539,8 +544,7 @@ static int cert_verify_callback(gnutls_session_t session)
} else {
gnutls_datum_t out;
- rc = dane_verification_status_print(status, &out,
- 0);
+ rc = dane_verification_status_print(status, &out, 0);
if (rc < 0) {
fprintf(stderr, "*** DANE error: %s\n",
dane_strerror(rc));
@@ -553,7 +557,8 @@ static int cert_verify_callback(gnutls_session_t session)
return -1;
}
#else
- fprintf(stderr, "*** DANE error: GnuTLS is not compiled with DANE support.\n");
+ fprintf(stderr,
+ "*** DANE error: GnuTLS is not compiled with DANE support.\n");
if (!insecure && !ssh)
return -1;
#endif
@@ -565,12 +570,11 @@ static int cert_verify_callback(gnutls_session_t session)
cert = gnutls_certificate_get_peers(session, &list_size);
if (cert == NULL) {
- fprintf(stderr,
- "Cannot obtain peer's certificate!\n");
+ fprintf(stderr, "Cannot obtain peer's certificate!\n");
return -1;
}
- txt_service = port_to_service(service, udp?"udp":"tcp");
+ txt_service = port_to_service(service, udp ? "udp" : "tcp");
rc = gnutls_verify_stored_pubkey(NULL, NULL, host,
txt_service,
@@ -606,7 +610,7 @@ static int cert_verify_callback(gnutls_session_t session)
return -1;
rc = read_yesno
- ("Do you trust the received key? (y/N): ");
+ ("Do you trust the received key? (y/N): ");
if (rc == 0)
return -1;
} else if (rc < 0) {
@@ -619,8 +623,7 @@ static int cert_verify_callback(gnutls_session_t session)
if (rc != 0) {
rc = gnutls_store_pubkey(NULL, NULL, host,
txt_service,
- GNUTLS_CRT_X509, cert, 0,
- 0);
+ GNUTLS_CRT_X509, cert, 0, 0);
if (rc < 0)
fprintf(stderr,
"Could not store key: %s\n",
@@ -653,7 +656,8 @@ cert_callback(gnutls_session_t session,
log_msg(stdout, "- Server's trusted authorities:\n");
else
log_msg
- (stdout, "- Server did not send us any trusted authorities names.\n");
+ (stdout,
+ "- Server did not send us any trusted authorities names.\n");
/* print the names (if any) */
for (i = 0; i < nreqs; i++) {
@@ -678,39 +682,42 @@ cert_callback(gnutls_session_t session,
*pcert_length = 0;
switch (cert_type) {
- case GNUTLS_CRT_X509:
- if (x509_crt_size > 0) {
- if (x509_key != NULL) {
- *pkey = x509_key;
- } else {
- log_msg
- (stdout, "- Could not find a suitable key to send to server\n");
- return -1;
- }
-
- *pcert_length = x509_crt_size;
- *pcert = x509_crt;
- }
- break;
- case GNUTLS_CRT_RAWPK:
- if (rawpk_key == NULL || rawpk.type != GNUTLS_CRT_RAWPK) {
+ case GNUTLS_CRT_X509:
+ if (x509_crt_size > 0) {
+ if (x509_key != NULL) {
+ *pkey = x509_key;
+ } else {
log_msg
- (stdout, "- Could not find a suitable key to send to server\n");
+ (stdout,
+ "- Could not find a suitable key to send to server\n");
return -1;
}
- *pkey = rawpk_key;
- *pcert = &rawpk;
- *pcert_length = 1;
- break;
- default:
- log_msg(stdout, "- Could not retrieve unsupported certificate type %s.\n",
- gnutls_certificate_type_get_name(cert_type));
- return -1;
+ *pcert_length = x509_crt_size;
+ *pcert = x509_crt;
+ }
+ break;
+ case GNUTLS_CRT_RAWPK:
+ if (rawpk_key == NULL || rawpk.type != GNUTLS_CRT_RAWPK) {
+ log_msg
+ (stdout,
+ "- Could not find a suitable key to send to server\n");
+ return -1;
+ }
+
+ *pkey = rawpk_key;
+ *pcert = &rawpk;
+ *pcert_length = 1;
+ break;
+ default:
+ log_msg(stdout,
+ "- Could not retrieve unsupported certificate type %s.\n",
+ gnutls_certificate_type_get_name(cert_type));
+ return -1;
}
log_msg(stdout, "- Successfully sent %u certificate(s) to server.\n",
- *pcert_length);
+ *pcert_length);
return 0;
}
@@ -735,7 +742,7 @@ gnutls_session_t init_tls_session(const char *host)
ret = gnutls_set_default_priority(session);
if (ret < 0) {
fprintf(stderr, "Error in setting priorities: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
exit(1);
}
} else {
@@ -756,8 +763,9 @@ gnutls_session_t init_tls_session(const char *host)
if (HAVE_OPT(SNI_HOSTNAME)) {
const char *sni_host = OPT_ARG(SNI_HOSTNAME);
- canonicalize_host((char *) sni_host, NULL, 0);
- gnutls_server_name_set(session, GNUTLS_NAME_DNS, sni_host, strlen(sni_host));
+ canonicalize_host((char *)sni_host, NULL, 0);
+ gnutls_server_name_set(session, GNUTLS_NAME_DNS,
+ sni_host, strlen(sni_host));
} else if (host != NULL && is_ip(host) == 0)
gnutls_server_name_set(session, GNUTLS_NAME_DNS,
host, strlen(host));
@@ -772,24 +780,24 @@ gnutls_session_t init_tls_session(const char *host)
#endif
}
-
if (HAVE_OPT(ALPN)) {
#ifndef ENABLE_ALPN
fprintf(stderr, "ALPN is not supported\n");
exit(1);
#else
unsigned proto_n = STACKCT_OPT(ALPN);
- char **protos = (void *) STACKLST_OPT(ALPN);
+ char **protos = (void *)STACKLST_OPT(ALPN);
if (proto_n > 1024) {
- fprintf(stderr, "Number of ALPN protocols too large (%d)\n",
- proto_n);
+ fprintf(stderr,
+ "Number of ALPN protocols too large (%d)\n",
+ proto_n);
exit(1);
}
gnutls_datum_t p[1024];
for (i = 0; i < proto_n; i++) {
- p[i].data = (void *) protos[i];
+ p[i].data = (void *)protos[i];
p[i].size = strlen(protos[i]);
}
gnutls_alpn_set_protocols(session, p, proto_n, 0);
@@ -804,13 +812,11 @@ gnutls_session_t init_tls_session(const char *host)
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
gnutls_certificate_set_retrieve_function2(xcred, cert_callback);
- gnutls_certificate_set_verify_function(xcred,
- cert_verify_callback);
+ gnutls_certificate_set_verify_function(xcred, cert_verify_callback);
/* use the max record size extension */
if (record_max_size > 0 && disable_extensions == 0) {
- if (gnutls_record_set_max_size(session, record_max_size) <
- 0) {
+ if (gnutls_record_set_max_size(session, record_max_size) < 0) {
fprintf(stderr,
"Cannot set the maximum record size to %d.\n",
record_max_size);
@@ -843,14 +849,15 @@ gnutls_session_t init_tls_session(const char *host)
else if (ret != 0)
fprintf(stderr, "Error in profiles: %s\n",
gnutls_strerror(ret));
- else fprintf(stderr,"DTLS profile set to %s\n",
- OPT_ARG(SRTP_PROFILES));
+ else
+ fprintf(stderr, "DTLS profile set to %s\n",
+ OPT_ARG(SRTP_PROFILES));
- if (ret != 0) exit(1);
+ if (ret != 0)
+ exit(1);
}
#endif
-
return session;
}
@@ -863,8 +870,7 @@ static int handle_error(socket_st * hd, int err)
int alert, ret;
const char *err_type, *str;
- if (err >= 0 || err == GNUTLS_E_AGAIN
- || err == GNUTLS_E_INTERRUPTED)
+ if (err >= 0 || err == GNUTLS_E_AGAIN || err == GNUTLS_E_INTERRUPTED)
return 0;
if (gnutls_error_is_fatal(err) == 0) {
@@ -992,11 +998,14 @@ static int try_rekey(socket_st * hd, unsigned peer)
int ret;
do {
- ret = gnutls_session_key_update(hd->session, peer?GNUTLS_KU_PEER:0);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ ret =
+ gnutls_session_key_update(hd->session,
+ peer ? GNUTLS_KU_PEER : 0);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
- fprintf(stderr, "*** Rekey has failed: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "*** Rekey has failed: %s\n",
+ gnutls_strerror(ret));
return ret;
} else {
log_msg(stdout, "- Rekey was completed\n");
@@ -1007,8 +1016,8 @@ static int try_rekey(socket_st * hd, unsigned peer)
static int try_resume(socket_st * hd)
{
int ret, socket_flags = SOCKET_FLAG_DONT_PRINT_ERRORS;
- gnutls_datum_t rdata = {NULL, 0};
- gnutls_datum_t edata = {NULL, 0};
+ gnutls_datum_t rdata = { NULL, 0 };
+ gnutls_datum_t edata = { NULL, 0 };
if (gnutls_session_is_resumed(hd->session) == 0) {
do {
@@ -1018,9 +1027,11 @@ static int try_resume(socket_st * hd)
rdata.data = NULL;
}
- if ((gnutls_protocol_get_version(hd->session) != GNUTLS_TLS1_3) ||
- ((gnutls_session_get_flags(hd->session) &
- GNUTLS_SFLAGS_SESSION_TICKET))) {
+ if ((gnutls_protocol_get_version(hd->session) !=
+ GNUTLS_TLS1_3)
+ ||
+ ((gnutls_session_get_flags(hd->session) &
+ GNUTLS_SFLAGS_SESSION_TICKET))) {
break;
}
} while (waitresumption);
@@ -1037,7 +1048,8 @@ static int try_resume(socket_st * hd)
canonicalize_host(hostname, service, sizeof(service));
log_msg
- (stdout, "\n\n- Connecting again- trying to resume previous session\n");
+ (stdout,
+ "\n\n- Connecting again- trying to resume previous session\n");
if (HAVE_OPT(STARTTLS_PROTO))
socket_flags |= SOCKET_FLAG_STARTTLS;
else if (fastopen)
@@ -1052,10 +1064,11 @@ static int try_resume(socket_st * hd)
fp = fopen(OPT_ARG(EARLYDATA), "r");
if (fp == NULL) {
- fprintf(stderr, "could not open %s\n", OPT_ARG(EARLYDATA));
+ fprintf(stderr, "could not open %s\n",
+ OPT_ARG(EARLYDATA));
exit(1);
}
- edata.data = (void *) fread_file(fp, 0, &size);
+ edata.data = (void *)fread_file(fp, 0, &size);
edata.size = size;
fclose(fp);
}
@@ -1085,14 +1098,12 @@ bool parse_for_inline_commands_in_buffer(char *buffer, size_t bytes,
if (inline_cmds->bytes_copied) {
local_buffer_ptr =
- &inline_cmds->inline_cmd_buffer[inline_cmds->
- bytes_copied];
+ &inline_cmds->inline_cmd_buffer[inline_cmds->bytes_copied];
local_bytes =
((inline_cmds->bytes_copied + bytes) <=
MAX_INLINE_COMMAND_BYTES) ? (ssize_t) bytes
- : (MAX_INLINE_COMMAND_BYTES -
- inline_cmds->bytes_copied);
+ : (MAX_INLINE_COMMAND_BYTES - inline_cmds->bytes_copied);
memcpy(local_buffer_ptr, buffer, local_bytes);
prev_bytes_copied = inline_cmds->bytes_copied;
@@ -1119,8 +1130,7 @@ bool parse_for_inline_commands_in_buffer(char *buffer, size_t bytes,
inline_commands_def[jj].string);
inline_command_string[strlen
(inline_commands_def
- [jj].string)] =
- '\0';
+ [jj].string)] = '\0';
inline_command_string[0] =
inline_commands_prefix[0];
/* Inline commands are delimited by the inline_commands_prefix[0] (default is ^).
@@ -1135,20 +1145,17 @@ bool parse_for_inline_commands_in_buffer(char *buffer, size_t bytes,
l = strlen(ptr);
match_bytes = (local_bytes <= l) ? local_bytes : l;
- if (strncmp(ptr, local_buffer_ptr, match_bytes) ==
- 0) {
+ if (strncmp(ptr, local_buffer_ptr, match_bytes) == 0) {
if (match_bytes == (ssize_t) strlen(ptr)) {
inline_cmds->new_buffer_ptr =
buffer + match_bytes -
prev_bytes_copied;
inline_cmds->cmd_found =
- inline_commands_def[jj].
- command;
+ inline_commands_def[jj].command;
inline_cmds->bytes_copied = 0; /* reset it */
} else {
/* partial command */
- memcpy(&inline_cmds->
- inline_cmd_buffer
+ memcpy(&inline_cmds->inline_cmd_buffer
[inline_cmds->bytes_copied],
buffer, bytes);
inline_cmds->bytes_copied += bytes;
@@ -1200,21 +1207,19 @@ int run_inline_command(inline_cmds_st * cmd, socket_st * hd)
static
int do_inline_command_processing(char *buffer_ptr, size_t curr_bytes,
- socket_st * hd,
- inline_cmds_st * inline_cmds)
+ socket_st * hd, inline_cmds_st * inline_cmds)
{
int skip_bytes, bytes;
bool inline_cmd_start_found;
bytes = curr_bytes;
- continue_inline_processing:
+ continue_inline_processing:
/* parse_for_inline_commands_in_buffer hunts for start of an inline command
* sequence. The function maintains state information in inline_cmds.
*/
inline_cmd_start_found =
- parse_for_inline_commands_in_buffer(buffer_ptr, bytes,
- inline_cmds);
+ parse_for_inline_commands_in_buffer(buffer_ptr, bytes, inline_cmds);
if (!inline_cmd_start_found)
return bytes;
@@ -1246,15 +1251,14 @@ int do_inline_command_processing(char *buffer_ptr, size_t curr_bytes,
}
}
-static void
-print_other_info(gnutls_session_t session)
+static void print_other_info(gnutls_session_t session)
{
#ifdef ENABLE_OCSP
int ret;
unsigned i;
unsigned int list_size;
gnutls_datum_t oresp;
- const gnutls_datum_t * peers;
+ const gnutls_datum_t *peers;
peers = gnutls_certificate_get_peers(session, &list_size);
@@ -1291,11 +1295,10 @@ print_other_info(gnutls_session_t session)
flag = GNUTLS_OCSP_PRINT_FULL;
else
flag = GNUTLS_OCSP_PRINT_COMPACT;
- ret =
- gnutls_ocsp_resp_print(r, flag, &p);
+ ret = gnutls_ocsp_resp_print(r, flag, &p);
gnutls_ocsp_resp_deinit(r);
- if (ret>=0) {
- log_msg(stdout, "%s", (char*) p.data);
+ if (ret >= 0) {
+ log_msg(stdout, "%s", (char *)p.data);
gnutls_free(p.data);
}
}
@@ -1325,7 +1328,8 @@ int main(int argc, char **argv)
if (HAVE_OPT(LOGFILE)) {
logfile = fopen(OPT_ARG(LOGFILE), "w+");
if (!logfile) {
- log_msg(stderr, "Unable to open '%s'!\n", OPT_ARG(LOGFILE));
+ log_msg(stderr, "Unable to open '%s'!\n",
+ OPT_ARG(LOGFILE));
exit(1);
}
log_set(logfile);
@@ -1427,8 +1431,7 @@ int main(int argc, char **argv)
fprintf(stderr, "*** Starting TLS handshake\n");
ret = do_handshake(&hd);
if (ret < 0) {
- fprintf(stderr,
- "*** Handshake has failed\n");
+ fprintf(stderr, "*** Handshake has failed\n");
retval = 1;
break;
}
@@ -1442,9 +1445,11 @@ int main(int argc, char **argv)
memset(buffer, 0, MAX_BUF + 1);
ret = socket_recv(&hd, buffer, MAX_BUF);
- if (ret == 0 || (ret == GNUTLS_E_PREMATURE_TERMINATION && user_term)) {
- log_msg
- (stdout, "- Peer has closed the GnuTLS connection\n");
+ if (ret == 0
+ || (ret == GNUTLS_E_PREMATURE_TERMINATION
+ && user_term)) {
+ log_msg(stdout,
+ "- Peer has closed the GnuTLS connection\n");
break;
} else if (handle_error(&hd, ret) < 0) {
fprintf(stderr,
@@ -1453,7 +1458,8 @@ int main(int argc, char **argv)
break;
} else if (ret > 0) {
if (verbose != 0)
- log_msg(stdout, "- Received[%d]: ", ret);
+ log_msg(stdout, "- Received[%d]: ",
+ ret);
for (ii = 0; ii < ret; ii++) {
fputc(buffer[ii], stdout);
}
@@ -1463,8 +1469,7 @@ int main(int argc, char **argv)
if (inp == IN_KEYBOARD && user_term == 0) {
if ((bytes =
- read(fileno(stdin), buffer,
- MAX_BUF - 1)) <= 0) {
+ read(fileno(stdin), buffer, MAX_BUF - 1)) <= 0) {
if (hd.secure == 0) {
/* Warning! Do not touch this text string, it is
used by external programs to search for when
@@ -1481,9 +1486,11 @@ int main(int argc, char **argv)
}
} else {
do {
- ret = gnutls_bye(hd.session, GNUTLS_SHUT_WR);
- } while (ret == GNUTLS_E_INTERRUPTED ||
- ret == GNUTLS_E_AGAIN);
+ ret =
+ gnutls_bye(hd.session,
+ GNUTLS_SHUT_WR);
+ } while (ret == GNUTLS_E_INTERRUPTED
+ || ret == GNUTLS_E_AGAIN);
user_term = 1;
}
@@ -1502,7 +1509,7 @@ int main(int argc, char **argv)
keyboard_bytes = bytes;
keyboard_buffer_ptr = buffer;
- inline_command_processing:
+ inline_command_processing:
if (inline_commands) {
keyboard_bytes =
@@ -1524,8 +1531,7 @@ int main(int argc, char **argv)
}
if (ranges
- && gnutls_record_can_use_length_hiding(hd.
- session))
+ && gnutls_record_can_use_length_hiding(hd.session))
{
gnutls_range_st range;
range.low = 0;
@@ -1533,8 +1539,7 @@ int main(int argc, char **argv)
ret =
socket_send_range(&hd,
keyboard_buffer_ptr,
- keyboard_bytes,
- &range);
+ keyboard_bytes, &range);
} else {
ret =
socket_send(&hd, keyboard_buffer_ptr,
@@ -1543,13 +1548,13 @@ int main(int argc, char **argv)
if (ret > 0) {
if (verbose != 0)
- log_msg(stdout, "- Sent: %d bytes\n", ret);
+ log_msg(stdout, "- Sent: %d bytes\n",
+ ret);
} else
handle_error(&hd, ret);
if (inline_commands &&
- inline_cmds.new_buffer_ptr < (buffer + bytes))
- {
+ inline_cmds.new_buffer_ptr < (buffer + bytes)) {
keyboard_buffer_ptr =
inline_cmds.new_buffer_ptr;
keyboard_bytes =
@@ -1593,11 +1598,14 @@ void print_priority_list(void)
const char *str;
unsigned int lineb = 0;
- log_msg(stdout, "Priority strings in GnuTLS %s:\n", gnutls_check_version(NULL));
+ log_msg(stdout, "Priority strings in GnuTLS %s:\n",
+ gnutls_check_version(NULL));
fputs("\t", stdout);
- for (idx=0;;idx++) {
- str = gnutls_priority_string_list(idx, GNUTLS_PRIORITY_LIST_INIT_KEYWORDS);
+ for (idx = 0;; idx++) {
+ str =
+ gnutls_priority_string_list(idx,
+ GNUTLS_PRIORITY_LIST_INIT_KEYWORDS);
if (str == NULL)
break;
lineb += log_msg(stdout, "%s ", str);
@@ -1610,8 +1618,10 @@ void print_priority_list(void)
log_msg(stdout, "\n\nSpecial strings:\n");
lineb = 0;
fputs("\t", stdout);
- for (idx=0;;idx++) {
- str = gnutls_priority_string_list(idx, GNUTLS_PRIORITY_LIST_SPECIAL);
+ for (idx = 0;; idx++) {
+ str =
+ gnutls_priority_string_list(idx,
+ GNUTLS_PRIORITY_LIST_SPECIAL);
if (str == NULL)
break;
if (str[0] == 0)
@@ -1638,7 +1648,6 @@ static void cmd_parser(int argc, char **argv)
if (rest == NULL && argc > 0)
rest = argv[0];
-
if (HAVE_OPT(FIPS140_MODE)) {
if (gnutls_fips140_mode_enabled() != 0) {
fprintf(stderr, "library is in FIPS140-2 mode\n");
@@ -1654,7 +1663,8 @@ static void cmd_parser(int argc, char **argv)
for (p = gnutls_get_library_config(); p->name; p++) {
log_msg(stdout, "%s: %s\n", p->name, p->value);
}
- log_msg(stdout, "system-config: %s\n", gnutls_get_system_config_file());
+ log_msg(stdout, "system-config: %s\n",
+ gnutls_get_system_config_file());
exit(0);
}
@@ -1711,7 +1721,7 @@ static void cmd_parser(int argc, char **argv)
exit(1);
}
inline_commands_prefix =
- (char *) OPT_ARG(INLINE_COMMANDS_PREFIX);
+ (char *)OPT_ARG(INLINE_COMMANDS_PREFIX);
if (!isascii(inline_commands_prefix[0])) {
fprintf(stderr,
"inline-commands-prefix value is a single US-ASCII character (octets 0 - 127)\n");
@@ -1738,7 +1748,9 @@ static void cmd_parser(int argc, char **argv)
snprintf(service, sizeof(service), "%s", OPT_ARG(PORT));
} else {
if (HAVE_OPT(STARTTLS_PROTO))
- snprintf(service, sizeof(service), "%s", starttls_proto_to_service(OPT_ARG(STARTTLS_PROTO)));
+ snprintf(service, sizeof(service), "%s",
+ starttls_proto_to_service(OPT_ARG
+ (STARTTLS_PROTO)));
else
strcpy(service, "443");
}
@@ -1778,7 +1790,7 @@ static void cmd_parser(int argc, char **argv)
psk_username = OPT_ARG(PSKUSERNAME);
if (HAVE_OPT(PSKKEY)) {
- psk_key.data = (unsigned char *) OPT_ARG(PSKKEY);
+ psk_key.data = (unsigned char *)OPT_ARG(PSKKEY);
psk_key.size = strlen(OPT_ARG(PSKKEY));
} else
psk_key.size = 0;
@@ -1789,7 +1801,8 @@ static void cmd_parser(int argc, char **argv)
fastopen = HAVE_OPT(FASTOPEN);
#else
if (HAVE_OPT(FASTOPEN)) {
- fprintf(stderr, "Warning: TCP Fast Open not supported on this OS\n");
+ fprintf(stderr,
+ "Warning: TCP Fast Open not supported on this OS\n");
}
#endif
@@ -1817,9 +1830,11 @@ static void check_server_cmd(socket_st * socket, int ret)
ret = do_handshake(socket);
if (ret == 0) {
- log_msg(stdout, "*** Rehandshake was performed.\n");
+ log_msg(stdout,
+ "*** Rehandshake was performed.\n");
} else {
- log_msg(stdout, "*** Rehandshake Failed: %s\n", gnutls_strerror(ret));
+ log_msg(stdout, "*** Rehandshake Failed: %s\n",
+ gnutls_strerror(ret));
}
} else if (ret == GNUTLS_E_REAUTH_REQUEST) {
do {
@@ -1829,20 +1844,21 @@ static void check_server_cmd(socket_st * socket, int ret)
if (ret == 0) {
log_msg(stdout, "*** Re-auth was performed.\n");
} else {
- log_msg(stdout, "*** Re-auth failed: %s\n", gnutls_strerror(ret));
+ log_msg(stdout, "*** Re-auth failed: %s\n",
+ gnutls_strerror(ret));
}
}
}
}
-
int do_handshake(socket_st * socket)
{
int ret;
if (fastopen && socket->connect_addrlen) {
gnutls_transport_set_fastopen(socket->session, socket->fd,
- (struct sockaddr*)&socket->connect_addr,
+ (struct sockaddr *)
+ &socket->connect_addr,
socket->connect_addrlen, 0);
socket->connect_addrlen = 0;
} else {
@@ -1862,7 +1878,8 @@ int do_handshake(socket_st * socket)
if (ret == 0) {
/* print some information */
- print_info(socket->session, verbose, HAVE_OPT(X509CERTFILE)?P_WAIT_FOR_CERT:0);
+ print_info(socket->session, verbose,
+ HAVE_OPT(X509CERTFILE) ? P_WAIT_FOR_CERT : 0);
if (HAVE_OPT(KEYMATEXPORT))
print_key_material(socket->session,
OPT_ARG(KEYMATEXPORT),
@@ -1893,8 +1910,7 @@ srp_username_callback(gnutls_session_t session,
#endif
static int
-psk_callback(gnutls_session_t session, char **username,
- gnutls_datum_t * key)
+psk_callback(gnutls_session_t session, char **username, gnutls_datum_t * key)
{
const char *hint = gnutls_psk_client_get_hint(session);
char *rawkey;
@@ -1920,8 +1936,7 @@ psk_callback(gnutls_session_t session, char **username,
ret = getline(&p, &n, stdin);
if (ret == -1 || p == NULL) {
- fprintf(stderr,
- "No username given, aborting...\n");
+ fprintf(stderr, "No username given, aborting...\n");
return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
}
@@ -1942,7 +1957,7 @@ psk_callback(gnutls_session_t session, char **username,
return GNUTLS_E_INSUFFICIENT_CREDENTIALS;
}
- tmp.data = (void *) passwd;
+ tmp.data = (void *)passwd;
tmp.size = strlen(passwd);
res_size = tmp.size / 2 + 1;
@@ -1959,7 +1974,7 @@ psk_callback(gnutls_session_t session, char **username,
return ret;
}
- key->data = (void *) rawkey;
+ key->data = (void *)rawkey;
key->size = res_size;
if (HAVE_OPT(DEBUG)) {
@@ -1967,7 +1982,8 @@ psk_callback(gnutls_session_t session, char **username,
res_size = sizeof(hexkey);
ret = gnutls_hex_encode(key, hexkey, &res_size);
if (ret < 0) {
- fprintf(stderr, "Error in hex encoding: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error in hex encoding: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
fprintf(stderr, "PSK username: %s\n", *username);
@@ -1991,8 +2007,7 @@ static void init_global_tls_stuff(void)
gnutls_strerror(ret));
else {
ret =
- gnutls_pkcs11_add_provider(OPT_ARG(PROVIDER),
- NULL);
+ gnutls_pkcs11_add_provider(OPT_ARG(PROVIDER), NULL);
if (ret < 0) {
fprintf(stderr, "pkcs11_add_provider: %s",
gnutls_strerror(ret));
@@ -2020,18 +2035,19 @@ static void init_global_tls_stuff(void)
if (x509_cafile != NULL) {
ret = gnutls_x509_trust_list_add_trust_file(tlist,
- x509_cafile,
- NULL,
- x509ctype,
- GNUTLS_TL_USE_IN_TLS,
- 0);
+ x509_cafile,
+ NULL,
+ x509ctype,
+ GNUTLS_TL_USE_IN_TLS,
+ 0);
} else {
if (insecure == 0) {
ret = gnutls_x509_trust_list_add_system_trust(tlist,
- GNUTLS_TL_USE_IN_TLS,
- 0);
+ GNUTLS_TL_USE_IN_TLS,
+ 0);
if (ret == GNUTLS_E_UNIMPLEMENTED_FEATURE) {
- fprintf(stderr, "Warning: this system doesn't support a default trust store\n");
+ fprintf(stderr,
+ "Warning: this system doesn't support a default trust store\n");
ret = 0;
}
} else {
@@ -2039,14 +2055,16 @@ static void init_global_tls_stuff(void)
}
}
if (ret < 0) {
- fprintf(stderr, "Error setting the x509 trust file: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error setting the x509 trust file: %s\n",
+ gnutls_strerror(ret));
exit(1);
} else {
log_msg(stdout, "Processed %d CA certificate(s).\n", ret);
}
if (ENABLED_OPT(CA_AUTO_RETRIEVE))
- gnutls_x509_trust_list_set_getissuer_function(tlist, getissuer_callback);
+ gnutls_x509_trust_list_set_getissuer_function(tlist,
+ getissuer_callback);
if (x509_crlfile != NULL) {
ret =
@@ -2055,7 +2073,8 @@ static void init_global_tls_stuff(void)
x509ctype);
if (ret < 0) {
fprintf(stderr,
- "Error setting the x509 CRL file: %s\n", gnutls_strerror(ret));
+ "Error setting the x509 CRL file: %s\n",
+ gnutls_strerror(ret));
exit(1);
} else {
log_msg(stdout, "Processed %d CRL(s).\n", ret);
@@ -2139,14 +2158,18 @@ static int cert_verify_ocsp(gnutls_session_t session)
ret = gnutls_x509_crt_init(&cert);
if (ret < 0) {
- fprintf(stderr, "Memory error: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Memory error: %s\n",
+ gnutls_strerror(ret));
goto cleanup;
}
deinit_cert = 1;
- ret = gnutls_x509_crt_import(cert, &cert_list[it], GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_x509_crt_import(cert, &cert_list[it],
+ GNUTLS_X509_FMT_DER);
if (ret < 0) {
- fprintf(stderr, "Decoding error: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Decoding error: %s\n",
+ gnutls_strerror(ret));
goto cleanup;
}
@@ -2159,18 +2182,23 @@ static int cert_verify_ocsp(gnutls_session_t session)
if (ret < 0 && cert_list_size - it > 1) {
ret = gnutls_x509_crt_init(&issuer);
if (ret < 0) {
- fprintf(stderr, "Memory error: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Memory error: %s\n",
+ gnutls_strerror(ret));
goto cleanup;
}
deinit_issuer = 1;
- ret = gnutls_x509_crt_import(issuer, &cert_list[it + 1], GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_x509_crt_import(issuer, &cert_list[it + 1],
+ GNUTLS_X509_FMT_DER);
if (ret < 0) {
- fprintf(stderr, "Decoding error: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Decoding error: %s\n",
+ gnutls_strerror(ret));
goto cleanup;
}
} else if (ret < 0) {
if (it == 0)
- fprintf(stderr, "Cannot find issuer: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Cannot find issuer: %s\n",
+ gnutls_strerror(ret));
goto cleanup;
}
@@ -2200,7 +2228,7 @@ static int cert_verify_ocsp(gnutls_session_t session)
}
}
-cleanup:
+ cleanup:
if (deinit_issuer)
gnutls_x509_crt_deinit(issuer);
if (deinit_cert)
@@ -2208,12 +2236,13 @@ cleanup:
if (failed > 0)
return -1;
- return ok >= 1 ? (int) ok : -1;
+ return ok >= 1 ? (int)ok : -1;
}
#endif
/* returns the host part of a URL */
-static const char *host_from_url(const char *url, unsigned int *port, const char **path)
+static const char *host_from_url(const char *url, unsigned int *port,
+ const char **path)
{
static char buffer[512];
char *p;
@@ -2226,7 +2255,7 @@ static const char *host_from_url(const char *url, unsigned int *port, const char
p = strchr(buffer, '/');
if (p != NULL) {
*p = 0;
- *path = p+1;
+ *path = p + 1;
}
p = strchr(buffer, ':');
@@ -2263,8 +2292,7 @@ static size_t get_data(void *buf, size_t size, size_t nmemb, void *userp)
static int
getissuer_callback(const gnutls_x509_trust_list_t tlist,
const gnutls_x509_crt_t cert,
- gnutls_x509_crt_t **issuers,
- unsigned int *issuers_size)
+ gnutls_x509_crt_t ** issuers, unsigned int *issuers_size)
{
gnutls_datum_t ud;
int ret;
@@ -2287,15 +2315,14 @@ getissuer_callback(const gnutls_x509_trust_list_t tlist,
i = 0;
do {
ret = gnutls_x509_crt_get_authority_info_access(cert, i++,
- GNUTLS_IA_CAISSUERS_URI,
- &data,
- NULL);
+ GNUTLS_IA_CAISSUERS_URI,
+ &data, NULL);
} while (ret == GNUTLS_E_UNKNOWN_ALGORITHM);
if (ret < 0) {
fprintf(stderr,
- "*** Cannot find caIssuer URI in certificate: %s\n",
- gnutls_strerror(ret));
+ "*** Cannot find caIssuer URI in certificate: %s\n",
+ gnutls_strerror(ret));
return 0;
}
@@ -2321,7 +2348,8 @@ getissuer_callback(const gnutls_x509_trust_list_t tlist,
snprintf(headers, sizeof(headers), HEADER_PATTERN, path, _hostname);
headers_size = strlen(headers);
- socket_open(&hd, _hostname, _service, NULL, SOCKET_FLAG_RAW|SOCKET_FLAG_SKIP_INIT, CONNECT_MSG, NULL);
+ socket_open(&hd, _hostname, _service, NULL,
+ SOCKET_FLAG_RAW | SOCKET_FLAG_SKIP_INIT, CONNECT_MSG, NULL);
socket_send(&hd, headers, headers_size);
do {
@@ -2365,7 +2393,7 @@ getissuer_callback(const gnutls_x509_trust_list_t tlist,
ret = 0;
-cleanup:
+ cleanup:
gnutls_free(data.data);
free(ud.data);
free(url);
diff --git a/src/common.c b/src/common.c
index b0952a5faf..73b6949279 100644
--- a/src/common.c
+++ b/src/common.c
@@ -23,7 +23,7 @@
/* Work around problem reported in
<https://permalink.gmane.org/gmane.comp.lib.gnulib.bugs/15755>.*/
#if GETTIMEOFDAY_CLOBBERS_LOCALTIME
-#undef localtime
+# undef localtime
#endif
#include <getpass.h>
@@ -41,11 +41,11 @@
#ifndef _WIN32
# include <signal.h>
#else
-#include <ws2tcpip.h>
+# include <ws2tcpip.h>
#endif
#ifdef ENABLE_PKCS11
-#include <gnutls/pkcs11.h>
+# include <gnutls/pkcs11.h>
#endif
#define SU(x) (x!=NULL?x:"Unknown")
@@ -97,7 +97,7 @@ const char *raw_to_hex(const unsigned char *raw, size_t raw_size)
const char *raw_to_base64(const unsigned char *raw, size_t raw_size)
{
static char buf[1024];
- gnutls_datum_t data = {(unsigned char*)raw, raw_size};
+ gnutls_datum_t data = { (unsigned char *)raw, raw_size };
size_t buf_size;
int ret;
@@ -115,7 +115,8 @@ const char *raw_to_base64(const unsigned char *raw, size_t raw_size)
}
static void
-print_x509_info(gnutls_session_t session, FILE *out, int flag, int print_cert, int print_crt_status)
+print_x509_info(gnutls_session_t session, FILE * out, int flag, int print_cert,
+ int print_crt_status)
{
gnutls_x509_crt_t crt;
const gnutls_datum_t *cert_list;
@@ -131,7 +132,7 @@ print_x509_info(gnutls_session_t session, FILE *out, int flag, int print_cert, i
log_msg(out, "- Certificate type: X.509\n");
log_msg(out, "- Got a certificate list of %d certificates.\n",
- cert_list_size);
+ cert_list_size);
for (j = 0; j < cert_list_size; j++) {
gnutls_datum_t cinfo;
@@ -166,14 +167,14 @@ print_x509_info(gnutls_session_t session, FILE *out, int flag, int print_cert, i
ret =
gnutls_x509_crt_export2(crt,
- GNUTLS_X509_FMT_PEM, &pem);
+ GNUTLS_X509_FMT_PEM, &pem);
if (ret < 0) {
fprintf(stderr, "Encoding error: %s\n",
gnutls_strerror(ret));
return;
}
- log_msg(out, "\n%s\n", (char*)pem.data);
+ log_msg(out, "\n%s\n", (char *)pem.data);
gnutls_free(pem.data);
}
@@ -183,7 +184,8 @@ print_x509_info(gnutls_session_t session, FILE *out, int flag, int print_cert, i
}
static void
-print_rawpk_info(gnutls_session_t session, FILE *out, int flag, int print_cert, int print_crt_status)
+print_rawpk_info(gnutls_session_t session, FILE * out, int flag, int print_cert,
+ int print_crt_status)
{
gnutls_pcert_st pk_cert;
gnutls_pk_algorithm_t pk_algo;
@@ -199,14 +201,13 @@ print_rawpk_info(gnutls_session_t session, FILE *out, int flag, int print_cert,
}
log_msg(out, "- Certificate type: Raw Public Key\n");
- log_msg(out, "- Got %d Raw public-key(s).\n",
- cert_list_size);
+ log_msg(out, "- Got %d Raw public-key(s).\n", cert_list_size);
-
- ret = gnutls_pcert_import_rawpk_raw(&pk_cert, cert_list, GNUTLS_X509_FMT_DER, 0, 0);
+ ret =
+ gnutls_pcert_import_rawpk_raw(&pk_cert, cert_list,
+ GNUTLS_X509_FMT_DER, 0, 0);
if (ret < 0) {
- fprintf(stderr, "Decoding error: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "Decoding error: %s\n", gnutls_strerror(ret));
return;
}
@@ -218,14 +219,16 @@ print_rawpk_info(gnutls_session_t session, FILE *out, int flag, int print_cert,
if (print_cert) {
gnutls_datum_t pem;
- ret = gnutls_pubkey_export2(pk_cert.pubkey, GNUTLS_X509_FMT_PEM, &pem);
+ ret =
+ gnutls_pubkey_export2(pk_cert.pubkey, GNUTLS_X509_FMT_PEM,
+ &pem);
if (ret < 0) {
fprintf(stderr, "Encoding error: %s\n",
gnutls_strerror(ret));
goto cleanup;
}
- log_msg(out, "\n%s\n", (char*)pem.data);
+ log_msg(out, "\n%s\n", (char *)pem.data);
gnutls_free(pem.data);
}
@@ -236,7 +239,8 @@ print_rawpk_info(gnutls_session_t session, FILE *out, int flag, int print_cert,
/* returns false (0) if not verified, or true (1) otherwise
*/
-int cert_verify(gnutls_session_t session, const char *hostname, const char *purpose)
+int cert_verify(gnutls_session_t session, const char *hostname,
+ const char *purpose)
{
int rc;
unsigned int status = 0;
@@ -249,13 +253,13 @@ int cert_verify(gnutls_session_t session, const char *hostname, const char *purp
if (hostname) {
data[elements].type = GNUTLS_DT_DNS_HOSTNAME;
- data[elements].data = (void*)hostname;
+ data[elements].data = (void *)hostname;
elements++;
}
if (purpose) {
data[elements].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[elements].data = (void*)purpose;
+ data[elements].data = (void *)purpose;
elements++;
}
@@ -267,7 +271,7 @@ int cert_verify(gnutls_session_t session, const char *hostname, const char *purp
if (rc < 0) {
log_msg(stdout, "- Could not verify certificate (err: %s)\n",
- gnutls_strerror(rc));
+ gnutls_strerror(rc));
return 0;
}
@@ -275,8 +279,9 @@ int cert_verify(gnutls_session_t session, const char *hostname, const char *purp
rc = gnutls_certificate_verification_status_print(status, type,
&out, 0);
if (rc < 0) {
- log_msg(stdout, "- Could not print verification flags (err: %s)\n",
- gnutls_strerror(rc));
+ log_msg(stdout,
+ "- Could not print verification flags (err: %s)\n",
+ gnutls_strerror(rc));
return 0;
}
@@ -295,8 +300,7 @@ int cert_verify(gnutls_session_t session, const char *hostname, const char *purp
/* Parse input string and set certificate compression methods */
int compress_cert_set_methods(gnutls_session_t session,
- const char **strings,
- size_t n_strings)
+ const char **strings, size_t n_strings)
{
int ret = 0;
gnutls_compression_method_t *methods;
@@ -311,7 +315,8 @@ int compress_cert_set_methods(gnutls_session_t session,
methods = reallocarray(NULL, n_strings, sizeof(*methods));
if (!methods) {
- fprintf(stderr, "Could not set certificate compression methods: %s\n",
+ fprintf(stderr,
+ "Could not set certificate compression methods: %s\n",
gnutls_strerror(ret));
return GNUTLS_E_MEMORY_ERROR;
}
@@ -325,14 +330,17 @@ int compress_cert_set_methods(gnutls_session_t session,
}
}
- ret = gnutls_compress_certificate_set_methods(session, methods, n_strings);
+ ret =
+ gnutls_compress_certificate_set_methods(session, methods,
+ n_strings);
if (ret < 0) {
- fprintf(stderr, "Could not set certificate compression methods: %s\n",
+ fprintf(stderr,
+ "Could not set certificate compression methods: %s\n",
gnutls_strerror(ret));
goto cleanup;
}
-cleanup:
+ cleanup:
free(methods);
#pragma GCC diagnostic pop
@@ -340,8 +348,7 @@ cleanup:
return ret;
}
-static void
-print_dh_info(gnutls_session_t session, const char *str, int print)
+static void print_dh_info(gnutls_session_t session, const char *str, int print)
{
#if defined(ENABLE_DHE) || defined(ENABLE_ANON)
unsigned group;
@@ -362,11 +369,11 @@ print_dh_info(gnutls_session_t session, const char *str, int print)
log_msg(stdout, "- %sDiffie-Hellman parameters\n", str);
log_msg(stdout, " - Using prime: %d bits\n",
- gnutls_dh_get_prime_bits(session));
+ gnutls_dh_get_prime_bits(session));
log_msg(stdout, " - Secret key: %d bits\n",
- gnutls_dh_get_secret_bits(session));
+ gnutls_dh_get_secret_bits(session));
log_msg(stdout, " - Peer's public key: %d bits\n",
- gnutls_dh_get_peers_public_bits(session));
+ gnutls_dh_get_peers_public_bits(session));
ret = gnutls_dh_get_group(session, &raw_gen, &raw_prime);
if (ret) {
@@ -380,22 +387,17 @@ print_dh_info(gnutls_session_t session, const char *str, int print)
goto out;
}
- ret =
- gnutls_dh_params_import_raw(dh_params, &raw_prime,
- &raw_gen);
+ ret = gnutls_dh_params_import_raw(dh_params, &raw_prime, &raw_gen);
if (ret) {
- fprintf(stderr, "gnutls_dh_params_import_raw %d\n",
- ret);
+ fprintf(stderr, "gnutls_dh_params_import_raw %d\n", ret);
goto out;
}
ret = gnutls_dh_params_export_pkcs3(dh_params,
GNUTLS_X509_FMT_PEM,
- params_data,
- &params_data_size);
+ params_data, &params_data_size);
if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) {
- fprintf(stderr,
- "gnutls_dh_params_export_pkcs3 %d\n", ret);
+ fprintf(stderr, "gnutls_dh_params_export_pkcs3 %d\n", ret);
goto out;
}
@@ -407,19 +409,16 @@ print_dh_info(gnutls_session_t session, const char *str, int print)
ret = gnutls_dh_params_export_pkcs3(dh_params,
GNUTLS_X509_FMT_PEM,
- params_data,
- &params_data_size);
+ params_data, &params_data_size);
if (ret) {
- fprintf(stderr,
- "gnutls_dh_params_export_pkcs3-2 %d\n",
- ret);
+ fprintf(stderr, "gnutls_dh_params_export_pkcs3-2 %d\n", ret);
goto out;
}
log_msg(stdout, " - PKCS#3 format:\n\n%.*s\n",
- (int) params_data_size, params_data);
+ (int)params_data_size, params_data);
- out:
+ out:
gnutls_free(params_data);
gnutls_free(raw_prime.data);
gnutls_free(raw_gen.data);
@@ -427,7 +426,8 @@ print_dh_info(gnutls_session_t session, const char *str, int print)
#endif
}
-static void print_ecdh_info(gnutls_session_t session, const char *str, int print)
+static void print_ecdh_info(gnutls_session_t session, const char *str,
+ int print)
{
int curve;
@@ -438,9 +438,10 @@ static void print_ecdh_info(gnutls_session_t session, const char *str, int print
curve = gnutls_ecc_curve_get(session);
- log_msg(stdout, " - Using curve: %s\n", gnutls_ecc_curve_get_name(curve));
+ log_msg(stdout, " - Using curve: %s\n",
+ gnutls_ecc_curve_get_name(curve));
log_msg(stdout, " - Curve size: %d bits\n",
- gnutls_ecc_curve_get_size(curve) * 8);
+ gnutls_ecc_curve_get_size(curve) * 8);
}
@@ -452,9 +453,9 @@ struct channel_binding_request {
static void print_channel_bindings(gnutls_session_t session, int print)
{
static const struct channel_binding_request requests[] = {
- { GNUTLS_CB_TLS_UNIQUE, "tls-unique" },
- { GNUTLS_CB_TLS_SERVER_END_POINT, "tls-server-end-point" },
- { GNUTLS_CB_TLS_EXPORTER, "tls-exporter" }
+ {GNUTLS_CB_TLS_UNIQUE, "tls-unique"},
+ {GNUTLS_CB_TLS_SERVER_END_POINT, "tls-server-end-point"},
+ {GNUTLS_CB_TLS_EXPORTER, "tls-exporter"}
};
size_t i;
@@ -468,8 +469,7 @@ static void print_channel_bindings(gnutls_session_t session, int print)
int rc;
rc = gnutls_session_channel_binding(session,
- requests[i].type,
- &cb);
+ requests[i].type, &cb);
if (rc == GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE) {
log_msg(stdout, " - '%s': not available\n",
requests[i].name);
@@ -479,8 +479,7 @@ static void print_channel_bindings(gnutls_session_t session, int print)
} else {
size_t j;
- log_msg(stdout, " - '%s': ",
- requests[i].name);
+ log_msg(stdout, " - '%s': ", requests[i].name);
for (j = 0; j < cb.size; j++)
log_msg(stdout, "%02x", cb.data[j]);
log_msg(stdout, "\n");
@@ -511,7 +510,7 @@ int print_info(gnutls_session_t session, int verbose, int flags)
gnutls_session_get_id(session, session_id, &session_id_size);
if (session_id_size > 0) {
log_msg(stdout, "- Session ID: %s\n",
- raw_to_string(session_id, session_id_size));
+ raw_to_string(session_id, session_id_size));
}
/* print the key exchange's algorithm name
@@ -534,8 +533,9 @@ int print_info(gnutls_session_t session, int verbose, int flags)
* side.
*/
if (gnutls_srp_server_get_username(session) != NULL)
- log_msg(stdout, "- SRP authentication. Connected as '%s'\n",
- gnutls_srp_server_get_username(session));
+ log_msg(stdout,
+ "- SRP authentication. Connected as '%s'\n",
+ gnutls_srp_server_get_username(session));
break;
#endif
#ifdef ENABLE_PSK
@@ -544,12 +544,13 @@ int print_info(gnutls_session_t session, int verbose, int flags)
*/
if (gnutls_psk_client_get_hint(session) != NULL)
log_msg(stdout, "- PSK authentication. PSK hint '%s'\n",
- gnutls_psk_client_get_hint(session));
+ gnutls_psk_client_get_hint(session));
/* This returns NULL in client side.
*/
if (gnutls_psk_server_get_username(session) != NULL)
- log_msg(stdout, "- PSK authentication. Connected as '%s'\n",
- gnutls_psk_server_get_username(session));
+ log_msg(stdout,
+ "- PSK authentication. Connected as '%s'\n",
+ gnutls_psk_server_get_username(session));
if (kx == GNUTLS_KX_DHE_PSK)
print_dh_info(session, "Ephemeral ", verbose);
if (kx == GNUTLS_KX_ECDHE_PSK)
@@ -569,15 +570,17 @@ int print_info(gnutls_session_t session, int verbose, int flags)
if (gnutls_server_name_get
(session, dns, &dns_size, &type, 0) == 0) {
log_msg(stdout, "- Given server name[%d]: %s\n",
- type, dns);
+ type, dns);
}
}
- if ((flags & P_WAIT_FOR_CERT) && gnutls_certificate_get_ours(session) == 0)
+ if ((flags & P_WAIT_FOR_CERT)
+ && gnutls_certificate_get_ours(session) == 0)
log_msg(stdout, "- No certificate was sent to peer\n");
- if (flags& P_PRINT_CERT)
- print_cert_info(session, verbose, (flags&P_PRINT_CERT));
+ if (flags & P_PRINT_CERT)
+ print_cert_info(session, verbose,
+ (flags & P_PRINT_CERT));
if (kx == GNUTLS_KX_DHE_RSA || kx == GNUTLS_KX_DHE_DSS)
print_dh_info(session, "Ephemeral ", verbose);
@@ -590,11 +593,9 @@ int print_info(gnutls_session_t session, int verbose, int flags)
break;
}
-
if (verbose) {
version = gnutls_protocol_get_version(session);
- tmp =
- SU(gnutls_protocol_get_name(version));
+ tmp = SU(gnutls_protocol_get_name(version));
log_msg(stdout, "- Version: %s\n", tmp);
if (version < GNUTLS_TLS1_3) {
@@ -625,15 +626,19 @@ int print_info(gnutls_session_t session, int verbose, int flags)
}
log_msg(stdout, "- Options:");
- if (gnutls_session_ext_master_secret_status(session)!=0)
+ if (gnutls_session_ext_master_secret_status(session) != 0)
log_msg(stdout, " extended master secret,");
- if (gnutls_safe_renegotiation_status(session)!=0)
+ if (gnutls_safe_renegotiation_status(session) != 0)
log_msg(stdout, " safe renegotiation,");
- if (gnutls_session_etm_status(session)!=0)
+ if (gnutls_session_etm_status(session) != 0)
log_msg(stdout, " EtM,");
#ifdef ENABLE_OCSP
- if (gnutls_ocsp_status_request_is_checked(session, GNUTLS_OCSP_SR_IS_AVAIL)!=0) {
- log_msg(stdout, " OCSP status request%s,", gnutls_ocsp_status_request_is_checked(session,0)!=0?"":"[ignored]");
+ if (gnutls_ocsp_status_request_is_checked
+ (session, GNUTLS_OCSP_SR_IS_AVAIL) != 0) {
+ log_msg(stdout, " OCSP status request%s,",
+ gnutls_ocsp_status_request_is_checked(session,
+ 0) !=
+ 0 ? "" : "[ignored]");
}
#endif
log_msg(stdout, "\n");
@@ -642,13 +647,14 @@ int print_info(gnutls_session_t session, int verbose, int flags)
rc = gnutls_srtp_get_selected_profile(session, &srtp_profile);
if (rc == 0)
log_msg(stdout, "- SRTP profile: %s\n",
- gnutls_srtp_get_profile_name(srtp_profile));
+ gnutls_srtp_get_profile_name(srtp_profile));
#endif
#ifdef ENABLE_ALPN
rc = gnutls_alpn_get_selected_protocol(session, &p);
if (rc == 0)
- log_msg(stdout, "- Application protocol: %.*s\n", p.size, p.data);
+ log_msg(stdout, "- Application protocol: %.*s\n", p.size,
+ p.data);
#endif
print_channel_bindings(session, verbose);
@@ -656,10 +662,13 @@ int print_info(gnutls_session_t session, int verbose, int flags)
ktls_flags = gnutls_transport_is_ktls_enabled(session);
if (ktls_flags != 0) {
log_msg(stdout, "- KTLS: %s\n",
- (ktls_flags & GNUTLS_KTLS_DUPLEX) == GNUTLS_KTLS_DUPLEX ? "send, recv" :
- (ktls_flags & GNUTLS_KTLS_SEND) == GNUTLS_KTLS_SEND ? "send" :
- (ktls_flags & GNUTLS_KTLS_RECV) == GNUTLS_KTLS_RECV ? "recv" :
- "unknown");
+ (ktls_flags & GNUTLS_KTLS_DUPLEX) ==
+ GNUTLS_KTLS_DUPLEX ? "send, recv" : (ktls_flags &
+ GNUTLS_KTLS_SEND)
+ ==
+ GNUTLS_KTLS_SEND ? "send" : (ktls_flags &
+ GNUTLS_KTLS_RECV) ==
+ GNUTLS_KTLS_RECV ? "recv" : "unknown");
}
fflush(stdout);
@@ -672,7 +681,8 @@ void print_cert_info(gnutls_session_t session, int verbose, int print_cert)
print_cert_info2(session, verbose, stdout, print_cert);
}
-void print_cert_info2(gnutls_session_t session, int verbose, FILE *out, int print_cert)
+void print_cert_info2(gnutls_session_t session, int verbose, FILE * out,
+ int print_cert)
{
int flag, print_crt_status = 0;
@@ -688,10 +698,12 @@ void print_cert_info2(gnutls_session_t session, int verbose, FILE *out, int prin
switch (gnutls_certificate_type_get2(session, GNUTLS_CTYPE_PEERS)) {
case GNUTLS_CRT_X509:
- print_x509_info(session, out, flag, print_cert, print_crt_status);
+ print_x509_info(session, out, flag, print_cert,
+ print_crt_status);
break;
case GNUTLS_CRT_RAWPK:
- print_rawpk_info(session, out, flag, print_cert, print_crt_status);
+ print_rawpk_info(session, out, flag, print_cert,
+ print_crt_status);
break;
default:
break;
@@ -721,15 +733,15 @@ void print_list(const char *priorities, int verbose)
if (ret == GNUTLS_E_INVALID_REQUEST)
fprintf(stderr, "Syntax error at: %s\n", err);
else
- fprintf(stderr, "Error in priorities: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error in priorities: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
for (i = 0;; i++) {
ret =
gnutls_priority_get_cipher_suite_index(pcache,
- i,
- &idx);
+ i, &idx);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
if (ret == GNUTLS_E_UNKNOWN_CIPHER_SUITE)
@@ -741,9 +753,9 @@ void print_list(const char *priorities, int verbose)
if (name != NULL)
log_msg(stdout, "%-50s\t0x%02x, 0x%02x\t%s\n",
- name, (unsigned char) id[0],
- (unsigned char) id[1],
- gnutls_protocol_get_name(version));
+ name, (unsigned char)id[0],
+ (unsigned char)id[1],
+ gnutls_protocol_get_name(version));
}
log_msg(stdout, "\n");
@@ -751,17 +763,17 @@ void print_list(const char *priorities, int verbose)
{
ret =
gnutls_priority_certificate_type_list2(pcache,
- &list,
- GNUTLS_CTYPE_CLIENT);
+ &list,
+ GNUTLS_CTYPE_CLIENT);
log_msg(stdout, "Certificate types: ");
if (ret == 0)
log_msg(stdout, "none\n");
- for (i = 0; i < (unsigned) ret; i++) {
+ for (i = 0; i < (unsigned)ret; i++) {
log_msg(stdout, "CTYPE-%s",
- gnutls_certificate_type_get_name
- (list[i]));
- if (i + 1 != (unsigned) ret)
+ gnutls_certificate_type_get_name
+ (list[i]));
+ if (i + 1 != (unsigned)ret)
log_msg(stdout, ", ");
else
log_msg(stdout, "\n");
@@ -775,10 +787,10 @@ void print_list(const char *priorities, int verbose)
log_msg(stdout, "Protocols: ");
if (ret == 0)
log_msg(stdout, "none\n");
- for (i = 0; i < (unsigned) ret; i++) {
+ for (i = 0; i < (unsigned)ret; i++) {
log_msg(stdout, "VERS-%s",
- gnutls_protocol_get_name(list[i]));
- if (i + 1 != (unsigned) ret)
+ gnutls_protocol_get_name(list[i]));
+ if (i + 1 != (unsigned)ret)
log_msg(stdout, ", ");
else
log_msg(stdout, "\n");
@@ -791,10 +803,10 @@ void print_list(const char *priorities, int verbose)
log_msg(stdout, "Ciphers: ");
if (ret == 0)
log_msg(stdout, "none\n");
- for (i = 0; i < (unsigned) ret; i++) {
+ for (i = 0; i < (unsigned)ret; i++) {
log_msg(stdout, "%s",
- gnutls_cipher_get_name(list[i]));
- if (i + 1 != (unsigned) ret)
+ gnutls_cipher_get_name(list[i]));
+ if (i + 1 != (unsigned)ret)
log_msg(stdout, ", ");
else
log_msg(stdout, "\n");
@@ -807,10 +819,10 @@ void print_list(const char *priorities, int verbose)
log_msg(stdout, "MACs: ");
if (ret == 0)
log_msg(stdout, "none\n");
- for (i = 0; i < (unsigned) ret; i++) {
+ for (i = 0; i < (unsigned)ret; i++) {
log_msg(stdout, "%s",
- gnutls_mac_get_name(list[i]));
- if (i + 1 != (unsigned) ret)
+ gnutls_mac_get_name(list[i]));
+ if (i + 1 != (unsigned)ret)
log_msg(stdout, ", ");
else
log_msg(stdout, "\n");
@@ -823,10 +835,10 @@ void print_list(const char *priorities, int verbose)
log_msg(stdout, "Key Exchange Algorithms: ");
if (ret == 0)
log_msg(stdout, "none\n");
- for (i = 0; i < (unsigned) ret; i++) {
+ for (i = 0; i < (unsigned)ret; i++) {
log_msg(stdout, "%s",
- gnutls_kx_get_name(list[i]));
- if (i + 1 != (unsigned) ret)
+ gnutls_kx_get_name(list[i]));
+ if (i + 1 != (unsigned)ret)
log_msg(stdout, ", ");
else
log_msg(stdout, "\n");
@@ -834,16 +846,15 @@ void print_list(const char *priorities, int verbose)
}
{
- ret =
- gnutls_priority_group_list(pcache, &list);
+ ret = gnutls_priority_group_list(pcache, &list);
log_msg(stdout, "Groups: ");
if (ret == 0)
log_msg(stdout, "none\n");
- for (i = 0; i < (unsigned) ret; i++) {
+ for (i = 0; i < (unsigned)ret; i++) {
log_msg(stdout, "GROUP-%s",
- gnutls_group_get_name(list[i]));
- if (i + 1 != (unsigned) ret)
+ gnutls_group_get_name(list[i]));
+ if (i + 1 != (unsigned)ret)
log_msg(stdout, ", ");
else
log_msg(stdout, "\n");
@@ -856,11 +867,11 @@ void print_list(const char *priorities, int verbose)
log_msg(stdout, "PK-signatures: ");
if (ret == 0)
log_msg(stdout, "none\n");
- for (i = 0; i < (unsigned) ret; i++) {
+ for (i = 0; i < (unsigned)ret; i++) {
log_msg(stdout, "SIGN-%s",
- gnutls_sign_algorithm_get_name(list
- [i]));
- if (i + 1 != (unsigned) ret)
+ gnutls_sign_algorithm_get_name(list
+ [i]));
+ if (i + 1 != (unsigned)ret)
log_msg(stdout, ", ");
else
log_msg(stdout, "\n");
@@ -875,12 +886,13 @@ void print_list(const char *priorities, int verbose)
for (i = 0; (name = gnutls_cipher_suite_info
(i, id, &kx, &cipher, &mac, &version)); i++) {
log_msg(stdout, "%-50s\t0x%02x, 0x%02x\t%s\n",
- name,
- (unsigned char) id[0], (unsigned char) id[1],
- gnutls_protocol_get_name(version));
+ name,
+ (unsigned char)id[0], (unsigned char)id[1],
+ gnutls_protocol_get_name(version));
if (verbose)
log_msg
- (stdout, "\tKey exchange: %s\n\tCipher: %s\n\tMAC: %s\n\n",
+ (stdout,
+ "\tKey exchange: %s\n\tCipher: %s\n\tMAC: %s\n\n",
gnutls_kx_get_name(kx),
gnutls_cipher_get_name(cipher),
gnutls_mac_get_name(mac));
@@ -894,7 +906,7 @@ void print_list(const char *priorities, int verbose)
log_msg(stdout, "Certificate types: ");
for (; *p; p++) {
log_msg(stdout, "CTYPE-%s",
- gnutls_certificate_type_get_name(*p));
+ gnutls_certificate_type_get_name(*p));
if (*(p + 1))
log_msg(stdout, ", ");
else
@@ -907,7 +919,8 @@ void print_list(const char *priorities, int verbose)
log_msg(stdout, "Protocols: ");
for (; *p; p++) {
- log_msg(stdout, "VERS-%s", gnutls_protocol_get_name(*p));
+ log_msg(stdout, "VERS-%s",
+ gnutls_protocol_get_name(*p));
if (*(p + 1))
log_msg(stdout, ", ");
else
@@ -973,7 +986,8 @@ void print_list(const char *priorities, int verbose)
log_msg(stdout, "Compression: ");
for (; *p; p++) {
- log_msg(stdout, "COMP-%s", gnutls_compression_get_name(*p));
+ log_msg(stdout, "COMP-%s",
+ gnutls_compression_get_name(*p));
if (*(p + 1))
log_msg(stdout, ", ");
else
@@ -1013,7 +1027,7 @@ void print_list(const char *priorities, int verbose)
log_msg(stdout, "PK-signatures: ");
for (; *p; p++) {
log_msg(stdout, "SIGN-%s",
- gnutls_sign_algorithm_get_name(*p));
+ gnutls_sign_algorithm_get_name(*p));
if (*(p + 1))
log_msg(stdout, ", ");
else
@@ -1059,7 +1073,8 @@ print_key_material(gnutls_session_t session, const char *label, size_t size)
gnutls_free(hex.data);
}
-int check_command(gnutls_session_t session, const char *str, unsigned no_cli_cert)
+int check_command(gnutls_session_t session, const char *str,
+ unsigned no_cli_cert)
{
size_t len = strnlen(str, 128);
int ret;
@@ -1070,22 +1085,21 @@ int check_command(gnutls_session_t session, const char *str, unsigned no_cli_cer
if (strncmp
(str, "**REHANDSHAKE**",
sizeof("**REHANDSHAKE**") - 1) == 0) {
- fprintf(stderr,
- "*** Sending rehandshake request\n");
+ fprintf(stderr, "*** Sending rehandshake request\n");
gnutls_rehandshake(session);
return 1;
} else if (strncmp
- (str, "**REAUTH**",
- sizeof("**REAUTH**") - 1) == 0) {
+ (str, "**REAUTH**", sizeof("**REAUTH**") - 1) == 0) {
/* in case we have a re-auth cmd prepare for it */
if (no_cli_cert)
- gnutls_certificate_server_set_request(session, GNUTLS_CERT_REQUIRE);
+ gnutls_certificate_server_set_request(session,
+ GNUTLS_CERT_REQUIRE);
- fprintf(stderr,
- "*** Sending re-auth request\n");
+ fprintf(stderr, "*** Sending re-auth request\n");
do {
ret = gnutls_reauth(session, 0);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN
+ || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fprintf(stderr, "reauth: %s\n",
gnutls_strerror(ret));
@@ -1184,7 +1198,8 @@ pin_callback(void *user, int attempt, const char *token_url,
env = "GNUTLS_SO_PIN";
desc = "security officer";
if (info && info->so_pin)
- snprintf(password, sizeof(password), "%s", info->so_pin);
+ snprintf(password, sizeof(password), "%s",
+ info->so_pin);
} else {
env = "GNUTLS_PIN";
desc = "user";
@@ -1207,8 +1222,7 @@ pin_callback(void *user, int attempt, const char *token_url,
}
if (cache > 0 && cached_url != NULL) {
- if (token_url != NULL
- && strcmp(cached_url, token_url) == 0) {
+ if (token_url != NULL && strcmp(cached_url, token_url) == 0) {
if (strlen(cached_pin) >= pin_max) {
fprintf(stderr, "Too long PIN given\n");
exit(1);
@@ -1227,11 +1241,12 @@ pin_callback(void *user, int attempt, const char *token_url,
if (password[0] == 0) {
getenv_copy(password, sizeof(password), env);
- if (password[0] == 0) /* compatibility */
+ if (password[0] == 0) /* compatibility */
getenv_copy(password, sizeof(password), "GNUTLS_PIN");
}
- if (password[0] == 0 && info != NULL && info->password != NULL && info->ask_pass == 0) {
+ if (password[0] == 0 && info != NULL && info->password != NULL
+ && info->ask_pass == 0) {
if (strlen(info->password) < sizeof(password)) {
strcpy(password, info->password);
} else {
@@ -1240,22 +1255,27 @@ pin_callback(void *user, int attempt, const char *token_url,
}
}
- if (password[0] == 0 && (info == NULL || info->batch == 0 || info->ask_pass != 0)) {
+ if (password[0] == 0
+ && (info == NULL || info->batch == 0 || info->ask_pass != 0)) {
if (token_label && token_label[0] != 0) {
- fprintf(stderr, "Token '%s' with URL '%s' ", token_label, token_url);
+ fprintf(stderr, "Token '%s' with URL '%s' ",
+ token_label, token_url);
fprintf(stderr, "requires %s PIN\n", desc);
getpass_copy(password, sizeof(password), "Enter PIN: ");
} else {
- getpass_copy(password, sizeof(password), "Enter password: ");
+ getpass_copy(password, sizeof(password),
+ "Enter password: ");
}
} else {
if (flags & GNUTLS_PIN_WRONG) {
if (token_label && token_label[0] != 0) {
- fprintf(stderr, "Token '%s' with URL '%s' ", token_label, token_url);
+ fprintf(stderr, "Token '%s' with URL '%s' ",
+ token_label, token_url);
fprintf(stderr, "requires %s PIN\n", desc);
}
- fprintf(stderr, "Cannot continue with a wrong password in the environment.\n");
+ fprintf(stderr,
+ "Cannot continue with a wrong password in the environment.\n");
exit(1);
}
}
@@ -1263,7 +1283,8 @@ pin_callback(void *user, int attempt, const char *token_url,
if (password[0] == 0 || password[0] == '\n') {
fprintf(stderr, "No PIN given.\n");
if (info != NULL && info->batch != 0) {
- fprintf(stderr, "note: when operating in batch mode, set the GNUTLS_PIN or GNUTLS_SO_PIN environment variables\n");
+ fprintf(stderr,
+ "note: when operating in batch mode, set the GNUTLS_PIN or GNUTLS_SO_PIN environment variables\n");
}
exit(1);
}
@@ -1290,8 +1311,7 @@ pin_callback(void *user, int attempt, const char *token_url,
#ifdef ENABLE_PKCS11
-static int
-token_callback(void *user, const char *label, const unsigned retry)
+static int token_callback(void *user, const char *label, const unsigned retry)
{
char buf[32];
common_info_st *info = user;
@@ -1301,7 +1321,7 @@ token_callback(void *user, const char *label, const unsigned retry)
return -1;
}
log_msg(stdout, "Please insert token '%s' in slot and press enter\n",
- label);
+ label);
if (fgets(buf, sizeof(buf), stdin) == NULL) {
fprintf(stderr, "error reading input\n");
return -1;
@@ -1310,7 +1330,7 @@ token_callback(void *user, const char *label, const unsigned retry)
return 0;
}
-void pkcs11_common(common_info_st *c)
+void pkcs11_common(common_info_st * c)
{
gnutls_pkcs11_set_pin_function(pin_callback, c);
@@ -1335,8 +1355,7 @@ void sockets_init(void)
#endif
}
-
-int log_msg(FILE *file, const char *message, ...)
+int log_msg(FILE * file, const char *message, ...)
{
va_list args;
int rv;
@@ -1350,7 +1369,7 @@ int log_msg(FILE *file, const char *message, ...)
return rv;
}
-void log_set(FILE *file)
+void log_set(FILE * file)
{
logfile = file;
}
@@ -1359,7 +1378,7 @@ void log_set(FILE *file)
#pragma GCC diagnostic ignored "-Wformat-y2k"
/* This is very similar to ctime() but it does not force a newline.
*/
-char *simple_ctime(const time_t *t, char out[SIMPLE_CTIME_BUF_SIZE])
+char *simple_ctime(const time_t * t, char out[SIMPLE_CTIME_BUF_SIZE])
{
struct tm tm;
@@ -1375,4 +1394,5 @@ char *simple_ctime(const time_t *t, char out[SIMPLE_CTIME_BUF_SIZE])
snprintf(out, SIMPLE_CTIME_BUF_SIZE, "[error]");
return out;
}
+
#pragma GCC diagnostic pop
diff --git a/src/common.h b/src/common.h
index 507d0d8337..6fac0044ec 100644
--- a/src/common.h
+++ b/src/common.h
@@ -19,57 +19,59 @@
*/
#ifndef GNUTLS_SRC_COMMON_H
-#define GNUTLS_SRC_COMMON_H
-
-#define SERVER "127.0.0.1"
-
-#include <config.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/pkcs11.h>
-#include <certtool-common.h>
-#include <c-ctype.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <unistd.h>
-#ifndef _WIN32
-#include <netinet/in.h>
-#endif
-
-#include <signal.h>
-#ifdef _WIN32
-#include <io.h>
-#include <winbase.h>
-#include <sys/select.h>
-#include "socket.h"
-#undef OCSP_RESPONSE
-#endif
-
-#ifndef __attribute__
-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define __attribute__(Spec) /* empty */
-#endif
-#endif
+# define GNUTLS_SRC_COMMON_H
+
+# define SERVER "127.0.0.1"
+
+# include <config.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/pkcs11.h>
+# include <certtool-common.h>
+# include <c-ctype.h>
+# include <string.h>
+# include <sys/socket.h>
+# include <netdb.h>
+# include <unistd.h>
+# ifndef _WIN32
+# include <netinet/in.h>
+# endif
+
+# include <signal.h>
+# ifdef _WIN32
+# include <io.h>
+# include <winbase.h>
+# include <sys/select.h>
+# include "socket.h"
+# undef OCSP_RESPONSE
+# endif
+
+# ifndef __attribute__
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+# define __attribute__(Spec) /* empty */
+# endif
+# endif
/* the number of elements in the priority structures.
*/
-#define PRI_MAX 16
+# define PRI_MAX 16
extern const char str_unknown[];
-#define P_PRINT_CERT 1
-#define P_WAIT_FOR_CERT (1<<1)
+# define P_PRINT_CERT 1
+# define P_WAIT_FOR_CERT (1<<1)
int print_info(gnutls_session_t state, int verbose, int flags);
void print_cert_info(gnutls_session_t, int flag, int print_cert);
void print_key_material(gnutls_session_t, const char *label, size_t size);
-int log_msg(FILE *file, const char *message, ...) __attribute__((format(printf, 2, 3)));
-void log_set(FILE *file);
+int log_msg(FILE * file, const char *message, ...)
+ __attribute__((format(printf, 2, 3)));
+void log_set(FILE * file);
-void print_cert_info2(gnutls_session_t, int flag, FILE *fp, int print_cert);
+void print_cert_info2(gnutls_session_t, int flag, FILE * fp, int print_cert);
void print_list(const char *priorities, int verbose);
-int cert_verify(gnutls_session_t session, const char *hostname, const char *purpose);
+int cert_verify(gnutls_session_t session, const char *hostname,
+ const char *purpose);
int compress_cert_set_methods(gnutls_session_t session, const char **strings,
size_t n_strings);
@@ -77,9 +79,10 @@ int compress_cert_set_methods(gnutls_session_t session, const char **strings,
const char *raw_to_string(const unsigned char *raw, size_t raw_size);
const char *raw_to_hex(const unsigned char *raw, size_t raw_size);
const char *raw_to_base64(const unsigned char *raw, size_t raw_size);
-int check_command(gnutls_session_t session, const char *str, unsigned no_cli_cert);
+int check_command(gnutls_session_t session, const char *str,
+ unsigned no_cli_cert);
-#define MAX_PIN_LEN GNUTLS_PKCS11_MAX_PIN_LEN
+# define MAX_PIN_LEN GNUTLS_PKCS11_MAX_PIN_LEN
void getenv_copy(char *str, size_t max_str_size, const char *envvar);
void getpass_copy(char *pass, size_t max_pass_size, const char *prompt);
@@ -88,22 +91,23 @@ pin_callback(void *user, int attempt, const char *token_url,
const char *token_label, unsigned int flags, char *pin,
size_t pin_max);
-void pkcs11_common(common_info_st *c);
+void pkcs11_common(common_info_st * c);
inline static int is_ip(const char *hostname)
{
-int len = strlen(hostname);
+ int len = strlen(hostname);
if (strchr(hostname, ':') != 0)
return 1;
- else if (len > 2 && c_isdigit(hostname[0]) && c_isdigit(hostname[len-1]))
+ else if (len > 2 && c_isdigit(hostname[0])
+ && c_isdigit(hostname[len - 1]))
return 1;
return 0;
}
void sockets_init(void);
-#ifdef _WIN32
+# ifdef _WIN32
static int system_recv_timeout(gnutls_transport_ptr_t ptr, unsigned int ms)
{
fd_set rfds;
@@ -141,13 +145,14 @@ void set_read_funcs(gnutls_session_t session)
{
gnutls_transport_set_push_function(session, system_write);
gnutls_transport_set_pull_function(session, system_read);
- gnutls_transport_set_pull_timeout_function(session, system_recv_timeout);
+ gnutls_transport_set_pull_timeout_function(session,
+ system_recv_timeout);
}
-#else
-# define set_read_funcs(x)
-#endif
+# else
+# define set_read_funcs(x)
+# endif
-#define SIMPLE_CTIME_BUF_SIZE 64
-char *simple_ctime(const time_t *t, char buf[SIMPLE_CTIME_BUF_SIZE]);
+# define SIMPLE_CTIME_BUF_SIZE 64
+char *simple_ctime(const time_t * t, char buf[SIMPLE_CTIME_BUF_SIZE]);
-#endif /* GNUTLS_SRC_COMMON_H */
+#endif /* GNUTLS_SRC_COMMON_H */
diff --git a/src/danetool.c b/src/danetool.c
index add5d05a1f..43bce51b70 100644
--- a/src/danetool.c
+++ b/src/danetool.c
@@ -29,7 +29,7 @@
#include <gnutls/crypto.h>
#ifdef HAVE_DANE
-#include <gnutls/dane.h>
+# include <gnutls/dane.h>
#endif
#include <stdio.h>
@@ -52,8 +52,9 @@
#include "certtool-common.h"
#include "socket.h"
-static const char *obtain_cert(const char *hostname, const char *proto, const char *service,
- const char *app_proto, unsigned quiet);
+static const char *obtain_cert(const char *hostname, const char *proto,
+ const char *service, const char *app_proto,
+ unsigned quiet);
static void cmd_parser(int argc, char **argv);
static void dane_info(const char *host, const char *proto,
const char *service, unsigned int ca,
@@ -93,7 +94,6 @@ int main(int argc, char **argv)
return 0;
}
-
static void cmd_parser(int argc, char **argv)
{
int ret, privkey_op = 0;
@@ -141,7 +141,7 @@ static void cmd_parser(int argc, char **argv)
if (HAVE_OPT(DEBUG)) {
gnutls_global_set_log_level(OPT_VALUE_DEBUG);
- printf("Setting log level to %d\n", (int) OPT_VALUE_DEBUG);
+ printf("Setting log level to %d\n", (int)OPT_VALUE_DEBUG);
}
if ((ret = gnutls_global_init()) < 0) {
@@ -172,7 +172,9 @@ static void cmd_parser(int argc, char **argv)
snprintf(service, sizeof(service), "%s", OPT_ARG(PORT));
} else {
if (HAVE_OPT(STARTTLS_PROTO))
- snprintf(service, sizeof(service), "%s", starttls_proto_to_service(OPT_ARG(STARTTLS_PROTO)));
+ snprintf(service, sizeof(service), "%s",
+ starttls_proto_to_service(OPT_ARG
+ (STARTTLS_PROTO)));
}
if (HAVE_OPT(PROTO))
@@ -233,16 +235,18 @@ static void dane_check(const char *host, const char *proto,
if (HAVE_OPT(STARTTLS_PROTO))
app_proto = OPT_ARG(STARTTLS_PROTO);
- cinfo->cert = obtain_cert(host, proto, service, app_proto, HAVE_OPT(QUIET));
+ cinfo->cert =
+ obtain_cert(host, proto, service, app_proto,
+ HAVE_OPT(QUIET));
del = 1;
}
if (!HAVE_OPT(QUIET))
- fprintf(stderr, "Querying DNS for %s (%s:%d)...\n", host, proto, port);
+ fprintf(stderr, "Querying DNS for %s (%s:%d)...\n", host, proto,
+ port);
ret = dane_state_init(&s, flags);
if (ret < 0) {
- fprintf(stderr, "dane_state_init: %s\n",
- dane_strerror(ret));
+ fprintf(stderr, "dane_state_init: %s\n", dane_strerror(ret));
retcode = 1;
goto error;
}
@@ -259,8 +263,7 @@ static void dane_check(const char *host, const char *proto,
ret = dane_query_tlsa(s, &q, host, proto, port);
if (ret < 0) {
- fprintf(stderr, "dane_query_tlsa: %s\n",
- dane_strerror(ret));
+ fprintf(stderr, "dane_query_tlsa: %s\n", dane_strerror(ret));
retcode = 1;
goto error;
}
@@ -273,7 +276,7 @@ static void dane_check(const char *host, const char *proto,
int bogus;
ret = dane_query_to_raw_tlsa(q, &entries, &dane_data,
- &dane_data_len, &secure, &bogus);
+ &dane_data_len, &secure, &bogus);
if (ret < 0) {
fprintf(stderr, "dane_query_to_raw_tlsa: %s\n",
dane_strerror(ret));
@@ -281,9 +284,9 @@ static void dane_check(const char *host, const char *proto,
goto error;
}
- for (i=0;i<entries;i++) {
+ for (i = 0; i < entries; i++) {
size_t str_size;
- t.data = (void*)dane_data[i];
+ t.data = (void *)dane_data[i];
t.size = dane_data_len[i];
str_size = t.size * 2 + 1;
@@ -315,8 +318,7 @@ static void dane_check(const char *host, const char *proto,
gnutls_x509_crt_list_import2(&clist,
&clist_size,
&file,
- cinfo->
- incert_format, 0);
+ cinfo->incert_format, 0);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_list_import2: %s\n",
@@ -326,18 +328,16 @@ static void dane_check(const char *host, const char *proto,
}
if (clist_size > 0) {
- for (i = 0; i < MIN(MAX_CLIST_SIZE,clist_size); i++) {
+ for (i = 0; i < MIN(MAX_CLIST_SIZE, clist_size); i++) {
ret =
gnutls_x509_crt_export2(clist
[i],
GNUTLS_X509_FMT_DER,
- &certs
- [i]);
+ &certs[i]);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_export2: %s\n",
- gnutls_strerror
- (ret));
+ gnutls_strerror(ret));
retcode = 1;
goto error;
}
@@ -356,7 +356,7 @@ static void dane_check(const char *host, const char *proto,
}
size = lbuffer_size;
- ret = gnutls_hex_encode(&data, (void *) lbuffer, &size);
+ ret = gnutls_hex_encode(&data, (void *)lbuffer, &size);
if (ret < 0) {
fprintf(stderr, "gnutls_hex_encode: %s\n",
dane_strerror(ret));
@@ -373,16 +373,22 @@ static void dane_check(const char *host, const char *proto,
if (!HAVE_OPT(QUIET)) {
cstr = dane_cert_usage_name(usage);
- if (cstr == NULL) cstr= "Unknown";
- fprintf(outfile, "Certificate usage: %s (%.2x)\n", cstr, usage);
+ if (cstr == NULL)
+ cstr = "Unknown";
+ fprintf(outfile, "Certificate usage: %s (%.2x)\n", cstr,
+ usage);
cstr = dane_cert_type_name(type);
- if (cstr == NULL) cstr= "Unknown";
- fprintf(outfile, "Certificate type: %s (%.2x)\n", cstr, type);
+ if (cstr == NULL)
+ cstr = "Unknown";
+ fprintf(outfile, "Certificate type: %s (%.2x)\n", cstr,
+ type);
cstr = dane_match_type_name(match);
- if (cstr == NULL) cstr= "Unknown";
- fprintf(outfile, "Contents: %s (%.2x)\n", cstr, match);
+ if (cstr == NULL)
+ cstr = "Unknown";
+ fprintf(outfile, "Contents: %s (%.2x)\n", cstr,
+ match);
fprintf(outfile, "Data: %s\n", lbuffer);
}
@@ -394,8 +400,7 @@ static void dane_check(const char *host, const char *proto,
ret =
dane_verify_crt(s, certs, clist_size,
GNUTLS_CRT_X509, host,
- proto, port, 0, vflags,
- &status);
+ proto, port, 0, vflags, &status);
if (ret < 0) {
fprintf(stderr,
"dane_verify_crt: %s\n",
@@ -404,10 +409,7 @@ static void dane_check(const char *host, const char *proto,
goto error;
}
- ret =
- dane_verification_status_print(status,
- &out,
- 0);
+ ret = dane_verification_status_print(status, &out, 0);
if (ret < 0) {
fprintf(stderr,
"dane_verification_status_print: %s\n",
@@ -417,7 +419,8 @@ static void dane_check(const char *host, const char *proto,
}
if (!HAVE_OPT(QUIET))
- fprintf(outfile, "\nVerification: %s\n", out.data);
+ fprintf(outfile, "\nVerification: %s\n",
+ out.data);
gnutls_free(out.data);
/* if there is at least one correct accept */
@@ -437,8 +440,6 @@ static void dane_check(const char *host, const char *proto,
gnutls_free(clist);
}
-
-
dane_query_deinit(q);
dane_state_deinit(s);
@@ -572,10 +573,9 @@ static void dane_info(const char *host, const char *proto,
t.size = gnutls_hash_get_len(default_dig);
size = lbuffer_size;
- ret = gnutls_hex_encode(&t, (void *) lbuffer, &size);
+ ret = gnutls_hex_encode(&t, (void *)lbuffer, &size);
if (ret < 0) {
- fprintf(stderr, "hex encode error: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "hex encode error: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -584,7 +584,6 @@ static void dane_info(const char *host, const char *proto,
}
-
struct priv_st {
int fd;
int found;
@@ -608,8 +607,10 @@ static int cert_callback(gnutls_session_t session)
priv = gnutls_session_get_ptr(session);
- for (i=0;i<cert_list_size;i++) {
- ret = gnutls_pem_base64_encode_alloc("CERTIFICATE", &cert_list[i], &t);
+ for (i = 0; i < cert_list_size; i++) {
+ ret =
+ gnutls_pem_base64_encode_alloc("CERTIFICATE", &cert_list[i],
+ &t);
if (ret < 0) {
fprintf(stderr, "error[%d]: %s\n", __LINE__,
gnutls_strerror(ret));
@@ -637,7 +638,8 @@ gnutls_session_t init_tls_session(const char *hostname)
priv.found = 0;
priv.fd = file_fd;
- ret = gnutls_init(&session, (udp?GNUTLS_DATAGRAM:0)|GNUTLS_CLIENT);
+ ret =
+ gnutls_init(&session, (udp ? GNUTLS_DATAGRAM : 0) | GNUTLS_CLIENT);
if (ret < 0) {
fprintf(stderr, "error[%d]: %s\n", __LINE__,
gnutls_strerror(ret));
@@ -652,8 +654,9 @@ gnutls_session_t init_tls_session(const char *hostname)
app_exit(1);
}
- if (hostname && is_ip(hostname)==0) {
- gnutls_server_name_set(session, GNUTLS_NAME_DNS, hostname, strlen(hostname));
+ if (hostname && is_ip(hostname) == 0) {
+ gnutls_server_name_set(session, GNUTLS_NAME_DNS, hostname,
+ strlen(hostname));
}
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -666,15 +669,16 @@ int do_handshake(socket_st * socket)
do {
ret = gnutls_handshake(socket->session);
- } while(ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_WARNING_ALERT_RECEIVED);
+ } while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN
+ || ret == GNUTLS_E_WARNING_ALERT_RECEIVED);
/* we don't care on the result */
return 0;
}
-
-static const char *obtain_cert(const char *hostname, const char *proto, const char *service,
- const char *app_proto, unsigned quiet)
+static const char *obtain_cert(const char *hostname, const char *proto,
+ const char *service, const char *app_proto,
+ unsigned quiet)
{
socket_st hd;
const char *txt_service;
@@ -707,22 +711,22 @@ static const char *obtain_cert(const char *hostname, const char *proto, const ch
if (quiet)
str = NULL;
- if (app_proto == NULL) app_proto = txt_service;
+ if (app_proto == NULL)
+ app_proto = txt_service;
if (udp)
socket_flags |= SOCKET_FLAG_UDP;
-
umask(066);
file_fd = mkstemp(tmpfile);
if (file_fd == -1) {
int e = errno;
- fprintf(stderr, "error[%d]: %s\n", __LINE__,
- strerror(e));
+ fprintf(stderr, "error[%d]: %s\n", __LINE__, strerror(e));
app_exit(1);
}
- socket_open(&hd, hostname, txt_service, app_proto, socket_flags|SOCKET_FLAG_STARTTLS, str, NULL);
+ socket_open(&hd, hostname, txt_service, app_proto,
+ socket_flags | SOCKET_FLAG_STARTTLS, str, NULL);
close(file_fd);
diff --git a/src/inline_cmds.h b/src/inline_cmds.h
index 2705a8cc30..70d02d9499 100755
--- a/src/inline_cmds.h
+++ b/src/inline_cmds.h
@@ -18,7 +18,7 @@
*/
#ifndef GNUTLS_SRC_INLINE_CMDS_H
-#define GNUTLS_SRC_INLINE_CMDS_H
+# define GNUTLS_SRC_INLINE_CMDS_H
/*
* The inline commands is a facility that can be used optionally
@@ -48,7 +48,7 @@ typedef enum INLINE_COMMAND { INLINE_COMMAND_NONE,
INLINE_COMMAND_REKEY_BOTH
} inline_command_t;
-#define MAX_INLINE_COMMAND_BYTES 20
+# define MAX_INLINE_COMMAND_BYTES 20
typedef struct inline_cmds {
char *current_ptr; /* points to the start of the current buffer being processed */
@@ -61,7 +61,6 @@ typedef struct inline_cmds {
char inline_cmd_buffer[MAX_INLINE_COMMAND_BYTES];
} inline_cmds_st;
-
struct inline_command_definitions {
int command;
char string[MAX_INLINE_COMMAND_BYTES];
@@ -75,6 +74,6 @@ struct inline_command_definitions inline_commands_def[] = {
{INLINE_COMMAND_RENEGOTIATE, "^renegotiate^\n"},
};
-#define NUM_INLINE_COMMANDS ((unsigned)(sizeof(inline_commands_def)/sizeof(inline_commands_def[0])))
+# define NUM_INLINE_COMMANDS ((unsigned)(sizeof(inline_commands_def)/sizeof(inline_commands_def[0])))
-#endif /* GNUTLS_SRC_INLINE_CMDS_H */
+#endif /* GNUTLS_SRC_INLINE_CMDS_H */
diff --git a/src/ocsptool-common.c b/src/ocsptool-common.c
index 4286e1484c..00ea8b6b53 100644
--- a/src/ocsptool-common.c
+++ b/src/ocsptool-common.c
@@ -47,7 +47,8 @@
static char buffer[MAX_BUF + 1];
/* returns the host part of a URL */
-static const char *host_from_url(const char *url, unsigned int *port, const char **path)
+static const char *host_from_url(const char *url, unsigned int *port,
+ const char **path)
{
static char hostname[512];
char *p;
@@ -60,7 +61,7 @@ static const char *host_from_url(const char *url, unsigned int *port, const char
p = strchr(hostname, '/');
if (p != NULL) {
*p = 0;
- *path = p+1;
+ *path = p + 1;
}
p = strchr(hostname, ':');
@@ -77,7 +78,7 @@ static const char *host_from_url(const char *url, unsigned int *port, const char
void
_generate_request(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
- gnutls_datum_t * rdata, gnutls_datum_t *nonce)
+ gnutls_datum_t * rdata, gnutls_datum_t * nonce)
{
gnutls_ocsp_req_t req;
int ret;
@@ -90,8 +91,7 @@ _generate_request(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
ret = gnutls_ocsp_req_add_cert(req, GNUTLS_DIG_SHA1, issuer, cert);
if (ret < 0) {
- fprintf(stderr, "ocsp_req_add_cert: %s",
- gnutls_strerror(ret));
+ fprintf(stderr, "ocsp_req_add_cert: %s", gnutls_strerror(ret));
exit(1);
}
@@ -106,8 +106,7 @@ _generate_request(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
ret = gnutls_ocsp_req_export(req, rdata);
if (ret != 0) {
- fprintf(stderr, "ocsp_req_export: %s",
- gnutls_strerror(ret));
+ fprintf(stderr, "ocsp_req_export: %s", gnutls_strerror(ret));
exit(1);
}
@@ -115,8 +114,7 @@ _generate_request(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
return;
}
-static size_t get_data(void *buf, size_t size, size_t nmemb,
- void *userp)
+static size_t get_data(void *buf, size_t size, size_t nmemb, void *userp)
{
gnutls_datum_t *ud = userp;
@@ -137,12 +135,12 @@ static size_t get_data(void *buf, size_t size, size_t nmemb,
/* Returns 0 on ok, and -1 on error */
int send_ocsp_request(const char *server,
gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
- gnutls_datum_t * resp_data, gnutls_datum_t *nonce)
+ gnutls_datum_t * resp_data, gnutls_datum_t * nonce)
{
gnutls_datum_t ud;
int ret;
gnutls_datum_t req;
- char *url = (void *) server;
+ char *url = (void *)server;
char headers[1024];
char service[16];
unsigned char *p;
@@ -160,19 +158,21 @@ int send_ocsp_request(const char *server,
i = 0;
do {
- ret = gnutls_x509_crt_get_authority_info_access(cert, i++,
- GNUTLS_IA_OCSP_URI,
- &data,
- NULL);
- } while(ret == GNUTLS_E_UNKNOWN_ALGORITHM);
+ ret =
+ gnutls_x509_crt_get_authority_info_access(cert, i++,
+ GNUTLS_IA_OCSP_URI,
+ &data,
+ NULL);
+ } while (ret == GNUTLS_E_UNKNOWN_ALGORITHM);
if (ret < 0) {
i = 0;
do {
ret =
gnutls_x509_crt_get_authority_info_access
- (issuer, i++, GNUTLS_IA_OCSP_URI, &data, NULL);
- } while(ret == GNUTLS_E_UNKNOWN_ALGORITHM);
+ (issuer, i++, GNUTLS_IA_OCSP_URI, &data,
+ NULL);
+ } while (ret == GNUTLS_E_UNKNOWN_ALGORITHM);
}
if (ret < 0) {
@@ -184,7 +184,7 @@ int send_ocsp_request(const char *server,
url = malloc(data.size + 1);
if (url == NULL) {
- return -1;
+ return -1;
}
memcpy(url, data.data, data.size);
url[data.size] = 0;
@@ -205,10 +205,11 @@ int send_ocsp_request(const char *server,
_generate_request(cert, issuer, &req, nonce);
snprintf(headers, sizeof(headers), HEADER_PATTERN, path, hostname,
- (unsigned int) req.size);
+ (unsigned int)req.size);
headers_size = strlen(headers);
- socket_open(&hd, hostname, service, NULL, SOCKET_FLAG_RAW|SOCKET_FLAG_SKIP_INIT, CONNECT_MSG, NULL);
+ socket_open(&hd, hostname, service, NULL,
+ SOCKET_FLAG_RAW | SOCKET_FLAG_SKIP_INIT, CONNECT_MSG, NULL);
socket_send(&hd, headers, headers_size);
socket_send(&hd, req.data, req.size);
@@ -314,7 +315,7 @@ void print_ocsp_verify_res(unsigned int output)
if (comma)
printf(", ");
printf("Signer cert expired");
- /*comma = 1;*/
+ /*comma = 1; */
}
}
@@ -342,15 +343,13 @@ check_ocsp_response(gnutls_x509_crt_t cert,
ret = gnutls_ocsp_resp_init(&resp);
if (ret < 0) {
- fprintf(stderr, "ocsp_resp_init: %s",
- gnutls_strerror(ret));
+ fprintf(stderr, "ocsp_resp_init: %s", gnutls_strerror(ret));
exit(1);
}
ret = gnutls_ocsp_resp_import(resp, data);
if (ret < 0) {
- fprintf(stderr, "importing response: %s",
- gnutls_strerror(ret));
+ fprintf(stderr, "importing response: %s", gnutls_strerror(ret));
exit(1);
}
@@ -386,18 +385,17 @@ check_ocsp_response(gnutls_x509_crt_t cert,
goto cleanup;
}
-
ret = gnutls_ocsp_resp_get_single(resp, 0, NULL, NULL, NULL, NULL,
&cert_status, &vtime, &ntime,
&rtime, NULL);
if (ret < 0) {
- fprintf(stderr, "reading response: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "reading response: %s\n", gnutls_strerror(ret));
exit(1);
}
if (cert_status == GNUTLS_OCSP_CERT_REVOKED) {
- printf("*** Certificate was revoked at %s\n", simple_ctime(&rtime, timebuf1));
+ printf("*** Certificate was revoked at %s\n",
+ simple_ctime(&rtime, timebuf1));
ret = 0;
goto cleanup;
}
@@ -413,8 +411,10 @@ check_ocsp_response(gnutls_x509_crt_t cert,
} else {
/* there is a newer OCSP answer, don't trust this one */
if (ntime < now) {
- printf("*** The OCSP response was issued at: %s but there is a newer issue at %s\n",
- simple_ctime(&vtime, timebuf1), simple_ctime(&ntime, timebuf2));
+ printf
+ ("*** The OCSP response was issued at: %s but there is a newer issue at %s\n",
+ simple_ctime(&vtime, timebuf1),
+ simple_ctime(&ntime, timebuf2));
ret = -1;
goto cleanup;
}
@@ -426,7 +426,8 @@ check_ocsp_response(gnutls_x509_crt_t cert,
ret = gnutls_ocsp_resp_get_nonce(resp, NULL, &rnonce);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
if (verbose)
- fprintf(stderr, "*** The OCSP reply did not include the requested nonce.\n");
+ fprintf(stderr,
+ "*** The OCSP reply did not include the requested nonce.\n");
goto finish_ok;
}
@@ -436,9 +437,10 @@ check_ocsp_response(gnutls_x509_crt_t cert,
exit(1);
}
- if (rnonce.size != nonce->size || memcmp(nonce->data, rnonce.data,
- nonce->size) != 0) {
- fprintf(stderr, "nonce in the response doesn't match\n");
+ if (rnonce.size != nonce->size
+ || memcmp(nonce->data, rnonce.data, nonce->size) != 0) {
+ fprintf(stderr,
+ "nonce in the response doesn't match\n");
exit(1);
}
diff --git a/src/ocsptool-common.h b/src/ocsptool-common.h
index 76f16b0b92..8110217408 100644
--- a/src/ocsptool-common.h
+++ b/src/ocsptool-common.h
@@ -19,9 +19,9 @@
*/
#ifndef GNUTLS_SRC_OCSPTOOL_COMMON_H
-#define GNUTLS_SRC_OCSPTOOL_COMMON_H
+# define GNUTLS_SRC_OCSPTOOL_COMMON_H
-#include <gnutls/ocsp.h>
+# include <gnutls/ocsp.h>
enum {
ACTION_NONE,
@@ -34,15 +34,14 @@ enum {
extern void ocsptool_version(void);
void
_generate_request(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
- gnutls_datum_t * rdata, gnutls_datum_t* nonce);
+ gnutls_datum_t * rdata, gnutls_datum_t * nonce);
int send_ocsp_request(const char *server,
gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
- gnutls_datum_t * resp_data, gnutls_datum_t* nonce);
+ gnutls_datum_t * resp_data, gnutls_datum_t * nonce);
void print_ocsp_verify_res(unsigned int output);
int
check_ocsp_response(gnutls_x509_crt_t cert, gnutls_x509_crt_t issuer,
- gnutls_datum_t * data, gnutls_datum_t *nonce,
- int verbose);
+ gnutls_datum_t * data, gnutls_datum_t * nonce, int verbose);
-#endif /* GNUTLS_SRC_OCSPTOOL_COMMON_H */
+#endif /* GNUTLS_SRC_OCSPTOOL_COMMON_H */
diff --git a/src/ocsptool.c b/src/ocsptool.c
index 8e558dfb83..86df3331a7 100644
--- a/src/ocsptool.c
+++ b/src/ocsptool.c
@@ -31,7 +31,7 @@
#include <gnutls/x509.h>
#include <gnutls/crypto.h>
-#include <unistd.h> /* getpass */
+#include <unistd.h> /* getpass */
/* Gnulib portability files. */
#include <read-file.h>
@@ -44,7 +44,7 @@
FILE *outfile;
static unsigned int incert_format, outcert_format;
-static const char *outfile_name = NULL; /* to delete on exit */
+static const char *outfile_name = NULL; /* to delete on exit */
FILE *infile;
static unsigned int encoding;
unsigned int verbose = 0;
@@ -99,16 +99,15 @@ static void request_info(void)
if (HAVE_OPT(LOAD_REQUEST))
dat.data =
- (void *) read_file(OPT_ARG(LOAD_REQUEST), RF_BINARY, &size);
+ (void *)read_file(OPT_ARG(LOAD_REQUEST), RF_BINARY, &size);
else
- dat.data = (void *) fread_file(infile, 0, &size);
+ dat.data = (void *)fread_file(infile, 0, &size);
if (dat.data == NULL) {
fprintf(stderr, "error reading request\n");
app_exit(1);
}
dat.size = size;
-
ret = gnutls_ocsp_req_import(req, &dat);
free(dat.data);
if (ret < 0) {
@@ -119,8 +118,7 @@ static void request_info(void)
ret = gnutls_ocsp_req_print(req, GNUTLS_OCSP_PRINT_FULL, &dat);
if (ret != 0) {
- fprintf(stderr, "ocsp_req_print: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "ocsp_req_print: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -133,7 +131,8 @@ static void request_info(void)
}
if (outcert_format == GNUTLS_X509_FMT_PEM) {
- fprintf(stderr, "Cannot export requests into PEM form\n");
+ fprintf(stderr,
+ "Cannot export requests into PEM form\n");
app_exit(1);
} else {
fwrite(rbuf.data, 1, rbuf.size, outfile);
@@ -162,8 +161,7 @@ static void _response_info(const gnutls_datum_t * data, unsigned force_print)
ret = gnutls_ocsp_resp_init(&resp);
if (ret < 0) {
- fprintf(stderr, "ocsp_resp_init: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "ocsp_resp_init: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -181,15 +179,13 @@ static void _response_info(const gnutls_datum_t * data, unsigned force_print)
if (ENABLED_OPT(VERBOSE))
ret =
- gnutls_ocsp_resp_print(resp, GNUTLS_OCSP_PRINT_FULL,
- &buf);
+ gnutls_ocsp_resp_print(resp, GNUTLS_OCSP_PRINT_FULL, &buf);
else
ret =
gnutls_ocsp_resp_print(resp, GNUTLS_OCSP_PRINT_COMPACT,
&buf);
if (ret != 0) {
- fprintf(stderr, "ocsp_resp_print: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "ocsp_resp_print: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -212,7 +208,8 @@ static void _response_info(const gnutls_datum_t * data, unsigned force_print)
}
if (force_print || !HAVE_OPT(OUTFILE)) {
- ret = gnutls_ocsp_resp_export2(resp, &rbuf, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_ocsp_resp_export2(resp, &rbuf, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "error exporting response: %s\n",
gnutls_strerror(ret));
@@ -235,9 +232,9 @@ static void response_info(void)
if (HAVE_OPT(LOAD_RESPONSE))
dat.data =
- (void *) read_file(OPT_ARG(LOAD_RESPONSE), RF_BINARY, &size);
+ (void *)read_file(OPT_ARG(LOAD_RESPONSE), RF_BINARY, &size);
else
- dat.data = (void *) fread_file(infile, 0, &size);
+ dat.data = (void *)fread_file(infile, 0, &size);
if (dat.data == NULL) {
fprintf(stderr, "error reading response\n");
app_exit(1);
@@ -249,7 +246,7 @@ static void response_info(void)
gnutls_free(dat.data);
}
-static void generate_request(gnutls_datum_t *nonce)
+static void generate_request(gnutls_datum_t * nonce)
{
gnutls_datum_t dat;
gnutls_x509_crt_t cert, issuer;
@@ -284,9 +281,8 @@ static void generate_request(gnutls_datum_t *nonce)
gnutls_free(dat.data);
}
-
static int _verify_response(gnutls_datum_t * data, gnutls_datum_t * nonce,
- gnutls_x509_crt_t signer, unsigned print_resp)
+ gnutls_x509_crt_t signer, unsigned print_resp)
{
gnutls_ocsp_resp_t resp;
int ret;
@@ -299,8 +295,7 @@ static int _verify_response(gnutls_datum_t * data, gnutls_datum_t * nonce,
ret = gnutls_ocsp_resp_init(&resp);
if (ret < 0) {
- fprintf(stderr, "ocsp_resp_init: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "ocsp_resp_init: %s\n", gnutls_strerror(ret));
app_exit(1);
}
@@ -335,9 +330,10 @@ static int _verify_response(gnutls_datum_t * data, gnutls_datum_t * nonce,
app_exit(1);
}
- if (rnonce.size != nonce->size || memcmp(nonce->data, rnonce.data,
- nonce->size) != 0) {
- fprintf(stderr, "nonce in the response doesn't match\n");
+ if (rnonce.size != nonce->size
+ || memcmp(nonce->data, rnonce.data, nonce->size) != 0) {
+ fprintf(stderr,
+ "nonce in the response doesn't match\n");
app_exit(1);
}
@@ -346,7 +342,7 @@ static int _verify_response(gnutls_datum_t * data, gnutls_datum_t * nonce,
if (HAVE_OPT(LOAD_TRUST)) {
dat.data =
- (void *) read_file(OPT_ARG(LOAD_TRUST), RF_BINARY, &size);
+ (void *)read_file(OPT_ARG(LOAD_TRUST), RF_BINARY, &size);
if (dat.data == NULL) {
fprintf(stderr, "error reading --load-trust: %s\n",
OPT_ARG(LOAD_TRUST));
@@ -363,8 +359,7 @@ static int _verify_response(gnutls_datum_t * data, gnutls_datum_t * nonce,
ret =
gnutls_x509_crt_list_import2(&x509_ca_list, &x509_ncas,
- &dat, GNUTLS_X509_FMT_PEM,
- 0);
+ &dat, GNUTLS_X509_FMT_PEM, 0);
if (ret < 0 || x509_ncas < 1) {
fprintf(stderr, "error parsing CAs: %s\n",
gnutls_strerror(ret));
@@ -388,8 +383,7 @@ static int _verify_response(gnutls_datum_t * data, gnutls_datum_t * nonce,
app_exit(1);
}
- printf("%d: %.*s\n", i, out.size,
- out.data);
+ printf("%d: %.*s\n", i, out.size, out.data);
gnutls_free(out.data);
}
printf("\n");
@@ -405,8 +399,7 @@ static int _verify_response(gnutls_datum_t * data, gnutls_datum_t * nonce,
}
if (HAVE_OPT(VERBOSE))
- fprintf(stdout, "Loaded %d trust anchors\n",
- x509_ncas);
+ fprintf(stdout, "Loaded %d trust anchors\n", x509_ncas);
ret = gnutls_ocsp_resp_verify(resp, list, &verify, vflags);
if (ret < 0) {
@@ -480,7 +473,7 @@ unsigned load_chain(gnutls_x509_crt_t chain[MAX_CHAIN_SIZE])
app_exit(1);
}
- for (i=0;i<list_size;i++)
+ for (i = 0; i < list_size; i++)
chain[i] = list[i];
gnutls_free(list);
return list_size;
@@ -510,7 +503,7 @@ unsigned load_chain(gnutls_x509_crt_t chain[MAX_CHAIN_SIZE])
}
}
-static void verify_response(gnutls_datum_t *nonce)
+static void verify_response(gnutls_datum_t * nonce)
{
gnutls_datum_t dat;
size_t size;
@@ -522,9 +515,9 @@ static void verify_response(gnutls_datum_t *nonce)
if (HAVE_OPT(LOAD_RESPONSE))
dat.data =
- (void *) read_file(OPT_ARG(LOAD_RESPONSE), RF_BINARY, &size);
+ (void *)read_file(OPT_ARG(LOAD_RESPONSE), RF_BINARY, &size);
else
- dat.data = (void *) fread_file(infile, 0, &size);
+ dat.data = (void *)fread_file(infile, 0, &size);
if (dat.data == NULL) {
fprintf(stderr, "error reading response\n");
app_exit(1);
@@ -545,7 +538,7 @@ static void verify_response(gnutls_datum_t *nonce)
v = _verify_response(&dat, nonce, signer, 1);
- for (i=0;i<chain_size;i++)
+ for (i = 0; i < chain_size; i++)
gnutls_x509_crt_deinit(chain[i]);
} else if (HAVE_OPT(LOAD_TRUST)) {
v = _verify_response(&dat, nonce, NULL, 1);
@@ -553,7 +546,8 @@ static void verify_response(gnutls_datum_t *nonce)
memset(&info, 0, sizeof(info));
info.verbose = verbose;
if (!HAVE_OPT(LOAD_SIGNER)) {
- fprintf(stderr, "Missing option --load-signer or --load-chain\n");
+ fprintf(stderr,
+ "Missing option --load-signer or --load-chain\n");
app_exit(1);
}
info.cert = OPT_ARG(LOAD_SIGNER);
@@ -586,17 +580,19 @@ static void ask_server(const char *url)
if (chain_size > 2 && HAVE_OPT(OUTFILE)) {
if (outcert_format != GNUTLS_X509_FMT_PEM) {
- fprintf(stderr, "error: You cannot combine --outfile when more than 2 certificates are found in a chain\n");
+ fprintf(stderr,
+ "error: You cannot combine --outfile when more than 2 certificates are found in a chain\n");
fprintf(stderr, "Did you mean to use --outpem?\n");
app_exit(1);
}
}
counter = chain_size;
- while(counter > 1) {
+ while (counter > 1) {
if (ENABLED_OPT(NONCE)) {
ret =
- gnutls_rnd(GNUTLS_RND_NONCE, nonce.data, nonce.size);
+ gnutls_rnd(GNUTLS_RND_NONCE, nonce.data,
+ nonce.size);
if (ret < 0) {
fprintf(stderr, "gnutls_rnd: %s\n",
gnutls_strerror(ret));
@@ -608,7 +604,8 @@ static void ask_server(const char *url)
}
ret =
- send_ocsp_request(url, chain[idx], chain[idx+1], &resp_data, n);
+ send_ocsp_request(url, chain[idx], chain[idx + 1],
+ &resp_data, n);
if (ret < 0) {
fprintf(stderr, "Cannot send OCSP request\n");
app_exit(1);
@@ -623,13 +620,14 @@ static void ask_server(const char *url)
info.verbose = verbose;
info.cert = OPT_ARG(LOAD_SIGNER);
- v = _verify_response(&resp_data, n, load_cert(1, &info), 0);
+ v = _verify_response(&resp_data, n, load_cert(1, &info),
+ 0);
} else {
if (!HAVE_OPT(LOAD_CHAIN))
fprintf(stderr,
"\nAssuming response's signer = issuer (use --load-signer to override).\n");
- v = _verify_response(&resp_data, n, chain[idx+1], 0);
+ v = _verify_response(&resp_data, n, chain[idx + 1], 0);
}
total_v += v;
@@ -640,7 +638,7 @@ static void ask_server(const char *url)
printf("\n");
}
- for (idx = 0;idx<chain_size;idx++) {
+ for (idx = 0; idx < chain_size; idx++) {
gnutls_x509_crt_deinit(chain[idx]);
}
@@ -709,7 +707,8 @@ int main(int argc, char **argv)
verify_response(NULL);
else if (HAVE_OPT(ASK)) {
if ((!HAVE_OPT(LOAD_CERT)) && (!HAVE_OPT(LOAD_CHAIN))) {
- fprintf(stderr, "This option required --load-chain or --load-cert\n");
+ fprintf(stderr,
+ "This option required --load-chain or --load-cert\n");
app_exit(1);
}
ask_server(OPT_ARG(ASK));
diff --git a/src/p11tool.c b/src/p11tool.c
index e60f74a9f1..d91926b79e 100644
--- a/src/p11tool.c
+++ b/src/p11tool.c
@@ -69,7 +69,6 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "|<%d>| %s", level, str);
}
-
int main(int argc, char **argv)
{
cmd_parser(argc, argv);
@@ -78,10 +77,10 @@ int main(int argc, char **argv)
}
static
-unsigned opt_to_flags(common_info_st *cinfo, unsigned *key_usage)
+unsigned opt_to_flags(common_info_st * cinfo, unsigned *key_usage)
{
unsigned flags = 0;
-
+
*key_usage = 0;
if (HAVE_OPT(MARK_PRIVATE)) {
@@ -90,7 +89,7 @@ unsigned opt_to_flags(common_info_st *cinfo, unsigned *key_usage)
} else {
flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE;
}
- } else { /* if not given mark as private the private objects, and public the public ones */
+ } else { /* if not given mark as private the private objects, and public the public ones */
if (cinfo->privkey)
flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE;
else if (cinfo->pubkey || cinfo->cert)
@@ -103,12 +102,10 @@ unsigned opt_to_flags(common_info_st *cinfo, unsigned *key_usage)
}
if (HAVE_OPT(MARK_DISTRUSTED)) {
- flags |=
- GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED;
+ flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED;
} else {
if (ENABLED_OPT(MARK_TRUSTED))
- flags |=
- GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED;
+ flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED;
}
if (ENABLED_OPT(MARK_SIGN))
@@ -118,8 +115,7 @@ unsigned opt_to_flags(common_info_st *cinfo, unsigned *key_usage)
*key_usage |= GNUTLS_KEY_DECIPHER_ONLY;
if (ENABLED_OPT(MARK_CA))
- flags |=
- GNUTLS_PKCS11_OBJ_FLAG_MARK_CA;
+ flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_CA;
if (ENABLED_OPT(MARK_WRAP))
flags |= GNUTLS_PKCS11_OBJ_FLAG_MARK_KEY_WRAP;
@@ -321,12 +317,14 @@ static void cmd_parser(int argc, char **argv)
} else if (HAVE_OPT(EXPORT)) {
pkcs11_export(outfile, url, flags, &cinfo);
} else if (HAVE_OPT(EXPORT_STAPLED)) {
- pkcs11_export(outfile, url, flags|GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT, &cinfo);
+ pkcs11_export(outfile, url,
+ flags |
+ GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT,
+ &cinfo);
} else if (HAVE_OPT(EXPORT_CHAIN)) {
pkcs11_export_chain(outfile, url, flags, &cinfo);
} else if (HAVE_OPT(WRITE)) {
- pkcs11_write(outfile, url, label, id,
- flags, &cinfo);
+ pkcs11_write(outfile, url, label, id, flags, &cinfo);
} else if (HAVE_OPT(TEST_SIGN)) {
pkcs11_test_sign(outfile, url, flags, &cinfo);
} else if (HAVE_OPT(INITIALIZE)) {
@@ -343,32 +341,30 @@ static void cmd_parser(int argc, char **argv)
app_exit(1);
pkcs11_generate(outfile, url, key_type,
get_bits(key_type, bits, sec_param, 0),
- label, id, detailed_url,
- flags, &cinfo);
+ label, id, detailed_url, flags, &cinfo);
} else if (HAVE_OPT(GENERATE_ECC)) {
key_type = GNUTLS_PK_EC;
pkcs11_generate(outfile, url, key_type,
get_bits(key_type, bits, sec_param, 0),
- label, id, detailed_url,
- flags, &cinfo);
+ label, id, detailed_url, flags, &cinfo);
} else if (HAVE_OPT(GENERATE_RSA)) {
key_type = GNUTLS_PK_RSA;
pkcs11_generate(outfile, url, key_type,
get_bits(key_type, bits, sec_param, 0),
- label, id, detailed_url,
- flags, &cinfo);
+ label, id, detailed_url, flags, &cinfo);
} else if (HAVE_OPT(GENERATE_DSA)) {
key_type = GNUTLS_PK_DSA;
pkcs11_generate(outfile, url, key_type,
get_bits(key_type, bits, sec_param, 0),
- label, id, detailed_url,
- flags, &cinfo);
+ label, id, detailed_url, flags, &cinfo);
} else if (HAVE_OPT(EXPORT_PUBKEY)) {
pkcs11_export_pubkey(outfile, url, detailed_url, flags, &cinfo);
} else if (HAVE_OPT(SET_ID)) {
- pkcs11_set_id(outfile, url, detailed_url, flags, &cinfo, OPT_ARG(SET_ID));
+ pkcs11_set_id(outfile, url, detailed_url, flags, &cinfo,
+ OPT_ARG(SET_ID));
} else if (HAVE_OPT(SET_LABEL)) {
- pkcs11_set_label(outfile, url, detailed_url, flags, &cinfo, OPT_ARG(SET_LABEL));
+ pkcs11_set_label(outfile, url, detailed_url, flags, &cinfo,
+ OPT_ARG(SET_LABEL));
} else {
USAGE(1);
}
diff --git a/src/p11tool.h b/src/p11tool.h
index 073bc79ca7..27f52fe7ea 100644
--- a/src/p11tool.h
+++ b/src/p11tool.h
@@ -21,13 +21,12 @@
*/
#ifndef GNUTLS_SRC_P11TOOL_H
-#define GNUTLS_SRC_P11TOOL_H
+# define GNUTLS_SRC_P11TOOL_H
-#include "certtool-common.h"
+# include "certtool-common.h"
void pkcs11_list(FILE * outfile, const char *url, int type,
- unsigned int flags, unsigned int detailed,
- common_info_st *);
+ unsigned int flags, unsigned int detailed, common_info_st *);
void pkcs11_mechanism_list(FILE * outfile, const char *url,
unsigned int flags, common_info_st *);
void pkcs11_get_random(FILE * outfile, const char *url,
@@ -36,12 +35,12 @@ void pkcs11_export(FILE * outfile, const char *pkcs11_url,
unsigned int flags, common_info_st *);
void
pkcs11_export_chain(FILE * outfile, const char *url, unsigned int flags,
- common_info_st * info);
+ common_info_st * info);
void pkcs11_token_list(FILE * outfile, unsigned int detailed,
common_info_st *, unsigned brief);
void pkcs11_test_sign(FILE * outfile, const char *pkcs11_url,
- unsigned int flags, common_info_st *);
+ unsigned int flags, common_info_st *);
void pkcs11_write(FILE * outfile, const char *pkcs11_url,
const char *label, const char *id,
unsigned int flags, common_info_st *);
@@ -49,27 +48,27 @@ void pkcs11_delete(FILE * outfile, const char *pkcs11_url,
unsigned int flags, common_info_st *);
void pkcs11_init(FILE * outfile, const char *pkcs11_url, const char *label,
common_info_st *);
-void pkcs11_set_token_pin(FILE * outfile, const char *pkcs11_url, common_info_st *, unsigned so);
+void pkcs11_set_token_pin(FILE * outfile, const char *pkcs11_url,
+ common_info_st *, unsigned so);
void pkcs11_generate(FILE * outfile, const char *url,
gnutls_pk_algorithm_t type, unsigned int bits,
const char *label, const char *id, int detailed,
unsigned int flags, common_info_st * info);
void pkcs11_export_pubkey(FILE * outfile, const char *url, int detailed,
- unsigned int flags, common_info_st * info);
+ unsigned int flags, common_info_st * info);
void pkcs11_set_id(FILE * outfile, const char *url, int detailed,
- unsigned int flags, common_info_st * info,
- const char *id);
+ unsigned int flags, common_info_st * info, const char *id);
void pkcs11_set_label(FILE * outfile, const char *url, int detailed,
- unsigned int flags, common_info_st * info,
- const char *label);
+ unsigned int flags, common_info_st * info,
+ const char *label);
-#define PKCS11_TYPE_CRT_ALL 1
-#define PKCS11_TYPE_TRUSTED 2
-#define PKCS11_TYPE_PK 3
-#define PKCS11_TYPE_ALL 4
-#define PKCS11_TYPE_PRIVKEY 5
-#define PKCS11_TYPE_INFO 6
+# define PKCS11_TYPE_CRT_ALL 1
+# define PKCS11_TYPE_TRUSTED 2
+# define PKCS11_TYPE_PK 3
+# define PKCS11_TYPE_ALL 4
+# define PKCS11_TYPE_PRIVKEY 5
+# define PKCS11_TYPE_INFO 6
-#endif /* GNUTLS_SRC_P11TOOL_H */
+#endif /* GNUTLS_SRC_P11TOOL_H */
diff --git a/src/pkcs11.c b/src/pkcs11.c
index 0ab956f011..2016d56ec9 100644
--- a/src/pkcs11.c
+++ b/src/pkcs11.c
@@ -73,7 +73,6 @@ static char *_saved_url = NULL;
} \
}
-
void
pkcs11_delete(FILE * outfile, const char *url,
unsigned int login_flags, common_info_st * info)
@@ -81,7 +80,8 @@ pkcs11_delete(FILE * outfile, const char *url,
int ret;
unsigned int obj_flags = 0;
- if (login_flags) obj_flags = login_flags;
+ if (login_flags)
+ obj_flags = login_flags;
pkcs11_common(info);
@@ -110,7 +110,8 @@ pkcs11_delete(FILE * outfile, const char *url,
}
static
-const char *get_key_algo_type(gnutls_pkcs11_obj_type_t otype, const char *objurl, unsigned flags, time_t *exp)
+const char *get_key_algo_type(gnutls_pkcs11_obj_type_t otype,
+ const char *objurl, unsigned flags, time_t * exp)
{
int ret;
gnutls_pubkey_t pubkey = NULL;
@@ -126,96 +127,115 @@ const char *get_key_algo_type(gnutls_pkcs11_obj_type_t otype, const char *objurl
*exp = -1;
switch (otype) {
- case GNUTLS_PKCS11_OBJ_X509_CRT:
- ret = gnutls_x509_crt_init(&crt);
- if (ret < 0)
- goto fail;
-
- ret = gnutls_x509_crt_import_url(crt, objurl, flags);
- if (ret < 0)
- goto fail;
- ret = gnutls_x509_crt_get_pk_algorithm(crt, &bits);
- if (ret < 0)
- goto fail;
- pk = ret;
-
- p = gnutls_pk_get_name(pk);
- if (p) {
- if ((pk == GNUTLS_PK_RSA || pk == GNUTLS_PK_DSA) && bits > 0) {
- snprintf(str, sizeof(str), "%s-%d", p, bits);
- p = str;
- } else if (pk == GNUTLS_PK_ECDSA && gnutls_x509_crt_get_pk_ecc_raw(crt, &curve, NULL, NULL) >= 0) {
- snprintf(str, sizeof(str), "%s-%s", p, gnutls_ecc_curve_get_name(curve));
- p = str;
- }
+ case GNUTLS_PKCS11_OBJ_X509_CRT:
+ ret = gnutls_x509_crt_init(&crt);
+ if (ret < 0)
+ goto fail;
+
+ ret = gnutls_x509_crt_import_url(crt, objurl, flags);
+ if (ret < 0)
+ goto fail;
+ ret = gnutls_x509_crt_get_pk_algorithm(crt, &bits);
+ if (ret < 0)
+ goto fail;
+ pk = ret;
+
+ p = gnutls_pk_get_name(pk);
+ if (p) {
+ if ((pk == GNUTLS_PK_RSA || pk == GNUTLS_PK_DSA)
+ && bits > 0) {
+ snprintf(str, sizeof(str), "%s-%d", p, bits);
+ p = str;
+ } else if (pk == GNUTLS_PK_ECDSA
+ && gnutls_x509_crt_get_pk_ecc_raw(crt,
+ &curve,
+ NULL,
+ NULL) >=
+ 0) {
+ snprintf(str, sizeof(str), "%s-%s", p,
+ gnutls_ecc_curve_get_name(curve));
+ p = str;
}
+ }
- if (exp)
- *exp = gnutls_x509_crt_get_expiration_time(crt);
+ if (exp)
+ *exp = gnutls_x509_crt_get_expiration_time(crt);
- gnutls_x509_crt_deinit(crt);
- return p;
- case GNUTLS_PKCS11_OBJ_PUBKEY:
- ret = gnutls_pubkey_init(&pubkey);
- if (ret < 0)
- goto fail;
-
- ret = gnutls_pubkey_import_url(pubkey, objurl, flags);
- if (ret < 0)
- goto fail;
- ret = gnutls_pubkey_get_pk_algorithm(pubkey, &bits);
- if (ret < 0)
- goto fail;
- pk = ret;
-
- p = gnutls_pk_get_name(pk);
- if (p) {
- if ((pk == GNUTLS_PK_RSA || pk == GNUTLS_PK_DSA) && bits > 0) {
- snprintf(str, sizeof(str), "%s-%d", p, bits);
- p = str;
- } else if (pk == GNUTLS_PK_ECDSA && gnutls_pubkey_export_ecc_raw(pubkey, &curve, NULL, NULL) >= 0) {
- snprintf(str, sizeof(str), "%s-%s", p, gnutls_ecc_curve_get_name(curve));
- p = str;
- }
+ gnutls_x509_crt_deinit(crt);
+ return p;
+ case GNUTLS_PKCS11_OBJ_PUBKEY:
+ ret = gnutls_pubkey_init(&pubkey);
+ if (ret < 0)
+ goto fail;
+
+ ret = gnutls_pubkey_import_url(pubkey, objurl, flags);
+ if (ret < 0)
+ goto fail;
+ ret = gnutls_pubkey_get_pk_algorithm(pubkey, &bits);
+ if (ret < 0)
+ goto fail;
+ pk = ret;
+
+ p = gnutls_pk_get_name(pk);
+ if (p) {
+ if ((pk == GNUTLS_PK_RSA || pk == GNUTLS_PK_DSA)
+ && bits > 0) {
+ snprintf(str, sizeof(str), "%s-%d", p, bits);
+ p = str;
+ } else if (pk == GNUTLS_PK_ECDSA
+ && gnutls_pubkey_export_ecc_raw(pubkey,
+ &curve, NULL,
+ NULL) >= 0) {
+ snprintf(str, sizeof(str), "%s-%s", p,
+ gnutls_ecc_curve_get_name(curve));
+ p = str;
}
+ }
- gnutls_pubkey_deinit(pubkey);
- return p;
- case GNUTLS_PKCS11_OBJ_PRIVKEY:
- ret = gnutls_privkey_init(&privkey);
- if (ret < 0)
- goto fail;
-
- ret = gnutls_privkey_import_url(privkey, objurl, flags);
- if (ret < 0)
- goto fail;
- ret = gnutls_privkey_get_pk_algorithm(privkey, &bits);
- if (ret < 0)
- goto fail;
- pk = ret;
-
- p = gnutls_pk_get_name(pk);
- if (p) {
- if ((pk == GNUTLS_PK_RSA || pk == GNUTLS_PK_DSA) && bits > 0) {
- snprintf(str, sizeof(str), "%s-%d", p, bits);
- p = str;
- } else if (pk == GNUTLS_PK_ECDSA && gnutls_privkey_export_ecc_raw(privkey, &curve, NULL, NULL, NULL) >= 0) {
- snprintf(str, sizeof(str), "%s-%s", p, gnutls_ecc_curve_get_name(curve));
- p = str;
- }
+ gnutls_pubkey_deinit(pubkey);
+ return p;
+ case GNUTLS_PKCS11_OBJ_PRIVKEY:
+ ret = gnutls_privkey_init(&privkey);
+ if (ret < 0)
+ goto fail;
+
+ ret = gnutls_privkey_import_url(privkey, objurl, flags);
+ if (ret < 0)
+ goto fail;
+ ret = gnutls_privkey_get_pk_algorithm(privkey, &bits);
+ if (ret < 0)
+ goto fail;
+ pk = ret;
+
+ p = gnutls_pk_get_name(pk);
+ if (p) {
+ if ((pk == GNUTLS_PK_RSA || pk == GNUTLS_PK_DSA)
+ && bits > 0) {
+ snprintf(str, sizeof(str), "%s-%d", p, bits);
+ p = str;
+ } else if (pk == GNUTLS_PK_ECDSA
+ && gnutls_privkey_export_ecc_raw(privkey,
+ &curve,
+ NULL, NULL,
+ NULL) >=
+ 0) {
+ snprintf(str, sizeof(str), "%s-%s", p,
+ gnutls_ecc_curve_get_name(curve));
+ p = str;
}
+ }
- gnutls_privkey_deinit(privkey);
- return p;
- default:
+ gnutls_privkey_deinit(privkey);
+ return p;
+ default:
fail:
- if (crt)
- gnutls_x509_crt_deinit(crt);
- if (pubkey)
- gnutls_pubkey_deinit(pubkey);
- if (privkey)
- gnutls_privkey_deinit(privkey);
- return NULL;
+ if (crt)
+ gnutls_x509_crt_deinit(crt);
+ if (pubkey)
+ gnutls_pubkey_deinit(pubkey);
+ if (privkey)
+ gnutls_privkey_deinit(privkey);
+ return NULL;
}
}
@@ -253,10 +273,11 @@ pkcs11_list(FILE * outfile, const char *url, int type, unsigned int flags,
attrs = GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY;
} else if (type == PKCS11_TYPE_CRT_ALL) {
attrs = GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL;
- if (print_exts != 0) print_exts++;
+ if (print_exts != 0)
+ print_exts++;
} else if (type == PKCS11_TYPE_PRIVKEY) {
attrs = GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY;
- } else { /* also PKCS11_TYPE_INFO */
+ } else { /* also PKCS11_TYPE_INFO */
attrs = GNUTLS_PKCS11_OBJ_ATTR_ALL;
}
@@ -305,7 +326,8 @@ pkcs11_list(FILE * outfile, const char *url, int type, unsigned int flags,
/* copy vendor query (e.g. pin-value) from the original URL */
vendor = strrchr(url, '?');
if (vendor) {
- objurl = gnutls_malloc(strlen(output) + strlen(vendor) + 1);
+ objurl =
+ gnutls_malloc(strlen(output) + strlen(vendor) + 1);
strcpy(objurl, output);
strcat(objurl, vendor);
} else {
@@ -329,7 +351,8 @@ pkcs11_list(FILE * outfile, const char *url, int type, unsigned int flags,
}
if (otype == GNUTLS_PKCS11_OBJ_X509_CRT && exp != -1) {
- fprintf(outfile, "\tExpires: %s\n", simple_ctime(&exp, timebuf));
+ fprintf(outfile, "\tExpires: %s\n",
+ simple_ctime(&exp, timebuf));
}
gnutls_free(output);
@@ -369,8 +392,9 @@ pkcs11_list(FILE * outfile, const char *url, int type, unsigned int flags,
if (ret == GNUTLS_E_SHORT_MEMORY_BUFFER) {
fprintf(outfile, "\tID: (too long)\n");
} else {
- fprintf(stderr, "Error in %s:%d: %s\n", __func__,
- __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "Error in %s:%d: %s\n",
+ __func__, __LINE__,
+ gnutls_strerror(ret));
app_exit(1);
}
} else {
@@ -378,24 +402,36 @@ pkcs11_list(FILE * outfile, const char *url, int type, unsigned int flags,
}
if (otype == GNUTLS_PKCS11_OBJ_X509_CRT && print_exts > 0) {
- ret = gnutls_pkcs11_obj_get_exts(crt_list[i], &exts, &exts_size, 0);
+ ret =
+ gnutls_pkcs11_obj_get_exts(crt_list[i], &exts,
+ &exts_size, 0);
if (ret >= 0 && exts_size > 0) {
gnutls_datum_t txt;
if (print_exts > 1) {
- fprintf(outfile, "\tAttached extensions:\n");
- ret = gnutls_x509_ext_print(exts, exts_size, 0, &txt);
+ fprintf(outfile,
+ "\tAttached extensions:\n");
+ ret =
+ gnutls_x509_ext_print(exts,
+ exts_size, 0,
+ &txt);
if (ret >= 0) {
- fprintf(outfile, "%s", (char*)txt.data);
+ fprintf(outfile, "%s",
+ (char *)txt.data);
gnutls_free(txt.data);
}
} else {
- fprintf(outfile, "\tAttached extensions:");
- for (j=0;j<exts_size;j++) {
- fprintf(outfile, "%s%s", exts[j].oid, (j!=exts_size-1)?",":" ");
+ fprintf(outfile,
+ "\tAttached extensions:");
+ for (j = 0; j < exts_size; j++) {
+ fprintf(outfile, "%s%s",
+ exts[j].oid,
+ (j !=
+ exts_size -
+ 1) ? "," : " ");
}
}
- for (j=0;j<exts_size;j++) {
+ for (j = 0; j < exts_size; j++) {
gnutls_x509_ext_deinit(&exts[j]);
}
gnutls_free(exts);
@@ -416,12 +452,12 @@ pkcs11_list(FILE * outfile, const char *url, int type, unsigned int flags,
void
pkcs11_test_sign(FILE * outfile, const char *url, unsigned int flags,
- common_info_st * info)
+ common_info_st * info)
{
gnutls_privkey_t privkey;
gnutls_pubkey_t pubkey;
int ret;
- gnutls_datum_t data, sig = {NULL, 0};
+ gnutls_datum_t data, sig = { NULL, 0 };
int pk;
gnutls_digest_algorithm_t hash;
gnutls_sign_algorithm_t sig_algo;
@@ -430,8 +466,8 @@ pkcs11_test_sign(FILE * outfile, const char *url, unsigned int flags,
FIX(url, outfile, 0, info);
- data.data = (void*)TEST_DATA;
- data.size = sizeof(TEST_DATA)-1;
+ data.data = (void *)TEST_DATA;
+ data.size = sizeof(TEST_DATA) - 1;
ret = gnutls_privkey_init(&privkey);
if (ret < 0) {
@@ -454,7 +490,9 @@ pkcs11_test_sign(FILE * outfile, const char *url, unsigned int flags,
app_exit(1);
}
- ret = gnutls_pubkey_import_privkey(pubkey, privkey, GNUTLS_KEY_DIGITAL_SIGNATURE, flags);
+ ret =
+ gnutls_pubkey_import_privkey(pubkey, privkey,
+ GNUTLS_KEY_DIGITAL_SIGNATURE, flags);
if (ret < 0) {
fprintf(stderr, "Cannot import public key: %s\n",
gnutls_strerror(ret));
@@ -473,7 +511,8 @@ pkcs11_test_sign(FILE * outfile, const char *url, unsigned int flags,
sig_algo = gnutls_pk_to_sign(pk, hash);
if (sig_algo == GNUTLS_SIGN_UNKNOWN) {
- fprintf(stderr, "No supported signature algorithm for %s and %s\n",
+ fprintf(stderr,
+ "No supported signature algorithm for %s and %s\n",
gnutls_pk_get_name(pk), gnutls_digest_get_name(hash));
app_exit(1);
}
@@ -482,8 +521,7 @@ pkcs11_test_sign(FILE * outfile, const char *url, unsigned int flags,
ret = gnutls_privkey_sign_data2(privkey, sig_algo, 0, &data, &sig);
if (ret < 0) {
- fprintf(stderr, "Cannot sign data: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "Cannot sign data: %s\n", gnutls_strerror(ret));
/* in case of unsupported signature algorithm allow
* calling apps to distinguish error codes (used
* by testpkcs11.sh */
@@ -495,8 +533,7 @@ pkcs11_test_sign(FILE * outfile, const char *url, unsigned int flags,
fprintf(stderr, "ok\n");
fprintf(stderr, "Verifying against private key parameters... ");
- ret = gnutls_pubkey_verify_data2(pubkey, sig_algo,
- 0, &data, &sig);
+ ret = gnutls_pubkey_verify_data2(pubkey, sig_algo, 0, &data, &sig);
if (ret < 0) {
fprintf(stderr, "Cannot verify signed data: %s\n",
gnutls_strerror(ret));
@@ -516,7 +553,8 @@ pkcs11_test_sign(FILE * outfile, const char *url, unsigned int flags,
ret = gnutls_pubkey_import_url(pubkey, url, flags);
if (ret < 0) {
- fprintf(stderr, "Cannot find a corresponding public key object in token: %s\n",
+ fprintf(stderr,
+ "Cannot find a corresponding public key object in token: %s\n",
gnutls_strerror(ret));
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
app_exit(0);
@@ -524,8 +562,7 @@ pkcs11_test_sign(FILE * outfile, const char *url, unsigned int flags,
}
fprintf(stderr, "Verifying against public key in the token... ");
- ret = gnutls_pubkey_verify_data2(pubkey, sig_algo,
- 0, &data, &sig);
+ ret = gnutls_pubkey_verify_data2(pubkey, sig_algo, 0, &data, &sig);
if (ret < 0) {
fprintf(stderr, "Cannot verify signed data: %s\n",
gnutls_strerror(ret));
@@ -570,7 +607,7 @@ pkcs11_export(FILE * outfile, const char *url, unsigned int flags,
ret = gnutls_pkcs11_obj_export3(obj, info->outcert_format, &t);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__,
- __LINE__, gnutls_strerror(ret));
+ __LINE__, gnutls_strerror(ret));
app_exit(1);
}
@@ -588,7 +625,7 @@ pkcs11_export(FILE * outfile, const char *url, unsigned int flags,
void
pkcs11_export_chain(FILE * outfile, const char *url, unsigned int flags,
- common_info_st * info)
+ common_info_st * info)
{
gnutls_pkcs11_obj_t obj;
gnutls_x509_crt_t xcrt;
@@ -625,14 +662,14 @@ pkcs11_export_chain(FILE * outfile, const char *url, unsigned int flags,
ret = gnutls_x509_crt_import_pkcs11(xcrt, obj);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__,
- __LINE__, gnutls_strerror(ret));
+ __LINE__, gnutls_strerror(ret));
app_exit(1);
}
ret = gnutls_pkcs11_obj_export3(obj, GNUTLS_X509_FMT_PEM, &t);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__,
- __LINE__, gnutls_strerror(ret));
+ __LINE__, gnutls_strerror(ret));
app_exit(1);
}
fwrite(t.data, 1, t.size, outfile);
@@ -642,12 +679,14 @@ pkcs11_export_chain(FILE * outfile, const char *url, unsigned int flags,
gnutls_pkcs11_obj_deinit(obj);
do {
- ret = gnutls_pkcs11_get_raw_issuer(url, xcrt, &t, GNUTLS_X509_FMT_PEM, 0);
+ ret =
+ gnutls_pkcs11_get_raw_issuer(url, xcrt, &t,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__,
- __LINE__, gnutls_strerror(ret));
+ __LINE__, gnutls_strerror(ret));
app_exit(1);
}
@@ -659,14 +698,14 @@ pkcs11_export_chain(FILE * outfile, const char *url, unsigned int flags,
ret = gnutls_x509_crt_init(&xcrt);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__,
- __LINE__, gnutls_strerror(ret));
+ __LINE__, gnutls_strerror(ret));
app_exit(1);
}
ret = gnutls_x509_crt_import(xcrt, &t, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__,
- __LINE__, gnutls_strerror(ret));
+ __LINE__, gnutls_strerror(ret));
app_exit(1);
}
@@ -678,7 +717,7 @@ pkcs11_export_chain(FILE * outfile, const char *url, unsigned int flags,
break;
}
- } while(1);
+ } while (1);
UNFIX;
return;
@@ -709,7 +748,7 @@ char *get_single_token_url(common_info_st * info)
}
static
-void print_type(FILE *outfile, unsigned flags)
+void print_type(FILE * outfile, unsigned flags)
{
unsigned print = 0;
@@ -927,13 +966,14 @@ pkcs11_token_list(FILE * outfile, unsigned int detailed,
return;
}
-static void find_same_pubkey_with_id(const char *url, gnutls_x509_crt_t crt, gnutls_datum_t *cid, unsigned flags)
+static void find_same_pubkey_with_id(const char *url, gnutls_x509_crt_t crt,
+ gnutls_datum_t * cid, unsigned flags)
{
gnutls_pkcs11_obj_t *obj_list;
unsigned int obj_list_size = 0, i;
int ret;
- gnutls_datum_t praw = {NULL, 0};
- gnutls_datum_t praw2 = {NULL, 0};
+ gnutls_datum_t praw = { NULL, 0 };
+ gnutls_datum_t praw2 = { NULL, 0 };
gnutls_pubkey_t pubkey;
uint8_t buf[128];
size_t size;
@@ -948,7 +988,8 @@ static void find_same_pubkey_with_id(const char *url, gnutls_x509_crt_t crt, gnu
ret = gnutls_pubkey_import_x509(pubkey, crt, 0);
if (ret < 0) {
- fprintf(stderr, "error: cannot import public key from certificate\n");
+ fprintf(stderr,
+ "error: cannot import public key from certificate\n");
gnutls_pubkey_deinit(pubkey);
return;
}
@@ -962,7 +1003,9 @@ static void find_same_pubkey_with_id(const char *url, gnutls_x509_crt_t crt, gnu
ret =
gnutls_pkcs11_obj_list_import_url4(&obj_list, &obj_list_size,
- url, GNUTLS_PKCS11_OBJ_FLAG_PUBKEY|flags);
+ url,
+ GNUTLS_PKCS11_OBJ_FLAG_PUBKEY |
+ flags);
if (ret < 0) {
fprintf(stderr, "Error in obj_list_import (1): %s\n",
gnutls_strerror(ret));
@@ -979,9 +1022,7 @@ static void find_same_pubkey_with_id(const char *url, gnutls_x509_crt_t crt, gnu
if (otype != GNUTLS_PKCS11_OBJ_PUBKEY)
goto cont;
- ret =
- gnutls_pkcs11_obj_export_url(obj_list[i], 0,
- &purl);
+ ret = gnutls_pkcs11_obj_export_url(obj_list[i], 0, &purl);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__,
__LINE__, gnutls_strerror(ret));
@@ -990,21 +1031,24 @@ static void find_same_pubkey_with_id(const char *url, gnutls_x509_crt_t crt, gnu
ret = gnutls_pkcs11_obj_export2(obj_list[i], &praw2);
if (ret < 0) {
- fprintf(stderr, "error: cannot export object: %s\n", purl);
+ fprintf(stderr, "error: cannot export object: %s\n",
+ purl);
goto cont;
}
- if (praw2.size == praw.size && memcmp(praw2.data, praw.data, praw.size) == 0) {
+ if (praw2.size == praw.size
+ && memcmp(praw2.data, praw.data, praw.size) == 0) {
/* found - now extract the CKA_ID */
size = sizeof(buf);
ret =
gnutls_pkcs11_obj_get_info(obj_list[i],
- GNUTLS_PKCS11_OBJ_ID,
- buf, &size);
+ GNUTLS_PKCS11_OBJ_ID,
+ buf, &size);
if (ret < 0) {
- fprintf(stderr, "Error in %s:%d: %s\n", __func__,
- __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "Error in %s:%d: %s\n",
+ __func__, __LINE__,
+ gnutls_strerror(ret));
app_exit(1);
}
@@ -1030,13 +1074,14 @@ static void find_same_pubkey_with_id(const char *url, gnutls_x509_crt_t crt, gnu
return;
}
-static void find_same_privkey_with_id(const char *url, gnutls_x509_crt_t crt, gnutls_datum_t *cid, unsigned flags)
+static void find_same_privkey_with_id(const char *url, gnutls_x509_crt_t crt,
+ gnutls_datum_t * cid, unsigned flags)
{
gnutls_pkcs11_obj_t *obj_list;
unsigned int obj_list_size = 0, i;
int ret;
- gnutls_datum_t praw = {NULL, 0};
- gnutls_datum_t praw2 = {NULL, 0};
+ gnutls_datum_t praw = { NULL, 0 };
+ gnutls_datum_t praw2 = { NULL, 0 };
gnutls_pubkey_t pubkey;
gnutls_privkey_t privkey;
uint8_t buf[128];
@@ -1052,7 +1097,8 @@ static void find_same_privkey_with_id(const char *url, gnutls_x509_crt_t crt, gn
ret = gnutls_pubkey_import_x509(pubkey, crt, 0);
if (ret < 0) {
- fprintf(stderr, "error: cannot import public key from certificate\n");
+ fprintf(stderr,
+ "error: cannot import public key from certificate\n");
gnutls_pubkey_deinit(pubkey);
return;
}
@@ -1066,7 +1112,9 @@ static void find_same_privkey_with_id(const char *url, gnutls_x509_crt_t crt, gn
ret =
gnutls_pkcs11_obj_list_import_url4(&obj_list, &obj_list_size,
- url, GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY|flags);
+ url,
+ GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY |
+ flags);
if (ret < 0) {
fprintf(stderr, "Error in obj_list_import (1): %s\n",
gnutls_strerror(ret));
@@ -1085,9 +1133,7 @@ static void find_same_privkey_with_id(const char *url, gnutls_x509_crt_t crt, gn
if (otype != GNUTLS_PKCS11_OBJ_PRIVKEY)
goto cont;
- ret =
- gnutls_pkcs11_obj_export_url(obj_list[i], 0,
- &purl);
+ ret = gnutls_pkcs11_obj_export_url(obj_list[i], 0, &purl);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__,
__LINE__, gnutls_strerror(ret));
@@ -1102,11 +1148,13 @@ static void find_same_privkey_with_id(const char *url, gnutls_x509_crt_t crt, gn
ret = gnutls_privkey_import_url(privkey, purl, 0);
if (ret < 0) {
- fprintf(stderr, "error: cannot import key: %s: %s\n", purl, gnutls_strerror(ret));
+ fprintf(stderr, "error: cannot import key: %s: %s\n",
+ purl, gnutls_strerror(ret));
goto cont;
}
- if (gnutls_privkey_get_pk_algorithm(privkey, NULL) != GNUTLS_PK_RSA) {
+ if (gnutls_privkey_get_pk_algorithm(privkey, NULL) !=
+ GNUTLS_PK_RSA) {
/* it is not possible to obtain parameters from non-RSA private keys in PKCS#11 */
goto cont;
}
@@ -1119,28 +1167,34 @@ static void find_same_privkey_with_id(const char *url, gnutls_x509_crt_t crt, gn
ret = gnutls_pubkey_import_privkey(pubkey, privkey, 0, 0);
if (ret < 0) {
- fprintf(stderr, "error: cannot import key parameters for '%s': %s\n", purl, gnutls_strerror(ret));
+ fprintf(stderr,
+ "error: cannot import key parameters for '%s': %s\n",
+ purl, gnutls_strerror(ret));
goto cont;
}
- ret = gnutls_pubkey_export2(pubkey, GNUTLS_X509_FMT_DER, &praw2);
+ ret =
+ gnutls_pubkey_export2(pubkey, GNUTLS_X509_FMT_DER, &praw2);
if (ret < 0) {
- fprintf(stderr, "error: cannot export pubkey '%s': %s\n", purl, gnutls_strerror(ret));
+ fprintf(stderr,
+ "error: cannot export pubkey '%s': %s\n", purl,
+ gnutls_strerror(ret));
goto cont;
}
-
- if (praw2.size == praw.size && memcmp(praw2.data, praw.data, praw.size) == 0) {
+ if (praw2.size == praw.size
+ && memcmp(praw2.data, praw.data, praw.size) == 0) {
/* found - now extract the CKA_ID */
size = sizeof(buf);
ret =
gnutls_pkcs11_obj_get_info(obj_list[i],
- GNUTLS_PKCS11_OBJ_ID,
- buf, &size);
+ GNUTLS_PKCS11_OBJ_ID,
+ buf, &size);
if (ret < 0) {
- fprintf(stderr, "Error in %s:%d: %s\n", __func__,
- __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "Error in %s:%d: %s\n",
+ __func__, __LINE__,
+ gnutls_strerror(ret));
app_exit(1);
}
@@ -1181,7 +1235,7 @@ pkcs11_write(FILE * outfile, const char *url, const char *label,
unsigned key_usage = 0;
unsigned char raw_id[128];
size_t raw_id_size;
- gnutls_datum_t cid = {NULL, 0};
+ gnutls_datum_t cid = { NULL, 0 };
pkcs11_common(info);
@@ -1189,14 +1243,17 @@ pkcs11_write(FILE * outfile, const char *url, const char *label,
CHECK_LOGIN_FLAG(url, flags);
if (label == NULL && info->batch == 0) {
- label = read_str("warning: The object's label was not specified.\nLabel: ");
+ label =
+ read_str
+ ("warning: The object's label was not specified.\nLabel: ");
}
if (id != NULL) {
raw_id_size = sizeof(raw_id);
ret = gnutls_hex2bin(id, strlen(id), raw_id, &raw_id_size);
if (ret < 0) {
- fprintf(stderr, "Error converting hex: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error converting hex: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
cid.data = raw_id;
@@ -1219,7 +1276,9 @@ pkcs11_write(FILE * outfile, const char *url, const char *label,
xcrt = load_cert(0, info);
if (xcrt != NULL) {
- if (cid.data == NULL && !(flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_CA) && !(flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED)) {
+ if (cid.data == NULL
+ && !(flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_CA)
+ && !(flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED)) {
gnutls_datum_t hex;
/* attempting to discover public keys matching this one,
* and if yes, re-use their ID. We don't do it for CAs (trusted/distrusted
@@ -1229,38 +1288,53 @@ pkcs11_write(FILE * outfile, const char *url, const char *label,
find_same_pubkey_with_id(url, xcrt, &cid, 0);
if (cid.data == NULL && KEEP_LOGIN_FLAGS(flags))
- find_same_pubkey_with_id(url, xcrt, &cid, KEEP_LOGIN_FLAGS(flags));
+ find_same_pubkey_with_id(url, xcrt, &cid,
+ KEEP_LOGIN_FLAGS
+ (flags));
if (cid.data) {
ret = gnutls_hex_encode2(&cid, &hex);
if (ret < 0) {
- fprintf(stderr, "Error converting hex: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "Error converting hex: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
- fprintf(stderr, "note: will re-use ID %s from corresponding public key\n", hex.data);
+ fprintf(stderr,
+ "note: will re-use ID %s from corresponding public key\n",
+ hex.data);
gnutls_free(hex.data);
- } else { /* no luck, try to get a corresponding private key */
- find_same_privkey_with_id(url, xcrt, &cid, KEEP_LOGIN_FLAGS(flags));
+ } else { /* no luck, try to get a corresponding private key */
+ find_same_privkey_with_id(url, xcrt, &cid,
+ KEEP_LOGIN_FLAGS
+ (flags));
if (cid.data) {
ret = gnutls_hex_encode2(&cid, &hex);
if (ret < 0) {
- fprintf(stderr, "Error converting hex: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "Error converting hex: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
- fprintf(stderr, "note: will re-use ID %s from corresponding private key\n", hex.data);
+ fprintf(stderr,
+ "note: will re-use ID %s from corresponding private key\n",
+ hex.data);
gnutls_free(hex.data);
}
}
}
- ret = gnutls_pkcs11_copy_x509_crt2(url, xcrt, label, &cid, flags);
+ ret =
+ gnutls_pkcs11_copy_x509_crt2(url, xcrt, label, &cid, flags);
if (ret < 0) {
- fprintf(stderr, "Error writing certificate: %s\n", gnutls_strerror(ret));
- if (((flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_CA) ||
- (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED)) &&
- (flags & GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO) == 0)
- fprintf(stderr, "note: some tokens may require security officer login for this operation\n");
+ fprintf(stderr, "Error writing certificate: %s\n",
+ gnutls_strerror(ret));
+ if (((flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_CA)
+ || (flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED))
+ && (flags & GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO) == 0)
+ fprintf(stderr,
+ "note: some tokens may require security officer login for this operation\n");
app_exit(1);
}
@@ -1272,7 +1346,9 @@ pkcs11_write(FILE * outfile, const char *url, const char *label,
if (xkey != NULL) {
ret =
gnutls_pkcs11_copy_x509_privkey2(url, xkey, label,
- &cid, key_usage|info->key_usage,
+ &cid,
+ key_usage |
+ info->key_usage,
flags |
GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE);
if (ret < 0) {
@@ -1287,8 +1363,7 @@ pkcs11_write(FILE * outfile, const char *url, const char *label,
if (xpubkey != NULL) {
ret =
gnutls_pkcs11_copy_pubkey(url, xpubkey, label,
- &cid,
- 0, flags);
+ &cid, 0, flags);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__,
__LINE__, gnutls_strerror(ret));
@@ -1297,7 +1372,8 @@ pkcs11_write(FILE * outfile, const char *url, const char *label,
gnutls_pubkey_deinit(xpubkey);
}
- if (xkey == NULL && xcrt == NULL && secret_key == NULL && xpubkey == NULL) {
+ if (xkey == NULL && xcrt == NULL && secret_key == NULL
+ && xpubkey == NULL) {
fprintf(stderr,
"You must use --load-privkey, --load-certificate, --load-pubkey or --secret-key to load the file to be copied\n");
app_exit(1);
@@ -1315,7 +1391,7 @@ pkcs11_generate(FILE * outfile, const char *url, gnutls_pk_algorithm_t pk,
{
int ret;
gnutls_datum_t pubkey;
- gnutls_datum_t cid = {NULL, 0};
+ gnutls_datum_t cid = { NULL, 0 };
unsigned char raw_id[128];
size_t raw_id_size;
@@ -1329,7 +1405,8 @@ pkcs11_generate(FILE * outfile, const char *url, gnutls_pk_algorithm_t pk,
raw_id_size = sizeof(raw_id);
ret = gnutls_hex2bin(id, strlen(id), raw_id, &raw_id_size);
if (ret < 0) {
- fprintf(stderr, "Error converting hex: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error converting hex: %s\n",
+ gnutls_strerror(ret));
app_exit(1);
}
cid.data = raw_id;
@@ -1337,7 +1414,8 @@ pkcs11_generate(FILE * outfile, const char *url, gnutls_pk_algorithm_t pk,
}
if (outfile == stderr || outfile == stdout) {
- fprintf(stderr, "warning: no --outfile was specified and the generated public key will be printed on screen.\n");
+ fprintf(stderr,
+ "warning: no --outfile was specified and the generated public key will be printed on screen.\n");
}
if (label == NULL && info->batch == 0) {
@@ -1350,7 +1428,8 @@ pkcs11_generate(FILE * outfile, const char *url, gnutls_pk_algorithm_t pk,
gnutls_pkcs11_privkey_generate3(url, pk, bits, label, &cid,
GNUTLS_X509_FMT_PEM, &pubkey,
info->key_usage,
- flags|GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE);
+ flags |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__, __LINE__,
gnutls_strerror(ret));
@@ -1368,7 +1447,8 @@ pkcs11_generate(FILE * outfile, const char *url, gnutls_pk_algorithm_t pk,
}
void
-pkcs11_export_pubkey(FILE * outfile, const char *url, int detailed, unsigned int flags, common_info_st * info)
+pkcs11_export_pubkey(FILE * outfile, const char *url, int detailed,
+ unsigned int flags, common_info_st * info)
{
int ret;
gnutls_datum_t pubkey;
@@ -1381,7 +1461,8 @@ pkcs11_export_pubkey(FILE * outfile, const char *url, int detailed, unsigned int
CHECK_LOGIN_FLAG(url, flags);
if (outfile == stderr || outfile == stdout) {
- fprintf(stderr, "warning: no --outfile was specified and the public key will be printed on screen.\n");
+ fprintf(stderr,
+ "warning: no --outfile was specified and the public key will be printed on screen.\n");
sleep(3);
}
@@ -1432,7 +1513,8 @@ pkcs11_init(FILE * outfile, const char *url, const char *label,
}
if (label == NULL) {
- fprintf(stderr, "error: no label provided for token initialization!\n");
+ fprintf(stderr,
+ "error: no label provided for token initialization!\n");
app_exit(1);
}
@@ -1441,7 +1523,8 @@ pkcs11_init(FILE * outfile, const char *url, const char *label,
} else {
getenv_copy(so_pin, sizeof(so_pin), "GNUTLS_SO_PIN");
if (so_pin[0] == 0 && info->batch == 0)
- getpass_copy(so_pin, sizeof(so_pin), "Enter Security Officer's PIN: ");
+ getpass_copy(so_pin, sizeof(so_pin),
+ "Enter Security Officer's PIN: ");
if (so_pin[0] == 0)
app_exit(1);
}
@@ -1458,13 +1541,15 @@ pkcs11_init(FILE * outfile, const char *url, const char *label,
}
fprintf(stderr, "done\n");
- fprintf(stderr, "\nToken was successfully initialized; use --initialize-pin and --initialize-so-pin to set or reset PINs\n");
+ fprintf(stderr,
+ "\nToken was successfully initialized; use --initialize-pin and --initialize-so-pin to set or reset PINs\n");
return;
}
void
-pkcs11_set_token_pin(FILE * outfile, const char *url, common_info_st * info, unsigned so)
+pkcs11_set_token_pin(FILE * outfile, const char *url, common_info_st * info,
+ unsigned so)
{
int ret;
char newpin[MAX_PIN_LEN] = "";
@@ -1484,7 +1569,8 @@ pkcs11_set_token_pin(FILE * outfile, const char *url, common_info_st * info, uns
if (so) {
getenv_copy(newpin, sizeof(newpin), "GNUTLS_NEW_SO_PIN");
if (newpin[0] == 0 && info->batch == 0) {
- getpass_copy(newpin, sizeof(newpin), "Enter Administrators's new PIN: ");
+ getpass_copy(newpin, sizeof(newpin),
+ "Enter Administrators's new PIN: ");
}
} else {
if (info->pin != NULL) {
@@ -1492,7 +1578,8 @@ pkcs11_set_token_pin(FILE * outfile, const char *url, common_info_st * info, uns
} else {
getenv_copy(newpin, sizeof(newpin), "GNUTLS_PIN");
if (newpin[0] == 0 && info->batch == 0)
- getpass_copy(newpin, sizeof(newpin), "Enter User's new PIN: ");
+ getpass_copy(newpin, sizeof(newpin),
+ "Enter User's new PIN: ");
}
}
@@ -1501,7 +1588,10 @@ pkcs11_set_token_pin(FILE * outfile, const char *url, common_info_st * info, uns
app_exit(1);
}
- ret = gnutls_pkcs11_token_set_pin(url, NULL, newpin, (so!=0)?GNUTLS_PIN_SO:GNUTLS_PIN_USER);
+ ret =
+ gnutls_pkcs11_token_set_pin(url, NULL, newpin,
+ (so !=
+ 0) ? GNUTLS_PIN_SO : GNUTLS_PIN_USER);
if (ret < 0) {
fprintf(stderr, "Error in %s:%d: %s\n", __func__, __LINE__,
gnutls_strerror(ret));
@@ -1529,9 +1619,7 @@ pkcs11_mechanism_list(FILE * outfile, const char *url, unsigned int flags,
idx = 0;
do {
- ret =
- gnutls_pkcs11_token_get_mechanism(url, idx++,
- &mechanism);
+ ret = gnutls_pkcs11_token_get_mechanism(url, idx++, &mechanism);
if (ret >= 0) {
str = NULL;
if (mechanism <
@@ -1542,9 +1630,13 @@ pkcs11_mechanism_list(FILE * outfile, const char *url, unsigned int flags,
fprintf(outfile, "[0x%.4lx] %s", mechanism, str);
- if (gnutls_pkcs11_token_check_mechanism(url, mechanism, &minfo, sizeof(minfo), 0) != 0) {
+ if (gnutls_pkcs11_token_check_mechanism
+ (url, mechanism, &minfo, sizeof(minfo), 0) != 0) {
if (minfo.ulMaxKeySize != 0)
- fprintf(outfile, " keysize range (%ld, %ld)", minfo.ulMinKeySize, minfo.ulMaxKeySize);
+ fprintf(outfile,
+ " keysize range (%ld, %ld)",
+ minfo.ulMinKeySize,
+ minfo.ulMaxKeySize);
if (minfo.flags & CKF_HW)
printf(" hw");
if (minfo.flags & CKF_ENCRYPT)
@@ -1601,7 +1693,6 @@ pkcs11_mechanism_list(FILE * outfile, const char *url, unsigned int flags,
}
while (ret >= 0);
-
return;
}
@@ -1637,8 +1728,8 @@ pkcs11_get_random(FILE * outfile, const char *url, unsigned bytes,
static
void pkcs11_set_val(FILE * outfile, const char *url, int detailed,
- unsigned int flags, common_info_st * info,
- gnutls_pkcs11_obj_info_t val_type, const char *val)
+ unsigned int flags, common_info_st * info,
+ gnutls_pkcs11_obj_info_t val_type, const char *val)
{
int ret;
gnutls_pkcs11_obj_t obj;
@@ -1676,15 +1767,16 @@ void pkcs11_set_val(FILE * outfile, const char *url, int detailed,
}
void pkcs11_set_id(FILE * outfile, const char *url, int detailed,
- unsigned int flags, common_info_st * info,
- const char *id)
+ unsigned int flags, common_info_st * info, const char *id)
{
- pkcs11_set_val(outfile, url, detailed, flags, info, GNUTLS_PKCS11_OBJ_ID_HEX, id);
+ pkcs11_set_val(outfile, url, detailed, flags, info,
+ GNUTLS_PKCS11_OBJ_ID_HEX, id);
}
void pkcs11_set_label(FILE * outfile, const char *url, int detailed,
- unsigned int flags, common_info_st * info,
- const char *label)
+ unsigned int flags, common_info_st * info,
+ const char *label)
{
- pkcs11_set_val(outfile, url, detailed, flags, info, GNUTLS_PKCS11_OBJ_LABEL, label);
+ pkcs11_set_val(outfile, url, detailed, flags, info,
+ GNUTLS_PKCS11_OBJ_LABEL, label);
}
diff --git a/src/psk.c b/src/psk.c
index 17cc076b8a..dd96036869 100644
--- a/src/psk.c
+++ b/src/psk.c
@@ -24,7 +24,7 @@
#ifndef ENABLE_PSK
-#include <stdio.h>
+# include <stdio.h>
int main(int argc, char **argv)
{
@@ -34,43 +34,43 @@ int main(int argc, char **argv)
#else
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <gnutls/gnutls.h>
-#include "psktool-options.h"
+# include <stdio.h>
+# include <string.h>
+# include <stdlib.h>
+# include <errno.h>
+# include <gnutls/gnutls.h>
+# include "psktool-options.h"
-#include <gnutls/crypto.h> /* for random */
+# include <gnutls/crypto.h> /* for random */
-#include <stdbool.h>
-#include <sys/types.h>
-#include <sys/stat.h>
+# include <stdbool.h>
+# include <sys/types.h>
+# include <sys/stat.h>
-#ifndef _WIN32
-#include <pwd.h>
-#include <unistd.h>
-#else
-#include <windows.h>
-#endif
+# ifndef _WIN32
+# include <pwd.h>
+# include <unistd.h>
+# else
+# include <windows.h>
+# endif
/* Gnulib portability files. */
-#include <minmax.h>
-#include "close-stream.h"
-#include "getpass.h"
-#include "xsize.h"
+# include <minmax.h>
+# include "close-stream.h"
+# include "getpass.h"
+# include "xsize.h"
static int write_key(const char *username,
const unsigned char *key, size_t key_size,
const char *passwd_file);
-#define MAX_KEY_SIZE 512
+# define MAX_KEY_SIZE 512
int main(int argc, char **argv)
{
int ret;
-#ifndef _WIN32
+# ifndef _WIN32
struct passwd *pwd;
-#endif
+# endif
unsigned char key[MAX_KEY_SIZE];
size_t key_size;
const char *passwd, *username;
@@ -91,7 +91,7 @@ int main(int argc, char **argv)
passwd = OPT_ARG(PSKFILE);
if (!HAVE_OPT(USERNAME)) {
-#ifndef _WIN32
+# ifndef _WIN32
pwd = getpwuid(getuid());
if (pwd == NULL) {
@@ -100,10 +100,10 @@ int main(int argc, char **argv)
}
username = pwd->pw_name;
-#else
+# else
fprintf(stderr, "Please specify a user\n");
return -1;
-#endif
+# endif
} else
username = OPT_ARG(USERNAME);
@@ -119,7 +119,7 @@ int main(int argc, char **argv)
printf("Generating a random key for user '%s'\n", username);
- ret = gnutls_rnd(GNUTLS_RND_RANDOM, (char *) key, key_size);
+ ret = gnutls_rnd(GNUTLS_RND_RANDOM, (char *)key, key_size);
if (ret < 0) {
fprintf(stderr, "Not enough randomness\n");
exit(1);
@@ -201,8 +201,7 @@ write_key(const char *username, const unsigned char *key, size_t key_size,
fp = fopen(passwd_file, "w");
if (fp == NULL) {
- fprintf(stderr, "Cannot open '%s' for write\n",
- passwd_file);
+ fprintf(stderr, "Cannot open '%s' for write\n", passwd_file);
(void)remove(tmpname);
return -1;
}
@@ -276,9 +275,8 @@ write_key(const char *username, const unsigned char *key, size_t key_size,
if (pp == NULL)
continue;
- if (strncmp(p, (const char *) _username.data,
- MAX(_username.size,
- (unsigned int) (pp - p))) == 0) {
+ if (strncmp(p, (const char *)_username.data,
+ MAX(_username.size, (unsigned int)(pp - p))) == 0) {
put = true;
fprintf(fp, "%s:%s\n", _username.data, _key.data);
} else {
diff --git a/src/serv.c b/src/serv.c
index d798356bbd..640ed2ab57 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -134,16 +134,14 @@ const int ssl_session_cache = 2048;
static void wrap_db_init(void);
static void wrap_db_deinit(void);
-static int wrap_db_store(void *dbf, gnutls_datum_t key,
- gnutls_datum_t data);
+static int wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data);
static gnutls_datum_t wrap_db_fetch(void *dbf, gnutls_datum_t key);
static int wrap_db_delete(void *dbf, gnutls_datum_t key);
-static int anti_replay_db_add(void *dbf, time_t exp, const gnutls_datum_t *key,
- const gnutls_datum_t *data);
+static int anti_replay_db_add(void *dbf, time_t exp, const gnutls_datum_t * key,
+ const gnutls_datum_t * data);
static void cmd_parser(int argc, char **argv);
-
#define HTTP_STATE_REQUEST 1
#define HTTP_STATE_RESPONSE 2
#define HTTP_STATE_CLOSING 3
@@ -174,7 +172,7 @@ static const char *safe_strerror(int value)
static void listener_free(const void *elt)
{
- listener_item *j = (listener_item *)elt;
+ listener_item *j = (listener_item *) elt;
free(j->http_request);
free(j->http_response);
@@ -187,7 +185,6 @@ static void listener_free(const void *elt)
}
}
-
/* we use primes up to 1024 in this server.
* otherwise we should add them here.
*/
@@ -197,9 +194,8 @@ gnutls_rsa_params_t rsa_params = NULL;
static int generate_dh_primes(void)
{
- int prime_bits =
- gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH,
- GNUTLS_SEC_PARAM_MEDIUM);
+ int prime_bits = gnutls_sec_param_to_pk_bits(GNUTLS_PK_DH,
+ GNUTLS_SEC_PARAM_MEDIUM);
if (gnutls_dh_params_init(&dh_params) < 0) {
fprintf(stderr, "Error in dh parameter initialization\n");
@@ -248,7 +244,7 @@ static void read_dh_params(void)
tmpdata[size] = 0;
fclose(fp);
- params.data = (unsigned char *) tmpdata;
+ params.data = (unsigned char *)tmpdata;
params.size = size;
size =
@@ -288,19 +284,24 @@ static gl_list_t listener_list;
static int cert_verify_callback(gnutls_session_t session)
{
-listener_item * j = gnutls_session_get_ptr(session);
-unsigned int size;
-int ret;
+ listener_item *j = gnutls_session_get_ptr(session);
+ unsigned int size;
+ int ret;
if (gnutls_auth_get_type(session) == GNUTLS_CRD_CERTIFICATE) {
- if (!require_cert && gnutls_certificate_get_peers(session, &size) == NULL)
+ if (!require_cert
+ && gnutls_certificate_get_peers(session, &size) == NULL)
return 0;
if (ENABLED_OPT(VERIFY_CLIENT_CERT)) {
if (cert_verify(session, NULL, NULL) == 0) {
do {
- ret = gnutls_alert_send(session, GNUTLS_AL_FATAL, GNUTLS_A_ACCESS_DENIED);
- } while(ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
+ ret =
+ gnutls_alert_send(session,
+ GNUTLS_AL_FATAL,
+ GNUTLS_A_ACCESS_DENIED);
+ } while (ret == GNUTLS_E_INTERRUPTED
+ || ret == GNUTLS_E_AGAIN);
j->http_state = HTTP_STATE_CLOSING;
return -1;
@@ -315,8 +316,7 @@ int ret;
/* callback used to verify if the host name advertised in client hello matches
* the one configured in server
*/
-static int
-post_client_hello(gnutls_session_t session)
+static int post_client_hello(gnutls_session_t session)
{
int ret;
/* DNS names (only type supported) may be at most 256 byte long */
@@ -329,7 +329,7 @@ post_client_hello(gnutls_session_t session)
if (name == NULL)
return GNUTLS_E_MEMORY_ERROR;
- for (i=0; ; ) {
+ for (i = 0;;) {
ret = gnutls_server_name_get(session, name, &len, &type, i);
if (ret == GNUTLS_E_SHORT_MEMORY_BUFFER) {
char *new_name;
@@ -339,7 +339,7 @@ post_client_hello(gnutls_session_t session)
goto end;
}
name = new_name;
- continue; /* retry call with same index */
+ continue; /* retry call with same index */
}
/* check if it is the last entry in list */
@@ -362,7 +362,8 @@ post_client_hello(gnutls_session_t session)
};
/* when there is no extension, we can't send the extension specific alert */
if (i == 0) {
- fprintf(stderr, "Warning: client did not include SNI extension, using default host\n");
+ fprintf(stderr,
+ "Warning: client did not include SNI extension, using default host\n");
ret = GNUTLS_E_SUCCESS;
goto end;
}
@@ -384,7 +385,7 @@ post_client_hello(gnutls_session_t session)
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
/* continue handshake, fall through */
-end:
+ end:
free(name);
return ret;
}
@@ -400,7 +401,8 @@ gnutls_session_t initialize_session(int dtls)
gnutls_datum_t alpn[MAX_ALPN_PROTOCOLS];
#endif
unsigned alpn_size;
- unsigned flags = GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH | GNUTLS_ENABLE_RAWPK;
+ unsigned flags =
+ GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH | GNUTLS_ENABLE_RAWPK;
if (dtls)
flags |= GNUTLS_DATAGRAM;
@@ -414,8 +416,7 @@ gnutls_session_t initialize_session(int dtls)
*/
gnutls_handshake_set_private_extensions(session, 1);
- gnutls_handshake_set_timeout(session,
- GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
+ gnutls_handshake_set_timeout(session, GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
if (nodb == 0) {
gnutls_db_set_retrieve_function(session, wrap_db_fetch);
@@ -431,9 +432,13 @@ gnutls_session_t initialize_session(int dtls)
if (earlydata) {
gnutls_anti_replay_enable(session, anti_replay);
if (HAVE_OPT(MAXEARLYDATA)) {
- ret = gnutls_record_set_max_early_data_size(session, OPT_VALUE_MAXEARLYDATA);
+ ret =
+ gnutls_record_set_max_early_data_size(session,
+ OPT_VALUE_MAXEARLYDATA);
if (ret < 0) {
- fprintf(stderr, "Could not set max early data size: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "Could not set max early data size: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
}
@@ -446,7 +451,8 @@ gnutls_session_t initialize_session(int dtls)
if (priorities == NULL) {
ret = gnutls_set_default_priority(session);
if (ret < 0) {
- fprintf(stderr, "Could not set default policy: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Could not set default policy: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
} else {
@@ -463,15 +469,19 @@ gnutls_session_t initialize_session(int dtls)
exit(1);
}
#else
- alpn_size = MIN(MAX_ALPN_PROTOCOLS,alpn_protos_size);
- for (i=0;i<alpn_size;i++) {
- alpn[i].data = (void*)alpn_protos[i];
+ alpn_size = MIN(MAX_ALPN_PROTOCOLS, alpn_protos_size);
+ for (i = 0; i < alpn_size; i++) {
+ alpn[i].data = (void *)alpn_protos[i];
alpn[i].size = strlen(alpn_protos[i]);
}
- ret = gnutls_alpn_set_protocols(session, alpn, alpn_size, HAVE_OPT(ALPN_FATAL)?GNUTLS_ALPN_MANDATORY:0);
+ ret =
+ gnutls_alpn_set_protocols(session, alpn, alpn_size,
+ HAVE_OPT(ALPN_FATAL) ?
+ GNUTLS_ALPN_MANDATORY : 0);
if (ret < 0) {
- fprintf(stderr, "Error setting ALPN protocols: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "Error setting ALPN protocols: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
#endif
@@ -488,7 +498,7 @@ gnutls_session_t initialize_session(int dtls)
if (cert_cred != NULL) {
gnutls_certificate_set_verify_function(cert_cred,
- cert_verify_callback);
+ cert_verify_callback);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
cert_cred);
@@ -540,14 +550,15 @@ gnutls_session_t initialize_session(int dtls)
else if (ret != 0)
fprintf(stderr, "Error in profiles: %s\n",
gnutls_strerror(ret));
- else fprintf(stderr,"DTLS profile set to %s\n",
- OPT_ARG(SRTP_PROFILES));
+ else
+ fprintf(stderr, "DTLS profile set to %s\n",
+ OPT_ARG(SRTP_PROFILES));
- if (ret != 0) exit(1);
+ if (ret != 0)
+ exit(1);
}
#endif
-
return session;
}
@@ -591,7 +602,8 @@ static char *peer_print_info(gnutls_session_t session, int *ret_length,
return http_buffer;
}
- if (gnutls_certificate_type_get2(session, GNUTLS_CTYPE_CLIENT) == GNUTLS_CRT_X509) {
+ if (gnutls_certificate_type_get2(session, GNUTLS_CTYPE_CLIENT) ==
+ GNUTLS_CRT_X509) {
const gnutls_datum_t *cert_list;
unsigned int cert_list_size = 0;
@@ -612,7 +624,7 @@ static char *peer_print_info(gnutls_session_t session, int *ret_length,
const char post[] = "</PRE><P><PRE>";
char *crtinfo_new;
size_t ncrtinfo_new;
-
+
ncrtinfo_new = xsum3(ncrtinfo, info.size,
sizeof(post));
if (size_overflow_p(ncrtinfo_new)) {
@@ -628,8 +640,7 @@ static char *peer_print_info(gnutls_session_t session, int *ret_length,
memcpy(crtinfo + ncrtinfo, info.data,
info.size);
ncrtinfo += info.size;
- memcpy(crtinfo + ncrtinfo, post,
- strlen(post));
+ memcpy(crtinfo + ncrtinfo, post, strlen(post));
ncrtinfo += strlen(post);
crtinfo[ncrtinfo] = '\0';
gnutls_free(info.data);
@@ -694,12 +705,10 @@ static char *peer_print_info(gnutls_session_t session, int *ret_length,
}
#endif
-
/* print session information */
strcat(http_buffer, "<P>\n");
- tmp =
- gnutls_protocol_get_name(version);
+ tmp = gnutls_protocol_get_name(version);
if (tmp == NULL)
tmp = str_unknown;
snprintf(tmp_buffer, tmp_buffer_size,
@@ -709,16 +718,18 @@ static char *peer_print_info(gnutls_session_t session, int *ret_length,
desc = gnutls_session_get_desc(session);
if (desc) {
snprintf(tmp_buffer, tmp_buffer_size,
- "<TR><TD>Description:</TD><TD>%s</TD></TR>\n",
- desc);
+ "<TR><TD>Description:</TD><TD>%s</TD></TR>\n", desc);
gnutls_free(desc);
}
if (gnutls_auth_get_type(session) == GNUTLS_CRD_CERTIFICATE &&
- gnutls_certificate_type_get2(session, GNUTLS_CTYPE_CLIENT) != GNUTLS_CRT_X509) {
+ gnutls_certificate_type_get2(session,
+ GNUTLS_CTYPE_CLIENT) !=
+ GNUTLS_CRT_X509) {
tmp =
gnutls_certificate_type_get_name
- (gnutls_certificate_type_get2(session, GNUTLS_CTYPE_CLIENT));
+ (gnutls_certificate_type_get2
+ (session, GNUTLS_CTYPE_CLIENT));
if (tmp == NULL)
tmp = str_unknown;
snprintf(tmp_buffer, tmp_buffer_size,
@@ -749,7 +760,9 @@ static char *peer_print_info(gnutls_session_t session, int *ret_length,
}
#endif
- tmp = gnutls_compression_get_name(gnutls_compression_get(session));
+ tmp =
+ gnutls_compression_get_name(gnutls_compression_get
+ (session));
if (tmp == NULL)
tmp = str_unknown;
snprintf(tmp_buffer, tmp_buffer_size,
@@ -761,8 +774,7 @@ static char *peer_print_info(gnutls_session_t session, int *ret_length,
if (tmp == NULL)
tmp = str_unknown;
snprintf(tmp_buffer, tmp_buffer_size,
- "<TR><TD>Ciphersuite</TD><TD>%s</TD></TR>\n",
- tmp);
+ "<TR><TD>Ciphersuite</TD><TD>%s</TD></TR>\n", tmp);
}
tmp = gnutls_cipher_get_name(gnutls_cipher_get(session));
@@ -777,8 +789,7 @@ static char *peer_print_info(gnutls_session_t session, int *ret_length,
snprintf(tmp_buffer, tmp_buffer_size,
"<TR><TD>MAC</TD><TD>%s</TD></TR>\n", tmp);
- snprintf(tmp_buffer, tmp_buffer_size,
- "</TABLE></P>\n");
+ snprintf(tmp_buffer, tmp_buffer_size, "</TABLE></P>\n");
if (crtinfo) {
snprintf(tmp_buffer, tmp_buffer_size,
@@ -821,9 +832,7 @@ static char *peer_print_data(gnutls_session_t session, int *ret_length)
ret = asprintf(&http_buffer,
"HTTP/1.0 200 OK\r\n"
"Content-Type: application/octet-stream\r\n"
- "Content-Length: %u\r\n"
- "\r\n",
- data.size);
+ "Content-Length: %u\r\n" "\r\n", data.size);
if (ret < 0)
return NULL;
len = ret;
@@ -861,8 +870,7 @@ const char *human_addr(const struct sockaddr *sa, socklen_t salen,
buf += l;
buflen -= l;
- if (getnameinfo(sa, salen, buf, buflen, NULL, 0, NI_NUMERICHOST) !=
- 0) {
+ if (getnameinfo(sa, salen, buf, buflen, NULL, 0, NI_NUMERICHOST) != 0) {
return "(error)";
}
@@ -877,8 +885,7 @@ const char *human_addr(const struct sockaddr *sa, socklen_t salen,
buf += 6;
buflen -= 6;
- if (getnameinfo(sa, salen, NULL, 0, buf, buflen, NI_NUMERICSERV) !=
- 0) {
+ if (getnameinfo(sa, salen, NULL, 0, buf, buflen, NI_NUMERICSERV) != 0) {
snprintf(buf, buflen, "%s", " unknown");
}
@@ -945,8 +952,7 @@ int listen_socket(const char *name, int listen_port, int socktype)
hints.ai_flags = AI_PASSIVE;
if ((s = getaddrinfo(NULL, portname, &hints, &res)) != 0) {
- fprintf(stderr, "getaddrinfo() failed: %s\n",
- gai_strerror(s));
+ fprintf(stderr, "getaddrinfo() failed: %s\n", gai_strerror(s));
return -1;
}
@@ -968,26 +974,25 @@ int listen_socket(const char *name, int listen_port, int socktype)
}
if ((news = socket(ptr->ai_family, ptr->ai_socktype,
- ptr->ai_protocol)) < 0) {
+ ptr->ai_protocol)) < 0) {
perror("socket() failed");
continue;
}
- s = news; /* to not overwrite existing s from previous loops */
+ s = news; /* to not overwrite existing s from previous loops */
#if defined(HAVE_IPV6) && !defined(_WIN32)
if (ptr->ai_family == AF_INET6) {
yes = 1;
/* avoid listen on ipv6 addresses failing
* because already listening on ipv4 addresses: */
(void)setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY,
- (const void *) &yes, sizeof(yes));
+ (const void *)&yes, sizeof(yes));
}
#endif
if (socktype == SOCK_STREAM) {
yes = 1;
if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
- (const void *) &yes,
- sizeof(yes)) < 0) {
+ (const void *)&yes, sizeof(yes)) < 0) {
perror("setsockopt() failed");
close(s);
continue;
@@ -996,14 +1001,12 @@ int listen_socket(const char *name, int listen_port, int socktype)
#if defined(IP_DONTFRAG)
yes = 1;
if (setsockopt(s, IPPROTO_IP, IP_DONTFRAG,
- (const void *) &yes,
- sizeof(yes)) < 0)
+ (const void *)&yes, sizeof(yes)) < 0)
perror("setsockopt(IP_DF) failed");
#elif defined(IP_MTU_DISCOVER)
yes = IP_PMTUDISC_DO;
if (setsockopt(s, IPPROTO_IP, IP_MTU_DISCOVER,
- (const void *) &yes,
- sizeof(yes)) < 0)
+ (const void *)&yes, sizeof(yes)) < 0)
perror("setsockopt(IP_DF) failed");
#endif
}
@@ -1046,8 +1049,7 @@ static void strip(char *data)
int len = strlen(data);
for (i = 0; i < len; i++) {
- if (data[i] == '\r' && data[i + 1] == '\n'
- && data[i + 2] == 0) {
+ if (data[i] == '\r' && data[i + 1] == '\n' && data[i + 2] == 0) {
data[i] = '\n';
data[i + 1] = 0;
break;
@@ -1079,7 +1081,8 @@ get_response(gnutls_session_t session, char *request,
if (http != 0) {
if (http_data_file == NULL)
- *response = peer_print_info(session, response_length, h);
+ *response =
+ peer_print_info(session, response_length, h);
else
*response = peer_print_data(session, response_length);
} else {
@@ -1107,15 +1110,17 @@ get_response(gnutls_session_t session, char *request,
} else {
*response = NULL;
do {
- ret = gnutls_alert_send_appropriate(session, ret);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ ret =
+ gnutls_alert_send_appropriate(session, ret);
+ } while (ret == GNUTLS_E_AGAIN
+ || ret == GNUTLS_E_INTERRUPTED);
return 0;
}
}
return 1;
- unimplemented:
+ unimplemented:
*response = strdup(HTTP_UNIMPLEMENTED);
if (*response == NULL)
return 0;
@@ -1123,7 +1128,7 @@ get_response(gnutls_session_t session, char *request,
return 1;
}
-static void terminate(int sig) __attribute__ ((__noreturn__));
+static void terminate(int sig) __attribute__((__noreturn__));
static void terminate(int sig)
{
@@ -1142,7 +1147,6 @@ static void terminate(int sig)
_exit(1);
}
-
static void check_alert(gnutls_session_t session, int ret)
{
if (ret == GNUTLS_E_WARNING_ALERT_RECEIVED
@@ -1188,8 +1192,7 @@ int main(int argc, char **argv)
sockets_init();
listener_list = gl_list_create_empty(GL_LINKED_LIST,
- NULL, NULL, listener_free,
- true);
+ NULL, NULL, listener_free, true);
if (nodb == 0)
wrap_db_init();
@@ -1221,8 +1224,7 @@ int main(int argc, char **argv)
gnutls_strerror(ret));
else {
ret =
- gnutls_pkcs11_add_provider(OPT_ARG(PROVIDER),
- NULL);
+ gnutls_pkcs11_add_provider(OPT_ARG(PROVIDER), NULL);
if (ret < 0) {
fprintf(stderr, "pkcs11_add_provider: %s",
gnutls_strerror(ret));
@@ -1254,8 +1256,7 @@ int main(int argc, char **argv)
if (x509_cafile != NULL) {
if ((ret = gnutls_certificate_set_x509_trust_file
(cert_cred, x509_cafile, x509ctype)) < 0) {
- fprintf(stderr, "Error reading '%s'\n",
- x509_cafile);
+ fprintf(stderr, "Error reading '%s'\n", x509_cafile);
GERR(ret);
exit(1);
} else {
@@ -1265,8 +1266,7 @@ int main(int argc, char **argv)
if (x509_crlfile != NULL) {
if ((ret = gnutls_certificate_set_x509_crl_file
(cert_cred, x509_crlfile, x509ctype)) < 0) {
- fprintf(stderr, "Error reading '%s'\n",
- x509_crlfile);
+ fprintf(stderr, "Error reading '%s'\n", x509_crlfile);
GERR(ret);
exit(1);
} else {
@@ -1277,31 +1277,35 @@ int main(int argc, char **argv)
if (x509_certfile_size > 0 && x509_keyfile_size > 0) {
for (i = 0; i < x509_certfile_size; i++) {
ret = gnutls_certificate_set_x509_key_file
- (cert_cred, x509_certfile[i], x509_keyfile[i], x509ctype);
+ (cert_cred, x509_certfile[i], x509_keyfile[i],
+ x509ctype);
if (ret < 0) {
fprintf(stderr,
- "Error reading '%s' or '%s'\n",
- x509_certfile[i], x509_keyfile[i]);
+ "Error reading '%s' or '%s'\n",
+ x509_certfile[i], x509_keyfile[i]);
GERR(ret);
exit(1);
} else
cert_set = 1;
}
}
-
+
/* Raw public-key credentials */
if (rawpk_file_size > 0 && rawpk_keyfile_size > 0) {
for (i = 0; i < rawpk_keyfile_size; i++) {
- ret = gnutls_certificate_set_rawpk_key_file(cert_cred, rawpk_file[i],
- rawpk_keyfile[i],
- x509ctype,
- NULL, 0, NULL, 0,
- 0, 0);
+ ret =
+ gnutls_certificate_set_rawpk_key_file(cert_cred,
+ rawpk_file[i],
+ rawpk_keyfile
+ [i],
+ x509ctype,
+ NULL, 0, NULL,
+ 0, 0, 0);
if (ret < 0) {
- fprintf(stderr, "Error reading '%s' or '%s'\n",
- rawpk_file[i], rawpk_keyfile[i]);
- GERR(ret);
- exit(1);
+ fprintf(stderr, "Error reading '%s' or '%s'\n",
+ rawpk_file[i], rawpk_keyfile[i]);
+ GERR(ret);
+ exit(1);
} else {
cert_set = 1;
}
@@ -1312,25 +1316,24 @@ int main(int argc, char **argv)
fprintf(stderr,
"Warning: no private key and certificate pairs were set.\n");
}
-
#ifndef ENABLE_OCSP
if (HAVE_OPT(IGNORE_OCSP_RESPONSE_ERRORS) || ocsp_responses_size != 0) {
fprintf(stderr, "OCSP is not supported!\n");
- exit(1);
+ exit(1);
}
#else
/* OCSP status-request TLS extension */
if (HAVE_OPT(IGNORE_OCSP_RESPONSE_ERRORS))
- gnutls_certificate_set_flags(cert_cred, GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK);
+ gnutls_certificate_set_flags(cert_cred,
+ GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK);
- for (i = 0; i < ocsp_responses_size; i++ ) {
+ for (i = 0; i < ocsp_responses_size; i++) {
ret = gnutls_certificate_set_ocsp_status_request_file
(cert_cred, ocsp_responses[i], 0);
if (ret < 0) {
fprintf(stderr,
"Cannot set OCSP status request file: %s: %s\n",
- ocsp_responses[i],
- gnutls_strerror(ret));
+ ocsp_responses[i], gnutls_strerror(ret));
exit(1);
}
}
@@ -1338,9 +1341,13 @@ int main(int argc, char **argv)
if (use_static_dh_params) {
#if defined(ENABLE_DHE) || defined(ENABLE_ANON)
- ret = gnutls_certificate_set_known_dh_params(cert_cred, GNUTLS_SEC_PARAM_MEDIUM);
+ ret =
+ gnutls_certificate_set_known_dh_params(cert_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
if (ret < 0) {
- fprintf(stderr, "Error while setting DH parameters: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "Error while setting DH parameters: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
#else
@@ -1365,8 +1372,7 @@ int main(int argc, char **argv)
< 0) {
/* only exit is this function is not disabled
*/
- fprintf(stderr,
- "Error while setting SRP parameters\n");
+ fprintf(stderr, "Error while setting SRP parameters\n");
GERR(ret);
}
}
@@ -1380,12 +1386,10 @@ int main(int argc, char **argv)
if ((ret =
gnutls_psk_set_server_credentials_file(psk_cred,
- psk_passwd)) <
- 0) {
+ psk_passwd)) < 0) {
/* only exit is this function is not disabled
*/
- fprintf(stderr,
- "Error while setting PSK parameters\n");
+ fprintf(stderr, "Error while setting PSK parameters\n");
GERR(ret);
}
@@ -1401,9 +1405,13 @@ int main(int argc, char **argv)
}
if (use_static_dh_params) {
- ret = gnutls_psk_set_server_known_dh_params(psk_cred, GNUTLS_SEC_PARAM_MEDIUM);
+ ret =
+ gnutls_psk_set_server_known_dh_params(psk_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
if (ret < 0) {
- fprintf(stderr, "Error while setting DH parameters: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "Error while setting DH parameters: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
} else {
@@ -1417,9 +1425,13 @@ int main(int argc, char **argv)
gnutls_anon_allocate_server_credentials(&dh_cred);
if (use_static_dh_params) {
- ret = gnutls_anon_set_server_known_dh_params(dh_cred, GNUTLS_SEC_PARAM_MEDIUM);
+ ret =
+ gnutls_anon_set_server_known_dh_params(dh_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
if (ret < 0) {
- fprintf(stderr, "Error while setting DH parameters: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "Error while setting DH parameters: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
} else {
@@ -1433,10 +1445,13 @@ int main(int argc, char **argv)
if (earlydata) {
ret = gnutls_anti_replay_init(&anti_replay);
if (ret < 0) {
- fprintf(stderr, "Error while initializing anti-replay: %s\n", gnutls_strerror(ret));
+ fprintf(stderr,
+ "Error while initializing anti-replay: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- gnutls_anti_replay_set_add_function(anti_replay, anti_replay_db_add);
+ gnutls_anti_replay_set_add_function(anti_replay,
+ anti_replay_db_add);
gnutls_anti_replay_set_ptr(anti_replay, NULL);
}
@@ -1458,7 +1473,7 @@ int main(int argc, char **argv)
return 0;
}
-static void retry_handshake(listener_item *j)
+static void retry_handshake(listener_item * j)
{
int r, ret;
@@ -1476,17 +1491,16 @@ static void retry_handshake(listener_item *j)
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
j->close_ok = 0;
} else if (r == 0) {
- if (gnutls_session_is_resumed(j->tls_session) != 0 && verbose != 0)
+ if (gnutls_session_is_resumed(j->tls_session) != 0
+ && verbose != 0)
printf("*** This is a resumed session\n");
if (verbose != 0) {
#if 0
printf("- connection from %s\n",
- human_addr((struct sockaddr *)
- &client_address,
- calen,
- topbuf,
- sizeof(topbuf)));
+ human_addr((struct sockaddr *)
+ &client_address,
+ calen, topbuf, sizeof(topbuf)));
#endif
print_info(j->tls_session, verbose, verbose);
@@ -1504,7 +1518,7 @@ static void retry_handshake(listener_item *j)
}
}
-static void try_rehandshake(listener_item *j)
+static void try_rehandshake(listener_item * j)
{
int r, ret;
fprintf(stderr, "*** Received hello message\n");
@@ -1517,7 +1531,8 @@ static void try_rehandshake(listener_item *j)
do {
ret = gnutls_alert_send_appropriate(j->tls_session, r);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
- fprintf(stderr, "Error in rehandshake: %s\n", gnutls_strerror(r));
+ fprintf(stderr, "Error in rehandshake: %s\n",
+ gnutls_strerror(r));
j->http_state = HTTP_STATE_CLOSING;
} else {
j->close_ok = 1;
@@ -1558,20 +1573,20 @@ static void tcp_server(const char *name, int port)
/* flag which connections we are reading or writing to within the fd sets */
iter = gl_list_iterator(listener_list);
while (gl_list_iterator_next(&iter, &elt, &node)) {
- listener_item *j = (listener_item *)elt;
+ listener_item *j = (listener_item *) elt;
#ifndef _WIN32
val = fcntl(j->fd, F_GETFL, 0);
if ((val == -1)
- || (fcntl(j->fd, F_SETFL, val | O_NONBLOCK) <
- 0)) {
+ || (fcntl(j->fd, F_SETFL, val | O_NONBLOCK) < 0)) {
perror("fcntl()");
exit(1);
}
#endif
if (j->start != 0 && now - j->start > 30) {
if (verbose != 0) {
- fprintf(stderr, "Scheduling inactive connection for close\n");
+ fprintf(stderr,
+ "Scheduling inactive connection for close\n");
}
j->http_state = HTTP_STATE_CLOSING;
}
@@ -1606,16 +1621,14 @@ static void tcp_server(const char *name, int port)
/* read or write to each connection as indicated by select()'s return argument */
iter = gl_list_iterator(listener_list);
while (gl_list_iterator_next(&iter, &elt, &node)) {
- listener_item *j = (listener_item *)elt;
+ listener_item *j = (listener_item *) elt;
/* a new connection has arrived */
if (FD_ISSET(j->fd, &rd) && j->listen_socket) {
calen = sizeof(client_address);
memset(&client_address, 0, calen);
- accept_fd =
- accept(j->fd,
- (struct sockaddr *)
- &client_address, &calen);
+ accept_fd = accept(j->fd, (struct sockaddr *)
+ &client_address, &calen);
if (accept_fd < 0) {
perror("accept()");
@@ -1628,14 +1641,14 @@ static void tcp_server(const char *name, int port)
/* new list entry for the connection */
jj = xzalloc(sizeof(*jj));
gl_list_add_last(accepted_list, jj);
- jj->http_request =
- (char *) strdup("");
+ jj->http_request = (char *)strdup("");
jj->http_state = HTTP_STATE_REQUEST;
jj->fd = accept_fd;
jj->start = tt;
jj->tls_session = initialize_session(0);
- gnutls_session_set_ptr(jj->tls_session, jj);
+ gnutls_session_set_ptr(jj->tls_session,
+ jj);
gnutls_transport_set_int
(jj->tls_session, accept_fd);
set_read_funcs(jj->tls_session);
@@ -1643,27 +1656,26 @@ static void tcp_server(const char *name, int port)
jj->close_ok = 0;
if (verbose != 0) {
- ctt = simple_ctime(&tt, timebuf);
+ ctt =
+ simple_ctime(&tt, timebuf);
ctt[strlen(ctt) - 1] = 0;
printf
("\n* Accepted connection from %s on %s\n",
human_addr((struct
- sockaddr
- *)
+ sockaddr *)
&client_address,
calen,
topbuf,
sizeof
- (topbuf)),
- ctt);
+ (topbuf)), ctt);
}
}
}
if (FD_ISSET(j->fd, &rd) && !j->listen_socket) {
/* read partial GET request */
- char buf[16*1024];
+ char buf[16 * 1024];
int r;
if (j->handshake_ok == 0) {
@@ -1673,12 +1685,10 @@ static void tcp_server(const char *name, int port)
if (j->handshake_ok == 1) {
int earlydata_read = 0;
if (earlydata && !j->earlydata_eof) {
- r = gnutls_record_recv_early_data(j->
- tls_session,
- buf,
- MIN(sizeof(buf),
- SMALL_READ_TEST));
- if (r == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
+ r = gnutls_record_recv_early_data(j->tls_session, buf, MIN(sizeof(buf), SMALL_READ_TEST));
+ if (r ==
+ GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ {
j->earlydata_eof = 1;
}
if (r == 0) {
@@ -1686,52 +1696,62 @@ static void tcp_server(const char *name, int port)
}
}
if (!earlydata_read) {
- r = gnutls_record_recv(j->
- tls_session,
- buf,
- MIN(sizeof(buf),
- SMALL_READ_TEST));
+ r = gnutls_record_recv
+ (j->tls_session, buf,
+ MIN(sizeof(buf),
+ SMALL_READ_TEST));
}
- if (r == GNUTLS_E_INTERRUPTED || r == GNUTLS_E_AGAIN) {
+ if (r == GNUTLS_E_INTERRUPTED
+ || r == GNUTLS_E_AGAIN) {
/* do nothing */
} else if (r <= 0) {
- if (r == GNUTLS_E_HEARTBEAT_PING_RECEIVED) {
- gnutls_heartbeat_pong(j->tls_session, 0);
- } else if (r == GNUTLS_E_REHANDSHAKE) {
+ if (r ==
+ GNUTLS_E_HEARTBEAT_PING_RECEIVED)
+ {
+ gnutls_heartbeat_pong
+ (j->tls_session, 0);
+ } else if (r ==
+ GNUTLS_E_REHANDSHAKE)
+ {
try_rehandshake(j);
} else {
- j->http_state = HTTP_STATE_CLOSING;
+ j->http_state =
+ HTTP_STATE_CLOSING;
if (r < 0) {
int ret;
- check_alert(j->tls_session, r);
+ check_alert
+ (j->tls_session,
+ r);
fprintf(stderr,
- "Error while receiving data\n");
+ "Error while receiving data\n");
do {
- ret = gnutls_alert_send_appropriate(j->tls_session, r);
- } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ ret =
+ gnutls_alert_send_appropriate
+ (j->tls_session,
+ r);
+ } while (ret ==
+ GNUTLS_E_AGAIN
+ || ret
+ ==
+ GNUTLS_E_INTERRUPTED);
GERR(r);
j->close_ok = 0;
}
}
} else {
j->http_request =
- realloc(j->
- http_request,
- j->
- request_length
+ realloc(j->http_request,
+ j->request_length
+ r + 1);
- if (j->http_request !=
- NULL) {
- memcpy(j->
- http_request
+ if (j->http_request != NULL) {
+ memcpy(j->http_request
+
j->
request_length,
buf, r);
- j->request_length
- += r;
- j->http_request[j->
- request_length]
+ j->request_length += r;
+ j->http_request
+ [j->request_length]
= '\0';
} else {
j->http_state =
@@ -1741,31 +1761,27 @@ static void tcp_server(const char *name, int port)
/* check if we have a full HTTP header */
j->http_response = NULL;
- if (j->http_state == HTTP_STATE_REQUEST && j->http_request != NULL) {
+ if (j->http_state == HTTP_STATE_REQUEST
+ && j->http_request != NULL) {
if ((http == 0
- && strchr(j->
- http_request,
+ && strchr(j->http_request,
'\n'))
- || strstr(j->
- http_request,
+ || strstr(j->http_request,
"\r\n\r\n")
- || strstr(j->
- http_request,
+ || strstr(j->http_request,
"\n\n")) {
- if (get_response(j->
- tls_session,
- j->
- http_request,
- &j->
- http_response,
- &j->
- response_length)) {
+ if (get_response
+ (j->tls_session,
+ j->http_request,
+ &j->http_response,
+ &j->
+ response_length)) {
j->http_state =
HTTP_STATE_RESPONSE;
- j->response_written
- = 0;
+ j->response_written = 0;
} else {
- j->http_state = HTTP_STATE_CLOSING;
+ j->http_state =
+ HTTP_STATE_CLOSING;
}
}
}
@@ -1780,43 +1796,51 @@ static void tcp_server(const char *name, int port)
retry_handshake(j);
}
- if (j->handshake_ok == 1 && j->http_response == NULL) {
+ if (j->handshake_ok == 1
+ && j->http_response == NULL) {
j->http_state = HTTP_STATE_CLOSING;
- } else if (j->handshake_ok == 1 && j->http_response != NULL) {
+ } else if (j->handshake_ok == 1
+ && j->http_response != NULL) {
r = gnutls_record_send(j->tls_session,
j->http_response
+
j->response_written,
- MIN(j->response_length
- -
- j->response_written,
- SMALL_READ_TEST));
- if (r == GNUTLS_E_INTERRUPTED || r == GNUTLS_E_AGAIN) {
+ MIN
+ (j->response_length
+ -
+ j->response_written,
+ SMALL_READ_TEST));
+ if (r == GNUTLS_E_INTERRUPTED
+ || r == GNUTLS_E_AGAIN) {
/* do nothing */
} else if (r <= 0) {
- j->http_state = HTTP_STATE_CLOSING;
+ j->http_state =
+ HTTP_STATE_CLOSING;
if (r < 0) {
fprintf(stderr,
"Error while sending data\n");
GERR(r);
}
- check_alert(j->tls_session,
- r);
+ check_alert(j->tls_session, r);
} else {
j->response_written += r;
/* check if we have written a complete response */
if (j->response_written ==
j->response_length) {
if (http != 0)
- j->http_state = HTTP_STATE_CLOSING;
+ j->http_state =
+ HTTP_STATE_CLOSING;
else {
- j->http_state = HTTP_STATE_REQUEST;
+ j->http_state =
+ HTTP_STATE_REQUEST;
free(j->
http_response);
- j->http_response = NULL;
+ j->http_response
+ = NULL;
j->response_length = 0;
j->request_length = 0;
- j->http_request[0] = 0;
+ j->http_request
+ [0] = 0;
}
}
}
@@ -1849,7 +1873,6 @@ static void tcp_server(const char *name, int port)
gl_list_free(accepted_list);
}
-
gnutls_certificate_free_credentials(cert_cred);
#ifdef ENABLE_SRP
@@ -1937,16 +1960,17 @@ static void cmd_parser(int argc, char **argv)
}
if (x509_certfile_size != x509_keyfile_size) {
- fprintf(stderr, "The certificate number provided (%u) doesn't match the keys (%u)\n",
+ fprintf(stderr,
+ "The certificate number provided (%u) doesn't match the keys (%u)\n",
x509_certfile_size, x509_keyfile_size);
- exit(1);
+ exit(1);
}
if (HAVE_OPT(X509CAFILE))
x509_cafile = OPT_ARG(X509CAFILE);
if (HAVE_OPT(X509CRLFILE))
x509_crlfile = OPT_ARG(X509CRLFILE);
-
+
if (HAVE_OPT(RAWPKKEYFILE)) {
rawpk_keyfile = STACKLST_OPT(RAWPKKEYFILE);
rawpk_keyfile_size = STACKCT_OPT(RAWPKKEYFILE);
@@ -1958,9 +1982,10 @@ static void cmd_parser(int argc, char **argv)
}
if (rawpk_file_size != rawpk_keyfile_size) {
- fprintf(stderr, "The number of raw public-keys provided (%u) doesn't match the number of corresponding private keys (%u)\n",
+ fprintf(stderr,
+ "The number of raw public-keys provided (%u) doesn't match the number of corresponding private keys (%u)\n",
rawpk_file_size, rawpk_keyfile_size);
- exit(1);
+ exit(1);
}
if (HAVE_OPT(SRPPASSWD))
@@ -2016,8 +2041,7 @@ static void wrap_db_deinit(void)
free(cache_db);
}
-static int
-wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
+static int wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
{
int i;
time_t now = time(0);
@@ -2034,15 +2058,15 @@ wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
for (i = 0; i < cache_db_ptr; i++)
if (cache_db[i].session_id_size == 0 ||
!(now <
- gnutls_db_check_entry_expire_time(&cache_db[i].
+ gnutls_db_check_entry_expire_time(&cache_db
+ [i].
session_data)))
break;
if (i == cache_db_ptr) {
/* try to allocate additional slots */
if (cache_db_ptr == ssl_session_cache) {
- fprintf(stderr,
- "Error: too many sessions\n");
+ fprintf(stderr, "Error: too many sessions\n");
return GNUTLS_E_DB_ERROR;
}
cache_db_alloc = cache_db_alloc * 2 + 1;
@@ -2062,8 +2086,7 @@ wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
/* resize the data slot if needed */
if (cache_db[i].session_data.size < data.size) {
cache_db[i].session_data.data =
- realloc(cache_db[i].session_data.data,
- data.size);
+ realloc(cache_db[i].session_data.data, data.size);
if (!cache_db[i].session_data.data)
return GNUTLS_E_MEMORY_ERROR;
}
@@ -2083,8 +2106,9 @@ static gnutls_datum_t wrap_db_fetch(void *dbf, gnutls_datum_t key)
if (key.size == cache_db[i].session_id_size &&
memcmp(key.data, cache_db[i].session_id,
key.size) == 0 &&
- now < gnutls_db_check_entry_expire_time(&cache_db[i].
- session_data)) {
+ now <
+ gnutls_db_check_entry_expire_time(&cache_db
+ [i].session_data)) {
res.size = cache_db[i].session_data.size;
res.data = malloc(res.size);
@@ -2106,8 +2130,7 @@ static int wrap_db_delete(void *dbf, gnutls_datum_t key)
for (i = 0; i < cache_db_ptr; i++) {
if (key.size == cache_db[i].session_id_size &&
- memcmp(key.data, cache_db[i].session_id,
- key.size) == 0) {
+ memcmp(key.data, cache_db[i].session_id, key.size) == 0) {
cache_db[i].session_id_size = 0;
free(cache_db[i].session_data.data);
@@ -2122,7 +2145,8 @@ static int wrap_db_delete(void *dbf, gnutls_datum_t key)
}
static int
-anti_replay_db_add(void *dbf, time_t exp, const gnutls_datum_t *key, const gnutls_datum_t *data)
+anti_replay_db_add(void *dbf, time_t exp, const gnutls_datum_t * key,
+ const gnutls_datum_t * data)
{
time_t now = time(0);
int i;
@@ -2131,8 +2155,9 @@ anti_replay_db_add(void *dbf, time_t exp, const gnutls_datum_t *key, const gnutl
if (key->size == cache_db[i].session_id_size &&
memcmp(key->data, cache_db[i].session_id,
key->size) == 0 &&
- now < gnutls_db_check_entry_expire_time(&cache_db[i].
- session_data))
+ now <
+ gnutls_db_check_entry_expire_time(&cache_db
+ [i].session_data))
return GNUTLS_E_DB_ENTRY_EXISTS;
}
diff --git a/src/socket.c b/src/socket.c
index 36ac292700..3a6993553e 100644
--- a/src/socket.c
+++ b/src/socket.c
@@ -21,9 +21,9 @@
#include <config.h>
#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
+# include <sys/socket.h>
#elif HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
+# include <ws2tcpip.h>
#endif
#include <netdb.h>
#include <string.h>
@@ -49,8 +49,7 @@
/* Functions to manipulate sockets
*/
-ssize_t
-socket_recv(const socket_st * socket, void *buffer, int buffer_size)
+ssize_t socket_recv(const socket_st * socket, void *buffer, int buffer_size)
{
int ret;
@@ -75,7 +74,8 @@ socket_recv(const socket_st * socket, void *buffer, int buffer_size)
}
ssize_t
-socket_recv_timeout(const socket_st * socket, void *buffer, int buffer_size, unsigned ms)
+socket_recv_timeout(const socket_st * socket, void *buffer, int buffer_size,
+ unsigned ms)
{
int ret;
@@ -95,7 +95,6 @@ socket_send(const socket_st * socket, const void *buffer, int buffer_size)
return socket_send_range(socket, buffer, buffer_size, NULL);
}
-
ssize_t
socket_send_range(const socket_st * socket, const void *buffer,
int buffer_size, gnutls_range_st * range)
@@ -107,18 +106,15 @@ socket_send_range(const socket_st * socket, const void *buffer,
if (range == NULL)
ret =
gnutls_record_send(socket->session,
- buffer,
- buffer_size);
+ buffer, buffer_size);
else
ret =
- gnutls_record_send_range(socket->
- session,
+ gnutls_record_send_range(socket->session,
buffer,
buffer_size,
range);
}
- while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
else
do {
ret = send(socket->fd, buffer, buffer_size, 0);
@@ -166,10 +162,11 @@ ssize_t wait_for_text(socket_st * socket, const char *txt, unsigned txt_size)
abort();
if (socket->verbose && txt != NULL)
- fprintf(stderr, "starttls: waiting for: \"%.*s\"\n", txt_size, txt);
+ fprintf(stderr, "starttls: waiting for: \"%.*s\"\n", txt_size,
+ txt);
pbuf = buf;
- left = sizeof(buf)-1;
+ left = sizeof(buf) - 1;
got = 0;
do {
@@ -181,7 +178,8 @@ ssize_t wait_for_text(socket_st * socket, const char *txt, unsigned txt_size)
if (ret > 0)
ret = recv(socket->fd, pbuf, left, 0);
if (ret == -1) {
- fprintf(stderr, "error receiving '%s': %s\n", txt, strerror(errno));
+ fprintf(stderr, "error receiving '%s': %s\n", txt,
+ strerror(errno));
exit(2);
} else if (ret == 0) {
fprintf(stderr, "error receiving '%s': Timeout\n", txt);
@@ -199,33 +197,33 @@ ssize_t wait_for_text(socket_st * socket, const char *txt, unsigned txt_size)
left -= ret;
got += ret;
-
/* check for text after a newline in buffer */
if (got > txt_size) {
p = memmem(buf, got, txt, txt_size);
if (p != NULL && p != buf) {
p--;
- if (*p == '\n' || *p == '\r' || (*txt == '<' && *p == '>')) // XMPP is not line oriented, uses XML format
+ if (*p == '\n' || *p == '\r' || (*txt == '<' && *p == '>')) // XMPP is not line oriented, uses XML format
break;
}
}
- } while(got < txt_size || strncmp(buf, txt, txt_size) != 0);
+ } while (got < txt_size || strncmp(buf, txt, txt_size) != 0);
return got;
}
-static void
-socket_starttls(socket_st * socket)
+static void socket_starttls(socket_st * socket)
{
char buf[512];
if (socket->secure)
return;
- if (socket->app_proto == NULL || strcasecmp(socket->app_proto, "https") == 0)
+ if (socket->app_proto == NULL
+ || strcasecmp(socket->app_proto, "https") == 0)
return;
- if (strcasecmp(socket->app_proto, "smtp") == 0 || strcasecmp(socket->app_proto, "submission") == 0) {
+ if (strcasecmp(socket->app_proto, "smtp") == 0
+ || strcasecmp(socket->app_proto, "submission") == 0) {
if (socket->verbose)
log_msg(stdout, "Negotiating SMTP STARTTLS\n");
@@ -235,7 +233,8 @@ socket_starttls(socket_st * socket)
wait_for_text(socket, "250 ", 4);
send_line(socket, "STARTTLS\r\n");
wait_for_text(socket, "220 ", 4);
- } else if (strcasecmp(socket->app_proto, "imap") == 0 || strcasecmp(socket->app_proto, "imap2") == 0) {
+ } else if (strcasecmp(socket->app_proto, "imap") == 0
+ || strcasecmp(socket->app_proto, "imap2") == 0) {
if (socket->verbose)
log_msg(stdout, "Negotiating IMAP STARTTLS\n");
@@ -247,18 +246,22 @@ socket_starttls(socket_st * socket)
if (socket->verbose)
log_msg(stdout, "Negotiating XMPP STARTTLS\n");
- snprintf(buf, sizeof(buf), "<stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='%s' version='1.0'>\n", socket->hostname);
+ snprintf(buf, sizeof(buf),
+ "<stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='%s' version='1.0'>\n",
+ socket->hostname);
send_line(socket, buf);
wait_for_text(socket, "<?", 2);
- send_line(socket, "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>");
+ send_line(socket,
+ "<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>");
wait_for_text(socket, "<proceed", 8);
} else if (strcasecmp(socket->app_proto, "ldap") == 0) {
if (socket->verbose)
log_msg(stdout, "Negotiating LDAP STARTTLS\n");
#define LDAP_STR "\x30\x1d\x02\x01\x01\x77\x18\x80\x16\x31\x2e\x33\x2e\x36\x2e\x31\x2e\x34\x2e\x31\x2e\x31\x34\x36\x36\x2e\x32\x30\x30\x33\x37"
- send(socket->fd, LDAP_STR, sizeof(LDAP_STR)-1, 0);
+ send(socket->fd, LDAP_STR, sizeof(LDAP_STR) - 1, 0);
wait_for_text(socket, NULL, 0);
- } else if (strcasecmp(socket->app_proto, "ftp") == 0 || strcasecmp(socket->app_proto, "ftps") == 0) {
+ } else if (strcasecmp(socket->app_proto, "ftp") == 0
+ || strcasecmp(socket->app_proto, "ftps") == 0) {
if (socket->verbose)
log_msg(stdout, "Negotiating FTP STARTTLS\n");
@@ -297,18 +300,20 @@ socket_starttls(socket_st * socket)
wait_for_text(socket, "OK ", 3);
send_line(socket, "STARTTLS\r\n");
wait_for_text(socket, "OK ", 3);
- } else if (strcasecmp(socket->app_proto, "postgres") == 0 || strcasecmp(socket->app_proto, "postgresql") == 0) {
+ } else if (strcasecmp(socket->app_proto, "postgres") == 0
+ || strcasecmp(socket->app_proto, "postgresql") == 0) {
if (socket->verbose)
log_msg(stdout, "Negotiating PostgreSQL STARTTLS\n");
#define POSTGRES_STR "\x00\x00\x00\x08\x04\xD2\x16\x2F"
- send(socket->fd, POSTGRES_STR, sizeof(POSTGRES_STR)-1, 0);
+ send(socket->fd, POSTGRES_STR, sizeof(POSTGRES_STR) - 1, 0);
wait_for_text(socket, NULL, 0);
} else {
if (!c_isdigit(socket->app_proto[0])) {
static int warned = 0;
if (warned == 0) {
- fprintf(stderr, "unknown protocol '%s'\n", socket->app_proto);
+ fprintf(stderr, "unknown protocol '%s'\n",
+ socket->app_proto);
warned = 1;
}
}
@@ -321,8 +326,7 @@ socket_starttls(socket_st * socket)
if (strcasecmp(app_proto, "xmpp") == 0) \
app_proto = "xmpp-server"; \
-int
-starttls_proto_to_port(const char *app_proto)
+int starttls_proto_to_port(const char *app_proto)
{
struct servent *s;
@@ -360,7 +364,8 @@ void socket_bye(socket_st * socket, unsigned polite)
if (socket->secure && socket->session) {
if (polite) {
do
- ret = gnutls_bye(socket->session, GNUTLS_SHUT_WR);
+ ret =
+ gnutls_bye(socket->session, GNUTLS_SHUT_WR);
while (ret == GNUTLS_E_INTERRUPTED
|| ret == GNUTLS_E_AGAIN);
if (socket->verbose && ret < 0)
@@ -412,16 +417,15 @@ void canonicalize_host(char *hostname, char *service, unsigned service_size)
*p = 0;
if (service && service_size)
- snprintf(service, service_size, "%s", p+1);
+ snprintf(service, service_size, "%s", p + 1);
} else
p = hostname + strlen(hostname);
if (p > hostname && p[-1] == '.')
- p[-1] = 0; // remove trailing dot on FQDN
+ p[-1] = 0; // remove trailing dot on FQDN
}
-static ssize_t
-wrap_pull(gnutls_transport_ptr_t ptr, void *data, size_t len)
+static ssize_t wrap_pull(gnutls_transport_ptr_t ptr, void *data, size_t len)
{
socket_st *hd = ptr;
ssize_t r;
@@ -447,18 +451,19 @@ wrap_push(gnutls_transport_ptr_t ptr, const void *data, size_t len)
/* inline is used to avoid a gcc warning if used in mini-eagain */
inline static int wrap_pull_timeout_func(gnutls_transport_ptr_t ptr,
- unsigned int ms)
+ unsigned int ms)
{
socket_st *hd = ptr;
- return gnutls_system_recv_timeout((gnutls_transport_ptr_t)(long)hd->fd, ms);
+ return gnutls_system_recv_timeout((gnutls_transport_ptr_t) (long)hd->fd,
+ ms);
}
-
void
socket_open2(socket_st * hd, const char *hostname, const char *service,
- const char *app_proto, int flags, const char *msg, gnutls_datum_t *rdata, gnutls_datum_t *edata,
- FILE *server_trace, FILE *client_trace)
+ const char *app_proto, int flags, const char *msg,
+ gnutls_datum_t * rdata, gnutls_datum_t * edata,
+ FILE * server_trace, FILE * client_trace)
{
struct addrinfo hints, *res, *ptr;
int sd, err = 0;
@@ -487,12 +492,13 @@ socket_open2(socket_st * hd, const char *hostname, const char *service,
ret = gnutls_idna_map(hostname, strlen(hostname), &idna, 0);
if (ret < 0) {
- fprintf(stderr, "Cannot convert %s to IDNA: %s\n", hostname, gnutls_strerror(ret));
+ fprintf(stderr, "Cannot convert %s to IDNA: %s\n", hostname,
+ gnutls_strerror(ret));
exit(1);
}
hd->hostname = strdup(hostname);
- a_hostname = (char*)idna.data;
+ a_hostname = (char *)idna.data;
if (msg != NULL)
log_msg(stdout, "Resolving '%s:%s'...\n", a_hostname, service);
@@ -508,8 +514,7 @@ socket_open2(socket_st * hd, const char *hostname, const char *service,
sd = -1;
for (ptr = res; ptr != NULL; ptr = ptr->ai_next) {
- sd = socket(ptr->ai_family, ptr->ai_socktype,
- ptr->ai_protocol);
+ sd = socket(ptr->ai_family, ptr->ai_socktype, ptr->ai_protocol);
if (sd == -1)
continue;
@@ -527,31 +532,34 @@ socket_open2(socket_st * hd, const char *hostname, const char *service,
#if defined(IP_DONTFRAG)
int yes = 1;
if (setsockopt(sd, IPPROTO_IP, IP_DONTFRAG,
- (const void *) &yes,
- sizeof(yes)) < 0)
+ (const void *)&yes, sizeof(yes)) < 0)
perror("setsockopt(IP_DF) failed");
#elif defined(IP_MTU_DISCOVER)
int yes = IP_PMTUDISC_DO;
if (setsockopt(sd, IPPROTO_IP, IP_MTU_DISCOVER,
- (const void *) &yes,
- sizeof(yes)) < 0)
+ (const void *)&yes, sizeof(yes)) < 0)
perror("setsockopt(IP_DF) failed");
#endif
}
if (fastopen && ptr->ai_socktype == SOCK_STREAM
- && (ptr->ai_family == AF_INET || ptr->ai_family == AF_INET6)) {
- memcpy(&hd->connect_addr, ptr->ai_addr, ptr->ai_addrlen);
+ && (ptr->ai_family == AF_INET
+ || ptr->ai_family == AF_INET6)) {
+ memcpy(&hd->connect_addr, ptr->ai_addr,
+ ptr->ai_addrlen);
hd->connect_addrlen = ptr->ai_addrlen;
if (msg)
- log_msg(stdout, "%s '%s:%s' (TFO)...\n", msg, buffer, portname);
+ log_msg(stdout, "%s '%s:%s' (TFO)...\n", msg,
+ buffer, portname);
} else {
if (msg)
- log_msg(stdout, "%s '%s:%s'...\n", msg, buffer, portname);
+ log_msg(stdout, "%s '%s:%s'...\n", msg, buffer,
+ portname);
- if ((err = connect(sd, ptr->ai_addr, ptr->ai_addrlen)) < 0) {
+ if ((err =
+ connect(sd, ptr->ai_addr, ptr->ai_addrlen)) < 0) {
close(sd);
continue;
}
@@ -575,40 +583,53 @@ socket_open2(socket_st * hd, const char *hostname, const char *service,
if (hd->session) {
if (hd->edata.data) {
- ret = gnutls_record_send_early_data(hd->session, hd->edata.data, hd->edata.size);
+ ret =
+ gnutls_record_send_early_data(hd->session,
+ hd->
+ edata.data,
+ hd->
+ edata.size);
if (ret < 0) {
- fprintf(stderr, "error sending early data\n");
+ fprintf(stderr,
+ "error sending early data\n");
close(sd);
exit(1);
}
}
if (hd->rdata.data) {
- gnutls_session_set_data(hd->session, hd->rdata.data, hd->rdata.size);
+ gnutls_session_set_data(hd->session,
+ hd->rdata.data,
+ hd->rdata.size);
}
if (client_trace || server_trace) {
hd->server_trace = server_trace;
hd->client_trace = client_trace;
- gnutls_transport_set_push_function(hd->session, wrap_push);
- gnutls_transport_set_pull_function(hd->session, wrap_pull);
- gnutls_transport_set_pull_timeout_function(hd->session, wrap_pull_timeout_func);
+ gnutls_transport_set_push_function(hd->session,
+ wrap_push);
+ gnutls_transport_set_pull_function(hd->session,
+ wrap_pull);
+ gnutls_transport_set_pull_timeout_function
+ (hd->session, wrap_pull_timeout_func);
gnutls_transport_set_ptr(hd->session, hd);
} else {
gnutls_transport_set_int(hd->session, hd->fd);
}
}
- if (!(flags & SOCKET_FLAG_RAW) && !(flags & SOCKET_FLAG_SKIP_INIT)) {
+ if (!(flags & SOCKET_FLAG_RAW)
+ && !(flags & SOCKET_FLAG_SKIP_INIT)) {
err = do_handshake(hd);
- if (err == GNUTLS_E_PUSH_ERROR) { /* failed connecting */
+ if (err == GNUTLS_E_PUSH_ERROR) { /* failed connecting */
gnutls_deinit(hd->session);
hd->session = NULL;
close(sd);
continue;
- }
- else if (err < 0) {
+ } else if (err < 0) {
if (!(flags & SOCKET_FLAG_DONT_PRINT_ERRORS))
- fprintf(stderr, "*** handshake has failed: %s\n", gnutls_strerror(err));
+ fprintf(stderr,
+ "*** handshake has failed: %s\n",
+ gnutls_strerror(err));
close(sd);
exit(1);
}
@@ -620,7 +641,7 @@ socket_open2(socket_st * hd, const char *hostname, const char *service,
if (err != 0) {
int e = errno;
fprintf(stderr, "Could not connect to %s:%s: %s\n",
- buffer, portname, strerror(e));
+ buffer, portname, strerror(e));
exit(1);
}
@@ -667,7 +688,8 @@ const char *port_to_service(const char *sport, const char *proto)
sr = getservbyport(port, proto);
if (sr == NULL) {
fprintf(stderr,
- "Warning: getservbyport(%s) failed. Using port number as service.\n", sport);
+ "Warning: getservbyport(%s) failed. Using port number as service.\n",
+ sport);
return sport;
}
@@ -685,7 +707,9 @@ int service_to_port(const char *service, const char *proto)
sr = getservbyname(service, proto);
if (sr == NULL) {
- fprintf(stderr, "Warning: getservbyname() failed for '%s/%s'.\n", service, proto);
+ fprintf(stderr,
+ "Warning: getservbyname() failed for '%s/%s'.\n",
+ service, proto);
exit(1);
}
diff --git a/src/socket.h b/src/socket.h
index b70e188f73..89edf66e89 100644
--- a/src/socket.h
+++ b/src/socket.h
@@ -1,17 +1,16 @@
#ifndef GNUTLS_SRC_SOCKET_H
-#define GNUTLS_SRC_SOCKET_H
+# define GNUTLS_SRC_SOCKET_H
-#include <gnutls/gnutls.h>
-#include <gnutls/socket.h>
-
-#define SOCKET_FLAG_UDP 1
-#define SOCKET_FLAG_FASTOPEN (1<<1)
-#define SOCKET_FLAG_STARTTLS (1<<2)
-#define SOCKET_FLAG_RAW (1<<3) /* unencrypted */
-#define SOCKET_FLAG_VERBOSE (1<<4)
-#define SOCKET_FLAG_SKIP_INIT (1<<5)
-#define SOCKET_FLAG_DONT_PRINT_ERRORS (1<<6)
+# include <gnutls/gnutls.h>
+# include <gnutls/socket.h>
+# define SOCKET_FLAG_UDP 1
+# define SOCKET_FLAG_FASTOPEN (1<<1)
+# define SOCKET_FLAG_STARTTLS (1<<2)
+# define SOCKET_FLAG_RAW (1<<3) /* unencrypted */
+# define SOCKET_FLAG_VERBOSE (1<<4)
+# define SOCKET_FLAG_SKIP_INIT (1<<5)
+# define SOCKET_FLAG_DONT_PRINT_ERRORS (1<<6)
typedef struct {
int fd;
@@ -42,23 +41,23 @@ typedef struct {
extern gnutls_session_t init_tls_session(const char *host);
int do_handshake(socket_st * socket);
-ssize_t socket_recv(const socket_st * socket, void *buffer,
- int buffer_size);
+ssize_t socket_recv(const socket_st * socket, void *buffer, int buffer_size);
ssize_t socket_recv_timeout(const socket_st * socket, void *buffer,
- int buffer_size, unsigned ms);
+ int buffer_size, unsigned ms);
ssize_t socket_send(const socket_st * socket, const void *buffer,
int buffer_size);
ssize_t socket_send_range(const socket_st * socket, const void *buffer,
int buffer_size, gnutls_range_st * range);
void
socket_open2(socket_st * hd, const char *hostname, const char *service,
- const char *app_proto, int flags, const char *msg, gnutls_datum_t *rdata, gnutls_datum_t *edata,
- FILE *server_trace, FILE *client_trace);
+ const char *app_proto, int flags, const char *msg,
+ gnutls_datum_t * rdata, gnutls_datum_t * edata,
+ FILE * server_trace, FILE * client_trace);
-#define socket_open(hd, host, service, app_proto, flags, msg, rdata) \
+# define socket_open(hd, host, service, app_proto, flags, msg, rdata) \
socket_open2(hd, host, service, app_proto, flags, msg, rdata, NULL, NULL, NULL)
-#define socket_open3(hd, host, service, app_proto, flags, msg, rdata, edata) \
+# define socket_open3(hd, host, service, app_proto, flags, msg, rdata, edata) \
socket_open2(hd, host, service, app_proto, flags, msg, rdata, edata, NULL, NULL)
void socket_bye(socket_st * socket, unsigned polite);
@@ -70,6 +69,6 @@ const char *starttls_proto_to_service(const char *app_proto);
void canonicalize_host(char *hostname, char *service, unsigned service_size);
-#define CONNECT_MSG "Connecting to"
+# define CONNECT_MSG "Connecting to"
-#endif /* GNUTLS_SRC_SOCKET_H */
+#endif /* GNUTLS_SRC_SOCKET_H */
diff --git a/src/srptool.c b/src/srptool.c
index a050de09db..5688929ff2 100644
--- a/src/srptool.c
+++ b/src/srptool.c
@@ -30,10 +30,10 @@
#include <sys/stat.h>
#ifndef _WIN32
-#include <pwd.h>
-#include <unistd.h>
+# include <pwd.h>
+# include <unistd.h>
#else
-#include <windows.h>
+# include <windows.h>
#endif
/* Gnulib portability files. */
@@ -48,8 +48,7 @@
int crypt_int(const char *username, const char *passwd, int salt,
const char *tpasswd_conf, const char *tpasswd, int uindex);
-static int read_conf_values(gnutls_datum_t * g, gnutls_datum_t * n,
- char *str);
+static int read_conf_values(gnutls_datum_t * g, gnutls_datum_t * n, char *str);
static int _verify_passwd_int(const char *username, const char *passwd,
char *verifier, const char *salt,
const gnutls_datum_t * g,
@@ -175,7 +174,7 @@ _verify_passwd_int(const char *username, const char *passwd,
*pos = 0;
/* convert salt to binary. */
- tmp.data = (void *) _salt;
+ tmp.data = (void *)_salt;
tmp.size = strlen(_salt);
if (gnutls_srp_base64_decode_alloc(&tmp, &raw_salt) < 0) {
@@ -295,8 +294,7 @@ verify_passwd(const char *conffile, const char *tpasswd,
iindex = find_strchr(username, tpasswd);
if (iindex == -1) {
- fprintf(stderr, "Cannot find '%s' in %s\n", username,
- tpasswd);
+ fprintf(stderr, "Cannot find '%s' in %s\n", username, tpasswd);
return -1;
}
@@ -412,12 +410,12 @@ int main(int argc, char **argv)
if (HAVE_OPT(PASSWD))
fpasswd = OPT_ARG(PASSWD);
else
- fpasswd = (char *) KPASSWD;
+ fpasswd = (char *)KPASSWD;
if (HAVE_OPT(PASSWD_CONF))
fpasswd_conf = OPT_ARG(PASSWD_CONF);
else
- fpasswd_conf = (char *) KPASSWD_CONF;
+ fpasswd_conf = (char *)KPASSWD_CONF;
if (HAVE_OPT(USERNAME))
username = OPT_ARG(USERNAME);
@@ -445,13 +443,11 @@ int main(int argc, char **argv)
return -1;
}
-/* not ready yet */
+ /* not ready yet */
if (HAVE_OPT(VERIFY)) {
- return verify_passwd(fpasswd_conf, fpasswd,
- username, passwd);
+ return verify_passwd(fpasswd_conf, fpasswd, username, passwd);
}
-
return crypt_int(username, passwd, salt_size,
fpasswd_conf, fpasswd, OPT_VALUE_INDEX);
@@ -466,7 +462,7 @@ static char *_srp_crypt(const char *username, const char *passwd,
gnutls_datum_t dat_salt, txt_salt;
gnutls_datum_t verifier, txt_verifier;
- if ((unsigned) salt_size > sizeof(salt))
+ if ((unsigned)salt_size > sizeof(salt))
return NULL;
/* generate the salt
@@ -507,7 +503,6 @@ static char *_srp_crypt(const char *username, const char *passwd,
}
-
int
crypt_int(const char *username, const char *passwd, int salt_size,
const char *tpasswd_conf, const char *tpasswd, int uindex)
@@ -539,8 +534,7 @@ crypt_int(const char *username, const char *passwd, int salt_size,
line[sizeof(line) - 1] = 0;
if ((iindex = read_conf_values(&g, &n, line)) < 0) {
- fprintf(stderr, "Cannot parse conf file '%s'\n",
- tpasswd_conf);
+ fprintf(stderr, "Cannot parse conf file '%s'\n", tpasswd_conf);
return -1;
}
@@ -555,8 +549,7 @@ crypt_int(const char *username, const char *passwd, int salt_size,
int put;
if (strlen(tpasswd) + 5 > sizeof(tmpname)) {
- fprintf(stderr, "file '%s' is tooooo long\n",
- tpasswd);
+ fprintf(stderr, "file '%s' is tooooo long\n", tpasswd);
return -1;
}
@@ -583,8 +576,7 @@ crypt_int(const char *username, const char *passwd, int salt_size,
fp2 = fopen(tmpname, "r");
if (fp2 == NULL) {
- fprintf(stderr, "Cannot open '%s' for read\n",
- tmpname);
+ fprintf(stderr, "Cannot open '%s' for read\n", tmpname);
(void)remove(tmpname);
fclose(fp);
return -1;
@@ -602,10 +594,9 @@ crypt_int(const char *username, const char *passwd, int salt_size,
if (strncmp(p, username,
MAX(strlen(username),
- (unsigned int) (pp - p))) == 0) {
+ (unsigned int)(pp - p))) == 0) {
put = 1;
- fprintf(fp, "%s:%s:%u\n", username, cr,
- iindex);
+ fprintf(fp, "%s:%s:%u\n", username, cr, iindex);
} else {
fputs(line, fp);
}
@@ -623,17 +614,13 @@ crypt_int(const char *username, const char *passwd, int salt_size,
}
-
return 0;
}
-
-
/* this function parses tpasswd.conf file. Format is:
* int(index):base64(n):base64(g)
*/
-static int
-read_conf_values(gnutls_datum_t * g, gnutls_datum_t * n, char *str)
+static int read_conf_values(gnutls_datum_t * g, gnutls_datum_t * n, char *str)
{
char *p;
int len;
@@ -655,7 +642,7 @@ read_conf_values(gnutls_datum_t * g, gnutls_datum_t * n, char *str)
if (p[len - 1] == '\n')
len--;
- dat.data = (void *) p;
+ dat.data = (void *)p;
dat.size = len;
ret = gnutls_srp_base64_decode_alloc(&dat, g);
@@ -673,7 +660,7 @@ read_conf_values(gnutls_datum_t * g, gnutls_datum_t * n, char *str)
*p = '\0';
p++;
- dat.data = (void *) p;
+ dat.data = (void *)p;
dat.size = strlen(p);
ret = gnutls_srp_base64_decode_alloc(&dat, n);
diff --git a/src/systemkey.c b/src/systemkey.c
index 11fe3cd8f4..8489879a22 100644
--- a/src/systemkey.c
+++ b/src/systemkey.c
@@ -72,7 +72,6 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "|<%d>| %s", level, str);
}
-
int main(int argc, char **argv)
{
cmd_parser(argc, argv);
@@ -91,7 +90,7 @@ static void cmd_parser(int argc, char **argv)
if (HAVE_OPT(DEBUG)) {
gnutls_global_set_log_level(OPT_VALUE_DEBUG);
- printf("Setting log level to %d\n", (int) OPT_VALUE_DEBUG);
+ printf("Setting log level to %d\n", (int)OPT_VALUE_DEBUG);
}
if (HAVE_OPT(OUTDER)) {
@@ -124,6 +123,7 @@ static void cmd_parser(int argc, char **argv)
gnutls_global_deinit();
}
+
static void systemkey_delete(const char *url, FILE * out)
{
int ret;
@@ -145,15 +145,20 @@ static void systemkey_list(FILE * out)
char *cert_url, *key_url, *label;
do {
- ret = gnutls_system_key_iter_get_info(&iter, GNUTLS_CRT_X509, &cert_url, &key_url, &label, NULL, 0);
+ ret =
+ gnutls_system_key_iter_get_info(&iter, GNUTLS_CRT_X509,
+ &cert_url, &key_url, &label,
+ NULL, 0);
if (ret >= 0) {
- fprintf(out, "Label:\t%s\nCert:\t%s\nKey:\t%s\n\n", label, cert_url, key_url);
+ fprintf(out, "Label:\t%s\nCert:\t%s\nKey:\t%s\n\n",
+ label, cert_url, key_url);
}
- } while(ret >= 0);
+ } while (ret >= 0);
if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
if (ret == GNUTLS_E_UNIMPLEMENTED_FEATURE) {
- fprintf(stderr, "Native key store is not supported, or not present on this system\n");
+ fprintf(stderr,
+ "Native key store is not supported, or not present on this system\n");
} else {
fprintf(stderr, "Error: %s\n", gnutls_strerror(ret));
}
diff --git a/src/tests.c b/src/tests.c
index 8526b69437..4275016186 100644
--- a/src/tests.c
+++ b/src/tests.c
@@ -23,10 +23,10 @@
#include <gnutls/x509.h>
#ifndef _WIN32
-#include <unistd.h>
-#include <signal.h>
+# include <unistd.h>
+# include <signal.h>
#else
-#include <errno.h>
+# include <errno.h>
#endif
#include <stdio.h>
@@ -40,9 +40,8 @@ void _gnutls_record_set_default_version(gnutls_session_t session,
unsigned char minor);
void _gnutls_hello_set_default_version(gnutls_session_t session,
- unsigned char major,
- unsigned char minor);
-
+ unsigned char major,
+ unsigned char minor);
extern gnutls_srp_client_credentials_t srp_cred;
extern gnutls_anon_client_credentials_t anon_cred;
@@ -108,22 +107,20 @@ static int test_do_handshake(gnutls_session_t session)
return TEST_SUCCEED;
}
-char protocol_str[] =
- "+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0";
-char protocol_all_str[] =
- "+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0";
+char protocol_str[] = "+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0";
+char protocol_all_str[] = "+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0";
char prio_str[768] = "";
#ifdef ENABLE_GOST
-#define GOST_CIPHERS ":+GOST28147-TC26Z-CNT"
-#define GOST_MACS ":+GOST28147-TC26Z-IMIT"
-#define GOST_KX ":+VKO-GOST-12"
-#define GOST_REST ":+SIGN-GOSTR341012-512:+SIGN-GOSTR341012-256:+SIGN-GOSTR341001:+GROUP-GOST-ALL"
+# define GOST_CIPHERS ":+GOST28147-TC26Z-CNT"
+# define GOST_MACS ":+GOST28147-TC26Z-IMIT"
+# define GOST_KX ":+VKO-GOST-12"
+# define GOST_REST ":+SIGN-GOSTR341012-512:+SIGN-GOSTR341012-256:+SIGN-GOSTR341001:+GROUP-GOST-ALL"
#else
-#define GOST_CIPHERS
-#define GOST_MACS
-#define GOST_KX
-#define GOST_REST
+# define GOST_CIPHERS
+# define GOST_MACS
+# define GOST_KX
+# define GOST_REST
#endif
#define ALL_CIPHERS "+CIPHER-ALL:+ARCFOUR-128:+3DES-CBC" GOST_CIPHERS
@@ -145,7 +142,8 @@ char rest[384] = "%UNSAFE_RENEGOTIATION:+SIGN-ALL:+GROUP-ALL" GOST_REST;
}
static inline int
-__gnutls_priority_set_direct(gnutls_session_t session, const char *str, int line)
+__gnutls_priority_set_direct(gnutls_session_t session, const char *str,
+ int line)
{
const char *err;
int ret = gnutls_priority_set_direct(session, str, &err);
@@ -156,8 +154,7 @@ __gnutls_priority_set_direct(gnutls_session_t session, const char *str, int line
return TEST_IGNORE;
fprintf(stderr, "Error at %d with string %s\n", line, str);
- fprintf(stderr, "Error at %s: %s\n", err,
- gnutls_strerror(ret));
+ fprintf(stderr, "Error at %s: %s\n", err, gnutls_strerror(ret));
exit(1);
}
@@ -192,8 +189,9 @@ test_code_t test_server(gnutls_session_t session)
ext_text = "unknown";
p = strstr(buf, "Server:");
if (p != NULL) {
- p+=7;
- if (*p == ' ') p++;
+ p += 7;
+ if (*p == ' ')
+ p++;
ext_text = p;
while (*p != 0 && *p != '\r' && *p != '\n') {
p++;
@@ -244,7 +242,8 @@ test_code_t test_rfc7919(gnutls_session_t session)
ret = test_do_handshake(session);
- if (ret != TEST_FAILED && (gnutls_session_get_flags(session) & GNUTLS_SFLAGS_RFC7919))
+ if (ret != TEST_FAILED
+ && (gnutls_session_get_flags(session) & GNUTLS_SFLAGS_RFC7919))
return TEST_SUCCEED;
else
return TEST_FAILED;
@@ -285,8 +284,7 @@ test_code_t test_vko_gost_12(gnutls_session_t session)
sprintf(prio_str, INIT_STR
ALL_CIPHERS ":" ALL_COMP ":%s:" ALL_MACS
- ":+VKO-GOST-12:%s", protocol_all_str,
- rest);
+ ":+VKO-GOST-12:%s", protocol_all_str, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -309,8 +307,7 @@ test_code_t test_rsa(gnutls_session_t session)
sprintf(prio_str, INIT_STR
ALL_CIPHERS ":" ALL_COMP ":%s:" ALL_MACS
- ":+RSA:%s", protocol_all_str,
- rest);
+ ":+RSA:%s", protocol_all_str, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -324,7 +321,8 @@ test_code_t test_rsa(gnutls_session_t session)
}
static
-test_code_t test_ecdhe_curve(gnutls_session_t session, const char *curve, unsigned id)
+test_code_t test_ecdhe_curve(gnutls_session_t session, const char *curve,
+ unsigned id)
{
int ret;
@@ -335,7 +333,8 @@ test_code_t test_ecdhe_curve(gnutls_session_t session, const char *curve, unsign
* because list of curves may be also used by the server to select a cert. */
sprintf(prio_str, INIT_STR
ALL_CIPHERS ":" ALL_COMP ":%s:" ALL_MACS
- ":+ECDHE-RSA:+ECDHE-ECDSA:%s:%s", protocol_all_str, curve, rest);
+ ":+ECDHE-RSA:+ECDHE-ECDSA:%s:%s", protocol_all_str, curve,
+ rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -353,22 +352,26 @@ test_code_t test_ecdhe_curve(gnutls_session_t session, const char *curve, unsign
test_code_t test_ecdhe_secp256r1(gnutls_session_t session)
{
- return test_ecdhe_curve(session, "+CURVE-SECP256R1", GNUTLS_ECC_CURVE_SECP256R1);
+ return test_ecdhe_curve(session, "+CURVE-SECP256R1",
+ GNUTLS_ECC_CURVE_SECP256R1);
}
test_code_t test_ecdhe_secp384r1(gnutls_session_t session)
{
- return test_ecdhe_curve(session, "+CURVE-SECP384R1", GNUTLS_ECC_CURVE_SECP384R1);
+ return test_ecdhe_curve(session, "+CURVE-SECP384R1",
+ GNUTLS_ECC_CURVE_SECP384R1);
}
test_code_t test_ecdhe_secp521r1(gnutls_session_t session)
{
- return test_ecdhe_curve(session, "+CURVE-SECP521R1", GNUTLS_ECC_CURVE_SECP521R1);
+ return test_ecdhe_curve(session, "+CURVE-SECP521R1",
+ GNUTLS_ECC_CURVE_SECP521R1);
}
test_code_t test_ecdhe_x25519(gnutls_session_t session)
{
- return test_ecdhe_curve(session, "+CURVE-X25519", GNUTLS_ECC_CURVE_X25519);
+ return test_ecdhe_curve(session, "+CURVE-X25519",
+ GNUTLS_ECC_CURVE_X25519);
}
test_code_t test_rfc7507(gnutls_session_t session)
@@ -389,7 +392,7 @@ test_code_t test_rfc7507(gnutls_session_t session)
sprintf(prio_str, INIT_STR
ALL_CIPHERS ":" ALL_COMP ":%s:" ALL_MACS
- ":"ALL_KX":%s", pstr, rest);
+ ":" ALL_KX ":%s", pstr, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -404,7 +407,6 @@ test_code_t test_rfc7507(gnutls_session_t session)
return TEST_FAILED;
}
-
test_code_t test_safe_renegotiation(gnutls_session_t session)
{
int ret;
@@ -435,7 +437,7 @@ test_code_t test_ocsp_status(gnutls_session_t session)
sprintf(prio_str, INIT_STR
ALL_CIPHERS ":" ALL_COMP ":%s:" ALL_MACS
- ":" ALL_KX":%s", protocol_str, rest);
+ ":" ALL_KX ":%s", protocol_str, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_ocsp_status_request_enable_client(session, NULL, 0, NULL);
@@ -451,7 +453,6 @@ test_code_t test_ocsp_status(gnutls_session_t session)
if (ret == 0)
return TEST_SUCCEED;
-
return TEST_FAILED;
}
@@ -578,14 +579,15 @@ test_code_t test_dhe_group(gnutls_session_t session)
if (pubkey2.data && pubkey2.size == pubkey.size &&
memcmp(pubkey.data, pubkey2.data, pubkey.size) == 0) {
fprintf
- (fp, " (public key seems to be static among sessions)\n");
+ (fp,
+ " (public key seems to be static among sessions)\n");
}
{
/* save the PKCS #3 params */
gnutls_dh_params_t dhp;
gnutls_datum_t p3;
-
+
ret2 = gnutls_dh_params_init(&dhp);
if (ret2 < 0) {
fclose(fp);
@@ -599,7 +601,10 @@ test_code_t test_dhe_group(gnutls_session_t session)
return TEST_FAILED;
}
- ret2 = gnutls_dh_params_export2_pkcs3(dhp, GNUTLS_X509_FMT_PEM, &p3);
+ ret2 =
+ gnutls_dh_params_export2_pkcs3(dhp,
+ GNUTLS_X509_FMT_PEM,
+ &p3);
if (ret2 < 0) {
gnutls_dh_params_deinit(dhp);
fclose(fp);
@@ -708,13 +713,13 @@ test_code_t test_bye(gnutls_session_t session)
return TEST_FAILED;
#ifndef _WIN32
- (void) sigaction (SIGALRM, NULL, &sa);
+ (void)sigaction(SIGALRM, NULL, &sa);
sa.sa_flags &= ~SA_RESTART;
sigaction(SIGALRM, &sa, &old_sa);
alarm(secs);
#else
- setsockopt((int) gnutls_transport_get_ptr(session), SOL_SOCKET,
- SO_RCVTIMEO, (char *) &secs, sizeof(int));
+ setsockopt((int)gnutls_transport_get_ptr(session), SOL_SOCKET,
+ SO_RCVTIMEO, (char *)&secs, sizeof(int));
#endif
do {
@@ -738,8 +743,6 @@ test_code_t test_bye(gnutls_session_t session)
return TEST_FAILED;
}
-
-
test_code_t test_aes(gnutls_session_t session)
{
int ret;
@@ -761,8 +764,7 @@ test_code_t test_aes_gcm(gnutls_session_t session)
sprintf(prio_str, INIT_STR
"+AES-128-GCM:+AES-256-GCM:" ALL_COMP
- ":%s:" ALL_MACS ":" ALL_KX ":%s",
- protocol_all_str, rest);
+ ":%s:" ALL_MACS ":" ALL_KX ":%s", protocol_all_str, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -777,8 +779,7 @@ test_code_t test_aes_ccm(gnutls_session_t session)
sprintf(prio_str, INIT_STR
"+AES-128-CCM:+AES-256-CCM:" ALL_COMP
- ":%s:" ALL_MACS ":" ALL_KX ":%s",
- protocol_all_str, rest);
+ ":%s:" ALL_MACS ":" ALL_KX ":%s", protocol_all_str, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -793,8 +794,7 @@ test_code_t test_aes_ccm_8(gnutls_session_t session)
sprintf(prio_str, INIT_STR
"+AES-128-CCM-8:+AES-256-CCM-8:" ALL_COMP
- ":%s:" ALL_MACS ":" ALL_KX ":%s",
- protocol_all_str, rest);
+ ":%s:" ALL_MACS ":" ALL_KX ":%s", protocol_all_str, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -815,7 +815,6 @@ test_code_t test_camellia_cbc(gnutls_session_t session)
":%s:" ALL_MACS ":" ALL_KX ":%s", protocol_str, rest);
_gnutls_priority_set_direct(session, prio_str);
-
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
ret = test_do_handshake(session);
@@ -846,8 +845,7 @@ test_code_t test_unknown_ciphersuites(gnutls_session_t session)
sprintf(prio_str,
INIT_STR ALL_CIPHERS ":" ALL_COMP
- ":%s:" ALL_MACS ":" ALL_KX ":%s",
- protocol_str, rest);
+ ":%s:" ALL_MACS ":" ALL_KX ":%s", protocol_str, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -865,8 +863,7 @@ test_code_t test_md5(gnutls_session_t session)
sprintf(prio_str,
INIT_STR ALL_CIPHERS ":" ALL_COMP
- ":%s:+MD5:" ALL_KX ":%s", protocol_str,
- rest);
+ ":%s:+MD5:" ALL_KX ":%s", protocol_str, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -880,9 +877,8 @@ test_code_t test_sha(gnutls_session_t session)
int ret;
sprintf(prio_str,
- INIT_STR ALL_CIPHERS ":" ALL_COMP
- ":%s:+SHA1:" ALL_KX ":%s", protocol_str,
- rest);
+ INIT_STR ALL_CIPHERS ":" ALL_COMP
+ ":%s:+SHA1:" ALL_KX ":%s", protocol_str, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -896,8 +892,7 @@ test_code_t test_sha256(gnutls_session_t session)
sprintf(prio_str,
INIT_STR ALL_CIPHERS ":" ALL_COMP
- ":%s:+SHA256:" ALL_KX ":%s",
- protocol_all_str, rest);
+ ":%s:+SHA256:" ALL_KX ":%s", protocol_all_str, rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -998,7 +993,8 @@ test_code_t test_tls1(gnutls_session_t session)
sprintf(prio_str,
INIT_STR ALL_CIPHERS ":" ALL_COMP
- ":+VERS-TLS1.0:%%SSL3_RECORD_VERSION:" ALL_MACS ":" ALL_KX ":%s", rest);
+ ":+VERS-TLS1.0:%%SSL3_RECORD_VERSION:" ALL_MACS ":" ALL_KX
+ ":%s", rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -1020,7 +1016,8 @@ test_code_t test_tls1_nossl3(gnutls_session_t session)
sprintf(prio_str,
INIT_STR ALL_CIPHERS ":" ALL_COMP
- ":+VERS-TLS1.0:%%LATEST_RECORD_VERSION:" ALL_MACS ":" ALL_KX ":%s", rest);
+ ":+VERS-TLS1.0:%%LATEST_RECORD_VERSION:" ALL_MACS ":" ALL_KX
+ ":%s", rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -1041,7 +1038,8 @@ test_code_t test_record_padding(gnutls_session_t session)
sprintf(prio_str,
INIT_STR BLOCK_CIPHERS ":" ALL_COMP
- ":+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:-VERS-SSL3.0:" ALL_MACS ":" ALL_KX ":%s", rest);
+ ":+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:-VERS-SSL3.0:" ALL_MACS
+ ":" ALL_KX ":%s", rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -1051,7 +1049,8 @@ test_code_t test_record_padding(gnutls_session_t session)
} else {
sprintf(prio_str,
INIT_STR BLOCK_CIPHERS ":" ALL_COMP
- ":+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:-VERS-SSL3.0:" ALL_MACS ":" ALL_KX ":%%COMPAT:%s", rest);
+ ":+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:-VERS-SSL3.0:"
+ ALL_MACS ":" ALL_KX ":%%COMPAT:%s", rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -1060,7 +1059,7 @@ test_code_t test_record_padding(gnutls_session_t session)
tls1_ok = 1;
strcat(rest, ":%COMPAT");
} else
- ret = TEST_IGNORE2; /* neither succeeded */
+ ret = TEST_IGNORE2; /* neither succeeded */
}
return ret;
@@ -1089,7 +1088,8 @@ test_code_t test_no_extensions(gnutls_session_t session)
} else {
sprintf(prio_str,
INIT_STR BLOCK_CIPHERS ":" ALL_COMP
- ":+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:-VERS-SSL3.0:" ALL_MACS ":" ALL_KX ":%%NO_EXTENSIONS:%s", rest);
+ ":+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:-VERS-SSL3.0:"
+ ALL_MACS ":" ALL_KX ":%%NO_EXTENSIONS:%s", rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -1098,7 +1098,7 @@ test_code_t test_no_extensions(gnutls_session_t session)
tls_ext_ok = 0;
strcat(rest, ":%NO_EXTENSIONS");
} else
- ret = TEST_IGNORE2; /* neither succeeded */
+ ret = TEST_IGNORE2; /* neither succeeded */
}
return ret;
@@ -1205,8 +1205,8 @@ test_code_t test_tls1_6_fallback(gnutls_session_t session)
* message we do not properly set in this test */
sprintf(prio_str,
INIT_STR ALL_CIPHERS ":" ALL_COMP
- ":+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0:" ALL_MACS ":"
- ALL_KX ":-RSA:%s", rest);
+ ":+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0:" ALL_MACS
+ ":" ALL_KX ":-RSA:%s", rest);
_gnutls_priority_set_direct(session, prio_str);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -1216,7 +1216,8 @@ test_code_t test_tls1_6_fallback(gnutls_session_t session)
if (ret != TEST_SUCCEED)
return TEST_FAILED;
- ext_text = gnutls_protocol_get_name(gnutls_protocol_get_version(session));
+ ext_text =
+ gnutls_protocol_get_name(gnutls_protocol_get_version(session));
return TEST_SUCCEED;
}
@@ -1264,7 +1265,8 @@ test_code_t test_tls_disable1(gnutls_session_t session)
ret = test_do_handshake(session);
if (ret == TEST_FAILED) {
/* disable TLS 1.1 */
- snprintf(protocol_str, sizeof(protocol_str), "+VERS-TLS1.0:+VERS-SSL3.0");
+ snprintf(protocol_str, sizeof(protocol_str),
+ "+VERS-TLS1.0:+VERS-SSL3.0");
}
return ret;
}
@@ -1286,12 +1288,12 @@ test_code_t test_tls_disable2(gnutls_session_t session)
ret = test_do_handshake(session);
if (ret == TEST_FAILED) {
/* disable TLS 1.2 */
- snprintf(protocol_str, sizeof(protocol_str), "+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0");
+ snprintf(protocol_str, sizeof(protocol_str),
+ "+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0");
}
return ret;
}
-
test_code_t test_rsa_pms(gnutls_session_t session)
{
int ret;
@@ -1356,7 +1358,8 @@ test_code_t test_heartbeat_extension(gnutls_session_t session)
gnutls_heartbeat_enable(session, GNUTLS_HB_PEER_ALLOWED_TO_SEND);
test_do_handshake(session);
- switch (gnutls_heartbeat_allowed(session, GNUTLS_HB_LOCAL_ALLOWED_TO_SEND)) {
+ switch (gnutls_heartbeat_allowed
+ (session, GNUTLS_HB_LOCAL_ALLOWED_TO_SEND)) {
case 0:
return TEST_FAILED;
default:
@@ -1403,8 +1406,7 @@ test_code_t test_version_rollback(gnutls_session_t session)
if (ret != TEST_SUCCEED)
return ret;
- if (tls1_ok != 0
- && gnutls_protocol_get_version(session) == GNUTLS_SSL3)
+ if (tls1_ok != 0 && gnutls_protocol_get_version(session) == GNUTLS_SSL3)
return TEST_FAILED;
return TEST_SUCCEED;
@@ -1590,16 +1592,18 @@ test_code_t test_chain_order(gnutls_session_t session)
p = 0;
p_size = 0;
pos = NULL;
- for (i=0;i<cert_list_size;i++) {
+ for (i = 0; i < cert_list_size; i++) {
char *new_p;
t.data = NULL;
- ret = gnutls_pem_base64_encode_alloc("CERTIFICATE", &cert_list[i], &t);
+ ret =
+ gnutls_pem_base64_encode_alloc("CERTIFICATE", &cert_list[i],
+ &t);
if (ret < 0) {
free(p);
return TEST_FAILED;
}
- new_p = realloc(p, p_size+t.size+1);
+ new_p = realloc(p, p_size + t.size + 1);
if (!new_p) {
free(p);
return TEST_FAILED;
@@ -1618,15 +1622,18 @@ test_code_t test_chain_order(gnutls_session_t session)
}
t.size = p_size;
- t.data = (void*)p;
+ t.data = (void *)p;
p_size = 0;
- ret = gnutls_x509_crt_list_import2(&certs, &p_size, &t, GNUTLS_X509_FMT_PEM, GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
+ ret =
+ gnutls_x509_crt_list_import2(&certs, &p_size, &t,
+ GNUTLS_X509_FMT_PEM,
+ GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
if (ret < 0) {
return TEST_FAILED;
}
- for (i=0;i<p_size;i++) {
+ for (i = 0; i < p_size; i++) {
gnutls_x509_crt_deinit(certs[i]);
}
gnutls_free(certs);
@@ -1662,7 +1669,8 @@ cert_callback(gnutls_session_t session,
fprintf(fp, "- Server's trusted authorities:\n");
else
fprintf
- (fp, "- Server did not send us any trusted authorities names.\n");
+ (fp,
+ "- Server did not send us any trusted authorities names.\n");
/* print the names (if any) */
for (i = 0; i < nreqs; i++) {
@@ -1711,8 +1719,7 @@ test_code_t test_server_cas(gnutls_session_t session)
return TEST_SUCCEED;
}
-static test_code_t
-test_do_handshake_and_send_record(gnutls_session_t session)
+static test_code_t test_do_handshake_and_send_record(gnutls_session_t session)
{
int ret;
/* This will be padded to 512 bytes. */
diff --git a/src/tests.h b/src/tests.h
index d9721a70e2..f5fd646311 100644
--- a/src/tests.h
+++ b/src/tests.h
@@ -19,10 +19,10 @@
*/
#ifndef GNUTLS_SRC_TESTS_H
-#define GNUTLS_SRC_TESTS_H
+# define GNUTLS_SRC_TESTS_H
typedef enum {
- TEST_SUCCEED, TEST_FAILED, TEST_UNSURE, TEST_IGNORE/*keep socket*/, TEST_IGNORE2/*destroy socket*/
+ TEST_SUCCEED, TEST_FAILED, TEST_UNSURE, TEST_IGNORE /*keep socket */ , TEST_IGNORE2 /*destroy socket */
} test_code_t;
test_code_t test_chain_order(gnutls_session_t session);
@@ -89,10 +89,10 @@ test_code_t test_aes_ccm(gnutls_session_t session);
test_code_t test_aes_ccm_8(gnutls_session_t session);
test_code_t test_sha256(gnutls_session_t session);
-#ifdef ENABLE_GOST
+# ifdef ENABLE_GOST
test_code_t test_vko_gost_12(gnutls_session_t session);
test_code_t test_gost_cnt(gnutls_session_t session);
test_code_t test_gost_imit(gnutls_session_t session);
-#endif
+# endif
-#endif /* GNUTLS_SRC_TESTS_H */
+#endif /* GNUTLS_SRC_TESTS_H */
diff --git a/src/tpmtool.c b/src/tpmtool.c
index 1b230c2ffa..33c2e0cf1f 100644
--- a/src/tpmtool.c
+++ b/src/tpmtool.c
@@ -82,7 +82,6 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "|<%d>| %s", level, str);
}
-
int main(int argc, char **argv)
{
cmd_parser(argc, argv);
@@ -163,11 +162,11 @@ static void cmd_parser(int argc, char **argv)
if (HAVE_OPT(BITS))
bits = OPT_VALUE_BITS;
-
if (HAVE_OPT(GENERATE_RSA)) {
key_type = GNUTLS_PK_RSA;
bits = get_bits(key_type, bits, sec_param, 0);
- tpm_generate(outfile, key_type, bits, genflags, HAVE_OPT(SRK_WELL_KNOWN));
+ tpm_generate(outfile, key_type, bits, genflags,
+ HAVE_OPT(SRK_WELL_KNOWN));
} else if (HAVE_OPT(PUBKEY)) {
tpm_pubkey(OPT_ARG(PUBKEY), outfile, HAVE_OPT(SRK_WELL_KNOWN));
} else if (HAVE_OPT(DELETE)) {
@@ -187,19 +186,18 @@ static void cmd_parser(int argc, char **argv)
#define TEST_DATA "Test data to sign"
-static void
-tpm_test_sign(const char *url, FILE * out)
+static void tpm_test_sign(const char *url, FILE * out)
{
gnutls_privkey_t privkey;
gnutls_pubkey_t pubkey;
int ret;
- gnutls_datum_t data, sig = {NULL, 0};
+ gnutls_datum_t data, sig = { NULL, 0 };
int pk;
pkcs11_common(NULL);
- data.data = (void*)TEST_DATA;
- data.size = sizeof(TEST_DATA)-1;
+ data.data = (void *)TEST_DATA;
+ data.size = sizeof(TEST_DATA) - 1;
ret = gnutls_privkey_init(&privkey);
if (ret < 0) {
@@ -229,18 +227,20 @@ tpm_test_sign(const char *url, FILE * out)
exit(1);
}
- ret = gnutls_privkey_sign_data(privkey, GNUTLS_DIG_SHA1, 0, &data, &sig);
+ ret =
+ gnutls_privkey_sign_data(privkey, GNUTLS_DIG_SHA1, 0, &data, &sig);
if (ret < 0) {
- fprintf(stderr, "Cannot sign data: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "Cannot sign data: %s\n", gnutls_strerror(ret));
exit(1);
}
pk = gnutls_pubkey_get_pk_algorithm(pubkey, NULL);
fprintf(stderr, "Verifying against private key parameters... ");
- ret = gnutls_pubkey_verify_data2(pubkey, gnutls_pk_to_sign(pk, GNUTLS_DIG_SHA1),
- 0, &data, &sig);
+ ret =
+ gnutls_pubkey_verify_data2(pubkey,
+ gnutls_pk_to_sign(pk, GNUTLS_DIG_SHA1),
+ 0, &data, &sig);
if (ret < 0) {
fprintf(stderr, "Cannot verify signed data: %s\n",
gnutls_strerror(ret));
@@ -288,7 +288,6 @@ static void tpm_generate(FILE * out, unsigned int key_type,
exit(1);
}
-
fwrite(privkey.data, 1, privkey.size, out);
fputs("\n", out);
@@ -296,8 +295,7 @@ static void tpm_generate(FILE * out, unsigned int key_type,
gnutls_free(pubkey.data);
}
-static void tpm_delete(const char *url, FILE * out,
- unsigned int srk_well_known)
+static void tpm_delete(const char *url, FILE * out, unsigned int srk_well_known)
{
int ret;
char *srk_pass = NULL;
@@ -373,7 +371,8 @@ static void tpm_pubkey(const char *url, FILE * out, unsigned int srk_well_known)
exit(1);
}
- print_pubkey_info(pubkey, out, GNUTLS_CRT_PRINT_FULL, GNUTLS_X509_FMT_PEM, 1);
+ print_pubkey_info(pubkey, out, GNUTLS_CRT_PRINT_FULL,
+ GNUTLS_X509_FMT_PEM, 1);
gnutls_pubkey_deinit(pubkey);
}
diff --git a/src/udp-serv.c b/src/udp-serv.c
index ca19cbebaa..7ffbf8aad1 100644
--- a/src/udp-serv.c
+++ b/src/udp-serv.c
@@ -21,13 +21,13 @@
#include <stdio.h>
#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
+# include <sys/socket.h>
#elif HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
+# include <ws2tcpip.h>
#endif
#include <arpa/inet.h>
#ifndef _WIN32
-#include <netinet/in.h>
+# include <netinet/in.h>
#endif
#include <sys/select.h>
#include <stdlib.h>
@@ -50,8 +50,7 @@ typedef struct {
static int pull_timeout_func(gnutls_transport_ptr_t ptr, unsigned int ms);
static ssize_t push_func(gnutls_transport_ptr_t p, const void *data,
size_t size);
-static ssize_t pull_func(gnutls_transport_ptr_t p, void *data,
- size_t size);
+static ssize_t pull_func(gnutls_transport_ptr_t p, void *data, size_t size);
#define MAX_BUFFER 255 /* Longest string to echo */
@@ -96,14 +95,14 @@ void udp_server(const char *name, int port, int mtu)
cli_addr_size = sizeof(cli_addr);
ret =
- recvfrom(sock, buffer, sizeof(buffer)-1, MSG_PEEK,
- (struct sockaddr *) &cli_addr,
- &cli_addr_size);
+ recvfrom(sock, buffer, sizeof(buffer) - 1, MSG_PEEK,
+ (struct sockaddr *)&cli_addr, &cli_addr_size);
/* only accept a valid client hello */
if (ret > HANDSHAKE_TYPE_POS &&
buffer[RECORD_CONTENT_POS] == HANDSHAKE_CONTENT_TYPE &&
- buffer[HANDSHAKE_TYPE_POS] == GNUTLS_HANDSHAKE_CLIENT_HELLO) {
+ buffer[HANDSHAKE_TYPE_POS] ==
+ GNUTLS_HANDSHAKE_CLIENT_HELLO) {
if (!HAVE_OPT(NOCOOKIE)) {
memset(&prestate, 0, sizeof(prestate));
ret =
@@ -117,7 +116,7 @@ void udp_server(const char *name, int port, int mtu)
memset(&s, 0, sizeof(s));
s.fd = sock;
- s.cli_addr = (void *) &cli_addr;
+ s.cli_addr = (void *)&cli_addr;
s.cli_addr_size = cli_addr_size;
printf
@@ -125,17 +124,18 @@ void udp_server(const char *name, int port, int mtu)
human_addr((struct sockaddr *)
&cli_addr,
cli_addr_size, buffer,
- sizeof(buffer)-1));
+ sizeof(buffer) - 1));
gnutls_dtls_cookie_send(&cookie_key,
&cli_addr,
cli_addr_size,
&prestate,
(gnutls_transport_ptr_t)
- &s, push_func);
+ & s, push_func);
/* discard peeked data */
- recvfrom(sock, buffer, sizeof(buffer)-1, 0,
- (struct sockaddr *) &cli_addr,
+ recvfrom(sock, buffer,
+ sizeof(buffer) - 1, 0,
+ (struct sockaddr *)&cli_addr,
&cli_addr_size);
continue;
}
@@ -143,7 +143,7 @@ void udp_server(const char *name, int port, int mtu)
printf("Accepted connection from %s\n",
human_addr((struct sockaddr *)
&cli_addr, sizeof(cli_addr),
- buffer, sizeof(buffer)-1));
+ buffer, sizeof(buffer) - 1));
} else
continue;
@@ -168,8 +168,7 @@ void udp_server(const char *name, int port, int mtu)
do {
ret = gnutls_handshake(session);
}
- while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fprintf(stderr, "Error in handshake(): %s\n",
@@ -182,10 +181,9 @@ void udp_server(const char *name, int port, int mtu)
do {
ret =
gnutls_record_recv_seq(session, buffer,
- sizeof(buffer)-1,
+ sizeof(buffer) - 1,
sequence);
- if (ret ==
- GNUTLS_E_HEARTBEAT_PING_RECEIVED)
+ if (ret == GNUTLS_E_HEARTBEAT_PING_RECEIVED)
gnutls_heartbeat_pong(session, 0);
}
while (ret == GNUTLS_E_INTERRUPTED
@@ -193,8 +191,7 @@ void udp_server(const char *name, int port, int mtu)
|| ret == GNUTLS_E_HEARTBEAT_PING_RECEIVED);
if (ret == GNUTLS_E_REHANDSHAKE) {
- fprintf(stderr,
- "*** Received hello message\n");
+ fprintf(stderr, "*** Received hello message\n");
do {
ret = gnutls_handshake(session);
}
@@ -221,11 +218,10 @@ void udp_server(const char *name, int port, int mtu)
sequence[3], sequence[4], sequence[5],
sequence[6], sequence[7], buffer);
- if (check_command(session, buffer, disable_client_cert) == 0) {
+ if (check_command(session, buffer, disable_client_cert)
+ == 0) {
/* reply back */
- ret =
- gnutls_record_send(session, buffer,
- ret);
+ ret = gnutls_record_send(session, buffer, ret);
if (ret < 0) {
fprintf(stderr,
"Error in send(): %s\n",
@@ -267,11 +263,10 @@ static int pull_timeout_func(gnutls_transport_ptr_t ptr, unsigned int ms)
cli_addr_size = sizeof(cli_addr);
ret =
recvfrom(priv->fd, &c, 1, MSG_PEEK,
- (struct sockaddr *) &cli_addr, &cli_addr_size);
+ (struct sockaddr *)&cli_addr, &cli_addr_size);
if (ret > 0) {
if (cli_addr_size == priv->cli_addr_size
- && memcmp(&cli_addr, priv->cli_addr,
- sizeof(cli_addr)) == 0)
+ && memcmp(&cli_addr, priv->cli_addr, sizeof(cli_addr)) == 0)
return 1;
}
@@ -283,8 +278,8 @@ static ssize_t push_func(gnutls_transport_ptr_t p, const void *data,
{
priv_data_st *priv = p;
- return sendto(priv->fd, data, size, 0, (struct sockaddr*)priv->cli_addr,
- priv->cli_addr_size);
+ return sendto(priv->fd, data, size, 0,
+ (struct sockaddr *)priv->cli_addr, priv->cli_addr_size);
}
static ssize_t pull_func(gnutls_transport_ptr_t p, void *data, size_t size)
@@ -298,7 +293,7 @@ static ssize_t pull_func(gnutls_transport_ptr_t p, void *data, size_t size)
cli_addr_size = sizeof(cli_addr);
ret =
recvfrom(priv->fd, data, size, 0,
- (struct sockaddr *) &cli_addr, &cli_addr_size);
+ (struct sockaddr *)&cli_addr, &cli_addr_size);
if (ret == -1)
return ret;
@@ -306,10 +301,11 @@ static ssize_t pull_func(gnutls_transport_ptr_t p, void *data, size_t size)
&& memcmp(&cli_addr, priv->cli_addr, sizeof(cli_addr)) == 0)
return ret;
- printf("Denied connection from %s\n",
- human_addr((struct sockaddr *)
- &cli_addr, sizeof(cli_addr), buffer,
- sizeof(buffer)));
+ printf("Denied connection from %s\n", human_addr((struct sockaddr *)
+ &cli_addr,
+ sizeof(cli_addr),
+ buffer,
+ sizeof(buffer)));
gnutls_transport_set_errno(priv->session, EAGAIN);
return -1;
diff --git a/src/udp-serv.h b/src/udp-serv.h
index 08c88de254..b32f9dd664 100644
--- a/src/udp-serv.h
+++ b/src/udp-serv.h
@@ -18,9 +18,9 @@
*/
#ifndef GNUTLS_SRC_UDP_SERV_H
-#define GNUTLS_SRC_UDP_SERV_H
+# define GNUTLS_SRC_UDP_SERV_H
-#include <gnutls/dtls.h>
+# include <gnutls/dtls.h>
void udp_server(const char *name, int port, int mtu);
gnutls_session_t initialize_session(int dtls);
@@ -29,4 +29,4 @@ const char *human_addr(const struct sockaddr *sa, socklen_t salen,
int wait_for_connection(void);
int listen_socket(const char *name, int listen_port, int socktype);
-#endif /* GNUTLS_SRC_UDP_SERV_H */
+#endif /* GNUTLS_SRC_UDP_SERV_H */
diff --git a/tests/aead-cipher-vec.c b/tests/aead-cipher-vec.c
index d1df39e18a..ff9085f2cd 100644
--- a/tests/aead-cipher-vec.c
+++ b/tests/aead-cipher-vec.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <gnutls/crypto.h>
@@ -43,7 +43,7 @@ static void start(const char *name, int algo)
uint8_t key16[64];
uint8_t iv16[32];
uint8_t auth[128];
- uint8_t data[64+56+36];
+ uint8_t data[64 + 56 + 36];
gnutls_datum_t key, iv;
giovec_t iov[3];
giovec_t auth_iov[2];
@@ -78,8 +78,7 @@ static void start(const char *name, int algo)
success("trying %s\n", name);
- ret =
- gnutls_aead_cipher_init(&ch, algo, &key);
+ ret = gnutls_aead_cipher_init(&ch, algo, &key);
if (ret < 0)
fail("gnutls_cipher_init: %s\n", gnutls_strerror(ret));
@@ -87,25 +86,24 @@ static void start(const char *name, int algo)
ret = gnutls_aead_cipher_encryptv2(ch,
iv.data, iv.size,
auth_iov, 2,
- iov, i + 1,
- tag, &tag_size);
+ iov, i + 1, tag, &tag_size);
if (ret < 0)
- fail("could not encrypt data: %s\n", gnutls_strerror(ret));
+ fail("could not encrypt data: %s\n",
+ gnutls_strerror(ret));
ret = gnutls_aead_cipher_decryptv2(ch,
iv.data, iv.size,
auth_iov, 2,
- iov, i + 1,
- tag, tag_size);
+ iov, i + 1, tag, tag_size);
if (ret < 0)
- fail("could not decrypt data: %s\n", gnutls_strerror(ret));
+ fail("could not decrypt data: %s\n",
+ gnutls_strerror(ret));
}
gnutls_aead_cipher_deinit(ch);
}
-void
-doit(void)
+void doit(void)
{
int ret;
@@ -115,7 +113,7 @@ doit(void)
ret = global_init();
if (ret < 0) {
- fail("Cannot initialize library\n"); /*errcode 1 */
+ fail("Cannot initialize library\n"); /*errcode 1 */
}
start("aes-128-gcm", GNUTLS_CIPHER_AES_128_GCM);
diff --git a/tests/alerts.c b/tests/alerts.c
index bc5c95365f..53ed541e39 100644
--- a/tests/alerts.c
+++ b/tests/alerts.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,19 +36,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include "cert-common.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include "cert-common.h"
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -69,7 +69,7 @@ static void client(int fd, const char *prio, int ign)
{
int ret;
char buffer[64];
- const char* err;
+ const char *err;
gnutls_certificate_credentials_t x509_cred;
gnutls_session_t session;
/* Need to enable anonymous KX specifically. */
@@ -122,15 +122,20 @@ static void client(int fd, const char *prio, int ign)
gnutls_protocol_get_name
(gnutls_protocol_get_version(session)));
- ret = gnutls_alert_send(session, GNUTLS_AL_WARNING, GNUTLS_A_USER_CANCELED);
+ ret =
+ gnutls_alert_send(session, GNUTLS_AL_WARNING,
+ GNUTLS_A_USER_CANCELED);
if (ret < 0) {
- fail("server: Error sending user cancelled alert: %s\n", gnutls_strerror(ret));
+ fail("server: Error sending user cancelled alert: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_alert_send(session, GNUTLS_AL_FATAL, GNUTLS_A_DECRYPT_ERROR);
+ ret =
+ gnutls_alert_send(session, GNUTLS_AL_FATAL, GNUTLS_A_DECRYPT_ERROR);
if (ret < 0) {
- fail("server: Error sending decrypt error alert: %s\n", gnutls_strerror(ret));
+ fail("server: Error sending decrypt error alert: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -143,7 +148,6 @@ static void client(int fd, const char *prio, int ign)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -157,7 +161,7 @@ static void terminate(void)
static void server(int fd, const char *prio, int ign)
{
int ret;
- const char* err;
+ const char *err;
char buffer[64];
gnutls_session_t session;
gnutls_certificate_credentials_t x509_cred;
@@ -174,9 +178,7 @@ static void server(int fd, const char *prio, int ign)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
-
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
@@ -214,9 +216,9 @@ static void server(int fd, const char *prio, int ign)
do {
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer));
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ ret =
+ gnutls_record_recv(session, buffer, sizeof(buffer));
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret > 0)
fail("error receiving alert: ret: %d\n", ret);
} while (ret > 0);
@@ -228,9 +230,9 @@ static void server(int fd, const char *prio, int ign)
do {
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer));
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ ret =
+ gnutls_record_recv(session, buffer, sizeof(buffer));
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret > 0)
fail("error receiving alert: ret: %d\n", ret);
} while (ret > 0);
@@ -280,7 +282,7 @@ static void start(const char *prio, int ign)
}
}
-#define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
static void ch_handler(int sig)
{
diff --git a/tests/alpn-server-prec.c b/tests/alpn-server-prec.c
index 2e45ff67c9..b795e583a5 100644
--- a/tests/alpn-server-prec.c
+++ b/tests/alpn-server-prec.c
@@ -22,7 +22,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -37,18 +37,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -65,7 +65,8 @@ static void client_log_func(int level, const char *str)
/* These are global */
static pid_t child;
-static void client(int fd, const char *protocol0, const char *protocol1, const char *protocol2)
+static void client(int fd, const char *protocol0, const char *protocol1,
+ const char *protocol2)
{
gnutls_session_t session;
int ret;
@@ -92,11 +93,11 @@ static void client(int fd, const char *protocol0, const char *protocol1, const c
NULL);
if (protocol1) {
gnutls_datum_t t[3];
- t[0].data = (void *) protocol0;
+ t[0].data = (void *)protocol0;
t[0].size = strlen(protocol0);
- t[1].data = (void *) protocol1;
+ t[1].data = (void *)protocol1;
t[1].size = strlen(protocol1);
- t[2].data = (void *) protocol2;
+ t[2].data = (void *)protocol2;
t[2].size = strlen(protocol2);
ret = gnutls_alpn_set_protocols(session, t, 3, 0);
@@ -141,10 +142,9 @@ static void client(int fd, const char *protocol0, const char *protocol1, const c
if (debug) {
fprintf(stderr, "selected protocol: %.*s\n",
- (int) proto.size, proto.data);
+ (int)proto.size, proto.data);
}
-
gnutls_bye(session, GNUTLS_SHUT_WR);
close(fd);
@@ -165,7 +165,8 @@ static void terminate(void)
exit(1);
}
-static void server(int fd, const char *protocol1, const char *protocol2, const char *expected)
+static void server(int fd, const char *protocol1, const char *protocol2,
+ const char *expected)
{
int ret;
gnutls_session_t session;
@@ -193,12 +194,14 @@ static void server(int fd, const char *protocol1, const char *protocol2, const c
"NONE:+VERS-TLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL",
NULL);
- t[0].data = (void *) protocol1;
+ t[0].data = (void *)protocol1;
t[0].size = strlen(protocol1);
- t[1].data = (void *) protocol2;
+ t[1].data = (void *)protocol2;
t[1].size = strlen(protocol2);
- ret = gnutls_alpn_set_protocols(session, t, 2, GNUTLS_ALPN_SERVER_PRECEDENCE);
+ ret =
+ gnutls_alpn_set_protocols(session, t, 2,
+ GNUTLS_ALPN_SERVER_PRECEDENCE);
if (ret < 0) {
gnutls_perror(ret);
exit(1);
@@ -234,10 +237,11 @@ static void server(int fd, const char *protocol1, const char *protocol2, const c
}
if (debug) {
- success("Protocol: %.*s\n", (int) selected.size, selected.data);
+ success("Protocol: %.*s\n", (int)selected.size, selected.data);
}
- if (selected.size != strlen(expected) || memcmp(selected.data, expected, selected.size) != 0) {
+ if (selected.size != strlen(expected)
+ || memcmp(selected.data, expected, selected.size) != 0) {
fail("did not select the expected protocol (selected %.*s, expected %s)\n", selected.size, selected.data, expected);
exit(1);
}
@@ -257,7 +261,8 @@ static void server(int fd, const char *protocol1, const char *protocol2, const c
success("server: finished\n");
}
-static void start(const char *p1, const char *p2, const char *cp1, const char *cp2, const char *expected)
+static void start(const char *p1, const char *p2, const char *cp1,
+ const char *cp2, const char *expected)
{
int fd[2];
int ret;
diff --git a/tests/anonself.c b/tests/anonself.c
index 67b92af350..b92cb286a1 100644
--- a/tests/anonself.c
+++ b/tests/anonself.c
@@ -22,7 +22,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,26 +40,26 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
+# include "utils.h"
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "|<%d>| %s", level, str);
}
-#define MSG "Hello TLS"
-#define MAX_BUF 1024
+# define MSG "Hello TLS"
+# define MAX_BUF 1024
static void client(int sd, const char *prio)
{
@@ -82,9 +82,7 @@ static void client(int sd, const char *prio)
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- assert(gnutls_priority_set_direct(session,
- prio,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the anonymous credentials to the current session
*/
@@ -113,8 +111,8 @@ static void client(int sd, const char *prio)
gnutls_protocol_get_name
(gnutls_protocol_get_version(session)));
- ret = gnutls_record_send(session, MSG, sizeof(MSG)-1);
- if (ret != sizeof(MSG)-1) {
+ ret = gnutls_record_send(session, MSG, sizeof(MSG) - 1);
+ if (ret != sizeof(MSG) - 1) {
fail("return value of gnutls_record_send() is bogus\n");
exit(1);
}
@@ -122,17 +120,15 @@ static void client(int sd, const char *prio)
ret = gnutls_record_recv(session, buffer, MAX_BUF);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
goto end;
}
- if (ret != sizeof(MSG)-1 || memcmp(buffer, MSG, ret) != 0) {
- fail("client: received data of different size! (expected: %d, have: %d)\n",
- (int)strlen(MSG), ret);
+ if (ret != sizeof(MSG) - 1 || memcmp(buffer, MSG, ret) != 0) {
+ fail("client: received data of different size! (expected: %d, have: %d)\n", (int)strlen(MSG), ret);
goto end;
}
@@ -146,7 +142,7 @@ static void client(int sd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -157,11 +153,11 @@ static void client(int sd, const char *prio)
gnutls_global_deinit();
}
-#define DH_BITS 1024
+# define DH_BITS 1024
static void server(int sd, const char *prio)
{
- const gnutls_datum_t p3 = { (void *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (void *)pkcs3, strlen(pkcs3) };
gnutls_anon_server_credentials_t anoncred;
gnutls_dh_params_t dh_params;
int ret;
@@ -181,13 +177,13 @@ static void server(int sd, const char *prio)
if (debug)
success("Launched, generating DH parameters...\n");
- assert(gnutls_dh_params_init(&dh_params)>=0);
+ assert(gnutls_dh_params_init(&dh_params) >= 0);
assert(gnutls_dh_params_import_pkcs3(dh_params, &p3,
- GNUTLS_X509_FMT_PEM)>=0);
+ GNUTLS_X509_FMT_PEM) >= 0);
gnutls_anon_set_server_dh_params(anoncred, dh_params);
- assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
@@ -234,8 +230,7 @@ static void server(int sd, const char *prio)
gnutls_packet_get(packet, &pdata, NULL);
/* echo data back to the client
*/
- gnutls_record_send(session, pdata.data,
- pdata.size);
+ gnutls_record_send(session, pdata.data, pdata.size);
gnutls_packet_deinit(packet);
}
}
@@ -291,10 +286,14 @@ void start(const char *name, const char *prio)
void doit(void)
{
- start("tls1.2 anon-dh", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ANON-DH");
- start("tls1.2 anon-ecdh", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ANON-ECDH");
- start("tls1.3 anon-dh", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:-KX-ALL:+ANON-DH");
- start("tls1.3 anon-ecdh", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:-KX-ALL:+ANON-ECDH");
+ start("tls1.2 anon-dh",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ANON-DH");
+ start("tls1.2 anon-ecdh",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ANON-ECDH");
+ start("tls1.3 anon-dh",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:-KX-ALL:+ANON-DH");
+ start("tls1.3 anon-ecdh",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:-KX-ALL:+ANON-ECDH");
start("default anon-dh", "NORMAL:-KX-ALL:+ANON-DH");
start("default anon-ecdh", "NORMAL:-KX-ALL:+ANON-ECDH");
}
diff --git a/tests/atfork.c b/tests/atfork.c
index 654519dc7c..235a855bfd 100644
--- a/tests/atfork.c
+++ b/tests/atfork.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -29,7 +29,7 @@
#include <unistd.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <sys/wait.h>
+# include <sys/wait.h>
#endif
#include <gnutls/gnutls.h>
@@ -42,12 +42,12 @@ void doit(void)
}
#else
-#include "../lib/atfork.h"
-#include "../lib/atfork.c"
+# include "../lib/atfork.h"
+# include "../lib/atfork.c"
/* utils.h must be loaded after gnutls_int.h, as it redefines some
* macros from gnulib */
-#include "utils.h"
+# include "utils.h"
void doit(void)
{
diff --git a/tests/auto-verify.c b/tests/auto-verify.c
index c1e1e049e3..d2c614db5e 100644
--- a/tests/auto-verify.c
+++ b/tests/auto-verify.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -44,102 +44,100 @@ static void tls_log_func(int level, const char *str)
}
static unsigned char ca_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwNDA5MDgwMjM0WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCuLSye8pe3yWKZ\n"
-"Yp7tLQ4ImwLqqh1aN7x9pc5spLDj6krVArzkyyYDcWvtQNDjErEfLUrZZrCc4aIl\n"
-"oU1Ghb92kI8ofZnHFbj3z5zdcWqiPppj5Y+hRdc4LszTWb+itrD9Ht/D67EK+m7W\n"
-"ev6xxUdyiBYUmb2O3CnPZpUVshMRtEe45EDGI5hUgL2n4Msj41htTq8hATYPXgoq\n"
-"gQUyXFpKAX5XDCyOG+FC6jmEys7UCRYv3SCl7TPWJ4cm+lHcFI2/OTOCBvMlKN2J\n"
-"mWCdfnudZldqthin+8fR9l4nbuutOfPNt1Dj9InDzWZ1W/o4LrjKa7fsvszj2Z5A\n"
-"Fn+xN/4zAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQUwRHwbXyPosKNNkBiZduEwL5ZCwswDQYJKoZIhvcNAQELBQAD\n"
-"ggEBAEKr0b7WoJL+L8St/LEITU/i7FwFrCP6DkbaNo0kgzPmwnvNmw88MLI6UKwE\n"
-"JecnjFhurRBBZ4FA85ucNyizeBnuXqFcyJ20+XziaXGPKV/ugKyYv9KBoTYkQOCh\n"
-"nbOthmDqjvy2UYQj0BU2dOywkjUKWhYHEZLBpZYck0Orynxydwil5Ncsz4t3smJw\n"
-"ahzCW8SzBFTiO99qQBCH2RH1PbUYzfAnJxZS2VScpcqlu9pr+Qv7r8E3p9qHxnQM\n"
-"gO5laWO6lc13rNsbZRrtlCvacsiDSuDnS8EVXm0ih4fAntpRHacPbXZbOPQqJ/+1\n"
-"G7/qJ6cDC/9aW+fU80ogTkAoFg4=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwNDA5MDgwMjM0WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCuLSye8pe3yWKZ\n"
+ "Yp7tLQ4ImwLqqh1aN7x9pc5spLDj6krVArzkyyYDcWvtQNDjErEfLUrZZrCc4aIl\n"
+ "oU1Ghb92kI8ofZnHFbj3z5zdcWqiPppj5Y+hRdc4LszTWb+itrD9Ht/D67EK+m7W\n"
+ "ev6xxUdyiBYUmb2O3CnPZpUVshMRtEe45EDGI5hUgL2n4Msj41htTq8hATYPXgoq\n"
+ "gQUyXFpKAX5XDCyOG+FC6jmEys7UCRYv3SCl7TPWJ4cm+lHcFI2/OTOCBvMlKN2J\n"
+ "mWCdfnudZldqthin+8fR9l4nbuutOfPNt1Dj9InDzWZ1W/o4LrjKa7fsvszj2Z5A\n"
+ "Fn+xN/4zAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQUwRHwbXyPosKNNkBiZduEwL5ZCwswDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBAEKr0b7WoJL+L8St/LEITU/i7FwFrCP6DkbaNo0kgzPmwnvNmw88MLI6UKwE\n"
+ "JecnjFhurRBBZ4FA85ucNyizeBnuXqFcyJ20+XziaXGPKV/ugKyYv9KBoTYkQOCh\n"
+ "nbOthmDqjvy2UYQj0BU2dOywkjUKWhYHEZLBpZYck0Orynxydwil5Ncsz4t3smJw\n"
+ "ahzCW8SzBFTiO99qQBCH2RH1PbUYzfAnJxZS2VScpcqlu9pr+Qv7r8E3p9qHxnQM\n"
+ "gO5laWO6lc13rNsbZRrtlCvacsiDSuDnS8EVXm0ih4fAntpRHacPbXZbOPQqJ/+1\n"
+ "G7/qJ6cDC/9aW+fU80ogTkAoFg4=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t ca_cert = { ca_cert_pem,
sizeof(ca_cert_pem)
};
static unsigned char server_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDOjCCAiKgAwIBAgIMU0T+mwoDu5uVLKeeMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
-"BgNVBAMTBENBLTEwIhgPMjAxNDA0MDkwODAyMzVaGA85OTk5MTIzMTIzNTk1OVow\n"
-"EzERMA8GA1UEAxMIc2VydmVyLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
-"AoIBAQDXfvgsMWXHNf3iUaEoZSNztZZr6+UdBkoUhbdWJDR+GwR+GHfnYaYHsuqb\n"
-"bNEl/QFI+8Jeth0SmG7TNB+b/AlHFoBm8TwBt7H+Mn6AQIdo872Vs262UkHgbZN6\n"
-"dEQeRCgiXmlsOVe+MVpf79Xi32MYz1FZ/ueS6tr8sIDhECThIZkq2eulVjAV86N2\n"
-"zQ72Ml1k8rPw4SdK5OFhcXNdXr6CsAol8MmiORKDF0iAZxwtFVc00nBGqQC5rwrN\n"
-"3A8czH5TsvyvrcW0mwV2XOVvZM5kFM1T/X0jF6RQHiGGFBYK4s6JZxSSOhJMFYYh\n"
-"koPEKsuVZdmBJ2yTTdGumHZfG9LDAgMBAAGjgY0wgYowDAYDVR0TAQH/BAIwADAU\n"
-"BgNVHREEDTALgglsb2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0P\n"
-"AQH/BAUDAwegADAdBgNVHQ4EFgQURXiN5VD5vgqAprhd/37ldGKv4/4wHwYDVR0j\n"
-"BBgwFoAU8MUzmkotjSmVa5r1ejMkMQ6BiZYwDQYJKoZIhvcNAQELBQADggEBABSU\n"
-"cmMX0nGeg43itPnLjSTIUuYEamRhfsFDwgRYQn5w+BcFG1p0scBRxLAShUEb9A2A\n"
-"oEJV4rQDpCn9bcMrMHhTCR5sOlLh/2o9BROjK0+DjQLDkooQK5xa+1GYEiy6QYCx\n"
-"QjdCCnMhHh24oP2/vUggRKhevvD2QQFKcCDT6n13RFYm+HX82gIh6SAtRs0oahY5\n"
-"k9CM9TYRPzXy+tQqhZisJzc8BLTW/XA97kAJW6+hUhPir7AYR6BKJhNeIxcN/yMy\n"
-"jsHzWDLezip/8q+kzw658V5e40hne7ZaJycGUaUdLVnJcpNtBgGE82TRS/XZSQKF\n"
-"fpy8FLGcJynqlIOzdKs=\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwNDA5MDgwMjM0WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZq3sA+mjFadII\n"
-"EMDHfj1fYh+UOUSa8c814E9NfCdYZ9Z11BmPpBeR5mXV12j1DKjkTlqTUL7s4lVR\n"
-"RKfyAdCpQIfeXHDeTYYUq2uBnbi5YMG5Y+WbCiYacgRU3IypYrSzaeh1mY7GiEFe\n"
-"U/NaImHLCf+TdAvTJ3Fo0QPe5QN2Lrv6l//cqOv7enZ91KRWxClDMM6EAr+C/7dk\n"
-"rOTXRrCuH/e/KVBXEJ/YeSYPmBIwolGktRrGdsVagdqYArr4dhJ7VThIVRUX1Ijl\n"
-"THCLstI/LuD8WkDccU3ZSdm47f2U43p/+rSO0MiNOXiaskeK56G/9DbJEeETUbzm\n"
-"/B2712MVAgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQU8MUzmkotjSmVa5r1ejMkMQ6BiZYwHwYDVR0jBBgwFoAUwRHw\n"
-"bXyPosKNNkBiZduEwL5ZCwswDQYJKoZIhvcNAQELBQADggEBACKxBPj9u1t52uIF\n"
-"eQ2JPb8/u+MBttvSLo0qPKXwpc4q8hNclh66dpqGWiF0iSumsKyKU54r6CIF9Ikm\n"
-"t1V1GR9Ll4iTnz3NdIt1w3ns8rSlU5O/dgKysK/1C/5xJWEUYtEO5mnyi4Zaf8FB\n"
-"hKmQ1aWF5dTB81PVAQxyCiFEnH7YumK7pJeIpnCOPIqLZLUHfrTUeL8zONF4i5Sb\n"
-"7taZ8SQ6b7IaioU+NJ50uT2wy34lsyvCWf76Azezv9bggkdNDo/7ktMgsfRrSyM8\n"
-"+MVob5ePGTjKx5yMy/sy2vUkkefwW3RiEss/y2JRb8Hw7nDlA9ttilYKFwGFwRvw\n"
-"KRsXqo8=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDOjCCAiKgAwIBAgIMU0T+mwoDu5uVLKeeMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTEwIhgPMjAxNDA0MDkwODAyMzVaGA85OTk5MTIzMTIzNTk1OVow\n"
+ "EzERMA8GA1UEAxMIc2VydmVyLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
+ "AoIBAQDXfvgsMWXHNf3iUaEoZSNztZZr6+UdBkoUhbdWJDR+GwR+GHfnYaYHsuqb\n"
+ "bNEl/QFI+8Jeth0SmG7TNB+b/AlHFoBm8TwBt7H+Mn6AQIdo872Vs262UkHgbZN6\n"
+ "dEQeRCgiXmlsOVe+MVpf79Xi32MYz1FZ/ueS6tr8sIDhECThIZkq2eulVjAV86N2\n"
+ "zQ72Ml1k8rPw4SdK5OFhcXNdXr6CsAol8MmiORKDF0iAZxwtFVc00nBGqQC5rwrN\n"
+ "3A8czH5TsvyvrcW0mwV2XOVvZM5kFM1T/X0jF6RQHiGGFBYK4s6JZxSSOhJMFYYh\n"
+ "koPEKsuVZdmBJ2yTTdGumHZfG9LDAgMBAAGjgY0wgYowDAYDVR0TAQH/BAIwADAU\n"
+ "BgNVHREEDTALgglsb2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0P\n"
+ "AQH/BAUDAwegADAdBgNVHQ4EFgQURXiN5VD5vgqAprhd/37ldGKv4/4wHwYDVR0j\n"
+ "BBgwFoAU8MUzmkotjSmVa5r1ejMkMQ6BiZYwDQYJKoZIhvcNAQELBQADggEBABSU\n"
+ "cmMX0nGeg43itPnLjSTIUuYEamRhfsFDwgRYQn5w+BcFG1p0scBRxLAShUEb9A2A\n"
+ "oEJV4rQDpCn9bcMrMHhTCR5sOlLh/2o9BROjK0+DjQLDkooQK5xa+1GYEiy6QYCx\n"
+ "QjdCCnMhHh24oP2/vUggRKhevvD2QQFKcCDT6n13RFYm+HX82gIh6SAtRs0oahY5\n"
+ "k9CM9TYRPzXy+tQqhZisJzc8BLTW/XA97kAJW6+hUhPir7AYR6BKJhNeIxcN/yMy\n"
+ "jsHzWDLezip/8q+kzw658V5e40hne7ZaJycGUaUdLVnJcpNtBgGE82TRS/XZSQKF\n"
+ "fpy8FLGcJynqlIOzdKs=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwNDA5MDgwMjM0WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZq3sA+mjFadII\n"
+ "EMDHfj1fYh+UOUSa8c814E9NfCdYZ9Z11BmPpBeR5mXV12j1DKjkTlqTUL7s4lVR\n"
+ "RKfyAdCpQIfeXHDeTYYUq2uBnbi5YMG5Y+WbCiYacgRU3IypYrSzaeh1mY7GiEFe\n"
+ "U/NaImHLCf+TdAvTJ3Fo0QPe5QN2Lrv6l//cqOv7enZ91KRWxClDMM6EAr+C/7dk\n"
+ "rOTXRrCuH/e/KVBXEJ/YeSYPmBIwolGktRrGdsVagdqYArr4dhJ7VThIVRUX1Ijl\n"
+ "THCLstI/LuD8WkDccU3ZSdm47f2U43p/+rSO0MiNOXiaskeK56G/9DbJEeETUbzm\n"
+ "/B2712MVAgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQU8MUzmkotjSmVa5r1ejMkMQ6BiZYwHwYDVR0jBBgwFoAUwRHw\n"
+ "bXyPosKNNkBiZduEwL5ZCwswDQYJKoZIhvcNAQELBQADggEBACKxBPj9u1t52uIF\n"
+ "eQ2JPb8/u+MBttvSLo0qPKXwpc4q8hNclh66dpqGWiF0iSumsKyKU54r6CIF9Ikm\n"
+ "t1V1GR9Ll4iTnz3NdIt1w3ns8rSlU5O/dgKysK/1C/5xJWEUYtEO5mnyi4Zaf8FB\n"
+ "hKmQ1aWF5dTB81PVAQxyCiFEnH7YumK7pJeIpnCOPIqLZLUHfrTUeL8zONF4i5Sb\n"
+ "7taZ8SQ6b7IaioU+NJ50uT2wy34lsyvCWf76Azezv9bggkdNDo/7ktMgsfRrSyM8\n"
+ "+MVob5ePGTjKx5yMy/sy2vUkkefwW3RiEss/y2JRb8Hw7nDlA9ttilYKFwGFwRvw\n"
+ "KRsXqo8=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char server_key_pem[] =
-"-----BEGIN RSA PRIVATE KEY-----\n"
-"MIIEpAIBAAKCAQEA1374LDFlxzX94lGhKGUjc7WWa+vlHQZKFIW3ViQ0fhsEfhh3\n"
-"52GmB7Lqm2zRJf0BSPvCXrYdEphu0zQfm/wJRxaAZvE8Abex/jJ+gECHaPO9lbNu\n"
-"tlJB4G2TenREHkQoIl5pbDlXvjFaX+/V4t9jGM9RWf7nkura/LCA4RAk4SGZKtnr\n"
-"pVYwFfOjds0O9jJdZPKz8OEnSuThYXFzXV6+grAKJfDJojkSgxdIgGccLRVXNNJw\n"
-"RqkAua8KzdwPHMx+U7L8r63FtJsFdlzlb2TOZBTNU/19IxekUB4hhhQWCuLOiWcU\n"
-"kjoSTBWGIZKDxCrLlWXZgSdsk03Rrph2XxvSwwIDAQABAoIBAB7trDS7ij4DM8MN\n"
-"sDGaAnKS91nZ63I0+uDjKCMG4znOKuDmJh9hVnD4bs+L2KC5JTwSVh09ygJnOlC5\n"
-"xGegzrwTMK6VpOUiNjujh6BkooqfoPAhZpxoReguEeKbWUN2yMPWBQ9xU3SKpMvs\n"
-"IiiDozdmWeiuuxHM/00REA49QO3Gnx2logeB+fcvXXD1UiZV3x0xxSApiJt1sr2r\n"
-"NmqSyGdNUgpmnTP8zbKnDaRe5Wj4tj1TCTLE/HZ0tzdRuwlkIqvcpGg1LMtKm5N8\n"
-"xIWjTGMFwGjG+OF8LGqHLH+28pI3iMB6QqO2YLwOp+WZKImKP3+Dp3s8lCw8t8cm\n"
-"q5/Qc9ECgYEA2xwxm+pFkrFmZNLCakP/6S5AZqpfSBRUlF/uX2pBKO7o6I6aOV9o\n"
-"zq2QWYIZfdyD+9MvAFUQ36sWfTVWpGA34WGtsGtcRRygKKTigpJHvBldaPxiuYuk\n"
-"xbS54nWUdix/JzyQAy22xJXlp4XJvtFJjHhA2td0XA7tfng9n8jmvEUCgYEA+8cA\n"
-"uFIQFbaZ2y6pnOvlVj8OH0f1hZa9M+3q01fWy1rnDAsLrIzJy8TZnBtpDwy9lAun\n"
-"Sa6wzu6qeHmF17xwk5U7BCyK2Qj/9KhRLg1mnDebQ/CiLSAaJVnrYFp9Du96fTkN\n"
-"ollvbFiGF92QwPTDf2f1gHZQEPwa+f/ox37ad2cCgYEAwMgXpfUD7cOEMeV2BQV7\n"
-"XnDBXRM97i9lE38sPmtAlYFPD36Yly4pCt+PCBH9181zmtf+nK47wG/Jw7RwXQQD\n"
-"ZpwItBZiArTi/Z/FY9jMoOU4WKznOBVzjjgq7ONDEo6n+Z/BnepUyraQb0q5bNi7\n"
-"e4o6ldHHoU/JCeNFZRbgXHkCgYA6vJU9at+XwS6phHxLQHkTIsivoYD0tlLTX4it\n"
-"30sby8wk8hq6GWomYHkHwxlCSo2bkRBozxkuXV1ll6wSxUJaG7FV6vJFaaUUtYOi\n"
-"w7uRbCOLuQKMlnWjCxQvOUz9g/7GYd39ZvHoi8pUnPrdGPzWpzEN1AwfukCs2/e5\n"
-"Oq3KtwKBgQCkHmDU8h0kOfN28f8ZiyjJemQMNoOGiJqnGexaKvsRd+bt4H+7DsWQ\n"
-"OnyKm/oR0wCCSmFM5aQc6GgzPD7orueKVYHChbY7HLTWKRHNs6Rlk+6hXJvOld0i\n"
-"Cl7KqL2x2ibGMtt4LtSntdzWqa87N7vCWMSTmvd8uLgflBs33xUIiQ==\n"
-"-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEpAIBAAKCAQEA1374LDFlxzX94lGhKGUjc7WWa+vlHQZKFIW3ViQ0fhsEfhh3\n"
+ "52GmB7Lqm2zRJf0BSPvCXrYdEphu0zQfm/wJRxaAZvE8Abex/jJ+gECHaPO9lbNu\n"
+ "tlJB4G2TenREHkQoIl5pbDlXvjFaX+/V4t9jGM9RWf7nkura/LCA4RAk4SGZKtnr\n"
+ "pVYwFfOjds0O9jJdZPKz8OEnSuThYXFzXV6+grAKJfDJojkSgxdIgGccLRVXNNJw\n"
+ "RqkAua8KzdwPHMx+U7L8r63FtJsFdlzlb2TOZBTNU/19IxekUB4hhhQWCuLOiWcU\n"
+ "kjoSTBWGIZKDxCrLlWXZgSdsk03Rrph2XxvSwwIDAQABAoIBAB7trDS7ij4DM8MN\n"
+ "sDGaAnKS91nZ63I0+uDjKCMG4znOKuDmJh9hVnD4bs+L2KC5JTwSVh09ygJnOlC5\n"
+ "xGegzrwTMK6VpOUiNjujh6BkooqfoPAhZpxoReguEeKbWUN2yMPWBQ9xU3SKpMvs\n"
+ "IiiDozdmWeiuuxHM/00REA49QO3Gnx2logeB+fcvXXD1UiZV3x0xxSApiJt1sr2r\n"
+ "NmqSyGdNUgpmnTP8zbKnDaRe5Wj4tj1TCTLE/HZ0tzdRuwlkIqvcpGg1LMtKm5N8\n"
+ "xIWjTGMFwGjG+OF8LGqHLH+28pI3iMB6QqO2YLwOp+WZKImKP3+Dp3s8lCw8t8cm\n"
+ "q5/Qc9ECgYEA2xwxm+pFkrFmZNLCakP/6S5AZqpfSBRUlF/uX2pBKO7o6I6aOV9o\n"
+ "zq2QWYIZfdyD+9MvAFUQ36sWfTVWpGA34WGtsGtcRRygKKTigpJHvBldaPxiuYuk\n"
+ "xbS54nWUdix/JzyQAy22xJXlp4XJvtFJjHhA2td0XA7tfng9n8jmvEUCgYEA+8cA\n"
+ "uFIQFbaZ2y6pnOvlVj8OH0f1hZa9M+3q01fWy1rnDAsLrIzJy8TZnBtpDwy9lAun\n"
+ "Sa6wzu6qeHmF17xwk5U7BCyK2Qj/9KhRLg1mnDebQ/CiLSAaJVnrYFp9Du96fTkN\n"
+ "ollvbFiGF92QwPTDf2f1gHZQEPwa+f/ox37ad2cCgYEAwMgXpfUD7cOEMeV2BQV7\n"
+ "XnDBXRM97i9lE38sPmtAlYFPD36Yly4pCt+PCBH9181zmtf+nK47wG/Jw7RwXQQD\n"
+ "ZpwItBZiArTi/Z/FY9jMoOU4WKznOBVzjjgq7ONDEo6n+Z/BnepUyraQb0q5bNi7\n"
+ "e4o6ldHHoU/JCeNFZRbgXHkCgYA6vJU9at+XwS6phHxLQHkTIsivoYD0tlLTX4it\n"
+ "30sby8wk8hq6GWomYHkHwxlCSo2bkRBozxkuXV1ll6wSxUJaG7FV6vJFaaUUtYOi\n"
+ "w7uRbCOLuQKMlnWjCxQvOUz9g/7GYd39ZvHoi8pUnPrdGPzWpzEN1AwfukCs2/e5\n"
+ "Oq3KtwKBgQCkHmDU8h0kOfN28f8ZiyjJemQMNoOGiJqnGexaKvsRd+bt4H+7DsWQ\n"
+ "OnyKm/oR0wCCSmFM5aQc6GgzPD7orueKVYHChbY7HLTWKRHNs6Rlk+6hXJvOld0i\n"
+ "Cl7KqL2x2ibGMtt4LtSntdzWqa87N7vCWMSTmvd8uLgflBs33xUIiQ==\n"
+ "-----END RSA PRIVATE KEY-----\n";
static unsigned char cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
@@ -155,7 +153,7 @@ static unsigned char cert_pem[] =
"jpfc/3X7sLUsMvumcDE01ls/cG5mIatmiyEU9qI3jbgUf82z23ON/acwJf875D3/\n"
"U7jyOsBJ44SEQITbin2yUeJMIm1tievvdNXBDfW95AM507ShzP12sfiJkJfjjdhy\n"
"dc8Siq5JojruiMizAf0pA7in\n" "-----END CERTIFICATE-----\n";
-const gnutls_datum_t cli_cert = { cert_pem, sizeof(cert_pem) - 1};
+const gnutls_datum_t cli_cert = { cert_pem, sizeof(cert_pem) - 1 };
static unsigned char key_pem[] =
"-----BEGIN RSA PRIVATE KEY-----\n"
@@ -173,7 +171,7 @@ static unsigned char key_pem[] =
"/iVX2cmMTSh3w3z8MaECQEp0XJWDVKOwcTW6Ajp9SowtmiZ3YDYo1LF9igb4iaLv\n"
"sWZGfbnU3ryjvkb6YuFjgtzbZDZHWQCo8/cOtOBmPdk=\n"
"-----END RSA PRIVATE KEY-----\n";
-const gnutls_datum_t cli_key = { key_pem, sizeof(key_pem) - 1};
+const gnutls_datum_t cli_key = { key_pem, sizeof(key_pem) - 1 };
const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
@@ -221,20 +219,19 @@ static const char *get_signature_algo(gnutls_x509_crt_t crt)
}
static int cert_out_callback(gnutls_x509_crt_t cert,
- gnutls_x509_crt_t issuer,
- gnutls_x509_crl_t crl,
- unsigned int verification_output)
+ gnutls_x509_crt_t issuer,
+ gnutls_x509_crl_t crl,
+ unsigned int verification_output)
{
char tmp[255];
size_t tmp_size;
- gnutls_datum_t name = {NULL,0}, issuer_name = {NULL,0};
- gnutls_datum_t serial = {NULL,0};
+ gnutls_datum_t name = { NULL, 0 }, issuer_name = { NULL, 0 };
+ gnutls_datum_t serial = { NULL, 0 };
int ret;
success("Printing full certificate path validation to trust root.\n");
- ret =
- gnutls_x509_crt_get_issuer_dn3(cert, &issuer_name, 0);
+ ret = gnutls_x509_crt_get_issuer_dn3(cert, &issuer_name, 0);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_get_issuer_dn: %s\n",
gnutls_strerror(ret));
@@ -258,8 +255,7 @@ static int cert_out_callback(gnutls_x509_crt_t cert,
if (issuer != NULL) {
gnutls_free(issuer_name.data);
- ret =
- gnutls_x509_crt_get_dn3(issuer, &issuer_name, 0);
+ ret = gnutls_x509_crt_get_dn3(issuer, &issuer_name, 0);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_get_issuer_dn: %s\n",
@@ -276,8 +272,7 @@ static int cert_out_callback(gnutls_x509_crt_t cert,
gnutls_datum_t data;
gnutls_free(issuer_name.data);
- ret =
- gnutls_x509_crl_get_issuer_dn3(crl, &issuer_name, 0);
+ ret = gnutls_x509_crl_get_issuer_dn3(crl, &issuer_name, 0);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crl_get_issuer_dn: %s\n",
@@ -286,12 +281,11 @@ static int cert_out_callback(gnutls_x509_crt_t cert,
}
tmp_size = sizeof(tmp);
- ret =
- gnutls_x509_crl_get_number(crl, tmp, &tmp_size, NULL);
+ ret = gnutls_x509_crl_get_number(crl, tmp, &tmp_size, NULL);
if (ret < 0) {
- serial.data = (void*)gnutls_strdup("unnumbered");
+ serial.data = (void *)gnutls_strdup("unnumbered");
} else {
- data.data = (void *) tmp;
+ data.data = (void *)tmp;
data.size = tmp_size;
ret = gnutls_hex_encode2(&data, &serial);
@@ -341,8 +335,10 @@ void test_failure(const char *name, const char *prio)
to_server_len = 0;
to_client_len = 0;
- ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &server_cert, GNUTLS_X509_FMT_PEM,
- GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
+ ret =
+ gnutls_x509_crt_list_import2(&crts, &crts_size, &server_cert,
+ GNUTLS_X509_FMT_PEM,
+ GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
if (ret < 0) {
fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -355,8 +351,7 @@ void test_failure(const char *name, const char *prio)
}
ret =
- gnutls_x509_privkey_import(pkey, &server_key,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_privkey_import(pkey, &server_key, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -366,16 +361,13 @@ void test_failure(const char *name, const char *prio)
gnutls_certificate_allocate_credentials(&serverx509cred);
gnutls_certificate_set_x509_key(serverx509cred, crts, crts_size, pkey);
gnutls_x509_privkey_deinit(pkey);
- for (i=0;i<crts_size;i++)
+ for (i = 0; i < crts_size; i++)
gnutls_x509_crt_deinit(crts[i]);
gnutls_free(crts);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server,
- prio,
- NULL) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -387,7 +379,9 @@ void test_failure(const char *name, const char *prio)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -400,7 +394,7 @@ void test_failure(const char *name, const char *prio)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -414,14 +408,16 @@ void test_failure(const char *name, const char *prio)
/* check with wrong hostname */
vdata[0].type = GNUTLS_DT_DNS_HOSTNAME;
- vdata[0].data = (void*)"localhost1";
+ vdata[0].data = (void *)"localhost1";
vdata[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- vdata[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ vdata[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
gnutls_session_set_verify_cert2(client, vdata, 2, 0);
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR, GNUTLS_E_AGAIN);
+ HANDSHAKE_EXPECT(client, server,
+ GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR,
+ GNUTLS_E_AGAIN);
status = gnutls_session_get_verify_cert_status(client);
@@ -461,8 +457,10 @@ void test_success1(const char *name, const char *prio)
to_server_len = 0;
to_client_len = 0;
- ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &server_cert, GNUTLS_X509_FMT_PEM,
- GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
+ ret =
+ gnutls_x509_crt_list_import2(&crts, &crts_size, &server_cert,
+ GNUTLS_X509_FMT_PEM,
+ GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
if (ret < 0) {
fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -475,8 +473,7 @@ void test_success1(const char *name, const char *prio)
}
ret =
- gnutls_x509_privkey_import(pkey, &server_key,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_privkey_import(pkey, &server_key, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -486,16 +483,13 @@ void test_success1(const char *name, const char *prio)
gnutls_certificate_allocate_credentials(&serverx509cred);
gnutls_certificate_set_x509_key(serverx509cred, crts, crts_size, pkey);
gnutls_x509_privkey_deinit(pkey);
- for (i=0;i<crts_size;i++)
+ for (i = 0; i < crts_size; i++)
gnutls_x509_crt_deinit(crts[i]);
gnutls_free(crts);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server,
- prio,
- NULL) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -507,20 +501,22 @@ void test_success1(const char *name, const char *prio)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
ret = gnutls_certificate_set_x509_key_mem(clientx509cred,
- &cli_cert, &cli_key,
- GNUTLS_X509_FMT_PEM);
+ &cli_cert, &cli_key,
+ GNUTLS_X509_FMT_PEM);
ret = gnutls_init(&client, GNUTLS_CLIENT);
if (ret < 0)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -533,10 +529,10 @@ void test_success1(const char *name, const char *prio)
/* check with wrong hostname */
vdata[0].type = GNUTLS_DT_DNS_HOSTNAME;
- vdata[0].data = (void*)"localhost";
+ vdata[0].data = (void *)"localhost";
vdata[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- vdata[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ vdata[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
gnutls_session_set_verify_cert2(client, vdata, 2, 0);
@@ -579,8 +575,10 @@ void test_success2(const char *name, const char *prio)
to_server_len = 0;
to_client_len = 0;
- ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &server_cert, GNUTLS_X509_FMT_PEM,
- GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
+ ret =
+ gnutls_x509_crt_list_import2(&crts, &crts_size, &server_cert,
+ GNUTLS_X509_FMT_PEM,
+ GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
if (ret < 0) {
fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -593,8 +591,7 @@ void test_success2(const char *name, const char *prio)
}
ret =
- gnutls_x509_privkey_import(pkey, &server_key,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_privkey_import(pkey, &server_key, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -604,16 +601,13 @@ void test_success2(const char *name, const char *prio)
gnutls_certificate_allocate_credentials(&serverx509cred);
gnutls_certificate_set_x509_key(serverx509cred, crts, crts_size, pkey);
gnutls_x509_privkey_deinit(pkey);
- for (i=0;i<crts_size;i++)
+ for (i = 0; i < crts_size; i++)
gnutls_x509_crt_deinit(crts[i]);
gnutls_free(crts);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server,
- prio,
- NULL)>=0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -625,7 +619,9 @@ void test_success2(const char *name, const char *prio)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -638,11 +634,11 @@ void test_success2(const char *name, const char *prio)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- assert(gnutls_priority_set_direct(client, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(client, prio, NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
diff --git a/tests/base64-raw.c b/tests/base64-raw.c
index a79ab28449..ab525b81b1 100644
--- a/tests/base64-raw.c
+++ b/tests/base64-raw.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,23 +35,25 @@
/* This checks base64 raw encoding without PEM headers */
-static void encode(const char *test_name, const gnutls_datum_t *raw, const char *expected)
+static void encode(const char *test_name, const gnutls_datum_t * raw,
+ const char *expected)
{
int ret;
gnutls_datum_t out;
ret = gnutls_pem_base64_encode2(NULL, raw, &out);
if (ret < 0) {
- fail("%s: gnutls_pem_base64_encode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_pem_base64_encode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (strlen(expected)!=out.size) {
+ if (strlen(expected) != out.size) {
fail("%s: gnutls_pem_base64_encode2: output has incorrect size (%d, expected %d)\n", test_name, (int)out.size, (int)strlen(expected));
exit(1);
}
- if (strncasecmp(expected, (char*)out.data, out.size) != 0) {
+ if (strncasecmp(expected, (char *)out.data, out.size) != 0) {
fail("%s: gnutls_pem_base64_encode2: output does not match the expected\n", test_name);
exit(1);
}
@@ -60,16 +62,17 @@ static void encode(const char *test_name, const gnutls_datum_t *raw, const char
ret = gnutls_base64_encode2(raw, &out);
if (ret < 0) {
- fail("%s: gnutls_base64_encode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_base64_encode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (strlen(expected)!=out.size) {
+ if (strlen(expected) != out.size) {
fail("%s: gnutls_base64_encode2: output has incorrect size (%d, expected %d)\n", test_name, (int)out.size, (int)strlen(expected));
exit(1);
}
- if (strncasecmp(expected, (char*)out.data, out.size) != 0) {
+ if (strncasecmp(expected, (char *)out.data, out.size) != 0) {
fail("%s: gnutls_base64_encode2: output does not match the expected\n", test_name);
exit(1);
}
@@ -79,23 +82,25 @@ static void encode(const char *test_name, const gnutls_datum_t *raw, const char
return;
}
-static void encode_new(const char *test_name, const gnutls_datum_t *raw, const char *expected)
+static void encode_new(const char *test_name, const gnutls_datum_t * raw,
+ const char *expected)
{
int ret;
gnutls_datum_t out, in;
ret = gnutls_base64_encode2(raw, &out);
if (ret < 0) {
- fail("%s: gnutls_base64_encode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_base64_encode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (strlen(expected)!=out.size) {
+ if (strlen(expected) != out.size) {
fail("%s: gnutls_base64_encode2: output has incorrect size (%d, expected %d)\n", test_name, (int)out.size, (int)strlen(expected));
exit(1);
}
- if (strncasecmp(expected, (char*)out.data, out.size) != 0) {
+ if (strncasecmp(expected, (char *)out.data, out.size) != 0) {
fail("%s: gnutls_base64_encode2: output does not match the expected\n", test_name);
exit(1);
}
@@ -104,31 +109,33 @@ static void encode_new(const char *test_name, const gnutls_datum_t *raw, const c
ret = gnutls_base64_encode2(raw, &out);
if (ret < 0) {
- fail("%s: gnutls_base64_encode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_base64_encode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (strlen(expected)!=out.size) {
+ if (strlen(expected) != out.size) {
fail("%s: gnutls_base64_encode2: output has incorrect size (%d, expected %d)\n", test_name, (int)out.size, (int)strlen(expected));
exit(1);
}
- if (strncasecmp(expected, (char*)out.data, out.size) != 0) {
+ if (strncasecmp(expected, (char *)out.data, out.size) != 0) {
fail("%s: gnutls_base64_encode2: output does not match the expected\n", test_name);
exit(1);
}
gnutls_free(out.data);
- in.data = (void*)expected;
+ in.data = (void *)expected;
in.size = strlen(expected);
ret = gnutls_base64_decode2(&in, &out);
if (ret < 0) {
- fail("%s: gnutls_base64_decode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_base64_decode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (raw->size!=out.size) {
+ if (raw->size != out.size) {
fail("%s: gnutls_base64_decode2: output has incorrect size (%d, expected %d)\n", test_name, out.size, raw->size);
exit(1);
}
@@ -143,18 +150,20 @@ static void encode_new(const char *test_name, const gnutls_datum_t *raw, const c
return;
}
-static void decode_new(const char *test_name, const gnutls_datum_t *raw, const char *hex, int res)
+static void decode_new(const char *test_name, const gnutls_datum_t * raw,
+ const char *hex, int res)
{
int ret;
gnutls_datum_t out, in;
- in.data = (void*)hex;
+ in.data = (void *)hex;
in.size = strlen(hex);
ret = gnutls_base64_decode2(&in, &out);
if (ret < 0) {
- if (res == ret) /* expected */
+ if (res == ret) /* expected */
return;
- fail("%s: gnutls_base64_decode2: %d/%s\n", test_name, ret, gnutls_strerror(ret));
+ fail("%s: gnutls_base64_decode2: %d/%s\n", test_name, ret,
+ gnutls_strerror(ret));
exit(1);
}
@@ -163,7 +172,7 @@ static void decode_new(const char *test_name, const gnutls_datum_t *raw, const c
exit(1);
}
- if (raw->size!=out.size) {
+ if (raw->size != out.size) {
fail("%s: gnutls_base64_decode2: output has incorrect size (%d, expected %d)\n", test_name, out.size, raw->size);
exit(1);
}
@@ -186,15 +195,19 @@ struct encode_tests_st {
struct encode_tests_st encode_tests[] = {
{
- .name = "rnd1",
- .pem = "9ppGioRpeiiD2lLNYC85eA==",
- .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78", 16}
- },
+ .name = "rnd1",
+ .pem = "9ppGioRpeiiD2lLNYC85eA==",
+ .raw = {(void *)
+ "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78",
+ 16}
+ },
{
- .name = "rnd2",
- .pem = "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19}
- }
+ .name = "rnd2",
+ .pem = "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19}
+ }
};
struct decode_tests_st {
@@ -206,60 +219,65 @@ struct decode_tests_st {
struct decode_tests_st decode_tests[] = {
{
- .name = "empty",
- .pem = "",
- .raw = {(void*)"", 0},
- .res = 0
- },
+ .name = "empty",
+ .pem = "",
+ .raw = {(void *)"", 0},
+ .res = 0},
{
- .name = "dec-rnd1",
- .pem = "9ppGioRpeiiD2lLNYC85eA==",
- .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78", 16},
- .res = 0
- },
+ .name = "dec-rnd1",
+ .pem = "9ppGioRpeiiD2lLNYC85eA==",
+ .raw = {(void *)
+ "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78",
+ 16},
+ .res = 0},
{
- .name = "dec-rnd2",
- .pem = "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = 0
- },
+ .name = "dec-rnd2",
+ .pem = "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = 0},
{
- .name = "dec-extra-chars",
- .pem = "\n\n LJ/7hUZ3TtPIz2dlc5+YvELe+Q== \n",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = 0
- },
+ .name = "dec-extra-chars",
+ .pem = "\n\n LJ/7hUZ3TtPIz2dlc5+YvELe+Q== \n",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = 0},
{
- .name = "dec-spaces",
- .pem = " ",
- .raw = {(void*)"", 0},
- .res = GNUTLS_E_BASE64_DECODING_ERROR
- },
+ .name = "dec-spaces",
+ .pem = " ",
+ .raw = {(void *)"", 0},
+ .res = GNUTLS_E_BASE64_DECODING_ERROR},
{
- .name = "dec-invalid-data",
- .pem = "XLJ/7hUZ3TtPIz2dlc5+YvELe+Q==",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = GNUTLS_E_BASE64_DECODING_ERROR
- },
+ .name = "dec-invalid-data",
+ .pem = "XLJ/7hUZ3TtPIz2dlc5+YvELe+Q==",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = GNUTLS_E_BASE64_DECODING_ERROR},
{
- .name = "dec-invalid-suffix",
- .pem = "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==XXX",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = GNUTLS_E_BASE64_DECODING_ERROR
- }
+ .name = "dec-invalid-suffix",
+ .pem = "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==XXX",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = GNUTLS_E_BASE64_DECODING_ERROR}
};
void doit(void)
{
unsigned i;
- for (i=0;i<sizeof(encode_tests)/sizeof(encode_tests[0]);i++) {
- encode(encode_tests[i].name, &encode_tests[i].raw, encode_tests[i].pem);
- encode_new(encode_tests[i].name, &encode_tests[i].raw, encode_tests[i].pem);
+ for (i = 0; i < sizeof(encode_tests) / sizeof(encode_tests[0]); i++) {
+ encode(encode_tests[i].name, &encode_tests[i].raw,
+ encode_tests[i].pem);
+ encode_new(encode_tests[i].name, &encode_tests[i].raw,
+ encode_tests[i].pem);
}
- for (i=0;i<sizeof(decode_tests)/sizeof(decode_tests[0]);i++) {
- decode_new(decode_tests[i].name, &decode_tests[i].raw, decode_tests[i].pem, decode_tests[i].res);
+ for (i = 0; i < sizeof(decode_tests) / sizeof(decode_tests[0]); i++) {
+ decode_new(decode_tests[i].name, &decode_tests[i].raw,
+ decode_tests[i].pem, decode_tests[i].res);
}
}
-
diff --git a/tests/base64.c b/tests/base64.c
index d201d3b286..1d6ccbd732 100644
--- a/tests/base64.c
+++ b/tests/base64.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,38 +33,41 @@
#include "utils.h"
-static void encode(const char *test_name, const gnutls_datum_t *raw, const char *expected)
+static void encode(const char *test_name, const gnutls_datum_t * raw,
+ const char *expected)
{
int ret;
gnutls_datum_t out, in;
ret = gnutls_pem_base64_encode2(test_name, raw, &out);
if (ret < 0) {
- fail("%s: gnutls_pem_base64_encode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_pem_base64_encode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (strlen(expected)!=out.size) {
+ if (strlen(expected) != out.size) {
fail("%s: gnutls_pem_base64_encode2: output has incorrect size (%d, expected %d)\n", test_name, (int)out.size, (int)strlen(expected));
exit(1);
}
- if (strncasecmp(expected, (char*)out.data, out.size) != 0) {
+ if (strncasecmp(expected, (char *)out.data, out.size) != 0) {
fail("%s: gnutls_pem_base64_encode2: output does not match the expected\n", test_name);
exit(1);
}
gnutls_free(out.data);
- in.data = (void*)expected;
+ in.data = (void *)expected;
in.size = strlen(expected);
ret = gnutls_pem_base64_decode2(test_name, &in, &out);
if (ret < 0) {
- fail("%s: gnutls_pem_base64_decode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_pem_base64_decode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (raw->size!=out.size) {
+ if (raw->size != out.size) {
fail("%s: gnutls_pem_base64_decode2: output has incorrect size (%d, expected %d)\n", test_name, out.size, raw->size);
exit(1);
}
@@ -79,12 +82,13 @@ static void encode(const char *test_name, const gnutls_datum_t *raw, const char
return;
}
-static void decode(const char *test_name, const gnutls_datum_t *raw, const char *hex, unsigned hex_size, int res)
+static void decode(const char *test_name, const gnutls_datum_t * raw,
+ const char *hex, unsigned hex_size, int res)
{
int ret;
gnutls_datum_t out, in;
- in.data = (void*)hex;
+ in.data = (void *)hex;
if (hex_size == 0)
in.size = strlen(hex);
else
@@ -92,9 +96,10 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
ret = gnutls_pem_base64_decode2(test_name, &in, &out);
if (ret < 0) {
- if (res == ret) /* expected */
+ if (res == ret) /* expected */
return;
- fail("%s: gnutls_pem_base64_decode2: %d/%s\n", test_name, ret, gnutls_strerror(ret));
+ fail("%s: gnutls_pem_base64_decode2: %d/%s\n", test_name, ret,
+ gnutls_strerror(ret));
exit(1);
}
@@ -103,7 +108,7 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
exit(1);
}
- if (raw->size!=out.size) {
+ if (raw->size != out.size) {
fail("%s: gnutls_pem_base64_decode2: output has incorrect size (%d, expected %d)\n", test_name, out.size, raw->size);
exit(1);
}
@@ -116,13 +121,14 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
gnutls_free(out.data);
/* decode with null argument */
- in.data = (void*)hex;
+ in.data = (void *)hex;
in.size = strlen(hex);
ret = gnutls_pem_base64_decode2(NULL, &in, &out);
if (ret < 0) {
- if (res == ret) /* expected */
+ if (res == ret) /* expected */
return;
- fail("%s: gnutls_pem_base64_decode2: %d/%s\n", test_name, ret, gnutls_strerror(ret));
+ fail("%s: gnutls_pem_base64_decode2: %d/%s\n", test_name, ret,
+ gnutls_strerror(ret));
exit(1);
}
@@ -131,7 +137,7 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
exit(1);
}
- if (raw->size!=out.size) {
+ if (raw->size != out.size) {
fail("%s: gnutls_pem_base64_decode2: output has incorrect size (%d, expected %d)\n", test_name, out.size, raw->size);
exit(1);
}
@@ -154,19 +160,21 @@ struct encode_tests_st {
struct encode_tests_st encode_tests[] = {
{
- .name = "rnd1",
- .pem = "-----BEGIN rnd1-----\n"
- "9ppGioRpeiiD2lLNYC85eA==\n"
- "-----END rnd1-----\n",
- .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78", 16}
- },
+ .name = "rnd1",
+ .pem = "-----BEGIN rnd1-----\n"
+ "9ppGioRpeiiD2lLNYC85eA==\n" "-----END rnd1-----\n",
+ .raw = {(void *)
+ "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78",
+ 16}
+ },
{
- .name = "rnd2",
- .pem = "-----BEGIN rnd2-----\n"
- "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==\n"
- "-----END rnd2-----\n",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19}
- }
+ .name = "rnd2",
+ .pem = "-----BEGIN rnd2-----\n"
+ "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==\n" "-----END rnd2-----\n",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19}
+ }
};
struct decode_tests_st {
@@ -179,72 +187,73 @@ struct decode_tests_st {
struct decode_tests_st decode_tests[] = {
{
- .name = "dec-rnd1",
- .pem = "-----BEGIN dec-rnd1-----\n"
- "9ppGioRpeiiD2lLNYC85eA==\n"
- "-----END rnd1-----\n",
- .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78", 16},
- .res = 0
- },
+ .name = "dec-rnd1",
+ .pem = "-----BEGIN dec-rnd1-----\n"
+ "9ppGioRpeiiD2lLNYC85eA==\n" "-----END rnd1-----\n",
+ .raw = {(void *)
+ "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78",
+ 16},
+ .res = 0},
{
- .name = "dec-rnd2",
- .pem = "-----BEGIN dec-rnd2-----\n"
- "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==\n"
- "-----END rnd2-----\n",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = 0
- },
+ .name = "dec-rnd2",
+ .pem = "-----BEGIN dec-rnd2-----\n"
+ "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==\n" "-----END rnd2-----\n",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = 0},
{
- .name = "dec-extra-chars",
- .pem = "-----BEGIN dec-extra-chars----- \n\n"
- "\n\n LJ/7hUZ3TtPIz2dlc5+YvELe+Q== \n"
- " -----END rnd2----- \n ",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = 0
- },
+ .name = "dec-extra-chars",
+ .pem = "-----BEGIN dec-extra-chars----- \n\n"
+ "\n\n LJ/7hUZ3TtPIz2dlc5+YvELe+Q== \n" " -----END rnd2----- \n ",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = 0},
{
- .name = "dec-invalid-header",
- .pem = "-----BEGIN dec-xxx-----\n"
- "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==\n"
- "-----END rnd2-----\n",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR
- },
+ .name = "dec-invalid-header",
+ .pem = "-----BEGIN dec-xxx-----\n"
+ "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==\n" "-----END rnd2-----\n",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR},
{
- .name = "dec-invalid-data",
- .pem = "-----BEGIN dec-invalid-data-----\n"
- "XLJ/7hUZ3TtPIz2dlc5+YvELe+Q==\n"
- "-----END rnd2-----\n",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = GNUTLS_E_BASE64_DECODING_ERROR
- },
+ .name = "dec-invalid-data",
+ .pem = "-----BEGIN dec-invalid-data-----\n"
+ "XLJ/7hUZ3TtPIz2dlc5+YvELe+Q==\n" "-----END rnd2-----\n",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = GNUTLS_E_BASE64_DECODING_ERROR},
{
- .name = "leak1",
- .pem = "-----BEGIN leak1-----E-\x00\x00-----END ",
- .pem_size = 34,
- .raw = {(void*)"", 0},
- .res = GNUTLS_E_BASE64_DECODING_ERROR
- },
+ .name = "leak1",
+ .pem = "-----BEGIN leak1-----E-\x00\x00-----END ",
+ .pem_size = 34,
+ .raw = {(void *)"", 0},
+ .res = GNUTLS_E_BASE64_DECODING_ERROR},
{
- .name = "dec-invalid-suffix",
- .pem = "-----BEGIN dec-invalid-suffix-----\n"
- "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==XXX\n"
- "-----END rnd2-----\n",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = GNUTLS_E_BASE64_DECODING_ERROR
- }
+ .name = "dec-invalid-suffix",
+ .pem = "-----BEGIN dec-invalid-suffix-----\n"
+ "LJ/7hUZ3TtPIz2dlc5+YvELe+Q==XXX\n" "-----END rnd2-----\n",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = GNUTLS_E_BASE64_DECODING_ERROR}
};
void doit(void)
{
unsigned i;
- for (i=0;i<sizeof(encode_tests)/sizeof(encode_tests[0]);i++) {
- encode(encode_tests[i].name, &encode_tests[i].raw, encode_tests[i].pem);
+ for (i = 0; i < sizeof(encode_tests) / sizeof(encode_tests[0]); i++) {
+ encode(encode_tests[i].name, &encode_tests[i].raw,
+ encode_tests[i].pem);
}
- for (i=0;i<sizeof(decode_tests)/sizeof(decode_tests[0]);i++) {
- decode(decode_tests[i].name, &decode_tests[i].raw, decode_tests[i].pem, decode_tests[i].pem_size, decode_tests[i].res);
+ for (i = 0; i < sizeof(decode_tests) / sizeof(decode_tests[0]); i++) {
+ decode(decode_tests[i].name, &decode_tests[i].raw,
+ decode_tests[i].pem, decode_tests[i].pem_size,
+ decode_tests[i].res);
}
}
-
diff --git a/tests/buffer.c b/tests/buffer.c
index 9ee2db559b..e41e65e037 100644
--- a/tests/buffer.c
+++ b/tests/buffer.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,17 +31,15 @@
void doit(void)
{
static const struct test_data {
- const char *
- input;
- const char *
- output;
+ const char *input;
+ const char *output;
} test_data[] = {
- { "%20%20", " ", },
- { "%20", " ", },
- { "%2z", "%2z", },
- { "%2", "%2", },
- { "%", "%", },
- { "", "", },
+ {"%20%20", " ",},
+ {"%20", " ",},
+ {"%2z", "%2z",},
+ {"%2", "%2",},
+ {"%", "%",},
+ {"", "",},
};
for (unsigned it = 0; it < countof(test_data); it++) {
@@ -51,27 +49,32 @@ void doit(void)
_gnutls_buffer_init(&str);
- ret = _gnutls_buffer_append_data(&str, t->input, strlen(t->input));
+ ret =
+ _gnutls_buffer_append_data(&str, t->input,
+ strlen(t->input));
if (ret < 0)
- fail("_gnutls_buffer_append_str: %s\n", gnutls_strerror(ret));
+ fail("_gnutls_buffer_append_str: %s\n",
+ gnutls_strerror(ret));
ret = _gnutls_buffer_unescape(&str);
if (ret < 0)
- fail("_gnutls_buffer_unescape: %s\n", gnutls_strerror(ret));
+ fail("_gnutls_buffer_unescape: %s\n",
+ gnutls_strerror(ret));
ret = _gnutls_buffer_append_data(&str, "", 1);
if (ret < 0)
- fail("_gnutls_buffer_append_data: %s\n", gnutls_strerror(ret));
+ fail("_gnutls_buffer_append_data: %s\n",
+ gnutls_strerror(ret));
/* using malloc() instead of stack memory for better buffer overflow detection */
gnutls_datum output;
_gnutls_buffer_pop_datum(&str, &output, strlen(t->output) + 1);
- if (strcmp(t->output, (char *) output.data))
- fail("output differs [%d]: expected '%s', seen '%s'\n", it, t->output, (char *) output.data);
+ if (strcmp(t->output, (char *)output.data))
+ fail("output differs [%d]: expected '%s', seen '%s'\n",
+ it, t->output, (char *)output.data);
_gnutls_buffer_clear(&str);
}
}
-
diff --git a/tests/cert-common.h b/tests/cert-common.h
index fdb9029e47..619216e433 100644
--- a/tests/cert-common.h
+++ b/tests/cert-common.h
@@ -20,9 +20,9 @@
*/
#ifndef GNUTLS_TESTS_CERT_COMMON_H
-#define GNUTLS_TESTS_CERT_COMMON_H
+# define GNUTLS_TESTS_CERT_COMMON_H
-#include <gnutls/gnutls.h>
+# include <gnutls/gnutls.h>
/* This file contains a lot of common parameters used by legacy and new
* tests. The recommended to use for new tests are:
@@ -51,40 +51,36 @@
* IPv4 server: RSA-sign-only key: server_ca3_localhost_rsa_sign_cert, server_ca3_key
*/
-
static char ecc_key[] =
- "-----BEGIN EC PRIVATE KEY-----\n"
- "MHgCAQEEIQD9KwCA8zZfETJl440wMztH9c74E+VMws/96AVqyslBsaAKBggqhkjO\n"
- "PQMBB6FEA0IABDwVbx1IPmRZEyxtBBo4DTBc5D9Vy9kXFUZycZLB+MYzPQQuyMEP\n"
- "wFAEe5/JSLVA+m+TgllhXnJXy4MGvcyClME=\n"
- "-----END EC PRIVATE KEY-----\n";
+ "-----BEGIN EC PRIVATE KEY-----\n"
+ "MHgCAQEEIQD9KwCA8zZfETJl440wMztH9c74E+VMws/96AVqyslBsaAKBggqhkjO\n"
+ "PQMBB6FEA0IABDwVbx1IPmRZEyxtBBo4DTBc5D9Vy9kXFUZycZLB+MYzPQQuyMEP\n"
+ "wFAEe5/JSLVA+m+TgllhXnJXy4MGvcyClME=\n" "-----END EC PRIVATE KEY-----\n";
static char ecc_cert[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIC4DCCAoagAwIBAgIBBzAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G\n"
- "A1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2VydGlmaWNhdGUgYXV0aG9y\n"
- "aXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdudVRMUyBjZXJ0aWZpY2F0\n"
- "ZSBhdXRob3JpdHkwIhgPMjAxMjA5MDEwOTIyMzZaGA8yMDE5MTAwNTA5MjIzNlow\n"
- "gbgxCzAJBgNVBAYTAkdSMRIwEAYDVQQKEwlLb2tvIGluYy4xFzAVBgNVBAsTDnNs\n"
- "ZWVwaW5nIGRlcHQuMQ8wDQYDVQQIEwZBdHRpa2kxFTATBgNVBAMTDENpbmR5IExh\n"
- "dXBlcjEXMBUGCgmSJomT8ixkAQETB2NsYXVwZXIxDDAKBgNVBAwTA0RyLjEPMA0G\n"
- "A1UEQRMGamFja2FsMRwwGgYJKoZIhvcNAQkBFg1ub25lQG5vbmUub3JnMFkwEwYH\n"
- "KoZIzj0CAQYIKoZIzj0DAQcDQgAEPBVvHUg+ZFkTLG0EGjgNMFzkP1XL2RcVRnJx\n"
- "ksH4xjM9BC7IwQ/AUAR7n8lItUD6b5OCWWFeclfLgwa9zIKUwaOBtjCBszAMBgNV\n"
- "HRMBAf8EAjAAMD0GA1UdEQQ2MDSCDHd3dy5ub25lLm9yZ4ITd3d3Lm1vcmV0aGFu\n"
- "b25lLm9yZ4IJbG9jYWxob3N0hwTAqAEBMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8G\n"
- "A1UdDwEB/wQFAwMHgAAwHQYDVR0OBBYEFKz6R2fGG0F5Elf3rAXBUOKO0A5bMB8G\n"
- "A1UdIwQYMBaAFPC0gf6YEr+1KLlkQAPLzB9mTigDMAoGCCqGSM49BAMCA0gAMEUC\n"
- "ICgq4CTInkRQ1DaFoI8wmu2KP8445NWRXKouag2WJSFzAiEAx4KxaoZJNVfBBSc4\n"
- "bA9XTz/2OnpgAZutUohNNb/tmRE=\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4DCCAoagAwIBAgIBBzAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G\n"
+ "A1UEChMGR251VExTMSUwIwYDVQQLExxHbnVUTFMgY2VydGlmaWNhdGUgYXV0aG9y\n"
+ "aXR5MQ8wDQYDVQQIEwZMZXV2ZW4xJTAjBgNVBAMTHEdudVRMUyBjZXJ0aWZpY2F0\n"
+ "ZSBhdXRob3JpdHkwIhgPMjAxMjA5MDEwOTIyMzZaGA8yMDE5MTAwNTA5MjIzNlow\n"
+ "gbgxCzAJBgNVBAYTAkdSMRIwEAYDVQQKEwlLb2tvIGluYy4xFzAVBgNVBAsTDnNs\n"
+ "ZWVwaW5nIGRlcHQuMQ8wDQYDVQQIEwZBdHRpa2kxFTATBgNVBAMTDENpbmR5IExh\n"
+ "dXBlcjEXMBUGCgmSJomT8ixkAQETB2NsYXVwZXIxDDAKBgNVBAwTA0RyLjEPMA0G\n"
+ "A1UEQRMGamFja2FsMRwwGgYJKoZIhvcNAQkBFg1ub25lQG5vbmUub3JnMFkwEwYH\n"
+ "KoZIzj0CAQYIKoZIzj0DAQcDQgAEPBVvHUg+ZFkTLG0EGjgNMFzkP1XL2RcVRnJx\n"
+ "ksH4xjM9BC7IwQ/AUAR7n8lItUD6b5OCWWFeclfLgwa9zIKUwaOBtjCBszAMBgNV\n"
+ "HRMBAf8EAjAAMD0GA1UdEQQ2MDSCDHd3dy5ub25lLm9yZ4ITd3d3Lm1vcmV0aGFu\n"
+ "b25lLm9yZ4IJbG9jYWxob3N0hwTAqAEBMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8G\n"
+ "A1UdDwEB/wQFAwMHgAAwHQYDVR0OBBYEFKz6R2fGG0F5Elf3rAXBUOKO0A5bMB8G\n"
+ "A1UdIwQYMBaAFPC0gf6YEr+1KLlkQAPLzB9mTigDMAoGCCqGSM49BAMCA0gAMEUC\n"
+ "ICgq4CTInkRQ1DaFoI8wmu2KP8445NWRXKouag2WJSFzAiEAx4KxaoZJNVfBBSc4\n"
+ "bA9XTz/2OnpgAZutUohNNb/tmRE=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_ecc_cert =
- {(unsigned char*) ecc_cert, sizeof(ecc_cert)-1};
-
+ { (unsigned char *)ecc_cert, sizeof(ecc_cert) - 1 };
const gnutls_datum_t server_ecc_key =
- {(unsigned char*) ecc_key, sizeof(ecc_key)-1};
+ { (unsigned char *)ecc_key, sizeof(ecc_key) - 1 };
/* A cert-key pair */
static char pem1_cert[] =
@@ -120,244 +116,238 @@ static char pem1_key[] =
"-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t cert_dat =
- {(unsigned char*) pem1_cert, sizeof(pem1_cert)-1};
-
+ { (unsigned char *)pem1_cert, sizeof(pem1_cert) - 1 };
const gnutls_datum_t key_dat =
- {(unsigned char*) pem1_key, sizeof(pem1_key)-1};
-
+ { (unsigned char *)pem1_key, sizeof(pem1_key) - 1 };
/* A server cert/key pair with CA */
static unsigned char server_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDIzCCAgugAwIBAgIMUz8PCR2sdRK56V6OMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
-"BgNVBAMTBENBLTEwIhgPMjAxNDA0MDQxOTU5MDVaGA85OTk5MTIzMTIzNTk1OVow\n"
-"EzERMA8GA1UEAxMIc2VydmVyLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
-"AoIBAQDZ3dCzh9gOTOiOb2dtrPu91fYYgC/ey0ACYjQxaru7FZwnuXPhQK9KHsIV\n"
-"YRIyo49wjKZddkHet2sbpFAAeETZh8UUWLRb/mupyaSJMycaYCNjLZCUJTztvXxJ\n"
-"CCNfbtgvKC+Vu1mu94KBPatslgvnsamH7AiL5wmwRRqdH/Z93XaEvuRG6Zk0Sh9q\n"
-"ZMdCboGfjtmGEJ1V+z5CR+IyH4sckzd8WJW6wBSEwgliGaXnc75xKtFWBZV2njNr\n"
-"8V1TOYOdLEbiF4wduVExL5TKq2ywNkRpUfK2I1BcWS5D9Te/QT7aSdE08rL6ztmZ\n"
-"IhILSrMOfoLnJ4lzXspz3XLlEuhnAgMBAAGjdzB1MAwGA1UdEwEB/wQCMAAwFAYD\n"
-"VR0RBA0wC4IJbG9jYWxob3N0MA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFJXR\n"
-"raRS5MVhEqaRE42A3S2BIj7UMB8GA1UdIwQYMBaAFP6S7AyMRO2RfkANgo8YsCl8\n"
-"JfJkMA0GCSqGSIb3DQEBCwUAA4IBAQCQ62+skMVZYrGbpab8RI9IG6xH8kEndvFj\n"
-"J7wBBZCOlcjOj+HQ7a2buF5zGKRwAOSznKcmvZ7l5DPdsd0t5/VT9LKSbQ6+CfGr\n"
-"Xs5qPaDJnRhZkOILCvXJ9qyO+79WNMsg9pWnxkTK7aWR5OYE+1Qw1jG681HMkWTm\n"
-"nt7et9bdiNNpvA+L55569XKbdtJLs3hn5gEQFgS7EaEj59aC4vzSTFcidowCoa43\n"
-"7JmfSfC9YaAIFH2vriyU0QNf2y7cG5Hpkge+U7uMzQrsT77Q3SDB9WkyPAFNSB4Q\n"
-"B/r+OtZXOnQhLlMV7h4XGlWruFEaOBVjFHSdMGUh+DtaLvd1bVXI\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwNDA0MTk1OTA1WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvhyQfsUm3T0xK\n"
-"jiBXO3H6Y27b7lmCRYZQCmXCl2sUsGDL7V9biavTt3+sorWtH542/cTGDh5n8591\n"
-"7rVxAB/VASmN55O3fjZyFGrjusjhXBla0Yxe5rZ/7/Pjrq84T7gc/IXiX9Sums/c\n"
-"o9AeoykfhsjV2ubhh4h+8uPsHDTcAFTxq3mQaoldwnW2nmjDFzaKLtQdnyFf41o6\n"
-"nsJCK/J9PtpdCID5Zb+eQfu5Yhk1iUHe8a9TOstCHtgBq61YzufDHUQk3zsT+VZM\n"
-"20lDvSBnHdWLjxoea587JbkvtH8xRR8ThwABSb98qPnhJ8+A7mpO89QO1wxZM85A\n"
-"xEweQlMHAgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQU/pLsDIxE7ZF+QA2CjxiwKXwl8mQwHwYDVR0jBBgwFoAUGD0R\n"
-"Yr2H7kfjQUcBMxSTCDQnhu0wDQYJKoZIhvcNAQELBQADggEBANEXLUV+Z1PGTn7M\n"
-"3rPT/m/EamcrZJ3vFWrnfN91ws5llyRUKNhx6222HECh3xRSxH9YJONsbv2zY6sd\n"
-"ztY7lvckL4xOgWAjoCVTx3hqbZjDxpLRsvraw1PlqBHlRQVWLKlEQ55+tId2zgMX\n"
-"Z+wxM7FlU/6yWVPODIxrqYQd2KqaEp4aLIklw6Hi4HD6DnQJikjsJ6Noe0qyX1Tx\n"
-"uZ8mgP/G47Fe2d2H29kJ1iJ6hp1XOqyWrVIh/jONcnTvWS8aMqS3MU0EJH2Pb1Qa\n"
-"KGIvbd/3H9LykFTP/b7Imdv2fZxXIK8jC+jbF1w6rdBCVNA0p30X/jonoC3vynEK\n"
-"5cK0cgs=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDIzCCAgugAwIBAgIMUz8PCR2sdRK56V6OMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTEwIhgPMjAxNDA0MDQxOTU5MDVaGA85OTk5MTIzMTIzNTk1OVow\n"
+ "EzERMA8GA1UEAxMIc2VydmVyLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
+ "AoIBAQDZ3dCzh9gOTOiOb2dtrPu91fYYgC/ey0ACYjQxaru7FZwnuXPhQK9KHsIV\n"
+ "YRIyo49wjKZddkHet2sbpFAAeETZh8UUWLRb/mupyaSJMycaYCNjLZCUJTztvXxJ\n"
+ "CCNfbtgvKC+Vu1mu94KBPatslgvnsamH7AiL5wmwRRqdH/Z93XaEvuRG6Zk0Sh9q\n"
+ "ZMdCboGfjtmGEJ1V+z5CR+IyH4sckzd8WJW6wBSEwgliGaXnc75xKtFWBZV2njNr\n"
+ "8V1TOYOdLEbiF4wduVExL5TKq2ywNkRpUfK2I1BcWS5D9Te/QT7aSdE08rL6ztmZ\n"
+ "IhILSrMOfoLnJ4lzXspz3XLlEuhnAgMBAAGjdzB1MAwGA1UdEwEB/wQCMAAwFAYD\n"
+ "VR0RBA0wC4IJbG9jYWxob3N0MA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFJXR\n"
+ "raRS5MVhEqaRE42A3S2BIj7UMB8GA1UdIwQYMBaAFP6S7AyMRO2RfkANgo8YsCl8\n"
+ "JfJkMA0GCSqGSIb3DQEBCwUAA4IBAQCQ62+skMVZYrGbpab8RI9IG6xH8kEndvFj\n"
+ "J7wBBZCOlcjOj+HQ7a2buF5zGKRwAOSznKcmvZ7l5DPdsd0t5/VT9LKSbQ6+CfGr\n"
+ "Xs5qPaDJnRhZkOILCvXJ9qyO+79WNMsg9pWnxkTK7aWR5OYE+1Qw1jG681HMkWTm\n"
+ "nt7et9bdiNNpvA+L55569XKbdtJLs3hn5gEQFgS7EaEj59aC4vzSTFcidowCoa43\n"
+ "7JmfSfC9YaAIFH2vriyU0QNf2y7cG5Hpkge+U7uMzQrsT77Q3SDB9WkyPAFNSB4Q\n"
+ "B/r+OtZXOnQhLlMV7h4XGlWruFEaOBVjFHSdMGUh+DtaLvd1bVXI\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwNDA0MTk1OTA1WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvhyQfsUm3T0xK\n"
+ "jiBXO3H6Y27b7lmCRYZQCmXCl2sUsGDL7V9biavTt3+sorWtH542/cTGDh5n8591\n"
+ "7rVxAB/VASmN55O3fjZyFGrjusjhXBla0Yxe5rZ/7/Pjrq84T7gc/IXiX9Sums/c\n"
+ "o9AeoykfhsjV2ubhh4h+8uPsHDTcAFTxq3mQaoldwnW2nmjDFzaKLtQdnyFf41o6\n"
+ "nsJCK/J9PtpdCID5Zb+eQfu5Yhk1iUHe8a9TOstCHtgBq61YzufDHUQk3zsT+VZM\n"
+ "20lDvSBnHdWLjxoea587JbkvtH8xRR8ThwABSb98qPnhJ8+A7mpO89QO1wxZM85A\n"
+ "xEweQlMHAgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQU/pLsDIxE7ZF+QA2CjxiwKXwl8mQwHwYDVR0jBBgwFoAUGD0R\n"
+ "Yr2H7kfjQUcBMxSTCDQnhu0wDQYJKoZIhvcNAQELBQADggEBANEXLUV+Z1PGTn7M\n"
+ "3rPT/m/EamcrZJ3vFWrnfN91ws5llyRUKNhx6222HECh3xRSxH9YJONsbv2zY6sd\n"
+ "ztY7lvckL4xOgWAjoCVTx3hqbZjDxpLRsvraw1PlqBHlRQVWLKlEQ55+tId2zgMX\n"
+ "Z+wxM7FlU/6yWVPODIxrqYQd2KqaEp4aLIklw6Hi4HD6DnQJikjsJ6Noe0qyX1Tx\n"
+ "uZ8mgP/G47Fe2d2H29kJ1iJ6hp1XOqyWrVIh/jONcnTvWS8aMqS3MU0EJH2Pb1Qa\n"
+ "KGIvbd/3H9LykFTP/b7Imdv2fZxXIK8jC+jbF1w6rdBCVNA0p30X/jonoC3vynEK\n"
+ "5cK0cgs=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
- sizeof(server_cert_pem)-1
+ sizeof(server_cert_pem) - 1
};
static unsigned char server_key_pem[] =
-"-----BEGIN RSA PRIVATE KEY-----\n"
-"MIIEpQIBAAKCAQEA2d3Qs4fYDkzojm9nbaz7vdX2GIAv3stAAmI0MWq7uxWcJ7lz\n"
-"4UCvSh7CFWESMqOPcIymXXZB3rdrG6RQAHhE2YfFFFi0W/5rqcmkiTMnGmAjYy2Q\n"
-"lCU87b18SQgjX27YLygvlbtZrveCgT2rbJYL57Gph+wIi+cJsEUanR/2fd12hL7k\n"
-"RumZNEofamTHQm6Bn47ZhhCdVfs+QkfiMh+LHJM3fFiVusAUhMIJYhml53O+cSrR\n"
-"VgWVdp4za/FdUzmDnSxG4heMHblRMS+UyqtssDZEaVHytiNQXFkuQ/U3v0E+2knR\n"
-"NPKy+s7ZmSISC0qzDn6C5yeJc17Kc91y5RLoZwIDAQABAoIBAQCRXAu5HPOsZufq\n"
-"0K2DYZz9BdqSckR+M8HbVUZZiksDAeIUJwoHyi6qF2eK+B86JiK4Bz+gsBw2ys3t\n"
-"vW2bQqM9N/boIl8D2fZfbCgZWkXGtUonC+mgzk+el4Rq/cEMFVqr6/YDwuKNeJpc\n"
-"PJc5dcsvpTvlcjgpj9bJAvJEz2SYiIUpvtG4WNMGGapVZZPDvWn4/isY+75T5oDf\n"
-"1X5jG0lN9uoUjcuGuThN7gxjwlRkcvEOPHjXc6rxfrWIDdiz/91V46PwpqVDpRrg\n"
-"ig6U7+ckS0Oy2v32x0DaDhwAfDJ2RNc9az6Z+11lmY3LPkjG/p8Klcmgvt4/lwkD\n"
-"OYRC5QGRAoGBAPFdud6nmVt9h1DL0o4R6snm6P3K81Ds765VWVmpzJkK3+bwe4PQ\n"
-"GQQ0I0zN4hXkDMwHETS+EVWllqkK/d4dsE3volYtyTti8zthIATlgSEJ81x/ChAQ\n"
-"vvXxgx+zPUnb1mUwy+X+6urTHe4bxN2ypg6ROIUmT+Hx1ITG40LRRiPTAoGBAOcT\n"
-"WR8DTrj42xbxAUpz9vxJ15ZMwuIpk3ShE6+CWqvaXHF22Ju4WFwRNlW2zVLH6UMt\n"
-"nNfOzyDoryoiu0+0mg0wSmgdJbtCSHoI2GeiAnjGn5i8flQlPQ8bdwwmU6g6I/EU\n"
-"QRbGK/2XLmlrGN52gVy9UX0NsAA5fEOsAJiFj1CdAoGBAN9i3nbq6O2bNVSa/8mL\n"
-"XaD1vGe/oQgh8gaIaYSpuXlfbjCAG+C4BZ81XgJkfj3CbfGbDNqimsqI0fKsAJ/F\n"
-"HHpVMgrOn3L+Np2bW5YMj0Fzwy+1SCvsQ8C+gJwjOLMV6syGp/+6udMSB55rRv3k\n"
-"rPnIf+YDumUke4tTw9wAcgkPAoGASHMkiji7QfuklbjSsslRMyDj21gN8mMevH6U\n"
-"cX7pduBsA5dDqu9NpPAwnQdHsSDE3i868d8BykuqQAfLut3hPylY6vPYlLHfj4Oe\n"
-"dj+xjrSX7YeMBE34qvfth32s1R4FjtzO25keyc/Q2XSew4FcZftlxVO5Txi3AXC4\n"
-"bxnRKXECgYEAva+og7/rK+ZjboJVNxhFrwHp9bXhz4tzrUaWNvJD2vKJ5ZcThHcX\n"
-"zCig8W7eXHLPLDhi9aWZ3kUZ1RLhrFc/6dujtVtU9z2w1tmn1I+4Zi6D6L4DzKdg\n"
-"nMRLFoXufs/qoaJTqa8sQvKa+ceJAF04+gGtw617cuaZdZ3SYRLR2dk=\n"
-"-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEpQIBAAKCAQEA2d3Qs4fYDkzojm9nbaz7vdX2GIAv3stAAmI0MWq7uxWcJ7lz\n"
+ "4UCvSh7CFWESMqOPcIymXXZB3rdrG6RQAHhE2YfFFFi0W/5rqcmkiTMnGmAjYy2Q\n"
+ "lCU87b18SQgjX27YLygvlbtZrveCgT2rbJYL57Gph+wIi+cJsEUanR/2fd12hL7k\n"
+ "RumZNEofamTHQm6Bn47ZhhCdVfs+QkfiMh+LHJM3fFiVusAUhMIJYhml53O+cSrR\n"
+ "VgWVdp4za/FdUzmDnSxG4heMHblRMS+UyqtssDZEaVHytiNQXFkuQ/U3v0E+2knR\n"
+ "NPKy+s7ZmSISC0qzDn6C5yeJc17Kc91y5RLoZwIDAQABAoIBAQCRXAu5HPOsZufq\n"
+ "0K2DYZz9BdqSckR+M8HbVUZZiksDAeIUJwoHyi6qF2eK+B86JiK4Bz+gsBw2ys3t\n"
+ "vW2bQqM9N/boIl8D2fZfbCgZWkXGtUonC+mgzk+el4Rq/cEMFVqr6/YDwuKNeJpc\n"
+ "PJc5dcsvpTvlcjgpj9bJAvJEz2SYiIUpvtG4WNMGGapVZZPDvWn4/isY+75T5oDf\n"
+ "1X5jG0lN9uoUjcuGuThN7gxjwlRkcvEOPHjXc6rxfrWIDdiz/91V46PwpqVDpRrg\n"
+ "ig6U7+ckS0Oy2v32x0DaDhwAfDJ2RNc9az6Z+11lmY3LPkjG/p8Klcmgvt4/lwkD\n"
+ "OYRC5QGRAoGBAPFdud6nmVt9h1DL0o4R6snm6P3K81Ds765VWVmpzJkK3+bwe4PQ\n"
+ "GQQ0I0zN4hXkDMwHETS+EVWllqkK/d4dsE3volYtyTti8zthIATlgSEJ81x/ChAQ\n"
+ "vvXxgx+zPUnb1mUwy+X+6urTHe4bxN2ypg6ROIUmT+Hx1ITG40LRRiPTAoGBAOcT\n"
+ "WR8DTrj42xbxAUpz9vxJ15ZMwuIpk3ShE6+CWqvaXHF22Ju4WFwRNlW2zVLH6UMt\n"
+ "nNfOzyDoryoiu0+0mg0wSmgdJbtCSHoI2GeiAnjGn5i8flQlPQ8bdwwmU6g6I/EU\n"
+ "QRbGK/2XLmlrGN52gVy9UX0NsAA5fEOsAJiFj1CdAoGBAN9i3nbq6O2bNVSa/8mL\n"
+ "XaD1vGe/oQgh8gaIaYSpuXlfbjCAG+C4BZ81XgJkfj3CbfGbDNqimsqI0fKsAJ/F\n"
+ "HHpVMgrOn3L+Np2bW5YMj0Fzwy+1SCvsQ8C+gJwjOLMV6syGp/+6udMSB55rRv3k\n"
+ "rPnIf+YDumUke4tTw9wAcgkPAoGASHMkiji7QfuklbjSsslRMyDj21gN8mMevH6U\n"
+ "cX7pduBsA5dDqu9NpPAwnQdHsSDE3i868d8BykuqQAfLut3hPylY6vPYlLHfj4Oe\n"
+ "dj+xjrSX7YeMBE34qvfth32s1R4FjtzO25keyc/Q2XSew4FcZftlxVO5Txi3AXC4\n"
+ "bxnRKXECgYEAva+og7/rK+ZjboJVNxhFrwHp9bXhz4tzrUaWNvJD2vKJ5ZcThHcX\n"
+ "zCig8W7eXHLPLDhi9aWZ3kUZ1RLhrFc/6dujtVtU9z2w1tmn1I+4Zi6D6L4DzKdg\n"
+ "nMRLFoXufs/qoaJTqa8sQvKa+ceJAF04+gGtw617cuaZdZ3SYRLR2dk=\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t server_key = { server_key_pem,
- sizeof(server_key_pem)-1
+ sizeof(server_key_pem) - 1
};
static unsigned char ca_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwNDA0MTk1OTA1WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD46JAPKrTsNTHl\n"
-"zD06eIYBF/8Z+TR0wukp9Cdh8Sw77dODLjy/QrVKiDgDZZdyUc8Agsdr86i95O0p\n"
-"w19Np3a0wja0VC9uwppZrpuHsrWukwxIBXoViyBc20Y6Ce8j0scCbR10SP565qXC\n"
-"i8vr86S4xmQMRZMtwohP/GWQzt45jqkHPYHjdKzwo2b2XI7joDq0dvbr3MSONkGs\n"
-"z7A/1Bl3iH5keDTWjqpJRWqXE79IhGOhELy+gG4VLJDGHWCr2mq24b9Kirp+TTxl\n"
-"lUwJRbchqUqerlFdt1NgDoGaJyd73Sh0qcZzmEiOI2hGvBtG86tdQ6veC9dl05et\n"
-"pM+6RMABAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQUGD0RYr2H7kfjQUcBMxSTCDQnhu0wDQYJKoZIhvcNAQELBQAD\n"
-"ggEBALnHMubZ6WJ/XOFyDuo0imwg2onrPas3MuKT4+y0aHY943BgAOEc3jKitRjc\n"
-"qhb0IUD+NS7itRwNtCgI3v5Ym5nnQoVk+aOD/D724TjJ9XaPQJzOnuGaZX99VN2F\n"
-"sgwAtDXedlDQ+I6KLzLd6VW+UyWTG4qiRjOGDnG2kM1wAEOM27TzHV/YWleGjhtA\n"
-"bRHxkioOni5goNlTzazxF4v9VD2uinWrIFyZmF6vQuMm6rKFgq6higAU8uesFo7+\n"
-"3qpeRjNrPC4fNJUBvv+PC0WnP0PLnD/rY/ZcTYjLb/vJp1fiMJ5fU7jJklBhX2TE\n"
-"tstcP7FUV5HA/s9BxgAh0Z2wyyY=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwNDA0MTk1OTA1WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD46JAPKrTsNTHl\n"
+ "zD06eIYBF/8Z+TR0wukp9Cdh8Sw77dODLjy/QrVKiDgDZZdyUc8Agsdr86i95O0p\n"
+ "w19Np3a0wja0VC9uwppZrpuHsrWukwxIBXoViyBc20Y6Ce8j0scCbR10SP565qXC\n"
+ "i8vr86S4xmQMRZMtwohP/GWQzt45jqkHPYHjdKzwo2b2XI7joDq0dvbr3MSONkGs\n"
+ "z7A/1Bl3iH5keDTWjqpJRWqXE79IhGOhELy+gG4VLJDGHWCr2mq24b9Kirp+TTxl\n"
+ "lUwJRbchqUqerlFdt1NgDoGaJyd73Sh0qcZzmEiOI2hGvBtG86tdQ6veC9dl05et\n"
+ "pM+6RMABAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQUGD0RYr2H7kfjQUcBMxSTCDQnhu0wDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBALnHMubZ6WJ/XOFyDuo0imwg2onrPas3MuKT4+y0aHY943BgAOEc3jKitRjc\n"
+ "qhb0IUD+NS7itRwNtCgI3v5Ym5nnQoVk+aOD/D724TjJ9XaPQJzOnuGaZX99VN2F\n"
+ "sgwAtDXedlDQ+I6KLzLd6VW+UyWTG4qiRjOGDnG2kM1wAEOM27TzHV/YWleGjhtA\n"
+ "bRHxkioOni5goNlTzazxF4v9VD2uinWrIFyZmF6vQuMm6rKFgq6higAU8uesFo7+\n"
+ "3qpeRjNrPC4fNJUBvv+PC0WnP0PLnD/rY/ZcTYjLb/vJp1fiMJ5fU7jJklBhX2TE\n"
+ "tstcP7FUV5HA/s9BxgAh0Z2wyyY=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t ca_cert = { ca_cert_pem,
- sizeof(ca_cert_pem)-1
+ sizeof(ca_cert_pem) - 1
};
/* A server cert/key pair with CA */
static unsigned char server2_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIEITCCAomgAwIBAgIMVmajOA3Gh2967f62MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
-"BgNVBAMTBENBLTAwIBcNMTUxMjA4MDkzMDMyWhgPOTk5OTEyMzEyMzU5NTlaMBMx\n"
-"ETAPBgNVBAMTCHNlcnZlci0xMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKC\n"
-"AYEApk9rgAWlVEGy9t5Nn9RsvupM3JATJe2ONeGgMjAT++rgjsENwjqNNmEFLZjx\n"
-"8VfRjnHoVEIWvMJqeaAeBwP7GiKiDiLkHEK4ZwjJZ7aqy0KIRktDLWvJrZdoJryt\n"
-"yMikKVhPHQ9qwh6JRA3qx1FiEcW7ahU2U4/r/fydiUC0wec2UhBd4AJyXzYvFO7o\n"
-"SKPkQfzlGBNT55z/Wp9zfOO1w2x/++I+1AoKFFJ1dRI3hyrL/DfOUMoeVkJ6knyZ\n"
-"N3TQo+ZjbSkLZlpnAoxGSN8uNcX9q91AuM2zQOg1xPD0ZJvLP3j9BOtYQ7rvkX0U\n"
-"3efJXXO+Gq4oCKiPU4ZY6u43BquipzEaeZiSWPS6Xj2Ipn+KO0v77NBxhNP3lpfQ\n"
-"YDwZbw1AjnViE+WUS8r2DyM47daTGafqUCXM08kSTCrSWSte96P0jHFnyjtPGrwC\n"
-"0KQw1ug4nJxFi9FHZyU+IhczvFthocPuKOAq44//zsKKuPKsJIhA4QXfdVVvm4m+\n"
-"RoTZAgMBAAGjdzB1MAwGA1UdEwEB/wQCMAAwFAYDVR0RBA0wC4IJbG9jYWxob3N0\n"
-"MA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFCWcdf+x5Ge4ec8WGfoWYcNlaEQF\n"
-"MB8GA1UdIwQYMBaAFEt2/L3oAu29JvNzjKv/Xavvp0ufMA0GCSqGSIb3DQEBCwUA\n"
-"A4IBgQC/vXr2ecuGhAHJaBxWqay3IxyBgoQUxOMkXcXLMILxXGtIKheVZOJnilvU\n"
-"K9/fBy7N3ygUemvblNBfDJG+fA5jTmUQC8UEgeStp0iena3iAJxsGikCIAJKGzBk\n"
-"LHiPls2z9uLQXO+ZRlK1E+XfB0/3Mu4dPAPM50TLL8jYLfYzZZchgfhCX51dmic/\n"
-"EW4LL+K6LzIHoLV32YEFL9ea4y46Ub0dAX+WEwZYKu5Fu/hk+n34lBYBW1uWzPhK\n"
-"JjXVbQQUE4nirzjWr6ch5rDXz1JhhNuuex29EqA3reWtQWnHySU43/uoFxN1jD0r\n"
-"bMjyE5li2WU796vKyB0hYBKcOauWJPDdrKFvVs45GH6r84hjAacMq4RKm4P9esuQ\n"
-"0GXVaUCLGHP1ss+glFB/k5DJO1nb6hZPOCKsdaO/VbXl5kmcxgvzAoedDTiUJiC5\n"
-"URF3vuETfLwew2gE38NrTEPT54S5rYLsp/F6+5nIIhqG0BtaOwIx1VbBlrMnbsx+\n"
-"pFLp6h0=\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIID8zCCAlugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCAXDTE1MTIwODA5MzAzMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0wMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0Q82wj5Dk/me634j\n"
-"DnFBbAJ5FGNNeXnBgprRo2tQv8oJYMN/osSVd/03XiWBQnXk7v2aSkfXMqgEAzfv\n"
-"0fzWZYyhKSwTvDG48LfnIuF7UrnvnC3xdAOjcQ+E3zUdYYonSn3gRBwIjOK4wFbG\n"
-"Q4oelFnPOjWGeasLh++yBNfCa506jgFd9Y1rU5o0r/EIYSQi2aj71E+x3EdkS0Tx\n"
-"iKpIGHseuP2ARmmZPLy4YglFBvPiDRi0jdgdWd6UbNk7XJ+xnKa9gVtk3TX7vy5E\n"
-"7R1686F66bIe9T1N2Wyf3huJkgwUB2UPpG9rNiOvRLGFxkONeATwiJyzJG9DmtGw\n"
-"GbKsyMDU9Rq9Z694tBCnlWlPrQKsZEsnivPIn/2VaANArT1QtsS+EdaXzuIWmIM0\n"
-"cdQXf1U1VhzACFpHnFZ6XsOe40qwzj+6RQprHcWnIGP992qiQ6zPF8QPkycTrbhi\n"
-"TG7hX59sTTBJva5DNjZnx4H/hOiQub04CMD501JiLQ1ALXGfAgMBAAGjWDBWMA8G\n"
-"A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
-"AwcGADAdBgNVHQ4EFgQUS3b8vegC7b0m83OMq/9dq++nS58wDQYJKoZIhvcNAQEL\n"
-"BQADggGBALJv0DUD3Ujb0a9zcgKQIjljFMoA0v5A6+ZoLeHmRTU5udNV9G2AsdSx\n"
-"PEH/D7v/GyoR0jApgA0TiAqRuvlc3NsdHBx9tFvgrAFyC7bbJRrf9lP9QlTqkmb7\n"
-"a85OYmdiDhtQSyKdtSZpAfP7jVGJqQz5UWbV3CjYfubU+HLIZXEb6m8YCKBFb7l9\n"
-"GNrcKK+gFyrQr6KmojzMkJd5PxVBUsYleaf/0QxC7nRbTH/qomJvooI2nLBLA7U3\n"
-"VGLL3Og6rpjIWu2dwkvepcnesdrnPq4hJQ+uSfDkthP/qCs/3Nj9bvL73DIAYUc2\n"
-"6FUmOK40BRhBhcAIYj+9JDtHncykj0RBjH6eq+goDTSd4gTXmfbzb8p1jjLal8xZ\n"
-"PcNzShMpUqkmWe3Otzd98zkOzqiHeO03tBgfA5u+4gInSdQp5eUpE3Uivp9IcNaC\n"
-"TMSfIA6roY+p7j1ISlmzXUZuEz9dkJumV0TMmOv6nd+ZufwaDOIuDPad5bG2JFji\n"
-"KvV1dLfOfg==\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEITCCAomgAwIBAgIMVmajOA3Gh2967f62MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTAwIBcNMTUxMjA4MDkzMDMyWhgPOTk5OTEyMzEyMzU5NTlaMBMx\n"
+ "ETAPBgNVBAMTCHNlcnZlci0xMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKC\n"
+ "AYEApk9rgAWlVEGy9t5Nn9RsvupM3JATJe2ONeGgMjAT++rgjsENwjqNNmEFLZjx\n"
+ "8VfRjnHoVEIWvMJqeaAeBwP7GiKiDiLkHEK4ZwjJZ7aqy0KIRktDLWvJrZdoJryt\n"
+ "yMikKVhPHQ9qwh6JRA3qx1FiEcW7ahU2U4/r/fydiUC0wec2UhBd4AJyXzYvFO7o\n"
+ "SKPkQfzlGBNT55z/Wp9zfOO1w2x/++I+1AoKFFJ1dRI3hyrL/DfOUMoeVkJ6knyZ\n"
+ "N3TQo+ZjbSkLZlpnAoxGSN8uNcX9q91AuM2zQOg1xPD0ZJvLP3j9BOtYQ7rvkX0U\n"
+ "3efJXXO+Gq4oCKiPU4ZY6u43BquipzEaeZiSWPS6Xj2Ipn+KO0v77NBxhNP3lpfQ\n"
+ "YDwZbw1AjnViE+WUS8r2DyM47daTGafqUCXM08kSTCrSWSte96P0jHFnyjtPGrwC\n"
+ "0KQw1ug4nJxFi9FHZyU+IhczvFthocPuKOAq44//zsKKuPKsJIhA4QXfdVVvm4m+\n"
+ "RoTZAgMBAAGjdzB1MAwGA1UdEwEB/wQCMAAwFAYDVR0RBA0wC4IJbG9jYWxob3N0\n"
+ "MA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFCWcdf+x5Ge4ec8WGfoWYcNlaEQF\n"
+ "MB8GA1UdIwQYMBaAFEt2/L3oAu29JvNzjKv/Xavvp0ufMA0GCSqGSIb3DQEBCwUA\n"
+ "A4IBgQC/vXr2ecuGhAHJaBxWqay3IxyBgoQUxOMkXcXLMILxXGtIKheVZOJnilvU\n"
+ "K9/fBy7N3ygUemvblNBfDJG+fA5jTmUQC8UEgeStp0iena3iAJxsGikCIAJKGzBk\n"
+ "LHiPls2z9uLQXO+ZRlK1E+XfB0/3Mu4dPAPM50TLL8jYLfYzZZchgfhCX51dmic/\n"
+ "EW4LL+K6LzIHoLV32YEFL9ea4y46Ub0dAX+WEwZYKu5Fu/hk+n34lBYBW1uWzPhK\n"
+ "JjXVbQQUE4nirzjWr6ch5rDXz1JhhNuuex29EqA3reWtQWnHySU43/uoFxN1jD0r\n"
+ "bMjyE5li2WU796vKyB0hYBKcOauWJPDdrKFvVs45GH6r84hjAacMq4RKm4P9esuQ\n"
+ "0GXVaUCLGHP1ss+glFB/k5DJO1nb6hZPOCKsdaO/VbXl5kmcxgvzAoedDTiUJiC5\n"
+ "URF3vuETfLwew2gE38NrTEPT54S5rYLsp/F6+5nIIhqG0BtaOwIx1VbBlrMnbsx+\n"
+ "pFLp6h0=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIID8zCCAlugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCAXDTE1MTIwODA5MzAzMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0wMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0Q82wj5Dk/me634j\n"
+ "DnFBbAJ5FGNNeXnBgprRo2tQv8oJYMN/osSVd/03XiWBQnXk7v2aSkfXMqgEAzfv\n"
+ "0fzWZYyhKSwTvDG48LfnIuF7UrnvnC3xdAOjcQ+E3zUdYYonSn3gRBwIjOK4wFbG\n"
+ "Q4oelFnPOjWGeasLh++yBNfCa506jgFd9Y1rU5o0r/EIYSQi2aj71E+x3EdkS0Tx\n"
+ "iKpIGHseuP2ARmmZPLy4YglFBvPiDRi0jdgdWd6UbNk7XJ+xnKa9gVtk3TX7vy5E\n"
+ "7R1686F66bIe9T1N2Wyf3huJkgwUB2UPpG9rNiOvRLGFxkONeATwiJyzJG9DmtGw\n"
+ "GbKsyMDU9Rq9Z694tBCnlWlPrQKsZEsnivPIn/2VaANArT1QtsS+EdaXzuIWmIM0\n"
+ "cdQXf1U1VhzACFpHnFZ6XsOe40qwzj+6RQprHcWnIGP992qiQ6zPF8QPkycTrbhi\n"
+ "TG7hX59sTTBJva5DNjZnx4H/hOiQub04CMD501JiLQ1ALXGfAgMBAAGjWDBWMA8G\n"
+ "A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
+ "AwcGADAdBgNVHQ4EFgQUS3b8vegC7b0m83OMq/9dq++nS58wDQYJKoZIhvcNAQEL\n"
+ "BQADggGBALJv0DUD3Ujb0a9zcgKQIjljFMoA0v5A6+ZoLeHmRTU5udNV9G2AsdSx\n"
+ "PEH/D7v/GyoR0jApgA0TiAqRuvlc3NsdHBx9tFvgrAFyC7bbJRrf9lP9QlTqkmb7\n"
+ "a85OYmdiDhtQSyKdtSZpAfP7jVGJqQz5UWbV3CjYfubU+HLIZXEb6m8YCKBFb7l9\n"
+ "GNrcKK+gFyrQr6KmojzMkJd5PxVBUsYleaf/0QxC7nRbTH/qomJvooI2nLBLA7U3\n"
+ "VGLL3Og6rpjIWu2dwkvepcnesdrnPq4hJQ+uSfDkthP/qCs/3Nj9bvL73DIAYUc2\n"
+ "6FUmOK40BRhBhcAIYj+9JDtHncykj0RBjH6eq+goDTSd4gTXmfbzb8p1jjLal8xZ\n"
+ "PcNzShMpUqkmWe3Otzd98zkOzqiHeO03tBgfA5u+4gInSdQp5eUpE3Uivp9IcNaC\n"
+ "TMSfIA6roY+p7j1ISlmzXUZuEz9dkJumV0TMmOv6nd+ZufwaDOIuDPad5bG2JFji\n"
+ "KvV1dLfOfg==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server2_cert = { server2_cert_pem,
- sizeof(server2_cert_pem)-1
+ sizeof(server2_cert_pem) - 1
};
static unsigned char server2_key_pem[] =
-"-----BEGIN RSA PRIVATE KEY-----\n"
-"MIIG4wIBAAKCAYEApk9rgAWlVEGy9t5Nn9RsvupM3JATJe2ONeGgMjAT++rgjsEN\n"
-"wjqNNmEFLZjx8VfRjnHoVEIWvMJqeaAeBwP7GiKiDiLkHEK4ZwjJZ7aqy0KIRktD\n"
-"LWvJrZdoJrytyMikKVhPHQ9qwh6JRA3qx1FiEcW7ahU2U4/r/fydiUC0wec2UhBd\n"
-"4AJyXzYvFO7oSKPkQfzlGBNT55z/Wp9zfOO1w2x/++I+1AoKFFJ1dRI3hyrL/DfO\n"
-"UMoeVkJ6knyZN3TQo+ZjbSkLZlpnAoxGSN8uNcX9q91AuM2zQOg1xPD0ZJvLP3j9\n"
-"BOtYQ7rvkX0U3efJXXO+Gq4oCKiPU4ZY6u43BquipzEaeZiSWPS6Xj2Ipn+KO0v7\n"
-"7NBxhNP3lpfQYDwZbw1AjnViE+WUS8r2DyM47daTGafqUCXM08kSTCrSWSte96P0\n"
-"jHFnyjtPGrwC0KQw1ug4nJxFi9FHZyU+IhczvFthocPuKOAq44//zsKKuPKsJIhA\n"
-"4QXfdVVvm4m+RoTZAgMBAAECggGAS5YpC6SFQcgiaKUcrpnDWvnuOQiaS1Cuo7qK\n"
-"LoU/b+2OZhNEB5TI/YAW9GRhAgmhypXmu/TVlLDf56toOlQK2hQHh1lAR7/jQ6Dw\n"
-"uNyCv6LbgOdP/uLQZL89rO1wJqNaSRhDzLdnFBcA2BdjL3fDlMRDq7E8Ybo1zdf0\n"
-"WZ85CC/ntmCN6fPyu2dK+r6if/FNGtiv3sNaDRiDzlJOEOMFh25WtMpdN83gSuA3\n"
-"ViATcLF4yIcsk/do1leckdtjX5sNRIl6b53V0LoXd62BOs9KmrvpZt4MOx8XjPnw\n"
-"8P+gvqTA6U7zYGPdIbE6Ri+YJ/NKCND2U02XPdHF2N1TSDafZ7McjHZf53Dr+U2M\n"
-"nqLz6wY3SzLR9Puhn9FJHgyBcEaobEDFqWJC3cqNxn1u90bk9XxRflAO99vKb341\n"
-"qZXpN+/s9t0z6uL5G6q6s8ta9W0WKuiYelZam91+c6j8BXh1nntfFo7H6UvI8gSl\n"
-"axaTwxD3+tEgmpNj9f5+tP75rE1JAoHBAN1vJvnTISX7UEQfgytOszdl90viaSj4\n"
-"3gqD0M80OVaYk9ocffIIL/Dv66Wi5Ur9LgEOAfOlA/T67sCKEJ3D227czT0kj17f\n"
-"GCWLLlJgNeJ/zbs4eB11ysKPFgW92/NABtyOJBaRHlf2GuGwRGv64kBBdcteg5zQ\n"
-"ylNGpgjgf8SGtwIhoOScE9cdpdLO0AeRU/s/bQEnEpAlF08GjuCPjdHPuTVn9/EW\n"
-"zlc73WoKUyT6wJsvXMDoiiqDhFvT/C4kvwKBwQDARW4v2SAvxHPPARBCHxre90FL\n"
-"B+V+B3MUCP/pySkmVvdmUzm4ftPpIJ5E16ONzH3LYUpSoOIcBgR0ouWawjp3azyf\n"
-"U+1k8NT1VCWl745uCMIKT7x3sTqFznkp8UAsE7x2mvD+yze35qSIjaSwDP0IXYQT\n"
-"OmsVoY0WkP1OyyqiUObzced/9rWl5ysFa7R9MyXPNS98dViBYx0ORnadBjh7KuuZ\n"
-"f9lW2aemW1MGMh2+3dokjpQGo958N9QDaafNRGcCgcAYXvxuMJOMZ52M8d7w7EeD\n"
-"SGCwZGnojYN6qslXlMrewgo7zjj6Y3ZLUUyhPU15NGZUzWLfmwDVfKy8WjW792t2\n"
-"Ryz7lsOE0I8Kyse9X0Nu+1v8SBnIPEelpDPrS9siaaCXs7k7Fpu9WKPaxRiyvbkb\n"
-"E1lQmcVog/5QrgzmGzdUvPL1dBgOMTNp0KSIkCSLQK56j5+Cqfc8ECkBlJozEvmr\n"
-"5u3ed+PtD/KD3V3gJuTBxCtgqRTPUoiqZzExHiK6PWcCgcEAguWBy29tWzfKg+48\n"
-"bFeSyqLYP8WDdpaJwOUTnMzHiAOC8JXOYQ1vJXKAbWvFPD8wkOqOV8yRwvRRyjow\n"
-"SHjcpvpJzkqr/qF6yf5clyiM9dpeh/ia3X250uirUmOdBaT2FGUNltkw+LE76H9N\n"
-"1FEzXqOTzCdkSdivHeLdoOvt/Y1IfgpYyaRjLCxB/LHDsczFe9jAmGGnPIcGe/Z6\n"
-"wBJBF5Ezzk/c3iTV3wqjbj9mQs/0uBidLBwZ1sWHQD+I7tUXAoHAHXjrwCI5AJTS\n"
-"OyK0/85F5x5cbbeWZvU9bgni6IN51j9r12J13qt1bBQE+jQkOKRkvyRtEeQW3Zod\n"
-"+zcBcCqU9HSQa7BH7beT6ChEz+lx/OZ+b34MOxwE6BJdQCu1048fD9/xHq8xoQQf\n"
-"E+1aSEFaNRfxIOdqNUvyKy+WgWKoMDU96Uw6LU4z9lzOLwKb4LTZhE+qp2lMJ2Ws\n"
-"9lH//6DGC2Z42m0Do2uqdxjBclumwqvzdozgsAwKSNkDUMAqPKI5\n"
-"-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIG4wIBAAKCAYEApk9rgAWlVEGy9t5Nn9RsvupM3JATJe2ONeGgMjAT++rgjsEN\n"
+ "wjqNNmEFLZjx8VfRjnHoVEIWvMJqeaAeBwP7GiKiDiLkHEK4ZwjJZ7aqy0KIRktD\n"
+ "LWvJrZdoJrytyMikKVhPHQ9qwh6JRA3qx1FiEcW7ahU2U4/r/fydiUC0wec2UhBd\n"
+ "4AJyXzYvFO7oSKPkQfzlGBNT55z/Wp9zfOO1w2x/++I+1AoKFFJ1dRI3hyrL/DfO\n"
+ "UMoeVkJ6knyZN3TQo+ZjbSkLZlpnAoxGSN8uNcX9q91AuM2zQOg1xPD0ZJvLP3j9\n"
+ "BOtYQ7rvkX0U3efJXXO+Gq4oCKiPU4ZY6u43BquipzEaeZiSWPS6Xj2Ipn+KO0v7\n"
+ "7NBxhNP3lpfQYDwZbw1AjnViE+WUS8r2DyM47daTGafqUCXM08kSTCrSWSte96P0\n"
+ "jHFnyjtPGrwC0KQw1ug4nJxFi9FHZyU+IhczvFthocPuKOAq44//zsKKuPKsJIhA\n"
+ "4QXfdVVvm4m+RoTZAgMBAAECggGAS5YpC6SFQcgiaKUcrpnDWvnuOQiaS1Cuo7qK\n"
+ "LoU/b+2OZhNEB5TI/YAW9GRhAgmhypXmu/TVlLDf56toOlQK2hQHh1lAR7/jQ6Dw\n"
+ "uNyCv6LbgOdP/uLQZL89rO1wJqNaSRhDzLdnFBcA2BdjL3fDlMRDq7E8Ybo1zdf0\n"
+ "WZ85CC/ntmCN6fPyu2dK+r6if/FNGtiv3sNaDRiDzlJOEOMFh25WtMpdN83gSuA3\n"
+ "ViATcLF4yIcsk/do1leckdtjX5sNRIl6b53V0LoXd62BOs9KmrvpZt4MOx8XjPnw\n"
+ "8P+gvqTA6U7zYGPdIbE6Ri+YJ/NKCND2U02XPdHF2N1TSDafZ7McjHZf53Dr+U2M\n"
+ "nqLz6wY3SzLR9Puhn9FJHgyBcEaobEDFqWJC3cqNxn1u90bk9XxRflAO99vKb341\n"
+ "qZXpN+/s9t0z6uL5G6q6s8ta9W0WKuiYelZam91+c6j8BXh1nntfFo7H6UvI8gSl\n"
+ "axaTwxD3+tEgmpNj9f5+tP75rE1JAoHBAN1vJvnTISX7UEQfgytOszdl90viaSj4\n"
+ "3gqD0M80OVaYk9ocffIIL/Dv66Wi5Ur9LgEOAfOlA/T67sCKEJ3D227czT0kj17f\n"
+ "GCWLLlJgNeJ/zbs4eB11ysKPFgW92/NABtyOJBaRHlf2GuGwRGv64kBBdcteg5zQ\n"
+ "ylNGpgjgf8SGtwIhoOScE9cdpdLO0AeRU/s/bQEnEpAlF08GjuCPjdHPuTVn9/EW\n"
+ "zlc73WoKUyT6wJsvXMDoiiqDhFvT/C4kvwKBwQDARW4v2SAvxHPPARBCHxre90FL\n"
+ "B+V+B3MUCP/pySkmVvdmUzm4ftPpIJ5E16ONzH3LYUpSoOIcBgR0ouWawjp3azyf\n"
+ "U+1k8NT1VCWl745uCMIKT7x3sTqFznkp8UAsE7x2mvD+yze35qSIjaSwDP0IXYQT\n"
+ "OmsVoY0WkP1OyyqiUObzced/9rWl5ysFa7R9MyXPNS98dViBYx0ORnadBjh7KuuZ\n"
+ "f9lW2aemW1MGMh2+3dokjpQGo958N9QDaafNRGcCgcAYXvxuMJOMZ52M8d7w7EeD\n"
+ "SGCwZGnojYN6qslXlMrewgo7zjj6Y3ZLUUyhPU15NGZUzWLfmwDVfKy8WjW792t2\n"
+ "Ryz7lsOE0I8Kyse9X0Nu+1v8SBnIPEelpDPrS9siaaCXs7k7Fpu9WKPaxRiyvbkb\n"
+ "E1lQmcVog/5QrgzmGzdUvPL1dBgOMTNp0KSIkCSLQK56j5+Cqfc8ECkBlJozEvmr\n"
+ "5u3ed+PtD/KD3V3gJuTBxCtgqRTPUoiqZzExHiK6PWcCgcEAguWBy29tWzfKg+48\n"
+ "bFeSyqLYP8WDdpaJwOUTnMzHiAOC8JXOYQ1vJXKAbWvFPD8wkOqOV8yRwvRRyjow\n"
+ "SHjcpvpJzkqr/qF6yf5clyiM9dpeh/ia3X250uirUmOdBaT2FGUNltkw+LE76H9N\n"
+ "1FEzXqOTzCdkSdivHeLdoOvt/Y1IfgpYyaRjLCxB/LHDsczFe9jAmGGnPIcGe/Z6\n"
+ "wBJBF5Ezzk/c3iTV3wqjbj9mQs/0uBidLBwZ1sWHQD+I7tUXAoHAHXjrwCI5AJTS\n"
+ "OyK0/85F5x5cbbeWZvU9bgni6IN51j9r12J13qt1bBQE+jQkOKRkvyRtEeQW3Zod\n"
+ "+zcBcCqU9HSQa7BH7beT6ChEz+lx/OZ+b34MOxwE6BJdQCu1048fD9/xHq8xoQQf\n"
+ "E+1aSEFaNRfxIOdqNUvyKy+WgWKoMDU96Uw6LU4z9lzOLwKb4LTZhE+qp2lMJ2Ws\n"
+ "9lH//6DGC2Z42m0Do2uqdxjBclumwqvzdozgsAwKSNkDUMAqPKI5\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t server2_key = { server2_key_pem,
- sizeof(server2_key_pem)-1
+ sizeof(server2_key_pem) - 1
};
static unsigned char ca2_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIID8zCCAlugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCAXDTE1MTIwODA5MzAzMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0wMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0Q82wj5Dk/me634j\n"
-"DnFBbAJ5FGNNeXnBgprRo2tQv8oJYMN/osSVd/03XiWBQnXk7v2aSkfXMqgEAzfv\n"
-"0fzWZYyhKSwTvDG48LfnIuF7UrnvnC3xdAOjcQ+E3zUdYYonSn3gRBwIjOK4wFbG\n"
-"Q4oelFnPOjWGeasLh++yBNfCa506jgFd9Y1rU5o0r/EIYSQi2aj71E+x3EdkS0Tx\n"
-"iKpIGHseuP2ARmmZPLy4YglFBvPiDRi0jdgdWd6UbNk7XJ+xnKa9gVtk3TX7vy5E\n"
-"7R1686F66bIe9T1N2Wyf3huJkgwUB2UPpG9rNiOvRLGFxkONeATwiJyzJG9DmtGw\n"
-"GbKsyMDU9Rq9Z694tBCnlWlPrQKsZEsnivPIn/2VaANArT1QtsS+EdaXzuIWmIM0\n"
-"cdQXf1U1VhzACFpHnFZ6XsOe40qwzj+6RQprHcWnIGP992qiQ6zPF8QPkycTrbhi\n"
-"TG7hX59sTTBJva5DNjZnx4H/hOiQub04CMD501JiLQ1ALXGfAgMBAAGjWDBWMA8G\n"
-"A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
-"AwcGADAdBgNVHQ4EFgQUS3b8vegC7b0m83OMq/9dq++nS58wDQYJKoZIhvcNAQEL\n"
-"BQADggGBALJv0DUD3Ujb0a9zcgKQIjljFMoA0v5A6+ZoLeHmRTU5udNV9G2AsdSx\n"
-"PEH/D7v/GyoR0jApgA0TiAqRuvlc3NsdHBx9tFvgrAFyC7bbJRrf9lP9QlTqkmb7\n"
-"a85OYmdiDhtQSyKdtSZpAfP7jVGJqQz5UWbV3CjYfubU+HLIZXEb6m8YCKBFb7l9\n"
-"GNrcKK+gFyrQr6KmojzMkJd5PxVBUsYleaf/0QxC7nRbTH/qomJvooI2nLBLA7U3\n"
-"VGLL3Og6rpjIWu2dwkvepcnesdrnPq4hJQ+uSfDkthP/qCs/3Nj9bvL73DIAYUc2\n"
-"6FUmOK40BRhBhcAIYj+9JDtHncykj0RBjH6eq+goDTSd4gTXmfbzb8p1jjLal8xZ\n"
-"PcNzShMpUqkmWe3Otzd98zkOzqiHeO03tBgfA5u+4gInSdQp5eUpE3Uivp9IcNaC\n"
-"TMSfIA6roY+p7j1ISlmzXUZuEz9dkJumV0TMmOv6nd+ZufwaDOIuDPad5bG2JFji\n"
-"KvV1dLfOfg==\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIID8zCCAlugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCAXDTE1MTIwODA5MzAzMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0wMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0Q82wj5Dk/me634j\n"
+ "DnFBbAJ5FGNNeXnBgprRo2tQv8oJYMN/osSVd/03XiWBQnXk7v2aSkfXMqgEAzfv\n"
+ "0fzWZYyhKSwTvDG48LfnIuF7UrnvnC3xdAOjcQ+E3zUdYYonSn3gRBwIjOK4wFbG\n"
+ "Q4oelFnPOjWGeasLh++yBNfCa506jgFd9Y1rU5o0r/EIYSQi2aj71E+x3EdkS0Tx\n"
+ "iKpIGHseuP2ARmmZPLy4YglFBvPiDRi0jdgdWd6UbNk7XJ+xnKa9gVtk3TX7vy5E\n"
+ "7R1686F66bIe9T1N2Wyf3huJkgwUB2UPpG9rNiOvRLGFxkONeATwiJyzJG9DmtGw\n"
+ "GbKsyMDU9Rq9Z694tBCnlWlPrQKsZEsnivPIn/2VaANArT1QtsS+EdaXzuIWmIM0\n"
+ "cdQXf1U1VhzACFpHnFZ6XsOe40qwzj+6RQprHcWnIGP992qiQ6zPF8QPkycTrbhi\n"
+ "TG7hX59sTTBJva5DNjZnx4H/hOiQub04CMD501JiLQ1ALXGfAgMBAAGjWDBWMA8G\n"
+ "A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
+ "AwcGADAdBgNVHQ4EFgQUS3b8vegC7b0m83OMq/9dq++nS58wDQYJKoZIhvcNAQEL\n"
+ "BQADggGBALJv0DUD3Ujb0a9zcgKQIjljFMoA0v5A6+ZoLeHmRTU5udNV9G2AsdSx\n"
+ "PEH/D7v/GyoR0jApgA0TiAqRuvlc3NsdHBx9tFvgrAFyC7bbJRrf9lP9QlTqkmb7\n"
+ "a85OYmdiDhtQSyKdtSZpAfP7jVGJqQz5UWbV3CjYfubU+HLIZXEb6m8YCKBFb7l9\n"
+ "GNrcKK+gFyrQr6KmojzMkJd5PxVBUsYleaf/0QxC7nRbTH/qomJvooI2nLBLA7U3\n"
+ "VGLL3Og6rpjIWu2dwkvepcnesdrnPq4hJQ+uSfDkthP/qCs/3Nj9bvL73DIAYUc2\n"
+ "6FUmOK40BRhBhcAIYj+9JDtHncykj0RBjH6eq+goDTSd4gTXmfbzb8p1jjLal8xZ\n"
+ "PcNzShMpUqkmWe3Otzd98zkOzqiHeO03tBgfA5u+4gInSdQp5eUpE3Uivp9IcNaC\n"
+ "TMSfIA6roY+p7j1ISlmzXUZuEz9dkJumV0TMmOv6nd+ZufwaDOIuDPad5bG2JFji\n"
+ "KvV1dLfOfg==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t ca2_cert = { ca2_cert_pem,
- sizeof(ca2_cert_pem)-1
+ sizeof(ca2_cert_pem) - 1
};
static unsigned char cert_pem[] =
@@ -374,7 +364,7 @@ static unsigned char cert_pem[] =
"jpfc/3X7sLUsMvumcDE01ls/cG5mIatmiyEU9qI3jbgUf82z23ON/acwJf875D3/\n"
"U7jyOsBJ44SEQITbin2yUeJMIm1tievvdNXBDfW95AM507ShzP12sfiJkJfjjdhy\n"
"dc8Siq5JojruiMizAf0pA7in\n" "-----END CERTIFICATE-----\n";
-const gnutls_datum_t cli_cert = { cert_pem, sizeof(cert_pem) - 1};
+const gnutls_datum_t cli_cert = { cert_pem, sizeof(cert_pem) - 1 };
static unsigned char key_pem[] =
"-----BEGIN RSA PRIVATE KEY-----\n"
@@ -392,7 +382,7 @@ static unsigned char key_pem[] =
"/iVX2cmMTSh3w3z8MaECQEp0XJWDVKOwcTW6Ajp9SowtmiZ3YDYo1LF9igb4iaLv\n"
"sWZGfbnU3ryjvkb6YuFjgtzbZDZHWQCo8/cOtOBmPdk=\n"
"-----END RSA PRIVATE KEY-----\n";
-const gnutls_datum_t cli_key = { key_pem, sizeof(key_pem) - 1};
+const gnutls_datum_t cli_key = { key_pem, sizeof(key_pem) - 1 };
static char dsa_key_pem[] =
"-----BEGIN DSA PRIVATE KEY-----\n"
@@ -407,1542 +397,1546 @@ static char dsa_key_pem[] =
"jlvXN8gyPpbCPvRD2n2RAg+3vPjvj/dBAF6W3w8IltzqsukGgq/SLwIUS5/r/2ya\n"
"AoNBXjeBjgCGMei2m8E=\n" "-----END DSA PRIVATE KEY-----\n";
-const gnutls_datum_t dsa_key = { (unsigned char*)dsa_key_pem,
- sizeof(dsa_key_pem)-1
+const gnutls_datum_t dsa_key = { (unsigned char *)dsa_key_pem,
+ sizeof(dsa_key_pem) - 1
};
-
static char ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIID+jCCAmKgAwIBAgIIVzGgXgSsTYwwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNjA1MTAwODQ4MzBaGA85OTk5MTIzMTIzNTk1OVowDzENMAsG\n"
- "A1UEAxMEQ0EtMzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALbdxniG\n"
- "+2wP/ONeZfvR7AJakVo5deFKIHVTiiBWwhg+HSjd4nfDa+vyTt/wIdldP1PriD1R\n"
- "igc8z68+RxPpGfAc197pKlKpO08I0L1RDKnjBWr4fGdCzE6uZ/ZsKVifoIZpdC8M\n"
- "2IYpAIMajEtnH53XZ1hTEviXTsneuiCTtap73OeSkL71SrIMkgBmAX17gfX3SxFj\n"
- "QUzOs6QMMOa3+8GW7RI+E/SyS1QkOO860dj9XYgOnTL20ibGcWF2XmTiQASI+KmH\n"
- "vYJCNJF/8pvmyJRyBHGZO830aBY0+DcS2bLKcyMiWfOJw7WnpaO7zSEC5WFgo4jd\n"
- "qroUBQdjQNCSSdrt1yYrAl1Sj2PMxYFX4H545Pr2sMpwC9AnPk9+uucT1Inj9615\n"
- "qbuXgFwhkgpK5pnPjzKaHp7ESlJj4/dIPTmhlt5BV+CLh7tSLzVLrddGU+os8Jin\n"
- "T42radJ5V51Hn0C1CHIaFAuBCd5XRHXtrKb7WcnwCOxlcvux9h5/847F4wIDAQAB\n"
- "o1gwVjAPBgNVHRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GA1Ud\n"
- "DwEB/wQFAwMHBgAwHQYDVR0OBBYEFPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqG\n"
- "SIb3DQEBCwUAA4IBgQBhBi8dXQMtXH2oqcuHuEj9JkxraAsaJvc1WAoxbiqVcJKc\n"
- "VSC0gvoCY3q+NQvuePzw5dzd5JBfkoIsP5U6ATWAUPPqCP+/jRnFqDQlH626mhDG\n"
- "VS8W7Ee8z1KWqnKWGv5nkrZ6r3y9bVaNUmY7rytzuct1bI9YkX1kM66vgnU2xeMI\n"
- "jDe36/wTtBRVFPSPpE3KL9hxCg3KgPSeSmmIhmQxJ1M6xe00314/GX3lTDt55UdM\n"
- "gmldl2LHV+0i1NPCgnuOEFVOiz2nHAnw2LNmvHEDDpPauz2Meeh9aaDeefIh2u/w\n"
- "g39WRPhU1mYvmxvYZqA/jwSctiEhuKEBBZSOHxeTjplH1THlIziVnYyVW4sPMiGU\n"
- "ajXhTi47H219hx87+bldruOtirbDIslL9RGWqWAkMeGP+hUl1R2zvDukaqIKqIN8\n"
- "1/A/EeMoI6/IHb1BpgY2rGs/I/QTb3VTKqQUYv09Hi+itPCdKqamSm8dZMKKaPA0\n"
- "fD9yskUMFPBhfj8BvXg=\n"
- "-----END CERTIFICATE-----\n";
-
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIID+jCCAmKgAwIBAgIIVzGgXgSsTYwwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNjA1MTAwODQ4MzBaGA85OTk5MTIzMTIzNTk1OVowDzENMAsG\n"
+ "A1UEAxMEQ0EtMzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALbdxniG\n"
+ "+2wP/ONeZfvR7AJakVo5deFKIHVTiiBWwhg+HSjd4nfDa+vyTt/wIdldP1PriD1R\n"
+ "igc8z68+RxPpGfAc197pKlKpO08I0L1RDKnjBWr4fGdCzE6uZ/ZsKVifoIZpdC8M\n"
+ "2IYpAIMajEtnH53XZ1hTEviXTsneuiCTtap73OeSkL71SrIMkgBmAX17gfX3SxFj\n"
+ "QUzOs6QMMOa3+8GW7RI+E/SyS1QkOO860dj9XYgOnTL20ibGcWF2XmTiQASI+KmH\n"
+ "vYJCNJF/8pvmyJRyBHGZO830aBY0+DcS2bLKcyMiWfOJw7WnpaO7zSEC5WFgo4jd\n"
+ "qroUBQdjQNCSSdrt1yYrAl1Sj2PMxYFX4H545Pr2sMpwC9AnPk9+uucT1Inj9615\n"
+ "qbuXgFwhkgpK5pnPjzKaHp7ESlJj4/dIPTmhlt5BV+CLh7tSLzVLrddGU+os8Jin\n"
+ "T42radJ5V51Hn0C1CHIaFAuBCd5XRHXtrKb7WcnwCOxlcvux9h5/847F4wIDAQAB\n"
+ "o1gwVjAPBgNVHRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8GA1Ud\n"
+ "DwEB/wQFAwMHBgAwHQYDVR0OBBYEFPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqG\n"
+ "SIb3DQEBCwUAA4IBgQBhBi8dXQMtXH2oqcuHuEj9JkxraAsaJvc1WAoxbiqVcJKc\n"
+ "VSC0gvoCY3q+NQvuePzw5dzd5JBfkoIsP5U6ATWAUPPqCP+/jRnFqDQlH626mhDG\n"
+ "VS8W7Ee8z1KWqnKWGv5nkrZ6r3y9bVaNUmY7rytzuct1bI9YkX1kM66vgnU2xeMI\n"
+ "jDe36/wTtBRVFPSPpE3KL9hxCg3KgPSeSmmIhmQxJ1M6xe00314/GX3lTDt55UdM\n"
+ "gmldl2LHV+0i1NPCgnuOEFVOiz2nHAnw2LNmvHEDDpPauz2Meeh9aaDeefIh2u/w\n"
+ "g39WRPhU1mYvmxvYZqA/jwSctiEhuKEBBZSOHxeTjplH1THlIziVnYyVW4sPMiGU\n"
+ "ajXhTi47H219hx87+bldruOtirbDIslL9RGWqWAkMeGP+hUl1R2zvDukaqIKqIN8\n"
+ "1/A/EeMoI6/IHb1BpgY2rGs/I/QTb3VTKqQUYv09Hi+itPCdKqamSm8dZMKKaPA0\n"
+ "fD9yskUMFPBhfj8BvXg=\n" "-----END CERTIFICATE-----\n";
static char ca3_key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIG4gIBAAKCAYEAtt3GeIb7bA/8415l+9HsAlqRWjl14UogdVOKIFbCGD4dKN3i\n"
- "d8Nr6/JO3/Ah2V0/U+uIPVGKBzzPrz5HE+kZ8BzX3ukqUqk7TwjQvVEMqeMFavh8\n"
- "Z0LMTq5n9mwpWJ+ghml0LwzYhikAgxqMS2cfnddnWFMS+JdOyd66IJO1qnvc55KQ\n"
- "vvVKsgySAGYBfXuB9fdLEWNBTM6zpAww5rf7wZbtEj4T9LJLVCQ47zrR2P1diA6d\n"
- "MvbSJsZxYXZeZOJABIj4qYe9gkI0kX/ym+bIlHIEcZk7zfRoFjT4NxLZsspzIyJZ\n"
- "84nDtaelo7vNIQLlYWCjiN2quhQFB2NA0JJJ2u3XJisCXVKPY8zFgVfgfnjk+vaw\n"
- "ynAL0Cc+T3665xPUieP3rXmpu5eAXCGSCkrmmc+PMpoensRKUmPj90g9OaGW3kFX\n"
- "4IuHu1IvNUut10ZT6izwmKdPjatp0nlXnUefQLUIchoUC4EJ3ldEde2spvtZyfAI\n"
- "7GVy+7H2Hn/zjsXjAgMBAAECggGASjfywKJQUwieJA4BKFaICmCF0++0V07Fo7jX\n"
- "O87akgpLvXVo4CDRoX7D4oHMyzLcbAwRTInWkp9sz3xgTsVyAJFEUDWkNs52wtoa\n"
- "FmxZzm3UmhjmLObgkyKYEVzO3yhSd5s/S4VUMAdeLNfOjx/4phBx4lg9P+XxVV9v\n"
- "fZ9VwS7qdpZ25voZafBOJZlBC5PgKFtI/XKiYzEVmgRUqJ+Nr4G5EIlfghYHGsxk\n"
- "yzu9Ret3VaxQwwmIO7KY++yV3S4yC4H2A8kmInp+95IeNXND2GEgZJyp0z/7bkd0\n"
- "lOtSbYZKEaMZob2IM9gcbAHvG+Oq1349zNtC5d8KyjYcJ4W2BkeHrNiSWHiHq5zA\n"
- "dMbvgWs2ydjmpU5DacsP974lDsrt5TO+Cn16ETxDIqklkOqkLInuVmgssjWMbG0F\n"
- "qxjM6XgnO6xUizxDJywzWg05J5CCGWydbj/m6Cfns0+jokuCTSuqcAsKBhe6YD4o\n"
- "KOdws1egC7Bh+JqCTU1FtazU+THJAoHBAMz+FZrYOJVIhBOHQdttCPtYL3kglPwx\n"
- "Tvtryvct7ui76LFCtwsDclQl5wcCl89NQF+9hVpW5t3kSHuM05mFHxvFlx2fTw01\n"
- "6z4aXiLiccuc4QZQuTnfSW9OeX285So5rRbEHc8A9Pfa3Mi1OHYCt3jD92r6JGfD\n"
- "NQd06vJRgUjjLSBtWvY4usamNWY/lOCJPjSJG8x3TqRyS4e0KtD1rHgJ8I9L2+a1\n"
- "MT6E8qy8lf1+5H4hnHfYjSi9/URuYtoVNQKBwQDkXkNaJi30D/6abhdcqm9/Vitr\n"
- "bzmhkxDOTTmkaZ/9YH8lfhcbANFuIYvBb+1DSOGtXWy02pidxc3DC1QbxHpjjmd4\n"
- "fCe4TCVffMuLZDE+SofbltyQ84mVhEJS3iH0QB5ESS0M+MNn9v92Ah98UK58wWFS\n"
- "UUmBvEqVWGDlBoSiyQ0H+B2uWI1h24F7WQYGZppdFCs8YE6ZS0pmEklQ4DrnGd/J\n"
- "urXANEa6XE+BG9KF8x0sAM0YH1gHfLmyZrJXybcCgcB2v0kspcxBTfyUg2m2/naR\n"
- "gwgdFq63WKj0JAEzJryavR+Sb58xFhIIhNxLx0jBoXKFA3hYWLbsGu2SBIYfDGp0\n"
- "4AUl978HXBClrQiTFLHuzTXdPq3NxHb5r2/ZUq89wqNt6LWL0HYXjgUPj0rhsbku\n"
- "j/anVbf5E6+IXkYrkONfoZnmivKCZ2Jq6KVOUc6gM2CBdltQGlzIDh2Kwud6nJYI\n"
- "A1oC6GK+Rn/8Q2+AeM46RmN+XWISWrOKwmQQXBGPW3ECgcB3pk/Bjtlq02qBPQcu\n"
- "fPnYDKzJKEhYuHYIsPtvggvaNFHJsgunEUGpYxgXLG5yX2Amdhl7lEB8AWQyOeBC\n"
- "gCnjuXvK67nf3L2EDx2SFdebHG+cBKnhpEfEt7wMMOg3UdTJ0FEzR68R7J6iFLCs\n"
- "cJVLNgKon4BU4fNt1hVGSaj6pT4Xm87pRuokiF6J4vW+Ksnb1LJmessTlBgR7KjP\n"
- "H/yckrjmt9V8M6ePAsiBC7O8jMkPAghzCBEWMyoUJ6xvRHcCgcAWZFAbb0kCiebN\n"
- "twTeVJ53V3hdFpanX1bDCOD+B7QFGqkNpEiF4WqHioSrXVhL9yLROLFUo43eqH4u\n"
- "3m1cny0hwWDrkDbuMIMrjHtQRYsDX/0XbwPFr1jxNHggzC6uZXeSKih7xoVFFL/e\n"
- "AbsLJbTvoXgn6abfY5JlN45G+P9L23j3/B5PYQUTLllXQxgFGIpnWL0RFCHQuNX6\n"
- "xkwfZG91IiOdKlKEddraZb3OppP1j7HsiyaYmwIMtsPc9wa2EsU=\n"
- "-----END RSA PRIVATE KEY-----\n";
-
-const gnutls_datum_t ca3_key = { (unsigned char*)ca3_key_pem,
- sizeof(ca3_key_pem)-1
-};
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIG4gIBAAKCAYEAtt3GeIb7bA/8415l+9HsAlqRWjl14UogdVOKIFbCGD4dKN3i\n"
+ "d8Nr6/JO3/Ah2V0/U+uIPVGKBzzPrz5HE+kZ8BzX3ukqUqk7TwjQvVEMqeMFavh8\n"
+ "Z0LMTq5n9mwpWJ+ghml0LwzYhikAgxqMS2cfnddnWFMS+JdOyd66IJO1qnvc55KQ\n"
+ "vvVKsgySAGYBfXuB9fdLEWNBTM6zpAww5rf7wZbtEj4T9LJLVCQ47zrR2P1diA6d\n"
+ "MvbSJsZxYXZeZOJABIj4qYe9gkI0kX/ym+bIlHIEcZk7zfRoFjT4NxLZsspzIyJZ\n"
+ "84nDtaelo7vNIQLlYWCjiN2quhQFB2NA0JJJ2u3XJisCXVKPY8zFgVfgfnjk+vaw\n"
+ "ynAL0Cc+T3665xPUieP3rXmpu5eAXCGSCkrmmc+PMpoensRKUmPj90g9OaGW3kFX\n"
+ "4IuHu1IvNUut10ZT6izwmKdPjatp0nlXnUefQLUIchoUC4EJ3ldEde2spvtZyfAI\n"
+ "7GVy+7H2Hn/zjsXjAgMBAAECggGASjfywKJQUwieJA4BKFaICmCF0++0V07Fo7jX\n"
+ "O87akgpLvXVo4CDRoX7D4oHMyzLcbAwRTInWkp9sz3xgTsVyAJFEUDWkNs52wtoa\n"
+ "FmxZzm3UmhjmLObgkyKYEVzO3yhSd5s/S4VUMAdeLNfOjx/4phBx4lg9P+XxVV9v\n"
+ "fZ9VwS7qdpZ25voZafBOJZlBC5PgKFtI/XKiYzEVmgRUqJ+Nr4G5EIlfghYHGsxk\n"
+ "yzu9Ret3VaxQwwmIO7KY++yV3S4yC4H2A8kmInp+95IeNXND2GEgZJyp0z/7bkd0\n"
+ "lOtSbYZKEaMZob2IM9gcbAHvG+Oq1349zNtC5d8KyjYcJ4W2BkeHrNiSWHiHq5zA\n"
+ "dMbvgWs2ydjmpU5DacsP974lDsrt5TO+Cn16ETxDIqklkOqkLInuVmgssjWMbG0F\n"
+ "qxjM6XgnO6xUizxDJywzWg05J5CCGWydbj/m6Cfns0+jokuCTSuqcAsKBhe6YD4o\n"
+ "KOdws1egC7Bh+JqCTU1FtazU+THJAoHBAMz+FZrYOJVIhBOHQdttCPtYL3kglPwx\n"
+ "Tvtryvct7ui76LFCtwsDclQl5wcCl89NQF+9hVpW5t3kSHuM05mFHxvFlx2fTw01\n"
+ "6z4aXiLiccuc4QZQuTnfSW9OeX285So5rRbEHc8A9Pfa3Mi1OHYCt3jD92r6JGfD\n"
+ "NQd06vJRgUjjLSBtWvY4usamNWY/lOCJPjSJG8x3TqRyS4e0KtD1rHgJ8I9L2+a1\n"
+ "MT6E8qy8lf1+5H4hnHfYjSi9/URuYtoVNQKBwQDkXkNaJi30D/6abhdcqm9/Vitr\n"
+ "bzmhkxDOTTmkaZ/9YH8lfhcbANFuIYvBb+1DSOGtXWy02pidxc3DC1QbxHpjjmd4\n"
+ "fCe4TCVffMuLZDE+SofbltyQ84mVhEJS3iH0QB5ESS0M+MNn9v92Ah98UK58wWFS\n"
+ "UUmBvEqVWGDlBoSiyQ0H+B2uWI1h24F7WQYGZppdFCs8YE6ZS0pmEklQ4DrnGd/J\n"
+ "urXANEa6XE+BG9KF8x0sAM0YH1gHfLmyZrJXybcCgcB2v0kspcxBTfyUg2m2/naR\n"
+ "gwgdFq63WKj0JAEzJryavR+Sb58xFhIIhNxLx0jBoXKFA3hYWLbsGu2SBIYfDGp0\n"
+ "4AUl978HXBClrQiTFLHuzTXdPq3NxHb5r2/ZUq89wqNt6LWL0HYXjgUPj0rhsbku\n"
+ "j/anVbf5E6+IXkYrkONfoZnmivKCZ2Jq6KVOUc6gM2CBdltQGlzIDh2Kwud6nJYI\n"
+ "A1oC6GK+Rn/8Q2+AeM46RmN+XWISWrOKwmQQXBGPW3ECgcB3pk/Bjtlq02qBPQcu\n"
+ "fPnYDKzJKEhYuHYIsPtvggvaNFHJsgunEUGpYxgXLG5yX2Amdhl7lEB8AWQyOeBC\n"
+ "gCnjuXvK67nf3L2EDx2SFdebHG+cBKnhpEfEt7wMMOg3UdTJ0FEzR68R7J6iFLCs\n"
+ "cJVLNgKon4BU4fNt1hVGSaj6pT4Xm87pRuokiF6J4vW+Ksnb1LJmessTlBgR7KjP\n"
+ "H/yckrjmt9V8M6ePAsiBC7O8jMkPAghzCBEWMyoUJ6xvRHcCgcAWZFAbb0kCiebN\n"
+ "twTeVJ53V3hdFpanX1bDCOD+B7QFGqkNpEiF4WqHioSrXVhL9yLROLFUo43eqH4u\n"
+ "3m1cny0hwWDrkDbuMIMrjHtQRYsDX/0XbwPFr1jxNHggzC6uZXeSKih7xoVFFL/e\n"
+ "AbsLJbTvoXgn6abfY5JlN45G+P9L23j3/B5PYQUTLllXQxgFGIpnWL0RFCHQuNX6\n"
+ "xkwfZG91IiOdKlKEddraZb3OppP1j7HsiyaYmwIMtsPc9wa2EsU=\n"
+ "-----END RSA PRIVATE KEY-----\n";
-const gnutls_datum_t ca3_cert = { (unsigned char*)ca3_cert_pem,
- sizeof(ca3_cert_pem)-1
+const gnutls_datum_t ca3_key = { (unsigned char *)ca3_key_pem,
+ sizeof(ca3_key_pem) - 1
};
+const gnutls_datum_t ca3_cert = { (unsigned char *)ca3_cert_pem,
+ sizeof(ca3_cert_pem) - 1
+};
static char subca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5NTlaMBIx\n"
- "EDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n"
- "gQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2WLiope/x\n"
- "NL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioVtvPQwEpv\n"
- "uI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR5+wGsJDv\n"
- "kfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJrP+GtLiG0\n"
- "AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj0Sk3Rq93\n"
- "JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1ROsdk4WU\n"
- "ed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH4vysDO9U\n"
- "ZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B48xfmyIF\n"
- "jgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\n"
- "A1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
- "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58oDRy5a0o\n"
- "PvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68kogjKs31\n"
- "QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmTsQOdv/bz\n"
- "R+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT45SGw7c7F\n"
- "cumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2gaygWNiD\n"
- "+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiujgUV0TZH\n"
- "EyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c4FdrCByV\n"
- "haeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1Y1MQ72Sn\n"
- "frzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5NTlaMBIx\n"
+ "EDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n"
+ "gQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2WLiope/x\n"
+ "NL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioVtvPQwEpv\n"
+ "uI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR5+wGsJDv\n"
+ "kfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJrP+GtLiG0\n"
+ "AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj0Sk3Rq93\n"
+ "JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1ROsdk4WU\n"
+ "ed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH4vysDO9U\n"
+ "ZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B48xfmyIF\n"
+ "jgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\n"
+ "A1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
+ "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58oDRy5a0o\n"
+ "PvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68kogjKs31\n"
+ "QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmTsQOdv/bz\n"
+ "R+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT45SGw7c7F\n"
+ "cumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2gaygWNiD\n"
+ "+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiujgUV0TZH\n"
+ "EyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c4FdrCByV\n"
+ "haeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1Y1MQ72Sn\n"
+ "frzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
+ "-----END CERTIFICATE-----\n";
static char subca3_key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIG5AIBAAKCAYEAoDnDV80rTp0RaItOWjES3jAeOV+GtrK0gbpd1C8Q0hoyD9BB\n"
- "Jf/19li4qKXv8TS/GzwkaSNbElV5fB29XCt6ljRms1Zgu8VtOzcS9uiPOnt/wVUZ\n"
- "6vIqFbbz0MBKb7iPBfe8dby/5/nH3HZDe+zUnK+QvYxzFYqEbwvqis/W1AceQ0sk\n"
- "leuj0efsBrCQ75H7Jo1ToKok5UlkEuRt5zDKtEYsbHOXT+VsoJG3YffuOVArTm3J\n"
- "xwASaz/hrS4htADlMeqD8z7XmS9d3q1l4O82LrE2q4/a03HbIEfyJtZiM5g9ouxo\n"
- "SaOBo9EpN0avdycngPgMuVD5qnJvnal9NG+PTE07+BrTud5C0Egl2BSfeo3DIlzM\n"
- "wRSQ9UTrHZOFlHnf7STB337bQ8/Y91nLl/TNp8009sZWrqJI2xAIUQ0cOX8QhWYe\n"
- "025mh+L8rAzvVGV1RF0iyqJ0Ni5srKOPLPxt9FZpUo7T7SakbL/6D6Qjv3NA+ga5\n"
- "B1eeQePMX5siBY4BAgMBAAECggGAW56MIBHW+L4B7VjzNcmn81tqfP4txxzK8P+D\n"
- "lchQAwQtqjM4faUunW5AMVepq7Cwsr8iRuiLtCEiNaG/3QuTrn5KV7RF3jlXa6vj\n"
- "cUKsXBGwjPm/t0RAYmhaZPz/04CicBQoNN74kYqYCW2qyxsyvGH8DxdX23J4phMX\n"
- "S8brHhTv7iTyx7OV2nqW0YB3cDZ2eaYIsu9355Ce49qxKakR0CHsVxuF447aHbsV\n"
- "NLUUCLvZ95/56IwW/DLsNh4R8Z8siEDde8imHyJOVihqrxvoQ7pL0+qB8amsMEVd\n"
- "YcUr0ln56Ob5MuO5vD5lAASbOgGUcI/3OWsd2KzquNxKzZaZu+nC1Yh150E1jDEi\n"
- "dZIgTtAr39sCx2EwovYwOWrVz66afzN05/0QxuXaoR5IuqbAt7mmaC5wSUGfuAyA\n"
- "oy94+JEAb6bb1RPdzcLE5AC6n1zdcOwtuHAajFIppR3He4n4cODaPyqf8pqoCE7s\n"
- "fqCa43LLUbPNIEh+E0jFy2lBlqRNAoHBAMY4REQIAUP9PEVtGKi+fvqlBjEn2hzx\n"
- "7GuVscvro2U4xk7ZwM1ZffDM9Skuf10+QK15fT4sC4WknJ5MNDY6lkkuPAAaE+Wh\n"
- "O6w9Dkz264n2xiGCOEignsAbTkOOZCiWVh9xq4N3o6C9uWUWPOW5bnBx9BzMRi59\n"
- "SK5qLTOlJur8fczV/1/sFTUEwBiahERUFqGlOD3t4/z5YuWdFjoXhOh3s60hro8C\n"
- "57E4mDuk5sgIh2/i0L9Aob1fnN/Hkl89hwKBwQDO7kNJcRgzbtnK4bX3QWiZVI42\n"
- "91YfWtHGqJuqymi8a/4oNBzlBqJECtd0fYcCudadXGtjmf68/BbfwZjZzPOVrnpM\n"
- "3XvMgvJgwuppW+Uovvk7eStUGqz1YzEZQZlVSc6p3sB0Lv9EGU5hCejnJmzF36s2\n"
- "+KWuzyjkBg4o7fqYAeE2y4tZzGOwRjlOLJQQKQANTv24fOHXCaWBwrkgPloFqkrx\n"
- "QPe6Dm7iWdi4xGB3zFZxSZbr0rZ1SmSTn3kbejcCgcEAvoTwYG9NQBsTpitA61gF\n"
- "1kVtWSvTwcRpl9KOzNCVAUJ7oOg9H2Ln4N4uucFeW7HtGo/N6EcPYAmjG6dk+8Z+\n"
- "EqKkuvhVrX22TEt3BlTCeZ2+PBDcpjnzu/PC2r3u2O/+oURxNPB2TpZsrpOcPrVn\n"
- "SB7PIirZPe/fPv0Aq0YOzQeYppv9VCYnEAmb1UoW3VHxWrbiAuw3GTxeaRH+fiGC\n"
- "9qmvAjaAgCarqTQbZiCOTS+dddYNC/ZEPy+6KYC52F7bAoHBAJLp5EnDCpyRif0Z\n"
- "jLhz7tBVkPaDWdi/AQqa8JIsTHnh7jsa7JzJvfCzBc7FxFHyIOXuFKxNS+deztqj\n"
- "t2KCuTm++0ORR/Cl03FRUV3mCWeJVqeb2mBG5B8AAn7c7QD5esltxZN3PnJZySTq\n"
- "BTn/NOCzcPqBRBg9KdniVrFGbFD5nKzrjA8AJpKi+NKAocprYYcRWt9dgnXKeoAL\n"
- "AKZcvkshYT2xk2+8CYuYoF5lxdun7oNV7NmW60WQwKFyamhQtwKBwE6OM6v8BOL2\n"
- "8SkAd0qj0UFMyzJCOhlW5cypdcvvEpiR4H/8m2c8U4iemful3YJ/Hc+KH165KeQM\n"
- "3ZBX1w2rwei6cQNtIptMYFBapUzE1Wd0Uyh8OjpHnCYvv/53cZYNSrVtqCD5GE87\n"
- "c/snzezAEzWGNm5wl0X+Y3g/mZaYX2rXUgr/dxVGhNHzOodEMz3Sk/Z8ER5n8m5N\n"
- "CLo/c/+F0N4e0F7P+haq+Ccj6MNM99HnuJALc1Ke9971YxrNfniGvA==\n"
- "-----END RSA PRIVATE KEY-----\n";
-
-const gnutls_datum_t subca3_key = { (unsigned char*)subca3_key_pem,
- sizeof(subca3_key_pem)-1
-};
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIG5AIBAAKCAYEAoDnDV80rTp0RaItOWjES3jAeOV+GtrK0gbpd1C8Q0hoyD9BB\n"
+ "Jf/19li4qKXv8TS/GzwkaSNbElV5fB29XCt6ljRms1Zgu8VtOzcS9uiPOnt/wVUZ\n"
+ "6vIqFbbz0MBKb7iPBfe8dby/5/nH3HZDe+zUnK+QvYxzFYqEbwvqis/W1AceQ0sk\n"
+ "leuj0efsBrCQ75H7Jo1ToKok5UlkEuRt5zDKtEYsbHOXT+VsoJG3YffuOVArTm3J\n"
+ "xwASaz/hrS4htADlMeqD8z7XmS9d3q1l4O82LrE2q4/a03HbIEfyJtZiM5g9ouxo\n"
+ "SaOBo9EpN0avdycngPgMuVD5qnJvnal9NG+PTE07+BrTud5C0Egl2BSfeo3DIlzM\n"
+ "wRSQ9UTrHZOFlHnf7STB337bQ8/Y91nLl/TNp8009sZWrqJI2xAIUQ0cOX8QhWYe\n"
+ "025mh+L8rAzvVGV1RF0iyqJ0Ni5srKOPLPxt9FZpUo7T7SakbL/6D6Qjv3NA+ga5\n"
+ "B1eeQePMX5siBY4BAgMBAAECggGAW56MIBHW+L4B7VjzNcmn81tqfP4txxzK8P+D\n"
+ "lchQAwQtqjM4faUunW5AMVepq7Cwsr8iRuiLtCEiNaG/3QuTrn5KV7RF3jlXa6vj\n"
+ "cUKsXBGwjPm/t0RAYmhaZPz/04CicBQoNN74kYqYCW2qyxsyvGH8DxdX23J4phMX\n"
+ "S8brHhTv7iTyx7OV2nqW0YB3cDZ2eaYIsu9355Ce49qxKakR0CHsVxuF447aHbsV\n"
+ "NLUUCLvZ95/56IwW/DLsNh4R8Z8siEDde8imHyJOVihqrxvoQ7pL0+qB8amsMEVd\n"
+ "YcUr0ln56Ob5MuO5vD5lAASbOgGUcI/3OWsd2KzquNxKzZaZu+nC1Yh150E1jDEi\n"
+ "dZIgTtAr39sCx2EwovYwOWrVz66afzN05/0QxuXaoR5IuqbAt7mmaC5wSUGfuAyA\n"
+ "oy94+JEAb6bb1RPdzcLE5AC6n1zdcOwtuHAajFIppR3He4n4cODaPyqf8pqoCE7s\n"
+ "fqCa43LLUbPNIEh+E0jFy2lBlqRNAoHBAMY4REQIAUP9PEVtGKi+fvqlBjEn2hzx\n"
+ "7GuVscvro2U4xk7ZwM1ZffDM9Skuf10+QK15fT4sC4WknJ5MNDY6lkkuPAAaE+Wh\n"
+ "O6w9Dkz264n2xiGCOEignsAbTkOOZCiWVh9xq4N3o6C9uWUWPOW5bnBx9BzMRi59\n"
+ "SK5qLTOlJur8fczV/1/sFTUEwBiahERUFqGlOD3t4/z5YuWdFjoXhOh3s60hro8C\n"
+ "57E4mDuk5sgIh2/i0L9Aob1fnN/Hkl89hwKBwQDO7kNJcRgzbtnK4bX3QWiZVI42\n"
+ "91YfWtHGqJuqymi8a/4oNBzlBqJECtd0fYcCudadXGtjmf68/BbfwZjZzPOVrnpM\n"
+ "3XvMgvJgwuppW+Uovvk7eStUGqz1YzEZQZlVSc6p3sB0Lv9EGU5hCejnJmzF36s2\n"
+ "+KWuzyjkBg4o7fqYAeE2y4tZzGOwRjlOLJQQKQANTv24fOHXCaWBwrkgPloFqkrx\n"
+ "QPe6Dm7iWdi4xGB3zFZxSZbr0rZ1SmSTn3kbejcCgcEAvoTwYG9NQBsTpitA61gF\n"
+ "1kVtWSvTwcRpl9KOzNCVAUJ7oOg9H2Ln4N4uucFeW7HtGo/N6EcPYAmjG6dk+8Z+\n"
+ "EqKkuvhVrX22TEt3BlTCeZ2+PBDcpjnzu/PC2r3u2O/+oURxNPB2TpZsrpOcPrVn\n"
+ "SB7PIirZPe/fPv0Aq0YOzQeYppv9VCYnEAmb1UoW3VHxWrbiAuw3GTxeaRH+fiGC\n"
+ "9qmvAjaAgCarqTQbZiCOTS+dddYNC/ZEPy+6KYC52F7bAoHBAJLp5EnDCpyRif0Z\n"
+ "jLhz7tBVkPaDWdi/AQqa8JIsTHnh7jsa7JzJvfCzBc7FxFHyIOXuFKxNS+deztqj\n"
+ "t2KCuTm++0ORR/Cl03FRUV3mCWeJVqeb2mBG5B8AAn7c7QD5esltxZN3PnJZySTq\n"
+ "BTn/NOCzcPqBRBg9KdniVrFGbFD5nKzrjA8AJpKi+NKAocprYYcRWt9dgnXKeoAL\n"
+ "AKZcvkshYT2xk2+8CYuYoF5lxdun7oNV7NmW60WQwKFyamhQtwKBwE6OM6v8BOL2\n"
+ "8SkAd0qj0UFMyzJCOhlW5cypdcvvEpiR4H/8m2c8U4iemful3YJ/Hc+KH165KeQM\n"
+ "3ZBX1w2rwei6cQNtIptMYFBapUzE1Wd0Uyh8OjpHnCYvv/53cZYNSrVtqCD5GE87\n"
+ "c/snzezAEzWGNm5wl0X+Y3g/mZaYX2rXUgr/dxVGhNHzOodEMz3Sk/Z8ER5n8m5N\n"
+ "CLo/c/+F0N4e0F7P+haq+Ccj6MNM99HnuJALc1Ke9971YxrNfniGvA==\n"
+ "-----END RSA PRIVATE KEY-----\n";
-const gnutls_datum_t subca3_cert = { (unsigned char*)subca3_cert_pem,
- sizeof(subca3_cert_pem)-1
+const gnutls_datum_t subca3_key = { (unsigned char *)subca3_key_pem,
+ sizeof(subca3_key_pem) - 1
};
+const gnutls_datum_t subca3_cert = { (unsigned char *)subca3_cert_pem,
+ sizeof(subca3_cert_pem) - 1
+};
static char cli_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIERjCCAq6gAwIBAgIMV6MdMjZaLvmhsFpSMA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
- "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1NjM5WhgPOTk5OTEyMzEyMzU5NTla\n"
- "MBYxFDASBgNVBAMTC1Rlc3QgY2xpZW50MIIBojANBgkqhkiG9w0BAQEFAAOCAY8A\n"
- "MIIBigKCAYEA4QAezvLHuNtTlTQSn1vNaYBrZ5+CzS8/tB2L5G+wWy3Yqqqh1kB+\n"
- "gcWN9Ftqv21B1WgRWtjrn4rTJgxl+ogLiLgLIZ6iG/Ye1POFKxxVYYxPXI7spAYa\n"
- "CW6/+QjS/18M6NCAHsvhJEMkOY6clIqEqCpLTyaWzJULBBwtpA84pkcLTiNpmfIJ\n"
- "Wos9OsYH0hSK2xE/5qu+DkkaKrfS2Cyp61wdhURrX1fdlkBUBt9XH8S5A2bWuQEY\n"
- "82GgXxl8HpehkB2RLgpkZQzxopzhoqG2P8IZFQmtOySzRPWtdpy0RJbvmLfZqaEw\n"
- "sq3g1jZFXhqUjc5y3vbHta2Xg5/zx0X/FB69j2KZsgUmklYVFG9te7UtSVDgz3U6\n"
- "9ed16AULxNqAF2LGhuIEI5+4PikXb+QxaOx/hw1BtEqMzLMbNphILSPBRI+NpTZ2\n"
- "PCSedGsQzxsgns/iaLB7q1AIrKLUQlVpy+JNfauYqzvlMNXwMaoNQZDf9oOoFkdT\n"
- "P5P8t/gGk2rlAgMBAAGjgZUwgZIwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggr\n"
- "BgEFBQcDAjAcBgNVHREEFTATgRFoZWxsb0BleGFtcGxlLm9yZzAPBgNVHQ8BAf8E\n"
- "BQMDB4AAMB0GA1UdDgQWBBRdXorh31ji3Vx07Tm7u9jZMbKBajAfBgNVHSMEGDAW\n"
- "gBQtMwQbJ3+UBHzH4zVP6SWklOG3oTANBgkqhkiG9w0BAQsFAAOCAYEAPjXZC89d\n"
- "2lkc33p5qBTneqXAAZeseBZlSF9Rd798NofXTw0oi235UWCdmPOS4l0z8PBh0ICA\n"
- "MY7iUrv5MJeEcvGOq1NFZObsEP+gcpDi3s1otSif9n3ZSR9gDqG1kAlvwOxDW1As\n"
- "KuGgwE2vRZN3T20USkcSXvtJ3QD+tIroD9z/Auh2H6LsqOMwSwBo9Alzj7DWLk8G\n"
- "mdpQtQU+l/+3pa5MY4MBQM3T3PpK4TdjMVKzKc8lMUeFH/VJSbyQ2kgL7OqavMsH\n"
- "jGrm0JCWi2M188EobKVqt2nhQQA7SIogYe4cqx8Q2/7v6RDXZ11QifFKupQ2vXLb\n"
- "DZxa4j7YQz4F2m7+PbYbSAs1y4/oiJ32O3BjQC7Oa3OaGFpkipUtrozaa1TM4tab\n"
- "kZSyKmSvKG2RxDphl71OZ28tgWjjzJbyG3dbnI3HF1L7YVwHUGFUPhUGuiS7H/b4\n"
- "6Zd8Y0P6Cxn/4rUEZZPDpCVt92cjQsWXL45JXpmqwDlaRdSXXoIB2l2D\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIERjCCAq6gAwIBAgIMV6MdMjZaLvmhsFpSMA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
+ "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1NjM5WhgPOTk5OTEyMzEyMzU5NTla\n"
+ "MBYxFDASBgNVBAMTC1Rlc3QgY2xpZW50MIIBojANBgkqhkiG9w0BAQEFAAOCAY8A\n"
+ "MIIBigKCAYEA4QAezvLHuNtTlTQSn1vNaYBrZ5+CzS8/tB2L5G+wWy3Yqqqh1kB+\n"
+ "gcWN9Ftqv21B1WgRWtjrn4rTJgxl+ogLiLgLIZ6iG/Ye1POFKxxVYYxPXI7spAYa\n"
+ "CW6/+QjS/18M6NCAHsvhJEMkOY6clIqEqCpLTyaWzJULBBwtpA84pkcLTiNpmfIJ\n"
+ "Wos9OsYH0hSK2xE/5qu+DkkaKrfS2Cyp61wdhURrX1fdlkBUBt9XH8S5A2bWuQEY\n"
+ "82GgXxl8HpehkB2RLgpkZQzxopzhoqG2P8IZFQmtOySzRPWtdpy0RJbvmLfZqaEw\n"
+ "sq3g1jZFXhqUjc5y3vbHta2Xg5/zx0X/FB69j2KZsgUmklYVFG9te7UtSVDgz3U6\n"
+ "9ed16AULxNqAF2LGhuIEI5+4PikXb+QxaOx/hw1BtEqMzLMbNphILSPBRI+NpTZ2\n"
+ "PCSedGsQzxsgns/iaLB7q1AIrKLUQlVpy+JNfauYqzvlMNXwMaoNQZDf9oOoFkdT\n"
+ "P5P8t/gGk2rlAgMBAAGjgZUwgZIwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggr\n"
+ "BgEFBQcDAjAcBgNVHREEFTATgRFoZWxsb0BleGFtcGxlLm9yZzAPBgNVHQ8BAf8E\n"
+ "BQMDB4AAMB0GA1UdDgQWBBRdXorh31ji3Vx07Tm7u9jZMbKBajAfBgNVHSMEGDAW\n"
+ "gBQtMwQbJ3+UBHzH4zVP6SWklOG3oTANBgkqhkiG9w0BAQsFAAOCAYEAPjXZC89d\n"
+ "2lkc33p5qBTneqXAAZeseBZlSF9Rd798NofXTw0oi235UWCdmPOS4l0z8PBh0ICA\n"
+ "MY7iUrv5MJeEcvGOq1NFZObsEP+gcpDi3s1otSif9n3ZSR9gDqG1kAlvwOxDW1As\n"
+ "KuGgwE2vRZN3T20USkcSXvtJ3QD+tIroD9z/Auh2H6LsqOMwSwBo9Alzj7DWLk8G\n"
+ "mdpQtQU+l/+3pa5MY4MBQM3T3PpK4TdjMVKzKc8lMUeFH/VJSbyQ2kgL7OqavMsH\n"
+ "jGrm0JCWi2M188EobKVqt2nhQQA7SIogYe4cqx8Q2/7v6RDXZ11QifFKupQ2vXLb\n"
+ "DZxa4j7YQz4F2m7+PbYbSAs1y4/oiJ32O3BjQC7Oa3OaGFpkipUtrozaa1TM4tab\n"
+ "kZSyKmSvKG2RxDphl71OZ28tgWjjzJbyG3dbnI3HF1L7YVwHUGFUPhUGuiS7H/b4\n"
+ "6Zd8Y0P6Cxn/4rUEZZPDpCVt92cjQsWXL45JXpmqwDlaRdSXXoIB2l2D\n"
+ "-----END CERTIFICATE-----\n";
static char cli_ca3_cert_chain_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIERjCCAq6gAwIBAgIMV6MdMjZaLvmhsFpSMA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
- "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1NjM5WhgPOTk5OTEyMzEyMzU5NTla\n"
- "MBYxFDASBgNVBAMTC1Rlc3QgY2xpZW50MIIBojANBgkqhkiG9w0BAQEFAAOCAY8A\n"
- "MIIBigKCAYEA4QAezvLHuNtTlTQSn1vNaYBrZ5+CzS8/tB2L5G+wWy3Yqqqh1kB+\n"
- "gcWN9Ftqv21B1WgRWtjrn4rTJgxl+ogLiLgLIZ6iG/Ye1POFKxxVYYxPXI7spAYa\n"
- "CW6/+QjS/18M6NCAHsvhJEMkOY6clIqEqCpLTyaWzJULBBwtpA84pkcLTiNpmfIJ\n"
- "Wos9OsYH0hSK2xE/5qu+DkkaKrfS2Cyp61wdhURrX1fdlkBUBt9XH8S5A2bWuQEY\n"
- "82GgXxl8HpehkB2RLgpkZQzxopzhoqG2P8IZFQmtOySzRPWtdpy0RJbvmLfZqaEw\n"
- "sq3g1jZFXhqUjc5y3vbHta2Xg5/zx0X/FB69j2KZsgUmklYVFG9te7UtSVDgz3U6\n"
- "9ed16AULxNqAF2LGhuIEI5+4PikXb+QxaOx/hw1BtEqMzLMbNphILSPBRI+NpTZ2\n"
- "PCSedGsQzxsgns/iaLB7q1AIrKLUQlVpy+JNfauYqzvlMNXwMaoNQZDf9oOoFkdT\n"
- "P5P8t/gGk2rlAgMBAAGjgZUwgZIwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggr\n"
- "BgEFBQcDAjAcBgNVHREEFTATgRFoZWxsb0BleGFtcGxlLm9yZzAPBgNVHQ8BAf8E\n"
- "BQMDB4AAMB0GA1UdDgQWBBRdXorh31ji3Vx07Tm7u9jZMbKBajAfBgNVHSMEGDAW\n"
- "gBQtMwQbJ3+UBHzH4zVP6SWklOG3oTANBgkqhkiG9w0BAQsFAAOCAYEAPjXZC89d\n"
- "2lkc33p5qBTneqXAAZeseBZlSF9Rd798NofXTw0oi235UWCdmPOS4l0z8PBh0ICA\n"
- "MY7iUrv5MJeEcvGOq1NFZObsEP+gcpDi3s1otSif9n3ZSR9gDqG1kAlvwOxDW1As\n"
- "KuGgwE2vRZN3T20USkcSXvtJ3QD+tIroD9z/Auh2H6LsqOMwSwBo9Alzj7DWLk8G\n"
- "mdpQtQU+l/+3pa5MY4MBQM3T3PpK4TdjMVKzKc8lMUeFH/VJSbyQ2kgL7OqavMsH\n"
- "jGrm0JCWi2M188EobKVqt2nhQQA7SIogYe4cqx8Q2/7v6RDXZ11QifFKupQ2vXLb\n"
- "DZxa4j7YQz4F2m7+PbYbSAs1y4/oiJ32O3BjQC7Oa3OaGFpkipUtrozaa1TM4tab\n"
- "kZSyKmSvKG2RxDphl71OZ28tgWjjzJbyG3dbnI3HF1L7YVwHUGFUPhUGuiS7H/b4\n"
- "6Zd8Y0P6Cxn/4rUEZZPDpCVt92cjQsWXL45JXpmqwDlaRdSXXoIB2l2D\n"
- "-----END CERTIFICATE-----\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5NTlaMBIx\n"
- "EDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n"
- "gQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2WLiope/x\n"
- "NL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioVtvPQwEpv\n"
- "uI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR5+wGsJDv\n"
- "kfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJrP+GtLiG0\n"
- "AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj0Sk3Rq93\n"
- "JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1ROsdk4WU\n"
- "ed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH4vysDO9U\n"
- "ZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B48xfmyIF\n"
- "jgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\n"
- "A1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
- "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58oDRy5a0o\n"
- "PvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68kogjKs31\n"
- "QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmTsQOdv/bz\n"
- "R+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT45SGw7c7F\n"
- "cumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2gaygWNiD\n"
- "+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiujgUV0TZH\n"
- "EyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c4FdrCByV\n"
- "haeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1Y1MQ72Sn\n"
- "frzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIERjCCAq6gAwIBAgIMV6MdMjZaLvmhsFpSMA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
+ "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1NjM5WhgPOTk5OTEyMzEyMzU5NTla\n"
+ "MBYxFDASBgNVBAMTC1Rlc3QgY2xpZW50MIIBojANBgkqhkiG9w0BAQEFAAOCAY8A\n"
+ "MIIBigKCAYEA4QAezvLHuNtTlTQSn1vNaYBrZ5+CzS8/tB2L5G+wWy3Yqqqh1kB+\n"
+ "gcWN9Ftqv21B1WgRWtjrn4rTJgxl+ogLiLgLIZ6iG/Ye1POFKxxVYYxPXI7spAYa\n"
+ "CW6/+QjS/18M6NCAHsvhJEMkOY6clIqEqCpLTyaWzJULBBwtpA84pkcLTiNpmfIJ\n"
+ "Wos9OsYH0hSK2xE/5qu+DkkaKrfS2Cyp61wdhURrX1fdlkBUBt9XH8S5A2bWuQEY\n"
+ "82GgXxl8HpehkB2RLgpkZQzxopzhoqG2P8IZFQmtOySzRPWtdpy0RJbvmLfZqaEw\n"
+ "sq3g1jZFXhqUjc5y3vbHta2Xg5/zx0X/FB69j2KZsgUmklYVFG9te7UtSVDgz3U6\n"
+ "9ed16AULxNqAF2LGhuIEI5+4PikXb+QxaOx/hw1BtEqMzLMbNphILSPBRI+NpTZ2\n"
+ "PCSedGsQzxsgns/iaLB7q1AIrKLUQlVpy+JNfauYqzvlMNXwMaoNQZDf9oOoFkdT\n"
+ "P5P8t/gGk2rlAgMBAAGjgZUwgZIwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggr\n"
+ "BgEFBQcDAjAcBgNVHREEFTATgRFoZWxsb0BleGFtcGxlLm9yZzAPBgNVHQ8BAf8E\n"
+ "BQMDB4AAMB0GA1UdDgQWBBRdXorh31ji3Vx07Tm7u9jZMbKBajAfBgNVHSMEGDAW\n"
+ "gBQtMwQbJ3+UBHzH4zVP6SWklOG3oTANBgkqhkiG9w0BAQsFAAOCAYEAPjXZC89d\n"
+ "2lkc33p5qBTneqXAAZeseBZlSF9Rd798NofXTw0oi235UWCdmPOS4l0z8PBh0ICA\n"
+ "MY7iUrv5MJeEcvGOq1NFZObsEP+gcpDi3s1otSif9n3ZSR9gDqG1kAlvwOxDW1As\n"
+ "KuGgwE2vRZN3T20USkcSXvtJ3QD+tIroD9z/Auh2H6LsqOMwSwBo9Alzj7DWLk8G\n"
+ "mdpQtQU+l/+3pa5MY4MBQM3T3PpK4TdjMVKzKc8lMUeFH/VJSbyQ2kgL7OqavMsH\n"
+ "jGrm0JCWi2M188EobKVqt2nhQQA7SIogYe4cqx8Q2/7v6RDXZ11QifFKupQ2vXLb\n"
+ "DZxa4j7YQz4F2m7+PbYbSAs1y4/oiJ32O3BjQC7Oa3OaGFpkipUtrozaa1TM4tab\n"
+ "kZSyKmSvKG2RxDphl71OZ28tgWjjzJbyG3dbnI3HF1L7YVwHUGFUPhUGuiS7H/b4\n"
+ "6Zd8Y0P6Cxn/4rUEZZPDpCVt92cjQsWXL45JXpmqwDlaRdSXXoIB2l2D\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5NTlaMBIx\n"
+ "EDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n"
+ "gQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2WLiope/x\n"
+ "NL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioVtvPQwEpv\n"
+ "uI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR5+wGsJDv\n"
+ "kfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJrP+GtLiG0\n"
+ "AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj0Sk3Rq93\n"
+ "JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1ROsdk4WU\n"
+ "ed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH4vysDO9U\n"
+ "ZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B48xfmyIF\n"
+ "jgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\n"
+ "A1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
+ "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58oDRy5a0o\n"
+ "PvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68kogjKs31\n"
+ "QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmTsQOdv/bz\n"
+ "R+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT45SGw7c7F\n"
+ "cumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2gaygWNiD\n"
+ "+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiujgUV0TZH\n"
+ "EyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c4FdrCByV\n"
+ "haeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1Y1MQ72Sn\n"
+ "frzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
+ "-----END CERTIFICATE-----\n";
static char cli_ca3_key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIG5QIBAAKCAYEA4QAezvLHuNtTlTQSn1vNaYBrZ5+CzS8/tB2L5G+wWy3Yqqqh\n"
- "1kB+gcWN9Ftqv21B1WgRWtjrn4rTJgxl+ogLiLgLIZ6iG/Ye1POFKxxVYYxPXI7s\n"
- "pAYaCW6/+QjS/18M6NCAHsvhJEMkOY6clIqEqCpLTyaWzJULBBwtpA84pkcLTiNp\n"
- "mfIJWos9OsYH0hSK2xE/5qu+DkkaKrfS2Cyp61wdhURrX1fdlkBUBt9XH8S5A2bW\n"
- "uQEY82GgXxl8HpehkB2RLgpkZQzxopzhoqG2P8IZFQmtOySzRPWtdpy0RJbvmLfZ\n"
- "qaEwsq3g1jZFXhqUjc5y3vbHta2Xg5/zx0X/FB69j2KZsgUmklYVFG9te7UtSVDg\n"
- "z3U69ed16AULxNqAF2LGhuIEI5+4PikXb+QxaOx/hw1BtEqMzLMbNphILSPBRI+N\n"
- "pTZ2PCSedGsQzxsgns/iaLB7q1AIrKLUQlVpy+JNfauYqzvlMNXwMaoNQZDf9oOo\n"
- "FkdTP5P8t/gGk2rlAgMBAAECggGBALedC4dC5O3cPodiKVhW6HiSThQQPgQH7Oql\n"
- "ugW/h6HA9jHAcbWQiCyK9V9WQvTYyoLHHHKQ1ygpeEpyj741y4PU/XCALja3UU3j\n"
- "NOeLhbnHcPRNxpvMRu8vrAYkx1uTS8uqawO2yZJ4IFXAJdOqfrtlWHPNP/7QGl9O\n"
- "R4i8yzQWgglQKNtyg2OagWs3NCaikPZZS1aJDN5Hlc0KmkvDlx702zpoLV9vKut0\n"
- "r520ITtRpNI72Dq9xIjJQMCa4Yltnuj1OmeJ2C5tTDL8gF/UwsALy01JOaZ9ekCD\n"
- "bx/q4DBHXo5OOL4aKCVum8FOFrcaHALeWD1F19VVMuQMjLTAApv2eDL6NMORkrpK\n"
- "bEEPfC4mjAtGOzwCkXe+53gXrKxMl+87IPC/FV/YuQRzWGZBCj052ELWqPbzJ9E7\n"
- "QybGnSOw8Unoauz76aF0IMiiMu0u7pSp0LVQ+9SVYHhyTdYJfJPburssA3X4UuOX\n"
- "KNI7gdOkb0yE883jcGQT+B2fdfrygQKBwQDkajgK6lsTChMeriPy++2MPpto64zW\n"
- "2CNMPya5IC23ZFyRXs8UuMbGNTtXd9TXfISXYuGexbPCMXXLA272Bum/wkbf0NBu\n"
- "DUVDYr0D4mIrjNb6NdTtFwHHfWCvQlhuVdS3kL9rSDoGO3mgedRpRpVR4Py+1emi\n"
- "mMYGHN+UMwPzXmlhmvmONr6ObWebH14DdKyohkBuHVO/2HkET69F0zDOhbM+Wd8V\n"
- "hK4PYo2MYV/n4CIf/UbBHjVXx4+EDWGhrNECgcEA/CxWuwr5+RjFGz66o+VM1nt7\n"
- "LZgf1oDZKNlf+x6SlGYYCrk1t6yAtc3VbdkGSPsBHBR0WcpU8sMPMNhn5lU/pMp/\n"
- "ntBx3LphNWJh3FH4jRkJvhQEZZI/TBIbnxp3C5xOCQr1njMk07vpse4xVhYgNcZf\n"
- "9e8V6Ola/1xq+WYjWXVJXBj2cHoF8YZNlPAB38E9gFyU0dUQDjtF4Hfz2EvLniJu\n"
- "p92nsT/jsxvEtUAoGAkNBhzXqhRcTAxuzbHbeNHVAoHBAITqKmJvrT+PBUE9JD4o\n"
- "yzpo1BZhuzrp2uBrfyUKzI+DHzqYaPgt7b05DKcBXCFom99b8t5pPQkrrtfLz63q\n"
- "p+qmKofjAuaHYl6r/kFcYrPk6NQArz6nvKlRFAnoGX1bBMUsvba3+MvXoBb5zdjU\n"
- "8d8LhQengqTTMags9Q1QAmSD896QR9exk4FduIRT5GkuY6pNNQDen/VrCkCv/dYr\n"
- "5qLGul71/RKQepkJSEUABMbxbeofgCSwZ2oE/kZhYwapgQKBwQD2TySj65PAYBZe\n"
- "h0XsQlNsCA6HuVgXv6DdSn16niEUPChtiPxUHHVXnuZCNkHyVOF/mOcQsRWKTUZw\n"
- "MmBB1bCleHlxGS6uJ4o9h4wIlDRPNU6Tz59/ynpzBhjerg3rVE/Qe1jvngrxmVEp\n"
- "T3v3FwN9IvemE1J2PkB4vr9qPP54KZxvDZ7gu/9EKydqO4fJE0nMMCHYVuEo1XJq\n"
- "Tx/pfBc1rXIiGtnpwnrY/l2DoFfJKkYDW3a3lM2WJmqwFXJGr8UCgcArtSJU3ewE\n"
- "62J00pX8HJWvOVPrjKfgJvqUmpjLT4/AXNzEEFqij/L98DZU/b1GKGgdSFt3oIii\n"
- "8Poeaas8GvtlyRZXONXC1TNzC+dzheF3MQ2euvAwulimvcp/rT1/Dw6ID2PWpthE\n"
- "VBpijtoHZ3F2dCYHbYLVlrXC7G4IQ31XUZOujH5xOcZQob815J2+mFsdg/9UBm7c\n"
- "uiyti3689G0RW9DM/F+NeJkoEo0D15JweVkSfDcsVTdvNsbeA1Pzzds=\n"
- "-----END RSA PRIVATE KEY-----\n";
-
-const gnutls_datum_t cli_ca3_key = { (unsigned char*)cli_ca3_key_pem,
- sizeof(cli_ca3_key_pem)-1
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIG5QIBAAKCAYEA4QAezvLHuNtTlTQSn1vNaYBrZ5+CzS8/tB2L5G+wWy3Yqqqh\n"
+ "1kB+gcWN9Ftqv21B1WgRWtjrn4rTJgxl+ogLiLgLIZ6iG/Ye1POFKxxVYYxPXI7s\n"
+ "pAYaCW6/+QjS/18M6NCAHsvhJEMkOY6clIqEqCpLTyaWzJULBBwtpA84pkcLTiNp\n"
+ "mfIJWos9OsYH0hSK2xE/5qu+DkkaKrfS2Cyp61wdhURrX1fdlkBUBt9XH8S5A2bW\n"
+ "uQEY82GgXxl8HpehkB2RLgpkZQzxopzhoqG2P8IZFQmtOySzRPWtdpy0RJbvmLfZ\n"
+ "qaEwsq3g1jZFXhqUjc5y3vbHta2Xg5/zx0X/FB69j2KZsgUmklYVFG9te7UtSVDg\n"
+ "z3U69ed16AULxNqAF2LGhuIEI5+4PikXb+QxaOx/hw1BtEqMzLMbNphILSPBRI+N\n"
+ "pTZ2PCSedGsQzxsgns/iaLB7q1AIrKLUQlVpy+JNfauYqzvlMNXwMaoNQZDf9oOo\n"
+ "FkdTP5P8t/gGk2rlAgMBAAECggGBALedC4dC5O3cPodiKVhW6HiSThQQPgQH7Oql\n"
+ "ugW/h6HA9jHAcbWQiCyK9V9WQvTYyoLHHHKQ1ygpeEpyj741y4PU/XCALja3UU3j\n"
+ "NOeLhbnHcPRNxpvMRu8vrAYkx1uTS8uqawO2yZJ4IFXAJdOqfrtlWHPNP/7QGl9O\n"
+ "R4i8yzQWgglQKNtyg2OagWs3NCaikPZZS1aJDN5Hlc0KmkvDlx702zpoLV9vKut0\n"
+ "r520ITtRpNI72Dq9xIjJQMCa4Yltnuj1OmeJ2C5tTDL8gF/UwsALy01JOaZ9ekCD\n"
+ "bx/q4DBHXo5OOL4aKCVum8FOFrcaHALeWD1F19VVMuQMjLTAApv2eDL6NMORkrpK\n"
+ "bEEPfC4mjAtGOzwCkXe+53gXrKxMl+87IPC/FV/YuQRzWGZBCj052ELWqPbzJ9E7\n"
+ "QybGnSOw8Unoauz76aF0IMiiMu0u7pSp0LVQ+9SVYHhyTdYJfJPburssA3X4UuOX\n"
+ "KNI7gdOkb0yE883jcGQT+B2fdfrygQKBwQDkajgK6lsTChMeriPy++2MPpto64zW\n"
+ "2CNMPya5IC23ZFyRXs8UuMbGNTtXd9TXfISXYuGexbPCMXXLA272Bum/wkbf0NBu\n"
+ "DUVDYr0D4mIrjNb6NdTtFwHHfWCvQlhuVdS3kL9rSDoGO3mgedRpRpVR4Py+1emi\n"
+ "mMYGHN+UMwPzXmlhmvmONr6ObWebH14DdKyohkBuHVO/2HkET69F0zDOhbM+Wd8V\n"
+ "hK4PYo2MYV/n4CIf/UbBHjVXx4+EDWGhrNECgcEA/CxWuwr5+RjFGz66o+VM1nt7\n"
+ "LZgf1oDZKNlf+x6SlGYYCrk1t6yAtc3VbdkGSPsBHBR0WcpU8sMPMNhn5lU/pMp/\n"
+ "ntBx3LphNWJh3FH4jRkJvhQEZZI/TBIbnxp3C5xOCQr1njMk07vpse4xVhYgNcZf\n"
+ "9e8V6Ola/1xq+WYjWXVJXBj2cHoF8YZNlPAB38E9gFyU0dUQDjtF4Hfz2EvLniJu\n"
+ "p92nsT/jsxvEtUAoGAkNBhzXqhRcTAxuzbHbeNHVAoHBAITqKmJvrT+PBUE9JD4o\n"
+ "yzpo1BZhuzrp2uBrfyUKzI+DHzqYaPgt7b05DKcBXCFom99b8t5pPQkrrtfLz63q\n"
+ "p+qmKofjAuaHYl6r/kFcYrPk6NQArz6nvKlRFAnoGX1bBMUsvba3+MvXoBb5zdjU\n"
+ "8d8LhQengqTTMags9Q1QAmSD896QR9exk4FduIRT5GkuY6pNNQDen/VrCkCv/dYr\n"
+ "5qLGul71/RKQepkJSEUABMbxbeofgCSwZ2oE/kZhYwapgQKBwQD2TySj65PAYBZe\n"
+ "h0XsQlNsCA6HuVgXv6DdSn16niEUPChtiPxUHHVXnuZCNkHyVOF/mOcQsRWKTUZw\n"
+ "MmBB1bCleHlxGS6uJ4o9h4wIlDRPNU6Tz59/ynpzBhjerg3rVE/Qe1jvngrxmVEp\n"
+ "T3v3FwN9IvemE1J2PkB4vr9qPP54KZxvDZ7gu/9EKydqO4fJE0nMMCHYVuEo1XJq\n"
+ "Tx/pfBc1rXIiGtnpwnrY/l2DoFfJKkYDW3a3lM2WJmqwFXJGr8UCgcArtSJU3ewE\n"
+ "62J00pX8HJWvOVPrjKfgJvqUmpjLT4/AXNzEEFqij/L98DZU/b1GKGgdSFt3oIii\n"
+ "8Poeaas8GvtlyRZXONXC1TNzC+dzheF3MQ2euvAwulimvcp/rT1/Dw6ID2PWpthE\n"
+ "VBpijtoHZ3F2dCYHbYLVlrXC7G4IQ31XUZOujH5xOcZQob815J2+mFsdg/9UBm7c\n"
+ "uiyti3689G0RW9DM/F+NeJkoEo0D15JweVkSfDcsVTdvNsbeA1Pzzds=\n"
+ "-----END RSA PRIVATE KEY-----\n";
+
+const gnutls_datum_t cli_ca3_key = { (unsigned char *)cli_ca3_key_pem,
+ sizeof(cli_ca3_key_pem) - 1
};
-const gnutls_datum_t cli_ca3_cert = { (unsigned char*)cli_ca3_cert_pem,
- sizeof(cli_ca3_cert_pem)-1
+const gnutls_datum_t cli_ca3_cert = { (unsigned char *)cli_ca3_cert_pem,
+ sizeof(cli_ca3_cert_pem) - 1
};
-const gnutls_datum_t cli_ca3_cert_chain = { (unsigned char*)cli_ca3_cert_chain_pem,
- sizeof(cli_ca3_cert_chain_pem)-1
+const gnutls_datum_t cli_ca3_cert_chain =
+ { (unsigned char *)cli_ca3_cert_chain_pem,
+ sizeof(cli_ca3_cert_chain_pem) - 1
};
static char clidsa_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEMzCCApugAwIBAgIIV+OL0jeIUYkwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNjA5MjIwNzQ0MjBaGA85OTk5MTIzMTIzNTk1OVowFTETMBEG\n"
- "A1UEAxMKRFNBIGNsaWVudDCCAbcwggErBgcqhkjOOAQBMIIBHgKBgQD6BQw6J3GB\n"
- "Lv8xjTjq6flgCLUYf9wNQO1osjl8F3mP3P0ggZd101pwDG34Kdffby+PTB5rpe8Z\n"
- "SUx83ozzCiCcxf+kM4B0B0JP7mlqLrdTyPbWTap8sCMtabKnuR7UWdhsB8WU2Ct9\n"
- "/IcCEG2dYcmzzWXE6/Pdo45iCd7lv+fl/wIVAM8gQzNh7394wHpNStxbGq9Xe+7z\n"
- "AoGAJuUzfmL64dwFgQDmow8BjA5jI4mPiXc9+HDlUG0xXT65tUqHyg5fTSVm8p+q\n"
- "WaklZeWTvuDc7KYofGZolG3LxhBKvIXHiUrD5hJ/cE/qcx89oczD7mChHG8k4a+Y\n"
- "sr9/gXMFp8/TUsiTXrPLvEedBiAL9isDGC+ibRswfFYqGKYDgYUAAoGBAOFzLEe4\n"
- "9nHYysKSgx6o7LadjsWAcLLHvI4EcmRZf7cHW/S/FCHgpnMn7GvnD4xiaysDFA8A\n"
- "XEh9QJutRiLcpp14bVkPd0E+1z3v3LDhwVaJ1DofWEMnAsGoRVkAuEBkND6aNoKI\n"
- "AuUMvFlnpU8SD5SZrUQkP22jyMj+mxsJntK9o3YwdDAMBgNVHRMBAf8EAjAAMBMG\n"
- "A1UdJQQMMAoGCCsGAQUFBwMCMA8GA1UdDwEB/wQFAwMHgAAwHQYDVR0OBBYEFCnQ\n"
- "ScP7Ao3G+SjKY0a5DEmNF5X+MB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv\n"
- "8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQArAfKJgKd6Sz7BW0m46T4DxXWsrlYVc76M\n"
- "metxnSBDZdWzRbP6dGXGkKH1J2Oftv3kVrRL8amDz7DLRE6pBAUDx+5Es/dheTNA\n"
- "juIVZuKzSYoRPtuiO1gHvRPvyV/2HUpnLl+w2qW/Df4ZWlHz6ujuYFzhdWueon+t\n"
- "7/JtabcuBxK6gFyNs+A0fHjszpWtZxUXuik1t4y9IcEV6Ig+vWk+GNwVAs5lQenv\n"
- "7IhIg1EWxBNiRF3yKINAiyFkM4FcFEPqlbijX9xDorCK2Xn4HLIN2oUQJFYDqVOV\n"
- "KGg0rMmeJ8rRZI0ELK89SdPyALe4HQzKnQtzxy45oq+Vv7A8B0lorTMPIq3WKxo4\n"
- "mXJdEF2aYxeUsMYBDZOOslBc8UMaUAF8ncrk6eNqJoDZCxElfgDXx4CfM8Lh0V2c\n"
- "MDBXeiNUf1HWcCkvnMPGLXZXez/5abnhNIFqDsmRxuhUqlTbarq3CxjAWMjQRb9c\n"
- "SWUGHPlOkmEGRv5JB6djjpRFRwtHLNc=\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEMzCCApugAwIBAgIIV+OL0jeIUYkwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNjA5MjIwNzQ0MjBaGA85OTk5MTIzMTIzNTk1OVowFTETMBEG\n"
+ "A1UEAxMKRFNBIGNsaWVudDCCAbcwggErBgcqhkjOOAQBMIIBHgKBgQD6BQw6J3GB\n"
+ "Lv8xjTjq6flgCLUYf9wNQO1osjl8F3mP3P0ggZd101pwDG34Kdffby+PTB5rpe8Z\n"
+ "SUx83ozzCiCcxf+kM4B0B0JP7mlqLrdTyPbWTap8sCMtabKnuR7UWdhsB8WU2Ct9\n"
+ "/IcCEG2dYcmzzWXE6/Pdo45iCd7lv+fl/wIVAM8gQzNh7394wHpNStxbGq9Xe+7z\n"
+ "AoGAJuUzfmL64dwFgQDmow8BjA5jI4mPiXc9+HDlUG0xXT65tUqHyg5fTSVm8p+q\n"
+ "WaklZeWTvuDc7KYofGZolG3LxhBKvIXHiUrD5hJ/cE/qcx89oczD7mChHG8k4a+Y\n"
+ "sr9/gXMFp8/TUsiTXrPLvEedBiAL9isDGC+ibRswfFYqGKYDgYUAAoGBAOFzLEe4\n"
+ "9nHYysKSgx6o7LadjsWAcLLHvI4EcmRZf7cHW/S/FCHgpnMn7GvnD4xiaysDFA8A\n"
+ "XEh9QJutRiLcpp14bVkPd0E+1z3v3LDhwVaJ1DofWEMnAsGoRVkAuEBkND6aNoKI\n"
+ "AuUMvFlnpU8SD5SZrUQkP22jyMj+mxsJntK9o3YwdDAMBgNVHRMBAf8EAjAAMBMG\n"
+ "A1UdJQQMMAoGCCsGAQUFBwMCMA8GA1UdDwEB/wQFAwMHgAAwHQYDVR0OBBYEFCnQ\n"
+ "ScP7Ao3G+SjKY0a5DEmNF5X+MB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv\n"
+ "8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQArAfKJgKd6Sz7BW0m46T4DxXWsrlYVc76M\n"
+ "metxnSBDZdWzRbP6dGXGkKH1J2Oftv3kVrRL8amDz7DLRE6pBAUDx+5Es/dheTNA\n"
+ "juIVZuKzSYoRPtuiO1gHvRPvyV/2HUpnLl+w2qW/Df4ZWlHz6ujuYFzhdWueon+t\n"
+ "7/JtabcuBxK6gFyNs+A0fHjszpWtZxUXuik1t4y9IcEV6Ig+vWk+GNwVAs5lQenv\n"
+ "7IhIg1EWxBNiRF3yKINAiyFkM4FcFEPqlbijX9xDorCK2Xn4HLIN2oUQJFYDqVOV\n"
+ "KGg0rMmeJ8rRZI0ELK89SdPyALe4HQzKnQtzxy45oq+Vv7A8B0lorTMPIq3WKxo4\n"
+ "mXJdEF2aYxeUsMYBDZOOslBc8UMaUAF8ncrk6eNqJoDZCxElfgDXx4CfM8Lh0V2c\n"
+ "MDBXeiNUf1HWcCkvnMPGLXZXez/5abnhNIFqDsmRxuhUqlTbarq3CxjAWMjQRb9c\n"
+ "SWUGHPlOkmEGRv5JB6djjpRFRwtHLNc=\n" "-----END CERTIFICATE-----\n";
static char clidsa_ca3_key_pem[] =
- "-----BEGIN DSA PRIVATE KEY-----\n"
- "MIIBuwIBAAKBgQD6BQw6J3GBLv8xjTjq6flgCLUYf9wNQO1osjl8F3mP3P0ggZd1\n"
- "01pwDG34Kdffby+PTB5rpe8ZSUx83ozzCiCcxf+kM4B0B0JP7mlqLrdTyPbWTap8\n"
- "sCMtabKnuR7UWdhsB8WU2Ct9/IcCEG2dYcmzzWXE6/Pdo45iCd7lv+fl/wIVAM8g\n"
- "QzNh7394wHpNStxbGq9Xe+7zAoGAJuUzfmL64dwFgQDmow8BjA5jI4mPiXc9+HDl\n"
- "UG0xXT65tUqHyg5fTSVm8p+qWaklZeWTvuDc7KYofGZolG3LxhBKvIXHiUrD5hJ/\n"
- "cE/qcx89oczD7mChHG8k4a+Ysr9/gXMFp8/TUsiTXrPLvEedBiAL9isDGC+ibRsw\n"
- "fFYqGKYCgYEA4XMsR7j2cdjKwpKDHqjstp2OxYBwsse8jgRyZFl/twdb9L8UIeCm\n"
- "cyfsa+cPjGJrKwMUDwBcSH1Am61GItymnXhtWQ93QT7XPe/csOHBVonUOh9YQycC\n"
- "wahFWQC4QGQ0Ppo2gogC5Qy8WWelTxIPlJmtRCQ/baPIyP6bGwme0r0CFDUW6VNf\n"
- "FgAdB5hhtag7oTw45a72\n"
- "-----END DSA PRIVATE KEY-----\n";
-
-const gnutls_datum_t clidsa_ca3_key = { (unsigned char*)clidsa_ca3_key_pem,
- sizeof(clidsa_ca3_key_pem)-1
+ "-----BEGIN DSA PRIVATE KEY-----\n"
+ "MIIBuwIBAAKBgQD6BQw6J3GBLv8xjTjq6flgCLUYf9wNQO1osjl8F3mP3P0ggZd1\n"
+ "01pwDG34Kdffby+PTB5rpe8ZSUx83ozzCiCcxf+kM4B0B0JP7mlqLrdTyPbWTap8\n"
+ "sCMtabKnuR7UWdhsB8WU2Ct9/IcCEG2dYcmzzWXE6/Pdo45iCd7lv+fl/wIVAM8g\n"
+ "QzNh7394wHpNStxbGq9Xe+7zAoGAJuUzfmL64dwFgQDmow8BjA5jI4mPiXc9+HDl\n"
+ "UG0xXT65tUqHyg5fTSVm8p+qWaklZeWTvuDc7KYofGZolG3LxhBKvIXHiUrD5hJ/\n"
+ "cE/qcx89oczD7mChHG8k4a+Ysr9/gXMFp8/TUsiTXrPLvEedBiAL9isDGC+ibRsw\n"
+ "fFYqGKYCgYEA4XMsR7j2cdjKwpKDHqjstp2OxYBwsse8jgRyZFl/twdb9L8UIeCm\n"
+ "cyfsa+cPjGJrKwMUDwBcSH1Am61GItymnXhtWQ93QT7XPe/csOHBVonUOh9YQycC\n"
+ "wahFWQC4QGQ0Ppo2gogC5Qy8WWelTxIPlJmtRCQ/baPIyP6bGwme0r0CFDUW6VNf\n"
+ "FgAdB5hhtag7oTw45a72\n" "-----END DSA PRIVATE KEY-----\n";
+
+const gnutls_datum_t clidsa_ca3_key = { (unsigned char *)clidsa_ca3_key_pem,
+ sizeof(clidsa_ca3_key_pem) - 1
};
-const gnutls_datum_t clidsa_ca3_cert = { (unsigned char*)clidsa_ca3_cert_pem,
- sizeof(clidsa_ca3_cert_pem)-1
+const gnutls_datum_t clidsa_ca3_cert = { (unsigned char *)clidsa_ca3_cert_pem,
+ sizeof(clidsa_ca3_cert_pem) - 1
};
static char cligost01_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIC4zCCAUugAwIBAgIIWcZXXAz6FbgwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNzA5MjMxMjQ1MTdaGA85OTk5MTIzMTIzNTk1OVowGzEZMBcG\n"
- "A1UEAxMQR09TVC0yMDAxIGNsaWVudDBjMBwGBiqFAwICEzASBgcqhQMCAiQABgcq\n"
- "hQMCAh4BA0MABEBuvOEDe9xPJY9jsnFckLyQ6B5XeDi4Wo2E4c05im/3iI+rlWGI\n"
- "rTc6hMmWca0BVDL0lObZ0ZHb4Vhy0XREgvtro3YwdDAMBgNVHRMBAf8EAjAAMBMG\n"
- "A1UdJQQMMAoGCCsGAQUFBwMCMA8GA1UdDwEB/wQFAwMHsAAwHQYDVR0OBBYEFCck\n"
- "yCTDt+A6zS8SnMRrgbyjeQmoMB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv\n"
- "8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQACkq/DQhHMEZPL0NwPFpnf2+RDviEuRE+C\n"
- "xaOMTbHgxIUSy6xQAaHXK5hNr9xk87OFPPXmNKPl1nVBXrDF0aj+YUVBT2QeJIpA\n"
- "APfyjnPtdZpRl3MXrJbQ/VBCdShvmKhspiOkGO6K8ETDeqE57qtPsUaGApfNK7oL\n"
- "WgevmnkaQqNTVJglOoB5o5IDNv0JuFEkKSEvCgS25OV+gl0rRHmWDaIdQtDJLQjV\n"
- "24b99/woYj0Ql8WfvMUUUYqTX03zmV56k5DgoNusTxKG+r71WQwbeb3XiVjof6I7\n"
- "ll3ANTdyf/KrysLx/tk1pNgfangArpAZzbCRejTQVYdVfCf3KDdwXvKlTHy9Jv+p\n"
- "ZUSf7kMnBqcUHpbceiyHFCXNAKIdrMDkTJAeee7ktpeYMfdO9oBki+6a8RJjNHIr\n"
- "wHe0DcExV7UsokG6jMl8kH7gb7EW0UphL3ncWyY8C4jbtf/q1kci6SZDcapXBpGp\n"
- "adJdx9bycdOUm1cGiboUMMPiCA5bO+Q=\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4zCCAUugAwIBAgIIWcZXXAz6FbgwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNzA5MjMxMjQ1MTdaGA85OTk5MTIzMTIzNTk1OVowGzEZMBcG\n"
+ "A1UEAxMQR09TVC0yMDAxIGNsaWVudDBjMBwGBiqFAwICEzASBgcqhQMCAiQABgcq\n"
+ "hQMCAh4BA0MABEBuvOEDe9xPJY9jsnFckLyQ6B5XeDi4Wo2E4c05im/3iI+rlWGI\n"
+ "rTc6hMmWca0BVDL0lObZ0ZHb4Vhy0XREgvtro3YwdDAMBgNVHRMBAf8EAjAAMBMG\n"
+ "A1UdJQQMMAoGCCsGAQUFBwMCMA8GA1UdDwEB/wQFAwMHsAAwHQYDVR0OBBYEFCck\n"
+ "yCTDt+A6zS8SnMRrgbyjeQmoMB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv\n"
+ "8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQACkq/DQhHMEZPL0NwPFpnf2+RDviEuRE+C\n"
+ "xaOMTbHgxIUSy6xQAaHXK5hNr9xk87OFPPXmNKPl1nVBXrDF0aj+YUVBT2QeJIpA\n"
+ "APfyjnPtdZpRl3MXrJbQ/VBCdShvmKhspiOkGO6K8ETDeqE57qtPsUaGApfNK7oL\n"
+ "WgevmnkaQqNTVJglOoB5o5IDNv0JuFEkKSEvCgS25OV+gl0rRHmWDaIdQtDJLQjV\n"
+ "24b99/woYj0Ql8WfvMUUUYqTX03zmV56k5DgoNusTxKG+r71WQwbeb3XiVjof6I7\n"
+ "ll3ANTdyf/KrysLx/tk1pNgfangArpAZzbCRejTQVYdVfCf3KDdwXvKlTHy9Jv+p\n"
+ "ZUSf7kMnBqcUHpbceiyHFCXNAKIdrMDkTJAeee7ktpeYMfdO9oBki+6a8RJjNHIr\n"
+ "wHe0DcExV7UsokG6jMl8kH7gb7EW0UphL3ncWyY8C4jbtf/q1kci6SZDcapXBpGp\n"
+ "adJdx9bycdOUm1cGiboUMMPiCA5bO+Q=\n" "-----END CERTIFICATE-----\n";
static char cligost01_ca3_key_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEUCAQAwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEEIgQgVPdBJeLrp/Zh\n"
- "2tiV6qz9N6HraKTFTKz4alNuGhK2iLM=\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MEUCAQAwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEEIgQgVPdBJeLrp/Zh\n"
+ "2tiV6qz9N6HraKTFTKz4alNuGhK2iLM=\n" "-----END PRIVATE KEY-----\n";
-const gnutls_datum_t cligost01_ca3_key = { (unsigned char*)cligost01_ca3_key_pem,
- sizeof(cligost01_ca3_key_pem)-1
+const gnutls_datum_t cligost01_ca3_key =
+ { (unsigned char *)cligost01_ca3_key_pem,
+ sizeof(cligost01_ca3_key_pem) - 1
};
-const gnutls_datum_t cligost01_ca3_cert = { (unsigned char*)cligost01_ca3_cert_pem,
- sizeof(cligost01_ca3_cert_pem)-1
+const gnutls_datum_t cligost01_ca3_cert =
+ { (unsigned char *)cligost01_ca3_cert_pem,
+ sizeof(cligost01_ca3_cert_pem) - 1
};
static char cligost12_256_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIC6jCCAVKgAwIBAgIIWcalgS6c0DMwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNzA5MjMxODE4NDJaGA85OTk5MTIzMTIzNTk1OVowHzEdMBsG\n"
- "A1UEAxMUR09TVCAyMDEyLzI1NiBjbGllbnQwZjAfBggqhQMHAQEBATATBgcqhQMC\n"
- "AiQABggqhQMHAQECAgNDAARArjme5Fb62BC4uPT8vQVim3xTjYY/RVvvUtAfYluY\n"
- "o+8Zjz8A8VTFejK0Zok5f1dssbzrrHtRODJZsCuAjypIXqN2MHQwDAYDVR0TAQH/\n"
- "BAIwADATBgNVHSUEDDAKBggrBgEFBQcDAjAPBgNVHQ8BAf8EBQMDB7AAMB0GA1Ud\n"
- "DgQWBBTzHDVZRnSgaq4M3B7NdLResyKgajAfBgNVHSMEGDAWgBT5qIYZY7akFBNg\n"
- "dg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAtAGi0lQdBC9Mp/TdqYFuMIDr\n"
- "o/xGbie6Eq33BiqXo6B5DOiPZcE1Mi+y4htefvrEBkN4OLy4PbUHlfEC/ATs3X9S\n"
- "cUHucm6gkyzUxTLPYPfTmXD24MRFDAJQKMvX8Pklbi7HyFZVYIQaJfEohaQZmuYR\n"
- "S7Z03MW0Cbz6j7LGQl1Pyix78BLKeyLyAzQz63+hCuO46xp7TaGDKGI79Dd6Od0p\n"
- "oY/B/MxfuP3RXhHrpjgp+Ev08dYoCH3Snps+TYWSyhkN0VhGRJgE5Tnhdly8XMW3\n"
- "WKZqGYmWG+rBtiTgA6FZrw0qYwAsmN3yCo5pE+Ukd0Q5L0tugc0a9HK53AftG/zV\n"
- "qf0DI+E4dEnUkVhdEQbW+rujGpAR0sgjgar5Zvwuu92BaV+AFucj7hVP1fqDySmp\n"
- "E52EzrFcnCYrZb19aDJKgWevG5Vh6OEcu8Vx/zVFOoTx9ZCXniVLm7PaXyKXdhLv\n"
- "Vhg3mi7koFAPGlTiKldJ/LKKPW0yti3I8L/p2F5+\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC6jCCAVKgAwIBAgIIWcalgS6c0DMwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNzA5MjMxODE4NDJaGA85OTk5MTIzMTIzNTk1OVowHzEdMBsG\n"
+ "A1UEAxMUR09TVCAyMDEyLzI1NiBjbGllbnQwZjAfBggqhQMHAQEBATATBgcqhQMC\n"
+ "AiQABggqhQMHAQECAgNDAARArjme5Fb62BC4uPT8vQVim3xTjYY/RVvvUtAfYluY\n"
+ "o+8Zjz8A8VTFejK0Zok5f1dssbzrrHtRODJZsCuAjypIXqN2MHQwDAYDVR0TAQH/\n"
+ "BAIwADATBgNVHSUEDDAKBggrBgEFBQcDAjAPBgNVHQ8BAf8EBQMDB7AAMB0GA1Ud\n"
+ "DgQWBBTzHDVZRnSgaq4M3B7NdLResyKgajAfBgNVHSMEGDAWgBT5qIYZY7akFBNg\n"
+ "dg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAtAGi0lQdBC9Mp/TdqYFuMIDr\n"
+ "o/xGbie6Eq33BiqXo6B5DOiPZcE1Mi+y4htefvrEBkN4OLy4PbUHlfEC/ATs3X9S\n"
+ "cUHucm6gkyzUxTLPYPfTmXD24MRFDAJQKMvX8Pklbi7HyFZVYIQaJfEohaQZmuYR\n"
+ "S7Z03MW0Cbz6j7LGQl1Pyix78BLKeyLyAzQz63+hCuO46xp7TaGDKGI79Dd6Od0p\n"
+ "oY/B/MxfuP3RXhHrpjgp+Ev08dYoCH3Snps+TYWSyhkN0VhGRJgE5Tnhdly8XMW3\n"
+ "WKZqGYmWG+rBtiTgA6FZrw0qYwAsmN3yCo5pE+Ukd0Q5L0tugc0a9HK53AftG/zV\n"
+ "qf0DI+E4dEnUkVhdEQbW+rujGpAR0sgjgar5Zvwuu92BaV+AFucj7hVP1fqDySmp\n"
+ "E52EzrFcnCYrZb19aDJKgWevG5Vh6OEcu8Vx/zVFOoTx9ZCXniVLm7PaXyKXdhLv\n"
+ "Vhg3mi7koFAPGlTiKldJ/LKKPW0yti3I8L/p2F5+\n" "-----END CERTIFICATE-----\n";
static char cligost12_256_ca3_key_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIkAAYIKoUDBwEBAgIEIgQgnA1XIfe2\n"
- "V3D0UVFQTRCHolA9v+r5cDt2tlr1gTZbDC8=\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIkAAYIKoUDBwEBAgIEIgQgnA1XIfe2\n"
+ "V3D0UVFQTRCHolA9v+r5cDt2tlr1gTZbDC8=\n" "-----END PRIVATE KEY-----\n";
-const gnutls_datum_t cligost12_256_ca3_key = { (unsigned char*)cligost12_256_ca3_key_pem,
- sizeof(cligost12_256_ca3_key_pem)-1
+const gnutls_datum_t cligost12_256_ca3_key =
+ { (unsigned char *)cligost12_256_ca3_key_pem,
+ sizeof(cligost12_256_ca3_key_pem) - 1
};
-const gnutls_datum_t cligost12_256_ca3_cert = { (unsigned char*)cligost12_256_ca3_cert_pem,
- sizeof(cligost12_256_ca3_cert_pem)-1
+const gnutls_datum_t cligost12_256_ca3_cert =
+ { (unsigned char *)cligost12_256_ca3_cert_pem,
+ sizeof(cligost12_256_ca3_cert_pem) - 1
};
static char cligost12_512_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDLzCCAZegAwIBAgIIWcalYA16syEwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNzA5MjMxODE4MDhaGA85OTk5MTIzMTIzNTk1OVowHzEdMBsG\n"
- "A1UEAxMUR09TVCAyMDEyLzUxMiBjbGllbnQwgaowIQYIKoUDBwEBAQIwFQYJKoUD\n"
- "BwECAQIBBggqhQMHAQECAwOBhAAEgYCyAdmv9viBTnemLvULAZ9RyaEf37ZAydKj\n"
- "E3qLbZ5tTxgLAYhIIGApVPVb5SZxge3u2qY/ekkHjz9Asn5cPQ69wCvce87+2u1f\n"
- "XcATUzYvR3UIL25C5BbNjDjGnufhjYAwT6uZ5xQ7j8/Wfr0MZU04O2CSUquKqfrB\n"
- "DA81M2HvUqN2MHQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDAjAP\n"
- "BgNVHQ8BAf8EBQMDB7AAMB0GA1UdDgQWBBRYXgWHcQazcPFyxKrgRdfd2IPBozAf\n"
- "BgNVHSMEGDAWgBT5qIYZY7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOC\n"
- "AYEAUOpvomUtaFQm5O8bEQk/d3ghZLzwfMKRngSq0XbXDi8t+TV+kFvkzJ/hrAOP\n"
- "/HPCQdnEvdV2HyZzDb9b8cVegRHPPooKSV8+HCTNVXNKZPRSlE42S5kFIAnAxbs5\n"
- "vzGfipp6jQe9dqlCYseikxnE31o3AX7QAlNBaXELu0JnEY5BoJeKoja8XS40b1k9\n"
- "kKRwAGkdh1OcAy6pW8AH4m61RMDWFzmPGgcb0JiDNp+9HQDSkG904niU8AlvmoQD\n"
- "Q2AVd9mam4NIjmA0hkVuSh+7Tn2XnoGoGxN/+u72qaSUA6ybkbtkIKpMeJ8vciI1\n"
- "6GRhBYpI0OuRiAIbDA9WhfCCKwj9ZaIsSSHC7qADRz3bR/89Et1mM40v5jbYNDkV\n"
- "1cvlca3+pK3DxNP7y/q3QoUz8++z9VXzsdVHc4wNUyg4E8mjMcdLlRsZbST0WjX+\n"
- "IhxAkfOexMu3nJ3EVbjgvox6eIxjiTWr2DP6x666UztrnFSBhhypwKHb8jW7PYJ2\n"
- "lWlI\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDLzCCAZegAwIBAgIIWcalYA16syEwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNzA5MjMxODE4MDhaGA85OTk5MTIzMTIzNTk1OVowHzEdMBsG\n"
+ "A1UEAxMUR09TVCAyMDEyLzUxMiBjbGllbnQwgaowIQYIKoUDBwEBAQIwFQYJKoUD\n"
+ "BwECAQIBBggqhQMHAQECAwOBhAAEgYCyAdmv9viBTnemLvULAZ9RyaEf37ZAydKj\n"
+ "E3qLbZ5tTxgLAYhIIGApVPVb5SZxge3u2qY/ekkHjz9Asn5cPQ69wCvce87+2u1f\n"
+ "XcATUzYvR3UIL25C5BbNjDjGnufhjYAwT6uZ5xQ7j8/Wfr0MZU04O2CSUquKqfrB\n"
+ "DA81M2HvUqN2MHQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcDAjAP\n"
+ "BgNVHQ8BAf8EBQMDB7AAMB0GA1UdDgQWBBRYXgWHcQazcPFyxKrgRdfd2IPBozAf\n"
+ "BgNVHSMEGDAWgBT5qIYZY7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOC\n"
+ "AYEAUOpvomUtaFQm5O8bEQk/d3ghZLzwfMKRngSq0XbXDi8t+TV+kFvkzJ/hrAOP\n"
+ "/HPCQdnEvdV2HyZzDb9b8cVegRHPPooKSV8+HCTNVXNKZPRSlE42S5kFIAnAxbs5\n"
+ "vzGfipp6jQe9dqlCYseikxnE31o3AX7QAlNBaXELu0JnEY5BoJeKoja8XS40b1k9\n"
+ "kKRwAGkdh1OcAy6pW8AH4m61RMDWFzmPGgcb0JiDNp+9HQDSkG904niU8AlvmoQD\n"
+ "Q2AVd9mam4NIjmA0hkVuSh+7Tn2XnoGoGxN/+u72qaSUA6ybkbtkIKpMeJ8vciI1\n"
+ "6GRhBYpI0OuRiAIbDA9WhfCCKwj9ZaIsSSHC7qADRz3bR/89Et1mM40v5jbYNDkV\n"
+ "1cvlca3+pK3DxNP7y/q3QoUz8++z9VXzsdVHc4wNUyg4E8mjMcdLlRsZbST0WjX+\n"
+ "IhxAkfOexMu3nJ3EVbjgvox6eIxjiTWr2DP6x666UztrnFSBhhypwKHb8jW7PYJ2\n"
+ "lWlI\n" "-----END CERTIFICATE-----\n";
static char cligost12_512_ca3_key_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MGoCAQAwIQYIKoUDBwEBAQIwFQYJKoUDBwECAQIBBggqhQMHAQECAwRCBEA9uga7\n"
- "LIPp1heDZYj5EozNtbrmsKYMXrFasBIVAFFVQVFd6/+YjttV6Vmx16OFWrM+/ydX\n"
- "rB0aUqYPU8w5DUyk\n"
- "-----END PRIVATE KEY-----\n";
-
-const gnutls_datum_t cligost12_512_ca3_key = { (unsigned char*)cligost12_512_ca3_key_pem,
- sizeof(cligost12_512_ca3_key_pem)-1
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MGoCAQAwIQYIKoUDBwEBAQIwFQYJKoUDBwECAQIBBggqhQMHAQECAwRCBEA9uga7\n"
+ "LIPp1heDZYj5EozNtbrmsKYMXrFasBIVAFFVQVFd6/+YjttV6Vmx16OFWrM+/ydX\n"
+ "rB0aUqYPU8w5DUyk\n" "-----END PRIVATE KEY-----\n";
+
+const gnutls_datum_t cligost12_512_ca3_key =
+ { (unsigned char *)cligost12_512_ca3_key_pem,
+ sizeof(cligost12_512_ca3_key_pem) - 1
};
-const gnutls_datum_t cligost12_512_ca3_cert = { (unsigned char*)cligost12_512_ca3_cert_pem,
- sizeof(cligost12_512_ca3_cert_pem)-1
+const gnutls_datum_t cligost12_512_ca3_cert =
+ { (unsigned char *)cligost12_512_ca3_cert_pem,
+ sizeof(cligost12_512_ca3_cert_pem) - 1
};
static char server_ca3_ecc_key_pem[] =
- "-----BEGIN EC PRIVATE KEY-----\n"
- "MHgCAQEEIQDn1XFX7QxTKXl2ekfSrEARsq+06ySEeeOB+N0igwcNLqAKBggqhkjO\n"
- "PQMBB6FEA0IABG1J5VZy+PMTNJSuog4R3KmhbmIejOZZgPNtxkJcIubJIIO68kkd\n"
- "GK04pl/ReivZAwibv+85lpT4sm/9RBVhLZM=\n"
- "-----END EC PRIVATE KEY-----\n";
-
-const gnutls_datum_t server_ca3_ecc_key = { (unsigned char*)server_ca3_ecc_key_pem,
- sizeof(server_ca3_ecc_key_pem)-1
+ "-----BEGIN EC PRIVATE KEY-----\n"
+ "MHgCAQEEIQDn1XFX7QxTKXl2ekfSrEARsq+06ySEeeOB+N0igwcNLqAKBggqhkjO\n"
+ "PQMBB6FEA0IABG1J5VZy+PMTNJSuog4R3KmhbmIejOZZgPNtxkJcIubJIIO68kkd\n"
+ "GK04pl/ReivZAwibv+85lpT4sm/9RBVhLZM=\n" "-----END EC PRIVATE KEY-----\n";
+
+const gnutls_datum_t server_ca3_ecc_key =
+ { (unsigned char *)server_ca3_ecc_key_pem,
+ sizeof(server_ca3_ecc_key_pem) - 1
};
static char server_ca3_key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIG5AIBAAKCAYEA2T14maos98C7s/geGZybgqYSxF+5NeTXKWpi9/vXmuIF8n3h\n"
- "Uh20mooT2rgVHAzFWy/8H5IcWIiUQl+8KhyJCSuBJ+WhM0gw2uqSPwiOZUm4l3TQ\n"
- "xmxS4eW/Brr4X88svJQ4xTTct2m5H1Nu9LZ8xWOZpGMGII7jf0YD6odG/DHE/sVH\n"
- "jfceD7kl15jAta97+8uCbjMRPGcxg4VtmkCuSLOkGL9FhC0uYVbwfBnT+V0MEycO\n"
- "Bx+Yv2BEu0xDVdkQcs0WPIRUPUmyuWBxxqLM1SSJSLsZub/DdiINXFure7dx57mW\n"
- "w2EQwhETIhIoAc/LxGWchbDC4OWeyYjSkhv3/hEfQswyVx4MQXLVfRBHNipkU9T/\n"
- "SXiP8WVDpfZSpY3PrfJtFJtwLMeXblpuLXGZuxXnJ2iYk1w/7RBuuKkylrQ7qCO/\n"
- "l/TIx3uZb39oCCU9wqCltuEZ+jtX3PaAgp1QItFehSzOF2hudF/TQuuukVRBZF4o\n"
- "fExwNYAvZvTSTKw9AgMBAAECggGAel8TMVRYMlOCKJWqtvit7QGJ7s6RMRewUCca\n"
- "iuB1ikyp1vgr1argEnGXT4yEb6GOBpjYKByRFRoSkfUFtJ8QXncAMS48CPwwcRDT\n"
- "wugZ9lp5ve9Sr4NTiOZ3Hd5yjN3SMIQ6GnR1pGfMnSXNidHGJRa+9IfHas2yvv38\n"
- "tL7xMJ0EgBM3BHRgnbDI7VKhs3afm63+0f64RdNHY/PkUpD+2/s9g6czDIq65qAn\n"
- "pXCTJJPSenN0hnS5AYzECtGh2JkFjXpF5B7/2pvZjqsy8eyjZURoQFLA5wWhLVr5\n"
- "AQDJzeK//D6OMAd6kuLKezQxVIN0F0eC6XKEhEvq96xegQk3aMXk2jCHz6IYV6pm\n"
- "zdnfIvP5fIP1HsL8JPiCQqBp7/MoSKlz/DCHH/6iQgQkIhxw/nYJd1+kjhHpm969\n"
- "fw6WzzCA7om0CbKhuHjRnnwk1OylqKhTrgfO1mcaEoH90NIszE3j5pwqiPMdv+J0\n"
- "k25pjaMDgeOd3bO8SW/oWQEH5LbBAoHBAP7QAaYg4Fsm0zr1Jvup6MsJdsI+2aTh\n"
- "4E+hrx/MKsd78mQpRNXvEVIeopp214rzqW/dv/4vMBoV9tRCuw5cJCZCHaeGZ4JF\n"
- "pU/+nBliukanL3XMN5Fp74vVthuQp69u3fa6YHHvL2L6EahSrHrbSE4+C5VYOV+Z\n"
- "nfKDHD9Vo1zH8Fjxl7JJWI/LgSXCChm6Y9Vq7LviL7hZc4BdCbGJfAfv56oGHavE\n"
- "zxU639fBbdhavNl6b9i7AeTD4Ad1KbsFrQKBwQDaQKP0eegbnHfHOdE+mb2aMtVN\n"
- "f3BI25VsBoNWD2A0VEFMQClUPMH17OyS2YidYeVbcneef3VlgrIJZvlRsr76LHxP\n"
- "vVtEug6ZgX5WS/DiJiZWESVJrGZ+gaeUIONGFObGO+Evvoe5bqSwm2Bu05HONb56\n"
- "Q5qx7gfo+kfxHm2vjOOKpc/ceEz2QeJ3rOGoetocmaObHcgFOFO0UC2oyAJ3MAtY\n"
- "8SkyiUJ/jDdCZbkVegT9kGe9OLKMpenG058uctECgcEAozqgM8mPrxR576SnakN3\n"
- "isjvOJOGXGcNiDVst5PUO6Gcrqj5HYpdsBtL0mMaxDo+ahjFKpET4UH8shBlP1er\n"
- "GI717CDfIcZ3lXzmhiSGa0gh0PYXCqGwAAXQ+Gt735fHvIu7yICN/Htw4EDFmJXs\n"
- "BaMdTHgNmL4RPg7bA39afM7fmjp5EI6HmuWkP4nDaqPJ3Cb4q4rDQvaaVLpEwWPu\n"
- "/i6iWno8e5JBjbn/NnkEYroNi8sw5sc0+VS4qE5XgySpAoHBAMB9bF0tu4nGqVl7\n"
- "49FrdO7v0HLGZ/jKOfIJmIIpk3bzrJecqxbRc1v79vbZhwUPl2LdBSU0Uw0RhQaH\n"
- "3HKyzH8HByio4DswQbofnJZt6ej7LqqP+qwMsmT24x7hFrHzs0m4/DXIvBnOvM/K\n"
- "afW1AY62leVthJ1TS4SuYQ8HAERpZTIeZcKUE4TJvPxB7NBUcdPxqXsgfA4mjKSm\n"
- "Zm7K4GnQZOGv6N7aclzeBMq5vtBzSr18RBJ+U/N6TUH/2Q/1UQKBwEPgS+LJCJAs\n"
- "qaeBPTgiuzv2a6umQpezxjCispnU5e0sOFHV/f5NVuEZDrdH7WDHAX8nAU8TdDZM\n"
- "/fqM4oOZJOY9yVsyXK9dN7YcG6lxlNbC8S4FatDorDr3DxmbeYqEMUfOR+H4VvgR\n"
- "OHw+G5gmNHBAh30wDR+bxepSNBAexjo18zbMgNJsdyjU8s562Q7/ejcTgqZYt4nZ\n"
- "r6wql68K+fJ1W38b+ENQ46bZZMvAh8z4MZyzBvS8M/grD0WBBwrWLA==\n"
- "-----END RSA PRIVATE KEY-----\n";
-
-const gnutls_datum_t server_ca3_key = { (unsigned char*)server_ca3_key_pem,
- sizeof(server_ca3_key_pem)-1
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIG5AIBAAKCAYEA2T14maos98C7s/geGZybgqYSxF+5NeTXKWpi9/vXmuIF8n3h\n"
+ "Uh20mooT2rgVHAzFWy/8H5IcWIiUQl+8KhyJCSuBJ+WhM0gw2uqSPwiOZUm4l3TQ\n"
+ "xmxS4eW/Brr4X88svJQ4xTTct2m5H1Nu9LZ8xWOZpGMGII7jf0YD6odG/DHE/sVH\n"
+ "jfceD7kl15jAta97+8uCbjMRPGcxg4VtmkCuSLOkGL9FhC0uYVbwfBnT+V0MEycO\n"
+ "Bx+Yv2BEu0xDVdkQcs0WPIRUPUmyuWBxxqLM1SSJSLsZub/DdiINXFure7dx57mW\n"
+ "w2EQwhETIhIoAc/LxGWchbDC4OWeyYjSkhv3/hEfQswyVx4MQXLVfRBHNipkU9T/\n"
+ "SXiP8WVDpfZSpY3PrfJtFJtwLMeXblpuLXGZuxXnJ2iYk1w/7RBuuKkylrQ7qCO/\n"
+ "l/TIx3uZb39oCCU9wqCltuEZ+jtX3PaAgp1QItFehSzOF2hudF/TQuuukVRBZF4o\n"
+ "fExwNYAvZvTSTKw9AgMBAAECggGAel8TMVRYMlOCKJWqtvit7QGJ7s6RMRewUCca\n"
+ "iuB1ikyp1vgr1argEnGXT4yEb6GOBpjYKByRFRoSkfUFtJ8QXncAMS48CPwwcRDT\n"
+ "wugZ9lp5ve9Sr4NTiOZ3Hd5yjN3SMIQ6GnR1pGfMnSXNidHGJRa+9IfHas2yvv38\n"
+ "tL7xMJ0EgBM3BHRgnbDI7VKhs3afm63+0f64RdNHY/PkUpD+2/s9g6czDIq65qAn\n"
+ "pXCTJJPSenN0hnS5AYzECtGh2JkFjXpF5B7/2pvZjqsy8eyjZURoQFLA5wWhLVr5\n"
+ "AQDJzeK//D6OMAd6kuLKezQxVIN0F0eC6XKEhEvq96xegQk3aMXk2jCHz6IYV6pm\n"
+ "zdnfIvP5fIP1HsL8JPiCQqBp7/MoSKlz/DCHH/6iQgQkIhxw/nYJd1+kjhHpm969\n"
+ "fw6WzzCA7om0CbKhuHjRnnwk1OylqKhTrgfO1mcaEoH90NIszE3j5pwqiPMdv+J0\n"
+ "k25pjaMDgeOd3bO8SW/oWQEH5LbBAoHBAP7QAaYg4Fsm0zr1Jvup6MsJdsI+2aTh\n"
+ "4E+hrx/MKsd78mQpRNXvEVIeopp214rzqW/dv/4vMBoV9tRCuw5cJCZCHaeGZ4JF\n"
+ "pU/+nBliukanL3XMN5Fp74vVthuQp69u3fa6YHHvL2L6EahSrHrbSE4+C5VYOV+Z\n"
+ "nfKDHD9Vo1zH8Fjxl7JJWI/LgSXCChm6Y9Vq7LviL7hZc4BdCbGJfAfv56oGHavE\n"
+ "zxU639fBbdhavNl6b9i7AeTD4Ad1KbsFrQKBwQDaQKP0eegbnHfHOdE+mb2aMtVN\n"
+ "f3BI25VsBoNWD2A0VEFMQClUPMH17OyS2YidYeVbcneef3VlgrIJZvlRsr76LHxP\n"
+ "vVtEug6ZgX5WS/DiJiZWESVJrGZ+gaeUIONGFObGO+Evvoe5bqSwm2Bu05HONb56\n"
+ "Q5qx7gfo+kfxHm2vjOOKpc/ceEz2QeJ3rOGoetocmaObHcgFOFO0UC2oyAJ3MAtY\n"
+ "8SkyiUJ/jDdCZbkVegT9kGe9OLKMpenG058uctECgcEAozqgM8mPrxR576SnakN3\n"
+ "isjvOJOGXGcNiDVst5PUO6Gcrqj5HYpdsBtL0mMaxDo+ahjFKpET4UH8shBlP1er\n"
+ "GI717CDfIcZ3lXzmhiSGa0gh0PYXCqGwAAXQ+Gt735fHvIu7yICN/Htw4EDFmJXs\n"
+ "BaMdTHgNmL4RPg7bA39afM7fmjp5EI6HmuWkP4nDaqPJ3Cb4q4rDQvaaVLpEwWPu\n"
+ "/i6iWno8e5JBjbn/NnkEYroNi8sw5sc0+VS4qE5XgySpAoHBAMB9bF0tu4nGqVl7\n"
+ "49FrdO7v0HLGZ/jKOfIJmIIpk3bzrJecqxbRc1v79vbZhwUPl2LdBSU0Uw0RhQaH\n"
+ "3HKyzH8HByio4DswQbofnJZt6ej7LqqP+qwMsmT24x7hFrHzs0m4/DXIvBnOvM/K\n"
+ "afW1AY62leVthJ1TS4SuYQ8HAERpZTIeZcKUE4TJvPxB7NBUcdPxqXsgfA4mjKSm\n"
+ "Zm7K4GnQZOGv6N7aclzeBMq5vtBzSr18RBJ+U/N6TUH/2Q/1UQKBwEPgS+LJCJAs\n"
+ "qaeBPTgiuzv2a6umQpezxjCispnU5e0sOFHV/f5NVuEZDrdH7WDHAX8nAU8TdDZM\n"
+ "/fqM4oOZJOY9yVsyXK9dN7YcG6lxlNbC8S4FatDorDr3DxmbeYqEMUfOR+H4VvgR\n"
+ "OHw+G5gmNHBAh30wDR+bxepSNBAexjo18zbMgNJsdyjU8s562Q7/ejcTgqZYt4nZ\n"
+ "r6wql68K+fJ1W38b+ENQ46bZZMvAh8z4MZyzBvS8M/grD0WBBwrWLA==\n"
+ "-----END RSA PRIVATE KEY-----\n";
+
+const gnutls_datum_t server_ca3_key = { (unsigned char *)server_ca3_key_pem,
+ sizeof(server_ca3_key_pem) - 1
};
static char server_ca3_rsa_pss_key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIEowIBAAKCAQEAvxOfMAZbqIuVqkPt5s5fyNeuYD09r80oDEN54MS7/tMy+2yk\n"
- "rwsX3a1zGLqn47Q59E0QAlheFP5ZXcQgFXVdQwWCn00YtYyGn5uGrzT80PlIAnaG\n"
- "yVpjLGci7mU13IpHlLKqQbBaCdiDU1qV/fyy03t0KVdlyzTi3RJoKDU3XTG/eJmy\n"
- "bPHuBGzBjtXn4IJkbbe9FL090YJbgu0EqgcVhaon9JOs5cVNGsHZ4zdRo1d9/5zK\n"
- "tqaAVCPYECL/OYwTBS0O8kTrkoHwXo08bR0sUhb7enfI827mOOiIyokkzUu1YVyP\n"
- "6GMnggmoUa8LaSeO3bsWU9rx1ngWBUQ5hBG5JQIDAQABAoIBAAkoYpfFpjz0u66W\n"
- "ZN+MApE4rRXVuZAkcAfub/fy1ePHsYjVUytEh9dLCdokkAlcyO5JhzvlilTNP/E7\n"
- "hiIhJuAgcns6EbYZzxX1OUZKbteBKw9bKOibmWc2Zjkwxp0UT4vz6C8PybDxHJIx\n"
- "JEExDE0QfKfClZFgroLT8AQFUOr5cy8dY2edh17+rMMeBvJ5Yit3L6hlHjO+5eJA\n"
- "E0WzxPrZWIFfAJl484HbZL/kBT8UXqYDTR7MB+qOq8mdKQSLcHwyjvItgvgklEPu\n"
- "0Rl626K+R6841FmrXjUEBVtfkS8Osw/+CJDYw6YZwB7W8oLRRhcB7PjMWU5RHAIW\n"
- "nZKFWn0CgYEA0qsP7FUemy7kG7cA8qMErt7oWV/DYIMpKaCJC+17vk37OmJbUpbo\n"
- "UkfEIY9iT8hcPjP1jAnQf2d0A37zn9B7DTYPhbjbRtNrOSkdrE/u5FeWd4tr9uc7\n"
- "JdYhRc6dkPKbVbFFyo7bdHwU0ZLtfhJYKpTYJ3oNvjsiLqBjIHaj2v8CgYEA6DFV\n"
- "FKlQL9OnzTnQtu5oDvqHFiaHD1wdPTN9MeNWEFdcf/kd3eVvcRmpenGZaud7jn72\n"
- "nhtXXyzc9GlVoKL6R+/1GVexwu477dr2Ci5MwPYGtyh2tJWjgHTad0bT0Jq4Bneu\n"
- "ZuXZ0EszfxTmHkUkPlzvUrbPjoJxgb57P0Qfn9sCgYEAnYrTg5c8Jizw5VD74nfK\n"
- "nsOP2pZk054CgGDPXB4i9fP3Nngrdx3navDEWZySlrttUA8nR6xnQX+qIJslsZQF\n"
- "EaImBYhyYwrkGoEG8b9tFVHy8j9PY/sUHn19sGiNKMJlK7ZATPR8ZSYNo5RPCoLJ\n"
- "cD6TTyJVeLdcHqZOuw4+Bx0CgYAvP5qokauXj+JdiJ5IG0thgOlsQHrLTVtF0Oxw\n"
- "8mnY+W4BPJgvRzjeMvKhz+wALQqffIaCtd2ZqG9t7OFXxtJXQSUG+ylZGVFonV3j\n"
- "xHgp6+aB7uH47VpQEXdDPk5r7I/2APSkS7F/CU55Va9eCYPOjOrGUhz6SuD+HdzG\n"
- "iv5EcQKBgDyt221UUieb1sWhCHaKaQ3z8/aJlzs+ge6kSLqoVjcfr5uOKM1O5O72\n"
- "bfy00r7B8ky77qXNTtzv2xt9Km/hRptqnCHsgly5OXW8pMcFnf7Kdh3Q+c5UzVlc\n"
- "ODwZlaKK2fjp9xr2dNpYjRqyEb1gkC9FJMaxab9OAf+AoQifxncv\n"
- "-----END RSA PRIVATE KEY-----\n";
-
-const gnutls_datum_t server_ca3_rsa_pss_key = { (unsigned char*)server_ca3_rsa_pss_key_pem,
- sizeof(server_ca3_rsa_pss_key_pem)-1
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEowIBAAKCAQEAvxOfMAZbqIuVqkPt5s5fyNeuYD09r80oDEN54MS7/tMy+2yk\n"
+ "rwsX3a1zGLqn47Q59E0QAlheFP5ZXcQgFXVdQwWCn00YtYyGn5uGrzT80PlIAnaG\n"
+ "yVpjLGci7mU13IpHlLKqQbBaCdiDU1qV/fyy03t0KVdlyzTi3RJoKDU3XTG/eJmy\n"
+ "bPHuBGzBjtXn4IJkbbe9FL090YJbgu0EqgcVhaon9JOs5cVNGsHZ4zdRo1d9/5zK\n"
+ "tqaAVCPYECL/OYwTBS0O8kTrkoHwXo08bR0sUhb7enfI827mOOiIyokkzUu1YVyP\n"
+ "6GMnggmoUa8LaSeO3bsWU9rx1ngWBUQ5hBG5JQIDAQABAoIBAAkoYpfFpjz0u66W\n"
+ "ZN+MApE4rRXVuZAkcAfub/fy1ePHsYjVUytEh9dLCdokkAlcyO5JhzvlilTNP/E7\n"
+ "hiIhJuAgcns6EbYZzxX1OUZKbteBKw9bKOibmWc2Zjkwxp0UT4vz6C8PybDxHJIx\n"
+ "JEExDE0QfKfClZFgroLT8AQFUOr5cy8dY2edh17+rMMeBvJ5Yit3L6hlHjO+5eJA\n"
+ "E0WzxPrZWIFfAJl484HbZL/kBT8UXqYDTR7MB+qOq8mdKQSLcHwyjvItgvgklEPu\n"
+ "0Rl626K+R6841FmrXjUEBVtfkS8Osw/+CJDYw6YZwB7W8oLRRhcB7PjMWU5RHAIW\n"
+ "nZKFWn0CgYEA0qsP7FUemy7kG7cA8qMErt7oWV/DYIMpKaCJC+17vk37OmJbUpbo\n"
+ "UkfEIY9iT8hcPjP1jAnQf2d0A37zn9B7DTYPhbjbRtNrOSkdrE/u5FeWd4tr9uc7\n"
+ "JdYhRc6dkPKbVbFFyo7bdHwU0ZLtfhJYKpTYJ3oNvjsiLqBjIHaj2v8CgYEA6DFV\n"
+ "FKlQL9OnzTnQtu5oDvqHFiaHD1wdPTN9MeNWEFdcf/kd3eVvcRmpenGZaud7jn72\n"
+ "nhtXXyzc9GlVoKL6R+/1GVexwu477dr2Ci5MwPYGtyh2tJWjgHTad0bT0Jq4Bneu\n"
+ "ZuXZ0EszfxTmHkUkPlzvUrbPjoJxgb57P0Qfn9sCgYEAnYrTg5c8Jizw5VD74nfK\n"
+ "nsOP2pZk054CgGDPXB4i9fP3Nngrdx3navDEWZySlrttUA8nR6xnQX+qIJslsZQF\n"
+ "EaImBYhyYwrkGoEG8b9tFVHy8j9PY/sUHn19sGiNKMJlK7ZATPR8ZSYNo5RPCoLJ\n"
+ "cD6TTyJVeLdcHqZOuw4+Bx0CgYAvP5qokauXj+JdiJ5IG0thgOlsQHrLTVtF0Oxw\n"
+ "8mnY+W4BPJgvRzjeMvKhz+wALQqffIaCtd2ZqG9t7OFXxtJXQSUG+ylZGVFonV3j\n"
+ "xHgp6+aB7uH47VpQEXdDPk5r7I/2APSkS7F/CU55Va9eCYPOjOrGUhz6SuD+HdzG\n"
+ "iv5EcQKBgDyt221UUieb1sWhCHaKaQ3z8/aJlzs+ge6kSLqoVjcfr5uOKM1O5O72\n"
+ "bfy00r7B8ky77qXNTtzv2xt9Km/hRptqnCHsgly5OXW8pMcFnf7Kdh3Q+c5UzVlc\n"
+ "ODwZlaKK2fjp9xr2dNpYjRqyEb1gkC9FJMaxab9OAf+AoQifxncv\n"
+ "-----END RSA PRIVATE KEY-----\n";
+
+const gnutls_datum_t server_ca3_rsa_pss_key =
+ { (unsigned char *)server_ca3_rsa_pss_key_pem,
+ sizeof(server_ca3_rsa_pss_key_pem) - 1
};
static char server_ca3_rsa_pss_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEAjCCAjqgAwIBAgIMWSa+iBMb7BVvI0GIMD0GCSqGSIb3DQEBCjAwoA0wCwYJ\n"
- "YIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCAaIDAgEgMA8xDTAL\n"
- "BgNVBAMTBENBLTMwHhcNMTkwNDE1MDkyMjIwWhcNNDkxMjMxMDkyMjIwWjANMQsw\n"
- "CQYDVQQGEwJHUjCCAVIwPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAY\n"
- "BgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASADggEPADCCAQoCggEBAL8TnzAG\n"
- "W6iLlapD7ebOX8jXrmA9Pa/NKAxDeeDEu/7TMvtspK8LF92tcxi6p+O0OfRNEAJY\n"
- "XhT+WV3EIBV1XUMFgp9NGLWMhp+bhq80/ND5SAJ2hslaYyxnIu5lNdyKR5SyqkGw\n"
- "WgnYg1Nalf38stN7dClXZcs04t0SaCg1N10xv3iZsmzx7gRswY7V5+CCZG23vRS9\n"
- "PdGCW4LtBKoHFYWqJ/STrOXFTRrB2eM3UaNXff+cyramgFQj2BAi/zmMEwUtDvJE\n"
- "65KB8F6NPG0dLFIW+3p3yPNu5jjoiMqJJM1LtWFcj+hjJ4IJqFGvC2knjt27FlPa\n"
- "8dZ4FgVEOYQRuSUCAwEAAaNQME4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUjFqe\n"
- "vO9heHT9V24WV1ovs7pvUvMwHwYDVR0jBBgwFoAU+aiGGWO2pBQTYHYPAZo1Nu/x\n"
- "tK8wPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgw\n"
- "CwYJYIZIAWUDBAIBogMCASADggGBAAgVZdGqSwhaa8c/KuqsnELoK5QlzdSUNZ0O\n"
- "J31nVQyOmIJtqR14nMndU0y1iowAoj0osZFYjxjN6e2AqUF7R22uhtxmG6rr0YEi\n"
- "XS+rNpbs7+gY/3hK30vo376QL85+U4v4HuTCd+yX8bY9VPqwZBMYO5rcDyXG82xC\n"
- "ZKXT/Tr7XD80iMFjyR2cvRAjoZQeXbWzNE4AEm0jNz2F5Qnl6uSgtpDkHYKgr9xq\n"
- "yUhm/WNKG86pzBxfcFju4prqBLiwUZh068b6znBAS0wMflrF/lznu01QqDhK6mz3\n"
- "cSn5LlzoKjuouAWdZRieqokr1mNiWggmX5n2qKM9FJtDQctsvntCf/freAfy+Xmu\n"
- "Tm055R9UzX76mL89eXY92U++HR8Y5IO5lqY1f13rzWK5rJB9qjz/Mamj9xR6Egoa\n"
- "hh1ysRItcTCFJI5xKb/i3hHv94U12EH1IfFHofptr1pyCtAeOhJytWPndCiB2m1q\n"
- "M2k3tl6cHvlUz7DpgnxNniuQ/dQ4MA==\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server_ca3_rsa_pss_cert = { (unsigned char*)server_ca3_rsa_pss_cert_pem,
- sizeof(server_ca3_rsa_pss_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEAjCCAjqgAwIBAgIMWSa+iBMb7BVvI0GIMD0GCSqGSIb3DQEBCjAwoA0wCwYJ\n"
+ "YIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCAaIDAgEgMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwHhcNMTkwNDE1MDkyMjIwWhcNNDkxMjMxMDkyMjIwWjANMQsw\n"
+ "CQYDVQQGEwJHUjCCAVIwPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAY\n"
+ "BgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASADggEPADCCAQoCggEBAL8TnzAG\n"
+ "W6iLlapD7ebOX8jXrmA9Pa/NKAxDeeDEu/7TMvtspK8LF92tcxi6p+O0OfRNEAJY\n"
+ "XhT+WV3EIBV1XUMFgp9NGLWMhp+bhq80/ND5SAJ2hslaYyxnIu5lNdyKR5SyqkGw\n"
+ "WgnYg1Nalf38stN7dClXZcs04t0SaCg1N10xv3iZsmzx7gRswY7V5+CCZG23vRS9\n"
+ "PdGCW4LtBKoHFYWqJ/STrOXFTRrB2eM3UaNXff+cyramgFQj2BAi/zmMEwUtDvJE\n"
+ "65KB8F6NPG0dLFIW+3p3yPNu5jjoiMqJJM1LtWFcj+hjJ4IJqFGvC2knjt27FlPa\n"
+ "8dZ4FgVEOYQRuSUCAwEAAaNQME4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUjFqe\n"
+ "vO9heHT9V24WV1ovs7pvUvMwHwYDVR0jBBgwFoAU+aiGGWO2pBQTYHYPAZo1Nu/x\n"
+ "tK8wPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgw\n"
+ "CwYJYIZIAWUDBAIBogMCASADggGBAAgVZdGqSwhaa8c/KuqsnELoK5QlzdSUNZ0O\n"
+ "J31nVQyOmIJtqR14nMndU0y1iowAoj0osZFYjxjN6e2AqUF7R22uhtxmG6rr0YEi\n"
+ "XS+rNpbs7+gY/3hK30vo376QL85+U4v4HuTCd+yX8bY9VPqwZBMYO5rcDyXG82xC\n"
+ "ZKXT/Tr7XD80iMFjyR2cvRAjoZQeXbWzNE4AEm0jNz2F5Qnl6uSgtpDkHYKgr9xq\n"
+ "yUhm/WNKG86pzBxfcFju4prqBLiwUZh068b6znBAS0wMflrF/lznu01QqDhK6mz3\n"
+ "cSn5LlzoKjuouAWdZRieqokr1mNiWggmX5n2qKM9FJtDQctsvntCf/freAfy+Xmu\n"
+ "Tm055R9UzX76mL89eXY92U++HR8Y5IO5lqY1f13rzWK5rJB9qjz/Mamj9xR6Egoa\n"
+ "hh1ysRItcTCFJI5xKb/i3hHv94U12EH1IfFHofptr1pyCtAeOhJytWPndCiB2m1q\n"
+ "M2k3tl6cHvlUz7DpgnxNniuQ/dQ4MA==\n" "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_rsa_pss_cert =
+ { (unsigned char *)server_ca3_rsa_pss_cert_pem,
+ sizeof(server_ca3_rsa_pss_cert_pem) - 1
};
static char server_ca3_rsa_pss2_key_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MIIE7AIBADA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3\n"
- "DQEBCDALBglghkgBZQMEAgGiAwIBIASCBKYwggSiAgEAAoIBAQCte+3f4Sgy89/R\n"
- "LNfx/NazlTgHxL6IXJuL44tutdhxA91vCJt0+ZSShWibsuyF+H09it3G0+3LvE2W\n"
- "vkU58ha7ljvCWckPf2+YpsFynNQc0Lw6BThRMQdJpJvI54OdxfhoPjhDnTui/EEj\n"
- "/n9MbLo5rAX5ZDIpWa3Vgpl37Q8czjFINCgQ/f8qsD4WabBSbuSnrYDvuASGez4O\n"
- "YDAFvM51+4U4GxN7ZKbrDTQcAySU0Fjy+I5eW/BIXd9TeHb6XYJudMQY7rozTijm\n"
- "6qbZieahke+FUCgm8BnRXghfcVSswUZEJQkCvF+SdUl3iAYlY/UBzVFsGDSFbID2\n"
- "XRtEvrnvAgMBAAECggEATj8COCL+lZSnU1oNgAiQ8eiQn/heE3TpdzvHLMT5/WdH\n"
- "3YedTjIvj7J6TxdxVK+SFUrn4oC91VF2EVJ6OLt3A16sT2ldpQ7OT6SOxdn0VZbT\n"
- "/rtR/lTFu7JxzTiWhXfAJYxCpkRpnIZ3/vsPgXHcwJxVCXnmof3fyNghzhRu54de\n"
- "V5GUwJ6TT3MMYLYKf5ii8Yt9WqeekQF7Hy/kIwz+4CbgR3fDdRXFnRwdNmA4RG3w\n"
- "TbwvqR9ApyAictYz4HpZWgYL+cXsH6Fm+/ChZiV9/zvdVVOo+dOAcxx2cWahm/NL\n"
- "tksGD7hI5kqD9moi2wiAsGHPa+/rkLxIBm0xvF1veQKBgQDVFKujtQyfzJw5DUPL\n"
- "kTCLp+370ZBTK01daKZrpfgw6QrylYljcIq8n1izauElYm5cZ9krMGzvL5ceg49p\n"
- "obl1tdCOQJQACrJmLZSuvVfw8TSwHPyOGtRWxhF4miX+ym3yMFqRyN2nXx1iAo5I\n"
- "Cz+aGmTfT1zSZkLnfQSjYWZFgwKBgQDQbX2wPavLI+1yWARStqrwVWO1mU0Nixbo\n"
- "jHrRlzrKYqtV+0ea6550LtDG5A/zf9MP6439NNHPqs4rnY910odd+xmLdQj2gocB\n"
- "IS4nPBE4o1k3L9m+bSw9nyDdJWRkASq4uem6QvyVsQpWUoxzmg5/fwRUlOU8X3pP\n"
- "ZLSSpz06JQKBgF4b6AbAwtedFe54tlWlRWyY+Zn7n6Or/1pfCwmGXwyzEJu9gdWC\n"
- "cjQGqLVtYg0R4S48y4SwuZwWR8c5UdDUlcWwTHFXgkZWcx5/ySg4BiwrTBrwYncc\n"
- "0GWWy0aZxmg23cJWqtmyfnsani6YdGDLXwbf22dpdNSUR75X0AGc1f+jAoGADha4\n"
- "nkcs66hcDpSghi7O0zwSZ14bdUTnoYSNcMl2MeQFjORVbMVsipH3jtovsdf8HmFf\n"
- "0bPWUuFK2mvmHKLEf7fPfDvHBVLBaXQiuIg46ckw6KgVYefjS68L+6bhaFkj2CTJ\n"
- "BcwtYrj65+bgk5fgTwH4+vatoC0cCW3XPuqLGvkCgYAj2NGQAEQ4HkmF55otDocZ\n"
- "SkAJFfibyrkKEK+PsQ7dRR/HEc93hvkI0PHpsLx8A3FZ370FAPtiKmnmfabHxEsK\n"
- "TWA2DTacq//MzXQrjsx0CpvGId1dOyVZIrwIFM17KmW5HHE37fY4PFZTZVXHAKf6\n"
- "nQyUF7m3FUJjavm46KJIhw==\n"
- "-----END PRIVATE KEY-----\n";
-
-const gnutls_datum_t server_ca3_rsa_pss2_key = { (unsigned char*)server_ca3_rsa_pss2_key_pem,
- sizeof(server_ca3_rsa_pss2_key_pem)-1
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MIIE7AIBADA9BgkqhkiG9w0BAQowMKANMAsGCWCGSAFlAwQCAaEaMBgGCSqGSIb3\n"
+ "DQEBCDALBglghkgBZQMEAgGiAwIBIASCBKYwggSiAgEAAoIBAQCte+3f4Sgy89/R\n"
+ "LNfx/NazlTgHxL6IXJuL44tutdhxA91vCJt0+ZSShWibsuyF+H09it3G0+3LvE2W\n"
+ "vkU58ha7ljvCWckPf2+YpsFynNQc0Lw6BThRMQdJpJvI54OdxfhoPjhDnTui/EEj\n"
+ "/n9MbLo5rAX5ZDIpWa3Vgpl37Q8czjFINCgQ/f8qsD4WabBSbuSnrYDvuASGez4O\n"
+ "YDAFvM51+4U4GxN7ZKbrDTQcAySU0Fjy+I5eW/BIXd9TeHb6XYJudMQY7rozTijm\n"
+ "6qbZieahke+FUCgm8BnRXghfcVSswUZEJQkCvF+SdUl3iAYlY/UBzVFsGDSFbID2\n"
+ "XRtEvrnvAgMBAAECggEATj8COCL+lZSnU1oNgAiQ8eiQn/heE3TpdzvHLMT5/WdH\n"
+ "3YedTjIvj7J6TxdxVK+SFUrn4oC91VF2EVJ6OLt3A16sT2ldpQ7OT6SOxdn0VZbT\n"
+ "/rtR/lTFu7JxzTiWhXfAJYxCpkRpnIZ3/vsPgXHcwJxVCXnmof3fyNghzhRu54de\n"
+ "V5GUwJ6TT3MMYLYKf5ii8Yt9WqeekQF7Hy/kIwz+4CbgR3fDdRXFnRwdNmA4RG3w\n"
+ "TbwvqR9ApyAictYz4HpZWgYL+cXsH6Fm+/ChZiV9/zvdVVOo+dOAcxx2cWahm/NL\n"
+ "tksGD7hI5kqD9moi2wiAsGHPa+/rkLxIBm0xvF1veQKBgQDVFKujtQyfzJw5DUPL\n"
+ "kTCLp+370ZBTK01daKZrpfgw6QrylYljcIq8n1izauElYm5cZ9krMGzvL5ceg49p\n"
+ "obl1tdCOQJQACrJmLZSuvVfw8TSwHPyOGtRWxhF4miX+ym3yMFqRyN2nXx1iAo5I\n"
+ "Cz+aGmTfT1zSZkLnfQSjYWZFgwKBgQDQbX2wPavLI+1yWARStqrwVWO1mU0Nixbo\n"
+ "jHrRlzrKYqtV+0ea6550LtDG5A/zf9MP6439NNHPqs4rnY910odd+xmLdQj2gocB\n"
+ "IS4nPBE4o1k3L9m+bSw9nyDdJWRkASq4uem6QvyVsQpWUoxzmg5/fwRUlOU8X3pP\n"
+ "ZLSSpz06JQKBgF4b6AbAwtedFe54tlWlRWyY+Zn7n6Or/1pfCwmGXwyzEJu9gdWC\n"
+ "cjQGqLVtYg0R4S48y4SwuZwWR8c5UdDUlcWwTHFXgkZWcx5/ySg4BiwrTBrwYncc\n"
+ "0GWWy0aZxmg23cJWqtmyfnsani6YdGDLXwbf22dpdNSUR75X0AGc1f+jAoGADha4\n"
+ "nkcs66hcDpSghi7O0zwSZ14bdUTnoYSNcMl2MeQFjORVbMVsipH3jtovsdf8HmFf\n"
+ "0bPWUuFK2mvmHKLEf7fPfDvHBVLBaXQiuIg46ckw6KgVYefjS68L+6bhaFkj2CTJ\n"
+ "BcwtYrj65+bgk5fgTwH4+vatoC0cCW3XPuqLGvkCgYAj2NGQAEQ4HkmF55otDocZ\n"
+ "SkAJFfibyrkKEK+PsQ7dRR/HEc93hvkI0PHpsLx8A3FZ370FAPtiKmnmfabHxEsK\n"
+ "TWA2DTacq//MzXQrjsx0CpvGId1dOyVZIrwIFM17KmW5HHE37fY4PFZTZVXHAKf6\n"
+ "nQyUF7m3FUJjavm46KJIhw==\n" "-----END PRIVATE KEY-----\n";
+
+const gnutls_datum_t server_ca3_rsa_pss2_key =
+ { (unsigned char *)server_ca3_rsa_pss2_key_pem,
+ sizeof(server_ca3_rsa_pss2_key_pem) - 1
};
static char server_ca3_rsa_pss2_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIID0TCCAjmgAwIBAgIIWXYEJjkAauMwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNzA3MjQxNDI4NTVaGA85OTk5MTIzMTIzNTk1OVowADCCAVIw\n"
- "PQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJ\n"
- "YIZIAWUDBAIBogMCASADggEPADCCAQoCggEBAK177d/hKDLz39Es1/H81rOVOAfE\n"
- "vohcm4vji2612HED3W8Im3T5lJKFaJuy7IX4fT2K3cbT7cu8TZa+RTnyFruWO8JZ\n"
- "yQ9/b5imwXKc1BzQvDoFOFExB0mkm8jng53F+Gg+OEOdO6L8QSP+f0xsujmsBflk\n"
- "MilZrdWCmXftDxzOMUg0KBD9/yqwPhZpsFJu5KetgO+4BIZ7Pg5gMAW8znX7hTgb\n"
- "E3tkpusNNBwDJJTQWPL4jl5b8Ehd31N4dvpdgm50xBjuujNOKObqptmJ5qGR74VQ\n"
- "KCbwGdFeCF9xVKzBRkQlCQK8X5J1SXeIBiVj9QHNUWwYNIVsgPZdG0S+ue8CAwEA\n"
- "AaOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDATBgNV\n"
- "HSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB4AAMB0GA1UdDgQWBBQCiLaK\n"
- "LrqB0vaCnoNP1V8QVLlA8jAfBgNVHSMEGDAWgBT5qIYZY7akFBNgdg8BmjU27/G0\n"
- "rzANBgkqhkiG9w0BAQsFAAOCAYEANgnTu4nYiv1nH6Iqpnn48CNrGK25ax6FuPvc\n"
- "HxOyFFa9jomP8KjyNv3EsmmoBcQBkbRdAX8sFdtbyjILqRLoRMFO7D60BmCitGYH\n"
- "MDjEIkG9QjcCo03YIT93SORwnt1qrWh6paOH7Nme+CsgRyXN7iNNur2LgGSilQ7P\n"
- "Rs/vr0DdxmlUxUQHDa5GRIvU3FFs4NLC/9sQd3+JGqzDbY7UqLnP5fzn6/PSMKIw\n"
- "Gc4IzbJrqjFsyfjQkblM2eBwmkUD3SnTFWqYwUsohGlSxBwKSIyVzlyuoD1FXop7\n"
- "lgG8/a1D/ZFa34q8tj24Wnd9zdr/Jrv2g51OSf0VIbQdP92l2kDouobPS/7DTgPI\n"
- "D7h52NLVm8cbV1RqxbeS3spZ2OAQn8tLiTwz+abNdsikFjMvfXq61iIv3QASUyUB\n"
- "VydSB7stwAUd6wys2H7crmeiMMtgxSjZJtB4GDUCb24a+/a4IgpqxFzGDLE9Ur69\n"
- "D8aQbKGJzzih56a2wwc0ZqA0ilGm\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server_ca3_rsa_pss2_cert = { (unsigned char*)server_ca3_rsa_pss2_cert_pem,
- sizeof(server_ca3_rsa_pss2_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIID0TCCAjmgAwIBAgIIWXYEJjkAauMwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNzA3MjQxNDI4NTVaGA85OTk5MTIzMTIzNTk1OVowADCCAVIw\n"
+ "PQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJ\n"
+ "YIZIAWUDBAIBogMCASADggEPADCCAQoCggEBAK177d/hKDLz39Es1/H81rOVOAfE\n"
+ "vohcm4vji2612HED3W8Im3T5lJKFaJuy7IX4fT2K3cbT7cu8TZa+RTnyFruWO8JZ\n"
+ "yQ9/b5imwXKc1BzQvDoFOFExB0mkm8jng53F+Gg+OEOdO6L8QSP+f0xsujmsBflk\n"
+ "MilZrdWCmXftDxzOMUg0KBD9/yqwPhZpsFJu5KetgO+4BIZ7Pg5gMAW8znX7hTgb\n"
+ "E3tkpusNNBwDJJTQWPL4jl5b8Ehd31N4dvpdgm50xBjuujNOKObqptmJ5qGR74VQ\n"
+ "KCbwGdFeCF9xVKzBRkQlCQK8X5J1SXeIBiVj9QHNUWwYNIVsgPZdG0S+ue8CAwEA\n"
+ "AaOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDATBgNV\n"
+ "HSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB4AAMB0GA1UdDgQWBBQCiLaK\n"
+ "LrqB0vaCnoNP1V8QVLlA8jAfBgNVHSMEGDAWgBT5qIYZY7akFBNgdg8BmjU27/G0\n"
+ "rzANBgkqhkiG9w0BAQsFAAOCAYEANgnTu4nYiv1nH6Iqpnn48CNrGK25ax6FuPvc\n"
+ "HxOyFFa9jomP8KjyNv3EsmmoBcQBkbRdAX8sFdtbyjILqRLoRMFO7D60BmCitGYH\n"
+ "MDjEIkG9QjcCo03YIT93SORwnt1qrWh6paOH7Nme+CsgRyXN7iNNur2LgGSilQ7P\n"
+ "Rs/vr0DdxmlUxUQHDa5GRIvU3FFs4NLC/9sQd3+JGqzDbY7UqLnP5fzn6/PSMKIw\n"
+ "Gc4IzbJrqjFsyfjQkblM2eBwmkUD3SnTFWqYwUsohGlSxBwKSIyVzlyuoD1FXop7\n"
+ "lgG8/a1D/ZFa34q8tj24Wnd9zdr/Jrv2g51OSf0VIbQdP92l2kDouobPS/7DTgPI\n"
+ "D7h52NLVm8cbV1RqxbeS3spZ2OAQn8tLiTwz+abNdsikFjMvfXq61iIv3QASUyUB\n"
+ "VydSB7stwAUd6wys2H7crmeiMMtgxSjZJtB4GDUCb24a+/a4IgpqxFzGDLE9Ur69\n"
+ "D8aQbKGJzzih56a2wwc0ZqA0ilGm\n" "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_rsa_pss2_cert =
+ { (unsigned char *)server_ca3_rsa_pss2_cert_pem,
+ sizeof(server_ca3_rsa_pss2_cert_pem) - 1
};
static char cli_ca3_rsa_pss_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEAjCCAjqgAwIBAgIMWSa+VhOfC8uEpb/cMD0GCSqGSIb3DQEBCjAwoA0wCwYJ\n"
- "YIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCAaIDAgEgMA8xDTAL\n"
- "BgNVBAMTBENBLTMwHhcNMDQwMjI5MTUyMTQyWhcNMjQwMjI5MTUyMTQxWjANMQsw\n"
- "CQYDVQQGEwJHUjCCAVIwPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAY\n"
- "BgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASADggEPADCCAQoCggEBAL8TnzAG\n"
- "W6iLlapD7ebOX8jXrmA9Pa/NKAxDeeDEu/7TMvtspK8LF92tcxi6p+O0OfRNEAJY\n"
- "XhT+WV3EIBV1XUMFgp9NGLWMhp+bhq80/ND5SAJ2hslaYyxnIu5lNdyKR5SyqkGw\n"
- "WgnYg1Nalf38stN7dClXZcs04t0SaCg1N10xv3iZsmzx7gRswY7V5+CCZG23vRS9\n"
- "PdGCW4LtBKoHFYWqJ/STrOXFTRrB2eM3UaNXff+cyramgFQj2BAi/zmMEwUtDvJE\n"
- "65KB8F6NPG0dLFIW+3p3yPNu5jjoiMqJJM1LtWFcj+hjJ4IJqFGvC2knjt27FlPa\n"
- "8dZ4FgVEOYQRuSUCAwEAAaNQME4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUjFqe\n"
- "vO9heHT9V24WV1ovs7pvUvMwHwYDVR0jBBgwFoAU+aiGGWO2pBQTYHYPAZo1Nu/x\n"
- "tK8wPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgw\n"
- "CwYJYIZIAWUDBAIBogMCASADggGBAI435L6mZnGnCtQdtUBGgypMP2g5VuSBu2lP\n"
- "5msLYuK2vPZTCtCLAg2JSsQhVaDDK+V7wtyXIgnEtQWrDE3RQBmWtCWpVrrP7kh3\n"
- "ZN751l6+z1UTEg8sVQ7MODbEZCB9+2XXAb50Oh4cO65IfUI5Sqnn2+k3ZPLp280s\n"
- "KdlaA4ZzmQSZcgEDWtoch8QiO+HvlXGqjejQUFh1ObBJXpXX5Q7NP5K7ChI82LPJ\n"
- "T+rdqTopIgM3nAg9Je7gqsHiPdEdpArKwQq9wMxTmtQECK6KInueaDXuoDs5xg6k\n"
- "XYQ1fiS0SI/pJ9xn0SCc6BNmkbfTpmKVwF9MWIyGyzWBhkSSWxsKbh5OuUCWJsyG\n"
- "eLOrPK9fVKv/YQCfDHC3F1WI6xtHg7CCD7vvyJv5bFH8LN8YGoZNt1ZfU1lNw7rP\n"
- "sRecz45/okiAbk9/SgnpzHInNBBzYu2Ym+yGVO/tIeErPXrnkM7uF9Di/K1n2+zF\n"
- "vXOeamGsi2jyiC5LbreWecbMnzi3vQ==\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t cli_ca3_rsa_pss_cert = { (unsigned char*)cli_ca3_rsa_pss_cert_pem,
- sizeof(cli_ca3_rsa_pss_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEAjCCAjqgAwIBAgIMWSa+VhOfC8uEpb/cMD0GCSqGSIb3DQEBCjAwoA0wCwYJ\n"
+ "YIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCAaIDAgEgMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwHhcNMDQwMjI5MTUyMTQyWhcNMjQwMjI5MTUyMTQxWjANMQsw\n"
+ "CQYDVQQGEwJHUjCCAVIwPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAY\n"
+ "BgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMCASADggEPADCCAQoCggEBAL8TnzAG\n"
+ "W6iLlapD7ebOX8jXrmA9Pa/NKAxDeeDEu/7TMvtspK8LF92tcxi6p+O0OfRNEAJY\n"
+ "XhT+WV3EIBV1XUMFgp9NGLWMhp+bhq80/ND5SAJ2hslaYyxnIu5lNdyKR5SyqkGw\n"
+ "WgnYg1Nalf38stN7dClXZcs04t0SaCg1N10xv3iZsmzx7gRswY7V5+CCZG23vRS9\n"
+ "PdGCW4LtBKoHFYWqJ/STrOXFTRrB2eM3UaNXff+cyramgFQj2BAi/zmMEwUtDvJE\n"
+ "65KB8F6NPG0dLFIW+3p3yPNu5jjoiMqJJM1LtWFcj+hjJ4IJqFGvC2knjt27FlPa\n"
+ "8dZ4FgVEOYQRuSUCAwEAAaNQME4wDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUjFqe\n"
+ "vO9heHT9V24WV1ovs7pvUvMwHwYDVR0jBBgwFoAU+aiGGWO2pBQTYHYPAZo1Nu/x\n"
+ "tK8wPQYJKoZIhvcNAQEKMDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgw\n"
+ "CwYJYIZIAWUDBAIBogMCASADggGBAI435L6mZnGnCtQdtUBGgypMP2g5VuSBu2lP\n"
+ "5msLYuK2vPZTCtCLAg2JSsQhVaDDK+V7wtyXIgnEtQWrDE3RQBmWtCWpVrrP7kh3\n"
+ "ZN751l6+z1UTEg8sVQ7MODbEZCB9+2XXAb50Oh4cO65IfUI5Sqnn2+k3ZPLp280s\n"
+ "KdlaA4ZzmQSZcgEDWtoch8QiO+HvlXGqjejQUFh1ObBJXpXX5Q7NP5K7ChI82LPJ\n"
+ "T+rdqTopIgM3nAg9Je7gqsHiPdEdpArKwQq9wMxTmtQECK6KInueaDXuoDs5xg6k\n"
+ "XYQ1fiS0SI/pJ9xn0SCc6BNmkbfTpmKVwF9MWIyGyzWBhkSSWxsKbh5OuUCWJsyG\n"
+ "eLOrPK9fVKv/YQCfDHC3F1WI6xtHg7CCD7vvyJv5bFH8LN8YGoZNt1ZfU1lNw7rP\n"
+ "sRecz45/okiAbk9/SgnpzHInNBBzYu2Ym+yGVO/tIeErPXrnkM7uF9Di/K1n2+zF\n"
+ "vXOeamGsi2jyiC5LbreWecbMnzi3vQ==\n" "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t cli_ca3_rsa_pss_cert =
+ { (unsigned char *)cli_ca3_rsa_pss_cert_pem,
+ sizeof(cli_ca3_rsa_pss_cert_pem) - 1
};
-#define cli_ca3_rsa_pss_key server_ca3_rsa_pss_key
+# define cli_ca3_rsa_pss_key server_ca3_rsa_pss_key
/* server EdDSA key */
static char server_ca3_eddsa_key_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MC4CAQAwBQYDK2VwBCIEIBypI9w1qP3WLaiYuWB7zhA99GTG5UsKZVZqPHNlUaIv\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MC4CAQAwBQYDK2VwBCIEIBypI9w1qP3WLaiYuWB7zhA99GTG5UsKZVZqPHNlUaIv\n"
+ "-----END PRIVATE KEY-----\n";
-const gnutls_datum_t server_ca3_eddsa_key = { (unsigned char*)server_ca3_eddsa_key_pem,
- sizeof(server_ca3_eddsa_key_pem)-1
+const gnutls_datum_t server_ca3_eddsa_key =
+ { (unsigned char *)server_ca3_eddsa_key_pem,
+ sizeof(server_ca3_eddsa_key_pem) - 1
};
static char server_ca3_eddsa_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIBEzCBxqADAgECAgxZLBvYDjrxFhfqLoIwBQYDK2VwMA0xCzAJBgNVBAYTAkdS\n"
- "MB4XDTA0MDIyOTE1MjE0MloXDTI0MDIyOTE1MjE0MVowDTELMAkGA1UEBhMCR1Iw\n"
- "KjAFBgMrZXADIQCrr5izw0GNQSIhwYanuHD7RG7HfiCHe9kipF3SlwnVSKNAMD4w\n"
- "DAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB4AAMB0GA1UdDgQWBBSJg0wiKtJf\n"
- "jqv1BmHV8w0JD5X2BjAFBgMrZXADQQB94NbYtwGCvyI6EvBZk5xgOyWNdKVy9peh\n"
- "KKn/PNiAq4fPNEupyzC3AzE1xLzKLRArAFFDDUjPCwy3OR4js3MF\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server_ca3_eddsa_cert = { (unsigned char*)server_ca3_eddsa_cert_pem,
- sizeof(server_ca3_eddsa_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIBEzCBxqADAgECAgxZLBvYDjrxFhfqLoIwBQYDK2VwMA0xCzAJBgNVBAYTAkdS\n"
+ "MB4XDTA0MDIyOTE1MjE0MloXDTI0MDIyOTE1MjE0MVowDTELMAkGA1UEBhMCR1Iw\n"
+ "KjAFBgMrZXADIQCrr5izw0GNQSIhwYanuHD7RG7HfiCHe9kipF3SlwnVSKNAMD4w\n"
+ "DAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB4AAMB0GA1UdDgQWBBSJg0wiKtJf\n"
+ "jqv1BmHV8w0JD5X2BjAFBgMrZXADQQB94NbYtwGCvyI6EvBZk5xgOyWNdKVy9peh\n"
+ "KKn/PNiAq4fPNEupyzC3AzE1xLzKLRArAFFDDUjPCwy3OR4js3MF\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_eddsa_cert =
+ { (unsigned char *)server_ca3_eddsa_cert_pem,
+ sizeof(server_ca3_eddsa_cert_pem) - 1
};
static char server_ca3_gost01_key_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEUCAQAwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEEIgQgR1lBLIr4WBpn\n"
- "4MOCH8oxGWb52EPNL3gjNJiQuBQuf6U=\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MEUCAQAwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEEIgQgR1lBLIr4WBpn\n"
+ "4MOCH8oxGWb52EPNL3gjNJiQuBQuf6U=\n" "-----END PRIVATE KEY-----\n";
-const gnutls_datum_t server_ca3_gost01_key = { (unsigned char*)server_ca3_gost01_key_pem,
- sizeof(server_ca3_gost01_key_pem)-1
+const gnutls_datum_t server_ca3_gost01_key =
+ { (unsigned char *)server_ca3_gost01_key_pem,
+ sizeof(server_ca3_gost01_key_pem) - 1
};
static char server_ca3_gost01_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIC7TCCAVWgAwIBAgIIWcZJ7xuHksUwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xOTEwMDgxMDQ2NDBaGA85OTk5MTIzMTIzNTk1OVowDTELMAkG\n"
- "A1UEAxMCR1IwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARA0Lvp\n"
- "9MaoYDxzkURVz71Q3Sw9Wrwa2F483xDd0mOID8CK7JY8C8gz/1dfZniUObT1JMa6\n"
- "hkGsQyFvPLD6Vr1bN6OBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxv\n"
- "Y2FsaG9zdDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB4AAMB0G\n"
- "A1UdDgQWBBSGUfwGWchcx3r3TNANllOEOFkTWDAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
- "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEACdzEVIyFvPlx2J7Ab4Hq\n"
- "Oz0IGk2QaZ4cJkWZxjrPc7u6XCeBah8TEtF12LJ6vXBS+Cf9IF50YIMK/8GjJjs1\n"
- "Allwdx79RuWFS2TdnsAjsAWwyKBQITkmv/kXULtExC9ospdGVIeYbdcmufgk023Q\n"
- "PJh5LAMXHZ1lrsI1DgBhihgZx86wTAGd8yRC+dratvSbawC0sFan8X1n9R/Fxkzt\n"
- "YuLEulh7FZpTWPYu30fyUrpEZVCWPlCzCrSijhCVBhAnT4eEGd7qmU0Oj+khHFNn\n"
- "iVJ40/3JG21Yln2t/8uY1YIM2+ISTk4n2gkmXHrRAfNi3bXupdQQyAqRRT7b/Y/y\n"
- "jhYzWekGLAvz0qrS78Ls8Kp7TfhIVEcWz9pfo77SmURxT6SDTiet7W5VD+VaS+hW\n"
- "jl4L+IGxCsBIY5mWlT8KYTNHG34ln+5W+TfZMGARZFf4ZfQi2lgs3p0oqn6f9c+w\n"
- "AdMyo73YqtbmVT2eGB05ezMeRl2Anjfwvj9JinhHMC04\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server_ca3_gost01_cert = { (unsigned char*)server_ca3_gost01_cert_pem,
- sizeof(server_ca3_gost01_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC7TCCAVWgAwIBAgIIWcZJ7xuHksUwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xOTEwMDgxMDQ2NDBaGA85OTk5MTIzMTIzNTk1OVowDTELMAkG\n"
+ "A1UEAxMCR1IwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYHKoUDAgIeAQNDAARA0Lvp\n"
+ "9MaoYDxzkURVz71Q3Sw9Wrwa2F483xDd0mOID8CK7JY8C8gz/1dfZniUObT1JMa6\n"
+ "hkGsQyFvPLD6Vr1bN6OBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxv\n"
+ "Y2FsaG9zdDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB4AAMB0G\n"
+ "A1UdDgQWBBSGUfwGWchcx3r3TNANllOEOFkTWDAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
+ "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEACdzEVIyFvPlx2J7Ab4Hq\n"
+ "Oz0IGk2QaZ4cJkWZxjrPc7u6XCeBah8TEtF12LJ6vXBS+Cf9IF50YIMK/8GjJjs1\n"
+ "Allwdx79RuWFS2TdnsAjsAWwyKBQITkmv/kXULtExC9ospdGVIeYbdcmufgk023Q\n"
+ "PJh5LAMXHZ1lrsI1DgBhihgZx86wTAGd8yRC+dratvSbawC0sFan8X1n9R/Fxkzt\n"
+ "YuLEulh7FZpTWPYu30fyUrpEZVCWPlCzCrSijhCVBhAnT4eEGd7qmU0Oj+khHFNn\n"
+ "iVJ40/3JG21Yln2t/8uY1YIM2+ISTk4n2gkmXHrRAfNi3bXupdQQyAqRRT7b/Y/y\n"
+ "jhYzWekGLAvz0qrS78Ls8Kp7TfhIVEcWz9pfo77SmURxT6SDTiet7W5VD+VaS+hW\n"
+ "jl4L+IGxCsBIY5mWlT8KYTNHG34ln+5W+TfZMGARZFf4ZfQi2lgs3p0oqn6f9c+w\n"
+ "AdMyo73YqtbmVT2eGB05ezMeRl2Anjfwvj9JinhHMC04\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_gost01_cert =
+ { (unsigned char *)server_ca3_gost01_cert_pem,
+ sizeof(server_ca3_gost01_cert_pem) - 1
};
static char server_ca3_gost12_256_key_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIkAAYIKoUDBwEBAgIEIgQg0+JttJEV\n"
- "Ud+XBzX9q13ByKK+j2b+mEmNIo1yB0wGleo=\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MEgCAQAwHwYIKoUDBwEBAQEwEwYHKoUDAgIkAAYIKoUDBwEBAgIEIgQg0+JttJEV\n"
+ "Ud+XBzX9q13ByKK+j2b+mEmNIo1yB0wGleo=\n" "-----END PRIVATE KEY-----\n";
-const gnutls_datum_t server_ca3_gost12_256_key = { (unsigned char*)server_ca3_gost12_256_key_pem,
- sizeof(server_ca3_gost12_256_key_pem)-1
+const gnutls_datum_t server_ca3_gost12_256_key =
+ { (unsigned char *)server_ca3_gost12_256_key_pem,
+ sizeof(server_ca3_gost12_256_key_pem) - 1
};
static char server_ca3_gost12_256_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIC8DCCAVigAwIBAgIIWcZKgxkCMvcwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xOTEwMDgxMDQ4MTZaGA85OTk5MTIzMTIzNTk1OVowDTELMAkG\n"
- "A1UEAxMCR1IwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARA\n"
- "J9sMEEx0JW9QsT5bDqyc0TNcjVg9ZSdp4GkMtShM+OOgyBGrWK3zLP5IzHYSXja8\n"
- "373QrJOUvdX7T7TUk5yU5aOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuC\n"
- "CWxvY2FsaG9zdDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB4AA\n"
- "MB0GA1UdDgQWBBQYSEtdwsYrtnOq6Ya3nt8DgFPCQjAfBgNVHSMEGDAWgBT5qIYZ\n"
- "Y7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAR0xtx7MWEP1KyIzM\n"
- "4lXKdTyU4Nve5RcgqF82yR/0odqT5MPoaZDvLuRWEcQryztZD3kmRUmPmn1ujSfc\n"
- "BbPfRnSutDXcf6imq0/U1/TV/BF3vpS1plltzetvibf8MYetHVFQHUBJDZJHh9h7\n"
- "PGwA9SnmnGKFIxFdV6bVOLkPR54Gob9zN3E17KslL19lNtht1pxk9pshwTn35oRY\n"
- "uOdxof9F4XjpI/4WbC8kp15QeG8XyZd5JWSl+niNOqYK31+ilQdVBr4RiZSDIcAg\n"
- "twS5yV9Ap+R8rM8TLbeT2io4rhdUgmDllUf49zV3t6AbVvbsQfkqXmHXW8uW2WBu\n"
- "A8FiXEbIIOb+QIW0ZGwk3BVQ7wdiw1M5w6kYtz5kBtNPxBmc+eu1+e6EAfYbFNr3\n"
- "pkxtMk3veYWHb5s3dHZ4/t2Rn85hWqh03CWwCkKTN3qmEs4/XpybbXE/UE49e7u1\n"
- "FkpM1bT/0gUNsNt5h3pyUzQZdiB0XbdGGFta3tB3+inIO45h\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server_ca3_gost12_256_cert = { (unsigned char*)server_ca3_gost12_256_cert_pem,
- sizeof(server_ca3_gost12_256_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC8DCCAVigAwIBAgIIWcZKgxkCMvcwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xOTEwMDgxMDQ4MTZaGA85OTk5MTIzMTIzNTk1OVowDTELMAkG\n"
+ "A1UEAxMCR1IwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARA\n"
+ "J9sMEEx0JW9QsT5bDqyc0TNcjVg9ZSdp4GkMtShM+OOgyBGrWK3zLP5IzHYSXja8\n"
+ "373QrJOUvdX7T7TUk5yU5aOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuC\n"
+ "CWxvY2FsaG9zdDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB4AA\n"
+ "MB0GA1UdDgQWBBQYSEtdwsYrtnOq6Ya3nt8DgFPCQjAfBgNVHSMEGDAWgBT5qIYZ\n"
+ "Y7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAR0xtx7MWEP1KyIzM\n"
+ "4lXKdTyU4Nve5RcgqF82yR/0odqT5MPoaZDvLuRWEcQryztZD3kmRUmPmn1ujSfc\n"
+ "BbPfRnSutDXcf6imq0/U1/TV/BF3vpS1plltzetvibf8MYetHVFQHUBJDZJHh9h7\n"
+ "PGwA9SnmnGKFIxFdV6bVOLkPR54Gob9zN3E17KslL19lNtht1pxk9pshwTn35oRY\n"
+ "uOdxof9F4XjpI/4WbC8kp15QeG8XyZd5JWSl+niNOqYK31+ilQdVBr4RiZSDIcAg\n"
+ "twS5yV9Ap+R8rM8TLbeT2io4rhdUgmDllUf49zV3t6AbVvbsQfkqXmHXW8uW2WBu\n"
+ "A8FiXEbIIOb+QIW0ZGwk3BVQ7wdiw1M5w6kYtz5kBtNPxBmc+eu1+e6EAfYbFNr3\n"
+ "pkxtMk3veYWHb5s3dHZ4/t2Rn85hWqh03CWwCkKTN3qmEs4/XpybbXE/UE49e7u1\n"
+ "FkpM1bT/0gUNsNt5h3pyUzQZdiB0XbdGGFta3tB3+inIO45h\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_gost12_256_cert =
+ { (unsigned char *)server_ca3_gost12_256_cert_pem,
+ sizeof(server_ca3_gost12_256_cert_pem) - 1
};
static char server_ca3_gost12_512_key_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MGACAQAwFwYIKoUDBwEBAQIwCwYJKoUDBwECAQIBBEIEQJLtsCFM/m6blvHOJoqS\n"
- "FvrFIjlYFAJKVqIc8FoxuCaAmIXxG5sXuTRgx5+m3T6wDca9UYAqMvsIsEREObti\n"
- "+W8=\n"
- "-----END PRIVATE KEY-----\n";
-
-const gnutls_datum_t server_ca3_gost12_512_key = { (unsigned char*)server_ca3_gost12_512_key_pem,
- sizeof(server_ca3_gost12_512_key_pem)-1
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MGACAQAwFwYIKoUDBwEBAQIwCwYJKoUDBwECAQIBBEIEQJLtsCFM/m6blvHOJoqS\n"
+ "FvrFIjlYFAJKVqIc8FoxuCaAmIXxG5sXuTRgx5+m3T6wDca9UYAqMvsIsEREObti\n"
+ "+W8=\n" "-----END PRIVATE KEY-----\n";
+
+const gnutls_datum_t server_ca3_gost12_512_key =
+ { (unsigned char *)server_ca3_gost12_512_key_pem,
+ sizeof(server_ca3_gost12_512_key_pem) - 1
};
static char server_ca3_gost12_512_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDKzCCAZOgAwIBAgIIWcZKvSvigz0wDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xOTEwMDgxMTAwNDRaGA85OTk5MTIzMTIzNTk1OVowDTELMAkG\n"
- "A1UEAxMCR1IwgaAwFwYIKoUDBwEBAQIwCwYJKoUDBwECAQIBA4GEAASBgDIyIpfh\n"
- "R0umZWQl6GEhjjhjZ6cWlYJ41JHo6hx8cLxHopOjSrHEQRxabnfI07e9IjlK0MZu\n"
- "oS8ngfbyAEI0LycgiOgDTriO8l10NEM/Yr1l+A5qHsZ9Oh46ijUlPTT6WEZzK/yU\n"
- "RQmjg0TQFQUPQrwSfkW8lJzbINwaHCWWqSdxo4GNMIGKMAwGA1UdEwEB/wQCMAAw\n"
- "FAYDVR0RBA0wC4IJbG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1Ud\n"
- "DwEB/wQFAwMHgAAwHQYDVR0OBBYEFF7gSAq4EPp6G8FYvT+ECRRVrGTcMB8GA1Ud\n"
- "IwQYMBaAFPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQAO\n"
- "kFNTy9UqIkG5tDiW+O8QuV8A+Xvw2CLiIqDvkLhR1FQnXYs5OFquNBLyA2NSR5bk\n"
- "OO+68sXj6iB9tGJWhHXo6efwsxR4maxHv7R8Gp6fFysEGtVV1MG+vpNOjoQNreVh\n"
- "41D9/FU7eVqe6oSw5DtuUQvwrk3jooT4b9dpk2g1ihY33BrpA+vg9XnvN3+7dDNd\n"
- "0xfRXKR9aGhWZsschps9xJqfzx63CZrH14+jHKxYPupSL7d/Akm3MDOf9XLa+vnY\n"
- "WG6lHpkvGl0b8A6yxHHqDCctnE+aJGK6lMyZ1cd8GiStgcihussKGKvKsKygAM4J\n"
- "zPxBQtTv11qjuyMksq5Gw6ctq/GO/M7eUoi/xf/O9+QOwDO/urocBJYY0BmsQWlR\n"
- "VFjuOouE2GN7UPo6VyMiXpe75Wi9CNX/szNF+HnS4hCJGV5kz4ULaJnFxPE/oQwa\n"
- "nlFDKO1feGQG0gOyf2jMzY1OD35SYss4Falc18iB3YQKigGkyqb+VeGyE8kq1UY=\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server_ca3_gost12_512_cert = { (unsigned char*)server_ca3_gost12_512_cert_pem,
- sizeof(server_ca3_gost12_512_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDKzCCAZOgAwIBAgIIWcZKvSvigz0wDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xOTEwMDgxMTAwNDRaGA85OTk5MTIzMTIzNTk1OVowDTELMAkG\n"
+ "A1UEAxMCR1IwgaAwFwYIKoUDBwEBAQIwCwYJKoUDBwECAQIBA4GEAASBgDIyIpfh\n"
+ "R0umZWQl6GEhjjhjZ6cWlYJ41JHo6hx8cLxHopOjSrHEQRxabnfI07e9IjlK0MZu\n"
+ "oS8ngfbyAEI0LycgiOgDTriO8l10NEM/Yr1l+A5qHsZ9Oh46ijUlPTT6WEZzK/yU\n"
+ "RQmjg0TQFQUPQrwSfkW8lJzbINwaHCWWqSdxo4GNMIGKMAwGA1UdEwEB/wQCMAAw\n"
+ "FAYDVR0RBA0wC4IJbG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1Ud\n"
+ "DwEB/wQFAwMHgAAwHQYDVR0OBBYEFF7gSAq4EPp6G8FYvT+ECRRVrGTcMB8GA1Ud\n"
+ "IwQYMBaAFPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQAO\n"
+ "kFNTy9UqIkG5tDiW+O8QuV8A+Xvw2CLiIqDvkLhR1FQnXYs5OFquNBLyA2NSR5bk\n"
+ "OO+68sXj6iB9tGJWhHXo6efwsxR4maxHv7R8Gp6fFysEGtVV1MG+vpNOjoQNreVh\n"
+ "41D9/FU7eVqe6oSw5DtuUQvwrk3jooT4b9dpk2g1ihY33BrpA+vg9XnvN3+7dDNd\n"
+ "0xfRXKR9aGhWZsschps9xJqfzx63CZrH14+jHKxYPupSL7d/Akm3MDOf9XLa+vnY\n"
+ "WG6lHpkvGl0b8A6yxHHqDCctnE+aJGK6lMyZ1cd8GiStgcihussKGKvKsKygAM4J\n"
+ "zPxBQtTv11qjuyMksq5Gw6ctq/GO/M7eUoi/xf/O9+QOwDO/urocBJYY0BmsQWlR\n"
+ "VFjuOouE2GN7UPo6VyMiXpe75Wi9CNX/szNF+HnS4hCJGV5kz4ULaJnFxPE/oQwa\n"
+ "nlFDKO1feGQG0gOyf2jMzY1OD35SYss4Falc18iB3YQKigGkyqb+VeGyE8kq1UY=\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_gost12_512_cert =
+ { (unsigned char *)server_ca3_gost12_512_cert_pem,
+ sizeof(server_ca3_gost12_512_cert_pem) - 1
};
/* shares server_ca3 key */
static char server_localhost6_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIENzCCAp+gAwIBAgIMV6MdMjdkWPp7Um/XMA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
- "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1MTU1WhgPOTk5OTEyMzEyMzU5NTla\n"
- "MAAwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZPXiZqiz3wLuz+B4Z\n"
- "nJuCphLEX7k15NcpamL3+9ea4gXyfeFSHbSaihPauBUcDMVbL/wfkhxYiJRCX7wq\n"
- "HIkJK4En5aEzSDDa6pI/CI5lSbiXdNDGbFLh5b8Guvhfzyy8lDjFNNy3abkfU270\n"
- "tnzFY5mkYwYgjuN/RgPqh0b8McT+xUeN9x4PuSXXmMC1r3v7y4JuMxE8ZzGDhW2a\n"
- "QK5Is6QYv0WELS5hVvB8GdP5XQwTJw4HH5i/YES7TENV2RByzRY8hFQ9SbK5YHHG\n"
- "oszVJIlIuxm5v8N2Ig1cW6t7t3HnuZbDYRDCERMiEigBz8vEZZyFsMLg5Z7JiNKS\n"
- "G/f+ER9CzDJXHgxBctV9EEc2KmRT1P9JeI/xZUOl9lKljc+t8m0Um3Asx5duWm4t\n"
- "cZm7FecnaJiTXD/tEG64qTKWtDuoI7+X9MjHe5lvf2gIJT3CoKW24Rn6O1fc9oCC\n"
- "nVAi0V6FLM4XaG50X9NC666RVEFkXih8THA1gC9m9NJMrD0CAwEAAaOBnDCBmTAM\n"
- "BgNVHRMBAf8EAjAAMCMGA1UdEQQcMBqCCmxvY2FsaG9zdDaCDHd3dy5ub25lLm9y\n"
- "ZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQW\n"
- "BBQzneEn04vV/OsF/LXHgWlPXjvZ1jAfBgNVHSMEGDAWgBQtMwQbJ3+UBHzH4zVP\n"
- "6SWklOG3oTANBgkqhkiG9w0BAQsFAAOCAYEALXeJO70urguPXDXTPPfqOVZb9NOh\n"
- "+1rHRtt1LIr6WxGMLDIuUwwjhExSR/XDnhzgy1G6Zxodsm1FV5aEmDhU9cz0MpkF\n"
- "G1ndhGK+Y3Qey9L/8x7yuHoqLfcqiqe5Kxpq9zVfy87M1JC8FuFpRXgnXkbjnPRm\n"
- "rDA7d0KtJfU93mmoI1yPDqYcJK6I62waIfRn5AcgGiMr8tT5oreIXPhjxiU15Say\n"
- "ETqT0nSx3kB1VTm0K4mByIueGclnb5epUQ/suq9S++QW7Z9DD/8bfehXZaB1lb7r\n"
- "jTMFQAzmrR7x53ZwKWry5iu6MXxFnWKTpBdGcgztbj34NM4VLqrdC15c0lj+OJ/3\n"
- "0sbJ1YU3XCh6GZ96t3RPevSvimxMZfVquoBrr7/79PKxOnBY+amJYILqjzqvqIvr\n"
- "LoPj0OuKmN7XiWINFAgz5/oj8Bq/4vu8Bsu4fwbgMeHt5Z0eIo8XtqblxnCASFDZ\n"
- "yrRp0uKt24DKjSiJWnoqc+VjuvFECgGUzdts\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIENzCCAp+gAwIBAgIMV6MdMjdkWPp7Um/XMA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
+ "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1MTU1WhgPOTk5OTEyMzEyMzU5NTla\n"
+ "MAAwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZPXiZqiz3wLuz+B4Z\n"
+ "nJuCphLEX7k15NcpamL3+9ea4gXyfeFSHbSaihPauBUcDMVbL/wfkhxYiJRCX7wq\n"
+ "HIkJK4En5aEzSDDa6pI/CI5lSbiXdNDGbFLh5b8Guvhfzyy8lDjFNNy3abkfU270\n"
+ "tnzFY5mkYwYgjuN/RgPqh0b8McT+xUeN9x4PuSXXmMC1r3v7y4JuMxE8ZzGDhW2a\n"
+ "QK5Is6QYv0WELS5hVvB8GdP5XQwTJw4HH5i/YES7TENV2RByzRY8hFQ9SbK5YHHG\n"
+ "oszVJIlIuxm5v8N2Ig1cW6t7t3HnuZbDYRDCERMiEigBz8vEZZyFsMLg5Z7JiNKS\n"
+ "G/f+ER9CzDJXHgxBctV9EEc2KmRT1P9JeI/xZUOl9lKljc+t8m0Um3Asx5duWm4t\n"
+ "cZm7FecnaJiTXD/tEG64qTKWtDuoI7+X9MjHe5lvf2gIJT3CoKW24Rn6O1fc9oCC\n"
+ "nVAi0V6FLM4XaG50X9NC666RVEFkXih8THA1gC9m9NJMrD0CAwEAAaOBnDCBmTAM\n"
+ "BgNVHRMBAf8EAjAAMCMGA1UdEQQcMBqCCmxvY2FsaG9zdDaCDHd3dy5ub25lLm9y\n"
+ "ZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQW\n"
+ "BBQzneEn04vV/OsF/LXHgWlPXjvZ1jAfBgNVHSMEGDAWgBQtMwQbJ3+UBHzH4zVP\n"
+ "6SWklOG3oTANBgkqhkiG9w0BAQsFAAOCAYEALXeJO70urguPXDXTPPfqOVZb9NOh\n"
+ "+1rHRtt1LIr6WxGMLDIuUwwjhExSR/XDnhzgy1G6Zxodsm1FV5aEmDhU9cz0MpkF\n"
+ "G1ndhGK+Y3Qey9L/8x7yuHoqLfcqiqe5Kxpq9zVfy87M1JC8FuFpRXgnXkbjnPRm\n"
+ "rDA7d0KtJfU93mmoI1yPDqYcJK6I62waIfRn5AcgGiMr8tT5oreIXPhjxiU15Say\n"
+ "ETqT0nSx3kB1VTm0K4mByIueGclnb5epUQ/suq9S++QW7Z9DD/8bfehXZaB1lb7r\n"
+ "jTMFQAzmrR7x53ZwKWry5iu6MXxFnWKTpBdGcgztbj34NM4VLqrdC15c0lj+OJ/3\n"
+ "0sbJ1YU3XCh6GZ96t3RPevSvimxMZfVquoBrr7/79PKxOnBY+amJYILqjzqvqIvr\n"
+ "LoPj0OuKmN7XiWINFAgz5/oj8Bq/4vu8Bsu4fwbgMeHt5Z0eIo8XtqblxnCASFDZ\n"
+ "yrRp0uKt24DKjSiJWnoqc+VjuvFECgGUzdts\n" "-----END CERTIFICATE-----\n";
static char server_localhost6_ca3_cert_chain_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIENzCCAp+gAwIBAgIMV6MdMjdkWPp7Um/XMA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
- "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1MTU1WhgPOTk5OTEyMzEyMzU5NTla\n"
- "MAAwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZPXiZqiz3wLuz+B4Z\n"
- "nJuCphLEX7k15NcpamL3+9ea4gXyfeFSHbSaihPauBUcDMVbL/wfkhxYiJRCX7wq\n"
- "HIkJK4En5aEzSDDa6pI/CI5lSbiXdNDGbFLh5b8Guvhfzyy8lDjFNNy3abkfU270\n"
- "tnzFY5mkYwYgjuN/RgPqh0b8McT+xUeN9x4PuSXXmMC1r3v7y4JuMxE8ZzGDhW2a\n"
- "QK5Is6QYv0WELS5hVvB8GdP5XQwTJw4HH5i/YES7TENV2RByzRY8hFQ9SbK5YHHG\n"
- "oszVJIlIuxm5v8N2Ig1cW6t7t3HnuZbDYRDCERMiEigBz8vEZZyFsMLg5Z7JiNKS\n"
- "G/f+ER9CzDJXHgxBctV9EEc2KmRT1P9JeI/xZUOl9lKljc+t8m0Um3Asx5duWm4t\n"
- "cZm7FecnaJiTXD/tEG64qTKWtDuoI7+X9MjHe5lvf2gIJT3CoKW24Rn6O1fc9oCC\n"
- "nVAi0V6FLM4XaG50X9NC666RVEFkXih8THA1gC9m9NJMrD0CAwEAAaOBnDCBmTAM\n"
- "BgNVHRMBAf8EAjAAMCMGA1UdEQQcMBqCCmxvY2FsaG9zdDaCDHd3dy5ub25lLm9y\n"
- "ZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQW\n"
- "BBQzneEn04vV/OsF/LXHgWlPXjvZ1jAfBgNVHSMEGDAWgBQtMwQbJ3+UBHzH4zVP\n"
- "6SWklOG3oTANBgkqhkiG9w0BAQsFAAOCAYEALXeJO70urguPXDXTPPfqOVZb9NOh\n"
- "+1rHRtt1LIr6WxGMLDIuUwwjhExSR/XDnhzgy1G6Zxodsm1FV5aEmDhU9cz0MpkF\n"
- "G1ndhGK+Y3Qey9L/8x7yuHoqLfcqiqe5Kxpq9zVfy87M1JC8FuFpRXgnXkbjnPRm\n"
- "rDA7d0KtJfU93mmoI1yPDqYcJK6I62waIfRn5AcgGiMr8tT5oreIXPhjxiU15Say\n"
- "ETqT0nSx3kB1VTm0K4mByIueGclnb5epUQ/suq9S++QW7Z9DD/8bfehXZaB1lb7r\n"
- "jTMFQAzmrR7x53ZwKWry5iu6MXxFnWKTpBdGcgztbj34NM4VLqrdC15c0lj+OJ/3\n"
- "0sbJ1YU3XCh6GZ96t3RPevSvimxMZfVquoBrr7/79PKxOnBY+amJYILqjzqvqIvr\n"
- "LoPj0OuKmN7XiWINFAgz5/oj8Bq/4vu8Bsu4fwbgMeHt5Z0eIo8XtqblxnCASFDZ\n"
- "yrRp0uKt24DKjSiJWnoqc+VjuvFECgGUzdts\n"
- "-----END CERTIFICATE-----\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5NTlaMBIx\n"
- "EDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n"
- "gQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2WLiope/x\n"
- "NL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioVtvPQwEpv\n"
- "uI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR5+wGsJDv\n"
- "kfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJrP+GtLiG0\n"
- "AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj0Sk3Rq93\n"
- "JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1ROsdk4WU\n"
- "ed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH4vysDO9U\n"
- "ZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B48xfmyIF\n"
- "jgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\n"
- "A1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
- "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58oDRy5a0o\n"
- "PvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68kogjKs31\n"
- "QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmTsQOdv/bz\n"
- "R+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT45SGw7c7F\n"
- "cumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2gaygWNiD\n"
- "+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiujgUV0TZH\n"
- "EyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c4FdrCByV\n"
- "haeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1Y1MQ72Sn\n"
- "frzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
- "-----END CERTIFICATE-----\n";
-
-
-const gnutls_datum_t server_ca3_localhost6_cert = { (unsigned char*)server_localhost6_ca3_cert_pem,
- sizeof(server_localhost6_ca3_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIENzCCAp+gAwIBAgIMV6MdMjdkWPp7Um/XMA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
+ "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1MTU1WhgPOTk5OTEyMzEyMzU5NTla\n"
+ "MAAwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZPXiZqiz3wLuz+B4Z\n"
+ "nJuCphLEX7k15NcpamL3+9ea4gXyfeFSHbSaihPauBUcDMVbL/wfkhxYiJRCX7wq\n"
+ "HIkJK4En5aEzSDDa6pI/CI5lSbiXdNDGbFLh5b8Guvhfzyy8lDjFNNy3abkfU270\n"
+ "tnzFY5mkYwYgjuN/RgPqh0b8McT+xUeN9x4PuSXXmMC1r3v7y4JuMxE8ZzGDhW2a\n"
+ "QK5Is6QYv0WELS5hVvB8GdP5XQwTJw4HH5i/YES7TENV2RByzRY8hFQ9SbK5YHHG\n"
+ "oszVJIlIuxm5v8N2Ig1cW6t7t3HnuZbDYRDCERMiEigBz8vEZZyFsMLg5Z7JiNKS\n"
+ "G/f+ER9CzDJXHgxBctV9EEc2KmRT1P9JeI/xZUOl9lKljc+t8m0Um3Asx5duWm4t\n"
+ "cZm7FecnaJiTXD/tEG64qTKWtDuoI7+X9MjHe5lvf2gIJT3CoKW24Rn6O1fc9oCC\n"
+ "nVAi0V6FLM4XaG50X9NC666RVEFkXih8THA1gC9m9NJMrD0CAwEAAaOBnDCBmTAM\n"
+ "BgNVHRMBAf8EAjAAMCMGA1UdEQQcMBqCCmxvY2FsaG9zdDaCDHd3dy5ub25lLm9y\n"
+ "ZzATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQW\n"
+ "BBQzneEn04vV/OsF/LXHgWlPXjvZ1jAfBgNVHSMEGDAWgBQtMwQbJ3+UBHzH4zVP\n"
+ "6SWklOG3oTANBgkqhkiG9w0BAQsFAAOCAYEALXeJO70urguPXDXTPPfqOVZb9NOh\n"
+ "+1rHRtt1LIr6WxGMLDIuUwwjhExSR/XDnhzgy1G6Zxodsm1FV5aEmDhU9cz0MpkF\n"
+ "G1ndhGK+Y3Qey9L/8x7yuHoqLfcqiqe5Kxpq9zVfy87M1JC8FuFpRXgnXkbjnPRm\n"
+ "rDA7d0KtJfU93mmoI1yPDqYcJK6I62waIfRn5AcgGiMr8tT5oreIXPhjxiU15Say\n"
+ "ETqT0nSx3kB1VTm0K4mByIueGclnb5epUQ/suq9S++QW7Z9DD/8bfehXZaB1lb7r\n"
+ "jTMFQAzmrR7x53ZwKWry5iu6MXxFnWKTpBdGcgztbj34NM4VLqrdC15c0lj+OJ/3\n"
+ "0sbJ1YU3XCh6GZ96t3RPevSvimxMZfVquoBrr7/79PKxOnBY+amJYILqjzqvqIvr\n"
+ "LoPj0OuKmN7XiWINFAgz5/oj8Bq/4vu8Bsu4fwbgMeHt5Z0eIo8XtqblxnCASFDZ\n"
+ "yrRp0uKt24DKjSiJWnoqc+VjuvFECgGUzdts\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5NTlaMBIx\n"
+ "EDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n"
+ "gQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2WLiope/x\n"
+ "NL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioVtvPQwEpv\n"
+ "uI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR5+wGsJDv\n"
+ "kfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJrP+GtLiG0\n"
+ "AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj0Sk3Rq93\n"
+ "JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1ROsdk4WU\n"
+ "ed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH4vysDO9U\n"
+ "ZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B48xfmyIF\n"
+ "jgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\n"
+ "A1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
+ "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58oDRy5a0o\n"
+ "PvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68kogjKs31\n"
+ "QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmTsQOdv/bz\n"
+ "R+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT45SGw7c7F\n"
+ "cumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2gaygWNiD\n"
+ "+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiujgUV0TZH\n"
+ "EyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c4FdrCByV\n"
+ "haeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1Y1MQ72Sn\n"
+ "frzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_localhost6_cert =
+ { (unsigned char *)server_localhost6_ca3_cert_pem,
+ sizeof(server_localhost6_ca3_cert_pem) - 1
};
-
const gnutls_datum_t server_ca3_localhost6_cert_chain = {
- (unsigned char*)server_localhost6_ca3_cert_chain_pem,
- sizeof(server_localhost6_ca3_cert_chain_pem)-1
+ (unsigned char *)server_localhost6_ca3_cert_chain_pem,
+ sizeof(server_localhost6_ca3_cert_chain_pem) - 1
};
/* shares server_ca3 key */
static char server_ipaddr_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEAzCCAmugAwIBAgIMWNI1ISkCpEsFglgfMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTMwHhcNMDQwMjI5MTUyMTQyWhcNMjQwMjI5MTUyMTQxWjANMQsw\n"
- "CQYDVQQGEwJHUjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmq\n"
- "LPfAu7P4Hhmcm4KmEsRfuTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+S\n"
- "HFiIlEJfvCociQkrgSfloTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU0\n"
- "3LdpuR9TbvS2fMVjmaRjBiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4z\n"
- "ETxnMYOFbZpArkizpBi/RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyE\n"
- "VD1JsrlgccaizNUkiUi7Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWw\n"
- "wuDlnsmI0pIb9/4RH0LMMlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSb\n"
- "cCzHl25abi1xmbsV5ydomJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbh\n"
- "Gfo7V9z2gIKdUCLRXoUszhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQAB\n"
- "o2EwXzAMBgNVHRMBAf8EAjAAMA8GA1UdEQQIMAaHBH8AAAEwHQYDVR0OBBYEFDOd\n"
- "4SfTi9X86wX8tceBaU9eO9nWMB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv\n"
- "8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQCNwaCnuNcrSpKjNI99kwuS2/LRnt40yN0B\n"
- "LvN4wnkfEh02LXg2ylXCYZZw59m3w7Cefr1BGLXJjbJTNHASjSOvmurJVEX5sqdX\n"
- "zGQs9HzysDvTVHQh1VUWXyj612DUWZoAYYaUg+CiAZLA/ShT+zN/OC8kWa1RXZPt\n"
- "BfTM7REBxAOxUEDuL1aa/KkFqXgy3cr795TWqdt0lZ/dk7kHxqZKR7nJ2TcOmYK9\n"
- "UdJWnmebDgjlRvXS4CgG8JNzyJtukogSjmp7qsxX9QZ1umUw3Lf7StSdXZT1oIDI\n"
- "evLJCTohtE3/ocRlHfQ9l+B8V+8z7YE+0liFwjwUyrYVUpJ2YuPmHHfauTI2JyVX\n"
- "Kk9dJopvnkhA6rIvNjkd3N3iWE3ftSkk/PV9Iu7PQ2jtR8JXkPMJfgq0owbxhn5N\n"
- "oqQW/zQU7pq4Y9+rvH2qPFSxHGmecBhxetXoAPT66hHJCUTAspF/5DgT6TVMu+Gs\n"
- "hiRt+POJ1lVlGUHsF9Z7IE/d+NCESwU=\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEAzCCAmugAwIBAgIMWNI1ISkCpEsFglgfMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwHhcNMDQwMjI5MTUyMTQyWhcNMjQwMjI5MTUyMTQxWjANMQsw\n"
+ "CQYDVQQGEwJHUjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmq\n"
+ "LPfAu7P4Hhmcm4KmEsRfuTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+S\n"
+ "HFiIlEJfvCociQkrgSfloTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU0\n"
+ "3LdpuR9TbvS2fMVjmaRjBiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4z\n"
+ "ETxnMYOFbZpArkizpBi/RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyE\n"
+ "VD1JsrlgccaizNUkiUi7Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWw\n"
+ "wuDlnsmI0pIb9/4RH0LMMlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSb\n"
+ "cCzHl25abi1xmbsV5ydomJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbh\n"
+ "Gfo7V9z2gIKdUCLRXoUszhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQAB\n"
+ "o2EwXzAMBgNVHRMBAf8EAjAAMA8GA1UdEQQIMAaHBH8AAAEwHQYDVR0OBBYEFDOd\n"
+ "4SfTi9X86wX8tceBaU9eO9nWMB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv\n"
+ "8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQCNwaCnuNcrSpKjNI99kwuS2/LRnt40yN0B\n"
+ "LvN4wnkfEh02LXg2ylXCYZZw59m3w7Cefr1BGLXJjbJTNHASjSOvmurJVEX5sqdX\n"
+ "zGQs9HzysDvTVHQh1VUWXyj612DUWZoAYYaUg+CiAZLA/ShT+zN/OC8kWa1RXZPt\n"
+ "BfTM7REBxAOxUEDuL1aa/KkFqXgy3cr795TWqdt0lZ/dk7kHxqZKR7nJ2TcOmYK9\n"
+ "UdJWnmebDgjlRvXS4CgG8JNzyJtukogSjmp7qsxX9QZ1umUw3Lf7StSdXZT1oIDI\n"
+ "evLJCTohtE3/ocRlHfQ9l+B8V+8z7YE+0liFwjwUyrYVUpJ2YuPmHHfauTI2JyVX\n"
+ "Kk9dJopvnkhA6rIvNjkd3N3iWE3ftSkk/PV9Iu7PQ2jtR8JXkPMJfgq0owbxhn5N\n"
+ "oqQW/zQU7pq4Y9+rvH2qPFSxHGmecBhxetXoAPT66hHJCUTAspF/5DgT6TVMu+Gs\n"
+ "hiRt+POJ1lVlGUHsF9Z7IE/d+NCESwU=\n" "-----END CERTIFICATE-----\n";
static char server_ipaddr_ca3_cert_chain_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEAzCCAmugAwIBAgIMWNI1ISkCpEsFglgfMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTMwHhcNMDQwMjI5MTUyMTQyWhcNMjQwMjI5MTUyMTQxWjANMQsw\n"
- "CQYDVQQGEwJHUjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmq\n"
- "LPfAu7P4Hhmcm4KmEsRfuTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+S\n"
- "HFiIlEJfvCociQkrgSfloTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU0\n"
- "3LdpuR9TbvS2fMVjmaRjBiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4z\n"
- "ETxnMYOFbZpArkizpBi/RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyE\n"
- "VD1JsrlgccaizNUkiUi7Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWw\n"
- "wuDlnsmI0pIb9/4RH0LMMlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSb\n"
- "cCzHl25abi1xmbsV5ydomJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbh\n"
- "Gfo7V9z2gIKdUCLRXoUszhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQAB\n"
- "o2EwXzAMBgNVHRMBAf8EAjAAMA8GA1UdEQQIMAaHBH8AAAEwHQYDVR0OBBYEFDOd\n"
- "4SfTi9X86wX8tceBaU9eO9nWMB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv\n"
- "8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQCNwaCnuNcrSpKjNI99kwuS2/LRnt40yN0B\n"
- "LvN4wnkfEh02LXg2ylXCYZZw59m3w7Cefr1BGLXJjbJTNHASjSOvmurJVEX5sqdX\n"
- "zGQs9HzysDvTVHQh1VUWXyj612DUWZoAYYaUg+CiAZLA/ShT+zN/OC8kWa1RXZPt\n"
- "BfTM7REBxAOxUEDuL1aa/KkFqXgy3cr795TWqdt0lZ/dk7kHxqZKR7nJ2TcOmYK9\n"
- "UdJWnmebDgjlRvXS4CgG8JNzyJtukogSjmp7qsxX9QZ1umUw3Lf7StSdXZT1oIDI\n"
- "evLJCTohtE3/ocRlHfQ9l+B8V+8z7YE+0liFwjwUyrYVUpJ2YuPmHHfauTI2JyVX\n"
- "Kk9dJopvnkhA6rIvNjkd3N3iWE3ftSkk/PV9Iu7PQ2jtR8JXkPMJfgq0owbxhn5N\n"
- "oqQW/zQU7pq4Y9+rvH2qPFSxHGmecBhxetXoAPT66hHJCUTAspF/5DgT6TVMu+Gs\n"
- "hiRt+POJ1lVlGUHsF9Z7IE/d+NCESwU=\n"
- "-----END CERTIFICATE-----\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5NTlaMBIx\n"
- "EDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n"
- "gQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2WLiope/x\n"
- "NL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioVtvPQwEpv\n"
- "uI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR5+wGsJDv\n"
- "kfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJrP+GtLiG0\n"
- "AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj0Sk3Rq93\n"
- "JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1ROsdk4WU\n"
- "ed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH4vysDO9U\n"
- "ZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B48xfmyIF\n"
- "jgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\n"
- "A1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
- "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58oDRy5a0o\n"
- "PvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68kogjKs31\n"
- "QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmTsQOdv/bz\n"
- "R+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT45SGw7c7F\n"
- "cumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2gaygWNiD\n"
- "+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiujgUV0TZH\n"
- "EyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c4FdrCByV\n"
- "haeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1Y1MQ72Sn\n"
- "frzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
- "-----END CERTIFICATE-----\n";
-
-
-const gnutls_datum_t server_ca3_ipaddr_cert = { (unsigned char*)server_ipaddr_ca3_cert_pem,
- sizeof(server_ipaddr_ca3_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEAzCCAmugAwIBAgIMWNI1ISkCpEsFglgfMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwHhcNMDQwMjI5MTUyMTQyWhcNMjQwMjI5MTUyMTQxWjANMQsw\n"
+ "CQYDVQQGEwJHUjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmq\n"
+ "LPfAu7P4Hhmcm4KmEsRfuTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+S\n"
+ "HFiIlEJfvCociQkrgSfloTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU0\n"
+ "3LdpuR9TbvS2fMVjmaRjBiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4z\n"
+ "ETxnMYOFbZpArkizpBi/RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyE\n"
+ "VD1JsrlgccaizNUkiUi7Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWw\n"
+ "wuDlnsmI0pIb9/4RH0LMMlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSb\n"
+ "cCzHl25abi1xmbsV5ydomJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbh\n"
+ "Gfo7V9z2gIKdUCLRXoUszhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQAB\n"
+ "o2EwXzAMBgNVHRMBAf8EAjAAMA8GA1UdEQQIMAaHBH8AAAEwHQYDVR0OBBYEFDOd\n"
+ "4SfTi9X86wX8tceBaU9eO9nWMB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv\n"
+ "8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQCNwaCnuNcrSpKjNI99kwuS2/LRnt40yN0B\n"
+ "LvN4wnkfEh02LXg2ylXCYZZw59m3w7Cefr1BGLXJjbJTNHASjSOvmurJVEX5sqdX\n"
+ "zGQs9HzysDvTVHQh1VUWXyj612DUWZoAYYaUg+CiAZLA/ShT+zN/OC8kWa1RXZPt\n"
+ "BfTM7REBxAOxUEDuL1aa/KkFqXgy3cr795TWqdt0lZ/dk7kHxqZKR7nJ2TcOmYK9\n"
+ "UdJWnmebDgjlRvXS4CgG8JNzyJtukogSjmp7qsxX9QZ1umUw3Lf7StSdXZT1oIDI\n"
+ "evLJCTohtE3/ocRlHfQ9l+B8V+8z7YE+0liFwjwUyrYVUpJ2YuPmHHfauTI2JyVX\n"
+ "Kk9dJopvnkhA6rIvNjkd3N3iWE3ftSkk/PV9Iu7PQ2jtR8JXkPMJfgq0owbxhn5N\n"
+ "oqQW/zQU7pq4Y9+rvH2qPFSxHGmecBhxetXoAPT66hHJCUTAspF/5DgT6TVMu+Gs\n"
+ "hiRt+POJ1lVlGUHsF9Z7IE/d+NCESwU=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5NTlaMBIx\n"
+ "EDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n"
+ "gQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2WLiope/x\n"
+ "NL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioVtvPQwEpv\n"
+ "uI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR5+wGsJDv\n"
+ "kfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJrP+GtLiG0\n"
+ "AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj0Sk3Rq93\n"
+ "JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1ROsdk4WU\n"
+ "ed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH4vysDO9U\n"
+ "ZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B48xfmyIF\n"
+ "jgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\n"
+ "A1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
+ "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58oDRy5a0o\n"
+ "PvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68kogjKs31\n"
+ "QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmTsQOdv/bz\n"
+ "R+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT45SGw7c7F\n"
+ "cumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2gaygWNiD\n"
+ "+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiujgUV0TZH\n"
+ "EyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c4FdrCByV\n"
+ "haeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1Y1MQ72Sn\n"
+ "frzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_ipaddr_cert =
+ { (unsigned char *)server_ipaddr_ca3_cert_pem,
+ sizeof(server_ipaddr_ca3_cert_pem) - 1
};
-
const gnutls_datum_t server_ca3_ipaddr_cert_chain = {
- (unsigned char*)server_ipaddr_ca3_cert_chain_pem,
- sizeof(server_ipaddr_ca3_cert_chain_pem)-1
+ (unsigned char *)server_ipaddr_ca3_cert_chain_pem,
+ sizeof(server_ipaddr_ca3_cert_chain_pem) - 1
};
-
/* shares server_ca3 key - uses IDNA2003 encoding */
static char server_localhost_utf8_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIESDCCArCgAwIBAgIMWElUMBlK8XImg3gXMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTMwHhcNMDQwMjI5MTUyMTQyWhcNMjQwMjI5MTUyMTQxWjANMQsw\n"
- "CQYDVQQGEwJHUjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmq\n"
- "LPfAu7P4Hhmcm4KmEsRfuTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+S\n"
- "HFiIlEJfvCociQkrgSfloTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU0\n"
- "3LdpuR9TbvS2fMVjmaRjBiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4z\n"
- "ETxnMYOFbZpArkizpBi/RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyE\n"
- "VD1JsrlgccaizNUkiUi7Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWw\n"
- "wuDlnsmI0pIb9/4RH0LMMlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSb\n"
- "cCzHl25abi1xmbsV5ydomJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbh\n"
- "Gfo7V9z2gIKdUCLRXoUszhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQAB\n"
- "o4GlMIGiMAwGA1UdEwEB/wQCMAAwUgYDVR0RBEswSYITd3d3LnhuLS1reGF3aGt1\n"
- "LmNvbYIieG4tLWZpcXUxYXowM2MxOHQueG4tLW14YWgxYW1vLmNvbYIObG9jYWxo\n"
- "b3N0LXV0ZjgwHQYDVR0OBBYEFDOd4SfTi9X86wX8tceBaU9eO9nWMB8GA1UdIwQY\n"
- "MBaAFPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQBHHhTy\n"
- "X3AjFcrDa27yN5lnfZfrJ1QGdjoxbcGlWuwI5+EsRInxZSvXQVyh+P9YTphdqAMj\n"
- "YsGCrzqD6+2SkBhrd7/KbmGZF3zFpqe9IcqS2m2u3Z0q4oNjhai86PIRlTSl+Dm/\n"
- "V0T98Fsx/Ec/T509E+HCSYhZgX1A1wCw0jrPJ4UcT9S0jwmP3q8KIXrVAC88tmX3\n"
- "eeVOoVI+lccju++fDaSQJFtZ8PVo8Yd8XDb/xu9ijRQNVom+1x70YvRo6jaSsX4k\n"
- "Y5gM1w3xTObKvo0YI/ot29DE0gE5xPYuiJOzooTNMBSklsB4sXS3Ehwpp+zuUAHQ\n"
- "h9I3os365QeRyB1IaWbO/7WK/zKPFbc3cyQLg8iGGeecH26CJ7vRlxDkvNvhscuh\n"
- "6Z3YK5DJdisRx5W3fW+JapAjsTXpYd/Aj4xMFoNXqvU3WaejB1TfQqxgBHw9Tapy\n"
- "PexWtASNmu1xcO13LdgN4Oa1OL4P4U9TQVwoCpkjlDSVNLqBC0N5kPmGkOY=\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server_ca3_localhost_utf8_cert = { (unsigned char*)server_localhost_utf8_ca3_cert_pem,
- sizeof(server_localhost_utf8_ca3_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIESDCCArCgAwIBAgIMWElUMBlK8XImg3gXMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwHhcNMDQwMjI5MTUyMTQyWhcNMjQwMjI5MTUyMTQxWjANMQsw\n"
+ "CQYDVQQGEwJHUjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmq\n"
+ "LPfAu7P4Hhmcm4KmEsRfuTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+S\n"
+ "HFiIlEJfvCociQkrgSfloTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU0\n"
+ "3LdpuR9TbvS2fMVjmaRjBiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4z\n"
+ "ETxnMYOFbZpArkizpBi/RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyE\n"
+ "VD1JsrlgccaizNUkiUi7Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWw\n"
+ "wuDlnsmI0pIb9/4RH0LMMlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSb\n"
+ "cCzHl25abi1xmbsV5ydomJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbh\n"
+ "Gfo7V9z2gIKdUCLRXoUszhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQAB\n"
+ "o4GlMIGiMAwGA1UdEwEB/wQCMAAwUgYDVR0RBEswSYITd3d3LnhuLS1reGF3aGt1\n"
+ "LmNvbYIieG4tLWZpcXUxYXowM2MxOHQueG4tLW14YWgxYW1vLmNvbYIObG9jYWxo\n"
+ "b3N0LXV0ZjgwHQYDVR0OBBYEFDOd4SfTi9X86wX8tceBaU9eO9nWMB8GA1UdIwQY\n"
+ "MBaAFPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQBHHhTy\n"
+ "X3AjFcrDa27yN5lnfZfrJ1QGdjoxbcGlWuwI5+EsRInxZSvXQVyh+P9YTphdqAMj\n"
+ "YsGCrzqD6+2SkBhrd7/KbmGZF3zFpqe9IcqS2m2u3Z0q4oNjhai86PIRlTSl+Dm/\n"
+ "V0T98Fsx/Ec/T509E+HCSYhZgX1A1wCw0jrPJ4UcT9S0jwmP3q8KIXrVAC88tmX3\n"
+ "eeVOoVI+lccju++fDaSQJFtZ8PVo8Yd8XDb/xu9ijRQNVom+1x70YvRo6jaSsX4k\n"
+ "Y5gM1w3xTObKvo0YI/ot29DE0gE5xPYuiJOzooTNMBSklsB4sXS3Ehwpp+zuUAHQ\n"
+ "h9I3os365QeRyB1IaWbO/7WK/zKPFbc3cyQLg8iGGeecH26CJ7vRlxDkvNvhscuh\n"
+ "6Z3YK5DJdisRx5W3fW+JapAjsTXpYd/Aj4xMFoNXqvU3WaejB1TfQqxgBHw9Tapy\n"
+ "PexWtASNmu1xcO13LdgN4Oa1OL4P4U9TQVwoCpkjlDSVNLqBC0N5kPmGkOY=\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_localhost_utf8_cert =
+ { (unsigned char *)server_localhost_utf8_ca3_cert_pem,
+ sizeof(server_localhost_utf8_ca3_cert_pem) - 1
};
/* shared the server_ca3 key, uses raw UTF8 on DnsName */
static char server_localhost_inv_utf8_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEQDCCAqigAwIBAgIMV9ZyrTt30lJ2pYe6MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTMwHhcNMDQwMjI5MTUyMTQyWhcNMjQwMjI5MTUyMTQxWjANMQsw\n"
- "CQYDVQQGEwJHUjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmq\n"
- "LPfAu7P4Hhmcm4KmEsRfuTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+S\n"
- "HFiIlEJfvCociQkrgSfloTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU0\n"
- "3LdpuR9TbvS2fMVjmaRjBiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4z\n"
- "ETxnMYOFbZpArkizpBi/RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyE\n"
- "VD1JsrlgccaizNUkiUi7Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWw\n"
- "wuDlnsmI0pIb9/4RH0LMMlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSb\n"
- "cCzHl25abi1xmbsV5ydomJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbh\n"
- "Gfo7V9z2gIKdUCLRXoUszhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQAB\n"
- "o4GdMIGaMAwGA1UdEwEB/wQCMAAwSgYDVR0RBEMwQYISd3d3Ls69zq/Ous6/z4Iu\n"
- "Y29tghvnroDkvZPkuK3mlocuzrXOvs+Ez4HOsS5jb22CDmxvY2FsaG9zdC11dGY4\n"
- "MB0GA1UdDgQWBBQzneEn04vV/OsF/LXHgWlPXjvZ1jAfBgNVHSMEGDAWgBT5qIYZ\n"
- "Y7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAkUgmFO2bdws049Nz\n"
- "w55UaF7XxG8ER7kKzLCWgw8tuYjcIDKQ+/gD0hUuKBxCbuISdT32gfZTf+ZNKtEg\n"
- "7f9Lhr935ZoDCvyYnal1ploqAOu0ZDEXz+cU+OzreJ58J95LYX2we1lPqCYz0qo0\n"
- "6FeWrP6H6+azis2ee5XN+b20l/nRl3bNGZDnkl6+b3wPR6rIFaILcEZDl15SMgiW\n"
- "PlzJ0s97szWAO2ywLvNPdB66ugOvJY34ivTQOkCDi9css5faN1LcwmqDAeAq4DZt\n"
- "mZ8/504D1AUD9szneb2UgD9ZnPr4r45+qzE3lCtvmFGEddJ3c9zQVjnqEKljgG6S\n"
- "FdlAVVfxbwoAc24kN6UUEpLiabFoL071pZt1WoHOFA68yBxnC6CO/3vfVSF9Ftg3\n"
- "oUPldkvMs8+33YhojDKYXP5USoES2OPdofmq8LnTZj7c6ex+SvlRdOgHg4pd9lX2\n"
- "Efwe6rFJaNbKv9C9tWpPIPHRk/YkUIe29VUQR2m7UUpToBca\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server_ca3_localhost_inv_utf8_cert = { (unsigned char*)server_localhost_inv_utf8_ca3_cert_pem,
- sizeof(server_localhost_inv_utf8_ca3_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEQDCCAqigAwIBAgIMV9ZyrTt30lJ2pYe6MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwHhcNMDQwMjI5MTUyMTQyWhcNMjQwMjI5MTUyMTQxWjANMQsw\n"
+ "CQYDVQQGEwJHUjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmq\n"
+ "LPfAu7P4Hhmcm4KmEsRfuTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+S\n"
+ "HFiIlEJfvCociQkrgSfloTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU0\n"
+ "3LdpuR9TbvS2fMVjmaRjBiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4z\n"
+ "ETxnMYOFbZpArkizpBi/RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyE\n"
+ "VD1JsrlgccaizNUkiUi7Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWw\n"
+ "wuDlnsmI0pIb9/4RH0LMMlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSb\n"
+ "cCzHl25abi1xmbsV5ydomJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbh\n"
+ "Gfo7V9z2gIKdUCLRXoUszhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQAB\n"
+ "o4GdMIGaMAwGA1UdEwEB/wQCMAAwSgYDVR0RBEMwQYISd3d3Ls69zq/Ous6/z4Iu\n"
+ "Y29tghvnroDkvZPkuK3mlocuzrXOvs+Ez4HOsS5jb22CDmxvY2FsaG9zdC11dGY4\n"
+ "MB0GA1UdDgQWBBQzneEn04vV/OsF/LXHgWlPXjvZ1jAfBgNVHSMEGDAWgBT5qIYZ\n"
+ "Y7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAkUgmFO2bdws049Nz\n"
+ "w55UaF7XxG8ER7kKzLCWgw8tuYjcIDKQ+/gD0hUuKBxCbuISdT32gfZTf+ZNKtEg\n"
+ "7f9Lhr935ZoDCvyYnal1ploqAOu0ZDEXz+cU+OzreJ58J95LYX2we1lPqCYz0qo0\n"
+ "6FeWrP6H6+azis2ee5XN+b20l/nRl3bNGZDnkl6+b3wPR6rIFaILcEZDl15SMgiW\n"
+ "PlzJ0s97szWAO2ywLvNPdB66ugOvJY34ivTQOkCDi9css5faN1LcwmqDAeAq4DZt\n"
+ "mZ8/504D1AUD9szneb2UgD9ZnPr4r45+qzE3lCtvmFGEddJ3c9zQVjnqEKljgG6S\n"
+ "FdlAVVfxbwoAc24kN6UUEpLiabFoL071pZt1WoHOFA68yBxnC6CO/3vfVSF9Ftg3\n"
+ "oUPldkvMs8+33YhojDKYXP5USoES2OPdofmq8LnTZj7c6ex+SvlRdOgHg4pd9lX2\n"
+ "Efwe6rFJaNbKv9C9tWpPIPHRk/YkUIe29VUQR2m7UUpToBca\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_localhost_inv_utf8_cert =
+ { (unsigned char *)server_localhost_inv_utf8_ca3_cert_pem,
+ sizeof(server_localhost_inv_utf8_ca3_cert_pem) - 1
};
/* server_ca3_ecc_key */
static char server_localhost_ca3_ecc_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIC8zCCAVugAwIBAgIIV+OO5zqFDkowDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNjA5MjIwNzU3MjhaGA85OTk5MTIzMTIzNTk1OVowHTEbMBkG\n"
- "A1UEAxMSc2VydmVyIGNlcnRpZmljYXRlMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD\n"
- "QgAEbUnlVnL48xM0lK6iDhHcqaFuYh6M5lmA823GQlwi5skgg7rySR0YrTimX9F6\n"
- "K9kDCJu/7zmWlPiyb/1EFWEtk6OBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQN\n"
- "MAuCCWxvY2FsaG9zdDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMD\n"
- "B4AAMB0GA1UdDgQWBBTaH7JGYwVXx31AqONpQsb3l20EqDAfBgNVHSMEGDAWgBT5\n"
- "qIYZY7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEATWsYCToPsxxU\n"
- "f1zJv3+FKcIGI+8U7akTlnJEk3l9/Gkmkp0tsudtpZb+//rXIem9XVMKDYBEzRxQ\n"
- "du3YleqR0Yj13S7piDHPl52PHJGvSHtLg4ooU74ZQcPFxoRxxNahYPb2Mhn0XqKh\n"
- "Yc7JHkW53UVusanRmBCQIxI6tVuDO3rB/tQM4ygD9wDeT16xnDhfwemKaskHKM44\n"
- "SMJJ9pY2zK1MvX5AZePTikMQqvc3aVfoE8Lv+4SGE/GyzvzaDOSzlwzNM6KBxerw\n"
- "1qwnVO/lphUG09X4oXXtOqlAHaIfUmRMqgMPZEtWMszIQo9XimPfoLW3xKVqDWjN\n"
- "EhHRLE0CCA/ip3lQ1bUt5EXhC1efPiOdEEYS5mHW7WAMAVi5aS1TzNLoJ4nahBwu\n"
- "EeGtmSH4rDZlHTNsiXwvxV3XqWc39TqlgY+NGToyU1tA4+tVtalJ08Q37sFxSUvJ\n"
- "Li9LPzU70EyX6WF+9FM45E4/Gt9Oh8btrYyjbyH/K2VI8qPRz5cW\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server_ca3_localhost_ecc_cert = { (unsigned char*)server_localhost_ca3_ecc_cert_pem,
- sizeof(server_localhost_ca3_ecc_cert_pem)-1};
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC8zCCAVugAwIBAgIIV+OO5zqFDkowDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNjA5MjIwNzU3MjhaGA85OTk5MTIzMTIzNTk1OVowHTEbMBkG\n"
+ "A1UEAxMSc2VydmVyIGNlcnRpZmljYXRlMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD\n"
+ "QgAEbUnlVnL48xM0lK6iDhHcqaFuYh6M5lmA823GQlwi5skgg7rySR0YrTimX9F6\n"
+ "K9kDCJu/7zmWlPiyb/1EFWEtk6OBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQN\n"
+ "MAuCCWxvY2FsaG9zdDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMD\n"
+ "B4AAMB0GA1UdDgQWBBTaH7JGYwVXx31AqONpQsb3l20EqDAfBgNVHSMEGDAWgBT5\n"
+ "qIYZY7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEATWsYCToPsxxU\n"
+ "f1zJv3+FKcIGI+8U7akTlnJEk3l9/Gkmkp0tsudtpZb+//rXIem9XVMKDYBEzRxQ\n"
+ "du3YleqR0Yj13S7piDHPl52PHJGvSHtLg4ooU74ZQcPFxoRxxNahYPb2Mhn0XqKh\n"
+ "Yc7JHkW53UVusanRmBCQIxI6tVuDO3rB/tQM4ygD9wDeT16xnDhfwemKaskHKM44\n"
+ "SMJJ9pY2zK1MvX5AZePTikMQqvc3aVfoE8Lv+4SGE/GyzvzaDOSzlwzNM6KBxerw\n"
+ "1qwnVO/lphUG09X4oXXtOqlAHaIfUmRMqgMPZEtWMszIQo9XimPfoLW3xKVqDWjN\n"
+ "EhHRLE0CCA/ip3lQ1bUt5EXhC1efPiOdEEYS5mHW7WAMAVi5aS1TzNLoJ4nahBwu\n"
+ "EeGtmSH4rDZlHTNsiXwvxV3XqWc39TqlgY+NGToyU1tA4+tVtalJ08Q37sFxSUvJ\n"
+ "Li9LPzU70EyX6WF+9FM45E4/Gt9Oh8btrYyjbyH/K2VI8qPRz5cW\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_localhost_ecc_cert =
+ { (unsigned char *)server_localhost_ca3_ecc_cert_pem,
+ sizeof(server_localhost_ca3_ecc_cert_pem) - 1
+};
/* shares server_ca3 key */
static char server_localhost_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEKDCCApCgAwIBAgIMV6MdMjbIDKHKsL32MA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
- "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1MTE4WhgPOTk5OTEyMzEyMzU5NTla\n"
- "MAAwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZPXiZqiz3wLuz+B4Z\n"
- "nJuCphLEX7k15NcpamL3+9ea4gXyfeFSHbSaihPauBUcDMVbL/wfkhxYiJRCX7wq\n"
- "HIkJK4En5aEzSDDa6pI/CI5lSbiXdNDGbFLh5b8Guvhfzyy8lDjFNNy3abkfU270\n"
- "tnzFY5mkYwYgjuN/RgPqh0b8McT+xUeN9x4PuSXXmMC1r3v7y4JuMxE8ZzGDhW2a\n"
- "QK5Is6QYv0WELS5hVvB8GdP5XQwTJw4HH5i/YES7TENV2RByzRY8hFQ9SbK5YHHG\n"
- "oszVJIlIuxm5v8N2Ig1cW6t7t3HnuZbDYRDCERMiEigBz8vEZZyFsMLg5Z7JiNKS\n"
- "G/f+ER9CzDJXHgxBctV9EEc2KmRT1P9JeI/xZUOl9lKljc+t8m0Um3Asx5duWm4t\n"
- "cZm7FecnaJiTXD/tEG64qTKWtDuoI7+X9MjHe5lvf2gIJT3CoKW24Rn6O1fc9oCC\n"
- "nVAi0V6FLM4XaG50X9NC666RVEFkXih8THA1gC9m9NJMrD0CAwEAAaOBjTCBijAM\n"
- "BgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDATBgNVHSUEDDAKBggr\n"
- "BgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBQzneEn04vV/OsF/LXH\n"
- "gWlPXjvZ1jAfBgNVHSMEGDAWgBQtMwQbJ3+UBHzH4zVP6SWklOG3oTANBgkqhkiG\n"
- "9w0BAQsFAAOCAYEASbEdRkK44GUb0Y+80JdYGFV1YuHUAq4QYSwCdrT0hwJrFYI2\n"
- "s8+9/ncyzeyY00ryg6tPlKyE5B7ss29l8zcj0WJYsUk5kjV6uCWuo9/rqqPHK6Lc\n"
- "Qx1cONR4Vt+gD5TX0nRNuKaHVbBJARZ3YOl2F3nApcR/8boq+WNKGhGkzFMaKV+i\n"
- "IDpB0ziBUcb+q257lQGKrBuXl5nCd+PZswB//pZCsIkTF5jFdjeXvOvGDjYAr8rG\n"
- "KpoMTskNcBqgi59sJc8djWMbNt+15qH4mSvTUW1caukeJAr4mwHfrSK5k9ezSSp1\n"
- "EpbQ2Rp3xpbCgklhtsKHSJZ43sghZvCOxk8G3bRZ1/lW6sXvIPmLkvoeetTLvqYq\n"
- "t/+gfv4NJuyZhzuJHbxrxBJ3C9QjqTbpiUumeRQHXLa+vZJUKX7ak1KVubKiOC+x\n"
- "wyfgmq6quk5jPgOgMJWLwpA2Rm30wqX4OehXov3stSXFb+qASNOHlEtQdgKzIEX/\n"
- "6TXY44pCGHMFO6Kr\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEKDCCApCgAwIBAgIMV6MdMjbIDKHKsL32MA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
+ "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1MTE4WhgPOTk5OTEyMzEyMzU5NTla\n"
+ "MAAwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZPXiZqiz3wLuz+B4Z\n"
+ "nJuCphLEX7k15NcpamL3+9ea4gXyfeFSHbSaihPauBUcDMVbL/wfkhxYiJRCX7wq\n"
+ "HIkJK4En5aEzSDDa6pI/CI5lSbiXdNDGbFLh5b8Guvhfzyy8lDjFNNy3abkfU270\n"
+ "tnzFY5mkYwYgjuN/RgPqh0b8McT+xUeN9x4PuSXXmMC1r3v7y4JuMxE8ZzGDhW2a\n"
+ "QK5Is6QYv0WELS5hVvB8GdP5XQwTJw4HH5i/YES7TENV2RByzRY8hFQ9SbK5YHHG\n"
+ "oszVJIlIuxm5v8N2Ig1cW6t7t3HnuZbDYRDCERMiEigBz8vEZZyFsMLg5Z7JiNKS\n"
+ "G/f+ER9CzDJXHgxBctV9EEc2KmRT1P9JeI/xZUOl9lKljc+t8m0Um3Asx5duWm4t\n"
+ "cZm7FecnaJiTXD/tEG64qTKWtDuoI7+X9MjHe5lvf2gIJT3CoKW24Rn6O1fc9oCC\n"
+ "nVAi0V6FLM4XaG50X9NC666RVEFkXih8THA1gC9m9NJMrD0CAwEAAaOBjTCBijAM\n"
+ "BgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDATBgNVHSUEDDAKBggr\n"
+ "BgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBQzneEn04vV/OsF/LXH\n"
+ "gWlPXjvZ1jAfBgNVHSMEGDAWgBQtMwQbJ3+UBHzH4zVP6SWklOG3oTANBgkqhkiG\n"
+ "9w0BAQsFAAOCAYEASbEdRkK44GUb0Y+80JdYGFV1YuHUAq4QYSwCdrT0hwJrFYI2\n"
+ "s8+9/ncyzeyY00ryg6tPlKyE5B7ss29l8zcj0WJYsUk5kjV6uCWuo9/rqqPHK6Lc\n"
+ "Qx1cONR4Vt+gD5TX0nRNuKaHVbBJARZ3YOl2F3nApcR/8boq+WNKGhGkzFMaKV+i\n"
+ "IDpB0ziBUcb+q257lQGKrBuXl5nCd+PZswB//pZCsIkTF5jFdjeXvOvGDjYAr8rG\n"
+ "KpoMTskNcBqgi59sJc8djWMbNt+15qH4mSvTUW1caukeJAr4mwHfrSK5k9ezSSp1\n"
+ "EpbQ2Rp3xpbCgklhtsKHSJZ43sghZvCOxk8G3bRZ1/lW6sXvIPmLkvoeetTLvqYq\n"
+ "t/+gfv4NJuyZhzuJHbxrxBJ3C9QjqTbpiUumeRQHXLa+vZJUKX7ak1KVubKiOC+x\n"
+ "wyfgmq6quk5jPgOgMJWLwpA2Rm30wqX4OehXov3stSXFb+qASNOHlEtQdgKzIEX/\n"
+ "6TXY44pCGHMFO6Kr\n" "-----END CERTIFICATE-----\n";
/* shares server_ca3 key with tlsfeature=5 */
static char server_ca3_tlsfeat_cert_pem[] =
- "-----BEGIN CERTIFICATE-----"
- "MIIEOjCCAqKgAwIBAgIUYBRfAcvgBUU4jCb8W89sQcPLqswwDQYJKoZIhvcNAQEL"
- "BQAwDzENMAsGA1UEAxMEQ0EtMzAgFw0xOTA2MDcyMTA4NDFaGA85OTk5MTIzMTIz"
- "NTk1OVowIjEgMB4GA1UEAxMXR251VExTIHRlc3QgY2VydGlmaWNhdGUwggGiMA0G"
- "CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZPXiZqiz3wLuz+B4ZnJuCphLEX7k1"
- "5NcpamL3+9ea4gXyfeFSHbSaihPauBUcDMVbL/wfkhxYiJRCX7wqHIkJK4En5aEz"
- "SDDa6pI/CI5lSbiXdNDGbFLh5b8Guvhfzyy8lDjFNNy3abkfU270tnzFY5mkYwYg"
- "juN/RgPqh0b8McT+xUeN9x4PuSXXmMC1r3v7y4JuMxE8ZzGDhW2aQK5Is6QYv0WE"
- "LS5hVvB8GdP5XQwTJw4HH5i/YES7TENV2RByzRY8hFQ9SbK5YHHGoszVJIlIuxm5"
- "v8N2Ig1cW6t7t3HnuZbDYRDCERMiEigBz8vEZZyFsMLg5Z7JiNKSG/f+ER9CzDJX"
- "HgxBctV9EEc2KmRT1P9JeI/xZUOl9lKljc+t8m0Um3Asx5duWm4tcZm7FecnaJiT"
- "XD/tEG64qTKWtDuoI7+X9MjHe5lvf2gIJT3CoKW24Rn6O1fc9oCCnVAi0V6FLM4X"
- "aG50X9NC666RVEFkXih8THA1gC9m9NJMrD0CAwEAAaN5MHcwEQYIKwYBBQUHARgE"
- "BTADAgEFMAwGA1UdEwEB/wQCMAAwFAYDVR0RBA0wC4IJbG9jYWxob3N0MB0GA1Ud"
- "DgQWBBQzneEn04vV/OsF/LXHgWlPXjvZ1jAfBgNVHSMEGDAWgBT5qIYZY7akFBNg"
- "dg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEASMVR+C1x3pBRSRaaIYbFTC0X"
- "VXc66iQWDfpTSokLIEN/UVZzLsQw5p1PntPqnRRudDnXS77rNQSZcc4NTFYrzSqW"
- "WwdhIXtl3igLg5HMxU80dsr3LfGkzJ1iDS1RR0EGSvFjOE9ZUK0IBdsUvINqpj+l"
- "6qxL36yfxamuELIxvgmecIMvLzbe7tUjRXneNvLGsLAJcq5QQmNMCWiyywtHbFa0"
- "zbpxKMJmHMk0SbgZHUuFaASlAqVez19rJdzqQcJiw/YrMbbj/b2me1duLQ64dqGL"
- "5gKTyDMhk5td53R5uPnr7F6+1u8zRzqA6mBvTfEk4wJ6YmvqdBfC47xT+Ksba6dX"
- "Ugz+So2iu0rQxaLEBTZJ/gTXJEUafxUN4wF1ZOnUyltoqLJymhQoceoSwjYobOal"
- "FUZEJgFNA7j8tR7J3MtFUaJqFosuPtxhF8/CCPukKV7bRokqh7zK+F21iaQOYvJn"
- "AfuOg2g0ZMurGyS/yg8mVsGjh4bho9zPOlhPtFNM"
- "-----END CERTIFICATE-----";
+ "-----BEGIN CERTIFICATE-----"
+ "MIIEOjCCAqKgAwIBAgIUYBRfAcvgBUU4jCb8W89sQcPLqswwDQYJKoZIhvcNAQEL"
+ "BQAwDzENMAsGA1UEAxMEQ0EtMzAgFw0xOTA2MDcyMTA4NDFaGA85OTk5MTIzMTIz"
+ "NTk1OVowIjEgMB4GA1UEAxMXR251VExTIHRlc3QgY2VydGlmaWNhdGUwggGiMA0G"
+ "CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZPXiZqiz3wLuz+B4ZnJuCphLEX7k1"
+ "5NcpamL3+9ea4gXyfeFSHbSaihPauBUcDMVbL/wfkhxYiJRCX7wqHIkJK4En5aEz"
+ "SDDa6pI/CI5lSbiXdNDGbFLh5b8Guvhfzyy8lDjFNNy3abkfU270tnzFY5mkYwYg"
+ "juN/RgPqh0b8McT+xUeN9x4PuSXXmMC1r3v7y4JuMxE8ZzGDhW2aQK5Is6QYv0WE"
+ "LS5hVvB8GdP5XQwTJw4HH5i/YES7TENV2RByzRY8hFQ9SbK5YHHGoszVJIlIuxm5"
+ "v8N2Ig1cW6t7t3HnuZbDYRDCERMiEigBz8vEZZyFsMLg5Z7JiNKSG/f+ER9CzDJX"
+ "HgxBctV9EEc2KmRT1P9JeI/xZUOl9lKljc+t8m0Um3Asx5duWm4tcZm7FecnaJiT"
+ "XD/tEG64qTKWtDuoI7+X9MjHe5lvf2gIJT3CoKW24Rn6O1fc9oCCnVAi0V6FLM4X"
+ "aG50X9NC666RVEFkXih8THA1gC9m9NJMrD0CAwEAAaN5MHcwEQYIKwYBBQUHARgE"
+ "BTADAgEFMAwGA1UdEwEB/wQCMAAwFAYDVR0RBA0wC4IJbG9jYWxob3N0MB0GA1Ud"
+ "DgQWBBQzneEn04vV/OsF/LXHgWlPXjvZ1jAfBgNVHSMEGDAWgBT5qIYZY7akFBNg"
+ "dg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEASMVR+C1x3pBRSRaaIYbFTC0X"
+ "VXc66iQWDfpTSokLIEN/UVZzLsQw5p1PntPqnRRudDnXS77rNQSZcc4NTFYrzSqW"
+ "WwdhIXtl3igLg5HMxU80dsr3LfGkzJ1iDS1RR0EGSvFjOE9ZUK0IBdsUvINqpj+l"
+ "6qxL36yfxamuELIxvgmecIMvLzbe7tUjRXneNvLGsLAJcq5QQmNMCWiyywtHbFa0"
+ "zbpxKMJmHMk0SbgZHUuFaASlAqVez19rJdzqQcJiw/YrMbbj/b2me1duLQ64dqGL"
+ "5gKTyDMhk5td53R5uPnr7F6+1u8zRzqA6mBvTfEk4wJ6YmvqdBfC47xT+Ksba6dX"
+ "Ugz+So2iu0rQxaLEBTZJ/gTXJEUafxUN4wF1ZOnUyltoqLJymhQoceoSwjYobOal"
+ "FUZEJgFNA7j8tR7J3MtFUaJqFosuPtxhF8/CCPukKV7bRokqh7zK+F21iaQOYvJn"
+ "AfuOg2g0ZMurGyS/yg8mVsGjh4bho9zPOlhPtFNM" "-----END CERTIFICATE-----";
/* Marked as decrypt-only */
static char server_localhost_ca3_rsa_decrypt_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEITCCAomgAwIBAgIIWU+IEie6JrYwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNzA2MjUwOTUzMjNaGA85OTk5MTIzMTIzNTk1OVowADCCAaIw\n"
- "DQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmqLPfAu7P4Hhmcm4KmEsRf\n"
- "uTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+SHFiIlEJfvCociQkrgSfl\n"
- "oTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU03LdpuR9TbvS2fMVjmaRj\n"
- "BiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4zETxnMYOFbZpArkizpBi/\n"
- "RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyEVD1JsrlgccaizNUkiUi7\n"
- "Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWwwuDlnsmI0pIb9/4RH0LM\n"
- "MlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSbcCzHl25abi1xmbsV5ydo\n"
- "mJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbhGfo7V9z2gIKdUCLRXoUs\n"
- "zhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQABo4GNMIGKMAwGA1UdEwEB\n"
- "/wQCMAAwFAYDVR0RBA0wC4IJbG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMB\n"
- "MA8GA1UdDwEB/wQFAwMHIAAwHQYDVR0OBBYEFDOd4SfTi9X86wX8tceBaU9eO9nW\n"
- "MB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqGSIb3DQEBCwUA\n"
- "A4IBgQAaq4+vai/FwYQ2fAjOsHsVV0nR5Zq55tT8Fexrj2/e9gr+bMV4HVxETByy\n"
- "fLtMHGYv+8BENDaI2EOHTyKp5O2DNbITJSN7/ZIO4Rsk+N5m2FyF7DV/sAoxhN7R\n"
- "mDy/jDtZyeIqKLptOQZbkRv3lf+vtJL3eakpgh5T/j14kT0QjLyJEZB1D9jurUsV\n"
- "+fxYxQUpv4YInDeEk5aKfvZNdkEpbv56GYNc15mNiKryXoszdm+TKmHSVFH9wUj3\n"
- "KAXBsQdMmZbd0ZFAEi7QV42Pr2x9+PrSE26bE6K31r02/RcxFQdL9E/3O+85S8eN\n"
- "yOZoC/PIrm0mKIPn2NBGSKtCG8V1sTHHJyCwqQERp3pkaB7A9biCKExQN1d3Gsbe\n"
- "C0R9bYimdbkYM6o7qi7OiLRKpYFgdVYaYEG3DRBpB3R3+EAKk91809tc9ow5xzkx\n"
- "lWryqIzutm6rcClAnqeBIZEZIIvqZH8RcPBQEUajNCWRpBsbwF1xdWvIhP2R3y69\n"
- "5dOfcuY=\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEITCCAomgAwIBAgIIWU+IEie6JrYwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNzA2MjUwOTUzMjNaGA85OTk5MTIzMTIzNTk1OVowADCCAaIw\n"
+ "DQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmqLPfAu7P4Hhmcm4KmEsRf\n"
+ "uTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+SHFiIlEJfvCociQkrgSfl\n"
+ "oTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU03LdpuR9TbvS2fMVjmaRj\n"
+ "BiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4zETxnMYOFbZpArkizpBi/\n"
+ "RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyEVD1JsrlgccaizNUkiUi7\n"
+ "Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWwwuDlnsmI0pIb9/4RH0LM\n"
+ "MlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSbcCzHl25abi1xmbsV5ydo\n"
+ "mJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbhGfo7V9z2gIKdUCLRXoUs\n"
+ "zhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQABo4GNMIGKMAwGA1UdEwEB\n"
+ "/wQCMAAwFAYDVR0RBA0wC4IJbG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMB\n"
+ "MA8GA1UdDwEB/wQFAwMHIAAwHQYDVR0OBBYEFDOd4SfTi9X86wX8tceBaU9eO9nW\n"
+ "MB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqGSIb3DQEBCwUA\n"
+ "A4IBgQAaq4+vai/FwYQ2fAjOsHsVV0nR5Zq55tT8Fexrj2/e9gr+bMV4HVxETByy\n"
+ "fLtMHGYv+8BENDaI2EOHTyKp5O2DNbITJSN7/ZIO4Rsk+N5m2FyF7DV/sAoxhN7R\n"
+ "mDy/jDtZyeIqKLptOQZbkRv3lf+vtJL3eakpgh5T/j14kT0QjLyJEZB1D9jurUsV\n"
+ "+fxYxQUpv4YInDeEk5aKfvZNdkEpbv56GYNc15mNiKryXoszdm+TKmHSVFH9wUj3\n"
+ "KAXBsQdMmZbd0ZFAEi7QV42Pr2x9+PrSE26bE6K31r02/RcxFQdL9E/3O+85S8eN\n"
+ "yOZoC/PIrm0mKIPn2NBGSKtCG8V1sTHHJyCwqQERp3pkaB7A9biCKExQN1d3Gsbe\n"
+ "C0R9bYimdbkYM6o7qi7OiLRKpYFgdVYaYEG3DRBpB3R3+EAKk91809tc9ow5xzkx\n"
+ "lWryqIzutm6rcClAnqeBIZEZIIvqZH8RcPBQEUajNCWRpBsbwF1xdWvIhP2R3y69\n"
+ "5dOfcuY=\n" "-----END CERTIFICATE-----\n";
/* Marked as sign-only */
static char server_localhost_ca3_rsa_sign_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEITCCAomgAwIBAgIIWU+LoyEYfBYwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNzA2MjUxMDA4MzZaGA85OTk5MTIzMTIzNTk1OVowADCCAaIw\n"
- "DQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmqLPfAu7P4Hhmcm4KmEsRf\n"
- "uTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+SHFiIlEJfvCociQkrgSfl\n"
- "oTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU03LdpuR9TbvS2fMVjmaRj\n"
- "BiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4zETxnMYOFbZpArkizpBi/\n"
- "RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyEVD1JsrlgccaizNUkiUi7\n"
- "Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWwwuDlnsmI0pIb9/4RH0LM\n"
- "MlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSbcCzHl25abi1xmbsV5ydo\n"
- "mJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbhGfo7V9z2gIKdUCLRXoUs\n"
- "zhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQABo4GNMIGKMAwGA1UdEwEB\n"
- "/wQCMAAwFAYDVR0RBA0wC4IJbG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMB\n"
- "MA8GA1UdDwEB/wQFAwMHgAAwHQYDVR0OBBYEFDOd4SfTi9X86wX8tceBaU9eO9nW\n"
- "MB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqGSIb3DQEBCwUA\n"
- "A4IBgQC1cJd/z1CQSyDfUd2uuNDTvA3WXWxNhqHMLitT1GJS6nUez+wCaWT9UfVy\n"
- "+56z/eMaVasZPQ8dOKYdPRuzL2l65DKUUaKFOyD+NGvOS08qKY+oVGN1Qbmaxbvt\n"
- "6rvzpW9UHn75zLDOUOMrGDkW5L36mMP8I0Y5AcNBrO5yFBvH8MAHr3zO2VvTSt6T\n"
- "ZHFrDlV/nL5E+swzrmF6MZXO1mupk/gtelYfRtigwSr51RY+Me3uaGNEQe30JLu6\n"
- "0gp6/otBns9qJjSgX9qWIj9iTHq4A2CiHZkb4j3+/TNNGB8dkBV+EvV8I4Bqdk33\n"
- "mz4hSjJBLqg2NYZ4TaztWFsgTvGOYncLGl5e4dIqB94ICEFIrWN32JzS61Mu5xlt\n"
- "qBh/JOUSdMe6csZrDIw//UhUgLj7KdFO5FhSW3DXEl9PZGWVR+LJ+T3HjomHf+Bb\n"
- "ATbBQk+9MkHTiDWxD4FbmPuSC/h4Vh+G1VkyrlClTLW6K/+0DmE2LPJvRV5udpux\n"
- "Ar7fYYU=\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEITCCAomgAwIBAgIIWU+LoyEYfBYwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNzA2MjUxMDA4MzZaGA85OTk5MTIzMTIzNTk1OVowADCCAaIw\n"
+ "DQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANk9eJmqLPfAu7P4Hhmcm4KmEsRf\n"
+ "uTXk1ylqYvf715riBfJ94VIdtJqKE9q4FRwMxVsv/B+SHFiIlEJfvCociQkrgSfl\n"
+ "oTNIMNrqkj8IjmVJuJd00MZsUuHlvwa6+F/PLLyUOMU03LdpuR9TbvS2fMVjmaRj\n"
+ "BiCO439GA+qHRvwxxP7FR433Hg+5JdeYwLWve/vLgm4zETxnMYOFbZpArkizpBi/\n"
+ "RYQtLmFW8HwZ0/ldDBMnDgcfmL9gRLtMQ1XZEHLNFjyEVD1JsrlgccaizNUkiUi7\n"
+ "Gbm/w3YiDVxbq3u3cee5lsNhEMIREyISKAHPy8RlnIWwwuDlnsmI0pIb9/4RH0LM\n"
+ "MlceDEFy1X0QRzYqZFPU/0l4j/FlQ6X2UqWNz63ybRSbcCzHl25abi1xmbsV5ydo\n"
+ "mJNcP+0QbripMpa0O6gjv5f0yMd7mW9/aAglPcKgpbbhGfo7V9z2gIKdUCLRXoUs\n"
+ "zhdobnRf00LrrpFUQWReKHxMcDWAL2b00kysPQIDAQABo4GNMIGKMAwGA1UdEwEB\n"
+ "/wQCMAAwFAYDVR0RBA0wC4IJbG9jYWxob3N0MBMGA1UdJQQMMAoGCCsGAQUFBwMB\n"
+ "MA8GA1UdDwEB/wQFAwMHgAAwHQYDVR0OBBYEFDOd4SfTi9X86wX8tceBaU9eO9nW\n"
+ "MB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqGSIb3DQEBCwUA\n"
+ "A4IBgQC1cJd/z1CQSyDfUd2uuNDTvA3WXWxNhqHMLitT1GJS6nUez+wCaWT9UfVy\n"
+ "+56z/eMaVasZPQ8dOKYdPRuzL2l65DKUUaKFOyD+NGvOS08qKY+oVGN1Qbmaxbvt\n"
+ "6rvzpW9UHn75zLDOUOMrGDkW5L36mMP8I0Y5AcNBrO5yFBvH8MAHr3zO2VvTSt6T\n"
+ "ZHFrDlV/nL5E+swzrmF6MZXO1mupk/gtelYfRtigwSr51RY+Me3uaGNEQe30JLu6\n"
+ "0gp6/otBns9qJjSgX9qWIj9iTHq4A2CiHZkb4j3+/TNNGB8dkBV+EvV8I4Bqdk33\n"
+ "mz4hSjJBLqg2NYZ4TaztWFsgTvGOYncLGl5e4dIqB94ICEFIrWN32JzS61Mu5xlt\n"
+ "qBh/JOUSdMe6csZrDIw//UhUgLj7KdFO5FhSW3DXEl9PZGWVR+LJ+T3HjomHf+Bb\n"
+ "ATbBQk+9MkHTiDWxD4FbmPuSC/h4Vh+G1VkyrlClTLW6K/+0DmE2LPJvRV5udpux\n"
+ "Ar7fYYU=\n" "-----END CERTIFICATE-----\n";
static char server_localhost_ca3_cert_chain_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEKDCCApCgAwIBAgIMV6MdMjbIDKHKsL32MA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
- "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1MTE4WhgPOTk5OTEyMzEyMzU5NTla\n"
- "MAAwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZPXiZqiz3wLuz+B4Z\n"
- "nJuCphLEX7k15NcpamL3+9ea4gXyfeFSHbSaihPauBUcDMVbL/wfkhxYiJRCX7wq\n"
- "HIkJK4En5aEzSDDa6pI/CI5lSbiXdNDGbFLh5b8Guvhfzyy8lDjFNNy3abkfU270\n"
- "tnzFY5mkYwYgjuN/RgPqh0b8McT+xUeN9x4PuSXXmMC1r3v7y4JuMxE8ZzGDhW2a\n"
- "QK5Is6QYv0WELS5hVvB8GdP5XQwTJw4HH5i/YES7TENV2RByzRY8hFQ9SbK5YHHG\n"
- "oszVJIlIuxm5v8N2Ig1cW6t7t3HnuZbDYRDCERMiEigBz8vEZZyFsMLg5Z7JiNKS\n"
- "G/f+ER9CzDJXHgxBctV9EEc2KmRT1P9JeI/xZUOl9lKljc+t8m0Um3Asx5duWm4t\n"
- "cZm7FecnaJiTXD/tEG64qTKWtDuoI7+X9MjHe5lvf2gIJT3CoKW24Rn6O1fc9oCC\n"
- "nVAi0V6FLM4XaG50X9NC666RVEFkXih8THA1gC9m9NJMrD0CAwEAAaOBjTCBijAM\n"
- "BgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDATBgNVHSUEDDAKBggr\n"
- "BgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBQzneEn04vV/OsF/LXH\n"
- "gWlPXjvZ1jAfBgNVHSMEGDAWgBQtMwQbJ3+UBHzH4zVP6SWklOG3oTANBgkqhkiG\n"
- "9w0BAQsFAAOCAYEASbEdRkK44GUb0Y+80JdYGFV1YuHUAq4QYSwCdrT0hwJrFYI2\n"
- "s8+9/ncyzeyY00ryg6tPlKyE5B7ss29l8zcj0WJYsUk5kjV6uCWuo9/rqqPHK6Lc\n"
- "Qx1cONR4Vt+gD5TX0nRNuKaHVbBJARZ3YOl2F3nApcR/8boq+WNKGhGkzFMaKV+i\n"
- "IDpB0ziBUcb+q257lQGKrBuXl5nCd+PZswB//pZCsIkTF5jFdjeXvOvGDjYAr8rG\n"
- "KpoMTskNcBqgi59sJc8djWMbNt+15qH4mSvTUW1caukeJAr4mwHfrSK5k9ezSSp1\n"
- "EpbQ2Rp3xpbCgklhtsKHSJZ43sghZvCOxk8G3bRZ1/lW6sXvIPmLkvoeetTLvqYq\n"
- "t/+gfv4NJuyZhzuJHbxrxBJ3C9QjqTbpiUumeRQHXLa+vZJUKX7ak1KVubKiOC+x\n"
- "wyfgmq6quk5jPgOgMJWLwpA2Rm30wqX4OehXov3stSXFb+qASNOHlEtQdgKzIEX/\n"
- "6TXY44pCGHMFO6Kr\n"
- "-----END CERTIFICATE-----\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5NTlaMBIx\n"
- "EDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n"
- "gQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2WLiope/x\n"
- "NL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioVtvPQwEpv\n"
- "uI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR5+wGsJDv\n"
- "kfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJrP+GtLiG0\n"
- "AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj0Sk3Rq93\n"
- "JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1ROsdk4WU\n"
- "ed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH4vysDO9U\n"
- "ZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B48xfmyIF\n"
- "jgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\n"
- "A1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
- "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58oDRy5a0o\n"
- "PvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68kogjKs31\n"
- "QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmTsQOdv/bz\n"
- "R+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT45SGw7c7F\n"
- "cumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2gaygWNiD\n"
- "+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiujgUV0TZH\n"
- "EyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c4FdrCByV\n"
- "haeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1Y1MQ72Sn\n"
- "frzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
- "-----END CERTIFICATE-----\n";
-
-#define server_ca3_cert server_ca3_localhost_cert
-#define server_ca3_cert_chain server_ca3_localhost_cert_chain
-const gnutls_datum_t server_ca3_localhost_cert = { (unsigned char*)server_localhost_ca3_cert_pem,
- sizeof(server_localhost_ca3_cert_pem)-1};
-
-const gnutls_datum_t server_ca3_localhost_rsa_decrypt_cert = { (unsigned char*)server_localhost_ca3_rsa_decrypt_cert_pem,
- sizeof(server_localhost_ca3_rsa_decrypt_cert_pem)-1};
-
-const gnutls_datum_t server_ca3_localhost_rsa_sign_cert = { (unsigned char*)server_localhost_ca3_rsa_sign_cert_pem,
- sizeof(server_localhost_ca3_rsa_sign_cert_pem)-1};
-
-const gnutls_datum_t server_ca3_tlsfeat_cert = { (unsigned char*)server_ca3_tlsfeat_cert_pem,
- sizeof(server_ca3_tlsfeat_cert_pem)-1};
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEKDCCApCgAwIBAgIMV6MdMjbIDKHKsL32MA0GCSqGSIb3DQEBCwUAMBIxEDAO\n"
+ "BgNVBAMTB3N1YkNBLTMwIBcNMTYwNTEwMDg1MTE4WhgPOTk5OTEyMzEyMzU5NTla\n"
+ "MAAwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZPXiZqiz3wLuz+B4Z\n"
+ "nJuCphLEX7k15NcpamL3+9ea4gXyfeFSHbSaihPauBUcDMVbL/wfkhxYiJRCX7wq\n"
+ "HIkJK4En5aEzSDDa6pI/CI5lSbiXdNDGbFLh5b8Guvhfzyy8lDjFNNy3abkfU270\n"
+ "tnzFY5mkYwYgjuN/RgPqh0b8McT+xUeN9x4PuSXXmMC1r3v7y4JuMxE8ZzGDhW2a\n"
+ "QK5Is6QYv0WELS5hVvB8GdP5XQwTJw4HH5i/YES7TENV2RByzRY8hFQ9SbK5YHHG\n"
+ "oszVJIlIuxm5v8N2Ig1cW6t7t3HnuZbDYRDCERMiEigBz8vEZZyFsMLg5Z7JiNKS\n"
+ "G/f+ER9CzDJXHgxBctV9EEc2KmRT1P9JeI/xZUOl9lKljc+t8m0Um3Asx5duWm4t\n"
+ "cZm7FecnaJiTXD/tEG64qTKWtDuoI7+X9MjHe5lvf2gIJT3CoKW24Rn6O1fc9oCC\n"
+ "nVAi0V6FLM4XaG50X9NC666RVEFkXih8THA1gC9m9NJMrD0CAwEAAaOBjTCBijAM\n"
+ "BgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDATBgNVHSUEDDAKBggr\n"
+ "BgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBQzneEn04vV/OsF/LXH\n"
+ "gWlPXjvZ1jAfBgNVHSMEGDAWgBQtMwQbJ3+UBHzH4zVP6SWklOG3oTANBgkqhkiG\n"
+ "9w0BAQsFAAOCAYEASbEdRkK44GUb0Y+80JdYGFV1YuHUAq4QYSwCdrT0hwJrFYI2\n"
+ "s8+9/ncyzeyY00ryg6tPlKyE5B7ss29l8zcj0WJYsUk5kjV6uCWuo9/rqqPHK6Lc\n"
+ "Qx1cONR4Vt+gD5TX0nRNuKaHVbBJARZ3YOl2F3nApcR/8boq+WNKGhGkzFMaKV+i\n"
+ "IDpB0ziBUcb+q257lQGKrBuXl5nCd+PZswB//pZCsIkTF5jFdjeXvOvGDjYAr8rG\n"
+ "KpoMTskNcBqgi59sJc8djWMbNt+15qH4mSvTUW1caukeJAr4mwHfrSK5k9ezSSp1\n"
+ "EpbQ2Rp3xpbCgklhtsKHSJZ43sghZvCOxk8G3bRZ1/lW6sXvIPmLkvoeetTLvqYq\n"
+ "t/+gfv4NJuyZhzuJHbxrxBJ3C9QjqTbpiUumeRQHXLa+vZJUKX7ak1KVubKiOC+x\n"
+ "wyfgmq6quk5jPgOgMJWLwpA2Rm30wqX4OehXov3stSXFb+qASNOHlEtQdgKzIEX/\n"
+ "6TXY44pCGHMFO6Kr\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5NTlaMBIx\n"
+ "EDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIB\n"
+ "gQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2WLiope/x\n"
+ "NL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioVtvPQwEpv\n"
+ "uI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR5+wGsJDv\n"
+ "kfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJrP+GtLiG0\n"
+ "AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj0Sk3Rq93\n"
+ "JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1ROsdk4WU\n"
+ "ed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH4vysDO9U\n"
+ "ZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B48xfmyIF\n"
+ "jgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\n"
+ "A1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5qIYZY7ak\n"
+ "FBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58oDRy5a0o\n"
+ "PvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68kogjKs31\n"
+ "QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmTsQOdv/bz\n"
+ "R+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT45SGw7c7F\n"
+ "cumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2gaygWNiD\n"
+ "+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiujgUV0TZH\n"
+ "EyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c4FdrCByV\n"
+ "haeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1Y1MQ72Sn\n"
+ "frzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
+ "-----END CERTIFICATE-----\n";
+
+# define server_ca3_cert server_ca3_localhost_cert
+# define server_ca3_cert_chain server_ca3_localhost_cert_chain
+const gnutls_datum_t server_ca3_localhost_cert =
+ { (unsigned char *)server_localhost_ca3_cert_pem,
+ sizeof(server_localhost_ca3_cert_pem) - 1
+};
+
+const gnutls_datum_t server_ca3_localhost_rsa_decrypt_cert =
+ { (unsigned char *)server_localhost_ca3_rsa_decrypt_cert_pem,
+ sizeof(server_localhost_ca3_rsa_decrypt_cert_pem) - 1
+};
+
+const gnutls_datum_t server_ca3_localhost_rsa_sign_cert =
+ { (unsigned char *)server_localhost_ca3_rsa_sign_cert_pem,
+ sizeof(server_localhost_ca3_rsa_sign_cert_pem) - 1
+};
+
+const gnutls_datum_t server_ca3_tlsfeat_cert =
+ { (unsigned char *)server_ca3_tlsfeat_cert_pem,
+ sizeof(server_ca3_tlsfeat_cert_pem) - 1
+};
const gnutls_datum_t server_ca3_localhost_cert_chain = {
- (unsigned char*)server_localhost_ca3_cert_chain_pem,
- sizeof(server_localhost_ca3_cert_chain_pem)-1
+ (unsigned char *)server_localhost_ca3_cert_chain_pem,
+ sizeof(server_localhost_ca3_cert_chain_pem) - 1
};
/* shares server_ca3 key */
static char server_localhost_insecure_ca3_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDFzCCAX+gAwIBAgIIV90eOyTzpOcwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNjA5MTcxMDQzMDhaGA85OTk5MTIzMTIzNTk1OVowHjEcMBoG\n"
- "A1UEAxMTSW5zZWN1cmUgKDc2OCBiaXRzKTB8MA0GCSqGSIb3DQEBAQUAA2sAMGgC\n"
- "YQCuxKP0RG8KHAp7HnqaFpcWnPVl72vmkLvBgC0h3gnVUO3a41//kkLOG0HGUOi6\n"
- "77cLNOzRRll9NPi1RwMNTKayA0cv+pJBsoNq/byOeWKJkKOgwTZD6Vi6X3MDtj7e\n"
- "3SECAwEAAaOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9z\n"
- "dDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQW\n"
- "BBS4eSAgXUnLYP8HfA9SmoXjOAYLoDAfBgNVHSMEGDAWgBT5qIYZY7akFBNgdg8B\n"
- "mjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAFa7J4+vJ7V+4y+CaaATD/WATc9ZV\n"
- "ZUITpI6irjWneRPz0u0/3BLprKoCbO0m5QjoBaji1wUbVWpJir+N7QS577ufjwh0\n"
- "ViGFn1b3eU0wGPgz8n0B0vo6NifaQl1Df5PBN3Mfa+r0aUK3QYxnlHsXxanYaKzj\n"
- "9lpXUq57fpJJFSFASSzGSwkg8xiwlFBre/9jJ8sf1Blhu8M50NkOCdRdwpg/rbMI\n"
- "Oukh0pvJQYQfQsgxc/hySWfEtN0TThXLRFMRRcFFeRHK2LXyAo/sNzWJMIou7hBQ\n"
- "p1LNlCoUc3TGRKMQToEi+GIgjJx17zADze+1hHHE3aEEVGU9n3Gkj+hxy46LN5ke\n"
- "hDox4AzBf4+KaA/vdHGRvZjzhajaMdL6w8FJgmUc26L+kH/rsTuev+PrvqXuuy1W\n"
- "c2QqW3gu7oUy+g99TQFeXgyJHqv/cu/M0vhUV9wwHQJdj1bFCEaFW40MmQArXz5D\n"
- "F92lL9akoGYmyehqQHeRQsrVRKcCOiv8lgVF\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server_ca3_localhost_insecure_cert = { (unsigned char*)server_localhost_insecure_ca3_cert_pem,
- sizeof(server_localhost_insecure_ca3_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDFzCCAX+gAwIBAgIIV90eOyTzpOcwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNjA5MTcxMDQzMDhaGA85OTk5MTIzMTIzNTk1OVowHjEcMBoG\n"
+ "A1UEAxMTSW5zZWN1cmUgKDc2OCBiaXRzKTB8MA0GCSqGSIb3DQEBAQUAA2sAMGgC\n"
+ "YQCuxKP0RG8KHAp7HnqaFpcWnPVl72vmkLvBgC0h3gnVUO3a41//kkLOG0HGUOi6\n"
+ "77cLNOzRRll9NPi1RwMNTKayA0cv+pJBsoNq/byOeWKJkKOgwTZD6Vi6X3MDtj7e\n"
+ "3SECAwEAAaOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9z\n"
+ "dDATBgNVHSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQW\n"
+ "BBS4eSAgXUnLYP8HfA9SmoXjOAYLoDAfBgNVHSMEGDAWgBT5qIYZY7akFBNgdg8B\n"
+ "mjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAFa7J4+vJ7V+4y+CaaATD/WATc9ZV\n"
+ "ZUITpI6irjWneRPz0u0/3BLprKoCbO0m5QjoBaji1wUbVWpJir+N7QS577ufjwh0\n"
+ "ViGFn1b3eU0wGPgz8n0B0vo6NifaQl1Df5PBN3Mfa+r0aUK3QYxnlHsXxanYaKzj\n"
+ "9lpXUq57fpJJFSFASSzGSwkg8xiwlFBre/9jJ8sf1Blhu8M50NkOCdRdwpg/rbMI\n"
+ "Oukh0pvJQYQfQsgxc/hySWfEtN0TThXLRFMRRcFFeRHK2LXyAo/sNzWJMIou7hBQ\n"
+ "p1LNlCoUc3TGRKMQToEi+GIgjJx17zADze+1hHHE3aEEVGU9n3Gkj+hxy46LN5ke\n"
+ "hDox4AzBf4+KaA/vdHGRvZjzhajaMdL6w8FJgmUc26L+kH/rsTuev+PrvqXuuy1W\n"
+ "c2QqW3gu7oUy+g99TQFeXgyJHqv/cu/M0vhUV9wwHQJdj1bFCEaFW40MmQArXz5D\n"
+ "F92lL9akoGYmyehqQHeRQsrVRKcCOiv8lgVF\n" "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server_ca3_localhost_insecure_cert =
+ { (unsigned char *)server_localhost_insecure_ca3_cert_pem,
+ sizeof(server_localhost_insecure_ca3_cert_pem) - 1
};
static char server_ca3_localhost_insecure_key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIBywIBAAJhAK7Eo/REbwocCnseepoWlxac9WXva+aQu8GALSHeCdVQ7drjX/+S\n"
- "Qs4bQcZQ6Lrvtws07NFGWX00+LVHAw1MprIDRy/6kkGyg2r9vI55YomQo6DBNkPp\n"
- "WLpfcwO2Pt7dIQIDAQABAmBd9Md0Dcpoc/TKhfNBnb1yYcWoHJQ0q0DVYXRiDb3Z\n"
- "mZ2WHMFCY75YkdzFoj/MKAyrl+n6SJy5V2gwqEEW84pHH2AaAseWsF16rSRz958b\n"
- "7seVpNi304tOk4PS7B6+RAUCMQDXiT23wggUir6uVrx0UfHJUcsRltK0qco6Q7o3\n"
- "b+uwrIAbaNNg+aAqAXXU5XWdBpcCMQDPlBKn42C/XkAZ11zflbzjrq22ie0gaLKZ\n"
- "j92rCaU0/qX4VR8KK6J9PL6ZLoTWqQcCMQCzazhoLmoBh5nBkMxh3BD08FSluLJ/\n"
- "19NS+ywZl95P/NjLeFB1qnbsYLjQ1443f9MCMDE/w3FbzC97MCAxbZKKl0c5wXNG\n"
- "pCEFViKC9KfI4Q6CwGP75iJmmeW2zM3RMKkxbwIxAIAViD0cQjNL9keUVjtN68pK\n"
- "dD2lxHfq5Q1QxCSjl8EnBnjnbFJN9WmK9ztkK00Avg==\n"
- "-----END RSA PRIVATE KEY-----\n";
-
-const gnutls_datum_t server_ca3_localhost_insecure_key = { (unsigned char*)server_ca3_localhost_insecure_key_pem,
- sizeof(server_ca3_localhost_insecure_key_pem)-1
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIBywIBAAJhAK7Eo/REbwocCnseepoWlxac9WXva+aQu8GALSHeCdVQ7drjX/+S\n"
+ "Qs4bQcZQ6Lrvtws07NFGWX00+LVHAw1MprIDRy/6kkGyg2r9vI55YomQo6DBNkPp\n"
+ "WLpfcwO2Pt7dIQIDAQABAmBd9Md0Dcpoc/TKhfNBnb1yYcWoHJQ0q0DVYXRiDb3Z\n"
+ "mZ2WHMFCY75YkdzFoj/MKAyrl+n6SJy5V2gwqEEW84pHH2AaAseWsF16rSRz958b\n"
+ "7seVpNi304tOk4PS7B6+RAUCMQDXiT23wggUir6uVrx0UfHJUcsRltK0qco6Q7o3\n"
+ "b+uwrIAbaNNg+aAqAXXU5XWdBpcCMQDPlBKn42C/XkAZ11zflbzjrq22ie0gaLKZ\n"
+ "j92rCaU0/qX4VR8KK6J9PL6ZLoTWqQcCMQCzazhoLmoBh5nBkMxh3BD08FSluLJ/\n"
+ "19NS+ywZl95P/NjLeFB1qnbsYLjQ1443f9MCMDE/w3FbzC97MCAxbZKKl0c5wXNG\n"
+ "pCEFViKC9KfI4Q6CwGP75iJmmeW2zM3RMKkxbwIxAIAViD0cQjNL9keUVjtN68pK\n"
+ "dD2lxHfq5Q1QxCSjl8EnBnjnbFJN9WmK9ztkK00Avg==\n"
+ "-----END RSA PRIVATE KEY-----\n";
+
+const gnutls_datum_t server_ca3_localhost_insecure_key =
+ { (unsigned char *)server_ca3_localhost_insecure_key_pem,
+ sizeof(server_ca3_localhost_insecure_key_pem) - 1
};
static char unknown_ca_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIID4DCCAkigAwIBAgIIVyG62RARjncwDQYJKoZIhvcNAQELBQAwFTETMBEGA1UE\n"
- "AxMKVW5rbm93biBDQTAgFw0xNjA0MjgwNzI1MTNaGA85OTk5MTIzMTIzNTk1OVow\n"
- "FTETMBEGA1UEAxMKVW5rbm93biBDQTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCC\n"
- "AYoCggGBALbdxniG+2wP/ONeZfvR7AJakVo5deFKIHVTiiBWwhg+HSjd4nfDa+vy\n"
- "Tt/wIdldP1PriD1Rigc8z68+RxPpGfAc197pKlKpO08I0L1RDKnjBWr4fGdCzE6u\n"
- "Z/ZsKVifoIZpdC8M2IYpAIMajEtnH53XZ1hTEviXTsneuiCTtap73OeSkL71SrIM\n"
- "kgBmAX17gfX3SxFjQUzOs6QMMOa3+8GW7RI+E/SyS1QkOO860dj9XYgOnTL20ibG\n"
- "cWF2XmTiQASI+KmHvYJCNJF/8pvmyJRyBHGZO830aBY0+DcS2bLKcyMiWfOJw7Wn\n"
- "paO7zSEC5WFgo4jdqroUBQdjQNCSSdrt1yYrAl1Sj2PMxYFX4H545Pr2sMpwC9An\n"
- "Pk9+uucT1Inj9615qbuXgFwhkgpK5pnPjzKaHp7ESlJj4/dIPTmhlt5BV+CLh7tS\n"
- "LzVLrddGU+os8JinT42radJ5V51Hn0C1CHIaFAuBCd5XRHXtrKb7WcnwCOxlcvux\n"
- "9h5/847F4wIDAQABozIwMDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBT5qIYZ\n"
- "Y7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAsCXvBLMc1YvZGBbM\n"
- "w2YalL7Gyw7t5TIbOhpIhsoWNrE8JNvwfU+xA0/hxA/UkbwwJOjntXFZ9eRIrjHU\n"
- "ULhqDZ1fAd7QnUQWuQjImU8XxnPjwgLG/tau9N3jdzJZy482vpytX94KdIQ+hPtC\n"
- "xA3fikG5F4cJCfu2RfaTskqikTO5XPzPdSNJiPk01jjh9ICc7cvS9smGxfTuZZOb\n"
- "+T1N8SV8uYkvPsiQ4uvO+ksxEdZ/z1jCjLyhnLXPgKdrjIgOb5wPxZUgwrg1n5fM\n"
- "Un72D43cnv5ykB2O9lXvPOLXlBz07ZwaiRsXDhh1/kmubOLERaw88bVUydYhE7SU\n"
- "eI34cw1eTtlKgFD+r+pPwRAzAkO/aCXVY6CsSLL4GyeXXvpxgngBiT8ArnntLHWd\n"
- "U1rpodAAdMBHDZf7Q8CXawI0EAIq0HpHCj3x2brKSf8eFMtl9FuaJ3KvM3ioXKYc\n"
- "nva6xGbu1R8UP4+fXCOFdiVixHEQR5k+mqd65vGGxovALAfY\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t unknown_ca_cert = { (unsigned char*)unknown_ca_cert_pem,
- sizeof(unknown_ca_cert_pem)-1
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIID4DCCAkigAwIBAgIIVyG62RARjncwDQYJKoZIhvcNAQELBQAwFTETMBEGA1UE\n"
+ "AxMKVW5rbm93biBDQTAgFw0xNjA0MjgwNzI1MTNaGA85OTk5MTIzMTIzNTk1OVow\n"
+ "FTETMBEGA1UEAxMKVW5rbm93biBDQTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCC\n"
+ "AYoCggGBALbdxniG+2wP/ONeZfvR7AJakVo5deFKIHVTiiBWwhg+HSjd4nfDa+vy\n"
+ "Tt/wIdldP1PriD1Rigc8z68+RxPpGfAc197pKlKpO08I0L1RDKnjBWr4fGdCzE6u\n"
+ "Z/ZsKVifoIZpdC8M2IYpAIMajEtnH53XZ1hTEviXTsneuiCTtap73OeSkL71SrIM\n"
+ "kgBmAX17gfX3SxFjQUzOs6QMMOa3+8GW7RI+E/SyS1QkOO860dj9XYgOnTL20ibG\n"
+ "cWF2XmTiQASI+KmHvYJCNJF/8pvmyJRyBHGZO830aBY0+DcS2bLKcyMiWfOJw7Wn\n"
+ "paO7zSEC5WFgo4jdqroUBQdjQNCSSdrt1yYrAl1Sj2PMxYFX4H545Pr2sMpwC9An\n"
+ "Pk9+uucT1Inj9615qbuXgFwhkgpK5pnPjzKaHp7ESlJj4/dIPTmhlt5BV+CLh7tS\n"
+ "LzVLrddGU+os8JinT42radJ5V51Hn0C1CHIaFAuBCd5XRHXtrKb7WcnwCOxlcvux\n"
+ "9h5/847F4wIDAQABozIwMDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBT5qIYZ\n"
+ "Y7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAsCXvBLMc1YvZGBbM\n"
+ "w2YalL7Gyw7t5TIbOhpIhsoWNrE8JNvwfU+xA0/hxA/UkbwwJOjntXFZ9eRIrjHU\n"
+ "ULhqDZ1fAd7QnUQWuQjImU8XxnPjwgLG/tau9N3jdzJZy482vpytX94KdIQ+hPtC\n"
+ "xA3fikG5F4cJCfu2RfaTskqikTO5XPzPdSNJiPk01jjh9ICc7cvS9smGxfTuZZOb\n"
+ "+T1N8SV8uYkvPsiQ4uvO+ksxEdZ/z1jCjLyhnLXPgKdrjIgOb5wPxZUgwrg1n5fM\n"
+ "Un72D43cnv5ykB2O9lXvPOLXlBz07ZwaiRsXDhh1/kmubOLERaw88bVUydYhE7SU\n"
+ "eI34cw1eTtlKgFD+r+pPwRAzAkO/aCXVY6CsSLL4GyeXXvpxgngBiT8ArnntLHWd\n"
+ "U1rpodAAdMBHDZf7Q8CXawI0EAIq0HpHCj3x2brKSf8eFMtl9FuaJ3KvM3ioXKYc\n"
+ "nva6xGbu1R8UP4+fXCOFdiVixHEQR5k+mqd65vGGxovALAfY\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t unknown_ca_cert = { (unsigned char *)unknown_ca_cert_pem,
+ sizeof(unknown_ca_cert_pem) - 1
};
static const char server_ca3_pkcs12_pem[] =
- "-----BEGIN PKCS12-----\n"
- "MIIRSgIBAzCCERAGCSqGSIb3DQEHAaCCEQEEghD9MIIQ+TCCCT8GCSqGSIb3DQEH\n"
- "BqCCCTAwggksAgEAMIIJJQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQI0Bv/\n"
- "MLNNeX0CAggAgIII+PugAg+ZArNedgnhMh2kM1tVj1os+8i0BPh9kQMT4h7qes6e\n"
- "Z6c+W4xCnL89p7Bz35riiK2KlJ6YzcTYXzONnmVR8gIEHsvYWwRSB++IE/jx9pCq\n"
- "TxN5GIH1tt467EKdc+Y+f4WBXmtk5hF4gTmHG2t3o4HoniNXzcRd+ZSsFj4HGE/c\n"
- "iXQY8lXN2PD1/XJsuwpYssKhJ+gI9iLREoyFdd+vG6KhzDvdgdvjWBQY/X5Q5pgF\n"
- "kepe9jjokbLqLj+S8eHBQ8KF9B2FKB+RTyYep9zqn5qbN7TOt3+yMH+u+/Jj/GzH\n"
- "ZjJNpee45G9CtPgjVS1t2fKjz9SaaKfOjHsH9WD5Sci9aqLRqFs84FlilRl6PyiG\n"
- "5g89MiXL5Iu6WFoTM41eIezcyQf0ndakj2clVEfX2pX+e1bXWFzvnc5a933N2loK\n"
- "OqJElti6h+T30M2CKEUX6FT5ihaowo5DwCXU3jTFcPMY0htvc4QuZQjBfyb/hGqf\n"
- "UqjLGh+VZCmNPSmSkoqZScl8N2Db/DPvIu+cga2jSkFtvMEZVd9O5lN53drU8ONE\n"
- "GMgdmJO43j/cnlICy+XpUyPrv055TXUo1gouyg5T1G/imtt0L265VTCxIqRVEsjR\n"
- "EQdacLCOPvMohukJAbUTADh/vd3vf/qMINse/y/fPMoLpmtmmZsnZnr1zmIcIXLg\n"
- "fLLBVhOz3Vl9RRl1qGbZQBleUUVAabYXbsK1UQHpZ7h2dSWF6ibm13DWRGkJRAVl\n"
- "R1dvpwAzR1bhb7rOgTMhmxqADCWh8lcqFt/4ReZofdHmWoxZEopW4m3CghZQM+Ee\n"
- "Kz4dYtLGk7W1rg8jnycAtxDwVGh9jMVsvCGypxkgEx+aQ7R+y9t0nu7l61GEnZBt\n"
- "uP2EVrChWdFVyH9+YnRRCNaX7lbDtCdOnIrgGeEtNYwzbxUq/kSzllljrkYWQItK\n"
- "W+vvMf9NVjTxyJr4kIXenm9ojPO3i485RWECIupdasel2YnPZYjcAKJc4p6nFGVB\n"
- "YDs/U32f1BVEXp7pPZOuuzU+ocTswSluwQ0NskuYnDT9w8+LauaqpILRQpCtIIZC\n"
- "TEqa7aS7S+f85Jeyt3yGsTNwUuQJZaG5D3Eh7iOB+rJaq3wEwoPlVLURVd8f6Z4H\n"
- "t1i0fM2iQA9+FXVkj2B5zr19no0Q8hr/Bb20u9YTT48CfXA7I2IwXSprb8kql0M8\n"
- "JmBv6FIDWzXLbGyRR39fX9kKlYMy0eq0ZxXKLLKEnZ1GUwtIeHTYKXG7ezliNaUl\n"
- "7UEp3V+bYOddL6uRafEsemdskHtl10RIi3Q3ZX2OksPueMQ5YSOVh4CSPpHsHYGA\n"
- "9KWt/PSja+zRGHsGEPX1jic2vHUTxOxI2sOZssnYCYWj/4MDk0xs7M0zdSXEEl5L\n"
- "97i5Qx+zv5MPM3yLexG+FllSD6nbPswzG8rHelfRSaK/+AHd0gigrUHqGFOp8B/P\n"
- "ml8obqs/LroKVzA109u3LfFlm+JFYeJgqsuoSuLYmJwFe6LNFkmhgGPwhyntqKEx\n"
- "zSxgZl91XrgYYuJwn7+CgQx6Dkv7I+SCfJGLBNeAp0Rr+hpYqk0OU9yHBrTLe8T+\n"
- "AQhHs4/ScZzRXu5F3dbjZ0PFwOYLo4t/NwUqkL8rCDtn45c1z5oyWhwk7nZMDCT3\n"
- "gIpVLf5XDD9f6eXV216oNIL1vxOw0B5GXXsT1KIKTCbBrNl920+GBu3xB44AN7Ik\n"
- "A+FhVKT1ZiaoEUKkUIy6I410GprvqDjRGp+Qs2Xitfk/E/3aoZ97cDBLEQOnF/lZ\n"
- "mqsczn9XnI+Jp+E8rhTxOMACR2Oa3XuL0+um7Qk+rkS2jcmJy9WniedO2E1EUHoj\n"
- "FRwWNjTQQR04Spv3qAc6IP1i8otUzKFkSx6SxH0a5zcm0ERNa6ZyU/jYvRrIGgZC\n"
- "kUxtTZbNNIggP3xqU+meRdRUeiOpqL8W3WCJ2FcjpR1FhXZ1sU1/u8pAgMMOhTBZ\n"
- "ICHmSjOGZ24kGgWNcLxYQG+qtIH7r6ihd9x/dv0s/Q9DAISv6G8z2YXcBb5EMZW4\n"
- "/59z0XL8HFx0/esjB9mHUD/4/Kzp169sJQOvDdmijNaZcDanUa8niBhruuS2KnUB\n"
- "iW2SrV6DBx32bjVIPbDJoDmcQWRDsuwpMqRAVtAWrmY5JeNp3zgII0Nr4rUAojWE\n"
- "x937fOdIMJu8K1Nst+78DVA4h6jdnUHv5bvOcsVKejjRvSot5vQ/XQPppHlQ73v6\n"
- "+Jro0bstYkMpfsbBXHt8tsB6nmZ9i5bv2x7P1nISKgMA4NzzdHFSpwFCmxrBaJen\n"
- "XmkoTdQId1O6YlYHJS7fMntNbi60E01bReAVjtY5Q77kqVab/LQI6yJHz01/1KjH\n"
- "2MiLixUV6a58FhKOI8Ea/yWSJti549Dqs+AMnwUu56GGT7lBLdT3x4r+SwThUWN2\n"
- "aCQoy6rJ5wrsa2OGoO6I5CWHzIov1zlP+oWdKueuGRGTwJdnWm9ZQxTbDJ3QHeBn\n"
- "OQXcWNcnQm2lcNfm297EGsClrrKTqmHBR8awpnnMdqzp0+vKiTzrfzGMVWQKoMM/\n"
- "74bzAts3+a+sBa5Y34YY+VLPqpXcVR9gY5+xxgYTzI7Ppggn5pNI+lng8B0hjFUU\n"
- "o2GNw8uKDVbjWf+ewULWKcCgAaBXXCAOo291TrURABmyR6XnybZwsg9a4yh/kcyk\n"
- "aXYLsrmEhfW17ChcGE5LLMzHEeSCUgy+z3yiiP6tD0g/6RFt9Nt57bVndJFqMVcS\n"
- "78VdEtQEI11Ty2oeN/+e8XhkZeicvgqgdrDb5jmfGN/F1la0FBnXnJG1fG8qnMMv\n"
- "C8V/eRxYanKWr/UwpsC6r/pn+1iTOO3hByg9rWgGSALbgnUFvIfQiSccVoD/lkbh\n"
- "TZlsuxhdKXnimi22RO50+0L99TnECu0psQXBDvCzzHSwi3MjPcvrQSPb/ZPSPqd2\n"
- "ock7nRDXFn+E04XAOFEuF1Bb5SfEbWHLx0d7uCSieAF9YMBZWvETTOOnDgH3Pe93\n"
- "+46a0tp4IdWrZEdUcU+/UpwuKyMGCCAfwKMFCA6i/In/cJAcrpRQJGWVsBERMaVQ\n"
- "6Ke/ZwIwggeyBgkqhkiG9w0BBwGgggejBIIHnzCCB5swggeXBgsqhkiG9w0BDAoB\n"
- "AqCCBy4wggcqMBwGCiqGSIb3DQEMAQMwDgQIT0kvLiNCahwCAggABIIHCM453Rnc\n"
- "ggHPk7un7VHebwwtckSBn7qntGhILQfJ+0xoPHPMHMUoDQ7DRbkcyuqtP0+VoZKa\n"
- "yLb2WDpyir/f8cyhZdDSnlb/WK16UaBguYmw8ppN09Lsok9KKNJxdWaHz65kABAh\n"
- "pHAX6BpdVFv8dOiWuE/+v0TGsaPpvRvwAy1qNNlErcIgGFs2GCgdVadblKw0lR3p\n"
- "t/6lhTRF4xqaPtUx4am2cQlmJyUCxy/XSetSFYaKIUdP5pEbesmYs5SuosCwokkB\n"
- "q3fzstm94dIzjoPz/XJp2Ek5lpmoHUO0SOGfSDdmMuCPoICQN+xcR0oD6Kso5MrS\n"
- "PepHrrG6KqX9fIR2Y2stEJsuaRYA/1h5CEnHnOWEbr2DBbuXB3HY6a5CrwV3xSCK\n"
- "Ek0LcWe6c/+ceBcpIUjte8oaM6jPO0WeknNtDQLz+YNnvIqiT/3u3P8pA6DomJrw\n"
- "0NoTm/SNMaKPz5IIBBNIzjMXWopgJ9+/bktwbENA/lO5gQvxLGRuaAZpvQpEbmhB\n"
- "9W5ofFelsN/BF0zminlL8w8rFc8AKMKEBg85z/EqDkl02cUQa5XDKe3i0Td04xeZ\n"
- "KOzsVqBm42rvCh2OgbNcbXBPqUTklRRKzzCgL/Ej645oTkzRfZxUmLaly5bkjyDm\n"
- "vXdLdp2doVQlXboCZDK5hmxkirviYPsrjNzAPd5Uz+4rVB5qrxYTsY+0Rtdpb+J0\n"
- "RqM2XFqJnA8ElIljsx7wugEEXt1wwey1JhS/+qybnDCP4f6OCaM5t8TTql2o6Eoh\n"
- "DntWfAiq8A8mP43HP3FrGyI/3cpgOEF67Q/nLJFnaf6vwfm15xdq20iOIDZtoGJ7\n"
- "VahRpOXNed2Xnv/HFwfPvGZM3lInEOEkC6vKWWDoOrE6kAu739X9lm+lLR0l1ihE\n"
- "X8gtilgYU5xzM0ZmRjepLn19jdb18nGEUg2pMNkhEakiDyxLmYBBU43IDRzdYgTe\n"
- "GJzakTDw/gNO6buVy+emr+IIW0f8hRSbXFHuw5/lpLZoXNCXuHRyEcGa4RhubrVe\n"
- "ycuauZYFSp0JhJe+0OtKkBUHSTkoj1aaOByylq8b38ovbFTZ/JiCsYGsmwOfDiSu\n"
- "21Fe1mv8+GtFf+t+H+IQBDv2/SHHWwVExW8hwYwXXZ8wodfpLrF7FWQvEa62/DvN\n"
- "nQ4sy+z3IJtoPoGBfKMgLSJaNyuavRpbhy1fYuhUwhnbrH1M3YVgi+CnW8lIn44e\n"
- "KoSPf11qTlgXBNVezXPYh6cw0FOObkiiuqSL7/ax34Lbz8vWs1yDs6ni9M7l8VUa\n"
- "j0MhBEQDTinzz2L7U/uRGkcHYVNsCAIOaStbKxNx2bnEmFL2TShs6eH1kPAyDJ9N\n"
- "SFuqmrboF92KNM1wKjIcthbJxPVJVlI1M0B8HVuU00QTIaJyJoQZuNQ6lyzTudwS\n"
- "5F69zmQCaRIN2b04m/237Z4/SXuUwFDdDojoFxJ6m1yA86uUigyOzKGavtZz4tgw\n"
- "BTCYcxaoCB2ebqNl3L4oE+gaAweAjtivNbAJswCkQF+LPEbAt8m2BZDo1bI4wAg+\n"
- "Mjzs83PkzE3bn6q6Rk8HslnOCS55M6gTPu2zvz/FSaLY29X/5D7QtKJPAw30xUA1\n"
- "Wjm3K0tkY/wqWntmJW9zVAaLzvW4iA61D9EuRoY/NChyF6HsLL8BjUEktNBItQ/h\n"
- "2kUQnrJeoaaW4nIZz/apiryaFekWWpjudO8zxhxHquK8KpwdXK4c6LCMycTio42J\n"
- "rw0/Tbe4noTfxPTJoaG9CaJXTq0rIMWxQprUONdjVih3cADI9V6/aO7/fSU+awFG\n"
- "0inoNW6HmAT9ztYsUgRJ+JfiZCc7+h8WY/rrDb15Jj0Jjl4pe2B3S57c5zJ7TgHd\n"
- "Zm8ED5uagqAcUIsBIlkNABAuia78tLewFFfCV5mYQUp3fHT6MU9EmPFI3YOuwvhk\n"
- "NhscLr0qGIdxK9fS190Al3W5VZiCZ3g6bTwRLkjVChNC6e8u2gxGy6Rx0uxW3c73\n"
- "/Spk4oYJ4PAT8GAgO4DJyRg52dFMBSBz4ZLAVR1eVVvPRbV7CSSaGLBLvAp/GFbz\n"
- "pZ7sfEeGuiSb0GzcdU7anf+xvmSK/rxHfQPjqZ5EcGG3xhONG/SYwUlrp4GlP6Qs\n"
- "ZlRSxsfy9YdIzmf3JhDvVtqK5Uj/wGXlX29NDh+X7mhvCOxCPM19AynXtGWgGFkb\n"
- "zd8oaGXbIt/FldsQidEx9UINjtmozl/pB03lFL8wbEF/wBuLx+E1Ite2NCspOJTk\n"
- "unw8CZJdUXmdVGo23iOrAziQFrlyPKawoX5iOYot47PQ6vcKiV2fnE5XHUqU2l6K\n"
- "DHZbSGfz8vjC9LsAJzhhyZvjxi0LIDwxyt+RqV24cxcz7Qecu4DEy0E/xmYIkdyZ\n"
- "SW97f3kIsAgQlku1LesNIk4dyzFWMCMGCSqGSIb3DQEJFTEWBBT9j7rrTvF9BQIR\n"
- "akEUSP09N/PaYzAvBgkqhkiG9w0BCRQxIh4gAHMAZQByAHYAZQByAC0AbABvAGMA\n"
- "YQBsAGgAbwBzAHQwMTAhMAkGBSsOAwIaBQAEFNeGPUIUl4cjhFet09N6VSCxmfSY\n"
- "BAjXfJCHoHZI2QICCAA=\n"
- "-----END PKCS12-----\n";
-
-const gnutls_datum_t server_ca3_pkcs12 = { (unsigned char*)server_ca3_pkcs12_pem,
- sizeof(server_ca3_pkcs12_pem)-1
+ "-----BEGIN PKCS12-----\n"
+ "MIIRSgIBAzCCERAGCSqGSIb3DQEHAaCCEQEEghD9MIIQ+TCCCT8GCSqGSIb3DQEH\n"
+ "BqCCCTAwggksAgEAMIIJJQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQI0Bv/\n"
+ "MLNNeX0CAggAgIII+PugAg+ZArNedgnhMh2kM1tVj1os+8i0BPh9kQMT4h7qes6e\n"
+ "Z6c+W4xCnL89p7Bz35riiK2KlJ6YzcTYXzONnmVR8gIEHsvYWwRSB++IE/jx9pCq\n"
+ "TxN5GIH1tt467EKdc+Y+f4WBXmtk5hF4gTmHG2t3o4HoniNXzcRd+ZSsFj4HGE/c\n"
+ "iXQY8lXN2PD1/XJsuwpYssKhJ+gI9iLREoyFdd+vG6KhzDvdgdvjWBQY/X5Q5pgF\n"
+ "kepe9jjokbLqLj+S8eHBQ8KF9B2FKB+RTyYep9zqn5qbN7TOt3+yMH+u+/Jj/GzH\n"
+ "ZjJNpee45G9CtPgjVS1t2fKjz9SaaKfOjHsH9WD5Sci9aqLRqFs84FlilRl6PyiG\n"
+ "5g89MiXL5Iu6WFoTM41eIezcyQf0ndakj2clVEfX2pX+e1bXWFzvnc5a933N2loK\n"
+ "OqJElti6h+T30M2CKEUX6FT5ihaowo5DwCXU3jTFcPMY0htvc4QuZQjBfyb/hGqf\n"
+ "UqjLGh+VZCmNPSmSkoqZScl8N2Db/DPvIu+cga2jSkFtvMEZVd9O5lN53drU8ONE\n"
+ "GMgdmJO43j/cnlICy+XpUyPrv055TXUo1gouyg5T1G/imtt0L265VTCxIqRVEsjR\n"
+ "EQdacLCOPvMohukJAbUTADh/vd3vf/qMINse/y/fPMoLpmtmmZsnZnr1zmIcIXLg\n"
+ "fLLBVhOz3Vl9RRl1qGbZQBleUUVAabYXbsK1UQHpZ7h2dSWF6ibm13DWRGkJRAVl\n"
+ "R1dvpwAzR1bhb7rOgTMhmxqADCWh8lcqFt/4ReZofdHmWoxZEopW4m3CghZQM+Ee\n"
+ "Kz4dYtLGk7W1rg8jnycAtxDwVGh9jMVsvCGypxkgEx+aQ7R+y9t0nu7l61GEnZBt\n"
+ "uP2EVrChWdFVyH9+YnRRCNaX7lbDtCdOnIrgGeEtNYwzbxUq/kSzllljrkYWQItK\n"
+ "W+vvMf9NVjTxyJr4kIXenm9ojPO3i485RWECIupdasel2YnPZYjcAKJc4p6nFGVB\n"
+ "YDs/U32f1BVEXp7pPZOuuzU+ocTswSluwQ0NskuYnDT9w8+LauaqpILRQpCtIIZC\n"
+ "TEqa7aS7S+f85Jeyt3yGsTNwUuQJZaG5D3Eh7iOB+rJaq3wEwoPlVLURVd8f6Z4H\n"
+ "t1i0fM2iQA9+FXVkj2B5zr19no0Q8hr/Bb20u9YTT48CfXA7I2IwXSprb8kql0M8\n"
+ "JmBv6FIDWzXLbGyRR39fX9kKlYMy0eq0ZxXKLLKEnZ1GUwtIeHTYKXG7ezliNaUl\n"
+ "7UEp3V+bYOddL6uRafEsemdskHtl10RIi3Q3ZX2OksPueMQ5YSOVh4CSPpHsHYGA\n"
+ "9KWt/PSja+zRGHsGEPX1jic2vHUTxOxI2sOZssnYCYWj/4MDk0xs7M0zdSXEEl5L\n"
+ "97i5Qx+zv5MPM3yLexG+FllSD6nbPswzG8rHelfRSaK/+AHd0gigrUHqGFOp8B/P\n"
+ "ml8obqs/LroKVzA109u3LfFlm+JFYeJgqsuoSuLYmJwFe6LNFkmhgGPwhyntqKEx\n"
+ "zSxgZl91XrgYYuJwn7+CgQx6Dkv7I+SCfJGLBNeAp0Rr+hpYqk0OU9yHBrTLe8T+\n"
+ "AQhHs4/ScZzRXu5F3dbjZ0PFwOYLo4t/NwUqkL8rCDtn45c1z5oyWhwk7nZMDCT3\n"
+ "gIpVLf5XDD9f6eXV216oNIL1vxOw0B5GXXsT1KIKTCbBrNl920+GBu3xB44AN7Ik\n"
+ "A+FhVKT1ZiaoEUKkUIy6I410GprvqDjRGp+Qs2Xitfk/E/3aoZ97cDBLEQOnF/lZ\n"
+ "mqsczn9XnI+Jp+E8rhTxOMACR2Oa3XuL0+um7Qk+rkS2jcmJy9WniedO2E1EUHoj\n"
+ "FRwWNjTQQR04Spv3qAc6IP1i8otUzKFkSx6SxH0a5zcm0ERNa6ZyU/jYvRrIGgZC\n"
+ "kUxtTZbNNIggP3xqU+meRdRUeiOpqL8W3WCJ2FcjpR1FhXZ1sU1/u8pAgMMOhTBZ\n"
+ "ICHmSjOGZ24kGgWNcLxYQG+qtIH7r6ihd9x/dv0s/Q9DAISv6G8z2YXcBb5EMZW4\n"
+ "/59z0XL8HFx0/esjB9mHUD/4/Kzp169sJQOvDdmijNaZcDanUa8niBhruuS2KnUB\n"
+ "iW2SrV6DBx32bjVIPbDJoDmcQWRDsuwpMqRAVtAWrmY5JeNp3zgII0Nr4rUAojWE\n"
+ "x937fOdIMJu8K1Nst+78DVA4h6jdnUHv5bvOcsVKejjRvSot5vQ/XQPppHlQ73v6\n"
+ "+Jro0bstYkMpfsbBXHt8tsB6nmZ9i5bv2x7P1nISKgMA4NzzdHFSpwFCmxrBaJen\n"
+ "XmkoTdQId1O6YlYHJS7fMntNbi60E01bReAVjtY5Q77kqVab/LQI6yJHz01/1KjH\n"
+ "2MiLixUV6a58FhKOI8Ea/yWSJti549Dqs+AMnwUu56GGT7lBLdT3x4r+SwThUWN2\n"
+ "aCQoy6rJ5wrsa2OGoO6I5CWHzIov1zlP+oWdKueuGRGTwJdnWm9ZQxTbDJ3QHeBn\n"
+ "OQXcWNcnQm2lcNfm297EGsClrrKTqmHBR8awpnnMdqzp0+vKiTzrfzGMVWQKoMM/\n"
+ "74bzAts3+a+sBa5Y34YY+VLPqpXcVR9gY5+xxgYTzI7Ppggn5pNI+lng8B0hjFUU\n"
+ "o2GNw8uKDVbjWf+ewULWKcCgAaBXXCAOo291TrURABmyR6XnybZwsg9a4yh/kcyk\n"
+ "aXYLsrmEhfW17ChcGE5LLMzHEeSCUgy+z3yiiP6tD0g/6RFt9Nt57bVndJFqMVcS\n"
+ "78VdEtQEI11Ty2oeN/+e8XhkZeicvgqgdrDb5jmfGN/F1la0FBnXnJG1fG8qnMMv\n"
+ "C8V/eRxYanKWr/UwpsC6r/pn+1iTOO3hByg9rWgGSALbgnUFvIfQiSccVoD/lkbh\n"
+ "TZlsuxhdKXnimi22RO50+0L99TnECu0psQXBDvCzzHSwi3MjPcvrQSPb/ZPSPqd2\n"
+ "ock7nRDXFn+E04XAOFEuF1Bb5SfEbWHLx0d7uCSieAF9YMBZWvETTOOnDgH3Pe93\n"
+ "+46a0tp4IdWrZEdUcU+/UpwuKyMGCCAfwKMFCA6i/In/cJAcrpRQJGWVsBERMaVQ\n"
+ "6Ke/ZwIwggeyBgkqhkiG9w0BBwGgggejBIIHnzCCB5swggeXBgsqhkiG9w0BDAoB\n"
+ "AqCCBy4wggcqMBwGCiqGSIb3DQEMAQMwDgQIT0kvLiNCahwCAggABIIHCM453Rnc\n"
+ "ggHPk7un7VHebwwtckSBn7qntGhILQfJ+0xoPHPMHMUoDQ7DRbkcyuqtP0+VoZKa\n"
+ "yLb2WDpyir/f8cyhZdDSnlb/WK16UaBguYmw8ppN09Lsok9KKNJxdWaHz65kABAh\n"
+ "pHAX6BpdVFv8dOiWuE/+v0TGsaPpvRvwAy1qNNlErcIgGFs2GCgdVadblKw0lR3p\n"
+ "t/6lhTRF4xqaPtUx4am2cQlmJyUCxy/XSetSFYaKIUdP5pEbesmYs5SuosCwokkB\n"
+ "q3fzstm94dIzjoPz/XJp2Ek5lpmoHUO0SOGfSDdmMuCPoICQN+xcR0oD6Kso5MrS\n"
+ "PepHrrG6KqX9fIR2Y2stEJsuaRYA/1h5CEnHnOWEbr2DBbuXB3HY6a5CrwV3xSCK\n"
+ "Ek0LcWe6c/+ceBcpIUjte8oaM6jPO0WeknNtDQLz+YNnvIqiT/3u3P8pA6DomJrw\n"
+ "0NoTm/SNMaKPz5IIBBNIzjMXWopgJ9+/bktwbENA/lO5gQvxLGRuaAZpvQpEbmhB\n"
+ "9W5ofFelsN/BF0zminlL8w8rFc8AKMKEBg85z/EqDkl02cUQa5XDKe3i0Td04xeZ\n"
+ "KOzsVqBm42rvCh2OgbNcbXBPqUTklRRKzzCgL/Ej645oTkzRfZxUmLaly5bkjyDm\n"
+ "vXdLdp2doVQlXboCZDK5hmxkirviYPsrjNzAPd5Uz+4rVB5qrxYTsY+0Rtdpb+J0\n"
+ "RqM2XFqJnA8ElIljsx7wugEEXt1wwey1JhS/+qybnDCP4f6OCaM5t8TTql2o6Eoh\n"
+ "DntWfAiq8A8mP43HP3FrGyI/3cpgOEF67Q/nLJFnaf6vwfm15xdq20iOIDZtoGJ7\n"
+ "VahRpOXNed2Xnv/HFwfPvGZM3lInEOEkC6vKWWDoOrE6kAu739X9lm+lLR0l1ihE\n"
+ "X8gtilgYU5xzM0ZmRjepLn19jdb18nGEUg2pMNkhEakiDyxLmYBBU43IDRzdYgTe\n"
+ "GJzakTDw/gNO6buVy+emr+IIW0f8hRSbXFHuw5/lpLZoXNCXuHRyEcGa4RhubrVe\n"
+ "ycuauZYFSp0JhJe+0OtKkBUHSTkoj1aaOByylq8b38ovbFTZ/JiCsYGsmwOfDiSu\n"
+ "21Fe1mv8+GtFf+t+H+IQBDv2/SHHWwVExW8hwYwXXZ8wodfpLrF7FWQvEa62/DvN\n"
+ "nQ4sy+z3IJtoPoGBfKMgLSJaNyuavRpbhy1fYuhUwhnbrH1M3YVgi+CnW8lIn44e\n"
+ "KoSPf11qTlgXBNVezXPYh6cw0FOObkiiuqSL7/ax34Lbz8vWs1yDs6ni9M7l8VUa\n"
+ "j0MhBEQDTinzz2L7U/uRGkcHYVNsCAIOaStbKxNx2bnEmFL2TShs6eH1kPAyDJ9N\n"
+ "SFuqmrboF92KNM1wKjIcthbJxPVJVlI1M0B8HVuU00QTIaJyJoQZuNQ6lyzTudwS\n"
+ "5F69zmQCaRIN2b04m/237Z4/SXuUwFDdDojoFxJ6m1yA86uUigyOzKGavtZz4tgw\n"
+ "BTCYcxaoCB2ebqNl3L4oE+gaAweAjtivNbAJswCkQF+LPEbAt8m2BZDo1bI4wAg+\n"
+ "Mjzs83PkzE3bn6q6Rk8HslnOCS55M6gTPu2zvz/FSaLY29X/5D7QtKJPAw30xUA1\n"
+ "Wjm3K0tkY/wqWntmJW9zVAaLzvW4iA61D9EuRoY/NChyF6HsLL8BjUEktNBItQ/h\n"
+ "2kUQnrJeoaaW4nIZz/apiryaFekWWpjudO8zxhxHquK8KpwdXK4c6LCMycTio42J\n"
+ "rw0/Tbe4noTfxPTJoaG9CaJXTq0rIMWxQprUONdjVih3cADI9V6/aO7/fSU+awFG\n"
+ "0inoNW6HmAT9ztYsUgRJ+JfiZCc7+h8WY/rrDb15Jj0Jjl4pe2B3S57c5zJ7TgHd\n"
+ "Zm8ED5uagqAcUIsBIlkNABAuia78tLewFFfCV5mYQUp3fHT6MU9EmPFI3YOuwvhk\n"
+ "NhscLr0qGIdxK9fS190Al3W5VZiCZ3g6bTwRLkjVChNC6e8u2gxGy6Rx0uxW3c73\n"
+ "/Spk4oYJ4PAT8GAgO4DJyRg52dFMBSBz4ZLAVR1eVVvPRbV7CSSaGLBLvAp/GFbz\n"
+ "pZ7sfEeGuiSb0GzcdU7anf+xvmSK/rxHfQPjqZ5EcGG3xhONG/SYwUlrp4GlP6Qs\n"
+ "ZlRSxsfy9YdIzmf3JhDvVtqK5Uj/wGXlX29NDh+X7mhvCOxCPM19AynXtGWgGFkb\n"
+ "zd8oaGXbIt/FldsQidEx9UINjtmozl/pB03lFL8wbEF/wBuLx+E1Ite2NCspOJTk\n"
+ "unw8CZJdUXmdVGo23iOrAziQFrlyPKawoX5iOYot47PQ6vcKiV2fnE5XHUqU2l6K\n"
+ "DHZbSGfz8vjC9LsAJzhhyZvjxi0LIDwxyt+RqV24cxcz7Qecu4DEy0E/xmYIkdyZ\n"
+ "SW97f3kIsAgQlku1LesNIk4dyzFWMCMGCSqGSIb3DQEJFTEWBBT9j7rrTvF9BQIR\n"
+ "akEUSP09N/PaYzAvBgkqhkiG9w0BCRQxIh4gAHMAZQByAHYAZQByAC0AbABvAGMA\n"
+ "YQBsAGgAbwBzAHQwMTAhMAkGBSsOAwIaBQAEFNeGPUIUl4cjhFet09N6VSCxmfSY\n"
+ "BAjXfJCHoHZI2QICCAA=\n" "-----END PKCS12-----\n";
+
+const gnutls_datum_t server_ca3_pkcs12 =
+ { (unsigned char *)server_ca3_pkcs12_pem,
+ sizeof(server_ca3_pkcs12_pem) - 1
};
/* Raw public-key key material for testing */
static char rawpk_public_key_pem1[] =
- "-----BEGIN PUBLIC KEY-----\n"
- "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAyAeBq7Ti7oVExeVT1PqH\n"
- "GBXzC+johdeVnZgZRLhDTIaIGODV5F5JhE4NNb1O/DYLlAy5IIO8tfAE2KIxlarN\n"
- "H/+AcfV6ZJQSG4SSmhoIGzfdcdjuBmFfdfhO+z/cgqiewh53/fFCQlaJweHhpmim\n"
- "/LVL/M/1Rd6Urskv/5jXGG4FVUNfhXKQag0uzWsqcztCPX7Lrqr2BSOmkA1nWzdo\n"
- "h5oBuxdooaH9/kwphqJAp03LwtaSStX/yz6Mh+ZqEbBuM4mWw/xKzbEbs7zA+d8s\n"
- "ryHXkC8nsdA+h+IRd8bPa/KuWQNfjxXKNPzgmsZddHmHtYtWvAcoIMvtyO23Y2Nh\n"
- "N4V0/7fwFLbZtfUBg4pqUl2ktkdwsNguTT1qzJCsYhsHXaqqvHy+5HR2D0w07y2X\n"
- "1qCVmfHzBZCM5OhxoeoauE+xu+5nvYrgsgPE0y5Nty0y2MrApg3digaiKUXrI+mE\n"
- "VKn9vsQeaVvw9D6PgNQM99HkbGhRMGPOzcHjS/ZeLd1zAgMBAAE=\n"
- "-----END PUBLIC KEY-----";
+ "-----BEGIN PUBLIC KEY-----\n"
+ "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAyAeBq7Ti7oVExeVT1PqH\n"
+ "GBXzC+johdeVnZgZRLhDTIaIGODV5F5JhE4NNb1O/DYLlAy5IIO8tfAE2KIxlarN\n"
+ "H/+AcfV6ZJQSG4SSmhoIGzfdcdjuBmFfdfhO+z/cgqiewh53/fFCQlaJweHhpmim\n"
+ "/LVL/M/1Rd6Urskv/5jXGG4FVUNfhXKQag0uzWsqcztCPX7Lrqr2BSOmkA1nWzdo\n"
+ "h5oBuxdooaH9/kwphqJAp03LwtaSStX/yz6Mh+ZqEbBuM4mWw/xKzbEbs7zA+d8s\n"
+ "ryHXkC8nsdA+h+IRd8bPa/KuWQNfjxXKNPzgmsZddHmHtYtWvAcoIMvtyO23Y2Nh\n"
+ "N4V0/7fwFLbZtfUBg4pqUl2ktkdwsNguTT1qzJCsYhsHXaqqvHy+5HR2D0w07y2X\n"
+ "1qCVmfHzBZCM5OhxoeoauE+xu+5nvYrgsgPE0y5Nty0y2MrApg3digaiKUXrI+mE\n"
+ "VKn9vsQeaVvw9D6PgNQM99HkbGhRMGPOzcHjS/ZeLd1zAgMBAAE=\n"
+ "-----END PUBLIC KEY-----";
const gnutls_datum_t rawpk_public_key1 = {
- (unsigned char*)rawpk_public_key_pem1,
+ (unsigned char *)rawpk_public_key_pem1,
sizeof(rawpk_public_key_pem1) - 1
};
static char rawpk_private_key_pem1[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIG4wIBAAKCAYEAyAeBq7Ti7oVExeVT1PqHGBXzC+johdeVnZgZRLhDTIaIGODV\n"
- "5F5JhE4NNb1O/DYLlAy5IIO8tfAE2KIxlarNH/+AcfV6ZJQSG4SSmhoIGzfdcdju\n"
- "BmFfdfhO+z/cgqiewh53/fFCQlaJweHhpmim/LVL/M/1Rd6Urskv/5jXGG4FVUNf\n"
- "hXKQag0uzWsqcztCPX7Lrqr2BSOmkA1nWzdoh5oBuxdooaH9/kwphqJAp03LwtaS\n"
- "StX/yz6Mh+ZqEbBuM4mWw/xKzbEbs7zA+d8sryHXkC8nsdA+h+IRd8bPa/KuWQNf\n"
- "jxXKNPzgmsZddHmHtYtWvAcoIMvtyO23Y2NhN4V0/7fwFLbZtfUBg4pqUl2ktkdw\n"
- "sNguTT1qzJCsYhsHXaqqvHy+5HR2D0w07y2X1qCVmfHzBZCM5OhxoeoauE+xu+5n\n"
- "vYrgsgPE0y5Nty0y2MrApg3digaiKUXrI+mEVKn9vsQeaVvw9D6PgNQM99HkbGhR\n"
- "MGPOzcHjS/ZeLd1zAgMBAAECggGBALHiAw3Yscqd11gJpbCMDqF7u4VG3alQ26un\n"
- "PClhl++w380H/Q62TriK1LKKpHgj8834NpXUsXg2d4jTTDcmCn6/L9GoFOzmxOeV\n"
- "0O2b4sOZvaNl397qrwLxDAPhec7z9yL4B4tcBqmJ3b3+izX6cS3gaC/uG9fDpgN9\n"
- "xOKPYBFInhOB86twAz9cc9eXysto0nJvlODDBj/xwUjvso9qydl1Or7PhWvf7Ek+\n"
- "H9ur5MUjqOWe/b/xaSWsfTrJzF/ovbRnGbXLIpozIx609TZS4wYSqU5FUjkL0zTB\n"
- "bTdb3jgFm/5SHnnThD67zbZavCxiN9wiTs3zeGlxYf8hMeaTkOYiAOR4/1bOTe2J\n"
- "ttRA1EcY+i6H0+JOtLkqwj5ka0m3lrH2KD3E/mHs1yfERQx7VVjw9IpeAKmi5lzQ\n"
- "v1lhIXiv75Mb0NMsCknGYPLHCyOY5aA2dhR8Wnr67gOYu3ssexLzMKczk5OTzl5c\n"
- "PRHJRXDpJqgOYWujF99uCYhnxonO4QKBwQDUQB0s4shWTyOylq7j4rCSbHf2zHDf\n"
- "HBYC75wyjQECNQXNk6hp5jJz2BC0XvnO7PYSRXaVauMc/S3V7V7GMsry3uugfwLy\n"
- "XNnyRVY4voe5SNt/WAArybNsPNPEIPzgkZmeWvcpoY8ESufPfVW54BvGHt3YjPjI\n"
- "gYmFUkpPRUWXfji91NpTlIrsP6jtBTYXGV4kVm+TawP06a6FdCjJQaI7Nm2dwUiX\n"
- "Cmf4oFSo8mGxi0wimX+BiLJep2bYnUF2gqMCgcEA8UKESDX3jBpyz59vpSjmfpw1\n"
- "AnlEfR6s83W92m0HfEYLulfxq9xA2zaQjy4GbaKVRfLrO2Pj3bZWs89RGXTQVGgq\n"
- "ztCLIRsL+M1SQ883e8yx4jwFaqIM+pPpvAjOOOTdpgY33h7w20tgrbzVKeOl1ghC\n"
- "IZ+K8C/tIGZXI5/TYppl7csIOoYRtzuRpyDE0tmwy658RfyxzEtfLxJoaLiFXOE0\n"
- "zFFrEvT/jto4jN+cwsdnHhxrY9+bVNUNyb9ZH7bxAoHARvcIyjEo+nKLZPKsltT8\n"
- "ZHiPw5ynQHGLin/CocQzSiGgRxPPg1jMFZ9wNl5q95ySyZkgBOUv+klMQfKTdYEW\n"
- "Cg4uigLtYUtaM36rTV2m03RgrzslE37k1pOf2juNUShdTGztpqW1w6Gnz+AAAZ3E\n"
- "q4E2e2jm5WMqL8FLxyVKF1TEc/Pu63MG3+aI/HZ5l0+MAmpD8+4b7I8VItmrqV6g\n"
- "d1vDWrN9KcL48E/q/nHL6CjC0+6uiwjBWpRt9o7djFoxAoHAJzK/e1wJVGIXtVQa\n"
- "N6Nlj7yhgD1ju1B4mTXQGuUMCkz3KtePFHU8tGExK5I2ySlZR3wobAXWx/cQLzbH\n"
- "3nL0RkKGcgPAFyjl0Q7LBulsAllHrZJC7whVQ4E0wLBNkUDeIlNwUE6Go5qjopbD\n"
- "q4KpNxUwaXYahNvEkzcNgWQ+XA7p8LDELX4K8tJi39ybHgbwiqdW2ags2xyD4ooD\n"
- "HMCeKnEMuwWfd/0GaJdcCMdsGNl9D49eg2OZQTc8fkLwoA6BAoHATQdk3VZwGGn/\n"
- "93p9vu189alkshTmir+SOo/ufH5U+j7t8cPeT7psuYAPZWS+Z6KEzvHxj54pAvcp\n"
- "mlAngD3+AfHDn/VAtYv5HVcpZ+K2K0X4v8N5HGIubgaebs2oVNz+RAWnd8K2drDG\n"
- "NcJV3C+zLziTCwvpGCIy3T/lHjKe+YczjGfhg2e6PgfwhTqPAjuhUZ8wScYo7l7V\n"
- "zAhlSL0665IXJ32zX+3LyQFDbkB6pbKy5TU+rX3DmDyj3MSbc3kR\n"
- "-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIG4wIBAAKCAYEAyAeBq7Ti7oVExeVT1PqHGBXzC+johdeVnZgZRLhDTIaIGODV\n"
+ "5F5JhE4NNb1O/DYLlAy5IIO8tfAE2KIxlarNH/+AcfV6ZJQSG4SSmhoIGzfdcdju\n"
+ "BmFfdfhO+z/cgqiewh53/fFCQlaJweHhpmim/LVL/M/1Rd6Urskv/5jXGG4FVUNf\n"
+ "hXKQag0uzWsqcztCPX7Lrqr2BSOmkA1nWzdoh5oBuxdooaH9/kwphqJAp03LwtaS\n"
+ "StX/yz6Mh+ZqEbBuM4mWw/xKzbEbs7zA+d8sryHXkC8nsdA+h+IRd8bPa/KuWQNf\n"
+ "jxXKNPzgmsZddHmHtYtWvAcoIMvtyO23Y2NhN4V0/7fwFLbZtfUBg4pqUl2ktkdw\n"
+ "sNguTT1qzJCsYhsHXaqqvHy+5HR2D0w07y2X1qCVmfHzBZCM5OhxoeoauE+xu+5n\n"
+ "vYrgsgPE0y5Nty0y2MrApg3digaiKUXrI+mEVKn9vsQeaVvw9D6PgNQM99HkbGhR\n"
+ "MGPOzcHjS/ZeLd1zAgMBAAECggGBALHiAw3Yscqd11gJpbCMDqF7u4VG3alQ26un\n"
+ "PClhl++w380H/Q62TriK1LKKpHgj8834NpXUsXg2d4jTTDcmCn6/L9GoFOzmxOeV\n"
+ "0O2b4sOZvaNl397qrwLxDAPhec7z9yL4B4tcBqmJ3b3+izX6cS3gaC/uG9fDpgN9\n"
+ "xOKPYBFInhOB86twAz9cc9eXysto0nJvlODDBj/xwUjvso9qydl1Or7PhWvf7Ek+\n"
+ "H9ur5MUjqOWe/b/xaSWsfTrJzF/ovbRnGbXLIpozIx609TZS4wYSqU5FUjkL0zTB\n"
+ "bTdb3jgFm/5SHnnThD67zbZavCxiN9wiTs3zeGlxYf8hMeaTkOYiAOR4/1bOTe2J\n"
+ "ttRA1EcY+i6H0+JOtLkqwj5ka0m3lrH2KD3E/mHs1yfERQx7VVjw9IpeAKmi5lzQ\n"
+ "v1lhIXiv75Mb0NMsCknGYPLHCyOY5aA2dhR8Wnr67gOYu3ssexLzMKczk5OTzl5c\n"
+ "PRHJRXDpJqgOYWujF99uCYhnxonO4QKBwQDUQB0s4shWTyOylq7j4rCSbHf2zHDf\n"
+ "HBYC75wyjQECNQXNk6hp5jJz2BC0XvnO7PYSRXaVauMc/S3V7V7GMsry3uugfwLy\n"
+ "XNnyRVY4voe5SNt/WAArybNsPNPEIPzgkZmeWvcpoY8ESufPfVW54BvGHt3YjPjI\n"
+ "gYmFUkpPRUWXfji91NpTlIrsP6jtBTYXGV4kVm+TawP06a6FdCjJQaI7Nm2dwUiX\n"
+ "Cmf4oFSo8mGxi0wimX+BiLJep2bYnUF2gqMCgcEA8UKESDX3jBpyz59vpSjmfpw1\n"
+ "AnlEfR6s83W92m0HfEYLulfxq9xA2zaQjy4GbaKVRfLrO2Pj3bZWs89RGXTQVGgq\n"
+ "ztCLIRsL+M1SQ883e8yx4jwFaqIM+pPpvAjOOOTdpgY33h7w20tgrbzVKeOl1ghC\n"
+ "IZ+K8C/tIGZXI5/TYppl7csIOoYRtzuRpyDE0tmwy658RfyxzEtfLxJoaLiFXOE0\n"
+ "zFFrEvT/jto4jN+cwsdnHhxrY9+bVNUNyb9ZH7bxAoHARvcIyjEo+nKLZPKsltT8\n"
+ "ZHiPw5ynQHGLin/CocQzSiGgRxPPg1jMFZ9wNl5q95ySyZkgBOUv+klMQfKTdYEW\n"
+ "Cg4uigLtYUtaM36rTV2m03RgrzslE37k1pOf2juNUShdTGztpqW1w6Gnz+AAAZ3E\n"
+ "q4E2e2jm5WMqL8FLxyVKF1TEc/Pu63MG3+aI/HZ5l0+MAmpD8+4b7I8VItmrqV6g\n"
+ "d1vDWrN9KcL48E/q/nHL6CjC0+6uiwjBWpRt9o7djFoxAoHAJzK/e1wJVGIXtVQa\n"
+ "N6Nlj7yhgD1ju1B4mTXQGuUMCkz3KtePFHU8tGExK5I2ySlZR3wobAXWx/cQLzbH\n"
+ "3nL0RkKGcgPAFyjl0Q7LBulsAllHrZJC7whVQ4E0wLBNkUDeIlNwUE6Go5qjopbD\n"
+ "q4KpNxUwaXYahNvEkzcNgWQ+XA7p8LDELX4K8tJi39ybHgbwiqdW2ags2xyD4ooD\n"
+ "HMCeKnEMuwWfd/0GaJdcCMdsGNl9D49eg2OZQTc8fkLwoA6BAoHATQdk3VZwGGn/\n"
+ "93p9vu189alkshTmir+SOo/ufH5U+j7t8cPeT7psuYAPZWS+Z6KEzvHxj54pAvcp\n"
+ "mlAngD3+AfHDn/VAtYv5HVcpZ+K2K0X4v8N5HGIubgaebs2oVNz+RAWnd8K2drDG\n"
+ "NcJV3C+zLziTCwvpGCIy3T/lHjKe+YczjGfhg2e6PgfwhTqPAjuhUZ8wScYo7l7V\n"
+ "zAhlSL0665IXJ32zX+3LyQFDbkB6pbKy5TU+rX3DmDyj3MSbc3kR\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t rawpk_private_key1 = {
- (unsigned char*)rawpk_private_key_pem1,
+ (unsigned char *)rawpk_private_key_pem1,
sizeof(rawpk_private_key_pem1) - 1
};
const char rawpk_public_key_pem2[] =
- "-----BEGIN PUBLIC KEY-----\n"
- "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0tQAiQ13zWGZMV9YxFo2\n"
- "H15yERrkr8KD7z6QheVeatc2+5X0m5/+/o95nmnt6Mlwa27U78QwkHBccOaNkSi7\n"
- "HGMopaxatEsF/S30MDmhqOi9R2VtMwDaa2zWH/s2wPHn8efn2/zG0jeXCzNsXFs4\n"
- "zNApaZmTJCHaDRUE12adwP5i6GvUb978f27Cm0gnkSWBH9OdVnMunQkm/L16NI3E\n"
- "lvcDEEJbqhX2eswHenbhw//LiR1EKRtHEjWywAq5AeHeYNH+2zjff59SGD6Bn+W2\n"
- "vPKBhSWCyFDPGRfcYeCX2LFM7+Xx0j+GLzBnkjBhEgdsdLJ7Bt8aDToUJScLxeeP\n"
- "oOmL9e0bec20debwF0G/7QMlwRgDjV3sd3u+5RxRCeOh8Xqfbs/tij7tnU93orhc\n"
- "MzGjcn5XZ6WicyimuTruNznhKhNp6vmizCpwQAroimaZGV7F/8nvHInTZfpNH/+b\n"
- "++gYbddkH+MouxOXcAEUku6vN0JzDgA4qj4Tw7dffXSDAgMBAAE=\n"
- "-----END PUBLIC KEY-----\n";
+ "-----BEGIN PUBLIC KEY-----\n"
+ "MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0tQAiQ13zWGZMV9YxFo2\n"
+ "H15yERrkr8KD7z6QheVeatc2+5X0m5/+/o95nmnt6Mlwa27U78QwkHBccOaNkSi7\n"
+ "HGMopaxatEsF/S30MDmhqOi9R2VtMwDaa2zWH/s2wPHn8efn2/zG0jeXCzNsXFs4\n"
+ "zNApaZmTJCHaDRUE12adwP5i6GvUb978f27Cm0gnkSWBH9OdVnMunQkm/L16NI3E\n"
+ "lvcDEEJbqhX2eswHenbhw//LiR1EKRtHEjWywAq5AeHeYNH+2zjff59SGD6Bn+W2\n"
+ "vPKBhSWCyFDPGRfcYeCX2LFM7+Xx0j+GLzBnkjBhEgdsdLJ7Bt8aDToUJScLxeeP\n"
+ "oOmL9e0bec20debwF0G/7QMlwRgDjV3sd3u+5RxRCeOh8Xqfbs/tij7tnU93orhc\n"
+ "MzGjcn5XZ6WicyimuTruNznhKhNp6vmizCpwQAroimaZGV7F/8nvHInTZfpNH/+b\n"
+ "++gYbddkH+MouxOXcAEUku6vN0JzDgA4qj4Tw7dffXSDAgMBAAE=\n"
+ "-----END PUBLIC KEY-----\n";
const gnutls_datum_t rawpk_public_key2 = {
- (unsigned char*)rawpk_public_key_pem2,
+ (unsigned char *)rawpk_public_key_pem2,
sizeof(rawpk_public_key_pem2) - 1
};
const char rawpk_private_key_pem2[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIG4wIBAAKCAYEA0tQAiQ13zWGZMV9YxFo2H15yERrkr8KD7z6QheVeatc2+5X0\n"
- "m5/+/o95nmnt6Mlwa27U78QwkHBccOaNkSi7HGMopaxatEsF/S30MDmhqOi9R2Vt\n"
- "MwDaa2zWH/s2wPHn8efn2/zG0jeXCzNsXFs4zNApaZmTJCHaDRUE12adwP5i6GvU\n"
- "b978f27Cm0gnkSWBH9OdVnMunQkm/L16NI3ElvcDEEJbqhX2eswHenbhw//LiR1E\n"
- "KRtHEjWywAq5AeHeYNH+2zjff59SGD6Bn+W2vPKBhSWCyFDPGRfcYeCX2LFM7+Xx\n"
- "0j+GLzBnkjBhEgdsdLJ7Bt8aDToUJScLxeePoOmL9e0bec20debwF0G/7QMlwRgD\n"
- "jV3sd3u+5RxRCeOh8Xqfbs/tij7tnU93orhcMzGjcn5XZ6WicyimuTruNznhKhNp\n"
- "6vmizCpwQAroimaZGV7F/8nvHInTZfpNH/+b++gYbddkH+MouxOXcAEUku6vN0Jz\n"
- "DgA4qj4Tw7dffXSDAgMBAAECggGAVD3oFNtv0n48I1FQ++x8Ed7AP3t6g4x7AX8D\n"
- "aq0zJAfo7XCG9CRjVL5pv1XefZT4OcVoioHfUefD2E0XpjgbRAWPOVv8Rmxv8TGK\n"
- "kDaHFSIid8PcdXPS0vgDO3Y686/1mWCr8eg4XclerlgW5XSB5r0KvyphdB+erHmI\n"
- "nLVhNbuwM+TaVvVH+Xd9hWS4grP0u43oIaIWryL4FCd2DEfVlOkQrU+GpxjtizW5\n"
- "i0KzhYjRgHFUSgSfSnRwf3IJaOoiIpOma2p7R4dVoQkVGS6bStqPcqSUGVxH2CLu\n"
- "TC7B0xZZs2xq6pLVWYXh/J79Ziw76+7qeMwFatzsUPtB6smQvR7016BThY6Cj+ui\n"
- "KgTCZGpbb30MCn9/px8P2jXagA9fnPzf31WkdbsnjrYPNe6kkP5snJtz6k3cYex2\n"
- "P8WulCS23qjCdVoUcoSDzPiaFtnPR/HcZDpTYuxKuUMoQrqsmRHeF/QRvbXkKFQC\n"
- "Kudpfna5CAIT5IaIWwXQp0NfpnNBAoHBAPcnqz2uZaVZO7LiZEMc3cDfiPTp2vhf\n"
- "VRYNyvTZIYgAox8k49waEQq6MyD5N2oWyRjWsQ0ta/BqJgMLoG42oyDntp/HGhZC\n"
- "SxLQEu4ursFsCE32I4nyt7DD5erzX+H6folRq2BelL6ISwdr1g1wJZ3cCrwGbG/P\n"
- "7MUYtSo026K9iXCqv9t7Q3TYe7yECVrxqbOu++C2df8IodehUm5wQZTsysBDfCHZ\n"
- "PT9m4Qfaryq/u4N5w8nCt/Ep3JkjqyJL4wKBwQDaX4WbwL6ipyt6k4NZ6dEe0aLT\n"
- "yKowO0rAWckr6WbA6kFBV2JWPswdV7gCqSOaae+UVc6cpw07jc39vsFNFGDL6OfC\n"
- "HvmjQ2HQ/Mf4RjNTSt1rYpiB7DTqtLCys454OHFxo0UinXUc20+timroLEJbZJ23\n"
- "upgAvico9zgCyjiwHoEVCpwZerLcLJk44mSGANiBLMo6YfyWj+PfLOeXu5rs4vhC\n"
- "K0JBPdIzXHKwv996qFpy8xBatfO/+CH2NR/D1uECgcB8mATdbWNUfa14umQs6Qpp\n"
- "Rsb2IEYA2547Jezgje03cIrLEn/D32gj7kYEI15qHt51pRVQPUuiwQA0nNHdfbGy\n"
- "ztzjoy1ldzn9W+OPKv1yCJIPKzwzOKadd8QaM2Jsuyi69O7eABAgFPkt3pDj6Vst\n"
- "P1Yx/1L+8uS7X39ErazjV4VHxOw/Kt6Qsul92VoV/Km+KUJUv+awEJv15h92CSUm\n"
- "fFChp+OV9LvJkIV0vit783gGCYZH2d98tcu9b5vACF0CgcAZM0rM5ZpaVOZcl+dh\n"
- "me0LHHAo9pBFTqJavkHL8nxsKNxs+POdNlQB0tymWfSE3lLKkHhudYy+Yafy72+J\n"
- "QJ/HCFKugTqXz6/bGUDOcvN7WjlhKhilbafRqhZ2GOiJESJuVcQlsXwRX3G7eizK\n"
- "LElgGKVmzX67HzaPsK/jCokuMeb9kaLgAdvgMrlf6ihlmnVhutR/lk065tIKMDlt\n"
- "tjWzvqGdqTZVJxg52yJVKV9V3VXKzCgH/9VoQu9QZWMMC6ECgcEAu2lYMEfbrTYS\n"
- "u2ukovL69EnxUfQ76f8/cs3gVsOWRxPN6MFe8pR7lC03orHckGdwVF0uUSbek4F7\n"
- "vmZxewPQvVWntGfyL3uhln+xyJbfd/a4YThTDzXIy++jdrKGCVPc9Z+XPWJyc5qM\n"
- "fA7FxB9uBfVyHKa3LIsuvyFtSKF38pEVMrL4kTnB++Eg536AOZbYB351dMi0qXzN\n"
- "Ljyi36ud0J5l00OZAanLPw7dklZOTYNguCDRhi6k7qpayV7ywLSB\n"
- "-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIG4wIBAAKCAYEA0tQAiQ13zWGZMV9YxFo2H15yERrkr8KD7z6QheVeatc2+5X0\n"
+ "m5/+/o95nmnt6Mlwa27U78QwkHBccOaNkSi7HGMopaxatEsF/S30MDmhqOi9R2Vt\n"
+ "MwDaa2zWH/s2wPHn8efn2/zG0jeXCzNsXFs4zNApaZmTJCHaDRUE12adwP5i6GvU\n"
+ "b978f27Cm0gnkSWBH9OdVnMunQkm/L16NI3ElvcDEEJbqhX2eswHenbhw//LiR1E\n"
+ "KRtHEjWywAq5AeHeYNH+2zjff59SGD6Bn+W2vPKBhSWCyFDPGRfcYeCX2LFM7+Xx\n"
+ "0j+GLzBnkjBhEgdsdLJ7Bt8aDToUJScLxeePoOmL9e0bec20debwF0G/7QMlwRgD\n"
+ "jV3sd3u+5RxRCeOh8Xqfbs/tij7tnU93orhcMzGjcn5XZ6WicyimuTruNznhKhNp\n"
+ "6vmizCpwQAroimaZGV7F/8nvHInTZfpNH/+b++gYbddkH+MouxOXcAEUku6vN0Jz\n"
+ "DgA4qj4Tw7dffXSDAgMBAAECggGAVD3oFNtv0n48I1FQ++x8Ed7AP3t6g4x7AX8D\n"
+ "aq0zJAfo7XCG9CRjVL5pv1XefZT4OcVoioHfUefD2E0XpjgbRAWPOVv8Rmxv8TGK\n"
+ "kDaHFSIid8PcdXPS0vgDO3Y686/1mWCr8eg4XclerlgW5XSB5r0KvyphdB+erHmI\n"
+ "nLVhNbuwM+TaVvVH+Xd9hWS4grP0u43oIaIWryL4FCd2DEfVlOkQrU+GpxjtizW5\n"
+ "i0KzhYjRgHFUSgSfSnRwf3IJaOoiIpOma2p7R4dVoQkVGS6bStqPcqSUGVxH2CLu\n"
+ "TC7B0xZZs2xq6pLVWYXh/J79Ziw76+7qeMwFatzsUPtB6smQvR7016BThY6Cj+ui\n"
+ "KgTCZGpbb30MCn9/px8P2jXagA9fnPzf31WkdbsnjrYPNe6kkP5snJtz6k3cYex2\n"
+ "P8WulCS23qjCdVoUcoSDzPiaFtnPR/HcZDpTYuxKuUMoQrqsmRHeF/QRvbXkKFQC\n"
+ "Kudpfna5CAIT5IaIWwXQp0NfpnNBAoHBAPcnqz2uZaVZO7LiZEMc3cDfiPTp2vhf\n"
+ "VRYNyvTZIYgAox8k49waEQq6MyD5N2oWyRjWsQ0ta/BqJgMLoG42oyDntp/HGhZC\n"
+ "SxLQEu4ursFsCE32I4nyt7DD5erzX+H6folRq2BelL6ISwdr1g1wJZ3cCrwGbG/P\n"
+ "7MUYtSo026K9iXCqv9t7Q3TYe7yECVrxqbOu++C2df8IodehUm5wQZTsysBDfCHZ\n"
+ "PT9m4Qfaryq/u4N5w8nCt/Ep3JkjqyJL4wKBwQDaX4WbwL6ipyt6k4NZ6dEe0aLT\n"
+ "yKowO0rAWckr6WbA6kFBV2JWPswdV7gCqSOaae+UVc6cpw07jc39vsFNFGDL6OfC\n"
+ "HvmjQ2HQ/Mf4RjNTSt1rYpiB7DTqtLCys454OHFxo0UinXUc20+timroLEJbZJ23\n"
+ "upgAvico9zgCyjiwHoEVCpwZerLcLJk44mSGANiBLMo6YfyWj+PfLOeXu5rs4vhC\n"
+ "K0JBPdIzXHKwv996qFpy8xBatfO/+CH2NR/D1uECgcB8mATdbWNUfa14umQs6Qpp\n"
+ "Rsb2IEYA2547Jezgje03cIrLEn/D32gj7kYEI15qHt51pRVQPUuiwQA0nNHdfbGy\n"
+ "ztzjoy1ldzn9W+OPKv1yCJIPKzwzOKadd8QaM2Jsuyi69O7eABAgFPkt3pDj6Vst\n"
+ "P1Yx/1L+8uS7X39ErazjV4VHxOw/Kt6Qsul92VoV/Km+KUJUv+awEJv15h92CSUm\n"
+ "fFChp+OV9LvJkIV0vit783gGCYZH2d98tcu9b5vACF0CgcAZM0rM5ZpaVOZcl+dh\n"
+ "me0LHHAo9pBFTqJavkHL8nxsKNxs+POdNlQB0tymWfSE3lLKkHhudYy+Yafy72+J\n"
+ "QJ/HCFKugTqXz6/bGUDOcvN7WjlhKhilbafRqhZ2GOiJESJuVcQlsXwRX3G7eizK\n"
+ "LElgGKVmzX67HzaPsK/jCokuMeb9kaLgAdvgMrlf6ihlmnVhutR/lk065tIKMDlt\n"
+ "tjWzvqGdqTZVJxg52yJVKV9V3VXKzCgH/9VoQu9QZWMMC6ECgcEAu2lYMEfbrTYS\n"
+ "u2ukovL69EnxUfQ76f8/cs3gVsOWRxPN6MFe8pR7lC03orHckGdwVF0uUSbek4F7\n"
+ "vmZxewPQvVWntGfyL3uhln+xyJbfd/a4YThTDzXIy++jdrKGCVPc9Z+XPWJyc5qM\n"
+ "fA7FxB9uBfVyHKa3LIsuvyFtSKF38pEVMrL4kTnB++Eg536AOZbYB351dMi0qXzN\n"
+ "Ljyi36ud0J5l00OZAanLPw7dklZOTYNguCDRhi6k7qpayV7ywLSB\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t rawpk_private_key2 = {
- (unsigned char*)rawpk_private_key_pem2,
+ (unsigned char *)rawpk_private_key_pem2,
sizeof(rawpk_private_key_pem2) - 1
};
-#endif /* GNUTLS_TESTS_CERT_COMMON_H */
+#endif /* GNUTLS_TESTS_CERT_COMMON_H */
diff --git a/tests/cert-repro-20170915.h b/tests/cert-repro-20170915.h
index 9078857a0a..66d7f87fd9 100644
--- a/tests/cert-repro-20170915.h
+++ b/tests/cert-repro-20170915.h
@@ -1,383 +1,384 @@
#ifndef GNUTLS_TESTS_CERT_REPRO_20170915_H
-#define GNUTLS_TESTS_CERT_REPRO_20170915_H
+# define GNUTLS_TESTS_CERT_REPRO_20170915_H
static char client_cert_repro_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIILITCCBiegAwIBAgIJAMHDrh3rcjmCMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\n"
- "BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\n"
- "aWRnaXRzIFB0eSBMdGQwHhcNMTcwOTEzMDkzOTE1WhcNMTcwOTE0MDkzOTE1WjBF\n"
- "MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\n"
- "ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIFBDANBgkqhkiG9w0BAQEFAAOCBPEAMIIE\n"
- "7AKCBOMAxa5Is252x+Q0JMEZoU2DTZVqTPQMFfkv9bLjFCrbtUQCjEB187oPh9HE\n"
- "vEqkuC5hVl2H+kPa7u2sYrthPNCdMXd/kVAmSE9iS7sKuV8Z9UERHerP0tp06948\n"
- "WpsuDe4iUsKzDLkQwT3x3pnzj0f7WjQkLBx7nr533JEoKpU0Kq6Zh5UHSapJdZ8j\n"
- "0y6sAZ9QDYIHvBkXM+L6gsZUOV7dqE5+71e+o+upUZoRkpwowckIjvttCKmoaUSf\n"
- "swBm8p9c/8Gwaw+TW90/NiAgjllcu+ON0cFEG/OecmtnfYpIzF14M8eW2QjOA7K5\n"
- "1PP2EIYM6sJzZ6EUnCUkLHg8tVyluGNIU+0/pcCK3PK0APahKCLQy0KINcYS8omP\n"
- "HUgiXWZLns2WrvJinkhcDqDhIDd5F3cGLdzaps5NKmgRNpZJFGC4qAOj0MFqkU+3\n"
- "Lyq81fEKcmrhsATjVptvNDp3/gFiJqNry0YCmS3QnbokugCKPeWcJZyXf9QzVlC/\n"
- "NGZGQXN0ncMUkCDEbQcsbYz079Tu4h+/PMFrIoFTqc4DnwbTNOpgnlMHdOZIhwl5\n"
- "2lSRjnp/VjyJePpj3Z17eVboVZPs2qcukdCtjUPBZ8+ycIVeDf8aHtu69duS0nCI\n"
- "D3zXb7vOtdqcQ4tHY/SmNEVK2wAXZh0e2TUM2PT3OpCce/TBf+u2Rh9t9btv75XI\n"
- "8QbY68SlZUTnFZELsE7IPDgdwIERXiIOMfmTL6XNBAkmWEsVQBfHiP55d5B4b/3p\n"
- "niQ3RhBr0X8pYh8m0HAZyFGKIU/8egHPEH6EVFQlbzmG/ubNb8JGNwfiATjbr6BW\n"
- "L/aF/4lxqL1/gOQ9dtZvK4tys5dIXcSN//CRE/rhUCCl+kg7DuXd9h/xg1QcnnkI\n"
- "GymUb67lNFXZx/all9H08ApB9ldufcwaFvWhc37sGWTnaLpEnxNNqlPAr9G9BHZA\n"
- "tUezrGSx7+YRJKH61xevuomTeMX+T1HlO/YSKoX2R3Qk9ClWQzrT73cCYhEai5bD\n"
- "FO9MX00hRUfXBKl2u8GEzMzwN/1oSWuXMYQbW5NP+UAchBi82ihR2zg2S+Wzl4NC\n"
- "Wr7vjwNXaj0e1UKwCxk2ypGx7dX/URe9skttZgr9va8NrW6aNokiTgG6BKq4sfjv\n"
- "bqZ3+uAiPg6QnnjLEGizfVGno4+ufky3y5yc3MIgLvrxo8IhHp7iXqf5ebPBdyYo\n"
- "BuAhERp7CDBcIDoOFW2xyljwTwpadMCmC2rmJmuwNvxKT1r9EZ/jiqwiVw8zuhYc\n"
- "P0LTM5B+OlDrOFVBW9zRF4lSKX30/cR7XaPlGS6WbYTsuuJeUnWsS42jrQiOQH88\n"
- "x4zrLcqwkchLl5SBw6ywS0RAszBI8OkHzFmbBIr6Q0vgmfy+ugd6ssv5Ec8Imfg1\n"
- "UQdBWclzgWppb8JFBTjY8keqt9bgVfZfV+cOjuMTqOdHP/eu4n2h/6fECwd4sk12\n"
- "fyesKgVbtMkMXOkTUCeGIstsrvRX7BAupRISXbl+gAK/Ew0kB4YioXI51FNVO7eI\n"
- "kEkZIdWLfr9J2iSxiOuOlghYc4v+CJOFW6/DIBhK96Ih0ygteztuJ4D+GBXXx7h4\n"
- "mHygdAk6zPQtZ+nbz9qPOl0rS3F6XOmR7GgcXX6Zxfpj4Afd/7XFR3IntqlHbqNv\n"
- "SkkZcIpiiwkCAwEAAaNQME4wHQYDVR0OBBYEFPfXnI4wJZG2AzoMj5AbZHoiTHp9\n"
- "MB8GA1UdIwQYMBaAFPfXnI4wJZG2AzoMj5AbZHoiTHp9MAwGA1UdEwQFMAMBAf8w\n"
- "DQYJKoZIhvcNAQELBQADggTjACd/BFFw29X5lkQA+o+NqQlkoKhFMjReZgkt9ou8\n"
- "zSEhAbbrVMdljUjRAbs0FevIV23MJRv4st//JWl/H/OcUHYfHwTkYD0SZNJ2BDvM\n"
- "9K4ItGvwBlYilPxcwQmFCErjJuI164bXDHWEcc69XXK9cfKhV4g8JxEQptE5mHPi\n"
- "RcFCvN+Z2h80+c+M6xUGHRUIUHLdih9pOimhwT8msKcLBT3IcFcaBj8KO2Lr6aLK\n"
- "/rADUMObkfBF1rMMOUo07GX/bJjt7V4Jj7v7G9OhIh+//a9LVE8sYWzoqAf/hBDE\n"
- "vrX/5JRToUIQl6bxaVyDnCGdrUh9qfiRC3sNVKnWksGdPked2V2hUonr2UZZy4E4\n"
- "feDcICkeZ9cUvIBmi+oPfWJnQ7Hb3HBToZG4lvsO1EIRJDNv3vXz9HcRFNNkvLE4\n"
- "Xidvs/v1e2nTemGFzDyV1hUIevXza4eydgFDrjhWdHFj6HMNaJ0WXINBQ4Vl9AW0\n"
- "X3BuPZC9TbLQlUKfJz9GdRjuj9eQtA0pEeToB6ySYePeyQmqTEdO9ufYoa1L0Sdt\n"
- "ueOGqQW9BD55sb2lbh53TsyHPgklYKYJ/fJd6Df1ox4DIeFZ/sCTp7GMtgPizcA0\n"
- "OYOtamtFL3upLQsr8hu1NWmdX3/qXYUycpt0W0g4F3bKILk6O4gqNYA7AOEWPY7B\n"
- "hRD84fU3jHjDfAc2TbL/Zc/54F33SM/NA1WmkYKThlTRy2VQ7yhZKkiluapQ94BL\n"
- "umMfyRPSUSNnWJzPLKoZ7701pR2Pc0AWY15zcCuUsNtB1vAnmAeOggBvzwc4xshc\n"
- "g1E/VSYXID0Fmn0IF4ZLJdOK8pA9ae5dGj2kmk8Spw/wSSHe+dGDL708L2/q19Za\n"
- "rtDOAXLTzjUB/tinQuEk27LhrVKV7TY5mS/HR22glH8PVIZ2X86+9Ad/d2CqWJSV\n"
- "ukuuXfzsUuO2ElDz74dH9U7jOYsulo0/0OKR9pjVmmDtAji+Hc1TlSjEOKyuCfqI\n"
- "7A+3SorkrEFqWxmOb9Kv2Z+hE/+RF80k3CvNfD8taxIkGUyj8dSlytMitnzS/PA4\n"
- "6EwE2Vxsm39CvcWgqSTAaYzC5pLZy3W5ATna0gU6em8bMpliNo4HrIKB6c27/ScY\n"
- "OTYc0DK/cpREOFxz3C20agiRVCn7Vt+vdnBqh4yj/l5hhrlZXrn0iDyr67g5E8iL\n"
- "enXeGhuOzIJw70OfB/WdVXkmopgBm9J0yVgL7UR8uN0Y5SQCy/4L26YOdxk/fmbE\n"
- "bGfsS2AvFZZ4dP0hYmHQO2F0UfQ1iYe9R/cF6TqhtRLuVAXz9wbwNf+pCjJuhg91\n"
- "WY9Lpo5onkoUal4e325xAASnsWAMoFnpS+D/VOPmOuWmnjAj8001ueXFCPKb8VK0\n"
- "G1dxTZrZs0KPi4xrLSF/5L6n5H7VM6yRnX1BUun96lBzV45P3rAhCy+7r6IHMAqJ\n"
- "VuM0+G/s9ZHRnmm3RwM4ufRGF+uSVzcBaVB0iPTXKWPDizBTgowa2CqVGmFalEIm\n"
- "XPWqyhXwgctDCre4P0QYKSqoSaZ0aQaoPGZ10K3m12Pq69gmi6aRKhse7MkfQtho\n"
- "+3Gix3f5m0hgDjp/v3UApfP+bAObOODGG+MhJJOBJlmZE/B1jwyJpV/YjHi2VRsm\n"
- "GkcJOt7A+6vGf1zPNNoB+/fAd6B+\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIILITCCBiegAwIBAgIJAMHDrh3rcjmCMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\n"
+ "BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\n"
+ "aWRnaXRzIFB0eSBMdGQwHhcNMTcwOTEzMDkzOTE1WhcNMTcwOTE0MDkzOTE1WjBF\n"
+ "MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\n"
+ "ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIFBDANBgkqhkiG9w0BAQEFAAOCBPEAMIIE\n"
+ "7AKCBOMAxa5Is252x+Q0JMEZoU2DTZVqTPQMFfkv9bLjFCrbtUQCjEB187oPh9HE\n"
+ "vEqkuC5hVl2H+kPa7u2sYrthPNCdMXd/kVAmSE9iS7sKuV8Z9UERHerP0tp06948\n"
+ "WpsuDe4iUsKzDLkQwT3x3pnzj0f7WjQkLBx7nr533JEoKpU0Kq6Zh5UHSapJdZ8j\n"
+ "0y6sAZ9QDYIHvBkXM+L6gsZUOV7dqE5+71e+o+upUZoRkpwowckIjvttCKmoaUSf\n"
+ "swBm8p9c/8Gwaw+TW90/NiAgjllcu+ON0cFEG/OecmtnfYpIzF14M8eW2QjOA7K5\n"
+ "1PP2EIYM6sJzZ6EUnCUkLHg8tVyluGNIU+0/pcCK3PK0APahKCLQy0KINcYS8omP\n"
+ "HUgiXWZLns2WrvJinkhcDqDhIDd5F3cGLdzaps5NKmgRNpZJFGC4qAOj0MFqkU+3\n"
+ "Lyq81fEKcmrhsATjVptvNDp3/gFiJqNry0YCmS3QnbokugCKPeWcJZyXf9QzVlC/\n"
+ "NGZGQXN0ncMUkCDEbQcsbYz079Tu4h+/PMFrIoFTqc4DnwbTNOpgnlMHdOZIhwl5\n"
+ "2lSRjnp/VjyJePpj3Z17eVboVZPs2qcukdCtjUPBZ8+ycIVeDf8aHtu69duS0nCI\n"
+ "D3zXb7vOtdqcQ4tHY/SmNEVK2wAXZh0e2TUM2PT3OpCce/TBf+u2Rh9t9btv75XI\n"
+ "8QbY68SlZUTnFZELsE7IPDgdwIERXiIOMfmTL6XNBAkmWEsVQBfHiP55d5B4b/3p\n"
+ "niQ3RhBr0X8pYh8m0HAZyFGKIU/8egHPEH6EVFQlbzmG/ubNb8JGNwfiATjbr6BW\n"
+ "L/aF/4lxqL1/gOQ9dtZvK4tys5dIXcSN//CRE/rhUCCl+kg7DuXd9h/xg1QcnnkI\n"
+ "GymUb67lNFXZx/all9H08ApB9ldufcwaFvWhc37sGWTnaLpEnxNNqlPAr9G9BHZA\n"
+ "tUezrGSx7+YRJKH61xevuomTeMX+T1HlO/YSKoX2R3Qk9ClWQzrT73cCYhEai5bD\n"
+ "FO9MX00hRUfXBKl2u8GEzMzwN/1oSWuXMYQbW5NP+UAchBi82ihR2zg2S+Wzl4NC\n"
+ "Wr7vjwNXaj0e1UKwCxk2ypGx7dX/URe9skttZgr9va8NrW6aNokiTgG6BKq4sfjv\n"
+ "bqZ3+uAiPg6QnnjLEGizfVGno4+ufky3y5yc3MIgLvrxo8IhHp7iXqf5ebPBdyYo\n"
+ "BuAhERp7CDBcIDoOFW2xyljwTwpadMCmC2rmJmuwNvxKT1r9EZ/jiqwiVw8zuhYc\n"
+ "P0LTM5B+OlDrOFVBW9zRF4lSKX30/cR7XaPlGS6WbYTsuuJeUnWsS42jrQiOQH88\n"
+ "x4zrLcqwkchLl5SBw6ywS0RAszBI8OkHzFmbBIr6Q0vgmfy+ugd6ssv5Ec8Imfg1\n"
+ "UQdBWclzgWppb8JFBTjY8keqt9bgVfZfV+cOjuMTqOdHP/eu4n2h/6fECwd4sk12\n"
+ "fyesKgVbtMkMXOkTUCeGIstsrvRX7BAupRISXbl+gAK/Ew0kB4YioXI51FNVO7eI\n"
+ "kEkZIdWLfr9J2iSxiOuOlghYc4v+CJOFW6/DIBhK96Ih0ygteztuJ4D+GBXXx7h4\n"
+ "mHygdAk6zPQtZ+nbz9qPOl0rS3F6XOmR7GgcXX6Zxfpj4Afd/7XFR3IntqlHbqNv\n"
+ "SkkZcIpiiwkCAwEAAaNQME4wHQYDVR0OBBYEFPfXnI4wJZG2AzoMj5AbZHoiTHp9\n"
+ "MB8GA1UdIwQYMBaAFPfXnI4wJZG2AzoMj5AbZHoiTHp9MAwGA1UdEwQFMAMBAf8w\n"
+ "DQYJKoZIhvcNAQELBQADggTjACd/BFFw29X5lkQA+o+NqQlkoKhFMjReZgkt9ou8\n"
+ "zSEhAbbrVMdljUjRAbs0FevIV23MJRv4st//JWl/H/OcUHYfHwTkYD0SZNJ2BDvM\n"
+ "9K4ItGvwBlYilPxcwQmFCErjJuI164bXDHWEcc69XXK9cfKhV4g8JxEQptE5mHPi\n"
+ "RcFCvN+Z2h80+c+M6xUGHRUIUHLdih9pOimhwT8msKcLBT3IcFcaBj8KO2Lr6aLK\n"
+ "/rADUMObkfBF1rMMOUo07GX/bJjt7V4Jj7v7G9OhIh+//a9LVE8sYWzoqAf/hBDE\n"
+ "vrX/5JRToUIQl6bxaVyDnCGdrUh9qfiRC3sNVKnWksGdPked2V2hUonr2UZZy4E4\n"
+ "feDcICkeZ9cUvIBmi+oPfWJnQ7Hb3HBToZG4lvsO1EIRJDNv3vXz9HcRFNNkvLE4\n"
+ "Xidvs/v1e2nTemGFzDyV1hUIevXza4eydgFDrjhWdHFj6HMNaJ0WXINBQ4Vl9AW0\n"
+ "X3BuPZC9TbLQlUKfJz9GdRjuj9eQtA0pEeToB6ySYePeyQmqTEdO9ufYoa1L0Sdt\n"
+ "ueOGqQW9BD55sb2lbh53TsyHPgklYKYJ/fJd6Df1ox4DIeFZ/sCTp7GMtgPizcA0\n"
+ "OYOtamtFL3upLQsr8hu1NWmdX3/qXYUycpt0W0g4F3bKILk6O4gqNYA7AOEWPY7B\n"
+ "hRD84fU3jHjDfAc2TbL/Zc/54F33SM/NA1WmkYKThlTRy2VQ7yhZKkiluapQ94BL\n"
+ "umMfyRPSUSNnWJzPLKoZ7701pR2Pc0AWY15zcCuUsNtB1vAnmAeOggBvzwc4xshc\n"
+ "g1E/VSYXID0Fmn0IF4ZLJdOK8pA9ae5dGj2kmk8Spw/wSSHe+dGDL708L2/q19Za\n"
+ "rtDOAXLTzjUB/tinQuEk27LhrVKV7TY5mS/HR22glH8PVIZ2X86+9Ad/d2CqWJSV\n"
+ "ukuuXfzsUuO2ElDz74dH9U7jOYsulo0/0OKR9pjVmmDtAji+Hc1TlSjEOKyuCfqI\n"
+ "7A+3SorkrEFqWxmOb9Kv2Z+hE/+RF80k3CvNfD8taxIkGUyj8dSlytMitnzS/PA4\n"
+ "6EwE2Vxsm39CvcWgqSTAaYzC5pLZy3W5ATna0gU6em8bMpliNo4HrIKB6c27/ScY\n"
+ "OTYc0DK/cpREOFxz3C20agiRVCn7Vt+vdnBqh4yj/l5hhrlZXrn0iDyr67g5E8iL\n"
+ "enXeGhuOzIJw70OfB/WdVXkmopgBm9J0yVgL7UR8uN0Y5SQCy/4L26YOdxk/fmbE\n"
+ "bGfsS2AvFZZ4dP0hYmHQO2F0UfQ1iYe9R/cF6TqhtRLuVAXz9wbwNf+pCjJuhg91\n"
+ "WY9Lpo5onkoUal4e325xAASnsWAMoFnpS+D/VOPmOuWmnjAj8001ueXFCPKb8VK0\n"
+ "G1dxTZrZs0KPi4xrLSF/5L6n5H7VM6yRnX1BUun96lBzV45P3rAhCy+7r6IHMAqJ\n"
+ "VuM0+G/s9ZHRnmm3RwM4ufRGF+uSVzcBaVB0iPTXKWPDizBTgowa2CqVGmFalEIm\n"
+ "XPWqyhXwgctDCre4P0QYKSqoSaZ0aQaoPGZ10K3m12Pq69gmi6aRKhse7MkfQtho\n"
+ "+3Gix3f5m0hgDjp/v3UApfP+bAObOODGG+MhJJOBJlmZE/B1jwyJpV/YjHi2VRsm\n"
+ "GkcJOt7A+6vGf1zPNNoB+/fAd6B+\n" "-----END CERTIFICATE-----\n";
static char client_key_repro_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MIIWOwIBADANBgkqhkiG9w0BAQEFAASCFiUwghYhAgEAAoIE4wDFrkizbnbH5DQk\n"
- "wRmhTYNNlWpM9AwV+S/1suMUKtu1RAKMQHXzug+H0cS8SqS4LmFWXYf6Q9ru7axi\n"
- "u2E80J0xd3+RUCZIT2JLuwq5Xxn1QREd6s/S2nTr3jxamy4N7iJSwrMMuRDBPfHe\n"
- "mfOPR/taNCQsHHuevnfckSgqlTQqrpmHlQdJqkl1nyPTLqwBn1ANgge8GRcz4vqC\n"
- "xlQ5Xt2oTn7vV76j66lRmhGSnCjByQiO+20IqahpRJ+zAGbyn1z/wbBrD5Nb3T82\n"
- "ICCOWVy7443RwUQb855ya2d9ikjMXXgzx5bZCM4DsrnU8/YQhgzqwnNnoRScJSQs\n"
- "eDy1XKW4Y0hT7T+lwIrc8rQA9qEoItDLQog1xhLyiY8dSCJdZkuezZau8mKeSFwO\n"
- "oOEgN3kXdwYt3Nqmzk0qaBE2lkkUYLioA6PQwWqRT7cvKrzV8QpyauGwBONWm280\n"
- "Onf+AWImo2vLRgKZLdCduiS6AIo95ZwlnJd/1DNWUL80ZkZBc3SdwxSQIMRtByxt\n"
- "jPTv1O7iH788wWsigVOpzgOfBtM06mCeUwd05kiHCXnaVJGOen9WPIl4+mPdnXt5\n"
- "VuhVk+zapy6R0K2NQ8Fnz7JwhV4N/xoe27r125LScIgPfNdvu8612pxDi0dj9KY0\n"
- "RUrbABdmHR7ZNQzY9Pc6kJx79MF/67ZGH231u2/vlcjxBtjrxKVlROcVkQuwTsg8\n"
- "OB3AgRFeIg4x+ZMvpc0ECSZYSxVAF8eI/nl3kHhv/emeJDdGEGvRfyliHybQcBnI\n"
- "UYohT/x6Ac8QfoRUVCVvOYb+5s1vwkY3B+IBONuvoFYv9oX/iXGovX+A5D121m8r\n"
- "i3Kzl0hdxI3/8JET+uFQIKX6SDsO5d32H/GDVByeeQgbKZRvruU0VdnH9qWX0fTw\n"
- "CkH2V259zBoW9aFzfuwZZOdoukSfE02qU8Cv0b0EdkC1R7OsZLHv5hEkofrXF6+6\n"
- "iZN4xf5PUeU79hIqhfZHdCT0KVZDOtPvdwJiERqLlsMU70xfTSFFR9cEqXa7wYTM\n"
- "zPA3/WhJa5cxhBtbk0/5QByEGLzaKFHbODZL5bOXg0Javu+PA1dqPR7VQrALGTbK\n"
- "kbHt1f9RF72yS21mCv29rw2tbpo2iSJOAboEqrix+O9upnf64CI+DpCeeMsQaLN9\n"
- "Uaejj65+TLfLnJzcwiAu+vGjwiEenuJep/l5s8F3JigG4CERGnsIMFwgOg4VbbHK\n"
- "WPBPClp0wKYLauYma7A2/EpPWv0Rn+OKrCJXDzO6Fhw/QtMzkH46UOs4VUFb3NEX\n"
- "iVIpffT9xHtdo+UZLpZthOy64l5SdaxLjaOtCI5AfzzHjOstyrCRyEuXlIHDrLBL\n"
- "RECzMEjw6QfMWZsEivpDS+CZ/L66B3qyy/kRzwiZ+DVRB0FZyXOBamlvwkUFONjy\n"
- "R6q31uBV9l9X5w6O4xOo50c/967ifaH/p8QLB3iyTXZ/J6wqBVu0yQxc6RNQJ4Yi\n"
- "y2yu9FfsEC6lEhJduX6AAr8TDSQHhiKhcjnUU1U7t4iQSRkh1Yt+v0naJLGI646W\n"
- "CFhzi/4Ik4Vbr8MgGEr3oiHTKC17O24ngP4YFdfHuHiYfKB0CTrM9C1n6dvP2o86\n"
- "XStLcXpc6ZHsaBxdfpnF+mPgB93/tcVHcie2qUduo29KSRlwimKLCQIDAQABAoIE\n"
- "4itvYAoM+4xwWAS7aSZIIdGqQvElroIlfqQ96idEQ4JQrz6h60jiWQc+0DuPKyJN\n"
- "DpYrdvVGc5SMJJSNF5CFRgTYfO8w7Th2OOLq9jBE9S8uXNR2A7QQzCAHdLtz3Wqy\n"
- "KFiG71CcWVIcikifCyUwa8omKsyGdaMrtqqAOpMgtZWrR5DC7hcBk6KElRqR5rl0\n"
- "h+Jv78MkwDRmayTQ7zCr54hTtxBf90ONRGbps3LDXTE3Ouov1IVSwe5fZbevHu+w\n"
- "lH6d0GW1xmso8fqylHSyre2a0k6EaLK7lNUPRG4RNG2zG/ZEpKCLjrjBTJO+BxMa\n"
- "YTwz/aeHfT/R6WDcCnrPIJqjNgE64AFLjTd/HI4Zos9u1vHSbJtkKkWgdBG7B9H9\n"
- "6B+8jJ9kIscknxWXw9+QUMsXHAR3wpNkQRBQTXfxDZ2souZH5na4CPJk0ZtLiLJ5\n"
- "hBIf6fcDG/CrtoODVVo6c5aJ0eWYPHnr1yrQ+8Di3X08NlMNVTyBI8aTd2/MCSPY\n"
- "eocvlhUVHhPWv6xSjH8mClclIp/239N1Fyz4V1NZ7I5z8UbYd4r4DnedXWjbrB/i\n"
- "SphoNMygN9E6CSdgMSyclC53DYR8laW0fYqR2GNg6omow9SD81CSLnCOyVad17h1\n"
- "S7YpkqxErisIVnylvQzhuEJ3o4+WWHxTVv9HRxr1bI7u+93sify0cqPyBXTwTDmB\n"
- "u9XEjgHvHOJgbR7ONbtWoLpOQVA5xl1x0NpSKFq+JK0wjGdNguMCm3QAFpTo4DxE\n"
- "32voxO8KaTzjZMbfI7quGIu2WgkFw43D73XA7iiUDg/AYC03TjF2jM7KLCXdxROg\n"
- "35gRFl1AFRfTV39VwxN/pMGNx5mVgxsQDtwPmrbv+rMlTOgn9gBAXw+9P5ClV6bl\n"
- "I6BdmNVx2RLf1EnTBYeq8FqEcSX+AkG5+TdP5Oaq/pNdP5s0UzoxI2NyzqZF24kH\n"
- "F8ixnTQma8Q0s6TapR0OqLaNCj4EN/jnb4FbKS8h9oGmJTUy6J8lxraChQkUhA5t\n"
- "yBOM++NmiaUJQc88uZMAI7+6kBDEUPjZlhJTO3iaWJVZm7i0IErySHQ+Jj12sPuo\n"
- "nFtSh3GTjWDGZANufiTy0KJDopTYZp3m+iv3/5KhkbLT/gdM+SoP4mGRVC7ZYbqd\n"
- "ibszOv0lbN6zLcQjd7MEMMk4U5N3hDzo+Jfg8zbC/Q3A0GhgDDVhmywL7uyMCj+D\n"
- "+JW0T+bqsxbCUHJARSgZMR1tE61GJWJ8M8Nj+7WLeYAnzo8PrrDS1rHTsav6YBUh\n"
- "3sjg12UG5nAhMUC+jiL75OOTpzqkzSvcB7nGhLo+0DERtkKuNeUOnfKnEA4W/p5b\n"
- "QtEdTlTPMPiaFWLaQ6iw5i+rMJgNJp5oUxe5NILf4aMI3OgjX3yZwqo/vo66EqZG\n"
- "9qo6isHr4fj8jy9De5XnECeJyEQMl6Yv4KjuX8t2aGJnAWEUMCEtVJw3Zi+0O7wE\n"
- "OPoRBp8noSfPsNNww1nsK85IoaYdcS0fmisom36TOo3pKTZc6ZcpQ4sPUrMJ9aW1\n"
- "/UC7lptQcTKgH4FORICXNV/xojIPCFQD3GTZofCFlvebGanv7pzgGp1N6fzuO2eI\n"
- "b5bjvy4BNRiV106ltidEZXG2+o6zVNsdNI5zvNNDceFx8mf7EJaVaWOrpp9LEFLS\n"
- "ESUBAoICcgDrL2cZ1Om4iMgIAS00cYO9nchWx5s/MdDF7vZgBACjNmEBZoqMpNZb\n"
- "NYjbGcIfj1WnWrp7jMoyyWbqoAaQAMyUWTvnD4ftsOAASVbWUpv1FdiqTRlBZVva\n"
- "Gqy8rSyZa2H8Pq97mWA9w1zlZOrJMtybpk28iyjRy5TZSV58OM5qO6KlhCy+HHlP\n"
- "UCOQZ+AFLOB1BPI4D64uKp9kzadN1g4EQMvF8WnAupU0k20h8CDIUdctxnny62X0\n"
- "J5aPhsq04ci1TU+n6WAM/yStTcUAd+JZua4kXymlpDr2zSsqtgz0Axcbe0FVYJG3\n"
- "uvDco/fgyAEa9M4gQt3oatQ0LeqqzLM1761JbnGQikExQM8KoCrfGQ6MUzYyL7KU\n"
- "VXzuXNvvZHyT5NzKrxaGTcDlY0vvqrxei17kSjfBdss7eH+Tqytzg4SyQab0NvnN\n"
- "W5+Rw0opol4El+LRFARERXp+HerFaU3Er8pZqlpnDA/XSlEy5jXJcwCMWABTuuvw\n"
- "5nuTw9l1SEpnYm7x/x+P73gCUdOMeGX06w7k2Y3JnUvifJUrh9axMjCIXAMLJM7a\n"
- "1EF7reOoJtVN/7slxh1eTAx3xFAZ+iDte5yEqNK375SlVWMm2BnbvG3H50fCx9Lz\n"
- "KZ8cOKYKNZ5Q7iImNQ06jjoQzHAI4oJdvjutvm0TZSjDFUBHgcFTgVdZZIXweJSi\n"
- "63QRDQdjyoaB3jowDRwP/AWI2o2QzapmG8zEB7gDafbam5IROf0gcj+/rUo9Dlor\n"
- "QMI07d0qpHhL+VAcn3b8MI69rv4moB8Kf9RqdRyVJ3hua7pQ24B72KjC93noUrW0\n"
- "lILbi65C4AufAoICcgDXLSTE9lkyrSr1Lamb3ag0SWbernBtkkTJPktloD6drQg7\n"
- "lsXAFaV62SazBmg2ZtayB9D9HUU276F0sWQbxBD9hO/WGnVOMT7rgu5WMuUKid+H\n"
- "oWj5oT+KMPccoPjrsBZHlXvpgtb8M5dp+l1HyRR1YN4J6y6oEhRDoWAApDgA1B29\n"
- "nuICrMlMFE0TkNFz7YsiMMkDYAVGbjjPhCJu4eD698Ktopl1BUAKJwfI+6mxDDSu\n"
- "+F6z2/0alJYo5Qb6+YsUSOpjCyRwQbahO/3drb4Gv1B5DmiHDhSZ5UwzUQbHdBAE\n"
- "9PeColcWJtW5msRuxwZkbE4QGuWzQyBGgmy8bF0hpcaE0nbn0RQEqHHngcrTuu1l\n"
- "zte9k8z6BLwYnVFcJyfTjGWqEr0Z5M8gpVNY0OHxuqHTpXMwFigzwEqH5+EHtGGZ\n"
- "NN/daeUTyJgU+OFnEtoHfDCRoGrNbW2LgifJeOxvGvczVcF111jfuSehoVvJG1kl\n"
- "1iQXwj22HHaDvJFQRDgEMRXnz98UikQwLolfSJF4qKENPdhWq3jmVCjdFLPuvxq4\n"
- "q0fGLa19XWPfLZ/Fw0Oyy54Fq8Lm67EkeLouAB3RbSg9fwBNJw0p5XTiHykR5pBa\n"
- "b7mkch/+GPrhuA/tsO1U1bFn1ykGswSTiUzdtBbYRXuczX6SoIuJgCqwI2RIZ9cS\n"
- "k4bwnAHEcLHlZ2pzaGNRfEjKUnNgXsUo6txi57UXwaugvQ8eQiDQgYXKlj6jNden\n"
- "2RwXhBHPFF+FRh0PGcGKOpqjptb3r/EUl2C7RDsXLClhJUpDDWb/0nnn175ODSeM\n"
- "DKcHf6d+CBh28n1mumhXAoICcTAiOoKx7cfDztS8kOjr1p+nPEpufdqYMndgKfKK\n"
- "vyqoRYBI4VBZqDlwonrdMbrN1iTzT7lbnkJ4r+STLeSpFTXDcZwftJ00FxRX7jrd\n"
- "G2g0uWxZbTLSMNNZpELVWoxnyt0aY0XzpRve8RNN7TOSgk4k4kIVZRxTAzrZZkoc\n"
- "QjrBy87+Vz3ti/Jsn2q9p77HaYTppz1MEEUImijCYlxu092Q+WOgvhkg1sq05aAN\n"
- "ilgVT+nhdjH+dZZbx9fGKZSNpUtd8FCYVf0y9um1Qf2Pi7b7ZqWxCFALZbn/Ubdj\n"
- "HRGP1FnehweXRRuKWiN+N4w8wuUmd01pAgvAWX/4ac/dJ0yBqkCeJwYDFcaj0fwF\n"
- "veB9O1oC6dOpqW3sdS4/uQ+szEZkj7+3x+9i2HjaMr9xfS4Ibjpg6jphOsUIK2wo\n"
- "mzMAFtd40lenLMcX2ne1tWcCASYFg/lwlFL4uVI4g0U2ASGhLNPfJrNyZ4eTgTze\n"
- "muGI9PLETATW+9UJBv++FLKJQhkYr0Y+BdKqmzA2WQql1ZAjz5+M2xUJaW+IOet3\n"
- "2LvZXs95rXHJbcChsmlCtJZEpGFbVo0rl/UlsWONvSsj4ztXkjggaUgV86FG8Y0Q\n"
- "q3IqhXllX22BAi6cNSFMgscSJD3CDyEsuHFkjIPFo6Rd33qaJZKwp5hRmt8aaVZ5\n"
- "Ov0BOsRj63nE4/7YG6Alv35wA8lulxAgjr7CwMs6l8CsJxTQ2b7BKashM9GYB3QZ\n"
- "HzJVz7BGIiyO1GuHzHeSuzIwCSLbesbw6CRDN+OgfgmfudqnQO0s3NW2B1LqH27P\n"
- "DePK+vc0OTIQQ3oa7xFJ7DdprVcCggJyAM8itfKk8tjFukSq4Esa5YDv6AcVBUV1\n"
- "OKJBRXNe/ufqWbKDQXnXXKUVxRsxX8B+3s4imBwQwUBRDau32Baid3iVMAt7DNFo\n"
- "tpkgQS7Zb4LlljiKOPOVNgVhfYAhtX2s1MW0MMRpH2tIfsmWKZWhDACybww9SXyh\n"
- "asBv6Gq1qvOhPb/74rWQf3atVEUxc2+VjAotzFNja7CRCj85g6wZ5Omy98UOcYsk\n"
- "srETQXtIR+IXTd/hV8jsTIn531MepcmTzz6HspoFb95gY95yUb/EMNlt8ZmXNShN\n"
- "dadwBBqiNVRrdcBP0LQAcrTwTW2OfunkzVJ+r+bw/Y3DYJ5/jw0Tg9OQMbpKoAwo\n"
- "SIzzWjLxzr5jg4QtyaDFVtyXEjrftiJvzvbmgDdoMoFqsblLbSBidB6u+nkzG99+\n"
- "dNTcluKdZRJ1oj5Jl/ccqViSEVSfANyoWRo7gsWtFyMJ5BoYARUBQxjxbGYOd11p\n"
- "IDS9mFkPa7v8h6TUr4nvglh8rdnC/F+4S/Q9DElK4gRz1ZBMPBFtWhw8uEx27HsC\n"
- "NjADdBLeixeY/7AlscIk1o2ICUweL1/AyLqlKEltPwHsgWoKja8ajZm86q/IQhID\n"
- "NbjPGeVS+cYxnWRxiNO0yPdiNKB0/2BgoRa5Xz4G8YdxbUZZNZV2d0daG9SmPOIJ\n"
- "ikmjB3TnnPHWhENtoMieZVUk5xteoirWokUezzN0i3yJvmHVNLJBOyLTXNQvKw6F\n"
- "ufD9vj12xHV4r1D0vwYkLMCbbBhvlimjMZxPLe27/dQRmpGn54Zd+EQmTu8lZoeF\n"
- "r1E03AVCuf+IyjkXNPMS/7ljManPZMgvSaECggJxdDsg+VIkO4id44ATLjZ006oB\n"
- "C2S+xktCmj1/GUXLwn4XkaWJU6C10rADD139hGyoBdWFZeHq2MCNJ2agKYqrPa6O\n"
- "qt+GkIDbbQ1AtUqW4xEL3koMhe7g4CpqI0n07orAoqQQGvmrTqhNCOz3ftMQKtkM\n"
- "qoiLwbdEU0X0s41vkCDxF52448ZMYQ5327kAa5mMG1lYrS7kQ9tLJ45z7RSw7Pan\n"
- "tTi18cLE42kOe/wdaK/nakjNoIUcJC8VqYJ75IOnkxmMrP7wWpigHojLjjG2rCiU\n"
- "qYwS+E5f+3WhESvu72DXjCClI/QQ5iQ9+BDtXzfzxVxpNicaAZtAVns/JPMzkVEH\n"
- "A4efNXo8CwOMCyqhnKxKuprPAekDwjYyr6fI2iqcfb0TpnuAp9fOkjgkVZIuLAs7\n"
- "gsyms9eniaFCGNLAwTkfEjxBVGP/5kSaka9w0Vj6g+mfeqEw2frD1LfEU5l2/F0t\n"
- "iFYmtmgxpAnlWOF+Y6dlKqFwZbFiqzSZNMwzn29Lhx7hONJqzMzGhjk7heYwB7A8\n"
- "8bloepcbvWcZJ/2dhmfsgk8CXVW22C0jB/nU2NpAcTki3TVAZ40cbt1fTdgS4tRJ\n"
- "zR9OgLsjfuTo0LbEPbPDldytP1Xcdw+0hdxdYUv+G2UsdNKAcx+c+9VisogwQ5Ms\n"
- "dUuE9B5EJO5cd8hz2w6SJ7Fe0uQHnXM0I+EtycCLcTjyO/ZMkQMZh7Yj37oOB+tJ\n"
- "D2uAHdq0IHmBrEQWHOBuhwNNLtu90yfzT8hIPPmoY7ho+qIu+QhD65FLVIu1bU+3\n"
- "nfEvcF4wdqMneAh+KlLyZbGSZdhZpD1YjP8cNvcO6w==\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MIIWOwIBADANBgkqhkiG9w0BAQEFAASCFiUwghYhAgEAAoIE4wDFrkizbnbH5DQk\n"
+ "wRmhTYNNlWpM9AwV+S/1suMUKtu1RAKMQHXzug+H0cS8SqS4LmFWXYf6Q9ru7axi\n"
+ "u2E80J0xd3+RUCZIT2JLuwq5Xxn1QREd6s/S2nTr3jxamy4N7iJSwrMMuRDBPfHe\n"
+ "mfOPR/taNCQsHHuevnfckSgqlTQqrpmHlQdJqkl1nyPTLqwBn1ANgge8GRcz4vqC\n"
+ "xlQ5Xt2oTn7vV76j66lRmhGSnCjByQiO+20IqahpRJ+zAGbyn1z/wbBrD5Nb3T82\n"
+ "ICCOWVy7443RwUQb855ya2d9ikjMXXgzx5bZCM4DsrnU8/YQhgzqwnNnoRScJSQs\n"
+ "eDy1XKW4Y0hT7T+lwIrc8rQA9qEoItDLQog1xhLyiY8dSCJdZkuezZau8mKeSFwO\n"
+ "oOEgN3kXdwYt3Nqmzk0qaBE2lkkUYLioA6PQwWqRT7cvKrzV8QpyauGwBONWm280\n"
+ "Onf+AWImo2vLRgKZLdCduiS6AIo95ZwlnJd/1DNWUL80ZkZBc3SdwxSQIMRtByxt\n"
+ "jPTv1O7iH788wWsigVOpzgOfBtM06mCeUwd05kiHCXnaVJGOen9WPIl4+mPdnXt5\n"
+ "VuhVk+zapy6R0K2NQ8Fnz7JwhV4N/xoe27r125LScIgPfNdvu8612pxDi0dj9KY0\n"
+ "RUrbABdmHR7ZNQzY9Pc6kJx79MF/67ZGH231u2/vlcjxBtjrxKVlROcVkQuwTsg8\n"
+ "OB3AgRFeIg4x+ZMvpc0ECSZYSxVAF8eI/nl3kHhv/emeJDdGEGvRfyliHybQcBnI\n"
+ "UYohT/x6Ac8QfoRUVCVvOYb+5s1vwkY3B+IBONuvoFYv9oX/iXGovX+A5D121m8r\n"
+ "i3Kzl0hdxI3/8JET+uFQIKX6SDsO5d32H/GDVByeeQgbKZRvruU0VdnH9qWX0fTw\n"
+ "CkH2V259zBoW9aFzfuwZZOdoukSfE02qU8Cv0b0EdkC1R7OsZLHv5hEkofrXF6+6\n"
+ "iZN4xf5PUeU79hIqhfZHdCT0KVZDOtPvdwJiERqLlsMU70xfTSFFR9cEqXa7wYTM\n"
+ "zPA3/WhJa5cxhBtbk0/5QByEGLzaKFHbODZL5bOXg0Javu+PA1dqPR7VQrALGTbK\n"
+ "kbHt1f9RF72yS21mCv29rw2tbpo2iSJOAboEqrix+O9upnf64CI+DpCeeMsQaLN9\n"
+ "Uaejj65+TLfLnJzcwiAu+vGjwiEenuJep/l5s8F3JigG4CERGnsIMFwgOg4VbbHK\n"
+ "WPBPClp0wKYLauYma7A2/EpPWv0Rn+OKrCJXDzO6Fhw/QtMzkH46UOs4VUFb3NEX\n"
+ "iVIpffT9xHtdo+UZLpZthOy64l5SdaxLjaOtCI5AfzzHjOstyrCRyEuXlIHDrLBL\n"
+ "RECzMEjw6QfMWZsEivpDS+CZ/L66B3qyy/kRzwiZ+DVRB0FZyXOBamlvwkUFONjy\n"
+ "R6q31uBV9l9X5w6O4xOo50c/967ifaH/p8QLB3iyTXZ/J6wqBVu0yQxc6RNQJ4Yi\n"
+ "y2yu9FfsEC6lEhJduX6AAr8TDSQHhiKhcjnUU1U7t4iQSRkh1Yt+v0naJLGI646W\n"
+ "CFhzi/4Ik4Vbr8MgGEr3oiHTKC17O24ngP4YFdfHuHiYfKB0CTrM9C1n6dvP2o86\n"
+ "XStLcXpc6ZHsaBxdfpnF+mPgB93/tcVHcie2qUduo29KSRlwimKLCQIDAQABAoIE\n"
+ "4itvYAoM+4xwWAS7aSZIIdGqQvElroIlfqQ96idEQ4JQrz6h60jiWQc+0DuPKyJN\n"
+ "DpYrdvVGc5SMJJSNF5CFRgTYfO8w7Th2OOLq9jBE9S8uXNR2A7QQzCAHdLtz3Wqy\n"
+ "KFiG71CcWVIcikifCyUwa8omKsyGdaMrtqqAOpMgtZWrR5DC7hcBk6KElRqR5rl0\n"
+ "h+Jv78MkwDRmayTQ7zCr54hTtxBf90ONRGbps3LDXTE3Ouov1IVSwe5fZbevHu+w\n"
+ "lH6d0GW1xmso8fqylHSyre2a0k6EaLK7lNUPRG4RNG2zG/ZEpKCLjrjBTJO+BxMa\n"
+ "YTwz/aeHfT/R6WDcCnrPIJqjNgE64AFLjTd/HI4Zos9u1vHSbJtkKkWgdBG7B9H9\n"
+ "6B+8jJ9kIscknxWXw9+QUMsXHAR3wpNkQRBQTXfxDZ2souZH5na4CPJk0ZtLiLJ5\n"
+ "hBIf6fcDG/CrtoODVVo6c5aJ0eWYPHnr1yrQ+8Di3X08NlMNVTyBI8aTd2/MCSPY\n"
+ "eocvlhUVHhPWv6xSjH8mClclIp/239N1Fyz4V1NZ7I5z8UbYd4r4DnedXWjbrB/i\n"
+ "SphoNMygN9E6CSdgMSyclC53DYR8laW0fYqR2GNg6omow9SD81CSLnCOyVad17h1\n"
+ "S7YpkqxErisIVnylvQzhuEJ3o4+WWHxTVv9HRxr1bI7u+93sify0cqPyBXTwTDmB\n"
+ "u9XEjgHvHOJgbR7ONbtWoLpOQVA5xl1x0NpSKFq+JK0wjGdNguMCm3QAFpTo4DxE\n"
+ "32voxO8KaTzjZMbfI7quGIu2WgkFw43D73XA7iiUDg/AYC03TjF2jM7KLCXdxROg\n"
+ "35gRFl1AFRfTV39VwxN/pMGNx5mVgxsQDtwPmrbv+rMlTOgn9gBAXw+9P5ClV6bl\n"
+ "I6BdmNVx2RLf1EnTBYeq8FqEcSX+AkG5+TdP5Oaq/pNdP5s0UzoxI2NyzqZF24kH\n"
+ "F8ixnTQma8Q0s6TapR0OqLaNCj4EN/jnb4FbKS8h9oGmJTUy6J8lxraChQkUhA5t\n"
+ "yBOM++NmiaUJQc88uZMAI7+6kBDEUPjZlhJTO3iaWJVZm7i0IErySHQ+Jj12sPuo\n"
+ "nFtSh3GTjWDGZANufiTy0KJDopTYZp3m+iv3/5KhkbLT/gdM+SoP4mGRVC7ZYbqd\n"
+ "ibszOv0lbN6zLcQjd7MEMMk4U5N3hDzo+Jfg8zbC/Q3A0GhgDDVhmywL7uyMCj+D\n"
+ "+JW0T+bqsxbCUHJARSgZMR1tE61GJWJ8M8Nj+7WLeYAnzo8PrrDS1rHTsav6YBUh\n"
+ "3sjg12UG5nAhMUC+jiL75OOTpzqkzSvcB7nGhLo+0DERtkKuNeUOnfKnEA4W/p5b\n"
+ "QtEdTlTPMPiaFWLaQ6iw5i+rMJgNJp5oUxe5NILf4aMI3OgjX3yZwqo/vo66EqZG\n"
+ "9qo6isHr4fj8jy9De5XnECeJyEQMl6Yv4KjuX8t2aGJnAWEUMCEtVJw3Zi+0O7wE\n"
+ "OPoRBp8noSfPsNNww1nsK85IoaYdcS0fmisom36TOo3pKTZc6ZcpQ4sPUrMJ9aW1\n"
+ "/UC7lptQcTKgH4FORICXNV/xojIPCFQD3GTZofCFlvebGanv7pzgGp1N6fzuO2eI\n"
+ "b5bjvy4BNRiV106ltidEZXG2+o6zVNsdNI5zvNNDceFx8mf7EJaVaWOrpp9LEFLS\n"
+ "ESUBAoICcgDrL2cZ1Om4iMgIAS00cYO9nchWx5s/MdDF7vZgBACjNmEBZoqMpNZb\n"
+ "NYjbGcIfj1WnWrp7jMoyyWbqoAaQAMyUWTvnD4ftsOAASVbWUpv1FdiqTRlBZVva\n"
+ "Gqy8rSyZa2H8Pq97mWA9w1zlZOrJMtybpk28iyjRy5TZSV58OM5qO6KlhCy+HHlP\n"
+ "UCOQZ+AFLOB1BPI4D64uKp9kzadN1g4EQMvF8WnAupU0k20h8CDIUdctxnny62X0\n"
+ "J5aPhsq04ci1TU+n6WAM/yStTcUAd+JZua4kXymlpDr2zSsqtgz0Axcbe0FVYJG3\n"
+ "uvDco/fgyAEa9M4gQt3oatQ0LeqqzLM1761JbnGQikExQM8KoCrfGQ6MUzYyL7KU\n"
+ "VXzuXNvvZHyT5NzKrxaGTcDlY0vvqrxei17kSjfBdss7eH+Tqytzg4SyQab0NvnN\n"
+ "W5+Rw0opol4El+LRFARERXp+HerFaU3Er8pZqlpnDA/XSlEy5jXJcwCMWABTuuvw\n"
+ "5nuTw9l1SEpnYm7x/x+P73gCUdOMeGX06w7k2Y3JnUvifJUrh9axMjCIXAMLJM7a\n"
+ "1EF7reOoJtVN/7slxh1eTAx3xFAZ+iDte5yEqNK375SlVWMm2BnbvG3H50fCx9Lz\n"
+ "KZ8cOKYKNZ5Q7iImNQ06jjoQzHAI4oJdvjutvm0TZSjDFUBHgcFTgVdZZIXweJSi\n"
+ "63QRDQdjyoaB3jowDRwP/AWI2o2QzapmG8zEB7gDafbam5IROf0gcj+/rUo9Dlor\n"
+ "QMI07d0qpHhL+VAcn3b8MI69rv4moB8Kf9RqdRyVJ3hua7pQ24B72KjC93noUrW0\n"
+ "lILbi65C4AufAoICcgDXLSTE9lkyrSr1Lamb3ag0SWbernBtkkTJPktloD6drQg7\n"
+ "lsXAFaV62SazBmg2ZtayB9D9HUU276F0sWQbxBD9hO/WGnVOMT7rgu5WMuUKid+H\n"
+ "oWj5oT+KMPccoPjrsBZHlXvpgtb8M5dp+l1HyRR1YN4J6y6oEhRDoWAApDgA1B29\n"
+ "nuICrMlMFE0TkNFz7YsiMMkDYAVGbjjPhCJu4eD698Ktopl1BUAKJwfI+6mxDDSu\n"
+ "+F6z2/0alJYo5Qb6+YsUSOpjCyRwQbahO/3drb4Gv1B5DmiHDhSZ5UwzUQbHdBAE\n"
+ "9PeColcWJtW5msRuxwZkbE4QGuWzQyBGgmy8bF0hpcaE0nbn0RQEqHHngcrTuu1l\n"
+ "zte9k8z6BLwYnVFcJyfTjGWqEr0Z5M8gpVNY0OHxuqHTpXMwFigzwEqH5+EHtGGZ\n"
+ "NN/daeUTyJgU+OFnEtoHfDCRoGrNbW2LgifJeOxvGvczVcF111jfuSehoVvJG1kl\n"
+ "1iQXwj22HHaDvJFQRDgEMRXnz98UikQwLolfSJF4qKENPdhWq3jmVCjdFLPuvxq4\n"
+ "q0fGLa19XWPfLZ/Fw0Oyy54Fq8Lm67EkeLouAB3RbSg9fwBNJw0p5XTiHykR5pBa\n"
+ "b7mkch/+GPrhuA/tsO1U1bFn1ykGswSTiUzdtBbYRXuczX6SoIuJgCqwI2RIZ9cS\n"
+ "k4bwnAHEcLHlZ2pzaGNRfEjKUnNgXsUo6txi57UXwaugvQ8eQiDQgYXKlj6jNden\n"
+ "2RwXhBHPFF+FRh0PGcGKOpqjptb3r/EUl2C7RDsXLClhJUpDDWb/0nnn175ODSeM\n"
+ "DKcHf6d+CBh28n1mumhXAoICcTAiOoKx7cfDztS8kOjr1p+nPEpufdqYMndgKfKK\n"
+ "vyqoRYBI4VBZqDlwonrdMbrN1iTzT7lbnkJ4r+STLeSpFTXDcZwftJ00FxRX7jrd\n"
+ "G2g0uWxZbTLSMNNZpELVWoxnyt0aY0XzpRve8RNN7TOSgk4k4kIVZRxTAzrZZkoc\n"
+ "QjrBy87+Vz3ti/Jsn2q9p77HaYTppz1MEEUImijCYlxu092Q+WOgvhkg1sq05aAN\n"
+ "ilgVT+nhdjH+dZZbx9fGKZSNpUtd8FCYVf0y9um1Qf2Pi7b7ZqWxCFALZbn/Ubdj\n"
+ "HRGP1FnehweXRRuKWiN+N4w8wuUmd01pAgvAWX/4ac/dJ0yBqkCeJwYDFcaj0fwF\n"
+ "veB9O1oC6dOpqW3sdS4/uQ+szEZkj7+3x+9i2HjaMr9xfS4Ibjpg6jphOsUIK2wo\n"
+ "mzMAFtd40lenLMcX2ne1tWcCASYFg/lwlFL4uVI4g0U2ASGhLNPfJrNyZ4eTgTze\n"
+ "muGI9PLETATW+9UJBv++FLKJQhkYr0Y+BdKqmzA2WQql1ZAjz5+M2xUJaW+IOet3\n"
+ "2LvZXs95rXHJbcChsmlCtJZEpGFbVo0rl/UlsWONvSsj4ztXkjggaUgV86FG8Y0Q\n"
+ "q3IqhXllX22BAi6cNSFMgscSJD3CDyEsuHFkjIPFo6Rd33qaJZKwp5hRmt8aaVZ5\n"
+ "Ov0BOsRj63nE4/7YG6Alv35wA8lulxAgjr7CwMs6l8CsJxTQ2b7BKashM9GYB3QZ\n"
+ "HzJVz7BGIiyO1GuHzHeSuzIwCSLbesbw6CRDN+OgfgmfudqnQO0s3NW2B1LqH27P\n"
+ "DePK+vc0OTIQQ3oa7xFJ7DdprVcCggJyAM8itfKk8tjFukSq4Esa5YDv6AcVBUV1\n"
+ "OKJBRXNe/ufqWbKDQXnXXKUVxRsxX8B+3s4imBwQwUBRDau32Baid3iVMAt7DNFo\n"
+ "tpkgQS7Zb4LlljiKOPOVNgVhfYAhtX2s1MW0MMRpH2tIfsmWKZWhDACybww9SXyh\n"
+ "asBv6Gq1qvOhPb/74rWQf3atVEUxc2+VjAotzFNja7CRCj85g6wZ5Omy98UOcYsk\n"
+ "srETQXtIR+IXTd/hV8jsTIn531MepcmTzz6HspoFb95gY95yUb/EMNlt8ZmXNShN\n"
+ "dadwBBqiNVRrdcBP0LQAcrTwTW2OfunkzVJ+r+bw/Y3DYJ5/jw0Tg9OQMbpKoAwo\n"
+ "SIzzWjLxzr5jg4QtyaDFVtyXEjrftiJvzvbmgDdoMoFqsblLbSBidB6u+nkzG99+\n"
+ "dNTcluKdZRJ1oj5Jl/ccqViSEVSfANyoWRo7gsWtFyMJ5BoYARUBQxjxbGYOd11p\n"
+ "IDS9mFkPa7v8h6TUr4nvglh8rdnC/F+4S/Q9DElK4gRz1ZBMPBFtWhw8uEx27HsC\n"
+ "NjADdBLeixeY/7AlscIk1o2ICUweL1/AyLqlKEltPwHsgWoKja8ajZm86q/IQhID\n"
+ "NbjPGeVS+cYxnWRxiNO0yPdiNKB0/2BgoRa5Xz4G8YdxbUZZNZV2d0daG9SmPOIJ\n"
+ "ikmjB3TnnPHWhENtoMieZVUk5xteoirWokUezzN0i3yJvmHVNLJBOyLTXNQvKw6F\n"
+ "ufD9vj12xHV4r1D0vwYkLMCbbBhvlimjMZxPLe27/dQRmpGn54Zd+EQmTu8lZoeF\n"
+ "r1E03AVCuf+IyjkXNPMS/7ljManPZMgvSaECggJxdDsg+VIkO4id44ATLjZ006oB\n"
+ "C2S+xktCmj1/GUXLwn4XkaWJU6C10rADD139hGyoBdWFZeHq2MCNJ2agKYqrPa6O\n"
+ "qt+GkIDbbQ1AtUqW4xEL3koMhe7g4CpqI0n07orAoqQQGvmrTqhNCOz3ftMQKtkM\n"
+ "qoiLwbdEU0X0s41vkCDxF52448ZMYQ5327kAa5mMG1lYrS7kQ9tLJ45z7RSw7Pan\n"
+ "tTi18cLE42kOe/wdaK/nakjNoIUcJC8VqYJ75IOnkxmMrP7wWpigHojLjjG2rCiU\n"
+ "qYwS+E5f+3WhESvu72DXjCClI/QQ5iQ9+BDtXzfzxVxpNicaAZtAVns/JPMzkVEH\n"
+ "A4efNXo8CwOMCyqhnKxKuprPAekDwjYyr6fI2iqcfb0TpnuAp9fOkjgkVZIuLAs7\n"
+ "gsyms9eniaFCGNLAwTkfEjxBVGP/5kSaka9w0Vj6g+mfeqEw2frD1LfEU5l2/F0t\n"
+ "iFYmtmgxpAnlWOF+Y6dlKqFwZbFiqzSZNMwzn29Lhx7hONJqzMzGhjk7heYwB7A8\n"
+ "8bloepcbvWcZJ/2dhmfsgk8CXVW22C0jB/nU2NpAcTki3TVAZ40cbt1fTdgS4tRJ\n"
+ "zR9OgLsjfuTo0LbEPbPDldytP1Xcdw+0hdxdYUv+G2UsdNKAcx+c+9VisogwQ5Ms\n"
+ "dUuE9B5EJO5cd8hz2w6SJ7Fe0uQHnXM0I+EtycCLcTjyO/ZMkQMZh7Yj37oOB+tJ\n"
+ "D2uAHdq0IHmBrEQWHOBuhwNNLtu90yfzT8hIPPmoY7ho+qIu+QhD65FLVIu1bU+3\n"
+ "nfEvcF4wdqMneAh+KlLyZbGSZdhZpD1YjP8cNvcO6w==\n"
+ "-----END PRIVATE KEY-----\n";
static char server_key_repro_pem[] =
- "-----BEGIN PRIVATE KEY-----\n"
- "MIIWMgIBADANBgkqhkiG9w0BAQEFAASCFhwwghYYAgEAAoIE4QDlLopBshMEROYt\n"
- "nS3ZM02uRH0dFMreyhCNuoX5EPOsZRgTbGXM3myDqCWuIiFRf10OoSH8yzaT4nYS\n"
- "tvz91Do3JM/qHsNXyQP5Ql4NQkfp9sl8gutog1Y3svWM6fpl/mZTPTLAJcW+HPi3\n"
- "5GStCgnlXi6U8JLk4mmjuIt0m/O95x0EZ0qmC8Rn7Ijk8VHH24fMX3cWu+LSTQzr\n"
- "WAGoBZWcl54EBm03GiUf92MW5CP3JpoTq/cwJ65b103GGC5CEhlFWaKTKQJ8EScu\n"
- "ood3AUy7JvN13KIk+lw9cJ7Htw7GPe8ixzrsNaBIyJIiAFkS8iWYjfUGJkifM5XH\n"
- "enMAx5UG6hdHWvbkrLL50Dpy46sPJvzNfMiY9ukVOaEMVSlXwHkuwMU/ZxyJL6w/\n"
- "r3xS+xHdWQhDBgLFH4zIfUn36eEtDkGQ79B/wvx64M27mm+VLFWaS96lwfpmkmdV\n"
- "940V0oTRVMYqIYfAfFX6Sr+U6GYF7Y6Te0vMLNQjHweCR33+1iUO4U21QYNA6ea8\n"
- "Fs7wu60J9i+61gYJo+TN3hQPgBS+6R8ZIN7DNA6LRVB0dQtLIYhS7tPXm3sdOfP2\n"
- "L72KftzmLYeYm9tDSx8BV9EN6wY3GfP8YJ7RQAwSWowEQLfleMUbI/ZAeIsJAqvo\n"
- "dTQtUTDmzXWkk132HDe7bit+IIYSoUl70fOr4sJaF+cjPdWM6WjDUp7uSy//P3ZZ\n"
- "gfhI14TWXIEh/0eNvHP5toWctRKXb0D79D5A4fNz79h802fxWDfUg4Ol+qoL8Ms6\n"
- "NI3s1LTDDqJITwMQLFFuuUGvUD0x9WP0XHl7m2YcdQg1U1JP7vmMXsoa/zVcgovw\n"
- "IFhiA69Umlu8BipEn9xeQjYdyBMBMRMasUjXgQt9OoLv43UqLVzjd1AtRURYZREO\n"
- "T86gYU53SHHPvOyTA2U4ZyON0WVzPRLpHrg+9YhaL9bzXgcqtK13Zdj56B3jHgnz\n"
- "ge3MmjYvJntGtCGl2D310FaG7GWg775Evh2I4np5nXsA9dnSqySFzAP3rJ/L5pUi\n"
- "bQ+QDuYnNwATvRu57Gx3kgmMrMvKooudcpYlrekJUzjS6PfmsHPCYx97rqmeCvGZ\n"
- "m8O4PmxC0NDr1MnTuBGjX1IOTuICrzHfoDPa07hxhOwQ35wa1a+aXgQGP3bqTISq\n"
- "t9VV6/DWZ1NNsujAbbd+2oSYYhE9e4QZCCnpWQw1cmnwyVhvAVsTzkfDxwDDYBNj\n"
- "+L/uG8BaoCuAtA1exDCXiLBwuS9fkwuO26NJoCx/hVih6sIqe7YS2qcubJiByMeU\n"
- "YqPO/N7MrJK/psm7WG9Jby62xEYulfU28dYOFdjtFLaUY472Mo6Rxth6R9H/95tc\n"
- "DX7ndmPMtYkBUJ91QyGwXLj/QozlH7woVzm7kdZmO5sCu4aezXylPnK7cTVwzTsk\n"
- "3moucKsMshh9Sd+baxyVFrXlvntOGkrU0FdHh2aF47eCb5+agu3Aw6PHK+v9XsUR\n"
- "FEw6xqqIp9aJsY6VkjM4zcglrrDJbAbujozRAZp7D5XPtSDfBAG7bdeZOCA4DZUE\n"
- "QxY2HRJw6OeKLOclaEeCxW1LKBWW/oYbyo/0tK9ND+mk/WUOKXeBA47F+OGZLP2S\n"
- "JzMWxJLuvL1XbMzHk/nrtN+mzgg1zbLdwuX9XUGcXQCDL2w3SCECAwEAAQKCBOAZ\n"
- "dUIGajGSl9S53GvrZLeMVC9Ru62NcgTEuaOIN0naLKCwB6qHR23mchc9cK0i0HMV\n"
- "3PBZlHlLlCxph8oyqBCPb5do+mHYrouydJzd/C7g3nkjS6e6xFwfc9GzBYq7KbdU\n"
- "J8grcAa3R6CZTNWiIytWP1ANW2v14PC7LxTOr0Q0JCglBRRVvZjjsnLCe8wJ12kO\n"
- "Wsxvyg84LTbyLaSBdZ1Y976l09Dt/gmBs4leUZltKuySoteikcXcjd4l0ynQTRJh\n"
- "kcNtdXDBN2aS15sUrSBI6drBjPC2CtmUOZ5psPwDKX4W7uqssohLjXwuKru6Twu+\n"
- "FobRWA9ZH/HTZta/j2wOiJJtar1iSYzYEzlq6b9mv331lZby5vqdUPmC1TLyfH75\n"
- "opBGqr2Qv6ryqBu3XAxv+iPgzhogq5CH9OLylxhcWOkPoJQYnSBOxgoUfONIPtSD\n"
- "f0oMP7ABFOJFumoBspDub+xTYcYiq60hUIxXjjlHD0x3NYsF8zTdceTzo91rIX6c\n"
- "WIq5R728yD7JRf9W3oIqSR6kMoIZMAuKktDHqAKl8l9x+yTDqlSzQ8/cH+RRRDhQ\n"
- "fhcqLCtQ488l2cfESrNfHk+htC53GzEmhQrD8QePt2JS9qittd+hak2Da20CIJhE\n"
- "m4oPP1Sye4l9GQfiwNId0VTwIy6c2CWYvHQ4XoSGLURsbLYUsevE9kLGt2exb3wj\n"
- "tlnRPqjmQbZz2uwpq0cmSMBPdnwMUpLPemb9MWAPUlx1oHwJ2Q+iIVJ7C0DQnmwV\n"
- "P0aweVfKW8U3gf8B/97UjBuazKwab9Hb6thRESi7E/c2fc9A29JL9vQieE78ch8w\n"
- "mEIp8SaT/l09gq6mTSUhYl6k5Z1iNHtrqgRr9uyfB5+fm4P3Hc5GzwCC38sU7rL3\n"
- "zO6Dk5z+3VD2T9L+X9vZ6Z9mjvzKylQpZta8d5EAWkUiPaVY8xYcbtNKRahK5zFB\n"
- "wgzTya1uFi9C0TBG07OONuT15bagbqjqsrZ6daLxqtiX6CUtNEAp8UWLlR3jW2/r\n"
- "p1iE3AeW61MfKCmvsl+J9vZ8Vy+iisFaUVJWfhGFpH5WCO4idQiXZyjfsTAQhPV3\n"
- "yBB65LVsXCZWXOiiwmmH3GIvY7fvVTQbM8Rz6FlLr8y8VPACsLJE2OnfRlwZvKaC\n"
- "+Iwl1fKq+W457VdtkVMOzwAjWbcUpwuOzoUnuRoWj7hH+CuNwSeWAYWfPB+obhBN\n"
- "g01jfzY/GKBoYmu5+5nudwhbKTzt1zJ7aBoq0iJ0yWD12DtQImWiWU7ax2wf9pfe\n"
- "lIUL/aUJ2TxZbEYTOl+xeogQkikuSBlNYtM1coOjsXSRCjULW2f9GAl+VT/BA5ld\n"
- "SwvRAgBYoC+X3r4IfBha5nrZStllAwMjgtM8VW2ZgMe7he7csY0WbeNNyH856Pe2\n"
- "2lT49CjudbBytuPbRJXnuiiCVJnB3Qc8ntTthPIFHVLZRrNex6SGG22ANC27jKz7\n"
- "s4Y+JJiAjZMfe2+Nvne3Vd9febCokhzH1HNHOjCx4U4sv2rmmCwGpw1NwRxX7hau\n"
- "4cKPXkhH4iCurpG3ZbooN3DRRfNRdXT/G9Klt2HlI8kvdD2PCNtAGOQOHmHzZdKL\n"
- "V/HvPkqTCdi+OuSPS9YHeHFZZUpqUZ+7eiyjQ86KzgmNi/TQWR/6IEIYe+k4QMEC\n"
- "ggJxAPL6qmGPkdU4spW/FM4NmFG+ApqfisFH1hU/BzGqnL6p7DdfqzcgydyyVC/3\n"
- "/j1QsV/2mh81a/Kho1AawHghjxz2k8ekARGic62tAf7pqoZFYtdGXa9hhned+9Ic\n"
- "3esSItAUKlhX+XlQ6mZ7XUEbt4+6AhkZtiBgIHAUpoa90M0ru/zUoudUKatTfcAa\n"
- "x9C6Uc6kBSIx7L4anGanDHuyivf3tl23UiRH06PHvb/XFCifAb9uXjfZ4+FiZdvR\n"
- "7SM5EROtqJSXaMu3E/ZbK3qZSA4MK53Wr7lfKsyfvoDSxbauUPkUr8qsdIoLmIn4\n"
- "gSjlFoH7ZFZVGgTB3ZW3DdOEm+7hGVwIHRR+KyM/oQevDspHeQbxWA2gx6MUavPG\n"
- "KQVe8dAUVvhP0jktgwCfN/A6S/1yTXYxkmDmjlHUbchyD4hv+/3Z/+5ChAtCjVX2\n"
- "+ybqRFAkJbqGeHUonWK1w+qzordT/9i/4Qg46qjVZvfvsEyyABMCptFaV4sPMJbY\n"
- "CUFpCLEsQ5eHa+GgTp9V0rXoITsemJjXTAUxnEUjZ6MqfQkFs/CsLAoOaD5YjGdQ\n"
- "HmyUEw2sRn4q+iFUlB3rq7BBqVyUrPzI9FajWlKL/Tr472a35uTKEd7Rvm/unY9Y\n"
- "P5HM5o9v2hY3jF2qgK6/ksYkrdEVL95BRIXbJ8bk44bwja4eEfAESI7Rpc31bXd+\n"
- "iNKnmMaB2A9iyzhZgZd5cTIpLM7rUwO7+IH8sd4gIKHVYUpy/KHJQ9wPy6pwc69R\n"
- "MJ6HljhaRtaethkwr4Ehon3fvuQcll0rXfhbh9kN+UfE+77psBPyrLtNTTke6Ucc\n"
- "4UkXGwKCAnEA8XaYDScKT2ngP/BPE9Pt/YiDoqhfGPCVMKC3/tiErdeoCk/NW6wF\n"
- "00PYmaZVADXZ++kjwFfXv2w52k+8E1TEorUgap2VpAMFGmAasLkey/AuOSHK2zzU\n"
- "5BWF2gwu2vDiHDs59brcH2fxGRtF/rHkZIq+fs9uHlIXARq7Wlcuu6ZkFT+qRGOl\n"
- "091rFAhPmYZekBQoCjUOqPtxVPoGvdpp8SDjwet8KUBPgY0WEyZ0jGwMl25pCmlL\n"
- "DGFXgbUm1dtTCxFyTC7fcp+6GmrT5FwhCBygY7pT8oAqV1C/uyvAcfFkIZAlRZQ+\n"
- "FTeK8Kug2XBO1ycD5LrNZEWv91bQsMt1iF3A5PFSMwjcC+s07ZiAfhx0A3HX1sWV\n"
- "VvhP+0NdY4aI7YQbUO4eSGiYOr2JPlOIQ9ObApOjQKysTuWTkwcUWCCbsMDk5CrR\n"
- "XBrN91X/BJkLvcax0lPNpAko+avEVwxd/MsEKg8Tcc/rZajzVxqYei+fiCB7j2ye\n"
- "V1SfpdFbScSoKreEtUEx+3BUVLAmmCmEtsO/d3b7G8yXwakLn05J2Vhw/3yNUdm7\n"
- "hOYXMuqrEL2TO8oFTUUKRNRml0m4ymfKrdy1VLgx7wVUNNM/RAZEGFtb1B6VHF3E\n"
- "3AHqR22H/aepgBQkN5s+P0eMgVOiEI2KTDGkOye0UgI/+7ZtfjLjGqvqX2X9J6Kk\n"
- "QqfNl0jOTmKl0/3zrvAR1AOrTv6EvDxsLOfh3Nlr2I/t0RCzkeb5ECSiHmK9EjrA\n"
- "b9cED3fgil2XiY7uyRW+3TpX6PJWSYxOlIaF/6YCy/vj09nQhLdnGQzuIEQLQHJn\n"
- "nS+YVXYR0SVzAoICcHnxma8K+dqz8NS8qHldU1O6892cMmwcXHIfRsIDaVU7PITx\n"
- "66DoQMcVbLECWkN1iv+paOI+0mVb//WE55Gi7gtQKQyp36t1B29jg7vmk6F9k0SN\n"
- "WRla7bx8ulRSDoIagQRDCpl51YewN2OliEDT40Uryj/EqqYG+GCnzIeVHgTKbTdP\n"
- "lE5a6+rDJTpTdnLn/4Sgxr7JpZInEtVmAxrVmW8nkAvqpDv3HF13MmDkVYapfpwP\n"
- "jROks/x6gLpY2hWyX0KsBg5FCuAqisc6LFEEOqhqLT2y8FAtVfKKPXaz0WyEgbjw\n"
- "S+WAtaBOf4jHAjN+/dPQUiQN49f9X/LygurkA8pYiHyqycVuKMIw/eU4U0jro+77\n"
- "EwEL7wWGisK7cfzzEJMokhlfHhd6IuQeBFn5OAgD5KJr8JXXQBgLb+mIbQlBgot9\n"
- "bDeshE6OYRaCtLtsGUrLSXAaarwJ3SscJC5XZ1NwwdeLPSn+Pq7rIxlN3wIu12Cz\n"
- "FPu+xm7Q+cbKt6JvT2Bz4Zxb56W96ZeH4A9RZ9Qe3+DdNJbqtg3w3eOCwGvVw+AG\n"
- "2LdXUbPwhs6W5B4EFqfnDR3m/c/afdeiXnFAEvqW11aqmA4fP4ZsIXQGWUgJBcVP\n"
- "MLbONzA/5i150bWfyxqzvRUnXbfoiVqqZMQyxlVHt9VoljZDrevhFdu0QLbg+oml\n"
- "7LBYwUjjYsP06kAmwsLliYT3RRyLt0FJPqk5Bvb2HZyjKu453x6mqxntWD2gBfBA\n"
- "bWE1QDbS5wxWx/rX+2lezWyLDMMJrxs0wTNBJrGfM0uhJzEs5rnljHUbhGjlKWxp\n"
- "f40lF5uSSutYsCwZfwKCAnAiRppo64zMHxRlHyCqiN/0qGc/NLVjHeufnoDf3S5g\n"
- "WweQhyl4hN/C0JOzo+fXAs3xs3OOvylyE9PWiJEDEXpkOl/iooH2aTNVPiUrxut3\n"
- "OZ3mIETigC0cP23juO0ByUXfigy9NAxBLQkNblCuSeRI3WUTLTDNfwui7X+A4HVS\n"
- "z9jPJ11tHdQRUhH8Iv3hpjBQNXxFjqiJFkBNNry0QIffYbLS+TGDzYw7sKJcj43l\n"
- "zQSwjky83Jt5o2u/js53dw2/uXdHFzRC2ieZzmZLuUQ7GY0u+ukluEnKYT0GPbyw\n"
- "r/ptxT91NAjoDB1d8o7/rrCSXAhydI3pWPcUni87mXYSqHRUS2lGs1BBJN87hvVe\n"
- "cX2Ka6Oe6ic71D3ORg7ArP1M8f7KqzKDRs2tMPCFd2gVcLlFUV3QNXK0NGSRb2TU\n"
- "6bQQECGtveJAN9Ha9UshBPSkuMrPN3Quf9pgLqDNVoUU+GCb883nzwL0SFpal/zj\n"
- "A1WbBjlj76A+d1W+PQy/WPoiLjDZZerJbXWbG/IukV40b28Db1FP7efw5qUutPdI\n"
- "sgRAUBbjcovq3pqWcLddxftbdl7wTAecI6Z4fU+M89TSf00CPK9h5ZjBcuc9KcKK\n"
- "zpUndDvobese6+qsvwCZ4i3ub22AsznP08E/LncH8H+cN0O/3e/74DPi8E90pZaV\n"
- "V6gKaLjZ4n18tMM7YWtftyMhB6CKyatONEMiEIEZE16rtTLbncVwVWYF0mAbKvVZ\n"
- "9ElLFOsP5mUgux3pcDPgkE6NiUueIccZMkn+WEAlapRRAxOMaa1l9Viu3vF5lWs+\n"
- "JBa9X8tVF6hbqMDwCLWYwb8CggJxAMwL6SAeYP9kjq7tkk+TmZVTHDlV4Yw9kWAY\n"
- "a9etQ4vJibIkyzrfJXIVmsY+df7m3uaNWnmNe3VuZxLv04sPyL8OMu+PIUct3174\n"
- "sNYN5AjmjmuBLvs1vBF8VvQ8+TsH5HjzXYcSQM3OJ1G/GPjsptqHj/w3kLmHsQgW\n"
- "Fps5OXWgjQEsVnrRL/Z5D6s4z8OPMRN3KAqb1k4Cp5m32f9bzBIHEPdHc1JLFx0X\n"
- "4xFQ4m1Dfbab8/VGnm9mS67zDtJWjxUSeTlR84hONXqzPke5h/W4QGrUgHutm0zb\n"
- "ch/CufhsxF6RjiK7EuKqZWZDDj0uxqOlI6X/Exf53KZRLwJlmhdaED5LP8BA2IHt\n"
- "nRL7F0uGfaLMP5CCDyN36GjmrlCEilwQQSpJF6QnYEEkLaxjksqTzQ54ZtboLf7O\n"
- "HY0iYN1fmuWpf41ljljHe5H58vKDr/oQkANfz6I2lBCdmz7GkmBPmed8XHJSWqs8\n"
- "41tyHXPBAQj+1MQtsW0xjl2ajoF7mwrRVHQL0xLVQcwmXqNQyMJ905WRMBhLShRR\n"
- "hXipo7nDHDE8jiRyTZGNIg12D6tDLD5tmPXK5Hmzn4pLPWcN6Q9UvWn0PWql31sx\n"
- "3dNqZ6PlYyh0b92+pymfDF3TBvZI2PeOICQsiFnqwhMyrV0Ojwt/QxIFudJJf2u4\n"
- "7EA14n87SVjMhF1l6BoP4wdqt21uU0UhpyFACCoH2arFFulGJjC2/d5drNq7hSef\n"
- "LNMz9MPPkamMWQ6i7vlTlUjAOtIfukre/fG4qyVclTaAiKx6EXt98DSBjPLoMJO7\n"
- "3sczn4+LAjtXDT3RX0aUWr+JQABd+g==\n"
- "-----END PRIVATE KEY-----\n";
+ "-----BEGIN PRIVATE KEY-----\n"
+ "MIIWMgIBADANBgkqhkiG9w0BAQEFAASCFhwwghYYAgEAAoIE4QDlLopBshMEROYt\n"
+ "nS3ZM02uRH0dFMreyhCNuoX5EPOsZRgTbGXM3myDqCWuIiFRf10OoSH8yzaT4nYS\n"
+ "tvz91Do3JM/qHsNXyQP5Ql4NQkfp9sl8gutog1Y3svWM6fpl/mZTPTLAJcW+HPi3\n"
+ "5GStCgnlXi6U8JLk4mmjuIt0m/O95x0EZ0qmC8Rn7Ijk8VHH24fMX3cWu+LSTQzr\n"
+ "WAGoBZWcl54EBm03GiUf92MW5CP3JpoTq/cwJ65b103GGC5CEhlFWaKTKQJ8EScu\n"
+ "ood3AUy7JvN13KIk+lw9cJ7Htw7GPe8ixzrsNaBIyJIiAFkS8iWYjfUGJkifM5XH\n"
+ "enMAx5UG6hdHWvbkrLL50Dpy46sPJvzNfMiY9ukVOaEMVSlXwHkuwMU/ZxyJL6w/\n"
+ "r3xS+xHdWQhDBgLFH4zIfUn36eEtDkGQ79B/wvx64M27mm+VLFWaS96lwfpmkmdV\n"
+ "940V0oTRVMYqIYfAfFX6Sr+U6GYF7Y6Te0vMLNQjHweCR33+1iUO4U21QYNA6ea8\n"
+ "Fs7wu60J9i+61gYJo+TN3hQPgBS+6R8ZIN7DNA6LRVB0dQtLIYhS7tPXm3sdOfP2\n"
+ "L72KftzmLYeYm9tDSx8BV9EN6wY3GfP8YJ7RQAwSWowEQLfleMUbI/ZAeIsJAqvo\n"
+ "dTQtUTDmzXWkk132HDe7bit+IIYSoUl70fOr4sJaF+cjPdWM6WjDUp7uSy//P3ZZ\n"
+ "gfhI14TWXIEh/0eNvHP5toWctRKXb0D79D5A4fNz79h802fxWDfUg4Ol+qoL8Ms6\n"
+ "NI3s1LTDDqJITwMQLFFuuUGvUD0x9WP0XHl7m2YcdQg1U1JP7vmMXsoa/zVcgovw\n"
+ "IFhiA69Umlu8BipEn9xeQjYdyBMBMRMasUjXgQt9OoLv43UqLVzjd1AtRURYZREO\n"
+ "T86gYU53SHHPvOyTA2U4ZyON0WVzPRLpHrg+9YhaL9bzXgcqtK13Zdj56B3jHgnz\n"
+ "ge3MmjYvJntGtCGl2D310FaG7GWg775Evh2I4np5nXsA9dnSqySFzAP3rJ/L5pUi\n"
+ "bQ+QDuYnNwATvRu57Gx3kgmMrMvKooudcpYlrekJUzjS6PfmsHPCYx97rqmeCvGZ\n"
+ "m8O4PmxC0NDr1MnTuBGjX1IOTuICrzHfoDPa07hxhOwQ35wa1a+aXgQGP3bqTISq\n"
+ "t9VV6/DWZ1NNsujAbbd+2oSYYhE9e4QZCCnpWQw1cmnwyVhvAVsTzkfDxwDDYBNj\n"
+ "+L/uG8BaoCuAtA1exDCXiLBwuS9fkwuO26NJoCx/hVih6sIqe7YS2qcubJiByMeU\n"
+ "YqPO/N7MrJK/psm7WG9Jby62xEYulfU28dYOFdjtFLaUY472Mo6Rxth6R9H/95tc\n"
+ "DX7ndmPMtYkBUJ91QyGwXLj/QozlH7woVzm7kdZmO5sCu4aezXylPnK7cTVwzTsk\n"
+ "3moucKsMshh9Sd+baxyVFrXlvntOGkrU0FdHh2aF47eCb5+agu3Aw6PHK+v9XsUR\n"
+ "FEw6xqqIp9aJsY6VkjM4zcglrrDJbAbujozRAZp7D5XPtSDfBAG7bdeZOCA4DZUE\n"
+ "QxY2HRJw6OeKLOclaEeCxW1LKBWW/oYbyo/0tK9ND+mk/WUOKXeBA47F+OGZLP2S\n"
+ "JzMWxJLuvL1XbMzHk/nrtN+mzgg1zbLdwuX9XUGcXQCDL2w3SCECAwEAAQKCBOAZ\n"
+ "dUIGajGSl9S53GvrZLeMVC9Ru62NcgTEuaOIN0naLKCwB6qHR23mchc9cK0i0HMV\n"
+ "3PBZlHlLlCxph8oyqBCPb5do+mHYrouydJzd/C7g3nkjS6e6xFwfc9GzBYq7KbdU\n"
+ "J8grcAa3R6CZTNWiIytWP1ANW2v14PC7LxTOr0Q0JCglBRRVvZjjsnLCe8wJ12kO\n"
+ "Wsxvyg84LTbyLaSBdZ1Y976l09Dt/gmBs4leUZltKuySoteikcXcjd4l0ynQTRJh\n"
+ "kcNtdXDBN2aS15sUrSBI6drBjPC2CtmUOZ5psPwDKX4W7uqssohLjXwuKru6Twu+\n"
+ "FobRWA9ZH/HTZta/j2wOiJJtar1iSYzYEzlq6b9mv331lZby5vqdUPmC1TLyfH75\n"
+ "opBGqr2Qv6ryqBu3XAxv+iPgzhogq5CH9OLylxhcWOkPoJQYnSBOxgoUfONIPtSD\n"
+ "f0oMP7ABFOJFumoBspDub+xTYcYiq60hUIxXjjlHD0x3NYsF8zTdceTzo91rIX6c\n"
+ "WIq5R728yD7JRf9W3oIqSR6kMoIZMAuKktDHqAKl8l9x+yTDqlSzQ8/cH+RRRDhQ\n"
+ "fhcqLCtQ488l2cfESrNfHk+htC53GzEmhQrD8QePt2JS9qittd+hak2Da20CIJhE\n"
+ "m4oPP1Sye4l9GQfiwNId0VTwIy6c2CWYvHQ4XoSGLURsbLYUsevE9kLGt2exb3wj\n"
+ "tlnRPqjmQbZz2uwpq0cmSMBPdnwMUpLPemb9MWAPUlx1oHwJ2Q+iIVJ7C0DQnmwV\n"
+ "P0aweVfKW8U3gf8B/97UjBuazKwab9Hb6thRESi7E/c2fc9A29JL9vQieE78ch8w\n"
+ "mEIp8SaT/l09gq6mTSUhYl6k5Z1iNHtrqgRr9uyfB5+fm4P3Hc5GzwCC38sU7rL3\n"
+ "zO6Dk5z+3VD2T9L+X9vZ6Z9mjvzKylQpZta8d5EAWkUiPaVY8xYcbtNKRahK5zFB\n"
+ "wgzTya1uFi9C0TBG07OONuT15bagbqjqsrZ6daLxqtiX6CUtNEAp8UWLlR3jW2/r\n"
+ "p1iE3AeW61MfKCmvsl+J9vZ8Vy+iisFaUVJWfhGFpH5WCO4idQiXZyjfsTAQhPV3\n"
+ "yBB65LVsXCZWXOiiwmmH3GIvY7fvVTQbM8Rz6FlLr8y8VPACsLJE2OnfRlwZvKaC\n"
+ "+Iwl1fKq+W457VdtkVMOzwAjWbcUpwuOzoUnuRoWj7hH+CuNwSeWAYWfPB+obhBN\n"
+ "g01jfzY/GKBoYmu5+5nudwhbKTzt1zJ7aBoq0iJ0yWD12DtQImWiWU7ax2wf9pfe\n"
+ "lIUL/aUJ2TxZbEYTOl+xeogQkikuSBlNYtM1coOjsXSRCjULW2f9GAl+VT/BA5ld\n"
+ "SwvRAgBYoC+X3r4IfBha5nrZStllAwMjgtM8VW2ZgMe7he7csY0WbeNNyH856Pe2\n"
+ "2lT49CjudbBytuPbRJXnuiiCVJnB3Qc8ntTthPIFHVLZRrNex6SGG22ANC27jKz7\n"
+ "s4Y+JJiAjZMfe2+Nvne3Vd9febCokhzH1HNHOjCx4U4sv2rmmCwGpw1NwRxX7hau\n"
+ "4cKPXkhH4iCurpG3ZbooN3DRRfNRdXT/G9Klt2HlI8kvdD2PCNtAGOQOHmHzZdKL\n"
+ "V/HvPkqTCdi+OuSPS9YHeHFZZUpqUZ+7eiyjQ86KzgmNi/TQWR/6IEIYe+k4QMEC\n"
+ "ggJxAPL6qmGPkdU4spW/FM4NmFG+ApqfisFH1hU/BzGqnL6p7DdfqzcgydyyVC/3\n"
+ "/j1QsV/2mh81a/Kho1AawHghjxz2k8ekARGic62tAf7pqoZFYtdGXa9hhned+9Ic\n"
+ "3esSItAUKlhX+XlQ6mZ7XUEbt4+6AhkZtiBgIHAUpoa90M0ru/zUoudUKatTfcAa\n"
+ "x9C6Uc6kBSIx7L4anGanDHuyivf3tl23UiRH06PHvb/XFCifAb9uXjfZ4+FiZdvR\n"
+ "7SM5EROtqJSXaMu3E/ZbK3qZSA4MK53Wr7lfKsyfvoDSxbauUPkUr8qsdIoLmIn4\n"
+ "gSjlFoH7ZFZVGgTB3ZW3DdOEm+7hGVwIHRR+KyM/oQevDspHeQbxWA2gx6MUavPG\n"
+ "KQVe8dAUVvhP0jktgwCfN/A6S/1yTXYxkmDmjlHUbchyD4hv+/3Z/+5ChAtCjVX2\n"
+ "+ybqRFAkJbqGeHUonWK1w+qzordT/9i/4Qg46qjVZvfvsEyyABMCptFaV4sPMJbY\n"
+ "CUFpCLEsQ5eHa+GgTp9V0rXoITsemJjXTAUxnEUjZ6MqfQkFs/CsLAoOaD5YjGdQ\n"
+ "HmyUEw2sRn4q+iFUlB3rq7BBqVyUrPzI9FajWlKL/Tr472a35uTKEd7Rvm/unY9Y\n"
+ "P5HM5o9v2hY3jF2qgK6/ksYkrdEVL95BRIXbJ8bk44bwja4eEfAESI7Rpc31bXd+\n"
+ "iNKnmMaB2A9iyzhZgZd5cTIpLM7rUwO7+IH8sd4gIKHVYUpy/KHJQ9wPy6pwc69R\n"
+ "MJ6HljhaRtaethkwr4Ehon3fvuQcll0rXfhbh9kN+UfE+77psBPyrLtNTTke6Ucc\n"
+ "4UkXGwKCAnEA8XaYDScKT2ngP/BPE9Pt/YiDoqhfGPCVMKC3/tiErdeoCk/NW6wF\n"
+ "00PYmaZVADXZ++kjwFfXv2w52k+8E1TEorUgap2VpAMFGmAasLkey/AuOSHK2zzU\n"
+ "5BWF2gwu2vDiHDs59brcH2fxGRtF/rHkZIq+fs9uHlIXARq7Wlcuu6ZkFT+qRGOl\n"
+ "091rFAhPmYZekBQoCjUOqPtxVPoGvdpp8SDjwet8KUBPgY0WEyZ0jGwMl25pCmlL\n"
+ "DGFXgbUm1dtTCxFyTC7fcp+6GmrT5FwhCBygY7pT8oAqV1C/uyvAcfFkIZAlRZQ+\n"
+ "FTeK8Kug2XBO1ycD5LrNZEWv91bQsMt1iF3A5PFSMwjcC+s07ZiAfhx0A3HX1sWV\n"
+ "VvhP+0NdY4aI7YQbUO4eSGiYOr2JPlOIQ9ObApOjQKysTuWTkwcUWCCbsMDk5CrR\n"
+ "XBrN91X/BJkLvcax0lPNpAko+avEVwxd/MsEKg8Tcc/rZajzVxqYei+fiCB7j2ye\n"
+ "V1SfpdFbScSoKreEtUEx+3BUVLAmmCmEtsO/d3b7G8yXwakLn05J2Vhw/3yNUdm7\n"
+ "hOYXMuqrEL2TO8oFTUUKRNRml0m4ymfKrdy1VLgx7wVUNNM/RAZEGFtb1B6VHF3E\n"
+ "3AHqR22H/aepgBQkN5s+P0eMgVOiEI2KTDGkOye0UgI/+7ZtfjLjGqvqX2X9J6Kk\n"
+ "QqfNl0jOTmKl0/3zrvAR1AOrTv6EvDxsLOfh3Nlr2I/t0RCzkeb5ECSiHmK9EjrA\n"
+ "b9cED3fgil2XiY7uyRW+3TpX6PJWSYxOlIaF/6YCy/vj09nQhLdnGQzuIEQLQHJn\n"
+ "nS+YVXYR0SVzAoICcHnxma8K+dqz8NS8qHldU1O6892cMmwcXHIfRsIDaVU7PITx\n"
+ "66DoQMcVbLECWkN1iv+paOI+0mVb//WE55Gi7gtQKQyp36t1B29jg7vmk6F9k0SN\n"
+ "WRla7bx8ulRSDoIagQRDCpl51YewN2OliEDT40Uryj/EqqYG+GCnzIeVHgTKbTdP\n"
+ "lE5a6+rDJTpTdnLn/4Sgxr7JpZInEtVmAxrVmW8nkAvqpDv3HF13MmDkVYapfpwP\n"
+ "jROks/x6gLpY2hWyX0KsBg5FCuAqisc6LFEEOqhqLT2y8FAtVfKKPXaz0WyEgbjw\n"
+ "S+WAtaBOf4jHAjN+/dPQUiQN49f9X/LygurkA8pYiHyqycVuKMIw/eU4U0jro+77\n"
+ "EwEL7wWGisK7cfzzEJMokhlfHhd6IuQeBFn5OAgD5KJr8JXXQBgLb+mIbQlBgot9\n"
+ "bDeshE6OYRaCtLtsGUrLSXAaarwJ3SscJC5XZ1NwwdeLPSn+Pq7rIxlN3wIu12Cz\n"
+ "FPu+xm7Q+cbKt6JvT2Bz4Zxb56W96ZeH4A9RZ9Qe3+DdNJbqtg3w3eOCwGvVw+AG\n"
+ "2LdXUbPwhs6W5B4EFqfnDR3m/c/afdeiXnFAEvqW11aqmA4fP4ZsIXQGWUgJBcVP\n"
+ "MLbONzA/5i150bWfyxqzvRUnXbfoiVqqZMQyxlVHt9VoljZDrevhFdu0QLbg+oml\n"
+ "7LBYwUjjYsP06kAmwsLliYT3RRyLt0FJPqk5Bvb2HZyjKu453x6mqxntWD2gBfBA\n"
+ "bWE1QDbS5wxWx/rX+2lezWyLDMMJrxs0wTNBJrGfM0uhJzEs5rnljHUbhGjlKWxp\n"
+ "f40lF5uSSutYsCwZfwKCAnAiRppo64zMHxRlHyCqiN/0qGc/NLVjHeufnoDf3S5g\n"
+ "WweQhyl4hN/C0JOzo+fXAs3xs3OOvylyE9PWiJEDEXpkOl/iooH2aTNVPiUrxut3\n"
+ "OZ3mIETigC0cP23juO0ByUXfigy9NAxBLQkNblCuSeRI3WUTLTDNfwui7X+A4HVS\n"
+ "z9jPJ11tHdQRUhH8Iv3hpjBQNXxFjqiJFkBNNry0QIffYbLS+TGDzYw7sKJcj43l\n"
+ "zQSwjky83Jt5o2u/js53dw2/uXdHFzRC2ieZzmZLuUQ7GY0u+ukluEnKYT0GPbyw\n"
+ "r/ptxT91NAjoDB1d8o7/rrCSXAhydI3pWPcUni87mXYSqHRUS2lGs1BBJN87hvVe\n"
+ "cX2Ka6Oe6ic71D3ORg7ArP1M8f7KqzKDRs2tMPCFd2gVcLlFUV3QNXK0NGSRb2TU\n"
+ "6bQQECGtveJAN9Ha9UshBPSkuMrPN3Quf9pgLqDNVoUU+GCb883nzwL0SFpal/zj\n"
+ "A1WbBjlj76A+d1W+PQy/WPoiLjDZZerJbXWbG/IukV40b28Db1FP7efw5qUutPdI\n"
+ "sgRAUBbjcovq3pqWcLddxftbdl7wTAecI6Z4fU+M89TSf00CPK9h5ZjBcuc9KcKK\n"
+ "zpUndDvobese6+qsvwCZ4i3ub22AsznP08E/LncH8H+cN0O/3e/74DPi8E90pZaV\n"
+ "V6gKaLjZ4n18tMM7YWtftyMhB6CKyatONEMiEIEZE16rtTLbncVwVWYF0mAbKvVZ\n"
+ "9ElLFOsP5mUgux3pcDPgkE6NiUueIccZMkn+WEAlapRRAxOMaa1l9Viu3vF5lWs+\n"
+ "JBa9X8tVF6hbqMDwCLWYwb8CggJxAMwL6SAeYP9kjq7tkk+TmZVTHDlV4Yw9kWAY\n"
+ "a9etQ4vJibIkyzrfJXIVmsY+df7m3uaNWnmNe3VuZxLv04sPyL8OMu+PIUct3174\n"
+ "sNYN5AjmjmuBLvs1vBF8VvQ8+TsH5HjzXYcSQM3OJ1G/GPjsptqHj/w3kLmHsQgW\n"
+ "Fps5OXWgjQEsVnrRL/Z5D6s4z8OPMRN3KAqb1k4Cp5m32f9bzBIHEPdHc1JLFx0X\n"
+ "4xFQ4m1Dfbab8/VGnm9mS67zDtJWjxUSeTlR84hONXqzPke5h/W4QGrUgHutm0zb\n"
+ "ch/CufhsxF6RjiK7EuKqZWZDDj0uxqOlI6X/Exf53KZRLwJlmhdaED5LP8BA2IHt\n"
+ "nRL7F0uGfaLMP5CCDyN36GjmrlCEilwQQSpJF6QnYEEkLaxjksqTzQ54ZtboLf7O\n"
+ "HY0iYN1fmuWpf41ljljHe5H58vKDr/oQkANfz6I2lBCdmz7GkmBPmed8XHJSWqs8\n"
+ "41tyHXPBAQj+1MQtsW0xjl2ajoF7mwrRVHQL0xLVQcwmXqNQyMJ905WRMBhLShRR\n"
+ "hXipo7nDHDE8jiRyTZGNIg12D6tDLD5tmPXK5Hmzn4pLPWcN6Q9UvWn0PWql31sx\n"
+ "3dNqZ6PlYyh0b92+pymfDF3TBvZI2PeOICQsiFnqwhMyrV0Ojwt/QxIFudJJf2u4\n"
+ "7EA14n87SVjMhF1l6BoP4wdqt21uU0UhpyFACCoH2arFFulGJjC2/d5drNq7hSef\n"
+ "LNMz9MPPkamMWQ6i7vlTlUjAOtIfukre/fG4qyVclTaAiKx6EXt98DSBjPLoMJO7\n"
+ "3sczn4+LAjtXDT3RX0aUWr+JQABd+g==\n" "-----END PRIVATE KEY-----\n";
static char server_cert_repro_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIILHTCCBiWgAwIBAgIJAKyNy9vjy7TCMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\n"
- "BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\n"
- "aWRnaXRzIFB0eSBMdGQwHhcNMTcwOTEzMTAzNzU0WhcNMTcwOTE0MTAzNzU0WjBF\n"
- "MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\n"
- "ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIFAjANBgkqhkiG9w0BAQEFAAOCBO8AMIIE\n"
- "6gKCBOEA5S6KQbITBETmLZ0t2TNNrkR9HRTK3soQjbqF+RDzrGUYE2xlzN5sg6gl\n"
- "riIhUX9dDqEh/Ms2k+J2Erb8/dQ6NyTP6h7DV8kD+UJeDUJH6fbJfILraINWN7L1\n"
- "jOn6Zf5mUz0ywCXFvhz4t+RkrQoJ5V4ulPCS5OJpo7iLdJvzvecdBGdKpgvEZ+yI\n"
- "5PFRx9uHzF93Frvi0k0M61gBqAWVnJeeBAZtNxolH/djFuQj9yaaE6v3MCeuW9dN\n"
- "xhguQhIZRVmikykCfBEnLqKHdwFMuybzddyiJPpcPXCex7cOxj3vIsc67DWgSMiS\n"
- "IgBZEvIlmI31BiZInzOVx3pzAMeVBuoXR1r25Kyy+dA6cuOrDyb8zXzImPbpFTmh\n"
- "DFUpV8B5LsDFP2cciS+sP698UvsR3VkIQwYCxR+MyH1J9+nhLQ5BkO/Qf8L8euDN\n"
- "u5pvlSxVmkvepcH6ZpJnVfeNFdKE0VTGKiGHwHxV+kq/lOhmBe2Ok3tLzCzUIx8H\n"
- "gkd9/tYlDuFNtUGDQOnmvBbO8LutCfYvutYGCaPkzd4UD4AUvukfGSDewzQOi0VQ\n"
- "dHULSyGIUu7T15t7HTnz9i+9in7c5i2HmJvbQ0sfAVfRDesGNxnz/GCe0UAMElqM\n"
- "BEC35XjFGyP2QHiLCQKr6HU0LVEw5s11pJNd9hw3u24rfiCGEqFJe9Hzq+LCWhfn\n"
- "Iz3VjOlow1Ke7ksv/z92WYH4SNeE1lyBIf9Hjbxz+baFnLUSl29A+/Q+QOHzc+/Y\n"
- "fNNn8Vg31IODpfqqC/DLOjSN7NS0ww6iSE8DECxRbrlBr1A9MfVj9Fx5e5tmHHUI\n"
- "NVNST+75jF7KGv81XIKL8CBYYgOvVJpbvAYqRJ/cXkI2HcgTATETGrFI14ELfTqC\n"
- "7+N1Ki1c43dQLUVEWGURDk/OoGFOd0hxz7zskwNlOGcjjdFlcz0S6R64PvWIWi/W\n"
- "814HKrStd2XY+egd4x4J84HtzJo2LyZ7RrQhpdg99dBWhuxloO++RL4diOJ6eZ17\n"
- "APXZ0qskhcwD96yfy+aVIm0PkA7mJzcAE70buexsd5IJjKzLyqKLnXKWJa3pCVM4\n"
- "0uj35rBzwmMfe66pngrxmZvDuD5sQtDQ69TJ07gRo19SDk7iAq8x36Az2tO4cYTs\n"
- "EN+cGtWvml4EBj926kyEqrfVVevw1mdTTbLowG23ftqEmGIRPXuEGQgp6VkMNXJp\n"
- "8MlYbwFbE85Hw8cAw2ATY/i/7hvAWqArgLQNXsQwl4iwcLkvX5MLjtujSaAsf4VY\n"
- "oerCKnu2EtqnLmyYgcjHlGKjzvzezKySv6bJu1hvSW8utsRGLpX1NvHWDhXY7RS2\n"
- "lGOO9jKOkcbYekfR//ebXA1+53ZjzLWJAVCfdUMhsFy4/0KM5R+8KFc5u5HWZjub\n"
- "AruGns18pT5yu3E1cM07JN5qLnCrDLIYfUnfm2sclRa15b57ThpK1NBXR4dmheO3\n"
- "gm+fmoLtwMOjxyvr/V7FERRMOsaqiKfWibGOlZIzOM3IJa6wyWwG7o6M0QGaew+V\n"
- "z7Ug3wQBu23XmTggOA2VBEMWNh0ScOjniiznJWhHgsVtSygVlv6GG8qP9LSvTQ/p\n"
- "pP1lDil3gQOOxfjhmSz9kiczFsSS7ry9V2zMx5P567Tfps4INc2y3cLl/V1BnF0A\n"
- "gy9sN0ghAgMBAAGjUDBOMB0GA1UdDgQWBBT27j2hLGIaF0HRrGTPPxyYPcZiVDAf\n"
- "BgNVHSMEGDAWgBT27j2hLGIaF0HRrGTPPxyYPcZiVDAMBgNVHRMEBTADAQH/MA0G\n"
- "CSqGSIb3DQEBCwUAA4IE4QABjOzAO+aLbSvGPc5J0dFJV2upqv/lIQuwYkYwiDYn\n"
- "jYiKvdldmx9DA4e6l+yE/7yAphz1qviySPzIDl3zsBxoTlUd1ghsm4R7euC827e8\n"
- "MsJDMK8CfsXepqcvca2nrNpakDZ+z+e/y+UoAFiDMZhLX8N0a1+5+cQrONMMqEWa\n"
- "GRV+SlH2dJHfi1aG981Br5pfoJmQbWRjj8sLM1e2EIe3NovcVDnS//7T3PcDINRM\n"
- "M341onBL93/yv/iBevekTkx3FnjLF7qJRRqKX5bc0+H5Fe0sV7ObIEAAFyrRMp/l\n"
- "A3AYCZ5vu9ueWdmmyuBZTro6eWyQN4G1WkYVYQMpa8JwOrclpSaa/d5f16u4wRLe\n"
- "JguamO/qMbxpaVJPSXXiX+dwyaVow6l7s9O1+jrYDVhJACVP0OIfLtPeBZlbo4T9\n"
- "B2XeFbgOZXT9gfz/vsq+pH9rBKrtvXzYAWEThlqjh1qNKfmG3bYwSJhsL5NnVOae\n"
- "xZ8VveeDV05VfIQX3NpqK9gxoVMlbMX+zEdRpBak8d4P+wKMrLm2Vg+1MtfMsDes\n"
- "bi0i2oHH2ESvY7elv1YTgORXjz6HmzA3L7oaISNgIoxbzVVu1hhBTD4MZXaFHGbW\n"
- "E9IpEhHPNK6UHetbxJwN2X2lONEOwoDDzXerrmIjn6yHJetLOBTb0IAdaOvzEmyP\n"
- "k4lhXJ9uOd0hdSqAIgKiFrrYNnXvYGMwItQPyI0KXN2e4B/kgZX9L/4SQwIpJuHy\n"
- "Voit0WZVCAhIxA4SkYi7X/5qW2t/Kg4kfUxWO6itq8QChikSatkyLVtv9SOksQnm\n"
- "2+alnBWhEziN7T4teM1qvj+Deiv3EYPaLBw68jJgKJ55lTt8vbHDWw07WUX7xP6C\n"
- "BVKPh8fDH/j95Uyfsv5WxKBfjUFYD/c2R33AClST9iWCmZn2LJm66rzOx/dZ19eH\n"
- "BJHeooCCzmk9BMrSLqcuzBaUsKjiKrlYeHa+klqgYhhDQxdxJ1GRUZbEywVc1+FL\n"
- "fnDK2edISlUDZ2FsOK+X+bf4g5UhQzhnJZwTZhH3m35tM7AvX3ZpRmSoApbAEbqM\n"
- "ndj3v4z7l/VYve/waZjVwLL+lzKTgOKh91RxzJcs34j/pvi9Srf7nif6O9Kf+F7z\n"
- "bKKdN4RAypUxv9v0EjSolQ0lpUNQBJNJeepgqLzVNdDaEOAP0g/5LsFscpfawo80\n"
- "KRCIJH1+C0OqZpHcu9w99l0/NsVOb50+IUhe1gA+wZDC8puODmacWNCctXG9cojZ\n"
- "lcagSLUvh1jt/t6fsl2ObyL64+1RPrvi1A11mtqbUxS4iTa6l45yth+IjbpexVwh\n"
- "YJUKTfBnWzS1RNBPJwsn6wRuvIWZT/VdQ5q/lTCWvovKPKg/gnwrlqqErVXgdgyG\n"
- "YGdChbh3R4jYgHlUASa/xo5Nes+X2DRy+2OzaHrDKdo2pxwqMtzQjogPVTBOG0r1\n"
- "iCNaCF9hLjJakrxsaoLBlb90bJ1ZrlYtqNXwKZphbLvgVELsPCghrwhbV9wdP6Le\n"
- "zMnPLeicTSDPiq2nkDUWlbDd5oOhrTORf8gWRuPJVJ+noEkAkQEZkGHRnt3ouio6\n"
- "P0BTNfA6e2quOiZ+8YSvWwOlwO2I0z8vy1IPQYIApX3S0UCPSep33u3KdL28O68z\n"
- "pNVz4Hd2IpWckRR5ahdK00I=\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIILHTCCBiWgAwIBAgIJAKyNy9vjy7TCMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV\n"
+ "BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\n"
+ "aWRnaXRzIFB0eSBMdGQwHhcNMTcwOTEzMTAzNzU0WhcNMTcwOTE0MTAzNzU0WjBF\n"
+ "MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50\n"
+ "ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIFAjANBgkqhkiG9w0BAQEFAAOCBO8AMIIE\n"
+ "6gKCBOEA5S6KQbITBETmLZ0t2TNNrkR9HRTK3soQjbqF+RDzrGUYE2xlzN5sg6gl\n"
+ "riIhUX9dDqEh/Ms2k+J2Erb8/dQ6NyTP6h7DV8kD+UJeDUJH6fbJfILraINWN7L1\n"
+ "jOn6Zf5mUz0ywCXFvhz4t+RkrQoJ5V4ulPCS5OJpo7iLdJvzvecdBGdKpgvEZ+yI\n"
+ "5PFRx9uHzF93Frvi0k0M61gBqAWVnJeeBAZtNxolH/djFuQj9yaaE6v3MCeuW9dN\n"
+ "xhguQhIZRVmikykCfBEnLqKHdwFMuybzddyiJPpcPXCex7cOxj3vIsc67DWgSMiS\n"
+ "IgBZEvIlmI31BiZInzOVx3pzAMeVBuoXR1r25Kyy+dA6cuOrDyb8zXzImPbpFTmh\n"
+ "DFUpV8B5LsDFP2cciS+sP698UvsR3VkIQwYCxR+MyH1J9+nhLQ5BkO/Qf8L8euDN\n"
+ "u5pvlSxVmkvepcH6ZpJnVfeNFdKE0VTGKiGHwHxV+kq/lOhmBe2Ok3tLzCzUIx8H\n"
+ "gkd9/tYlDuFNtUGDQOnmvBbO8LutCfYvutYGCaPkzd4UD4AUvukfGSDewzQOi0VQ\n"
+ "dHULSyGIUu7T15t7HTnz9i+9in7c5i2HmJvbQ0sfAVfRDesGNxnz/GCe0UAMElqM\n"
+ "BEC35XjFGyP2QHiLCQKr6HU0LVEw5s11pJNd9hw3u24rfiCGEqFJe9Hzq+LCWhfn\n"
+ "Iz3VjOlow1Ke7ksv/z92WYH4SNeE1lyBIf9Hjbxz+baFnLUSl29A+/Q+QOHzc+/Y\n"
+ "fNNn8Vg31IODpfqqC/DLOjSN7NS0ww6iSE8DECxRbrlBr1A9MfVj9Fx5e5tmHHUI\n"
+ "NVNST+75jF7KGv81XIKL8CBYYgOvVJpbvAYqRJ/cXkI2HcgTATETGrFI14ELfTqC\n"
+ "7+N1Ki1c43dQLUVEWGURDk/OoGFOd0hxz7zskwNlOGcjjdFlcz0S6R64PvWIWi/W\n"
+ "814HKrStd2XY+egd4x4J84HtzJo2LyZ7RrQhpdg99dBWhuxloO++RL4diOJ6eZ17\n"
+ "APXZ0qskhcwD96yfy+aVIm0PkA7mJzcAE70buexsd5IJjKzLyqKLnXKWJa3pCVM4\n"
+ "0uj35rBzwmMfe66pngrxmZvDuD5sQtDQ69TJ07gRo19SDk7iAq8x36Az2tO4cYTs\n"
+ "EN+cGtWvml4EBj926kyEqrfVVevw1mdTTbLowG23ftqEmGIRPXuEGQgp6VkMNXJp\n"
+ "8MlYbwFbE85Hw8cAw2ATY/i/7hvAWqArgLQNXsQwl4iwcLkvX5MLjtujSaAsf4VY\n"
+ "oerCKnu2EtqnLmyYgcjHlGKjzvzezKySv6bJu1hvSW8utsRGLpX1NvHWDhXY7RS2\n"
+ "lGOO9jKOkcbYekfR//ebXA1+53ZjzLWJAVCfdUMhsFy4/0KM5R+8KFc5u5HWZjub\n"
+ "AruGns18pT5yu3E1cM07JN5qLnCrDLIYfUnfm2sclRa15b57ThpK1NBXR4dmheO3\n"
+ "gm+fmoLtwMOjxyvr/V7FERRMOsaqiKfWibGOlZIzOM3IJa6wyWwG7o6M0QGaew+V\n"
+ "z7Ug3wQBu23XmTggOA2VBEMWNh0ScOjniiznJWhHgsVtSygVlv6GG8qP9LSvTQ/p\n"
+ "pP1lDil3gQOOxfjhmSz9kiczFsSS7ry9V2zMx5P567Tfps4INc2y3cLl/V1BnF0A\n"
+ "gy9sN0ghAgMBAAGjUDBOMB0GA1UdDgQWBBT27j2hLGIaF0HRrGTPPxyYPcZiVDAf\n"
+ "BgNVHSMEGDAWgBT27j2hLGIaF0HRrGTPPxyYPcZiVDAMBgNVHRMEBTADAQH/MA0G\n"
+ "CSqGSIb3DQEBCwUAA4IE4QABjOzAO+aLbSvGPc5J0dFJV2upqv/lIQuwYkYwiDYn\n"
+ "jYiKvdldmx9DA4e6l+yE/7yAphz1qviySPzIDl3zsBxoTlUd1ghsm4R7euC827e8\n"
+ "MsJDMK8CfsXepqcvca2nrNpakDZ+z+e/y+UoAFiDMZhLX8N0a1+5+cQrONMMqEWa\n"
+ "GRV+SlH2dJHfi1aG981Br5pfoJmQbWRjj8sLM1e2EIe3NovcVDnS//7T3PcDINRM\n"
+ "M341onBL93/yv/iBevekTkx3FnjLF7qJRRqKX5bc0+H5Fe0sV7ObIEAAFyrRMp/l\n"
+ "A3AYCZ5vu9ueWdmmyuBZTro6eWyQN4G1WkYVYQMpa8JwOrclpSaa/d5f16u4wRLe\n"
+ "JguamO/qMbxpaVJPSXXiX+dwyaVow6l7s9O1+jrYDVhJACVP0OIfLtPeBZlbo4T9\n"
+ "B2XeFbgOZXT9gfz/vsq+pH9rBKrtvXzYAWEThlqjh1qNKfmG3bYwSJhsL5NnVOae\n"
+ "xZ8VveeDV05VfIQX3NpqK9gxoVMlbMX+zEdRpBak8d4P+wKMrLm2Vg+1MtfMsDes\n"
+ "bi0i2oHH2ESvY7elv1YTgORXjz6HmzA3L7oaISNgIoxbzVVu1hhBTD4MZXaFHGbW\n"
+ "E9IpEhHPNK6UHetbxJwN2X2lONEOwoDDzXerrmIjn6yHJetLOBTb0IAdaOvzEmyP\n"
+ "k4lhXJ9uOd0hdSqAIgKiFrrYNnXvYGMwItQPyI0KXN2e4B/kgZX9L/4SQwIpJuHy\n"
+ "Voit0WZVCAhIxA4SkYi7X/5qW2t/Kg4kfUxWO6itq8QChikSatkyLVtv9SOksQnm\n"
+ "2+alnBWhEziN7T4teM1qvj+Deiv3EYPaLBw68jJgKJ55lTt8vbHDWw07WUX7xP6C\n"
+ "BVKPh8fDH/j95Uyfsv5WxKBfjUFYD/c2R33AClST9iWCmZn2LJm66rzOx/dZ19eH\n"
+ "BJHeooCCzmk9BMrSLqcuzBaUsKjiKrlYeHa+klqgYhhDQxdxJ1GRUZbEywVc1+FL\n"
+ "fnDK2edISlUDZ2FsOK+X+bf4g5UhQzhnJZwTZhH3m35tM7AvX3ZpRmSoApbAEbqM\n"
+ "ndj3v4z7l/VYve/waZjVwLL+lzKTgOKh91RxzJcs34j/pvi9Srf7nif6O9Kf+F7z\n"
+ "bKKdN4RAypUxv9v0EjSolQ0lpUNQBJNJeepgqLzVNdDaEOAP0g/5LsFscpfawo80\n"
+ "KRCIJH1+C0OqZpHcu9w99l0/NsVOb50+IUhe1gA+wZDC8puODmacWNCctXG9cojZ\n"
+ "lcagSLUvh1jt/t6fsl2ObyL64+1RPrvi1A11mtqbUxS4iTa6l45yth+IjbpexVwh\n"
+ "YJUKTfBnWzS1RNBPJwsn6wRuvIWZT/VdQ5q/lTCWvovKPKg/gnwrlqqErVXgdgyG\n"
+ "YGdChbh3R4jYgHlUASa/xo5Nes+X2DRy+2OzaHrDKdo2pxwqMtzQjogPVTBOG0r1\n"
+ "iCNaCF9hLjJakrxsaoLBlb90bJ1ZrlYtqNXwKZphbLvgVELsPCghrwhbV9wdP6Le\n"
+ "zMnPLeicTSDPiq2nkDUWlbDd5oOhrTORf8gWRuPJVJ+noEkAkQEZkGHRnt3ouio6\n"
+ "P0BTNfA6e2quOiZ+8YSvWwOlwO2I0z8vy1IPQYIApX3S0UCPSep33u3KdL28O68z\n"
+ "pNVz4Hd2IpWckRR5ahdK00I=\n" "-----END CERTIFICATE-----\n";
-static gnutls_datum_t server_repro_key = { (void*)server_key_repro_pem, sizeof(server_key_repro_pem)-1 };
-static gnutls_datum_t server_repro_cert = { (void*)server_cert_repro_pem, sizeof(server_cert_repro_pem)-1 };
-static gnutls_datum_t client_repro_key = { (void*)client_key_repro_pem, sizeof(client_key_repro_pem)-1 };
-static gnutls_datum_t client_repro_cert = { (void*)client_cert_repro_pem, sizeof(client_cert_repro_pem)-1 };
+static gnutls_datum_t server_repro_key =
+ { (void *)server_key_repro_pem, sizeof(server_key_repro_pem) - 1 };
+static gnutls_datum_t server_repro_cert =
+ { (void *)server_cert_repro_pem, sizeof(server_cert_repro_pem) - 1 };
+static gnutls_datum_t client_repro_key =
+ { (void *)client_key_repro_pem, sizeof(client_key_repro_pem) - 1 };
+static gnutls_datum_t client_repro_cert =
+ { (void *)client_cert_repro_pem, sizeof(client_cert_repro_pem) - 1 };
-#endif /* GNUTLS_TESTS_CERT_REPRO_20170915_H */
+#endif /* GNUTLS_TESTS_CERT_REPRO_20170915_H */
diff --git a/tests/cert-status.c b/tests/cert-status.c
index 61d3272f0c..20cb767297 100644
--- a/tests/cert-status.c
+++ b/tests/cert-status.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "utils.h"
-#include "cert-common.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <assert.h>
+# include <signal.h>
+
+# include "utils.h"
+# include "cert-common.h"
/* This program tests whether the GNUTLS_CERT_* flags
* work as expected.
@@ -64,7 +64,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -84,9 +84,7 @@ static void client(int fd, const char *prio)
gnutls_init(&session, GNUTLS_CLIENT);
- ret =
- gnutls_priority_set_direct(session,
- prio, &p);
+ ret = gnutls_priority_set_direct(session, prio, &p);
if (ret < 0) {
fail("error in setting priority: %s\n", p);
exit(1);
@@ -128,7 +126,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
static void server(int fd, const char *prio, unsigned status, int expected)
{
int ret;
@@ -143,8 +140,7 @@ static void server(int fd, const char *prio, unsigned status, int expected)
gnutls_init(&session, GNUTLS_SERVER);
- assert(gnutls_priority_set_direct(session,
- prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
if (debug) {
gnutls_global_set_log_function(server_log_func);
@@ -153,8 +149,7 @@ static void server(int fd, const char *prio, unsigned status, int expected)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -169,11 +164,11 @@ static void server(int fd, const char *prio, unsigned status, int expected)
if (ret == expected) {
if (debug)
success
- ("server: Handshake finished as expected (%d)\n", ret);
+ ("server: Handshake finished as expected (%d)\n",
+ ret);
goto finish;
} else {
- fail("expected %d, handshake returned %d\n", expected,
- ret);
+ fail("expected %d, handshake returned %d\n", expected, ret);
}
if (debug)
@@ -183,7 +178,7 @@ static void server(int fd, const char *prio, unsigned status, int expected)
success("server: TLS version is: %s\n",
gnutls_protocol_get_name
(gnutls_protocol_get_version(session)));
- finish:
+ finish:
close(fd);
gnutls_deinit(session);
@@ -235,23 +230,27 @@ static void ch_handler(int sig)
return;
}
-
void doit(void)
{
signal(SIGCHLD, ch_handler);
signal(SIGPIPE, SIG_IGN);
- start("NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA", GNUTLS_CERT_IGNORE, 0);
- start("NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA", GNUTLS_CERT_REQUEST, 0);
- start("NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA", GNUTLS_CERT_REQUIRE, GNUTLS_E_NO_CERTIFICATE_FOUND);
+ start("NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA",
+ GNUTLS_CERT_IGNORE, 0);
+ start("NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA",
+ GNUTLS_CERT_REQUEST, 0);
+ start("NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA",
+ GNUTLS_CERT_REQUIRE, GNUTLS_E_NO_CERTIFICATE_FOUND);
start("NORMAL:-VERS-ALL:+VERS-TLS1.2", GNUTLS_CERT_IGNORE, 0);
start("NORMAL:-VERS-ALL:+VERS-TLS1.2", GNUTLS_CERT_REQUEST, 0);
- start("NORMAL:-VERS-ALL:+VERS-TLS1.2", GNUTLS_CERT_REQUIRE, GNUTLS_E_NO_CERTIFICATE_FOUND);
+ start("NORMAL:-VERS-ALL:+VERS-TLS1.2", GNUTLS_CERT_REQUIRE,
+ GNUTLS_E_NO_CERTIFICATE_FOUND);
start("NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_CERT_IGNORE, 0);
start("NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_CERT_REQUEST, 0);
- start("NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_CERT_REQUIRE, GNUTLS_E_CERTIFICATE_REQUIRED);
+ start("NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_CERT_REQUIRE,
+ GNUTLS_E_CERTIFICATE_REQUIRED);
start("NORMAL", GNUTLS_CERT_IGNORE, 0);
start("NORMAL", GNUTLS_CERT_REQUEST, 0);
diff --git a/tests/cert.c b/tests/cert.c
index de93b1fbe1..199d87d907 100644
--- a/tests/cert.c
+++ b/tests/cert.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <gnutls/gnutls.h>
@@ -39,7 +39,7 @@
#define CERT_DIR "certs-interesting"
-static int getnextcert(DIR **dirp, gnutls_datum_t *der, int *exp_ret)
+static int getnextcert(DIR ** dirp, gnutls_datum_t * der, int *exp_ret)
{
struct dirent *d;
char path[256];
@@ -64,14 +64,15 @@ static int getnextcert(DIR **dirp, gnutls_datum_t *der, int *exp_ret)
d = readdir(*dirp);
if (d != NULL
#ifdef _DIRENT_HAVE_D_TYPE
- && d->d_type == DT_REG
+ && d->d_type == DT_REG
#endif
- ) {
+ ) {
if (strstr(d->d_name, ".der") == 0)
continue;
if (strstr(d->d_name, ".err") != 0)
continue;
- snprintf(path, sizeof(path), "%s/%s", cert_dir, d->d_name);
+ snprintf(path, sizeof(path), "%s/%s", cert_dir,
+ d->d_name);
success("Loading %s\n", path);
ret = gnutls_load_file(path, der);
@@ -79,23 +80,24 @@ static int getnextcert(DIR **dirp, gnutls_datum_t *der, int *exp_ret)
return -1;
}
- snprintf(path, sizeof(path), "%s/%s.err", cert_dir, d->d_name);
+ snprintf(path, sizeof(path), "%s/%s.err", cert_dir,
+ d->d_name);
success("Loading errfile %s\n", path);
ret = gnutls_load_file(path, &local);
- if (ret < 0) { /* not found assume success */
+ if (ret < 0) { /* not found assume success */
*exp_ret = 0;
} else {
- *exp_ret = atoi((char*)local.data);
+ *exp_ret = atoi((char *)local.data);
success("expecting error code %d\n", *exp_ret);
gnutls_free(local.data);
}
return 0;
}
- } while(d != NULL);
+ } while (d != NULL);
closedir(*dirp);
- return -1; /* finished */
+ return -1; /* finished */
}
void doit(void)
@@ -109,12 +111,13 @@ void doit(void)
if (ret < 0)
fail("init %d\n", ret);
- while (getnextcert(&dirp, &der, &exp_ret)==0) {
+ while (getnextcert(&dirp, &der, &exp_ret) == 0) {
ret = gnutls_x509_crt_init(&cert);
if (ret < 0)
fail("crt_init %d\n", ret);
- gnutls_x509_crt_set_flags(cert, GNUTLS_X509_CRT_FLAG_IGNORE_SANITY);
+ gnutls_x509_crt_set_flags(cert,
+ GNUTLS_X509_CRT_FLAG_IGNORE_SANITY);
ret = gnutls_x509_crt_import(cert, &der, GNUTLS_X509_FMT_DER);
if (ret != exp_ret) {
@@ -124,7 +127,9 @@ void doit(void)
if (ret == 0) {
/* attempt to fully decode */
gnutls_datum_t out;
- ret = gnutls_x509_crt_print(cert, GNUTLS_CRT_PRINT_FULL, &out);
+ ret =
+ gnutls_x509_crt_print(cert, GNUTLS_CRT_PRINT_FULL,
+ &out);
if (ret < 0) {
fail("print: %s\n", gnutls_strerror(ret));
}
diff --git a/tests/cert_verify_inv_utf8.c b/tests/cert_verify_inv_utf8.c
index 4f90c350a8..497a4096bf 100644
--- a/tests/cert_verify_inv_utf8.c
+++ b/tests/cert_verify_inv_utf8.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -83,60 +83,75 @@ static void auto_parse(void)
if (debug)
gnutls_global_set_log_level(6);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
- assert(gnutls_privkey_init(&key)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
+ assert(gnutls_privkey_init(&key) >= 0);
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
- pcert_list_size = sizeof(pcert_list)/sizeof(pcert_list[0]);
+ pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]);
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &server_ca3_localhost_cert_chain, GNUTLS_X509_FMT_PEM, 0);
+ &server_ca3_localhost_cert_chain,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
- fail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
- ret = gnutls_privkey_import_x509_raw(key, &server_ca3_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0) {
fail("error in key import: %s\n", gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(x509_cred, NULL, 0, pcert_list,
- pcert_list_size, key);
+ pcert_list_size, key);
if (ret < 0) {
- fail("error in gnutls_certificate_set_key: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_certificate_set_key: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
/* set the key with UTF8 names */
- assert(gnutls_privkey_init(&second_key)>=0);
+ assert(gnutls_privkey_init(&second_key) >= 0);
pcert_list_size = 2;
ret = gnutls_pcert_list_import_x509_raw(second_pcert, &pcert_list_size,
- &server_ca3_localhost_inv_utf8_cert, GNUTLS_X509_FMT_PEM, 0);
+ &server_ca3_localhost_inv_utf8_cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
- fail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
- ret = gnutls_privkey_import_x509_raw(second_key, &server_ca3_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(second_key, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0) {
fail("error in key import: %s\n", gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(x509_cred, NULL, 0, second_pcert,
- 1, second_key);
+ 1, second_key);
if (ret < 0) {
- fail("error in gnutls_certificate_set_key: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_certificate_set_key: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- test_cli_serv_expect(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", 0, 0);
+ test_cli_serv_expect(x509_cred, clicred, "NORMAL", "NORMAL",
+ "localhost", 0, 0);
test_cli_serv_vf(x509_cred, clicred, "NORMAL", "www.νίκοσ.com");
test_cli_serv_vf(x509_cred, clicred, "NORMAL", "www.νίκος.com");
- test_cli_serv_expect(x509_cred, clicred, "NORMAL", "NORMAL", "raw:www.νίκος.com", GNUTLS_E_RECEIVED_DISALLOWED_NAME, GNUTLS_E_AGAIN);
+ test_cli_serv_expect(x509_cred, clicred, "NORMAL", "NORMAL",
+ "raw:www.νίκος.com",
+ GNUTLS_E_RECEIVED_DISALLOWED_NAME, GNUTLS_E_AGAIN);
gnutls_certificate_free_credentials(x509_cred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/certificate_set_x509_crl.c b/tests/certificate_set_x509_crl.c
index f79f5d0e3c..89c72acf67 100644
--- a/tests/certificate_set_x509_crl.c
+++ b/tests/certificate_set_x509_crl.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -80,21 +80,21 @@ int main(void)
rc = gnutls_x509_crl_init(&crl);
if (rc) {
printf("gnutls_x509_crl_init rc %d: %s\n", rc,
- gnutls_strerror(rc));
+ gnutls_strerror(rc));
return 1;
}
rc = gnutls_x509_crl_import(crl, &crldatum, GNUTLS_X509_FMT_PEM);
if (rc) {
printf("gnutls_x509_crl_import rc %d: %s\n", rc,
- gnutls_strerror(rc));
+ gnutls_strerror(rc));
return 1;
}
rc = gnutls_certificate_set_x509_crl(crt, &crl, 1);
if (rc < 0) {
printf("gnutls_certificate_set_x509_crl rc %d: %s\n",
- rc, gnutls_strerror(rc));
+ rc, gnutls_strerror(rc));
return 1;
}
diff --git a/tests/certuniqueid.c b/tests/certuniqueid.c
index 2284a16542..5351ab677e 100644
--- a/tests/certuniqueid.c
+++ b/tests/certuniqueid.c
@@ -22,7 +22,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include "gnutls/gnutls.h"
@@ -34,148 +34,148 @@ void doit(void)
int ret;
unsigned char der[] = {
0x30, 0x82, 0x03, 0x00, 0x30, 0x82, 0x01, 0xec, 0xa0, 0x03,
- 0x02, 0x01,
+ 0x02, 0x01,
0x02, 0x02, 0x10, 0xbd,
0x76, 0xdf, 0x42, 0x47, 0x0a, 0x00, 0x8d, 0x47, 0x3e, 0x74,
- 0x3f, 0xa1,
+ 0x3f, 0xa1,
0xdc, 0x8b, 0xbd, 0x30,
0x09, 0x06, 0x05, 0x2b, 0x0e, 0x03, 0x02, 0x1d, 0x05, 0x00,
- 0x30, 0x2d,
+ 0x30, 0x2d,
0x31, 0x2b, 0x30, 0x29,
0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x22, 0x77, 0x00, 0x32,
- 0x00, 0x6b,
+ 0x00, 0x6b,
0x00, 0x38, 0x00, 0x72,
0x00, 0x32, 0x00, 0x2e, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x74,
- 0x00, 0x77,
+ 0x00, 0x77,
0x00, 0x73, 0x00, 0x2e,
0x00, 0x6e, 0x00, 0x65, 0x00, 0x74, 0x00, 0x00, 0x00, 0x30,
- 0x1e, 0x17,
+ 0x1e, 0x17,
0x0d, 0x31, 0x30, 0x30,
0x34, 0x32, 0x38, 0x31, 0x31, 0x34, 0x31, 0x35, 0x34, 0x5a,
- 0x17, 0x0d,
+ 0x17, 0x0d,
0x31, 0x31, 0x30, 0x34,
0x32, 0x38, 0x31, 0x31, 0x34, 0x31, 0x35, 0x34, 0x5a, 0x30,
- 0x2d, 0x31,
+ 0x2d, 0x31,
0x2b, 0x30, 0x29, 0x06,
0x03, 0x55, 0x04, 0x03, 0x13, 0x22, 0x77, 0x00, 0x32, 0x00,
- 0x6b, 0x00,
+ 0x6b, 0x00,
0x38, 0x00, 0x72, 0x00,
0x32, 0x00, 0x2e, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x74, 0x00,
- 0x77, 0x00,
+ 0x77, 0x00,
0x73, 0x00, 0x2e, 0x00,
0x6e, 0x00, 0x65, 0x00, 0x74, 0x00, 0x00, 0x00, 0x30, 0x82,
- 0x01, 0x22,
+ 0x01, 0x22,
0x30, 0x0d, 0x06, 0x09,
0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
- 0x00, 0x03,
+ 0x00, 0x03,
0x82, 0x01, 0x0f, 0x00,
0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xaa,
- 0xd7, 0x32,
+ 0xd7, 0x32,
0x26, 0xd7, 0xfc, 0x69,
0x57, 0x4a, 0x55, 0x08, 0x2b, 0x97, 0xc1, 0x5b, 0x90, 0xfd,
- 0xe8, 0xf5,
+ 0xe8, 0xf5,
0xf7, 0x9e, 0x7d, 0x34,
0xce, 0xe9, 0xbb, 0x38, 0xa0, 0x9f, 0xec, 0x84, 0x86, 0x3e,
- 0x47, 0x2e,
+ 0x47, 0x2e,
0x71, 0xd7, 0xc3, 0xbf,
0x89, 0xf3, 0x80, 0xb5, 0x77, 0x80, 0xd3, 0xb0, 0x56, 0x6b,
- 0x9c, 0xf4,
+ 0x9c, 0xf4,
0xd3, 0x42, 0x2b, 0x26,
0x01, 0x5c, 0x42, 0xef, 0xf6, 0x51, 0x5a, 0xaa, 0x55, 0x6b,
- 0x30, 0xd3,
+ 0x30, 0xd3,
0x2c, 0xdc, 0xde, 0x36,
0x4d, 0xdd, 0xf3, 0x5f, 0x59, 0xba, 0x57, 0xd8, 0x39, 0x0f,
- 0x5b, 0xd3,
+ 0x5b, 0xd3,
0xe1, 0x34, 0x39, 0x22,
0xaa, 0x71, 0x10, 0x59, 0x7a, 0xec, 0x9f, 0x1a, 0xf5, 0xa9,
- 0x40, 0xd6,
+ 0x40, 0xd6,
0x7b, 0x32, 0x5f, 0x19,
0x85, 0xc0, 0xfd, 0xa6, 0x6c, 0x32, 0x58, 0xdc, 0x7c, 0x07,
- 0x42, 0x36,
+ 0x42, 0x36,
0xd0, 0x57, 0x78, 0x63,
0x60, 0x92, 0x1d, 0x1f, 0x9d, 0xbd, 0xcc, 0xd7, 0xe3, 0x1a,
- 0x57, 0xdb,
+ 0x57, 0xdb,
0x70, 0x80, 0x89, 0x36,
0x39, 0x01, 0x71, 0x5a, 0x2a, 0x05, 0x25, 0x13, 0x80, 0xf8,
- 0x49, 0x48,
+ 0x49, 0x48,
0x5f, 0x06, 0xd0, 0xcb,
0x2c, 0x58, 0x9a, 0xe7, 0x8b, 0x6d, 0x17, 0x2c, 0xb2, 0x97,
- 0x2c, 0x15,
+ 0x2c, 0x15,
0xc9, 0x73, 0x6d, 0x8f,
0x4f, 0xf3, 0xf1, 0xb9, 0x70, 0x3f, 0xcb, 0x5f, 0x80, 0x85,
- 0x8b, 0xdf,
+ 0x8b, 0xdf,
0xd2, 0x05, 0x95, 0x1c,
0xe4, 0x37, 0xee, 0xd2, 0x62, 0x49, 0x08, 0xdf, 0xf6, 0x02,
- 0xec, 0xe6,
+ 0xec, 0xe6,
0x9a, 0x37, 0xfc, 0x21,
0x7a, 0x98, 0x12, 0x1d, 0x79, 0xbf, 0xc7, 0x0f, 0x0a, 0x20,
- 0xf8, 0xef,
+ 0xf8, 0xef,
0xa5, 0xc6, 0x0e, 0x94,
0x5e, 0x17, 0x94, 0x12, 0x42, 0xfe, 0xd7, 0x22, 0xbd, 0x31,
- 0x27, 0xc7,
+ 0x27, 0xc7,
0xdb, 0x4a, 0x4e, 0x95,
0xe2, 0xc1, 0xdd, 0xe8, 0x0f, 0x7d, 0x1d, 0xe4, 0xfd, 0xb1,
- 0x27, 0x7b,
+ 0x27, 0x7b,
0xc1, 0x71, 0xfe, 0x27,
0x47, 0x89, 0xf4, 0xfc, 0x84, 0xa5, 0x57, 0x5d, 0x21, 0x02,
- 0x03, 0x01,
+ 0x03, 0x01,
0x00, 0x01, 0x81, 0x11,
0x00, 0xbd, 0x8b, 0xdc, 0xa1, 0x3f, 0x74, 0x3e, 0x47, 0x8d,
- 0x00, 0x0a,
+ 0x00, 0x0a,
0x47, 0x42, 0xdf, 0x76,
0xbd, 0x82, 0x11, 0x00, 0xbd, 0x8b, 0xdc, 0xa1, 0x3f, 0x74,
- 0x3e, 0x47,
+ 0x3e, 0x47,
0x8d, 0x00, 0x0a, 0x47,
0x42, 0xdf, 0x76, 0xbd, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e,
- 0x03, 0x02,
+ 0x03, 0x02,
0x1d, 0x05, 0x00, 0x03,
0x82, 0x01, 0x01, 0x00, 0xa7, 0xb0, 0x66, 0x75, 0x14, 0x7e,
- 0x7d, 0xb5,
+ 0x7d, 0xb5,
0x31, 0xec, 0xb2, 0xeb,
0x90, 0x80, 0x95, 0x25, 0x59, 0x0f, 0xe4, 0x15, 0x86, 0x2d,
- 0x9d, 0xd7,
+ 0x9d, 0xd7,
0x35, 0xe9, 0x22, 0x74,
0xe7, 0x85, 0x36, 0x19, 0x4f, 0x27, 0x5c, 0x17, 0x63, 0x7b,
- 0x2a, 0xfe,
+ 0x2a, 0xfe,
0x59, 0xe9, 0x76, 0x77,
0xd0, 0xc9, 0x40, 0x78, 0x7c, 0x31, 0x62, 0x1e, 0x87, 0x1b,
- 0xc1, 0x19,
+ 0xc1, 0x19,
0xef, 0x6f, 0x15, 0xe6,
0xce, 0x74, 0x84, 0x6d, 0xd6, 0x3b, 0x57, 0xd9, 0xa9, 0x13,
- 0xf6, 0x7d,
+ 0xf6, 0x7d,
0x84, 0xe7, 0x8f, 0xc6,
0x01, 0x5f, 0xcf, 0xc4, 0x95, 0xc9, 0xde, 0x97, 0x17, 0x43,
- 0x12, 0x70,
+ 0x12, 0x70,
0x27, 0xf9, 0xc4, 0xd7,
0xe1, 0x05, 0xbb, 0x63, 0x87, 0x5f, 0xdc, 0x20, 0xbd, 0xd1,
- 0xde, 0xd6,
+ 0xde, 0xd6,
0x2d, 0x9f, 0x3f, 0x5d,
0x0a, 0x27, 0x40, 0x11, 0x5f, 0x5d, 0x54, 0xa7, 0x28, 0xf9,
- 0x03, 0x2e,
+ 0x03, 0x2e,
0x84, 0x8d, 0x48, 0x60,
0xa1, 0x71, 0xa3, 0x46, 0x69, 0xdb, 0x88, 0x7b, 0xc1, 0xb6,
- 0x08, 0x2d,
+ 0x08, 0x2d,
0xdf, 0x25, 0x9d, 0x32,
0x76, 0x49, 0x0b, 0xba, 0xab, 0xdd, 0xc3, 0x00, 0x76, 0x8a,
- 0x94, 0xd2,
+ 0x94, 0xd2,
0x25, 0x43, 0xf0, 0xa9,
0x98, 0x65, 0x94, 0xc7, 0xdd, 0x7c, 0xd4, 0xe2, 0xe8, 0x33,
- 0xe2, 0x9a,
+ 0xe2, 0x9a,
0xe9, 0x75, 0xf0, 0x0f,
0x61, 0x86, 0xee, 0x0e, 0xf7, 0x39, 0x6b, 0x30, 0x63, 0xe5,
- 0x46, 0xd4,
+ 0x46, 0xd4,
0x1c, 0x83, 0xa1, 0x28,
0x79, 0x76, 0x81, 0x48, 0x38, 0x72, 0xbc, 0x3f, 0x25, 0x53,
- 0x31, 0xaa,
+ 0x31, 0xaa,
0x02, 0xd1, 0x9b, 0x03,
0xa2, 0x5c, 0x94, 0x21, 0xb3, 0x8e, 0xdf, 0x2a, 0xa5, 0x4c,
- 0x65, 0xa2,
+ 0x65, 0xa2,
0xf9, 0xac, 0x38, 0x7a,
0xf9, 0x45, 0xb3, 0xd5, 0xda, 0xe5, 0xb9, 0x56, 0x9e, 0x47,
- 0xd5, 0x06,
+ 0xd5, 0x06,
0xe6, 0xca, 0xd7, 0x6e,
0x06, 0xdb, 0x6e, 0xa7, 0x7b, 0x4b, 0x13, 0x40, 0x3c, 0x12,
- 0x76, 0x99,
+ 0x76, 0x99,
0x65, 0xb4, 0x54, 0xa1,
0xd8, 0x21, 0x5c, 0x27
};
@@ -187,7 +187,7 @@ void doit(void)
int result;
unsigned char expectedId[] =
{ 0xbd, 0x8b, 0xdc, 0xa1, 0x3f, 0x74, 0x3e, 0x47, 0x8d, 0x00,
-0x0a, 0x47,
+ 0x0a, 0x47,
0x42, 0xdf, 0x76, 0xbd
};
@@ -207,32 +207,28 @@ void doit(void)
fail("crt_import %d\n", ret);
buf_size = 15;
- result =
- gnutls_x509_crt_get_issuer_unique_id(cert, buf, &buf_size);
+ result = gnutls_x509_crt_get_issuer_unique_id(cert, buf, &buf_size);
if (result != GNUTLS_E_SHORT_MEMORY_BUFFER)
fail("get_issuer_unique_id short error %d\n", result);
if (buf_size != 16)
fail("get_issuer_unique_id buf size %d\n", (int)buf_size);
buf_size = 16;
- result =
- gnutls_x509_crt_get_issuer_unique_id(cert, buf, &buf_size);
+ result = gnutls_x509_crt_get_issuer_unique_id(cert, buf, &buf_size);
if (result < 0)
fail("get_issuer_unique_id %d\n", result);
if (memcmp(buf, expectedId, buf_size) != 0)
fail("expected id mismatch for issuer\n");
buf_size = 15;
- result =
- gnutls_x509_crt_get_subject_unique_id(cert, buf, &buf_size);
+ result = gnutls_x509_crt_get_subject_unique_id(cert, buf, &buf_size);
if (result != GNUTLS_E_SHORT_MEMORY_BUFFER)
fail("get_subject_unique_id short error %d\n", result);
if (buf_size != 16)
fail("get_subject_unique_id buf size %d\n", (int)buf_size);
buf_size = 16;
- result =
- gnutls_x509_crt_get_subject_unique_id(cert, buf, &buf_size);
+ result = gnutls_x509_crt_get_subject_unique_id(cert, buf, &buf_size);
if (result < 0)
fail("get_subject_unique_id %d\n", result);
if (memcmp(buf, expectedId, buf_size) != 0)
diff --git a/tests/chainverify-unsorted.c b/tests/chainverify-unsorted.c
index df8ade9946..52291393d8 100644
--- a/tests/chainverify-unsorted.c
+++ b/tests/chainverify-unsorted.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -43,7 +43,6 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "<%d>| %s", level, str);
}
-
const char ca_str[] =
"-----BEGIN CERTIFICATE-----\n"
"MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG\n"
@@ -59,8 +58,7 @@ const char ca_str[] =
"lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc\n"
"AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k\n"
"-----END CERTIFICATE-----\n";
-const gnutls_datum_t ca = { (void *) ca_str, sizeof(ca_str) };
-
+const gnutls_datum_t ca = { (void *)ca_str, sizeof(ca_str) };
/* Chain1 is sorted */
static const char chain1[] = {
@@ -602,7 +600,8 @@ void doit(void)
gnutls_x509_crt_t *crts;
unsigned int crts_size, i;
gnutls_x509_trust_list_t tl;
- unsigned int status, flags = GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN|GNUTLS_VERIFY_ALLOW_BROKEN;
+ unsigned int status, flags =
+ GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN | GNUTLS_VERIFY_ALLOW_BROKEN;
unsigned int not_flags = GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN;
/* this must be called once in the program
@@ -619,15 +618,14 @@ void doit(void)
ret =
gnutls_x509_trust_list_add_trust_mem(tl, &ca, NULL,
- GNUTLS_X509_FMT_PEM, 0,
- 0);
+ GNUTLS_X509_FMT_PEM, 0, 0);
if (ret < 0) {
fail("gnutls_x509_trust_list_add_trust_mem\n");
exit(1);
}
/* Chain 1 */
- data.data = (void *) chain1;
+ data.data = (void *)chain1;
data.size = sizeof(chain1);
ret =
gnutls_x509_crt_list_import2(&crts, &crts_size, &data,
@@ -651,16 +649,17 @@ void doit(void)
gnutls_free(crts);
/* Chain 2 */
- data.data = (void *) chain2;
+ data.data = (void *)chain2;
data.size = sizeof(chain2);
/* verify whether the GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED flag is
* considered by gnutls_x509_crt_list_import2() */
ret =
- gnutls_x509_crt_list_import2(&crts, &crts_size, &data,
- GNUTLS_X509_FMT_PEM, GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
+ gnutls_x509_crt_list_import2(&crts, &crts_size, &data,
+ GNUTLS_X509_FMT_PEM,
+ GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
if (ret != GNUTLS_E_CERTIFICATE_LIST_UNSORTED) {
- fail("gnutls_x509_crt_list_import2 with flag GNUTLS_E_CERTIFICATE_LIST_UNSORTED on unsorted chain didn't fail: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_list_import2 with flag GNUTLS_E_CERTIFICATE_LIST_UNSORTED on unsorted chain didn't fail: %s\n", gnutls_strerror(ret));
exit(1);
}
@@ -686,7 +685,7 @@ void doit(void)
gnutls_free(crts);
/* Chain 3 */
- data.data = (void *) chain3;
+ data.data = (void *)chain3;
data.size = sizeof(chain3);
ret =
gnutls_x509_crt_list_import2(&crts, &crts_size, &data,
@@ -710,7 +709,7 @@ void doit(void)
gnutls_free(crts);
/* Chain 4 */
- data.data = (void *) chain4;
+ data.data = (void *)chain4;
data.size = sizeof(chain4);
ret =
gnutls_x509_crt_list_import2(&crts, &crts_size, &data,
@@ -734,7 +733,7 @@ void doit(void)
gnutls_free(crts);
/* Check if an unsorted list would fail if the unsorted flag is not given */
- data.data = (void *) chain2;
+ data.data = (void *)chain2;
data.size = sizeof(chain2);
ret =
gnutls_x509_crt_list_import2(&crts, &crts_size, &data,
diff --git a/tests/chainverify.c b/tests/chainverify.c
index 6a10d78841..9460724fd1 100644
--- a/tests/chainverify.c
+++ b/tests/chainverify.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -126,7 +126,7 @@ void doit(void)
GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
printf("\tCertificate %d: %.*s\n", (int)j,
- tmp.size, tmp.data);
+ tmp.size, tmp.data);
gnutls_free(tmp.data);
}
@@ -221,11 +221,11 @@ void doit(void)
ret =
gnutls_x509_trust_list_verify_crt2(tl, certs, j,
- vdata, 1,
- chains
- [i].verify_flags,
- &verify_status1,
- NULL);
+ vdata, 1,
+ chains
+ [i].verify_flags,
+ &verify_status1,
+ NULL);
} else {
ret =
gnutls_x509_trust_list_verify_crt(tl, certs, j,
@@ -258,7 +258,8 @@ void doit(void)
gnutls_certificate_verification_status_print
(verify_status1, GNUTLS_CRT_X509, &out1, 0);
gnutls_certificate_verification_status_print
- (chains[i].expected_verify_result, GNUTLS_CRT_X509, &out2, 0);
+ (chains[i].expected_verify_result,
+ GNUTLS_CRT_X509, &out2, 0);
fail("chain[%s]:\nverify_status: %d: %s\nexpected: %d: %s\n", chains[i].name, verify_status1, out1.data, chains[i].expected_verify_result, out2.data);
gnutls_free(out1.data);
gnutls_free(out2.data);
diff --git a/tests/cipher-alignment.c b/tests/cipher-alignment.c
index 2103a2adee..ae6aa782b0 100644
--- a/tests/cipher-alignment.c
+++ b/tests/cipher-alignment.c
@@ -24,7 +24,7 @@
/* Tests whether memory input to ciphers are properly aligned */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,24 +40,24 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/crypto.h>
-#include <nettle/aes.h>
-#include <nettle/cbc.h>
-#include <nettle/gcm.h>
-#include <assert.h>
-
-#include "utils.h"
-
-#include "ex-session-info.c"
-#include "ex-x509-info.c"
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/crypto.h>
+# include <nettle/aes.h>
+# include <nettle/cbc.h>
+# include <nettle/gcm.h>
+# include <assert.h>
+
+# include "utils.h"
+
+# include "ex-session-info.c"
+# include "ex-x509-info.c"
static pid_t child;
@@ -67,8 +67,8 @@ static void tls_log_func(int level, const char *str)
str);
}
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static unsigned char ca_pem[] =
"-----BEGIN CERTIFICATE-----\n"
@@ -137,8 +137,7 @@ _gnutls_crypto_register_cipher(gnutls_cipher_algorithm_t algorithm,
gnutls_cipher_decrypt_func decrypt,
gnutls_cipher_deinit_func deinit);
-static int
-myaes_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
+static int myaes_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
{
if (algorithm != GNUTLS_CIPHER_AES_128_CBC)
return GNUTLS_E_INVALID_REQUEST;
@@ -148,14 +147,13 @@ myaes_init(gnutls_cipher_algorithm_t algorithm, void **_ctx, int enc)
return GNUTLS_E_MEMORY_ERROR;
}
- ((struct myaes_ctx *) (*_ctx))->enc = enc;
+ ((struct myaes_ctx *)(*_ctx))->enc = enc;
aes_init = 1;
return 0;
}
-static int
-myaes_setkey(void *_ctx, const void *userkey, size_t keysize)
+static int myaes_setkey(void *_ctx, const void *userkey, size_t keysize)
{
struct myaes_ctx *ctx = _ctx;
@@ -179,41 +177,47 @@ static int myaes_setiv(void *_ctx, const void *iv, size_t iv_size)
static int
myaes_encrypt(void *_ctx, const void *src, size_t src_size,
- void *dst, size_t dst_size)
+ void *dst, size_t dst_size)
{
struct myaes_ctx *ctx = _ctx;
-#if 0 /* this is under the control of the caller */
- if (((unsigned long)src)%16 != 0) {
- fail("encrypt: source is not 16-byte aligned: %lu\n", ((unsigned long)src)%16);
+# if 0 /* this is under the control of the caller */
+ if (((unsigned long)src) % 16 != 0) {
+ fail("encrypt: source is not 16-byte aligned: %lu\n",
+ ((unsigned long)src) % 16);
}
-#endif
+# endif
- if (((unsigned long)dst)%16 != 0) {
- fail("encrypt: dest is not 16-byte aligned: %lu\n", ((unsigned long)dst)%16);
+ if (((unsigned long)dst) % 16 != 0) {
+ fail("encrypt: dest is not 16-byte aligned: %lu\n",
+ ((unsigned long)dst) % 16);
}
- cbc_encrypt(&ctx->aes, (nettle_cipher_func*)aes128_encrypt, 16, ctx->iv, src_size, dst, src);
+ cbc_encrypt(&ctx->aes, (nettle_cipher_func *) aes128_encrypt, 16,
+ ctx->iv, src_size, dst, src);
return 0;
}
static int
myaes_decrypt(void *_ctx, const void *src, size_t src_size,
- void *dst, size_t dst_size)
+ void *dst, size_t dst_size)
{
struct myaes_ctx *ctx = _ctx;
- if (((unsigned long)src)%16 != 0) {
- fail("decrypt: source is not 16-byte aligned: %lu\n", ((unsigned long)src)%16);
+ if (((unsigned long)src) % 16 != 0) {
+ fail("decrypt: source is not 16-byte aligned: %lu\n",
+ ((unsigned long)src) % 16);
}
-#if 0 /* this is under the control of the caller */
- if (((unsigned long)dst)%16 != 0) {
- fail("decrypt: dest is not 16-byte aligned: %lu\n", ((unsigned long)dst)%16);
+# if 0 /* this is under the control of the caller */
+ if (((unsigned long)dst) % 16 != 0) {
+ fail("decrypt: dest is not 16-byte aligned: %lu\n",
+ ((unsigned long)dst) % 16);
}
-#endif
+# endif
- cbc_decrypt(&ctx->aes, (nettle_cipher_func*)aes128_decrypt, 16, ctx->iv, src_size, dst, src);
+ cbc_decrypt(&ctx->aes, (nettle_cipher_func *) aes128_decrypt, 16,
+ ctx->iv, src_size, dst, src);
return 0;
}
@@ -238,8 +242,7 @@ static void client(int sd, const char *prio)
/* sets the trusted cas file
*/
- gnutls_certificate_set_x509_trust_mem(xcred, &ca,
- GNUTLS_X509_FMT_PEM);
+ gnutls_certificate_set_x509_trust_mem(xcred, &ca, GNUTLS_X509_FMT_PEM);
gnutls_certificate_set_x509_key_mem(xcred, &cert, &key,
GNUTLS_X509_FMT_PEM);
@@ -247,7 +250,7 @@ static void client(int sd, const char *prio)
*/
gnutls_init(&session, GNUTLS_CLIENT);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the x509 credentials to the current session
*/
@@ -308,8 +311,7 @@ static void client(int sd, const char *prio)
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -326,7 +328,7 @@ static void client(int sd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -338,12 +340,10 @@ static void client(int sd, const char *prio)
/* This is a sample TLS 1.0 echo server, using X.509 authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
/* These are global */
-
-
static unsigned char server_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
"MIICVjCCAcGgAwIBAgIERiYdMTALBgkqhkiG9w0BAQUwGTEXMBUGA1UEAxMOR251\n"
@@ -403,8 +403,7 @@ static void server(int sd, const char *prio)
GNUTLS_X509_FMT_PEM);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
if (debug)
success("Launched, generating DH parameters...\n");
@@ -414,7 +413,7 @@ static void server(int sd, const char *prio)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -453,8 +452,7 @@ static void server(int sd, const char *prio)
} else if (ret > 0) {
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
/* do not wait for the peer to close the connection.
@@ -509,17 +507,15 @@ void doit(void)
global_init();
ret = _gnutls_crypto_register_cipher(GNUTLS_CIPHER_AES_128_CBC, 1,
- myaes_init,
- myaes_setkey,
- myaes_setiv,
- myaes_encrypt,
- myaes_decrypt,
- myaes_deinit);
+ myaes_init,
+ myaes_setkey,
+ myaes_setiv,
+ myaes_encrypt,
+ myaes_decrypt, myaes_deinit);
if (ret < 0) {
fail("%d: cannot register cipher\n", __LINE__);
}
-
start("NORMAL:-CIPHER-ALL:+AES-128-CBC:-VERS-ALL:+VERS-TLS1.1");
start("NORMAL:-CIPHER-ALL:+AES-128-CBC:-VERS-ALL:+VERS-TLS1.2");
diff --git a/tests/cipher-neg-common.c b/tests/cipher-neg-common.c
index 63c5c4487b..3f7dc2a3f7 100644
--- a/tests/cipher-neg-common.c
+++ b/tests/cipher-neg-common.c
@@ -30,7 +30,7 @@ typedef struct test_case_st {
unsigned not_on_fips;
} test_case_st;
-static void try(test_case_st *test)
+static void try(test_case_st * test)
{
int sret, cret;
gnutls_certificate_credentials_t s_cert_cred;
@@ -47,15 +47,22 @@ static void try(test_case_st *test)
assert(gnutls_certificate_allocate_credentials(&s_cert_cred) >= 0);
assert(gnutls_certificate_allocate_credentials(&c_cert_cred) >= 0);
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
- assert(gnutls_init(&client, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
+ assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, s_cert_cred);
- gnutls_certificate_set_known_dh_params(s_cert_cred, GNUTLS_SEC_PARAM_MEDIUM);
-
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_localhost_rsa_sign_cert, &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, GNUTLS_X509_FMT_PEM) >= 0);
+ gnutls_certificate_set_known_dh_params(s_cert_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
+
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_localhost_rsa_decrypt_cert,
+ &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_localhost_rsa_sign_cert,
+ &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, GNUTLS_X509_FMT_PEM) >= 0);
gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, c_cert_cred);
@@ -88,15 +95,11 @@ static void try(test_case_st *test)
}
if (sret != cret) {
- fail("%s: client negotiated different cipher than server (%s, %s)!\n",
- test->name, gnutls_cipher_get_name(cret),
- gnutls_cipher_get_name(sret));
+ fail("%s: client negotiated different cipher than server (%s, %s)!\n", test->name, gnutls_cipher_get_name(cret), gnutls_cipher_get_name(sret));
}
if (cret != test->cipher) {
- fail("%s: negotiated cipher differs with the expected (%s, %s)!\n",
- test->name, gnutls_cipher_get_name(cret),
- gnutls_cipher_get_name(test->cipher));
+ fail("%s: negotiated cipher differs with the expected (%s, %s)!\n", test->name, gnutls_cipher_get_name(cret), gnutls_cipher_get_name(test->cipher));
}
if (test->group) {
@@ -104,15 +107,11 @@ static void try(test_case_st *test)
cret = gnutls_group_get(server);
if (sret != cret) {
- fail("%s: client negotiated different group than server (%s, %s)!\n",
- test->name, gnutls_group_get_name(cret),
- gnutls_group_get_name(sret));
+ fail("%s: client negotiated different group than server (%s, %s)!\n", test->name, gnutls_group_get_name(cret), gnutls_group_get_name(sret));
}
if (cret != test->group) {
- fail("%s: negotiated group differs with the expected (%s, %s)!\n",
- test->name, gnutls_group_get_name(cret),
- gnutls_group_get_name(test->group));
+ fail("%s: negotiated group differs with the expected (%s, %s)!\n", test->name, gnutls_group_get_name(cret), gnutls_group_get_name(test->group));
}
}
diff --git a/tests/cipher-padding.c b/tests/cipher-padding.c
index e8e66fb9af..d629a595f9 100644
--- a/tests/cipher-padding.c
+++ b/tests/cipher-padding.c
@@ -74,8 +74,7 @@ start(gnutls_cipher_algorithm_t algo, size_t plaintext_size, unsigned int flags)
if (flags & GNUTLS_CIPHER_PADDING_PKCS7) {
ret = gnutls_cipher_encrypt3(ch,
plaintext, SIZE_MAX,
- NULL, &size,
- flags);
+ NULL, &size, flags);
if (ret != GNUTLS_E_INVALID_REQUEST) {
fail("gnutls_cipher_encrypt3 succeeded\n");
}
@@ -84,8 +83,7 @@ start(gnutls_cipher_algorithm_t algo, size_t plaintext_size, unsigned int flags)
/* Get the ciphertext size */
ret = gnutls_cipher_encrypt3(ch,
plaintext, plaintext_size,
- NULL, &size,
- flags);
+ NULL, &size, flags);
if (ret < 0) {
fail("gnutls_cipher_encrypt3 failed\n");
}
@@ -108,8 +106,7 @@ start(gnutls_cipher_algorithm_t algo, size_t plaintext_size, unsigned int flags)
/* Encrypt with padding */
ret = gnutls_cipher_encrypt3(ch,
plaintext, plaintext_size,
- ciphertext, &size,
- flags);
+ ciphertext, &size, flags);
if (ret < 0) {
fail("gnutls_cipher_encrypt3 failed\n");
}
@@ -117,8 +114,7 @@ start(gnutls_cipher_algorithm_t algo, size_t plaintext_size, unsigned int flags)
/* Decrypt with padding */
ret = gnutls_cipher_decrypt3(ch,
ciphertext, size,
- ciphertext, &size,
- flags);
+ ciphertext, &size, flags);
if (ret < 0) {
fail("gnutls_cipher_encrypt3 failed\n");
}
@@ -135,7 +131,8 @@ start(gnutls_cipher_algorithm_t algo, size_t plaintext_size, unsigned int flags)
gnutls_cipher_deinit(ch);
}
-void doit(void) {
+void doit(void)
+{
int ret;
gnutls_global_set_log_function(tls_log_func);
diff --git a/tests/ciphersuite-name.c b/tests/ciphersuite-name.c
index b7fd4de3a8..9331c34905 100644
--- a/tests/ciphersuite-name.c
+++ b/tests/ciphersuite-name.c
@@ -86,14 +86,12 @@ start(const char *test_name, const char *prio, const char *expected_name)
name = gnutls_ciphersuite_get(server);
if (!name || strcmp(name, expected_name) != 0) {
- fail("server: gnutls_ciphersuite_get returned %s while %s is expected\n",
- name, expected_name);
+ fail("server: gnutls_ciphersuite_get returned %s while %s is expected\n", name, expected_name);
}
name = gnutls_ciphersuite_get(client);
if (!name || strcmp(name, expected_name) != 0) {
- fail("client: gnutls_ciphersuite_get returned %s while %s is expected\n",
- name, expected_name);
+ fail("client: gnutls_ciphersuite_get returned %s while %s is expected\n", name, expected_name);
}
gnutls_bye(client, GNUTLS_SHUT_WR);
diff --git a/tests/client-fastopen.c b/tests/client-fastopen.c
index 198e28fc96..bf3b854a00 100644
--- a/tests/client-fastopen.c
+++ b/tests/client-fastopen.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,21 +39,21 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <gnutls/socket.h>
-#include <errno.h>
-#include <assert.h>
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <gnutls/socket.h>
+# include <errno.h>
+# include <assert.h>
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -67,10 +67,10 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-static void client(int fd, struct sockaddr *connect_addr, socklen_t connect_addrlen,
- const char *prio)
+static void client(int fd, struct sockaddr *connect_addr,
+ socklen_t connect_addrlen, const char *prio)
{
int ret;
char buffer[MAX_BUF + 1];
@@ -96,7 +96,8 @@ static void client(int fd, struct sockaddr *connect_addr, socklen_t connect_addr
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
- gnutls_transport_set_fastopen(session, fd, connect_addr, connect_addrlen, 0);
+ gnutls_transport_set_fastopen(session, fd, connect_addr,
+ connect_addrlen, 0);
/* Perform the TLS handshake
*/
@@ -119,13 +120,12 @@ static void client(int fd, struct sockaddr *connect_addr, socklen_t connect_addr
(gnutls_protocol_get_version(session)));
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_recv(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -134,10 +134,11 @@ static void client(int fd, struct sockaddr *connect_addr, socklen_t connect_addr
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
- end:
+ end:
close(fd);
@@ -148,7 +149,6 @@ static void client(int fd, struct sockaddr *connect_addr, socklen_t connect_addr
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -178,8 +178,8 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&xcred);
ret = gnutls_certificate_set_x509_key_mem(xcred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -219,7 +219,7 @@ static void server(int fd, const char *prio)
memset(buffer, 1, sizeof(buffer));
do {
- ret = gnutls_record_send(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_send(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
@@ -232,7 +232,8 @@ static void server(int fd, const char *prio)
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
close(fd);
@@ -274,12 +275,12 @@ void run(const char *name, const char *prio)
saddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
saddr.sin_port = 0;
- ret = bind(listener, (struct sockaddr*)&saddr, sizeof(saddr));
+ ret = bind(listener, (struct sockaddr *)&saddr, sizeof(saddr));
if (ret == -1)
fail("error in bind(): %s\n", strerror(errno));
addrlen = sizeof(saddr);
- ret = getsockname(listener, (struct sockaddr*)&saddr, &addrlen);
+ ret = getsockname(listener, (struct sockaddr *)&saddr, &addrlen);
if (ret == -1)
fail("error in getsockname(): %s\n", strerror(errno));
@@ -310,7 +311,7 @@ void run(const char *name, const char *prio)
fd = socket(AF_INET, SOCK_STREAM, 0);
usleep(1000000);
- client(fd, (struct sockaddr*)&saddr, addrlen, prio);
+ client(fd, (struct sockaddr *)&saddr, addrlen, prio);
exit(0);
}
}
diff --git a/tests/client-secrets.h b/tests/client-secrets.h
index 38915f55a2..f53660e6b2 100644
--- a/tests/client-secrets.h
+++ b/tests/client-secrets.h
@@ -22,258 +22,312 @@
*/
#ifndef GNUTLS_TESTS_CLIENT_SECRETS_H
-#define GNUTLS_TESTS_CLIENT_SECRETS_H
+# define GNUTLS_TESTS_CLIENT_SECRETS_H
static const struct secret client_normal_0[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
- (const uint8_t *)"\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
- (const uint8_t *)"\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
+ (const uint8_t *)
+ "\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
+ (const uint8_t *)
+ "\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
+ },
};
static const struct secret client_normal_1[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_EARLY,
- 32,
- NULL,
- (const uint8_t *)"\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- NULL,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
- (const uint8_t *)"\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
- },
+ GNUTLS_ENCRYPTION_LEVEL_EARLY,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
+ (const uint8_t *)
+ "\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
+ },
};
static const struct secret client_normal_2[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_EARLY,
- 32,
- NULL,
- (const uint8_t *)"\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- NULL,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
- (const uint8_t *)"\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
- },
+ GNUTLS_ENCRYPTION_LEVEL_EARLY,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
+ (const uint8_t *)
+ "\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
+ },
};
static const struct secret client_small_0[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
- (const uint8_t *)"\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
- (const uint8_t *)"\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
+ (const uint8_t *)
+ "\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
+ (const uint8_t *)
+ "\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
+ },
};
static const struct secret client_small_1[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_EARLY,
- 32,
- NULL,
- (const uint8_t *)"\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- NULL,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
- (const uint8_t *)"\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
- },
+ GNUTLS_ENCRYPTION_LEVEL_EARLY,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
+ (const uint8_t *)
+ "\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
+ },
};
static const struct secret client_small_2[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_EARLY,
- 32,
- NULL,
- (const uint8_t *)"\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- NULL,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
- (const uint8_t *)"\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
- },
+ GNUTLS_ENCRYPTION_LEVEL_EARLY,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
+ (const uint8_t *)
+ "\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
+ },
};
static const struct secret client_empty_0[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
- (const uint8_t *)"\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
- (const uint8_t *)"\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
+ (const uint8_t *)
+ "\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
+ (const uint8_t *)
+ "\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
+ },
};
static const struct secret client_empty_1[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xac\xc2\x07\x48\xba\x3d\x59\x2f\x5f\xce\x79\xda\xa6\x04\x4b\x55\x06\x2c\x9f\x0e\xdf\xda\x42\x51\x9d\x0b\xd9\x39\x4b\x8c\xb2\x7e",
- (const uint8_t *)"\x87\x07\x01\xdc\x13\xdc\xb7\x93\x26\x53\xff\xa4\x2d\x28\xed\xca\xef\x5b\xa7\x94\x17\x26\xdf\x1f\x8c\x7b\x79\x32\x55\x5e\xcb\x79",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x73\x16\xe6\x0a\x66\xe1\x81\xd8\x74\xfa\x25\xe3\xf3\x1a\xf2\x4d\x84\xd6\xc6\x7a\x1b\x27\x79\x0a\x09\x9e\xd2\xd4\x1d\xdf\x0f\x53",
- (const uint8_t *)"\x5f\x8e\xfe\x3e\xa0\x41\x27\x9e\xbb\xba\xf2\xa9\x22\xc6\x06\x58\xb5\xbf\x6e\x29\x3d\x84\x10\x4e\x3f\xe3\xc0\x1f\x7a\x2c\xf5\x21",
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xac\xc2\x07\x48\xba\x3d\x59\x2f\x5f\xce\x79\xda\xa6\x04\x4b\x55\x06\x2c\x9f\x0e\xdf\xda\x42\x51\x9d\x0b\xd9\x39\x4b\x8c\xb2\x7e",
+ (const uint8_t *)
+ "\x87\x07\x01\xdc\x13\xdc\xb7\x93\x26\x53\xff\xa4\x2d\x28\xed\xca\xef\x5b\xa7\x94\x17\x26\xdf\x1f\x8c\x7b\x79\x32\x55\x5e\xcb\x79",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x73\x16\xe6\x0a\x66\xe1\x81\xd8\x74\xfa\x25\xe3\xf3\x1a\xf2\x4d\x84\xd6\xc6\x7a\x1b\x27\x79\x0a\x09\x9e\xd2\xd4\x1d\xdf\x0f\x53",
+ (const uint8_t *)
+ "\x5f\x8e\xfe\x3e\xa0\x41\x27\x9e\xbb\xba\xf2\xa9\x22\xc6\x06\x58\xb5\xbf\x6e\x29\x3d\x84\x10\x4e\x3f\xe3\xc0\x1f\x7a\x2c\xf5\x21",
+ },
};
static const struct secret client_empty_2[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xac\xc2\x07\x48\xba\x3d\x59\x2f\x5f\xce\x79\xda\xa6\x04\x4b\x55\x06\x2c\x9f\x0e\xdf\xda\x42\x51\x9d\x0b\xd9\x39\x4b\x8c\xb2\x7e",
- (const uint8_t *)"\x87\x07\x01\xdc\x13\xdc\xb7\x93\x26\x53\xff\xa4\x2d\x28\xed\xca\xef\x5b\xa7\x94\x17\x26\xdf\x1f\x8c\x7b\x79\x32\x55\x5e\xcb\x79",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x73\x16\xe6\x0a\x66\xe1\x81\xd8\x74\xfa\x25\xe3\xf3\x1a\xf2\x4d\x84\xd6\xc6\x7a\x1b\x27\x79\x0a\x09\x9e\xd2\xd4\x1d\xdf\x0f\x53",
- (const uint8_t *)"\x5f\x8e\xfe\x3e\xa0\x41\x27\x9e\xbb\xba\xf2\xa9\x22\xc6\x06\x58\xb5\xbf\x6e\x29\x3d\x84\x10\x4e\x3f\xe3\xc0\x1f\x7a\x2c\xf5\x21",
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xac\xc2\x07\x48\xba\x3d\x59\x2f\x5f\xce\x79\xda\xa6\x04\x4b\x55\x06\x2c\x9f\x0e\xdf\xda\x42\x51\x9d\x0b\xd9\x39\x4b\x8c\xb2\x7e",
+ (const uint8_t *)
+ "\x87\x07\x01\xdc\x13\xdc\xb7\x93\x26\x53\xff\xa4\x2d\x28\xed\xca\xef\x5b\xa7\x94\x17\x26\xdf\x1f\x8c\x7b\x79\x32\x55\x5e\xcb\x79",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x73\x16\xe6\x0a\x66\xe1\x81\xd8\x74\xfa\x25\xe3\xf3\x1a\xf2\x4d\x84\xd6\xc6\x7a\x1b\x27\x79\x0a\x09\x9e\xd2\xd4\x1d\xdf\x0f\x53",
+ (const uint8_t *)
+ "\x5f\x8e\xfe\x3e\xa0\x41\x27\x9e\xbb\xba\xf2\xa9\x22\xc6\x06\x58\xb5\xbf\x6e\x29\x3d\x84\x10\x4e\x3f\xe3\xc0\x1f\x7a\x2c\xf5\x21",
+ },
};
static const struct secret client_explicit_0[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
- (const uint8_t *)"\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
- (const uint8_t *)"\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
+ (const uint8_t *)
+ "\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
+ (const uint8_t *)
+ "\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
+ },
};
static const struct secret client_explicit_1[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_EARLY,
- 32,
- NULL,
- (const uint8_t *)"\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- NULL,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
- (const uint8_t *)"\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
- },
+ GNUTLS_ENCRYPTION_LEVEL_EARLY,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
+ (const uint8_t *)
+ "\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
+ },
};
static const struct secret client_explicit_2[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_EARLY,
- 32,
- NULL,
- (const uint8_t *)"\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- NULL,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
- (const uint8_t *)"\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
- },
+ GNUTLS_ENCRYPTION_LEVEL_EARLY,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
+ (const uint8_t *)
+ "\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
+ },
};
-#endif /* GNUTLS_TESTS_CLIENT_SECRETS_H */
+#endif /* GNUTLS_TESTS_CLIENT_SECRETS_H */
diff --git a/tests/client-sign-md5-rep.c b/tests/client-sign-md5-rep.c
index 10ae99bdfa..7b573aa4fc 100644
--- a/tests/client-sign-md5-rep.c
+++ b/tests/client-sign-md5-rep.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,339 +40,646 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <signal.h>
-#include <limits.h>
-#include <poll.h>
-#include <errno.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <signal.h>
+# include <limits.h>
+# include <poll.h>
+# include <errno.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
pid_t child;
static void tls_log_func(int level, const char *str)
{
- fprintf(stderr, "%s |<%d>| %s", "client", level,
- str);
+ fprintf(stderr, "%s |<%d>| %s", "client", level, str);
}
-
-static unsigned char tls1_hello[] = { /* server hello etc. */
-0x16, 0x03, 0x03, 0x00, 0x39, 0x02, 0x00, 0x00, 0x35, 0x03, 0x03, 0x95, 0x66, 0x0A, 0x55, 0xBC,
-0x04, 0x84, 0xBD, 0x7E, 0xA6, 0xCE, 0x2B, 0x1C, 0x7B, 0x72, 0x28, 0x0D, 0x8E, 0x2C, 0x34, 0xC8,
-0xFF, 0x73, 0xBA, 0x6C, 0x9F, 0x20, 0xB9, 0x18, 0xCD, 0x22, 0xCB, 0x00, 0x00, 0x9E, 0x00, 0x00,
-0x0D, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x16, 0x03,
-0x03, 0x10, 0xE3, 0x0B, 0x00, 0x10, 0xDF, 0x00, 0x10, 0xDC, 0x00, 0x05, 0x4F, 0x30, 0x82, 0x05,
-0x4B, 0x30, 0x82, 0x04, 0x33, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x4C, 0x8E, 0x18, 0x71,
-0x4B, 0x34, 0xE7, 0x5E, 0x8D, 0xAE, 0xFB, 0xE8, 0xF6, 0x4C, 0x3A, 0x82, 0x30, 0x0D, 0x06, 0x09,
-0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x81, 0x90, 0x31, 0x0B,
-0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1B, 0x30, 0x19, 0x06,
-0x03, 0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x4D, 0x61,
-0x6E, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04,
-0x07, 0x13, 0x07, 0x53, 0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 0x30, 0x18, 0x06, 0x03,
-0x55, 0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x43, 0x41, 0x20, 0x4C,
-0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
-0x2D, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x52, 0x53, 0x41, 0x20, 0x44, 0x6F, 0x6D, 0x61,
-0x69, 0x6E, 0x20, 0x56, 0x61, 0x6C, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x53, 0x65,
-0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x1E,
-0x17, 0x0D, 0x31, 0x36, 0x30, 0x37, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17,
-0x0D, 0x31, 0x37, 0x30, 0x39, 0x30, 0x35, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x59,
-0x31, 0x21, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x18, 0x44, 0x6F, 0x6D, 0x61, 0x69,
-0x6E, 0x20, 0x43, 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, 0x20, 0x56, 0x61, 0x6C, 0x69, 0x64, 0x61,
-0x74, 0x65, 0x64, 0x31, 0x1D, 0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x14, 0x50, 0x6F,
-0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x53, 0x53, 0x4C, 0x20, 0x57, 0x69, 0x6C, 0x64, 0x63, 0x61,
-0x72, 0x64, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0C, 0x0C, 0x2A, 0x2E, 0x62,
-0x61, 0x64, 0x73, 0x73, 0x6C, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06,
-0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F,
-0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xC2, 0x04, 0xEC, 0xF8, 0x8C, 0xEE,
-0x04, 0xC2, 0xB3, 0xD8, 0x50, 0xD5, 0x70, 0x58, 0xCC, 0x93, 0x18, 0xEB, 0x5C, 0xA8, 0x68, 0x49,
-0xB0, 0x22, 0xB5, 0xF9, 0x95, 0x9E, 0xB1, 0x2B, 0x2C, 0x76, 0x3E, 0x6C, 0xC0, 0x4B, 0x60, 0x4C,
-0x4C, 0xEA, 0xB2, 0xB4, 0xC0, 0x0F, 0x80, 0xB6, 0xB0, 0xF9, 0x72, 0xC9, 0x86, 0x02, 0xF9, 0x5C,
-0x41, 0x5D, 0x13, 0x2B, 0x7F, 0x71, 0xC4, 0x4B, 0xBC, 0xE9, 0x94, 0x2E, 0x50, 0x37, 0xA6, 0x67,
-0x1C, 0x61, 0x8C, 0xF6, 0x41, 0x42, 0xC5, 0x46, 0xD3, 0x16, 0x87, 0x27, 0x9F, 0x74, 0xEB, 0x0A,
-0x9D, 0x11, 0x52, 0x26, 0x21, 0x73, 0x6C, 0x84, 0x4C, 0x79, 0x55, 0xE4, 0xD1, 0x6B, 0xE8, 0x06,
-0x3D, 0x48, 0x15, 0x52, 0xAD, 0xB3, 0x28, 0xDB, 0xAA, 0xFF, 0x6E, 0xFF, 0x60, 0x95, 0x4A, 0x77,
-0x6B, 0x39, 0xF1, 0x24, 0xD1, 0x31, 0xB6, 0xDD, 0x4D, 0xC0, 0xC4, 0xFC, 0x53, 0xB9, 0x6D, 0x42,
-0xAD, 0xB5, 0x7C, 0xFE, 0xAE, 0xF5, 0x15, 0xD2, 0x33, 0x48, 0xE7, 0x22, 0x71, 0xC7, 0xC2, 0x14,
-0x7A, 0x6C, 0x28, 0xEA, 0x37, 0x4A, 0xDF, 0xEA, 0x6C, 0xB5, 0x72, 0xB4, 0x7E, 0x5A, 0xA2, 0x16,
-0xDC, 0x69, 0xB1, 0x57, 0x44, 0xDB, 0x0A, 0x12, 0xAB, 0xDE, 0xC3, 0x0F, 0x47, 0x74, 0x5C, 0x41,
-0x22, 0xE1, 0x9A, 0xF9, 0x1B, 0x93, 0xE6, 0xAD, 0x22, 0x06, 0x29, 0x2E, 0xB1, 0xBA, 0x49, 0x1C,
-0x0C, 0x27, 0x9E, 0xA3, 0xFB, 0x8B, 0xF7, 0x40, 0x72, 0x00, 0xAC, 0x92, 0x08, 0xD9, 0x8C, 0x57,
-0x84, 0x53, 0x81, 0x05, 0xCB, 0xE6, 0xFE, 0x6B, 0x54, 0x98, 0x40, 0x27, 0x85, 0xC7, 0x10, 0xBB,
-0x73, 0x70, 0xEF, 0x69, 0x18, 0x41, 0x07, 0x45, 0x55, 0x7C, 0xF9, 0x64, 0x3F, 0x3D, 0x2C, 0xC3,
-0xA9, 0x7C, 0xEB, 0x93, 0x1A, 0x4C, 0x86, 0xD1, 0xCA, 0x85, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3,
-0x82, 0x01, 0xD5, 0x30, 0x82, 0x01, 0xD1, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18,
-0x30, 0x16, 0x80, 0x14, 0x90, 0xAF, 0x6A, 0x3A, 0x94, 0x5A, 0x0B, 0xD8, 0x90, 0xEA, 0x12, 0x56,
-0x73, 0xDF, 0x43, 0xB4, 0x3A, 0x28, 0xDA, 0xE7, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04,
-0x16, 0x04, 0x14, 0x9D, 0xEE, 0xC1, 0x7B, 0x81, 0x0B, 0x3A, 0x47, 0x69, 0x71, 0x18, 0x7D, 0x11,
-0x37, 0x93, 0xBC, 0xA5, 0x1B, 0x3F, 0xFB, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01,
-0xFF, 0x04, 0x04, 0x03, 0x02, 0x05, 0xA0, 0x30, 0x0C, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01,
-0xFF, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04, 0x16, 0x30, 0x14,
-0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05,
-0x05, 0x07, 0x03, 0x02, 0x30, 0x4F, 0x06, 0x03, 0x55, 0x1D, 0x20, 0x04, 0x48, 0x30, 0x46, 0x30,
-0x3A, 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0xB2, 0x31, 0x01, 0x02, 0x02, 0x07, 0x30, 0x2B,
-0x30, 0x29, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01, 0x16, 0x1D, 0x68, 0x74,
-0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x2E, 0x63, 0x6F, 0x6D,
-0x6F, 0x64, 0x6F, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x43, 0x50, 0x53, 0x30, 0x08, 0x06, 0x06, 0x67,
-0x81, 0x0C, 0x01, 0x02, 0x01, 0x30, 0x54, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x4D, 0x30, 0x4B,
-0x30, 0x49, 0xA0, 0x47, 0xA0, 0x45, 0x86, 0x43, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x63,
-0x72, 0x6C, 0x2E, 0x63, 0x6F, 0x6D, 0x6F, 0x64, 0x6F, 0x63, 0x61, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,
-0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x52, 0x53, 0x41, 0x44, 0x6F, 0x6D, 0x61, 0x69, 0x6E, 0x56,
-0x61, 0x6C, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53,
-0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x41, 0x2E, 0x63, 0x72, 0x6C, 0x30, 0x81, 0x85, 0x06, 0x08,
-0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x79, 0x30, 0x77, 0x30, 0x4F, 0x06, 0x08,
-0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x43, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F,
-0x2F, 0x63, 0x72, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x6F, 0x64, 0x6F, 0x63, 0x61, 0x2E, 0x63, 0x6F,
-0x6D, 0x2F, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x52, 0x53, 0x41, 0x44, 0x6F, 0x6D, 0x61, 0x69,
-0x6E, 0x56, 0x61, 0x6C, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x53, 0x65, 0x63, 0x75, 0x72,
-0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x41, 0x2E, 0x63, 0x72, 0x74, 0x30, 0x24, 0x06,
-0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3A,
-0x2F, 0x2F, 0x6F, 0x63, 0x73, 0x70, 0x2E, 0x63, 0x6F, 0x6D, 0x6F, 0x64, 0x6F, 0x63, 0x61, 0x2E,
-0x63, 0x6F, 0x6D, 0x30, 0x23, 0x06, 0x03, 0x55, 0x1D, 0x11, 0x04, 0x1C, 0x30, 0x1A, 0x82, 0x0C,
-0x2A, 0x2E, 0x62, 0x61, 0x64, 0x73, 0x73, 0x6C, 0x2E, 0x63, 0x6F, 0x6D, 0x82, 0x0A, 0x62, 0x61,
-0x64, 0x73, 0x73, 0x6C, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86,
-0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x75, 0x48, 0x83, 0x88,
-0x9C, 0x55, 0x24, 0x37, 0x30, 0x07, 0xEB, 0x26, 0x68, 0xC8, 0x79, 0x1C, 0x5C, 0xAE, 0x9A, 0x02,
-0x9A, 0xB5, 0x52, 0x75, 0x44, 0xAC, 0xA9, 0xED, 0x59, 0x65, 0xD0, 0xC6, 0x47, 0x26, 0x04, 0x8D,
-0x57, 0x89, 0x16, 0x2E, 0x71, 0x18, 0x48, 0x98, 0x68, 0x1C, 0xF6, 0x31, 0xF5, 0x26, 0x4B, 0xE8,
-0x81, 0x44, 0xB1, 0xFF, 0x5C, 0x65, 0x3D, 0x78, 0x54, 0x94, 0xC3, 0x86, 0x9D, 0x48, 0x96, 0xE8,
-0x32, 0xAF, 0xE1, 0x8F, 0x94, 0x47, 0xBE, 0x37, 0x8C, 0xC3, 0xED, 0x4D, 0x97, 0xBB, 0xC6, 0x2A,
-0x37, 0x72, 0x01, 0x3A, 0x8F, 0x82, 0xA4, 0x34, 0x44, 0xC4, 0xC4, 0xF8, 0x50, 0x24, 0x48, 0x9E,
-0x19, 0xF0, 0xEC, 0xE1, 0xC6, 0x13, 0x44, 0x26, 0xB6, 0x65, 0xE1, 0x62, 0x49, 0x87, 0xA4, 0xF4,
-0xD8, 0xC4, 0x39, 0x3C, 0x7D, 0x42, 0xC8, 0xA4, 0x2A, 0x54, 0x05, 0xA0, 0xDC, 0x0A, 0xF8, 0x2B,
-0x22, 0x94, 0x93, 0x78, 0x4E, 0x6A, 0x36, 0x1B, 0xD2, 0xE7, 0xE9, 0xAE, 0x84, 0xED, 0x13, 0x1D,
-0xA1, 0xF7, 0xA2, 0x83, 0x81, 0x03, 0x4C, 0x9E, 0x21, 0xFB, 0xBF, 0xA8, 0x30, 0xFE, 0xEB, 0x00,
-0x68, 0xB1, 0x7F, 0xBA, 0x5D, 0xE2, 0x5D, 0xFF, 0x41, 0x1F, 0xD6, 0xF5, 0xA6, 0x5C, 0x8A, 0xEF,
-0x81, 0x80, 0xC8, 0xF1, 0x52, 0x00, 0x17, 0x9D, 0xD1, 0x96, 0x1A, 0x7D, 0x5E, 0xD2, 0x83, 0xB3,
-0x82, 0xC2, 0x3D, 0x46, 0x83, 0xA5, 0x1E, 0xB4, 0x36, 0x35, 0x38, 0xC4, 0x7A, 0x2E, 0xDF, 0x0B,
-0xA1, 0x98, 0x63, 0x58, 0x0B, 0x1E, 0xD0, 0x6D, 0x83, 0x1F, 0xF1, 0x72, 0x4D, 0x09, 0xAC, 0x96,
-0x1A, 0x0B, 0xE5, 0xF6, 0x34, 0x4C, 0xAB, 0xBC, 0xBC, 0x99, 0x5B, 0x82, 0x59, 0xE6, 0x6C, 0xD3,
-0xDB, 0x98, 0xE0, 0xCE, 0x95, 0x3B, 0xCF, 0x4E, 0x17, 0xC3, 0xEE, 0x3A, 0x00, 0x06, 0x0C, 0x30,
-0x82, 0x06, 0x08, 0x30, 0x82, 0x03, 0xF0, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x2B, 0x2E,
-0x6E, 0xEA, 0xD9, 0x75, 0x36, 0x6C, 0x14, 0x8A, 0x6E, 0xDB, 0xA3, 0x7C, 0x8C, 0x07, 0x30, 0x0D,
-0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0C, 0x05, 0x00, 0x30, 0x81, 0x85,
-0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1B, 0x30,
-0x19, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20,
-0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03,
-0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 0x30, 0x18,
-0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x43, 0x41,
-0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2B, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04,
-0x03, 0x13, 0x22, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x52, 0x53, 0x41, 0x20, 0x43, 0x65,
-0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x41, 0x75, 0x74, 0x68,
-0x6F, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x34, 0x30, 0x32, 0x31, 0x32, 0x30,
-0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17, 0x0D, 0x32, 0x39, 0x30, 0x32, 0x31, 0x31, 0x32, 0x33,
-0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x81, 0x90, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04,
-0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1B, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x12,
-0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74,
-0x65, 0x72, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61, 0x6C,
-0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x11, 0x43,
-0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x43, 0x41, 0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64,
-0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2D, 0x43, 0x4F, 0x4D, 0x4F, 0x44,
-0x4F, 0x20, 0x52, 0x53, 0x41, 0x20, 0x44, 0x6F, 0x6D, 0x61, 0x69, 0x6E, 0x20, 0x56, 0x61, 0x6C,
-0x69, 0x64, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53,
-0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09,
-0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00,
-0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0x8E, 0xC2, 0x02, 0x19, 0xE1, 0xA0, 0x59,
-0xA4, 0xEB, 0x38, 0x35, 0x8D, 0x2C, 0xFD, 0x01, 0xD0, 0xD3, 0x49, 0xC0, 0x64, 0xC7, 0x0B, 0x62,
-0x05, 0x45, 0x16, 0x3A, 0xA8, 0xA0, 0xC0, 0x0C, 0x02, 0x7F, 0x1D, 0xCC, 0xDB, 0xC4, 0xA1, 0x6D,
-0x77, 0x03, 0xA3, 0x0F, 0x86, 0xF9, 0xE3, 0x06, 0x9C, 0x3E, 0x0B, 0x81, 0x8A, 0x9B, 0x49, 0x1B,
-0xAD, 0x03, 0xBE, 0xFA, 0x4B, 0xDB, 0x8C, 0x20, 0xED, 0xD5, 0xCE, 0x5E, 0x65, 0x8E, 0x3E, 0x0D,
-0xAF, 0x4C, 0xC2, 0xB0, 0xB7, 0x45, 0x5E, 0x52, 0x2F, 0x34, 0xDE, 0x48, 0x24, 0x64, 0xB4, 0x41,
-0xAE, 0x00, 0x97, 0xF7, 0xBE, 0x67, 0xDE, 0x9E, 0xD0, 0x7A, 0xA7, 0x53, 0x80, 0x3B, 0x7C, 0xAD,
-0xF5, 0x96, 0x55, 0x6F, 0x97, 0x47, 0x0A, 0x7C, 0x85, 0x8B, 0x22, 0x97, 0x8D, 0xB3, 0x84, 0xE0,
-0x96, 0x57, 0xD0, 0x70, 0x18, 0x60, 0x96, 0x8F, 0xEE, 0x2D, 0x07, 0x93, 0x9D, 0xA1, 0xBA, 0xCA,
-0xD1, 0xCD, 0x7B, 0xE9, 0xC4, 0x2A, 0x9A, 0x28, 0x21, 0x91, 0x4D, 0x6F, 0x92, 0x4F, 0x25, 0xA5,
-0xF2, 0x7A, 0x35, 0xDD, 0x26, 0xDC, 0x46, 0xA5, 0xD0, 0xAC, 0x59, 0x35, 0x8C, 0xFF, 0x4E, 0x91,
-0x43, 0x50, 0x3F, 0x59, 0x93, 0x1E, 0x6C, 0x51, 0x21, 0xEE, 0x58, 0x14, 0xAB, 0xFE, 0x75, 0x50,
-0x78, 0x3E, 0x4C, 0xB0, 0x1C, 0x86, 0x13, 0xFA, 0x6B, 0x98, 0xBC, 0xE0, 0x3B, 0x94, 0x1E, 0x85,
-0x52, 0xDC, 0x03, 0x93, 0x24, 0x18, 0x6E, 0xCB, 0x27, 0x51, 0x45, 0xE6, 0x70, 0xDE, 0x25, 0x43,
-0xA4, 0x0D, 0xE1, 0x4A, 0xA5, 0xED, 0xB6, 0x7E, 0xC8, 0xCD, 0x6D, 0xEE, 0x2E, 0x1D, 0x27, 0x73,
-0x5D, 0xDC, 0x45, 0x30, 0x80, 0xAA, 0xE3, 0xB2, 0x41, 0x0B, 0xAF, 0xBD, 0x44, 0x87, 0xDA, 0xB9,
-0xE5, 0x1B, 0x9D, 0x7F, 0xAE, 0xE5, 0x85, 0x82, 0xA5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x82,
-0x01, 0x65, 0x30, 0x82, 0x01, 0x61, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18, 0x30,
-0x16, 0x80, 0x14, 0xBB, 0xAF, 0x7E, 0x02, 0x3D, 0xFA, 0xA6, 0xF1, 0x3C, 0x84, 0x8E, 0xAD, 0xEE,
-0x38, 0x98, 0xEC, 0xD9, 0x32, 0x32, 0xD4, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16,
-0x04, 0x14, 0x90, 0xAF, 0x6A, 0x3A, 0x94, 0x5A, 0x0B, 0xD8, 0x90, 0xEA, 0x12, 0x56, 0x73, 0xDF,
-0x43, 0xB4, 0x3A, 0x28, 0xDA, 0xE7, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF,
-0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF,
-0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xFF, 0x02, 0x01, 0x00, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D,
-0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06,
-0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x1B, 0x06, 0x03, 0x55, 0x1D, 0x20,
-0x04, 0x14, 0x30, 0x12, 0x30, 0x06, 0x06, 0x04, 0x55, 0x1D, 0x20, 0x00, 0x30, 0x08, 0x06, 0x06,
-0x67, 0x81, 0x0C, 0x01, 0x02, 0x01, 0x30, 0x4C, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x45, 0x30,
-0x43, 0x30, 0x41, 0xA0, 0x3F, 0xA0, 0x3D, 0x86, 0x3B, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F,
-0x63, 0x72, 0x6C, 0x2E, 0x63, 0x6F, 0x6D, 0x6F, 0x64, 0x6F, 0x63, 0x61, 0x2E, 0x63, 0x6F, 0x6D,
-0x2F, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x52, 0x53, 0x41, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
-0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x41, 0x75, 0x74, 0x68, 0x6F, 0x72, 0x69, 0x74, 0x79,
-0x2E, 0x63, 0x72, 0x6C, 0x30, 0x71, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01,
-0x04, 0x65, 0x30, 0x63, 0x30, 0x3B, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02,
-0x86, 0x2F, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x72, 0x74, 0x2E, 0x63, 0x6F, 0x6D,
-0x6F, 0x64, 0x6F, 0x63, 0x61, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F,
-0x52, 0x53, 0x41, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x43, 0x41, 0x2E, 0x63, 0x72,
-0x74, 0x30, 0x24, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68,
-0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6F, 0x63, 0x73, 0x70, 0x2E, 0x63, 0x6F, 0x6D, 0x6F, 0x64,
-0x6F, 0x63, 0x61, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7,
-0x0D, 0x01, 0x01, 0x0C, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x4E, 0x2B, 0x76, 0x4F, 0x92,
-0x1C, 0x62, 0x36, 0x89, 0xBA, 0x77, 0xC1, 0x27, 0x05, 0xF4, 0x1C, 0xD6, 0x44, 0x9D, 0xA9, 0x9A,
-0x3E, 0xAA, 0xD5, 0x66, 0x66, 0x01, 0x3E, 0xEA, 0x49, 0xE6, 0xA2, 0x35, 0xBC, 0xFA, 0xF6, 0xDD,
-0x95, 0x8E, 0x99, 0x35, 0x98, 0x0E, 0x36, 0x18, 0x75, 0xB1, 0xDD, 0xDD, 0x50, 0x72, 0x7C, 0xAE,
-0xDC, 0x77, 0x88, 0xCE, 0x0F, 0xF7, 0x90, 0x20, 0xCA, 0xA3, 0x67, 0x2E, 0x1F, 0x56, 0x7F, 0x7B,
-0xE1, 0x44, 0xEA, 0x42, 0x95, 0xC4, 0x5D, 0x0D, 0x01, 0x50, 0x46, 0x15, 0xF2, 0x81, 0x89, 0x59,
-0x6C, 0x8A, 0xDD, 0x8C, 0xF1, 0x12, 0xA1, 0x8D, 0x3A, 0x42, 0x8A, 0x98, 0xF8, 0x4B, 0x34, 0x7B,
-0x27, 0x3B, 0x08, 0xB4, 0x6F, 0x24, 0x3B, 0x72, 0x9D, 0x63, 0x74, 0x58, 0x3C, 0x1A, 0x6C, 0x3F,
-0x4F, 0xC7, 0x11, 0x9A, 0xC8, 0xA8, 0xF5, 0xB5, 0x37, 0xEF, 0x10, 0x45, 0xC6, 0x6C, 0xD9, 0xE0,
-0x5E, 0x95, 0x26, 0xB3, 0xEB, 0xAD, 0xA3, 0xB9, 0xEE, 0x7F, 0x0C, 0x9A, 0x66, 0x35, 0x73, 0x32,
-0x60, 0x4E, 0xE5, 0xDD, 0x8A, 0x61, 0x2C, 0x6E, 0x52, 0x11, 0x77, 0x68, 0x96, 0xD3, 0x18, 0x75,
-0x51, 0x15, 0x00, 0x1B, 0x74, 0x88, 0xDD, 0xE1, 0xC7, 0x38, 0x04, 0x43, 0x28, 0xE9, 0x16, 0xFD,
-0xD9, 0x05, 0xD4, 0x5D, 0x47, 0x27, 0x60, 0xD6, 0xFB, 0x38, 0x3B, 0x6C, 0x72, 0xA2, 0x94, 0xF8,
-0x42, 0x1A, 0xDF, 0xED, 0x6F, 0x06, 0x8C, 0x45, 0xC2, 0x06, 0x00, 0xAA, 0xE4, 0xE8, 0xDC, 0xD9,
-0xB5, 0xE1, 0x73, 0x78, 0xEC, 0xF6, 0x23, 0xDC, 0xD1, 0xDD, 0x6C, 0x8E, 0x1A, 0x8F, 0xA5, 0xEA,
-0x54, 0x7C, 0x96, 0xB7, 0xC3, 0xFE, 0x55, 0x8E, 0x8D, 0x49, 0x5E, 0xFC, 0x64, 0xBB, 0xCF, 0x3E,
-0xBD, 0x96, 0xEB, 0x69, 0xCD, 0xBF, 0xE0, 0x48, 0xF1, 0x62, 0x82, 0x10, 0xE5, 0x0C, 0x46, 0x57,
-0xF2, 0x33, 0xDA, 0xD0, 0xC8, 0x63, 0xED, 0xC6, 0x1F, 0x94, 0x05, 0x96, 0x4A, 0x1A, 0x91, 0xD1,
-0xF7, 0xEB, 0xCF, 0x8F, 0x52, 0xAE, 0x0D, 0x08, 0xD9, 0x3E, 0xA8, 0xA0, 0x51, 0xE9, 0xC1, 0x87,
-0x74, 0xD5, 0xC9, 0xF7, 0x74, 0xAB, 0x2E, 0x53, 0xFB, 0xBB, 0x7A, 0xFB, 0x97, 0xE2, 0xF8, 0x1F,
-0x26, 0x8F, 0xB3, 0xD2, 0xA0, 0xE0, 0x37, 0x5B, 0x28, 0x3B, 0x31, 0xE5, 0x0E, 0x57, 0x2D, 0x5A,
-0xB8, 0xAD, 0x79, 0xAC, 0x5E, 0x20, 0x66, 0x1A, 0xA5, 0xB9, 0xA6, 0xB5, 0x39, 0xC1, 0xF5, 0x98,
-0x43, 0xFF, 0xEE, 0xF9, 0xA7, 0xA7, 0xFD, 0xEE, 0xCA, 0x24, 0x3D, 0x80, 0x16, 0xC4, 0x17, 0x8F,
-0x8A, 0xC1, 0x60, 0xA1, 0x0C, 0xAE, 0x5B, 0x43, 0x47, 0x91, 0x4B, 0xD5, 0x9A, 0x17, 0x5F, 0xF9,
-0xD4, 0x87, 0xC1, 0xC2, 0x8C, 0xB7, 0xE7, 0xE2, 0x0F, 0x30, 0x19, 0x37, 0x86, 0xAC, 0xE0, 0xDC,
-0x42, 0x03, 0xE6, 0x94, 0xA8, 0x9D, 0xAE, 0xFD, 0x0F, 0x24, 0x51, 0x94, 0xCE, 0x92, 0x08, 0xD1,
-0xFC, 0x50, 0xF0, 0x03, 0x40, 0x7B, 0x88, 0x59, 0xED, 0x0E, 0xDD, 0xAC, 0xD2, 0x77, 0x82, 0x34,
-0xDC, 0x06, 0x95, 0x02, 0xD8, 0x90, 0xF9, 0x2D, 0xEA, 0x37, 0xD5, 0x1A, 0x60, 0xD0, 0x67, 0x20,
-0xD7, 0xD8, 0x42, 0x0B, 0x45, 0xAF, 0x82, 0x68, 0xDE, 0xDD, 0x66, 0x24, 0x37, 0x90, 0x29, 0x94,
-0x19, 0x46, 0x19, 0x25, 0xB8, 0x80, 0xD7, 0xCB, 0xD4, 0x86, 0x28, 0x6A, 0x44, 0x70, 0x26, 0x23,
-0x62, 0xA9, 0x9F, 0x86, 0x6F, 0xBF, 0xBA, 0x90, 0x70, 0xD2, 0x56, 0x77, 0x85, 0x78, 0xEF, 0xEA,
-0x25, 0xA9, 0x17, 0xCE, 0x50, 0x72, 0x8C, 0x00, 0x3A, 0xAA, 0xE3, 0xDB, 0x63, 0x34, 0x9F, 0xF8,
-0x06, 0x71, 0x01, 0xE2, 0x82, 0x20, 0xD4, 0xFE, 0x6F, 0xBD, 0xB1, 0x00, 0x05, 0x78, 0x30, 0x82,
-0x05, 0x74, 0x30, 0x82, 0x04, 0x5C, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x27, 0x66, 0xEE,
-0x56, 0xEB, 0x49, 0xF3, 0x8E, 0xAB, 0xD7, 0x70, 0xA2, 0xFC, 0x84, 0xDE, 0x22, 0x30, 0x0D, 0x06,
-0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0C, 0x05, 0x00, 0x30, 0x6F, 0x31, 0x0B,
-0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x53, 0x45, 0x31, 0x14, 0x30, 0x12, 0x06,
-0x03, 0x55, 0x04, 0x0A, 0x13, 0x0B, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x41,
-0x42, 0x31, 0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x1D, 0x41, 0x64, 0x64, 0x54,
-0x72, 0x75, 0x73, 0x74, 0x20, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6E, 0x61, 0x6C, 0x20, 0x54, 0x54,
-0x50, 0x20, 0x4E, 0x65, 0x74, 0x77, 0x6F, 0x72, 0x6B, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55,
-0x04, 0x03, 0x13, 0x19, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x20, 0x45, 0x78, 0x74,
-0x65, 0x72, 0x6E, 0x61, 0x6C, 0x20, 0x43, 0x41, 0x20, 0x52, 0x6F, 0x6F, 0x74, 0x30, 0x1E, 0x17,
-0x0D, 0x30, 0x30, 0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x34, 0x38, 0x33, 0x38, 0x5A, 0x17, 0x0D,
-0x32, 0x30, 0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x34, 0x38, 0x33, 0x38, 0x5A, 0x30, 0x81, 0x85,
-0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1B, 0x30,
-0x19, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20,
-0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03,
-0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 0x30, 0x18,
-0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x43, 0x41,
-0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2B, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04,
-0x03, 0x13, 0x22, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x52, 0x53, 0x41, 0x20, 0x43, 0x65,
-0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x41, 0x75, 0x74, 0x68,
-0x6F, 0x72, 0x69, 0x74, 0x79, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48,
-0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0F, 0x00, 0x30, 0x82, 0x02,
-0x0A, 0x02, 0x82, 0x02, 0x01, 0x00, 0x91, 0xE8, 0x54, 0x92, 0xD2, 0x0A, 0x56, 0xB1, 0xAC, 0x0D,
-0x24, 0xDD, 0xC5, 0xCF, 0x44, 0x67, 0x74, 0x99, 0x2B, 0x37, 0xA3, 0x7D, 0x23, 0x70, 0x00, 0x71,
-0xBC, 0x53, 0xDF, 0xC4, 0xFA, 0x2A, 0x12, 0x8F, 0x4B, 0x7F, 0x10, 0x56, 0xBD, 0x9F, 0x70, 0x72,
-0xB7, 0x61, 0x7F, 0xC9, 0x4B, 0x0F, 0x17, 0xA7, 0x3D, 0xE3, 0xB0, 0x04, 0x61, 0xEE, 0xFF, 0x11,
-0x97, 0xC7, 0xF4, 0x86, 0x3E, 0x0A, 0xFA, 0x3E, 0x5C, 0xF9, 0x93, 0xE6, 0x34, 0x7A, 0xD9, 0x14,
-0x6B, 0xE7, 0x9C, 0xB3, 0x85, 0xA0, 0x82, 0x7A, 0x76, 0xAF, 0x71, 0x90, 0xD7, 0xEC, 0xFD, 0x0D,
-0xFA, 0x9C, 0x6C, 0xFA, 0xDF, 0xB0, 0x82, 0xF4, 0x14, 0x7E, 0xF9, 0xBE, 0xC4, 0xA6, 0x2F, 0x4F,
-0x7F, 0x99, 0x7F, 0xB5, 0xFC, 0x67, 0x43, 0x72, 0xBD, 0x0C, 0x00, 0xD6, 0x89, 0xEB, 0x6B, 0x2C,
-0xD3, 0xED, 0x8F, 0x98, 0x1C, 0x14, 0xAB, 0x7E, 0xE5, 0xE3, 0x6E, 0xFC, 0xD8, 0xA8, 0xE4, 0x92,
-0x24, 0xDA, 0x43, 0x6B, 0x62, 0xB8, 0x55, 0xFD, 0xEA, 0xC1, 0xBC, 0x6C, 0xB6, 0x8B, 0xF3, 0x0E,
-0x8D, 0x9A, 0xE4, 0x9B, 0x6C, 0x69, 0x99, 0xF8, 0x78, 0x48, 0x30, 0x45, 0xD5, 0xAD, 0xE1, 0x0D,
-0x3C, 0x45, 0x60, 0xFC, 0x32, 0x96, 0x51, 0x27, 0xBC, 0x67, 0xC3, 0xCA, 0x2E, 0xB6, 0x6B, 0xEA,
-0x46, 0xC7, 0xC7, 0x20, 0xA0, 0xB1, 0x1F, 0x65, 0xDE, 0x48, 0x08, 0xBA, 0xA4, 0x4E, 0xA9, 0xF2,
-0x83, 0x46, 0x37, 0x84, 0xEB, 0xE8, 0xCC, 0x81, 0x48, 0x43, 0x67, 0x4E, 0x72, 0x2A, 0x9B, 0x5C,
-0xBD, 0x4C, 0x1B, 0x28, 0x8A, 0x5C, 0x22, 0x7B, 0xB4, 0xAB, 0x98, 0xD9, 0xEE, 0xE0, 0x51, 0x83,
-0xC3, 0x09, 0x46, 0x4E, 0x6D, 0x3E, 0x99, 0xFA, 0x95, 0x17, 0xDA, 0x7C, 0x33, 0x57, 0x41, 0x3C,
-0x8D, 0x51, 0xED, 0x0B, 0xB6, 0x5C, 0xAF, 0x2C, 0x63, 0x1A, 0xDF, 0x57, 0xC8, 0x3F, 0xBC, 0xE9,
-0x5D, 0xC4, 0x9B, 0xAF, 0x45, 0x99, 0xE2, 0xA3, 0x5A, 0x24, 0xB4, 0xBA, 0xA9, 0x56, 0x3D, 0xCF,
-0x6F, 0xAA, 0xFF, 0x49, 0x58, 0xBE, 0xF0, 0xA8, 0xFF, 0xF4, 0xB8, 0xAD, 0xE9, 0x37, 0xFB, 0xBA,
-0xB8, 0xF4, 0x0B, 0x3A, 0xF9, 0xE8, 0x43, 0x42, 0x1E, 0x89, 0xD8, 0x84, 0xCB, 0x13, 0xF1, 0xD9,
-0xBB, 0xE1, 0x89, 0x60, 0xB8, 0x8C, 0x28, 0x56, 0xAC, 0x14, 0x1D, 0x9C, 0x0A, 0xE7, 0x71, 0xEB,
-0xCF, 0x0E, 0xDD, 0x3D, 0xA9, 0x96, 0xA1, 0x48, 0xBD, 0x3C, 0xF7, 0xAF, 0xB5, 0x0D, 0x22, 0x4C,
-0xC0, 0x11, 0x81, 0xEC, 0x56, 0x3B, 0xF6, 0xD3, 0xA2, 0xE2, 0x5B, 0xB7, 0xB2, 0x04, 0x22, 0x52,
-0x95, 0x80, 0x93, 0x69, 0xE8, 0x8E, 0x4C, 0x65, 0xF1, 0x91, 0x03, 0x2D, 0x70, 0x74, 0x02, 0xEA,
-0x8B, 0x67, 0x15, 0x29, 0x69, 0x52, 0x02, 0xBB, 0xD7, 0xDF, 0x50, 0x6A, 0x55, 0x46, 0xBF, 0xA0,
-0xA3, 0x28, 0x61, 0x7F, 0x70, 0xD0, 0xC3, 0xA2, 0xAA, 0x2C, 0x21, 0xAA, 0x47, 0xCE, 0x28, 0x9C,
-0x06, 0x45, 0x76, 0xBF, 0x82, 0x18, 0x27, 0xB4, 0xD5, 0xAE, 0xB4, 0xCB, 0x50, 0xE6, 0x6B, 0xF4,
-0x4C, 0x86, 0x71, 0x30, 0xE9, 0xA6, 0xDF, 0x16, 0x86, 0xE0, 0xD8, 0xFF, 0x40, 0xDD, 0xFB, 0xD0,
-0x42, 0x88, 0x7F, 0xA3, 0x33, 0x3A, 0x2E, 0x5C, 0x1E, 0x41, 0x11, 0x81, 0x63, 0xCE, 0x18, 0x71,
-0x6B, 0x2B, 0xEC, 0xA6, 0x8A, 0xB7, 0x31, 0x5C, 0x3A, 0x6A, 0x47, 0xE0, 0xC3, 0x79, 0x59, 0xD6,
-0x20, 0x1A, 0xAF, 0xF2, 0x6A, 0x98, 0xAA, 0x72, 0xBC, 0x57, 0x4A, 0xD2, 0x4B, 0x9D, 0xBB, 0x10,
-0xFC, 0xB0, 0x4C, 0x41, 0xE5, 0xED, 0x1D, 0x3D, 0x5E, 0x28, 0x9D, 0x9C, 0xCC, 0xBF, 0xB3, 0x51,
-0xDA, 0xA7, 0x47, 0xE5, 0x84, 0x53, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x81, 0xF4, 0x30, 0x81,
-0xF1, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xAD, 0xBD,
-0x98, 0x7A, 0x34, 0xB4, 0x26, 0xF7, 0xFA, 0xC4, 0x26, 0x54, 0xEF, 0x03, 0xBD, 0xE0, 0x24, 0xCB,
-0x54, 0x1A, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0xBB, 0xAF, 0x7E,
-0x02, 0x3D, 0xFA, 0xA6, 0xF1, 0x3C, 0x84, 0x8E, 0xAD, 0xEE, 0x38, 0x98, 0xEC, 0xD9, 0x32, 0x32,
-0xD4, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04, 0x04, 0x03, 0x02, 0x01,
-0x86, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04, 0x05, 0x30, 0x03, 0x01,
-0x01, 0xFF, 0x30, 0x11, 0x06, 0x03, 0x55, 0x1D, 0x20, 0x04, 0x0A, 0x30, 0x08, 0x30, 0x06, 0x06,
-0x04, 0x55, 0x1D, 0x20, 0x00, 0x30, 0x44, 0x06, 0x03, 0x55, 0x1D, 0x1F, 0x04, 0x3D, 0x30, 0x3B,
-0x30, 0x39, 0xA0, 0x37, 0xA0, 0x35, 0x86, 0x33, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x63,
-0x72, 0x6C, 0x2E, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2E, 0x63, 0x6F, 0x6D,
-0x2F, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6E, 0x61,
-0x6C, 0x43, 0x41, 0x52, 0x6F, 0x6F, 0x74, 0x2E, 0x63, 0x72, 0x6C, 0x30, 0x35, 0x06, 0x08, 0x2B,
-0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x29, 0x30, 0x27, 0x30, 0x25, 0x06, 0x08, 0x2B,
-0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x19, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F,
-0x6F, 0x63, 0x73, 0x70, 0x2E, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2E, 0x63,
-0x6F, 0x6D, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0C, 0x05,
-0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x64, 0xBF, 0x83, 0xF1, 0x5F, 0x9A, 0x85, 0xD0, 0xCD, 0xB8,
-0xA1, 0x29, 0x57, 0x0D, 0xE8, 0x5A, 0xF7, 0xD1, 0xE9, 0x3E, 0xF2, 0x76, 0x04, 0x6E, 0xF1, 0x52,
-0x70, 0xBB, 0x1E, 0x3C, 0xFF, 0x4D, 0x0D, 0x74, 0x6A, 0xCC, 0x81, 0x82, 0x25, 0xD3, 0xC3, 0xA0,
-0x2A, 0x5D, 0x4C, 0xF5, 0xBA, 0x8B, 0xA1, 0x6D, 0xC4, 0x54, 0x09, 0x75, 0xC7, 0xE3, 0x27, 0x0E,
-0x5D, 0x84, 0x79, 0x37, 0x40, 0x13, 0x77, 0xF5, 0xB4, 0xAC, 0x1C, 0xD0, 0x3B, 0xAB, 0x17, 0x12,
-0xD6, 0xEF, 0x34, 0x18, 0x7E, 0x2B, 0xE9, 0x79, 0xD3, 0xAB, 0x57, 0x45, 0x0C, 0xAF, 0x28, 0xFA,
-0xD0, 0xDB, 0xE5, 0x50, 0x95, 0x88, 0xBB, 0xDF, 0x85, 0x57, 0x69, 0x7D, 0x92, 0xD8, 0x52, 0xCA,
-0x73, 0x81, 0xBF, 0x1C, 0xF3, 0xE6, 0xB8, 0x6E, 0x66, 0x11, 0x05, 0xB3, 0x1E, 0x94, 0x2D, 0x7F,
-0x91, 0x95, 0x92, 0x59, 0xF1, 0x4C, 0xCE, 0xA3, 0x91, 0x71, 0x4C, 0x7C, 0x47, 0x0C, 0x3B, 0x0B,
-0x19, 0xF6, 0xA1, 0xB1, 0x6C, 0x86, 0x3E, 0x5C, 0xAA, 0xC4, 0x2E, 0x82, 0xCB, 0xF9, 0x07, 0x96,
-0xBA, 0x48, 0x4D, 0x90, 0xF2, 0x94, 0xC8, 0xA9, 0x73, 0xA2, 0xEB, 0x06, 0x7B, 0x23, 0x9D, 0xDE,
-0xA2, 0xF3, 0x4D, 0x55, 0x9F, 0x7A, 0x61, 0x45, 0x98, 0x18, 0x68, 0xC7, 0x5E, 0x40, 0x6B, 0x23,
-0xF5, 0x79, 0x7A, 0xEF, 0x8C, 0xB5, 0x6B, 0x8B, 0xB7, 0x6F, 0x46, 0xF4, 0x7B, 0xF1, 0x3D, 0x4B,
-0x04, 0xD8, 0x93, 0x80, 0x59, 0x5A, 0xE0, 0x41, 0x24, 0x1D, 0xB2, 0x8F, 0x15, 0x60, 0x58, 0x47,
-0xDB, 0xEF, 0x6E, 0x46, 0xFD, 0x15, 0xF5, 0xD9, 0x5F, 0x9A, 0xB3, 0xDB, 0xD8, 0xB8, 0xE4, 0x40,
-0xB3, 0xCD, 0x97, 0x39, 0xAE, 0x85, 0xBB, 0x1D, 0x8E, 0xBC, 0xDC, 0x87, 0x9B, 0xD1, 0xA6, 0xEF,
-0xF1, 0x3B, 0x6F, 0x10, 0x38, 0x6F, 0x16, 0x03, 0x03, 0x02, 0x0F, 0x0C, 0x00, 0x02, 0x0B, 0x00,
-0x80, 0xBB, 0xBC, 0x2D, 0xCA, 0xD8, 0x46, 0x74, 0x90, 0x7C, 0x43, 0xFC, 0xF5, 0x80, 0xE9, 0xCF,
-0xDB, 0xD9, 0x58, 0xA3, 0xF5, 0x68, 0xB4, 0x2D, 0x4B, 0x08, 0xEE, 0xD4, 0xEB, 0x0F, 0xB3, 0x50,
-0x4C, 0x6C, 0x03, 0x02, 0x76, 0xE7, 0x10, 0x80, 0x0C, 0x5C, 0xCB, 0xBA, 0xA8, 0x92, 0x26, 0x14,
-0xC5, 0xBE, 0xEC, 0xA5, 0x65, 0xA5, 0xFD, 0xF1, 0xD2, 0x87, 0xA2, 0xBC, 0x04, 0x9B, 0xE6, 0x77,
-0x80, 0x60, 0xE9, 0x1A, 0x92, 0xA7, 0x57, 0xE3, 0x04, 0x8F, 0x68, 0xB0, 0x76, 0xF7, 0xD3, 0x6C,
-0xC8, 0xF2, 0x9B, 0xA5, 0xDF, 0x81, 0xDC, 0x2C, 0xA7, 0x25, 0xEC, 0xE6, 0x62, 0x70, 0xCC, 0x9A,
-0x50, 0x35, 0xD8, 0xCE, 0xCE, 0xEF, 0x9E, 0xA0, 0x27, 0x4A, 0x63, 0xAB, 0x1E, 0x58, 0xFA, 0xFD,
-0x49, 0x88, 0xD0, 0xF6, 0x5D, 0x14, 0x67, 0x57, 0xDA, 0x07, 0x1D, 0xF0, 0x45, 0xCF, 0xE1, 0x6B,
-0x9B, 0x00, 0x01, 0x02, 0x00, 0x80, 0x55, 0xFB, 0xB6, 0x92, 0x5A, 0x0C, 0x93, 0x56, 0xE8, 0x1C,
-0xCD, 0x23, 0xFC, 0xB9, 0xBE, 0x98, 0x2D, 0x01, 0x4F, 0x35, 0xCE, 0x37, 0xD0, 0xF8, 0xA0, 0x0C,
-0x42, 0x3B, 0x27, 0x25, 0x10, 0x04, 0x46, 0x02, 0x19, 0x1F, 0xDC, 0xDA, 0x08, 0x33, 0x42, 0x63,
-0x5F, 0x3C, 0x82, 0x1F, 0xFA, 0x46, 0x9E, 0x34, 0xCB, 0x30, 0xED, 0x55, 0x11, 0xD7, 0x00, 0x0C,
-0x76, 0x0A, 0x48, 0x0C, 0x1D, 0x7A, 0x13, 0x3D, 0xC6, 0x41, 0xD5, 0x7B, 0xD5, 0x2A, 0xE0, 0xA3,
-0xB5, 0xAB, 0x0E, 0xBC, 0xD3, 0x17, 0x14, 0xFD, 0x21, 0x8C, 0x78, 0xB1, 0x4D, 0xF2, 0x5A, 0x44,
-0x89, 0x4E, 0x82, 0x3D, 0x8B, 0xAC, 0x5D, 0x49, 0xB2, 0x19, 0x21, 0x67, 0xCA, 0x70, 0xC7, 0x8D,
-0x35, 0x89, 0xD1, 0x9D, 0x34, 0xD4, 0x7A, 0xAF, 0x1D, 0x9D, 0x86, 0x0F, 0xEF, 0x5A, 0x4F, 0x9E,
-0xDA, 0xF5, 0x02, 0x7E, 0x22, 0x67, 0x01, 0x01, 0x01, 0x00, 0x7B, 0x59, 0x4A, 0x29, 0xF9, 0x9F,
-0x53, 0x41, 0x8B, 0xE6, 0x79, 0xE9, 0xF5, 0x73, 0x7C, 0xC8, 0xE9, 0x40, 0x1F, 0x39, 0x08, 0x06,
-0x84, 0x3D, 0x80, 0x6B, 0xF0, 0x0C, 0x54, 0xC2, 0x18, 0xD6, 0xAD, 0x53, 0xFD, 0x7C, 0xB3, 0x8B,
-0xCE, 0x70, 0x4F, 0xCF, 0xFC, 0xEF, 0xC8, 0x2D, 0xE4, 0xD0, 0xC2, 0x7B, 0x80, 0x57, 0xA2, 0x5F,
-0x7F, 0x36, 0xB0, 0xBC, 0x16, 0xB7, 0xC1, 0xC2, 0x12, 0x96, 0x94, 0x88, 0x9D, 0x68, 0xD3, 0xDF,
-0xB1, 0x3C, 0xA0, 0x93, 0x3A, 0x4D, 0x90, 0x66, 0x3F, 0xB0, 0x89, 0xE7, 0x21, 0x58, 0xF0, 0x39,
-0x8B, 0x83, 0x32, 0x93, 0xCB, 0xA9, 0x57, 0x2B, 0x0A, 0x02, 0x5E, 0xF9, 0xE6, 0x10, 0x9A, 0x7F,
-0x2A, 0x23, 0x3D, 0x5C, 0x3F, 0x38, 0x3A, 0x40, 0x0C, 0x1B, 0x7C, 0x0D, 0x5D, 0x7C, 0xF1, 0xB2,
-0x88, 0x71, 0xA2, 0x57, 0x02, 0x94, 0x12, 0x45, 0x60, 0xEC, 0xC2, 0xB2, 0xCB, 0x31, 0xF2, 0xF8,
-0x1B, 0xDD, 0xEA, 0xF6, 0x40, 0xF6, 0x07, 0xEA, 0xC2, 0x71, 0xA6, 0x07, 0xC8, 0x45, 0xE4, 0xE2,
-0x1D, 0x49, 0x53, 0x40, 0x5B, 0x57, 0x68, 0xA4, 0x81, 0x1C, 0xCB, 0x33, 0x95, 0x12, 0x0F, 0x4D,
-0xAD, 0x9B, 0x70, 0x53, 0xDC, 0x8B, 0xE6, 0x24, 0x0D, 0x39, 0x83, 0x0E, 0x17, 0xFB, 0x13, 0xF2,
-0x45, 0x2C, 0x52, 0x44, 0xA3, 0x22, 0x0D, 0x32, 0xDD, 0x21, 0x05, 0x2B, 0xA1, 0xAC, 0xC4, 0x84,
-0xD7, 0x18, 0x2F, 0xA2, 0xB4, 0xF5, 0x4E, 0xED, 0x72, 0x56, 0xB7, 0x87, 0x81, 0xF8, 0x51, 0x30,
-0x01, 0xBE, 0x17, 0x31, 0xEE, 0x21, 0xBA, 0x16, 0xAF, 0xEB, 0x0A, 0x54, 0x69, 0x84, 0xB3, 0xDC,
-0xCA, 0x04, 0xBB, 0x49, 0x84, 0x4C, 0x0F, 0xCE, 0x20, 0xE2, 0x71, 0xF3, 0x43, 0x26, 0x1D, 0xA4,
-0xAF, 0xAE, 0x3F, 0x9E, 0xA3, 0x44, 0xDC, 0xAE, 0xB7, 0x5B, 0x16, 0x03, 0x03, 0x00, 0x04, 0x0E,
-0x00, 0x00, 0x00};
+static unsigned char tls1_hello[] = { /* server hello etc. */
+ 0x16, 0x03, 0x03, 0x00, 0x39, 0x02, 0x00, 0x00, 0x35, 0x03, 0x03, 0x95,
+ 0x66, 0x0A, 0x55, 0xBC,
+ 0x04, 0x84, 0xBD, 0x7E, 0xA6, 0xCE, 0x2B, 0x1C, 0x7B, 0x72, 0x28, 0x0D,
+ 0x8E, 0x2C, 0x34, 0xC8,
+ 0xFF, 0x73, 0xBA, 0x6C, 0x9F, 0x20, 0xB9, 0x18, 0xCD, 0x22, 0xCB, 0x00,
+ 0x00, 0x9E, 0x00, 0x00,
+ 0x0D, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x00, 0x23,
+ 0x00, 0x00, 0x16, 0x03,
+ 0x03, 0x10, 0xE3, 0x0B, 0x00, 0x10, 0xDF, 0x00, 0x10, 0xDC, 0x00, 0x05,
+ 0x4F, 0x30, 0x82, 0x05,
+ 0x4B, 0x30, 0x82, 0x04, 0x33, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x10,
+ 0x4C, 0x8E, 0x18, 0x71,
+ 0x4B, 0x34, 0xE7, 0x5E, 0x8D, 0xAE, 0xFB, 0xE8, 0xF6, 0x4C, 0x3A, 0x82,
+ 0x30, 0x0D, 0x06, 0x09,
+ 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30,
+ 0x81, 0x90, 0x31, 0x0B,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47, 0x42, 0x31,
+ 0x1B, 0x30, 0x19, 0x06,
+ 0x03, 0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x72, 0x20, 0x4D, 0x61,
+ 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0E,
+ 0x06, 0x03, 0x55, 0x04,
+ 0x07, 0x13, 0x07, 0x53, 0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A,
+ 0x30, 0x18, 0x06, 0x03,
+ 0x55, 0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20,
+ 0x43, 0x41, 0x20, 0x4C,
+ 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03,
+ 0x55, 0x04, 0x03, 0x13,
+ 0x2D, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x52, 0x53, 0x41, 0x20,
+ 0x44, 0x6F, 0x6D, 0x61,
+ 0x69, 0x6E, 0x20, 0x56, 0x61, 0x6C, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6F,
+ 0x6E, 0x20, 0x53, 0x65,
+ 0x63, 0x75, 0x72, 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20,
+ 0x43, 0x41, 0x30, 0x1E,
+ 0x17, 0x0D, 0x31, 0x36, 0x30, 0x37, 0x30, 0x37, 0x30, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x5A, 0x17,
+ 0x0D, 0x31, 0x37, 0x30, 0x39, 0x30, 0x35, 0x32, 0x33, 0x35, 0x39, 0x35,
+ 0x39, 0x5A, 0x30, 0x59,
+ 0x31, 0x21, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x18, 0x44,
+ 0x6F, 0x6D, 0x61, 0x69,
+ 0x6E, 0x20, 0x43, 0x6F, 0x6E, 0x74, 0x72, 0x6F, 0x6C, 0x20, 0x56, 0x61,
+ 0x6C, 0x69, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x31, 0x1D, 0x30, 0x1B, 0x06, 0x03, 0x55, 0x04, 0x0B,
+ 0x13, 0x14, 0x50, 0x6F,
+ 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x53, 0x53, 0x4C, 0x20, 0x57, 0x69,
+ 0x6C, 0x64, 0x63, 0x61,
+ 0x72, 0x64, 0x31, 0x15, 0x30, 0x13, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0C,
+ 0x0C, 0x2A, 0x2E, 0x62,
+ 0x61, 0x64, 0x73, 0x73, 0x6C, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x82, 0x01,
+ 0x22, 0x30, 0x0D, 0x06,
+ 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00,
+ 0x03, 0x82, 0x01, 0x0F,
+ 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0xC2, 0x04,
+ 0xEC, 0xF8, 0x8C, 0xEE,
+ 0x04, 0xC2, 0xB3, 0xD8, 0x50, 0xD5, 0x70, 0x58, 0xCC, 0x93, 0x18, 0xEB,
+ 0x5C, 0xA8, 0x68, 0x49,
+ 0xB0, 0x22, 0xB5, 0xF9, 0x95, 0x9E, 0xB1, 0x2B, 0x2C, 0x76, 0x3E, 0x6C,
+ 0xC0, 0x4B, 0x60, 0x4C,
+ 0x4C, 0xEA, 0xB2, 0xB4, 0xC0, 0x0F, 0x80, 0xB6, 0xB0, 0xF9, 0x72, 0xC9,
+ 0x86, 0x02, 0xF9, 0x5C,
+ 0x41, 0x5D, 0x13, 0x2B, 0x7F, 0x71, 0xC4, 0x4B, 0xBC, 0xE9, 0x94, 0x2E,
+ 0x50, 0x37, 0xA6, 0x67,
+ 0x1C, 0x61, 0x8C, 0xF6, 0x41, 0x42, 0xC5, 0x46, 0xD3, 0x16, 0x87, 0x27,
+ 0x9F, 0x74, 0xEB, 0x0A,
+ 0x9D, 0x11, 0x52, 0x26, 0x21, 0x73, 0x6C, 0x84, 0x4C, 0x79, 0x55, 0xE4,
+ 0xD1, 0x6B, 0xE8, 0x06,
+ 0x3D, 0x48, 0x15, 0x52, 0xAD, 0xB3, 0x28, 0xDB, 0xAA, 0xFF, 0x6E, 0xFF,
+ 0x60, 0x95, 0x4A, 0x77,
+ 0x6B, 0x39, 0xF1, 0x24, 0xD1, 0x31, 0xB6, 0xDD, 0x4D, 0xC0, 0xC4, 0xFC,
+ 0x53, 0xB9, 0x6D, 0x42,
+ 0xAD, 0xB5, 0x7C, 0xFE, 0xAE, 0xF5, 0x15, 0xD2, 0x33, 0x48, 0xE7, 0x22,
+ 0x71, 0xC7, 0xC2, 0x14,
+ 0x7A, 0x6C, 0x28, 0xEA, 0x37, 0x4A, 0xDF, 0xEA, 0x6C, 0xB5, 0x72, 0xB4,
+ 0x7E, 0x5A, 0xA2, 0x16,
+ 0xDC, 0x69, 0xB1, 0x57, 0x44, 0xDB, 0x0A, 0x12, 0xAB, 0xDE, 0xC3, 0x0F,
+ 0x47, 0x74, 0x5C, 0x41,
+ 0x22, 0xE1, 0x9A, 0xF9, 0x1B, 0x93, 0xE6, 0xAD, 0x22, 0x06, 0x29, 0x2E,
+ 0xB1, 0xBA, 0x49, 0x1C,
+ 0x0C, 0x27, 0x9E, 0xA3, 0xFB, 0x8B, 0xF7, 0x40, 0x72, 0x00, 0xAC, 0x92,
+ 0x08, 0xD9, 0x8C, 0x57,
+ 0x84, 0x53, 0x81, 0x05, 0xCB, 0xE6, 0xFE, 0x6B, 0x54, 0x98, 0x40, 0x27,
+ 0x85, 0xC7, 0x10, 0xBB,
+ 0x73, 0x70, 0xEF, 0x69, 0x18, 0x41, 0x07, 0x45, 0x55, 0x7C, 0xF9, 0x64,
+ 0x3F, 0x3D, 0x2C, 0xC3,
+ 0xA9, 0x7C, 0xEB, 0x93, 0x1A, 0x4C, 0x86, 0xD1, 0xCA, 0x85, 0x02, 0x03,
+ 0x01, 0x00, 0x01, 0xA3,
+ 0x82, 0x01, 0xD5, 0x30, 0x82, 0x01, 0xD1, 0x30, 0x1F, 0x06, 0x03, 0x55,
+ 0x1D, 0x23, 0x04, 0x18,
+ 0x30, 0x16, 0x80, 0x14, 0x90, 0xAF, 0x6A, 0x3A, 0x94, 0x5A, 0x0B, 0xD8,
+ 0x90, 0xEA, 0x12, 0x56,
+ 0x73, 0xDF, 0x43, 0xB4, 0x3A, 0x28, 0xDA, 0xE7, 0x30, 0x1D, 0x06, 0x03,
+ 0x55, 0x1D, 0x0E, 0x04,
+ 0x16, 0x04, 0x14, 0x9D, 0xEE, 0xC1, 0x7B, 0x81, 0x0B, 0x3A, 0x47, 0x69,
+ 0x71, 0x18, 0x7D, 0x11,
+ 0x37, 0x93, 0xBC, 0xA5, 0x1B, 0x3F, 0xFB, 0x30, 0x0E, 0x06, 0x03, 0x55,
+ 0x1D, 0x0F, 0x01, 0x01,
+ 0xFF, 0x04, 0x04, 0x03, 0x02, 0x05, 0xA0, 0x30, 0x0C, 0x06, 0x03, 0x55,
+ 0x1D, 0x13, 0x01, 0x01,
+ 0xFF, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x25,
+ 0x04, 0x16, 0x30, 0x14,
+ 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01, 0x06, 0x08,
+ 0x2B, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x03, 0x02, 0x30, 0x4F, 0x06, 0x03, 0x55, 0x1D, 0x20, 0x04,
+ 0x48, 0x30, 0x46, 0x30,
+ 0x3A, 0x06, 0x0B, 0x2B, 0x06, 0x01, 0x04, 0x01, 0xB2, 0x31, 0x01, 0x02,
+ 0x02, 0x07, 0x30, 0x2B,
+ 0x30, 0x29, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
+ 0x16, 0x1D, 0x68, 0x74,
+ 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65,
+ 0x2E, 0x63, 0x6F, 0x6D,
+ 0x6F, 0x64, 0x6F, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x43, 0x50, 0x53, 0x30,
+ 0x08, 0x06, 0x06, 0x67,
+ 0x81, 0x0C, 0x01, 0x02, 0x01, 0x30, 0x54, 0x06, 0x03, 0x55, 0x1D, 0x1F,
+ 0x04, 0x4D, 0x30, 0x4B,
+ 0x30, 0x49, 0xA0, 0x47, 0xA0, 0x45, 0x86, 0x43, 0x68, 0x74, 0x74, 0x70,
+ 0x3A, 0x2F, 0x2F, 0x63,
+ 0x72, 0x6C, 0x2E, 0x63, 0x6F, 0x6D, 0x6F, 0x64, 0x6F, 0x63, 0x61, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x2F,
+ 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x52, 0x53, 0x41, 0x44, 0x6F, 0x6D,
+ 0x61, 0x69, 0x6E, 0x56,
+ 0x61, 0x6C, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x53, 0x65, 0x63,
+ 0x75, 0x72, 0x65, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x41, 0x2E, 0x63, 0x72, 0x6C, 0x30,
+ 0x81, 0x85, 0x06, 0x08,
+ 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x79, 0x30, 0x77,
+ 0x30, 0x4F, 0x06, 0x08,
+ 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x02, 0x86, 0x43, 0x68, 0x74,
+ 0x74, 0x70, 0x3A, 0x2F,
+ 0x2F, 0x63, 0x72, 0x74, 0x2E, 0x63, 0x6F, 0x6D, 0x6F, 0x64, 0x6F, 0x63,
+ 0x61, 0x2E, 0x63, 0x6F,
+ 0x6D, 0x2F, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x52, 0x53, 0x41, 0x44,
+ 0x6F, 0x6D, 0x61, 0x69,
+ 0x6E, 0x56, 0x61, 0x6C, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x53,
+ 0x65, 0x63, 0x75, 0x72,
+ 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x41, 0x2E, 0x63, 0x72,
+ 0x74, 0x30, 0x24, 0x06,
+ 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x18, 0x68,
+ 0x74, 0x74, 0x70, 0x3A,
+ 0x2F, 0x2F, 0x6F, 0x63, 0x73, 0x70, 0x2E, 0x63, 0x6F, 0x6D, 0x6F, 0x64,
+ 0x6F, 0x63, 0x61, 0x2E,
+ 0x63, 0x6F, 0x6D, 0x30, 0x23, 0x06, 0x03, 0x55, 0x1D, 0x11, 0x04, 0x1C,
+ 0x30, 0x1A, 0x82, 0x0C,
+ 0x2A, 0x2E, 0x62, 0x61, 0x64, 0x73, 0x73, 0x6C, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x82, 0x0A, 0x62, 0x61,
+ 0x64, 0x73, 0x73, 0x6C, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x0D, 0x06, 0x09,
+ 0x2A, 0x86, 0x48, 0x86,
+ 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00,
+ 0x75, 0x48, 0x83, 0x88,
+ 0x9C, 0x55, 0x24, 0x37, 0x30, 0x07, 0xEB, 0x26, 0x68, 0xC8, 0x79, 0x1C,
+ 0x5C, 0xAE, 0x9A, 0x02,
+ 0x9A, 0xB5, 0x52, 0x75, 0x44, 0xAC, 0xA9, 0xED, 0x59, 0x65, 0xD0, 0xC6,
+ 0x47, 0x26, 0x04, 0x8D,
+ 0x57, 0x89, 0x16, 0x2E, 0x71, 0x18, 0x48, 0x98, 0x68, 0x1C, 0xF6, 0x31,
+ 0xF5, 0x26, 0x4B, 0xE8,
+ 0x81, 0x44, 0xB1, 0xFF, 0x5C, 0x65, 0x3D, 0x78, 0x54, 0x94, 0xC3, 0x86,
+ 0x9D, 0x48, 0x96, 0xE8,
+ 0x32, 0xAF, 0xE1, 0x8F, 0x94, 0x47, 0xBE, 0x37, 0x8C, 0xC3, 0xED, 0x4D,
+ 0x97, 0xBB, 0xC6, 0x2A,
+ 0x37, 0x72, 0x01, 0x3A, 0x8F, 0x82, 0xA4, 0x34, 0x44, 0xC4, 0xC4, 0xF8,
+ 0x50, 0x24, 0x48, 0x9E,
+ 0x19, 0xF0, 0xEC, 0xE1, 0xC6, 0x13, 0x44, 0x26, 0xB6, 0x65, 0xE1, 0x62,
+ 0x49, 0x87, 0xA4, 0xF4,
+ 0xD8, 0xC4, 0x39, 0x3C, 0x7D, 0x42, 0xC8, 0xA4, 0x2A, 0x54, 0x05, 0xA0,
+ 0xDC, 0x0A, 0xF8, 0x2B,
+ 0x22, 0x94, 0x93, 0x78, 0x4E, 0x6A, 0x36, 0x1B, 0xD2, 0xE7, 0xE9, 0xAE,
+ 0x84, 0xED, 0x13, 0x1D,
+ 0xA1, 0xF7, 0xA2, 0x83, 0x81, 0x03, 0x4C, 0x9E, 0x21, 0xFB, 0xBF, 0xA8,
+ 0x30, 0xFE, 0xEB, 0x00,
+ 0x68, 0xB1, 0x7F, 0xBA, 0x5D, 0xE2, 0x5D, 0xFF, 0x41, 0x1F, 0xD6, 0xF5,
+ 0xA6, 0x5C, 0x8A, 0xEF,
+ 0x81, 0x80, 0xC8, 0xF1, 0x52, 0x00, 0x17, 0x9D, 0xD1, 0x96, 0x1A, 0x7D,
+ 0x5E, 0xD2, 0x83, 0xB3,
+ 0x82, 0xC2, 0x3D, 0x46, 0x83, 0xA5, 0x1E, 0xB4, 0x36, 0x35, 0x38, 0xC4,
+ 0x7A, 0x2E, 0xDF, 0x0B,
+ 0xA1, 0x98, 0x63, 0x58, 0x0B, 0x1E, 0xD0, 0x6D, 0x83, 0x1F, 0xF1, 0x72,
+ 0x4D, 0x09, 0xAC, 0x96,
+ 0x1A, 0x0B, 0xE5, 0xF6, 0x34, 0x4C, 0xAB, 0xBC, 0xBC, 0x99, 0x5B, 0x82,
+ 0x59, 0xE6, 0x6C, 0xD3,
+ 0xDB, 0x98, 0xE0, 0xCE, 0x95, 0x3B, 0xCF, 0x4E, 0x17, 0xC3, 0xEE, 0x3A,
+ 0x00, 0x06, 0x0C, 0x30,
+ 0x82, 0x06, 0x08, 0x30, 0x82, 0x03, 0xF0, 0xA0, 0x03, 0x02, 0x01, 0x02,
+ 0x02, 0x10, 0x2B, 0x2E,
+ 0x6E, 0xEA, 0xD9, 0x75, 0x36, 0x6C, 0x14, 0x8A, 0x6E, 0xDB, 0xA3, 0x7C,
+ 0x8C, 0x07, 0x30, 0x0D,
+ 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0C, 0x05,
+ 0x00, 0x30, 0x81, 0x85,
+ 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47,
+ 0x42, 0x31, 0x1B, 0x30,
+ 0x19, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x72, 0x20,
+ 0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10,
+ 0x30, 0x0E, 0x06, 0x03,
+ 0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64,
+ 0x31, 0x1A, 0x30, 0x18,
+ 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44,
+ 0x4F, 0x20, 0x43, 0x41,
+ 0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2B, 0x30, 0x29,
+ 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x22, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x52, 0x53,
+ 0x41, 0x20, 0x43, 0x65,
+ 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20,
+ 0x41, 0x75, 0x74, 0x68,
+ 0x6F, 0x72, 0x69, 0x74, 0x79, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x34, 0x30,
+ 0x32, 0x31, 0x32, 0x30,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17, 0x0D, 0x32, 0x39, 0x30, 0x32,
+ 0x31, 0x31, 0x32, 0x33,
+ 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x81, 0x90, 0x31, 0x0B, 0x30, 0x09,
+ 0x06, 0x03, 0x55, 0x04,
+ 0x06, 0x13, 0x02, 0x47, 0x42, 0x31, 0x1B, 0x30, 0x19, 0x06, 0x03, 0x55,
+ 0x04, 0x08, 0x13, 0x12,
+ 0x47, 0x72, 0x65, 0x61, 0x74, 0x65, 0x72, 0x20, 0x4D, 0x61, 0x6E, 0x63,
+ 0x68, 0x65, 0x73, 0x74,
+ 0x65, 0x72, 0x31, 0x10, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13,
+ 0x07, 0x53, 0x61, 0x6C,
+ 0x66, 0x6F, 0x72, 0x64, 0x31, 0x1A, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04,
+ 0x0A, 0x13, 0x11, 0x43,
+ 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x43, 0x41, 0x20, 0x4C, 0x69, 0x6D,
+ 0x69, 0x74, 0x65, 0x64,
+ 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2D, 0x43,
+ 0x4F, 0x4D, 0x4F, 0x44,
+ 0x4F, 0x20, 0x52, 0x53, 0x41, 0x20, 0x44, 0x6F, 0x6D, 0x61, 0x69, 0x6E,
+ 0x20, 0x56, 0x61, 0x6C,
+ 0x69, 0x64, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20, 0x53, 0x65, 0x63, 0x75,
+ 0x72, 0x65, 0x20, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22,
+ 0x30, 0x0D, 0x06, 0x09,
+ 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
+ 0x82, 0x01, 0x0F, 0x00,
+ 0x30, 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00, 0x8E, 0xC2, 0x02,
+ 0x19, 0xE1, 0xA0, 0x59,
+ 0xA4, 0xEB, 0x38, 0x35, 0x8D, 0x2C, 0xFD, 0x01, 0xD0, 0xD3, 0x49, 0xC0,
+ 0x64, 0xC7, 0x0B, 0x62,
+ 0x05, 0x45, 0x16, 0x3A, 0xA8, 0xA0, 0xC0, 0x0C, 0x02, 0x7F, 0x1D, 0xCC,
+ 0xDB, 0xC4, 0xA1, 0x6D,
+ 0x77, 0x03, 0xA3, 0x0F, 0x86, 0xF9, 0xE3, 0x06, 0x9C, 0x3E, 0x0B, 0x81,
+ 0x8A, 0x9B, 0x49, 0x1B,
+ 0xAD, 0x03, 0xBE, 0xFA, 0x4B, 0xDB, 0x8C, 0x20, 0xED, 0xD5, 0xCE, 0x5E,
+ 0x65, 0x8E, 0x3E, 0x0D,
+ 0xAF, 0x4C, 0xC2, 0xB0, 0xB7, 0x45, 0x5E, 0x52, 0x2F, 0x34, 0xDE, 0x48,
+ 0x24, 0x64, 0xB4, 0x41,
+ 0xAE, 0x00, 0x97, 0xF7, 0xBE, 0x67, 0xDE, 0x9E, 0xD0, 0x7A, 0xA7, 0x53,
+ 0x80, 0x3B, 0x7C, 0xAD,
+ 0xF5, 0x96, 0x55, 0x6F, 0x97, 0x47, 0x0A, 0x7C, 0x85, 0x8B, 0x22, 0x97,
+ 0x8D, 0xB3, 0x84, 0xE0,
+ 0x96, 0x57, 0xD0, 0x70, 0x18, 0x60, 0x96, 0x8F, 0xEE, 0x2D, 0x07, 0x93,
+ 0x9D, 0xA1, 0xBA, 0xCA,
+ 0xD1, 0xCD, 0x7B, 0xE9, 0xC4, 0x2A, 0x9A, 0x28, 0x21, 0x91, 0x4D, 0x6F,
+ 0x92, 0x4F, 0x25, 0xA5,
+ 0xF2, 0x7A, 0x35, 0xDD, 0x26, 0xDC, 0x46, 0xA5, 0xD0, 0xAC, 0x59, 0x35,
+ 0x8C, 0xFF, 0x4E, 0x91,
+ 0x43, 0x50, 0x3F, 0x59, 0x93, 0x1E, 0x6C, 0x51, 0x21, 0xEE, 0x58, 0x14,
+ 0xAB, 0xFE, 0x75, 0x50,
+ 0x78, 0x3E, 0x4C, 0xB0, 0x1C, 0x86, 0x13, 0xFA, 0x6B, 0x98, 0xBC, 0xE0,
+ 0x3B, 0x94, 0x1E, 0x85,
+ 0x52, 0xDC, 0x03, 0x93, 0x24, 0x18, 0x6E, 0xCB, 0x27, 0x51, 0x45, 0xE6,
+ 0x70, 0xDE, 0x25, 0x43,
+ 0xA4, 0x0D, 0xE1, 0x4A, 0xA5, 0xED, 0xB6, 0x7E, 0xC8, 0xCD, 0x6D, 0xEE,
+ 0x2E, 0x1D, 0x27, 0x73,
+ 0x5D, 0xDC, 0x45, 0x30, 0x80, 0xAA, 0xE3, 0xB2, 0x41, 0x0B, 0xAF, 0xBD,
+ 0x44, 0x87, 0xDA, 0xB9,
+ 0xE5, 0x1B, 0x9D, 0x7F, 0xAE, 0xE5, 0x85, 0x82, 0xA5, 0x02, 0x03, 0x01,
+ 0x00, 0x01, 0xA3, 0x82,
+ 0x01, 0x65, 0x30, 0x82, 0x01, 0x61, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D,
+ 0x23, 0x04, 0x18, 0x30,
+ 0x16, 0x80, 0x14, 0xBB, 0xAF, 0x7E, 0x02, 0x3D, 0xFA, 0xA6, 0xF1, 0x3C,
+ 0x84, 0x8E, 0xAD, 0xEE,
+ 0x38, 0x98, 0xEC, 0xD9, 0x32, 0x32, 0xD4, 0x30, 0x1D, 0x06, 0x03, 0x55,
+ 0x1D, 0x0E, 0x04, 0x16,
+ 0x04, 0x14, 0x90, 0xAF, 0x6A, 0x3A, 0x94, 0x5A, 0x0B, 0xD8, 0x90, 0xEA,
+ 0x12, 0x56, 0x73, 0xDF,
+ 0x43, 0xB4, 0x3A, 0x28, 0xDA, 0xE7, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x1D,
+ 0x0F, 0x01, 0x01, 0xFF,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x86, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1D,
+ 0x13, 0x01, 0x01, 0xFF,
+ 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xFF, 0x02, 0x01, 0x00, 0x30, 0x1D,
+ 0x06, 0x03, 0x55, 0x1D,
+ 0x25, 0x04, 0x16, 0x30, 0x14, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05,
+ 0x07, 0x03, 0x01, 0x06,
+ 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02, 0x30, 0x1B, 0x06,
+ 0x03, 0x55, 0x1D, 0x20,
+ 0x04, 0x14, 0x30, 0x12, 0x30, 0x06, 0x06, 0x04, 0x55, 0x1D, 0x20, 0x00,
+ 0x30, 0x08, 0x06, 0x06,
+ 0x67, 0x81, 0x0C, 0x01, 0x02, 0x01, 0x30, 0x4C, 0x06, 0x03, 0x55, 0x1D,
+ 0x1F, 0x04, 0x45, 0x30,
+ 0x43, 0x30, 0x41, 0xA0, 0x3F, 0xA0, 0x3D, 0x86, 0x3B, 0x68, 0x74, 0x74,
+ 0x70, 0x3A, 0x2F, 0x2F,
+ 0x63, 0x72, 0x6C, 0x2E, 0x63, 0x6F, 0x6D, 0x6F, 0x64, 0x6F, 0x63, 0x61,
+ 0x2E, 0x63, 0x6F, 0x6D,
+ 0x2F, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x52, 0x53, 0x41, 0x43, 0x65,
+ 0x72, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x41, 0x75, 0x74, 0x68, 0x6F,
+ 0x72, 0x69, 0x74, 0x79,
+ 0x2E, 0x63, 0x72, 0x6C, 0x30, 0x71, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x01, 0x01,
+ 0x04, 0x65, 0x30, 0x63, 0x30, 0x3B, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05,
+ 0x05, 0x07, 0x30, 0x02,
+ 0x86, 0x2F, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x63, 0x72, 0x74,
+ 0x2E, 0x63, 0x6F, 0x6D,
+ 0x6F, 0x64, 0x6F, 0x63, 0x61, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x43, 0x4F,
+ 0x4D, 0x4F, 0x44, 0x4F,
+ 0x52, 0x53, 0x41, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x43,
+ 0x41, 0x2E, 0x63, 0x72,
+ 0x74, 0x30, 0x24, 0x06, 0x08, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x01, 0x86, 0x18, 0x68,
+ 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6F, 0x63, 0x73, 0x70, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x6F, 0x64,
+ 0x6F, 0x63, 0x61, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x0D, 0x06, 0x09, 0x2A,
+ 0x86, 0x48, 0x86, 0xF7,
+ 0x0D, 0x01, 0x01, 0x0C, 0x05, 0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x4E,
+ 0x2B, 0x76, 0x4F, 0x92,
+ 0x1C, 0x62, 0x36, 0x89, 0xBA, 0x77, 0xC1, 0x27, 0x05, 0xF4, 0x1C, 0xD6,
+ 0x44, 0x9D, 0xA9, 0x9A,
+ 0x3E, 0xAA, 0xD5, 0x66, 0x66, 0x01, 0x3E, 0xEA, 0x49, 0xE6, 0xA2, 0x35,
+ 0xBC, 0xFA, 0xF6, 0xDD,
+ 0x95, 0x8E, 0x99, 0x35, 0x98, 0x0E, 0x36, 0x18, 0x75, 0xB1, 0xDD, 0xDD,
+ 0x50, 0x72, 0x7C, 0xAE,
+ 0xDC, 0x77, 0x88, 0xCE, 0x0F, 0xF7, 0x90, 0x20, 0xCA, 0xA3, 0x67, 0x2E,
+ 0x1F, 0x56, 0x7F, 0x7B,
+ 0xE1, 0x44, 0xEA, 0x42, 0x95, 0xC4, 0x5D, 0x0D, 0x01, 0x50, 0x46, 0x15,
+ 0xF2, 0x81, 0x89, 0x59,
+ 0x6C, 0x8A, 0xDD, 0x8C, 0xF1, 0x12, 0xA1, 0x8D, 0x3A, 0x42, 0x8A, 0x98,
+ 0xF8, 0x4B, 0x34, 0x7B,
+ 0x27, 0x3B, 0x08, 0xB4, 0x6F, 0x24, 0x3B, 0x72, 0x9D, 0x63, 0x74, 0x58,
+ 0x3C, 0x1A, 0x6C, 0x3F,
+ 0x4F, 0xC7, 0x11, 0x9A, 0xC8, 0xA8, 0xF5, 0xB5, 0x37, 0xEF, 0x10, 0x45,
+ 0xC6, 0x6C, 0xD9, 0xE0,
+ 0x5E, 0x95, 0x26, 0xB3, 0xEB, 0xAD, 0xA3, 0xB9, 0xEE, 0x7F, 0x0C, 0x9A,
+ 0x66, 0x35, 0x73, 0x32,
+ 0x60, 0x4E, 0xE5, 0xDD, 0x8A, 0x61, 0x2C, 0x6E, 0x52, 0x11, 0x77, 0x68,
+ 0x96, 0xD3, 0x18, 0x75,
+ 0x51, 0x15, 0x00, 0x1B, 0x74, 0x88, 0xDD, 0xE1, 0xC7, 0x38, 0x04, 0x43,
+ 0x28, 0xE9, 0x16, 0xFD,
+ 0xD9, 0x05, 0xD4, 0x5D, 0x47, 0x27, 0x60, 0xD6, 0xFB, 0x38, 0x3B, 0x6C,
+ 0x72, 0xA2, 0x94, 0xF8,
+ 0x42, 0x1A, 0xDF, 0xED, 0x6F, 0x06, 0x8C, 0x45, 0xC2, 0x06, 0x00, 0xAA,
+ 0xE4, 0xE8, 0xDC, 0xD9,
+ 0xB5, 0xE1, 0x73, 0x78, 0xEC, 0xF6, 0x23, 0xDC, 0xD1, 0xDD, 0x6C, 0x8E,
+ 0x1A, 0x8F, 0xA5, 0xEA,
+ 0x54, 0x7C, 0x96, 0xB7, 0xC3, 0xFE, 0x55, 0x8E, 0x8D, 0x49, 0x5E, 0xFC,
+ 0x64, 0xBB, 0xCF, 0x3E,
+ 0xBD, 0x96, 0xEB, 0x69, 0xCD, 0xBF, 0xE0, 0x48, 0xF1, 0x62, 0x82, 0x10,
+ 0xE5, 0x0C, 0x46, 0x57,
+ 0xF2, 0x33, 0xDA, 0xD0, 0xC8, 0x63, 0xED, 0xC6, 0x1F, 0x94, 0x05, 0x96,
+ 0x4A, 0x1A, 0x91, 0xD1,
+ 0xF7, 0xEB, 0xCF, 0x8F, 0x52, 0xAE, 0x0D, 0x08, 0xD9, 0x3E, 0xA8, 0xA0,
+ 0x51, 0xE9, 0xC1, 0x87,
+ 0x74, 0xD5, 0xC9, 0xF7, 0x74, 0xAB, 0x2E, 0x53, 0xFB, 0xBB, 0x7A, 0xFB,
+ 0x97, 0xE2, 0xF8, 0x1F,
+ 0x26, 0x8F, 0xB3, 0xD2, 0xA0, 0xE0, 0x37, 0x5B, 0x28, 0x3B, 0x31, 0xE5,
+ 0x0E, 0x57, 0x2D, 0x5A,
+ 0xB8, 0xAD, 0x79, 0xAC, 0x5E, 0x20, 0x66, 0x1A, 0xA5, 0xB9, 0xA6, 0xB5,
+ 0x39, 0xC1, 0xF5, 0x98,
+ 0x43, 0xFF, 0xEE, 0xF9, 0xA7, 0xA7, 0xFD, 0xEE, 0xCA, 0x24, 0x3D, 0x80,
+ 0x16, 0xC4, 0x17, 0x8F,
+ 0x8A, 0xC1, 0x60, 0xA1, 0x0C, 0xAE, 0x5B, 0x43, 0x47, 0x91, 0x4B, 0xD5,
+ 0x9A, 0x17, 0x5F, 0xF9,
+ 0xD4, 0x87, 0xC1, 0xC2, 0x8C, 0xB7, 0xE7, 0xE2, 0x0F, 0x30, 0x19, 0x37,
+ 0x86, 0xAC, 0xE0, 0xDC,
+ 0x42, 0x03, 0xE6, 0x94, 0xA8, 0x9D, 0xAE, 0xFD, 0x0F, 0x24, 0x51, 0x94,
+ 0xCE, 0x92, 0x08, 0xD1,
+ 0xFC, 0x50, 0xF0, 0x03, 0x40, 0x7B, 0x88, 0x59, 0xED, 0x0E, 0xDD, 0xAC,
+ 0xD2, 0x77, 0x82, 0x34,
+ 0xDC, 0x06, 0x95, 0x02, 0xD8, 0x90, 0xF9, 0x2D, 0xEA, 0x37, 0xD5, 0x1A,
+ 0x60, 0xD0, 0x67, 0x20,
+ 0xD7, 0xD8, 0x42, 0x0B, 0x45, 0xAF, 0x82, 0x68, 0xDE, 0xDD, 0x66, 0x24,
+ 0x37, 0x90, 0x29, 0x94,
+ 0x19, 0x46, 0x19, 0x25, 0xB8, 0x80, 0xD7, 0xCB, 0xD4, 0x86, 0x28, 0x6A,
+ 0x44, 0x70, 0x26, 0x23,
+ 0x62, 0xA9, 0x9F, 0x86, 0x6F, 0xBF, 0xBA, 0x90, 0x70, 0xD2, 0x56, 0x77,
+ 0x85, 0x78, 0xEF, 0xEA,
+ 0x25, 0xA9, 0x17, 0xCE, 0x50, 0x72, 0x8C, 0x00, 0x3A, 0xAA, 0xE3, 0xDB,
+ 0x63, 0x34, 0x9F, 0xF8,
+ 0x06, 0x71, 0x01, 0xE2, 0x82, 0x20, 0xD4, 0xFE, 0x6F, 0xBD, 0xB1, 0x00,
+ 0x05, 0x78, 0x30, 0x82,
+ 0x05, 0x74, 0x30, 0x82, 0x04, 0x5C, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02,
+ 0x10, 0x27, 0x66, 0xEE,
+ 0x56, 0xEB, 0x49, 0xF3, 0x8E, 0xAB, 0xD7, 0x70, 0xA2, 0xFC, 0x84, 0xDE,
+ 0x22, 0x30, 0x0D, 0x06,
+ 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0C, 0x05, 0x00,
+ 0x30, 0x6F, 0x31, 0x0B,
+ 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x53, 0x45, 0x31,
+ 0x14, 0x30, 0x12, 0x06,
+ 0x03, 0x55, 0x04, 0x0A, 0x13, 0x0B, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75,
+ 0x73, 0x74, 0x20, 0x41,
+ 0x42, 0x31, 0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x13, 0x1D,
+ 0x41, 0x64, 0x64, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6E, 0x61,
+ 0x6C, 0x20, 0x54, 0x54,
+ 0x50, 0x20, 0x4E, 0x65, 0x74, 0x77, 0x6F, 0x72, 0x6B, 0x31, 0x22, 0x30,
+ 0x20, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x19, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74,
+ 0x20, 0x45, 0x78, 0x74,
+ 0x65, 0x72, 0x6E, 0x61, 0x6C, 0x20, 0x43, 0x41, 0x20, 0x52, 0x6F, 0x6F,
+ 0x74, 0x30, 0x1E, 0x17,
+ 0x0D, 0x30, 0x30, 0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x34, 0x38, 0x33,
+ 0x38, 0x5A, 0x17, 0x0D,
+ 0x32, 0x30, 0x30, 0x35, 0x33, 0x30, 0x31, 0x30, 0x34, 0x38, 0x33, 0x38,
+ 0x5A, 0x30, 0x81, 0x85,
+ 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x47,
+ 0x42, 0x31, 0x1B, 0x30,
+ 0x19, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, 0x12, 0x47, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x72, 0x20,
+ 0x4D, 0x61, 0x6E, 0x63, 0x68, 0x65, 0x73, 0x74, 0x65, 0x72, 0x31, 0x10,
+ 0x30, 0x0E, 0x06, 0x03,
+ 0x55, 0x04, 0x07, 0x13, 0x07, 0x53, 0x61, 0x6C, 0x66, 0x6F, 0x72, 0x64,
+ 0x31, 0x1A, 0x30, 0x18,
+ 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x11, 0x43, 0x4F, 0x4D, 0x4F, 0x44,
+ 0x4F, 0x20, 0x43, 0x41,
+ 0x20, 0x4C, 0x69, 0x6D, 0x69, 0x74, 0x65, 0x64, 0x31, 0x2B, 0x30, 0x29,
+ 0x06, 0x03, 0x55, 0x04,
+ 0x03, 0x13, 0x22, 0x43, 0x4F, 0x4D, 0x4F, 0x44, 0x4F, 0x20, 0x52, 0x53,
+ 0x41, 0x20, 0x43, 0x65,
+ 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x20,
+ 0x41, 0x75, 0x74, 0x68,
+ 0x6F, 0x72, 0x69, 0x74, 0x79, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0D, 0x06,
+ 0x09, 0x2A, 0x86, 0x48,
+ 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x02, 0x0F,
+ 0x00, 0x30, 0x82, 0x02,
+ 0x0A, 0x02, 0x82, 0x02, 0x01, 0x00, 0x91, 0xE8, 0x54, 0x92, 0xD2, 0x0A,
+ 0x56, 0xB1, 0xAC, 0x0D,
+ 0x24, 0xDD, 0xC5, 0xCF, 0x44, 0x67, 0x74, 0x99, 0x2B, 0x37, 0xA3, 0x7D,
+ 0x23, 0x70, 0x00, 0x71,
+ 0xBC, 0x53, 0xDF, 0xC4, 0xFA, 0x2A, 0x12, 0x8F, 0x4B, 0x7F, 0x10, 0x56,
+ 0xBD, 0x9F, 0x70, 0x72,
+ 0xB7, 0x61, 0x7F, 0xC9, 0x4B, 0x0F, 0x17, 0xA7, 0x3D, 0xE3, 0xB0, 0x04,
+ 0x61, 0xEE, 0xFF, 0x11,
+ 0x97, 0xC7, 0xF4, 0x86, 0x3E, 0x0A, 0xFA, 0x3E, 0x5C, 0xF9, 0x93, 0xE6,
+ 0x34, 0x7A, 0xD9, 0x14,
+ 0x6B, 0xE7, 0x9C, 0xB3, 0x85, 0xA0, 0x82, 0x7A, 0x76, 0xAF, 0x71, 0x90,
+ 0xD7, 0xEC, 0xFD, 0x0D,
+ 0xFA, 0x9C, 0x6C, 0xFA, 0xDF, 0xB0, 0x82, 0xF4, 0x14, 0x7E, 0xF9, 0xBE,
+ 0xC4, 0xA6, 0x2F, 0x4F,
+ 0x7F, 0x99, 0x7F, 0xB5, 0xFC, 0x67, 0x43, 0x72, 0xBD, 0x0C, 0x00, 0xD6,
+ 0x89, 0xEB, 0x6B, 0x2C,
+ 0xD3, 0xED, 0x8F, 0x98, 0x1C, 0x14, 0xAB, 0x7E, 0xE5, 0xE3, 0x6E, 0xFC,
+ 0xD8, 0xA8, 0xE4, 0x92,
+ 0x24, 0xDA, 0x43, 0x6B, 0x62, 0xB8, 0x55, 0xFD, 0xEA, 0xC1, 0xBC, 0x6C,
+ 0xB6, 0x8B, 0xF3, 0x0E,
+ 0x8D, 0x9A, 0xE4, 0x9B, 0x6C, 0x69, 0x99, 0xF8, 0x78, 0x48, 0x30, 0x45,
+ 0xD5, 0xAD, 0xE1, 0x0D,
+ 0x3C, 0x45, 0x60, 0xFC, 0x32, 0x96, 0x51, 0x27, 0xBC, 0x67, 0xC3, 0xCA,
+ 0x2E, 0xB6, 0x6B, 0xEA,
+ 0x46, 0xC7, 0xC7, 0x20, 0xA0, 0xB1, 0x1F, 0x65, 0xDE, 0x48, 0x08, 0xBA,
+ 0xA4, 0x4E, 0xA9, 0xF2,
+ 0x83, 0x46, 0x37, 0x84, 0xEB, 0xE8, 0xCC, 0x81, 0x48, 0x43, 0x67, 0x4E,
+ 0x72, 0x2A, 0x9B, 0x5C,
+ 0xBD, 0x4C, 0x1B, 0x28, 0x8A, 0x5C, 0x22, 0x7B, 0xB4, 0xAB, 0x98, 0xD9,
+ 0xEE, 0xE0, 0x51, 0x83,
+ 0xC3, 0x09, 0x46, 0x4E, 0x6D, 0x3E, 0x99, 0xFA, 0x95, 0x17, 0xDA, 0x7C,
+ 0x33, 0x57, 0x41, 0x3C,
+ 0x8D, 0x51, 0xED, 0x0B, 0xB6, 0x5C, 0xAF, 0x2C, 0x63, 0x1A, 0xDF, 0x57,
+ 0xC8, 0x3F, 0xBC, 0xE9,
+ 0x5D, 0xC4, 0x9B, 0xAF, 0x45, 0x99, 0xE2, 0xA3, 0x5A, 0x24, 0xB4, 0xBA,
+ 0xA9, 0x56, 0x3D, 0xCF,
+ 0x6F, 0xAA, 0xFF, 0x49, 0x58, 0xBE, 0xF0, 0xA8, 0xFF, 0xF4, 0xB8, 0xAD,
+ 0xE9, 0x37, 0xFB, 0xBA,
+ 0xB8, 0xF4, 0x0B, 0x3A, 0xF9, 0xE8, 0x43, 0x42, 0x1E, 0x89, 0xD8, 0x84,
+ 0xCB, 0x13, 0xF1, 0xD9,
+ 0xBB, 0xE1, 0x89, 0x60, 0xB8, 0x8C, 0x28, 0x56, 0xAC, 0x14, 0x1D, 0x9C,
+ 0x0A, 0xE7, 0x71, 0xEB,
+ 0xCF, 0x0E, 0xDD, 0x3D, 0xA9, 0x96, 0xA1, 0x48, 0xBD, 0x3C, 0xF7, 0xAF,
+ 0xB5, 0x0D, 0x22, 0x4C,
+ 0xC0, 0x11, 0x81, 0xEC, 0x56, 0x3B, 0xF6, 0xD3, 0xA2, 0xE2, 0x5B, 0xB7,
+ 0xB2, 0x04, 0x22, 0x52,
+ 0x95, 0x80, 0x93, 0x69, 0xE8, 0x8E, 0x4C, 0x65, 0xF1, 0x91, 0x03, 0x2D,
+ 0x70, 0x74, 0x02, 0xEA,
+ 0x8B, 0x67, 0x15, 0x29, 0x69, 0x52, 0x02, 0xBB, 0xD7, 0xDF, 0x50, 0x6A,
+ 0x55, 0x46, 0xBF, 0xA0,
+ 0xA3, 0x28, 0x61, 0x7F, 0x70, 0xD0, 0xC3, 0xA2, 0xAA, 0x2C, 0x21, 0xAA,
+ 0x47, 0xCE, 0x28, 0x9C,
+ 0x06, 0x45, 0x76, 0xBF, 0x82, 0x18, 0x27, 0xB4, 0xD5, 0xAE, 0xB4, 0xCB,
+ 0x50, 0xE6, 0x6B, 0xF4,
+ 0x4C, 0x86, 0x71, 0x30, 0xE9, 0xA6, 0xDF, 0x16, 0x86, 0xE0, 0xD8, 0xFF,
+ 0x40, 0xDD, 0xFB, 0xD0,
+ 0x42, 0x88, 0x7F, 0xA3, 0x33, 0x3A, 0x2E, 0x5C, 0x1E, 0x41, 0x11, 0x81,
+ 0x63, 0xCE, 0x18, 0x71,
+ 0x6B, 0x2B, 0xEC, 0xA6, 0x8A, 0xB7, 0x31, 0x5C, 0x3A, 0x6A, 0x47, 0xE0,
+ 0xC3, 0x79, 0x59, 0xD6,
+ 0x20, 0x1A, 0xAF, 0xF2, 0x6A, 0x98, 0xAA, 0x72, 0xBC, 0x57, 0x4A, 0xD2,
+ 0x4B, 0x9D, 0xBB, 0x10,
+ 0xFC, 0xB0, 0x4C, 0x41, 0xE5, 0xED, 0x1D, 0x3D, 0x5E, 0x28, 0x9D, 0x9C,
+ 0xCC, 0xBF, 0xB3, 0x51,
+ 0xDA, 0xA7, 0x47, 0xE5, 0x84, 0x53, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3,
+ 0x81, 0xF4, 0x30, 0x81,
+ 0xF1, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D, 0x23, 0x04, 0x18, 0x30, 0x16,
+ 0x80, 0x14, 0xAD, 0xBD,
+ 0x98, 0x7A, 0x34, 0xB4, 0x26, 0xF7, 0xFA, 0xC4, 0x26, 0x54, 0xEF, 0x03,
+ 0xBD, 0xE0, 0x24, 0xCB,
+ 0x54, 0x1A, 0x30, 0x1D, 0x06, 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04,
+ 0x14, 0xBB, 0xAF, 0x7E,
+ 0x02, 0x3D, 0xFA, 0xA6, 0xF1, 0x3C, 0x84, 0x8E, 0xAD, 0xEE, 0x38, 0x98,
+ 0xEC, 0xD9, 0x32, 0x32,
+ 0xD4, 0x30, 0x0E, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04,
+ 0x04, 0x03, 0x02, 0x01,
+ 0x86, 0x30, 0x0F, 0x06, 0x03, 0x55, 0x1D, 0x13, 0x01, 0x01, 0xFF, 0x04,
+ 0x05, 0x30, 0x03, 0x01,
+ 0x01, 0xFF, 0x30, 0x11, 0x06, 0x03, 0x55, 0x1D, 0x20, 0x04, 0x0A, 0x30,
+ 0x08, 0x30, 0x06, 0x06,
+ 0x04, 0x55, 0x1D, 0x20, 0x00, 0x30, 0x44, 0x06, 0x03, 0x55, 0x1D, 0x1F,
+ 0x04, 0x3D, 0x30, 0x3B,
+ 0x30, 0x39, 0xA0, 0x37, 0xA0, 0x35, 0x86, 0x33, 0x68, 0x74, 0x74, 0x70,
+ 0x3A, 0x2F, 0x2F, 0x63,
+ 0x72, 0x6C, 0x2E, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74,
+ 0x2E, 0x63, 0x6F, 0x6D,
+ 0x2F, 0x41, 0x64, 0x64, 0x54, 0x72, 0x75, 0x73, 0x74, 0x45, 0x78, 0x74,
+ 0x65, 0x72, 0x6E, 0x61,
+ 0x6C, 0x43, 0x41, 0x52, 0x6F, 0x6F, 0x74, 0x2E, 0x63, 0x72, 0x6C, 0x30,
+ 0x35, 0x06, 0x08, 0x2B,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x01, 0x01, 0x04, 0x29, 0x30, 0x27, 0x30,
+ 0x25, 0x06, 0x08, 0x2B,
+ 0x06, 0x01, 0x05, 0x05, 0x07, 0x30, 0x01, 0x86, 0x19, 0x68, 0x74, 0x74,
+ 0x70, 0x3A, 0x2F, 0x2F,
+ 0x6F, 0x63, 0x73, 0x70, 0x2E, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x2E, 0x63,
+ 0x6F, 0x6D, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D,
+ 0x01, 0x01, 0x0C, 0x05,
+ 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x64, 0xBF, 0x83, 0xF1, 0x5F, 0x9A,
+ 0x85, 0xD0, 0xCD, 0xB8,
+ 0xA1, 0x29, 0x57, 0x0D, 0xE8, 0x5A, 0xF7, 0xD1, 0xE9, 0x3E, 0xF2, 0x76,
+ 0x04, 0x6E, 0xF1, 0x52,
+ 0x70, 0xBB, 0x1E, 0x3C, 0xFF, 0x4D, 0x0D, 0x74, 0x6A, 0xCC, 0x81, 0x82,
+ 0x25, 0xD3, 0xC3, 0xA0,
+ 0x2A, 0x5D, 0x4C, 0xF5, 0xBA, 0x8B, 0xA1, 0x6D, 0xC4, 0x54, 0x09, 0x75,
+ 0xC7, 0xE3, 0x27, 0x0E,
+ 0x5D, 0x84, 0x79, 0x37, 0x40, 0x13, 0x77, 0xF5, 0xB4, 0xAC, 0x1C, 0xD0,
+ 0x3B, 0xAB, 0x17, 0x12,
+ 0xD6, 0xEF, 0x34, 0x18, 0x7E, 0x2B, 0xE9, 0x79, 0xD3, 0xAB, 0x57, 0x45,
+ 0x0C, 0xAF, 0x28, 0xFA,
+ 0xD0, 0xDB, 0xE5, 0x50, 0x95, 0x88, 0xBB, 0xDF, 0x85, 0x57, 0x69, 0x7D,
+ 0x92, 0xD8, 0x52, 0xCA,
+ 0x73, 0x81, 0xBF, 0x1C, 0xF3, 0xE6, 0xB8, 0x6E, 0x66, 0x11, 0x05, 0xB3,
+ 0x1E, 0x94, 0x2D, 0x7F,
+ 0x91, 0x95, 0x92, 0x59, 0xF1, 0x4C, 0xCE, 0xA3, 0x91, 0x71, 0x4C, 0x7C,
+ 0x47, 0x0C, 0x3B, 0x0B,
+ 0x19, 0xF6, 0xA1, 0xB1, 0x6C, 0x86, 0x3E, 0x5C, 0xAA, 0xC4, 0x2E, 0x82,
+ 0xCB, 0xF9, 0x07, 0x96,
+ 0xBA, 0x48, 0x4D, 0x90, 0xF2, 0x94, 0xC8, 0xA9, 0x73, 0xA2, 0xEB, 0x06,
+ 0x7B, 0x23, 0x9D, 0xDE,
+ 0xA2, 0xF3, 0x4D, 0x55, 0x9F, 0x7A, 0x61, 0x45, 0x98, 0x18, 0x68, 0xC7,
+ 0x5E, 0x40, 0x6B, 0x23,
+ 0xF5, 0x79, 0x7A, 0xEF, 0x8C, 0xB5, 0x6B, 0x8B, 0xB7, 0x6F, 0x46, 0xF4,
+ 0x7B, 0xF1, 0x3D, 0x4B,
+ 0x04, 0xD8, 0x93, 0x80, 0x59, 0x5A, 0xE0, 0x41, 0x24, 0x1D, 0xB2, 0x8F,
+ 0x15, 0x60, 0x58, 0x47,
+ 0xDB, 0xEF, 0x6E, 0x46, 0xFD, 0x15, 0xF5, 0xD9, 0x5F, 0x9A, 0xB3, 0xDB,
+ 0xD8, 0xB8, 0xE4, 0x40,
+ 0xB3, 0xCD, 0x97, 0x39, 0xAE, 0x85, 0xBB, 0x1D, 0x8E, 0xBC, 0xDC, 0x87,
+ 0x9B, 0xD1, 0xA6, 0xEF,
+ 0xF1, 0x3B, 0x6F, 0x10, 0x38, 0x6F, 0x16, 0x03, 0x03, 0x02, 0x0F, 0x0C,
+ 0x00, 0x02, 0x0B, 0x00,
+ 0x80, 0xBB, 0xBC, 0x2D, 0xCA, 0xD8, 0x46, 0x74, 0x90, 0x7C, 0x43, 0xFC,
+ 0xF5, 0x80, 0xE9, 0xCF,
+ 0xDB, 0xD9, 0x58, 0xA3, 0xF5, 0x68, 0xB4, 0x2D, 0x4B, 0x08, 0xEE, 0xD4,
+ 0xEB, 0x0F, 0xB3, 0x50,
+ 0x4C, 0x6C, 0x03, 0x02, 0x76, 0xE7, 0x10, 0x80, 0x0C, 0x5C, 0xCB, 0xBA,
+ 0xA8, 0x92, 0x26, 0x14,
+ 0xC5, 0xBE, 0xEC, 0xA5, 0x65, 0xA5, 0xFD, 0xF1, 0xD2, 0x87, 0xA2, 0xBC,
+ 0x04, 0x9B, 0xE6, 0x77,
+ 0x80, 0x60, 0xE9, 0x1A, 0x92, 0xA7, 0x57, 0xE3, 0x04, 0x8F, 0x68, 0xB0,
+ 0x76, 0xF7, 0xD3, 0x6C,
+ 0xC8, 0xF2, 0x9B, 0xA5, 0xDF, 0x81, 0xDC, 0x2C, 0xA7, 0x25, 0xEC, 0xE6,
+ 0x62, 0x70, 0xCC, 0x9A,
+ 0x50, 0x35, 0xD8, 0xCE, 0xCE, 0xEF, 0x9E, 0xA0, 0x27, 0x4A, 0x63, 0xAB,
+ 0x1E, 0x58, 0xFA, 0xFD,
+ 0x49, 0x88, 0xD0, 0xF6, 0x5D, 0x14, 0x67, 0x57, 0xDA, 0x07, 0x1D, 0xF0,
+ 0x45, 0xCF, 0xE1, 0x6B,
+ 0x9B, 0x00, 0x01, 0x02, 0x00, 0x80, 0x55, 0xFB, 0xB6, 0x92, 0x5A, 0x0C,
+ 0x93, 0x56, 0xE8, 0x1C,
+ 0xCD, 0x23, 0xFC, 0xB9, 0xBE, 0x98, 0x2D, 0x01, 0x4F, 0x35, 0xCE, 0x37,
+ 0xD0, 0xF8, 0xA0, 0x0C,
+ 0x42, 0x3B, 0x27, 0x25, 0x10, 0x04, 0x46, 0x02, 0x19, 0x1F, 0xDC, 0xDA,
+ 0x08, 0x33, 0x42, 0x63,
+ 0x5F, 0x3C, 0x82, 0x1F, 0xFA, 0x46, 0x9E, 0x34, 0xCB, 0x30, 0xED, 0x55,
+ 0x11, 0xD7, 0x00, 0x0C,
+ 0x76, 0x0A, 0x48, 0x0C, 0x1D, 0x7A, 0x13, 0x3D, 0xC6, 0x41, 0xD5, 0x7B,
+ 0xD5, 0x2A, 0xE0, 0xA3,
+ 0xB5, 0xAB, 0x0E, 0xBC, 0xD3, 0x17, 0x14, 0xFD, 0x21, 0x8C, 0x78, 0xB1,
+ 0x4D, 0xF2, 0x5A, 0x44,
+ 0x89, 0x4E, 0x82, 0x3D, 0x8B, 0xAC, 0x5D, 0x49, 0xB2, 0x19, 0x21, 0x67,
+ 0xCA, 0x70, 0xC7, 0x8D,
+ 0x35, 0x89, 0xD1, 0x9D, 0x34, 0xD4, 0x7A, 0xAF, 0x1D, 0x9D, 0x86, 0x0F,
+ 0xEF, 0x5A, 0x4F, 0x9E,
+ 0xDA, 0xF5, 0x02, 0x7E, 0x22, 0x67, 0x01, 0x01, 0x01, 0x00, 0x7B, 0x59,
+ 0x4A, 0x29, 0xF9, 0x9F,
+ 0x53, 0x41, 0x8B, 0xE6, 0x79, 0xE9, 0xF5, 0x73, 0x7C, 0xC8, 0xE9, 0x40,
+ 0x1F, 0x39, 0x08, 0x06,
+ 0x84, 0x3D, 0x80, 0x6B, 0xF0, 0x0C, 0x54, 0xC2, 0x18, 0xD6, 0xAD, 0x53,
+ 0xFD, 0x7C, 0xB3, 0x8B,
+ 0xCE, 0x70, 0x4F, 0xCF, 0xFC, 0xEF, 0xC8, 0x2D, 0xE4, 0xD0, 0xC2, 0x7B,
+ 0x80, 0x57, 0xA2, 0x5F,
+ 0x7F, 0x36, 0xB0, 0xBC, 0x16, 0xB7, 0xC1, 0xC2, 0x12, 0x96, 0x94, 0x88,
+ 0x9D, 0x68, 0xD3, 0xDF,
+ 0xB1, 0x3C, 0xA0, 0x93, 0x3A, 0x4D, 0x90, 0x66, 0x3F, 0xB0, 0x89, 0xE7,
+ 0x21, 0x58, 0xF0, 0x39,
+ 0x8B, 0x83, 0x32, 0x93, 0xCB, 0xA9, 0x57, 0x2B, 0x0A, 0x02, 0x5E, 0xF9,
+ 0xE6, 0x10, 0x9A, 0x7F,
+ 0x2A, 0x23, 0x3D, 0x5C, 0x3F, 0x38, 0x3A, 0x40, 0x0C, 0x1B, 0x7C, 0x0D,
+ 0x5D, 0x7C, 0xF1, 0xB2,
+ 0x88, 0x71, 0xA2, 0x57, 0x02, 0x94, 0x12, 0x45, 0x60, 0xEC, 0xC2, 0xB2,
+ 0xCB, 0x31, 0xF2, 0xF8,
+ 0x1B, 0xDD, 0xEA, 0xF6, 0x40, 0xF6, 0x07, 0xEA, 0xC2, 0x71, 0xA6, 0x07,
+ 0xC8, 0x45, 0xE4, 0xE2,
+ 0x1D, 0x49, 0x53, 0x40, 0x5B, 0x57, 0x68, 0xA4, 0x81, 0x1C, 0xCB, 0x33,
+ 0x95, 0x12, 0x0F, 0x4D,
+ 0xAD, 0x9B, 0x70, 0x53, 0xDC, 0x8B, 0xE6, 0x24, 0x0D, 0x39, 0x83, 0x0E,
+ 0x17, 0xFB, 0x13, 0xF2,
+ 0x45, 0x2C, 0x52, 0x44, 0xA3, 0x22, 0x0D, 0x32, 0xDD, 0x21, 0x05, 0x2B,
+ 0xA1, 0xAC, 0xC4, 0x84,
+ 0xD7, 0x18, 0x2F, 0xA2, 0xB4, 0xF5, 0x4E, 0xED, 0x72, 0x56, 0xB7, 0x87,
+ 0x81, 0xF8, 0x51, 0x30,
+ 0x01, 0xBE, 0x17, 0x31, 0xEE, 0x21, 0xBA, 0x16, 0xAF, 0xEB, 0x0A, 0x54,
+ 0x69, 0x84, 0xB3, 0xDC,
+ 0xCA, 0x04, 0xBB, 0x49, 0x84, 0x4C, 0x0F, 0xCE, 0x20, 0xE2, 0x71, 0xF3,
+ 0x43, 0x26, 0x1D, 0xA4,
+ 0xAF, 0xAE, 0x3F, 0x9E, 0xA3, 0x44, 0xDC, 0xAE, 0xB7, 0x5B, 0x16, 0x03,
+ 0x03, 0x00, 0x04, 0x0E,
+ 0x00, 0x00, 0x00
+};
static void server(int sd)
{
@@ -431,7 +738,8 @@ static void client(int sd)
gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert,
GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert,
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert,
&server_ca3_key,
GNUTLS_X509_FMT_PEM);
@@ -440,19 +748,23 @@ static void client(int sd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:+AES-128-GCM", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:+AES-128-GCM",
+ NULL);
gnutls_handshake_set_timeout(session, get_timeout());
- gnutls_server_name_set(session, GNUTLS_NAME_DNS, "localhost", strlen("localhost"));
+ gnutls_server_name_set(session, GNUTLS_NAME_DNS, "localhost",
+ strlen("localhost"));
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
gnutls_transport_set_int(session, sd);
do {
ret = gnutls_handshake(session);
- } while(ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
+ } while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
if (ret != GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM) {
- fail("server: Handshake returned unexpectedly: %s\n", gnutls_strerror(ret));
+ fail("server: Handshake returned unexpectedly: %s\n",
+ gnutls_strerror(ret));
}
gnutls_alert_send_appropriate(session, ret);
@@ -468,7 +780,6 @@ static void client(int sd)
success("server: finished\n");
}
-
void doit(void)
{
int sockets[2];
diff --git a/tests/client_dsa_key.c b/tests/client_dsa_key.c
index 244ca3691f..f5e346ee42 100644
--- a/tests/client_dsa_key.c
+++ b/tests/client_dsa_key.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -28,10 +28,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -67,14 +67,15 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&cli_cred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(cli_cred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(cli_cred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
-
ret = gnutls_certificate_set_x509_key_mem(cli_cred, &clidsa_ca3_cert,
- &clidsa_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ &clidsa_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in error code: %s\n", gnutls_strerror(ret));
exit(1);
@@ -82,22 +83,31 @@ void doit(void)
/* test gnutls_certificate_flags() */
gnutls_certificate_allocate_credentials(&serv_cred);
- gnutls_certificate_set_flags(serv_cred, GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH);
- gnutls_certificate_set_verify_flags(serv_cred, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1);
-
- ret = gnutls_certificate_set_x509_trust_mem(serv_cred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ gnutls_certificate_set_flags(serv_cred,
+ GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH);
+ gnutls_certificate_set_verify_flags(serv_cred,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1);
+
+ ret =
+ gnutls_certificate_set_x509_trust_mem(serv_cred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
- ret = gnutls_certificate_set_x509_key_mem(serv_cred, &server_ca3_localhost_cert_chain,
- &server_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(serv_cred,
+ &server_ca3_localhost_cert_chain,
+ &server_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in error code\n");
exit(1);
}
- test_cli_serv_cert(serv_cred, cli_cred, "NORMAL:+DHE-DSS:+SIGN-DSA-SHA1", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:-DHE-DSS:+SIGN-DSA-SHA1", "localhost");
+ test_cli_serv_cert(serv_cred, cli_cred,
+ "NORMAL:+DHE-DSS:+SIGN-DSA-SHA1",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:-DHE-DSS:+SIGN-DSA-SHA1",
+ "localhost");
gnutls_certificate_free_credentials(serv_cred);
gnutls_certificate_free_credentials(cli_cred);
diff --git a/tests/cmocka-common.h b/tests/cmocka-common.h
index d89c54d0d0..8db0e43841 100644
--- a/tests/cmocka-common.h
+++ b/tests/cmocka-common.h
@@ -1,13 +1,13 @@
#ifndef GNUTLS_TESTS_CMOCKA_COMMON_H
-#define GNUTLS_TESTS_CMOCKA_COMMON_H
+# define GNUTLS_TESTS_CMOCKA_COMMON_H
-#include <stdarg.h>
-#include <stddef.h>
-#include <setjmp.h>
-#include <cmocka.h>
-#include <errno.h>
+# include <stdarg.h>
+# include <stddef.h>
+# include <setjmp.h>
+# include <cmocka.h>
+# include <errno.h>
-#define USE_CMOCKA
-#include "eagain-common.h"
+# define USE_CMOCKA
+# include "eagain-common.h"
-#endif /* GNUTLS_TESTS_CMOCKA_COMMON_H */
+#endif /* GNUTLS_TESTS_CMOCKA_COMMON_H */
diff --git a/tests/common-cert-key-exchange.c b/tests/common-cert-key-exchange.c
index 9b414fe933..243cb12bfd 100644
--- a/tests/common-cert-key-exchange.c
+++ b/tests/common-cert-key-exchange.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -49,11 +49,11 @@ static void tls_log_func(int level, const char *str)
#define MSG "hello there ppl"
void try_with_key_fail(const char *name, const char *client_prio,
- int server_err, int client_err,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *cli_cert,
- const gnutls_datum_t *cli_key)
+ int server_err, int client_err,
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * cli_cert,
+ const gnutls_datum_t * cli_key)
{
int ret;
/* Server stuff. */
@@ -73,7 +73,7 @@ void try_with_key_fail(const char *name, const char *client_prio,
reset_buffers();
/* Init server */
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
ret = gnutls_certificate_set_x509_key_mem(serverx509cred,
serv_cert, serv_key,
@@ -81,14 +81,16 @@ void try_with_key_fail(const char *name, const char *client_prio,
if (ret < 0)
fail("Could not set key/cert: %s\n", gnutls_strerror(ret));
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
if (server_priority)
- assert(gnutls_priority_set_direct(server, server_priority, NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, server_priority, NULL)
+ >= 0);
else
- assert(gnutls_priority_set_direct(server, client_prio, NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, client_prio, NULL) >=
+ 0);
assert(gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred)>=0);
+ serverx509cred) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -103,7 +105,8 @@ void try_with_key_fail(const char *name, const char *client_prio,
gnutls_certificate_set_x509_key_mem(clientx509cred,
cli_cert, cli_key,
GNUTLS_X509_FMT_PEM);
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUIRE);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUIRE);
}
ret = gnutls_init(&client, GNUTLS_CLIENT);
@@ -122,7 +125,7 @@ void try_with_key_fail(const char *name, const char *client_prio,
}
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -138,12 +141,11 @@ void try_with_key_fail(const char *name, const char *client_prio,
void try_with_rawpk_key_fail(const char *name, const char *client_prio,
int server_err, int client_err,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
unsigned server_ku,
- const gnutls_datum_t *cli_cert,
- const gnutls_datum_t *cli_key,
- unsigned client_ku)
+ const gnutls_datum_t * cli_cert,
+ const gnutls_datum_t * cli_key, unsigned client_ku)
{
int ret;
/* Server stuff. */
@@ -166,19 +168,21 @@ void try_with_rawpk_key_fail(const char *name, const char *client_prio,
gnutls_certificate_allocate_credentials(&server_cred);
ret = gnutls_certificate_set_rawpk_key_mem(server_cred,
- serv_cert, serv_key, GNUTLS_X509_FMT_PEM, NULL, server_ku,
- NULL, 0, 0);
+ serv_cert, serv_key,
+ GNUTLS_X509_FMT_PEM, NULL,
+ server_ku, NULL, 0, 0);
if (ret < 0)
fail("Could not set key/cert: %s\n", gnutls_strerror(ret));
assert(gnutls_init(&server, GNUTLS_SERVER | GNUTLS_ENABLE_RAWPK) >= 0);
if (server_priority)
- assert(gnutls_priority_set_direct(server, server_priority, NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, server_priority, NULL)
+ >= 0);
else
- assert(gnutls_priority_set_direct(server, client_prio, NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, client_prio, NULL) >=
+ 0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- server_cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, server_cred);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -191,14 +195,18 @@ void try_with_rawpk_key_fail(const char *name, const char *client_prio,
if (cli_cert) {
ret = gnutls_certificate_set_rawpk_key_mem(client_cred,
- cli_cert, cli_key, GNUTLS_X509_FMT_PEM, NULL, client_ku,
+ cli_cert, cli_key,
+ GNUTLS_X509_FMT_PEM,
+ NULL, client_ku,
NULL, 0, 0);
if (ret < 0)
- fail("Could not set key/cert: %s\n", gnutls_strerror(ret));
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUIRE);
+ fail("Could not set key/cert: %s\n",
+ gnutls_strerror(ret));
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUIRE);
}
- ret = gnutls_init(&client, GNUTLS_CLIENT|GNUTLS_ENABLE_RAWPK);
+ ret = gnutls_init(&client, GNUTLS_CLIENT | GNUTLS_ENABLE_RAWPK);
if (ret < 0)
exit(1);
@@ -214,7 +222,7 @@ void try_with_rawpk_key_fail(const char *name, const char *client_prio,
}
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- client_cred);
+ client_cred);
if (ret < 0)
exit(1);
@@ -228,17 +236,16 @@ void try_with_rawpk_key_fail(const char *name, const char *client_prio,
gnutls_certificate_free_credentials(client_cred);
}
-void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algorithm_t client_kx,
- gnutls_sign_algorithm_t server_sign_algo,
- gnutls_sign_algorithm_t client_sign_algo,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *client_cert,
- const gnutls_datum_t *client_key,
- unsigned cert_flags,
- unsigned exp_group,
- gnutls_certificate_type_t server_ctype,
- gnutls_certificate_type_t client_ctype)
+void try_with_key_ks(const char *name, const char *client_prio,
+ gnutls_kx_algorithm_t client_kx,
+ gnutls_sign_algorithm_t server_sign_algo,
+ gnutls_sign_algorithm_t client_sign_algo,
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * client_cert,
+ const gnutls_datum_t * client_key, unsigned cert_flags,
+ unsigned exp_group, gnutls_certificate_type_t server_ctype,
+ gnutls_certificate_type_t client_ctype)
{
int ret;
char buffer[256];
@@ -246,8 +253,7 @@ void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algori
gnutls_certificate_credentials_t server_cred;
gnutls_anon_server_credentials_t s_anoncred;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
@@ -264,23 +270,24 @@ void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algori
reset_buffers();
/* Init server */
- assert(gnutls_anon_allocate_server_credentials(&s_anoncred)>=0);
- assert(gnutls_certificate_allocate_credentials(&server_cred)>=0);
+ assert(gnutls_anon_allocate_server_credentials(&s_anoncred) >= 0);
+ assert(gnutls_certificate_allocate_credentials(&server_cred) >= 0);
// Set server crt creds based on ctype
switch (server_ctype) {
- case GNUTLS_CRT_X509:
- ret = gnutls_certificate_set_x509_key_mem(server_cred,
- serv_cert, serv_key,
- GNUTLS_X509_FMT_PEM);
- break;
- case GNUTLS_CRT_RAWPK:
- ret = gnutls_certificate_set_rawpk_key_mem(server_cred,
- serv_cert, serv_key, GNUTLS_X509_FMT_PEM, NULL, 0,
- NULL, 0, 0);
- break;
- default:
- ret = GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE;
+ case GNUTLS_CRT_X509:
+ ret = gnutls_certificate_set_x509_key_mem(server_cred,
+ serv_cert, serv_key,
+ GNUTLS_X509_FMT_PEM);
+ break;
+ case GNUTLS_CRT_RAWPK:
+ ret = gnutls_certificate_set_rawpk_key_mem(server_cred,
+ serv_cert, serv_key,
+ GNUTLS_X509_FMT_PEM,
+ NULL, 0, NULL, 0, 0);
+ break;
+ default:
+ ret = GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE;
}
if (ret < 0) {
@@ -292,17 +299,19 @@ void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algori
gnutls_certificate_set_dh_params(server_cred, dh_params);
gnutls_anon_set_server_dh_params(s_anoncred, dh_params);
- assert(gnutls_init(&server, GNUTLS_SERVER | GNUTLS_ENABLE_RAWPK)>=0);
+ assert(gnutls_init(&server, GNUTLS_SERVER | GNUTLS_ENABLE_RAWPK) >= 0);
assert(gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- server_cred)>=0);
- assert(gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anoncred)>=0);
+ server_cred) >= 0);
+ assert(gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anoncred) >=
+ 0);
if (server_priority)
- assert(gnutls_priority_set_direct(server, server_priority, NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, server_priority, NULL)
+ >= 0);
else
assert(gnutls_priority_set_direct(server,
- "NORMAL:+VERS-SSL3.0:+ANON-ECDH:+ANON-DH:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519:+CTYPE-ALL",
- NULL)>=0);
+ "NORMAL:+VERS-SSL3.0:+ANON-ECDH:+ANON-DH:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519:+CTYPE-ALL",
+ NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -315,27 +324,34 @@ void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algori
if (cert_flags == USE_CERT) {
// Set client crt creds based on ctype
switch (client_ctype) {
- case GNUTLS_CRT_X509:
- gnutls_certificate_set_x509_key_mem(client_cred,
- client_cert, client_key,
- GNUTLS_X509_FMT_PEM);
- break;
- case GNUTLS_CRT_RAWPK:
- gnutls_certificate_set_rawpk_key_mem(client_cred,
- client_cert, client_key, GNUTLS_X509_FMT_PEM, NULL, 0,
- NULL, 0, 0);
- break;
- default:
- fail("Illegal client certificate type given\n");
+ case GNUTLS_CRT_X509:
+ gnutls_certificate_set_x509_key_mem(client_cred,
+ client_cert,
+ client_key,
+ GNUTLS_X509_FMT_PEM);
+ break;
+ case GNUTLS_CRT_RAWPK:
+ gnutls_certificate_set_rawpk_key_mem(client_cred,
+ client_cert,
+ client_key,
+ GNUTLS_X509_FMT_PEM,
+ NULL, 0, NULL, 0,
+ 0);
+ break;
+ default:
+ fail("Illegal client certificate type given\n");
}
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUIRE);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUIRE);
} else if (cert_flags == ASK_CERT) {
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUEST);
}
-
#if 0
- ret = gnutls_certificate_set_x509_trust_mem(client_cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(client_cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
#endif
@@ -343,11 +359,11 @@ void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algori
if (ret < 0)
exit(1);
-
- assert(gnutls_anon_allocate_client_credentials(&c_anoncred)>=0);
- assert(gnutls_credentials_set(client, GNUTLS_CRD_ANON, c_anoncred)>=0);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- client_cred);
+ assert(gnutls_anon_allocate_client_credentials(&c_anoncred) >= 0);
+ assert(gnutls_credentials_set(client, GNUTLS_CRD_ANON, c_anoncred) >=
+ 0);
+ ret =
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, client_cred);
if (ret < 0)
exit(1);
@@ -365,8 +381,7 @@ void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algori
HANDSHAKE(client, server);
if (gnutls_kx_get(client) != client_kx) {
- fail("%s: got unexpected key exchange algorithm: %s (expected %s)\n", name, gnutls_kx_get_name(gnutls_kx_get(client)),
- gnutls_kx_get_name(client_kx));
+ fail("%s: got unexpected key exchange algorithm: %s (expected %s)\n", name, gnutls_kx_get_name(gnutls_kx_get(client)), gnutls_kx_get_name(client_kx));
exit(1);
}
@@ -401,12 +416,14 @@ void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algori
if (exp_group != 0) {
ret = gnutls_group_get(server);
if (ret != (int)exp_group) {
- fail("%s: got unexpected server group: %d/%s\n", name, ret, gnutls_group_get_name(ret));
+ fail("%s: got unexpected server group: %d/%s\n", name,
+ ret, gnutls_group_get_name(ret));
}
ret = gnutls_group_get(client);
if (ret != (int)exp_group) {
- fail("%s: got unexpected client group: %d/%s\n", name, ret, gnutls_group_get_name(ret));
+ fail("%s: got unexpected client group: %d/%s\n", name,
+ ret, gnutls_group_get_name(ret));
}
}
@@ -422,7 +439,8 @@ void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algori
}
if (ret != strlen(MSG) || memcmp(MSG, buffer, ret) != 0) {
- fail("client: Error in data received. Expected %d, got %d\n", (int)strlen(MSG), ret);
+ fail("client: Error in data received. Expected %d, got %d\n",
+ (int)strlen(MSG), ret);
exit(1);
}
@@ -439,15 +457,15 @@ void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algori
gnutls_dh_params_deinit(dh_params);
}
-void dtls_try_with_key_mtu(const char *name, const char *client_prio, gnutls_kx_algorithm_t client_kx,
- gnutls_sign_algorithm_t server_sign_algo,
- gnutls_sign_algorithm_t client_sign_algo,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *client_cert,
- const gnutls_datum_t *client_key,
- unsigned cert_flags,
- unsigned smtu)
+void dtls_try_with_key_mtu(const char *name, const char *client_prio,
+ gnutls_kx_algorithm_t client_kx,
+ gnutls_sign_algorithm_t server_sign_algo,
+ gnutls_sign_algorithm_t client_sign_algo,
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * client_cert,
+ const gnutls_datum_t * client_key,
+ unsigned cert_flags, unsigned smtu)
{
int ret;
char buffer[256];
@@ -455,8 +473,7 @@ void dtls_try_with_key_mtu(const char *name, const char *client_prio, gnutls_kx_
gnutls_certificate_credentials_t serverx509cred;
gnutls_anon_server_credentials_t s_anoncred;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
@@ -476,8 +493,8 @@ void dtls_try_with_key_mtu(const char *name, const char *client_prio, gnutls_kx_
gnutls_certificate_allocate_credentials(&serverx509cred);
ret = gnutls_certificate_set_x509_key_mem(serverx509cred,
- serv_cert, serv_key,
- GNUTLS_X509_FMT_PEM);
+ serv_cert, serv_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("Could not set key/cert: %s\n", gnutls_strerror(ret));
}
@@ -487,20 +504,24 @@ void dtls_try_with_key_mtu(const char *name, const char *client_prio, gnutls_kx_
gnutls_certificate_set_dh_params(serverx509cred, dh_params);
gnutls_anon_set_server_dh_params(s_anoncred, dh_params);
- assert(gnutls_init(&server, GNUTLS_SERVER|GNUTLS_DATAGRAM|GNUTLS_NONBLOCK)>=0);
- assert(gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred)>=0);
- assert(gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anoncred)>=0);
+ assert(gnutls_init
+ (&server,
+ GNUTLS_SERVER | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK) >= 0);
+ assert(gnutls_credentials_set
+ (server, GNUTLS_CRD_CERTIFICATE, serverx509cred) >= 0);
+ assert(gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anoncred) >=
+ 0);
assert(gnutls_priority_set_direct(server,
"NORMAL:+ANON-ECDH:+ANON-DH:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519",
- NULL)>=0);
+ NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
- gnutls_transport_set_pull_timeout_function(server, server_pull_timeout_func);
+ gnutls_transport_set_pull_timeout_function(server,
+ server_pull_timeout_func);
gnutls_transport_set_ptr(server, server);
if (smtu)
- gnutls_dtls_set_mtu (server, smtu);
+ gnutls_dtls_set_mtu(server, smtu);
/* Init client */
@@ -510,40 +531,50 @@ void dtls_try_with_key_mtu(const char *name, const char *client_prio, gnutls_kx_
if (cert_flags == USE_CERT) {
ret = gnutls_certificate_set_x509_key_mem(clientx509cred,
- client_cert, client_key,
- GNUTLS_X509_FMT_PEM);
+ client_cert,
+ client_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
- fail("Could not set key/cert: %s\n", gnutls_strerror(ret));
+ fail("Could not set key/cert: %s\n",
+ gnutls_strerror(ret));
}
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUIRE);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUIRE);
} else if (cert_flags == ASK_CERT) {
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUEST);
}
-
#if 0
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
#endif
- ret = gnutls_init(&client, GNUTLS_CLIENT|GNUTLS_DATAGRAM|GNUTLS_NONBLOCK);
+ ret =
+ gnutls_init(&client,
+ GNUTLS_CLIENT | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
if (ret < 0)
exit(1);
- assert(gnutls_anon_allocate_client_credentials(&c_anoncred)>=0);
- assert(gnutls_credentials_set(client, GNUTLS_CRD_ANON, c_anoncred)>=0);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ assert(gnutls_anon_allocate_client_credentials(&c_anoncred) >= 0);
+ assert(gnutls_credentials_set(client, GNUTLS_CRD_ANON, c_anoncred) >=
+ 0);
+ ret =
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
+ clientx509cred);
if (ret < 0)
exit(1);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
- gnutls_transport_set_pull_timeout_function(client, client_pull_timeout_func);
+ gnutls_transport_set_pull_timeout_function(client,
+ client_pull_timeout_func);
gnutls_transport_set_ptr(client, client);
if (smtu)
- gnutls_dtls_set_mtu (client, smtu);
+ gnutls_dtls_set_mtu(client, smtu);
ret = gnutls_priority_set_direct(client, client_prio, NULL);
if (ret < 0) {
@@ -553,12 +584,10 @@ void dtls_try_with_key_mtu(const char *name, const char *client_prio, gnutls_kx_
HANDSHAKE_DTLS(client, server);
if (gnutls_kx_get(client) != client_kx) {
- fail("%s: got unexpected key exchange algorithm: %s (expected %s)\n", name, gnutls_kx_get_name(gnutls_kx_get(client)),
- gnutls_kx_get_name(client_kx));
+ fail("%s: got unexpected key exchange algorithm: %s (expected %s)\n", name, gnutls_kx_get_name(gnutls_kx_get(client)), gnutls_kx_get_name(client_kx));
exit(1);
}
-
/* test signature algorithm match */
version = gnutls_protocol_get_version(client);
if (version >= GNUTLS_DTLS1_2) {
@@ -599,7 +628,8 @@ void dtls_try_with_key_mtu(const char *name, const char *client_prio, gnutls_kx_
}
if (ret != strlen(MSG) || memcmp(MSG, buffer, ret) != 0) {
- fail("client: Error in data received. Expected %d, got %d\n", (int)strlen(MSG), ret);
+ fail("client: Error in data received. Expected %d, got %d\n",
+ (int)strlen(MSG), ret);
exit(1);
}
@@ -615,4 +645,3 @@ void dtls_try_with_key_mtu(const char *name, const char *client_prio, gnutls_kx_
gnutls_anon_free_client_credentials(c_anoncred);
gnutls_dh_params_deinit(dh_params);
}
-
diff --git a/tests/common-cert-key-exchange.h b/tests/common-cert-key-exchange.h
index 39828f2dbc..819ce39d38 100644
--- a/tests/common-cert-key-exchange.h
+++ b/tests/common-cert-key-exchange.h
@@ -20,101 +20,103 @@
*/
#ifndef GNUTLS_TESTS_COMMON_CERT_KEY_EXCHANGE_H
-#define GNUTLS_TESTS_COMMON_CERT_KEY_EXCHANGE_H
+# define GNUTLS_TESTS_COMMON_CERT_KEY_EXCHANGE_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+# ifdef HAVE_CONFIG_H
+# include <config.h>
+# endif
-#include <gnutls/gnutls.h>
+# include <gnutls/gnutls.h>
-#define USE_CERT 1
-#define ASK_CERT 2
+# define USE_CERT 1
+# define ASK_CERT 2
extern const char *server_priority;
-#define try_x509(name, client_prio, client_kx, server_sign_algo, client_sign_algo) \
+# define try_x509(name, client_prio, client_kx, server_sign_algo, client_sign_algo) \
try_with_key(name, client_prio, client_kx, server_sign_algo, client_sign_algo, \
&server_ca3_localhost_cert, &server_ca3_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN)
-#define try_rawpk(name, client_prio, client_kx, server_sign_algo, client_sign_algo) \
+# define try_rawpk(name, client_prio, client_kx, server_sign_algo, client_sign_algo) \
try_with_key(name, client_prio, client_kx, server_sign_algo, client_sign_algo, \
&rawpk_public_key1, &rawpk_private_key1, NULL, NULL, 0, GNUTLS_CRT_RAWPK, GNUTLS_CRT_UNKNOWN)
-#define try_x509_ks(name, client_prio, client_kx, group) \
+# define try_x509_ks(name, client_prio, client_kx, group) \
try_with_key_ks(name, client_prio, client_kx, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN, \
&server_ca3_localhost_cert, &server_ca3_key, NULL, NULL, 0, group, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN)
-#define try_x509_cli(name, client_prio, client_kx, server_sign_algo, client_sign_algo, client_cert) \
+# define try_x509_cli(name, client_prio, client_kx, server_sign_algo, client_sign_algo, client_cert) \
try_with_key(name, client_prio, client_kx, server_sign_algo, client_sign_algo, \
&server_ca3_localhost_cert, &server_ca3_key, &cli_ca3_cert, &cli_ca3_key, client_cert, GNUTLS_CRT_X509, GNUTLS_CRT_X509)
-#define try_rawpk_cli(name, client_prio, client_kx, server_sign_algo, client_sign_algo, client_cert) \
+# define try_rawpk_cli(name, client_prio, client_kx, server_sign_algo, client_sign_algo, client_cert) \
try_with_key(name, client_prio, client_kx, server_sign_algo, client_sign_algo, \
&rawpk_public_key1, &rawpk_private_key1, &rawpk_public_key2, &rawpk_private_key2, client_cert, GNUTLS_CRT_RAWPK, GNUTLS_CRT_RAWPK)
void try_with_rawpk_key_fail(const char *name, const char *client_prio,
int server_err, int client_err,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
unsigned server_ku,
- const gnutls_datum_t *cli_cert,
- const gnutls_datum_t *cli_key,
+ const gnutls_datum_t * cli_cert,
+ const gnutls_datum_t * cli_key,
unsigned client_ku);
-void try_with_key_ks(const char *name, const char *client_prio, gnutls_kx_algorithm_t client_kx,
- gnutls_sign_algorithm_t server_sign_algo,
- gnutls_sign_algorithm_t client_sign_algo,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *cli_cert,
- const gnutls_datum_t *cli_key,
- unsigned client_cert,
- unsigned exp_group,
- gnutls_certificate_type_t server_ctype,
- gnutls_certificate_type_t client_ctype);
+void try_with_key_ks(const char *name, const char *client_prio,
+ gnutls_kx_algorithm_t client_kx,
+ gnutls_sign_algorithm_t server_sign_algo,
+ gnutls_sign_algorithm_t client_sign_algo,
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * cli_cert,
+ const gnutls_datum_t * cli_key, unsigned client_cert,
+ unsigned exp_group, gnutls_certificate_type_t server_ctype,
+ gnutls_certificate_type_t client_ctype);
inline static
-void try_with_key(const char *name, const char *client_prio, gnutls_kx_algorithm_t client_kx,
- gnutls_sign_algorithm_t server_sign_algo,
- gnutls_sign_algorithm_t client_sign_algo,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *cli_cert,
- const gnutls_datum_t *cli_key,
- unsigned client_cert,
- gnutls_certificate_type_t server_ctype,
- gnutls_certificate_type_t client_ctype)
+void try_with_key(const char *name, const char *client_prio,
+ gnutls_kx_algorithm_t client_kx,
+ gnutls_sign_algorithm_t server_sign_algo,
+ gnutls_sign_algorithm_t client_sign_algo,
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * cli_cert,
+ const gnutls_datum_t * cli_key, unsigned client_cert,
+ gnutls_certificate_type_t server_ctype,
+ gnutls_certificate_type_t client_ctype)
{
- return try_with_key_ks(name, client_prio, client_kx, server_sign_algo, client_sign_algo,
- serv_cert, serv_key, cli_cert, cli_key, client_cert, 0, server_ctype, client_ctype);
+ return try_with_key_ks(name, client_prio, client_kx, server_sign_algo,
+ client_sign_algo, serv_cert, serv_key, cli_cert,
+ cli_key, client_cert, 0, server_ctype,
+ client_ctype);
}
void try_with_key_fail(const char *name, const char *client_prio,
- int server_err, int client_err,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *cli_cert,
- const gnutls_datum_t *cli_key);
+ int server_err, int client_err,
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * cli_cert,
+ const gnutls_datum_t * cli_key);
-#define dtls_try(name, client_prio, client_kx, server_sign_algo, client_sign_algo) \
+# define dtls_try(name, client_prio, client_kx, server_sign_algo, client_sign_algo) \
dtls_try_with_key(name, client_prio, client_kx, server_sign_algo, client_sign_algo, \
&server_ca3_localhost_cert, &server_ca3_key, NULL, NULL, 0)
-#define dtls_try_cli(name, client_prio, client_kx, server_sign_algo, client_sign_algo, client_cert) \
+# define dtls_try_cli(name, client_prio, client_kx, server_sign_algo, client_sign_algo, client_cert) \
dtls_try_with_key(name, client_prio, client_kx, server_sign_algo, client_sign_algo, \
&server_ca3_localhost_cert, &server_ca3_key, &cli_ca3_cert, &cli_ca3_key, client_cert)
-#define dtls_try_with_key(name, client_prio, client_kx, server_sign_algo, client_sign_algo, serv_cert, serv_key, cli_cert, cli_key, client_cert) \
+# define dtls_try_with_key(name, client_prio, client_kx, server_sign_algo, client_sign_algo, serv_cert, serv_key, cli_cert, cli_key, client_cert) \
dtls_try_with_key_mtu(name, client_prio, client_kx, server_sign_algo, client_sign_algo, serv_cert, serv_key, cli_cert, cli_key, client_cert, 0)
-void dtls_try_with_key_mtu(const char *name, const char *client_prio, gnutls_kx_algorithm_t client_kx,
- gnutls_sign_algorithm_t server_sign_algo,
- gnutls_sign_algorithm_t client_sign_algo,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *cli_cert,
- const gnutls_datum_t *cli_key,
- unsigned client_cert, unsigned mtu);
-
-#endif /* GNUTLS_TESTS_COMMON_CERT_KEY_EXCHANGE_H */
+void dtls_try_with_key_mtu(const char *name, const char *client_prio,
+ gnutls_kx_algorithm_t client_kx,
+ gnutls_sign_algorithm_t server_sign_algo,
+ gnutls_sign_algorithm_t client_sign_algo,
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * cli_cert,
+ const gnutls_datum_t * cli_key, unsigned client_cert,
+ unsigned mtu);
+
+#endif /* GNUTLS_TESTS_COMMON_CERT_KEY_EXCHANGE_H */
diff --git a/tests/common-key-tests.h b/tests/common-key-tests.h
index fe42a4f5f3..6da9ea66bd 100644
--- a/tests/common-key-tests.h
+++ b/tests/common-key-tests.h
@@ -20,11 +20,11 @@
*/
#ifndef GNUTLS_TESTS_COMMON_KEY_TESTS_H
-#define GNUTLS_TESTS_COMMON_KEY_TESTS_H
+# define GNUTLS_TESTS_COMMON_KEY_TESTS_H
-#include "cert-common.h"
+# include "cert-common.h"
-#include <gnutls/abstract.h>
+# include <gnutls/abstract.h>
struct _key_tests_st {
const char *name;
@@ -40,55 +40,57 @@ struct _key_tests_st {
static const
struct _key_tests_st common_key_tests[] = {
{
- .name = "rsa key",
- .cert = {(void *) cli_ca3_cert_pem, sizeof(cli_ca3_cert_pem)-1},
- .key = {(void *) cli_ca3_key_pem, sizeof(cli_ca3_key_pem)-1},
- .pk = GNUTLS_PK_RSA,
- .digest = GNUTLS_DIG_SHA256,
- .sigalgo = GNUTLS_SIGN_RSA_SHA256
- },
+ .name = "rsa key",
+ .cert = {(void *)cli_ca3_cert_pem, sizeof(cli_ca3_cert_pem) - 1},
+ .key = {(void *)cli_ca3_key_pem, sizeof(cli_ca3_key_pem) - 1},
+ .pk = GNUTLS_PK_RSA,
+ .digest = GNUTLS_DIG_SHA256,
+ .sigalgo = GNUTLS_SIGN_RSA_SHA256},
{
- .name = "dsa key",
- .key = {(void *) clidsa_ca3_key_pem, sizeof(clidsa_ca3_key_pem)-1},
- .cert = {(void *) clidsa_ca3_cert_pem, sizeof(clidsa_ca3_cert_pem)-1},
- .pk = GNUTLS_PK_DSA,
- .digest = GNUTLS_DIG_SHA1,
- .sigalgo = GNUTLS_SIGN_DSA_SHA1
- },
+ .name = "dsa key",
+ .key = {(void *)clidsa_ca3_key_pem, sizeof(clidsa_ca3_key_pem) - 1},
+ .cert = {(void *)clidsa_ca3_cert_pem, sizeof(clidsa_ca3_cert_pem) - 1},
+ .pk = GNUTLS_PK_DSA,
+ .digest = GNUTLS_DIG_SHA1,
+ .sigalgo = GNUTLS_SIGN_DSA_SHA1},
{
- .name = "ecdsa key",
- .key = {(void *) server_ca3_ecc_key_pem, sizeof(server_ca3_ecc_key_pem)-1},
- .cert = {(void *) server_localhost_ca3_ecc_cert_pem, sizeof(server_localhost_ca3_ecc_cert_pem)-1},
- .pk = GNUTLS_PK_ECDSA,
- .digest = GNUTLS_DIG_SHA256,
- .sigalgo = GNUTLS_SIGN_ECDSA_SHA256
- },
+ .name = "ecdsa key",
+ .key =
+ {(void *)server_ca3_ecc_key_pem, sizeof(server_ca3_ecc_key_pem) - 1},
+ .cert = {(void *)server_localhost_ca3_ecc_cert_pem,
+ sizeof(server_localhost_ca3_ecc_cert_pem) - 1},
+ .pk = GNUTLS_PK_ECDSA,
+ .digest = GNUTLS_DIG_SHA256,
+ .sigalgo = GNUTLS_SIGN_ECDSA_SHA256},
{
- .name = "ecdsa key",
- .key = {(void *) server_ca3_ecc_key_pem, sizeof(server_ca3_ecc_key_pem)-1},
- .cert = {(void *) server_localhost_ca3_ecc_cert_pem, sizeof(server_localhost_ca3_ecc_cert_pem)-1},
- .pk = GNUTLS_PK_ECDSA,
- .digest = GNUTLS_DIG_SHA256,
- .sigalgo = GNUTLS_SIGN_ECDSA_SECP256R1_SHA256
- },
+ .name = "ecdsa key",
+ .key =
+ {(void *)server_ca3_ecc_key_pem, sizeof(server_ca3_ecc_key_pem) - 1},
+ .cert = {(void *)server_localhost_ca3_ecc_cert_pem,
+ sizeof(server_localhost_ca3_ecc_cert_pem) - 1},
+ .pk = GNUTLS_PK_ECDSA,
+ .digest = GNUTLS_DIG_SHA256,
+ .sigalgo = GNUTLS_SIGN_ECDSA_SECP256R1_SHA256},
{
- .name = "rsa pss key",
- .key = {(void *) server_ca3_rsa_pss_key_pem, sizeof(server_ca3_rsa_pss_key_pem)-1},
- .cert = {(void *) server_ca3_rsa_pss_cert_pem, sizeof(server_ca3_rsa_pss_cert_pem)-1},
- .pk = GNUTLS_PK_RSA_PSS,
- .digest = GNUTLS_DIG_SHA256,
- .sign_flags = GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS,
- .sigalgo = GNUTLS_SIGN_RSA_PSS_SHA256
- },
+ .name = "rsa pss key",
+ .key = {(void *)server_ca3_rsa_pss_key_pem,
+ sizeof(server_ca3_rsa_pss_key_pem) - 1},
+ .cert = {(void *)server_ca3_rsa_pss_cert_pem,
+ sizeof(server_ca3_rsa_pss_cert_pem) - 1},
+ .pk = GNUTLS_PK_RSA_PSS,
+ .digest = GNUTLS_DIG_SHA256,
+ .sign_flags = GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS,
+ .sigalgo = GNUTLS_SIGN_RSA_PSS_SHA256},
{
- .name = "eddsa key",
- .key = {(void *) server_ca3_eddsa_key_pem, sizeof(server_ca3_eddsa_key_pem)-1},
- .cert = {(void *) server_ca3_eddsa_cert_pem, sizeof(server_ca3_eddsa_cert_pem)-1},
- .pk = GNUTLS_PK_EDDSA_ED25519,
- .digest = GNUTLS_DIG_SHA512,
- .sigalgo = GNUTLS_SIGN_EDDSA_ED25519,
- .data_only = 1
- }
+ .name = "eddsa key",
+ .key = {(void *)server_ca3_eddsa_key_pem,
+ sizeof(server_ca3_eddsa_key_pem) - 1},
+ .cert = {(void *)server_ca3_eddsa_cert_pem,
+ sizeof(server_ca3_eddsa_cert_pem) - 1},
+ .pk = GNUTLS_PK_EDDSA_ED25519,
+ .digest = GNUTLS_DIG_SHA512,
+ .sigalgo = GNUTLS_SIGN_EDDSA_ED25519,
+ .data_only = 1}
};
-#endif /* GNUTLS_TESTS_COMMON_KEY_TESTS_H */
+#endif /* GNUTLS_TESTS_COMMON_KEY_TESTS_H */
diff --git a/tests/conv-utf8.c b/tests/conv-utf8.c
index 2d94f6a80d..bee84fea89 100644
--- a/tests/conv-utf8.c
+++ b/tests/conv-utf8.c
@@ -46,13 +46,13 @@ static void PRINT(const char *str, unsigned char *val, unsigned int size)
{
unsigned i;
printf("%s", str);
- for (i=0;i<size;i++) {
+ for (i = 0; i < size; i++) {
printf("%.2x", val[i]);
}
printf("\n");
}
#else
-#define PRINT(x, y, x)
+# define PRINT(x, y, x)
#endif
#define UTF8_MATCH(fname, utf8, utf16) \
@@ -98,14 +98,19 @@ static void fname(void **glob_state) \
}
UTF8_MATCH(check_utf8_ok1, "abcd", "\x00\x61\x00\x62\x00\x63\x00\x64");
-UTF8_MATCH(check_utf8_ok2, "ユーザー別サイト", "\x30\xE6\x30\xFC\x30\xB6\x30\xFC\x52\x25\x30\xB5\x30\xA4\x30\xC8");
+UTF8_MATCH(check_utf8_ok2, "ユーザー別サイト",
+ "\x30\xE6\x30\xFC\x30\xB6\x30\xFC\x52\x25\x30\xB5\x30\xA4\x30\xC8");
UTF8_MATCH(check_utf8_ok3, "简体中文", "\x7B\x80\x4F\x53\x4E\x2D\x65\x87");
-UTF8_MATCH(check_utf8_ok4, "Σὲ γνωρίζω ἀπὸ", "\x03\xA3\x1F\x72\x00\x20\x03\xB3\x03\xBD\x03\xC9\x03\xC1\x03\xAF\x03\xB6\x03\xC9\x00\x20\x1F\x00\x03\xC0\x1F\x78");
+UTF8_MATCH(check_utf8_ok4, "Σὲ γνωρίζω ἀπὸ",
+ "\x03\xA3\x1F\x72\x00\x20\x03\xB3\x03\xBD\x03\xC9\x03\xC1\x03\xAF\x03\xB6\x03\xC9\x00\x20\x1F\x00\x03\xC0\x1F\x78");
UTF16_MATCH(check_utf16_ok1, "abcd", "\x00\x61\x00\x62\x00\x63\x00\x64");
-UTF16_MATCH(check_utf16_ok2, "ユーザー別サイト", "\x30\xE6\x30\xFC\x30\xB6\x30\xFC\x52\x25\x30\xB5\x30\xA4\x30\xC8");
-UTF16_MATCH(check_utf16_ok3, "简体中文", "\x7B\x80\x4F\x53\x4E\x2D\x65\x87");
-UTF16_MATCH(check_utf16_ok4, "Σὲ γνωρίζω ἀπὸ", "\x03\xA3\x1F\x72\x00\x20\x03\xB3\x03\xBD\x03\xC9\x03\xC1\x03\xAF\x03\xB6\x03\xC9\x00\x20\x1F\x00\x03\xC0\x1F\x78");
+UTF16_MATCH(check_utf16_ok2, "ユーザー別サイト",
+ "\x30\xE6\x30\xFC\x30\xB6\x30\xFC\x52\x25\x30\xB5\x30\xA4\x30\xC8");
+UTF16_MATCH(check_utf16_ok3, "简体中文",
+ "\x7B\x80\x4F\x53\x4E\x2D\x65\x87");
+UTF16_MATCH(check_utf16_ok4, "Σὲ γνωρίζω ἀπὸ",
+ "\x03\xA3\x1F\x72\x00\x20\x03\xB3\x03\xBD\x03\xC9\x03\xC1\x03\xAF\x03\xB6\x03\xC9\x00\x20\x1F\x00\x03\xC0\x1F\x78");
UTF8_FAIL(check_utf8_fail1, "\xfe\xff\xaa\x80\xff", 5);
UTF8_FAIL(check_utf8_fail2, "\x64\x00\x62\xf3\x64\x65", 6);
diff --git a/tests/crl-basic.c b/tests/crl-basic.c
index dcd5a35d67..1369dbebdb 100644
--- a/tests/crl-basic.c
+++ b/tests/crl-basic.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -34,105 +34,96 @@
static const char simple1[] =
/* CRL */
-"-----BEGIN X509 CRL-----\n"
-"MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
-"MDkxMzA5MDUyM1oYDzIwMTUwOTEzMDkwNTIzWjAAoDowODAfBgNVHSMEGDAWgBTx\n"
-"Fcb1FYLbhH9yuqg4wlVJUZnYKTAVBgNVHRQEDgIMVBQI0zeJoFHkLaWNMA0GCSqG\n"
-"SIb3DQEBCwUAA4IBAQB6SGYePy1MBmtELyWdnlJHlQ4bBgb4vjuLDSfH0X6b4dAS\n"
-"MEZws8iA5SaJFIioIP41s3lfQ1Am7GjSoNccHdrLmEcUSTQLwLYaDL8SgxekP5Au\n"
-"w8HTu1cz/mnjBBDURq1RvyGNFm6MXf1Rg/bHSea/EpDkn8KY152BT1/46iQ+Uho6\n"
-"hz6UUWsTB4Lj25X8F2hlKwQcb3E63Or2XEPBw4rhaCDFAtSZeBaGUUSJ8CLUKXZf\n"
-"5b45MjiZ/osgd81tfn3wdQVjDnaQwNtjeRbK+qU0Z4pIKBvHzRS/fZKwTnrK1DLI\n"
-"yY/nqBJT/+Q5zdUx5FXp0bwyZuarJ1GHqcES3Rz1\n"
-"-----END X509 CRL-----\n";
-
-static const char simple1_constraints[] =
+ "-----BEGIN X509 CRL-----\n"
+ "MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
+ "MDkxMzA5MDUyM1oYDzIwMTUwOTEzMDkwNTIzWjAAoDowODAfBgNVHSMEGDAWgBTx\n"
+ "Fcb1FYLbhH9yuqg4wlVJUZnYKTAVBgNVHRQEDgIMVBQI0zeJoFHkLaWNMA0GCSqG\n"
+ "SIb3DQEBCwUAA4IBAQB6SGYePy1MBmtELyWdnlJHlQ4bBgb4vjuLDSfH0X6b4dAS\n"
+ "MEZws8iA5SaJFIioIP41s3lfQ1Am7GjSoNccHdrLmEcUSTQLwLYaDL8SgxekP5Au\n"
+ "w8HTu1cz/mnjBBDURq1RvyGNFm6MXf1Rg/bHSea/EpDkn8KY152BT1/46iQ+Uho6\n"
+ "hz6UUWsTB4Lj25X8F2hlKwQcb3E63Or2XEPBw4rhaCDFAtSZeBaGUUSJ8CLUKXZf\n"
+ "5b45MjiZ/osgd81tfn3wdQVjDnaQwNtjeRbK+qU0Z4pIKBvHzRS/fZKwTnrK1DLI\n"
+ "yY/nqBJT/+Q5zdUx5FXp0bwyZuarJ1GHqcES3Rz1\n" "-----END X509 CRL-----\n";
+
+static const char simple1_constraints[] =
/* CRL */
-"-----BEGIN X509 CRL-----\n"
-"MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
-"MDkxMzA4NTkxNloYDzIwMTUwOTEzMDg1OTE2WjAAoDowODAfBgNVHSMEGDAWgBTn\n"
-"sISO6h9leKTKtOh/HG0jV03AMzAVBgNVHRQEDgIMVBQHZC2mj6EAgMPSMA0GCSqG\n"
-"SIb3DQEBCwUAA4IBAQBHUgtxpOn8EHwlajVYoOh6DFCwIoxBIeUA4518W1cHoV7J\n"
-"KMif6lmJRodrcbienDX781QcOaQcNnuu/oBEcoBdbZa0VICzXekIteSwEgGsbRve\n"
-"QQFPnZn83I4btse1ly5fdxMsliSM+qRwIyNR18VHXZz9GWYrr4tYWnI2b9XrDnaC\n"
-"1b3Ywt7I9pNi0/O0C0rE/37/VvPx6HghnC+un7LtT0Y0n+FQP7dhlMvzHaR8wVxs\n"
-"WAzaNvSiJ1rVPzL21iCmQJsRQeDTSJBlzm0lWiU8Nys3ugM2KlERezfp8DkFGA3y\n"
-"9Yzpq6gAi39ZK+LjopgGDkrQjxzBIaoe2bcDqB7X\n"
-"-----END X509 CRL-----\n";
+ "-----BEGIN X509 CRL-----\n"
+ "MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
+ "MDkxMzA4NTkxNloYDzIwMTUwOTEzMDg1OTE2WjAAoDowODAfBgNVHSMEGDAWgBTn\n"
+ "sISO6h9leKTKtOh/HG0jV03AMzAVBgNVHRQEDgIMVBQHZC2mj6EAgMPSMA0GCSqG\n"
+ "SIb3DQEBCwUAA4IBAQBHUgtxpOn8EHwlajVYoOh6DFCwIoxBIeUA4518W1cHoV7J\n"
+ "KMif6lmJRodrcbienDX781QcOaQcNnuu/oBEcoBdbZa0VICzXekIteSwEgGsbRve\n"
+ "QQFPnZn83I4btse1ly5fdxMsliSM+qRwIyNR18VHXZz9GWYrr4tYWnI2b9XrDnaC\n"
+ "1b3Ywt7I9pNi0/O0C0rE/37/VvPx6HghnC+un7LtT0Y0n+FQP7dhlMvzHaR8wVxs\n"
+ "WAzaNvSiJ1rVPzL21iCmQJsRQeDTSJBlzm0lWiU8Nys3ugM2KlERezfp8DkFGA3y\n"
+ "9Yzpq6gAi39ZK+LjopgGDkrQjxzBIaoe2bcDqB7X\n" "-----END X509 CRL-----\n";
static const char crl_dsa[] =
-"-----BEGIN X509 CRL-----\n"
-"MIGmMGUwCwYHKoZIzjgEAwUAMDgxCzAJBgNVBAYTAnVzMQwwCgYDVQQKEwNzdW4x\n"
-"DDAKBgNVBAsTA2plczENMAsGA1UEAxMEZ3JlZxcNMDUwNTE3MTk1OTQwWhcNMDYw\n"
-"NTE3MTk1OTQwWjALBgcqhkjOOAQDBQADMAAwLQIUBBFLGYjUCVrRTGf3GTR6SGs/\n"
-"accCFQCUhnSmr+CXCWKq8DtydVwH9FLsRA==\n"
-"-----END X509 CRL-----\n";
+ "-----BEGIN X509 CRL-----\n"
+ "MIGmMGUwCwYHKoZIzjgEAwUAMDgxCzAJBgNVBAYTAnVzMQwwCgYDVQQKEwNzdW4x\n"
+ "DDAKBgNVBAsTA2plczENMAsGA1UEAxMEZ3JlZxcNMDUwNTE3MTk1OTQwWhcNMDYw\n"
+ "NTE3MTk1OTQwWjALBgcqhkjOOAQDBQADMAAwLQIUBBFLGYjUCVrRTGf3GTR6SGs/\n"
+ "accCFQCUhnSmr+CXCWKq8DtydVwH9FLsRA==\n" "-----END X509 CRL-----\n";
static const char crl_rsa_sha1[] =
-"-----BEGIN X509 CRL-----\n"
-"MIIB2zCBxAIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJOTjExMC8GA1UE\n"
-"CgwoRWRlbCBDdXJsIEFyY3RpYyBJbGx1ZGl1bSBSZXNlYXJjaCBDbG91ZDElMCMG\n"
-"A1UEAwwcTm90aGVybiBOb3doZXJlIFRydXN0IEFuY2hvchcNMTAwNTI3MjEzNzEx\n"
-"WhcNMTAwNjI2MjEzNzExWjAZMBcCBguYlPl8ahcNMTAwNTI3MjEzNzExWqAOMAww\n"
-"CgYDVR0UBAMCAQEwDQYJKoZIhvcNAQEFBQADggEBAFuPZJ/cNNCeAzkSxVvPPPRX\n"
-"Wsv9T6Dt61C5Fmq9eSNN2kRf7/dq5A5nqTIlHbXXiLdj3UqNhUHXe2oA1UpbdHz9\n"
-"0JlfwWm1Y/gMr1fh1n0oFebEtCuOgDRpd07Uiz8AqOUBykDNDUlMvVwR9raHL8hj\n"
-"NRwzugsfIxl0CvLLqrBpUWMxW3qemk4cWW39yrDdZgKo6eOZAOR3FQYlLIrw6Jcr\n"
-"Kmm0PjdcJIfRgJvNysgyx1dIIKe7QXvFTR/QzdHWIWTkiYIW7wUKSzSICvDCr094\n"
-"eo3nr3n9BtOqT61Z1m6FGCP6Mm0wFl6xLTCNd6ygfFo7pcAdWlUsdBgKzics0Kc=\n"
-"-----END X509 CRL-----\n";
-
-static struct
-{
- const char *name;
- const char *crl;
- unsigned sign_algo;
- const char *sign_oid;
- int crt_count;
- time_t next_update;
- time_t this_update;
-
- time_t crt_revoke_time;
- size_t crt_serial_size;
- const char *crt_serial;
-} crl_list[] =
-{
- { .name = "crl-sha256-1",
- .crl = simple1,
- .sign_algo = GNUTLS_SIGN_RSA_SHA256,
- .sign_oid = "1.2.840.113549.1.1.11",
- .crt_count = 0,
- .this_update = 1410599123,
- .next_update = 1442135123
- },
- { .name = "crl-sha256-2",
- .crl = simple1_constraints,
- .sign_algo = GNUTLS_SIGN_RSA_SHA256,
- .sign_oid = "1.2.840.113549.1.1.11",
- .crt_count = 0,
- .this_update = 1410598756,
- .next_update = 1442134756
- },
- { .name = "crl-dsa",
- .crl = crl_dsa,
- .sign_algo = GNUTLS_SIGN_DSA_SHA1,
- .sign_oid = "1.2.840.10040.4.3",
- .crt_count = 0,
- .this_update = 1116359980,
- .next_update = 1147895980
- },
- { .name = "crl-rsa-sha1",
- .crl = crl_rsa_sha1,
- .sign_algo = GNUTLS_SIGN_RSA_SHA1,
- .sign_oid = "1.2.840.113549.1.1.5",
- .crt_count = 1,
- .this_update = 1274996231,
- .next_update = 1277588231,
- .crt_revoke_time = 1274996231,
- .crt_serial = "\x0b\x98\x94\xf9\x7c\x6a",
- .crt_serial_size = 6
- },
- { NULL, NULL, 0, 0}
+ "-----BEGIN X509 CRL-----\n"
+ "MIIB2zCBxAIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJOTjExMC8GA1UE\n"
+ "CgwoRWRlbCBDdXJsIEFyY3RpYyBJbGx1ZGl1bSBSZXNlYXJjaCBDbG91ZDElMCMG\n"
+ "A1UEAwwcTm90aGVybiBOb3doZXJlIFRydXN0IEFuY2hvchcNMTAwNTI3MjEzNzEx\n"
+ "WhcNMTAwNjI2MjEzNzExWjAZMBcCBguYlPl8ahcNMTAwNTI3MjEzNzExWqAOMAww\n"
+ "CgYDVR0UBAMCAQEwDQYJKoZIhvcNAQEFBQADggEBAFuPZJ/cNNCeAzkSxVvPPPRX\n"
+ "Wsv9T6Dt61C5Fmq9eSNN2kRf7/dq5A5nqTIlHbXXiLdj3UqNhUHXe2oA1UpbdHz9\n"
+ "0JlfwWm1Y/gMr1fh1n0oFebEtCuOgDRpd07Uiz8AqOUBykDNDUlMvVwR9raHL8hj\n"
+ "NRwzugsfIxl0CvLLqrBpUWMxW3qemk4cWW39yrDdZgKo6eOZAOR3FQYlLIrw6Jcr\n"
+ "Kmm0PjdcJIfRgJvNysgyx1dIIKe7QXvFTR/QzdHWIWTkiYIW7wUKSzSICvDCr094\n"
+ "eo3nr3n9BtOqT61Z1m6FGCP6Mm0wFl6xLTCNd6ygfFo7pcAdWlUsdBgKzics0Kc=\n"
+ "-----END X509 CRL-----\n";
+
+static struct {
+ const char *name;
+ const char *crl;
+ unsigned sign_algo;
+ const char *sign_oid;
+ int crt_count;
+ time_t next_update;
+ time_t this_update;
+
+ time_t crt_revoke_time;
+ size_t crt_serial_size;
+ const char *crt_serial;
+} crl_list[] = {
+ {.name = "crl-sha256-1",
+ .crl = simple1,
+ .sign_algo = GNUTLS_SIGN_RSA_SHA256,
+ .sign_oid = "1.2.840.113549.1.1.11",
+ .crt_count = 0,
+ .this_update = 1410599123,
+ .next_update = 1442135123},
+ {.name = "crl-sha256-2",
+ .crl = simple1_constraints,
+ .sign_algo = GNUTLS_SIGN_RSA_SHA256,
+ .sign_oid = "1.2.840.113549.1.1.11",
+ .crt_count = 0,
+ .this_update = 1410598756,
+ .next_update = 1442134756},
+ {.name = "crl-dsa",
+ .crl = crl_dsa,
+ .sign_algo = GNUTLS_SIGN_DSA_SHA1,
+ .sign_oid = "1.2.840.10040.4.3",
+ .crt_count = 0,
+ .this_update = 1116359980,
+ .next_update = 1147895980},
+ {.name = "crl-rsa-sha1",
+ .crl = crl_rsa_sha1,
+ .sign_algo = GNUTLS_SIGN_RSA_SHA1,
+ .sign_oid = "1.2.840.113549.1.1.5",
+ .crt_count = 1,
+ .this_update = 1274996231,
+ .next_update = 1277588231,
+ .crt_revoke_time = 1274996231,
+ .crt_serial = "\x0b\x98\x94\xf9\x7c\x6a",
+ .crt_serial_size = 6},
+ {NULL, NULL, 0, 0}
};
static void tls_log_func(int level, const char *str)
@@ -164,7 +155,7 @@ void doit(void)
if (debug)
printf("Chain '%s' (%d)...\n", crl_list[i].name,
- (int) i);
+ (int)i);
if (debug > 2)
printf("\tAdding CRL...");
@@ -173,33 +164,26 @@ void doit(void)
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crl_init[%d]: %s\n",
- (int) i,
- gnutls_strerror(ret));
+ (int)i, gnutls_strerror(ret));
exit(1);
}
- tmp.data = (unsigned char*)crl_list[i].crl;
+ tmp.data = (unsigned char *)crl_list[i].crl;
tmp.size = strlen(crl_list[i].crl);
- ret =
- gnutls_x509_crl_import(crl, &tmp,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crl_import(crl, &tmp, GNUTLS_X509_FMT_PEM);
if (debug > 2)
- printf("done\n");
+ printf("done\n");
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crl_import[%s]: %s\n",
- crl_list[i].name,
- gnutls_strerror(ret));
+ crl_list[i].name, gnutls_strerror(ret));
exit(1);
}
- gnutls_x509_crl_print(crl,
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ gnutls_x509_crl_print(crl, GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCRL: %.*s\n",
- tmp.size, tmp.data);
+ printf("\tCRL: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
ret = gnutls_x509_crl_get_signature_algorithm(crl);
@@ -222,7 +206,8 @@ void doit(void)
ret = gnutls_x509_crl_get_crt_count(crl);
if (ret != crl_list[i].crt_count) {
- fail("%s: error on the extracted CRT count: %d\n", crl_list[i].name, ret);
+ fail("%s: error on the extracted CRT count: %d\n",
+ crl_list[i].name, ret);
exit(1);
}
@@ -231,35 +216,43 @@ void doit(void)
size_t ssize = sizeof(serial);
time_t t = 0;
- ret = gnutls_x509_crl_get_crt_serial(crl, 0, serial, &ssize, &t);
+ ret =
+ gnutls_x509_crl_get_crt_serial(crl, 0, serial,
+ &ssize, &t);
if (ret < 0) {
- fail("%s: error on the extracted serial: %d\n", crl_list[i].name, ret);
+ fail("%s: error on the extracted serial: %d\n",
+ crl_list[i].name, ret);
}
if (t != crl_list[i].crt_revoke_time)
fail("%s: error on the extracted revocation time: %u\n", crl_list[i].name, (unsigned)t);
- if (ssize != crl_list[i].crt_serial_size || memcmp(serial, crl_list[i].crt_serial, ssize) != 0) {
- for (i=0;i<ssize;i++)
- fprintf(stderr, "%.2x", (unsigned)serial[i]);
+ if (ssize != crl_list[i].crt_serial_size
+ || memcmp(serial, crl_list[i].crt_serial,
+ ssize) != 0) {
+ for (i = 0; i < ssize; i++)
+ fprintf(stderr, "%.2x",
+ (unsigned)serial[i]);
fprintf(stderr, "\n");
- fail("%s: error on the extracted serial\n", crl_list[i].name);
+ fail("%s: error on the extracted serial\n",
+ crl_list[i].name);
}
}
ret = gnutls_x509_crl_get_this_update(crl);
if (ret != crl_list[i].this_update) {
- fail("%s: error on the extracted thisUpdate: %d\n", crl_list[i].name, ret);
+ fail("%s: error on the extracted thisUpdate: %d\n",
+ crl_list[i].name, ret);
exit(1);
}
ret = gnutls_x509_crl_get_next_update(crl);
if (ret != crl_list[i].next_update) {
- fail("%s: error on the extracted nextUpdate: %d\n", crl_list[i].name, ret);
+ fail("%s: error on the extracted nextUpdate: %d\n",
+ crl_list[i].name, ret);
exit(1);
}
-
gnutls_x509_crl_deinit(crl);
if (debug)
diff --git a/tests/crl_apis.c b/tests/crl_apis.c
index 714274ee7a..3f8a789ad4 100644
--- a/tests/crl_apis.c
+++ b/tests/crl_apis.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -45,38 +45,37 @@ static time_t mytime(time_t * t)
}
static unsigned char saved_crl_pem[] =
- "-----BEGIN X509 CRL-----\n"
- "MIICXzCByAIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0zFw0wODAz\n"
- "MzEyMjAwMDBaFw0wODAzMzEyMjAyMDBaMFQwFAIDAQIDFw0wODAzMzEyMjAwMDBa\n"
- "MB0CDFejHTI2Wi75obBaUhcNMDgwMzMxMjIwMDAwWjAdAgxXox0yNbNP0Ln15zwX\n"
- "DTA4MDMzMTIyMDAwMFqgLzAtMB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv\n"
- "8bSvMAoGA1UdFAQDAgEBMA0GCSqGSIb3DQEBCwUAA4IBgQAFpyifa5AJclRpJfjh\n"
- "QOcSoiCJz5QsrGaK5I/UYHcY958hhFjnE2c9g3wYEEt13M2gkgOTXapImPbLXHv+\n"
- "cHWGoTqX6+crs7xcC6mFc6JfY7q9O2eP1x386dzCxhsXMti5ml0iOeBpNrMO46Pr\n"
- "PuvNaY7OE1UgN0Ha3YjmhP8HtWJSQCMmqIo6vP1/HBSzaXP/cjS7f0WBZemj0eE7\n"
- "wwA1GUoUx9wHipvNkCSKy/eQz4fpOJExrvHeb1/N3po9hfZaZJAqR+rsC0j9J+wd\n"
- "ZGAdVFKCJUZs0IgsWQqagg0tXGJ8ejdt4yE8zvhhcpf4pcGoYUqtoUPT+Fjnsw7C\n"
- "P1GCVZQ2ciGxixljTJFdifhqPshgC1Ytd75MkDYH2RRir/JwypQK9CcqIAOjBzTl\n"
- "uk4SkKL2xAIduw6Dz5kAC7G2EM94uODoI/RO5b6eN6Kb/592JrKAfB96jh2wwqW+\n"
- "swaA4JPFqNQaiMWW1IXM3VJwXBt8DRSRo46JV5OktvvFRwI=\n"
- "-----END X509 CRL-----\n";
+ "-----BEGIN X509 CRL-----\n"
+ "MIICXzCByAIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0zFw0wODAz\n"
+ "MzEyMjAwMDBaFw0wODAzMzEyMjAyMDBaMFQwFAIDAQIDFw0wODAzMzEyMjAwMDBa\n"
+ "MB0CDFejHTI2Wi75obBaUhcNMDgwMzMxMjIwMDAwWjAdAgxXox0yNbNP0Ln15zwX\n"
+ "DTA4MDMzMTIyMDAwMFqgLzAtMB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv\n"
+ "8bSvMAoGA1UdFAQDAgEBMA0GCSqGSIb3DQEBCwUAA4IBgQAFpyifa5AJclRpJfjh\n"
+ "QOcSoiCJz5QsrGaK5I/UYHcY958hhFjnE2c9g3wYEEt13M2gkgOTXapImPbLXHv+\n"
+ "cHWGoTqX6+crs7xcC6mFc6JfY7q9O2eP1x386dzCxhsXMti5ml0iOeBpNrMO46Pr\n"
+ "PuvNaY7OE1UgN0Ha3YjmhP8HtWJSQCMmqIo6vP1/HBSzaXP/cjS7f0WBZemj0eE7\n"
+ "wwA1GUoUx9wHipvNkCSKy/eQz4fpOJExrvHeb1/N3po9hfZaZJAqR+rsC0j9J+wd\n"
+ "ZGAdVFKCJUZs0IgsWQqagg0tXGJ8ejdt4yE8zvhhcpf4pcGoYUqtoUPT+Fjnsw7C\n"
+ "P1GCVZQ2ciGxixljTJFdifhqPshgC1Ytd75MkDYH2RRir/JwypQK9CcqIAOjBzTl\n"
+ "uk4SkKL2xAIduw6Dz5kAC7G2EM94uODoI/RO5b6eN6Kb/592JrKAfB96jh2wwqW+\n"
+ "swaA4JPFqNQaiMWW1IXM3VJwXBt8DRSRo46JV5OktvvFRwI=\n"
+ "-----END X509 CRL-----\n";
static unsigned char saved_min_crl_pem[] =
- "-----BEGIN X509 CRL-----\n"
- "MIICUDCBuQIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0zFw0wODAz\n"
- "MzEyMjAwMTBaMFQwFAIDAQIDFw0wODAzMzEyMjAwMTBaMB0CDFejHTI2Wi75obBa\n"
- "UhcNMDgwMzMxMjIwMDEwWjAdAgxXox0yNbNP0Ln15zwXDTA4MDMzMTIyMDAxMFqg\n"
- "LzAtMB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv8bSvMAoGA1UdFAQDAgEB\n"
- "MA0GCSqGSIb3DQEBCwUAA4IBgQB/Y7MxKf7HpYBoi7N5lNCe7nSd0epQiNPOford\n"
- "hGb1ZirZk9m67zg146Cwc0W4ipPzW/OjwgUoVQTm21I7oZj/GPItAABlILd6eRQe\n"
- "jYJap0fxiXV7aMRfu2o3qCRGAITQf306H5zJmpdeNxbxzlr3t6IAHBDbLI1WYXiC\n"
- "pTHo3wlpwFJEPw5NQ0j6rCAzSH81FHTrEiIOar17uRqeMjbGN6Eo4zjezEx2+ewg\n"
- "unsdzx4OWx3KgzsQnyV9EoU6l9jREe519mICx7La6DZkhO4dSPJv6R5jEFitWDNB\n"
- "lxZMA5ePrYXuE/3b+Li89R53O+xZxShLQYwBRSHDue44xUv6hh6YNIKDgt4ycIs8\n"
- "9JAWsOYJDYUEbAUo+S4sWCU6LzloEvmg7EdJtvJWsScUKK4qbwkDfkBTKjbeBdFj\n"
- "w6naZIjzbjMPEe8/T+hmu/txFj3fGj/GzOM1GaJNZ4vMWA4Y6LhB+H1Zf3xK+hV0\n"
- "sc0eYw7RpIzEyc9PPz/uM+XabsI=\n"
- "-----END X509 CRL-----\n";
+ "-----BEGIN X509 CRL-----\n"
+ "MIICUDCBuQIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0zFw0wODAz\n"
+ "MzEyMjAwMTBaMFQwFAIDAQIDFw0wODAzMzEyMjAwMTBaMB0CDFejHTI2Wi75obBa\n"
+ "UhcNMDgwMzMxMjIwMDEwWjAdAgxXox0yNbNP0Ln15zwXDTA4MDMzMTIyMDAxMFqg\n"
+ "LzAtMB8GA1UdIwQYMBaAFPmohhljtqQUE2B2DwGaNTbv8bSvMAoGA1UdFAQDAgEB\n"
+ "MA0GCSqGSIb3DQEBCwUAA4IBgQB/Y7MxKf7HpYBoi7N5lNCe7nSd0epQiNPOford\n"
+ "hGb1ZirZk9m67zg146Cwc0W4ipPzW/OjwgUoVQTm21I7oZj/GPItAABlILd6eRQe\n"
+ "jYJap0fxiXV7aMRfu2o3qCRGAITQf306H5zJmpdeNxbxzlr3t6IAHBDbLI1WYXiC\n"
+ "pTHo3wlpwFJEPw5NQ0j6rCAzSH81FHTrEiIOar17uRqeMjbGN6Eo4zjezEx2+ewg\n"
+ "unsdzx4OWx3KgzsQnyV9EoU6l9jREe519mICx7La6DZkhO4dSPJv6R5jEFitWDNB\n"
+ "lxZMA5ePrYXuE/3b+Li89R53O+xZxShLQYwBRSHDue44xUv6hh6YNIKDgt4ycIs8\n"
+ "9JAWsOYJDYUEbAUo+S4sWCU6LzloEvmg7EdJtvJWsScUKK4qbwkDfkBTKjbeBdFj\n"
+ "w6naZIjzbjMPEe8/T+hmu/txFj3fGj/GzOM1GaJNZ4vMWA4Y6LhB+H1Zf3xK+hV0\n"
+ "sc0eYw7RpIzEyc9PPz/uM+XabsI=\n" "-----END X509 CRL-----\n";
const gnutls_datum_t saved_crl = { saved_crl_pem, sizeof(saved_crl_pem) - 1 };
const gnutls_datum_t saved_min_crl =
@@ -158,7 +157,7 @@ static void sign_crl(gnutls_x509_crl_t crl, const gnutls_datum_t * cert,
if (ret != 0)
fail("gnutls_x509_crl_sign: %s\n", gnutls_strerror(ret));
- then+=10;
+ then += 10;
verify_crl(crl, crt);
diff --git a/tests/crlverify.c b/tests/crlverify.c
index d8414d71cb..3583236cf6 100644
--- a/tests/crlverify.c
+++ b/tests/crlverify.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -34,159 +34,154 @@
static const char *simple1[] = {
/* CRL */
-"-----BEGIN X509 CRL-----\n"
-"MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
-"MDkxMzA5MDUyM1oYDzIwMTUwOTEzMDkwNTIzWjAAoDowODAfBgNVHSMEGDAWgBTx\n"
-"Fcb1FYLbhH9yuqg4wlVJUZnYKTAVBgNVHRQEDgIMVBQI0zeJoFHkLaWNMA0GCSqG\n"
-"SIb3DQEBCwUAA4IBAQB6SGYePy1MBmtELyWdnlJHlQ4bBgb4vjuLDSfH0X6b4dAS\n"
-"MEZws8iA5SaJFIioIP41s3lfQ1Am7GjSoNccHdrLmEcUSTQLwLYaDL8SgxekP5Au\n"
-"w8HTu1cz/mnjBBDURq1RvyGNFm6MXf1Rg/bHSea/EpDkn8KY152BT1/46iQ+Uho6\n"
-"hz6UUWsTB4Lj25X8F2hlKwQcb3E63Or2XEPBw4rhaCDFAtSZeBaGUUSJ8CLUKXZf\n"
-"5b45MjiZ/osgd81tfn3wdQVjDnaQwNtjeRbK+qU0Z4pIKBvHzRS/fZKwTnrK1DLI\n"
-"yY/nqBJT/+Q5zdUx5FXp0bwyZuarJ1GHqcES3Rz1\n"
-"-----END X509 CRL-----\n",
+ "-----BEGIN X509 CRL-----\n"
+ "MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
+ "MDkxMzA5MDUyM1oYDzIwMTUwOTEzMDkwNTIzWjAAoDowODAfBgNVHSMEGDAWgBTx\n"
+ "Fcb1FYLbhH9yuqg4wlVJUZnYKTAVBgNVHRQEDgIMVBQI0zeJoFHkLaWNMA0GCSqG\n"
+ "SIb3DQEBCwUAA4IBAQB6SGYePy1MBmtELyWdnlJHlQ4bBgb4vjuLDSfH0X6b4dAS\n"
+ "MEZws8iA5SaJFIioIP41s3lfQ1Am7GjSoNccHdrLmEcUSTQLwLYaDL8SgxekP5Au\n"
+ "w8HTu1cz/mnjBBDURq1RvyGNFm6MXf1Rg/bHSea/EpDkn8KY152BT1/46iQ+Uho6\n"
+ "hz6UUWsTB4Lj25X8F2hlKwQcb3E63Or2XEPBw4rhaCDFAtSZeBaGUUSJ8CLUKXZf\n"
+ "5b45MjiZ/osgd81tfn3wdQVjDnaQwNtjeRbK+qU0Z4pIKBvHzRS/fZKwTnrK1DLI\n"
+ "yY/nqBJT/+Q5zdUx5FXp0bwyZuarJ1GHqcES3Rz1\n"
+ "-----END X509 CRL-----\n",
/* CA - cert_signing_key only */
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwOTEzMDkwNTIzWhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCybbzvQTOmfwlA\n"
-"+q8F/4ms42nhl5lo1lK6JCvE7jZdhqZNXE8e1eNACrU6rCxRQynDhOyAOCLQAAul\n"
-"ivNMCW+SFN0IkSYXSRM8aWIDOZT8FyWB3yJSyvi3+SMgm7OYHFW8htH8qaIv0xJf\n"
-"1h/ADBE62j9uaQIg7qSn6pVHMDHaITAbPg3y6II1iP3W28Vj/rtvK9yoZu4AThSD\n"
-"Vdjl8WT4b4VOBbmioSNCDjx2C73+HLM2eUsdumCVcjWD9gkvCKkqTbOVplGRvCzO\n"
-"sKNVGJamH9eGOjF2Az9XuYR+m7jWdIyTitLtbliyFiWwFguQ7BAPVnUS3TSKoLKL\n"
-"X9WRGDIVAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcG\n"
-"ADAdBgNVHQ4EFgQU8RXG9RWC24R/crqoOMJVSVGZ2CkwDQYJKoZIhvcNAQELBQAD\n"
-"ggEBAASDvSD6Gt9E/IANgJ2lq7cvqKHhK/S0crpBHmzouLU1YANAbva8vZ2iVsgP\n"
-"ojj5+QKosXgZM67g1u4Vr/Kt7APwYDVV9NlfE7BLSaksaQbh6J464rJ8pXONW6xP\n"
-"z6tl/Pm1RqXuxzgnUv700OFuxBnnbglz9aQk5eS7kag8bfUx8MfN5gbW34nB79fn\n"
-"5943Z8DmcDfUQZRY66v4S/NAYs7s96ABMB18u9Ct6KqGP/LKfDt2bgeTE/1b68T+\n"
-"xmYF8N+JsJ3qP4lqBHgHLUL945nEoG8yDPIiZw3pmw1SyS0ktoVASynAh3W5j//r\n"
-"d9Uk2Ojqo2tp/lJ0LCuQ3nWeM2Y=\n"
-"-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwOTEzMDkwNTIzWhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCybbzvQTOmfwlA\n"
+ "+q8F/4ms42nhl5lo1lK6JCvE7jZdhqZNXE8e1eNACrU6rCxRQynDhOyAOCLQAAul\n"
+ "ivNMCW+SFN0IkSYXSRM8aWIDOZT8FyWB3yJSyvi3+SMgm7OYHFW8htH8qaIv0xJf\n"
+ "1h/ADBE62j9uaQIg7qSn6pVHMDHaITAbPg3y6II1iP3W28Vj/rtvK9yoZu4AThSD\n"
+ "Vdjl8WT4b4VOBbmioSNCDjx2C73+HLM2eUsdumCVcjWD9gkvCKkqTbOVplGRvCzO\n"
+ "sKNVGJamH9eGOjF2Az9XuYR+m7jWdIyTitLtbliyFiWwFguQ7BAPVnUS3TSKoLKL\n"
+ "X9WRGDIVAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcG\n"
+ "ADAdBgNVHQ4EFgQU8RXG9RWC24R/crqoOMJVSVGZ2CkwDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBAASDvSD6Gt9E/IANgJ2lq7cvqKHhK/S0crpBHmzouLU1YANAbva8vZ2iVsgP\n"
+ "ojj5+QKosXgZM67g1u4Vr/Kt7APwYDVV9NlfE7BLSaksaQbh6J464rJ8pXONW6xP\n"
+ "z6tl/Pm1RqXuxzgnUv700OFuxBnnbglz9aQk5eS7kag8bfUx8MfN5gbW34nB79fn\n"
+ "5943Z8DmcDfUQZRY66v4S/NAYs7s96ABMB18u9Ct6KqGP/LKfDt2bgeTE/1b68T+\n"
+ "xmYF8N+JsJ3qP4lqBHgHLUL945nEoG8yDPIiZw3pmw1SyS0ktoVASynAh3W5j//r\n"
+ "d9Uk2Ojqo2tp/lJ0LCuQ3nWeM2Y=\n" "-----END CERTIFICATE-----\n"
};
static const char *simple1_broken[] = {
/* CRL with some bits flipped */
-"-----BEGIN X509 CRL-----\n"
-"MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
-"MDkxMzA5MDUyM1oYDzIwMTUwOTEzMDkwNTIzWjAAoDowODAfBgNVHSMEGDAWgBTx\n"
-"Fcb1FYLbhH9yuqg4wlVJUZnYKTAVBgNVHRQEDgIMVBQI0zeJoFHkLaWNMA0GCSqG\n"
-"SIb3DQEBCwUAA4IBAQB6SGYePy1MBmtELyWdnlJHlQ4bBgb4vjuLDSfH0X6b4dAS\n"
-"MEZws8iA5SaJFIioIP41s3lfQ1Am7GjSoNccHdrLmEcUSTQLwLYaDL8SgxekP5Au\n"
-"w8HTu1cz/mnjBBDURq1RvyGNFm6MXf1Rg/bHSea/EpDkn8KY152BT1/46iQ+Uho6\n"
-"hz6UUWsTB4Lj25X8F3hlKwQcb3E63Or2XEPBw4rhaCDFAtSZeBaGUUSJ8CLUKXZf\n"
-"5b45MjiZ/osgd81tfn3wdQVjDnaQwNtjeRbK+qU0Z4pIKBvHzRS/fZKwTnrK1DLI\n"
-"yY/nqBJT/+Q5zdUx5FXp0bwyZuarJ1GHqcES3Rz1\n"
-"-----END X509 CRL-----\n",
+ "-----BEGIN X509 CRL-----\n"
+ "MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
+ "MDkxMzA5MDUyM1oYDzIwMTUwOTEzMDkwNTIzWjAAoDowODAfBgNVHSMEGDAWgBTx\n"
+ "Fcb1FYLbhH9yuqg4wlVJUZnYKTAVBgNVHRQEDgIMVBQI0zeJoFHkLaWNMA0GCSqG\n"
+ "SIb3DQEBCwUAA4IBAQB6SGYePy1MBmtELyWdnlJHlQ4bBgb4vjuLDSfH0X6b4dAS\n"
+ "MEZws8iA5SaJFIioIP41s3lfQ1Am7GjSoNccHdrLmEcUSTQLwLYaDL8SgxekP5Au\n"
+ "w8HTu1cz/mnjBBDURq1RvyGNFm6MXf1Rg/bHSea/EpDkn8KY152BT1/46iQ+Uho6\n"
+ "hz6UUWsTB4Lj25X8F3hlKwQcb3E63Or2XEPBw4rhaCDFAtSZeBaGUUSJ8CLUKXZf\n"
+ "5b45MjiZ/osgd81tfn3wdQVjDnaQwNtjeRbK+qU0Z4pIKBvHzRS/fZKwTnrK1DLI\n"
+ "yY/nqBJT/+Q5zdUx5FXp0bwyZuarJ1GHqcES3Rz1\n"
+ "-----END X509 CRL-----\n",
/* CA - cert_signing_key only */
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwOTEzMDkwNTIzWhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCybbzvQTOmfwlA\n"
-"+q8F/4ms42nhl5lo1lK6JCvE7jZdhqZNXE8e1eNACrU6rCxRQynDhOyAOCLQAAul\n"
-"ivNMCW+SFN0IkSYXSRM8aWIDOZT8FyWB3yJSyvi3+SMgm7OYHFW8htH8qaIv0xJf\n"
-"1h/ADBE62j9uaQIg7qSn6pVHMDHaITAbPg3y6II1iP3W28Vj/rtvK9yoZu4AThSD\n"
-"Vdjl8WT4b4VOBbmioSNCDjx2C73+HLM2eUsdumCVcjWD9gkvCKkqTbOVplGRvCzO\n"
-"sKNVGJamH9eGOjF2Az9XuYR+m7jWdIyTitLtbliyFiWwFguQ7BAPVnUS3TSKoLKL\n"
-"X9WRGDIVAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcG\n"
-"ADAdBgNVHQ4EFgQU8RXG9RWC24R/crqoOMJVSVGZ2CkwDQYJKoZIhvcNAQELBQAD\n"
-"ggEBAASDvSD6Gt9E/IANgJ2lq7cvqKHhK/S0crpBHmzouLU1YANAbva8vZ2iVsgP\n"
-"ojj5+QKosXgZM67g1u4Vr/Kt7APwYDVV9NlfE7BLSaksaQbh6J464rJ8pXONW6xP\n"
-"z6tl/Pm1RqXuxzgnUv700OFuxBnnbglz9aQk5eS7kag8bfUx8MfN5gbW34nB79fn\n"
-"5943Z8DmcDfUQZRY66v4S/NAYs7s96ABMB18u9Ct6KqGP/LKfDt2bgeTE/1b68T+\n"
-"xmYF8N+JsJ3qP4lqBHgHLUL945nEoG8yDPIiZw3pmw1SyS0ktoVASynAh3W5j//r\n"
-"d9Uk2Ojqo2tp/lJ0LCuQ3nWeM2Y=\n"
-"-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwOTEzMDkwNTIzWhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCybbzvQTOmfwlA\n"
+ "+q8F/4ms42nhl5lo1lK6JCvE7jZdhqZNXE8e1eNACrU6rCxRQynDhOyAOCLQAAul\n"
+ "ivNMCW+SFN0IkSYXSRM8aWIDOZT8FyWB3yJSyvi3+SMgm7OYHFW8htH8qaIv0xJf\n"
+ "1h/ADBE62j9uaQIg7qSn6pVHMDHaITAbPg3y6II1iP3W28Vj/rtvK9yoZu4AThSD\n"
+ "Vdjl8WT4b4VOBbmioSNCDjx2C73+HLM2eUsdumCVcjWD9gkvCKkqTbOVplGRvCzO\n"
+ "sKNVGJamH9eGOjF2Az9XuYR+m7jWdIyTitLtbliyFiWwFguQ7BAPVnUS3TSKoLKL\n"
+ "X9WRGDIVAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcG\n"
+ "ADAdBgNVHQ4EFgQU8RXG9RWC24R/crqoOMJVSVGZ2CkwDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBAASDvSD6Gt9E/IANgJ2lq7cvqKHhK/S0crpBHmzouLU1YANAbva8vZ2iVsgP\n"
+ "ojj5+QKosXgZM67g1u4Vr/Kt7APwYDVV9NlfE7BLSaksaQbh6J464rJ8pXONW6xP\n"
+ "z6tl/Pm1RqXuxzgnUv700OFuxBnnbglz9aQk5eS7kag8bfUx8MfN5gbW34nB79fn\n"
+ "5943Z8DmcDfUQZRY66v4S/NAYs7s96ABMB18u9Ct6KqGP/LKfDt2bgeTE/1b68T+\n"
+ "xmYF8N+JsJ3qP4lqBHgHLUL945nEoG8yDPIiZw3pmw1SyS0ktoVASynAh3W5j//r\n"
+ "d9Uk2Ojqo2tp/lJ0LCuQ3nWeM2Y=\n" "-----END CERTIFICATE-----\n"
};
static const char *simple1_constraints[] = {
/* CRL */
-"-----BEGIN X509 CRL-----\n"
-"MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
-"MDkxMzA4NTkxNloYDzIwMTUwOTEzMDg1OTE2WjAAoDowODAfBgNVHSMEGDAWgBTn\n"
-"sISO6h9leKTKtOh/HG0jV03AMzAVBgNVHRQEDgIMVBQHZC2mj6EAgMPSMA0GCSqG\n"
-"SIb3DQEBCwUAA4IBAQBHUgtxpOn8EHwlajVYoOh6DFCwIoxBIeUA4518W1cHoV7J\n"
-"KMif6lmJRodrcbienDX781QcOaQcNnuu/oBEcoBdbZa0VICzXekIteSwEgGsbRve\n"
-"QQFPnZn83I4btse1ly5fdxMsliSM+qRwIyNR18VHXZz9GWYrr4tYWnI2b9XrDnaC\n"
-"1b3Ywt7I9pNi0/O0C0rE/37/VvPx6HghnC+un7LtT0Y0n+FQP7dhlMvzHaR8wVxs\n"
-"WAzaNvSiJ1rVPzL21iCmQJsRQeDTSJBlzm0lWiU8Nys3ugM2KlERezfp8DkFGA3y\n"
-"9Yzpq6gAi39ZK+LjopgGDkrQjxzBIaoe2bcDqB7X\n"
-"-----END X509 CRL-----\n",
+ "-----BEGIN X509 CRL-----\n"
+ "MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
+ "MDkxMzA4NTkxNloYDzIwMTUwOTEzMDg1OTE2WjAAoDowODAfBgNVHSMEGDAWgBTn\n"
+ "sISO6h9leKTKtOh/HG0jV03AMzAVBgNVHRQEDgIMVBQHZC2mj6EAgMPSMA0GCSqG\n"
+ "SIb3DQEBCwUAA4IBAQBHUgtxpOn8EHwlajVYoOh6DFCwIoxBIeUA4518W1cHoV7J\n"
+ "KMif6lmJRodrcbienDX781QcOaQcNnuu/oBEcoBdbZa0VICzXekIteSwEgGsbRve\n"
+ "QQFPnZn83I4btse1ly5fdxMsliSM+qRwIyNR18VHXZz9GWYrr4tYWnI2b9XrDnaC\n"
+ "1b3Ywt7I9pNi0/O0C0rE/37/VvPx6HghnC+un7LtT0Y0n+FQP7dhlMvzHaR8wVxs\n"
+ "WAzaNvSiJ1rVPzL21iCmQJsRQeDTSJBlzm0lWiU8Nys3ugM2KlERezfp8DkFGA3y\n"
+ "9Yzpq6gAi39ZK+LjopgGDkrQjxzBIaoe2bcDqB7X\n"
+ "-----END X509 CRL-----\n",
/* CA - cert_signing_key only */
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwOTEzMDg1OTE2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AVMcGmvenCAt\n"
-"14Yi2zi6In2vjNakbzDfUa5xaG8oD73h4P8zP2TQqDmUBAAi5EdXoF5/crpgnGY3\n"
-"oyUEFYnT7GTI/FO+RxZz9jCLvY3hpeuJcofsFny8n0ARL9WiFKuAEvrZkg+6V3Fh\n"
-"TC9bCOFsGVTaLiUoi/nkD9IUgCkybFTqZM+8tLT4/gCMFNs9e0ANa5F+wtvS0bjy\n"
-"LLozq6+XpzEXlL3UNKJq9cf02zHjb9ftlMDykRRkGPzppBSfOCJAMOX/BBNpWznJ\n"
-"I1bg0m/6X3+SDO3j0PKLVc7BWWTnXXHb4rznwcRZm8zJiKKFE0GDOijzpT6Dl/gX\n"
-"JI0lroeJAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQU57CEjuofZXikyrTofxxtI1dNwDMwDQYJKoZIhvcNAQELBQAD\n"
-"ggEBALPFKXFauyO0R7Y+zhpiqYe1ms4qU9aprr/x4GMG4ByZ0i0FK8Kh+L5BsNQA\n"
-"FsEMeEEmKTHKzkMHfvTJ6y/K6P9rTVY7W2MqlX8IXM02L3fg0zn7Xd9CtCG1nnzh\n"
-"fQMf/K/9Xqiotjlrgo8noEZksGPIvDPXXY98dd0clGnBvw2HwiG4h+csr4i9y7CH\n"
-"tpnTRJnfzdqDYIh8vnM0tIJbXbe5DBLHnmnx15FQB1apFNa87gdBHAnkHCXrV1vC\n"
-"oZXEeUL/zW2ax+ALOglM82dwex2qV9jgcsWfq1Y2JBlVT1QPpbAooCnjvBhmPCjX\n"
-"qYkVfApeRr4QAwwkLnyfSKNLHco=\n"
-"-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwOTEzMDg1OTE2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AVMcGmvenCAt\n"
+ "14Yi2zi6In2vjNakbzDfUa5xaG8oD73h4P8zP2TQqDmUBAAi5EdXoF5/crpgnGY3\n"
+ "oyUEFYnT7GTI/FO+RxZz9jCLvY3hpeuJcofsFny8n0ARL9WiFKuAEvrZkg+6V3Fh\n"
+ "TC9bCOFsGVTaLiUoi/nkD9IUgCkybFTqZM+8tLT4/gCMFNs9e0ANa5F+wtvS0bjy\n"
+ "LLozq6+XpzEXlL3UNKJq9cf02zHjb9ftlMDykRRkGPzppBSfOCJAMOX/BBNpWznJ\n"
+ "I1bg0m/6X3+SDO3j0PKLVc7BWWTnXXHb4rznwcRZm8zJiKKFE0GDOijzpT6Dl/gX\n"
+ "JI0lroeJAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQU57CEjuofZXikyrTofxxtI1dNwDMwDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBALPFKXFauyO0R7Y+zhpiqYe1ms4qU9aprr/x4GMG4ByZ0i0FK8Kh+L5BsNQA\n"
+ "FsEMeEEmKTHKzkMHfvTJ6y/K6P9rTVY7W2MqlX8IXM02L3fg0zn7Xd9CtCG1nnzh\n"
+ "fQMf/K/9Xqiotjlrgo8noEZksGPIvDPXXY98dd0clGnBvw2HwiG4h+csr4i9y7CH\n"
+ "tpnTRJnfzdqDYIh8vnM0tIJbXbe5DBLHnmnx15FQB1apFNa87gdBHAnkHCXrV1vC\n"
+ "oZXEeUL/zW2ax+ALOglM82dwex2qV9jgcsWfq1Y2JBlVT1QPpbAooCnjvBhmPCjX\n"
+ "qYkVfApeRr4QAwwkLnyfSKNLHco=\n" "-----END CERTIFICATE-----\n"
};
static const char *simple1_fail[] = {
/* CRL */
-"-----BEGIN X509 CRL-----\n"
-"MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
-"MDkxMzA4NTkxNloYDzIwMTUwOTEzMDg1OTE2WjAAoDowODAfBgNVHSMEGDAWgBTn\n"
-"sISO6h9leKTKtOh/HG0jV03AMzAVBgNVHRQEDgIMVBQHZC2mj6EAgMPSMA0GCSqG\n"
-"SIb3DQEBCwUAA4IBAQBHUgtxpOn8EHwlajVYoOh6DFCwIoxBIeUA4518W1cHoV7J\n"
-"KMif6lmJRodrcbienDX781QcOaQcNnuu/oBEcoBdbZa0VICzXekIteSwEgGsbRve\n"
-"QQFPnZn83I4btse1ly5fdxMsliSM+qRwIyNR18VHXZz9GWYrr4tYWnI2b9XrDnaC\n"
-"1b3Ywt7I9pNi0/O0C0rE/37/VvPx6HghnC+un7LtT0Y0n+FQP7dhlMvzHaR8wVxs\n"
-"WAzaNvSiJ1rVPzL21iCmQJsRQeDTSJBlzm0lWiU8Nys3ugM2KlERezfp8DkFGA3y\n"
-"9Yzpq6gAi39ZK+LjopgGDkrQjxzBIaoe2bcDqB7X\n"
-"-----END X509 CRL-----\n",
+ "-----BEGIN X509 CRL-----\n"
+ "MIIBmjCBgwIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0wGA8yMDE0\n"
+ "MDkxMzA4NTkxNloYDzIwMTUwOTEzMDg1OTE2WjAAoDowODAfBgNVHSMEGDAWgBTn\n"
+ "sISO6h9leKTKtOh/HG0jV03AMzAVBgNVHRQEDgIMVBQHZC2mj6EAgMPSMA0GCSqG\n"
+ "SIb3DQEBCwUAA4IBAQBHUgtxpOn8EHwlajVYoOh6DFCwIoxBIeUA4518W1cHoV7J\n"
+ "KMif6lmJRodrcbienDX781QcOaQcNnuu/oBEcoBdbZa0VICzXekIteSwEgGsbRve\n"
+ "QQFPnZn83I4btse1ly5fdxMsliSM+qRwIyNR18VHXZz9GWYrr4tYWnI2b9XrDnaC\n"
+ "1b3Ywt7I9pNi0/O0C0rE/37/VvPx6HghnC+un7LtT0Y0n+FQP7dhlMvzHaR8wVxs\n"
+ "WAzaNvSiJ1rVPzL21iCmQJsRQeDTSJBlzm0lWiU8Nys3ugM2KlERezfp8DkFGA3y\n"
+ "9Yzpq6gAi39ZK+LjopgGDkrQjxzBIaoe2bcDqB7X\n"
+ "-----END X509 CRL-----\n",
/* CA (unrelated to CRL) */
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDFTCCAf2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwODI2MTEwODUyWhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+iPUnEs+qmj2U\n"
-"Rz8plNAE/CpeUxUfNNVonluu4DzulsxAJMN78g+Oqx+ggdkECZxHLISkzErMgiuv\n"
-"bG+nr9yxjyHH2YoOAgzgknar5JkOBkKp1bIvyA950ZSygMFEHX1qoaM+F/1/DKjG\n"
-"NmMCNUpR0c4m+K22s72LnrpMLMmCZU0fnqngb1+F+iZE6emhcX5Z5D0QTJTAeiYK\n"
-"ArnO0rpVEvU0o3nwe3dDrT0YyoCYrzCsCOKUa2wFtkOzLZKJbMBRMflL+fBmtj/Q\n"
-"7xUe7ox62ZEqSD7W+Po48/mIuSOhx7u+yToBZ60wKGz9OkQ/JwykkK5ZgI+nPWGT\n"
-"1au1K4V7AgMBAAGjeDB2MA8GA1UdEwEB/wQFMAMBAf8wEgYDVR0eAQH/BAgwBqEE\n"
-"MAKCADAPBgNVHQ8BAf8EBQMDBwQAMB0GA1UdDgQWBBSgAJcc9Q5KDpAhkrMORPJS\n"
-"boq3vzAfBgNVHSMEGDAWgBQ/lKQpHoyEFz7J+Wn6eT5qxgYQpjANBgkqhkiG9w0B\n"
-"AQsFAAOCAQEAoMeZ0cnHes8bWRHLvrGc6wpwVnxYx2CBF9Xd3k4YMNunwBF9oM+T\n"
-"ZYSMo4k7C1XZ154avBIyiCne3eU7/oHG1nkqY9ndN5LMyL8KFOniETBY3BdKtlGA\n"
-"N+pDiQsrWG6mtqQ+kHFJICnGEDDByGB2eH+oAS+8gNtSfamLuTWYMI6ANjA9OWan\n"
-"rkIA7ta97UiH2flvKRctqvZ0n6Vp3n3aUc53FkAbTnxOCBNCBx/veCgD/r74WbcY\n"
-"jiwh2RE//3D3Oo7zhUlwQEWQSa/7poG5e6bl7oj4JYjpwSmESCYokT83Iqeb9lwO\n"
-"D+dr9zs1tCudW9xz3sUg6IBXhZ4UvegTNg==\n"
-"-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDFTCCAf2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwODI2MTEwODUyWhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+iPUnEs+qmj2U\n"
+ "Rz8plNAE/CpeUxUfNNVonluu4DzulsxAJMN78g+Oqx+ggdkECZxHLISkzErMgiuv\n"
+ "bG+nr9yxjyHH2YoOAgzgknar5JkOBkKp1bIvyA950ZSygMFEHX1qoaM+F/1/DKjG\n"
+ "NmMCNUpR0c4m+K22s72LnrpMLMmCZU0fnqngb1+F+iZE6emhcX5Z5D0QTJTAeiYK\n"
+ "ArnO0rpVEvU0o3nwe3dDrT0YyoCYrzCsCOKUa2wFtkOzLZKJbMBRMflL+fBmtj/Q\n"
+ "7xUe7ox62ZEqSD7W+Po48/mIuSOhx7u+yToBZ60wKGz9OkQ/JwykkK5ZgI+nPWGT\n"
+ "1au1K4V7AgMBAAGjeDB2MA8GA1UdEwEB/wQFMAMBAf8wEgYDVR0eAQH/BAgwBqEE\n"
+ "MAKCADAPBgNVHQ8BAf8EBQMDBwQAMB0GA1UdDgQWBBSgAJcc9Q5KDpAhkrMORPJS\n"
+ "boq3vzAfBgNVHSMEGDAWgBQ/lKQpHoyEFz7J+Wn6eT5qxgYQpjANBgkqhkiG9w0B\n"
+ "AQsFAAOCAQEAoMeZ0cnHes8bWRHLvrGc6wpwVnxYx2CBF9Xd3k4YMNunwBF9oM+T\n"
+ "ZYSMo4k7C1XZ154avBIyiCne3eU7/oHG1nkqY9ndN5LMyL8KFOniETBY3BdKtlGA\n"
+ "N+pDiQsrWG6mtqQ+kHFJICnGEDDByGB2eH+oAS+8gNtSfamLuTWYMI6ANjA9OWan\n"
+ "rkIA7ta97UiH2flvKRctqvZ0n6Vp3n3aUc53FkAbTnxOCBNCBx/veCgD/r74WbcY\n"
+ "jiwh2RE//3D3Oo7zhUlwQEWQSa/7poG5e6bl7oj4JYjpwSmESCYokT83Iqeb9lwO\n"
+ "D+dr9zs1tCudW9xz3sUg6IBXhZ4UvegTNg==\n"
+ "-----END CERTIFICATE-----\n"
};
-static struct
-{
- const char *name;
- const char **crl;
- const char **ca;
- unsigned int verify_flags;
- unsigned int expected_verify_result;
-} crl_list[] =
-{
- { "simple-success", &simple1[0], &simple1[1],
- 0, 0 },
- { "simple-constraints", &simple1_constraints[0], &simple1_constraints[1],
- 0, GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE|GNUTLS_CERT_INVALID },
- { "simple-broken", &simple1_broken[0], &simple1_broken[1],
- 0, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNATURE_FAILURE },
- { "simple-fail", &simple1_fail[0], &simple1_fail[1],
- 0, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND},
- { NULL, NULL, NULL, 0, 0}
+static struct {
+ const char *name;
+ const char **crl;
+ const char **ca;
+ unsigned int verify_flags;
+ unsigned int expected_verify_result;
+} crl_list[] = {
+ {"simple-success", &simple1[0], &simple1[1],
+ 0, 0},
+ {"simple-constraints", &simple1_constraints[0], &simple1_constraints[1],
+ 0, GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE | GNUTLS_CERT_INVALID},
+ {"simple-broken", &simple1_broken[0], &simple1_broken[1],
+ 0, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNATURE_FAILURE},
+ {"simple-fail", &simple1_fail[0], &simple1_fail[1],
+ 0, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND},
+ {NULL, NULL, NULL, 0, 0}
};
/* GnuTLS internally calls time() to find out the current time when
@@ -241,7 +236,7 @@ void doit(void)
if (debug)
printf("Chain '%s' (%d)...\n", crl_list[i].name,
- (int) i);
+ (int)i);
if (debug > 2)
printf("\tAdding CRL...");
@@ -250,33 +245,26 @@ void doit(void)
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crl_init[%d]: %s\n",
- (int) i,
- gnutls_strerror(ret));
+ (int)i, gnutls_strerror(ret));
exit(1);
}
- tmp.data = (unsigned char *) *crl_list[i].crl;
+ tmp.data = (unsigned char *)*crl_list[i].crl;
tmp.size = strlen(*crl_list[i].crl);
- ret =
- gnutls_x509_crl_import(crl, &tmp,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crl_import(crl, &tmp, GNUTLS_X509_FMT_PEM);
if (debug > 2)
- printf("done\n");
+ printf("done\n");
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crl_import[%s]: %s\n",
- crl_list[i].name,
- gnutls_strerror(ret));
+ crl_list[i].name, gnutls_strerror(ret));
exit(1);
}
- gnutls_x509_crl_print(crl,
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ gnutls_x509_crl_print(crl, GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCRL: %.*s\n",
- tmp.size, tmp.data);
+ printf("\tCRL: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
if (debug > 2)
@@ -289,11 +277,10 @@ void doit(void)
exit(1);
}
- tmp.data = (unsigned char *) *crl_list[i].ca;
+ tmp.data = (unsigned char *)*crl_list[i].ca;
tmp.size = strlen(*crl_list[i].ca);
- ret =
- gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_import: %s\n",
gnutls_strerror(ret));
@@ -305,19 +292,20 @@ void doit(void)
gnutls_x509_crt_print(ca, GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCA Certificate: %.*s\n", tmp.size,
- tmp.data);
+ printf("\tCA Certificate: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
if (debug)
printf("\tVerifying...");
- ret = gnutls_x509_crl_verify(crl, &ca, 1, crl_list[i].verify_flags,
- &verify_status);
+ ret =
+ gnutls_x509_crl_verify(crl, &ca, 1,
+ crl_list[i].verify_flags,
+ &verify_status);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_list_verify[%d]: %s\n",
- (int) i, gnutls_strerror(ret));
+ (int)i, gnutls_strerror(ret));
exit(1);
}
@@ -329,8 +317,7 @@ void doit(void)
[i].
expected_verify_result,
GNUTLS_CRT_X509,
- &out2,
- 0);
+ &out2, 0);
fail("chain[%s]:\nverify_status: %d: %s\nexpected: %d: %s\n", crl_list[i].name, verify_status, out1.data, crl_list[i].expected_verify_result, out2.data);
gnutls_free(out1.data);
gnutls_free(out2.data);
@@ -342,25 +329,27 @@ void doit(void)
gnutls_x509_trust_list_init(&tl, 0);
- ret =
- gnutls_x509_trust_list_add_cas(tl, &ca, 1, 0);
+ ret = gnutls_x509_trust_list_add_cas(tl, &ca, 1, 0);
if (ret != 1) {
fail("gnutls_x509_trust_list_add_trust_mem\n");
exit(1);
}
/* make sure that the two functions don't diverge */
- ret = gnutls_x509_trust_list_add_crls(tl, &crl, 1, GNUTLS_TL_VERIFY_CRL, crl_list[i].verify_flags);
+ ret =
+ gnutls_x509_trust_list_add_crls(tl, &crl, 1,
+ GNUTLS_TL_VERIFY_CRL,
+ crl_list[i].verify_flags);
if (crl_list[i].expected_verify_result == 0 && ret < 0) {
fprintf(stderr,
"gnutls_x509_trust_list_add_crls[%d]: %s\n",
- (int) i, gnutls_strerror(ret));
+ (int)i, gnutls_strerror(ret));
exit(1);
}
if (crl_list[i].expected_verify_result != 0 && ret > 0) {
fprintf(stderr,
"gnutls_x509_trust_list_add_crls[%d]: succeeded when it shouldn't\n",
- (int) i);
+ (int)i);
exit(1);
}
diff --git a/tests/crq-basic.c b/tests/crq-basic.c
index 397129d560..ff8c3ef49b 100644
--- a/tests/crq-basic.c
+++ b/tests/crq-basic.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,71 +33,67 @@
#include "utils.h"
static const char csr1[] =
-"-----BEGIN CERTIFICATE REQUEST-----\n"
-"MIICrDCCAZQCAQAwZzELMAkGA1UEBhMCTk4xMTAvBgNVBAoMKEVkZWwgQ3VybCBB\n"
-"cmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxJTAjBgNVBAMMHE5vdGhlcm4g\n"
-"Tm93aGVyZSBUcnVzdCBBbmNob3IwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
-"AoIBAQDBqQrvdgZ9/ng68Q5AbcJbro+Nf/DViZ5CKvAXlNkuZ8ctARyVo7GmhtQS\n"
-"PEc6cOZ7HxEG03Ou38okGQPkYgrrZ9Tc750t4IJ3/iowWvtX5bhPNlJML1etEmqU\n"
-"PuRIp62lwDrQTgCZiI+9SnC+O1tr/15vKW0Mp1VK4kPnSQ+ZVFlogTTYqfvIDRRa\n"
-"QMtwHvU7wEI5BvljrdkpFFOvQhAdGJW2FYrYQdg3MQqXWhsQkKwd/25xM2t+iBgg\n"
-"7b41/+dpSAXAeC4ERvTCjU1wbkL6k+vOEjvR9c4/KVyMvVmD5KHBPI4+OFXzmRiw\n"
-"3/Z0yY4o9DgNRSDW28BzouaMbpifAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEA\n"
-"eFMy55kFke/e9mrGloRUh1o8dxmzSiVwVCw5DTZQzTFNAMSOZXIId8k2IeHSUd84\n"
-"ZyJ1UNyJn2EFcwgaYaMtvZ8xMWR2W0C7lBvOOcjvWmiGze9F2Z5XMQzL8cjkK4jW\n"
-"RKIq9b0W6TC8lLO5F2eJpW6BoTQ8cBCDiVIDlCm7xZxPRjHowuyM0Tpewq2PltC1\n"
-"p8DbQipZWl5LPaHBSZSmIuUgOBU9porH/Vn0oWXxYfts59103VJY5YKkdz0PiqqA\n"
-"5kWYCMFDZyL+nZ2aIol4r8nXkN9MuPOU12aHqPGcDlaGS2i5zfm2Ywsg110k+NCk\n"
-"AmqhjnrQjvJhif3rGO4+qw==\n"
-"-----END CERTIFICATE REQUEST-----\n";
-
-static const char csr2[] =
-"-----BEGIN NEW CERTIFICATE REQUEST-----\n"
-"MIICrjCCAZYCAQAwJDEiMCAGA1UEAxMZZGhjcC0yLTEyNy5icnEucmVkaGF0LmNv\n"
-"bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANiEAXIHON8p4YpVRH+X\n"
-"OM546stpyzL5xKdxbRUlfK0pWoqm3iqenRUf43eb9W8RDTx6UhuY21RFETzlYT4r\n"
-"+yVXOlvm8K5FLepNcjbqDJb9hngFm2q8u+OM3GKBiyeH43lUMC6/YksqPeEzsmKD\n"
-"UlD7rkm9CK8GRyXEsCruFaQ0VA8XB6XK9Av/jfOrGT/gTdmNGKu/fZmoJsjBJh+g\n"
-"Yobsi60YyWeuXw2s5zVga73cK1v0JG2ltjZy0M7qSO+CCJa24huO8uvJ4GPOfi/Q\n"
-"MPZbsHaZAqrHLQQMfxXJ73gXq7FLIMnCcstWfiagE5QlFZUGj9AnicgiCpMTZMIq\n"
-"miECAwEAAaBFMBMGCSqGSIb3DQEJBzEGEwQxMjM0MC4GCSqGSIb3DQEJDjEhMB8w\n"
-"DAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB6AAMA0GCSqGSIb3DQEBCwUAA4IB\n"
-"AQAqYOqsS3xnfEzLIis3krcjzHGykXxfvnyREDijBIqyXF10lSrmb2byvoIfOuoc\n"
-"pSmdT8MaIUTmKnZI4+htEPYcsAMwF2cXL1D2kvJhE0EKHbmv1E0QbJWmbnVz99bs\n"
-"GIcFN1die0SYHLgf64bOxKOyq5V8hAaE/lS2yLT7Tf/6+nweYOuE9ONH7KD7zpQo\n"
-"LyhsjhH0px75Ftej+yQWEElfokZrNu7iHuwcue3efySlMfpT9G/p4MhQQjFQySkK\n"
-"ev17H0d3KBdtcqWjxaS3jDAzmuz6SZwdUxSDkWuqchyAozeBpI+SbIPOgfKHsYc+\n"
-"yRKga0201rRJi4NKvt8iqj5r\n"
-"-----END NEW CERTIFICATE REQUEST-----\n";
-
-static struct
-{
- const char *name;
- const char *crq;
- unsigned version;
- unsigned sign_algo;
- const char *sign_oid;
- unsigned pk_algo;
- const char *pk_oid;
-} crq_list[] =
-{
- { .name = "crl-1",
- .crq = csr1,
- .sign_algo = GNUTLS_SIGN_RSA_SHA256,
- .sign_oid = "1.2.840.113549.1.1.11",
- .pk_algo = GNUTLS_PK_RSA,
- .pk_oid = "1.2.840.113549.1.1.1",
- .version = 1,
- },
- { .name = "crl-2",
- .crq = csr2,
- .sign_algo = GNUTLS_SIGN_RSA_SHA256,
- .sign_oid = "1.2.840.113549.1.1.11",
- .pk_algo = GNUTLS_PK_RSA,
- .pk_oid = "1.2.840.113549.1.1.1",
- .version = 1,
- },
- { NULL, NULL, 0, 0}
+ "-----BEGIN CERTIFICATE REQUEST-----\n"
+ "MIICrDCCAZQCAQAwZzELMAkGA1UEBhMCTk4xMTAvBgNVBAoMKEVkZWwgQ3VybCBB\n"
+ "cmN0aWMgSWxsdWRpdW0gUmVzZWFyY2ggQ2xvdWQxJTAjBgNVBAMMHE5vdGhlcm4g\n"
+ "Tm93aGVyZSBUcnVzdCBBbmNob3IwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
+ "AoIBAQDBqQrvdgZ9/ng68Q5AbcJbro+Nf/DViZ5CKvAXlNkuZ8ctARyVo7GmhtQS\n"
+ "PEc6cOZ7HxEG03Ou38okGQPkYgrrZ9Tc750t4IJ3/iowWvtX5bhPNlJML1etEmqU\n"
+ "PuRIp62lwDrQTgCZiI+9SnC+O1tr/15vKW0Mp1VK4kPnSQ+ZVFlogTTYqfvIDRRa\n"
+ "QMtwHvU7wEI5BvljrdkpFFOvQhAdGJW2FYrYQdg3MQqXWhsQkKwd/25xM2t+iBgg\n"
+ "7b41/+dpSAXAeC4ERvTCjU1wbkL6k+vOEjvR9c4/KVyMvVmD5KHBPI4+OFXzmRiw\n"
+ "3/Z0yY4o9DgNRSDW28BzouaMbpifAgMBAAGgADANBgkqhkiG9w0BAQsFAAOCAQEA\n"
+ "eFMy55kFke/e9mrGloRUh1o8dxmzSiVwVCw5DTZQzTFNAMSOZXIId8k2IeHSUd84\n"
+ "ZyJ1UNyJn2EFcwgaYaMtvZ8xMWR2W0C7lBvOOcjvWmiGze9F2Z5XMQzL8cjkK4jW\n"
+ "RKIq9b0W6TC8lLO5F2eJpW6BoTQ8cBCDiVIDlCm7xZxPRjHowuyM0Tpewq2PltC1\n"
+ "p8DbQipZWl5LPaHBSZSmIuUgOBU9porH/Vn0oWXxYfts59103VJY5YKkdz0PiqqA\n"
+ "5kWYCMFDZyL+nZ2aIol4r8nXkN9MuPOU12aHqPGcDlaGS2i5zfm2Ywsg110k+NCk\n"
+ "AmqhjnrQjvJhif3rGO4+qw==\n" "-----END CERTIFICATE REQUEST-----\n";
+
+static const char csr2[] =
+ "-----BEGIN NEW CERTIFICATE REQUEST-----\n"
+ "MIICrjCCAZYCAQAwJDEiMCAGA1UEAxMZZGhjcC0yLTEyNy5icnEucmVkaGF0LmNv\n"
+ "bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANiEAXIHON8p4YpVRH+X\n"
+ "OM546stpyzL5xKdxbRUlfK0pWoqm3iqenRUf43eb9W8RDTx6UhuY21RFETzlYT4r\n"
+ "+yVXOlvm8K5FLepNcjbqDJb9hngFm2q8u+OM3GKBiyeH43lUMC6/YksqPeEzsmKD\n"
+ "UlD7rkm9CK8GRyXEsCruFaQ0VA8XB6XK9Av/jfOrGT/gTdmNGKu/fZmoJsjBJh+g\n"
+ "Yobsi60YyWeuXw2s5zVga73cK1v0JG2ltjZy0M7qSO+CCJa24huO8uvJ4GPOfi/Q\n"
+ "MPZbsHaZAqrHLQQMfxXJ73gXq7FLIMnCcstWfiagE5QlFZUGj9AnicgiCpMTZMIq\n"
+ "miECAwEAAaBFMBMGCSqGSIb3DQEJBzEGEwQxMjM0MC4GCSqGSIb3DQEJDjEhMB8w\n"
+ "DAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB6AAMA0GCSqGSIb3DQEBCwUAA4IB\n"
+ "AQAqYOqsS3xnfEzLIis3krcjzHGykXxfvnyREDijBIqyXF10lSrmb2byvoIfOuoc\n"
+ "pSmdT8MaIUTmKnZI4+htEPYcsAMwF2cXL1D2kvJhE0EKHbmv1E0QbJWmbnVz99bs\n"
+ "GIcFN1die0SYHLgf64bOxKOyq5V8hAaE/lS2yLT7Tf/6+nweYOuE9ONH7KD7zpQo\n"
+ "LyhsjhH0px75Ftej+yQWEElfokZrNu7iHuwcue3efySlMfpT9G/p4MhQQjFQySkK\n"
+ "ev17H0d3KBdtcqWjxaS3jDAzmuz6SZwdUxSDkWuqchyAozeBpI+SbIPOgfKHsYc+\n"
+ "yRKga0201rRJi4NKvt8iqj5r\n" "-----END NEW CERTIFICATE REQUEST-----\n";
+
+static struct {
+ const char *name;
+ const char *crq;
+ unsigned version;
+ unsigned sign_algo;
+ const char *sign_oid;
+ unsigned pk_algo;
+ const char *pk_oid;
+} crq_list[] = {
+ {.name = "crl-1",
+ .crq = csr1,
+ .sign_algo = GNUTLS_SIGN_RSA_SHA256,
+ .sign_oid = "1.2.840.113549.1.1.11",
+ .pk_algo = GNUTLS_PK_RSA,
+ .pk_oid = "1.2.840.113549.1.1.1",
+ .version = 1,
+ },
+ {.name = "crl-2",
+ .crq = csr2,
+ .sign_algo = GNUTLS_SIGN_RSA_SHA256,
+ .sign_oid = "1.2.840.113549.1.1.11",
+ .pk_algo = GNUTLS_PK_RSA,
+ .pk_oid = "1.2.840.113549.1.1.1",
+ .version = 1,
+ },
+ {NULL, NULL, 0, 0}
};
static void tls_log_func(int level, const char *str)
@@ -129,7 +125,7 @@ void doit(void)
if (debug)
printf("Chain '%s' (%d)...\n", crq_list[i].name,
- (int) i);
+ (int)i);
if (debug > 2)
printf("\tAdding CRL...");
@@ -138,33 +134,26 @@ void doit(void)
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crq_init[%d]: %s\n",
- (int) i,
- gnutls_strerror(ret));
+ (int)i, gnutls_strerror(ret));
exit(1);
}
- tmp.data = (unsigned char*)crq_list[i].crq;
+ tmp.data = (unsigned char *)crq_list[i].crq;
tmp.size = strlen(crq_list[i].crq);
- ret =
- gnutls_x509_crq_import(crq, &tmp,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crq_import(crq, &tmp, GNUTLS_X509_FMT_PEM);
if (debug > 2)
- printf("done\n");
+ printf("done\n");
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crq_import[%s]: %s\n",
- crq_list[i].name,
- gnutls_strerror(ret));
+ crq_list[i].name, gnutls_strerror(ret));
exit(1);
}
- gnutls_x509_crq_print(crq,
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ gnutls_x509_crq_print(crq, GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCRL: %.*s\n",
- tmp.size, tmp.data);
+ printf("\tCRL: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
ret = gnutls_x509_crq_get_signature_algorithm(crq);
@@ -188,25 +177,29 @@ void doit(void)
/* PK */
ret = gnutls_x509_crq_get_pk_algorithm(crq, NULL);
if (ret != (int)crq_list[i].pk_algo) {
- fail("%s: error extracting PK algorithm: %d/%s\n", crq_list[i].name, ret, gnutls_strerror(ret));
+ fail("%s: error extracting PK algorithm: %d/%s\n",
+ crq_list[i].name, ret, gnutls_strerror(ret));
exit(1);
}
oid_size = sizeof(oid);
ret = gnutls_x509_crq_get_pk_oid(crq, oid, &oid_size);
if (ret < 0) {
- fail("%s: error extracting PK algorithm OID: %s\n", crq_list[i].name, gnutls_strerror(ret));
+ fail("%s: error extracting PK algorithm OID: %s\n",
+ crq_list[i].name, gnutls_strerror(ret));
exit(1);
}
if (strcmp(oid, crq_list[i].pk_oid) != 0) {
- fail("%s: error on the extracted PK algorithm: %s\n", crq_list[i].name, oid);
+ fail("%s: error on the extracted PK algorithm: %s\n",
+ crq_list[i].name, oid);
exit(1);
}
ret = gnutls_x509_crq_get_version(crq);
if (ret != (int)crq_list[i].version) {
- fail("%s: error on the extracted CRQ version: %d\n", crq_list[i].name, ret);
+ fail("%s: error on the extracted CRQ version: %d\n",
+ crq_list[i].name, ret);
exit(1);
}
diff --git a/tests/crq_apis.c b/tests/crq_apis.c
index a300b97e9a..f41eacd8c4 100644
--- a/tests/crq_apis.c
+++ b/tests/crq_apis.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -38,41 +38,40 @@ static void tls_log_func(int level, const char *str)
}
static unsigned char saved_crq_pem[] =
- "-----BEGIN NEW CERTIFICATE REQUEST-----\n"
- "MIICSDCCAbECAQAwKzEOMAwGA1UEAxMFbmlrb3MxGTAXBgNVBAoTEG5vbmUgdG8s\n"
- "IG1lbnRpb24wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALtmQ/Xyxde2jMzF\n"
- "3/WIO7HJS2oOoa0gUEAIgKFPXKPQ+GzP5jz37AR2ExeLZIkiW8DdU3w77XwEu4C5\n"
- "KL6Om8aOoKUSy/VXHqLnu7czSZ/ju0quak1o/8kR4jKNzj2AC41179gAgY8oBAOg\n"
- "Io1hBAf6tjd9IQdJ0glhaZiQo1ipAgMBAAGggdwwEgYJKoZIhvcNAQkHMQUTA2Zv\n"
- "bzCBxQYJKoZIhvcNAQkOMYG3MIG0MA8GA1UdEwEB/wQFMAMCAQAwDQYDVR0PAQH/\n"
- "BAMDAQAwIwYDVR0RBBwwGoIDYXBhggNmb2+CDnhuLS1reGF3aGsuY29tMB0GA1Ud\n"
- "JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjALBgQqAwQFBAPK/v8wFAYILQOCiPS5\n"
- "FwUBAf8EBcr+//r+MCsGA1UdEAQkMCKADzIwMTkwNzA5MDQyODI2WoEPMjAxOTA3\n"
- "MDkwNzE1MDZaMA0GCSqGSIb3DQEBCwUAA4GBAD5WboLhAYvbStlK1UwvB4b2vmJP\n"
- "mfl7S/VmaeBFX8w0lpZTCTCRuB0WJek6YPfXyRsUUJsjWElZeEE0N8V+eQ3oz4um\n"
- "N2QCk4Zrc5FRyCkKUe+qaqQhB1ho01ZQDMgkj2B10tubhdrKf17QCzgKEp+5VR46\n"
- "Bme4HDJqbHlH+O0y\n"
- "-----END NEW CERTIFICATE REQUEST-----\n";
-
-const gnutls_datum_t saved_crq = { saved_crq_pem, sizeof(saved_crq_pem)-1 };
+ "-----BEGIN NEW CERTIFICATE REQUEST-----\n"
+ "MIICSDCCAbECAQAwKzEOMAwGA1UEAxMFbmlrb3MxGTAXBgNVBAoTEG5vbmUgdG8s\n"
+ "IG1lbnRpb24wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALtmQ/Xyxde2jMzF\n"
+ "3/WIO7HJS2oOoa0gUEAIgKFPXKPQ+GzP5jz37AR2ExeLZIkiW8DdU3w77XwEu4C5\n"
+ "KL6Om8aOoKUSy/VXHqLnu7czSZ/ju0quak1o/8kR4jKNzj2AC41179gAgY8oBAOg\n"
+ "Io1hBAf6tjd9IQdJ0glhaZiQo1ipAgMBAAGggdwwEgYJKoZIhvcNAQkHMQUTA2Zv\n"
+ "bzCBxQYJKoZIhvcNAQkOMYG3MIG0MA8GA1UdEwEB/wQFMAMCAQAwDQYDVR0PAQH/\n"
+ "BAMDAQAwIwYDVR0RBBwwGoIDYXBhggNmb2+CDnhuLS1reGF3aGsuY29tMB0GA1Ud\n"
+ "JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjALBgQqAwQFBAPK/v8wFAYILQOCiPS5\n"
+ "FwUBAf8EBcr+//r+MCsGA1UdEAQkMCKADzIwMTkwNzA5MDQyODI2WoEPMjAxOTA3\n"
+ "MDkwNzE1MDZaMA0GCSqGSIb3DQEBCwUAA4GBAD5WboLhAYvbStlK1UwvB4b2vmJP\n"
+ "mfl7S/VmaeBFX8w0lpZTCTCRuB0WJek6YPfXyRsUUJsjWElZeEE0N8V+eQ3oz4um\n"
+ "N2QCk4Zrc5FRyCkKUe+qaqQhB1ho01ZQDMgkj2B10tubhdrKf17QCzgKEp+5VR46\n"
+ "Bme4HDJqbHlH+O0y\n" "-----END NEW CERTIFICATE REQUEST-----\n";
+
+const gnutls_datum_t saved_crq = { saved_crq_pem, sizeof(saved_crq_pem) - 1 };
static unsigned char key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIICXAIBAAKBgQC7ZkP18sXXtozMxd/1iDuxyUtqDqGtIFBACIChT1yj0Phsz+Y8\n"
- "9+wEdhMXi2SJIlvA3VN8O+18BLuAuSi+jpvGjqClEsv1Vx6i57u3M0mf47tKrmpN\n"
- "aP/JEeIyjc49gAuNde/YAIGPKAQDoCKNYQQH+rY3fSEHSdIJYWmYkKNYqQIDAQAB\n"
- "AoGADpmARG5CQxS+AesNkGmpauepiCz1JBF/JwnyiX6vEzUh0Ypd39SZztwrDxvF\n"
- "PJjQaKVljml1zkJpIDVsqvHdyVdse8M+Qn6hw4x2p5rogdvhhIL1mdWo7jWeVJTF\n"
- "RKB7zLdMPs3ySdtcIQaF9nUAQ2KJEvldkO3m/bRJFEp54k0CQQDYy+RlTmwRD6hy\n"
- "7UtMjR0H3CSZJeQ8svMCxHLmOluG9H1UKk55ZBYfRTsXniqUkJBZ5wuV1L+pR9EK\n"
- "ca89a+1VAkEA3UmBelwEv2u9cAU1QjKjmwju1JgXbrjEohK+3B5y0ESEXPAwNQT9\n"
- "TrDM1m9AyxYTWLxX93dI5QwNFJtmbtjeBQJARSCWXhsoaDRG8QZrCSjBxfzTCqZD\n"
- "ZXtl807ymCipgJm60LiAt0JLr4LiucAsMZz6+j+quQbSakbFCACB8SLV1QJBAKZQ\n"
- "YKf+EPNtnmta/rRKKvySsi3GQZZN+Dt3q0r094XgeTsAqrqujVNfPhTMeP4qEVBX\n"
- "/iVX2cmMTSh3w3z8MaECQEp0XJWDVKOwcTW6Ajp9SowtmiZ3YDYo1LF9igb4iaLv\n"
- "sWZGfbnU3ryjvkb6YuFjgtzbZDZHWQCo8/cOtOBmPdk=\n"
- "-----END RSA PRIVATE KEY-----\n";
-const gnutls_datum_t key = { key_pem, sizeof(key_pem)-1 };
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIICXAIBAAKBgQC7ZkP18sXXtozMxd/1iDuxyUtqDqGtIFBACIChT1yj0Phsz+Y8\n"
+ "9+wEdhMXi2SJIlvA3VN8O+18BLuAuSi+jpvGjqClEsv1Vx6i57u3M0mf47tKrmpN\n"
+ "aP/JEeIyjc49gAuNde/YAIGPKAQDoCKNYQQH+rY3fSEHSdIJYWmYkKNYqQIDAQAB\n"
+ "AoGADpmARG5CQxS+AesNkGmpauepiCz1JBF/JwnyiX6vEzUh0Ypd39SZztwrDxvF\n"
+ "PJjQaKVljml1zkJpIDVsqvHdyVdse8M+Qn6hw4x2p5rogdvhhIL1mdWo7jWeVJTF\n"
+ "RKB7zLdMPs3ySdtcIQaF9nUAQ2KJEvldkO3m/bRJFEp54k0CQQDYy+RlTmwRD6hy\n"
+ "7UtMjR0H3CSZJeQ8svMCxHLmOluG9H1UKk55ZBYfRTsXniqUkJBZ5wuV1L+pR9EK\n"
+ "ca89a+1VAkEA3UmBelwEv2u9cAU1QjKjmwju1JgXbrjEohK+3B5y0ESEXPAwNQT9\n"
+ "TrDM1m9AyxYTWLxX93dI5QwNFJtmbtjeBQJARSCWXhsoaDRG8QZrCSjBxfzTCqZD\n"
+ "ZXtl807ymCipgJm60LiAt0JLr4LiucAsMZz6+j+quQbSakbFCACB8SLV1QJBAKZQ\n"
+ "YKf+EPNtnmta/rRKKvySsi3GQZZN+Dt3q0r094XgeTsAqrqujVNfPhTMeP4qEVBX\n"
+ "/iVX2cmMTSh3w3z8MaECQEp0XJWDVKOwcTW6Ajp9SowtmiZ3YDYo1LF9igb4iaLv\n"
+ "sWZGfbnU3ryjvkb6YuFjgtzbZDZHWQCo8/cOtOBmPdk=\n"
+ "-----END RSA PRIVATE KEY-----\n";
+const gnutls_datum_t key = { key_pem, sizeof(key_pem) - 1 };
static time_t mytime(time_t * t)
{
@@ -138,9 +137,12 @@ static gnutls_x509_crq_t generate_crq(void)
fail("%d: gnutls_x509_crq_get_challenge_password %d: %s\n",
__LINE__, ret, gnutls_strerror(ret));
- ret = gnutls_x509_crq_set_dn(crq, "o = none to\\, mention,cn = nikos", &err);
+ ret =
+ gnutls_x509_crq_set_dn(crq, "o = none to\\, mention,cn = nikos",
+ &err);
if (ret < 0) {
- fail("gnutls_x509_crq_set_dn: %s, %s\n", gnutls_strerror(ret), err);
+ fail("gnutls_x509_crq_set_dn: %s, %s\n", gnutls_strerror(ret),
+ err);
}
ret = gnutls_x509_crq_set_challenge_password(crq, CPASS);
@@ -150,12 +152,13 @@ static gnutls_x509_crq_t generate_crq(void)
s = 0;
ret = gnutls_x509_crq_get_challenge_password(crq, NULL, &s);
if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER || s != 4)
- fail("%d: gnutls_x509_crq_get_challenge_password %d: %s (passlen: %d)\n", __LINE__, ret, gnutls_strerror(ret), (int) s);
+ fail("%d: gnutls_x509_crq_get_challenge_password %d: %s (passlen: %d)\n", __LINE__, ret, gnutls_strerror(ret), (int)s);
s = 10;
ret = gnutls_x509_crq_get_challenge_password(crq, smallbuf, &s);
if (ret != 0 || s != 3 || strcmp(smallbuf, "foo") != 0)
- fail("%d: gnutls_x509_crq_get_challenge_password3 %d/%d/%s\n", __LINE__, ret, (int) s, smallbuf);
+ fail("%d: gnutls_x509_crq_get_challenge_password3 %d/%d/%s\n",
+ __LINE__, ret, (int)s, smallbuf);
s = 0;
ret = gnutls_x509_crq_get_extension_info(crq, 0, NULL, &s, NULL);
@@ -168,12 +171,14 @@ static gnutls_x509_crq_t generate_crq(void)
fail("gnutls_x509_crq_get_extension_data\n");
ret = gnutls_x509_crq_set_subject_alt_name(crq, GNUTLS_SAN_DNSNAME,
- "foo", 3, GNUTLS_FSAN_APPEND);
+ "foo", 3,
+ GNUTLS_FSAN_APPEND);
if (ret != 0)
fail("gnutls_x509_crq_set_subject_alt_name\n");
ret = gnutls_x509_crq_set_subject_alt_name(crq, GNUTLS_SAN_DNSNAME,
- "bar", 3, GNUTLS_FSAN_APPEND);
+ "bar", 3,
+ GNUTLS_FSAN_APPEND);
if (ret != 0)
fail("gnutls_x509_crq_set_subject_alt_name\n");
@@ -183,18 +188,23 @@ static gnutls_x509_crq_t generate_crq(void)
fail("gnutls_x509_crq_set_subject_alt_name\n");
ret = gnutls_x509_crq_set_subject_alt_name(crq, GNUTLS_SAN_DNSNAME,
- "foo", 3, GNUTLS_FSAN_APPEND);
+ "foo", 3,
+ GNUTLS_FSAN_APPEND);
if (ret != 0)
fail("gnutls_x509_crq_set_subject_alt_name\n");
ret = gnutls_x509_crq_set_subject_alt_name(crq, GNUTLS_SAN_DNSNAME,
- "νίκο.com", strlen("νίκο.com"), GNUTLS_FSAN_APPEND);
+ "νίκο.com",
+ strlen("νίκο.com"),
+ GNUTLS_FSAN_APPEND);
#if defined(HAVE_LIBIDN2)
if (ret != 0)
- fail("gnutls_x509_crt_set_subject_alt_name: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_set_subject_alt_name: %s\n",
+ gnutls_strerror(ret));
#else
if (ret != GNUTLS_E_UNIMPLEMENTED_FEATURE)
- fail("gnutls_x509_crt_set_subject_alt_name: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_set_subject_alt_name: %s\n",
+ gnutls_strerror(ret));
#endif
s = 0;
@@ -205,8 +215,7 @@ static gnutls_x509_crq_t generate_crq(void)
s = 0;
ret =
gnutls_x509_crq_set_key_purpose_oid(crq,
- GNUTLS_KP_TLS_WWW_SERVER,
- 0);
+ GNUTLS_KP_TLS_WWW_SERVER, 0);
if (ret != 0)
fail("gnutls_x509_crq_set_key_purpose_oid %d\n", ret);
@@ -218,8 +227,7 @@ static gnutls_x509_crq_t generate_crq(void)
s = 0;
ret =
gnutls_x509_crq_set_key_purpose_oid(crq,
- GNUTLS_KP_TLS_WWW_CLIENT,
- 1);
+ GNUTLS_KP_TLS_WWW_CLIENT, 1);
if (ret != 0)
fail("gnutls_x509_crq_set_key_purpose_oid2 %d\n", ret);
@@ -228,13 +236,19 @@ static gnutls_x509_crq_t generate_crq(void)
#define EXT_DATA1 "\xCA\xFE\xFF"
#define EXT_DATA2 "\xCA\xFE\xFF\xFA\xFE"
/* test writing arbitrary extensions */
- ret = gnutls_x509_crq_set_extension_by_oid(crq, EXT_ID1, EXT_DATA1, sizeof(EXT_DATA1)-1, 0);
+ ret =
+ gnutls_x509_crq_set_extension_by_oid(crq, EXT_ID1, EXT_DATA1,
+ sizeof(EXT_DATA1) - 1, 0);
if (ret != 0)
- fail("gnutls_x509_crq_set_extension_by_oid %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crq_set_extension_by_oid %s\n",
+ gnutls_strerror(ret));
- ret = gnutls_x509_crq_set_extension_by_oid(crq, EXT_ID2, EXT_DATA2, sizeof(EXT_DATA2)-1, 1);
+ ret =
+ gnutls_x509_crq_set_extension_by_oid(crq, EXT_ID2, EXT_DATA2,
+ sizeof(EXT_DATA2) - 1, 1);
if (ret != 0)
- fail("gnutls_x509_crq_set_extension_by_oid %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crq_set_extension_by_oid %s\n",
+ gnutls_strerror(ret));
ret = gnutls_x509_crq_set_private_key_usage_period(crq, TIME1, TIME2);
if (ret != 0)
@@ -255,11 +269,14 @@ static gnutls_x509_crq_t generate_crq(void)
/* test reading the arb. extensions */
crit = -1;
- ret = gnutls_x509_crq_get_extension_by_oid2(crq, EXT_ID1, 0, &out, &crit);
+ ret =
+ gnutls_x509_crq_get_extension_by_oid2(crq, EXT_ID1, 0, &out, &crit);
if (ret < 0)
- fail("gnutls_x509_crq_get_extension_by_oid2: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crq_get_extension_by_oid2: %s\n",
+ gnutls_strerror(ret));
- if (out.size != sizeof(EXT_DATA1)-1 || memcmp(out.data, EXT_DATA1, out.size) != 0) {
+ if (out.size != sizeof(EXT_DATA1) - 1
+ || memcmp(out.data, EXT_DATA1, out.size) != 0) {
fail("ext1 doesn't match\n");
}
if (crit != 0) {
@@ -268,11 +285,14 @@ static gnutls_x509_crq_t generate_crq(void)
gnutls_free(out.data);
crit = -1;
- ret = gnutls_x509_crq_get_extension_by_oid2(crq, EXT_ID2, 0, &out, &crit);
+ ret =
+ gnutls_x509_crq_get_extension_by_oid2(crq, EXT_ID2, 0, &out, &crit);
if (ret < 0)
- fail("gnutls_x509_crq_get_extension_by_oid2: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crq_get_extension_by_oid2: %s\n",
+ gnutls_strerror(ret));
- if (out.size != sizeof(EXT_DATA2)-1 || memcmp(out.data, EXT_DATA2, out.size) != 0) {
+ if (out.size != sizeof(EXT_DATA2) - 1
+ || memcmp(out.data, EXT_DATA2, out.size) != 0) {
fail("ext2 doesn't match\n");
}
if (crit != 1) {
@@ -297,21 +317,24 @@ static void test_crq(gnutls_x509_crq_t crq)
ret = gnutls_x509_crq_get_dn2(crq, &out);
assert(ret == 0);
assert(out.size == 28);
- assert(memcmp(out.data, "CN=nikos,O=none to\\, mention", out.size)==0);
+ assert(memcmp(out.data, "CN=nikos,O=none to\\, mention", out.size) ==
+ 0);
gnutls_free(out.data);
ret = gnutls_x509_crq_get_dn3(crq, &out, GNUTLS_X509_DN_FLAG_COMPAT);
assert(ret == 0);
assert(out.size == 28);
- assert(memcmp(out.data, "CN=nikos,O=none to\\, mention", out.size)==0);
+ assert(memcmp(out.data, "CN=nikos,O=none to\\, mention", out.size) ==
+ 0);
gnutls_free(out.data);
ret = gnutls_x509_crq_get_dn3(crq, &out, 0);
assert(ret == 0);
assert(out.size == 28);
- assert(memcmp(out.data, "O=none to\\, mention,CN=nikos", out.size)==0);
+ assert(memcmp(out.data, "O=none to\\, mention,CN=nikos", out.size) ==
+ 0);
gnutls_free(out.data);
@@ -321,7 +344,8 @@ static void test_crq(gnutls_x509_crq_t crq)
assert(pathlen == 0);
s = sizeof(buf);
- ret = gnutls_x509_crq_get_subject_alt_name(crq, 0, buf, &s, &type, &crit);
+ ret =
+ gnutls_x509_crq_get_subject_alt_name(crq, 0, buf, &s, &type, &crit);
assert(ret >= 0);
assert(s == 3);
assert(memcmp(buf, "apa", s) == 0);
@@ -329,16 +353,19 @@ static void test_crq(gnutls_x509_crq_t crq)
assert(crit == 0);
s = sizeof(buf);
- ret = gnutls_x509_crq_get_subject_alt_name(crq, 1, buf, &s, &type, &crit);
+ ret =
+ gnutls_x509_crq_get_subject_alt_name(crq, 1, buf, &s, &type, &crit);
assert(ret >= 0);
assert(s == 3);
assert(memcmp(buf, "foo", s) == 0);
assert(type == GNUTLS_SAN_DNSNAME);
assert(crit == 0);
- ret = gnutls_x509_crq_get_private_key_usage_period(crq, &t1, &t2, &crit);
+ ret =
+ gnutls_x509_crq_get_private_key_usage_period(crq, &t1, &t2, &crit);
if (ret < 0)
- fail("gnutls_x509_crq_get_private_key_usage_period: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crq_get_private_key_usage_period: %s\n",
+ gnutls_strerror(ret));
assert(t1 == TIME1);
assert(t2 == TIME2);
assert(crit == 0);
@@ -354,8 +381,8 @@ static void test_crq(gnutls_x509_crq_t crq)
s = sizeof(buf);
ret = gnutls_x509_crq_get_attribute_data(crq, 1, buf, &s);
assert(ret >= 0);
- assert(s == sizeof(CPASS)-1+2);
- assert(memcmp(buf, "\x13\x03"CPASS, s) == 0);
+ assert(s == sizeof(CPASS) - 1 + 2);
+ assert(memcmp(buf, "\x13\x03" CPASS, s) == 0);
}
static void run_set_extensions(gnutls_x509_crq_t crq)
@@ -373,7 +400,6 @@ static void run_set_extensions(gnutls_x509_crq_t crq)
if (debug)
gnutls_global_set_log_level(4711);
-
ret = gnutls_x509_crt_init(&crt);
if (ret != 0)
fail("gnutls_x509_crt_init\n");
@@ -382,9 +408,12 @@ static void run_set_extensions(gnutls_x509_crq_t crq)
if (ret != 0)
fail("gnutls_x509_crt_set_crq: %s\n", gnutls_strerror(ret));
- ret = gnutls_x509_crt_set_issuer_dn(crt, "o = big\\, and one, cn = my CA", &err);
+ ret =
+ gnutls_x509_crt_set_issuer_dn(crt, "o = big\\, and one, cn = my CA",
+ &err);
if (ret < 0) {
- fail("gnutls_x509_crt_set_issuer_dn: %s, %s\n", gnutls_strerror(ret), err);
+ fail("gnutls_x509_crt_set_issuer_dn: %s, %s\n",
+ gnutls_strerror(ret), err);
}
ret = gnutls_x509_crt_set_version(crt, 3);
@@ -404,10 +433,13 @@ static void run_set_extensions(gnutls_x509_crq_t crq)
ret = gnutls_x509_crt_get_raw_issuer_dn(crt, &out);
if (ret < 0 || out.size == 0)
- fail("gnutls_x509_crt_get_raw_issuer_dn: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_get_raw_issuer_dn: %s\n",
+ gnutls_strerror(ret));
if (out.size != 41 ||
- memcmp(out.data, "\x30\x27\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6d\x79\x20\x43\x41\x31\x15\x30\x13\x06\x03\x55\x04\x0a\x13\x0c\x62\x69\x67\x2c\x20\x61\x6e\x64\x20\x6f\x6e\x65", 41) != 0) {
+ memcmp(out.data,
+ "\x30\x27\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6d\x79\x20\x43\x41\x31\x15\x30\x13\x06\x03\x55\x04\x0a\x13\x0c\x62\x69\x67\x2c\x20\x61\x6e\x64\x20\x6f\x6e\x65",
+ 41) != 0) {
hexprint(out.data, out.size);
fail("issuer DN comparison failed\n");
}
@@ -418,7 +450,9 @@ static void run_set_extensions(gnutls_x509_crq_t crq)
fail("gnutls_x509_crt_get_raw_dn: %s\n", gnutls_strerror(ret));
if (out.size != 45 ||
- memcmp(out.data, "\x30\x2b\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6e\x69\x6b\x6f\x73\x31\x19\x30\x17\x06\x03\x55\x04\x0a\x13\x10\x6e\x6f\x6e\x65\x20\x74\x6f\x2c\x20\x6d\x65\x6e\x74\x69\x6f\x6e", 45) != 0) {
+ memcmp(out.data,
+ "\x30\x2b\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6e\x69\x6b\x6f\x73\x31\x19\x30\x17\x06\x03\x55\x04\x0a\x13\x10\x6e\x6f\x6e\x65\x20\x74\x6f\x2c\x20\x6d\x65\x6e\x74\x69\x6f\x6e",
+ 45) != 0) {
fail("DN comparison failed\n");
}
gnutls_free(out.data);
@@ -446,7 +480,6 @@ static void run_set_extension_by_oid(gnutls_x509_crq_t crq)
if (debug)
gnutls_global_set_log_level(4711);
-
ret = gnutls_x509_crt_init(&crt);
if (ret != 0)
fail("gnutls_x509_crt_init\n");
@@ -455,16 +488,22 @@ static void run_set_extension_by_oid(gnutls_x509_crq_t crq)
if (ret != 0)
fail("gnutls_x509_crt_set_crq: %s\n", gnutls_strerror(ret));
- ret = gnutls_x509_crt_set_issuer_dn(crt, "o = big\\, and one,cn = my CA", &err);
+ ret =
+ gnutls_x509_crt_set_issuer_dn(crt, "o = big\\, and one,cn = my CA",
+ &err);
if (ret < 0) {
- fail("gnutls_x509_crt_set_issuer_dn: %s, %s\n", gnutls_strerror(ret), err);
+ fail("gnutls_x509_crt_set_issuer_dn: %s, %s\n",
+ gnutls_strerror(ret), err);
}
ret = gnutls_x509_crt_set_version(crt, 3);
if (ret != 0)
fail("gnutls_x509_crt_set_version\n");
- ret = gnutls_x509_crt_set_crq_extension_by_oid(crt, crq, GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE, 0);
+ ret =
+ gnutls_x509_crt_set_crq_extension_by_oid(crt, crq,
+ GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE,
+ 0);
if (ret != 0)
fail("gnutls_x509_crt_set_crq_extension_by_oid\n");
@@ -480,13 +519,16 @@ static void run_set_extension_by_oid(gnutls_x509_crq_t crq)
if (ret != 0)
fail("gnutls_x509_crt_get_extension_data2\n");
- for (i=0;;i++) {
+ for (i = 0;; i++) {
oid_size = sizeof(oid);
- ret = gnutls_x509_crq_get_extension_info(crq, i, oid, &oid_size, NULL);
+ ret =
+ gnutls_x509_crq_get_extension_info(crq, i, oid, &oid_size,
+ NULL);
if (ret < 0)
fail("loop: ext not found: %s\n", gnutls_strerror(ret));
if (strcmp(oid, GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE) == 0) {
- ret = gnutls_x509_crq_get_extension_data2(crq, 3, &out2);
+ ret =
+ gnutls_x509_crq_get_extension_data2(crq, 3, &out2);
if (ret != 0)
fail("gnutls_x509_crt_get_extension_data2\n");
break;
@@ -506,13 +548,14 @@ static void run_set_extension_by_oid(gnutls_x509_crq_t crq)
if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
fail("gnutls_x509_crt_get_extension_info\n");
-
ret = gnutls_x509_crt_get_raw_dn(crt, &out);
if (ret < 0 || out.size == 0)
fail("gnutls_x509_crt_get_raw_dn: %s\n", gnutls_strerror(ret));
if (out.size != 45 ||
- memcmp(out.data, "\x30\x2b\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6e\x69\x6b\x6f\x73\x31\x19\x30\x17\x06\x03\x55\x04\x0a\x13\x10\x6e\x6f\x6e\x65\x20\x74\x6f\x2c\x20\x6d\x65\x6e\x74\x69\x6f\x6e", 45) != 0) {
+ memcmp(out.data,
+ "\x30\x2b\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6e\x69\x6b\x6f\x73\x31\x19\x30\x17\x06\x03\x55\x04\x0a\x13\x10\x6e\x6f\x6e\x65\x20\x74\x6f\x2c\x20\x6d\x65\x6e\x74\x69\x6f\x6e",
+ 45) != 0) {
fail("DN comparison failed\n");
}
gnutls_free(out.data);
@@ -540,7 +583,7 @@ void doit(void)
#if defined(HAVE_LIBIDN2)
assert(out.size == saved_crq.size);
- assert(memcmp(out.data, saved_crq.data, out.size)==0);
+ assert(memcmp(out.data, saved_crq.data, out.size) == 0);
#endif
gnutls_free(out.data);
diff --git a/tests/crq_key_id.c b/tests/crq_key_id.c
index 6eb79f31a5..5c1bed5084 100644
--- a/tests/crq_key_id.c
+++ b/tests/crq_key_id.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -61,32 +61,32 @@ void doit(void)
if (debug)
gnutls_global_set_log_level(4711);
- for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_DSA;
- algorithm++) {
+ for (algorithm = GNUTLS_PK_RSA; algorithm <= GNUTLS_PK_DSA; algorithm++) {
ret = gnutls_x509_crq_init(&crq);
if (ret < 0)
- fail("gnutls_x509_crq_init: %d: %s\n", ret, gnutls_strerror(ret));
+ fail("gnutls_x509_crq_init: %d: %s\n", ret,
+ gnutls_strerror(ret));
ret = gnutls_x509_privkey_init(&pkey);
if (ret < 0) {
- fail("gnutls_x509_privkey_init: %d: %s\n", ret, gnutls_strerror(ret));
+ fail("gnutls_x509_privkey_init: %d: %s\n", ret,
+ gnutls_strerror(ret));
}
ret = gnutls_privkey_init(&abs_pkey);
if (ret < 0) {
- fail("gnutls_privkey_init: %d: %s\n", ret, gnutls_strerror(ret));
+ fail("gnutls_privkey_init: %d: %s\n", ret,
+ gnutls_strerror(ret));
}
- ret =
- gnutls_x509_privkey_generate(pkey, algorithm, 2048, 0);
+ ret = gnutls_x509_privkey_generate(pkey, algorithm, 2048, 0);
if (ret < 0) {
fail("gnutls_x509_privkey_generate (%s): %d: %s\n",
gnutls_pk_algorithm_get_name(algorithm),
ret, gnutls_strerror(ret));
} else if (debug) {
success("Key[%s] generation ok: %d\n",
- gnutls_pk_algorithm_get_name(algorithm),
- ret);
+ gnutls_pk_algorithm_get_name(algorithm), ret);
}
pkey_key_id_len = 0;
@@ -96,8 +96,7 @@ void doit(void)
fail("gnutls_x509_privkey_get_key_id incorrectly returns %d: %s\n", ret, gnutls_strerror(ret));
}
- pkey_key_id =
- malloc(sizeof(unsigned char) * pkey_key_id_len);
+ pkey_key_id = malloc(sizeof(unsigned char) * pkey_key_id_len);
ret =
gnutls_x509_privkey_get_key_id(pkey, 0, pkey_key_id,
&pkey_key_id_len);
@@ -107,12 +106,14 @@ void doit(void)
ret = gnutls_x509_crq_set_version(crq, 1);
if (ret < 0) {
- fail("gnutls_x509_crq_set_version: %d: %s\n", ret, gnutls_strerror(ret));
+ fail("gnutls_x509_crq_set_version: %d: %s\n", ret,
+ gnutls_strerror(ret));
}
ret = gnutls_x509_crq_set_key(crq, pkey);
if (ret < 0) {
- fail("gnutls_x509_crq_set_key: %d: %s\n", ret, gnutls_strerror(ret));
+ fail("gnutls_x509_crq_set_key: %d: %s\n", ret,
+ gnutls_strerror(ret));
}
ret =
@@ -120,60 +121,59 @@ void doit(void)
GNUTLS_OID_X520_COMMON_NAME,
0, "CN-Test", 7);
if (ret < 0) {
- fail("gnutls_x509_crq_set_dn_by_oid: %d: %s\n", ret, gnutls_strerror(ret));
+ fail("gnutls_x509_crq_set_dn_by_oid: %d: %s\n", ret,
+ gnutls_strerror(ret));
}
ret = gnutls_privkey_import_x509(abs_pkey, pkey, 0);
if (ret < 0) {
- fail("gnutls_privkey_import_x509: %d: %s\n", ret, gnutls_strerror(ret));
+ fail("gnutls_privkey_import_x509: %d: %s\n", ret,
+ gnutls_strerror(ret));
}
ret =
gnutls_x509_crq_privkey_sign(crq, abs_pkey,
GNUTLS_DIG_SHA256, 0);
if (ret < 0) {
- fail("gnutls_x509_crq_sign: %d: %s\n", ret, gnutls_strerror(ret));
+ fail("gnutls_x509_crq_sign: %d: %s\n", ret,
+ gnutls_strerror(ret));
}
ret = gnutls_x509_crq_verify(crq, 0);
if (ret < 0) {
- fail("gnutls_x509_crq_verify: %d: %s\n", ret, gnutls_strerror(ret));
+ fail("gnutls_x509_crq_verify: %d: %s\n", ret,
+ gnutls_strerror(ret));
}
crq_key_id_len = 0;
ret =
gnutls_x509_crq_get_key_id(crq, 0, crq_key_id,
- &crq_key_id_len);
+ &crq_key_id_len);
if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) {
fail("gnutls_x509_crq_get_key_id incorrectly returns %d: %s\n", ret, gnutls_strerror(ret));
}
- crq_key_id =
- malloc(sizeof(unsigned char) * crq_key_id_len);
+ crq_key_id = malloc(sizeof(unsigned char) * crq_key_id_len);
ret =
gnutls_x509_crq_get_key_id(crq, 0, crq_key_id,
- &crq_key_id_len);
+ &crq_key_id_len);
if (ret != GNUTLS_E_SUCCESS) {
fail("gnutls_x509_crq_get_key_id incorrectly returns %d: %s\n", ret, gnutls_strerror(ret));
}
if (crq_key_id_len == pkey_key_id_len) {
- ret =
- memcmp(crq_key_id, pkey_key_id,
- crq_key_id_len);
+ ret = memcmp(crq_key_id, pkey_key_id, crq_key_id_len);
if (ret == 0) {
if (debug)
- success
- ("Key ids are identical. OK.\n");
+ success("Key ids are identical. OK.\n");
} else {
- fail("Key ids differ incorrectly: %d\n",
- ret);
+ fail("Key ids differ incorrectly: %d\n", ret);
}
} else {
- fail("Key_id lengths differ incorrectly: %d - %d\n", (int) crq_key_id_len, (int) pkey_key_id_len);
+ fail("Key_id lengths differ incorrectly: %d - %d\n",
+ (int)crq_key_id_len, (int)pkey_key_id_len);
}
-
if (pkey_key_id) {
free(pkey_key_id);
pkey_key_id = NULL;
diff --git a/tests/crt_apis.c b/tests/crt_apis.c
index 3d45bb18bd..b985214e15 100644
--- a/tests/crt_apis.c
+++ b/tests/crt_apis.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -37,23 +37,22 @@
#include "cert-common.h"
static unsigned char saved_crt_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIICWTCCAcKgAwIBAgIDChEAMA0GCSqGSIb3DQEBCwUAMCsxDjAMBgNVBAMTBW5p\n"
- "a29zMRkwFwYDVQQKExBub25lIHRvLCBtZW50aW9uMCAXDTA4MDMzMTIyMDAwMFoY\n"
- "Dzk5OTkxMjMxMjM1OTU5WjArMQ4wDAYDVQQDEwVuaWtvczEZMBcGA1UEChMQbm9u\n"
- "ZSB0bywgbWVudGlvbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu2ZD9fLF\n"
- "17aMzMXf9Yg7sclLag6hrSBQQAiAoU9co9D4bM/mPPfsBHYTF4tkiSJbwN1TfDvt\n"
- "fAS7gLkovo6bxo6gpRLL9Vceoue7tzNJn+O7Sq5qTWj/yRHiMo3OPYALjXXv2ACB\n"
- "jygEA6AijWEEB/q2N30hB0nSCWFpmJCjWKkCAwEAAYEFAAABAgOCBQAEAwIBo3sw\n"
- "eTAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BgNVHREEMDAuiAQqAwQF\n"
- "ghF4bi0tbXhhYTRhczZkLmNvbYETdGVzdEB4bi0ta3hhd2hrLm9yZzAgBgNVHSUB\n"
- "Af8EFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADgYEAXE4Y\n"
- "kO1M8RrC5qT7rs9zYoMVELPtirENuuGW8d4RFppvMDg8kpqWOo0ASkAa1ZeYSukE\n"
- "m5KCEEyQ1UT00Vbr0Addn17y52RKMUzFhMmmu706MAvyutk51GmRgLusdbuEjgkn\n"
- "jv3WmT8StaS7bFMw99hWCKDBPV9EE9M7zRHP0Js=\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t saved_crt = { saved_crt_pem, sizeof(saved_crt_pem)-1 };
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICWTCCAcKgAwIBAgIDChEAMA0GCSqGSIb3DQEBCwUAMCsxDjAMBgNVBAMTBW5p\n"
+ "a29zMRkwFwYDVQQKExBub25lIHRvLCBtZW50aW9uMCAXDTA4MDMzMTIyMDAwMFoY\n"
+ "Dzk5OTkxMjMxMjM1OTU5WjArMQ4wDAYDVQQDEwVuaWtvczEZMBcGA1UEChMQbm9u\n"
+ "ZSB0bywgbWVudGlvbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu2ZD9fLF\n"
+ "17aMzMXf9Yg7sclLag6hrSBQQAiAoU9co9D4bM/mPPfsBHYTF4tkiSJbwN1TfDvt\n"
+ "fAS7gLkovo6bxo6gpRLL9Vceoue7tzNJn+O7Sq5qTWj/yRHiMo3OPYALjXXv2ACB\n"
+ "jygEA6AijWEEB/q2N30hB0nSCWFpmJCjWKkCAwEAAYEFAAABAgOCBQAEAwIBo3sw\n"
+ "eTAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BgNVHREEMDAuiAQqAwQF\n"
+ "ghF4bi0tbXhhYTRhczZkLmNvbYETdGVzdEB4bi0ta3hhd2hrLm9yZzAgBgNVHSUB\n"
+ "Af8EFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADgYEAXE4Y\n"
+ "kO1M8RrC5qT7rs9zYoMVELPtirENuuGW8d4RFppvMDg8kpqWOo0ASkAa1ZeYSukE\n"
+ "m5KCEEyQ1UT00Vbr0Addn17y52RKMUzFhMmmu706MAvyutk51GmRgLusdbuEjgkn\n"
+ "jv3WmT8StaS7bFMw99hWCKDBPV9EE9M7zRHP0Js=\n" "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t saved_crt = { saved_crt_pem, sizeof(saved_crt_pem) - 1 };
static void tls_log_func(int level, const char *str)
{
@@ -79,7 +78,7 @@ void doit(void)
gnutls_x509_crt_t crt2;
const char *err = NULL;
unsigned char buf[64];
- unsigned char large_buf[5*1024];
+ unsigned char large_buf[5 * 1024];
unsigned int status, san_type;
gnutls_datum_t out;
size_t s = 0, i;
@@ -102,7 +101,8 @@ void doit(void)
if (ret != 0)
fail("gnutls_x509_crt_init\n");
- ret = gnutls_x509_crt_import(crt2, &server_ecc_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_crt_import(crt2, &server_ecc_cert, GNUTLS_X509_FMT_PEM);
if (ret != 0)
fail("gnutls_x509_crt_import\n");
@@ -145,35 +145,41 @@ void doit(void)
if (ret != 0)
fail("gnutls_x509_crt_set_key_usage %d\n", ret);
- ret = gnutls_x509_crt_set_dn(crt, "o = none to\\, mention,cn = nikos", &err);
+ ret =
+ gnutls_x509_crt_set_dn(crt, "o = none to\\, mention,cn = nikos",
+ &err);
if (ret < 0) {
- fail("gnutls_x509_crt_set_dn: %s, %s\n", gnutls_strerror(ret), err);
+ fail("gnutls_x509_crt_set_dn: %s, %s\n", gnutls_strerror(ret),
+ err);
}
-
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_DNSNAME,
"foo", 3, 1);
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_RFC822NAME,
- "foo@bar.org", strlen("foo@bar.org"), 1);
+ "foo@bar.org",
+ strlen("foo@bar.org"), 1);
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_RFC822NAME,
- "ινβάλιντ@bar.org", strlen("ινβάλιντ@bar.org"), 1);
+ "ινβάλιντ@bar.org",
+ strlen
+ ("ινβάλιντ@bar.org"),
+ 1);
if (ret != GNUTLS_E_INVALID_UTF8_EMAIL)
fail("gnutls_x509_crt_set_subject_alt_name\n");
-
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_IPADDRESS,
"\xc1\x5c\x96\x3", 4, 1);
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_IPADDRESS,
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", 16, 1);
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01",
+ 16, 1);
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
@@ -182,24 +188,31 @@ void doit(void)
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
- ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_REGISTERED_ID,
- REGISTERED_OID, strlen(REGISTERED_OID), 0);
+ ret =
+ gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_REGISTERED_ID,
+ REGISTERED_OID,
+ strlen(REGISTERED_OID), 0);
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_DNSNAME,
- "απαλό.com", strlen("απαλό.com"), 1);
+ "απαλό.com",
+ strlen("απαλό.com"), 1);
#if defined(HAVE_LIBIDN2) || defined(HAVE_LIBIDN)
if (ret != 0)
- fail("gnutls_x509_crt_set_subject_alt_name: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_set_subject_alt_name: %s\n",
+ gnutls_strerror(ret));
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_RFC822NAME,
- "test@νίκο.org", strlen("test@νίκο.org"), 1);
+ "test@νίκο.org",
+ strlen("test@νίκο.org"),
+ 1);
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
#else
if (ret != GNUTLS_E_UNIMPLEMENTED_FEATURE)
- fail("gnutls_x509_crt_set_subject_alt_name: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_set_subject_alt_name: %s\n",
+ gnutls_strerror(ret));
#endif
s = 0;
@@ -210,8 +223,7 @@ void doit(void)
s = 0;
ret =
gnutls_x509_crt_set_key_purpose_oid(crt,
- GNUTLS_KP_TLS_WWW_SERVER,
- 0);
+ GNUTLS_KP_TLS_WWW_SERVER, 0);
if (ret != 0)
fail("gnutls_x509_crt_set_key_purpose_oid %d\n", ret);
@@ -223,25 +235,31 @@ void doit(void)
s = 0;
ret =
gnutls_x509_crt_set_key_purpose_oid(crt,
- GNUTLS_KP_TLS_WWW_CLIENT,
- 1);
+ GNUTLS_KP_TLS_WWW_CLIENT, 1);
if (ret != 0)
fail("gnutls_x509_crt_set_key_purpose_oid2 %d\n", ret);
/* in the end this will be ignored as the issuer will be set
* by gnutls_x509_crt_sign2() */
- ret = gnutls_x509_crt_set_issuer_dn(crt, "cn = my CA, o = big\\, and one", &err);
+ ret =
+ gnutls_x509_crt_set_issuer_dn(crt, "cn = my CA, o = big\\, and one",
+ &err);
if (ret < 0) {
- fail("gnutls_x509_crt_set_issuer_dn: %s, %s\n", gnutls_strerror(ret), err);
+ fail("gnutls_x509_crt_set_issuer_dn: %s, %s\n",
+ gnutls_strerror(ret), err);
}
-
#define ISSUER_UNIQUE_ID "\x00\x01\x02\x03"
#define SUBJECT_UNIQUE_ID "\x04\x03\x02\x01"
- ret = gnutls_x509_crt_set_issuer_unique_id(crt, ISSUER_UNIQUE_ID, sizeof(ISSUER_UNIQUE_ID)-1);
+ ret =
+ gnutls_x509_crt_set_issuer_unique_id(crt, ISSUER_UNIQUE_ID,
+ sizeof(ISSUER_UNIQUE_ID) - 1);
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
- ret = gnutls_x509_crt_set_subject_unique_id(crt, SUBJECT_UNIQUE_ID, sizeof(SUBJECT_UNIQUE_ID)-1);
+ ret =
+ gnutls_x509_crt_set_subject_unique_id(crt, SUBJECT_UNIQUE_ID,
+ sizeof(SUBJECT_UNIQUE_ID) -
+ 1);
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
@@ -250,7 +268,6 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_crt_sign2: %s\n", gnutls_strerror(ret));
-
ret = gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_FULL, &out);
if (ret != 0)
fail("gnutls_x509_crt_print\n");
@@ -262,7 +279,8 @@ void doit(void)
s = 0;
ret = gnutls_x509_crt_get_extension_info(crt, 0, NULL, &s, NULL);
if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER)
- fail("gnutls_x509_crt_get_extension_info2: %s\n", strerror(ret));
+ fail("gnutls_x509_crt_get_extension_info2: %s\n",
+ strerror(ret));
s = 0;
ret = gnutls_x509_crt_get_extension_data(crt, 0, NULL, &s);
@@ -271,32 +289,35 @@ void doit(void)
ret = gnutls_x509_crt_get_raw_issuer_dn(crt, &out);
if (ret < 0 || out.size == 0)
- fail("gnutls_x509_crt_get_raw_issuer_dn: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_get_raw_issuer_dn: %s\n",
+ gnutls_strerror(ret));
if (out.size != 45 ||
- memcmp(out.data, "\x30\x2b\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6e\x69\x6b\x6f\x73\x31\x19\x30\x17\x06\x03\x55\x04\x0a\x13\x10\x6e\x6f\x6e\x65\x20\x74\x6f\x2c\x20\x6d\x65\x6e\x74\x69\x6f\x6e", 45) != 0) {
+ memcmp(out.data,
+ "\x30\x2b\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6e\x69\x6b\x6f\x73\x31\x19\x30\x17\x06\x03\x55\x04\x0a\x13\x10\x6e\x6f\x6e\x65\x20\x74\x6f\x2c\x20\x6d\x65\x6e\x74\x69\x6f\x6e",
+ 45) != 0) {
hexprint(out.data, out.size);
fail("issuer DN comparison failed\n");
}
gnutls_free(out.data);
s = sizeof(buf);
- ret = gnutls_x509_crt_get_issuer_unique_id(crt, (void*)buf, &s);
+ ret = gnutls_x509_crt_get_issuer_unique_id(crt, (void *)buf, &s);
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
- if (s != sizeof(ISSUER_UNIQUE_ID)-1 ||
- memcmp(buf, ISSUER_UNIQUE_ID, s) != 0) {
+ if (s != sizeof(ISSUER_UNIQUE_ID) - 1 ||
+ memcmp(buf, ISSUER_UNIQUE_ID, s) != 0) {
fail("issuer unique id comparison failed\n");
}
s = sizeof(buf);
- ret = gnutls_x509_crt_get_subject_unique_id(crt, (void*)buf, &s);
+ ret = gnutls_x509_crt_get_subject_unique_id(crt, (void *)buf, &s);
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
- if (s != sizeof(SUBJECT_UNIQUE_ID)-1 ||
- memcmp(buf, SUBJECT_UNIQUE_ID, s) != 0) {
+ if (s != sizeof(SUBJECT_UNIQUE_ID) - 1 ||
+ memcmp(buf, SUBJECT_UNIQUE_ID, s) != 0) {
fail("subject unique id comparison failed\n");
}
@@ -305,7 +326,9 @@ void doit(void)
fail("gnutls_x509_crt_get_raw_dn: %s\n", gnutls_strerror(ret));
if (out.size != 45 ||
- memcmp(out.data, "\x30\x2b\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6e\x69\x6b\x6f\x73\x31\x19\x30\x17\x06\x03\x55\x04\x0a\x13\x10\x6e\x6f\x6e\x65\x20\x74\x6f\x2c\x20\x6d\x65\x6e\x74\x69\x6f\x6e", 45) != 0) {
+ memcmp(out.data,
+ "\x30\x2b\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6e\x69\x6b\x6f\x73\x31\x19\x30\x17\x06\x03\x55\x04\x0a\x13\x10\x6e\x6f\x6e\x65\x20\x74\x6f\x2c\x20\x6d\x65\x6e\x74\x69\x6f\x6e",
+ 45) != 0) {
fail("DN comparison failed\n");
}
gnutls_free(out.data);
@@ -335,27 +358,31 @@ void doit(void)
fprintf(stderr, "%s\n", out.data);
#if defined(HAVE_LIBIDN2)
assert(out.size == saved_crt.size);
- assert(memcmp(out.data, saved_crt.data, out.size)==0);
+ assert(memcmp(out.data, saved_crt.data, out.size) == 0);
#endif
/* test behavior of gnutls_x509_crt_export on varios corner cases */
s = 0;
- assert(gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_PEM, NULL, &s) == GNUTLS_E_SHORT_MEMORY_BUFFER);
- assert(s == out.size+1);
+ assert(gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_PEM, NULL, &s) ==
+ GNUTLS_E_SHORT_MEMORY_BUFFER);
+ assert(s == out.size + 1);
s = sizeof(buf);
- assert(gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_PEM, buf, &s) == GNUTLS_E_SHORT_MEMORY_BUFFER);
- assert(s == out.size+1);
+ assert(gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_PEM, buf, &s) ==
+ GNUTLS_E_SHORT_MEMORY_BUFFER);
+ assert(s == out.size + 1);
/* check whether the PEM output matches gnutls_x509_crt_export2 */
s = sizeof(large_buf);
- assert(gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_PEM, large_buf, &s) == 0);
+ assert(gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_PEM, large_buf, &s)
+ == 0);
assert(s == out.size);
assert(memcmp(large_buf, out.data, out.size) == 0);
gnutls_free(out.data);
/* check whether the der out length differs */
s = sizeof(large_buf);
- assert(gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_DER, large_buf, &s) == 0);
+ assert(gnutls_x509_crt_export(crt, GNUTLS_X509_FMT_DER, large_buf, &s)
+ == 0);
assert(gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_DER, &out) >= 0);
assert(s == out.size);
@@ -374,9 +401,12 @@ void doit(void)
i = 0;
do {
s = sizeof(buf);
- ret = gnutls_x509_crt_get_subject_alt_name2(crt2, i++, buf, &s, &san_type, NULL);
+ ret =
+ gnutls_x509_crt_get_subject_alt_name2(crt2, i++, buf, &s,
+ &san_type, NULL);
if (ret < 0)
- fail("gnutls_x509_crt_get_subject_alt_name2: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_get_subject_alt_name2: %s\n",
+ gnutls_strerror(ret));
} while (san_type != GNUTLS_SAN_REGISTERED_ID);
assert(san_type == GNUTLS_SAN_REGISTERED_ID);
diff --git a/tests/crt_inv_write.c b/tests/crt_inv_write.c
index 88d2c6768d..4d7f6247ea 100644
--- a/tests/crt_inv_write.c
+++ b/tests/crt_inv_write.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -102,24 +102,28 @@ static void do_crt_with_exts(unsigned version)
if (ret != 0)
fail("gnutls_x509_crt_set_key\n");
- ret = gnutls_x509_crt_set_basic_constraints(crt, 0, -1); /* invalid for V1 */
+ ret = gnutls_x509_crt_set_basic_constraints(crt, 0, -1); /* invalid for V1 */
if (ret < 0) {
fail("error\n");
}
- ret = gnutls_x509_crt_set_key_usage(crt, GNUTLS_KEY_DIGITAL_SIGNATURE); /* inv for V1 */
+ ret = gnutls_x509_crt_set_key_usage(crt, GNUTLS_KEY_DIGITAL_SIGNATURE); /* inv for V1 */
if (ret != 0)
fail("gnutls_x509_crt_set_key_usage %d\n", ret);
- ret = gnutls_x509_crt_set_dn(crt, "o = none to\\, mention,cn = nikos", &err);
+ ret =
+ gnutls_x509_crt_set_dn(crt, "o = none to\\, mention,cn = nikos",
+ &err);
if (ret < 0) {
- fail("gnutls_x509_crt_set_dn: %s, %s\n", gnutls_strerror(ret), err);
+ fail("gnutls_x509_crt_set_dn: %s, %s\n", gnutls_strerror(ret),
+ err);
}
ret = gnutls_x509_crt_sign2(crt, crt, pkey, GNUTLS_DIG_SHA256, 0);
if (ret != GNUTLS_E_X509_CERTIFICATE_ERROR) {
gnutls_datum_t out;
- assert(gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_PEM, &out) >= 0);
+ assert(gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_PEM, &out)
+ >= 0);
printf("%s\n\n", out.data);
fail("gnutls_x509_crt_sign2: %s\n", gnutls_strerror(ret));
@@ -187,15 +191,19 @@ static void do_v1_invalid_crt(void)
fail("error\n");
}
- ret = gnutls_x509_crt_set_dn(crt, "o = none to\\, mention,cn = nikos", &err);
+ ret =
+ gnutls_x509_crt_set_dn(crt, "o = none to\\, mention,cn = nikos",
+ &err);
if (ret < 0) {
- fail("gnutls_x509_crt_set_dn: %s, %s\n", gnutls_strerror(ret), err);
+ fail("gnutls_x509_crt_set_dn: %s, %s\n", gnutls_strerror(ret),
+ err);
}
ret = gnutls_x509_crt_sign2(crt, crt, pkey, GNUTLS_DIG_SHA256, 0);
if (ret != GNUTLS_E_X509_CERTIFICATE_ERROR) {
gnutls_datum_t out;
- assert(gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_PEM, &out) >= 0);
+ assert(gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_PEM, &out)
+ >= 0);
printf("%s\n\n", out.data);
fail("gnutls_x509_crt_sign2: %s\n", gnutls_strerror(ret));
diff --git a/tests/crt_type-neg-common.c b/tests/crt_type-neg-common.c
index 68e2a3680f..8e6a5dc78e 100644
--- a/tests/crt_type-neg-common.c
+++ b/tests/crt_type-neg-common.c
@@ -44,13 +44,12 @@ typedef struct test_case_st {
bool request_cli_crt;
bool cli_srv_may_diverge;
// only needed when may_diverge is true
- gnutls_certificate_type_t expected_cli_cli_ctype; // negotiated cli ctype on the client
- gnutls_certificate_type_t expected_srv_cli_ctype; // negotiated cli ctype on the server
- gnutls_certificate_type_t expected_cli_srv_ctype; // negotiated srv ctype on the client
- gnutls_certificate_type_t expected_srv_srv_ctype; // negotiated srv ctype on the server
+ gnutls_certificate_type_t expected_cli_cli_ctype; // negotiated cli ctype on the client
+ gnutls_certificate_type_t expected_srv_cli_ctype; // negotiated cli ctype on the server
+ gnutls_certificate_type_t expected_cli_srv_ctype; // negotiated srv ctype on the client
+ gnutls_certificate_type_t expected_srv_srv_ctype; // negotiated srv ctype on the server
} test_case_st;
-
static void try(test_case_st * test)
{
int sret, cret; // Needed for HANDSHAKE macro
@@ -71,14 +70,16 @@ static void try(test_case_st * test)
success("Running %s...\n", test->name);
// Init client/server
- if(test->init_flags_cli) {
- assert(gnutls_init(&client, GNUTLS_CLIENT | test->init_flags_cli) >= 0);
+ if (test->init_flags_cli) {
+ assert(gnutls_init
+ (&client, GNUTLS_CLIENT | test->init_flags_cli) >= 0);
} else {
assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
}
if (test->init_flags_srv) {
- assert(gnutls_init(&server, GNUTLS_SERVER | test->init_flags_srv) >= 0);
+ assert(gnutls_init
+ (&server, GNUTLS_SERVER | test->init_flags_srv) >= 0);
} else {
assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
}
@@ -86,57 +87,62 @@ static void try(test_case_st * test)
/* Set up our credentials for this handshake */
// Test for using empty cli credentials
if (test->set_cli_creds == CRED_EMPTY) {
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, client_creds);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
+ client_creds);
} else {
// Test for using X509 cli credentials
if (test->set_cli_creds & CRED_X509) {
assert(gnutls_certificate_set_x509_key_mem
- (client_creds, &cli_ca3_cert, &cli_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
+ (client_creds, &cli_ca3_cert, &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
}
-
// Test for using RawPubKey cli credentials
if (test->set_cli_creds & CRED_RAWPK) {
- assert(gnutls_certificate_set_rawpk_key_mem(client_creds,
- &rawpk_public_key1, &rawpk_private_key1, GNUTLS_X509_FMT_PEM,
- NULL, 0, NULL, 0, 0) >= 0);
+ assert(gnutls_certificate_set_rawpk_key_mem
+ (client_creds, &rawpk_public_key1,
+ &rawpk_private_key1, GNUTLS_X509_FMT_PEM, NULL,
+ 0, NULL, 0, 0) >= 0);
}
-
// -- Add extra ctype creds here in the future --
// Finally set the credentials
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, client_creds);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
+ client_creds);
}
// Test for using empty srv credentials
if (test->set_srv_creds == CRED_EMPTY) {
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, server_creds);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
+ server_creds);
} else {
// Test for using X509 srv credentials
if (test->set_srv_creds & CRED_X509) {
assert(gnutls_certificate_set_x509_key_mem
- (server_creds, &server_ca3_localhost_rsa_decrypt_cert,
+ (server_creds,
+ &server_ca3_localhost_rsa_decrypt_cert,
&server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_certificate_set_x509_key_mem
- (server_creds, &server_ca3_localhost_ecc_cert,
+ (server_creds, &server_ca3_localhost_ecc_cert,
&server_ca3_ecc_key, GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_certificate_set_x509_key_mem
- (server_creds, &server_ca3_localhost_rsa_sign_cert,
+ (server_creds,
+ &server_ca3_localhost_rsa_sign_cert,
&server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
gnutls_certificate_set_known_dh_params(server_creds,
- GNUTLS_SEC_PARAM_MEDIUM);
+ GNUTLS_SEC_PARAM_MEDIUM);
}
-
// Test for using RawPubKey srv credentials
if (test->set_srv_creds & CRED_RAWPK) {
- assert(gnutls_certificate_set_rawpk_key_mem(server_creds,
- &rawpk_public_key2, &rawpk_private_key2, GNUTLS_X509_FMT_PEM,
- NULL, 0, NULL, 0, 0) >= 0);
+ assert(gnutls_certificate_set_rawpk_key_mem
+ (server_creds, &rawpk_public_key2,
+ &rawpk_private_key2, GNUTLS_X509_FMT_PEM, NULL,
+ 0, NULL, 0, 0) >= 0);
}
-
// -- Add extra ctype creds here in the future --
// Finally set the credentials
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, server_creds);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
+ server_creds);
}
// Server settings
@@ -146,7 +152,8 @@ static void try(test_case_st * test)
assert(gnutls_priority_set_direct(server, test->server_prio, 0) >= 0);
if (test->request_cli_crt)
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUEST);
// Client settings
gnutls_transport_set_push_function(client, client_push);
@@ -158,7 +165,8 @@ static void try(test_case_st * test)
if (test->client_err && test->server_err) {
/* We expect errors during the handshake and don't check
* any negotiated certificate types */
- HANDSHAKE_EXPECT(client, server, test->client_err, test->server_err);
+ HANDSHAKE_EXPECT(client, server, test->client_err,
+ test->server_err);
} else {
/* We expect a handshake without errors and check the negotiated
* certificate types */
@@ -166,20 +174,28 @@ static void try(test_case_st * test)
/* Get the negotiated certificate types */
srv_srv_ctype =
- gnutls_certificate_type_get2(server, GNUTLS_CTYPE_SERVER);
+ gnutls_certificate_type_get2(server, GNUTLS_CTYPE_SERVER);
srv_cli_ctype =
- gnutls_certificate_type_get2(server, GNUTLS_CTYPE_CLIENT);
+ gnutls_certificate_type_get2(server, GNUTLS_CTYPE_CLIENT);
cli_srv_ctype =
- gnutls_certificate_type_get2(client, GNUTLS_CTYPE_SERVER);
+ gnutls_certificate_type_get2(client, GNUTLS_CTYPE_SERVER);
cli_cli_ctype =
- gnutls_certificate_type_get2(client, GNUTLS_CTYPE_CLIENT);
+ gnutls_certificate_type_get2(client, GNUTLS_CTYPE_CLIENT);
// For debugging
if (debug) {
- success("Srv srv ctype: %s\n", gnutls_certificate_type_get_name(srv_srv_ctype));
- success("Srv cli ctype: %s\n", gnutls_certificate_type_get_name(srv_cli_ctype));
- success("Cli srv ctype: %s\n", gnutls_certificate_type_get_name(cli_srv_ctype));
- success("Cli srv ctype: %s\n", gnutls_certificate_type_get_name(cli_cli_ctype));
+ success("Srv srv ctype: %s\n",
+ gnutls_certificate_type_get_name
+ (srv_srv_ctype));
+ success("Srv cli ctype: %s\n",
+ gnutls_certificate_type_get_name
+ (srv_cli_ctype));
+ success("Cli srv ctype: %s\n",
+ gnutls_certificate_type_get_name
+ (cli_srv_ctype));
+ success("Cli srv ctype: %s\n",
+ gnutls_certificate_type_get_name
+ (cli_cli_ctype));
}
/* Check whether the negotiated certificate types match the expected results */
@@ -219,10 +235,18 @@ static void try(test_case_st * test)
}
/* Check whether the API functions return the correct cert types for OURS and PEERS */
- assert(srv_srv_ctype == gnutls_certificate_type_get2(server, GNUTLS_CTYPE_OURS));
- assert(srv_srv_ctype == gnutls_certificate_type_get2(client, GNUTLS_CTYPE_PEERS));
- assert(cli_cli_ctype == gnutls_certificate_type_get2(server, GNUTLS_CTYPE_PEERS));
- assert(cli_cli_ctype == gnutls_certificate_type_get2(client, GNUTLS_CTYPE_OURS));
+ assert(srv_srv_ctype ==
+ gnutls_certificate_type_get2(server,
+ GNUTLS_CTYPE_OURS));
+ assert(srv_srv_ctype ==
+ gnutls_certificate_type_get2(client,
+ GNUTLS_CTYPE_PEERS));
+ assert(cli_cli_ctype ==
+ gnutls_certificate_type_get2(server,
+ GNUTLS_CTYPE_PEERS));
+ assert(cli_cli_ctype ==
+ gnutls_certificate_type_get2(client,
+ GNUTLS_CTYPE_OURS));
}
}
diff --git a/tests/custom-urls-override.c b/tests/custom-urls-override.c
index a741c411df..aa3de7bdad 100644
--- a/tests/custom-urls-override.c
+++ b/tests/custom-urls-override.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,21 +35,21 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/abstract.h>
-#include <gnutls/urls.h>
-#include <signal.h>
-#include <assert.h>
-#include "cert-common.h"
-
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/abstract.h>
+# include <gnutls/urls.h>
+# include <signal.h>
+# include <assert.h>
+# include "cert-common.h"
+
+# include "utils.h"
static void terminate(void);
static unsigned url_used = 0;
@@ -62,17 +62,20 @@ static void server_log_func(int level, const char *str)
fprintf(stderr, "server|<%d>| %s", level, str);
}
-static int url_import_key(gnutls_privkey_t pkey, const char *url, unsigned flags)
+static int url_import_key(gnutls_privkey_t pkey, const char *url,
+ unsigned flags)
{
if (strcmp(url, "system:key") != 0) {
fail("unexpected key url: %s\n", url);
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
url_used++;
- return gnutls_privkey_import_x509_raw(pkey, &server_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ return gnutls_privkey_import_x509_raw(pkey, &server_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
}
-static int url_import_crt(gnutls_x509_crt_t crt, const char *url, unsigned flags)
+static int url_import_crt(gnutls_x509_crt_t crt, const char *url,
+ unsigned flags)
{
if (strcmp(url, "system:cert") != 0) {
abort();
@@ -96,7 +99,8 @@ static void client(int fd)
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -154,8 +158,10 @@ static void server(int fd)
*/
gnutls_certificate_allocate_credentials(&x509_cred);
- ret = gnutls_certificate_set_x509_key_file(x509_cred, "system:cert", "system:key",
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_file(x509_cred, "system:cert",
+ "system:key",
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("server: gnutls_certificate_set_x509_key_file (%s)\n\n",
gnutls_strerror(ret));
@@ -167,7 +173,8 @@ static void server(int fd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -214,7 +221,7 @@ static void server(int fd)
const gnutls_custom_url_st custom_url_st = {
.name = "system:",
- .name_size = sizeof("system:")-1,
+ .name_size = sizeof("system:") - 1,
.import_key = url_import_key,
.import_crt = url_import_crt
};
diff --git a/tests/custom-urls.c b/tests/custom-urls.c
index ef7a52471e..168ab030d1 100644
--- a/tests/custom-urls.c
+++ b/tests/custom-urls.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,21 +35,21 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/abstract.h>
-#include <gnutls/urls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/abstract.h>
+# include <gnutls/urls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -61,16 +61,19 @@ static void server_log_func(int level, const char *str)
fprintf(stderr, "server|<%d>| %s", level, str);
}
-static int url_import_key(gnutls_privkey_t pkey, const char *url, unsigned flags)
+static int url_import_key(gnutls_privkey_t pkey, const char *url,
+ unsigned flags)
{
if (strcmp(url, "myurl:key") != 0) {
fail("unexpected key url: %s\n", url);
return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE;
}
- return gnutls_privkey_import_x509_raw(pkey, &server_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ return gnutls_privkey_import_x509_raw(pkey, &server_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
}
-static int url_import_crt(gnutls_x509_crt_t crt, const char *url, unsigned flags)
+static int url_import_crt(gnutls_x509_crt_t crt, const char *url,
+ unsigned flags)
{
if (strcmp(url, "myurl:cert") != 0) {
abort();
@@ -93,7 +96,8 @@ static void client(int fd)
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -150,16 +154,19 @@ static void server(int fd)
/* this must be called once in the program
*/
gnutls_certificate_allocate_credentials(&x509_cred);
- ret = gnutls_certificate_set_x509_key_file(x509_cred, "nomyurl:cert", "nomyurl:key",
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_file(x509_cred, "nomyurl:cert",
+ "nomyurl:key",
+ GNUTLS_X509_FMT_PEM);
if (ret != GNUTLS_E_FILE_ERROR) {
- fail("server: gnutls_certificate_set_x509_key_file unexpected error (%s)\n\n",
- gnutls_strerror(ret));
+ fail("server: gnutls_certificate_set_x509_key_file unexpected error (%s)\n\n", gnutls_strerror(ret));
terminate();
}
- ret = gnutls_certificate_set_x509_key_file(x509_cred, "myurl:cert", "myurl:key",
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_file(x509_cred, "myurl:cert",
+ "myurl:key",
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("server: gnutls_certificate_set_x509_key_file (%s)\n\n",
gnutls_strerror(ret));
@@ -171,7 +178,8 @@ static void server(int fd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -213,7 +221,7 @@ static void server(int fd)
const gnutls_custom_url_st custom_url_st = {
.name = "myurl:",
- .name_size = sizeof("myurl:")-1,
+ .name_size = sizeof("myurl:") - 1,
.import_key = url_import_key,
.import_crt = url_import_crt
};
diff --git a/tests/cve-2008-4989.c b/tests/cve-2008-4989.c
index cf7205df42..d204a0cf27 100644
--- a/tests/cve-2008-4989.c
+++ b/tests/cve-2008-4989.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -164,19 +164,18 @@ int main(int argc, char *argv[])
ret = gnutls_x509_crt_init(&certs[i]);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_init[%d]: %s",
- (int) i, gnutls_strerror(ret));
+ (int)i, gnutls_strerror(ret));
exit(1);
}
- tmp.data = (unsigned char *) pem_certs[i];
+ tmp.data = (unsigned char *)pem_certs[i];
tmp.size = strlen(pem_certs[i]);
ret =
- gnutls_x509_crt_import(certs[i], &tmp,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_crt_import(certs[i], &tmp, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_import[%d]: %s",
- (int) i, gnutls_strerror(ret));
+ (int)i, gnutls_strerror(ret));
exit(1);
}
}
@@ -188,7 +187,7 @@ int main(int argc, char *argv[])
exit(1);
}
- tmp.data = (unsigned char *) pem_ca;
+ tmp.data = (unsigned char *)pem_ca;
tmp.size = strlen(pem_ca);
ret = gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
@@ -201,11 +200,12 @@ int main(int argc, char *argv[])
ret = gnutls_x509_crt_list_verify(certs, CHAIN_LENGTH,
&ca, 1,
NULL, 0,
- GNUTLS_VERIFY_DISABLE_TIME_CHECKS|GNUTLS_VERIFY_ALLOW_BROKEN,
+ GNUTLS_VERIFY_DISABLE_TIME_CHECKS |
+ GNUTLS_VERIFY_ALLOW_BROKEN,
&verify_status);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_list_verify[%d]: %s",
- (int) i, gnutls_strerror(ret));
+ (int)i, gnutls_strerror(ret));
exit(1);
}
@@ -229,7 +229,7 @@ int main(int argc, char *argv[])
exit(1);
}
- tmp.data = (unsigned char *) pem_self_cert;
+ tmp.data = (unsigned char *)pem_self_cert;
tmp.size = strlen(pem_self_cert);
ret = gnutls_x509_crt_import(self_cert, &tmp, GNUTLS_X509_FMT_PEM);
@@ -245,7 +245,7 @@ int main(int argc, char *argv[])
&verify_status);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_list_verify[%d]: %s",
- (int) i, gnutls_strerror(ret));
+ (int)i, gnutls_strerror(ret));
exit(1);
}
diff --git a/tests/cve-2009-1415.c b/tests/cve-2009-1415.c
index 699d53e786..8827bd2d7d 100644
--- a/tests/cve-2009-1415.c
+++ b/tests/cve-2009-1415.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/*
@@ -71,15 +71,15 @@ static char dsa_cert[] =
"QcDzQ8REwidsfh9uKAluk1c/KQ==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t dsa_cert_dat = {
- (void *) dsa_cert, sizeof(dsa_cert)
+ (void *)dsa_cert, sizeof(dsa_cert)
};
int main(void)
{
gnutls_x509_crt_t crt;
gnutls_pubkey_t pubkey;
- gnutls_datum_t data = { (void *) "foo", 3 };
- gnutls_datum_t sig = { (void *) "bar", 3 };
+ gnutls_datum_t data = { (void *)"foo", 3 };
+ gnutls_datum_t sig = { (void *)"bar", 3 };
int ret;
global_init();
@@ -92,9 +92,7 @@ int main(void)
if (ret < 0)
return 1;
- ret =
- gnutls_x509_crt_import(crt, &dsa_cert_dat,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(crt, &dsa_cert_dat, GNUTLS_X509_FMT_PEM);
if (ret < 0)
return 1;
@@ -102,7 +100,9 @@ int main(void)
if (ret < 0)
return 1;
- ret = gnutls_pubkey_verify_data2(pubkey, GNUTLS_SIGN_DSA_SHA1, 0, &data, &sig);
+ ret =
+ gnutls_pubkey_verify_data2(pubkey, GNUTLS_SIGN_DSA_SHA1, 0, &data,
+ &sig);
if (ret < 0 && ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
return 1;
diff --git a/tests/cve-2009-1416.c b/tests/cve-2009-1416.c
index ba74857b73..a06f56bb34 100644
--- a/tests/cve-2009-1416.c
+++ b/tests/cve-2009-1416.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/*
diff --git a/tests/dane-strcodes.c b/tests/dane-strcodes.c
index c26630912f..4ea3182777 100644
--- a/tests/dane-strcodes.c
+++ b/tests/dane-strcodes.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -43,9 +43,9 @@ void _check_unique_non_null(int line, int i, const char *val)
if (val == NULL)
fail("issue in line %d, item %d\n", line, i);
- if (strcmp(val, previous_val)==0) {
+ if (strcmp(val, previous_val) == 0) {
fail("issue in line %d, item %d: %s\n", line, i, val);
- }
+ }
snprintf(previous_val, sizeof(previous_val), "%s", val);
}
@@ -63,16 +63,16 @@ void doit(void)
exit(1);
}
- for (i=0;i<4;i++)
+ for (i = 0; i < 4; i++)
check_unique_non_null(dane_cert_usage_name(i));
- for (i=0;i<1;i++)
+ for (i = 0; i < 1; i++)
check_unique_non_null(dane_cert_type_name(i));
- for (i=0;i<3;i++)
+ for (i = 0; i < 3; i++)
check_unique_non_null(dane_match_type_name(i));
- for (i=-14;i<=0;i++) {
+ for (i = -14; i <= 0; i++) {
check_unique_non_null(dane_strerror(i));
}
diff --git a/tests/dane.c b/tests/dane.c
index 5f9be66525..258163f0e7 100644
--- a/tests/dane.c
+++ b/tests/dane.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -115,7 +115,7 @@ const struct data_entry_st data_entries[] = {
(char *)
"\x03\x00\x01\x03\x32\xaa\x2d\x58\xb3\xe0\x54\x4b\x65\x65\x64\x38\x93\x70\x68\xba\x44\xce\x2f\x14\x46\x9c\x4f\x50\xc9\xcc\x69\x33\xc8\x08\xd3",
NULL},
- .q_size = { 35, 35, 35, 0},
+ .q_size = {35, 35, 35, 0},
.expected_ret = 0,
.no_queries = 3,
.secure = 1,
@@ -157,7 +157,7 @@ const struct data_entry_st data_entries[] = {
(char *)
"\x03\x01\x01\x54\x4f\x28\x4d\x66\xaf\x2d\xe0\x8c\x17\xe7\x49\x6a\xed\xfa\x2e\x00\xaa\x1a\xc6\xbb\xf3\xaf\x5c\xa6\x2b\x55\xab\x7a\xc2\x69\xbe",
NULL},
- .q_size = { 35, 0},
+ .q_size = {35, 0},
.expected_ret = 0,
.no_queries = 1,
.secure = 1,
@@ -199,7 +199,7 @@ const struct data_entry_st data_entries[] = {
(char *)
"\x00\x00\x01\x19\x40\x0b\xe5\xb7\xa3\x1f\xb7\x33\x91\x77\x00\x78\x9d\x2f\x0a\x24\x71\xc0\xc9\xd5\x06\xc0\xe5\x04\xc0\x6c\x16\xd7\xcb\x17\xc0",
NULL},
- .q_size = { 35, 0},
+ .q_size = {35, 0},
.expected_ret = 0,
.no_queries = 1,
.secure = 1,
@@ -241,7 +241,7 @@ const struct data_entry_st data_entries[] = {
(char *)
"\x00\x00\x01\x19\x40\x0b\xe5\xb7\xa3\x1f\xb7\x33\x91\x77\x00\x78\x9d\x2f\x0a\x24\x71\xc0\xc9\xd5\x06\xc0\xe5\x04\xc0\x6c\x16\xd7\xcb\x17\xc0",
NULL},
- .q_size = { 35, 0},
+ .q_size = {35, 0},
.expected_ret = 0,
.no_queries = 1,
.secure = 1,
@@ -317,7 +317,7 @@ const struct data_entry_st data_entries[] = {
(char *)
"\x00\x00\x01\x19\x40\x0b\xe5\xb7\xa3\x1f\xb7\x33\x92\x77\x00\x78\x9d\x2f\x0a\x24\x71\xc0\xc9\xd5\x06\xc0\xe5\x04\xc0\x6c\x16\xd7\xcb\x17\xc0",
NULL},
- .q_size = { 35, 0},
+ .q_size = {35, 0},
.expected_ret = 0,
.no_queries = 1,
.secure = 1,
@@ -399,7 +399,7 @@ const struct data_entry_st data_entries[] = {
(char *)
"\x03\x00\x01\x03\x32\xaa\x2d\x58\xb3\xe0\x54\x4b\x65\x65\x64\x38\x93\x70\x68\xba\x44\xce\x2f\x14\x46\x9c\x4f\x50\xc9\xcc\x69\x33\xc8\x08\xd3",
NULL},
- .q_size = { 35, 35, 35, 35, 0},
+ .q_size = {35, 35, 35, 35, 0},
.expected_ret = 0,
.no_queries = 4,
.secure = 1,
diff --git a/tests/datefudge-check.c b/tests/datefudge-check.c
index f2d896d622..366b8b0625 100644
--- a/tests/datefudge-check.c
+++ b/tests/datefudge-check.c
@@ -20,15 +20,14 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
-int
-main (void)
+int main(void)
{
char outstr[200];
time_t t;
diff --git a/tests/dh-compute.c b/tests/dh-compute.c
index 3bed37f1c1..9fbd3bbb7d 100644
--- a/tests/dh-compute.c
+++ b/tests/dh-compute.c
@@ -22,7 +22,7 @@
/* This program tests functionality of DH exchanges */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <gnutls/gnutls.h>
@@ -33,15 +33,16 @@
#ifdef ENABLE_FIPS140
int _gnutls_dh_generate_key(gnutls_dh_params_t dh_params,
- gnutls_datum_t *priv_key, gnutls_datum_t *pub_key);
+ gnutls_datum_t * priv_key,
+ gnutls_datum_t * pub_key);
int _gnutls_dh_compute_key(gnutls_dh_params_t dh_params,
- const gnutls_datum_t *priv_key,
- const gnutls_datum_t *pub_key,
- const gnutls_datum_t *peer_key, gnutls_datum_t *Z);
+ const gnutls_datum_t * priv_key,
+ const gnutls_datum_t * pub_key,
+ const gnutls_datum_t * peer_key, gnutls_datum_t * Z);
-static void params(gnutls_dh_params_t *dh_params, const gnutls_datum_t *p,
- const gnutls_datum_t *q, const gnutls_datum_t *g)
+static void params(gnutls_dh_params_t * dh_params, const gnutls_datum_t * p,
+ const gnutls_datum_t * q, const gnutls_datum_t * g)
{
int ret;
@@ -55,7 +56,7 @@ static void params(gnutls_dh_params_t *dh_params, const gnutls_datum_t *p,
}
static void genkey(const gnutls_dh_params_t dh_params,
- gnutls_datum_t *priv_key, gnutls_datum_t *pub_key)
+ gnutls_datum_t * priv_key, gnutls_datum_t * pub_key)
{
int ret;
@@ -65,9 +66,10 @@ static void genkey(const gnutls_dh_params_t dh_params,
}
static void compute_key(const char *name, const gnutls_dh_params_t dh_params,
- const gnutls_datum_t *priv_key, const gnutls_datum_t *pub_key,
- const gnutls_datum_t *peer_key, int expect_error,
- gnutls_datum_t *result, bool expect_success)
+ const gnutls_datum_t * priv_key,
+ const gnutls_datum_t * pub_key,
+ const gnutls_datum_t * peer_key, int expect_error,
+ gnutls_datum_t * result, bool expect_success)
{
gnutls_datum_t Z = { 0 };
bool success;
@@ -102,57 +104,57 @@ void doit(void)
{
struct dh_test_data test_data[] = {
{
- "[y == 0]",
- gnutls_ffdhe_2048_group_prime,
- gnutls_ffdhe_2048_group_q,
- gnutls_ffdhe_2048_group_generator,
- { (void *)"\x00", 1 },
- GNUTLS_E_MPI_SCAN_FAILED,
- GNUTLS_FIPS140_OP_APPROVED,
- /* does not reach _wrap_nettle_pk_derive */
- GNUTLS_FIPS140_OP_INITIAL,
- },
+ "[y == 0]",
+ gnutls_ffdhe_2048_group_prime,
+ gnutls_ffdhe_2048_group_q,
+ gnutls_ffdhe_2048_group_generator,
+ {(void *)"\x00", 1},
+ GNUTLS_E_MPI_SCAN_FAILED,
+ GNUTLS_FIPS140_OP_APPROVED,
+ /* does not reach _wrap_nettle_pk_derive */
+ GNUTLS_FIPS140_OP_INITIAL,
+ },
{
- "[y < 2]",
- gnutls_ffdhe_2048_group_prime,
- gnutls_ffdhe_2048_group_q,
- gnutls_ffdhe_2048_group_generator,
- { (void *)"\x01", 1 },
- GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER,
- GNUTLS_FIPS140_OP_APPROVED,
- GNUTLS_FIPS140_OP_ERROR,
- },
+ "[y < 2]",
+ gnutls_ffdhe_2048_group_prime,
+ gnutls_ffdhe_2048_group_q,
+ gnutls_ffdhe_2048_group_generator,
+ {(void *)"\x01", 1},
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER,
+ GNUTLS_FIPS140_OP_APPROVED,
+ GNUTLS_FIPS140_OP_ERROR,
+ },
{
- "[y > p - 2]",
- gnutls_ffdhe_2048_group_prime,
- gnutls_ffdhe_2048_group_q,
- gnutls_ffdhe_2048_group_generator,
- gnutls_ffdhe_2048_group_prime,
- GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER,
- GNUTLS_FIPS140_OP_APPROVED,
- GNUTLS_FIPS140_OP_ERROR,
- },
+ "[y > p - 2]",
+ gnutls_ffdhe_2048_group_prime,
+ gnutls_ffdhe_2048_group_q,
+ gnutls_ffdhe_2048_group_generator,
+ gnutls_ffdhe_2048_group_prime,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER,
+ GNUTLS_FIPS140_OP_APPROVED,
+ GNUTLS_FIPS140_OP_ERROR,
+ },
{
- "[y ^ q mod p == 1]",
- gnutls_ffdhe_2048_group_prime,
- gnutls_ffdhe_2048_group_q,
- gnutls_ffdhe_2048_group_generator,
- gnutls_ffdhe_2048_group_q,
- GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER,
- GNUTLS_FIPS140_OP_APPROVED,
- GNUTLS_FIPS140_OP_ERROR,
- },
+ "[y ^ q mod p == 1]",
+ gnutls_ffdhe_2048_group_prime,
+ gnutls_ffdhe_2048_group_q,
+ gnutls_ffdhe_2048_group_generator,
+ gnutls_ffdhe_2048_group_q,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER,
+ GNUTLS_FIPS140_OP_APPROVED,
+ GNUTLS_FIPS140_OP_ERROR,
+ },
{
- "Legal Input",
- gnutls_ffdhe_2048_group_prime,
- gnutls_ffdhe_2048_group_q,
- gnutls_ffdhe_2048_group_generator,
- { (void *)"\x02", 1 },
- 0,
- GNUTLS_FIPS140_OP_APPROVED,
- GNUTLS_FIPS140_OP_APPROVED,
- },
- { NULL }
+ "Legal Input",
+ gnutls_ffdhe_2048_group_prime,
+ gnutls_ffdhe_2048_group_q,
+ gnutls_ffdhe_2048_group_generator,
+ {(void *)"\x02", 1},
+ 0,
+ GNUTLS_FIPS140_OP_APPROVED,
+ GNUTLS_FIPS140_OP_APPROVED,
+ },
+ {NULL}
};
for (int i = 0; test_data[i].name != NULL; i++) {
@@ -180,12 +182,13 @@ void doit(void)
fips_pop_context(fips_context, test_data[i].fips_state_genkey);
success("%s compute_key\n", test_data[i].name);
-
+
fips_push_context(fips_context);
compute_key(test_data[i].name, dh_params, &priv_key,
&pub_key, &test_data[i].peer_key,
test_data[i].expected_error, NULL, 0);
- fips_pop_context(fips_context, test_data[i].fips_state_compute_key);
+ fips_pop_context(fips_context,
+ test_data[i].fips_state_compute_key);
gnutls_dh_params_deinit(dh_params);
gnutls_free(priv_key.data);
diff --git a/tests/dh-params.c b/tests/dh-params.c
index ce115071ed..54bce137c7 100644
--- a/tests/dh-params.c
+++ b/tests/dh-params.c
@@ -22,7 +22,7 @@
/* This program tests functionality in gnutls_dh_params structure */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <gnutls/gnutls.h>
@@ -34,7 +34,7 @@
#include "cert-common.h"
#include "utils.h"
-static int compare(gnutls_datum_t *d1, gnutls_datum_t *d2)
+static int compare(gnutls_datum_t * d1, gnutls_datum_t * d2)
{
gnutls_datum_t t1, t2;
t1.data = d1->data;
@@ -73,7 +73,8 @@ void doit(void)
assert(gnutls_dh_params_init(&tmp_params) >= 0);
assert(gnutls_x509_privkey_init(&privkey) >= 0);
- ret = gnutls_x509_privkey_import(privkey, &dsa_key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_privkey_import(privkey, &dsa_key, GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("error in %s: %d\n", __FILE__, __LINE__);
@@ -88,11 +89,13 @@ void doit(void)
if (ret < 0)
fail("error in %s: %d\n", __FILE__, __LINE__);
- ret = gnutls_x509_privkey_export_dsa_raw(privkey, &p2, &q, &g2, NULL, NULL);
+ ret =
+ gnutls_x509_privkey_export_dsa_raw(privkey, &p2, &q, &g2, NULL,
+ NULL);
if (ret < 0)
fail("error in %s: %d\n", __FILE__, __LINE__);
- if (bits > q.size*8 || bits < q.size*8-8)
+ if (bits > q.size * 8 || bits < q.size * 8 - 8)
fail("error in %s: %d\n", __FILE__, __LINE__);
if (compare(&p1, &p2) != 0)
diff --git a/tests/dhepskself.c b/tests/dhepskself.c
index 23d019dc7e..f3eebc0c9c 100644
--- a/tests/dhepskself.c
+++ b/tests/dhepskself.c
@@ -23,7 +23,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,22 +39,22 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
+# include "utils.h"
/* A very basic TLS client, with PSK authentication.
*/
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static void tls_log_func(int level, const char *str)
{
@@ -67,7 +67,7 @@ static void client(int sd)
gnutls_session_t session;
char buffer[MAX_BUF + 1];
gnutls_psk_client_credentials_t pskcred;
- const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t key = { (void *)"DEADBEEF", 8 };
global_init();
@@ -84,7 +84,9 @@ static void client(int sd)
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:+DHE-PSK", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+DHE-PSK",
+ NULL);
/* put the anonymous credentials to the current session
*/
@@ -112,8 +114,7 @@ static void client(int sd)
ret = gnutls_record_recv(session, buffer, MAX_BUF);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -129,7 +130,7 @@ static void client(int sd)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -143,7 +144,7 @@ static void client(int sd)
/* This is a sample TLS 1.0 echo server, for PSK authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
/* These are global */
gnutls_psk_server_credentials_t server_pskcred;
@@ -157,7 +158,9 @@ static gnutls_session_t initialize_tls_session(void)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:+DHE-PSK", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+DHE-PSK",
+ NULL);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_credentials_set(session, GNUTLS_CRD_PSK, server_pskcred);
@@ -169,7 +172,7 @@ static gnutls_dh_params_t dh_params;
static int generate_dh_params(void)
{
- const gnutls_datum_t p3 = { (void *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (void *)pkcs3, strlen(pkcs3) };
/* Generate Diffie-Hellman parameters - for use with DHE
* kx algorithms. These should be discarded and regenerated
* once a day, once a week or once a month. Depending on the
@@ -181,8 +184,7 @@ static int generate_dh_params(void)
}
static int
-pskfunc(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+pskfunc(gnutls_session_t session, const char *username, gnutls_datum_t * key)
{
if (debug)
printf("psk callback to get %s's password\n", username);
@@ -214,8 +216,7 @@ static void server(int sd)
generate_dh_params();
gnutls_psk_allocate_server_credentials(&server_pskcred);
- gnutls_psk_set_server_credentials_function(server_pskcred,
- pskfunc);
+ gnutls_psk_set_server_credentials_function(server_pskcred, pskfunc);
gnutls_psk_set_server_dh_params(server_pskcred, dh_params);
session = initialize_tls_session();
@@ -252,8 +253,7 @@ static void server(int sd)
} else if (ret > 0) {
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
/* do not wait for the peer to close the connection.
diff --git a/tests/dhex509self.c b/tests/dhex509self.c
index 976f3f43bc..b969ba8a13 100644
--- a/tests/dhex509self.c
+++ b/tests/dhex509self.c
@@ -23,7 +23,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,19 +40,19 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
+# include "utils.h"
-#include "ex-session-info.c"
-#include "ex-x509-info.c"
+# include "ex-session-info.c"
+# include "ex-x509-info.c"
pid_t child;
@@ -65,10 +65,8 @@ static void tls_log_func(int level, const char *str)
/* A very basic TLS client, with anonymous authentication.
*/
-
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
-
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static void client(int sd)
{
@@ -98,7 +96,9 @@ static void client(int sd)
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA",
+ NULL);
/* put the x509 credentials to the current session
*/
@@ -129,9 +129,12 @@ static void client(int sd)
print_dh_params_info(session);
- ret = gnutls_credentials_get(session, GNUTLS_CRD_CERTIFICATE, (void**)&tst_cred);
+ ret =
+ gnutls_credentials_get(session, GNUTLS_CRD_CERTIFICATE,
+ (void **)&tst_cred);
if (ret < 0) {
- fail("client: gnutls_credentials_get failed: %s\n", gnutls_strerror(ret));
+ fail("client: gnutls_credentials_get failed: %s\n",
+ gnutls_strerror(ret));
}
if (tst_cred != xcred) {
fail("client: gnutls_credentials_get returned invalid value\n");
@@ -169,8 +172,7 @@ static void client(int sd)
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -187,7 +189,7 @@ static void client(int sd)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -201,8 +203,8 @@ static void client(int sd)
/* This is a sample TLS 1.0 echo server, using X.509 authentication.
*/
-#define MAX_BUF 1024
-#define DH_BITS 1024
+# define MAX_BUF 1024
+# define DH_BITS 1024
/* These are global */
gnutls_certificate_credentials_t x509_cred;
@@ -216,7 +218,9 @@ static gnutls_session_t initialize_tls_session(void)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA",
+ NULL);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -235,7 +239,7 @@ static gnutls_dh_params_t dh_params;
static int generate_dh_params(void)
{
- const gnutls_datum_t p3 = { (void *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (void *)pkcs3, strlen(pkcs3) };
gnutls_dh_params_init(&dh_params);
return gnutls_dh_params_import_pkcs3(dh_params, &p3,
GNUTLS_X509_FMT_PEM);
@@ -247,12 +251,11 @@ gnutls_session_t session;
char buffer[MAX_BUF + 1];
int optval = 1;
-
static void server(int sd)
{
/* this must be called once in the program
*/
-
+
global_init();
gnutls_global_set_log_function(tls_log_func);
@@ -338,8 +341,7 @@ static void server(int sd)
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
@@ -360,7 +362,6 @@ static void server(int sd)
success("server: finished\n");
}
-
void doit(void)
{
int sockets[2];
diff --git a/tests/dn.c b/tests/dn.c
index 2b799cb808..2719942a53 100644
--- a/tests/dn.c
+++ b/tests/dn.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <stdio.h>
@@ -86,7 +86,7 @@ static void print_dn(gnutls_x509_dn_t dn)
void doit(void)
{
int ret;
- gnutls_datum_t pem_cert = { (unsigned char *) pem, sizeof(pem) };
+ gnutls_datum_t pem_cert = { (unsigned char *)pem, sizeof(pem) };
gnutls_x509_crt_t cert;
gnutls_datum_t strdn;
gnutls_x509_dn_t xdn;
@@ -121,7 +121,9 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_dn_get_str %d\n", ret);
- if (strdn.size != 44 || strcmp((char*)strdn.data, "CN=CAcert WoT User,EMAIL=simon@josefsson.org") != 0) {
+ if (strdn.size != 44
+ || strcmp((char *)strdn.data,
+ "CN=CAcert WoT User,EMAIL=simon@josefsson.org") != 0) {
fail("gnutls_x509_dn_get_str string comparison failed: '%s'/%d\n", strdn.data, strdn.size);
}
gnutls_free(strdn.data);
@@ -130,7 +132,9 @@ void doit(void)
ret = gnutls_x509_dn_get_str2(xdn, &strdn, 0);
if (ret < 0)
fail("gnutls_x509_dn_get_str2 %d\n", ret);
- if (strdn.size != 44 || strcmp((char*)strdn.data, "EMAIL=simon@josefsson.org,CN=CAcert WoT User") != 0) {
+ if (strdn.size != 44
+ || strcmp((char *)strdn.data,
+ "EMAIL=simon@josefsson.org,CN=CAcert WoT User") != 0) {
fail("gnutls_x509_dn_get_str2 string comparison failed: '%s'/%d\n", strdn.data, strdn.size);
}
gnutls_free(strdn.data);
@@ -139,7 +143,9 @@ void doit(void)
ret = gnutls_x509_dn_get_str2(xdn, &strdn, GNUTLS_X509_DN_FLAG_COMPAT);
if (ret < 0)
fail("gnutls_x509_dn_get_str2 %d\n", ret);
- if (strdn.size != 44 || strcmp((char*)strdn.data, "CN=CAcert WoT User,EMAIL=simon@josefsson.org") != 0) {
+ if (strdn.size != 44
+ || strcmp((char *)strdn.data,
+ "CN=CAcert WoT User,EMAIL=simon@josefsson.org") != 0) {
fail("gnutls_x509_dn_get_str2 string comparison failed: '%s'/%d\n", strdn.data, strdn.size);
}
gnutls_free(strdn.data);
diff --git a/tests/dn2.c b/tests/dn2.c
index 5ad2a0956f..31915d5f1c 100644
--- a/tests/dn2.c
+++ b/tests/dn2.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <stdio.h>
@@ -67,7 +67,7 @@ static const char *info =
void doit(void)
{
- gnutls_datum_t pem_cert = { (void *) pem, sizeof(pem) };
+ gnutls_datum_t pem_cert = { (void *)pem, sizeof(pem) };
gnutls_x509_crt_t cert;
gnutls_datum_t out;
int ret;
@@ -90,11 +90,10 @@ void doit(void)
/* When allowing SHA1, the output is different: no broken! string */
#ifndef ALLOW_SHA1
- if (out.size != strlen(info) ||
- strcasecmp((char *) out.data, info) != 0) {
- fprintf(stderr, "comparison fail (%d/%d)\nexpected: %s\n\n got: %.*s\n\n",
- out.size, (int) strlen(info), info, out.size,
- out.data);
+ if (out.size != strlen(info) || strcasecmp((char *)out.data, info) != 0) {
+ fprintf(stderr,
+ "comparison fail (%d/%d)\nexpected: %s\n\n got: %.*s\n\n",
+ out.size, (int)strlen(info), info, out.size, out.data);
fail("comparison failed\n");
}
#endif
diff --git a/tests/dss-sig-val.c b/tests/dss-sig-val.c
index c5d2108810..b6f58bc53b 100644
--- a/tests/dss-sig-val.c
+++ b/tests/dss-sig-val.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -91,140 +91,113 @@ struct encode_tests_st {
struct encode_tests_st encode_tests[] = {
{
.name = "test1",
- .sig =
- {(unsigned char *)
- "\x30\x46\x02\x21\x00\xe8\xa4\x26\x96\x2c\x32\xc6\x92\x55\x71\x31\xd7\x10\x35\x92\x60\x85\x34\xf0\x65\x03\x08\x2e\x38\x2b\xc8\x28\x67\xde\x10\x7c\xf5\x02\x21\x00\xc9\x8e\x56\x4f\xb1\x62\xe1\x74\xbe\x8c\x9d\xff\x04\x88\x75\x76\x63\x91\x8a\xd6\x9d\x41\x76\xef\xe2\xb5\x8e\xbb\xa8\x88\xba\x9f",
- 72},
- .r =
- {(unsigned char *)
- "\x00\xe8\xa4\x26\x96\x2c\x32\xc6\x92\x55\x71\x31\xd7\x10\x35\x92\x60\x85\x34\xf0\x65\x03\x08\x2e\x38\x2b\xc8\x28\x67\xde\x10\x7c\xf5",
- 33},
- .s =
- {(unsigned char *)
- "\x00\xc9\x8e\x56\x4f\xb1\x62\xe1\x74\xbe\x8c\x9d\xff\x04\x88\x75\x76\x63\x91\x8a\xd6\x9d\x41\x76\xef\xe2\xb5\x8e\xbb\xa8\x88\xba\x9f",
- 33}
+ .sig = {(unsigned char *)
+ "\x30\x46\x02\x21\x00\xe8\xa4\x26\x96\x2c\x32\xc6\x92\x55\x71\x31\xd7\x10\x35\x92\x60\x85\x34\xf0\x65\x03\x08\x2e\x38\x2b\xc8\x28\x67\xde\x10\x7c\xf5\x02\x21\x00\xc9\x8e\x56\x4f\xb1\x62\xe1\x74\xbe\x8c\x9d\xff\x04\x88\x75\x76\x63\x91\x8a\xd6\x9d\x41\x76\xef\xe2\xb5\x8e\xbb\xa8\x88\xba\x9f",
+ 72},
+ .r = {(unsigned char *)
+ "\x00\xe8\xa4\x26\x96\x2c\x32\xc6\x92\x55\x71\x31\xd7\x10\x35\x92\x60\x85\x34\xf0\x65\x03\x08\x2e\x38\x2b\xc8\x28\x67\xde\x10\x7c\xf5",
+ 33},
+ .s = {(unsigned char *)
+ "\x00\xc9\x8e\x56\x4f\xb1\x62\xe1\x74\xbe\x8c\x9d\xff\x04\x88\x75\x76\x63\x91\x8a\xd6\x9d\x41\x76\xef\xe2\xb5\x8e\xbb\xa8\x88\xba\x9f",
+ 33}
},
{
.name = "test2",
- .sig =
- {(unsigned char *)
- "\x30\x44\x02\x20\x07\xd2\x7f\xd0\xef\x77\xa8\x29\x31\x9b\x46\x01\xb3\xaf\x66\xac\x33\x48\x15\x94\xb8\x80\xa1\x97\x71\x8f\x4a\x32\x43\x12\xec\x1f\x02\x20\x37\x06\x13\xbe\x4c\x6d\xdd\xcd\xa1\x4c\x88\xc5\x66\x85\x81\xf5\x50\x41\xb1\x4a\xee\x29\xce\x73\x2c\x09\xff\xba\xe3\x5e\x8a\x12",
- 70},
- .r =
- {(unsigned char *)
- "\x07\xd2\x7f\xd0\xef\x77\xa8\x29\x31\x9b\x46\x01\xb3\xaf\x66\xac\x33\x48\x15\x94\xb8\x80\xa1\x97\x71\x8f\x4a\x32\x43\x12\xec\x1f",
- 32},
- .s =
- {(unsigned char *)
- "\x37\x06\x13\xbe\x4c\x6d\xdd\xcd\xa1\x4c\x88\xc5\x66\x85\x81\xf5\x50\x41\xb1\x4a\xee\x29\xce\x73\x2c\x09\xff\xba\xe3\x5e\x8a\x12",
- 32}
+ .sig = {(unsigned char *)
+ "\x30\x44\x02\x20\x07\xd2\x7f\xd0\xef\x77\xa8\x29\x31\x9b\x46\x01\xb3\xaf\x66\xac\x33\x48\x15\x94\xb8\x80\xa1\x97\x71\x8f\x4a\x32\x43\x12\xec\x1f\x02\x20\x37\x06\x13\xbe\x4c\x6d\xdd\xcd\xa1\x4c\x88\xc5\x66\x85\x81\xf5\x50\x41\xb1\x4a\xee\x29\xce\x73\x2c\x09\xff\xba\xe3\x5e\x8a\x12",
+ 70},
+ .r = {(unsigned char *)
+ "\x07\xd2\x7f\xd0\xef\x77\xa8\x29\x31\x9b\x46\x01\xb3\xaf\x66\xac\x33\x48\x15\x94\xb8\x80\xa1\x97\x71\x8f\x4a\x32\x43\x12\xec\x1f",
+ 32},
+ .s = {(unsigned char *)
+ "\x37\x06\x13\xbe\x4c\x6d\xdd\xcd\xa1\x4c\x88\xc5\x66\x85\x81\xf5\x50\x41\xb1\x4a\xee\x29\xce\x73\x2c\x09\xff\xba\xe3\x5e\x8a\x12",
+ 32}
},
{
.name = "test3",
- .sig =
- {(unsigned char *)
- "\x30\x44\x02\x20\x57\x53\x71\xfd\x9c\xb5\x96\xc2\xc5\xc7\x59\xce\x2f\xc2\xbe\x8f\xdc\x22\xf9\xab\x38\xdc\x57\x81\xfb\x34\x78\x12\xae\x88\x9a\x50\x02\x20\x60\x6b\xd4\x5b\xd6\x32\x05\xae\x1f\xe6\x08\xf4\x73\x0f\x42\xbc\x32\x55\x1f\x8d\xea\x81\xec\x2b\x4a\x0b\x8c\x0f\xb1\xbe\x5f\x9b",
- 70},
- .r =
- {(unsigned char *)
- "\x57\x53\x71\xfd\x9c\xb5\x96\xc2\xc5\xc7\x59\xce\x2f\xc2\xbe\x8f\xdc\x22\xf9\xab\x38\xdc\x57\x81\xfb\x34\x78\x12\xae\x88\x9a\x50",
- 32},
- .s =
- {(unsigned char *)
- "\x60\x6b\xd4\x5b\xd6\x32\x05\xae\x1f\xe6\x08\xf4\x73\x0f\x42\xbc\x32\x55\x1f\x8d\xea\x81\xec\x2b\x4a\x0b\x8c\x0f\xb1\xbe\x5f\x9b",
- 32}
+ .sig = {(unsigned char *)
+ "\x30\x44\x02\x20\x57\x53\x71\xfd\x9c\xb5\x96\xc2\xc5\xc7\x59\xce\x2f\xc2\xbe\x8f\xdc\x22\xf9\xab\x38\xdc\x57\x81\xfb\x34\x78\x12\xae\x88\x9a\x50\x02\x20\x60\x6b\xd4\x5b\xd6\x32\x05\xae\x1f\xe6\x08\xf4\x73\x0f\x42\xbc\x32\x55\x1f\x8d\xea\x81\xec\x2b\x4a\x0b\x8c\x0f\xb1\xbe\x5f\x9b",
+ 70},
+ .r = {(unsigned char *)
+ "\x57\x53\x71\xfd\x9c\xb5\x96\xc2\xc5\xc7\x59\xce\x2f\xc2\xbe\x8f\xdc\x22\xf9\xab\x38\xdc\x57\x81\xfb\x34\x78\x12\xae\x88\x9a\x50",
+ 32},
+ .s = {(unsigned char *)
+ "\x60\x6b\xd4\x5b\xd6\x32\x05\xae\x1f\xe6\x08\xf4\x73\x0f\x42\xbc\x32\x55\x1f\x8d\xea\x81\xec\x2b\x4a\x0b\x8c\x0f\xb1\xbe\x5f\x9b",
+ 32}
},
{
.name = "test4",
- .sig =
- {(unsigned char *)
- "\x30\x46\x02\x21\x00\xe7\xdd\x79\x58\x96\xf6\x12\x05\xc1\x7a\x44\xd6\xdf\xde\x83\xe9\xb6\x30\xa7\xff\x02\x85\x97\x34\x5a\xcd\x2f\xae\xbd\xc6\x5d\xde\x02\x21\x00\xb5\x64\xbc\x53\x97\xc5\x64\x6f\x6b\x81\xe7\x4d\xad\x36\x29\x50\xd1\x62\x91\x65\x51\xf0\xc4\xa5\x28\x80\x20\x51\x9b\xce\xcc\xc8",
- 72},
- .r =
- {(unsigned char *)
- "\x00\xe7\xdd\x79\x58\x96\xf6\x12\x05\xc1\x7a\x44\xd6\xdf\xde\x83\xe9\xb6\x30\xa7\xff\x02\x85\x97\x34\x5a\xcd\x2f\xae\xbd\xc6\x5d\xde",
- 33},
- .s =
- {(unsigned char *)
- "\x00\xb5\x64\xbc\x53\x97\xc5\x64\x6f\x6b\x81\xe7\x4d\xad\x36\x29\x50\xd1\x62\x91\x65\x51\xf0\xc4\xa5\x28\x80\x20\x51\x9b\xce\xcc\xc8",
- 33}
+ .sig = {(unsigned char *)
+ "\x30\x46\x02\x21\x00\xe7\xdd\x79\x58\x96\xf6\x12\x05\xc1\x7a\x44\xd6\xdf\xde\x83\xe9\xb6\x30\xa7\xff\x02\x85\x97\x34\x5a\xcd\x2f\xae\xbd\xc6\x5d\xde\x02\x21\x00\xb5\x64\xbc\x53\x97\xc5\x64\x6f\x6b\x81\xe7\x4d\xad\x36\x29\x50\xd1\x62\x91\x65\x51\xf0\xc4\xa5\x28\x80\x20\x51\x9b\xce\xcc\xc8",
+ 72},
+ .r = {(unsigned char *)
+ "\x00\xe7\xdd\x79\x58\x96\xf6\x12\x05\xc1\x7a\x44\xd6\xdf\xde\x83\xe9\xb6\x30\xa7\xff\x02\x85\x97\x34\x5a\xcd\x2f\xae\xbd\xc6\x5d\xde",
+ 33},
+ .s = {(unsigned char *)
+ "\x00\xb5\x64\xbc\x53\x97\xc5\x64\x6f\x6b\x81\xe7\x4d\xad\x36\x29\x50\xd1\x62\x91\x65\x51\xf0\xc4\xa5\x28\x80\x20\x51\x9b\xce\xcc\xc8",
+ 33}
},
{
.name = "test5",
- .sig =
- {(unsigned char *)
- "\x30\x45\x02\x20\x54\xce\x1b\x8d\x63\x5d\xa4\xdb\x26\x58\x1c\x8f\xf0\xb0\x6d\xf3\x2f\x6a\xdb\x83\xcf\x7e\xe7\xda\x98\x52\xa6\x5f\x1f\xc9\x50\x73\x02\x21\x00\xfa\xb9\x6a\x18\xd4\xc6\x45\x3c\xf2\xbf\xc2\x3d\x15\x0d\xc6\xd4\x0c\x78\x52\x12\xec\xb5\x3c\xf5\xe0\x8a\xbf\x6c\x11\xd3\xfd\x4f",
- 71},
- .r =
- {(unsigned char *)
- "\x54\xce\x1b\x8d\x63\x5d\xa4\xdb\x26\x58\x1c\x8f\xf0\xb0\x6d\xf3\x2f\x6a\xdb\x83\xcf\x7e\xe7\xda\x98\x52\xa6\x5f\x1f\xc9\x50\x73",
- 32},
- .s =
- {(unsigned char *)
- "\x00\xfa\xb9\x6a\x18\xd4\xc6\x45\x3c\xf2\xbf\xc2\x3d\x15\x0d\xc6\xd4\x0c\x78\x52\x12\xec\xb5\x3c\xf5\xe0\x8a\xbf\x6c\x11\xd3\xfd\x4f",
- 33}
+ .sig = {(unsigned char *)
+ "\x30\x45\x02\x20\x54\xce\x1b\x8d\x63\x5d\xa4\xdb\x26\x58\x1c\x8f\xf0\xb0\x6d\xf3\x2f\x6a\xdb\x83\xcf\x7e\xe7\xda\x98\x52\xa6\x5f\x1f\xc9\x50\x73\x02\x21\x00\xfa\xb9\x6a\x18\xd4\xc6\x45\x3c\xf2\xbf\xc2\x3d\x15\x0d\xc6\xd4\x0c\x78\x52\x12\xec\xb5\x3c\xf5\xe0\x8a\xbf\x6c\x11\xd3\xfd\x4f",
+ 71},
+ .r = {(unsigned char *)
+ "\x54\xce\x1b\x8d\x63\x5d\xa4\xdb\x26\x58\x1c\x8f\xf0\xb0\x6d\xf3\x2f\x6a\xdb\x83\xcf\x7e\xe7\xda\x98\x52\xa6\x5f\x1f\xc9\x50\x73",
+ 32},
+ .s = {(unsigned char *)
+ "\x00\xfa\xb9\x6a\x18\xd4\xc6\x45\x3c\xf2\xbf\xc2\x3d\x15\x0d\xc6\xd4\x0c\x78\x52\x12\xec\xb5\x3c\xf5\xe0\x8a\xbf\x6c\x11\xd3\xfd\x4f",
+ 33}
},
{
.name = "test6",
- .sig =
- {(unsigned char *)
- "\x30\x45\x02\x20\x3b\x77\x03\xcf\x8f\xe7\x92\xf1\x6a\x68\x3b\xcd\xb7\x21\x5b\x80\xcd\x00\x75\x65\x38\x31\x8c\xc2\x9b\x92\x6a\x1a\x02\x4b\xd8\x73\x02\x21\x00\xd9\x88\x28\x68\xae\x31\x5d\x95\xa4\x8b\x5e\x3a\x95\x24\x7b\x0d\x07\xaa\xc4\xe0\xeb\xb1\xf1\x89\xc0\xab\x4d\x88\x15\x84\x5f\x01",
- 71},
- .r =
- {(unsigned char *)
- "\x3b\x77\x03\xcf\x8f\xe7\x92\xf1\x6a\x68\x3b\xcd\xb7\x21\x5b\x80\xcd\x00\x75\x65\x38\x31\x8c\xc2\x9b\x92\x6a\x1a\x02\x4b\xd8\x73",
- 32},
- .s =
- {(unsigned char *)
- "\x00\xd9\x88\x28\x68\xae\x31\x5d\x95\xa4\x8b\x5e\x3a\x95\x24\x7b\x0d\x07\xaa\xc4\xe0\xeb\xb1\xf1\x89\xc0\xab\x4d\x88\x15\x84\x5f\x01",
- 33}
+ .sig = {(unsigned char *)
+ "\x30\x45\x02\x20\x3b\x77\x03\xcf\x8f\xe7\x92\xf1\x6a\x68\x3b\xcd\xb7\x21\x5b\x80\xcd\x00\x75\x65\x38\x31\x8c\xc2\x9b\x92\x6a\x1a\x02\x4b\xd8\x73\x02\x21\x00\xd9\x88\x28\x68\xae\x31\x5d\x95\xa4\x8b\x5e\x3a\x95\x24\x7b\x0d\x07\xaa\xc4\xe0\xeb\xb1\xf1\x89\xc0\xab\x4d\x88\x15\x84\x5f\x01",
+ 71},
+ .r = {(unsigned char *)
+ "\x3b\x77\x03\xcf\x8f\xe7\x92\xf1\x6a\x68\x3b\xcd\xb7\x21\x5b\x80\xcd\x00\x75\x65\x38\x31\x8c\xc2\x9b\x92\x6a\x1a\x02\x4b\xd8\x73",
+ 32},
+ .s = {(unsigned char *)
+ "\x00\xd9\x88\x28\x68\xae\x31\x5d\x95\xa4\x8b\x5e\x3a\x95\x24\x7b\x0d\x07\xaa\xc4\xe0\xeb\xb1\xf1\x89\xc0\xab\x4d\x88\x15\x84\x5f\x01",
+ 33}
},
{
.name = "test7",
- .sig =
- {(unsigned char *)
- "\x30\x45\x02\x20\x22\xa1\xbf\x7d\xcd\x7b\x5e\xab\xa0\x08\x20\xe5\xcc\x22\x34\x61\xf1\x1f\xd0\x3a\x32\xc3\x61\x19\xcf\xe4\xeb\xff\x66\xe6\x51\xa1\x02\x21\x00\x9d\x62\xcb\x04\x3e\xb6\x1f\xc1\x2e\x52\xd4\x73\x7f\xbd\xa5\x9c\x29\x49\x75\x6d\x08\xf9\xcb\x74\xd7\x41\xdc\xcb\x66\x4d\x9a\x77",
- 71},
- .r =
- {(unsigned char *)
- "\x22\xa1\xbf\x7d\xcd\x7b\x5e\xab\xa0\x08\x20\xe5\xcc\x22\x34\x61\xf1\x1f\xd0\x3a\x32\xc3\x61\x19\xcf\xe4\xeb\xff\x66\xe6\x51\xa1",
- 32},
- .s =
- {(unsigned char *)
- "\x00\x9d\x62\xcb\x04\x3e\xb6\x1f\xc1\x2e\x52\xd4\x73\x7f\xbd\xa5\x9c\x29\x49\x75\x6d\x08\xf9\xcb\x74\xd7\x41\xdc\xcb\x66\x4d\x9a\x77",
- 33}
+ .sig = {(unsigned char *)
+ "\x30\x45\x02\x20\x22\xa1\xbf\x7d\xcd\x7b\x5e\xab\xa0\x08\x20\xe5\xcc\x22\x34\x61\xf1\x1f\xd0\x3a\x32\xc3\x61\x19\xcf\xe4\xeb\xff\x66\xe6\x51\xa1\x02\x21\x00\x9d\x62\xcb\x04\x3e\xb6\x1f\xc1\x2e\x52\xd4\x73\x7f\xbd\xa5\x9c\x29\x49\x75\x6d\x08\xf9\xcb\x74\xd7\x41\xdc\xcb\x66\x4d\x9a\x77",
+ 71},
+ .r = {(unsigned char *)
+ "\x22\xa1\xbf\x7d\xcd\x7b\x5e\xab\xa0\x08\x20\xe5\xcc\x22\x34\x61\xf1\x1f\xd0\x3a\x32\xc3\x61\x19\xcf\xe4\xeb\xff\x66\xe6\x51\xa1",
+ 32},
+ .s = {(unsigned char *)
+ "\x00\x9d\x62\xcb\x04\x3e\xb6\x1f\xc1\x2e\x52\xd4\x73\x7f\xbd\xa5\x9c\x29\x49\x75\x6d\x08\xf9\xcb\x74\xd7\x41\xdc\xcb\x66\x4d\x9a\x77",
+ 33}
},
{
.name = "test8",
- .sig =
- {(unsigned char *)
- "\x30\x44\x02\x20\x41\xc9\x32\x16\x2e\x6f\x0c\x1f\x0f\x81\xc0\x0f\x01\x50\x31\x75\x10\x55\x25\x45\x2a\x75\xb1\xdf\x91\x8e\xdf\x24\x30\xf2\xa8\x5f\x02\x20\x07\x80\xa7\x9b\xb8\x1c\x4f\x6e\xc4\x97\x5c\xb7\x9e\x61\x2a\xf0\xfc\x16\xdd\xe7\xa3\xcc\x15\x99\x68\x08\x8e\x85\x60\x9d\x34\xf8",
- 70},
- .r =
- {(unsigned char *)
- "\x41\xc9\x32\x16\x2e\x6f\x0c\x1f\x0f\x81\xc0\x0f\x01\x50\x31\x75\x10\x55\x25\x45\x2a\x75\xb1\xdf\x91\x8e\xdf\x24\x30\xf2\xa8\x5f",
- 32},
- .s =
- {(unsigned char *)
- "\x07\x80\xa7\x9b\xb8\x1c\x4f\x6e\xc4\x97\x5c\xb7\x9e\x61\x2a\xf0\xfc\x16\xdd\xe7\xa3\xcc\x15\x99\x68\x08\x8e\x85\x60\x9d\x34\xf8",
- 32}
+ .sig = {(unsigned char *)
+ "\x30\x44\x02\x20\x41\xc9\x32\x16\x2e\x6f\x0c\x1f\x0f\x81\xc0\x0f\x01\x50\x31\x75\x10\x55\x25\x45\x2a\x75\xb1\xdf\x91\x8e\xdf\x24\x30\xf2\xa8\x5f\x02\x20\x07\x80\xa7\x9b\xb8\x1c\x4f\x6e\xc4\x97\x5c\xb7\x9e\x61\x2a\xf0\xfc\x16\xdd\xe7\xa3\xcc\x15\x99\x68\x08\x8e\x85\x60\x9d\x34\xf8",
+ 70},
+ .r = {(unsigned char *)
+ "\x41\xc9\x32\x16\x2e\x6f\x0c\x1f\x0f\x81\xc0\x0f\x01\x50\x31\x75\x10\x55\x25\x45\x2a\x75\xb1\xdf\x91\x8e\xdf\x24\x30\xf2\xa8\x5f",
+ 32},
+ .s = {(unsigned char *)
+ "\x07\x80\xa7\x9b\xb8\x1c\x4f\x6e\xc4\x97\x5c\xb7\x9e\x61\x2a\xf0\xfc\x16\xdd\xe7\xa3\xcc\x15\x99\x68\x08\x8e\x85\x60\x9d\x34\xf8",
+ 32}
},
{
.name = "test9",
- .sig =
- {(unsigned char *)
- "\x30\x46\x02\x21\x00\xbe\xa1\x01\x12\x64\x1d\x66\x5a\x68\x4a\xa0\xd5\x7e\x3e\x0c\x83\x51\xaa\x21\x9a\x0f\x7b\x38\xf0\xc0\x8b\xc5\xba\xfe\x25\x83\x51\x02\x21\x00\xfb\xea\x25\x74\x78\xd3\xaa\x91\x7b\xc8\x49\x26\x22\x26\xc7\x72\x6b\x25\xfd\x05\xac\x71\x5d\xeb\x1d\xc5\xaa\x4e\xc9\x6e\x34\xb5",
- 72},
- .r =
- {(unsigned char *)
- "\x00\xbe\xa1\x01\x12\x64\x1d\x66\x5a\x68\x4a\xa0\xd5\x7e\x3e\x0c\x83\x51\xaa\x21\x9a\x0f\x7b\x38\xf0\xc0\x8b\xc5\xba\xfe\x25\x83\x51",
- 33},
- .s =
- {(unsigned char *)
- "\x00\xfb\xea\x25\x74\x78\xd3\xaa\x91\x7b\xc8\x49\x26\x22\x26\xc7\x72\x6b\x25\xfd\x05\xac\x71\x5d\xeb\x1d\xc5\xaa\x4e\xc9\x6e\x34\xb5",
- 33}
+ .sig = {(unsigned char *)
+ "\x30\x46\x02\x21\x00\xbe\xa1\x01\x12\x64\x1d\x66\x5a\x68\x4a\xa0\xd5\x7e\x3e\x0c\x83\x51\xaa\x21\x9a\x0f\x7b\x38\xf0\xc0\x8b\xc5\xba\xfe\x25\x83\x51\x02\x21\x00\xfb\xea\x25\x74\x78\xd3\xaa\x91\x7b\xc8\x49\x26\x22\x26\xc7\x72\x6b\x25\xfd\x05\xac\x71\x5d\xeb\x1d\xc5\xaa\x4e\xc9\x6e\x34\xb5",
+ 72},
+ .r = {(unsigned char *)
+ "\x00\xbe\xa1\x01\x12\x64\x1d\x66\x5a\x68\x4a\xa0\xd5\x7e\x3e\x0c\x83\x51\xaa\x21\x9a\x0f\x7b\x38\xf0\xc0\x8b\xc5\xba\xfe\x25\x83\x51",
+ 33},
+ .s = {(unsigned char *)
+ "\x00\xfb\xea\x25\x74\x78\xd3\xaa\x91\x7b\xc8\x49\x26\x22\x26\xc7\x72\x6b\x25\xfd\x05\xac\x71\x5d\xeb\x1d\xc5\xaa\x4e\xc9\x6e\x34\xb5",
+ 33}
}
};
diff --git a/tests/dtls-client-with-seccomp.c b/tests/dtls-client-with-seccomp.c
index 4459d2196d..b738b0c554 100644
--- a/tests/dtls-client-with-seccomp.c
+++ b/tests/dtls-client-with-seccomp.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -62,12 +62,11 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
return send(fd, data, len, 0);
}
@@ -101,9 +100,7 @@ static void client(int fd, const char *prio)
gnutls_handshake_set_timeout(session, get_timeout());
/* Use default priorities */
- assert(gnutls_priority_set_direct(session,
- prio,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -132,13 +129,12 @@ static void client(int fd, const char *prio)
(gnutls_protocol_get_version(session)));
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_recv(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -147,10 +143,11 @@ static void client(int fd, const char *prio)
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
- end:
+ end:
close(fd);
@@ -161,7 +158,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -193,8 +189,8 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&xcred);
ret = gnutls_certificate_set_x509_key_mem(xcred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -205,9 +201,7 @@ static void server(int fd, const char *prio)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session,
- prio,
- NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -238,7 +232,7 @@ static void server(int fd, const char *prio)
memset(buffer, 1, sizeof(buffer));
do {
- ret = gnutls_record_send(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_send(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
@@ -251,7 +245,8 @@ static void server(int fd, const char *prio)
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
close(fd);
@@ -265,7 +260,7 @@ static void server(int fd, const char *prio)
success("server: finished\n");
}
-static
+static
void run(const char *name, const char *prio)
{
int fd[2];
diff --git a/tests/dtls-etm.c b/tests/dtls-etm.c
index 00d03fbd62..86e613ff3b 100644
--- a/tests/dtls-etm.c
+++ b/tests/dtls-etm.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "utils.h"
-#include "cert-common.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "utils.h"
+# include "cert-common.h"
static void terminate(void);
@@ -68,7 +68,7 @@ static void client_log_func(int level, const char *str)
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio, unsigned etm)
{
@@ -91,10 +91,10 @@ static void client(int fd, const char *prio, unsigned etm)
/* Initialize TLS session
*/
- gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_DATAGRAM);
+ gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM);
/* Use default priorities */
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the anonymous credentials to the current session
*/
@@ -132,10 +132,13 @@ static void client(int fd, const char *prio, unsigned etm)
exit(1);
}
- if (etm != 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
+ if (etm != 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
fail("client: EtM was not negotiated with %s!\n", prio);
exit(1);
- } else if (etm == 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) != 0)) {
+ } else if (etm == 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM)
+ != 0)) {
fail("client: EtM was negotiated with %s!\n", prio);
exit(1);
}
@@ -143,14 +146,12 @@ static void client(int fd, const char *prio, unsigned etm)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -161,7 +162,7 @@ static void client(int fd, const char *prio, unsigned etm)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -173,7 +174,6 @@ static void client(int fd, const char *prio, unsigned etm)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -191,7 +191,7 @@ static void server(int fd, const char *prio, unsigned etm)
gnutls_session_t session;
gnutls_anon_server_credentials_t anoncred;
gnutls_certificate_credentials_t x509_cred;
- unsigned to_send = sizeof(buffer)/4;
+ unsigned to_send = sizeof(buffer) / 4;
/* this must be called once in the program
*/
@@ -205,12 +205,11 @@ static void server(int fd, const char *prio, unsigned etm)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
- gnutls_init(&session, GNUTLS_SERVER|GNUTLS_DATAGRAM);
+ gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
/* avoid calling all the priority functions, since the defaults
* are adequate.
@@ -241,10 +240,13 @@ static void server(int fd, const char *prio, unsigned etm)
exit(1);
}
- if (etm != 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
+ if (etm != 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
fail("server: EtM was not negotiated with %s!\n", prio);
exit(1);
- } else if (etm == 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) != 0)) {
+ } else if (etm == 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM)
+ != 0)) {
fail("server: EtM was negotiated with %s!\n", prio);
exit(1);
}
@@ -260,10 +262,8 @@ static void server(int fd, const char *prio, unsigned etm)
do {
do {
ret =
- gnutls_record_send(session, buffer,
- sizeof(buffer));
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ gnutls_record_send(session, buffer, sizeof(buffer));
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("Error sending %d byte packet: %s\n", to_send,
@@ -321,9 +321,9 @@ static void start(const char *prio, unsigned etm)
}
}
-#define AES_CBC "NONE:+VERS-DTLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CBC_SHA256 "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_GCM "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC "NONE:+VERS-DTLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC_SHA256 "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_GCM "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
static void ch_handler(int sig)
{
diff --git a/tests/dtls-handshake-versions.c b/tests/dtls-handshake-versions.c
index 8dfcbcb49b..a447e9e76e 100644
--- a/tests/dtls-handshake-versions.c
+++ b/tests/dtls-handshake-versions.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -37,8 +37,8 @@
* hello TLS versions */
void _gnutls_hello_set_default_version(gnutls_session_t session,
- unsigned char major,
- unsigned char minor);
+ unsigned char major,
+ unsigned char minor);
const char *side;
@@ -70,13 +70,10 @@ static void try(unsigned char major, unsigned char minor, int ret1, int ret2)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
- gnutls_init(&server, GNUTLS_SERVER|GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_init(&server, GNUTLS_SERVER | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- gnutls_priority_set_direct(server,
- "NORMAL",
- NULL);
+ gnutls_priority_set_direct(server, "NORMAL", NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_pull_timeout_function(server,
@@ -89,16 +86,20 @@ static void try(unsigned char major, unsigned char minor, int ret1, int ret2)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
- ret = gnutls_init(&client, GNUTLS_CLIENT|GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
+ ret =
+ gnutls_init(&client,
+ GNUTLS_CLIENT | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
if (ret < 0)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
diff --git a/tests/dtls-max-record.c b/tests/dtls-max-record.c
index e6c1257f19..d37f226b8f 100644
--- a/tests/dtls-max-record.c
+++ b/tests/dtls-max-record.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -74,13 +74,10 @@ void run(const char *prio)
&server2_cert, &server2_key,
GNUTLS_X509_FMT_PEM);
- gnutls_init(&server, GNUTLS_SERVER|GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_init(&server, GNUTLS_SERVER | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- assert(gnutls_priority_set_direct(server,
- prio,
- NULL)>=0);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_pull_timeout_function(server,
@@ -93,16 +90,20 @@ void run(const char *prio)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
- ret = gnutls_init(&client, GNUTLS_CLIENT|GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
+ ret =
+ gnutls_init(&client,
+ GNUTLS_CLIENT | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
if (ret < 0)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
diff --git a/tests/dtls-pthread.c b/tests/dtls-pthread.c
index 9ca8b0a796..2fa486b0e7 100644
--- a/tests/dtls-pthread.c
+++ b/tests/dtls-pthread.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -67,10 +67,10 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define MSG "hello1111"
-#define MSG2 "xxxxxxxxxxxx"
+# define MSG "hello1111"
+# define MSG2 "xxxxxxxxxxxx"
-#define NO_MSGS 128
+# define NO_MSGS 128
static void *recv_thread(void *arg)
{
@@ -84,15 +84,16 @@ static void *recv_thread(void *arg)
gnutls_protocol_get_name
(gnutls_protocol_get_version(session)));
- for (i=0;i<NO_MSGS;i++) {
+ for (i = 0; i < NO_MSGS; i++) {
/* the peer should reflect our messages */
do {
ret = gnutls_record_recv(session, buf, sizeof(buf));
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0)
fail("client: recv failed: %s\n", gnutls_strerror(ret));
- if (ret != sizeof(MSG)-1 || memcmp(buf, MSG, sizeof(MSG)-1) != 0) {
- fail("client: recv failed; not the expected values (got: %d, exp: %d)\n", ret, (int)sizeof(MSG)-1);
+ if (ret != sizeof(MSG) - 1
+ || memcmp(buf, MSG, sizeof(MSG) - 1) != 0) {
+ fail("client: recv failed; not the expected values (got: %d, exp: %d)\n", ret, (int)sizeof(MSG) - 1);
}
if (debug)
@@ -102,11 +103,11 @@ static void *recv_thread(void *arg)
/* final MSG is MSG2 */
do {
ret = gnutls_record_recv(session, buf, sizeof(buf));
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0)
fail("client: recv2 failed: %s\n", gnutls_strerror(ret));
- if (ret != sizeof(MSG2)-1 || memcmp(buf, MSG2, sizeof(MSG2)-1) != 0) {
+ if (ret != sizeof(MSG2) - 1 || memcmp(buf, MSG2, sizeof(MSG2) - 1) != 0) {
fail("client: recv2 failed; not the expected values\n");
}
@@ -133,30 +134,30 @@ void do_thread_stuff(gnutls_session_t session)
fail("error in pthread_create\n");
}
- for (i=0;i<NO_MSGS;i++) {
+ for (i = 0; i < NO_MSGS; i++) {
do {
- ret = gnutls_record_send(session, MSG, sizeof(MSG)-1);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
- if (ret != sizeof(MSG)-1) {
+ ret = gnutls_record_send(session, MSG, sizeof(MSG) - 1);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ if (ret != sizeof(MSG) - 1) {
fail("client: send failed: %s\n", gnutls_strerror(ret));
}
}
do {
- ret = gnutls_record_send(session, MSG2, sizeof(MSG2)-1);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
- if (ret != sizeof(MSG2)-1) {
+ ret = gnutls_record_send(session, MSG2, sizeof(MSG2) - 1);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ if (ret != sizeof(MSG2) - 1) {
fail("client: send2 failed: %s\n", gnutls_strerror(ret));
}
if (debug)
success("closing sending thread\n");
- assert(pthread_join(id, &rval)==0);
+ assert(pthread_join(id, &rval) == 0);
assert(rval == 0);
do {
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
}
static void do_reflect_stuff(gnutls_session_t session)
@@ -168,7 +169,7 @@ static void do_reflect_stuff(gnutls_session_t session)
do {
do {
ret = gnutls_record_recv(session, buf, sizeof(buf));
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("server: recv failed: %s\n", gnutls_strerror(ret));
}
@@ -184,20 +185,21 @@ static void do_reflect_stuff(gnutls_session_t session)
do {
ret = gnutls_record_send(session, buf, buf_size);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("server: send failed: %s\n", gnutls_strerror(ret));
}
if (debug)
success("reflected %d\n", ret);
- } while(1);
+ } while (1);
do {
gnutls_bye(session, GNUTLS_SHUT_WR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
}
-static void client(int fd, const char *prio, unsigned do_thread, unsigned false_start)
+static void client(int fd, const char *prio, unsigned do_thread,
+ unsigned false_start)
{
int ret;
gnutls_certificate_credentials_t x509_cred;
@@ -212,18 +214,20 @@ static void client(int fd, const char *prio, unsigned do_thread, unsigned false_
gnutls_global_set_log_level(4711);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
if (false_start)
flags |= GNUTLS_ENABLE_FALSE_START;
- assert(gnutls_init(&session, flags|GNUTLS_DATAGRAM) >= 0);
+ assert(gnutls_init(&session, flags | GNUTLS_DATAGRAM) >= 0);
gnutls_dtls_set_mtu(session, 1500);
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- assert(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred)>=0);
+ assert(gnutls_credentials_set
+ (session, GNUTLS_CRD_CERTIFICATE, x509_cred) >= 0);
gnutls_transport_set_int(session, fd);
@@ -261,24 +265,25 @@ static void server(int fd, const char *prio, unsigned do_thread)
global_init();
-#if 0
+# if 0
if (debug) {
side = "server";
gnutls_global_set_log_function(tls_log_func);
gnutls_global_set_log_level(4711);
}
-#endif
+# endif
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM)>=0);
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
+ assert(gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM) >= 0);
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
gnutls_dtls_set_mtu(session, 400);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -306,7 +311,6 @@ static void server(int fd, const char *prio, unsigned do_thread)
else
do_reflect_stuff(session);
-
close(fd);
gnutls_deinit(session);
@@ -319,7 +323,8 @@ static void server(int fd, const char *prio, unsigned do_thread)
}
static
-void run(const char *str, const char *prio, unsigned do_thread, unsigned false_start)
+void run(const char *str, const char *prio, unsigned do_thread,
+ unsigned false_start)
{
int fd[2];
int ret;
@@ -350,7 +355,7 @@ void run(const char *str, const char *prio, unsigned do_thread, unsigned false_s
check_wait_status(status);
} else {
close(fd[0]);
- server(fd[1], prio, 1-do_thread);
+ server(fd[1], prio, 1 - do_thread);
exit(0);
}
}
@@ -362,7 +367,9 @@ void doit(void)
run("default, threaded server", "NORMAL", 1, 0);
run("dtls1.2, threaded client", "NORMAL:-VERS-ALL:+VERS-DTLS1.2", 0, 0);
run("dtls1.2, threaded server", "NORMAL:-VERS-ALL:+VERS-DTLS1.2", 1, 0);
- run("dtls1.2 false start, threaded client", "NORMAL:-VERS-ALL:+VERS-DTLS1.2", 0, 1);
- run("dtls1.2 false start, threaded server", "NORMAL:-VERS-ALL:+VERS-DTLS1.2", 1, 1);
+ run("dtls1.2 false start, threaded client",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2", 0, 1);
+ run("dtls1.2 false start, threaded server",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2", 1, 1);
}
#endif /* _WIN32 */
diff --git a/tests/dtls-rehandshake-anon.c b/tests/dtls-rehandshake-anon.c
index 7d0b31c7b8..3a8c60ed59 100644
--- a/tests/dtls-rehandshake-anon.c
+++ b/tests/dtls-rehandshake-anon.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,17 +35,17 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -65,13 +65,12 @@ static void client_log_func(int level, const char *str)
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
return send(fd, data, len, 0);
}
@@ -149,14 +148,12 @@ static void client(int fd, int server_init)
} else {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
}
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (server_init && ret == GNUTLS_E_REHANDSHAKE) {
@@ -180,7 +177,7 @@ static void client(int fd, int server_init)
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -191,11 +188,9 @@ static void client(int fd, int server_init)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
-
static void terminate(void)
{
int status;
@@ -264,8 +259,7 @@ static void server(int fd, int server_init)
success("server: Sending dummy packet\n");
ret = gnutls_rehandshake(session);
if (ret < 0) {
- fail("gnutls_rehandshake: %s\n",
- gnutls_strerror(ret));
+ fail("gnutls_rehandshake: %s\n", gnutls_strerror(ret));
terminate();
}
@@ -288,8 +282,7 @@ static void server(int fd, int server_init)
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
if (debug)
@@ -305,7 +298,7 @@ static void server(int fd, int server_init)
ret = gnutls_handshake(session);
}
while (ret < 0
- && gnutls_error_is_fatal(ret) == 0);
+ && gnutls_error_is_fatal(ret) == 0);
if (ret == 0)
break;
}
@@ -318,13 +311,12 @@ static void server(int fd, int server_init)
do {
ret =
gnutls_record_send(session, buffer,
- strlen(buffer));
+ strlen(buffer));
} while (ret == GNUTLS_E_AGAIN
|| ret == GNUTLS_E_INTERRUPTED);
}
}
-
/* do not wait for the peer to close the connection.
*/
gnutls_bye(session, GNUTLS_SHUT_WR);
diff --git a/tests/dtls-rehandshake-cert-2.c b/tests/dtls-rehandshake-cert-2.c
index 167386defe..2f39ae672f 100644
--- a/tests/dtls-rehandshake-cert-2.c
+++ b/tests/dtls-rehandshake-cert-2.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <assert.h>
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -69,8 +69,8 @@ static void client_log_func(int level, const char *str)
* certificates.
*/
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
@@ -103,9 +103,7 @@ static void client(int fd, int server_init, const char *prio)
gnutls_dtls_set_mtu(session, 1500);
snprintf(buffer, sizeof(buffer), "%s:+ANON-ECDH", prio);
- assert(gnutls_priority_set_direct(session,
- buffer,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, buffer, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
@@ -136,9 +134,7 @@ static void client(int fd, int server_init, const char *prio)
/* update priorities to allow cert auth */
snprintf(buffer, sizeof(buffer), "%s:+ECDHE-RSA", prio);
- assert(gnutls_priority_set_direct(session,
- buffer,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, buffer, NULL) >= 0);
if (!server_init) {
sec_sleep(60);
@@ -239,9 +235,7 @@ static void server(int fd, int server_init, const char *prio)
* are adequate.
*/
snprintf(buffer, sizeof(buffer), "%s:+ECDHE-RSA:+ANON-ECDH", prio);
- assert(gnutls_priority_set_direct(session,
- buffer,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, buffer, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
@@ -319,7 +313,7 @@ static void server(int fd, int server_init, const char *prio)
ret = gnutls_handshake(session);
}
while (ret < 0
- && gnutls_error_is_fatal(ret) == 0);
+ && gnutls_error_is_fatal(ret) == 0);
if (ret == 0)
break;
}
@@ -332,7 +326,7 @@ static void server(int fd, int server_init, const char *prio)
do {
ret =
gnutls_record_send(session, buffer,
- strlen(buffer));
+ strlen(buffer));
} while (ret == GNUTLS_E_AGAIN
|| ret == GNUTLS_E_INTERRUPTED);
}
@@ -392,8 +386,10 @@ static void start(int server_initiated, const char *prio)
void doit(void)
{
- start(0, "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL");
- start(1, "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL");
+ start(0,
+ "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL");
+ start(1,
+ "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL");
}
#endif /* _WIN32 */
diff --git a/tests/dtls-rehandshake-cert-3.c b/tests/dtls-rehandshake-cert-3.c
index 96bf181a8c..b5f3a73ba4 100644
--- a/tests/dtls-rehandshake-cert-3.c
+++ b/tests/dtls-rehandshake-cert-3.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,23 +36,23 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <assert.h>
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
-#define MTU 1500
-#define MAX_BUF 4096
-#define MSG "Hello TLS"
+# define MTU 1500
+# define MAX_BUF 4096
+# define MSG "Hello TLS"
static int server_fd = -1;
static char pkt_buf[MAX_BUF];
@@ -125,16 +125,15 @@ static void client(int fd, const char *prio)
gnutls_dtls_set_mtu(session, MTU);
snprintf(buffer, sizeof(buffer), "%s:+ANON-ECDH", prio);
- assert(gnutls_priority_set_direct(session,
- buffer,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, buffer, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, fd);
gnutls_transport_set_push_function(session, push);
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
/* Perform the TLS handshake
*/
@@ -159,9 +158,7 @@ static void client(int fd, const char *prio)
/* update priorities to allow cert auth */
snprintf(buffer, sizeof(buffer), "%s:+ECDHE-RSA", prio);
- assert(gnutls_priority_set_direct(session,
- buffer,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, buffer, NULL) >= 0);
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
@@ -246,9 +243,7 @@ static void server(int fd, const char *prio)
* are adequate.
*/
snprintf(buffer, sizeof(buffer), "%s:+ECDHE-RSA:+ANON-ECDH", prio);
- assert(gnutls_priority_set_direct(session,
- buffer,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, buffer, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
@@ -324,7 +319,7 @@ static void server(int fd, const char *prio)
do {
ret =
gnutls_record_send(session, buffer,
- strlen(buffer));
+ strlen(buffer));
} while (ret == GNUTLS_E_AGAIN
|| ret == GNUTLS_E_INTERRUPTED);
}
@@ -385,7 +380,8 @@ static void start(const char *prio)
void doit(void)
{
- start("NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL");
+ start
+ ("NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL");
}
#endif /* _WIN32 */
diff --git a/tests/dtls-rehandshake-cert.c b/tests/dtls-rehandshake-cert.c
index 9deccc9091..cc29950a6c 100644
--- a/tests/dtls-rehandshake-cert.c
+++ b/tests/dtls-rehandshake-cert.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <assert.h>
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -68,13 +68,12 @@ static void client_log_func(int level, const char *str)
* certificates.
*/
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
return send(fd, data, len, 0);
}
@@ -102,12 +101,9 @@ static void client(int fd, int server_init, const char *prio)
/* Use default priorities */
snprintf(buffer, sizeof(buffer), "%s:+ECDHE-RSA", prio);
- assert(gnutls_priority_set_direct(session,
- buffer,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, buffer, NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, fd);
gnutls_transport_set_push_function(session, push);
@@ -150,14 +146,12 @@ static void client(int fd, int server_init, const char *prio)
} else {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
}
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (server_init && ret == GNUTLS_E_REHANDSHAKE) {
@@ -181,7 +175,7 @@ static void client(int fd, int server_init, const char *prio)
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -192,11 +186,9 @@ static void client(int fd, int server_init, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
-
static void terminate(void)
{
int status;
@@ -223,8 +215,8 @@ static void server(int fd, int server_init, const char *prio)
assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM) >= 0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
gnutls_dtls_set_mtu(session, 1500);
@@ -233,12 +225,9 @@ static void server(int fd, int server_init, const char *prio)
* are adequate.
*/
snprintf(buffer, sizeof(buffer), "%s:+ECDHE-RSA", prio);
- assert(gnutls_priority_set_direct(session,
- buffer,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, buffer, NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_transport_set_int(session, fd);
gnutls_transport_set_push_function(session, push);
@@ -270,8 +259,7 @@ static void server(int fd, int server_init, const char *prio)
success("server: Sending dummy packet\n");
ret = gnutls_rehandshake(session);
if (ret < 0) {
- fail("gnutls_rehandshake: %s\n",
- gnutls_strerror(ret));
+ fail("gnutls_rehandshake: %s\n", gnutls_strerror(ret));
terminate();
}
@@ -294,8 +282,7 @@ static void server(int fd, int server_init, const char *prio)
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
if (debug)
@@ -311,7 +298,7 @@ static void server(int fd, int server_init, const char *prio)
ret = gnutls_handshake(session);
}
while (ret < 0
- && gnutls_error_is_fatal(ret) == 0);
+ && gnutls_error_is_fatal(ret) == 0);
if (ret == 0)
break;
}
@@ -324,13 +311,12 @@ static void server(int fd, int server_init, const char *prio)
do {
ret =
gnutls_record_send(session, buffer,
- strlen(buffer));
+ strlen(buffer));
} while (ret == GNUTLS_E_AGAIN
|| ret == GNUTLS_E_INTERRUPTED);
}
}
-
/* do not wait for the peer to close the connection.
*/
gnutls_bye(session, GNUTLS_SHUT_WR);
@@ -380,8 +366,10 @@ static void start(int server_initiated, const char *prio)
void doit(void)
{
- start(0, "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL");
- start(1, "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL");
+ start(0,
+ "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL");
+ start(1,
+ "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL");
}
#endif /* _WIN32 */
diff --git a/tests/dtls-repro-20170915.c b/tests/dtls-repro-20170915.c
index c3f75cb7e7..88351c61d9 100644
--- a/tests/dtls-repro-20170915.c
+++ b/tests/dtls-repro-20170915.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -39,8 +39,12 @@ void doit(void)
{
global_init();
- dtls_try_with_key_mtu("DTLS 1.2 with cli-cert", "NONE:+VERS-DTLS1.0:+MAC-ALL:+KX-ALL:+CIPHER-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_RSA_SHA256,
- &server_repro_cert, &server_repro_key, &client_repro_cert, &client_repro_key, USE_CERT, 1452);
+ dtls_try_with_key_mtu("DTLS 1.2 with cli-cert",
+ "NONE:+VERS-DTLS1.0:+MAC-ALL:+KX-ALL:+CIPHER-ALL:+SIGN-ALL:+COMP-ALL:+CURVE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256, &server_repro_cert,
+ &server_repro_key, &client_repro_cert,
+ &client_repro_key, USE_CERT, 1452);
gnutls_global_deinit();
}
diff --git a/tests/dtls-session-ticket-lost.c b/tests/dtls-session-ticket-lost.c
index 236b303961..e174563204 100644
--- a/tests/dtls-session-ticket-lost.c
+++ b/tests/dtls-session-ticket-lost.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
/* This program is a reproducer for issue #543; the timeout
* of DTLS handshake when a NewSessionTicket is lost.
@@ -64,7 +64,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -79,9 +79,9 @@ static void client(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_DATAGRAM)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM) >= 0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -99,11 +99,11 @@ static void client(int fd, const char *prio)
success("client: Handshake was completed\n");
}
- gnutls_record_set_timeout(session, 30*1000);
+ gnutls_record_set_timeout(session, 30 * 1000);
do {
ret = gnutls_bye(session, GNUTLS_SHUT_WR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
close(fd);
@@ -112,7 +112,6 @@ static void client(int fd, const char *prio)
gnutls_certificate_free_credentials(x509_cred);
}
-
static ssize_t
server_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
@@ -121,7 +120,8 @@ server_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
if (d[13] == GNUTLS_HANDSHAKE_NEW_SESSION_TICKET) {
if (dropped == 0) {
- success("dropping message: %s\n", gnutls_handshake_description_get_name(d[13]));
+ success("dropping message: %s\n",
+ gnutls_handshake_description_get_name(d[13]));
dropped = 1;
return len;
}
@@ -145,19 +145,19 @@ static void server(int fd, const char *prio)
gnutls_global_set_log_level(6);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&session, GNUTLS_SERVER|GNUTLS_DATAGRAM)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM) >= 0);
- assert(gnutls_session_ticket_key_generate(&skey)>=0);
+ assert(gnutls_session_ticket_key_generate(&skey) >= 0);
assert(gnutls_session_ticket_enable_server(session, &skey) >= 0);
gnutls_transport_set_push_function(session, server_push);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -175,12 +175,12 @@ static void server(int fd, const char *prio)
success("server: Handshake was completed\n");
}
- gnutls_record_set_timeout(session, 30*1000);
+ gnutls_record_set_timeout(session, 30 * 1000);
success("waiting for EOF\n");
do {
ret = gnutls_record_recv(session, buffer, sizeof(buffer));
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret != 0)
fail("error waiting for EOF: %s\n", gnutls_strerror(ret));
diff --git a/tests/dtls-sliding-window.c b/tests/dtls-sliding-window.c
index 48c88cbcb1..c24e45df8c 100644
--- a/tests/dtls-sliding-window.c
+++ b/tests/dtls-sliding-window.c
@@ -78,7 +78,7 @@ static void check_dtls_window_uninit_large(void **glob_state)
RESET_WINDOW;
- t = LARGE_INT+1+64;
+ t = LARGE_INT + 1 + 64;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -133,7 +133,7 @@ static void check_dtls_window_skip1(void **glob_state)
SET_WINDOW_NEXT(0);
SET_WINDOW_LAST_RECV(1);
- for (i=2;i<256;i+=2) {
+ for (i = 2; i < 256; i += 2) {
t = i;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -149,7 +149,7 @@ static void check_dtls_window_skip3(void **glob_state)
SET_WINDOW_NEXT(0);
SET_WINDOW_LAST_RECV(1);
- for (i=5;i<256;i+=2) {
+ for (i = 5; i < 256; i += 2) {
t = i;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -190,9 +190,9 @@ static void check_dtls_window_large_21(void **glob_state)
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT);
- SET_WINDOW_LAST_RECV(LARGE_INT+2);
+ SET_WINDOW_LAST_RECV(LARGE_INT + 2);
- t = LARGE_INT+1;
+ t = LARGE_INT + 1;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -204,9 +204,9 @@ static void check_dtls_window_large_12(void **glob_state)
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT);
- SET_WINDOW_LAST_RECV(LARGE_INT+1);
+ SET_WINDOW_LAST_RECV(LARGE_INT + 1);
- t = LARGE_INT+2;
+ t = LARGE_INT + 2;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -218,9 +218,9 @@ static void check_dtls_window_large_91(void **glob_state)
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT);
- SET_WINDOW_LAST_RECV(LARGE_INT+9);
+ SET_WINDOW_LAST_RECV(LARGE_INT + 9);
- t = LARGE_INT+1;
+ t = LARGE_INT + 1;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -232,9 +232,9 @@ static void check_dtls_window_large_19(void **glob_state)
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT);
- SET_WINDOW_LAST_RECV(LARGE_INT+1);
+ SET_WINDOW_LAST_RECV(LARGE_INT + 1);
- t = LARGE_INT+9;
+ t = LARGE_INT + 9;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -246,9 +246,9 @@ static void check_dtls_window_very_large_12(void **glob_state)
RESET_WINDOW;
SET_WINDOW_NEXT(INT_OVER_32_BITS);
- SET_WINDOW_LAST_RECV(INT_OVER_32_BITS+1);
+ SET_WINDOW_LAST_RECV(INT_OVER_32_BITS + 1);
- t = INT_OVER_32_BITS+2;
+ t = INT_OVER_32_BITS + 2;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -260,9 +260,9 @@ static void check_dtls_window_very_large_91(void **glob_state)
RESET_WINDOW;
SET_WINDOW_NEXT(INT_OVER_32_BITS);
- SET_WINDOW_LAST_RECV(INT_OVER_32_BITS+9);
+ SET_WINDOW_LAST_RECV(INT_OVER_32_BITS + 9);
- t = INT_OVER_32_BITS+1;
+ t = INT_OVER_32_BITS + 1;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -274,9 +274,9 @@ static void check_dtls_window_very_large_19(void **glob_state)
RESET_WINDOW;
SET_WINDOW_NEXT(INT_OVER_32_BITS);
- SET_WINDOW_LAST_RECV(INT_OVER_32_BITS+1);
+ SET_WINDOW_LAST_RECV(INT_OVER_32_BITS + 1);
- t = INT_OVER_32_BITS+9;
+ t = INT_OVER_32_BITS + 9;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -290,7 +290,7 @@ static void check_dtls_window_outside(void **glob_state)
SET_WINDOW_NEXT(0);
SET_WINDOW_LAST_RECV(1);
- t = 1+64;
+ t = 1 + 64;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -302,9 +302,9 @@ static void check_dtls_window_large_outside(void **glob_state)
RESET_WINDOW;
SET_WINDOW_NEXT(LARGE_INT);
- SET_WINDOW_LAST_RECV(LARGE_INT+1);
+ SET_WINDOW_LAST_RECV(LARGE_INT + 1);
- t = LARGE_INT+1+64;
+ t = LARGE_INT + 1 + 64;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -316,9 +316,9 @@ static void check_dtls_window_very_large_outside(void **glob_state)
RESET_WINDOW;
SET_WINDOW_NEXT(INT_OVER_32_BITS);
- SET_WINDOW_LAST_RECV(INT_OVER_32_BITS+1);
+ SET_WINDOW_LAST_RECV(INT_OVER_32_BITS + 1);
- t = INT_OVER_32_BITS+1+64;
+ t = INT_OVER_32_BITS + 1 + 64;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -329,19 +329,19 @@ static void check_dtls_window_dup1(void **glob_state)
uint64_t t;
RESET_WINDOW;
- SET_WINDOW_NEXT(LARGE_INT-1);
+ SET_WINDOW_NEXT(LARGE_INT - 1);
SET_WINDOW_LAST_RECV(LARGE_INT);
t = LARGE_INT;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+1;
+ t = LARGE_INT + 1;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+16;
+ t = LARGE_INT + 16;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+1;
+ t = LARGE_INT + 1;
assert_int_equal(_dtls_record_check(&state, t), -3);
}
@@ -351,19 +351,19 @@ static void check_dtls_window_dup2(void **glob_state)
uint64_t t;
RESET_WINDOW;
- SET_WINDOW_NEXT(LARGE_INT-1);
+ SET_WINDOW_NEXT(LARGE_INT - 1);
SET_WINDOW_LAST_RECV(LARGE_INT);
t = LARGE_INT;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+16;
+ t = LARGE_INT + 16;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+1;
+ t = LARGE_INT + 1;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+16;
+ t = LARGE_INT + 16;
assert_int_equal(_dtls_record_check(&state, t), -3);
}
@@ -373,25 +373,25 @@ static void check_dtls_window_dup3(void **glob_state)
uint64_t t;
RESET_WINDOW;
- SET_WINDOW_NEXT(LARGE_INT-1);
+ SET_WINDOW_NEXT(LARGE_INT - 1);
SET_WINDOW_LAST_RECV(LARGE_INT);
t = LARGE_INT;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+16;
+ t = LARGE_INT + 16;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+15;
+ t = LARGE_INT + 15;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+14;
+ t = LARGE_INT + 14;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+5;
+ t = LARGE_INT + 5;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+5;
+ t = LARGE_INT + 5;
assert_int_equal(_dtls_record_check(&state, t), -3);
}
@@ -401,37 +401,37 @@ static void check_dtls_window_out_of_order(void **glob_state)
uint64_t t;
RESET_WINDOW;
- SET_WINDOW_NEXT(LARGE_INT-1);
+ SET_WINDOW_NEXT(LARGE_INT - 1);
SET_WINDOW_LAST_RECV(LARGE_INT);
t = LARGE_INT;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+8;
+ t = LARGE_INT + 8;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+7;
+ t = LARGE_INT + 7;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+6;
+ t = LARGE_INT + 6;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+5;
+ t = LARGE_INT + 5;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+4;
+ t = LARGE_INT + 4;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+3;
+ t = LARGE_INT + 3;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+2;
+ t = LARGE_INT + 2;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+1;
+ t = LARGE_INT + 1;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = LARGE_INT+9;
+ t = LARGE_INT + 9;
assert_int_equal(_dtls_record_check(&state, t), 0);
}
@@ -441,13 +441,13 @@ static void check_dtls_window_epoch_higher(void **glob_state)
uint64_t t;
RESET_WINDOW;
- SET_WINDOW_NEXT(LARGE_INT-1);
+ SET_WINDOW_NEXT(LARGE_INT - 1);
SET_WINDOW_LAST_RECV(LARGE_INT);
t = LARGE_INT;
assert_int_equal(_dtls_record_check(&state, t), 0);
- t = (LARGE_INT+8)|0x1000000000000LL;
+ t = (LARGE_INT + 8) | 0x1000000000000LL;
assert_int_equal(_dtls_record_check(&state, t), -1);
}
@@ -473,7 +473,6 @@ static void check_dtls_window_epoch_lower(void **glob_state)
assert_int_equal(_dtls_record_check(&state, t), -1);
}
-
int main(void)
{
const struct CMUnitTest tests[] = {
diff --git a/tests/dtls-with-seccomp.c b/tests/dtls-with-seccomp.c
index 86495ae675..8cee86b74f 100644
--- a/tests/dtls-with-seccomp.c
+++ b/tests/dtls-with-seccomp.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -62,12 +62,11 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
return send(fd, data, len, 0);
}
@@ -123,13 +122,12 @@ static void client(int fd, const char *prio)
(gnutls_protocol_get_version(session)));
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_recv(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -138,10 +136,11 @@ static void client(int fd, const char *prio)
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
- end:
+ end:
close(fd);
@@ -152,7 +151,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -184,8 +182,8 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&xcred);
ret = gnutls_certificate_set_x509_key_mem(xcred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -230,7 +228,7 @@ static void server(int fd, const char *prio)
memset(buffer, 1, sizeof(buffer));
do {
- ret = gnutls_record_send(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_send(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
@@ -243,7 +241,8 @@ static void server(int fd, const char *prio)
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
close(fd);
@@ -257,7 +256,7 @@ static void server(int fd, const char *prio)
success("server: finished\n");
}
-static
+static
void run(const char *name, const char *prio)
{
int fd[2];
@@ -302,5 +301,4 @@ void doit(void)
run("default", "NORMAL");
}
-
#endif /* _WIN32 */
diff --git a/tests/dtls/dtls-stress.c b/tests/dtls/dtls-stress.c
index e1b6dc9a17..088c84723d 100644
--- a/tests/dtls/dtls-stress.c
+++ b/tests/dtls/dtls-stress.c
@@ -107,7 +107,7 @@
// {{{ types
-#define log(fmt, ...) \
+# define log(fmt, ...) \
if (debug) fprintf(stdout, "%i %s| "fmt, run_id, role_name, ##__VA_ARGS__)
typedef struct {
@@ -121,10 +121,10 @@ typedef struct {
int count;
} filter_permute_state_t;
-typedef void (*filter_fn) (gnutls_transport_ptr_t, const unsigned char *,
- size_t);
+typedef void (*filter_fn)(gnutls_transport_ptr_t, const unsigned char *,
+ size_t);
-typedef int (*match_fn) (const unsigned char *, size_t);
+typedef int (*match_fn)(const unsigned char *, size_t);
enum role { SERVER, CLIENT };
@@ -144,7 +144,7 @@ static int permutations3[6][3]
static const char *permutation_names3[]
= { "012", "021", "102", "120", "201", "210", 0 };
-static int permutations5[120][5] = {
+static int permutations5[120][5] = {
{0, 1, 2, 3, 4}, {0, 2, 1, 3, 4}, {1, 0, 2, 3, 4}, {1, 2, 0, 3, 4},
{2, 0, 1, 3, 4}, {2, 1, 0, 3, 4}, {0, 1, 3, 2, 4}, {0, 2, 3, 1, 4},
{1, 0, 3, 2, 4}, {1, 2, 3, 0, 4}, {2, 0, 3, 1, 4}, {2, 1, 3, 0, 4},
@@ -232,7 +232,7 @@ static const char *filter_names_full[12]
"SFinished"
};
-#include "cert-common.h"
+# include "cert-common.h"
// }}}
@@ -240,7 +240,7 @@ static const char *filter_names_full[12]
enum role role;
-#define role_name (role == SERVER ? "server" : "client")
+# define role_name (role == SERVER ? "server" : "client")
int debug;
int nonblock;
@@ -293,8 +293,8 @@ static int _process_error(int loc, int code, int die)
return code;
}
-#define die_on_error(code) _process_error(__LINE__, code, 1)
-#define process_error(code) _process_error(__LINE__, code, 0)
+# define die_on_error(code) _process_error(__LINE__, code, 1)
+# define process_error(code) _process_error(__LINE__, code, 0)
static void _process_error_or_timeout(int loc, int err, time_t tdiff)
{
@@ -308,7 +308,7 @@ static void _process_error_or_timeout(int loc, int err, time_t tdiff)
}
}
-#define process_error_or_timeout(code, tdiff) _process_error_or_timeout(__LINE__, code, tdiff)
+# define process_error_or_timeout(code, tdiff) _process_error_or_timeout(__LINE__, code, tdiff)
static void rperror(const char *name)
{
@@ -532,8 +532,8 @@ static int match_ServerFinished(const unsigned char *buffer, size_t len)
// {{{ packet drop filters
-#define FILTER_DROP_COUNT 3
-#define DECLARE_FILTER(packet) \
+# define FILTER_DROP_COUNT 3
+# define DECLARE_FILTER(packet) \
static void filter_packet_##packet(gnutls_transport_ptr_t fd, \
const unsigned char* buffer, size_t len) \
{ \
@@ -567,7 +567,8 @@ static void filter_permute_state_run(filter_permute_state_t * state,
int packet = state->order[state->count];
if (debug > 2)
- log("running permutation for %s/%d/%d\n", state->name, packetCount, state->count);
+ log("running permutation for %s/%d/%d\n", state->name,
+ packetCount, state->count);
data = malloc(len);
assert(data);
@@ -586,7 +587,7 @@ static void filter_permute_state_run(filter_permute_state_t * state,
}
}
-#define DECLARE_PERMUTE(flight) \
+# define DECLARE_PERMUTE(flight) \
static void filter_permute_##flight(gnutls_transport_ptr_t fd, \
const unsigned char* buffer, size_t len) \
{ \
@@ -689,10 +690,10 @@ static void await(int fd, int timeout)
static void cred_init(void)
{
- assert(gnutls_certificate_allocate_credentials(&cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&cred) >= 0);
gnutls_certificate_set_x509_key_mem(cred, &cli_ca3_cert, &cli_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ GNUTLS_X509_FMT_PEM);
}
static void session_init(int sock, int server)
@@ -700,9 +701,7 @@ static void session_init(int sock, int server)
gnutls_init(&session,
GNUTLS_DATAGRAM | (server ? GNUTLS_SERVER : GNUTLS_CLIENT)
| GNUTLS_NONBLOCK * nonblock);
- gnutls_priority_set_direct(session,
- "NORMAL:+ECDHE-RSA:+ANON-ECDH",
- 0);
+ gnutls_priority_set_direct(session, "NORMAL:+ECDHE-RSA:+ANON-ECDH", 0);
gnutls_transport_set_int(session, sock);
if (full) {
@@ -713,11 +712,11 @@ static void session_init(int sock, int server)
}
} else if (server) {
gnutls_anon_server_credentials_t acred;
- assert(gnutls_anon_allocate_server_credentials(&acred)>=0);
+ assert(gnutls_anon_allocate_server_credentials(&acred) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, acred);
} else {
gnutls_anon_client_credentials_t acred;
- assert(gnutls_anon_allocate_client_credentials(&acred)>=0);
+ assert(gnutls_anon_allocate_client_credentials(&acred) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, acred);
}
@@ -733,7 +732,7 @@ static void client(int sock)
const char *line = "foobar!";
char buffer[8192];
int len, ret;
- gnutls_datum_t data = {NULL, 0};
+ gnutls_datum_t data = { NULL, 0 };
session_init(sock, 0);
@@ -761,7 +760,8 @@ static void client(int sock)
data.data = NULL;
if (debug) {
- fprintf(stdout, "%i %s| initial handshake complete\n", run_id, role_name);
+ fprintf(stdout, "%i %s| initial handshake complete\n",
+ run_id, role_name);
}
}
@@ -778,7 +778,8 @@ static void client(int sock)
process_error_or_timeout(err, time(0) - started);
if (debug) {
- fprintf(stdout, "%i %s| handshake complete\n", run_id, role_name);
+ fprintf(stdout, "%i %s| handshake complete\n", run_id,
+ role_name);
}
if (resume) {
@@ -808,7 +809,7 @@ static void client(int sock)
await(sock, -1);
len =
process_error(gnutls_record_recv
- (session, buffer, sizeof(buffer)));
+ (session, buffer, sizeof(buffer)));
} while (len < 0);
log("received data\n");
@@ -822,11 +823,11 @@ static void client(int sock)
}
-static gnutls_datum_t saved_data = {NULL, 0};
+static gnutls_datum_t saved_data = { NULL, 0 };
static gnutls_datum_t db_fetch(void *dbf, gnutls_datum_t key)
{
- gnutls_datum_t t = {NULL, 0};
+ gnutls_datum_t t = { NULL, 0 };
t.data = malloc(saved_data.size);
if (t.data == NULL)
return t;
@@ -888,7 +889,8 @@ static void server(int sock)
gnutls_db_set_ptr(session, NULL);
if (debug) {
- fprintf(stdout, "%i %s| initial handshake complete\n", run_id, role_name);
+ fprintf(stdout, "%i %s| initial handshake complete\n",
+ run_id, role_name);
}
}
@@ -923,7 +925,7 @@ static void server(int sock)
await(sock, -1);
len =
process_error(gnutls_record_recv
- (session, buffer, sizeof(buffer)));
+ (session, buffer, sizeof(buffer)));
} while (len < 0);
log("received data\n");
@@ -957,7 +959,7 @@ static void server(int sock)
// {{{ test running/handling itself
-#if 0
+# if 0
static void udp_sockpair(int *socks)
{
struct sockaddr_in6 sa =
@@ -974,7 +976,7 @@ static void udp_sockpair(int *socks)
connect(socks[1], (struct sockaddr *)&sa, sizeof(sa));
connect(socks[0], (struct sockaddr *)&sb, sizeof(sb));
}
-#endif
+# endif
static int run_test(void)
{
@@ -1014,7 +1016,7 @@ static int run_test(void)
close(fds[1]);
if (!WIFSIGNALED(status2) && WEXITSTATUS(status2) != 3) {
- return ! !WEXITSTATUS(status2);
+ return !!WEXITSTATUS(status2);
} else {
return 3;
}
@@ -1069,21 +1071,22 @@ static int run_one_test(int dropMode, int serverFinishedPermute,
if (full) {
local_filters = filters_full;
local_filter_names = filter_names_full;
- filter_count = sizeof(filters_full)/sizeof(filters_full[0]);
+ filter_count = sizeof(filters_full) / sizeof(filters_full[0]);
client_finished_permutation_names = permutation_names5;
server_finished_permutation_names = permutation_names2;
server_hello_permutation_names = permutation_names5;
} else if (resume) {
local_filters = filters_resume;
local_filter_names = filter_names_resume;
- filter_count = sizeof(filters_resume)/sizeof(filters_resume[0]);
+ filter_count =
+ sizeof(filters_resume) / sizeof(filters_resume[0]);
client_finished_permutation_names = permutation_names2;
server_finished_permutation_names = permutation_names3;
server_hello_permutation_names = NULL;
} else {
local_filters = filters;
local_filter_names = filter_names;
- filter_count = sizeof(filters)/sizeof(filters[0]);
+ filter_count = sizeof(filters) / sizeof(filters[0]);
client_finished_permutation_names = permutation_names3;
server_finished_permutation_names = permutation_names2;
server_hello_permutation_names = permutation_names3;
@@ -1157,7 +1160,8 @@ static int run_one_test(int dropMode, int serverFinishedPermute,
}
if (!resume)
- fprintf(stdout, "SHello(%s), ", server_hello_permutation_names[serverHelloPermute]);
+ fprintf(stdout, "SHello(%s), ",
+ server_hello_permutation_names[serverHelloPermute]);
fprintf(stdout, "SFinished(%s), ",
server_finished_permutation_names[serverFinishedPermute]);
fprintf(stdout, "CFinished(%s) :- ",
@@ -1362,14 +1366,14 @@ int main(int argc, const char *argv[])
run_to_end = 1;
job_limit = 1;
-#define NEXT_ARG(name) \
+# define NEXT_ARG(name) \
do { \
if (++arg >= argc) { \
fprintf(stderr, "No argument for -" #name "\n"); \
exit(8); \
} \
} while (0);
-#define FAIL_ARG(name) \
+# define FAIL_ARG(name) \
do { \
fprintf(stderr, "Invalid argument for -" #name "\n"); \
exit(8); \
@@ -1384,7 +1388,7 @@ int main(int argc, const char *argv[])
char *end;
int level;
- if (arg+1 < argc) {
+ if (arg + 1 < argc) {
level = strtol(argv[arg + 1], &end, 10);
if (*end == '\0') {
debug = level;
@@ -1433,21 +1437,24 @@ int main(int argc, const char *argv[])
}
} else if (strcmp("-full", argv[arg]) == 0) {
if (resume) {
- fprintf(stderr, "You cannot combine full with resume\n");
+ fprintf(stderr,
+ "You cannot combine full with resume\n");
exit(1);
}
full = 1;
} else if (strcmp("-resume", argv[arg]) == 0) {
if (full) {
- fprintf(stderr, "You cannot combine full with resume\n");
+ fprintf(stderr,
+ "You cannot combine full with resume\n");
exit(1);
}
resume = 1;
} else if (strcmp("-shello", argv[arg]) == 0) {
if (resume) {
- fprintf(stderr, "Please use -sfinished instead of -shello\n");
+ fprintf(stderr,
+ "Please use -sfinished instead of -shello\n");
exit(1);
}
@@ -1462,23 +1469,26 @@ int main(int argc, const char *argv[])
} else if (strcmp("-sfinished", argv[arg]) == 0) {
const char **pname;
NEXT_ARG(cfinished);
- if (resume) pname = permutation_names3;
- else pname = permutation_names2;
+ if (resume)
+ pname = permutation_names3;
+ else
+ pname = permutation_names2;
if (!parse_permutation
- (argv[arg], pname,
- &serverFinishedPermute)) {
+ (argv[arg], pname, &serverFinishedPermute)) {
FAIL_ARG(cfinished);
}
single++;
} else if (strcmp("-cfinished", argv[arg]) == 0) {
const char **pname;
NEXT_ARG(cfinished);
- if (full) pname = permutation_names5;
- else if (resume) pname = permutation_names2;
- else pname = permutation_names3;
+ if (full)
+ pname = permutation_names5;
+ else if (resume)
+ pname = permutation_names2;
+ else
+ pname = permutation_names3;
if (!parse_permutation
- (argv[arg], pname,
- &clientFinishedPermute)) {
+ (argv[arg], pname, &clientFinishedPermute)) {
FAIL_ARG(cfinished);
}
single++;
@@ -1489,13 +1499,18 @@ int main(int argc, const char *argv[])
if (full) {
local_filter_names = filter_names_full;
- filter_count = sizeof(filters_full)/sizeof(filters_full[0]);
+ filter_count =
+ sizeof(filters_full) /
+ sizeof(filters_full[0]);
} else if (resume) {
local_filter_names = filter_names_resume;
- filter_count = sizeof(filters_resume)/sizeof(filters_resume[0]);
+ filter_count =
+ sizeof(filters_resume) /
+ sizeof(filters_resume[0]);
} else {
local_filter_names = filter_names;
- filter_count = sizeof(filters)/sizeof(filters[0]);
+ filter_count =
+ sizeof(filters) / sizeof(filters[0]);
}
for (drop = 0; drop < filter_count; drop++) {
@@ -1532,7 +1547,8 @@ int main(int argc, const char *argv[])
fprintf(stderr, "multi test mode\n");
if (resume) {
- fprintf(stderr, "full run not implemented yet for resumed runs\n");
+ fprintf(stderr,
+ "full run not implemented yet for resumed runs\n");
exit(5);
}
diff --git a/tests/dtls1-2-mtu-check.c b/tests/dtls1-2-mtu-check.c
index f3297345f6..b8788dc8b2 100644
--- a/tests/dtls1-2-mtu-check.c
+++ b/tests/dtls1-2-mtu-check.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the MTU calculation in various cipher/mac algorithm combinations
@@ -46,7 +46,7 @@ static void tls_log_func(int level, const char *str)
}
static void dtls_mtu_try(const char *name, const char *client_prio,
- unsigned link_mtu, unsigned tunnel_mtu)
+ unsigned link_mtu, unsigned tunnel_mtu)
{
int ret;
/* Server stuff. */
@@ -67,40 +67,46 @@ static void dtls_mtu_try(const char *name, const char *client_prio,
reset_buffers();
/* Init server */
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM) >= 0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&server, GNUTLS_SERVER|GNUTLS_DATAGRAM|GNUTLS_NONBLOCK) >= 0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ assert(gnutls_init
+ (&server,
+ GNUTLS_SERVER | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
assert(gnutls_priority_set_direct(server,
- "NORMAL:+ANON-ECDH:+ANON-DH:+3DES-CBC:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+SHA256:+CURVE-X25519",
- NULL) >= 0);
+ "NORMAL:+ANON-ECDH:+ANON-DH:+3DES-CBC:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+SHA256:+CURVE-X25519",
+ NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
- gnutls_transport_set_pull_timeout_function(server, server_pull_timeout_func);
+ gnutls_transport_set_pull_timeout_function(server,
+ server_pull_timeout_func);
gnutls_transport_set_ptr(server, server);
/* Init client */
- ret = gnutls_init(&client, GNUTLS_CLIENT|GNUTLS_DATAGRAM|GNUTLS_NONBLOCK);
+ ret =
+ gnutls_init(&client,
+ GNUTLS_CLIENT | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
if (ret < 0)
exit(1);
assert(gnutls_certificate_allocate_credentials(&clientx509cred) >= 0);
- assert(gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_certificate_set_x509_trust_mem
+ (clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred) >= 0);
+ clientx509cred) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
- gnutls_transport_set_pull_timeout_function(client, client_pull_timeout_func);
-
+ gnutls_transport_set_pull_timeout_function(client,
+ client_pull_timeout_func);
+
gnutls_transport_set_ptr(client, client);
ret = gnutls_priority_set_direct(client, client_prio, NULL);
@@ -114,31 +120,36 @@ static void dtls_mtu_try(const char *name, const char *client_prio,
gnutls_dtls_set_mtu(client, link_mtu);
dmtu = gnutls_dtls_get_data_mtu(client);
if (dmtu != tunnel_mtu) {
- fail("%s: Calculated MTU (%d) does not match expected (%d)\n", name, dmtu, tunnel_mtu);
+ fail("%s: Calculated MTU (%d) does not match expected (%d)\n",
+ name, dmtu, tunnel_mtu);
}
{
- char *msg = gnutls_malloc(dmtu+1);
+ char *msg = gnutls_malloc(dmtu + 1);
assert(msg);
- memset(msg, 1, dmtu+1);
- ret = gnutls_record_send(client, msg, dmtu+1);
+ memset(msg, 1, dmtu + 1);
+ ret = gnutls_record_send(client, msg, dmtu + 1);
if (ret != (int)GNUTLS_E_LARGE_PACKET) {
- myfail("could send larger packet than MTU (%d), ret: %d\n", dmtu, ret);
+ myfail
+ ("could send larger packet than MTU (%d), ret: %d\n",
+ dmtu, ret);
}
ret = gnutls_record_send(client, msg, dmtu);
if (ret != (int)dmtu) {
- myfail("could not send %d bytes (sent %d)\n", dmtu, ret);
+ myfail("could not send %d bytes (sent %d)\n", dmtu,
+ ret);
}
memset(msg, 2, dmtu);
ret = gnutls_record_recv(server, msg, dmtu);
if (ret != (int)dmtu) {
- myfail("could not receive %d bytes (received %d)\n", dmtu, ret);
+ myfail("could not receive %d bytes (received %d)\n",
+ dmtu, ret);
}
- for (i=0;i<dmtu;i++)
- assert(msg[i]==1);
+ for (i = 0; i < dmtu; i++)
+ assert(msg[i] == 1);
gnutls_free(msg);
}
@@ -149,13 +160,15 @@ static void dtls_mtu_try(const char *name, const char *client_prio,
if (gnutls_mac_get(client) == GNUTLS_MAC_AEAD)
fail("%s: got MTU (%d) which does not match expected (%d)\n", name, dmtu, link_mtu);
else if (dmtu < link_mtu)
- fail("%s: got MTU (%d) smaller than expected (%d)\n", name, dmtu, link_mtu);
+ fail("%s: got MTU (%d) smaller than expected (%d)\n",
+ name, dmtu, link_mtu);
}
gnutls_dtls_set_mtu(client, link_mtu);
dmtu = gnutls_dtls_get_mtu(client);
if (dmtu != link_mtu) {
- fail("%s: got MTU (%d) which does not match expected (%d)\n", name, dmtu, link_mtu);
+ fail("%s: got MTU (%d) which does not match expected (%d)\n",
+ name, dmtu, link_mtu);
}
gnutls_bye(client, GNUTLS_SHUT_RDWR);
@@ -168,74 +181,179 @@ static void dtls_mtu_try(const char *name, const char *client_prio,
gnutls_certificate_free_credentials(clientx509cred);
}
-
void doit(void)
{
global_init();
/* check padding in CBC */
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1500, 1435);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1501", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1501, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1502", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1502, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1503", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1503, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1504", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1504, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1505", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1505, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1506", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1506, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1507", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1507, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1508", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1508, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1509", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1509, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1510", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1510, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1511", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1511, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1512", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1512, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1513", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1513, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1514", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1514, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1515", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1515, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1516", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1516, 1451);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1517", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1517, 1467);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1518", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1518, 1467);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1519", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1519, 1467);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1520", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1520, 1467);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1521", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1521, 1467);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1522", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1522, 1467);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1523", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1523, 1467);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1524", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1524, 1467);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1525", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1525, 1467);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1526", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1526, 1467);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1536", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1536, 1483);
-
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA256", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA256", 1500, 1423);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1500, 1435);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1501",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1501, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1502",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1502, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1503",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1503, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1504",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1504, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1505",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1505, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1506",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1506, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1507",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1507, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1508",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1508, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1509",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1509, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1510",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1510, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1511",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1511, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1512",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1512, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1513",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1513, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1514",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1514, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1515",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1515, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1516",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1516, 1451);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1517",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1517, 1467);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1518",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1518, 1467);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1519",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1519, 1467);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1520",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1520, 1467);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1521",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1521, 1467);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1522",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1522, 1467);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1523",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1523, 1467);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1524",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1524, 1467);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1525",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1525, 1467);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1526",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1526, 1467);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1536",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1536, 1483);
+
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA256",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA256",
+ 1500, 1423);
if (!gnutls_fips140_mode_enabled())
- dtls_mtu_try("DTLS 1.2 with 3DES-CBC-HMAC-SHA1", "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+3DES-CBC:-MAC-ALL:+SHA1", 1500, 1451);
+ dtls_mtu_try("DTLS 1.2 with 3DES-CBC-HMAC-SHA1",
+ "NORMAL:%NO_ETM:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+3DES-CBC:-MAC-ALL:+SHA1",
+ 1500, 1451);
/* check non-CBC ciphers */
- dtls_mtu_try("DTLS 1.2 with AES-128-GCM", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-GCM", 1500, 1463);
+ dtls_mtu_try("DTLS 1.2 with AES-128-GCM",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-GCM",
+ 1500, 1463);
if (!gnutls_fips140_mode_enabled())
- dtls_mtu_try("DTLS 1.2 with CHACHA20-POLY1305", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+CHACHA20-POLY1305", 1500, 1471);
+ dtls_mtu_try("DTLS 1.2 with CHACHA20-POLY1305",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+CHACHA20-POLY1305",
+ 1500, 1471);
/* check EtM CBC */
- dtls_mtu_try("DTLS 1.2/EtM with AES-128-CBC-HMAC-SHA1", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1500, 1439);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1501", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1501, 1439);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1502", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1502, 1439);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1503", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1503, 1439);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1504", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1504, 1439);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1505", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1505, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1506", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1506, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1507", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1507, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1508", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1508, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1509", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1509, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1510", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1510, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1511", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1511, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1512", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1512, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1513", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1513, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1514", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1514, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1515", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1515, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1516", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1516, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1517", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1517, 1455);
- dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1518", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1", 1518, 1455);
-
- dtls_mtu_try("DTLS 1.2/EtM with AES-128-CBC-HMAC-SHA256", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA256", 1500, 1423);
+ dtls_mtu_try("DTLS 1.2/EtM with AES-128-CBC-HMAC-SHA1",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1500, 1439);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1501",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1501, 1439);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1502",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1502, 1439);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1503",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1503, 1439);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1504",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1504, 1439);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1505",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1505, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1506",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1506, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1507",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1507, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1508",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1508, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1509",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1509, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1510",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1510, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1511",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1511, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1512",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1512, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1513",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1513, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1514",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1514, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1515",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1515, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1516",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1516, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1517",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1517, 1455);
+ dtls_mtu_try("DTLS 1.2 with AES-128-CBC-HMAC-SHA1 - mtu:1518",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA1",
+ 1518, 1455);
+
+ dtls_mtu_try("DTLS 1.2/EtM with AES-128-CBC-HMAC-SHA256",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+AES-128-CBC:-MAC-ALL:+SHA256",
+ 1500, 1423);
if (!gnutls_fips140_mode_enabled())
- dtls_mtu_try("DTLS 1.2/EtM with 3DES-CBC-HMAC-SHA1", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+3DES-CBC:-MAC-ALL:+SHA1", 1500, 1455);
+ dtls_mtu_try("DTLS 1.2/EtM with 3DES-CBC-HMAC-SHA1",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-CIPHER-ALL:+3DES-CBC:-MAC-ALL:+SHA1",
+ 1500, 1455);
gnutls_global_deinit();
}
diff --git a/tests/dtls10-cert-key-exchange.c b/tests/dtls10-cert-key-exchange.c
index c56eac4dbe..44b47b2596 100644
--- a/tests/dtls10-cert-key-exchange.c
+++ b/tests/dtls10-cert-key-exchange.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -39,26 +39,70 @@ void doit(void)
{
global_init();
- dtls_try("DTLS 1.0 with anon-ecdh", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ANON-ECDH", GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- dtls_try("DTLS 1.0 with anon-dh", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ANON-DH", GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- dtls_try("DTLS 1.0 with dhe-rsa no cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- dtls_try("DTLS 1.0 with ecdhe x25519 rsa no cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- dtls_try("DTLS 1.0 with ecdhe rsa no cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- dtls_try_with_key("DTLS 1.0 with ecdhe ecdsa no cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL, NULL, 0);
+ dtls_try("DTLS 1.0 with anon-ecdh",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ANON-ECDH",
+ GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ dtls_try("DTLS 1.0 with anon-dh",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ANON-DH",
+ GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ dtls_try("DTLS 1.0 with dhe-rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ dtls_try("DTLS 1.0 with ecdhe x25519 rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ dtls_try("DTLS 1.0 with ecdhe rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ dtls_try_with_key("DTLS 1.0 with ecdhe ecdsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, NULL, NULL, 0);
- dtls_try("DTLS 1.0 with rsa no cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- dtls_try_cli("DTLS 1.0 with dhe-rsa cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- dtls_try_cli("DTLS 1.0 with ecdhe-rsa cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- dtls_try_cli("DTLS 1.0 with rsa cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- dtls_try_with_key("DTLS 1.0 with ecdhe ecdsa cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256, GNUTLS_SIGN_RSA_SHA256,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, USE_CERT);
+ dtls_try("DTLS 1.0 with rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+RSA", GNUTLS_KX_RSA,
+ GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ dtls_try_cli("DTLS 1.0 with dhe-rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256, USE_CERT);
+ dtls_try_cli("DTLS 1.0 with ecdhe-rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256, USE_CERT);
+ dtls_try_cli("DTLS 1.0 with rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_RSA_SHA256,
+ USE_CERT);
+ dtls_try_with_key("DTLS 1.0 with ecdhe ecdsa cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256,
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ &cli_ca3_cert, &cli_ca3_key, USE_CERT);
- dtls_try_cli("DTLS 1.0 with dhe-rsa ask cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- dtls_try_cli("DTLS 1.0 with ecdhe-rsa ask cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- dtls_try_cli("DTLS 1.0 with rsa ask cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- dtls_try_with_key("DTLS 1.0 with ecdhe ecdsa cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, ASK_CERT);
+ dtls_try_cli("DTLS 1.0 with dhe-rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ dtls_try_cli("DTLS 1.0 with ecdhe-rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ dtls_try_cli("DTLS 1.0 with rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
+ ASK_CERT);
+ dtls_try_with_key("DTLS 1.0 with ecdhe ecdsa cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.0:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key,
+ ASK_CERT);
gnutls_global_deinit();
}
diff --git a/tests/dtls12-cert-key-exchange.c b/tests/dtls12-cert-key-exchange.c
index 94499203f7..9058ea2b67 100644
--- a/tests/dtls12-cert-key-exchange.c
+++ b/tests/dtls12-cert-key-exchange.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -39,37 +39,101 @@ void doit(void)
{
global_init();
- dtls_try("DTLS 1.2 with anon-ecdh", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ANON-ECDH", GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- dtls_try("DTLS 1.2 with anon-dh", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ANON-DH", GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- dtls_try("DTLS 1.2 with dhe-rsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- dtls_try("DTLS 1.2 with ecdhe x25519 rsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- dtls_try("DTLS 1.2 with ecdhe rsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- dtls_try_with_key("DTLS 1.2 with ecdhe ecdsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL, NULL, 0);
+ dtls_try("DTLS 1.2 with anon-ecdh",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ANON-ECDH",
+ GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ dtls_try("DTLS 1.2 with anon-dh",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ANON-DH",
+ GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ dtls_try("DTLS 1.2 with dhe-rsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ dtls_try("DTLS 1.2 with ecdhe x25519 rsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ dtls_try("DTLS 1.2 with ecdhe rsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ dtls_try_with_key("DTLS 1.2 with ecdhe ecdsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, NULL, NULL, 0);
- dtls_try("DTLS 1.2 with ecdhe rsa-pss sig no-cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- dtls_try("DTLS 1.2 with ecdhe rsa-pss no-cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- dtls_try_with_key("TLS 1.2 with ecdhe rsa-pss/rsa-pss no-cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, NULL, NULL, 0);
- dtls_try("DTLS 1.2 with rsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ dtls_try("DTLS 1.2 with ecdhe rsa-pss sig no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ dtls_try("DTLS 1.2 with ecdhe rsa-pss no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ dtls_try_with_key("TLS 1.2 with ecdhe rsa-pss/rsa-pss no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss_cert,
+ &server_ca3_rsa_pss_key, NULL, NULL, 0);
+ dtls_try("DTLS 1.2 with rsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+RSA", GNUTLS_KX_RSA,
+ GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- dtls_try_cli("DTLS 1.2 with dhe-rsa cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- dtls_try_cli("DTLS 1.2 with ecdhe-rsa cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- dtls_try_cli("DTLS 1.2 with rsa cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- dtls_try_with_key("DTLS 1.2 with ecdhe ecdsa cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256, GNUTLS_SIGN_RSA_SHA256,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, USE_CERT);
- dtls_try_with_key("DTLS 1.2 with ecdhe ecdsa/ecdsa cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256, GNUTLS_SIGN_ECDSA_SHA256,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, USE_CERT);
+ dtls_try_cli("DTLS 1.2 with dhe-rsa cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256, USE_CERT);
+ dtls_try_cli("DTLS 1.2 with ecdhe-rsa cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256, USE_CERT);
+ dtls_try_cli("DTLS 1.2 with rsa cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_RSA_SHA256,
+ USE_CERT);
+ dtls_try_with_key("DTLS 1.2 with ecdhe ecdsa cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256,
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ &cli_ca3_cert, &cli_ca3_key, USE_CERT);
+ dtls_try_with_key("DTLS 1.2 with ecdhe ecdsa/ecdsa cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256,
+ GNUTLS_SIGN_ECDSA_SHA256,
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ USE_CERT);
-
- dtls_try_cli("DTLS 1.2 with ecdhe-rsa-pss cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, USE_CERT);
- dtls_try_with_key("DTLS 1.2 with ecdhe-rsa-pss/rsa-pss cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_RSA_PSS_SHA256,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, &cli_ca3_rsa_pss_cert, &cli_ca3_rsa_pss_key, USE_CERT);
- dtls_try_cli("DTLS 1.2 with dhe-rsa ask cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- dtls_try_cli("DTLS 1.2 with ecdhe-rsa ask cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- dtls_try_cli("DTLS 1.2 with rsa ask cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- dtls_try_with_key("DTLS 1.2 with ecdhe ecdsa cli-cert", "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, ASK_CERT);
+ dtls_try_cli("DTLS 1.2 with ecdhe-rsa-pss cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, USE_CERT);
+ dtls_try_with_key("DTLS 1.2 with ecdhe-rsa-pss/rsa-pss cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_RSA_PSS_SHA256, &server_ca3_rsa_pss_cert,
+ &server_ca3_rsa_pss_key, &cli_ca3_rsa_pss_cert,
+ &cli_ca3_rsa_pss_key, USE_CERT);
+ dtls_try_cli("DTLS 1.2 with dhe-rsa ask cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ dtls_try_cli("DTLS 1.2 with ecdhe-rsa ask cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ dtls_try_cli("DTLS 1.2 with rsa ask cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
+ ASK_CERT);
+ dtls_try_with_key("DTLS 1.2 with ecdhe ecdsa cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key,
+ ASK_CERT);
gnutls_global_deinit();
}
diff --git a/tests/duplicate-extensions.c b/tests/duplicate-extensions.c
index 82aceaaf84..5384eaa227 100644
--- a/tests/duplicate-extensions.c
+++ b/tests/duplicate-extensions.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <limits.h>
@@ -37,18 +37,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <signal.h>
-#include <poll.h>
-#include <errno.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <signal.h>
+# include <poll.h>
+# include <errno.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
pid_t child;
@@ -61,31 +61,30 @@ static void tls_log_func(int level, const char *str)
/* A very basic TLS client, with anonymous authentication.
*/
-
static unsigned char tls1_hello[] =
- "\x16\x03\x01\x01\x5e\x01\x00\x01\x5a\x03\x03\x59\x41\x25\x0e\x19"
- "\x02\x56\xa2\xe4\x97\x00\xea\x18\xd2\xb0\x00\xb9\xa2\x8a\x61\xb3"
- "\xdd\x65\xed\xfd\x03\xaf\x93\x8d\xb2\x15\xf3\x00\x00\xd4\xc0\x30"
- "\xcc\xa8\xc0\x8b\xc0\x14\xc0\x28\xc0\x77\xc0\x2f\xc0\x8a\xc0\x13"
- "\xc0\x27\xc0\x76\xc0\x12\xc0\x2c\xc0\xad\xcc\xa9\xc0\x87\xc0\x0a"
- "\xc0\x24\xc0\x73\xc0\x2b\xc0\xac\xc0\x86\xc0\x09\xc0\x23\xc0\x72"
- "\xc0\x08\x00\x9d\xc0\x9d\xc0\x7b\x00\x35\x00\x3d\x00\x84\x00\xc0"
- "\x00\x9c\xc0\x9c\xc0\x7a\x00\x2f\x00\x3c\x00\x41\x00\xba\x00\x0a"
- "\x00\x9f\xc0\x9f\xcc\xaa\xc0\x7d\x00\x39\x00\x6b\x00\x88\x00\xc4"
- "\x00\x9e\xc0\x9e\xc0\x7c\x00\x33\x00\x67\x00\x45\x00\xbe\x00\x16"
- "\x00\xa3\xc0\x81\x00\x38\x00\x6a\x00\x87\x00\xc3\x00\xa2\xc0\x80"
- "\x00\x32\x00\x40\x00\x44\x00\xbd\x00\x13\x00\xa9\xc0\xa5\xcc\xab"
- "\xc0\x8f\x00\x8d\x00\xaf\xc0\x95\x00\xa8\xc0\xa4\xc0\x8e\x00\x8c"
- "\x00\xae\xc0\x94\x00\x8b\x00\xab\xc0\xa7\xcc\xad\xc0\x91\x00\x91"
- "\x00\xb3\xc0\x97\x00\xaa\xc0\xa6\xc0\x90\x00\x90\x00\xb2\xc0\x96"
- "\x00\x8f\xcc\xac\xc0\x36\xc0\x38\xc0\x9b\xc0\x35\xc0\x37\xc0\x9a"
- "\xc0\x34\x01\x00\x00\x5d\x00\x17\x00\x00\x00\x16\x00\x00\x00\x05"
- "\x00\x05\x01\x00\x00\x00\x00\x00\x00\x00\x13\x00\x11\x00\x00\x0e"
- "\x77\x77\x77\x2e\x61\x6d\x61\x7a\x6f\x6e\x2e\x63\x6f\x6d\xff\x01"
- "\x00\x01\x00\x00\x23\x00\x00\x00\x0b\x00\x02\x01\x00\x00\x0b\x00"
- "\x02\x01\x00\x00\x0d\x00\x16\x00\x14\x04\x01\x04\x03\x05\x01\x05"
- "\x03\x06\x01\x06\x03\x03\x01\x03\x03\x02\x01\x02\x03\x00\x0a\x00"
- "\x02\x00\x17";
+ "\x16\x03\x01\x01\x5e\x01\x00\x01\x5a\x03\x03\x59\x41\x25\x0e\x19"
+ "\x02\x56\xa2\xe4\x97\x00\xea\x18\xd2\xb0\x00\xb9\xa2\x8a\x61\xb3"
+ "\xdd\x65\xed\xfd\x03\xaf\x93\x8d\xb2\x15\xf3\x00\x00\xd4\xc0\x30"
+ "\xcc\xa8\xc0\x8b\xc0\x14\xc0\x28\xc0\x77\xc0\x2f\xc0\x8a\xc0\x13"
+ "\xc0\x27\xc0\x76\xc0\x12\xc0\x2c\xc0\xad\xcc\xa9\xc0\x87\xc0\x0a"
+ "\xc0\x24\xc0\x73\xc0\x2b\xc0\xac\xc0\x86\xc0\x09\xc0\x23\xc0\x72"
+ "\xc0\x08\x00\x9d\xc0\x9d\xc0\x7b\x00\x35\x00\x3d\x00\x84\x00\xc0"
+ "\x00\x9c\xc0\x9c\xc0\x7a\x00\x2f\x00\x3c\x00\x41\x00\xba\x00\x0a"
+ "\x00\x9f\xc0\x9f\xcc\xaa\xc0\x7d\x00\x39\x00\x6b\x00\x88\x00\xc4"
+ "\x00\x9e\xc0\x9e\xc0\x7c\x00\x33\x00\x67\x00\x45\x00\xbe\x00\x16"
+ "\x00\xa3\xc0\x81\x00\x38\x00\x6a\x00\x87\x00\xc3\x00\xa2\xc0\x80"
+ "\x00\x32\x00\x40\x00\x44\x00\xbd\x00\x13\x00\xa9\xc0\xa5\xcc\xab"
+ "\xc0\x8f\x00\x8d\x00\xaf\xc0\x95\x00\xa8\xc0\xa4\xc0\x8e\x00\x8c"
+ "\x00\xae\xc0\x94\x00\x8b\x00\xab\xc0\xa7\xcc\xad\xc0\x91\x00\x91"
+ "\x00\xb3\xc0\x97\x00\xaa\xc0\xa6\xc0\x90\x00\x90\x00\xb2\xc0\x96"
+ "\x00\x8f\xcc\xac\xc0\x36\xc0\x38\xc0\x9b\xc0\x35\xc0\x37\xc0\x9a"
+ "\xc0\x34\x01\x00\x00\x5d\x00\x17\x00\x00\x00\x16\x00\x00\x00\x05"
+ "\x00\x05\x01\x00\x00\x00\x00\x00\x00\x00\x13\x00\x11\x00\x00\x0e"
+ "\x77\x77\x77\x2e\x61\x6d\x61\x7a\x6f\x6e\x2e\x63\x6f\x6d\xff\x01"
+ "\x00\x01\x00\x00\x23\x00\x00\x00\x0b\x00\x02\x01\x00\x00\x0b\x00"
+ "\x02\x01\x00\x00\x0d\x00\x16\x00\x14\x04\x01\x04\x03\x05\x01\x05"
+ "\x03\x06\x01\x06\x03\x03\x01\x03\x03\x02\x01\x02\x03\x00\x0a\x00"
+ "\x02\x00\x17";
static void client(int sd)
{
@@ -95,8 +94,8 @@ static void client(int sd)
unsigned int timeout;
/* send a TLS 1.x hello with duplicate extensions */
-
- ret = send(sd, tls1_hello, sizeof(tls1_hello)-1, 0);
+
+ ret = send(sd, tls1_hello, sizeof(tls1_hello) - 1, 0);
if (ret < 0)
fail("error sending hello\n");
@@ -152,7 +151,8 @@ static void server(int sd)
gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert,
GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert,
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert,
&server_ca3_key,
GNUTLS_X509_FMT_PEM);
@@ -161,7 +161,9 @@ static void server(int sd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2",
+ NULL);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -169,14 +171,14 @@ static void server(int sd)
gnutls_transport_set_int(session, sd);
do {
ret = gnutls_handshake(session);
- } while(ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
+ } while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
if (ret != GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION) {
fail("server: Handshake succeeded unexpectedly\n");
}
gnutls_alert_send_appropriate(session, ret);
-
+
close(sd);
gnutls_deinit(session);
@@ -188,7 +190,6 @@ static void server(int sd)
success("server: finished\n");
}
-
void doit(void)
{
int sockets[2];
diff --git a/tests/eagain-auto-auth.c b/tests/eagain-auto-auth.c
index 20831751ea..ede4c848aa 100644
--- a/tests/eagain-auto-auth.c
+++ b/tests/eagain-auto-auth.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -83,21 +83,20 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
gnutls_global_set_log_function(tls_log_func);
/* Init server */
- assert_return_code(gnutls_certificate_allocate_credentials(&serverx509cred), 0);
- assert_return_code(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM), 0);
- ret = gnutls_init(&server, GNUTLS_SERVER|GNUTLS_POST_HANDSHAKE_AUTH);
+ assert_return_code(gnutls_certificate_allocate_credentials
+ (&serverx509cred), 0);
+ assert_return_code(gnutls_certificate_set_x509_key_mem
+ (serverx509cred, &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM), 0);
+ ret = gnutls_init(&server, GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH);
assert_return_code(ret, 0);
- ret =
- gnutls_priority_set_direct(server,
- prio,
- NULL);
+ ret = gnutls_priority_set_direct(server, prio, NULL);
assert_return_code(ret, 0);
-
- ret = gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ ret =
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
+ serverx509cred);
assert_return_code(ret, 0);
gnutls_transport_set_push_function(server, server_push);
@@ -109,16 +108,19 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
ret = gnutls_certificate_allocate_credentials(&clientx509cred);
assert_return_code(ret, 0);
- gnutls_certificate_set_retrieve_function2(clientx509cred, cert_callback);
+ gnutls_certificate_set_retrieve_function2(clientx509cred,
+ cert_callback);
- ret = gnutls_init(&client, GNUTLS_CLIENT|GNUTLS_AUTO_REAUTH|GNUTLS_POST_HANDSHAKE_AUTH);
ret =
- gnutls_priority_set_direct(client,
- prio,
- NULL);
+ gnutls_init(&client,
+ GNUTLS_CLIENT | GNUTLS_AUTO_REAUTH |
+ GNUTLS_POST_HANDSHAKE_AUTH);
+ ret = gnutls_priority_set_direct(client, prio, NULL);
assert_return_code(ret, 0);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
+ ret =
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
+ clientx509cred);
assert_return_code(ret, 0);
gnutls_transport_set_push_function(client, client_push);
@@ -133,15 +135,17 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
do {
sret = gnutls_rehandshake(server);
- } while (sret == GNUTLS_E_AGAIN || sret == GNUTLS_E_INTERRUPTED);
+ } while (sret == GNUTLS_E_AGAIN
+ || sret == GNUTLS_E_INTERRUPTED);
assert_true(sret == 0);
- assert_true(gnutls_record_get_direction(server)==1);
+ assert_true(gnutls_record_get_direction(server) == 1);
sret = cret = GNUTLS_E_AGAIN;
do {
if (!hstarted) {
sret = gnutls_record_recv(server, b, 1);
- if (sret == GNUTLS_E_INTERRUPTED) sret = GNUTLS_E_AGAIN;
+ if (sret == GNUTLS_E_INTERRUPTED)
+ sret = GNUTLS_E_AGAIN;
if (sret == GNUTLS_E_REHANDSHAKE) {
hstarted = 1;
@@ -151,18 +155,22 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
}
if (sret == GNUTLS_E_AGAIN && hstarted) {
- sret = gnutls_handshake (server);
- if (sret == GNUTLS_E_INTERRUPTED) sret = GNUTLS_E_AGAIN;
- assert_true(sret == GNUTLS_E_AGAIN || sret == 0);
+ sret = gnutls_handshake(server);
+ if (sret == GNUTLS_E_INTERRUPTED)
+ sret = GNUTLS_E_AGAIN;
+ assert_true(sret == GNUTLS_E_AGAIN
+ || sret == 0);
}
/* we are done in client side */
- if (hstarted && gnutls_record_get_direction(client) == 0 && to_client_len == 0)
+ if (hstarted && gnutls_record_get_direction(client) == 0
+ && to_client_len == 0)
cret = 0;
if (cret == GNUTLS_E_AGAIN) {
cret = gnutls_record_recv(client, b, 1);
- if (cret == GNUTLS_E_INTERRUPTED) cret = GNUTLS_E_AGAIN;
+ if (cret == GNUTLS_E_INTERRUPTED)
+ cret = GNUTLS_E_AGAIN;
}
assert_true(cret == GNUTLS_E_AGAIN || cret >= 0);
@@ -171,7 +179,8 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
} else {
char b[1];
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUEST);
do {
sret = gnutls_reauth(server, 0);
@@ -183,16 +192,19 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
do {
if (cret == GNUTLS_E_AGAIN) {
cret = gnutls_record_recv(client, b, 1);
- if (cret == GNUTLS_E_INTERRUPTED) cret = GNUTLS_E_AGAIN;
+ if (cret == GNUTLS_E_INTERRUPTED)
+ cret = GNUTLS_E_AGAIN;
}
if (sret == GNUTLS_E_AGAIN) {
sret = gnutls_reauth(server, 0);
- if (sret == GNUTLS_E_INTERRUPTED) sret = GNUTLS_E_AGAIN;
+ if (sret == GNUTLS_E_INTERRUPTED)
+ sret = GNUTLS_E_AGAIN;
}
/* we are done in client side */
- if (gnutls_record_get_direction(client) == 0 && to_client_len == 0)
+ if (gnutls_record_get_direction(client) == 0
+ && to_client_len == 0)
cret = 0;
} while (cret == GNUTLS_E_AGAIN || sret == GNUTLS_E_AGAIN);
}
@@ -203,8 +215,8 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
msglen = strlen(MSG);
TRANSFER(client, server, MSG, msglen, buffer, MAX_BUF);
- assert_true(gnutls_bye(client, GNUTLS_SHUT_WR)>=0);
- assert_true(gnutls_bye(server, GNUTLS_SHUT_WR)>=0);
+ assert_true(gnutls_bye(client, GNUTLS_SHUT_WR) >= 0);
+ assert_true(gnutls_bye(server, GNUTLS_SHUT_WR) >= 0);
gnutls_deinit(client);
gnutls_deinit(server);
diff --git a/tests/eagain-common.h b/tests/eagain-common.h
index 6b168cb684..c7c49f4ac2 100644
--- a/tests/eagain-common.h
+++ b/tests/eagain-common.h
@@ -1,27 +1,27 @@
#ifndef GNUTLS_TESTS_EAGAIN_COMMON_H
-#define GNUTLS_TESTS_EAGAIN_COMMON_H
+# define GNUTLS_TESTS_EAGAIN_COMMON_H
-#include <errno.h>
-#include <time.h>
-#include <stdio.h>
+# include <errno.h>
+# include <time.h>
+# include <stdio.h>
-#define min(x,y) ((x)<(y)?(x):(y))
+# define min(x,y) ((x)<(y)?(x):(y))
extern const char *side;
-#ifdef USE_CMOCKA
-# define failure() fail()
-# define client_transfer_failure(r) {fprintf(stderr, "client transfer failure: %s\n", gnutls_strerror(r)); fail();}
-# define server_transfer_failure(r) {fprintf(stderr, "server transfer failure: %s\n", gnutls_strerror(r)); fail();}
-# define switch_side(str)
-#else
-# define failure() fail("Handshake failed\n")
-# define client_transfer_failure(r) fail("client transfer failure: %s\n", gnutls_strerror(r))
-# define server_transfer_failure(r) fail("client transfer failure: %s\n", gnutls_strerror(r))
-# define switch_side(str) side = str
-#endif
-
-#define HANDSHAKE_EXPECT(c, s, clierr, serverr) \
+# ifdef USE_CMOCKA
+# define failure() fail()
+# define client_transfer_failure(r) {fprintf(stderr, "client transfer failure: %s\n", gnutls_strerror(r)); fail();}
+# define server_transfer_failure(r) {fprintf(stderr, "server transfer failure: %s\n", gnutls_strerror(r)); fail();}
+# define switch_side(str)
+# else
+# define failure() fail("Handshake failed\n")
+# define client_transfer_failure(r) fail("client transfer failure: %s\n", gnutls_strerror(r))
+# define server_transfer_failure(r) fail("client transfer failure: %s\n", gnutls_strerror(r))
+# define switch_side(str) side = str
+# endif
+
+# define HANDSHAKE_EXPECT(c, s, clierr, serverr) \
sret = cret = GNUTLS_E_AGAIN; \
do \
{ \
@@ -46,10 +46,10 @@ extern const char *side;
failure(); \
}
-#define HANDSHAKE(c, s) \
+# define HANDSHAKE(c, s) \
HANDSHAKE_EXPECT(c,s,0,0)
-#define HANDSHAKE_DTLS_EXPECT(c, s, clierr, serverr) \
+# define HANDSHAKE_DTLS_EXPECT(c, s, clierr, serverr) \
sret = cret = GNUTLS_E_AGAIN; \
do \
{ \
@@ -82,13 +82,13 @@ extern const char *side;
failure(); \
}
-#define HANDSHAKE_DTLS(c, s) \
+# define HANDSHAKE_DTLS(c, s) \
HANDSHAKE_DTLS_EXPECT(c,s,0,0)
-#define HANDSHAKE(c, s) \
+# define HANDSHAKE(c, s) \
HANDSHAKE_EXPECT(c,s,0,0)
-#define TRANSFER2(c, s, msg, msglen, buf, buflen, retry_send_with_null) { \
+# define TRANSFER2(c, s, msg, msglen, buf, buflen, retry_send_with_null) { \
int _ret; \
switch_side("client"); \
_ret = record_send_loop (c, msg, msglen, retry_send_with_null); \
@@ -140,7 +140,7 @@ extern const char *side;
while (transferred < 70000); \
}
-#define EMPTY_BUF(s, c, buf, buflen) \
+# define EMPTY_BUF(s, c, buf, buflen) \
{ \
switch_side("client"); int _ret = 0; \
while((_ret == GNUTLS_E_AGAIN && to_server_len > 0) || to_server_len > 0) \
@@ -164,7 +164,7 @@ extern const char *side;
} \
}
-#define TRANSFER(c, s, msg, msglen, buf, buflen) \
+# define TRANSFER(c, s, msg, msglen, buf, buflen) \
TRANSFER2(c, s, msg, msglen, buf, buflen, 0); \
TRANSFER2(c, s, msg, msglen, buf, buflen, 1)
@@ -174,20 +174,19 @@ static size_t to_server_len = 0;
static char to_client[64 * 1024];
static size_t to_client_len = 0;
-
-#ifdef RANDOMIZE
-#define RETURN_RND_EAGAIN(session) \
+# ifdef RANDOMIZE
+# define RETURN_RND_EAGAIN(session) \
unsigned int rnd = time(0); \
if (rnd++ % 3 == 0) \
{ \
gnutls_transport_set_errno (session, EAGAIN); \
return -1; \
}
-#else
-#define RETURN_RND_EAGAIN(session)
-#endif
+# else
+# define RETURN_RND_EAGAIN(session)
+# endif
-#ifndef IGNORE_PUSH
+# ifndef IGNORE_PUSH
static ssize_t
client_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
@@ -199,26 +198,25 @@ client_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
newlen = to_server_len + len;
memcpy(to_server + to_server_len, data, len);
to_server_len = newlen;
-#ifdef EAGAIN_DEBUG
+# ifdef EAGAIN_DEBUG
fprintf(stderr, "eagain: pushed %d bytes to server (avail: %d)\n",
- (int) len, (int) to_server_len);
-#endif
+ (int)len, (int)to_server_len);
+# endif
return len;
}
-#endif
+# endif
-static ssize_t
-client_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
+static ssize_t client_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
{
RETURN_RND_EAGAIN(tr);
if (to_client_len == 0) {
-#ifdef EAGAIN_DEBUG
+# ifdef EAGAIN_DEBUG
fprintf(stderr,
"eagain: Not enough data by server (asked for: %d, have: %d)\n",
- (int) len, (int) to_client_len);
-#endif
+ (int)len, (int)to_client_len);
+# endif
gnutls_transport_set_errno((gnutls_session_t) tr, EAGAIN);
return -1;
}
@@ -229,34 +227,33 @@ client_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
memmove(to_client, to_client + len, to_client_len - len);
to_client_len -= len;
-#ifdef EAGAIN_DEBUG
+# ifdef EAGAIN_DEBUG
fprintf(stderr, "eagain: pulled %d bytes by client (avail: %d)\n",
- (int) len, (int) to_client_len);
-#endif
+ (int)len, (int)to_client_len);
+# endif
return len;
}
-static ssize_t
-server_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
+static ssize_t server_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
{
//success ("server_pull len %d has %d\n", len, to_server_len);
RETURN_RND_EAGAIN(tr);
if (to_server_len == 0) {
-#ifdef EAGAIN_DEBUG
+# ifdef EAGAIN_DEBUG
fprintf(stderr,
"eagain: Not enough data by client (asked for: %d, have: %d)\n",
- (int) len, (int) to_server_len);
-#endif
+ (int)len, (int)to_server_len);
+# endif
gnutls_transport_set_errno((gnutls_session_t) tr, EAGAIN);
return -1;
}
len = min(len, to_server_len);
-#ifdef EAGAIN_DEBUG
+# ifdef EAGAIN_DEBUG
fprintf(stderr, "eagain: pulled %d bytes by server (avail: %d)\n",
- (int) len, (int) to_server_len);
-#endif
+ (int)len, (int)to_server_len);
+# endif
memcpy(data, to_server, len);
memmove(to_server, to_server + len, to_server_len - len);
@@ -265,7 +262,7 @@ server_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
return len;
}
-#ifndef IGNORE_PUSH
+# ifndef IGNORE_PUSH
static ssize_t
server_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
@@ -279,20 +276,18 @@ server_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
newlen = to_client_len + len;
memcpy(to_client + to_client_len, data, len);
to_client_len = newlen;
-#ifdef EAGAIN_DEBUG
+# ifdef EAGAIN_DEBUG
fprintf(stderr, "eagain: pushed %d bytes to client (avail: %d)\n",
- (int) len, (int) to_client_len);
-#endif
+ (int)len, (int)to_client_len);
+# endif
-
-#ifdef SERVER_PUSH_ADD
+# ifdef SERVER_PUSH_ADD
SERVER_PUSH_ADD
-#endif
-
- return len;
+# endif
+ return len;
}
-#endif
+# endif
/* inline is used to avoid a gcc warning if used in mini-eagain */
inline static int server_pull_timeout_func(gnutls_transport_ptr_t ptr,
@@ -305,11 +300,11 @@ inline static int server_pull_timeout_func(gnutls_transport_ptr_t ptr,
else
ret = 0; /* timeout */
-#ifdef EAGAIN_DEBUG
+# ifdef EAGAIN_DEBUG
fprintf(stderr,
"eagain: server_pull_timeout: %d (avail: cli %d, serv %d)\n",
- ret, (int) to_client_len, (int) to_server_len);
-#endif
+ ret, (int)to_client_len, (int)to_server_len);
+# endif
return ret;
}
@@ -324,11 +319,11 @@ inline static int client_pull_timeout_func(gnutls_transport_ptr_t ptr,
else
ret = 0;
-#ifdef EAGAIN_DEBUG
+# ifdef EAGAIN_DEBUG
fprintf(stderr,
"eagain: client_pull_timeout: %d (avail: cli %d, serv %d)\n",
- ret, (int) to_client_len, (int) to_server_len);
-#endif
+ ret, (int)to_client_len, (int)to_server_len);
+# endif
return ret;
}
@@ -357,12 +352,10 @@ inline static int record_send_loop(gnutls_session_t session,
ret = gnutls_record_send(session, data, sizeofdata);
while (ret == GNUTLS_E_AGAIN) {
- ret =
- gnutls_record_send(session, retry_data,
- retry_sizeofdata);
+ ret = gnutls_record_send(session, retry_data, retry_sizeofdata);
}
return ret;
}
-#endif /* GNUTLS_TESTS_EAGAIN_COMMON_H */
+#endif /* GNUTLS_TESTS_EAGAIN_COMMON_H */
diff --git a/tests/eagain.c b/tests/eagain.c
index cc7b35a2a0..eb46ec61ca 100644
--- a/tests/eagain.c
+++ b/tests/eagain.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -65,20 +65,20 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
gnutls_global_set_log_function(tls_log_func);
/* Init server */
- assert_return_code(gnutls_certificate_allocate_credentials(&serverx509cred), 0);
- assert_return_code(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM), 0);
+ assert_return_code(gnutls_certificate_allocate_credentials
+ (&serverx509cred), 0);
+ assert_return_code(gnutls_certificate_set_x509_key_mem
+ (serverx509cred, &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM), 0);
ret = gnutls_init(&server, GNUTLS_SERVER);
assert_return_code(ret, 0);
- ret =
- gnutls_priority_set_direct(server,
- prio,
- NULL);
+ ret = gnutls_priority_set_direct(server, prio, NULL);
assert_return_code(ret, 0);
- ret = gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ ret =
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
+ serverx509cred);
assert_return_code(ret, 0);
gnutls_transport_set_push_function(server, server_push);
@@ -91,13 +91,12 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
assert_return_code(ret, 0);
ret = gnutls_init(&client, GNUTLS_CLIENT);
- ret =
- gnutls_priority_set_direct(client,
- prio,
- NULL);
+ ret = gnutls_priority_set_direct(client, prio, NULL);
assert_return_code(ret, 0);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
+ ret =
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
+ clientx509cred);
assert_return_code(ret, 0);
gnutls_transport_set_push_function(client, client_push);
@@ -116,7 +115,7 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
do {
n = gnutls_record_recv(client, b, 1);
- } while(n == GNUTLS_E_AGAIN);
+ } while (n == GNUTLS_E_AGAIN);
assert_int_equal(n, GNUTLS_E_REHANDSHAKE);
@@ -132,8 +131,9 @@ static void async_handshake(void **glob_state, const char *prio, unsigned rehsk)
assert_int_equal(sret, GNUTLS_E_GOT_APPLICATION_DATA);
do {
- n = gnutls_record_recv(server, buffer, sizeof(buffer));
- } while(n == GNUTLS_E_AGAIN);
+ n = gnutls_record_recv(server, buffer,
+ sizeof(buffer));
+ } while (n == GNUTLS_E_AGAIN);
}
HANDSHAKE(client, server);
diff --git a/tests/ecdh-compute.c b/tests/ecdh-compute.c
index f08a95f62f..4831bec918 100644
--- a/tests/ecdh-compute.c
+++ b/tests/ecdh-compute.c
@@ -22,7 +22,7 @@
/* This program tests functionality of DH exchanges */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <gnutls/gnutls.h>
@@ -33,17 +33,17 @@
#ifdef ENABLE_FIPS140
int _gnutls_ecdh_compute_key(gnutls_ecc_curve_t curve,
- const gnutls_datum_t *x, const gnutls_datum_t *y,
- const gnutls_datum_t *k,
- const gnutls_datum_t *peer_x, const gnutls_datum_t *peer_y,
- gnutls_datum_t *Z);
+ const gnutls_datum_t * x, const gnutls_datum_t * y,
+ const gnutls_datum_t * k,
+ const gnutls_datum_t * peer_x,
+ const gnutls_datum_t * peer_y, gnutls_datum_t * Z);
int _gnutls_ecdh_generate_key(gnutls_ecc_curve_t curve,
- gnutls_datum_t *x, gnutls_datum_t *y,
- gnutls_datum_t *k);
+ gnutls_datum_t * x, gnutls_datum_t * y,
+ gnutls_datum_t * k);
-static void genkey(gnutls_ecc_curve_t curve, gnutls_datum_t *x,
- gnutls_datum_t *y, gnutls_datum_t *key)
+static void genkey(gnutls_ecc_curve_t curve, gnutls_datum_t * x,
+ gnutls_datum_t * y, gnutls_datum_t * key)
{
int ret;
@@ -52,12 +52,12 @@ static void genkey(gnutls_ecc_curve_t curve, gnutls_datum_t *x,
fail("error\n");
}
-static void compute_key(gnutls_ecc_curve_t curve, const gnutls_datum_t *x,
- const gnutls_datum_t *y, const gnutls_datum_t *key,
- const gnutls_datum_t *peer_x,
- const gnutls_datum_t *peer_y,
- int expect_error,
- gnutls_datum_t *result, bool expect_success)
+static void compute_key(gnutls_ecc_curve_t curve, const gnutls_datum_t * x,
+ const gnutls_datum_t * y, const gnutls_datum_t * key,
+ const gnutls_datum_t * peer_x,
+ const gnutls_datum_t * peer_y,
+ int expect_error,
+ gnutls_datum_t * result, bool expect_success)
{
gnutls_datum_t Z = { 0 };
bool success;
@@ -90,112 +90,106 @@ void doit(void)
{
struct dh_test_data test_data[] = {
{
- /* x == 0, y == 0 */
- GNUTLS_ECC_CURVE_SECP256R1,
- { 0 }, { 0 }, { 0 },
- { (void *)"\x00", 1 },
- { (void *)"\x00", 1 },
- /* Should be GNUTLS_E_PK_INVALID_PUBKEY but mpi scan
- * balks on values of 0 */
- GNUTLS_E_MPI_SCAN_FAILED,
- },
+ /* x == 0, y == 0 */
+ GNUTLS_ECC_CURVE_SECP256R1,
+ {0}, {0}, {0},
+ {(void *)"\x00", 1},
+ {(void *)"\x00", 1},
+ /* Should be GNUTLS_E_PK_INVALID_PUBKEY but mpi scan
+ * balks on values of 0 */
+ GNUTLS_E_MPI_SCAN_FAILED,
+ },
{
- /* x > p -1 */
- GNUTLS_ECC_CURVE_SECP256R1,
- { 0 }, { 0 }, { 0 },
- { (void *)"\xff\xff\xff\xff\x00\x00\x00\x01"
- "\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\xff\xff\xff\xff"
- "\xff\xff\xff\xff\xff\xff\xff\xff", 1 },
- { (void *)"\x02", 1 },
- GNUTLS_E_PK_INVALID_PUBKEY,
- },
+ /* x > p -1 */
+ GNUTLS_ECC_CURVE_SECP256R1,
+ {0}, {0}, {0},
+ {(void *)"\xff\xff\xff\xff\x00\x00\x00\x01"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\xff\xff\xff\xff"
+ "\xff\xff\xff\xff\xff\xff\xff\xff", 1},
+ {(void *)"\x02", 1},
+ GNUTLS_E_PK_INVALID_PUBKEY,
+ },
{
- /* y > p -1 */
- GNUTLS_ECC_CURVE_SECP256R1,
- { 0 }, { 0 }, { 0 },
- { (void *)"\x02", 1 },
- { (void *)"\xff\xff\xff\xff\x00\x00\x00\x01"
- "\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\xff\xff\xff\xff"
- "\xff\xff\xff\xff\xff\xff\xff\xff", 1 },
- GNUTLS_E_PK_INVALID_PUBKEY,
- },
+ /* y > p -1 */
+ GNUTLS_ECC_CURVE_SECP256R1,
+ {0}, {0}, {0},
+ {(void *)"\x02", 1},
+ {(void *)"\xff\xff\xff\xff\x00\x00\x00\x01"
+ "\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\xff\xff\xff\xff"
+ "\xff\xff\xff\xff\xff\xff\xff\xff", 1},
+ GNUTLS_E_PK_INVALID_PUBKEY,
+ },
{
- /* From CAVS tests */
- GNUTLS_ECC_CURVE_SECP521R1,
- { (void *)"\xac\xbe\x4a\xd4\xf6\x73\x44\x0a"
- "\xfc\x31\xf0\xb0\x3d\x28\xd4\xd5"
- "\x14\xbe\x7b\xdd\x7a\x31\xb0\x32"
- "\xec\x27\x27\x17\xa5\x7d\xc2\x6c"
- "\xc4\xc9\x56\x29\xdb\x2d\x8c\x05"
- "\x86\x2b\xe6\x15\xc6\x06\x28\xa3"
- "\x24\xf2\x01\x7f\x98\xbd\xf9\x11"
- "\xcc\xf8\x83\x5e\x43\x9e\xb2\xc1"
- "\x88", 65 },
- { (void *)"\xd6\x9b\x29\xa2\x37\x82\x36\x92"
- "\xe8\xdb\x90\xa3\x25\x68\x67\x6c"
- "\x92\xff\x3d\x23\x85\xe2\xfd\x13"
- "\x16\x12\x72\xb3\x4b\x55\x88\x72"
- "\xb0\x35\xab\xb5\x10\x89\x52\x5f"
- "\x42\x9f\x53\x02\x60\x80\xc3\xd5"
- "\x36\x6e\xe9\xdd\x28\xae\xd2\x38"
- "\xab\xbe\x68\x6a\x54\x3e\x19\xf2"
- "\x77", 65 },
- { (void *)"\xd7\xdd\x17\x7c\xb9\x7f\x19\x09"
- "\xbe\x56\x79\xba\x38\x7b\xee\x64"
- "\xf7\xb4\x08\x4a\x4f\xaa\x6c\x31"
- "\x8b\x82\xe9\xf2\xf7\x50\xc5\xc1"
- "\x82\x26\x20\xd4\x88\x25\x0b\xf6"
- "\xb4\x14\xea\x9b\x2c\x07\x93\x50"
- "\xb9\xad\x78\x0a\x5e\xc6\xa6\xf8"
- "\xb2\x9f\xa1\xc4\x76\xce\x1d\xa9"
- "\xf5", 65 },
- { (void *)"\x01\x41\xbe\x1a\xfa\x21\x99\xc9"
- "\xb2\x2d\xaa\x0a\xff\x90\xb2\x67"
- "\x18\xa2\x67\x04\x7e\xae\x28\x40"
- "\xe8\xbc\xa0\xbd\x0c\x75\x41\x51"
- "\xf1\xa0\x4d\xcf\x09\xa5\x4f\x1e"
- "\x13\x5e\xa0\xdd\x13\xed\x86\x74"
- "\x05\xc0\xcb\x6d\xac\x14\x6a\x24"
- "\xb8\xdc\xf3\x78\xed\xed\x5d\xcd"
- "\x57\x5b", 66 },
- { (void *)"\x19\x52\xbd\x5d\xe6\x26\x40\xc3"
- "\xfc\x8c\xc1\x55\xe2\x9c\x71\x14"
- "\x5e\xdc\x62\x1c\x3a\x94\x4e\x55"
- "\x56\x75\xf7\x45\x6e\xa4\x9e\x94"
- "\xb8\xfe\xda\xd4\xac\x7d\x76\xc5"
- "\xb4\x65\xed\xb4\x49\x34\x71\x14"
- "\xdb\x8f\x10\x90\xa3\x05\x02\xdc"
- "\x86\x92\x6c\xbe\x9b\x57\x32\xe3"
- "\x2c", 65 },
- 0,
- },
- { 0 }
+ /* From CAVS tests */
+ GNUTLS_ECC_CURVE_SECP521R1,
+ {(void *)"\xac\xbe\x4a\xd4\xf6\x73\x44\x0a"
+ "\xfc\x31\xf0\xb0\x3d\x28\xd4\xd5"
+ "\x14\xbe\x7b\xdd\x7a\x31\xb0\x32"
+ "\xec\x27\x27\x17\xa5\x7d\xc2\x6c"
+ "\xc4\xc9\x56\x29\xdb\x2d\x8c\x05"
+ "\x86\x2b\xe6\x15\xc6\x06\x28\xa3"
+ "\x24\xf2\x01\x7f\x98\xbd\xf9\x11"
+ "\xcc\xf8\x83\x5e\x43\x9e\xb2\xc1" "\x88", 65},
+ {(void *)"\xd6\x9b\x29\xa2\x37\x82\x36\x92"
+ "\xe8\xdb\x90\xa3\x25\x68\x67\x6c"
+ "\x92\xff\x3d\x23\x85\xe2\xfd\x13"
+ "\x16\x12\x72\xb3\x4b\x55\x88\x72"
+ "\xb0\x35\xab\xb5\x10\x89\x52\x5f"
+ "\x42\x9f\x53\x02\x60\x80\xc3\xd5"
+ "\x36\x6e\xe9\xdd\x28\xae\xd2\x38"
+ "\xab\xbe\x68\x6a\x54\x3e\x19\xf2" "\x77", 65},
+ {(void *)"\xd7\xdd\x17\x7c\xb9\x7f\x19\x09"
+ "\xbe\x56\x79\xba\x38\x7b\xee\x64"
+ "\xf7\xb4\x08\x4a\x4f\xaa\x6c\x31"
+ "\x8b\x82\xe9\xf2\xf7\x50\xc5\xc1"
+ "\x82\x26\x20\xd4\x88\x25\x0b\xf6"
+ "\xb4\x14\xea\x9b\x2c\x07\x93\x50"
+ "\xb9\xad\x78\x0a\x5e\xc6\xa6\xf8"
+ "\xb2\x9f\xa1\xc4\x76\xce\x1d\xa9" "\xf5", 65},
+ {(void *)"\x01\x41\xbe\x1a\xfa\x21\x99\xc9"
+ "\xb2\x2d\xaa\x0a\xff\x90\xb2\x67"
+ "\x18\xa2\x67\x04\x7e\xae\x28\x40"
+ "\xe8\xbc\xa0\xbd\x0c\x75\x41\x51"
+ "\xf1\xa0\x4d\xcf\x09\xa5\x4f\x1e"
+ "\x13\x5e\xa0\xdd\x13\xed\x86\x74"
+ "\x05\xc0\xcb\x6d\xac\x14\x6a\x24"
+ "\xb8\xdc\xf3\x78\xed\xed\x5d\xcd" "\x57\x5b", 66},
+ {(void *)"\x19\x52\xbd\x5d\xe6\x26\x40\xc3"
+ "\xfc\x8c\xc1\x55\xe2\x9c\x71\x14"
+ "\x5e\xdc\x62\x1c\x3a\x94\x4e\x55"
+ "\x56\x75\xf7\x45\x6e\xa4\x9e\x94"
+ "\xb8\xfe\xda\xd4\xac\x7d\x76\xc5"
+ "\xb4\x65\xed\xb4\x49\x34\x71\x14"
+ "\xdb\x8f\x10\x90\xa3\x05\x02\xdc"
+ "\x86\x92\x6c\xbe\x9b\x57\x32\xe3" "\x2c", 65},
+ 0,
+ },
+ {0}
};
for (int i = 0; test_data[i].curve != 0; i++) {
gnutls_datum_t x, y, key;
- if (test_data[i].key.data == NULL) {
- genkey(test_data[i].curve, &x, &y, &key);
- } else {
- x = test_data[i].x;
- y = test_data[i].y;
- key = test_data[i].key;
- }
+ if (test_data[i].key.data == NULL) {
+ genkey(test_data[i].curve, &x, &y, &key);
+ } else {
+ x = test_data[i].x;
+ y = test_data[i].y;
+ key = test_data[i].key;
+ }
compute_key(test_data[i].curve, &x, &y, &key,
&test_data[i].peer_x,
&test_data[i].peer_y,
- test_data[i].expected_error,
- NULL, 0);
-
- if (test_data[i].key.data == NULL) {
- gnutls_free(x.data);
- gnutls_free(y.data);
- gnutls_free(key.data);
- }
+ test_data[i].expected_error, NULL, 0);
+
+ if (test_data[i].key.data == NULL) {
+ gnutls_free(x.data);
+ gnutls_free(y.data);
+ gnutls_free(key.data);
+ }
}
success("all ok\n");
diff --git a/tests/empty_retrieve_function.c b/tests/empty_retrieve_function.c
index ecdab3ca35..35e2de913f 100644
--- a/tests/empty_retrieve_function.c
+++ b/tests/empty_retrieve_function.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -37,24 +37,22 @@
*/
static int cert_cb1(gnutls_session_t session,
- const gnutls_datum_t * req_ca_rdn,
- int nreqs,
- const gnutls_pk_algorithm_t * pk_algos,
- int pk_algos_length,
- gnutls_retr2_st *retr)
+ const gnutls_datum_t * req_ca_rdn,
+ int nreqs,
+ const gnutls_pk_algorithm_t * pk_algos,
+ int pk_algos_length, gnutls_retr2_st * retr)
{
memset(retr, 0, sizeof(*retr));
return 0;
}
static int cert_cb2(gnutls_session_t session,
- const gnutls_datum_t *req_ca_rdn,
- int nreqs,
- const gnutls_pk_algorithm_t *pk_algos,
- int pk_algos_length,
- gnutls_pcert_st** pcert,
- unsigned int *pcert_length,
- gnutls_privkey_t *privkey)
+ const gnutls_datum_t * req_ca_rdn,
+ int nreqs,
+ const gnutls_pk_algorithm_t * pk_algos,
+ int pk_algos_length,
+ gnutls_pcert_st ** pcert,
+ unsigned int *pcert_length, gnutls_privkey_t * privkey)
{
*pcert_length = 0;
*privkey = NULL;
@@ -64,13 +62,12 @@ static int cert_cb2(gnutls_session_t session,
}
static int cert_cb3(gnutls_session_t session,
- const struct gnutls_cert_retr_st *info,
- gnutls_pcert_st **certs,
- unsigned int *pcert_length,
- gnutls_ocsp_data_st **ocsp,
- unsigned int *ocsp_length,
- gnutls_privkey_t *privkey,
- unsigned int *flags)
+ const struct gnutls_cert_retr_st *info,
+ gnutls_pcert_st ** certs,
+ unsigned int *pcert_length,
+ gnutls_ocsp_data_st ** ocsp,
+ unsigned int *ocsp_length,
+ gnutls_privkey_t * privkey, unsigned int *flags)
{
*privkey = NULL;
*ocsp_length = 0;
@@ -78,7 +75,6 @@ static int cert_cb3(gnutls_session_t session,
return 0;
}
-
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "<%d>| %s", level, str);
@@ -100,9 +96,11 @@ void doit(void)
gnutls_certificate_allocate_credentials(&x509_cred);
- ret = gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert_chain,
- &server_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert_chain,
+ &server_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in error code\n");
exit(1);
@@ -110,17 +108,23 @@ void doit(void)
gnutls_certificate_allocate_credentials(&clicred);
gnutls_certificate_set_retrieve_function(clicred, cert_cb1);
- _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED, -1);
+ _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost",
+ NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED,
+ -1);
gnutls_certificate_free_credentials(clicred);
gnutls_certificate_allocate_credentials(&clicred);
gnutls_certificate_set_retrieve_function2(clicred, cert_cb2);
- _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED, -1);
+ _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost",
+ NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED,
+ -1);
gnutls_certificate_free_credentials(clicred);
gnutls_certificate_allocate_credentials(&clicred);
gnutls_certificate_set_retrieve_function3(clicred, cert_cb3);
- _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED, -1);
+ _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost",
+ NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED,
+ -1);
gnutls_certificate_free_credentials(clicred);
gnutls_certificate_free_credentials(x509_cred);
diff --git a/tests/fallback-scsv.c b/tests/fallback-scsv.c
index 02af0f7171..632d05211e 100644
--- a/tests/fallback-scsv.c
+++ b/tests/fallback-scsv.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "utils.h"
-#include "cert-common.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "utils.h"
+# include "cert-common.h"
static void terminate(void);
@@ -68,7 +68,7 @@ static void client_log_func(int level, const char *str)
/* This tests whether the fallback SCSV is working as intended.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio, unsigned expect_fail)
{
@@ -91,7 +91,7 @@ static void client(int fd, const char *prio, unsigned expect_fail)
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -125,14 +125,12 @@ static void client(int fd, const char *prio, unsigned expect_fail)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -143,7 +141,7 @@ static void client(int fd, const char *prio, unsigned expect_fail)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -154,7 +152,6 @@ static void client(int fd, const char *prio, unsigned expect_fail)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -171,7 +168,7 @@ static void server(int fd, const char *prio, unsigned expect_fail)
char buffer[MAX_BUF + 1];
gnutls_session_t session;
gnutls_certificate_credentials_t x509_cred;
- unsigned to_send = sizeof(buffer)/4;
+ unsigned to_send = sizeof(buffer) / 4;
/* this must be called once in the program
*/
@@ -185,15 +182,14 @@ static void server(int fd, const char *prio, unsigned expect_fail)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -206,10 +202,12 @@ static void server(int fd, const char *prio, unsigned expect_fail)
if (expect_fail) {
if (ret == GNUTLS_E_INAPPROPRIATE_FALLBACK) {
if (debug)
- success("server: received inappropriate fallback error\n");
+ success
+ ("server: received inappropriate fallback error\n");
goto cleanup;
} else {
- fail("server: received unexpected error: %s\n", gnutls_strerror(ret));
+ fail("server: received unexpected error: %s\n",
+ gnutls_strerror(ret));
}
}
@@ -232,10 +230,8 @@ static void server(int fd, const char *prio, unsigned expect_fail)
do {
do {
ret =
- gnutls_record_send(session, buffer,
- sizeof(buffer));
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ gnutls_record_send(session, buffer, sizeof(buffer));
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("Error sending %d byte packet: %s\n", to_send,
@@ -262,7 +258,8 @@ static void server(int fd, const char *prio, unsigned expect_fail)
success("server: finished\n");
}
-static void start(const char *server_prio, const char *cli_prio, unsigned expect_fail)
+static void start(const char *server_prio, const char *cli_prio,
+ unsigned expect_fail)
{
int fd[2];
int ret, status = 0;
@@ -304,14 +301,21 @@ void doit(void)
signal(SIGPIPE, SIG_IGN);
start("NORMAL", "NORMAL", 0);
- start("NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2", 0);
- start("NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2:%FALLBACK_SCSV", 0);
+ start("NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2", 0);
+ start("NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.0:+VERS-TLS1.1:+VERS-TLS1.2:%FALLBACK_SCSV",
+ 0);
start("NORMAL", "NORMAL:%FALLBACK_SCSV", 0);
- start("NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:%FALLBACK_SCSV", 0);
+ start("NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:%FALLBACK_SCSV", 0);
start("NORMAL", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:%FALLBACK_SCSV", 1);
/* Check whether a TLS1.3 server rejects a TLS1.2 client which includes the SCSV */
- start("NORMAL:+VERS-TLS1.3:+VERS-TLS1.2", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:%FALLBACK_SCSV", 1);
- start("NORMAL:+VERS-TLS1.3:+VERS-TLS1.2", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:%FALLBACK_SCSV", 0);
+ start("NORMAL:+VERS-TLS1.3:+VERS-TLS1.2",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:%FALLBACK_SCSV", 1);
+ start("NORMAL:+VERS-TLS1.3:+VERS-TLS1.2",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:%FALLBACK_SCSV",
+ 0);
}
#endif /* _WIN32 */
diff --git a/tests/fips-mode-pthread.c b/tests/fips-mode-pthread.c
index 409a5c4844..cf52c6d90b 100644
--- a/tests/fips-mode-pthread.c
+++ b/tests/fips-mode-pthread.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -73,7 +73,8 @@ static void *test_set_per_thread(void *arg)
fail("%d: gnutls_fips140_mode_enabled: wrong mode returned (%d, exp: %d)\n", data->line, mode, data->mode);
if (data->set_mode)
- gnutls_fips140_set_mode(data->set_mode, GNUTLS_FIPS140_SET_MODE_THREAD);
+ gnutls_fips140_set_mode(data->set_mode,
+ GNUTLS_FIPS140_SET_MODE_THREAD);
mode = gnutls_fips140_mode_enabled();
if (mode != data->set_mode) {
@@ -100,7 +101,7 @@ static void *test_set_per_thread(void *arg)
pthread_exit(0);
}
-#define MAX_THREADS 48
+# define MAX_THREADS 48
void doit(void)
{
@@ -117,33 +118,35 @@ void doit(void)
exit(77);
}
- data = calloc(1, sizeof(thread_data_st)*MAX_THREADS);
+ data = calloc(1, sizeof(thread_data_st) * MAX_THREADS);
if (data == NULL)
abort();
success("starting threads\n");
/* Test if changes per thread apply, and whether the global
* setting will remain the same */
- for (i=0;i<MAX_THREADS;i++) {
+ for (i = 0; i < MAX_THREADS; i++) {
data[i].line = __LINE__;
data[i].mode = mode;
- j = i%3;
- if (j==0)
+ j = i % 3;
+ if (j == 0)
data[i].set_mode = GNUTLS_FIPS140_LAX;
- else if (j==1)
+ else if (j == 1)
data[i].set_mode = GNUTLS_FIPS140_LOG;
else
data[i].set_mode = GNUTLS_FIPS140_STRICT;
- ret = pthread_create(&data[i].id, NULL, test_set_per_thread, &data[i]);
+ ret =
+ pthread_create(&data[i].id, NULL, test_set_per_thread,
+ &data[i]);
if (ret != 0) {
abort();
}
}
success("waiting for threads to finish\n");
- for (i=0;i<MAX_THREADS;i++) {
+ for (i = 0; i < MAX_THREADS; i++) {
ret = pthread_join(data[i].id, NULL);
if (ret != 0)
abort();
@@ -160,17 +163,19 @@ void doit(void)
mode = GNUTLS_FIPS140_LOG;
gnutls_fips140_set_mode(mode, 0);
- for (i=0;i<MAX_THREADS;i++) {
+ for (i = 0; i < MAX_THREADS; i++) {
data[i].line = __LINE__;
data[i].mode = mode;
data[i].set_mode = GNUTLS_FIPS140_LAX;
- ret = pthread_create(&data[i].id, NULL, test_set_per_thread, &data[i]);
+ ret =
+ pthread_create(&data[i].id, NULL, test_set_per_thread,
+ &data[i]);
if (ret != 0)
abort();
}
success("waiting for threads to finish\n");
- for (i=0;i<MAX_THREADS;i++) {
+ for (i = 0; i < MAX_THREADS; i++) {
ret = pthread_join(data[i].id, NULL);
if (ret != 0)
abort();
diff --git a/tests/fips-override-test.c b/tests/fips-override-test.c
index 5b92a1d485..61587183e7 100644
--- a/tests/fips-override-test.c
+++ b/tests/fips-override-test.c
@@ -26,7 +26,6 @@ static void audit_log_func(gnutls_session_t session, const char *str)
audit_called = 1;
}
-
static void try_crypto(void)
{
static uint8_t key16[16];
@@ -38,15 +37,13 @@ static void try_crypto(void)
int ret;
gnutls_x509_privkey_t privkey;
- ret =
- gnutls_cipher_init(&ch, GNUTLS_CIPHER_ARCFOUR_128, &key, &iv);
+ ret = gnutls_cipher_init(&ch, GNUTLS_CIPHER_ARCFOUR_128, &key, &iv);
if (ret < 0) {
fail("gnutls_cipher_init failed\n");
}
gnutls_cipher_deinit(ch);
- ret =
- gnutls_cipher_init(&ch, GNUTLS_CIPHER_AES_128_CBC, &key, &iv);
+ ret = gnutls_cipher_init(&ch, GNUTLS_CIPHER_AES_128_CBC, &key, &iv);
if (ret < 0) {
fail("gnutls_cipher_init failed\n");
}
diff --git a/tests/fips-rsa-sizes.c b/tests/fips-rsa-sizes.c
index 257f83d0b5..13089e3741 100644
--- a/tests/fips-rsa-sizes.c
+++ b/tests/fips-rsa-sizes.c
@@ -26,19 +26,17 @@
#include <gnutls/abstract.h>
#include <gnutls/x509.h>
-
-void generate_successfully(gnutls_privkey_t* privkey, gnutls_pubkey_t* pubkey,
- unsigned int size);
-void generate_unsuccessfully(gnutls_privkey_t* privkey, gnutls_pubkey_t* pubkey,
- unsigned int size);
+void generate_successfully(gnutls_privkey_t * privkey, gnutls_pubkey_t * pubkey,
+ unsigned int size);
+void generate_unsuccessfully(gnutls_privkey_t * privkey,
+ gnutls_pubkey_t * pubkey, unsigned int size);
void sign_verify_successfully(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey);
void sign_verify_unsuccessfully(gnutls_privkey_t privkey,
- gnutls_pubkey_t pubkey);
+ gnutls_pubkey_t pubkey);
void nosign_verify(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey);
-
-void generate_successfully(gnutls_privkey_t* privkey, gnutls_pubkey_t* pubkey,
- unsigned int size)
+void generate_successfully(gnutls_privkey_t * privkey, gnutls_pubkey_t * pubkey,
+ unsigned int size)
{
int ret;
gnutls_x509_privkey_t xprivkey;
@@ -74,9 +72,8 @@ void generate_successfully(gnutls_privkey_t* privkey, gnutls_pubkey_t* pubkey,
gnutls_fips140_context_deinit(fips_context);
}
-
-void generate_unsuccessfully(gnutls_privkey_t* privkey, gnutls_pubkey_t* pubkey,
- unsigned int size)
+void generate_unsuccessfully(gnutls_privkey_t * privkey,
+ gnutls_pubkey_t * pubkey, unsigned int size)
{
int ret;
gnutls_x509_privkey_t xprivkey;
@@ -130,14 +127,14 @@ void generate_unsuccessfully(gnutls_privkey_t* privkey, gnutls_pubkey_t* pubkey,
gnutls_fips140_context_deinit(fips_context);
}
-
-void sign_verify_successfully(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey) {
+void sign_verify_successfully(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
+{
int ret;
gnutls_fips140_context_t fips_context;
gnutls_datum_t signature;
gnutls_datum_t plaintext = {
- .data = (unsigned char* const) "Hello world!",
+ .data = (unsigned char *const)"Hello world!",
.size = 12
};
assert(gnutls_fips140_context_init(&fips_context) == 0);
@@ -145,7 +142,7 @@ void sign_verify_successfully(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
/* RSA sign: approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_privkey_sign_data(privkey, GNUTLS_DIG_SHA256, 0,
- &plaintext, &signature);
+ &plaintext, &signature);
if (ret < 0)
fail("gnutls_privkey_sign_data failed\n");
FIPS_POP_CONTEXT(APPROVED);
@@ -153,7 +150,7 @@ void sign_verify_successfully(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
/* RSA verify: approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_pubkey_verify_data2(pubkey, GNUTLS_SIGN_RSA_SHA256, 0,
- &plaintext, &signature);
+ &plaintext, &signature);
if (ret < 0)
fail("gnutls_pubkey_verify_data2 failed\n");
FIPS_POP_CONTEXT(APPROVED);
@@ -162,15 +159,15 @@ void sign_verify_successfully(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
gnutls_fips140_context_deinit(fips_context);
}
-
void sign_verify_unsuccessfully(gnutls_privkey_t privkey,
- gnutls_pubkey_t pubkey) {
+ gnutls_pubkey_t pubkey)
+{
int ret;
gnutls_fips140_context_t fips_context;
gnutls_datum_t signature;
gnutls_datum_t plaintext = {
- .data = (unsigned char* const) "Hello world!",
+ .data = (unsigned char *const)"Hello world!",
.size = 12
};
assert(gnutls_fips140_context_init(&fips_context) == 0);
@@ -178,7 +175,7 @@ void sign_verify_unsuccessfully(gnutls_privkey_t privkey,
/* small key RSA sign: not approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_privkey_sign_data(privkey, GNUTLS_DIG_SHA256, 0,
- &plaintext, &signature);
+ &plaintext, &signature);
if (ret < 0)
fail("gnutls_privkey_sign_data failed\n");
FIPS_POP_CONTEXT(NOT_APPROVED);
@@ -186,7 +183,7 @@ void sign_verify_unsuccessfully(gnutls_privkey_t privkey,
/* small key RSA verify: not approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_pubkey_verify_data2(pubkey, GNUTLS_SIGN_RSA_SHA256, 0,
- &plaintext, &signature);
+ &plaintext, &signature);
if (ret < 0)
fail("gnutls_pubkey_verify_data2 failed\n");
FIPS_POP_CONTEXT(NOT_APPROVED);
@@ -197,14 +194,14 @@ void sign_verify_unsuccessfully(gnutls_privkey_t privkey,
gnutls_fips140_context_deinit(fips_context);
}
-
-void nosign_verify(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey) {
+void nosign_verify(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
+{
int ret;
gnutls_fips140_context_t fips_context;
gnutls_datum_t signature;
gnutls_datum_t plaintext = {
- .data = (unsigned char* const) "Hello world!",
+ .data = (unsigned char *const)"Hello world!",
.size = 12
};
assert(gnutls_fips140_context_init(&fips_context) == 0);
@@ -212,7 +209,7 @@ void nosign_verify(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey) {
/* 1024, 1280, 1536, 1792 key RSA sign: not approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_privkey_sign_data(privkey, GNUTLS_DIG_SHA256, 0,
- &plaintext, &signature);
+ &plaintext, &signature);
if (ret < 0)
fail("gnutls_privkey_sign_data failed\n");
FIPS_POP_CONTEXT(NOT_APPROVED);
@@ -222,7 +219,7 @@ void nosign_verify(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey) {
assert(gnutls_fips140_mode_enabled() == GNUTLS_FIPS140_LAX);
ret = gnutls_privkey_sign_data(privkey, GNUTLS_DIG_SHA256, 0,
- &plaintext, &signature);
+ &plaintext, &signature);
if (ret < 0)
fail("gnutls_privkey_sign_data failed\n");
@@ -232,7 +229,7 @@ void nosign_verify(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey) {
/* 1024, 1280, 1536, 1792 key RSA verify: approved (exception) */
FIPS_PUSH_CONTEXT();
ret = gnutls_pubkey_verify_data2(pubkey, GNUTLS_SIGN_RSA_SHA256, 0,
- &plaintext, &signature);
+ &plaintext, &signature);
if (ret < 0)
fail("gnutls_pubkey_verify_data2 failed\n");
FIPS_POP_CONTEXT(APPROVED);
@@ -243,7 +240,6 @@ void nosign_verify(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey) {
gnutls_fips140_context_deinit(fips_context);
}
-
void doit(void)
{
gnutls_fips140_context_t fips_context;
@@ -252,7 +248,7 @@ void doit(void)
if (gnutls_fips140_mode_enabled() == 0) {
success("We are not in FIPS140 mode\n");
- exit(77); /* SKIP */
+ exit(77); /* SKIP */
}
assert(gnutls_fips140_context_init(&fips_context) == 0);
diff --git a/tests/fips-test.c b/tests/fips-test.c
index c43503fba0..aa76d062f8 100644
--- a/tests/fips-test.c
+++ b/tests/fips-test.c
@@ -26,7 +26,8 @@ static uint8_t key_data[64];
static uint8_t iv_data[16];
static gnutls_fips140_context_t fips_context;
-static const gnutls_datum_t data = { .data = (unsigned char *)"foo", 3 };
+static const gnutls_datum_t data = {.data = (unsigned char *)"foo", 3 };
+
static const uint8_t rsa2342_sha1_sig_data[] = {
0x9b, 0x3e, 0x15, 0x36, 0xec, 0x9d, 0x51, 0xd7, 0xa2, 0xb1, 0x3a, 0x15,
0x1a, 0xfe, 0x4e, 0x12, 0x43, 0x3c, 0xa8, 0x58, 0x4c, 0x2a, 0x82, 0xc1,
@@ -62,12 +63,12 @@ static const gnutls_datum_t rsa2342_sha1_sig = {
};
static const uint8_t ecc256_sha1_sig_data[] = {
- 0x30, 0x45, 0x02, 0x21, 0x00, 0x9a, 0x28, 0xc9, 0xbf, 0xc8, 0x70, 0x4f,
- 0x27, 0x2d, 0xe1, 0x66, 0xc4, 0xa5, 0xc6, 0xf2, 0xdc, 0x33, 0xb9, 0x41,
- 0xdf, 0x78, 0x98, 0x8a, 0x22, 0x4d, 0x29, 0x37, 0xa0, 0x0f, 0x6f, 0xd4,
- 0xed, 0x02, 0x20, 0x0b, 0x15, 0xca, 0x30, 0x09, 0x2d, 0x55, 0x44, 0xb4,
- 0x1d, 0x3f, 0x48, 0x7a, 0xc3, 0xd1, 0x2a, 0xc1, 0x0e, 0x47, 0xfa, 0xe6,
- 0xe9, 0x0f, 0x03, 0xe2, 0x01, 0x4e, 0xe4, 0x73, 0x37, 0xa7, 0x90,
+ 0x30, 0x45, 0x02, 0x21, 0x00, 0x9a, 0x28, 0xc9, 0xbf, 0xc8, 0x70, 0x4f,
+ 0x27, 0x2d, 0xe1, 0x66, 0xc4, 0xa5, 0xc6, 0xf2, 0xdc, 0x33, 0xb9, 0x41,
+ 0xdf, 0x78, 0x98, 0x8a, 0x22, 0x4d, 0x29, 0x37, 0xa0, 0x0f, 0x6f, 0xd4,
+ 0xed, 0x02, 0x20, 0x0b, 0x15, 0xca, 0x30, 0x09, 0x2d, 0x55, 0x44, 0xb4,
+ 0x1d, 0x3f, 0x48, 0x7a, 0xc3, 0xd1, 0x2a, 0xc1, 0x0e, 0x47, 0xfa, 0xe6,
+ 0xe9, 0x0f, 0x03, 0xe2, 0x01, 0x4e, 0xe4, 0x73, 0x37, 0xa7, 0x90,
};
static const gnutls_datum_t ecc256_sha1_sig = {
@@ -76,8 +77,8 @@ static const gnutls_datum_t ecc256_sha1_sig = {
};
static void
-import_keypair(gnutls_privkey_t *privkey, gnutls_pubkey_t *pubkey,
- const char *filename)
+import_keypair(gnutls_privkey_t * privkey, gnutls_pubkey_t * pubkey,
+ const char *filename)
{
const char *srcdir;
char path[256];
@@ -127,8 +128,7 @@ import_keypair(gnutls_privkey_t *privkey, gnutls_pubkey_t *pubkey,
}
-static void
-test_aead_cipher_approved(gnutls_cipher_algorithm_t cipher)
+static void test_aead_cipher_approved(gnutls_cipher_algorithm_t cipher)
{
int ret;
unsigned key_size = gnutls_cipher_get_key_size(cipher);
@@ -146,8 +146,7 @@ test_aead_cipher_approved(gnutls_cipher_algorithm_t cipher)
FIPS_POP_CONTEXT(APPROVED);
}
-static void
-test_cipher_approved(gnutls_cipher_algorithm_t cipher)
+static void test_cipher_approved(gnutls_cipher_algorithm_t cipher)
{
int ret;
unsigned key_size = gnutls_cipher_get_key_size(cipher);
@@ -168,8 +167,7 @@ test_cipher_approved(gnutls_cipher_algorithm_t cipher)
FIPS_POP_CONTEXT(APPROVED);
}
-static void
-test_cipher_allowed(gnutls_cipher_algorithm_t cipher)
+static void test_cipher_allowed(gnutls_cipher_algorithm_t cipher)
{
int ret;
unsigned key_size = gnutls_cipher_get_key_size(cipher);
@@ -190,8 +188,7 @@ test_cipher_allowed(gnutls_cipher_algorithm_t cipher)
FIPS_POP_CONTEXT(NOT_APPROVED);
}
-static void
-test_cipher_disallowed(gnutls_cipher_algorithm_t cipher)
+static void test_cipher_disallowed(gnutls_cipher_algorithm_t cipher)
{
int ret;
unsigned key_size = gnutls_cipher_get_key_size(cipher);
@@ -261,8 +258,7 @@ test_ccm_cipher(gnutls_cipher_algorithm_t cipher, size_t tag_length,
ret = gnutls_aead_cipher_decrypt(h, iv_data,
gnutls_cipher_get_iv_size(cipher),
NULL, 0, tag_length,
- buffer, length,
- buffer, &length);
+ buffer, length, buffer, &length);
if (expect_encryption_fail) {
if (ret != GNUTLS_E_INVALID_REQUEST) {
fail("gnutls_aead_cipher_decrypt(%s) returned %d "
@@ -279,8 +275,7 @@ test_ccm_cipher(gnutls_cipher_algorithm_t cipher, size_t tag_length,
gnutls_aead_cipher_deinit(h);
}
-static inline void
-test_ciphers(void)
+static inline void test_ciphers(void)
{
size_t i;
@@ -475,8 +470,7 @@ void doit(void)
/* PBKDF2 with output shorter than 112 bits: not approved */
FIPS_PUSH_CONTEXT();
- ret = gnutls_pbkdf2(GNUTLS_MAC_SHA256, &key, &iv, 100,
- &pbkdf2, 13);
+ ret = gnutls_pbkdf2(GNUTLS_MAC_SHA256, &key, &iv, 100, &pbkdf2, 13);
if (ret < 0) {
fail("gnutls_pbkdf2 failed\n");
}
@@ -529,11 +523,11 @@ void doit(void)
if (ret < 0) {
fail("gnutls_privkey_init failed\n");
}
- bits = gnutls_sec_param_to_pk_bits(GNUTLS_PK_RSA, GNUTLS_SEC_PARAM_MEDIUM);
+ bits =
+ gnutls_sec_param_to_pk_bits(GNUTLS_PK_RSA, GNUTLS_SEC_PARAM_MEDIUM);
ret = gnutls_x509_privkey_generate(xprivkey, GNUTLS_PK_RSA, bits, 0);
if (ret < 0) {
- fail("gnutls_x509_privkey_generate failed (%d) for %u-bit key\n",
- ret, bits);
+ fail("gnutls_x509_privkey_generate failed (%d) for %u-bit key\n", ret, bits);
}
gnutls_x509_privkey_deinit(xprivkey);
FIPS_POP_CONTEXT(APPROVED);
@@ -568,7 +562,7 @@ void doit(void)
/* Verify a signature with 2432-bit RSA and SHA256; approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_pubkey_verify_data2(pubkey, GNUTLS_SIGN_RSA_SHA256, 0,
- &data, &signature);
+ &data, &signature);
if (ret < 0) {
fail("gnutls_pubkey_verify_data2 failed\n");
}
@@ -587,8 +581,8 @@ void doit(void)
/* Verify a signature created with 2432-bit RSA and SHA-1; approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_pubkey_verify_data2(pubkey, GNUTLS_SIGN_RSA_SHA1,
- GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1, &data,
- &rsa2342_sha1_sig);
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ &data, &rsa2342_sha1_sig);
if (ret < 0) {
fail("gnutls_pubkey_verify_data2 failed\n");
}
@@ -614,7 +608,7 @@ void doit(void)
/* Verify a signature with 512-bit RSA and SHA256; not approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_pubkey_verify_data2(pubkey, GNUTLS_SIGN_RSA_SHA256, 0,
- &data, &signature);
+ &data, &signature);
if (ret < 0) {
fail("gnutls_pubkey_verify_data2 failed\n");
}
@@ -680,7 +674,7 @@ void doit(void)
/* Create a signature with ECDSA and SHA256 (2-pass old API); not-approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_privkey_sign_hash(privkey, GNUTLS_DIG_SHA256, 0,
- &hashed_data, &signature);
+ &hashed_data, &signature);
if (ret < 0) {
fail("gnutls_privkey_sign_hash failed\n");
}
@@ -699,8 +693,8 @@ void doit(void)
/* Verify a signature created with ECDSA and SHA-1; approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_pubkey_verify_data2(pubkey, GNUTLS_SIGN_ECDSA_SHA1,
- GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1, &data,
- &ecc256_sha1_sig);
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ &data, &ecc256_sha1_sig);
if (ret < 0) {
fail("gnutls_pubkey_verify_data2 failed\n");
}
@@ -710,7 +704,7 @@ void doit(void)
/* Create a signature with ECDSA and SHA-1 (old API); not approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_privkey_sign_data(privkey, GNUTLS_DIG_SHA1, 0,
- &data, &signature);
+ &data, &signature);
if (ret < 0) {
fail("gnutls_privkey_sign_data failed\n");
}
@@ -741,7 +735,7 @@ void doit(void)
/* Create a signature with ECDSA and SHA1 (2-pass old API); not-approved */
FIPS_PUSH_CONTEXT();
ret = gnutls_privkey_sign_hash(privkey, GNUTLS_DIG_SHA1, 0,
- &hashed_data, &signature);
+ &hashed_data, &signature);
if (ret < 0) {
fail("gnutls_privkey_sign_hash failed\n");
}
@@ -751,7 +745,7 @@ void doit(void)
gnutls_pubkey_deinit(pubkey);
gnutls_privkey_deinit(privkey);
- /* Test RND functions */
+ /* Test RND functions */
FIPS_PUSH_CONTEXT();
ret = gnutls_rnd(GNUTLS_RND_RANDOM, key16, sizeof(key16));
if (ret < 0) {
@@ -759,7 +753,7 @@ void doit(void)
}
FIPS_POP_CONTEXT(APPROVED);
- /* run self-tests manually */
+ /* run self-tests manually */
FIPS_PUSH_CONTEXT();
ret = gnutls_rnd(GNUTLS_RND_RANDOM, key16, sizeof(key16));
ret = gnutls_fips140_run_self_tests();
@@ -771,10 +765,8 @@ void doit(void)
/* Test when FIPS140 is set to error state */
_gnutls_lib_simulate_error();
-
/* Try crypto.h functionality */
- ret =
- gnutls_cipher_init(&ch, GNUTLS_CIPHER_AES_128_CBC, &key, &iv);
+ ret = gnutls_cipher_init(&ch, GNUTLS_CIPHER_AES_128_CBC, &key, &iv);
if (ret >= 0) {
fail("gnutls_cipher_init succeeded when in FIPS140 error state\n");
}
diff --git a/tests/global-init-override.c b/tests/global-init-override.c
index 69a0fab267..ae2f50a323 100644
--- a/tests/global-init-override.c
+++ b/tests/global-init-override.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -49,7 +49,7 @@ struct gnutls_subject_alt_names_st {
/* gnutls_subject_alt_names_init() is called by gnutls_x509_crt_init().
* We override it here to test if weak symbols work at all.
*/
-__attribute__ ((visibility ("protected")))
+__attribute__((visibility("protected")))
int gnutls_subject_alt_names_init(gnutls_subject_alt_names_t * sans)
{
weak_symbol_works = 1;
@@ -62,9 +62,7 @@ int gnutls_subject_alt_names_init(gnutls_subject_alt_names_t * sans)
return 0;
}
-GNUTLS_SKIP_GLOBAL_INIT
-
-void doit(void)
+GNUTLS_SKIP_GLOBAL_INIT void doit(void)
{
int ret;
diff --git a/tests/global-init.c b/tests/global-init.c
index 8e6c4666a4..c4cae39236 100644
--- a/tests/global-init.c
+++ b/tests/global-init.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -54,7 +54,7 @@ void doit(void)
if (ret < 0) {
fail("Could not initialize: %d\n", __LINE__);
}
-
+
/* the rest shouldn't cause a leak */
ret = gnutls_global_init();
if (ret < 0) {
@@ -77,6 +77,6 @@ void doit(void)
if (ret < 0) {
fail("Could not initialize: %d\n", __LINE__);
}
-
+
gnutls_global_deinit();
}
diff --git a/tests/gnutls-ids.c b/tests/gnutls-ids.c
index cbefc2e315..5559ef0bac 100644
--- a/tests/gnutls-ids.c
+++ b/tests/gnutls-ids.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -34,11 +34,18 @@
void doit(void)
{
- assert(gnutls_certificate_verification_profile_get_id("very weak") == GNUTLS_PROFILE_VERY_WEAK);
- assert(gnutls_certificate_verification_profile_get_id("low") == GNUTLS_PROFILE_LOW);
- assert(gnutls_certificate_verification_profile_get_id("legacy") == GNUTLS_PROFILE_LEGACY);
- assert(gnutls_certificate_verification_profile_get_id("MedIum") == GNUTLS_PROFILE_MEDIUM);
- assert(gnutls_certificate_verification_profile_get_id("ultra") == GNUTLS_PROFILE_ULTRA);
- assert(gnutls_certificate_verification_profile_get_id("future") == GNUTLS_PROFILE_FUTURE);
- assert(gnutls_certificate_verification_profile_get_id("xxx") == GNUTLS_PROFILE_UNKNOWN);
+ assert(gnutls_certificate_verification_profile_get_id("very weak") ==
+ GNUTLS_PROFILE_VERY_WEAK);
+ assert(gnutls_certificate_verification_profile_get_id("low") ==
+ GNUTLS_PROFILE_LOW);
+ assert(gnutls_certificate_verification_profile_get_id("legacy") ==
+ GNUTLS_PROFILE_LEGACY);
+ assert(gnutls_certificate_verification_profile_get_id("MedIum") ==
+ GNUTLS_PROFILE_MEDIUM);
+ assert(gnutls_certificate_verification_profile_get_id("ultra") ==
+ GNUTLS_PROFILE_ULTRA);
+ assert(gnutls_certificate_verification_profile_get_id("future") ==
+ GNUTLS_PROFILE_FUTURE);
+ assert(gnutls_certificate_verification_profile_get_id("xxx") ==
+ GNUTLS_PROFILE_UNKNOWN);
}
diff --git a/tests/gnutls-strcodes.c b/tests/gnutls-strcodes.c
index 83319d3111..0f1f5efe02 100644
--- a/tests/gnutls-strcodes.c
+++ b/tests/gnutls-strcodes.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -52,9 +52,9 @@ void _check_unique_non_null(int line, int i, const char *val)
if (val == NULL)
fail("issue in line %d, item %d\n", line, i);
- if (strcmp(val, previous_val)==0) {
+ if (strcmp(val, previous_val) == 0) {
fail("issue in line %d, item %d: %s\n", line, i, val);
- }
+ }
snprintf(previous_val, sizeof(previous_val), "%s", val);
}
@@ -69,7 +69,7 @@ void _check_unique(int line, int i, const char *val)
return;
}
- if (strcmp(val, previous_val)==0)
+ if (strcmp(val, previous_val) == 0)
fail("issue in line %d, item %d: %s\n", line, i, val);
snprintf(previous_val, sizeof(previous_val), "%s", val);
@@ -90,46 +90,53 @@ void doit(void)
exit(1);
}
- for (i=GNUTLS_E_UNIMPLEMENTED_FEATURE;i<=0;i++) {
+ for (i = GNUTLS_E_UNIMPLEMENTED_FEATURE; i <= 0; i++) {
check_unique(gnutls_strerror(i));
check_unique(gnutls_strerror_name(i));
}
- for (i=0;i<GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC;i++)
+ for (i = 0; i < GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC; i++)
check_non_null(gnutls_handshake_description_get_name(i));
- for (i=GNUTLS_PK_UNKNOWN+1;i<=GNUTLS_PK_MAX;i++)
+ for (i = GNUTLS_PK_UNKNOWN + 1; i <= GNUTLS_PK_MAX; i++)
check_unique_non_null(gnutls_pk_algorithm_get_name(i));
- for (i=GNUTLS_SIGN_UNKNOWN+1;i<=GNUTLS_SIGN_MAX;i++) {
- if (i==19) continue;
+ for (i = GNUTLS_SIGN_UNKNOWN + 1; i <= GNUTLS_SIGN_MAX; i++) {
+ if (i == 19)
+ continue;
check_unique_non_null(gnutls_sign_algorithm_get_name(i));
}
- for (i=GNUTLS_A_CLOSE_NOTIFY;i<=GNUTLS_A_MAX;i++) {
+ for (i = GNUTLS_A_CLOSE_NOTIFY; i <= GNUTLS_A_MAX; i++) {
check_unique(gnutls_alert_get_strname(i));
}
- for (i=GNUTLS_SEC_PARAM_INSECURE;i<=GNUTLS_SEC_PARAM_MAX;i++) {
+ for (i = GNUTLS_SEC_PARAM_INSECURE; i <= GNUTLS_SEC_PARAM_MAX; i++) {
check_non_null(gnutls_sec_param_get_name(i));
}
- check_non_null(gnutls_certificate_verification_profile_get_name(GNUTLS_PROFILE_VERY_WEAK));
- check_non_null(gnutls_certificate_verification_profile_get_name(GNUTLS_PROFILE_LOW));
- check_non_null(gnutls_certificate_verification_profile_get_name(GNUTLS_PROFILE_LEGACY));
- check_non_null(gnutls_certificate_verification_profile_get_name(GNUTLS_PROFILE_MEDIUM));
- check_non_null(gnutls_certificate_verification_profile_get_name(GNUTLS_PROFILE_HIGH));
- check_non_null(gnutls_certificate_verification_profile_get_name(GNUTLS_PROFILE_ULTRA));
-
- for (i=GNUTLS_ECC_CURVE_INVALID+1;i<=GNUTLS_ECC_CURVE_MAX;i++) {
+ check_non_null(gnutls_certificate_verification_profile_get_name
+ (GNUTLS_PROFILE_VERY_WEAK));
+ check_non_null(gnutls_certificate_verification_profile_get_name
+ (GNUTLS_PROFILE_LOW));
+ check_non_null(gnutls_certificate_verification_profile_get_name
+ (GNUTLS_PROFILE_LEGACY));
+ check_non_null(gnutls_certificate_verification_profile_get_name
+ (GNUTLS_PROFILE_MEDIUM));
+ check_non_null(gnutls_certificate_verification_profile_get_name
+ (GNUTLS_PROFILE_HIGH));
+ check_non_null(gnutls_certificate_verification_profile_get_name
+ (GNUTLS_PROFILE_ULTRA));
+
+ for (i = GNUTLS_ECC_CURVE_INVALID + 1; i <= GNUTLS_ECC_CURVE_MAX; i++) {
if (_gnutls_ecc_curve_is_supported(i) == 0)
continue;
check_unique_non_null(gnutls_ecc_curve_get_name(i));
if (i == GNUTLS_ECC_CURVE_X25519)
- continue; /* no oid yet */
+ continue; /* no oid yet */
if (i == GNUTLS_ECC_CURVE_X448)
- continue; /* no oid yet */
+ continue; /* no oid yet */
check_unique_non_null(gnutls_ecc_curve_get_oid(i));
}
diff --git a/tests/gnutls_ext_raw_parse.c b/tests/gnutls_ext_raw_parse.c
index 32202b4543..6c44315123 100644
--- a/tests/gnutls_ext_raw_parse.c
+++ b/tests/gnutls_ext_raw_parse.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,27 +35,27 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <time.h>
-#include <gnutls/gnutls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "utils.h"
-#include "cert-common.h"
-#include "tls13/ext-parse.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <time.h>
+# include <gnutls/gnutls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "utils.h"
+# include "cert-common.h"
+# include "tls13/ext-parse.h"
/* This program tests gnutls_ext_raw_parse with GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO
* flag.
*/
-#define HOSTNAME "example.com"
+# define HOSTNAME "example.com"
static void server_log_func(int level, const char *str)
{
@@ -71,13 +71,14 @@ static unsigned found_server_name = 0;
static unsigned found_status_req = 0;
static unsigned bare_version = 0;
-static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data, unsigned size)
+static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data,
+ unsigned size)
{
- if (tls_id == 0) { /* server name */
+ if (tls_id == 0) { /* server name */
/* very interesting extension, 4 bytes of sizes
* and 1 byte of type. */
unsigned esize = (data[0] << 8) | data[1];
- assert(esize == strlen(HOSTNAME)+3);
+ assert(esize == strlen(HOSTNAME) + 3);
size -= 2;
data += 2;
@@ -104,13 +105,16 @@ static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data, u
}
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
int ret;
if (htype == GNUTLS_HANDSHAKE_CLIENT_HELLO && post) {
if (bare_version) {
- ret = gnutls_ext_raw_parse(NULL, ext_callback, msg, GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO);
+ ret =
+ gnutls_ext_raw_parse(NULL, ext_callback, msg,
+ GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO);
} else {
unsigned pos;
gnutls_datum_t mmsg;
@@ -122,7 +126,8 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
mmsg.data = &msg->data[pos];
mmsg.size = msg->size - pos;
- ret = gnutls_ext_raw_parse(NULL, ext_callback, &mmsg, 0);
+ ret =
+ gnutls_ext_raw_parse(NULL, ext_callback, &mmsg, 0);
}
assert(ret >= 0);
}
@@ -150,12 +155,14 @@ static void client(int fd)
gnutls_handshake_set_timeout(session, get_timeout());
/* Use default priorities */
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
gnutls_transport_set_int(session, fd);
- assert(gnutls_server_name_set(session, GNUTLS_NAME_DNS, HOSTNAME, strlen(HOSTNAME))>=0);
+ assert(gnutls_server_name_set
+ (session, GNUTLS_NAME_DNS, HOSTNAME, strlen(HOSTNAME)) >= 0);
/* Perform the TLS handshake
*/
@@ -183,7 +190,7 @@ static void client(int fd)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -194,7 +201,6 @@ static void client(int fd)
gnutls_global_deinit();
}
-
static void server(int fd)
{
int ret;
@@ -212,20 +218,21 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
gnutls_handshake_set_timeout(session, get_timeout());
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CLIENT_HELLO,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CLIENT_HELLO,
GNUTLS_HOOK_POST,
handshake_callback);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
diff --git a/tests/gnutls_ext_raw_parse_dtls.c b/tests/gnutls_ext_raw_parse_dtls.c
index 70ac0141db..2b0abc876d 100644
--- a/tests/gnutls_ext_raw_parse_dtls.c
+++ b/tests/gnutls_ext_raw_parse_dtls.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,27 +35,27 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <time.h>
-#include <gnutls/gnutls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "utils.h"
-#include "cert-common.h"
-#include "tls13/ext-parse.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <time.h>
+# include <gnutls/gnutls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "utils.h"
+# include "cert-common.h"
+# include "tls13/ext-parse.h"
/* This program tests gnutls_ext_raw_parse with GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO
* flag.
*/
-#define HOSTNAME "example.com"
+# define HOSTNAME "example.com"
static void server_log_func(int level, const char *str)
{
@@ -70,13 +70,14 @@ static void client_log_func(int level, const char *str)
static unsigned found_server_name = 0;
static unsigned found_status_req = 0;
-static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data, unsigned size)
+static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data,
+ unsigned size)
{
- if (tls_id == 0) { /* server name */
+ if (tls_id == 0) { /* server name */
/* very interesting extension, 4 bytes of sizes
* and 1 byte of type. */
unsigned esize = (data[0] << 8) | data[1];
- assert(esize == strlen(HOSTNAME)+3);
+ assert(esize == strlen(HOSTNAME) + 3);
size -= 2;
data += 2;
@@ -103,12 +104,15 @@ static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data, u
}
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
int ret;
if (htype == GNUTLS_HANDSHAKE_CLIENT_HELLO && post) {
- ret = gnutls_ext_raw_parse(NULL, ext_callback, msg, GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO);
+ ret =
+ gnutls_ext_raw_parse(NULL, ext_callback, msg,
+ GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO);
assert(ret >= 0);
}
@@ -132,15 +136,17 @@ static void client(int fd)
/* Initialize TLS session
*/
- gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_DATAGRAM);
+ gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM);
gnutls_handshake_set_timeout(session, get_timeout());
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-DTLS1.2", NULL)>= 0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-DTLS1.2", NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
gnutls_transport_set_int(session, fd);
- assert(gnutls_server_name_set(session, GNUTLS_NAME_DNS, HOSTNAME, strlen(HOSTNAME))>=0);
+ assert(gnutls_server_name_set
+ (session, GNUTLS_NAME_DNS, HOSTNAME, strlen(HOSTNAME)) >= 0);
/* Perform the TLS handshake
*/
@@ -168,7 +174,7 @@ static void client(int fd)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -179,7 +185,6 @@ static void client(int fd)
gnutls_global_deinit();
}
-
static void server(int fd)
{
int ret;
@@ -197,17 +202,18 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
- gnutls_init(&session, GNUTLS_SERVER|GNUTLS_DATAGRAM);
+ gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
gnutls_handshake_set_timeout(session, get_timeout());
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CLIENT_HELLO,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CLIENT_HELLO,
GNUTLS_HOOK_POST,
handshake_callback);
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-DTLS1.2", NULL)>= 0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-DTLS1.2", NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -288,5 +294,4 @@ void doit(void)
return;
}
-
#endif /* _WIN32 */
diff --git a/tests/gnutls_hmac_fast.c b/tests/gnutls_hmac_fast.c
index 88c060be72..2a0b75cf17 100644
--- a/tests/gnutls_hmac_fast.c
+++ b/tests/gnutls_hmac_fast.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -81,52 +81,57 @@ void doit(void)
}
err =
- gnutls_hmac_fast(GNUTLS_MAC_AES_GMAC_128, "keykeykeykeykeyk", 16, "abcdefghabc", 8,
- digest);
+ gnutls_hmac_fast(GNUTLS_MAC_AES_GMAC_128, "keykeykeykeykeyk", 16,
+ "abcdefghabc", 8, digest);
if (err >= 0)
- fail("gnutls_hmac_fast(GMAC-128) succeeded unexpectedly: %d\n", err);
+ fail("gnutls_hmac_fast(GMAC-128) succeeded unexpectedly: %d\n",
+ err);
else if (err != GNUTLS_E_INVALID_REQUEST)
fail("gnutls_hmac_fast(GMAC-128) failure: %d\n", err);
else if (debug)
success("gnutls_hmac_fast(GMAC-128) OK\n");
err =
- gnutls_hmac_fast(GNUTLS_MAC_AES_GMAC_192, "keykeykeykeykeykeykeykey", 24,
- "abcdefghabc", 8,
+ gnutls_hmac_fast(GNUTLS_MAC_AES_GMAC_192,
+ "keykeykeykeykeykeykeykey", 24, "abcdefghabc", 8,
digest);
if (err >= 0)
- fail("gnutls_hmac_fast(GMAC-192) succeeded unexpectedly: %d\n", err);
+ fail("gnutls_hmac_fast(GMAC-192) succeeded unexpectedly: %d\n",
+ err);
else if (err != GNUTLS_E_INVALID_REQUEST)
fail("gnutls_hmac_fast(GMAC-192) failure: %d\n", err);
else if (debug)
success("gnutls_hmac_fast(GMAC-192) OK\n");
err =
- gnutls_hmac_fast(GNUTLS_MAC_AES_GMAC_256, "keykeykeykeykeykeykeykeykeykeyke", 32,
- "abcdefghabc", 8,
- digest);
+ gnutls_hmac_fast(GNUTLS_MAC_AES_GMAC_256,
+ "keykeykeykeykeykeykeykeykeykeyke", 32,
+ "abcdefghabc", 8, digest);
if (err >= 0)
- fail("gnutls_hmac_fast(GMAC-256) succeeded unexpectedly: %d\n", err);
+ fail("gnutls_hmac_fast(GMAC-256) succeeded unexpectedly: %d\n",
+ err);
else if (err != GNUTLS_E_INVALID_REQUEST)
fail("gnutls_hmac_fast(GMAC-256) failure: %d\n", err);
else if (debug)
success("gnutls_hmac_fast(GMAC-256) OK\n");
err =
- gnutls_hmac_fast(GNUTLS_MAC_UMAC_96, "keykeykeykeykeyk", 16, "abcdefghabc", 8,
- digest);
+ gnutls_hmac_fast(GNUTLS_MAC_UMAC_96, "keykeykeykeykeyk", 16,
+ "abcdefghabc", 8, digest);
if (err >= 0)
- fail("gnutls_hmac_fast(UMAC-96) succeeded unexpectedly: %d\n", err);
+ fail("gnutls_hmac_fast(UMAC-96) succeeded unexpectedly: %d\n",
+ err);
else if (err != GNUTLS_E_INVALID_REQUEST)
fail("gnutls_hmac_fast(UMAC-96) failure: %d\n", err);
else if (debug)
success("gnutls_hmac_fast(UMAC-96) OK\n");
err =
- gnutls_hmac_fast(GNUTLS_MAC_UMAC_128, "keykeykeykeykeyk", 16, "abcdefghabc", 8,
- digest);
+ gnutls_hmac_fast(GNUTLS_MAC_UMAC_128, "keykeykeykeykeyk", 16,
+ "abcdefghabc", 8, digest);
if (err >= 0)
- fail("gnutls_hmac_fast(UMAC-128) succeeded unexpectedly: %d\n", err);
+ fail("gnutls_hmac_fast(UMAC-128) succeeded unexpectedly: %d\n",
+ err);
else if (err != GNUTLS_E_INVALID_REQUEST)
fail("gnutls_hmac_fast(UMAC-128) failure: %d\n", err);
else if (debug)
diff --git a/tests/gnutls_ktls.c b/tests/gnutls_ktls.c
index 9192707781..13d6dace5c 100644
--- a/tests/gnutls_ktls.c
+++ b/tests/gnutls_ktls.c
@@ -1,5 +1,5 @@
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -14,23 +14,23 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/crypto.h>
-#include <gnutls/dtls.h>
-#include <gnutls/socket.h>
-#include <signal.h>
-#include <assert.h>
-#include <errno.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/crypto.h>
+# include <gnutls/dtls.h>
+# include <gnutls/socket.h>
+# include <signal.h>
+# include <assert.h>
+# include <errno.h>
+
+# include "cert-common.h"
+# include "utils.h"
static void server_log_func(int level, const char *str)
{
@@ -42,8 +42,8 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
-#define MSG "Hello world!"
+# define MAX_BUF 1024
+# define MSG "Hello world!"
static void client(int fd, const char *prio)
{
@@ -83,62 +83,61 @@ static void client(int fd, const char *prio)
success("client: Handshake was completed\n");
ret = gnutls_transport_is_ktls_enabled(session);
- if (!(ret & GNUTLS_KTLS_RECV)){
+ if (!(ret & GNUTLS_KTLS_RECV)) {
fail("client: KTLS was not properly initialized\n");
goto end;
}
/* server send message via gnutls_record_send */
memset(buffer, 0, sizeof(buffer));
- do{
+ do {
ret = gnutls_record_recv(session, buffer, sizeof(buffer));
}
- while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
goto end;
}
- if(strncmp(buffer, MSG, ret)){
+ if (strncmp(buffer, MSG, ret)) {
fail("client: Message doesn't match\n");
goto end;
}
if (debug)
- success ("client: messages received\n");
+ success("client: messages received\n");
/* server send message via gnutls_record_sendfile */
memset(buffer, 0, sizeof(buffer));
- do{
+ do {
ret = gnutls_record_recv(session, buffer, sizeof(buffer));
}
- while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
goto end;
}
- if(strncmp(buffer, MSG, ret)){
+ if (strncmp(buffer, MSG, ret)) {
fail("client: Message doesn't match\n");
goto end;
}
if (debug)
- success ("client: messages received\n");
+ success("client: messages received\n");
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("client: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("client: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
ret = 0;
@@ -179,15 +178,15 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
ret = gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
gnutls_init(&session, GNUTLS_SERVER);
gnutls_handshake_set_timeout(session, 0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -207,28 +206,29 @@ static void server(int fd, const char *prio)
success("server: Handshake was completed\n");
ret = gnutls_transport_is_ktls_enabled(session);
- if (!(ret & GNUTLS_KTLS_SEND)){
+ if (!(ret & GNUTLS_KTLS_SEND)) {
fail("server: KTLS was not properly initialized\n");
goto end;
}
do {
- ret = gnutls_record_send(session, MSG, strlen(MSG)+1);
+ ret = gnutls_record_send(session, MSG, strlen(MSG) + 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("server: data sending has failed (%s)\n\n",
gnutls_strerror(ret));
- goto end;
+ goto end;
}
/* send file
*/
FILE *fp = tmpfile();
- if (fp == NULL){
+ if (fp == NULL) {
fail("temporary file for testing couldn't be created");
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0)
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
goto end;
}
@@ -242,21 +242,23 @@ static void server(int fd, const char *prio)
}
do {
- ret = gnutls_record_send_file(session, fileno(fp), &offset, 512);
+ ret =
+ gnutls_record_send_file(session, fileno(fp), &offset, 512);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("server: data sending has failed (%s)\n\n",
gnutls_strerror(ret));
- goto end;
+ goto end;
}
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0)
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
ret = 0;
-end:
+ end:
close(fd);
gnutls_deinit(session);
@@ -264,7 +266,7 @@ end:
gnutls_global_deinit();
- if (ret){
+ if (ret) {
terminate();
}
@@ -291,7 +293,7 @@ static void run(const char *prio)
signal(SIGPIPE, SIG_IGN);
listener = socket(AF_INET, SOCK_STREAM, 0);
- if (listener == -1){
+ if (listener == -1) {
fail("error in listener(): %s\n", strerror(errno));
}
@@ -300,14 +302,14 @@ static void run(const char *prio)
saddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
saddr.sin_port = 0;
- ret = bind(listener, (struct sockaddr*)&saddr, sizeof(saddr));
- if (ret == -1){
+ ret = bind(listener, (struct sockaddr *)&saddr, sizeof(saddr));
+ if (ret == -1) {
fail("error in bind(): %s\n", strerror(errno));
}
addrlen = sizeof(saddr);
- ret = getsockname(listener, (struct sockaddr*)&saddr, &addrlen);
- if (ret == -1){
+ ret = getsockname(listener, (struct sockaddr *)&saddr, &addrlen);
+ if (ret == -1) {
fail("error in getsockname(): %s\n", strerror(errno));
}
@@ -335,12 +337,12 @@ static void run(const char *prio)
check_wait_status(status);
} else {
fd = socket(AF_INET, SOCK_STREAM, 0);
- if (fd == -1){
+ if (fd == -1) {
fail("error in socket(): %s\n", strerror(errno));
exit(1);
}
usleep(1000000);
- connect(fd, (struct sockaddr*)&saddr, addrlen);
+ connect(fd, (struct sockaddr *)&saddr, addrlen);
client(fd, prio);
exit(0);
}
diff --git a/tests/gnutls_ocsp_resp_list_import2.c b/tests/gnutls_ocsp_resp_list_import2.c
index 1157f6e2e6..787496e7bc 100644
--- a/tests/gnutls_ocsp_resp_list_import2.c
+++ b/tests/gnutls_ocsp_resp_list_import2.c
@@ -22,7 +22,7 @@
/* This tests key import for gnutls_ocsp_resp_t APIs */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -38,10 +38,9 @@
#define testfail(fmt, ...) \
fail("%s: "fmt, name, ##__VA_ARGS__)
-static void load_list(const char *name, const gnutls_datum_t *txt,
+static void load_list(const char *name, const gnutls_datum_t * txt,
unsigned int nocsps,
- int format,
- unsigned flags, int exp_err)
+ int format, unsigned flags, int exp_err)
{
gnutls_ocsp_resp_t *ocsps;
unsigned int i, size;
@@ -51,15 +50,17 @@ static void load_list(const char *name, const gnutls_datum_t *txt,
if (ret < 0) {
if (exp_err == ret)
return;
- testfail("gnutls_x509_crt_list_import: %s\n", gnutls_strerror(ret));
+ testfail("gnutls_x509_crt_list_import: %s\n",
+ gnutls_strerror(ret));
}
- for (i=0;i<size;i++)
+ for (i = 0; i < size; i++)
gnutls_ocsp_resp_deinit(ocsps[i]);
gnutls_free(ocsps);
if (size != nocsps)
- testfail("imported number (%d) doesn't match expected (%d)\n", size, nocsps);
+ testfail("imported number (%d) doesn't match expected (%d)\n",
+ size, nocsps);
return;
}
@@ -74,147 +75,147 @@ typedef struct test_st {
} test_st;
static const char long_chain_pem[] =
- "-----BEGIN OCSP RESPONSE-----\n"
- "MIICOgoBAKCCAjMwggIvBgkrBgEFBQcwAQEEggIgMIICHDCBhaEUMBIxEDAOBgNV\n"
- "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIyMDQ5WjBcMFowRTAJBgUrDgMCGgUABBSy\n"
- "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI3\n"
- "ZFj6e1Jv14IAGA8yMDE3MTAxODEyMjA0OVowDQYJKoZIhvcNAQELBQADggGBAJg8\n"
- "/9F2k7DdQsqMfU+f53gUHZAlZzRRPPYQfrmMGfSaMmr9W3fpCrLNMV4PWxGndTh7\n"
- "AforaCwUb6+QyWlnE3B4UUQLphaEawnDJ/8GJZAnCIcjyxpWYZ4onEIZ6pN8BRQE\n"
- "f8ccQN01xlB5RtdqsVmvxtoM0husO0YJDnsCwwFVXulPEFgWuFSoVLsx65lkc+4/\n"
- "RM67+QrbNpBRgKrhb8MAE2WANjpjSAVSf5GWsH9T/F2HDG5crApFIoNywK9e21zk\n"
- "qYAWQ6tVcps3QbvvIEXVy/jOqVASeaxuwHmkdBz4SNT83LvaNnJGBTKXTGukPKAO\n"
- "t6xJpFLwrNWNhgfbw2fklWJSMzMtAEkjzBJi+4kn1SfLdcTLYBf9Tnoq1wsJhAMg\n"
- "OFNzcWb8ZJxuGh7FXgytneM38sL8oTEmLKHfBRnWGOglfCMj3olvXpjotrIlKDAS\n"
- "GbGElY+PZXUtkKiN2cNAecjIodzQFgL+YL6jWKLEuuWGT/MvRrliL83kGmKDdg==\n"
- "-----END OCSP RESPONSE-----\n"
- "-----BEGIN OCSP RESPONSE-----\n"
- "MIICNwoBAKCCAjAwggIsBgkrBgEFBQcwAQEEggIdMIICGTCBgqERMA8xDTALBgNV\n"
- "BAMTBENBLTMYDzIwMTcxMDE4MTIzODUyWjBcMFowRTAJBgUrDgMCGgUABBS3yg+r\n"
- "3G+4sJZ6FayYCg8Z/qQS3gQUHoXtf55x+gidN0hDoBLv5arh44oCDFejHTI1s0/Q\n"
- "ufXnPIIAGA8yMDE3MTAxODEyMzg1MlowDQYJKoZIhvcNAQELBQADggGBALMParB9\n"
- "K97DlT4FmMdPScoT7oAAsar4XxKLU9+oraht7H+WTAYSpnCxh/ugR17G0jtzTzIw\n"
- "nLQFAyR9MDYKp4Om4YqQ7r+43DiIqKVU25WcrVifUbtkR+LbjH+Bk1UHvFE8mCOX\n"
- "ZB+cmQyjGap1RX0dnj2Wm48vUwqp71nA8AYcXL575xZ4rb9DDhaoV2h3S0Zlu4IN\n"
- "btuDIVsxJ53kqkGjjVB4/R0RtqCXOI2ThMK3SfDWqwzF9tYA763VVXi+g+w3oyv4\n"
- "ZtP8QUWOVUY4azpElX1wqoO8znUjxs1AzROLUeLPK8GMLVIZLP361J2kLgcj0Gdq\n"
- "GIVH5N54p6bl5OgSUP3EdKbFRZyCVZ2n8Der3Cf9PtfvGV7Ze4Cv/CCN6rJkk54P\n"
- "6auP6pEJg0ESGC5fop5HFCyVM+W/ot0A1cxN0+cHYlqB1NQholLqe3psDjJ2EoIK\n"
- "LtN5dRLO6z5L74CwwiJ1SeLh8XyJtr/ee9RnFB56XCzO7lyhbHPx/VT6Qw==\n"
- "-----END OCSP RESPONSE-----\n"
- "-----BEGIN OCSP RESPONSE-----\n"
- "MIIGUwoBAKCCBkwwggZIBgkrBgEFBQcwAQEEggY5MIIGNTCBhaEUMBIxEDAOBgNV\n"
- "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIwOTMwWjBcMFowRTAJBgUrDgMCGgUABBSy\n"
- "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI2\n"
- "yAyhyrC99oIAGA8yMDE3MTAxODEyMDkzMFowDQYJKoZIhvcNAQENBQADggGBAFZk\n"
- "KxCq5yZ/8X+Glw4YtHWSZRIrRp8+lpjkqxDRDuoI4qUBdaRbdqxJK57xSvJ5Ok4V\n"
- "gf9N02WOrkq7MzWLD7ZdMu/14SW/vVIdmfI04Ps4NGya71OykMb7daCMvGuO2N4z\n"
- "5G/yrfKiT8JYR+JobTo6swqCPaSFAFg+ADWdax//n66wmuLHDpqzfFLp2lBXNXJx\n"
- "gafAQCjqK84JRx2xgEFZ9l3TPOoR2BO5DzJqKXK+wcMbtUxNDaHV8MTsxVqTQXoB\n"
- "JLN6cYKjxghCkQ5r54YLr77fB1qMNfhffy9gBN0q8g3AHG+gMICkNYPTw8w1Rjbr\n"
- "6bE8CI/MXcrZrz7UWLuQXe8BnNk+Vn7PE6oRxCLSoJ8b6fB4cDvMIX1rRpc/Owxb\n"
- "j6gockpBTebdLr3xpB6iopRurTPCVtMpz3VeNVnrB3gjCyBO62ErRncKn6RXqEVF\n"
- "bo+01Zz8hHjDgtm2p9V24CMJK5p8fLVthJ0fRwyc1oYr3fT6l+dy50JSdOhNAaCC\n"
- "BBUwggQRMIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUA\n"
- "MA8xDTALBgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5\n"
- "NTlaMBIxEDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAw\n"
- "ggGKAoIBgQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2\n"
- "WLiope/xNL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioV\n"
- "tvPQwEpvuI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR\n"
- "5+wGsJDvkfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJr\n"
- "P+GtLiG0AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj\n"
- "0Sk3Rq93JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1\n"
- "ROsdk4WUed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH\n"
- "4vysDO9UZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B\n"
- "48xfmyIFjgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMD\n"
- "BwYAMB0GA1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5\n"
- "qIYZY7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58\n"
- "oDRy5a0oPvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68\n"
- "kogjKs31QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmT\n"
- "sQOdv/bzR+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT4\n"
- "5SGw7c7FcumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2\n"
- "gaygWNiD+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiu\n"
- "jgUV0TZHEyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c\n"
- "4FdrCByVhaeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1\n"
- "Y1MQ72SnfrzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
- "-----END OCSP RESPONSE-----\n";
+ "-----BEGIN OCSP RESPONSE-----\n"
+ "MIICOgoBAKCCAjMwggIvBgkrBgEFBQcwAQEEggIgMIICHDCBhaEUMBIxEDAOBgNV\n"
+ "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIyMDQ5WjBcMFowRTAJBgUrDgMCGgUABBSy\n"
+ "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI3\n"
+ "ZFj6e1Jv14IAGA8yMDE3MTAxODEyMjA0OVowDQYJKoZIhvcNAQELBQADggGBAJg8\n"
+ "/9F2k7DdQsqMfU+f53gUHZAlZzRRPPYQfrmMGfSaMmr9W3fpCrLNMV4PWxGndTh7\n"
+ "AforaCwUb6+QyWlnE3B4UUQLphaEawnDJ/8GJZAnCIcjyxpWYZ4onEIZ6pN8BRQE\n"
+ "f8ccQN01xlB5RtdqsVmvxtoM0husO0YJDnsCwwFVXulPEFgWuFSoVLsx65lkc+4/\n"
+ "RM67+QrbNpBRgKrhb8MAE2WANjpjSAVSf5GWsH9T/F2HDG5crApFIoNywK9e21zk\n"
+ "qYAWQ6tVcps3QbvvIEXVy/jOqVASeaxuwHmkdBz4SNT83LvaNnJGBTKXTGukPKAO\n"
+ "t6xJpFLwrNWNhgfbw2fklWJSMzMtAEkjzBJi+4kn1SfLdcTLYBf9Tnoq1wsJhAMg\n"
+ "OFNzcWb8ZJxuGh7FXgytneM38sL8oTEmLKHfBRnWGOglfCMj3olvXpjotrIlKDAS\n"
+ "GbGElY+PZXUtkKiN2cNAecjIodzQFgL+YL6jWKLEuuWGT/MvRrliL83kGmKDdg==\n"
+ "-----END OCSP RESPONSE-----\n"
+ "-----BEGIN OCSP RESPONSE-----\n"
+ "MIICNwoBAKCCAjAwggIsBgkrBgEFBQcwAQEEggIdMIICGTCBgqERMA8xDTALBgNV\n"
+ "BAMTBENBLTMYDzIwMTcxMDE4MTIzODUyWjBcMFowRTAJBgUrDgMCGgUABBS3yg+r\n"
+ "3G+4sJZ6FayYCg8Z/qQS3gQUHoXtf55x+gidN0hDoBLv5arh44oCDFejHTI1s0/Q\n"
+ "ufXnPIIAGA8yMDE3MTAxODEyMzg1MlowDQYJKoZIhvcNAQELBQADggGBALMParB9\n"
+ "K97DlT4FmMdPScoT7oAAsar4XxKLU9+oraht7H+WTAYSpnCxh/ugR17G0jtzTzIw\n"
+ "nLQFAyR9MDYKp4Om4YqQ7r+43DiIqKVU25WcrVifUbtkR+LbjH+Bk1UHvFE8mCOX\n"
+ "ZB+cmQyjGap1RX0dnj2Wm48vUwqp71nA8AYcXL575xZ4rb9DDhaoV2h3S0Zlu4IN\n"
+ "btuDIVsxJ53kqkGjjVB4/R0RtqCXOI2ThMK3SfDWqwzF9tYA763VVXi+g+w3oyv4\n"
+ "ZtP8QUWOVUY4azpElX1wqoO8znUjxs1AzROLUeLPK8GMLVIZLP361J2kLgcj0Gdq\n"
+ "GIVH5N54p6bl5OgSUP3EdKbFRZyCVZ2n8Der3Cf9PtfvGV7Ze4Cv/CCN6rJkk54P\n"
+ "6auP6pEJg0ESGC5fop5HFCyVM+W/ot0A1cxN0+cHYlqB1NQholLqe3psDjJ2EoIK\n"
+ "LtN5dRLO6z5L74CwwiJ1SeLh8XyJtr/ee9RnFB56XCzO7lyhbHPx/VT6Qw==\n"
+ "-----END OCSP RESPONSE-----\n"
+ "-----BEGIN OCSP RESPONSE-----\n"
+ "MIIGUwoBAKCCBkwwggZIBgkrBgEFBQcwAQEEggY5MIIGNTCBhaEUMBIxEDAOBgNV\n"
+ "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIwOTMwWjBcMFowRTAJBgUrDgMCGgUABBSy\n"
+ "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI2\n"
+ "yAyhyrC99oIAGA8yMDE3MTAxODEyMDkzMFowDQYJKoZIhvcNAQENBQADggGBAFZk\n"
+ "KxCq5yZ/8X+Glw4YtHWSZRIrRp8+lpjkqxDRDuoI4qUBdaRbdqxJK57xSvJ5Ok4V\n"
+ "gf9N02WOrkq7MzWLD7ZdMu/14SW/vVIdmfI04Ps4NGya71OykMb7daCMvGuO2N4z\n"
+ "5G/yrfKiT8JYR+JobTo6swqCPaSFAFg+ADWdax//n66wmuLHDpqzfFLp2lBXNXJx\n"
+ "gafAQCjqK84JRx2xgEFZ9l3TPOoR2BO5DzJqKXK+wcMbtUxNDaHV8MTsxVqTQXoB\n"
+ "JLN6cYKjxghCkQ5r54YLr77fB1qMNfhffy9gBN0q8g3AHG+gMICkNYPTw8w1Rjbr\n"
+ "6bE8CI/MXcrZrz7UWLuQXe8BnNk+Vn7PE6oRxCLSoJ8b6fB4cDvMIX1rRpc/Owxb\n"
+ "j6gockpBTebdLr3xpB6iopRurTPCVtMpz3VeNVnrB3gjCyBO62ErRncKn6RXqEVF\n"
+ "bo+01Zz8hHjDgtm2p9V24CMJK5p8fLVthJ0fRwyc1oYr3fT6l+dy50JSdOhNAaCC\n"
+ "BBUwggQRMIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUA\n"
+ "MA8xDTALBgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5\n"
+ "NTlaMBIxEDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAw\n"
+ "ggGKAoIBgQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2\n"
+ "WLiope/xNL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioV\n"
+ "tvPQwEpvuI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR\n"
+ "5+wGsJDvkfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJr\n"
+ "P+GtLiG0AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj\n"
+ "0Sk3Rq93JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1\n"
+ "ROsdk4WUed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH\n"
+ "4vysDO9UZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B\n"
+ "48xfmyIFjgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMD\n"
+ "BwYAMB0GA1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5\n"
+ "qIYZY7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58\n"
+ "oDRy5a0oPvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68\n"
+ "kogjKs31QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmT\n"
+ "sQOdv/bzR+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT4\n"
+ "5SGw7c7FcumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2\n"
+ "gaygWNiD+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiu\n"
+ "jgUV0TZHEyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c\n"
+ "4FdrCByVhaeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1\n"
+ "Y1MQ72SnfrzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
+ "-----END OCSP RESPONSE-----\n";
-static const char bad_long_chain_pem[] = /* second response is broken */
- "-----BEGIN OCSP RESPONSE-----\n"
- "MIICOgoBAKCCAjMwggIvBgkrBgEFBQcwAQEEggIgMIICHDCBhaEUMBIxEDAOBgNV\n"
- "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIyMDQ5WjBcMFowRTAJBgUrDgMCGgUABBSy\n"
- "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI3\n"
- "ZFj6e1Jv14IAGA8yMDE3MTAxODEyMjA0OVowDQYJKoZIhvcNAQELBQADggGBAJg8\n"
- "/9F2k7DdQsqMfU+f53gUHZAlZzRRPPYQfrmMGfSaMmr9W3fpCrLNMV4PWxGndTh7\n"
- "AforaCwUb6+QyWlnE3B4UUQLphaEawnDJ/8GJZAnCIcjyxpWYZ4onEIZ6pN8BRQE\n"
- "f8ccQN01xlB5RtdqsVmvxtoM0husO0YJDnsCwwFVXulPEFgWuFSoVLsx65lkc+4/\n"
- "RM67+QrbNpBRgKrhb8MAE2WANjpjSAVSf5GWsH9T/F2HDG5crApFIoNywK9e21zk\n"
- "qYAWQ6tVcps3QbvvIEXVy/jOqVASeaxuwHmkdBz4SNT83LvaNnJGBTKXTGukPKAO\n"
- "t6xJpFLwrNWNhgfbw2fklWJSMzMtAEkjzBJi+4kn1SfLdcTLYBf9Tnoq1wsJhAMg\n"
- "OFNzcWb8ZJxuGh7FXgytneM38sL8oTEmLKHfBRnWGOglfCMj3olvXpjotrIlKDAS\n"
- "GbGElY+PZXUtkKiN2cNAecjIodzQFgL+YL6jWKLEuuWGT/MvRrliL83kGmKDdg==\n"
- "-----END OCSP RESPONSE-----\n"
- "-----BEGIN OCSP RESPONSE-----\n"
- "MIICNwoBAKCCAjAwggIsBgkrBgEFBQcwAQEEggIdMIICGTCBgqERMA8xDTALBgNV\n"
- "BAMTBENBLTMYDzIwMTcxMDE4MTIzODUyWjBcMFowRTAJBgUrDgMCGgUABBS3yg+r\n"
- "3G+4sJZ6FayYCg8Z/qQS3gQUHoXtf55x+gidN0hDoBLv5arh44oCDFejHTI1s0/Q\n"
- "ufXnPIIAGA8yMDE3MTAxODEyMzg1MlowDQYJKoZIhvcNAQELBQADggGBALMParB9\n"
- "K97DlT4FmMdPScoT7oAAsar4XxKLU9+oraht7H+WTAYSpnCxh/ugR1fG0jtzTzIw\n"
- "nLQFAyR9MDYKp4Om4YqQ7r+43DiIqKVU25WcrVifUbtkR+LbjH+Bk1UHvFE8mCOX\n"
- "ZB+cmQyjGap1RX0dnj2Wm48vwwqp71nA8AYcXL575xZ4rb9DDhaoV2h3S0Zlu4IN\n"
- "btuDIVsxJ53kqkGjjVB4/R0RtqCXOI2ThMK3SfDWqwzF9tYA763VVXi+g+w3oyv4\n"
- "ZtP8QUWOVUY4azpzlX1wqoO8znUjxs1AzROLUeLPK8GMLVIZLP361J2kLgcj0Gdq\n"
- "GIVH5N54p6bl5OgSUP3EdKbFRZyCVZ2n8Der3Cf9PtfvGV7Ze4Cv/CCN6rJkk54P\n"
- "6auP6pEJg0ESGC5fop5HFCyVM+W/ot0A1cxN0+cHYlqB1NQholLqe3psDjJ2EoIK\n"
- "LtN5dRLO6z5L74CwwiJ1SeLh8XyJtr/ee9RnFB56XCzO7lyhbHPx/VT6Qw==\n"
- "-----END OCSP RESPONSE-----\n"
- "-----BEGIN OCSP RESPONSE-----\n"
- "MIIGUwoBAKCCBkwwggZIBgkrBgEFBQcwAQEEggY5MIIGNTCBhaEUMBIxEDAOBgNV\n"
- "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIwOTMwWjBcMFowRTAJBgUrDgMCGgUABBSy\n"
- "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI2\n"
- "yAyhyrC99oIAGA8yMDE3MTAxODEyMDkzMFowDQYJKoZIhvcNAQENBQADggGBAFZk\n"
- "KxCq5yZ/8X+Glw4YtHWSZRIrRp8+lpjkqxDRDuoI4qUBdaRbdqxJK57xSvJ5Ok4V\n"
- "gf9N02WOrkq7MzWLD7ZdMu/14SW/vVIdmfI04Ps4NGya71OykMb7daCMvGuO2N4z\n"
- "5G/yrfKiT8JYR+JobTo6swqCPaSFAFg+ADWdax//n66wmuLHDpqzfFLp2lBXNXJx\n"
- "gafAQCjqK84JRx2xgEFZ9l3TPOoR2BO5DzJqKXK+wcMbtUxNDaHV8MTsxVqTQXoB\n"
- "JLN6cYKjxghCkQ5r54YLr77fB1qMNfhffy9gBN0q8g3AHG+gMICkNYPTw8w1Rjbr\n"
- "6bE8CI/MXcrZrz7UWLuQXe8BnNk+Vn7PE6oRxCLSoJ8b6fB4cDvMIX1rRpc/Owxb\n"
- "j6gockpBTebdLr3xpB6iopRurTPCVtMpz3VeNVnrB3gjCyBO62ErRncKn6RXqEVF\n"
- "bo+01Zz8hHjDgtm2p9V24CMJK5p8fLVthJ0fRwyc1oYr3fT6l+dy50JSdOhNAaCC\n"
- "BBUwggQRMIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUA\n"
- "MA8xDTALBgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5\n"
- "NTlaMBIxEDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAw\n"
- "ggGKAoIBgQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2\n"
- "WLiope/xNL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioV\n"
- "tvPQwEpvuI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR\n"
- "5+wGsJDvkfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJr\n"
- "P+GtLiG0AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj\n"
- "0Sk3Rq93JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1\n"
- "ROsdk4WUed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH\n"
- "4vysDO9UZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B\n"
- "48xfmyIFjgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMD\n"
- "BwYAMB0GA1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5\n"
- "qIYZY7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58\n"
- "oDRy5a0oPvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68\n"
- "kogjKs31QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmT\n"
- "sQOdv/bzR+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT4\n"
- "5SGw7c7FcumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2\n"
- "gaygWNiD+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiu\n"
- "jgUV0TZHEyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c\n"
- "4FdrCByVhaeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1\n"
- "Y1MQ72SnfrzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
- "-----END OCSP RESPONSE-----\n";
+static const char bad_long_chain_pem[] = /* second response is broken */
+ "-----BEGIN OCSP RESPONSE-----\n"
+ "MIICOgoBAKCCAjMwggIvBgkrBgEFBQcwAQEEggIgMIICHDCBhaEUMBIxEDAOBgNV\n"
+ "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIyMDQ5WjBcMFowRTAJBgUrDgMCGgUABBSy\n"
+ "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI3\n"
+ "ZFj6e1Jv14IAGA8yMDE3MTAxODEyMjA0OVowDQYJKoZIhvcNAQELBQADggGBAJg8\n"
+ "/9F2k7DdQsqMfU+f53gUHZAlZzRRPPYQfrmMGfSaMmr9W3fpCrLNMV4PWxGndTh7\n"
+ "AforaCwUb6+QyWlnE3B4UUQLphaEawnDJ/8GJZAnCIcjyxpWYZ4onEIZ6pN8BRQE\n"
+ "f8ccQN01xlB5RtdqsVmvxtoM0husO0YJDnsCwwFVXulPEFgWuFSoVLsx65lkc+4/\n"
+ "RM67+QrbNpBRgKrhb8MAE2WANjpjSAVSf5GWsH9T/F2HDG5crApFIoNywK9e21zk\n"
+ "qYAWQ6tVcps3QbvvIEXVy/jOqVASeaxuwHmkdBz4SNT83LvaNnJGBTKXTGukPKAO\n"
+ "t6xJpFLwrNWNhgfbw2fklWJSMzMtAEkjzBJi+4kn1SfLdcTLYBf9Tnoq1wsJhAMg\n"
+ "OFNzcWb8ZJxuGh7FXgytneM38sL8oTEmLKHfBRnWGOglfCMj3olvXpjotrIlKDAS\n"
+ "GbGElY+PZXUtkKiN2cNAecjIodzQFgL+YL6jWKLEuuWGT/MvRrliL83kGmKDdg==\n"
+ "-----END OCSP RESPONSE-----\n"
+ "-----BEGIN OCSP RESPONSE-----\n"
+ "MIICNwoBAKCCAjAwggIsBgkrBgEFBQcwAQEEggIdMIICGTCBgqERMA8xDTALBgNV\n"
+ "BAMTBENBLTMYDzIwMTcxMDE4MTIzODUyWjBcMFowRTAJBgUrDgMCGgUABBS3yg+r\n"
+ "3G+4sJZ6FayYCg8Z/qQS3gQUHoXtf55x+gidN0hDoBLv5arh44oCDFejHTI1s0/Q\n"
+ "ufXnPIIAGA8yMDE3MTAxODEyMzg1MlowDQYJKoZIhvcNAQELBQADggGBALMParB9\n"
+ "K97DlT4FmMdPScoT7oAAsar4XxKLU9+oraht7H+WTAYSpnCxh/ugR1fG0jtzTzIw\n"
+ "nLQFAyR9MDYKp4Om4YqQ7r+43DiIqKVU25WcrVifUbtkR+LbjH+Bk1UHvFE8mCOX\n"
+ "ZB+cmQyjGap1RX0dnj2Wm48vwwqp71nA8AYcXL575xZ4rb9DDhaoV2h3S0Zlu4IN\n"
+ "btuDIVsxJ53kqkGjjVB4/R0RtqCXOI2ThMK3SfDWqwzF9tYA763VVXi+g+w3oyv4\n"
+ "ZtP8QUWOVUY4azpzlX1wqoO8znUjxs1AzROLUeLPK8GMLVIZLP361J2kLgcj0Gdq\n"
+ "GIVH5N54p6bl5OgSUP3EdKbFRZyCVZ2n8Der3Cf9PtfvGV7Ze4Cv/CCN6rJkk54P\n"
+ "6auP6pEJg0ESGC5fop5HFCyVM+W/ot0A1cxN0+cHYlqB1NQholLqe3psDjJ2EoIK\n"
+ "LtN5dRLO6z5L74CwwiJ1SeLh8XyJtr/ee9RnFB56XCzO7lyhbHPx/VT6Qw==\n"
+ "-----END OCSP RESPONSE-----\n"
+ "-----BEGIN OCSP RESPONSE-----\n"
+ "MIIGUwoBAKCCBkwwggZIBgkrBgEFBQcwAQEEggY5MIIGNTCBhaEUMBIxEDAOBgNV\n"
+ "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIwOTMwWjBcMFowRTAJBgUrDgMCGgUABBSy\n"
+ "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI2\n"
+ "yAyhyrC99oIAGA8yMDE3MTAxODEyMDkzMFowDQYJKoZIhvcNAQENBQADggGBAFZk\n"
+ "KxCq5yZ/8X+Glw4YtHWSZRIrRp8+lpjkqxDRDuoI4qUBdaRbdqxJK57xSvJ5Ok4V\n"
+ "gf9N02WOrkq7MzWLD7ZdMu/14SW/vVIdmfI04Ps4NGya71OykMb7daCMvGuO2N4z\n"
+ "5G/yrfKiT8JYR+JobTo6swqCPaSFAFg+ADWdax//n66wmuLHDpqzfFLp2lBXNXJx\n"
+ "gafAQCjqK84JRx2xgEFZ9l3TPOoR2BO5DzJqKXK+wcMbtUxNDaHV8MTsxVqTQXoB\n"
+ "JLN6cYKjxghCkQ5r54YLr77fB1qMNfhffy9gBN0q8g3AHG+gMICkNYPTw8w1Rjbr\n"
+ "6bE8CI/MXcrZrz7UWLuQXe8BnNk+Vn7PE6oRxCLSoJ8b6fB4cDvMIX1rRpc/Owxb\n"
+ "j6gockpBTebdLr3xpB6iopRurTPCVtMpz3VeNVnrB3gjCyBO62ErRncKn6RXqEVF\n"
+ "bo+01Zz8hHjDgtm2p9V24CMJK5p8fLVthJ0fRwyc1oYr3fT6l+dy50JSdOhNAaCC\n"
+ "BBUwggQRMIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUA\n"
+ "MA8xDTALBgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5\n"
+ "NTlaMBIxEDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAw\n"
+ "ggGKAoIBgQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2\n"
+ "WLiope/xNL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioV\n"
+ "tvPQwEpvuI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR\n"
+ "5+wGsJDvkfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJr\n"
+ "P+GtLiG0AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj\n"
+ "0Sk3Rq93JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1\n"
+ "ROsdk4WUed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH\n"
+ "4vysDO9UZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B\n"
+ "48xfmyIFjgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMD\n"
+ "BwYAMB0GA1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5\n"
+ "qIYZY7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58\n"
+ "oDRy5a0oPvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68\n"
+ "kogjKs31QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmT\n"
+ "sQOdv/bzR+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT4\n"
+ "5SGw7c7FcumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2\n"
+ "gaygWNiD+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiu\n"
+ "jgUV0TZHEyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c\n"
+ "4FdrCByVhaeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1\n"
+ "Y1MQ72SnfrzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
+ "-----END OCSP RESPONSE-----\n";
static const gnutls_datum_t long_chain = {
- (void*)long_chain_pem, sizeof(long_chain_pem)-1
+ (void *)long_chain_pem, sizeof(long_chain_pem) - 1
};
static const gnutls_datum_t bad_long_chain = {
- (void*)bad_long_chain_pem, sizeof(bad_long_chain_pem)-1
+ (void *)bad_long_chain_pem, sizeof(bad_long_chain_pem) - 1
};
static const gnutls_datum_t no_chain = {
- (void*)" ", 1
+ (void *)" ", 1
};
static const test_st tests[] = {
@@ -223,34 +224,30 @@ static const test_st tests[] = {
.nocsps = 0,
.flags = 0,
.format = GNUTLS_X509_FMT_PEM,
- .exp_err = GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE
- },
+ .exp_err = GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE},
{.name = "load of 3 ocsps, with expected failure",
.ocsps = &bad_long_chain,
.nocsps = 3,
.flags = 0,
.format = GNUTLS_X509_FMT_PEM,
- .exp_err = GNUTLS_E_ASN1_TAG_ERROR
- },
+ .exp_err = GNUTLS_E_ASN1_TAG_ERROR},
{.name = "load 3 ocsps",
.ocsps = &long_chain,
.nocsps = 3,
.format = GNUTLS_X509_FMT_PEM,
- .flags = 0
- },
+ .flags = 0},
{.name = "load 1 DER ocsp",
.ocsps = &ocsp_subca3_unknown,
.nocsps = 1,
.format = GNUTLS_X509_FMT_DER,
- .flags = 0
- }
+ .flags = 0}
};
void doit(void)
{
unsigned int i;
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
success("checking: %s\n", tests[i].name);
load_list(tests[i].name, tests[i].ocsps, tests[i].nocsps,
diff --git a/tests/gnutls_record_overhead.c b/tests/gnutls_record_overhead.c
index 3fbd7f8778..c5de442564 100644
--- a/tests/gnutls_record_overhead.c
+++ b/tests/gnutls_record_overhead.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This is a unit test of _gnutls_record_overhead. */
@@ -37,7 +37,6 @@
#include <setjmp.h>
#include <cmocka.h>
-
#include <gnutls/gnutls.h>
#include "../lib/gnutls_int.h"
@@ -51,13 +50,12 @@
/* #pragma doesn't work to suppress preprocessor warnings like -Wunused-macros.
* So we just use the above defined macros here. */
#if defined _gnutls_debug_log && defined gnutls_assert && defined gnutls_assert_val
-#include "../lib/algorithms.h"
+# include "../lib/algorithms.h"
#endif
-unsigned _gnutls_record_overhead(const version_entry_st *ver,
- const cipher_entry_st *cipher,
- const mac_entry_st *mac,
- unsigned max);
+unsigned _gnutls_record_overhead(const version_entry_st * ver,
+ const cipher_entry_st * cipher,
+ const mac_entry_st * mac, unsigned max);
#define OVERHEAD(v, c, m) \
_gnutls_record_overhead(version_to_entry(v), cipher_to_entry(c), mac_to_entry(m), \
@@ -69,25 +67,35 @@ unsigned _gnutls_record_overhead(const version_entry_st *ver,
static void check_aes_gcm(void **glob_state)
{
- const unsigned ov = 16+8;
+ const unsigned ov = 16 + 8;
/* Under AES-GCM the overhead is constant */
- assert_int_equal(OVERHEAD(GNUTLS_TLS1_2, GNUTLS_CIPHER_AES_128_GCM, GNUTLS_MAC_AEAD), ov);
- assert_int_equal(MAX_OVERHEAD(GNUTLS_TLS1_2, GNUTLS_CIPHER_AES_128_GCM, GNUTLS_MAC_AEAD), ov);
+ assert_int_equal(OVERHEAD
+ (GNUTLS_TLS1_2, GNUTLS_CIPHER_AES_128_GCM,
+ GNUTLS_MAC_AEAD), ov);
+ assert_int_equal(MAX_OVERHEAD
+ (GNUTLS_TLS1_2, GNUTLS_CIPHER_AES_128_GCM,
+ GNUTLS_MAC_AEAD), ov);
}
static void check_tls13_aes_gcm(void **glob_state)
{
- const unsigned ov = 16+1;
+ const unsigned ov = 16 + 1;
/* Under AES-GCM the overhead is constant */
- assert_int_equal(OVERHEAD(GNUTLS_TLS1_3, GNUTLS_CIPHER_AES_128_GCM, GNUTLS_MAC_AEAD), ov);
- assert_int_equal(MAX_OVERHEAD(GNUTLS_TLS1_3, GNUTLS_CIPHER_AES_128_GCM, GNUTLS_MAC_AEAD), ov);
+ assert_int_equal(OVERHEAD
+ (GNUTLS_TLS1_3, GNUTLS_CIPHER_AES_128_GCM,
+ GNUTLS_MAC_AEAD), ov);
+ assert_int_equal(MAX_OVERHEAD
+ (GNUTLS_TLS1_3, GNUTLS_CIPHER_AES_128_GCM,
+ GNUTLS_MAC_AEAD), ov);
}
static void check_aes_sha1_min(void **glob_state)
{
const unsigned mac = 20;
const unsigned block = 16;
- assert_int_equal(OVERHEAD(GNUTLS_TLS1_2, GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA1), 1+mac+block);
+ assert_int_equal(OVERHEAD
+ (GNUTLS_TLS1_2, GNUTLS_CIPHER_AES_128_CBC,
+ GNUTLS_MAC_SHA1), 1 + mac + block);
}
static void check_aes_sha1_max(void **glob_state)
@@ -95,7 +103,9 @@ static void check_aes_sha1_max(void **glob_state)
const unsigned mac = 20;
const unsigned block = 16;
- assert_int_equal(MAX_OVERHEAD(GNUTLS_TLS1_2, GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA1), block+mac+block);
+ assert_int_equal(MAX_OVERHEAD
+ (GNUTLS_TLS1_2, GNUTLS_CIPHER_AES_128_CBC,
+ GNUTLS_MAC_SHA1), block + mac + block);
}
int main(void)
diff --git a/tests/gnutls_session_set_id.c b/tests/gnutls_session_set_id.c
index b085c0a176..db878a2a9c 100644
--- a/tests/gnutls_session_set_id.c
+++ b/tests/gnutls_session_set_id.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,17 +35,16 @@
const char *side;
-static gnutls_datum_t test_id = { (void*)"\xff\xff\xff\xff\xff\xff", 6 };
+static gnutls_datum_t test_id = { (void *)"\xff\xff\xff\xff\xff\xff", 6 };
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-static gnutls_datum_t dbdata = {NULL, 0};
+static gnutls_datum_t dbdata = { NULL, 0 };
-static int
-wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
+static int wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
{
unsigned *try_resume = dbf;
@@ -65,9 +64,10 @@ wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
static gnutls_datum_t wrap_db_fetch(void *dbf, gnutls_datum_t key)
{
unsigned *try_resume = dbf;
- gnutls_datum_t r = {NULL, 0};
+ gnutls_datum_t r = { NULL, 0 };
- if (key.size != test_id.size || memcmp(test_id.data, key.data, test_id.size) != 0)
+ if (key.size != test_id.size
+ || memcmp(test_id.data, key.data, test_id.size) != 0)
fail("received ID does not match the expected\n");
if (!(*try_resume))
@@ -106,14 +106,13 @@ static void start(const char *test, unsigned try_resume)
if (debug)
gnutls_global_set_log_level(6);
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_set_default_priority(server);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -124,14 +123,16 @@ static void start(const char *test, unsigned try_resume)
gnutls_db_set_store_function(server, wrap_db_store);
gnutls_db_set_ptr(server, &try_resume);
- assert(gnutls_certificate_allocate_credentials(&clientx509cred)>=0);
- assert(gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_certificate_allocate_credentials(&clientx509cred) >= 0);
+ assert(gnutls_certificate_set_x509_trust_mem
+ (clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&client, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred)>=0);
+ clientx509cred) >= 0);
- assert(gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
@@ -152,9 +153,8 @@ static void start(const char *test, unsigned try_resume)
gnutls_deinit(client);
gnutls_deinit(server);
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_set_default_priority(server);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -165,12 +165,13 @@ static void start(const char *test, unsigned try_resume)
gnutls_db_set_store_function(server, wrap_db_store);
gnutls_db_set_ptr(server, &try_resume);
- assert(gnutls_init(&client, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred)>=0);
+ clientx509cred) >= 0);
- assert(gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
@@ -183,7 +184,8 @@ static void start(const char *test, unsigned try_resume)
gnutls_free(data.data);
if (try_resume) {
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_UNEXPECTED_PACKET, GNUTLS_E_AGAIN);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_UNEXPECTED_PACKET,
+ GNUTLS_E_AGAIN);
} else {
HANDSHAKE(client, server);
}
diff --git a/tests/gnutls_x509_crq_sign.c b/tests/gnutls_x509_crq_sign.c
index 42cf6800d7..685e30623d 100644
--- a/tests/gnutls_x509_crq_sign.c
+++ b/tests/gnutls_x509_crq_sign.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -34,37 +34,36 @@
#include "utils.h"
static unsigned char saved_crq_pem[] =
- "-----BEGIN NEW CERTIFICATE REQUEST-----\n"
- "MIIBgzCB7QIBADAAMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7ZkP18sXX\n"
- "tozMxd/1iDuxyUtqDqGtIFBACIChT1yj0Phsz+Y89+wEdhMXi2SJIlvA3VN8O+18\n"
- "BLuAuSi+jpvGjqClEsv1Vx6i57u3M0mf47tKrmpNaP/JEeIyjc49gAuNde/YAIGP\n"
- "KAQDoCKNYQQH+rY3fSEHSdIJYWmYkKNYqQIDAQABoEQwQgYJKoZIhvcNAQkOMTUw\n"
- "MzAPBgNVHRMBAf8EBTADAgEAMA0GA1UdDwEB/wQDAwEAMBEGA1UdEQEB/wQHMAWC\n"
- "A2ZvbzANBgkqhkiG9w0BAQsFAAOBgQBKFQhbmY8RJBPiXm80PmYnZH7WaMeaOLJZ\n"
- "JBVjsmdjFtDbgHaY9Vizrbh9jFM8iyvw01y+FZqCt2kSzvaPRoQad06NCV00oN6W\n"
- "mG2iRKBSwVEX7JleigliK3M3Y5dlHV77CC1Or9BGC9Rbx9n9mV6z/NAWW5LyPHb5\n"
- "gf4oXM6OPw==\n"
- "-----END NEW CERTIFICATE REQUEST-----\n";
-
-const gnutls_datum_t saved_crq = { saved_crq_pem, sizeof(saved_crq_pem)-1 };
+ "-----BEGIN NEW CERTIFICATE REQUEST-----\n"
+ "MIIBgzCB7QIBADAAMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7ZkP18sXX\n"
+ "tozMxd/1iDuxyUtqDqGtIFBACIChT1yj0Phsz+Y89+wEdhMXi2SJIlvA3VN8O+18\n"
+ "BLuAuSi+jpvGjqClEsv1Vx6i57u3M0mf47tKrmpNaP/JEeIyjc49gAuNde/YAIGP\n"
+ "KAQDoCKNYQQH+rY3fSEHSdIJYWmYkKNYqQIDAQABoEQwQgYJKoZIhvcNAQkOMTUw\n"
+ "MzAPBgNVHRMBAf8EBTADAgEAMA0GA1UdDwEB/wQDAwEAMBEGA1UdEQEB/wQHMAWC\n"
+ "A2ZvbzANBgkqhkiG9w0BAQsFAAOBgQBKFQhbmY8RJBPiXm80PmYnZH7WaMeaOLJZ\n"
+ "JBVjsmdjFtDbgHaY9Vizrbh9jFM8iyvw01y+FZqCt2kSzvaPRoQad06NCV00oN6W\n"
+ "mG2iRKBSwVEX7JleigliK3M3Y5dlHV77CC1Or9BGC9Rbx9n9mV6z/NAWW5LyPHb5\n"
+ "gf4oXM6OPw==\n" "-----END NEW CERTIFICATE REQUEST-----\n";
+
+const gnutls_datum_t saved_crq = { saved_crq_pem, sizeof(saved_crq_pem) - 1 };
static unsigned char key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIICXAIBAAKBgQC7ZkP18sXXtozMxd/1iDuxyUtqDqGtIFBACIChT1yj0Phsz+Y8\n"
- "9+wEdhMXi2SJIlvA3VN8O+18BLuAuSi+jpvGjqClEsv1Vx6i57u3M0mf47tKrmpN\n"
- "aP/JEeIyjc49gAuNde/YAIGPKAQDoCKNYQQH+rY3fSEHSdIJYWmYkKNYqQIDAQAB\n"
- "AoGADpmARG5CQxS+AesNkGmpauepiCz1JBF/JwnyiX6vEzUh0Ypd39SZztwrDxvF\n"
- "PJjQaKVljml1zkJpIDVsqvHdyVdse8M+Qn6hw4x2p5rogdvhhIL1mdWo7jWeVJTF\n"
- "RKB7zLdMPs3ySdtcIQaF9nUAQ2KJEvldkO3m/bRJFEp54k0CQQDYy+RlTmwRD6hy\n"
- "7UtMjR0H3CSZJeQ8svMCxHLmOluG9H1UKk55ZBYfRTsXniqUkJBZ5wuV1L+pR9EK\n"
- "ca89a+1VAkEA3UmBelwEv2u9cAU1QjKjmwju1JgXbrjEohK+3B5y0ESEXPAwNQT9\n"
- "TrDM1m9AyxYTWLxX93dI5QwNFJtmbtjeBQJARSCWXhsoaDRG8QZrCSjBxfzTCqZD\n"
- "ZXtl807ymCipgJm60LiAt0JLr4LiucAsMZz6+j+quQbSakbFCACB8SLV1QJBAKZQ\n"
- "YKf+EPNtnmta/rRKKvySsi3GQZZN+Dt3q0r094XgeTsAqrqujVNfPhTMeP4qEVBX\n"
- "/iVX2cmMTSh3w3z8MaECQEp0XJWDVKOwcTW6Ajp9SowtmiZ3YDYo1LF9igb4iaLv\n"
- "sWZGfbnU3ryjvkb6YuFjgtzbZDZHWQCo8/cOtOBmPdk=\n"
- "-----END RSA PRIVATE KEY-----\n";
-const gnutls_datum_t key = { key_pem, sizeof(key_pem)-1 };
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIICXAIBAAKBgQC7ZkP18sXXtozMxd/1iDuxyUtqDqGtIFBACIChT1yj0Phsz+Y8\n"
+ "9+wEdhMXi2SJIlvA3VN8O+18BLuAuSi+jpvGjqClEsv1Vx6i57u3M0mf47tKrmpN\n"
+ "aP/JEeIyjc49gAuNde/YAIGPKAQDoCKNYQQH+rY3fSEHSdIJYWmYkKNYqQIDAQAB\n"
+ "AoGADpmARG5CQxS+AesNkGmpauepiCz1JBF/JwnyiX6vEzUh0Ypd39SZztwrDxvF\n"
+ "PJjQaKVljml1zkJpIDVsqvHdyVdse8M+Qn6hw4x2p5rogdvhhIL1mdWo7jWeVJTF\n"
+ "RKB7zLdMPs3ySdtcIQaF9nUAQ2KJEvldkO3m/bRJFEp54k0CQQDYy+RlTmwRD6hy\n"
+ "7UtMjR0H3CSZJeQ8svMCxHLmOluG9H1UKk55ZBYfRTsXniqUkJBZ5wuV1L+pR9EK\n"
+ "ca89a+1VAkEA3UmBelwEv2u9cAU1QjKjmwju1JgXbrjEohK+3B5y0ESEXPAwNQT9\n"
+ "TrDM1m9AyxYTWLxX93dI5QwNFJtmbtjeBQJARSCWXhsoaDRG8QZrCSjBxfzTCqZD\n"
+ "ZXtl807ymCipgJm60LiAt0JLr4LiucAsMZz6+j+quQbSakbFCACB8SLV1QJBAKZQ\n"
+ "YKf+EPNtnmta/rRKKvySsi3GQZZN+Dt3q0r094XgeTsAqrqujVNfPhTMeP4qEVBX\n"
+ "/iVX2cmMTSh3w3z8MaECQEp0XJWDVKOwcTW6Ajp9SowtmiZ3YDYo1LF9igb4iaLv\n"
+ "sWZGfbnU3ryjvkb6YuFjgtzbZDZHWQCo8/cOtOBmPdk=\n"
+ "-----END RSA PRIVATE KEY-----\n";
+const gnutls_datum_t key = { key_pem, sizeof(key_pem) - 1 };
static time_t mytime(time_t * t)
{
@@ -130,12 +129,12 @@ static gnutls_x509_crq_t generate_crq(void)
return crq;
}
-static void verify_crq(const gnutls_datum_t *pem)
+static void verify_crq(const gnutls_datum_t * pem)
{
gnutls_x509_crq_t crq;
assert(gnutls_x509_crq_init(&crq) >= 0);
- assert(gnutls_x509_crq_import(crq, pem, GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_x509_crq_import(crq, pem, GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_x509_crq_verify(crq, 0) >= 0);
gnutls_x509_crq_deinit(crq);
}
@@ -155,7 +154,7 @@ void doit(void)
printf("%s\n", out.data);
assert(out.size == saved_crq.size);
- assert(memcmp(out.data, saved_crq.data, out.size)==0);
+ assert(memcmp(out.data, saved_crq.data, out.size) == 0);
verify_crq(&out);
diff --git a/tests/gnutls_x509_crt_list_import.c b/tests/gnutls_x509_crt_list_import.c
index 51fdfcb9f4..3a53e1a80d 100644
--- a/tests/gnutls_x509_crt_list_import.c
+++ b/tests/gnutls_x509_crt_list_import.c
@@ -22,7 +22,7 @@
/* This tests key import for gnutls_x509_privkey_t APIs */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -42,19 +42,18 @@
#define MAX_CERTS 8
-static void load_list(const char *name, const gnutls_datum_t *txt,
+static void load_list(const char *name, const gnutls_datum_t * txt,
unsigned int ncerts,
unsigned int max1,
- unsigned int max2,
- unsigned flags, int exp_err)
+ unsigned int max2, unsigned flags, int exp_err)
{
gnutls_x509_crt_t certs[MAX_CERTS];
unsigned int max, i;
unsigned retried = 0;
int ret;
- assert(max1<=MAX_CERTS);
- assert(max2<=MAX_CERTS);
+ assert(max1 <= MAX_CERTS);
+ assert(max2 <= MAX_CERTS);
if (max1)
max = max1;
@@ -62,26 +61,33 @@ static void load_list(const char *name, const gnutls_datum_t *txt,
max = MAX_CERTS;
retry:
- ret = gnutls_x509_crt_list_import(certs, &max, txt, GNUTLS_X509_FMT_PEM, flags);
+ ret =
+ gnutls_x509_crt_list_import(certs, &max, txt, GNUTLS_X509_FMT_PEM,
+ flags);
if (ret < 0) {
- if (retried == 0 && ret == GNUTLS_E_SHORT_MEMORY_BUFFER && max2 && max2 != max) {
+ if (retried == 0 && ret == GNUTLS_E_SHORT_MEMORY_BUFFER && max2
+ && max2 != max) {
max = max2;
retried = 1;
goto retry;
}
if (exp_err == ret)
return;
- testfail("gnutls_x509_crt_list_import: %s\n", gnutls_strerror(ret));
+ testfail("gnutls_x509_crt_list_import: %s\n",
+ gnutls_strerror(ret));
}
- for (i=0;i<max;i++)
+ for (i = 0; i < max; i++)
gnutls_x509_crt_deinit(certs[i]);
if (max != ncerts)
- testfail("imported number (%d) doesn't match expected (%d)\n", max, ncerts);
+ testfail("imported number (%d) doesn't match expected (%d)\n",
+ max, ncerts);
if (ret != (int)ncerts)
- testfail("imported number (%d) doesn't match return value (%d)\n", ncerts, ret);
+ testfail
+ ("imported number (%d) doesn't match return value (%d)\n",
+ ncerts, ret);
return;
}
@@ -97,266 +103,257 @@ typedef struct test_st {
} test_st;
static const char long_chain_pem[] = {
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDQDCCAiigAwIBAgIMU/xyoxPcYVSaqH7/MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
-"BgNVBAMTBENBLTMwIhgPMjAxNDA4MjYxMTQyMjdaGA85OTk5MTIzMTIzNTk1OVow\n"
-"EzERMA8GA1UEChMIc2VydmVyLTQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
-"AoIBAQDkemVOFdbhBX1qwjxQHr3LmPktNEVBmXjrIvyp++dN7gCYzubnpiLcBE+B\n"
-"S2b+ppxBYm9ynKijhGrO+lZPCQRXWmqUg4YDfvnEqM4n04dCE98jN4IhwvWZyP3p\n"
-"+U8Ra9mVIBAY2MReo1dcJQHNmo560xzxioHsGNQHAfYgVRHiE5hIXchYbWCkBrKt\n"
-"XOoSSTmfgCF3L22p6S1q143VoKUr/C9zqinZo6feGAiTprj6YH0tHswjGBbxTFLb\n"
-"q3ThbGDR5FNYL5q0FvQRNbjoF4oFitZ3P1Qkrzq7VIJd9k8J1C3g/16U2dDTKqRX\n"
-"ejX7maFZ6oRZJASsRSowEs4wTfRpAgMBAAGjgZMwgZAwDAYDVR0TAQH/BAIwADAa\n"
-"BgNVHREEEzARgg93d3cuZXhhbXBsZS5jb20wEwYDVR0lBAwwCgYIKwYBBQUHAwEw\n"
-"DwYDVR0PAQH/BAUDAwegADAdBgNVHQ4EFgQUAEYPmcA7S/KChiet+Z6+RRmogiww\n"
-"HwYDVR0jBBgwFoAUjxZogHO3y4VdOLuibQHsQYdsGgwwDQYJKoZIhvcNAQELBQAD\n"
-"ggEBABlA3npOWwl3eBycaLVOsmdPS+fUwhLnF8hxoyKpHe/33k1nIxd7iiqNZ3iw\n"
-"6pAjnuRUCjajU+mlx6ekrmga8mpmeD6JH0I3lq+mrPeCeFXm8gc1yJpcFJ/C2l4o\n"
-"+3HNY7RJKcfoQxIbiKOtZ6x9E0aYuk3s1Um3Pf8GLwENoou7Stg5qHsLbkN/GBuP\n"
-"n3p/4iqik2k7VblldDe3oCob5vMp0qrAEhlNl2Fn65rcB4+bp1EiC1Z+y6X8DpRb\n"
-"NomKUsOiGcbFjQ4ptT6fePmPHX1mgDCx+5/22cyBUYElefYP7Xzr+C8tqqO3JFKe\n"
-"hqEmQRsll9bkqpu2dh83c3i9u4g=\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDATCCAemgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0y\n"
-"MCIYDzIwMTQwODI2MTE0MjI3WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/4ofaL+ilmmM+\n"
-"bGaFRy5GYQXtkD8sA3+/GWsunR928fQS68Zh6iWU+gPm52i7Gfbh7piKWA5Tb63w\n"
-"unbS6dPsfPSvgRMZGKJpzxqVcBQAnTS4MuDPlXNg3K3HMyVtbxekII8jFeGEJuCL\n"
-"mBMT4dI48IZRzj+2mir38w2cQPfomaKtjg2jMokG8Z9/4+SU9VJCcY1/yZk8fCbS\n"
-"dBbwhnDq10yvhPCHgX6KMYmoJr28CYgH29Q9sDP1XN3VvAx5X+PtW/6pyF0U5E2e\n"
-"gRzVv7Hr3FJKvytbNxRMCoy2YOyvsTP0fIhiXdtkulTKXyiq4cxA+aYByOu1FjU4\n"
-"NicWbiZ/AgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQUjxZogHO3y4VdOLuibQHsQYdsGgwwHwYDVR0jBBgwFoAUwAx0\n"
-"aL2SrsoSZcZUuFlq0O17BSgwDQYJKoZIhvcNAQELBQADggEBAGQvj8SquT31w8JK\n"
-"tHDL4hWOU0EwVwWl4aYsvP17WspiFIIHKApPFfQOD0/Wg9zB48ble5ZSwKA3Vc3B\n"
-"DJgd77HgVAd/Nu1TS5TFDKhpuvFPJVpJ3cqt3pTsVGMzf6GRz5kG3Ly/pBgkqiMG\n"
-"gv6vTlEvzNe4FcnhNBEaRKpK5Hc5+GnxtfVoki3tjG5u+oa9/OwzAT+7IOyiIKHw\n"
-"7F4Cm56QAWMJgVNm329AjZrJLeNuKoQWGueNew4dOe/zlYEaVMG4So74twXQwIAB\n"
-"Zko7+wk6eI4CkI4Zair36s1jLkCF8xnL8FExTT3sg6B6KBHaNUuwc67WPILVuFuc\n"
-"VfVBOd8=\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDMzCCAhugAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0x\n"
-"MCIYDzIwMTQwODI2MTE0MjI3WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIf3as4EONSgWu\n"
-"Mbm9w3DbKd/su1UWlrYrcpVqmU3MKD5jXBxyoThSBWxmq1+wcNDmE1on6pHY1aad\n"
-"k3188JKMC83wEcyQXaiH3DlTYFXXkkI+JJNUGlfAMSoXG248SpoCIOhCETUG03iP\n"
-"Z3AZludaHYsv4akAh1Kl6qn66+bKM53l/YhoQDxhoGaYvO8ZSwKnx5DEiq447jpW\n"
-"M+sUFe38RPaMjHpyc1GRctvQDzJGm+8ZRujYDH+fGNzVDDlRyRnsVanFGNdyfhmy\n"
-"BN2D2+2VEvzAWlaGg2wQN8gF3+luavIVEgETXODZPa5FF7ulmQmhqGrZcw6WtDmY\n"
-"hUbNmbL7AgMBAAGjgZUwgZIwDwYDVR0TAQH/BAUwAwEB/zAuBgNVHR4BAf8EJDAi\n"
-"oA8wDYILZXhhbXBsZS5jb22hDzANggtleGFtcGxlLm9yZzAPBgNVHQ8BAf8EBQMD\n"
-"BwQAMB0GA1UdDgQWBBTADHRovZKuyhJlxlS4WWrQ7XsFKDAfBgNVHSMEGDAWgBTg\n"
-"+khaP8UOjcwSKVxgT+zhh0aWPDANBgkqhkiG9w0BAQsFAAOCAQEASq5yBiib8FPk\n"
-"oRONZ4COgGqjXvigeOBRgbHf9AfagpoYDbOKDQS8Iwt9VHZfJxdcJ1OuM1aQqXlN\n"
-"dUyf+JdR/24Nv1yrhL+dEfRGka6Db96YuPsbetVhNIiMm2teXDIPgGzAKuTm4xPA\n"
-"6zyNVy5AwfDQ5hIZ+EUsfOoerIElNyAbh66law4MWuiv4oyX4u49m5lxLuL6mFpR\n"
-"CIZYWjZMa0MJvWMKGm/AhpfEOkbT58Fg5YmxhnKMk6ps1eR6mh3NgH1IbUqvEYNC\n"
-"eS42X3kAMxEDseBOMths0gxeLL+IHdQpXnAjZppW8zEIcN3yfknul35r8R6Qt9aK\n"
-"q5+/m1ADBw==\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwODI2MTE0MjI2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIe0eOnLaV750K\n"
-"4+mVaAftRrJp8t68KJivcRFpkl0ucQs6gwNf9EsVkHineOR3RXypjJ7Hsv+4PIKp\n"
-"BhEOTprYUKcBaxHK/NIezV6NrO1AwuD6MtJDQF9jGpSy0F3eRUoBCjVYhTl+JxcZ\n"
-"hGHPJd8WMeanQWY4xG4gTwtpjF3tPU5+JGQwLk5SbcLicM2QMG3CapZinOGK3/XC\n"
-"Fjsvf5ZhxnixayhfiX/n9BmeP1yxz7YORNYPlL8z1CcLZqJsyjZnNkVwNvl4ft9I\n"
-"FOKBLoOTSGocHFIFXh5b50GG6QHgvN+TiAwdpfRTUskWVg8VVIh7ymgDoI2jQhk4\n"
-"EeMaZHd/AgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQU4PpIWj/FDo3MEilcYE/s4YdGljwwHwYDVR0jBBgwFoAU6XJK\n"
-"EOUYTuioWHG+1YBuz0yPFmowDQYJKoZIhvcNAQELBQADggEBAJOCrGvbeRqPj+uL\n"
-"2FIfbkYZAx2nGl3RVv5ZK2YeDpU1udxLihc6Sr67OZbiA4QMKxwgI7pupuwXmyql\n"
-"vs9dWnNpjzgfc0OqqzVdOFlfw8ew2DQb2sUXCcIkwqXb/pBQ9BvcgdDASu+rm74j\n"
-"JWDZlhcqeVhZROKfpsjsl+lHgZ7kANwHtUJg/WvK8J971hgElqeBO1O97cGkw/in\n"
-"e8ooK9Lxk3Td+WdI8C7juCYiwsGqFEKuj7b6937uzvpFmm1fYDdOHhTMcHTHIVTr\n"
-"uxSSurQ4XSDF6Iuel3+IdpLL79UYJ7Cf4IhBWj0EloF6xWTA6nUYl3gzKpx1Tg1U\n"
-"x2+26YY=\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwODI2MTE0MjI2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqLuVrTyiqz+Zs\n"
-"9Qw5V2Z1y1YSWU6aRDMs+34rP2gwT41C69HBh2LLRS04iJUVQydwnEJukwKlTNRn\n"
-"1lEpvWgtYmySWA2SyI4xkVzCXgwv0k7WyLwa39hfNY1rXAqhDTL8VO0nXxi8hCMW\n"
-"ohaXcvsieglhN5uwu6voEdY3Gwtx4V8ysDJ2P9EBo49ZHdpBOv+3YLDxbWZuL/tI\n"
-"nYkBUHHfWGhUHsRsu0EGob3SFnfiooCbE/vtmn9rUuBEQDqOjOg3el/aTPJzcMi/\n"
-"RTz+8ho17ZrQRKHZGKWq9Skank+2X9FZoYKFCUlBm6RVud1R54QYZEIj7W9ujQLN\n"
-"LJrcIwBDAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQU6XJKEOUYTuioWHG+1YBuz0yPFmowDQYJKoZIhvcNAQELBQAD\n"
-"ggEBAEeXYGhZ8fWDpCGfSGEDX8FTqLwfDXxw18ZJjQJwus7bsJ9K/hAXnasXrn0f\n"
-"TJ+uJi8muqzP1V376mSUzlwXIzLZCtbwRdDhJJYRrLvf5zfHxHeDgvDALn+1AduF\n"
-"G/GzCVIFsYNSMdKGwNRp6Ucgl43BPZs6Swn2DXrxxW7Gng+8dvUS2XGLLdH6q1O3\n"
-"U1EgJilng+VXx9Rg3yCs5xDiehASySsM6MN/+v+Ouf9lkoQCEgrtlW5Lb/neOBlA\n"
-"aS8PPQuKkIEggNd8hW88YWQOJXMiCAgFppVp5B1Vbghn9IDJQISx/AXAoDXQvQfE\n"
-"bdOzcKFyDuklHl2IQPnYTFxm/G8=\n"
-"-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDQDCCAiigAwIBAgIMU/xyoxPcYVSaqH7/MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwIhgPMjAxNDA4MjYxMTQyMjdaGA85OTk5MTIzMTIzNTk1OVow\n"
+ "EzERMA8GA1UEChMIc2VydmVyLTQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
+ "AoIBAQDkemVOFdbhBX1qwjxQHr3LmPktNEVBmXjrIvyp++dN7gCYzubnpiLcBE+B\n"
+ "S2b+ppxBYm9ynKijhGrO+lZPCQRXWmqUg4YDfvnEqM4n04dCE98jN4IhwvWZyP3p\n"
+ "+U8Ra9mVIBAY2MReo1dcJQHNmo560xzxioHsGNQHAfYgVRHiE5hIXchYbWCkBrKt\n"
+ "XOoSSTmfgCF3L22p6S1q143VoKUr/C9zqinZo6feGAiTprj6YH0tHswjGBbxTFLb\n"
+ "q3ThbGDR5FNYL5q0FvQRNbjoF4oFitZ3P1Qkrzq7VIJd9k8J1C3g/16U2dDTKqRX\n"
+ "ejX7maFZ6oRZJASsRSowEs4wTfRpAgMBAAGjgZMwgZAwDAYDVR0TAQH/BAIwADAa\n"
+ "BgNVHREEEzARgg93d3cuZXhhbXBsZS5jb20wEwYDVR0lBAwwCgYIKwYBBQUHAwEw\n"
+ "DwYDVR0PAQH/BAUDAwegADAdBgNVHQ4EFgQUAEYPmcA7S/KChiet+Z6+RRmogiww\n"
+ "HwYDVR0jBBgwFoAUjxZogHO3y4VdOLuibQHsQYdsGgwwDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBABlA3npOWwl3eBycaLVOsmdPS+fUwhLnF8hxoyKpHe/33k1nIxd7iiqNZ3iw\n"
+ "6pAjnuRUCjajU+mlx6ekrmga8mpmeD6JH0I3lq+mrPeCeFXm8gc1yJpcFJ/C2l4o\n"
+ "+3HNY7RJKcfoQxIbiKOtZ6x9E0aYuk3s1Um3Pf8GLwENoou7Stg5qHsLbkN/GBuP\n"
+ "n3p/4iqik2k7VblldDe3oCob5vMp0qrAEhlNl2Fn65rcB4+bp1EiC1Z+y6X8DpRb\n"
+ "NomKUsOiGcbFjQ4ptT6fePmPHX1mgDCx+5/22cyBUYElefYP7Xzr+C8tqqO3JFKe\n"
+ "hqEmQRsll9bkqpu2dh83c3i9u4g=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDATCCAemgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0y\n"
+ "MCIYDzIwMTQwODI2MTE0MjI3WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/4ofaL+ilmmM+\n"
+ "bGaFRy5GYQXtkD8sA3+/GWsunR928fQS68Zh6iWU+gPm52i7Gfbh7piKWA5Tb63w\n"
+ "unbS6dPsfPSvgRMZGKJpzxqVcBQAnTS4MuDPlXNg3K3HMyVtbxekII8jFeGEJuCL\n"
+ "mBMT4dI48IZRzj+2mir38w2cQPfomaKtjg2jMokG8Z9/4+SU9VJCcY1/yZk8fCbS\n"
+ "dBbwhnDq10yvhPCHgX6KMYmoJr28CYgH29Q9sDP1XN3VvAx5X+PtW/6pyF0U5E2e\n"
+ "gRzVv7Hr3FJKvytbNxRMCoy2YOyvsTP0fIhiXdtkulTKXyiq4cxA+aYByOu1FjU4\n"
+ "NicWbiZ/AgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQUjxZogHO3y4VdOLuibQHsQYdsGgwwHwYDVR0jBBgwFoAUwAx0\n"
+ "aL2SrsoSZcZUuFlq0O17BSgwDQYJKoZIhvcNAQELBQADggEBAGQvj8SquT31w8JK\n"
+ "tHDL4hWOU0EwVwWl4aYsvP17WspiFIIHKApPFfQOD0/Wg9zB48ble5ZSwKA3Vc3B\n"
+ "DJgd77HgVAd/Nu1TS5TFDKhpuvFPJVpJ3cqt3pTsVGMzf6GRz5kG3Ly/pBgkqiMG\n"
+ "gv6vTlEvzNe4FcnhNBEaRKpK5Hc5+GnxtfVoki3tjG5u+oa9/OwzAT+7IOyiIKHw\n"
+ "7F4Cm56QAWMJgVNm329AjZrJLeNuKoQWGueNew4dOe/zlYEaVMG4So74twXQwIAB\n"
+ "Zko7+wk6eI4CkI4Zair36s1jLkCF8xnL8FExTT3sg6B6KBHaNUuwc67WPILVuFuc\n"
+ "VfVBOd8=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDMzCCAhugAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0x\n"
+ "MCIYDzIwMTQwODI2MTE0MjI3WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIf3as4EONSgWu\n"
+ "Mbm9w3DbKd/su1UWlrYrcpVqmU3MKD5jXBxyoThSBWxmq1+wcNDmE1on6pHY1aad\n"
+ "k3188JKMC83wEcyQXaiH3DlTYFXXkkI+JJNUGlfAMSoXG248SpoCIOhCETUG03iP\n"
+ "Z3AZludaHYsv4akAh1Kl6qn66+bKM53l/YhoQDxhoGaYvO8ZSwKnx5DEiq447jpW\n"
+ "M+sUFe38RPaMjHpyc1GRctvQDzJGm+8ZRujYDH+fGNzVDDlRyRnsVanFGNdyfhmy\n"
+ "BN2D2+2VEvzAWlaGg2wQN8gF3+luavIVEgETXODZPa5FF7ulmQmhqGrZcw6WtDmY\n"
+ "hUbNmbL7AgMBAAGjgZUwgZIwDwYDVR0TAQH/BAUwAwEB/zAuBgNVHR4BAf8EJDAi\n"
+ "oA8wDYILZXhhbXBsZS5jb22hDzANggtleGFtcGxlLm9yZzAPBgNVHQ8BAf8EBQMD\n"
+ "BwQAMB0GA1UdDgQWBBTADHRovZKuyhJlxlS4WWrQ7XsFKDAfBgNVHSMEGDAWgBTg\n"
+ "+khaP8UOjcwSKVxgT+zhh0aWPDANBgkqhkiG9w0BAQsFAAOCAQEASq5yBiib8FPk\n"
+ "oRONZ4COgGqjXvigeOBRgbHf9AfagpoYDbOKDQS8Iwt9VHZfJxdcJ1OuM1aQqXlN\n"
+ "dUyf+JdR/24Nv1yrhL+dEfRGka6Db96YuPsbetVhNIiMm2teXDIPgGzAKuTm4xPA\n"
+ "6zyNVy5AwfDQ5hIZ+EUsfOoerIElNyAbh66law4MWuiv4oyX4u49m5lxLuL6mFpR\n"
+ "CIZYWjZMa0MJvWMKGm/AhpfEOkbT58Fg5YmxhnKMk6ps1eR6mh3NgH1IbUqvEYNC\n"
+ "eS42X3kAMxEDseBOMths0gxeLL+IHdQpXnAjZppW8zEIcN3yfknul35r8R6Qt9aK\n"
+ "q5+/m1ADBw==\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwODI2MTE0MjI2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIe0eOnLaV750K\n"
+ "4+mVaAftRrJp8t68KJivcRFpkl0ucQs6gwNf9EsVkHineOR3RXypjJ7Hsv+4PIKp\n"
+ "BhEOTprYUKcBaxHK/NIezV6NrO1AwuD6MtJDQF9jGpSy0F3eRUoBCjVYhTl+JxcZ\n"
+ "hGHPJd8WMeanQWY4xG4gTwtpjF3tPU5+JGQwLk5SbcLicM2QMG3CapZinOGK3/XC\n"
+ "Fjsvf5ZhxnixayhfiX/n9BmeP1yxz7YORNYPlL8z1CcLZqJsyjZnNkVwNvl4ft9I\n"
+ "FOKBLoOTSGocHFIFXh5b50GG6QHgvN+TiAwdpfRTUskWVg8VVIh7ymgDoI2jQhk4\n"
+ "EeMaZHd/AgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQU4PpIWj/FDo3MEilcYE/s4YdGljwwHwYDVR0jBBgwFoAU6XJK\n"
+ "EOUYTuioWHG+1YBuz0yPFmowDQYJKoZIhvcNAQELBQADggEBAJOCrGvbeRqPj+uL\n"
+ "2FIfbkYZAx2nGl3RVv5ZK2YeDpU1udxLihc6Sr67OZbiA4QMKxwgI7pupuwXmyql\n"
+ "vs9dWnNpjzgfc0OqqzVdOFlfw8ew2DQb2sUXCcIkwqXb/pBQ9BvcgdDASu+rm74j\n"
+ "JWDZlhcqeVhZROKfpsjsl+lHgZ7kANwHtUJg/WvK8J971hgElqeBO1O97cGkw/in\n"
+ "e8ooK9Lxk3Td+WdI8C7juCYiwsGqFEKuj7b6937uzvpFmm1fYDdOHhTMcHTHIVTr\n"
+ "uxSSurQ4XSDF6Iuel3+IdpLL79UYJ7Cf4IhBWj0EloF6xWTA6nUYl3gzKpx1Tg1U\n"
+ "x2+26YY=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwODI2MTE0MjI2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqLuVrTyiqz+Zs\n"
+ "9Qw5V2Z1y1YSWU6aRDMs+34rP2gwT41C69HBh2LLRS04iJUVQydwnEJukwKlTNRn\n"
+ "1lEpvWgtYmySWA2SyI4xkVzCXgwv0k7WyLwa39hfNY1rXAqhDTL8VO0nXxi8hCMW\n"
+ "ohaXcvsieglhN5uwu6voEdY3Gwtx4V8ysDJ2P9EBo49ZHdpBOv+3YLDxbWZuL/tI\n"
+ "nYkBUHHfWGhUHsRsu0EGob3SFnfiooCbE/vtmn9rUuBEQDqOjOg3el/aTPJzcMi/\n"
+ "RTz+8ho17ZrQRKHZGKWq9Skank+2X9FZoYKFCUlBm6RVud1R54QYZEIj7W9ujQLN\n"
+ "LJrcIwBDAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQU6XJKEOUYTuioWHG+1YBuz0yPFmowDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBAEeXYGhZ8fWDpCGfSGEDX8FTqLwfDXxw18ZJjQJwus7bsJ9K/hAXnasXrn0f\n"
+ "TJ+uJi8muqzP1V376mSUzlwXIzLZCtbwRdDhJJYRrLvf5zfHxHeDgvDALn+1AduF\n"
+ "G/GzCVIFsYNSMdKGwNRp6Ucgl43BPZs6Swn2DXrxxW7Gng+8dvUS2XGLLdH6q1O3\n"
+ "U1EgJilng+VXx9Rg3yCs5xDiehASySsM6MN/+v+Ouf9lkoQCEgrtlW5Lb/neOBlA\n"
+ "aS8PPQuKkIEggNd8hW88YWQOJXMiCAgFppVp5B1Vbghn9IDJQISx/AXAoDXQvQfE\n"
+ "bdOzcKFyDuklHl2IQPnYTFxm/G8=\n" "-----END CERTIFICATE-----\n"
};
-static const char bad_long_chain_pem[] = { /* 3rd-cert is broken */
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDQDCCAiigAwIBAgIMU/xyoxPcYVSaqH7/MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
-"BgNVBAMTBENBLTMwIhgPMjAxNDA4MjYxMTQyMjdaGA85OTk5MTIzMTIzNTk1OVow\n"
-"EzERMA8GA1UEChMIc2VydmVyLTQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
-"AoIBAQDkemVOFdbhBX1qwjxQHr3LmPktNEVBmXjrIvyp++dN7gCYzubnpiLcBE+B\n"
-"S2b+ppxBYm9ynKijhGrO+lZPCQRXWmqUg4YDfvnEqM4n04dCE98jN4IhwvWZyP3p\n"
-"+U8Ra9mVIBAY2MReo1dcJQHNmo560xzxioHsGNQHAfYgVRHiE5hIXchYbWCkBrKt\n"
-"XOoSSTmfgCF3L22p6S1q143VoKUr/C9zqinZo6feGAiTprj6YH0tHswjGBbxTFLb\n"
-"q3ThbGDR5FNYL5q0FvQRNbjoF4oFitZ3P1Qkrzq7VIJd9k8J1C3g/16U2dDTKqRX\n"
-"ejX7maFZ6oRZJASsRSowEs4wTfRpAgMBAAGjgZMwgZAwDAYDVR0TAQH/BAIwADAa\n"
-"BgNVHREEEzARgg93d3cuZXhhbXBsZS5jb20wEwYDVR0lBAwwCgYIKwYBBQUHAwEw\n"
-"DwYDVR0PAQH/BAUDAwegADAdBgNVHQ4EFgQUAEYPmcA7S/KChiet+Z6+RRmogiww\n"
-"HwYDVR0jBBgwFoAUjxZogHO3y4VdOLuibQHsQYdsGgwwDQYJKoZIhvcNAQELBQAD\n"
-"ggEBABlA3npOWwl3eBycaLVOsmdPS+fUwhLnF8hxoyKpHe/33k1nIxd7iiqNZ3iw\n"
-"6pAjnuRUCjajU+mlx6ekrmga8mpmeD6JH0I3lq+mrPeCeFXm8gc1yJpcFJ/C2l4o\n"
-"+3HNY7RJKcfoQxIbiKOtZ6x9E0aYuk3s1Um3Pf8GLwENoou7Stg5qHsLbkN/GBuP\n"
-"n3p/4iqik2k7VblldDe3oCob5vMp0qrAEhlNl2Fn65rcB4+bp1EiC1Z+y6X8DpRb\n"
-"NomKUsOiGcbFjQ4ptT6fePmPHX1mgDCx+5/22cyBUYElefYP7Xzr+C8tqqO3JFKe\n"
-"hqEmQRsll9bkqpu2dh83c3i9u4g=\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDATCCAemgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0y\n"
-"MCIYDzIwMTQwODI2MTE0MjI3WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/4ofaL+ilmmM+\n"
-"bGaFRy5GYQXtkD8sA3+/GWsunR928fQS68Zh6iWU+gPm52i7Gfbh7piKWA5Tb63w\n"
-"unbS6dPsfPSvgRMZGKJpzxqVcBQAnTS4MuDPlXNg3K3HMyVtbxekII8jFeGEJuCL\n"
-"mBMT4dI48IZRzj+2mir38w2cQPfomaKtjg2jMokG8Z9/4+SU9VJCcY1/yZk8fCbS\n"
-"dBbwhnDq10yvhPCHgX6KMYmoJr28CYgH29Q9sDP1XN3VvAx5X+PtW/6pyF0U5E2e\n"
-"gRzVv7Hr3FJKvytbNxRMCoy2YOyvsTP0fIhiXdtkulTKXyiq4cxA+aYByOu1FjU4\n"
-"NicWbiZ/AgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQUjxZogHO3y4VdOLuibQHsQYdsGgwwHwYDVR0jBBgwFoAUwAx0\n"
-"aL2SrsoSZcZUuFlq0O17BSgwDQYJKoZIhvcNAQELBQADggEBAGQvj8SquT31w8JK\n"
-"tHDL4hWOU0EwVwWl4aYsvP17WspiFIIHKApPFfQOD0/Wg9zB48ble5ZSwKA3Vc3B\n"
-"DJgd77HgVAd/Nu1TS5TFDKhpuvFPJVpJ3cqt3pTsVGMzf6GRz5kG3Ly/pBgkqiMG\n"
-"gv6vTlEvzNe4FcnhNBEaRKpK5Hc5+GnxtfVoki3tjG5u+oa9/OwzAT+7IOyiIKHw\n"
-"7F4Cm56QAWMJgVNm329AjZrJLeNuKoQWGueNew4dOe/zlYEaVMG4So74twXQwIAB\n"
-"Zko7+wk6eI4CkI4Zair36s1jLkCF8xnL8FExTT3sg6B6KBHaNUuwc67WPILVuFuc\n"
-"VfVBOd8=\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"XXIDMzCCAhugAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0x\n"
-"MCIYDzIwMTQwODI2MTE0MjI3WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIf3as4EONSgWu\n"
-"Mbm9w3DbKd/su1UWlrYrcpVqmU3MKD5jXBxyoThSBWxmq1+wcNDmE1on6pHY1aad\n"
-"k3188JKMC83wEcyQXaiH3DlTYFXXkkI+JJNUGlfAMSoXG248SpoCIOhCETUG03iP\n"
-"Z3AZludaHYsvQQXXh1Kl6qn66+bKM53l/YhoQDxhoGaYvO8ZSwKnx5DEiq447jpW\n"
-"M+sUFe38RPaMQQXXc1GRctvQDzJGm+8ZRujYDH+fGNzVDDlRyRnsVanFGNdyfhmy\n"
-"BN2D2+2VEvzAQQXXg2wQN8gF3+luavIVEgETXODZPa5FF7ulmQmhqGrZcw6WtDmY\n"
-"hUbNmbL7AgMBQQXXgZUwgZIwDwYDVR0TAQH/BAUwAwEB/zAuBgNVHR4BAf8EJDAi\n"
-"oA8wDYILZXhhQQBsZS5jb22hDzANggtleGFtcGxlLm9yZzAPBgNVHQ8BAf8EBQMD\n"
-"BwQAMB0GA1UdQQQWBBTADHRovZKuyhJlxlS4WWrQ7XsFKDAfBgNVHSMEGDAWgBTg\n"
-"+khaP8UOjcwSQQxgT+zhh0aWPDANBgkqhkiG9w0BAQsFAAOCAQEASq5yBiib8FPk\n"
-"oRONZ4COgGqjQQigeOBRgbHf9AfagpoYDbOKDQS8Iwt9VHZfJxdcJ1OuM1aQqXlN\n"
-"dUyf+JdR/24NQQyrhL+dEfRGka6Db96YuPsbetVhNIiMm2teXDIPgGzAKuTm4xPA\n"
-"6zyNVy5AwfDQQQIZ+EUsfOoerIElNyAbh66law4MWuiv4oyX4u49m5lxLuL6mFpR\n"
-"CIZYWjZMa0MJQQMKGm/AhpfEOkbT58Fg5YmxhnKMk6ps1eR6mh3NgH1IbUqvEYNC\n"
-"eS42X3kAMxEDQQBOMths0gxeLL+IHdQpXnAjZppW8zEIcN3yfknul35r8R6Qt9aK\n"
-"q5+/m1ADBw==\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwODI2MTE0MjI2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIe0eOnLaV750K\n"
-"4+mVaAftRrJp8t68KJivcRFpkl0ucQs6gwNf9EsVkHineOR3RXypjJ7Hsv+4PIKp\n"
-"BhEOTprYUKcBaxHK/NIezV6NrO1AwuD6MtJDQF9jGpSy0F3eRUoBCjVYhTl+JxcZ\n"
-"hGHPJd8WMeanQWY4xG4gTwtpjF3tPU5+JGQwLk5SbcLicM2QMG3CapZinOGK3/XC\n"
-"Fjsvf5ZhxnixayhfiX/n9BmeP1yxz7YORNYPlL8z1CcLZqJsyjZnNkVwNvl4ft9I\n"
-"FOKBLoOTSGocHFIFXh5b50GG6QHgvN+TiAwdpfRTUskWVg8VVIh7ymgDoI2jQhk4\n"
-"EeMaZHd/AgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQU4PpIWj/FDo3MEilcYE/s4YdGljwwHwYDVR0jBBgwFoAU6XJK\n"
-"EOUYTuioWHG+1YBuz0yPFmowDQYJKoZIhvcNAQELBQADggEBAJOCrGvbeRqPj+uL\n"
-"2FIfbkYZAx2nGl3RVv5ZK2YeDpU1udxLihc6Sr67OZbiA4QMKxwgI7pupuwXmyql\n"
-"vs9dWnNpjzgfc0OqqzVdOFlfw8ew2DQb2sUXCcIkwqXb/pBQ9BvcgdDASu+rm74j\n"
-"JWDZlhcqeVhZROKfpsjsl+lHgZ7kANwHtUJg/WvK8J971hgElqeBO1O97cGkw/in\n"
-"e8ooK9Lxk3Td+WdI8C7juCYiwsGqFEKuj7b6937uzvpFmm1fYDdOHhTMcHTHIVTr\n"
-"uxSSurQ4XSDF6Iuel3+IdpLL79UYJ7Cf4IhBWj0EloF6xWTA6nUYl3gzKpx1Tg1U\n"
-"x2+26YY=\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwODI2MTE0MjI2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqLuVrTyiqz+Zs\n"
-"9Qw5V2Z1y1YSWU6aRDMs+34rP2gwT41C69HBh2LLRS04iJUVQydwnEJukwKlTNRn\n"
-"1lEpvWgtYmySWA2SyI4xkVzCXgwv0k7WyLwa39hfNY1rXAqhDTL8VO0nXxi8hCMW\n"
-"ohaXcvsieglhN5uwu6voEdY3Gwtx4V8ysDJ2P9EBo49ZHdpBOv+3YLDxbWZuL/tI\n"
-"nYkBUHHfWGhUHsRsu0EGob3SFnfiooCbE/vtmn9rUuBEQDqOjOg3el/aTPJzcMi/\n"
-"RTz+8ho17ZrQRKHZGKWq9Skank+2X9FZoYKFCUlBm6RVud1R54QYZEIj7W9ujQLN\n"
-"LJrcIwBDAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQU6XJKEOUYTuioWHG+1YBuz0yPFmowDQYJKoZIhvcNAQELBQAD\n"
-"ggEBAEeXYGhZ8fWDpCGfSGEDX8FTqLwfDXxw18ZJjQJwus7bsJ9K/hAXnasXrn0f\n"
-"TJ+uJi8muqzP1V376mSUzlwXIzLZCtbwRdDhJJYRrLvf5zfHxHeDgvDALn+1AduF\n"
-"G/GzCVIFsYNSMdKGwNRp6Ucgl43BPZs6Swn2DXrxxW7Gng+8dvUS2XGLLdH6q1O3\n"
-"U1EgJilng+VXx9Rg3yCs5xDiehASySsM6MN/+v+Ouf9lkoQCEgrtlW5Lb/neOBlA\n"
-"aS8PPQuKkIEggNd8hW88YWQOJXMiCAgFppVp5B1Vbghn9IDJQISx/AXAoDXQvQfE\n"
-"bdOzcKFyDuklHl2IQPnYTFxm/G8=\n"
-"-----END CERTIFICATE-----\n"
+static const char bad_long_chain_pem[] = { /* 3rd-cert is broken */
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDQDCCAiigAwIBAgIMU/xyoxPcYVSaqH7/MA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTMwIhgPMjAxNDA4MjYxMTQyMjdaGA85OTk5MTIzMTIzNTk1OVow\n"
+ "EzERMA8GA1UEChMIc2VydmVyLTQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
+ "AoIBAQDkemVOFdbhBX1qwjxQHr3LmPktNEVBmXjrIvyp++dN7gCYzubnpiLcBE+B\n"
+ "S2b+ppxBYm9ynKijhGrO+lZPCQRXWmqUg4YDfvnEqM4n04dCE98jN4IhwvWZyP3p\n"
+ "+U8Ra9mVIBAY2MReo1dcJQHNmo560xzxioHsGNQHAfYgVRHiE5hIXchYbWCkBrKt\n"
+ "XOoSSTmfgCF3L22p6S1q143VoKUr/C9zqinZo6feGAiTprj6YH0tHswjGBbxTFLb\n"
+ "q3ThbGDR5FNYL5q0FvQRNbjoF4oFitZ3P1Qkrzq7VIJd9k8J1C3g/16U2dDTKqRX\n"
+ "ejX7maFZ6oRZJASsRSowEs4wTfRpAgMBAAGjgZMwgZAwDAYDVR0TAQH/BAIwADAa\n"
+ "BgNVHREEEzARgg93d3cuZXhhbXBsZS5jb20wEwYDVR0lBAwwCgYIKwYBBQUHAwEw\n"
+ "DwYDVR0PAQH/BAUDAwegADAdBgNVHQ4EFgQUAEYPmcA7S/KChiet+Z6+RRmogiww\n"
+ "HwYDVR0jBBgwFoAUjxZogHO3y4VdOLuibQHsQYdsGgwwDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBABlA3npOWwl3eBycaLVOsmdPS+fUwhLnF8hxoyKpHe/33k1nIxd7iiqNZ3iw\n"
+ "6pAjnuRUCjajU+mlx6ekrmga8mpmeD6JH0I3lq+mrPeCeFXm8gc1yJpcFJ/C2l4o\n"
+ "+3HNY7RJKcfoQxIbiKOtZ6x9E0aYuk3s1Um3Pf8GLwENoou7Stg5qHsLbkN/GBuP\n"
+ "n3p/4iqik2k7VblldDe3oCob5vMp0qrAEhlNl2Fn65rcB4+bp1EiC1Z+y6X8DpRb\n"
+ "NomKUsOiGcbFjQ4ptT6fePmPHX1mgDCx+5/22cyBUYElefYP7Xzr+C8tqqO3JFKe\n"
+ "hqEmQRsll9bkqpu2dh83c3i9u4g=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDATCCAemgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0y\n"
+ "MCIYDzIwMTQwODI2MTE0MjI3WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/4ofaL+ilmmM+\n"
+ "bGaFRy5GYQXtkD8sA3+/GWsunR928fQS68Zh6iWU+gPm52i7Gfbh7piKWA5Tb63w\n"
+ "unbS6dPsfPSvgRMZGKJpzxqVcBQAnTS4MuDPlXNg3K3HMyVtbxekII8jFeGEJuCL\n"
+ "mBMT4dI48IZRzj+2mir38w2cQPfomaKtjg2jMokG8Z9/4+SU9VJCcY1/yZk8fCbS\n"
+ "dBbwhnDq10yvhPCHgX6KMYmoJr28CYgH29Q9sDP1XN3VvAx5X+PtW/6pyF0U5E2e\n"
+ "gRzVv7Hr3FJKvytbNxRMCoy2YOyvsTP0fIhiXdtkulTKXyiq4cxA+aYByOu1FjU4\n"
+ "NicWbiZ/AgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQUjxZogHO3y4VdOLuibQHsQYdsGgwwHwYDVR0jBBgwFoAUwAx0\n"
+ "aL2SrsoSZcZUuFlq0O17BSgwDQYJKoZIhvcNAQELBQADggEBAGQvj8SquT31w8JK\n"
+ "tHDL4hWOU0EwVwWl4aYsvP17WspiFIIHKApPFfQOD0/Wg9zB48ble5ZSwKA3Vc3B\n"
+ "DJgd77HgVAd/Nu1TS5TFDKhpuvFPJVpJ3cqt3pTsVGMzf6GRz5kG3Ly/pBgkqiMG\n"
+ "gv6vTlEvzNe4FcnhNBEaRKpK5Hc5+GnxtfVoki3tjG5u+oa9/OwzAT+7IOyiIKHw\n"
+ "7F4Cm56QAWMJgVNm329AjZrJLeNuKoQWGueNew4dOe/zlYEaVMG4So74twXQwIAB\n"
+ "Zko7+wk6eI4CkI4Zair36s1jLkCF8xnL8FExTT3sg6B6KBHaNUuwc67WPILVuFuc\n"
+ "VfVBOd8=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "XXIDMzCCAhugAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0x\n"
+ "MCIYDzIwMTQwODI2MTE0MjI3WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIf3as4EONSgWu\n"
+ "Mbm9w3DbKd/su1UWlrYrcpVqmU3MKD5jXBxyoThSBWxmq1+wcNDmE1on6pHY1aad\n"
+ "k3188JKMC83wEcyQXaiH3DlTYFXXkkI+JJNUGlfAMSoXG248SpoCIOhCETUG03iP\n"
+ "Z3AZludaHYsvQQXXh1Kl6qn66+bKM53l/YhoQDxhoGaYvO8ZSwKnx5DEiq447jpW\n"
+ "M+sUFe38RPaMQQXXc1GRctvQDzJGm+8ZRujYDH+fGNzVDDlRyRnsVanFGNdyfhmy\n"
+ "BN2D2+2VEvzAQQXXg2wQN8gF3+luavIVEgETXODZPa5FF7ulmQmhqGrZcw6WtDmY\n"
+ "hUbNmbL7AgMBQQXXgZUwgZIwDwYDVR0TAQH/BAUwAwEB/zAuBgNVHR4BAf8EJDAi\n"
+ "oA8wDYILZXhhQQBsZS5jb22hDzANggtleGFtcGxlLm9yZzAPBgNVHQ8BAf8EBQMD\n"
+ "BwQAMB0GA1UdQQQWBBTADHRovZKuyhJlxlS4WWrQ7XsFKDAfBgNVHSMEGDAWgBTg\n"
+ "+khaP8UOjcwSQQxgT+zhh0aWPDANBgkqhkiG9w0BAQsFAAOCAQEASq5yBiib8FPk\n"
+ "oRONZ4COgGqjQQigeOBRgbHf9AfagpoYDbOKDQS8Iwt9VHZfJxdcJ1OuM1aQqXlN\n"
+ "dUyf+JdR/24NQQyrhL+dEfRGka6Db96YuPsbetVhNIiMm2teXDIPgGzAKuTm4xPA\n"
+ "6zyNVy5AwfDQQQIZ+EUsfOoerIElNyAbh66law4MWuiv4oyX4u49m5lxLuL6mFpR\n"
+ "CIZYWjZMa0MJQQMKGm/AhpfEOkbT58Fg5YmxhnKMk6ps1eR6mh3NgH1IbUqvEYNC\n"
+ "eS42X3kAMxEDQQBOMths0gxeLL+IHdQpXnAjZppW8zEIcN3yfknul35r8R6Qt9aK\n"
+ "q5+/m1ADBw==\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwODI2MTE0MjI2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIe0eOnLaV750K\n"
+ "4+mVaAftRrJp8t68KJivcRFpkl0ucQs6gwNf9EsVkHineOR3RXypjJ7Hsv+4PIKp\n"
+ "BhEOTprYUKcBaxHK/NIezV6NrO1AwuD6MtJDQF9jGpSy0F3eRUoBCjVYhTl+JxcZ\n"
+ "hGHPJd8WMeanQWY4xG4gTwtpjF3tPU5+JGQwLk5SbcLicM2QMG3CapZinOGK3/XC\n"
+ "Fjsvf5ZhxnixayhfiX/n9BmeP1yxz7YORNYPlL8z1CcLZqJsyjZnNkVwNvl4ft9I\n"
+ "FOKBLoOTSGocHFIFXh5b50GG6QHgvN+TiAwdpfRTUskWVg8VVIh7ymgDoI2jQhk4\n"
+ "EeMaZHd/AgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQU4PpIWj/FDo3MEilcYE/s4YdGljwwHwYDVR0jBBgwFoAU6XJK\n"
+ "EOUYTuioWHG+1YBuz0yPFmowDQYJKoZIhvcNAQELBQADggEBAJOCrGvbeRqPj+uL\n"
+ "2FIfbkYZAx2nGl3RVv5ZK2YeDpU1udxLihc6Sr67OZbiA4QMKxwgI7pupuwXmyql\n"
+ "vs9dWnNpjzgfc0OqqzVdOFlfw8ew2DQb2sUXCcIkwqXb/pBQ9BvcgdDASu+rm74j\n"
+ "JWDZlhcqeVhZROKfpsjsl+lHgZ7kANwHtUJg/WvK8J971hgElqeBO1O97cGkw/in\n"
+ "e8ooK9Lxk3Td+WdI8C7juCYiwsGqFEKuj7b6937uzvpFmm1fYDdOHhTMcHTHIVTr\n"
+ "uxSSurQ4XSDF6Iuel3+IdpLL79UYJ7Cf4IhBWj0EloF6xWTA6nUYl3gzKpx1Tg1U\n"
+ "x2+26YY=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwODI2MTE0MjI2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqLuVrTyiqz+Zs\n"
+ "9Qw5V2Z1y1YSWU6aRDMs+34rP2gwT41C69HBh2LLRS04iJUVQydwnEJukwKlTNRn\n"
+ "1lEpvWgtYmySWA2SyI4xkVzCXgwv0k7WyLwa39hfNY1rXAqhDTL8VO0nXxi8hCMW\n"
+ "ohaXcvsieglhN5uwu6voEdY3Gwtx4V8ysDJ2P9EBo49ZHdpBOv+3YLDxbWZuL/tI\n"
+ "nYkBUHHfWGhUHsRsu0EGob3SFnfiooCbE/vtmn9rUuBEQDqOjOg3el/aTPJzcMi/\n"
+ "RTz+8ho17ZrQRKHZGKWq9Skank+2X9FZoYKFCUlBm6RVud1R54QYZEIj7W9ujQLN\n"
+ "LJrcIwBDAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQU6XJKEOUYTuioWHG+1YBuz0yPFmowDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBAEeXYGhZ8fWDpCGfSGEDX8FTqLwfDXxw18ZJjQJwus7bsJ9K/hAXnasXrn0f\n"
+ "TJ+uJi8muqzP1V376mSUzlwXIzLZCtbwRdDhJJYRrLvf5zfHxHeDgvDALn+1AduF\n"
+ "G/GzCVIFsYNSMdKGwNRp6Ucgl43BPZs6Swn2DXrxxW7Gng+8dvUS2XGLLdH6q1O3\n"
+ "U1EgJilng+VXx9Rg3yCs5xDiehASySsM6MN/+v+Ouf9lkoQCEgrtlW5Lb/neOBlA\n"
+ "aS8PPQuKkIEggNd8hW88YWQOJXMiCAgFppVp5B1Vbghn9IDJQISx/AXAoDXQvQfE\n"
+ "bdOzcKFyDuklHl2IQPnYTFxm/G8=\n" "-----END CERTIFICATE-----\n"
};
static const gnutls_datum_t long_chain = {
- (void*)long_chain_pem, sizeof(long_chain_pem)-1
+ (void *)long_chain_pem, sizeof(long_chain_pem) - 1
};
static const gnutls_datum_t bad_long_chain = {
- (void*)bad_long_chain_pem, sizeof(bad_long_chain_pem)-1
+ (void *)bad_long_chain_pem, sizeof(bad_long_chain_pem) - 1
};
static const test_st tests[] = {
{.name = "load 5 certs",
.certs = &long_chain,
.ncerts = 5,
- .flags = 0
- },
+ .flags = 0},
{.name = "partial load of 5 certs, with expected failure",
.certs = &bad_long_chain,
.ncerts = 5,
.flags = 0,
- .exp_err = GNUTLS_E_ASN1_TAG_ERROR
- },
+ .exp_err = GNUTLS_E_ASN1_TAG_ERROR},
{.name = "load 2 certs out of 5",
.certs = &long_chain,
.max1 = 2,
.ncerts = 2,
- .flags = 0
- },
+ .flags = 0},
{.name = "load 1 cert out of 5",
.certs = &long_chain,
.ncerts = 1,
.max1 = 1,
.max2 = 0,
- .flags = 0
- },
+ .flags = 0},
{.name = "load 2 certs with fail if exceed",
.certs = &long_chain,
.ncerts = 2,
.max1 = 2,
.flags = GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED,
- .exp_err = GNUTLS_E_SHORT_MEMORY_BUFFER
- },
+ .exp_err = GNUTLS_E_SHORT_MEMORY_BUFFER},
{.name = "load 2 certs with fail if exceed and retry",
.certs = &long_chain,
.ncerts = 5,
.max1 = 1,
.max2 = 6,
.exp_err = 0,
- .flags = GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED
- },
+ .flags = GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED},
{.name = "load certs, fail due to size, and retry, and fail again",
.certs = &long_chain,
.max1 = 1,
.max2 = 3,
.ncerts = 5,
.flags = GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED,
- .exp_err = GNUTLS_E_SHORT_MEMORY_BUFFER
- }
+ .exp_err = GNUTLS_E_SHORT_MEMORY_BUFFER}
};
void doit(void)
{
unsigned int i;
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
success("checking: %s\n", tests[i].name);
load_list(tests[i].name, tests[i].certs, tests[i].ncerts,
diff --git a/tests/gnutls_x509_crt_sign.c b/tests/gnutls_x509_crt_sign.c
index 9d736dab23..c4fac7b793 100644
--- a/tests/gnutls_x509_crt_sign.c
+++ b/tests/gnutls_x509_crt_sign.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -37,22 +37,21 @@
#include "cert-common.h"
static unsigned char saved_crt_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIICIjCCAYugAwIBAgIDChEAMA0GCSqGSIb3DQEBCwUAMCsxDjAMBgNVBAMTBW5p\n"
- "a29zMRkwFwYDVQQKExBub25lIHRvLCBtZW50aW9uMCAXDTA4MDMzMTIyMDAwMFoY\n"
- "Dzk5OTkxMjMxMjM1OTU5WjArMQ4wDAYDVQQDEwVuaWtvczEZMBcGA1UEChMQbm9u\n"
- "ZSB0bywgbWVudGlvbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu2ZD9fLF\n"
- "17aMzMXf9Yg7sclLag6hrSBQQAiAoU9co9D4bM/mPPfsBHYTF4tkiSJbwN1TfDvt\n"
- "fAS7gLkovo6bxo6gpRLL9Vceoue7tzNJn+O7Sq5qTWj/yRHiMo3OPYALjXXv2ACB\n"
- "jygEA6AijWEEB/q2N30hB0nSCWFpmJCjWKkCAwEAAaNSMFAwDAYDVR0TAQH/BAIw\n"
- "ADAOBgNVHQ8BAf8EBAMCB4AwDgYDVR0RBAcwBYIDYXBhMCAGA1UdJQEB/wQWMBQG\n"
- "CCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOBgQCiZrNQBktpWsND\n"
- "MsH9kdwscx1ybGoeRibdngltnwzIjcl5T+D52fADzKHpuvwq6m5qHUz/f/872E3w\n"
- "AKw9YX7n9316fTydee22/WyNGmP5r6E82Inu6wQpgkrOsgfhs/jNDGEhOw/G1lwZ\n"
- "dAtaww1V7OEVK1WufVUtQ3rQzxYPcQ==\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t saved_crt = { saved_crt_pem, sizeof(saved_crt_pem)-1 };
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICIjCCAYugAwIBAgIDChEAMA0GCSqGSIb3DQEBCwUAMCsxDjAMBgNVBAMTBW5p\n"
+ "a29zMRkwFwYDVQQKExBub25lIHRvLCBtZW50aW9uMCAXDTA4MDMzMTIyMDAwMFoY\n"
+ "Dzk5OTkxMjMxMjM1OTU5WjArMQ4wDAYDVQQDEwVuaWtvczEZMBcGA1UEChMQbm9u\n"
+ "ZSB0bywgbWVudGlvbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAu2ZD9fLF\n"
+ "17aMzMXf9Yg7sclLag6hrSBQQAiAoU9co9D4bM/mPPfsBHYTF4tkiSJbwN1TfDvt\n"
+ "fAS7gLkovo6bxo6gpRLL9Vceoue7tzNJn+O7Sq5qTWj/yRHiMo3OPYALjXXv2ACB\n"
+ "jygEA6AijWEEB/q2N30hB0nSCWFpmJCjWKkCAwEAAaNSMFAwDAYDVR0TAQH/BAIw\n"
+ "ADAOBgNVHQ8BAf8EBAMCB4AwDgYDVR0RBAcwBYIDYXBhMCAGA1UdJQEB/wQWMBQG\n"
+ "CCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOBgQCiZrNQBktpWsND\n"
+ "MsH9kdwscx1ybGoeRibdngltnwzIjcl5T+D52fADzKHpuvwq6m5qHUz/f/872E3w\n"
+ "AKw9YX7n9316fTydee22/WyNGmP5r6E82Inu6wQpgkrOsgfhs/jNDGEhOw/G1lwZ\n"
+ "dAtaww1V7OEVK1WufVUtQ3rQzxYPcQ==\n" "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t saved_crt = { saved_crt_pem, sizeof(saved_crt_pem) - 1 };
static void tls_log_func(int level, const char *str)
{
@@ -97,7 +96,8 @@ void doit(void)
if (ret != 0)
fail("gnutls_x509_crt_init\n");
- ret = gnutls_x509_crt_import(crt2, &server_ecc_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_crt_import(crt2, &server_ecc_cert, GNUTLS_X509_FMT_PEM);
if (ret != 0)
fail("gnutls_x509_crt_import\n");
@@ -140,30 +140,33 @@ void doit(void)
if (ret != 0)
fail("gnutls_x509_crt_set_key_usage %d\n", ret);
- ret = gnutls_x509_crt_set_dn(crt, "o = none to\\, mention,cn = nikos", &err);
+ ret =
+ gnutls_x509_crt_set_dn(crt, "o = none to\\, mention,cn = nikos",
+ &err);
if (ret < 0) {
- fail("gnutls_x509_crt_set_dn: %s, %s\n", gnutls_strerror(ret), err);
+ fail("gnutls_x509_crt_set_dn: %s, %s\n", gnutls_strerror(ret),
+ err);
}
-
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_DNSNAME,
"foo", 3, 1);
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_RFC822NAME,
- "foo@bar.org", strlen("foo@bar.org"), 1);
+ "foo@bar.org",
+ strlen("foo@bar.org"), 1);
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
-
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_IPADDRESS,
"\xc1\x5c\x96\x3", 4, 1);
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
ret = gnutls_x509_crt_set_subject_alt_name(crt, GNUTLS_SAN_IPADDRESS,
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", 16, 1);
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01",
+ 16, 1);
if (ret != 0)
fail("gnutls_x509_crt_set_subject_alt_name\n");
@@ -180,8 +183,7 @@ void doit(void)
s = 0;
ret =
gnutls_x509_crt_set_key_purpose_oid(crt,
- GNUTLS_KP_TLS_WWW_SERVER,
- 0);
+ GNUTLS_KP_TLS_WWW_SERVER, 0);
if (ret != 0)
fail("gnutls_x509_crt_set_key_purpose_oid %d\n", ret);
@@ -193,16 +195,18 @@ void doit(void)
s = 0;
ret =
gnutls_x509_crt_set_key_purpose_oid(crt,
- GNUTLS_KP_TLS_WWW_CLIENT,
- 1);
+ GNUTLS_KP_TLS_WWW_CLIENT, 1);
if (ret != 0)
fail("gnutls_x509_crt_set_key_purpose_oid2 %d\n", ret);
/* in the end this will be ignored as the issuer will be set
* by gnutls_x509_crt_sign2() */
- ret = gnutls_x509_crt_set_issuer_dn(crt, "cn = my CA, o = big\\, and one", &err);
+ ret =
+ gnutls_x509_crt_set_issuer_dn(crt, "cn = my CA, o = big\\, and one",
+ &err);
if (ret < 0) {
- fail("gnutls_x509_crt_set_issuer_dn: %s, %s\n", gnutls_strerror(ret), err);
+ fail("gnutls_x509_crt_set_issuer_dn: %s, %s\n",
+ gnutls_strerror(ret), err);
}
/* Sign and finalize the certificate */
@@ -210,7 +214,6 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_crt_sign2: %s\n", gnutls_strerror(ret));
-
ret = gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_FULL, &out);
if (ret != 0)
fail("gnutls_x509_crt_print\n");
@@ -223,7 +226,9 @@ void doit(void)
fail("gnutls_x509_crt_get_raw_dn: %s\n", gnutls_strerror(ret));
if (out.size != 45 ||
- memcmp(out.data, "\x30\x2b\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6e\x69\x6b\x6f\x73\x31\x19\x30\x17\x06\x03\x55\x04\x0a\x13\x10\x6e\x6f\x6e\x65\x20\x74\x6f\x2c\x20\x6d\x65\x6e\x74\x69\x6f\x6e", 45) != 0) {
+ memcmp(out.data,
+ "\x30\x2b\x31\x0e\x30\x0c\x06\x03\x55\x04\x03\x13\x05\x6e\x69\x6b\x6f\x73\x31\x19\x30\x17\x06\x03\x55\x04\x0a\x13\x10\x6e\x6f\x6e\x65\x20\x74\x6f\x2c\x20\x6d\x65\x6e\x74\x69\x6f\x6e",
+ 45) != 0) {
fail("DN comparison failed\n");
}
gnutls_free(out.data);
@@ -252,7 +257,7 @@ void doit(void)
if (debug)
fprintf(stderr, "%s\n", out.data);
assert(out.size == saved_crt.size);
- assert(memcmp(out.data, saved_crt.data, out.size)==0);
+ assert(memcmp(out.data, saved_crt.data, out.size) == 0);
gnutls_free(out.data);
diff --git a/tests/gnutls_x509_privkey_import.c b/tests/gnutls_x509_privkey_import.c
index ae8cc068d6..1861370608 100644
--- a/tests/gnutls_x509_privkey_import.c
+++ b/tests/gnutls_x509_privkey_import.c
@@ -22,7 +22,7 @@
/* This tests key import for gnutls_x509_privkey_t APIs */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -41,11 +41,12 @@
fail("%s: "fmt, name, ##__VA_ARGS__)
const gnutls_datum_t raw_data = {
- (void *) "hello there",
+ (void *)"hello there",
11
};
-static int sign_verify_data(gnutls_x509_privkey_t pkey, gnutls_sign_algorithm_t algo)
+static int sign_verify_data(gnutls_x509_privkey_t pkey,
+ gnutls_sign_algorithm_t algo)
{
int ret;
gnutls_privkey_t privkey;
@@ -74,7 +75,8 @@ static int sign_verify_data(gnutls_x509_privkey_t pkey, gnutls_sign_algorithm_t
fail("gnutls_pubkey_import_privkey\n");
ret = gnutls_pubkey_verify_data2(pubkey, algo,
- GNUTLS_VERIFY_ALLOW_BROKEN, &raw_data, &signature);
+ GNUTLS_VERIFY_ALLOW_BROKEN, &raw_data,
+ &signature);
if (ret < 0) {
ret = -1;
goto cleanup;
@@ -90,8 +92,9 @@ static int sign_verify_data(gnutls_x509_privkey_t pkey, gnutls_sign_algorithm_t
return ret;
}
-static void load_privkey(const char *name, const gnutls_datum_t *txtkey, gnutls_pk_algorithm_t pk,
- gnutls_sign_algorithm_t sig, int exp_key_err)
+static void load_privkey(const char *name, const gnutls_datum_t * txtkey,
+ gnutls_pk_algorithm_t pk, gnutls_sign_algorithm_t sig,
+ int exp_key_err)
{
gnutls_x509_privkey_t tmp;
int ret;
@@ -103,7 +106,8 @@ static void load_privkey(const char *name, const gnutls_datum_t *txtkey, gnutls_
ret = gnutls_x509_privkey_import(tmp, txtkey, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
if (exp_key_err) {
- testfail("did not fail in key import, although expected\n");
+ testfail
+ ("did not fail in key import, although expected\n");
}
testfail("gnutls_privkey_import: %s\n", gnutls_strerror(ret));
@@ -115,17 +119,19 @@ static void load_privkey(const char *name, const gnutls_datum_t *txtkey, gnutls_
ret = gnutls_x509_privkey_verify_params(tmp);
if (ret < 0)
- testfail("gnutls_privkey_verify_params: %s\n", gnutls_strerror(ret));
+ testfail("gnutls_privkey_verify_params: %s\n",
+ gnutls_strerror(ret));
sign_verify_data(tmp, sig);
-
+
gnutls_x509_privkey_deinit(tmp);
return;
}
-static void load_privkey_in_der(const char *name, const gnutls_datum_t *txtkey, gnutls_pk_algorithm_t pk,
- gnutls_sign_algorithm_t sig, int exp_key_err)
+static void load_privkey_in_der(const char *name, const gnutls_datum_t * txtkey,
+ gnutls_pk_algorithm_t pk,
+ gnutls_sign_algorithm_t sig, int exp_key_err)
{
gnutls_x509_privkey_t tmp;
gnutls_datum_t der;
@@ -137,7 +143,8 @@ static void load_privkey_in_der(const char *name, const gnutls_datum_t *txtkey,
ret = gnutls_pem_base64_decode2(NULL, txtkey, &der);
if (ret < 0 || der.size == 0) {
- testfail("could not convert key to DER form: %s\n", gnutls_strerror(ret));
+ testfail("could not convert key to DER form: %s\n",
+ gnutls_strerror(ret));
}
ret = gnutls_x509_privkey_import(tmp, &der, GNUTLS_X509_FMT_DER);
@@ -145,7 +152,8 @@ static void load_privkey_in_der(const char *name, const gnutls_datum_t *txtkey,
if (ret < 0) {
if (exp_key_err) {
- testfail("did not fail in key import, although expected\n");
+ testfail
+ ("did not fail in key import, although expected\n");
}
testfail("gnutls_privkey_import: %s\n", gnutls_strerror(ret));
@@ -157,7 +165,8 @@ static void load_privkey_in_der(const char *name, const gnutls_datum_t *txtkey,
ret = gnutls_x509_privkey_verify_params(tmp);
if (ret < 0)
- testfail("gnutls_privkey_verify_params: %s\n", gnutls_strerror(ret));
+ testfail("gnutls_privkey_verify_params: %s\n",
+ gnutls_strerror(ret));
sign_verify_data(tmp, sig);
@@ -179,34 +188,34 @@ static const test_st tests[] = {
.pk = GNUTLS_PK_ECDSA,
.sig = GNUTLS_SIGN_ECDSA_SHA256,
.key = &server_ca3_ecc_key,
- },
+ },
{.name = "rsa-sign key",
.pk = GNUTLS_PK_RSA,
.sig = GNUTLS_SIGN_RSA_SHA384,
.key = &server_ca3_key,
- },
+ },
{.name = "rsa-pss-sign key (PKCS#8)",
.pk = GNUTLS_PK_RSA_PSS,
.sig = GNUTLS_SIGN_RSA_PSS_SHA256,
.key = &server_ca3_rsa_pss2_key,
- },
+ },
{.name = "dsa key",
.pk = GNUTLS_PK_DSA,
.sig = GNUTLS_SIGN_DSA_SHA1,
.key = &dsa_key,
- },
+ },
{.name = "ed25519 key (PKCS#8)",
.pk = GNUTLS_PK_EDDSA_ED25519,
.sig = GNUTLS_SIGN_EDDSA_ED25519,
.key = &server_ca3_eddsa_key,
- }
+ }
};
void doit(void)
{
unsigned int i;
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
success("checking: %s\n", tests[i].name);
load_privkey(tests[i].name, tests[i].key, tests[i].pk,
@@ -214,7 +223,7 @@ void doit(void)
success("checking: %s in der form\n", tests[i].name);
load_privkey_in_der(tests[i].name, tests[i].key, tests[i].pk,
- tests[i].sig, tests[i].exp_key_err);
+ tests[i].sig, tests[i].exp_key_err);
}
gnutls_global_deinit();
diff --git a/tests/handshake-false-start.c b/tests/handshake-false-start.c
index d38ffe516c..07cca827d0 100644
--- a/tests/handshake-false-start.c
+++ b/tests/handshake-false-start.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -54,8 +54,7 @@ enum {
fail("%s%s %d: "fmt, dtls?"dtls":"tls", name, testno, ##__VA_ARGS__)
static void try(const char *name, unsigned testno, unsigned fs,
- const char *prio, unsigned dhsize,
- unsigned dtls)
+ const char *prio, unsigned dhsize, unsigned dtls)
{
int ret;
/* Server stuff. */
@@ -80,7 +79,7 @@ static void try(const char *name, unsigned testno, unsigned fs,
return;
if (dtls)
- flags |= GNUTLS_DATAGRAM|GNUTLS_NONBLOCK;
+ flags |= GNUTLS_DATAGRAM | GNUTLS_NONBLOCK;
/* General init. */
gnutls_global_set_log_function(tls_log_func);
@@ -110,7 +109,7 @@ static void try(const char *name, unsigned testno, unsigned fs,
GNUTLS_X509_FMT_PEM);
gnutls_certificate_set_dh_params(serverx509cred, dh_params);
- gnutls_init(&server, GNUTLS_SERVER|flags);
+ gnutls_init(&server, GNUTLS_SERVER | flags);
gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_credentials_set(server, GNUTLS_CRD_ANON, serveranoncred);
@@ -118,7 +117,8 @@ static void try(const char *name, unsigned testno, unsigned fs,
gnutls_priority_set_direct(server, prio, NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
- gnutls_transport_set_pull_timeout_function(server, server_pull_timeout_func);
+ gnutls_transport_set_pull_timeout_function(server,
+ server_pull_timeout_func);
gnutls_transport_set_ptr(server, server);
/* Init client */
@@ -134,7 +134,9 @@ static void try(const char *name, unsigned testno, unsigned fs,
if (ret < 0)
exit(1);
- ret = gnutls_init(&client, GNUTLS_CLIENT|GNUTLS_ENABLE_FALSE_START|flags);
+ ret =
+ gnutls_init(&client,
+ GNUTLS_CLIENT | GNUTLS_ENABLE_FALSE_START | flags);
if (ret < 0)
exit(1);
@@ -153,7 +155,8 @@ static void try(const char *name, unsigned testno, unsigned fs,
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
- gnutls_transport_set_pull_timeout_function(client, client_pull_timeout_func);
+ gnutls_transport_set_pull_timeout_function(client,
+ client_pull_timeout_func);
gnutls_transport_set_ptr(client, client);
HANDSHAKE(client, server);
@@ -174,7 +177,7 @@ static void try(const char *name, unsigned testno, unsigned fs,
gnutls_record_send(client, TESTDATA, sizeof(TESTDATA) - 1);
if (ret < 0) {
myfail("error sending false start data: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
exit(1);
}
@@ -183,7 +186,7 @@ static void try(const char *name, unsigned testno, unsigned fs,
ret = gnutls_record_recv(server, buffer, sizeof(buffer));
if (ret < 0) {
myfail("error receiving data: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
}
if (ret != sizeof(TESTDATA) - 1) {
@@ -199,7 +202,7 @@ static void try(const char *name, unsigned testno, unsigned fs,
gnutls_record_send(server, TESTDATA, sizeof(TESTDATA) - 1);
if (ret < 0) {
myfail("error sending false start data: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
exit(1);
}
@@ -210,7 +213,7 @@ static void try(const char *name, unsigned testno, unsigned fs,
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
myfail("error receiving data: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
}
} else if (testno == TEST_RECV_SEND) {
side = "server";
@@ -218,7 +221,7 @@ static void try(const char *name, unsigned testno, unsigned fs,
gnutls_record_send(server, TESTDATA, sizeof(TESTDATA) - 1);
if (ret < 0) {
myfail("error sending false start data: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
exit(1);
}
@@ -227,7 +230,7 @@ static void try(const char *name, unsigned testno, unsigned fs,
ret = gnutls_record_recv(client, buffer, sizeof(buffer));
if (ret < 0) {
myfail("error receiving data: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
}
if (ret != sizeof(TESTDATA) - 1) {
@@ -253,18 +256,16 @@ static void try(const char *name, unsigned testno, unsigned fs,
side = "server";
ret = gnutls_bye(server, GNUTLS_SHUT_WR);
if (ret < 0) {
- myfail("error in server bye: %s\n",
- gnutls_strerror(ret));
+ myfail("error in server bye: %s\n", gnutls_strerror(ret));
}
side = "client";
ret = gnutls_bye(client, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- myfail("error in client bye: %s\n",
- gnutls_strerror(ret));
+ myfail("error in client bye: %s\n", gnutls_strerror(ret));
}
- success("%5s%s \tok\n", dtls?"dtls-":"tls-", name);
+ success("%5s%s \tok\n", dtls ? "dtls-" : "tls-", name);
exit:
gnutls_deinit(client);
gnutls_deinit(server);
@@ -282,30 +283,46 @@ void doit(void)
global_init();
-
- for (j=0;j<2;j++) {
+ for (j = 0; j < 2; j++) {
for (i = 0; i < TESTNO_MAX; i++) {
- try("1.2 anon-dh :", i, 0, "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+ANON-DH", 3072, j);
+ try("1.2 anon-dh :", i, 0,
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+ANON-DH",
+ 3072, j);
reset_buffers();
- try("1.2 anon-ecdh:", i, 0, "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+ANON-ECDH", 2048, j);
+ try("1.2 anon-ecdh:", i, 0,
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+ANON-ECDH",
+ 2048, j);
reset_buffers();
- try("1.2 ecdhe-rsa:", i, 1, "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA", 2048, j);
+ try("1.2 ecdhe-rsa:", i, 1,
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA",
+ 2048, j);
reset_buffers();
- try("1.2 ecdhe-x25519-rsa:", i, 1, "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519", 2048, j);
+ try("1.2 ecdhe-x25519-rsa:", i, 1,
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519",
+ 2048, j);
reset_buffers();
- try("1.2 ecdhe-ecdsa:", i, 1, "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA", 2048, j);
+ try("1.2 ecdhe-ecdsa:", i, 1,
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA",
+ 2048, j);
reset_buffers();
- try("1.2 dhe-rsa-2048:", i, 0, "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+DHE-RSA", 2048, j);
+ try("1.2 dhe-rsa-2048:", i, 0,
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+DHE-RSA",
+ 2048, j);
reset_buffers();
- try("1.2 dhe-rsa-3072:", i, 1, "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+DHE-RSA", 3072, j);
+ try("1.2 dhe-rsa-3072:", i, 1,
+ "NORMAL:-VERS-ALL:+VERS-DTLS1.2:+VERS-TLS1.2:-KX-ALL:+DHE-RSA",
+ 3072, j);
reset_buffers();
}
}
/* it should work, but false start will not be reported */
- try("1.3 secp256r1:", i, 0, "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1", 2048, 0);
+ try("1.3 secp256r1:", i, 0,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1", 2048,
+ 0);
reset_buffers();
- try("1.3 ffdhe2048:", i, 0, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+GROUP-FFDHE2048", 2048, 0);
+ try("1.3 ffdhe2048:", i, 0,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+GROUP-FFDHE2048", 2048, 0);
reset_buffers();
gnutls_global_deinit();
diff --git a/tests/handshake-large-cert.c b/tests/handshake-large-cert.c
index 66b84edd19..44cf144f28 100644
--- a/tests/handshake-large-cert.c
+++ b/tests/handshake-large-cert.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,18 +36,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#include <signal.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# include <signal.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <assert.h>
-#include "utils.h"
+# include "utils.h"
/* This test checks whether a large certificate packet can be sent by
* server and received by client. */
@@ -72,23 +72,22 @@ static void client(int sd, const char *prio)
side = "client";
- assert(gnutls_certificate_allocate_credentials(&clientx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&clientx509cred) >= 0);
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the anonymous credentials to the current session
*/
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
do {
ret = gnutls_handshake(session);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("client: Handshake failed\n");
@@ -99,7 +98,7 @@ static void client(int sd, const char *prio)
do {
ret = gnutls_record_recv(session, buf, 1);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
assert(ret == 0);
close(sd);
@@ -112,39 +111,39 @@ static void client(int sd, const char *prio)
}
static unsigned char server_key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIEowIBAAKCAQEAwJo7662RNezA254WRsXlbuzkPV5eNX7pX5Pj66T8/RKfz7rL\n"
- "GpKs4fNxhhIMSUDjy2KbEQXPUH9MWROgU8V//CfcnagLYCHtniqRE+eXv0fCLwWU\n"
- "SrA8n0qCBj94/NMA4kSmHf6dE5YdjDSpukyza5IshAuxZ32MDevE3JqMjvnZ5vY7\n"
- "drJSfal0V5gof3/7J41ZVxl+WJph50e2pY1E27/hY8q5yQ3DXnE5kTQjX664ozQ8\n"
- "UPtqGfkr4YjYe4e6PUWAjU27mQng0O0K+/w8gg6xBxN/AH3U7dg5/cY5IKDsN+Iq\n"
- "4UrcCgXWjhosv9IlIXqzK7IBMMphPmRMCLMH2QIDAQABAoIBAGpOdxZdZdH6zHQr\n"
- "rKYBouJ39H5+8MbcNtmfWmT9WvogZn8U3ffbz3qjkRxsJ8XjABiJY4egyk3nBXAB\n"
- "KjQyxbKbGeUXFLhJ4cq0OgFfid11MRQdIz2aSsutJ1llfVUm7cz2ES5rE6305Hg3\n"
- "tRr0LPAJ7XIwtgmmPUCNysnsr/pVrmPLfAnl/CfbLF2v/SfpbSpkgUTrZCNUMC44\n"
- "929K4c7cFEM4SP6pUad6MipPzY/SmxZ9yhX3MsROcLp+XLCOOJhhkqoB6LWiess2\n"
- "d7odweFRZ0Q0gBD/9EMMy3J5iUwfasf8b5n7z8AgPg9CeB+p/As2/RhRPXnwlS0A\n"
- "2KrxWQECgYEA0wM+5fJeL91s19vozCqi3mKVXTv68aL9iQJQNJc4UQm+yu7JvMn9\n"
- "koPri74QUpYkmyttaJsGNc90Oj54rSsR/cmEFJKgHOEAYSLeVetyO2XNoQvKdyB9\n"
- "UVof6joMLxQ368YCahfz4ogHTQqpzN0BD2TTnKXwCXQDikN/EBb4fHkCgYEA6aov\n"
- "8XVIVlxUY4VB/9PQ03OwxTLi+zTJMFJvNJozkat6MLJjAv2zxMt2kmlb0xx3wftD\n"
- "VJKHIQCeZmU8qWEZS0G58OPg+TPvQPqdnZmRz3bGfW6F++IDAqV4DEhQ+zXQL8Js\n"
- "j9+ocre+s0zXq1HkHgemBGOHy5/jN9cXnH3XTmECgYATRFiZ5mdzN2SY0RuQiNQW\n"
- "OiopOTDQn3FG8U8hfi1GOP2Syfrhog/lMOZw/AnBgLQW9wAmbQFEKI0URGAAb85U\n"
- "vfGxbzHvcRv3wpdKgRUNF16PNeRmvDC1HOWNHX+/TLlObeYKieVa6dDA2Bho/ET8\n"
- "gthPlVc1hcJM/Zy8e1x1AQKBgQCuLDiugGDaVtpkkIlAu8/WPk9Ovv6oh5FMHrZb\n"
- "/HFiLPLY56+cJCZjE9Kfkj9rHrY59yQaH1rwg7iO1PmhvAoRqb2DTSl+OHMn+WeR\n"
- "eU5R2dRc3QysU60wxMy2QxVyG4vCfedUW0ABuutAVZARWOp0Y/khHluzscu57O/h\n"
- "q3/ZIQKBgEXHmOjftWrkWV+/zfZT64k2Z1g7s3dpXW/SFK9jPrt6oqI1GNkYz6Ds\n"
- "O1dUiPsNXDCLytUtvYrvrT3rJaPjJDRU2HrN/cYdxXgf6HSEr3Cdcpqyp/5rOOxD\n"
- "ALEix6R4MZlsQV8FfgWjvTAET7NtY303JrCdFPqIigwl/PFGPLiB\n"
- "-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEowIBAAKCAQEAwJo7662RNezA254WRsXlbuzkPV5eNX7pX5Pj66T8/RKfz7rL\n"
+ "GpKs4fNxhhIMSUDjy2KbEQXPUH9MWROgU8V//CfcnagLYCHtniqRE+eXv0fCLwWU\n"
+ "SrA8n0qCBj94/NMA4kSmHf6dE5YdjDSpukyza5IshAuxZ32MDevE3JqMjvnZ5vY7\n"
+ "drJSfal0V5gof3/7J41ZVxl+WJph50e2pY1E27/hY8q5yQ3DXnE5kTQjX664ozQ8\n"
+ "UPtqGfkr4YjYe4e6PUWAjU27mQng0O0K+/w8gg6xBxN/AH3U7dg5/cY5IKDsN+Iq\n"
+ "4UrcCgXWjhosv9IlIXqzK7IBMMphPmRMCLMH2QIDAQABAoIBAGpOdxZdZdH6zHQr\n"
+ "rKYBouJ39H5+8MbcNtmfWmT9WvogZn8U3ffbz3qjkRxsJ8XjABiJY4egyk3nBXAB\n"
+ "KjQyxbKbGeUXFLhJ4cq0OgFfid11MRQdIz2aSsutJ1llfVUm7cz2ES5rE6305Hg3\n"
+ "tRr0LPAJ7XIwtgmmPUCNysnsr/pVrmPLfAnl/CfbLF2v/SfpbSpkgUTrZCNUMC44\n"
+ "929K4c7cFEM4SP6pUad6MipPzY/SmxZ9yhX3MsROcLp+XLCOOJhhkqoB6LWiess2\n"
+ "d7odweFRZ0Q0gBD/9EMMy3J5iUwfasf8b5n7z8AgPg9CeB+p/As2/RhRPXnwlS0A\n"
+ "2KrxWQECgYEA0wM+5fJeL91s19vozCqi3mKVXTv68aL9iQJQNJc4UQm+yu7JvMn9\n"
+ "koPri74QUpYkmyttaJsGNc90Oj54rSsR/cmEFJKgHOEAYSLeVetyO2XNoQvKdyB9\n"
+ "UVof6joMLxQ368YCahfz4ogHTQqpzN0BD2TTnKXwCXQDikN/EBb4fHkCgYEA6aov\n"
+ "8XVIVlxUY4VB/9PQ03OwxTLi+zTJMFJvNJozkat6MLJjAv2zxMt2kmlb0xx3wftD\n"
+ "VJKHIQCeZmU8qWEZS0G58OPg+TPvQPqdnZmRz3bGfW6F++IDAqV4DEhQ+zXQL8Js\n"
+ "j9+ocre+s0zXq1HkHgemBGOHy5/jN9cXnH3XTmECgYATRFiZ5mdzN2SY0RuQiNQW\n"
+ "OiopOTDQn3FG8U8hfi1GOP2Syfrhog/lMOZw/AnBgLQW9wAmbQFEKI0URGAAb85U\n"
+ "vfGxbzHvcRv3wpdKgRUNF16PNeRmvDC1HOWNHX+/TLlObeYKieVa6dDA2Bho/ET8\n"
+ "gthPlVc1hcJM/Zy8e1x1AQKBgQCuLDiugGDaVtpkkIlAu8/WPk9Ovv6oh5FMHrZb\n"
+ "/HFiLPLY56+cJCZjE9Kfkj9rHrY59yQaH1rwg7iO1PmhvAoRqb2DTSl+OHMn+WeR\n"
+ "eU5R2dRc3QysU60wxMy2QxVyG4vCfedUW0ABuutAVZARWOp0Y/khHluzscu57O/h\n"
+ "q3/ZIQKBgEXHmOjftWrkWV+/zfZT64k2Z1g7s3dpXW/SFK9jPrt6oqI1GNkYz6Ds\n"
+ "O1dUiPsNXDCLytUtvYrvrT3rJaPjJDRU2HrN/cYdxXgf6HSEr3Cdcpqyp/5rOOxD\n"
+ "ALEix6R4MZlsQV8FfgWjvTAET7NtY303JrCdFPqIigwl/PFGPLiB\n"
+ "-----END RSA PRIVATE KEY-----\n";
static void server(int sd, const char *prio)
{
gnutls_certificate_credentials_t serverx509cred;
const gnutls_datum_t key = { server_key_pem,
- sizeof(server_key_pem)-1
+ sizeof(server_key_pem) - 1
};
int ret;
gnutls_session_t session;
@@ -164,28 +163,27 @@ static void server(int sd, const char *prio)
snprintf(cert_path, sizeof(cert_path), "%s/data/large-cert.pem", src);
- assert(gnutls_load_file(cert_path, &cert)>=0);
+ assert(gnutls_load_file(cert_path, &cert) >= 0);
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &cert, &key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &cert, &key,
+ GNUTLS_X509_FMT_PEM) >= 0);
gnutls_free(cert.data);
- assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
do {
ret = gnutls_handshake(session);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
close(sd);
diff --git a/tests/handshake-large-packet.c b/tests/handshake-large-packet.c
index c74cc08857..8e2d2833e0 100644
--- a/tests/handshake-large-packet.c
+++ b/tests/handshake-large-packet.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,19 +36,19 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#include <signal.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# include <signal.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <assert.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
/* This test checks whether a large handshake packet is accepted by client
* and by server. (large is around 64kb)
@@ -60,28 +60,30 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define TLSEXT_TYPE1 0xFA
-#define TLSEXT_TYPE2 0xFB
-#define TLSEXT_TYPE3 0xFC
-#define TLSEXT_TYPE4 0xFD
-#define TLSEXT_TYPE5 0xFE
+# define TLSEXT_TYPE1 0xFA
+# define TLSEXT_TYPE2 0xFB
+# define TLSEXT_TYPE3 0xFC
+# define TLSEXT_TYPE4 0xFD
+# define TLSEXT_TYPE5 0xFE
-static int TLSEXT_TYPE_server_sent = 0;
+static int TLSEXT_TYPE_server_sent = 0;
static int TLSEXT_TYPE_client_received = 0;
-#define MAX_SIZE (12*1024)
+# define MAX_SIZE (12*1024)
-static int ext_recv_client_params(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv_client_params(gnutls_session_t session,
+ const unsigned char *buf, size_t buflen)
{
if (buflen != MAX_SIZE)
fail("ext_recv_client_params: Invalid input buffer length\n");
TLSEXT_TYPE_client_received++;
- return 0; //Success
+ return 0; //Success
}
-static int ext_send_client_params(gnutls_session_t session, gnutls_buffer_t extdata)
+static int ext_send_client_params(gnutls_session_t session,
+ gnutls_buffer_t extdata)
{
unsigned char *data = gnutls_calloc(1, MAX_SIZE);
if (data == NULL)
@@ -92,12 +94,14 @@ static int ext_send_client_params(gnutls_session_t session, gnutls_buffer_t extd
return MAX_SIZE;
}
-static int ext_recv_server_params(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv_server_params(gnutls_session_t session,
+ const unsigned char *buf, size_t buflen)
{
- return 0; //Success
+ return 0; //Success
}
-static int ext_send_server_params(gnutls_session_t session, gnutls_buffer_t extdata)
+static int ext_send_server_params(gnutls_session_t session,
+ gnutls_buffer_t extdata)
{
unsigned char *data = gnutls_calloc(1, MAX_SIZE);
if (data == NULL)
@@ -133,23 +137,37 @@ static void client(int sd, const char *prio)
/* put the anonymous credentials to the current session
*/
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
- gnutls_session_ext_register(session, "ext_client1", TLSEXT_TYPE1, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL, 0);
- gnutls_session_ext_register(session, "ext_client2", TLSEXT_TYPE2, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL, 0);
- gnutls_session_ext_register(session, "ext_client3", TLSEXT_TYPE3, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL, 0);
- gnutls_session_ext_register(session, "ext_client4", TLSEXT_TYPE4, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL, 0);
- gnutls_session_ext_register(session, "ext_client5", TLSEXT_TYPE5, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL, 0);
+ gnutls_session_ext_register(session, "ext_client1", TLSEXT_TYPE1,
+ GNUTLS_EXT_TLS, ext_recv_client_params,
+ ext_send_client_params, NULL, NULL, NULL,
+ 0);
+ gnutls_session_ext_register(session, "ext_client2", TLSEXT_TYPE2,
+ GNUTLS_EXT_TLS, ext_recv_client_params,
+ ext_send_client_params, NULL, NULL, NULL,
+ 0);
+ gnutls_session_ext_register(session, "ext_client3", TLSEXT_TYPE3,
+ GNUTLS_EXT_TLS, ext_recv_client_params,
+ ext_send_client_params, NULL, NULL, NULL,
+ 0);
+ gnutls_session_ext_register(session, "ext_client4", TLSEXT_TYPE4,
+ GNUTLS_EXT_TLS, ext_recv_client_params,
+ ext_send_client_params, NULL, NULL, NULL,
+ 0);
+ gnutls_session_ext_register(session, "ext_client5", TLSEXT_TYPE5,
+ GNUTLS_EXT_TLS, ext_recv_client_params,
+ ext_send_client_params, NULL, NULL, NULL,
+ 0);
/* Perform the TLS handshake
*/
do {
ret = gnutls_handshake(session);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("client: Handshake failed\n");
@@ -165,7 +183,7 @@ static void client(int sd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
-end:
+ end:
close(sd);
gnutls_deinit(session);
@@ -202,21 +220,35 @@ static void server(int sd, const char *prio)
*/
assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
-
- gnutls_session_ext_register(session, "ext_server1", TLSEXT_TYPE1, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL, 0);
- gnutls_session_ext_register(session, "ext_server2", TLSEXT_TYPE2, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL, 0);
- gnutls_session_ext_register(session, "ext_server3", TLSEXT_TYPE3, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL, 0);
- gnutls_session_ext_register(session, "ext_server4", TLSEXT_TYPE4, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL, 0);
- gnutls_session_ext_register(session, "ext_server5", TLSEXT_TYPE5, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL, 0);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+
+ gnutls_session_ext_register(session, "ext_server1", TLSEXT_TYPE1,
+ GNUTLS_EXT_TLS, ext_recv_server_params,
+ ext_send_server_params, NULL, NULL, NULL,
+ 0);
+ gnutls_session_ext_register(session, "ext_server2", TLSEXT_TYPE2,
+ GNUTLS_EXT_TLS, ext_recv_server_params,
+ ext_send_server_params, NULL, NULL, NULL,
+ 0);
+ gnutls_session_ext_register(session, "ext_server3", TLSEXT_TYPE3,
+ GNUTLS_EXT_TLS, ext_recv_server_params,
+ ext_send_server_params, NULL, NULL, NULL,
+ 0);
+ gnutls_session_ext_register(session, "ext_server4", TLSEXT_TYPE4,
+ GNUTLS_EXT_TLS, ext_recv_server_params,
+ ext_send_server_params, NULL, NULL, NULL,
+ 0);
+ gnutls_session_ext_register(session, "ext_server5", TLSEXT_TYPE5,
+ GNUTLS_EXT_TLS, ext_recv_server_params,
+ ext_send_server_params, NULL, NULL, NULL,
+ 0);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
do {
ret = gnutls_handshake(session);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
close(sd);
@@ -254,7 +286,7 @@ void start(const char *prio)
int err;
signal(SIGPIPE, SIG_IGN);
- TLSEXT_TYPE_server_sent = 0;
+ TLSEXT_TYPE_server_sent = 0;
TLSEXT_TYPE_client_received = 0;
err = socketpair(AF_UNIX, SOCK_STREAM, 0, sockets);
diff --git a/tests/handshake-timeout.c b/tests/handshake-timeout.c
index 6ae9ca3730..53087aff70 100644
--- a/tests/handshake-timeout.c
+++ b/tests/handshake-timeout.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -37,17 +37,17 @@ int main(void)
#else
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
/* This program tests whether the handshake timeout value is enforced.
*/
@@ -83,7 +83,9 @@ static void client(int fd, int tmo_ms)
gnutls_handshake_set_timeout(session, tmo_ms);
/* Use default priorities */
- gnutls_priority_set_direct(session, "NORMAL:+ANON-ECDH:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:+ANON-ECDH:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
/* put the anonymous credentials to the current session
*/
@@ -145,7 +147,9 @@ static void server(int fd, int tmo_ms)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:+ANON-ECDH:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:+ANON-ECDH:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
@@ -155,8 +159,7 @@ static void server(int fd, int tmo_ms)
char buf[32];
// read until client closes connection
- while (read(fd, buf, sizeof(buf)) > 0)
- ;
+ while (read(fd, buf, sizeof(buf)) > 0) ;
} else {
do {
ret = gnutls_handshake(session);
diff --git a/tests/handshake-versions.c b/tests/handshake-versions.c
index 74e92ab030..38b83a398e 100644
--- a/tests/handshake-versions.c
+++ b/tests/handshake-versions.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,8 +36,8 @@
* hello TLS versions */
void _gnutls_hello_set_default_version(gnutls_session_t session,
- unsigned char major,
- unsigned char minor);
+ unsigned char major,
+ unsigned char minor);
const char *side;
@@ -70,12 +70,9 @@ static void try(unsigned char major, unsigned char minor, int ret1, int ret2)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- gnutls_priority_set_direct(server,
- "NORMAL:+VERS-TLS-ALL",
- NULL);
+ gnutls_priority_set_direct(server, "NORMAL:+VERS-TLS-ALL", NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -86,7 +83,9 @@ static void try(unsigned char major, unsigned char minor, int ret1, int ret2)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -95,7 +94,7 @@ static void try(unsigned char major, unsigned char minor, int ret1, int ret2)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -124,18 +123,18 @@ void doit(void)
{
global_init();
- try(1,1, GNUTLS_E_AGAIN, GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ try(1, 1, GNUTLS_E_AGAIN, GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
reset_buffers();
- try(2,1, GNUTLS_E_AGAIN, GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ try(2, 1, GNUTLS_E_AGAIN, GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
reset_buffers();
/* check SSL 3.0 which is disabled by default */
- try(3,0, GNUTLS_E_AGAIN, GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ try(3, 0, GNUTLS_E_AGAIN, GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
reset_buffers();
- try(3,2, 0, 0);
+ try(3, 2, 0, 0);
reset_buffers();
- try(3,23, 0, 0);
+ try(3, 23, 0, 0);
reset_buffers();
- try(4,0, 0, 0);
+ try(4, 0, 0, 0);
reset_buffers();
gnutls_global_deinit();
}
diff --git a/tests/handshake-write.c b/tests/handshake-write.c
index 33463e7a6f..f1385039da 100644
--- a/tests/handshake-write.c
+++ b/tests/handshake-write.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -56,8 +56,7 @@ error_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
return -1;
}
-static ssize_t
-error_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
+static ssize_t error_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
{
fail("pull_func called unexpectedly");
return -1;
@@ -119,7 +118,8 @@ static void run(const char *name, const char *prio)
gnutls_init(&client, GNUTLS_CLIENT);
assert(gnutls_priority_set_direct(client, prio, NULL) >= 0);
- assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, ccred) >= 0);
+ assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, ccred) >=
+ 0);
gnutls_transport_set_push_function(client, error_push);
gnutls_transport_set_pull_function(client, error_pull);
diff --git a/tests/hex.c b/tests/hex.c
index 03185504af..c5b3b6a58d 100644
--- a/tests/hex.c
+++ b/tests/hex.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,38 +33,41 @@
#include "utils.h"
-static void encode(const char *test_name, const gnutls_datum_t *raw, const char *expected)
+static void encode(const char *test_name, const gnutls_datum_t * raw,
+ const char *expected)
{
int ret;
gnutls_datum_t out, in;
ret = gnutls_hex_encode2(raw, &out);
if (ret < 0) {
- fail("%s: gnutls_hex_encode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_hex_encode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (strlen(expected)!=out.size) {
+ if (strlen(expected) != out.size) {
fail("%s: gnutls_hex_encode2: output has incorrect size (%d, expected %d)\n", test_name, (int)out.size, (int)strlen(expected));
exit(1);
}
- if (strncasecmp(expected, (char*)out.data, out.size) != 0) {
+ if (strncasecmp(expected, (char *)out.data, out.size) != 0) {
fail("%s: gnutls_hex_encode2: output does not match the expected\n", test_name);
exit(1);
}
gnutls_free(out.data);
- in.data = (void*)expected;
+ in.data = (void *)expected;
in.size = strlen(expected);
ret = gnutls_hex_decode2(&in, &out);
if (ret < 0) {
- fail("%s: gnutls_hex_decode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_hex_decode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (raw->size!=out.size) {
+ if (raw->size != out.size) {
fail("%s: gnutls_hex_decode2: output has incorrect size (%d, expected %d)\n", test_name, out.size, raw->size);
exit(1);
}
@@ -79,18 +82,20 @@ static void encode(const char *test_name, const gnutls_datum_t *raw, const char
return;
}
-static void decode(const char *test_name, const gnutls_datum_t *raw, const char *hex, int res)
+static void decode(const char *test_name, const gnutls_datum_t * raw,
+ const char *hex, int res)
{
int ret;
gnutls_datum_t out, in;
- in.data = (void*)hex;
+ in.data = (void *)hex;
in.size = strlen(hex);
ret = gnutls_hex_decode2(&in, &out);
if (ret < 0) {
- if (res == ret) /* expected */
+ if (res == ret) /* expected */
return;
- fail("%s: gnutls_hex_decode2: %d/%s\n", test_name, ret, gnutls_strerror(ret));
+ fail("%s: gnutls_hex_decode2: %d/%s\n", test_name, ret,
+ gnutls_strerror(ret));
exit(1);
}
@@ -99,7 +104,7 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
exit(1);
}
- if (raw->size!=out.size) {
+ if (raw->size != out.size) {
fail("%s: gnutls_hex_decode2: output has incorrect size (%d, expected %d)\n", test_name, out.size, raw->size);
exit(1);
}
@@ -114,7 +119,8 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
return;
}
-static void decode2(const char *test_name, const gnutls_datum_t *raw, const char *hex, int res)
+static void decode2(const char *test_name, const gnutls_datum_t * raw,
+ const char *hex, int res)
{
int ret;
unsigned char output[128];
@@ -123,24 +129,27 @@ static void decode2(const char *test_name, const gnutls_datum_t *raw, const char
outlen = sizeof(output);
ret = gnutls_hex2bin(hex, strlen(hex), output, &outlen);
if (ret < 0) {
- if (res == ret) /* expected */
+ if (res == ret) /* expected */
return;
- fail("%s: gnutls_hex2bin: %d/%s\n", test_name, ret, gnutls_strerror(ret));
+ fail("%s: gnutls_hex2bin: %d/%s\n", test_name, ret,
+ gnutls_strerror(ret));
exit(1);
}
if (res != 0) {
- fail("%s: gnutls_hex2bin: expected failure, but succeeded!\n", test_name);
+ fail("%s: gnutls_hex2bin: expected failure, but succeeded!\n",
+ test_name);
exit(1);
}
- if (raw->size!=outlen) {
+ if (raw->size != outlen) {
fail("%s: gnutls_hex2bin: output has incorrect size (%d, expected %d)\n", test_name, (int)outlen, raw->size);
exit(1);
}
if (memcmp(raw->data, output, outlen) != 0) {
- fail("%s: gnutls_hex2bin: output does not match the expected\n", test_name);
+ fail("%s: gnutls_hex2bin: output does not match the expected\n",
+ test_name);
exit(1);
}
@@ -155,15 +164,19 @@ struct encode_tests_st {
struct encode_tests_st encode_tests[] = {
{
- .name = "rnd1",
- .hex = "f69a468a84697a2883da52cd602f3978",
- .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78", 16}
- },
+ .name = "rnd1",
+ .hex = "f69a468a84697a2883da52cd602f3978",
+ .raw = {(void *)
+ "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78",
+ 16}
+ },
{
- .name = "rnd2",
- .hex = "2c9ffb8546774ed3c8cf6765739f98bc42def9",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19}
- }
+ .name = "rnd2",
+ .hex = "2c9ffb8546774ed3c8cf6765739f98bc42def9",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19}
+ }
};
struct decode_tests_st {
@@ -176,49 +189,55 @@ struct decode_tests_st {
struct decode_tests_st decode_tests[] = {
{
- .name = "dec-rnd1",
- .hex = "f69a468a84697a2883da52cd602f3978",
- .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78", 16},
- .res = 0,
- .hex2bin_res = 0
- },
+ .name = "dec-rnd1",
+ .hex = "f69a468a84697a2883da52cd602f3978",
+ .raw = {(void *)
+ "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78",
+ 16},
+ .res = 0,
+ .hex2bin_res = 0},
{
- .name = "dec-rnd2",
- .hex = "2c9ffb8546774ed3c8cf6765739f98bc42def9",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = 0,
- .hex2bin_res = 0
- },
+ .name = "dec-rnd2",
+ .hex = "2c9ffb8546774ed3c8cf6765739f98bc42def9",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = 0,
+ .hex2bin_res = 0},
{
- .name = "dec-colon",
- .hex = "2c:9f:fb:85:46:77:4e:d3:c8:cf:67:65:73:9f:98:bc:42:de:f9",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = GNUTLS_E_PARSING_ERROR,
- .hex2bin_res = 0
- },
+ .name = "dec-colon",
+ .hex = "2c:9f:fb:85:46:77:4e:d3:c8:cf:67:65:73:9f:98:bc:42:de:f9",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = GNUTLS_E_PARSING_ERROR,
+ .hex2bin_res = 0},
{
- .name = "dec-odd-len",
- .hex = "2c9ffb8546774ed3c8cf6765739f98bc42def9a",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = GNUTLS_E_PARSING_ERROR,
- .hex2bin_res = GNUTLS_E_PARSING_ERROR
- }
+ .name = "dec-odd-len",
+ .hex = "2c9ffb8546774ed3c8cf6765739f98bc42def9a",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = GNUTLS_E_PARSING_ERROR,
+ .hex2bin_res = GNUTLS_E_PARSING_ERROR}
};
void doit(void)
{
unsigned i;
- for (i=0;i<sizeof(encode_tests)/sizeof(encode_tests[0]);i++) {
- encode(encode_tests[i].name, &encode_tests[i].raw, encode_tests[i].hex);
+ for (i = 0; i < sizeof(encode_tests) / sizeof(encode_tests[0]); i++) {
+ encode(encode_tests[i].name, &encode_tests[i].raw,
+ encode_tests[i].hex);
}
- for (i=0;i<sizeof(decode_tests)/sizeof(decode_tests[0]);i++) {
- decode(decode_tests[i].name, &decode_tests[i].raw, decode_tests[i].hex, decode_tests[i].res);
+ for (i = 0; i < sizeof(decode_tests) / sizeof(decode_tests[0]); i++) {
+ decode(decode_tests[i].name, &decode_tests[i].raw,
+ decode_tests[i].hex, decode_tests[i].res);
}
- for (i=0;i<sizeof(decode_tests)/sizeof(decode_tests[0]);i++) {
- decode2(decode_tests[i].name, &decode_tests[i].raw, decode_tests[i].hex, decode_tests[i].hex2bin_res);
+ for (i = 0; i < sizeof(decode_tests) / sizeof(decode_tests[0]); i++) {
+ decode2(decode_tests[i].name, &decode_tests[i].raw,
+ decode_tests[i].hex, decode_tests[i].hex2bin_res);
}
}
-
diff --git a/tests/hex.h b/tests/hex.h
index 4129a0537e..f388059c51 100644
--- a/tests/hex.h
+++ b/tests/hex.h
@@ -20,18 +20,18 @@
*/
#ifndef GNUTLS_TESTS_HEX_H
-#define GNUTLS_TESTS_HEX_H
+# define GNUTLS_TESTS_HEX_H
-#include <stdio.h>
-#include <string.h>
-#include <gnutls/gnutls.h>
+# include <stdio.h>
+# include <string.h>
+# include <gnutls/gnutls.h>
inline static gnutls_datum_t SHEX(const char *hex)
{
gnutls_datum_t input, output;
int ret;
- input.data = (void*)hex;
+ input.data = (void *)hex;
input.size = strlen(hex);
ret = gnutls_hex_decode2(&input, &output);
@@ -42,9 +42,9 @@ inline static gnutls_datum_t SHEX(const char *hex)
inline static gnutls_datum_t SDATA(const char *txt)
{
gnutls_datum_t output;
- output.data = (void*)gnutls_strdup(txt);
+ output.data = (void *)gnutls_strdup(txt);
output.size = strlen(txt);
return output;
}
-#endif /* GNUTLS_TESTS_HEX_H */
+#endif /* GNUTLS_TESTS_HEX_H */
diff --git a/tests/hostname-check-utf8.c b/tests/hostname-check-utf8.c
index 1aec74b6dd..7304fedc5c 100644
--- a/tests/hostname-check-utf8.c
+++ b/tests/hostname-check-utf8.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -30,7 +30,7 @@
#if defined(HAVE_LIBIDN2)
/* to obtain version */
-#include <idn2.h>
+# include <idn2.h>
#endif
#include "utils.h"
@@ -41,61 +41,61 @@
*/
char pem_inv_utf8_dns[] = "\n"
- " Subject Alternative Name (not critical):\n"
- " DNSname: γγγ.τόστ.gr\n"
- " DNSname: τέστ.gr\n"
- " DNSname: *.teχ.gr\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDWzCCAkOgAwIBAgIMU/SjEDp2nsS3kX9vMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTAwIhgPMjAxNDA4MjAxMzMwNTZaGA85OTk5MTIzMTIzNTk1OVow\n"
- "EzERMA8GA1UEAxMIc2VydmVyLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
- "AoIBAQDggz41h9PcOjL7UOqx0FfZNtqoRhYQn6bVQqCehwERMDlR4QOqK3LRqE2B\n"
- "cYyVlcdS63tnNFjYCLCz3/CV4rcJBNI3hfFZHUza70iFQ72xMvcgFPyl7UmXqIne\n"
- "8swJ9jLMKou350ztPhshhXORqKxaDHBMcgD/Ade3Yxo2N1smsyINK+riged7A4QD\n"
- "O9IgR9eERQbFrHGz+WgUUgoLFLF4DN1ANpWuZcOV1f9bRB8ADPyKo1yZY1sJj1gE\n"
- "JRRsiOZLSLZ9D/1MLM7BXPuxWmWlJAGfNvrcXX/7FHe6QxC5gi1C6ZUEIZCne+Is\n"
- "HpDNoz/A9vDn6iXZJBFXKyijNpVfAgMBAAGjga4wgaswDAYDVR0TAQH/BAIwADA1\n"
- "BgNVHREELjAsghLOs86zzrMuz4TPjM+Dz4QuZ3KCC8+Ezq3Pg8+ELmdyggkqLnRl\n"
- "z4cuZ3IwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0PAQH/BAUDAwegADAdBgNV\n"
- "HQ4EFgQUvjD8gT+By/Xj/n+SGCVvL/KVElMwHwYDVR0jBBgwFoAUhU7w94kERpAh\n"
- "6DEIh3nEVJnwSaUwDQYJKoZIhvcNAQELBQADggEBAIKuSREAd6ZdcS+slbx+hvew\n"
- "IRBz5QGlCCjR4Oj5arIwFGnh0GdvAgzPa3qn6ReG1gvpe8k3X6Z2Yevw+DubLZNG\n"
- "9CsfLfDIg2wUm05cuQdQG+gTSBVqw56jWf/JFXXwzhnbjX3c2QtepFsvkOnlWGFE\n"
- "uVX6AiPfiNChVxnb4e1xpxOt6W/su19ar5J7rdDrdyVVm/ioSKvXhbBXI4f8NF2x\n"
- "wTEzbtl99HyjbLIRRCWpUU277khHLr8SSFqdSr100zIkdiB72LfPXAHVld1onV2z\n"
- "PPFYVMsnY+fuxIsTVErX3bLj6v67Bs3BNzagFUlyJl5rBGwn73UafNWz3BYDyxY=\n"
- "-----END CERTIFICATE-----\n";
-
-char pem_utf8_dns[] =
- "Subject Alternative Name (not critical):\n"
- " DNSname: xn--oxaaa.xn--4xabb4a.gr (γγγ.τόστ.gr)\n"
- " DNSname: xn--ixa8bbc.gr (τέστ.gr)\n"
- " DNSname: *.xn--te-8bc.gr (*.teχ.gr)\n"
- "\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEFTCCAn2gAwIBAgIMWElZgiWN43F5pluiMA0GCSqGSIb3DQEBCwUAMA0xCzAJ\n"
- "BgNVBAYTAkdSMB4XDTA0MDIyOTE1MjE0MloXDTI0MDIyOTE1MjE0MVowDTELMAkG\n"
- "A1UEBhMCR1IwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC23cZ4hvts\n"
- "D/zjXmX70ewCWpFaOXXhSiB1U4ogVsIYPh0o3eJ3w2vr8k7f8CHZXT9T64g9UYoH\n"
- "PM+vPkcT6RnwHNfe6SpSqTtPCNC9UQyp4wVq+HxnQsxOrmf2bClYn6CGaXQvDNiG\n"
- "KQCDGoxLZx+d12dYUxL4l07J3rogk7Wqe9znkpC+9UqyDJIAZgF9e4H190sRY0FM\n"
- "zrOkDDDmt/vBlu0SPhP0sktUJDjvOtHY/V2IDp0y9tImxnFhdl5k4kAEiPiph72C\n"
- "QjSRf/Kb5siUcgRxmTvN9GgWNPg3EtmyynMjIlnzicO1p6Wju80hAuVhYKOI3aq6\n"
- "FAUHY0DQkkna7dcmKwJdUo9jzMWBV+B+eOT69rDKcAvQJz5PfrrnE9SJ4/eteam7\n"
- "l4BcIZIKSuaZz48ymh6exEpSY+P3SD05oZbeQVfgi4e7Ui81S63XRlPqLPCYp0+N\n"
- "q2nSeVedR59AtQhyGhQLgQneV0R17aym+1nJ8AjsZXL7sfYef/OOxeMCAwEAAaN1\n"
- "MHMwDAYDVR0TAQH/BAIwADBEBgNVHREEPTA7ghh4bi0tb3hhYWEueG4tLTR4YWJi\n"
- "NGEuZ3KCDnhuLS1peGE4YmJjLmdygg8qLnhuLS10ZS04YmMuZ3IwHQYDVR0OBBYE\n"
- "FPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQAOAECgc096\n"
- "3WH7G83bRmVDooGATNP0v3cmYebVu3RL77/vlCO3UOS9lVxEwlF/6V1u3OqEqwUy\n"
- "EzGInEAmqR/VIoubIVrFqzaMMjfCHdKPuyWeCb3ylp0o2lxRKbC9m/Bu8Iv5rZdN\n"
- "fTZVyJbp1Ddw4GhM0UZ/IK3h8J8UtarSijhha0UX9EwQo4wi1NRpc2nxRGy7xUHG\n"
- "GqUCFBe6cgKBEBRWh3Gha5UgwqkapA9eGGmb7CRzOHZA0raIcxwb2w2Htf7ziE1G\n"
- "UBdo0ZtpVYq/EDggP4XIvqHb8bJVFuOiu2xf71JoPgjg4+1CEj+vgkI4j/RGDjZ/\n"
- "bQ66XHY2EbCjhSLoCGpY924frilrFL3cMofdMguxtsONwUotYmCF6VI/EtELvIdf\n"
- "NbdaPqI2524oBDlD98DTJa5mGoaFUyJGotcK3e9fniIxbVW8/Ykwhqbj+9wKjYEP\n"
- "ywY/9UOj+wjwULkIxK9g91yGLRDAO/6xzCF5ly5i4oXBqKLAKZ7vBTU=\n"
- "-----END CERTIFICATE-----\n";
+ " Subject Alternative Name (not critical):\n"
+ " DNSname: γγγ.τόστ.gr\n"
+ " DNSname: τέστ.gr\n"
+ " DNSname: *.teχ.gr\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDWzCCAkOgAwIBAgIMU/SjEDp2nsS3kX9vMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTAwIhgPMjAxNDA4MjAxMzMwNTZaGA85OTk5MTIzMTIzNTk1OVow\n"
+ "EzERMA8GA1UEAxMIc2VydmVyLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
+ "AoIBAQDggz41h9PcOjL7UOqx0FfZNtqoRhYQn6bVQqCehwERMDlR4QOqK3LRqE2B\n"
+ "cYyVlcdS63tnNFjYCLCz3/CV4rcJBNI3hfFZHUza70iFQ72xMvcgFPyl7UmXqIne\n"
+ "8swJ9jLMKou350ztPhshhXORqKxaDHBMcgD/Ade3Yxo2N1smsyINK+riged7A4QD\n"
+ "O9IgR9eERQbFrHGz+WgUUgoLFLF4DN1ANpWuZcOV1f9bRB8ADPyKo1yZY1sJj1gE\n"
+ "JRRsiOZLSLZ9D/1MLM7BXPuxWmWlJAGfNvrcXX/7FHe6QxC5gi1C6ZUEIZCne+Is\n"
+ "HpDNoz/A9vDn6iXZJBFXKyijNpVfAgMBAAGjga4wgaswDAYDVR0TAQH/BAIwADA1\n"
+ "BgNVHREELjAsghLOs86zzrMuz4TPjM+Dz4QuZ3KCC8+Ezq3Pg8+ELmdyggkqLnRl\n"
+ "z4cuZ3IwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0PAQH/BAUDAwegADAdBgNV\n"
+ "HQ4EFgQUvjD8gT+By/Xj/n+SGCVvL/KVElMwHwYDVR0jBBgwFoAUhU7w94kERpAh\n"
+ "6DEIh3nEVJnwSaUwDQYJKoZIhvcNAQELBQADggEBAIKuSREAd6ZdcS+slbx+hvew\n"
+ "IRBz5QGlCCjR4Oj5arIwFGnh0GdvAgzPa3qn6ReG1gvpe8k3X6Z2Yevw+DubLZNG\n"
+ "9CsfLfDIg2wUm05cuQdQG+gTSBVqw56jWf/JFXXwzhnbjX3c2QtepFsvkOnlWGFE\n"
+ "uVX6AiPfiNChVxnb4e1xpxOt6W/su19ar5J7rdDrdyVVm/ioSKvXhbBXI4f8NF2x\n"
+ "wTEzbtl99HyjbLIRRCWpUU277khHLr8SSFqdSr100zIkdiB72LfPXAHVld1onV2z\n"
+ "PPFYVMsnY+fuxIsTVErX3bLj6v67Bs3BNzagFUlyJl5rBGwn73UafNWz3BYDyxY=\n"
+ "-----END CERTIFICATE-----\n";
+
+char pem_utf8_dns[] =
+ "Subject Alternative Name (not critical):\n"
+ " DNSname: xn--oxaaa.xn--4xabb4a.gr (γγγ.τόστ.gr)\n"
+ " DNSname: xn--ixa8bbc.gr (τέστ.gr)\n"
+ " DNSname: *.xn--te-8bc.gr (*.teχ.gr)\n"
+ "\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEFTCCAn2gAwIBAgIMWElZgiWN43F5pluiMA0GCSqGSIb3DQEBCwUAMA0xCzAJ\n"
+ "BgNVBAYTAkdSMB4XDTA0MDIyOTE1MjE0MloXDTI0MDIyOTE1MjE0MVowDTELMAkG\n"
+ "A1UEBhMCR1IwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC23cZ4hvts\n"
+ "D/zjXmX70ewCWpFaOXXhSiB1U4ogVsIYPh0o3eJ3w2vr8k7f8CHZXT9T64g9UYoH\n"
+ "PM+vPkcT6RnwHNfe6SpSqTtPCNC9UQyp4wVq+HxnQsxOrmf2bClYn6CGaXQvDNiG\n"
+ "KQCDGoxLZx+d12dYUxL4l07J3rogk7Wqe9znkpC+9UqyDJIAZgF9e4H190sRY0FM\n"
+ "zrOkDDDmt/vBlu0SPhP0sktUJDjvOtHY/V2IDp0y9tImxnFhdl5k4kAEiPiph72C\n"
+ "QjSRf/Kb5siUcgRxmTvN9GgWNPg3EtmyynMjIlnzicO1p6Wju80hAuVhYKOI3aq6\n"
+ "FAUHY0DQkkna7dcmKwJdUo9jzMWBV+B+eOT69rDKcAvQJz5PfrrnE9SJ4/eteam7\n"
+ "l4BcIZIKSuaZz48ymh6exEpSY+P3SD05oZbeQVfgi4e7Ui81S63XRlPqLPCYp0+N\n"
+ "q2nSeVedR59AtQhyGhQLgQneV0R17aym+1nJ8AjsZXL7sfYef/OOxeMCAwEAAaN1\n"
+ "MHMwDAYDVR0TAQH/BAIwADBEBgNVHREEPTA7ghh4bi0tb3hhYWEueG4tLTR4YWJi\n"
+ "NGEuZ3KCDnhuLS1peGE4YmJjLmdygg8qLnhuLS10ZS04YmMuZ3IwHQYDVR0OBBYE\n"
+ "FPmohhljtqQUE2B2DwGaNTbv8bSvMA0GCSqGSIb3DQEBCwUAA4IBgQAOAECgc096\n"
+ "3WH7G83bRmVDooGATNP0v3cmYebVu3RL77/vlCO3UOS9lVxEwlF/6V1u3OqEqwUy\n"
+ "EzGInEAmqR/VIoubIVrFqzaMMjfCHdKPuyWeCb3ylp0o2lxRKbC9m/Bu8Iv5rZdN\n"
+ "fTZVyJbp1Ddw4GhM0UZ/IK3h8J8UtarSijhha0UX9EwQo4wi1NRpc2nxRGy7xUHG\n"
+ "GqUCFBe6cgKBEBRWh3Gha5UgwqkapA9eGGmb7CRzOHZA0raIcxwb2w2Htf7ziE1G\n"
+ "UBdo0ZtpVYq/EDggP4XIvqHb8bJVFuOiu2xf71JoPgjg4+1CEj+vgkI4j/RGDjZ/\n"
+ "bQ66XHY2EbCjhSLoCGpY924frilrFL3cMofdMguxtsONwUotYmCF6VI/EtELvIdf\n"
+ "NbdaPqI2524oBDlD98DTJa5mGoaFUyJGotcK3e9fniIxbVW8/Ykwhqbj+9wKjYEP\n"
+ "ywY/9UOj+wjwULkIxK9g91yGLRDAO/6xzCF5ly5i4oXBqKLAKZ7vBTU=\n"
+ "-----END CERTIFICATE-----\n";
void doit(void)
{
@@ -117,7 +117,7 @@ void doit(void)
if (debug)
success("Testing pem_invalid_utf8_dns...\n");
- data.data = (unsigned char *) pem_inv_utf8_dns;
+ data.data = (unsigned char *)pem_inv_utf8_dns;
data.size = strlen(pem_inv_utf8_dns);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -146,7 +146,8 @@ void doit(void)
ret = gnutls_x509_crt_check_hostname(x509, "www.teχ.gr");
if (ret)
- fail("%d: Invalid hostname incorrectly matches (%d)\n", __LINE__, ret);
+ fail("%d: Invalid hostname incorrectly matches (%d)\n",
+ __LINE__, ret);
#if IDN2_VERSION_NUMBER >= 0x00160000
ret = gnutls_x509_crt_check_hostname(x509, "γΓγ.τόΣτ.gr");
@@ -159,24 +160,27 @@ void doit(void)
#endif
ret = gnutls_x509_crt_check_hostname(x509, "γγγ.τόστ.gr");
if (ret)
- fail("%d: Invalid hostname incorrectly matches (%d)\n", __LINE__, ret);
+ fail("%d: Invalid hostname incorrectly matches (%d)\n",
+ __LINE__, ret);
ret = gnutls_x509_crt_check_hostname(x509, "γΓγ.τόΣτ.gr");
if (ret)
- fail("%d: Invalid hostname incorrectly matches (%d)\n", __LINE__, ret);
+ fail("%d: Invalid hostname incorrectly matches (%d)\n",
+ __LINE__, ret);
ret = gnutls_x509_crt_check_hostname(x509, "τέστ.gr");
if (ret)
- fail("%d: Invalid hostname incorrectly matches (%d)\n", __LINE__, ret);
+ fail("%d: Invalid hostname incorrectly matches (%d)\n",
+ __LINE__, ret);
ret = gnutls_x509_crt_check_hostname(x509, "ΤΈΣΤ.gr");
if (ret)
- fail("%d: Invalid hostname incorrectly matches (%d)\n", __LINE__, ret);
-
+ fail("%d: Invalid hostname incorrectly matches (%d)\n",
+ __LINE__, ret);
if (debug)
success("Testing pem_utf8_dns...\n");
- data.data = (unsigned char *) pem_utf8_dns;
+ data.data = (unsigned char *)pem_utf8_dns;
data.size = strlen(pem_utf8_dns);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -205,24 +209,29 @@ void doit(void)
ret = gnutls_x509_crt_check_hostname(x509, "www.teχ.gr");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "γγγ.τόστ.gr");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "τέστ.gr");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
#if IDN2_VERSION_NUMBER >= 0x00160000
ret = gnutls_x509_crt_check_hostname(x509, "γΓγ.τόΣτ.gr");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "ΤΈΣΤ.gr");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
#endif
gnutls_x509_crt_deinit(x509);
diff --git a/tests/hostname-check.c b/tests/hostname-check.c
index c6577c0362..358350dd24 100644
--- a/tests/hostname-check.c
+++ b/tests/hostname-check.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <string.h>
@@ -41,22 +41,22 @@
* dns_name = .example.edu.gr
*/
char wildcards[] = "-----BEGIN CERTIFICATE-----"
-"MIICwDCCAimgAwIBAgICPd8wDQYJKoZIhvcNAQELBQAwVTEOMAwGA1UEAwwFKi5j"
-"b20xETAPBgNVBAsTCENBIGRlcHQuMRIwEAYDVQQKEwlLb2tvIGluYy4xDzANBgNV"
-"BAgTBkF0dGlraTELMAkGA1UEBhMCR1IwIhgPMjAxNDAzMTkxMzI4MDhaGA85OTk5"
-"MTIzMTIzNTk1OVowVTEOMAwGA1UEAwwFKi5jb20xETAPBgNVBAsTCENBIGRlcHQu"
-"MRIwEAYDVQQKEwlLb2tvIGluYy4xDzANBgNVBAgTBkF0dGlraTELMAkGA1UEBhMC"
-"R1IwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKXGznVDhL9kngInE/EDWfd5"
-"LZLtfC9QpAPxLXm5hosFfjq7RKqvhM8TmB4cSjj3My16n3LUa20msDE3cBD7QunY"
-"nRhlfhlJ/AWWBGiDHneGv+315RI7E/4zGJwaeh1pr0cCYHofuejP28g0MFGWPYyW"
-"XAC8Yd4ID7E2IX+pAOMFAgMBAAGjgZowgZcwDAYDVR0TAQH/BAIwADBCBgNVHREE"
-"OzA5gg93d3cuZXhhbXBsZS5jb22CBSoub3Jngg0qLmV4YW1wbGUubmV0ghAqLmV4"
-"YW1wbGUuZWR1LmdyMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdDwEB/wQFAwMH"
-"oAAwHQYDVR0OBBYEFF1ArfDOlECVi36ZlB2SVCLKcjZfMA0GCSqGSIb3DQEBCwUA"
-"A4GBAGcDnJIJFqjaDMk806xkfz7/FtbHYkj18ma3l7wgp27jeO/QDYunns5pqbqV"
-"sxaKuPKLdWQdfIG7l4+TUnm/Hue6h2PFgbAyZtZbHlAtpEmLoSCmYlFqbRNqux0z"
-"F5H1ocGzmbu1WQYXMlY1FYBvRDrAk7Wxt09WLdajH00S/fPT"
-"-----END CERTIFICATE-----";
+ "MIICwDCCAimgAwIBAgICPd8wDQYJKoZIhvcNAQELBQAwVTEOMAwGA1UEAwwFKi5j"
+ "b20xETAPBgNVBAsTCENBIGRlcHQuMRIwEAYDVQQKEwlLb2tvIGluYy4xDzANBgNV"
+ "BAgTBkF0dGlraTELMAkGA1UEBhMCR1IwIhgPMjAxNDAzMTkxMzI4MDhaGA85OTk5"
+ "MTIzMTIzNTk1OVowVTEOMAwGA1UEAwwFKi5jb20xETAPBgNVBAsTCENBIGRlcHQu"
+ "MRIwEAYDVQQKEwlLb2tvIGluYy4xDzANBgNVBAgTBkF0dGlraTELMAkGA1UEBhMC"
+ "R1IwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKXGznVDhL9kngInE/EDWfd5"
+ "LZLtfC9QpAPxLXm5hosFfjq7RKqvhM8TmB4cSjj3My16n3LUa20msDE3cBD7QunY"
+ "nRhlfhlJ/AWWBGiDHneGv+315RI7E/4zGJwaeh1pr0cCYHofuejP28g0MFGWPYyW"
+ "XAC8Yd4ID7E2IX+pAOMFAgMBAAGjgZowgZcwDAYDVR0TAQH/BAIwADBCBgNVHREE"
+ "OzA5gg93d3cuZXhhbXBsZS5jb22CBSoub3Jngg0qLmV4YW1wbGUubmV0ghAqLmV4"
+ "YW1wbGUuZWR1LmdyMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdDwEB/wQFAwMH"
+ "oAAwHQYDVR0OBBYEFF1ArfDOlECVi36ZlB2SVCLKcjZfMA0GCSqGSIb3DQEBCwUA"
+ "A4GBAGcDnJIJFqjaDMk806xkfz7/FtbHYkj18ma3l7wgp27jeO/QDYunns5pqbqV"
+ "sxaKuPKLdWQdfIG7l4+TUnm/Hue6h2PFgbAyZtZbHlAtpEmLoSCmYlFqbRNqux0z"
+ "F5H1ocGzmbu1WQYXMlY1FYBvRDrAk7Wxt09WLdajH00S/fPT"
+ "-----END CERTIFICATE-----";
/* Certificate with no SAN nor CN. */
char pem1[] =
@@ -507,8 +507,7 @@ char pem9[] =
"A1UdDgQWBBRMuQqb+h00437ey9IHFf6h2stokTALBgkqhkiG9w0BAQUDgYEAoh/S\n"
"kF/JHG+SHcULrLAXI8VnRpRvD2J9Zkwo/7cQc2CuDqJHgoO7iQ3xFl75WzVLzu5e\n"
"0K21i8w3s6xNG1jCTxx/xqw9JRhnN/AnEZssILZ4JCGmd0TnGuX2v0WEMoFnr42W\n"
- "Jvc5MWtjxRWd4KCaHpYSy62Fy6fUhqzY9emkKyA=\n"
- "-----END CERTIFICATE-----\n";
+ "Jvc5MWtjxRWd4KCaHpYSy62Fy6fUhqzY9emkKyA=\n" "-----END CERTIFICATE-----\n";
/* Certificate with SAN and CN that match iff you truncate the SAN to
the embedded NUL.
@@ -620,179 +619,175 @@ char pem_too_many[] = "\n"
"q7/LRSxaZenB/Q==\n" "-----END CERTIFICATE-----\n";
char pem_ips[] = "\n"
- "X.509 Certificate Information:\n"
- " Version: 3\n"
- " Serial Number (hex): 00\n"
- " Issuer: CN=server-0\n"
- " Validity:\n"
- " Not Before: Fri Jun 27 09:14:36 UTC 2014\n"
- " Not After: Fri Dec 31 23:59:59 UTC 9999\n"
- " Subject: CN=server-0\n"
- " Subject Public Key Algorithm: RSA\n"
- " Algorithm Security Level: Medium (2048 bits)\n"
- " Modulus (bits 2048):\n"
- " 00:c1:56:12:f6:c3:c7:e3:4c:7e:ff:04:4e:88:1d:67\n"
- " a7:f3:4d:64:cc:12:a7:ff:50:aa:5c:31:b9:3c:d1:d1\n"
- " ba:78:2c:7d:dd:54:4a:cd:5a:f2:38:8b:b2:c5:26:7e\n"
- " 25:05:36:b6:92:e6:1d:c3:00:39:a0:c5:1c:b5:63:3d\n"
- " 00:e9:b4:b5:75:a7:14:b1:ff:a0:03:9d:ba:77:da:e5\n"
- " de:21:fb:56:da:06:9d:84:57:53:3d:08:45:45:20:fd\n"
- " e7:60:65:2e:55:60:db:d3:91:da:64:ff:c4:42:42:54\n"
- " 77:cb:47:54:68:1e:b4:62:ad:8a:3c:0a:28:89:cb:d3\n"
- " 81:d3:15:9a:1d:67:90:51:83:90:6d:fb:a1:0e:54:6b\n"
- " 29:d7:ef:79:19:14:f6:0d:82:73:8f:79:58:0e:af:0e\n"
- " cc:bd:17:ab:b5:a2:1f:76:a1:9f:4b:7b:e8:f9:7b:28\n"
- " 56:cc:f1:5b:0e:93:c9:e5:44:2f:2d:0a:22:7d:0b:2b\n"
- " 30:84:c3:1e:d6:4d:63:5b:41:51:83:d4:b5:09:f4:cc\n"
- " ab:ad:51:1b:8e:a1:f6:b1:27:5b:43:3c:bc:ae:10:93\n"
- " d4:ce:3b:10:ca:3f:22:dd:9e:a8:3f:4a:a6:a8:cd:8f\n"
- " d0:6a:e0:40:26:28:0f:af:0e:13:e1:ac:b9:ac:41:cc\n"
- " 5d\n"
- " Exponent (bits 24):\n"
- " 01:00:01\n"
- " Extensions:\n"
- " Basic Constraints (critical):\n"
- " Certificate Authority (CA): TRUE\n"
- " Subject Alternative Name (not critical):\n"
- " IPAddress: 127.0.0.1\n"
- " IPAddress: 192.168.5.1\n"
- " IPAddress: 10.100.2.5\n"
- " IPAddress: 0:0:0:0:0:0:0:1\n"
- " IPAddress: fe80:0:0:0:3e97:eff:fe18:359a\n"
- " Key Usage (critical):\n"
- " Certificate signing.\n"
- " Subject Key Identifier (not critical):\n"
- " bd3d0b6cab6b33d8a8e1ed15b7ab17587cc2a09f\n"
- " Signature Algorithm: RSA-SHA256\n"
- " Signature:\n"
- " 02:22:52:4b:69:e5:4f:f8:17:0a:46:34:d1:ec:6b:f5\n"
- " ae:5b:fc:e2:00:ca:1f:f0:1d:74:91:9c:85:0a:a7:06\n"
- " 3d:fa:93:0d:35:85:ea:3e:01:9f:9e:bc:52:72:95:b2\n"
- " 8a:3a:78:6e:d2:5d:4d:60:88:2b:be:6f:68:75:c7:19\n"
- " ac:c9:ea:ab:74:f6:62:4d:30:1e:87:e4:70:1e:96:f4\n"
- " 0b:48:ef:c9:28:14:6f:fa:c1:7b:d3:ef:b3:d8:52:90\n"
- " 5d:20:d0:aa:8b:10:ab:74:86:46:be:cb:6c:93:54:60\n"
- " bc:6e:d6:4d:b2:1e:25:65:38:52:5b:6c:b4:57:8f:0f\n"
- " 26:4f:36:ea:42:eb:71:68:93:f3:a9:7a:66:5c:b6:07\n"
- " 7d:15:b5:f4:b8:5c:7c:e0:cd:d0:fa:5b:2a:6b:fd:4c\n"
- " 71:12:45:d0:37:9e:cf:90:59:6e:fd:ba:3a:8b:ca:37\n"
- " 01:cc:6f:e0:32:c7:9e:a4:ea:61:2c:e5:ad:66:73:80\n"
- " 5c:5e:0c:44:ec:c2:74:b8:fe:6e:66:af:76:cc:30:10\n"
- " 1f:3a:ac:34:36:e6:5b:72:f3:ee:5a:68:c3:43:37:56\n"
- " c3:08:02:3c:96:1c:27:18:d0:38:fa:d7:51:4e:82:7d\n"
- " fc:81:a2:23:c5:05:80:0e:b4:ba:d3:19:39:74:9c:74\n"
- "Other Information:\n"
- " SHA1 fingerprint:\n"
- " 43536dd4198f6064c117c3825020b14c108f9a34\n"
- " SHA256 fingerprint:\n"
- " 5ab6626aa069da15650edcfff7305767ff5b8d338289f851a624ea89b50ff06a\n"
- " Public Key ID:\n"
- " bd3d0b6cab6b33d8a8e1ed15b7ab17587cc2a09f\n"
- " Public key's random art:\n"
- " +--[ RSA 2048]----+\n"
- " | |\n"
- " | . |\n"
- " | . + |\n"
- " | . .= . |\n"
- " | .S+oo |\n"
- " | E+.+ |\n"
- " | . +. *.o |\n"
- " | . oo.=..+ o |\n"
- " | ooo.+Bo . |\n"
- " +-----------------+\n"
- "\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDKzCCAhOgAwIBAgIBADANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhzZXJ2\n"
- "ZXItMDAiGA8yMDE0MDYyNzA5MTQzNloYDzk5OTkxMjMxMjM1OTU5WjATMREwDwYD\n"
- "VQQDEwhzZXJ2ZXItMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFW\n"
- "EvbDx+NMfv8ETogdZ6fzTWTMEqf/UKpcMbk80dG6eCx93VRKzVryOIuyxSZ+JQU2\n"
- "tpLmHcMAOaDFHLVjPQDptLV1pxSx/6ADnbp32uXeIftW2gadhFdTPQhFRSD952Bl\n"
- "LlVg29OR2mT/xEJCVHfLR1RoHrRirYo8CiiJy9OB0xWaHWeQUYOQbfuhDlRrKdfv\n"
- "eRkU9g2Cc495WA6vDsy9F6u1oh92oZ9Le+j5eyhWzPFbDpPJ5UQvLQoifQsrMITD\n"
- "HtZNY1tBUYPUtQn0zKutURuOofaxJ1tDPLyuEJPUzjsQyj8i3Z6oP0qmqM2P0Grg\n"
- "QCYoD68OE+GsuaxBzF0CAwEAAaOBhTCBgjAPBgNVHRMBAf8EBTADAQH/MD8GA1Ud\n"
- "EQQ4MDaHBH8AAAGHBMCoBQGHBApkAgWHEAAAAAAAAAAAAAAAAAAAAAGHEP6AAAAA\n"
- "AAAAPpcO//4YNZowDwYDVR0PAQH/BAUDAwcEADAdBgNVHQ4EFgQUvT0LbKtrM9io\n"
- "4e0Vt6sXWHzCoJ8wDQYJKoZIhvcNAQELBQADggEBAAIiUktp5U/4FwpGNNHsa/Wu\n"
- "W/ziAMof8B10kZyFCqcGPfqTDTWF6j4Bn568UnKVsoo6eG7SXU1giCu+b2h1xxms\n"
- "yeqrdPZiTTAeh+RwHpb0C0jvySgUb/rBe9Pvs9hSkF0g0KqLEKt0hka+y2yTVGC8\n"
- "btZNsh4lZThSW2y0V48PJk826kLrcWiT86l6Zly2B30VtfS4XHzgzdD6Wypr/Uxx\n"
- "EkXQN57PkFlu/bo6i8o3Acxv4DLHnqTqYSzlrWZzgFxeDETswnS4/m5mr3bMMBAf\n"
- "Oqw0NuZbcvPuWmjDQzdWwwgCPJYcJxjQOPrXUU6CffyBoiPFBYAOtLrTGTl0nHQ=\n"
- "-----END CERTIFICATE-----\n"
- "";
+ "X.509 Certificate Information:\n"
+ " Version: 3\n"
+ " Serial Number (hex): 00\n"
+ " Issuer: CN=server-0\n"
+ " Validity:\n"
+ " Not Before: Fri Jun 27 09:14:36 UTC 2014\n"
+ " Not After: Fri Dec 31 23:59:59 UTC 9999\n"
+ " Subject: CN=server-0\n"
+ " Subject Public Key Algorithm: RSA\n"
+ " Algorithm Security Level: Medium (2048 bits)\n"
+ " Modulus (bits 2048):\n"
+ " 00:c1:56:12:f6:c3:c7:e3:4c:7e:ff:04:4e:88:1d:67\n"
+ " a7:f3:4d:64:cc:12:a7:ff:50:aa:5c:31:b9:3c:d1:d1\n"
+ " ba:78:2c:7d:dd:54:4a:cd:5a:f2:38:8b:b2:c5:26:7e\n"
+ " 25:05:36:b6:92:e6:1d:c3:00:39:a0:c5:1c:b5:63:3d\n"
+ " 00:e9:b4:b5:75:a7:14:b1:ff:a0:03:9d:ba:77:da:e5\n"
+ " de:21:fb:56:da:06:9d:84:57:53:3d:08:45:45:20:fd\n"
+ " e7:60:65:2e:55:60:db:d3:91:da:64:ff:c4:42:42:54\n"
+ " 77:cb:47:54:68:1e:b4:62:ad:8a:3c:0a:28:89:cb:d3\n"
+ " 81:d3:15:9a:1d:67:90:51:83:90:6d:fb:a1:0e:54:6b\n"
+ " 29:d7:ef:79:19:14:f6:0d:82:73:8f:79:58:0e:af:0e\n"
+ " cc:bd:17:ab:b5:a2:1f:76:a1:9f:4b:7b:e8:f9:7b:28\n"
+ " 56:cc:f1:5b:0e:93:c9:e5:44:2f:2d:0a:22:7d:0b:2b\n"
+ " 30:84:c3:1e:d6:4d:63:5b:41:51:83:d4:b5:09:f4:cc\n"
+ " ab:ad:51:1b:8e:a1:f6:b1:27:5b:43:3c:bc:ae:10:93\n"
+ " d4:ce:3b:10:ca:3f:22:dd:9e:a8:3f:4a:a6:a8:cd:8f\n"
+ " d0:6a:e0:40:26:28:0f:af:0e:13:e1:ac:b9:ac:41:cc\n"
+ " 5d\n"
+ " Exponent (bits 24):\n"
+ " 01:00:01\n"
+ " Extensions:\n"
+ " Basic Constraints (critical):\n"
+ " Certificate Authority (CA): TRUE\n"
+ " Subject Alternative Name (not critical):\n"
+ " IPAddress: 127.0.0.1\n"
+ " IPAddress: 192.168.5.1\n"
+ " IPAddress: 10.100.2.5\n"
+ " IPAddress: 0:0:0:0:0:0:0:1\n"
+ " IPAddress: fe80:0:0:0:3e97:eff:fe18:359a\n"
+ " Key Usage (critical):\n"
+ " Certificate signing.\n"
+ " Subject Key Identifier (not critical):\n"
+ " bd3d0b6cab6b33d8a8e1ed15b7ab17587cc2a09f\n"
+ " Signature Algorithm: RSA-SHA256\n"
+ " Signature:\n"
+ " 02:22:52:4b:69:e5:4f:f8:17:0a:46:34:d1:ec:6b:f5\n"
+ " ae:5b:fc:e2:00:ca:1f:f0:1d:74:91:9c:85:0a:a7:06\n"
+ " 3d:fa:93:0d:35:85:ea:3e:01:9f:9e:bc:52:72:95:b2\n"
+ " 8a:3a:78:6e:d2:5d:4d:60:88:2b:be:6f:68:75:c7:19\n"
+ " ac:c9:ea:ab:74:f6:62:4d:30:1e:87:e4:70:1e:96:f4\n"
+ " 0b:48:ef:c9:28:14:6f:fa:c1:7b:d3:ef:b3:d8:52:90\n"
+ " 5d:20:d0:aa:8b:10:ab:74:86:46:be:cb:6c:93:54:60\n"
+ " bc:6e:d6:4d:b2:1e:25:65:38:52:5b:6c:b4:57:8f:0f\n"
+ " 26:4f:36:ea:42:eb:71:68:93:f3:a9:7a:66:5c:b6:07\n"
+ " 7d:15:b5:f4:b8:5c:7c:e0:cd:d0:fa:5b:2a:6b:fd:4c\n"
+ " 71:12:45:d0:37:9e:cf:90:59:6e:fd:ba:3a:8b:ca:37\n"
+ " 01:cc:6f:e0:32:c7:9e:a4:ea:61:2c:e5:ad:66:73:80\n"
+ " 5c:5e:0c:44:ec:c2:74:b8:fe:6e:66:af:76:cc:30:10\n"
+ " 1f:3a:ac:34:36:e6:5b:72:f3:ee:5a:68:c3:43:37:56\n"
+ " c3:08:02:3c:96:1c:27:18:d0:38:fa:d7:51:4e:82:7d\n"
+ " fc:81:a2:23:c5:05:80:0e:b4:ba:d3:19:39:74:9c:74\n"
+ "Other Information:\n"
+ " SHA1 fingerprint:\n"
+ " 43536dd4198f6064c117c3825020b14c108f9a34\n"
+ " SHA256 fingerprint:\n"
+ " 5ab6626aa069da15650edcfff7305767ff5b8d338289f851a624ea89b50ff06a\n"
+ " Public Key ID:\n"
+ " bd3d0b6cab6b33d8a8e1ed15b7ab17587cc2a09f\n"
+ " Public key's random art:\n"
+ " +--[ RSA 2048]----+\n"
+ " | |\n"
+ " | . |\n"
+ " | . + |\n"
+ " | . .= . |\n"
+ " | .S+oo |\n"
+ " | E+.+ |\n"
+ " | . +. *.o |\n"
+ " | . oo.=..+ o |\n"
+ " | ooo.+Bo . |\n"
+ " +-----------------+\n"
+ "\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDKzCCAhOgAwIBAgIBADANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhzZXJ2\n"
+ "ZXItMDAiGA8yMDE0MDYyNzA5MTQzNloYDzk5OTkxMjMxMjM1OTU5WjATMREwDwYD\n"
+ "VQQDEwhzZXJ2ZXItMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFW\n"
+ "EvbDx+NMfv8ETogdZ6fzTWTMEqf/UKpcMbk80dG6eCx93VRKzVryOIuyxSZ+JQU2\n"
+ "tpLmHcMAOaDFHLVjPQDptLV1pxSx/6ADnbp32uXeIftW2gadhFdTPQhFRSD952Bl\n"
+ "LlVg29OR2mT/xEJCVHfLR1RoHrRirYo8CiiJy9OB0xWaHWeQUYOQbfuhDlRrKdfv\n"
+ "eRkU9g2Cc495WA6vDsy9F6u1oh92oZ9Le+j5eyhWzPFbDpPJ5UQvLQoifQsrMITD\n"
+ "HtZNY1tBUYPUtQn0zKutURuOofaxJ1tDPLyuEJPUzjsQyj8i3Z6oP0qmqM2P0Grg\n"
+ "QCYoD68OE+GsuaxBzF0CAwEAAaOBhTCBgjAPBgNVHRMBAf8EBTADAQH/MD8GA1Ud\n"
+ "EQQ4MDaHBH8AAAGHBMCoBQGHBApkAgWHEAAAAAAAAAAAAAAAAAAAAAGHEP6AAAAA\n"
+ "AAAAPpcO//4YNZowDwYDVR0PAQH/BAUDAwcEADAdBgNVHQ4EFgQUvT0LbKtrM9io\n"
+ "4e0Vt6sXWHzCoJ8wDQYJKoZIhvcNAQELBQADggEBAAIiUktp5U/4FwpGNNHsa/Wu\n"
+ "W/ziAMof8B10kZyFCqcGPfqTDTWF6j4Bn568UnKVsoo6eG7SXU1giCu+b2h1xxms\n"
+ "yeqrdPZiTTAeh+RwHpb0C0jvySgUb/rBe9Pvs9hSkF0g0KqLEKt0hka+y2yTVGC8\n"
+ "btZNsh4lZThSW2y0V48PJk826kLrcWiT86l6Zly2B30VtfS4XHzgzdD6Wypr/Uxx\n"
+ "EkXQN57PkFlu/bo6i8o3Acxv4DLHnqTqYSzlrWZzgFxeDETswnS4/m5mr3bMMBAf\n"
+ "Oqw0NuZbcvPuWmjDQzdWwwgCPJYcJxjQOPrXUU6CffyBoiPFBYAOtLrTGTl0nHQ=\n"
+ "-----END CERTIFICATE-----\n" "";
char multi_cns[] = "\n"
- "Subject: CN=www.example.com,CN=www.example2.com,CN=www.example3.com\n"
- "\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDXzCCAkegAwIBAgIMU+p6uAg2JlqRhAbAMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTAwIhgPMjAxNDA4MTIyMDM2MDhaGA85OTk5MTIzMTIzNTk1OVow\n"
- "UDEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMRkwFwYDVQQDExB3d3cuZXhhbXBs\n"
- "ZTIuY29tMRkwFwYDVQQDExB3d3cuZXhhbXBsZTMuY29tMIIBIjANBgkqhkiG9w0B\n"
- "AQEFAAOCAQ8AMIIBCgKCAQEAqP5QQUqIS2lquM8hYbDHljqHBDWlGtr167DDPwix\n"
- "oIlnq84Xr1zI5zpJ2t/3U5kGTbRJiVroQCh3cVhiQyGTPSJPK+CJGi3diw5Vc2rK\n"
- "oAPxaFtaxvE36mLLH2SSuc49b6hhlRpXdWE0TgnsvJojL5V20/CZI23T27fl+DjT\n"
- "MduU92qH8wdCgp7q3sHZvtvTZuFM+edYvKZjhUz8P7JwiamG0A2UH+NiyicdAOxc\n"
- "+lfwfoyetJdTHLfwxdCXT4X91xGd9eOW9lIL5BqLuAArODTcmHDmiXpXEO/sEyHq\n"
- "L96Eawjon0Gz4IRNq7/kwDjSPJOIN0GHq6DtNmXl6J0C5wIDAQABo3YwdDAMBgNV\n"
- "HRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdDwEB/wQFAwMHoAAw\n"
- "HQYDVR0OBBYEFH6NTStc4XH/M74Meat1sT2o53fUMB8GA1UdIwQYMBaAFK8aMLKE\n"
- "hAwWmkzQxRkQ1/efnumUMA0GCSqGSIb3DQEBCwUAA4IBAQBdHknM+rddB0ET+UI2\n"
- "Or8qSNjkqBHwsZqb4hJozXFS35a1CJPQuxPzY13eHpiIfmdWL2EpKnLOU8vtAW9e\n"
- "qpozMGDyrAuZhxsXUtInbF15C+Yuw9/sqCPK44b5DCtDf6J/N8m8FvdwqO803z1D\n"
- "MGcSpES5I68+N3dwSRFYNpSLA1ul5MSlnmoffml959kx9hZNcI4N/UqkO1LMCKXX\n"
- "Nf8kGFyLdPjANcIwL5sqP+Dp4HP3wdf7Ny+KFCZ6zDbpa53gb3G0naMdllK8BMfI\n"
- "AQ4Y07zSA4K1QMdxeqaMgPIcCDLoKiMXAXNa42+K04F6SOkTjsVx9b5m0oynLt0u\n"
- "MUjE\n"
- "-----END CERTIFICATE-----\n";
-
-char txt_ip_in_names[] =
- "Subject: CN=172.15.1.1\n"
- "Subject Alternative Name (not critical):\n"
- " DNSname: 172.15.2.1\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEJDCCAoygAwIBAgIMWQXA/TIEZUXpwL2dMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTEwIBcNMTcwNDMwMTA0ODI5WhgPOTk5OTEyMzEyMzU5NTlaMBUx\n"
- "EzARBgNVBAMTCjE3Mi4xNS4xLjEwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK\n"
- "AoIBgQDP3DsT65aY+fHi6FivWbypF71T9UjAGYcho7XXPUCvBr6xQbyERZjb08qn\n"
- "RPvVDaiLeDfVve44gSho70t+fxMsCYZqkf9HN4aUzuxx2fHgMBCwyrhgm9zZ/zgA\n"
- "D92oXOPem2mKNjPavXtthqvgvwu6HmpJDd+YYR7FFbkgZswrqjd+lg0z+PGt5Xee\n"
- "LW3amPZINyc5Rai+LMlYIU29YK9G+CM3XVPQ8ygsQva+4/YoU1DVQRXFYTO1ERdn\n"
- "QDV9kmJKvQOxbjchNkLLMdBWee/WpJtBDE4KcidAsbd/6eUIINVAD7Nm5uE39mDv\n"
- "2ld4vup4j4A5dQNVhUd6iIYfkkwp9NnGMNGpgvSudPSHH8sFlfxXD8ysbD2wHeXL\n"
- "S0Q4Ejypij7tEzy5KdUWqft1QqClHawc2hZ9KKnCHW3xoUsAWxcTIlsgqUUJOkXR\n"
- "Qij2N+0SKrn6M6DSOiklCCunLUCUCceM7fiwYndhNFm5YvZq+m+Afnvxk5V7RnBu\n"
- "DLoxPxkCAwEAAaN4MHYwDAYDVR0TAQH/BAIwADAVBgNVHREEDjAMggoxNzIuMTUu\n"
- "Mi4xMA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFFqnqgPcjDWmHm0PJNxKNeEx\n"
- "Msk1MB8GA1UdIwQYMBaAFOnh1ZODb8QbrqHBHpWyyrEVTpanMA0GCSqGSIb3DQEB\n"
- "CwUAA4IBgQArsZSxJdZ1W+y3m+y6f1Me3FB/XUscpHQ9cS0wlaikeqBvIru5zp7U\n"
- "tLT8qRS7Q8fxsL6LWiOmW5Izi4A51DYJQ9bUEqSIbp9SIV78u5v0oO1bnb7d5SV+\n"
- "BZm/zYuox2uTT9PSoB+iqQXUJ7brWdKe0NdPAzRpM928CqWJLPw0gn41GOIPN6wS\n"
- "IH29CvqRABkxzIsI8IcxHb3/F+DxTnq6aICoWe2XPeL+RqB7moP6YAC9W/r+hds2\n"
- "m8Gok+rGuG3VXk2vc/j1LRnGZfpCQV2L7e7b5eLyQ2Ce46fnxkQSTt4tc0//FTfr\n"
- "6X9624hAOV6MSlkPHNBwVE42z8KsxJfPxeHX+YzFBXqBiQ/r/TvOHDt5Tsny6lXh\n"
- "TDqlJ3NwdS/K9PAlLqhDiZwwakUS9lEY6IC7biP7mxNM8npzlqogfS07XTJgGxgb\n"
- "FtcITJKW0NPA8cnyEAt9jcgaDWw/xbVV+pIytFuGL8pjHEQ4H9Ymu6ifLNlkyu/e\n"
- "3XYCeqo17QE=\n"
- "-----END CERTIFICATE-----\n";
+ "Subject: CN=www.example.com,CN=www.example2.com,CN=www.example3.com\n"
+ "\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDXzCCAkegAwIBAgIMU+p6uAg2JlqRhAbAMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTAwIhgPMjAxNDA4MTIyMDM2MDhaGA85OTk5MTIzMTIzNTk1OVow\n"
+ "UDEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMRkwFwYDVQQDExB3d3cuZXhhbXBs\n"
+ "ZTIuY29tMRkwFwYDVQQDExB3d3cuZXhhbXBsZTMuY29tMIIBIjANBgkqhkiG9w0B\n"
+ "AQEFAAOCAQ8AMIIBCgKCAQEAqP5QQUqIS2lquM8hYbDHljqHBDWlGtr167DDPwix\n"
+ "oIlnq84Xr1zI5zpJ2t/3U5kGTbRJiVroQCh3cVhiQyGTPSJPK+CJGi3diw5Vc2rK\n"
+ "oAPxaFtaxvE36mLLH2SSuc49b6hhlRpXdWE0TgnsvJojL5V20/CZI23T27fl+DjT\n"
+ "MduU92qH8wdCgp7q3sHZvtvTZuFM+edYvKZjhUz8P7JwiamG0A2UH+NiyicdAOxc\n"
+ "+lfwfoyetJdTHLfwxdCXT4X91xGd9eOW9lIL5BqLuAArODTcmHDmiXpXEO/sEyHq\n"
+ "L96Eawjon0Gz4IRNq7/kwDjSPJOIN0GHq6DtNmXl6J0C5wIDAQABo3YwdDAMBgNV\n"
+ "HRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA8GA1UdDwEB/wQFAwMHoAAw\n"
+ "HQYDVR0OBBYEFH6NTStc4XH/M74Meat1sT2o53fUMB8GA1UdIwQYMBaAFK8aMLKE\n"
+ "hAwWmkzQxRkQ1/efnumUMA0GCSqGSIb3DQEBCwUAA4IBAQBdHknM+rddB0ET+UI2\n"
+ "Or8qSNjkqBHwsZqb4hJozXFS35a1CJPQuxPzY13eHpiIfmdWL2EpKnLOU8vtAW9e\n"
+ "qpozMGDyrAuZhxsXUtInbF15C+Yuw9/sqCPK44b5DCtDf6J/N8m8FvdwqO803z1D\n"
+ "MGcSpES5I68+N3dwSRFYNpSLA1ul5MSlnmoffml959kx9hZNcI4N/UqkO1LMCKXX\n"
+ "Nf8kGFyLdPjANcIwL5sqP+Dp4HP3wdf7Ny+KFCZ6zDbpa53gb3G0naMdllK8BMfI\n"
+ "AQ4Y07zSA4K1QMdxeqaMgPIcCDLoKiMXAXNa42+K04F6SOkTjsVx9b5m0oynLt0u\n"
+ "MUjE\n" "-----END CERTIFICATE-----\n";
+
+char txt_ip_in_names[] =
+ "Subject: CN=172.15.1.1\n"
+ "Subject Alternative Name (not critical):\n"
+ " DNSname: 172.15.2.1\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEJDCCAoygAwIBAgIMWQXA/TIEZUXpwL2dMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTEwIBcNMTcwNDMwMTA0ODI5WhgPOTk5OTEyMzEyMzU5NTlaMBUx\n"
+ "EzARBgNVBAMTCjE3Mi4xNS4xLjEwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK\n"
+ "AoIBgQDP3DsT65aY+fHi6FivWbypF71T9UjAGYcho7XXPUCvBr6xQbyERZjb08qn\n"
+ "RPvVDaiLeDfVve44gSho70t+fxMsCYZqkf9HN4aUzuxx2fHgMBCwyrhgm9zZ/zgA\n"
+ "D92oXOPem2mKNjPavXtthqvgvwu6HmpJDd+YYR7FFbkgZswrqjd+lg0z+PGt5Xee\n"
+ "LW3amPZINyc5Rai+LMlYIU29YK9G+CM3XVPQ8ygsQva+4/YoU1DVQRXFYTO1ERdn\n"
+ "QDV9kmJKvQOxbjchNkLLMdBWee/WpJtBDE4KcidAsbd/6eUIINVAD7Nm5uE39mDv\n"
+ "2ld4vup4j4A5dQNVhUd6iIYfkkwp9NnGMNGpgvSudPSHH8sFlfxXD8ysbD2wHeXL\n"
+ "S0Q4Ejypij7tEzy5KdUWqft1QqClHawc2hZ9KKnCHW3xoUsAWxcTIlsgqUUJOkXR\n"
+ "Qij2N+0SKrn6M6DSOiklCCunLUCUCceM7fiwYndhNFm5YvZq+m+Afnvxk5V7RnBu\n"
+ "DLoxPxkCAwEAAaN4MHYwDAYDVR0TAQH/BAIwADAVBgNVHREEDjAMggoxNzIuMTUu\n"
+ "Mi4xMA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFFqnqgPcjDWmHm0PJNxKNeEx\n"
+ "Msk1MB8GA1UdIwQYMBaAFOnh1ZODb8QbrqHBHpWyyrEVTpanMA0GCSqGSIb3DQEB\n"
+ "CwUAA4IBgQArsZSxJdZ1W+y3m+y6f1Me3FB/XUscpHQ9cS0wlaikeqBvIru5zp7U\n"
+ "tLT8qRS7Q8fxsL6LWiOmW5Izi4A51DYJQ9bUEqSIbp9SIV78u5v0oO1bnb7d5SV+\n"
+ "BZm/zYuox2uTT9PSoB+iqQXUJ7brWdKe0NdPAzRpM928CqWJLPw0gn41GOIPN6wS\n"
+ "IH29CvqRABkxzIsI8IcxHb3/F+DxTnq6aICoWe2XPeL+RqB7moP6YAC9W/r+hds2\n"
+ "m8Gok+rGuG3VXk2vc/j1LRnGZfpCQV2L7e7b5eLyQ2Ce46fnxkQSTt4tc0//FTfr\n"
+ "6X9624hAOV6MSlkPHNBwVE42z8KsxJfPxeHX+YzFBXqBiQ/r/TvOHDt5Tsny6lXh\n"
+ "TDqlJ3NwdS/K9PAlLqhDiZwwakUS9lEY6IC7biP7mxNM8npzlqogfS07XTJgGxgb\n"
+ "FtcITJKW0NPA8cnyEAt9jcgaDWw/xbVV+pIytFuGL8pjHEQ4H9Ymu6ifLNlkyu/e\n"
+ "3XYCeqo17QE=\n" "-----END CERTIFICATE-----\n";
char txt_ip_in_cn[] =
- "CN=172.15.1.1\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIICCDCCAXGgAwIBAgIMWQXCYQfV3T9BXL4hMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
- "BgNVBAMTBENBLTEwIBcNMTcwNDMwMTA1NDI1WhgPOTk5OTEyMzEyMzU5NTlaMBUx\n"
- "EzARBgNVBAMTCjE3Mi4xNS4xLjEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\n"
- "AM5hibrtVPezTZ018YR3DG+r71pTmfxVD1hWMAywQTMdut11Cg16dBtU/WJ6X3YF\n"
- "b3MAtrJf7eHnaxPneY7j590eOcqiDmb0skUATuZrX4Su0QMP4ygTcXlzMAxOFYwQ\n"
- "pd3d9LQiUxCVlg7fPI7BiqyWA1igBB34OaVbV0GHuJBVAgMBAAGjYTBfMAwGA1Ud\n"
- "EwEB/wQCMAAwDwYDVR0PAQH/BAUDAwegADAdBgNVHQ4EFgQUSXWLgTdjnYj1kv1g\n"
- "TEGZep6b0MMwHwYDVR0jBBgwFoAU3rLZPebH2OG+u4iAlJ+zbDif4GYwDQYJKoZI\n"
- "hvcNAQELBQADgYEAifPWTjcErYbxCqRZW5JhwaosOFHCJVboPsLrIM8W0HEJgqet\n"
- "TwarBBiE0mzQKU3GtjGj1ZSxUI/jBg9bzC+fs25VtdlC9nIxi5tSDI/HOoBBgXNr\n"
- "f0+Un2eHAxFcRZPWdPy1/mn83NUMnjquuA/HHcju+pcoZrEwAI3PPQHgsGQ=\n"
- "-----END CERTIFICATE-----\n";
-
+ "CN=172.15.1.1\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICCDCCAXGgAwIBAgIMWQXCYQfV3T9BXL4hMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTEwIBcNMTcwNDMwMTA1NDI1WhgPOTk5OTEyMzEyMzU5NTlaMBUx\n"
+ "EzARBgNVBAMTCjE3Mi4xNS4xLjEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGB\n"
+ "AM5hibrtVPezTZ018YR3DG+r71pTmfxVD1hWMAywQTMdut11Cg16dBtU/WJ6X3YF\n"
+ "b3MAtrJf7eHnaxPneY7j590eOcqiDmb0skUATuZrX4Su0QMP4ygTcXlzMAxOFYwQ\n"
+ "pd3d9LQiUxCVlg7fPI7BiqyWA1igBB34OaVbV0GHuJBVAgMBAAGjYTBfMAwGA1Ud\n"
+ "EwEB/wQCMAAwDwYDVR0PAQH/BAUDAwegADAdBgNVHQ4EFgQUSXWLgTdjnYj1kv1g\n"
+ "TEGZep6b0MMwHwYDVR0jBBgwFoAU3rLZPebH2OG+u4iAlJ+zbDif4GYwDQYJKoZI\n"
+ "hvcNAQELBQADgYEAifPWTjcErYbxCqRZW5JhwaosOFHCJVboPsLrIM8W0HEJgqet\n"
+ "TwarBBiE0mzQKU3GtjGj1ZSxUI/jBg9bzC+fs25VtdlC9nIxi5tSDI/HOoBBgXNr\n"
+ "f0+Un2eHAxFcRZPWdPy1/mn83NUMnjquuA/HHcju+pcoZrEwAI3PPQHgsGQ=\n"
+ "-----END CERTIFICATE-----\n";
void doit(void)
{
@@ -810,7 +805,7 @@ void doit(void)
if (debug)
success("Testing wildcards...\n");
- data.data = (unsigned char *) wildcards;
+ data.data = (unsigned char *)wildcards;
data.size = strlen(wildcards);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -826,12 +821,13 @@ void doit(void)
fail("%d: Hostname incorrectly matches (%d)\n", __LINE__, ret);
ret = gnutls_x509_crt_check_hostname(x509, "www.example.net");
- if (ret==0)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ if (ret == 0)
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
if (debug)
success("Testing pem1...\n");
- data.data = (unsigned char *) pem1;
+ data.data = (unsigned char *)pem1;
data.size = strlen(pem1);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -844,7 +840,7 @@ void doit(void)
if (debug)
success("Testing pem2...\n");
- data.data = (unsigned char *) pem2;
+ data.data = (unsigned char *)pem2;
data.size = strlen(pem2);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -857,7 +853,8 @@ void doit(void)
ret = gnutls_x509_crt_check_hostname(x509, "www.example.org");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "*.example.org");
if (ret)
@@ -865,7 +862,7 @@ void doit(void)
if (debug)
success("Testing pem3...\n");
- data.data = (unsigned char *) pem3;
+ data.data = (unsigned char *)pem3;
data.size = strlen(pem3);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -878,7 +875,8 @@ void doit(void)
ret = gnutls_x509_crt_check_hostname(x509, "www.example.org");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "*.example.org");
if (ret)
@@ -886,7 +884,7 @@ void doit(void)
if (debug)
success("Testing pem4...\n");
- data.data = (unsigned char *) pem4;
+ data.data = (unsigned char *)pem4;
data.size = strlen(pem4);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -899,15 +897,19 @@ void doit(void)
ret = gnutls_x509_crt_check_hostname(x509, "www.example.org");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
- ret = gnutls_x509_crt_check_hostname2(x509, "www.example.org", GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS);
+ ret =
+ gnutls_x509_crt_check_hostname2(x509, "www.example.org",
+ GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS);
if (ret)
fail("%d: Hostname incorrectly matches (%d)\n", __LINE__, ret);
ret = gnutls_x509_crt_check_hostname(x509, "foo.example.org");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "foo.example.com");
if (ret)
@@ -916,7 +918,7 @@ void doit(void)
#ifdef SUPPORT_COMPLEX_WILDCARDS
if (debug)
success("Testing pem6...\n");
- data.data = (unsigned char *) pem6;
+ data.data = (unsigned char *)pem6;
data.size = strlen(pem6);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -929,11 +931,12 @@ void doit(void)
ret = gnutls_x509_crt_check_hostname(x509, "bar.foo.example.org");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
if (debug)
success("Testing pem7...\n");
- data.data = (unsigned char *) pem7;
+ data.data = (unsigned char *)pem7;
data.size = strlen(pem7);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -944,24 +947,24 @@ void doit(void)
if (ret)
fail("%d: Hostname incorrectly matches (%d)\n", __LINE__, ret);
- ret =
- gnutls_x509_crt_check_hostname(x509, "foobar.bar.example.org");
+ ret = gnutls_x509_crt_check_hostname(x509, "foobar.bar.example.org");
if (ret)
fail("%d: Hostname incorrectly matches (%d)\n", __LINE__, ret);
ret = gnutls_x509_crt_check_hostname(x509, "foobar.example.org");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
- ret =
- gnutls_x509_crt_check_hostname(x509, "foobazbar.example.org");
+ ret = gnutls_x509_crt_check_hostname(x509, "foobazbar.example.org");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
#endif
if (debug)
success("Testing pem8...\n");
- data.data = (unsigned char *) pem8;
+ data.data = (unsigned char *)pem8;
data.size = strlen(pem8);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -992,7 +995,7 @@ void doit(void)
if (debug)
success("Testing pem9...\n");
- data.data = (unsigned char *) pem9;
+ data.data = (unsigned char *)pem9;
data.size = strlen(pem9);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -1005,11 +1008,12 @@ void doit(void)
ret = gnutls_x509_crt_check_hostname(x509, "bar.example.org");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
if (debug)
success("Testing pem10...\n");
- data.data = (unsigned char *) pem10;
+ data.data = (unsigned char *)pem10;
data.size = strlen(pem10);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -1022,7 +1026,7 @@ void doit(void)
if (debug)
success("Testing pem_too_many...\n");
- data.data = (unsigned char *) pem_too_many;
+ data.data = (unsigned char *)pem_too_many;
data.size = strlen(pem_too_many);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -1030,14 +1034,13 @@ void doit(void)
fail("%d: gnutls_x509_crt_import: %d\n", __LINE__, ret);
ret =
- gnutls_x509_crt_check_hostname(x509,
- "localhost.gnutls.gnutls.org");
+ gnutls_x509_crt_check_hostname(x509, "localhost.gnutls.gnutls.org");
if (ret)
fail("%d: Hostname verification should have failed (too many wildcards)\n", __LINE__);
if (debug)
success("Testing pem-ips...\n");
- data.data = (unsigned char *) pem_ips;
+ data.data = (unsigned char *)pem_ips;
data.size = strlen(pem_ips);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -1054,19 +1057,23 @@ void doit(void)
ret = gnutls_x509_crt_check_hostname(x509, "127.0.0.1");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "192.168.5.1");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "::1");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "fe80::3e97:eff:fe18:359a");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
/* test that we don't fallback to CN matching if a supported SAN (IP addresses
* in that case) is found. */
@@ -1075,21 +1082,27 @@ void doit(void)
fail("%d: Hostname incorrectly matches (%d)\n", __LINE__, ret);
/* test flag GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES */
- ret = gnutls_x509_crt_check_hostname2(x509, "127.0.0.1", GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES);
+ ret =
+ gnutls_x509_crt_check_hostname2(x509, "127.0.0.1",
+ GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES);
if (ret)
fail("%d: Hostname incorrectly matches (%d)\n", __LINE__, ret);
- ret = gnutls_x509_crt_check_hostname2(x509, "::1", GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES);
+ ret =
+ gnutls_x509_crt_check_hostname2(x509, "::1",
+ GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES);
if (ret)
fail("%d: Hostname incorrectly matches (%d)\n", __LINE__, ret);
- ret = gnutls_x509_crt_check_hostname2(x509, "127.0.0.2", GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES);
+ ret =
+ gnutls_x509_crt_check_hostname2(x509, "127.0.0.2",
+ GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES);
if (ret)
fail("%d: Hostname incorrectly matches (%d)\n", __LINE__, ret);
if (debug)
success("Testing multi-cns...\n");
- data.data = (unsigned char *) multi_cns;
+ data.data = (unsigned char *)multi_cns;
data.size = strlen(multi_cns);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -1114,7 +1127,7 @@ void doit(void)
if (debug)
success("Testing textual IPs...\n");
- data.data = (unsigned char *) txt_ip_in_names;
+ data.data = (unsigned char *)txt_ip_in_names;
data.size = strlen(txt_ip_in_names);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -1135,7 +1148,7 @@ void doit(void)
if (debug)
success("Testing textual IPs (CN)...\n");
- data.data = (unsigned char *) txt_ip_in_cn;
+ data.data = (unsigned char *)txt_ip_in_cn;
data.size = strlen(txt_ip_in_cn);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
diff --git a/tests/id-on-xmppAddr.c b/tests/id-on-xmppAddr.c
index c3865f4dc7..35025f6e87 100644
--- a/tests/id-on-xmppAddr.c
+++ b/tests/id-on-xmppAddr.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <gnutls/gnutls.h>
@@ -56,9 +56,11 @@ void doit(void)
should_succeed(gnutls_x509_crt_init(&cert));
should_succeed(gnutls_load_file(path, &data));
- should_succeed(gnutls_x509_crt_import(cert, &data, GNUTLS_X509_FMT_PEM));
- ret = gnutls_x509_crt_get_subject_alt_name(cert, 0, name, &name_len,
- NULL);
+ should_succeed(gnutls_x509_crt_import
+ (cert, &data, GNUTLS_X509_FMT_PEM));
+ ret =
+ gnutls_x509_crt_get_subject_alt_name(cert, 0, name, &name_len,
+ NULL);
if (ret != GNUTLS_SAN_OTHERNAME_XMPP)
fail("did not recognize GNUTLS_SAN_OTHERNAME_XMPP");
diff --git a/tests/infoaccess.c b/tests/infoaccess.c
index 130b96531b..46253f6134 100644
--- a/tests/infoaccess.c
+++ b/tests/infoaccess.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -67,7 +67,7 @@ static char cert_with_aia_data[] =
"SnQ2+Q==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t cert_with_aia = {
- (void *) cert_with_aia_data, sizeof(cert_with_aia_data)
+ (void *)cert_with_aia_data, sizeof(cert_with_aia_data)
};
void doit(void)
@@ -89,27 +89,21 @@ void doit(void)
exit(1);
}
- ret =
- gnutls_x509_crt_import(crt, &cert_with_aia,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(crt, &cert_with_aia, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("gnutls_x509_crt_import\n");
exit(1);
}
/* test null input */
- ret =
- gnutls_x509_crt_get_authority_info_access(NULL, 0, 0, NULL,
- NULL);
+ ret = gnutls_x509_crt_get_authority_info_access(NULL, 0, 0, NULL, NULL);
if (ret != GNUTLS_E_INVALID_REQUEST) {
fail("gnutls_x509_crt_get_authority_info_access null input\n");
exit(1);
}
/* test unused enum */
- ret =
- gnutls_x509_crt_get_authority_info_access(crt, 0, 44, NULL,
- NULL);
+ ret = gnutls_x509_crt_get_authority_info_access(crt, 0, 44, NULL, NULL);
if (ret != GNUTLS_E_INVALID_REQUEST) {
fail("gnutls_x509_crt_get_authority_info_access insane input\n");
exit(1);
@@ -142,8 +136,7 @@ void doit(void)
/* basic query of another type */
ret = gnutls_x509_crt_get_authority_info_access
- (crt, 0, GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE, NULL,
- NULL);
+ (crt, 0, GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE, NULL, NULL);
if (ret < 0) {
fail("gnutls_x509_crt_get_authority_info_access "
"GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE null output\n");
@@ -152,8 +145,7 @@ void doit(void)
/* basic query of another type, with out-of-bound sequence */
ret = gnutls_x509_crt_get_authority_info_access
- (crt, 1, GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE, NULL,
- NULL);
+ (crt, 1, GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE, NULL, NULL);
if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
fail("gnutls_x509_crt_get_authority_info_access "
"GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE out-of-bounds\n");
@@ -177,8 +169,7 @@ void doit(void)
/* basic query of another type and check output value */
ret = gnutls_x509_crt_get_authority_info_access
- (crt, 0, GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE, &data,
- NULL);
+ (crt, 0, GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE, &data, NULL);
if (ret < 0) {
fail("gnutls_x509_crt_get_authority_info_access "
"GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE\n");
@@ -200,8 +191,7 @@ void doit(void)
}
if (memcmp
- ("https://ocsp.quovadisoffshore.com", data.data,
- data.size) != 0) {
+ ("https://ocsp.quovadisoffshore.com", data.data, data.size) != 0) {
fail("memcmp URI value failed\n");
exit(1);
}
@@ -216,8 +206,7 @@ void doit(void)
}
if (memcmp
- ("https://ocsp.quovadisoffshore.com", data.data,
- data.size) != 0) {
+ ("https://ocsp.quovadisoffshore.com", data.data, data.size) != 0) {
fail("memcmp URI value failed\n");
exit(1);
}
diff --git a/tests/init_roundtrip.c b/tests/init_roundtrip.c
index b179728341..17918e73e5 100644
--- a/tests/init_roundtrip.c
+++ b/tests/init_roundtrip.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
diff --git a/tests/insecure_key.c b/tests/insecure_key.c
index afad913911..167b02d07e 100644
--- a/tests/insecure_key.c
+++ b/tests/insecure_key.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -81,24 +81,36 @@ void doit(void)
gnutls_global_set_log_level(6);
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
- ret = gnutls_certificate_set_x509_key_mem2(x509_cred, &server_ca3_localhost_insecure_cert, &server_ca3_localhost_insecure_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_certificate_set_x509_key_mem2(x509_cred,
+ &server_ca3_localhost_insecure_cert,
+ &server_ca3_localhost_insecure_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0)
fail("%s\n", gnutls_strerror(ret));
- ret = gnutls_certificate_set_x509_key_mem2(x509_cred, &server_ca3_localhost6_cert_chain, &server_ca3_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_certificate_set_x509_key_mem2(x509_cred,
+ &server_ca3_localhost6_cert_chain,
+ &server_ca3_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0)
fail("%s\n", gnutls_strerror(ret));
- test_cli_serv(x509_cred, clicred, "NORMAL", "localhost6", NULL, NULL, NULL);
+ test_cli_serv(x509_cred, clicred, "NORMAL", "localhost6", NULL, NULL,
+ NULL);
status = test_cli_serv_vf(x509_cred, clicred, "NORMAL", "localhost");
- assert(status == (GNUTLS_CERT_INVALID|GNUTLS_CERT_INSECURE_ALGORITHM));
+ assert(status ==
+ (GNUTLS_CERT_INVALID | GNUTLS_CERT_INSECURE_ALGORITHM));
gnutls_certificate_free_credentials(x509_cred);
gnutls_certificate_free_credentials(clicred);
@@ -108,4 +120,3 @@ void doit(void)
if (debug)
success("success");
}
-
diff --git a/tests/iov.c b/tests/iov.c
index 2acd2b5f5f..6e9467f302 100644
--- a/tests/iov.c
+++ b/tests/iov.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include "gnutls_int.h"
@@ -44,10 +44,10 @@ struct test_st {
};
static const giovec_t iov16[] = {
- {(void *) "0123456789012345", 16},
- {(void *) "0123456789012345", 16},
- {(void *) "0123456789012345", 16},
- {(void *) "0123456789012345", 16}
+ {(void *)"0123456789012345", 16},
+ {(void *)"0123456789012345", 16},
+ {(void *)"0123456789012345", 16},
+ {(void *)"0123456789012345", 16}
};
static const struct exp_st exp16_64[] = {
@@ -89,10 +89,10 @@ static const struct exp_st exp16_3[] = {
};
static const giovec_t iov8[] = {
- {(void *) "01234567", 8},
- {(void *) "01234567", 8},
- {(void *) "01234567", 8},
- {(void *) "01234567", 8}
+ {(void *)"01234567", 8},
+ {(void *)"01234567", 8},
+ {(void *)"01234567", 8},
+ {(void *)"01234567", 8}
};
static const struct exp_st exp8_64[] = {
@@ -101,14 +101,14 @@ static const struct exp_st exp8_64[] = {
};
static const giovec_t iov_odd[] = {
- {(void *) "0", 1},
- {(void *) "012", 3},
- {(void *) "01234", 5},
- {(void *) "0123456", 7},
- {(void *) "012345678", 9},
- {(void *) "01234567890", 11},
- {(void *) "0123456789012", 13},
- {(void *) "012345678901234", 15}
+ {(void *)"0", 1},
+ {(void *)"012", 3},
+ {(void *)"01234", 5},
+ {(void *)"0123456", 7},
+ {(void *)"012345678", 9},
+ {(void *)"01234567890", 11},
+ {(void *)"0123456789012", 13},
+ {(void *)"012345678901234", 15}
};
static const struct exp_st exp_odd_16[] = {
@@ -120,11 +120,11 @@ static const struct exp_st exp_odd_16[] = {
};
static const giovec_t iov_skip[] = {
- {(void *) "0123456789012345", 16},
- {(void *) "01234567", 8},
- {(void *) "", 0},
- {(void *) "", 0},
- {(void *) "0123456789012345", 16}
+ {(void *)"0123456789012345", 16},
+ {(void *)"01234567", 8},
+ {(void *)"", 0},
+ {(void *)"", 0},
+ {(void *)"0123456789012345", 16}
};
static const struct exp_st exp_skip_16[] = {
@@ -135,10 +135,10 @@ static const struct exp_st exp_skip_16[] = {
};
static const giovec_t iov_empty[] = {
- {(void *) "", 0},
- {(void *) "", 0},
- {(void *) "", 0},
- {(void *) "", 0}
+ {(void *)"", 0},
+ {(void *)"", 0},
+ {(void *)"", 0},
+ {(void *)"", 0}
};
static const struct exp_st exp_empty_16[] = {
@@ -146,28 +146,28 @@ static const struct exp_st exp_empty_16[] = {
};
static const struct test_st tests[] = {
- { "16/64", iov16, sizeof(iov16)/sizeof(iov16[0]), 64,
- exp16_64, sizeof(exp16_64)/sizeof(exp16_64[0]) },
- { "16/32", iov16, sizeof(iov16)/sizeof(iov16[0]), 32,
- exp16_32, sizeof(exp16_32)/sizeof(exp16_32[0]) },
- { "16/16", iov16, sizeof(iov16)/sizeof(iov16[0]), 16,
- exp16_16, sizeof(exp16_16)/sizeof(exp16_16[0]) },
- { "16/4", iov16, sizeof(iov16)/sizeof(iov16[0]), 4,
- exp16_4, sizeof(exp16_4)/sizeof(exp16_4[0]) },
- { "16/3", iov16, sizeof(iov16)/sizeof(iov16[0]), 3,
- exp16_3, sizeof(exp16_3)/sizeof(exp16_3[0]) },
- { "8/64", iov8, sizeof(iov8)/sizeof(iov8[0]), 64,
- exp8_64, sizeof(exp8_64)/sizeof(exp8_64[0]) },
- { "odd/16", iov_odd, sizeof(iov_odd)/sizeof(iov_odd[0]), 16,
- exp_odd_16, sizeof(exp_odd_16)/sizeof(exp_odd_16[0]) },
- { "skip/16", iov_skip, sizeof(iov_skip)/sizeof(iov_skip[0]), 16,
- exp_skip_16, sizeof(exp_skip_16)/sizeof(exp_skip_16[0]) },
- { "empty/16", iov_empty, sizeof(iov_empty)/sizeof(iov_empty[0]), 16,
- exp_empty_16, sizeof(exp_empty_16)/sizeof(exp_empty_16[0]) },
+ {"16/64", iov16, sizeof(iov16) / sizeof(iov16[0]), 64,
+ exp16_64, sizeof(exp16_64) / sizeof(exp16_64[0])},
+ {"16/32", iov16, sizeof(iov16) / sizeof(iov16[0]), 32,
+ exp16_32, sizeof(exp16_32) / sizeof(exp16_32[0])},
+ {"16/16", iov16, sizeof(iov16) / sizeof(iov16[0]), 16,
+ exp16_16, sizeof(exp16_16) / sizeof(exp16_16[0])},
+ {"16/4", iov16, sizeof(iov16) / sizeof(iov16[0]), 4,
+ exp16_4, sizeof(exp16_4) / sizeof(exp16_4[0])},
+ {"16/3", iov16, sizeof(iov16) / sizeof(iov16[0]), 3,
+ exp16_3, sizeof(exp16_3) / sizeof(exp16_3[0])},
+ {"8/64", iov8, sizeof(iov8) / sizeof(iov8[0]), 64,
+ exp8_64, sizeof(exp8_64) / sizeof(exp8_64[0])},
+ {"odd/16", iov_odd, sizeof(iov_odd) / sizeof(iov_odd[0]), 16,
+ exp_odd_16, sizeof(exp_odd_16) / sizeof(exp_odd_16[0])},
+ {"skip/16", iov_skip, sizeof(iov_skip) / sizeof(iov_skip[0]), 16,
+ exp_skip_16, sizeof(exp_skip_16) / sizeof(exp_skip_16[0])},
+ {"empty/16", iov_empty, sizeof(iov_empty) / sizeof(iov_empty[0]), 16,
+ exp_empty_16, sizeof(exp_empty_16) / sizeof(exp_empty_16[0])},
};
static void
-copy(giovec_t *dst, uint8_t *buffer, const giovec_t *src, size_t iovcnt)
+copy(giovec_t * dst, uint8_t * buffer, const giovec_t * src, size_t iovcnt)
{
uint8_t *p = buffer;
size_t i;
@@ -180,8 +180,7 @@ copy(giovec_t *dst, uint8_t *buffer, const giovec_t *src, size_t iovcnt)
}
}
-static void
-translate(uint8_t *data, size_t len)
+static void translate(uint8_t * data, size_t len)
{
for (; len > 0; len--) {
uint8_t *p = &data[len - 1];
@@ -195,13 +194,12 @@ translate(uint8_t *data, size_t len)
#define MAX_BUF 1024
#define MAX_IOV 16
-void
-doit (void)
+void doit(void)
{
uint8_t buffer[MAX_BUF];
size_t i;
- for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
giovec_t iov[MAX_IOV];
struct iov_iter_st iter;
const struct exp_st *exp = tests[i].exp;
@@ -220,31 +218,35 @@ doit (void)
ret = _gnutls_iov_iter_next(&iter, &data);
if (ret != exp[j].ret)
fail("iov_iter_next: %d != %d\n",
- (int) ret, (int) exp[j].ret);
+ (int)ret, (int)exp[j].ret);
else if (debug)
success("iov_iter_next: %d == %d\n",
- (int) ret, (int) exp[j].ret);
+ (int)ret, (int)exp[j].ret);
if (ret == 0)
break;
if (ret > 0) {
if (iter.iov_index != exp[j].iov_index)
fail("iter.iov_index: %u != %u\n",
- (unsigned) iter.iov_index, (unsigned) exp[j].iov_index);
+ (unsigned)iter.iov_index,
+ (unsigned)exp[j].iov_index);
else if (debug)
success("iter.iov_index: %u == %u\n",
- (unsigned) iter.iov_index, (unsigned) exp[j].iov_index);
+ (unsigned)iter.iov_index,
+ (unsigned)exp[j].iov_index);
if (iter.iov_offset != exp[j].iov_offset)
fail("iter.iov_offset: %u != %u\n",
- (unsigned) iter.iov_offset, (unsigned) exp[j].iov_offset);
+ (unsigned)iter.iov_offset,
+ (unsigned)exp[j].iov_offset);
else if (debug)
success("iter.iov_offset: %u == %u\n",
- (unsigned) iter.iov_offset, (unsigned) exp[j].iov_offset);
+ (unsigned)iter.iov_offset,
+ (unsigned)exp[j].iov_offset);
if (iter.block_offset != 0)
fail("iter.block_offset: %u != 0\n",
- (unsigned) iter.block_offset);
+ (unsigned)iter.block_offset);
else if (debug)
success("iter.block_offset: %u == 0\n",
- (unsigned) iter.block_offset);
+ (unsigned)iter.block_offset);
translate(data, ret);
diff --git a/tests/ip-check.c b/tests/ip-check.c
index d3a6bc9e02..0b50b143bd 100644
--- a/tests/ip-check.c
+++ b/tests/ip-check.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <string.h>
@@ -35,107 +35,106 @@
*/
char pem_ips[] = "\n"
- "X.509 Certificate Information:\n"
- " Version: 3\n"
- " Serial Number (hex): 00\n"
- " Issuer: CN=server-0\n"
- " Validity:\n"
- " Not Before: Fri Jun 27 09:14:36 UTC 2014\n"
- " Not After: Fri Dec 31 23:59:59 UTC 9999\n"
- " Subject: CN=server-0\n"
- " Subject Public Key Algorithm: RSA\n"
- " Algorithm Security Level: Medium (2048 bits)\n"
- " Modulus (bits 2048):\n"
- " 00:c1:56:12:f6:c3:c7:e3:4c:7e:ff:04:4e:88:1d:67\n"
- " a7:f3:4d:64:cc:12:a7:ff:50:aa:5c:31:b9:3c:d1:d1\n"
- " ba:78:2c:7d:dd:54:4a:cd:5a:f2:38:8b:b2:c5:26:7e\n"
- " 25:05:36:b6:92:e6:1d:c3:00:39:a0:c5:1c:b5:63:3d\n"
- " 00:e9:b4:b5:75:a7:14:b1:ff:a0:03:9d:ba:77:da:e5\n"
- " de:21:fb:56:da:06:9d:84:57:53:3d:08:45:45:20:fd\n"
- " e7:60:65:2e:55:60:db:d3:91:da:64:ff:c4:42:42:54\n"
- " 77:cb:47:54:68:1e:b4:62:ad:8a:3c:0a:28:89:cb:d3\n"
- " 81:d3:15:9a:1d:67:90:51:83:90:6d:fb:a1:0e:54:6b\n"
- " 29:d7:ef:79:19:14:f6:0d:82:73:8f:79:58:0e:af:0e\n"
- " cc:bd:17:ab:b5:a2:1f:76:a1:9f:4b:7b:e8:f9:7b:28\n"
- " 56:cc:f1:5b:0e:93:c9:e5:44:2f:2d:0a:22:7d:0b:2b\n"
- " 30:84:c3:1e:d6:4d:63:5b:41:51:83:d4:b5:09:f4:cc\n"
- " ab:ad:51:1b:8e:a1:f6:b1:27:5b:43:3c:bc:ae:10:93\n"
- " d4:ce:3b:10:ca:3f:22:dd:9e:a8:3f:4a:a6:a8:cd:8f\n"
- " d0:6a:e0:40:26:28:0f:af:0e:13:e1:ac:b9:ac:41:cc\n"
- " 5d\n"
- " Exponent (bits 24):\n"
- " 01:00:01\n"
- " Extensions:\n"
- " Basic Constraints (critical):\n"
- " Certificate Authority (CA): TRUE\n"
- " Subject Alternative Name (not critical):\n"
- " IPAddress: 127.0.0.1\n"
- " IPAddress: 192.168.5.1\n"
- " IPAddress: 10.100.2.5\n"
- " IPAddress: 0:0:0:0:0:0:0:1\n"
- " IPAddress: fe80:0:0:0:3e97:eff:fe18:359a\n"
- " Key Usage (critical):\n"
- " Certificate signing.\n"
- " Subject Key Identifier (not critical):\n"
- " bd3d0b6cab6b33d8a8e1ed15b7ab17587cc2a09f\n"
- " Signature Algorithm: RSA-SHA256\n"
- " Signature:\n"
- " 02:22:52:4b:69:e5:4f:f8:17:0a:46:34:d1:ec:6b:f5\n"
- " ae:5b:fc:e2:00:ca:1f:f0:1d:74:91:9c:85:0a:a7:06\n"
- " 3d:fa:93:0d:35:85:ea:3e:01:9f:9e:bc:52:72:95:b2\n"
- " 8a:3a:78:6e:d2:5d:4d:60:88:2b:be:6f:68:75:c7:19\n"
- " ac:c9:ea:ab:74:f6:62:4d:30:1e:87:e4:70:1e:96:f4\n"
- " 0b:48:ef:c9:28:14:6f:fa:c1:7b:d3:ef:b3:d8:52:90\n"
- " 5d:20:d0:aa:8b:10:ab:74:86:46:be:cb:6c:93:54:60\n"
- " bc:6e:d6:4d:b2:1e:25:65:38:52:5b:6c:b4:57:8f:0f\n"
- " 26:4f:36:ea:42:eb:71:68:93:f3:a9:7a:66:5c:b6:07\n"
- " 7d:15:b5:f4:b8:5c:7c:e0:cd:d0:fa:5b:2a:6b:fd:4c\n"
- " 71:12:45:d0:37:9e:cf:90:59:6e:fd:ba:3a:8b:ca:37\n"
- " 01:cc:6f:e0:32:c7:9e:a4:ea:61:2c:e5:ad:66:73:80\n"
- " 5c:5e:0c:44:ec:c2:74:b8:fe:6e:66:af:76:cc:30:10\n"
- " 1f:3a:ac:34:36:e6:5b:72:f3:ee:5a:68:c3:43:37:56\n"
- " c3:08:02:3c:96:1c:27:18:d0:38:fa:d7:51:4e:82:7d\n"
- " fc:81:a2:23:c5:05:80:0e:b4:ba:d3:19:39:74:9c:74\n"
- "Other Information:\n"
- " SHA1 fingerprint:\n"
- " 43536dd4198f6064c117c3825020b14c108f9a34\n"
- " SHA256 fingerprint:\n"
- " 5ab6626aa069da15650edcfff7305767ff5b8d338289f851a624ea89b50ff06a\n"
- " Public Key ID:\n"
- " bd3d0b6cab6b33d8a8e1ed15b7ab17587cc2a09f\n"
- " Public key's random art:\n"
- " +--[ RSA 2048]----+\n"
- " | |\n"
- " | . |\n"
- " | . + |\n"
- " | . .= . |\n"
- " | .S+oo |\n"
- " | E+.+ |\n"
- " | . +. *.o |\n"
- " | . oo.=..+ o |\n"
- " | ooo.+Bo . |\n"
- " +-----------------+\n"
- "\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDKzCCAhOgAwIBAgIBADANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhzZXJ2\n"
- "ZXItMDAiGA8yMDE0MDYyNzA5MTQzNloYDzk5OTkxMjMxMjM1OTU5WjATMREwDwYD\n"
- "VQQDEwhzZXJ2ZXItMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFW\n"
- "EvbDx+NMfv8ETogdZ6fzTWTMEqf/UKpcMbk80dG6eCx93VRKzVryOIuyxSZ+JQU2\n"
- "tpLmHcMAOaDFHLVjPQDptLV1pxSx/6ADnbp32uXeIftW2gadhFdTPQhFRSD952Bl\n"
- "LlVg29OR2mT/xEJCVHfLR1RoHrRirYo8CiiJy9OB0xWaHWeQUYOQbfuhDlRrKdfv\n"
- "eRkU9g2Cc495WA6vDsy9F6u1oh92oZ9Le+j5eyhWzPFbDpPJ5UQvLQoifQsrMITD\n"
- "HtZNY1tBUYPUtQn0zKutURuOofaxJ1tDPLyuEJPUzjsQyj8i3Z6oP0qmqM2P0Grg\n"
- "QCYoD68OE+GsuaxBzF0CAwEAAaOBhTCBgjAPBgNVHRMBAf8EBTADAQH/MD8GA1Ud\n"
- "EQQ4MDaHBH8AAAGHBMCoBQGHBApkAgWHEAAAAAAAAAAAAAAAAAAAAAGHEP6AAAAA\n"
- "AAAAPpcO//4YNZowDwYDVR0PAQH/BAUDAwcEADAdBgNVHQ4EFgQUvT0LbKtrM9io\n"
- "4e0Vt6sXWHzCoJ8wDQYJKoZIhvcNAQELBQADggEBAAIiUktp5U/4FwpGNNHsa/Wu\n"
- "W/ziAMof8B10kZyFCqcGPfqTDTWF6j4Bn568UnKVsoo6eG7SXU1giCu+b2h1xxms\n"
- "yeqrdPZiTTAeh+RwHpb0C0jvySgUb/rBe9Pvs9hSkF0g0KqLEKt0hka+y2yTVGC8\n"
- "btZNsh4lZThSW2y0V48PJk826kLrcWiT86l6Zly2B30VtfS4XHzgzdD6Wypr/Uxx\n"
- "EkXQN57PkFlu/bo6i8o3Acxv4DLHnqTqYSzlrWZzgFxeDETswnS4/m5mr3bMMBAf\n"
- "Oqw0NuZbcvPuWmjDQzdWwwgCPJYcJxjQOPrXUU6CffyBoiPFBYAOtLrTGTl0nHQ=\n"
- "-----END CERTIFICATE-----\n"
- "";
+ "X.509 Certificate Information:\n"
+ " Version: 3\n"
+ " Serial Number (hex): 00\n"
+ " Issuer: CN=server-0\n"
+ " Validity:\n"
+ " Not Before: Fri Jun 27 09:14:36 UTC 2014\n"
+ " Not After: Fri Dec 31 23:59:59 UTC 9999\n"
+ " Subject: CN=server-0\n"
+ " Subject Public Key Algorithm: RSA\n"
+ " Algorithm Security Level: Medium (2048 bits)\n"
+ " Modulus (bits 2048):\n"
+ " 00:c1:56:12:f6:c3:c7:e3:4c:7e:ff:04:4e:88:1d:67\n"
+ " a7:f3:4d:64:cc:12:a7:ff:50:aa:5c:31:b9:3c:d1:d1\n"
+ " ba:78:2c:7d:dd:54:4a:cd:5a:f2:38:8b:b2:c5:26:7e\n"
+ " 25:05:36:b6:92:e6:1d:c3:00:39:a0:c5:1c:b5:63:3d\n"
+ " 00:e9:b4:b5:75:a7:14:b1:ff:a0:03:9d:ba:77:da:e5\n"
+ " de:21:fb:56:da:06:9d:84:57:53:3d:08:45:45:20:fd\n"
+ " e7:60:65:2e:55:60:db:d3:91:da:64:ff:c4:42:42:54\n"
+ " 77:cb:47:54:68:1e:b4:62:ad:8a:3c:0a:28:89:cb:d3\n"
+ " 81:d3:15:9a:1d:67:90:51:83:90:6d:fb:a1:0e:54:6b\n"
+ " 29:d7:ef:79:19:14:f6:0d:82:73:8f:79:58:0e:af:0e\n"
+ " cc:bd:17:ab:b5:a2:1f:76:a1:9f:4b:7b:e8:f9:7b:28\n"
+ " 56:cc:f1:5b:0e:93:c9:e5:44:2f:2d:0a:22:7d:0b:2b\n"
+ " 30:84:c3:1e:d6:4d:63:5b:41:51:83:d4:b5:09:f4:cc\n"
+ " ab:ad:51:1b:8e:a1:f6:b1:27:5b:43:3c:bc:ae:10:93\n"
+ " d4:ce:3b:10:ca:3f:22:dd:9e:a8:3f:4a:a6:a8:cd:8f\n"
+ " d0:6a:e0:40:26:28:0f:af:0e:13:e1:ac:b9:ac:41:cc\n"
+ " 5d\n"
+ " Exponent (bits 24):\n"
+ " 01:00:01\n"
+ " Extensions:\n"
+ " Basic Constraints (critical):\n"
+ " Certificate Authority (CA): TRUE\n"
+ " Subject Alternative Name (not critical):\n"
+ " IPAddress: 127.0.0.1\n"
+ " IPAddress: 192.168.5.1\n"
+ " IPAddress: 10.100.2.5\n"
+ " IPAddress: 0:0:0:0:0:0:0:1\n"
+ " IPAddress: fe80:0:0:0:3e97:eff:fe18:359a\n"
+ " Key Usage (critical):\n"
+ " Certificate signing.\n"
+ " Subject Key Identifier (not critical):\n"
+ " bd3d0b6cab6b33d8a8e1ed15b7ab17587cc2a09f\n"
+ " Signature Algorithm: RSA-SHA256\n"
+ " Signature:\n"
+ " 02:22:52:4b:69:e5:4f:f8:17:0a:46:34:d1:ec:6b:f5\n"
+ " ae:5b:fc:e2:00:ca:1f:f0:1d:74:91:9c:85:0a:a7:06\n"
+ " 3d:fa:93:0d:35:85:ea:3e:01:9f:9e:bc:52:72:95:b2\n"
+ " 8a:3a:78:6e:d2:5d:4d:60:88:2b:be:6f:68:75:c7:19\n"
+ " ac:c9:ea:ab:74:f6:62:4d:30:1e:87:e4:70:1e:96:f4\n"
+ " 0b:48:ef:c9:28:14:6f:fa:c1:7b:d3:ef:b3:d8:52:90\n"
+ " 5d:20:d0:aa:8b:10:ab:74:86:46:be:cb:6c:93:54:60\n"
+ " bc:6e:d6:4d:b2:1e:25:65:38:52:5b:6c:b4:57:8f:0f\n"
+ " 26:4f:36:ea:42:eb:71:68:93:f3:a9:7a:66:5c:b6:07\n"
+ " 7d:15:b5:f4:b8:5c:7c:e0:cd:d0:fa:5b:2a:6b:fd:4c\n"
+ " 71:12:45:d0:37:9e:cf:90:59:6e:fd:ba:3a:8b:ca:37\n"
+ " 01:cc:6f:e0:32:c7:9e:a4:ea:61:2c:e5:ad:66:73:80\n"
+ " 5c:5e:0c:44:ec:c2:74:b8:fe:6e:66:af:76:cc:30:10\n"
+ " 1f:3a:ac:34:36:e6:5b:72:f3:ee:5a:68:c3:43:37:56\n"
+ " c3:08:02:3c:96:1c:27:18:d0:38:fa:d7:51:4e:82:7d\n"
+ " fc:81:a2:23:c5:05:80:0e:b4:ba:d3:19:39:74:9c:74\n"
+ "Other Information:\n"
+ " SHA1 fingerprint:\n"
+ " 43536dd4198f6064c117c3825020b14c108f9a34\n"
+ " SHA256 fingerprint:\n"
+ " 5ab6626aa069da15650edcfff7305767ff5b8d338289f851a624ea89b50ff06a\n"
+ " Public Key ID:\n"
+ " bd3d0b6cab6b33d8a8e1ed15b7ab17587cc2a09f\n"
+ " Public key's random art:\n"
+ " +--[ RSA 2048]----+\n"
+ " | |\n"
+ " | . |\n"
+ " | . + |\n"
+ " | . .= . |\n"
+ " | .S+oo |\n"
+ " | E+.+ |\n"
+ " | . +. *.o |\n"
+ " | . oo.=..+ o |\n"
+ " | ooo.+Bo . |\n"
+ " +-----------------+\n"
+ "\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDKzCCAhOgAwIBAgIBADANBgkqhkiG9w0BAQsFADATMREwDwYDVQQDEwhzZXJ2\n"
+ "ZXItMDAiGA8yMDE0MDYyNzA5MTQzNloYDzk5OTkxMjMxMjM1OTU5WjATMREwDwYD\n"
+ "VQQDEwhzZXJ2ZXItMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFW\n"
+ "EvbDx+NMfv8ETogdZ6fzTWTMEqf/UKpcMbk80dG6eCx93VRKzVryOIuyxSZ+JQU2\n"
+ "tpLmHcMAOaDFHLVjPQDptLV1pxSx/6ADnbp32uXeIftW2gadhFdTPQhFRSD952Bl\n"
+ "LlVg29OR2mT/xEJCVHfLR1RoHrRirYo8CiiJy9OB0xWaHWeQUYOQbfuhDlRrKdfv\n"
+ "eRkU9g2Cc495WA6vDsy9F6u1oh92oZ9Le+j5eyhWzPFbDpPJ5UQvLQoifQsrMITD\n"
+ "HtZNY1tBUYPUtQn0zKutURuOofaxJ1tDPLyuEJPUzjsQyj8i3Z6oP0qmqM2P0Grg\n"
+ "QCYoD68OE+GsuaxBzF0CAwEAAaOBhTCBgjAPBgNVHRMBAf8EBTADAQH/MD8GA1Ud\n"
+ "EQQ4MDaHBH8AAAGHBMCoBQGHBApkAgWHEAAAAAAAAAAAAAAAAAAAAAGHEP6AAAAA\n"
+ "AAAAPpcO//4YNZowDwYDVR0PAQH/BAUDAwcEADAdBgNVHQ4EFgQUvT0LbKtrM9io\n"
+ "4e0Vt6sXWHzCoJ8wDQYJKoZIhvcNAQELBQADggEBAAIiUktp5U/4FwpGNNHsa/Wu\n"
+ "W/ziAMof8B10kZyFCqcGPfqTDTWF6j4Bn568UnKVsoo6eG7SXU1giCu+b2h1xxms\n"
+ "yeqrdPZiTTAeh+RwHpb0C0jvySgUb/rBe9Pvs9hSkF0g0KqLEKt0hka+y2yTVGC8\n"
+ "btZNsh4lZThSW2y0V48PJk826kLrcWiT86l6Zly2B30VtfS4XHzgzdD6Wypr/Uxx\n"
+ "EkXQN57PkFlu/bo6i8o3Acxv4DLHnqTqYSzlrWZzgFxeDETswnS4/m5mr3bMMBAf\n"
+ "Oqw0NuZbcvPuWmjDQzdWwwgCPJYcJxjQOPrXUU6CffyBoiPFBYAOtLrTGTl0nHQ=\n"
+ "-----END CERTIFICATE-----\n" "";
void doit(void)
{
@@ -151,7 +150,7 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_crt_init: %d\n", ret);
- data.data = (unsigned char *) pem_ips;
+ data.data = (unsigned char *)pem_ips;
data.size = strlen(pem_ips);
ret = gnutls_x509_crt_import(x509, &data, GNUTLS_X509_FMT_PEM);
@@ -168,37 +167,49 @@ void doit(void)
ret = gnutls_x509_crt_check_hostname(x509, "127.0.0.1");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "192.168.5.1");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "::1");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
ret = gnutls_x509_crt_check_hostname(x509, "fe80::3e97:eff:fe18:359a");
if (!ret)
- fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__, ret);
+ fail("%d: Hostname incorrectly does not match (%d)\n", __LINE__,
+ ret);
- ret = gnutls_x509_crt_check_ip(x509, (unsigned char*)"\x7f\x00\x00\x02", 4, 0);
+ ret =
+ gnutls_x509_crt_check_ip(x509, (unsigned char *)"\x7f\x00\x00\x02",
+ 4, 0);
if (ret)
fail("%d: IP incorrectly matches (%d)\n", __LINE__, ret);
- ret = gnutls_x509_crt_check_ip(x509, (unsigned char*)"\x7f\x00\x00\x01", 4, 0);
+ ret =
+ gnutls_x509_crt_check_ip(x509, (unsigned char *)"\x7f\x00\x00\x01",
+ 4, 0);
if (!ret)
fail("%d: IP incorrectly does not match (%d)\n", __LINE__, ret);
- ret = gnutls_x509_crt_check_ip(x509, (unsigned char*)"\xc0\xa8\x05\x01", 4, 0);
+ ret =
+ gnutls_x509_crt_check_ip(x509, (unsigned char *)"\xc0\xa8\x05\x01",
+ 4, 0);
if (!ret)
fail("%d: IP incorrectly does not match (%d)\n", __LINE__, ret);
- ret = gnutls_x509_crt_check_ip(x509, (unsigned char*)"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", 16, 0);
+ ret = gnutls_x509_crt_check_ip(x509, (unsigned char *)
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", 16, 0);
if (!ret)
fail("%d: IP incorrectly does not match (%d)\n", __LINE__, ret);
- ret = gnutls_x509_crt_check_ip(x509, (unsigned char*)"\xfe\x80\x00\x00\x00\x00\x00\x00\x3e\x97\x0e\xff\xfe\x18\x35\x9a", 16, 0);
+ ret = gnutls_x509_crt_check_ip(x509, (unsigned char *)
+ "\xfe\x80\x00\x00\x00\x00\x00\x00\x3e\x97\x0e\xff\xfe\x18\x35\x9a", 16, 0);
if (!ret)
fail("%d: IP incorrectly does not match (%d)\n", __LINE__, ret);
diff --git a/tests/ip-utils.c b/tests/ip-utils.c
index a5ee30032e..5718953f86 100644
--- a/tests/ip-utils.c
+++ b/tests/ip-utils.c
@@ -35,10 +35,10 @@
# include <cmocka.h>
# include <sys/socket.h>
-#define BUILD_IN_TESTS
-#include "../lib/x509/ip-in-cidr.h"
+# define BUILD_IN_TESTS
+# include "../lib/x509/ip-in-cidr.h"
-#define _MATCH_FUNC(fname, CIDR, IP, status) \
+# define _MATCH_FUNC(fname, CIDR, IP, status) \
static void fname(void **glob_state) \
{ \
gnutls_datum_t dcidr; \
@@ -52,8 +52,8 @@ static void fname(void **glob_state) \
gnutls_free(dcidr.data); \
}
-#define MATCH_FUNC_OK(fname, CIDR, IP) _MATCH_FUNC(fname, CIDR, IP, 1)
-#define MATCH_FUNC_NOT_OK(fname, CIDR, IP) _MATCH_FUNC(fname, CIDR, IP, 0)
+# define MATCH_FUNC_OK(fname, CIDR, IP) _MATCH_FUNC(fname, CIDR, IP, 1)
+# define MATCH_FUNC_NOT_OK(fname, CIDR, IP) _MATCH_FUNC(fname, CIDR, IP, 0)
MATCH_FUNC_OK(check_ip1_match, "192.168.1.0/24", "192.168.1.128");
MATCH_FUNC_OK(check_ip2_match, "192.168.1.0/24", "192.168.1.1");
@@ -69,7 +69,7 @@ MATCH_FUNC_NOT_OK(check_ip5_not_match, "192.168.1.0/28", "192.168.1.64");
MATCH_FUNC_NOT_OK(check_ip6_not_match, "192.168.1.0/24", "10.0.0.0");
MATCH_FUNC_NOT_OK(check_ip7_not_match, "192.168.1.0/24", "192.169.1.0");
-#define CIDR_MATCH(fname, CIDR, EXPECTED) \
+# define CIDR_MATCH(fname, CIDR, EXPECTED) \
static void fname(void **glob_state) \
{ \
gnutls_datum_t dcidr; \
@@ -79,7 +79,7 @@ static void fname(void **glob_state) \
gnutls_free(dcidr.data); \
}
-#define CIDR_FAIL(fname, CIDR) \
+# define CIDR_FAIL(fname, CIDR) \
static void fname(void **glob_state) \
{ \
gnutls_datum_t dcidr; \
@@ -87,12 +87,16 @@ static void fname(void **glob_state) \
assert_int_not_equal(gnutls_x509_cidr_to_rfc5280(cidr, &dcidr), 0); \
}
-CIDR_MATCH(check_cidr_ok1, "0.0.0.0/32","\x00\x00\x00\x00\xff\xff\xff\xff");
-CIDR_MATCH(check_cidr_ok2, "192.168.1.1/12", "\xc0\xa0\x00\x00\xff\xf0\x00\x00");
+CIDR_MATCH(check_cidr_ok1, "0.0.0.0/32", "\x00\x00\x00\x00\xff\xff\xff\xff");
+CIDR_MATCH(check_cidr_ok2, "192.168.1.1/12",
+ "\xc0\xa0\x00\x00\xff\xf0\x00\x00");
CIDR_MATCH(check_cidr_ok3, "192.168.1.1/0", "\x00\x00\x00\x00\x00\x00\x00\x00");
-CIDR_MATCH(check_cidr_ok4, "::/19", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");
-CIDR_MATCH(check_cidr_ok5, "::1/128", "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff");
-CIDR_MATCH(check_cidr_ok6, "2001:db8::/48", "\x20\x01\x0d\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");
+CIDR_MATCH(check_cidr_ok4, "::/19",
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");
+CIDR_MATCH(check_cidr_ok5, "::1/128",
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff");
+CIDR_MATCH(check_cidr_ok6, "2001:db8::/48",
+ "\x20\x01\x0d\xb8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");
CIDR_FAIL(check_cidr_fail1, "0.0.0.0/100");
CIDR_FAIL(check_cidr_fail2, "1.2.3.4/-1");
diff --git a/tests/kdf-api.c b/tests/kdf-api.c
index 2e70d09ca1..c496cf2993 100644
--- a/tests/kdf-api.c
+++ b/tests/kdf-api.c
@@ -35,15 +35,12 @@
static gnutls_fips140_context_t fips_context;
-
static void
test_hkdf(gnutls_mac_algorithm_t mac,
const char *ikm_hex,
const char *salt_hex,
const char *info_hex,
- size_t length,
- const char *prk_hex,
- const char *okm_hex)
+ size_t length, const char *prk_hex, const char *okm_hex)
{
gnutls_datum_t hex;
gnutls_datum_t ikm;
@@ -171,8 +168,7 @@ test_pbkdf2(gnutls_mac_algorithm_t mac,
gnutls_free(hex.data);
}
-void
-doit(void)
+void doit(void)
{
assert(gnutls_fips140_context_init(&fips_context) >= 0);
@@ -187,26 +183,19 @@ doit(void)
"077709362c2e32df0ddc3f0dc47bba63"
"90b6c73bb50f9c3122ec844ad7c2b3e5",
"3cb25f25faacd57a90434f64d0362f2a"
- "2d2d0a90cf1a5a4c5db02d56ecc4c5bf"
- "34007208d5b887185865");
+ "2d2d0a90cf1a5a4c5db02d56ecc4c5bf" "34007208d5b887185865");
/* Test vector from RFC 6070. More thorough testing is done
* in nettle. */
- test_pbkdf2(GNUTLS_MAC_SHA1,
- "70617373776f7264", /* "password" */
- "73616c74", /* "salt" */
- 4096,
- 20,
- "4b007901b765489abead49d926f721d065a429c1",
+ test_pbkdf2(GNUTLS_MAC_SHA1, "70617373776f7264", /* "password" */
+ "73616c74", /* "salt" */
+ 4096, 20, "4b007901b765489abead49d926f721d065a429c1",
/* Key sizes and output sizes less than 112-bit are not approved. */
GNUTLS_FIPS140_OP_NOT_APPROVED);
- test_pbkdf2(GNUTLS_MAC_AES_CMAC_128,
- "70617373776f726470617373776f7264", /* "passwordpassword" */
- "73616c74", /* "salt" */
- 4096,
- 20,
- "c4c112c6e1e3b8757640603dec78825ff87605a7",
+ test_pbkdf2(GNUTLS_MAC_AES_CMAC_128, "70617373776f726470617373776f7264", /* "passwordpassword" */
+ "73616c74", /* "salt" */
+ 4096, 20, "c4c112c6e1e3b8757640603dec78825ff87605a7",
/* Use of AES-CMAC in PBKDF2 is not supported in ACVP. */
GNUTLS_FIPS140_OP_NOT_APPROVED);
diff --git a/tests/key-export-pkcs8.c b/tests/key-export-pkcs8.c
index 9c179a302f..f4e07af687 100644
--- a/tests/key-export-pkcs8.c
+++ b/tests/key-export-pkcs8.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,59 +31,81 @@
#include <gnutls/x509.h>
#include <gnutls/abstract.h>
-unsigned char dsa_p[] = "\x00\xb9\x84\xf5\x5a\x81\xbe\x1a\x0d\xc5\x8a\x73\x8f\x0c\x9b\x2f\x9b\xb6\x0e\x4b\xc3\x74\x1a\x7f\x64\xad\x9d\xf3\x28\xc5\xa0\x47\xbc\x9b\x57\x56\xf1\x97\xd5\x7e\x37\x03\xe9\xf2\x4c\xf4\xe3\x8b\x7f\x30\xa3\x5d\x2f\xbb\xa1\xa2\x37\xc2\xea\x35\x8f\x1f\xb1\x5f\xa6\xa2\x5f\x01\xf1\x23\x36\x2b\xe4\x4f\x2f\x2d\xdd\x9d\xd5\x3a\xa6\x39\xaf\x7a\x51\x7c\xd2\x25\x8e\x97\x74\xcf\x1e\xc5\x7b\x4b\x76\x43\x81\x07\x1f\x06\x14\xb8\x6e\x58\x12\xe1\x90\xe2\x37\x6f\xd2\x1b\xec\x68\xc5\x58\xe2\xe6\x30\xe0\x6a\x5e\x2c\x63\x78\xec\x07";
-unsigned char dsa_q[] = "\x00\x9f\x56\x8c\x48\x64\x2f\xfe\x8d\xaa\x7a\x6d\x96\xdb\x04\x5d\x16\xef\x08\xa5\x71";
-unsigned char dsa_g[] = "\x62\x06\x7e\xe4\x5c\x76\x08\xb7\x46\x1a\x5d\xd7\x97\xd4\x2a\x21\xfb\x1f\x31\xc9\xd2\xf4\xfa\x39\xd8\x27\xd1\x9b\xfc\x27\x5d\xa7\x0a\xa7\x1a\xfc\x53\xc1\x2f\x43\xc2\x37\xc8\x85\x7f\x3d\x4c\xab\x5d\x81\x32\xfb\x1d\x5e\x1e\x54\x11\x16\x20\xc6\x80\x5a\xd9\x8c\x9b\x43\xf0\xdd\x6b\xa0\xf4\xc3\xf2\x8a\x9c\x39\xd2\x1c\x7b\x0f\xef\xfa\x28\x93\x8f\xd2\xa1\x22\xeb\xdc\xe0\x8a\x8b\xad\x28\x0e\xcf\xef\x09\x85\xe9\x36\xbd\x8b\x7a\x50\xd5\x7b\xf7\x25\x0d\x6c\x60\x11\xc4\xef\x70\x90\xcf\xd6\x1b\xeb\xbb\x8e\xc6\x3e\x3a\x97";
-unsigned char dsa_y[] = "\x0f\x8a\x87\x57\xf2\xd1\xc2\xdc\xac\xdf\x4b\x8b\x0f\x8b\xba\x29\xf7\xe1\x03\xe4\x55\xfa\xb2\x98\x07\xd6\xfd\x12\xb1\x80\xbc\xf5\xba\xb4\x50\xd4\x7f\xa0\x0e\x43\xe7\x9f\xc9\x78\x11\x5f\xe5\xe4\x0c\x2c\x6b\x6a\xa4\x35\xdc\xbd\x54\xe5\x60\x36\x9a\x31\xd1\x8a\x59\x6e\x6b\x1c\xba\xbd\x2e\xba\xeb\x7c\x87\xef\xda\xc8\xdd\xa1\xeb\xa4\x83\xe6\x8b\xad\xfa\xfa\x8e\x5b\xd7\x37\xc8\x32\x3e\x96\xc2\x3e\xf4\x43\xda\x7d\x91\x02\x0f\xb7\xbc\xf8\xef\x8f\xf7\x41\x00\x5e\x96\xdf\x0f\x08\x96\xdc\xea\xb2\xe9\x06\x82\xaf\xd2\x2f";
-unsigned char dsa_x[] = "\x4b\x9f\xeb\xff\x6c\x9a\x02\x83\x41\x5e\x37\x81\x8e\x00\x86\x31\xe8\xb6\x9b\xc1";
-
-unsigned char rsa_m[] = "\x00\xbb\x66\x43\xf5\xf2\xc5\xd7\xb6\x8c\xcc\xc5\xdf\xf5\x88\x3b\xb1\xc9\x4b\x6a\x0e\xa1\xad\x20\x50\x40\x08\x80\xa1\x4f\x5c\xa3\xd0\xf8\x6c\xcf\xe6\x3c\xf7\xec\x04\x76\x13\x17\x8b\x64\x89\x22\x5b\xc0\xdd\x53\x7c\x3b\xed\x7c\x04\xbb\x80\xb9\x28\xbe\x8e\x9b\xc6\x8e\xa0\xa5\x12\xcb\xf5\x57\x1e\xa2\xe7\xbb\xb7\x33\x49\x9f\xe3\xbb\x4a\xae\x6a\x4d\x68\xff\xc9\x11\xe2\x32\x8d\xce\x3d\x80\x0b\x8d\x75\xef\xd8\x00\x81\x8f\x28\x04\x03\xa0\x22\x8d\x61\x04\x07\xfa\xb6\x37\x7d\x21\x07\x49\xd2\x09\x61\x69\x98\x90\xa3\x58\xa9";
+unsigned char dsa_p[] =
+ "\x00\xb9\x84\xf5\x5a\x81\xbe\x1a\x0d\xc5\x8a\x73\x8f\x0c\x9b\x2f\x9b\xb6\x0e\x4b\xc3\x74\x1a\x7f\x64\xad\x9d\xf3\x28\xc5\xa0\x47\xbc\x9b\x57\x56\xf1\x97\xd5\x7e\x37\x03\xe9\xf2\x4c\xf4\xe3\x8b\x7f\x30\xa3\x5d\x2f\xbb\xa1\xa2\x37\xc2\xea\x35\x8f\x1f\xb1\x5f\xa6\xa2\x5f\x01\xf1\x23\x36\x2b\xe4\x4f\x2f\x2d\xdd\x9d\xd5\x3a\xa6\x39\xaf\x7a\x51\x7c\xd2\x25\x8e\x97\x74\xcf\x1e\xc5\x7b\x4b\x76\x43\x81\x07\x1f\x06\x14\xb8\x6e\x58\x12\xe1\x90\xe2\x37\x6f\xd2\x1b\xec\x68\xc5\x58\xe2\xe6\x30\xe0\x6a\x5e\x2c\x63\x78\xec\x07";
+unsigned char dsa_q[] =
+ "\x00\x9f\x56\x8c\x48\x64\x2f\xfe\x8d\xaa\x7a\x6d\x96\xdb\x04\x5d\x16\xef\x08\xa5\x71";
+unsigned char dsa_g[] =
+ "\x62\x06\x7e\xe4\x5c\x76\x08\xb7\x46\x1a\x5d\xd7\x97\xd4\x2a\x21\xfb\x1f\x31\xc9\xd2\xf4\xfa\x39\xd8\x27\xd1\x9b\xfc\x27\x5d\xa7\x0a\xa7\x1a\xfc\x53\xc1\x2f\x43\xc2\x37\xc8\x85\x7f\x3d\x4c\xab\x5d\x81\x32\xfb\x1d\x5e\x1e\x54\x11\x16\x20\xc6\x80\x5a\xd9\x8c\x9b\x43\xf0\xdd\x6b\xa0\xf4\xc3\xf2\x8a\x9c\x39\xd2\x1c\x7b\x0f\xef\xfa\x28\x93\x8f\xd2\xa1\x22\xeb\xdc\xe0\x8a\x8b\xad\x28\x0e\xcf\xef\x09\x85\xe9\x36\xbd\x8b\x7a\x50\xd5\x7b\xf7\x25\x0d\x6c\x60\x11\xc4\xef\x70\x90\xcf\xd6\x1b\xeb\xbb\x8e\xc6\x3e\x3a\x97";
+unsigned char dsa_y[] =
+ "\x0f\x8a\x87\x57\xf2\xd1\xc2\xdc\xac\xdf\x4b\x8b\x0f\x8b\xba\x29\xf7\xe1\x03\xe4\x55\xfa\xb2\x98\x07\xd6\xfd\x12\xb1\x80\xbc\xf5\xba\xb4\x50\xd4\x7f\xa0\x0e\x43\xe7\x9f\xc9\x78\x11\x5f\xe5\xe4\x0c\x2c\x6b\x6a\xa4\x35\xdc\xbd\x54\xe5\x60\x36\x9a\x31\xd1\x8a\x59\x6e\x6b\x1c\xba\xbd\x2e\xba\xeb\x7c\x87\xef\xda\xc8\xdd\xa1\xeb\xa4\x83\xe6\x8b\xad\xfa\xfa\x8e\x5b\xd7\x37\xc8\x32\x3e\x96\xc2\x3e\xf4\x43\xda\x7d\x91\x02\x0f\xb7\xbc\xf8\xef\x8f\xf7\x41\x00\x5e\x96\xdf\x0f\x08\x96\xdc\xea\xb2\xe9\x06\x82\xaf\xd2\x2f";
+unsigned char dsa_x[] =
+ "\x4b\x9f\xeb\xff\x6c\x9a\x02\x83\x41\x5e\x37\x81\x8e\x00\x86\x31\xe8\xb6\x9b\xc1";
+
+unsigned char rsa_m[] =
+ "\x00\xbb\x66\x43\xf5\xf2\xc5\xd7\xb6\x8c\xcc\xc5\xdf\xf5\x88\x3b\xb1\xc9\x4b\x6a\x0e\xa1\xad\x20\x50\x40\x08\x80\xa1\x4f\x5c\xa3\xd0\xf8\x6c\xcf\xe6\x3c\xf7\xec\x04\x76\x13\x17\x8b\x64\x89\x22\x5b\xc0\xdd\x53\x7c\x3b\xed\x7c\x04\xbb\x80\xb9\x28\xbe\x8e\x9b\xc6\x8e\xa0\xa5\x12\xcb\xf5\x57\x1e\xa2\xe7\xbb\xb7\x33\x49\x9f\xe3\xbb\x4a\xae\x6a\x4d\x68\xff\xc9\x11\xe2\x32\x8d\xce\x3d\x80\x0b\x8d\x75\xef\xd8\x00\x81\x8f\x28\x04\x03\xa0\x22\x8d\x61\x04\x07\xfa\xb6\x37\x7d\x21\x07\x49\xd2\x09\x61\x69\x98\x90\xa3\x58\xa9";
unsigned char rsa_e[] = "\x01\x00\x01";
-unsigned char rsa_d[] = "\x0e\x99\x80\x44\x6e\x42\x43\x14\xbe\x01\xeb\x0d\x90\x69\xa9\x6a\xe7\xa9\x88\x2c\xf5\x24\x11\x7f\x27\x09\xf2\x89\x7e\xaf\x13\x35\x21\xd1\x8a\x5d\xdf\xd4\x99\xce\xdc\x2b\x0f\x1b\xc5\x3c\x98\xd0\x68\xa5\x65\x8e\x69\x75\xce\x42\x69\x20\x35\x6c\xaa\xf1\xdd\xc9\x57\x6c\x7b\xc3\x3e\x42\x7e\xa1\xc3\x8c\x76\xa7\x9a\xe8\x81\xdb\xe1\x84\x82\xf5\x99\xd5\xa8\xee\x35\x9e\x54\x94\xc5\x44\xa0\x7b\xcc\xb7\x4c\x3e\xcd\xf2\x49\xdb\x5c\x21\x06\x85\xf6\x75\x00\x43\x62\x89\x12\xf9\x5d\x90\xed\xe6\xfd\xb4\x49\x14\x4a\x79\xe2\x4d";
-unsigned char rsa_p[] = "\x00\xd8\xcb\xe4\x65\x4e\x6c\x11\x0f\xa8\x72\xed\x4b\x4c\x8d\x1d\x07\xdc\x24\x99\x25\xe4\x3c\xb2\xf3\x02\xc4\x72\xe6\x3a\x5b\x86\xf4\x7d\x54\x2a\x4e\x79\x64\x16\x1f\x45\x3b\x17\x9e\x2a\x94\x90\x90\x59\xe7\x0b\x95\xd4\xbf\xa9\x47\xd1\x0a\x71\xaf\x3d\x6b\xed\x55";
-unsigned char rsa_q[] = "\x00\xdd\x49\x81\x7a\x5c\x04\xbf\x6b\xbd\x70\x05\x35\x42\x32\xa3\x9b\x08\xee\xd4\x98\x17\x6e\xb8\xc4\xa2\x12\xbe\xdc\x1e\x72\xd0\x44\x84\x5c\xf0\x30\x35\x04\xfd\x4e\xb0\xcc\xd6\x6f\x40\xcb\x16\x13\x58\xbc\x57\xf7\x77\x48\xe5\x0c\x0d\x14\x9b\x66\x6e\xd8\xde\x05";
-unsigned char rsa_u[] = "\x4a\x74\x5c\x95\x83\x54\xa3\xb0\x71\x35\xba\x02\x3a\x7d\x4a\x8c\x2d\x9a\x26\x77\x60\x36\x28\xd4\xb1\x7d\x8a\x06\xf8\x89\xa2\xef\xb1\x66\x46\x7d\xb9\xd4\xde\xbc\xa3\xbe\x46\xfa\x62\xe1\x63\x82\xdc\xdb\x64\x36\x47\x59\x00\xa8\xf3\xf7\x0e\xb4\xe0\x66\x3d\xd9";
-unsigned char rsa_e1[] = "\x45\x20\x96\x5e\x1b\x28\x68\x34\x46\xf1\x06\x6b\x09\x28\xc1\xc5\xfc\xd3\x0a\xa6\x43\x65\x7b\x65\xf3\x4e\xf2\x98\x28\xa9\x80\x99\xba\xd0\xb8\x80\xb7\x42\x4b\xaf\x82\xe2\xb9\xc0\x2c\x31\x9c\xfa\xfa\x3f\xaa\xb9\x06\xd2\x6a\x46\xc5\x08\x00\x81\xf1\x22\xd5\xd5";
-unsigned char rsa_e2[] = "\x00\xa6\x50\x60\xa7\xfe\x10\xf3\x6d\x9e\x6b\x5a\xfe\xb4\x4a\x2a\xfc\x92\xb2\x2d\xc6\x41\x96\x4d\xf8\x3b\x77\xab\x4a\xf4\xf7\x85\xe0\x79\x3b\x00\xaa\xba\xae\x8d\x53\x5f\x3e\x14\xcc\x78\xfe\x2a\x11\x50\x57\xfe\x25\x57\xd9\xc9\x8c\x4d\x28\x77\xc3\x7c\xfc\x31\xa1";
-
-unsigned char ecc_x[] = "\x3c\x15\x6f\x1d\x48\x3e\x64\x59\x13\x2c\x6d\x04\x1a\x38\x0d\x30\x5c\xe4\x3f\x55\xcb\xd9\x17\x15\x46\x72\x71\x92\xc1\xf8\xc6\x33";
-unsigned char ecc_y[] = "\x3d\x04\x2e\xc8\xc1\x0f\xc0\x50\x04\x7b\x9f\xc9\x48\xb5\x40\xfa\x6f\x93\x82\x59\x61\x5e\x72\x57\xcb\x83\x06\xbd\xcc\x82\x94\xc1";
-unsigned char ecc_k[] = "\x00\xfd\x2b\x00\x80\xf3\x36\x5f\x11\x32\x65\xe3\x8d\x30\x33\x3b\x47\xf5\xce\xf8\x13\xe5\x4c\xc2\xcf\xfd\xe8\x05\x6a\xca\xc9\x41\xb1";
-
-unsigned char false_ed25519_x[] = "\xac\xac\x9a\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x84\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
-unsigned char ed25519_x[] = "\xab\xaf\x98\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x86\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
-unsigned char ed25519_k[] = "\x1c\xa9\x23\xdc\x35\xa8\xfd\xd6\x2d\xa8\x98\xb9\x60\x7b\xce\x10\x3d\xf4\x64\xc6\xe5\x4b\x0a\x65\x56\x6a\x3c\x73\x65\x51\xa2\x2f";
-
-unsigned char gost_x[] = "\xd0\xbb\xe9\xf4\xc6\xa8\x60\x3c\x73\x91\x44\x55\xcf\xbd\x50\xdd\x2c\x3d\x5a\xbc\x1a\xd8\x5e\x3c\xdf\x10\xdd\xd2\x63\x88\x0f\xc0";
-unsigned char gost_y[] = "\x8a\xec\x96\x3c\x0b\xc8\x33\xff\x57\x5f\x66\x78\x94\x39\xb4\xf5\x24\xc6\xba\x86\x41\xac\x43\x21\x6f\x3c\xb0\xfa\x56\xbd\x5b\x37";
-unsigned char gost_k[] = "\x47\x59\x41\x2c\x8a\xf8\x58\x1a\x67\xe0\xc3\x82\x1f\xca\x31\x19\x66\xf9\xd8\x43\xcd\x2f\x78\x23\x34\x98\x90\xb8\x14\x2e\x7f\xa5";
-
-gnutls_datum_t _dsa_p = {dsa_p, sizeof(dsa_p)-1};
-gnutls_datum_t _dsa_q = {dsa_q, sizeof(dsa_q)-1};
-gnutls_datum_t _dsa_g = {dsa_g, sizeof(dsa_g)-1};
-gnutls_datum_t _dsa_y = {dsa_y, sizeof(dsa_y)-1};
-gnutls_datum_t _dsa_x = {dsa_x, sizeof(dsa_x)-1};
-
-gnutls_datum_t _rsa_m = {rsa_m, sizeof(rsa_m)-1};
-gnutls_datum_t _rsa_e = {rsa_e, sizeof(rsa_e)-1};
-gnutls_datum_t _rsa_d = {rsa_d, sizeof(rsa_d)-1};
-gnutls_datum_t _rsa_p = {rsa_p, sizeof(rsa_p)-1};
-gnutls_datum_t _rsa_q = {rsa_q, sizeof(rsa_q)-1};
-gnutls_datum_t _rsa_u = {rsa_u, sizeof(rsa_u)-1};
-gnutls_datum_t _rsa_e1 = {rsa_e1, sizeof(rsa_e1)-1};
-gnutls_datum_t _rsa_e2 = {rsa_e2, sizeof(rsa_e2)-1};
-
-gnutls_datum_t _ecc_x = {ecc_x, sizeof(ecc_x)-1};
-gnutls_datum_t _ecc_y = {ecc_y, sizeof(ecc_y)-1};
-gnutls_datum_t _ecc_k = {ecc_k, sizeof(ecc_k)-1};
-
-gnutls_datum_t _false_ed25519_x = {false_ed25519_x, sizeof(false_ed25519_x)-1};
-gnutls_datum_t _ed25519_x = {ed25519_x, sizeof(ed25519_x)-1};
-gnutls_datum_t _ed25519_k = {ed25519_k, sizeof(ed25519_k)-1};
-
-gnutls_datum_t _gost_x = {gost_x, sizeof(gost_x)-1};
-gnutls_datum_t _gost_y = {gost_y, sizeof(gost_y)-1};
-gnutls_datum_t _gost_k = {gost_k, sizeof(gost_k)-1};
+unsigned char rsa_d[] =
+ "\x0e\x99\x80\x44\x6e\x42\x43\x14\xbe\x01\xeb\x0d\x90\x69\xa9\x6a\xe7\xa9\x88\x2c\xf5\x24\x11\x7f\x27\x09\xf2\x89\x7e\xaf\x13\x35\x21\xd1\x8a\x5d\xdf\xd4\x99\xce\xdc\x2b\x0f\x1b\xc5\x3c\x98\xd0\x68\xa5\x65\x8e\x69\x75\xce\x42\x69\x20\x35\x6c\xaa\xf1\xdd\xc9\x57\x6c\x7b\xc3\x3e\x42\x7e\xa1\xc3\x8c\x76\xa7\x9a\xe8\x81\xdb\xe1\x84\x82\xf5\x99\xd5\xa8\xee\x35\x9e\x54\x94\xc5\x44\xa0\x7b\xcc\xb7\x4c\x3e\xcd\xf2\x49\xdb\x5c\x21\x06\x85\xf6\x75\x00\x43\x62\x89\x12\xf9\x5d\x90\xed\xe6\xfd\xb4\x49\x14\x4a\x79\xe2\x4d";
+unsigned char rsa_p[] =
+ "\x00\xd8\xcb\xe4\x65\x4e\x6c\x11\x0f\xa8\x72\xed\x4b\x4c\x8d\x1d\x07\xdc\x24\x99\x25\xe4\x3c\xb2\xf3\x02\xc4\x72\xe6\x3a\x5b\x86\xf4\x7d\x54\x2a\x4e\x79\x64\x16\x1f\x45\x3b\x17\x9e\x2a\x94\x90\x90\x59\xe7\x0b\x95\xd4\xbf\xa9\x47\xd1\x0a\x71\xaf\x3d\x6b\xed\x55";
+unsigned char rsa_q[] =
+ "\x00\xdd\x49\x81\x7a\x5c\x04\xbf\x6b\xbd\x70\x05\x35\x42\x32\xa3\x9b\x08\xee\xd4\x98\x17\x6e\xb8\xc4\xa2\x12\xbe\xdc\x1e\x72\xd0\x44\x84\x5c\xf0\x30\x35\x04\xfd\x4e\xb0\xcc\xd6\x6f\x40\xcb\x16\x13\x58\xbc\x57\xf7\x77\x48\xe5\x0c\x0d\x14\x9b\x66\x6e\xd8\xde\x05";
+unsigned char rsa_u[] =
+ "\x4a\x74\x5c\x95\x83\x54\xa3\xb0\x71\x35\xba\x02\x3a\x7d\x4a\x8c\x2d\x9a\x26\x77\x60\x36\x28\xd4\xb1\x7d\x8a\x06\xf8\x89\xa2\xef\xb1\x66\x46\x7d\xb9\xd4\xde\xbc\xa3\xbe\x46\xfa\x62\xe1\x63\x82\xdc\xdb\x64\x36\x47\x59\x00\xa8\xf3\xf7\x0e\xb4\xe0\x66\x3d\xd9";
+unsigned char rsa_e1[] =
+ "\x45\x20\x96\x5e\x1b\x28\x68\x34\x46\xf1\x06\x6b\x09\x28\xc1\xc5\xfc\xd3\x0a\xa6\x43\x65\x7b\x65\xf3\x4e\xf2\x98\x28\xa9\x80\x99\xba\xd0\xb8\x80\xb7\x42\x4b\xaf\x82\xe2\xb9\xc0\x2c\x31\x9c\xfa\xfa\x3f\xaa\xb9\x06\xd2\x6a\x46\xc5\x08\x00\x81\xf1\x22\xd5\xd5";
+unsigned char rsa_e2[] =
+ "\x00\xa6\x50\x60\xa7\xfe\x10\xf3\x6d\x9e\x6b\x5a\xfe\xb4\x4a\x2a\xfc\x92\xb2\x2d\xc6\x41\x96\x4d\xf8\x3b\x77\xab\x4a\xf4\xf7\x85\xe0\x79\x3b\x00\xaa\xba\xae\x8d\x53\x5f\x3e\x14\xcc\x78\xfe\x2a\x11\x50\x57\xfe\x25\x57\xd9\xc9\x8c\x4d\x28\x77\xc3\x7c\xfc\x31\xa1";
+
+unsigned char ecc_x[] =
+ "\x3c\x15\x6f\x1d\x48\x3e\x64\x59\x13\x2c\x6d\x04\x1a\x38\x0d\x30\x5c\xe4\x3f\x55\xcb\xd9\x17\x15\x46\x72\x71\x92\xc1\xf8\xc6\x33";
+unsigned char ecc_y[] =
+ "\x3d\x04\x2e\xc8\xc1\x0f\xc0\x50\x04\x7b\x9f\xc9\x48\xb5\x40\xfa\x6f\x93\x82\x59\x61\x5e\x72\x57\xcb\x83\x06\xbd\xcc\x82\x94\xc1";
+unsigned char ecc_k[] =
+ "\x00\xfd\x2b\x00\x80\xf3\x36\x5f\x11\x32\x65\xe3\x8d\x30\x33\x3b\x47\xf5\xce\xf8\x13\xe5\x4c\xc2\xcf\xfd\xe8\x05\x6a\xca\xc9\x41\xb1";
+
+unsigned char false_ed25519_x[] =
+ "\xac\xac\x9a\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x84\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
+unsigned char ed25519_x[] =
+ "\xab\xaf\x98\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x86\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
+unsigned char ed25519_k[] =
+ "\x1c\xa9\x23\xdc\x35\xa8\xfd\xd6\x2d\xa8\x98\xb9\x60\x7b\xce\x10\x3d\xf4\x64\xc6\xe5\x4b\x0a\x65\x56\x6a\x3c\x73\x65\x51\xa2\x2f";
+
+unsigned char gost_x[] =
+ "\xd0\xbb\xe9\xf4\xc6\xa8\x60\x3c\x73\x91\x44\x55\xcf\xbd\x50\xdd\x2c\x3d\x5a\xbc\x1a\xd8\x5e\x3c\xdf\x10\xdd\xd2\x63\x88\x0f\xc0";
+unsigned char gost_y[] =
+ "\x8a\xec\x96\x3c\x0b\xc8\x33\xff\x57\x5f\x66\x78\x94\x39\xb4\xf5\x24\xc6\xba\x86\x41\xac\x43\x21\x6f\x3c\xb0\xfa\x56\xbd\x5b\x37";
+unsigned char gost_k[] =
+ "\x47\x59\x41\x2c\x8a\xf8\x58\x1a\x67\xe0\xc3\x82\x1f\xca\x31\x19\x66\xf9\xd8\x43\xcd\x2f\x78\x23\x34\x98\x90\xb8\x14\x2e\x7f\xa5";
+
+gnutls_datum_t _dsa_p = { dsa_p, sizeof(dsa_p) - 1 };
+gnutls_datum_t _dsa_q = { dsa_q, sizeof(dsa_q) - 1 };
+gnutls_datum_t _dsa_g = { dsa_g, sizeof(dsa_g) - 1 };
+gnutls_datum_t _dsa_y = { dsa_y, sizeof(dsa_y) - 1 };
+gnutls_datum_t _dsa_x = { dsa_x, sizeof(dsa_x) - 1 };
+
+gnutls_datum_t _rsa_m = { rsa_m, sizeof(rsa_m) - 1 };
+gnutls_datum_t _rsa_e = { rsa_e, sizeof(rsa_e) - 1 };
+gnutls_datum_t _rsa_d = { rsa_d, sizeof(rsa_d) - 1 };
+gnutls_datum_t _rsa_p = { rsa_p, sizeof(rsa_p) - 1 };
+gnutls_datum_t _rsa_q = { rsa_q, sizeof(rsa_q) - 1 };
+gnutls_datum_t _rsa_u = { rsa_u, sizeof(rsa_u) - 1 };
+gnutls_datum_t _rsa_e1 = { rsa_e1, sizeof(rsa_e1) - 1 };
+gnutls_datum_t _rsa_e2 = { rsa_e2, sizeof(rsa_e2) - 1 };
+
+gnutls_datum_t _ecc_x = { ecc_x, sizeof(ecc_x) - 1 };
+gnutls_datum_t _ecc_y = { ecc_y, sizeof(ecc_y) - 1 };
+gnutls_datum_t _ecc_k = { ecc_k, sizeof(ecc_k) - 1 };
+
+gnutls_datum_t _false_ed25519_x =
+ { false_ed25519_x, sizeof(false_ed25519_x) - 1 };
+gnutls_datum_t _ed25519_x = { ed25519_x, sizeof(ed25519_x) - 1 };
+gnutls_datum_t _ed25519_k = { ed25519_k, sizeof(ed25519_k) - 1 };
+
+gnutls_datum_t _gost_x = { gost_x, sizeof(gost_x) - 1 };
+gnutls_datum_t _gost_y = { gost_y, sizeof(gost_y) - 1 };
+gnutls_datum_t _gost_k = { gost_k, sizeof(gost_k) - 1 };
static
int check_dsa(void)
@@ -98,11 +120,15 @@ int check_dsa(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_import_dsa_raw(key, &_dsa_p, &_dsa_q, &_dsa_g, &_dsa_y, &_dsa_x);
+ ret =
+ gnutls_x509_privkey_import_dsa_raw(key, &_dsa_p, &_dsa_q, &_dsa_g,
+ &_dsa_y, &_dsa_x);
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0, &out);
+ ret =
+ gnutls_x509_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0,
+ &out);
if (ret < 0 || out.size == 0)
fail("error in pkcs8 export\n");
gnutls_free(out.data);
@@ -126,11 +152,16 @@ int check_rsa(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_import_rsa_raw2(key, &_rsa_m, &_rsa_e, &_rsa_d, &_rsa_p, &_rsa_q, &_rsa_u, &_rsa_e1, &_rsa_e2);
+ ret =
+ gnutls_x509_privkey_import_rsa_raw2(key, &_rsa_m, &_rsa_e, &_rsa_d,
+ &_rsa_p, &_rsa_q, &_rsa_u,
+ &_rsa_e1, &_rsa_e2);
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0, &out);
+ ret =
+ gnutls_x509_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0,
+ &out);
if (ret < 0 || out.size == 0)
fail("error in pkcs8 export\n");
gnutls_free(out.data);
@@ -154,11 +185,15 @@ int check_ed25519(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519, &_ed25519_x, NULL, &_ed25519_k);
+ ret =
+ gnutls_x509_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519,
+ &_ed25519_x, NULL, &_ed25519_k);
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0, &out);
+ ret =
+ gnutls_x509_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0,
+ &out);
if (ret < 0 || out.size == 0)
fail("error in pkcs8 export\n");
gnutls_free(out.data);
@@ -183,11 +218,18 @@ int check_gost(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_import_gost_raw(key, GNUTLS_ECC_CURVE_GOST256CPXA, GNUTLS_DIG_GOSTR_94, GNUTLS_GOST_PARAMSET_CP_A, &_gost_x, &_gost_y, &_gost_k);
+ ret =
+ gnutls_x509_privkey_import_gost_raw(key,
+ GNUTLS_ECC_CURVE_GOST256CPXA,
+ GNUTLS_DIG_GOSTR_94,
+ GNUTLS_GOST_PARAMSET_CP_A,
+ &_gost_x, &_gost_y, &_gost_k);
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0, &out);
+ ret =
+ gnutls_x509_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0,
+ &out);
if (ret < 0 || out.size == 0)
fail("error in pkcs8 export\n");
gnutls_free(out.data);
@@ -212,11 +254,15 @@ int check_ecc(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_SECP256R1, &_ecc_x, &_ecc_y, &_ecc_k);
+ ret =
+ gnutls_x509_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_SECP256R1,
+ &_ecc_x, &_ecc_y, &_ecc_k);
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_PEM, NULL, 0, &out);
+ ret =
+ gnutls_x509_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_PEM, NULL, 0,
+ &out);
if (ret < 0 || out.size == 0)
fail("error in pkcs8 export\n");
diff --git a/tests/key-import-export.c b/tests/key-import-export.c
index 4bd9c044a7..fcc0c4f54f 100644
--- a/tests/key-import-export.c
+++ b/tests/key-import-export.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -51,7 +51,7 @@ static char rsa_key_pem[] =
"sWZGfbnU3ryjvkb6YuFjgtzbZDZHWQCo8/cOtOBmPdk=\n"
"-----END RSA PRIVATE KEY-----\n";
-const gnutls_datum_t rsa_key = { (void*)rsa_key_pem,
+const gnutls_datum_t rsa_key = { (void *)rsa_key_pem,
sizeof(rsa_key_pem)
};
@@ -64,65 +64,90 @@ static void dump(const char *name, unsigned char *buf, int buf_size)
fprintf(stderr, "\n");
}
-unsigned char dsa_p[] = "\x00\xb9\x84\xf5\x5a\x81\xbe\x1a\x0d\xc5\x8a\x73\x8f\x0c\x9b\x2f\x9b\xb6\x0e\x4b\xc3\x74\x1a\x7f\x64\xad\x9d\xf3\x28\xc5\xa0\x47\xbc\x9b\x57\x56\xf1\x97\xd5\x7e\x37\x03\xe9\xf2\x4c\xf4\xe3\x8b\x7f\x30\xa3\x5d\x2f\xbb\xa1\xa2\x37\xc2\xea\x35\x8f\x1f\xb1\x5f\xa6\xa2\x5f\x01\xf1\x23\x36\x2b\xe4\x4f\x2f\x2d\xdd\x9d\xd5\x3a\xa6\x39\xaf\x7a\x51\x7c\xd2\x25\x8e\x97\x74\xcf\x1e\xc5\x7b\x4b\x76\x43\x81\x07\x1f\x06\x14\xb8\x6e\x58\x12\xe1\x90\xe2\x37\x6f\xd2\x1b\xec\x68\xc5\x58\xe2\xe6\x30\xe0\x6a\x5e\x2c\x63\x78\xec\x07";
-unsigned char dsa_q[] = "\x00\x9f\x56\x8c\x48\x64\x2f\xfe\x8d\xaa\x7a\x6d\x96\xdb\x04\x5d\x16\xef\x08\xa5\x71";
-unsigned char dsa_g[] = "\x62\x06\x7e\xe4\x5c\x76\x08\xb7\x46\x1a\x5d\xd7\x97\xd4\x2a\x21\xfb\x1f\x31\xc9\xd2\xf4\xfa\x39\xd8\x27\xd1\x9b\xfc\x27\x5d\xa7\x0a\xa7\x1a\xfc\x53\xc1\x2f\x43\xc2\x37\xc8\x85\x7f\x3d\x4c\xab\x5d\x81\x32\xfb\x1d\x5e\x1e\x54\x11\x16\x20\xc6\x80\x5a\xd9\x8c\x9b\x43\xf0\xdd\x6b\xa0\xf4\xc3\xf2\x8a\x9c\x39\xd2\x1c\x7b\x0f\xef\xfa\x28\x93\x8f\xd2\xa1\x22\xeb\xdc\xe0\x8a\x8b\xad\x28\x0e\xcf\xef\x09\x85\xe9\x36\xbd\x8b\x7a\x50\xd5\x7b\xf7\x25\x0d\x6c\x60\x11\xc4\xef\x70\x90\xcf\xd6\x1b\xeb\xbb\x8e\xc6\x3e\x3a\x97";
-unsigned char dsa_y[] = "\x0f\x8a\x87\x57\xf2\xd1\xc2\xdc\xac\xdf\x4b\x8b\x0f\x8b\xba\x29\xf7\xe1\x03\xe4\x55\xfa\xb2\x98\x07\xd6\xfd\x12\xb1\x80\xbc\xf5\xba\xb4\x50\xd4\x7f\xa0\x0e\x43\xe7\x9f\xc9\x78\x11\x5f\xe5\xe4\x0c\x2c\x6b\x6a\xa4\x35\xdc\xbd\x54\xe5\x60\x36\x9a\x31\xd1\x8a\x59\x6e\x6b\x1c\xba\xbd\x2e\xba\xeb\x7c\x87\xef\xda\xc8\xdd\xa1\xeb\xa4\x83\xe6\x8b\xad\xfa\xfa\x8e\x5b\xd7\x37\xc8\x32\x3e\x96\xc2\x3e\xf4\x43\xda\x7d\x91\x02\x0f\xb7\xbc\xf8\xef\x8f\xf7\x41\x00\x5e\x96\xdf\x0f\x08\x96\xdc\xea\xb2\xe9\x06\x82\xaf\xd2\x2f";
-unsigned char dsa_x[] = "\x4b\x9f\xeb\xff\x6c\x9a\x02\x83\x41\x5e\x37\x81\x8e\x00\x86\x31\xe8\xb6\x9b\xc1";
-
-unsigned char rsa_m[] = "\x00\xbb\x66\x43\xf5\xf2\xc5\xd7\xb6\x8c\xcc\xc5\xdf\xf5\x88\x3b\xb1\xc9\x4b\x6a\x0e\xa1\xad\x20\x50\x40\x08\x80\xa1\x4f\x5c\xa3\xd0\xf8\x6c\xcf\xe6\x3c\xf7\xec\x04\x76\x13\x17\x8b\x64\x89\x22\x5b\xc0\xdd\x53\x7c\x3b\xed\x7c\x04\xbb\x80\xb9\x28\xbe\x8e\x9b\xc6\x8e\xa0\xa5\x12\xcb\xf5\x57\x1e\xa2\xe7\xbb\xb7\x33\x49\x9f\xe3\xbb\x4a\xae\x6a\x4d\x68\xff\xc9\x11\xe2\x32\x8d\xce\x3d\x80\x0b\x8d\x75\xef\xd8\x00\x81\x8f\x28\x04\x03\xa0\x22\x8d\x61\x04\x07\xfa\xb6\x37\x7d\x21\x07\x49\xd2\x09\x61\x69\x98\x90\xa3\x58\xa9";
+unsigned char dsa_p[] =
+ "\x00\xb9\x84\xf5\x5a\x81\xbe\x1a\x0d\xc5\x8a\x73\x8f\x0c\x9b\x2f\x9b\xb6\x0e\x4b\xc3\x74\x1a\x7f\x64\xad\x9d\xf3\x28\xc5\xa0\x47\xbc\x9b\x57\x56\xf1\x97\xd5\x7e\x37\x03\xe9\xf2\x4c\xf4\xe3\x8b\x7f\x30\xa3\x5d\x2f\xbb\xa1\xa2\x37\xc2\xea\x35\x8f\x1f\xb1\x5f\xa6\xa2\x5f\x01\xf1\x23\x36\x2b\xe4\x4f\x2f\x2d\xdd\x9d\xd5\x3a\xa6\x39\xaf\x7a\x51\x7c\xd2\x25\x8e\x97\x74\xcf\x1e\xc5\x7b\x4b\x76\x43\x81\x07\x1f\x06\x14\xb8\x6e\x58\x12\xe1\x90\xe2\x37\x6f\xd2\x1b\xec\x68\xc5\x58\xe2\xe6\x30\xe0\x6a\x5e\x2c\x63\x78\xec\x07";
+unsigned char dsa_q[] =
+ "\x00\x9f\x56\x8c\x48\x64\x2f\xfe\x8d\xaa\x7a\x6d\x96\xdb\x04\x5d\x16\xef\x08\xa5\x71";
+unsigned char dsa_g[] =
+ "\x62\x06\x7e\xe4\x5c\x76\x08\xb7\x46\x1a\x5d\xd7\x97\xd4\x2a\x21\xfb\x1f\x31\xc9\xd2\xf4\xfa\x39\xd8\x27\xd1\x9b\xfc\x27\x5d\xa7\x0a\xa7\x1a\xfc\x53\xc1\x2f\x43\xc2\x37\xc8\x85\x7f\x3d\x4c\xab\x5d\x81\x32\xfb\x1d\x5e\x1e\x54\x11\x16\x20\xc6\x80\x5a\xd9\x8c\x9b\x43\xf0\xdd\x6b\xa0\xf4\xc3\xf2\x8a\x9c\x39\xd2\x1c\x7b\x0f\xef\xfa\x28\x93\x8f\xd2\xa1\x22\xeb\xdc\xe0\x8a\x8b\xad\x28\x0e\xcf\xef\x09\x85\xe9\x36\xbd\x8b\x7a\x50\xd5\x7b\xf7\x25\x0d\x6c\x60\x11\xc4\xef\x70\x90\xcf\xd6\x1b\xeb\xbb\x8e\xc6\x3e\x3a\x97";
+unsigned char dsa_y[] =
+ "\x0f\x8a\x87\x57\xf2\xd1\xc2\xdc\xac\xdf\x4b\x8b\x0f\x8b\xba\x29\xf7\xe1\x03\xe4\x55\xfa\xb2\x98\x07\xd6\xfd\x12\xb1\x80\xbc\xf5\xba\xb4\x50\xd4\x7f\xa0\x0e\x43\xe7\x9f\xc9\x78\x11\x5f\xe5\xe4\x0c\x2c\x6b\x6a\xa4\x35\xdc\xbd\x54\xe5\x60\x36\x9a\x31\xd1\x8a\x59\x6e\x6b\x1c\xba\xbd\x2e\xba\xeb\x7c\x87\xef\xda\xc8\xdd\xa1\xeb\xa4\x83\xe6\x8b\xad\xfa\xfa\x8e\x5b\xd7\x37\xc8\x32\x3e\x96\xc2\x3e\xf4\x43\xda\x7d\x91\x02\x0f\xb7\xbc\xf8\xef\x8f\xf7\x41\x00\x5e\x96\xdf\x0f\x08\x96\xdc\xea\xb2\xe9\x06\x82\xaf\xd2\x2f";
+unsigned char dsa_x[] =
+ "\x4b\x9f\xeb\xff\x6c\x9a\x02\x83\x41\x5e\x37\x81\x8e\x00\x86\x31\xe8\xb6\x9b\xc1";
+
+unsigned char rsa_m[] =
+ "\x00\xbb\x66\x43\xf5\xf2\xc5\xd7\xb6\x8c\xcc\xc5\xdf\xf5\x88\x3b\xb1\xc9\x4b\x6a\x0e\xa1\xad\x20\x50\x40\x08\x80\xa1\x4f\x5c\xa3\xd0\xf8\x6c\xcf\xe6\x3c\xf7\xec\x04\x76\x13\x17\x8b\x64\x89\x22\x5b\xc0\xdd\x53\x7c\x3b\xed\x7c\x04\xbb\x80\xb9\x28\xbe\x8e\x9b\xc6\x8e\xa0\xa5\x12\xcb\xf5\x57\x1e\xa2\xe7\xbb\xb7\x33\x49\x9f\xe3\xbb\x4a\xae\x6a\x4d\x68\xff\xc9\x11\xe2\x32\x8d\xce\x3d\x80\x0b\x8d\x75\xef\xd8\x00\x81\x8f\x28\x04\x03\xa0\x22\x8d\x61\x04\x07\xfa\xb6\x37\x7d\x21\x07\x49\xd2\x09\x61\x69\x98\x90\xa3\x58\xa9";
unsigned char rsa_e[] = "\x01\x00\x01";
-unsigned char rsa_d[] = "\x0e\x99\x80\x44\x6e\x42\x43\x14\xbe\x01\xeb\x0d\x90\x69\xa9\x6a\xe7\xa9\x88\x2c\xf5\x24\x11\x7f\x27\x09\xf2\x89\x7e\xaf\x13\x35\x21\xd1\x8a\x5d\xdf\xd4\x99\xce\xdc\x2b\x0f\x1b\xc5\x3c\x98\xd0\x68\xa5\x65\x8e\x69\x75\xce\x42\x69\x20\x35\x6c\xaa\xf1\xdd\xc9\x57\x6c\x7b\xc3\x3e\x42\x7e\xa1\xc3\x8c\x76\xa7\x9a\xe8\x81\xdb\xe1\x84\x82\xf5\x99\xd5\xa8\xee\x35\x9e\x54\x94\xc5\x44\xa0\x7b\xcc\xb7\x4c\x3e\xcd\xf2\x49\xdb\x5c\x21\x06\x85\xf6\x75\x00\x43\x62\x89\x12\xf9\x5d\x90\xed\xe6\xfd\xb4\x49\x14\x4a\x79\xe2\x4d";
-unsigned char rsa_p[] = "\x00\xd8\xcb\xe4\x65\x4e\x6c\x11\x0f\xa8\x72\xed\x4b\x4c\x8d\x1d\x07\xdc\x24\x99\x25\xe4\x3c\xb2\xf3\x02\xc4\x72\xe6\x3a\x5b\x86\xf4\x7d\x54\x2a\x4e\x79\x64\x16\x1f\x45\x3b\x17\x9e\x2a\x94\x90\x90\x59\xe7\x0b\x95\xd4\xbf\xa9\x47\xd1\x0a\x71\xaf\x3d\x6b\xed\x55";
-unsigned char rsa_q[] = "\x00\xdd\x49\x81\x7a\x5c\x04\xbf\x6b\xbd\x70\x05\x35\x42\x32\xa3\x9b\x08\xee\xd4\x98\x17\x6e\xb8\xc4\xa2\x12\xbe\xdc\x1e\x72\xd0\x44\x84\x5c\xf0\x30\x35\x04\xfd\x4e\xb0\xcc\xd6\x6f\x40\xcb\x16\x13\x58\xbc\x57\xf7\x77\x48\xe5\x0c\x0d\x14\x9b\x66\x6e\xd8\xde\x05";
-unsigned char rsa_u[] = "\x4a\x74\x5c\x95\x83\x54\xa3\xb0\x71\x35\xba\x02\x3a\x7d\x4a\x8c\x2d\x9a\x26\x77\x60\x36\x28\xd4\xb1\x7d\x8a\x06\xf8\x89\xa2\xef\xb1\x66\x46\x7d\xb9\xd4\xde\xbc\xa3\xbe\x46\xfa\x62\xe1\x63\x82\xdc\xdb\x64\x36\x47\x59\x00\xa8\xf3\xf7\x0e\xb4\xe0\x66\x3d\xd9";
-unsigned char rsa_e1[] = "\x45\x20\x96\x5e\x1b\x28\x68\x34\x46\xf1\x06\x6b\x09\x28\xc1\xc5\xfc\xd3\x0a\xa6\x43\x65\x7b\x65\xf3\x4e\xf2\x98\x28\xa9\x80\x99\xba\xd0\xb8\x80\xb7\x42\x4b\xaf\x82\xe2\xb9\xc0\x2c\x31\x9c\xfa\xfa\x3f\xaa\xb9\x06\xd2\x6a\x46\xc5\x08\x00\x81\xf1\x22\xd5\xd5";
-unsigned char rsa_e2[] = "\x00\xa6\x50\x60\xa7\xfe\x10\xf3\x6d\x9e\x6b\x5a\xfe\xb4\x4a\x2a\xfc\x92\xb2\x2d\xc6\x41\x96\x4d\xf8\x3b\x77\xab\x4a\xf4\xf7\x85\xe0\x79\x3b\x00\xaa\xba\xae\x8d\x53\x5f\x3e\x14\xcc\x78\xfe\x2a\x11\x50\x57\xfe\x25\x57\xd9\xc9\x8c\x4d\x28\x77\xc3\x7c\xfc\x31\xa1";
-
-unsigned char ecc_x[] = "\x3c\x15\x6f\x1d\x48\x3e\x64\x59\x13\x2c\x6d\x04\x1a\x38\x0d\x30\x5c\xe4\x3f\x55\xcb\xd9\x17\x15\x46\x72\x71\x92\xc1\xf8\xc6\x33";
-unsigned char ecc_y[] = "\x3d\x04\x2e\xc8\xc1\x0f\xc0\x50\x04\x7b\x9f\xc9\x48\xb5\x40\xfa\x6f\x93\x82\x59\x61\x5e\x72\x57\xcb\x83\x06\xbd\xcc\x82\x94\xc1";
-unsigned char ecc_k[] = "\x00\xfd\x2b\x00\x80\xf3\x36\x5f\x11\x32\x65\xe3\x8d\x30\x33\x3b\x47\xf5\xce\xf8\x13\xe5\x4c\xc2\xcf\xfd\xe8\x05\x6a\xca\xc9\x41\xb1";
-
-unsigned char false_ed25519_x[] = "\xac\xac\x9a\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x84\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
-unsigned char ed25519_x[] = "\xab\xaf\x98\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x86\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
-unsigned char ed25519_k[] = "\x1c\xa9\x23\xdc\x35\xa8\xfd\xd6\x2d\xa8\x98\xb9\x60\x7b\xce\x10\x3d\xf4\x64\xc6\xe5\x4b\x0a\x65\x56\x6a\x3c\x73\x65\x51\xa2\x2f";
-
-unsigned char gost_x[] = "\xd0\xbb\xe9\xf4\xc6\xa8\x60\x3c\x73\x91\x44\x55\xcf\xbd\x50\xdd\x2c\x3d\x5a\xbc\x1a\xd8\x5e\x3c\xdf\x10\xdd\xd2\x63\x88\x0f\xc0";
-unsigned char gost_y[] = "\x8a\xec\x96\x3c\x0b\xc8\x33\xff\x57\x5f\x66\x78\x94\x39\xb4\xf5\x24\xc6\xba\x86\x41\xac\x43\x21\x6f\x3c\xb0\xfa\x56\xbd\x5b\x37";
-unsigned char gost_k[] = "\x47\x59\x41\x2c\x8a\xf8\x58\x1a\x67\xe0\xc3\x82\x1f\xca\x31\x19\x66\xf9\xd8\x43\xcd\x2f\x78\x23\x34\x98\x90\xb8\x14\x2e\x7f\xa5";
-
-gnutls_datum_t _dsa_p = {dsa_p, sizeof(dsa_p)-1};
-gnutls_datum_t _dsa_q = {dsa_q, sizeof(dsa_q)-1};
-gnutls_datum_t _dsa_g = {dsa_g, sizeof(dsa_g)-1};
-gnutls_datum_t _dsa_y = {dsa_y, sizeof(dsa_y)-1};
-gnutls_datum_t _dsa_x = {dsa_x, sizeof(dsa_x)-1};
-
-gnutls_datum_t _rsa_m = {rsa_m, sizeof(rsa_m)-1};
-gnutls_datum_t _rsa_e = {rsa_e, sizeof(rsa_e)-1};
-gnutls_datum_t _rsa_d = {rsa_d, sizeof(rsa_d)-1};
-gnutls_datum_t _rsa_p = {rsa_p, sizeof(rsa_p)-1};
-gnutls_datum_t _rsa_q = {rsa_q, sizeof(rsa_q)-1};
-gnutls_datum_t _rsa_u = {rsa_u, sizeof(rsa_u)-1};
-gnutls_datum_t _rsa_e1 = {rsa_e1, sizeof(rsa_e1)-1};
-gnutls_datum_t _rsa_e2 = {rsa_e2, sizeof(rsa_e2)-1};
-
-gnutls_datum_t _ecc_x = {ecc_x, sizeof(ecc_x)-1};
-gnutls_datum_t _ecc_y = {ecc_y, sizeof(ecc_y)-1};
-gnutls_datum_t _ecc_k = {ecc_k, sizeof(ecc_k)-1};
-
-gnutls_datum_t _false_ed25519_x = {false_ed25519_x, sizeof(false_ed25519_x)-1};
-gnutls_datum_t _ed25519_x = {ed25519_x, sizeof(ed25519_x)-1};
-gnutls_datum_t _ed25519_k = {ed25519_k, sizeof(ed25519_k)-1};
-
-gnutls_datum_t _gost_x = {gost_x, sizeof(gost_x)-1};
-gnutls_datum_t _gost_y = {gost_y, sizeof(gost_y)-1};
-gnutls_datum_t _gost_k = {gost_k, sizeof(gost_k)-1};
+unsigned char rsa_d[] =
+ "\x0e\x99\x80\x44\x6e\x42\x43\x14\xbe\x01\xeb\x0d\x90\x69\xa9\x6a\xe7\xa9\x88\x2c\xf5\x24\x11\x7f\x27\x09\xf2\x89\x7e\xaf\x13\x35\x21\xd1\x8a\x5d\xdf\xd4\x99\xce\xdc\x2b\x0f\x1b\xc5\x3c\x98\xd0\x68\xa5\x65\x8e\x69\x75\xce\x42\x69\x20\x35\x6c\xaa\xf1\xdd\xc9\x57\x6c\x7b\xc3\x3e\x42\x7e\xa1\xc3\x8c\x76\xa7\x9a\xe8\x81\xdb\xe1\x84\x82\xf5\x99\xd5\xa8\xee\x35\x9e\x54\x94\xc5\x44\xa0\x7b\xcc\xb7\x4c\x3e\xcd\xf2\x49\xdb\x5c\x21\x06\x85\xf6\x75\x00\x43\x62\x89\x12\xf9\x5d\x90\xed\xe6\xfd\xb4\x49\x14\x4a\x79\xe2\x4d";
+unsigned char rsa_p[] =
+ "\x00\xd8\xcb\xe4\x65\x4e\x6c\x11\x0f\xa8\x72\xed\x4b\x4c\x8d\x1d\x07\xdc\x24\x99\x25\xe4\x3c\xb2\xf3\x02\xc4\x72\xe6\x3a\x5b\x86\xf4\x7d\x54\x2a\x4e\x79\x64\x16\x1f\x45\x3b\x17\x9e\x2a\x94\x90\x90\x59\xe7\x0b\x95\xd4\xbf\xa9\x47\xd1\x0a\x71\xaf\x3d\x6b\xed\x55";
+unsigned char rsa_q[] =
+ "\x00\xdd\x49\x81\x7a\x5c\x04\xbf\x6b\xbd\x70\x05\x35\x42\x32\xa3\x9b\x08\xee\xd4\x98\x17\x6e\xb8\xc4\xa2\x12\xbe\xdc\x1e\x72\xd0\x44\x84\x5c\xf0\x30\x35\x04\xfd\x4e\xb0\xcc\xd6\x6f\x40\xcb\x16\x13\x58\xbc\x57\xf7\x77\x48\xe5\x0c\x0d\x14\x9b\x66\x6e\xd8\xde\x05";
+unsigned char rsa_u[] =
+ "\x4a\x74\x5c\x95\x83\x54\xa3\xb0\x71\x35\xba\x02\x3a\x7d\x4a\x8c\x2d\x9a\x26\x77\x60\x36\x28\xd4\xb1\x7d\x8a\x06\xf8\x89\xa2\xef\xb1\x66\x46\x7d\xb9\xd4\xde\xbc\xa3\xbe\x46\xfa\x62\xe1\x63\x82\xdc\xdb\x64\x36\x47\x59\x00\xa8\xf3\xf7\x0e\xb4\xe0\x66\x3d\xd9";
+unsigned char rsa_e1[] =
+ "\x45\x20\x96\x5e\x1b\x28\x68\x34\x46\xf1\x06\x6b\x09\x28\xc1\xc5\xfc\xd3\x0a\xa6\x43\x65\x7b\x65\xf3\x4e\xf2\x98\x28\xa9\x80\x99\xba\xd0\xb8\x80\xb7\x42\x4b\xaf\x82\xe2\xb9\xc0\x2c\x31\x9c\xfa\xfa\x3f\xaa\xb9\x06\xd2\x6a\x46\xc5\x08\x00\x81\xf1\x22\xd5\xd5";
+unsigned char rsa_e2[] =
+ "\x00\xa6\x50\x60\xa7\xfe\x10\xf3\x6d\x9e\x6b\x5a\xfe\xb4\x4a\x2a\xfc\x92\xb2\x2d\xc6\x41\x96\x4d\xf8\x3b\x77\xab\x4a\xf4\xf7\x85\xe0\x79\x3b\x00\xaa\xba\xae\x8d\x53\x5f\x3e\x14\xcc\x78\xfe\x2a\x11\x50\x57\xfe\x25\x57\xd9\xc9\x8c\x4d\x28\x77\xc3\x7c\xfc\x31\xa1";
+
+unsigned char ecc_x[] =
+ "\x3c\x15\x6f\x1d\x48\x3e\x64\x59\x13\x2c\x6d\x04\x1a\x38\x0d\x30\x5c\xe4\x3f\x55\xcb\xd9\x17\x15\x46\x72\x71\x92\xc1\xf8\xc6\x33";
+unsigned char ecc_y[] =
+ "\x3d\x04\x2e\xc8\xc1\x0f\xc0\x50\x04\x7b\x9f\xc9\x48\xb5\x40\xfa\x6f\x93\x82\x59\x61\x5e\x72\x57\xcb\x83\x06\xbd\xcc\x82\x94\xc1";
+unsigned char ecc_k[] =
+ "\x00\xfd\x2b\x00\x80\xf3\x36\x5f\x11\x32\x65\xe3\x8d\x30\x33\x3b\x47\xf5\xce\xf8\x13\xe5\x4c\xc2\xcf\xfd\xe8\x05\x6a\xca\xc9\x41\xb1";
+
+unsigned char false_ed25519_x[] =
+ "\xac\xac\x9a\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x84\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
+unsigned char ed25519_x[] =
+ "\xab\xaf\x98\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x86\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
+unsigned char ed25519_k[] =
+ "\x1c\xa9\x23\xdc\x35\xa8\xfd\xd6\x2d\xa8\x98\xb9\x60\x7b\xce\x10\x3d\xf4\x64\xc6\xe5\x4b\x0a\x65\x56\x6a\x3c\x73\x65\x51\xa2\x2f";
+
+unsigned char gost_x[] =
+ "\xd0\xbb\xe9\xf4\xc6\xa8\x60\x3c\x73\x91\x44\x55\xcf\xbd\x50\xdd\x2c\x3d\x5a\xbc\x1a\xd8\x5e\x3c\xdf\x10\xdd\xd2\x63\x88\x0f\xc0";
+unsigned char gost_y[] =
+ "\x8a\xec\x96\x3c\x0b\xc8\x33\xff\x57\x5f\x66\x78\x94\x39\xb4\xf5\x24\xc6\xba\x86\x41\xac\x43\x21\x6f\x3c\xb0\xfa\x56\xbd\x5b\x37";
+unsigned char gost_k[] =
+ "\x47\x59\x41\x2c\x8a\xf8\x58\x1a\x67\xe0\xc3\x82\x1f\xca\x31\x19\x66\xf9\xd8\x43\xcd\x2f\x78\x23\x34\x98\x90\xb8\x14\x2e\x7f\xa5";
+
+gnutls_datum_t _dsa_p = { dsa_p, sizeof(dsa_p) - 1 };
+gnutls_datum_t _dsa_q = { dsa_q, sizeof(dsa_q) - 1 };
+gnutls_datum_t _dsa_g = { dsa_g, sizeof(dsa_g) - 1 };
+gnutls_datum_t _dsa_y = { dsa_y, sizeof(dsa_y) - 1 };
+gnutls_datum_t _dsa_x = { dsa_x, sizeof(dsa_x) - 1 };
+
+gnutls_datum_t _rsa_m = { rsa_m, sizeof(rsa_m) - 1 };
+gnutls_datum_t _rsa_e = { rsa_e, sizeof(rsa_e) - 1 };
+gnutls_datum_t _rsa_d = { rsa_d, sizeof(rsa_d) - 1 };
+gnutls_datum_t _rsa_p = { rsa_p, sizeof(rsa_p) - 1 };
+gnutls_datum_t _rsa_q = { rsa_q, sizeof(rsa_q) - 1 };
+gnutls_datum_t _rsa_u = { rsa_u, sizeof(rsa_u) - 1 };
+gnutls_datum_t _rsa_e1 = { rsa_e1, sizeof(rsa_e1) - 1 };
+gnutls_datum_t _rsa_e2 = { rsa_e2, sizeof(rsa_e2) - 1 };
+
+gnutls_datum_t _ecc_x = { ecc_x, sizeof(ecc_x) - 1 };
+gnutls_datum_t _ecc_y = { ecc_y, sizeof(ecc_y) - 1 };
+gnutls_datum_t _ecc_k = { ecc_k, sizeof(ecc_k) - 1 };
+
+gnutls_datum_t _false_ed25519_x =
+ { false_ed25519_x, sizeof(false_ed25519_x) - 1 };
+gnutls_datum_t _ed25519_x = { ed25519_x, sizeof(ed25519_x) - 1 };
+gnutls_datum_t _ed25519_k = { ed25519_k, sizeof(ed25519_k) - 1 };
+
+gnutls_datum_t _gost_x = { gost_x, sizeof(gost_x) - 1 };
+gnutls_datum_t _gost_y = { gost_y, sizeof(gost_y) - 1 };
+gnutls_datum_t _gost_k = { gost_k, sizeof(gost_k) - 1 };
unsigned char ecc_params[] = "\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07";
-unsigned char ecc_point[] = "\x04\x41\x04\x3c\x15\x6f\x1d\x48\x3e\x64\x59\x13\x2c\x6d\x04\x1a\x38\x0d\x30\x5c\xe4\x3f\x55\xcb\xd9\x17\x15\x46\x72\x71\x92\xc1\xf8\xc6\x33\x3d\x04\x2e\xc8\xc1\x0f\xc0\x50\x04\x7b\x9f\xc9\x48\xb5\x40\xfa\x6f\x93\x82\x59\x61\x5e\x72\x57\xcb\x83\x06\xbd\xcc\x82\x94\xc1";
+unsigned char ecc_point[] =
+ "\x04\x41\x04\x3c\x15\x6f\x1d\x48\x3e\x64\x59\x13\x2c\x6d\x04\x1a\x38\x0d\x30\x5c\xe4\x3f\x55\xcb\xd9\x17\x15\x46\x72\x71\x92\xc1\xf8\xc6\x33\x3d\x04\x2e\xc8\xc1\x0f\xc0\x50\x04\x7b\x9f\xc9\x48\xb5\x40\xfa\x6f\x93\x82\x59\x61\x5e\x72\x57\xcb\x83\x06\xbd\xcc\x82\x94\xc1";
-static int _gnutls_privkey_export2_pkcs8(gnutls_privkey_t key, gnutls_x509_crt_fmt_t f,
- const char *password, unsigned flags, gnutls_datum_t *out)
+static int _gnutls_privkey_export2_pkcs8(gnutls_privkey_t key,
+ gnutls_x509_crt_fmt_t f,
+ const char *password, unsigned flags,
+ gnutls_datum_t * out)
{
gnutls_x509_privkey_t xkey;
int ret;
@@ -131,7 +156,7 @@ static int _gnutls_privkey_export2_pkcs8(gnutls_privkey_t key, gnutls_x509_crt_f
if (ret < 0)
fail("error in gnutls_privkey_export_x509\n");
- assert(gnutls_x509_privkey_fix(xkey)>=0);
+ assert(gnutls_x509_privkey_fix(xkey) >= 0);
ret = gnutls_x509_privkey_export2_pkcs8(xkey, f, password, 0, out);
gnutls_x509_privkey_deinit(xkey);
@@ -140,7 +165,8 @@ static int _gnutls_privkey_export2_pkcs8(gnutls_privkey_t key, gnutls_x509_crt_f
}
#define CMP(name, dat, v) cmp(name, __LINE__, dat, v, sizeof(v)-1)
-static int cmp(const char *name, int line, gnutls_datum_t *v1, unsigned char *v2, unsigned size)
+static int cmp(const char *name, int line, gnutls_datum_t * v1,
+ unsigned char *v2, unsigned size)
{
if (size != v1->size) {
fprintf(stderr, "error in %s:%d size\n", name, line);
@@ -160,12 +186,13 @@ static int cmp(const char *name, int line, gnutls_datum_t *v1, unsigned char *v2
/* leading zero on v2 is ignored */
#define CMP_NO_LZ(name, dat, v) cmp_no_lz(name, __LINE__, dat, v, sizeof(v)-1)
-static int cmp_no_lz(const char *name, int line, gnutls_datum_t *v1, unsigned char *i2, unsigned size)
+static int cmp_no_lz(const char *name, int line, gnutls_datum_t * v1,
+ unsigned char *i2, unsigned size)
{
gnutls_datum_t v2;
if (size > 0 && i2[0] == 0) {
v2.data = &i2[1];
- v2.size = size-1;
+ v2.size = size - 1;
} else {
v2.data = i2;
v2.size = size;
@@ -231,7 +258,9 @@ int check_x509_privkey(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_export_rsa_raw2(key, &m, &e, &d, &p, &q, &u, &e1, &e2);
+ ret =
+ gnutls_x509_privkey_export_rsa_raw2(key, &m, &e, &d, &p, &q, &u,
+ &e1, &e2);
if (ret < 0)
fail("error\n");
@@ -258,7 +287,9 @@ int check_x509_privkey(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_x509_privkey_import(key, &server_ecc_key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_privkey_import(key, &server_ecc_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("error\n");
@@ -284,19 +315,16 @@ int check_x509_privkey(void)
static
int check_privkey_import_export(void)
{
- static const struct rsa_privkey_opt_args
- {
+ static const struct rsa_privkey_opt_args {
gnutls_datum_t *_u, *_e1, *_e2;
- }
- rsa_opt_args[] =
- {
- { NULL, NULL, NULL },
- { NULL, &_rsa_e1, &_rsa_e2 },
- { NULL, &_rsa_e1, NULL },
- { NULL, NULL, &_rsa_e2 },
- { &_rsa_u, NULL, NULL },
- { &_rsa_u, &_rsa_e1, NULL },
- { &_rsa_u, NULL, &_rsa_e2 },
+ } rsa_opt_args[] = {
+ {NULL, NULL, NULL},
+ {NULL, &_rsa_e1, &_rsa_e2},
+ {NULL, &_rsa_e1, NULL},
+ {NULL, NULL, &_rsa_e2},
+ {&_rsa_u, NULL, NULL},
+ {&_rsa_u, &_rsa_e1, NULL},
+ {&_rsa_u, NULL, &_rsa_e2},
};
gnutls_privkey_t key;
gnutls_datum_t p, q, g, y, x;
@@ -315,7 +343,9 @@ int check_privkey_import_export(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_dsa_raw(key, &_dsa_p, &_dsa_q, &_dsa_g, &_dsa_y, &_dsa_x);
+ ret =
+ gnutls_privkey_import_dsa_raw(key, &_dsa_p, &_dsa_q, &_dsa_g,
+ &_dsa_y, &_dsa_x);
if (ret < 0)
fail("error\n");
@@ -334,7 +364,9 @@ int check_privkey_import_export(void)
gnutls_free(y.data);
gnutls_free(x.data);
- ret = gnutls_privkey_export_dsa_raw2(key, &p, &q, &g, &y, &x, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_privkey_export_dsa_raw2(key, &p, &q, &g, &y, &x,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
@@ -355,7 +387,9 @@ int check_privkey_import_export(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_dsa_raw(key, &_dsa_p, &_dsa_q, &_dsa_g, NULL, &_dsa_x);
+ ret =
+ gnutls_privkey_import_dsa_raw(key, &_dsa_p, &_dsa_q, &_dsa_g, NULL,
+ &_dsa_x);
if (ret < 0)
fail("error\n");
@@ -378,13 +412,17 @@ int check_privkey_import_export(void)
/* RSA */
/* Optional arguments */
- for (i = 0; i < sizeof(rsa_opt_args) / sizeof(rsa_opt_args[0]); i++)
- {
+ for (i = 0; i < sizeof(rsa_opt_args) / sizeof(rsa_opt_args[0]); i++) {
ret = gnutls_privkey_init(&key);
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_rsa_raw(key, &_rsa_m, &_rsa_e, &_rsa_d, &_rsa_p, &_rsa_q, rsa_opt_args[i]._u, rsa_opt_args[i]._e1, rsa_opt_args[i]._e2);
+ ret =
+ gnutls_privkey_import_rsa_raw(key, &_rsa_m, &_rsa_e,
+ &_rsa_d, &_rsa_p, &_rsa_q,
+ rsa_opt_args[i]._u,
+ rsa_opt_args[i]._e1,
+ rsa_opt_args[i]._e2);
if (ret < 0)
fail("error\n");
@@ -396,11 +434,15 @@ int check_privkey_import_export(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_rsa_raw(key, &_rsa_m, &_rsa_e, NULL, &_rsa_p, &_rsa_q, NULL, NULL, NULL);
+ ret =
+ gnutls_privkey_import_rsa_raw(key, &_rsa_m, &_rsa_e, NULL, &_rsa_p,
+ &_rsa_q, NULL, NULL, NULL);
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_export_rsa_raw2(key, &m, &e, &d, &p, &q, &u, &e1, &e2, 0);
+ ret =
+ gnutls_privkey_export_rsa_raw2(key, &m, &e, &d, &p, &q, &u, &e1,
+ &e2, 0);
if (ret < 0)
fail("error\n");
@@ -428,11 +470,16 @@ int check_privkey_import_export(void)
fail("error\n");
/* Import/export */
- ret = gnutls_privkey_import_rsa_raw(key, &_rsa_m, &_rsa_e, &_rsa_d, &_rsa_p, &_rsa_q, &_rsa_u, &_rsa_e1, &_rsa_e2);
+ ret =
+ gnutls_privkey_import_rsa_raw(key, &_rsa_m, &_rsa_e, &_rsa_d,
+ &_rsa_p, &_rsa_q, &_rsa_u, &_rsa_e1,
+ &_rsa_e2);
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_export_rsa_raw2(key, &m, &e, &d, &p, &q, &u, &e1, &e2, 0);
+ ret =
+ gnutls_privkey_export_rsa_raw2(key, &m, &e, &d, &p, &q, &u, &e1,
+ &e2, 0);
if (ret < 0)
fail("error\n");
@@ -453,7 +500,9 @@ int check_privkey_import_export(void)
gnutls_free(e1.data);
gnutls_free(e2.data);
- ret = gnutls_privkey_export_rsa_raw2(key, &m, &e, &d, &p, &q, &u, &e1, &e2, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_privkey_export_rsa_raw2(key, &m, &e, &d, &p, &q, &u, &e1,
+ &e2, GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error\n");
@@ -480,7 +529,9 @@ int check_privkey_import_export(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_SECP256R1, &_ecc_x, &_ecc_y, &_ecc_k);
+ ret =
+ gnutls_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_SECP256R1,
+ &_ecc_x, &_ecc_y, &_ecc_k);
if (ret < 0)
fail("error\n");
@@ -499,7 +550,9 @@ int check_privkey_import_export(void)
gnutls_free(y.data);
gnutls_free(p.data);
- ret = gnutls_privkey_export_ecc_raw2(key, &curve, &x, &y, &p, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_privkey_export_ecc_raw2(key, &curve, &x, &y, &p,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error\n");
@@ -521,11 +574,15 @@ int check_privkey_import_export(void)
fail("error\n");
/* test whether an invalid size would fail */
- ret = gnutls_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519, &_rsa_m, NULL, &_rsa_m);
+ ret =
+ gnutls_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519,
+ &_rsa_m, NULL, &_rsa_m);
if (ret != GNUTLS_E_INVALID_REQUEST)
fail("error\n");
- ret = gnutls_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519, &_ed25519_x, NULL, &_ed25519_k);
+ ret =
+ gnutls_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519,
+ &_ed25519_x, NULL, &_ed25519_k);
if (ret < 0)
fail("error\n");
@@ -551,7 +608,9 @@ int check_privkey_import_export(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519, &_false_ed25519_x, NULL, &_ed25519_k);
+ ret =
+ gnutls_privkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519,
+ &_false_ed25519_x, NULL, &_ed25519_k);
if (ret < 0)
fail("error\n");
@@ -567,11 +626,17 @@ int check_privkey_import_export(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_gost_raw(key, GNUTLS_ECC_CURVE_GOST256CPXA, GNUTLS_DIG_GOSTR_94, GNUTLS_GOST_PARAMSET_CP_A, &_gost_x, &_gost_y, &_gost_k);
+ ret =
+ gnutls_privkey_import_gost_raw(key, GNUTLS_ECC_CURVE_GOST256CPXA,
+ GNUTLS_DIG_GOSTR_94,
+ GNUTLS_GOST_PARAMSET_CP_A, &_gost_x,
+ &_gost_y, &_gost_k);
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_export_gost_raw2(key, &curve, &digest, &paramset, &x, &y, &p, 0);
+ ret =
+ gnutls_privkey_export_gost_raw2(key, &curve, &digest, &paramset, &x,
+ &y, &p, 0);
if (ret < 0)
fail("error\n");
@@ -584,7 +649,8 @@ int check_privkey_import_export(void)
exit(1);
}
if (paramset != GNUTLS_GOST_PARAMSET_CP_A) {
- fprintf(stderr, "unexpected paramset value: %d\n", (int)paramset);
+ fprintf(stderr, "unexpected paramset value: %d\n",
+ (int)paramset);
exit(1);
}
CMP("x", &x, gost_x);
@@ -594,7 +660,9 @@ int check_privkey_import_export(void)
gnutls_free(y.data);
gnutls_free(p.data);
- ret = gnutls_privkey_export_gost_raw2(key, &curve, &digest, &paramset, &x, &y, &p, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_privkey_export_gost_raw2(key, &curve, &digest, &paramset, &x,
+ &y, &p, GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error\n");
@@ -607,7 +675,8 @@ int check_privkey_import_export(void)
exit(1);
}
if (paramset != GNUTLS_GOST_PARAMSET_CP_A) {
- fprintf(stderr, "unexpected paramset value: %d\n", (int)paramset);
+ fprintf(stderr, "unexpected paramset value: %d\n",
+ (int)paramset);
exit(1);
}
CMP_NO_LZ("x", &x, gost_x);
@@ -642,7 +711,9 @@ int check_dsa(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_x509_raw(key, &dsa_key, GNUTLS_X509_FMT_PEM, 0, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &dsa_key, GNUTLS_X509_FMT_PEM,
+ 0, 0);
if (ret < 0)
fail("error\n");
@@ -663,7 +734,9 @@ int check_dsa(void)
gnutls_free(g.data);
gnutls_free(y.data);
- ret = gnutls_pubkey_export_dsa_raw2(pub, &p, &q, &g, &y, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_pubkey_export_dsa_raw2(pub, &p, &q, &g, &y,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error\n");
@@ -690,7 +763,9 @@ int check_dsa(void)
gnutls_free(y.data);
gnutls_free(x.data);
- ret = _gnutls_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0, &x);
+ ret =
+ _gnutls_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0,
+ &x);
if (ret < 0 || x.size == 0)
fail("error in pkcs8 export\n");
gnutls_free(x.data);
@@ -720,7 +795,9 @@ int check_rsa(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_x509_raw(key, &rsa_key, GNUTLS_X509_FMT_PEM, 0, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &rsa_key, GNUTLS_X509_FMT_PEM,
+ 0, 0);
if (ret < 0)
fail("error\n");
@@ -737,7 +814,9 @@ int check_rsa(void)
gnutls_free(m.data);
gnutls_free(e.data);
- ret = gnutls_pubkey_export_rsa_raw2(pub, &m, &e, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_pubkey_export_rsa_raw2(pub, &m, &e,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error\n");
@@ -746,7 +825,9 @@ int check_rsa(void)
gnutls_free(m.data);
gnutls_free(e.data);
- ret = gnutls_privkey_export_rsa_raw(key, &m, &e, &d, &p, &q, &u, &e1, &e2);
+ ret =
+ gnutls_privkey_export_rsa_raw(key, &m, &e, &d, &p, &q, &u, &e1,
+ &e2);
if (ret < 0)
fail("error\n");
@@ -767,7 +848,9 @@ int check_rsa(void)
gnutls_free(e1.data);
gnutls_free(e2.data);
- ret = _gnutls_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0, &m);
+ ret =
+ _gnutls_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0,
+ &m);
if (ret < 0 || m.size == 0)
fail("error in pkcs8 export\n");
gnutls_free(m.data);
@@ -798,7 +881,9 @@ int check_ecc(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_x509_raw(key, &server_ecc_key, GNUTLS_X509_FMT_PEM, 0, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &server_ecc_key,
+ GNUTLS_X509_FMT_PEM, 0, 0);
if (ret < 0)
fail("error\n");
@@ -819,7 +904,9 @@ int check_ecc(void)
gnutls_free(x.data);
gnutls_free(y.data);
- ret = gnutls_pubkey_export_ecc_raw2(pub, &curve, &x, &y, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_pubkey_export_ecc_raw2(pub, &curve, &x, &y,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error\n");
@@ -832,7 +919,6 @@ int check_ecc(void)
gnutls_free(x.data);
gnutls_free(y.data);
-
/* check the private key export */
ret = gnutls_privkey_export_ecc_raw(key, &curve, &x, &y, &k);
if (ret < 0)
@@ -849,7 +935,9 @@ int check_ecc(void)
gnutls_free(y.data);
gnutls_free(k.data);
- ret = _gnutls_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0, &x);
+ ret =
+ _gnutls_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0,
+ &x);
if (ret < 0 || x.size == 0)
fail("error in pkcs8 export\n");
gnutls_free(x.data);
@@ -910,7 +998,9 @@ int check_ed25519(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_x509_raw(key, &server_ca3_eddsa_key, GNUTLS_X509_FMT_PEM, 0, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &server_ca3_eddsa_key,
+ GNUTLS_X509_FMT_PEM, 0, 0);
if (ret < 0)
fail("error\n");
@@ -937,7 +1027,6 @@ int check_ed25519(void)
}
gnutls_free(x.data);
-
/* check the private key export */
ret = gnutls_privkey_export_ecc_raw(key, &curve, &x, NULL, &k);
if (ret < 0)
@@ -961,7 +1050,9 @@ int check_ed25519(void)
fail("expected NULL value in Y\n");
}
- ret = _gnutls_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0, &x);
+ ret =
+ _gnutls_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0,
+ &x);
if (ret < 0 || x.size == 0)
fail("error in pkcs8 export\n");
gnutls_free(x.data);
@@ -1002,7 +1093,9 @@ int check_gost(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_privkey_import_x509_raw(key, &server_ca3_gost01_key, GNUTLS_X509_FMT_PEM, 0, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &server_ca3_gost01_key,
+ GNUTLS_X509_FMT_PEM, 0, 0);
if (ret < 0)
fail("error\n");
@@ -1010,7 +1103,9 @@ int check_gost(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_pubkey_export_gost_raw2(pub, &curve, &digest, &paramset, &x, &y, 0);
+ ret =
+ gnutls_pubkey_export_gost_raw2(pub, &curve, &digest, &paramset, &x,
+ &y, 0);
if (ret < 0)
fail("error\n");
@@ -1023,7 +1118,8 @@ int check_gost(void)
exit(1);
}
if (paramset != GNUTLS_GOST_PARAMSET_CP_A) {
- fprintf(stderr, "unexpected paramset value: %d\n", (int)paramset);
+ fprintf(stderr, "unexpected paramset value: %d\n",
+ (int)paramset);
exit(1);
}
CMP("x", &x, gost_x);
@@ -1031,7 +1127,9 @@ int check_gost(void)
gnutls_free(x.data);
gnutls_free(y.data);
- ret = gnutls_pubkey_export_gost_raw2(pub, &curve, &digest, &paramset, &x, &y, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_pubkey_export_gost_raw2(pub, &curve, &digest, &paramset, &x,
+ &y, GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error\n");
@@ -1044,7 +1142,8 @@ int check_gost(void)
exit(1);
}
if (paramset != GNUTLS_GOST_PARAMSET_CP_A) {
- fprintf(stderr, "unexpected paramset value: %d\n", (int)paramset);
+ fprintf(stderr, "unexpected paramset value: %d\n",
+ (int)paramset);
exit(1);
}
CMP_NO_LZ("x", &x, gost_x);
@@ -1052,9 +1151,10 @@ int check_gost(void)
gnutls_free(x.data);
gnutls_free(y.data);
-
/* check the private key export */
- ret = gnutls_privkey_export_gost_raw2(key, &curve, &digest, &paramset, &x, &y, &k, 0);
+ ret =
+ gnutls_privkey_export_gost_raw2(key, &curve, &digest, &paramset, &x,
+ &y, &k, 0);
if (ret < 0)
fail("error\n");
@@ -1067,7 +1167,8 @@ int check_gost(void)
exit(1);
}
if (paramset != GNUTLS_GOST_PARAMSET_CP_A) {
- fprintf(stderr, "unexpected paramset value: %d\n", (int)paramset);
+ fprintf(stderr, "unexpected paramset value: %d\n",
+ (int)paramset);
exit(1);
}
CMP("x", &x, gost_x);
@@ -1077,7 +1178,9 @@ int check_gost(void)
gnutls_free(y.data);
gnutls_free(k.data);
- ret = _gnutls_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0, &x);
+ ret =
+ _gnutls_privkey_export2_pkcs8(key, GNUTLS_X509_FMT_DER, NULL, 0,
+ &x);
if (ret < 0 || x.size == 0)
fail("error in pkcs8 export\n");
gnutls_free(x.data);
diff --git a/tests/key-material-dtls.c b/tests/key-material-dtls.c
index fb71f2db57..32ea05a913 100644
--- a/tests/key-material-dtls.c
+++ b/tests/key-material-dtls.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -34,17 +34,17 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -68,12 +68,12 @@ static pid_t child;
/* A very basic DTLS client, with anonymous authentication, that negotiates SRTP
*/
-static void dump(const char *name, uint8_t *data, unsigned data_size)
+static void dump(const char *name, uint8_t * data, unsigned data_size)
{
unsigned i;
fprintf(stderr, "%s", name);
- for (i=0;i<data_size;i++)
+ for (i = 0; i < data_size; i++)
fprintf(stderr, "%.2x", (unsigned)data[i]);
fprintf(stderr, "\n");
}
@@ -115,12 +115,12 @@ static void client(int fd)
/* Initialize TLS session
*/
- gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_DATAGRAM);
+ gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM);
/* Use default priorities */
ret = gnutls_priority_set_direct(session,
- "NONE:+VERS-DTLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-DH:+ANON-ECDH:+CURVE-ALL",
- &err);
+ "NONE:+VERS-DTLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-DH:+ANON-ECDH:+CURVE-ALL",
+ &err);
if (ret < 0) {
fail("client: priority set failed (%s): %s\n",
gnutls_strerror(ret), err);
@@ -155,23 +155,25 @@ static void client(int fd)
ret = gnutls_cipher_get(session);
if (ret != GNUTLS_CIPHER_AES_128_CBC) {
- fprintf(stderr, "negotiated unexpected cipher: %s\n", gnutls_cipher_get_name(ret));
+ fprintf(stderr, "negotiated unexpected cipher: %s\n",
+ gnutls_cipher_get_name(ret));
exit(1);
}
ret = gnutls_mac_get(session);
if (ret != GNUTLS_MAC_SHA1) {
- fprintf(stderr, "negotiated unexpected mac: %s\n", gnutls_mac_get_name(ret));
+ fprintf(stderr, "negotiated unexpected mac: %s\n",
+ gnutls_mac_get_name(ret));
exit(1);
}
iv_size = 16;
hash_size = 20;
key_size = 16;
- block_size = 2*hash_size + 2*key_size + 2 *iv_size;
+ block_size = 2 * hash_size + 2 * key_size + 2 * iv_size;
ret = gnutls_prf(session, 13, "key expansion", 1, 0, NULL, block_size,
- (void*)key_material);
+ (void *)key_material);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -180,7 +182,9 @@ static void client(int fd)
p = key_material;
/* check whether the key material matches our calculations */
- ret = gnutls_record_get_state(session, 0, &mac_key, &iv, &cipher_key, wseq_number);
+ ret =
+ gnutls_record_get_state(session, 0, &mac_key, &iv, &cipher_key,
+ wseq_number);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -193,7 +197,9 @@ static void client(int fd)
exit(1);
}
- ret = gnutls_record_get_state(session, 1, &read_mac_key, &read_iv, &read_cipher_key, rseq_number);
+ ret =
+ gnutls_record_get_state(session, 1, &read_mac_key, &read_iv,
+ &read_cipher_key, rseq_number);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -206,36 +212,40 @@ static void client(int fd)
exit(1);
}
- if (hash_size != mac_key.size || memcmp(p, mac_key.data, hash_size) != 0) {
+ if (hash_size != mac_key.size
+ || memcmp(p, mac_key.data, hash_size) != 0) {
dump("MAC:", mac_key.data, mac_key.size);
dump("Block:", key_material, block_size);
fprintf(stderr, "error in %d\n", __LINE__);
exit(1);
}
- p+= hash_size;
+ p += hash_size;
- if (hash_size != read_mac_key.size || memcmp(p, read_mac_key.data, hash_size) != 0) {
+ if (hash_size != read_mac_key.size
+ || memcmp(p, read_mac_key.data, hash_size) != 0) {
dump("MAC:", read_mac_key.data, read_mac_key.size);
dump("Block:", key_material, block_size);
fprintf(stderr, "error in %d\n", __LINE__);
exit(1);
}
- p+= hash_size;
+ p += hash_size;
- if (key_size != cipher_key.size || memcmp(p, cipher_key.data, key_size) != 0) {
+ if (key_size != cipher_key.size
+ || memcmp(p, cipher_key.data, key_size) != 0) {
fprintf(stderr, "error in %d\n", __LINE__);
exit(1);
}
- p+= key_size;
+ p += key_size;
- if (key_size != read_cipher_key.size || memcmp(p, read_cipher_key.data, key_size) != 0) {
+ if (key_size != read_cipher_key.size
+ || memcmp(p, read_cipher_key.data, key_size) != 0) {
fprintf(stderr, "error in %d\n", __LINE__);
exit(1);
}
- p+= key_size;
+ p += key_size;
/* check sequence numbers */
- for (i=0;i<5;i++) {
+ for (i = 0; i < 5; i++) {
ret = gnutls_record_send(session, "hello", 5);
if (ret < 0) {
fail("gnutls_record_send: %s\n", gnutls_strerror(ret));
@@ -243,7 +253,8 @@ static void client(int fd)
}
memset(wseq_number, 0xAA, sizeof(wseq_number));
- ret = gnutls_record_get_state(session, 0, NULL, NULL, NULL, wseq_number);
+ ret =
+ gnutls_record_get_state(session, 0, NULL, NULL, NULL, wseq_number);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -257,7 +268,8 @@ static void client(int fd)
}
memset(rseq_number, 0xAA, sizeof(rseq_number));
- ret = gnutls_record_get_state(session, 1, NULL, NULL, NULL, rseq_number);
+ ret =
+ gnutls_record_get_state(session, 1, NULL, NULL, NULL, rseq_number);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -287,8 +299,7 @@ static void server(int fd)
gnutls_anon_server_credentials_t anoncred;
gnutls_dh_params_t dh_params;
char buf[128];
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
/* this must be called once in the program
*/
@@ -304,13 +315,14 @@ static void server(int fd)
gnutls_dh_params_import_pkcs3(dh_params, &p3, GNUTLS_X509_FMT_PEM);
gnutls_anon_set_server_dh_params(anoncred, dh_params);
- gnutls_init(&session, GNUTLS_SERVER|GNUTLS_DATAGRAM);
+ gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
ret = gnutls_priority_set_direct(session,
- "NORMAL:+VERS-DTLS1.0:+ANON-DH:+ANON-ECDH", NULL);
+ "NORMAL:+VERS-DTLS1.0:+ANON-DH:+ANON-ECDH",
+ NULL);
if (ret < 0) {
fail("server: priority set failed (%s)\n\n",
gnutls_strerror(ret));
@@ -342,7 +354,8 @@ static void server(int fd)
do {
ret = gnutls_record_recv(session, buf, sizeof(buf));
- } while(ret > 0 || ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret > 0 || ret == GNUTLS_E_AGAIN
+ || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("error: %s\n", gnutls_strerror(ret));
diff --git a/tests/key-material-set-dtls.c b/tests/key-material-set-dtls.c
index f2cebdbef3..b6bafbf816 100644
--- a/tests/key-material-set-dtls.c
+++ b/tests/key-material-set-dtls.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -34,18 +34,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -100,13 +100,13 @@ static void client(int fd)
/* Initialize TLS session
*/
- gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_DATAGRAM);
+ gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM);
gnutls_record_set_timeout(session, 10000);
/* Use default priorities */
ret = gnutls_priority_set_direct(session,
- "NONE:+VERS-DTLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-DH:+ANON-ECDH:+CURVE-ALL",
- &err);
+ "NONE:+VERS-DTLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-DH:+ANON-ECDH:+CURVE-ALL",
+ &err);
if (ret < 0) {
fail("client: priority set failed (%s): %s\n",
gnutls_strerror(ret), err);
@@ -141,25 +141,29 @@ static void client(int fd)
ret = gnutls_cipher_get(session);
if (ret != GNUTLS_CIPHER_AES_128_CBC) {
- fprintf(stderr, "negotiated unexpected cipher: %s\n", gnutls_cipher_get_name(ret));
+ fprintf(stderr, "negotiated unexpected cipher: %s\n",
+ gnutls_cipher_get_name(ret));
exit(1);
}
ret = gnutls_mac_get(session);
if (ret != GNUTLS_MAC_SHA1) {
- fprintf(stderr, "negotiated unexpected mac: %s\n", gnutls_mac_get_name(ret));
+ fprintf(stderr, "negotiated unexpected mac: %s\n",
+ gnutls_mac_get_name(ret));
exit(1);
}
/* save state */
- ret = gnutls_record_get_state(session, 0, NULL, NULL, NULL, wseq_number);
+ ret =
+ gnutls_record_get_state(session, 0, NULL, NULL, NULL, wseq_number);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
exit(1);
}
- ret = gnutls_record_get_state(session, 1, NULL, NULL, NULL, rseq_number);
+ ret =
+ gnutls_record_get_state(session, 1, NULL, NULL, NULL, rseq_number);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -167,7 +171,7 @@ static void client(int fd)
}
/* skip past the sliding window */
- for (i=0;i<96;i++) {
+ for (i = 0; i < 96; i++) {
ret = gnutls_record_send(session, "hello", 5);
if (ret < 0) {
fail("gnutls_record_send: %s\n", gnutls_strerror(ret));
@@ -232,8 +236,7 @@ static void server(int fd)
unsigned char rseq_number[8];
unsigned char wseq_number[8];
char buf[128];
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
/* this must be called once in the program
*/
@@ -249,14 +252,15 @@ static void server(int fd)
gnutls_dh_params_import_pkcs3(dh_params, &p3, GNUTLS_X509_FMT_PEM);
gnutls_anon_set_server_dh_params(anoncred, dh_params);
- gnutls_init(&session, GNUTLS_SERVER|GNUTLS_DATAGRAM);
+ gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
gnutls_record_set_timeout(session, 10000);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
ret = gnutls_priority_set_direct(session,
- "NORMAL:+VERS-DTLS1.0:+ANON-DH:+ANON-ECDH", NULL);
+ "NORMAL:+VERS-DTLS1.0:+ANON-DH:+ANON-ECDH",
+ NULL);
if (ret < 0) {
fail("server: priority set failed (%s)\n\n",
gnutls_strerror(ret));
@@ -287,12 +291,14 @@ static void server(int fd)
(gnutls_protocol_get_version(session)));
/* save state */
- ret = gnutls_record_get_state(session, 0, NULL, NULL, NULL, wseq_number);
+ ret =
+ gnutls_record_get_state(session, 0, NULL, NULL, NULL, wseq_number);
if (ret < 0) {
fail("error in %d\n", __LINE__);
}
- ret = gnutls_record_get_state(session, 1, NULL, NULL, NULL, rseq_number);
+ ret =
+ gnutls_record_get_state(session, 1, NULL, NULL, NULL, rseq_number);
if (ret < 0) {
fail("error in %d\n", __LINE__);
}
@@ -309,7 +315,7 @@ static void server(int fd)
ret = gnutls_record_send(session, buf, ret);
}
- } while(ret > 0);
+ } while (ret > 0);
if (ret < 0) {
fail("error: %s\n", gnutls_strerror(ret));
diff --git a/tests/key-openssl.c b/tests/key-openssl.c
index aca384e90c..2120a7d456 100644
--- a/tests/key-openssl.c
+++ b/tests/key-openssl.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -38,33 +38,33 @@ static void tls_log_func(int level, const char *str)
}
static char plain_key[] =
-"-----BEGIN RSA PRIVATE KEY-----\n"
-"MIIEpQIBAAKCAQEA2d3Qs4fYDkzojm9nbaz7vdX2GIAv3stAAmI0MWq7uxWcJ7lz\n"
-"4UCvSh7CFWESMqOPcIymXXZB3rdrG6RQAHhE2YfFFFi0W/5rqcmkiTMnGmAjYy2Q\n"
-"lCU87b18SQgjX27YLygvlbtZrveCgT2rbJYL57Gph+wIi+cJsEUanR/2fd12hL7k\n"
-"RumZNEofamTHQm6Bn47ZhhCdVfs+QkfiMh+LHJM3fFiVusAUhMIJYhml53O+cSrR\n"
-"VgWVdp4za/FdUzmDnSxG4heMHblRMS+UyqtssDZEaVHytiNQXFkuQ/U3v0E+2knR\n"
-"NPKy+s7ZmSISC0qzDn6C5yeJc17Kc91y5RLoZwIDAQABAoIBAQCRXAu5HPOsZufq\n"
-"0K2DYZz9BdqSckR+M8HbVUZZiksDAeIUJwoHyi6qF2eK+B86JiK4Bz+gsBw2ys3t\n"
-"vW2bQqM9N/boIl8D2fZfbCgZWkXGtUonC+mgzk+el4Rq/cEMFVqr6/YDwuKNeJpc\n"
-"PJc5dcsvpTvlcjgpj9bJAvJEz2SYiIUpvtG4WNMGGapVZZPDvWn4/isY+75T5oDf\n"
-"1X5jG0lN9uoUjcuGuThN7gxjwlRkcvEOPHjXc6rxfrWIDdiz/91V46PwpqVDpRrg\n"
-"ig6U7+ckS0Oy2v32x0DaDhwAfDJ2RNc9az6Z+11lmY3LPkjG/p8Klcmgvt4/lwkD\n"
-"OYRC5QGRAoGBAPFdud6nmVt9h1DL0o4R6snm6P3K81Ds765VWVmpzJkK3+bwe4PQ\n"
-"GQQ0I0zN4hXkDMwHETS+EVWllqkK/d4dsE3volYtyTti8zthIATlgSEJ81x/ChAQ\n"
-"vvXxgx+zPUnb1mUwy+X+6urTHe4bxN2ypg6ROIUmT+Hx1ITG40LRRiPTAoGBAOcT\n"
-"WR8DTrj42xbxAUpz9vxJ15ZMwuIpk3ShE6+CWqvaXHF22Ju4WFwRNlW2zVLH6UMt\n"
-"nNfOzyDoryoiu0+0mg0wSmgdJbtCSHoI2GeiAnjGn5i8flQlPQ8bdwwmU6g6I/EU\n"
-"QRbGK/2XLmlrGN52gVy9UX0NsAA5fEOsAJiFj1CdAoGBAN9i3nbq6O2bNVSa/8mL\n"
-"XaD1vGe/oQgh8gaIaYSpuXlfbjCAG+C4BZ81XgJkfj3CbfGbDNqimsqI0fKsAJ/F\n"
-"HHpVMgrOn3L+Np2bW5YMj0Fzwy+1SCvsQ8C+gJwjOLMV6syGp/+6udMSB55rRv3k\n"
-"rPnIf+YDumUke4tTw9wAcgkPAoGASHMkiji7QfuklbjSsslRMyDj21gN8mMevH6U\n"
-"cX7pduBsA5dDqu9NpPAwnQdHsSDE3i868d8BykuqQAfLut3hPylY6vPYlLHfj4Oe\n"
-"dj+xjrSX7YeMBE34qvfth32s1R4FjtzO25keyc/Q2XSew4FcZftlxVO5Txi3AXC4\n"
-"bxnRKXECgYEAva+og7/rK+ZjboJVNxhFrwHp9bXhz4tzrUaWNvJD2vKJ5ZcThHcX\n"
-"zCig8W7eXHLPLDhi9aWZ3kUZ1RLhrFc/6dujtVtU9z2w1tmn1I+4Zi6D6L4DzKdg\n"
-"nMRLFoXufs/qoaJTqa8sQvKa+ceJAF04+gGtw617cuaZdZ3SYRLR2dk=\n"
-"-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEpQIBAAKCAQEA2d3Qs4fYDkzojm9nbaz7vdX2GIAv3stAAmI0MWq7uxWcJ7lz\n"
+ "4UCvSh7CFWESMqOPcIymXXZB3rdrG6RQAHhE2YfFFFi0W/5rqcmkiTMnGmAjYy2Q\n"
+ "lCU87b18SQgjX27YLygvlbtZrveCgT2rbJYL57Gph+wIi+cJsEUanR/2fd12hL7k\n"
+ "RumZNEofamTHQm6Bn47ZhhCdVfs+QkfiMh+LHJM3fFiVusAUhMIJYhml53O+cSrR\n"
+ "VgWVdp4za/FdUzmDnSxG4heMHblRMS+UyqtssDZEaVHytiNQXFkuQ/U3v0E+2knR\n"
+ "NPKy+s7ZmSISC0qzDn6C5yeJc17Kc91y5RLoZwIDAQABAoIBAQCRXAu5HPOsZufq\n"
+ "0K2DYZz9BdqSckR+M8HbVUZZiksDAeIUJwoHyi6qF2eK+B86JiK4Bz+gsBw2ys3t\n"
+ "vW2bQqM9N/boIl8D2fZfbCgZWkXGtUonC+mgzk+el4Rq/cEMFVqr6/YDwuKNeJpc\n"
+ "PJc5dcsvpTvlcjgpj9bJAvJEz2SYiIUpvtG4WNMGGapVZZPDvWn4/isY+75T5oDf\n"
+ "1X5jG0lN9uoUjcuGuThN7gxjwlRkcvEOPHjXc6rxfrWIDdiz/91V46PwpqVDpRrg\n"
+ "ig6U7+ckS0Oy2v32x0DaDhwAfDJ2RNc9az6Z+11lmY3LPkjG/p8Klcmgvt4/lwkD\n"
+ "OYRC5QGRAoGBAPFdud6nmVt9h1DL0o4R6snm6P3K81Ds765VWVmpzJkK3+bwe4PQ\n"
+ "GQQ0I0zN4hXkDMwHETS+EVWllqkK/d4dsE3volYtyTti8zthIATlgSEJ81x/ChAQ\n"
+ "vvXxgx+zPUnb1mUwy+X+6urTHe4bxN2ypg6ROIUmT+Hx1ITG40LRRiPTAoGBAOcT\n"
+ "WR8DTrj42xbxAUpz9vxJ15ZMwuIpk3ShE6+CWqvaXHF22Ju4WFwRNlW2zVLH6UMt\n"
+ "nNfOzyDoryoiu0+0mg0wSmgdJbtCSHoI2GeiAnjGn5i8flQlPQ8bdwwmU6g6I/EU\n"
+ "QRbGK/2XLmlrGN52gVy9UX0NsAA5fEOsAJiFj1CdAoGBAN9i3nbq6O2bNVSa/8mL\n"
+ "XaD1vGe/oQgh8gaIaYSpuXlfbjCAG+C4BZ81XgJkfj3CbfGbDNqimsqI0fKsAJ/F\n"
+ "HHpVMgrOn3L+Np2bW5YMj0Fzwy+1SCvsQ8C+gJwjOLMV6syGp/+6udMSB55rRv3k\n"
+ "rPnIf+YDumUke4tTw9wAcgkPAoGASHMkiji7QfuklbjSsslRMyDj21gN8mMevH6U\n"
+ "cX7pduBsA5dDqu9NpPAwnQdHsSDE3i868d8BykuqQAfLut3hPylY6vPYlLHfj4Oe\n"
+ "dj+xjrSX7YeMBE34qvfth32s1R4FjtzO25keyc/Q2XSew4FcZftlxVO5Txi3AXC4\n"
+ "bxnRKXECgYEAva+og7/rK+ZjboJVNxhFrwHp9bXhz4tzrUaWNvJD2vKJ5ZcThHcX\n"
+ "zCig8W7eXHLPLDhi9aWZ3kUZ1RLhrFc/6dujtVtU9z2w1tmn1I+4Zi6D6L4DzKdg\n"
+ "nMRLFoXufs/qoaJTqa8sQvKa+ceJAF04+gGtw617cuaZdZ3SYRLR2dk=\n"
+ "-----END RSA PRIVATE KEY-----\n";
const char key1[] =
"-----BEGIN RSA PRIVATE KEY-----\n"
@@ -108,16 +108,18 @@ const char key_lowercase_iv[] =
"57ohSPIR3bXgRZuefjxBhQYthUPcZ+qktrbURcvHNLs=\n"
"-----END RSA PRIVATE KEY-----\n";
-static int good_pwd_cb(void* userdata, int attempt, const char* token_url,
- const char* token_label, unsigned int flags,
- char* pin, size_t pin_max) {
+static int good_pwd_cb(void *userdata, int attempt, const char *token_url,
+ const char *token_label, unsigned int flags,
+ char *pin, size_t pin_max)
+{
snprintf(pin, pin_max, "%s", "123456");
return 0;
}
-static int bad_pwd_cb(void* userdata, int attempt, const char* token_url,
- const char* token_label, unsigned int flags,
- char* pin, size_t pin_max) {
+static int bad_pwd_cb(void *userdata, int attempt, const char *token_url,
+ const char *token_label, unsigned int flags,
+ char *pin, size_t pin_max)
+{
snprintf(pin, pin_max, "%s", "bad");
return 0;
}
@@ -143,7 +145,7 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_privkey_init: %d\n", ret);
- key.data = (void *) key1;
+ key.data = (void *)key1;
key.size = sizeof(key1);
ret = gnutls_x509_privkey_import_openssl(pkey, &key, "123456");
if (ret < 0) {
@@ -156,7 +158,7 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_privkey_init: %d\n", ret);
- key.data = (void *) key2;
+ key.data = (void *)key2;
key.size = sizeof(key2);
ret = gnutls_x509_privkey_import_openssl(pkey, &key, "a123456");
if (ret < 0) {
@@ -170,14 +172,13 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_privkey_init: %d\n", ret);
- key.data = (void *) key1;
+ key.data = (void *)key1;
key.size = sizeof(key1);
ret =
gnutls_x509_privkey_import2(pkey, &key, GNUTLS_X509_FMT_PEM,
"123456", 0);
if (ret < 0) {
- fail("gnutls_x509_privkey_import2: %s\n",
- gnutls_strerror(ret));
+ fail("gnutls_x509_privkey_import2: %s\n", gnutls_strerror(ret));
}
gnutls_x509_privkey_deinit(pkey);
@@ -186,14 +187,13 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_privkey_init: %d\n", ret);
- key.data = (void *) plain_key;
+ key.data = (void *)plain_key;
key.size = sizeof(plain_key);
ret =
gnutls_x509_privkey_import2(pkey, &key, GNUTLS_X509_FMT_PEM,
"123456", 0);
if (ret < 0) {
- fail("gnutls_x509_privkey_import2: %s\n",
- gnutls_strerror(ret));
+ fail("gnutls_x509_privkey_import2: %s\n", gnutls_strerror(ret));
}
gnutls_x509_privkey_deinit(pkey);
@@ -202,7 +202,7 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_privkey_init: %d\n", ret);
- key.data = (void *) key1;
+ key.data = (void *)key1;
key.size = sizeof(key1);
ret = gnutls_x509_privkey_import2(pkey, &key, GNUTLS_X509_FMT_PEM,
NULL, 0);
@@ -217,14 +217,13 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_privkey_init: %d\n", ret);
- key.data = (void *) key_lowercase_iv;
+ key.data = (void *)key_lowercase_iv;
key.size = sizeof(key_lowercase_iv);
ret =
gnutls_x509_privkey_import2(pkey, &key, GNUTLS_X509_FMT_PEM,
"123456", 0);
if (ret < 0) {
- fail("gnutls_x509_privkey_import2: %s\n",
- gnutls_strerror(ret));
+ fail("gnutls_x509_privkey_import2: %s\n", gnutls_strerror(ret));
}
gnutls_x509_privkey_deinit(pkey);
@@ -243,7 +242,7 @@ void doit(void)
fail("gnutls_x509_privkey_init: %d\n", ret);
gnutls_x509_privkey_set_pin_function(pkey, bad_pwd_cb, NULL);
- key.data = (void *) key1;
+ key.data = (void *)key1;
key.size = sizeof(key1);
ret = gnutls_x509_privkey_import2(pkey, &key, GNUTLS_X509_FMT_PEM,
"123456", 0);
@@ -259,7 +258,7 @@ void doit(void)
fail("gnutls_x509_privkey_init: %d\n", ret);
gnutls_x509_privkey_set_pin_function(pkey, good_pwd_cb, NULL);
- key.data = (void *) key1;
+ key.data = (void *)key1;
key.size = sizeof(key1);
ret = gnutls_x509_privkey_import2(pkey, &key, GNUTLS_X509_FMT_PEM,
NULL, 0);
@@ -275,7 +274,7 @@ void doit(void)
fail("gnutls_x509_privkey_init: %d\n", ret);
gnutls_x509_privkey_set_pin_function(pkey, bad_pwd_cb, NULL);
- key.data = (void *) key1;
+ key.data = (void *)key1;
key.size = sizeof(key1);
ret = gnutls_x509_privkey_import2(pkey, &key, GNUTLS_X509_FMT_PEM,
NULL, 0);
diff --git a/tests/key-usage-ecdhe-rsa.c b/tests/key-usage-ecdhe-rsa.c
index 4d069194b8..bb43b6abcd 100644
--- a/tests/key-usage-ecdhe-rsa.c
+++ b/tests/key-usage-ecdhe-rsa.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -45,63 +45,62 @@ static void tls_log_func(int level, const char *str)
}
static unsigned char encryption_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDoTCCAgmgAwIBAgIIWD7Wvx22i+gwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
- "AxMEQ0EtMzAgFw0xNjExMzAxMzQwMTZaGA85OTk5MTIzMTIzNTk1OVowADCCASIw\n"
- "DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM3XiAz9NK/9K4mciW5cioUfOrH8\n"
- "W5QlnzgODc5O9vKypx+2Y42BmVArdTNox9ypyQHs4Tf1RVs8MkKLLRPVPvFTTwsB\n"
- "sYYR0WwtjLaUAG6uEQOkQ1tKnkPveR+7Yaz/WurUTFH/6tt9PLkjUa2MFClJfQyA\n"
- "+Ip0DOChfZVWDmKEsGxf0+HDrUwI6Yrue6Xjq4MtQ644vxYuIZrEU53bExNrZ7y9\n"
- "fvwsYa86eNBO3lEierVnusFqvngsXzuhHMTh7Dd1kdewWnNX9cFyXFPU1oxpEqgD\n"
- "9b/WOELpt4/Vyi6GAKthroTADOrgqIS4yVv/IwTE+I75820inSJBXwpVi9sCAwEA\n"
- "AaOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDATBgNV\n"
- "HSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDByAAMB0GA1UdDgQWBBThAci6\n"
- "ST9MfTP8KV4xkB0p2hgsyjAfBgNVHSMEGDAWgBT5qIYZY7akFBNgdg8BmjU27/G0\n"
- "rzANBgkqhkiG9w0BAQsFAAOCAYEAQSaXhGYE0VvpFidR+txfhRXZhoIyO6bCxrOE\n"
- "WFTdglZ3XE9/avlONa18hAVmMqBXJFKiTIMou2qQu7dJ80dMphQPFSOgVTwNP5yD\n"
- "MM0iJHSlcBweukA3+Jfo3lbGSYOGh3D157XwPQ5+dKFSgzFWdQApDAZ2Y5wg1mlD\n"
- "riapOliMXEBHuKaBEAGYHLNQEUoutc/8lpv7FrE8YPp2J5f/kBlL21ygHNCNbRQZ\n"
- "XTTajRgY5dg0R7CPM1wkyk/K1Lke2BgteF4FWlKTzh3b42swWJAlW9oDcqA8xRHu\n"
- "cvU+7PKs3SpXky6dGC+rgWMfV99z00gNICdZJrqTRTd6JvMa+Q8QCChHtyE40LWe\n"
- "MXFfeQW2kWD+q2CUAiY5K/fk4p74w4TtHuln3/+IZd+fwMfq9eD9524n+61AoTvm\n"
- "FM9vezUEwybmHVTx+390aiY2SaAxl4BCopauOgpBTnj8Rcd5dMO3qEW4+QaXKMlU\n"
- "wIEPoaEfCDQ/XXy0bM5zFUFWgTNX\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDoTCCAgmgAwIBAgIIWD7Wvx22i+gwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEQ0EtMzAgFw0xNjExMzAxMzQwMTZaGA85OTk5MTIzMTIzNTk1OVowADCCASIw\n"
+ "DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM3XiAz9NK/9K4mciW5cioUfOrH8\n"
+ "W5QlnzgODc5O9vKypx+2Y42BmVArdTNox9ypyQHs4Tf1RVs8MkKLLRPVPvFTTwsB\n"
+ "sYYR0WwtjLaUAG6uEQOkQ1tKnkPveR+7Yaz/WurUTFH/6tt9PLkjUa2MFClJfQyA\n"
+ "+Ip0DOChfZVWDmKEsGxf0+HDrUwI6Yrue6Xjq4MtQ644vxYuIZrEU53bExNrZ7y9\n"
+ "fvwsYa86eNBO3lEierVnusFqvngsXzuhHMTh7Dd1kdewWnNX9cFyXFPU1oxpEqgD\n"
+ "9b/WOELpt4/Vyi6GAKthroTADOrgqIS4yVv/IwTE+I75820inSJBXwpVi9sCAwEA\n"
+ "AaOBjTCBijAMBgNVHRMBAf8EAjAAMBQGA1UdEQQNMAuCCWxvY2FsaG9zdDATBgNV\n"
+ "HSUEDDAKBggrBgEFBQcDATAPBgNVHQ8BAf8EBQMDByAAMB0GA1UdDgQWBBThAci6\n"
+ "ST9MfTP8KV4xkB0p2hgsyjAfBgNVHSMEGDAWgBT5qIYZY7akFBNgdg8BmjU27/G0\n"
+ "rzANBgkqhkiG9w0BAQsFAAOCAYEAQSaXhGYE0VvpFidR+txfhRXZhoIyO6bCxrOE\n"
+ "WFTdglZ3XE9/avlONa18hAVmMqBXJFKiTIMou2qQu7dJ80dMphQPFSOgVTwNP5yD\n"
+ "MM0iJHSlcBweukA3+Jfo3lbGSYOGh3D157XwPQ5+dKFSgzFWdQApDAZ2Y5wg1mlD\n"
+ "riapOliMXEBHuKaBEAGYHLNQEUoutc/8lpv7FrE8YPp2J5f/kBlL21ygHNCNbRQZ\n"
+ "XTTajRgY5dg0R7CPM1wkyk/K1Lke2BgteF4FWlKTzh3b42swWJAlW9oDcqA8xRHu\n"
+ "cvU+7PKs3SpXky6dGC+rgWMfV99z00gNICdZJrqTRTd6JvMa+Q8QCChHtyE40LWe\n"
+ "MXFfeQW2kWD+q2CUAiY5K/fk4p74w4TtHuln3/+IZd+fwMfq9eD9524n+61AoTvm\n"
+ "FM9vezUEwybmHVTx+390aiY2SaAxl4BCopauOgpBTnj8Rcd5dMO3qEW4+QaXKMlU\n"
+ "wIEPoaEfCDQ/XXy0bM5zFUFWgTNX\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t enc_cert = { encryption_cert_pem,
- sizeof(encryption_cert_pem)-1
+ sizeof(encryption_cert_pem) - 1
};
static unsigned char encryption_key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIIEpgIBAAKCAQEAzdeIDP00r/0riZyJblyKhR86sfxblCWfOA4Nzk728rKnH7Zj\n"
- "jYGZUCt1M2jH3KnJAezhN/VFWzwyQostE9U+8VNPCwGxhhHRbC2MtpQAbq4RA6RD\n"
- "W0qeQ+95H7thrP9a6tRMUf/q2308uSNRrYwUKUl9DID4inQM4KF9lVYOYoSwbF/T\n"
- "4cOtTAjpiu57peOrgy1Drji/Fi4hmsRTndsTE2tnvL1+/Cxhrzp40E7eUSJ6tWe6\n"
- "wWq+eCxfO6EcxOHsN3WR17Bac1f1wXJcU9TWjGkSqAP1v9Y4Qum3j9XKLoYAq2Gu\n"
- "hMAM6uCohLjJW/8jBMT4jvnzbSKdIkFfClWL2wIDAQABAoIBAQC70D11xI6PSUux\n"
- "St/mj49gOYdfoOeaO92T0tbr+AbAmRt+Bve8xJQznwNX/fHmOBCMriss2KEIxtsA\n"
- "9mYR44+Dt8S2QTxOHPHdZ44thMsEMdSaYwWGRYY0bEszFdDgfTnibASbCQusaw+9\n"
- "ySkcVWSL616qyv57rbmWOCMS4CtN3Sk982mtzSdCkJ8tiq6n3C60QPom/zo5TBS5\n"
- "vaJ70NRnj7Zuq9VPwNKOwhkYW9OUZsAmdwLqenmsLfQEnZnu/ielJ10LI8SrQG5x\n"
- "lANdYRD07W5lpwImJCELUqK5X2iw5ii6/4vl/Si/WcL4pRFpuCOCp1B8SDuSkOKS\n"
- "zebU/Z3hAoGBAPvIN/WlSQ+Iy5TNGsnV5B96Xvl8YrXVInJZ7z4MOrPgyvN8mQXX\n"
- "sQ6D01H2tba3mWt0S16lWwBsOll5LDBj5kcvp+4702xUxoOap79wXPS1Ibi+uXlO\n"
- "5c7V3pa7r2nw7YQL+ehYpgBdaVaYdAnHKn0Mo7zMd+yjNnQEfEcDwNFxAoGBANFK\n"
- "S7y327IEms1wdn0hb1r812PKsn464j4xbnfnrAYzE2cttgLSYsRRYNMo++ZS9Y3v\n"
- "3MZGmgOsKRgpbblxhUxNY5pKeHcXKUy1YtaGJVpeQwI8u69Th9tUDS2/yt7Op4/0\n"
- "p5115DTEfmvKzF//PH7GtX5Ox/JoNSHaPcORT0wLAoGBANXYEZ8zCMCG4NG6+hue\n"
- "7KfHmU6wVG43XZBdzhKW9Gy+aeEvXBBYR2saj6q3rVJI0acwGKuEKaxMP6qqfduD\n"
- "nZusYCa47TK/NfOksQCpgGneRYvRgVoEpq5reyfutGd4V2KlgVXTpPn+XG9OAJAl\n"
- "dnLK/25lAx4a6S7UeHEgQO4hAoGBAKyfch6jK3MGd0RxuVl2RWmv2Fw36MdS/B6+\n"
- "GNaPYITwhdV5j4F+U/aHBKzGRhbwYBcFO3zS6N+UlYSXTyhAqOiJgFjXicr4cJkT\n"
- "lwVIOfDyhKSIwWlYJVtTVVdhtQvXOb/z1Hh8r5CSbY+tAqs/U39hmHsosaSQLRrR\n"
- "7lWrOdOHAoGBAIndZqW8HHfUk5Y6ZlbDzz/GRi81nrU3p2Ii1M17PLFyFhKZcPyM\n"
- "kJDhqStyWEQKN7Xig0uxGvGAFYTBsILmoS/XAFnRpfcmNkF7hXRGHuHFRopZuIic\n"
- "gZ9oloj50/wHdTSU/MExRExhC7DUom2DzihUz3a5uqWOK/SnpfNeIJPs\n"
- "-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEpgIBAAKCAQEAzdeIDP00r/0riZyJblyKhR86sfxblCWfOA4Nzk728rKnH7Zj\n"
+ "jYGZUCt1M2jH3KnJAezhN/VFWzwyQostE9U+8VNPCwGxhhHRbC2MtpQAbq4RA6RD\n"
+ "W0qeQ+95H7thrP9a6tRMUf/q2308uSNRrYwUKUl9DID4inQM4KF9lVYOYoSwbF/T\n"
+ "4cOtTAjpiu57peOrgy1Drji/Fi4hmsRTndsTE2tnvL1+/Cxhrzp40E7eUSJ6tWe6\n"
+ "wWq+eCxfO6EcxOHsN3WR17Bac1f1wXJcU9TWjGkSqAP1v9Y4Qum3j9XKLoYAq2Gu\n"
+ "hMAM6uCohLjJW/8jBMT4jvnzbSKdIkFfClWL2wIDAQABAoIBAQC70D11xI6PSUux\n"
+ "St/mj49gOYdfoOeaO92T0tbr+AbAmRt+Bve8xJQznwNX/fHmOBCMriss2KEIxtsA\n"
+ "9mYR44+Dt8S2QTxOHPHdZ44thMsEMdSaYwWGRYY0bEszFdDgfTnibASbCQusaw+9\n"
+ "ySkcVWSL616qyv57rbmWOCMS4CtN3Sk982mtzSdCkJ8tiq6n3C60QPom/zo5TBS5\n"
+ "vaJ70NRnj7Zuq9VPwNKOwhkYW9OUZsAmdwLqenmsLfQEnZnu/ielJ10LI8SrQG5x\n"
+ "lANdYRD07W5lpwImJCELUqK5X2iw5ii6/4vl/Si/WcL4pRFpuCOCp1B8SDuSkOKS\n"
+ "zebU/Z3hAoGBAPvIN/WlSQ+Iy5TNGsnV5B96Xvl8YrXVInJZ7z4MOrPgyvN8mQXX\n"
+ "sQ6D01H2tba3mWt0S16lWwBsOll5LDBj5kcvp+4702xUxoOap79wXPS1Ibi+uXlO\n"
+ "5c7V3pa7r2nw7YQL+ehYpgBdaVaYdAnHKn0Mo7zMd+yjNnQEfEcDwNFxAoGBANFK\n"
+ "S7y327IEms1wdn0hb1r812PKsn464j4xbnfnrAYzE2cttgLSYsRRYNMo++ZS9Y3v\n"
+ "3MZGmgOsKRgpbblxhUxNY5pKeHcXKUy1YtaGJVpeQwI8u69Th9tUDS2/yt7Op4/0\n"
+ "p5115DTEfmvKzF//PH7GtX5Ox/JoNSHaPcORT0wLAoGBANXYEZ8zCMCG4NG6+hue\n"
+ "7KfHmU6wVG43XZBdzhKW9Gy+aeEvXBBYR2saj6q3rVJI0acwGKuEKaxMP6qqfduD\n"
+ "nZusYCa47TK/NfOksQCpgGneRYvRgVoEpq5reyfutGd4V2KlgVXTpPn+XG9OAJAl\n"
+ "dnLK/25lAx4a6S7UeHEgQO4hAoGBAKyfch6jK3MGd0RxuVl2RWmv2Fw36MdS/B6+\n"
+ "GNaPYITwhdV5j4F+U/aHBKzGRhbwYBcFO3zS6N+UlYSXTyhAqOiJgFjXicr4cJkT\n"
+ "lwVIOfDyhKSIwWlYJVtTVVdhtQvXOb/z1Hh8r5CSbY+tAqs/U39hmHsosaSQLRrR\n"
+ "7lWrOdOHAoGBAIndZqW8HHfUk5Y6ZlbDzz/GRi81nrU3p2Ii1M17PLFyFhKZcPyM\n"
+ "kJDhqStyWEQKN7Xig0uxGvGAFYTBsILmoS/XAFnRpfcmNkF7hXRGHuHFRopZuIic\n"
+ "gZ9oloj50/wHdTSU/MExRExhC7DUom2DzihUz3a5uqWOK/SnpfNeIJPs\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t enc_key = { encryption_key_pem,
- sizeof(encryption_key_pem)-1
+ sizeof(encryption_key_pem) - 1
};
static
@@ -130,8 +129,7 @@ void server_check(void)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
"NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
NULL);
@@ -144,7 +142,9 @@ void server_check(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -153,16 +153,19 @@ void server_check(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- gnutls_priority_set_direct(client, "NORMAL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(client,
+ "NORMAL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_NO_CIPHER_SUITES);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN,
+ GNUTLS_E_NO_CIPHER_SUITES);
if (debug)
success("server returned the expected code\n");
@@ -192,10 +195,12 @@ cert_callback(gnutls_session_t session,
if (g_pkey == NULL) {
p = gnutls_malloc(sizeof(*p));
- if (p==NULL)
+ if (p == NULL)
return -1;
- ret = gnutls_pcert_import_x509_raw(p, &enc_cert, GNUTLS_X509_FMT_PEM, 0);
+ ret =
+ gnutls_pcert_import_x509_raw(p, &enc_cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0)
return -1;
@@ -203,7 +208,10 @@ cert_callback(gnutls_session_t session,
if (ret < 0)
return -1;
- ret = gnutls_privkey_import_x509_raw(lkey, &enc_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(lkey, &enc_key,
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
return -1;
@@ -242,11 +250,11 @@ void client_check(void)
/* Init server */
gnutls_certificate_allocate_credentials(&serverx509cred);
- gnutls_certificate_set_retrieve_function2(serverx509cred, cert_callback);
+ gnutls_certificate_set_retrieve_function2(serverx509cred,
+ cert_callback);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
"NORMAL:-KX-ALL:+ECDHE-RSA:%DEBUG_ALLOW_KEY_USAGE_VIOLATIONS:-VERS-ALL:+VERS-TLS1.2",
NULL);
@@ -259,7 +267,9 @@ void client_check(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -268,19 +278,23 @@ void client_check(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- gnutls_priority_set_direct(client, "NORMAL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(client,
+ "NORMAL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_KEY_USAGE_VIOLATION, GNUTLS_E_AGAIN);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_KEY_USAGE_VIOLATION,
+ GNUTLS_E_AGAIN);
if (debug)
- success("client returned the expected code: %s\n", gnutls_strerror(cret));
+ success("client returned the expected code: %s\n",
+ gnutls_strerror(cret));
gnutls_deinit(client);
gnutls_deinit(server);
diff --git a/tests/key-usage-rsa.c b/tests/key-usage-rsa.c
index dfd7b53bb5..42fdaa5d70 100644
--- a/tests/key-usage-rsa.c
+++ b/tests/key-usage-rsa.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -44,100 +44,100 @@ static void tls_log_func(int level, const char *str)
}
static unsigned char ca_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC8zCCAdugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCAXDTE1MDgxNDA5MzUxMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0wMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4O2BYEx/hl7URXhb\n"
-"52erURO6HrlfacZjG0fQ2WqRcJJTqg2baAbA7+1SLdhphZ+KJDypEjJWmOgbaehI\n"
-"hlK7zDZb+0r0uXlUQ11mgf7FcCDQoJBmC1dcN3o6zPeXg5hkWV+ZV2h7hhJTwkRc\n"
-"C4DXTbaDKy8PNiC0MRMOGjeMfnL26oaxzuHNgH4u1J02+XUZ0UcSDrUc52O1lJ02\n"
-"i1SbD+fTNBgmFQADXyAllZYJ/xwbxf44TFhQjiOvVpz/9EB2+/x5H0r1YvwKGY6v\n"
-"5mfkUsEAE5+uxDXdZT84ltEKkAjbZ9cIgdmXRuD4mkyo3NHLh7oHCdsRRE/S/rZe\n"
-"ikmGpQIDAQABo1gwVjAPBgNVHRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUF\n"
-"BwMJMA8GA1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFEvjsNoFTfqDEKbcwFnxKId+\n"
-"ZQP8MA0GCSqGSIb3DQEBCwUAA4IBAQAKrbc6hER0xAjn5driLNyoz0JJr5P07PDI\n"
-"d8AR3ZC56DSJNdvKDqdFIvAoo/JePCTFSdhbaqu+08MoTtRK5TKqjRiDiG4XCxiz\n"
-"Ado7QouS+ZgDP1Uxv8j2YWeSpkusD+oIEK96wbeDaYi0ENbLWbm9zWqvHaaEYn4c\n"
-"ov78n+7VvP3I2OFuJ0EPy+r55GPxSCRCh6apL78yAc6TfcyOwwTihvCF5ejCqRg/\n"
-"T1As5NCCpdYP2nejRymjO6wMRsRFBX9+gndO9qVQZJr8zBTw8k8/pMtDubjkYqEv\n"
-"qRME4/3q8+Sm8HlZ8FPpcU9XbLl+ASd+SWr8jCTGLSxF2hME8Lgg\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC8zCCAdugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCAXDTE1MDgxNDA5MzUxMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0wMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4O2BYEx/hl7URXhb\n"
+ "52erURO6HrlfacZjG0fQ2WqRcJJTqg2baAbA7+1SLdhphZ+KJDypEjJWmOgbaehI\n"
+ "hlK7zDZb+0r0uXlUQ11mgf7FcCDQoJBmC1dcN3o6zPeXg5hkWV+ZV2h7hhJTwkRc\n"
+ "C4DXTbaDKy8PNiC0MRMOGjeMfnL26oaxzuHNgH4u1J02+XUZ0UcSDrUc52O1lJ02\n"
+ "i1SbD+fTNBgmFQADXyAllZYJ/xwbxf44TFhQjiOvVpz/9EB2+/x5H0r1YvwKGY6v\n"
+ "5mfkUsEAE5+uxDXdZT84ltEKkAjbZ9cIgdmXRuD4mkyo3NHLh7oHCdsRRE/S/rZe\n"
+ "ikmGpQIDAQABo1gwVjAPBgNVHRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUF\n"
+ "BwMJMA8GA1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFEvjsNoFTfqDEKbcwFnxKId+\n"
+ "ZQP8MA0GCSqGSIb3DQEBCwUAA4IBAQAKrbc6hER0xAjn5driLNyoz0JJr5P07PDI\n"
+ "d8AR3ZC56DSJNdvKDqdFIvAoo/JePCTFSdhbaqu+08MoTtRK5TKqjRiDiG4XCxiz\n"
+ "Ado7QouS+ZgDP1Uxv8j2YWeSpkusD+oIEK96wbeDaYi0ENbLWbm9zWqvHaaEYn4c\n"
+ "ov78n+7VvP3I2OFuJ0EPy+r55GPxSCRCh6apL78yAc6TfcyOwwTihvCF5ejCqRg/\n"
+ "T1As5NCCpdYP2nejRymjO6wMRsRFBX9+gndO9qVQZJr8zBTw8k8/pMtDubjkYqEv\n"
+ "qRME4/3q8+Sm8HlZ8FPpcU9XbLl+ASd+SWr8jCTGLSxF2hME8Lgg\n"
+ "-----END CERTIFICATE-----\n";
const gnutls_datum_t ca_cert = { ca_cert_pem,
sizeof(ca_cert_pem)
};
static unsigned char server_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDITCCAgmgAwIBAgIMVc22UBIVIpQdKaDeMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
-"BgNVBAMTBENBLTAwIBcNMTUwODE0MDkzNTEyWhgPOTk5OTEyMzEyMzU5NTlaMBMx\n"
-"ETAPBgNVBAMTCHNlcnZlci0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\n"
-"AQEAvhX+gDD8GkLW0GVH5C+AdbCFKAcj0tG+S+OuCpDp8NGZN4GXtbljUk5U82ha\n"
-"nyq52eJCptCSspXNKq6Hn0H/eSXlRndnIblB49Dqy6kHq0i1ysmrbdbe9BWrUqeU\n"
-"uKSZ8O98ANzHfVDOxCvhqGfytvrgudfk5JZxqAD2CXU6R5AjG60cnR49xGkplfKS\n"
-"31fpdshDkQMm+w2hfa97wqjrTbQ7K4SIgB9AYbRNvHd8PAo6fxXrLaBPZkQu9AiP\n"
-"D+sEz5bGrhzlIwz5SdcGAjuysB1WAygrWcTZ2zvX96lVTMhRF4umo8Rd1rzapB6G\n"
-"Uj64cKtkyJjcGV54Ifd6E/lmDwIDAQABo3cwdTAMBgNVHRMBAf8EAjAAMBQGA1Ud\n"
-"EQQNMAuCCWxvY2FsaG9zdDAPBgNVHQ8BAf8EBQMDB4AAMB0GA1UdDgQWBBSTZZoN\n"
-"JNpaTuLaiXd+abUidelNDDAfBgNVHSMEGDAWgBRL47DaBU36gxCm3MBZ8SiHfmUD\n"
-"/DANBgkqhkiG9w0BAQsFAAOCAQEANot3py74nzCijhKilXyHz44LnpzbZGxMzbdr\n"
-"gK9maqqfiOWJMohOmSezYvMItudDn/Z3Bu7xzDxchDF80sBN+4UiDxl47uYbNl6o\n"
-"UFfpFu4GmO0HfeWkbM1ZqVJGBa6zOCkc3aw0LK7O2YRcBcsjzdIPQpePf/jRpppJ\n"
-"mz4qShtGa37Vfv4XxoXFPJdfil3uXl8Pe3qo+f8+DiMIIuxzKyQatu0DP4CjuEf1\n"
-"6sgcBFbeUMAJsCh0qFbqObWyOe9XxFEukLMPV7s2EKnRcY7Xhyuf6wyNI/oPkmon\n"
-"+m/yxJVZSWkpERsyXW1ZkR0Xw2KnJ4bzdQkDTs73ijOd4jFQvA==\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC8zCCAdugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCAXDTE1MDgxNDA5MzUxMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0wMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4O2BYEx/hl7URXhb\n"
-"52erURO6HrlfacZjG0fQ2WqRcJJTqg2baAbA7+1SLdhphZ+KJDypEjJWmOgbaehI\n"
-"hlK7zDZb+0r0uXlUQ11mgf7FcCDQoJBmC1dcN3o6zPeXg5hkWV+ZV2h7hhJTwkRc\n"
-"C4DXTbaDKy8PNiC0MRMOGjeMfnL26oaxzuHNgH4u1J02+XUZ0UcSDrUc52O1lJ02\n"
-"i1SbD+fTNBgmFQADXyAllZYJ/xwbxf44TFhQjiOvVpz/9EB2+/x5H0r1YvwKGY6v\n"
-"5mfkUsEAE5+uxDXdZT84ltEKkAjbZ9cIgdmXRuD4mkyo3NHLh7oHCdsRRE/S/rZe\n"
-"ikmGpQIDAQABo1gwVjAPBgNVHRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUF\n"
-"BwMJMA8GA1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFEvjsNoFTfqDEKbcwFnxKId+\n"
-"ZQP8MA0GCSqGSIb3DQEBCwUAA4IBAQAKrbc6hER0xAjn5driLNyoz0JJr5P07PDI\n"
-"d8AR3ZC56DSJNdvKDqdFIvAoo/JePCTFSdhbaqu+08MoTtRK5TKqjRiDiG4XCxiz\n"
-"Ado7QouS+ZgDP1Uxv8j2YWeSpkusD+oIEK96wbeDaYi0ENbLWbm9zWqvHaaEYn4c\n"
-"ov78n+7VvP3I2OFuJ0EPy+r55GPxSCRCh6apL78yAc6TfcyOwwTihvCF5ejCqRg/\n"
-"T1As5NCCpdYP2nejRymjO6wMRsRFBX9+gndO9qVQZJr8zBTw8k8/pMtDubjkYqEv\n"
-"qRME4/3q8+Sm8HlZ8FPpcU9XbLl+ASd+SWr8jCTGLSxF2hME8Lgg\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDITCCAgmgAwIBAgIMVc22UBIVIpQdKaDeMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTAwIBcNMTUwODE0MDkzNTEyWhgPOTk5OTEyMzEyMzU5NTlaMBMx\n"
+ "ETAPBgNVBAMTCHNlcnZlci0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\n"
+ "AQEAvhX+gDD8GkLW0GVH5C+AdbCFKAcj0tG+S+OuCpDp8NGZN4GXtbljUk5U82ha\n"
+ "nyq52eJCptCSspXNKq6Hn0H/eSXlRndnIblB49Dqy6kHq0i1ysmrbdbe9BWrUqeU\n"
+ "uKSZ8O98ANzHfVDOxCvhqGfytvrgudfk5JZxqAD2CXU6R5AjG60cnR49xGkplfKS\n"
+ "31fpdshDkQMm+w2hfa97wqjrTbQ7K4SIgB9AYbRNvHd8PAo6fxXrLaBPZkQu9AiP\n"
+ "D+sEz5bGrhzlIwz5SdcGAjuysB1WAygrWcTZ2zvX96lVTMhRF4umo8Rd1rzapB6G\n"
+ "Uj64cKtkyJjcGV54Ifd6E/lmDwIDAQABo3cwdTAMBgNVHRMBAf8EAjAAMBQGA1Ud\n"
+ "EQQNMAuCCWxvY2FsaG9zdDAPBgNVHQ8BAf8EBQMDB4AAMB0GA1UdDgQWBBSTZZoN\n"
+ "JNpaTuLaiXd+abUidelNDDAfBgNVHSMEGDAWgBRL47DaBU36gxCm3MBZ8SiHfmUD\n"
+ "/DANBgkqhkiG9w0BAQsFAAOCAQEANot3py74nzCijhKilXyHz44LnpzbZGxMzbdr\n"
+ "gK9maqqfiOWJMohOmSezYvMItudDn/Z3Bu7xzDxchDF80sBN+4UiDxl47uYbNl6o\n"
+ "UFfpFu4GmO0HfeWkbM1ZqVJGBa6zOCkc3aw0LK7O2YRcBcsjzdIPQpePf/jRpppJ\n"
+ "mz4qShtGa37Vfv4XxoXFPJdfil3uXl8Pe3qo+f8+DiMIIuxzKyQatu0DP4CjuEf1\n"
+ "6sgcBFbeUMAJsCh0qFbqObWyOe9XxFEukLMPV7s2EKnRcY7Xhyuf6wyNI/oPkmon\n"
+ "+m/yxJVZSWkpERsyXW1ZkR0Xw2KnJ4bzdQkDTs73ijOd4jFQvA==\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC8zCCAdugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCAXDTE1MDgxNDA5MzUxMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0wMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4O2BYEx/hl7URXhb\n"
+ "52erURO6HrlfacZjG0fQ2WqRcJJTqg2baAbA7+1SLdhphZ+KJDypEjJWmOgbaehI\n"
+ "hlK7zDZb+0r0uXlUQ11mgf7FcCDQoJBmC1dcN3o6zPeXg5hkWV+ZV2h7hhJTwkRc\n"
+ "C4DXTbaDKy8PNiC0MRMOGjeMfnL26oaxzuHNgH4u1J02+XUZ0UcSDrUc52O1lJ02\n"
+ "i1SbD+fTNBgmFQADXyAllZYJ/xwbxf44TFhQjiOvVpz/9EB2+/x5H0r1YvwKGY6v\n"
+ "5mfkUsEAE5+uxDXdZT84ltEKkAjbZ9cIgdmXRuD4mkyo3NHLh7oHCdsRRE/S/rZe\n"
+ "ikmGpQIDAQABo1gwVjAPBgNVHRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUF\n"
+ "BwMJMA8GA1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFEvjsNoFTfqDEKbcwFnxKId+\n"
+ "ZQP8MA0GCSqGSIb3DQEBCwUAA4IBAQAKrbc6hER0xAjn5driLNyoz0JJr5P07PDI\n"
+ "d8AR3ZC56DSJNdvKDqdFIvAoo/JePCTFSdhbaqu+08MoTtRK5TKqjRiDiG4XCxiz\n"
+ "Ado7QouS+ZgDP1Uxv8j2YWeSpkusD+oIEK96wbeDaYi0ENbLWbm9zWqvHaaEYn4c\n"
+ "ov78n+7VvP3I2OFuJ0EPy+r55GPxSCRCh6apL78yAc6TfcyOwwTihvCF5ejCqRg/\n"
+ "T1As5NCCpdYP2nejRymjO6wMRsRFBX9+gndO9qVQZJr8zBTw8k8/pMtDubjkYqEv\n"
+ "qRME4/3q8+Sm8HlZ8FPpcU9XbLl+ASd+SWr8jCTGLSxF2hME8Lgg\n"
+ "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char server_key_pem[] =
-"-----BEGIN RSA PRIVATE KEY-----\n"
-"MIIEowIBAAKCAQEAvhX+gDD8GkLW0GVH5C+AdbCFKAcj0tG+S+OuCpDp8NGZN4GX\n"
-"tbljUk5U82hanyq52eJCptCSspXNKq6Hn0H/eSXlRndnIblB49Dqy6kHq0i1ysmr\n"
-"bdbe9BWrUqeUuKSZ8O98ANzHfVDOxCvhqGfytvrgudfk5JZxqAD2CXU6R5AjG60c\n"
-"nR49xGkplfKS31fpdshDkQMm+w2hfa97wqjrTbQ7K4SIgB9AYbRNvHd8PAo6fxXr\n"
-"LaBPZkQu9AiPD+sEz5bGrhzlIwz5SdcGAjuysB1WAygrWcTZ2zvX96lVTMhRF4um\n"
-"o8Rd1rzapB6GUj64cKtkyJjcGV54Ifd6E/lmDwIDAQABAoIBAQCPPDOSlVbi0wrb\n"
-"7fXGVKUQCfvMtdSgv7wNo3s6KwidltNFqDmRjijxlGUfJbtjxOZW8NAYs4JXX9pC\n"
-"F1HLCAhiWdPyzXbBSsAD0yGaZbyJrTiPnne3RPqsIsf+eJjwqdf2Xf+rBrKsE4A7\n"
-"AnYAWJPknhdI8w5f0Z3DYzYC2nsYAI/FvJCpQvs9qMfVznctzcLUpvquDYrkDaFA\n"
-"Rk14xQ8zhXKSugx1N2QAabk9YhMIDgBRHvZkQfBYJ/bNhfpLveQZX14QLn++EuFZ\n"
-"F0QpoOtJhWNZDbDdroud2G821dl5bLKsKx0cD63Bsz1uV8vUQF0F2xx8t64SPhz9\n"
-"zC/eZB+BAoGBAM57D4Nav1zreqBJZnWVtR7qr54AIg3nKccFPXLeezhI1iJi07tn\n"
-"Fc2YdP+5NzRAVBOBKaMwuJ4ZdLnclsKD8A/LzMgerRfuV6EDHOPKAgWISU/+Up6x\n"
-"Q5tQ2ocPjQFHb5gK3Le9lMkBHt1j6ZIptUIXTqzzwKYSDDYkdMCmSyBXAoGBAOus\n"
-"XvHE/DIV6idE4k590nq+o9OdMet+LWUzmyTjlbVhPZ09vTSHs+3U1Fe4te6aNUI+\n"
-"KkhizCHMvx+M0uzCwy31TDdLe9QbmtkQet0AAX/Qsb5IQrDi5iLl7UuvZMa7tCUe\n"
-"R0puBRBzvZg4LQWDgJ9U4fO3YO0c3VBRpicQbvUJAoGAFN6bUst5TAsA+fJxSLE4\n"
-"/Ub7OR0KVB1pO5RsAZA7JBU4j4EtpWNl8MHYEYDG86EM3mvPqY7jGhe4lJCXLFHp\n"
-"ka8no5J2LFUKxltqMBva2HRN9Kff8eo4yxoA/GW1+ssdnGB8rpWa1DYoyHeww/Uz\n"
-"PNreONzqO97XHSHSKyajsUECgYAe/3ENg8dYHyHJQHozsMD6fBC4SLjELLhz0zHY\n"
-"zEZosP2VrQUx35d+9LtpPlZPp+DRcbPGCZin6XJKCA/GLGfXp6f6reb/oxHe8xf1\n"
-"8YZA9YYrbP24nl9+v5dSmSM8MHwlVbIyy/3GiDKrzte9HerRCi0eDUSma2GAqvyb\n"
-"rsGpYQKBgCj7dXo0LKYaEJ17NXCD6Cu7gMP9haYo0HHfkhBnIgYs/Cytgnedzp6k\n"
-"kRcVr4yllg5yEgiqPvg+PyuL1sm0epQ85qeYOaR2CsbN6mYnwX8/8LLZ7Ep4v3vv\n"
-"m0SlmY5Hgw6lit1DOr1HDoZZKzbpT3H//TrMMhvBPdcBQwjcHMHl\n"
-"-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEowIBAAKCAQEAvhX+gDD8GkLW0GVH5C+AdbCFKAcj0tG+S+OuCpDp8NGZN4GX\n"
+ "tbljUk5U82hanyq52eJCptCSspXNKq6Hn0H/eSXlRndnIblB49Dqy6kHq0i1ysmr\n"
+ "bdbe9BWrUqeUuKSZ8O98ANzHfVDOxCvhqGfytvrgudfk5JZxqAD2CXU6R5AjG60c\n"
+ "nR49xGkplfKS31fpdshDkQMm+w2hfa97wqjrTbQ7K4SIgB9AYbRNvHd8PAo6fxXr\n"
+ "LaBPZkQu9AiPD+sEz5bGrhzlIwz5SdcGAjuysB1WAygrWcTZ2zvX96lVTMhRF4um\n"
+ "o8Rd1rzapB6GUj64cKtkyJjcGV54Ifd6E/lmDwIDAQABAoIBAQCPPDOSlVbi0wrb\n"
+ "7fXGVKUQCfvMtdSgv7wNo3s6KwidltNFqDmRjijxlGUfJbtjxOZW8NAYs4JXX9pC\n"
+ "F1HLCAhiWdPyzXbBSsAD0yGaZbyJrTiPnne3RPqsIsf+eJjwqdf2Xf+rBrKsE4A7\n"
+ "AnYAWJPknhdI8w5f0Z3DYzYC2nsYAI/FvJCpQvs9qMfVznctzcLUpvquDYrkDaFA\n"
+ "Rk14xQ8zhXKSugx1N2QAabk9YhMIDgBRHvZkQfBYJ/bNhfpLveQZX14QLn++EuFZ\n"
+ "F0QpoOtJhWNZDbDdroud2G821dl5bLKsKx0cD63Bsz1uV8vUQF0F2xx8t64SPhz9\n"
+ "zC/eZB+BAoGBAM57D4Nav1zreqBJZnWVtR7qr54AIg3nKccFPXLeezhI1iJi07tn\n"
+ "Fc2YdP+5NzRAVBOBKaMwuJ4ZdLnclsKD8A/LzMgerRfuV6EDHOPKAgWISU/+Up6x\n"
+ "Q5tQ2ocPjQFHb5gK3Le9lMkBHt1j6ZIptUIXTqzzwKYSDDYkdMCmSyBXAoGBAOus\n"
+ "XvHE/DIV6idE4k590nq+o9OdMet+LWUzmyTjlbVhPZ09vTSHs+3U1Fe4te6aNUI+\n"
+ "KkhizCHMvx+M0uzCwy31TDdLe9QbmtkQet0AAX/Qsb5IQrDi5iLl7UuvZMa7tCUe\n"
+ "R0puBRBzvZg4LQWDgJ9U4fO3YO0c3VBRpicQbvUJAoGAFN6bUst5TAsA+fJxSLE4\n"
+ "/Ub7OR0KVB1pO5RsAZA7JBU4j4EtpWNl8MHYEYDG86EM3mvPqY7jGhe4lJCXLFHp\n"
+ "ka8no5J2LFUKxltqMBva2HRN9Kff8eo4yxoA/GW1+ssdnGB8rpWa1DYoyHeww/Uz\n"
+ "PNreONzqO97XHSHSKyajsUECgYAe/3ENg8dYHyHJQHozsMD6fBC4SLjELLhz0zHY\n"
+ "zEZosP2VrQUx35d+9LtpPlZPp+DRcbPGCZin6XJKCA/GLGfXp6f6reb/oxHe8xf1\n"
+ "8YZA9YYrbP24nl9+v5dSmSM8MHwlVbIyy/3GiDKrzte9HerRCi0eDUSma2GAqvyb\n"
+ "rsGpYQKBgCj7dXo0LKYaEJ17NXCD6Cu7gMP9haYo0HHfkhBnIgYs/Cytgnedzp6k\n"
+ "kRcVr4yllg5yEgiqPvg+PyuL1sm0epQ85qeYOaR2CsbN6mYnwX8/8LLZ7Ep4v3vv\n"
+ "m0SlmY5Hgw6lit1DOr1HDoZZKzbpT3H//TrMMhvBPdcBQwjcHMHl\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
@@ -169,8 +169,7 @@ void server_check(void)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
"NORMAL:-KX-ALL:+RSA:-VERS-ALL:+VERS-TLS1.2",
NULL);
@@ -183,7 +182,9 @@ void server_check(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -192,16 +193,18 @@ void server_check(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- gnutls_priority_set_direct(client, "NORMAL:+RSA:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(client, "NORMAL:+RSA:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_NO_CIPHER_SUITES);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN,
+ GNUTLS_E_NO_CIPHER_SUITES);
if (debug)
success("server returned the expected code\n");
@@ -231,10 +234,12 @@ cert_callback(gnutls_session_t session,
if (g_pkey == NULL) {
p = gnutls_malloc(sizeof(*p));
- if (p==NULL)
+ if (p == NULL)
return -1;
- ret = gnutls_pcert_import_x509_raw(p, &server_cert, GNUTLS_X509_FMT_PEM, 0);
+ ret =
+ gnutls_pcert_import_x509_raw(p, &server_cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0)
return -1;
@@ -242,7 +247,10 @@ cert_callback(gnutls_session_t session,
if (ret < 0)
return -1;
- ret = gnutls_privkey_import_x509_raw(lkey, &server_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(lkey, &server_key,
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
return -1;
@@ -281,11 +289,11 @@ void client_check(void)
/* Init server */
gnutls_certificate_allocate_credentials(&serverx509cred);
- gnutls_certificate_set_retrieve_function2(serverx509cred, cert_callback);
+ gnutls_certificate_set_retrieve_function2(serverx509cred,
+ cert_callback);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
"NORMAL:-KX-ALL:+RSA:%DEBUG_ALLOW_KEY_USAGE_VIOLATIONS:-VERS-ALL:+VERS-TLS1.2",
NULL);
@@ -298,7 +306,9 @@ void client_check(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -307,19 +317,22 @@ void client_check(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- gnutls_priority_set_direct(client, "NORMAL:+RSA:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(client, "NORMAL:+RSA:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_KEY_USAGE_VIOLATION, GNUTLS_E_AGAIN);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_KEY_USAGE_VIOLATION,
+ GNUTLS_E_AGAIN);
if (debug)
- success("client returned the expected code: %s\n", gnutls_strerror(cret));
+ success("client returned the expected code: %s\n",
+ gnutls_strerror(cret));
gnutls_deinit(client);
gnutls_deinit(server);
diff --git a/tests/keylog-env.c b/tests/keylog-env.c
index 2b62418a4a..408f04a48b 100644
--- a/tests/keylog-env.c
+++ b/tests/keylog-env.c
@@ -20,7 +20,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdbool.h>
@@ -29,10 +29,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <fcntl.h>
#include <unistd.h>
@@ -68,13 +68,14 @@ static const char *tls13_included_labels[] = {
};
static const char *tls13_excluded_labels[] = { "CLIENT_RANDOM", NULL };
-static void search_for_str(const char *filename, const char *label, bool excluded)
+static void search_for_str(const char *filename, const char *label,
+ bool excluded)
{
char line[512];
FILE *fp = fopen(filename, "r");
char *p;
- while( (p = fgets(line, sizeof(line), fp)) != NULL) {
+ while ((p = fgets(line, sizeof(line), fp)) != NULL) {
success("%s", line);
if (strncmp(line, label, strlen(label)) == 0 &&
line[strlen(label)] == ' ') {
@@ -113,22 +114,25 @@ static void run(const char *filename, const char *prio,
}
/* test gnutls_certificate_flags() */
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- ret = gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert_chain,
- &server_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert_chain,
+ &server_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in error code\n");
exit(1);
}
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
-
test_cli_serv(x509_cred, clicred, prio, "localhost", NULL, NULL, NULL);
if (access(filename, R_OK) != 0) {
@@ -152,7 +156,7 @@ void doit(void)
{
char filename[TMPNAME_SIZE];
- assert(get_tmpname(filename)!=NULL);
+ assert(get_tmpname(filename) != NULL);
remove(filename);
global_init();
diff --git a/tests/keylog-func.c b/tests/keylog-func.c
index 8145c55d1d..980c34844a 100644
--- a/tests/keylog-func.c
+++ b/tests/keylog-func.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -37,18 +37,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/crypto.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/crypto.h>
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
/* This program tests whether a keylog function is called.
*/
@@ -69,13 +69,12 @@ const char *side = "";
/* These are global */
static pid_t child;
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static int
keylog_func(gnutls_session_t session,
- const char *label,
- const gnutls_datum_t *secret)
+ const char *label, const gnutls_datum_t * secret)
{
unsigned int *call_count = gnutls_session_get_ptr(session);
static const char *exp_labels[] = {
@@ -86,16 +85,13 @@ keylog_func(gnutls_session_t session,
"SERVER_TRAFFIC_SECRET_0"
};
- if (*call_count >= sizeof(exp_labels)/sizeof(exp_labels[0]))
- fail("unexpected secret at call count %u\n",
- *call_count);
+ if (*call_count >= sizeof(exp_labels) / sizeof(exp_labels[0]))
+ fail("unexpected secret at call count %u\n", *call_count);
if (strcmp(label, exp_labels[*call_count]) != 0)
- fail("unexpected %s at call count %u\n",
- label, *call_count);
+ fail("unexpected %s at call count %u\n", label, *call_count);
else if (debug)
- success("received %s at call count %u\n",
- label, *call_count);
+ success("received %s at call count %u\n", label, *call_count);
(*call_count)++;
return 0;
@@ -135,7 +131,7 @@ static void client(int fd, const char *prio, unsigned int exp_call_count)
}
ret = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -170,8 +166,7 @@ static void client(int fd, const char *prio, unsigned int exp_call_count)
} while (ret == GNUTLS_E_AGAIN);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
}
@@ -226,7 +221,8 @@ static void server(int fd, const char *prio, unsigned int exp_call_count)
* are adequate.
*/
ret = gnutls_priority_set_direct(session,
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA384:-GROUP-ALL:+GROUP-SECP256R1", NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA384:-GROUP-ALL:+GROUP-SECP256R1",
+ NULL);
if (ret < 0) {
fail("server: priority set failed (%s)\n\n",
gnutls_strerror(ret));
@@ -236,8 +232,7 @@ static void server(int fd, const char *prio, unsigned int exp_call_count)
gnutls_certificate_set_x509_key_mem(serverx509cred,
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_transport_set_int(session, fd);
@@ -270,14 +265,14 @@ static void server(int fd, const char *prio, unsigned int exp_call_count)
if (ret == 0) {
if (debug)
- success("server: Peer has closed the GnuTLS connection\n");
+ success
+ ("server: Peer has closed the GnuTLS connection\n");
} else if (ret < 0) {
fail("server: Received corrupted data(%d). Closing...\n", ret);
} else if (ret > 0) {
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
if (call_count != exp_call_count)
@@ -310,8 +305,7 @@ static void terminate(void)
exit(1);
}
-static void
-run(const char *prio, unsigned int exp_call_count)
+static void run(const char *prio, unsigned int exp_call_count)
{
int fd[2];
int ret;
diff --git a/tests/ktls_keyupdate.c b/tests/ktls_keyupdate.c
index af3b2e553d..5844c56497 100644
--- a/tests/ktls_keyupdate.c
+++ b/tests/ktls_keyupdate.c
@@ -18,7 +18,7 @@
// along with GnuTLS. If not, see <https://www.gnu.org/licenses/>.
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -50,11 +50,10 @@ int main(void)
#else
+# define MAX_BUF 1024
+# define MSG "Hello world!"
-#define MAX_BUF 1024
-#define MSG "Hello world!"
-
-#define HANDSHAKE(session, name, ret)\
+# define HANDSHAKE(session, name, ret)\
{\
do {\
ret = gnutls_handshake(session);\
@@ -66,7 +65,7 @@ int main(void)
}\
}
-#define SEND_MSG(session, name, ret)\
+# define SEND_MSG(session, name, ret)\
{\
do {\
ret = gnutls_record_send(session, MSG, strlen(MSG)+1);\
@@ -78,7 +77,7 @@ int main(void)
}\
}
-#define RECV_MSG(session, name, buffer, buffer_len, ret)\
+# define RECV_MSG(session, name, buffer, buffer_len, ret)\
{\
memset(buffer, 0, sizeof(buffer));\
do{\
@@ -98,7 +97,7 @@ int main(void)
}\
}
-#define KEY_UPDATE(session, name, peer_req, ret)\
+# define KEY_UPDATE(session, name, peer_req, ret)\
{\
do {\
ret = gnutls_session_key_update(session, peer_req);\
@@ -110,7 +109,7 @@ int main(void)
}\
}
-#define CHECK_KTLS_ENABLED(session, ret)\
+# define CHECK_KTLS_ENABLED(session, ret)\
{\
ret = gnutls_transport_is_ktls_enabled(session);\
if (!(ret & GNUTLS_KTLS_RECV)){\
@@ -129,7 +128,6 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
static void client(int fd, const char *prio, int pipe)
{
const char *name = "client";
@@ -160,30 +158,24 @@ static void client(int fd, const char *prio, int pipe)
HANDSHAKE(session, name, ret);
CHECK_KTLS_ENABLED(session, ret)
-
- // Test 0: Try sending/receiving data
- RECV_MSG(session, name, buffer, MAX_BUF+1, ret)
- SEND_MSG(session, name, ret)
-
- CHECK_KTLS_ENABLED(session, ret)
-
- // Test 1: Servers does key update
- read(pipe, &foo, 1);
- RECV_MSG(session, name, buffer, MAX_BUF+1, ret)
- SEND_MSG(session, name, ret)
-
- CHECK_KTLS_ENABLED(session, ret)
-
- // Test 2: Does key update witch request
- read(pipe, &foo, 1);
- RECV_MSG(session, name, buffer, MAX_BUF+1, ret)
- SEND_MSG(session, name, ret)
-
- CHECK_KTLS_ENABLED(session, ret)
-
- ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
+ // Test 0: Try sending/receiving data
+ RECV_MSG(session, name, buffer, MAX_BUF + 1, ret)
+ SEND_MSG(session, name, ret)
+ CHECK_KTLS_ENABLED(session, ret)
+ // Test 1: Servers does key update
+ read(pipe, &foo, 1);
+ RECV_MSG(session, name, buffer, MAX_BUF + 1, ret)
+ SEND_MSG(session, name, ret)
+ CHECK_KTLS_ENABLED(session, ret)
+ // Test 2: Does key update witch request
+ read(pipe, &foo, 1);
+ RECV_MSG(session, name, buffer, MAX_BUF + 1, ret)
+ SEND_MSG(session, name, ret)
+ CHECK_KTLS_ENABLED(session, ret)
+ ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("client: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("client: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
ret = 0;
@@ -227,53 +219,46 @@ static void server(int fd, const char *prio, int pipe)
gnutls_certificate_allocate_credentials(&x509_cred);
ret = gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
gnutls_init(&session, GNUTLS_SERVER);
gnutls_handshake_set_timeout(session, 0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
gnutls_transport_set_int(session, fd);
HANDSHAKE(session, name, ret)
-
- CHECK_KTLS_ENABLED(session, ret)
-
- success("Test 0: sending/receiving data\n");
+ CHECK_KTLS_ENABLED(session, ret)
+ success("Test 0: sending/receiving data\n");
SEND_MSG(session, name, ret)
- RECV_MSG(session, name, buffer, MAX_BUF+1, ret)
-
- CHECK_KTLS_ENABLED(session, ret)
-
- success("Test 1: server key update without request\n");
+ RECV_MSG(session, name, buffer, MAX_BUF + 1, ret)
+ CHECK_KTLS_ENABLED(session, ret)
+ success("Test 1: server key update without request\n");
KEY_UPDATE(session, name, 0, ret)
- write(pipe, &bar, 1);
+ write(pipe, &bar, 1);
SEND_MSG(session, name, ret)
- RECV_MSG(session, name, buffer, MAX_BUF+1, ret)
-
- CHECK_KTLS_ENABLED(session, ret)
-
- success("Test 2: server key update with request\n");
+ RECV_MSG(session, name, buffer, MAX_BUF + 1, ret)
+ CHECK_KTLS_ENABLED(session, ret)
+ success("Test 2: server key update with request\n");
KEY_UPDATE(session, name, GNUTLS_KU_PEER, ret)
- write(pipe, &bar, 1);
+ write(pipe, &bar, 1);
SEND_MSG(session, name, ret)
- RECV_MSG(session, name, buffer, MAX_BUF+1, ret)
-
- CHECK_KTLS_ENABLED(session, ret)
-
- ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
+ RECV_MSG(session, name, buffer, MAX_BUF + 1, ret)
+ CHECK_KTLS_ENABLED(session, ret)
+ ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
ret = 0;
-end:
+ end:
close(fd);
gnutls_deinit(session);
@@ -281,7 +266,7 @@ end:
gnutls_global_deinit();
- if (ret){
+ if (ret) {
terminate();
}
@@ -302,7 +287,7 @@ static void run(const char *prio)
int listener;
int fd;
- int sync_pipe[2]; //used for synchronization
+ int sync_pipe[2]; //used for synchronization
pipe(sync_pipe);
success("running ktls test with %s\n", prio);
@@ -311,7 +296,7 @@ static void run(const char *prio)
signal(SIGPIPE, SIG_IGN);
listener = socket(AF_INET, SOCK_STREAM, 0);
- if (listener == -1){
+ if (listener == -1) {
fail("error in listener(): %s\n", strerror(errno));
}
@@ -320,14 +305,14 @@ static void run(const char *prio)
saddr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
saddr.sin_port = 0;
- ret = bind(listener, (struct sockaddr*)&saddr, sizeof(saddr));
- if (ret == -1){
+ ret = bind(listener, (struct sockaddr *)&saddr, sizeof(saddr));
+ if (ret == -1) {
fail("error in bind(): %s\n", strerror(errno));
}
addrlen = sizeof(saddr);
- ret = getsockname(listener, (struct sockaddr*)&saddr, &addrlen);
- if (ret == -1){
+ ret = getsockname(listener, (struct sockaddr *)&saddr, &addrlen);
+ if (ret == -1) {
fail("error in getsockname(): %s\n", strerror(errno));
}
@@ -357,13 +342,13 @@ static void run(const char *prio)
check_wait_status(status);
} else {
fd = socket(AF_INET, SOCK_STREAM, 0);
- if (fd == -1){
+ if (fd == -1) {
fail("error in socket(): %s\n", strerror(errno));
exit(1);
}
usleep(1000000);
- connect(fd, (struct sockaddr*)&saddr, addrlen);
+ connect(fd, (struct sockaddr *)&saddr, addrlen);
close(sync_pipe[1]);
client(fd, prio, sync_pipe[0]);
diff --git a/tests/long-session-id.c b/tests/long-session-id.c
index 01dea4de3e..86858bd780 100644
--- a/tests/long-session-id.c
+++ b/tests/long-session-id.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,17 +35,17 @@ void doit(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include "utils.h"
/* This program tests the robustness of record
* decoding.
@@ -97,7 +97,6 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
/* A very basic TLS client, with anonymous authentication.
*/
@@ -143,10 +142,13 @@ static void client(int fd, const char *prio)
}
if (ret == GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER) {
- fprintf(stderr, "client: Handshake failed (expected): %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "client: Handshake failed (expected): %s\n",
+ gnutls_strerror(ret));
goto cleanup;
} else {
- fprintf(stderr, "client: Handshake was completed or failed with unknown error code(%d): %s\n", ret, gnutls_strerror(ret));
+ fprintf(stderr,
+ "client: Handshake was completed or failed with unknown error code(%d): %s\n",
+ ret, gnutls_strerror(ret));
kill(getpid(), SIGSEGV);
}
@@ -160,7 +162,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -168,11 +169,10 @@ static void server(int fd, const char *prio)
{
int ret;
uint8_t id[255];
- uint8_t buffer[] = "\x16\x03\x01\x01\x25"
- "\x02\x00\x01\x21"
- "\x03\x01"/*Server Version */
- /*Random*/"\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00"
- /*SessionID*/"\xfe";
+ uint8_t buffer[] = "\x16\x03\x01\x01\x25" "\x02\x00\x01\x21" "\x03\x01" /*Server Version */
+ /*Random */
+ "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00\x00\x00\x01\x00\x00"
+ /*SessionID */ "\xfe";
ret = read(fd, id, sizeof(id));
if (ret < 0) {
diff --git a/tests/mini-alpn.c b/tests/mini-alpn.c
index b6e433714e..97e1478851 100644
--- a/tests/mini-alpn.c
+++ b/tests/mini-alpn.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,18 +33,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -67,7 +67,8 @@ static pid_t child;
/* A very basic DTLS client, with anonymous authentication, that negotiates SRTP
*/
-static void client(int fd, const char *protocol0, const char *protocol2, const char *protocol1)
+static void client(int fd, const char *protocol0, const char *protocol2,
+ const char *protocol1)
{
gnutls_session_t session;
int ret;
@@ -94,11 +95,11 @@ static void client(int fd, const char *protocol0, const char *protocol2, const c
NULL);
if (protocol1) {
gnutls_datum_t t[3];
- t[0].data = (void *) protocol0;
+ t[0].data = (void *)protocol0;
t[0].size = strlen(protocol0);
- t[1].data = (void *) protocol1;
+ t[1].data = (void *)protocol1;
t[1].size = strlen(protocol1);
- t[2].data = (void *) protocol2;
+ t[2].data = (void *)protocol2;
t[2].size = strlen(protocol2);
ret = gnutls_alpn_set_protocols(session, t, 3, 0);
@@ -143,10 +144,9 @@ static void client(int fd, const char *protocol0, const char *protocol2, const c
if (debug) {
fprintf(stderr, "selected protocol: %.*s\n",
- (int) proto.size, proto.data);
+ (int)proto.size, proto.data);
}
-
gnutls_bye(session, GNUTLS_SHUT_WR);
close(fd);
@@ -195,9 +195,9 @@ static void server(int fd, const char *protocol1, const char *protocol2)
"NONE:+VERS-TLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL",
NULL);
- t[0].data = (void *) protocol1;
+ t[0].data = (void *)protocol1;
t[0].size = strlen(protocol1);
- t[1].data = (void *) protocol2;
+ t[1].data = (void *)protocol2;
t[1].size = strlen(protocol2);
ret = gnutls_alpn_set_protocols(session, t, 2, 0);
@@ -236,10 +236,11 @@ static void server(int fd, const char *protocol1, const char *protocol2)
}
if (debug) {
- success("Protocol: %.*s\n", (int) selected.size, selected.data);
+ success("Protocol: %.*s\n", (int)selected.size, selected.data);
}
- if (selected.size != strlen(protocol1) || memcmp(selected.data, protocol1, selected.size) != 0) {
+ if (selected.size != strlen(protocol1)
+ || memcmp(selected.data, protocol1, selected.size) != 0) {
fail("did not select the expected protocol (selected %.*s, expected %s)\n", selected.size, selected.data, protocol1);
exit(1);
}
diff --git a/tests/mini-chain-unsorted.c b/tests/mini-chain-unsorted.c
index d12be9a08f..b012fbb97c 100644
--- a/tests/mini-chain-unsorted.c
+++ b/tests/mini-chain-unsorted.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
/* This program tests whether the import functions sort the
* chain.
@@ -58,7 +58,7 @@ static void client_log_func(int level, const char *str)
}
static unsigned char server_cert_pem[] =
-/* 0 */ "-----BEGIN CERTIFICATE-----\n"
+/* 0 */ "-----BEGIN CERTIFICATE-----\n"
"MIIDIzCCAgugAwIBAgIMVHc8lDcqr/T62g5oMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
"BgNVBAMTBENBLTIwIhgPMjAxNDExMjcxNTAwMzZaGA85OTk5MTIzMTIzNTk1OVow\n"
"EzERMA8GA1UEAxMIc2VydmVyLTMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
@@ -77,7 +77,7 @@ static unsigned char server_cert_pem[] =
"kmspW97ROmNr1jfQNyBVWjd1EER80zZCngXq4+JnP1tppJNcYFhHeqSGQCqASehY\n"
"CC7ITbKAK8IdwU4gVk7R92rOKyrFPimc1UwObNpxbL5jizZqemW7\n"
"-----END CERTIFICATE-----\n"
-/* 3 */ "-----BEGIN CERTIFICATE-----\n"
+/* 3 */ "-----BEGIN CERTIFICATE-----\n"
"MIIC9TCCAd2gAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
"MCIYDzIwMTQxMTI3MTUwMDM2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
"BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC16A/jNGbd6oP3\n"
@@ -95,7 +95,7 @@ static unsigned char server_cert_pem[] =
"W3QXdf/khr1T3JEJ55t1WxcC1cWV4FnecUU4wlKs1mBghV+/8cgbYjoIdUAsYsdv\n"
"SjySP3B65XXw9G3MmHOjNoRpF7Oeea8tN+zxw3xFx/a9Uq19BdOlrHE=\n"
"-----END CERTIFICATE-----\n"
-/* 1 */ "-----BEGIN CERTIFICATE-----\n"
+/* 1 */ "-----BEGIN CERTIFICATE-----\n"
"MIIDFjCCAf6gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0x\n"
"MCIYDzIwMTQxMTI3MTUwMDM2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
"BENBLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOnFo6ntaysv14\n"
@@ -112,9 +112,8 @@ static unsigned char server_cert_pem[] =
"/cB5PA7BFKvVrpYGefFQtrgkFhHSoUwDtpJAdYJPWgUMiqpvDuQdD/d6FQ18rb7w\n"
"QuIIvUeHaawm8HLrJ5JZoy7BnryY4SEFqGSTeNWp4CyeTeQPAcCdZ3NlnSDV1RM2\n"
"QelcD8S6GAp8l8LcF1zqiaoqWVYdeVnO6Doabx/IP7ZxctcdaEAdUQYjJ/dG3A2p\n"
- "wpf3tVoOBKFByhdBrz7uda09sq57+AmvQdk=\n"
- "-----END CERTIFICATE-----\n"
-/* 2 */ "-----BEGIN CERTIFICATE-----\n"
+ "wpf3tVoOBKFByhdBrz7uda09sq57+AmvQdk=\n" "-----END CERTIFICATE-----\n"
+/* 2 */ "-----BEGIN CERTIFICATE-----\n"
"MIIDFjCCAf6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
"MCIYDzIwMTQxMTI3MTUwMDM2WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
"BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDft9fjnipXU+WO\n"
@@ -131,11 +130,9 @@ static unsigned char server_cert_pem[] =
"kxbxL0ZWezMbC/U8R3tFSDZOCb/bM+wCKg1hX5My0+utKAmhbwlYQY9fKyhZCUdv\n"
"GnO3f5JInJDH2FmG80RouZ8Av6CjOwfChz+SPTgrMsbTugYWX9SVQ8oRF+N7cudC\n"
"7XlvScNQKlbzmMl2zLQOrL78djCLVdU70bZcpq1o7L/R59YNAB+4fGH8rTWZMYQB\n"
- "rSoCPlyNAYAqMPXPsUFV/ngeYNSbpTz3SGA=\n"
- "-----END CERTIFICATE-----\n"
- "\n";
+ "rSoCPlyNAYAqMPXPsUFV/ngeYNSbpTz3SGA=\n" "-----END CERTIFICATE-----\n" "\n";
-const gnutls_datum_t server_cert = {
+const gnutls_datum_t server_cert = {
server_cert_pem,
sizeof(server_cert_pem)
};
@@ -173,11 +170,10 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd)
{
@@ -203,8 +199,8 @@ static void client(int fd)
/* Use default priorities */
ret =
gnutls_priority_set_direct(session,
- "NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA",
- &p);
+ "NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA",
+ &p);
if (ret < 0) {
fail("error in setting priority: %s\n", p);
exit(1);
@@ -248,7 +244,6 @@ static void client(int fd)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -279,10 +274,11 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
ret = gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
- fail("server: gnutls_certificate_set_x509_key_mem: %s\n", gnutls_strerror(ret));
+ fail("server: gnutls_certificate_set_x509_key_mem: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -295,7 +291,6 @@ static void server(int fd)
}
while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
if (debug)
success("server: Handshake was completed\n");
diff --git a/tests/mini-dtls-discard.c b/tests/mini-dtls-discard.c
index c8b68ff0a8..121374f0d4 100644
--- a/tests/mini-dtls-discard.c
+++ b/tests/mini-dtls-discard.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,26 +35,26 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <errno.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <errno.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <assert.h>
-#include "utils.h"
+# include "utils.h"
-#define TXT1 "hello there"
-#define TXT1_SIZE (sizeof(TXT1)-1)
+# define TXT1 "hello there"
+# define TXT1_SIZE (sizeof(TXT1)-1)
-#define TXT2 "2hello there"
-#define TXT2_SIZE (sizeof(TXT2)-1)
+# define TXT2 "2hello there"
+# define TXT2_SIZE (sizeof(TXT2)-1)
static void terminate(void);
@@ -68,12 +68,11 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
static int counter = 0;
if (counter % 2 == 0) {
@@ -140,10 +139,11 @@ static void client(int fd, const char *prio)
do {
ret = gnutls_record_send(session, TXT1, TXT1_SIZE);
if (ret == GNUTLS_E_AGAIN) {
- if (debug) success("discarding\n");
+ if (debug)
+ success("discarding\n");
gnutls_record_discard_queued(session);
}
-
+
} while (ret == GNUTLS_E_INTERRUPTED);
do {
@@ -161,7 +161,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -244,7 +243,6 @@ static void server(int fd, const char *prio)
terminate();
}
-
/* do not wait for the peer to close the connection.
*/
gnutls_bye(session, GNUTLS_SHUT_WR);
@@ -297,8 +295,10 @@ void start(const char *prio)
void doit(void)
{
- start("NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL");
- start("NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL");
+ start
+ ("NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL");
+ start
+ ("NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL");
}
#endif /* _WIN32 */
diff --git a/tests/mini-dtls-fork.c b/tests/mini-dtls-fork.c
index 41dd062dd9..9985dd06f4 100644
--- a/tests/mini-dtls-fork.c
+++ b/tests/mini-dtls-fork.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -74,38 +74,36 @@ static void tls_log_func(int level, const char *str)
}
static unsigned char server_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIICHzCCAaWgAwIBAgIBCTAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G\n"
- "A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN\n"
- "MTMwOTI0MTU1MjA0WhcNMjMwOTIyMTU1MjA0WjA0MQswCQYDVQQGEwJOTDERMA8G\n"
- "A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG\n"
- "CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA\n"
- "2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgZ0wgZowCQYDVR0TBAIwADAd\n"
- "BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB\n"
- "PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh\n"
- "clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAoG\n"
- "CCqGSM49BAMCA2gAMGUCMQCaLFzXptui5WQN8LlO3ddh1hMxx6tzgLvT03MTVK2S\n"
- "C12r0Lz3ri/moSEpNZWqPjkCMCE2f53GXcYLqyfyJR078c/xNSUU5+Xxl7VZ414V\n"
- "fGa5kHvHARBPc8YAIVIqDvHH1Q==\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICHzCCAaWgAwIBAgIBCTAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G\n"
+ "A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN\n"
+ "MTMwOTI0MTU1MjA0WhcNMjMwOTIyMTU1MjA0WjA0MQswCQYDVQQGEwJOTDERMA8G\n"
+ "A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG\n"
+ "CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA\n"
+ "2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgZ0wgZowCQYDVR0TBAIwADAd\n"
+ "BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB\n"
+ "PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh\n"
+ "clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAoG\n"
+ "CCqGSM49BAMCA2gAMGUCMQCaLFzXptui5WQN8LlO3ddh1hMxx6tzgLvT03MTVK2S\n"
+ "C12r0Lz3ri/moSEpNZWqPjkCMCE2f53GXcYLqyfyJR078c/xNSUU5+Xxl7VZ414V\n"
+ "fGa5kHvHARBPc8YAIVIqDvHH1Q==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char server_key_pem[] =
- "-----BEGIN EC PRIVATE KEY-----\n"
- "MHcCAQEEIPEqEyB2AnCoPL/9U/YDHvdqXYbIogTywwyp6/UfDw6noAoGCCqGSM49\n"
- "AwEHoUQDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO5QDYIxH/\n"
- "6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/w==\n"
- "-----END EC PRIVATE KEY-----\n";
+ "-----BEGIN EC PRIVATE KEY-----\n"
+ "MHcCAQEEIPEqEyB2AnCoPL/9U/YDHvdqXYbIogTywwyp6/UfDw6noAoGCCqGSM49\n"
+ "AwEHoUQDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO5QDYIxH/\n"
+ "6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/w==\n" "-----END EC PRIVATE KEY-----\n";
const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-#define MSG "hello1111"
-#define MSG2 "xxxxxxxxxxxx"
+# define MSG "hello1111"
+# define MSG2 "xxxxxxxxxxxx"
static
void do_fork_stuff(gnutls_session_t session)
@@ -126,7 +124,8 @@ void do_fork_stuff(gnutls_session_t session)
sec_sleep(1);
/* the server should reflect our messages */
ret = gnutls_record_recv(session, buf, sizeof(buf));
- if (ret != sizeof(MSG)-1 || memcmp(buf, MSG, sizeof(MSG)-1) != 0) {
+ if (ret != sizeof(MSG) - 1
+ || memcmp(buf, MSG, sizeof(MSG) - 1) != 0) {
fail("client: recv failed: %s\n", gnutls_strerror(ret));
exit(1);
}
@@ -136,8 +135,10 @@ void do_fork_stuff(gnutls_session_t session)
}
ret = gnutls_record_recv(session, buf, sizeof(buf));
- if (ret != sizeof(MSG2)-1 || memcmp(buf, MSG2, sizeof(MSG2)-1) != 0) {
- fail("client: recv2 failed: %s\n", gnutls_strerror(ret));
+ if (ret != sizeof(MSG2) - 1
+ || memcmp(buf, MSG2, sizeof(MSG2) - 1) != 0) {
+ fail("client: recv2 failed: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -147,19 +148,21 @@ void do_fork_stuff(gnutls_session_t session)
ret = gnutls_record_recv(session, buf, sizeof(buf));
if (ret != 0) {
- fail("client: recv3 failed: %s\n", gnutls_strerror(ret));
+ fail("client: recv3 failed: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- } else if (pid == 0) { /* child */
- ret = gnutls_record_send(session, MSG, sizeof(MSG)-1);
- if (ret != sizeof(MSG)-1) {
+ } else if (pid == 0) { /* child */
+ ret = gnutls_record_send(session, MSG, sizeof(MSG) - 1);
+ if (ret != sizeof(MSG) - 1) {
fail("client: send failed: %s\n", gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_record_send(session, MSG2, sizeof(MSG2)-1);
- if (ret != sizeof(MSG2)-1) {
- fail("client: send2 failed: %s\n", gnutls_strerror(ret));
+ ret = gnutls_record_send(session, MSG2, sizeof(MSG2) - 1);
+ if (ret != sizeof(MSG2) - 1) {
+ fail("client: send2 failed: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
sec_sleep(2);
@@ -185,7 +188,8 @@ static void do_reflect_stuff(gnutls_session_t session)
buf_size = ret;
if (debug) {
- fprintf(stderr, "server received: %.*s\n", buf_size, buf);
+ fprintf(stderr, "server received: %.*s\n", buf_size,
+ buf);
}
ret = gnutls_record_send(session, buf, buf_size);
@@ -193,7 +197,7 @@ static void do_reflect_stuff(gnutls_session_t session)
fail("server: send failed: %s\n", gnutls_strerror(ret));
terminate();
}
- } while(1);
+ } while (1);
/* do not wait for the peer to close the connection.
*/
@@ -221,7 +225,8 @@ static void client(int fd, unsigned do_fork)
*/
gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM);
gnutls_dtls_set_mtu(session, 1500);
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
//gnutls_transport_set_push_function(session, push);
/* Use default priorities */
@@ -266,7 +271,6 @@ static void client(int fd, unsigned do_fork)
exit(0);
}
-
static void server(int fd, unsigned do_fork)
{
int ret;
@@ -277,21 +281,21 @@ static void server(int fd, unsigned do_fork)
*/
global_init();
-#if 0
+# if 0
if (debug) {
side = "server";
gnutls_global_set_log_function(tls_log_func);
gnutls_global_set_log_level(4711);
}
-#endif
+# endif
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
gnutls_dtls_set_mtu(session, 400);
/* avoid calling all the priority functions, since the defaults
@@ -328,7 +332,6 @@ static void server(int fd, unsigned do_fork)
else
do_reflect_stuff(session);
-
close(fd);
gnutls_deinit(session);
@@ -369,7 +372,7 @@ void run(unsigned do_fork)
check_wait_status(status);
} else {
close(fd[0]);
- server(fd[1], 1-do_fork);
+ server(fd[1], 1 - do_fork);
exit(0);
}
}
diff --git a/tests/mini-dtls-heartbeat.c b/tests/mini-dtls-heartbeat.c
index 5e249e051f..b541683cac 100644
--- a/tests/mini-dtls-heartbeat.c
+++ b/tests/mini-dtls-heartbeat.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -69,8 +69,7 @@ static pid_t child;
/* A very basic DTLS client, with anonymous authentication, that exchanges heartbeats.
*/
-#define MAX_BUF 1024
-
+# define MAX_BUF 1024
static void client(int fd, int server_init)
{
@@ -130,8 +129,7 @@ static void client(int fd, int server_init)
if (!server_init) {
do {
ret =
- gnutls_record_recv(session, buffer,
- sizeof(buffer));
+ gnutls_record_recv(session, buffer, sizeof(buffer));
if (ret == GNUTLS_E_HEARTBEAT_PING_RECEIVED) {
if (debug)
@@ -146,7 +144,7 @@ static void client(int fd, int server_init)
}
}
while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED
- || ret == GNUTLS_E_HEARTBEAT_PING_RECEIVED);
+ || ret == GNUTLS_E_HEARTBEAT_PING_RECEIVED);
if (ret < 0) {
fail("recv: %s\n", gnutls_strerror(ret));
@@ -161,8 +159,7 @@ static void client(int fd, int server_init)
if (debug)
success("Ping sent.\n");
}
- while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("ping: %s\n", gnutls_strerror(ret));
@@ -181,8 +178,6 @@ static void client(int fd, int server_init)
gnutls_global_deinit();
}
-
-
static gnutls_session_t initialize_tls_session(void)
{
gnutls_session_t session;
@@ -257,8 +252,7 @@ static void server(int fd, int server_init)
if (server_init) {
do {
ret =
- gnutls_record_recv(session, buffer,
- sizeof(buffer));
+ gnutls_record_recv(session, buffer, sizeof(buffer));
if (ret == GNUTLS_E_HEARTBEAT_PING_RECEIVED) {
if (debug)
@@ -273,7 +267,7 @@ static void server(int fd, int server_init)
}
}
while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED
- || ret == GNUTLS_E_HEARTBEAT_PING_RECEIVED);
+ || ret == GNUTLS_E_HEARTBEAT_PING_RECEIVED);
} else {
do {
ret =
@@ -283,8 +277,7 @@ static void server(int fd, int server_init)
if (debug)
success("Ping sent.\n");
}
- while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("ping: %s\n", gnutls_strerror(ret));
diff --git a/tests/mini-dtls-hello-verify-48.c b/tests/mini-dtls-hello-verify-48.c
index aa530217c0..d16116612a 100644
--- a/tests/mini-dtls-hello-verify-48.c
+++ b/tests/mini-dtls-hello-verify-48.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -41,20 +41,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <sys/select.h>
-#include <errno.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <sys/select.h>
+# include <errno.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+
+# include "utils.h"
static void server_log_func(int level, const char *str)
{
@@ -66,12 +66,11 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
return send(fd, data, len, 0);
}
@@ -134,19 +133,19 @@ static void client(int fd)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
-#define CLI_ADDR (void*)"test"
-#define CLI_ADDR_LEN 4
+# define CLI_ADDR (void*)"test"
+# define CLI_ADDR_LEN 4
static
-ssize_t recv_timeout(int sockfd, void *buf, size_t len, unsigned flags, unsigned sec)
+ssize_t recv_timeout(int sockfd, void *buf, size_t len, unsigned flags,
+ unsigned sec)
{
-int ret;
-struct timeval tv;
-fd_set set;
+ int ret;
+ struct timeval tv;
+ fd_set set;
tv.tv_sec = sec;
tv.tv_usec = 0;
@@ -166,7 +165,7 @@ fd_set set;
return recv(sockfd, buf, len, flags);
}
-#define SERV_TIMEOUT 30
+# define SERV_TIMEOUT 30
static void server(int fd)
{
@@ -212,7 +211,9 @@ static void server(int fd)
gnutls_transport_set_push_function(session, push);
for (;;) {
- ret = recv_timeout(fd, buffer, sizeof(buffer), MSG_PEEK, SERV_TIMEOUT);
+ ret =
+ recv_timeout(fd, buffer, sizeof(buffer), MSG_PEEK,
+ SERV_TIMEOUT);
if (ret < 0) {
if (try != 0) {
success("Server was terminated as expected!\n");
@@ -240,14 +241,15 @@ static void server(int fd)
CLI_ADDR_LEN,
&prestate,
(gnutls_transport_ptr_t)
- (long) fd, push);
+ (long)fd, push);
if (ret < 0) {
fail("Cannot send data\n");
exit(1);
}
/* discard peeked data */
- recv_timeout(fd, buffer, sizeof(buffer), 0, SERV_TIMEOUT);
+ recv_timeout(fd, buffer, sizeof(buffer), 0,
+ SERV_TIMEOUT);
csend++;
if (csend > 2) {
diff --git a/tests/mini-dtls-hello-verify.c b/tests/mini-dtls-hello-verify.c
index 55f38f5cd0..0eb8172180 100644
--- a/tests/mini-dtls-hello-verify.c
+++ b/tests/mini-dtls-hello-verify.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -66,12 +66,11 @@ static void client_log_func(int level, const char *str)
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
return send(fd, data, len, 0);
}
@@ -138,8 +137,7 @@ static void client(int fd)
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -148,7 +146,7 @@ static void client(int fd)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -159,7 +157,6 @@ static void client(int fd)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -172,8 +169,8 @@ static void terminate(void)
exit(1);
}
-#define CLI_ADDR (void*)"test"
-#define CLI_ADDR_LEN 4
+# define CLI_ADDR (void*)"test"
+# define CLI_ADDR_LEN 4
static void server(int fd)
{
@@ -238,7 +235,7 @@ static void server(int fd)
CLI_ADDR_LEN,
&prestate,
(gnutls_transport_ptr_t)
- (long) fd, push);
+ (long)fd, push);
if (ret < 0) {
fail("Cannot send data\n");
terminate();
@@ -296,7 +293,6 @@ static void server(int fd)
terminate();
}
-
/* do not wait for the peer to close the connection.
*/
gnutls_bye(session, GNUTLS_SHUT_WR);
diff --git a/tests/mini-dtls-large.c b/tests/mini-dtls-large.c
index 80fd2bcfc3..6e8270247e 100644
--- a/tests/mini-dtls-large.c
+++ b/tests/mini-dtls-large.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,17 +33,17 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -66,8 +66,8 @@ static pid_t child;
/* A very basic DTLS client, with anonymous authentication, that exchanges heartbeats.
*/
-#define MAX_BUF 24*1024
-#define MAX_MTU 20*1024
+# define MAX_BUF 24*1024
+# define MAX_MTU 20*1024
static void client(int fd)
{
@@ -209,7 +209,7 @@ static void server(int fd)
ret =
gnutls_record_send(session, buffer,
- gnutls_dtls_get_data_mtu(session) + 12);
+ gnutls_dtls_get_data_mtu(session) + 12);
if (ret != GNUTLS_E_LARGE_PACKET) {
terminate();
fail("send[%d]: %s\n", __LINE__, gnutls_strerror(ret));
@@ -217,7 +217,7 @@ static void server(int fd)
ret =
gnutls_record_send(session, buffer,
- gnutls_dtls_get_data_mtu(session) + 5048);
+ gnutls_dtls_get_data_mtu(session) + 5048);
if (ret != GNUTLS_E_LARGE_PACKET) {
terminate();
fail("send[%d]: %s\n", __LINE__, gnutls_strerror(ret));
@@ -225,7 +225,7 @@ static void server(int fd)
ret =
gnutls_record_send(session, buffer,
- gnutls_dtls_get_data_mtu(session));
+ gnutls_dtls_get_data_mtu(session));
if (ret < 0) {
terminate();
fail("send[%d]: %s\n", __LINE__, gnutls_strerror(ret));
@@ -234,7 +234,7 @@ static void server(int fd)
gnutls_dtls_set_mtu(session, MAX_MTU);
ret =
gnutls_record_send(session, buffer,
- gnutls_dtls_get_data_mtu(session) + 12);
+ gnutls_dtls_get_data_mtu(session) + 12);
if (ret != GNUTLS_E_LARGE_PACKET) {
terminate();
fail("send[%d]: %s\n", __LINE__, gnutls_strerror(ret));
@@ -242,7 +242,7 @@ static void server(int fd)
ret =
gnutls_record_send(session, buffer,
- gnutls_dtls_get_data_mtu(session) + 5048);
+ gnutls_dtls_get_data_mtu(session) + 5048);
if (ret != GNUTLS_E_LARGE_PACKET) {
terminate();
fail("send[%d]: %s\n", __LINE__, gnutls_strerror(ret));
@@ -250,7 +250,7 @@ static void server(int fd)
ret =
gnutls_record_send(session, buffer,
- gnutls_dtls_get_data_mtu(session));
+ gnutls_dtls_get_data_mtu(session));
if (ret > 16384 || ret < 0) {
terminate();
fail("send[%d]: %s\n", __LINE__, gnutls_strerror(ret));
@@ -261,7 +261,7 @@ static void server(int fd)
ret =
gnutls_record_send(session, buffer,
- gnutls_dtls_get_data_mtu(session));
+ gnutls_dtls_get_data_mtu(session));
if (ret < 0) {
terminate();
fail("send[%d]: %s\n", __LINE__, gnutls_strerror(ret));
@@ -277,7 +277,7 @@ static void server(int fd)
ret =
gnutls_record_send(session, buffer,
- gnutls_dtls_get_data_mtu(session) - 16);
+ gnutls_dtls_get_data_mtu(session) - 16);
if (ret < 0) {
terminate();
fail("send[%d]: %s\n", __LINE__, gnutls_strerror(ret));
@@ -285,7 +285,7 @@ static void server(int fd)
ret =
gnutls_record_send(session, buffer,
- gnutls_dtls_get_data_mtu(session));
+ gnutls_dtls_get_data_mtu(session));
if (ret != GNUTLS_E_LARGE_PACKET) {
terminate();
fail("send[%d]: %s\n", __LINE__, gnutls_strerror(ret));
diff --git a/tests/mini-dtls-lowmtu.c b/tests/mini-dtls-lowmtu.c
index 996deb8bed..2aed25913e 100644
--- a/tests/mini-dtls-lowmtu.c
+++ b/tests/mini-dtls-lowmtu.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -37,18 +37,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -67,41 +67,38 @@ static void client_log_func(int level, const char *str)
}
static unsigned char server_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIICHzCCAaWgAwIBAgIBCTAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G\n"
- "A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN\n"
- "MTMwOTI0MTU1MjA0WhcNMjMwOTIyMTU1MjA0WjA0MQswCQYDVQQGEwJOTDERMA8G\n"
- "A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG\n"
- "CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA\n"
- "2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgZ0wgZowCQYDVR0TBAIwADAd\n"
- "BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB\n"
- "PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh\n"
- "clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAoG\n"
- "CCqGSM49BAMCA2gAMGUCMQCaLFzXptui5WQN8LlO3ddh1hMxx6tzgLvT03MTVK2S\n"
- "C12r0Lz3ri/moSEpNZWqPjkCMCE2f53GXcYLqyfyJR078c/xNSUU5+Xxl7VZ414V\n"
- "fGa5kHvHARBPc8YAIVIqDvHH1Q==\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICHzCCAaWgAwIBAgIBCTAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G\n"
+ "A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN\n"
+ "MTMwOTI0MTU1MjA0WhcNMjMwOTIyMTU1MjA0WjA0MQswCQYDVQQGEwJOTDERMA8G\n"
+ "A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG\n"
+ "CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA\n"
+ "2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgZ0wgZowCQYDVR0TBAIwADAd\n"
+ "BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB\n"
+ "PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh\n"
+ "clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAoG\n"
+ "CCqGSM49BAMCA2gAMGUCMQCaLFzXptui5WQN8LlO3ddh1hMxx6tzgLvT03MTVK2S\n"
+ "C12r0Lz3ri/moSEpNZWqPjkCMCE2f53GXcYLqyfyJR078c/xNSUU5+Xxl7VZ414V\n"
+ "fGa5kHvHARBPc8YAIVIqDvHH1Q==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char server_key_pem[] =
- "-----BEGIN EC PRIVATE KEY-----\n"
- "MHcCAQEEIPEqEyB2AnCoPL/9U/YDHvdqXYbIogTywwyp6/UfDw6noAoGCCqGSM49\n"
- "AwEHoUQDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO5QDYIxH/\n"
- "6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/w==\n"
- "-----END EC PRIVATE KEY-----\n";
+ "-----BEGIN EC PRIVATE KEY-----\n"
+ "MHcCAQEEIPEqEyB2AnCoPL/9U/YDHvdqXYbIogTywwyp6/UfDw6noAoGCCqGSM49\n"
+ "AwEHoUQDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO5QDYIxH/\n"
+ "6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/w==\n" "-----END EC PRIVATE KEY-----\n";
const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static int mtu = 0;
@@ -127,7 +124,7 @@ static void client(int fd, const char *prio)
/* Initialize TLS session
*/
gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM);
-// gnutls_dtls_set_mtu(session, 104);
+// gnutls_dtls_set_mtu(session, 104);
/* Use default priorities */
gnutls_priority_set_direct(session, prio, NULL);
@@ -147,7 +144,8 @@ static void client(int fd, const char *prio)
while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
if (ret < 0) {
- fail("client: Handshake failed: %s (%d)\n", gnutls_strerror(ret), ret);
+ fail("client: Handshake failed: %s (%d)\n",
+ gnutls_strerror(ret), ret);
exit(1);
} else {
if (debug)
@@ -162,14 +160,12 @@ static void client(int fd, const char *prio)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -180,7 +176,7 @@ static void client(int fd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -192,7 +188,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -223,8 +218,7 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
@@ -264,12 +258,10 @@ static void server(int fd, const char *prio)
do {
ret =
gnutls_record_send(session, buffer,
- gnutls_dtls_get_data_mtu(session));
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ gnutls_dtls_get_data_mtu(session));
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
- fail("Error sending packet: %s\n",
- gnutls_strerror(ret));
+ fail("Error sending packet: %s\n", gnutls_strerror(ret));
terminate();
}
@@ -319,7 +311,7 @@ static void start(const char *prio)
}
}
-#define AES_GCM "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+ECDHE-ECDSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_GCM "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+ECDHE-ECDSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
static void ch_handler(int sig)
{
diff --git a/tests/mini-dtls-mtu.c b/tests/mini-dtls-mtu.c
index 1db0de56ec..cb31fb05c0 100644
--- a/tests/mini-dtls-mtu.c
+++ b/tests/mini-dtls-mtu.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -48,7 +48,7 @@ void doit(void)
#else
-#include <sys/wait.h>
+# include <sys/wait.h>
/* Tests whether packing multiple DTLS records in a single UDP packet
* will be handled correctly.
@@ -62,31 +62,29 @@ static void tls_log_func(int level, const char *str)
}
static unsigned char server_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIICHzCCAaWgAwIBAgIBCTAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G\n"
- "A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN\n"
- "MTMwOTI0MTU1MjA0WhcNMjMwOTIyMTU1MjA0WjA0MQswCQYDVQQGEwJOTDERMA8G\n"
- "A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG\n"
- "CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA\n"
- "2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgZ0wgZowCQYDVR0TBAIwADAd\n"
- "BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB\n"
- "PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh\n"
- "clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAoG\n"
- "CCqGSM49BAMCA2gAMGUCMQCaLFzXptui5WQN8LlO3ddh1hMxx6tzgLvT03MTVK2S\n"
- "C12r0Lz3ri/moSEpNZWqPjkCMCE2f53GXcYLqyfyJR078c/xNSUU5+Xxl7VZ414V\n"
- "fGa5kHvHARBPc8YAIVIqDvHH1Q==\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICHzCCAaWgAwIBAgIBCTAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G\n"
+ "A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN\n"
+ "MTMwOTI0MTU1MjA0WhcNMjMwOTIyMTU1MjA0WjA0MQswCQYDVQQGEwJOTDERMA8G\n"
+ "A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG\n"
+ "CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA\n"
+ "2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgZ0wgZowCQYDVR0TBAIwADAd\n"
+ "BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB\n"
+ "PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh\n"
+ "clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAoG\n"
+ "CCqGSM49BAMCA2gAMGUCMQCaLFzXptui5WQN8LlO3ddh1hMxx6tzgLvT03MTVK2S\n"
+ "C12r0Lz3ri/moSEpNZWqPjkCMCE2f53GXcYLqyfyJR078c/xNSUU5+Xxl7VZ414V\n"
+ "fGa5kHvHARBPc8YAIVIqDvHH1Q==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char server_key_pem[] =
- "-----BEGIN EC PRIVATE KEY-----\n"
- "MHcCAQEEIPEqEyB2AnCoPL/9U/YDHvdqXYbIogTywwyp6/UfDw6noAoGCCqGSM49\n"
- "AwEHoUQDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO5QDYIxH/\n"
- "6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/w==\n"
- "-----END EC PRIVATE KEY-----\n";
+ "-----BEGIN EC PRIVATE KEY-----\n"
+ "MHcCAQEEIPEqEyB2AnCoPL/9U/YDHvdqXYbIogTywwyp6/UfDw6noAoGCCqGSM49\n"
+ "AwEHoUQDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO5QDYIxH/\n"
+ "6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/w==\n" "-----END EC PRIVATE KEY-----\n";
const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
@@ -160,7 +158,8 @@ static void client(int fd)
gnutls_transport_set_int(session, fd);
gnutls_transport_set_pull_function(session, client_pull);
- gnutls_transport_set_pull_timeout_function(session, client_pull_timeout);
+ gnutls_transport_set_pull_timeout_function(session,
+ client_pull_timeout);
/* Perform the TLS handshake
*/
@@ -224,8 +223,7 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
gnutls_handshake_set_timeout(session, get_timeout());
@@ -276,8 +274,6 @@ static void server(int fd)
success("server: finished\n");
}
-
-
void doit(void)
{
int fd[2];
diff --git a/tests/mini-dtls-record-asym.c b/tests/mini-dtls-record-asym.c
index 9e63a07785..0082abdec7 100644
--- a/tests/mini-dtls-record-asym.c
+++ b/tests/mini-dtls-record-asym.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -43,12 +43,12 @@ void doit(void)
#else
-#include <limits.h>
-#include <netinet/in.h>
-#include <poll.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
+# include <limits.h>
+# include <netinet/in.h>
+# include <poll.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
/* Tests whether packing multiple DTLS records in a single UDP packet
* will be handled correctly, as well as an asymmetry in MTU sizes
@@ -89,7 +89,8 @@ static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
if (debug)
fprintf(stderr, "caching: %s (buffer: %d)\n",
- gnutls_handshake_description_get_name(d[13]),
+ gnutls_handshake_description_get_name(d
+ [13]),
buffer_size);
return len;
} else if (debug) {
@@ -111,31 +112,29 @@ static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
}
static unsigned char server_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIICHzCCAaWgAwIBAgIBCTAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G\n"
- "A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN\n"
- "MTMwOTI0MTU1MjA0WhcNMjMwOTIyMTU1MjA0WjA0MQswCQYDVQQGEwJOTDERMA8G\n"
- "A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG\n"
- "CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA\n"
- "2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgZ0wgZowCQYDVR0TBAIwADAd\n"
- "BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB\n"
- "PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh\n"
- "clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAoG\n"
- "CCqGSM49BAMCA2gAMGUCMQCaLFzXptui5WQN8LlO3ddh1hMxx6tzgLvT03MTVK2S\n"
- "C12r0Lz3ri/moSEpNZWqPjkCMCE2f53GXcYLqyfyJR078c/xNSUU5+Xxl7VZ414V\n"
- "fGa5kHvHARBPc8YAIVIqDvHH1Q==\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICHzCCAaWgAwIBAgIBCTAKBggqhkjOPQQDAjA+MQswCQYDVQQGEwJOTDERMA8G\n"
+ "A1UEChMIUG9sYXJTU0wxHDAaBgNVBAMTE1BvbGFyc3NsIFRlc3QgRUMgQ0EwHhcN\n"
+ "MTMwOTI0MTU1MjA0WhcNMjMwOTIyMTU1MjA0WjA0MQswCQYDVQQGEwJOTDERMA8G\n"
+ "A1UEChMIUG9sYXJTU0wxEjAQBgNVBAMTCWxvY2FsaG9zdDBZMBMGByqGSM49AgEG\n"
+ "CCqGSM49AwEHA0IABDfMVtl2CR5acj7HWS3/IG7ufPkGkXTQrRS192giWWKSTuUA\n"
+ "2CMR/+ov0jRdXRa9iojCa3cNVc2KKg76Aci07f+jgZ0wgZowCQYDVR0TBAIwADAd\n"
+ "BgNVHQ4EFgQUUGGlj9QH2deCAQzlZX+MY0anE74wbgYDVR0jBGcwZYAUnW0gJEkB\n"
+ "PyvLeLUZvH4kydv7NnyhQqRAMD4xCzAJBgNVBAYTAk5MMREwDwYDVQQKEwhQb2xh\n"
+ "clNTTDEcMBoGA1UEAxMTUG9sYXJzc2wgVGVzdCBFQyBDQYIJAMFD4n5iQ8zoMAoG\n"
+ "CCqGSM49BAMCA2gAMGUCMQCaLFzXptui5WQN8LlO3ddh1hMxx6tzgLvT03MTVK2S\n"
+ "C12r0Lz3ri/moSEpNZWqPjkCMCE2f53GXcYLqyfyJR078c/xNSUU5+Xxl7VZ414V\n"
+ "fGa5kHvHARBPc8YAIVIqDvHH1Q==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char server_key_pem[] =
- "-----BEGIN EC PRIVATE KEY-----\n"
- "MHcCAQEEIPEqEyB2AnCoPL/9U/YDHvdqXYbIogTywwyp6/UfDw6noAoGCCqGSM49\n"
- "AwEHoUQDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO5QDYIxH/\n"
- "6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/w==\n"
- "-----END EC PRIVATE KEY-----\n";
+ "-----BEGIN EC PRIVATE KEY-----\n"
+ "MHcCAQEEIPEqEyB2AnCoPL/9U/YDHvdqXYbIogTywwyp6/UfDw6noAoGCCqGSM49\n"
+ "AwEHoUQDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO5QDYIxH/\n"
+ "6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/w==\n" "-----END EC PRIVATE KEY-----\n";
const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
@@ -164,7 +163,8 @@ static void client(int fd, unsigned cache)
*/
gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM);
gnutls_dtls_set_mtu(session, 1500);
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
//gnutls_transport_set_push_function(session, push);
/* Use default priorities */
@@ -189,7 +189,8 @@ static void client(int fd, unsigned cache)
ret = gnutls_handshake(session);
- if (ret == GNUTLS_E_AGAIN && gnutls_record_get_direction(session) == 0) {
+ if (ret == GNUTLS_E_AGAIN
+ && gnutls_record_get_direction(session) == 0) {
int rv;
pfd.fd = fd;
pfd.events = POLLIN;
@@ -202,7 +203,8 @@ static void client(int fd, unsigned cache)
if (rv == -1)
perror("poll()");
else if (!rv)
- fail("test %d: No data were received.\n", cache);
+ fail("test %d: No data were received.\n",
+ cache);
}
}
while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
@@ -254,21 +256,21 @@ static void server(int fd, unsigned cache)
*/
global_init();
-#if 0
+# if 0
if (debug) {
side = "server";
gnutls_global_set_log_function(tls_log_func);
gnutls_global_set_log_level(4711);
}
-#endif
+# endif
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
gnutls_dtls_set_mtu(session, 400);
if (cache != 0)
gnutls_transport_set_push_function(session, push);
diff --git a/tests/mini-dtls-record.c b/tests/mini-dtls-record.c
index 53674a9733..8ab32c681f 100644
--- a/tests/mini-dtls-record.c
+++ b/tests/mini-dtls-record.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,19 +36,19 @@ int main(void)
#else
-#include <string.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <errno.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static int test_finished = 0;
static void terminate(void);
@@ -82,9 +82,9 @@ static pid_t child;
/* A test client/server app for DTLS duplicate packet detection.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-#define MAX_SEQ 128
+# define MAX_SEQ 128
static int msg_seq[] =
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 16, 5, 32, 11, 11, 11, 11, 12,
@@ -124,7 +124,8 @@ static ssize_t odd_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
[i]],
stored_sizes[msg_seq[i]], 0);
}
- while (ret == -1 && (errno == EAGAIN || errno == EINTR));
+ while (ret == -1
+ && (errno == EAGAIN || errno == EINTR));
pos++;
} else
break;
@@ -166,7 +167,7 @@ static ssize_t n_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
static int recv_msg_seq[] =
{ 1, 2, 3, 4, 5, 6, 12, 28, 7, 8, 9, 10, 11, 13, 15, 16, 14, 18, 20,
19, 21, 22, 23, 25, 24, 26, 27, 29, 30, 31, 33, 32, 34, 35, 38, 36, 37,
- -1
+ -1
};
static void client(int fd)
@@ -195,7 +196,8 @@ static void client(int fd)
/* Initialize TLS session
*/
gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM);
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
gnutls_heartbeat_enable(session, GNUTLS_HB_PEER_ALLOWED_TO_SEND);
gnutls_dtls_set_mtu(session, 1500);
@@ -249,9 +251,8 @@ static void client(int fd)
fail("received message sequence differs\n");
exit(1);
}
- if (((uint32_t)recv_msg_seq[current]) != useq) {
- fail("received message sequence differs (current: %u, got: %u, expected: %u)\n",
- (unsigned)current, (unsigned)useq, (unsigned)recv_msg_seq[current]);
+ if (((uint32_t) recv_msg_seq[current]) != useq) {
+ fail("received message sequence differs (current: %u, got: %u, expected: %u)\n", (unsigned)current, (unsigned)useq, (unsigned)recv_msg_seq[current]);
exit(1);
}
@@ -298,7 +299,8 @@ static void server(int fd)
gnutls_anon_allocate_server_credentials(&anoncred);
gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
gnutls_transport_set_push_function(session, odd_push);
gnutls_heartbeat_enable(session, GNUTLS_HB_PEER_ALLOWED_TO_SEND);
gnutls_dtls_set_mtu(session, 1500);
diff --git a/tests/mini-dtls-srtp.c b/tests/mini-dtls-srtp.c
index 63d5eafd91..d8c6c362bc 100644
--- a/tests/mini-dtls-srtp.c
+++ b/tests/mini-dtls-srtp.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -66,7 +66,7 @@ static void client_log_func(int level, const char *str)
/* These are global */
static pid_t child;
-#define MAX_KEY_MATERIAL 64*4
+# define MAX_KEY_MATERIAL 64*4
/* A very basic DTLS client, with anonymous authentication, that negotiates SRTP
*/
@@ -114,7 +114,6 @@ static void client(int fd, int profile)
exit(1);
}
-
/* put the anonymous credentials to the current session
*/
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
@@ -168,7 +167,6 @@ static void client(int fd, int profile)
success("Server salt: %s\n", buf);
}
-
gnutls_bye(session, GNUTLS_SHUT_WR);
close(fd);
diff --git a/tests/mini-dtls0-9.c b/tests/mini-dtls0-9.c
index 5607e90c8b..f532135024 100644
--- a/tests/mini-dtls0-9.c
+++ b/tests/mini-dtls0-9.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -66,20 +66,20 @@ static void client_log_func(int level, const char *str)
/* A very basic DTLS client handling DTLS 0.9 which sets premaster secret.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
return send(fd, data, len, 0);
}
-static gnutls_datum_t master =
- { (void*)"\x44\x66\x44\xa9\xb6\x29\xed\x6e\xd6\x93\x15\xdb\xf0\x7d\x4b\x2e\x18\xb1\x9d\xed\xff\x6a\x86\x76\xc9\x0e\x16\xab\xc2\x10\xbb\x17\x99\x24\xb1\xd9\xb9\x95\xe7\xea\xea\xea\xea\xea\xff\xaa\xac", 48};
-static gnutls_datum_t sess_id =
- { (void*)"\xd9\xb9\x95\xe7\xea", 5};
+static gnutls_datum_t master = { (void *)
+ "\x44\x66\x44\xa9\xb6\x29\xed\x6e\xd6\x93\x15\xdb\xf0\x7d\x4b\x2e\x18\xb1\x9d\xed\xff\x6a\x86\x76\xc9\x0e\x16\xab\xc2\x10\xbb\x17\x99\x24\xb1\xd9\xb9\x95\xe7\xea\xea\xea\xea\xea\xff\xaa\xac",
+ 48
+};
+static gnutls_datum_t sess_id = { (void *)"\xd9\xb9\x95\xe7\xea", 5 };
static void client(int fd, int proto, int cipher, int mac)
{
@@ -109,11 +109,12 @@ static void client(int fd, int proto, int cipher, int mac)
NULL);
ret = gnutls_session_set_premaster(session, GNUTLS_CLIENT,
- proto, GNUTLS_KX_RSA,
- cipher, mac,
- GNUTLS_COMP_NULL, &master, &sess_id);
+ proto, GNUTLS_KX_RSA,
+ cipher, mac,
+ GNUTLS_COMP_NULL, &master, &sess_id);
if (ret < 0) {
- fail("client: gnutls_session_set_premaster failed: %s\n", gnutls_strerror(ret));
+ fail("client: gnutls_session_set_premaster failed: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -144,13 +145,12 @@ static void client(int fd, int proto, int cipher, int mac)
(gnutls_protocol_get_version(session)));
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_recv(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -159,7 +159,7 @@ static void client(int fd, int proto, int cipher, int mac)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -170,7 +170,6 @@ static void client(int fd, int proto, int cipher, int mac)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -194,7 +193,8 @@ static void server(int fd, int proto, int cipher, int mac)
*/
global_init();
- success("testing for %s-%s\n", gnutls_cipher_get_name(cipher), gnutls_mac_get_name(mac));
+ success("testing for %s-%s\n", gnutls_cipher_get_name(cipher),
+ gnutls_mac_get_name(mac));
if (debug) {
gnutls_global_set_log_function(server_log_func);
@@ -215,11 +215,12 @@ static void server(int fd, int proto, int cipher, int mac)
NULL);
ret = gnutls_session_set_premaster(session, GNUTLS_SERVER,
- proto, GNUTLS_KX_RSA,
- cipher, mac,
- GNUTLS_COMP_NULL, &master, &sess_id);
+ proto, GNUTLS_KX_RSA,
+ cipher, mac,
+ GNUTLS_COMP_NULL, &master, &sess_id);
if (ret < 0) {
- fail("server: gnutls_session_set_premaster failed: %s\n", gnutls_strerror(ret));
+ fail("server: gnutls_session_set_premaster failed: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -252,7 +253,7 @@ static void server(int fd, int proto, int cipher, int mac)
memset(buffer, 1, sizeof(buffer));
do {
- ret = gnutls_record_send(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_send(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
@@ -263,7 +264,6 @@ static void server(int fd, int proto, int cipher, int mac)
terminate();
}
-
/* do not wait for the peer to close the connection.
*/
gnutls_bye(session, GNUTLS_SHUT_WR);
diff --git a/tests/mini-eagain-dtls.c b/tests/mini-eagain-dtls.c
index 8abf8de765..771f8691a5 100644
--- a/tests/mini-eagain-dtls.c
+++ b/tests/mini-eagain-dtls.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -49,7 +49,7 @@ void doit(void)
{
/* Server stuff. */
gnutls_anon_server_credentials_t s_anoncred;
- const gnutls_datum_t p3 = { (void *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (void *)pkcs3, strlen(pkcs3) };
static gnutls_dh_params_t dh_params;
gnutls_session_t server;
int sret, cret;
@@ -71,12 +71,11 @@ void doit(void)
gnutls_dh_params_init(&dh_params);
gnutls_dh_params_import_pkcs3(dh_params, &p3, GNUTLS_X509_FMT_PEM);
gnutls_anon_set_server_dh_params(s_anoncred, dh_params);
- gnutls_init(&server,
- GNUTLS_SERVER | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
+ gnutls_init(&server, GNUTLS_SERVER | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
ret =
gnutls_priority_set_direct(server,
- "NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
- NULL);
+ "NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
+ NULL);
if (ret < 0)
exit(1);
gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anoncred);
@@ -88,12 +87,11 @@ void doit(void)
/* Init client */
gnutls_anon_allocate_client_credentials(&c_anoncred);
- gnutls_init(&client,
- GNUTLS_CLIENT | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
+ gnutls_init(&client, GNUTLS_CLIENT | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
cret =
gnutls_priority_set_direct(client,
- "NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
- NULL);
+ "NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
+ NULL);
if (cret < 0)
exit(1);
gnutls_credentials_set(client, GNUTLS_CRD_ANON, c_anoncred);
diff --git a/tests/mini-emsgsize-dtls.c b/tests/mini-emsgsize-dtls.c
index 82b4b11828..665f3a73f8 100644
--- a/tests/mini-emsgsize-dtls.c
+++ b/tests/mini-emsgsize-dtls.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -53,8 +53,7 @@ client_push_300(gnutls_transport_ptr_t tr, const void *data, size_t len)
size_t newlen;
if (len > 300) {
- gnutls_transport_set_errno((gnutls_session_t) tr,
- EMSGSIZE);
+ gnutls_transport_set_errno((gnutls_session_t) tr, EMSGSIZE);
return -1;
}
@@ -65,7 +64,7 @@ client_push_300(gnutls_transport_ptr_t tr, const void *data, size_t len)
to_server_len = newlen;
#ifdef EAGAIN_DEBUG
fprintf(stderr, "eagain: pushed %d bytes to server (avail: %d)\n",
- (int) len, (int) to_server_len);
+ (int)len, (int)to_server_len);
#endif
return len;
}
@@ -76,8 +75,7 @@ server_push_300(gnutls_transport_ptr_t tr, const void *data, size_t len)
size_t newlen;
if (len > 300) {
- gnutls_transport_set_errno((gnutls_session_t) tr,
- EMSGSIZE);
+ gnutls_transport_set_errno((gnutls_session_t) tr, EMSGSIZE);
return -1;
}
@@ -88,7 +86,7 @@ server_push_300(gnutls_transport_ptr_t tr, const void *data, size_t len)
to_client_len = newlen;
#ifdef EAGAIN_DEBUG
fprintf(stderr, "eagain: pushed %d bytes to client (avail: %d)\n",
- (int) len, (int) to_client_len);
+ (int)len, (int)to_client_len);
#endif
return len;
@@ -98,7 +96,7 @@ void doit(void)
{
/* Server stuff. */
gnutls_anon_server_credentials_t s_anoncred;
- const gnutls_datum_t p3 = { (void *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (void *)pkcs3, strlen(pkcs3) };
static gnutls_dh_params_t dh_params;
gnutls_session_t server;
int sret, cret;
@@ -120,12 +118,11 @@ void doit(void)
gnutls_dh_params_init(&dh_params);
gnutls_dh_params_import_pkcs3(dh_params, &p3, GNUTLS_X509_FMT_PEM);
gnutls_anon_set_server_dh_params(s_anoncred, dh_params);
- gnutls_init(&server,
- GNUTLS_SERVER | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
+ gnutls_init(&server, GNUTLS_SERVER | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
ret =
gnutls_priority_set_direct(server,
- "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
- NULL);
+ "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
+ NULL);
if (ret < 0)
exit(1);
gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anoncred);
@@ -137,12 +134,11 @@ void doit(void)
/* Init client */
gnutls_anon_allocate_client_credentials(&c_anoncred);
- gnutls_init(&client,
- GNUTLS_CLIENT | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
+ gnutls_init(&client, GNUTLS_CLIENT | GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
cret =
gnutls_priority_set_direct(client,
- "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
- NULL);
+ "NONE:+VERS-DTLS1.2:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
+ NULL);
if (cret < 0)
exit(1);
gnutls_credentials_set(client, GNUTLS_CRD_ANON, c_anoncred);
diff --git a/tests/mini-global-load.c b/tests/mini-global-load.c
index 9da63b1fdf..7330317395 100644
--- a/tests/mini-global-load.c
+++ b/tests/mini-global-load.c
@@ -23,7 +23,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -106,8 +106,7 @@ static void start(const char *prio)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server, prio, NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -116,8 +115,7 @@ static void start(const char *prio)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_priority_set_direct(client, prio, NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
diff --git a/tests/mini-key-material.c b/tests/mini-key-material.c
index 062775bf65..ffb0e88180 100644
--- a/tests/mini-key-material.c
+++ b/tests/mini-key-material.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,17 +33,17 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -67,12 +67,12 @@ static pid_t child;
/* A very basic DTLS client, with anonymous authentication, that negotiates SRTP
*/
-static void dump(const char *name, uint8_t *data, unsigned data_size)
+static void dump(const char *name, uint8_t * data, unsigned data_size)
{
unsigned i;
fprintf(stderr, "%s", name);
- for (i=0;i<data_size;i++)
+ for (i = 0; i < data_size; i++)
fprintf(stderr, "%.2x", (unsigned)data[i]);
fprintf(stderr, "\n");
}
@@ -118,8 +118,8 @@ static void client(int fd)
/* Use default priorities */
ret = gnutls_priority_set_direct(session,
- "NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-DH:+ANON-ECDH:+CURVE-ALL",
- &err);
+ "NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-DH:+ANON-ECDH:+CURVE-ALL",
+ &err);
if (ret < 0) {
fail("client: priority set failed (%s): %s\n",
gnutls_strerror(ret), err);
@@ -154,23 +154,25 @@ static void client(int fd)
ret = gnutls_cipher_get(session);
if (ret != GNUTLS_CIPHER_AES_128_CBC) {
- fprintf(stderr, "negotiated unexpected cipher: %s\n", gnutls_cipher_get_name(ret));
+ fprintf(stderr, "negotiated unexpected cipher: %s\n",
+ gnutls_cipher_get_name(ret));
exit(1);
}
ret = gnutls_mac_get(session);
if (ret != GNUTLS_MAC_SHA1) {
- fprintf(stderr, "negotiated unexpected mac: %s\n", gnutls_mac_get_name(ret));
+ fprintf(stderr, "negotiated unexpected mac: %s\n",
+ gnutls_mac_get_name(ret));
exit(1);
}
iv_size = 16;
hash_size = 20;
key_size = 16;
- block_size = 2*hash_size + 2*key_size + 2 *iv_size;
+ block_size = 2 * hash_size + 2 * key_size + 2 * iv_size;
ret = gnutls_prf(session, 13, "key expansion", 1, 0, NULL, block_size,
- (void*)key_material);
+ (void *)key_material);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -179,7 +181,9 @@ static void client(int fd)
p = key_material;
/* check whether the key material matches our calculations */
- ret = gnutls_record_get_state(session, 0, &mac_key, &iv, &cipher_key, wseq_number);
+ ret =
+ gnutls_record_get_state(session, 0, &mac_key, &iv, &cipher_key,
+ wseq_number);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -192,7 +196,9 @@ static void client(int fd)
exit(1);
}
- ret = gnutls_record_get_state(session, 1, &read_mac_key, &read_iv, &read_cipher_key, rseq_number);
+ ret =
+ gnutls_record_get_state(session, 1, &read_mac_key, &read_iv,
+ &read_cipher_key, rseq_number);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -205,39 +211,43 @@ static void client(int fd)
exit(1);
}
- if (hash_size != mac_key.size || memcmp(p, mac_key.data, hash_size) != 0) {
+ if (hash_size != mac_key.size
+ || memcmp(p, mac_key.data, hash_size) != 0) {
dump("MAC:", mac_key.data, mac_key.size);
dump("Block:", key_material, block_size);
fprintf(stderr, "error in %d\n", __LINE__);
exit(1);
}
- p+= hash_size;
+ p += hash_size;
- if (hash_size != read_mac_key.size || memcmp(p, read_mac_key.data, hash_size) != 0) {
+ if (hash_size != read_mac_key.size
+ || memcmp(p, read_mac_key.data, hash_size) != 0) {
dump("MAC:", read_mac_key.data, read_mac_key.size);
dump("Block:", key_material, block_size);
fprintf(stderr, "error in %d\n", __LINE__);
exit(1);
}
- p+= hash_size;
+ p += hash_size;
- if (key_size != cipher_key.size || memcmp(p, cipher_key.data, key_size) != 0) {
+ if (key_size != cipher_key.size
+ || memcmp(p, cipher_key.data, key_size) != 0) {
fprintf(stderr, "error in %d\n", __LINE__);
exit(1);
}
- p+= key_size;
+ p += key_size;
- if (key_size != read_cipher_key.size || memcmp(p, read_cipher_key.data, key_size) != 0) {
+ if (key_size != read_cipher_key.size
+ || memcmp(p, read_cipher_key.data, key_size) != 0) {
fprintf(stderr, "error in %d\n", __LINE__);
exit(1);
}
- p+= key_size;
+ p += key_size;
if (iv_size != iv.size || memcmp(p, iv.data, iv_size) != 0) {
fprintf(stderr, "error in %d\n", __LINE__);
exit(1);
}
- p+=iv_size;
+ p += iv_size;
if (iv_size != read_iv.size || memcmp(p, read_iv.data, iv_size) != 0) {
fprintf(stderr, "error in %d\n", __LINE__);
@@ -245,14 +255,15 @@ static void client(int fd)
}
/* check sequence numbers */
- for (i=0;i<5;i++) {
+ for (i = 0; i < 5; i++) {
ret = gnutls_record_send(session, "hello", 5);
if (ret < 0) {
fail("gnutls_record_send: %s\n", gnutls_strerror(ret));
}
}
- ret = gnutls_record_get_state(session, 0, NULL, NULL, NULL, wseq_number);
+ ret =
+ gnutls_record_get_state(session, 0, NULL, NULL, NULL, wseq_number);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -265,7 +276,8 @@ static void client(int fd)
exit(1);
}
- ret = gnutls_record_get_state(session, 1, NULL, NULL, NULL, rseq_number);
+ ret =
+ gnutls_record_get_state(session, 1, NULL, NULL, NULL, rseq_number);
if (ret < 0) {
fprintf(stderr, "error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -295,8 +307,7 @@ static void server(int fd)
gnutls_anon_server_credentials_t anoncred;
gnutls_dh_params_t dh_params;
char buf[128];
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
/* this must be called once in the program
*/
@@ -318,7 +329,8 @@ static void server(int fd)
* are adequate.
*/
ret = gnutls_priority_set_direct(session,
- "NORMAL:+ANON-DH:+ANON-ECDH:-VERS-ALL:+VERS-TLS1.0", NULL);
+ "NORMAL:+ANON-DH:+ANON-ECDH:-VERS-ALL:+VERS-TLS1.0",
+ NULL);
if (ret < 0) {
fail("server: priority set failed (%s)\n\n",
gnutls_strerror(ret));
@@ -350,7 +362,7 @@ static void server(int fd)
do {
ret = gnutls_record_recv(session, buf, sizeof(buf));
- } while(ret > 0);
+ } while (ret > 0);
if (ret < 0) {
fail("error: %s\n", gnutls_strerror(ret));
diff --git a/tests/mini-loss-time.c b/tests/mini-loss-time.c
index ddd3045be1..505b3baafe 100644
--- a/tests/mini-loss-time.c
+++ b/tests/mini-loss-time.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,17 +36,17 @@ int main(void)
#else
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
/* This program tests whether a DTLS handshake would timeout
* in the expected time.
@@ -93,10 +93,9 @@ static void client_log_func(int level, const char *str)
static int counter;
static int packet_to_lose;
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
counter++;
@@ -153,7 +152,8 @@ static void client(int fd, unsigned timeout)
do {
ret = gnutls_handshake(session);
}
- while (ret < 0 && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
+ while (ret < 0
+ && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
gnutls_deinit(session);
gnutls_anon_free_client_credentials(anoncred);
@@ -165,13 +165,13 @@ static void client(int fd, unsigned timeout)
success("client: received timeout\n");
return;
}
- fail("client: Handshake failed with unexpected reason: %s\n", gnutls_strerror(ret));
+ fail("client: Handshake failed with unexpected reason: %s\n",
+ gnutls_strerror(ret));
} else {
fail("client: Handshake was completed (unexpected)\n");
}
}
-
/* These are global */
pid_t child;
@@ -213,7 +213,8 @@ static void server(int fd, int packet, unsigned timeout)
do {
ret = gnutls_handshake(session);
}
- while (ret < 0 && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
+ while (ret < 0
+ && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
gnutls_deinit(session);
gnutls_anon_free_server_credentials(anoncred);
@@ -225,7 +226,8 @@ static void server(int fd, int packet, unsigned timeout)
success("server received timeout\n");
return;
}
- fail("server: Handshake failed with unexpected reason: %s\n", gnutls_strerror(ret));
+ fail("server: Handshake failed with unexpected reason: %s\n",
+ gnutls_strerror(ret));
} else {
fail("server: Handshake was completed (unexpected)\n");
}
@@ -289,12 +291,12 @@ static void ch_handler(int sig)
void doit(void)
{
time_t tstart, tstop;
- int tries = 5; /* we try multiple times because in very busy systems the suite may fail to finish on time */
+ int tries = 5; /* we try multiple times because in very busy systems the suite may fail to finish on time */
signal(SIGCHLD, ch_handler);
signal(SIGPIPE, SIG_IGN);
- for (;tries>=0;tries--) {
+ for (; tries >= 0; tries--) {
tstart = time(0);
start(2, 0);
@@ -304,13 +306,16 @@ void doit(void)
if (!(tstop < 40 && tstop > 25)) {
if (tries == 0)
- fail("Client wait time difference: %u\n", (unsigned) tstop);
+ fail("Client wait time difference: %u\n",
+ (unsigned)tstop);
else if (debug)
- success("Client wait time difference: %u\n", (unsigned) tstop);
- } else break;
+ success("Client wait time difference: %u\n",
+ (unsigned)tstop);
+ } else
+ break;
}
- for (;tries>=0;tries--) {
+ for (; tries >= 0; tries--) {
tstart = time(0);
start(2, 1);
@@ -320,10 +325,13 @@ void doit(void)
if (!(tstop < 40 && tstop > 25)) {
if (tries == 0)
- fail("Server wait time difference: %u\n", (unsigned) tstop);
+ fail("Server wait time difference: %u\n",
+ (unsigned)tstop);
else if (debug)
- success("Server wait time difference: %u\n", (unsigned) tstop);
- } else break;
+ success("Server wait time difference: %u\n",
+ (unsigned)tstop);
+ } else
+ break;
}
}
diff --git a/tests/mini-overhead.c b/tests/mini-overhead.c
index 6814a9a946..b698877b02 100644
--- a/tests/mini-overhead.c
+++ b/tests/mini-overhead.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -105,12 +105,11 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 1024
-#define MTU 1500
+# define MAX_BUF 1024
+# define MTU 1500
static void client(int fd, const char *prio, unsigned overhead)
{
@@ -172,7 +171,7 @@ static void client(int fd, const char *prio, unsigned overhead)
gnutls_dtls_set_mtu(session, MTU);
ret = gnutls_dtls_get_data_mtu(session);
- if (MTU - ret != (int) overhead) {
+ if (MTU - ret != (int)overhead) {
fail("overhead for %s is %d, expected %u\n", prio,
MTU - ret, overhead);
exit(1);
@@ -188,7 +187,6 @@ static void client(int fd, const char *prio, unsigned overhead)
gnutls_global_deinit();
}
-
/* These are global */
gnutls_anon_server_credentials_t anoncred;
gnutls_certificate_credentials_t x509_cred;
@@ -236,8 +234,7 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
diff --git a/tests/mini-record-2.c b/tests/mini-record-2.c
index 68e9687b8a..37b1e87671 100644
--- a/tests/mini-record-2.c
+++ b/tests/mini-record-2.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -105,18 +105,17 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 24*1024
+# define MAX_BUF 24*1024
static void client(int fd, const char *prio, int ign)
{
int ret;
unsigned i;
char buffer[MAX_BUF + 1];
- const char* err;
+ const char *err;
gnutls_anon_client_credentials_t anoncred;
gnutls_certificate_credentials_t x509_cred;
gnutls_session_t session;
@@ -176,11 +175,11 @@ static void client(int fd, const char *prio, int ign)
for (i = 1; i < 16384; i++) {
do {
ret = gnutls_record_send(session, buffer, i);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
- fail("server (%s): Error sending %d byte packet: %s\n", prio, i, gnutls_strerror(ret));
+ fail("server (%s): Error sending %d byte packet: %s\n",
+ prio, i, gnutls_strerror(ret));
exit(1);
}
}
@@ -199,7 +198,7 @@ static void client(int fd, const char *prio, int ign)
fail("server (%s): Error sending %d byte packet; sent %d bytes instead of 16384\n", prio, i, ret);
exit(1);
}
-
+
ret = gnutls_bye(session, GNUTLS_SHUT_WR);
if (ret < 0) {
fail("server (%s): Error sending alert\n", prio);
@@ -213,14 +212,12 @@ static void client(int fd, const char *prio, int ign)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -229,7 +226,7 @@ static void client(int fd, const char *prio, int ign)
}
}
- end:
+ end:
close(fd);
@@ -241,7 +238,6 @@ static void client(int fd, const char *prio, int ign)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -256,7 +252,7 @@ static void server(int fd, const char *prio, int ign)
{
int ret;
unsigned i;
- const char* err;
+ const char *err;
char buffer[MAX_BUF + 1];
gnutls_session_t session;
gnutls_anon_server_credentials_t anoncred;
@@ -274,8 +270,7 @@ static void server(int fd, const char *prio, int ign)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
@@ -322,8 +317,7 @@ static void server(int fd, const char *prio, int ign)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret < 0) {
@@ -339,11 +333,11 @@ static void server(int fd, const char *prio, int ign)
for (i = 1; i < 16384; i++) {
do {
ret = gnutls_record_send(session, buffer, i);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
- fail("server (%s): Error sending %d byte packet: %s\n", prio, i, gnutls_strerror(ret));
+ fail("server (%s): Error sending %d byte packet: %s\n",
+ prio, i, gnutls_strerror(ret));
terminate();
}
}
@@ -412,22 +406,22 @@ static void start(const char *name, const char *prio, int ign)
}
}
-#define AES_CBC "NONE:+VERS-TLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CBC_SHA256 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CCM_8 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM-8:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC "NONE:+VERS-TLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC_SHA256 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CCM_8 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM-8:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define ARCFOUR_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define ARCFOUR_MD5 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+MD5:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL:+RSA"
+# define ARCFOUR_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define ARCFOUR_MD5 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+MD5:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL:+RSA"
-#define NULL_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+NULL:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+RSA:+CURVE-ALL"
+# define NULL_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+NULL:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+RSA:+CURVE-ALL"
-#define CHACHA_POLY1305 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+CHACHA20-POLY1305:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ECDHE-RSA:+CURVE-ALL"
+# define CHACHA_POLY1305 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+CHACHA20-POLY1305:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ECDHE-RSA:+CURVE-ALL"
-#define TLS13_AES_GCM "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+GROUP-ALL"
-#define TLS13_AES_CCM "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+AES-128-CCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+GROUP-ALL"
-#define TLS13_CHACHA_POLY1305 "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+CHACHA20-POLY1305:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+GROUP-ALL"
+# define TLS13_AES_GCM "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+GROUP-ALL"
+# define TLS13_AES_CCM "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+AES-128-CCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+GROUP-ALL"
+# define TLS13_CHACHA_POLY1305 "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+CHACHA20-POLY1305:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+GROUP-ALL"
static void ch_handler(int sig)
{
diff --git a/tests/mini-record-failure.c b/tests/mini-record-failure.c
index 180a687535..67d2551733 100644
--- a/tests/mini-record-failure.c
+++ b/tests/mini-record-failure.c
@@ -22,7 +22,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -37,18 +37,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -77,23 +77,23 @@ client_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
if (modify == 0)
return send(fd, data, len, 0);
else {
- uint8_t *p = (void*)data;
+ uint8_t *p = (void *)data;
if (len < 30) {
fail("test error in packet sending\n");
exit(1);
}
- p[len-30]++;
+ p[len - 30]++;
return send(fd, data, len, 0);
}
}
-#define MAX_BUF 24*1024
+# define MAX_BUF 24*1024
static void client(int fd, const char *prio, int ign)
{
int ret;
char buffer[MAX_BUF + 1];
- const char* err;
+ const char *err;
gnutls_anon_client_credentials_t anoncred;
gnutls_certificate_credentials_t x509_cred;
gnutls_session_t session;
@@ -157,7 +157,8 @@ static void client(int fd, const char *prio, int ign)
modify = 0;
if (ret < 0) {
- fail("client[%s]: Error sending packet: %s\n", prio, gnutls_strerror(ret));
+ fail("client[%s]: Error sending packet: %s\n", prio,
+ gnutls_strerror(ret));
exit(1);
}
@@ -173,7 +174,6 @@ static void client(int fd, const char *prio, int ign)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -187,7 +187,7 @@ static void terminate(void)
static void server(int fd, const char *prio, int ign)
{
int ret;
- const char* err;
+ const char *err;
char buffer[MAX_BUF + 1];
gnutls_session_t session;
gnutls_anon_server_credentials_t anoncred;
@@ -205,8 +205,7 @@ static void server(int fd, const char *prio, int ign)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
@@ -255,11 +254,11 @@ static void server(int fd, const char *prio, int ign)
/* Test receiving */
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
-
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+
if (ret != GNUTLS_E_DECRYPTION_FAILED) {
- fail("server: received modified packet with error code %d\n", ret);
+ fail("server: received modified packet with error code %d\n",
+ ret);
exit(1);
}
@@ -305,22 +304,22 @@ static void start(const char *name, const char *prio, int ign)
}
}
-#define AES_CBC "NONE:+VERS-TLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CBC_SHA256 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CCM_8 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM-8:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC "NONE:+VERS-TLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC_SHA256 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CCM_8 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM-8:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define ARCFOUR_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define ARCFOUR_MD5 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+MD5:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL:+RSA"
+# define ARCFOUR_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define ARCFOUR_MD5 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+MD5:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL:+RSA"
-#define NULL_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+NULL:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+RSA:+CURVE-ALL"
+# define NULL_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+NULL:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+RSA:+CURVE-ALL"
-#define NO_ETM ":%NO_ETM"
+# define NO_ETM ":%NO_ETM"
-#define TLS13_AES_GCM "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+GROUP-ALL"
-#define TLS13_AES_CCM "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+AES-128-CCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+GROUP-ALL"
-#define TLS13_CHACHA_POLY1305 "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+CHACHA20-POLY1305:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+GROUP-ALL"
+# define TLS13_AES_GCM "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+GROUP-ALL"
+# define TLS13_AES_CCM "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+AES-128-CCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+GROUP-ALL"
+# define TLS13_CHACHA_POLY1305 "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+CHACHA20-POLY1305:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+GROUP-ALL"
static void ch_handler(int sig)
{
diff --git a/tests/mini-record-range.c b/tests/mini-record-range.c
index 4c4242a6ea..c5e2578f88 100644
--- a/tests/mini-record-range.c
+++ b/tests/mini-record-range.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,22 +35,22 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-
-#include "cert-common.h"
-#include "utils.h"
-
-#define MAX_BUF 1024
-#define HIGH(x) (3*x)
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+
+# include "cert-common.h"
+# include "utils.h"
+
+# define MAX_BUF 1024
+# define HIGH(x) (3*x)
static void terminate(void);
static int to_send;
static size_t total;
@@ -68,16 +68,12 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
/* A very basic TLS client, with anonymous authentication.
*/
-
-
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
if (to_send >= 0)
total += len;
@@ -141,14 +137,12 @@ static void client(int fd, const char *prio)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -159,7 +153,7 @@ static void client(int fd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -171,7 +165,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -208,8 +201,7 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
@@ -256,10 +248,8 @@ static void server(int fd, const char *prio)
do {
ret =
gnutls_record_send_range(session, buffer,
- sizeof(buffer),
- &range);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ sizeof(buffer), &range);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("Error sending packet: %s\n",
@@ -268,7 +258,7 @@ static void server(int fd, const char *prio)
}
if (total < HIGH(MAX_BUF)) {
fail("Sent data (%u) are lower than expected (%u)\n",
- (unsigned) total, (unsigned) HIGH(MAX_BUF));
+ (unsigned)total, (unsigned)HIGH(MAX_BUF));
terminate();
}
@@ -323,8 +313,8 @@ static void start(const char *prio)
}
}
-#define AES_CBC "NONE:+VERS-TLS1.2:+AES-128-CBC:+MAC-ALL:+SIGN-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_GCM "NONE:+VERS-TLS1.3:+AES-256-GCM:+AEAD:+SIGN-ALL:+GROUP-ALL"
+# define AES_CBC "NONE:+VERS-TLS1.2:+AES-128-CBC:+MAC-ALL:+SIGN-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_GCM "NONE:+VERS-TLS1.3:+AES-256-GCM:+AEAD:+SIGN-ALL:+GROUP-ALL"
static void ch_handler(int sig)
{
diff --git a/tests/mini-record.c b/tests/mini-record.c
index 09069c8185..10f464b2e2 100644
--- a/tests/mini-record.c
+++ b/tests/mini-record.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,19 +36,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
static void terminate(void);
@@ -66,37 +66,35 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static int to_send = -1;
static int mtu = 0;
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
return send(fd, data, len, 0);
}
-#define RECORD_HEADER_SIZE (5+8)
+# define RECORD_HEADER_SIZE (5+8)
static ssize_t
push_crippled(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
int _len, ret;
- uint8_t *_data = (void *) data;
+ uint8_t *_data = (void *)data;
if (to_send == -1)
return send(fd, data, len, 0);
else {
-#if 0
- _len =
- ((uint8_t *) data)[11] << 8 | ((uint8_t *) data)[12];
- fprintf(stderr, "mtu: %d, len: %d", mtu, (int) _len);
- fprintf(stderr, " send: %d\n", (int) to_send);
-#endif
+# if 0
+ _len = ((uint8_t *) data)[11] << 8 | ((uint8_t *) data)[12];
+ fprintf(stderr, "mtu: %d, len: %d", mtu, (int)_len);
+ fprintf(stderr, " send: %d\n", (int)to_send);
+# endif
_len = to_send;
_data[11] = _len >> 8;
@@ -139,7 +137,8 @@ static void client(int fd, const char *prio)
/* Use default priorities */
ret = gnutls_priority_set_direct(session, prio, NULL);
if (ret < 0) {
- fail("error in priority '%s': %s\n", prio, gnutls_strerror(ret));
+ fail("error in priority '%s': %s\n", prio,
+ gnutls_strerror(ret));
exit(1);
}
@@ -178,14 +177,12 @@ static void client(int fd, const char *prio)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0 || ret == GNUTLS_E_TIMEDOUT) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -196,7 +193,7 @@ static void client(int fd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -208,7 +205,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -239,8 +235,7 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
@@ -252,7 +247,8 @@ static void server(int fd, const char *prio)
*/
ret = gnutls_priority_set_direct(session, prio, NULL);
if (ret < 0) {
- fail("error in priority '%s': %s\n", prio, gnutls_strerror(ret));
+ fail("error in priority '%s': %s\n", prio,
+ gnutls_strerror(ret));
exit(1);
}
@@ -283,13 +279,11 @@ static void server(int fd, const char *prio)
mtu = gnutls_dtls_get_mtu(session);
do {
- usleep(10000); /* some systems like FreeBSD have their buffers full during this send */
+ usleep(10000); /* some systems like FreeBSD have their buffers full during this send */
do {
ret =
- gnutls_record_send(session, buffer,
- sizeof(buffer));
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ gnutls_record_send(session, buffer, sizeof(buffer));
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("Error sending %d byte packet: %s\n", to_send,
@@ -350,12 +344,12 @@ static void start(const char *name, const char *prio)
}
}
-#define AES_CBC "NONE:+VERS-DTLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CBC_SHA256 "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_GCM "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CCM "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CCM_8 "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM-8:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define CHACHA_POLY1305 "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+CHACHA20-POLY1305:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ECDHE-RSA:+CURVE-ALL"
+# define AES_CBC "NONE:+VERS-DTLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC_SHA256 "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_GCM "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CCM "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CCM_8 "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+AES-128-CCM-8:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define CHACHA_POLY1305 "NONE:+VERS-DTLS1.2:-CIPHER-ALL:+RSA:+CHACHA20-POLY1305:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ECDHE-RSA:+CURVE-ALL"
static void ch_handler(int sig)
{
diff --git a/tests/mini-server-name.c b/tests/mini-server-name.c
index efe5a043b9..e2d73c52e0 100644
--- a/tests/mini-server-name.c
+++ b/tests/mini-server-name.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -37,20 +37,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void terminate(void);
/* This program tests gnutls_server_name_set() and gnutls_server_name_get().
@@ -71,7 +71,9 @@ int _gnutls_server_name_set_raw(gnutls_session_t session,
gnutls_server_name_type_t type,
const void *name, size_t name_length);
-static void client(const char *test_name, const char *prio, int fd, unsigned raw, const char *name, unsigned name_len, int server_err)
+static void client(const char *test_name, const char *prio, int fd,
+ unsigned raw, const char *name, unsigned name_len,
+ int server_err)
{
int ret;
gnutls_anon_client_credentials_t anoncred;
@@ -103,9 +105,11 @@ static void client(const char *test_name, const char *prio, int fd, unsigned raw
gnutls_transport_set_int(session, fd);
if (raw)
- _gnutls_server_name_set_raw(session, GNUTLS_NAME_DNS, name, name_len);
+ _gnutls_server_name_set_raw(session, GNUTLS_NAME_DNS, name,
+ name_len);
else
- gnutls_server_name_set(session, GNUTLS_NAME_DNS, name, name_len);
+ gnutls_server_name_set(session, GNUTLS_NAME_DNS, name,
+ name_len);
/* Perform the TLS handshake
*/
@@ -126,8 +130,8 @@ static void client(const char *test_name, const char *prio, int fd, unsigned raw
if (debug)
test_success("TLS version is: %s\n",
- gnutls_protocol_get_name
- (gnutls_protocol_get_version(session)));
+ gnutls_protocol_get_name
+ (gnutls_protocol_get_version(session)));
gnutls_bye(session, GNUTLS_SHUT_WR);
@@ -142,7 +146,6 @@ static void client(const char *test_name, const char *prio, int fd, unsigned raw
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -153,7 +156,8 @@ static void terminate(void)
exit(1);
}
-static void server(const char *test_name, const char *prio, int fd, const char *name, unsigned name_len, int exp_err)
+static void server(const char *test_name, const char *prio, int fd,
+ const char *name, unsigned name_len, int exp_err)
{
int ret;
char buffer[MAX_BUF + 1];
@@ -175,8 +179,7 @@ static void server(const char *test_name, const char *prio, int fd, const char *
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
@@ -202,7 +205,7 @@ static void server(const char *test_name, const char *prio, int fd, const char *
close(fd);
gnutls_deinit(session);
test_fail("Handshake has failed (%s)\n\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
terminate();
}
if (debug)
@@ -210,13 +213,15 @@ static void server(const char *test_name, const char *prio, int fd, const char *
if (debug)
test_success("TLS version is: %s\n",
- gnutls_protocol_get_name
- (gnutls_protocol_get_version(session)));
+ gnutls_protocol_get_name
+ (gnutls_protocol_get_version(session)));
buffer_size = sizeof(buffer);
ret = gnutls_server_name_get(session, buffer, &buffer_size, &type, 0);
- if ((name == NULL || name[0] == 0) && (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE || ret == GNUTLS_E_IDNA_ERROR)) {
+ if ((name == NULL || name[0] == 0)
+ && (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE
+ || ret == GNUTLS_E_IDNA_ERROR)) {
/* expected */
if (debug)
test_success("empty name matches\n");
@@ -224,22 +229,28 @@ static void server(const char *test_name, const char *prio, int fd, const char *
test_fail("server_name: %s/%d\n", gnutls_strerror(ret), ret);
} else {
if (name == NULL || name[0] == 0) {
- test_fail("did not receive the expected name: got: %s\n", buffer);
+ test_fail
+ ("did not receive the expected name: got: %s\n",
+ buffer);
exit(1);
}
if (buffer_size != strlen(buffer)) {
- test_fail("received name '%s/%d/%d', with embedded null\n", buffer, (int)buffer_size, (int)strlen(buffer));
+ test_fail
+ ("received name '%s/%d/%d', with embedded null\n",
+ buffer, (int)buffer_size, (int)strlen(buffer));
exit(1);
}
- if (name_len != buffer_size || memcmp(name, buffer, name_len) != 0) {
- test_fail("received name '%s/%d', expected '%s/%d'\n", buffer, (int)buffer_size, name, (int)name_len);
+ if (name_len != buffer_size
+ || memcmp(name, buffer, name_len) != 0) {
+ test_fail("received name '%s/%d', expected '%s/%d'\n",
+ buffer, (int)buffer_size, name,
+ (int)name_len);
exit(1);
}
if (debug)
test_success("name matches (%s/%s)\n", buffer, name);
}
-
/* do not wait for the peer to close the connection.
*/
gnutls_bye(session, GNUTLS_SHUT_WR);
@@ -259,7 +270,9 @@ static void server(const char *test_name, const char *prio, int fd, const char *
/* name: the name sent by client
* server_exp: the name which should be expected by the server to see
*/
-static void start(const char *test_name, const char *prio, unsigned raw, const char *name, unsigned len, const char *server_exp, unsigned server_exp_len, int server_error)
+static void start(const char *test_name, const char *prio, unsigned raw,
+ const char *name, unsigned len, const char *server_exp,
+ unsigned server_exp_len, int server_error)
{
int fd[2];
int ret;
@@ -280,7 +293,8 @@ static void start(const char *test_name, const char *prio, unsigned raw, const c
if (child) {
/* parent */
close(fd[1]);
- server(test_name, prio, fd[0], server_exp, server_exp_len, server_error);
+ server(test_name, prio, fd[0], server_exp, server_exp_len,
+ server_error);
kill(child, SIGTERM);
} else {
close(fd[0]);
@@ -297,9 +311,9 @@ static void ch_handler(int sig)
return;
}
-#define PRIO_TLS12 "NORMAL:-VERS-ALL:+VERS-TLS1.2"
-#define PRIO_TLS13 "NORMAL:-VERS-ALL:+VERS-TLS1.3"
-#define PRIO_NORMAL "NORMAL"
+# define PRIO_TLS12 "NORMAL:-VERS-ALL:+VERS-TLS1.2"
+# define PRIO_TLS13 "NORMAL:-VERS-ALL:+VERS-TLS1.3"
+# define PRIO_NORMAL "NORMAL"
void doit(void)
{
@@ -308,24 +322,42 @@ void doit(void)
start("tls1.2 NULL", PRIO_TLS12, 0, NULL, 0, NULL, 0, 0);
start("tls1.2 empty", PRIO_TLS12, 0, "", 0, "", 0, 0);
- start("tls1.2 test.example.com", PRIO_TLS12, 0, "test.example.com", strlen("test.example.com"), "test.example.com", strlen("test.example.com"), 0);
- start("tls1.2 longtest.example.com", PRIO_TLS12, 0, "longtest.example.com.", strlen("longtest.example.com"), "longtest.example.com.", strlen("longtest.example.com"), 0);
+ start("tls1.2 test.example.com", PRIO_TLS12, 0, "test.example.com",
+ strlen("test.example.com"), "test.example.com",
+ strlen("test.example.com"), 0);
+ start("tls1.2 longtest.example.com", PRIO_TLS12, 0,
+ "longtest.example.com.", strlen("longtest.example.com"),
+ "longtest.example.com.", strlen("longtest.example.com"), 0);
/* test embedded NULL */
- start("tls1.2 embedded-NULL", PRIO_TLS12, 1, "invalid\x00.example.com.", sizeof("invalid\x00.example.com")-1, NULL, 0, GNUTLS_E_RECEIVED_DISALLOWED_NAME);
+ start("tls1.2 embedded-NULL", PRIO_TLS12, 1, "invalid\x00.example.com.",
+ sizeof("invalid\x00.example.com") - 1, NULL, 0,
+ GNUTLS_E_RECEIVED_DISALLOWED_NAME);
start("tls1.3 NULL", PRIO_TLS13, 0, NULL, 0, NULL, 0, 0);
start("tls1.3 empty", PRIO_TLS13, 0, "", 0, "", 0, 0);
- start("tls1.3 test.example.com", PRIO_TLS13, 0, "test.example.com", strlen("test.example.com"), "test.example.com", strlen("test.example.com"), 0);
- start("tls1.3 longtest.example.com", PRIO_TLS13, 0, "longtest.example.com.", strlen("longtest.example.com"), "longtest.example.com.", strlen("longtest.example.com"), 0);
+ start("tls1.3 test.example.com", PRIO_TLS13, 0, "test.example.com",
+ strlen("test.example.com"), "test.example.com",
+ strlen("test.example.com"), 0);
+ start("tls1.3 longtest.example.com", PRIO_TLS13, 0,
+ "longtest.example.com.", strlen("longtest.example.com"),
+ "longtest.example.com.", strlen("longtest.example.com"), 0);
/* test embedded NULL */
- start("tls1.3 embedded-NULL", PRIO_TLS13, 1, "invalid\x00.example.com.", sizeof("invalid\x00.example.com")-1, NULL, 0, GNUTLS_E_RECEIVED_DISALLOWED_NAME);
+ start("tls1.3 embedded-NULL", PRIO_TLS13, 1, "invalid\x00.example.com.",
+ sizeof("invalid\x00.example.com") - 1, NULL, 0,
+ GNUTLS_E_RECEIVED_DISALLOWED_NAME);
start("NULL", PRIO_NORMAL, 0, NULL, 0, NULL, 0, 0);
start("empty", PRIO_NORMAL, 0, "", 0, "", 0, 0);
- start("test.example.com", PRIO_NORMAL, 0, "test.example.com", strlen("test.example.com"), "test.example.com", strlen("test.example.com"), 0);
- start("longtest.example.com", PRIO_NORMAL, 0, "longtest.example.com.", strlen("longtest.example.com"), "longtest.example.com.", strlen("longtest.example.com"), 0);
+ start("test.example.com", PRIO_NORMAL, 0, "test.example.com",
+ strlen("test.example.com"), "test.example.com",
+ strlen("test.example.com"), 0);
+ start("longtest.example.com", PRIO_NORMAL, 0, "longtest.example.com.",
+ strlen("longtest.example.com"), "longtest.example.com.",
+ strlen("longtest.example.com"), 0);
/* test embedded NULL */
- start("embedded-NULL", PRIO_NORMAL, 1, "invalid\x00.example.com.", sizeof("invalid\x00.example.com")-1, NULL, 0, GNUTLS_E_RECEIVED_DISALLOWED_NAME);
+ start("embedded-NULL", PRIO_NORMAL, 1, "invalid\x00.example.com.",
+ sizeof("invalid\x00.example.com") - 1, NULL, 0,
+ GNUTLS_E_RECEIVED_DISALLOWED_NAME);
}
#endif /* _WIN32 */
diff --git a/tests/mini-session-verify-function.c b/tests/mini-session-verify-function.c
index 7a8ca4ab30..152d204580 100644
--- a/tests/mini-session-verify-function.c
+++ b/tests/mini-session-verify-function.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -55,14 +55,14 @@ static int server_callback(gnutls_session_t session)
if (gnutls_handshake_get_last_in(session) !=
GNUTLS_HANDSHAKE_CERTIFICATE_PKT) {
fail("client's last input message was unexpected: %s\n",
- gnutls_handshake_description_get_name(gnutls_handshake_get_last_in(session)));
+ gnutls_handshake_description_get_name
+ (gnutls_handshake_get_last_in(session)));
exit(1);
}
if (gnutls_handshake_get_last_out(session) !=
GNUTLS_HANDSHAKE_SERVER_HELLO_DONE) {
- fail("client's last output message was unexpected: %s\n",
- gnutls_handshake_description_get_name(gnutls_handshake_get_last_out(session)));
+ fail("client's last output message was unexpected: %s\n", gnutls_handshake_description_get_name(gnutls_handshake_get_last_out(session)));
exit(1);
}
}
@@ -140,9 +140,8 @@ void test_success1(const char *prio)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server, prio, NULL)>=0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -152,14 +151,12 @@ void test_success1(const char *prio)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_priority_set_direct(client, prio, NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
- gnutls_session_set_verify_function(client,
- client_callback);
+ gnutls_session_set_verify_function(client, client_callback);
HANDSHAKE(client, server);
@@ -206,9 +203,8 @@ void test_failure_client(const char *prio)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server, prio, NULL)>=0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -218,16 +214,15 @@ void test_failure_client(const char *prio)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_priority_set_direct(client, prio, NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
- gnutls_session_set_verify_function(client,
- client_callback);
+ gnutls_session_set_verify_function(client, client_callback);
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_CERTIFICATE_ERROR, GNUTLS_E_AGAIN);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_CERTIFICATE_ERROR,
+ GNUTLS_E_AGAIN);
gnutls_deinit(client);
gnutls_deinit(server);
@@ -236,7 +231,8 @@ void test_failure_client(const char *prio)
gnutls_certificate_free_credentials(clientx509cred);
if (client_ok == 0)
- fail("%s: certificate verify callback wasn't called\n", __func__);
+ fail("%s: certificate verify callback wasn't called\n",
+ __func__);
}
static
@@ -266,9 +262,8 @@ void test_failure_server(const char *prio)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server, prio, NULL)>=0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -278,8 +273,7 @@ void test_failure_server(const char *prio)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_priority_set_direct(client, prio, NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
@@ -295,7 +289,8 @@ void test_failure_server(const char *prio)
gnutls_certificate_free_credentials(clientx509cred);
if (server_ok == 0)
- fail("%s: certificate verify callback wasn't called\n", __func__);
+ fail("%s: certificate verify callback wasn't called\n",
+ __func__);
}
static void start(const char *prio)
diff --git a/tests/mini-termination.c b/tests/mini-termination.c
index 7daeecc894..92dac747ea 100644
--- a/tests/mini-termination.c
+++ b/tests/mini-termination.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -105,11 +105,10 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -167,14 +166,12 @@ static void client(int fd, const char *prio)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == GNUTLS_E_PREMATURE_TERMINATION) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else {
fail("client: Unexpected error: %d (%s)\n", ret,
@@ -182,7 +179,7 @@ static void client(int fd, const char *prio)
exit(1);
}
- end:
+ end:
close(fd);
gnutls_deinit(session);
@@ -193,7 +190,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -224,8 +220,7 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
diff --git a/tests/mini-tls-nonblock.c b/tests/mini-tls-nonblock.c
index 0d27e82628..42260dd09a 100644
--- a/tests/mini-tls-nonblock.c
+++ b/tests/mini-tls-nonblock.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <fcntl.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -106,27 +106,23 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static const char *g_msg = "";
-static ssize_t
-my_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
+static ssize_t my_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
{
return recv((long)tr, data, len, 0);
}
-static ssize_t
-my_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t my_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
return send((long)tr, data, len, 0);
}
-static int
-my_pull_timeout(gnutls_transport_ptr_t tr, unsigned ms)
+static int my_pull_timeout(gnutls_transport_ptr_t tr, unsigned ms)
{
if (ms != 0) {
fail("pull timeout was called: %s!\n", g_msg);
@@ -160,7 +156,7 @@ static void client(int fd, const char *msg, const char *prio, unsigned expl)
/* Initialize TLS session
*/
- gnutls_init(&session, GNUTLS_CLIENT|expl);
+ gnutls_init(&session, GNUTLS_CLIENT | expl);
/* Use default priorities */
ret = gnutls_priority_set_direct(session, prio, NULL);
@@ -210,11 +206,9 @@ static void client(int fd, const char *msg, const char *prio, unsigned expl)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
-
static void terminate(void)
{
assert(child);
@@ -242,13 +236,12 @@ static void server(int fd, const char *prio, unsigned expl)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
if (expl & GNUTLS_DATAGRAM)
- gnutls_init(&session, GNUTLS_SERVER|GNUTLS_DATAGRAM);
+ gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
else
gnutls_init(&session, GNUTLS_SERVER);
@@ -334,19 +327,23 @@ static void ch_handler(int sig)
return;
}
-#ifndef GNUTLS_NONBLOCK
-# error GNUTLS_NONBLOCK should have been defined
-#endif
+# ifndef GNUTLS_NONBLOCK
+# error GNUTLS_NONBLOCK should have been defined
+# endif
void doit(void)
{
signal(SIGCHLD, ch_handler);
- start("TLS1.2-explicit flag", "NORMAL:-VERS-ALL:+VERS-TLS1.2", GNUTLS_NONBLOCK);
- start("TLS1.2-explicit flag", "NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_NONBLOCK);
+ start("TLS1.2-explicit flag", "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ GNUTLS_NONBLOCK);
+ start("TLS1.2-explicit flag", "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ GNUTLS_NONBLOCK);
start("TLS-explicit flag", "NORMAL", GNUTLS_NONBLOCK);
- start("DTLS1.2-explicit flag", "NORMAL:-VERS-ALL:+VERS-DTLS1.2", GNUTLS_NONBLOCK|GNUTLS_DATAGRAM);
- start("DTLS-explicit flag", "NORMAL", GNUTLS_NONBLOCK|GNUTLS_DATAGRAM);
+ start("DTLS1.2-explicit flag", "NORMAL:-VERS-ALL:+VERS-DTLS1.2",
+ GNUTLS_NONBLOCK | GNUTLS_DATAGRAM);
+ start("DTLS-explicit flag", "NORMAL",
+ GNUTLS_NONBLOCK | GNUTLS_DATAGRAM);
start("TLS1.2-no flag", "NORMAL:-VERS-ALL:+VERS-TLS1.2", 0);
start("TLS1.3-no flag", "NORMAL:-VERS-ALL:+VERS-TLS1.3", 0);
start("TLS-no flag", "NORMAL", 0);
diff --git a/tests/mini-x509-2.c b/tests/mini-x509-2.c
index b3273d903d..27f7f6a51d 100644
--- a/tests/mini-x509-2.c
+++ b/tests/mini-x509-2.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -43,102 +43,100 @@ static void tls_log_func(int level, const char *str)
}
static unsigned char ca_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwNDA5MDgwMjM0WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCuLSye8pe3yWKZ\n"
-"Yp7tLQ4ImwLqqh1aN7x9pc5spLDj6krVArzkyyYDcWvtQNDjErEfLUrZZrCc4aIl\n"
-"oU1Ghb92kI8ofZnHFbj3z5zdcWqiPppj5Y+hRdc4LszTWb+itrD9Ht/D67EK+m7W\n"
-"ev6xxUdyiBYUmb2O3CnPZpUVshMRtEe45EDGI5hUgL2n4Msj41htTq8hATYPXgoq\n"
-"gQUyXFpKAX5XDCyOG+FC6jmEys7UCRYv3SCl7TPWJ4cm+lHcFI2/OTOCBvMlKN2J\n"
-"mWCdfnudZldqthin+8fR9l4nbuutOfPNt1Dj9InDzWZ1W/o4LrjKa7fsvszj2Z5A\n"
-"Fn+xN/4zAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQUwRHwbXyPosKNNkBiZduEwL5ZCwswDQYJKoZIhvcNAQELBQAD\n"
-"ggEBAEKr0b7WoJL+L8St/LEITU/i7FwFrCP6DkbaNo0kgzPmwnvNmw88MLI6UKwE\n"
-"JecnjFhurRBBZ4FA85ucNyizeBnuXqFcyJ20+XziaXGPKV/ugKyYv9KBoTYkQOCh\n"
-"nbOthmDqjvy2UYQj0BU2dOywkjUKWhYHEZLBpZYck0Orynxydwil5Ncsz4t3smJw\n"
-"ahzCW8SzBFTiO99qQBCH2RH1PbUYzfAnJxZS2VScpcqlu9pr+Qv7r8E3p9qHxnQM\n"
-"gO5laWO6lc13rNsbZRrtlCvacsiDSuDnS8EVXm0ih4fAntpRHacPbXZbOPQqJ/+1\n"
-"G7/qJ6cDC/9aW+fU80ogTkAoFg4=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwNDA5MDgwMjM0WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCuLSye8pe3yWKZ\n"
+ "Yp7tLQ4ImwLqqh1aN7x9pc5spLDj6krVArzkyyYDcWvtQNDjErEfLUrZZrCc4aIl\n"
+ "oU1Ghb92kI8ofZnHFbj3z5zdcWqiPppj5Y+hRdc4LszTWb+itrD9Ht/D67EK+m7W\n"
+ "ev6xxUdyiBYUmb2O3CnPZpUVshMRtEe45EDGI5hUgL2n4Msj41htTq8hATYPXgoq\n"
+ "gQUyXFpKAX5XDCyOG+FC6jmEys7UCRYv3SCl7TPWJ4cm+lHcFI2/OTOCBvMlKN2J\n"
+ "mWCdfnudZldqthin+8fR9l4nbuutOfPNt1Dj9InDzWZ1W/o4LrjKa7fsvszj2Z5A\n"
+ "Fn+xN/4zAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQUwRHwbXyPosKNNkBiZduEwL5ZCwswDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBAEKr0b7WoJL+L8St/LEITU/i7FwFrCP6DkbaNo0kgzPmwnvNmw88MLI6UKwE\n"
+ "JecnjFhurRBBZ4FA85ucNyizeBnuXqFcyJ20+XziaXGPKV/ugKyYv9KBoTYkQOCh\n"
+ "nbOthmDqjvy2UYQj0BU2dOywkjUKWhYHEZLBpZYck0Orynxydwil5Ncsz4t3smJw\n"
+ "ahzCW8SzBFTiO99qQBCH2RH1PbUYzfAnJxZS2VScpcqlu9pr+Qv7r8E3p9qHxnQM\n"
+ "gO5laWO6lc13rNsbZRrtlCvacsiDSuDnS8EVXm0ih4fAntpRHacPbXZbOPQqJ/+1\n"
+ "G7/qJ6cDC/9aW+fU80ogTkAoFg4=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t ca_cert = { ca_cert_pem,
sizeof(ca_cert_pem)
};
static unsigned char server_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDOjCCAiKgAwIBAgIMU0T+mwoDu5uVLKeeMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
-"BgNVBAMTBENBLTEwIhgPMjAxNDA0MDkwODAyMzVaGA85OTk5MTIzMTIzNTk1OVow\n"
-"EzERMA8GA1UEAxMIc2VydmVyLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
-"AoIBAQDXfvgsMWXHNf3iUaEoZSNztZZr6+UdBkoUhbdWJDR+GwR+GHfnYaYHsuqb\n"
-"bNEl/QFI+8Jeth0SmG7TNB+b/AlHFoBm8TwBt7H+Mn6AQIdo872Vs262UkHgbZN6\n"
-"dEQeRCgiXmlsOVe+MVpf79Xi32MYz1FZ/ueS6tr8sIDhECThIZkq2eulVjAV86N2\n"
-"zQ72Ml1k8rPw4SdK5OFhcXNdXr6CsAol8MmiORKDF0iAZxwtFVc00nBGqQC5rwrN\n"
-"3A8czH5TsvyvrcW0mwV2XOVvZM5kFM1T/X0jF6RQHiGGFBYK4s6JZxSSOhJMFYYh\n"
-"koPEKsuVZdmBJ2yTTdGumHZfG9LDAgMBAAGjgY0wgYowDAYDVR0TAQH/BAIwADAU\n"
-"BgNVHREEDTALgglsb2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0P\n"
-"AQH/BAUDAwegADAdBgNVHQ4EFgQURXiN5VD5vgqAprhd/37ldGKv4/4wHwYDVR0j\n"
-"BBgwFoAU8MUzmkotjSmVa5r1ejMkMQ6BiZYwDQYJKoZIhvcNAQELBQADggEBABSU\n"
-"cmMX0nGeg43itPnLjSTIUuYEamRhfsFDwgRYQn5w+BcFG1p0scBRxLAShUEb9A2A\n"
-"oEJV4rQDpCn9bcMrMHhTCR5sOlLh/2o9BROjK0+DjQLDkooQK5xa+1GYEiy6QYCx\n"
-"QjdCCnMhHh24oP2/vUggRKhevvD2QQFKcCDT6n13RFYm+HX82gIh6SAtRs0oahY5\n"
-"k9CM9TYRPzXy+tQqhZisJzc8BLTW/XA97kAJW6+hUhPir7AYR6BKJhNeIxcN/yMy\n"
-"jsHzWDLezip/8q+kzw658V5e40hne7ZaJycGUaUdLVnJcpNtBgGE82TRS/XZSQKF\n"
-"fpy8FLGcJynqlIOzdKs=\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwNDA5MDgwMjM0WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZq3sA+mjFadII\n"
-"EMDHfj1fYh+UOUSa8c814E9NfCdYZ9Z11BmPpBeR5mXV12j1DKjkTlqTUL7s4lVR\n"
-"RKfyAdCpQIfeXHDeTYYUq2uBnbi5YMG5Y+WbCiYacgRU3IypYrSzaeh1mY7GiEFe\n"
-"U/NaImHLCf+TdAvTJ3Fo0QPe5QN2Lrv6l//cqOv7enZ91KRWxClDMM6EAr+C/7dk\n"
-"rOTXRrCuH/e/KVBXEJ/YeSYPmBIwolGktRrGdsVagdqYArr4dhJ7VThIVRUX1Ijl\n"
-"THCLstI/LuD8WkDccU3ZSdm47f2U43p/+rSO0MiNOXiaskeK56G/9DbJEeETUbzm\n"
-"/B2712MVAgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQU8MUzmkotjSmVa5r1ejMkMQ6BiZYwHwYDVR0jBBgwFoAUwRHw\n"
-"bXyPosKNNkBiZduEwL5ZCwswDQYJKoZIhvcNAQELBQADggEBACKxBPj9u1t52uIF\n"
-"eQ2JPb8/u+MBttvSLo0qPKXwpc4q8hNclh66dpqGWiF0iSumsKyKU54r6CIF9Ikm\n"
-"t1V1GR9Ll4iTnz3NdIt1w3ns8rSlU5O/dgKysK/1C/5xJWEUYtEO5mnyi4Zaf8FB\n"
-"hKmQ1aWF5dTB81PVAQxyCiFEnH7YumK7pJeIpnCOPIqLZLUHfrTUeL8zONF4i5Sb\n"
-"7taZ8SQ6b7IaioU+NJ50uT2wy34lsyvCWf76Azezv9bggkdNDo/7ktMgsfRrSyM8\n"
-"+MVob5ePGTjKx5yMy/sy2vUkkefwW3RiEss/y2JRb8Hw7nDlA9ttilYKFwGFwRvw\n"
-"KRsXqo8=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDOjCCAiKgAwIBAgIMU0T+mwoDu5uVLKeeMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTEwIhgPMjAxNDA0MDkwODAyMzVaGA85OTk5MTIzMTIzNTk1OVow\n"
+ "EzERMA8GA1UEAxMIc2VydmVyLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
+ "AoIBAQDXfvgsMWXHNf3iUaEoZSNztZZr6+UdBkoUhbdWJDR+GwR+GHfnYaYHsuqb\n"
+ "bNEl/QFI+8Jeth0SmG7TNB+b/AlHFoBm8TwBt7H+Mn6AQIdo872Vs262UkHgbZN6\n"
+ "dEQeRCgiXmlsOVe+MVpf79Xi32MYz1FZ/ueS6tr8sIDhECThIZkq2eulVjAV86N2\n"
+ "zQ72Ml1k8rPw4SdK5OFhcXNdXr6CsAol8MmiORKDF0iAZxwtFVc00nBGqQC5rwrN\n"
+ "3A8czH5TsvyvrcW0mwV2XOVvZM5kFM1T/X0jF6RQHiGGFBYK4s6JZxSSOhJMFYYh\n"
+ "koPEKsuVZdmBJ2yTTdGumHZfG9LDAgMBAAGjgY0wgYowDAYDVR0TAQH/BAIwADAU\n"
+ "BgNVHREEDTALgglsb2NhbGhvc3QwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYDVR0P\n"
+ "AQH/BAUDAwegADAdBgNVHQ4EFgQURXiN5VD5vgqAprhd/37ldGKv4/4wHwYDVR0j\n"
+ "BBgwFoAU8MUzmkotjSmVa5r1ejMkMQ6BiZYwDQYJKoZIhvcNAQELBQADggEBABSU\n"
+ "cmMX0nGeg43itPnLjSTIUuYEamRhfsFDwgRYQn5w+BcFG1p0scBRxLAShUEb9A2A\n"
+ "oEJV4rQDpCn9bcMrMHhTCR5sOlLh/2o9BROjK0+DjQLDkooQK5xa+1GYEiy6QYCx\n"
+ "QjdCCnMhHh24oP2/vUggRKhevvD2QQFKcCDT6n13RFYm+HX82gIh6SAtRs0oahY5\n"
+ "k9CM9TYRPzXy+tQqhZisJzc8BLTW/XA97kAJW6+hUhPir7AYR6BKJhNeIxcN/yMy\n"
+ "jsHzWDLezip/8q+kzw658V5e40hne7ZaJycGUaUdLVnJcpNtBgGE82TRS/XZSQKF\n"
+ "fpy8FLGcJynqlIOzdKs=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwNDA5MDgwMjM0WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZq3sA+mjFadII\n"
+ "EMDHfj1fYh+UOUSa8c814E9NfCdYZ9Z11BmPpBeR5mXV12j1DKjkTlqTUL7s4lVR\n"
+ "RKfyAdCpQIfeXHDeTYYUq2uBnbi5YMG5Y+WbCiYacgRU3IypYrSzaeh1mY7GiEFe\n"
+ "U/NaImHLCf+TdAvTJ3Fo0QPe5QN2Lrv6l//cqOv7enZ91KRWxClDMM6EAr+C/7dk\n"
+ "rOTXRrCuH/e/KVBXEJ/YeSYPmBIwolGktRrGdsVagdqYArr4dhJ7VThIVRUX1Ijl\n"
+ "THCLstI/LuD8WkDccU3ZSdm47f2U43p/+rSO0MiNOXiaskeK56G/9DbJEeETUbzm\n"
+ "/B2712MVAgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQU8MUzmkotjSmVa5r1ejMkMQ6BiZYwHwYDVR0jBBgwFoAUwRHw\n"
+ "bXyPosKNNkBiZduEwL5ZCwswDQYJKoZIhvcNAQELBQADggEBACKxBPj9u1t52uIF\n"
+ "eQ2JPb8/u+MBttvSLo0qPKXwpc4q8hNclh66dpqGWiF0iSumsKyKU54r6CIF9Ikm\n"
+ "t1V1GR9Ll4iTnz3NdIt1w3ns8rSlU5O/dgKysK/1C/5xJWEUYtEO5mnyi4Zaf8FB\n"
+ "hKmQ1aWF5dTB81PVAQxyCiFEnH7YumK7pJeIpnCOPIqLZLUHfrTUeL8zONF4i5Sb\n"
+ "7taZ8SQ6b7IaioU+NJ50uT2wy34lsyvCWf76Azezv9bggkdNDo/7ktMgsfRrSyM8\n"
+ "+MVob5ePGTjKx5yMy/sy2vUkkefwW3RiEss/y2JRb8Hw7nDlA9ttilYKFwGFwRvw\n"
+ "KRsXqo8=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char server_key_pem[] =
-"-----BEGIN RSA PRIVATE KEY-----\n"
-"MIIEpAIBAAKCAQEA1374LDFlxzX94lGhKGUjc7WWa+vlHQZKFIW3ViQ0fhsEfhh3\n"
-"52GmB7Lqm2zRJf0BSPvCXrYdEphu0zQfm/wJRxaAZvE8Abex/jJ+gECHaPO9lbNu\n"
-"tlJB4G2TenREHkQoIl5pbDlXvjFaX+/V4t9jGM9RWf7nkura/LCA4RAk4SGZKtnr\n"
-"pVYwFfOjds0O9jJdZPKz8OEnSuThYXFzXV6+grAKJfDJojkSgxdIgGccLRVXNNJw\n"
-"RqkAua8KzdwPHMx+U7L8r63FtJsFdlzlb2TOZBTNU/19IxekUB4hhhQWCuLOiWcU\n"
-"kjoSTBWGIZKDxCrLlWXZgSdsk03Rrph2XxvSwwIDAQABAoIBAB7trDS7ij4DM8MN\n"
-"sDGaAnKS91nZ63I0+uDjKCMG4znOKuDmJh9hVnD4bs+L2KC5JTwSVh09ygJnOlC5\n"
-"xGegzrwTMK6VpOUiNjujh6BkooqfoPAhZpxoReguEeKbWUN2yMPWBQ9xU3SKpMvs\n"
-"IiiDozdmWeiuuxHM/00REA49QO3Gnx2logeB+fcvXXD1UiZV3x0xxSApiJt1sr2r\n"
-"NmqSyGdNUgpmnTP8zbKnDaRe5Wj4tj1TCTLE/HZ0tzdRuwlkIqvcpGg1LMtKm5N8\n"
-"xIWjTGMFwGjG+OF8LGqHLH+28pI3iMB6QqO2YLwOp+WZKImKP3+Dp3s8lCw8t8cm\n"
-"q5/Qc9ECgYEA2xwxm+pFkrFmZNLCakP/6S5AZqpfSBRUlF/uX2pBKO7o6I6aOV9o\n"
-"zq2QWYIZfdyD+9MvAFUQ36sWfTVWpGA34WGtsGtcRRygKKTigpJHvBldaPxiuYuk\n"
-"xbS54nWUdix/JzyQAy22xJXlp4XJvtFJjHhA2td0XA7tfng9n8jmvEUCgYEA+8cA\n"
-"uFIQFbaZ2y6pnOvlVj8OH0f1hZa9M+3q01fWy1rnDAsLrIzJy8TZnBtpDwy9lAun\n"
-"Sa6wzu6qeHmF17xwk5U7BCyK2Qj/9KhRLg1mnDebQ/CiLSAaJVnrYFp9Du96fTkN\n"
-"ollvbFiGF92QwPTDf2f1gHZQEPwa+f/ox37ad2cCgYEAwMgXpfUD7cOEMeV2BQV7\n"
-"XnDBXRM97i9lE38sPmtAlYFPD36Yly4pCt+PCBH9181zmtf+nK47wG/Jw7RwXQQD\n"
-"ZpwItBZiArTi/Z/FY9jMoOU4WKznOBVzjjgq7ONDEo6n+Z/BnepUyraQb0q5bNi7\n"
-"e4o6ldHHoU/JCeNFZRbgXHkCgYA6vJU9at+XwS6phHxLQHkTIsivoYD0tlLTX4it\n"
-"30sby8wk8hq6GWomYHkHwxlCSo2bkRBozxkuXV1ll6wSxUJaG7FV6vJFaaUUtYOi\n"
-"w7uRbCOLuQKMlnWjCxQvOUz9g/7GYd39ZvHoi8pUnPrdGPzWpzEN1AwfukCs2/e5\n"
-"Oq3KtwKBgQCkHmDU8h0kOfN28f8ZiyjJemQMNoOGiJqnGexaKvsRd+bt4H+7DsWQ\n"
-"OnyKm/oR0wCCSmFM5aQc6GgzPD7orueKVYHChbY7HLTWKRHNs6Rlk+6hXJvOld0i\n"
-"Cl7KqL2x2ibGMtt4LtSntdzWqa87N7vCWMSTmvd8uLgflBs33xUIiQ==\n"
-"-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEpAIBAAKCAQEA1374LDFlxzX94lGhKGUjc7WWa+vlHQZKFIW3ViQ0fhsEfhh3\n"
+ "52GmB7Lqm2zRJf0BSPvCXrYdEphu0zQfm/wJRxaAZvE8Abex/jJ+gECHaPO9lbNu\n"
+ "tlJB4G2TenREHkQoIl5pbDlXvjFaX+/V4t9jGM9RWf7nkura/LCA4RAk4SGZKtnr\n"
+ "pVYwFfOjds0O9jJdZPKz8OEnSuThYXFzXV6+grAKJfDJojkSgxdIgGccLRVXNNJw\n"
+ "RqkAua8KzdwPHMx+U7L8r63FtJsFdlzlb2TOZBTNU/19IxekUB4hhhQWCuLOiWcU\n"
+ "kjoSTBWGIZKDxCrLlWXZgSdsk03Rrph2XxvSwwIDAQABAoIBAB7trDS7ij4DM8MN\n"
+ "sDGaAnKS91nZ63I0+uDjKCMG4znOKuDmJh9hVnD4bs+L2KC5JTwSVh09ygJnOlC5\n"
+ "xGegzrwTMK6VpOUiNjujh6BkooqfoPAhZpxoReguEeKbWUN2yMPWBQ9xU3SKpMvs\n"
+ "IiiDozdmWeiuuxHM/00REA49QO3Gnx2logeB+fcvXXD1UiZV3x0xxSApiJt1sr2r\n"
+ "NmqSyGdNUgpmnTP8zbKnDaRe5Wj4tj1TCTLE/HZ0tzdRuwlkIqvcpGg1LMtKm5N8\n"
+ "xIWjTGMFwGjG+OF8LGqHLH+28pI3iMB6QqO2YLwOp+WZKImKP3+Dp3s8lCw8t8cm\n"
+ "q5/Qc9ECgYEA2xwxm+pFkrFmZNLCakP/6S5AZqpfSBRUlF/uX2pBKO7o6I6aOV9o\n"
+ "zq2QWYIZfdyD+9MvAFUQ36sWfTVWpGA34WGtsGtcRRygKKTigpJHvBldaPxiuYuk\n"
+ "xbS54nWUdix/JzyQAy22xJXlp4XJvtFJjHhA2td0XA7tfng9n8jmvEUCgYEA+8cA\n"
+ "uFIQFbaZ2y6pnOvlVj8OH0f1hZa9M+3q01fWy1rnDAsLrIzJy8TZnBtpDwy9lAun\n"
+ "Sa6wzu6qeHmF17xwk5U7BCyK2Qj/9KhRLg1mnDebQ/CiLSAaJVnrYFp9Du96fTkN\n"
+ "ollvbFiGF92QwPTDf2f1gHZQEPwa+f/ox37ad2cCgYEAwMgXpfUD7cOEMeV2BQV7\n"
+ "XnDBXRM97i9lE38sPmtAlYFPD36Yly4pCt+PCBH9181zmtf+nK47wG/Jw7RwXQQD\n"
+ "ZpwItBZiArTi/Z/FY9jMoOU4WKznOBVzjjgq7ONDEo6n+Z/BnepUyraQb0q5bNi7\n"
+ "e4o6ldHHoU/JCeNFZRbgXHkCgYA6vJU9at+XwS6phHxLQHkTIsivoYD0tlLTX4it\n"
+ "30sby8wk8hq6GWomYHkHwxlCSo2bkRBozxkuXV1ll6wSxUJaG7FV6vJFaaUUtYOi\n"
+ "w7uRbCOLuQKMlnWjCxQvOUz9g/7GYd39ZvHoi8pUnPrdGPzWpzEN1AwfukCs2/e5\n"
+ "Oq3KtwKBgQCkHmDU8h0kOfN28f8ZiyjJemQMNoOGiJqnGexaKvsRd+bt4H+7DsWQ\n"
+ "OnyKm/oR0wCCSmFM5aQc6GgzPD7orueKVYHChbY7HLTWKRHNs6Rlk+6hXJvOld0i\n"
+ "Cl7KqL2x2ibGMtt4LtSntdzWqa87N7vCWMSTmvd8uLgflBs33xUIiQ==\n"
+ "-----END RSA PRIVATE KEY-----\n";
static unsigned char cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
@@ -154,7 +152,7 @@ static unsigned char cert_pem[] =
"jpfc/3X7sLUsMvumcDE01ls/cG5mIatmiyEU9qI3jbgUf82z23ON/acwJf875D3/\n"
"U7jyOsBJ44SEQITbin2yUeJMIm1tievvdNXBDfW95AM507ShzP12sfiJkJfjjdhy\n"
"dc8Siq5JojruiMizAf0pA7in\n" "-----END CERTIFICATE-----\n";
-const gnutls_datum_t cli_cert = { cert_pem, sizeof(cert_pem) - 1};
+const gnutls_datum_t cli_cert = { cert_pem, sizeof(cert_pem) - 1 };
static unsigned char key_pem[] =
"-----BEGIN RSA PRIVATE KEY-----\n"
@@ -172,7 +170,7 @@ static unsigned char key_pem[] =
"/iVX2cmMTSh3w3z8MaECQEp0XJWDVKOwcTW6Ajp9SowtmiZ3YDYo1LF9igb4iaLv\n"
"sWZGfbnU3ryjvkb6YuFjgtzbZDZHWQCo8/cOtOBmPdk=\n"
"-----END RSA PRIVATE KEY-----\n";
-const gnutls_datum_t cli_key = { key_pem, sizeof(key_pem) - 1};
+const gnutls_datum_t cli_key = { key_pem, sizeof(key_pem) - 1 };
const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
@@ -203,8 +201,10 @@ void start(const char *prio)
if (debug)
gnutls_global_set_log_level(2);
- ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &server_cert, GNUTLS_X509_FMT_PEM,
- GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
+ ret =
+ gnutls_x509_crt_list_import2(&crts, &crts_size, &server_cert,
+ GNUTLS_X509_FMT_PEM,
+ GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
if (ret < 0) {
fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -217,8 +217,7 @@ void start(const char *prio)
}
ret =
- gnutls_x509_privkey_import(pkey, &server_key,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_privkey_import(pkey, &server_key, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -228,13 +227,12 @@ void start(const char *prio)
gnutls_certificate_allocate_credentials(&serverx509cred);
gnutls_certificate_set_x509_key(serverx509cred, crts, crts_size, pkey);
gnutls_x509_privkey_deinit(pkey);
- for (i=0;i<crts_size;i++)
+ for (i = 0; i < crts_size; i++)
gnutls_x509_crt_deinit(crts[i]);
gnutls_free(crts);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -247,7 +245,9 @@ void start(const char *prio)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -260,7 +260,7 @@ void start(const char *prio)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -284,27 +284,32 @@ void start(const char *prio)
}
gnutls_x509_crt_init(&crt);
- ret = gnutls_x509_crt_import(crt, &server_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_crt_import(crt, &server_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
- fail("gnutls_x509_crt_import: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_import: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
ret = gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_DER, &scert);
if (ret < 0) {
- fail("gnutls_x509_crt_export2: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_export2: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
assert(ret == 0);
gnutls_x509_crt_deinit(crt);
- if (scert.size != mcert->size || memcmp(scert.data, mcert->data, mcert->size) != 0) {
+ if (scert.size != mcert->size
+ || memcmp(scert.data, mcert->data, mcert->size) != 0) {
fail("gnutls_certificate_get_ours output doesn't match cert\n");
exit(1);
}
gnutls_free(scert.data);
- assert(gnutls_certificate_type_get(server)==GNUTLS_CRT_X509);
+ assert(gnutls_certificate_type_get(server) == GNUTLS_CRT_X509);
}
/* check gnutls_certificate_get_ours() - client side */
@@ -320,27 +325,31 @@ void start(const char *prio)
}
gnutls_x509_crt_init(&crt);
- ret = gnutls_x509_crt_import(crt, &cli_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_crt_import(crt, &cli_cert, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
- fail("gnutls_x509_crt_import: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_import: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
ret = gnutls_x509_crt_export2(crt, GNUTLS_X509_FMT_DER, &ccert);
if (ret < 0) {
- fail("gnutls_x509_crt_export2: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_export2: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
assert(ret == 0);
gnutls_x509_crt_deinit(crt);
- if (ccert.size != mcert->size || memcmp(ccert.data, mcert->data, mcert->size) != 0) {
+ if (ccert.size != mcert->size
+ || memcmp(ccert.data, mcert->data, mcert->size) != 0) {
fail("gnutls_certificate_get_ours output doesn't match cert\n");
exit(1);
}
gnutls_free(ccert.data);
- assert(gnutls_certificate_type_get(client)==GNUTLS_CRT_X509);
+ assert(gnutls_certificate_type_get(client) == GNUTLS_CRT_X509);
}
/* check the number of certificates received */
@@ -353,20 +362,22 @@ void start(const char *prio)
/* check with wrong hostname */
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"localhost1";
+ data[0].data = (void *)"localhost1";
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
gnutls_certificate_get_peers(client, &cert_list_size);
if (cert_list_size < 2) {
- fprintf(stderr, "received a certificate list of %d!\n", cert_list_size);
+ fprintf(stderr, "received a certificate list of %d!\n",
+ cert_list_size);
exit(1);
}
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fprintf(stderr, "could not verify certificate: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -377,20 +388,22 @@ void start(const char *prio)
/* check with wrong purpose */
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"localhost";
+ data[0].data = (void *)"localhost";
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_CLIENT;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_CLIENT;
gnutls_certificate_get_peers(client, &cert_list_size);
if (cert_list_size < 2) {
- fprintf(stderr, "received a certificate list of %d!\n", cert_list_size);
+ fprintf(stderr, "received a certificate list of %d!\n",
+ cert_list_size);
exit(1);
}
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fprintf(stderr, "could not verify certificate: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -401,37 +414,47 @@ void start(const char *prio)
/* check with correct purpose */
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"localhost";
+ data[0].data = (void *)"localhost";
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fprintf(stderr, "could not verify certificate: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
if (status != 0) {
- fprintf(stderr, "could not verify certificate: %.4x\n", status);
+ fprintf(stderr, "could not verify certificate: %.4x\n",
+ status);
exit(1);
}
status = gnutls_ocsp_status_request_is_checked(client, 0);
if (status != 0) {
- fprintf(stderr, "gnutls_ocsp_status_request_is_checked: unexpected value (%u)\n", status);
+ fprintf(stderr,
+ "gnutls_ocsp_status_request_is_checked: unexpected value (%u)\n",
+ status);
exit(1);
}
- status = gnutls_ocsp_status_request_is_checked(client, GNUTLS_OCSP_SR_IS_AVAIL);
+ status =
+ gnutls_ocsp_status_request_is_checked(client,
+ GNUTLS_OCSP_SR_IS_AVAIL);
if (status != 0) {
- fprintf(stderr, "gnutls_ocsp_status_request_is_checked: unexpected value (%u)\n", status);
+ fprintf(stderr,
+ "gnutls_ocsp_status_request_is_checked: unexpected value (%u)\n",
+ status);
exit(1);
}
status = gnutls_ocsp_status_request_is_checked(server, 0);
if (status != 0) {
- fprintf(stderr, "gnutls_ocsp_status_request_is_checked: unexpected value (%u)\n", status);
+ fprintf(stderr,
+ "gnutls_ocsp_status_request_is_checked: unexpected value (%u)\n",
+ status);
exit(1);
}
}
diff --git a/tests/mini-x509-callbacks-intr.c b/tests/mini-x509-callbacks-intr.c
index 6f4e258971..3ea7aa2499 100644
--- a/tests/mini-x509-callbacks-intr.c
+++ b/tests/mini-x509-callbacks-intr.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -148,14 +148,12 @@ void start(const char *prio)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server, "NORMAL", NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
- gnutls_certificate_set_verify_function(serverx509cred,
- server_callback);
+ gnutls_certificate_set_verify_function(serverx509cred, server_callback);
gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
gnutls_handshake_set_post_client_hello_function(server,
post_client_hello_callback);
@@ -163,14 +161,12 @@ void start(const char *prio)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_priority_set_direct(client, "NORMAL", NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
- gnutls_certificate_set_verify_function(clientx509cred,
- client_callback);
+ gnutls_certificate_set_verify_function(clientx509cred, client_callback);
HANDSHAKE(client, server);
diff --git a/tests/mini-x509-callbacks.c b/tests/mini-x509-callbacks.c
index e159e403c5..3a25a01015 100644
--- a/tests/mini-x509-callbacks.c
+++ b/tests/mini-x509-callbacks.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -56,12 +56,15 @@ static void verify_alpn(gnutls_session_t session)
ret = gnutls_alpn_get_selected_protocol(session, &selected);
if (ret < 0) {
- fail("gnutls_alpn_get_selected_protocol: %s\n", gnutls_strerror(ret));
+ fail("gnutls_alpn_get_selected_protocol: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- if (strlen(str) != selected.size || memcmp(str, selected.data, selected.size) != 0) {
- fail("expected protocol %s, got %.*s\n", str, selected.size, selected.data);
+ if (strlen(str) != selected.size
+ || memcmp(str, selected.data, selected.size) != 0) {
+ fail("expected protocol %s, got %.*s\n", str, selected.size,
+ selected.data);
exit(1);
}
@@ -91,7 +94,8 @@ unsigned int msg_order[] = {
};
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *rawmsg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * rawmsg)
{
static unsigned idx = 0;
unsigned int msg;
@@ -100,8 +104,7 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
fail("%s: %s, expected %s\n",
incoming != 0 ? "Received" : "Sent",
gnutls_handshake_description_get_name(htype),
- gnutls_handshake_description_get_name(msg_order
- [idx]));
+ gnutls_handshake_description_get_name(msg_order[idx]));
exit(1);
}
idx++;
@@ -198,7 +201,7 @@ static void append_alpn(gnutls_session_t session)
snprintf(str, sizeof(str), "myproto");
- protocol.data = (void*)str;
+ protocol.data = (void *)str;
protocol.size = strlen(str);
ret = gnutls_alpn_set_protocols(session, &protocol, 1, 0);
@@ -238,14 +241,12 @@ void start(const char *prio, unsigned check_order)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server, prio, NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
- gnutls_certificate_set_verify_function(serverx509cred,
- server_callback);
+ gnutls_certificate_set_verify_function(serverx509cred, server_callback);
gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
gnutls_handshake_set_post_client_hello_function(server,
post_client_hello_callback);
@@ -258,14 +259,12 @@ void start(const char *prio, unsigned check_order)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_priority_set_direct(client, prio, NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
- gnutls_certificate_set_verify_function(clientx509cred,
- client_callback);
+ gnutls_certificate_set_verify_function(clientx509cred, client_callback);
append_alpn(client);
HANDSHAKE(client, server);
diff --git a/tests/mini-x509-cas.c b/tests/mini-x509-cas.c
index 5996616af6..08b40329e8 100644
--- a/tests/mini-x509-cas.c
+++ b/tests/mini-x509-cas.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -83,10 +83,9 @@ void start(const char *prio)
}
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
- assert(gnutls_priority_set_direct(server, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -94,9 +93,8 @@ void start(const char *prio)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
- assert(gnutls_priority_set_direct(client, prio, NULL)>=0);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
+ assert(gnutls_priority_set_direct(client, prio, NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
diff --git a/tests/mini-x509-ipaddr.c b/tests/mini-x509-ipaddr.c
index 72b5c6909d..7d6fc2e0f8 100644
--- a/tests/mini-x509-ipaddr.c
+++ b/tests/mini-x509-ipaddr.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -79,18 +79,18 @@ void doit(void)
gnutls_global_set_time_function(mytime);
/* Init server */
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
ret = gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_ca3_ipaddr_cert, &server_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ &server_ca3_ipaddr_cert,
+ &server_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("could not import cert: %s\n", gnutls_strerror(ret));
}
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_set_default_priority(server)>=0);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_set_default_priority(server) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -100,7 +100,9 @@ void doit(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -109,7 +111,7 @@ void doit(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -127,14 +129,15 @@ void doit(void)
memset(data, 0, sizeof(data));
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"localhost1";
+ data[0].data = (void *)"localhost1";
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -147,15 +150,16 @@ void doit(void)
memset(data, 0, sizeof(data));
data[0].type = GNUTLS_DT_IP_ADDRESS;
- data[0].data = (void*)"\x01\x00\x01\x02";
+ data[0].data = (void *)"\x01\x00\x01\x02";
data[0].size = 4;
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -168,44 +172,54 @@ void doit(void)
memset(data, 0, sizeof(data));
data[0].type = GNUTLS_DT_IP_ADDRESS;
- data[0].data = (void*)"\x7f\x00\x00\x01";
+ data[0].data = (void *)"\x7f\x00\x00\x01";
data[0].size = 4;
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
if (status != 0) {
- assert(gnutls_certificate_verification_status_print(status, GNUTLS_CRT_X509, &t, 0)>=0);
+ assert(gnutls_certificate_verification_status_print
+ (status, GNUTLS_CRT_X509, &t, 0) >= 0);
fail("could not verify: %s/%.4x!\n", t.data, status);
}
/* try the other verification functions */
- ret = gnutls_certificate_verify_peers3(client, "127.0.0.1", &status);
+ ret =
+ gnutls_certificate_verify_peers3(client, "127.0.0.1",
+ &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
if (status != 0) {
- assert(gnutls_certificate_verification_status_print(status, GNUTLS_CRT_X509, &t, 0)>=0);
+ assert(gnutls_certificate_verification_status_print
+ (status, GNUTLS_CRT_X509, &t, 0) >= 0);
fail("could not verify: %s/%.4x!\n", t.data, status);
}
}
{
/* change the flags */
- gnutls_certificate_set_verify_flags(clientx509cred, GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES);
+ gnutls_certificate_set_verify_flags(clientx509cred,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES);
/* now the compatibility option should fail */
- ret = gnutls_certificate_verify_peers3(client, "127.0.0.1", &status);
+ ret =
+ gnutls_certificate_verify_peers3(client, "127.0.0.1",
+ &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -217,14 +231,15 @@ void doit(void)
memset(data, 0, sizeof(data));
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"127.0.0.1";
+ data[0].data = (void *)"127.0.0.1";
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -237,20 +252,22 @@ void doit(void)
memset(data, 0, sizeof(data));
data[0].type = GNUTLS_DT_IP_ADDRESS;
- data[0].data = (void*)"\x7f\x00\x00\x01";
+ data[0].data = (void *)"\x7f\x00\x00\x01";
data[0].size = 4;
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
if (status != 0) {
- assert(gnutls_certificate_verification_status_print(status, GNUTLS_CRT_X509, &t, 0)>=0);
+ assert(gnutls_certificate_verification_status_print
+ (status, GNUTLS_CRT_X509, &t, 0) >= 0);
fail("could not verify: %s/%.4x!\n", t.data, status);
}
}
diff --git a/tests/mini-x509.c b/tests/mini-x509.c
index 1eba21881e..4aa1d5f4e2 100644
--- a/tests/mini-x509.c
+++ b/tests/mini-x509.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -80,9 +80,8 @@ void start(const char *prio, unsigned expect_max)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server, prio, NULL)>=0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -92,7 +91,9 @@ void start(const char *prio, unsigned expect_max)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -101,7 +102,7 @@ void start(const char *prio, unsigned expect_max)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -112,8 +113,10 @@ void start(const char *prio, unsigned expect_max)
HANDSHAKE(client, server);
- assert((gnutls_session_get_flags(server) & GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) != 0);
- assert((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) != 0);
+ assert((gnutls_session_get_flags(server) &
+ GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) != 0);
+ assert((gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) != 0);
/* check gnutls_certificate_get_ours() - client side */
{
@@ -126,8 +129,8 @@ void start(const char *prio, unsigned expect_max)
}
}
- assert(gnutls_certificate_type_get(server)==GNUTLS_CRT_X509);
- assert(gnutls_certificate_type_get(client)==GNUTLS_CRT_X509);
+ assert(gnutls_certificate_type_get(server) == GNUTLS_CRT_X509);
+ assert(gnutls_certificate_type_get(client) == GNUTLS_CRT_X509);
/* check the number of certificates received and verify */
{
@@ -138,20 +141,22 @@ void start(const char *prio, unsigned expect_max)
memset(data, 0, sizeof(data));
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"localhost1";
+ data[0].data = (void *)"localhost1";
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
gnutls_certificate_get_peers(client, &cert_list_size);
if (cert_list_size < 2) {
- fail("received a certificate list of %d!\n", cert_list_size);
+ fail("received a certificate list of %d!\n",
+ cert_list_size);
exit(1);
}
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -161,11 +166,12 @@ void start(const char *prio, unsigned expect_max)
}
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"localhost";
+ data[0].data = (void *)"localhost";
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -175,9 +181,12 @@ void start(const char *prio, unsigned expect_max)
}
/* check gnutls_certificate_verify_peers3 */
- ret = gnutls_certificate_verify_peers3(client, "localhost1", &status);
+ ret =
+ gnutls_certificate_verify_peers3(client, "localhost1",
+ &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -186,9 +195,12 @@ void start(const char *prio, unsigned expect_max)
exit(1);
}
- ret = gnutls_certificate_verify_peers3(client, "localhost", &status);
+ ret =
+ gnutls_certificate_verify_peers3(client, "localhost",
+ &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -200,7 +212,8 @@ void start(const char *prio, unsigned expect_max)
/* check gnutls_certificate_verify_peers2 */
ret = gnutls_certificate_verify_peers2(client, &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -216,19 +229,22 @@ void start(const char *prio, unsigned expect_max)
t = gnutls_certificate_activation_time_peers(client);
if (t != 1396641545) {
- fail("unexpected activation time: %lu\n", (long unsigned)t);
+ fail("unexpected activation time: %lu\n",
+ (long unsigned)t);
}
if (sizeof(time_t) >= 8) {
t = gnutls_certificate_expiration_time_peers(client);
- if (t != (time_t)253402300799UL) {
- fail("unexpected expiration time: %lu\n", (long unsigned)t);
+ if (t != (time_t) 253402300799UL) {
+ fail("unexpected expiration time: %lu\n",
+ (long unsigned)t);
}
}
}
if (expect_max) {
- if (gnutls_protocol_get_version(client) != GNUTLS_TLS_VERSION_MAX) {
+ if (gnutls_protocol_get_version(client) !=
+ GNUTLS_TLS_VERSION_MAX) {
fail("The negotiated TLS protocol is not the maximum supported\n");
}
}
diff --git a/tests/missingissuer.c b/tests/missingissuer.c
index 226d095929..5a7ccaabbd 100644
--- a/tests/missingissuer.c
+++ b/tests/missingissuer.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -63,7 +63,7 @@ struct getissuer_data {
static int getissuer_callback(gnutls_x509_trust_list_t tlist,
const gnutls_x509_crt_t crt,
- gnutls_x509_crt_t **issuers,
+ gnutls_x509_crt_t ** issuers,
unsigned int *issuers_size)
{
gnutls_datum_t tmp;
@@ -75,7 +75,8 @@ static int getissuer_callback(gnutls_x509_trust_list_t tlist,
tmp.data = (unsigned char *)data->insert[data->count];
if (!tmp.data) {
- fprintf(stderr, "getissuer_callback is called more times than expected\n");
+ fprintf(stderr,
+ "getissuer_callback is called more times than expected\n");
return -1;
}
@@ -94,11 +95,12 @@ static int getissuer_callback(gnutls_x509_trust_list_t tlist,
if (debug)
printf("\t Certificate missing issuer is: %.*s\n",
- tmp.size, tmp.data);
+ tmp.size, tmp.data);
gnutls_free(tmp.data);
for (i = 0; i < *issuers_size; i++) {
- assert(gnutls_x509_crt_print((*issuers)[i], GNUTLS_CRT_PRINT_ONELINE, &tmp) >= 0);
+ assert(gnutls_x509_crt_print
+ ((*issuers)[i], GNUTLS_CRT_PRINT_ONELINE, &tmp) >= 0);
if (debug)
printf("\t Appended issuer certificate is: %.*s\n",
@@ -162,15 +164,14 @@ void doit(void)
tmp.size = strlen(chains[i].chain[j]);
ret =
- gnutls_x509_crt_import(certs[j], &tmp,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_crt_import(certs[j], &tmp,
+ GNUTLS_X509_FMT_PEM);
if (debug > 2)
printf("done\n");
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_import[%d]: %s\n",
- (int)j,
- gnutls_strerror(ret));
+ (int)j, gnutls_strerror(ret));
exit(1);
}
@@ -225,25 +226,26 @@ void doit(void)
data.insert = chains[i].insert;
gnutls_x509_trust_list_set_ptr(tl, &data);
- gnutls_x509_trust_list_set_getissuer_function(tl, getissuer_callback);
+ gnutls_x509_trust_list_set_getissuer_function(tl,
+ getissuer_callback);
ret = gnutls_x509_trust_list_verify_crt(tl, certs, j,
chains[i].verify_flags,
- &verify_status,
- NULL);
+ &verify_status, NULL);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_trust_list_verify_crt: %s\n", gnutls_strerror(ret));
+ "gnutls_x509_trust_list_verify_crt: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
if (verify_status != chains[i].expected_verify_result) {
gnutls_datum_t out1, out2;
gnutls_certificate_verification_status_print
- (verify_status, GNUTLS_CRT_X509, &out1, 0);
+ (verify_status, GNUTLS_CRT_X509, &out1, 0);
gnutls_certificate_verification_status_print
- (chains[i].expected_verify_result,
- GNUTLS_CRT_X509, &out2, 0);
+ (chains[i].expected_verify_result,
+ GNUTLS_CRT_X509, &out2, 0);
fail("chain[%s]:\nverify_status: %d: %s\nexpected: %d: %s\n", chains[i].name, verify_status, out1.data, chains[i].expected_verify_result, out2.data);
gnutls_free(out1.data);
gnutls_free(out2.data);
diff --git a/tests/missingissuer_aia.c b/tests/missingissuer_aia.c
index 1e68305f1f..8070331909 100644
--- a/tests/missingissuer_aia.c
+++ b/tests/missingissuer_aia.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -58,7 +58,7 @@ static void tls_log_func(int level, const char *str)
static int getissuer_callback(gnutls_x509_trust_list_t tlist,
const gnutls_x509_crt_t crt,
- gnutls_x509_crt_t **issuers,
+ gnutls_x509_crt_t ** issuers,
unsigned int *issuers_size)
{
int ret;
@@ -70,11 +70,12 @@ static int getissuer_callback(gnutls_x509_trust_list_t tlist,
if (debug)
printf("\t Certificate missing issuer is: %.*s\n",
- tmp.size, tmp.data);
+ tmp.size, tmp.data);
gnutls_free(tmp.data);
ret = gnutls_x509_crt_get_authority_info_access(crt, 1,
- GNUTLS_IA_CAISSUERS_URI, &aia, NULL);
+ GNUTLS_IA_CAISSUERS_URI,
+ &aia, NULL);
if (ret < 0) {
fprintf(stderr, "error: %s\n", gnutls_strerror(ret));
return -1;
@@ -97,7 +98,8 @@ static int getissuer_callback(gnutls_x509_trust_list_t tlist,
}
for (i = 0; i < *issuers_size; i++) {
- assert(gnutls_x509_crt_print(*issuers[i], GNUTLS_CRT_PRINT_ONELINE, &tmp) >= 0);
+ assert(gnutls_x509_crt_print
+ (*issuers[i], GNUTLS_CRT_PRINT_ONELINE, &tmp) >= 0);
if (debug)
printf("\t Appended missing certificate is: %.*s\n",
@@ -144,8 +146,8 @@ void doit(void)
ret = gnutls_x509_crt_init(&certs[j]);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_crt_init[%d]: %s\n",
- (int)j, gnutls_strerror(ret));
+ "gnutls_x509_crt_init[%d]: %s\n",
+ (int)j, gnutls_strerror(ret));
exit(1);
}
@@ -153,23 +155,20 @@ void doit(void)
tmp.size = strlen(missing_cert_aia[j]);
ret =
- gnutls_x509_crt_import(certs[j], &tmp,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_crt_import(certs[j], &tmp, GNUTLS_X509_FMT_PEM);
if (debug > 2)
printf("done\n");
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_crt_import[%d]: %s\n",
- (int)j,
- gnutls_strerror(ret));
+ "gnutls_x509_crt_import[%d]: %s\n",
+ (int)j, gnutls_strerror(ret));
exit(1);
}
- gnutls_x509_crt_print(certs[j],
- GNUTLS_CRT_PRINT_ONELINE, &tmp);
+ gnutls_x509_crt_print(certs[j], GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
printf("\tCertificate %d: %.*s\n", (int)j,
- tmp.size, tmp.data);
+ tmp.size, tmp.data);
gnutls_free(tmp.data);
}
@@ -179,7 +178,7 @@ void doit(void)
ret = gnutls_x509_crt_init(&ca);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_init: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
exit(1);
}
@@ -189,7 +188,7 @@ void doit(void)
ret = gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_import: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
exit(1);
}
@@ -214,9 +213,7 @@ void doit(void)
gnutls_x509_trust_list_set_getissuer_function(tl, getissuer_callback);
ret = gnutls_x509_trust_list_verify_crt(tl, certs, MAX_CHAIN,
- 0,
- &verify_status,
- NULL);
+ 0, &verify_status, NULL);
if (ret < 0) {
fail("gnutls_x509_crt_list_verify: %s\n", gnutls_strerror(ret));
}
@@ -224,7 +221,7 @@ void doit(void)
gnutls_datum_t out;
gnutls_certificate_verification_status_print
- (verify_status, GNUTLS_CRT_X509, &out, 0);
+ (verify_status, GNUTLS_CRT_X509, &out, 0);
fail("verification failed: %s\n", out.data);
gnutls_free(out.data);
}
diff --git a/tests/mpi.c b/tests/mpi.c
index 070fd5bcd5..bc1d731a6d 100644
--- a/tests/mpi.c
+++ b/tests/mpi.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -70,8 +70,7 @@ void doit(void)
if (ret < 0)
fail("mpi_set_ui failed\n");
- if (_gnutls_mpi_cmp_ui(n4, 0) != 0
- && _gnutls_mpi_cmp_ui(n4, 1) != 0)
+ if (_gnutls_mpi_cmp_ui(n4, 0) != 0 && _gnutls_mpi_cmp_ui(n4, 1) != 0)
fail("mpi_cmp_ui failed\n");
_gnutls_mpi_release(&n1);
diff --git a/tests/multi-alerts.c b/tests/multi-alerts.c
index 2ece35dbe4..bbd6df25b8 100644
--- a/tests/multi-alerts.c
+++ b/tests/multi-alerts.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -41,18 +41,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
pid_t child;
@@ -63,49 +63,47 @@ static void tls_log_func(int level, const char *str)
}
static unsigned char tls_hello[] =
- "\x16\x03\x01\x01\x38\x01\x00\x01"
- "\x34\x03\x03\xfc\x77\xa8\xc7\x46"
- "\xf7\xfd\x04\x5b\x3c\xc6\xfa\xa4"
- "\xea\x3e\xfa\x76\x99\xfe\x1a\x2e"
- "\xe0\x79\x17\xb2\x27\x06\xc4\x5c"
- "\xd8\x78\x31\x00\x00\xb6\xc0\x30"
- "\xc0\x2c\xc0\x28\xc0\x24\xc0\x14"
- "\xc0\x0a\x00\xa5\x00\xa3\x00\xa1"
- "\x00\x9f\x00\x6b\x00\x6a\x00\x69"
- "\x00\x68\x00\x39\x00\x38\x00\x37"
- "\x00\x36\x00\x88\x00\x87\x00\x86"
- "\x00\x85\xc0\x32\xc0\x2e\xc0\x2a"
- "\xc0\x26\xc0\x0f\xc0\x05\x00\x9d"
- "\x00\x3d\x00\x35\x00\x84\xc0\x2f"
- "\xc0\x2b\xc0\x27\xc0\x23\xc0\x13"
- "\xc0\x09\x00\xa4\x00\xa2\x00\xa0"
- "\x00\x9e\x00\x67\x00\x40\x00\x3f"
- "\x00\x3e\x00\x33\x00\x32\x00\x31"
- "\x00\x30\x00\x9a\x00\x99\x00\x98"
- "\x00\x97\x00\x45\x00\x44\x00\x43"
- "\x00\x42\xc0\x31\xc0\x2d\xc0\x29"
- "\xc0\x25\xc0\x0e\xc0\x04\x00\x9c"
- "\x00\x3c\x00\x2f\x00\x96\x00\x41"
- "\x00\x07\xc0\x11\xc0\x07\xc0\x0c"
- "\xc0\x02\x00\x05\x00\x04\xc0\x12"
- "\xc0\x08\x00\x16\x00\x13\x00\x10"
- "\x00\x0d\xc0\x0d\xc0\x03\x00\x0a"
- "\x00\x15\x00\x12\x00\x0f\x00\x0c"
- "\x00\x09\x00\xff\x01\x00\x00\x55"
- "\x00\x0b\x00\x04\x03\x00\x01\x02"
- "\x00\x0a\x00\x1c\x00\x1a\x00\x17"
- "\x00\x19\x00\x1c\x00\x1b\x00\x18"
- "\x00\x1a\x00\x16\x00\x0e\x00\x0d"
- "\x00\x0b\x00\x0c\x00\x09\x00\x0a"
- "\x00\x23\x00\x00\x00\x0d\x00\x20"
- "\x00\x1e\x06\x01\x06\x02\x06\x03"
- "\x05\x01\x05\x02\x05\x03\x04\x01"
- "\x04\x02\x04\x03\x03\x01\x03\x02"
- "\x03\x03\x02\x01\x02\x02\x02\x03"
- "\x00\x0f\x00\x01\x01";
-
-static unsigned char tls_alert[] =
- "\x15\x03\x03\x00\x02\x00\x0A";
+ "\x16\x03\x01\x01\x38\x01\x00\x01"
+ "\x34\x03\x03\xfc\x77\xa8\xc7\x46"
+ "\xf7\xfd\x04\x5b\x3c\xc6\xfa\xa4"
+ "\xea\x3e\xfa\x76\x99\xfe\x1a\x2e"
+ "\xe0\x79\x17\xb2\x27\x06\xc4\x5c"
+ "\xd8\x78\x31\x00\x00\xb6\xc0\x30"
+ "\xc0\x2c\xc0\x28\xc0\x24\xc0\x14"
+ "\xc0\x0a\x00\xa5\x00\xa3\x00\xa1"
+ "\x00\x9f\x00\x6b\x00\x6a\x00\x69"
+ "\x00\x68\x00\x39\x00\x38\x00\x37"
+ "\x00\x36\x00\x88\x00\x87\x00\x86"
+ "\x00\x85\xc0\x32\xc0\x2e\xc0\x2a"
+ "\xc0\x26\xc0\x0f\xc0\x05\x00\x9d"
+ "\x00\x3d\x00\x35\x00\x84\xc0\x2f"
+ "\xc0\x2b\xc0\x27\xc0\x23\xc0\x13"
+ "\xc0\x09\x00\xa4\x00\xa2\x00\xa0"
+ "\x00\x9e\x00\x67\x00\x40\x00\x3f"
+ "\x00\x3e\x00\x33\x00\x32\x00\x31"
+ "\x00\x30\x00\x9a\x00\x99\x00\x98"
+ "\x00\x97\x00\x45\x00\x44\x00\x43"
+ "\x00\x42\xc0\x31\xc0\x2d\xc0\x29"
+ "\xc0\x25\xc0\x0e\xc0\x04\x00\x9c"
+ "\x00\x3c\x00\x2f\x00\x96\x00\x41"
+ "\x00\x07\xc0\x11\xc0\x07\xc0\x0c"
+ "\xc0\x02\x00\x05\x00\x04\xc0\x12"
+ "\xc0\x08\x00\x16\x00\x13\x00\x10"
+ "\x00\x0d\xc0\x0d\xc0\x03\x00\x0a"
+ "\x00\x15\x00\x12\x00\x0f\x00\x0c"
+ "\x00\x09\x00\xff\x01\x00\x00\x55"
+ "\x00\x0b\x00\x04\x03\x00\x01\x02"
+ "\x00\x0a\x00\x1c\x00\x1a\x00\x17"
+ "\x00\x19\x00\x1c\x00\x1b\x00\x18"
+ "\x00\x1a\x00\x16\x00\x0e\x00\x0d"
+ "\x00\x0b\x00\x0c\x00\x09\x00\x0a"
+ "\x00\x23\x00\x00\x00\x0d\x00\x20"
+ "\x00\x1e\x06\x01\x06\x02\x06\x03"
+ "\x05\x01\x05\x02\x05\x03\x04\x01"
+ "\x04\x02\x04\x03\x03\x01\x03\x02"
+ "\x03\x03\x02\x01\x02\x02\x02\x03" "\x00\x0f\x00\x01\x01";
+
+static unsigned char tls_alert[] = "\x15\x03\x03\x00\x02\x00\x0A";
static void client(int sd)
{
@@ -115,7 +113,7 @@ static void client(int sd)
/* send a TLS hello, and then a list of warning alerts */
- ret = send(sd, tls_hello, sizeof(tls_hello)-1, 0);
+ ret = send(sd, tls_hello, sizeof(tls_hello) - 1, 0);
if (ret < 0)
fail("error sending hello\n");
@@ -123,8 +121,8 @@ static void client(int sd)
if (ret < 0)
fail("error receiving hello\n");
- for (i=0;i<128;i++) {
- ret = send(sd, tls_alert, sizeof(tls_alert)-1, 0);
+ for (i = 0; i < 128; i++) {
+ ret = send(sd, tls_alert, sizeof(tls_alert) - 1, 0);
if (ret < 0)
fail("error sending hello\n");
}
@@ -151,7 +149,8 @@ static void server(int sd)
gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert,
GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert,
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert,
&server_ca3_key,
GNUTLS_X509_FMT_PEM);
@@ -163,7 +162,8 @@ static void server(int sd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -174,7 +174,8 @@ static void server(int sd)
loops++;
if (loops > 64)
fail("Too many loops in the handshake!\n");
- } while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_WARNING_ALERT_RECEIVED);
+ } while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN
+ || ret == GNUTLS_E_WARNING_ALERT_RECEIVED);
if (ret >= 0) {
fail("server: Handshake succeeded unexpectedly\n");
@@ -191,7 +192,6 @@ static void server(int sd)
success("server: finished\n");
}
-
void doit(void)
{
int sockets[2];
diff --git a/tests/naked-alerts.c b/tests/naked-alerts.c
index fee16fb715..aded2932f5 100644
--- a/tests/naked-alerts.c
+++ b/tests/naked-alerts.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,18 +40,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
pid_t child;
@@ -61,8 +61,7 @@ static void tls_log_func(int level, const char *str)
str);
}
-static unsigned char tls_alert[] =
- "\x15\x03\x03\x00\x02\x00\x0A";
+static unsigned char tls_alert[] = "\x15\x03\x03\x00\x02\x00\x0A";
static void client(int sd)
{
@@ -71,8 +70,8 @@ static void client(int sd)
/* send a list of warning alerts */
- for (i=0;i<128;i++) {
- ret = send(sd, tls_alert, sizeof(tls_alert)-1, 0);
+ for (i = 0; i < 128; i++) {
+ ret = send(sd, tls_alert, sizeof(tls_alert) - 1, 0);
if (ret < 0)
fail("error sending hello\n");
}
@@ -99,7 +98,8 @@ static void server(int sd)
gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert,
GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert,
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert,
&server_ca3_key,
GNUTLS_X509_FMT_PEM);
@@ -111,7 +111,8 @@ static void server(int sd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -122,7 +123,8 @@ static void server(int sd)
loops++;
if (loops > 64)
fail("Too many loops in the handshake!\n");
- } while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_WARNING_ALERT_RECEIVED);
+ } while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN
+ || ret == GNUTLS_E_WARNING_ALERT_RECEIVED);
if (ret != GNUTLS_E_UNEXPECTED_PACKET) {
fail("server: Handshake didn't fail with expected code (failed with %d)\n", ret);
@@ -139,7 +141,6 @@ static void server(int sd)
success("server: finished\n");
}
-
void doit(void)
{
int sockets[2];
diff --git a/tests/name-constraints-ip.c b/tests/name-constraints-ip.c
index e06bec3cd2..00d10c03b2 100644
--- a/tests/name-constraints-ip.c
+++ b/tests/name-constraints-ip.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -47,11 +47,13 @@ typedef struct test_vars_t {
/* just declaration: function is exported privately
from lib/x509/name_constraints.c (declared in lib/x509/x509_int.h)
but including the header breaks includes */
-extern int _gnutls_x509_name_constraints_merge(
- gnutls_x509_name_constraints_t nc,
- gnutls_x509_name_constraints_t nc2);
+extern int _gnutls_x509_name_constraints_merge(gnutls_x509_name_constraints_t
+ nc,
+ gnutls_x509_name_constraints_t
+ nc2);
-static void check_for_error(int ret) {
+static void check_for_error(int ret)
+{
if (ret != GNUTLS_E_SUCCESS)
fail_msg("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
}
@@ -60,21 +62,24 @@ static void check_for_error(int ret) {
#define IP_REJECTED 0
static void check_test_result(int ret, int expected_outcome,
- gnutls_datum_t *tested_ip) {
+ gnutls_datum_t * tested_ip)
+{
if (expected_outcome == IP_ACCEPTED ? ret == 0 : ret != 0) {
char ip_out[48];
- _gnutls_ip_to_string(tested_ip->data, tested_ip->size, ip_out, sizeof(ip_out));
+ _gnutls_ip_to_string(tested_ip->data, tested_ip->size, ip_out,
+ sizeof(ip_out));
if (expected_outcome == IP_ACCEPTED) {
fail_msg("Checking %.*s should have succeeded.\n",
- (int) sizeof(ip_out), ip_out);
+ (int)sizeof(ip_out), ip_out);
} else {
fail_msg("Checking %.*s should have failed.\n",
- (int) sizeof(ip_out), ip_out);
+ (int)sizeof(ip_out), ip_out);
}
}
}
-static void parse_cidr(const char* cidr, gnutls_datum_t *datum) {
+static void parse_cidr(const char *cidr, gnutls_datum_t * datum)
+{
if (datum->data != NULL) {
gnutls_free(datum->data);
}
@@ -82,7 +87,8 @@ static void parse_cidr(const char* cidr, gnutls_datum_t *datum) {
check_for_error(ret);
}
-static void tls_log_func(int level, const char *str) {
+static void tls_log_func(int level, const char *str)
+{
fprintf(stderr, "<%d>| %s", level, str);
}
@@ -110,8 +116,7 @@ static unsigned char cert_pem[] =
"TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7\n"
"dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys\n"
"Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI\n"
- "l7WdmplNsDz4SgCbZN2fOUvRJ9e4\n"
- "-----END CERTIFICATE-----\n";
+ "l7WdmplNsDz4SgCbZN2fOUvRJ9e4\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t cert = { cert_pem, sizeof(cert_pem) };
@@ -120,8 +125,8 @@ const gnutls_datum_t cert = { cert_pem, sizeof(cert_pem) };
static void check_generation_reading_basic_checking(void **glob_state)
{
int ret;
- gnutls_x509_name_constraints_t nc = ((test_vars_t*)*glob_state)->nc;
- gnutls_datum_t *ip = &(((test_vars_t*)*glob_state)->ip);
+ gnutls_x509_name_constraints_t nc = ((test_vars_t *) * glob_state)->nc;
+ gnutls_datum_t *ip = &(((test_vars_t *) * glob_state)->ip);
unsigned int i, num_permitted, num_excluded, type;
gnutls_x509_crt_t crt;
@@ -141,22 +146,30 @@ static void check_generation_reading_basic_checking(void **glob_state)
num_permitted = num_excluded = 0;
parse_cidr("203.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
num_permitted++;
check_for_error(ret);
parse_cidr("2001:DB8::/32", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
num_permitted++;
check_for_error(ret);
parse_cidr("203.0.113.0/26", ip);
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
num_excluded++;
check_for_error(ret);
parse_cidr("2001:DB8::/34", ip);
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
num_excluded++;
check_for_error(ret);
@@ -164,13 +177,17 @@ static void check_generation_reading_basic_checking(void **glob_state)
parse_cidr("2001:DB8::/34", ip);
ip->data[30] = 2;
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
if (ret == 0)
fail_msg("Checking invalid network mask should have failed.");
parse_cidr("2001:DB8::/34", ip);
ip->size = 31;
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
if (ret == 0)
fail_msg("Checking invalid IP size should have failed.");
@@ -181,60 +198,69 @@ static void check_generation_reading_basic_checking(void **glob_state)
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_permitted(nc, i++, &type, &name);
+ ret =
+ gnutls_x509_name_constraints_get_permitted(nc, i++, &type,
+ &name);
#ifdef DEBUG
- _gnutls_cidr_to_string(name.data, name.size, ip_out, sizeof(ip_out));
- printf("Loaded name constraint: %s\n",ip_out);
+ _gnutls_cidr_to_string(name.data, name.size, ip_out,
+ sizeof(ip_out));
+ printf("Loaded name constraint: %s\n", ip_out);
#endif
- } while(ret == 0);
+ } while (ret == 0);
- if (i-1 != num_permitted) {
- fail_msg("Could not read all constraints; read %d, expected %d\n", i-1, num_permitted);
+ if (i - 1 != num_permitted) {
+ fail_msg
+ ("Could not read all constraints; read %d, expected %d\n",
+ i - 1, num_permitted);
}
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_excluded(nc, i++, &type, &name);
+ ret =
+ gnutls_x509_name_constraints_get_excluded(nc, i++, &type,
+ &name);
#ifdef DEBUG
- _gnutls_cidr_to_string(name.data, name.size, ip_out, sizeof(ip_out));
- printf("Loaded name constraint: %s\n",ip_out);
+ _gnutls_cidr_to_string(name.data, name.size, ip_out,
+ sizeof(ip_out));
+ printf("Loaded name constraint: %s\n", ip_out);
#endif
- } while(ret == 0);
+ } while (ret == 0);
- if (i-1 != num_excluded) {
- fail_msg("Could not read all excluded constraints; read %d, expected %d\n", i-1, num_excluded);
+ if (i - 1 != num_excluded) {
+ fail_msg
+ ("Could not read all excluded constraints; read %d, expected %d\n",
+ i - 1, num_excluded);
}
/* 3: test the name constraints check function */
parse_cidr("203.0.113.250/32", ip);
- ip->size = 4; // strip network mask
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_ACCEPTED, ip);
parse_cidr("203.0.114.0/32", ip);
- ip->size = 4; // strip network mask
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
parse_cidr("203.0.113.10/32", ip);
- ip->size = 4; // strip network mask
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
-
parse_cidr("2001:DB8:4000::/128", ip);
- ip->size = 16; // strip network mask
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_ACCEPTED, ip);
parse_cidr("2001:DB9::/128", ip);
- ip->size = 16; // strip network mask
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
parse_cidr("2001:DB8:10::/128", ip);
- ip->size = 16; // strip network mask
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
@@ -245,20 +271,22 @@ static void check_universal_constraint_checking(void **glob_state)
{
/* 3b setting universal constraint */
int ret;
- gnutls_x509_name_constraints_t nc = ((test_vars_t*)*glob_state)->nc;
- gnutls_datum_t *ip = &(((test_vars_t*)*glob_state)->ip);
+ gnutls_x509_name_constraints_t nc = ((test_vars_t *) * glob_state)->nc;
+ gnutls_datum_t *ip = &(((test_vars_t *) * glob_state)->ip);
parse_cidr("2001:DB8::/0", ip);
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("2001:DB8:10::/128", ip);
- ip->size = 16; // strip network mask
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
parse_cidr("::/128", ip);
- ip->size = 16; // strip network mask
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
}
@@ -268,34 +296,40 @@ static void check_simple_intersection(void **glob_state)
/* 4: simple intersection
* --------P:203.0.113.0/24--------
* --P:203.0.113.0/26--
- * A B C
+ * A B C
*/
int ret;
- gnutls_x509_name_constraints_t nc = ((test_vars_t*)*glob_state)->nc;
- gnutls_x509_name_constraints_t nc2 = ((test_vars_t*)*glob_state)->nc2;
- gnutls_datum_t *ip = &(((test_vars_t*)*glob_state)->ip);
+ gnutls_x509_name_constraints_t nc = ((test_vars_t *) * glob_state)->nc;
+ gnutls_x509_name_constraints_t nc2 =
+ ((test_vars_t *) * glob_state)->nc2;
+ gnutls_datum_t *ip = &(((test_vars_t *) * glob_state)->ip);
parse_cidr("203.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("203.0.113.0/26", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc, nc2);
check_for_error(ret);
- parse_cidr("203.0.113.2/32", ip); // A
- ip->size = 4; // strip network mask
+ parse_cidr("203.0.113.2/32", ip); // A
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_ACCEPTED, ip);
- parse_cidr("203.0.113.250/32", ip); // B
- ip->size = 4; // strip network mask
+ parse_cidr("203.0.113.250/32", ip); // B
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("203.0.114.0/32", ip); // C
- ip->size = 4; // strip network mask
+ parse_cidr("203.0.114.0/32", ip); // C
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
}
@@ -304,35 +338,41 @@ static void check_empty_intersection(void **glob_state)
{
/* 5: empty intersection
* --P:127.0.113.0/24--
- * --P:255.0.113.0/24--
- * A B C
+ * --P:255.0.113.0/24--
+ * A B C
*/
int ret;
- gnutls_x509_name_constraints_t nc = ((test_vars_t*)*glob_state)->nc;
- gnutls_x509_name_constraints_t nc2 = ((test_vars_t*)*glob_state)->nc2;
- gnutls_datum_t *ip = &(((test_vars_t*)*glob_state)->ip);
+ gnutls_x509_name_constraints_t nc = ((test_vars_t *) * glob_state)->nc;
+ gnutls_x509_name_constraints_t nc2 =
+ ((test_vars_t *) * glob_state)->nc2;
+ gnutls_datum_t *ip = &(((test_vars_t *) * glob_state)->ip);
parse_cidr("127.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("255.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc, nc2);
check_for_error(ret);
- parse_cidr("127.0.113.2/32", ip); // A
- ip->size = 4; // strip network mask
+ parse_cidr("127.0.113.2/32", ip); // A
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("255.0.0.2/32", ip); // B
- ip->size = 4; // strip network mask
+ parse_cidr("255.0.0.2/32", ip); // B
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("255.0.113.2/32", ip); // C
- ip->size = 4; // strip network mask
+ parse_cidr("255.0.113.2/32", ip); // C
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
}
@@ -341,43 +381,52 @@ static void check_mediocre_intersection(void **glob_state)
{
/* 6: mediocre intersection
* --------P:127.0.113.0/24--------
- * --P:127.0.113.0/26-- --P:255.0.113.0/24--
- * A B C D
+ * --P:127.0.113.0/26-- --P:255.0.113.0/24--
+ * A B C D
*/
int ret;
- gnutls_x509_name_constraints_t nc = ((test_vars_t*)*glob_state)->nc;
- gnutls_x509_name_constraints_t nc2 = ((test_vars_t*)*glob_state)->nc2;
- gnutls_datum_t *ip = &(((test_vars_t*)*glob_state)->ip);
+ gnutls_x509_name_constraints_t nc = ((test_vars_t *) * glob_state)->nc;
+ gnutls_x509_name_constraints_t nc2 =
+ ((test_vars_t *) * glob_state)->nc2;
+ gnutls_datum_t *ip = &(((test_vars_t *) * glob_state)->ip);
parse_cidr("127.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("127.0.113.0/26", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("255.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc, nc2);
check_for_error(ret);
- parse_cidr("127.0.113.2/32", ip); // A
- ip->size = 4; // strip network mask
+ parse_cidr("127.0.113.2/32", ip); // A
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_ACCEPTED, ip);
- parse_cidr("127.0.113.250/32", ip); // B
- ip->size = 4; // strip network mask
+ parse_cidr("127.0.113.250/32", ip); // B
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("255.0.0.2/32", ip); // C
- ip->size = 4; // strip network mask
+ parse_cidr("255.0.0.2/32", ip); // C
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("255.0.113.2/32", ip); // D
- ip->size = 4; // strip network mask
+ parse_cidr("255.0.113.2/32", ip); // D
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
}
@@ -387,68 +436,82 @@ static void check_difficult_intersection(void **glob_state)
/* 7: difficult intersection
* --------P:0.0.0.0/3--------------- --P:88.0.0.0/5--
* --P:0.0.0.0/5-- --P:16.0.0.0/5-- ----P:64.0.0.0/3----
- * A B C D E F G H
+ * A B C D E F G H
*/
int ret;
- gnutls_x509_name_constraints_t nc = ((test_vars_t*)*glob_state)->nc;
- gnutls_x509_name_constraints_t nc2 = ((test_vars_t*)*glob_state)->nc2;
- gnutls_datum_t *ip = &(((test_vars_t*)*glob_state)->ip);
+ gnutls_x509_name_constraints_t nc = ((test_vars_t *) * glob_state)->nc;
+ gnutls_x509_name_constraints_t nc2 =
+ ((test_vars_t *) * glob_state)->nc2;
+ gnutls_datum_t *ip = &(((test_vars_t *) * glob_state)->ip);
parse_cidr("0.0.0.0/3", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("88.0.0.0/5", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("0.0.0.0/5", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("16.0.0.0/5", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("64.0.0.0/3", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc, nc2);
check_for_error(ret);
- parse_cidr("0.0.113.2/32", ip); // A
- ip->size = 4; // strip network mask
+ parse_cidr("0.0.113.2/32", ip); // A
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_ACCEPTED, ip);
- parse_cidr("15.255.255.255/32", ip); // B
- ip->size = 4; // strip network mask
+ parse_cidr("15.255.255.255/32", ip); // B
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("16.0.0.0/32", ip); // C
- ip->size = 4; // strip network mask
+ parse_cidr("16.0.0.0/32", ip); // C
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_ACCEPTED, ip);
- parse_cidr("31.12.25.2/32", ip); // D
- ip->size = 4; // strip network mask
+ parse_cidr("31.12.25.2/32", ip); // D
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("63.255.255.255/32", ip); // E
- ip->size = 4; // strip network mask
+ parse_cidr("63.255.255.255/32", ip); // E
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("64.0.0.0/32", ip); // F
- ip->size = 4; // strip network mask
+ parse_cidr("64.0.0.0/32", ip); // F
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("89.125.7.187/32", ip); // G
- ip->size = 4; // strip network mask
+ parse_cidr("89.125.7.187/32", ip); // G
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_ACCEPTED, ip);
- parse_cidr("96.0.0.0/32", ip); // H
- ip->size = 4; // strip network mask
+ parse_cidr("96.0.0.0/32", ip); // H
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
}
@@ -458,57 +521,65 @@ static void check_ipv6_intersection(void **glob_state)
/* 8: IPv6 intersection
* --------P:affb::/16----- --P:affd:0000::/20--
* --P:affb:aa00::/24--
- * A B C D E F G
+ * A B C D E F G
*/
int ret;
- gnutls_x509_name_constraints_t nc = ((test_vars_t*)*glob_state)->nc;
- gnutls_x509_name_constraints_t nc2 = ((test_vars_t*)*glob_state)->nc2;
- gnutls_datum_t *ip = &(((test_vars_t*)*glob_state)->ip);
+ gnutls_x509_name_constraints_t nc = ((test_vars_t *) * glob_state)->nc;
+ gnutls_x509_name_constraints_t nc2 =
+ ((test_vars_t *) * glob_state)->nc2;
+ gnutls_datum_t *ip = &(((test_vars_t *) * glob_state)->ip);
parse_cidr("affb::/16", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("affd:0000::/20", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("affb:aa00::/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc, nc2);
check_for_error(ret);
- parse_cidr("affa:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128", ip); // A
- ip->size = 16; // strip network mask
+ parse_cidr("affa:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128", ip); // A
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("affb:a500::/128", ip); // B
- ip->size = 16; // strip network mask
+ parse_cidr("affb:a500::/128", ip); // B
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("affb:aa00::/128", ip); // C
- ip->size = 16; // strip network mask
+ parse_cidr("affb:aa00::/128", ip); // C
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_ACCEPTED, ip);
- parse_cidr("affb:ab01::/128", ip); // D
- ip->size = 16; // strip network mask
+ parse_cidr("affb:ab01::/128", ip); // D
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("affc::/128", ip); // E
- ip->size = 16; // strip network mask
+ parse_cidr("affc::/128", ip); // E
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("affd:0fff::/128", ip); // F
- ip->size = 16; // strip network mask
+ parse_cidr("affd:0fff::/128", ip); // F
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("affd:1000::/128", ip); // G
- ip->size = 16; // strip network mask
+ parse_cidr("affd:1000::/128", ip); // G
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
}
@@ -518,51 +589,59 @@ static void check_empty_ipv4_intersection_ipv6_remains(void **glob_state)
/* 9: IPv4 and IPv6 in a common test case
* IPv4 with empty intersection, but IPv6 gets restricted as well
* --P:127.0.113.0/24--
- * --P:255.0.113.0/24--
- * A B C
+ * --P:255.0.113.0/24--
+ * A B C
*
* --P:bfa6::/16--
- * D E
+ * D E
*/
int ret;
- gnutls_x509_name_constraints_t nc = ((test_vars_t*)*glob_state)->nc;
- gnutls_x509_name_constraints_t nc2 = ((test_vars_t*)*glob_state)->nc2;
- gnutls_datum_t *ip = &(((test_vars_t*)*glob_state)->ip);
+ gnutls_x509_name_constraints_t nc = ((test_vars_t *) * glob_state)->nc;
+ gnutls_x509_name_constraints_t nc2 =
+ ((test_vars_t *) * glob_state)->nc2;
+ gnutls_datum_t *ip = &(((test_vars_t *) * glob_state)->ip);
parse_cidr("127.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("bfa6::/16", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("255.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc, nc2);
check_for_error(ret);
- parse_cidr("127.0.113.2/32", ip); // A
- ip->size = 4; // strip network mask
+ parse_cidr("127.0.113.2/32", ip); // A
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("255.0.0.2/32", ip); // B
- ip->size = 4; // strip network mask
+ parse_cidr("255.0.0.2/32", ip); // B
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("255.0.113.2/32", ip); // C
- ip->size = 4; // strip network mask
+ parse_cidr("255.0.113.2/32", ip); // C
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("bfa6:ab01::/128", ip); // D
- ip->size = 16; // strip network mask
+ parse_cidr("bfa6:ab01::/128", ip); // D
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("bfa7::/128", ip); // E
- ip->size = 16; // strip network mask
+ parse_cidr("bfa7::/128", ip); // E
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
}
@@ -572,60 +651,71 @@ static void check_empty_ipv4v6_intersections(void **glob_state)
/* 10: IPv4 and IPv6 in a common test case
* both IPv4 and IPv6 have empty intersection
* --P:127.0.113.0/24--
- * --P:255.0.113.0/24--
- * A B C
+ * --P:255.0.113.0/24--
+ * A B C
*
* --P:bfa6::/16--
- * --P:cfa6::/16--
- * D E F
+ * --P:cfa6::/16--
+ * D E F
*/
int ret;
- gnutls_x509_name_constraints_t nc = ((test_vars_t*)*glob_state)->nc;
- gnutls_x509_name_constraints_t nc2 = ((test_vars_t*)*glob_state)->nc2;
- gnutls_datum_t *ip = &(((test_vars_t*)*glob_state)->ip);
+ gnutls_x509_name_constraints_t nc = ((test_vars_t *) * glob_state)->nc;
+ gnutls_x509_name_constraints_t nc2 =
+ ((test_vars_t *) * glob_state)->nc2;
+ gnutls_datum_t *ip = &(((test_vars_t *) * glob_state)->ip);
parse_cidr("127.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("bfa6::/16", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("255.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("cfa6::/16", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc, nc2);
check_for_error(ret);
- parse_cidr("127.0.113.2/32", ip); // A
- ip->size = 4; // strip network mask
+ parse_cidr("127.0.113.2/32", ip); // A
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("255.0.0.2/32", ip); // B
- ip->size = 4; // strip network mask
+ parse_cidr("255.0.0.2/32", ip); // B
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("255.0.113.2/32", ip); // C
- ip->size = 4; // strip network mask
+ parse_cidr("255.0.113.2/32", ip); // C
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("bfa6:ab01::/128", ip); // D
- ip->size = 16; // strip network mask
+ parse_cidr("bfa6:ab01::/128", ip); // D
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("bfa7::/128", ip); // E
- ip->size = 16; // strip network mask
+ parse_cidr("bfa7::/128", ip); // E
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("cfa7:00cc::/128", ip); // F
- ip->size = 16; // strip network mask
+ parse_cidr("cfa7:00cc::/128", ip); // F
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
}
@@ -635,48 +725,55 @@ static void check_ipv4v6_single_constraint_each(void **glob_state)
/* 11: 1 IPv4 range and 1 IPv6 range in a common test case
* (no overlap)
* --P:127.0.113.0/24--
- * A B
+ * A B
*
* --P:bfa6::/16--
- * C D
+ * C D
*/
int ret;
- gnutls_x509_name_constraints_t nc = ((test_vars_t*)*glob_state)->nc;
- gnutls_x509_name_constraints_t nc2 = ((test_vars_t*)*glob_state)->nc2;
- gnutls_datum_t *ip = &(((test_vars_t*)*glob_state)->ip);
+ gnutls_x509_name_constraints_t nc = ((test_vars_t *) * glob_state)->nc;
+ gnutls_x509_name_constraints_t nc2 =
+ ((test_vars_t *) * glob_state)->nc2;
+ gnutls_datum_t *ip = &(((test_vars_t *) * glob_state)->ip);
parse_cidr("127.0.113.0/24", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
parse_cidr("bfa6::/16", ip);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_IPADDRESS, ip);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2,
+ GNUTLS_SAN_IPADDRESS,
+ ip);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc, nc2);
check_for_error(ret);
- parse_cidr("127.0.113.2/32", ip); // A
- ip->size = 4; // strip network mask
+ parse_cidr("127.0.113.2/32", ip); // A
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("255.0.0.2/32", ip); // B
- ip->size = 4; // strip network mask
+ parse_cidr("255.0.0.2/32", ip); // B
+ ip->size = 4; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("bfa6:ab01::/128", ip); // C
- ip->size = 16; // strip network mask
+ parse_cidr("bfa6:ab01::/128", ip); // C
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
- parse_cidr("bfa7::/128", ip); // D
- ip->size = 16; // strip network mask
+ parse_cidr("bfa7::/128", ip); // D
+ ip->size = 16; // strip network mask
ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_IPADDRESS, ip);
check_test_result(ret, IP_REJECTED, ip);
}
-static int setup(void **state) {
- test_vars_t* test_vars = gnutls_malloc(sizeof(test_vars_t));
+static int setup(void **state)
+{
+ test_vars_t *test_vars = gnutls_malloc(sizeof(test_vars_t));
if (test_vars == NULL)
return -1;
test_vars->ip.size = 0;
@@ -692,8 +789,9 @@ static int setup(void **state) {
return 0;
}
-static int teardown(void **state) {
- test_vars_t* test_vars = *state;
+static int teardown(void **state)
+{
+ test_vars_t *test_vars = *state;
gnutls_free(test_vars->ip.data);
gnutls_x509_name_constraints_deinit(test_vars->nc);
gnutls_x509_name_constraints_deinit(test_vars->nc2);
@@ -704,16 +802,27 @@ static int teardown(void **state) {
int main(int argc, char **argv)
{
const struct CMUnitTest tests[] = {
- cmocka_unit_test_setup_teardown(check_generation_reading_basic_checking, setup, teardown),
- cmocka_unit_test_setup_teardown(check_universal_constraint_checking, setup, teardown),
- cmocka_unit_test_setup_teardown(check_simple_intersection, setup, teardown),
- cmocka_unit_test_setup_teardown(check_empty_intersection, setup, teardown),
- cmocka_unit_test_setup_teardown(check_mediocre_intersection, setup, teardown),
- cmocka_unit_test_setup_teardown(check_difficult_intersection, setup, teardown),
- cmocka_unit_test_setup_teardown(check_ipv6_intersection, setup, teardown),
- cmocka_unit_test_setup_teardown(check_empty_ipv4_intersection_ipv6_remains, setup, teardown),
- cmocka_unit_test_setup_teardown(check_empty_ipv4v6_intersections, setup, teardown),
- cmocka_unit_test_setup_teardown(check_ipv4v6_single_constraint_each, setup, teardown)
+ cmocka_unit_test_setup_teardown
+ (check_generation_reading_basic_checking, setup, teardown),
+ cmocka_unit_test_setup_teardown
+ (check_universal_constraint_checking, setup, teardown),
+ cmocka_unit_test_setup_teardown(check_simple_intersection,
+ setup, teardown),
+ cmocka_unit_test_setup_teardown(check_empty_intersection, setup,
+ teardown),
+ cmocka_unit_test_setup_teardown(check_mediocre_intersection,
+ setup, teardown),
+ cmocka_unit_test_setup_teardown(check_difficult_intersection,
+ setup, teardown),
+ cmocka_unit_test_setup_teardown(check_ipv6_intersection, setup,
+ teardown),
+ cmocka_unit_test_setup_teardown
+ (check_empty_ipv4_intersection_ipv6_remains, setup,
+ teardown),
+ cmocka_unit_test_setup_teardown
+ (check_empty_ipv4v6_intersections, setup, teardown),
+ cmocka_unit_test_setup_teardown
+ (check_ipv4v6_single_constraint_each, setup, teardown)
};
cmocka_run_group_tests(tests, NULL, NULL);
}
diff --git a/tests/name-constraints-merge.c b/tests/name-constraints-merge.c
index aba180b669..0321e166ec 100644
--- a/tests/name-constraints-merge.c
+++ b/tests/name-constraints-merge.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -38,7 +38,8 @@
/* Test for name constraints PKIX extension.
*/
-static void check_for_error(int ret) {
+static void check_for_error(int ret)
+{
if (ret != GNUTLS_E_SUCCESS)
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
}
@@ -47,21 +48,21 @@ static void check_for_error(int ret) {
#define NAME_REJECTED 0
static void check_test_result(int suite, int ret, int expected_outcome,
- gnutls_datum_t *tested_data) {
+ gnutls_datum_t * tested_data)
+{
if (expected_outcome == NAME_ACCEPTED ? ret == 0 : ret != 0) {
if (expected_outcome == NAME_ACCEPTED) {
- fail("Checking \"%.*s\" should have succeeded (suite %d).\n",
- tested_data->size, tested_data->data, suite);
+ fail("Checking \"%.*s\" should have succeeded (suite %d).\n", tested_data->size, tested_data->data, suite);
} else {
- fail("Checking \"%.*s\" should have failed (suite %d).\n",
- tested_data->size, tested_data->data, suite);
+ fail("Checking \"%.*s\" should have failed (suite %d).\n", tested_data->size, tested_data->data, suite);
}
}
}
-static void set_name(const char *name, gnutls_datum_t *datum) {
- datum->data = (unsigned char*) name;
- datum->size = strlen((char*) name);
+static void set_name(const char *name, gnutls_datum_t * datum)
+{
+ datum->data = (unsigned char *)name;
+ datum->size = strlen((char *)name);
}
static void tls_log_func(int level, const char *str)
@@ -95,23 +96,34 @@ void doit(void)
check_for_error(ret);
set_name("org", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
set_name("ccc.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
set_name("ccc.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_RFC822NAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc1,
+ GNUTLS_SAN_RFC822NAME,
+ &name);
check_for_error(ret);
set_name("org", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
set_name("aaa.bbb.ccc.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc1, nc2);
@@ -119,52 +131,66 @@ void doit(void)
/* unrelated */
set_name("xxx.example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("example.org", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_ACCEPTED, &name);
set_name("com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("xxx.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("ccc.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
/* check intersection of permitted */
set_name("xxx.aaa.bbb.ccc.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_ACCEPTED, &name);
set_name("aaa.bbb.ccc.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_ACCEPTED, &name);
set_name("xxx.bbb.ccc.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("xxx.ccc.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("ccc.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("ccc.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_RFC822NAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_RFC822NAME,
+ &name);
check_test_result(suite, ret, NAME_ACCEPTED, &name);
set_name("xxx.ccc.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_RFC822NAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_RFC822NAME,
+ &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
gnutls_x509_name_constraints_deinit(nc1);
@@ -183,34 +209,43 @@ void doit(void)
check_for_error(ret);
set_name("example.com", &name);
- ret = gnutls_x509_name_constraints_add_excluded(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc1, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
set_name("example.net", &name);
- ret = gnutls_x509_name_constraints_add_excluded(nc2, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc2, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc1, nc2);
check_for_error(ret);
set_name("xxx.example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("xxx.example.net", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("example.net", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("example.org", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_ACCEPTED, &name);
gnutls_x509_name_constraints_deinit(nc1);
@@ -230,34 +265,43 @@ void doit(void)
check_for_error(ret);
set_name("one.example.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
set_name("two.example.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc1, nc2);
check_for_error(ret);
set_name("one.example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("two.example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("three.example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("org", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
gnutls_x509_name_constraints_deinit(nc1);
@@ -278,38 +322,49 @@ void doit(void)
check_for_error(ret);
set_name("foo.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
set_name("bar.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
set_name("sub.foo.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc1, nc2);
check_for_error(ret);
set_name("foo.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("bar.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("sub.foo.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_ACCEPTED, &name);
set_name("anothersub.foo.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
gnutls_x509_name_constraints_deinit(nc1);
@@ -331,38 +386,50 @@ void doit(void)
check_for_error(ret);
set_name("three.example.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
set_name("redhat.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc1, GNUTLS_SAN_RFC822NAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc1,
+ GNUTLS_SAN_RFC822NAME,
+ &name);
check_for_error(ret);
set_name("four.example.com", &name);
- ret = gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc2, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
ret = _gnutls_x509_name_constraints_merge(nc1, nc2);
check_for_error(ret);
set_name("three.example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("four.example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("five.example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
set_name("org", &name);
- ret = gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc1, GNUTLS_SAN_DNSNAME, &name);
check_test_result(suite, ret, NAME_REJECTED, &name);
gnutls_x509_name_constraints_deinit(nc1);
diff --git a/tests/name-constraints.c b/tests/name-constraints.c
index d960211aca..c1c0706da8 100644
--- a/tests/name-constraints.c
+++ b/tests/name-constraints.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -38,7 +38,8 @@
/* Test for name constraints PKIX extension.
*/
-static void check_for_error(int ret) {
+static void check_for_error(int ret)
+{
if (ret != GNUTLS_E_SUCCESS)
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
}
@@ -46,19 +47,24 @@ static void check_for_error(int ret) {
#define NAME_ACCEPTED 1
#define NAME_REJECTED 0
-static void check_test_result(int ret, int expected_outcome, gnutls_datum_t *tested_data) {
+static void check_test_result(int ret, int expected_outcome,
+ gnutls_datum_t * tested_data)
+{
if (expected_outcome == NAME_ACCEPTED ? ret == 0 : ret != 0) {
if (expected_outcome == NAME_ACCEPTED) {
- fail("Checking \"%.*s\" should have succeeded.\n", tested_data->size, tested_data->data);
+ fail("Checking \"%.*s\" should have succeeded.\n",
+ tested_data->size, tested_data->data);
} else {
- fail("Checking \"%.*s\" should have failed.\n", tested_data->size, tested_data->data);
+ fail("Checking \"%.*s\" should have failed.\n",
+ tested_data->size, tested_data->data);
}
}
}
-static void set_name(const char *name, gnutls_datum_t *datum) {
- datum->data = (unsigned char*) name;
- datum->size = strlen((char*) name);
+static void set_name(const char *name, gnutls_datum_t * datum)
+{
+ datum->data = (unsigned char *)name;
+ datum->size = strlen((char *)name);
}
static void tls_log_func(int level, const char *str)
@@ -90,20 +96,25 @@ static unsigned char cert_pem[] =
"TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7\n"
"dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys\n"
"Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI\n"
- "l7WdmplNsDz4SgCbZN2fOUvRJ9e4\n"
- "-----END CERTIFICATE-----\n";
+ "l7WdmplNsDz4SgCbZN2fOUvRJ9e4\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t cert = { cert_pem, sizeof(cert_pem) };
-const gnutls_datum_t name1 = { (void*)"com", 3 };
-const gnutls_datum_t name2 = { (void*)"example.com", sizeof("example.com")-1 };
-const gnutls_datum_t name3 = { (void*)"another.example.com", sizeof("another.example.com")-1 };
-const gnutls_datum_t name4 = { (void*)".gr", 3 };
-
-const gnutls_datum_t mail1 = { (void*)"example.com", sizeof("example.com")-1 };
-const gnutls_datum_t mail2 = { (void*)".example.net", sizeof(".example.net")-1 };
-const gnutls_datum_t mail3 = { (void*)"nmav@redhat.com", sizeof("nmav@redhat.com")-1 };
-const gnutls_datum_t mail4 = { (void*)"koko.example.net", sizeof("koko.example.net")-1 };
+const gnutls_datum_t name1 = { (void *)"com", 3 };
+const gnutls_datum_t name2 =
+ { (void *)"example.com", sizeof("example.com") - 1 };
+const gnutls_datum_t name3 =
+ { (void *)"another.example.com", sizeof("another.example.com") - 1 };
+const gnutls_datum_t name4 = { (void *)".gr", 3 };
+
+const gnutls_datum_t mail1 =
+ { (void *)"example.com", sizeof("example.com") - 1 };
+const gnutls_datum_t mail2 =
+ { (void *)".example.net", sizeof(".example.net") - 1 };
+const gnutls_datum_t mail3 =
+ { (void *)"nmav@redhat.com", sizeof("nmav@redhat.com") - 1 };
+const gnutls_datum_t mail4 =
+ { (void *)"koko.example.net", sizeof("koko.example.net") - 1 };
void doit(void)
{
@@ -138,17 +149,20 @@ void doit(void)
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_permitted(nc, i++, &type, &name);
+ ret =
+ gnutls_x509_name_constraints_get_permitted(nc, i++, &type,
+ &name);
if (ret >= 0 && i == 2) {
if (name.size != 3 || memcmp(name.data, ".eu", 3) != 0) {
fail("error reading 2nd constraint\n");
}
}
- } while(ret == 0);
+ } while (ret == 0);
- if (i-1 != 8) {
- fail("Could not read all constraints; read %d, expected %d\n", i-1, 8);
+ if (i - 1 != 8) {
+ fail("Could not read all constraints; read %d, expected %d\n",
+ i - 1, 8);
}
gnutls_x509_name_constraints_deinit(nc);
@@ -169,39 +183,60 @@ void doit(void)
check_for_error(ret);
permitted++;
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_DNSNAME, &name1);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_DNSNAME,
+ &name1);
check_for_error(ret);
excluded++;
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_DNSNAME, &name2);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_DNSNAME,
+ &name2);
check_for_error(ret);
excluded++;
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_DNSNAME, &name3);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_DNSNAME,
+ &name3);
check_for_error(ret);
permitted++;
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_DNSNAME, &name4);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_DNSNAME,
+ &name4);
check_for_error(ret);
excluded++;
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_URI, &name3);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_URI,
+ &name3);
check_for_error(ret);
permitted++;
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_RFC822NAME, &mail1);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc,
+ GNUTLS_SAN_RFC822NAME,
+ &mail1);
check_for_error(ret);
permitted++;
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_RFC822NAME, &mail2);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc,
+ GNUTLS_SAN_RFC822NAME,
+ &mail2);
check_for_error(ret);
permitted++;
- ret = gnutls_x509_name_constraints_add_permitted(nc, GNUTLS_SAN_RFC822NAME, &mail3);
+ ret =
+ gnutls_x509_name_constraints_add_permitted(nc,
+ GNUTLS_SAN_RFC822NAME,
+ &mail3);
check_for_error(ret);
excluded++;
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_RFC822NAME, &mail4);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_RFC822NAME,
+ &mail4);
check_for_error(ret);
ret = gnutls_x509_crt_set_name_constraints(crt, nc, 1);
@@ -211,37 +246,46 @@ void doit(void)
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_permitted(nc, i++, &type, &name);
+ ret =
+ gnutls_x509_name_constraints_get_permitted(nc, i++, &type,
+ &name);
if (ret >= 0 && i == 1) {
- if (name.size != name1.size || memcmp(name.data, name1.data, name1.size) != 0) {
- fail("%d: error reading 1st constraint\n", __LINE__);
+ if (name.size != name1.size
+ || memcmp(name.data, name1.data, name1.size) != 0) {
+ fail("%d: error reading 1st constraint\n",
+ __LINE__);
}
}
- } while(ret == 0);
+ } while (ret == 0);
- if (i-1 != permitted) {
- fail("Could not read all constraints; read %d, expected %d\n", i-1, permitted);
+ if (i - 1 != permitted) {
+ fail("Could not read all constraints; read %d, expected %d\n",
+ i - 1, permitted);
}
i = 0;
do {
- ret = gnutls_x509_name_constraints_get_excluded(nc, i++, &type, &name);
+ ret =
+ gnutls_x509_name_constraints_get_excluded(nc, i++, &type,
+ &name);
if (ret >= 0 && i == 1) {
- if (name.size != name2.size || memcmp(name.data, name2.data, name2.size) != 0) {
+ if (name.size != name2.size
+ || memcmp(name.data, name2.data, name2.size) != 0) {
fail("%d: error reading 1st excluded constraint\n", __LINE__);
}
}
if (ret >= 0 && i == 2) {
- if (name.size != name3.size || memcmp(name.data, name3.data, name3.size) != 0) {
+ if (name.size != name3.size
+ || memcmp(name.data, name3.data, name3.size) != 0) {
fail("%d: error reading 1st excluded constraint\n", __LINE__);
}
}
- } while(ret == 0);
+ } while (ret == 0);
- if (i-1 != excluded) {
- fail("Could not read all excluded constraints; read %d, expected %d\n", i-1, excluded);
+ if (i - 1 != excluded) {
+ fail("Could not read all excluded constraints; read %d, expected %d\n", i - 1, excluded);
}
/* 3: test the name constraints check function */
@@ -254,27 +298,39 @@ void doit(void)
/* Test e-mails */
set_name("nmav@redhat.com", &name);
- ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME,
+ &name);
check_test_result(ret, NAME_ACCEPTED, &name);
set_name("nmav@radhat.com", &name);
- ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME,
+ &name);
check_test_result(ret, NAME_REJECTED, &name);
set_name("nmav@example.com", &name);
- ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME,
+ &name);
check_test_result(ret, NAME_ACCEPTED, &name);
set_name("nmav@test.example.net", &name);
- ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME,
+ &name);
check_test_result(ret, NAME_ACCEPTED, &name);
set_name("nmav@example.net", &name);
- ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME,
+ &name);
check_test_result(ret, NAME_REJECTED, &name);
set_name("nmav@koko.example.net", &name);
- ret = gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME, &name);
+ ret =
+ gnutls_x509_name_constraints_check(nc, GNUTLS_SAN_RFC822NAME,
+ &name);
check_test_result(ret, NAME_REJECTED, &name);
/* This name constraints structure does have an excluded URI so
@@ -314,7 +370,9 @@ void doit(void)
check_for_error(ret);
set_name("", &name);
- ret = gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_DNSNAME, &name);
+ ret =
+ gnutls_x509_name_constraints_add_excluded(nc, GNUTLS_SAN_DNSNAME,
+ &name);
check_for_error(ret);
set_name("example.net", &name);
diff --git a/tests/no-extensions.c b/tests/no-extensions.c
index 3bd9d06804..87986af2e2 100644
--- a/tests/no-extensions.c
+++ b/tests/no-extensions.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -43,9 +43,10 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-static int server_handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming,
- const gnutls_datum_t *msg)
+static int server_handshake_callback(gnutls_session_t session,
+ unsigned int htype, unsigned post,
+ unsigned int incoming,
+ const gnutls_datum_t * msg)
{
unsigned pos;
gnutls_datum_t mmsg;
@@ -57,13 +58,14 @@ static int server_handshake_callback(gnutls_session_t session, unsigned int htyp
assert(msg->size >= HANDSHAKE_SESSION_ID_POS);
pos = HANDSHAKE_SESSION_ID_POS;
SKIP8(pos, msg->size);
- pos += 3; /* ciphersuite + compression */
+ pos += 3; /* ciphersuite + compression */
mmsg.data = &msg->data[pos];
mmsg.size = msg->size - pos;
if (pos != msg->size) {
- if (pos < msg->size-1) {
- fprintf(stderr, "additional bytes: %.2x%.2x\n", mmsg.data[0], mmsg.data[1]);
+ if (pos < msg->size - 1) {
+ fprintf(stderr, "additional bytes: %.2x%.2x\n",
+ mmsg.data[0], mmsg.data[1]);
}
fail("the server hello contains additional bytes\n");
}
@@ -72,9 +74,10 @@ static int server_handshake_callback(gnutls_session_t session, unsigned int htyp
return 0;
}
-static int client_handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming,
- const gnutls_datum_t *msg)
+static int client_handshake_callback(gnutls_session_t session,
+ unsigned int htype, unsigned post,
+ unsigned int incoming,
+ const gnutls_datum_t * msg)
{
unsigned pos;
gnutls_datum_t mmsg;
@@ -93,8 +96,9 @@ static int client_handshake_callback(gnutls_session_t session, unsigned int htyp
mmsg.size = msg->size - pos;
if (pos != msg->size) {
- if (pos < msg->size-1) {
- fprintf(stderr, "additional bytes: %.2x%.2x\n", mmsg.data[0], mmsg.data[1]);
+ if (pos < msg->size - 1) {
+ fprintf(stderr, "additional bytes: %.2x%.2x\n",
+ mmsg.data[0], mmsg.data[1]);
}
fail("the client hello contains additional bytes\n");
}
@@ -131,9 +135,8 @@ void start(const char *prio, gnutls_protocol_t exp_version)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server, prio, NULL)>=0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -148,7 +151,9 @@ void start(const char *prio, gnutls_protocol_t exp_version)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -157,7 +162,7 @@ void start(const char *prio, gnutls_protocol_t exp_version)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -186,8 +191,8 @@ void start(const char *prio, gnutls_protocol_t exp_version)
assert(gnutls_protocol_get_version(server) == exp_version);
- assert(gnutls_certificate_type_get(server)==GNUTLS_CRT_X509);
- assert(gnutls_certificate_type_get(client)==GNUTLS_CRT_X509);
+ assert(gnutls_certificate_type_get(server) == GNUTLS_CRT_X509);
+ assert(gnutls_certificate_type_get(client) == GNUTLS_CRT_X509);
gnutls_bye(client, GNUTLS_SHUT_RDWR);
gnutls_bye(server, GNUTLS_SHUT_RDWR);
@@ -208,5 +213,6 @@ void doit(void)
start("NORMAL:-VERS-ALL:+VERS-TLS1.0:%NO_EXTENSIONS", GNUTLS_TLS1_0);
start("NORMAL:-VERS-ALL:+VERS-TLS1.1:%NO_EXTENSIONS", GNUTLS_TLS1_1);
start("NORMAL:-VERS-ALL:+VERS-TLS1.2:%NO_EXTENSIONS", GNUTLS_TLS1_2);
- start("NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:%NO_EXTENSIONS", GNUTLS_TLS1_2);
+ start("NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:%NO_EXTENSIONS",
+ GNUTLS_TLS1_2);
}
diff --git a/tests/no-signal.c b/tests/no-signal.c
index 1097761835..c1ea0e18dc 100644
--- a/tests/no-signal.c
+++ b/tests/no-signal.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -53,7 +53,7 @@ int main(void)
# else
-# include "utils.h"
+# include "utils.h"
static
void sigpipe(int sig)
@@ -61,7 +61,7 @@ void sigpipe(int sig)
_exit(2);
}
-#define BUF_SIZE 64
+# define BUF_SIZE 64
static void client(int fd)
{
@@ -101,7 +101,8 @@ static void client(int fd)
do {
ret = gnutls_handshake(session);
}
- while (ret < 0 && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
+ while (ret < 0
+ && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
ret = gnutls_record_recv(session, buf, sizeof(buf));
if (ret < 0 || ret != sizeof(buf)) {
@@ -123,14 +124,14 @@ static void client(int fd)
gnutls_global_deinit();
if (ret < 0) {
- fail("client: Handshake failed with unexpected reason: %s\n", gnutls_strerror(ret));
+ fail("client: Handshake failed with unexpected reason: %s\n",
+ gnutls_strerror(ret));
} else {
if (debug)
success("client: Handshake was completed\n");
}
}
-
/* These are global */
pid_t child;
@@ -151,7 +152,7 @@ static void server(int fd)
gnutls_anon_allocate_server_credentials(&anoncred);
- gnutls_init(&session, GNUTLS_SERVER|GNUTLS_NO_SIGNAL);
+ gnutls_init(&session, GNUTLS_SERVER | GNUTLS_NO_SIGNAL);
/* avoid calling all the priority functions, since the defaults
* are adequate.
@@ -167,7 +168,8 @@ static void server(int fd)
do {
ret = gnutls_handshake(session);
}
- while (ret < 0 && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
+ while (ret < 0
+ && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
if (ret < 0) {
fail("error in handshake: %s\n", gnutls_strerror(ret));
@@ -175,7 +177,7 @@ static void server(int fd)
}
memset(buf, 0, sizeof(buf));
- for (i=0;i<5;i++) {
+ for (i = 0; i < 5; i++) {
sleep(3);
ret = gnutls_record_send(session, buf, sizeof(buf));
if (ret < 0)
@@ -239,5 +241,5 @@ void doit(void)
start();
}
-# endif /* MSG_NOSIGNAL */
+# endif /* MSG_NOSIGNAL */
#endif /* _WIN32 */
diff --git a/tests/no-status-request.c b/tests/no-status-request.c
index 0fa47ba587..8f1933cc60 100644
--- a/tests/no-status-request.c
+++ b/tests/no-status-request.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,28 +35,28 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+
+# include "cert-common.h"
+# include "utils.h"
/* This program tests that the client does not send the
* status request extension if GNUTLS_NO_STATUS_REQUEST is set
*/
-#define RESP "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
-#define RESP_SIZE (sizeof(RESP) - 1)
-#define MAX_BUF 1024
+# define RESP "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
+# define RESP_SIZE (sizeof(RESP) - 1)
+# define MAX_BUF 1024
static void server_log_func(int level, const char *str)
{
@@ -70,12 +70,13 @@ static void client_log_func(int level, const char *str)
static int handshake_callback(gnutls_session_t session, unsigned int htype,
unsigned post, unsigned int incoming,
- const gnutls_datum_t *msg)
+ const gnutls_datum_t * msg)
{
fail("received status request\n");
}
-static int status_func(gnutls_session_t session, void *ptr, gnutls_datum_t *resp)
+static int status_func(gnutls_session_t session, void *ptr,
+ gnutls_datum_t * resp)
{
resp->data = gnutls_malloc(RESP_SIZE);
if (resp->data == NULL)
@@ -118,7 +119,9 @@ static void client(int fd, const char *prio, int flags)
else if (debug)
success("client: Handshake was completed\n");
- assert(!(gnutls_session_get_flags(session) & GNUTLS_SFLAGS_CLI_REQUESTED_OCSP));
+ assert(!
+ (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_CLI_REQUESTED_OCSP));
if (debug)
success("client: TLS version is: %s\n", gnutls_protocol_get_name
@@ -139,7 +142,7 @@ static void client(int fd, const char *prio, int flags)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
gnutls_deinit(session);
@@ -147,7 +150,6 @@ static void client(int fd, const char *prio, int flags)
gnutls_global_deinit();
}
-
static void server(int fd, const char *prio)
{
int ret;
@@ -166,9 +168,11 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
&server_key, GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_ocsp_status_request_function(x509_cred, status_func, NULL);
+ gnutls_certificate_set_ocsp_status_request_function(x509_cred,
+ status_func, NULL);
gnutls_init(&session, GNUTLS_SERVER);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
GNUTLS_HOOK_PRE, handshake_callback);
assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -180,7 +184,9 @@ static void server(int fd, const char *prio)
if (ret < 0)
goto end;
- assert(!(gnutls_session_get_flags(session) & GNUTLS_SFLAGS_CLI_REQUESTED_OCSP));
+ assert(!
+ (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_CLI_REQUESTED_OCSP));
if (debug)
success("server: Handshake was completed\n");
@@ -246,4 +252,4 @@ void doit(void)
start("NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_STATUS_REQUEST", 0);
start("NORMAL:%NO_STATUS_REQUEST", 0);
}
-#endif /* _WIN32 */
+#endif /* _WIN32 */
diff --git a/tests/nul-in-x509-names.c b/tests/nul-in-x509-names.c
index 21077a4c25..cab3d76ebe 100644
--- a/tests/nul-in-x509-names.c
+++ b/tests/nul-in-x509-names.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -58,7 +58,7 @@ static char badguy_nul_cn_data[] =
"CQ==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t badguy_nul_cn = {
- (void *) badguy_nul_cn_data, sizeof(badguy_nul_cn_data)
+ (void *)badguy_nul_cn_data, sizeof(badguy_nul_cn_data)
};
static char badguy_nul_san_data[] =
@@ -86,7 +86,7 @@ static char badguy_nul_san_data[] =
"-----END CERTIFICATE-----\n";
const gnutls_datum_t badguy_nul_san = {
- (void *) badguy_nul_san_data, sizeof(badguy_nul_san_data)
+ (void *)badguy_nul_san_data, sizeof(badguy_nul_san_data)
};
void doit(void)
@@ -106,9 +106,7 @@ void doit(void)
exit(1);
}
- ret =
- gnutls_x509_crt_import(crt, &badguy_nul_cn,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(crt, &badguy_nul_cn, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("gnutls_x509_crt_import");
exit(1);
@@ -123,9 +121,7 @@ void doit(void)
fail("gnutls_x509_crt_check_hostname BROKEN (NUL-IN-CN)");
}
- ret =
- gnutls_x509_crt_import(crt, &badguy_nul_san,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(crt, &badguy_nul_san, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("gnutls_x509_crt_import");
exit(1);
diff --git a/tests/null_retrieve_function.c b/tests/null_retrieve_function.c
index 5c4464adaf..eb156e9646 100644
--- a/tests/null_retrieve_function.c
+++ b/tests/null_retrieve_function.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,40 +36,36 @@
*/
static int cert_cb1(gnutls_session_t session,
- const gnutls_datum_t * req_ca_rdn,
- int nreqs,
- const gnutls_pk_algorithm_t * pk_algos,
- int pk_algos_length,
- gnutls_retr2_st *retr)
+ const gnutls_datum_t * req_ca_rdn,
+ int nreqs,
+ const gnutls_pk_algorithm_t * pk_algos,
+ int pk_algos_length, gnutls_retr2_st * retr)
{
return -1;
}
static int cert_cb2(gnutls_session_t session,
- const gnutls_datum_t *req_ca_rdn,
- int nreqs,
- const gnutls_pk_algorithm_t *pk_algos,
- int pk_algos_length,
- gnutls_pcert_st** pcert,
- unsigned int *pcert_length,
- gnutls_privkey_t *privkey)
+ const gnutls_datum_t * req_ca_rdn,
+ int nreqs,
+ const gnutls_pk_algorithm_t * pk_algos,
+ int pk_algos_length,
+ gnutls_pcert_st ** pcert,
+ unsigned int *pcert_length, gnutls_privkey_t * privkey)
{
return -1;
}
static int cert_cb3(gnutls_session_t session,
- const struct gnutls_cert_retr_st *info,
- gnutls_pcert_st **certs,
- unsigned int *pcert_length,
- gnutls_ocsp_data_st **ocsp,
- unsigned int *ocsp_length,
- gnutls_privkey_t *privkey,
- unsigned int *flags)
+ const struct gnutls_cert_retr_st *info,
+ gnutls_pcert_st ** certs,
+ unsigned int *pcert_length,
+ gnutls_ocsp_data_st ** ocsp,
+ unsigned int *ocsp_length,
+ gnutls_privkey_t * privkey, unsigned int *flags)
{
return -1;
}
-
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "<%d>| %s", level, str);
@@ -91,9 +87,11 @@ void doit(void)
gnutls_certificate_allocate_credentials(&x509_cred);
- ret = gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert_chain,
- &server_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert_chain,
+ &server_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in error code\n");
exit(1);
@@ -102,19 +100,25 @@ void doit(void)
gnutls_certificate_allocate_credentials(&clicred);
gnutls_certificate_set_retrieve_function(clicred, cert_cb1);
gnutls_certificate_set_retrieve_function(clicred, NULL);
- _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED, -1);
+ _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost",
+ NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED,
+ -1);
gnutls_certificate_free_credentials(clicred);
gnutls_certificate_allocate_credentials(&clicred);
gnutls_certificate_set_retrieve_function2(clicred, cert_cb2);
gnutls_certificate_set_retrieve_function2(clicred, NULL);
- _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED, -1);
+ _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost",
+ NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED,
+ -1);
gnutls_certificate_free_credentials(clicred);
gnutls_certificate_allocate_credentials(&clicred);
gnutls_certificate_set_retrieve_function3(clicred, cert_cb3);
gnutls_certificate_set_retrieve_function3(clicred, NULL);
- _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost", NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED, -1);
+ _test_cli_serv(x509_cred, clicred, "NORMAL", "NORMAL", "localhost",
+ NULL, NULL, NULL, 0, 1, GNUTLS_E_CERTIFICATE_REQUIRED,
+ -1);
gnutls_certificate_free_credentials(clicred);
gnutls_certificate_free_credentials(x509_cred);
diff --git a/tests/ocsp-common.h b/tests/ocsp-common.h
index 64662afef3..4d8ef9ab39 100644
--- a/tests/ocsp-common.h
+++ b/tests/ocsp-common.h
@@ -21,15 +21,15 @@
*/
#ifndef GNUTLS_TESTS_OCSP_COMMON_H
-#define GNUTLS_TESTS_OCSP_COMMON_H
+# define GNUTLS_TESTS_OCSP_COMMON_H
-#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wunused-variable"
-#endif
+# endif
/* Date for responses to be valid */
-#define OCSP_RESP_DATE 1508329639
+# define OCSP_RESP_DATE 1508329639
/* ocsp response with unknown status for
* server_ca3_localhost6_cert. Signed with
@@ -111,29 +111,29 @@ static const char _ocsp_ca3_localhost6_unknown[] = {
};
const char _ocsp_ca3_localhost6_unknown_pem[] =
- "-----BEGIN OCSP RESPONSE-----\n"
- "MIICOgoBAKCCAjMwggIvBgkrBgEFBQcwAQEEggIgMIICHDCBhaEUMBIxEDAOBgNV\n"
- "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIyMDQ5WjBcMFowRTAJBgUrDgMCGgUABBSy\n"
- "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI3\n"
- "ZFj6e1Jv14IAGA8yMDE3MTAxODEyMjA0OVowDQYJKoZIhvcNAQELBQADggGBAJg8\n"
- "/9F2k7DdQsqMfU+f53gUHZAlZzRRPPYQfrmMGfSaMmr9W3fpCrLNMV4PWxGndTh7\n"
- "AforaCwUb6+QyWlnE3B4UUQLphaEawnDJ/8GJZAnCIcjyxpWYZ4onEIZ6pN8BRQE\n"
- "f8ccQN01xlB5RtdqsVmvxtoM0husO0YJDnsCwwFVXulPEFgWuFSoVLsx65lkc+4/\n"
- "RM67+QrbNpBRgKrhb8MAE2WANjpjSAVSf5GWsH9T/F2HDG5crApFIoNywK9e21zk\n"
- "qYAWQ6tVcps3QbvvIEXVy/jOqVASeaxuwHmkdBz4SNT83LvaNnJGBTKXTGukPKAO\n"
- "t6xJpFLwrNWNhgfbw2fklWJSMzMtAEkjzBJi+4kn1SfLdcTLYBf9Tnoq1wsJhAMg\n"
- "OFNzcWb8ZJxuGh7FXgytneM38sL8oTEmLKHfBRnWGOglfCMj3olvXpjotrIlKDAS\n"
- "GbGElY+PZXUtkKiN2cNAecjIodzQFgL+YL6jWKLEuuWGT/MvRrliL83kGmKDdg==\n"
- "-----END OCSP RESPONSE-----";
+ "-----BEGIN OCSP RESPONSE-----\n"
+ "MIICOgoBAKCCAjMwggIvBgkrBgEFBQcwAQEEggIgMIICHDCBhaEUMBIxEDAOBgNV\n"
+ "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIyMDQ5WjBcMFowRTAJBgUrDgMCGgUABBSy\n"
+ "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI3\n"
+ "ZFj6e1Jv14IAGA8yMDE3MTAxODEyMjA0OVowDQYJKoZIhvcNAQELBQADggGBAJg8\n"
+ "/9F2k7DdQsqMfU+f53gUHZAlZzRRPPYQfrmMGfSaMmr9W3fpCrLNMV4PWxGndTh7\n"
+ "AforaCwUb6+QyWlnE3B4UUQLphaEawnDJ/8GJZAnCIcjyxpWYZ4onEIZ6pN8BRQE\n"
+ "f8ccQN01xlB5RtdqsVmvxtoM0husO0YJDnsCwwFVXulPEFgWuFSoVLsx65lkc+4/\n"
+ "RM67+QrbNpBRgKrhb8MAE2WANjpjSAVSf5GWsH9T/F2HDG5crApFIoNywK9e21zk\n"
+ "qYAWQ6tVcps3QbvvIEXVy/jOqVASeaxuwHmkdBz4SNT83LvaNnJGBTKXTGukPKAO\n"
+ "t6xJpFLwrNWNhgfbw2fklWJSMzMtAEkjzBJi+4kn1SfLdcTLYBf9Tnoq1wsJhAMg\n"
+ "OFNzcWb8ZJxuGh7FXgytneM38sL8oTEmLKHfBRnWGOglfCMj3olvXpjotrIlKDAS\n"
+ "GbGElY+PZXUtkKiN2cNAecjIodzQFgL+YL6jWKLEuuWGT/MvRrliL83kGmKDdg==\n"
+ "-----END OCSP RESPONSE-----";
static gnutls_datum_t ocsp_ca3_localhost6_unknown = {
(void *)_ocsp_ca3_localhost6_unknown,
- sizeof(_ocsp_ca3_localhost6_unknown)
+ sizeof(_ocsp_ca3_localhost6_unknown)
};
static gnutls_datum_t ocsp_ca3_localhost6_unknown_pem = {
(void *)_ocsp_ca3_localhost6_unknown_pem,
- sizeof(_ocsp_ca3_localhost6_unknown_pem)-1
+ sizeof(_ocsp_ca3_localhost6_unknown_pem) - 1
};
/* ocsp response with unknown status for
@@ -347,30 +347,30 @@ static const char _ocsp_ca3_localhost_unknown[] = {
};
const char _ocsp_ca3_localhost_unknown_pem[] =
- "-----BEGIN OCSP RESPONSE-----\n"
- "MIICNwoBAKCCAjAwggIsBgkrBgEFBQcwAQEEggIdMIICGTCBgqERMA8xDTALBgNV\n"
- "BAMTBENBLTMYDzIwMTcxMDE4MTIzODUyWjBcMFowRTAJBgUrDgMCGgUABBS3yg+r\n"
- "3G+4sJZ6FayYCg8Z/qQS3gQUHoXtf55x+gidN0hDoBLv5arh44oCDFejHTI1s0/Q\n"
- "ufXnPIIAGA8yMDE3MTAxODEyMzg1MlowDQYJKoZIhvcNAQELBQADggGBALMParB9\n"
- "K97DlT4FmMdPScoT7oAAsar4XxKLU9+oraht7H+WTAYSpnCxh/ugR17G0jtzTzIw\n"
- "nLQFAyR9MDYKp4Om4YqQ7r+43DiIqKVU25WcrVifUbtkR+LbjH+Bk1UHvFE8mCOX\n"
- "ZB+cmQyjGap1RX0dnj2Wm48vUwqp71nA8AYcXL575xZ4rb9DDhaoV2h3S0Zlu4IN\n"
- "btuDIVsxJ53kqkGjjVB4/R0RtqCXOI2ThMK3SfDWqwzF9tYA763VVXi+g+w3oyv4\n"
- "ZtP8QUWOVUY4azpElX1wqoO8znUjxs1AzROLUeLPK8GMLVIZLP361J2kLgcj0Gdq\n"
- "GIVH5N54p6bl5OgSUP3EdKbFRZyCVZ2n8Der3Cf9PtfvGV7Ze4Cv/CCN6rJkk54P\n"
- "6auP6pEJg0ESGC5fop5HFCyVM+W/ot0A1cxN0+cHYlqB1NQholLqe3psDjJ2EoIK\n"
- "LtN5dRLO6z5L74CwwiJ1SeLh8XyJtr/ee9RnFB56XCzO7lyhbHPx/VT6Qw==\n"
- "-----END OCSP RESPONSE-----";
+ "-----BEGIN OCSP RESPONSE-----\n"
+ "MIICNwoBAKCCAjAwggIsBgkrBgEFBQcwAQEEggIdMIICGTCBgqERMA8xDTALBgNV\n"
+ "BAMTBENBLTMYDzIwMTcxMDE4MTIzODUyWjBcMFowRTAJBgUrDgMCGgUABBS3yg+r\n"
+ "3G+4sJZ6FayYCg8Z/qQS3gQUHoXtf55x+gidN0hDoBLv5arh44oCDFejHTI1s0/Q\n"
+ "ufXnPIIAGA8yMDE3MTAxODEyMzg1MlowDQYJKoZIhvcNAQELBQADggGBALMParB9\n"
+ "K97DlT4FmMdPScoT7oAAsar4XxKLU9+oraht7H+WTAYSpnCxh/ugR17G0jtzTzIw\n"
+ "nLQFAyR9MDYKp4Om4YqQ7r+43DiIqKVU25WcrVifUbtkR+LbjH+Bk1UHvFE8mCOX\n"
+ "ZB+cmQyjGap1RX0dnj2Wm48vUwqp71nA8AYcXL575xZ4rb9DDhaoV2h3S0Zlu4IN\n"
+ "btuDIVsxJ53kqkGjjVB4/R0RtqCXOI2ThMK3SfDWqwzF9tYA763VVXi+g+w3oyv4\n"
+ "ZtP8QUWOVUY4azpElX1wqoO8znUjxs1AzROLUeLPK8GMLVIZLP361J2kLgcj0Gdq\n"
+ "GIVH5N54p6bl5OgSUP3EdKbFRZyCVZ2n8Der3Cf9PtfvGV7Ze4Cv/CCN6rJkk54P\n"
+ "6auP6pEJg0ESGC5fop5HFCyVM+W/ot0A1cxN0+cHYlqB1NQholLqe3psDjJ2EoIK\n"
+ "LtN5dRLO6z5L74CwwiJ1SeLh8XyJtr/ee9RnFB56XCzO7lyhbHPx/VT6Qw==\n"
+ "-----END OCSP RESPONSE-----";
static gnutls_datum_t ocsp_ca3_localhost_unknown = {
(void *)_ocsp_ca3_localhost_unknown, sizeof(_ocsp_ca3_localhost_unknown)
};
static gnutls_datum_t ocsp_ca3_localhost_unknown_pem = {
- (void *)_ocsp_ca3_localhost_unknown_pem, sizeof(_ocsp_ca3_localhost_unknown_pem)
+ (void *)_ocsp_ca3_localhost_unknown_pem,
+ sizeof(_ocsp_ca3_localhost_unknown_pem)
};
-
/* ocsp response with unknown status for
* server_ca3_localhost_cert. Signed with
* RSA-SHA1.
@@ -452,7 +452,7 @@ static const char _ocsp_ca3_localhost_unknown_sha1[] = {
static gnutls_datum_t ocsp_ca3_localhost_unknown_sha1 = {
(void *)_ocsp_ca3_localhost_unknown_sha1,
- sizeof(_ocsp_ca3_localhost_unknown_sha1)
+ sizeof(_ocsp_ca3_localhost_unknown_sha1)
};
/* ocsp response with unknown status for
@@ -535,49 +535,49 @@ static const char _ocsp_subca3_unknown[] = {
};
const char _ocsp_subca3_unknown_pem[] =
- "-----BEGIN OCSP RESPONSE-----\n"
- "MIIGUwoBAKCCBkwwggZIBgkrBgEFBQcwAQEEggY5MIIGNTCBhaEUMBIxEDAOBgNV\n"
- "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIwOTMwWjBcMFowRTAJBgUrDgMCGgUABBSy\n"
- "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI2\n"
- "yAyhyrC99oIAGA8yMDE3MTAxODEyMDkzMFowDQYJKoZIhvcNAQENBQADggGBAFZk\n"
- "KxCq5yZ/8X+Glw4YtHWSZRIrRp8+lpjkqxDRDuoI4qUBdaRbdqxJK57xSvJ5Ok4V\n"
- "gf9N02WOrkq7MzWLD7ZdMu/14SW/vVIdmfI04Ps4NGya71OykMb7daCMvGuO2N4z\n"
- "5G/yrfKiT8JYR+JobTo6swqCPaSFAFg+ADWdax//n66wmuLHDpqzfFLp2lBXNXJx\n"
- "gafAQCjqK84JRx2xgEFZ9l3TPOoR2BO5DzJqKXK+wcMbtUxNDaHV8MTsxVqTQXoB\n"
- "JLN6cYKjxghCkQ5r54YLr77fB1qMNfhffy9gBN0q8g3AHG+gMICkNYPTw8w1Rjbr\n"
- "6bE8CI/MXcrZrz7UWLuQXe8BnNk+Vn7PE6oRxCLSoJ8b6fB4cDvMIX1rRpc/Owxb\n"
- "j6gockpBTebdLr3xpB6iopRurTPCVtMpz3VeNVnrB3gjCyBO62ErRncKn6RXqEVF\n"
- "bo+01Zz8hHjDgtm2p9V24CMJK5p8fLVthJ0fRwyc1oYr3fT6l+dy50JSdOhNAaCC\n"
- "BBUwggQRMIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUA\n"
- "MA8xDTALBgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5\n"
- "NTlaMBIxEDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAw\n"
- "ggGKAoIBgQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2\n"
- "WLiope/xNL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioV\n"
- "tvPQwEpvuI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR\n"
- "5+wGsJDvkfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJr\n"
- "P+GtLiG0AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj\n"
- "0Sk3Rq93JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1\n"
- "ROsdk4WUed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH\n"
- "4vysDO9UZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B\n"
- "48xfmyIFjgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMD\n"
- "BwYAMB0GA1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5\n"
- "qIYZY7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58\n"
- "oDRy5a0oPvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68\n"
- "kogjKs31QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmT\n"
- "sQOdv/bzR+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT4\n"
- "5SGw7c7FcumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2\n"
- "gaygWNiD+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiu\n"
- "jgUV0TZHEyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c\n"
- "4FdrCByVhaeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1\n"
- "Y1MQ72SnfrzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
- "-----END OCSP RESPONSE-----\n";
+ "-----BEGIN OCSP RESPONSE-----\n"
+ "MIIGUwoBAKCCBkwwggZIBgkrBgEFBQcwAQEEggY5MIIGNTCBhaEUMBIxEDAOBgNV\n"
+ "BAMTB3N1YkNBLTMYDzIwMTcxMDE4MTIwOTMwWjBcMFowRTAJBgUrDgMCGgUABBSy\n"
+ "5lyOboNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI2\n"
+ "yAyhyrC99oIAGA8yMDE3MTAxODEyMDkzMFowDQYJKoZIhvcNAQENBQADggGBAFZk\n"
+ "KxCq5yZ/8X+Glw4YtHWSZRIrRp8+lpjkqxDRDuoI4qUBdaRbdqxJK57xSvJ5Ok4V\n"
+ "gf9N02WOrkq7MzWLD7ZdMu/14SW/vVIdmfI04Ps4NGya71OykMb7daCMvGuO2N4z\n"
+ "5G/yrfKiT8JYR+JobTo6swqCPaSFAFg+ADWdax//n66wmuLHDpqzfFLp2lBXNXJx\n"
+ "gafAQCjqK84JRx2xgEFZ9l3TPOoR2BO5DzJqKXK+wcMbtUxNDaHV8MTsxVqTQXoB\n"
+ "JLN6cYKjxghCkQ5r54YLr77fB1qMNfhffy9gBN0q8g3AHG+gMICkNYPTw8w1Rjbr\n"
+ "6bE8CI/MXcrZrz7UWLuQXe8BnNk+Vn7PE6oRxCLSoJ8b6fB4cDvMIX1rRpc/Owxb\n"
+ "j6gockpBTebdLr3xpB6iopRurTPCVtMpz3VeNVnrB3gjCyBO62ErRncKn6RXqEVF\n"
+ "bo+01Zz8hHjDgtm2p9V24CMJK5p8fLVthJ0fRwyc1oYr3fT6l+dy50JSdOhNAaCC\n"
+ "BBUwggQRMIIEDTCCAnWgAwIBAgIMV6MdMjWzT9C59ec8MA0GCSqGSIb3DQEBCwUA\n"
+ "MA8xDTALBgNVBAMTBENBLTMwIBcNMTYwNTEwMDg0ODMwWhgPOTk5OTEyMzEyMzU5\n"
+ "NTlaMBIxEDAOBgNVBAMTB3N1YkNBLTMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAw\n"
+ "ggGKAoIBgQCgOcNXzStOnRFoi05aMRLeMB45X4a2srSBul3ULxDSGjIP0EEl//X2\n"
+ "WLiope/xNL8bPCRpI1sSVXl8Hb1cK3qWNGazVmC7xW07NxL26I86e3/BVRnq8ioV\n"
+ "tvPQwEpvuI8F97x1vL/n+cfcdkN77NScr5C9jHMVioRvC+qKz9bUBx5DSySV66PR\n"
+ "5+wGsJDvkfsmjVOgqiTlSWQS5G3nMMq0Rixsc5dP5Wygkbdh9+45UCtObcnHABJr\n"
+ "P+GtLiG0AOUx6oPzPteZL13erWXg7zYusTarj9rTcdsgR/Im1mIzmD2i7GhJo4Gj\n"
+ "0Sk3Rq93JyeA+Ay5UPmqcm+dqX00b49MTTv4GtO53kLQSCXYFJ96jcMiXMzBFJD1\n"
+ "ROsdk4WUed/tJMHffttDz9j3WcuX9M2nzTT2xlauokjbEAhRDRw5fxCFZh7TbmaH\n"
+ "4vysDO9UZXVEXSLKonQ2Lmyso48s/G30VmlSjtPtJqRsv/oPpCO/c0D6BrkHV55B\n"
+ "48xfmyIFjgECAwEAAaNkMGIwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMD\n"
+ "BwYAMB0GA1UdDgQWBBQtMwQbJ3+UBHzH4zVP6SWklOG3oTAfBgNVHSMEGDAWgBT5\n"
+ "qIYZY7akFBNgdg8BmjU27/G0rzANBgkqhkiG9w0BAQsFAAOCAYEAMii5Gx3/d/58\n"
+ "oDRy5a0oPvQhkU0dKa61NfjjOz9uqxNSilLJE7jGJPaG2tKtC/XU1Ybql2tqQY68\n"
+ "kogjKs31QC6RFkoZAFouTJt11kzbgVWKewCk3/OrA0/ZkRrAfE0Pma/NITRwTHmT\n"
+ "sQOdv/bzR+xIPhjKxKrKyJFMG5xb+Q0OKSbd8kDpgYWKob5x2jsNYgEDp8nYSRT4\n"
+ "5SGw7c7FcumkXz2nA6r5NwbnhELvNFK8fzsY+QJKHaAlJ9CclliP1PiiAcl2LQo2\n"
+ "gaygWNiD+ggnqzy7nqam9rieOOMHls1kKFAFrWy2g/cBhTfS+/7Shpex7NK2GAiu\n"
+ "jgUV0TZHEyEZt6um4gLS9vwUKs/R4XS9VL/bBlfAy2hAVTeUejiRBGeTJkqBu7+c\n"
+ "4FdrCByVhaeQASMYu/lga8eaGL1zJbJe2BQWI754KDYDT9qKNqGlgysr4AVje7z1\n"
+ "Y1MQ72SnfrzYSQw6BB85CurB6iou3Q+eM4o4g/+xGEuDo0Ne/8ir\n"
+ "-----END OCSP RESPONSE-----\n";
static gnutls_datum_t ocsp_subca3_unknown = {
(void *)_ocsp_subca3_unknown, sizeof(_ocsp_subca3_unknown)
};
static gnutls_datum_t ocsp_subca3_unknown_pem = {
- (void *)_ocsp_subca3_unknown_pem, sizeof(_ocsp_subca3_unknown_pem)-1
+ (void *)_ocsp_subca3_unknown_pem, sizeof(_ocsp_subca3_unknown_pem) - 1
};
/* ocsp response with good status for
@@ -586,93 +586,90 @@ static gnutls_datum_t ocsp_subca3_unknown_pem = {
*/
const char _ocsp_cli_ca3_good_pem[] =
- "-----BEGIN OCSP RESPONSE-----"
- "MIIGPQoBAKCCBjYwggYyBgkrBgEFBQcwAQEEggYjMIIGHzCBgqERMA8xDTALBgNV"
- "BAMTBENBLTMYDzIwMTkwOTIwMjAwMjMxWjBcMFowRTAJBgUrDgMCGgUABBSy5lyO"
- "boNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI2Wi75"
- "obBaUoAAGA8yMDE5MDkyMDIwMDIzMVowDQYJKoZIhvcNAQELBQADggGBAC80EWal"
- "PkJ29i/sZsO49hRolZXCMb1bjI0yxwhoH2Hk8Z0L41N0WFRphPqrDr8Dm3uRMcdx"
- "n3xre+bxM0WL44mUMxptdYUcAwfb1M2gSQVhRvhvIfiMQZlkMYle4RPdVQN9nxmC"
- "WbZD0WJmXQuYpFWYDVQkcL6f5Tlex5a8M/v/ihFBecs3wfstD1Bu4mD7nA8O/tGa"
- "u0JQXxHnIM7FBOm73HccoxE5in307WEJtK1yTiUjwjlvl05hdWIzdydRToB6dNLL"
- "MtgoFkKIX4aF6fkv1We4zooFdzlQanGdompaSDRGgMEONMZsQdWAs6Nmk+98f6cR"
- "V426fFq3i6MLctLbwB5cOvvKbf9+P14KMD+bzcglupWqgJhNAmQlWksjWgMjfcCV"
- "w4xATkcHnbMLlQ6ikORcXdkAbbhx8O0jJG1MdiUxErPOkOmKz2Nq14OYVYZII0t/"
- "tbzuVGrYtNde4OM2mt9KSOY9rqX1wgKWOUPQW/FzOQvlAaiIwSQtrha/JaCCBAIw"
- "ggP+MIID+jCCAmKgAwIBAgIIVzGgXgSsTYwwDQYJKoZIhvcNAQELBQAwDzENMAsG"
- "A1UEAxMEQ0EtMzAgFw0xNjA1MTAwODQ4MzBaGA85OTk5MTIzMTIzNTk1OVowDzEN"
- "MAsGA1UEAxMEQ0EtMzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALbd"
- "xniG+2wP/ONeZfvR7AJakVo5deFKIHVTiiBWwhg+HSjd4nfDa+vyTt/wIdldP1Pr"
- "iD1Rigc8z68+RxPpGfAc197pKlKpO08I0L1RDKnjBWr4fGdCzE6uZ/ZsKVifoIZp"
- "dC8M2IYpAIMajEtnH53XZ1hTEviXTsneuiCTtap73OeSkL71SrIMkgBmAX17gfX3"
- "SxFjQUzOs6QMMOa3+8GW7RI+E/SyS1QkOO860dj9XYgOnTL20ibGcWF2XmTiQASI"
- "+KmHvYJCNJF/8pvmyJRyBHGZO830aBY0+DcS2bLKcyMiWfOJw7WnpaO7zSEC5WFg"
- "o4jdqroUBQdjQNCSSdrt1yYrAl1Sj2PMxYFX4H545Pr2sMpwC9AnPk9+uucT1Inj"
- "9615qbuXgFwhkgpK5pnPjzKaHp7ESlJj4/dIPTmhlt5BV+CLh7tSLzVLrddGU+os"
- "8JinT42radJ5V51Hn0C1CHIaFAuBCd5XRHXtrKb7WcnwCOxlcvux9h5/847F4wID"
- "AQABo1gwVjAPBgNVHRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8G"
- "A1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFPmohhljtqQUE2B2DwGaNTbv8bSvMA0G"
- "CSqGSIb3DQEBCwUAA4IBgQBhBi8dXQMtXH2oqcuHuEj9JkxraAsaJvc1WAoxbiqV"
- "cJKcVSC0gvoCY3q+NQvuePzw5dzd5JBfkoIsP5U6ATWAUPPqCP+/jRnFqDQlH626"
- "mhDGVS8W7Ee8z1KWqnKWGv5nkrZ6r3y9bVaNUmY7rytzuct1bI9YkX1kM66vgnU2"
- "xeMIjDe36/wTtBRVFPSPpE3KL9hxCg3KgPSeSmmIhmQxJ1M6xe00314/GX3lTDt5"
- "5UdMgmldl2LHV+0i1NPCgnuOEFVOiz2nHAnw2LNmvHEDDpPauz2Meeh9aaDeefIh"
- "2u/wg39WRPhU1mYvmxvYZqA/jwSctiEhuKEBBZSOHxeTjplH1THlIziVnYyVW4sP"
- "MiGUajXhTi47H219hx87+bldruOtirbDIslL9RGWqWAkMeGP+hUl1R2zvDukaqIK"
- "qIN81/A/EeMoI6/IHb1BpgY2rGs/I/QTb3VTKqQUYv09Hi+itPCdKqamSm8dZMKK"
- "aPA0fD9yskUMFPBhfj8BvXg="
- "-----END OCSP RESPONSE-----";
+ "-----BEGIN OCSP RESPONSE-----"
+ "MIIGPQoBAKCCBjYwggYyBgkrBgEFBQcwAQEEggYjMIIGHzCBgqERMA8xDTALBgNV"
+ "BAMTBENBLTMYDzIwMTkwOTIwMjAwMjMxWjBcMFowRTAJBgUrDgMCGgUABBSy5lyO"
+ "boNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI2Wi75"
+ "obBaUoAAGA8yMDE5MDkyMDIwMDIzMVowDQYJKoZIhvcNAQELBQADggGBAC80EWal"
+ "PkJ29i/sZsO49hRolZXCMb1bjI0yxwhoH2Hk8Z0L41N0WFRphPqrDr8Dm3uRMcdx"
+ "n3xre+bxM0WL44mUMxptdYUcAwfb1M2gSQVhRvhvIfiMQZlkMYle4RPdVQN9nxmC"
+ "WbZD0WJmXQuYpFWYDVQkcL6f5Tlex5a8M/v/ihFBecs3wfstD1Bu4mD7nA8O/tGa"
+ "u0JQXxHnIM7FBOm73HccoxE5in307WEJtK1yTiUjwjlvl05hdWIzdydRToB6dNLL"
+ "MtgoFkKIX4aF6fkv1We4zooFdzlQanGdompaSDRGgMEONMZsQdWAs6Nmk+98f6cR"
+ "V426fFq3i6MLctLbwB5cOvvKbf9+P14KMD+bzcglupWqgJhNAmQlWksjWgMjfcCV"
+ "w4xATkcHnbMLlQ6ikORcXdkAbbhx8O0jJG1MdiUxErPOkOmKz2Nq14OYVYZII0t/"
+ "tbzuVGrYtNde4OM2mt9KSOY9rqX1wgKWOUPQW/FzOQvlAaiIwSQtrha/JaCCBAIw"
+ "ggP+MIID+jCCAmKgAwIBAgIIVzGgXgSsTYwwDQYJKoZIhvcNAQELBQAwDzENMAsG"
+ "A1UEAxMEQ0EtMzAgFw0xNjA1MTAwODQ4MzBaGA85OTk5MTIzMTIzNTk1OVowDzEN"
+ "MAsGA1UEAxMEQ0EtMzCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALbd"
+ "xniG+2wP/ONeZfvR7AJakVo5deFKIHVTiiBWwhg+HSjd4nfDa+vyTt/wIdldP1Pr"
+ "iD1Rigc8z68+RxPpGfAc197pKlKpO08I0L1RDKnjBWr4fGdCzE6uZ/ZsKVifoIZp"
+ "dC8M2IYpAIMajEtnH53XZ1hTEviXTsneuiCTtap73OeSkL71SrIMkgBmAX17gfX3"
+ "SxFjQUzOs6QMMOa3+8GW7RI+E/SyS1QkOO860dj9XYgOnTL20ibGcWF2XmTiQASI"
+ "+KmHvYJCNJF/8pvmyJRyBHGZO830aBY0+DcS2bLKcyMiWfOJw7WnpaO7zSEC5WFg"
+ "o4jdqroUBQdjQNCSSdrt1yYrAl1Sj2PMxYFX4H545Pr2sMpwC9AnPk9+uucT1Inj"
+ "9615qbuXgFwhkgpK5pnPjzKaHp7ESlJj4/dIPTmhlt5BV+CLh7tSLzVLrddGU+os"
+ "8JinT42radJ5V51Hn0C1CHIaFAuBCd5XRHXtrKb7WcnwCOxlcvux9h5/847F4wID"
+ "AQABo1gwVjAPBgNVHRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMJMA8G"
+ "A1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFPmohhljtqQUE2B2DwGaNTbv8bSvMA0G"
+ "CSqGSIb3DQEBCwUAA4IBgQBhBi8dXQMtXH2oqcuHuEj9JkxraAsaJvc1WAoxbiqV"
+ "cJKcVSC0gvoCY3q+NQvuePzw5dzd5JBfkoIsP5U6ATWAUPPqCP+/jRnFqDQlH626"
+ "mhDGVS8W7Ee8z1KWqnKWGv5nkrZ6r3y9bVaNUmY7rytzuct1bI9YkX1kM66vgnU2"
+ "xeMIjDe36/wTtBRVFPSPpE3KL9hxCg3KgPSeSmmIhmQxJ1M6xe00314/GX3lTDt5"
+ "5UdMgmldl2LHV+0i1NPCgnuOEFVOiz2nHAnw2LNmvHEDDpPauz2Meeh9aaDeefIh"
+ "2u/wg39WRPhU1mYvmxvYZqA/jwSctiEhuKEBBZSOHxeTjplH1THlIziVnYyVW4sP"
+ "MiGUajXhTi47H219hx87+bldruOtirbDIslL9RGWqWAkMeGP+hUl1R2zvDukaqIK"
+ "qIN81/A/EeMoI6/IHb1BpgY2rGs/I/QTb3VTKqQUYv09Hi+itPCdKqamSm8dZMKK"
+ "aPA0fD9yskUMFPBhfj8BvXg=" "-----END OCSP RESPONSE-----";
static gnutls_datum_t ocsp_cli_ca3_good_pem = {
(void *)_ocsp_cli_ca3_good_pem, sizeof(_ocsp_cli_ca3_good_pem)
};
const char _ocsp_cli_ca3_bad_pem[] =
- "-----BEGIN OCSP RESPONSE-----"
- "MIIGTgoBAKCCBkcwggZDBgkrBgEFBQcwAQEEggY0MIIGMDCBk6ERMA8xDTALBgNV"
- "BAMTBENBLTMYDzIwMTkwOTIwMjAwMTIxWjBtMGswRTAJBgUrDgMCGgUABBSy5lyO"
- "boNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI2Wi75"
- "obBaUqERGA8yMDE5MDUyMjEzNTEwMVoYDzIwMTkwOTIwMjAwMTIxWjANBgkqhkiG"
- "9w0BAQsFAAOCAYEAdCpwIfVu7z2CW3G7IzRSAMBLxu1e/trNdmlKPpx9ptKVWISr"
- "2Fbro6D73HE0/IoTkZXqmUNoEjK0Os3Z/FIlbRuDql0dLkK/KornsvFRD7SemW2z"
- "Z93GIX4JUBJQJW5iYjKBq9xn31IKEhjn9Zhtsfe7a9vK9mnW5oefeIiRLqfmcS09"
- "mclyvTI1aGPcfkSSdabywpKFFETwX1LBIyBhNL9cV07nf0xntOrv5xfLTjyM2uVt"
- "1A4F87xJJG2OX3YJXtf2yuXh1JTAMlUOOrICq1ejXos0AW7iJMzuOkBmXuGHjbBA"
- "1zcSHJF6eZK4iaasdKd4q+coI9x0IdtNohT0a++R4jwFyKlINMVxB8L3xL9l+Fxz"
- "+bNlJt3oZSYAx3CmcFMbScN3LmmHXrsKc6BhuHmgLEhpU9qnnDmUTaJdIWtTHIrq"
- "St+IjvU77wnBscIxQaY0p120rwbqFF9ZUWnbgzsxYqJJ8+qW6oESV5ezWF7bg2YI"
- "d6W38uy7ibW/10froIIEAjCCA/4wggP6MIICYqADAgECAghXMaBeBKxNjDANBgkq"
- "hkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0zMCAXDTE2MDUxMDA4NDgzMFoYDzk5"
- "OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRDQS0zMIIBojANBgkqhkiG9w0BAQEF"
- "AAOCAY8AMIIBigKCAYEAtt3GeIb7bA/8415l+9HsAlqRWjl14UogdVOKIFbCGD4d"
- "KN3id8Nr6/JO3/Ah2V0/U+uIPVGKBzzPrz5HE+kZ8BzX3ukqUqk7TwjQvVEMqeMF"
- "avh8Z0LMTq5n9mwpWJ+ghml0LwzYhikAgxqMS2cfnddnWFMS+JdOyd66IJO1qnvc"
- "55KQvvVKsgySAGYBfXuB9fdLEWNBTM6zpAww5rf7wZbtEj4T9LJLVCQ47zrR2P1d"
- "iA6dMvbSJsZxYXZeZOJABIj4qYe9gkI0kX/ym+bIlHIEcZk7zfRoFjT4NxLZsspz"
- "IyJZ84nDtaelo7vNIQLlYWCjiN2quhQFB2NA0JJJ2u3XJisCXVKPY8zFgVfgfnjk"
- "+vawynAL0Cc+T3665xPUieP3rXmpu5eAXCGSCkrmmc+PMpoensRKUmPj90g9OaGW"
- "3kFX4IuHu1IvNUut10ZT6izwmKdPjatp0nlXnUefQLUIchoUC4EJ3ldEde2spvtZ"
- "yfAI7GVy+7H2Hn/zjsXjAgMBAAGjWDBWMA8GA1UdEwEB/wQFMAMBAf8wEwYDVR0l"
- "BAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQU+aiGGWO2"
- "pBQTYHYPAZo1Nu/xtK8wDQYJKoZIhvcNAQELBQADggGBAGEGLx1dAy1cfaipy4e4"
- "SP0mTGtoCxom9zVYCjFuKpVwkpxVILSC+gJjer41C+54/PDl3N3kkF+Sgiw/lToB"
- "NYBQ8+oI/7+NGcWoNCUfrbqaEMZVLxbsR7zPUpaqcpYa/meStnqvfL1tVo1SZjuv"
- "K3O5y3Vsj1iRfWQzrq+CdTbF4wiMN7fr/BO0FFUU9I+kTcov2HEKDcqA9J5KaYiG"
- "ZDEnUzrF7TTfXj8ZfeVMO3nlR0yCaV2XYsdX7SLU08KCe44QVU6LPaccCfDYs2a8"
- "cQMOk9q7PYx56H1poN558iHa7/CDf1ZE+FTWZi+bG9hmoD+PBJy2ISG4oQEFlI4f"
- "F5OOmUfVMeUjOJWdjJVbiw8yIZRqNeFOLjsfbX2HHzv5uV2u462KtsMiyUv1EZap"
- "YCQx4Y/6FSXVHbO8O6Rqogqog3zX8D8R4ygjr8gdvUGmBjasaz8j9BNvdVMqpBRi"
- "/T0eL6K08J0qpqZKbx1kwopo8DR8P3KyRQwU8GF+PwG9eA=="
- "-----END OCSP RESPONSE-----";
+ "-----BEGIN OCSP RESPONSE-----"
+ "MIIGTgoBAKCCBkcwggZDBgkrBgEFBQcwAQEEggY0MIIGMDCBk6ERMA8xDTALBgNV"
+ "BAMTBENBLTMYDzIwMTkwOTIwMjAwMTIxWjBtMGswRTAJBgUrDgMCGgUABBSy5lyO"
+ "boNLvRHZl/o2k1merVwVxAQUnpHsjKokWyLg6BHo6aSRtZEmAPECDFejHTI2Wi75"
+ "obBaUqERGA8yMDE5MDUyMjEzNTEwMVoYDzIwMTkwOTIwMjAwMTIxWjANBgkqhkiG"
+ "9w0BAQsFAAOCAYEAdCpwIfVu7z2CW3G7IzRSAMBLxu1e/trNdmlKPpx9ptKVWISr"
+ "2Fbro6D73HE0/IoTkZXqmUNoEjK0Os3Z/FIlbRuDql0dLkK/KornsvFRD7SemW2z"
+ "Z93GIX4JUBJQJW5iYjKBq9xn31IKEhjn9Zhtsfe7a9vK9mnW5oefeIiRLqfmcS09"
+ "mclyvTI1aGPcfkSSdabywpKFFETwX1LBIyBhNL9cV07nf0xntOrv5xfLTjyM2uVt"
+ "1A4F87xJJG2OX3YJXtf2yuXh1JTAMlUOOrICq1ejXos0AW7iJMzuOkBmXuGHjbBA"
+ "1zcSHJF6eZK4iaasdKd4q+coI9x0IdtNohT0a++R4jwFyKlINMVxB8L3xL9l+Fxz"
+ "+bNlJt3oZSYAx3CmcFMbScN3LmmHXrsKc6BhuHmgLEhpU9qnnDmUTaJdIWtTHIrq"
+ "St+IjvU77wnBscIxQaY0p120rwbqFF9ZUWnbgzsxYqJJ8+qW6oESV5ezWF7bg2YI"
+ "d6W38uy7ibW/10froIIEAjCCA/4wggP6MIICYqADAgECAghXMaBeBKxNjDANBgkq"
+ "hkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0zMCAXDTE2MDUxMDA4NDgzMFoYDzk5"
+ "OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRDQS0zMIIBojANBgkqhkiG9w0BAQEF"
+ "AAOCAY8AMIIBigKCAYEAtt3GeIb7bA/8415l+9HsAlqRWjl14UogdVOKIFbCGD4d"
+ "KN3id8Nr6/JO3/Ah2V0/U+uIPVGKBzzPrz5HE+kZ8BzX3ukqUqk7TwjQvVEMqeMF"
+ "avh8Z0LMTq5n9mwpWJ+ghml0LwzYhikAgxqMS2cfnddnWFMS+JdOyd66IJO1qnvc"
+ "55KQvvVKsgySAGYBfXuB9fdLEWNBTM6zpAww5rf7wZbtEj4T9LJLVCQ47zrR2P1d"
+ "iA6dMvbSJsZxYXZeZOJABIj4qYe9gkI0kX/ym+bIlHIEcZk7zfRoFjT4NxLZsspz"
+ "IyJZ84nDtaelo7vNIQLlYWCjiN2quhQFB2NA0JJJ2u3XJisCXVKPY8zFgVfgfnjk"
+ "+vawynAL0Cc+T3665xPUieP3rXmpu5eAXCGSCkrmmc+PMpoensRKUmPj90g9OaGW"
+ "3kFX4IuHu1IvNUut10ZT6izwmKdPjatp0nlXnUefQLUIchoUC4EJ3ldEde2spvtZ"
+ "yfAI7GVy+7H2Hn/zjsXjAgMBAAGjWDBWMA8GA1UdEwEB/wQFMAMBAf8wEwYDVR0l"
+ "BAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQU+aiGGWO2"
+ "pBQTYHYPAZo1Nu/xtK8wDQYJKoZIhvcNAQELBQADggGBAGEGLx1dAy1cfaipy4e4"
+ "SP0mTGtoCxom9zVYCjFuKpVwkpxVILSC+gJjer41C+54/PDl3N3kkF+Sgiw/lToB"
+ "NYBQ8+oI/7+NGcWoNCUfrbqaEMZVLxbsR7zPUpaqcpYa/meStnqvfL1tVo1SZjuv"
+ "K3O5y3Vsj1iRfWQzrq+CdTbF4wiMN7fr/BO0FFUU9I+kTcov2HEKDcqA9J5KaYiG"
+ "ZDEnUzrF7TTfXj8ZfeVMO3nlR0yCaV2XYsdX7SLU08KCe44QVU6LPaccCfDYs2a8"
+ "cQMOk9q7PYx56H1poN558iHa7/CDf1ZE+FTWZi+bG9hmoD+PBJy2ISG4oQEFlI4f"
+ "F5OOmUfVMeUjOJWdjJVbiw8yIZRqNeFOLjsfbX2HHzv5uV2u462KtsMiyUv1EZap"
+ "YCQx4Y/6FSXVHbO8O6Rqogqog3zX8D8R4ygjr8gdvUGmBjasaz8j9BNvdVMqpBRi"
+ "/T0eL6K08J0qpqZKbx1kwopo8DR8P3KyRQwU8GF+PwG9eA=="
+ "-----END OCSP RESPONSE-----";
static gnutls_datum_t ocsp_cli_ca3_bad_pem = {
(void *)_ocsp_cli_ca3_bad_pem, sizeof(_ocsp_cli_ca3_bad_pem)
};
-
-
-#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
# pragma GCC diagnostic pop
-#endif
+# endif
-#endif /* GNUTLS_TESTS_OCSP_COMMON_H */
+#endif /* GNUTLS_TESTS_OCSP_COMMON_H */
diff --git a/tests/ocsp-filename-memleak.c b/tests/ocsp-filename-memleak.c
index 8e8ca80111..decc5b4b55 100644
--- a/tests/ocsp-filename-memleak.c
+++ b/tests/ocsp-filename-memleak.c
@@ -24,7 +24,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
diff --git a/tests/ocsp.c b/tests/ocsp.c
index 0d68fd0601..14c5b846f5 100644
--- a/tests/ocsp.c
+++ b/tests/ocsp.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -56,8 +56,7 @@ static void tls_log_func(int level, const char *str)
#define REQ1 "\x30\x67\x30\x65\x30\x3e\x30\x3c\x30\x3a\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\x13\x9d\xa0\x9e\xf4\x32\xab\x8f\xe2\x89\x56\x67\xfa\xd0\xd4\xe3\x35\x86\x71\xb9\x04\x14\x5d\xa7\xdd\x70\x06\x51\x32\x7e\xe7\xb6\x6d\xb3\xb5\xe5\xe0\x60\xea\x2e\x4d\xef\x02\x01\x1d\xa2\x23\x30\x21\x30\x1f\x06\x09\x2b\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x35\xc5\xe3\x50\xc3\xcf\x04\x33\xcc\x9e\x06\x3a\x9a\x18\x80\xcc"
-static const gnutls_datum_t req1 =
- { (unsigned char *) REQ1, sizeof(REQ1) - 1 };
+static const gnutls_datum_t req1 = { (unsigned char *)REQ1, sizeof(REQ1) - 1 };
#define REQ1INFO \
"OCSP Request Information:\n" \
@@ -82,7 +81,7 @@ static const gnutls_datum_t req1 =
#define RESP1 "\x30\x03\x0a\x01\x01"
static const gnutls_datum_t resp1 =
- { (unsigned char *) RESP1, sizeof(RESP1) - 1 };
+ { (unsigned char *)RESP1, sizeof(RESP1) - 1 };
#define RESP1INFO \
"OCSP Response Information:\n" \
@@ -129,7 +128,7 @@ static const gnutls_datum_t resp1 =
/* cut */
static const gnutls_datum_t resp2 =
- { (unsigned char *) RESP2, sizeof(RESP2) - 1 };
+ { (unsigned char *)RESP2, sizeof(RESP2) - 1 };
#define RESP3 "\x30\x82\x01\xd3\x0a\x01\x00\xa0\x82\x01\xcc\x30\x82\x01\xc8\x06\x09\x2b\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x01\xb9\x30\x82\x01\xb5\x30\x81\x9e\xa2\x16\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\x30\x73\x30\x71\x30\x49\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xed\x48\xad\xdd\xcb\x7b\x00\xe2\x0e\x84\x2a\xa9\xb4\x09\xf1\xac\x30\x34\xcf\x96\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x02\x10\x02\x01\x48\x91\x5d\xfd\x5e\xb6\xe0\x02\x90\xa9\x67\xb0\xe4\x64\x80\x00\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\xa0\x11\x18\x0f\x32\x30\x31\x34\x30\x39\x31\x31\x30\x36\x30\x34\x30\x30\x5a\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x6e\x5e\x5e\x81\xff\x3f\x4d\xc7\x53\xc7\x1b\xf3\xd3\x1d\xdc\x9a\xc7\xce\x77\x2c\x67\x56\x13\x98\x91\x02\x01\x76\xdc\x48\xb2\x1f\x9b\x17\xea\xbf\x2c\x0a\xf5\x1d\x98\x90\x3c\x5f\x55\xc2\xff\x4b\x9a\xbc\xa6\x83\x9e\xab\x2b\xeb\x9d\x01\xea\x3b\x5f\xbe\x03\x29\x70\x63\x2a\xa4\x1d\xa8\xab\x69\xb2\x64\xba\x5d\x73\x91\x5c\x92\xf3\x69\xd4\xc9\x39\x9c\x7c\x7d\xa2\x47\x92\xc2\x56\xfe\xa1\x0d\x4a\x69\xff\xda\x48\xc5\x5e\xd8\xab\x39\x88\x6a\x06\xfa\x07\x57\xd6\x48\xb5\xce\xc9\x5f\xa5\x96\xfe\x37\x18\x5e\x7f\x35\x51\xc1\x9e\x79\x5a\x26\xba\x67\x67\x38\x2a\x80\x75\x42\x99\x68\x3e\xec\x2f\x7e\x2d\xa1\xa6\xbe\x9f\x01\x51\x22\x88\x3a\xc9\x9c\xed\x51\xef\x21\x66\x7e\xa9\xd0\x3f\x13\x9c\xbb\xd2\x94\x14\x6f\x4b\xd9\xc4\xf5\x2c\xf5\x7d\x07\x68\xf3\x51\xac\xda\xc2\x09\x66\xa9\x3d\xed\xad\x02\x4d\x9c\x11\x29\x1a\x54\xfb\x1e\x7e\x36\xf4\xbb\x0d\x08\x8c\x6a\x42\x08\x10\x29\x08\x7c\x56\x0b\x18\x47\xff\x87\x11\xfd\xb2\xfb\xc9\x22\x7f\xe3\x1f\x7b\xf9\x98\xaa\x3a\x32\xb6\x2f\x02\xba\xb6\xc1\xdc\xc3\x5d\xb5\x4b\xae\x5d\x29\x6a\x31\xde\xcd"
@@ -169,7 +168,7 @@ static const gnutls_datum_t resp2 =
" 02:ba:b6:c1:dc:c3:5d:b5:4b:ae:5d:29:6a:31:de:cd\n"
static const gnutls_datum_t resp3 =
- { (unsigned char *) RESP3, sizeof(RESP3) - 1 };
+ { (unsigned char *)RESP3, sizeof(RESP3) - 1 };
static unsigned char issuer_pem[] =
"-----BEGIN CERTIFICATE-----\n"
@@ -228,7 +227,7 @@ const gnutls_datum_t subject_data = { subject_pem, sizeof(subject_pem) };
#define BLOG_RESP "\x30\x82\x06\xF8\x0A\x01\x00\xA0\x82\x06\xF1\x30\x82\x06\xED\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\xDE\x30\x82\x06\xDA\x30\x82\x01\x25\xA1\x7E\x30\x7C\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x41\x55\x31\x0C\x30\x0A\x06\x03\x55\x04\x08\x13\x03\x4E\x53\x57\x31\x0F\x30\x0D\x06\x03\x55\x04\x07\x13\x06\x53\x79\x64\x6E\x65\x79\x31\x14\x30\x12\x06\x03\x55\x04\x0A\x13\x0B\x43\x41\x63\x65\x72\x74\x20\x49\x6E\x63\x2E\x31\x1E\x30\x1C\x06\x03\x55\x04\x0B\x13\x15\x53\x65\x72\x76\x65\x72\x20\x41\x64\x6D\x69\x6E\x69\x73\x74\x72\x61\x74\x69\x6F\x6E\x31\x18\x30\x16\x06\x03\x55\x04\x03\x13\x0F\x6F\x63\x73\x70\x2E\x63\x61\x63\x65\x72\x74\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x32\x30\x31\x31\x33\x30\x38\x35\x30\x34\x32\x5A\x30\x66\x30\x64\x30\x3C\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\xF2\x2A\x62\x16\x93\xA6\xDA\x5A\xD0\xB9\x8D\x3A\x13\x5E\x35\xD1\xEB\x18\x36\x61\x04\x14\x75\xA8\x71\x60\x4C\x88\x13\xF0\x78\xD9\x89\x77\xB5\x6D\xC5\x89\xDF\xBC\xB1\x7A\x02\x03\x00\xBC\xE0\x80\x00\x18\x0F\x32\x30\x31\x32\x30\x31\x31\x33\x30\x37\x32\x30\x34\x39\x5A\xA0\x11\x18\x0F\x32\x30\x31\x32\x30\x31\x31\x35\x30\x38\x35\x30\x34\x32\x5A\xA1\x2A\x30\x28\x30\x26\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x19\x04\x17\x73\x69\xD2\xC5\x6F\xC7\x7E\x2E\xB0\x2F\xCC\xC3\xE2\x80\xD6\x2A\xCE\xD3\xDE\x8F\x27\x1B\xB2\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x3E\x50\x9D\xE9\xA2\xE0\xCA\x33\x88\x9B\x28\x7E\xE7\xA4\xAF\xDA\xBB\x75\x2D\xD9\x66\xA6\xD5\xFA\x17\x56\xC0\x3B\xDD\x74\xB6\x7E\x42\x2C\x28\xD0\x73\x91\x54\x69\xFA\xCF\xD8\xC7\x74\x1C\x5D\xBC\x8E\xCD\xE3\x0E\xD5\x3F\x80\x71\x9C\x95\x53\xC4\xD1\x95\x63\x5D\x72\xCE\xCC\x77\x9D\x7C\xAD\x47\x3F\x34\xDA\x90\x80\xC5\x15\xE1\x2B\xEE\x98\x57\xA3\xA7\x9F\xA2\xC3\xF5\x5E\xF7\x13\x26\x52\xDA\x09\x38\x5B\x18\x91\x07\x38\xCF\x09\xDA\x08\xED\x80\x4F\x26\x3A\xB9\xBE\xF6\xED\x65\x3F\xB1\x3A\x6D\xA3\x87\x22\xA3\x2A\xA5\x99\xCC\x06\xF3\x5A\xD5\x34\xFB\x9E\x32\x28\xC3\x3E\xF4\xAF\x33\x02\xCF\x6A\x74\x73\x17\x24\x17\x41\x0D\x7E\x86\x79\x83\x34\xE8\x82\x0A\x0D\x21\xED\xCB\x3B\xB7\x31\x64\xC9\xB6\x1E\xC7\x0C\x75\xCE\xBA\xB7\xDC\xB2\x67\x96\x2B\xAD\xBF\x86\x22\x81\x54\x66\xBA\x68\x89\xD7\x7E\x35\x60\x93\xEC\x6B\xD8\x59\x23\xA0\xD0\x95\x55\x8F\x93\x52\x48\x4E\x48\xCB\x92\xE9\x67\x71\x60\x07\xC9\xA3\x3B\xAC\xD1\xEA\x5B\x71\xDB\xC1\x94\x79\x85\x55\x8C\x03\x61\x9E\xC7\xD6\x32\x40\xFA\xDD\xF6\xC9\xF8\xE0\xFF\x4D\xAC\x54\xED\x61\xFE\xB2\xA0\x82\x04\x99\x30\x82\x04\x95\x30\x82\x04\x91\x30\x82\x02\x79\xA0\x03\x02\x01\x02\x02\x03\x00\xDC\xA6\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x30\x54\x31\x14\x30\x12\x06\x03\x55\x04\x0A\x13\x0B\x43\x41\x63\x65\x72\x74\x20\x49\x6E\x63\x2E\x31\x1E\x30\x1C\x06\x03\x55\x04\x0B\x13\x15\x68\x74\x74\x70\x3A\x2F\x2F\x77\x77\x77\x2E\x43\x41\x63\x65\x72\x74\x2E\x6F\x72\x67\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x43\x41\x63\x65\x72\x74\x20\x43\x6C\x61\x73\x73\x20\x33\x20\x52\x6F\x6F\x74\x30\x1E\x17\x0D\x31\x31\x30\x38\x32\x33\x30\x30\x30\x38\x33\x37\x5A\x17\x0D\x31\x33\x30\x38\x32\x32\x30\x30\x30\x38\x33\x37\x5A\x30\x7C\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x41\x55\x31\x0C\x30\x0A\x06\x03\x55\x04\x08\x13\x03\x4E\x53\x57\x31\x0F\x30\x0D\x06\x03\x55\x04\x07\x13\x06\x53\x79\x64\x6E\x65\x79\x31\x14\x30\x12\x06\x03\x55\x04\x0A\x13\x0B\x43\x41\x63\x65\x72\x74\x20\x49\x6E\x63\x2E\x31\x1E\x30\x1C\x06\x03\x55\x04\x0B\x13\x15\x53\x65\x72\x76\x65\x72\x20\x41\x64\x6D\x69\x6E\x69\x73\x74\x72\x61\x74\x69\x6F\x6E\x31\x18\x30\x16\x06\x03\x55\x04\x03\x13\x0F\x6F\x63\x73\x70\x2E\x63\x61\x63\x65\x72\x74\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\x9C\xC6\xD4\x6F\xE4\x23\xC7\xC3\x70\x4B\x75\x1F\xE4\xFC\xAE\xF6\x62\xC4\x60\xA1\xD6\xCF\xF9\x47\x40\x38\xD9\xAF\x06\xF5\xB3\x87\x09\xBA\x07\xC8\x7A\x3B\xE3\x3A\xE2\xC1\x6B\xDB\x0E\x9B\x7B\xB4\x98\x04\x40\x88\xC8\xE4\x20\x34\x9D\x5F\x94\xAE\x0C\xA0\x05\xA1\x74\x10\x3F\x1F\x93\x6D\xC5\xA0\xCE\x29\xB0\x2A\x03\x6E\xED\x3B\xD1\x9A\x7A\xF7\x0F\xA7\xB7\x39\xD7\xC3\xB4\xDE\x15\x67\x94\xF2\xEF\xB0\xDD\x5F\xE3\xC9\xD8\xD2\x34\x0E\x5D\x44\xDF\xBF\x99\xD8\x5E\x60\xF4\x39\x24\x8A\xFD\x5D\xC8\x46\x8D\x0A\xB1\x60\x7A\x4F\xD5\x27\x30\x60\x9E\x13\x06\xF8\x3A\xAA\xB3\xBB\x33\x34\x6F\x84\x81\x7E\x5C\xCC\x12\x89\xF2\xFE\x6E\x93\x83\xFA\x8B\xEE\xAB\x36\x4C\xB6\x40\xA9\xEE\xFB\xF8\x16\x5A\x55\xD1\x64\x0D\x49\xDA\x04\xDE\xD1\xC8\xCA\xEE\x5F\x24\xB1\x79\x78\xB3\x9A\x88\x13\xDD\x68\x51\x39\xE9\x68\x31\xAF\xD7\xF8\x4D\x35\x6D\x60\x58\x04\x42\xBB\x55\x92\x18\xF6\x98\x01\xA5\x74\x3B\xBC\x36\xDB\x20\x68\x18\xB8\x85\xD4\x8B\x6D\x30\x87\x4D\xD6\x33\x2D\x7A\x54\x36\x1D\x57\x42\x14\x5C\x7A\x62\x74\xD5\x1E\x2B\xD5\xBF\x04\xF3\xFF\xEC\x03\xC1\x02\x03\x01\x00\x01\xA3\x44\x30\x42\x30\x0C\x06\x03\x55\x1D\x13\x01\x01\xFF\x04\x02\x30\x00\x30\x27\x06\x03\x55\x1D\x25\x04\x20\x30\x1E\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x02\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x01\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x09\x06\x03\x55\x1D\x11\x04\x02\x30\x00\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x02\x01\x00\x50\xDD\x63\xB7\x1A\x6F\x91\x4C\xE8\x7F\x82\x1A\x27\x04\x81\x05\xBB\xA6\x69\xAC\x41\x7B\x62\xFC\x4B\x08\xDC\x60\xCF\xB2\x5A\xF1\xB4\xB5\x27\x69\x6B\x12\xE4\x07\xC8\x16\xCE\x3B\x42\xCC\x02\x90\x66\x0E\x79\xB8\x6C\x4B\x90\x00\xC5\x66\x64\x92\x2B\x2B\x48\x0E\x84\xC2\x6D\xBF\xA5\xDE\x16\xE3\xBD\x19\xF5\x5C\x93\xA1\x86\x7F\xD9\x89\x78\x6A\x3F\x83\xF0\xAA\xF8\xEA\x1D\xA4\x13\xF7\x2A\x15\x4C\x51\x9C\xC4\xB0\xBE\x58\x66\xCF\x4C\x6C\x3D\x31\xE5\xF9\x54\x21\xCD\xA1\x30\x01\x6A\xB3\x1A\x48\x85\x34\x93\xB8\xF9\x15\x19\x48\x34\x8D\x73\xE7\x03\x50\xAF\xDE\x50\xC7\x62\xAF\x25\x22\x2B\xF6\xE8\x37\x2E\xE4\x71\xA9\x5C\x26\xEA\x79\xCB\x04\x29\x73\x6B\x8F\xDF\x1F\x5C\x41\x52\xC0\x36\xAA\xD7\x7D\x8E\x44\x54\x98\x06\x4C\x63\xA6\x0B\x01\x94\x5D\x0C\x5C\xD4\xCF\xCB\x0B\x7B\x2D\x56\xCC\xBF\x97\x7F\x15\x24\x1D\xBA\xEA\xB7\x97\xB0\x32\xAD\xFC\xEA\x6D\x94\x39\x7A\xE3\x25\x54\xFC\x4A\xF5\x3D\xBD\x2E\xD5\x31\x07\x49\x24\xCC\x92\x69\x0E\x79\xB9\xDF\xDB\x36\xBF\x04\x44\x15\xD0\x46\x99\x8C\xD2\x4C\x94\x38\x0E\x10\x64\x13\xAB\xD9\x1B\x54\x02\x31\x56\x20\xEE\x69\x95\xDF\x39\xBB\xE9\xA7\x6D\xC3\x23\x86\x0B\xD6\x34\x40\x37\xC3\xD4\x41\xA8\x2E\x71\x1D\x6E\x5B\xD7\xC5\x9F\x2A\xE6\x02\x80\xAE\x0A\x28\x69\x63\x4B\x89\x2E\xBD\x4F\x42\x58\xFB\x86\x9A\xA2\x18\xDC\xC6\x32\xC1\x46\xBA\x28\xD2\x8B\xCE\x56\x63\x04\x80\x51\x51\x39\x00\x3B\x00\xB9\x5F\x67\xFA\x90\x1E\xDA\x76\xB5\x31\xA5\xBD\x11\xD2\x5F\xDA\x5D\xD5\xF7\xEE\xAB\xC0\x62\x74\x60\x47\x32\x42\xFD\xB2\x2E\x04\x3A\x2E\xF2\xC8\xB3\x41\xA3\xBD\xFE\x94\x5F\xEF\x6E\xD7\x92\x7C\x1D\x04\xF0\xC6\x53\x8E\x46\xDC\x30\x3A\x35\x5F\x1A\x4B\xEA\x3B\x00\x8B\x97\xB5\xB9\xCE\x71\x6E\x5C\xD5\xA0\x0B\xB1\x33\x08\x89\x61\x23\xCF\x97\x9F\x8F\x9A\x50\xB5\xEC\xCE\x40\x8D\x82\x95\x8B\x79\x26\x66\xF3\xF4\x70\xD8\xEE\x58\xDD\x75\x29\xD5\x6A\x91\x51\x7A\x17\xBC\x4F\xD4\xA3\x45\x7B\x84\xE7\xBE\x69\x53\xC1\xE2\x5C\xC8\x45\xA0\x3A\xEC\xDF\x8A\x1E\xC1\x18\x84\x8B\x7A\x4E\x4E\x9E\x3A\x26\xFE\x5D\x22\xD4\xC5\x14\xBE\xEE\x06\xEB\x05\x4A\x66\xC9\xA4\xB3\x68\x04\xB0\x5D\x25\x54\xB3\x05\xED\x41\xF0\x65\x69\x6D\xA5\x4E\xB7\x97\xD8\xD8\xF5"
static const gnutls_datum_t blog_resp =
- { (unsigned char *) BLOG_RESP, sizeof(BLOG_RESP) - 1 };
+ { (unsigned char *)BLOG_RESP, sizeof(BLOG_RESP) - 1 };
static unsigned char blog_cert_pem[] =
"-----BEGIN CERTIFICATE-----\n"
@@ -340,7 +339,6 @@ const gnutls_datum_t blog_signer_data = { blog_signer_pem,
sizeof(blog_signer_pem)
};
-
static unsigned char long_resp_signer_pem[] =
"-----BEGIN CERTIFICATE-----\n"
"MIIE3zCCA8egAwIBAgIQPZqC0NHDL2/ghF+ZEe5TQjANBgkqhkiG9w0BAQUFADCB\n"
@@ -369,8 +367,7 @@ static unsigned char long_resp_signer_pem[] =
"O6GZ933J0O3X6qk4bnMBDUPFXgyn0Xfv0jeYzOa/Tu2IPpcf0ugogbrZscsIZWFy\n"
"jFlwHnFGpd2k1GXaFRPqxk+qtLAxJtjN+DfkmxGNoIAv1hHXpBhDhuzTpnmXVf32\n"
"YfFIyYfRt/x/Z4hztF/MZ41QxJdZIqvCMooi1GAgeG2jkXLx+x6ppfhkN7+zOF8A\n"
- "4W5J\n"
- "-----END CERTIFICATE-----\n";
+ "4W5J\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t long_resp_signer_data = { long_resp_signer_pem,
sizeof(long_resp_signer_pem)
};
@@ -486,7 +483,7 @@ static unsigned char long_resp_str[] =
"\x91\x72\xf1\xfb\x1e\xa9\xa5\xf8\x64\x37\xbf\xb3\x38\x5f\x00\xe1"
"\x6e\x49";
-gnutls_datum_t long_resp = {long_resp_str, sizeof(long_resp_str)-1 };
+gnutls_datum_t long_resp = { long_resp_str, sizeof(long_resp_str) - 1 };
static void ocsp_invalid_calls(void)
{
@@ -620,22 +617,19 @@ static void ocsp_invalid_calls(void)
exit(1);
}
- rc = gnutls_ocsp_req_add_cert_id(req, GNUTLS_DIG_SHA1, p, NULL,
- NULL);
+ rc = gnutls_ocsp_req_add_cert_id(req, GNUTLS_DIG_SHA1, p, NULL, NULL);
if (rc != GNUTLS_E_INVALID_REQUEST) {
fail("gnutls_ocsp_req_add_cert_id NULL\n");
exit(1);
}
- rc = gnutls_ocsp_req_add_cert_id(req, GNUTLS_DIG_SHA1, NULL, p,
- NULL);
+ rc = gnutls_ocsp_req_add_cert_id(req, GNUTLS_DIG_SHA1, NULL, p, NULL);
if (rc != GNUTLS_E_INVALID_REQUEST) {
fail("gnutls_ocsp_req_add_cert_id NULL\n");
exit(1);
}
- rc = gnutls_ocsp_req_add_cert_id(req, GNUTLS_DIG_SHA1, NULL, NULL,
- p);
+ rc = gnutls_ocsp_req_add_cert_id(req, GNUTLS_DIG_SHA1, NULL, NULL, p);
if (rc != GNUTLS_E_INVALID_REQUEST) {
fail("gnutls_ocsp_req_add_cert_id NULL\n");
exit(1);
@@ -671,7 +665,6 @@ static void ocsp_invalid_calls(void)
exit(1);
}
-
rc = gnutls_ocsp_req_add_cert(req, 0, p, NULL);
if (rc != GNUTLS_E_INVALID_REQUEST) {
fail("gnutls_ocsp_req_add_cert_id NULL\n");
@@ -816,9 +809,12 @@ static void ocsp_invalid_calls(void)
exit(1);
}
- rc = gnutls_ocsp_resp_get_responder_raw_id(resp, GNUTLS_OCSP_RESP_ID_KEY, &dat);
+ rc = gnutls_ocsp_resp_get_responder_raw_id(resp,
+ GNUTLS_OCSP_RESP_ID_KEY,
+ &dat);
if (rc != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
- fail("gnutls_ocsp_resp_get_responder_raw_id %s\n", gnutls_strerror(rc));
+ fail("gnutls_ocsp_resp_get_responder_raw_id %s\n",
+ gnutls_strerror(rc));
exit(1);
}
@@ -861,9 +857,9 @@ static void req_parse(void)
/* check nonce */
{
- gnutls_datum_t expect =
- { (unsigned char *) REQ1NONCE + 2,
- sizeof(REQ1NONCE) - 3 };
+ gnutls_datum_t expect = { (unsigned char *)REQ1NONCE + 2,
+ sizeof(REQ1NONCE) - 3
+ };
gnutls_datum_t got;
unsigned int critical;
@@ -898,8 +894,8 @@ static void req_parse(void)
if (strlen(REQ1INFO) != d.size ||
memcmp(REQ1INFO, d.data, strlen(REQ1INFO)) != 0) {
printf("expected (len %ld):\n%s\ngot (len %d):\n%.*s\n",
- strlen(REQ1INFO), REQ1INFO, (int) d.size,
- (int) d.size, d.data);
+ strlen(REQ1INFO), REQ1INFO, (int)d.size,
+ (int)d.size, d.data);
fail("ocsp request print failed\n");
exit(1);
}
@@ -922,8 +918,8 @@ static void req_parse(void)
/* test setting nonce */
{
- gnutls_datum_t n1 = { (unsigned char *) "foo", 3 };
- gnutls_datum_t n2 = { (unsigned char *) "foobar", 6 };
+ gnutls_datum_t n1 = { (unsigned char *)"foo", 3 };
+ gnutls_datum_t n2 = { (unsigned char *)"foobar", 6 };
gnutls_datum_t got;
unsigned critical;
@@ -1050,7 +1046,7 @@ static void req_addcert_id(void)
{
gnutls_datum_t nonce =
- { (unsigned char *) REQ1NONCE, sizeof(REQ1NONCE) - 1 };
+ { (unsigned char *)REQ1NONCE, sizeof(REQ1NONCE) - 1 };
ret =
gnutls_ocsp_req_set_extension(req,
@@ -1065,11 +1061,11 @@ static void req_addcert_id(void)
/* add cert_id */
{
gnutls_datum_t issuer_name_hash =
- { (unsigned char *) REQ1INH, sizeof(REQ1INH) - 1 };
+ { (unsigned char *)REQ1INH, sizeof(REQ1INH) - 1 };
gnutls_datum_t issuer_key_hash =
- { (unsigned char *) REQ1IKH, sizeof(REQ1IKH) - 1 };
+ { (unsigned char *)REQ1IKH, sizeof(REQ1IKH) - 1 };
gnutls_datum_t serial_number =
- { (unsigned char *) REQ1SN, sizeof(REQ1SN) - 1 };
+ { (unsigned char *)REQ1SN, sizeof(REQ1SN) - 1 };
ret = gnutls_ocsp_req_add_cert_id(req, GNUTLS_DIG_SHA1,
&issuer_name_hash,
@@ -1092,8 +1088,8 @@ static void req_addcert_id(void)
if (strlen(REQ1INFO) != d.size ||
memcmp(REQ1INFO, d.data, strlen(REQ1INFO)) != 0) {
printf("expected (len %ld):\n%s\ngot (len %d):\n%.*s\n",
- strlen(REQ1INFO), REQ1INFO, (int) d.size,
- (int) d.size, d.data);
+ strlen(REQ1INFO), REQ1INFO, (int)d.size,
+ (int)d.size, d.data);
fail("ocsp request print failed\n");
exit(1);
}
@@ -1139,7 +1135,7 @@ static void req_addcert(void)
{
gnutls_datum_t nonce =
- { (unsigned char *) REQ1NONCE, sizeof(REQ1NONCE) - 1 };
+ { (unsigned char *)REQ1NONCE, sizeof(REQ1NONCE) - 1 };
ret =
gnutls_ocsp_req_set_extension(req,
@@ -1184,7 +1180,7 @@ static void req_addcert(void)
}
ret = gnutls_ocsp_req_add_cert(req, GNUTLS_DIG_SHA1,
- issuer, subject);
+ issuer, subject);
if (ret != 0) {
fail("gnutls_ocsp_add_cert %d\n", ret);
exit(1);
@@ -1205,8 +1201,8 @@ static void req_addcert(void)
if (strlen(REQ1INFO) != d.size ||
memcmp(REQ1INFO, d.data, strlen(REQ1INFO)) != 0) {
printf("expected (len %ld):\n%s\ngot (len %d):\n%.*s\n",
- strlen(REQ1INFO), REQ1INFO, (int) d.size,
- (int) d.size, d.data);
+ strlen(REQ1INFO), REQ1INFO, (int)d.size,
+ (int)d.size, d.data);
fail("ocsp request print failed\n");
exit(1);
}
@@ -1248,10 +1244,13 @@ static void check_ocsp_resp(gnutls_ocsp_resp_t resp)
/* functionality check of gnutls_ocsp_resp_get_single(), the data
* sanity check is done with the gnutls_ocsp_resp_print() checks. */
ret = gnutls_ocsp_resp_get_single(resp, 0, &digest, &issuer_name_hash,
- &issuer_key_hash, &serial_number, &cert_status, &this_update,
- &next_update, &revocation_time, &revocation_reason);
+ &issuer_key_hash, &serial_number,
+ &cert_status, &this_update,
+ &next_update, &revocation_time,
+ &revocation_reason);
if (ret < 0) {
- fail("error in gnutls_ocsp_resp_get_single: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_ocsp_resp_get_single: %s\n",
+ gnutls_strerror(ret));
}
gnutls_free(issuer_key_hash.data);
@@ -1260,15 +1259,18 @@ static void check_ocsp_resp(gnutls_ocsp_resp_t resp)
/* test if everything works with null params */
ret = gnutls_ocsp_resp_get_single(resp, 0, &digest, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL);
+ NULL, NULL, NULL, NULL, NULL);
if (ret < 0) {
- fail("error in gnutls_ocsp_resp_get_single: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_ocsp_resp_get_single: %s\n",
+ gnutls_strerror(ret));
}
ret = gnutls_ocsp_resp_get_single(resp, 0, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, &revocation_reason);
+ NULL, NULL, NULL, NULL,
+ &revocation_reason);
if (ret < 0) {
- fail("error in gnutls_ocsp_resp_get_single: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_ocsp_resp_get_single: %s\n",
+ gnutls_strerror(ret));
}
return;
@@ -1292,7 +1294,8 @@ static void resp_import(void)
ret = gnutls_ocsp_resp_import(resp, &resp1);
if (ret != 0) {
- fail("gnutls_ocsp_resp_import[%d]: %s\n", __LINE__, gnutls_strerror(ret));
+ fail("gnutls_ocsp_resp_import[%d]: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
@@ -1307,8 +1310,8 @@ static void resp_import(void)
if (strlen(RESP1INFO) != d.size ||
memcmp(RESP1INFO, d.data, strlen(RESP1INFO)) != 0) {
printf("expected (len %ld):\n%s\ngot (len %d):\n%.*s\n",
- strlen(RESP1INFO), RESP1INFO, (int) d.size,
- (int) d.size, d.data);
+ strlen(RESP1INFO), RESP1INFO, (int)d.size,
+ (int)d.size, d.data);
fail("ocsp response print failed\n");
exit(1);
}
@@ -1318,7 +1321,8 @@ static void resp_import(void)
ret = gnutls_ocsp_resp_import(resp, &resp2);
if (ret != 0) {
- fail("gnutls_ocsp_resp_import[%d]: %s\n", __LINE__, gnutls_strerror(ret));
+ fail("gnutls_ocsp_resp_import[%d]: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
@@ -1333,8 +1337,8 @@ static void resp_import(void)
if (memcmp(RESP2INFO, d.data, strlen(RESP2INFO)) != 0) {
printf("expected (len %ld):\n%s\ngot (len %d):\n%.*s\n",
- strlen(RESP2INFO), RESP2INFO, (int) d.size,
- (int) d.size, d.data);
+ strlen(RESP2INFO), RESP2INFO, (int)d.size,
+ (int)d.size, d.data);
fail("ocsp response print failed\n");
exit(1);
}
@@ -1344,7 +1348,7 @@ static void resp_import(void)
gnutls_ocsp_resp_deinit(resp);
- /* import ocsp response 3*/
+ /* import ocsp response 3 */
ret = gnutls_ocsp_resp_init(&resp);
if (ret != 0) {
@@ -1354,7 +1358,8 @@ static void resp_import(void)
ret = gnutls_ocsp_resp_import(resp, &resp3);
if (ret != 0) {
- fail("gnutls_ocsp_resp_import[%d]: %s\n", __LINE__, gnutls_strerror(ret));
+ fail("gnutls_ocsp_resp_import[%d]: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
@@ -1368,8 +1373,8 @@ static void resp_import(void)
if (memcmp(RESP3INFO, d.data, strlen(RESP3INFO)) != 0) {
printf("expected (len %ld):\n%s\ngot (len %d):\n%.*s\n",
- strlen(RESP3INFO), RESP3INFO, (int) d.size,
- (int) d.size, d.data);
+ strlen(RESP3INFO), RESP3INFO, (int)d.size,
+ (int)d.size, d.data);
fail("ocsp response 3 print failed\n");
exit(1);
}
@@ -1423,8 +1428,7 @@ static void resp_verify(void)
}
ret =
- gnutls_x509_crt_import(cert, &blog_cert_data,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_crt_import(cert, &blog_cert_data, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("gnutls_x509_crt_import (cert) %d\n", ret);
exit(1);
@@ -1461,7 +1465,9 @@ static void resp_verify(void)
/* check direct verify with cert (should fail) */
- ret = gnutls_ocsp_resp_verify_direct(resp, cert, &verify, GNUTLS_VERIFY_ALLOW_BROKEN);
+ ret =
+ gnutls_ocsp_resp_verify_direct(resp, cert, &verify,
+ GNUTLS_VERIFY_ALLOW_BROKEN);
if (ret < 0) {
fail("gnutls_ocsp_resp_verify_direct (cert) %d\n", ret);
exit(1);
@@ -1486,7 +1492,9 @@ static void resp_verify(void)
exit(1);
}
- ret = gnutls_ocsp_resp_verify(resp, list, &verify, GNUTLS_VERIFY_ALLOW_BROKEN);
+ ret =
+ gnutls_ocsp_resp_verify(resp, list, &verify,
+ GNUTLS_VERIFY_ALLOW_BROKEN);
if (ret < 0) {
fail("gnutls_ocsp_resp_verify (issuer) %d\n", ret);
exit(1);
@@ -1540,7 +1548,9 @@ static void resp_verify(void)
exit(1);
}
- ret = gnutls_ocsp_resp_verify(resp, list, &verify, GNUTLS_VERIFY_ALLOW_BROKEN);
+ ret =
+ gnutls_ocsp_resp_verify(resp, list, &verify,
+ GNUTLS_VERIFY_ALLOW_BROKEN);
if (ret < 0) {
fail("gnutls_ocsp_resp_verify (issuer) %d\n", ret);
exit(1);
@@ -1619,7 +1629,8 @@ static void long_resp_check(void)
ret = gnutls_ocsp_resp_import(resp, &long_resp);
if (ret != 0) {
- fail("gnutls_ocsp_resp_import[%d]: %s\n", __LINE__, gnutls_strerror(ret));
+ fail("gnutls_ocsp_resp_import[%d]: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
diff --git a/tests/oids.c b/tests/oids.c
index 32bbae2372..fd95f7006b 100644
--- a/tests/oids.c
+++ b/tests/oids.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
diff --git a/tests/openconnect-dtls12.c b/tests/openconnect-dtls12.c
index 69b9977951..dab7ed647a 100644
--- a/tests/openconnect-dtls12.c
+++ b/tests/openconnect-dtls12.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void server_log_func(int level, const char *str)
{
@@ -62,22 +62,23 @@ static void client_log_func(int level, const char *str)
/* A DTLS client handling DTLS 1.2 resumption under AnyConnect protocol which sets premaster secret.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
return send(fd, data, len, 0);
}
-static gnutls_datum_t master =
- { (void*)"\x44\x66\x44\xa9\xb6\x29\xed\x6e\xd6\x93\x15\xdb\xf0\x7d\x4b\x2e\x18\xb1\x9d\xed\xff\x6a\x86\x76\xc9\x0e\x16\xab\xc2\x10\xbb\x17\x99\x24\xb1\xd9\xb9\x95\xe7\xea\xea\xea\xea\xea\xff\xaa\xac", 48};
-static gnutls_datum_t sess_id =
- { (void*)"\xd9\xb9\x95\xe7\xea", 5};
+static gnutls_datum_t master = { (void *)
+ "\x44\x66\x44\xa9\xb6\x29\xed\x6e\xd6\x93\x15\xdb\xf0\x7d\x4b\x2e\x18\xb1\x9d\xed\xff\x6a\x86\x76\xc9\x0e\x16\xab\xc2\x10\xbb\x17\x99\x24\xb1\xd9\xb9\x95\xe7\xea\xea\xea\xea\xea\xff\xaa\xac",
+ 48
+};
+static gnutls_datum_t sess_id = { (void *)"\xd9\xb9\x95\xe7\xea", 5 };
-static void client(int fd, const char *prio, int proto, int cipher, int kx, int mac, const char *exp_desc)
+static void client(int fd, const char *prio, int proto, int cipher, int kx,
+ int mac, const char *exp_desc)
{
int ret;
char buffer[MAX_BUF + 1];
@@ -98,15 +99,14 @@ static void client(int fd, const char *prio, int proto, int cipher, int kx, int
gnutls_dtls_set_mtu(session, 1500);
gnutls_handshake_set_timeout(session, get_timeout());
- assert(gnutls_priority_set_direct(session,
- prio,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
ret = gnutls_session_set_premaster(session, GNUTLS_CLIENT,
- proto, kx, cipher, mac,
- GNUTLS_COMP_NULL, &master, &sess_id);
+ proto, kx, cipher, mac,
+ GNUTLS_COMP_NULL, &master, &sess_id);
if (ret < 0) {
- fail("client: gnutls_session_set_premaster failed: %s\n", gnutls_strerror(ret));
+ fail("client: gnutls_session_set_premaster failed: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -136,7 +136,8 @@ static void client(int fd, const char *prio, int proto, int cipher, int kx, int
fail("client: gnutls_session_get_desc: NULL\n");
if (strcmp(desc, exp_desc) != 0)
- fail("client: gnutls_session_get_desc: found null str: %s\n", desc);
+ fail("client: gnutls_session_get_desc: found null str: %s\n",
+ desc);
success(" - connected with: %s\n", desc);
gnutls_free(desc);
@@ -147,13 +148,12 @@ static void client(int fd, const char *prio, int proto, int cipher, int kx, int
(gnutls_protocol_get_version(session)));
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_recv(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -162,7 +162,7 @@ static void client(int fd, const char *prio, int proto, int cipher, int kx, int
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -173,8 +173,8 @@ static void client(int fd, const char *prio, int proto, int cipher, int kx, int
gnutls_global_deinit();
}
-
-static void server(int fd, const char *prio, int proto, int cipher, int kx, int mac)
+static void server(int fd, const char *prio, int proto, int cipher, int kx,
+ int mac)
{
int ret;
gnutls_certificate_credentials_t xcred;
@@ -199,15 +199,14 @@ static void server(int fd, const char *prio, int proto, int cipher, int kx, int
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session,
- prio,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
ret = gnutls_session_set_premaster(session, GNUTLS_SERVER,
- proto, kx, cipher, mac,
- GNUTLS_COMP_NULL, &master, &sess_id);
+ proto, kx, cipher, mac,
+ GNUTLS_COMP_NULL, &master, &sess_id);
if (ret < 0) {
- fail("server: gnutls_session_set_premaster failed: %s\n", gnutls_strerror(ret));
+ fail("server: gnutls_session_set_premaster failed: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -239,7 +238,7 @@ static void server(int fd, const char *prio, int proto, int cipher, int kx, int
memset(buffer, 1, sizeof(buffer));
do {
- ret = gnutls_record_send(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_send(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
@@ -249,7 +248,6 @@ static void server(int fd, const char *prio, int proto, int cipher, int kx, int
gnutls_strerror(ret));
}
-
/* do not wait for the peer to close the connection.
*/
gnutls_bye(session, GNUTLS_SHUT_WR);
@@ -265,7 +263,8 @@ static void server(int fd, const char *prio, int proto, int cipher, int kx, int
success("server: finished\n");
}
-static void run(const char *name, const char *prio, int proto, int cipher, int kx, int mac, const char *exp_desc)
+static void run(const char *name, const char *prio, int proto, int cipher,
+ int kx, int mac, const char *exp_desc)
{
int fd[2];
int ret;
@@ -307,14 +306,22 @@ void doit(void)
{
signal(SIGPIPE, SIG_IGN);
- run("dtls1.2-aes128-ecdhe", "NONE:+VERS-DTLS1.2:+COMP-NULL:+AES-128-GCM:+AEAD:+ECDHE-RSA:+SIGN-ALL:%COMPAT",
- GNUTLS_DTLS1_2, GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_ECDHE_RSA, GNUTLS_MAC_AEAD, "(DTLS1.2)-(ECDHE-RSA)-(AES-128-GCM)");
- run("dtls1.2-aes256-ecdhe", "NONE:+VERS-DTLS1.2:+COMP-NULL:+AES-256-GCM:+AEAD:+ECDHE-RSA:+SIGN-ALL:%COMPAT",
- GNUTLS_DTLS1_2, GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_ECDHE_RSA, GNUTLS_MAC_AEAD, "(DTLS1.2)-(ECDHE-RSA)-(AES-256-GCM)");
- run("dtls1.2-aes128-rsa", "NONE:+VERS-DTLS1.2:+COMP-NULL:+AES-128-GCM:+AEAD:+RSA:+SIGN-ALL:%COMPAT",
- GNUTLS_DTLS1_2, GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_RSA, GNUTLS_MAC_AEAD, "(DTLS1.2)-(RSA)-(AES-128-GCM)");
- run("dtls1.2-aes256-rsa", "NONE:+VERS-DTLS1.2:+COMP-NULL:+AES-256-GCM:+AEAD:+RSA:+SIGN-ALL:%COMPAT",
- GNUTLS_DTLS1_2, GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_RSA, GNUTLS_MAC_AEAD, "(DTLS1.2)-(RSA)-(AES-256-GCM)");
+ run("dtls1.2-aes128-ecdhe",
+ "NONE:+VERS-DTLS1.2:+COMP-NULL:+AES-128-GCM:+AEAD:+ECDHE-RSA:+SIGN-ALL:%COMPAT",
+ GNUTLS_DTLS1_2, GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_ECDHE_RSA,
+ GNUTLS_MAC_AEAD, "(DTLS1.2)-(ECDHE-RSA)-(AES-128-GCM)");
+ run("dtls1.2-aes256-ecdhe",
+ "NONE:+VERS-DTLS1.2:+COMP-NULL:+AES-256-GCM:+AEAD:+ECDHE-RSA:+SIGN-ALL:%COMPAT",
+ GNUTLS_DTLS1_2, GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_ECDHE_RSA,
+ GNUTLS_MAC_AEAD, "(DTLS1.2)-(ECDHE-RSA)-(AES-256-GCM)");
+ run("dtls1.2-aes128-rsa",
+ "NONE:+VERS-DTLS1.2:+COMP-NULL:+AES-128-GCM:+AEAD:+RSA:+SIGN-ALL:%COMPAT",
+ GNUTLS_DTLS1_2, GNUTLS_CIPHER_AES_128_GCM, GNUTLS_KX_RSA,
+ GNUTLS_MAC_AEAD, "(DTLS1.2)-(RSA)-(AES-128-GCM)");
+ run("dtls1.2-aes256-rsa",
+ "NONE:+VERS-DTLS1.2:+COMP-NULL:+AES-256-GCM:+AEAD:+RSA:+SIGN-ALL:%COMPAT",
+ GNUTLS_DTLS1_2, GNUTLS_CIPHER_AES_256_GCM, GNUTLS_KX_RSA,
+ GNUTLS_MAC_AEAD, "(DTLS1.2)-(RSA)-(AES-256-GCM)");
}
#endif /* _WIN32 */
diff --git a/tests/openssl.c b/tests/openssl.c
index c5a3d8ddf8..604d58d002 100644
--- a/tests/openssl.c
+++ b/tests/openssl.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
diff --git a/tests/parse_ca.c b/tests/parse_ca.c
index 5259e92e89..ff8cb63509 100644
--- a/tests/parse_ca.c
+++ b/tests/parse_ca.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -58,7 +58,7 @@ void doit(void)
{
int rc;
gnutls_certificate_credentials_t cred;
- gnutls_datum_t ca = { (unsigned char *) castr, sizeof(castr) };
+ gnutls_datum_t ca = { (unsigned char *)castr, sizeof(castr) };
global_init();
@@ -71,7 +71,7 @@ void doit(void)
if (rc != 2)
fail("import ca failed: %d\n", rc);
- ca.data = (unsigned char *) "";
+ ca.data = (unsigned char *)"";
ca.size = 0;
rc = gnutls_certificate_set_x509_trust_mem(cred, &ca,
diff --git a/tests/pathbuf.c b/tests/pathbuf.c
index f308ac090a..240818c78a 100644
--- a/tests/pathbuf.c
+++ b/tests/pathbuf.c
@@ -29,8 +29,7 @@
static char long_path[GNUTLS_PATH_MAX + 2];
-void
-doit(void)
+void doit(void)
{
struct gnutls_pathbuf_st pathbuf;
int i;
@@ -58,9 +57,12 @@ doit(void)
ret = _gnutls_pathbuf_append(&pathbuf, "cert.pem");
assert(ret == 0);
- assert(memcmp(pathbuf.ptr, long_path, GNUTLS_PATH_MAX + i) == 0);
- assert(strcmp(&pathbuf.ptr[GNUTLS_PATH_MAX + i], "/cert.pem") == 0);
- assert(pathbuf.len == GNUTLS_PATH_MAX + i + sizeof("/cert.pem") - 1);
+ assert(memcmp(pathbuf.ptr, long_path, GNUTLS_PATH_MAX + i) ==
+ 0);
+ assert(strcmp(&pathbuf.ptr[GNUTLS_PATH_MAX + i], "/cert.pem") ==
+ 0);
+ assert(pathbuf.len ==
+ GNUTLS_PATH_MAX + i + sizeof("/cert.pem") - 1);
_gnutls_pathbuf_deinit(&pathbuf);
}
}
diff --git a/tests/pcert-list.c b/tests/pcert-list.c
index b22f05dff5..66244a8891 100644
--- a/tests/pcert-list.c
+++ b/tests/pcert-list.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -63,193 +63,191 @@
"-----END CERTIFICATE-----\n"
static unsigned char server_cert_pem[] =
-CERT0
-"-----BEGIN CERTIFICATE-----\n"
-"MIIEFDCCAnygAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0x\n"
-"MCAXDTE2MDIxODEzNTQwMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0yMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAu1/IharA+97QfzDj\n"
-"UXEBl9TAFqHkN9B5erj1yhMlwPAakreStR8VvuCx46TA3gP7sbUYU811T+2D5/GU\n"
-"u7YuMWsFeSmGWvbxa/tKTpXoEM0bNV+rIbxAcfgtxbARZDocv8gxfG/70vc2dSDh\n"
-"KgZCoMQyO6qGLRdsoPAf+De7YD8sKS7Q3d3Xnfyv4AVnDkbAVFsZhu4lQFuWXyfG\n"
-"Sl95TT94wLDLdf/Gf/F0nNsv6+D6yb15afhJKdqo6PH19gsyE0U3zj6c/7abha2W\n"
-"fvVe6hVbaW1HLDZdHZnjlJHamNFdrOHI5Xi+SJO7/3MWvdTzdMVFBDfS5o7TvYyS\n"
-"pu6iTmVeJvJ1OpXV7Lw1M2dSTW9RJLzUF3fXYOsuh32qMel9IzhnVh8Veyl0I0WL\n"
-"hThmkF73mGWcVq4lMPXwEnwYJtRLeH5HWvG3rgmb7m827XMNnqKE0NOkPH63OUqJ\n"
-"0h4b6PBb6wiOgnsC3yZIf0KgB0gToySvmD6MyJsmbN9rQit1AgMBAAGjeTB3MA8G\n"
-"A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
-"AwcEADAdBgNVHQ4EFgQUUZGvUEIirQAeYHn21QGyCEyO/P8wHwYDVR0jBBgwFoAU\n"
-"v9x1k1GrVS0yXKvMzD7k/zInm9gwDQYJKoZIhvcNAQELBQADggGBAIwUNzAo7Efm\n"
-"X8dVGz6OEsfZ/RPIeYxZ5cmqWwcZ4oLBv55xGJNG+nIcgLMA2L6ybtFiK2nKtqy4\n"
-"hMv/P6qvjX5vVQGVgLclvMkDkmXWVdqkTYDX7cSe/Bv6qIS2KBaVo87r2DIWN8Zu\n"
-"J3w0U3RcD6ilXVmqvARLeKWBPrCep0DJvg/BEAFSjCgHImrpZdzm6NuUr1eYCfgN\n"
-"HPwUj5Ivyy9ioPRXGzzHQH6T1p/xIRbuhqTGRUin3MqGQlFseBJ2qXPf6uQmCaWZ\n"
-"tFp4oWLJThqVmlvHViPDy235roYSKkJXH4qxjbhuv0pgUZOzmSsG7YA/oYNGDm6I\n"
-"bEvids1r45PjYDHctB4QLhXNY3SJVgMog1KuVCK6JQL8F8XP5Sup1qW4ed/WvXwe\n"
-"PBTOWbE/ENnxF2/nQLwnr80cgVx8rAE5sxubNNQVHu/6NonPzGUhTHXmGleuXPbb\n"
-"Mjv4x9s3QftWUVJb7b8GUt5bMAthqo7Y47Jed1kKIt2PAm0SNBMYrw==\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIEFDCCAnygAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCAXDTE2MDIxODEzNTQwMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0xMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0QG/LnrMV5vsE3G7\n"
-"mGVYr33PFQ/WojwKg1C8GGH9aaIn+VMuBS2d1/mwtM9axoje1uQzwKp/hPT+N3Z3\n"
-"qmFWeX8somDwowNDWN3skST4ob/M4aSlfP6OhNeIfBNvPTz3GtsbOtN5TkOX7Nf2\n"
-"+mfFm09xMHQ3z4yyGNmKG/oxGKY2WDe93hp0rlIZ6ihMPcsCHwWLfja3SAT4AcXs\n"
-"TFrTxEnaTYuVxcRcoW7lEDtcCyGbPfszo/rEQfJxwxRF46Yoz6rrCSkXOzLhQa4v\n"
-"PPsZJ6ltNqkCtSrnhcCl3SC9JqdI4e7lGsnDylq4evi8RtOYknVOqDwv0q/9DI2+\n"
-"rhFUy4I0Ah9H2T7dC01KIOjGiHyThCgkt2Nee/AXFflpN2Ws7/SGALdx6Vy3OkVo\n"
-"NkHYxlKKn/06Yp8XlNPR64EqxeJqPW9Pf742EJUCOeavu5wPWJtLQr03JyKWoeZf\n"
-"IYT/HwZUJveqEBU1EKeZRSvrRwHnmzQJuxyUhj/2C92QF5edAgMBAAGjeTB3MA8G\n"
-"A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
-"AwcEADAdBgNVHQ4EFgQUv9x1k1GrVS0yXKvMzD7k/zInm9gwHwYDVR0jBBgwFoAU\n"
-"2iUEUyXy7fPzZtc8ktanTiDzjuUwDQYJKoZIhvcNAQELBQADggGBAC9X5og786Il\n"
-"CUKj4FpZrqgfN+Cwf1EebW1tX1iKYASGo8t7JS0Btt3ycVpx04JSJy5WM9cQNFU0\n"
-"5vimaG0qAsWhHXljhmM0mr4ruW1Jw6KAuqw0V/JJ0oYRZaYnvi6UsoJJjq8YcatW\n"
-"5ixtKr928933kYD71sMZBN7Um7ictDq0M2oaW4k0/Yt4Uqb9fv20E4EHKEpETMUR\n"
-"FviTIjONdVsAVj4lxuS3u1Nt7B5ayYCkgFabME28ud6EazelwZWZwBRGiuPr6634\n"
-"f8lZtnscRVU5oQb6DjkyD/SM+1ue6/wpNapoH7BimnvCcRmLvsG34vlyt7QC0BRO\n"
-"cRmEPZCq8hIUIuD0x836FRNUSjjMVi2Dj+QjeNolpKgUjRF/h2yKmDRB2A7WAV5g\n"
-"It7RRjMnkm3pvKj2d7/qb5OaccO4uoAq333PRAX0RLYT5yosFGq+RN8+WCnzuGsB\n"
-"hCe33/7HCC6mO0/vsrQuRvECvAasznN9mF3t+ZXMvcsqTcOq4Iag1A==\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIID8zCCAlugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCAXDTE2MDIxODEzNTQwMFoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0wMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0MYBHVUjwlQH7Mvn\n"
-"4viHyEONr+7M0+fLntPITQHihE8gxU3LpqAUpl7felAA4k0sJTaXvnZA+E1DCcIq\n"
-"zksAhK3Qr8zZeCKNM41U1klcCh2+3IoGjg+CcQisb8gtiiXybH3qXYFgi3ww2YFG\n"
-"cIjJAciZj8qLfwMhMcBPMx4IDHR7gdWH9V0xUZZiBkk7x3PBIWCr2FKD0877yR9t\n"
-"wjlQ4Fbw5NW9j7WaUgeY2LV7iTtBH0bZ7D/04KsYdct6lKhUkzSUBg/bAUWCFp1j\n"
-"ouFhzyqMf3jFDrcejxPKlRk15e9SkQYD/7dTpudXwbL9ugZfoP1xDRgslEyfyU/Q\n"
-"DEyG5mlXjVBRiGvL+dfxRNw2E5xLpESt2rlMiBhe1cv8+XL5D6z/WBwDfBNUzoQR\n"
-"X15YHK2NgNNHQ8u8GLtUbp3ZXaeKgj8fdR3UoRTqWgpy2vjVM3vN1xXFVTo13MJ8\n"
-"isLXH/QNUR4tnOytDp1HyK2ybHkfXB1a0RMBwM5XDVD2LhPFAgMBAAGjWDBWMA8G\n"
-"A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
-"AwcGADAdBgNVHQ4EFgQU2iUEUyXy7fPzZtc8ktanTiDzjuUwDQYJKoZIhvcNAQEL\n"
-"BQADggGBAJrJujtXifCeySYWbnJlraec63Zgqfv4SZIEdLt5GFLdpjk2WCxhFrN3\n"
-"n6JZgI2aUWin2OL1VA1hfddAPUSHOCV8nP/Vu1f/BEaeQjEVS2AOF7T+eQSTNQtN\n"
-"MkTTi0UKKXZjIIXiW4YXDs2b22JIOXkL9rFyrvN4vvbIp/jwLWx5UTHFtsktMkai\n"
-"MteJBobd69ra7kdX43EkUKrgSDNpMQn10y3w4ziPDsLZ9sWaRxESbXWqDn4A7J9t\n"
-"prfxut+s/3rsZgpt4s2FsswymfuW8DhzH1EjfV1Tb32blpgz/40sIRbU158Wh1UH\n"
-"/DGQ6RVX0RcRt7ce7QCYTROD/yHYPVucqLfRpVNJ3oujGYaMgnSSuxEOsfwx5u+P\n"
-"8USIxyQNR9cX/gQswzs3Ouj1rXBnjiSS1YXWZXvqHsUamJ8O7qpnqkL2Ti64O0HA\n"
-"wdTtAcDO0BTHvanKZojLZm8nStvTvFpSVh7z+8Fu0A5zAcHsDj4vLABsdPDsXUTr\n"
-"kb2G3Yy/UA==\n"
-"-----END CERTIFICATE-----\n";
+ CERT0
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEFDCCAnygAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0x\n"
+ "MCAXDTE2MDIxODEzNTQwMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0yMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAu1/IharA+97QfzDj\n"
+ "UXEBl9TAFqHkN9B5erj1yhMlwPAakreStR8VvuCx46TA3gP7sbUYU811T+2D5/GU\n"
+ "u7YuMWsFeSmGWvbxa/tKTpXoEM0bNV+rIbxAcfgtxbARZDocv8gxfG/70vc2dSDh\n"
+ "KgZCoMQyO6qGLRdsoPAf+De7YD8sKS7Q3d3Xnfyv4AVnDkbAVFsZhu4lQFuWXyfG\n"
+ "Sl95TT94wLDLdf/Gf/F0nNsv6+D6yb15afhJKdqo6PH19gsyE0U3zj6c/7abha2W\n"
+ "fvVe6hVbaW1HLDZdHZnjlJHamNFdrOHI5Xi+SJO7/3MWvdTzdMVFBDfS5o7TvYyS\n"
+ "pu6iTmVeJvJ1OpXV7Lw1M2dSTW9RJLzUF3fXYOsuh32qMel9IzhnVh8Veyl0I0WL\n"
+ "hThmkF73mGWcVq4lMPXwEnwYJtRLeH5HWvG3rgmb7m827XMNnqKE0NOkPH63OUqJ\n"
+ "0h4b6PBb6wiOgnsC3yZIf0KgB0gToySvmD6MyJsmbN9rQit1AgMBAAGjeTB3MA8G\n"
+ "A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
+ "AwcEADAdBgNVHQ4EFgQUUZGvUEIirQAeYHn21QGyCEyO/P8wHwYDVR0jBBgwFoAU\n"
+ "v9x1k1GrVS0yXKvMzD7k/zInm9gwDQYJKoZIhvcNAQELBQADggGBAIwUNzAo7Efm\n"
+ "X8dVGz6OEsfZ/RPIeYxZ5cmqWwcZ4oLBv55xGJNG+nIcgLMA2L6ybtFiK2nKtqy4\n"
+ "hMv/P6qvjX5vVQGVgLclvMkDkmXWVdqkTYDX7cSe/Bv6qIS2KBaVo87r2DIWN8Zu\n"
+ "J3w0U3RcD6ilXVmqvARLeKWBPrCep0DJvg/BEAFSjCgHImrpZdzm6NuUr1eYCfgN\n"
+ "HPwUj5Ivyy9ioPRXGzzHQH6T1p/xIRbuhqTGRUin3MqGQlFseBJ2qXPf6uQmCaWZ\n"
+ "tFp4oWLJThqVmlvHViPDy235roYSKkJXH4qxjbhuv0pgUZOzmSsG7YA/oYNGDm6I\n"
+ "bEvids1r45PjYDHctB4QLhXNY3SJVgMog1KuVCK6JQL8F8XP5Sup1qW4ed/WvXwe\n"
+ "PBTOWbE/ENnxF2/nQLwnr80cgVx8rAE5sxubNNQVHu/6NonPzGUhTHXmGleuXPbb\n"
+ "Mjv4x9s3QftWUVJb7b8GUt5bMAthqo7Y47Jed1kKIt2PAm0SNBMYrw==\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEFDCCAnygAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCAXDTE2MDIxODEzNTQwMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0xMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0QG/LnrMV5vsE3G7\n"
+ "mGVYr33PFQ/WojwKg1C8GGH9aaIn+VMuBS2d1/mwtM9axoje1uQzwKp/hPT+N3Z3\n"
+ "qmFWeX8somDwowNDWN3skST4ob/M4aSlfP6OhNeIfBNvPTz3GtsbOtN5TkOX7Nf2\n"
+ "+mfFm09xMHQ3z4yyGNmKG/oxGKY2WDe93hp0rlIZ6ihMPcsCHwWLfja3SAT4AcXs\n"
+ "TFrTxEnaTYuVxcRcoW7lEDtcCyGbPfszo/rEQfJxwxRF46Yoz6rrCSkXOzLhQa4v\n"
+ "PPsZJ6ltNqkCtSrnhcCl3SC9JqdI4e7lGsnDylq4evi8RtOYknVOqDwv0q/9DI2+\n"
+ "rhFUy4I0Ah9H2T7dC01KIOjGiHyThCgkt2Nee/AXFflpN2Ws7/SGALdx6Vy3OkVo\n"
+ "NkHYxlKKn/06Yp8XlNPR64EqxeJqPW9Pf742EJUCOeavu5wPWJtLQr03JyKWoeZf\n"
+ "IYT/HwZUJveqEBU1EKeZRSvrRwHnmzQJuxyUhj/2C92QF5edAgMBAAGjeTB3MA8G\n"
+ "A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
+ "AwcEADAdBgNVHQ4EFgQUv9x1k1GrVS0yXKvMzD7k/zInm9gwHwYDVR0jBBgwFoAU\n"
+ "2iUEUyXy7fPzZtc8ktanTiDzjuUwDQYJKoZIhvcNAQELBQADggGBAC9X5og786Il\n"
+ "CUKj4FpZrqgfN+Cwf1EebW1tX1iKYASGo8t7JS0Btt3ycVpx04JSJy5WM9cQNFU0\n"
+ "5vimaG0qAsWhHXljhmM0mr4ruW1Jw6KAuqw0V/JJ0oYRZaYnvi6UsoJJjq8YcatW\n"
+ "5ixtKr928933kYD71sMZBN7Um7ictDq0M2oaW4k0/Yt4Uqb9fv20E4EHKEpETMUR\n"
+ "FviTIjONdVsAVj4lxuS3u1Nt7B5ayYCkgFabME28ud6EazelwZWZwBRGiuPr6634\n"
+ "f8lZtnscRVU5oQb6DjkyD/SM+1ue6/wpNapoH7BimnvCcRmLvsG34vlyt7QC0BRO\n"
+ "cRmEPZCq8hIUIuD0x836FRNUSjjMVi2Dj+QjeNolpKgUjRF/h2yKmDRB2A7WAV5g\n"
+ "It7RRjMnkm3pvKj2d7/qb5OaccO4uoAq333PRAX0RLYT5yosFGq+RN8+WCnzuGsB\n"
+ "hCe33/7HCC6mO0/vsrQuRvECvAasznN9mF3t+ZXMvcsqTcOq4Iag1A==\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIID8zCCAlugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCAXDTE2MDIxODEzNTQwMFoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0wMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0MYBHVUjwlQH7Mvn\n"
+ "4viHyEONr+7M0+fLntPITQHihE8gxU3LpqAUpl7felAA4k0sJTaXvnZA+E1DCcIq\n"
+ "zksAhK3Qr8zZeCKNM41U1klcCh2+3IoGjg+CcQisb8gtiiXybH3qXYFgi3ww2YFG\n"
+ "cIjJAciZj8qLfwMhMcBPMx4IDHR7gdWH9V0xUZZiBkk7x3PBIWCr2FKD0877yR9t\n"
+ "wjlQ4Fbw5NW9j7WaUgeY2LV7iTtBH0bZ7D/04KsYdct6lKhUkzSUBg/bAUWCFp1j\n"
+ "ouFhzyqMf3jFDrcejxPKlRk15e9SkQYD/7dTpudXwbL9ugZfoP1xDRgslEyfyU/Q\n"
+ "DEyG5mlXjVBRiGvL+dfxRNw2E5xLpESt2rlMiBhe1cv8+XL5D6z/WBwDfBNUzoQR\n"
+ "X15YHK2NgNNHQ8u8GLtUbp3ZXaeKgj8fdR3UoRTqWgpy2vjVM3vN1xXFVTo13MJ8\n"
+ "isLXH/QNUR4tnOytDp1HyK2ybHkfXB1a0RMBwM5XDVD2LhPFAgMBAAGjWDBWMA8G\n"
+ "A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
+ "AwcGADAdBgNVHQ4EFgQU2iUEUyXy7fPzZtc8ktanTiDzjuUwDQYJKoZIhvcNAQEL\n"
+ "BQADggGBAJrJujtXifCeySYWbnJlraec63Zgqfv4SZIEdLt5GFLdpjk2WCxhFrN3\n"
+ "n6JZgI2aUWin2OL1VA1hfddAPUSHOCV8nP/Vu1f/BEaeQjEVS2AOF7T+eQSTNQtN\n"
+ "MkTTi0UKKXZjIIXiW4YXDs2b22JIOXkL9rFyrvN4vvbIp/jwLWx5UTHFtsktMkai\n"
+ "MteJBobd69ra7kdX43EkUKrgSDNpMQn10y3w4ziPDsLZ9sWaRxESbXWqDn4A7J9t\n"
+ "prfxut+s/3rsZgpt4s2FsswymfuW8DhzH1EjfV1Tb32blpgz/40sIRbU158Wh1UH\n"
+ "/DGQ6RVX0RcRt7ce7QCYTROD/yHYPVucqLfRpVNJ3oujGYaMgnSSuxEOsfwx5u+P\n"
+ "8USIxyQNR9cX/gQswzs3Ouj1rXBnjiSS1YXWZXvqHsUamJ8O7qpnqkL2Ti64O0HA\n"
+ "wdTtAcDO0BTHvanKZojLZm8nStvTvFpSVh7z+8Fu0A5zAcHsDj4vLABsdPDsXUTr\n"
+ "kb2G3Yy/UA==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char unsorted_server_cert_pem[] =
-CERT0
-"-----BEGIN CERTIFICATE-----\n"
-"MIIEFDCCAnygAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCAXDTE2MDIxODEzNTQwMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0xMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0QG/LnrMV5vsE3G7\n"
-"mGVYr33PFQ/WojwKg1C8GGH9aaIn+VMuBS2d1/mwtM9axoje1uQzwKp/hPT+N3Z3\n"
-"qmFWeX8somDwowNDWN3skST4ob/M4aSlfP6OhNeIfBNvPTz3GtsbOtN5TkOX7Nf2\n"
-"+mfFm09xMHQ3z4yyGNmKG/oxGKY2WDe93hp0rlIZ6ihMPcsCHwWLfja3SAT4AcXs\n"
-"TFrTxEnaTYuVxcRcoW7lEDtcCyGbPfszo/rEQfJxwxRF46Yoz6rrCSkXOzLhQa4v\n"
-"PPsZJ6ltNqkCtSrnhcCl3SC9JqdI4e7lGsnDylq4evi8RtOYknVOqDwv0q/9DI2+\n"
-"rhFUy4I0Ah9H2T7dC01KIOjGiHyThCgkt2Nee/AXFflpN2Ws7/SGALdx6Vy3OkVo\n"
-"NkHYxlKKn/06Yp8XlNPR64EqxeJqPW9Pf742EJUCOeavu5wPWJtLQr03JyKWoeZf\n"
-"IYT/HwZUJveqEBU1EKeZRSvrRwHnmzQJuxyUhj/2C92QF5edAgMBAAGjeTB3MA8G\n"
-"A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
-"AwcEADAdBgNVHQ4EFgQUv9x1k1GrVS0yXKvMzD7k/zInm9gwHwYDVR0jBBgwFoAU\n"
-"2iUEUyXy7fPzZtc8ktanTiDzjuUwDQYJKoZIhvcNAQELBQADggGBAC9X5og786Il\n"
-"CUKj4FpZrqgfN+Cwf1EebW1tX1iKYASGo8t7JS0Btt3ycVpx04JSJy5WM9cQNFU0\n"
-"5vimaG0qAsWhHXljhmM0mr4ruW1Jw6KAuqw0V/JJ0oYRZaYnvi6UsoJJjq8YcatW\n"
-"5ixtKr928933kYD71sMZBN7Um7ictDq0M2oaW4k0/Yt4Uqb9fv20E4EHKEpETMUR\n"
-"FviTIjONdVsAVj4lxuS3u1Nt7B5ayYCkgFabME28ud6EazelwZWZwBRGiuPr6634\n"
-"f8lZtnscRVU5oQb6DjkyD/SM+1ue6/wpNapoH7BimnvCcRmLvsG34vlyt7QC0BRO\n"
-"cRmEPZCq8hIUIuD0x836FRNUSjjMVi2Dj+QjeNolpKgUjRF/h2yKmDRB2A7WAV5g\n"
-"It7RRjMnkm3pvKj2d7/qb5OaccO4uoAq333PRAX0RLYT5yosFGq+RN8+WCnzuGsB\n"
-"hCe33/7HCC6mO0/vsrQuRvECvAasznN9mF3t+ZXMvcsqTcOq4Iag1A==\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIID8zCCAlugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCAXDTE2MDIxODEzNTQwMFoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0wMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0MYBHVUjwlQH7Mvn\n"
-"4viHyEONr+7M0+fLntPITQHihE8gxU3LpqAUpl7felAA4k0sJTaXvnZA+E1DCcIq\n"
-"zksAhK3Qr8zZeCKNM41U1klcCh2+3IoGjg+CcQisb8gtiiXybH3qXYFgi3ww2YFG\n"
-"cIjJAciZj8qLfwMhMcBPMx4IDHR7gdWH9V0xUZZiBkk7x3PBIWCr2FKD0877yR9t\n"
-"wjlQ4Fbw5NW9j7WaUgeY2LV7iTtBH0bZ7D/04KsYdct6lKhUkzSUBg/bAUWCFp1j\n"
-"ouFhzyqMf3jFDrcejxPKlRk15e9SkQYD/7dTpudXwbL9ugZfoP1xDRgslEyfyU/Q\n"
-"DEyG5mlXjVBRiGvL+dfxRNw2E5xLpESt2rlMiBhe1cv8+XL5D6z/WBwDfBNUzoQR\n"
-"X15YHK2NgNNHQ8u8GLtUbp3ZXaeKgj8fdR3UoRTqWgpy2vjVM3vN1xXFVTo13MJ8\n"
-"isLXH/QNUR4tnOytDp1HyK2ybHkfXB1a0RMBwM5XDVD2LhPFAgMBAAGjWDBWMA8G\n"
-"A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
-"AwcGADAdBgNVHQ4EFgQU2iUEUyXy7fPzZtc8ktanTiDzjuUwDQYJKoZIhvcNAQEL\n"
-"BQADggGBAJrJujtXifCeySYWbnJlraec63Zgqfv4SZIEdLt5GFLdpjk2WCxhFrN3\n"
-"n6JZgI2aUWin2OL1VA1hfddAPUSHOCV8nP/Vu1f/BEaeQjEVS2AOF7T+eQSTNQtN\n"
-"MkTTi0UKKXZjIIXiW4YXDs2b22JIOXkL9rFyrvN4vvbIp/jwLWx5UTHFtsktMkai\n"
-"MteJBobd69ra7kdX43EkUKrgSDNpMQn10y3w4ziPDsLZ9sWaRxESbXWqDn4A7J9t\n"
-"prfxut+s/3rsZgpt4s2FsswymfuW8DhzH1EjfV1Tb32blpgz/40sIRbU158Wh1UH\n"
-"/DGQ6RVX0RcRt7ce7QCYTROD/yHYPVucqLfRpVNJ3oujGYaMgnSSuxEOsfwx5u+P\n"
-"8USIxyQNR9cX/gQswzs3Ouj1rXBnjiSS1YXWZXvqHsUamJ8O7qpnqkL2Ti64O0HA\n"
-"wdTtAcDO0BTHvanKZojLZm8nStvTvFpSVh7z+8Fu0A5zAcHsDj4vLABsdPDsXUTr\n"
-"kb2G3Yy/UA==\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIEFDCCAnygAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0x\n"
-"MCAXDTE2MDIxODEzNTQwMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0yMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAu1/IharA+97QfzDj\n"
-"UXEBl9TAFqHkN9B5erj1yhMlwPAakreStR8VvuCx46TA3gP7sbUYU811T+2D5/GU\n"
-"u7YuMWsFeSmGWvbxa/tKTpXoEM0bNV+rIbxAcfgtxbARZDocv8gxfG/70vc2dSDh\n"
-"KgZCoMQyO6qGLRdsoPAf+De7YD8sKS7Q3d3Xnfyv4AVnDkbAVFsZhu4lQFuWXyfG\n"
-"Sl95TT94wLDLdf/Gf/F0nNsv6+D6yb15afhJKdqo6PH19gsyE0U3zj6c/7abha2W\n"
-"fvVe6hVbaW1HLDZdHZnjlJHamNFdrOHI5Xi+SJO7/3MWvdTzdMVFBDfS5o7TvYyS\n"
-"pu6iTmVeJvJ1OpXV7Lw1M2dSTW9RJLzUF3fXYOsuh32qMel9IzhnVh8Veyl0I0WL\n"
-"hThmkF73mGWcVq4lMPXwEnwYJtRLeH5HWvG3rgmb7m827XMNnqKE0NOkPH63OUqJ\n"
-"0h4b6PBb6wiOgnsC3yZIf0KgB0gToySvmD6MyJsmbN9rQit1AgMBAAGjeTB3MA8G\n"
-"A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
-"AwcEADAdBgNVHQ4EFgQUUZGvUEIirQAeYHn21QGyCEyO/P8wHwYDVR0jBBgwFoAU\n"
-"v9x1k1GrVS0yXKvMzD7k/zInm9gwDQYJKoZIhvcNAQELBQADggGBAIwUNzAo7Efm\n"
-"X8dVGz6OEsfZ/RPIeYxZ5cmqWwcZ4oLBv55xGJNG+nIcgLMA2L6ybtFiK2nKtqy4\n"
-"hMv/P6qvjX5vVQGVgLclvMkDkmXWVdqkTYDX7cSe/Bv6qIS2KBaVo87r2DIWN8Zu\n"
-"J3w0U3RcD6ilXVmqvARLeKWBPrCep0DJvg/BEAFSjCgHImrpZdzm6NuUr1eYCfgN\n"
-"HPwUj5Ivyy9ioPRXGzzHQH6T1p/xIRbuhqTGRUin3MqGQlFseBJ2qXPf6uQmCaWZ\n"
-"tFp4oWLJThqVmlvHViPDy235roYSKkJXH4qxjbhuv0pgUZOzmSsG7YA/oYNGDm6I\n"
-"bEvids1r45PjYDHctB4QLhXNY3SJVgMog1KuVCK6JQL8F8XP5Sup1qW4ed/WvXwe\n"
-"PBTOWbE/ENnxF2/nQLwnr80cgVx8rAE5sxubNNQVHu/6NonPzGUhTHXmGleuXPbb\n"
-"Mjv4x9s3QftWUVJb7b8GUt5bMAthqo7Y47Jed1kKIt2PAm0SNBMYrw==\n"
-"-----END CERTIFICATE-----\n";
+ CERT0
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEFDCCAnygAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCAXDTE2MDIxODEzNTQwMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0xMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0QG/LnrMV5vsE3G7\n"
+ "mGVYr33PFQ/WojwKg1C8GGH9aaIn+VMuBS2d1/mwtM9axoje1uQzwKp/hPT+N3Z3\n"
+ "qmFWeX8somDwowNDWN3skST4ob/M4aSlfP6OhNeIfBNvPTz3GtsbOtN5TkOX7Nf2\n"
+ "+mfFm09xMHQ3z4yyGNmKG/oxGKY2WDe93hp0rlIZ6ihMPcsCHwWLfja3SAT4AcXs\n"
+ "TFrTxEnaTYuVxcRcoW7lEDtcCyGbPfszo/rEQfJxwxRF46Yoz6rrCSkXOzLhQa4v\n"
+ "PPsZJ6ltNqkCtSrnhcCl3SC9JqdI4e7lGsnDylq4evi8RtOYknVOqDwv0q/9DI2+\n"
+ "rhFUy4I0Ah9H2T7dC01KIOjGiHyThCgkt2Nee/AXFflpN2Ws7/SGALdx6Vy3OkVo\n"
+ "NkHYxlKKn/06Yp8XlNPR64EqxeJqPW9Pf742EJUCOeavu5wPWJtLQr03JyKWoeZf\n"
+ "IYT/HwZUJveqEBU1EKeZRSvrRwHnmzQJuxyUhj/2C92QF5edAgMBAAGjeTB3MA8G\n"
+ "A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
+ "AwcEADAdBgNVHQ4EFgQUv9x1k1GrVS0yXKvMzD7k/zInm9gwHwYDVR0jBBgwFoAU\n"
+ "2iUEUyXy7fPzZtc8ktanTiDzjuUwDQYJKoZIhvcNAQELBQADggGBAC9X5og786Il\n"
+ "CUKj4FpZrqgfN+Cwf1EebW1tX1iKYASGo8t7JS0Btt3ycVpx04JSJy5WM9cQNFU0\n"
+ "5vimaG0qAsWhHXljhmM0mr4ruW1Jw6KAuqw0V/JJ0oYRZaYnvi6UsoJJjq8YcatW\n"
+ "5ixtKr928933kYD71sMZBN7Um7ictDq0M2oaW4k0/Yt4Uqb9fv20E4EHKEpETMUR\n"
+ "FviTIjONdVsAVj4lxuS3u1Nt7B5ayYCkgFabME28ud6EazelwZWZwBRGiuPr6634\n"
+ "f8lZtnscRVU5oQb6DjkyD/SM+1ue6/wpNapoH7BimnvCcRmLvsG34vlyt7QC0BRO\n"
+ "cRmEPZCq8hIUIuD0x836FRNUSjjMVi2Dj+QjeNolpKgUjRF/h2yKmDRB2A7WAV5g\n"
+ "It7RRjMnkm3pvKj2d7/qb5OaccO4uoAq333PRAX0RLYT5yosFGq+RN8+WCnzuGsB\n"
+ "hCe33/7HCC6mO0/vsrQuRvECvAasznN9mF3t+ZXMvcsqTcOq4Iag1A==\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIID8zCCAlugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCAXDTE2MDIxODEzNTQwMFoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0wMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0MYBHVUjwlQH7Mvn\n"
+ "4viHyEONr+7M0+fLntPITQHihE8gxU3LpqAUpl7felAA4k0sJTaXvnZA+E1DCcIq\n"
+ "zksAhK3Qr8zZeCKNM41U1klcCh2+3IoGjg+CcQisb8gtiiXybH3qXYFgi3ww2YFG\n"
+ "cIjJAciZj8qLfwMhMcBPMx4IDHR7gdWH9V0xUZZiBkk7x3PBIWCr2FKD0877yR9t\n"
+ "wjlQ4Fbw5NW9j7WaUgeY2LV7iTtBH0bZ7D/04KsYdct6lKhUkzSUBg/bAUWCFp1j\n"
+ "ouFhzyqMf3jFDrcejxPKlRk15e9SkQYD/7dTpudXwbL9ugZfoP1xDRgslEyfyU/Q\n"
+ "DEyG5mlXjVBRiGvL+dfxRNw2E5xLpESt2rlMiBhe1cv8+XL5D6z/WBwDfBNUzoQR\n"
+ "X15YHK2NgNNHQ8u8GLtUbp3ZXaeKgj8fdR3UoRTqWgpy2vjVM3vN1xXFVTo13MJ8\n"
+ "isLXH/QNUR4tnOytDp1HyK2ybHkfXB1a0RMBwM5XDVD2LhPFAgMBAAGjWDBWMA8G\n"
+ "A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
+ "AwcGADAdBgNVHQ4EFgQU2iUEUyXy7fPzZtc8ktanTiDzjuUwDQYJKoZIhvcNAQEL\n"
+ "BQADggGBAJrJujtXifCeySYWbnJlraec63Zgqfv4SZIEdLt5GFLdpjk2WCxhFrN3\n"
+ "n6JZgI2aUWin2OL1VA1hfddAPUSHOCV8nP/Vu1f/BEaeQjEVS2AOF7T+eQSTNQtN\n"
+ "MkTTi0UKKXZjIIXiW4YXDs2b22JIOXkL9rFyrvN4vvbIp/jwLWx5UTHFtsktMkai\n"
+ "MteJBobd69ra7kdX43EkUKrgSDNpMQn10y3w4ziPDsLZ9sWaRxESbXWqDn4A7J9t\n"
+ "prfxut+s/3rsZgpt4s2FsswymfuW8DhzH1EjfV1Tb32blpgz/40sIRbU158Wh1UH\n"
+ "/DGQ6RVX0RcRt7ce7QCYTROD/yHYPVucqLfRpVNJ3oujGYaMgnSSuxEOsfwx5u+P\n"
+ "8USIxyQNR9cX/gQswzs3Ouj1rXBnjiSS1YXWZXvqHsUamJ8O7qpnqkL2Ti64O0HA\n"
+ "wdTtAcDO0BTHvanKZojLZm8nStvTvFpSVh7z+8Fu0A5zAcHsDj4vLABsdPDsXUTr\n"
+ "kb2G3Yy/UA==\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEFDCCAnygAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0x\n"
+ "MCAXDTE2MDIxODEzNTQwMVoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0yMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAu1/IharA+97QfzDj\n"
+ "UXEBl9TAFqHkN9B5erj1yhMlwPAakreStR8VvuCx46TA3gP7sbUYU811T+2D5/GU\n"
+ "u7YuMWsFeSmGWvbxa/tKTpXoEM0bNV+rIbxAcfgtxbARZDocv8gxfG/70vc2dSDh\n"
+ "KgZCoMQyO6qGLRdsoPAf+De7YD8sKS7Q3d3Xnfyv4AVnDkbAVFsZhu4lQFuWXyfG\n"
+ "Sl95TT94wLDLdf/Gf/F0nNsv6+D6yb15afhJKdqo6PH19gsyE0U3zj6c/7abha2W\n"
+ "fvVe6hVbaW1HLDZdHZnjlJHamNFdrOHI5Xi+SJO7/3MWvdTzdMVFBDfS5o7TvYyS\n"
+ "pu6iTmVeJvJ1OpXV7Lw1M2dSTW9RJLzUF3fXYOsuh32qMel9IzhnVh8Veyl0I0WL\n"
+ "hThmkF73mGWcVq4lMPXwEnwYJtRLeH5HWvG3rgmb7m827XMNnqKE0NOkPH63OUqJ\n"
+ "0h4b6PBb6wiOgnsC3yZIf0KgB0gToySvmD6MyJsmbN9rQit1AgMBAAGjeTB3MA8G\n"
+ "A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
+ "AwcEADAdBgNVHQ4EFgQUUZGvUEIirQAeYHn21QGyCEyO/P8wHwYDVR0jBBgwFoAU\n"
+ "v9x1k1GrVS0yXKvMzD7k/zInm9gwDQYJKoZIhvcNAQELBQADggGBAIwUNzAo7Efm\n"
+ "X8dVGz6OEsfZ/RPIeYxZ5cmqWwcZ4oLBv55xGJNG+nIcgLMA2L6ybtFiK2nKtqy4\n"
+ "hMv/P6qvjX5vVQGVgLclvMkDkmXWVdqkTYDX7cSe/Bv6qIS2KBaVo87r2DIWN8Zu\n"
+ "J3w0U3RcD6ilXVmqvARLeKWBPrCep0DJvg/BEAFSjCgHImrpZdzm6NuUr1eYCfgN\n"
+ "HPwUj5Ivyy9ioPRXGzzHQH6T1p/xIRbuhqTGRUin3MqGQlFseBJ2qXPf6uQmCaWZ\n"
+ "tFp4oWLJThqVmlvHViPDy235roYSKkJXH4qxjbhuv0pgUZOzmSsG7YA/oYNGDm6I\n"
+ "bEvids1r45PjYDHctB4QLhXNY3SJVgMog1KuVCK6JQL8F8XP5Sup1qW4ed/WvXwe\n"
+ "PBTOWbE/ENnxF2/nQLwnr80cgVx8rAE5sxubNNQVHu/6NonPzGUhTHXmGleuXPbb\n"
+ "Mjv4x9s3QftWUVJb7b8GUt5bMAthqo7Y47Jed1kKIt2PAm0SNBMYrw==\n"
+ "-----END CERTIFICATE-----\n";
const gnutls_datum_t unsorted_server_cert = { unsorted_server_cert_pem,
sizeof(unsorted_server_cert_pem)
};
const gnutls_datum_t single_server_cert = { server_cert_pem,
- sizeof(CERT0)-1
+ sizeof(CERT0) - 1
};
static unsigned char isolated_server_cert_pem[] =
-CERT0
-"-----BEGIN CERTIFICATE-----\n"
-"MIID8zCCAlugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCAXDTE2MDIxODEzNTQwMFoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
-"QS0wMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0MYBHVUjwlQH7Mvn\n"
-"4viHyEONr+7M0+fLntPITQHihE8gxU3LpqAUpl7felAA4k0sJTaXvnZA+E1DCcIq\n"
-"zksAhK3Qr8zZeCKNM41U1klcCh2+3IoGjg+CcQisb8gtiiXybH3qXYFgi3ww2YFG\n"
-"cIjJAciZj8qLfwMhMcBPMx4IDHR7gdWH9V0xUZZiBkk7x3PBIWCr2FKD0877yR9t\n"
-"wjlQ4Fbw5NW9j7WaUgeY2LV7iTtBH0bZ7D/04KsYdct6lKhUkzSUBg/bAUWCFp1j\n"
-"ouFhzyqMf3jFDrcejxPKlRk15e9SkQYD/7dTpudXwbL9ugZfoP1xDRgslEyfyU/Q\n"
-"DEyG5mlXjVBRiGvL+dfxRNw2E5xLpESt2rlMiBhe1cv8+XL5D6z/WBwDfBNUzoQR\n"
-"X15YHK2NgNNHQ8u8GLtUbp3ZXaeKgj8fdR3UoRTqWgpy2vjVM3vN1xXFVTo13MJ8\n"
-"isLXH/QNUR4tnOytDp1HyK2ybHkfXB1a0RMBwM5XDVD2LhPFAgMBAAGjWDBWMA8G\n"
-"A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
-"AwcGADAdBgNVHQ4EFgQU2iUEUyXy7fPzZtc8ktanTiDzjuUwDQYJKoZIhvcNAQEL\n"
-"BQADggGBAJrJujtXifCeySYWbnJlraec63Zgqfv4SZIEdLt5GFLdpjk2WCxhFrN3\n"
-"n6JZgI2aUWin2OL1VA1hfddAPUSHOCV8nP/Vu1f/BEaeQjEVS2AOF7T+eQSTNQtN\n"
-"MkTTi0UKKXZjIIXiW4YXDs2b22JIOXkL9rFyrvN4vvbIp/jwLWx5UTHFtsktMkai\n"
-"MteJBobd69ra7kdX43EkUKrgSDNpMQn10y3w4ziPDsLZ9sWaRxESbXWqDn4A7J9t\n"
-"prfxut+s/3rsZgpt4s2FsswymfuW8DhzH1EjfV1Tb32blpgz/40sIRbU158Wh1UH\n"
-"/DGQ6RVX0RcRt7ce7QCYTROD/yHYPVucqLfRpVNJ3oujGYaMgnSSuxEOsfwx5u+P\n"
-"8USIxyQNR9cX/gQswzs3Ouj1rXBnjiSS1YXWZXvqHsUamJ8O7qpnqkL2Ti64O0HA\n"
-"wdTtAcDO0BTHvanKZojLZm8nStvTvFpSVh7z+8Fu0A5zAcHsDj4vLABsdPDsXUTr\n"
-"kb2G3Yy/UA==\n"
-"-----END CERTIFICATE-----\n";
+ CERT0
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIID8zCCAlugAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCAXDTE2MDIxODEzNTQwMFoYDzk5OTkxMjMxMjM1OTU5WjAPMQ0wCwYDVQQDEwRD\n"
+ "QS0wMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA0MYBHVUjwlQH7Mvn\n"
+ "4viHyEONr+7M0+fLntPITQHihE8gxU3LpqAUpl7felAA4k0sJTaXvnZA+E1DCcIq\n"
+ "zksAhK3Qr8zZeCKNM41U1klcCh2+3IoGjg+CcQisb8gtiiXybH3qXYFgi3ww2YFG\n"
+ "cIjJAciZj8qLfwMhMcBPMx4IDHR7gdWH9V0xUZZiBkk7x3PBIWCr2FKD0877yR9t\n"
+ "wjlQ4Fbw5NW9j7WaUgeY2LV7iTtBH0bZ7D/04KsYdct6lKhUkzSUBg/bAUWCFp1j\n"
+ "ouFhzyqMf3jFDrcejxPKlRk15e9SkQYD/7dTpudXwbL9ugZfoP1xDRgslEyfyU/Q\n"
+ "DEyG5mlXjVBRiGvL+dfxRNw2E5xLpESt2rlMiBhe1cv8+XL5D6z/WBwDfBNUzoQR\n"
+ "X15YHK2NgNNHQ8u8GLtUbp3ZXaeKgj8fdR3UoRTqWgpy2vjVM3vN1xXFVTo13MJ8\n"
+ "isLXH/QNUR4tnOytDp1HyK2ybHkfXB1a0RMBwM5XDVD2LhPFAgMBAAGjWDBWMA8G\n"
+ "A1UdEwEB/wQFMAMBAf8wEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYDVR0PAQH/BAUD\n"
+ "AwcGADAdBgNVHQ4EFgQU2iUEUyXy7fPzZtc8ktanTiDzjuUwDQYJKoZIhvcNAQEL\n"
+ "BQADggGBAJrJujtXifCeySYWbnJlraec63Zgqfv4SZIEdLt5GFLdpjk2WCxhFrN3\n"
+ "n6JZgI2aUWin2OL1VA1hfddAPUSHOCV8nP/Vu1f/BEaeQjEVS2AOF7T+eQSTNQtN\n"
+ "MkTTi0UKKXZjIIXiW4YXDs2b22JIOXkL9rFyrvN4vvbIp/jwLWx5UTHFtsktMkai\n"
+ "MteJBobd69ra7kdX43EkUKrgSDNpMQn10y3w4ziPDsLZ9sWaRxESbXWqDn4A7J9t\n"
+ "prfxut+s/3rsZgpt4s2FsswymfuW8DhzH1EjfV1Tb32blpgz/40sIRbU158Wh1UH\n"
+ "/DGQ6RVX0RcRt7ce7QCYTROD/yHYPVucqLfRpVNJ3oujGYaMgnSSuxEOsfwx5u+P\n"
+ "8USIxyQNR9cX/gQswzs3Ouj1rXBnjiSS1YXWZXvqHsUamJ8O7qpnqkL2Ti64O0HA\n"
+ "wdTtAcDO0BTHvanKZojLZm8nStvTvFpSVh7z+8Fu0A5zAcHsDj4vLABsdPDsXUTr\n"
+ "kb2G3Yy/UA==\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t isolated_server_cert = { isolated_server_cert_pem,
sizeof(isolated_server_cert_pem)
@@ -265,102 +263,115 @@ void doit(void)
pcert_list_size = 3;
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &server_cert, GNUTLS_X509_FMT_PEM, flags);
+ &server_cert,
+ GNUTLS_X509_FMT_PEM, flags);
if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER) {
fail("the GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED was not considered\n");
}
pcert_list_size = 3;
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &server_cert, GNUTLS_X509_FMT_PEM, 0);
+ &server_cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
fail("the normal/smaller import has failed\n");
}
- for (i=0;i<pcert_list_size;i++)
+ for (i = 0; i < pcert_list_size; i++)
gnutls_pcert_deinit(&pcert_list[i]);
-
pcert_list_size = 16;
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &server_cert, GNUTLS_X509_FMT_PEM, 0);
+ &server_cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret != 0 || pcert_list_size != 4) {
fail("the normal import failed\n");
}
- for (i=0;i<pcert_list_size;i++)
+ for (i = 0; i < pcert_list_size; i++)
gnutls_pcert_deinit(&pcert_list[i]);
-
pcert_list_size = 16;
flags = GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED;
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &server_cert, GNUTLS_X509_FMT_PEM, flags);
+ &server_cert,
+ GNUTLS_X509_FMT_PEM, flags);
if (ret != 0 || pcert_list_size != 4) {
fail("the fail if unsorted import failed\n");
}
- for (i=0;i<pcert_list_size;i++)
+ for (i = 0; i < pcert_list_size; i++)
gnutls_pcert_deinit(&pcert_list[i]);
-
pcert_list_size = 16;
flags = GNUTLS_X509_CRT_LIST_SORT;
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &server_cert, GNUTLS_X509_FMT_PEM, flags);
+ &server_cert,
+ GNUTLS_X509_FMT_PEM, flags);
if (ret != 0 || pcert_list_size != 4) {
fail("the list sort import failed\n");
}
- for (i=0;i<pcert_list_size;i++)
+ for (i = 0; i < pcert_list_size; i++)
gnutls_pcert_deinit(&pcert_list[i]);
-
pcert_list_size = 16;
- flags = GNUTLS_X509_CRT_LIST_SORT|GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED;
- ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &server_cert, GNUTLS_X509_FMT_PEM, flags);
+ flags =
+ GNUTLS_X509_CRT_LIST_SORT | GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED;
+ ret =
+ gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
+ &server_cert, GNUTLS_X509_FMT_PEM,
+ flags);
if (ret != 0 || pcert_list_size != 4) {
fail("the combined import failed\n");
}
- for (i=0;i<pcert_list_size;i++)
+ for (i = 0; i < pcert_list_size; i++)
gnutls_pcert_deinit(&pcert_list[i]);
/* try the unsorted list */
pcert_list_size = 16;
- flags = GNUTLS_X509_CRT_LIST_SORT|GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED;
- ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &unsorted_server_cert, GNUTLS_X509_FMT_PEM, flags);
+ flags =
+ GNUTLS_X509_CRT_LIST_SORT | GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED;
+ ret =
+ gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
+ &unsorted_server_cert,
+ GNUTLS_X509_FMT_PEM, flags);
if (ret < 0 || pcert_list_size != 4) {
fail("the combined import failed for the unsorted list (%d): %s\n", pcert_list_size, gnutls_strerror(ret));
}
- for (i=0;i<pcert_list_size;i++)
+ for (i = 0; i < pcert_list_size; i++)
gnutls_pcert_deinit(&pcert_list[i]);
/* try the single cert list */
pcert_list_size = 16;
- flags = GNUTLS_X509_CRT_LIST_SORT|GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED;
- ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &single_server_cert, GNUTLS_X509_FMT_PEM, flags);
+ flags =
+ GNUTLS_X509_CRT_LIST_SORT | GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED;
+ ret =
+ gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
+ &single_server_cert,
+ GNUTLS_X509_FMT_PEM, flags);
if (ret < 0 || pcert_list_size != 1) {
fail("the combined import failed for the single cert (%d): %s\n", pcert_list_size, gnutls_strerror(ret));
}
- for (i=0;i<pcert_list_size;i++)
+ for (i = 0; i < pcert_list_size; i++)
gnutls_pcert_deinit(&pcert_list[i]);
/* try the single final cert list */
pcert_list_size = 16;
- flags = GNUTLS_X509_CRT_LIST_SORT|GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED;
- ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &isolated_server_cert, GNUTLS_X509_FMT_PEM, flags);
+ flags =
+ GNUTLS_X509_CRT_LIST_SORT | GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED;
+ ret =
+ gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
+ &isolated_server_cert,
+ GNUTLS_X509_FMT_PEM, flags);
if (ret < 0 || pcert_list_size != 1) {
fail("the combined import failed for the isolated cert (%d): %s\n", pcert_list_size, gnutls_strerror(ret));
}
- for (i=0;i<pcert_list_size;i++)
+ for (i = 0; i < pcert_list_size; i++)
gnutls_pcert_deinit(&pcert_list[i]);
success("all ok\n");
diff --git a/tests/pkcs1-digest-info.c b/tests/pkcs1-digest-info.c
index 7557dd7680..f137361c66 100644
--- a/tests/pkcs1-digest-info.c
+++ b/tests/pkcs1-digest-info.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,7 +35,8 @@
#include "utils.h"
-static void encode(const char *test_name, gnutls_digest_algorithm_t hash, const gnutls_datum_t *raw, const gnutls_datum_t *expected)
+static void encode(const char *test_name, gnutls_digest_algorithm_t hash,
+ const gnutls_datum_t * raw, const gnutls_datum_t * expected)
{
int ret;
gnutls_datum_t out;
@@ -45,11 +46,12 @@ static void encode(const char *test_name, gnutls_digest_algorithm_t hash, const
ret = gnutls_encode_ber_digest_info(hash, raw, &out);
if (ret < 0) {
- fail("%s: gnutls_encode_ber_digest_info: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_encode_ber_digest_info: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (expected->size!=out.size) {
+ if (expected->size != out.size) {
hexprint(out.data, out.size);
fail("%s: gnutls_encode_ber_digest_info: output has incorrect size (%d, expected %d)\n", test_name, (int)out.size, expected->size);
exit(1);
@@ -64,7 +66,8 @@ static void encode(const char *test_name, gnutls_digest_algorithm_t hash, const
digest_size = sizeof(digest);
ret = gnutls_decode_ber_digest_info(&out, &thash, digest, &digest_size);
if (ret < 0) {
- fail("%s: gnutls_decode_ber_digest_info: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_decode_ber_digest_info: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
@@ -73,7 +76,7 @@ static void encode(const char *test_name, gnutls_digest_algorithm_t hash, const
exit(1);
}
- if (raw->size!=digest_size) {
+ if (raw->size != digest_size) {
fail("%s: gnutls_decode_ber_digest_info: output has incorrect size (%d, expected %d)\n", test_name, digest_size, raw->size);
exit(1);
}
@@ -88,7 +91,9 @@ static void encode(const char *test_name, gnutls_digest_algorithm_t hash, const
return;
}
-static void decode(const char *test_name, gnutls_digest_algorithm_t hash, const gnutls_datum_t *raw, const gnutls_datum_t *di, int res)
+static void decode(const char *test_name, gnutls_digest_algorithm_t hash,
+ const gnutls_datum_t * raw, const gnutls_datum_t * di,
+ int res)
{
int ret;
uint8_t digest[128];
@@ -98,7 +103,8 @@ static void decode(const char *test_name, gnutls_digest_algorithm_t hash, const
digest_size = sizeof(digest);
ret = gnutls_decode_ber_digest_info(di, &thash, digest, &digest_size);
if (res != ret) {
- fail("%s: gnutls_decode_ber_digest_info: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_decode_ber_digest_info: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
@@ -111,7 +117,7 @@ static void decode(const char *test_name, gnutls_digest_algorithm_t hash, const
exit(1);
}
- if (raw->size!=digest_size) {
+ if (raw->size != digest_size) {
fail("%s: gnutls_decode_ber_digest_info: output has incorrect size (%d, expected %d)\n", test_name, digest_size, raw->size);
exit(1);
}
@@ -133,17 +139,25 @@ struct encode_tests_st {
struct encode_tests_st encode_tests[] = {
{
- .name = "rnd1",
- .hash = GNUTLS_DIG_SHA1,
- .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12", 20},
- .di = {(void*)"\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12",35}
- },
+ .name = "rnd1",
+ .hash = GNUTLS_DIG_SHA1,
+ .raw = {(void *)
+ "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12",
+ 20},
+ .di = {(void *)
+ "\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12",
+ 35}
+ },
{
- .name = "rnd2",
- .hash = GNUTLS_DIG_SHA256,
- .raw = {(void*)"\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", 32},
- .di = {(void*)"\x30\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",51}
- }
+ .name = "rnd2",
+ .hash = GNUTLS_DIG_SHA256,
+ .raw = {(void *)
+ "\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",
+ 32},
+ .di = {(void *)
+ "\x30\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",
+ 51}
+ }
};
struct decode_tests_st {
@@ -156,52 +170,71 @@ struct decode_tests_st {
struct decode_tests_st decode_tests[] = {
{
- .name = "dec-rnd1",
- .hash = GNUTLS_DIG_SHA1,
- .di = {(void*)"\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12",35},
- .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12", 20},
- .res = 0,
- },
+ .name = "dec-rnd1",
+ .hash = GNUTLS_DIG_SHA1,
+ .di = {(void *)
+ "\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12",
+ 35},
+ .raw = {(void *)
+ "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78\xff\xa1\x32\x12",
+ 20},
+ .res = 0,
+ },
{
- .name = "dec-rnd2",
- .hash = GNUTLS_DIG_SHA256,
- .raw = {(void*)"\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", 32},
- .di = {(void*)"\x30\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",51},
- .res = 0,
- },
+ .name = "dec-rnd2",
+ .hash = GNUTLS_DIG_SHA256,
+ .raw = {(void *)
+ "\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",
+ 32},
+ .di = {(void *)
+ "\x30\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",
+ 51},
+ .res = 0,
+ },
{
- .name = "dec-wrong-tag",
- .hash = GNUTLS_DIG_SHA256,
- .raw = {(void*)"\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", 32},
- .di = {(void*)"\x31\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",51},
- .res = GNUTLS_E_ASN1_TAG_ERROR
- },
+ .name = "dec-wrong-tag",
+ .hash = GNUTLS_DIG_SHA256,
+ .raw = {(void *)
+ "\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",
+ 32},
+ .di = {(void *)
+ "\x31\x31\x30\x0d\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",
+ 51},
+ .res = GNUTLS_E_ASN1_TAG_ERROR},
{
- .name = "dec-wrong-der",
- .hash = GNUTLS_DIG_SHA256,
- .raw = {(void*)"\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", 32},
- .di = {(void*)"\x30\x31\x30\x0c\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x86\xe3\xf9\x25",51},
- .res = GNUTLS_E_ASN1_DER_ERROR
- },
+ .name = "dec-wrong-der",
+ .hash = GNUTLS_DIG_SHA256,
+ .raw = {(void *)
+ "\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",
+ 32},
+ .di = {(void *)
+ "\x30\x31\x30\x0c\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x86\xe3\xf9\x25",
+ 51},
+ .res = GNUTLS_E_ASN1_DER_ERROR},
{
- .name = "dec-wrong-hash",
- .hash = GNUTLS_DIG_SHA256,
- .raw = {(void*)"\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25", 32},
- .di = {(void*)"\x30\x31\x30\x0d\x06\x09\x61\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x86\xe3\xf9\x25",51},
- .res = GNUTLS_E_UNKNOWN_HASH_ALGORITHM
- },
+ .name = "dec-wrong-hash",
+ .hash = GNUTLS_DIG_SHA256,
+ .raw = {(void *)
+ "\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x85\xe3\xf9\x25",
+ 32},
+ .di = {(void *)
+ "\x30\x31\x30\x0d\x06\x09\x61\x86\x48\x01\x65\x03\x04\x02\x01\x05\x00\x04\x20\x0b\x68\xdf\x4b\x27\xac\xc5\xc5\x52\x43\x74\x32\x39\x5c\x1e\xf5\x6a\xe2\x19\x5a\x58\x75\x81\xa5\x6a\xf5\xbf\x98\x86\xe3\xf9\x25",
+ 51},
+ .res = GNUTLS_E_UNKNOWN_HASH_ALGORITHM},
};
void doit(void)
{
unsigned i;
- for (i=0;i<sizeof(encode_tests)/sizeof(encode_tests[0]);i++) {
- encode(encode_tests[i].name, encode_tests[i].hash, &encode_tests[i].raw, &encode_tests[i].di);
+ for (i = 0; i < sizeof(encode_tests) / sizeof(encode_tests[0]); i++) {
+ encode(encode_tests[i].name, encode_tests[i].hash,
+ &encode_tests[i].raw, &encode_tests[i].di);
}
- for (i=0;i<sizeof(decode_tests)/sizeof(decode_tests[0]);i++) {
- decode(decode_tests[i].name, decode_tests[i].hash, &decode_tests[i].raw, &decode_tests[i].di, decode_tests[i].res);
+ for (i = 0; i < sizeof(decode_tests) / sizeof(decode_tests[0]); i++) {
+ decode(decode_tests[i].name, decode_tests[i].hash,
+ &decode_tests[i].raw, &decode_tests[i].di,
+ decode_tests[i].res);
}
}
-
diff --git a/tests/pkcs11/gnutls_pcert_list_import_x509_file.c b/tests/pkcs11/gnutls_pcert_list_import_x509_file.c
index a4602a4ee9..6554609ab4 100644
--- a/tests/pkcs11/gnutls_pcert_list_import_x509_file.c
+++ b/tests/pkcs11/gnutls_pcert_list_import_x509_file.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -53,8 +53,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -63,7 +63,7 @@ int pin_func(void* userdata, int attempt, const char* url, const char *label,
return -1;
}
-static int comp_cert(gnutls_pcert_st *pcert, unsigned i)
+static int comp_cert(gnutls_pcert_st * pcert, unsigned i)
{
int ret;
gnutls_datum_t data;
@@ -76,7 +76,7 @@ static int comp_cert(gnutls_pcert_st *pcert, unsigned i)
if (ret < 0)
return -1;
- data.data = (void*)nc_good2[i];
+ data.data = (void *)nc_good2[i];
data.size = strlen(nc_good2[i]);
ret = gnutls_x509_crt_import(crt2, &data, GNUTLS_X509_FMT_PEM);
if (ret < 0)
@@ -102,14 +102,17 @@ static void load_cert(const char *url, unsigned i)
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
- data.data = (void*)nc_good2[i];
+ data.data = (void *)nc_good2[i];
data.size = strlen(nc_good2[i]);
ret = gnutls_x509_crt_import(crt, &data, GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("error[%d]: %s\n", i, gnutls_strerror(ret));
snprintf(name, sizeof(name), "cert-%d", i);
- ret = gnutls_pkcs11_copy_x509_crt(url, crt, name, GNUTLS_PKCS11_OBJ_FLAG_LOGIN|GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE);
+ ret =
+ gnutls_pkcs11_copy_x509_crt(url, crt, name,
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE);
if (ret < 0)
fail("error[%d]: %s\n", i, gnutls_strerror(ret));
@@ -169,13 +172,14 @@ void doit(void)
gnutls_global_set_log_level(4711);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, NULL);
if (ret < 0) {
- fprintf(stderr, "add_provider: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "add_provider: %s\n", gnutls_strerror(ret));
exit(1);
}
@@ -185,7 +189,9 @@ void doit(void)
fail("gnutls_pkcs11_token_init: %s\n", gnutls_strerror(ret));
}
- ret = gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN, GNUTLS_PIN_USER);
+ ret =
+ gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN,
+ GNUTLS_PIN_USER);
if (ret < 0) {
fail("gnutls_pkcs11_token_set_pin: %s\n", gnutls_strerror(ret));
}
@@ -195,22 +201,28 @@ void doit(void)
success("import from URI\n");
pcerts_size = 2;
- ret = gnutls_pcert_list_import_x509_file(pcerts, &pcerts_size, SOFTHSM_URL";object=cert-0",
- GNUTLS_X509_FMT_PEM, pin_func, NULL, 0);
+ ret =
+ gnutls_pcert_list_import_x509_file(pcerts, &pcerts_size,
+ SOFTHSM_URL ";object=cert-0",
+ GNUTLS_X509_FMT_PEM, pin_func,
+ NULL, 0);
assert(ret == GNUTLS_E_SHORT_MEMORY_BUFFER);
- pcerts_size = sizeof(pcerts)/sizeof(pcerts[0]);
- ret = gnutls_pcert_list_import_x509_file(pcerts, &pcerts_size, SOFTHSM_URL";object=cert-0",
- GNUTLS_X509_FMT_PEM, pin_func, NULL, 0);
+ pcerts_size = sizeof(pcerts) / sizeof(pcerts[0]);
+ ret =
+ gnutls_pcert_list_import_x509_file(pcerts, &pcerts_size,
+ SOFTHSM_URL ";object=cert-0",
+ GNUTLS_X509_FMT_PEM, pin_func,
+ NULL, 0);
if (ret < 0)
fail("cannot load certs: %s\n", gnutls_strerror(ret));
assert(pcerts_size == 5);
- for (i=0;i<pcerts_size;i++)
- assert(comp_cert(&pcerts[i], i)>=0);
+ for (i = 0; i < pcerts_size; i++)
+ assert(comp_cert(&pcerts[i], i) >= 0);
- for (i=0;i<pcerts_size;i++)
+ for (i = 0; i < pcerts_size; i++)
gnutls_pcert_deinit(&pcerts[i]);
/* Try testing importing from file
@@ -222,21 +234,23 @@ void doit(void)
pcerts_size = 2;
ret = gnutls_pcert_list_import_x509_file(pcerts, &pcerts_size, file,
- GNUTLS_X509_FMT_PEM, pin_func, NULL, 0);
+ GNUTLS_X509_FMT_PEM, pin_func,
+ NULL, 0);
assert(ret == GNUTLS_E_SHORT_MEMORY_BUFFER);
- pcerts_size = sizeof(pcerts)/sizeof(pcerts[0]);
+ pcerts_size = sizeof(pcerts) / sizeof(pcerts[0]);
ret = gnutls_pcert_list_import_x509_file(pcerts, &pcerts_size, file,
- GNUTLS_X509_FMT_PEM, pin_func, NULL, 0);
+ GNUTLS_X509_FMT_PEM, pin_func,
+ NULL, 0);
if (ret < 0)
fail("cannot load certs: %s\n", gnutls_strerror(ret));
assert(pcerts_size == 5);
- for (i=0;i<pcerts_size;i++)
- assert(comp_cert(&pcerts[i], i)>=0);
+ for (i = 0; i < pcerts_size; i++)
+ assert(comp_cert(&pcerts[i], i) >= 0);
- for (i=0;i<pcerts_size;i++)
+ for (i = 0; i < pcerts_size; i++)
gnutls_pcert_deinit(&pcerts[i]);
gnutls_global_deinit();
@@ -244,4 +258,3 @@ void doit(void)
remove(CONFIG);
}
-
diff --git a/tests/pkcs11/gnutls_x509_crt_list_import_url.c b/tests/pkcs11/gnutls_x509_crt_list_import_url.c
index e395180a25..3767bb6a26 100644
--- a/tests/pkcs11/gnutls_x509_crt_list_import_url.c
+++ b/tests/pkcs11/gnutls_x509_crt_list_import_url.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -53,8 +53,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -73,7 +73,7 @@ static void comp_cert(gnutls_x509_crt_t crt1, unsigned i)
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
- data.data = (void*)nc_good2[i];
+ data.data = (void *)nc_good2[i];
data.size = strlen(nc_good2[i]);
ret = gnutls_x509_crt_import(crt2, &data, GNUTLS_X509_FMT_PEM);
if (ret < 0)
@@ -97,14 +97,17 @@ static void load_cert(const char *url, unsigned i)
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
- data.data = (void*)nc_good2[i];
+ data.data = (void *)nc_good2[i];
data.size = strlen(nc_good2[i]);
ret = gnutls_x509_crt_import(crt, &data, GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("error[%d]: %s\n", i, gnutls_strerror(ret));
snprintf(name, sizeof(name), "cert-%d", i);
- ret = gnutls_pkcs11_copy_x509_crt(url, crt, name, GNUTLS_PKCS11_OBJ_FLAG_LOGIN|GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE);
+ ret =
+ gnutls_pkcs11_copy_x509_crt(url, crt, name,
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE);
if (ret < 0)
fail("error[%d]: %s\n", i, gnutls_strerror(ret));
@@ -149,13 +152,14 @@ void doit(void)
gnutls_global_set_log_level(4711);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, NULL);
if (ret < 0) {
- fprintf(stderr, "add_provider: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "add_provider: %s\n", gnutls_strerror(ret));
exit(1);
}
@@ -165,7 +169,9 @@ void doit(void)
fail("gnutls_pkcs11_token_init: %s\n", gnutls_strerror(ret));
}
- ret = gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN, GNUTLS_PIN_USER);
+ ret =
+ gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN,
+ GNUTLS_PIN_USER);
if (ret < 0) {
fail("gnutls_pkcs11_token_set_pin: %s\n", gnutls_strerror(ret));
}
@@ -174,23 +180,28 @@ void doit(void)
gnutls_pkcs11_set_pin_function(NULL, NULL);
/* try importing without login */
- ret = gnutls_x509_crt_list_import_url(&crts, &crts_size, SOFTHSM_URL";object=cert-0",
- pin_func, NULL, 0);
+ ret =
+ gnutls_x509_crt_list_import_url(&crts, &crts_size,
+ SOFTHSM_URL ";object=cert-0",
+ pin_func, NULL, 0);
if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
fail("cannot load certs: %s\n", gnutls_strerror(ret));
/* try importing with login */
- ret = gnutls_x509_crt_list_import_url(&crts, &crts_size, SOFTHSM_URL";object=cert-0",
- pin_func, NULL, GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_x509_crt_list_import_url(&crts, &crts_size,
+ SOFTHSM_URL ";object=cert-0",
+ pin_func, NULL,
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0)
fail("cannot load certs: %s\n", gnutls_strerror(ret));
assert(crts_size == 5);
- for (i=0;i<crts_size;i++)
+ for (i = 0; i < crts_size; i++)
comp_cert(crts[i], i);
- for (i=0;i<crts_size;i++)
+ for (i = 0; i < crts_size; i++)
gnutls_x509_crt_deinit(crts[i]);
gnutls_free(crts);
@@ -199,4 +210,3 @@ void doit(void)
remove(CONFIG);
}
-
diff --git a/tests/pkcs11/list-objects.c b/tests/pkcs11/list-objects.c
index ab30cd568b..5cc727f766 100644
--- a/tests/pkcs11/list-objects.c
+++ b/tests/pkcs11/list-objects.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -49,7 +49,7 @@ static void tls_log_func(int level, const char *str)
static const char *opt_pin;
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
@@ -74,32 +74,35 @@ int main(int argc, char **argv)
ret = gnutls_global_init();
if (ret != 0) {
- fprintf(stderr, "error at %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error at %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
gnutls_global_set_log_function(tls_log_func);
- while((opt = getopt(argc, argv, "o:t:")) != -1) {
- switch(opt) {
- case 'o':
- mod = strdup(optarg);
- p11_kit_override_system_files(NULL, NULL, mod, mod, NULL);
- break;
- case 't':
- /* specify the object type to list */
- if (strcmp(optarg, "all") == 0)
- attrs = GNUTLS_PKCS11_OBJ_ATTR_ALL;
- else if (strcmp(optarg, "privkey") == 0)
- attrs = GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY;
- else {
- fprintf(stderr, "Unknown object type %s\n", optarg);
- exit(1);
- }
- break;
- default:
- fprintf(stderr, "Unknown option %c\n", (char)opt);
+ while ((opt = getopt(argc, argv, "o:t:")) != -1) {
+ switch (opt) {
+ case 'o':
+ mod = strdup(optarg);
+ p11_kit_override_system_files(NULL, NULL, mod, mod,
+ NULL);
+ break;
+ case 't':
+ /* specify the object type to list */
+ if (strcmp(optarg, "all") == 0)
+ attrs = GNUTLS_PKCS11_OBJ_ATTR_ALL;
+ else if (strcmp(optarg, "privkey") == 0)
+ attrs = GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY;
+ else {
+ fprintf(stderr, "Unknown object type %s\n",
+ optarg);
exit(1);
+ }
+ break;
+ default:
+ fprintf(stderr, "Unknown option %c\n", (char)opt);
+ exit(1);
}
}
@@ -125,18 +128,18 @@ int main(int argc, char **argv)
gnutls_pkcs11_obj_list_import_url2(&crt_list, &crt_list_size,
url, attrs, obj_flags);
if (ret != 0) {
- fprintf(stderr, "error at %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error at %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
for (i = 0; i < crt_list_size; i++) {
char *output;
- ret =
- gnutls_pkcs11_obj_export_url(crt_list[i], 0,
- &output);
+ ret = gnutls_pkcs11_obj_export_url(crt_list[i], 0, &output);
if (ret != 0) {
- fprintf(stderr, "error at %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error at %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
diff --git a/tests/pkcs11/list-tokens.c b/tests/pkcs11/list-tokens.c
index 39cd730842..a32ca326e4 100644
--- a/tests/pkcs11/list-tokens.c
+++ b/tests/pkcs11/list-tokens.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -49,8 +49,8 @@ static void tls_log_func(int level, const char *str)
int
_gnutls_pkcs11_token_get_url(unsigned int seq,
- gnutls_pkcs11_url_type_t detailed, char **url,
- unsigned flags);
+ gnutls_pkcs11_url_type_t detailed, char **url,
+ unsigned flags);
int main(int argc, char **argv)
{
@@ -66,81 +66,92 @@ int main(int argc, char **argv)
ret = gnutls_global_init();
if (ret != 0) {
- fprintf(stderr, "error at %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error at %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
gnutls_global_set_log_function(tls_log_func);
//gnutls_global_set_log_level(4711);
- while((opt = getopt(argc, argv, "s:o:mvatdp")) != -1) {
- switch(opt) {
- case 'o':
- mod = strdup(optarg);
- p11_kit_override_system_files(NULL, NULL, mod, mod, NULL);
- break;
- case 'm':
- /* initialize manually - i.e., do no module loading */
- ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_MANUAL, NULL);
- if (ret != 0) {
- fprintf(stderr, "error at %d: %s\n", __LINE__, gnutls_strerror(ret));
- exit(1);
- }
- break;
- case 's':
- /* load module */
- ret = gnutls_pkcs11_add_provider(optarg, NULL);
- if (ret != 0) {
- fprintf(stderr, "error at %d: %s\n", __LINE__, gnutls_strerror(ret));
- exit(1);
- }
- break;
- case 'd':
- /* when call _gnutls_pkcs11_token_get_url() do proper initialization
- * if none done */
- flag = 0;
- break;
- case 'p':
- /* do private key operations */
- assert(gnutls_pkcs11_privkey_init(&key) >= 0);
- gnutls_pkcs11_privkey_import_url(key, "pkcs11:", 0);
- gnutls_pkcs11_privkey_deinit(key);
- break;
- case 'a':
- /* initialize auto - i.e., do module loading */
- ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_AUTO, NULL);
- if (ret != 0) {
- fprintf(stderr, "error at %d: %s\n", __LINE__, gnutls_strerror(ret));
- exit(1);
- }
- break;
- case 't':
- /* do trusted module loading */
- ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_AUTO_TRUSTED, NULL);
- if (ret != 0) {
- fprintf(stderr, "error at %d: %s\n", __LINE__, gnutls_strerror(ret));
- exit(1);
- }
- break;
- case 'v':
- /* do verification which should trigger trusted module loading */
- assert(gnutls_x509_crt_init(&crt) >= 0);
- assert(gnutls_x509_crt_import(crt, &ca3_cert, GNUTLS_X509_FMT_PEM) >= 0);
-
- assert(gnutls_x509_trust_list_init(&tl, 0) >= 0);
- assert(gnutls_x509_trust_list_add_system_trust(tl, 0, 0) >= 0);
- gnutls_x509_trust_list_verify_crt2(tl, &crt, 1, NULL, 0, 0, &status, NULL);
- gnutls_x509_trust_list_deinit(tl, 1);
- gnutls_x509_crt_deinit(crt);
- break;
- default:
- fprintf(stderr, "Unknown option %c\n", (char)opt);
+ while ((opt = getopt(argc, argv, "s:o:mvatdp")) != -1) {
+ switch (opt) {
+ case 'o':
+ mod = strdup(optarg);
+ p11_kit_override_system_files(NULL, NULL, mod, mod,
+ NULL);
+ break;
+ case 'm':
+ /* initialize manually - i.e., do no module loading */
+ ret =
+ gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_MANUAL, NULL);
+ if (ret != 0) {
+ fprintf(stderr, "error at %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
+ exit(1);
+ }
+ break;
+ case 's':
+ /* load module */
+ ret = gnutls_pkcs11_add_provider(optarg, NULL);
+ if (ret != 0) {
+ fprintf(stderr, "error at %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
+ exit(1);
+ }
+ break;
+ case 'd':
+ /* when call _gnutls_pkcs11_token_get_url() do proper initialization
+ * if none done */
+ flag = 0;
+ break;
+ case 'p':
+ /* do private key operations */
+ assert(gnutls_pkcs11_privkey_init(&key) >= 0);
+ gnutls_pkcs11_privkey_import_url(key, "pkcs11:", 0);
+ gnutls_pkcs11_privkey_deinit(key);
+ break;
+ case 'a':
+ /* initialize auto - i.e., do module loading */
+ ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_AUTO, NULL);
+ if (ret != 0) {
+ fprintf(stderr, "error at %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
+ exit(1);
+ }
+ break;
+ case 't':
+ /* do trusted module loading */
+ ret =
+ gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_AUTO_TRUSTED,
+ NULL);
+ if (ret != 0) {
+ fprintf(stderr, "error at %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
+ }
+ break;
+ case 'v':
+ /* do verification which should trigger trusted module loading */
+ assert(gnutls_x509_crt_init(&crt) >= 0);
+ assert(gnutls_x509_crt_import
+ (crt, &ca3_cert, GNUTLS_X509_FMT_PEM) >= 0);
+
+ assert(gnutls_x509_trust_list_init(&tl, 0) >= 0);
+ assert(gnutls_x509_trust_list_add_system_trust(tl, 0, 0)
+ >= 0);
+ gnutls_x509_trust_list_verify_crt2(tl, &crt, 1, NULL, 0,
+ 0, &status, NULL);
+ gnutls_x509_trust_list_deinit(tl, 1);
+ gnutls_x509_crt_deinit(crt);
+ break;
+ default:
+ fprintf(stderr, "Unknown option %c\n", (char)opt);
+ exit(1);
}
}
-
- for (i=0;;i++) {
+ for (i = 0;; i++) {
ret = _gnutls_pkcs11_token_get_url(i, 0, &url, flag);
if (ret < 0)
break;
@@ -149,7 +160,7 @@ int main(int argc, char **argv)
}
/* try whether these URIs are operational */
- for (i=0;;i++) {
+ for (i = 0;; i++) {
unsigned tflags;
ret = _gnutls_pkcs11_token_get_url(i, 0, &url, flag);
@@ -157,7 +168,8 @@ int main(int argc, char **argv)
break;
ret = gnutls_pkcs11_token_get_flags(url, &tflags);
if (ret < 0) {
- fprintf(stderr, "cannot get token %s flags: %s\n", url, gnutls_strerror(ret));
+ fprintf(stderr, "cannot get token %s flags: %s\n", url,
+ gnutls_strerror(ret));
exit(1);
}
free(url);
diff --git a/tests/pkcs11/pkcs11-cert-import-url-exts.c b/tests/pkcs11/pkcs11-cert-import-url-exts.c
index 4e9e628028..d5f3a3b18c 100644
--- a/tests/pkcs11/pkcs11-cert-import-url-exts.c
+++ b/tests/pkcs11/pkcs11-cert-import-url-exts.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -88,17 +88,20 @@ void doit(void)
exit(1);
}
- assert(gnutls_x509_crt_init(&crt)>=0);
- assert(gnutls_x509_crt_init(&ocrt)>=0);
+ assert(gnutls_x509_crt_init(&crt) >= 0);
+ assert(gnutls_x509_crt_init(&ocrt) >= 0);
/* check high level certificate functions */
- ret = gnutls_x509_crt_import_url(crt, "pkcs11:type=cert;object=cert1", 0);
+ ret =
+ gnutls_x509_crt_import_url(crt, "pkcs11:type=cert;object=cert1", 0);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_x509_crt_import_url(ocrt, "pkcs11:type=cert;object=cert1", GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT);
+ ret =
+ gnutls_x509_crt_import_url(ocrt, "pkcs11:type=cert;object=cert1",
+ GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -106,7 +109,7 @@ void doit(void)
ret = gnutls_x509_crt_equals(crt, ocrt);
if (ret != 0) {
- fail("exported certificates are equal!\n");
+ fail("exported certificates are equal!\n");
}
ret = gnutls_x509_crt_get_ca_status(ocrt, NULL);
@@ -126,7 +129,9 @@ void doit(void)
exit(1);
}
- if (keyusage != (GNUTLS_KEY_KEY_ENCIPHERMENT|GNUTLS_KEY_ENCIPHER_ONLY|GNUTLS_KEY_KEY_CERT_SIGN)) {
+ if (keyusage !=
+ (GNUTLS_KEY_KEY_ENCIPHERMENT | GNUTLS_KEY_ENCIPHER_ONLY |
+ GNUTLS_KEY_KEY_CERT_SIGN)) {
fail("Extension does not have the expected key usage!\n");
}
diff --git a/tests/pkcs11/pkcs11-cert-import-url4-exts.c b/tests/pkcs11/pkcs11-cert-import-url4-exts.c
index 7776f56205..af20493fa3 100644
--- a/tests/pkcs11/pkcs11-cert-import-url4-exts.c
+++ b/tests/pkcs11/pkcs11-cert-import-url4-exts.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -92,46 +92,53 @@ void doit(void)
exit(1);
}
- assert(gnutls_x509_crt_init(&crt)>=0);
- assert(gnutls_x509_crt_init(&ocrt)>=0);
+ assert(gnutls_x509_crt_init(&crt) >= 0);
+ assert(gnutls_x509_crt_init(&ocrt) >= 0);
/* check low level certificate import functions */
- ret = gnutls_pkcs11_obj_list_import_url4(&plist, &plist_size, "pkcs11:type=cert;object=cert1", 0);
+ ret =
+ gnutls_pkcs11_obj_list_import_url4(&plist, &plist_size,
+ "pkcs11:type=cert;object=cert1",
+ 0);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_pkcs11_obj_list_import_url4(&plist2, &plist2_size, "pkcs11:type=cert;object=cert1", GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT);
+ ret =
+ gnutls_pkcs11_obj_list_import_url4(&plist2, &plist2_size,
+ "pkcs11:type=cert;object=cert1",
+ GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
}
if (plist2_size != 1 || plist_size != 1) {
- fail("could not import certs %d, %d\n", plist_size, plist2_size);
+ fail("could not import certs %d, %d\n", plist_size,
+ plist2_size);
}
ret = gnutls_x509_crt_import_pkcs11(crt, plist[0]);
if (ret != 0) {
- fail("could not import cert!\n");
+ fail("could not import cert!\n");
}
ret = gnutls_x509_crt_import_pkcs11(ocrt, plist2[0]);
if (ret != 0) {
- fail("could not import cert!\n");
+ fail("could not import cert!\n");
}
- for (i=0;i<plist_size;i++)
+ for (i = 0; i < plist_size; i++)
gnutls_pkcs11_obj_deinit(plist[i]);
- for (i=0;i<plist2_size;i++)
+ for (i = 0; i < plist2_size; i++)
gnutls_pkcs11_obj_deinit(plist2[i]);
gnutls_free(plist);
gnutls_free(plist2);
ret = gnutls_x509_crt_equals(crt, ocrt);
if (ret != 0) {
- fail("exported certificates are equal!\n");
+ fail("exported certificates are equal!\n");
}
ret = gnutls_x509_crt_get_ca_status(ocrt, NULL);
@@ -151,7 +158,9 @@ void doit(void)
exit(1);
}
- if (keyusage != (GNUTLS_KEY_KEY_ENCIPHERMENT|GNUTLS_KEY_ENCIPHER_ONLY|GNUTLS_KEY_KEY_CERT_SIGN)) {
+ if (keyusage !=
+ (GNUTLS_KEY_KEY_ENCIPHERMENT | GNUTLS_KEY_ENCIPHER_ONLY |
+ GNUTLS_KEY_KEY_CERT_SIGN)) {
fail("Extension does not have the expected key usage!\n");
}
diff --git a/tests/pkcs11/pkcs11-chainverify.c b/tests/pkcs11/pkcs11-chainverify.c
index e7445b8ccd..e84ca8f850 100644
--- a/tests/pkcs11/pkcs11-chainverify.c
+++ b/tests/pkcs11/pkcs11-chainverify.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -58,8 +58,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, "1234");
@@ -104,7 +104,9 @@ void doit(void)
gnutls_global_set_log_level(4711);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin 1234 --pin 1234", bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin 1234 --pin 1234",
+ bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, "trusted");
@@ -128,8 +130,7 @@ void doit(void)
gnutls_x509_crt_t get_ca_crt;
if (debug)
- printf("Chain '%s' (%d)...\n", chains[i].name,
- (int) i);
+ printf("Chain '%s' (%d)...\n", chains[i].name, (int)i);
if (chains[i].notfips && gnutls_fips140_mode_enabled()) {
if (debug)
@@ -139,19 +140,17 @@ void doit(void)
for (j = 0; chains[i].chain[j]; j++) {
if (debug > 2)
- printf("\tAdding certificate %d...",
- (int) j);
+ printf("\tAdding certificate %d...", (int)j);
ret = gnutls_x509_crt_init(&certs[j]);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_init[%d,%d]: %s\n",
- (int) i, (int) j,
- gnutls_strerror(ret));
+ (int)i, (int)j, gnutls_strerror(ret));
exit(1);
}
- tmp.data = (unsigned char *) chains[i].chain[j];
+ tmp.data = (unsigned char *)chains[i].chain[j];
tmp.size = strlen(chains[i].chain[j]);
ret =
@@ -162,16 +161,15 @@ void doit(void)
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_import[%s,%d]: %s\n",
- chains[i].name, (int) j,
+ chains[i].name, (int)j,
gnutls_strerror(ret));
exit(1);
}
gnutls_x509_crt_print(certs[j],
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCertificate %d: %.*s\n", (int) j,
+ printf("\tCertificate %d: %.*s\n", (int)j,
tmp.size, tmp.data);
gnutls_free(tmp.data);
}
@@ -186,11 +184,10 @@ void doit(void)
exit(1);
}
- tmp.data = (unsigned char *) *chains[i].ca;
+ tmp.data = (unsigned char *)*chains[i].ca;
tmp.size = strlen(*chains[i].ca);
- ret =
- gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_import: %s\n",
gnutls_strerror(ret));
@@ -202,8 +199,7 @@ void doit(void)
gnutls_x509_crt_print(ca, GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCA Certificate: %.*s\n", tmp.size,
- tmp.data);
+ printf("\tCA Certificate: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
if (debug)
@@ -217,18 +213,25 @@ void doit(void)
}
/* write CA certificate to softhsm */
- ret = gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, ca, "test-ca", GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED|
- GNUTLS_PKCS11_OBJ_FLAG_MARK_CA|
- GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO);
+ ret =
+ gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, ca, "test-ca",
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED
+ | GNUTLS_PKCS11_OBJ_FLAG_MARK_CA
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO);
if (ret < 0) {
- fail("gnutls_pkcs11_copy_x509_crt: %s\n", gnutls_strerror(ret));
+ fail("gnutls_pkcs11_copy_x509_crt: %s\n",
+ gnutls_strerror(ret));
}
gnutls_x509_trust_list_init(&tl, 0);
- ret = gnutls_x509_trust_list_add_trust_file(tl, SOFTHSM_URL, NULL, 0, 0, 0);
+ ret =
+ gnutls_x509_trust_list_add_trust_file(tl, SOFTHSM_URL, NULL,
+ 0, 0, 0);
if (ret < 0) {
- fail("gnutls_x509_trust_list_add_trust_file: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_trust_list_add_trust_file: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -239,21 +242,30 @@ void doit(void)
/* test trust list iteration */
get_ca_iter = NULL;
- while (gnutls_x509_trust_list_iter_get_ca(tl, &get_ca_iter, &get_ca_crt) == 0) {
- ret = gnutls_x509_crt_export2(get_ca_crt, GNUTLS_X509_FMT_PEM, &get_ca_datum_test);
+ while (gnutls_x509_trust_list_iter_get_ca
+ (tl, &get_ca_iter, &get_ca_crt) == 0) {
+ ret =
+ gnutls_x509_crt_export2(get_ca_crt,
+ GNUTLS_X509_FMT_PEM,
+ &get_ca_datum_test);
if (ret < 0) {
- fail("gnutls_x509_crt_export2: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_export2: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_x509_crt_export2(ca, GNUTLS_X509_FMT_PEM, &get_ca_datum);
+ ret =
+ gnutls_x509_crt_export2(ca, GNUTLS_X509_FMT_PEM,
+ &get_ca_datum);
if (ret < 0) {
- fail("gnutls_x509_crt_export2: %s\n", gnutls_strerror(ret));
+ fail("gnutls_x509_crt_export2: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
if (get_ca_datum_test.size != get_ca_datum.size ||
- memcmp(get_ca_datum_test.data, get_ca_datum.data, get_ca_datum.size) != 0) {
+ memcmp(get_ca_datum_test.data, get_ca_datum.data,
+ get_ca_datum.size) != 0) {
fail("gnutls_x509_trist_list_iter_get_ca: Unexpected certificate (%u != %u):\n\n%s\n\nvs.\n\n%s", get_ca_datum.size, get_ca_datum_test.size, get_ca_datum.data, get_ca_datum_test.data);
exit(1);
}
@@ -273,14 +285,15 @@ void doit(void)
/* make sure that the two functions don't diverge */
ret = gnutls_x509_trust_list_verify_crt2(tl, certs, j,
- vdata,
- chains[i].purpose==NULL?0:1,
- chains[i].verify_flags,
- &verify_status, NULL);
+ vdata,
+ chains[i].purpose ==
+ NULL ? 0 : 1,
+ chains[i].verify_flags,
+ &verify_status, NULL);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_list_verify[%d,%d]: %s\n",
- (int) i, (int) j, gnutls_strerror(ret));
+ (int)i, (int)j, gnutls_strerror(ret));
exit(1);
}
@@ -292,8 +305,7 @@ void doit(void)
[i].
expected_verify_result,
GNUTLS_CRT_X509,
- &out2,
- 0);
+ &out2, 0);
fail("chain[%s]:\nverify_status: %d: %s\nexpected: %d: %s\n", chains[i].name, verify_status, out1.data, chains[i].expected_verify_result, out2.data);
gnutls_free(out1.data);
gnutls_free(out2.data);
@@ -301,8 +313,7 @@ void doit(void)
#if 0
j = 0;
do {
- fprintf(stderr, "%s\n",
- chains[i].chain[j]);
+ fprintf(stderr, "%s\n", chains[i].chain[j]);
}
while (chains[i].chain[++j] != NULL);
#endif
diff --git a/tests/pkcs11/pkcs11-combo.c b/tests/pkcs11/pkcs11-combo.c
index 4dfe9c23fc..7a15b13b21 100644
--- a/tests/pkcs11/pkcs11-combo.c
+++ b/tests/pkcs11/pkcs11-combo.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -45,130 +45,130 @@
/* These CAs have the same DN */
static const char *ca_list[MAX_CHAIN] = {
-"-----BEGIN CERTIFICATE-----\n"
-"MIIHSjCCBjKgAwIBAgIKYRHt9wABAAAAFTANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
-"VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
-"dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0xMzAyMDQyMTUyMThaFw0x\n"
-"ODA1MjQxOTU5MzlaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
-"b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
-"QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALn3ogjraWSmK5Wb\n"
-"/4e9mENA1F36FBVemaG7L93ZhRRXq4UV0PQM5/4TOe9KAaOlX+a2cuULeeUtN9Rk\n"
-"V/nHAVzSWlqc/NTMJfuI/1AD7ICNejQFYLxDMXGjR7eAHtiMz0iTMp9u6YTw4WXh\n"
-"WffqTPiqUZ6DEWsMic9dM9yw/JqzycKClLcTD1OCvtw7Fx4tNTu6/ngrYJcTo29e\n"
-"BBh/DupgtgnYPYuExEkHmucb4VIDdjfRkPo/BdNqrUSYfYqnUDj5mH+hPzIgppsZ\n"
-"Rw0S5PUZGuC1f+Zok+4vZPR+hGG3Pdm2LTUEWSnurlhyfBoM+0yxeHsmL9aHU7zt\n"
-"EIzVmKUCAwEAAaOCBBwwggQYMBIGCSsGAQQBgjcVAQQFAgMCAAIwIwYJKwYBBAGC\n"
-"NxUCBBYEFMqHyYZOx6LYwRwZ+5vjOyIl9hENMB0GA1UdDgQWBBQ4Y3b6tgU6qVlP\n"
-"SoeNoIO3fpE6CzAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC\n"
-"AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
-"pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
-"LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
-"aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
-"ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
-"MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
-"dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
-"PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
-"YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
-"aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
-"uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
-"bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
-"MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
-"Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
-"bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
-"CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
-"MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
-"Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
-"PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
-"bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAsj8cHt2jSAmnIGulE9jXooAc\n"
-"qH2xehlI+ko/al+nDnBzbjDYYjVS52XitYg8JGo6j72ijiGlGb/03FcQJRBZmUH6\n"
-"znktx2rGTm4IdjL8quhvHthlzXXCozL8GMeeOuZ5rzHlhapKx764a5RuZtyx89uS\n"
-"9cECon6oLGesXjFJ8Xrq6ecHZrQwJUpmvZalwvloKACAWqBh8yV12WDnUNZhtp8N\n"
-"8rqeJZoy/lXGnTxsSSodO/5Y/CxYJM4W6u4WgvXNJSjO/0qWvb64S+pVLjBzwI+Y\n"
-"X6oLqmBovRp1lGPOLjkXZi3EKDR8DmzhtpJq2677RtYowewnFedQ+exH9cXoJw==\n"
-"-----END CERTIFICATE-----",
-"-----BEGIN CERTIFICATE-----\n"
-"MIIHSjCCBjKgAwIBAgIKYRXxrQABAAAAETANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
-"VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
-"dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0wOTA1MTUxODQyNDVaFw0x\n"
-"NTA1MTUxODUyNDVaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
-"b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
-"QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbJOXtXYgfyoch6\n"
-"ip5SSjijOXvpIjBxbTl5EGH/VYHmpM2O6SRlKh/uy77QS9m84sRWCJLr8cWwX9oH\n"
-"qSmIylgcWvDpVNHx4v506DTTrbK0sbYRQYXRajOzJKeTt7NLeLrngyl45FrI9VAT\n"
-"3yqp/2BCG1dUwcBha3dB2UbTkFOMt9o/gqoL6KvgswYMs/oGc/OIjeozdYuhnBT2\n"
-"YlT9Ge5pfhOJWXh4DJbxnTmWwRUKq0MXFn0S00KQ/BZOTkc/5DibUmbmMrYi8ra4\n"
-"Z2bpnoTq0WNA99O2Lk8IgmkqPdi6HwZwKCE/x01qwP8zo76rvN8sbW9pj2WzS1WF\n"
-"tSDPeZECAwEAAaOCBBwwggQYMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE\n"
-"FPwbdyds7Cm03lobLKmI6q59npi+MAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEE\n"
-"BQIDAQABMCMGCSsGAQQBgjcVAgQWBBRT1n27C6cZL4QFHaUX2nFSCPxhtTAZBgkr\n"
-"BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
-"pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
-"LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
-"aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
-"ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
-"MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
-"dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
-"PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
-"YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
-"aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
-"uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
-"bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
-"MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
-"Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
-"bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
-"CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
-"MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
-"Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
-"PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
-"bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEArlAkrJXyMCssqAJT3PqnY7wt\n"
-"sirq1fTMrVrHdmkpBKDXBQnDcTW1zfZtOPV/QDm3UsFwDBbGq+j/7U9qZ1zYHkv+\n"
-"wrBpeFM6dlca/sgegGGAhYnQQwmlSzNXCKHMBltMjT61X8rVjyt1XJnucgat9rnT\n"
-"2j8pztqoViVnORsGfT6DDB/bz/6bFKw4FMp1wDaJI7dKh5NUggvH36owTWI7JUvq\n"
-"yJ8OI2qmjXrlqGexfwvltIkEk8xzuMIHWQoR8sERL2qf3nb2VYq1s1LbH5uCkZ0l\n"
-"w/xgwFbbwjaGJ3TFOmkVKYU77nXSkfK9EXae0UZRU0WmX4t5NNt8jiL56TPpsw==\n"
-"-----END CERTIFICATE-----\n",
-"-----BEGIN CERTIFICATE-----\n"
-"MIIHIzCCBgugAwIBAgIKYRok3wABAAAADDANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
-"VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
-"dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0wNjA1MjQxOTU2MDFaFw0x\n"
-"MjA1MjQyMDA2MDFaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
-"b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
-"QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANE2pFSB0XqXoRWF\n"
-"N7bzDesBAcTGEqcr6GVA+sMcJ5Vt17S8vGesmO2RgP6I49Q58nIhUnT054arUlOx\n"
-"NKYbAEiVyGOK5zV2mZS4oW2UazfcpsV1uuO3j02UbzX+qcxQdNqoAHxwoB4nRJuU\n"
-"Ijio45jWAssDbD8IKHZpmqRI5wUzbibkWnTZEc0YFO6iF40sNtqVr+uInP07PkQn\n"
-"1Ttkyw6isa5Dhcyq6lTVOjnlj29bFYbZxN1uuDnTpUMVeov8oQv5wLyLrDVd1sMg\n"
-"Njr2oofepZ8KjF3DKCkfsUekCHA9Pr2K/4hStd/nSwvIdNjCjfznqYadkB6wQ99a\n"
-"hTX4uJkCAwEAAaOCA/UwggPxMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE\n"
-"FJunwCR+/af8p76CGTyhUZc3l/4DMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEE\n"
-"AwIBADAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBRp6zCR\n"
-"HAOAgE4RFYhGpOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFo\n"
-"dHRwOi8vd3d3LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJh\n"
-"bmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZp\n"
-"Y2F0ZXMuaW50ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQl\n"
-"MjBCYXNpYyUyMFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwl\n"
-"MjBJbnRyYW5ldCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2Es\n"
-"Q049Q0RQLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENO\n"
-"PUNvbmZpZ3VyYXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNh\n"
-"dGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlv\n"
-"blBvaW50MIIBuQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDov\n"
-"L3d3dy5pbnRlbC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJ\n"
-"bnRyYW5ldCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAC\n"
-"hmNodHRwOi8vY2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRp\n"
-"ZmljYXRlcy9JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgx\n"
-"KS5jcnQwgcsGCCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0\n"
-"JTIwQmFzaWMlMjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIw\n"
-"U2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERD\n"
-"PWludGVsLERDPWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2Vy\n"
-"dGlmaWNhdGlvbkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAe3SmN0lsGF0h\n"
-"zq+NANnUD4YJS31UqreVm4kJv07+9CTBtlB0AVqJ2RcjRosdQmrbhx7R0WwcXSdR\n"
-"QnRGhaoDVRNehKiz3Grp6ehJr9LInhCp6WtOeKRlOSb2xgRDJCtzCi07TuAb9h2I\n"
-"urpmndeA4NEbPYL1GYEBpKYawUcFCq5yTv0YgZXy53DdBDv9ygRWYGEk7/gPgvCu\n"
-"2O1GNs9n25goy+3/aMkHnUyl3MOtiooXJR7eKOEgTPHNe42LQ9KuUz5SoZQN8vSL\n"
-"r49IRDC4dgMkGvsC5h0+ftixQ66ni6QJe6SNcpSZrpW5vBE9J+vtDI0gTyq2SYPo\n"
-"0fiS3V8p4g==\n"
-"-----END CERTIFICATE-----\n",
-NULL};
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIHSjCCBjKgAwIBAgIKYRHt9wABAAAAFTANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
+ "VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
+ "dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0xMzAyMDQyMTUyMThaFw0x\n"
+ "ODA1MjQxOTU5MzlaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
+ "b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
+ "QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALn3ogjraWSmK5Wb\n"
+ "/4e9mENA1F36FBVemaG7L93ZhRRXq4UV0PQM5/4TOe9KAaOlX+a2cuULeeUtN9Rk\n"
+ "V/nHAVzSWlqc/NTMJfuI/1AD7ICNejQFYLxDMXGjR7eAHtiMz0iTMp9u6YTw4WXh\n"
+ "WffqTPiqUZ6DEWsMic9dM9yw/JqzycKClLcTD1OCvtw7Fx4tNTu6/ngrYJcTo29e\n"
+ "BBh/DupgtgnYPYuExEkHmucb4VIDdjfRkPo/BdNqrUSYfYqnUDj5mH+hPzIgppsZ\n"
+ "Rw0S5PUZGuC1f+Zok+4vZPR+hGG3Pdm2LTUEWSnurlhyfBoM+0yxeHsmL9aHU7zt\n"
+ "EIzVmKUCAwEAAaOCBBwwggQYMBIGCSsGAQQBgjcVAQQFAgMCAAIwIwYJKwYBBAGC\n"
+ "NxUCBBYEFMqHyYZOx6LYwRwZ+5vjOyIl9hENMB0GA1UdDgQWBBQ4Y3b6tgU6qVlP\n"
+ "SoeNoIO3fpE6CzAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC\n"
+ "AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
+ "pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
+ "LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
+ "aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
+ "ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
+ "MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
+ "dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
+ "PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
+ "YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
+ "aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
+ "uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
+ "bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
+ "MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
+ "Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
+ "bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
+ "CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
+ "MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
+ "Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
+ "PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
+ "bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAsj8cHt2jSAmnIGulE9jXooAc\n"
+ "qH2xehlI+ko/al+nDnBzbjDYYjVS52XitYg8JGo6j72ijiGlGb/03FcQJRBZmUH6\n"
+ "znktx2rGTm4IdjL8quhvHthlzXXCozL8GMeeOuZ5rzHlhapKx764a5RuZtyx89uS\n"
+ "9cECon6oLGesXjFJ8Xrq6ecHZrQwJUpmvZalwvloKACAWqBh8yV12WDnUNZhtp8N\n"
+ "8rqeJZoy/lXGnTxsSSodO/5Y/CxYJM4W6u4WgvXNJSjO/0qWvb64S+pVLjBzwI+Y\n"
+ "X6oLqmBovRp1lGPOLjkXZi3EKDR8DmzhtpJq2677RtYowewnFedQ+exH9cXoJw==\n"
+ "-----END CERTIFICATE-----",
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIHSjCCBjKgAwIBAgIKYRXxrQABAAAAETANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
+ "VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
+ "dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0wOTA1MTUxODQyNDVaFw0x\n"
+ "NTA1MTUxODUyNDVaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
+ "b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
+ "QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbJOXtXYgfyoch6\n"
+ "ip5SSjijOXvpIjBxbTl5EGH/VYHmpM2O6SRlKh/uy77QS9m84sRWCJLr8cWwX9oH\n"
+ "qSmIylgcWvDpVNHx4v506DTTrbK0sbYRQYXRajOzJKeTt7NLeLrngyl45FrI9VAT\n"
+ "3yqp/2BCG1dUwcBha3dB2UbTkFOMt9o/gqoL6KvgswYMs/oGc/OIjeozdYuhnBT2\n"
+ "YlT9Ge5pfhOJWXh4DJbxnTmWwRUKq0MXFn0S00KQ/BZOTkc/5DibUmbmMrYi8ra4\n"
+ "Z2bpnoTq0WNA99O2Lk8IgmkqPdi6HwZwKCE/x01qwP8zo76rvN8sbW9pj2WzS1WF\n"
+ "tSDPeZECAwEAAaOCBBwwggQYMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE\n"
+ "FPwbdyds7Cm03lobLKmI6q59npi+MAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEE\n"
+ "BQIDAQABMCMGCSsGAQQBgjcVAgQWBBRT1n27C6cZL4QFHaUX2nFSCPxhtTAZBgkr\n"
+ "BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
+ "pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
+ "LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
+ "aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
+ "ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
+ "MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
+ "dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
+ "PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
+ "YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
+ "aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
+ "uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
+ "bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
+ "MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
+ "Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
+ "bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
+ "CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
+ "MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
+ "Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
+ "PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
+ "bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEArlAkrJXyMCssqAJT3PqnY7wt\n"
+ "sirq1fTMrVrHdmkpBKDXBQnDcTW1zfZtOPV/QDm3UsFwDBbGq+j/7U9qZ1zYHkv+\n"
+ "wrBpeFM6dlca/sgegGGAhYnQQwmlSzNXCKHMBltMjT61X8rVjyt1XJnucgat9rnT\n"
+ "2j8pztqoViVnORsGfT6DDB/bz/6bFKw4FMp1wDaJI7dKh5NUggvH36owTWI7JUvq\n"
+ "yJ8OI2qmjXrlqGexfwvltIkEk8xzuMIHWQoR8sERL2qf3nb2VYq1s1LbH5uCkZ0l\n"
+ "w/xgwFbbwjaGJ3TFOmkVKYU77nXSkfK9EXae0UZRU0WmX4t5NNt8jiL56TPpsw==\n"
+ "-----END CERTIFICATE-----\n",
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIHIzCCBgugAwIBAgIKYRok3wABAAAADDANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
+ "VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
+ "dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0wNjA1MjQxOTU2MDFaFw0x\n"
+ "MjA1MjQyMDA2MDFaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
+ "b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
+ "QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANE2pFSB0XqXoRWF\n"
+ "N7bzDesBAcTGEqcr6GVA+sMcJ5Vt17S8vGesmO2RgP6I49Q58nIhUnT054arUlOx\n"
+ "NKYbAEiVyGOK5zV2mZS4oW2UazfcpsV1uuO3j02UbzX+qcxQdNqoAHxwoB4nRJuU\n"
+ "Ijio45jWAssDbD8IKHZpmqRI5wUzbibkWnTZEc0YFO6iF40sNtqVr+uInP07PkQn\n"
+ "1Ttkyw6isa5Dhcyq6lTVOjnlj29bFYbZxN1uuDnTpUMVeov8oQv5wLyLrDVd1sMg\n"
+ "Njr2oofepZ8KjF3DKCkfsUekCHA9Pr2K/4hStd/nSwvIdNjCjfznqYadkB6wQ99a\n"
+ "hTX4uJkCAwEAAaOCA/UwggPxMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE\n"
+ "FJunwCR+/af8p76CGTyhUZc3l/4DMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEE\n"
+ "AwIBADAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBRp6zCR\n"
+ "HAOAgE4RFYhGpOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFo\n"
+ "dHRwOi8vd3d3LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJh\n"
+ "bmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZp\n"
+ "Y2F0ZXMuaW50ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQl\n"
+ "MjBCYXNpYyUyMFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwl\n"
+ "MjBJbnRyYW5ldCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2Es\n"
+ "Q049Q0RQLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENO\n"
+ "PUNvbmZpZ3VyYXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNh\n"
+ "dGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlv\n"
+ "blBvaW50MIIBuQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDov\n"
+ "L3d3dy5pbnRlbC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJ\n"
+ "bnRyYW5ldCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAC\n"
+ "hmNodHRwOi8vY2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRp\n"
+ "ZmljYXRlcy9JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgx\n"
+ "KS5jcnQwgcsGCCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0\n"
+ "JTIwQmFzaWMlMjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIw\n"
+ "U2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERD\n"
+ "PWludGVsLERDPWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2Vy\n"
+ "dGlmaWNhdGlvbkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAe3SmN0lsGF0h\n"
+ "zq+NANnUD4YJS31UqreVm4kJv07+9CTBtlB0AVqJ2RcjRosdQmrbhx7R0WwcXSdR\n"
+ "QnRGhaoDVRNehKiz3Grp6ehJr9LInhCp6WtOeKRlOSb2xgRDJCtzCi07TuAb9h2I\n"
+ "urpmndeA4NEbPYL1GYEBpKYawUcFCq5yTv0YgZXy53DdBDv9ygRWYGEk7/gPgvCu\n"
+ "2O1GNs9n25goy+3/aMkHnUyl3MOtiooXJR7eKOEgTPHNe42LQ9KuUz5SoZQN8vSL\n"
+ "r49IRDC4dgMkGvsC5h0+ftixQ66ni6QJe6SNcpSZrpW5vBE9J+vtDI0gTyq2SYPo\n"
+ "0fiS3V8p4g==\n" "-----END CERTIFICATE-----\n",
+ NULL
+};
/* GnuTLS internally calls time() to find out the current time when
verifying certificates. To avoid a time bomb, we hard code the
@@ -192,8 +192,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -242,7 +242,9 @@ void doit(void)
gnutls_global_set_log_level(4711);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, "trusted");
@@ -254,39 +256,33 @@ void doit(void)
for (j = 0; ca_list[j]; j++) {
if (debug > 2)
- printf("\tAdding certificate %d...",
- (int) j);
+ printf("\tAdding certificate %d...", (int)j);
ret = gnutls_x509_crt_init(&certs[j]);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_init[%d,%d]: %s\n",
- (int) 3, (int) j,
- gnutls_strerror(ret));
+ (int)3, (int)j, gnutls_strerror(ret));
exit(1);
}
- tmp.data = (unsigned char *) ca_list[j];
+ tmp.data = (unsigned char *)ca_list[j];
tmp.size = strlen(ca_list[j]);
ret =
- gnutls_x509_crt_import(certs[j], &tmp,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_crt_import(certs[j], &tmp, GNUTLS_X509_FMT_PEM);
if (debug > 2)
printf("done\n");
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_import[%d]: %s\n",
- (int) j,
- gnutls_strerror(ret));
+ (int)j, gnutls_strerror(ret));
exit(1);
}
- gnutls_x509_crt_print(certs[j],
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ gnutls_x509_crt_print(certs[j], GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCertificate %d: %.*s\n", (int) j,
+ printf("\tCertificate %d: %.*s\n", (int)j,
tmp.size, tmp.data);
gnutls_free(tmp.data);
}
@@ -301,11 +297,10 @@ void doit(void)
exit(1);
}
- tmp.data = (unsigned char *) v1_root_check[0];
+ tmp.data = (unsigned char *)v1_root_check[0];
tmp.size = strlen(v1_root_check[0]);
- ret =
- gnutls_x509_crt_import(end, &tmp, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(end, &tmp, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_import: %s\n",
gnutls_strerror(ret));
@@ -314,8 +309,7 @@ void doit(void)
gnutls_x509_crt_print(end, GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tEnd Certificate: %.*s\n", tmp.size,
- tmp.data);
+ printf("\tEnd Certificate: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
ret = gnutls_x509_crt_init(&ca);
@@ -325,11 +319,10 @@ void doit(void)
exit(1);
}
- tmp.data = (unsigned char *) v1_root_check[1];
+ tmp.data = (unsigned char *)v1_root_check[1];
tmp.size = strlen(v1_root_check[1]);
- ret =
- gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_import: %s\n",
gnutls_strerror(ret));
@@ -338,14 +331,12 @@ void doit(void)
gnutls_x509_crt_print(end, GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCA Certificate: %.*s\n", tmp.size,
- tmp.data);
+ printf("\tCA Certificate: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
if (debug > 2)
printf("done\n");
-
if (debug)
printf("\tChecking presence and verification...");
@@ -360,16 +351,23 @@ void doit(void)
for (j = 0; ca_list[j]; j++) {
char name[64];
snprintf(name, sizeof(name), "test-ca%d", j);
- ret = gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, certs[j], name, GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED|GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO);
+ ret =
+ gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, certs[j], name,
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO);
if (ret < 0) {
- fail("gnutls_pkcs11_copy_x509_crt: %s\n", gnutls_strerror(ret));
+ fail("gnutls_pkcs11_copy_x509_crt: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
}
gnutls_x509_trust_list_init(&tl, 0);
- ret = gnutls_x509_trust_list_add_trust_file(tl, SOFTHSM_URL, NULL, 0, 0, 0);
+ ret =
+ gnutls_x509_trust_list_add_trust_file(tl, SOFTHSM_URL, NULL, 0, 0,
+ 0);
if (ret < 0) {
fail("gnutls_x509_trust_list_add_trust_file\n");
exit(1);
@@ -382,29 +380,36 @@ void doit(void)
}
/* extract the issuer of the certificate */
- ret = gnutls_x509_trust_list_get_issuer(tl, end, &issuer, GNUTLS_TL_GET_COPY);
+ ret =
+ gnutls_x509_trust_list_get_issuer(tl, end, &issuer,
+ GNUTLS_TL_GET_COPY);
if (ret < 0) {
fail("gnutls_x509_trust_list_get_issuer should have succeeded\n");
exit(1);
}
gnutls_x509_crt_deinit(issuer);
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, ca, GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, ca,
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
if (ret != 0) {
fail("gnutls_pkcs11_crt_is_known should have failed!\n");
exit(1);
}
ret = gnutls_x509_trust_list_verify_crt2(tl, &end, 1,
- NULL, 0,
- GNUTLS_VERIFY_DISABLE_TIME_CHECKS, &verify_status, NULL);
+ NULL, 0,
+ GNUTLS_VERIFY_DISABLE_TIME_CHECKS,
+ &verify_status, NULL);
if (ret < 0) {
fail("gnutls_x509_trust_list_verify_crt2 should have succeeded\n");
exit(1);
}
if (verify_status != 0) {
- fail("verification should have succeeded: %.2x\n", verify_status);
+ fail("verification should have succeeded: %.2x\n",
+ verify_status);
exit(1);
}
diff --git a/tests/pkcs11/pkcs11-ec-privkey-test.c b/tests/pkcs11/pkcs11-ec-privkey-test.c
index 6611cd68c8..20ab233eaf 100644
--- a/tests/pkcs11/pkcs11-ec-privkey-test.c
+++ b/tests/pkcs11/pkcs11-ec-privkey-test.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -42,12 +42,11 @@
/* Tests whether signing with PKCS#11 may produce signed (invalid)
* INTEGER values in DSASignatureValue. */
-
#include "../cert-common.h"
#define PIN "1234"
-static const gnutls_datum_t testdata = {(void*)"test test", 9};
+static const gnutls_datum_t testdata = { (void *)"test test", 9 };
static void tls_log_func(int level, const char *str)
{
@@ -55,8 +54,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -65,7 +64,8 @@ int pin_func(void* userdata, int attempt, const char* url, const char *label,
return -1;
}
-int _gnutls_decode_ber_rs_raw(const gnutls_datum_t * sig_value, gnutls_datum_t *r, gnutls_datum_t *s);
+int _gnutls_decode_ber_rs_raw(const gnutls_datum_t * sig_value,
+ gnutls_datum_t * r, gnutls_datum_t * s);
void doit(void)
{
@@ -101,7 +101,9 @@ void doit(void)
gnutls_global_set_log_level(4711);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, "trusted");
@@ -114,47 +116,40 @@ void doit(void)
ret = gnutls_x509_crt_init(&crt);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_crt_init: %s\n",
- gnutls_strerror(ret));
+ "gnutls_x509_crt_init: %s\n", gnutls_strerror(ret));
exit(1);
}
ret =
- gnutls_x509_crt_import(crt, &server_ecc_cert,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_crt_import(crt, &server_ecc_cert, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_crt_import: %s\n",
- gnutls_strerror(ret));
- exit(1);
+ "gnutls_x509_crt_import: %s\n", gnutls_strerror(ret));
+ exit(1);
}
if (debug) {
- gnutls_x509_crt_print(crt,
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_ONELINE, &tmp);
- printf("\tCertificate: %.*s\n",
- tmp.size, tmp.data);
+ printf("\tCertificate: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
}
ret = gnutls_x509_privkey_init(&key);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_privkey_init: %s\n",
- gnutls_strerror(ret));
+ "gnutls_x509_privkey_init: %s\n", gnutls_strerror(ret));
exit(1);
}
ret =
gnutls_x509_privkey_import(key, &server_ecc_key,
- GNUTLS_X509_FMT_PEM);
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_privkey_import: %s\n",
gnutls_strerror(ret));
- exit(1);
+ exit(1);
}
/* initialize softhsm token */
@@ -164,23 +159,33 @@ void doit(void)
exit(1);
}
- ret = gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN, GNUTLS_PIN_USER);
+ ret =
+ gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN,
+ GNUTLS_PIN_USER);
if (ret < 0) {
fail("gnutls_pkcs11_token_set_pin: %s\n", gnutls_strerror(ret));
exit(1);
}
ret = gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, crt, "cert",
- GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE|GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE |
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("gnutls_pkcs11_copy_x509_crt: %s\n", gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_pkcs11_copy_x509_privkey(SOFTHSM_URL, key, "cert", GNUTLS_KEY_DIGITAL_SIGNATURE|GNUTLS_KEY_KEY_ENCIPHERMENT,
- GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE|GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE|GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_pkcs11_copy_x509_privkey(SOFTHSM_URL, key, "cert",
+ GNUTLS_KEY_DIGITAL_SIGNATURE |
+ GNUTLS_KEY_KEY_ENCIPHERMENT,
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE
+ | GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
- fail("gnutls_pkcs11_copy_x509_privkey: %s\n", gnutls_strerror(ret));
+ fail("gnutls_pkcs11_copy_x509_privkey: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -192,8 +197,7 @@ void doit(void)
GNUTLS_KEY_DIGITAL_SIGNATURE |
GNUTLS_KEY_KEY_ENCIPHERMENT, 0);
if (ret < 0) {
- fail("gnutls_pkcs11_copy_pubkey: %s\n",
- gnutls_strerror(ret));
+ fail("gnutls_pkcs11_copy_pubkey: %s\n", gnutls_strerror(ret));
}
gnutls_x509_crt_deinit(crt);
@@ -203,23 +207,28 @@ void doit(void)
assert(gnutls_privkey_init(&pkey) == 0);
- ret = gnutls_privkey_import_pkcs11_url(pkey, SOFTHSM_URL";object=cert;object-type=private;pin-value="PIN);
+ ret =
+ gnutls_privkey_import_pkcs11_url(pkey,
+ SOFTHSM_URL
+ ";object=cert;object-type=private;pin-value="
+ PIN);
if (ret < 0) {
- fprintf(stderr, "error in %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error in %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
/* Try to read the public key with public key URI */
assert(gnutls_pubkey_init(&pubkey3) == 0);
-
ret =
gnutls_pubkey_import_pkcs11_url(pubkey3,
SOFTHSM_URL
";object=cert;object-type=public;pin-value="
PIN, 0);
if (ret < 0) {
- fail("error in gnutls_pubkey_import_pkcs11_url: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pubkey_import_pkcs11_url: %s\n",
+ gnutls_strerror(ret));
}
/* Try to read the public key with certificate URI */
@@ -231,7 +240,8 @@ void doit(void)
";object=cert;object-type=cert;pin-value="
PIN, 0);
if (ret < 0) {
- fail("error in gnutls_pubkey_import_pkcs11_url: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pubkey_import_pkcs11_url: %s\n",
+ gnutls_strerror(ret));
}
assert(gnutls_pubkey_init(&pubkey) == 0);
@@ -240,15 +250,17 @@ void doit(void)
pk = gnutls_pubkey_get_pk_algorithm(pubkey, NULL);
assert(gnutls_pubkey_init(&pubkey2) == 0);
- assert(gnutls_pubkey_import_x509_raw(pubkey2, &server_ecc_cert, GNUTLS_X509_FMT_PEM, 0) == 0);
+ assert(gnutls_pubkey_import_x509_raw
+ (pubkey2, &server_ecc_cert, GNUTLS_X509_FMT_PEM, 0) == 0);
- for (i=0;i<100;i++) {
- gnutls_datum_t r = {NULL, 0};
- gnutls_datum_t s = {NULL, 0};
+ for (i = 0; i < 100; i++) {
+ gnutls_datum_t r = { NULL, 0 };
+ gnutls_datum_t s = { NULL, 0 };
/* check whether privkey and pubkey are operational
* by signing and verifying */
- assert(gnutls_privkey_sign_data(pkey, GNUTLS_DIG_SHA256, 0, &testdata, &sig) == 0);
+ assert(gnutls_privkey_sign_data
+ (pkey, GNUTLS_DIG_SHA256, 0, &testdata, &sig) == 0);
assert(_gnutls_decode_ber_rs_raw(&sig, &r, &s) == 0);
if (r.data[0] >= 0x80) {
@@ -260,10 +272,14 @@ void doit(void)
}
/* verify against the raw pubkey */
- assert(gnutls_pubkey_verify_data2(pubkey2, gnutls_pk_to_sign(pk, GNUTLS_DIG_SHA256), 0, &testdata, &sig) == 0);
+ assert(gnutls_pubkey_verify_data2
+ (pubkey2, gnutls_pk_to_sign(pk, GNUTLS_DIG_SHA256), 0,
+ &testdata, &sig) == 0);
/* verify against the pubkey in PKCS #11 */
- assert(gnutls_pubkey_verify_data2(pubkey, gnutls_pk_to_sign(pk, GNUTLS_DIG_SHA256), 0, &testdata, &sig) == 0);
+ assert(gnutls_pubkey_verify_data2
+ (pubkey, gnutls_pk_to_sign(pk, GNUTLS_DIG_SHA256), 0,
+ &testdata, &sig) == 0);
gnutls_free(sig.data);
gnutls_free(r.data);
@@ -280,4 +296,3 @@ void doit(void)
remove(CONFIG);
}
-
diff --git a/tests/pkcs11/pkcs11-eddsa-privkey-test.c b/tests/pkcs11/pkcs11-eddsa-privkey-test.c
index ebbfe5278d..478125a761 100644
--- a/tests/pkcs11/pkcs11-eddsa-privkey-test.c
+++ b/tests/pkcs11/pkcs11-eddsa-privkey-test.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -75,10 +75,12 @@ static unsigned verify_eddsa_presence(void)
i = 0;
do {
- ret = gnutls_pkcs11_token_get_mechanism("pkcs11:", i++, &mechanism);
- if (ret >= 0 && mechanism == 0x1057 /* CKM_EDDSA */)
+ ret =
+ gnutls_pkcs11_token_get_mechanism("pkcs11:", i++,
+ &mechanism);
+ if (ret >= 0 && mechanism == 0x1057 /* CKM_EDDSA */ )
return 1;
- } while(ret>=0);
+ } while (ret >= 0);
return 0;
}
@@ -129,7 +131,8 @@ void doit(void)
}
if (verify_eddsa_presence() == 0) {
- fprintf(stderr, "Skipping test as no EDDSA mech is supported\n");
+ fprintf(stderr,
+ "Skipping test as no EDDSA mech is supported\n");
exit(77);
}
@@ -203,8 +206,7 @@ void doit(void)
GNUTLS_KEY_DIGITAL_SIGNATURE |
GNUTLS_KEY_KEY_ENCIPHERMENT, 0);
if (ret < 0) {
- fail("gnutls_pkcs11_copy_pubkey: %s\n",
- gnutls_strerror(ret));
+ fail("gnutls_pkcs11_copy_pubkey: %s\n", gnutls_strerror(ret));
}
gnutls_x509_crt_deinit(crt);
@@ -220,20 +222,21 @@ void doit(void)
";object=cert;object-type=private;pin-value="
PIN);
if (ret < 0) {
- fail("error in gnutls_privkey_import_pkcs11_url: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_privkey_import_pkcs11_url: %s\n",
+ gnutls_strerror(ret));
}
/* Try to read the public key with public key URI */
assert(gnutls_pubkey_init(&pubkey3) == 0);
-
ret =
gnutls_pubkey_import_pkcs11_url(pubkey3,
SOFTHSM_URL
";object=cert;object-type=public;pin-value="
PIN, 0);
if (ret < 0) {
- fail("error in gnutls_pubkey_import_pkcs11_url: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pubkey_import_pkcs11_url: %s\n",
+ gnutls_strerror(ret));
}
/* Try to read the public key with certificate URI */
@@ -245,7 +248,8 @@ void doit(void)
";object=cert;object-type=cert;pin-value="
PIN, 0);
if (ret < 0) {
- fail("error in gnutls_pubkey_import_pkcs11_url: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pubkey_import_pkcs11_url: %s\n",
+ gnutls_strerror(ret));
}
assert(gnutls_pubkey_init(&pubkey) == 0);
diff --git a/tests/pkcs11/pkcs11-get-exts.c b/tests/pkcs11/pkcs11-get-exts.c
index 23b52ae7c6..9af48373b1 100644
--- a/tests/pkcs11/pkcs11-get-exts.c
+++ b/tests/pkcs11/pkcs11-get-exts.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -78,10 +78,12 @@ void doit(void)
exit(1);
}
- assert(gnutls_pkcs11_obj_init(&obj)>=0);
+ assert(gnutls_pkcs11_obj_init(&obj) >= 0);
/* check extensions */
- ret = gnutls_pkcs11_obj_import_url(obj, "pkcs11:type=cert;object=cert1", 0);
+ ret =
+ gnutls_pkcs11_obj_import_url(obj, "pkcs11:type=cert;object=cert1",
+ 0);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -94,7 +96,8 @@ void doit(void)
}
if (exts_size != 2) {
- fail("the expected extensions were not found (found %d)!\n", exts_size);
+ fail("the expected extensions were not found (found %d)!\n",
+ exts_size);
exit(1);
}
@@ -105,7 +108,9 @@ void doit(void)
{
unsigned ca;
int pathlen;
- ret = gnutls_x509_ext_import_basic_constraints(&exts[0].data, &ca, &pathlen);
+ ret =
+ gnutls_x509_ext_import_basic_constraints(&exts[0].data, &ca,
+ &pathlen);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -124,7 +129,8 @@ void doit(void)
{
unsigned keyusage;
- ret = gnutls_x509_ext_import_key_usage(&exts[1].data, &keyusage);
+ ret =
+ gnutls_x509_ext_import_key_usage(&exts[1].data, &keyusage);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -132,12 +138,14 @@ void doit(void)
if (debug)
success("usage: %x\n", keyusage);
- if (keyusage != (GNUTLS_KEY_KEY_ENCIPHERMENT|GNUTLS_KEY_ENCIPHER_ONLY|GNUTLS_KEY_KEY_CERT_SIGN)) {
+ if (keyusage !=
+ (GNUTLS_KEY_KEY_ENCIPHERMENT | GNUTLS_KEY_ENCIPHER_ONLY |
+ GNUTLS_KEY_KEY_CERT_SIGN)) {
fail("Extension does not have the expected key usage!\n");
}
}
- for (i=0;i<exts_size;i++)
+ for (i = 0; i < exts_size; i++)
gnutls_x509_ext_deinit(&exts[i]);
gnutls_free(exts);
diff --git a/tests/pkcs11/pkcs11-get-issuer.c b/tests/pkcs11/pkcs11-get-issuer.c
index 5ccd1139dc..4eb19d2a04 100644
--- a/tests/pkcs11/pkcs11-get-issuer.c
+++ b/tests/pkcs11/pkcs11-get-issuer.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -60,8 +60,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -93,7 +93,7 @@ void doit(void)
#ifdef _WIN32
exit(77);
#endif
- for (j=0;;j++) {
+ for (j = 0;; j++) {
if (chains[j].name == NULL)
break;
if (strcmp(chains[j].name, "verisign.com v1 ok") == 0) {
@@ -126,7 +126,9 @@ void doit(void)
/* write softhsm.config */
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, "trusted");
@@ -138,39 +140,33 @@ void doit(void)
for (j = 0; chains[idx].chain[j]; j++) {
if (debug > 2)
- printf("\tAdding certificate %d...",
- (int) j);
+ printf("\tAdding certificate %d...", (int)j);
ret = gnutls_x509_crt_init(&certs[j]);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_init[%d,%d]: %s\n",
- (int) 3, (int) j,
- gnutls_strerror(ret));
+ (int)3, (int)j, gnutls_strerror(ret));
exit(1);
}
- tmp.data = (unsigned char *) chains[idx].chain[j];
+ tmp.data = (unsigned char *)chains[idx].chain[j];
tmp.size = strlen(chains[idx].chain[j]);
ret =
- gnutls_x509_crt_import(certs[j], &tmp,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_crt_import(certs[j], &tmp, GNUTLS_X509_FMT_PEM);
if (debug > 2)
printf("done\n");
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_import[%s,%d]: %s\n",
- chains[idx].name, (int) j,
- gnutls_strerror(ret));
+ chains[idx].name, (int)j, gnutls_strerror(ret));
exit(1);
}
- gnutls_x509_crt_print(certs[j],
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ gnutls_x509_crt_print(certs[j], GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCertificate %d: %.*s\n", (int) j,
+ printf("\tCertificate %d: %.*s\n", (int)j,
tmp.size, tmp.data);
gnutls_free(tmp.data);
}
@@ -185,11 +181,10 @@ void doit(void)
exit(1);
}
- tmp.data = (unsigned char *) *chains[idx].ca;
+ tmp.data = (unsigned char *)*chains[idx].ca;
tmp.size = strlen(*chains[idx].ca);
- ret =
- gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(ca, &tmp, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_import: %s\n",
gnutls_strerror(ret));
@@ -201,8 +196,7 @@ void doit(void)
gnutls_x509_crt_print(ca, GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCA Certificate: %.*s\n", tmp.size,
- tmp.data);
+ printf("\tCA Certificate: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
if (debug)
@@ -216,7 +210,10 @@ void doit(void)
}
/* write CA certificate to softhsm */
- ret = gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, ca, "test-ca", GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED|GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO);
+ ret =
+ gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, ca, "test-ca",
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED |
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO);
if (ret < 0) {
fail("gnutls_pkcs11_copy_x509_crt: %s\n", gnutls_strerror(ret));
exit(1);
@@ -224,7 +221,9 @@ void doit(void)
gnutls_x509_trust_list_init(&tl, 0);
- ret = gnutls_x509_trust_list_add_trust_file(tl, SOFTHSM_URL, NULL, 0, 0, 0);
+ ret =
+ gnutls_x509_trust_list_add_trust_file(tl, SOFTHSM_URL, NULL, 0, 0,
+ 0);
if (ret < 0) {
fail("gnutls_x509_trust_list_add_trust_file\n");
exit(1);
@@ -232,7 +231,9 @@ void doit(void)
/* extract the issuer of the certificate */
issuer = NULL;
- ret = gnutls_x509_trust_list_get_issuer(tl, certs[2], &issuer, GNUTLS_TL_GET_COPY);
+ ret =
+ gnutls_x509_trust_list_get_issuer(tl, certs[2], &issuer,
+ GNUTLS_TL_GET_COPY);
if (ret < 0) {
fail("error in gnutls_x509_trust_list_get_issuer\n");
exit(1);
@@ -265,10 +266,11 @@ void doit(void)
/* Check gnutls_x509_trust_list_get_raw_issuer_by_dn */
ret = gnutls_x509_crt_get_raw_issuer_dn(certs[2], &tmp);
if (ret < 0) {
- fail("error in gnutls_x509_crt_get_raw_issuer_dn: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_x509_crt_get_raw_issuer_dn: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
-
+
ret = gnutls_x509_trust_list_get_issuer_by_dn(tl, &tmp, &issuer, 0);
gnutls_free(tmp.data);
if (ret < 0) {
diff --git a/tests/pkcs11/pkcs11-get-raw-issuer-exts.c b/tests/pkcs11/pkcs11-get-raw-issuer-exts.c
index d49fe514b4..f0e36e733b 100644
--- a/tests/pkcs11/pkcs11-get-raw-issuer-exts.c
+++ b/tests/pkcs11/pkcs11-get-raw-issuer-exts.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -61,7 +61,7 @@ void doit(void)
gnutls_x509_crt_t crt, ocrt;
unsigned keyusage;
const char *lib;
- gnutls_datum_t issuer = {NULL, 0};
+ gnutls_datum_t issuer = { NULL, 0 };
ret = global_init();
if (ret != 0) {
@@ -91,17 +91,21 @@ void doit(void)
exit(1);
}
- assert(gnutls_x509_crt_init(&crt)>=0);
- assert(gnutls_x509_crt_init(&ocrt)>=0);
+ assert(gnutls_x509_crt_init(&crt) >= 0);
+ assert(gnutls_x509_crt_init(&ocrt) >= 0);
/* check high level certificate functions */
- ret = gnutls_x509_crt_import_url(crt, "pkcs11:type=cert;object=cert1", 0);
+ ret =
+ gnutls_x509_crt_import_url(crt, "pkcs11:type=cert;object=cert1", 0);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_pkcs11_get_raw_issuer("pkcs11:", crt, &issuer, GNUTLS_X509_FMT_DER, GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT);
+ ret =
+ gnutls_pkcs11_get_raw_issuer("pkcs11:", crt, &issuer,
+ GNUTLS_X509_FMT_DER,
+ GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -109,7 +113,7 @@ void doit(void)
ret = gnutls_x509_crt_equals2(crt, &issuer);
if (ret != 0) {
- fail("exported certificates are equal!\n");
+ fail("exported certificates are equal!\n");
}
ret = gnutls_x509_crt_import(ocrt, &issuer, GNUTLS_X509_FMT_DER);
@@ -135,7 +139,9 @@ void doit(void)
exit(1);
}
- if (keyusage != (GNUTLS_KEY_KEY_ENCIPHERMENT|GNUTLS_KEY_ENCIPHER_ONLY|GNUTLS_KEY_KEY_CERT_SIGN)) {
+ if (keyusage !=
+ (GNUTLS_KEY_KEY_ENCIPHERMENT | GNUTLS_KEY_ENCIPHER_ONLY |
+ GNUTLS_KEY_KEY_CERT_SIGN)) {
fail("Extension does not have the expected key usage!\n");
}
diff --git a/tests/pkcs11/pkcs11-import-url-privkey.c b/tests/pkcs11/pkcs11-import-url-privkey.c
index 38de4603a0..caaa82d419 100644
--- a/tests/pkcs11/pkcs11-import-url-privkey.c
+++ b/tests/pkcs11/pkcs11-import-url-privkey.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,9 +39,9 @@
* some problematic cases. */
#ifdef ALL_CAPS_URI
-#define PURI "PKCS11:"
+# define PURI "PKCS11:"
#else
-#define PURI "pkcs11:"
+# define PURI "pkcs11:"
#endif
#ifdef _WIN32
@@ -81,13 +81,15 @@ void doit(void)
exit(1);
}
- ret = gnutls_pkcs11_obj_list_import_url4(&obj_list, &obj_list_size, PURI, GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY);
+ ret =
+ gnutls_pkcs11_obj_list_import_url4(&obj_list, &obj_list_size, PURI,
+ GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
}
- for (i=0;i<obj_list_size;i++)
+ for (i = 0; i < obj_list_size; i++)
gnutls_pkcs11_obj_deinit(obj_list[i]);
gnutls_free(obj_list);
obj_list_size = 0;
@@ -111,13 +113,16 @@ void doit(void)
*pflags = MOCK_FLAG_BROKEN_GET_ATTRIBUTES;
- ret = gnutls_pkcs11_obj_list_import_url4(&obj_list, &obj_list_size, PURI, GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY);
+ ret =
+ gnutls_pkcs11_obj_list_import_url4(&obj_list,
+ &obj_list_size, PURI,
+ GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
}
- for (i=0;i<obj_list_size;i++)
+ for (i = 0; i < obj_list_size; i++)
gnutls_pkcs11_obj_deinit(obj_list[i]);
gnutls_free(obj_list);
obj_list_size = 0;
diff --git a/tests/pkcs11/pkcs11-import-with-pin.c b/tests/pkcs11/pkcs11-import-with-pin.c
index 7153e85d0f..cb1aadd3d4 100644
--- a/tests/pkcs11/pkcs11-import-with-pin.c
+++ b/tests/pkcs11/pkcs11-import-with-pin.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -46,7 +46,7 @@
#define PIN "1234"
-static const gnutls_datum_t testdata = {(void*)"test test", 9};
+static const gnutls_datum_t testdata = { (void *)"test test", 9 };
static void tls_log_func(int level, const char *str)
{
@@ -54,8 +54,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -101,32 +101,30 @@ void doit(void)
gnutls_global_set_log_level(4711);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, "trusted");
if (ret < 0) {
- fprintf(stderr, "add_provider: %s\n",
- gnutls_strerror(ret));
+ fprintf(stderr, "add_provider: %s\n", gnutls_strerror(ret));
exit(1);
}
ret = gnutls_x509_privkey_init(&key);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_privkey_init: %s\n",
- gnutls_strerror(ret));
+ "gnutls_x509_privkey_init: %s\n", gnutls_strerror(ret));
exit(1);
}
- ret =
- gnutls_x509_privkey_import(key, &server_key,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_privkey_import(key, &server_key, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_privkey_import: %s\n",
gnutls_strerror(ret));
- exit(1);
+ exit(1);
}
/* initialize softhsm token */
@@ -136,16 +134,25 @@ void doit(void)
exit(1);
}
- ret = gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN, GNUTLS_PIN_USER);
+ ret =
+ gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN,
+ GNUTLS_PIN_USER);
if (ret < 0) {
fail("gnutls_pkcs11_token_set_pin: %s\n", gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_pkcs11_copy_x509_privkey(SOFTHSM_URL, key, "cert", GNUTLS_KEY_DIGITAL_SIGNATURE|GNUTLS_KEY_KEY_ENCIPHERMENT,
- GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE|GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE|GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_pkcs11_copy_x509_privkey(SOFTHSM_URL, key, "cert",
+ GNUTLS_KEY_DIGITAL_SIGNATURE |
+ GNUTLS_KEY_KEY_ENCIPHERMENT,
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE
+ | GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
- fail("gnutls_pkcs11_copy_x509_privkey: %s\n", gnutls_strerror(ret));
+ fail("gnutls_pkcs11_copy_x509_privkey: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -156,9 +163,13 @@ void doit(void)
/* Test 1
* Try importing with wrong pin-value */
- ret = gnutls_privkey_import_pkcs11_url(pkey, SOFTHSM_URL";object=cert;object-type=private;pin-value=XXXX");
+ ret =
+ gnutls_privkey_import_pkcs11_url(pkey,
+ SOFTHSM_URL
+ ";object=cert;object-type=private;pin-value=XXXX");
if (ret != GNUTLS_E_PKCS11_PIN_ERROR) {
- fprintf(stderr, "unexpected error in %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "unexpected error in %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
gnutls_privkey_deinit(pkey);
@@ -166,14 +177,20 @@ void doit(void)
/* Test 2
* Try importing with pin-value */
- ret = gnutls_privkey_import_pkcs11_url(pkey, SOFTHSM_URL";object=cert;object-type=private;pin-value="PIN);
+ ret =
+ gnutls_privkey_import_pkcs11_url(pkey,
+ SOFTHSM_URL
+ ";object=cert;object-type=private;pin-value="
+ PIN);
if (ret < 0) {
- fprintf(stderr, "error in %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error in %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
/* check whether privkey is operational by signing */
- assert(gnutls_privkey_sign_data(pkey, GNUTLS_DIG_SHA256, 0, &testdata, &sig) == 0);
+ assert(gnutls_privkey_sign_data
+ (pkey, GNUTLS_DIG_SHA256, 0, &testdata, &sig) == 0);
gnutls_free(sig.data);
gnutls_privkey_deinit(pkey);
@@ -185,10 +202,13 @@ void doit(void)
write_pin(file, "XXXX");
assert(gnutls_privkey_init(&pkey) == 0);
- snprintf(buf, sizeof(buf), "%s;object=cert;object-type=private;pin-source=%s", SOFTHSM_URL, file);
+ snprintf(buf, sizeof(buf),
+ "%s;object=cert;object-type=private;pin-source=%s",
+ SOFTHSM_URL, file);
ret = gnutls_privkey_import_pkcs11_url(pkey, buf);
if (ret != GNUTLS_E_PKCS11_PIN_ERROR) {
- fprintf(stderr, "error in %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error in %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
@@ -199,15 +219,19 @@ void doit(void)
write_pin(file, PIN);
assert(gnutls_privkey_init(&pkey) == 0);
- snprintf(buf, sizeof(buf), "%s;object=cert;object-type=private;pin-source=%s", SOFTHSM_URL, file);
+ snprintf(buf, sizeof(buf),
+ "%s;object=cert;object-type=private;pin-source=%s",
+ SOFTHSM_URL, file);
ret = gnutls_privkey_import_pkcs11_url(pkey, buf);
if (ret < 0) {
- fprintf(stderr, "error in %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error in %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
/* check whether privkey is operational by signing */
- assert(gnutls_privkey_sign_data(pkey, GNUTLS_DIG_SHA256, 0, &testdata, &sig) == 0);
+ assert(gnutls_privkey_sign_data
+ (pkey, GNUTLS_DIG_SHA256, 0, &testdata, &sig) == 0);
gnutls_free(sig.data);
gnutls_privkey_deinit(pkey);
@@ -216,4 +240,3 @@ void doit(void)
remove(CONFIG);
}
-
diff --git a/tests/pkcs11/pkcs11-is-known.c b/tests/pkcs11/pkcs11-is-known.c
index dcb9b17a18..7301be35f7 100644
--- a/tests/pkcs11/pkcs11-is-known.c
+++ b/tests/pkcs11/pkcs11-is-known.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -43,268 +43,265 @@
/* These CAs have the same DN */
static const char *ca_list[MAX_CHAIN] = {
-"-----BEGIN CERTIFICATE-----\n"
-"MIIHSjCCBjKgAwIBAgIKYRHt9wABAAAAFTANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
-"VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
-"dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0xMzAyMDQyMTUyMThaFw0x\n"
-"ODA1MjQxOTU5MzlaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
-"b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
-"QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALn3ogjraWSmK5Wb\n"
-"/4e9mENA1F36FBVemaG7L93ZhRRXq4UV0PQM5/4TOe9KAaOlX+a2cuULeeUtN9Rk\n"
-"V/nHAVzSWlqc/NTMJfuI/1AD7ICNejQFYLxDMXGjR7eAHtiMz0iTMp9u6YTw4WXh\n"
-"WffqTPiqUZ6DEWsMic9dM9yw/JqzycKClLcTD1OCvtw7Fx4tNTu6/ngrYJcTo29e\n"
-"BBh/DupgtgnYPYuExEkHmucb4VIDdjfRkPo/BdNqrUSYfYqnUDj5mH+hPzIgppsZ\n"
-"Rw0S5PUZGuC1f+Zok+4vZPR+hGG3Pdm2LTUEWSnurlhyfBoM+0yxeHsmL9aHU7zt\n"
-"EIzVmKUCAwEAAaOCBBwwggQYMBIGCSsGAQQBgjcVAQQFAgMCAAIwIwYJKwYBBAGC\n"
-"NxUCBBYEFMqHyYZOx6LYwRwZ+5vjOyIl9hENMB0GA1UdDgQWBBQ4Y3b6tgU6qVlP\n"
-"SoeNoIO3fpE6CzAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC\n"
-"AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
-"pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
-"LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
-"aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
-"ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
-"MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
-"dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
-"PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
-"YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
-"aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
-"uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
-"bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
-"MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
-"Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
-"bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
-"CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
-"MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
-"Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
-"PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
-"bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAsj8cHt2jSAmnIGulE9jXooAc\n"
-"qH2xehlI+ko/al+nDnBzbjDYYjVS52XitYg8JGo6j72ijiGlGb/03FcQJRBZmUH6\n"
-"znktx2rGTm4IdjL8quhvHthlzXXCozL8GMeeOuZ5rzHlhapKx764a5RuZtyx89uS\n"
-"9cECon6oLGesXjFJ8Xrq6ecHZrQwJUpmvZalwvloKACAWqBh8yV12WDnUNZhtp8N\n"
-"8rqeJZoy/lXGnTxsSSodO/5Y/CxYJM4W6u4WgvXNJSjO/0qWvb64S+pVLjBzwI+Y\n"
-"X6oLqmBovRp1lGPOLjkXZi3EKDR8DmzhtpJq2677RtYowewnFedQ+exH9cXoJw==\n"
-"-----END CERTIFICATE-----",
-"-----BEGIN CERTIFICATE-----\n"
-"MIIHSjCCBjKgAwIBAgIKYRXxrQABAAAAETANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
-"VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
-"dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0wOTA1MTUxODQyNDVaFw0x\n"
-"NTA1MTUxODUyNDVaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
-"b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
-"QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbJOXtXYgfyoch6\n"
-"ip5SSjijOXvpIjBxbTl5EGH/VYHmpM2O6SRlKh/uy77QS9m84sRWCJLr8cWwX9oH\n"
-"qSmIylgcWvDpVNHx4v506DTTrbK0sbYRQYXRajOzJKeTt7NLeLrngyl45FrI9VAT\n"
-"3yqp/2BCG1dUwcBha3dB2UbTkFOMt9o/gqoL6KvgswYMs/oGc/OIjeozdYuhnBT2\n"
-"YlT9Ge5pfhOJWXh4DJbxnTmWwRUKq0MXFn0S00KQ/BZOTkc/5DibUmbmMrYi8ra4\n"
-"Z2bpnoTq0WNA99O2Lk8IgmkqPdi6HwZwKCE/x01qwP8zo76rvN8sbW9pj2WzS1WF\n"
-"tSDPeZECAwEAAaOCBBwwggQYMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE\n"
-"FPwbdyds7Cm03lobLKmI6q59npi+MAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEE\n"
-"BQIDAQABMCMGCSsGAQQBgjcVAgQWBBRT1n27C6cZL4QFHaUX2nFSCPxhtTAZBgkr\n"
-"BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
-"pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
-"LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
-"aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
-"ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
-"MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
-"dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
-"PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
-"YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
-"aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
-"uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
-"bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
-"MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
-"Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
-"bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
-"CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
-"MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
-"Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
-"PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
-"bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEArlAkrJXyMCssqAJT3PqnY7wt\n"
-"sirq1fTMrVrHdmkpBKDXBQnDcTW1zfZtOPV/QDm3UsFwDBbGq+j/7U9qZ1zYHkv+\n"
-"wrBpeFM6dlca/sgegGGAhYnQQwmlSzNXCKHMBltMjT61X8rVjyt1XJnucgat9rnT\n"
-"2j8pztqoViVnORsGfT6DDB/bz/6bFKw4FMp1wDaJI7dKh5NUggvH36owTWI7JUvq\n"
-"yJ8OI2qmjXrlqGexfwvltIkEk8xzuMIHWQoR8sERL2qf3nb2VYq1s1LbH5uCkZ0l\n"
-"w/xgwFbbwjaGJ3TFOmkVKYU77nXSkfK9EXae0UZRU0WmX4t5NNt8jiL56TPpsw==\n"
-"-----END CERTIFICATE-----\n",
-"-----BEGIN CERTIFICATE-----\n"
-"MIIHIzCCBgugAwIBAgIKYRok3wABAAAADDANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
-"VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
-"dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0wNjA1MjQxOTU2MDFaFw0x\n"
-"MjA1MjQyMDA2MDFaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
-"b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
-"QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANE2pFSB0XqXoRWF\n"
-"N7bzDesBAcTGEqcr6GVA+sMcJ5Vt17S8vGesmO2RgP6I49Q58nIhUnT054arUlOx\n"
-"NKYbAEiVyGOK5zV2mZS4oW2UazfcpsV1uuO3j02UbzX+qcxQdNqoAHxwoB4nRJuU\n"
-"Ijio45jWAssDbD8IKHZpmqRI5wUzbibkWnTZEc0YFO6iF40sNtqVr+uInP07PkQn\n"
-"1Ttkyw6isa5Dhcyq6lTVOjnlj29bFYbZxN1uuDnTpUMVeov8oQv5wLyLrDVd1sMg\n"
-"Njr2oofepZ8KjF3DKCkfsUekCHA9Pr2K/4hStd/nSwvIdNjCjfznqYadkB6wQ99a\n"
-"hTX4uJkCAwEAAaOCA/UwggPxMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE\n"
-"FJunwCR+/af8p76CGTyhUZc3l/4DMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEE\n"
-"AwIBADAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBRp6zCR\n"
-"HAOAgE4RFYhGpOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFo\n"
-"dHRwOi8vd3d3LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJh\n"
-"bmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZp\n"
-"Y2F0ZXMuaW50ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQl\n"
-"MjBCYXNpYyUyMFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwl\n"
-"MjBJbnRyYW5ldCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2Es\n"
-"Q049Q0RQLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENO\n"
-"PUNvbmZpZ3VyYXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNh\n"
-"dGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlv\n"
-"blBvaW50MIIBuQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDov\n"
-"L3d3dy5pbnRlbC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJ\n"
-"bnRyYW5ldCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAC\n"
-"hmNodHRwOi8vY2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRp\n"
-"ZmljYXRlcy9JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgx\n"
-"KS5jcnQwgcsGCCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0\n"
-"JTIwQmFzaWMlMjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIw\n"
-"U2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERD\n"
-"PWludGVsLERDPWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2Vy\n"
-"dGlmaWNhdGlvbkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAe3SmN0lsGF0h\n"
-"zq+NANnUD4YJS31UqreVm4kJv07+9CTBtlB0AVqJ2RcjRosdQmrbhx7R0WwcXSdR\n"
-"QnRGhaoDVRNehKiz3Grp6ehJr9LInhCp6WtOeKRlOSb2xgRDJCtzCi07TuAb9h2I\n"
-"urpmndeA4NEbPYL1GYEBpKYawUcFCq5yTv0YgZXy53DdBDv9ygRWYGEk7/gPgvCu\n"
-"2O1GNs9n25goy+3/aMkHnUyl3MOtiooXJR7eKOEgTPHNe42LQ9KuUz5SoZQN8vSL\n"
-"r49IRDC4dgMkGvsC5h0+ftixQ66ni6QJe6SNcpSZrpW5vBE9J+vtDI0gTyq2SYPo\n"
-"0fiS3V8p4g==\n"
-"-----END CERTIFICATE-----\n",
-NULL};
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIHSjCCBjKgAwIBAgIKYRHt9wABAAAAFTANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
+ "VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
+ "dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0xMzAyMDQyMTUyMThaFw0x\n"
+ "ODA1MjQxOTU5MzlaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
+ "b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
+ "QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALn3ogjraWSmK5Wb\n"
+ "/4e9mENA1F36FBVemaG7L93ZhRRXq4UV0PQM5/4TOe9KAaOlX+a2cuULeeUtN9Rk\n"
+ "V/nHAVzSWlqc/NTMJfuI/1AD7ICNejQFYLxDMXGjR7eAHtiMz0iTMp9u6YTw4WXh\n"
+ "WffqTPiqUZ6DEWsMic9dM9yw/JqzycKClLcTD1OCvtw7Fx4tNTu6/ngrYJcTo29e\n"
+ "BBh/DupgtgnYPYuExEkHmucb4VIDdjfRkPo/BdNqrUSYfYqnUDj5mH+hPzIgppsZ\n"
+ "Rw0S5PUZGuC1f+Zok+4vZPR+hGG3Pdm2LTUEWSnurlhyfBoM+0yxeHsmL9aHU7zt\n"
+ "EIzVmKUCAwEAAaOCBBwwggQYMBIGCSsGAQQBgjcVAQQFAgMCAAIwIwYJKwYBBAGC\n"
+ "NxUCBBYEFMqHyYZOx6LYwRwZ+5vjOyIl9hENMB0GA1UdDgQWBBQ4Y3b6tgU6qVlP\n"
+ "SoeNoIO3fpE6CzAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC\n"
+ "AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
+ "pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
+ "LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
+ "aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
+ "ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
+ "MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
+ "dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
+ "PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
+ "YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
+ "aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
+ "uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
+ "bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
+ "MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
+ "Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
+ "bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
+ "CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
+ "MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
+ "Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
+ "PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
+ "bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAsj8cHt2jSAmnIGulE9jXooAc\n"
+ "qH2xehlI+ko/al+nDnBzbjDYYjVS52XitYg8JGo6j72ijiGlGb/03FcQJRBZmUH6\n"
+ "znktx2rGTm4IdjL8quhvHthlzXXCozL8GMeeOuZ5rzHlhapKx764a5RuZtyx89uS\n"
+ "9cECon6oLGesXjFJ8Xrq6ecHZrQwJUpmvZalwvloKACAWqBh8yV12WDnUNZhtp8N\n"
+ "8rqeJZoy/lXGnTxsSSodO/5Y/CxYJM4W6u4WgvXNJSjO/0qWvb64S+pVLjBzwI+Y\n"
+ "X6oLqmBovRp1lGPOLjkXZi3EKDR8DmzhtpJq2677RtYowewnFedQ+exH9cXoJw==\n"
+ "-----END CERTIFICATE-----",
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIHSjCCBjKgAwIBAgIKYRXxrQABAAAAETANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
+ "VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
+ "dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0wOTA1MTUxODQyNDVaFw0x\n"
+ "NTA1MTUxODUyNDVaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
+ "b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
+ "QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbJOXtXYgfyoch6\n"
+ "ip5SSjijOXvpIjBxbTl5EGH/VYHmpM2O6SRlKh/uy77QS9m84sRWCJLr8cWwX9oH\n"
+ "qSmIylgcWvDpVNHx4v506DTTrbK0sbYRQYXRajOzJKeTt7NLeLrngyl45FrI9VAT\n"
+ "3yqp/2BCG1dUwcBha3dB2UbTkFOMt9o/gqoL6KvgswYMs/oGc/OIjeozdYuhnBT2\n"
+ "YlT9Ge5pfhOJWXh4DJbxnTmWwRUKq0MXFn0S00KQ/BZOTkc/5DibUmbmMrYi8ra4\n"
+ "Z2bpnoTq0WNA99O2Lk8IgmkqPdi6HwZwKCE/x01qwP8zo76rvN8sbW9pj2WzS1WF\n"
+ "tSDPeZECAwEAAaOCBBwwggQYMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE\n"
+ "FPwbdyds7Cm03lobLKmI6q59npi+MAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEE\n"
+ "BQIDAQABMCMGCSsGAQQBgjcVAgQWBBRT1n27C6cZL4QFHaUX2nFSCPxhtTAZBgkr\n"
+ "BgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
+ "pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
+ "LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
+ "aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
+ "ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
+ "MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
+ "dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
+ "PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
+ "YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
+ "aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
+ "uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
+ "bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
+ "MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
+ "Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
+ "bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
+ "CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
+ "MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
+ "Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
+ "PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
+ "bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEArlAkrJXyMCssqAJT3PqnY7wt\n"
+ "sirq1fTMrVrHdmkpBKDXBQnDcTW1zfZtOPV/QDm3UsFwDBbGq+j/7U9qZ1zYHkv+\n"
+ "wrBpeFM6dlca/sgegGGAhYnQQwmlSzNXCKHMBltMjT61X8rVjyt1XJnucgat9rnT\n"
+ "2j8pztqoViVnORsGfT6DDB/bz/6bFKw4FMp1wDaJI7dKh5NUggvH36owTWI7JUvq\n"
+ "yJ8OI2qmjXrlqGexfwvltIkEk8xzuMIHWQoR8sERL2qf3nb2VYq1s1LbH5uCkZ0l\n"
+ "w/xgwFbbwjaGJ3TFOmkVKYU77nXSkfK9EXae0UZRU0WmX4t5NNt8jiL56TPpsw==\n"
+ "-----END CERTIFICATE-----\n",
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIHIzCCBgugAwIBAgIKYRok3wABAAAADDANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
+ "VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
+ "dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0wNjA1MjQxOTU2MDFaFw0x\n"
+ "MjA1MjQyMDA2MDFaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
+ "b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
+ "QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANE2pFSB0XqXoRWF\n"
+ "N7bzDesBAcTGEqcr6GVA+sMcJ5Vt17S8vGesmO2RgP6I49Q58nIhUnT054arUlOx\n"
+ "NKYbAEiVyGOK5zV2mZS4oW2UazfcpsV1uuO3j02UbzX+qcxQdNqoAHxwoB4nRJuU\n"
+ "Ijio45jWAssDbD8IKHZpmqRI5wUzbibkWnTZEc0YFO6iF40sNtqVr+uInP07PkQn\n"
+ "1Ttkyw6isa5Dhcyq6lTVOjnlj29bFYbZxN1uuDnTpUMVeov8oQv5wLyLrDVd1sMg\n"
+ "Njr2oofepZ8KjF3DKCkfsUekCHA9Pr2K/4hStd/nSwvIdNjCjfznqYadkB6wQ99a\n"
+ "hTX4uJkCAwEAAaOCA/UwggPxMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYE\n"
+ "FJunwCR+/af8p76CGTyhUZc3l/4DMAsGA1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEE\n"
+ "AwIBADAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBRp6zCR\n"
+ "HAOAgE4RFYhGpOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFo\n"
+ "dHRwOi8vd3d3LmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRlbCUyMEludHJh\n"
+ "bmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZp\n"
+ "Y2F0ZXMuaW50ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQl\n"
+ "MjBCYXNpYyUyMFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwl\n"
+ "MjBJbnRyYW5ldCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2Es\n"
+ "Q049Q0RQLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENO\n"
+ "PUNvbmZpZ3VyYXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNh\n"
+ "dGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlv\n"
+ "blBvaW50MIIBuQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDov\n"
+ "L3d3dy5pbnRlbC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJ\n"
+ "bnRyYW5ldCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAC\n"
+ "hmNodHRwOi8vY2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRp\n"
+ "ZmljYXRlcy9JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgx\n"
+ "KS5jcnQwgcsGCCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0\n"
+ "JTIwQmFzaWMlMjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIw\n"
+ "U2VydmljZXMsQ049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERD\n"
+ "PWludGVsLERDPWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2Vy\n"
+ "dGlmaWNhdGlvbkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAe3SmN0lsGF0h\n"
+ "zq+NANnUD4YJS31UqreVm4kJv07+9CTBtlB0AVqJ2RcjRosdQmrbhx7R0WwcXSdR\n"
+ "QnRGhaoDVRNehKiz3Grp6ehJr9LInhCp6WtOeKRlOSb2xgRDJCtzCi07TuAb9h2I\n"
+ "urpmndeA4NEbPYL1GYEBpKYawUcFCq5yTv0YgZXy53DdBDv9ygRWYGEk7/gPgvCu\n"
+ "2O1GNs9n25goy+3/aMkHnUyl3MOtiooXJR7eKOEgTPHNe42LQ9KuUz5SoZQN8vSL\n"
+ "r49IRDC4dgMkGvsC5h0+ftixQ66ni6QJe6SNcpSZrpW5vBE9J+vtDI0gTyq2SYPo\n"
+ "0fiS3V8p4g==\n" "-----END CERTIFICATE-----\n",
+ NULL
+};
/* this certificate has the same CN as one of the CAs above */
-static const char same_dn_cert_str[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIHSjCCBjKgAwIBAgIKYRHt9wABAAAAFTANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
-"VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
-"dGVsIEludHJhbmV0IEJvc2FjIFBvbGljeSBDQTAeFw0xMzAyMDQyMTUyMThaFw0x\n"
-"ODA1MjQxOTU5MzlaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
-"b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
-"QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALn3ogjraWSmK5Wb\n"
-"/4e9mENA1F36FBVemaG7L93ZhRRXq4UV0PQM5/4TOe9KAaOlX+a2cuULeeUtN9Rk\n"
-"V/nHAVzSWlqc/NTMJfuI/1AD7ICNejQFYLxDMXGjR7eAHtiMz0iTMp9u6YTw4WXh\n"
-"WffqTPiqUZ6DEWsMic9dM9yw/JqzycKClLcTD1OCvtw7Fx4tNTu6/ngrYJcTo29e\n"
-"BBh/DupgtgnYPYuExEkHmucb4VIDdjfRkPo/BdNqrUSYfYqnUDj5mH+hPzIgppsZ\n"
-"Rw0S5PUZGuC1f+Zok+4vZPR+hGG3Pdm2LTUEWSnurlhyfBoM+0yxeHsmL9aHU7zt\n"
-"EIzVmKUCAwEAAaOCBBwwggQYMBIGCSsGAQQBgjcVAQQFAgMCAAIwIwYJKwYBBAGC\n"
-"NxUCBBYEFMqHyYZOx6LYwRwZ+5vjOyIl9hENMB0GA1UdDgQWBBQ4Y3b6tgU6qVlP\n"
-"SoeNoIO3fpE6CzAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC\n"
-"AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
-"pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
-"LmludGVsLmNvbS9yZXBvc2l0b3J5L1hYWC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
-"aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
-"ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
-"MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
-"dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
-"PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
-"YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
-"aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
-"uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
-"bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
-"MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
-"Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
-"bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
-"CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
-"MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
-"Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
-"PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
-"bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAsj8cHt2jSAmnIGulE9jXooAc\n"
-"qH2xehlI+ko/al+nDnBzbjDYYjVS52XitYg8JGo6j72ijiGlGb/03FcQJRBZmUH6\n"
-"znktx2rGTm4IdjL8quhvHthlzXXCozL8GMeeOuZ5rzHlhapKx764a5RuZtyx89uS\n"
-"9cECon6oLGesXjFJ8Xrq6ecHZrQwJUpmvZalwvloKACAWqBh8yV12WDnUNZhtp8N\n"
-"8rqeJZoy/lXGnTxsSSodO/5Y/CxYJM4W6u4WgvXNJSjO/0qWvb64S+pVLjBzwI+Y\n"
-"X6oLqmBovRp1lGPOLjkXZi3EKDR8DmzhtpJq2677RtYowewnFedQ+exH9cXoJw==\n"
-"-----END CERTIFICATE-----\n";
+static const char same_dn_cert_str[] =
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIHSjCCBjKgAwIBAgIKYRHt9wABAAAAFTANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
+ "VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
+ "dGVsIEludHJhbmV0IEJvc2FjIFBvbGljeSBDQTAeFw0xMzAyMDQyMTUyMThaFw0x\n"
+ "ODA1MjQxOTU5MzlaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
+ "b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
+ "QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALn3ogjraWSmK5Wb\n"
+ "/4e9mENA1F36FBVemaG7L93ZhRRXq4UV0PQM5/4TOe9KAaOlX+a2cuULeeUtN9Rk\n"
+ "V/nHAVzSWlqc/NTMJfuI/1AD7ICNejQFYLxDMXGjR7eAHtiMz0iTMp9u6YTw4WXh\n"
+ "WffqTPiqUZ6DEWsMic9dM9yw/JqzycKClLcTD1OCvtw7Fx4tNTu6/ngrYJcTo29e\n"
+ "BBh/DupgtgnYPYuExEkHmucb4VIDdjfRkPo/BdNqrUSYfYqnUDj5mH+hPzIgppsZ\n"
+ "Rw0S5PUZGuC1f+Zok+4vZPR+hGG3Pdm2LTUEWSnurlhyfBoM+0yxeHsmL9aHU7zt\n"
+ "EIzVmKUCAwEAAaOCBBwwggQYMBIGCSsGAQQBgjcVAQQFAgMCAAIwIwYJKwYBBAGC\n"
+ "NxUCBBYEFMqHyYZOx6LYwRwZ+5vjOyIl9hENMB0GA1UdDgQWBBQ4Y3b6tgU6qVlP\n"
+ "SoeNoIO3fpE6CzAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC\n"
+ "AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
+ "pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
+ "LmludGVsLmNvbS9yZXBvc2l0b3J5L1hYWC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
+ "aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
+ "ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
+ "MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
+ "dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
+ "PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
+ "YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
+ "aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
+ "uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
+ "bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
+ "MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
+ "Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
+ "bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
+ "CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
+ "MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
+ "Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
+ "PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
+ "bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAsj8cHt2jSAmnIGulE9jXooAc\n"
+ "qH2xehlI+ko/al+nDnBzbjDYYjVS52XitYg8JGo6j72ijiGlGb/03FcQJRBZmUH6\n"
+ "znktx2rGTm4IdjL8quhvHthlzXXCozL8GMeeOuZ5rzHlhapKx764a5RuZtyx89uS\n"
+ "9cECon6oLGesXjFJ8Xrq6ecHZrQwJUpmvZalwvloKACAWqBh8yV12WDnUNZhtp8N\n"
+ "8rqeJZoy/lXGnTxsSSodO/5Y/CxYJM4W6u4WgvXNJSjO/0qWvb64S+pVLjBzwI+Y\n"
+ "X6oLqmBovRp1lGPOLjkXZi3EKDR8DmzhtpJq2677RtYowewnFedQ+exH9cXoJw==\n"
+ "-----END CERTIFICATE-----\n";
/* this certificate has the same subject and issuer DNs and serial as one of the CAs above */
-static const char same_issuer_cert_str[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIHSjCCBjKgAwIBAgIKYRHt9wABAAAAFTANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
-"VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
-"dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0xMzAyMDQyMTUyMThaFw0x\n"
-"ODA1MjQxOTU5MzlaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
-"b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
-"QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALn3ogjraWSmK5Wb\n"
-"/4e9mENA1F36FBVemaG7L93ZhRRXq4UV0PQM5/4TOe9KAaOlX+a2cuULeeUtN9Rk\n"
-"V/nHAVzSWlqc/NTMJfuI/1AD7ICNejQFYLxDMXGjR7eAHtiMz0iTMp9u6YTw4WXh\n"
-"WffqTPiqUZ6DEWsMic9dM9yw/JqzycKClLcTD1OCvtw7Fx4tNTu6/ngrYJcTo29e\n"
-"BBh/DupgtgnYPYuExEkHmucb4VIDdjfRkPo/BdNqrUSYfYqnUDj5mH+hPzIgppsZ\n"
-"Rw0S5PUZGuC1f+Zok+4vZPR+hGG3Pdm2LTUEWSnurlhyfBoM+0yxeHsmL9aHU7zt\n"
-"EIzVmKUCAwEAAaOCBBwwggQYMBIGCSsGAQQBgjcVAQQFAgMCAAIwIwYJKwYBBAGC\n"
-"NxUCBBYEFMqHyYZOx6LYwRwZ+5vjOyIl9hENMB0GA1UdDgQWBBQ4Y3b6tgU6qVlP\n"
-"SoeNoIO3fpE6CzAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC\n"
-"AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
-"pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
-"LmludGVsLmNvbS9yZXBvc2l0b3J5L1hYWC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
-"aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
-"ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
-"MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
-"dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
-"PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
-"YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
-"aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
-"uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
-"bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
-"MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
-"Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
-"bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
-"CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
-"MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
-"Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
-"PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
-"bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAsj8cHt2jSAmnIGulE9jXooAc\n"
-"qH2xehlI+ko/al+nDnBzbjDYYjVS52XitYg8JGo6j72ijiGlGb/03FcQJRBZmUH6\n"
-"znktx2rGTm4IdjL8quhvHthlzXXCozL8GMeeOuZ5rzHlhapKx764a5RuZtyx89uS\n"
-"9cECon6oLGesXjFJ8Xrq6ecHZrQwJUpmvZalwvloKACAWqBh8yV12WDnUNZhtp8N\n"
-"8rqeJZoy/lXGnTxsSSodO/5Y/CxYJM4W6u4WgvXNJSjO/0qWvb64S+pVLjBzwI+Y\n"
-"X6oLqmBovRp1lGPOLjkXZi3EKDR8DmzhtpJq2677RtYowewnFedQ+exH9cXoJw==\n"
-"-----END CERTIFICATE-----\n";
+static const char same_issuer_cert_str[] =
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIHSjCCBjKgAwIBAgIKYRHt9wABAAAAFTANBgkqhkiG9w0BAQUFADBSMQswCQYD\n"
+ "VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xJzAlBgNVBAMTHklu\n"
+ "dGVsIEludHJhbmV0IEJhc2ljIFBvbGljeSBDQTAeFw0xMzAyMDQyMTUyMThaFw0x\n"
+ "ODA1MjQxOTU5MzlaMFYxCzAJBgNVBAYTAlVTMRowGAYDVQQKExFJbnRlbCBDb3Jw\n"
+ "b3JhdGlvbjErMCkGA1UEAxMiSW50ZWwgSW50cmFuZXQgQmFzaWMgSXNzdWluZyBD\n"
+ "QSAyQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALn3ogjraWSmK5Wb\n"
+ "/4e9mENA1F36FBVemaG7L93ZhRRXq4UV0PQM5/4TOe9KAaOlX+a2cuULeeUtN9Rk\n"
+ "V/nHAVzSWlqc/NTMJfuI/1AD7ICNejQFYLxDMXGjR7eAHtiMz0iTMp9u6YTw4WXh\n"
+ "WffqTPiqUZ6DEWsMic9dM9yw/JqzycKClLcTD1OCvtw7Fx4tNTu6/ngrYJcTo29e\n"
+ "BBh/DupgtgnYPYuExEkHmucb4VIDdjfRkPo/BdNqrUSYfYqnUDj5mH+hPzIgppsZ\n"
+ "Rw0S5PUZGuC1f+Zok+4vZPR+hGG3Pdm2LTUEWSnurlhyfBoM+0yxeHsmL9aHU7zt\n"
+ "EIzVmKUCAwEAAaOCBBwwggQYMBIGCSsGAQQBgjcVAQQFAgMCAAIwIwYJKwYBBAGC\n"
+ "NxUCBBYEFMqHyYZOx6LYwRwZ+5vjOyIl9hENMB0GA1UdDgQWBBQ4Y3b6tgU6qVlP\n"
+ "SoeNoIO3fpE6CzAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC\n"
+ "AYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBRp6zCRHAOAgE4RFYhG\n"
+ "pOJBmtNpHzCCAaIGA1UdHwSCAZkwggGVMIIBkaCCAY2gggGJhlFodHRwOi8vd3d3\n"
+ "LmludGVsLmNvbS9yZXBvc2l0b3J5L1hYWC9JbnRlbCUyMEludHJhbmV0JTIwQmFz\n"
+ "aWMlMjBQb2xpY3klMjBDQSgxKS5jcmyGWmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuaW50\n"
+ "ZWwuY29tL3JlcG9zaXRvcnkvQ1JML0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUy\n"
+ "MFBvbGljeSUyMENBKDEpLmNybIaB12xkYXA6Ly8vQ049SW50ZWwlMjBJbnRyYW5l\n"
+ "dCUyMEJhc2ljJTIwUG9saWN5JTIwQ0EoMSksQ049bWNzaWJwY2EsQ049Q0RQLENO\n"
+ "PVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNvbmZpZ3Vy\n"
+ "YXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y2VydGlmaWNhdGVSZXZvY2F0\n"
+ "aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50MIIB\n"
+ "uQYIKwYBBQUHAQEEggGrMIIBpzBmBggrBgEFBQcwAoZaaHR0cDovL3d3dy5pbnRl\n"
+ "bC5jb20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUy\n"
+ "MEJhc2ljJTIwUG9saWN5JTIwQ0EoMSkuY3J0MG8GCCsGAQUFBzAChmNodHRwOi8v\n"
+ "Y2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L2NlcnRpZmljYXRlcy9J\n"
+ "bnRlbCUyMEludHJhbmV0JTIwQmFzaWMlMjBQb2xpY3klMjBDQSgxKS5jcnQwgcsG\n"
+ "CCsGAQUFBzAChoG+bGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIwQmFzaWMl\n"
+ "MjBQb2xpY3klMjBDQSxDTj1BSUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs\n"
+ "Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1jb3JwLERDPWludGVsLERD\n"
+ "PWNvbT9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlv\n"
+ "bkF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAQEAsj8cHt2jSAmnIGulE9jXooAc\n"
+ "qH2xehlI+ko/al+nDnBzbjDYYjVS52XitYg8JGo6j72ijiGlGb/03FcQJRBZmUH6\n"
+ "znktx2rGTm4IdjL8quhvHthlzXXCozL8GMeeOuZ5rzHlhapKx764a5RuZtyx89uS\n"
+ "9cECon6oLGesXjFJ8Xrq6ecHZrQwJUpmvZalwvloKACAWqBh8yV12WDnUNZhtp8N\n"
+ "8rqeJZoy/lXGnTxsSSodO/5Y/CxYJM4W6u4WgvXNJSjO/0qWvb64S+pVLjBzwI+Y\n"
+ "X6oLqmBovRp1lGPOLjkXZi3EKDR8DmzhtpJq2677RtYowewnFedQ+exH9cXoJw==\n"
+ "-----END CERTIFICATE-----\n";
/* this certificate is issued by one of the above */
static const char intermediate_str[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIH4DCCBsigAwIBAgIKFpIKYgACAAJ8lTANBgkqhkiG9w0BAQUFADBWMQswCQYD\n"
-"VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xKzApBgNVBAMTIklu\n"
-"dGVsIEludHJhbmV0IEJhc2ljIElzc3VpbmcgQ0EgMkIwHhcNMTQwMTA4MTc0MTM5\n"
-"WhcNMTcwMTA3MTc0MTM5WjB1MQswCQYDVQQGEwJJRTELMAkGA1UEBxMCSVIxGjAY\n"
-"BgNVBAoTEUludGVsIENvcnBvcmF0aW9uMQswCQYDVQQLEwJJVDEWMBQGA1UEAxMN\n"
-"dnBuLmludGVsLmNvbTEYMBYGA1UEAxMPc2NzaXIuaW50ZWwuY29tMIIBIjANBgkq\n"
-"hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi3WoORH5ITJ2lpcgCHex1HBUnmN/bb6s\n"
-"sS1Arm50NEHMlqGfbsdCxq2iodMvrGWvdRAPaf/7Ii1UwUhEzxyKYAXC3KRAgioh\n"
-"C0pvGmAFq1ciDYRhANPlW92lIgkt83WwGtOcES2u36VmUxBfdQe6rO3ldoZHVofY\n"
-"uIG/ubBVLz0NhWMaRYSUzTv/4PKJ4paIS7COUROYsyKwc5wNjTcR2PB7RRW+YHgM\n"
-"FkvqPpLjLAGpHdN+wuPNLlUcyzkZVhhXxvQJ9gc5hw/LLQvbmeiGIZCvOVy3ZSfi\n"
-"cGw2jkbqKcFttVV52Wild3ZigALZtkKuFnGw5DEIfk4EAZhG8eHfFQIDAQABo4IE\n"
-"jzCCBIswCwYDVR0PBAQDAgWgMB0GA1UdDgQWBBR4EAIG7OggvIFAhrB8m0eyhCKV\n"
-"GzAfBgNVHSMEGDAWgBQ4Y3b6tgU6qVlPSoeNoIO3fpE6CzCCAbkGA1UdHwSCAbAw\n"
-"ggGsMIIBqKCCAaSgggGghoHibGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIw\n"
-"QmFzaWMlMjBJc3N1aW5nJTIwQ0ElMjAyQigyKSxDTj1BWlNNQ1NJQkVDQTAyLENO\n"
-"PUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1D\n"
-"b25maWd1cmF0aW9uLERDPWNvcnAsREM9aW50ZWwsREM9Y29tP2NlcnRpZmljYXRl\n"
-"UmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Q\n"
-"b2ludIZXaHR0cDovL3d3dy5pbnRlbC5jb20vcmVwb3NpdG9yeS9DUkwvSW50ZWwl\n"
-"MjBJbnRyYW5ldCUyMEJhc2ljJTIwSXNzdWluZyUyMENBJTIwMkIoMikuY3JshmBo\n"
-"dHRwOi8vY2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRl\n"
-"bCUyMEludHJhbmV0JTIwQmFzaWMlMjBJc3N1aW5nJTIwQ0ElMjAyQigyKS5jcmww\n"
-"ggHLBggrBgEFBQcBAQSCAb0wggG5MIHRBggrBgEFBQcwAoaBxGxkYXA6Ly8vQ049\n"
-"SW50ZWwlMjBJbnRyYW5ldCUyMEJhc2ljJTIwSXNzdWluZyUyMENBJTIwMkIsQ049\n"
-"QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNv\n"
-"bmZpZ3VyYXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y0FDZXJ0aWZpY2F0\n"
-"ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwbAYIKwYB\n"
-"BQUHMAKGYGh0dHA6Ly93d3cuaW50ZWwuY29tL3JlcG9zaXRvcnkvY2VydGlmaWNh\n"
-"dGVzL0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUyMElzc3VpbmclMjBDQSUyMDJC\n"
-"KDIpLmNydDB1BggrBgEFBQcwAoZpaHR0cDovL2NlcnRpZmljYXRlcy5pbnRlbC5j\n"
-"b20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUyMEJh\n"
-"c2ljJTIwSXNzdWluZyUyMENBJTIwMkIoMikuY3J0MD0GCSsGAQQBgjcVBwQwMC4G\n"
-"JisGAQQBgjcVCIbDjHWEmeVRg/2BKIWOn1OCkcAJZ4eC0UGC37J5AgFkAgERMB0G\n"
-"A1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAnBgkrBgEEAYI3FQoEGjAYMAoG\n"
-"CCsGAQUFBwMCMAoGCCsGAQUFBwMBMCkGA1UdEQQiMCCCD3Njc2lyLmludGVsLmNv\n"
-"bYINdnBuLmludGVsLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEALjO591IHOTt28HZ9\n"
-"+Vm2TJp8EJSgWW3luKFAAPUOxix5FgK7mqNQk1052qV8NCQKqChO64f6kl3R29Pp\n"
-"yv0ALYaxdYZXkxPuts05gwu9caeH9fK6vGTRk5pWygVIsobS2MypCYFs9VftFw5d\n"
-"EPUAOsigQmkBC+k+icYzZDjm4HBGd0mTHwniNsKkkjxSnF4UGH9OYp4+hs9/pWly\n"
-"19X4gVWwuxKB59TOe/tVxHBt57zZA3zYyXG+VPzVmklmYLPxVFcmeUDOjWU3x3Wp\n"
-"0D5YUmvQlsd4+73IYw0BrvB42bQEFDUU/v0u6mwluk1m0LEdm+jlM/YCbrAgA3O8\n"
-"eV1xMQ==\n"
-"-----END CERTIFICATE-----\n";
-
-
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIH4DCCBsigAwIBAgIKFpIKYgACAAJ8lTANBgkqhkiG9w0BAQUFADBWMQswCQYD\n"
+ "VQQGEwJVUzEaMBgGA1UEChMRSW50ZWwgQ29ycG9yYXRpb24xKzApBgNVBAMTIklu\n"
+ "dGVsIEludHJhbmV0IEJhc2ljIElzc3VpbmcgQ0EgMkIwHhcNMTQwMTA4MTc0MTM5\n"
+ "WhcNMTcwMTA3MTc0MTM5WjB1MQswCQYDVQQGEwJJRTELMAkGA1UEBxMCSVIxGjAY\n"
+ "BgNVBAoTEUludGVsIENvcnBvcmF0aW9uMQswCQYDVQQLEwJJVDEWMBQGA1UEAxMN\n"
+ "dnBuLmludGVsLmNvbTEYMBYGA1UEAxMPc2NzaXIuaW50ZWwuY29tMIIBIjANBgkq\n"
+ "hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAi3WoORH5ITJ2lpcgCHex1HBUnmN/bb6s\n"
+ "sS1Arm50NEHMlqGfbsdCxq2iodMvrGWvdRAPaf/7Ii1UwUhEzxyKYAXC3KRAgioh\n"
+ "C0pvGmAFq1ciDYRhANPlW92lIgkt83WwGtOcES2u36VmUxBfdQe6rO3ldoZHVofY\n"
+ "uIG/ubBVLz0NhWMaRYSUzTv/4PKJ4paIS7COUROYsyKwc5wNjTcR2PB7RRW+YHgM\n"
+ "FkvqPpLjLAGpHdN+wuPNLlUcyzkZVhhXxvQJ9gc5hw/LLQvbmeiGIZCvOVy3ZSfi\n"
+ "cGw2jkbqKcFttVV52Wild3ZigALZtkKuFnGw5DEIfk4EAZhG8eHfFQIDAQABo4IE\n"
+ "jzCCBIswCwYDVR0PBAQDAgWgMB0GA1UdDgQWBBR4EAIG7OggvIFAhrB8m0eyhCKV\n"
+ "GzAfBgNVHSMEGDAWgBQ4Y3b6tgU6qVlPSoeNoIO3fpE6CzCCAbkGA1UdHwSCAbAw\n"
+ "ggGsMIIBqKCCAaSgggGghoHibGRhcDovLy9DTj1JbnRlbCUyMEludHJhbmV0JTIw\n"
+ "QmFzaWMlMjBJc3N1aW5nJTIwQ0ElMjAyQigyKSxDTj1BWlNNQ1NJQkVDQTAyLENO\n"
+ "PUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxDTj1TZXJ2aWNlcyxDTj1D\n"
+ "b25maWd1cmF0aW9uLERDPWNvcnAsREM9aW50ZWwsREM9Y29tP2NlcnRpZmljYXRl\n"
+ "UmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Q\n"
+ "b2ludIZXaHR0cDovL3d3dy5pbnRlbC5jb20vcmVwb3NpdG9yeS9DUkwvSW50ZWwl\n"
+ "MjBJbnRyYW5ldCUyMEJhc2ljJTIwSXNzdWluZyUyMENBJTIwMkIoMikuY3JshmBo\n"
+ "dHRwOi8vY2VydGlmaWNhdGVzLmludGVsLmNvbS9yZXBvc2l0b3J5L0NSTC9JbnRl\n"
+ "bCUyMEludHJhbmV0JTIwQmFzaWMlMjBJc3N1aW5nJTIwQ0ElMjAyQigyKS5jcmww\n"
+ "ggHLBggrBgEFBQcBAQSCAb0wggG5MIHRBggrBgEFBQcwAoaBxGxkYXA6Ly8vQ049\n"
+ "SW50ZWwlMjBJbnRyYW5ldCUyMEJhc2ljJTIwSXNzdWluZyUyMENBJTIwMkIsQ049\n"
+ "QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZpY2VzLENOPUNv\n"
+ "bmZpZ3VyYXRpb24sREM9Y29ycCxEQz1pbnRlbCxEQz1jb20/Y0FDZXJ0aWZpY2F0\n"
+ "ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwbAYIKwYB\n"
+ "BQUHMAKGYGh0dHA6Ly93d3cuaW50ZWwuY29tL3JlcG9zaXRvcnkvY2VydGlmaWNh\n"
+ "dGVzL0ludGVsJTIwSW50cmFuZXQlMjBCYXNpYyUyMElzc3VpbmclMjBDQSUyMDJC\n"
+ "KDIpLmNydDB1BggrBgEFBQcwAoZpaHR0cDovL2NlcnRpZmljYXRlcy5pbnRlbC5j\n"
+ "b20vcmVwb3NpdG9yeS9jZXJ0aWZpY2F0ZXMvSW50ZWwlMjBJbnRyYW5ldCUyMEJh\n"
+ "c2ljJTIwSXNzdWluZyUyMENBJTIwMkIoMikuY3J0MD0GCSsGAQQBgjcVBwQwMC4G\n"
+ "JisGAQQBgjcVCIbDjHWEmeVRg/2BKIWOn1OCkcAJZ4eC0UGC37J5AgFkAgERMB0G\n"
+ "A1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAnBgkrBgEEAYI3FQoEGjAYMAoG\n"
+ "CCsGAQUFBwMCMAoGCCsGAQUFBwMBMCkGA1UdEQQiMCCCD3Njc2lyLmludGVsLmNv\n"
+ "bYINdnBuLmludGVsLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEALjO591IHOTt28HZ9\n"
+ "+Vm2TJp8EJSgWW3luKFAAPUOxix5FgK7mqNQk1052qV8NCQKqChO64f6kl3R29Pp\n"
+ "yv0ALYaxdYZXkxPuts05gwu9caeH9fK6vGTRk5pWygVIsobS2MypCYFs9VftFw5d\n"
+ "EPUAOsigQmkBC+k+icYzZDjm4HBGd0mTHwniNsKkkjxSnF4UGH9OYp4+hs9/pWly\n"
+ "19X4gVWwuxKB59TOe/tVxHBt57zZA3zYyXG+VPzVmklmYLPxVFcmeUDOjWU3x3Wp\n"
+ "0D5YUmvQlsd4+73IYw0BrvB42bQEFDUU/v0u6mwluk1m0LEdm+jlM/YCbrAgA3O8\n"
+ "eV1xMQ==\n" "-----END CERTIFICATE-----\n";
/* GnuTLS internally calls time() to find out the current time when
verifying certificates. To avoid a time bomb, we hard code the
@@ -328,8 +325,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -377,7 +374,9 @@ void doit(void)
gnutls_global_set_log_level(4711);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, "trusted");
@@ -389,39 +388,33 @@ void doit(void)
for (j = 0; ca_list[j]; j++) {
if (debug > 2)
- printf("\tAdding certificate %d...",
- (int) j);
+ printf("\tAdding certificate %d...", (int)j);
ret = gnutls_x509_crt_init(&certs[j]);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_init[%d,%d]: %s\n",
- (int) 3, (int) j,
- gnutls_strerror(ret));
+ (int)3, (int)j, gnutls_strerror(ret));
exit(1);
}
- tmp.data = (unsigned char *) ca_list[j];
+ tmp.data = (unsigned char *)ca_list[j];
tmp.size = strlen(ca_list[j]);
ret =
- gnutls_x509_crt_import(certs[j], &tmp,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_crt_import(certs[j], &tmp, GNUTLS_X509_FMT_PEM);
if (debug > 2)
printf("done\n");
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_import[%d]: %s\n",
- (int) j,
- gnutls_strerror(ret));
+ (int)j, gnutls_strerror(ret));
exit(1);
}
- gnutls_x509_crt_print(certs[j],
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ gnutls_x509_crt_print(certs[j], GNUTLS_CRT_PRINT_ONELINE, &tmp);
if (debug)
- printf("\tCertificate %d: %.*s\n", (int) j,
+ printf("\tCertificate %d: %.*s\n", (int)j,
tmp.size, tmp.data);
gnutls_free(tmp.data);
}
@@ -436,11 +429,10 @@ void doit(void)
exit(1);
}
- tmp.data = (unsigned char *) intermediate_str;
+ tmp.data = (unsigned char *)intermediate_str;
tmp.size = strlen(intermediate_str);
- ret =
- gnutls_x509_crt_import(intermediate, &tmp, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(intermediate, &tmp, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_import: %s\n",
gnutls_strerror(ret));
@@ -456,25 +448,23 @@ void doit(void)
tmp.data);
gnutls_free(tmp.data);
- assert(gnutls_x509_crt_init(&same_dn)>=0);
- assert(gnutls_x509_crt_init(&same_issuer)>=0);
+ assert(gnutls_x509_crt_init(&same_dn) >= 0);
+ assert(gnutls_x509_crt_init(&same_issuer) >= 0);
- tmp.data = (unsigned char *) same_issuer_cert_str;
+ tmp.data = (unsigned char *)same_issuer_cert_str;
tmp.size = strlen(same_issuer_cert_str);
- ret =
- gnutls_x509_crt_import(same_dn, &tmp, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(same_dn, &tmp, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_import: %s\n",
gnutls_strerror(ret));
exit(1);
}
- tmp.data = (unsigned char *) same_dn_cert_str;
+ tmp.data = (unsigned char *)same_dn_cert_str;
tmp.size = strlen(same_dn_cert_str);
- ret =
- gnutls_x509_crt_import(same_issuer, &tmp, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(same_issuer, &tmp, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "gnutls_x509_crt_import: %s\n",
gnutls_strerror(ret));
@@ -495,13 +485,18 @@ void doit(void)
for (j = 0; ca_list[j]; j++) {
char name[64];
snprintf(name, sizeof(name), "test-ca%d", j);
- ret = gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, certs[j], name, GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED|GNUTLS_PKCS11_OBJ_FLAG_MARK_CA|GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO);
+ ret =
+ gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, certs[j], name,
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED
+ | GNUTLS_PKCS11_OBJ_FLAG_MARK_CA
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO);
if (ret < 0) {
- fail("gnutls_pkcs11_copy_x509_crt: %s\n", gnutls_strerror(ret));
+ fail("gnutls_pkcs11_copy_x509_crt: %s\n",
+ gnutls_strerror(ret));
}
}
-
/* try to extract an issuer when using an object URL
*/
gnutls_x509_trust_list_init(&tl, 0);
@@ -513,7 +508,9 @@ void doit(void)
}
/* extract the issuer of the certificate */
- ret = gnutls_x509_trust_list_get_issuer(tl, intermediate, &issuer, GNUTLS_TL_GET_COPY);
+ ret =
+ gnutls_x509_trust_list_get_issuer(tl, intermediate, &issuer,
+ GNUTLS_TL_GET_COPY);
if (ret < 0) {
fail("gnutls_x509_trust_list_get_issuer (with expl. object) should have succeeded\n");
exit(1);
@@ -522,55 +519,69 @@ void doit(void)
gnutls_x509_trust_list_deinit(tl, 1);
-
-
/* Try to extract issuers using PKCS #11 token URL
*/
gnutls_x509_trust_list_init(&tl, 0);
- ret = gnutls_x509_trust_list_add_trust_file(tl, SOFTHSM_URL, NULL, 0, 0, 0);
+ ret =
+ gnutls_x509_trust_list_add_trust_file(tl, SOFTHSM_URL, NULL, 0, 0,
+ 0);
if (ret < 0) {
fail("gnutls_x509_trust_list_add_trust_file\n");
exit(1);
}
/* extract the issuer of the certificate */
- ret = gnutls_x509_trust_list_get_issuer(tl, intermediate, &issuer, GNUTLS_TL_GET_COPY);
+ ret =
+ gnutls_x509_trust_list_get_issuer(tl, intermediate, &issuer,
+ GNUTLS_TL_GET_COPY);
if (ret < 0) {
fail("gnutls_x509_trust_list_get_issuer should have succeeded\n");
exit(1);
}
gnutls_x509_crt_deinit(issuer);
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, certs[2], GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, certs[2],
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
if (ret == 0) {
fail("error in gnutls_pkcs11_crt_is_known - 0\n");
exit(1);
}
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, certs[0], GNUTLS_PKCS11_OBJ_FLAG_COMPARE|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, certs[0],
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
if (ret == 0) {
fail("error in gnutls_pkcs11_crt_is_known - 0\n");
exit(1);
}
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, certs[1], GNUTLS_PKCS11_OBJ_FLAG_COMPARE|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, certs[1],
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
if (ret == 0) {
fail("error in gnutls_pkcs11_crt_is_known - 0\n");
exit(1);
}
-
#if 0
/* test searching invalid certs. the distrusted flag disables any validity check except DN and serial number
* matching so it should work - unfortunately works only under p11-kit */
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_dn, GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_dn,
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED);
if (ret == 0) {
fail("error in gnutls_pkcs11_crt_is_known - did not get a known cert\n");
exit(1);
}
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_issuer, GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_issuer,
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED);
if (ret == 0) {
fail("error in gnutls_pkcs11_crt_is_known - did not get a known cert\n");
exit(1);
@@ -592,39 +603,54 @@ void doit(void)
}
/* these are invalid certificates but their key matches existing keys, the following should work */
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_dn, GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_dn,
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
if (ret == 0) {
fail("error in gnutls_pkcs11_crt_is_known - did not find a cert that does match key\n");
exit(1);
}
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_issuer, GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_issuer,
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
if (ret == 0) {
fail("error in gnutls_pkcs11_crt_is_known - did not find a cert that does match key\n");
exit(1);
}
-
/* The following check whether the RETRIEVE_TRUSTED implies compare of the certificate */
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_dn, GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_dn,
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
if (ret != 0) {
fail("error in gnutls_pkcs11_crt_is_known - found a cert that doesn't match\n");
exit(1);
}
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_issuer, GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_issuer,
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
if (ret != 0) {
fail("error in gnutls_pkcs11_crt_is_known - found a cert that doesn't match\n");
exit(1);
}
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_dn, GNUTLS_PKCS11_OBJ_FLAG_COMPARE|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_dn,
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
if (ret != 0) {
fail("error in gnutls_pkcs11_crt_is_known - found a cert that doesn't match\n");
exit(1);
}
- ret = gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_issuer, GNUTLS_PKCS11_OBJ_FLAG_COMPARE|GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
+ ret =
+ gnutls_pkcs11_crt_is_known(SOFTHSM_URL, same_issuer,
+ GNUTLS_PKCS11_OBJ_FLAG_COMPARE |
+ GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED);
if (ret != 0) {
fail("error in gnutls_pkcs11_crt_is_known - found a cert that doesn't match\n");
exit(1);
diff --git a/tests/pkcs11/pkcs11-mechanisms.c b/tests/pkcs11/pkcs11-mechanisms.c
index e3ac80fdcb..464abfc831 100644
--- a/tests/pkcs11/pkcs11-mechanisms.c
+++ b/tests/pkcs11/pkcs11-mechanisms.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -41,13 +41,12 @@
#if defined(HAVE___REGISTER_ATFORK)
-#ifdef _WIN32
-# define P11LIB "libpkcs11mock1.dll"
-#else
-# include <dlfcn.h>
-# define P11LIB "libpkcs11mock1.so"
-#endif
-
+# ifdef _WIN32
+# define P11LIB "libpkcs11mock1.dll"
+# else
+# include <dlfcn.h>
+# define P11LIB "libpkcs11mock1.so"
+# endif
static void tls_log_func(int level, const char *str)
{
@@ -87,12 +86,14 @@ void doit(void)
exit(1);
}
- for (i=0;;i++) {
+ for (i = 0;; i++) {
ret = gnutls_pkcs11_token_get_mechanism("pkcs11:", i, &mech);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
success("mech: %lu\n", mech);
- ret = gnutls_pkcs11_token_check_mechanism("pkcs11:", mech, NULL, 0, 0);
+ ret =
+ gnutls_pkcs11_token_check_mechanism("pkcs11:", mech, NULL,
+ 0, 0);
if (ret == 0) {
fail("mechanism %ld was reported are supported, but is not found!\n", mech);
}
diff --git a/tests/pkcs11/pkcs11-mock-ext.h b/tests/pkcs11/pkcs11-mock-ext.h
index 4c6b8343b3..83f64b5d36 100644
--- a/tests/pkcs11/pkcs11-mock-ext.h
+++ b/tests/pkcs11/pkcs11-mock-ext.h
@@ -24,9 +24,9 @@
/* This flag instructs the module to return CKR_OK on sensitive
* objects */
-#define MOCK_FLAG_BROKEN_GET_ATTRIBUTES 1
-#define MOCK_FLAG_ALWAYS_AUTH (1<<1)
+# define MOCK_FLAG_BROKEN_GET_ATTRIBUTES 1
+# define MOCK_FLAG_ALWAYS_AUTH (1<<1)
/* simulate the safenet HSMs always auth behavior */
-#define MOCK_FLAG_SAFENET_ALWAYS_AUTH (1<<2)
+# define MOCK_FLAG_SAFENET_ALWAYS_AUTH (1<<2)
#endif
diff --git a/tests/pkcs11/pkcs11-mock.c b/tests/pkcs11/pkcs11-mock.c
index 8b7462a2fe..b264ebc2f3 100644
--- a/tests/pkcs11/pkcs11-mock.c
+++ b/tests/pkcs11/pkcs11-mock.c
@@ -32,116 +32,118 @@ unsigned int pkcs11_mock_flags = 0;
* module. */
const char mock_certificate[] =
- "\x30\x82\x03\x97\x30\x82\x02\x4f\xa0\x03\x02\x01\x02\x02\x04\x4d"
- "\xa7\x54\x21\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b"
- "\x05\x00\x30\x32\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x42"
- "\x45\x31\x0f\x30\x0d\x06\x03\x55\x04\x0a\x13\x06\x47\x6e\x75\x54"
- "\x4c\x53\x31\x12\x30\x10\x06\x03\x55\x04\x03\x13\x09\x6c\x6f\x63"
- "\x61\x6c\x68\x6f\x73\x74\x30\x1e\x17\x0d\x31\x31\x30\x34\x31\x34"
- "\x32\x30\x30\x38\x30\x32\x5a\x17\x0d\x33\x38\x30\x38\x32\x39\x32"
- "\x30\x30\x38\x30\x34\x5a\x30\x32\x31\x0b\x30\x09\x06\x03\x55\x04"
- "\x06\x13\x02\x42\x45\x31\x0f\x30\x0d\x06\x03\x55\x04\x0a\x13\x06"
- "\x47\x6e\x75\x54\x4c\x53\x31\x12\x30\x10\x06\x03\x55\x04\x03\x13"
- "\x09\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74\x30\x82\x01\x52\x30\x0d"
- "\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x82\x01"
- "\x3f\x00\x30\x82\x01\x3a\x02\x82\x01\x31\x00\xdd\xcf\x97\xd2\xa5"
- "\x1d\x95\xdd\x86\x18\xd8\xc4\xb9\xad\xa6\x0c\xb4\x9d\xb6\xdc\xfa"
- "\xdc\x21\xe1\x3a\x62\x34\x07\xe8\x33\xb2\xe8\x97\xee\x2c\x41\xd2"
- "\x12\xf1\x5f\xed\xe4\x76\xff\x65\x26\x1e\x0c\xc7\x41\x15\x69\x5f"
- "\x0d\xf9\xad\x89\x14\x8d\xea\xd7\x16\x52\x9a\x47\xc1\xbb\x00\x02"
- "\xe4\x88\x45\x73\x78\xa4\xae\xdb\x38\xc3\xc6\x07\xd2\x64\x0e\x87"
- "\xed\x74\x8c\x6b\xc4\xc0\x02\x50\x7c\x4e\xa6\xd1\x58\xe9\xe5\x13"
- "\x09\xa9\xdb\x5a\xea\xeb\x0f\x06\x80\x5c\x09\xef\x94\xc8\xe9\xfb"
- "\x37\x2e\x75\xe1\xac\x93\xad\x9b\x37\x13\x4b\x66\x3a\x76\x33\xd8"
- "\xc4\xd7\x4c\xfb\x61\xc8\x92\x21\x07\xfc\xdf\xa9\x88\x54\xe4\xa3"
- "\xa9\x47\xd2\x6c\xb8\xe3\x39\x89\x11\x88\x38\x2d\xa2\xdc\x3e\x5e"
- "\x4a\xa9\xa4\x8e\xd5\x1f\xb2\xd0\xdd\x41\x3c\xda\x10\x68\x9e\x47"
- "\x1b\x65\x02\xa2\xc5\x28\x73\x02\x83\x03\x09\xfd\xf5\x29\x7e\x97"
- "\xdc\x2a\x4e\x4b\xaa\x79\x46\x46\x70\x86\x1b\x9b\xb8\xf6\x8a\xbe"
- "\x29\x87\x7d\x5f\xda\xa5\x97\x6b\xef\xc8\x43\x09\x43\xe2\x1f\x8a"
- "\x16\x7e\x1d\x50\x5d\xf5\xda\x02\xee\xf2\xc3\x2a\x48\xe6\x6b\x30"
- "\xea\x02\xd7\xef\xac\x8b\x0c\xb8\xc1\x85\xd8\xbf\x7c\x85\xa8\x1e"
- "\x83\xbe\x5c\x26\x2e\x79\x7b\x47\xf5\x4a\x3f\x66\x62\x92\xfd\x41"
- "\x20\xb6\x2c\x00\xf0\x52\xca\x26\x06\x2d\x7c\xcf\x7a\x50\x7d\x0f"
- "\xcb\xdd\x97\x20\xc8\x6f\xe4\xe0\x50\xf4\xe3\x02\x03\x01\x00\x01"
- "\xa3\x55\x30\x53\x30\x0c\x06\x03\x55\x1d\x13\x01\x01\xff\x04\x02"
- "\x30\x00\x30\x13\x06\x03\x55\x1d\x25\x04\x0c\x30\x0a\x06\x08\x2b"
- "\x06\x01\x05\x05\x07\x03\x01\x30\x0f\x06\x03\x55\x1d\x0f\x01\x01"
- "\xff\x04\x05\x03\x03\x07\xa0\x00\x30\x1d\x06\x03\x55\x1d\x0e\x04"
- "\x16\x04\x14\x92\x53\xd6\x71\xb9\xf8\x68\xaa\xb3\x53\xf6\x8d\xf5"
- "\x39\x45\x66\x9c\xa7\xe5\x31\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7"
- "\x0d\x01\x01\x0b\x05\x00\x03\x82\x01\x31\x00\x98\xbf\x48\x89\xc1"
- "\xe6\xe6\x15\x13\xcc\xfc\xba\xed\xa0\x89\xe5\x86\x45\x30\x73\x68"
- "\xb2\x79\x1f\x88\x02\x80\xfb\x2d\xc9\xb8\x21\x55\x8d\xc5\xb7\x56"
- "\x1b\xcf\xc3\x76\xee\xd0\xf0\xd9\x22\x3a\x63\x92\xc5\x04\x86\x70"
- "\x1e\x42\x33\x2a\x3b\xc4\x14\x08\xc5\x42\x92\x73\x7c\x3e\x39\xc0"
- "\xee\x34\xc7\x33\x16\x5f\x93\xae\xcf\x1f\x9a\x30\x09\x51\xfe\x2d"
- "\x94\x9c\x28\xad\x2a\x7e\xe4\x14\x81\x45\x6b\x0d\xd7\x11\x21\xfc"
- "\xdb\x27\x17\x74\xb4\xcc\x94\x1a\x6e\x9e\x7b\x58\xa9\xe0\x06\x8d"
- "\xda\x5f\x60\xe1\xb8\x6f\x28\x68\xb6\x58\xbe\xc5\xac\x36\x47\x37"
- "\xf6\xa8\x38\x74\x23\x81\xf3\x22\xbe\x61\xff\x08\x08\x87\xeb\xc2"
- "\x8f\x29\x25\x75\x5d\x4c\xeb\xd5\x09\x28\xab\x7b\x99\xf9\x69\x08"
- "\xa2\xc6\x02\xd2\x2e\xcd\xfa\xf1\x19\xce\x3f\x44\x6a\xa1\x4b\xa8"
- "\x56\xd5\x11\xae\x44\xe3\x68\x05\x50\x57\x8d\x72\x0f\xc7\x21\xdb"
- "\x8f\xa3\x50\x78\x5d\x5a\x39\xcb\x90\x3d\x52\x43\x33\xbf\xea\x89"
- "\x07\x1a\x92\xcc\x85\x27\xa8\x3d\x34\xb8\x5b\x52\xee\xef\x20\xb9"
- "\xb6\xff\xea\xc5\x90\xd3\x47\xc5\x51\x90\xe2\xe6\x3e\x52\xb9\x1e"
- "\x79\x18\xbe\xfd\xe2\x24\xbe\x47\x32\x5a\xb0\x03\x6b\xaa\xdb\xc3"
- "\xdb\xf6\x60\x44\x08\xb6\x2c\x19\x47\xa2\xf0\x43\x7f\xf0\x07\x97"
- "\x57\xab\xec\xa0\xb8\x6a\x49\xce\x08\xe6\xc3\x4d\xf2\xa4\xe9\xb8"
- "\x43\xe7\xf0\x84\xd7\x1a\x72\x14\x5d\x82\x1a";
+ "\x30\x82\x03\x97\x30\x82\x02\x4f\xa0\x03\x02\x01\x02\x02\x04\x4d"
+ "\xa7\x54\x21\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b"
+ "\x05\x00\x30\x32\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x42"
+ "\x45\x31\x0f\x30\x0d\x06\x03\x55\x04\x0a\x13\x06\x47\x6e\x75\x54"
+ "\x4c\x53\x31\x12\x30\x10\x06\x03\x55\x04\x03\x13\x09\x6c\x6f\x63"
+ "\x61\x6c\x68\x6f\x73\x74\x30\x1e\x17\x0d\x31\x31\x30\x34\x31\x34"
+ "\x32\x30\x30\x38\x30\x32\x5a\x17\x0d\x33\x38\x30\x38\x32\x39\x32"
+ "\x30\x30\x38\x30\x34\x5a\x30\x32\x31\x0b\x30\x09\x06\x03\x55\x04"
+ "\x06\x13\x02\x42\x45\x31\x0f\x30\x0d\x06\x03\x55\x04\x0a\x13\x06"
+ "\x47\x6e\x75\x54\x4c\x53\x31\x12\x30\x10\x06\x03\x55\x04\x03\x13"
+ "\x09\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74\x30\x82\x01\x52\x30\x0d"
+ "\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x82\x01"
+ "\x3f\x00\x30\x82\x01\x3a\x02\x82\x01\x31\x00\xdd\xcf\x97\xd2\xa5"
+ "\x1d\x95\xdd\x86\x18\xd8\xc4\xb9\xad\xa6\x0c\xb4\x9d\xb6\xdc\xfa"
+ "\xdc\x21\xe1\x3a\x62\x34\x07\xe8\x33\xb2\xe8\x97\xee\x2c\x41\xd2"
+ "\x12\xf1\x5f\xed\xe4\x76\xff\x65\x26\x1e\x0c\xc7\x41\x15\x69\x5f"
+ "\x0d\xf9\xad\x89\x14\x8d\xea\xd7\x16\x52\x9a\x47\xc1\xbb\x00\x02"
+ "\xe4\x88\x45\x73\x78\xa4\xae\xdb\x38\xc3\xc6\x07\xd2\x64\x0e\x87"
+ "\xed\x74\x8c\x6b\xc4\xc0\x02\x50\x7c\x4e\xa6\xd1\x58\xe9\xe5\x13"
+ "\x09\xa9\xdb\x5a\xea\xeb\x0f\x06\x80\x5c\x09\xef\x94\xc8\xe9\xfb"
+ "\x37\x2e\x75\xe1\xac\x93\xad\x9b\x37\x13\x4b\x66\x3a\x76\x33\xd8"
+ "\xc4\xd7\x4c\xfb\x61\xc8\x92\x21\x07\xfc\xdf\xa9\x88\x54\xe4\xa3"
+ "\xa9\x47\xd2\x6c\xb8\xe3\x39\x89\x11\x88\x38\x2d\xa2\xdc\x3e\x5e"
+ "\x4a\xa9\xa4\x8e\xd5\x1f\xb2\xd0\xdd\x41\x3c\xda\x10\x68\x9e\x47"
+ "\x1b\x65\x02\xa2\xc5\x28\x73\x02\x83\x03\x09\xfd\xf5\x29\x7e\x97"
+ "\xdc\x2a\x4e\x4b\xaa\x79\x46\x46\x70\x86\x1b\x9b\xb8\xf6\x8a\xbe"
+ "\x29\x87\x7d\x5f\xda\xa5\x97\x6b\xef\xc8\x43\x09\x43\xe2\x1f\x8a"
+ "\x16\x7e\x1d\x50\x5d\xf5\xda\x02\xee\xf2\xc3\x2a\x48\xe6\x6b\x30"
+ "\xea\x02\xd7\xef\xac\x8b\x0c\xb8\xc1\x85\xd8\xbf\x7c\x85\xa8\x1e"
+ "\x83\xbe\x5c\x26\x2e\x79\x7b\x47\xf5\x4a\x3f\x66\x62\x92\xfd\x41"
+ "\x20\xb6\x2c\x00\xf0\x52\xca\x26\x06\x2d\x7c\xcf\x7a\x50\x7d\x0f"
+ "\xcb\xdd\x97\x20\xc8\x6f\xe4\xe0\x50\xf4\xe3\x02\x03\x01\x00\x01"
+ "\xa3\x55\x30\x53\x30\x0c\x06\x03\x55\x1d\x13\x01\x01\xff\x04\x02"
+ "\x30\x00\x30\x13\x06\x03\x55\x1d\x25\x04\x0c\x30\x0a\x06\x08\x2b"
+ "\x06\x01\x05\x05\x07\x03\x01\x30\x0f\x06\x03\x55\x1d\x0f\x01\x01"
+ "\xff\x04\x05\x03\x03\x07\xa0\x00\x30\x1d\x06\x03\x55\x1d\x0e\x04"
+ "\x16\x04\x14\x92\x53\xd6\x71\xb9\xf8\x68\xaa\xb3\x53\xf6\x8d\xf5"
+ "\x39\x45\x66\x9c\xa7\xe5\x31\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7"
+ "\x0d\x01\x01\x0b\x05\x00\x03\x82\x01\x31\x00\x98\xbf\x48\x89\xc1"
+ "\xe6\xe6\x15\x13\xcc\xfc\xba\xed\xa0\x89\xe5\x86\x45\x30\x73\x68"
+ "\xb2\x79\x1f\x88\x02\x80\xfb\x2d\xc9\xb8\x21\x55\x8d\xc5\xb7\x56"
+ "\x1b\xcf\xc3\x76\xee\xd0\xf0\xd9\x22\x3a\x63\x92\xc5\x04\x86\x70"
+ "\x1e\x42\x33\x2a\x3b\xc4\x14\x08\xc5\x42\x92\x73\x7c\x3e\x39\xc0"
+ "\xee\x34\xc7\x33\x16\x5f\x93\xae\xcf\x1f\x9a\x30\x09\x51\xfe\x2d"
+ "\x94\x9c\x28\xad\x2a\x7e\xe4\x14\x81\x45\x6b\x0d\xd7\x11\x21\xfc"
+ "\xdb\x27\x17\x74\xb4\xcc\x94\x1a\x6e\x9e\x7b\x58\xa9\xe0\x06\x8d"
+ "\xda\x5f\x60\xe1\xb8\x6f\x28\x68\xb6\x58\xbe\xc5\xac\x36\x47\x37"
+ "\xf6\xa8\x38\x74\x23\x81\xf3\x22\xbe\x61\xff\x08\x08\x87\xeb\xc2"
+ "\x8f\x29\x25\x75\x5d\x4c\xeb\xd5\x09\x28\xab\x7b\x99\xf9\x69\x08"
+ "\xa2\xc6\x02\xd2\x2e\xcd\xfa\xf1\x19\xce\x3f\x44\x6a\xa1\x4b\xa8"
+ "\x56\xd5\x11\xae\x44\xe3\x68\x05\x50\x57\x8d\x72\x0f\xc7\x21\xdb"
+ "\x8f\xa3\x50\x78\x5d\x5a\x39\xcb\x90\x3d\x52\x43\x33\xbf\xea\x89"
+ "\x07\x1a\x92\xcc\x85\x27\xa8\x3d\x34\xb8\x5b\x52\xee\xef\x20\xb9"
+ "\xb6\xff\xea\xc5\x90\xd3\x47\xc5\x51\x90\xe2\xe6\x3e\x52\xb9\x1e"
+ "\x79\x18\xbe\xfd\xe2\x24\xbe\x47\x32\x5a\xb0\x03\x6b\xaa\xdb\xc3"
+ "\xdb\xf6\x60\x44\x08\xb6\x2c\x19\x47\xa2\xf0\x43\x7f\xf0\x07\x97"
+ "\x57\xab\xec\xa0\xb8\x6a\x49\xce\x08\xe6\xc3\x4d\xf2\xa4\xe9\xb8"
+ "\x43\xe7\xf0\x84\xd7\x1a\x72\x14\x5d\x82\x1a";
/* ca == true */
-const char mock_cert_ext1[] = "\x30\x0f\x06\x03\x55\x1d\x13\x01\x01\xff\x04\x05\x30\x03\x01\x01\xff";
+const char mock_cert_ext1[] =
+ "\x30\x0f\x06\x03\x55\x1d\x13\x01\x01\xff\x04\x05\x30\x03\x01\x01\xff";
/* GNUTLS_KEY_ENCIPHER_ONLY | GNUTLS_KEY_KEY_ENCIPHERMENT | GNUTLS_KEY_KEY_CERT_SIGN */
-const char mock_cert_ext2[] = "\x30\x0f\x06\x03\x55\x1d\x0f\x01\x01\xff\x04\x05\x03\x03\x07\x25\x00";
+const char mock_cert_ext2[] =
+ "\x30\x0f\x06\x03\x55\x1d\x0f\x01\x01\xff\x04\x05\x03\x03\x07\x25\x00";
const char mock_pubkey[] =
- "\x30\x82\x01\x52\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01"
- "\x01\x05\x00\x03\x82\x01\x3f\x00\x30\x82\x01\x3a\x02\x82\x01\x31"
- "\x00\xdd\xcf\x97\xd2\xa5\x1d\x95\xdd\x86\x18\xd8\xc4\xb9\xad\xa6"
- "\x0c\xb4\x9d\xb6\xdc\xfa\xdc\x21\xe1\x3a\x62\x34\x07\xe8\x33\xb2"
- "\xe8\x97\xee\x2c\x41\xd2\x12\xf1\x5f\xed\xe4\x76\xff\x65\x26\x1e"
- "\x0c\xc7\x41\x15\x69\x5f\x0d\xf9\xad\x89\x14\x8d\xea\xd7\x16\x52"
- "\x9a\x47\xc1\xbb\x00\x02\xe4\x88\x45\x73\x78\xa4\xae\xdb\x38\xc3"
- "\xc6\x07\xd2\x64\x0e\x87\xed\x74\x8c\x6b\xc4\xc0\x02\x50\x7c\x4e"
- "\xa6\xd1\x58\xe9\xe5\x13\x09\xa9\xdb\x5a\xea\xeb\x0f\x06\x80\x5c"
- "\x09\xef\x94\xc8\xe9\xfb\x37\x2e\x75\xe1\xac\x93\xad\x9b\x37\x13"
- "\x4b\x66\x3a\x76\x33\xd8\xc4\xd7\x4c\xfb\x61\xc8\x92\x21\x07\xfc"
- "\xdf\xa9\x88\x54\xe4\xa3\xa9\x47\xd2\x6c\xb8\xe3\x39\x89\x11\x88"
- "\x38\x2d\xa2\xdc\x3e\x5e\x4a\xa9\xa4\x8e\xd5\x1f\xb2\xd0\xdd\x41"
- "\x3c\xda\x10\x68\x9e\x47\x1b\x65\x02\xa2\xc5\x28\x73\x02\x83\x03"
- "\x09\xfd\xf5\x29\x7e\x97\xdc\x2a\x4e\x4b\xaa\x79\x46\x46\x70\x86"
- "\x1b\x9b\xb8\xf6\x8a\xbe\x29\x87\x7d\x5f\xda\xa5\x97\x6b\xef\xc8"
- "\x43\x09\x43\xe2\x1f\x8a\x16\x7e\x1d\x50\x5d\xf5\xda\x02\xee\xf2"
- "\xc3\x2a\x48\xe6\x6b\x30\xea\x02\xd7\xef\xac\x8b\x0c\xb8\xc1\x85"
- "\xd8\xbf\x7c\x85\xa8\x1e\x83\xbe\x5c\x26\x2e\x79\x7b\x47\xf5\x4a"
- "\x3f\x66\x62\x92\xfd\x41\x20\xb6\x2c\x00\xf0\x52\xca\x26\x06\x2d"
- "\x7c\xcf\x7a\x50\x7d\x0f\xcb\xdd\x97\x20\xc8\x6f\xe4\xe0\x50\xf4"
- "\xe3\x02\x03\x01\x00\x01";
+ "\x30\x82\x01\x52\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01"
+ "\x01\x05\x00\x03\x82\x01\x3f\x00\x30\x82\x01\x3a\x02\x82\x01\x31"
+ "\x00\xdd\xcf\x97\xd2\xa5\x1d\x95\xdd\x86\x18\xd8\xc4\xb9\xad\xa6"
+ "\x0c\xb4\x9d\xb6\xdc\xfa\xdc\x21\xe1\x3a\x62\x34\x07\xe8\x33\xb2"
+ "\xe8\x97\xee\x2c\x41\xd2\x12\xf1\x5f\xed\xe4\x76\xff\x65\x26\x1e"
+ "\x0c\xc7\x41\x15\x69\x5f\x0d\xf9\xad\x89\x14\x8d\xea\xd7\x16\x52"
+ "\x9a\x47\xc1\xbb\x00\x02\xe4\x88\x45\x73\x78\xa4\xae\xdb\x38\xc3"
+ "\xc6\x07\xd2\x64\x0e\x87\xed\x74\x8c\x6b\xc4\xc0\x02\x50\x7c\x4e"
+ "\xa6\xd1\x58\xe9\xe5\x13\x09\xa9\xdb\x5a\xea\xeb\x0f\x06\x80\x5c"
+ "\x09\xef\x94\xc8\xe9\xfb\x37\x2e\x75\xe1\xac\x93\xad\x9b\x37\x13"
+ "\x4b\x66\x3a\x76\x33\xd8\xc4\xd7\x4c\xfb\x61\xc8\x92\x21\x07\xfc"
+ "\xdf\xa9\x88\x54\xe4\xa3\xa9\x47\xd2\x6c\xb8\xe3\x39\x89\x11\x88"
+ "\x38\x2d\xa2\xdc\x3e\x5e\x4a\xa9\xa4\x8e\xd5\x1f\xb2\xd0\xdd\x41"
+ "\x3c\xda\x10\x68\x9e\x47\x1b\x65\x02\xa2\xc5\x28\x73\x02\x83\x03"
+ "\x09\xfd\xf5\x29\x7e\x97\xdc\x2a\x4e\x4b\xaa\x79\x46\x46\x70\x86"
+ "\x1b\x9b\xb8\xf6\x8a\xbe\x29\x87\x7d\x5f\xda\xa5\x97\x6b\xef\xc8"
+ "\x43\x09\x43\xe2\x1f\x8a\x16\x7e\x1d\x50\x5d\xf5\xda\x02\xee\xf2"
+ "\xc3\x2a\x48\xe6\x6b\x30\xea\x02\xd7\xef\xac\x8b\x0c\xb8\xc1\x85"
+ "\xd8\xbf\x7c\x85\xa8\x1e\x83\xbe\x5c\x26\x2e\x79\x7b\x47\xf5\x4a"
+ "\x3f\x66\x62\x92\xfd\x41\x20\xb6\x2c\x00\xf0\x52\xca\x26\x06\x2d"
+ "\x7c\xcf\x7a\x50\x7d\x0f\xcb\xdd\x97\x20\xc8\x6f\xe4\xe0\x50\xf4"
+ "\xe3\x02\x03\x01\x00\x01";
const char mock_public_exponent[] = "\x01\x00\x01";
const char mock_modulus[] =
- "\xDD\xCF\x97\xD2\xA5\x1D\x95\xDD\x86\x18\xD8\xC4\xB9\xAD\xA6\x0C"
- "\xB4\x9D\xB6\xDC\xFA\xDC\x21\xE1\x3A\x62\x34\x07\xE8\x33\xB2\xE8"
- "\x97\xEE\x2C\x41\xD2\x12\xF1\x5F\xED\xE4\x76\xFF\x65\x26\x1E\x0C"
- "\xC7\x41\x15\x69\x5F\x0D\xF9\xAD\x89\x14\x8D\xEA\xD7\x16\x52\x9A"
- "\x47\xC1\xBB\x00\x02\xE4\x88\x45\x73\x78\xA4\xAE\xDB\x38\xC3\xC6"
- "\x07\xD2\x64\x0E\x87\xED\x74\x8C\x6B\xC4\xC0\x02\x50\x7C\x4E\xA6"
- "\xD1\x58\xE9\xE5\x13\x09\xA9\xDB\x5A\xEA\xEB\x0F\x06\x80\x5C\x09"
- "\xEF\x94\xC8\xE9\xFB\x37\x2E\x75\xE1\xAC\x93\xAD\x9B\x37\x13\x4B"
- "\x66\x3A\x76\x33\xD8\xC4\xD7\x4C\xFB\x61\xC8\x92\x21\x07\xFC\xDF"
- "\xA9\x88\x54\xE4\xA3\xA9\x47\xD2\x6C\xB8\xE3\x39\x89\x11\x88\x38"
- "\x2D\xA2\xDC\x3E\x5E\x4A\xA9\xA4\x8E\xD5\x1F\xB2\xD0\xDD\x41\x3C"
- "\xDA\x10\x68\x9E\x47\x1B\x65\x02\xA2\xC5\x28\x73\x02\x83\x03\x09"
- "\xFD\xF5\x29\x7E\x97\xDC\x2A\x4E\x4B\xAA\x79\x46\x46\x70\x86\x1B"
- "\x9B\xB8\xF6\x8A\xBE\x29\x87\x7D\x5F\xDA\xA5\x97\x6B\xEF\xC8\x43"
- "\x09\x43\xE2\x1F\x8A\x16\x7E\x1D\x50\x5D\xF5\xDA\x02\xEE\xF2\xC3"
- "\x2A\x48\xE6\x6B\x30\xEA\x02\xD7\xEF\xAC\x8B\x0C\xB8\xC1\x85\xD8"
- "\xBF\x7C\x85\xA8\x1E\x83\xBE\x5C\x26\x2E\x79\x7B\x47\xF5\x4A\x3F"
- "\x66\x62\x92\xFD\x41\x20\xB6\x2C\x00\xF0\x52\xCA\x26\x06\x2D\x7C"
- "\xCF\x7A\x50\x7D\x0F\xCB\xDD\x97\x20\xC8\x6F\xE4\xE0\x50\xF4\xE3";
+ "\xDD\xCF\x97\xD2\xA5\x1D\x95\xDD\x86\x18\xD8\xC4\xB9\xAD\xA6\x0C"
+ "\xB4\x9D\xB6\xDC\xFA\xDC\x21\xE1\x3A\x62\x34\x07\xE8\x33\xB2\xE8"
+ "\x97\xEE\x2C\x41\xD2\x12\xF1\x5F\xED\xE4\x76\xFF\x65\x26\x1E\x0C"
+ "\xC7\x41\x15\x69\x5F\x0D\xF9\xAD\x89\x14\x8D\xEA\xD7\x16\x52\x9A"
+ "\x47\xC1\xBB\x00\x02\xE4\x88\x45\x73\x78\xA4\xAE\xDB\x38\xC3\xC6"
+ "\x07\xD2\x64\x0E\x87\xED\x74\x8C\x6B\xC4\xC0\x02\x50\x7C\x4E\xA6"
+ "\xD1\x58\xE9\xE5\x13\x09\xA9\xDB\x5A\xEA\xEB\x0F\x06\x80\x5C\x09"
+ "\xEF\x94\xC8\xE9\xFB\x37\x2E\x75\xE1\xAC\x93\xAD\x9B\x37\x13\x4B"
+ "\x66\x3A\x76\x33\xD8\xC4\xD7\x4C\xFB\x61\xC8\x92\x21\x07\xFC\xDF"
+ "\xA9\x88\x54\xE4\xA3\xA9\x47\xD2\x6C\xB8\xE3\x39\x89\x11\x88\x38"
+ "\x2D\xA2\xDC\x3E\x5E\x4A\xA9\xA4\x8E\xD5\x1F\xB2\xD0\xDD\x41\x3C"
+ "\xDA\x10\x68\x9E\x47\x1B\x65\x02\xA2\xC5\x28\x73\x02\x83\x03\x09"
+ "\xFD\xF5\x29\x7E\x97\xDC\x2A\x4E\x4B\xAA\x79\x46\x46\x70\x86\x1B"
+ "\x9B\xB8\xF6\x8A\xBE\x29\x87\x7D\x5F\xDA\xA5\x97\x6B\xEF\xC8\x43"
+ "\x09\x43\xE2\x1F\x8A\x16\x7E\x1D\x50\x5D\xF5\xDA\x02\xEE\xF2\xC3"
+ "\x2A\x48\xE6\x6B\x30\xEA\x02\xD7\xEF\xAC\x8B\x0C\xB8\xC1\x85\xD8"
+ "\xBF\x7C\x85\xA8\x1E\x83\xBE\x5C\x26\x2E\x79\x7B\x47\xF5\x4A\x3F"
+ "\x66\x62\x92\xFD\x41\x20\xB6\x2C\x00\xF0\x52\xCA\x26\x06\x2D\x7C"
+ "\xCF\x7A\x50\x7D\x0F\xCB\xDD\x97\x20\xC8\x6F\xE4\xE0\x50\xF4\xE3";
const char mock_subject[] =
- "DN: C=US, O=Test Government, OU=Test Department, OU=Test Agency/serialNumber=";
+ "DN: C=US, O=Test Government, OU=Test Department, OU=Test Agency/serialNumber=";
CK_BBOOL pkcs11_mock_initialized = CK_FALSE;
CK_BBOOL pkcs11_mock_session_opened = CK_FALSE;
@@ -149,8 +151,7 @@ CK_BBOOL pkcs11_mock_session_reauth = CK_FALSE;
static session_ptr_st *mock_session = NULL;
-CK_FUNCTION_LIST pkcs11_mock_functions =
-{
+CK_FUNCTION_LIST pkcs11_mock_functions = {
{2, 20},
&C_Initialize,
&C_Finalize,
@@ -223,7 +224,8 @@ CK_FUNCTION_LIST pkcs11_mock_functions =
};
#if defined(HAVE___REGISTER_ATFORK)
-extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void), void *);
+extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void),
+ void *);
extern void *__dso_handle;
static unsigned registered_fork_handler = 0;
@@ -233,7 +235,8 @@ static void fork_handler(void)
pkcs11_mock_session_opened = CK_FALSE;
if (mock_session) {
mock_session->state = CKS_RO_PUBLIC_SESSION;
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
free(mock_session->find_label);
}
free(mock_session);
@@ -241,9 +244,7 @@ static void fork_handler(void)
}
#endif
-
-CK_DEFINE_FUNCTION(CK_RV, C_Initialize)(CK_VOID_PTR pInitArgs)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_Initialize) (CK_VOID_PTR pInitArgs) {
if (CK_TRUE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_ALREADY_INITIALIZED;
@@ -259,9 +260,7 @@ CK_DEFINE_FUNCTION(CK_RV, C_Initialize)(CK_VOID_PTR pInitArgs)
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_Finalize)(CK_VOID_PTR pReserved)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_Finalize) (CK_VOID_PTR pReserved) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
@@ -272,9 +271,7 @@ CK_DEFINE_FUNCTION(CK_RV, C_Finalize)(CK_VOID_PTR pReserved)
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetInfo)(CK_INFO_PTR pInfo)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetInfo) (CK_INFO_PTR pInfo) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
@@ -284,18 +281,22 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetInfo)(CK_INFO_PTR pInfo)
pInfo->cryptokiVersion.major = 0x02;
pInfo->cryptokiVersion.minor = 0x14;
memset(pInfo->manufacturerID, ' ', sizeof(pInfo->manufacturerID));
- memcpy(pInfo->manufacturerID, PKCS11_MOCK_CK_INFO_MANUFACTURER_ID, strlen(PKCS11_MOCK_CK_INFO_MANUFACTURER_ID));
+ memcpy(pInfo->manufacturerID, PKCS11_MOCK_CK_INFO_MANUFACTURER_ID,
+ strlen(PKCS11_MOCK_CK_INFO_MANUFACTURER_ID));
pInfo->flags = 0;
- memset(pInfo->libraryDescription, ' ', sizeof(pInfo->libraryDescription));
- memcpy(pInfo->libraryDescription, PKCS11_MOCK_CK_INFO_LIBRARY_DESCRIPTION, strlen(PKCS11_MOCK_CK_INFO_LIBRARY_DESCRIPTION));
+ memset(pInfo->libraryDescription, ' ',
+ sizeof(pInfo->libraryDescription));
+ memcpy(pInfo->libraryDescription,
+ PKCS11_MOCK_CK_INFO_LIBRARY_DESCRIPTION,
+ strlen(PKCS11_MOCK_CK_INFO_LIBRARY_DESCRIPTION));
pInfo->libraryVersion.major = 0x01;
pInfo->libraryVersion.minor = 0x00;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetFunctionList)(CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
+CK_DEFINE_FUNCTION(CK_RV,
+ C_GetFunctionList) (CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
{
if (NULL == ppFunctionList)
return CKR_ARGUMENTS_BAD;
@@ -305,9 +306,9 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetFunctionList)(CK_FUNCTION_LIST_PTR_PTR ppFunction
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetSlotList)(CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList, CK_ULONG_PTR pulCount)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetSlotList) (CK_BBOOL tokenPresent,
+ CK_SLOT_ID_PTR pSlotList,
+ CK_ULONG_PTR pulCount) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
@@ -316,12 +317,9 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetSlotList)(CK_BBOOL tokenPresent, CK_SLOT_ID_PTR p
if (NULL == pulCount)
return CKR_ARGUMENTS_BAD;
- if (NULL == pSlotList)
- {
+ if (NULL == pSlotList) {
*pulCount = 1;
- }
- else
- {
+ } else {
if (0 == *pulCount)
return CKR_BUFFER_TOO_SMALL;
@@ -332,9 +330,8 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetSlotList)(CK_BBOOL tokenPresent, CK_SLOT_ID_PTR p
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetSlotInfo)(CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pInfo)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetSlotInfo) (CK_SLOT_ID slotID,
+ CK_SLOT_INFO_PTR pInfo) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
@@ -345,9 +342,12 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetSlotInfo)(CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pIn
return CKR_ARGUMENTS_BAD;
memset(pInfo->slotDescription, ' ', sizeof(pInfo->slotDescription));
- memcpy(pInfo->slotDescription, PKCS11_MOCK_CK_SLOT_INFO_SLOT_DESCRIPTION, strlen(PKCS11_MOCK_CK_SLOT_INFO_SLOT_DESCRIPTION));
+ memcpy(pInfo->slotDescription,
+ PKCS11_MOCK_CK_SLOT_INFO_SLOT_DESCRIPTION,
+ strlen(PKCS11_MOCK_CK_SLOT_INFO_SLOT_DESCRIPTION));
memset(pInfo->manufacturerID, ' ', sizeof(pInfo->manufacturerID));
- memcpy(pInfo->manufacturerID, PKCS11_MOCK_CK_SLOT_INFO_MANUFACTURER_ID, strlen(PKCS11_MOCK_CK_SLOT_INFO_MANUFACTURER_ID));
+ memcpy(pInfo->manufacturerID, PKCS11_MOCK_CK_SLOT_INFO_MANUFACTURER_ID,
+ strlen(PKCS11_MOCK_CK_SLOT_INFO_MANUFACTURER_ID));
pInfo->flags = CKF_TOKEN_PRESENT;
pInfo->hardwareVersion.major = 0x01;
pInfo->hardwareVersion.minor = 0x00;
@@ -357,9 +357,8 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetSlotInfo)(CK_SLOT_ID slotID, CK_SLOT_INFO_PTR pIn
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetTokenInfo)(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetTokenInfo) (CK_SLOT_ID slotID,
+ CK_TOKEN_INFO_PTR pInfo) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
@@ -370,14 +369,20 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetTokenInfo)(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR p
return CKR_ARGUMENTS_BAD;
memset(pInfo->label, ' ', sizeof(pInfo->label));
- memcpy(pInfo->label, PKCS11_MOCK_CK_TOKEN_INFO_LABEL, strlen(PKCS11_MOCK_CK_TOKEN_INFO_LABEL));
+ memcpy(pInfo->label, PKCS11_MOCK_CK_TOKEN_INFO_LABEL,
+ strlen(PKCS11_MOCK_CK_TOKEN_INFO_LABEL));
memset(pInfo->manufacturerID, ' ', sizeof(pInfo->manufacturerID));
- memcpy(pInfo->manufacturerID, PKCS11_MOCK_CK_TOKEN_INFO_MANUFACTURER_ID, strlen(PKCS11_MOCK_CK_TOKEN_INFO_MANUFACTURER_ID));
+ memcpy(pInfo->manufacturerID, PKCS11_MOCK_CK_TOKEN_INFO_MANUFACTURER_ID,
+ strlen(PKCS11_MOCK_CK_TOKEN_INFO_MANUFACTURER_ID));
memset(pInfo->model, ' ', sizeof(pInfo->model));
- memcpy(pInfo->model, PKCS11_MOCK_CK_TOKEN_INFO_MODEL, strlen(PKCS11_MOCK_CK_TOKEN_INFO_MODEL));
+ memcpy(pInfo->model, PKCS11_MOCK_CK_TOKEN_INFO_MODEL,
+ strlen(PKCS11_MOCK_CK_TOKEN_INFO_MODEL));
memset(pInfo->serialNumber, ' ', sizeof(pInfo->serialNumber));
- memcpy(pInfo->serialNumber, PKCS11_MOCK_CK_TOKEN_INFO_SERIAL_NUMBER, strlen(PKCS11_MOCK_CK_TOKEN_INFO_SERIAL_NUMBER));
- pInfo->flags = CKF_RNG | CKF_LOGIN_REQUIRED | CKF_USER_PIN_INITIALIZED | CKF_TOKEN_INITIALIZED;
+ memcpy(pInfo->serialNumber, PKCS11_MOCK_CK_TOKEN_INFO_SERIAL_NUMBER,
+ strlen(PKCS11_MOCK_CK_TOKEN_INFO_SERIAL_NUMBER));
+ pInfo->flags =
+ CKF_RNG | CKF_LOGIN_REQUIRED | CKF_USER_PIN_INITIALIZED |
+ CKF_TOKEN_INITIALIZED;
if (pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH)
pInfo->flags &= ~CKF_LOGIN_REQUIRED;
@@ -385,7 +390,9 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetTokenInfo)(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR p
pInfo->ulMaxSessionCount = CK_EFFECTIVELY_INFINITE;
pInfo->ulSessionCount = (CK_TRUE == pkcs11_mock_session_opened) ? 1 : 0;
pInfo->ulMaxRwSessionCount = CK_EFFECTIVELY_INFINITE;
- if ((CK_TRUE == pkcs11_mock_session_opened) && ((CKS_RO_PUBLIC_SESSION != mock_session->state) && (CKS_RO_USER_FUNCTIONS != mock_session->state)))
+ if ((CK_TRUE == pkcs11_mock_session_opened)
+ && ((CKS_RO_PUBLIC_SESSION != mock_session->state)
+ && (CKS_RO_USER_FUNCTIONS != mock_session->state)))
pInfo->ulRwSessionCount = 1;
else
pInfo->ulRwSessionCount = 0;
@@ -404,9 +411,10 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetTokenInfo)(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR p
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismList)(CK_SLOT_ID slotID, CK_MECHANISM_TYPE_PTR pMechanismList, CK_ULONG_PTR pulCount)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismList) (CK_SLOT_ID slotID,
+ CK_MECHANISM_TYPE_PTR
+ pMechanismList,
+ CK_ULONG_PTR pulCount) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
@@ -416,12 +424,9 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismList)(CK_SLOT_ID slotID, CK_MECHANISM_TY
if (NULL == pulCount)
return CKR_ARGUMENTS_BAD;
- if (NULL == pMechanismList)
- {
+ if (NULL == pMechanismList) {
*pulCount = 9;
- }
- else
- {
+ } else {
if (9 > *pulCount)
return CKR_BUFFER_TOO_SMALL;
@@ -441,9 +446,9 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismList)(CK_SLOT_ID slotID, CK_MECHANISM_TY
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismInfo)(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type, CK_MECHANISM_INFO_PTR pInfo)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismInfo) (CK_SLOT_ID slotID,
+ CK_MECHANISM_TYPE type,
+ CK_MECHANISM_INFO_PTR pInfo) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
@@ -453,72 +458,73 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetMechanismInfo)(CK_SLOT_ID slotID, CK_MECHANISM_TY
if (NULL == pInfo)
return CKR_ARGUMENTS_BAD;
- switch (type)
- {
- case CKM_RSA_PKCS_KEY_PAIR_GEN:
- pInfo->ulMinKeySize = 1024;
- pInfo->ulMaxKeySize = 1024;
- pInfo->flags = CKF_GENERATE_KEY_PAIR;
- break;
-
- case CKM_RSA_PKCS:
- pInfo->ulMinKeySize = 1024;
- pInfo->ulMaxKeySize = 1024;
- pInfo->flags = CKF_ENCRYPT | CKF_DECRYPT | CKF_SIGN | CKF_SIGN_RECOVER | CKF_VERIFY | CKF_VERIFY_RECOVER | CKF_WRAP | CKF_UNWRAP;
- break;
-
- case CKM_SHA1_RSA_PKCS:
- pInfo->ulMinKeySize = 1024;
- pInfo->ulMaxKeySize = 1024;
- pInfo->flags = CKF_SIGN | CKF_VERIFY;
- break;
-
- case CKM_RSA_PKCS_OAEP:
- pInfo->ulMinKeySize = 1024;
- pInfo->ulMaxKeySize = 1024;
- pInfo->flags = CKF_ENCRYPT | CKF_DECRYPT;
- break;
-
- case CKM_DES3_CBC:
- pInfo->ulMinKeySize = 192;
- pInfo->ulMaxKeySize = 192;
- pInfo->flags = CKF_ENCRYPT | CKF_DECRYPT;
- break;
-
- case CKM_DES3_KEY_GEN:
- pInfo->ulMinKeySize = 192;
- pInfo->ulMaxKeySize = 192;
- pInfo->flags = CKF_GENERATE;
- break;
-
- case CKM_SHA_1:
- pInfo->ulMinKeySize = 0;
- pInfo->ulMaxKeySize = 0;
- pInfo->flags = CKF_DIGEST;
- break;
-
- case CKM_XOR_BASE_AND_DATA:
- pInfo->ulMinKeySize = 128;
- pInfo->ulMaxKeySize = 256;
- pInfo->flags = CKF_DERIVE;
- break;
-
- case CKM_AES_CBC:
- pInfo->ulMinKeySize = 128;
- pInfo->ulMaxKeySize = 256;
- pInfo->flags = CKF_ENCRYPT | CKF_DECRYPT;
- break;
-
- default:
- return CKR_MECHANISM_INVALID;
+ switch (type) {
+ case CKM_RSA_PKCS_KEY_PAIR_GEN:
+ pInfo->ulMinKeySize = 1024;
+ pInfo->ulMaxKeySize = 1024;
+ pInfo->flags = CKF_GENERATE_KEY_PAIR;
+ break;
+
+ case CKM_RSA_PKCS:
+ pInfo->ulMinKeySize = 1024;
+ pInfo->ulMaxKeySize = 1024;
+ pInfo->flags =
+ CKF_ENCRYPT | CKF_DECRYPT | CKF_SIGN | CKF_SIGN_RECOVER |
+ CKF_VERIFY | CKF_VERIFY_RECOVER | CKF_WRAP | CKF_UNWRAP;
+ break;
+
+ case CKM_SHA1_RSA_PKCS:
+ pInfo->ulMinKeySize = 1024;
+ pInfo->ulMaxKeySize = 1024;
+ pInfo->flags = CKF_SIGN | CKF_VERIFY;
+ break;
+
+ case CKM_RSA_PKCS_OAEP:
+ pInfo->ulMinKeySize = 1024;
+ pInfo->ulMaxKeySize = 1024;
+ pInfo->flags = CKF_ENCRYPT | CKF_DECRYPT;
+ break;
+
+ case CKM_DES3_CBC:
+ pInfo->ulMinKeySize = 192;
+ pInfo->ulMaxKeySize = 192;
+ pInfo->flags = CKF_ENCRYPT | CKF_DECRYPT;
+ break;
+
+ case CKM_DES3_KEY_GEN:
+ pInfo->ulMinKeySize = 192;
+ pInfo->ulMaxKeySize = 192;
+ pInfo->flags = CKF_GENERATE;
+ break;
+
+ case CKM_SHA_1:
+ pInfo->ulMinKeySize = 0;
+ pInfo->ulMaxKeySize = 0;
+ pInfo->flags = CKF_DIGEST;
+ break;
+
+ case CKM_XOR_BASE_AND_DATA:
+ pInfo->ulMinKeySize = 128;
+ pInfo->ulMaxKeySize = 256;
+ pInfo->flags = CKF_DERIVE;
+ break;
+
+ case CKM_AES_CBC:
+ pInfo->ulMinKeySize = 128;
+ pInfo->ulMaxKeySize = 256;
+ pInfo->flags = CKF_ENCRYPT | CKF_DECRYPT;
+ break;
+
+ default:
+ return CKR_MECHANISM_INVALID;
}
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_InitToken)(CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen, CK_UTF8CHAR_PTR pLabel)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_InitToken) (CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin,
+ CK_ULONG ulPinLen,
+ CK_UTF8CHAR_PTR pLabel) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
@@ -528,7 +534,8 @@ CK_DEFINE_FUNCTION(CK_RV, C_InitToken)(CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin,
if (NULL == pPin)
return CKR_ARGUMENTS_BAD;
- if ((ulPinLen < PKCS11_MOCK_CK_TOKEN_INFO_MIN_PIN_LEN) || (ulPinLen > PKCS11_MOCK_CK_TOKEN_INFO_MAX_PIN_LEN))
+ if ((ulPinLen < PKCS11_MOCK_CK_TOKEN_INFO_MIN_PIN_LEN)
+ || (ulPinLen > PKCS11_MOCK_CK_TOKEN_INFO_MAX_PIN_LEN))
return CKR_PIN_LEN_RANGE;
if (NULL == pLabel)
@@ -540,13 +547,13 @@ CK_DEFINE_FUNCTION(CK_RV, C_InitToken)(CK_SLOT_ID slotID, CK_UTF8CHAR_PTR pPin,
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_InitPIN)(CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_InitPIN) (CK_SESSION_HANDLE hSession,
+ CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (CKS_RW_SO_FUNCTIONS != mock_session->state)
@@ -555,42 +562,49 @@ CK_DEFINE_FUNCTION(CK_RV, C_InitPIN)(CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR
if (NULL == pPin)
return CKR_ARGUMENTS_BAD;
- if ((ulPinLen < PKCS11_MOCK_CK_TOKEN_INFO_MIN_PIN_LEN) || (ulPinLen > PKCS11_MOCK_CK_TOKEN_INFO_MAX_PIN_LEN))
+ if ((ulPinLen < PKCS11_MOCK_CK_TOKEN_INFO_MIN_PIN_LEN)
+ || (ulPinLen > PKCS11_MOCK_CK_TOKEN_INFO_MAX_PIN_LEN))
return CKR_PIN_LEN_RANGE;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_SetPIN)(CK_SESSION_HANDLE hSession, CK_UTF8CHAR_PTR pOldPin, CK_ULONG ulOldLen, CK_UTF8CHAR_PTR pNewPin, CK_ULONG ulNewLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_SetPIN) (CK_SESSION_HANDLE hSession,
+ CK_UTF8CHAR_PTR pOldPin, CK_ULONG ulOldLen,
+ CK_UTF8CHAR_PTR pNewPin,
+ CK_ULONG ulNewLen) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if ((CKS_RO_PUBLIC_SESSION == mock_session->state) || (CKS_RO_USER_FUNCTIONS == mock_session->state))
+ if ((CKS_RO_PUBLIC_SESSION == mock_session->state)
+ || (CKS_RO_USER_FUNCTIONS == mock_session->state))
return CKR_SESSION_READ_ONLY;
if (NULL == pOldPin)
return CKR_ARGUMENTS_BAD;
- if ((ulOldLen < PKCS11_MOCK_CK_TOKEN_INFO_MIN_PIN_LEN) || (ulOldLen > PKCS11_MOCK_CK_TOKEN_INFO_MAX_PIN_LEN))
+ if ((ulOldLen < PKCS11_MOCK_CK_TOKEN_INFO_MIN_PIN_LEN)
+ || (ulOldLen > PKCS11_MOCK_CK_TOKEN_INFO_MAX_PIN_LEN))
return CKR_PIN_LEN_RANGE;
if (NULL == pNewPin)
return CKR_ARGUMENTS_BAD;
- if ((ulNewLen < PKCS11_MOCK_CK_TOKEN_INFO_MIN_PIN_LEN) || (ulNewLen > PKCS11_MOCK_CK_TOKEN_INFO_MAX_PIN_LEN))
+ if ((ulNewLen < PKCS11_MOCK_CK_TOKEN_INFO_MIN_PIN_LEN)
+ || (ulNewLen > PKCS11_MOCK_CK_TOKEN_INFO_MAX_PIN_LEN))
return CKR_PIN_LEN_RANGE;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_OpenSession)(CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_OpenSession) (CK_SLOT_ID slotID, CK_FLAGS flags,
+ CK_VOID_PTR pApplication,
+ CK_NOTIFY Notify,
+ CK_SESSION_HANDLE_PTR phSession) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
if (CK_TRUE == pkcs11_mock_session_opened)
@@ -615,7 +629,9 @@ CK_DEFINE_FUNCTION(CK_RV, C_OpenSession)(CK_SLOT_ID slotID, CK_FLAGS flags, CK_V
if (mock_session == NULL)
return CKR_HOST_MEMORY;
- mock_session->state = (flags & CKF_RW_SESSION) ? CKS_RW_PUBLIC_SESSION : CKS_RO_PUBLIC_SESSION;
+ mock_session->state =
+ (flags & CKF_RW_SESSION) ? CKS_RW_PUBLIC_SESSION :
+ CKS_RO_PUBLIC_SESSION;
mock_session->find_op.find_result = CKR_OBJECT_HANDLE_INVALID;
mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
@@ -626,13 +642,12 @@ CK_DEFINE_FUNCTION(CK_RV, C_OpenSession)(CK_SLOT_ID slotID, CK_FLAGS flags, CK_V
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_CloseSession)(CK_SESSION_HANDLE hSession)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_CloseSession) (CK_SESSION_HANDLE hSession) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
pkcs11_mock_session_opened = CK_FALSE;
@@ -646,19 +661,17 @@ CK_DEFINE_FUNCTION(CK_RV, C_CloseSession)(CK_SESSION_HANDLE hSession)
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_CloseAllSessions)(CK_SLOT_ID slotID)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_CloseAllSessions) (CK_SLOT_ID slotID) {
return C_CloseSession(PKCS11_MOCK_CK_SESSION_ID);
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetSessionInfo)(CK_SESSION_HANDLE hSession, CK_SESSION_INFO_PTR pInfo)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetSessionInfo) (CK_SESSION_HANDLE hSession,
+ CK_SESSION_INFO_PTR pInfo) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pInfo)
@@ -667,31 +680,31 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetSessionInfo)(CK_SESSION_HANDLE hSession, CK_SESSI
pInfo->slotID = PKCS11_MOCK_CK_SLOT_ID;
pInfo->state = mock_session->state;
pInfo->flags = CKF_SERIAL_SESSION;
- if ((mock_session->state != CKS_RO_PUBLIC_SESSION) && (mock_session->state != CKS_RO_USER_FUNCTIONS))
+ if ((mock_session->state != CKS_RO_PUBLIC_SESSION)
+ && (mock_session->state != CKS_RO_USER_FUNCTIONS))
pInfo->flags = pInfo->flags | CKF_RW_SESSION;
pInfo->ulDeviceError = 0;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetOperationState)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG_PTR pulOperationStateLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetOperationState) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pOperationState,
+ CK_ULONG_PTR
+ pulOperationStateLen) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pulOperationStateLen)
return CKR_ARGUMENTS_BAD;
- if (NULL == pOperationState)
- {
+ if (NULL == pOperationState) {
*pulOperationStateLen = 256;
- }
- else
- {
+ } else {
if (256 > *pulOperationStateLen)
return CKR_BUFFER_TOO_SMALL;
@@ -702,13 +715,17 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetOperationState)(CK_SESSION_HANDLE hSession, CK_BY
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_SetOperationState)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pOperationState, CK_ULONG ulOperationStateLen, CK_OBJECT_HANDLE hEncryptionKey, CK_OBJECT_HANDLE hAuthenticationKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_SetOperationState) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pOperationState,
+ CK_ULONG ulOperationStateLen,
+ CK_OBJECT_HANDLE hEncryptionKey,
+ CK_OBJECT_HANDLE
+ hAuthenticationKey) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pOperationState)
@@ -724,23 +741,27 @@ CK_DEFINE_FUNCTION(CK_RV, C_SetOperationState)(CK_SESSION_HANDLE hSession, CK_BY
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_Login)(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType, CK_UTF8CHAR_PTR pPin, CK_ULONG ulPinLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_Login) (CK_SESSION_HANDLE hSession,
+ CK_USER_TYPE userType, CK_UTF8CHAR_PTR pPin,
+ CK_ULONG ulPinLen) {
CK_RV rv = CKR_OK;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if ((pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH) && userType == CKU_CONTEXT_SPECIFIC) {
+ if ((pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH)
+ && userType == CKU_CONTEXT_SPECIFIC) {
return CKR_USER_TYPE_INVALID;
}
- if ((pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH) || (pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH)) {
- if ((CKU_CONTEXT_SPECIFIC != userType) && (CKU_SO != userType) && (CKU_USER != userType))
+ if ((pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH)
+ || (pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH)) {
+ if ((CKU_CONTEXT_SPECIFIC != userType) && (CKU_SO != userType)
+ && (CKU_USER != userType))
return CKR_USER_TYPE_INVALID;
} else if ((CKU_SO != userType) && (CKU_USER != userType)) {
return CKR_USER_TYPE_INVALID;
@@ -749,41 +770,49 @@ CK_DEFINE_FUNCTION(CK_RV, C_Login)(CK_SESSION_HANDLE hSession, CK_USER_TYPE user
if (NULL == pPin)
return CKR_ARGUMENTS_BAD;
- if ((ulPinLen < PKCS11_MOCK_CK_TOKEN_INFO_MIN_PIN_LEN) || (ulPinLen > PKCS11_MOCK_CK_TOKEN_INFO_MAX_PIN_LEN))
+ if ((ulPinLen < PKCS11_MOCK_CK_TOKEN_INFO_MIN_PIN_LEN)
+ || (ulPinLen > PKCS11_MOCK_CK_TOKEN_INFO_MAX_PIN_LEN))
return CKR_PIN_LEN_RANGE;
- switch (mock_session->state)
- {
- case CKS_RO_PUBLIC_SESSION:
+ switch (mock_session->state) {
+ case CKS_RO_PUBLIC_SESSION:
- if (CKU_SO == userType)
- rv = CKR_SESSION_READ_ONLY_EXISTS;
- else
- mock_session->state = CKS_RO_USER_FUNCTIONS;
+ if (CKU_SO == userType)
+ rv = CKR_SESSION_READ_ONLY_EXISTS;
+ else
+ mock_session->state = CKS_RO_USER_FUNCTIONS;
- break;
+ break;
- case CKS_RO_USER_FUNCTIONS:
- case CKS_RW_USER_FUNCTIONS:
+ case CKS_RO_USER_FUNCTIONS:
+ case CKS_RW_USER_FUNCTIONS:
- rv = (CKU_SO == userType) ? CKR_USER_ANOTHER_ALREADY_LOGGED_IN : CKR_USER_ALREADY_LOGGED_IN;
+ rv = (CKU_SO ==
+ userType) ? CKR_USER_ANOTHER_ALREADY_LOGGED_IN :
+ CKR_USER_ALREADY_LOGGED_IN;
- break;
+ break;
- case CKS_RW_PUBLIC_SESSION:
+ case CKS_RW_PUBLIC_SESSION:
- mock_session->state = (CKU_SO == userType) ? CKS_RW_SO_FUNCTIONS : CKS_RW_USER_FUNCTIONS;
+ mock_session->state =
+ (CKU_SO ==
+ userType) ? CKS_RW_SO_FUNCTIONS : CKS_RW_USER_FUNCTIONS;
- break;
+ break;
- case CKS_RW_SO_FUNCTIONS:
+ case CKS_RW_SO_FUNCTIONS:
- rv = (CKU_SO == userType) ? CKR_USER_ALREADY_LOGGED_IN : CKR_USER_ANOTHER_ALREADY_LOGGED_IN;
+ rv = (CKU_SO ==
+ userType) ? CKR_USER_ALREADY_LOGGED_IN :
+ CKR_USER_ANOTHER_ALREADY_LOGGED_IN;
- break;
+ break;
}
- if ((pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH || pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH) && rv == CKR_USER_ALREADY_LOGGED_IN) {
+ if ((pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH
+ || pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH)
+ && rv == CKR_USER_ALREADY_LOGGED_IN) {
rv = 0;
}
@@ -791,30 +820,32 @@ CK_DEFINE_FUNCTION(CK_RV, C_Login)(CK_SESSION_HANDLE hSession, CK_USER_TYPE user
return rv;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_Logout)(CK_SESSION_HANDLE hSession)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_Logout) (CK_SESSION_HANDLE hSession) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if ((mock_session->state == CKS_RO_PUBLIC_SESSION) || (mock_session->state == CKS_RW_PUBLIC_SESSION))
+ if ((mock_session->state == CKS_RO_PUBLIC_SESSION)
+ || (mock_session->state == CKS_RW_PUBLIC_SESSION))
return CKR_USER_NOT_LOGGED_IN;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_CreateObject)(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phObject)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_CreateObject) (CK_SESSION_HANDLE hSession,
+ CK_ATTRIBUTE_PTR pTemplate,
+ CK_ULONG ulCount,
+ CK_OBJECT_HANDLE_PTR phObject) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pTemplate)
@@ -826,8 +857,7 @@ CK_DEFINE_FUNCTION(CK_RV, C_CreateObject)(CK_SESSION_HANDLE hSession, CK_ATTRIBU
if (NULL == phObject)
return CKR_ARGUMENTS_BAD;
- for (i = 0; i < ulCount; i++)
- {
+ for (i = 0; i < ulCount; i++) {
if (NULL == pTemplate[i].pValue)
return CKR_ATTRIBUTE_VALUE_INVALID;
@@ -840,15 +870,18 @@ CK_DEFINE_FUNCTION(CK_RV, C_CreateObject)(CK_SESSION_HANDLE hSession, CK_ATTRIBU
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_CopyObject)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phNewObject)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_CopyObject) (CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE hObject,
+ CK_ATTRIBUTE_PTR pTemplate,
+ CK_ULONG ulCount,
+ CK_OBJECT_HANDLE_PTR phNewObject) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (PKCS11_MOCK_CK_OBJECT_HANDLE_DATA != hObject)
@@ -857,10 +890,8 @@ CK_DEFINE_FUNCTION(CK_RV, C_CopyObject)(CK_SESSION_HANDLE hSession, CK_OBJECT_HA
if (NULL == phNewObject)
return CKR_ARGUMENTS_BAD;
- if ((NULL != pTemplate) && (0 >= ulCount))
- {
- for (i = 0; i < ulCount; i++)
- {
+ if ((NULL != pTemplate) && (0 >= ulCount)) {
+ for (i = 0; i < ulCount; i++) {
if (NULL == pTemplate[i].pValue)
return CKR_ATTRIBUTE_VALUE_INVALID;
@@ -874,37 +905,38 @@ CK_DEFINE_FUNCTION(CK_RV, C_CopyObject)(CK_SESSION_HANDLE hSession, CK_OBJECT_HA
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DestroyObject)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DestroyObject) (CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE hObject) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if ((PKCS11_MOCK_CK_OBJECT_HANDLE_DATA != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hObject))
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hObject) &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hObject) &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hObject))
return CKR_OBJECT_HANDLE_INVALID;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetObjectSize)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ULONG_PTR pulSize)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetObjectSize) (CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE hObject,
+ CK_ULONG_PTR pulSize) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if ((PKCS11_MOCK_CK_OBJECT_HANDLE_DATA != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hObject))
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hObject) &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hObject) &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hObject))
return CKR_OBJECT_HANDLE_INVALID;
if (NULL == pulSize)
@@ -915,23 +947,25 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetObjectSize)(CK_SESSION_HANDLE hSession, CK_OBJECT
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetAttributeValue) (CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE hObject,
+ CK_ATTRIBUTE_PTR pTemplate,
+ CK_ULONG ulCount) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if ((PKCS11_MOCK_CK_OBJECT_HANDLE_DATA != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE_EXTENSION != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hObject))
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hObject) &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE_EXTENSION != hObject) &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE != hObject) &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hObject) &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hObject))
return CKR_OBJECT_HANDLE_INVALID;
if (NULL == pTemplate)
@@ -940,94 +974,101 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OB
if (0 >= ulCount)
return CKR_ARGUMENTS_BAD;
- for (i = 0; i < ulCount; i++)
- {
- if (CKA_PUBLIC_KEY_INFO == pTemplate[i].type &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE == hObject || PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY == hObject))
- {
- if (pTemplate[i].ulValueLen < sizeof(mock_pubkey)-1) {
- pTemplate[i].ulValueLen = sizeof(mock_pubkey)-1;
+ for (i = 0; i < ulCount; i++) {
+ if (CKA_PUBLIC_KEY_INFO == pTemplate[i].type &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE == hObject
+ || PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY == hObject)) {
+ if (pTemplate[i].ulValueLen < sizeof(mock_pubkey) - 1) {
+ pTemplate[i].ulValueLen =
+ sizeof(mock_pubkey) - 1;
if (pTemplate[i].pValue == NULL)
return CKR_OK;
else
return CKR_BUFFER_TOO_SMALL;
}
- pTemplate[i].ulValueLen = (CK_ULONG) sizeof(mock_pubkey)-1;
- memcpy(pTemplate[i].pValue, mock_pubkey, pTemplate[i].ulValueLen);
- }
- else if (CKA_CLASS == pTemplate[i].type)
- {
- if (NULL != pTemplate[i].pValue)
- {
+ pTemplate[i].ulValueLen =
+ (CK_ULONG) sizeof(mock_pubkey) - 1;
+ memcpy(pTemplate[i].pValue, mock_pubkey,
+ pTemplate[i].ulValueLen);
+ } else if (CKA_CLASS == pTemplate[i].type) {
+ if (NULL != pTemplate[i].pValue) {
if (pTemplate[i].ulValueLen < sizeof(hObject))
return CKR_BUFFER_TOO_SMALL;
else
- memcpy(pTemplate[i].pValue, &hObject, sizeof(hObject));
+ memcpy(pTemplate[i].pValue, &hObject,
+ sizeof(hObject));
}
pTemplate[i].ulValueLen = sizeof(hObject);
- }
- else if (CKA_PUBLIC_EXPONENT == pTemplate[i].type &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY == hObject || PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY == hObject))
- {
- if (NULL != pTemplate[i].pValue)
- {
- if (pTemplate[i].ulValueLen < sizeof(mock_public_exponent)-1)
+ } else if (CKA_PUBLIC_EXPONENT == pTemplate[i].type &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY == hObject
+ || PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY ==
+ hObject)) {
+ if (NULL != pTemplate[i].pValue) {
+ if (pTemplate[i].ulValueLen <
+ sizeof(mock_public_exponent) - 1)
return CKR_BUFFER_TOO_SMALL;
else
- memcpy(pTemplate[i].pValue, mock_public_exponent, sizeof(mock_public_exponent)-1);
+ memcpy(pTemplate[i].pValue,
+ mock_public_exponent,
+ sizeof(mock_public_exponent) -
+ 1);
}
- pTemplate[i].ulValueLen = sizeof(mock_public_exponent)-1;
- }
- else if (CKA_MODULUS == pTemplate[i].type &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY == hObject || PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY == hObject))
- {
- if (NULL != pTemplate[i].pValue)
- {
- if (pTemplate[i].ulValueLen < sizeof(mock_modulus)-1)
+ pTemplate[i].ulValueLen =
+ sizeof(mock_public_exponent) - 1;
+ } else if (CKA_MODULUS == pTemplate[i].type
+ && (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY ==
+ hObject
+ || PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY ==
+ hObject)) {
+ if (NULL != pTemplate[i].pValue) {
+ if (pTemplate[i].ulValueLen <
+ sizeof(mock_modulus) - 1)
return CKR_BUFFER_TOO_SMALL;
else
- memcpy(pTemplate[i].pValue, mock_modulus, sizeof(mock_modulus)-1);
+ memcpy(pTemplate[i].pValue,
+ mock_modulus,
+ sizeof(mock_modulus) - 1);
}
- pTemplate[i].ulValueLen = sizeof(mock_modulus)-1;
- }
- else if (CKA_SUBJECT == pTemplate[i].type && PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE == hObject)
- {
- if (NULL != pTemplate[i].pValue)
- {
- if (pTemplate[i].ulValueLen < strlen(mock_subject))
+ pTemplate[i].ulValueLen = sizeof(mock_modulus) - 1;
+ } else if (CKA_SUBJECT == pTemplate[i].type
+ && PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE ==
+ hObject) {
+ if (NULL != pTemplate[i].pValue) {
+ if (pTemplate[i].ulValueLen <
+ strlen(mock_subject))
return CKR_BUFFER_TOO_SMALL;
else
- memcpy(pTemplate[i].pValue, mock_subject, strlen(mock_subject));
+ memcpy(pTemplate[i].pValue,
+ mock_subject,
+ strlen(mock_subject));
}
pTemplate[i].ulValueLen = strlen(mock_subject);
- }
- else if (CKA_LABEL == pTemplate[i].type)
- {
- if (NULL != pTemplate[i].pValue)
- {
- if (pTemplate[i].ulValueLen < strlen(PKCS11_MOCK_CK_OBJECT_CKA_LABEL))
+ } else if (CKA_LABEL == pTemplate[i].type) {
+ if (NULL != pTemplate[i].pValue) {
+ if (pTemplate[i].ulValueLen <
+ strlen(PKCS11_MOCK_CK_OBJECT_CKA_LABEL))
return CKR_BUFFER_TOO_SMALL;
else
- memcpy(pTemplate[i].pValue, PKCS11_MOCK_CK_OBJECT_CKA_LABEL, strlen(PKCS11_MOCK_CK_OBJECT_CKA_LABEL));
+ memcpy(pTemplate[i].pValue,
+ PKCS11_MOCK_CK_OBJECT_CKA_LABEL,
+ strlen
+ (PKCS11_MOCK_CK_OBJECT_CKA_LABEL));
}
- pTemplate[i].ulValueLen = strlen(PKCS11_MOCK_CK_OBJECT_CKA_LABEL);
- }
- else if (CKA_KEY_TYPE == pTemplate[i].type)
- {
+ pTemplate[i].ulValueLen =
+ strlen(PKCS11_MOCK_CK_OBJECT_CKA_LABEL);
+ } else if (CKA_KEY_TYPE == pTemplate[i].type) {
CK_KEY_TYPE t;
if (pTemplate[i].ulValueLen != sizeof(CK_KEY_TYPE))
return CKR_ARGUMENTS_BAD;
t = CKK_RSA;
memcpy(pTemplate[i].pValue, &t, sizeof(CK_KEY_TYPE));
- }
- else if (CKA_ALWAYS_AUTHENTICATE == pTemplate[i].type)
- {
+ } else if (CKA_ALWAYS_AUTHENTICATE == pTemplate[i].type) {
CK_BBOOL t;
if (pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH)
return CKR_ATTRIBUTE_TYPE_INVALID;
@@ -1041,39 +1082,37 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OB
t = CK_TRUE;
}
memcpy(pTemplate[i].pValue, &t, sizeof(CK_BBOOL));
- }
- else if (CKA_ID == pTemplate[i].type)
- {
- if (NULL != pTemplate[i].pValue)
- {
- if (pTemplate[i].ulValueLen < strlen(PKCS11_MOCK_CK_OBJECT_CKA_LABEL))
+ } else if (CKA_ID == pTemplate[i].type) {
+ if (NULL != pTemplate[i].pValue) {
+ if (pTemplate[i].ulValueLen <
+ strlen(PKCS11_MOCK_CK_OBJECT_CKA_LABEL))
return CKR_BUFFER_TOO_SMALL;
else
- memcpy(pTemplate[i].pValue, PKCS11_MOCK_CK_OBJECT_CKA_LABEL, strlen(PKCS11_MOCK_CK_OBJECT_CKA_LABEL));
+ memcpy(pTemplate[i].pValue,
+ PKCS11_MOCK_CK_OBJECT_CKA_LABEL,
+ strlen
+ (PKCS11_MOCK_CK_OBJECT_CKA_LABEL));
}
- pTemplate[i].ulValueLen = strlen(PKCS11_MOCK_CK_OBJECT_CKA_LABEL);
- }
- else if (CKA_CERTIFICATE_CATEGORY == pTemplate[i].type)
- {
- CK_ULONG t = 2; /* authority */
+ pTemplate[i].ulValueLen =
+ strlen(PKCS11_MOCK_CK_OBJECT_CKA_LABEL);
+ } else if (CKA_CERTIFICATE_CATEGORY == pTemplate[i].type) {
+ CK_ULONG t = 2; /* authority */
if (pTemplate[i].ulValueLen < sizeof(CK_ULONG))
return CKR_BUFFER_TOO_SMALL;
memcpy(pTemplate[i].pValue, &t, sizeof(CK_ULONG));
- }
- else if (CKA_VALUE == pTemplate[i].type)
- {
- if (PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE_EXTENSION == hObject)
- {
+ } else if (CKA_VALUE == pTemplate[i].type) {
+ if (PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE_EXTENSION
+ == hObject) {
const void *obj;
unsigned obj_len;
if (mock_session->find_op.remaining_data == 1) {
obj = mock_cert_ext1;
- obj_len = sizeof(mock_cert_ext1)-1;
+ obj_len = sizeof(mock_cert_ext1) - 1;
} else {
obj = mock_cert_ext2;
- obj_len = sizeof(mock_cert_ext2)-1;
+ obj_len = sizeof(mock_cert_ext2) - 1;
}
if (pTemplate[i].ulValueLen < obj_len) {
@@ -1084,54 +1123,63 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OB
return CKR_BUFFER_TOO_SMALL;
}
pTemplate[i].ulValueLen = (CK_ULONG) obj_len;
- memcpy(pTemplate[i].pValue, obj, pTemplate[i].ulValueLen);
- }
- else if (PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE == hObject)
- {
- if (pTemplate[i].ulValueLen < sizeof(mock_certificate)-1) {
- pTemplate[i].ulValueLen = sizeof(mock_certificate)-1;
+ memcpy(pTemplate[i].pValue, obj,
+ pTemplate[i].ulValueLen);
+ } else if (PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE ==
+ hObject) {
+ if (pTemplate[i].ulValueLen <
+ sizeof(mock_certificate) - 1) {
+ pTemplate[i].ulValueLen =
+ sizeof(mock_certificate) - 1;
if (pTemplate[i].pValue == NULL)
return CKR_OK;
else
return CKR_BUFFER_TOO_SMALL;
}
- pTemplate[i].ulValueLen = (CK_ULONG) sizeof(mock_certificate)-1;
- memcpy(pTemplate[i].pValue, mock_certificate, pTemplate[i].ulValueLen);
- }
- else if (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY == hObject)
- {
- if (pTemplate[i].ulValueLen < sizeof(mock_pubkey)-1) {
- pTemplate[i].ulValueLen = sizeof(mock_pubkey)-1;
+ pTemplate[i].ulValueLen =
+ (CK_ULONG) sizeof(mock_certificate) - 1;
+ memcpy(pTemplate[i].pValue, mock_certificate,
+ pTemplate[i].ulValueLen);
+ } else if (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY ==
+ hObject) {
+ if (pTemplate[i].ulValueLen <
+ sizeof(mock_pubkey) - 1) {
+ pTemplate[i].ulValueLen =
+ sizeof(mock_pubkey) - 1;
if (pTemplate[i].pValue == NULL)
return CKR_OK;
else
return CKR_BUFFER_TOO_SMALL;
}
- pTemplate[i].ulValueLen = (CK_ULONG) sizeof(mock_pubkey)-1;
- memcpy(pTemplate[i].pValue, mock_pubkey, pTemplate[i].ulValueLen);
- }
- else if (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY == hObject)
- {
- pTemplate[i].ulValueLen = (CK_ULONG) -1;
- if (!(pkcs11_mock_flags & MOCK_FLAG_BROKEN_GET_ATTRIBUTES)) {
+ pTemplate[i].ulValueLen =
+ (CK_ULONG) sizeof(mock_pubkey) - 1;
+ memcpy(pTemplate[i].pValue, mock_pubkey,
+ pTemplate[i].ulValueLen);
+ } else if (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY ==
+ hObject) {
+ pTemplate[i].ulValueLen = (CK_ULONG) - 1;
+ if (!
+ (pkcs11_mock_flags &
+ MOCK_FLAG_BROKEN_GET_ATTRIBUTES)) {
return CKR_ATTRIBUTE_SENSITIVE;
}
- }
- else
- {
- if (NULL != pTemplate[i].pValue)
- {
- if (pTemplate[i].ulValueLen < strlen(PKCS11_MOCK_CK_OBJECT_CKA_VALUE))
+ } else {
+ if (NULL != pTemplate[i].pValue) {
+ if (pTemplate[i].ulValueLen <
+ strlen
+ (PKCS11_MOCK_CK_OBJECT_CKA_VALUE))
return CKR_BUFFER_TOO_SMALL;
else
- memcpy(pTemplate[i].pValue, PKCS11_MOCK_CK_OBJECT_CKA_VALUE, strlen(PKCS11_MOCK_CK_OBJECT_CKA_VALUE));
+ memcpy(pTemplate[i].pValue,
+ PKCS11_MOCK_CK_OBJECT_CKA_VALUE,
+ strlen
+ (PKCS11_MOCK_CK_OBJECT_CKA_VALUE));
}
- pTemplate[i].ulValueLen = strlen(PKCS11_MOCK_CK_OBJECT_CKA_VALUE);
+ pTemplate[i].ulValueLen =
+ strlen(PKCS11_MOCK_CK_OBJECT_CKA_VALUE);
}
- }
- else
- {
+ } else {
return CKR_ATTRIBUTE_TYPE_INVALID;
}
}
@@ -1139,21 +1187,23 @@ CK_DEFINE_FUNCTION(CK_RV, C_GetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OB
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_SetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_SetAttributeValue) (CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE hObject,
+ CK_ATTRIBUTE_PTR pTemplate,
+ CK_ULONG ulCount) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if ((PKCS11_MOCK_CK_OBJECT_HANDLE_DATA != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hObject) &&
- (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hObject))
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hObject) &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hObject) &&
+ (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hObject))
return CKR_OBJECT_HANDLE_INVALID;
if (NULL == pTemplate)
@@ -1162,18 +1212,15 @@ CK_DEFINE_FUNCTION(CK_RV, C_SetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OB
if (0 >= ulCount)
return CKR_ARGUMENTS_BAD;
- for (i = 0; i < ulCount; i++)
- {
- if ((CKA_LABEL == pTemplate[i].type) || (CKA_VALUE == pTemplate[i].type))
- {
+ for (i = 0; i < ulCount; i++) {
+ if ((CKA_LABEL == pTemplate[i].type)
+ || (CKA_VALUE == pTemplate[i].type)) {
if (NULL == pTemplate[i].pValue)
return CKR_ATTRIBUTE_VALUE_INVALID;
if (0 >= pTemplate[i].ulValueLen)
return CKR_ATTRIBUTE_VALUE_INVALID;
- }
- else
- {
+ } else {
return CKR_ATTRIBUTE_TYPE_INVALID;
}
}
@@ -1181,19 +1228,21 @@ CK_DEFINE_FUNCTION(CK_RV, C_SetAttributeValue)(CK_SESSION_HANDLE hSession, CK_OB
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_FindObjectsInit)(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_FindObjectsInit) (CK_SESSION_HANDLE hSession,
+ CK_ATTRIBUTE_PTR pTemplate,
+ CK_ULONG ulCount) {
CK_ULONG i = 0;
CK_ULONG_PTR cka_class_value = NULL;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_NONE != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_NONE !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_ACTIVE;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pTemplate)
@@ -1203,52 +1252,55 @@ CK_DEFINE_FUNCTION(CK_RV, C_FindObjectsInit)(CK_SESSION_HANDLE hSession, CK_ATTR
mock_session->find_op.find_result = CK_INVALID_HANDLE;
- for (i = 0; i < ulCount; i++)
- {
+ for (i = 0; i < ulCount; i++) {
if (NULL == pTemplate[i].pValue)
return CKR_ATTRIBUTE_VALUE_INVALID;
if (0 >= pTemplate[i].ulValueLen)
return CKR_ATTRIBUTE_VALUE_INVALID;
- if (CKA_LABEL == pTemplate[i].type)
- {
+ if (CKA_LABEL == pTemplate[i].type) {
free(mock_session->find_label);
- mock_session->find_label = strndup(pTemplate[i].pValue, pTemplate[i].ulValueLen);
- }
- else if (CKA_CLASS == pTemplate[i].type)
- {
+ mock_session->find_label =
+ strndup(pTemplate[i].pValue,
+ pTemplate[i].ulValueLen);
+ } else if (CKA_CLASS == pTemplate[i].type) {
if (sizeof(CK_ULONG) != pTemplate[i].ulValueLen)
return CKR_ATTRIBUTE_VALUE_INVALID;
cka_class_value = (CK_ULONG_PTR) pTemplate[i].pValue;
- switch (*cka_class_value)
- {
- case CKO_DATA:
- mock_session->find_op.find_result = PKCS11_MOCK_CK_OBJECT_HANDLE_DATA;
- mock_session->find_op.remaining_data = 2;
- break;
- case CKO_SECRET_KEY:
- mock_session->find_op.find_result = PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY;
- mock_session->find_op.remaining_data = 1;
- break;
- case CKO_CERTIFICATE:
- mock_session->find_op.find_result = PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE;
- mock_session->find_op.remaining_data = 1;
- break;
- case CKO_PUBLIC_KEY:
- mock_session->find_op.find_result = PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY;
- mock_session->find_op.remaining_data = 1;
- break;
- case CKO_PRIVATE_KEY:
- mock_session->find_op.find_result = PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY;
- mock_session->find_op.remaining_data = 1;
- break;
- case CKO_X_CERTIFICATE_EXTENSION:
- mock_session->find_op.find_result = PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE_EXTENSION;
- mock_session->find_op.remaining_data = 2;
- break;
+ switch (*cka_class_value) {
+ case CKO_DATA:
+ mock_session->find_op.find_result =
+ PKCS11_MOCK_CK_OBJECT_HANDLE_DATA;
+ mock_session->find_op.remaining_data = 2;
+ break;
+ case CKO_SECRET_KEY:
+ mock_session->find_op.find_result =
+ PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY;
+ mock_session->find_op.remaining_data = 1;
+ break;
+ case CKO_CERTIFICATE:
+ mock_session->find_op.find_result =
+ PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE;
+ mock_session->find_op.remaining_data = 1;
+ break;
+ case CKO_PUBLIC_KEY:
+ mock_session->find_op.find_result =
+ PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY;
+ mock_session->find_op.remaining_data = 1;
+ break;
+ case CKO_PRIVATE_KEY:
+ mock_session->find_op.find_result =
+ PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY;
+ mock_session->find_op.remaining_data = 1;
+ break;
+ case CKO_X_CERTIFICATE_EXTENSION:
+ mock_session->find_op.find_result =
+ PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE_EXTENSION;
+ mock_session->find_op.remaining_data = 2;
+ break;
}
}
}
@@ -1258,17 +1310,20 @@ CK_DEFINE_FUNCTION(CK_RV, C_FindObjectsInit)(CK_SESSION_HANDLE hSession, CK_ATTR
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_FindObjects)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject, CK_ULONG ulMaxObjectCount, CK_ULONG_PTR pulObjectCount)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_FindObjects) (CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE_PTR phObject,
+ CK_ULONG ulMaxObjectCount,
+ CK_ULONG_PTR pulObjectCount) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_FIND != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_FIND !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if ((NULL == phObject) && (0 < ulMaxObjectCount))
@@ -1282,53 +1337,50 @@ CK_DEFINE_FUNCTION(CK_RV, C_FindObjects)(CK_SESSION_HANDLE hSession, CK_OBJECT_H
return CKR_OK;
}
- switch (mock_session->find_op.find_result)
- {
- case PKCS11_MOCK_CK_OBJECT_HANDLE_DATA:
-
- if (ulMaxObjectCount >= 2)
- {
- phObject[0] = mock_session->find_op.find_result;
- phObject[1] = mock_session->find_op.find_result;
- }
+ switch (mock_session->find_op.find_result) {
+ case PKCS11_MOCK_CK_OBJECT_HANDLE_DATA:
- *pulObjectCount = 2;
- mock_session->find_op.remaining_data -= 2;
+ if (ulMaxObjectCount >= 2) {
+ phObject[0] = mock_session->find_op.find_result;
+ phObject[1] = mock_session->find_op.find_result;
+ }
- break;
+ *pulObjectCount = 2;
+ mock_session->find_op.remaining_data -= 2;
- case CK_INVALID_HANDLE:
-
- *pulObjectCount = 0;
+ break;
- break;
+ case CK_INVALID_HANDLE:
- default:
+ *pulObjectCount = 0;
- if (ulMaxObjectCount >= 1)
- {
- phObject[0] = mock_session->find_op.find_result;
- }
+ break;
- *pulObjectCount = 1;
- mock_session->find_op.remaining_data --;
+ default:
- break;
+ if (ulMaxObjectCount >= 1) {
+ phObject[0] = mock_session->find_op.find_result;
+ }
+
+ *pulObjectCount = 1;
+ mock_session->find_op.remaining_data--;
+
+ break;
}
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_FindObjectsFinal)(CK_SESSION_HANDLE hSession)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_FindObjectsFinal) (CK_SESSION_HANDLE hSession) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_FIND != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_FIND !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
@@ -1336,101 +1388,114 @@ CK_DEFINE_FUNCTION(CK_RV, C_FindObjectsFinal)(CK_SESSION_HANDLE hSession)
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_EncryptInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_EncryptInit) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_OBJECT_HANDLE hKey) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((PKCS11_MOCK_CK_OPERATION_NONE != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_DIGEST != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_SIGN != mock_session->find_op.active_operation))
+ if ((PKCS11_MOCK_CK_OPERATION_NONE !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_DIGEST !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_SIGN !=
+ mock_session->find_op.active_operation))
return CKR_OPERATION_ACTIVE;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pMechanism)
return CKR_ARGUMENTS_BAD;
- switch (pMechanism->mechanism)
- {
- case CKM_RSA_PKCS:
+ switch (pMechanism->mechanism) {
+ case CKM_RSA_PKCS:
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
- return CKR_MECHANISM_PARAM_INVALID;
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
+ return CKR_MECHANISM_PARAM_INVALID;
- if (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hKey)
- return CKR_KEY_TYPE_INCONSISTENT;
+ if (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hKey)
+ return CKR_KEY_TYPE_INCONSISTENT;
- break;
+ break;
#if 0
- case CKM_RSA_PKCS_OAEP:
+ case CKM_RSA_PKCS_OAEP:
- if ((NULL == pMechanism->pParameter) || (sizeof(CK_RSA_PKCS_OAEP_PARAMS) != pMechanism->ulParameterLen))
- return CKR_MECHANISM_PARAM_INVALID;
+ if ((NULL == pMechanism->pParameter)
+ || (sizeof(CK_RSA_PKCS_OAEP_PARAMS) !=
+ pMechanism->ulParameterLen))
+ return CKR_MECHANISM_PARAM_INVALID;
- if (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hKey)
- return CKR_KEY_TYPE_INCONSISTENT;
+ if (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hKey)
+ return CKR_KEY_TYPE_INCONSISTENT;
- break;
+ break;
#endif
- case CKM_DES3_CBC:
+ case CKM_DES3_CBC:
- if ((NULL == pMechanism->pParameter) || (8 != pMechanism->ulParameterLen))
- return CKR_MECHANISM_PARAM_INVALID;
+ if ((NULL == pMechanism->pParameter)
+ || (8 != pMechanism->ulParameterLen))
+ return CKR_MECHANISM_PARAM_INVALID;
- if (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hKey)
- return CKR_KEY_TYPE_INCONSISTENT;
+ if (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hKey)
+ return CKR_KEY_TYPE_INCONSISTENT;
- break;
+ break;
+
+ case CKM_AES_CBC:
- case CKM_AES_CBC:
-
- if ((NULL == pMechanism->pParameter) || (16 != pMechanism->ulParameterLen))
- return CKR_MECHANISM_PARAM_INVALID;
+ if ((NULL == pMechanism->pParameter)
+ || (16 != pMechanism->ulParameterLen))
+ return CKR_MECHANISM_PARAM_INVALID;
- if (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hKey)
- return CKR_KEY_TYPE_INCONSISTENT;
+ if (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hKey)
+ return CKR_KEY_TYPE_INCONSISTENT;
- break;
+ break;
- default:
+ default:
- return CKR_MECHANISM_INVALID;
+ return CKR_MECHANISM_INVALID;
}
- switch (mock_session->find_op.active_operation)
- {
- case PKCS11_MOCK_CK_OPERATION_NONE:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_ENCRYPT;
- break;
- case PKCS11_MOCK_CK_OPERATION_DIGEST:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT;
- break;
- case PKCS11_MOCK_CK_OPERATION_SIGN:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT;
- break;
- default:
- return CKR_FUNCTION_FAILED;
+ switch (mock_session->find_op.active_operation) {
+ case PKCS11_MOCK_CK_OPERATION_NONE:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_ENCRYPT;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_DIGEST:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_SIGN:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT;
+ break;
+ default:
+ return CKR_FUNCTION_FAILED;
}
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_Encrypt)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData, CK_ULONG_PTR pulEncryptedDataLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_Encrypt) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pData, CK_ULONG ulDataLen,
+ CK_BYTE_PTR pEncryptedData,
+ CK_ULONG_PTR pulEncryptedDataLen) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_ENCRYPT != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_ENCRYPT !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pData)
@@ -1442,18 +1507,15 @@ CK_DEFINE_FUNCTION(CK_RV, C_Encrypt)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDa
if (NULL == pulEncryptedDataLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pEncryptedData)
- {
- if (ulDataLen > *pulEncryptedDataLen)
- {
+ if (NULL != pEncryptedData) {
+ if (ulDataLen > *pulEncryptedDataLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
for (i = 0; i < ulDataLen; i++)
pEncryptedData[i] = pData[i] ^ 0xAB;
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
}
}
@@ -1462,18 +1524,22 @@ CK_DEFINE_FUNCTION(CK_RV, C_Encrypt)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDa
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_EncryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_EncryptUpdate) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pPart,
+ CK_ULONG ulPartLen,
+ CK_BYTE_PTR pEncryptedPart,
+ CK_ULONG_PTR pulEncryptedPartLen) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_ENCRYPT != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_ENCRYPT !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pPart)
@@ -1485,14 +1551,10 @@ CK_DEFINE_FUNCTION(CK_RV, C_EncryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_P
if (NULL == pulEncryptedPartLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pEncryptedPart)
- {
- if (ulPartLen > *pulEncryptedPartLen)
- {
+ if (NULL != pEncryptedPart) {
+ if (ulPartLen > *pulEncryptedPartLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
for (i = 0; i < ulPartLen; i++)
pEncryptedPart[i] = pPart[i] ^ 0xAB;
}
@@ -1503,38 +1565,44 @@ CK_DEFINE_FUNCTION(CK_RV, C_EncryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_P
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_EncryptFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastEncryptedPart, CK_ULONG_PTR pulLastEncryptedPartLen)
+CK_DEFINE_FUNCTION(CK_RV, C_EncryptFinal) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pLastEncryptedPart,
+ CK_ULONG_PTR pulLastEncryptedPartLen)
{
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((PKCS11_MOCK_CK_OPERATION_ENCRYPT != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT != mock_session->find_op.active_operation))
+ if ((PKCS11_MOCK_CK_OPERATION_ENCRYPT !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT !=
+ mock_session->find_op.active_operation))
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pulLastEncryptedPartLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pLastEncryptedPart)
- {
- switch (mock_session->find_op.active_operation)
- {
- case PKCS11_MOCK_CK_OPERATION_ENCRYPT:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
- break;
- case PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DIGEST;
- break;
- case PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_SIGN;
- break;
- default:
- return CKR_FUNCTION_FAILED;
+ if (NULL != pLastEncryptedPart) {
+ switch (mock_session->find_op.active_operation) {
+ case PKCS11_MOCK_CK_OPERATION_ENCRYPT:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DIGEST;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_SIGN;
+ break;
+ default:
+ return CKR_FUNCTION_FAILED;
}
}
@@ -1543,21 +1611,26 @@ CK_DEFINE_FUNCTION(CK_RV, C_EncryptFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PT
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DecryptInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DecryptInit) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_OBJECT_HANDLE hKey) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if ((PKCS11_MOCK_CK_OPERATION_NONE != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_DIGEST != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_VERIFY != mock_session->find_op.active_operation))
+ if ((PKCS11_MOCK_CK_OPERATION_NONE !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_DIGEST !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_VERIFY !=
+ mock_session->find_op.active_operation))
return CKR_OPERATION_ACTIVE;
- if (pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH || pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH) {
+ if (pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH
+ || pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH) {
mock_session->state = CKS_RO_PUBLIC_SESSION;
pkcs11_mock_session_reauth = 0;
}
@@ -1565,90 +1638,102 @@ CK_DEFINE_FUNCTION(CK_RV, C_DecryptInit)(CK_SESSION_HANDLE hSession, CK_MECHANIS
if (NULL == pMechanism)
return CKR_ARGUMENTS_BAD;
- switch (pMechanism->mechanism)
- {
- case CKM_RSA_PKCS:
+ switch (pMechanism->mechanism) {
+ case CKM_RSA_PKCS:
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
- return CKR_MECHANISM_PARAM_INVALID;
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
+ return CKR_MECHANISM_PARAM_INVALID;
- if (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hKey)
- return CKR_KEY_TYPE_INCONSISTENT;
+ if (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hKey)
+ return CKR_KEY_TYPE_INCONSISTENT;
- break;
+ break;
#if 0
- case CKM_RSA_PKCS_OAEP:
+ case CKM_RSA_PKCS_OAEP:
- if ((NULL == pMechanism->pParameter) || (sizeof(CK_RSA_PKCS_OAEP_PARAMS) != pMechanism->ulParameterLen))
- return CKR_MECHANISM_PARAM_INVALID;
+ if ((NULL == pMechanism->pParameter)
+ || (sizeof(CK_RSA_PKCS_OAEP_PARAMS) !=
+ pMechanism->ulParameterLen))
+ return CKR_MECHANISM_PARAM_INVALID;
- if (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hKey)
- return CKR_KEY_TYPE_INCONSISTENT;
+ if (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hKey)
+ return CKR_KEY_TYPE_INCONSISTENT;
- break;
+ break;
#endif
- case CKM_DES3_CBC:
+ case CKM_DES3_CBC:
- if ((NULL == pMechanism->pParameter) || (8 != pMechanism->ulParameterLen))
- return CKR_MECHANISM_PARAM_INVALID;
+ if ((NULL == pMechanism->pParameter)
+ || (8 != pMechanism->ulParameterLen))
+ return CKR_MECHANISM_PARAM_INVALID;
- if (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hKey)
- return CKR_KEY_TYPE_INCONSISTENT;
+ if (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hKey)
+ return CKR_KEY_TYPE_INCONSISTENT;
- break;
+ break;
- case CKM_AES_CBC:
-
- if ((NULL == pMechanism->pParameter) || (16 != pMechanism->ulParameterLen))
- return CKR_MECHANISM_PARAM_INVALID;
+ case CKM_AES_CBC:
- if (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hKey)
- return CKR_KEY_TYPE_INCONSISTENT;
+ if ((NULL == pMechanism->pParameter)
+ || (16 != pMechanism->ulParameterLen))
+ return CKR_MECHANISM_PARAM_INVALID;
- break;
+ if (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hKey)
+ return CKR_KEY_TYPE_INCONSISTENT;
- default:
+ break;
+
+ default:
- return CKR_MECHANISM_INVALID;
+ return CKR_MECHANISM_INVALID;
}
- switch (mock_session->find_op.active_operation)
- {
- case PKCS11_MOCK_CK_OPERATION_NONE:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DECRYPT;
- break;
- case PKCS11_MOCK_CK_OPERATION_DIGEST:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST;
- break;
- case PKCS11_MOCK_CK_OPERATION_VERIFY:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY;
- break;
- default:
- return CKR_FUNCTION_FAILED;
+ switch (mock_session->find_op.active_operation) {
+ case PKCS11_MOCK_CK_OPERATION_NONE:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DECRYPT;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_DIGEST:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_VERIFY:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY;
+ break;
+ default:
+ return CKR_FUNCTION_FAILED;
}
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_Decrypt)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedData, CK_ULONG ulEncryptedDataLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_Decrypt) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pEncryptedData,
+ CK_ULONG ulEncryptedDataLen,
+ CK_BYTE_PTR pData,
+ CK_ULONG_PTR pulDataLen) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if (PKCS11_MOCK_CK_OPERATION_DECRYPT != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_DECRYPT !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if (pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH || pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH) {
+ if (pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH
+ || pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH) {
if (!pkcs11_mock_session_reauth) {
return CKR_USER_NOT_LOGGED_IN;
}
- if ((pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH) && pData != NULL) {
+ if ((pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH)
+ && pData != NULL) {
pkcs11_mock_session_reauth = 0;
}
}
@@ -1662,18 +1747,15 @@ CK_DEFINE_FUNCTION(CK_RV, C_Decrypt)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEn
if (NULL == pulDataLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pData)
- {
- if (ulEncryptedDataLen > *pulDataLen)
- {
+ if (NULL != pData) {
+ if (ulEncryptedDataLen > *pulDataLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
for (i = 0; i < ulEncryptedDataLen; i++)
pData[i] = pEncryptedData[i] ^ 0xAB;
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
}
}
@@ -1682,18 +1764,22 @@ CK_DEFINE_FUNCTION(CK_RV, C_Decrypt)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEn
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DecryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DecryptUpdate) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pEncryptedPart,
+ CK_ULONG ulEncryptedPartLen,
+ CK_BYTE_PTR pPart,
+ CK_ULONG_PTR pulPartLen) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if (PKCS11_MOCK_CK_OPERATION_DECRYPT != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_DECRYPT !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
if (NULL == pEncryptedPart)
@@ -1705,14 +1791,10 @@ CK_DEFINE_FUNCTION(CK_RV, C_DecryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_P
if (NULL == pulPartLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pPart)
- {
- if (ulEncryptedPartLen > *pulPartLen)
- {
+ if (NULL != pPart) {
+ if (ulEncryptedPartLen > *pulPartLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
for (i = 0; i < ulEncryptedPartLen; i++)
pPart[i] = pEncryptedPart[i] ^ 0xAB;
}
@@ -1723,38 +1805,43 @@ CK_DEFINE_FUNCTION(CK_RV, C_DecryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_P
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DecryptFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pLastPart, CK_ULONG_PTR pulLastPartLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DecryptFinal) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pLastPart,
+ CK_ULONG_PTR pulLastPartLen) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if ((PKCS11_MOCK_CK_OPERATION_DECRYPT != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY != mock_session->find_op.active_operation))
+ if ((PKCS11_MOCK_CK_OPERATION_DECRYPT !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY !=
+ mock_session->find_op.active_operation))
return CKR_OPERATION_NOT_INITIALIZED;
if (NULL == pulLastPartLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pLastPart)
- {
- switch (mock_session->find_op.active_operation)
- {
- case PKCS11_MOCK_CK_OPERATION_DECRYPT:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
- break;
- case PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DIGEST;
- break;
- case PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_VERIFY;
- break;
- default:
- return CKR_FUNCTION_FAILED;
+ if (NULL != pLastPart) {
+ switch (mock_session->find_op.active_operation) {
+ case PKCS11_MOCK_CK_OPERATION_DECRYPT:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DIGEST;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_VERIFY;
+ break;
+ default:
+ return CKR_FUNCTION_FAILED;
}
}
@@ -1763,18 +1850,21 @@ CK_DEFINE_FUNCTION(CK_RV, C_DecryptFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PT
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DigestInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DigestInit) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((PKCS11_MOCK_CK_OPERATION_NONE != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_ENCRYPT != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_DECRYPT != mock_session->find_op.active_operation))
+ if ((PKCS11_MOCK_CK_OPERATION_NONE !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_ENCRYPT !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_DECRYPT !=
+ mock_session->find_op.active_operation))
return CKR_OPERATION_ACTIVE;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pMechanism)
@@ -1783,39 +1873,48 @@ CK_DEFINE_FUNCTION(CK_RV, C_DigestInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM
if (CKM_SHA_1 != pMechanism->mechanism)
return CKR_MECHANISM_INVALID;
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
return CKR_MECHANISM_PARAM_INVALID;
- switch (mock_session->find_op.active_operation)
- {
- case PKCS11_MOCK_CK_OPERATION_NONE:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DIGEST;
- break;
- case PKCS11_MOCK_CK_OPERATION_ENCRYPT:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT;
- break;
- case PKCS11_MOCK_CK_OPERATION_DECRYPT:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST;
- break;
- default:
- return CKR_FUNCTION_FAILED;
+ switch (mock_session->find_op.active_operation) {
+ case PKCS11_MOCK_CK_OPERATION_NONE:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DIGEST;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_ENCRYPT:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_DECRYPT:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST;
+ break;
+ default:
+ return CKR_FUNCTION_FAILED;
}
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_Digest)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen)
-{
- CK_BYTE hash[20] = { 0x7B, 0x50, 0x2C, 0x3A, 0x1F, 0x48, 0xC8, 0x60, 0x9A, 0xE2, 0x12, 0xCD, 0xFB, 0x63, 0x9D, 0xEE, 0x39, 0x67, 0x3F, 0x5E };
+CK_DEFINE_FUNCTION(CK_RV, C_Digest) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pData, CK_ULONG ulDataLen,
+ CK_BYTE_PTR pDigest,
+ CK_ULONG_PTR pulDigestLen) {
+ CK_BYTE hash[20] =
+ { 0x7B, 0x50, 0x2C, 0x3A, 0x1F, 0x48, 0xC8, 0x60, 0x9A, 0xE2, 0x12,
+ 0xCD, 0xFB, 0x63, 0x9D, 0xEE, 0x39, 0x67, 0x3F, 0x5E
+ };
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_DIGEST != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_DIGEST !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pData)
@@ -1827,16 +1926,13 @@ CK_DEFINE_FUNCTION(CK_RV, C_Digest)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDat
if (NULL == pulDigestLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pDigest)
- {
- if (sizeof(hash) > *pulDigestLen)
- {
+ if (NULL != pDigest) {
+ if (sizeof(hash) > *pulDigestLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
memcpy(pDigest, hash, sizeof(hash));
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
}
}
@@ -1845,16 +1941,18 @@ CK_DEFINE_FUNCTION(CK_RV, C_Digest)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDat
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DigestUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DigestUpdate) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pPart,
+ CK_ULONG ulPartLen) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_DIGEST != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_DIGEST !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pPart)
@@ -1866,16 +1964,17 @@ CK_DEFINE_FUNCTION(CK_RV, C_DigestUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PT
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DigestKey)(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DigestKey) (CK_SESSION_HANDLE hSession,
+ CK_OBJECT_HANDLE hKey) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_DIGEST != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_DIGEST !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hKey)
@@ -1884,48 +1983,53 @@ CK_DEFINE_FUNCTION(CK_RV, C_DigestKey)(CK_SESSION_HANDLE hSession, CK_OBJECT_HAN
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DigestFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest, CK_ULONG_PTR pulDigestLen)
-{
- CK_BYTE hash[20] = { 0x7B, 0x50, 0x2C, 0x3A, 0x1F, 0x48, 0xC8, 0x60, 0x9A, 0xE2, 0x12, 0xCD, 0xFB, 0x63, 0x9D, 0xEE, 0x39, 0x67, 0x3F, 0x5E };
+CK_DEFINE_FUNCTION(CK_RV, C_DigestFinal) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pDigest,
+ CK_ULONG_PTR pulDigestLen) {
+ CK_BYTE hash[20] =
+ { 0x7B, 0x50, 0x2C, 0x3A, 0x1F, 0x48, 0xC8, 0x60, 0x9A, 0xE2, 0x12,
+ 0xCD, 0xFB, 0x63, 0x9D, 0xEE, 0x39, 0x67, 0x3F, 0x5E
+ };
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((PKCS11_MOCK_CK_OPERATION_DIGEST != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST != mock_session->find_op.active_operation))
+ if ((PKCS11_MOCK_CK_OPERATION_DIGEST !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST !=
+ mock_session->find_op.active_operation))
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pulDigestLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pDigest)
- {
- if (sizeof(hash) > *pulDigestLen)
- {
+ if (NULL != pDigest) {
+ if (sizeof(hash) > *pulDigestLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
memcpy(pDigest, hash, sizeof(hash));
- switch (mock_session->find_op.active_operation)
- {
- case PKCS11_MOCK_CK_OPERATION_DIGEST:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
- break;
- case PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_ENCRYPT;
- break;
- case PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST:
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DECRYPT;
- break;
- default:
- return CKR_FUNCTION_FAILED;
+ switch (mock_session->find_op.active_operation) {
+ case PKCS11_MOCK_CK_OPERATION_DIGEST:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_ENCRYPT;
+ break;
+ case PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST:
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DECRYPT;
+ break;
+ default:
+ return CKR_FUNCTION_FAILED;
}
}
}
@@ -1935,20 +2039,24 @@ CK_DEFINE_FUNCTION(CK_RV, C_DigestFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_SignInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_SignInit) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_OBJECT_HANDLE hKey) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if ((PKCS11_MOCK_CK_OPERATION_NONE != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_ENCRYPT != mock_session->find_op.active_operation))
+ if ((PKCS11_MOCK_CK_OPERATION_NONE !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_ENCRYPT !=
+ mock_session->find_op.active_operation))
return CKR_OPERATION_ACTIVE;
- if (pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH || pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH) {
+ if (pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH
+ || pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH) {
mock_session->state = CKS_RO_PUBLIC_SESSION;
pkcs11_mock_session_reauth = 0;
}
@@ -1956,47 +2064,55 @@ CK_DEFINE_FUNCTION(CK_RV, C_SignInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_P
if (NULL == pMechanism)
return CKR_ARGUMENTS_BAD;
- if ((CKM_RSA_PKCS == pMechanism->mechanism) || (CKM_SHA1_RSA_PKCS == pMechanism->mechanism))
- {
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
+ if ((CKM_RSA_PKCS == pMechanism->mechanism)
+ || (CKM_SHA1_RSA_PKCS == pMechanism->mechanism)) {
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
return CKR_MECHANISM_PARAM_INVALID;
if (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hKey)
return CKR_KEY_TYPE_INCONSISTENT;
- }
- else
- {
+ } else {
return CKR_MECHANISM_INVALID;
}
- if (PKCS11_MOCK_CK_OPERATION_NONE == mock_session->find_op.active_operation)
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_SIGN;
+ if (PKCS11_MOCK_CK_OPERATION_NONE ==
+ mock_session->find_op.active_operation)
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_SIGN;
else
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_Sign)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen)
-{
- CK_BYTE signature[10] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
+CK_DEFINE_FUNCTION(CK_RV, C_Sign) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pData, CK_ULONG ulDataLen,
+ CK_BYTE_PTR pSignature,
+ CK_ULONG_PTR pulSignatureLen) {
+ CK_BYTE signature[10] =
+ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_SIGN != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_SIGN !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if (pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH || pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH) {
+ if (pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH
+ || pkcs11_mock_flags & MOCK_FLAG_SAFENET_ALWAYS_AUTH) {
if (!pkcs11_mock_session_reauth) {
return CKR_USER_NOT_LOGGED_IN;
}
- if ((pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH) && pSignature != NULL) {
+ if ((pkcs11_mock_flags & MOCK_FLAG_ALWAYS_AUTH)
+ && pSignature != NULL) {
pkcs11_mock_session_reauth = 0;
}
}
@@ -2010,16 +2126,13 @@ CK_DEFINE_FUNCTION(CK_RV, C_Sign)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,
if (NULL == pulSignatureLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pSignature)
- {
- if (sizeof(signature) > *pulSignatureLen)
- {
+ if (NULL != pSignature) {
+ if (sizeof(signature) > *pulSignatureLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
memcpy(pSignature, signature, sizeof(signature));
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
}
}
@@ -2028,16 +2141,18 @@ CK_DEFINE_FUNCTION(CK_RV, C_Sign)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_SignUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_SignUpdate) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pPart,
+ CK_ULONG ulPartLen) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_SIGN != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_SIGN !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pPart)
@@ -2049,38 +2164,41 @@ CK_DEFINE_FUNCTION(CK_RV, C_SignUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_SignFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen)
-{
- CK_BYTE signature[10] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
+CK_DEFINE_FUNCTION(CK_RV, C_SignFinal) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pSignature,
+ CK_ULONG_PTR pulSignatureLen) {
+ CK_BYTE signature[10] =
+ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((PKCS11_MOCK_CK_OPERATION_SIGN != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT != mock_session->find_op.active_operation))
+ if ((PKCS11_MOCK_CK_OPERATION_SIGN !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT !=
+ mock_session->find_op.active_operation))
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pulSignatureLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pSignature)
- {
- if (sizeof(signature) > *pulSignatureLen)
- {
+ if (NULL != pSignature) {
+ if (sizeof(signature) > *pulSignatureLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
memcpy(pSignature, signature, sizeof(signature));
- if (PKCS11_MOCK_CK_OPERATION_SIGN == mock_session->find_op.active_operation)
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
+ if (PKCS11_MOCK_CK_OPERATION_SIGN ==
+ mock_session->find_op.active_operation)
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
else
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_ENCRYPT;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_ENCRYPT;
}
}
@@ -2089,51 +2207,55 @@ CK_DEFINE_FUNCTION(CK_RV, C_SignFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR p
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_SignRecoverInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_SignRecoverInit) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_OBJECT_HANDLE hKey) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if (PKCS11_MOCK_CK_OPERATION_NONE != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_NONE !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_ACTIVE;
if (NULL == pMechanism)
return CKR_ARGUMENTS_BAD;
- if (CKM_RSA_PKCS == pMechanism->mechanism)
- {
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
+ if (CKM_RSA_PKCS == pMechanism->mechanism) {
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
return CKR_MECHANISM_PARAM_INVALID;
if (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hKey)
return CKR_KEY_TYPE_INCONSISTENT;
- }
- else
- {
+ } else {
return CKR_MECHANISM_INVALID;
}
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_SIGN_RECOVER;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_SIGN_RECOVER;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_SignRecover)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG_PTR pulSignatureLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_SignRecover) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pData, CK_ULONG ulDataLen,
+ CK_BYTE_PTR pSignature,
+ CK_ULONG_PTR pulSignatureLen) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_SIGN_RECOVER != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_SIGN_RECOVER !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pData)
@@ -2145,18 +2267,15 @@ CK_DEFINE_FUNCTION(CK_RV, C_SignRecover)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR
if (NULL == pulSignatureLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pSignature)
- {
- if (ulDataLen > *pulSignatureLen)
- {
+ if (NULL != pSignature) {
+ if (ulDataLen > *pulSignatureLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
for (i = 0; i < ulDataLen; i++)
pSignature[i] = pData[i] ^ 0xAB;
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
}
}
@@ -2165,55 +2284,64 @@ CK_DEFINE_FUNCTION(CK_RV, C_SignRecover)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_VerifyInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_VerifyInit) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_OBJECT_HANDLE hKey) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if ((PKCS11_MOCK_CK_OPERATION_NONE != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_DECRYPT != mock_session->find_op.active_operation))
+ if ((PKCS11_MOCK_CK_OPERATION_NONE !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_DECRYPT !=
+ mock_session->find_op.active_operation))
return CKR_OPERATION_ACTIVE;
if (NULL == pMechanism)
return CKR_ARGUMENTS_BAD;
- if ((CKM_RSA_PKCS == pMechanism->mechanism) || (CKM_SHA1_RSA_PKCS == pMechanism->mechanism))
- {
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
+ if ((CKM_RSA_PKCS == pMechanism->mechanism)
+ || (CKM_SHA1_RSA_PKCS == pMechanism->mechanism)) {
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
return CKR_MECHANISM_PARAM_INVALID;
if (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hKey)
return CKR_KEY_TYPE_INCONSISTENT;
- }
- else
- {
+ } else {
return CKR_MECHANISM_INVALID;
}
- if (PKCS11_MOCK_CK_OPERATION_NONE == mock_session->find_op.active_operation)
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_VERIFY;
+ if (PKCS11_MOCK_CK_OPERATION_NONE ==
+ mock_session->find_op.active_operation)
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_VERIFY;
else
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_Verify)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData, CK_ULONG ulDataLen, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen)
-{
- CK_BYTE signature[10] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
+CK_DEFINE_FUNCTION(CK_RV, C_Verify) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pData, CK_ULONG ulDataLen,
+ CK_BYTE_PTR pSignature,
+ CK_ULONG ulSignatureLen) {
+ CK_BYTE signature[10] =
+ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_VERIFY != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_VERIFY !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pData)
@@ -2239,16 +2367,18 @@ CK_DEFINE_FUNCTION(CK_RV, C_Verify)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDat
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_VerifyUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_VerifyUpdate) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pPart,
+ CK_ULONG ulPartLen) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_VERIFY != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_VERIFY !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pPart)
@@ -2260,19 +2390,23 @@ CK_DEFINE_FUNCTION(CK_RV, C_VerifyUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PT
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_VerifyFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen)
-{
- CK_BYTE signature[10] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
+CK_DEFINE_FUNCTION(CK_RV, C_VerifyFinal) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pSignature,
+ CK_ULONG ulSignatureLen) {
+ CK_BYTE signature[10] =
+ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((PKCS11_MOCK_CK_OPERATION_VERIFY != mock_session->find_op.active_operation) &&
- (PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY != mock_session->find_op.active_operation))
+ if ((PKCS11_MOCK_CK_OPERATION_VERIFY !=
+ mock_session->find_op.active_operation)
+ && (PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY !=
+ mock_session->find_op.active_operation))
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pSignature)
@@ -2287,59 +2421,67 @@ CK_DEFINE_FUNCTION(CK_RV, C_VerifyFinal)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR
if (0 != memcmp(pSignature, signature, sizeof(signature)))
return CKR_SIGNATURE_INVALID;
- if (PKCS11_MOCK_CK_OPERATION_VERIFY == mock_session->find_op.active_operation)
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
+ if (PKCS11_MOCK_CK_OPERATION_VERIFY ==
+ mock_session->find_op.active_operation)
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
else
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_DECRYPT;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_DECRYPT;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_VerifyRecoverInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_VerifyRecoverInit) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_OBJECT_HANDLE hKey) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if (PKCS11_MOCK_CK_OPERATION_NONE != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_NONE !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_ACTIVE;
if (NULL == pMechanism)
return CKR_ARGUMENTS_BAD;
- if (CKM_RSA_PKCS == pMechanism->mechanism)
- {
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
+ if (CKM_RSA_PKCS == pMechanism->mechanism) {
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
return CKR_MECHANISM_PARAM_INVALID;
if (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hKey)
return CKR_KEY_TYPE_INCONSISTENT;
- }
- else
- {
+ } else {
return CKR_MECHANISM_INVALID;
}
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_VERIFY_RECOVER;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_VERIFY_RECOVER;
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_VerifyRecover)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature, CK_ULONG ulSignatureLen, CK_BYTE_PTR pData, CK_ULONG_PTR pulDataLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_VerifyRecover) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pSignature,
+ CK_ULONG ulSignatureLen,
+ CK_BYTE_PTR pData,
+ CK_ULONG_PTR pulDataLen) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_VERIFY_RECOVER != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_VERIFY_RECOVER !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pSignature)
@@ -2351,18 +2493,15 @@ CK_DEFINE_FUNCTION(CK_RV, C_VerifyRecover)(CK_SESSION_HANDLE hSession, CK_BYTE_P
if (NULL == pulDataLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pData)
- {
- if (ulSignatureLen > *pulDataLen)
- {
+ if (NULL != pData) {
+ if (ulSignatureLen > *pulDataLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
for (i = 0; i < ulSignatureLen; i++)
pData[i] = pSignature[i] ^ 0xAB;
- mock_session->find_op.active_operation = PKCS11_MOCK_CK_OPERATION_NONE;
+ mock_session->find_op.active_operation =
+ PKCS11_MOCK_CK_OPERATION_NONE;
}
}
@@ -2371,18 +2510,23 @@ CK_DEFINE_FUNCTION(CK_RV, C_VerifyRecover)(CK_SESSION_HANDLE hSession, CK_BYTE_P
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DigestEncryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DigestEncryptUpdate) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pPart,
+ CK_ULONG ulPartLen,
+ CK_BYTE_PTR pEncryptedPart,
+ CK_ULONG_PTR
+ pulEncryptedPartLen) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_DIGEST_ENCRYPT !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pPart)
@@ -2394,14 +2538,10 @@ CK_DEFINE_FUNCTION(CK_RV, C_DigestEncryptUpdate)(CK_SESSION_HANDLE hSession, CK_
if (NULL == pulEncryptedPartLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pEncryptedPart)
- {
- if (ulPartLen > *pulEncryptedPartLen)
- {
+ if (NULL != pEncryptedPart) {
+ if (ulPartLen > *pulEncryptedPartLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
for (i = 0; i < ulPartLen; i++)
pEncryptedPart[i] = pPart[i] ^ 0xAB;
}
@@ -2412,18 +2552,22 @@ CK_DEFINE_FUNCTION(CK_RV, C_DigestEncryptUpdate)(CK_SESSION_HANDLE hSession, CK_
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DecryptDigestUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DecryptDigestUpdate) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pEncryptedPart,
+ CK_ULONG ulEncryptedPartLen,
+ CK_BYTE_PTR pPart,
+ CK_ULONG_PTR pulPartLen) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if (PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
if (NULL == pEncryptedPart)
@@ -2435,14 +2579,10 @@ CK_DEFINE_FUNCTION(CK_RV, C_DecryptDigestUpdate)(CK_SESSION_HANDLE hSession, CK_
if (NULL == pulPartLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pPart)
- {
- if (ulEncryptedPartLen > *pulPartLen)
- {
+ if (NULL != pPart) {
+ if (ulEncryptedPartLen > *pulPartLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
for (i = 0; i < ulEncryptedPartLen; i++)
pPart[i] = pEncryptedPart[i] ^ 0xAB;
}
@@ -2453,18 +2593,23 @@ CK_DEFINE_FUNCTION(CK_RV, C_DecryptDigestUpdate)(CK_SESSION_HANDLE hSession, CK_
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_SignEncryptUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart, CK_ULONG ulPartLen, CK_BYTE_PTR pEncryptedPart, CK_ULONG_PTR pulEncryptedPartLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_SignEncryptUpdate) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pPart,
+ CK_ULONG ulPartLen,
+ CK_BYTE_PTR pEncryptedPart,
+ CK_ULONG_PTR
+ pulEncryptedPartLen) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if (PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
if (NULL == pPart)
@@ -2476,14 +2621,10 @@ CK_DEFINE_FUNCTION(CK_RV, C_SignEncryptUpdate)(CK_SESSION_HANDLE hSession, CK_BY
if (NULL == pulEncryptedPartLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pEncryptedPart)
- {
- if (ulPartLen > *pulEncryptedPartLen)
- {
+ if (NULL != pEncryptedPart) {
+ if (ulPartLen > *pulEncryptedPartLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
for (i = 0; i < ulPartLen; i++)
pEncryptedPart[i] = pPart[i] ^ 0xAB;
}
@@ -2494,18 +2635,22 @@ CK_DEFINE_FUNCTION(CK_RV, C_SignEncryptUpdate)(CK_SESSION_HANDLE hSession, CK_BY
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DecryptVerifyUpdate)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pEncryptedPart, CK_ULONG ulEncryptedPartLen, CK_BYTE_PTR pPart, CK_ULONG_PTR pulPartLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DecryptVerifyUpdate) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pEncryptedPart,
+ CK_ULONG ulEncryptedPartLen,
+ CK_BYTE_PTR pPart,
+ CK_ULONG_PTR pulPartLen) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
- if (PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY != mock_session->find_op.active_operation)
+ if (PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY !=
+ mock_session->find_op.active_operation)
return CKR_OPERATION_NOT_INITIALIZED;
if (NULL == pEncryptedPart)
@@ -2517,14 +2662,10 @@ CK_DEFINE_FUNCTION(CK_RV, C_DecryptVerifyUpdate)(CK_SESSION_HANDLE hSession, CK_
if (NULL == pulPartLen)
return CKR_ARGUMENTS_BAD;
- if (NULL != pPart)
- {
- if (ulEncryptedPartLen > *pulPartLen)
- {
+ if (NULL != pPart) {
+ if (ulEncryptedPartLen > *pulPartLen) {
return CKR_BUFFER_TOO_SMALL;
- }
- else
- {
+ } else {
for (i = 0; i < ulEncryptedPartLen; i++)
pPart[i] = pEncryptedPart[i] ^ 0xAB;
}
@@ -2535,15 +2676,18 @@ CK_DEFINE_FUNCTION(CK_RV, C_DecryptVerifyUpdate)(CK_SESSION_HANDLE hSession, CK_
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GenerateKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount, CK_OBJECT_HANDLE_PTR phKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GenerateKey) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_ATTRIBUTE_PTR pTemplate,
+ CK_ULONG ulCount,
+ CK_OBJECT_HANDLE_PTR phKey) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pMechanism)
@@ -2552,7 +2696,8 @@ CK_DEFINE_FUNCTION(CK_RV, C_GenerateKey)(CK_SESSION_HANDLE hSession, CK_MECHANIS
if (CKM_DES3_KEY_GEN != pMechanism->mechanism)
return CKR_MECHANISM_INVALID;
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
return CKR_MECHANISM_PARAM_INVALID;
if (NULL == pTemplate)
@@ -2564,8 +2709,7 @@ CK_DEFINE_FUNCTION(CK_RV, C_GenerateKey)(CK_SESSION_HANDLE hSession, CK_MECHANIS
if (NULL == phKey)
return CKR_ARGUMENTS_BAD;
- for (i = 0; i < ulCount; i++)
- {
+ for (i = 0; i < ulCount; i++) {
if (NULL == pTemplate[i].pValue)
return CKR_ATTRIBUTE_VALUE_INVALID;
@@ -2578,15 +2722,26 @@ CK_DEFINE_FUNCTION(CK_RV, C_GenerateKey)(CK_SESSION_HANDLE hSession, CK_MECHANIS
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GenerateKeyPair)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_ATTRIBUTE_PTR pPublicKeyTemplate, CK_ULONG ulPublicKeyAttributeCount, CK_ATTRIBUTE_PTR pPrivateKeyTemplate, CK_ULONG ulPrivateKeyAttributeCount, CK_OBJECT_HANDLE_PTR phPublicKey, CK_OBJECT_HANDLE_PTR phPrivateKey)
+CK_DEFINE_FUNCTION(CK_RV, C_GenerateKeyPair) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_ATTRIBUTE_PTR
+ pPublicKeyTemplate,
+ CK_ULONG
+ ulPublicKeyAttributeCount,
+ CK_ATTRIBUTE_PTR
+ pPrivateKeyTemplate,
+ CK_ULONG
+ ulPrivateKeyAttributeCount,
+ CK_OBJECT_HANDLE_PTR phPublicKey,
+ CK_OBJECT_HANDLE_PTR phPrivateKey)
{
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pMechanism)
@@ -2595,7 +2750,8 @@ CK_DEFINE_FUNCTION(CK_RV, C_GenerateKeyPair)(CK_SESSION_HANDLE hSession, CK_MECH
if (CKM_RSA_PKCS_KEY_PAIR_GEN != pMechanism->mechanism)
return CKR_MECHANISM_INVALID;
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
return CKR_MECHANISM_PARAM_INVALID;
if (NULL == pPublicKeyTemplate)
@@ -2616,8 +2772,7 @@ CK_DEFINE_FUNCTION(CK_RV, C_GenerateKeyPair)(CK_SESSION_HANDLE hSession, CK_MECH
if (NULL == phPrivateKey)
return CKR_ARGUMENTS_BAD;
- for (i = 0; i < ulPublicKeyAttributeCount; i++)
- {
+ for (i = 0; i < ulPublicKeyAttributeCount; i++) {
if (NULL == pPublicKeyTemplate[i].pValue)
return CKR_ATTRIBUTE_VALUE_INVALID;
@@ -2625,8 +2780,7 @@ CK_DEFINE_FUNCTION(CK_RV, C_GenerateKeyPair)(CK_SESSION_HANDLE hSession, CK_MECH
return CKR_ATTRIBUTE_VALUE_INVALID;
}
- for (i = 0; i < ulPrivateKeyAttributeCount; i++)
- {
+ for (i = 0; i < ulPrivateKeyAttributeCount; i++) {
if (NULL == pPrivateKeyTemplate[i].pValue)
return CKR_ATTRIBUTE_VALUE_INVALID;
@@ -2640,15 +2794,20 @@ CK_DEFINE_FUNCTION(CK_RV, C_GenerateKeyPair)(CK_SESSION_HANDLE hSession, CK_MECH
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_WrapKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hWrappingKey, CK_OBJECT_HANDLE hKey, CK_BYTE_PTR pWrappedKey, CK_ULONG_PTR pulWrappedKeyLen)
-{
- CK_BYTE wrappedKey[10] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
+CK_DEFINE_FUNCTION(CK_RV, C_WrapKey) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_OBJECT_HANDLE hWrappingKey,
+ CK_OBJECT_HANDLE hKey,
+ CK_BYTE_PTR pWrappedKey,
+ CK_ULONG_PTR pulWrappedKeyLen) {
+ CK_BYTE wrappedKey[10] =
+ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 };
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pMechanism)
@@ -2657,7 +2816,8 @@ CK_DEFINE_FUNCTION(CK_RV, C_WrapKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PT
if (CKM_RSA_PKCS != pMechanism->mechanism)
return CKR_MECHANISM_INVALID;
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
return CKR_MECHANISM_PARAM_INVALID;
if (PKCS11_MOCK_CK_OBJECT_HANDLE_PUBLIC_KEY != hWrappingKey)
@@ -2666,8 +2826,7 @@ CK_DEFINE_FUNCTION(CK_RV, C_WrapKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PT
if (PKCS11_MOCK_CK_OBJECT_HANDLE_SECRET_KEY != hKey)
return CKR_KEY_HANDLE_INVALID;
- if (NULL != pWrappedKey)
- {
+ if (NULL != pWrappedKey) {
if (sizeof(wrappedKey) > *pulWrappedKeyLen)
return CKR_BUFFER_TOO_SMALL;
else
@@ -2679,15 +2838,21 @@ CK_DEFINE_FUNCTION(CK_RV, C_WrapKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PT
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_UnwrapKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hUnwrappingKey, CK_BYTE_PTR pWrappedKey, CK_ULONG ulWrappedKeyLen, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulAttributeCount, CK_OBJECT_HANDLE_PTR phKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_UnwrapKey) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_OBJECT_HANDLE hUnwrappingKey,
+ CK_BYTE_PTR pWrappedKey,
+ CK_ULONG ulWrappedKeyLen,
+ CK_ATTRIBUTE_PTR pTemplate,
+ CK_ULONG ulAttributeCount,
+ CK_OBJECT_HANDLE_PTR phKey) {
CK_ULONG i = 0;
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pMechanism)
@@ -2696,7 +2861,8 @@ CK_DEFINE_FUNCTION(CK_RV, C_UnwrapKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_
if (CKM_RSA_PKCS != pMechanism->mechanism)
return CKR_MECHANISM_INVALID;
- if ((NULL != pMechanism->pParameter) || (0 != pMechanism->ulParameterLen))
+ if ((NULL != pMechanism->pParameter)
+ || (0 != pMechanism->ulParameterLen))
return CKR_MECHANISM_PARAM_INVALID;
if (PKCS11_MOCK_CK_OBJECT_HANDLE_PRIVATE_KEY != hUnwrappingKey)
@@ -2717,8 +2883,7 @@ CK_DEFINE_FUNCTION(CK_RV, C_UnwrapKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_
if (NULL == phKey)
return CKR_ARGUMENTS_BAD;
- for (i = 0; i < ulAttributeCount; i++)
- {
+ for (i = 0; i < ulAttributeCount; i++) {
if (NULL == pTemplate[i].pValue)
return CKR_ATTRIBUTE_VALUE_INVALID;
@@ -2731,19 +2896,23 @@ CK_DEFINE_FUNCTION(CK_RV, C_UnwrapKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_DeriveKey)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE hBaseKey, CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulAttributeCount, CK_OBJECT_HANDLE_PTR phKey)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_DeriveKey) (CK_SESSION_HANDLE hSession,
+ CK_MECHANISM_PTR pMechanism,
+ CK_OBJECT_HANDLE hBaseKey,
+ CK_ATTRIBUTE_PTR pTemplate,
+ CK_ULONG ulAttributeCount,
+ CK_OBJECT_HANDLE_PTR phKey) {
return CKR_GENERAL_ERROR;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_SeedRandom)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed, CK_ULONG ulSeedLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_SeedRandom) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR pSeed,
+ CK_ULONG ulSeedLen) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == pSeed)
@@ -2755,13 +2924,14 @@ CK_DEFINE_FUNCTION(CK_RV, C_SeedRandom)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GenerateRandom)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR RandomData, CK_ULONG ulRandomLen)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GenerateRandom) (CK_SESSION_HANDLE hSession,
+ CK_BYTE_PTR RandomData,
+ CK_ULONG ulRandomLen) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
if (NULL == RandomData)
@@ -2775,37 +2945,35 @@ CK_DEFINE_FUNCTION(CK_RV, C_GenerateRandom)(CK_SESSION_HANDLE hSession, CK_BYTE_
return CKR_OK;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_GetFunctionStatus)(CK_SESSION_HANDLE hSession)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_GetFunctionStatus) (CK_SESSION_HANDLE hSession) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
-
+
return CKR_FUNCTION_NOT_PARALLEL;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_CancelFunction)(CK_SESSION_HANDLE hSession)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_CancelFunction) (CK_SESSION_HANDLE hSession) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((CK_FALSE == pkcs11_mock_session_opened) || (PKCS11_MOCK_CK_SESSION_ID != hSession))
+ if ((CK_FALSE == pkcs11_mock_session_opened)
+ || (PKCS11_MOCK_CK_SESSION_ID != hSession))
return CKR_SESSION_HANDLE_INVALID;
-
+
return CKR_FUNCTION_NOT_PARALLEL;
}
-
-CK_DEFINE_FUNCTION(CK_RV, C_WaitForSlotEvent)(CK_FLAGS flags, CK_SLOT_ID_PTR pSlot, CK_VOID_PTR pReserved)
-{
+CK_DEFINE_FUNCTION(CK_RV, C_WaitForSlotEvent) (CK_FLAGS flags,
+ CK_SLOT_ID_PTR pSlot,
+ CK_VOID_PTR pReserved) {
if (CK_FALSE == pkcs11_mock_initialized)
return CKR_CRYPTOKI_NOT_INITIALIZED;
- if ((0 != flags) && (CKF_DONT_BLOCK != flags))
+ if ((0 != flags) && (CKF_DONT_BLOCK != flags))
return CKR_ARGUMENTS_BAD;
if (NULL == pSlot)
@@ -2816,4 +2984,3 @@ CK_DEFINE_FUNCTION(CK_RV, C_WaitForSlotEvent)(CK_FLAGS flags, CK_SLOT_ID_PTR pSl
return CKR_NO_EVENT;
}
-
diff --git a/tests/pkcs11/pkcs11-mock.h b/tests/pkcs11/pkcs11-mock.h
index f90a3369e7..ef1d4ed91e 100644
--- a/tests/pkcs11/pkcs11-mock.h
+++ b/tests/pkcs11/pkcs11-mock.h
@@ -35,7 +35,7 @@
#include <p11-kit/pkcs11x.h>
#ifndef NULL_PTR
-#define NULL_PTR 0
+# define NULL_PTR 0
#endif
#define IGNORE(P) (void)(P)
@@ -66,8 +66,7 @@
#define PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE_EXTENSION 5
#define PKCS11_MOCK_CK_OBJECT_HANDLE_CERTIFICATE 6
-typedef enum
-{
+typedef enum {
PKCS11_MOCK_CK_OPERATION_NONE,
PKCS11_MOCK_CK_OPERATION_FIND,
PKCS11_MOCK_CK_OPERATION_ENCRYPT,
@@ -81,8 +80,7 @@ typedef enum
PKCS11_MOCK_CK_OPERATION_DECRYPT_DIGEST,
PKCS11_MOCK_CK_OPERATION_SIGN_ENCRYPT,
PKCS11_MOCK_CK_OPERATION_DECRYPT_VERIFY
-}
-PKCS11_MOCK_CK_OPERATION;
+} PKCS11_MOCK_CK_OPERATION;
struct find_ptr_st {
int remaining_data;
@@ -96,4 +94,3 @@ typedef struct session_ptr_st {
struct find_ptr_st find_op;
} session_ptr_st;
-
diff --git a/tests/pkcs11/pkcs11-mock2.c b/tests/pkcs11/pkcs11-mock2.c
index 44bf517bc3..0e9cab819f 100644
--- a/tests/pkcs11/pkcs11-mock2.c
+++ b/tests/pkcs11/pkcs11-mock2.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <dlfcn.h>
@@ -54,8 +54,7 @@ static CK_FUNCTION_LIST override_funcs;
static CK_RV
override_C_GetMechanismInfo(CK_SLOT_ID slot_id,
- CK_MECHANISM_TYPE type,
- CK_MECHANISM_INFO *info)
+ CK_MECHANISM_TYPE type, CK_MECHANISM_INFO * info)
{
if (type == CKM_RSA_PKCS_PSS)
return CKR_MECHANISM_INVALID;
@@ -63,8 +62,7 @@ override_C_GetMechanismInfo(CK_SLOT_ID slot_id,
return base_C_GetMechanismInfo(slot_id, type, info);
}
-CK_RV
-C_GetFunctionList(CK_FUNCTION_LIST **function_list)
+CK_RV C_GetFunctionList(CK_FUNCTION_LIST ** function_list)
{
CK_C_GetFunctionList func;
CK_FUNCTION_LIST *funcs;
@@ -86,13 +84,12 @@ C_GetFunctionList(CK_FUNCTION_LIST **function_list)
return CKR_OK;
}
-static _CONSTRUCTOR void
-mock_init(void)
+static _CONSTRUCTOR void mock_init(void)
{
const char *lib;
/* suppress compiler warning */
- (void) set_softhsm_conf;
+ (void)set_softhsm_conf;
lib = softhsm_lib();
@@ -101,8 +98,7 @@ mock_init(void)
exit(77);
}
-static _DESTRUCTOR void
-mock_deinit(void)
+static _DESTRUCTOR void mock_deinit(void)
{
dlclose(dl);
}
diff --git a/tests/pkcs11/pkcs11-obj-import.c b/tests/pkcs11/pkcs11-obj-import.c
index 63987c1f8a..07c1a30292 100644
--- a/tests/pkcs11/pkcs11-obj-import.c
+++ b/tests/pkcs11/pkcs11-obj-import.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -42,7 +42,6 @@
/* Tests whether gnutls_pubkey_import_privkey works well for
* RSA keys under PKCS #11 */
-
#include "../cert-common.h"
#define PIN "1234"
@@ -53,8 +52,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -93,7 +92,9 @@ void doit(void)
gnutls_global_set_log_level(4711);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, NULL);
@@ -106,28 +107,21 @@ void doit(void)
ret = gnutls_x509_crt_init(&crt);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_crt_init: %s\n",
- gnutls_strerror(ret));
+ "gnutls_x509_crt_init: %s\n", gnutls_strerror(ret));
exit(1);
}
- ret =
- gnutls_x509_crt_import(crt, &server_cert,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(crt, &server_cert, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_crt_import: %s\n",
- gnutls_strerror(ret));
- exit(1);
+ "gnutls_x509_crt_import: %s\n", gnutls_strerror(ret));
+ exit(1);
}
if (debug) {
- gnutls_x509_crt_print(crt,
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_ONELINE, &tmp);
- printf("\tCertificate: %.*s\n",
- tmp.size, tmp.data);
+ printf("\tCertificate: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
}
@@ -138,14 +132,17 @@ void doit(void)
exit(1);
}
- ret = gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN, GNUTLS_PIN_USER);
+ ret =
+ gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN,
+ GNUTLS_PIN_USER);
if (ret < 0) {
fail("gnutls_pkcs11_token_set_pin: %s\n", gnutls_strerror(ret));
exit(1);
}
ret = gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, crt, "cert",
- GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE|GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE
+ | GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("gnutls_pkcs11_copy_x509_crt: %s\n", gnutls_strerror(ret));
exit(1);
@@ -155,13 +152,15 @@ void doit(void)
assert(gnutls_pkcs11_obj_init(&obj) >= 0);
- ret = gnutls_pkcs11_obj_import_url(obj, SOFTHSM_URL";object=cert", 0);
+ ret = gnutls_pkcs11_obj_import_url(obj, SOFTHSM_URL ";object=cert", 0);
if (ret < 0) {
- fprintf(stderr, "error in %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error in %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
- assert(gnutls_pkcs11_obj_export_url(obj, GNUTLS_PKCS11_URL_GENERIC, &url) >= 0);
+ assert(gnutls_pkcs11_obj_export_url
+ (obj, GNUTLS_PKCS11_URL_GENERIC, &url) >= 0);
assert(url != NULL);
gnutls_free(url);
@@ -175,10 +174,11 @@ void doit(void)
/* check gnutls_pkcs11_obj_export */
buf_size = 4;
- assert(gnutls_pkcs11_obj_export(obj, buf, &buf_size) == GNUTLS_E_SHORT_MEMORY_BUFFER);
+ assert(gnutls_pkcs11_obj_export(obj, buf, &buf_size) ==
+ GNUTLS_E_SHORT_MEMORY_BUFFER);
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_export(obj, buf, &buf_size)>=0);
+ assert(gnutls_pkcs11_obj_export(obj, buf, &buf_size) >= 0);
assert(buf_size == tmp.size);
assert(memcmp(buf, tmp.data, tmp.size) == 0);
@@ -186,60 +186,76 @@ void doit(void)
/* The ID is constant and copied from the certificate */
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_get_info(obj, GNUTLS_PKCS11_OBJ_ID_HEX, buf, &buf_size) >= 0);
+ assert(gnutls_pkcs11_obj_get_info
+ (obj, GNUTLS_PKCS11_OBJ_ID_HEX, buf, &buf_size) >= 0);
assert(buf_size == 60);
- assert(memcmp(buf, "95:d1:ad:a4:52:e4:c5:61:12:a6:91:13:8d:80:dd:2d:81:22:3e:d4", 60) == 0);
+ assert(memcmp
+ (buf,
+ "95:d1:ad:a4:52:e4:c5:61:12:a6:91:13:8d:80:dd:2d:81:22:3e:d4",
+ 60) == 0);
/* label */
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_get_info(obj, GNUTLS_PKCS11_OBJ_LABEL, buf, &buf_size) >= 0);
+ assert(gnutls_pkcs11_obj_get_info
+ (obj, GNUTLS_PKCS11_OBJ_LABEL, buf, &buf_size) >= 0);
assert(buf_size == 4);
assert(memcmp(buf, "cert", 4) == 0);
/* token-label */
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_get_info(obj, GNUTLS_PKCS11_OBJ_TOKEN_LABEL, buf, &buf_size) >= 0);
+ assert(gnutls_pkcs11_obj_get_info
+ (obj, GNUTLS_PKCS11_OBJ_TOKEN_LABEL, buf, &buf_size) >= 0);
assert(buf_size == 4);
assert(memcmp(buf, "test", 4) == 0);
/* token-serial */
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_get_info(obj, GNUTLS_PKCS11_OBJ_TOKEN_SERIAL, buf, &buf_size) >= 0);
+ assert(gnutls_pkcs11_obj_get_info
+ (obj, GNUTLS_PKCS11_OBJ_TOKEN_SERIAL, buf, &buf_size) >= 0);
assert(buf_size != 0);
assert(strlen(buf) != 0);
/* token-model */
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_get_info(obj, GNUTLS_PKCS11_OBJ_TOKEN_MODEL, buf, &buf_size) >= 0);
+ assert(gnutls_pkcs11_obj_get_info
+ (obj, GNUTLS_PKCS11_OBJ_TOKEN_MODEL, buf, &buf_size) >= 0);
assert(buf_size != 0);
assert(strlen(buf) != 0);
/* token-manufacturer */
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_get_info(obj, GNUTLS_PKCS11_OBJ_TOKEN_MANUFACTURER, buf, &buf_size) >= 0);
+ assert(gnutls_pkcs11_obj_get_info
+ (obj, GNUTLS_PKCS11_OBJ_TOKEN_MANUFACTURER, buf,
+ &buf_size) >= 0);
assert(buf_size != 0);
assert(strlen(buf) != 0);
/* token-ID */
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_get_info(obj, GNUTLS_PKCS11_OBJ_ID, buf, &buf_size) >= 0);
+ assert(gnutls_pkcs11_obj_get_info
+ (obj, GNUTLS_PKCS11_OBJ_ID, buf, &buf_size) >= 0);
assert(buf_size != 0);
/* library description */
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_get_info(obj, GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION, buf, &buf_size) >= 0);
+ assert(gnutls_pkcs11_obj_get_info
+ (obj, GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION, buf,
+ &buf_size) >= 0);
assert(buf_size != 0);
assert(strlen(buf) != 0);
/* library manufacturer */
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_get_info(obj, GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER, buf, &buf_size) >= 0);
+ assert(gnutls_pkcs11_obj_get_info
+ (obj, GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER, buf,
+ &buf_size) >= 0);
assert(buf_size != 0);
assert(strlen(buf) != 0);
/* library version */
buf_size = sizeof(buf);
- assert(gnutls_pkcs11_obj_get_info(obj, GNUTLS_PKCS11_OBJ_LIBRARY_VERSION, buf, &buf_size) >= 0);
+ assert(gnutls_pkcs11_obj_get_info
+ (obj, GNUTLS_PKCS11_OBJ_LIBRARY_VERSION, buf, &buf_size) >= 0);
assert(buf_size != 0);
assert(strlen(buf) != 0);
@@ -250,4 +266,3 @@ void doit(void)
remove(CONFIG);
}
-
diff --git a/tests/pkcs11/pkcs11-obj-raw.c b/tests/pkcs11/pkcs11-obj-raw.c
index a9552725ad..5080cdaedd 100644
--- a/tests/pkcs11/pkcs11-obj-raw.c
+++ b/tests/pkcs11/pkcs11-obj-raw.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -44,24 +44,23 @@
#if defined(HAVE___REGISTER_ATFORK)
-#ifdef _WIN32
-# define P11LIB "libpkcs11mock1.dll"
-#else
-# include <dlfcn.h>
-# define P11LIB "libpkcs11mock1.so"
-#endif
-
+# ifdef _WIN32
+# define P11LIB "libpkcs11mock1.dll"
+# else
+# include <dlfcn.h>
+# define P11LIB "libpkcs11mock1.so"
+# endif
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "|<%d>| %s", level, str);
}
-#define PIN "1234"
+# define PIN "1234"
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -87,7 +86,8 @@ void doit(void)
ck_rv_t rv;
gnutls_datum_t data;
- data.data = (void*)"\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb";
+ data.data = (void *)
+ "\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb";
data.size = 20;
ret = global_init();
@@ -116,19 +116,24 @@ void doit(void)
exit(1);
}
- assert(gnutls_pkcs11_obj_init(&obj)>=0);
+ assert(gnutls_pkcs11_obj_init(&obj) >= 0);
gnutls_pkcs11_obj_set_pin_function(obj, pin_func, NULL);
/* unknown object */
- ret = gnutls_pkcs11_obj_import_url(obj, "pkcs11:token=unknown;object=invalid;type=private", GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_pkcs11_obj_import_url(obj,
+ "pkcs11:token=unknown;object=invalid;type=private",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
assert(ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
- ret = gnutls_pkcs11_obj_import_url(obj, "pkcs11:object=test;type=private", GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_pkcs11_obj_import_url(obj, "pkcs11:object=test;type=private",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
assert(ret >= 0);
- ret = gnutls_pkcs11_obj_get_ptr(obj, (void**)&mod, (void*)&session,
- (void*)&ohandle,
+ ret = gnutls_pkcs11_obj_get_ptr(obj, (void **)&mod, (void *)&session,
+ (void *)&ohandle,
&slot_id, GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
diff --git a/tests/pkcs11/pkcs11-pin-func.c b/tests/pkcs11/pkcs11-pin-func.c
index 4a611a5aa3..17081f0ae4 100644
--- a/tests/pkcs11/pkcs11-pin-func.c
+++ b/tests/pkcs11/pkcs11-pin-func.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -32,8 +32,8 @@
#include <gnutls/pkcs11.h>
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, "xxx");
@@ -47,11 +47,11 @@ int main(int argc, char **argv)
void *u;
gnutls_pin_callback_t cb;
- gnutls_pkcs11_set_pin_function(pin_func, (void*)-1);
+ gnutls_pkcs11_set_pin_function(pin_func, (void *)-1);
cb = gnutls_pkcs11_get_pin_function(&u);
- assert(u==(void*)-1);
+ assert(u == (void *)-1);
assert(cb == pin_func);
return 0;
diff --git a/tests/pkcs11/pkcs11-privkey-always-auth.c b/tests/pkcs11/pkcs11-privkey-always-auth.c
index 06052baf94..5cbf46dcc0 100644
--- a/tests/pkcs11/pkcs11-privkey-always-auth.c
+++ b/tests/pkcs11/pkcs11-privkey-always-auth.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -57,15 +57,14 @@ static const char *_pin = "1234";
# include <dlfcn.h>
# define P11LIB "libpkcs11mock1.so"
-
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "|<%d>| %s", level, str);
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (_pin == NULL)
return -1;
@@ -81,7 +80,7 @@ void doit(void)
const char *lib;
gnutls_privkey_t key;
gnutls_pkcs11_obj_t obj;
- gnutls_datum_t sig = {NULL, 0}, data;
+ gnutls_datum_t sig = { NULL, 0 }, data;
unsigned flags = 0;
lib = getenv("P11MOCKLIB1");
@@ -107,7 +106,8 @@ void doit(void)
*pflags = MOCK_FLAG_ALWAYS_AUTH;
}
- data.data = (void*)"\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb";
+ data.data = (void *)
+ "\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb";
data.size = 20;
ret = global_init();
@@ -133,28 +133,31 @@ void doit(void)
}
ret = gnutls_pkcs11_obj_init(&obj);
- assert(ret>=0);
+ assert(ret >= 0);
gnutls_pkcs11_obj_set_pin_function(obj, pin_func, NULL);
- ret = gnutls_pkcs11_obj_import_url(obj, "pkcs11:object=test;type=private", GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
- assert(ret>=0);
+ ret =
+ gnutls_pkcs11_obj_import_url(obj, "pkcs11:object=test;type=private",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ assert(ret >= 0);
ret = gnutls_pkcs11_obj_get_flags(obj, &flags);
- assert(ret>=0);
+ assert(ret >= 0);
if (!(flags & GNUTLS_PKCS11_OBJ_FLAG_MARK_ALWAYS_AUTH)) {
fail("key object doesn't have the always authenticate flag\n");
}
gnutls_pkcs11_obj_deinit(obj);
-
ret = gnutls_privkey_init(&key);
- assert(ret>=0);
+ assert(ret >= 0);
gnutls_privkey_set_pin_function(key, pin_func, NULL);
- ret = gnutls_privkey_import_url(key, "pkcs11:object=test", GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_privkey_import_url(key, "pkcs11:object=test",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
diff --git a/tests/pkcs11/pkcs11-privkey-export.c b/tests/pkcs11/pkcs11-privkey-export.c
index 0716e8c02e..7d7f6e88c3 100644
--- a/tests/pkcs11/pkcs11-privkey-export.c
+++ b/tests/pkcs11/pkcs11-privkey-export.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -45,15 +45,14 @@
# define P11LIB "libpkcs11mock1.so"
#endif
-
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "|<%d>| %s", level, str);
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -98,13 +97,15 @@ void doit(void)
}
ret = gnutls_privkey_init(&key);
- assert(ret>=0);
+ assert(ret >= 0);
ret = gnutls_pubkey_init(&pub);
- assert(ret>=0);
+ assert(ret >= 0);
gnutls_privkey_set_pin_function(key, pin_func, NULL);
- ret = gnutls_privkey_import_url(key, "pkcs11:object=test", GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_privkey_import_url(key, "pkcs11:object=test",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -125,11 +126,12 @@ void doit(void)
gnutls_pubkey_deinit(pub);
gnutls_privkey_deinit(key);
- /* try again using gnutls_pubkey_import_url */
+ /* try again using gnutls_pubkey_import_url */
ret = gnutls_pubkey_init(&pub);
- assert(ret>=0);
+ assert(ret >= 0);
- ret = gnutls_pubkey_import_url(pub, "pkcs11:object=test;type=public", 0);
+ ret =
+ gnutls_pubkey_import_url(pub, "pkcs11:object=test;type=public", 0);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -143,8 +145,8 @@ void doit(void)
assert(m1.size == m2.size);
assert(e1.size == e2.size);
- assert(memcmp(e1.data, e2.data, e2.size)==0);
- assert(memcmp(m1.data, m2.data, m2.size)==0);
+ assert(memcmp(e1.data, e2.data, e2.size) == 0);
+ assert(memcmp(m1.data, m2.data, m2.size) == 0);
gnutls_pubkey_deinit(pub);
gnutls_free(m1.data);
diff --git a/tests/pkcs11/pkcs11-privkey-fork-reinit.c b/tests/pkcs11/pkcs11-privkey-fork-reinit.c
index 425beddd17..634d9652bd 100644
--- a/tests/pkcs11/pkcs11-privkey-fork-reinit.c
+++ b/tests/pkcs11/pkcs11-privkey-fork-reinit.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -42,14 +42,13 @@
#if defined(HAVE___REGISTER_ATFORK)
-#define PIN "1234"
-#ifdef _WIN32
-# define P11LIB "libpkcs11mock1.dll"
-#else
-# include <dlfcn.h>
-# define P11LIB "libpkcs11mock1.so"
-#endif
-
+# define PIN "1234"
+# ifdef _WIN32
+# define P11LIB "libpkcs11mock1.dll"
+# else
+# include <dlfcn.h>
+# define P11LIB "libpkcs11mock1.so"
+# endif
static void tls_log_func(int level, const char *str)
{
@@ -57,8 +56,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -72,10 +71,11 @@ void doit(void)
int ret;
const char *lib;
gnutls_privkey_t key;
- gnutls_datum_t sig = {NULL, 0}, data;
+ gnutls_datum_t sig = { NULL, 0 }, data;
pid_t pid;
- data.data = (void*)"\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb";
+ data.data = (void *)
+ "\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb";
data.size = 20;
ret = global_init();
@@ -105,11 +105,13 @@ void doit(void)
}
ret = gnutls_privkey_init(&key);
- assert(ret>=0);
+ assert(ret >= 0);
gnutls_privkey_set_pin_function(key, pin_func, NULL);
- ret = gnutls_privkey_import_url(key, "pkcs11:object=test", GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_privkey_import_url(key, "pkcs11:object=test",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -129,21 +131,24 @@ void doit(void)
assert(waitpid(pid, &status, 0) >= 0);
if (WEXITSTATUS(status) != 0) {
- fail("child return status was unexpected: %d\n", WEXITSTATUS(status));
+ fail("child return status was unexpected: %d\n",
+ WEXITSTATUS(status));
exit(1);
}
- } else { /* child */
+ } else { /* child */
ret = gnutls_pkcs11_reinit();
assert(ret == 0);
- ret = gnutls_privkey_sign_hash(key, GNUTLS_DIG_SHA1, 0, &data, &sig);
+ ret =
+ gnutls_privkey_sign_hash(key, GNUTLS_DIG_SHA1, 0, &data,
+ &sig);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
}
- gnutls_free(sig.data);
+ gnutls_free(sig.data);
gnutls_privkey_deinit(key);
gnutls_pkcs11_deinit();
gnutls_global_deinit();
diff --git a/tests/pkcs11/pkcs11-privkey-fork.c b/tests/pkcs11/pkcs11-privkey-fork.c
index c2aa2931b8..65f2c9bfe9 100644
--- a/tests/pkcs11/pkcs11-privkey-fork.c
+++ b/tests/pkcs11/pkcs11-privkey-fork.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -42,14 +42,13 @@
#if defined(HAVE___REGISTER_ATFORK)
-#define PIN "1234"
-#ifdef _WIN32
-# define P11LIB "libpkcs11mock1.dll"
-#else
-# include <dlfcn.h>
-# define P11LIB "libpkcs11mock1.so"
-#endif
-
+# define PIN "1234"
+# ifdef _WIN32
+# define P11LIB "libpkcs11mock1.dll"
+# else
+# include <dlfcn.h>
+# define P11LIB "libpkcs11mock1.so"
+# endif
static void tls_log_func(int level, const char *str)
{
@@ -57,8 +56,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -72,10 +71,11 @@ void doit(void)
int ret;
const char *lib;
gnutls_privkey_t key;
- gnutls_datum_t sig = {NULL, 0}, data;
+ gnutls_datum_t sig = { NULL, 0 }, data;
pid_t pid;
- data.data = (void*)"\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb";
+ data.data = (void *)
+ "\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb";
data.size = 20;
ret = global_init();
@@ -105,11 +105,13 @@ void doit(void)
}
ret = gnutls_privkey_init(&key);
- assert(ret>=0);
+ assert(ret >= 0);
gnutls_privkey_set_pin_function(key, pin_func, NULL);
- ret = gnutls_privkey_import_url(key, "pkcs11:object=test", GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_privkey_import_url(key, "pkcs11:object=test",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -129,17 +131,20 @@ void doit(void)
assert(waitpid(pid, &status, 0) >= 0);
if (WEXITSTATUS(status) != 0) {
- fail("child return status was unexpected: %d\n", WEXITSTATUS(status));
+ fail("child return status was unexpected: %d\n",
+ WEXITSTATUS(status));
exit(1);
}
- } else { /* child */
- ret = gnutls_privkey_sign_hash(key, GNUTLS_DIG_SHA1, 0, &data, &sig);
+ } else { /* child */
+ ret =
+ gnutls_privkey_sign_hash(key, GNUTLS_DIG_SHA1, 0, &data,
+ &sig);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
}
- gnutls_free(sig.data);
+ gnutls_free(sig.data);
gnutls_privkey_deinit(key);
gnutls_pkcs11_deinit();
gnutls_global_deinit();
diff --git a/tests/pkcs11/pkcs11-privkey-generate.c b/tests/pkcs11/pkcs11-privkey-generate.c
index 102cf4b292..b7106dbc66 100644
--- a/tests/pkcs11/pkcs11-privkey-generate.c
+++ b/tests/pkcs11/pkcs11-privkey-generate.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -45,13 +45,13 @@ void doit(void)
#else
-#include "../utils.h"
-#include "softhsm.h"
-#include <assert.h>
+# include "../utils.h"
+# include "softhsm.h"
+# include <assert.h>
-#define CONFIG_NAME "softhsm-generate"
-#define CONFIG CONFIG_NAME".config"
-#define PIN "1234"
+# define CONFIG_NAME "softhsm-generate"
+# define CONFIG CONFIG_NAME".config"
+# define PIN "1234"
/* Tests whether a gnutls_privkey_generate3 will work generate a key
* which is marked as sensitive.
*/
@@ -65,8 +65,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (_pin == NULL)
return -1;
@@ -103,7 +103,9 @@ void doit(void)
lib = softhsm_lib();
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_MANUAL, NULL);
@@ -121,9 +123,11 @@ void doit(void)
gnutls_pkcs11_set_pin_function(pin_func, NULL);
/* generate sensitive */
- ret = gnutls_pkcs11_privkey_generate3("pkcs11:token=test", GNUTLS_PK_RSA, 2048,
- "testkey", NULL, GNUTLS_X509_FMT_DER,
- &out, 0, GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_pkcs11_privkey_generate3("pkcs11:token=test", GNUTLS_PK_RSA,
+ 2048, "testkey", NULL,
+ GNUTLS_X509_FMT_DER, &out, 0,
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -133,7 +137,9 @@ void doit(void)
assert(out.size > 0);
gnutls_pkcs11_obj_set_pin_function(obj, pin_func, NULL);
- assert(gnutls_pkcs11_obj_import_url(obj, "pkcs11:token=test;object=testkey;type=private", GNUTLS_PKCS11_OBJ_FLAG_LOGIN) >= 0);
+ assert(gnutls_pkcs11_obj_import_url
+ (obj, "pkcs11:token=test;object=testkey;type=private",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN) >= 0);
assert(gnutls_pkcs11_obj_get_flags(obj, &flags) >= 0);
@@ -144,9 +150,12 @@ void doit(void)
gnutls_pkcs11_obj_deinit(obj);
/* generate non-sensitive */
- ret = gnutls_pkcs11_privkey_generate3("pkcs11:token=test", GNUTLS_PK_RSA, 2048,
- "testkey2", NULL, GNUTLS_X509_FMT_DER,
- &out, 0, GNUTLS_PKCS11_OBJ_FLAG_LOGIN|GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE);
+ ret =
+ gnutls_pkcs11_privkey_generate3("pkcs11:token=test", GNUTLS_PK_RSA,
+ 2048, "testkey2", NULL,
+ GNUTLS_X509_FMT_DER, &out, 0,
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
@@ -156,7 +165,9 @@ void doit(void)
assert(out.size > 0);
gnutls_pkcs11_obj_set_pin_function(obj, pin_func, NULL);
- assert(gnutls_pkcs11_obj_import_url(obj, "pkcs11:token=test;object=testkey2;type=private", GNUTLS_PKCS11_OBJ_FLAG_LOGIN) >= 0);
+ assert(gnutls_pkcs11_obj_import_url
+ (obj, "pkcs11:token=test;object=testkey2;type=private",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN) >= 0);
assert(gnutls_pkcs11_obj_get_flags(obj, &flags) >= 0);
diff --git a/tests/pkcs11/pkcs11-privkey-pthread.c b/tests/pkcs11/pkcs11-privkey-pthread.c
index 2ab28a12bb..ebe6bef7a6 100644
--- a/tests/pkcs11/pkcs11-privkey-pthread.c
+++ b/tests/pkcs11/pkcs11-privkey-pthread.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -52,22 +52,22 @@ void doit(void)
#else
-#ifdef _WIN32
-# define P11LIB "libpkcs11mock1.dll"
-#else
-# include <dlfcn.h>
-# define P11LIB "libpkcs11mock1.so"
-#endif
+# ifdef _WIN32
+# define P11LIB "libpkcs11mock1.dll"
+# else
+# include <dlfcn.h>
+# define P11LIB "libpkcs11mock1.so"
+# endif
/* Tests whether we can use gnutls_privkey_sign() under multiple threads
* with the same key when PKCS#11 is in use.
*/
-#include "../cert-common.h"
+# include "../cert-common.h"
-#define PIN "1234"
+# define PIN "1234"
-static const gnutls_datum_t testdata = {(void*)"test test", 9};
+static const gnutls_datum_t testdata = { (void *)"test test", 9 };
static void tls_log_func(int level, const char *str)
{
@@ -75,8 +75,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -96,16 +96,18 @@ static void *start_thread(void *arg)
int ret;
gnutls_datum_t sig;
- ret = gnutls_privkey_sign_data(data->pkey, GNUTLS_DIG_SHA256, 0, &testdata, &sig);
+ ret =
+ gnutls_privkey_sign_data(data->pkey, GNUTLS_DIG_SHA256, 0,
+ &testdata, &sig);
if (ret < 0)
- pthread_exit((void*)-2);
+ pthread_exit((void *)-2);
gnutls_free(sig.data);
pthread_exit(0);
}
-#define MAX_THREADS 48
+# define MAX_THREADS 48
static
void do_thread_stuff(gnutls_privkey_t pkey)
@@ -115,11 +117,11 @@ void do_thread_stuff(gnutls_privkey_t pkey)
unsigned i;
void *retval;
- data = calloc(1, sizeof(thread_data_st)*MAX_THREADS);
+ data = calloc(1, sizeof(thread_data_st) * MAX_THREADS);
if (data == NULL)
abort();
- for (i=0;i<MAX_THREADS;i++) {
+ for (i = 0; i < MAX_THREADS; i++) {
data[i].pkey = pkey;
ret = pthread_create(&data[i].id, NULL, start_thread, &data[i]);
if (ret != 0) {
@@ -127,7 +129,7 @@ void do_thread_stuff(gnutls_privkey_t pkey)
}
}
- for (i=0;i<MAX_THREADS;i++) {
+ for (i = 0; i < MAX_THREADS; i++) {
ret = pthread_join(data[i].id, &retval);
if (ret != 0 || retval != NULL) {
fail("Error in %d: %p\n", (int)data[i].id, retval);
@@ -169,9 +171,12 @@ void doit(void)
assert(gnutls_privkey_init(&pkey) == 0);
- ret = gnutls_privkey_import_url(pkey, "pkcs11:object=test", GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_privkey_import_url(pkey, "pkcs11:object=test",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
- fprintf(stderr, "error in %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error in %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
@@ -180,9 +185,9 @@ void doit(void)
if (pid == -1) {
exit(1);
} else if (pid) {
- waitpid(pid, &status, 0);
- check_wait_status(status);
- goto cleanup;
+ waitpid(pid, &status, 0);
+ check_wait_status(status);
+ goto cleanup;
}
do_thread_stuff(pkey);
diff --git a/tests/pkcs11/pkcs11-privkey-safenet-always-auth.c b/tests/pkcs11/pkcs11-privkey-safenet-always-auth.c
index 41900d6c89..79f41ffec5 100644
--- a/tests/pkcs11/pkcs11-privkey-safenet-always-auth.c
+++ b/tests/pkcs11/pkcs11-privkey-safenet-always-auth.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -58,15 +58,14 @@ static const char *_pin = "1234";
# include <dlfcn.h>
# define P11LIB "libpkcs11mock1.so"
-
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "|<%d>| %s", level, str);
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (_pin == NULL)
return -1;
@@ -81,7 +80,7 @@ void doit(void)
int ret;
const char *lib;
gnutls_privkey_t key;
- gnutls_datum_t sig = {NULL, 0}, data;
+ gnutls_datum_t sig = { NULL, 0 }, data;
lib = getenv("P11MOCKLIB1");
if (lib == NULL)
@@ -106,7 +105,8 @@ void doit(void)
*pflags = MOCK_FLAG_SAFENET_ALWAYS_AUTH;
}
- data.data = (void*)"\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb";
+ data.data = (void *)
+ "\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb";
data.size = 20;
ret = global_init();
@@ -132,11 +132,13 @@ void doit(void)
}
ret = gnutls_privkey_init(&key);
- assert(ret>=0);
+ assert(ret >= 0);
gnutls_privkey_set_pin_function(key, pin_func, NULL);
- ret = gnutls_privkey_import_url(key, "pkcs11:object=test", GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_privkey_import_url(key, "pkcs11:object=test",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
diff --git a/tests/pkcs11/pkcs11-privkey.c b/tests/pkcs11/pkcs11-privkey.c
index 892b3f3f79..c1b5f2fe8b 100644
--- a/tests/pkcs11/pkcs11-privkey.c
+++ b/tests/pkcs11/pkcs11-privkey.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -42,49 +42,47 @@
#define CONFIG CONFIG_NAME".config"
static unsigned char server_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIICdDCCAd2gAwIBAgIBAzANBgkqhkiG9w0BAQsFADAaMQswCQYDVQQDEwJDQTEL\n"
-"MAkGA1UEBhMCQ1owIhgPMjAxMzExMTAwODI1MjdaGA8yMDIwMTIxMzA4MjUyN1ow\n"
-"HjEPMA0GA1UEAxMGQ2xpZW50MQswCQYDVQQGEwJDWjCBnzANBgkqhkiG9w0BAQEF\n"
-"AAOBjQAwgYkCgYEAvQRIzvKyhr3tqmB4Pe+91DWSFayaNtcrDIT597bhxugVYW8o\n"
-"jB206kx5aknAMA3PQGYcGqkLrt+nsJcmOIXDZsC6P4zeOSsF1PPhDAoX3bkUr2lF\n"
-"MEt374eKdg1yvyhRxt4DOR6aD4gkC7fVtaYdgV6yXpJGMHV05LBIgQ7QtykCAwEA\n"
-"AaOBwTCBvjAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBgGA1Ud\n"
-"EQQRMA+BDW5vbmVAbm9uZS5vcmcwDwYDVR0PAQH/BAUDAweAADAdBgNVHQ4EFgQU\n"
-"Dbinh11GaaJcTyOpmxPYuttsiGowHwYDVR0jBBgwFoAUEg7aURJAVq70HG3MobA9\n"
-"KGF+MwEwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL3d3dy5nZXRjcmwuY3JsL2dl\n"
-"dGNybC8wDQYJKoZIhvcNAQELBQADgYEAN/Henso+5zzuFQWTpJXlUsWtRQAFhRY3\n"
-"WVt3xtnyPs4pF/LKBp3Ov0GLGBkz5YlyJGFNESSyUviMsH7g7rJM8i7Bph6BQTE9\n"
-"XdqbZPc0opfms4EHjmlXj5HQ0f0yoxHnLk43CR+vmbn0JPuurnEKAwjznAJR8GxI\n"
-"R2MRyMxdGqs=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICdDCCAd2gAwIBAgIBAzANBgkqhkiG9w0BAQsFADAaMQswCQYDVQQDEwJDQTEL\n"
+ "MAkGA1UEBhMCQ1owIhgPMjAxMzExMTAwODI1MjdaGA8yMDIwMTIxMzA4MjUyN1ow\n"
+ "HjEPMA0GA1UEAxMGQ2xpZW50MQswCQYDVQQGEwJDWjCBnzANBgkqhkiG9w0BAQEF\n"
+ "AAOBjQAwgYkCgYEAvQRIzvKyhr3tqmB4Pe+91DWSFayaNtcrDIT597bhxugVYW8o\n"
+ "jB206kx5aknAMA3PQGYcGqkLrt+nsJcmOIXDZsC6P4zeOSsF1PPhDAoX3bkUr2lF\n"
+ "MEt374eKdg1yvyhRxt4DOR6aD4gkC7fVtaYdgV6yXpJGMHV05LBIgQ7QtykCAwEA\n"
+ "AaOBwTCBvjAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBgGA1Ud\n"
+ "EQQRMA+BDW5vbmVAbm9uZS5vcmcwDwYDVR0PAQH/BAUDAweAADAdBgNVHQ4EFgQU\n"
+ "Dbinh11GaaJcTyOpmxPYuttsiGowHwYDVR0jBBgwFoAUEg7aURJAVq70HG3MobA9\n"
+ "KGF+MwEwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL3d3dy5nZXRjcmwuY3JsL2dl\n"
+ "dGNybC8wDQYJKoZIhvcNAQELBQADgYEAN/Henso+5zzuFQWTpJXlUsWtRQAFhRY3\n"
+ "WVt3xtnyPs4pF/LKBp3Ov0GLGBkz5YlyJGFNESSyUviMsH7g7rJM8i7Bph6BQTE9\n"
+ "XdqbZPc0opfms4EHjmlXj5HQ0f0yoxHnLk43CR+vmbn0JPuurnEKAwjznAJR8GxI\n"
+ "R2MRyMxdGqs=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char server_key_pem[] =
-"-----BEGIN RSA PRIVATE KEY-----\n"
-"MIICXQIBAAKBgQC9BEjO8rKGve2qYHg9773UNZIVrJo21ysMhPn3tuHG6BVhbyiM\n"
-"HbTqTHlqScAwDc9AZhwaqQuu36ewlyY4hcNmwLo/jN45KwXU8+EMChfduRSvaUUw\n"
-"S3fvh4p2DXK/KFHG3gM5HpoPiCQLt9W1ph2BXrJekkYwdXTksEiBDtC3KQIDAQAB\n"
-"AoGBAKXrseIAB5jh9lPeNQ7heXhjwiXGiuTjAkYOIMNDRXPuXH5YLna4yQv3L4mO\n"
-"zecg6DI2sCrzA29xoukP9ZweR4RUK2cS4/QggH9UgWP0QUpvj4nogyRkh7UrWyVV\n"
-"xbboHcmgqWgNLR8GrEZqlpOWFiT+f+QAx783/khvP5QLNp6BAkEA3YvvqfPpepdv\n"
-"UC/Uk/8LbVK0LGTSu2ynyl1fMbos9lkJNFdfPM31K6DHeqziIGSoWCSjAsN/e8V7\n"
-"MU7egWtI+QJBANppSlO+PTYHWKeOWE7NkM1yVHxAiav9Oott0JywAH8RarfyTuCB\n"
-"iyMJP8Rv920GsciDY4dyx0MBJF0tiH+5G7ECQQDQbU5UPbxyMPXwIo+DjHZbq2sG\n"
-"OPRoj5hrsdxVFCoouSsHqwtWUQ1Otjv1FaDHiOs3wX/6oaHV97wmb2S1rRFBAkAq\n"
-"prELFXVinaCkZ9m62c3TMOZqtTetTHAoVjOMxZnzNnV+omTg1qtTFjVLqQnKUqpZ\n"
-"G79N7g4XeZueTov/VSihAkAwGeDXvQ8NlrBlZACCKp1sUqaJptuJ438Qwztbl3Pq\n"
-"E6/8TD5yXtrLt9S2LNAFw1i7LVksUB8IbQNTuuwV7LYI\n"
-"-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIICXQIBAAKBgQC9BEjO8rKGve2qYHg9773UNZIVrJo21ysMhPn3tuHG6BVhbyiM\n"
+ "HbTqTHlqScAwDc9AZhwaqQuu36ewlyY4hcNmwLo/jN45KwXU8+EMChfduRSvaUUw\n"
+ "S3fvh4p2DXK/KFHG3gM5HpoPiCQLt9W1ph2BXrJekkYwdXTksEiBDtC3KQIDAQAB\n"
+ "AoGBAKXrseIAB5jh9lPeNQ7heXhjwiXGiuTjAkYOIMNDRXPuXH5YLna4yQv3L4mO\n"
+ "zecg6DI2sCrzA29xoukP9ZweR4RUK2cS4/QggH9UgWP0QUpvj4nogyRkh7UrWyVV\n"
+ "xbboHcmgqWgNLR8GrEZqlpOWFiT+f+QAx783/khvP5QLNp6BAkEA3YvvqfPpepdv\n"
+ "UC/Uk/8LbVK0LGTSu2ynyl1fMbos9lkJNFdfPM31K6DHeqziIGSoWCSjAsN/e8V7\n"
+ "MU7egWtI+QJBANppSlO+PTYHWKeOWE7NkM1yVHxAiav9Oott0JywAH8RarfyTuCB\n"
+ "iyMJP8Rv920GsciDY4dyx0MBJF0tiH+5G7ECQQDQbU5UPbxyMPXwIo+DjHZbq2sG\n"
+ "OPRoj5hrsdxVFCoouSsHqwtWUQ1Otjv1FaDHiOs3wX/6oaHV97wmb2S1rRFBAkAq\n"
+ "prELFXVinaCkZ9m62c3TMOZqtTetTHAoVjOMxZnzNnV+omTg1qtTFjVLqQnKUqpZ\n"
+ "G79N7g4XeZueTov/VSihAkAwGeDXvQ8NlrBlZACCKp1sUqaJptuJ438Qwztbl3Pq\n"
+ "E6/8TD5yXtrLt9S2LNAFw1i7LVksUB8IbQNTuuwV7LYI\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
/* GnuTLS internally calls time() to find out the current time when
verifying certificates. To avoid a time bomb, we hard code the
current time. This should work fine on systems where the library
@@ -107,8 +105,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -154,7 +152,9 @@ void doit(void)
gnutls_global_set_log_level(4711);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, "trusted");
@@ -167,47 +167,37 @@ void doit(void)
ret = gnutls_x509_crt_init(&crt);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_crt_init: %s\n",
- gnutls_strerror(ret));
+ "gnutls_x509_crt_init: %s\n", gnutls_strerror(ret));
exit(1);
}
- ret =
- gnutls_x509_crt_import(crt, &server_cert,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(crt, &server_cert, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_crt_import: %s\n",
- gnutls_strerror(ret));
- exit(1);
+ "gnutls_x509_crt_import: %s\n", gnutls_strerror(ret));
+ exit(1);
}
if (debug) {
- gnutls_x509_crt_print(crt,
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_ONELINE, &tmp);
- printf("\tCertificate: %.*s\n",
- tmp.size, tmp.data);
+ printf("\tCertificate: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
}
ret = gnutls_x509_privkey_init(&key);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_privkey_init: %s\n",
- gnutls_strerror(ret));
+ "gnutls_x509_privkey_init: %s\n", gnutls_strerror(ret));
exit(1);
}
- ret =
- gnutls_x509_privkey_import(key, &server_key,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_privkey_import(key, &server_key, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_privkey_import: %s\n",
gnutls_strerror(ret));
- exit(1);
+ exit(1);
}
/* initialize softhsm token */
@@ -217,23 +207,33 @@ void doit(void)
exit(1);
}
- ret = gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN, GNUTLS_PIN_USER);
+ ret =
+ gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN,
+ GNUTLS_PIN_USER);
if (ret < 0) {
fail("gnutls_pkcs11_token_set_pin: %s\n", gnutls_strerror(ret));
exit(1);
}
ret = gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, crt, "cert",
- GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE|GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE |
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("gnutls_pkcs11_copy_x509_crt: %s\n", gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_pkcs11_copy_x509_privkey(SOFTHSM_URL, key, "cert", GNUTLS_KEY_DIGITAL_SIGNATURE|GNUTLS_KEY_KEY_ENCIPHERMENT,
- GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE|GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE|GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_pkcs11_copy_x509_privkey(SOFTHSM_URL, key, "cert",
+ GNUTLS_KEY_DIGITAL_SIGNATURE |
+ GNUTLS_KEY_KEY_ENCIPHERMENT,
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE
+ | GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
- fail("gnutls_pkcs11_copy_x509_privkey: %s\n", gnutls_strerror(ret));
+ fail("gnutls_pkcs11_copy_x509_privkey: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -246,13 +246,21 @@ void doit(void)
ret = gnutls_certificate_allocate_credentials(&cred);
if (ret < 0) {
- fail("gnutls_certificate_allocate_credentials: %s\n", gnutls_strerror(ret));
+ fail("gnutls_certificate_allocate_credentials: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_certificate_set_x509_key_file2(cred, SOFTHSM_URL";object=cert;object-type=cert", SOFTHSM_URL";object=cert;object-type=private", 0, PIN, 0);
+ ret =
+ gnutls_certificate_set_x509_key_file2(cred,
+ SOFTHSM_URL
+ ";object=cert;object-type=cert",
+ SOFTHSM_URL
+ ";object=cert;object-type=private",
+ 0, PIN, 0);
if (ret < 0) {
- fail("gnutls_certificate_set_x509_key_file2: %s\n", gnutls_strerror(ret));
+ fail("gnutls_certificate_set_x509_key_file2: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
diff --git a/tests/pkcs11/pkcs11-pubkey-import-ecdsa.c b/tests/pkcs11/pkcs11-pubkey-import-ecdsa.c
index eb30448347..5362524183 100644
--- a/tests/pkcs11/pkcs11-pubkey-import-ecdsa.c
+++ b/tests/pkcs11/pkcs11-pubkey-import-ecdsa.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
diff --git a/tests/pkcs11/pkcs11-pubkey-import-rsa.c b/tests/pkcs11/pkcs11-pubkey-import-rsa.c
index 754a254139..682efa6bf3 100644
--- a/tests/pkcs11/pkcs11-pubkey-import-rsa.c
+++ b/tests/pkcs11/pkcs11-pubkey-import-rsa.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
diff --git a/tests/pkcs11/pkcs11-pubkey-import.c b/tests/pkcs11/pkcs11-pubkey-import.c
index 61a0a4eff0..12db744dbe 100644
--- a/tests/pkcs11/pkcs11-pubkey-import.c
+++ b/tests/pkcs11/pkcs11-pubkey-import.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,12 +39,11 @@
/* Tests whether gnutls_pubkey_import_privkey works well for
* RSA keys under PKCS #11 */
-
#include "../cert-common.h"
#define PIN "1234"
-static const gnutls_datum_t testdata = {(void*)"test test", 9};
+static const gnutls_datum_t testdata = { (void *)"test test", 9 };
static void tls_log_func(int level, const char *str)
{
@@ -52,8 +51,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -93,7 +92,9 @@ static void try(int rsa)
gnutls_global_set_log_level(4711);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, "trusted");
@@ -106,47 +107,41 @@ static void try(int rsa)
ret = gnutls_x509_crt_init(&crt);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_crt_init: %s\n",
- gnutls_strerror(ret));
+ "gnutls_x509_crt_init: %s\n", gnutls_strerror(ret));
exit(1);
}
ret =
- gnutls_x509_crt_import(crt, rsa?&server_cert:&server_ecc_cert,
+ gnutls_x509_crt_import(crt, rsa ? &server_cert : &server_ecc_cert,
GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_crt_import: %s\n",
- gnutls_strerror(ret));
- exit(1);
+ "gnutls_x509_crt_import: %s\n", gnutls_strerror(ret));
+ exit(1);
}
if (debug) {
- gnutls_x509_crt_print(crt,
- GNUTLS_CRT_PRINT_ONELINE,
- &tmp);
+ gnutls_x509_crt_print(crt, GNUTLS_CRT_PRINT_ONELINE, &tmp);
- printf("\tCertificate: %.*s\n",
- tmp.size, tmp.data);
+ printf("\tCertificate: %.*s\n", tmp.size, tmp.data);
gnutls_free(tmp.data);
}
ret = gnutls_x509_privkey_init(&key);
if (ret < 0) {
fprintf(stderr,
- "gnutls_x509_privkey_init: %s\n",
- gnutls_strerror(ret));
+ "gnutls_x509_privkey_init: %s\n", gnutls_strerror(ret));
exit(1);
}
ret =
- gnutls_x509_privkey_import(key, rsa?&server_key:&server_ecc_key,
- GNUTLS_X509_FMT_PEM);
+ gnutls_x509_privkey_import(key, rsa ? &server_key : &server_ecc_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_privkey_import: %s\n",
gnutls_strerror(ret));
- exit(1);
+ exit(1);
}
/* initialize softhsm token */
@@ -156,23 +151,33 @@ static void try(int rsa)
exit(1);
}
- ret = gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN, GNUTLS_PIN_USER);
+ ret =
+ gnutls_pkcs11_token_set_pin(SOFTHSM_URL, NULL, PIN,
+ GNUTLS_PIN_USER);
if (ret < 0) {
fail("gnutls_pkcs11_token_set_pin: %s\n", gnutls_strerror(ret));
exit(1);
}
ret = gnutls_pkcs11_copy_x509_crt(SOFTHSM_URL, crt, "cert",
- GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE|GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE |
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
fail("gnutls_pkcs11_copy_x509_crt: %s\n", gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_pkcs11_copy_x509_privkey(SOFTHSM_URL, key, "cert", GNUTLS_KEY_DIGITAL_SIGNATURE|GNUTLS_KEY_KEY_ENCIPHERMENT,
- GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE|GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE|GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ ret =
+ gnutls_pkcs11_copy_x509_privkey(SOFTHSM_URL, key, "cert",
+ GNUTLS_KEY_DIGITAL_SIGNATURE |
+ GNUTLS_KEY_KEY_ENCIPHERMENT,
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE
+ | GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
if (ret < 0) {
- fail("gnutls_pkcs11_copy_x509_privkey: %s\n", gnutls_strerror(ret));
+ fail("gnutls_pkcs11_copy_x509_privkey: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -182,9 +187,14 @@ static void try(int rsa)
assert(gnutls_privkey_init(&pkey) == 0);
- ret = gnutls_privkey_import_pkcs11_url(pkey, SOFTHSM_URL";object=cert;object-type=private;pin-value="PIN);
+ ret =
+ gnutls_privkey_import_pkcs11_url(pkey,
+ SOFTHSM_URL
+ ";object=cert;object-type=private;pin-value="
+ PIN);
if (ret < 0) {
- fprintf(stderr, "error in %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fprintf(stderr, "error in %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
@@ -195,15 +205,22 @@ static void try(int rsa)
/* check whether privkey and pubkey are operational
* by signing and verifying */
- assert(gnutls_privkey_sign_data(pkey, GNUTLS_DIG_SHA256, 0, &testdata, &sig) == 0);
+ assert(gnutls_privkey_sign_data
+ (pkey, GNUTLS_DIG_SHA256, 0, &testdata, &sig) == 0);
/* verify against the raw pubkey */
assert(gnutls_pubkey_init(&pubkey2) == 0);
- assert(gnutls_pubkey_import_x509_raw(pubkey2, rsa?&server_cert:&server_ecc_cert, GNUTLS_X509_FMT_PEM, 0) == 0);
- assert(gnutls_pubkey_verify_data2(pubkey2, gnutls_pk_to_sign(pk, GNUTLS_DIG_SHA256), 0, &testdata, &sig) == 0);
+ assert(gnutls_pubkey_import_x509_raw
+ (pubkey2, rsa ? &server_cert : &server_ecc_cert,
+ GNUTLS_X509_FMT_PEM, 0) == 0);
+ assert(gnutls_pubkey_verify_data2
+ (pubkey2, gnutls_pk_to_sign(pk, GNUTLS_DIG_SHA256), 0, &testdata,
+ &sig) == 0);
/* verify against the pubkey in PKCS #11 */
- assert(gnutls_pubkey_verify_data2(pubkey, gnutls_pk_to_sign(pk, GNUTLS_DIG_SHA256), 0, &testdata, &sig) == 0);
+ assert(gnutls_pubkey_verify_data2
+ (pubkey, gnutls_pk_to_sign(pk, GNUTLS_DIG_SHA256), 0, &testdata,
+ &sig) == 0);
gnutls_free(sig.data);
@@ -215,4 +232,3 @@ static void try(int rsa)
remove(CONFIG);
}
-
diff --git a/tests/pkcs11/pkcs11-rsa-pss-privkey-test.c b/tests/pkcs11/pkcs11-rsa-pss-privkey-test.c
index 2d1d0932dc..40cb381f09 100644
--- a/tests/pkcs11/pkcs11-rsa-pss-privkey-test.c
+++ b/tests/pkcs11/pkcs11-rsa-pss-privkey-test.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -75,10 +75,12 @@ static unsigned verify_rsa_pss_presence(void)
i = 0;
do {
- ret = gnutls_pkcs11_token_get_mechanism("pkcs11:", i++, &mechanism);
- if (ret >= 0 && mechanism == 0xd /* CKM_RSA_PKCS_PSS*/)
+ ret =
+ gnutls_pkcs11_token_get_mechanism("pkcs11:", i++,
+ &mechanism);
+ if (ret >= 0 && mechanism == 0xd /* CKM_RSA_PKCS_PSS */ )
return 1;
- } while(ret>=0);
+ } while (ret >= 0);
return 0;
}
@@ -128,7 +130,8 @@ void doit(void)
}
if (verify_rsa_pss_presence() == 0) {
- fprintf(stderr, "Skipping test as no RSA-PSS mech is supported\n");
+ fprintf(stderr,
+ "Skipping test as no RSA-PSS mech is supported\n");
exit(77);
}
diff --git a/tests/pkcs11/pkcs11-token-raw.c b/tests/pkcs11/pkcs11-token-raw.c
index 04ff12df39..1c2b4d3d5d 100644
--- a/tests/pkcs11/pkcs11-token-raw.c
+++ b/tests/pkcs11/pkcs11-token-raw.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -44,20 +44,19 @@
#if defined(HAVE___REGISTER_ATFORK)
-#ifdef _WIN32
-# define P11LIB "libpkcs11mock1.dll"
-#else
-# include <dlfcn.h>
-# define P11LIB "libpkcs11mock1.so"
-#endif
-
+# ifdef _WIN32
+# define P11LIB "libpkcs11mock1.dll"
+# else
+# include <dlfcn.h>
+# define P11LIB "libpkcs11mock1.so"
+# endif
static void tls_log_func(int level, const char *str)
{
fprintf(stderr, "|<%d>| %s", level, str);
}
-#define TOKEN_NAME "whatever"
+# define TOKEN_NAME "whatever"
void doit(void)
{
int ret;
@@ -95,34 +94,34 @@ void doit(void)
}
{
- static const char url[] = "pkcs11:token="TOKEN_NAME;
+ static const char url[] = "pkcs11:token=" TOKEN_NAME;
/* Testing a too small buffer */
size_t size = 1;
char *buf = gnutls_malloc(size);
assert(buf != NULL);
ret = gnutls_pkcs11_token_get_info(url,
- GNUTLS_PKCS11_TOKEN_LABEL,
- buf, &size);
+ GNUTLS_PKCS11_TOKEN_LABEL,
+ buf, &size);
assert(ret == GNUTLS_E_SHORT_MEMORY_BUFFER);
- assert(size == strlen(TOKEN_NAME)+1);
+ assert(size == strlen(TOKEN_NAME) + 1);
/* Testing a too small buffer by one */
size -= 1;
buf = gnutls_realloc(buf, size);
assert(buf != NULL);
ret = gnutls_pkcs11_token_get_info(url,
- GNUTLS_PKCS11_TOKEN_LABEL,
- buf, &size);
+ GNUTLS_PKCS11_TOKEN_LABEL,
+ buf, &size);
assert(ret == GNUTLS_E_SHORT_MEMORY_BUFFER);
- assert(size == strlen(TOKEN_NAME)+1);
+ assert(size == strlen(TOKEN_NAME) + 1);
/* Testing an exactly fitting buffer */
buf = gnutls_realloc(buf, size);
assert(buf != NULL);
ret = gnutls_pkcs11_token_get_info(url,
- GNUTLS_PKCS11_TOKEN_LABEL,
- buf, &size);
+ GNUTLS_PKCS11_TOKEN_LABEL,
+ buf, &size);
assert(ret == 0);
assert(strcmp(buf, TOKEN_NAME) == 0);
assert(size == strlen(TOKEN_NAME));
@@ -130,10 +129,13 @@ void doit(void)
gnutls_free(buf);
}
- ret = gnutls_pkcs11_token_get_ptr("pkcs11:token=invalid", (void**)&mod, &slot_id, 0);
+ ret =
+ gnutls_pkcs11_token_get_ptr("pkcs11:token=invalid", (void **)&mod,
+ &slot_id, 0);
assert(ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
- ret = gnutls_pkcs11_token_get_ptr("pkcs11:", (void**)&mod, &slot_id, 0);
+ ret =
+ gnutls_pkcs11_token_get_ptr("pkcs11:", (void **)&mod, &slot_id, 0);
if (ret < 0) {
fail("%d: %s\n", ret, gnutls_strerror(ret));
exit(1);
diff --git a/tests/pkcs11/softhsm.h b/tests/pkcs11/softhsm.h
index 28944766c3..9a13cc304b 100644
--- a/tests/pkcs11/softhsm.h
+++ b/tests/pkcs11/softhsm.h
@@ -20,32 +20,31 @@
#ifndef SOFTHSM_H
# define SOFTHSM_H
-#include <sys/stat.h>
-
-#define SOFTHSM_V2
-
-#ifdef SOFTHSM_V1
-# define SOFTHSM_URL "pkcs11:model=SoftHSM;manufacturer=SoftHSM;serial=1;token=test"
-# define LIB1 "/usr/lib64/pkcs11/libsofthsm.so"
-# define LIB2 "/usr/lib/pkcs11/libsofthsm.so"
-# define LIB3 "/usr/lib/softhsm/libsofthsm.so"
-# define LIB4 "/usr/local/lib/softhsm/libsofthsm.so"
-# define SOFTHSM_BIN1 "/usr/bin/softhsm"
-# define SOFTHSM_BIN2 "/usr/local/bin/softhsm"
-# define SOFTHSM_ENV "SOFTHSM_CONF"
-#else
-# define SOFTHSM_URL "pkcs11:model=SoftHSM%20v2;manufacturer=SoftHSM%20project;token=test"
-# define LIB1 "/usr/lib64/pkcs11/libsofthsm2.so"
-# define LIB2 "/usr/lib/pkcs11/libsofthsm2.so"
-# define LIB3 "/usr/lib/softhsm/libsofthsm2.so"
-# define LIB4 "/usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so"
-# define SOFTHSM_BIN1 "/usr/bin/softhsm2-util"
-# define SOFTHSM_BIN2 "/usr/local/bin/softhsm2-util"
-# define SOFTHSM_ENV "SOFTHSM2_CONF"
-#endif
-
-
-inline static const char *softhsm_lib(void)
+# include <sys/stat.h>
+
+# define SOFTHSM_V2
+
+# ifdef SOFTHSM_V1
+# define SOFTHSM_URL "pkcs11:model=SoftHSM;manufacturer=SoftHSM;serial=1;token=test"
+# define LIB1 "/usr/lib64/pkcs11/libsofthsm.so"
+# define LIB2 "/usr/lib/pkcs11/libsofthsm.so"
+# define LIB3 "/usr/lib/softhsm/libsofthsm.so"
+# define LIB4 "/usr/local/lib/softhsm/libsofthsm.so"
+# define SOFTHSM_BIN1 "/usr/bin/softhsm"
+# define SOFTHSM_BIN2 "/usr/local/bin/softhsm"
+# define SOFTHSM_ENV "SOFTHSM_CONF"
+# else
+# define SOFTHSM_URL "pkcs11:model=SoftHSM%20v2;manufacturer=SoftHSM%20project;token=test"
+# define LIB1 "/usr/lib64/pkcs11/libsofthsm2.so"
+# define LIB2 "/usr/lib/pkcs11/libsofthsm2.so"
+# define LIB3 "/usr/lib/softhsm/libsofthsm2.so"
+# define LIB4 "/usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so"
+# define SOFTHSM_BIN1 "/usr/bin/softhsm2-util"
+# define SOFTHSM_BIN2 "/usr/local/bin/softhsm2-util"
+# define SOFTHSM_ENV "SOFTHSM2_CONF"
+# endif
+
+inline static const char *softhsm_lib(void)
{
const char *lib;
@@ -65,7 +64,7 @@ inline static const char *softhsm_lib(void)
return lib;
}
-inline static const char *softhsm_bin(void)
+inline static const char *softhsm_bin(void)
{
const char *bin;
@@ -97,12 +96,11 @@ void set_softhsm_conf(const char *config)
fprintf(stderr, "error writing %s\n", config);
exit(1);
}
-
-#ifdef SOFTHSM_V1
+# ifdef SOFTHSM_V1
remove(db_dir);
snprintf(buf, sizeof(buf), "0:./%s\n", db_dir);
fputs(buf, fp);
-#else
+# else
fputs("directories.tokendir = ", fp);
fputs(db_dir, fp);
fputs("\n", fp);
@@ -115,7 +113,7 @@ void set_softhsm_conf(const char *config)
snprintf(buf, sizeof(buf), "rm -rf %s\n", db_dir);
system(buf);
mkdir(db_dir, 0755);
-#endif
+# endif
fclose(fp);
setenv(SOFTHSM_ENV, config, 0);
diff --git a/tests/pkcs11/tls-neg-pkcs11-key.c b/tests/pkcs11/tls-neg-pkcs11-key.c
index 25f08ac270..812378610b 100644
--- a/tests/pkcs11/tls-neg-pkcs11-key.c
+++ b/tests/pkcs11/tls-neg-pkcs11-key.c
@@ -22,7 +22,7 @@
/* This tests TLS negotiation using the gnutls_privkey_import_ext2() APIs */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -64,16 +64,20 @@ static unsigned verify_eddsa_presence(void)
i = 0;
do {
- ret = gnutls_pkcs11_token_get_mechanism("pkcs11:", i++, &mechanism);
- if (ret >= 0 && mechanism == 0x1057 /* CKM_EDDSA */)
+ ret =
+ gnutls_pkcs11_token_get_mechanism("pkcs11:", i++,
+ &mechanism);
+ if (ret >= 0 && mechanism == 0x1057 /* CKM_EDDSA */ )
return 1;
- } while(ret>=0);
+ } while (ret >= 0);
return 0;
}
-static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t *txtkey,
- int exp_key_err, unsigned needs_decryption)
+static gnutls_privkey_t load_virt_privkey(const char *name,
+ const gnutls_datum_t * txtkey,
+ int exp_key_err,
+ unsigned needs_decryption)
{
unsigned flags;
gnutls_privkey_t privkey;
@@ -94,22 +98,25 @@ static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t
flags = GNUTLS_KEY_DIGITAL_SIGNATURE;
ret = gnutls_pkcs11_copy_x509_privkey(SOFTHSM_URL, tmp, "key", flags,
- GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE|GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE|GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE
+ |
+ GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE
+ | GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
gnutls_x509_privkey_deinit(tmp);
if (ret < 0) {
if (ret == exp_key_err) {
return NULL;
}
- fail("gnutls_pkcs11_copy_x509_privkey: %s\n", gnutls_strerror(ret));
+ fail("gnutls_pkcs11_copy_x509_privkey: %s\n",
+ gnutls_strerror(ret));
}
ret = gnutls_privkey_init(&privkey);
if (ret < 0)
testfail("gnutls_privkey_init\n");
- ret =
- gnutls_privkey_import_url(privkey, SOFTHSM_URL";object=key", 0);
+ ret = gnutls_privkey_import_url(privkey, SOFTHSM_URL ";object=key", 0);
if (ret < 0) {
if (ret == exp_key_err) {
gnutls_privkey_deinit(privkey);
@@ -127,12 +134,11 @@ static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t
static
void try_with_key(const char *name, const char *client_prio,
- gnutls_kx_algorithm_t client_kx,
- gnutls_sign_algorithm_t server_sign_algo,
- gnutls_sign_algorithm_t client_sign_algo,
- const gnutls_datum_t *serv_cert,
- gnutls_privkey_t key,
- int exp_serv_err)
+ gnutls_kx_algorithm_t client_kx,
+ gnutls_sign_algorithm_t server_sign_algo,
+ gnutls_sign_algorithm_t client_sign_algo,
+ const gnutls_datum_t * serv_cert,
+ gnutls_privkey_t key, int exp_serv_err)
{
int ret;
gnutls_pcert_st pcert_list[4];
@@ -156,22 +162,23 @@ void try_with_key(const char *name, const char *client_prio,
/* Init server */
gnutls_certificate_allocate_credentials(&s_xcred);
- pcert_list_size = sizeof(pcert_list)/sizeof(pcert_list[0]);
+ pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]);
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- serv_cert, GNUTLS_X509_FMT_PEM, 0);
+ serv_cert, GNUTLS_X509_FMT_PEM,
+ 0);
if (ret < 0) {
- testfail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ testfail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(s_xcred, NULL, 0, pcert_list,
- pcert_list_size, key);
+ pcert_list_size, key);
if (ret < 0) {
testfail("Could not set key/cert: %s\n", gnutls_strerror(ret));
}
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- s_xcred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, s_xcred);
assert(gnutls_priority_set_direct(server,
"NORMAL:+VERS-SSL3.0:+ANON-ECDH:+ANON-DH:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519",
@@ -190,8 +197,7 @@ void try_with_key(const char *name, const char *client_prio,
if (ret < 0)
exit(1);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- c_xcred);
+ ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, c_xcred);
if (ret < 0)
exit(1);
@@ -213,8 +219,10 @@ void try_with_key(const char *name, const char *client_prio,
}
if (gnutls_kx_get(client) != client_kx) {
- testfail("%s: got unexpected key exchange algorithm: %s (expected %s)\n", name, gnutls_kx_get_name(gnutls_kx_get(client)),
- gnutls_kx_get_name(client_kx));
+ testfail
+ ("%s: got unexpected key exchange algorithm: %s (expected %s)\n",
+ name, gnutls_kx_get_name(gnutls_kx_get(client)),
+ gnutls_kx_get_name(client_kx));
exit(1);
}
@@ -223,25 +231,33 @@ void try_with_key(const char *name, const char *client_prio,
if (version >= GNUTLS_TLS1_2) {
ret = gnutls_sign_algorithm_get(server);
if (ret != (int)server_sign_algo && server_sign_algo != 0) {
- testfail("%s: got unexpected server signature algorithm: %d/%s\n", name, ret, gnutls_sign_get_name(ret));
+ testfail
+ ("%s: got unexpected server signature algorithm: %d/%s\n",
+ name, ret, gnutls_sign_get_name(ret));
exit(1);
}
ret = gnutls_sign_algorithm_get_client(server);
if (ret != (int)client_sign_algo && client_sign_algo != 0) {
- testfail("%s: got unexpected client signature algorithm: %d/%s\n", name, ret, gnutls_sign_get_name(ret));
+ testfail
+ ("%s: got unexpected client signature algorithm: %d/%s\n",
+ name, ret, gnutls_sign_get_name(ret));
exit(1);
}
ret = gnutls_sign_algorithm_get(client);
if (ret != (int)server_sign_algo && server_sign_algo != 0) {
- testfail("%s: cl: got unexpected server signature algorithm: %d/%s\n", name, ret, gnutls_sign_get_name(ret));
+ testfail
+ ("%s: cl: got unexpected server signature algorithm: %d/%s\n",
+ name, ret, gnutls_sign_get_name(ret));
exit(1);
}
ret = gnutls_sign_algorithm_get_client(client);
if (ret != (int)client_sign_algo && client_sign_algo != 0) {
- testfail("%s: cl: got unexpected client signature algorithm: %d/%s\n", name, ret, gnutls_sign_get_name(ret));
+ testfail
+ ("%s: cl: got unexpected client signature algorithm: %d/%s\n",
+ name, ret, gnutls_sign_get_name(ret));
exit(1);
}
}
@@ -279,37 +295,35 @@ static const test_st tests[] = {
.cert = &server_ca3_localhost_rsa_decrypt_cert,
.key = &server_ca3_key,
.exp_kx = GNUTLS_KX_RSA,
- .needs_decryption = 1
- },
+ .needs_decryption = 1},
{.name = "tls1.2: rsa-decryption key, signatures prioritized",
.pk = GNUTLS_PK_RSA,
- .prio = "NORMAL:-KX-ALL:+ECDHE-RSA:+RSA:-VERS-TLS-ALL:+VERS-TLS1.2:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256",
+ .prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:+RSA:-VERS-TLS-ALL:+VERS-TLS1.2:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
.exp_kx = GNUTLS_KX_RSA,
- .needs_decryption = 1
- },
+ .needs_decryption = 1},
{.name = "tls1.2: ecc key",
.pk = GNUTLS_PK_ECDSA,
- .prio = "NORMAL:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
+ .prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
.cert = &server_ca3_localhost_ecc_cert,
.key = &server_ca3_ecc_key,
- .exp_kx = GNUTLS_KX_ECDHE_ECDSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_ECDSA},
{.name = "tls1.2: rsa-sign key",
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.2: rsa-sign key with rsa-pss sigs prioritized",
.pk = GNUTLS_PK_RSA,
- .prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-SHA256:+SIGN-RSA-SHA384:+SIGN-RSA-SHA512:-VERS-TLS-ALL:+VERS-TLS1.2",
+ .prio =
+ "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-SHA256:+SIGN-RSA-SHA384:+SIGN-RSA-SHA512:-VERS-TLS-ALL:+VERS-TLS1.2",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.2: rsa-pss-sign key",
.pk = GNUTLS_PK_RSA_PSS,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
@@ -317,7 +331,7 @@ static const test_st tests[] = {
.key = &server_ca3_rsa_pss2_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
.requires_pkcs11_pss = 1,
- },
+ },
{.name = "tls1.2: rsa-pss cert, rsa-sign key",
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
@@ -325,15 +339,15 @@ static const test_st tests[] = {
.key = &server_ca3_rsa_pss_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
.requires_pkcs11_pss = 1,
- },
+ },
{.name = "tls1.2: rsa-pss cert, rsa-sign key no PSS signatures",
.pk = GNUTLS_PK_RSA,
- .prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2:-SIGN-RSA-PSS-SHA256:-SIGN-RSA-PSS-SHA384:-SIGN-RSA-PSS-SHA512:-SIGN-RSA-PSS-RSAE-SHA256:-SIGN-RSA-PSS-RSAE-SHA384:-SIGN-RSA-PSS-RSAE-SHA512",
+ .prio =
+ "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2:-SIGN-RSA-PSS-SHA256:-SIGN-RSA-PSS-SHA384:-SIGN-RSA-PSS-SHA512:-SIGN-RSA-PSS-RSAE-SHA256:-SIGN-RSA-PSS-RSAE-SHA384:-SIGN-RSA-PSS-RSAE-SHA512",
.cert = &server_ca3_rsa_pss_cert,
.key = &server_ca3_rsa_pss_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES
- },
+ .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES},
{.name = "tls1.2: ed25519 cert, ed25519 key",
.pk = GNUTLS_PK_EDDSA_ED25519,
.needs_eddsa = 1,
@@ -341,29 +355,27 @@ static const test_st tests[] = {
.cert = &server_ca3_eddsa_cert,
.key = &server_ca3_eddsa_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .nofips = 1
- },
+ .nofips = 1},
{.name = "tls1.3: ecc key",
.pk = GNUTLS_PK_ECDSA,
- .prio = "NORMAL:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
+ .prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
.cert = &server_ca3_localhost_ecc_cert,
.key = &server_ca3_ecc_key,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.3: rsa-sign key",
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.3: rsa-sign key with rsa-pss sigs prioritized",
.pk = GNUTLS_PK_RSA,
- .prio = "NORMAL:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-PSS-RSAE-SHA256:+SIGN-RSA-PSS-RSAE-SHA384:+SIGN-RSA-PSS-RSAE-SHA512:-VERS-TLS-ALL:+VERS-TLS1.3",
+ .prio =
+ "NORMAL:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-PSS-RSAE-SHA256:+SIGN-RSA-PSS-RSAE-SHA384:+SIGN-RSA-PSS-RSAE-SHA512:-VERS-TLS-ALL:+VERS-TLS1.3",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.3: rsa-pss-sign key",
.pk = GNUTLS_PK_RSA_PSS,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
@@ -371,7 +383,7 @@ static const test_st tests[] = {
.key = &server_ca3_rsa_pss2_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
.requires_pkcs11_pss = 1,
- },
+ },
{.name = "tls1.3: rsa-pss cert, rsa-sign key",
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
@@ -379,15 +391,15 @@ static const test_st tests[] = {
.key = &server_ca3_rsa_pss_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
.requires_pkcs11_pss = 1,
- },
+ },
{.name = "tls1.3: rsa-pss cert, rsa-sign key no PSS signatures",
.pk = GNUTLS_PK_RSA,
- .prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3:-SIGN-RSA-PSS-SHA256:-SIGN-RSA-PSS-SHA384:-SIGN-RSA-PSS-SHA512:-SIGN-RSA-PSS-RSAE-SHA256:-SIGN-RSA-PSS-RSAE-SHA384:-SIGN-RSA-PSS-RSAE-SHA512",
+ .prio =
+ "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3:-SIGN-RSA-PSS-SHA256:-SIGN-RSA-PSS-SHA384:-SIGN-RSA-PSS-SHA512:-SIGN-RSA-PSS-RSAE-SHA256:-SIGN-RSA-PSS-RSAE-SHA384:-SIGN-RSA-PSS-RSAE-SHA512",
.cert = &server_ca3_rsa_pss_cert,
.key = &server_ca3_rsa_pss_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES
- },
+ .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES},
{.name = "tls1.3: ed25519 cert, ed25519 key",
.needs_eddsa = 1,
.pk = GNUTLS_PK_EDDSA_ED25519,
@@ -395,13 +407,12 @@ static const test_st tests[] = {
.cert = &server_ca3_eddsa_cert,
.key = &server_ca3_eddsa_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .nofips = 1
- }
+ .nofips = 1}
};
static
-int pin_func(void* userdata, int attempt, const char* url, const char *label,
- unsigned flags, char *pin, size_t pin_max)
+int pin_func(void *userdata, int attempt, const char *url, const char *label,
+ unsigned flags, char *pin, size_t pin_max)
{
if (attempt == 0) {
strcpy(pin, PIN);
@@ -438,22 +449,22 @@ void doit(void)
if (debug)
gnutls_global_set_log_level(6);
-
/* initialize token */
gnutls_pkcs11_set_pin_function(pin_func, NULL);
set_softhsm_conf(CONFIG);
- snprintf(buf, sizeof(buf), "%s --init-token --slot 0 --label test --so-pin "PIN" --pin "PIN, bin);
+ snprintf(buf, sizeof(buf),
+ "%s --init-token --slot 0 --label test --so-pin " PIN " --pin "
+ PIN, bin);
system(buf);
ret = gnutls_pkcs11_add_provider(lib, NULL);
if (ret < 0) {
- fail("gnutls_pkcs11_add_provider: %s\n",
- gnutls_strerror(ret));
+ fail("gnutls_pkcs11_add_provider: %s\n", gnutls_strerror(ret));
}
have_eddsa = verify_eddsa_presence();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
if (tests[i].nofips && gnutls_fips140_mode_enabled())
continue;
@@ -463,24 +474,31 @@ void doit(void)
success("checking: %s\n", tests[i].name);
if (tests[i].requires_pkcs11_pss) {
- ret = gnutls_pkcs11_token_check_mechanism("pkcs11:", CKM_RSA_PKCS_PSS, NULL, 0, 0);
+ ret =
+ gnutls_pkcs11_token_check_mechanism("pkcs11:",
+ CKM_RSA_PKCS_PSS,
+ NULL, 0, 0);
if (ret == 0) {
- fprintf(stderr, "softhsm2 doesn't support CKM_RSA_PKCS_PSS; skipping test\n");
+ fprintf(stderr,
+ "softhsm2 doesn't support CKM_RSA_PKCS_PSS; skipping test\n");
continue;
}
}
- privkey = load_virt_privkey(tests[i].name, tests[i].key, tests[i].exp_key_err, tests[i].needs_decryption);
+ privkey =
+ load_virt_privkey(tests[i].name, tests[i].key,
+ tests[i].exp_key_err,
+ tests[i].needs_decryption);
if (privkey == NULL && tests[i].exp_key_err < 0)
continue;
assert(privkey != 0);
try_with_key(tests[i].name, tests[i].prio,
tests[i].exp_kx, 0, 0,
- tests[i].cert, privkey,
- tests[i].exp_serv_err);
+ tests[i].cert, privkey, tests[i].exp_serv_err);
- gnutls_pkcs11_delete_url(SOFTHSM_URL";object=key", GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
+ gnutls_pkcs11_delete_url(SOFTHSM_URL ";object=key",
+ GNUTLS_PKCS11_OBJ_FLAG_LOGIN);
remove(CONFIG);
}
diff --git a/tests/pkcs11/tls-neg-pkcs11-no-key.c b/tests/pkcs11/tls-neg-pkcs11-no-key.c
index 31deeed239..b6df8d2605 100644
--- a/tests/pkcs11/tls-neg-pkcs11-no-key.c
+++ b/tests/pkcs11/tls-neg-pkcs11-no-key.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,22 +35,22 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "tls13/ext-parse.h"
-#include "pkcs11/softhsm.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "tls13/ext-parse.h"
+# include "pkcs11/softhsm.h"
+# include "utils.h"
/* This program tests that TLS 1.3 is disabled as expected.
*/
@@ -65,12 +65,12 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define P11LIB "libpkcs11mock2.so"
+# define P11LIB "libpkcs11mock2.so"
-#define PIN "1234"
+# define PIN "1234"
-#define CONFIG_NAME "softhsm-neg-no-key"
-#define CONFIG CONFIG_NAME".config"
+# define CONFIG_NAME "softhsm-neg-no-key"
+# define CONFIG CONFIG_NAME".config"
static
int pin_func(void *userdata, int attempt, const char *url, const char *label,
@@ -100,25 +100,30 @@ static void client(int fd)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(x509_cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(x509_cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
/* Initialize TLS session
*/
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+ ret =
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
if (ret < 0)
fail("cannot set credentials\n");
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2",
+ NULL);
if (ret < 0)
fail("cannot set priorities\n");
-
gnutls_transport_set_int(session, fd);
/* Perform the TLS handshake
@@ -198,7 +203,8 @@ static void server(int fd)
exit(1);
}
- ret = gnutls_x509_crt_import(crt, &server_ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_crt_import(crt, &server_ca3_cert, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_crt_import: %s\n", gnutls_strerror(ret));
@@ -219,7 +225,9 @@ static void server(int fd)
exit(1);
}
- ret = gnutls_x509_privkey_import(key, &server_ca3_key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_privkey_import(key, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_privkey_import: %s\n",
@@ -267,7 +275,7 @@ static void server(int fd)
gnutls_x509_crt_deinit(crt);
gnutls_x509_privkey_deinit(key);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
gnutls_init(&session, GNUTLS_SERVER);
@@ -279,14 +287,16 @@ static void server(int fd)
SOFTHSM_URL
";object=cert;object-type=private;pin-value="
PIN,
- GNUTLS_X509_FMT_DER)>=0);
+ GNUTLS_X509_FMT_DER) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_int(session, fd);
@@ -334,7 +344,7 @@ void doit(void)
exit(77);
/* check if softhsm module is loadable */
- (void) softhsm_lib();
+ (void)softhsm_lib();
/* initialize SoftHSM token that libpkcs11mock2.so internally uses */
bin = softhsm_bin();
diff --git a/tests/pkcs12_encode.c b/tests/pkcs12_encode.c
index 9442945193..48ab4f13c5 100644
--- a/tests/pkcs12_encode.c
+++ b/tests/pkcs12_encode.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <gnutls/gnutls.h>
@@ -46,8 +46,7 @@ static char client_pem[] =
"jpfc/3X7sLUsMvumcDE01ls/cG5mIatmiyEU9qI3jbgUf82z23ON/acwJf875D3/\n"
"U7jyOsBJ44SEQITbin2yUeJMIm1tievvdNXBDfW95AM507ShzP12sfiJkJfjjdhy\n"
"dc8Siq5JojruiMizAf0pA7in\n" "-----END CERTIFICATE-----\n";
-const gnutls_datum_t client_dat =
- { (void *) client_pem, sizeof(client_pem) };
+const gnutls_datum_t client_dat = { (void *)client_pem, sizeof(client_pem) };
static char ca_pem[] =
"-----BEGIN CERTIFICATE-----\n"
@@ -62,7 +61,7 @@ static char ca_pem[] =
"njuu7kHq5peUgYn8Jd9zNzExBOEp1VOipGsf6G66oQAhDFp2o8zkz7ZH71zR4HEW\n"
"KoX6n5Emn6DvcEH/9pAhnGxNHJAoS7czTKv/JDZJhkqHxyrE1fuLsg5Qv25DTw7+\n"
"PfqUpIhz5Bbm7J4=\n" "-----END CERTIFICATE-----\n";
-const gnutls_datum_t ca_dat = { (void *) ca_pem, sizeof(ca_pem) };
+const gnutls_datum_t ca_dat = { (void *)ca_pem, sizeof(ca_pem) };
static void tls_log_func(int level, const char *str)
{
@@ -116,9 +115,7 @@ void doit(void)
exit(1);
}
- ret =
- gnutls_x509_crt_import(client, &client_dat,
- GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(client, &client_dat, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr, "crt_import: %d", ret);
exit(1);
@@ -156,7 +153,7 @@ void doit(void)
tests[n_tests].bag_encrypt_flags = GNUTLS_PKCS_USE_PKCS12_RC2_40;
if (gnutls_fips140_mode_enabled()) {
tests[n_tests].bag_encrypt_expected =
- GNUTLS_E_UNWANTED_ALGORITHM;
+ GNUTLS_E_UNWANTED_ALGORITHM;
} else {
tests[n_tests].bag_encrypt_expected = 0;
}
@@ -166,22 +163,26 @@ void doit(void)
for (i = 0; i < n_tests; i++) {
ret = gnutls_pkcs12_bag_init(&bag);
if (ret < 0) {
- fprintf(stderr, "bag_init: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "bag_init: %s (%d)\n",
+ gnutls_strerror(ret), ret);
exit(1);
}
ret = gnutls_pkcs12_bag_set_crt(bag, tests[i].crt);
if (ret < 0) {
- fprintf(stderr, "set_crt: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "set_crt: %s (%d)\n",
+ gnutls_strerror(ret), ret);
exit(1);
}
indx = ret;
ret = gnutls_pkcs12_bag_set_friendly_name(bag, indx,
- tests[i].friendly_name);
+ tests
+ [i].friendly_name);
if (ret < 0) {
- fprintf(stderr, "set_friendly_name: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "set_friendly_name: %s (%d)\n",
+ gnutls_strerror(ret), ret);
exit(1);
}
@@ -189,7 +190,8 @@ void doit(void)
ret = gnutls_x509_crt_get_key_id(tests[i].crt, 0,
key_id_buf, &size);
if (ret < 0) {
- fprintf(stderr, "get_key_id: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "get_key_id: %s (%d)\n",
+ gnutls_strerror(ret), ret);
exit(1);
}
@@ -198,22 +200,25 @@ void doit(void)
ret = gnutls_pkcs12_bag_set_key_id(bag, indx, &key_id);
if (ret < 0) {
- fprintf(stderr, "bag_set_key_id: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "bag_set_key_id: %s (%d)\n",
+ gnutls_strerror(ret), ret);
exit(1);
}
ret = gnutls_pkcs12_bag_encrypt(bag, "pass",
tests[i].bag_encrypt_flags);
if (ret != tests[i].bag_encrypt_expected) {
- fprintf(stderr, "bag_encrypt: returned %d, expected %d: %s", ret,
- tests[i].bag_encrypt_expected,
+ fprintf(stderr,
+ "bag_encrypt: returned %d, expected %d: %s",
+ ret, tests[i].bag_encrypt_expected,
tests[i].name);
exit(1);
}
ret = gnutls_pkcs12_set_bag(pkcs12, bag);
if (ret < 0) {
- fprintf(stderr, "set_bag: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "set_bag: %s (%d)\n",
+ gnutls_strerror(ret), ret);
exit(1);
}
@@ -225,7 +230,8 @@ void doit(void)
/* MAC the structure, export and print. */
ret = gnutls_pkcs12_generate_mac2(pkcs12, GNUTLS_MAC_SHA1, "pass");
if (ret < 0) {
- fprintf(stderr, "generate_mac: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "generate_mac: %s (%d)\n", gnutls_strerror(ret),
+ ret);
exit(1);
}
@@ -235,7 +241,8 @@ void doit(void)
ret = gnutls_pkcs12_verify_mac(pkcs12, "pass");
if (ret < 0) {
- fprintf(stderr, "verify_mac: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "verify_mac: %s (%d)\n", gnutls_strerror(ret),
+ ret);
exit(1);
}
@@ -245,7 +252,8 @@ void doit(void)
ret = gnutls_pkcs12_generate_mac2(pkcs12, GNUTLS_MAC_SHA256, "passwd");
if (ret < 0) {
- fprintf(stderr, "generate_mac2: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "generate_mac2: %s (%d)\n",
+ gnutls_strerror(ret), ret);
exit(1);
}
@@ -255,7 +263,8 @@ void doit(void)
ret = gnutls_pkcs12_verify_mac(pkcs12, "passwd");
if (ret < 0) {
- fprintf(stderr, "verify_mac2: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "verify_mac2: %s (%d)\n", gnutls_strerror(ret),
+ ret);
exit(1);
}
@@ -265,7 +274,8 @@ void doit(void)
ret = gnutls_pkcs12_generate_mac2(pkcs12, GNUTLS_MAC_SHA512, "passwd1");
if (ret < 0) {
- fprintf(stderr, "generate_mac2: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "generate_mac2: %s (%d)\n",
+ gnutls_strerror(ret), ret);
exit(1);
}
@@ -275,7 +285,8 @@ void doit(void)
ret = gnutls_pkcs12_verify_mac(pkcs12, "passwd1");
if (ret < 0) {
- fprintf(stderr, "verify_mac2: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "verify_mac2: %s (%d)\n", gnutls_strerror(ret),
+ ret);
exit(1);
}
@@ -284,11 +295,10 @@ void doit(void)
FIPS_PUSH_CONTEXT();
size = sizeof(outbuf);
- ret =
- gnutls_pkcs12_export(pkcs12, GNUTLS_X509_FMT_PEM, outbuf,
- &size);
+ ret = gnutls_pkcs12_export(pkcs12, GNUTLS_X509_FMT_PEM, outbuf, &size);
if (ret < 0) {
- fprintf(stderr, "pkcs12_export: %s (%d)\n", gnutls_strerror(ret), ret);
+ fprintf(stderr, "pkcs12_export: %s (%d)\n",
+ gnutls_strerror(ret), ret);
exit(1);
}
diff --git a/tests/pkcs12_s2k.c b/tests/pkcs12_s2k.c
index b6cbd06680..dbb52a7f4d 100644
--- a/tests/pkcs12_s2k.c
+++ b/tests/pkcs12_s2k.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,7 +39,7 @@ static void tls_log_func(int level, const char *str)
}
static const unsigned char *salt[3] =
- { (void *) "salt1", (void *) "ltsa22", (void *) "balt33" };
+ { (void *)"salt1", (void *)"ltsa22", (void *)"balt33" };
static const char *pw[3] = { "secret1", "verysecret2", "veryverysecret3" };
static const char *values[] = {
@@ -78,30 +78,52 @@ static struct {
const char *key;
} tv[] = {
{
- 1, "smeg", (void *) "\x0A\x58\xCF\x64\x53\x0D\x82\x3F", 1,
- 24,
- "8aaae6297b6cb04642ab5b077851284eb7128f1a2a7fbca3"}, {
- 2, "smeg", (void *) "\x0A\x58\xCF\x64\x53\x0D\x82\x3F", 1,
- 8, "79993dfe048d3b76"}, {
- 1, "smeg", (void *) "\x64\x2B\x99\xAB\x44\xFB\x4B\x1F", 1,
- 24,
- "f3a95fec48d7711e985cfe67908c5ab79fa3d7c5caa5d966"}, {
- 2, "smeg", (void *) "\x64\x2B\x99\xAB\x44\xFB\x4B\x1F", 1,
- 8, "c0a38d64a79bea1d"}, {
- 3, "smeg", (void *) "\x3D\x83\xC0\xE4\x54\x6A\xC1\x40", 1,
- 20, "8d967d88f6caa9d714800ab3d48051d63f73a312"}, {
- 1, "queeg", (void *) "\x05\xDE\xC9\x59\xAC\xFF\x72\xF7",
- 1000, 24,
- "ed2034e36328830ff09df1e1a07dd357185dac0d4f9eb3d4"}, {
- 2, "queeg", (void *) "\x05\xDE\xC9\x59\xAC\xFF\x72\xF7",
- 1000, 8, "11dedad7758d4860"}, {
- 1, "queeg", (void *) "\x16\x82\xC0\xFC\x5B\x3F\x7E\xC5",
- 1000, 24,
- "483dd6e919d7de2e8e648ba8f862f3fbfbdc2bcb2c02957f"}, {
- 2, "queeg", (void *) "\x16\x82\xC0\xFC\x5B\x3F\x7E\xC5",
- 1000, 8, "9d461d1b00355c50"}, {
- 3, "queeg", (void *) "\x26\x32\x16\xFC\xC2\xFA\xB3\x1C",
- 1000, 20, "5ec4c7a80df652294c3925b6489a7ab857c83476"}
+ 1, "smeg", (void *)"\x0A\x58\xCF\x64\x53\x0D\x82\x3F", 1,
+ 24,
+ "8aaae6297b6cb04642ab5b077851284eb7128f1a2a7fbca3"}, {
+ 2, "smeg",
+ (void *)
+ "\x0A\x58\xCF\x64\x53\x0D\x82\x3F",
+ 1,
+ 8,
+ "79993dfe048d3b76"},
+ {
+ 1, "smeg", (void *)"\x64\x2B\x99\xAB\x44\xFB\x4B\x1F", 1,
+ 24,
+ "f3a95fec48d7711e985cfe67908c5ab79fa3d7c5caa5d966"}, {
+ 2, "smeg",
+ (void *)
+ "\x64\x2B\x99\xAB\x44\xFB\x4B\x1F",
+ 1,
+ 8,
+ "c0a38d64a79bea1d"},
+ {
+ 3, "smeg", (void *)"\x3D\x83\xC0\xE4\x54\x6A\xC1\x40", 1,
+ 20, "8d967d88f6caa9d714800ab3d48051d63f73a312"}, {
+ 1, "queeg",
+ (void *)
+ "\x05\xDE\xC9\x59\xAC\xFF\x72\xF7",
+ 1000, 24,
+ "ed2034e36328830ff09df1e1a07dd357185dac0d4f9eb3d4"}, {
+ 2,
+ "queeg",
+ (void *)
+ "\x05\xDE\xC9\x59\xAC\xFF\x72\xF7",
+ 1000,
+ 8,
+ "11dedad7758d4860"},
+ {
+ 1, "queeg", (void *)"\x16\x82\xC0\xFC\x5B\x3F\x7E\xC5",
+ 1000, 24,
+ "483dd6e919d7de2e8e648ba8f862f3fbfbdc2bcb2c02957f"}, {
+ 2, "queeg",
+ (void *)
+ "\x16\x82\xC0\xFC\x5B\x3F\x7E\xC5",
+ 1000, 8,
+ "9d461d1b00355c50"},
+ {
+ 3, "queeg", (void *)"\x26\x32\x16\xFC\xC2\xFA\xB3\x1C",
+ 1000, 20, "5ec4c7a80df652294c3925b6489a7ab857c83476"}
};
void doit(void)
@@ -120,13 +142,13 @@ void doit(void)
x = 0;
for (i = 1; i < 4; i++) {
for (j = 0; j < 3; j++) {
- rc = _gnutls_pkcs12_string_to_key(mac_to_entry(GNUTLS_MAC_SHA1), i, salt[j],
+ rc = _gnutls_pkcs12_string_to_key(mac_to_entry
+ (GNUTLS_MAC_SHA1), i,
+ salt[j],
strlen((char *)
salt[j]),
- j + i + 15,
- pw[j],
- sizeof(key),
- key);
+ j + i + 15, pw[j],
+ sizeof(key), key);
if (rc < 0)
fail("_gnutls_pkcs12_string_to_key failed[0]: %d\n", rc);
@@ -137,9 +159,8 @@ void doit(void)
if (debug)
printf("ij: %d.%d: %s\n", i, j,
- _gnutls_bin2hex(key, sizeof(key),
- tmp, sizeof(tmp),
- NULL));
+ _gnutls_bin2hex(key, sizeof(key),
+ tmp, sizeof(tmp), NULL));
x++;
}
}
@@ -147,12 +168,13 @@ void doit(void)
printf("\n");
for (i = 0; i < sizeof(tv) / sizeof(tv[0]); i++) {
- rc = _gnutls_pkcs12_string_to_key(mac_to_entry(GNUTLS_MAC_SHA1), tv[i].id, tv[i].salt, 8,
- tv[i].iter,
- tv[i].password,
+ rc = _gnutls_pkcs12_string_to_key(mac_to_entry(GNUTLS_MAC_SHA1),
+ tv[i].id, tv[i].salt, 8,
+ tv[i].iter, tv[i].password,
tv[i].keylen, key);
if (rc < 0)
- fail("_gnutls_pkcs12_string_to_key failed[2]: %d\n", rc);
+ fail("_gnutls_pkcs12_string_to_key failed[2]: %d\n",
+ rc);
if (memcmp(_gnutls_bin2hex(key, tv[i].keylen,
tmp, sizeof(tmp), NULL),
@@ -161,8 +183,8 @@ void doit(void)
if (debug)
printf("tv[%d]: %s\n", i,
- _gnutls_bin2hex(key, tv[i].keylen, tmp,
- sizeof(tmp), NULL));
+ _gnutls_bin2hex(key, tv[i].keylen, tmp,
+ sizeof(tmp), NULL));
}
if (debug)
printf("\n");
diff --git a/tests/pkcs12_s2k_pem.c b/tests/pkcs12_s2k_pem.c
index 0d2ebca371..75ea40b41d 100644
--- a/tests/pkcs12_s2k_pem.c
+++ b/tests/pkcs12_s2k_pem.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/*
@@ -235,16 +235,30 @@ static struct {
int expected_result;
} keys[] = {
{
- "x_9607", "123456", X_9607, 0}, {
- "x_9671", "123456", X_9671, 0}, {
- "x_9925", "123456", X_9925, 0}, {
- "x_9926", "123456", X_9926, 0}, {
- "x_9927", "123456", X_9927, 0}, {
- "x_9928", "123456", X_9928, 0}, {
- "x_9929", "123456", X_9929, 0}, {
- "x_9930", "123456", X_9930, 0}, {
- "x_9931", "123456", X_9931, 0}, {
- "x_9932", "123456", X_9932, 0}
+ "x_9607", "123456", X_9607, 0}, {
+ "x_9671", "123456", X_9671, 0}, {
+ "x_9925",
+ "123456",
+ X_9925,
+ 0}, {
+ "x_9926",
+ "123456",
+ X_9926,
+ 0},
+ {
+ "x_9927", "123456", X_9927, 0}, {
+ "x_9928", "123456", X_9928, 0}, {
+ "x_9929",
+ "123456",
+ X_9929,
+ 0}, {
+ "x_9930",
+ "123456",
+ X_9930,
+ 0},
+ {
+ "x_9931", "123456", X_9931, 0}, {
+ "x_9932", "123456", X_9932, 0}
};
int main(void)
@@ -265,18 +279,17 @@ int main(void)
if (ret < 0)
return 1;
- tmp.data = (unsigned char *) keys[i].pkcs12key;
- tmp.size = strlen((char *) tmp.data);
+ tmp.data = (unsigned char *)keys[i].pkcs12key;
+ tmp.size = strlen((char *)tmp.data);
ret = gnutls_x509_privkey_import_pkcs8(key, &tmp,
- GNUTLS_X509_FMT_PEM,
- keys[i].password,
- 0);
+ GNUTLS_X509_FMT_PEM,
+ keys[i].password, 0);
gnutls_x509_privkey_deinit(key);
if (ret != keys[i].expected_result) {
- printf("fail[%d]: %d: %s\n", (int) i, ret,
- gnutls_strerror(ret));
+ printf("fail[%d]: %d: %s\n", (int)i, ret,
+ gnutls_strerror(ret));
return 1;
}
diff --git a/tests/pkcs12_simple.c b/tests/pkcs12_simple.c
index 6c6f3aa00c..d411ed83c8 100644
--- a/tests/pkcs12_simple.c
+++ b/tests/pkcs12_simple.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -84,8 +84,8 @@ void doit(void)
ret =
gnutls_pkcs12_simple_parse(pkcs12, password, &pkey, &chain,
- &chain_size, &extras, &extras_size,
- NULL, 0);
+ &chain_size, &extras, &extras_size,
+ NULL, 0);
if (ret < 0)
fail("pkcs12_simple_parse failed %d: %s\n", ret,
gnutls_strerror(ret));
@@ -109,8 +109,7 @@ void doit(void)
success("dn: %s\n", dn);
dn_size = sizeof(dn);
- ret =
- gnutls_x509_crt_get_issuer_dn(chain[0], dn, &dn_size);
+ ret = gnutls_x509_crt_get_issuer_dn(chain[0], dn, &dn_size);
if (ret < 0)
fail("crt_get_dn failed %d: %s\n", ret,
gnutls_strerror(ret));
diff --git a/tests/pkcs7-cat-parse.c b/tests/pkcs7-cat-parse.c
index 93a5926e3e..4059818ee9 100644
--- a/tests/pkcs7-cat-parse.c
+++ b/tests/pkcs7-cat-parse.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -33,52 +33,53 @@
#include "utils.h"
-const char pkcs7_data[] =
- "-----BEGIN PKCS7-----\n"
- "MIIHSwYJKoZIhvcNAQcCoIIHPDCCBzgCAQExCzAJBgUrDgMCGgUAMIICNwYJKwYB\n"
- "BAGCNwoBoIICKDCCAiQwDAYKKwYBBAGCNwwBAQQQu/ZNvyszUkS6h2Pwl4hELRcN\n"
- "MTYxMDExMTcxMzAyWjAOBgorBgEEAYI3DAECBQAwggGVMIIBkQRSRQA1ADIAMgAx\n"
- "ADUANAAwAEQAQwA0AEIAOQA3ADQARgA1ADQARABCADQARQAzADkAMABCAEYARgA0\n"
- "ADEAMwAyADMAOQA5AEMAOAAwADMANwAAADGCATkwQAYKKwYBBAGCNwwCATEyMDAe\n"
- "CABGAGkAbABlAgQQAQABBB5zAGEAbQBiAGEAcAAxADAAMAAwAC4AaQBuAGYAAAAw\n"
- "RQYKKwYBBAGCNwIBBDE3MDUwEAYKKwYBBAGCNwIBGaICgAAwITAJBgUrDgMCGgUA\n"
- "BBTlIhVA3EuXT1TbTjkL/0EyOZyANzBKBgorBgEEAYI3DAIBMTwwOh4MAE8AUwBB\n"
- "AHQAdAByAgQQAQABBCQyADoANgAuADAALAAyADoANgAuADEALAAyADoANgAuADQA\n"
- "AAAwYgYKKwYBBAGCNwwCAjFUMFIeTAB7AEQARQAzADUAMQBBADQAMgAtADgARQA1\n"
- "ADkALQAxADEARAAwAC0AOABDADQANwAtADAAMABDADAANABGAEMAMgA5ADUARQBF\n"
- "AH0CAgIAoEowSDBGBgorBgEEAYI3DAIBBDgwNh4EAE8AUwIEEAEAAQQoVgBpAHMA\n"
- "dABhAFgAOAA2ACwANwBYADgANgAsADEAMABYADgANgAAAKCCAwwwggMIMIIB8KAD\n"
- "AgECAhAWVsiyv5uzsk5vNBHNz/C1MA0GCSqGSIb3DQEBBQUAMC0xKzApBgNVBAMT\n"
- "IldES1Rlc3RDZXJ0IGFzbiwxMzEyMDY3OTU0ODA0ODM0NTMwHhcNMTYxMDExMTcx\n"
- "MjI4WhcNMjYxMDExMDAwMDAwWjAtMSswKQYDVQQDEyJXREtUZXN0Q2VydCBhc24s\n"
- "MTMxMjA2Nzk1NDgwNDgzNDUzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\n"
- "AQEApD6uPRvnduA8nsL3gd/OdTZzk+p0P9vAQ9kVbRFG39/UuSIIm7nyNO47Tu7h\n"
- "CBuK8q5zwY31naKaOkLJMwTpUonI/rwFEhrt7EwFNi2aRVeyEbqLlwCzFK5rJGzP\n"
- "wDp4vcKpWPsqD5mOKBOXOIbQt5l8MiKM91iRqvwEEg1Eba8hKF3P/MHT2ZaxMy4O\n"
- "QdJdgjovSQfqihA5qG1wwXXTQvWeQHvt1TO+vUNTcnbO0YnIuG+c0WDljn4UVLYo\n"
- "2HFk1c7MkTfYX3OzdUbxXpMsHbbQun2XU2v+yQRgViHUDe4G6pGz4ur/aN52DEFk\n"
- "qIUCAeJWBhG4pQvMCl20L/19DwIDAQABoyQwIjALBgNVHQ8EBAMCBDAwEwYDVR0l\n"
- "BAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcNAQEFBQADggEBAE5t7t5lXUYJGh8xu412\n"
- "yREBlUxQT4Uid9Kc/GmmwiQvinKMWwjdowxtfnRR/ZzrbD5AVVQIaM6JSgzLEH3x\n"
- "0geN9FqMxcaJVksnUcx9iqWm94bznoPz9FXlgQ+e6lx9vCEP1butyUhj7m8yi0pk\n"
- "D8nXwf8cszaPY2tjqMa8o77/W6pDUjIGJHNIsZJwIN/qJT3Sxs9Nb8qwLfjKB7Fp\n"
- "aLgC9BAb73rWdW2uQSGtWO9Bvf7/fcgOk2Su1CFZTf/ZoqFbtTQ+Qwl92buUFmTl\n"
- "yo9gVmPHXZWfeYaIDwTen2FI43WmLEsge8Xlfv+TpFLTby2BWnKgtxBsHA6L9Fem\n"
- "xrwxggHZMIIB1QIBATBBMC0xKzApBgNVBAMTIldES1Rlc3RDZXJ0IGFzbiwxMzEy\n"
- "MDY3OTU0ODA0ODM0NTMCEBZWyLK/m7OyTm80Ec3P8LUwCQYFKw4DAhoFAKBvMBAG\n"
- "CisGAQQBgjcCAQwxAjAAMBgGCSqGSIb3DQEJAzELBgkrBgEEAYI3CgEwHAYKKwYB\n"
- "BAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFJBgjwiqs2u+\n"
- "74y1Cb725gOFBYr6MA0GCSqGSIb3DQEBAQUABIIBAI4vlVYFKOLdIfs/7kx9ADl5\n"
- "zaniHZMgjKiLAljglGCzkfO46IMdOP9/KfmTTTwWBtaP9s7fv9O0XGyOl2qH8Ufg\n"
- "2d+0iS7CI8CqwF1Q8NLPYrSl2peKAPNibfIVbLR2+RUJ7zHxevdVou9Dt36A59mW\n"
- "BZ78THyix0mVJ1ZivfzFwarChq5S4YI2fpbugTFftlr8YkRB78ki5J2sXICkcWtU\n"
- "JRBZqhvsFlsghRWbUKyp20YyPNTgaGelumFj57OLGCVGAejxme/iF8EkmrUV8zs/\n"
- "FKuAqJdZ8QPdLD5sKyOL8a19md0tYpCV2ThOWD8okm8PrSMfz4fWlIKpTOi/KE0=\n"
- "-----END PKCS7-----\n";
-
-const unsigned char der_content[] = "\x30\x82\x02\x24\x30\x0c\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x01\x01\x04\x10\xbb\xf6\x4d\xbf\x2b\x33\x52\x44\xba\x87\x63\xf0\x97\x88\x44\x2d\x17\x0d\x31\x36\x31\x30\x31\x31\x31\x37\x31\x33\x30\x32\x5a\x30\x0e\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x01\x02\x05\x00\x30\x82\x01\x95\x30\x82\x01\x91\x04\x52\x45\x00\x35\x00\x32\x00\x32\x00\x31\x00\x35\x00\x34\x00\x30\x00\x44\x00\x43\x00\x34\x00\x42\x00\x39\x00\x37\x00\x34\x00\x46\x00\x35\x00\x34\x00\x44\x00\x42\x00\x34\x00\x45\x00\x33\x00\x39\x00\x30\x00\x42\x00\x46\x00\x46\x00\x34\x00\x31\x00\x33\x00\x32\x00\x33\x00\x39\x00\x39\x00\x43\x00\x38\x00\x30\x00\x33\x00\x37\x00\x00\x00\x31\x82\x01\x39\x30\x40\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x02\x01\x31\x32\x30\x30\x1e\x08\x00\x46\x00\x69\x00\x6c\x00\x65\x02\x04\x10\x01\x00\x01\x04\x1e\x73\x00\x61\x00\x6d\x00\x62\x00\x61\x00\x70\x00\x31\x00\x30\x00\x30\x00\x30\x00\x2e\x00\x69\x00\x6e\x00\x66\x00\x00\x00\x30\x45\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x02\x01\x04\x31\x37\x30\x35\x30\x10\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x02\x01\x19\xa2\x02\x80\x00\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xe5\x22\x15\x40\xdc\x4b\x97\x4f\x54\xdb\x4e\x39\x0b\xff\x41\x32\x39\x9c\x80\x37\x30\x4a\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x02\x01\x31\x3c\x30\x3a\x1e\x0c\x00\x4f\x00\x53\x00\x41\x00\x74\x00\x74\x00\x72\x02\x04\x10\x01\x00\x01\x04\x24\x32\x00\x3a\x00\x36\x00\x2e\x00\x30\x00\x2c\x00\x32\x00\x3a\x00\x36\x00\x2e\x00\x31\x00\x2c\x00\x32\x00\x3a\x00\x36\x00\x2e\x00\x34\x00\x00\x00\x30\x62\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x02\x02\x31\x54\x30\x52\x1e\x4c\x00\x7b\x00\x44\x00\x45\x00\x33\x00\x35\x00\x31\x00\x41\x00\x34\x00\x32\x00\x2d\x00\x38\x00\x45\x00\x35\x00\x39\x00\x2d\x00\x31\x00\x31\x00\x44\x00\x30\x00\x2d\x00\x38\x00\x43\x00\x34\x00\x37\x00\x2d\x00\x30\x00\x30\x00\x43\x00\x30\x00\x34\x00\x46\x00\x43\x00\x32\x00\x39\x00\x35\x00\x45\x00\x45\x00\x7d\x02\x02\x02\x00\xa0\x4a\x30\x48\x30\x46\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x02\x01\x04\x38\x30\x36\x1e\x04\x00\x4f\x00\x53\x02\x04\x10\x01\x00\x01\x04\x28\x56\x00\x69\x00\x73\x00\x74\x00\x61\x00\x58\x00\x38\x00\x36\x00\x2c\x00\x37\x00\x58\x00\x38\x00\x36\x00\x2c\x00\x31\x00\x30\x00\x58\x00\x38\x00\x36\x00\x00\x00";
+const char pkcs7_data[] =
+ "-----BEGIN PKCS7-----\n"
+ "MIIHSwYJKoZIhvcNAQcCoIIHPDCCBzgCAQExCzAJBgUrDgMCGgUAMIICNwYJKwYB\n"
+ "BAGCNwoBoIICKDCCAiQwDAYKKwYBBAGCNwwBAQQQu/ZNvyszUkS6h2Pwl4hELRcN\n"
+ "MTYxMDExMTcxMzAyWjAOBgorBgEEAYI3DAECBQAwggGVMIIBkQRSRQA1ADIAMgAx\n"
+ "ADUANAAwAEQAQwA0AEIAOQA3ADQARgA1ADQARABCADQARQAzADkAMABCAEYARgA0\n"
+ "ADEAMwAyADMAOQA5AEMAOAAwADMANwAAADGCATkwQAYKKwYBBAGCNwwCATEyMDAe\n"
+ "CABGAGkAbABlAgQQAQABBB5zAGEAbQBiAGEAcAAxADAAMAAwAC4AaQBuAGYAAAAw\n"
+ "RQYKKwYBBAGCNwIBBDE3MDUwEAYKKwYBBAGCNwIBGaICgAAwITAJBgUrDgMCGgUA\n"
+ "BBTlIhVA3EuXT1TbTjkL/0EyOZyANzBKBgorBgEEAYI3DAIBMTwwOh4MAE8AUwBB\n"
+ "AHQAdAByAgQQAQABBCQyADoANgAuADAALAAyADoANgAuADEALAAyADoANgAuADQA\n"
+ "AAAwYgYKKwYBBAGCNwwCAjFUMFIeTAB7AEQARQAzADUAMQBBADQAMgAtADgARQA1\n"
+ "ADkALQAxADEARAAwAC0AOABDADQANwAtADAAMABDADAANABGAEMAMgA5ADUARQBF\n"
+ "AH0CAgIAoEowSDBGBgorBgEEAYI3DAIBBDgwNh4EAE8AUwIEEAEAAQQoVgBpAHMA\n"
+ "dABhAFgAOAA2ACwANwBYADgANgAsADEAMABYADgANgAAAKCCAwwwggMIMIIB8KAD\n"
+ "AgECAhAWVsiyv5uzsk5vNBHNz/C1MA0GCSqGSIb3DQEBBQUAMC0xKzApBgNVBAMT\n"
+ "IldES1Rlc3RDZXJ0IGFzbiwxMzEyMDY3OTU0ODA0ODM0NTMwHhcNMTYxMDExMTcx\n"
+ "MjI4WhcNMjYxMDExMDAwMDAwWjAtMSswKQYDVQQDEyJXREtUZXN0Q2VydCBhc24s\n"
+ "MTMxMjA2Nzk1NDgwNDgzNDUzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC\n"
+ "AQEApD6uPRvnduA8nsL3gd/OdTZzk+p0P9vAQ9kVbRFG39/UuSIIm7nyNO47Tu7h\n"
+ "CBuK8q5zwY31naKaOkLJMwTpUonI/rwFEhrt7EwFNi2aRVeyEbqLlwCzFK5rJGzP\n"
+ "wDp4vcKpWPsqD5mOKBOXOIbQt5l8MiKM91iRqvwEEg1Eba8hKF3P/MHT2ZaxMy4O\n"
+ "QdJdgjovSQfqihA5qG1wwXXTQvWeQHvt1TO+vUNTcnbO0YnIuG+c0WDljn4UVLYo\n"
+ "2HFk1c7MkTfYX3OzdUbxXpMsHbbQun2XU2v+yQRgViHUDe4G6pGz4ur/aN52DEFk\n"
+ "qIUCAeJWBhG4pQvMCl20L/19DwIDAQABoyQwIjALBgNVHQ8EBAMCBDAwEwYDVR0l\n"
+ "BAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcNAQEFBQADggEBAE5t7t5lXUYJGh8xu412\n"
+ "yREBlUxQT4Uid9Kc/GmmwiQvinKMWwjdowxtfnRR/ZzrbD5AVVQIaM6JSgzLEH3x\n"
+ "0geN9FqMxcaJVksnUcx9iqWm94bznoPz9FXlgQ+e6lx9vCEP1butyUhj7m8yi0pk\n"
+ "D8nXwf8cszaPY2tjqMa8o77/W6pDUjIGJHNIsZJwIN/qJT3Sxs9Nb8qwLfjKB7Fp\n"
+ "aLgC9BAb73rWdW2uQSGtWO9Bvf7/fcgOk2Su1CFZTf/ZoqFbtTQ+Qwl92buUFmTl\n"
+ "yo9gVmPHXZWfeYaIDwTen2FI43WmLEsge8Xlfv+TpFLTby2BWnKgtxBsHA6L9Fem\n"
+ "xrwxggHZMIIB1QIBATBBMC0xKzApBgNVBAMTIldES1Rlc3RDZXJ0IGFzbiwxMzEy\n"
+ "MDY3OTU0ODA0ODM0NTMCEBZWyLK/m7OyTm80Ec3P8LUwCQYFKw4DAhoFAKBvMBAG\n"
+ "CisGAQQBgjcCAQwxAjAAMBgGCSqGSIb3DQEJAzELBgkrBgEEAYI3CgEwHAYKKwYB\n"
+ "BAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFJBgjwiqs2u+\n"
+ "74y1Cb725gOFBYr6MA0GCSqGSIb3DQEBAQUABIIBAI4vlVYFKOLdIfs/7kx9ADl5\n"
+ "zaniHZMgjKiLAljglGCzkfO46IMdOP9/KfmTTTwWBtaP9s7fv9O0XGyOl2qH8Ufg\n"
+ "2d+0iS7CI8CqwF1Q8NLPYrSl2peKAPNibfIVbLR2+RUJ7zHxevdVou9Dt36A59mW\n"
+ "BZ78THyix0mVJ1ZivfzFwarChq5S4YI2fpbugTFftlr8YkRB78ki5J2sXICkcWtU\n"
+ "JRBZqhvsFlsghRWbUKyp20YyPNTgaGelumFj57OLGCVGAejxme/iF8EkmrUV8zs/\n"
+ "FKuAqJdZ8QPdLD5sKyOL8a19md0tYpCV2ThOWD8okm8PrSMfz4fWlIKpTOi/KE0=\n"
+ "-----END PKCS7-----\n";
+
+const unsigned char der_content[] =
+ "\x30\x82\x02\x24\x30\x0c\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x01\x01\x04\x10\xbb\xf6\x4d\xbf\x2b\x33\x52\x44\xba\x87\x63\xf0\x97\x88\x44\x2d\x17\x0d\x31\x36\x31\x30\x31\x31\x31\x37\x31\x33\x30\x32\x5a\x30\x0e\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x01\x02\x05\x00\x30\x82\x01\x95\x30\x82\x01\x91\x04\x52\x45\x00\x35\x00\x32\x00\x32\x00\x31\x00\x35\x00\x34\x00\x30\x00\x44\x00\x43\x00\x34\x00\x42\x00\x39\x00\x37\x00\x34\x00\x46\x00\x35\x00\x34\x00\x44\x00\x42\x00\x34\x00\x45\x00\x33\x00\x39\x00\x30\x00\x42\x00\x46\x00\x46\x00\x34\x00\x31\x00\x33\x00\x32\x00\x33\x00\x39\x00\x39\x00\x43\x00\x38\x00\x30\x00\x33\x00\x37\x00\x00\x00\x31\x82\x01\x39\x30\x40\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x02\x01\x31\x32\x30\x30\x1e\x08\x00\x46\x00\x69\x00\x6c\x00\x65\x02\x04\x10\x01\x00\x01\x04\x1e\x73\x00\x61\x00\x6d\x00\x62\x00\x61\x00\x70\x00\x31\x00\x30\x00\x30\x00\x30\x00\x2e\x00\x69\x00\x6e\x00\x66\x00\x00\x00\x30\x45\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x02\x01\x04\x31\x37\x30\x35\x30\x10\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x02\x01\x19\xa2\x02\x80\x00\x30\x21\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xe5\x22\x15\x40\xdc\x4b\x97\x4f\x54\xdb\x4e\x39\x0b\xff\x41\x32\x39\x9c\x80\x37\x30\x4a\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x02\x01\x31\x3c\x30\x3a\x1e\x0c\x00\x4f\x00\x53\x00\x41\x00\x74\x00\x74\x00\x72\x02\x04\x10\x01\x00\x01\x04\x24\x32\x00\x3a\x00\x36\x00\x2e\x00\x30\x00\x2c\x00\x32\x00\x3a\x00\x36\x00\x2e\x00\x31\x00\x2c\x00\x32\x00\x3a\x00\x36\x00\x2e\x00\x34\x00\x00\x00\x30\x62\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x02\x02\x31\x54\x30\x52\x1e\x4c\x00\x7b\x00\x44\x00\x45\x00\x33\x00\x35\x00\x31\x00\x41\x00\x34\x00\x32\x00\x2d\x00\x38\x00\x45\x00\x35\x00\x39\x00\x2d\x00\x31\x00\x31\x00\x44\x00\x30\x00\x2d\x00\x38\x00\x43\x00\x34\x00\x37\x00\x2d\x00\x30\x00\x30\x00\x43\x00\x30\x00\x34\x00\x46\x00\x43\x00\x32\x00\x39\x00\x35\x00\x45\x00\x45\x00\x7d\x02\x02\x02\x00\xa0\x4a\x30\x48\x30\x46\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x0c\x02\x01\x04\x38\x30\x36\x1e\x04\x00\x4f\x00\x53\x02\x04\x10\x01\x00\x01\x04\x28\x56\x00\x69\x00\x73\x00\x74\x00\x61\x00\x58\x00\x38\x00\x36\x00\x2c\x00\x37\x00\x58\x00\x38\x00\x36\x00\x2c\x00\x31\x00\x30\x00\x58\x00\x38\x00\x36\x00\x00\x00";
#define der_content_size (sizeof(der_content)-1)
-const gnutls_datum_t pkcs7_pem = {(void *) pkcs7_data, sizeof(pkcs7_data)-1};
+const gnutls_datum_t pkcs7_pem = { (void *)pkcs7_data, sizeof(pkcs7_data) - 1 };
static void tls_log_func(int level, const char *str)
{
@@ -103,7 +104,6 @@ void doit(void)
exit(1);
}
-
ret = gnutls_pkcs7_import(pkcs7, &pkcs7_pem, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
@@ -118,9 +118,12 @@ void doit(void)
assert(strcmp(oid, "1.3.6.1.4.1.311.10.1") == 0);
- ret = gnutls_pkcs7_get_embedded_data(pkcs7, GNUTLS_PKCS7_EDATA_GET_RAW, &data);
+ ret =
+ gnutls_pkcs7_get_embedded_data(pkcs7, GNUTLS_PKCS7_EDATA_GET_RAW,
+ &data);
if (ret < 0) {
- fail("error in gnutls_pkcs7_get_embedded_data: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pkcs7_get_embedded_data: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
diff --git a/tests/pkcs7-gen.c b/tests/pkcs7-gen.c
index e0c106a2e0..d336d5b643 100644
--- a/tests/pkcs7-gen.c
+++ b/tests/pkcs7-gen.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -64,8 +64,8 @@ static char pem1_key[] =
"sWZGfbnU3ryjvkb6YuFjgtzbZDZHWQCo8/cOtOBmPdk=\n"
"-----END RSA PRIVATE KEY-----\n";
-const gnutls_datum_t cert = {(void *) pem1_cert, sizeof(pem1_cert)-1};
-const gnutls_datum_t key = {(void *) pem1_key, sizeof(pem1_key)-1};
+const gnutls_datum_t cert = { (void *)pem1_cert, sizeof(pem1_cert) - 1 };
+const gnutls_datum_t key = { (void *)pem1_key, sizeof(pem1_key) - 1 };
static time_t mytime(time_t * t)
{
@@ -91,9 +91,9 @@ void doit(void)
gnutls_pkcs7_attrs_t list1 = NULL;
gnutls_pkcs7_attrs_t list2 = NULL;
gnutls_datum_t out;
- gnutls_datum_t data1 = {(unsigned char*)"xxx", 3};
- gnutls_datum_t data2 = {(unsigned char*)"yyyy", 4};
- gnutls_datum_t data3 = {(unsigned char*)"aaaaa", 5};
+ gnutls_datum_t data1 = { (unsigned char *)"xxx", 3 };
+ gnutls_datum_t data2 = { (unsigned char *)"yyyy", 4 };
+ gnutls_datum_t data3 = { (unsigned char *)"aaaaa", 5 };
gnutls_pkcs7_signature_info_st info;
char *oid;
gnutls_datum_t data;
@@ -115,7 +115,9 @@ void doit(void)
exit(1);
}
- ret = gnutls_privkey_import_x509_raw(pkey, &key, GNUTLS_X509_FMT_PEM, 0, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(pkey, &key, GNUTLS_X509_FMT_PEM, 0,
+ 0);
if (ret < 0) {
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
exit(1);
@@ -134,25 +136,33 @@ void doit(void)
exit(1);
}
- ret = gnutls_pkcs7_add_attr(&list1, "1.2.3.4", &data1, GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
+ ret =
+ gnutls_pkcs7_add_attr(&list1, "1.2.3.4", &data1,
+ GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
if (ret < 0) {
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_pkcs7_add_attr(&list1, "2.3.4", &data2, GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
+ ret =
+ gnutls_pkcs7_add_attr(&list1, "2.3.4", &data2,
+ GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
if (ret < 0) {
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_pkcs7_add_attr(&list2, "2.3.4", &data3, GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
+ ret =
+ gnutls_pkcs7_add_attr(&list2, "2.3.4", &data3,
+ GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
if (ret < 0) {
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_pkcs7_sign(pkcs7, crt, pkey, &data3, list1, list2, GNUTLS_DIG_SHA256, 0);
+ ret =
+ gnutls_pkcs7_sign(pkcs7, crt, pkey, &data3, list1, list2,
+ GNUTLS_DIG_SHA256, 0);
if (ret < 0) {
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
exit(1);
@@ -197,37 +207,46 @@ void doit(void)
}
gnutls_free(data.data);
- ret = gnutls_pkcs7_get_attr(info.signed_attrs, 2, &oid, &data, GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
+ ret =
+ gnutls_pkcs7_get_attr(info.signed_attrs, 2, &oid, &data,
+ GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
if (ret < 0) {
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
exit(1);
}
- if (strcmp(oid, "1.2.3.4") != 0 || data.size != data1.size || memcmp(data.data, data1.data, data.size) != 0) {
+ if (strcmp(oid, "1.2.3.4") != 0 || data.size != data1.size
+ || memcmp(data.data, data1.data, data.size) != 0) {
fail("error in %d: %s\n", __LINE__, oid);
exit(1);
}
gnutls_free(data.data);
- ret = gnutls_pkcs7_get_attr(info.signed_attrs, 3, &oid, &data, GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
+ ret =
+ gnutls_pkcs7_get_attr(info.signed_attrs, 3, &oid, &data,
+ GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
if (ret < 0) {
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
exit(1);
}
- if (strcmp(oid, "2.3.4") != 0 || data.size != data2.size || memcmp(data.data, data2.data, data.size) != 0) {
+ if (strcmp(oid, "2.3.4") != 0 || data.size != data2.size
+ || memcmp(data.data, data2.data, data.size) != 0) {
fail("error in %d: %s\n", __LINE__, oid);
exit(1);
}
gnutls_free(data.data);
- ret = gnutls_pkcs7_get_attr(info.unsigned_attrs, 0, &oid, &data, GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
+ ret =
+ gnutls_pkcs7_get_attr(info.unsigned_attrs, 0, &oid, &data,
+ GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING);
if (ret < 0) {
fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
exit(1);
}
- if (strcmp(oid, "2.3.4") != 0 || data.size != data3.size || memcmp(data.data, data3.data, data.size) != 0) {
+ if (strcmp(oid, "2.3.4") != 0 || data.size != data3.size
+ || memcmp(data.data, data3.data, data.size) != 0) {
fail("error in %d: %s\n", __LINE__, oid);
exit(1);
}
diff --git a/tests/pkcs7-verify-double-free.c b/tests/pkcs7-verify-double-free.c
index fadf307829..f75b46a7a5 100644
--- a/tests/pkcs7-verify-double-free.c
+++ b/tests/pkcs7-verify-double-free.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,129 +30,127 @@
#include "utils.h"
static char rca_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDCjCCAfKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQKDApFeGFt\n"
- "cGxlIENBMCAXDTE3MDcyMTE0NDMzNloYDzIyMjIwNzIxMTQ0MzM2WjAVMRMwEQYD\n"
- "VQQKDApFeGFtcGxlIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\n"
- "v8hnKPJ/IA0SQB/A/a0Uh+npZ67vsgIMrtTQo0r0kJkmkBz5323xO3DVuJfB3QmX\n"
- "v9zvoeCQLuDvWar5Aixfxgm6s5Q+yPvJj9t3NebDrU+Y4+qyewBIJUF8EF/5iBPC\n"
- "ZHONmzbfIRWvQWGGgb2CRcOHp2J7AY/QLB6LsWPaLjs/DHva28Q13JaTTHIpdu8v\n"
- "t6vHr0nXf66DN4MvtoF3N+o+v3snJCMsfXOqASi4tbWR7gtOfCfiz9uBjh0W2Dut\n"
- "/jclBQkJkLe6esNSM+f4YiOpctVDjmfj8yoHCp394vt0wFqhG38wsTFAyVP6qIcf\n"
- "5zoSu9ovEt2cTkhnZHjiiwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud\n"
- "DwEB/wQEAwIBBjAdBgNVHQ4EFgQUhjeO6Uc5imbjOl2I2ltVA27Hu9YwHwYDVR0j\n"
- "BBgwFoAUhjeO6Uc5imbjOl2I2ltVA27Hu9YwDQYJKoZIhvcNAQELBQADggEBAD+r\n"
- "i/7FsbG0OFKGF2+JOnth6NjJQcMfM8LiglqAuBUijrv7vltoZ0Z3FJH1Vi4OeMXn\n"
- "l7X/9tWUve0uFl75MfjDrf0+lCEdYRY1LCba2BrUgpbbkLywVUdnbsvndehegCgS\n"
- "jss2/zys3Hlo3ZaHlTMQ/NQ4nrxcxkjOvkZSEOqgxJTLpzm6pr7YUts4k6c6lNiB\n"
- "FSiJiDzsJCmWR9C3fBbUlfDfTJYGN3JwqX270KchXDElo8gNoDnF7jBMpLFFSEKm\n"
- "MyfbNLX/srh+CEfZaN/OZV4A3MQ0L8vQEp6M4CJhvRLIuMVabZ2coJ0AzystrOMU\n"
- "LirBWjg89RoAjFQ7bTE=\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDCjCCAfKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQKDApFeGFt\n"
+ "cGxlIENBMCAXDTE3MDcyMTE0NDMzNloYDzIyMjIwNzIxMTQ0MzM2WjAVMRMwEQYD\n"
+ "VQQKDApFeGFtcGxlIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\n"
+ "v8hnKPJ/IA0SQB/A/a0Uh+npZ67vsgIMrtTQo0r0kJkmkBz5323xO3DVuJfB3QmX\n"
+ "v9zvoeCQLuDvWar5Aixfxgm6s5Q+yPvJj9t3NebDrU+Y4+qyewBIJUF8EF/5iBPC\n"
+ "ZHONmzbfIRWvQWGGgb2CRcOHp2J7AY/QLB6LsWPaLjs/DHva28Q13JaTTHIpdu8v\n"
+ "t6vHr0nXf66DN4MvtoF3N+o+v3snJCMsfXOqASi4tbWR7gtOfCfiz9uBjh0W2Dut\n"
+ "/jclBQkJkLe6esNSM+f4YiOpctVDjmfj8yoHCp394vt0wFqhG38wsTFAyVP6qIcf\n"
+ "5zoSu9ovEt2cTkhnZHjiiwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud\n"
+ "DwEB/wQEAwIBBjAdBgNVHQ4EFgQUhjeO6Uc5imbjOl2I2ltVA27Hu9YwHwYDVR0j\n"
+ "BBgwFoAUhjeO6Uc5imbjOl2I2ltVA27Hu9YwDQYJKoZIhvcNAQELBQADggEBAD+r\n"
+ "i/7FsbG0OFKGF2+JOnth6NjJQcMfM8LiglqAuBUijrv7vltoZ0Z3FJH1Vi4OeMXn\n"
+ "l7X/9tWUve0uFl75MfjDrf0+lCEdYRY1LCba2BrUgpbbkLywVUdnbsvndehegCgS\n"
+ "jss2/zys3Hlo3ZaHlTMQ/NQ4nrxcxkjOvkZSEOqgxJTLpzm6pr7YUts4k6c6lNiB\n"
+ "FSiJiDzsJCmWR9C3fBbUlfDfTJYGN3JwqX270KchXDElo8gNoDnF7jBMpLFFSEKm\n"
+ "MyfbNLX/srh+CEfZaN/OZV4A3MQ0L8vQEp6M4CJhvRLIuMVabZ2coJ0AzystrOMU\n"
+ "LirBWjg89RoAjFQ7bTE=\n" "-----END CERTIFICATE-----\n";
static char ca_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDFzCCAf+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQKDApFeGFt\n"
- "cGxlIENBMCAXDTE3MDcyMTE0NDQzNFoYDzIyMjIwNzIxMTQ0NDM0WjAiMSAwHgYD\n"
- "VQQKDBdFeGFtcGxlIGludGVybWVkaWF0ZSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\n"
- "ggEPADCCAQoCggEBAKb9ACB8u//sP6MfNU1OsVw68xz3eTPLgKxS0vpqexm6iGVg\n"
- "ug/o9uYRLzqiEukv/eyz9WzHmY7sqlOJjOFdv92+SaNg79Jc51WHPFXgea4/qyfr\n"
- "4y14PGs0SNxm6T44sXurUs7cXydQVUgnq2VCaWFOTUdxXoAWkV8r8GaUoPD/klVz\n"
- "RqxSZVETmX1XBKhsMnnov41kRwVph2C+VfUspsbaUZaz/o/S1/nokhXRACzKsMBr\n"
- "obqiGxbY35uVzsmbAW5ErhQz98AWJL3Bub1fsEMXg6OEMmPH4AtX888dTIYZNw0E\n"
- "bUIESspz1kjJQTtVQDHTprhwz16YiSVeUonlLgMCAwEAAaNjMGEwDwYDVR0TAQH/\n"
- "BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPBjxDWjMhjXERirKF9O\n"
- "o/5Cllc5MB8GA1UdIwQYMBaAFIY3julHOYpm4zpdiNpbVQNux7vWMA0GCSqGSIb3\n"
- "DQEBCwUAA4IBAQCTm+vv3hBa6lL5IT+Fw8aTxQ2Ne7mZ5oyazhvXYwwfKNMX3SML\n"
- "W2JdPaL64ZwbxxxYvW401o5Z0CEgru3YFrsqB/hEdl0Uf8UWWJmE1rRa+miTmbjt\n"
- "lrLNCWdrs6CiwvsPITTHg7jevB4KyZYsTSxQFcyr3N3xF+6EmOTC4IkhPPnXYXcp\n"
- "248ih+WOavSYoRvzgB/Dip1WnPYU2mfIV3O8JReRryngA0TzWCLPLUoWR3R4jwtC\n"
- "+1uSLoqaenz3qv3F1WEbke37az9YJuXx/5D8CqFQiZ62TUUtI6fYd8mkMBM4Qfh6\n"
- "NW9XrCkI9wlpL5K9HllhuW0BhKeJkuPpyQ2p\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDFzCCAf+gAwIBAgIBAjANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQKDApFeGFt\n"
+ "cGxlIENBMCAXDTE3MDcyMTE0NDQzNFoYDzIyMjIwNzIxMTQ0NDM0WjAiMSAwHgYD\n"
+ "VQQKDBdFeGFtcGxlIGludGVybWVkaWF0ZSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD\n"
+ "ggEPADCCAQoCggEBAKb9ACB8u//sP6MfNU1OsVw68xz3eTPLgKxS0vpqexm6iGVg\n"
+ "ug/o9uYRLzqiEukv/eyz9WzHmY7sqlOJjOFdv92+SaNg79Jc51WHPFXgea4/qyfr\n"
+ "4y14PGs0SNxm6T44sXurUs7cXydQVUgnq2VCaWFOTUdxXoAWkV8r8GaUoPD/klVz\n"
+ "RqxSZVETmX1XBKhsMnnov41kRwVph2C+VfUspsbaUZaz/o/S1/nokhXRACzKsMBr\n"
+ "obqiGxbY35uVzsmbAW5ErhQz98AWJL3Bub1fsEMXg6OEMmPH4AtX888dTIYZNw0E\n"
+ "bUIESspz1kjJQTtVQDHTprhwz16YiSVeUonlLgMCAwEAAaNjMGEwDwYDVR0TAQH/\n"
+ "BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPBjxDWjMhjXERirKF9O\n"
+ "o/5Cllc5MB8GA1UdIwQYMBaAFIY3julHOYpm4zpdiNpbVQNux7vWMA0GCSqGSIb3\n"
+ "DQEBCwUAA4IBAQCTm+vv3hBa6lL5IT+Fw8aTxQ2Ne7mZ5oyazhvXYwwfKNMX3SML\n"
+ "W2JdPaL64ZwbxxxYvW401o5Z0CEgru3YFrsqB/hEdl0Uf8UWWJmE1rRa+miTmbjt\n"
+ "lrLNCWdrs6CiwvsPITTHg7jevB4KyZYsTSxQFcyr3N3xF+6EmOTC4IkhPPnXYXcp\n"
+ "248ih+WOavSYoRvzgB/Dip1WnPYU2mfIV3O8JReRryngA0TzWCLPLUoWR3R4jwtC\n"
+ "+1uSLoqaenz3qv3F1WEbke37az9YJuXx/5D8CqFQiZ62TUUtI6fYd8mkMBM4Qfh6\n"
+ "NW9XrCkI9wlpL5K9HllhuW0BhKeJkuPpyQ2p\n" "-----END CERTIFICATE-----\n";
static char ee_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDIjCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQKDBdFeGFt\n"
- "cGxlIGludGVybWVkaWF0ZSBDQTAgFw0yMjA3MjExNDQ1MzdaGA8yMjIyMDcyMTE0\n"
- "NDUzN1owFTETMBEGA1UEAwwKSm9obiBTbWl0aDCCASIwDQYJKoZIhvcNAQEBBQAD\n"
- "ggEPADCCAQoCggEBAMb1uuxppBFY+WVD45iyHUq7DkIJNNOI/JRaybVJfPktWq2E\n"
- "eNe7XhV05KKnqZTbDO2iYqNHqGhZ8pz/IstDRTZP3z/q1vXTG0P9Gx28rEy5TaUY\n"
- "QjtD+ZoFUQm0ORMDBjd8jikqtJ87hKeuOPMH4rzdydotMaPQSm7KLzHBGBr6gg7z\n"
- "g1IxPWkhMyHapoMqqrhjwjzoTY97UIXpZTEoIA+KpEC8f9CciBtL0i1MPBjWozB6\n"
- "Jma9q5iEwZXuRr3cnPYeIPlK2drgDZCMuSFcYiT8ApLw5OhKqY1m2EvfZ2ox2s9R\n"
- "68/HzYdPi3kZwiNEtlBvMlpt5yKBJAflp76d7DkCAwEAAaNuMGwwCwYDVR0PBAQD\n"
- "AgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQUc+Mi\n"
- "kr8WMCk00SQo+P2iggp/oQkwHwYDVR0jBBgwFoAU8GPENaMyGNcRGKsoX06j/kKW\n"
- "VzkwDQYJKoZIhvcNAQELBQADggEBAKU9+CUR0Jcfybd1+8Aqgh1RH96yQygnVuyt\n"
- "Na9rFz4fM3ij9tGXDHXrkZw8bW1dWLU9quu8zeTxKxc3aiDIw739Alz0tukttDo7\n"
- "dW7YqIb77zsIsWB9p7G9dlxT6ieUy+5IKk69BbeK8KR0vAciAG4KVQxPhuPy/LGX\n"
- "PzqlJIJ4h61s3UOroReHPB1keLZgpORqrvtpClOmABH9TLFRJA/WFg8Q2XYB/p0x\n"
- "l/pWiaoBC+8wK9cDoMUK5yOwXeuCLffCb+UlAD0+z/qxJ2pisE8E9X8rRKRrWI+i\n"
- "G7LtJCEn86EQK8KuRlJxKgj8lClZhoULB0oL4jbblBuNow9WRmM=\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDIjCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQKDBdFeGFt\n"
+ "cGxlIGludGVybWVkaWF0ZSBDQTAgFw0yMjA3MjExNDQ1MzdaGA8yMjIyMDcyMTE0\n"
+ "NDUzN1owFTETMBEGA1UEAwwKSm9obiBTbWl0aDCCASIwDQYJKoZIhvcNAQEBBQAD\n"
+ "ggEPADCCAQoCggEBAMb1uuxppBFY+WVD45iyHUq7DkIJNNOI/JRaybVJfPktWq2E\n"
+ "eNe7XhV05KKnqZTbDO2iYqNHqGhZ8pz/IstDRTZP3z/q1vXTG0P9Gx28rEy5TaUY\n"
+ "QjtD+ZoFUQm0ORMDBjd8jikqtJ87hKeuOPMH4rzdydotMaPQSm7KLzHBGBr6gg7z\n"
+ "g1IxPWkhMyHapoMqqrhjwjzoTY97UIXpZTEoIA+KpEC8f9CciBtL0i1MPBjWozB6\n"
+ "Jma9q5iEwZXuRr3cnPYeIPlK2drgDZCMuSFcYiT8ApLw5OhKqY1m2EvfZ2ox2s9R\n"
+ "68/HzYdPi3kZwiNEtlBvMlpt5yKBJAflp76d7DkCAwEAAaNuMGwwCwYDVR0PBAQD\n"
+ "AgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQUc+Mi\n"
+ "kr8WMCk00SQo+P2iggp/oQkwHwYDVR0jBBgwFoAU8GPENaMyGNcRGKsoX06j/kKW\n"
+ "VzkwDQYJKoZIhvcNAQELBQADggEBAKU9+CUR0Jcfybd1+8Aqgh1RH96yQygnVuyt\n"
+ "Na9rFz4fM3ij9tGXDHXrkZw8bW1dWLU9quu8zeTxKxc3aiDIw739Alz0tukttDo7\n"
+ "dW7YqIb77zsIsWB9p7G9dlxT6ieUy+5IKk69BbeK8KR0vAciAG4KVQxPhuPy/LGX\n"
+ "PzqlJIJ4h61s3UOroReHPB1keLZgpORqrvtpClOmABH9TLFRJA/WFg8Q2XYB/p0x\n"
+ "l/pWiaoBC+8wK9cDoMUK5yOwXeuCLffCb+UlAD0+z/qxJ2pisE8E9X8rRKRrWI+i\n"
+ "G7LtJCEn86EQK8KuRlJxKgj8lClZhoULB0oL4jbblBuNow9WRmM=\n"
+ "-----END CERTIFICATE-----\n";
static char msg_pem[] =
- "-----BEGIN PKCS7-----\n"
- "MIIK2QYJKoZIhvcNAQcCoIIKyjCCCsYCAQExDTALBglghkgBZQMEAgEwCwYJKoZI\n"
- "hvcNAQcBoIIJTzCCAwowggHyoAMCAQICAQEwDQYJKoZIhvcNAQELBQAwFTETMBEG\n"
- "A1UECgwKRXhhbXBsZSBDQTAgFw0xNzA3MjExNDQzMjFaGA8yMjIyMDcyMTE0NDMy\n"
- "MVowFTETMBEGA1UECgwKRXhhbXBsZSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n"
- "ADCCAQoCggEBAL51eyE4j8wAKQKMGlO9HEY2iaGvsdPSJmidSdmCi1jnNK39Lx4Y\n"
- "31h279hSHF5wtI6VM91HHfeLf1mjEZHlKrXXJQzBPLpbHWapD778drHBitOP8e56\n"
- "fDMIfofLV4tkMk8690vPe4cJH1UHGspMyz6EQF9kPRaW80XtMV/6dalgL/9Esmaw\n"
- "XBNPJAS1VutDuXQkJ/3/rWFLmkpYHHtGPjX782YRmT1s+VOVTsLqmKx0TEL8A381\n"
- "bbElHPUAMjPcyWR5qqA8KWnS5Dwqk3LwI0AvuhQytCq0S7Xl4DXauvxwTRXv0UU7\n"
- "W8r3MLAw9DnlnJiD/RFjw5rbGO3wMePk/qUCAwEAAaNjMGEwDwYDVR0TAQH/BAUw\n"
- "AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIh2KRoKJoe2VtpOwWMkRAkR\n"
- "mLWKMB8GA1UdIwQYMBaAFIh2KRoKJoe2VtpOwWMkRAkRmLWKMA0GCSqGSIb3DQEB\n"
- "CwUAA4IBAQBovvlOjoy0MCT5U0eWfcPQQjY4Ssrn3IiPNlVkqSNo+FHX+2baTLVQ\n"
- "5QTHxwXwzdIJiwtjFWDdGEQXqmuIvnFG+u/whGbeg6oQygfnQ5Y+q6epOxCsPgLQ\n"
- "mKKEaF7mvh8DauUx4QSbYCNGCctOZuB1vlN9bJ3/5QbH+2pFPOfCr5CAyPDwHo6S\n"
- "qO3yPcutRwT9xS7gXEHM9HhLp+DmdCGh4eVBPiFilyZm1d92lWxU8oxoSfXgzDT/\n"
- "GCzlMykNZNs4JD9QmiRClP/3U0dQbOhah/Fda+N+L90xaqEgGcvwKKZa3pzo59pl\n"
- "BbkcIP4YPyHeinwkgAn5UVJg9DOxNCS0MIIDFzCCAf+gAwIBAgIBAjANBgkqhkiG\n"
- "9w0BAQsFADAVMRMwEQYDVQQKDApFeGFtcGxlIENBMCAXDTE3MDcyMTE0NDQxM1oY\n"
- "DzIyMjIwNzIxMTQ0NDEzWjAiMSAwHgYDVQQKDBdFeGFtcGxlIGludGVybWVkaWF0\n"
- "ZSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMPFDEvDANwvhviu\n"
- "pwXTvaKyxyX94jVu1wgAhIRyQBVRiMbrn8MEufLG8oA0vKd8s92gv/lWe1jFb2rn\n"
- "91jMkZWsjWjiJFD6SzqFfBo+XxOGikEqO1MAf92UqavmSGlXVRG1Vy7T7dWibZP0\n"
- "WODhHYWayR0Y6owSz5IqNfrHXzDME+lSJxHgRFI7pK+b0OgiVmvyXDKFPvyU6GrP\n"
- "lxXDi/XbjyPvC5gpiwtTgm+s8KERwmdlfZUNjkh2PpHx1g1joijHT3wIvO/Pek1E\n"
- "C+Xs6w3XxGgL6TTL7FDuv4AjZVX9KK66/yBhX3aN8bkqAg+hs9XNk3zzWC0XEFOS\n"
- "Qoh2va0CAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw\n"
- "HQYDVR0OBBYEFHwi/7dUWGjkMWJctOm7MCjjQj1cMB8GA1UdIwQYMBaAFIh2KRoK\n"
- "Joe2VtpOwWMkRAkRmLWKMA0GCSqGSIb3DQEBCwUAA4IBAQCF6sHCBdYRwBwvfCve\n"
- "og9cPnmPqZrG4AtmSvtoSsMvgvKb/4z3/gG8oPtTBkeRcAHoMoEp/oA+B2ylwIAc\n"
- "S5U7jx+lYH/Pqih0X/OcOLbaMv8uzGSGQxk+L9LuuIT6E/THfRRIPEvkDkzC+/uk\n"
- "7vUbG17bSEWeF0o/6sjzAY2aH1jnbCDyu0UC78GXkc6bZ5QlH98uLMDMrOmqcZjS\n"
- "JFfvuRDQyKV5yBdBkYaobsIWSQDsgYxJzf/2y8c3r+HXqT+jhrXPWJ3btgMPxpu7\n"
- "E8KmoFgp9EM+48oYlXJ66rk08/KjaVmgN7R+Hm3e2+MFT2kme4fBKalLjcazTe3x\n"
- "0FisMIIDIjCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQKDBdF\n"
- "eGFtcGxlIGludGVybWVkaWF0ZSBDQTAgFw0yMjA3MjExNDQ1MzBaGA8yMjIyMDcy\n"
- "MTE0NDUzMVowFTETMBEGA1UEAwwKSm9obiBTbWl0aDCCASIwDQYJKoZIhvcNAQEB\n"
- "BQADggEPADCCAQoCggEBAMjhSqhdD5RjmOm6W3hG7zkgKBP9whRN/SipcdEMlkgc\n"
- "F/U3QMu66qIfKwheNdWalC1JLtruLDWP92ysa6Vw+CCG8aSax1AgB//RKQB7kgPA\n"
- "9js9hi/oCdBmCv2HJxhWSLz+MVoxgzW4C7S9FenI+btxe/99Uw4nOw7kwjsYDLKr\n"
- "tMw8myv7aCW/63CuBYGtohiZupM3RI3kKFcZots+KRPLlZpjv+I2h9xSln8VxKNb\n"
- "XiMrYwGfHB7iX7ghe1TvFjKatEUhsqa7AvIq7nfe/cyq97f0ODQO814njgZtk5iQ\n"
- "JVavXHdhTVaypt1HdAFMuHX5UATylHxx9tRCgSIijUsCAwEAAaNuMGwwCwYDVR0P\n"
- "BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQU\n"
- "31+vHl4E/2Jpnwinbzf+d7usshcwHwYDVR0jBBgwFoAUfCL/t1RYaOQxYly06bsw\n"
- "KONCPVwwDQYJKoZIhvcNAQELBQADggEBAAWe63DcNwmleQ3INFGDJZ/m2I/R/cBa\n"
- "nnrxgR5Ey1ljHdA/x1z1JLTGmGVwqGExs5DNG9Q//Pmc9pZ1yPa8J4Xf8AvFcmkY\n"
- "mWoH1HvW0xu/RF1UN5SAoD2PRQ+Vq4OSPD58IlEu/u4o1wZV7Wl91Cv6VNpiAb63\n"
- "j9PA1YacOpOtcRqG59Vuj9HFm9f30ejHVo2+KJcpo290cR3Zg4fOm8mtjeMdt/QS\n"
- "Atq+RqPAQ7yxqvEEv8zPIZj2kAOQm3mh/yYqBrR68lQUD/dBTP7ApIZkhUK3XK6U\n"
- "nf9JvoF6Fn2+Cnqb//FLBgHSnoeqeQNwDLUXTsD02iYxHzJrhokSY4YxggFQMIIB\n"
- "TAIBATAnMCIxIDAeBgNVBAoMF0V4YW1wbGUgaW50ZXJtZWRpYXRlIENBAgEBMAsG\n"
- "CWCGSAFlAwQCATANBgkqhkiG9w0BAQEFAASCAQATHg6wNsBcs/Ub1GQfKwTpKCk5\n"
- "8QXuNnZ0u7b6mKgrSY2Gf47fpL2aRgaR+BAQncbctu5EH/IL38pWjaGtOhFAj/5q\n"
- "7luVQW11kuyJN3Bd/dtLqawWOwMmAIEigw6X50l5ZHnEVzFfxt+RKTNhk4XWVtbi\n"
- "2iIlITOplW0rnvxYAwCxKL9ocaB7etK8au7ixMxbFp75Ts4iLX8dhlAFdCuFCk8k\n"
- "B8mi9HHuwr3QYRqMPW61hu1wBL3yB8eoZNOwPXb0gkIh6ZvgptxgQzm/cc+Iw9fP\n"
- "QkR0fTM7ElJ5QZmSV98AUbZDHmDvpmcjcUxfSPMc3IoT8T300usRu7QHqKJi\n"
- "-----END PKCS7-----\n";
+ "-----BEGIN PKCS7-----\n"
+ "MIIK2QYJKoZIhvcNAQcCoIIKyjCCCsYCAQExDTALBglghkgBZQMEAgEwCwYJKoZI\n"
+ "hvcNAQcBoIIJTzCCAwowggHyoAMCAQICAQEwDQYJKoZIhvcNAQELBQAwFTETMBEG\n"
+ "A1UECgwKRXhhbXBsZSBDQTAgFw0xNzA3MjExNDQzMjFaGA8yMjIyMDcyMTE0NDMy\n"
+ "MVowFTETMBEGA1UECgwKRXhhbXBsZSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n"
+ "ADCCAQoCggEBAL51eyE4j8wAKQKMGlO9HEY2iaGvsdPSJmidSdmCi1jnNK39Lx4Y\n"
+ "31h279hSHF5wtI6VM91HHfeLf1mjEZHlKrXXJQzBPLpbHWapD778drHBitOP8e56\n"
+ "fDMIfofLV4tkMk8690vPe4cJH1UHGspMyz6EQF9kPRaW80XtMV/6dalgL/9Esmaw\n"
+ "XBNPJAS1VutDuXQkJ/3/rWFLmkpYHHtGPjX782YRmT1s+VOVTsLqmKx0TEL8A381\n"
+ "bbElHPUAMjPcyWR5qqA8KWnS5Dwqk3LwI0AvuhQytCq0S7Xl4DXauvxwTRXv0UU7\n"
+ "W8r3MLAw9DnlnJiD/RFjw5rbGO3wMePk/qUCAwEAAaNjMGEwDwYDVR0TAQH/BAUw\n"
+ "AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIh2KRoKJoe2VtpOwWMkRAkR\n"
+ "mLWKMB8GA1UdIwQYMBaAFIh2KRoKJoe2VtpOwWMkRAkRmLWKMA0GCSqGSIb3DQEB\n"
+ "CwUAA4IBAQBovvlOjoy0MCT5U0eWfcPQQjY4Ssrn3IiPNlVkqSNo+FHX+2baTLVQ\n"
+ "5QTHxwXwzdIJiwtjFWDdGEQXqmuIvnFG+u/whGbeg6oQygfnQ5Y+q6epOxCsPgLQ\n"
+ "mKKEaF7mvh8DauUx4QSbYCNGCctOZuB1vlN9bJ3/5QbH+2pFPOfCr5CAyPDwHo6S\n"
+ "qO3yPcutRwT9xS7gXEHM9HhLp+DmdCGh4eVBPiFilyZm1d92lWxU8oxoSfXgzDT/\n"
+ "GCzlMykNZNs4JD9QmiRClP/3U0dQbOhah/Fda+N+L90xaqEgGcvwKKZa3pzo59pl\n"
+ "BbkcIP4YPyHeinwkgAn5UVJg9DOxNCS0MIIDFzCCAf+gAwIBAgIBAjANBgkqhkiG\n"
+ "9w0BAQsFADAVMRMwEQYDVQQKDApFeGFtcGxlIENBMCAXDTE3MDcyMTE0NDQxM1oY\n"
+ "DzIyMjIwNzIxMTQ0NDEzWjAiMSAwHgYDVQQKDBdFeGFtcGxlIGludGVybWVkaWF0\n"
+ "ZSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMPFDEvDANwvhviu\n"
+ "pwXTvaKyxyX94jVu1wgAhIRyQBVRiMbrn8MEufLG8oA0vKd8s92gv/lWe1jFb2rn\n"
+ "91jMkZWsjWjiJFD6SzqFfBo+XxOGikEqO1MAf92UqavmSGlXVRG1Vy7T7dWibZP0\n"
+ "WODhHYWayR0Y6owSz5IqNfrHXzDME+lSJxHgRFI7pK+b0OgiVmvyXDKFPvyU6GrP\n"
+ "lxXDi/XbjyPvC5gpiwtTgm+s8KERwmdlfZUNjkh2PpHx1g1joijHT3wIvO/Pek1E\n"
+ "C+Xs6w3XxGgL6TTL7FDuv4AjZVX9KK66/yBhX3aN8bkqAg+hs9XNk3zzWC0XEFOS\n"
+ "Qoh2va0CAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw\n"
+ "HQYDVR0OBBYEFHwi/7dUWGjkMWJctOm7MCjjQj1cMB8GA1UdIwQYMBaAFIh2KRoK\n"
+ "Joe2VtpOwWMkRAkRmLWKMA0GCSqGSIb3DQEBCwUAA4IBAQCF6sHCBdYRwBwvfCve\n"
+ "og9cPnmPqZrG4AtmSvtoSsMvgvKb/4z3/gG8oPtTBkeRcAHoMoEp/oA+B2ylwIAc\n"
+ "S5U7jx+lYH/Pqih0X/OcOLbaMv8uzGSGQxk+L9LuuIT6E/THfRRIPEvkDkzC+/uk\n"
+ "7vUbG17bSEWeF0o/6sjzAY2aH1jnbCDyu0UC78GXkc6bZ5QlH98uLMDMrOmqcZjS\n"
+ "JFfvuRDQyKV5yBdBkYaobsIWSQDsgYxJzf/2y8c3r+HXqT+jhrXPWJ3btgMPxpu7\n"
+ "E8KmoFgp9EM+48oYlXJ66rk08/KjaVmgN7R+Hm3e2+MFT2kme4fBKalLjcazTe3x\n"
+ "0FisMIIDIjCCAgqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQKDBdF\n"
+ "eGFtcGxlIGludGVybWVkaWF0ZSBDQTAgFw0yMjA3MjExNDQ1MzBaGA8yMjIyMDcy\n"
+ "MTE0NDUzMVowFTETMBEGA1UEAwwKSm9obiBTbWl0aDCCASIwDQYJKoZIhvcNAQEB\n"
+ "BQADggEPADCCAQoCggEBAMjhSqhdD5RjmOm6W3hG7zkgKBP9whRN/SipcdEMlkgc\n"
+ "F/U3QMu66qIfKwheNdWalC1JLtruLDWP92ysa6Vw+CCG8aSax1AgB//RKQB7kgPA\n"
+ "9js9hi/oCdBmCv2HJxhWSLz+MVoxgzW4C7S9FenI+btxe/99Uw4nOw7kwjsYDLKr\n"
+ "tMw8myv7aCW/63CuBYGtohiZupM3RI3kKFcZots+KRPLlZpjv+I2h9xSln8VxKNb\n"
+ "XiMrYwGfHB7iX7ghe1TvFjKatEUhsqa7AvIq7nfe/cyq97f0ODQO814njgZtk5iQ\n"
+ "JVavXHdhTVaypt1HdAFMuHX5UATylHxx9tRCgSIijUsCAwEAAaNuMGwwCwYDVR0P\n"
+ "BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAdBgNVHQ4EFgQU\n"
+ "31+vHl4E/2Jpnwinbzf+d7usshcwHwYDVR0jBBgwFoAUfCL/t1RYaOQxYly06bsw\n"
+ "KONCPVwwDQYJKoZIhvcNAQELBQADggEBAAWe63DcNwmleQ3INFGDJZ/m2I/R/cBa\n"
+ "nnrxgR5Ey1ljHdA/x1z1JLTGmGVwqGExs5DNG9Q//Pmc9pZ1yPa8J4Xf8AvFcmkY\n"
+ "mWoH1HvW0xu/RF1UN5SAoD2PRQ+Vq4OSPD58IlEu/u4o1wZV7Wl91Cv6VNpiAb63\n"
+ "j9PA1YacOpOtcRqG59Vuj9HFm9f30ejHVo2+KJcpo290cR3Zg4fOm8mtjeMdt/QS\n"
+ "Atq+RqPAQ7yxqvEEv8zPIZj2kAOQm3mh/yYqBrR68lQUD/dBTP7ApIZkhUK3XK6U\n"
+ "nf9JvoF6Fn2+Cnqb//FLBgHSnoeqeQNwDLUXTsD02iYxHzJrhokSY4YxggFQMIIB\n"
+ "TAIBATAnMCIxIDAeBgNVBAoMF0V4YW1wbGUgaW50ZXJtZWRpYXRlIENBAgEBMAsG\n"
+ "CWCGSAFlAwQCATANBgkqhkiG9w0BAQEFAASCAQATHg6wNsBcs/Ub1GQfKwTpKCk5\n"
+ "8QXuNnZ0u7b6mKgrSY2Gf47fpL2aRgaR+BAQncbctu5EH/IL38pWjaGtOhFAj/5q\n"
+ "7luVQW11kuyJN3Bd/dtLqawWOwMmAIEigw6X50l5ZHnEVzFfxt+RKTNhk4XWVtbi\n"
+ "2iIlITOplW0rnvxYAwCxKL9ocaB7etK8au7ixMxbFp75Ts4iLX8dhlAFdCuFCk8k\n"
+ "B8mi9HHuwr3QYRqMPW61hu1wBL3yB8eoZNOwPXb0gkIh6ZvgptxgQzm/cc+Iw9fP\n"
+ "QkR0fTM7ElJ5QZmSV98AUbZDHmDvpmcjcUxfSPMc3IoT8T300usRu7QHqKJi\n"
+ "-----END PKCS7-----\n";
const gnutls_datum_t rca_datum = { (void *)rca_pem, sizeof(rca_pem) - 1 };
const gnutls_datum_t ca_datum = { (void *)ca_pem, sizeof(ca_pem) - 1 };
@@ -185,10 +183,10 @@ void doit(void)
gnutls_global_set_log_function(tls_log_func);
gnutls_global_set_log_level(4711);
}
-
// Import certificates
CHECK(gnutls_x509_crt_init(&rca_cert));
- CHECK(gnutls_x509_crt_import(rca_cert, &rca_datum, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_x509_crt_import
+ (rca_cert, &rca_datum, GNUTLS_X509_FMT_PEM));
CHECK(gnutls_x509_crt_init(&ca_cert));
CHECK(gnutls_x509_crt_import(ca_cert, &ca_datum, GNUTLS_X509_FMT_PEM));
CHECK(gnutls_x509_crt_init(&ee_cert));
@@ -196,7 +194,8 @@ void doit(void)
// Setup trust store
CHECK(gnutls_x509_trust_list_init(&tlist, 0));
- CHECK(gnutls_x509_trust_list_add_named_crt(tlist, rca_cert, "rca", 3, 0));
+ CHECK(gnutls_x509_trust_list_add_named_crt
+ (tlist, rca_cert, "rca", 3, 0));
CHECK(gnutls_x509_trust_list_add_named_crt(tlist, ca_cert, "ca", 2, 0));
CHECK(gnutls_x509_trust_list_add_named_crt(tlist, ee_cert, "ee", 2, 0));
diff --git a/tests/pkcs7.c b/tests/pkcs7.c
index de0de736d9..11bb2f121d 100644
--- a/tests/pkcs7.c
+++ b/tests/pkcs7.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <gnutls/gnutls.h>
@@ -40,7 +40,7 @@
#define CERT_DIR "pkcs7-interesting"
-static int getnextfile(DIR **dirp, gnutls_datum_t *der, int *exp_ret)
+static int getnextfile(DIR ** dirp, gnutls_datum_t * der, int *exp_ret)
{
struct dirent *d;
char path[256];
@@ -65,14 +65,15 @@ static int getnextfile(DIR **dirp, gnutls_datum_t *der, int *exp_ret)
d = readdir(*dirp);
if (d != NULL
#ifdef _DIRENT_HAVE_D_TYPE
- && d->d_type == DT_REG
+ && d->d_type == DT_REG
#endif
- ) {
+ ) {
if (strstr(d->d_name, ".der") == 0)
continue;
if (strstr(d->d_name, ".err") != 0)
continue;
- snprintf(path, sizeof(path), "%s/%s", cert_dir, d->d_name);
+ snprintf(path, sizeof(path), "%s/%s", cert_dir,
+ d->d_name);
success("Loading %s\n", path);
ret = gnutls_load_file(path, der);
@@ -80,23 +81,24 @@ static int getnextfile(DIR **dirp, gnutls_datum_t *der, int *exp_ret)
return -1;
}
- snprintf(path, sizeof(path), "%s/%s.err", cert_dir, d->d_name);
+ snprintf(path, sizeof(path), "%s/%s.err", cert_dir,
+ d->d_name);
success("Loading errfile %s\n", path);
ret = gnutls_load_file(path, &local);
- if (ret < 0) { /* not found assume success */
+ if (ret < 0) { /* not found assume success */
*exp_ret = 0;
} else {
- *exp_ret = atoi((char*)local.data);
+ *exp_ret = atoi((char *)local.data);
success("expecting error code %d\n", *exp_ret);
gnutls_free(local.data);
}
return 0;
}
- } while(d != NULL);
+ } while (d != NULL);
closedir(*dirp);
- return -1; /* finished */
+ return -1; /* finished */
}
void doit(void)
@@ -110,7 +112,7 @@ void doit(void)
if (ret < 0)
fail("init %d\n", ret);
- while (getnextfile(&dirp, &der, &exp_ret)==0) {
+ while (getnextfile(&dirp, &der, &exp_ret) == 0) {
ret = gnutls_pkcs7_init(&cert);
if (ret < 0)
fail("crt_init %d\n", ret);
@@ -123,7 +125,9 @@ void doit(void)
if (ret == 0) {
/* attempt to fully decode */
gnutls_datum_t out;
- ret = gnutls_pkcs7_print(cert, GNUTLS_CRT_PRINT_FULL, &out);
+ ret =
+ gnutls_pkcs7_print(cert, GNUTLS_CRT_PRINT_FULL,
+ &out);
if (ret < 0) {
fail("print: %s\n", gnutls_strerror(ret));
}
diff --git a/tests/pkcs8-key-decode-encrypted.c b/tests/pkcs8-key-decode-encrypted.c
index ecd3ece65d..9afb75ad6b 100644
--- a/tests/pkcs8-key-decode-encrypted.c
+++ b/tests/pkcs8-key-decode-encrypted.c
@@ -36,36 +36,37 @@
"zta5XzXb5TRkBsVU8tAPADP+wS/vBCS05ne1wmhdD6c6\n" \
"-----END ENCRYPTED PRIVATE KEY-----\n"
-
static int test_decode(void)
{
- gnutls_x509_privkey_t key;
- const gnutls_datum_t data = {
- (unsigned char *)PRIVATE_KEY,
- strlen(PRIVATE_KEY)
- };
- int err;
+ gnutls_x509_privkey_t key;
+ const gnutls_datum_t data = {
+ (unsigned char *)PRIVATE_KEY,
+ strlen(PRIVATE_KEY)
+ };
+ int err;
- if ((err = gnutls_x509_privkey_init(&key)) < 0) {
- fail("Failed to init key %s\n", gnutls_strerror(err));
- }
+ if ((err = gnutls_x509_privkey_init(&key)) < 0) {
+ fail("Failed to init key %s\n", gnutls_strerror(err));
+ }
- err = gnutls_x509_privkey_import_pkcs8(key, &data,
- GNUTLS_X509_FMT_PEM, "", 0);
- if (err != GNUTLS_E_DECRYPTION_FAILED) {
- fail("Unexpected error code: %s/%d\n", gnutls_strerror(err), err);
- }
+ err = gnutls_x509_privkey_import_pkcs8(key, &data,
+ GNUTLS_X509_FMT_PEM, "", 0);
+ if (err != GNUTLS_E_DECRYPTION_FAILED) {
+ fail("Unexpected error code: %s/%d\n", gnutls_strerror(err),
+ err);
+ }
- err = gnutls_x509_privkey_import_pkcs8(key, &data,
- GNUTLS_X509_FMT_PEM, "password", 0);
- if (err != 0) {
- fail("Unexpected error code: %s\n", gnutls_strerror(err));
- }
+ err = gnutls_x509_privkey_import_pkcs8(key, &data,
+ GNUTLS_X509_FMT_PEM, "password",
+ 0);
+ if (err != 0) {
+ fail("Unexpected error code: %s\n", gnutls_strerror(err));
+ }
- success("Loaded key\n%s", PRIVATE_KEY);
+ success("Loaded key\n%s", PRIVATE_KEY);
- gnutls_x509_privkey_deinit(key);
- return 0;
+ gnutls_x509_privkey_deinit(key);
+ return 0;
}
void doit(void)
diff --git a/tests/pkcs8-key-decode.c b/tests/pkcs8-key-decode.c
index ee64c38931..177d0aa795 100644
--- a/tests/pkcs8-key-decode.c
+++ b/tests/pkcs8-key-decode.c
@@ -27,7 +27,7 @@
#include "utils.h"
-# define PRIVATE_KEY \
+#define PRIVATE_KEY \
"-----BEGIN PRIVATE KEY-----\n" \
"MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALVcr\n" \
"BL40Tm6yq88FBhJNw1aaoCjmtg0l4dWQZ/e9Fimx4ARxFpT+ji4FE\n" \
@@ -49,28 +49,28 @@
static int test_load(void)
{
- gnutls_x509_privkey_t key;
- const gnutls_datum_t data = {
- (unsigned char *)PRIVATE_KEY,
- strlen(PRIVATE_KEY)
- };
- int err;
+ gnutls_x509_privkey_t key;
+ const gnutls_datum_t data = {
+ (unsigned char *)PRIVATE_KEY,
+ strlen(PRIVATE_KEY)
+ };
+ int err;
- if ((err = gnutls_x509_privkey_init(&key)) < 0) {
- fail("Failed to init key %s\n", gnutls_strerror(err));
- exit(1);
- }
+ if ((err = gnutls_x509_privkey_init(&key)) < 0) {
+ fail("Failed to init key %s\n", gnutls_strerror(err));
+ exit(1);
+ }
- if ((err = gnutls_x509_privkey_import(key, &data,
- GNUTLS_X509_FMT_PEM)) < 0) {
- fail("Failed to import key %s\n", gnutls_strerror(err));
- exit(1);
- }
+ if ((err = gnutls_x509_privkey_import(key, &data,
+ GNUTLS_X509_FMT_PEM)) < 0) {
+ fail("Failed to import key %s\n", gnutls_strerror(err));
+ exit(1);
+ }
- success("Loaded key\n%s", PRIVATE_KEY);
+ success("Loaded key\n%s", PRIVATE_KEY);
- gnutls_x509_privkey_deinit(key);
- return 0;
+ gnutls_x509_privkey_deinit(key);
+ return 0;
}
void doit(void)
diff --git a/tests/post-client-hello-change-prio.c b/tests/post-client-hello-change-prio.c
index e87becc7d8..6999cbe617 100644
--- a/tests/post-client-hello-change-prio.c
+++ b/tests/post-client-hello-change-prio.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -44,7 +44,8 @@ const char *override_prio = NULL;
static int post_client_hello_callback(gnutls_session_t session)
{
if (override_prio) {
- assert(gnutls_priority_set_direct(session, override_prio, NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, override_prio, NULL)
+ >= 0);
}
pch_ok = 1;
return 0;
@@ -56,7 +57,8 @@ static void tls_log_func(int level, const char *str)
}
static
-void start(const char *name, const char *client_prio, const char *server_prio, int expected)
+void start(const char *name, const char *client_prio, const char *server_prio,
+ int expected)
{
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
@@ -78,25 +80,23 @@ void start(const char *name, const char *client_prio, const char *server_prio, i
gnutls_global_set_log_level(4);
/* Init server */
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server, server_prio, NULL)>=0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, server_prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
gnutls_handshake_set_post_client_hello_function(server,
post_client_hello_callback);
- assert(gnutls_certificate_allocate_credentials(&clientx509cred)>=0);
- assert(gnutls_init(&client, GNUTLS_CLIENT)>=0);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
- assert(gnutls_priority_set_direct(client, client_prio, NULL)>=0);
+ assert(gnutls_certificate_allocate_credentials(&clientx509cred) >= 0);
+ assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
+ assert(gnutls_priority_set_direct(client, client_prio, NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
@@ -112,7 +112,8 @@ void start(const char *name, const char *client_prio, const char *server_prio, i
ret = gnutls_protocol_get_version(server);
assert(expected == ret);
} else {
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN,
+ GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
}
gnutls_bye(client, GNUTLS_SHUT_RDWR);
@@ -135,15 +136,22 @@ void start(const char *name, const char *client_prio, const char *server_prio, i
void doit(void)
{
override_prio = "NORMAL";
- start("tls1.2-only", "NORMAL:-VERS-ALL:+VERS-TLS1.2", "NORMAL:-VERS-ALL:+VERS-TLS1.2", GNUTLS_TLS1_2);
- start("tls1.3-only", "NORMAL:-VERS-ALL:+VERS-TLS1.3", "NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_TLS1_3);
+ start("tls1.2-only", "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2", GNUTLS_TLS1_2);
+ start("tls1.3-only", "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_TLS1_3);
start("default", "NORMAL", "NORMAL", GNUTLS_TLS1_3);
override_prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2";
- start("default overridden to TLS1.2-only", "NORMAL", "NORMAL", GNUTLS_TLS1_2);
+ start("default overridden to TLS1.2-only", "NORMAL", "NORMAL",
+ GNUTLS_TLS1_2);
override_prio = NULL;
start("client tls1.2-only, server tls1.2-disabled",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2", "NORMAL:-VERS-TLS1.2:-VERS-TLS1.1:-VERS-TLS1.0:-VERS-SSL3.0", -1);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ "NORMAL:-VERS-TLS1.2:-VERS-TLS1.1:-VERS-TLS1.0:-VERS-SSL3.0", -1);
override_prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2";
- start("client tls1.2-only, server tls1.2-disabled initially, but allow it afterwards",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2", "NORMAL:-VERS-TLS1.2:-VERS-TLS1.1:-VERS-TLS1.0:-VERS-SSL3.0", GNUTLS_TLS1_2);
+ start
+ ("client tls1.2-only, server tls1.2-disabled initially, but allow it afterwards",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ "NORMAL:-VERS-TLS1.2:-VERS-TLS1.1:-VERS-TLS1.0:-VERS-SSL3.0",
+ GNUTLS_TLS1_2);
}
diff --git a/tests/prf.c b/tests/prf.c
index 301f143bc6..a2987ca187 100644
--- a/tests/prf.c
+++ b/tests/prf.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,18 +33,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -66,103 +66,110 @@ static void client_log_func(int level, const char *str)
static pid_t child;
static unsigned char server_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDIzCCAgugAwIBAgIMUz8PCR2sdRK56V6OMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
-"BgNVBAMTBENBLTEwIhgPMjAxNDA0MDQxOTU5MDVaGA85OTk5MTIzMTIzNTk1OVow\n"
-"EzERMA8GA1UEAxMIc2VydmVyLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
-"AoIBAQDZ3dCzh9gOTOiOb2dtrPu91fYYgC/ey0ACYjQxaru7FZwnuXPhQK9KHsIV\n"
-"YRIyo49wjKZddkHet2sbpFAAeETZh8UUWLRb/mupyaSJMycaYCNjLZCUJTztvXxJ\n"
-"CCNfbtgvKC+Vu1mu94KBPatslgvnsamH7AiL5wmwRRqdH/Z93XaEvuRG6Zk0Sh9q\n"
-"ZMdCboGfjtmGEJ1V+z5CR+IyH4sckzd8WJW6wBSEwgliGaXnc75xKtFWBZV2njNr\n"
-"8V1TOYOdLEbiF4wduVExL5TKq2ywNkRpUfK2I1BcWS5D9Te/QT7aSdE08rL6ztmZ\n"
-"IhILSrMOfoLnJ4lzXspz3XLlEuhnAgMBAAGjdzB1MAwGA1UdEwEB/wQCMAAwFAYD\n"
-"VR0RBA0wC4IJbG9jYWxob3N0MA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFJXR\n"
-"raRS5MVhEqaRE42A3S2BIj7UMB8GA1UdIwQYMBaAFP6S7AyMRO2RfkANgo8YsCl8\n"
-"JfJkMA0GCSqGSIb3DQEBCwUAA4IBAQCQ62+skMVZYrGbpab8RI9IG6xH8kEndvFj\n"
-"J7wBBZCOlcjOj+HQ7a2buF5zGKRwAOSznKcmvZ7l5DPdsd0t5/VT9LKSbQ6+CfGr\n"
-"Xs5qPaDJnRhZkOILCvXJ9qyO+79WNMsg9pWnxkTK7aWR5OYE+1Qw1jG681HMkWTm\n"
-"nt7et9bdiNNpvA+L55569XKbdtJLs3hn5gEQFgS7EaEj59aC4vzSTFcidowCoa43\n"
-"7JmfSfC9YaAIFH2vriyU0QNf2y7cG5Hpkge+U7uMzQrsT77Q3SDB9WkyPAFNSB4Q\n"
-"B/r+OtZXOnQhLlMV7h4XGlWruFEaOBVjFHSdMGUh+DtaLvd1bVXI\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwNDA0MTk1OTA1WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvhyQfsUm3T0xK\n"
-"jiBXO3H6Y27b7lmCRYZQCmXCl2sUsGDL7V9biavTt3+sorWtH542/cTGDh5n8591\n"
-"7rVxAB/VASmN55O3fjZyFGrjusjhXBla0Yxe5rZ/7/Pjrq84T7gc/IXiX9Sums/c\n"
-"o9AeoykfhsjV2ubhh4h+8uPsHDTcAFTxq3mQaoldwnW2nmjDFzaKLtQdnyFf41o6\n"
-"nsJCK/J9PtpdCID5Zb+eQfu5Yhk1iUHe8a9TOstCHtgBq61YzufDHUQk3zsT+VZM\n"
-"20lDvSBnHdWLjxoea587JbkvtH8xRR8ThwABSb98qPnhJ8+A7mpO89QO1wxZM85A\n"
-"xEweQlMHAgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQU/pLsDIxE7ZF+QA2CjxiwKXwl8mQwHwYDVR0jBBgwFoAUGD0R\n"
-"Yr2H7kfjQUcBMxSTCDQnhu0wDQYJKoZIhvcNAQELBQADggEBANEXLUV+Z1PGTn7M\n"
-"3rPT/m/EamcrZJ3vFWrnfN91ws5llyRUKNhx6222HECh3xRSxH9YJONsbv2zY6sd\n"
-"ztY7lvckL4xOgWAjoCVTx3hqbZjDxpLRsvraw1PlqBHlRQVWLKlEQ55+tId2zgMX\n"
-"Z+wxM7FlU/6yWVPODIxrqYQd2KqaEp4aLIklw6Hi4HD6DnQJikjsJ6Noe0qyX1Tx\n"
-"uZ8mgP/G47Fe2d2H29kJ1iJ6hp1XOqyWrVIh/jONcnTvWS8aMqS3MU0EJH2Pb1Qa\n"
-"KGIvbd/3H9LykFTP/b7Imdv2fZxXIK8jC+jbF1w6rdBCVNA0p30X/jonoC3vynEK\n"
-"5cK0cgs=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDIzCCAgugAwIBAgIMUz8PCR2sdRK56V6OMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTEwIhgPMjAxNDA0MDQxOTU5MDVaGA85OTk5MTIzMTIzNTk1OVow\n"
+ "EzERMA8GA1UEAxMIc2VydmVyLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
+ "AoIBAQDZ3dCzh9gOTOiOb2dtrPu91fYYgC/ey0ACYjQxaru7FZwnuXPhQK9KHsIV\n"
+ "YRIyo49wjKZddkHet2sbpFAAeETZh8UUWLRb/mupyaSJMycaYCNjLZCUJTztvXxJ\n"
+ "CCNfbtgvKC+Vu1mu94KBPatslgvnsamH7AiL5wmwRRqdH/Z93XaEvuRG6Zk0Sh9q\n"
+ "ZMdCboGfjtmGEJ1V+z5CR+IyH4sckzd8WJW6wBSEwgliGaXnc75xKtFWBZV2njNr\n"
+ "8V1TOYOdLEbiF4wduVExL5TKq2ywNkRpUfK2I1BcWS5D9Te/QT7aSdE08rL6ztmZ\n"
+ "IhILSrMOfoLnJ4lzXspz3XLlEuhnAgMBAAGjdzB1MAwGA1UdEwEB/wQCMAAwFAYD\n"
+ "VR0RBA0wC4IJbG9jYWxob3N0MA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFJXR\n"
+ "raRS5MVhEqaRE42A3S2BIj7UMB8GA1UdIwQYMBaAFP6S7AyMRO2RfkANgo8YsCl8\n"
+ "JfJkMA0GCSqGSIb3DQEBCwUAA4IBAQCQ62+skMVZYrGbpab8RI9IG6xH8kEndvFj\n"
+ "J7wBBZCOlcjOj+HQ7a2buF5zGKRwAOSznKcmvZ7l5DPdsd0t5/VT9LKSbQ6+CfGr\n"
+ "Xs5qPaDJnRhZkOILCvXJ9qyO+79WNMsg9pWnxkTK7aWR5OYE+1Qw1jG681HMkWTm\n"
+ "nt7et9bdiNNpvA+L55569XKbdtJLs3hn5gEQFgS7EaEj59aC4vzSTFcidowCoa43\n"
+ "7JmfSfC9YaAIFH2vriyU0QNf2y7cG5Hpkge+U7uMzQrsT77Q3SDB9WkyPAFNSB4Q\n"
+ "B/r+OtZXOnQhLlMV7h4XGlWruFEaOBVjFHSdMGUh+DtaLvd1bVXI\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwNDA0MTk1OTA1WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvhyQfsUm3T0xK\n"
+ "jiBXO3H6Y27b7lmCRYZQCmXCl2sUsGDL7V9biavTt3+sorWtH542/cTGDh5n8591\n"
+ "7rVxAB/VASmN55O3fjZyFGrjusjhXBla0Yxe5rZ/7/Pjrq84T7gc/IXiX9Sums/c\n"
+ "o9AeoykfhsjV2ubhh4h+8uPsHDTcAFTxq3mQaoldwnW2nmjDFzaKLtQdnyFf41o6\n"
+ "nsJCK/J9PtpdCID5Zb+eQfu5Yhk1iUHe8a9TOstCHtgBq61YzufDHUQk3zsT+VZM\n"
+ "20lDvSBnHdWLjxoea587JbkvtH8xRR8ThwABSb98qPnhJ8+A7mpO89QO1wxZM85A\n"
+ "xEweQlMHAgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQU/pLsDIxE7ZF+QA2CjxiwKXwl8mQwHwYDVR0jBBgwFoAUGD0R\n"
+ "Yr2H7kfjQUcBMxSTCDQnhu0wDQYJKoZIhvcNAQELBQADggEBANEXLUV+Z1PGTn7M\n"
+ "3rPT/m/EamcrZJ3vFWrnfN91ws5llyRUKNhx6222HECh3xRSxH9YJONsbv2zY6sd\n"
+ "ztY7lvckL4xOgWAjoCVTx3hqbZjDxpLRsvraw1PlqBHlRQVWLKlEQ55+tId2zgMX\n"
+ "Z+wxM7FlU/6yWVPODIxrqYQd2KqaEp4aLIklw6Hi4HD6DnQJikjsJ6Noe0qyX1Tx\n"
+ "uZ8mgP/G47Fe2d2H29kJ1iJ6hp1XOqyWrVIh/jONcnTvWS8aMqS3MU0EJH2Pb1Qa\n"
+ "KGIvbd/3H9LykFTP/b7Imdv2fZxXIK8jC+jbF1w6rdBCVNA0p30X/jonoC3vynEK\n"
+ "5cK0cgs=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char server_key_pem[] =
-"-----BEGIN RSA PRIVATE KEY-----\n"
-"MIIEpQIBAAKCAQEA2d3Qs4fYDkzojm9nbaz7vdX2GIAv3stAAmI0MWq7uxWcJ7lz\n"
-"4UCvSh7CFWESMqOPcIymXXZB3rdrG6RQAHhE2YfFFFi0W/5rqcmkiTMnGmAjYy2Q\n"
-"lCU87b18SQgjX27YLygvlbtZrveCgT2rbJYL57Gph+wIi+cJsEUanR/2fd12hL7k\n"
-"RumZNEofamTHQm6Bn47ZhhCdVfs+QkfiMh+LHJM3fFiVusAUhMIJYhml53O+cSrR\n"
-"VgWVdp4za/FdUzmDnSxG4heMHblRMS+UyqtssDZEaVHytiNQXFkuQ/U3v0E+2knR\n"
-"NPKy+s7ZmSISC0qzDn6C5yeJc17Kc91y5RLoZwIDAQABAoIBAQCRXAu5HPOsZufq\n"
-"0K2DYZz9BdqSckR+M8HbVUZZiksDAeIUJwoHyi6qF2eK+B86JiK4Bz+gsBw2ys3t\n"
-"vW2bQqM9N/boIl8D2fZfbCgZWkXGtUonC+mgzk+el4Rq/cEMFVqr6/YDwuKNeJpc\n"
-"PJc5dcsvpTvlcjgpj9bJAvJEz2SYiIUpvtG4WNMGGapVZZPDvWn4/isY+75T5oDf\n"
-"1X5jG0lN9uoUjcuGuThN7gxjwlRkcvEOPHjXc6rxfrWIDdiz/91V46PwpqVDpRrg\n"
-"ig6U7+ckS0Oy2v32x0DaDhwAfDJ2RNc9az6Z+11lmY3LPkjG/p8Klcmgvt4/lwkD\n"
-"OYRC5QGRAoGBAPFdud6nmVt9h1DL0o4R6snm6P3K81Ds765VWVmpzJkK3+bwe4PQ\n"
-"GQQ0I0zN4hXkDMwHETS+EVWllqkK/d4dsE3volYtyTti8zthIATlgSEJ81x/ChAQ\n"
-"vvXxgx+zPUnb1mUwy+X+6urTHe4bxN2ypg6ROIUmT+Hx1ITG40LRRiPTAoGBAOcT\n"
-"WR8DTrj42xbxAUpz9vxJ15ZMwuIpk3ShE6+CWqvaXHF22Ju4WFwRNlW2zVLH6UMt\n"
-"nNfOzyDoryoiu0+0mg0wSmgdJbtCSHoI2GeiAnjGn5i8flQlPQ8bdwwmU6g6I/EU\n"
-"QRbGK/2XLmlrGN52gVy9UX0NsAA5fEOsAJiFj1CdAoGBAN9i3nbq6O2bNVSa/8mL\n"
-"XaD1vGe/oQgh8gaIaYSpuXlfbjCAG+C4BZ81XgJkfj3CbfGbDNqimsqI0fKsAJ/F\n"
-"HHpVMgrOn3L+Np2bW5YMj0Fzwy+1SCvsQ8C+gJwjOLMV6syGp/+6udMSB55rRv3k\n"
-"rPnIf+YDumUke4tTw9wAcgkPAoGASHMkiji7QfuklbjSsslRMyDj21gN8mMevH6U\n"
-"cX7pduBsA5dDqu9NpPAwnQdHsSDE3i868d8BykuqQAfLut3hPylY6vPYlLHfj4Oe\n"
-"dj+xjrSX7YeMBE34qvfth32s1R4FjtzO25keyc/Q2XSew4FcZftlxVO5Txi3AXC4\n"
-"bxnRKXECgYEAva+og7/rK+ZjboJVNxhFrwHp9bXhz4tzrUaWNvJD2vKJ5ZcThHcX\n"
-"zCig8W7eXHLPLDhi9aWZ3kUZ1RLhrFc/6dujtVtU9z2w1tmn1I+4Zi6D6L4DzKdg\n"
-"nMRLFoXufs/qoaJTqa8sQvKa+ceJAF04+gGtw617cuaZdZ3SYRLR2dk=\n"
-"-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEpQIBAAKCAQEA2d3Qs4fYDkzojm9nbaz7vdX2GIAv3stAAmI0MWq7uxWcJ7lz\n"
+ "4UCvSh7CFWESMqOPcIymXXZB3rdrG6RQAHhE2YfFFFi0W/5rqcmkiTMnGmAjYy2Q\n"
+ "lCU87b18SQgjX27YLygvlbtZrveCgT2rbJYL57Gph+wIi+cJsEUanR/2fd12hL7k\n"
+ "RumZNEofamTHQm6Bn47ZhhCdVfs+QkfiMh+LHJM3fFiVusAUhMIJYhml53O+cSrR\n"
+ "VgWVdp4za/FdUzmDnSxG4heMHblRMS+UyqtssDZEaVHytiNQXFkuQ/U3v0E+2knR\n"
+ "NPKy+s7ZmSISC0qzDn6C5yeJc17Kc91y5RLoZwIDAQABAoIBAQCRXAu5HPOsZufq\n"
+ "0K2DYZz9BdqSckR+M8HbVUZZiksDAeIUJwoHyi6qF2eK+B86JiK4Bz+gsBw2ys3t\n"
+ "vW2bQqM9N/boIl8D2fZfbCgZWkXGtUonC+mgzk+el4Rq/cEMFVqr6/YDwuKNeJpc\n"
+ "PJc5dcsvpTvlcjgpj9bJAvJEz2SYiIUpvtG4WNMGGapVZZPDvWn4/isY+75T5oDf\n"
+ "1X5jG0lN9uoUjcuGuThN7gxjwlRkcvEOPHjXc6rxfrWIDdiz/91V46PwpqVDpRrg\n"
+ "ig6U7+ckS0Oy2v32x0DaDhwAfDJ2RNc9az6Z+11lmY3LPkjG/p8Klcmgvt4/lwkD\n"
+ "OYRC5QGRAoGBAPFdud6nmVt9h1DL0o4R6snm6P3K81Ds765VWVmpzJkK3+bwe4PQ\n"
+ "GQQ0I0zN4hXkDMwHETS+EVWllqkK/d4dsE3volYtyTti8zthIATlgSEJ81x/ChAQ\n"
+ "vvXxgx+zPUnb1mUwy+X+6urTHe4bxN2ypg6ROIUmT+Hx1ITG40LRRiPTAoGBAOcT\n"
+ "WR8DTrj42xbxAUpz9vxJ15ZMwuIpk3ShE6+CWqvaXHF22Ju4WFwRNlW2zVLH6UMt\n"
+ "nNfOzyDoryoiu0+0mg0wSmgdJbtCSHoI2GeiAnjGn5i8flQlPQ8bdwwmU6g6I/EU\n"
+ "QRbGK/2XLmlrGN52gVy9UX0NsAA5fEOsAJiFj1CdAoGBAN9i3nbq6O2bNVSa/8mL\n"
+ "XaD1vGe/oQgh8gaIaYSpuXlfbjCAG+C4BZ81XgJkfj3CbfGbDNqimsqI0fKsAJ/F\n"
+ "HHpVMgrOn3L+Np2bW5YMj0Fzwy+1SCvsQ8C+gJwjOLMV6syGp/+6udMSB55rRv3k\n"
+ "rPnIf+YDumUke4tTw9wAcgkPAoGASHMkiji7QfuklbjSsslRMyDj21gN8mMevH6U\n"
+ "cX7pduBsA5dDqu9NpPAwnQdHsSDE3i868d8BykuqQAfLut3hPylY6vPYlLHfj4Oe\n"
+ "dj+xjrSX7YeMBE34qvfth32s1R4FjtzO25keyc/Q2XSew4FcZftlxVO5Txi3AXC4\n"
+ "bxnRKXECgYEAva+og7/rK+ZjboJVNxhFrwHp9bXhz4tzrUaWNvJD2vKJ5ZcThHcX\n"
+ "zCig8W7eXHLPLDhi9aWZ3kUZ1RLhrFc/6dujtVtU9z2w1tmn1I+4Zi6D6L4DzKdg\n"
+ "nMRLFoXufs/qoaJTqa8sQvKa+ceJAF04+gGtw617cuaZdZ3SYRLR2dk=\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
static const
-gnutls_datum_t hrnd = {(void*)"\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32};
+gnutls_datum_t hrnd = { (void *)
+ "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32
+};
+
static const
-gnutls_datum_t hsrnd = {(void*)"\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32};
+gnutls_datum_t hsrnd = { (void *)
+ "\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32
+};
-static void dump(const char *name, const uint8_t *data, unsigned data_size)
+static void dump(const char *name, const uint8_t * data, unsigned data_size)
{
unsigned i;
fprintf(stderr, "%s", name);
- for (i=0;i<data_size;i++)
+ for (i = 0; i < data_size; i++)
fprintf(stderr, "\\x%.2x", (unsigned)data[i]);
fprintf(stderr, "\n");
}
-static gnutls_datum_t master =
- { (void*)"\x44\x66\x44\xa9\xb6\x29\xed\x6e\xd6\x93\x15\xdb\xf0\x7d\x4b\x2e\x18\xb1\x9d\xed\xff\x6a\x86\x76\xc9\x0e\x16\xab\xc2\x10\xbb\x17\x99\x24\xb1\xd9\xb9\x95\xe7\xea\xea\xea\xea\xea\xff\xaa\xac", 48};
-static gnutls_datum_t sess_id =
- { (void*)"\xd9\xb9\x95\xe7\xea", 5};
+static gnutls_datum_t master = { (void *)
+ "\x44\x66\x44\xa9\xb6\x29\xed\x6e\xd6\x93\x15\xdb\xf0\x7d\x4b\x2e\x18\xb1\x9d\xed\xff\x6a\x86\x76\xc9\x0e\x16\xab\xc2\x10\xbb\x17\x99\x24\xb1\xd9\xb9\x95\xe7\xea\xea\xea\xea\xea\xff\xaa\xac",
+ 48
+};
+static gnutls_datum_t sess_id = { (void *)"\xd9\xb9\x95\xe7\xea", 5 };
-#define TRY(label_size, label, extra_size, extra, size, exp) \
+# define TRY(label_size, label, extra_size, extra, size, exp) \
{ \
ret = gnutls_prf_rfc5705(session, label_size, label, extra_size, extra, size, \
(void*)key_material); \
@@ -179,7 +186,7 @@ static gnutls_datum_t sess_id =
} \
}
-#define TRY_OLD(label_size, label, extra_size, extra, size, exp) \
+# define TRY_OLD(label_size, label, extra_size, extra, size, exp) \
{ \
ret = gnutls_prf(session, label_size, label, 1, extra_size, extra, size, \
(void*)key_material); \
@@ -201,17 +208,23 @@ static void check_prfs(gnutls_session_t session)
unsigned char key_material2[512];
int ret;
- TRY(13, "key expansion", 0, NULL, 34, (uint8_t*)"\xcf\x3e\x1c\x03\x47\x1a\xdf\x4a\x8e\x74\xc6\xda\xcd\xda\x22\xa4\x8e\xa5\xf7\x62\xef\xd6\x47\xe7\x41\x20\xea\x44\xb8\x5d\x66\x87\x0a\x61");
- TRY(6, "hello", 0, NULL, 31, (uint8_t*)"\x83\x6c\xc7\x8e\x1b\x62\xc7\x06\x17\x99\x37\x95\x2e\xb8\x42\x5c\x42\xcd\x75\x65\x2c\xa3\x16\x2b\xab\x0a\xcf\xfc\xc8\x90\x30");
- TRY(7, "context", 5, "abcd\xfa", 31, (uint8_t*)"\x5b\xc7\x72\xe9\xda\xe4\x79\x3e\xfe\x9a\xc5\x6f\xf4\x8d\x5a\xfe\x4c\x8d\x16\xa7\xf0\x13\x13\xf1\x93\xdd\x4b\x43\x65\xc1\x94");
- TRY(12, "null-context", 0, "", 31, (uint8_t*)"\xd7\xb6\xff\x3d\xf7\xbe\x0e\xf2\xd0\xbf\x55\x0b\x56\xac\xfb\x3c\x1d\x5c\xaa\xa8\x71\x45\xf5\xd5\x71\x35\xa2\x35\x83\xc2\xe0");
+ TRY(13, "key expansion", 0, NULL, 34, (uint8_t *)
+ "\xcf\x3e\x1c\x03\x47\x1a\xdf\x4a\x8e\x74\xc6\xda\xcd\xda\x22\xa4\x8e\xa5\xf7\x62\xef\xd6\x47\xe7\x41\x20\xea\x44\xb8\x5d\x66\x87\x0a\x61");
+ TRY(6, "hello", 0, NULL, 31, (uint8_t *)
+ "\x83\x6c\xc7\x8e\x1b\x62\xc7\x06\x17\x99\x37\x95\x2e\xb8\x42\x5c\x42\xcd\x75\x65\x2c\xa3\x16\x2b\xab\x0a\xcf\xfc\xc8\x90\x30");
+ TRY(7, "context", 5, "abcd\xfa", 31, (uint8_t *)
+ "\x5b\xc7\x72\xe9\xda\xe4\x79\x3e\xfe\x9a\xc5\x6f\xf4\x8d\x5a\xfe\x4c\x8d\x16\xa7\xf0\x13\x13\xf1\x93\xdd\x4b\x43\x65\xc1\x94");
+ TRY(12, "null-context", 0, "", 31, (uint8_t *)
+ "\xd7\xb6\xff\x3d\xf7\xbe\x0e\xf2\xd0\xbf\x55\x0b\x56\xac\xfb\x3c\x1d\x5c\xaa\xa8\x71\x45\xf5\xd5\x71\x35\xa2\x35\x83\xc2\xe0");
- TRY_OLD(6, "hello", 0, NULL, 31, (uint8_t*)"\x53\x35\x9b\x1c\xbf\xf2\x50\x85\xa1\xbc\x42\xfb\x45\x92\xc3\xbe\x20\x24\x24\xe2\xeb\x6e\xf7\x4f\xc0\xee\xe3\xaa\x46\x36\xfd");
- TRY_OLD(7, "context", 5, "abcd\xfa", 31, (uint8_t*)"\x5f\x75\xb7\x61\x76\x4c\x1e\x86\x4b\x7d\x2e\x6c\x09\x91\xfd\x1e\xe6\xe8\xee\xf9\x86\x6a\x80\xfe\xf3\xbe\x96\xd0\x47\xf5\x9e");
+ TRY_OLD(6, "hello", 0, NULL, 31, (uint8_t *)
+ "\x53\x35\x9b\x1c\xbf\xf2\x50\x85\xa1\xbc\x42\xfb\x45\x92\xc3\xbe\x20\x24\x24\xe2\xeb\x6e\xf7\x4f\xc0\xee\xe3\xaa\x46\x36\xfd");
+ TRY_OLD(7, "context", 5, "abcd\xfa", 31, (uint8_t *)
+ "\x5f\x75\xb7\x61\x76\x4c\x1e\x86\x4b\x7d\x2e\x6c\x09\x91\xfd\x1e\xe6\xe8\xee\xf9\x86\x6a\x80\xfe\xf3\xbe\x96\xd0\x47\xf5\x9e");
/* check whether gnutls_prf matches gnutls_prf_rfc5705 when no context is given */
ret = gnutls_prf(session, 4, "aaaa", 0, 0, NULL, 64,
- (void*)key_material);
+ (void *)key_material);
if (ret < 0) {
fprintf(stderr, "gnutls_prf: error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -219,7 +232,7 @@ static void check_prfs(gnutls_session_t session)
}
ret = gnutls_prf_rfc5705(session, 4, "aaaa", 0, NULL, 64,
- (void*)key_material2);
+ (void *)key_material2);
if (ret < 0) {
fprintf(stderr, "gnutls_prf_rfc5705: error in %d\n", __LINE__);
gnutls_perror(ret);
@@ -227,7 +240,8 @@ static void check_prfs(gnutls_session_t session)
}
if (memcmp(key_material, key_material2, 64) != 0) {
- fprintf(stderr, "gnutls_prf: output doesn't match in cross-check\n");
+ fprintf(stderr,
+ "gnutls_prf: output doesn't match in cross-check\n");
dump("got1 ", key_material, 64);
dump("got2 ", key_material2, 64);
exit(1);
@@ -256,18 +270,20 @@ static void client(int fd)
gnutls_init(&session, GNUTLS_CLIENT);
ret = gnutls_session_set_premaster(session, GNUTLS_CLIENT,
- GNUTLS_TLS1_0, GNUTLS_KX_RSA,
- GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA1,
- GNUTLS_COMP_NULL, &master, &sess_id);
+ GNUTLS_TLS1_0, GNUTLS_KX_RSA,
+ GNUTLS_CIPHER_AES_128_CBC,
+ GNUTLS_MAC_SHA1, GNUTLS_COMP_NULL,
+ &master, &sess_id);
if (ret < 0) {
- fail("client: gnutls_session_set_premaster failed: %s\n", gnutls_strerror(ret));
+ fail("client: gnutls_session_set_premaster failed: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
/* Use default priorities */
ret = gnutls_priority_set_direct(session,
- "NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA",
- &err);
+ "NONE:+VERS-TLS1.0:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+RSA",
+ &err);
if (ret < 0) {
fail("client: priority set failed (%s): %s\n",
gnutls_strerror(ret), err);
@@ -275,17 +291,18 @@ static void client(int fd)
}
ret = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
gnutls_handshake_set_random(session, &hrnd);
gnutls_transport_set_int(session, fd);
- if (gnutls_prf(session, 4, "aaaa", 0, 0, NULL, sizeof(err), (char *)&err) !=
- GNUTLS_E_INVALID_REQUEST ||
- gnutls_prf_rfc5705(session, 4, "aaaa", 0, NULL, sizeof(err), (char *)&err) !=
- GNUTLS_E_INVALID_REQUEST) {
+ if (gnutls_prf
+ (session, 4, "aaaa", 0, 0, NULL, sizeof(err),
+ (char *)&err) != GNUTLS_E_INVALID_REQUEST
+ || gnutls_prf_rfc5705(session, 4, "aaaa", 0, NULL, sizeof(err),
+ (char *)&err) != GNUTLS_E_INVALID_REQUEST) {
fprintf(stderr, "unexpected prf error code\n");
exit(1);
}
@@ -312,19 +329,22 @@ static void client(int fd)
ret = gnutls_cipher_get(session);
if (ret != GNUTLS_CIPHER_AES_128_CBC) {
- fprintf(stderr, "negotiated unexpected cipher: %s\n", gnutls_cipher_get_name(ret));
+ fprintf(stderr, "negotiated unexpected cipher: %s\n",
+ gnutls_cipher_get_name(ret));
exit(1);
}
ret = gnutls_mac_get(session);
if (ret != GNUTLS_MAC_SHA1) {
- fprintf(stderr, "negotiated unexpected mac: %s\n", gnutls_mac_get_name(ret));
+ fprintf(stderr, "negotiated unexpected mac: %s\n",
+ gnutls_mac_get_name(ret));
exit(1);
}
ret = gnutls_prf_hash_get(session);
if (ret != GNUTLS_DIG_MD5_SHA1) {
- fprintf(stderr, "negotiated unexpected hash: %s\n", gnutls_digest_get_name(ret));
+ fprintf(stderr, "negotiated unexpected hash: %s\n",
+ gnutls_digest_get_name(ret));
exit(1);
}
@@ -375,7 +395,8 @@ static void server(int fd)
* are adequate.
*/
ret = gnutls_priority_set_direct(session,
- "NORMAL:-KX-ALL:+RSA:%NO_SESSION_HASH", NULL);
+ "NORMAL:-KX-ALL:+RSA:%NO_SESSION_HASH",
+ NULL);
if (ret < 0) {
fail("server: priority set failed (%s)\n\n",
gnutls_strerror(ret));
@@ -383,19 +404,20 @@ static void server(int fd)
}
ret = gnutls_session_set_premaster(session, GNUTLS_SERVER,
- GNUTLS_TLS1_0, GNUTLS_KX_RSA,
- GNUTLS_CIPHER_AES_128_CBC, GNUTLS_MAC_SHA1,
- GNUTLS_COMP_NULL, &master, &sess_id);
+ GNUTLS_TLS1_0, GNUTLS_KX_RSA,
+ GNUTLS_CIPHER_AES_128_CBC,
+ GNUTLS_MAC_SHA1, GNUTLS_COMP_NULL,
+ &master, &sess_id);
if (ret < 0) {
- fail("server: gnutls_session_set_premaster failed: %s\n", gnutls_strerror(ret));
+ fail("server: gnutls_session_set_premaster failed: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
gnutls_certificate_set_x509_key_mem(serverx509cred,
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_handshake_set_random(session, &hsrnd);
gnutls_transport_set_int(session, fd);
diff --git a/tests/priorities-groups.c b/tests/priorities-groups.c
index 4f43385397..a4fe228748 100644
--- a/tests/priorities-groups.c
+++ b/tests/priorities-groups.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -42,30 +42,33 @@ try_prio(const char *prio, unsigned group_size, const unsigned int *group_list,
ret = gnutls_priority_init(&p, prio, &err);
if (ret < 0) {
- fprintf(stderr, "error: %s: %s\n", gnutls_strerror(ret),
- err);
+ fprintf(stderr, "error: %s: %s\n", gnutls_strerror(ret), err);
exit(1);
}
ret = gnutls_priority_group_list(p, &list);
if ((unsigned)ret != group_size) {
- fail("%s: group size (%d) doesn't match expected (%d)\n", prio, ret, group_size);
+ fail("%s: group size (%d) doesn't match expected (%d)\n", prio,
+ ret, group_size);
}
- for (i=0;i<group_size;i++) {
+ for (i = 0; i < group_size; i++) {
if (group_list[i] != list[i]) {
- fail("%s: group listing %d differs to expected\n", prio, i);
+ fail("%s: group listing %d differs to expected\n", prio,
+ i);
}
}
ret = gnutls_priority_ecc_curve_list(p, &list);
if ((unsigned)ret != curve_size) {
- fail("%s: EC curve size (%d) doesn't match expected (%d)\n", prio, ret, curve_size);
+ fail("%s: EC curve size (%d) doesn't match expected (%d)\n",
+ prio, ret, curve_size);
}
- for (i=0;i<curve_size;i++) {
+ for (i = 0; i < curve_size; i++) {
if (curve_list[i] != list[i]) {
- fail("%s: curve listing %d differs to expected\n", prio, i);
+ fail("%s: curve listing %d differs to expected\n", prio,
+ i);
}
}
@@ -77,7 +80,6 @@ try_prio(const char *prio, unsigned group_size, const unsigned int *group_list,
success("finished: %s\n", prio);
}
-
void doit(void)
{
unsigned int list1[16];
@@ -99,7 +101,9 @@ void doit(void)
list1[2] = GNUTLS_GROUP_FFDHE2048;
list2[0] = GNUTLS_ECC_CURVE_SECP256R1;
list2[1] = GNUTLS_ECC_CURVE_SECP384R1;
- try_prio("NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048", 3, list1, 2, list2);
+ try_prio
+ ("NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048",
+ 3, list1, 2, list2);
memset(list1, 0, sizeof(list1));
memset(list2, 0, sizeof(list2));
@@ -109,6 +113,7 @@ void doit(void)
list1[3] = GNUTLS_GROUP_FFDHE3072;
list2[0] = GNUTLS_ECC_CURVE_SECP521R1;
list2[1] = GNUTLS_ECC_CURVE_SECP384R1;
- try_prio("NORMAL:-CURVE-ALL:+CURVE-SECP521R1:+GROUP-SECP384R1:+GROUP-FFDHE2048:+GROUP-FFDHE3072", 4, list1, 2, list2);
+ try_prio
+ ("NORMAL:-CURVE-ALL:+CURVE-SECP521R1:+GROUP-SECP384R1:+GROUP-FFDHE2048:+GROUP-FFDHE3072",
+ 4, list1, 2, list2);
}
-
diff --git a/tests/priorities.c b/tests/priorities.c
index c06698e68e..45d187e542 100644
--- a/tests/priorities.c
+++ b/tests/priorities.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -32,7 +32,8 @@
#include "utils.h"
static void
-try_prio(const char *prio, unsigned expected_cs, unsigned expected_ciphers, unsigned line)
+try_prio(const char *prio, unsigned expected_cs, unsigned expected_ciphers,
+ unsigned line)
{
int ret;
gnutls_priority_t p;
@@ -46,8 +47,7 @@ try_prio(const char *prio, unsigned expected_cs, unsigned expected_ciphers, unsi
ret = gnutls_priority_init(&p, prio, &err);
if (ret < 0) {
- fprintf(stderr, "error: %s: %s\n", gnutls_strerror(ret),
- err);
+ fprintf(stderr, "error: %s: %s\n", gnutls_strerror(ret), err);
exit(1);
}
@@ -65,14 +65,13 @@ try_prio(const char *prio, unsigned expected_cs, unsigned expected_ciphers, unsi
}
ret = gnutls_priority_cipher_list(p, &t);
- if ((unsigned) ret != expected_ciphers) {
+ if ((unsigned)ret != expected_ciphers) {
#if 0
for (i = 0; i < ret; i++)
- fprintf(stderr, "%s\n",
- gnutls_cipher_get_name(t[i]));
+ fprintf(stderr, "%s\n", gnutls_cipher_get_name(t[i]));
#endif
- fail("%s:%d: expected %d ciphers, found %d\n", prio, line, expected_ciphers,
- ret);
+ fail("%s:%d: expected %d ciphers, found %d\n", prio, line,
+ expected_ciphers, ret);
exit(1);
}
@@ -84,14 +83,13 @@ try_prio(const char *prio, unsigned expected_cs, unsigned expected_ciphers, unsi
success("finished: %s\n", prio);
if (count != expected_cs) {
- fail("%s:%d: expected %d ciphersuites, found %d\n", prio, line, expected_cs,
- count);
+ fail("%s:%d: expected %d ciphersuites, found %d\n", prio, line,
+ expected_cs, count);
exit(1);
}
}
-static void
-try_prio_err(const char *prio, int err)
+static void try_prio_err(const char *prio, int err)
{
int ret;
gnutls_priority_t p;
@@ -109,7 +107,6 @@ try_prio_err(const char *prio, int err)
success("finished: %s\n", prio);
}
-
void doit(void)
{
const int null = 3;
@@ -117,7 +114,7 @@ void doit(void)
int sec256_cs = 12;
int normal_cs = 29;
int pfs_cs = 23;
- int null_normal_cs = 28; /* disables TLS1.3 CS */
+ int null_normal_cs = 28; /* disables TLS1.3 CS */
int normal_ciphers = 7;
if (gnutls_fips140_mode_enabled()) {
@@ -129,7 +126,8 @@ void doit(void)
}
try_prio("NORMAL", normal_cs, normal_ciphers, __LINE__);
- try_prio("NORMAL:-MAC-ALL:+MD5:+MAC-ALL", normal_cs, normal_ciphers, __LINE__);
+ try_prio("NORMAL:-MAC-ALL:+MD5:+MAC-ALL", normal_cs, normal_ciphers,
+ __LINE__);
if (!gnutls_fips140_mode_enabled()) {
try_prio("PFS", pfs_cs, normal_ciphers, __LINE__);
@@ -150,9 +148,14 @@ void doit(void)
try_prio("SUITEB192", 1, 1, __LINE__);
try_prio("SUITEB128", 2, 2, __LINE__);
/* check legacy strings */
- try_prio("NORMAL:+RSA-EXPORT:+ARCFOUR-40", normal_cs, normal_ciphers, __LINE__);
-
- try_prio_err("NORMAL:-VERS-ALL:+VERS-TLS1.2:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256", GNUTLS_E_NO_PRIORITIES_WERE_SET);
- try_prio_err("NORMAL:-VERS-ALL:+VERS-TLS1.2:-SIGN-ALL", GNUTLS_E_NO_PRIORITIES_WERE_SET);
- try_prio_err("NORMAL:-VERS-ALL:+VERS-DTLS1.2:-SIGN-ALL", GNUTLS_E_NO_PRIORITIES_WERE_SET);
+ try_prio("NORMAL:+RSA-EXPORT:+ARCFOUR-40", normal_cs, normal_ciphers,
+ __LINE__);
+
+ try_prio_err
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.2:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256",
+ GNUTLS_E_NO_PRIORITIES_WERE_SET);
+ try_prio_err("NORMAL:-VERS-ALL:+VERS-TLS1.2:-SIGN-ALL",
+ GNUTLS_E_NO_PRIORITIES_WERE_SET);
+ try_prio_err("NORMAL:-VERS-ALL:+VERS-DTLS1.2:-SIGN-ALL",
+ GNUTLS_E_NO_PRIORITIES_WERE_SET);
}
diff --git a/tests/priority-init2.c b/tests/priority-init2.c
index 25919f16ad..3165fa0ad0 100644
--- a/tests/priority-init2.c
+++ b/tests/priority-init2.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -82,32 +82,35 @@ static void start(struct test_st *test)
if (debug)
gnutls_global_set_log_level(6);
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
if (test == NULL) {
ret = gnutls_priority_init(&cache, NULL, NULL);
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
} else {
- ret = gnutls_priority_init2(&cache, test->add_prio, &ep, GNUTLS_PRIORITY_INIT_DEF_APPEND);
+ ret =
+ gnutls_priority_init2(&cache, test->add_prio, &ep,
+ GNUTLS_PRIORITY_INIT_DEF_APPEND);
if (ret < 0) {
if (test->exp_err == ret) {
- if (strchr(_gnutls_default_priority_string, '@') != 0) {
+ if (strchr(_gnutls_default_priority_string, '@')
+ != 0) {
if (ep != test->add_prio) {
- fail("error expected error on start of string[%d]: %s\n",
- test->err_pos, test->add_prio);
+ fail("error expected error on start of string[%d]: %s\n", test->err_pos, test->add_prio);
}
} else {
- if (ep-test->add_prio != test->err_pos) {
- fprintf(stderr, "diff: %d\n", (int)(ep-test->add_prio));
- fail("error expected error on different position[%d]: %s\n",
- test->err_pos, test->add_prio);
+ if (ep - test->add_prio !=
+ test->err_pos) {
+ fprintf(stderr, "diff: %d\n",
+ (int)(ep -
+ test->add_prio));
+ fail("error expected error on different position[%d]: %s\n", test->err_pos, test->add_prio);
}
}
goto cleanup;
@@ -126,7 +129,9 @@ static void start(struct test_st *test)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -135,7 +140,7 @@ static void start(struct test_st *test)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -164,7 +169,8 @@ static void start(struct test_st *test)
if (test->exp_vers != gnutls_protocol_get_version(server)) {
fail("expected version %s, got %s\n",
gnutls_protocol_get_name(test->exp_vers),
- gnutls_protocol_get_name(gnutls_protocol_get_version(server)));
+ gnutls_protocol_get_name
+ (gnutls_protocol_get_version(server)));
}
}
@@ -177,20 +183,22 @@ static void start(struct test_st *test)
memset(data, 0, sizeof(data));
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"localhost1";
+ data[0].data = (void *)"localhost1";
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
gnutls_certificate_get_peers(client, &cert_list_size);
if (cert_list_size < 2) {
- fprintf(stderr, "received a certificate list of %d!\n", cert_list_size);
+ fprintf(stderr, "received a certificate list of %d!\n",
+ cert_list_size);
exit(1);
}
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fprintf(stderr, "could not verify certificate: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -200,16 +208,18 @@ static void start(struct test_st *test)
}
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"localhost";
+ data[0].data = (void *)"localhost";
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fprintf(stderr, "could not verify certificate: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
if (status != 0) {
- fprintf(stderr, "could not verify certificate: %.4x\n", status);
+ fprintf(stderr, "could not verify certificate: %.4x\n",
+ status);
exit(1);
}
}
@@ -217,13 +227,17 @@ static void start(struct test_st *test)
if (test && test->exp_etm) {
ret = gnutls_session_ext_master_secret_status(client);
if (ret != 1) {
- fprintf(stderr, "Extended master secret wasn't negotiated by default (client ret: %d)\n", ret);
+ fprintf(stderr,
+ "Extended master secret wasn't negotiated by default (client ret: %d)\n",
+ ret);
exit(1);
}
ret = gnutls_session_ext_master_secret_status(server);
if (ret != 1) {
- fprintf(stderr, "Extended master secret wasn't negotiated by default (server ret: %d)\n", ret);
+ fprintf(stderr,
+ "Extended master secret wasn't negotiated by default (server ret: %d)\n",
+ ret);
exit(1);
}
}
@@ -245,54 +259,47 @@ static void start(struct test_st *test)
struct test_st tests[] = {
{
- .name = "additional flag",
- .def_prio = "NORMAL",
- .add_prio = "%FORCE_ETM",
- .exp_err = 0
- },
+ .name = "additional flag",
+ .def_prio = "NORMAL",
+ .add_prio = "%FORCE_ETM",
+ .exp_err = 0},
{
- .name = "additional flag typo1",
- .def_prio = "NORMAL",
- .add_prio = ":%FORCE_ETM",
- .exp_err = GNUTLS_E_INVALID_REQUEST,
- .err_pos = 0
- },
+ .name = "additional flag typo1",
+ .def_prio = "NORMAL",
+ .add_prio = ":%FORCE_ETM",
+ .exp_err = GNUTLS_E_INVALID_REQUEST,
+ .err_pos = 0},
{
- .name = "additional flag typo2",
- .def_prio = "NORMAL",
- .add_prio = "%FORCE_ETM::%NO_TICKETS",
- .exp_err = GNUTLS_E_INVALID_REQUEST,
- .err_pos = 11
- },
+ .name = "additional flag typo2",
+ .def_prio = "NORMAL",
+ .add_prio = "%FORCE_ETM::%NO_TICKETS",
+ .exp_err = GNUTLS_E_INVALID_REQUEST,
+ .err_pos = 11},
{
- .name = "additional flag typo3",
- .def_prio = "NORMAL",
- .add_prio = "%FORCE_ETM:%%NO_TICKETS",
- .exp_err = GNUTLS_E_INVALID_REQUEST,
- .err_pos = 11
- },
+ .name = "additional flag typo3",
+ .def_prio = "NORMAL",
+ .add_prio = "%FORCE_ETM:%%NO_TICKETS",
+ .exp_err = GNUTLS_E_INVALID_REQUEST,
+ .err_pos = 11},
{
- .name = "additional flag typo3 (with resolved def prio)",
- .def_prio = "@HELLO",
- .add_prio = "%FORCE_ETM:%%NO_TICKETS",
- .exp_err = GNUTLS_E_INVALID_REQUEST,
- .err_pos = 0
- },
+ .name = "additional flag typo3 (with resolved def prio)",
+ .def_prio = "@HELLO",
+ .add_prio = "%FORCE_ETM:%%NO_TICKETS",
+ .exp_err = GNUTLS_E_INVALID_REQUEST,
+ .err_pos = 0},
{
- .name = "additional flag for version (functional)",
- .def_prio = "NORMAL",
- .add_prio = "-VERS-ALL:+VERS-TLS1.1",
- .exp_etm = 1,
- .exp_err = 0,
- .exp_vers = GNUTLS_TLS1_1
- }
+ .name = "additional flag for version (functional)",
+ .def_prio = "NORMAL",
+ .add_prio = "-VERS-ALL:+VERS-TLS1.1",
+ .exp_etm = 1,
+ .exp_err = 0,
+ .exp_vers = GNUTLS_TLS1_1}
};
-
void doit(void)
{
start(NULL);
- for (unsigned i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (unsigned i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
start(&tests[i]);
}
}
diff --git a/tests/priority-mix.c b/tests/priority-mix.c
index 2db80d2305..45181e18a7 100644
--- a/tests/priority-mix.c
+++ b/tests/priority-mix.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -81,14 +81,9 @@ void doit(void)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server,
- "SECURE256",
- NULL) >= 0);
- assert(gnutls_priority_set_direct(server,
- "NORMAL",
- NULL) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, "SECURE256", NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, "NORMAL", NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -98,7 +93,9 @@ void doit(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -107,16 +104,13 @@ void doit(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
assert(gnutls_priority_set_direct(client,
- "PFS:%PROFILE_ULTRA",
- NULL) >= 0);
- assert(gnutls_priority_set_direct(client,
- "NORMAL",
- NULL) >= 0);
+ "PFS:%PROFILE_ULTRA", NULL) >= 0);
+ assert(gnutls_priority_set_direct(client, "NORMAL", NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
@@ -138,9 +132,12 @@ void doit(void)
{
unsigned status;
- ret = gnutls_certificate_verify_peers3(client, "localhost", &status);
+ ret =
+ gnutls_certificate_verify_peers3(client, "localhost",
+ &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
diff --git a/tests/priority-set.c b/tests/priority-set.c
index dcb21d8694..81825628cf 100644
--- a/tests/priority-set.c
+++ b/tests/priority-set.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -85,8 +85,7 @@ void doit(void)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set(server, cache);
gnutls_priority_deinit(cache);
gnutls_transport_set_push_function(server, server_push);
@@ -98,7 +97,9 @@ void doit(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -107,11 +108,11 @@ void doit(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- assert(gnutls_priority_set_direct(client, "NORMAL", NULL)>=0);
+ assert(gnutls_priority_set_direct(client, "NORMAL", NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
diff --git a/tests/priority-set2.c b/tests/priority-set2.c
index df99e17794..c4c7ca63f9 100644
--- a/tests/priority-set2.c
+++ b/tests/priority-set2.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -85,8 +85,7 @@ void doit(void)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set(server, cache);
gnutls_transport_set_push_function(server, server_push);
@@ -98,7 +97,9 @@ void doit(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -107,7 +108,7 @@ void doit(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
diff --git a/tests/privkey-keygen.c b/tests/privkey-keygen.c
index 2531906d71..f7e6319479 100644
--- a/tests/privkey-keygen.c
+++ b/tests/privkey-keygen.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -42,9 +42,9 @@
static int sec_param[MAX_TRIES] =
#ifdef ENABLE_FIPS140
- { GNUTLS_SEC_PARAM_MEDIUM, GNUTLS_SEC_PARAM_HIGH };
+{ GNUTLS_SEC_PARAM_MEDIUM, GNUTLS_SEC_PARAM_HIGH };
#else
- { GNUTLS_SEC_PARAM_LOW, GNUTLS_SEC_PARAM_MEDIUM };
+{ GNUTLS_SEC_PARAM_LOW, GNUTLS_SEC_PARAM_MEDIUM };
#endif
static void tls_log_func(int level, const char *str)
@@ -53,11 +53,12 @@ static void tls_log_func(int level, const char *str)
}
const gnutls_datum_t raw_data = {
- (void *) "hello there",
+ (void *)"hello there",
11
};
-static void sign_verify_data(gnutls_pk_algorithm_t algorithm, gnutls_x509_privkey_t pkey)
+static void sign_verify_data(gnutls_pk_algorithm_t algorithm,
+ gnutls_x509_privkey_t pkey)
{
int ret;
gnutls_privkey_t privkey;
@@ -78,7 +79,7 @@ static void sign_verify_data(gnutls_pk_algorithm_t algorithm, gnutls_x509_privke
if (ret < 0)
fail("gnutls_pubkey_import_privkey\n");
- ret = gnutls_pubkey_get_preferred_hash_algorithm (pubkey, &digest, NULL);
+ ret = gnutls_pubkey_get_preferred_hash_algorithm(pubkey, &digest, NULL);
if (ret < 0)
fail("gnutls_pubkey_get_preferred_hash_algorithm\n");
@@ -87,13 +88,17 @@ static void sign_verify_data(gnutls_pk_algorithm_t algorithm, gnutls_x509_privke
/* sign arbitrary data */
ret = gnutls_privkey_sign_data(privkey, digest, 0,
- &raw_data, &signature);
+ &raw_data, &signature);
if (ret < 0)
fail("gnutls_privkey_sign_data\n");
/* verify data */
- ret = gnutls_pubkey_verify_data2(pubkey, gnutls_pk_to_sign(gnutls_pubkey_get_pk_algorithm(pubkey, NULL),digest),
- vflags, &raw_data, &signature);
+ ret =
+ gnutls_pubkey_verify_data2(pubkey,
+ gnutls_pk_to_sign
+ (gnutls_pubkey_get_pk_algorithm
+ (pubkey, NULL), digest), vflags,
+ &raw_data, &signature);
if (ret < 0)
fail("gnutls_pubkey_verify_data2\n");
@@ -102,8 +107,8 @@ static void sign_verify_data(gnutls_pk_algorithm_t algorithm, gnutls_x509_privke
gnutls_free(signature.data);
}
-static unsigned int
-is_approved_pk_algo(gnutls_pk_algorithm_t algo) {
+static unsigned int is_approved_pk_algo(gnutls_pk_algorithm_t algo)
+{
switch (algo) {
case GNUTLS_PK_RSA:
case GNUTLS_PK_RSA_PSS:
@@ -158,14 +163,12 @@ void doit(void)
ret = gnutls_x509_privkey_init(&pkey);
if (ret < 0) {
- fail("gnutls_x509_privkey_init: %d\n",
- ret);
+ fail("gnutls_x509_privkey_init: %d\n", ret);
}
ret = gnutls_x509_privkey_init(&dst);
if (ret < 0) {
- fail("gnutls_x509_privkey_init: %d\n",
- ret);
+ fail("gnutls_x509_privkey_init: %d\n", ret);
}
FIPS_PUSH_CONTEXT();
@@ -173,11 +176,9 @@ void doit(void)
gnutls_x509_privkey_generate(pkey, algorithm,
gnutls_sec_param_to_pk_bits
(algorithm,
- sec_param[i]),
- 0);
+ sec_param[i]), 0);
if (ret < 0) {
- fail("gnutls_x509_privkey_generate (%s-%d): %s (%d)\n", gnutls_pk_algorithm_get_name(algorithm),
- gnutls_sec_param_to_pk_bits(algorithm,sec_param[i]), gnutls_strerror(ret), ret);
+ fail("gnutls_x509_privkey_generate (%s-%d): %s (%d)\n", gnutls_pk_algorithm_get_name(algorithm), gnutls_sec_param_to_pk_bits(algorithm, sec_param[i]), gnutls_strerror(ret), ret);
} else if (debug) {
success("Key[%s] generation ok: %d\n",
gnutls_pk_algorithm_get_name
@@ -197,7 +198,9 @@ void doit(void)
/* include test of cpy */
ret = gnutls_x509_privkey_cpy(dst, pkey);
if (ret < 0) {
- fail("gnutls_x509_privkey_cpy (%s): %s (%d)\n", gnutls_pk_algorithm_get_name(algorithm), gnutls_strerror(ret), ret);
+ fail("gnutls_x509_privkey_cpy (%s): %s (%d)\n",
+ gnutls_pk_algorithm_get_name(algorithm),
+ gnutls_strerror(ret), ret);
}
ret = gnutls_x509_privkey_verify_params(pkey);
@@ -223,7 +226,10 @@ void doit(void)
gnutls_x509_privkey_deinit(pkey);
gnutls_x509_privkey_deinit(dst);
- success("Generated key with %s-%d\n", gnutls_pk_algorithm_get_name(algorithm), gnutls_sec_param_to_pk_bits(algorithm,sec_param[i]));
+ success("Generated key with %s-%d\n",
+ gnutls_pk_algorithm_get_name(algorithm),
+ gnutls_sec_param_to_pk_bits(algorithm,
+ sec_param[i]));
}
}
diff --git a/tests/privkey-verify-broken.c b/tests/privkey-verify-broken.c
index 0c387563db..a9f72cc254 100644
--- a/tests/privkey-verify-broken.c
+++ b/tests/privkey-verify-broken.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -40,11 +40,12 @@ static void tls_log_func(int level, const char *str)
}
const gnutls_datum_t raw_data = {
- (void *) "hello there",
+ (void *)"hello there",
11
};
-static int sign_verify_data(gnutls_x509_privkey_t pkey, gnutls_sign_algorithm_t algo, unsigned vflags)
+static int sign_verify_data(gnutls_x509_privkey_t pkey,
+ gnutls_sign_algorithm_t algo, unsigned vflags)
{
int ret;
gnutls_privkey_t privkey;
@@ -68,7 +69,7 @@ static int sign_verify_data(gnutls_x509_privkey_t pkey, gnutls_sign_algorithm_t
fail("gnutls_pubkey_import_x509\n");
ret = gnutls_privkey_sign_data(privkey, dig, sflags,
- &raw_data, &signature);
+ &raw_data, &signature);
if (ret < 0) {
ret = -1;
goto cleanup;
@@ -82,7 +83,7 @@ static int sign_verify_data(gnutls_x509_privkey_t pkey, gnutls_sign_algorithm_t
fail("gnutls_pubkey_import_privkey\n");
ret = gnutls_pubkey_verify_data2(pubkey, algo,
- vflags, &raw_data, &signature);
+ vflags, &raw_data, &signature);
if (ret < 0) {
ret = -1;
goto cleanup;
@@ -128,10 +129,13 @@ void doit(void)
fail("succeeded verification with MD5!\n");
if (!gnutls_fips140_mode_enabled()) {
- if (sign_verify_data(pkey, GNUTLS_SIGN_RSA_MD5, GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5) < 0)
+ if (sign_verify_data
+ (pkey, GNUTLS_SIGN_RSA_MD5,
+ GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5) < 0)
fail("failed verification with MD5 and override flags!\n");
- if (sign_verify_data(pkey, GNUTLS_SIGN_RSA_MD5, GNUTLS_VERIFY_ALLOW_BROKEN) < 0)
+ if (sign_verify_data
+ (pkey, GNUTLS_SIGN_RSA_MD5, GNUTLS_VERIFY_ALLOW_BROKEN) < 0)
fail("failed verification with MD5 and override flags2!\n");
}
diff --git a/tests/protocol-set-allowlist.c b/tests/protocol-set-allowlist.c
index 50afe39ef6..f75261e4f7 100644
--- a/tests/protocol-set-allowlist.c
+++ b/tests/protocol-set-allowlist.c
@@ -57,17 +57,16 @@
_fail("Assertion `" #cond "` failed: " format "\n", ##__VA_ARGS__)
#define _check(cond) if (!(cond)) _fail("Assertion `" #cond "` failed.")
-unsigned parse_port(const char* port_str);
-gnutls_protocol_t parse_protocol(const char* name);
+unsigned parse_port(const char *port_str);
+gnutls_protocol_t parse_protocol(const char *name);
void test_echo_server(gnutls_session_t session);
-void cmd_connect(const char* ca_file, unsigned port);
-void cmd_protocol_set_disabled(const char* name);
-void cmd_protocol_set_enabled(const char* name);
+void cmd_connect(const char *ca_file, unsigned port);
+void cmd_protocol_set_disabled(const char *name);
+void cmd_protocol_set_enabled(const char *name);
void cmd_reinit(void);
-const char* unprefix(const char* s, const char* prefix);
+const char *unprefix(const char *s, const char *prefix);
-
-unsigned parse_port(const char* port_str)
+unsigned parse_port(const char *port_str)
{
unsigned port;
errno = 0;
@@ -77,8 +76,7 @@ unsigned parse_port(const char* port_str)
return port;
}
-
-gnutls_protocol_t parse_protocol(const char* name)
+gnutls_protocol_t parse_protocol(const char *name)
{
gnutls_protocol_t p;
p = gnutls_protocol_get_id(name);
@@ -86,7 +84,6 @@ gnutls_protocol_t parse_protocol(const char* name)
return p;
}
-
void test_echo_server(gnutls_session_t session)
{
const char buf_out[] = "1234567\n";
@@ -96,30 +93,30 @@ void test_echo_server(gnutls_session_t session)
int r;
do {
- r = gnutls_record_send(session, buf_out + wr, LEN - wr);
+ r = gnutls_record_send(session, buf_out + wr, LEN - wr);
if (r == GNUTLS_E_AGAIN || r == GNUTLS_E_INTERRUPTED)
continue;
_assert(r > 0, "error in send: %s\n", gnutls_strerror(r));
wr += r;
- } while(r > 0 && wr < LEN);
+ } while (r > 0 && wr < LEN);
_assert(wr == LEN, "error sending all data (%u/%u)\n", wr, LEN);
do {
- r = gnutls_record_recv(session, buf_in + rd, LEN - rd);
+ r = gnutls_record_recv(session, buf_in + rd, LEN - rd);
if (r == GNUTLS_E_AGAIN || r == GNUTLS_E_INTERRUPTED)
continue;
_assert(r > 0, "error in recv: %s\n", gnutls_strerror(r));
rd += r;
- } while(r > 0 && rd < LEN);
+ } while (r > 0 && rd < LEN);
_assert(rd == LEN, "error receiving all data (%u/%u)\n", rd, LEN);
_assert(!gnutls_record_check_pending(session), "data left unreceived");
_assert(!memcmp(buf_in, buf_out, LEN), "send/recv data mismatch\n");
}
-void cmd_connect(const char* ca_file, unsigned port)
+void cmd_connect(const char *ca_file, unsigned port)
{
- char* desc;
+ char *desc;
int sock, r;
gnutls_session_t session;
gnutls_certificate_credentials_t cred;
@@ -134,19 +131,22 @@ void cmd_connect(const char* ca_file, unsigned port)
}
_check(gnutls_server_name_set(session, GNUTLS_NAME_DNS,
- "example.com", strlen("example.com")) >= 0);
+ "example.com",
+ strlen("example.com")) >= 0);
gnutls_session_set_verify_cert(session, "example.com", 0);
_check(gnutls_certificate_allocate_credentials(&cred) >= 0);
_check(gnutls_certificate_set_x509_trust_file(cred,
- ca_file, GNUTLS_X509_FMT_PEM) == 1);
- _check(gnutls_credentials_set(session,
- GNUTLS_CRD_CERTIFICATE, cred) >= 0);
+ ca_file,
+ GNUTLS_X509_FMT_PEM) ==
+ 1);
+ _check(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, cred) >=
+ 0);
sock = tcp_connect("127.0.0.1", port);
_assert(sock != -1, "Connection to 127.0.0.1:%u has failed!", port);
_assert(setsockopt(sock, IPPROTO_TCP, TCP_NODELAY,
- &sock_flags, sizeof(int)) == 0, "setsockopt failed");
+ &sock_flags, sizeof(int)) == 0, "setsockopt failed");
gnutls_transport_set_int(session, sock);
gnutls_handshake_set_timeout(session, GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
@@ -170,29 +170,26 @@ void cmd_connect(const char* ca_file, unsigned port)
gnutls_deinit(session);
}
-
-void cmd_protocol_set_disabled(const char* name)
+void cmd_protocol_set_disabled(const char *name)
{
int ret;
ret = gnutls_protocol_set_enabled(parse_protocol(name), 0);
printf("protocol_set_disabled %s -> %s\n", name,
- ret == 0 ? "OK" :
- ret == GNUTLS_E_INVALID_REQUEST ? "INVALID_REQUEST" :
- gnutls_strerror(ret));
+ ret == 0 ? "OK" :
+ ret == GNUTLS_E_INVALID_REQUEST ? "INVALID_REQUEST" :
+ gnutls_strerror(ret));
}
-
-void cmd_protocol_set_enabled(const char* name)
+void cmd_protocol_set_enabled(const char *name)
{
int ret;
ret = gnutls_protocol_set_enabled(parse_protocol(name), 1);
printf("protocol_set_enabled %s -> %s\n", name,
- ret == 0 ? "OK" :
- ret == GNUTLS_E_INVALID_REQUEST ? "INVALID_REQUEST" :
- gnutls_strerror(ret));
+ ret == 0 ? "OK" :
+ ret == GNUTLS_E_INVALID_REQUEST ? "INVALID_REQUEST" :
+ gnutls_strerror(ret));
}
-
void cmd_reinit(void)
{
int ret;
@@ -201,25 +198,23 @@ void cmd_reinit(void)
printf("reinit -> %s\n", ret == 0 ? "OK" : gnutls_strerror(ret));
}
-
// Returns 0 if `s` doesn't start with `prefix`, pointer past prefix otherwise.
-const char* unprefix(const char* s, const char* prefix)
+const char *unprefix(const char *s, const char *prefix)
{
while (*s && *prefix && *s == *prefix)
s++, prefix++;
return *prefix ? NULL : s;
}
-
#define MAX_CMD_LEN 127
void doit(void)
{
unsigned port;
- const char* port_str;
- const char* ca_file;
- const char* p;
+ const char *port_str;
+ const char *ca_file;
+ const char *p;
char cmd_buf[MAX_CMD_LEN + 1];
- char* e;
+ char *e;
ca_file = getenv("TEST_SERVER_CA");
_assert(ca_file, "TEST_SERVER_CA is not set");
@@ -247,7 +242,7 @@ void doit(void)
_fail("Unknown command `%s`\n", p);
else
_fail("Invalid line `%s`, does not start with `> `\n",
- cmd_buf);
+ cmd_buf);
}
exit(0);
diff --git a/tests/psk-file.c b/tests/psk-file.c
index 0bbc01bfb9..e2868407b3 100644
--- a/tests/psk-file.c
+++ b/tests/psk-file.c
@@ -23,7 +23,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdbool.h>
@@ -40,18 +40,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <signal.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <signal.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
+# include "utils.h"
static char hexchar(unsigned int val)
{
@@ -62,7 +62,8 @@ static char hexchar(unsigned int val)
abort();
}
-static bool hex_encode(const void *buf, size_t bufsize, char *dest, size_t destsize)
+static bool hex_encode(const void *buf, size_t bufsize, char *dest,
+ size_t destsize)
{
size_t used = 0;
@@ -93,11 +94,12 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
-static void client(int sd, const char *prio, const gnutls_datum_t *user, const gnutls_datum_t *key,
- unsigned expect_hint, int expect_fail, int exp_kx, unsigned binary_user)
+static void client(int sd, const char *prio, const gnutls_datum_t * user,
+ const gnutls_datum_t * key, unsigned expect_hint,
+ int expect_fail, int exp_kx, unsigned binary_user)
{
int ret, ii, kx;
gnutls_session_t session;
@@ -115,15 +117,18 @@ static void client(int sd, const char *prio, const gnutls_datum_t *user, const g
gnutls_psk_allocate_client_credentials(&pskcred);
if (binary_user) {
- gnutls_psk_set_client_credentials2(pskcred, user, key, GNUTLS_PSK_KEY_HEX);
+ gnutls_psk_set_client_credentials2(pskcred, user, key,
+ GNUTLS_PSK_KEY_HEX);
} else {
- gnutls_psk_set_client_credentials(pskcred, (const char *) user->data, key,
+ gnutls_psk_set_client_credentials(pskcred,
+ (const char *)user->data, key,
GNUTLS_PSK_KEY_HEX);
}
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_KEY_SHARE_TOP)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_KEY_SHARE_TOP) >=
+ 0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the anonymous credentials to the current session
*/
@@ -139,8 +144,9 @@ static void client(int sd, const char *prio, const gnutls_datum_t *user, const g
if (!expect_fail)
fail("client: Handshake failed\n");
if (ret != expect_fail) {
- fail("expected cli error %d (%s), got %d (%s)\n", expect_fail, gnutls_strerror(expect_fail),
- ret, gnutls_strerror(ret));
+ fail("expected cli error %d (%s), got %d (%s)\n",
+ expect_fail, gnutls_strerror(expect_fail), ret,
+ gnutls_strerror(ret));
}
goto end;
} else {
@@ -152,7 +158,8 @@ static void client(int sd, const char *prio, const gnutls_datum_t *user, const g
if (expect_hint) {
hint = gnutls_psk_client_get_hint(session);
if (hint == NULL || strcmp(hint, "hint") != 0) {
- fail("client: hint is not the expected: %s\n", gnutls_psk_client_get_hint(session));
+ fail("client: hint is not the expected: %s\n",
+ gnutls_psk_client_get_hint(session));
goto end;
}
}
@@ -162,8 +169,7 @@ static void client(int sd, const char *prio, const gnutls_datum_t *user, const g
ret = gnutls_record_recv(session, buffer, MAX_BUF);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -187,11 +193,10 @@ static void client(int sd, const char *prio, const gnutls_datum_t *user, const g
if (exp_kx && kx != exp_kx) {
fail("client: expected key exchange %s, but got %s\n",
- gnutls_kx_get_name(exp_kx),
- gnutls_kx_get_name(kx));
+ gnutls_kx_get_name(exp_kx), gnutls_kx_get_name(kx));
}
- end:
+ end:
close(sd);
@@ -205,10 +210,11 @@ static void client(int sd, const char *prio, const gnutls_datum_t *user, const g
/* This is a sample TLS 1.0 echo server, for PSK authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-static void server(int sd, const char *prio, const gnutls_datum_t *user, bool no_cred,
- int expect_fail, int exp_kx, unsigned binary_user)
+static void server(int sd, const char *prio, const gnutls_datum_t * user,
+ bool no_cred, int expect_fail, int exp_kx,
+ unsigned binary_user)
{
gnutls_psk_server_credentials_t server_pskcred;
int ret, kx;
@@ -229,20 +235,19 @@ static void server(int sd, const char *prio, const gnutls_datum_t *user, bool no
side = "server";
if (psk_file == NULL)
- psk_file = (char*)"psk.passwd";
+ psk_file = (char *)"psk.passwd";
gnutls_psk_allocate_server_credentials(&server_pskcred);
gnutls_psk_set_server_credentials_hint(server_pskcred, "hint");
ret = gnutls_psk_set_server_credentials_file(server_pskcred, psk_file);
if (ret < 0) {
- fail("server: gnutls_psk_set_server_credentials_file failed (%s)\n\n",
- gnutls_strerror(ret));
+ fail("server: gnutls_psk_set_server_credentials_file failed (%s)\n\n", gnutls_strerror(ret));
return;
}
gnutls_init(&session, GNUTLS_SERVER);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
if (!no_cred)
gnutls_credentials_set(session, GNUTLS_CRD_PSK, server_pskcred);
@@ -257,18 +262,19 @@ static void server(int sd, const char *prio, const gnutls_datum_t *user, bool no
* test client reads our fatal alert, otherwise it might exit
* with GNUTLS_E_PUSH_ERROR instead */
gnutls_session_force_valid(session);
- while ((gnutls_record_recv_seq(session, buf, sizeof(buf), seq)) >= 0)
- ;
+ while ((gnutls_record_recv_seq(session, buf, sizeof(buf), seq))
+ >= 0) ;
if (expect_fail) {
if (ret != expect_fail) {
- fail("expected error %d (%s), got %d (%s)\n", expect_fail,
- gnutls_strerror(expect_fail),
- ret, gnutls_strerror(ret));
+ fail("expected error %d (%s), got %d (%s)\n",
+ expect_fail, gnutls_strerror(expect_fail),
+ ret, gnutls_strerror(ret));
}
if (debug)
- success("server: Handshake has failed - expected (%s)\n\n",
+ success
+ ("server: Handshake has failed - expected (%s)\n\n",
gnutls_strerror(ret));
} else {
fail("server: Handshake has failed (%s)\n\n",
@@ -298,8 +304,7 @@ static void server(int sd, const char *prio, const gnutls_datum_t *user, bool no
} else if (ret > 0) {
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
@@ -319,28 +324,30 @@ static void server(int sd, const char *prio, const gnutls_datum_t *user, bool no
if (binary_user) {
char pskid_bin[1024], userdata_bin[1024];
- if (gnutls_psk_server_get_username2(session, &pskid_binary))
+ if (gnutls_psk_server_get_username2
+ (session, &pskid_binary))
fail("server: Could not get binary pskid\n");
- if (memcmp(pskid_binary.data, user->data, user->size) != 0) {
- hex_encode(user->data, user->size, userdata_bin, sizeof(userdata_bin));
- hex_encode(pskid_binary.data, pskid_binary.size, pskid_bin, sizeof(pskid_bin));
- fail("server: binary username (%s) does not match expected (%s)\n",
- pskid_bin, userdata_bin);
+ if (memcmp(pskid_binary.data, user->data, user->size) !=
+ 0) {
+ hex_encode(user->data, user->size, userdata_bin,
+ sizeof(userdata_bin));
+ hex_encode(pskid_binary.data, pskid_binary.size,
+ pskid_bin, sizeof(pskid_bin));
+ fail("server: binary username (%s) does not match expected (%s)\n", pskid_bin, userdata_bin);
}
} else {
pskid = gnutls_psk_server_get_username(session);
- if (pskid == NULL || strcmp(pskid, (const char *) user->data) != 0) {
- fail("server: username (%s), does not match expected (%s)\n",
- pskid, (const char *) user->data);
+ if (pskid == NULL
+ || strcmp(pskid, (const char *)user->data) != 0) {
+ fail("server: username (%s), does not match expected (%s)\n", pskid, (const char *)user->data);
}
}
}
if (exp_kx && kx != exp_kx) {
fail("server: expected key exchange %s, but got %s\n",
- gnutls_kx_get_name(exp_kx),
- gnutls_kx_get_name(kx));
+ gnutls_kx_get_name(exp_kx), gnutls_kx_get_name(kx));
}
end:
@@ -355,7 +362,8 @@ static void server(int sd, const char *prio, const gnutls_datum_t *user, bool no
success("server: finished\n");
}
-static void print_user(const char *caption, const char *prio, const gnutls_datum_t *user, unsigned binary_user)
+static void print_user(const char *caption, const char *prio,
+ const gnutls_datum_t * user, unsigned binary_user)
{
char hexuser[100];
@@ -363,12 +371,15 @@ static void print_user(const char *caption, const char *prio, const gnutls_datum
hex_encode(user->data, user->size, hexuser, sizeof(hexuser));
success("%s %s (user:%s)\n", caption, prio, hexuser);
} else
- success("%s %s (user:%s)\n", caption, prio, (const char *) user->data);
+ success("%s %s (user:%s)\n", caption, prio,
+ (const char *)user->data);
}
static
-void run_test3(const char *prio, const char *sprio, const gnutls_datum_t *user, const gnutls_datum_t *key, bool no_cred,
- unsigned expect_hint, int exp_kx, int expect_fail_cli, int expect_fail_serv, unsigned binary_user)
+void run_test3(const char *prio, const char *sprio, const gnutls_datum_t * user,
+ const gnutls_datum_t * key, bool no_cred, unsigned expect_hint,
+ int exp_kx, int expect_fail_cli, int expect_fail_serv,
+ unsigned binary_user)
{
pid_t child;
int err;
@@ -399,155 +410,309 @@ void run_test3(const char *prio, const char *sprio, const gnutls_datum_t *user,
close(sockets[1]);
int status;
/* parent */
- server(sockets[0], sprio?sprio:prio, user, no_cred, expect_fail_serv, exp_kx, binary_user);
+ server(sockets[0], sprio ? sprio : prio, user, no_cred,
+ expect_fail_serv, exp_kx, binary_user);
wait(&status);
check_wait_status(status);
} else {
close(sockets[0]);
- client(sockets[1], prio, user, key, expect_hint, expect_fail_cli, exp_kx, binary_user);
+ client(sockets[1], prio, user, key, expect_hint,
+ expect_fail_cli, exp_kx, binary_user);
exit(0);
}
}
static
-void run_test2(const char *prio, const char *sprio, const gnutls_datum_t *user, const gnutls_datum_t *key,
- unsigned expect_hint, int exp_kx, int expect_fail_cli, int expect_fail_serv, unsigned binary_user)
+void run_test2(const char *prio, const char *sprio, const gnutls_datum_t * user,
+ const gnutls_datum_t * key, unsigned expect_hint, int exp_kx,
+ int expect_fail_cli, int expect_fail_serv, unsigned binary_user)
{
- run_test3(prio, sprio, user, key, 0, expect_hint, exp_kx, expect_fail_cli, expect_fail_serv, binary_user);
+ run_test3(prio, sprio, user, key, 0, expect_hint, exp_kx,
+ expect_fail_cli, expect_fail_serv, binary_user);
}
static
-void run_test_ok(const char *prio, const gnutls_datum_t *user, const gnutls_datum_t *key, unsigned expect_hint, int expect_fail, unsigned binary_user)
+void run_test_ok(const char *prio, const gnutls_datum_t * user,
+ const gnutls_datum_t * key, unsigned expect_hint,
+ int expect_fail, unsigned binary_user)
{
- run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_PSK, expect_fail, expect_fail, binary_user);
+ run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_PSK,
+ expect_fail, expect_fail, binary_user);
}
static
-void run_ectest_ok(const char *prio, const gnutls_datum_t *user, const gnutls_datum_t *key, unsigned expect_hint, int expect_fail, unsigned binary_user)
+void run_ectest_ok(const char *prio, const gnutls_datum_t * user,
+ const gnutls_datum_t * key, unsigned expect_hint,
+ int expect_fail, unsigned binary_user)
{
- run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_ECDHE_PSK, expect_fail, expect_fail, binary_user);
+ run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_ECDHE_PSK,
+ expect_fail, expect_fail, binary_user);
}
static
-void run_dhtest_ok(const char *prio, const gnutls_datum_t *user, const gnutls_datum_t *key, unsigned expect_hint, int expect_fail, unsigned binary_user)
+void run_dhtest_ok(const char *prio, const gnutls_datum_t * user,
+ const gnutls_datum_t * key, unsigned expect_hint,
+ int expect_fail, unsigned binary_user)
{
- run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_DHE_PSK, expect_fail, expect_fail, binary_user);
+ run_test2(prio, NULL, user, key, expect_hint, GNUTLS_KX_DHE_PSK,
+ expect_fail, expect_fail, binary_user);
}
void doit(void)
{
char hexuser[] = { 0xde, 0xad, 0xbe, 0xef },
- nulluser1[] = { 0 },
- nulluser2[] = { 0, 0, 0xaa, 0 };
- const gnutls_datum_t user_jas = { (void *) "jas", strlen("jas") };
- const gnutls_datum_t user_unknown = { (void *) "unknown", strlen("unknown") };
- const gnutls_datum_t user_nonhex = { (void *) "non-hex", strlen("non-hex") };
- const gnutls_datum_t user_hex = { (void *) hexuser, sizeof(hexuser) };
- const gnutls_datum_t user_null_1 = { (void *) nulluser1, sizeof(nulluser1) };
- const gnutls_datum_t user_null_2 = { (void *) nulluser2, sizeof(nulluser2) };
- const gnutls_datum_t key = { (void *) "9e32cf7786321a828ef7668f09fb35db", 32 };
- const gnutls_datum_t wrong_key = { (void *) "9e31cf7786321a828ef7668f09fb35db", 32 };
-
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_jas, &key, 1, 0, 0);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_hex, &key, 1, 0, 1);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_null_1, &key, 1, 0, 1);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_null_2, &key, 1, 0, 1);
- run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", &user_jas, &key, 1, 0, 0);
- run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", &user_hex, &key, 1, 0, 1);
- run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", &user_null_1, &key, 1, 0, 1);
- run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", &user_null_2, &key, 1, 0, 1);
- run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", &user_jas, &key, 1, 0, 0);
- run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", &user_hex, &key, 1, 0, 1);
- run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", &user_null_1, &key, 1, 0, 1);
- run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", &user_null_2, &key, 1, 0, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_unknown, &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_jas, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_nonhex, &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_KEYFILE_ERROR, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_hex, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_null_1, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_null_2, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_DECRYPTION_FAILED, 1);
-
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_jas, &key, 1, 0, 0);
+ nulluser1[] = { 0 }, nulluser2[] = { 0, 0, 0xaa, 0 };
+ const gnutls_datum_t user_jas = { (void *)"jas", strlen("jas") };
+ const gnutls_datum_t user_unknown =
+ { (void *)"unknown", strlen("unknown") };
+ const gnutls_datum_t user_nonhex =
+ { (void *)"non-hex", strlen("non-hex") };
+ const gnutls_datum_t user_hex = { (void *)hexuser, sizeof(hexuser) };
+ const gnutls_datum_t user_null_1 =
+ { (void *)nulluser1, sizeof(nulluser1) };
+ const gnutls_datum_t user_null_2 =
+ { (void *)nulluser2, sizeof(nulluser2) };
+ const gnutls_datum_t key =
+ { (void *)"9e32cf7786321a828ef7668f09fb35db", 32 };
+ const gnutls_datum_t wrong_key =
+ { (void *)"9e31cf7786321a828ef7668f09fb35db", 32 };
+
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_jas,
+ &key, 1, 0, 0);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_hex,
+ &key, 1, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_null_1,
+ &key, 1, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_null_2,
+ &key, 1, 0, 1);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK",
+ &user_jas, &key, 1, 0, 0);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK",
+ &user_hex, &key, 1, 0, 1);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK",
+ &user_null_1, &key, 1, 0, 1);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK",
+ &user_null_2, &key, 1, 0, 1);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK",
+ &user_jas, &key, 1, 0, 0);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK",
+ &user_hex, &key, 1, 0, 1);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK",
+ &user_null_1, &key, 1, 0, 1);
+ run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK",
+ &user_null_2, &key, 1, 0, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL,
+ &user_unknown, &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_DECRYPTION_FAILED, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_jas,
+ &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_DECRYPTION_FAILED, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL,
+ &user_nonhex, &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_KEYFILE_ERROR, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL, &user_hex,
+ &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_DECRYPTION_FAILED, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL,
+ &user_null_1, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_DECRYPTION_FAILED, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", NULL,
+ &user_null_2, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_DECRYPTION_FAILED, 1);
+
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", &user_jas,
+ &key, 1, 0, 0);
run_test_ok("NORMAL:-KX-ALL:+PSK", &user_jas, &key, 0, 0, 0);
run_test_ok("NORMAL:-KX-ALL:+PSK", &user_hex, &key, 0, 0, 1);
run_test_ok("NORMAL:-KX-ALL:+PSK", &user_null_1, &key, 0, 0, 1);
run_test_ok("NORMAL:-KX-ALL:+PSK", &user_null_2, &key, 0, 0, 1);
- run_test2("NORMAL:+PSK", NULL, &user_unknown, &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
- run_test2("NORMAL:+PSK", NULL, &user_jas, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
- run_test2("NORMAL:+PSK", NULL, &user_hex, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
- run_test2("NORMAL:+PSK", NULL, &user_null_1, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
- run_test2("NORMAL:+PSK", NULL, &user_null_2, &wrong_key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
- run_test2("NORMAL:-KX-ALL:+PSK", NULL, &user_nonhex, &key, 1, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_KEYFILE_ERROR, 0);
-
- run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL", &user_jas, &key, 0, 0, 0);
- run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL", &user_hex, &key, 0, 0, 1);
- run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL", &user_null_1, &key, 0, 0, 1);
- run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL", &user_null_2, &key, 0, 0, 1);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_jas, &key, 0, 0, 0);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_hex, &key, 0, 0, 1);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_null_1, &key, 0, 0, 1);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_null_2, &key, 0, 0, 1);
+ run_test2("NORMAL:+PSK", NULL, &user_unknown, &key, 1, 0,
+ GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
+ run_test2("NORMAL:+PSK", NULL, &user_jas, &wrong_key, 1, 0,
+ GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
+ run_test2("NORMAL:+PSK", NULL, &user_hex, &wrong_key, 1, 0,
+ GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:+PSK", NULL, &user_null_1, &wrong_key, 1, 0,
+ GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:+PSK", NULL, &user_null_2, &wrong_key, 1, 0,
+ GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:-KX-ALL:+PSK", NULL, &user_nonhex, &key, 1, 0,
+ GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_KEYFILE_ERROR, 0);
+
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL",
+ &user_jas, &key, 0, 0, 0);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL",
+ &user_hex, &key, 0, 0, 1);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL",
+ &user_null_1, &key, 0, 0, 1);
+ run_dhtest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-EC-ALL",
+ &user_null_2, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_jas, &key, 0, 0,
+ 0);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_hex, &key, 0, 0,
+ 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_null_1, &key, 0,
+ 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", &user_null_2, &key, 0,
+ 0, 1);
/* test priorities of DHE-PSK and PSK */
- run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL", &user_jas, &key, 0, 0, 0);
- run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL", &user_hex, &key, 0, 0, 1);
- run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL", &user_null_1, &key, 0, 0, 1);
- run_ectest_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL", &user_null_2, &key, 0, 0, 1);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL", &user_jas, &key, 0, 0, 0);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL", &user_hex, &key, 0, 0, 1);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL", &user_null_1, &key, 0, 0, 1);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL", &user_null_2, &key, 0, 0, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
- &user_jas, &key, 0, GNUTLS_KX_PSK, 0, 0, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
- &user_hex, &key, 0, GNUTLS_KX_PSK, 0, 0, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
- &user_null_1, &key, 0, GNUTLS_KX_PSK, 0, 0, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
- &user_null_2, &key, 0, GNUTLS_KX_PSK, 0, 0, 1);
+ run_ectest_ok
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ &user_jas, &key, 0, 0, 0);
+ run_ectest_ok
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ &user_hex, &key, 0, 0, 1);
+ run_ectest_ok
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ &user_null_1, &key, 0, 0, 1);
+ run_ectest_ok
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ &user_null_2, &key, 0, 0, 1);
+ run_test_ok
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL",
+ &user_jas, &key, 0, 0, 0);
+ run_test_ok
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL",
+ &user_hex, &key, 0, 0, 1);
+ run_test_ok
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL",
+ &user_null_1, &key, 0, 0, 1);
+ run_test_ok
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:-GROUP-DH-ALL",
+ &user_null_2, &key, 0, 0, 1);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
+ &user_jas, &key, 0, GNUTLS_KX_PSK, 0, 0, 0);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
+ &user_hex, &key, 0, GNUTLS_KX_PSK, 0, 0, 1);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
+ &user_null_1, &key, 0, GNUTLS_KX_PSK, 0, 0, 1);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+DHE-PSK:+PSK:-GROUP-DH-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM:+PSK:+DHE-PSK:%SERVER_PRECEDENCE:-GROUP-DH-ALL",
+ &user_null_2, &key, 0, GNUTLS_KX_PSK, 0, 0, 1);
/* try with PRF that doesn't match binder (SHA256) */
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK", NULL, &user_jas, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_CIPHER_SUITES, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK", NULL, &user_hex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_CIPHER_SUITES, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK", NULL, &user_null_1, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_CIPHER_SUITES, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK", NULL, &user_null_2, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_CIPHER_SUITES, 1);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK",
+ NULL, &user_jas, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_CIPHER_SUITES, 0);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK",
+ NULL, &user_hex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_CIPHER_SUITES, 1);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK",
+ NULL, &user_null_1, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_CIPHER_SUITES, 1);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-256-GCM:+PSK:+DHE-PSK",
+ NULL, &user_null_2, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_CIPHER_SUITES, 1);
/* try with no groups and PSK */
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", &user_jas, &key, 0, 0, 0);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", &user_hex, &key, 0, 0, 1);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", &user_null_1, &key, 0, 0, 1);
- run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", &user_null_2, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", &user_jas,
+ &key, 0, 0, 0);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL", &user_hex,
+ &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL",
+ &user_null_1, &key, 0, 0, 1);
+ run_test_ok("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-GROUP-ALL",
+ &user_null_2, &key, 0, 0, 1);
/* try without any groups but DHE-PSK */
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_jas, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL", &user_jas, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_hex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL", &user_hex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_null_1, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL", &user_null_1, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_null_2, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL", &user_null_2, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_jas,
+ &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_COMMON_KEY_SHARE, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL",
+ &user_jas, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_COMMON_KEY_SHARE, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_hex,
+ &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL",
+ &user_hex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_null_1,
+ &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL",
+ &user_null_1, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK", &user_null_2,
+ &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:+PSK:-GROUP-ALL",
+ &user_null_2, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_NO_COMMON_KEY_SHARE, 1);
/* if user invalid we continue without PSK */
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_nonhex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_KEYFILE_ERROR, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_unknown, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_jas, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_hex, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_null_1, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_null_2, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL,
+ &user_nonhex, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_KEYFILE_ERROR, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL,
+ &user_unknown, &key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL,
+ &user_jas, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 0);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL,
+ &user_hex, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL,
+ &user_null_1, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
+ run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL,
+ &user_null_2, &wrong_key, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER, 1);
/* try with HelloRetryRequest and PSK */
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096", &user_jas, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 0);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096", &user_hex, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096", &user_null_1, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 1);
- run_test2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096", &user_null_2, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 1);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096",
+ &user_jas, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 0);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096",
+ &user_hex, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 1);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096",
+ &user_null_1, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 1);
+ run_test2
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE4096",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+DHE-PSK:-GROUP-ALL:+GROUP-FFDHE4096",
+ &user_null_2, &key, 0, GNUTLS_KX_DHE_PSK, 0, 0, 1);
/* try without server credentials */
- run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_jas, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_INSUFFICIENT_CREDENTIALS, 0);
- run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_hex, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_INSUFFICIENT_CREDENTIALS, 1);
- run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_null_1, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_INSUFFICIENT_CREDENTIALS, 1);
- run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL, &user_null_2, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED, GNUTLS_E_INSUFFICIENT_CREDENTIALS, 1);
+ run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL,
+ &user_jas, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS, 0);
+ run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL,
+ &user_hex, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS, 1);
+ run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL,
+ &user_null_1, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS, 1);
+ run_test3("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+DHE-PSK", NULL,
+ &user_null_2, &key, 1, 0, 0, GNUTLS_E_FATAL_ALERT_RECEIVED,
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS, 1);
}
#endif /* _WIN32 */
diff --git a/tests/pskself.c b/tests/pskself.c
index 3fd156d637..dd00009167 100644
--- a/tests/pskself.c
+++ b/tests/pskself.c
@@ -23,7 +23,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,16 +39,16 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
+# include "utils.h"
/* A very basic TLS client, with PSK authentication.
*/
@@ -60,8 +60,8 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static void client(int sd, const char *prio, unsigned exp_hint)
{
@@ -70,7 +70,7 @@ static void client(int sd, const char *prio, unsigned exp_hint)
char buffer[MAX_BUF + 1];
gnutls_psk_client_credentials_t pskcred;
/* Need to enable anonymous KX specifically. */
- const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t key = { (void *)"DEADBEEF", 8 };
const char *hint;
global_init();
@@ -114,7 +114,8 @@ static void client(int sd, const char *prio, unsigned exp_hint)
if (exp_hint) {
hint = gnutls_psk_client_get_hint(session);
if (hint == NULL || strcmp(hint, "hint") != 0) {
- fail("client: hint is not the expected: %s\n", gnutls_psk_client_get_hint(session));
+ fail("client: hint is not the expected: %s\n",
+ gnutls_psk_client_get_hint(session));
goto end;
}
}
@@ -124,8 +125,7 @@ static void client(int sd, const char *prio, unsigned exp_hint)
ret = gnutls_record_recv(session, buffer, MAX_BUF);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -142,7 +142,7 @@ static void client(int sd, const char *prio, unsigned exp_hint)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -156,13 +156,12 @@ static void client(int sd, const char *prio, unsigned exp_hint)
/* This is a sample TLS 1.0 echo server, for PSK authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
/* These are global */
static int
-pskfunc(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+pskfunc(gnutls_session_t session, const char *username, gnutls_datum_t * key)
{
if (debug)
printf("psk: username %s\n", username);
@@ -179,7 +178,7 @@ static gnutls_dh_params_t dh_params;
static int generate_dh_params(void)
{
- const gnutls_datum_t p3 = { (void *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (void *)pkcs3, strlen(pkcs3) };
/* Generate Diffie-Hellman parameters - for use with DHE
* kx algorithms. These should be discarded and regenerated
* once a day, once a week or once a month. Depending on the
@@ -190,13 +189,12 @@ static int generate_dh_params(void)
GNUTLS_X509_FMT_PEM);
}
-
static void server(int sd, const char *prio)
{
-gnutls_psk_server_credentials_t server_pskcred;
-int ret;
-gnutls_session_t session;
-char buffer[MAX_BUF + 1];
+ gnutls_psk_server_credentials_t server_pskcred;
+ int ret;
+ gnutls_session_t session;
+ char buffer[MAX_BUF + 1];
/* this must be called once in the program
*/
@@ -207,11 +205,9 @@ char buffer[MAX_BUF + 1];
side = "server";
-
gnutls_psk_allocate_server_credentials(&server_pskcred);
gnutls_psk_set_server_credentials_hint(server_pskcred, "hint");
- gnutls_psk_set_server_credentials_function(server_pskcred,
- pskfunc);
+ gnutls_psk_set_server_credentials_function(server_pskcred, pskfunc);
gnutls_psk_set_server_dh_params(server_pskcred, dh_params);
@@ -255,8 +251,7 @@ char buffer[MAX_BUF + 1];
} else if (ret > 0) {
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
/* do not wait for the peer to close the connection.
@@ -320,8 +315,12 @@ void doit(void)
run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", 1);
run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", 0);
- run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+DHE-PSK", 0);
- run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+ECDHE-PSK", 0);
+ run_test
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+DHE-PSK",
+ 0);
+ run_test
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+ECDHE-PSK",
+ 0);
/* the following should work once we support PSK without DH */
run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+PSK", 0);
diff --git a/tests/pskself2.c b/tests/pskself2.c
index 0396c363c9..b658ea67ba 100644
--- a/tests/pskself2.c
+++ b/tests/pskself2.c
@@ -24,7 +24,7 @@
/* Parts copied from pskself.c. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,17 +40,17 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
-#include "extras/hex.h"
+# include "utils.h"
+# include "extras/hex.h"
/* A very basic TLS client, with PSK authentication.
*/
@@ -62,8 +62,8 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static void client(int sd, const char *prio, unsigned exp_hint)
{
@@ -72,7 +72,7 @@ static void client(int sd, const char *prio, unsigned exp_hint)
char buffer[MAX_BUF + 1];
gnutls_psk_client_credentials_t pskcred;
/* Need to enable anonymous KX specifically. */
- const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t key = { (void *)"DEADBEEF", 8 };
gnutls_datum_t user;
const char *hint;
@@ -92,7 +92,7 @@ static void client(int sd, const char *prio, unsigned exp_hint)
gnutls_psk_allocate_client_credentials(&pskcred);
ret = gnutls_psk_set_client_credentials2(pskcred, &user, &key,
- GNUTLS_PSK_KEY_HEX);
+ GNUTLS_PSK_KEY_HEX);
if (ret < 0) {
fail("client: Could not set PSK\n");
gnutls_perror(ret);
@@ -129,7 +129,8 @@ static void client(int sd, const char *prio, unsigned exp_hint)
if (exp_hint) {
hint = gnutls_psk_client_get_hint(session);
if (hint == NULL || strcmp(hint, "hint") != 0) {
- fail("client: hint is not the expected: %s\n", gnutls_psk_client_get_hint(session));
+ fail("client: hint is not the expected: %s\n",
+ gnutls_psk_client_get_hint(session));
goto end;
}
}
@@ -139,8 +140,7 @@ static void client(int sd, const char *prio, unsigned exp_hint)
ret = gnutls_record_recv(session, buffer, MAX_BUF);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -157,7 +157,7 @@ static void client(int sd, const char *prio, unsigned exp_hint)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -172,12 +172,12 @@ static void client(int sd, const char *prio, unsigned exp_hint)
/* This is a sample TLS 1.0 echo server, for PSK authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
/* These are global */
static int
-pskfunc(gnutls_session_t session, const gnutls_datum_t *username,
+pskfunc(gnutls_session_t session, const gnutls_datum_t * username,
gnutls_datum_t * key)
{
if (debug)
@@ -193,14 +193,14 @@ pskfunc(gnutls_session_t session, const gnutls_datum_t *username,
return 0;
}
-
static void server(int sd, const char *prio)
{
gnutls_psk_server_credentials_t server_pskcred;
int ret;
gnutls_session_t session;
gnutls_datum_t psk_username;
- char buffer[MAX_BUF + 1], expected_psk_username[] = { 0xDE, 0xAD, 0xBE, 0xEF };
+ char buffer[MAX_BUF + 1], expected_psk_username[] =
+ { 0xDE, 0xAD, 0xBE, 0xEF };
/* this must be called once in the program
*/
@@ -211,7 +211,6 @@ static void server(int sd, const char *prio)
side = "server";
-
gnutls_psk_allocate_server_credentials(&server_pskcred);
gnutls_psk_set_server_credentials_hint(server_pskcred, "hint");
gnutls_psk_set_server_credentials_function2(server_pskcred, pskfunc);
@@ -243,7 +242,8 @@ static void server(int sd, const char *prio)
if (gnutls_psk_server_get_username2(session, &psk_username) < 0)
fail("server: Could not get PSK username\n");
- if (psk_username.size != 4 || memcmp(psk_username.data, expected_psk_username, 4))
+ if (psk_username.size != 4
+ || memcmp(psk_username.data, expected_psk_username, 4))
fail("server: Unexpected PSK username\n");
success("server: PSK username length: %d\n", psk_username.size);
@@ -259,7 +259,8 @@ static void server(int sd, const char *prio)
if (ret == 0) {
if (debug)
- success("server: Peer has closed the GnuTLS connection\n");
+ success
+ ("server: Peer has closed the GnuTLS connection\n");
break;
} else if (ret < 0) {
fail("server: Received corrupted data(%d). Closing...\n", ret);
@@ -267,8 +268,7 @@ static void server(int sd, const char *prio)
} else if (ret > 0) {
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
/* do not wait for the peer to close the connection.
@@ -330,11 +330,19 @@ void doit(void)
run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", 1);
run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:+PSK", 0);
- run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048:+DHE-PSK", 0);
- run_test("NORMAL:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP256R1:+ECDHE-PSK", 0);
+ run_test
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048:+DHE-PSK",
+ 0);
+ run_test
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP256R1:+ECDHE-PSK",
+ 0);
run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK", 0);
- run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+DHE-PSK", 0);
- run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+ECDHE-PSK", 0);
+ run_test
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+DHE-PSK",
+ 0);
+ run_test
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+ECDHE-PSK",
+ 0);
/* the following should work once we support PSK without DH */
run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+PSK", 0);
diff --git a/tests/pubkey-import-export.c b/tests/pubkey-import-export.c
index d5b6e85f83..5986493c45 100644
--- a/tests/pubkey-import-export.c
+++ b/tests/pubkey-import-export.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -50,7 +50,7 @@ static char rsa_key_pem[] =
"sWZGfbnU3ryjvkb6YuFjgtzbZDZHWQCo8/cOtOBmPdk=\n"
"-----END RSA PRIVATE KEY-----\n";
-const gnutls_datum_t rsa_key = { (void*)rsa_key_pem,
+const gnutls_datum_t rsa_key = { (void *)rsa_key_pem,
sizeof(rsa_key_pem)
};
@@ -63,57 +63,78 @@ static void dump(const char *name, unsigned char *buf, int buf_size)
fprintf(stderr, "\n");
}
-unsigned char dsa_p[] = "\x00\xb9\x84\xf5\x5a\x81\xbe\x1a\x0d\xc5\x8a\x73\x8f\x0c\x9b\x2f\x9b\xb6\x0e\x4b\xc3\x74\x1a\x7f\x64\xad\x9d\xf3\x28\xc5\xa0\x47\xbc\x9b\x57\x56\xf1\x97\xd5\x7e\x37\x03\xe9\xf2\x4c\xf4\xe3\x8b\x7f\x30\xa3\x5d\x2f\xbb\xa1\xa2\x37\xc2\xea\x35\x8f\x1f\xb1\x5f\xa6\xa2\x5f\x01\xf1\x23\x36\x2b\xe4\x4f\x2f\x2d\xdd\x9d\xd5\x3a\xa6\x39\xaf\x7a\x51\x7c\xd2\x25\x8e\x97\x74\xcf\x1e\xc5\x7b\x4b\x76\x43\x81\x07\x1f\x06\x14\xb8\x6e\x58\x12\xe1\x90\xe2\x37\x6f\xd2\x1b\xec\x68\xc5\x58\xe2\xe6\x30\xe0\x6a\x5e\x2c\x63\x78\xec\x07";
-unsigned char dsa_q[] = "\x00\x9f\x56\x8c\x48\x64\x2f\xfe\x8d\xaa\x7a\x6d\x96\xdb\x04\x5d\x16\xef\x08\xa5\x71";
-unsigned char dsa_g[] = "\x62\x06\x7e\xe4\x5c\x76\x08\xb7\x46\x1a\x5d\xd7\x97\xd4\x2a\x21\xfb\x1f\x31\xc9\xd2\xf4\xfa\x39\xd8\x27\xd1\x9b\xfc\x27\x5d\xa7\x0a\xa7\x1a\xfc\x53\xc1\x2f\x43\xc2\x37\xc8\x85\x7f\x3d\x4c\xab\x5d\x81\x32\xfb\x1d\x5e\x1e\x54\x11\x16\x20\xc6\x80\x5a\xd9\x8c\x9b\x43\xf0\xdd\x6b\xa0\xf4\xc3\xf2\x8a\x9c\x39\xd2\x1c\x7b\x0f\xef\xfa\x28\x93\x8f\xd2\xa1\x22\xeb\xdc\xe0\x8a\x8b\xad\x28\x0e\xcf\xef\x09\x85\xe9\x36\xbd\x8b\x7a\x50\xd5\x7b\xf7\x25\x0d\x6c\x60\x11\xc4\xef\x70\x90\xcf\xd6\x1b\xeb\xbb\x8e\xc6\x3e\x3a\x97";
-unsigned char dsa_y[] = "\x0f\x8a\x87\x57\xf2\xd1\xc2\xdc\xac\xdf\x4b\x8b\x0f\x8b\xba\x29\xf7\xe1\x03\xe4\x55\xfa\xb2\x98\x07\xd6\xfd\x12\xb1\x80\xbc\xf5\xba\xb4\x50\xd4\x7f\xa0\x0e\x43\xe7\x9f\xc9\x78\x11\x5f\xe5\xe4\x0c\x2c\x6b\x6a\xa4\x35\xdc\xbd\x54\xe5\x60\x36\x9a\x31\xd1\x8a\x59\x6e\x6b\x1c\xba\xbd\x2e\xba\xeb\x7c\x87\xef\xda\xc8\xdd\xa1\xeb\xa4\x83\xe6\x8b\xad\xfa\xfa\x8e\x5b\xd7\x37\xc8\x32\x3e\x96\xc2\x3e\xf4\x43\xda\x7d\x91\x02\x0f\xb7\xbc\xf8\xef\x8f\xf7\x41\x00\x5e\x96\xdf\x0f\x08\x96\xdc\xea\xb2\xe9\x06\x82\xaf\xd2\x2f";
-unsigned char dsa_x[] = "\x4b\x9f\xeb\xff\x6c\x9a\x02\x83\x41\x5e\x37\x81\x8e\x00\x86\x31\xe8\xb6\x9b\xc1";
-
-unsigned char rsa_m[] = "\x00\xbb\x66\x43\xf5\xf2\xc5\xd7\xb6\x8c\xcc\xc5\xdf\xf5\x88\x3b\xb1\xc9\x4b\x6a\x0e\xa1\xad\x20\x50\x40\x08\x80\xa1\x4f\x5c\xa3\xd0\xf8\x6c\xcf\xe6\x3c\xf7\xec\x04\x76\x13\x17\x8b\x64\x89\x22\x5b\xc0\xdd\x53\x7c\x3b\xed\x7c\x04\xbb\x80\xb9\x28\xbe\x8e\x9b\xc6\x8e\xa0\xa5\x12\xcb\xf5\x57\x1e\xa2\xe7\xbb\xb7\x33\x49\x9f\xe3\xbb\x4a\xae\x6a\x4d\x68\xff\xc9\x11\xe2\x32\x8d\xce\x3d\x80\x0b\x8d\x75\xef\xd8\x00\x81\x8f\x28\x04\x03\xa0\x22\x8d\x61\x04\x07\xfa\xb6\x37\x7d\x21\x07\x49\xd2\x09\x61\x69\x98\x90\xa3\x58\xa9";
+unsigned char dsa_p[] =
+ "\x00\xb9\x84\xf5\x5a\x81\xbe\x1a\x0d\xc5\x8a\x73\x8f\x0c\x9b\x2f\x9b\xb6\x0e\x4b\xc3\x74\x1a\x7f\x64\xad\x9d\xf3\x28\xc5\xa0\x47\xbc\x9b\x57\x56\xf1\x97\xd5\x7e\x37\x03\xe9\xf2\x4c\xf4\xe3\x8b\x7f\x30\xa3\x5d\x2f\xbb\xa1\xa2\x37\xc2\xea\x35\x8f\x1f\xb1\x5f\xa6\xa2\x5f\x01\xf1\x23\x36\x2b\xe4\x4f\x2f\x2d\xdd\x9d\xd5\x3a\xa6\x39\xaf\x7a\x51\x7c\xd2\x25\x8e\x97\x74\xcf\x1e\xc5\x7b\x4b\x76\x43\x81\x07\x1f\x06\x14\xb8\x6e\x58\x12\xe1\x90\xe2\x37\x6f\xd2\x1b\xec\x68\xc5\x58\xe2\xe6\x30\xe0\x6a\x5e\x2c\x63\x78\xec\x07";
+unsigned char dsa_q[] =
+ "\x00\x9f\x56\x8c\x48\x64\x2f\xfe\x8d\xaa\x7a\x6d\x96\xdb\x04\x5d\x16\xef\x08\xa5\x71";
+unsigned char dsa_g[] =
+ "\x62\x06\x7e\xe4\x5c\x76\x08\xb7\x46\x1a\x5d\xd7\x97\xd4\x2a\x21\xfb\x1f\x31\xc9\xd2\xf4\xfa\x39\xd8\x27\xd1\x9b\xfc\x27\x5d\xa7\x0a\xa7\x1a\xfc\x53\xc1\x2f\x43\xc2\x37\xc8\x85\x7f\x3d\x4c\xab\x5d\x81\x32\xfb\x1d\x5e\x1e\x54\x11\x16\x20\xc6\x80\x5a\xd9\x8c\x9b\x43\xf0\xdd\x6b\xa0\xf4\xc3\xf2\x8a\x9c\x39\xd2\x1c\x7b\x0f\xef\xfa\x28\x93\x8f\xd2\xa1\x22\xeb\xdc\xe0\x8a\x8b\xad\x28\x0e\xcf\xef\x09\x85\xe9\x36\xbd\x8b\x7a\x50\xd5\x7b\xf7\x25\x0d\x6c\x60\x11\xc4\xef\x70\x90\xcf\xd6\x1b\xeb\xbb\x8e\xc6\x3e\x3a\x97";
+unsigned char dsa_y[] =
+ "\x0f\x8a\x87\x57\xf2\xd1\xc2\xdc\xac\xdf\x4b\x8b\x0f\x8b\xba\x29\xf7\xe1\x03\xe4\x55\xfa\xb2\x98\x07\xd6\xfd\x12\xb1\x80\xbc\xf5\xba\xb4\x50\xd4\x7f\xa0\x0e\x43\xe7\x9f\xc9\x78\x11\x5f\xe5\xe4\x0c\x2c\x6b\x6a\xa4\x35\xdc\xbd\x54\xe5\x60\x36\x9a\x31\xd1\x8a\x59\x6e\x6b\x1c\xba\xbd\x2e\xba\xeb\x7c\x87\xef\xda\xc8\xdd\xa1\xeb\xa4\x83\xe6\x8b\xad\xfa\xfa\x8e\x5b\xd7\x37\xc8\x32\x3e\x96\xc2\x3e\xf4\x43\xda\x7d\x91\x02\x0f\xb7\xbc\xf8\xef\x8f\xf7\x41\x00\x5e\x96\xdf\x0f\x08\x96\xdc\xea\xb2\xe9\x06\x82\xaf\xd2\x2f";
+unsigned char dsa_x[] =
+ "\x4b\x9f\xeb\xff\x6c\x9a\x02\x83\x41\x5e\x37\x81\x8e\x00\x86\x31\xe8\xb6\x9b\xc1";
+
+unsigned char rsa_m[] =
+ "\x00\xbb\x66\x43\xf5\xf2\xc5\xd7\xb6\x8c\xcc\xc5\xdf\xf5\x88\x3b\xb1\xc9\x4b\x6a\x0e\xa1\xad\x20\x50\x40\x08\x80\xa1\x4f\x5c\xa3\xd0\xf8\x6c\xcf\xe6\x3c\xf7\xec\x04\x76\x13\x17\x8b\x64\x89\x22\x5b\xc0\xdd\x53\x7c\x3b\xed\x7c\x04\xbb\x80\xb9\x28\xbe\x8e\x9b\xc6\x8e\xa0\xa5\x12\xcb\xf5\x57\x1e\xa2\xe7\xbb\xb7\x33\x49\x9f\xe3\xbb\x4a\xae\x6a\x4d\x68\xff\xc9\x11\xe2\x32\x8d\xce\x3d\x80\x0b\x8d\x75\xef\xd8\x00\x81\x8f\x28\x04\x03\xa0\x22\x8d\x61\x04\x07\xfa\xb6\x37\x7d\x21\x07\x49\xd2\x09\x61\x69\x98\x90\xa3\x58\xa9";
unsigned char rsa_e[] = "\x01\x00\x01";
-unsigned char rsa_d[] = "\x0e\x99\x80\x44\x6e\x42\x43\x14\xbe\x01\xeb\x0d\x90\x69\xa9\x6a\xe7\xa9\x88\x2c\xf5\x24\x11\x7f\x27\x09\xf2\x89\x7e\xaf\x13\x35\x21\xd1\x8a\x5d\xdf\xd4\x99\xce\xdc\x2b\x0f\x1b\xc5\x3c\x98\xd0\x68\xa5\x65\x8e\x69\x75\xce\x42\x69\x20\x35\x6c\xaa\xf1\xdd\xc9\x57\x6c\x7b\xc3\x3e\x42\x7e\xa1\xc3\x8c\x76\xa7\x9a\xe8\x81\xdb\xe1\x84\x82\xf5\x99\xd5\xa8\xee\x35\x9e\x54\x94\xc5\x44\xa0\x7b\xcc\xb7\x4c\x3e\xcd\xf2\x49\xdb\x5c\x21\x06\x85\xf6\x75\x00\x43\x62\x89\x12\xf9\x5d\x90\xed\xe6\xfd\xb4\x49\x14\x4a\x79\xe2\x4d";
-unsigned char rsa_p[] = "\x00\xd8\xcb\xe4\x65\x4e\x6c\x11\x0f\xa8\x72\xed\x4b\x4c\x8d\x1d\x07\xdc\x24\x99\x25\xe4\x3c\xb2\xf3\x02\xc4\x72\xe6\x3a\x5b\x86\xf4\x7d\x54\x2a\x4e\x79\x64\x16\x1f\x45\x3b\x17\x9e\x2a\x94\x90\x90\x59\xe7\x0b\x95\xd4\xbf\xa9\x47\xd1\x0a\x71\xaf\x3d\x6b\xed\x55";
-unsigned char rsa_q[] = "\x00\xdd\x49\x81\x7a\x5c\x04\xbf\x6b\xbd\x70\x05\x35\x42\x32\xa3\x9b\x08\xee\xd4\x98\x17\x6e\xb8\xc4\xa2\x12\xbe\xdc\x1e\x72\xd0\x44\x84\x5c\xf0\x30\x35\x04\xfd\x4e\xb0\xcc\xd6\x6f\x40\xcb\x16\x13\x58\xbc\x57\xf7\x77\x48\xe5\x0c\x0d\x14\x9b\x66\x6e\xd8\xde\x05";
-unsigned char rsa_u[] = "\x4a\x74\x5c\x95\x83\x54\xa3\xb0\x71\x35\xba\x02\x3a\x7d\x4a\x8c\x2d\x9a\x26\x77\x60\x36\x28\xd4\xb1\x7d\x8a\x06\xf8\x89\xa2\xef\xb1\x66\x46\x7d\xb9\xd4\xde\xbc\xa3\xbe\x46\xfa\x62\xe1\x63\x82\xdc\xdb\x64\x36\x47\x59\x00\xa8\xf3\xf7\x0e\xb4\xe0\x66\x3d\xd9";
-unsigned char rsa_e1[] = "\x45\x20\x96\x5e\x1b\x28\x68\x34\x46\xf1\x06\x6b\x09\x28\xc1\xc5\xfc\xd3\x0a\xa6\x43\x65\x7b\x65\xf3\x4e\xf2\x98\x28\xa9\x80\x99\xba\xd0\xb8\x80\xb7\x42\x4b\xaf\x82\xe2\xb9\xc0\x2c\x31\x9c\xfa\xfa\x3f\xaa\xb9\x06\xd2\x6a\x46\xc5\x08\x00\x81\xf1\x22\xd5\xd5";
-unsigned char rsa_e2[] = "\x00\xa6\x50\x60\xa7\xfe\x10\xf3\x6d\x9e\x6b\x5a\xfe\xb4\x4a\x2a\xfc\x92\xb2\x2d\xc6\x41\x96\x4d\xf8\x3b\x77\xab\x4a\xf4\xf7\x85\xe0\x79\x3b\x00\xaa\xba\xae\x8d\x53\x5f\x3e\x14\xcc\x78\xfe\x2a\x11\x50\x57\xfe\x25\x57\xd9\xc9\x8c\x4d\x28\x77\xc3\x7c\xfc\x31\xa1";
-
-unsigned char ecc_x[] = "\x3c\x15\x6f\x1d\x48\x3e\x64\x59\x13\x2c\x6d\x04\x1a\x38\x0d\x30\x5c\xe4\x3f\x55\xcb\xd9\x17\x15\x46\x72\x71\x92\xc1\xf8\xc6\x33";
-unsigned char ecc_y[] = "\x3d\x04\x2e\xc8\xc1\x0f\xc0\x50\x04\x7b\x9f\xc9\x48\xb5\x40\xfa\x6f\x93\x82\x59\x61\x5e\x72\x57\xcb\x83\x06\xbd\xcc\x82\x94\xc1";
-unsigned char ecc_k[] = "\x00\xfd\x2b\x00\x80\xf3\x36\x5f\x11\x32\x65\xe3\x8d\x30\x33\x3b\x47\xf5\xce\xf8\x13\xe5\x4c\xc2\xcf\xfd\xe8\x05\x6a\xca\xc9\x41\xb1";
-
-unsigned char false_ed25519_x[] = "\xac\xac\x9a\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x84\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
-unsigned char ed25519_x[] = "\xab\xaf\x98\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x86\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
-unsigned char ed25519_k[] = "\x1c\xa9\x23\xdc\x35\xa8\xfd\xd6\x2d\xa8\x98\xb9\x60\x7b\xce\x10\x3d\xf4\x64\xc6\xe5\x4b\x0a\x65\x56\x6a\x3c\x73\x65\x51\xa2\x2f";
-
-gnutls_datum_t _dsa_p = {dsa_p, sizeof(dsa_p)-1};
-gnutls_datum_t _dsa_q = {dsa_q, sizeof(dsa_q)-1};
-gnutls_datum_t _dsa_g = {dsa_g, sizeof(dsa_g)-1};
-gnutls_datum_t _dsa_y = {dsa_y, sizeof(dsa_y)-1};
-gnutls_datum_t _dsa_x = {dsa_x, sizeof(dsa_x)-1};
-
-gnutls_datum_t _rsa_m = {rsa_m, sizeof(rsa_m)-1};
-gnutls_datum_t _rsa_e = {rsa_e, sizeof(rsa_e)-1};
-gnutls_datum_t _rsa_d = {rsa_d, sizeof(rsa_d)-1};
-gnutls_datum_t _rsa_p = {rsa_p, sizeof(rsa_p)-1};
-gnutls_datum_t _rsa_q = {rsa_q, sizeof(rsa_q)-1};
-gnutls_datum_t _rsa_u = {rsa_u, sizeof(rsa_u)-1};
-gnutls_datum_t _rsa_e1 = {rsa_e1, sizeof(rsa_e1)-1};
-gnutls_datum_t _rsa_e2 = {rsa_e2, sizeof(rsa_e2)-1};
-
-gnutls_datum_t _ecc_x = {ecc_x, sizeof(ecc_x)-1};
-gnutls_datum_t _ecc_y = {ecc_y, sizeof(ecc_y)-1};
-gnutls_datum_t _ecc_k = {ecc_k, sizeof(ecc_k)-1};
-
-gnutls_datum_t _false_ed25519_x = {false_ed25519_x, sizeof(false_ed25519_x)-1};
-gnutls_datum_t _ed25519_x = {ed25519_x, sizeof(ed25519_x)-1};
-gnutls_datum_t _ed25519_k = {ed25519_k, sizeof(ed25519_k)-1};
+unsigned char rsa_d[] =
+ "\x0e\x99\x80\x44\x6e\x42\x43\x14\xbe\x01\xeb\x0d\x90\x69\xa9\x6a\xe7\xa9\x88\x2c\xf5\x24\x11\x7f\x27\x09\xf2\x89\x7e\xaf\x13\x35\x21\xd1\x8a\x5d\xdf\xd4\x99\xce\xdc\x2b\x0f\x1b\xc5\x3c\x98\xd0\x68\xa5\x65\x8e\x69\x75\xce\x42\x69\x20\x35\x6c\xaa\xf1\xdd\xc9\x57\x6c\x7b\xc3\x3e\x42\x7e\xa1\xc3\x8c\x76\xa7\x9a\xe8\x81\xdb\xe1\x84\x82\xf5\x99\xd5\xa8\xee\x35\x9e\x54\x94\xc5\x44\xa0\x7b\xcc\xb7\x4c\x3e\xcd\xf2\x49\xdb\x5c\x21\x06\x85\xf6\x75\x00\x43\x62\x89\x12\xf9\x5d\x90\xed\xe6\xfd\xb4\x49\x14\x4a\x79\xe2\x4d";
+unsigned char rsa_p[] =
+ "\x00\xd8\xcb\xe4\x65\x4e\x6c\x11\x0f\xa8\x72\xed\x4b\x4c\x8d\x1d\x07\xdc\x24\x99\x25\xe4\x3c\xb2\xf3\x02\xc4\x72\xe6\x3a\x5b\x86\xf4\x7d\x54\x2a\x4e\x79\x64\x16\x1f\x45\x3b\x17\x9e\x2a\x94\x90\x90\x59\xe7\x0b\x95\xd4\xbf\xa9\x47\xd1\x0a\x71\xaf\x3d\x6b\xed\x55";
+unsigned char rsa_q[] =
+ "\x00\xdd\x49\x81\x7a\x5c\x04\xbf\x6b\xbd\x70\x05\x35\x42\x32\xa3\x9b\x08\xee\xd4\x98\x17\x6e\xb8\xc4\xa2\x12\xbe\xdc\x1e\x72\xd0\x44\x84\x5c\xf0\x30\x35\x04\xfd\x4e\xb0\xcc\xd6\x6f\x40\xcb\x16\x13\x58\xbc\x57\xf7\x77\x48\xe5\x0c\x0d\x14\x9b\x66\x6e\xd8\xde\x05";
+unsigned char rsa_u[] =
+ "\x4a\x74\x5c\x95\x83\x54\xa3\xb0\x71\x35\xba\x02\x3a\x7d\x4a\x8c\x2d\x9a\x26\x77\x60\x36\x28\xd4\xb1\x7d\x8a\x06\xf8\x89\xa2\xef\xb1\x66\x46\x7d\xb9\xd4\xde\xbc\xa3\xbe\x46\xfa\x62\xe1\x63\x82\xdc\xdb\x64\x36\x47\x59\x00\xa8\xf3\xf7\x0e\xb4\xe0\x66\x3d\xd9";
+unsigned char rsa_e1[] =
+ "\x45\x20\x96\x5e\x1b\x28\x68\x34\x46\xf1\x06\x6b\x09\x28\xc1\xc5\xfc\xd3\x0a\xa6\x43\x65\x7b\x65\xf3\x4e\xf2\x98\x28\xa9\x80\x99\xba\xd0\xb8\x80\xb7\x42\x4b\xaf\x82\xe2\xb9\xc0\x2c\x31\x9c\xfa\xfa\x3f\xaa\xb9\x06\xd2\x6a\x46\xc5\x08\x00\x81\xf1\x22\xd5\xd5";
+unsigned char rsa_e2[] =
+ "\x00\xa6\x50\x60\xa7\xfe\x10\xf3\x6d\x9e\x6b\x5a\xfe\xb4\x4a\x2a\xfc\x92\xb2\x2d\xc6\x41\x96\x4d\xf8\x3b\x77\xab\x4a\xf4\xf7\x85\xe0\x79\x3b\x00\xaa\xba\xae\x8d\x53\x5f\x3e\x14\xcc\x78\xfe\x2a\x11\x50\x57\xfe\x25\x57\xd9\xc9\x8c\x4d\x28\x77\xc3\x7c\xfc\x31\xa1";
+
+unsigned char ecc_x[] =
+ "\x3c\x15\x6f\x1d\x48\x3e\x64\x59\x13\x2c\x6d\x04\x1a\x38\x0d\x30\x5c\xe4\x3f\x55\xcb\xd9\x17\x15\x46\x72\x71\x92\xc1\xf8\xc6\x33";
+unsigned char ecc_y[] =
+ "\x3d\x04\x2e\xc8\xc1\x0f\xc0\x50\x04\x7b\x9f\xc9\x48\xb5\x40\xfa\x6f\x93\x82\x59\x61\x5e\x72\x57\xcb\x83\x06\xbd\xcc\x82\x94\xc1";
+unsigned char ecc_k[] =
+ "\x00\xfd\x2b\x00\x80\xf3\x36\x5f\x11\x32\x65\xe3\x8d\x30\x33\x3b\x47\xf5\xce\xf8\x13\xe5\x4c\xc2\xcf\xfd\xe8\x05\x6a\xca\xc9\x41\xb1";
+
+unsigned char false_ed25519_x[] =
+ "\xac\xac\x9a\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x84\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
+unsigned char ed25519_x[] =
+ "\xab\xaf\x98\xb3\xc3\x41\x8d\x41\x22\x21\xc1\x86\xa7\xb8\x70\xfb\x44\x6e\xc7\x7e\x20\x87\x7b\xd9\x22\xa4\x5d\xd2\x97\x09\xd5\x48";
+unsigned char ed25519_k[] =
+ "\x1c\xa9\x23\xdc\x35\xa8\xfd\xd6\x2d\xa8\x98\xb9\x60\x7b\xce\x10\x3d\xf4\x64\xc6\xe5\x4b\x0a\x65\x56\x6a\x3c\x73\x65\x51\xa2\x2f";
+
+gnutls_datum_t _dsa_p = { dsa_p, sizeof(dsa_p) - 1 };
+gnutls_datum_t _dsa_q = { dsa_q, sizeof(dsa_q) - 1 };
+gnutls_datum_t _dsa_g = { dsa_g, sizeof(dsa_g) - 1 };
+gnutls_datum_t _dsa_y = { dsa_y, sizeof(dsa_y) - 1 };
+gnutls_datum_t _dsa_x = { dsa_x, sizeof(dsa_x) - 1 };
+
+gnutls_datum_t _rsa_m = { rsa_m, sizeof(rsa_m) - 1 };
+gnutls_datum_t _rsa_e = { rsa_e, sizeof(rsa_e) - 1 };
+gnutls_datum_t _rsa_d = { rsa_d, sizeof(rsa_d) - 1 };
+gnutls_datum_t _rsa_p = { rsa_p, sizeof(rsa_p) - 1 };
+gnutls_datum_t _rsa_q = { rsa_q, sizeof(rsa_q) - 1 };
+gnutls_datum_t _rsa_u = { rsa_u, sizeof(rsa_u) - 1 };
+gnutls_datum_t _rsa_e1 = { rsa_e1, sizeof(rsa_e1) - 1 };
+gnutls_datum_t _rsa_e2 = { rsa_e2, sizeof(rsa_e2) - 1 };
+
+gnutls_datum_t _ecc_x = { ecc_x, sizeof(ecc_x) - 1 };
+gnutls_datum_t _ecc_y = { ecc_y, sizeof(ecc_y) - 1 };
+gnutls_datum_t _ecc_k = { ecc_k, sizeof(ecc_k) - 1 };
+
+gnutls_datum_t _false_ed25519_x =
+ { false_ed25519_x, sizeof(false_ed25519_x) - 1 };
+gnutls_datum_t _ed25519_x = { ed25519_x, sizeof(ed25519_x) - 1 };
+gnutls_datum_t _ed25519_k = { ed25519_k, sizeof(ed25519_k) - 1 };
unsigned char ecc_params[] = "\x06\x08\x2a\x86\x48\xce\x3d\x03\x01\x07";
-unsigned char ecc_point[] = "\x04\x41\x04\x3c\x15\x6f\x1d\x48\x3e\x64\x59\x13\x2c\x6d\x04\x1a\x38\x0d\x30\x5c\xe4\x3f\x55\xcb\xd9\x17\x15\x46\x72\x71\x92\xc1\xf8\xc6\x33\x3d\x04\x2e\xc8\xc1\x0f\xc0\x50\x04\x7b\x9f\xc9\x48\xb5\x40\xfa\x6f\x93\x82\x59\x61\x5e\x72\x57\xcb\x83\x06\xbd\xcc\x82\x94\xc1";
+unsigned char ecc_point[] =
+ "\x04\x41\x04\x3c\x15\x6f\x1d\x48\x3e\x64\x59\x13\x2c\x6d\x04\x1a\x38\x0d\x30\x5c\xe4\x3f\x55\xcb\xd9\x17\x15\x46\x72\x71\x92\xc1\xf8\xc6\x33\x3d\x04\x2e\xc8\xc1\x0f\xc0\x50\x04\x7b\x9f\xc9\x48\xb5\x40\xfa\x6f\x93\x82\x59\x61\x5e\x72\x57\xcb\x83\x06\xbd\xcc\x82\x94\xc1";
#define CMP(name, dat, v) cmp(name, __LINE__, dat, v, sizeof(v)-1)
-static int cmp(const char *name, int line, gnutls_datum_t *v1, unsigned char *v2, unsigned size)
+static int cmp(const char *name, int line, gnutls_datum_t * v1,
+ unsigned char *v2, unsigned size)
{
if (size != v1->size) {
fprintf(stderr, "error in %s:%d size\n", name, line);
@@ -133,12 +154,13 @@ static int cmp(const char *name, int line, gnutls_datum_t *v1, unsigned char *v2
/* leading zero on v2 is ignored */
#define CMP_NO_LZ(name, dat, v) cmp_no_lz(name, __LINE__, dat, v, sizeof(v)-1)
-static int cmp_no_lz(const char *name, int line, gnutls_datum_t *v1, unsigned char *i2, unsigned size)
+static int cmp_no_lz(const char *name, int line, gnutls_datum_t * v1,
+ unsigned char *i2, unsigned size)
{
gnutls_datum_t v2;
if (size > 0 && i2[0] == 0) {
v2.data = &i2[1];
- v2.size = size-1;
+ v2.size = size - 1;
} else {
v2.data = i2;
v2.size = size;
@@ -176,7 +198,9 @@ int check_pubkey_import_export(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_pubkey_import_dsa_raw(key, &_dsa_p, &_dsa_q, &_dsa_g, &_dsa_y);
+ ret =
+ gnutls_pubkey_import_dsa_raw(key, &_dsa_p, &_dsa_q, &_dsa_g,
+ &_dsa_y);
if (ret < 0)
fail("error\n");
@@ -198,7 +222,9 @@ int check_pubkey_import_export(void)
gnutls_free(g.data);
gnutls_free(y.data);
- ret = gnutls_pubkey_export_dsa_raw2(key, &p, &q, &g, &y, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_pubkey_export_dsa_raw2(key, &p, &q, &g, &y,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
@@ -235,7 +261,9 @@ int check_pubkey_import_export(void)
gnutls_free(m.data);
gnutls_free(e.data);
- ret = gnutls_pubkey_export_rsa_raw2(key, &m, &e, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_pubkey_export_rsa_raw2(key, &m, &e,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error\n");
@@ -250,7 +278,9 @@ int check_pubkey_import_export(void)
if (ret < 0)
fail("error\n");
- ret = gnutls_pubkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_SECP256R1, &_ecc_x, &_ecc_y);
+ ret =
+ gnutls_pubkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_SECP256R1,
+ &_ecc_x, &_ecc_y);
if (ret < 0)
fail("error\n");
@@ -272,7 +302,9 @@ int check_pubkey_import_export(void)
gnutls_free(x.data);
gnutls_free(y.data);
- ret = gnutls_pubkey_export_ecc_raw2(key, &curve, &x, &y, GNUTLS_EXPORT_FLAG_NO_LZ);
+ ret =
+ gnutls_pubkey_export_ecc_raw2(key, &curve, &x, &y,
+ GNUTLS_EXPORT_FLAG_NO_LZ);
if (ret < 0)
fail("error\n");
@@ -292,11 +324,15 @@ int check_pubkey_import_export(void)
fail("error\n");
/* test whether an invalid size would fail */
- ret = gnutls_pubkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519, &_rsa_m, NULL);
+ ret =
+ gnutls_pubkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519, &_rsa_m,
+ NULL);
if (ret != GNUTLS_E_INVALID_REQUEST)
fail("error\n");
- ret = gnutls_pubkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519, &_ed25519_x, NULL);
+ ret =
+ gnutls_pubkey_import_ecc_raw(key, GNUTLS_ECC_CURVE_ED25519,
+ &_ed25519_x, NULL);
if (ret < 0)
fail("error\n");
diff --git a/tests/random-art.c b/tests/random-art.c
index 3737cba39d..8afa87aa9e 100644
--- a/tests/random-art.c
+++ b/tests/random-art.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,23 +35,28 @@
/* This checks random art encoding */
-static void encode(const char *test_name, const char *type, unsigned key_size, unsigned char *input, unsigned input_size, const char *expected)
+static void encode(const char *test_name, const char *type, unsigned key_size,
+ unsigned char *input, unsigned input_size,
+ const char *expected)
{
int ret;
gnutls_datum_t out;
- ret = gnutls_random_art(GNUTLS_RANDOM_ART_OPENSSH, type, key_size, input, input_size, &out);
+ ret =
+ gnutls_random_art(GNUTLS_RANDOM_ART_OPENSSH, type, key_size, input,
+ input_size, &out);
if (ret < 0) {
- fail("%s: gnutls_random_art: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_random_art: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (strlen(expected)!=out.size) {
+ if (strlen(expected) != out.size) {
fail("%s: gnutls_random_art: output has incorrect size (%d, expected %d)\n%s\n", test_name, (int)out.size, (int)strlen(expected), out.data);
exit(1);
}
- if (strncasecmp(expected, (char*)out.data, out.size) != 0) {
+ if (strncasecmp(expected, (char *)out.data, out.size) != 0) {
fail("%s: gnutls_random_art: output does not match the expected:\n%s\n", test_name, out.data);
exit(1);
}
@@ -61,7 +66,6 @@ static void encode(const char *test_name, const char *type, unsigned key_size, u
return;
}
-
struct encode_tests_st {
const char *name;
unsigned char *raw;
@@ -73,68 +77,62 @@ struct encode_tests_st {
struct encode_tests_st encode_tests[] = {
{
- .name = "key1",
- .raw = (void*)"\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb",
- .raw_size = 20,
- .key_type = "RSA",
- .key_size = 2048,
- .art = "+--[ RSA 2048]----+\n"
- "|.o*++==o |\n"
- "| + *.===. |\n"
- "|. * + +.o |\n"
- "| o . o + . |\n"
- "|. + S |\n"
- "| . o |\n"
- "|E |\n"
- "| |\n"
- "| |\n"
- "+-----------------+"
- },
+ .name = "key1",
+ .raw = (void *)
+ "\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\x34\xb6\xf6\x08\x29\x4c\x50\x31\x2b\xbb",
+ .raw_size = 20,
+ .key_type = "RSA",
+ .key_size = 2048,
+ .art = "+--[ RSA 2048]----+\n"
+ "|.o*++==o |\n"
+ "| + *.===. |\n"
+ "|. * + +.o |\n"
+ "| o . o + . |\n"
+ "|. + S |\n"
+ "| . o |\n"
+ "|E |\n"
+ "| |\n" "| |\n" "+-----------------+"},
{
- .name = "key2",
- .raw = (void*)"\xf8\xa7\x1c\x08\x76\x47\x2c\x08\x38\x17\x0c\x08\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\xa4\xb6\xf6\xf8\x29\xfc\x50\x3f\x2b\xbb",
- .raw_size = 32,
- .key_type = "RSA",
- .key_size = 3072,
- .art = "+--[ RSA 3072]----+\n"
- "|@*=*+.o |\n"
- "|O.B.+* o |\n"
- "|.* +..o o |\n"
- "| . . + |\n"
- "| oo.o S |\n"
- "| ..+o.+ |\n"
- "| .o ..oo . |\n"
- "| oo...o+ |\n"
- "| oE+.o |\n"
- "+-----------------+"
- },
+ .name = "key2",
+ .raw = (void *)
+ "\xf8\xa7\x1c\x08\x76\x47\x2c\x08\x38\x17\x0c\x08\x38\x17\x0c\x08\xcb\x45\x8f\xd4\x87\x9c\xa4\xb6\xf6\xf8\x29\xfc\x50\x3f\x2b\xbb",
+ .raw_size = 32,
+ .key_type = "RSA",
+ .key_size = 3072,
+ .art = "+--[ RSA 3072]----+\n"
+ "|@*=*+.o |\n"
+ "|O.B.+* o |\n"
+ "|.* +..o o |\n"
+ "| . . + |\n"
+ "| oo.o S |\n"
+ "| ..+o.+ |\n"
+ "| .o ..oo . |\n"
+ "| oo...o+ |\n" "| oE+.o |\n" "+-----------------+"},
{
- .name = "key3",
- .raw = (void*)"\x38\xf7\x0c\x08\xcb\x34\x8a\xd4\xb7\x9c\x34\xb4\xf6\x08\x29\x4c\x50\x3f\x2b\xbb",
- .raw_size = 20,
- .key_type = "ECDSA",
- .key_size = 256,
- .art = "+--[ECDSA 256]---+\n"
- "|oo. . |\n"
- "|o ..o . |\n"
- "| + +** |\n"
- "|...+***o |\n"
- "|. o +=+.S |\n"
- "| o o + |\n"
- "| . o |\n"
- "| . |\n"
- "| E |\n"
- "+-----------------+"
- }
+ .name = "key3",
+ .raw = (void *)
+ "\x38\xf7\x0c\x08\xcb\x34\x8a\xd4\xb7\x9c\x34\xb4\xf6\x08\x29\x4c\x50\x3f\x2b\xbb",
+ .raw_size = 20,
+ .key_type = "ECDSA",
+ .key_size = 256,
+ .art = "+--[ECDSA 256]---+\n"
+ "|oo. . |\n"
+ "|o ..o . |\n"
+ "| + +** |\n"
+ "|...+***o |\n"
+ "|. o +=+.S |\n"
+ "| o o + |\n"
+ "| . o |\n"
+ "| . |\n" "| E |\n" "+-----------------+"}
};
void doit(void)
{
unsigned i;
- for (i=0;i<sizeof(encode_tests)/sizeof(encode_tests[0]);i++) {
- encode(encode_tests[i].name, encode_tests[i].key_type, encode_tests[i].key_size,
- encode_tests[i].raw, encode_tests[i].raw_size, encode_tests[i].art);
+ for (i = 0; i < sizeof(encode_tests) / sizeof(encode_tests[0]); i++) {
+ encode(encode_tests[i].name, encode_tests[i].key_type,
+ encode_tests[i].key_size, encode_tests[i].raw,
+ encode_tests[i].raw_size, encode_tests[i].art);
}
}
-
diff --git a/tests/rawpk-api.c b/tests/rawpk-api.c
index 96dd0a9ff6..42ca87a013 100644
--- a/tests/rawpk-api.c
+++ b/tests/rawpk-api.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,7 +39,7 @@ void doit(void)
{
int ret;
gnutls_certificate_credentials_t cred = NULL;
- gnutls_pcert_st* pcert;
+ gnutls_pcert_st *pcert;
gnutls_pubkey_t pubkey;
const char *src;
char rawpk_pub_path[256];
@@ -51,9 +51,10 @@ void doit(void)
src = ".";
// Set file paths for pem files
- snprintf(rawpk_pub_path, sizeof(rawpk_pub_path), "%s/%s", src, "certs/rawpk_pub.pem");
- snprintf(rawpk_priv_path, sizeof(rawpk_priv_path), "%s/%s", src, "certs/rawpk_priv.pem");
-
+ snprintf(rawpk_pub_path, sizeof(rawpk_pub_path), "%s/%s", src,
+ "certs/rawpk_pub.pem");
+ snprintf(rawpk_priv_path, sizeof(rawpk_priv_path), "%s/%s", src,
+ "certs/rawpk_priv.pem");
global_init();
@@ -61,51 +62,67 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&cred) >= 0);
assert((pcert = gnutls_calloc(1, sizeof(*pcert))) != NULL);
assert(gnutls_pubkey_init(&pubkey) >= 0);
- assert(gnutls_pubkey_import(pubkey, &rawpk_public_key1, GNUTLS_X509_FMT_PEM) >= 0);
-
+ assert(gnutls_pubkey_import
+ (pubkey, &rawpk_public_key1, GNUTLS_X509_FMT_PEM) >= 0);
/* Tests for gnutls_certificate_set_rawpk_key_mem() */
success("Testing gnutls_certificate_set_rawpk_key_mem()...\n");
// Positive tests
ret = gnutls_certificate_set_rawpk_key_mem(cred,
- &rawpk_public_key2, &rawpk_private_key2, GNUTLS_X509_FMT_PEM,
- NULL, 0, NULL, 0, 0);
+ &rawpk_public_key2,
+ &rawpk_private_key2,
+ GNUTLS_X509_FMT_PEM, NULL, 0,
+ NULL, 0, 0);
if (ret < 0) {
fail("Failed to load credentials with error: %d\n", ret);
}
// Negative tests
ret = gnutls_certificate_set_rawpk_key_mem(cred,
- NULL, &rawpk_private_key2, GNUTLS_X509_FMT_PEM,
- NULL, 0, NULL, 0, 0);
+ NULL, &rawpk_private_key2,
+ GNUTLS_X509_FMT_PEM, NULL, 0,
+ NULL, 0, 0);
if (ret != GNUTLS_E_INSUFFICIENT_CREDENTIALS) {
- fail("Failed to detect falsy input. Expected error: %d\n", GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ fail("Failed to detect falsy input. Expected error: %d\n",
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS);
}
ret = gnutls_certificate_set_rawpk_key_mem(cred,
- &rawpk_public_key2, NULL, GNUTLS_X509_FMT_PEM,
- NULL, 0, NULL, 0, 0);
+ &rawpk_public_key2, NULL,
+ GNUTLS_X509_FMT_PEM, NULL, 0,
+ NULL, 0, 0);
if (ret != GNUTLS_E_INSUFFICIENT_CREDENTIALS) {
- fail("Failed to detect falsy input. Expected error: %d\n", GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ fail("Failed to detect falsy input. Expected error: %d\n",
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS);
}
-
/* Tests for gnutls_certificate_set_rawpk_key_file() */
success("Testing gnutls_certificate_set_rawpk_key_file()...\n");
// Positive tests
- ret = gnutls_certificate_set_rawpk_key_file(cred, rawpk_pub_path, rawpk_priv_path, GNUTLS_X509_FMT_PEM, NULL, 0, NULL, 0, 0, 0);
+ ret =
+ gnutls_certificate_set_rawpk_key_file(cred, rawpk_pub_path,
+ rawpk_priv_path,
+ GNUTLS_X509_FMT_PEM, NULL, 0,
+ NULL, 0, 0, 0);
if (ret < 0) {
fail("Failed to load credentials with error: %d\n", ret);
}
// Negative tests
- ret = gnutls_certificate_set_rawpk_key_file(cred, NULL, rawpk_priv_path, GNUTLS_X509_FMT_PEM, NULL, 0, NULL, 0, 0, 0);
+ ret =
+ gnutls_certificate_set_rawpk_key_file(cred, NULL, rawpk_priv_path,
+ GNUTLS_X509_FMT_PEM, NULL, 0,
+ NULL, 0, 0, 0);
if (ret != GNUTLS_E_INSUFFICIENT_CREDENTIALS) {
- fail("Failed to detect falsy input. Expected error: %d\n", GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ fail("Failed to detect falsy input. Expected error: %d\n",
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS);
}
- ret = gnutls_certificate_set_rawpk_key_file(cred, rawpk_pub_path, NULL, GNUTLS_X509_FMT_PEM, NULL, 0, NULL, 0, 0, 0);
+ ret =
+ gnutls_certificate_set_rawpk_key_file(cred, rawpk_pub_path, NULL,
+ GNUTLS_X509_FMT_PEM, NULL, 0,
+ NULL, 0, 0, 0);
if (ret != GNUTLS_E_INSUFFICIENT_CREDENTIALS) {
- fail("Failed to detect falsy input. Expected error: %d\n", GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ fail("Failed to detect falsy input. Expected error: %d\n",
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS);
}
-
/* Tests for gnutls_pcert_import_rawpk() */
success("Testing gnutls_pcert_import_rawpk()...\n");
// Positive tests
@@ -116,32 +133,35 @@ void doit(void)
// Negative tests
ret = gnutls_pcert_import_rawpk(pcert, NULL, 0);
if (ret != GNUTLS_E_INSUFFICIENT_CREDENTIALS) {
- fail("Failed to detect falsy input. Expected error: %d\n", GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ fail("Failed to detect falsy input. Expected error: %d\n",
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS);
}
// Cleanup to prevent subsequent API calls to produce memory leaks
gnutls_pcert_deinit(pcert);
-
/* Tests for gnutls_pcert_import_rawpk_raw() */
success("Testing gnutls_pcert_import_rawpk_raw()...\n");
// Positive tests
- ret = gnutls_pcert_import_rawpk_raw(pcert, &rawpk_public_key1, GNUTLS_X509_FMT_PEM, 0, 0);
+ ret =
+ gnutls_pcert_import_rawpk_raw(pcert, &rawpk_public_key1,
+ GNUTLS_X509_FMT_PEM, 0, 0);
if (ret < 0) {
fail("Failed to import raw public-key into pcert with error: %d\n", ret);
}
// Negative tests
- ret = gnutls_pcert_import_rawpk_raw(pcert, NULL, GNUTLS_X509_FMT_PEM, 0, 0);
+ ret =
+ gnutls_pcert_import_rawpk_raw(pcert, NULL, GNUTLS_X509_FMT_PEM, 0,
+ 0);
if (ret != GNUTLS_E_INSUFFICIENT_CREDENTIALS) {
- fail("Failed to detect falsy input. Expected error: %d\n", GNUTLS_E_INSUFFICIENT_CREDENTIALS);
+ fail("Failed to detect falsy input. Expected error: %d\n",
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS);
}
// Cleanup to prevent subsequent API calls to produce memory leaks
gnutls_pcert_deinit(pcert);
-
// Generic cleanup
gnutls_free(pcert);
gnutls_certificate_free_credentials(cred);
gnutls_global_deinit();
}
-
diff --git a/tests/record-pad.c b/tests/record-pad.c
index f625163179..8eb00b0642 100644
--- a/tests/record-pad.c
+++ b/tests/record-pad.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,23 +35,23 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
-
-#define MAX_BUF 1024
-#define HIGH(x) (3*x)
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
+
+# define MAX_BUF 1024
+# define HIGH(x) (3*x)
static void terminate(void);
static size_t total;
@@ -68,16 +68,12 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
/* A very basic TLS client, with anonymous authentication.
*/
-
-
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
total += len;
return send(fd, data, len, 0);
@@ -111,8 +107,8 @@ static void client(int fd, struct test_st *test)
gnutls_anon_allocate_client_credentials(&anoncred);
gnutls_certificate_allocate_credentials(&x509_cred);
- assert(gnutls_init(&session, GNUTLS_CLIENT|test->flags)>=0);
- assert(gnutls_priority_set_direct(session, test->prio, NULL)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | test->flags) >= 0);
+ assert(gnutls_priority_set_direct(session, test->prio, NULL) >= 0);
/* put the anonymous credentials to the current session
*/
@@ -144,15 +140,14 @@ static void client(int fd, struct test_st *test)
do {
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer));
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ ret =
+ gnutls_record_recv(session, buffer, sizeof(buffer));
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -175,7 +170,6 @@ static void client(int fd, struct test_st *test)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -207,14 +201,13 @@ static void server(int fd, struct test_st *test)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
- assert(gnutls_init(&session, GNUTLS_SERVER|test->flags)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER | test->flags) >= 0);
- assert(gnutls_priority_set_direct(session, test->prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, test->prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -248,30 +241,27 @@ static void server(int fd, struct test_st *test)
do {
ret =
gnutls_record_send2(session, buffer,
- test->data,
- test->pad, 0);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ test->data, test->pad, 0);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (test->sret < 0) {
if (ret >= 0)
fail("server: expected failure got success!\n");
if (ret != test->sret)
- fail("server: expected different failure: '%s', got: '%s'\n",
- gnutls_strerror(test->sret), gnutls_strerror(ret));
+ fail("server: expected different failure: '%s', got: '%s'\n", gnutls_strerror(test->sret), gnutls_strerror(ret));
goto finish;
}
if (ret < 0) {
- fail("Error sending packet: %s\n",
- gnutls_strerror(ret));
+ fail("Error sending packet: %s\n", gnutls_strerror(ret));
terminate();
}
- expected = test->data + test->pad + gnutls_record_overhead_size(session);
+ expected =
+ test->data + test->pad + gnutls_record_overhead_size(session);
if (total != expected) {
fail("Sent data (%u) are lower than expected (%u)\n",
- (unsigned) total, (unsigned) expected);
+ (unsigned)total, (unsigned)expected);
terminate();
}
@@ -324,7 +314,7 @@ static void start(struct test_st *test)
}
}
-#define AES_GCM "NONE:+VERS-TLS1.3:+AES-256-GCM:+AEAD:+SIGN-ALL:+GROUP-ALL"
+# define AES_GCM "NONE:+VERS-TLS1.3:+AES-256-GCM:+AEAD:+SIGN-ALL:+GROUP-ALL"
static void ch_handler(int sig)
{
@@ -334,72 +324,62 @@ static void ch_handler(int sig)
return;
}
-struct test_st tests[] =
-{
+struct test_st tests[] = {
{
- .name = "AES-GCM with max pad",
- .pad = HIGH(MAX_BUF+1)-(MAX_BUF+1),
- .data = MAX_BUF,
- .prio = AES_GCM,
- .flags = 0
- },
+ .name = "AES-GCM with max pad",
+ .pad = HIGH(MAX_BUF + 1) - (MAX_BUF + 1),
+ .data = MAX_BUF,
+ .prio = AES_GCM,
+ .flags = 0},
{
- .name = "AES-GCM with zero pad",
- .pad = 0,
- .data = MAX_BUF,
- .prio = AES_GCM,
- .flags = 0
- },
+ .name = "AES-GCM with zero pad",
+ .pad = 0,
+ .data = MAX_BUF,
+ .prio = AES_GCM,
+ .flags = 0},
{
- .name = "AES-GCM with 1-byte pad",
- .pad = 1,
- .data = MAX_BUF,
- .prio = AES_GCM,
- .flags = 0
- },
+ .name = "AES-GCM with 1-byte pad",
+ .pad = 1,
+ .data = MAX_BUF,
+ .prio = AES_GCM,
+ .flags = 0},
{
- .name = "AES-GCM with pad, but no data",
- .pad = 16,
- .data = 0,
- .prio = AES_GCM,
- .flags = 0
- },
+ .name = "AES-GCM with pad, but no data",
+ .pad = 16,
+ .data = 0,
+ .prio = AES_GCM,
+ .flags = 0},
{
- .name = "AES-GCM with max pad and safe padding check",
- .pad = HIGH(MAX_BUF+1)-(MAX_BUF+1),
- .data = MAX_BUF,
- .prio = AES_GCM,
- .flags = GNUTLS_SAFE_PADDING_CHECK
- },
+ .name = "AES-GCM with max pad and safe padding check",
+ .pad = HIGH(MAX_BUF + 1) - (MAX_BUF + 1),
+ .data = MAX_BUF,
+ .prio = AES_GCM,
+ .flags = GNUTLS_SAFE_PADDING_CHECK},
{
- .name = "AES-GCM with zero pad and safe padding check",
- .pad = 0,
- .data = MAX_BUF,
- .prio = AES_GCM,
- .flags = GNUTLS_SAFE_PADDING_CHECK
- },
+ .name = "AES-GCM with zero pad and safe padding check",
+ .pad = 0,
+ .data = MAX_BUF,
+ .prio = AES_GCM,
+ .flags = GNUTLS_SAFE_PADDING_CHECK},
{
- .name = "AES-GCM with 1-byte pad and safe padding check",
- .pad = 1,
- .data = MAX_BUF,
- .prio = AES_GCM,
- .flags = GNUTLS_SAFE_PADDING_CHECK
- },
+ .name = "AES-GCM with 1-byte pad and safe padding check",
+ .pad = 1,
+ .data = MAX_BUF,
+ .prio = AES_GCM,
+ .flags = GNUTLS_SAFE_PADDING_CHECK},
{
- .name = "AES-GCM with pad, but no data and safe padding check",
- .pad = 16,
- .data = 0,
- .prio = AES_GCM,
- .flags = GNUTLS_SAFE_PADDING_CHECK
- },
+ .name = "AES-GCM with pad, but no data and safe padding check",
+ .pad = 16,
+ .data = 0,
+ .prio = AES_GCM,
+ .flags = GNUTLS_SAFE_PADDING_CHECK},
{
- .name = "AES-GCM with pad, but no data and no pad",
- .pad = 0,
- .data = 0,
- .prio = AES_GCM,
- .flags = GNUTLS_SAFE_PADDING_CHECK,
- .sret = GNUTLS_E_INVALID_REQUEST
- },
+ .name = "AES-GCM with pad, but no data and no pad",
+ .pad = 0,
+ .data = 0,
+ .prio = AES_GCM,
+ .flags = GNUTLS_SAFE_PADDING_CHECK,
+ .sret = GNUTLS_E_INVALID_REQUEST},
};
void doit(void)
@@ -407,7 +387,7 @@ void doit(void)
unsigned i;
signal(SIGCHLD, ch_handler);
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
start(&tests[i]);
}
}
diff --git a/tests/record-retvals.c b/tests/record-retvals.c
index e9dbf8ce0d..827405b1d7 100644
--- a/tests/record-retvals.c
+++ b/tests/record-retvals.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -105,18 +105,17 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 24*1024
+# define MAX_BUF 24*1024
static void client(int fd, const char *prio, int ign)
{
int ret;
unsigned i;
char buffer[MAX_BUF + 1];
- const char* err;
+ const char *err;
gnutls_anon_client_credentials_t anoncred;
gnutls_certificate_credentials_t x509_cred;
gnutls_session_t session;
@@ -176,11 +175,11 @@ static void client(int fd, const char *prio, int ign)
for (i = 1; i < 16384; i++) {
do {
ret = gnutls_record_send(session, buffer, i);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
- fail("server (%s): Error sending %d byte packet: %s\n", prio, i, gnutls_strerror(ret));
+ fail("server (%s): Error sending %d byte packet: %s\n",
+ prio, i, gnutls_strerror(ret));
exit(1);
}
@@ -220,14 +219,12 @@ static void client(int fd, const char *prio, int ign)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -238,7 +235,7 @@ static void client(int fd, const char *prio, int ign)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -250,7 +247,6 @@ static void client(int fd, const char *prio, int ign)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -265,7 +261,7 @@ static void server(int fd, const char *prio, int ign)
{
int ret;
unsigned i;
- const char* err;
+ const char *err;
char buffer[MAX_BUF + 1];
gnutls_session_t session;
gnutls_anon_server_credentials_t anoncred;
@@ -283,8 +279,7 @@ static void server(int fd, const char *prio, int ign)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
@@ -332,13 +327,13 @@ static void server(int fd, const char *prio, int ign)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret > 0 && ret != (int)i) {
- if (ret == 4 && (uint8_t)buffer[0] == 0xff) {
+ if (ret == 4 && (uint8_t) buffer[0] == 0xff) {
break;
} else {
- fail("error receiving message[%d]: ret: %d\n", i, ret);
+ fail("error receiving message[%d]: ret: %d\n",
+ i, ret);
}
}
i++;
@@ -353,11 +348,11 @@ static void server(int fd, const char *prio, int ign)
for (i = 1; i < 16384; i++) {
do {
ret = gnutls_record_send(session, buffer, i);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
- fail("server (%s): Error sending %d byte packet: %s\n", prio, i, gnutls_strerror(ret));
+ fail("server (%s): Error sending %d byte packet: %s\n",
+ prio, i, gnutls_strerror(ret));
terminate();
}
}
@@ -422,15 +417,15 @@ static void start(const char *prio, int ign)
}
}
-#define AES_CBC "NONE:+VERS-TLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CBC_SHA256 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define TLS13_AES_GCM "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+CURVE-ALL"
+# define AES_CBC "NONE:+VERS-TLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC_SHA256 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define TLS13_AES_GCM "NONE:+VERS-TLS1.3:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-NULL:+CURVE-ALL"
-#define ARCFOUR_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
-#define ARCFOUR_MD5 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+MD5:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL:+RSA"
+# define ARCFOUR_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL"
+# define ARCFOUR_MD5 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+ARCFOUR-128:+MD5:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+CURVE-ALL:+RSA"
-#define NULL_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+NULL:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+RSA:+CURVE-ALL"
+# define NULL_SHA1 "NONE:+VERS-TLS1.0:-CIPHER-ALL:+NULL:+SHA1:+SIGN-ALL:+COMP-NULL:+ANON-ECDH:+RSA:+CURVE-ALL"
static void ch_handler(int sig)
{
diff --git a/tests/record-sendfile.c b/tests/record-sendfile.c
index 4876adfb4c..aab7890cb4 100644
--- a/tests/record-sendfile.c
+++ b/tests/record-sendfile.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -34,24 +34,23 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/crypto.h>
-#include <gnutls/dtls.h>
-#include <gnutls/socket.h>
-#include <signal.h>
-#include <assert.h>
-#include <errno.h>
-
-#include "cert-common.h"
-#include "utils.h"
-
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/crypto.h>
+# include <gnutls/dtls.h>
+# include <gnutls/socket.h>
+# include <signal.h>
+# include <assert.h>
+# include <errno.h>
+
+# include "cert-common.h"
+# include "utils.h"
static void server_log_func(int level, const char *str)
{
@@ -63,9 +62,9 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
-#define MSG "Hello world!"
-#define OFFSET 2
+# define MAX_BUF 1024
+# define MSG "Hello world!"
+# define OFFSET 2
static void client(int fd, const char *prio)
{
@@ -105,31 +104,31 @@ static void client(int fd, const char *prio)
success("client: Handshake was completed\n");
memset(buffer, 0, sizeof(buffer));
- do{
+ do {
ret = gnutls_record_recv(session, buffer, sizeof(buffer));
}
- while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
goto end;
}
- if(strncmp(buffer, MSG + OFFSET, ret)){
+ if (strncmp(buffer, MSG + OFFSET, ret)) {
fail("client: Message doesn't match\n");
goto end;
}
if (debug)
- success ("client: messages received\n");
+ success("client: messages received\n");
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("client: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("client: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
ret = 0;
@@ -162,15 +161,15 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
ret = gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
gnutls_init(&session, GNUTLS_SERVER);
gnutls_handshake_set_timeout(session, 0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -191,11 +190,12 @@ static void server(int fd, const char *prio)
success("server: Handshake was completed\n");
FILE *fp = tmpfile();
- if (fp == NULL){
+ if (fp == NULL) {
fail("temporary file for testing couldn't be created");
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0)
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
goto end;
}
@@ -209,21 +209,23 @@ static void server(int fd, const char *prio)
}
do {
- ret = gnutls_record_send_file(session, fileno(fp), &offset, 512);
+ ret =
+ gnutls_record_send_file(session, fileno(fp), &offset, 512);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("server: sending file has failed (%s)\n\n",
gnutls_strerror(ret));
- goto end;
+ goto end;
}
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0)
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
ret = 0;
-end:
+ end:
close(fd);
gnutls_deinit(session);
diff --git a/tests/record-sizes-range.c b/tests/record-sizes-range.c
index 35b5122f81..07cbcb3959 100644
--- a/tests/record-sizes-range.c
+++ b/tests/record-sizes-range.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -57,12 +57,12 @@ static void try_send(gnutls_session_t client, gnutls_session_t server,
ret = gnutls_record_send_range(client, b1, b1_size, range);
if (ret < 0) {
fprintf(stderr, "Error sending %d bytes: %s\n",
- (int) b1_size, gnutls_strerror(ret));
+ (int)b1_size, gnutls_strerror(ret));
exit(1);
}
if (ret != b1_size) {
- fprintf(stderr, "Couldn't send %d bytes\n", (int) b1_size);
+ fprintf(stderr, "Couldn't send %d bytes\n", (int)b1_size);
exit(1);
}
@@ -71,7 +71,7 @@ static void try_send(gnutls_session_t client, gnutls_session_t server,
ret = gnutls_record_recv(server, b2, b2_size);
if (ret < 0) {
fprintf(stderr, "Error receiving %d bytes: %s\n",
- (int) b2_size, gnutls_strerror(ret));
+ (int)b2_size, gnutls_strerror(ret));
exit(1);
}
recvd += ret;
@@ -80,7 +80,7 @@ static void try_send(gnutls_session_t client, gnutls_session_t server,
if (recvd != b1_size) {
fprintf(stderr, "Couldn't receive %d bytes, received %d\n",
- (int) b1_size, recvd);
+ (int)b1_size, recvd);
exit(1);
}
@@ -90,8 +90,7 @@ void doit(void)
{
/* Server stuff. */
gnutls_anon_server_credentials_t s_anoncred;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
static gnutls_dh_params_t dh_params;
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
@@ -144,17 +143,14 @@ void doit(void)
range.low = 1024;
range.high = MAX_SEND;
-
try_send(client, server, buffer1, MAX_SEND, buffer, MAX_BUF, &range);
try_send(client, server, buffer1, 1024, buffer, MAX_BUF, &range);
try_send(client, server, buffer1, 4096, buffer, MAX_BUF, &range);
/*try_send(client, server, buffer1, 128, buffer, MAX_BUF, &range) */ ;
-
if (debug)
fputs("\n", stdout);
-
gnutls_bye(client, GNUTLS_SHUT_RDWR);
gnutls_bye(server, GNUTLS_SHUT_RDWR);
diff --git a/tests/record-sizes.c b/tests/record-sizes.c
index 65a2ab2399..8961c7f17a 100644
--- a/tests/record-sizes.c
+++ b/tests/record-sizes.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -50,8 +50,7 @@ void doit(void)
{
/* Server stuff. */
gnutls_anon_server_credentials_t s_anoncred;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
static gnutls_dh_params_t dh_params;
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
@@ -109,25 +108,25 @@ void doit(void)
ret = gnutls_record_send(client, b1, MAX_BUF);
if (ret < 0) {
fprintf(stderr, "Error sending %d bytes: %s\n",
- (int) MAX_BUF, gnutls_strerror(ret));
+ (int)MAX_BUF, gnutls_strerror(ret));
exit(1);
}
if (ret != MAX_BUF) {
- fprintf(stderr, "Couldn't send %d bytes\n", (int) MAX_BUF);
+ fprintf(stderr, "Couldn't send %d bytes\n", (int)MAX_BUF);
exit(1);
}
ret = gnutls_record_recv(server, buffer, MAX_BUF);
if (ret < 0) {
fprintf(stderr, "Error receiving %d bytes: %s\n",
- (int) MAX_BUF, gnutls_strerror(ret));
+ (int)MAX_BUF, gnutls_strerror(ret));
exit(1);
}
if (ret != MAX_BUF) {
fprintf(stderr, "Couldn't receive %d bytes, received %d\n",
- (int) MAX_BUF, ret);
+ (int)MAX_BUF, ret);
exit(1);
}
@@ -143,8 +142,6 @@ void doit(void)
if (debug)
fputs("\n", stdout);
-
-
gnutls_bye(client, GNUTLS_SHUT_RDWR);
gnutls_bye(server, GNUTLS_SHUT_RDWR);
@@ -158,4 +155,3 @@ void doit(void)
gnutls_global_deinit();
}
-
diff --git a/tests/record-timeouts.c b/tests/record-timeouts.c
index 29d94252aa..5a465a3793 100644
--- a/tests/record-timeouts.c
+++ b/tests/record-timeouts.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -64,7 +64,7 @@ static int pull_timeout_func(gnutls_transport_ptr_t ptr, unsigned int ms)
}
#define MAX_VALS 4
-static const int vals[MAX_VALS] = {0, 1000, 5000, GNUTLS_INDEFINITE_TIMEOUT};
+static const int vals[MAX_VALS] = { 0, 1000, 5000, GNUTLS_INDEFINITE_TIMEOUT };
static void start(const char *prio)
{
@@ -95,19 +95,18 @@ static void start(const char *prio)
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
/* Init client */
- assert(gnutls_certificate_allocate_credentials(&clientx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&clientx509cred) >= 0);
gnutls_init(&client, GNUTLS_CLIENT);
assert(gnutls_priority_set_direct(client, prio, NULL) >= 0);
assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred)>=0);
+ clientx509cred) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_pull_timeout_function(client, pull_timeout_func);
@@ -124,16 +123,18 @@ static void start(const char *prio)
/* Try sending various other sizes */
for (i = 1; i < 128; i++) {
called = 0;
- gnutls_record_set_timeout(client, vals[i%MAX_VALS]);
- expected_val = vals[i%MAX_VALS];
+ gnutls_record_set_timeout(client, vals[i % MAX_VALS]);
+ expected_val = vals[i % MAX_VALS];
TRANSFER(client, server, b1, i, buffer, MAX_BUF);
if (called == 0 && expected_val != 0) {
- fail("pull timeout callback was not called for %d!\n", vals[i%MAX_VALS]);
+ fail("pull timeout callback was not called for %d!\n",
+ vals[i % MAX_VALS]);
exit(1);
} else if (called != 0 && expected_val == 0) {
- fail("pull timeout callback was called for %d!\n", vals[i%MAX_VALS]);
+ fail("pull timeout callback was called for %d!\n",
+ vals[i % MAX_VALS]);
exit(1);
}
}
diff --git a/tests/recv-data-before-handshake.c b/tests/recv-data-before-handshake.c
index d52771c92e..9e0432235e 100644
--- a/tests/recv-data-before-handshake.c
+++ b/tests/recv-data-before-handshake.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -67,7 +67,8 @@ static void client_log_func(int level, const char *str)
}
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
int ret;
char c = 0;
@@ -75,23 +76,25 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
if (htype == GNUTLS_HANDSHAKE_FINISHED)
return 0;
- gnutls_record_set_timeout(session, 10*1000);
+ gnutls_record_set_timeout(session, 10 * 1000);
/* sending */
ret = gnutls_record_recv(session, &c, 1);
if (ret != GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE) {
- fail("gnutls_record_recv returned %s/%d at %s\n", gnutls_strerror(ret), ret, gnutls_handshake_description_get_name(htype));
+ fail("gnutls_record_recv returned %s/%d at %s\n",
+ gnutls_strerror(ret), ret,
+ gnutls_handshake_description_get_name(htype));
} else {
- success("expected behavior after %s\n", gnutls_handshake_description_get_name(htype));
+ success("expected behavior after %s\n",
+ gnutls_handshake_description_get_name(htype));
}
gnutls_record_set_timeout(session, 0);
return 0;
}
-
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -112,13 +115,12 @@ static void client(int fd, const char *prio)
/* Initialize TLS session
*/
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
- GNUTLS_HOOK_PRE,
- handshake_callback);
+ GNUTLS_HOOK_PRE, handshake_callback);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -152,14 +154,12 @@ static void client(int fd, const char *prio)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -168,7 +168,7 @@ static void client(int fd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -179,7 +179,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -209,15 +208,14 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
- assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
diff --git a/tests/rehandshake-ext-secret.c b/tests/rehandshake-ext-secret.c
index 8de2b8fbbb..cdb8f5e838 100644
--- a/tests/rehandshake-ext-secret.c
+++ b/tests/rehandshake-ext-secret.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -69,9 +69,9 @@ static void try(unsigned onclient)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- gnutls_priority_set_direct(server, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ gnutls_priority_set_direct(server, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -79,9 +79,9 @@ static void try(unsigned onclient)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
- gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
+ gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
@@ -89,25 +89,35 @@ static void try(unsigned onclient)
HANDSHAKE(client, server);
if (gnutls_session_ext_master_secret_status(server) == 0) {
- fail("%d: ext master secret was not detected by server\n", onclient);
+ fail("%d: ext master secret was not detected by server\n",
+ onclient);
}
if (gnutls_session_ext_master_secret_status(client) == 0) {
- fail("%d: ext master secret was not detected by client\n", onclient);
+ fail("%d: ext master secret was not detected by client\n",
+ onclient);
}
- if ((gnutls_session_get_flags(server) & GNUTLS_SFLAGS_EXT_MASTER_SECRET) == 0) {
- fail("%d: ext master secret was not detected by server\n", onclient);
+ if ((gnutls_session_get_flags(server) & GNUTLS_SFLAGS_EXT_MASTER_SECRET)
+ == 0) {
+ fail("%d: ext master secret was not detected by server\n",
+ onclient);
}
- if ((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_EXT_MASTER_SECRET) == 0) {
- fail("%d: ext master secret was not detected by client\n", onclient);
+ if ((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_EXT_MASTER_SECRET)
+ == 0) {
+ fail("%d: ext master secret was not detected by client\n",
+ onclient);
}
if (onclient)
- gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2:%NO_SESSION_HASH", NULL);
+ gnutls_priority_set_direct(client,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:%NO_SESSION_HASH",
+ NULL);
else
- gnutls_priority_set_direct(server, "NORMAL:-VERS-ALL:+VERS-TLS1.2:%NO_SESSION_HASH", NULL);
+ gnutls_priority_set_direct(server,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:%NO_SESSION_HASH",
+ NULL);
sret = gnutls_rehandshake(server);
if (debug) {
@@ -125,9 +135,11 @@ static void try(unsigned onclient)
}
if (onclient) {
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_DECRYPTION_FAILED);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN,
+ GNUTLS_E_DECRYPTION_FAILED);
} else {
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_DECRYPTION_FAILED);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN,
+ GNUTLS_E_DECRYPTION_FAILED);
}
gnutls_deinit(client);
diff --git a/tests/rehandshake-switch-cert-allow.c b/tests/rehandshake-switch-cert-allow.c
index 1ae57c9f59..f7b497164c 100644
--- a/tests/rehandshake-switch-cert-allow.c
+++ b/tests/rehandshake-switch-cert-allow.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -50,8 +50,7 @@ static void try(void)
gnutls_certificate_credentials_t serverx509cred;
gnutls_certificate_credentials_t serverx509cred2;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
@@ -79,12 +78,10 @@ static void try(void)
gnutls_certificate_set_dh_params(serverx509cred, dh_params);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
- "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -95,20 +92,25 @@ static void try(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
- ret = gnutls_init(&client, GNUTLS_CLIENT|GNUTLS_ALLOW_ID_CHANGE);
+ ret = gnutls_init(&client, GNUTLS_CLIENT | GNUTLS_ALLOW_ID_CHANGE);
if (ret < 0)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- ret = gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA", NULL);
+ ret =
+ gnutls_priority_set_direct(client,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA",
+ NULL);
if (ret < 0)
exit(1);
@@ -124,8 +126,7 @@ static void try(void)
}
/* switch server's certificate and rehandshake */
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred2);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred2);
HANDSHAKE(client, server);
diff --git a/tests/rehandshake-switch-cert-client-allow.c b/tests/rehandshake-switch-cert-client-allow.c
index 45ef1a00bb..8d21c6a100 100644
--- a/tests/rehandshake-switch-cert-client-allow.c
+++ b/tests/rehandshake-switch-cert-client-allow.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -49,8 +49,7 @@ static void try(void)
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
@@ -74,14 +73,12 @@ static void try(void)
gnutls_dh_params_import_pkcs3(dh_params, &p3, GNUTLS_X509_FMT_PEM);
gnutls_certificate_set_dh_params(serverx509cred, dh_params);
- gnutls_init(&server, GNUTLS_SERVER|GNUTLS_ALLOW_ID_CHANGE);
+ gnutls_init(&server, GNUTLS_SERVER | GNUTLS_ALLOW_ID_CHANGE);
gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
- "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -92,11 +89,15 @@ static void try(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_key_mem(clientx509cred, &cli_cert, &cli_key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(clientx509cred, &cli_cert,
+ &cli_key, GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -104,11 +105,16 @@ static void try(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_key_mem(clientx509cred2, &server2_cert, &server2_key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(clientx509cred2, &server2_cert,
+ &server2_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred2, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred2, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -117,11 +123,14 @@ static void try(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- ret = gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA", NULL);
+ ret =
+ gnutls_priority_set_direct(client,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA",
+ NULL);
if (ret < 0)
exit(1);
@@ -137,8 +146,7 @@ static void try(void)
}
/* switch server's certificate and rehandshake */
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred2);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred2);
HANDSHAKE(client, server);
diff --git a/tests/rehandshake-switch-cert-client.c b/tests/rehandshake-switch-cert-client.c
index a32fdd5d2c..6d92e2a1b1 100644
--- a/tests/rehandshake-switch-cert-client.c
+++ b/tests/rehandshake-switch-cert-client.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -49,8 +49,7 @@ static void try(void)
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
@@ -76,12 +75,10 @@ static void try(void)
gnutls_init(&server, GNUTLS_SERVER);
gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
- "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -92,11 +89,15 @@ static void try(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_key_mem(clientx509cred, &cli_cert, &cli_key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(clientx509cred, &cli_cert,
+ &cli_key, GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -104,11 +105,16 @@ static void try(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_key_mem(clientx509cred2, &server2_cert, &server2_key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(clientx509cred2, &server2_cert,
+ &server2_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred2, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred2, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -117,11 +123,14 @@ static void try(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- ret = gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA", NULL);
+ ret =
+ gnutls_priority_set_direct(client,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA",
+ NULL);
if (ret < 0)
exit(1);
@@ -137,10 +146,10 @@ static void try(void)
}
/* switch server's certificate and rehandshake */
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred2);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred2);
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_SESSION_USER_ID_CHANGED);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN,
+ GNUTLS_E_SESSION_USER_ID_CHANGED);
gnutls_deinit(client);
gnutls_deinit(server);
diff --git a/tests/rehandshake-switch-cert.c b/tests/rehandshake-switch-cert.c
index 3bb2bcdf69..5c161b8e70 100644
--- a/tests/rehandshake-switch-cert.c
+++ b/tests/rehandshake-switch-cert.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -50,8 +50,7 @@ static void try(void)
gnutls_certificate_credentials_t serverx509cred;
gnutls_certificate_credentials_t serverx509cred2;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
@@ -79,12 +78,10 @@ static void try(void)
gnutls_certificate_set_dh_params(serverx509cred, dh_params);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
- "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -95,7 +92,9 @@ static void try(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -104,11 +103,14 @@ static void try(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- ret = gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA", NULL);
+ ret =
+ gnutls_priority_set_direct(client,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA",
+ NULL);
if (ret < 0)
exit(1);
@@ -124,10 +126,10 @@ static void try(void)
}
/* switch server's certificate and rehandshake */
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred2);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred2);
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_SESSION_USER_ID_CHANGED, GNUTLS_E_AGAIN);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_SESSION_USER_ID_CHANGED,
+ GNUTLS_E_AGAIN);
gnutls_deinit(client);
gnutls_deinit(server);
diff --git a/tests/rehandshake-switch-psk-id.c b/tests/rehandshake-switch-psk-id.c
index 86dcb6f0f7..b699940c0c 100644
--- a/tests/rehandshake-switch-psk-id.c
+++ b/tests/rehandshake-switch-psk-id.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -44,8 +44,7 @@ static void tls_log_func(int level, const char *str)
#include "cert-common.h"
static int
-pskfunc(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+pskfunc(gnutls_session_t session, const char *username, gnutls_datum_t * key)
{
if (debug)
printf("psk: username %s\n", username);
@@ -58,21 +57,21 @@ pskfunc(gnutls_session_t session, const char *username,
return 0;
}
-static void try(const char *prio, gnutls_kx_algorithm_t kx, unsigned allow_change)
+static void try(const char *prio, gnutls_kx_algorithm_t kx,
+ unsigned allow_change)
{
int ret;
/* Server stuff. */
gnutls_psk_server_credentials_t serverpskcred;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
gnutls_psk_client_credentials_t clientpskcred;
gnutls_psk_client_credentials_t clientpskcred2;
gnutls_session_t client;
- const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t key = { (void *)"DEADBEEF", 8 };
int cret = GNUTLS_E_AGAIN;
/* General init. */
@@ -83,23 +82,19 @@ static void try(const char *prio, gnutls_kx_algorithm_t kx, unsigned allow_chang
/* Init server */
gnutls_psk_allocate_server_credentials(&serverpskcred);
- gnutls_psk_set_server_credentials_function(serverpskcred,
- pskfunc);
+ gnutls_psk_set_server_credentials_function(serverpskcred, pskfunc);
gnutls_dh_params_init(&dh_params);
gnutls_dh_params_import_pkcs3(dh_params, &p3, GNUTLS_X509_FMT_PEM);
gnutls_psk_set_server_dh_params(serverpskcred, dh_params);
if (allow_change)
- gnutls_init(&server, GNUTLS_SERVER|GNUTLS_ALLOW_ID_CHANGE);
+ gnutls_init(&server, GNUTLS_SERVER | GNUTLS_ALLOW_ID_CHANGE);
else
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_PSK,
- serverpskcred);
+ gnutls_credentials_set(server, GNUTLS_CRD_PSK, serverpskcred);
- gnutls_priority_set_direct(server,
- prio,
- NULL);
+ gnutls_priority_set_direct(server, prio, NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -124,8 +119,7 @@ static void try(const char *prio, gnutls_kx_algorithm_t kx, unsigned allow_chang
if (ret < 0)
exit(1);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_PSK,
- clientpskcred);
+ ret = gnutls_credentials_set(client, GNUTLS_CRD_PSK, clientpskcred);
if (ret < 0)
exit(1);
@@ -140,22 +134,20 @@ static void try(const char *prio, gnutls_kx_algorithm_t kx, unsigned allow_chang
HANDSHAKE(client, server);
if (gnutls_kx_get(client) != kx) {
- fail("got unexpected key exchange algorithm: %s (expected %s)\n",
- gnutls_kx_get_name(gnutls_kx_get(client)),
- gnutls_kx_get_name(kx));
+ fail("got unexpected key exchange algorithm: %s (expected %s)\n", gnutls_kx_get_name(gnutls_kx_get(client)), gnutls_kx_get_name(kx));
exit(1);
}
/* switch client's username and rehandshake */
- ret = gnutls_credentials_set(client, GNUTLS_CRD_PSK,
- clientpskcred2);
+ ret = gnutls_credentials_set(client, GNUTLS_CRD_PSK, clientpskcred2);
if (ret < 0)
exit(1);
if (allow_change) {
HANDSHAKE(client, server);
} else {
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_SESSION_USER_ID_CHANGED);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN,
+ GNUTLS_E_SESSION_USER_ID_CHANGED);
}
gnutls_deinit(client);
@@ -174,17 +166,21 @@ void doit(void)
/* Allow change of ID */
try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", GNUTLS_KX_PSK, 0);
reset_buffers();
- try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", GNUTLS_KX_DHE_PSK, 0);
+ try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", GNUTLS_KX_DHE_PSK,
+ 0);
reset_buffers();
- try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", GNUTLS_KX_ECDHE_PSK, 0);
+ try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK",
+ GNUTLS_KX_ECDHE_PSK, 0);
reset_buffers();
/* Prohibit (default) change of ID */
try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+PSK", GNUTLS_KX_PSK, 1);
reset_buffers();
- try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", GNUTLS_KX_DHE_PSK, 1);
+ try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-PSK", GNUTLS_KX_DHE_PSK,
+ 1);
reset_buffers();
- try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK", GNUTLS_KX_ECDHE_PSK, 1);
+ try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-PSK",
+ GNUTLS_KX_ECDHE_PSK, 1);
reset_buffers();
gnutls_global_deinit();
}
diff --git a/tests/rehandshake-switch-srp-id.c b/tests/rehandshake-switch-srp-id.c
index 2a395eb6be..9aa8f371d2 100644
--- a/tests/rehandshake-switch-srp-id.c
+++ b/tests/rehandshake-switch-srp-id.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -34,12 +34,12 @@ int main(void)
#else
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <gnutls/gnutls.h>
-#include "utils.h"
-#include "eagain-common.h"
+# include <stdio.h>
+# include <string.h>
+# include <errno.h>
+# include <gnutls/gnutls.h>
+# include "utils.h"
+# include "eagain-common.h"
/* This test checks whether the server switching certificates is detected
* by the client */
@@ -51,49 +51,44 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#include "cert-common.h"
+# include "cert-common.h"
+# define VERIF_TEST1 "CEqjUZBlkQCocfOR0E4AsPZKOFYPGjKFMHW7KDcnpE4sH4.iGMbkygb/bViRNjskF9/TQdD46Mvlt6pLs5MZoTn8mO3G.RGyXdWuIrhnVn29p41Cpc5RhTLaeUm3asW6LF60VTKnGERC0eB37xZUsaTpzmaTNdD4mOoYCN3bD9Y"
+# define VERIF_TEST2 "EEbMk8afwXz/0oV5Yo9To7V6c6xkYid8meqEByxM33XjM4xeKUjeN7Ft2.xvjo4S6Js7mEs9Ov.uZtBp3ugCAbvl6G7bdfYF6z.tAD4mNYhH7iI7SwQy.ntmbJ3uJ1qB5MHW7ajSdWvA7l3SSsyyAVMe9HVQcxZKJRf4mzwm06s"
-#define VERIF_TEST1 "CEqjUZBlkQCocfOR0E4AsPZKOFYPGjKFMHW7KDcnpE4sH4.iGMbkygb/bViRNjskF9/TQdD46Mvlt6pLs5MZoTn8mO3G.RGyXdWuIrhnVn29p41Cpc5RhTLaeUm3asW6LF60VTKnGERC0eB37xZUsaTpzmaTNdD4mOoYCN3bD9Y"
-#define VERIF_TEST2 "EEbMk8afwXz/0oV5Yo9To7V6c6xkYid8meqEByxM33XjM4xeKUjeN7Ft2.xvjo4S6Js7mEs9Ov.uZtBp3ugCAbvl6G7bdfYF6z.tAD4mNYhH7iI7SwQy.ntmbJ3uJ1qB5MHW7ajSdWvA7l3SSsyyAVMe9HVQcxZKJRf4mzwm06s"
+# define SALT_TEST1 "3a3xX3Myzb9YJn5X0R7sbx"
+# define SALT_TEST2 "25J9FArvl1ZDrTSFsvZ4Jb"
-#define SALT_TEST1 "3a3xX3Myzb9YJn5X0R7sbx"
-#define SALT_TEST2 "25J9FArvl1ZDrTSFsvZ4Jb"
-
-#define PRIME "Ewl2hcjiutMd3Fu2lgFnUXWSc67TVyy2vwYCKoS9MLsrdJVT9RgWTCuEqWJrfB6uE3LsE9GkOlaZabS7M29sj5TnzUqOLJMjiwEzArfiLr9WbMRANlF68N5AVLcPWvNx6Zjl3m5Scp0BzJBz9TkgfhzKJZ.WtP3Mv/67I/0wmRZ"
-gnutls_datum_t tprime =
-{
- .data = (void*)PRIME,
- .size = sizeof(PRIME)-1
+# define PRIME "Ewl2hcjiutMd3Fu2lgFnUXWSc67TVyy2vwYCKoS9MLsrdJVT9RgWTCuEqWJrfB6uE3LsE9GkOlaZabS7M29sj5TnzUqOLJMjiwEzArfiLr9WbMRANlF68N5AVLcPWvNx6Zjl3m5Scp0BzJBz9TkgfhzKJZ.WtP3Mv/67I/0wmRZ"
+gnutls_datum_t tprime = {
+ .data = (void *)PRIME,
+ .size = sizeof(PRIME) - 1
};
-gnutls_datum_t test1_verif =
-{
- .data = (void*)VERIF_TEST1,
- .size = sizeof(VERIF_TEST1)-1
+gnutls_datum_t test1_verif = {
+ .data = (void *)VERIF_TEST1,
+ .size = sizeof(VERIF_TEST1) - 1
};
-gnutls_datum_t test2_verif =
-{
- .data = (void*)VERIF_TEST2,
- .size = sizeof(VERIF_TEST2)-1
+gnutls_datum_t test2_verif = {
+ .data = (void *)VERIF_TEST2,
+ .size = sizeof(VERIF_TEST2) - 1
};
-gnutls_datum_t test1_salt =
-{
- .data = (void*)SALT_TEST1,
- .size = sizeof(SALT_TEST1)-1
+gnutls_datum_t test1_salt = {
+ .data = (void *)SALT_TEST1,
+ .size = sizeof(SALT_TEST1) - 1
};
-gnutls_datum_t test2_salt =
-{
- .data = (void*)SALT_TEST2,
- .size = sizeof(SALT_TEST2)-1
+gnutls_datum_t test2_salt = {
+ .data = (void *)SALT_TEST2,
+ .size = sizeof(SALT_TEST2) - 1
};
static int
srpfunc(gnutls_session_t session, const char *username,
- gnutls_datum_t *salt, gnutls_datum_t *verifier, gnutls_datum_t *generator, gnutls_datum_t *prime)
+ gnutls_datum_t * salt, gnutls_datum_t * verifier,
+ gnutls_datum_t * generator, gnutls_datum_t * prime)
{
int ret;
if (debug)
@@ -112,7 +107,6 @@ srpfunc(gnutls_session_t session, const char *username,
if (ret < 0)
fail("error in gnutls_srp_base64_decode2 -verif\n");
-
ret = gnutls_srp_base64_decode2(&test1_salt, salt);
if (ret < 0)
fail("error in gnutls_srp_base64_decode2 -salt\n");
@@ -131,15 +125,15 @@ srpfunc(gnutls_session_t session, const char *username,
return 0;
}
-static void try(const char *prio, gnutls_kx_algorithm_t kx, unsigned allow_change)
+static void try(const char *prio, gnutls_kx_algorithm_t kx,
+ unsigned allow_change)
{
int ret;
/* Server stuff. */
gnutls_srp_server_credentials_t server_srp_cred;
gnutls_certificate_credentials_t server_x509_cred;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
@@ -169,17 +163,14 @@ static void try(const char *prio, gnutls_kx_algorithm_t kx, unsigned allow_chang
gnutls_srp_set_server_credentials_function(server_srp_cred, srpfunc);
if (allow_change)
- gnutls_init(&server, GNUTLS_SERVER|GNUTLS_ALLOW_ID_CHANGE);
+ gnutls_init(&server, GNUTLS_SERVER | GNUTLS_ALLOW_ID_CHANGE);
else
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_SRP,
- server_srp_cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_SRP, server_srp_cred);
gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- server_x509_cred);
+ server_x509_cred);
- gnutls_priority_set_direct(server,
- prio,
- NULL);
+ gnutls_priority_set_direct(server, prio, NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -204,12 +195,14 @@ static void try(const char *prio, gnutls_kx_algorithm_t kx, unsigned allow_chang
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(client_x509_cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(client_x509_cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- client_x509_cred);
+ client_x509_cred);
if (ret < 0)
exit(1);
@@ -224,9 +217,7 @@ static void try(const char *prio, gnutls_kx_algorithm_t kx, unsigned allow_chang
HANDSHAKE(client, server);
if (gnutls_kx_get(client) != kx) {
- fail("got unexpected key exchange algorithm: %s (expected %s)\n",
- gnutls_kx_get_name(gnutls_kx_get(client)),
- gnutls_kx_get_name(kx));
+ fail("got unexpected key exchange algorithm: %s (expected %s)\n", gnutls_kx_get_name(gnutls_kx_get(client)), gnutls_kx_get_name(kx));
exit(1);
}
@@ -238,7 +229,8 @@ static void try(const char *prio, gnutls_kx_algorithm_t kx, unsigned allow_chang
if (allow_change) {
HANDSHAKE(client, server);
} else {
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_SESSION_USER_ID_CHANGED);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN,
+ GNUTLS_E_SESSION_USER_ID_CHANGED);
}
gnutls_deinit(client);
@@ -259,13 +251,15 @@ void doit(void)
/* Allow change of ID */
try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", GNUTLS_KX_SRP, 0);
reset_buffers();
- try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP-RSA", GNUTLS_KX_SRP_RSA, 0);
+ try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP-RSA", GNUTLS_KX_SRP_RSA,
+ 0);
reset_buffers();
/* Prohibit (default) change of ID */
try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", GNUTLS_KX_SRP, 1);
reset_buffers();
- try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP-RSA", GNUTLS_KX_SRP_RSA, 1);
+ try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP-RSA", GNUTLS_KX_SRP_RSA,
+ 1);
reset_buffers();
gnutls_global_deinit();
}
diff --git a/tests/resume-dtls.c b/tests/resume-dtls.c
index b077123b59..1b3a0350ac 100644
--- a/tests/resume-dtls.c
+++ b/tests/resume-dtls.c
@@ -23,7 +23,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -38,28 +38,27 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <sys/wait.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <sys/wait.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
static void wrap_db_init(void);
static void wrap_db_deinit(void);
-static int wrap_db_store(void *dbf, gnutls_datum_t key,
- gnutls_datum_t data);
+static int wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data);
static gnutls_datum_t wrap_db_fetch(void *dbf, gnutls_datum_t key);
static int wrap_db_delete(void *dbf, gnutls_datum_t key);
-#define TLS_SESSION_CACHE 50
+# define TLS_SESSION_CACHE 50
struct params_res {
const char *desc;
@@ -82,9 +81,9 @@ struct params_res resume_tests[] = {
/* A very basic TLS client, with anonymous authentication.
*/
-#define SESSIONS 2
-#define MAX_BUF 5*1024
-#define MSG "Hello TLS"
+# define SESSIONS 2
+# define MAX_BUF 5*1024
+# define MSG "Hello TLS"
static void tls_log_func(int level, const char *str)
{
@@ -118,18 +117,17 @@ static void client(int sds[], struct params_res *params)
/* Initialize TLS session
*/
- gnutls_init(&session,
- GNUTLS_CLIENT | GNUTLS_DATAGRAM);
+ gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM);
/* Use default priorities */
if (params->enable_session_ticket_client)
gnutls_priority_set_direct(session,
- "NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
- NULL);
+ "NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
+ NULL);
else
gnutls_priority_set_direct(session,
- "NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH:%NO_TICKETS",
- NULL);
+ "NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH:%NO_TICKETS",
+ NULL);
/* put the anonymous credentials to the current session
*/
@@ -146,7 +144,8 @@ static void client(int sds[], struct params_res *params)
/* Perform the TLS handshake
*/
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
do {
ret = gnutls_handshake(session);
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
@@ -157,15 +156,12 @@ static void client(int sds[], struct params_res *params)
goto end;
} else {
if (debug)
- success
- ("client: Handshake was completed\n");
+ success("client: Handshake was completed\n");
}
if (t == 0) { /* the first time we connect */
/* get the session data size */
- ret =
- gnutls_session_get_data2(session,
- &session_data);
+ ret = gnutls_session_get_data2(session, &session_data);
if (ret < 0)
fail("Getting resume data failed\n");
} else { /* the second time we connect */
@@ -217,14 +213,14 @@ static void client(int sds[], struct params_res *params)
gnutls_deinit(session);
}
- end:
+ end:
gnutls_anon_free_client_credentials(anoncred);
}
/* This is a sample TLS 1.0 echo server, for anonymous authentication only.
*/
-#define DH_BITS 1024
+# define DH_BITS 1024
/* These are global */
@@ -232,7 +228,7 @@ static gnutls_dh_params_t dh_params;
static int generate_dh_params(void)
{
- const gnutls_datum_t p3 = { (void *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (void *)pkcs3, strlen(pkcs3) };
/* Generate Diffie-Hellman parameters - for use with DHE
* kx algorithms. These should be discarded and regenerated
* once a day, once a week or once a month. Depending on the
@@ -291,8 +287,8 @@ static void server(int sds[], struct params_res *params)
gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM);
gnutls_priority_set_direct(session,
- "NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
- NULL);
+ "NONE:+VERS-DTLS1.0:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-DH",
+ NULL);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
gnutls_dh_set_prime_bits(session, DH_BITS);
@@ -306,14 +302,17 @@ static void server(int sds[], struct params_res *params)
if (params->enable_session_ticket_server)
gnutls_session_ticket_enable_server(session,
- &session_ticket_key);
+ &session_ticket_key);
gnutls_transport_set_int(session, sd);
- gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(), get_timeout());
-
+ gnutls_dtls_set_timeouts(session, get_dtls_retransmit_timeout(),
+ get_timeout());
+
do {
ret = gnutls_handshake(session);
- } while (ret < 0 && (ret == GNUTLS_E_INTERRUPTED||ret == GNUTLS_E_AGAIN));
+ } while (ret < 0
+ && (ret == GNUTLS_E_INTERRUPTED
+ || ret == GNUTLS_E_AGAIN));
if (ret < 0) {
close(sd);
gnutls_deinit(session);
@@ -428,8 +427,8 @@ void doit(void)
* and session data.
*/
-#define MAX_SESSION_ID_SIZE 32
-#define MAX_SESSION_DATA_SIZE 1024
+# define MAX_SESSION_ID_SIZE 32
+# define MAX_SESSION_DATA_SIZE 1024
typedef struct {
unsigned char session_id[MAX_SESSION_ID_SIZE];
@@ -456,12 +455,10 @@ static void wrap_db_deinit(void)
return;
}
-static int
-wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
+static int wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
{
if (debug)
- success("resume db storing... (%d-%d)\n", key.size,
- data.size);
+ success("resume db storing... (%d-%d)\n", key.size, data.size);
if (debug) {
unsigned int i;
@@ -524,11 +521,9 @@ static gnutls_datum_t wrap_db_fetch(void *dbf, gnutls_datum_t key)
for (i = 0; i < TLS_SESSION_CACHE; i++) {
if (key.size == cache_db[i].session_id_size &&
- memcmp(key.data, cache_db[i].session_id,
- key.size) == 0) {
+ memcmp(key.data, cache_db[i].session_id, key.size) == 0) {
if (debug)
- success
- ("resume db fetch... return info\n");
+ success("resume db fetch... return info\n");
res.size = cache_db[i].session_data_size;
@@ -536,15 +531,13 @@ static gnutls_datum_t wrap_db_fetch(void *dbf, gnutls_datum_t key)
if (res.data == NULL)
return res;
- memcpy(res.data, cache_db[i].session_data,
- res.size);
+ memcpy(res.data, cache_db[i].session_data, res.size);
if (debug) {
unsigned j;
printf("data:\n");
for (j = 0; j < res.size; j++) {
- printf("%02x ",
- res.data[j] & 0xFF);
+ printf("%02x ", res.data[j] & 0xFF);
if ((j + 1) % 16 == 0)
printf("\n");
}
@@ -569,8 +562,7 @@ static int wrap_db_delete(void *dbf, gnutls_datum_t key)
for (i = 0; i < TLS_SESSION_CACHE; i++) {
if (key.size == cache_db[i].session_id_size &&
- memcmp(key.data, cache_db[i].session_id,
- key.size) == 0) {
+ memcmp(key.data, cache_db[i].session_id, key.size) == 0) {
cache_db[i].session_id_size = 0;
cache_db[i].session_data_size = 0;
diff --git a/tests/resume-lifetime.c b/tests/resume-lifetime.c
index 3e72039327..4114251ed0 100644
--- a/tests/resume-lifetime.c
+++ b/tests/resume-lifetime.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -45,9 +45,9 @@ static void tls_log_func(int level, const char *str)
}
struct hsk_st {
- unsigned sent_nst; /* whether the new session ticket was sent */
- unsigned sent_psk; /* whether the PSK extension was sent */
- unsigned sleep_at_finished; /* how long to wait at finished message reception */
+ unsigned sent_nst; /* whether the new session ticket was sent */
+ unsigned sent_psk; /* whether the PSK extension was sent */
+ unsigned sleep_at_finished; /* how long to wait at finished message reception */
};
@@ -62,7 +62,8 @@ static int ext_hook_func(void *ctx, unsigned tls_id,
}
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
struct hsk_st *h = gnutls_session_get_ptr(session);
@@ -84,10 +85,9 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
}
/* Returns true if resumed */
-static unsigned handshake(const char *prio, unsigned t, const gnutls_datum_t *sdata,
- gnutls_datum_t *ndata,
- gnutls_datum_t *skey,
- struct hsk_st *h)
+static unsigned handshake(const char *prio, unsigned t,
+ const gnutls_datum_t * sdata, gnutls_datum_t * ndata,
+ gnutls_datum_t * skey, struct hsk_st *h)
{
int ret;
/* Server stuff. */
@@ -104,15 +104,14 @@ static unsigned handshake(const char *prio, unsigned t, const gnutls_datum_t *sd
if (debug)
gnutls_global_set_log_level(6);
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_priority_set_direct(server, prio, NULL)>=0);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -125,20 +124,22 @@ static unsigned handshake(const char *prio, unsigned t, const gnutls_datum_t *sd
GNUTLS_HOOK_POST,
handshake_callback);
- assert(gnutls_certificate_allocate_credentials(&clientx509cred)>=0);
- assert(gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM)>=0);
- assert(gnutls_init(&client, GNUTLS_CLIENT)>=0);
+ assert(gnutls_certificate_allocate_credentials(&clientx509cred) >= 0);
+ assert(gnutls_certificate_set_x509_trust_mem
+ (clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred)>=0);
+ clientx509cred) >= 0);
- assert(gnutls_priority_set_direct(client, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(client, prio, NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
if (sdata) {
- assert(gnutls_session_set_data(client, sdata->data, sdata->size)>=0);
+ assert(gnutls_session_set_data(client, sdata->data, sdata->size)
+ >= 0);
}
memset(buf, 0, sizeof(buf));
@@ -181,7 +182,7 @@ static void start(const char *name, const char *prio, unsigned t, unsigned s)
success("trying %s\n", name);
- assert(gnutls_session_ticket_key_generate(&skey)>=0);
+ assert(gnutls_session_ticket_key_generate(&skey) >= 0);
/* step1: get a fresh ticket */
ret = handshake(prio, t, NULL, &sdata, &skey, &h);
@@ -241,7 +242,7 @@ static void start2(const char *name, const char *prio, unsigned t, unsigned s)
success("trying %s\n", name);
- assert(gnutls_session_ticket_key_generate(&skey)>=0);
+ assert(gnutls_session_ticket_key_generate(&skey) >= 0);
/* step1: get a fresh ticket */
ret = handshake(prio, t, NULL, &sdata, &skey, &h);
@@ -278,5 +279,6 @@ void doit(void)
start("TLS1.3 sanity", "NORMAL:-VERS-ALL:+VERS-TLS1.3", 64, 0);
start("TLS1.3 ticket extension", "NORMAL:-VERS-ALL:+VERS-TLS1.3", 5, 3);
- start2("TLS1.3 ticket extension - expires at handshake", "NORMAL:-VERS-ALL:+VERS-TLS1.3", 2, 3);
+ start2("TLS1.3 ticket extension - expires at handshake",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3", 2, 3);
}
diff --git a/tests/resume-with-false-start.c b/tests/resume-with-false-start.c
index 83e55c211c..be8596ec03 100644
--- a/tests/resume-with-false-start.c
+++ b/tests/resume-with-false-start.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -79,8 +79,7 @@ void doit(void)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_set_default_priority(server);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -91,20 +90,23 @@ void doit(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
- ret = gnutls_init(&client, GNUTLS_CLIENT|GNUTLS_ENABLE_FALSE_START);
+ ret = gnutls_init(&client, GNUTLS_CLIENT | GNUTLS_ENABLE_FALSE_START);
if (ret < 0)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- assert(gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
diff --git a/tests/resume-with-previous-stek.c b/tests/resume-with-previous-stek.c
index 98aba8d848..799d00db22 100644
--- a/tests/resume-with-previous-stek.c
+++ b/tests/resume-with-previous-stek.c
@@ -20,7 +20,7 @@
*
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,31 +33,30 @@ int main(int argc, char **argv)
}
#else
-#include <stdint.h>
-#include <unistd.h>
-#include <sys/wait.h>
-#include <sys/socket.h>
-#include <gnutls/gnutls.h>
-#include <assert.h>
-#include "utils.h"
-#include "cert-common.h"
-#include "virt-time.h"
+# include <stdint.h>
+# include <unistd.h>
+# include <sys/wait.h>
+# include <sys/socket.h>
+# include <gnutls/gnutls.h>
+# include <assert.h>
+# include "utils.h"
+# include "cert-common.h"
+# include "virt-time.h"
-#define TICKET_EXPIRATION 1 /* seconds */
-#define TICKET_ROTATION_PERIOD 3 /* seconds */
+# define TICKET_EXPIRATION 1 /* seconds */
+# define TICKET_ROTATION_PERIOD 3 /* seconds */
unsigned num_stek_rotations;
-static void stek_rotation_callback(const gnutls_datum_t *prev_key,
- const gnutls_datum_t *new_key,
- uint64_t t)
+static void stek_rotation_callback(const gnutls_datum_t * prev_key,
+ const gnutls_datum_t * new_key, uint64_t t)
{
num_stek_rotations++;
success("STEK was rotated!\n");
}
-static int client_handshake(gnutls_session_t session, gnutls_datum_t *session_data,
- int resume)
+static int client_handshake(gnutls_session_t session,
+ gnutls_datum_t * session_data, int resume)
{
int ret;
@@ -104,10 +103,11 @@ static void client(int fd, int *resume, unsigned rounds, const char *prio)
gnutls_certificate_credentials_t clientx509cred = NULL;
for (unsigned i = 0; i < rounds; i++) {
- assert(gnutls_certificate_allocate_credentials(&clientx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&clientx509cred)
+ >= 0);
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
clientx509cred);
@@ -116,8 +116,7 @@ static void client(int fd, int *resume, unsigned rounds, const char *prio)
gnutls_handshake_set_timeout(session, get_timeout());
/* Perform TLS handshake and obtain session ticket */
- if (client_handshake(session, &session_data,
- resume[i]) < 0)
+ if (client_handshake(session, &session_data, resume[i]) < 0)
return;
if (clientx509cred) {
@@ -131,11 +130,12 @@ static void client(int fd, int *resume, unsigned rounds, const char *prio)
gnutls_free(session_data.data);
}
-typedef void (* gnutls_stek_rotation_callback_t) (const gnutls_datum_t *prev_key,
- const gnutls_datum_t *new_key,
- uint64_t t);
+typedef void (*gnutls_stek_rotation_callback_t)(const gnutls_datum_t * prev_key,
+ const gnutls_datum_t * new_key,
+ uint64_t t);
void _gnutls_set_session_ticket_key_rotation_callback(gnutls_session_t session,
- gnutls_stek_rotation_callback_t cb);
+ gnutls_stek_rotation_callback_t
+ cb);
static void server(int fd, unsigned rounds, const char *prio)
{
@@ -151,38 +151,47 @@ static void server(int fd, unsigned rounds, const char *prio)
}
for (unsigned i = 0; i < rounds; i++) {
- assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
-
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
- retval = gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM);
+ assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
+
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred)
+ >= 0);
+ retval =
+ gnutls_certificate_set_x509_key_mem(serverx509cred,
+ &server_cert,
+ &server_key,
+ GNUTLS_X509_FMT_PEM);
if (retval < 0)
- fail("error setting key: %s\n", gnutls_strerror(retval));
+ fail("error setting key: %s\n",
+ gnutls_strerror(retval));
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ serverx509cred);
gnutls_db_set_cache_expiration(session, TICKET_EXPIRATION);
- _gnutls_set_session_ticket_key_rotation_callback(session, stek_rotation_callback);
+ _gnutls_set_session_ticket_key_rotation_callback(session,
+ stek_rotation_callback);
retval = gnutls_session_ticket_enable_server(session,
&session_ticket_key);
if (retval != GNUTLS_E_SUCCESS) {
- fail("server: Could not enable session tickets: %s\n", gnutls_strerror(retval));
+ fail("server: Could not enable session tickets: %s\n",
+ gnutls_strerror(retval));
}
gnutls_transport_set_int(session, fd);
gnutls_handshake_set_timeout(session, get_timeout());
- virt_sec_sleep(TICKET_ROTATION_PERIOD-1);
+ virt_sec_sleep(TICKET_ROTATION_PERIOD - 1);
do {
retval = gnutls_handshake(session);
- } while (retval == GNUTLS_E_AGAIN || retval == GNUTLS_E_INTERRUPTED);
+ } while (retval == GNUTLS_E_AGAIN
+ || retval == GNUTLS_E_INTERRUPTED);
if (retval < 0) {
- fail("server: Handshake failed: %s\n", gnutls_strerror(retval));
+ fail("server: Handshake failed: %s\n",
+ gnutls_strerror(retval));
} else {
success("server: Handshake was completed\n");
}
@@ -199,7 +208,8 @@ static void server(int fd, unsigned rounds, const char *prio)
}
if (num_stek_rotations != 3)
- fail("STEK should be rotated exactly three times (%d)!\n", num_stek_rotations);
+ fail("STEK should be rotated exactly three times (%d)!\n",
+ num_stek_rotations);
if (serverx509cred)
gnutls_certificate_free_credentials(serverx509cred);
@@ -249,11 +259,12 @@ void doit(void)
signal(SIGPIPE, SIG_IGN);
num_stek_rotations = 0;
- run("tls1.2 resumption", "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0", resume, 3);
+ run("tls1.2 resumption",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0", resume,
+ 3);
num_stek_rotations = 0;
run("tls1.3 resumption", "NORMAL:-VERS-ALL:+VERS-TLS1.3", resume, 3);
}
#endif
-
diff --git a/tests/resume-with-record-size-limit.c b/tests/resume-with-record-size-limit.c
index d805db43cc..370130dfae 100644
--- a/tests/resume-with-record-size-limit.c
+++ b/tests/resume-with-record-size-limit.c
@@ -24,7 +24,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,26 +40,26 @@ int main(int argc, char **argv)
#else
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE
-#endif
-#include <string.h>
-#include <stdint.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <sys/wait.h>
-#include <signal.h>
-#include <assert.h>
-#include "utils.h"
-#include "cert-common.h"
-#include "virt-time.h"
-
-#define SKIP8(pos, total) { \
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+# endif
+# include <string.h>
+# include <stdint.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <sys/wait.h>
+# include <signal.h>
+# include <assert.h>
+# include "utils.h"
+# include "cert-common.h"
+# include "virt-time.h"
+
+# define SKIP8(pos, total) { \
uint8_t _s; \
if (pos+1 > total) fail("error\n"); \
_s = msg->data[pos]; \
@@ -72,14 +72,14 @@ pid_t child;
/* A very basic TLS client, with anonymous authentication.
*/
-#define SESSIONS 2
-#define MAX_BUF 5*1024
-#define MSG "Hello TLS"
+# define SESSIONS 2
+# define MAX_BUF 5*1024
+# define MSG "Hello TLS"
/* 2^13, which is not supported by max_fragment_length */
-#define MAX_DATA_SIZE 8192
+# define MAX_DATA_SIZE 8192
-#define HANDSHAKE_SESSION_ID_POS (2+32)
+# define HANDSHAKE_SESSION_ID_POS (2+32)
static void tls_log_func(int level, const char *str)
{
@@ -87,9 +87,10 @@ static void tls_log_func(int level, const char *str)
str);
}
-static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data, unsigned size)
+static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data,
+ unsigned size)
{
- if (tls_id == 28) { /* record size limit */
+ if (tls_id == 28) { /* record size limit */
uint16_t max_data_size;
assert(size == 2);
@@ -102,7 +103,8 @@ static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data, u
}
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
int ret;
unsigned pos;
@@ -143,7 +145,7 @@ static void client(int sds[], const char *prio)
/* variables used in session resuming
*/
int t;
- gnutls_datum_t session_data = {NULL, 0};
+ gnutls_datum_t session_data = { NULL, 0 };
if (debug) {
gnutls_global_set_log_function(tls_log_func);
@@ -159,19 +161,22 @@ static void client(int sds[], const char *prio)
for (t = 0; t < SESSIONS; t++) {
int sd = sds[t];
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
ret = gnutls_priority_set_direct(session, prio, NULL);
if (ret < 0) {
fail("prio: %s\n", gnutls_strerror(ret));
}
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ clientx509cred);
if (t == 0) {
- ret = gnutls_record_set_max_size(session, MAX_DATA_SIZE);
+ ret =
+ gnutls_record_set_max_size(session, MAX_DATA_SIZE);
if (ret < 0)
- fail("gnutls_set_max_size: %s\n", gnutls_strerror(ret));
+ fail("gnutls_set_max_size: %s\n",
+ gnutls_strerror(ret));
}
if (t > 0) {
@@ -200,15 +205,12 @@ static void client(int sds[], const char *prio)
break;
} else {
if (debug)
- success
- ("client: Handshake was completed\n");
+ success("client: Handshake was completed\n");
}
if (t == 0) {
/* get the session data size */
- ret =
- gnutls_session_get_data2(session,
- &session_data);
+ ret = gnutls_session_get_data2(session, &session_data);
if (ret < 0)
fail("Getting resume data failed\n");
@@ -255,7 +257,6 @@ static void client(int sds[], const char *prio)
/* These are global */
static gnutls_datum_t session_ticket_key = { NULL, 0 };
-
gnutls_certificate_credentials_t serverx509cred;
static void global_stop(void)
@@ -285,7 +286,8 @@ static void server(int sds[], const char *prio)
gnutls_certificate_allocate_credentials(&serverx509cred);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key, GNUTLS_X509_FMT_PEM) >= 0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
gnutls_session_ticket_key_generate(&session_ticket_key);
@@ -299,11 +301,11 @@ static void server(int sds[], const char *prio)
*/
assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
-
gnutls_session_ticket_enable_server(session,
&session_ticket_key);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ serverx509cred);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
@@ -324,7 +326,8 @@ static void server(int sds[], const char *prio)
if (t > 0) {
ret = gnutls_session_is_resumed(session);
if (ret == 0) {
- fail("server: session_is_resumed error (%d)\n", t);
+ fail("server: session_is_resumed error (%d)\n",
+ t);
}
}
diff --git a/tests/resume-with-stek-expiration.c b/tests/resume-with-stek-expiration.c
index d9131512dd..d1d4841624 100644
--- a/tests/resume-with-stek-expiration.c
+++ b/tests/resume-with-stek-expiration.c
@@ -20,7 +20,7 @@
*
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,15 +33,15 @@ int main(int argc, char **argv)
}
#else
-#include <stdint.h>
-#include <unistd.h>
-#include <sys/wait.h>
-#include <sys/socket.h>
-#include <gnutls/gnutls.h>
-#include <assert.h>
-#include "utils.h"
-#include "cert-common.h"
-#include "virt-time.h"
+# include <stdint.h>
+# include <unistd.h>
+# include <sys/wait.h>
+# include <sys/socket.h>
+# include <gnutls/gnutls.h>
+# include <assert.h>
+# include "utils.h"
+# include "cert-common.h"
+# include "virt-time.h"
/*
* This will set the following values:
@@ -49,31 +49,31 @@ int main(int argc, char **argv)
* - Ticket key expiration: 1 second.
* - Session ticket key rotation period: 3 seconds.
*/
-#define TICKET_EXPIRATION 1 /* seconds */
+# define TICKET_EXPIRATION 1 /* seconds */
unsigned num_stek_rotations;
-static void stek_rotation_callback(const gnutls_datum_t *prev_key,
- const gnutls_datum_t *new_key,
- uint64_t t)
+static void stek_rotation_callback(const gnutls_datum_t * prev_key,
+ const gnutls_datum_t * new_key, uint64_t t)
{
num_stek_rotations++;
success("STEK was rotated!\n");
}
-typedef void (* gnutls_stek_rotation_callback_t) (const gnutls_datum_t *prev_key,
- const gnutls_datum_t *new_key,
- uint64_t t);
+typedef void (*gnutls_stek_rotation_callback_t)(const gnutls_datum_t * prev_key,
+ const gnutls_datum_t * new_key,
+ uint64_t t);
void _gnutls_set_session_ticket_key_rotation_callback(gnutls_session_t session,
- gnutls_stek_rotation_callback_t cb);
+ gnutls_stek_rotation_callback_t
+ cb);
-static int handshake(gnutls_session_t session, gnutls_datum_t *session_data,
- int resumption_should_succeed)
+static int handshake(gnutls_session_t session, gnutls_datum_t * session_data,
+ int resumption_should_succeed)
{
int ret;
do {
- ret = gnutls_handshake(session);
+ ret = gnutls_handshake(session);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
@@ -108,12 +108,15 @@ static int handshake(gnutls_session_t session, gnutls_datum_t *session_data,
return 0;
}
-static int resume_and_close(gnutls_session_t session, gnutls_datum_t *session_data,
- int resumption_should_succeed)
+static int resume_and_close(gnutls_session_t session,
+ gnutls_datum_t * session_data,
+ int resumption_should_succeed)
{
int ret;
- ret = gnutls_session_set_data(session, session_data->data, session_data->size);
+ ret =
+ gnutls_session_set_data(session, session_data->data,
+ session_data->size);
if (ret < 0) {
gnutls_perror(ret);
fail("client: Could not get session data\n");
@@ -148,7 +151,8 @@ static int resume_and_close(gnutls_session_t session, gnutls_datum_t *session_da
return 0;
}
-static void client(int fd, int *resumption_should_succeed, unsigned num_sessions, const char *prio)
+static void client(int fd, int *resumption_should_succeed,
+ unsigned num_sessions, const char *prio)
{
gnutls_session_t session;
gnutls_datum_t session_data;
@@ -161,8 +165,7 @@ static void client(int fd, int *resumption_should_succeed, unsigned num_sessions
gnutls_priority_set_direct(session, prio, NULL);
/* put the anonymous credentials to the current session */
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, fd);
gnutls_handshake_set_timeout(session, get_timeout());
@@ -175,19 +178,21 @@ static void client(int fd, int *resumption_should_succeed, unsigned num_sessions
gnutls_deinit(session);
for (unsigned i = 1; i < num_sessions; i++) {
- assert(gnutls_certificate_allocate_credentials(&clientx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&clientx509cred)
+ >= 0);
/* Initialize TLS layer */
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the anonymous credentials to the current session */
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
gnutls_transport_set_int(session, fd);
- if (resume_and_close(session, &session_data, resumption_should_succeed[i]) < 0)
+ if (resume_and_close
+ (session, &session_data, resumption_should_succeed[i]) < 0)
return;
if (clientx509cred)
@@ -196,7 +201,8 @@ static void client(int fd, int *resumption_should_succeed, unsigned num_sessions
}
}
-static void server(int fd, int *resumption_should_succeed, unsigned num_sessions, const char *prio)
+static void server(int fd, int *resumption_should_succeed,
+ unsigned num_sessions, const char *prio)
{
int retval;
gnutls_session_t session;
@@ -214,35 +220,41 @@ static void server(int fd, int *resumption_should_succeed, unsigned num_sessions
fail("gnutls_init() failed\n");
}
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
- assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred)
+ >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (serverx509cred, &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ serverx509cred);
- retval = gnutls_session_ticket_enable_server(session, &session_ticket_key);
+ retval =
+ gnutls_session_ticket_enable_server(session,
+ &session_ticket_key);
if (retval != GNUTLS_E_SUCCESS) {
gnutls_perror(retval);
fail("server: Could not enable session tickets\n");
}
-
gnutls_db_set_cache_expiration(session, TICKET_EXPIRATION);
- _gnutls_set_session_ticket_key_rotation_callback(session, stek_rotation_callback);
+ _gnutls_set_session_ticket_key_rotation_callback(session,
+ stek_rotation_callback);
gnutls_transport_set_int(session, fd);
gnutls_handshake_set_timeout(session, get_timeout());
do {
retval = gnutls_handshake(session);
- } while(retval == GNUTLS_E_AGAIN || retval == GNUTLS_E_INTERRUPTED);
+ } while (retval == GNUTLS_E_AGAIN
+ || retval == GNUTLS_E_INTERRUPTED);
if (retval < 0) {
- fail("server: Handshake failed: %s\n", gnutls_strerror(retval));
+ fail("server: Handshake failed: %s\n",
+ gnutls_strerror(retval));
} else {
success("server: Handshake was completed\n");
}
@@ -251,12 +263,14 @@ static void server(int fd, int *resumption_should_succeed, unsigned num_sessions
if (!resumption_should_succeed[i])
fail("server: Session was resumed (but should not)\n");
else
- success("server: Success: Session was resumed\n");
+ success
+ ("server: Success: Session was resumed\n");
} else {
if (resumption_should_succeed[i])
fail("server: Session was not resumed (but should)\n");
else
- success("server: Success: Session was NOT resumed\n");
+ success
+ ("server: Success: Session was NOT resumed\n");
}
gnutls_bye(session, GNUTLS_SHUT_RDWR);
@@ -276,7 +290,8 @@ static void server(int fd, int *resumption_should_succeed, unsigned num_sessions
gnutls_free(session_ticket_key.data);
}
-static void run(const char *name, const char *prio, int resumption_should_succeed[], int rounds)
+static void run(const char *name, const char *prio,
+ int resumption_should_succeed[], int rounds)
{
pid_t child;
int retval, sockets[2], status = 0;
@@ -317,12 +332,13 @@ void doit(void)
signal(SIGPIPE, SIG_IGN);
num_stek_rotations = 0;
- run("tls1.2 resumption", "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0",
- resumption_should_succeed, 4);
+ run("tls1.2 resumption",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0",
+ resumption_should_succeed, 4);
num_stek_rotations = 0;
run("tls1.3 resumption", "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- resumption_should_succeed, 4);
+ resumption_should_succeed, 4);
}
#endif
diff --git a/tests/resume.c b/tests/resume.c
index 93838c05be..d307ee2acc 100644
--- a/tests/resume.c
+++ b/tests/resume.c
@@ -24,7 +24,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,32 +40,31 @@ int main(int argc, char **argv)
#else
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE
-#endif
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <sys/wait.h>
-#include <signal.h>
-#include <assert.h>
-#include "utils.h"
-#include "cert-common.h"
-#include "virt-time.h"
+# ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+# endif
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <sys/wait.h>
+# include <signal.h>
+# include <assert.h>
+# include "utils.h"
+# include "cert-common.h"
+# include "virt-time.h"
static void wrap_db_init(void);
static void wrap_db_deinit(void);
-static int wrap_db_store(void *dbf, gnutls_datum_t key,
- gnutls_datum_t data);
+static int wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data);
static gnutls_datum_t wrap_db_fetch(void *dbf, gnutls_datum_t key);
static int wrap_db_delete(void *dbf, gnutls_datum_t key);
-#define TLS_SESSION_CACHE 50
+# define TLS_SESSION_CACHE 50
enum session_ticket_enablement {
ST_NONE = 0,
@@ -96,7 +95,7 @@ struct params_res {
pid_t child;
struct params_res resume_tests[] = {
-#ifndef TLS13
+# ifndef TLS13
{.desc = "try to resume from db",
.enable_db = 1,
.enable_session_ticket_server = ST_NONE,
@@ -134,8 +133,8 @@ struct params_res resume_tests[] = {
.expect_resume = 0,
.first_no_ext_master = 1,
.second_no_ext_master = 0},
-#endif
-#if defined(TLS13)
+# endif
+# if defined(TLS13)
/* only makes sense under TLS1.3 as negotiation involves a new
* handshake with different parameters */
{.desc = "try to resume from session ticket (different cipher order)",
@@ -150,16 +149,16 @@ struct params_res resume_tests[] = {
.enable_session_ticket_client = ST_ALL,
.call_post_client_hello = 1,
.expect_resume = 1},
-#endif
-#if defined(TLS13) && !defined(USE_PSK)
+# endif
+# if defined(TLS13) && !defined(USE_PSK)
{.desc = "try to resume from session ticket (early start)",
.enable_db = 0,
.enable_session_ticket_server = ST_ALL,
.enable_session_ticket_client = ST_ALL,
.early_start = 1,
.expect_resume = 1},
-#endif
-#if defined(TLS13) && defined(USE_PSK)
+# endif
+# if defined(TLS13) && defined(USE_PSK)
/* early start should no happen on PSK. */
{.desc = "try to resume from session ticket (early start)",
.enable_db = 0,
@@ -167,25 +166,27 @@ struct params_res resume_tests[] = {
.enable_session_ticket_client = ST_ALL,
.no_early_start = 1,
.expect_resume = 1},
-#endif
+# endif
{.desc = "try to resume from session ticket",
.enable_db = 0,
.enable_session_ticket_server = ST_ALL,
.enable_session_ticket_client = ST_ALL,
.expect_resume = 1},
-#ifdef TLS13
- {.desc = "try to resume from session ticket (session ticket disabled for TLS 1.2)",
+# ifdef TLS13
+ {.desc =
+ "try to resume from session ticket (session ticket disabled for TLS 1.2)",
.enable_db = 0,
.enable_session_ticket_server = ST_TLS13_ONLY,
.enable_session_ticket_client = ST_TLS13_ONLY,
.expect_resume = 1},
-#else
- {.desc = "try to resume from session ticket (session ticket disabled for TLS 1.2)",
+# else
+ {.desc =
+ "try to resume from session ticket (session ticket disabled for TLS 1.2)",
.enable_db = 0,
.enable_session_ticket_server = ST_TLS13_ONLY,
.enable_session_ticket_client = ST_TLS13_ONLY,
.expect_resume = 0},
-#endif
+# endif
{.desc = "try to resume from session ticket (client cert)",
.enable_db = 0,
.client_cert = 1,
@@ -198,21 +199,24 @@ struct params_res resume_tests[] = {
.enable_session_ticket_client = ST_ALL,
.expire_ticket = 1,
.expect_resume = 0},
- {.desc = "try to resume from session ticket using resumed session's data",
+ {.desc =
+ "try to resume from session ticket using resumed session's data",
.enable_db = 0,
.enable_session_ticket_server = ST_ALL,
.enable_session_ticket_client = ST_ALL,
.try_resumed_data = 1,
.expect_resume = 1},
-#ifndef TLS13
- {.desc = "try to resume from session ticket (ext master secret -> none)",
+# ifndef TLS13
+ {.desc =
+ "try to resume from session ticket (ext master secret -> none)",
.enable_db = 0,
.enable_session_ticket_server = ST_ALL,
.enable_session_ticket_client = ST_ALL,
.expect_resume = 0,
.first_no_ext_master = 0,
.second_no_ext_master = 1},
- {.desc = "try to resume from session ticket (none -> ext master secret)",
+ {.desc =
+ "try to resume from session ticket (none -> ext master secret)",
.enable_db = 0,
.enable_session_ticket_server = ST_ALL,
.enable_session_ticket_client = ST_ALL,
@@ -220,10 +224,10 @@ struct params_res resume_tests[] = {
.first_no_ext_master = 1,
.second_no_ext_master = 0},
{.desc = "try to resume from session ticket (server only)",
- .enable_db = 0,
- .enable_session_ticket_server = ST_ALL,
- .enable_session_ticket_client = ST_NONE,
- .expect_resume = 0},
+ .enable_db = 0,
+ .enable_session_ticket_server = ST_ALL,
+ .enable_session_ticket_client = ST_NONE,
+ .expect_resume = 0},
{.desc = "try to resume from session ticket (client only)",
.enable_db = 0,
.enable_session_ticket_server = ST_NONE,
@@ -249,7 +253,7 @@ struct params_res resume_tests[] = {
.enable_db = 1,
.try_sni = 1,
.expect_resume = 1},
-#endif
+# endif
{.desc = "try to resume with ticket and same SNI",
.enable_session_ticket_server = ST_ALL,
.enable_session_ticket_client = ST_ALL,
@@ -261,11 +265,11 @@ struct params_res resume_tests[] = {
/* A very basic TLS client, with anonymous authentication.
*/
-#define SESSIONS 3
-#define MAX_BUF 5*1024
-#define MSG "Hello TLS"
+# define SESSIONS 3
+# define MAX_BUF 5*1024
+# define MSG "Hello TLS"
-#define HANDSHAKE_SESSION_ID_POS (2+32)
+# define HANDSHAKE_SESSION_ID_POS (2+32)
static void tls_log_func(int level, const char *str)
{
@@ -276,18 +280,20 @@ static void tls_log_func(int level, const char *str)
static int post_client_hello_callback(gnutls_session_t session)
{
/* switches the supported ciphersuites to something compatible */
- assert(gnutls_priority_set_direct(session, gnutls_session_get_ptr(session), NULL) >= 0);
+ assert(gnutls_priority_set_direct
+ (session, gnutls_session_get_ptr(session), NULL) >= 0);
return 0;
}
-static int hsk_hook_cb(gnutls_session_t session, unsigned int htype, unsigned post,
- unsigned int incoming, const gnutls_datum_t *_msg)
+static int hsk_hook_cb(gnutls_session_t session, unsigned int htype,
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * _msg)
{
unsigned size;
- gnutls_datum_t msg = {_msg->data, _msg->size};
+ gnutls_datum_t msg = { _msg->data, _msg->size };
/* skip up to session ID */
- if (msg.size <= HANDSHAKE_SESSION_ID_POS+6) {
+ if (msg.size <= HANDSHAKE_SESSION_ID_POS + 6) {
fail("Cannot parse server hello\n");
return -1;
}
@@ -311,7 +317,8 @@ static int hsk_hook_cb(gnutls_session_t session, unsigned int htype, unsigned po
return 0;
}
-static void append_alpn(gnutls_session_t session, struct params_res *params, unsigned alpn_counter)
+static void append_alpn(gnutls_session_t session, struct params_res *params,
+ unsigned alpn_counter)
{
gnutls_datum_t protocol;
int ret;
@@ -322,7 +329,7 @@ static void append_alpn(gnutls_session_t session, struct params_res *params, uns
snprintf(str, sizeof(str), "myproto-%d", alpn_counter);
- protocol.data = (void*)str;
+ protocol.data = (void *)str;
protocol.size = strlen(str);
ret = gnutls_alpn_set_protocols(session, &protocol, 1, 0);
@@ -332,7 +339,8 @@ static void append_alpn(gnutls_session_t session, struct params_res *params, uns
}
}
-static void verify_alpn(gnutls_session_t session, struct params_res *params, unsigned alpn_counter)
+static void verify_alpn(gnutls_session_t session, struct params_res *params,
+ unsigned alpn_counter)
{
int ret;
gnutls_datum_t selected;
@@ -349,8 +357,10 @@ static void verify_alpn(gnutls_session_t session, struct params_res *params, uns
exit(1);
}
- if (strlen(str) != selected.size || memcmp(str, selected.data, selected.size) != 0) {
- fail("expected protocol %s, got %.*s\n", str, selected.size, selected.data);
+ if (strlen(str) != selected.size
+ || memcmp(str, selected.data, selected.size) != 0) {
+ fail("expected protocol %s, got %.*s\n", str, selected.size,
+ selected.data);
exit(1);
}
@@ -358,7 +368,8 @@ static void verify_alpn(gnutls_session_t session, struct params_res *params, uns
success("ALPN got: %s\n", str);
}
-static void verify_group(gnutls_session_t session, gnutls_group_t *group, unsigned counter)
+static void verify_group(gnutls_session_t session, gnutls_group_t * group,
+ unsigned counter)
{
if (counter == 0) {
*group = gnutls_group_get(session);
@@ -366,16 +377,18 @@ static void verify_group(gnutls_session_t session, gnutls_group_t *group, unsign
}
if (gnutls_group_get(session) != *group) {
- fail("expected group %s, got group %s\n", gnutls_group_get_name(*group),
+ fail("expected group %s, got group %s\n",
+ gnutls_group_get_name(*group),
gnutls_group_get_name(gnutls_group_get(session)));
}
}
-static void verify_server_params(gnutls_session_t session, unsigned counter, struct params_res *params)
+static void verify_server_params(gnutls_session_t session, unsigned counter,
+ struct params_res *params)
{
static char id[GNUTLS_MAX_SESSION_ID];
static size_t id_size = 0;
-#if defined(USE_PSK)
+# if defined(USE_PSK)
const char *username;
username = gnutls_psk_server_get_username(session);
if (counter != 0) {
@@ -385,10 +398,12 @@ static void verify_server_params(gnutls_session_t session, unsigned counter, str
if (strcmp(username, "test") != 0)
fail("wrong username was returned on server side resumption\n");
}
-#endif
+# endif
if (counter == 0 && params->early_start) {
- if (!(gnutls_session_get_flags(session) & GNUTLS_SFLAGS_EARLY_START)) {
+ if (!
+ (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_EARLY_START)) {
fail("early start did not happen on %d!\n", counter);
}
}
@@ -400,27 +415,30 @@ static void verify_server_params(gnutls_session_t session, unsigned counter, str
}
if (params->no_early_start) {
- if (gnutls_session_get_flags(session) & GNUTLS_SFLAGS_EARLY_START) {
+ if (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_EARLY_START) {
fail("early start did happen on %d but was not expected!\n", counter);
}
}
-
-#if defined(USE_X509)
+# if defined(USE_X509)
unsigned int l;
if (gnutls_certificate_type_get(session) != GNUTLS_CRT_X509)
- fail("did not find the expected X509 certificate type! (%d)\n", gnutls_certificate_type_get(session));
+ fail("did not find the expected X509 certificate type! (%d)\n",
+ gnutls_certificate_type_get(session));
if (counter == 0 && gnutls_certificate_get_ours(session) == NULL)
- fail("no certificate returned on server side (%s)\n", counter ? "resumed session" : "first session");
+ fail("no certificate returned on server side (%s)\n",
+ counter ? "resumed session" : "first session");
else if (counter != 0 && gnutls_certificate_get_ours(session) != NULL)
- fail("certificate was returned on server side (%s)\n", counter ? "resumed session" : "first session");
+ fail("certificate was returned on server side (%s)\n",
+ counter ? "resumed session" : "first session");
if (params->client_cert) {
if (gnutls_certificate_get_peers(session, &l) == NULL || l < 1)
fail("no client certificate returned on server side (%s)\n", counter ? "resumed session" : "first session");
}
-#endif
+# endif
/* verify whether the session ID remains the same between sessions */
if (counter == 0) {
@@ -448,21 +466,22 @@ static void verify_server_params(gnutls_session_t session, unsigned counter, str
static void verify_client_params(gnutls_session_t session, unsigned counter)
{
-#if defined(USE_X509)
+# if defined(USE_X509)
unsigned int l;
if (gnutls_certificate_get_peers(session, &l) == NULL || l < 1)
- fail("no server certificate returned on client side (%s)\n", counter ? "resumed session" : "first session");
-#else
+ fail("no server certificate returned on client side (%s)\n",
+ counter ? "resumed session" : "first session");
+# else
return;
-#endif
+# endif
}
-#ifdef TLS12
-# define VERS_STR "+VERS-TLS1.2"
-#endif
-#ifdef TLS13
-# define VERS_STR "-VERS-ALL:+VERS-TLS1.3"
-#endif
+# ifdef TLS12
+# define VERS_STR "+VERS-TLS1.2"
+# endif
+# ifdef TLS13
+# define VERS_STR "-VERS-ALL:+VERS-TLS1.3"
+# endif
static void client(int sds[], struct params_res *params)
{
@@ -474,49 +493,50 @@ static void client(int sds[], struct params_res *params)
char prio_str[256];
const char *dns_name1 = "example.com";
const char *dns_name2 = "www.example.com";
-#ifdef USE_PSK
-# define PRIO_STR "NONE:"VERS_STR":+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+PSK:+CURVE-ALL"
- const gnutls_datum_t pskkey = { (void *) "DEADBEEF", 8 };
+# ifdef USE_PSK
+# define PRIO_STR "NONE:"VERS_STR":+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+PSK:+CURVE-ALL"
+ const gnutls_datum_t pskkey = { (void *)"DEADBEEF", 8 };
gnutls_psk_client_credentials_t pskcred;
-#elif defined(USE_ANON)
-# define PRIO_STR "NONE:"VERS_STR":+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+ANON-DH:+CURVE-ALL"
+# elif defined(USE_ANON)
+# define PRIO_STR "NONE:"VERS_STR":+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+ANON-DH:+CURVE-ALL"
gnutls_anon_client_credentials_t anoncred;
-#elif defined(USE_X509)
-# define PRIO_STR "NONE:"VERS_STR":+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ECDHE-RSA:+RSA:+CURVE-ALL"
+# elif defined(USE_X509)
+# define PRIO_STR "NONE:"VERS_STR":+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ECDHE-RSA:+RSA:+CURVE-ALL"
gnutls_certificate_credentials_t clientx509cred;
-#endif
+# endif
/* Need to enable anonymous KX specifically. */
/* variables used in session resuming
*/
int t;
- gnutls_datum_t session_data = {NULL, 0};
+ gnutls_datum_t session_data = { NULL, 0 };
if (debug) {
gnutls_global_set_log_function(tls_log_func);
gnutls_global_set_log_level(4);
}
-
-#ifdef USE_PSK
+# ifdef USE_PSK
gnutls_psk_allocate_client_credentials(&pskcred);
- gnutls_psk_set_client_credentials(pskcred, "test", &pskkey, GNUTLS_PSK_KEY_HEX);
-#elif defined(USE_ANON)
+ gnutls_psk_set_client_credentials(pskcred, "test", &pskkey,
+ GNUTLS_PSK_KEY_HEX);
+# elif defined(USE_ANON)
gnutls_anon_allocate_client_credentials(&anoncred);
-#elif defined(USE_X509)
+# elif defined(USE_X509)
gnutls_certificate_allocate_credentials(&clientx509cred);
if (params->client_cert) {
assert(gnutls_certificate_set_x509_key_mem(clientx509cred,
&cli_cert, &cli_key,
- GNUTLS_X509_FMT_PEM) >= 0);
+ GNUTLS_X509_FMT_PEM)
+ >= 0);
}
-#endif
+# endif
for (t = 0; t < SESSIONS; t++) {
int sd = sds[t];
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
snprintf(prio_str, sizeof(prio_str), "%s", PRIO_STR);
@@ -544,7 +564,8 @@ static void client(int sds[], struct params_res *params)
if (params->change_ciphersuite) {
if (t > 0)
- strcat(prio_str, ":-CIPHER-ALL:+AES-256-GCM:+AES-128-GCM");
+ strcat(prio_str,
+ ":-CIPHER-ALL:+AES-256-GCM:+AES-128-GCM");
else
strcat(prio_str, ":-CIPHER-ALL:+AES-128-GCM");
}
@@ -558,30 +579,40 @@ static void client(int sds[], struct params_res *params)
/* put the anonymous credentials to the current session
*/
-#ifdef USE_PSK
+# ifdef USE_PSK
gnutls_credentials_set(session, GNUTLS_CRD_PSK, pskcred);
-#elif defined(USE_ANON)
+# elif defined(USE_ANON)
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
-#elif defined(USE_X509)
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
-#endif
+# elif defined(USE_X509)
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ clientx509cred);
+# endif
if (t > 0) {
/* if this is not the first time we connect */
gnutls_session_set_data(session, session_data.data,
session_data.size);
if (params->try_diff_sni)
- gnutls_server_name_set(session, GNUTLS_NAME_DNS, dns_name1, strlen(dns_name1));
+ gnutls_server_name_set(session, GNUTLS_NAME_DNS,
+ dns_name1,
+ strlen(dns_name1));
else if (params->try_sni)
- gnutls_server_name_set(session, GNUTLS_NAME_DNS, dns_name2, strlen(dns_name2));
+ gnutls_server_name_set(session, GNUTLS_NAME_DNS,
+ dns_name2,
+ strlen(dns_name2));
} else {
if (params->try_sni)
- gnutls_server_name_set(session, GNUTLS_NAME_DNS, dns_name2, strlen(dns_name2));
+ gnutls_server_name_set(session, GNUTLS_NAME_DNS,
+ dns_name2,
+ strlen(dns_name2));
}
if (ext_master_secret_check)
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_SERVER_HELLO, GNUTLS_HOOK_PRE, hsk_hook_cb);
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_SERVER_HELLO,
+ GNUTLS_HOOK_PRE,
+ hsk_hook_cb);
gnutls_transport_set_int(session, sd);
/* Perform the TLS handshake
@@ -597,18 +628,16 @@ static void client(int sds[], struct params_res *params)
goto end;
} else {
if (debug)
- success
- ("client: Handshake was completed\n");
+ success("client: Handshake was completed\n");
}
ext_master_secret_check = 0;
if (t == 0) {
- ext_master_secret_check = gnutls_session_ext_master_secret_status(session);
+ ext_master_secret_check =
+ gnutls_session_ext_master_secret_status(session);
/* get the session data size */
- ret =
- gnutls_session_get_data2(session,
- &session_data);
+ ret = gnutls_session_get_data2(session, &session_data);
if (ret < 0)
fail("Getting resume data failed\n");
@@ -642,9 +671,9 @@ static void client(int sds[], struct params_res *params)
if (params->change_ciphersuite) {
/* check if the expected cipher was negotiated */
- if (gnutls_cipher_get(session) != GNUTLS_CIPHER_AES_128_GCM) {
- fail("negotiated different cipher: %s\n",
- gnutls_cipher_get_name(gnutls_cipher_get(session)));
+ if (gnutls_cipher_get(session) !=
+ GNUTLS_CIPHER_AES_128_GCM) {
+ fail("negotiated different cipher: %s\n", gnutls_cipher_get_name(gnutls_cipher_get(session)));
}
}
}
@@ -686,35 +715,34 @@ static void client(int sds[], struct params_res *params)
}
gnutls_free(session_data.data);
- end:
-#ifdef USE_PSK
+ end:
+# ifdef USE_PSK
gnutls_psk_free_client_credentials(pskcred);
-#elif defined(USE_ANON)
+# elif defined(USE_ANON)
gnutls_anon_free_client_credentials(anoncred);
-#elif defined(USE_X509)
+# elif defined(USE_X509)
gnutls_certificate_free_credentials(clientx509cred);
-#endif
+# endif
}
-#define DH_BITS 1024
+# define DH_BITS 1024
/* These are global */
static gnutls_datum_t session_ticket_key = { NULL, 0 };
-
static gnutls_dh_params_t dh_params;
-#ifdef USE_PSK
+# ifdef USE_PSK
gnutls_psk_server_credentials_t pskcred;
-#elif defined(USE_ANON)
+# elif defined(USE_ANON)
gnutls_anon_server_credentials_t anoncred;
-#elif defined(USE_X509)
+# elif defined(USE_X509)
gnutls_certificate_credentials_t serverx509cred;
-#endif
+# endif
static int generate_dh_params(void)
{
- const gnutls_datum_t p3 = { (void *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (void *)pkcs3, strlen(pkcs3) };
/* Generate Diffie-Hellman parameters - for use with DHE
* kx algorithms. These should be discarded and regenerated
* once a day, once a week or once a month. Depending on the
@@ -725,26 +753,24 @@ static int generate_dh_params(void)
GNUTLS_X509_FMT_PEM);
}
-
static void global_stop(void)
{
if (debug)
success("global stop\n");
-#ifdef USE_PSK
+# ifdef USE_PSK
gnutls_psk_free_server_credentials(pskcred);
-#elif defined(USE_ANON)
+# elif defined(USE_ANON)
gnutls_anon_free_server_credentials(anoncred);
-#elif defined(USE_X509)
+# elif defined(USE_X509)
gnutls_certificate_free_credentials(serverx509cred);
-#endif
+# endif
gnutls_dh_params_deinit(dh_params);
}
-#ifdef USE_PSK
+# ifdef USE_PSK
static int
-pskfunc(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+pskfunc(gnutls_session_t session, const char *username, gnutls_datum_t * key)
{
if (debug)
printf("psk: username %s\n", username);
@@ -756,7 +782,7 @@ pskfunc(gnutls_session_t session, const char *username,
key->size = 4;
return 0;
}
-#endif
+# endif
static void server(int sds[], struct params_res *params)
{
@@ -778,26 +804,26 @@ static void server(int sds[], struct params_res *params)
gnutls_global_set_log_function(tls_log_func);
gnutls_global_set_log_level(4);
}
-
-#ifdef USE_PSK
+# ifdef USE_PSK
gnutls_psk_allocate_server_credentials(&pskcred);
gnutls_psk_set_server_credentials_function(pskcred, pskfunc);
-#elif defined(USE_ANON)
+# elif defined(USE_ANON)
gnutls_anon_allocate_server_credentials(&anoncred);
-#elif defined(USE_X509)
+# elif defined(USE_X509)
gnutls_certificate_allocate_credentials(&serverx509cred);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key, GNUTLS_X509_FMT_PEM) >= 0);
-#endif
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
+# endif
if (debug)
success("Launched, generating DH parameters...\n");
generate_dh_params();
-#if USE_ANON
+# if USE_ANON
gnutls_anon_set_server_dh_params(anoncred, dh_params);
-#endif
+# endif
if (params->enable_db) {
wrap_db_init();
@@ -815,16 +841,14 @@ static void server(int sds[], struct params_res *params)
* are adequate.
*/
assert(gnutls_priority_set_direct(session,
- PRIO_STR,
- NULL) >= 0);
-
+ PRIO_STR, NULL) >= 0);
-#if defined(USE_X509)
+# if defined(USE_X509)
if (params->client_cert) {
gnutls_certificate_server_set_request(session,
GNUTLS_CERT_REQUIRE);
}
-#endif
+# endif
gnutls_dh_set_prime_bits(session, DH_BITS);
@@ -845,13 +869,14 @@ static void server(int sds[], struct params_res *params)
gnutls_db_set_cache_expiration(session, 45);
virt_sec_sleep(60);
}
-#ifdef USE_PSK
+# ifdef USE_PSK
gnutls_credentials_set(session, GNUTLS_CRD_PSK, pskcred);
-#elif defined(USE_ANON)
+# elif defined(USE_ANON)
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
-#elif defined(USE_X509)
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
-#endif
+# elif defined(USE_X509)
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ serverx509cred);
+# endif
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
@@ -861,7 +886,6 @@ static void server(int sds[], struct params_res *params)
post_client_hello_callback);
}
-
do {
ret = gnutls_handshake(session);
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
@@ -879,7 +903,8 @@ static void server(int sds[], struct params_res *params)
if (t > 0 && params->expect_resume) {
ret = gnutls_session_is_resumed(session);
if (ret == 0) {
- fail("server: session_is_resumed error (%d)\n", t);
+ fail("server: session_is_resumed error (%d)\n",
+ t);
}
}
@@ -989,8 +1014,8 @@ void doit(void)
* and session data.
*/
-#define MAX_SESSION_ID_SIZE 32
-#define MAX_SESSION_DATA_SIZE 1024
+# define MAX_SESSION_ID_SIZE 32
+# define MAX_SESSION_DATA_SIZE 1024
typedef struct {
unsigned char session_id[MAX_SESSION_ID_SIZE];
@@ -1017,12 +1042,11 @@ static void wrap_db_deinit(void)
return;
}
-static int
-wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
+static int wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
{
time_t t, e, now = time(0);
-#ifdef DEBUG_CACHE
+# ifdef DEBUG_CACHE
if (debug) {
unsigned int i;
fprintf(stderr, "resume db storing (%d-%d): ", key.size,
@@ -1037,7 +1061,7 @@ wrap_db_store(void *dbf, gnutls_datum_t key, gnutls_datum_t data)
}
fprintf(stderr, "\n");
}
-#endif
+# endif
/* check the correctness of gnutls_db_check_entry_time() */
t = gnutls_db_check_entry_time(&data);
@@ -1096,11 +1120,9 @@ static gnutls_datum_t wrap_db_fetch(void *dbf, gnutls_datum_t key)
for (i = 0; i < TLS_SESSION_CACHE; i++) {
if (key.size == cache_db[i].session_id_size &&
- memcmp(key.data, cache_db[i].session_id,
- key.size) == 0) {
+ memcmp(key.data, cache_db[i].session_id, key.size) == 0) {
if (debug)
- success
- ("resume db fetch... return info\n");
+ success("resume db fetch... return info\n");
res.size = cache_db[i].session_data_size;
@@ -1108,22 +1130,20 @@ static gnutls_datum_t wrap_db_fetch(void *dbf, gnutls_datum_t key)
if (res.data == NULL)
return res;
- memcpy(res.data, cache_db[i].session_data,
- res.size);
+ memcpy(res.data, cache_db[i].session_data, res.size);
-#ifdef DEBUG_CACHE
+# ifdef DEBUG_CACHE
if (debug) {
unsigned int j;
printf("data:\n");
for (j = 0; j < res.size; j++) {
- printf("%02x ",
- res.data[j] & 0xFF);
+ printf("%02x ", res.data[j] & 0xFF);
if ((j + 1) % 16 == 0)
printf("\n");
}
printf("\n");
}
-#endif
+# endif
return res;
}
}
@@ -1142,8 +1162,7 @@ static int wrap_db_delete(void *dbf, gnutls_datum_t key)
for (i = 0; i < TLS_SESSION_CACHE; i++) {
if (key.size == cache_db[i].session_id_size &&
- memcmp(key.data, cache_db[i].session_id,
- key.size) == 0) {
+ memcmp(key.data, cache_db[i].session_id, key.size) == 0) {
cache_db[i].session_id_size = 0;
cache_db[i].session_data_size = 0;
diff --git a/tests/rfc7633-missing.c b/tests/rfc7633-missing.c
index 27376107aa..5591f560e6 100644
--- a/tests/rfc7633-missing.c
+++ b/tests/rfc7633-missing.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <time.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <time.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
/* This program tests that handshakes fail if the server does not include the
* requested certificate status with the server certificate having
@@ -78,20 +78,19 @@ static void client_log_func(int level, const char *str)
}
static unsigned char server_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIICBzCCAXCgAwIBAgIMVpjt8TL5Io/frpvkMA0GCSqGSIb3DQEBCwUAMCIxIDAe\n"
- "BgNVBAMTF0dudVRMUyB0ZXN0IGNlcnRpZmljYXRlMB4XDTE2MDExNTEzMDI0MVoX\n"
- "DTMyMDYxOTEzMDI0MVowIjEgMB4GA1UEAxMXR251VExTIHRlc3QgY2VydGlmaWNh\n"
- "dGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANe6XK+jDPAuqSdWqlOOqOt/\n"
- "gXVMa5i+Suq3HvhLw2rE2g0AuOpMEx82FpPecu/GpF6ybrbKCohVdZCW7aZXvAw7\n"
- "dg2XHr3p7H/Tqez7hWSga6BIznd+c5wxE/89yK6lYG7Ztoxamm+2vp9qvafwoDMn\n"
- "9bcdkuWWnHNS1p/WyI6xAgMBAAGjQjBAMBEGCCsGAQUFBwEYBAUwAwIBBTAMBgNV\n"
- "HRMBAf8EAjAAMB0GA1UdDgQWBBRTSzvcXshETAIgvzlIb0z+zSVSEDANBgkqhkiG\n"
- "9w0BAQsFAAOBgQB+VcJuLPL2PMog0HZ8RRbqVvLU5d209ROg3s1oXUBFW8+AV+71\n"
- "CsHg9Xx7vqKVwyKGI9ghds1B44lNPxGH2Sk1v2czjKbzwujo9+kLnDS6i0jyrDdn\n"
- "um4ivpkwmlUFSQVXvENLwe9gTlIgN4+0I9WLcMTCDtHWkcxMRwCm2BMsXw==\n"
- "-----END CERTIFICATE-----\n";
-
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICBzCCAXCgAwIBAgIMVpjt8TL5Io/frpvkMA0GCSqGSIb3DQEBCwUAMCIxIDAe\n"
+ "BgNVBAMTF0dudVRMUyB0ZXN0IGNlcnRpZmljYXRlMB4XDTE2MDExNTEzMDI0MVoX\n"
+ "DTMyMDYxOTEzMDI0MVowIjEgMB4GA1UEAxMXR251VExTIHRlc3QgY2VydGlmaWNh\n"
+ "dGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANe6XK+jDPAuqSdWqlOOqOt/\n"
+ "gXVMa5i+Suq3HvhLw2rE2g0AuOpMEx82FpPecu/GpF6ybrbKCohVdZCW7aZXvAw7\n"
+ "dg2XHr3p7H/Tqez7hWSga6BIznd+c5wxE/89yK6lYG7Ztoxamm+2vp9qvafwoDMn\n"
+ "9bcdkuWWnHNS1p/WyI6xAgMBAAGjQjBAMBEGCCsGAQUFBwEYBAUwAwIBBTAMBgNV\n"
+ "HRMBAf8EAjAAMB0GA1UdDgQWBBRTSzvcXshETAIgvzlIb0z+zSVSEDANBgkqhkiG\n"
+ "9w0BAQsFAAOBgQB+VcJuLPL2PMog0HZ8RRbqVvLU5d209ROg3s1oXUBFW8+AV+71\n"
+ "CsHg9Xx7vqKVwyKGI9ghds1B44lNPxGH2Sk1v2czjKbzwujo9+kLnDS6i0jyrDdn\n"
+ "um4ivpkwmlUFSQVXvENLwe9gTlIgN4+0I9WLcMTCDtHWkcxMRwCm2BMsXw==\n"
+ "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
@@ -121,14 +120,15 @@ const gnutls_datum_t server_key = { server_key_pem,
static int received = 0;
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
fail("received status request\n");
received = 1;
return 0;
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -155,7 +155,8 @@ static void client(int fd, const char *prio)
/* Use default priorities */
gnutls_priority_set_direct(session, prio, NULL);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
GNUTLS_HOOK_POST,
handshake_callback);
@@ -195,20 +196,20 @@ static void client(int fd, const char *prio)
ret = gnutls_certificate_verify_peers2(session, &status);
if (ret != GNUTLS_E_SUCCESS) {
- fail("client: Peer certificate validation failed: %s\n", gnutls_strerror(ret));
- }
- else {
+ fail("client: Peer certificate validation failed: %s\n",
+ gnutls_strerror(ret));
+ } else {
if (status & GNUTLS_CERT_MISSING_OCSP_STATUS) {
- success("client: Validation failed with GNUTLS_CERT_MISSING_OCSP_STATUS\n");
- }
- else {
+ success
+ ("client: Validation failed with GNUTLS_CERT_MISSING_OCSP_STATUS\n");
+ } else {
fail("client: Validation status does not include GNUTLS_CERT_MISSING_OCSP_STATUS. Status is %d\n", status);
}
}
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -219,7 +220,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
static void server(int fd, const char *prio)
{
int ret;
@@ -239,8 +239,7 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
diff --git a/tests/rfc7633-ok.c b/tests/rfc7633-ok.c
index 41566317cd..71fc91a348 100644
--- a/tests/rfc7633-ok.c
+++ b/tests/rfc7633-ok.c
@@ -22,7 +22,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -38,20 +38,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <time.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-
-#include "utils.h"
-#include "cert-common.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <time.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+
+# include "utils.h"
+# include "cert-common.h"
/* This program tests that handshakes succeed if the server includes the
* requested certificate status with the server certificate having
@@ -80,55 +80,56 @@ static void client_log_func(int level, const char *str)
}
const unsigned char ocsp_resp[] = {
- 0x30, 0x82, 0x02, 0x3f, 0x0a, 0x01, 0x00, 0xa0, 0x82, 0x02, 0x38, 0x30,
- 0x82, 0x02, 0x34, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
- 0x01, 0x01, 0x04, 0x82, 0x02, 0x25, 0x30, 0x82, 0x02, 0x21, 0x30, 0x81,
- 0x8a, 0xa1, 0x11, 0x30, 0x0f, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x03, 0x55,
- 0x04, 0x03, 0x13, 0x04, 0x43, 0x41, 0x2d, 0x33, 0x18, 0x0f, 0x32, 0x30,
- 0x31, 0x39, 0x30, 0x36, 0x30, 0x37, 0x32, 0x31, 0x31, 0x35, 0x32, 0x32,
- 0x5a, 0x30, 0x64, 0x30, 0x62, 0x30, 0x4d, 0x30, 0x09, 0x06, 0x05, 0x2b,
- 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14, 0xb7, 0xca, 0x0f, 0xab,
- 0xdc, 0x6f, 0xb8, 0xb0, 0x96, 0x7a, 0x15, 0xac, 0x98, 0x0a, 0x0f, 0x19,
- 0xfe, 0xa4, 0x12, 0xde, 0x04, 0x14, 0x1e, 0x85, 0xed, 0x7f, 0x9e, 0x71,
- 0xfa, 0x08, 0x9d, 0x37, 0x48, 0x43, 0xa0, 0x12, 0xef, 0xe5, 0xaa, 0xe1,
- 0xe3, 0x8a, 0x02, 0x14, 0x60, 0x14, 0x5f, 0x01, 0xcb, 0xe0, 0x05, 0x45,
- 0x38, 0x8c, 0x26, 0xfc, 0x5b, 0xcf, 0x6c, 0x41, 0xc3, 0xcb, 0xaa, 0xcc,
- 0x80, 0x00, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x39, 0x30, 0x36, 0x30, 0x37,
- 0x32, 0x31, 0x31, 0x35, 0x32, 0x32, 0x5a, 0x30, 0x0d, 0x06, 0x09, 0x2a,
- 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
- 0x01, 0x81, 0x00, 0x44, 0xc4, 0x59, 0xab, 0x7b, 0x6e, 0x35, 0x4e, 0x18,
- 0x83, 0x02, 0xbd, 0x94, 0x26, 0x50, 0x01, 0xe2, 0xb1, 0x50, 0xdd, 0xca,
- 0x61, 0x30, 0xb0, 0x93, 0x18, 0x56, 0xfe, 0x8d, 0x4f, 0xcc, 0x33, 0xc8,
- 0x01, 0x1e, 0xac, 0xa1, 0x8e, 0xb0, 0x76, 0x0f, 0x41, 0x38, 0x7d, 0x06,
- 0x9b, 0xfe, 0x09, 0x50, 0x6d, 0x86, 0x07, 0x2a, 0x48, 0x6e, 0x6a, 0xb1,
- 0x13, 0xf4, 0xc0, 0x0f, 0x7c, 0x7d, 0x89, 0xb9, 0x69, 0xe7, 0x04, 0x2e,
- 0xa4, 0x3d, 0xf6, 0xbd, 0x51, 0xbf, 0x52, 0x7d, 0xfb, 0x38, 0x7a, 0xbf,
- 0xe6, 0xd7, 0x32, 0x57, 0x36, 0x87, 0xec, 0x91, 0x07, 0x0c, 0xac, 0xb9,
- 0x79, 0xe7, 0x79, 0x4e, 0x49, 0x72, 0x1d, 0x16, 0xb6, 0x94, 0xbf, 0xc4,
- 0x9f, 0x4e, 0x8b, 0x51, 0x54, 0x73, 0xb4, 0x4d, 0xe7, 0x01, 0x91, 0xcd,
- 0x7c, 0xb2, 0x91, 0x4a, 0xc3, 0x4d, 0xc4, 0x4f, 0xa3, 0x42, 0xf1, 0x89,
- 0xc7, 0xab, 0x36, 0x11, 0xf0, 0x7c, 0xc6, 0x8f, 0x03, 0x53, 0x85, 0x0c,
- 0xfb, 0x30, 0x6b, 0xdd, 0x9e, 0x72, 0xd7, 0x77, 0xe5, 0xea, 0xd3, 0x39,
- 0xb5, 0xb8, 0xdd, 0x61, 0xb9, 0xe7, 0x24, 0x9c, 0x85, 0x42, 0xd7, 0x2b,
- 0x2e, 0x99, 0xdf, 0xe5, 0x8b, 0x79, 0xe3, 0x6e, 0x56, 0x6e, 0xd6, 0xed,
- 0x5f, 0x9b, 0x5f, 0x40, 0x89, 0x17, 0x1a, 0x76, 0xbb, 0x3c, 0x9f, 0x33,
- 0x71, 0xc1, 0xc5, 0x2f, 0xf4, 0x69, 0xe5, 0x5f, 0x83, 0xd4, 0x3a, 0x3d,
- 0xd7, 0x44, 0xaa, 0xc0, 0x9d, 0xd9, 0xd9, 0x99, 0xec, 0x80, 0x4c, 0x46,
- 0x5f, 0x91, 0xf4, 0x09, 0x06, 0xef, 0x37, 0x7c, 0x32, 0x64, 0x67, 0x85,
- 0x99, 0xde, 0x9c, 0xce, 0x3e, 0x58, 0x1a, 0x6c, 0x59, 0xc9, 0x60, 0x26,
- 0x02, 0xeb, 0x95, 0x52, 0x3e, 0x4f, 0xdd, 0x5f, 0x6c, 0x2d, 0x37, 0xc2,
- 0x3b, 0x72, 0x70, 0xab, 0x1d, 0xf5, 0x2a, 0xbe, 0x8c, 0x70, 0x8e, 0xf0,
- 0x25, 0x18, 0x68, 0xe5, 0xe9, 0xd1, 0xcf, 0xd8, 0x1f, 0x6c, 0x8e, 0xcf,
- 0x18, 0x46, 0x51, 0xb4, 0x69, 0xbb, 0x6f, 0x4f, 0x1e, 0x2a, 0x61, 0x3f,
- 0x64, 0x8b, 0x07, 0x7f, 0xc5, 0x80, 0xb9, 0x06, 0xd6, 0xb1, 0x8d, 0x47,
- 0x4a, 0x61, 0xd2, 0x3e, 0xb4, 0xa6, 0xab, 0x12, 0xc6, 0x5c, 0x90, 0x9e,
- 0x2e, 0x16, 0x2e, 0xd4, 0xfc, 0x4b, 0x08, 0x41, 0x94, 0xaf, 0x1d, 0x6e,
- 0x6c, 0x11, 0x5c, 0x88, 0x3d, 0xd9, 0x30, 0x9d, 0x69, 0xf7, 0x45, 0xbe,
- 0x5d, 0x1e, 0xd5, 0xe2, 0xf6, 0x38, 0xfa, 0xe1, 0xbf, 0xae, 0x9f, 0x2f,
- 0xc6, 0x7b, 0x7b, 0x98, 0x89, 0x05, 0x8d, 0x4c, 0x01, 0xad, 0x61, 0x14,
- 0x00, 0xca, 0xa3, 0xed, 0xd0, 0x2c, 0xfe, 0x1b, 0x7e, 0x1d, 0x70, 0x5b,
- 0x2e, 0xc2, 0x54, 0xcf, 0x4c, 0x0a, 0xb3, 0x21, 0x58, 0xed, 0x51, 0xe7,
- 0xeb, 0x8d, 0xb7 };
+ 0x30, 0x82, 0x02, 0x3f, 0x0a, 0x01, 0x00, 0xa0, 0x82, 0x02, 0x38, 0x30,
+ 0x82, 0x02, 0x34, 0x06, 0x09, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x01, 0x01, 0x04, 0x82, 0x02, 0x25, 0x30, 0x82, 0x02, 0x21, 0x30, 0x81,
+ 0x8a, 0xa1, 0x11, 0x30, 0x0f, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x03, 0x55,
+ 0x04, 0x03, 0x13, 0x04, 0x43, 0x41, 0x2d, 0x33, 0x18, 0x0f, 0x32, 0x30,
+ 0x31, 0x39, 0x30, 0x36, 0x30, 0x37, 0x32, 0x31, 0x31, 0x35, 0x32, 0x32,
+ 0x5a, 0x30, 0x64, 0x30, 0x62, 0x30, 0x4d, 0x30, 0x09, 0x06, 0x05, 0x2b,
+ 0x0e, 0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14, 0xb7, 0xca, 0x0f, 0xab,
+ 0xdc, 0x6f, 0xb8, 0xb0, 0x96, 0x7a, 0x15, 0xac, 0x98, 0x0a, 0x0f, 0x19,
+ 0xfe, 0xa4, 0x12, 0xde, 0x04, 0x14, 0x1e, 0x85, 0xed, 0x7f, 0x9e, 0x71,
+ 0xfa, 0x08, 0x9d, 0x37, 0x48, 0x43, 0xa0, 0x12, 0xef, 0xe5, 0xaa, 0xe1,
+ 0xe3, 0x8a, 0x02, 0x14, 0x60, 0x14, 0x5f, 0x01, 0xcb, 0xe0, 0x05, 0x45,
+ 0x38, 0x8c, 0x26, 0xfc, 0x5b, 0xcf, 0x6c, 0x41, 0xc3, 0xcb, 0xaa, 0xcc,
+ 0x80, 0x00, 0x18, 0x0f, 0x32, 0x30, 0x31, 0x39, 0x30, 0x36, 0x30, 0x37,
+ 0x32, 0x31, 0x31, 0x35, 0x32, 0x32, 0x5a, 0x30, 0x0d, 0x06, 0x09, 0x2a,
+ 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82,
+ 0x01, 0x81, 0x00, 0x44, 0xc4, 0x59, 0xab, 0x7b, 0x6e, 0x35, 0x4e, 0x18,
+ 0x83, 0x02, 0xbd, 0x94, 0x26, 0x50, 0x01, 0xe2, 0xb1, 0x50, 0xdd, 0xca,
+ 0x61, 0x30, 0xb0, 0x93, 0x18, 0x56, 0xfe, 0x8d, 0x4f, 0xcc, 0x33, 0xc8,
+ 0x01, 0x1e, 0xac, 0xa1, 0x8e, 0xb0, 0x76, 0x0f, 0x41, 0x38, 0x7d, 0x06,
+ 0x9b, 0xfe, 0x09, 0x50, 0x6d, 0x86, 0x07, 0x2a, 0x48, 0x6e, 0x6a, 0xb1,
+ 0x13, 0xf4, 0xc0, 0x0f, 0x7c, 0x7d, 0x89, 0xb9, 0x69, 0xe7, 0x04, 0x2e,
+ 0xa4, 0x3d, 0xf6, 0xbd, 0x51, 0xbf, 0x52, 0x7d, 0xfb, 0x38, 0x7a, 0xbf,
+ 0xe6, 0xd7, 0x32, 0x57, 0x36, 0x87, 0xec, 0x91, 0x07, 0x0c, 0xac, 0xb9,
+ 0x79, 0xe7, 0x79, 0x4e, 0x49, 0x72, 0x1d, 0x16, 0xb6, 0x94, 0xbf, 0xc4,
+ 0x9f, 0x4e, 0x8b, 0x51, 0x54, 0x73, 0xb4, 0x4d, 0xe7, 0x01, 0x91, 0xcd,
+ 0x7c, 0xb2, 0x91, 0x4a, 0xc3, 0x4d, 0xc4, 0x4f, 0xa3, 0x42, 0xf1, 0x89,
+ 0xc7, 0xab, 0x36, 0x11, 0xf0, 0x7c, 0xc6, 0x8f, 0x03, 0x53, 0x85, 0x0c,
+ 0xfb, 0x30, 0x6b, 0xdd, 0x9e, 0x72, 0xd7, 0x77, 0xe5, 0xea, 0xd3, 0x39,
+ 0xb5, 0xb8, 0xdd, 0x61, 0xb9, 0xe7, 0x24, 0x9c, 0x85, 0x42, 0xd7, 0x2b,
+ 0x2e, 0x99, 0xdf, 0xe5, 0x8b, 0x79, 0xe3, 0x6e, 0x56, 0x6e, 0xd6, 0xed,
+ 0x5f, 0x9b, 0x5f, 0x40, 0x89, 0x17, 0x1a, 0x76, 0xbb, 0x3c, 0x9f, 0x33,
+ 0x71, 0xc1, 0xc5, 0x2f, 0xf4, 0x69, 0xe5, 0x5f, 0x83, 0xd4, 0x3a, 0x3d,
+ 0xd7, 0x44, 0xaa, 0xc0, 0x9d, 0xd9, 0xd9, 0x99, 0xec, 0x80, 0x4c, 0x46,
+ 0x5f, 0x91, 0xf4, 0x09, 0x06, 0xef, 0x37, 0x7c, 0x32, 0x64, 0x67, 0x85,
+ 0x99, 0xde, 0x9c, 0xce, 0x3e, 0x58, 0x1a, 0x6c, 0x59, 0xc9, 0x60, 0x26,
+ 0x02, 0xeb, 0x95, 0x52, 0x3e, 0x4f, 0xdd, 0x5f, 0x6c, 0x2d, 0x37, 0xc2,
+ 0x3b, 0x72, 0x70, 0xab, 0x1d, 0xf5, 0x2a, 0xbe, 0x8c, 0x70, 0x8e, 0xf0,
+ 0x25, 0x18, 0x68, 0xe5, 0xe9, 0xd1, 0xcf, 0xd8, 0x1f, 0x6c, 0x8e, 0xcf,
+ 0x18, 0x46, 0x51, 0xb4, 0x69, 0xbb, 0x6f, 0x4f, 0x1e, 0x2a, 0x61, 0x3f,
+ 0x64, 0x8b, 0x07, 0x7f, 0xc5, 0x80, 0xb9, 0x06, 0xd6, 0xb1, 0x8d, 0x47,
+ 0x4a, 0x61, 0xd2, 0x3e, 0xb4, 0xa6, 0xab, 0x12, 0xc6, 0x5c, 0x90, 0x9e,
+ 0x2e, 0x16, 0x2e, 0xd4, 0xfc, 0x4b, 0x08, 0x41, 0x94, 0xaf, 0x1d, 0x6e,
+ 0x6c, 0x11, 0x5c, 0x88, 0x3d, 0xd9, 0x30, 0x9d, 0x69, 0xf7, 0x45, 0xbe,
+ 0x5d, 0x1e, 0xd5, 0xe2, 0xf6, 0x38, 0xfa, 0xe1, 0xbf, 0xae, 0x9f, 0x2f,
+ 0xc6, 0x7b, 0x7b, 0x98, 0x89, 0x05, 0x8d, 0x4c, 0x01, 0xad, 0x61, 0x14,
+ 0x00, 0xca, 0xa3, 0xed, 0xd0, 0x2c, 0xfe, 0x1b, 0x7e, 0x1d, 0x70, 0x5b,
+ 0x2e, 0xc2, 0x54, 0xcf, 0x4c, 0x0a, 0xb3, 0x21, 0x58, 0xed, 0x51, 0xe7,
+ 0xeb, 0x8d, 0xb7
+};
static int received = 0;
@@ -140,7 +141,7 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
return 0;
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -158,7 +159,8 @@ static void client(int fd, const char *prio)
}
assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
- assert(gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_certificate_set_x509_trust_mem
+ (x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
@@ -201,9 +203,9 @@ static void client(int fd, const char *prio)
} else {
if (status) {
gnutls_datum_t tmp;
- assert(gnutls_certificate_verification_status_print(status, GNUTLS_CRT_X509, &tmp, 0)>=0);
- fail("client: Validation status is not success (%x: %s)\n",
- status, (char*)tmp.data);
+ assert(gnutls_certificate_verification_status_print
+ (status, GNUTLS_CRT_X509, &tmp, 0) >= 0);
+ fail("client: Validation status is not success (%x: %s)\n", status, (char *)tmp.data);
}
}
@@ -218,7 +220,8 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-static int status_func(gnutls_session_t session, void *ptr, gnutls_datum_t *resp)
+static int status_func(gnutls_session_t session, void *ptr,
+ gnutls_datum_t * resp)
{
resp->data = gnutls_malloc(sizeof(ocsp_resp));
if (resp->data == NULL)
@@ -246,15 +249,17 @@ static void server(int fd, const char *prio)
gnutls_global_set_log_level(4711);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
- assert(gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_tlsfeat_cert,
- &server_ca3_key, GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &server_ca3_tlsfeat_cert, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- gnutls_certificate_set_ocsp_status_request_function(x509_cred, status_func, NULL);
+ gnutls_certificate_set_ocsp_status_request_function(x509_cred,
+ status_func, NULL);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
diff --git a/tests/rng-fork.c b/tests/rng-fork.c
index e4a374a82b..56ef086b01 100644
--- a/tests/rng-fork.c
+++ b/tests/rng-fork.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,7 +30,7 @@
#include <sys/types.h>
#include <assert.h>
#if !defined(_WIN32)
-#include <sys/wait.h>
+# include <sys/wait.h>
#endif
#include "utils.h"
@@ -47,7 +47,7 @@ static void dump(const char *name, unsigned char *buf, int buf_size)
printf("\n");
}
-#define FILENAME "./rng-test"
+# define FILENAME "./rng-test"
void doit(void)
{
diff --git a/tests/rng-no-onload.c b/tests/rng-no-onload.c
index 368cfedc5b..0b3b8da18c 100644
--- a/tests/rng-no-onload.c
+++ b/tests/rng-no-onload.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -46,8 +46,8 @@ static int _rnd_called = 0;
* Normally it shouldn't be called to prevent any blocking due to getrandom()
* calls.
*/
-int __attribute__ ((visibility ("protected")))
-gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
+int __attribute__((visibility("protected")))
+ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
{
_rnd_called = 1;
diff --git a/tests/rng-op-key.c b/tests/rng-op-key.c
index 28e7f71523..cfdc8a2529 100644
--- a/tests/rng-op-key.c
+++ b/tests/rng-op-key.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -29,7 +29,7 @@
#include <unistd.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <sys/wait.h>
+# include <sys/wait.h>
#endif
#include "utils.h"
diff --git a/tests/rng-op-nonce.c b/tests/rng-op-nonce.c
index 6602fd1383..eb23ed7d46 100644
--- a/tests/rng-op-nonce.c
+++ b/tests/rng-op-nonce.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -29,7 +29,7 @@
#include <unistd.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <sys/wait.h>
+# include <sys/wait.h>
#endif
#include "utils.h"
diff --git a/tests/rng-op-random.c b/tests/rng-op-random.c
index b2c7d79cba..7349fc4c2c 100644
--- a/tests/rng-op-random.c
+++ b/tests/rng-op-random.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -29,7 +29,7 @@
#include <unistd.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <sys/wait.h>
+# include <sys/wait.h>
#endif
#include "utils.h"
diff --git a/tests/rng-op.c b/tests/rng-op.c
index f9fd7dc478..a765794fc0 100644
--- a/tests/rng-op.c
+++ b/tests/rng-op.c
@@ -22,7 +22,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,7 +30,7 @@
#include <unistd.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <sys/wait.h>
+# include <sys/wait.h>
#endif
#include "utils.h"
@@ -54,7 +54,8 @@ static void try(int rnd)
for (i = 0; i <= 65539; i++) {
ret = gnutls_rnd(rnd, buf1, sizeof(buf1));
if (ret < 0) {
- fail("Error iterating RNG-%d more than %u times\n", rnd, i);
+ fail("Error iterating RNG-%d more than %u times\n", rnd,
+ i);
exit(1);
}
}
diff --git a/tests/rng-pthread.c b/tests/rng-pthread.c
index 3871f58881..9c2f3932b7 100644
--- a/tests/rng-pthread.c
+++ b/tests/rng-pthread.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -76,7 +76,7 @@ static void *start_thread(void *arg)
pthread_exit(0);
}
-#define MAX_THREADS 48
+# define MAX_THREADS 48
static
void do_thread_stuff(unsigned level)
@@ -85,11 +85,11 @@ void do_thread_stuff(unsigned level)
thread_data_st *data;
unsigned i, j;
- data = calloc(1, sizeof(thread_data_st)*MAX_THREADS);
+ data = calloc(1, sizeof(thread_data_st) * MAX_THREADS);
if (data == NULL)
abort();
- for (i=0;i<MAX_THREADS;i++) {
+ for (i = 0; i < MAX_THREADS; i++) {
data[i].level = level;
ret = pthread_create(&data[i].id, NULL, start_thread, &data[i]);
if (ret != 0) {
@@ -97,12 +97,14 @@ void do_thread_stuff(unsigned level)
}
}
- for (i=0;i<MAX_THREADS;i++) {
+ for (i = 0; i < MAX_THREADS; i++) {
pthread_join(data[i].id, NULL);
- for (j=0;j<MAX_THREADS;j++) {
- if (i!=j) {
- if (memcmp(data[i].buf, data[j].buf, sizeof(data[i].buf)) == 0) {
- fail("identical data found in thread %d and %d\n", i,j);
+ for (j = 0; j < MAX_THREADS; j++) {
+ if (i != j) {
+ if (memcmp
+ (data[i].buf, data[j].buf,
+ sizeof(data[i].buf)) == 0) {
+ fail("identical data found in thread %d and %d\n", i, j);
}
}
}
diff --git a/tests/rng-sigint.c b/tests/rng-sigint.c
index 04e818ede9..eae4c0972e 100644
--- a/tests/rng-sigint.c
+++ b/tests/rng-sigint.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -31,26 +31,26 @@
#if defined(HAVE_SETITIMER) && (defined(HAVE_LINUX_GETRANDOM) || defined(__linux__))
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <errno.h>
-#include <stdint.h>
-#include "utils.h"
+# include <stdio.h>
+# include <unistd.h>
+# include <sys/types.h>
+# include <sys/time.h>
+# include <errno.h>
+# include <stdint.h>
+# include "utils.h"
-#define _gnutls_debug_log printf
-#define gnutls_assert()
-#define gnutls_assert_val(val) val
+# define _gnutls_debug_log printf
+# define gnutls_assert()
+# define gnutls_assert_val(val) val
int _rnd_system_entropy_init(void);
void _rnd_system_entropy_deinit(void);
-typedef int (*get_entropy_func)(void* rnd, size_t size);
+typedef int (*get_entropy_func)(void *rnd, size_t size);
get_entropy_func _rnd_get_system_entropy;
-#define RND_NO_INCLUDES
-#include "../lib/nettle/sysrng-linux.c"
+# define RND_NO_INCLUDES
+# include "../lib/nettle/sysrng-linux.c"
static volatile int stop_loop = 0;
@@ -69,7 +69,7 @@ void doit(void)
memset(&sa, 0, sizeof(sa));
sa.sa_handler = sig_handler;
- sigemptyset (&sa.sa_mask);
+ sigemptyset(&sa.sa_mask);
sigaction(SIGALRM, &sa, NULL);
memset(&ival, 0, sizeof(ival));
@@ -84,14 +84,17 @@ void doit(void)
}
memset(empty, 0, sizeof(empty));
- for (;stop_loop<1024;) {
+ for (; stop_loop < 1024;) {
memset(buf, 0, sizeof(buf));
ret = _rnd_get_system_entropy(buf, sizeof(buf));
if (ret < 0) {
- fail("error obtaining entropy: %s\n", gnutls_strerror(ret));
+ fail("error obtaining entropy: %s\n",
+ gnutls_strerror(ret));
}
- if (memcmp(empty, buf+sizeof(buf)-sizeof(empty)-1, sizeof(empty)) == 0) {
+ if (memcmp
+ (empty, buf + sizeof(buf) - sizeof(empty) - 1,
+ sizeof(empty)) == 0) {
fail("_rnd_get_system_entropy: did not fill buffer\n");
}
}
@@ -99,7 +102,7 @@ void doit(void)
_rnd_system_entropy_deinit();
}
#else
-void doit(void); /* prototype to avoid warning with -Wmissing-prototypes */
+void doit(void); /* prototype to avoid warning with -Wmissing-prototypes */
void doit(void)
{
diff --git a/tests/rsa-encrypt-decrypt.c b/tests/rsa-encrypt-decrypt.c
index 77f53e113b..dc01bc592c 100644
--- a/tests/rsa-encrypt-decrypt.c
+++ b/tests/rsa-encrypt-decrypt.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -50,7 +50,7 @@ const gnutls_datum_t hash_data = {
};
const gnutls_datum_t raw_data = {
- (void *) "hello there",
+ (void *)"hello there",
11
};
@@ -87,11 +87,11 @@ static char pem1_key[] =
"-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t cert_dat[] = {
- {(void *) pem1_cert, sizeof(pem1_cert)}
+ {(void *)pem1_cert, sizeof(pem1_cert)}
};
const gnutls_datum_t key_dat[] = {
- {(void *) pem1_key, sizeof(pem1_key)}
+ {(void *)pem1_key, sizeof(pem1_key)}
};
void doit(void)
@@ -108,7 +108,7 @@ void doit(void)
for (i = 0; i < sizeof(key_dat) / sizeof(key_dat[0]); i++) {
if (debug)
- success("loop %d\n", (int) i);
+ success("loop %d\n", (int)i);
ret = gnutls_x509_privkey_init(&key);
if (ret < 0)
@@ -116,7 +116,7 @@ void doit(void)
ret =
gnutls_x509_privkey_import(key, &key_dat[i],
- GNUTLS_X509_FMT_PEM);
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("gnutls_x509_privkey_import\n");
@@ -146,14 +146,10 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_pubkey_import\n");
-
- ret =
- gnutls_pubkey_encrypt_data(pubkey, 0, &hash_data,
- &out);
+ ret = gnutls_pubkey_encrypt_data(pubkey, 0, &hash_data, &out);
if (ret < 0)
fail("gnutls_pubkey_encrypt_data\n");
-
ret = gnutls_privkey_decrypt_data(privkey, 0, &out, &out2);
if (ret < 0)
fail("gnutls_privkey_decrypt_data\n");
@@ -164,9 +160,11 @@ void doit(void)
if (memcmp(out2.data, hash_data.data, hash_data.size) != 0)
fail("Decrypted data don't match original (2)\n");
- /* try again with fixed length API */
- memset(out2.data, 'A', out2.size);
- ret = gnutls_privkey_decrypt_data2(privkey, 0, &out, out2.data, out2.size);
+ /* try again with fixed length API */
+ memset(out2.data, 'A', out2.size);
+ ret =
+ gnutls_privkey_decrypt_data2(privkey, 0, &out, out2.data,
+ out2.size);
if (ret < 0)
fail("gnutls_privkey_decrypt_data\n");
@@ -176,8 +174,7 @@ void doit(void)
gnutls_free(out.data);
gnutls_free(out2.data);
- ret =
- gnutls_pubkey_encrypt_data(pubkey, 0, &raw_data, &out);
+ ret = gnutls_pubkey_encrypt_data(pubkey, 0, &raw_data, &out);
if (ret < 0)
fail("gnutls_pubkey_encrypt_data\n");
@@ -191,9 +188,11 @@ void doit(void)
if (memcmp(out2.data, raw_data.data, raw_data.size) != 0)
fail("Decrypted data don't match original (4)\n");
- /* try again with fixed length API */
- memset(out2.data, 'A', out2.size);
- ret = gnutls_privkey_decrypt_data2(privkey, 0, &out, out2.data, out2.size);
+ /* try again with fixed length API */
+ memset(out2.data, 'A', out2.size);
+ ret =
+ gnutls_privkey_decrypt_data2(privkey, 0, &out, out2.data,
+ out2.size);
if (ret < 0)
fail("gnutls_privkey_decrypt_data\n");
diff --git a/tests/rsa-illegal-import.c b/tests/rsa-illegal-import.c
index b9a7f6cbc7..ca6e3301c8 100644
--- a/tests/rsa-illegal-import.c
+++ b/tests/rsa-illegal-import.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,47 +36,46 @@
* on illegal key input */
static unsigned char rsa_key_pem[] =
- "-----BEGIN RSA PRIVATE KEY-----\n"
- "MIICXQIBAAKBgQCpTrErF6KeHfaSBfQXLkw2AkrteEFca/jbWk2S0df5cRrsuC+R\n"
- "nrpHnk4prJISVQZzF+s5qgzulvRaMD0vnlCDKPjDgRLkFyiT3pW5JZJqTKiILQBw\n"
- "z6rqlQO7UWWqetc/gl9SHTq/vX5CDbA5Nxc9HJLkPX5Xl3wA12PAYmraugIDAQAB\n"
- "AoGABMjQgOM+GTHHkgDREQah6LTP4T4QusfiVHCM2KVNcSMdG6tozLirkvKKSusx\n"
- "hYsZj48ReqOvkd56MUJDuGDE7aQqhsrDnTgTnoYH7dFSY6acUucj5F6yeircFth4\n"
- "lRko09HKZ5Fd1ngstPU35GsekUMq8vaHDrRzleydp+Z5lMECQQDP/cy68Jt7tMZT\n"
- "oQQLhsddyoQG+2JiWz3PT9P9d5WdkMqzOYt6ADZ2m8HpmMcv32LQHtriSxy7JqXW\n"
- "3uSnowkEAkEA0GMOXvV/8QnWKU2/byp3HVDQP57Vq/M37BhMbxoZDAHCaIz7v8k2\n"
- "D7UBQdTeiUsm6gFJ1+E6YCnmTxdPRVuN6QJBALLLOQAGL5Jy/v4K7yA9dwpgOYiK\n"
- "9rMYPhUFSXWdI+cz/Zt9vzFcF3V0RYhaRfgYLqg7retTqFoVSgBg0OxuUSMCQBtF\n"
- "q37QAGOKVwXmz/P7icVDa024OtybIyl58J7luntwy4GlWdk6uyGJHdYAxvMO69Pa\n"
- "QVDIgDxPn32gXlaEaekCQQCVhXc3zc+VX3nM4iCpXhlET2N75ULzsR+r6CdvtwSB\n"
- "vXMBcuCE1aJHZDxqRx8XFZDZl+Ij/jrBMmtI15ebDuzH\n"
- "-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIICXQIBAAKBgQCpTrErF6KeHfaSBfQXLkw2AkrteEFca/jbWk2S0df5cRrsuC+R\n"
+ "nrpHnk4prJISVQZzF+s5qgzulvRaMD0vnlCDKPjDgRLkFyiT3pW5JZJqTKiILQBw\n"
+ "z6rqlQO7UWWqetc/gl9SHTq/vX5CDbA5Nxc9HJLkPX5Xl3wA12PAYmraugIDAQAB\n"
+ "AoGABMjQgOM+GTHHkgDREQah6LTP4T4QusfiVHCM2KVNcSMdG6tozLirkvKKSusx\n"
+ "hYsZj48ReqOvkd56MUJDuGDE7aQqhsrDnTgTnoYH7dFSY6acUucj5F6yeircFth4\n"
+ "lRko09HKZ5Fd1ngstPU35GsekUMq8vaHDrRzleydp+Z5lMECQQDP/cy68Jt7tMZT\n"
+ "oQQLhsddyoQG+2JiWz3PT9P9d5WdkMqzOYt6ADZ2m8HpmMcv32LQHtriSxy7JqXW\n"
+ "3uSnowkEAkEA0GMOXvV/8QnWKU2/byp3HVDQP57Vq/M37BhMbxoZDAHCaIz7v8k2\n"
+ "D7UBQdTeiUsm6gFJ1+E6YCnmTxdPRVuN6QJBALLLOQAGL5Jy/v4K7yA9dwpgOYiK\n"
+ "9rMYPhUFSXWdI+cz/Zt9vzFcF3V0RYhaRfgYLqg7retTqFoVSgBg0OxuUSMCQBtF\n"
+ "q37QAGOKVwXmz/P7icVDa024OtybIyl58J7luntwy4GlWdk6uyGJHdYAxvMO69Pa\n"
+ "QVDIgDxPn32gXlaEaekCQQCVhXc3zc+VX3nM4iCpXhlET2N75ULzsR+r6CdvtwSB\n"
+ "vXMBcuCE1aJHZDxqRx8XFZDZl+Ij/jrBMmtI15ebDuzH\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t rsa_key = { rsa_key_pem,
- sizeof(rsa_key_pem)-1
+ sizeof(rsa_key_pem) - 1
};
static unsigned char p8_rsa_pem[] =
- "-----BEGIN ENCRYPTED PRIVATE KEY-----\n"
- "MIICojAcBgoqhkiG9w0BDAEDMA4ECDxZ1/EW+8XWAgIUYASCAoBR6R3Z341vSRvs\n"
- "/LMErKcKkAQ3THTZBpmYgR2mrJUjJBivzOuRTCRpgtjuQ4ht2Q7KV943mJXsqAFI\n"
- "Jly5fuVQ5YmRGLW+LE5sv+AGwmsii/PvGfGa9al56tHLDSeXV2VH4fly45bQ7ipr\n"
- "PZBiEgBToF/jqDFWleH2GTCnSLpc4B2cKkMO2c5RYrCCGNRK/jr1xVUDVzeiXZwE\n"
- "dbdDaV2UG/Oeo7F48UmvuWgS9YSFSUJ4fKG1KLlAQMKtAQKX+B4oL6Jbeb1jwSCX\n"
- "Q1H9hHXHTXbPGaIncPugotZNArwwrhesTszFE4NFMbg3QNKL1fabJJFIcOYIktwL\n"
- "7HG3pSiU2rqUZgS59OMJgL4jJm1lipo8ruNIl/YCpZTombOAV2Wbvq/I0SbRRXbX\n"
- "12lco8bQO1dgSkhhe58Vrs+ChaNajtNi8SjLS+Pi1tYYAVQjcQdxCGh4q8aZUhDv\n"
- "5yRp/TUOMaZqkY6YzRAlERb9jzVeh97EsOURzLu8pQgVjcNDOUAZF67KSqlSGMh7\n"
- "PdqknM/j8KaWmVMAUn4+PuWohkyjd1/1QhCnEtFZ1lbIfWrKXV76U7zyy0OTvFKw\n"
- "qemHUbryOJu0dQHziWmdtJpS7abSuhoMnrByZD+jDfQoSX7BzmdmCQGinltITYY1\n"
- "3iChqWC7jY02CiKZqTcdwkImvmDtDYOBr0uQSgBa4eh7nYmmcpdY4I6V5qAdo30w\n"
- "oXNEMqM53Syx36Fp70/Vmy0KmK8+2T4UgxGVJEgTDsEhiwJtTXxdzgxc5npbTePa\n"
- "abhFyIXIpqoUYZ9GPU8UjNEuF//wPY6klBp6VP0ixO6RqQKzbwr85EXbzoceBrLo\n"
- "eng1/Czj\n"
- "-----END ENCRYPTED PRIVATE KEY-----\n";
+ "-----BEGIN ENCRYPTED PRIVATE KEY-----\n"
+ "MIICojAcBgoqhkiG9w0BDAEDMA4ECDxZ1/EW+8XWAgIUYASCAoBR6R3Z341vSRvs\n"
+ "/LMErKcKkAQ3THTZBpmYgR2mrJUjJBivzOuRTCRpgtjuQ4ht2Q7KV943mJXsqAFI\n"
+ "Jly5fuVQ5YmRGLW+LE5sv+AGwmsii/PvGfGa9al56tHLDSeXV2VH4fly45bQ7ipr\n"
+ "PZBiEgBToF/jqDFWleH2GTCnSLpc4B2cKkMO2c5RYrCCGNRK/jr1xVUDVzeiXZwE\n"
+ "dbdDaV2UG/Oeo7F48UmvuWgS9YSFSUJ4fKG1KLlAQMKtAQKX+B4oL6Jbeb1jwSCX\n"
+ "Q1H9hHXHTXbPGaIncPugotZNArwwrhesTszFE4NFMbg3QNKL1fabJJFIcOYIktwL\n"
+ "7HG3pSiU2rqUZgS59OMJgL4jJm1lipo8ruNIl/YCpZTombOAV2Wbvq/I0SbRRXbX\n"
+ "12lco8bQO1dgSkhhe58Vrs+ChaNajtNi8SjLS+Pi1tYYAVQjcQdxCGh4q8aZUhDv\n"
+ "5yRp/TUOMaZqkY6YzRAlERb9jzVeh97EsOURzLu8pQgVjcNDOUAZF67KSqlSGMh7\n"
+ "PdqknM/j8KaWmVMAUn4+PuWohkyjd1/1QhCnEtFZ1lbIfWrKXV76U7zyy0OTvFKw\n"
+ "qemHUbryOJu0dQHziWmdtJpS7abSuhoMnrByZD+jDfQoSX7BzmdmCQGinltITYY1\n"
+ "3iChqWC7jY02CiKZqTcdwkImvmDtDYOBr0uQSgBa4eh7nYmmcpdY4I6V5qAdo30w\n"
+ "oXNEMqM53Syx36Fp70/Vmy0KmK8+2T4UgxGVJEgTDsEhiwJtTXxdzgxc5npbTePa\n"
+ "abhFyIXIpqoUYZ9GPU8UjNEuF//wPY6klBp6VP0ixO6RqQKzbwr85EXbzoceBrLo\n"
+ "eng1/Czj\n" "-----END ENCRYPTED PRIVATE KEY-----\n";
const gnutls_datum_t p8_rsa_key = { p8_rsa_pem,
- sizeof(p8_rsa_pem)-1
+ sizeof(p8_rsa_pem) - 1
};
static
@@ -112,7 +111,9 @@ int check_pkcs8_privkey1(void)
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
- ret = gnutls_x509_privkey_import_pkcs8(key, &p8_rsa_key, GNUTLS_X509_FMT_PEM, "1234", 0);
+ ret =
+ gnutls_x509_privkey_import_pkcs8(key, &p8_rsa_key,
+ GNUTLS_X509_FMT_PEM, "1234", 0);
if (ret != GNUTLS_E_PK_INVALID_PRIVKEY)
fail("error: %s\n", gnutls_strerror(ret));
@@ -133,7 +134,9 @@ int check_pkcs8_privkey2(void)
if (ret < 0)
fail("error: %s\n", gnutls_strerror(ret));
- ret = gnutls_privkey_import_x509_raw(key, &p8_rsa_key, GNUTLS_X509_FMT_PEM, "1234", 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &p8_rsa_key,
+ GNUTLS_X509_FMT_PEM, "1234", 0);
if (ret != GNUTLS_E_PK_INVALID_PRIVKEY)
fail("error: %s\n", gnutls_strerror(ret));
diff --git a/tests/rsa-psk-cb.c b/tests/rsa-psk-cb.c
index f47a068dbd..c743491049 100644
--- a/tests/rsa-psk-cb.c
+++ b/tests/rsa-psk-cb.c
@@ -24,7 +24,7 @@
/* Tests the RSA-PSK ciphersuites under TLS1.2 */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,15 +40,15 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <unistd.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
+# include "cert-common.h"
+# include "utils.h"
/* A very basic TLS client, with PSK authentication.
*/
@@ -61,7 +61,8 @@ static void tls_log_func(int level, const char *str)
}
static
-int psk_cli_func(gnutls_session_t session, char **username, gnutls_datum_t *key)
+int psk_cli_func(gnutls_session_t session, char **username,
+ gnutls_datum_t * key)
{
*username = gnutls_malloc(5);
assert(*username != NULL);
@@ -78,8 +79,8 @@ int psk_cli_func(gnutls_session_t session, char **username, gnutls_datum_t *key)
return 0;
}
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static void client(int sd)
{
@@ -107,14 +108,14 @@ static void client(int sd)
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA-PSK",
- NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA-PSK",
+ NULL) >= 0);
/* put the anonymous credentials to the current session
*/
gnutls_credentials_set(session, GNUTLS_CRD_PSK, pskcred);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_transport_set_int(session, sd);
@@ -137,8 +138,7 @@ static void client(int sd)
ret = gnutls_record_recv(session, buffer, MAX_BUF);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -155,7 +155,7 @@ static void client(int sd)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -170,11 +170,11 @@ static void client(int sd)
/* This is a sample TLS 1.0 echo server, for PSK authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static int
psk_server_func(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+ gnutls_datum_t * key)
{
if (debug)
printf("psk: username %s\n", username);
@@ -227,13 +227,12 @@ static void server(int sd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA-PSK",
- NULL)>=0);
-
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA-PSK",
+ NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_PSK, server_pskcred);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_transport_set_int(session, sd);
@@ -266,8 +265,7 @@ static void server(int sd)
} else if (ret > 0) {
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
/* do not wait for the peer to close the connection.
diff --git a/tests/rsa-psk.c b/tests/rsa-psk.c
index df91dc6b2c..78dd5f32d2 100644
--- a/tests/rsa-psk.c
+++ b/tests/rsa-psk.c
@@ -24,7 +24,7 @@
/* Tests the RSA-PSK ciphersuites under TLS1.2 */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,15 +40,15 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <unistd.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
+# include "cert-common.h"
+# include "utils.h"
/* A very basic TLS client, with PSK authentication.
*/
@@ -60,8 +60,8 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static void client(int sd)
{
@@ -71,7 +71,7 @@ static void client(int sd)
char buffer[MAX_BUF + 1];
gnutls_psk_client_credentials_t pskcred;
/* Need to enable anonymous KX specifically. */
- const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t key = { (void *)"DEADBEEF", 8 };
global_init();
gnutls_global_set_log_function(tls_log_func);
@@ -91,14 +91,14 @@ static void client(int sd)
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA-PSK",
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA-PSK",
NULL);
/* put the anonymous credentials to the current session
*/
gnutls_credentials_set(session, GNUTLS_CRD_PSK, pskcred);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_transport_set_int(session, sd);
@@ -121,8 +121,7 @@ static void client(int sd)
ret = gnutls_record_recv(session, buffer, MAX_BUF);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -139,7 +138,7 @@ static void client(int sd)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -154,11 +153,11 @@ static void client(int sd)
/* This is a sample TLS 1.0 echo server, for PSK authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static int
psk_server_func(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+ gnutls_datum_t * key)
{
if (debug)
printf("psk: username %s\n", username);
@@ -211,13 +210,12 @@ static void server(int sd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA-PSK",
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA-PSK",
NULL);
-
gnutls_credentials_set(session, GNUTLS_CRD_PSK, server_pskcred);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_transport_set_int(session, sd);
@@ -250,8 +248,7 @@ static void server(int sd)
} else if (ret > 0) {
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
/* do not wait for the peer to close the connection.
diff --git a/tests/rsa-rsa-pss.c b/tests/rsa-rsa-pss.c
index d7799c1961..ec5e84c774 100644
--- a/tests/rsa-rsa-pss.c
+++ b/tests/rsa-rsa-pss.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -42,7 +42,7 @@ static void tls_log_func(int level, const char *str)
}
const gnutls_datum_t raw_data = {
- (void *) "hello there",
+ (void *)"hello there",
11
};
@@ -57,15 +57,17 @@ static void inv_sign_check(unsigned sigalgo,
ret = gnutls_privkey_sign_data2(privkey, sigalgo, 0,
&raw_data, &signature);
if (ret != exp_error)
- fail("gnutls_privkey_sign_data succeeded with %s and %s: %s\n", gnutls_pk_get_name(gnutls_privkey_get_pk_algorithm(privkey, NULL)),
- gnutls_sign_get_name(sigalgo), gnutls_strerror(ret));
+ fail("gnutls_privkey_sign_data succeeded with %s and %s: %s\n",
+ gnutls_pk_get_name(gnutls_privkey_get_pk_algorithm
+ (privkey, NULL)),
+ gnutls_sign_get_name(sigalgo), gnutls_strerror(ret));
if (ret == 0)
gnutls_free(signature.data);
}
static void inv_encryption_check(gnutls_pk_algorithm_t algorithm,
- gnutls_privkey_t privkey, int exp_error)
+ gnutls_privkey_t privkey, int exp_error)
{
int ret;
gnutls_datum_t ct;
@@ -79,8 +81,8 @@ static void inv_encryption_check(gnutls_pk_algorithm_t algorithm,
ret = gnutls_pubkey_encrypt_data(pubkey, 0, &raw_data, &ct);
if (ret != exp_error)
- fail("gnutls_pubkey_encrypt_data succeeded with %s: %s\n", gnutls_pk_get_name(algorithm),
- gnutls_strerror(ret));
+ fail("gnutls_pubkey_encrypt_data succeeded with %s: %s\n",
+ gnutls_pk_get_name(algorithm), gnutls_strerror(ret));
gnutls_pubkey_deinit(pubkey);
@@ -99,11 +101,11 @@ static void sign_verify_data(unsigned sigalgo, gnutls_privkey_t privkey,
&raw_data, &signature);
fips_pop_context(fips_context, sign_exp_state);
if (ret != sign_exp_error)
- fail("gnutls_x509_privkey_sign_data returned unexpected error: %s\n",
- gnutls_strerror(ret));
+ fail("gnutls_x509_privkey_sign_data returned unexpected error: %s\n", gnutls_strerror(ret));
if (ret < 0) {
- success("skipping verification as signing is expected to fail\n");
+ success
+ ("skipping verification as signing is expected to fail\n");
} else {
gnutls_pubkey_t pubkey;
@@ -115,10 +117,10 @@ static void sign_verify_data(unsigned sigalgo, gnutls_privkey_t privkey,
fail("gnutls_pubkey_import_privkey\n");
ret = gnutls_pubkey_verify_data2(pubkey, sigalgo,
- verify_flags, &raw_data, &signature);
+ verify_flags, &raw_data,
+ &signature);
if (ret != verify_exp_error)
- fail("gnutls_pubkey_verify_data2 returned unexpected error: %s\n",
- gnutls_strerror(ret));
+ fail("gnutls_pubkey_verify_data2 returned unexpected error: %s\n", gnutls_strerror(ret));
gnutls_pubkey_deinit(pubkey);
}
@@ -127,7 +129,7 @@ static void sign_verify_data(unsigned sigalgo, gnutls_privkey_t privkey,
}
static void
-prepare_keys(gnutls_privkey_t *pkey_rsa_pss, gnutls_privkey_t *pkey_rsa,
+prepare_keys(gnutls_privkey_t * pkey_rsa_pss, gnutls_privkey_t * pkey_rsa,
gnutls_digest_algorithm_t dig, size_t salt_size)
{
gnutls_privkey_t pkey;
@@ -136,34 +138,36 @@ prepare_keys(gnutls_privkey_t *pkey_rsa_pss, gnutls_privkey_t *pkey_rsa,
gnutls_x509_spki_t spki;
gnutls_datum_t tmp;
- assert(gnutls_x509_spki_init(&spki)>=0);
+ assert(gnutls_x509_spki_init(&spki) >= 0);
- assert(gnutls_privkey_init(&pkey) >=0);
+ assert(gnutls_privkey_init(&pkey) >= 0);
gnutls_x509_spki_set_rsa_pss_params(spki, dig, salt_size);
- ret =
- gnutls_privkey_generate(pkey, GNUTLS_PK_RSA, 2048, 0);
+ ret = gnutls_privkey_generate(pkey, GNUTLS_PK_RSA, 2048, 0);
if (ret < 0) {
fail("gnutls_privkey_generate: %s\n", gnutls_strerror(ret));
}
- assert(gnutls_privkey_set_spki(pkey, spki, 0)>=0);
- assert(gnutls_privkey_export_x509(pkey, &tkey) >=0);
+ assert(gnutls_privkey_set_spki(pkey, spki, 0) >= 0);
+ assert(gnutls_privkey_export_x509(pkey, &tkey) >= 0);
gnutls_x509_spki_deinit(spki);
- gnutls_x509_privkey_export2_pkcs8(tkey, GNUTLS_X509_FMT_PEM, NULL, 0, &tmp);
+ gnutls_x509_privkey_export2_pkcs8(tkey, GNUTLS_X509_FMT_PEM, NULL, 0,
+ &tmp);
/* import RSA-PSS version of key */
- assert(gnutls_privkey_init(pkey_rsa_pss) >=0);
- assert(gnutls_privkey_import_x509_raw(*pkey_rsa_pss, &tmp, GNUTLS_X509_FMT_PEM, NULL, 0) >= 0);
+ assert(gnutls_privkey_init(pkey_rsa_pss) >= 0);
+ assert(gnutls_privkey_import_x509_raw
+ (*pkey_rsa_pss, &tmp, GNUTLS_X509_FMT_PEM, NULL, 0) >= 0);
gnutls_free(tmp.data);
/* import RSA version of key */
gnutls_x509_privkey_export2(tkey, GNUTLS_X509_FMT_PEM, &tmp);
- assert(gnutls_privkey_init(pkey_rsa) >=0);
- assert(gnutls_privkey_import_x509_raw(*pkey_rsa, &tmp, GNUTLS_X509_FMT_PEM, NULL, 0) >= 0);
+ assert(gnutls_privkey_init(pkey_rsa) >= 0);
+ assert(gnutls_privkey_import_x509_raw
+ (*pkey_rsa, &tmp, GNUTLS_X509_FMT_PEM, NULL, 0) >= 0);
gnutls_x509_privkey_deinit(tkey);
gnutls_free(tmp.data);
@@ -200,13 +204,20 @@ void doit(void)
success("success signing with RSA-PSS-SHA256\n");
/* check whether the RSA-PSS key restrictions are being followed */
- inv_encryption_check(GNUTLS_PK_RSA_PSS, pkey_rsa_pss, GNUTLS_E_INVALID_REQUEST);
- inv_sign_check(GNUTLS_SIGN_RSA_SHA512, pkey_rsa_pss, GNUTLS_E_CONSTRAINT_ERROR);
- inv_sign_check(GNUTLS_SIGN_RSA_SHA256, pkey_rsa_pss, GNUTLS_E_CONSTRAINT_ERROR);
- inv_sign_check(GNUTLS_SIGN_RSA_PSS_SHA384, pkey_rsa_pss, GNUTLS_E_CONSTRAINT_ERROR);
- inv_sign_check(GNUTLS_SIGN_RSA_PSS_SHA512, pkey_rsa_pss, GNUTLS_E_CONSTRAINT_ERROR);
- inv_sign_check(GNUTLS_SIGN_RSA_PSS_RSAE_SHA384, pkey_rsa_pss, GNUTLS_E_CONSTRAINT_ERROR);
- inv_sign_check(GNUTLS_SIGN_RSA_PSS_RSAE_SHA512, pkey_rsa_pss, GNUTLS_E_CONSTRAINT_ERROR);
+ inv_encryption_check(GNUTLS_PK_RSA_PSS, pkey_rsa_pss,
+ GNUTLS_E_INVALID_REQUEST);
+ inv_sign_check(GNUTLS_SIGN_RSA_SHA512, pkey_rsa_pss,
+ GNUTLS_E_CONSTRAINT_ERROR);
+ inv_sign_check(GNUTLS_SIGN_RSA_SHA256, pkey_rsa_pss,
+ GNUTLS_E_CONSTRAINT_ERROR);
+ inv_sign_check(GNUTLS_SIGN_RSA_PSS_SHA384, pkey_rsa_pss,
+ GNUTLS_E_CONSTRAINT_ERROR);
+ inv_sign_check(GNUTLS_SIGN_RSA_PSS_SHA512, pkey_rsa_pss,
+ GNUTLS_E_CONSTRAINT_ERROR);
+ inv_sign_check(GNUTLS_SIGN_RSA_PSS_RSAE_SHA384, pkey_rsa_pss,
+ GNUTLS_E_CONSTRAINT_ERROR);
+ inv_sign_check(GNUTLS_SIGN_RSA_PSS_RSAE_SHA512, pkey_rsa_pss,
+ GNUTLS_E_CONSTRAINT_ERROR);
/* check whether the RSA key is not being restricted */
inv_sign_check(GNUTLS_SIGN_RSA_SHA512, pkey_rsa, 0);
@@ -241,9 +252,7 @@ void doit(void)
0, 0, 0, 0, GNUTLS_FIPS140_OP_NOT_APPROVED);
sign_verify_data(GNUTLS_SIGN_RSA_PSS_SHA256, pkey_rsa_pss,
GNUTLS_PRIVKEY_FLAG_RSA_PSS_FIXED_SALT_LENGTH,
- 0,
- GNUTLS_E_CONSTRAINT_ERROR,
- 0,
+ 0, GNUTLS_E_CONSTRAINT_ERROR, 0,
/* The error is caught before calling the actual
* signing operation.
*/
@@ -255,17 +264,15 @@ void doit(void)
GNUTLS_E_PK_SIG_VERIFY_FAILED,
GNUTLS_FIPS140_OP_NOT_APPROVED);
- assert(gnutls_x509_spki_init(&spki)>=0);
+ assert(gnutls_x509_spki_init(&spki) >= 0);
gnutls_x509_spki_set_rsa_pss_params(spki, GNUTLS_DIG_SHA256, 48);
- assert(gnutls_privkey_set_spki(pkey_rsa, spki, 0)>=0);
+ assert(gnutls_privkey_set_spki(pkey_rsa, spki, 0) >= 0);
sign_verify_data(GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, pkey_rsa, 0, 0, 0, 0,
GNUTLS_FIPS140_OP_NOT_APPROVED);
sign_verify_data(GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, pkey_rsa,
GNUTLS_PRIVKEY_FLAG_RSA_PSS_FIXED_SALT_LENGTH,
- 0,
- GNUTLS_E_CONSTRAINT_ERROR,
- 0,
+ 0, GNUTLS_E_CONSTRAINT_ERROR, 0,
/* The error is caught before calling the actual
* signing operation.
*/
diff --git a/tests/safe-renegotiation/srn0.c b/tests/safe-renegotiation/srn0.c
index 219b5cab94..905aa2aed5 100644
--- a/tests/safe-renegotiation/srn0.c
+++ b/tests/safe-renegotiation/srn0.c
@@ -28,7 +28,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -110,9 +110,9 @@ void doit(void)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- gnutls_priority_set_direct(server, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ gnutls_priority_set_direct(server, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -120,9 +120,9 @@ void doit(void)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
- gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
+ gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
@@ -135,8 +135,10 @@ void doit(void)
exit(1);
}
- if (!(gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- !(gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if (!
+ (gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+|| !(gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
tls_log_func(0, "Session not using safe renegotiation!\n");
exit(1);
}
@@ -165,8 +167,10 @@ void doit(void)
exit(1);
}
- if (!(gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- !(gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if (!
+ (gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+|| !(gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
tls_log_func(0,
"Rehandshaked session not using safe renegotiation!\n");
exit(1);
diff --git a/tests/safe-renegotiation/srn1.c b/tests/safe-renegotiation/srn1.c
index 7f51724be3..3f29c051b9 100644
--- a/tests/safe-renegotiation/srn1.c
+++ b/tests/safe-renegotiation/srn1.c
@@ -27,7 +27,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -109,9 +109,9 @@ void doit(void)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- gnutls_priority_set_direct(server, "NORMAL:-VERS-ALL:+VERS-TLS1.2:%SAFE_RENEGOTIATION",
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ gnutls_priority_set_direct(server,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:%SAFE_RENEGOTIATION",
NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -120,8 +120,7 @@ void doit(void)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_priority_set_direct(client,
"NORMAL:-VERS-ALL:+VERS-TLS1.2:%DISABLE_SAFE_RENEGOTIATION",
NULL);
@@ -136,8 +135,10 @@ void doit(void)
abort();
}
- if ((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- (gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if ((gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+ || (gnutls_session_get_flags(server) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
puts("Client or server using extension before handshake?");
abort();
}
diff --git a/tests/safe-renegotiation/srn2.c b/tests/safe-renegotiation/srn2.c
index 2b47776bfc..3857b000fe 100644
--- a/tests/safe-renegotiation/srn2.c
+++ b/tests/safe-renegotiation/srn2.c
@@ -25,7 +25,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -107,9 +107,9 @@ void doit(void)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- gnutls_priority_set_direct(server, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ gnutls_priority_set_direct(server, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -117,9 +117,9 @@ void doit(void)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
- gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
+ gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
@@ -131,8 +131,10 @@ void doit(void)
abort();
}
- if ((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- (gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if ((gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+ || (gnutls_session_get_flags(server) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
puts("Client or server using extension before handshake?");
abort();
}
@@ -146,8 +148,10 @@ void doit(void)
abort();
}
- if (!(gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- !(gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if (!
+ (gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+|| !(gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
puts("Client or server not using safe renegotiation extension?");
abort();
}
@@ -176,8 +180,10 @@ void doit(void)
abort();
}
- if (!(gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- !(gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if (!
+ (gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+|| !(gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
puts("Client or server not using safe renegotiation extension?");
abort();
}
diff --git a/tests/safe-renegotiation/srn3.c b/tests/safe-renegotiation/srn3.c
index 02b4f26016..049c41f610 100644
--- a/tests/safe-renegotiation/srn3.c
+++ b/tests/safe-renegotiation/srn3.c
@@ -27,7 +27,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -109,8 +109,7 @@ void doit(void)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
"NORMAL:-VERS-ALL:+VERS-TLS1.2:%DISABLE_SAFE_RENEGOTIATION",
NULL);
@@ -121,9 +120,9 @@ void doit(void)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
- gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2:%SAFE_RENEGOTIATION",
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
+ gnutls_priority_set_direct(client,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:%SAFE_RENEGOTIATION",
NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
@@ -136,15 +135,16 @@ void doit(void)
abort();
}
- if ((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- (gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if ((gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+ || (gnutls_session_get_flags(server) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
puts("Client or server using extension before handshake?");
abort();
}
HANDSHAKE_EXPECT(client, server,
- GNUTLS_E_SAFE_RENEGOTIATION_FAILED,
- GNUTLS_E_AGAIN);
+ GNUTLS_E_SAFE_RENEGOTIATION_FAILED, GNUTLS_E_AGAIN);
gnutls_bye(client, GNUTLS_SHUT_RDWR);
gnutls_bye(server, GNUTLS_SHUT_RDWR);
diff --git a/tests/safe-renegotiation/srn4.c b/tests/safe-renegotiation/srn4.c
index dcf28619a8..685725262f 100644
--- a/tests/safe-renegotiation/srn4.c
+++ b/tests/safe-renegotiation/srn4.c
@@ -27,7 +27,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -109,9 +109,9 @@ void doit(void)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- gnutls_priority_set_direct(server, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ gnutls_priority_set_direct(server, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -119,8 +119,7 @@ void doit(void)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_priority_set_direct(client,
"NORMAL:-VERS-ALL:+VERS-TLS1.2:%DISABLE_SAFE_RENEGOTIATION",
NULL);
@@ -137,8 +136,10 @@ void doit(void)
exit(1);
}
- if ((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- (gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if ((gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+ || (gnutls_session_get_flags(server) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
tls_log_func(0,
"Session using safe renegotiation but shouldn't!\n");
exit(1);
@@ -169,8 +170,10 @@ void doit(void)
exit(1);
}
- if ((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- (gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if ((gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+ || (gnutls_session_get_flags(server) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
tls_log_func(0,
"Rehandshaked session using safe renegotiation!\n");
exit(1);
diff --git a/tests/safe-renegotiation/srn5.c b/tests/safe-renegotiation/srn5.c
index e11792e95b..5f820b5cf0 100644
--- a/tests/safe-renegotiation/srn5.c
+++ b/tests/safe-renegotiation/srn5.c
@@ -28,7 +28,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -110,8 +110,7 @@ void doit(void)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
"NORMAL:-VERS-ALL:+VERS-TLS1.2:%DISABLE_SAFE_RENEGOTIATION",
NULL);
@@ -122,9 +121,9 @@ void doit(void)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
- gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
+ gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
@@ -143,8 +142,10 @@ void doit(void)
exit(1);
}
- if ((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- (gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if ((gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+ || (gnutls_session_get_flags(server) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
tls_log_func(0,
"Server or client thinks it is using safe renegotiation!\n");
exit(1);
@@ -166,8 +167,7 @@ void doit(void)
}
HANDSHAKE_EXPECT(client, server,
- GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED,
- GNUTLS_E_AGAIN);
+ GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED, GNUTLS_E_AGAIN);
if (gnutls_safe_renegotiation_status(client) ||
gnutls_safe_renegotiation_status(server)) {
@@ -176,8 +176,10 @@ void doit(void)
exit(1);
}
- if ((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION) ||
- (gnutls_session_get_flags(server) & GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
+ if ((gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)
+ || (gnutls_session_get_flags(server) &
+ GNUTLS_SFLAGS_SAFE_RENEGOTIATION)) {
tls_log_func(0,
"Rehandshaked session using safe renegotiation!\n");
exit(1);
diff --git a/tests/sec-params.c b/tests/sec-params.c
index 3b6db5e7ed..5f41c0d8f2 100644
--- a/tests/sec-params.c
+++ b/tests/sec-params.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -32,36 +32,40 @@
int main(int argc, char *argv[])
{
-int ret;
-gnutls_sec_param_t p;
+ int ret;
+ gnutls_sec_param_t p;
ret = global_init();
if (ret != 0) {
printf("%d: %s\n", ret, gnutls_strerror(ret));
return EXIT_FAILURE;
}
-
+
p = gnutls_pk_bits_to_sec_param(GNUTLS_PK_EC, 160);
if (p != GNUTLS_SEC_PARAM_LOW) {
- fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__, (unsigned)p);
+ fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__,
+ (unsigned)p);
return 1;
}
p = gnutls_pk_bits_to_sec_param(GNUTLS_PK_EC, 192);
if (p != GNUTLS_SEC_PARAM_LEGACY) {
- fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__, (unsigned)p);
+ fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__,
+ (unsigned)p);
return 1;
}
p = gnutls_pk_bits_to_sec_param(GNUTLS_PK_EC, 256);
if (p != GNUTLS_SEC_PARAM_HIGH) {
- fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__, (unsigned)p);
+ fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__,
+ (unsigned)p);
return 1;
}
p = gnutls_pk_bits_to_sec_param(GNUTLS_PK_EC, 384);
if (p != GNUTLS_SEC_PARAM_ULTRA) {
- fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__, (unsigned)p);
+ fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__,
+ (unsigned)p);
return 1;
}
@@ -71,19 +75,22 @@ gnutls_sec_param_t p;
#else
if (p != GNUTLS_SEC_PARAM_LOW) {
#endif
- fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__, (unsigned)p);
+ fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__,
+ (unsigned)p);
return 1;
}
p = gnutls_pk_bits_to_sec_param(GNUTLS_PK_RSA, 2048);
if (p != GNUTLS_SEC_PARAM_MEDIUM) {
- fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__, (unsigned)p);
+ fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__,
+ (unsigned)p);
return 1;
}
p = gnutls_pk_bits_to_sec_param(GNUTLS_PK_RSA, 3072);
if (p != GNUTLS_SEC_PARAM_HIGH) {
- fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__, (unsigned)p);
+ fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__,
+ (unsigned)p);
return 1;
}
@@ -93,13 +100,15 @@ gnutls_sec_param_t p;
#else
if (p != GNUTLS_SEC_PARAM_LOW) {
#endif
- fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__, (unsigned)p);
+ fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__,
+ (unsigned)p);
return 1;
}
p = gnutls_pk_bits_to_sec_param(GNUTLS_PK_DH, 2048);
if (p != GNUTLS_SEC_PARAM_MEDIUM) {
- fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__, (unsigned)p);
+ fprintf(stderr, "%d: error in sec param, p:%u\n", __LINE__,
+ (unsigned)p);
return 1;
}
diff --git a/tests/seccomp.c b/tests/seccomp.c
index 210fc9f9a3..a3148fea27 100644
--- a/tests/seccomp.c
+++ b/tests/seccomp.c
@@ -23,26 +23,25 @@
#ifdef HAVE_LIBSECCOMP
-#include <seccomp.h>
-#include <errno.h>
-#include <string.h>
-#if defined(__linux__)
+# include <seccomp.h>
+# include <errno.h>
+# include <string.h>
+# if defined(__linux__)
# include <sys/syscall.h>
-#endif
+# endif
int disable_system_calls(void)
{
int ret;
scmp_filter_ctx ctx;
- /*ctx = seccomp_init(SCMP_ACT_ERRNO(EPERM));*/
+ /*ctx = seccomp_init(SCMP_ACT_ERRNO(EPERM)); */
ctx = seccomp_init(SCMP_ACT_TRAP);
if (ctx == NULL) {
fprintf(stderr, "could not initialize seccomp");
return -1;
}
-
-#define ADD_SYSCALL(name, ...) \
+# define ADD_SYSCALL(name, ...) \
ret = seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(name), __VA_ARGS__); \
/* libseccomp returns EDOM for pseudo-syscalls due to a bug */ \
if (ret < 0 && ret != -EDOM) { \
@@ -56,9 +55,9 @@ int disable_system_calls(void)
ADD_SYSCALL(time, 0);
ADD_SYSCALL(getpid, 0);
ADD_SYSCALL(gettimeofday, 0);
-#if defined(HAVE_CLOCK_GETTIME)
+# if defined(HAVE_CLOCK_GETTIME)
ADD_SYSCALL(clock_gettime, 0);
-#endif
+# endif
ADD_SYSCALL(getrusage, 0);
@@ -74,9 +73,9 @@ int disable_system_calls(void)
/* to read from /dev/urandom */
ADD_SYSCALL(read, 0);
-#ifdef SYS_getrandom
+# ifdef SYS_getrandom
ADD_SYSCALL(getrandom, 0);
-#endif
+# endif
/* we use it in select */
ADD_SYSCALL(sigprocmask, 0);
@@ -107,10 +106,10 @@ int disable_system_calls(void)
ret = -1;
goto fail;
}
-
+
ret = 0;
-fail:
+ fail:
seccomp_release(ctx);
return ret;
}
diff --git a/tests/send-client-cert.c b/tests/send-client-cert.c
index 4a3699976c..27c4c4edb7 100644
--- a/tests/send-client-cert.c
+++ b/tests/send-client-cert.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -60,8 +60,7 @@ static void try(const char *prio, unsigned expect, unsigned ca_type)
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
@@ -78,7 +77,8 @@ static void try(const char *prio, unsigned expect, unsigned ca_type)
/* Init server */
gnutls_certificate_allocate_credentials(&serverx509cred);
gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_ca3_cert_chain, &server_ca3_key,
+ &server_ca3_cert_chain,
+ &server_ca3_key,
GNUTLS_X509_FMT_PEM);
gnutls_dh_params_init(&dh_params);
@@ -89,21 +89,25 @@ static void try(const char *prio, unsigned expect, unsigned ca_type)
gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
if (ca_type == CORRECT_CA) {
- ret = gnutls_certificate_set_x509_trust_mem(serverx509cred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(serverx509cred,
+ &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
} else if (ca_type == INCORRECT_CA || ca_type == INCORRECT_CA_FORCE) {
- ret = gnutls_certificate_set_x509_trust_mem(serverx509cred, &unknown_ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(serverx509cred,
+ &unknown_ca_cert,
+ GNUTLS_X509_FMT_PEM);
} else if (ca_type == NO_CA) {
ret = 0;
} else {
abort();
}
- ret = 0;
+ ret = 0;
if (ret < 0)
exit(1);
-
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
@@ -117,13 +121,15 @@ static void try(const char *prio, unsigned expect, unsigned ca_type)
exit(1);
ret = gnutls_certificate_set_x509_key_mem(clientx509cred,
- &cli_ca3_cert_chain, &cli_ca3_key,
+ &cli_ca3_cert_chain,
+ &cli_ca3_key,
GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
-
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -131,12 +137,12 @@ static void try(const char *prio, unsigned expect, unsigned ca_type)
flags |= GNUTLS_FORCE_CLIENT_CERT;
}
- ret = gnutls_init(&client, GNUTLS_CLIENT|flags);
+ ret = gnutls_init(&client, GNUTLS_CLIENT | flags);
if (ret < 0)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -148,13 +154,15 @@ static void try(const char *prio, unsigned expect, unsigned ca_type)
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
- success("Testing CA type %d, expecting %s\n", ca_type, expect==SENT?"sent":"not sent");
+ success("Testing CA type %d, expecting %s\n", ca_type,
+ expect == SENT ? "sent" : "not sent");
HANDSHAKE(client, server);
if (expect == SENT) {
if (gnutls_certificate_get_ours(client) == NULL) {
- fail("Test %d: client didn't send any certificate\n", ca_type);
+ fail("Test %d: client didn't send any certificate\n",
+ ca_type);
exit(1);
}
} else {
diff --git a/tests/send-data-before-handshake.c b/tests/send-data-before-handshake.c
index 6b0c2dffba..e932e14dc7 100644
--- a/tests/send-data-before-handshake.c
+++ b/tests/send-data-before-handshake.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+# include "cert-common.h"
+# include "utils.h"
/* This program tests that a client cannot send any unencrypted data
* during the handshake process. That is to ensure we protect buggy clients
@@ -65,7 +65,8 @@ static void client_log_func(int level, const char *str)
}
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
int ret;
char c = 0;
@@ -76,16 +77,18 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
/* sending */
ret = gnutls_record_send(session, &c, 1);
if (ret != GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE) {
- fail("gnutls_record_send returned %s/%d at %s\n", gnutls_strerror(ret), ret, gnutls_handshake_description_get_name(htype));
+ fail("gnutls_record_send returned %s/%d at %s\n",
+ gnutls_strerror(ret), ret,
+ gnutls_handshake_description_get_name(htype));
} else {
- success("expected behavior after %s\n", gnutls_handshake_description_get_name(htype));
+ success("expected behavior after %s\n",
+ gnutls_handshake_description_get_name(htype));
}
return 0;
}
-
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -108,11 +111,10 @@ static void client(int fd, const char *prio)
*/
gnutls_init(&session, GNUTLS_CLIENT);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
- GNUTLS_HOOK_PRE,
- handshake_callback);
+ GNUTLS_HOOK_PRE, handshake_callback);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -146,14 +148,12 @@ static void client(int fd, const char *prio)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -162,7 +162,7 @@ static void client(int fd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -173,7 +173,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -196,12 +195,11 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
diff --git a/tests/server-kx-neg-common.c b/tests/server-kx-neg-common.c
index 21476cdbb3..42f71751cd 100644
--- a/tests/server-kx-neg-common.c
+++ b/tests/server-kx-neg-common.c
@@ -48,7 +48,8 @@ typedef struct test_case_st {
static int
serv_psk_func(gnutls_session_t session, const char *username,
- gnutls_datum_t * key) {
+ gnutls_datum_t * key)
+{
key->data = gnutls_malloc(4);
assert(key->data != NULL);
key->data[0] = 0xDE;
@@ -62,22 +63,19 @@ serv_psk_func(gnutls_session_t session, const char *username,
#define SALT_TEST1 "3a3xX3Myzb9YJn5X0R7sbx"
#define VERIF_TEST1 "CEqjUZBlkQCocfOR0E4AsPZKOFYPGjKFMHW7KDcnpE4sH4.iGMbkygb/bViRNjskF9/TQdD46Mvlt6pLs5MZoTn8mO3G.RGyXdWuIrhnVn29p41Cpc5RhTLaeUm3asW6LF60VTKnGERC0eB37xZUsaTpzmaTNdD4mOoYCN3bD9Y"
#define PRIME "Ewl2hcjiutMd3Fu2lgFnUXWSc67TVyy2vwYCKoS9MLsrdJVT9RgWTCuEqWJrfB6uE3LsE9GkOlaZabS7M29sj5TnzUqOLJMjiwEzArfiLr9WbMRANlF68N5AVLcPWvNx6Zjl3m5Scp0BzJBz9TkgfhzKJZ.WtP3Mv/67I/0wmRZ"
-gnutls_datum_t tprime =
-{
- .data = (void*)PRIME,
- .size = sizeof(PRIME)-1
+gnutls_datum_t tprime = {
+ .data = (void *)PRIME,
+ .size = sizeof(PRIME) - 1
};
-gnutls_datum_t test1_verif =
-{
- .data = (void*)VERIF_TEST1,
- .size = sizeof(VERIF_TEST1)-1
+gnutls_datum_t test1_verif = {
+ .data = (void *)VERIF_TEST1,
+ .size = sizeof(VERIF_TEST1) - 1
};
-gnutls_datum_t test1_salt =
-{
- .data = (void*)SALT_TEST1,
- .size = sizeof(SALT_TEST1)-1
+gnutls_datum_t test1_salt = {
+ .data = (void *)SALT_TEST1,
+ .size = sizeof(SALT_TEST1) - 1
};
const char *side;
@@ -91,8 +89,8 @@ static void tls_log_func(int level, const char *str)
#ifdef ENABLE_SRP
static int
serv_srp_func(gnutls_session_t session, const char *username,
- gnutls_datum_t *salt, gnutls_datum_t *verifier, gnutls_datum_t *generator,
- gnutls_datum_t *prime)
+ gnutls_datum_t * salt, gnutls_datum_t * verifier,
+ gnutls_datum_t * generator, gnutls_datum_t * prime)
{
int ret;
if (debug)
@@ -111,7 +109,6 @@ serv_srp_func(gnutls_session_t session, const char *username,
if (ret < 0)
fail("error in gnutls_srp_base64_decode2 -verif\n");
-
ret = gnutls_srp_base64_decode2(&test1_salt, salt);
if (ret < 0)
fail("error in gnutls_srp_base64_decode2 -salt\n");
@@ -123,7 +120,7 @@ serv_srp_func(gnutls_session_t session, const char *username,
}
#endif
-static void try(test_case_st *test)
+static void try(test_case_st * test)
{
int sret, cret, ret;
gnutls_anon_client_credentials_t c_anon_cred;
@@ -141,7 +138,7 @@ static void try(test_case_st *test)
gnutls_dh_params_t dh_params = NULL;
gnutls_session_t server, client;
- const gnutls_datum_t pskkey = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t pskkey = { (void *)"DEADBEEF", 8 };
if (test->not_on_fips && gnutls_fips140_mode_enabled()) {
success("Skipping %s...\n", test->name);
@@ -167,77 +164,96 @@ static void try(test_case_st *test)
assert(gnutls_certificate_allocate_credentials(&c_cert_cred) >= 0);
assert(gnutls_dh_params_init(&dh_params) >= 0);
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
- assert(gnutls_init(&client, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
+ assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
if (test->have_anon_cred) {
gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anon_cred);
if (test->have_anon_dh_params)
- gnutls_anon_set_server_known_dh_params(s_anon_cred, GNUTLS_SEC_PARAM_MEDIUM);
+ gnutls_anon_set_server_known_dh_params(s_anon_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
else if (test->have_anon_exp_dh_params) {
ret = gnutls_dh_params_import_pkcs3(dh_params, &p3_2048,
GNUTLS_X509_FMT_PEM);
- assert(ret>=0);
- gnutls_anon_set_server_dh_params(s_anon_cred, dh_params);
+ assert(ret >= 0);
+ gnutls_anon_set_server_dh_params(s_anon_cred,
+ dh_params);
}
}
if (test->have_cert_cred) {
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, s_cert_cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
+ s_cert_cred);
if (test->have_cert_dh_params)
- gnutls_certificate_set_known_dh_params(s_cert_cred, GNUTLS_SEC_PARAM_MEDIUM);
+ gnutls_certificate_set_known_dh_params(s_cert_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
else if (test->have_cert_exp_dh_params) {
ret = gnutls_dh_params_import_pkcs3(dh_params, &p3_2048,
GNUTLS_X509_FMT_PEM);
- assert(ret>=0);
- gnutls_certificate_set_dh_params(s_cert_cred, dh_params);
+ assert(ret >= 0);
+ gnutls_certificate_set_dh_params(s_cert_cred,
+ dh_params);
}
}
if (test->have_psk_cred) {
gnutls_credentials_set(server, GNUTLS_CRD_PSK, s_psk_cred);
if (test->have_psk_dh_params)
- gnutls_psk_set_server_known_dh_params(s_psk_cred, GNUTLS_SEC_PARAM_MEDIUM);
+ gnutls_psk_set_server_known_dh_params(s_psk_cred,
+ GNUTLS_SEC_PARAM_MEDIUM);
else if (test->have_psk_exp_dh_params) {
ret = gnutls_dh_params_import_pkcs3(dh_params, &p3_2048,
GNUTLS_X509_FMT_PEM);
- assert(ret>=0);
+ assert(ret >= 0);
gnutls_psk_set_server_dh_params(s_psk_cred, dh_params);
}
- gnutls_psk_set_server_credentials_function(s_psk_cred, serv_psk_func);
+ gnutls_psk_set_server_credentials_function(s_psk_cred,
+ serv_psk_func);
}
-
#ifdef ENABLE_SRP
if (test->have_srp_cred) {
gnutls_credentials_set(server, GNUTLS_CRD_SRP, s_srp_cred);
- gnutls_srp_set_server_credentials_function(s_srp_cred, serv_srp_func);
+ gnutls_srp_set_server_credentials_function(s_srp_cred,
+ serv_srp_func);
}
#endif
if (test->have_rsa_decrypt_cert) {
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_localhost_rsa_decrypt_cert,
+ &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
}
if (test->have_ecc_sign_cert) {
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, GNUTLS_X509_FMT_PEM) >= 0);
}
if (test->have_ed25519_sign_cert) {
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_eddsa_cert, &server_ca3_eddsa_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_eddsa_cert,
+ &server_ca3_eddsa_key, GNUTLS_X509_FMT_PEM) >= 0);
}
if (test->have_rsa_sign_cert) {
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_localhost_rsa_sign_cert, &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_localhost_rsa_sign_cert,
+ &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
}
if (test->have_gost12_256_cert) {
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_gost12_256_cert, &server_ca3_gost12_256_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_gost12_256_cert,
+ &server_ca3_gost12_256_key, GNUTLS_X509_FMT_PEM) >= 0);
}
if (test->have_gost12_512_cert) {
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_gost12_512_cert, &server_ca3_gost12_512_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_gost12_512_cert,
+ &server_ca3_gost12_512_key, GNUTLS_X509_FMT_PEM) >= 0);
}
/* client does everything */
@@ -248,10 +264,12 @@ static void try(test_case_st *test)
gnutls_credentials_set(client, GNUTLS_CRD_SRP, c_srp_cred);
#endif
- assert(gnutls_psk_set_client_credentials(c_psk_cred, "psk", &pskkey, GNUTLS_PSK_KEY_HEX) >= 0);
+ assert(gnutls_psk_set_client_credentials
+ (c_psk_cred, "psk", &pskkey, GNUTLS_PSK_KEY_HEX) >= 0);
#ifdef ENABLE_SRP
- assert(gnutls_srp_set_client_credentials(c_srp_cred, "test1", "test") >= 0);
+ assert(gnutls_srp_set_client_credentials(c_srp_cred, "test1", "test") >=
+ 0);
#endif
gnutls_transport_set_push_function(server, server_push);
@@ -270,7 +288,8 @@ static void try(test_case_st *test)
if (gnutls_protocol_get_version(client) != test->exp_version)
fail("expected version (%s) does not match %s\n",
gnutls_protocol_get_name(test->exp_version),
- gnutls_protocol_get_name(gnutls_protocol_get_version(client)));
+ gnutls_protocol_get_name
+ (gnutls_protocol_get_version(client)));
}
gnutls_deinit(server);
diff --git a/tests/server-secrets.h b/tests/server-secrets.h
index 5c0df49a16..6549e89a57 100644
--- a/tests/server-secrets.h
+++ b/tests/server-secrets.h
@@ -22,294 +22,345 @@
*/
#ifndef GNUTLS_TESTS_SERVER_SECRETS_H
-#define GNUTLS_TESTS_SERVER_SECRETS_H
+# define GNUTLS_TESTS_SERVER_SECRETS_H
static const struct secret server_normal_0[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
- (const uint8_t *)"\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
+ (const uint8_t *)
+ "\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
+ NULL,
+ },
};
static const struct secret server_normal_1[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_EARLY,
- 32,
- (const uint8_t *)"\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- NULL,
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_EARLY,
+ 32,
+ (const uint8_t *)
+ "\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
+ NULL,
+ },
};
static const struct secret server_normal_2[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
+ NULL,
+ },
};
static const struct secret server_small_0[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
- (const uint8_t *)"\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
+ (const uint8_t *)
+ "\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
+ NULL,
+ },
};
static const struct secret server_small_1[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_EARLY,
- 32,
- (const uint8_t *)"\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- NULL,
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_EARLY,
+ 32,
+ (const uint8_t *)
+ "\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
+ NULL,
+ },
};
static const struct secret server_small_2[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
+ NULL,
+ },
};
static const struct secret server_empty_0[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
- (const uint8_t *)"\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
+ (const uint8_t *)
+ "\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
+ NULL,
+ },
};
static const struct secret server_empty_1[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\x87\x07\x01\xdc\x13\xdc\xb7\x93\x26\x53\xff\xa4\x2d\x28\xed\xca\xef\x5b\xa7\x94\x17\x26\xdf\x1f\x8c\x7b\x79\x32\x55\x5e\xcb\x79",
- (const uint8_t *)"\xac\xc2\x07\x48\xba\x3d\x59\x2f\x5f\xce\x79\xda\xa6\x04\x4b\x55\x06\x2c\x9f\x0e\xdf\xda\x42\x51\x9d\x0b\xd9\x39\x4b\x8c\xb2\x7e",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\x73\x16\xe6\x0a\x66\xe1\x81\xd8\x74\xfa\x25\xe3\xf3\x1a\xf2\x4d\x84\xd6\xc6\x7a\x1b\x27\x79\x0a\x09\x9e\xd2\xd4\x1d\xdf\x0f\x53",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x5f\x8e\xfe\x3e\xa0\x41\x27\x9e\xbb\xba\xf2\xa9\x22\xc6\x06\x58\xb5\xbf\x6e\x29\x3d\x84\x10\x4e\x3f\xe3\xc0\x1f\x7a\x2c\xf5\x21",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\x87\x07\x01\xdc\x13\xdc\xb7\x93\x26\x53\xff\xa4\x2d\x28\xed\xca\xef\x5b\xa7\x94\x17\x26\xdf\x1f\x8c\x7b\x79\x32\x55\x5e\xcb\x79",
+ (const uint8_t *)
+ "\xac\xc2\x07\x48\xba\x3d\x59\x2f\x5f\xce\x79\xda\xa6\x04\x4b\x55\x06\x2c\x9f\x0e\xdf\xda\x42\x51\x9d\x0b\xd9\x39\x4b\x8c\xb2\x7e",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x73\x16\xe6\x0a\x66\xe1\x81\xd8\x74\xfa\x25\xe3\xf3\x1a\xf2\x4d\x84\xd6\xc6\x7a\x1b\x27\x79\x0a\x09\x9e\xd2\xd4\x1d\xdf\x0f\x53",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x5f\x8e\xfe\x3e\xa0\x41\x27\x9e\xbb\xba\xf2\xa9\x22\xc6\x06\x58\xb5\xbf\x6e\x29\x3d\x84\x10\x4e\x3f\xe3\xc0\x1f\x7a\x2c\xf5\x21",
+ NULL,
+ },
};
static const struct secret server_empty_2[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\x87\x07\x01\xdc\x13\xdc\xb7\x93\x26\x53\xff\xa4\x2d\x28\xed\xca\xef\x5b\xa7\x94\x17\x26\xdf\x1f\x8c\x7b\x79\x32\x55\x5e\xcb\x79",
- (const uint8_t *)"\xac\xc2\x07\x48\xba\x3d\x59\x2f\x5f\xce\x79\xda\xa6\x04\x4b\x55\x06\x2c\x9f\x0e\xdf\xda\x42\x51\x9d\x0b\xd9\x39\x4b\x8c\xb2\x7e",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\x73\x16\xe6\x0a\x66\xe1\x81\xd8\x74\xfa\x25\xe3\xf3\x1a\xf2\x4d\x84\xd6\xc6\x7a\x1b\x27\x79\x0a\x09\x9e\xd2\xd4\x1d\xdf\x0f\x53",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x5f\x8e\xfe\x3e\xa0\x41\x27\x9e\xbb\xba\xf2\xa9\x22\xc6\x06\x58\xb5\xbf\x6e\x29\x3d\x84\x10\x4e\x3f\xe3\xc0\x1f\x7a\x2c\xf5\x21",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\x87\x07\x01\xdc\x13\xdc\xb7\x93\x26\x53\xff\xa4\x2d\x28\xed\xca\xef\x5b\xa7\x94\x17\x26\xdf\x1f\x8c\x7b\x79\x32\x55\x5e\xcb\x79",
+ (const uint8_t *)
+ "\xac\xc2\x07\x48\xba\x3d\x59\x2f\x5f\xce\x79\xda\xa6\x04\x4b\x55\x06\x2c\x9f\x0e\xdf\xda\x42\x51\x9d\x0b\xd9\x39\x4b\x8c\xb2\x7e",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x73\x16\xe6\x0a\x66\xe1\x81\xd8\x74\xfa\x25\xe3\xf3\x1a\xf2\x4d\x84\xd6\xc6\x7a\x1b\x27\x79\x0a\x09\x9e\xd2\xd4\x1d\xdf\x0f\x53",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x5f\x8e\xfe\x3e\xa0\x41\x27\x9e\xbb\xba\xf2\xa9\x22\xc6\x06\x58\xb5\xbf\x6e\x29\x3d\x84\x10\x4e\x3f\xe3\xc0\x1f\x7a\x2c\xf5\x21",
+ NULL,
+ },
};
static const struct secret server_explicit_0[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
- (const uint8_t *)"\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\x24\x24\xaf\xad\xa8\x0e\x40\xc6\xa1\xc3\x05\xff\x5a\xe5\x04\xb9\xc4\xc2\xff\xd6\x2b\x9a\xb8\x43\x85\x78\x92\x1e\x69\x44\x3d\xe2",
+ (const uint8_t *)
+ "\xdc\x47\xf1\x8b\x33\xd6\x08\x26\xa1\xad\xd9\xb0\x81\xee\x32\x01\xb6\xfc\xce\x9a\xa0\x35\xd1\x30\x61\x85\x2d\xff\x3d\xb1\xe5\x49",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\x03\x38\xcf\x43\x68\x90\x01\x7a\xdb\x06\x7d\x92\x08\xcf\x67\x22\x41\xa7\xd3\xe7\x7e\x3a\xaf\x50\xd6\x5c\xaa\xfe\x90\xa4\x87\xa2",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x5c\x6f\xe8\x8b\xac\x0a\x7b\x04\x76\x9f\xe8\x2a\x7c\x06\x19\x4c\xa7\x51\x5c\xfe\xb9\x31\x25\x0d\x3b\x07\x78\xa9\xdd\x2d\x27\x72",
+ NULL,
+ },
};
static const struct secret server_explicit_1[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_EARLY,
- 32,
- (const uint8_t *)"\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- NULL,
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- NULL,
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_EARLY,
+ 32,
+ (const uint8_t *)
+ "\x6f\x16\x97\x8e\x90\x94\x77\x40\x0f\x00\xff\x79\x1c\x15\x20\x19\xeb\xc6\x10\x59\x8f\x92\xac\xab\xe6\xc8\x3c\x12\x30\x94\x91\x12",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ NULL,
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xf8\xa9\xd5\xe6\x18\xbb\xb7\x07\x1d\xb3\x8f\x78\x61\x30\x63\x01\xa5\x49\xc6\x05\x92\x7f\x67\x98\x72\x76\x75\xb1\x31\x1f\x14\xf9",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\xab\xa3\xf5\x4f\xcc\x3f\xd7\xb7\x23\x73\x51\x6e\x64\xc1\xaa\x6b\xa9\x77\x30\x58\xe6\xd4\xf5\xe9\xa5\xd2\x0d\x35\x42\x65\xda\xf1",
+ NULL,
+ },
};
static const struct secret server_explicit_2[] = {
{
- GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
- 32,
- (const uint8_t *)"\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
- (const uint8_t *)"\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- NULL,
- (const uint8_t *)"\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
- },
- {
- GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
- 32,
- (const uint8_t *)"\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
- NULL,
- },
+ GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE,
+ 32,
+ (const uint8_t *)
+ "\xe7\xf5\x57\x48\x54\x71\xae\xc0\xba\x8d\x12\x90\xc5\x25\xef\xe3\xc7\xea\x39\x09\x24\xe8\x20\x6d\x03\x8d\x80\x1e\xdd\x24\xbb\x5a",
+ (const uint8_t *)
+ "\xf0\x91\x46\x67\xe1\x36\xb5\xd2\x30\x71\xc9\x1d\xcc\x56\xc3\x9d\xee\xfa\x26\xdb\xe4\xe2\x17\xb7\x3d\xb9\x27\x6a\x7c\xa5\xe7\xa9",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ NULL,
+ (const uint8_t *)
+ "\xd8\xdf\x24\xd6\xe1\xdc\x86\x3b\x88\x3d\x2b\xad\x56\xec\x22\xd4\x5c\xaf\xa9\x24\xa3\x90\x20\xa1\xae\x77\x5c\x7d\xef\x3d\xcc\x5b",
+ },
+ {
+ GNUTLS_ENCRYPTION_LEVEL_APPLICATION,
+ 32,
+ (const uint8_t *)
+ "\x8d\x02\xe0\xe8\x5f\x9a\xcc\xc7\x8c\x81\x3b\x58\x5f\xa9\xdb\xfd\x98\xb1\x1f\xcc\x3e\x7b\xca\xe7\xef\x05\x4c\x84\x6c\xe1\x11\x25",
+ NULL,
+ },
};
-#endif /* GNUTLS_TESTS_SERVER_SECRETS_H */
+#endif /* GNUTLS_TESTS_SERVER_SECRETS_H */
diff --git a/tests/server-sign-md5-rep.c b/tests/server-sign-md5-rep.c
index 3a44e087f5..b3afd9db71 100644
--- a/tests/server-sign-md5-rep.c
+++ b/tests/server-sign-md5-rep.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,20 +40,20 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <signal.h>
-#include <limits.h>
-#include <poll.h>
-#include <errno.h>
-#include <assert.h>
-
-#include "utils.h"
-#include "cert-common.h"
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <signal.h>
+# include <limits.h>
+# include <poll.h>
+# include <errno.h>
+# include <assert.h>
+
+# include "utils.h"
+# include "cert-common.h"
pid_t child;
@@ -63,31 +63,53 @@ static void tls_log_func(int level, const char *str)
str);
}
-
static unsigned char tls1_hello[] = {
-0x16, 0x03, 0x01, 0x01, 0x5E, 0x01, 0x00, 0x01, 0x5A, 0x03, 0x03, 0x59, 0x52, 0x41, 0x54, 0xD5,
-0x52, 0x62, 0x63, 0x69, 0x1B, 0x46, 0xBE, 0x33, 0xCC, 0xC4, 0xC3, 0xB3, 0x6C, 0xCD, 0xEC, 0x96,
-0xF7, 0x7A, 0xCA, 0xE9, 0xFB, 0x85, 0x95, 0x83, 0x51, 0xE4, 0x69, 0x00, 0x00, 0xD4, 0xC0, 0x30,
-0xCC, 0xA8, 0xC0, 0x8B, 0xC0, 0x14, 0xC0, 0x28, 0xC0, 0x77, 0xC0, 0x2F, 0xC0, 0x8A, 0xC0, 0x13,
-0xC0, 0x27, 0xC0, 0x76, 0xC0, 0x12, 0xC0, 0x2C, 0xC0, 0xAD, 0xCC, 0xA9, 0xC0, 0x87, 0xC0, 0x0A,
-0xC0, 0x24, 0xC0, 0x73, 0xC0, 0x2B, 0xC0, 0xAC, 0xC0, 0x86, 0xC0, 0x09, 0xC0, 0x23, 0xC0, 0x72,
-0xC0, 0x08, 0x00, 0x9D, 0xC0, 0x9D, 0xC0, 0x7B, 0x00, 0x35, 0x00, 0x3D, 0x00, 0x84, 0x00, 0xC0,
-0x00, 0x9C, 0xC0, 0x9C, 0xC0, 0x7A, 0x00, 0x2F, 0x00, 0x3C, 0x00, 0x41, 0x00, 0xBA, 0x00, 0x0A,
-0x00, 0x9F, 0xC0, 0x9F, 0xCC, 0xAA, 0xC0, 0x7D, 0x00, 0x39, 0x00, 0x6B, 0x00, 0x88, 0x00, 0xC4,
-0x00, 0x9E, 0xC0, 0x9E, 0xC0, 0x7C, 0x00, 0x33, 0x00, 0x67, 0x00, 0x45, 0x00, 0xBE, 0x00, 0x16,
-0x00, 0xA3, 0xC0, 0x81, 0x00, 0x38, 0x00, 0x6A, 0x00, 0x87, 0x00, 0xC3, 0x00, 0xA2, 0xC0, 0x80,
-0x00, 0x32, 0x00, 0x40, 0x00, 0x44, 0x00, 0xBD, 0x00, 0x13, 0x00, 0xA9, 0xC0, 0xA5, 0xCC, 0xAB,
-0xC0, 0x8F, 0x00, 0x8D, 0x00, 0xAF, 0xC0, 0x95, 0x00, 0xA8, 0xC0, 0xA4, 0xC0, 0x8E, 0x00, 0x8C,
-0x00, 0xAE, 0xC0, 0x94, 0x00, 0x8B, 0x00, 0xAB, 0xC0, 0xA7, 0xCC, 0xAD, 0xC0, 0x91, 0x00, 0x91,
-0x00, 0xB3, 0xC0, 0x97, 0x00, 0xAA, 0xC0, 0xA6, 0xC0, 0x90, 0x00, 0x90, 0x00, 0xB2, 0xC0, 0x96,
-0x00, 0x8F, 0xCC, 0xAC, 0xC0, 0x36, 0xC0, 0x38, 0xC0, 0x9B, 0xC0, 0x35, 0xC0, 0x37, 0xC0, 0x9A,
-0xC0, 0x34, 0x01, 0x00, 0x00, 0x5D, 0x00, 0x17, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x05,
-0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x11, 0x00, 0x00, 0x0E,
-0x77, 0x77, 0x77, 0x2E, 0x67, 0x6F, 0x6F, 0x67, 0x6C, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0xFF, 0x01,
-0x00, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x08, 0x00, 0x06, 0x00, 0x17, 0x00,
-0x18, 0x00, 0x19, 0x00, 0x0B, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0D, 0x00, 0x16, 0x00, 0x14, 0x01,
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x01, 0x01};
+ 0x16, 0x03, 0x01, 0x01, 0x5E, 0x01, 0x00, 0x01, 0x5A, 0x03, 0x03, 0x59,
+ 0x52, 0x41, 0x54, 0xD5,
+ 0x52, 0x62, 0x63, 0x69, 0x1B, 0x46, 0xBE, 0x33, 0xCC, 0xC4, 0xC3, 0xB3,
+ 0x6C, 0xCD, 0xEC, 0x96,
+ 0xF7, 0x7A, 0xCA, 0xE9, 0xFB, 0x85, 0x95, 0x83, 0x51, 0xE4, 0x69, 0x00,
+ 0x00, 0xD4, 0xC0, 0x30,
+ 0xCC, 0xA8, 0xC0, 0x8B, 0xC0, 0x14, 0xC0, 0x28, 0xC0, 0x77, 0xC0, 0x2F,
+ 0xC0, 0x8A, 0xC0, 0x13,
+ 0xC0, 0x27, 0xC0, 0x76, 0xC0, 0x12, 0xC0, 0x2C, 0xC0, 0xAD, 0xCC, 0xA9,
+ 0xC0, 0x87, 0xC0, 0x0A,
+ 0xC0, 0x24, 0xC0, 0x73, 0xC0, 0x2B, 0xC0, 0xAC, 0xC0, 0x86, 0xC0, 0x09,
+ 0xC0, 0x23, 0xC0, 0x72,
+ 0xC0, 0x08, 0x00, 0x9D, 0xC0, 0x9D, 0xC0, 0x7B, 0x00, 0x35, 0x00, 0x3D,
+ 0x00, 0x84, 0x00, 0xC0,
+ 0x00, 0x9C, 0xC0, 0x9C, 0xC0, 0x7A, 0x00, 0x2F, 0x00, 0x3C, 0x00, 0x41,
+ 0x00, 0xBA, 0x00, 0x0A,
+ 0x00, 0x9F, 0xC0, 0x9F, 0xCC, 0xAA, 0xC0, 0x7D, 0x00, 0x39, 0x00, 0x6B,
+ 0x00, 0x88, 0x00, 0xC4,
+ 0x00, 0x9E, 0xC0, 0x9E, 0xC0, 0x7C, 0x00, 0x33, 0x00, 0x67, 0x00, 0x45,
+ 0x00, 0xBE, 0x00, 0x16,
+ 0x00, 0xA3, 0xC0, 0x81, 0x00, 0x38, 0x00, 0x6A, 0x00, 0x87, 0x00, 0xC3,
+ 0x00, 0xA2, 0xC0, 0x80,
+ 0x00, 0x32, 0x00, 0x40, 0x00, 0x44, 0x00, 0xBD, 0x00, 0x13, 0x00, 0xA9,
+ 0xC0, 0xA5, 0xCC, 0xAB,
+ 0xC0, 0x8F, 0x00, 0x8D, 0x00, 0xAF, 0xC0, 0x95, 0x00, 0xA8, 0xC0, 0xA4,
+ 0xC0, 0x8E, 0x00, 0x8C,
+ 0x00, 0xAE, 0xC0, 0x94, 0x00, 0x8B, 0x00, 0xAB, 0xC0, 0xA7, 0xCC, 0xAD,
+ 0xC0, 0x91, 0x00, 0x91,
+ 0x00, 0xB3, 0xC0, 0x97, 0x00, 0xAA, 0xC0, 0xA6, 0xC0, 0x90, 0x00, 0x90,
+ 0x00, 0xB2, 0xC0, 0x96,
+ 0x00, 0x8F, 0xCC, 0xAC, 0xC0, 0x36, 0xC0, 0x38, 0xC0, 0x9B, 0xC0, 0x35,
+ 0xC0, 0x37, 0xC0, 0x9A,
+ 0xC0, 0x34, 0x01, 0x00, 0x00, 0x5D, 0x00, 0x17, 0x00, 0x00, 0x00, 0x16,
+ 0x00, 0x00, 0x00, 0x05,
+ 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00,
+ 0x11, 0x00, 0x00, 0x0E,
+ 0x77, 0x77, 0x77, 0x2E, 0x67, 0x6F, 0x6F, 0x67, 0x6C, 0x65, 0x2E, 0x63,
+ 0x6F, 0x6D, 0xFF, 0x01,
+ 0x00, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x08, 0x00,
+ 0x06, 0x00, 0x17, 0x00,
+ 0x18, 0x00, 0x19, 0x00, 0x0B, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0D, 0x00,
+ 0x16, 0x00, 0x14, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01
+};
static void client(int sd)
{
@@ -154,7 +176,8 @@ static void server(int sd)
gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert,
GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert,
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert,
&server_ca3_key,
GNUTLS_X509_FMT_PEM);
@@ -163,7 +186,8 @@ static void server(int sd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-RSA", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-RSA", NULL) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -171,10 +195,11 @@ static void server(int sd)
gnutls_transport_set_int(session, sd);
do {
ret = gnutls_handshake(session);
- } while(ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
+ } while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
if (ret != GNUTLS_E_NO_CIPHER_SUITES) {
- fail("server: Handshake succeeded unexpectedly: %s\n", gnutls_strerror(ret));
+ fail("server: Handshake succeeded unexpectedly: %s\n",
+ gnutls_strerror(ret));
}
gnutls_alert_send_appropriate(session, ret);
@@ -190,7 +215,6 @@ static void server(int sd)
success("server: finished\n");
}
-
void doit(void)
{
int sockets[2];
diff --git a/tests/server_ecdsa_key.c b/tests/server_ecdsa_key.c
index 6f6f94e4ac..633135ceeb 100644
--- a/tests/server_ecdsa_key.c
+++ b/tests/server_ecdsa_key.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -28,10 +28,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -67,28 +67,37 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&cli_cred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(cli_cred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(cli_cred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
-
/* test gnutls_certificate_flags() */
gnutls_certificate_allocate_credentials(&serv_cred);
- ret = gnutls_certificate_set_x509_trust_mem(serv_cred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(serv_cred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
- ret = gnutls_certificate_set_x509_key_mem(serv_cred, &server_ca3_localhost_ecc_cert,
- &server_ca3_ecc_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(serv_cred,
+ &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in error code\n");
exit(1);
}
- test_cli_serv_expect(serv_cred, cli_cred, "NORMAL", "NORMAL:-VERS-TLS1.1:+VERS-TLS1.2:-SIGN-ALL", NULL, 0, 0);
- test_cli_serv_expect(serv_cred, cli_cred, "NORMAL", "NORMAL:-SIGN-ECDSA-SHA224:-SIGN-ECDSA-SHA1:-SIGN-ECDSA-SHA256:-SIGN-ECDSA-SHA384:-SIGN-ECDSA-SHA512:-SIGN-ECDSA-SECP256R1-SHA256:-SIGN-ECDSA-SECP384R1-SHA384:-SIGN-ECDSA-SECP521R1-SHA512", NULL, GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN);
+ test_cli_serv_expect(serv_cred, cli_cred, "NORMAL",
+ "NORMAL:-VERS-TLS1.1:+VERS-TLS1.2:-SIGN-ALL", NULL,
+ 0, 0);
+ test_cli_serv_expect(serv_cred, cli_cred, "NORMAL",
+ "NORMAL:-SIGN-ECDSA-SHA224:-SIGN-ECDSA-SHA1:-SIGN-ECDSA-SHA256:-SIGN-ECDSA-SHA384:-SIGN-ECDSA-SHA512:-SIGN-ECDSA-SECP256R1-SHA256:-SIGN-ECDSA-SECP384R1-SHA384:-SIGN-ECDSA-SECP521R1-SHA512",
+ NULL, GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN);
gnutls_certificate_free_credentials(serv_cred);
gnutls_certificate_free_credentials(cli_cred);
diff --git a/tests/session-export-funcs.c b/tests/session-export-funcs.c
index fa5073f615..3a81b008cd 100644
--- a/tests/session-export-funcs.c
+++ b/tests/session-export-funcs.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -79,10 +79,9 @@ void start(const char *prio)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- assert(gnutls_priority_set_direct(server, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_pull_timeout_function(server,
@@ -95,7 +94,9 @@ void start(const char *prio)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -104,7 +105,7 @@ void start(const char *prio)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -118,11 +119,11 @@ void start(const char *prio)
client_pull_timeout_func);
gnutls_transport_set_ptr(client, client);
- v1.data = (void*)client_random;
+ v1.data = (void *)client_random;
v1.size = sizeof(client_random);
gnutls_handshake_set_random(client, &v1);
- v1.data = (void*)server_random;
+ v1.data = (void *)server_random;
v1.size = sizeof(server_random);
gnutls_handshake_set_random(server, &v1);
@@ -167,11 +168,12 @@ void start(const char *prio)
fail("error in client's master secret\n");
}
- if (v1.size != v2.size || memcmp(v1.data, v2.data, v1.size) != 0) {
+ if (v1.size != v2.size
+ || memcmp(v1.data, v2.data, v1.size) != 0) {
fail("master secret don't match!\n");
}
}
-
+
gnutls_bye(client, GNUTLS_SHUT_RDWR);
gnutls_bye(server, GNUTLS_SHUT_RDWR);
diff --git a/tests/session-rdn-read.c b/tests/session-rdn-read.c
index 8ca88ea48f..4c97769911 100644
--- a/tests/session-rdn-read.c
+++ b/tests/session-rdn-read.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -65,12 +65,13 @@ cert_callback(gnutls_session_t session,
fail("cert_callback: found only %d RDNs\n", nreqs);
}
- for (i = 0;i < TOTAL_CAS;i++) {
+ for (i = 0; i < TOTAL_CAS; i++) {
if (req_ca_rdn[i].size != ca_dn[i].size) {
fail("CA[%d] size mismatch\n", i);
}
- if (memcmp(req_ca_rdn[i].data, ca_dn[i].data, ca_dn[i].size) != 0) {
+ if (memcmp(req_ca_rdn[i].data, ca_dn[i].data, ca_dn[i].size) !=
+ 0) {
fail("CA[%d] data mismatch\n", i);
}
}
@@ -107,15 +108,18 @@ static void start(const char *prio)
/* Init server */
gnutls_certificate_allocate_credentials(&serverx509cred);
- assert(gnutls_certificate_set_x509_key_mem(serverx509cred, &server_cert, &server_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (serverx509cred, &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_certificate_set_x509_trust_mem(serverx509cred, CA1_PTR, GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_certificate_set_x509_trust_mem(serverx509cred, CA2_PTR, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_trust_mem
+ (serverx509cred, CA1_PTR, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_trust_mem
+ (serverx509cred, CA2_PTR, GNUTLS_X509_FMT_PEM) >= 0);
gnutls_init(&server, GNUTLS_SERVER);
gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- assert(gnutls_priority_set_direct(server,
- prio, NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -145,7 +149,7 @@ static void start(const char *prio)
if (ret < 0)
exit(1);
- assert(gnutls_priority_set_direct(client, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(client, prio, NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
@@ -166,11 +170,11 @@ static void start(const char *prio)
reset_buffers();
}
-static void find_dn(const gnutls_datum_t *cert, gnutls_datum_t *dn)
+static void find_dn(const gnutls_datum_t * cert, gnutls_datum_t * dn)
{
gnutls_x509_crt_t crt;
- assert(gnutls_x509_crt_init(&crt)>=0);
+ assert(gnutls_x509_crt_init(&crt) >= 0);
assert(gnutls_x509_crt_import(crt, cert, GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_x509_crt_get_raw_dn(crt, dn) >= 0);
gnutls_x509_crt_deinit(crt);
diff --git a/tests/session-tickets-missing.c b/tests/session-tickets-missing.c
index 8257936c16..0caca7528d 100644
--- a/tests/session-tickets-missing.c
+++ b/tests/session-tickets-missing.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,21 +36,21 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <time.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <time.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
/* This program tests that handshakes do not include a session ticket
* if the flag GNUTLS_NO_TICKETS is specified under TLS 1.2.
@@ -81,7 +81,8 @@ static void client_log_func(int level, const char *str)
static int sent = 0;
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
if (htype != GNUTLS_HANDSHAKE_NEW_SESSION_TICKET)
return 0;
@@ -90,7 +91,7 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
return 0;
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio, unsigned int flags)
{
@@ -115,7 +116,7 @@ static void client(int fd, const char *prio, unsigned int flags)
*/
gnutls_init(&session, flags);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the anonymous credentials to the current session
*/
@@ -150,7 +151,7 @@ static void client(int fd, const char *prio, unsigned int flags)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -161,7 +162,6 @@ static void client(int fd, const char *prio, unsigned int flags)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -171,7 +171,7 @@ static void server(int fd, const char *prio, unsigned int flags)
char buffer[MAX_BUF + 1];
gnutls_session_t session;
gnutls_certificate_credentials_t x509_cred;
- gnutls_datum_t skey = {NULL, 0};
+ gnutls_datum_t skey = { NULL, 0 };
flags |= GNUTLS_SERVER;
@@ -185,26 +185,28 @@ static void server(int fd, const char *prio, unsigned int flags)
gnutls_global_set_log_level(4711);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&session, flags)>=0);
+ assert(gnutls_init(&session, flags) >= 0);
if (!(flags & GNUTLS_NO_TICKETS)) {
- assert(gnutls_session_ticket_key_generate(&skey)>=0);
- assert(gnutls_session_ticket_enable_server(session, &skey) >= 0);
+ assert(gnutls_session_ticket_key_generate(&skey) >= 0);
+ assert(gnutls_session_ticket_enable_server(session, &skey) >=
+ 0);
}
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
GNUTLS_HOOK_POST,
handshake_callback);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -230,7 +232,7 @@ static void server(int fd, const char *prio, unsigned int flags)
if (sent != 0) {
fail("new session ticket was sent\n");
exit(1);
- }
+ }
/* do not wait for the peer to close the connection.
*/
@@ -255,7 +257,8 @@ static void ch_handler(int sig)
}
static
-void start2(const char *prio, const char *sprio, unsigned int flags, unsigned int sflags)
+void start2(const char *prio, const char *sprio, unsigned int flags,
+ unsigned int sflags)
{
int fd[2];
int ret, status = 0;
@@ -307,7 +310,8 @@ void doit(void)
* always sent unless server sets GNUTLS_NO_TICKETS... */
start("NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_NO_TICKETS);
/* ...or there is no overlap between PSK key exchange modes */
- start2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-DHE-PSK", "NORMAL:-VERS-ALL:+VERS-TLS1.3", 0, 0);
+ start2("NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:-DHE-PSK",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3", 0, 0);
start("NORMAL", GNUTLS_NO_TICKETS);
}
diff --git a/tests/session-tickets-ok.c b/tests/session-tickets-ok.c
index ec50dbdfb6..4c1709411d 100644
--- a/tests/session-tickets-ok.c
+++ b/tests/session-tickets-ok.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -68,7 +68,8 @@ static void client_log_func(int level, const char *str)
static int sent = 0;
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
if (htype != GNUTLS_HANDSHAKE_NEW_SESSION_TICKET)
return 0;
@@ -78,8 +79,8 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
sent = 1;
return 0;
}
-
-#define MAX_BUF 1024
+
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -96,9 +97,9 @@ static void client(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -133,7 +134,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -162,24 +162,25 @@ static void server(int fd, const char *prio)
gnutls_global_set_log_level(4711);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
- assert(gnutls_session_ticket_key_generate(&skey)>=0);
+ assert(gnutls_session_ticket_key_generate(&skey) >= 0);
assert(gnutls_session_ticket_enable_server(session, &skey) >= 0);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
GNUTLS_HOOK_POST,
handshake_callback);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
diff --git a/tests/set-default-prio.c b/tests/set-default-prio.c
index 59b3d873ea..06c8a9ad2a 100644
--- a/tests/set-default-prio.c
+++ b/tests/set-default-prio.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -81,34 +81,37 @@ static void start(struct test_st *test)
if (debug)
gnutls_global_set_log_level(6);
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
if (test == NULL) {
ret = gnutls_set_default_priority(server);
if (ret < 0)
- fail("error: %s\n", gnutls_strerror(ret));
+ fail("error: %s\n", gnutls_strerror(ret));
} else {
- ret = gnutls_set_default_priority_append(server, test->add_prio, &ep, 0);
+ ret =
+ gnutls_set_default_priority_append(server, test->add_prio,
+ &ep, 0);
if (ret < 0) {
if (test->exp_err == ret) {
- /* the &ep value is only accurate when the default priorities are not overridden;
- * otherwise it should be a pointer to the start of the string */
- if (strchr(_gnutls_default_priority_string, '@') != 0) {
+ /* the &ep value is only accurate when the default priorities are not overridden;
+ * otherwise it should be a pointer to the start of the string */
+ if (strchr(_gnutls_default_priority_string, '@')
+ != 0) {
if (ep != test->add_prio) {
- fail("error expected error on start of string[%d]: %s\n",
- test->err_pos, test->add_prio);
+ fail("error expected error on start of string[%d]: %s\n", test->err_pos, test->add_prio);
}
} else {
- if (ep-test->add_prio != test->err_pos) {
- fprintf(stderr, "diff: %d\n", (int)(ep-test->add_prio));
- fail("error expected error on different position[%d]: %s\n",
- test->err_pos, test->add_prio);
+ if (ep - test->add_prio !=
+ test->err_pos) {
+ fprintf(stderr, "diff: %d\n",
+ (int)(ep -
+ test->add_prio));
+ fail("error expected error on different position[%d]: %s\n", test->err_pos, test->add_prio);
}
}
goto cleanup;
@@ -126,7 +129,9 @@ static void start(struct test_st *test)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -135,7 +140,7 @@ static void start(struct test_st *test)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -164,7 +169,8 @@ static void start(struct test_st *test)
if (test->exp_vers != gnutls_protocol_get_version(server)) {
fail("expected version %s, got %s\n",
gnutls_protocol_get_name(test->exp_vers),
- gnutls_protocol_get_name(gnutls_protocol_get_version(server)));
+ gnutls_protocol_get_name
+ (gnutls_protocol_get_version(server)));
}
}
@@ -177,20 +183,22 @@ static void start(struct test_st *test)
memset(data, 0, sizeof(data));
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"localhost1";
+ data[0].data = (void *)"localhost1";
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
gnutls_certificate_get_peers(client, &cert_list_size);
if (cert_list_size < 2) {
- fprintf(stderr, "received a certificate list of %d!\n", cert_list_size);
+ fprintf(stderr, "received a certificate list of %d!\n",
+ cert_list_size);
exit(1);
}
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fprintf(stderr, "could not verify certificate: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -200,16 +208,18 @@ static void start(struct test_st *test)
}
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)"localhost";
+ data[0].data = (void *)"localhost";
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fprintf(stderr, "could not verify certificate: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
if (status != 0) {
- fprintf(stderr, "could not verify certificate: %.4x\n", status);
+ fprintf(stderr, "could not verify certificate: %.4x\n",
+ status);
exit(1);
}
}
@@ -217,13 +227,17 @@ static void start(struct test_st *test)
if (test && test->exp_etm) {
ret = gnutls_session_ext_master_secret_status(client);
if (ret != 1) {
- fprintf(stderr, "Extended master secret wasn't negotiated by default (client ret: %d)\n", ret);
+ fprintf(stderr,
+ "Extended master secret wasn't negotiated by default (client ret: %d)\n",
+ ret);
exit(1);
}
ret = gnutls_session_ext_master_secret_status(server);
if (ret != 1) {
- fprintf(stderr, "Extended master secret wasn't negotiated by default (server ret: %d)\n", ret);
+ fprintf(stderr,
+ "Extended master secret wasn't negotiated by default (server ret: %d)\n",
+ ret);
exit(1);
}
}
@@ -244,54 +258,47 @@ static void start(struct test_st *test)
struct test_st tests[] = {
{
- .name = "additional flag",
- .def_prio = "NORMAL",
- .add_prio = "%FORCE_ETM",
- .exp_err = 0
- },
+ .name = "additional flag",
+ .def_prio = "NORMAL",
+ .add_prio = "%FORCE_ETM",
+ .exp_err = 0},
{
- .name = "additional flag typo1",
- .def_prio = "NORMAL",
- .add_prio = ":%FORCE_ETM",
- .exp_err = GNUTLS_E_INVALID_REQUEST,
- .err_pos = 0
- },
+ .name = "additional flag typo1",
+ .def_prio = "NORMAL",
+ .add_prio = ":%FORCE_ETM",
+ .exp_err = GNUTLS_E_INVALID_REQUEST,
+ .err_pos = 0},
{
- .name = "additional flag typo2",
- .def_prio = "NORMAL",
- .add_prio = "%FORCE_ETM::%NO_TICKETS",
- .exp_err = GNUTLS_E_INVALID_REQUEST,
- .err_pos = 11
- },
+ .name = "additional flag typo2",
+ .def_prio = "NORMAL",
+ .add_prio = "%FORCE_ETM::%NO_TICKETS",
+ .exp_err = GNUTLS_E_INVALID_REQUEST,
+ .err_pos = 11},
{
- .name = "additional flag typo3",
- .def_prio = "NORMAL",
- .add_prio = "%FORCE_ETM:%%NO_TICKETS",
- .exp_err = GNUTLS_E_INVALID_REQUEST,
- .err_pos = 11
- },
+ .name = "additional flag typo3",
+ .def_prio = "NORMAL",
+ .add_prio = "%FORCE_ETM:%%NO_TICKETS",
+ .exp_err = GNUTLS_E_INVALID_REQUEST,
+ .err_pos = 11},
{
- .name = "additional flag typo3 (with resolved def prio)",
- .def_prio = "@HELLO",
- .add_prio = "%FORCE_ETM:%%NO_TICKETS",
- .exp_err = GNUTLS_E_INVALID_REQUEST,
- .err_pos = 0
- },
+ .name = "additional flag typo3 (with resolved def prio)",
+ .def_prio = "@HELLO",
+ .add_prio = "%FORCE_ETM:%%NO_TICKETS",
+ .exp_err = GNUTLS_E_INVALID_REQUEST,
+ .err_pos = 0},
{
- .name = "additional flag for version (functional)",
- .def_prio = "NORMAL",
- .add_prio = "-VERS-ALL:+VERS-TLS1.1",
- .exp_err = 0,
- .exp_etm = 1,
- .exp_vers = GNUTLS_TLS1_1
- }
+ .name = "additional flag for version (functional)",
+ .def_prio = "NORMAL",
+ .add_prio = "-VERS-ALL:+VERS-TLS1.1",
+ .exp_err = 0,
+ .exp_etm = 1,
+ .exp_vers = GNUTLS_TLS1_1}
};
-
void doit(void)
{
start(NULL);
- for (unsigned i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (unsigned i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
start(&tests[i]);
}
}
diff --git a/tests/set_key.c b/tests/set_key.c
index dcf1322438..0ef21bde03 100644
--- a/tests/set_key.c
+++ b/tests/set_key.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -63,33 +63,39 @@ static time_t mytime(time_t * t)
return then;
}
-static unsigned import_key(gnutls_certificate_credentials_t xcred, const gnutls_datum_t *skey, const gnutls_datum_t *cert)
+static unsigned import_key(gnutls_certificate_credentials_t xcred,
+ const gnutls_datum_t * skey,
+ const gnutls_datum_t * cert)
{
gnutls_pcert_st pcert_list[16];
gnutls_privkey_t key;
unsigned pcert_list_size, idx, i;
gnutls_datum_t tcert;
- const char *names[] = {"localhost", "localhost2"};
+ const char *names[] = { "localhost", "localhost2" };
int ret;
- assert(gnutls_privkey_init(&key)>=0);
+ assert(gnutls_privkey_init(&key) >= 0);
- pcert_list_size = sizeof(pcert_list)/sizeof(pcert_list[0]);
+ pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]);
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- cert, GNUTLS_X509_FMT_PEM, 0);
+ cert, GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
- fail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
- ret = gnutls_privkey_import_x509_raw(key, skey, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, skey, GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0) {
fail("error in key import: %s\n", gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(xcred, names, 2, pcert_list,
- pcert_list_size, key);
+ pcert_list_size, key);
if (ret < 0) {
- fail("error in gnutls_certificate_set_key: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_certificate_set_key: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -97,15 +103,19 @@ static unsigned import_key(gnutls_certificate_credentials_t xcred, const gnutls_
idx = ret;
/* verify whether the stored certificate match the ones we have */
- for (i=0;i<pcert_list_size;i++) {
+ for (i = 0; i < pcert_list_size; i++) {
ret = gnutls_certificate_get_crt_raw(xcred, idx, i, &tcert);
if (ret < 0) {
- fail("error in %d: cert: %d: %s\n", __LINE__, i, gnutls_strerror(ret));
+ fail("error in %d: cert: %d: %s\n", __LINE__, i,
+ gnutls_strerror(ret));
exit(1);
}
- if (tcert.size != pcert_list[i].cert.size || memcmp(tcert.data, pcert_list[i].cert.data, tcert.size) != 0) {
- fail("error in %d: cert %d: %s\n", __LINE__, i, "ca cert don't match");
+ if (tcert.size != pcert_list[i].cert.size
+ || memcmp(tcert.data, pcert_list[i].cert.data,
+ tcert.size) != 0) {
+ fail("error in %d: cert %d: %s\n", __LINE__, i,
+ "ca cert don't match");
exit(1);
}
}
@@ -131,23 +141,26 @@ static void basic(void)
gnutls_global_set_log_level(6);
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
gnutls_certificate_set_flags(x509_cred, GNUTLS_CERTIFICATE_API_V2);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
idx = import_key(x509_cred, &server_key, &server_cert);
assert(idx == 0);
- test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, NULL);
+ test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL,
+ NULL);
/* verify that we can add certs, and that their index will change */
- for (i=0;i<16;i++) {
+ for (i = 0; i < 16; i++) {
idx = import_key(x509_cred, &server_ecc_key, &server_ecc_cert);
- assert(idx == 1+i);
+ assert(idx == 1 + i);
}
gnutls_certificate_free_credentials(x509_cred);
@@ -165,7 +178,7 @@ static void failure_mode(void)
gnutls_pcert_st pcert_list[16];
gnutls_privkey_t key;
unsigned pcert_list_size;
- const char *names[] = {"localhost", "localhost2"};
+ const char *names[] = { "localhost", "localhost2" };
int ret;
unsigned i;
@@ -177,32 +190,37 @@ static void failure_mode(void)
if (debug)
gnutls_global_set_log_level(6);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
- assert(gnutls_privkey_init(&key)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
+ assert(gnutls_privkey_init(&key) >= 0);
- pcert_list_size = sizeof(pcert_list)/sizeof(pcert_list[0]);
+ pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]);
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &server_cert, GNUTLS_X509_FMT_PEM, 0);
+ &server_cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
- fail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
- ret = gnutls_privkey_import_x509_raw(key, &server_ecc_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &server_ecc_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0) {
fail("error in key import: %s\n", gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(x509_cred, names, 2, pcert_list,
- pcert_list_size, key);
+ pcert_list_size, key);
if (ret < 0) {
- success("expected error in gnutls_certificate_set_key: %s\n", gnutls_strerror(ret));
+ success("expected error in gnutls_certificate_set_key: %s\n",
+ gnutls_strerror(ret));
goto cleanup;
}
fail("gnutls_certificate_set_key succeeded unexpectedly\n");
cleanup:
- for (i=0;i<pcert_list_size;i++) {
+ for (i = 0; i < pcert_list_size; i++) {
gnutls_pcert_deinit(&pcert_list[i]);
}
gnutls_privkey_deinit(key);
@@ -234,59 +252,71 @@ static void auto_parse(void)
if (debug)
gnutls_global_set_log_level(6);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
- assert(gnutls_privkey_init(&key)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
+ assert(gnutls_privkey_init(&key) >= 0);
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
- pcert_list_size = sizeof(pcert_list)/sizeof(pcert_list[0]);
+ pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]);
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &server_ca3_localhost_cert_chain, GNUTLS_X509_FMT_PEM, 0);
+ &server_ca3_localhost_cert_chain,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
- fail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
- ret = gnutls_privkey_import_x509_raw(key, &server_ca3_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0) {
fail("error in key import: %s\n", gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(x509_cred, NULL, 0, pcert_list,
- pcert_list_size, key);
+ pcert_list_size, key);
if (ret < 0) {
- fail("error in gnutls_certificate_set_key: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_certificate_set_key: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
/* set the ECC key */
- assert(gnutls_privkey_init(&second_key)>=0);
+ assert(gnutls_privkey_init(&second_key) >= 0);
pcert_list_size = 2;
ret = gnutls_pcert_list_import_x509_raw(second_pcert, &pcert_list_size,
- &server_ca3_localhost6_cert_chain, GNUTLS_X509_FMT_PEM, 0);
+ &server_ca3_localhost6_cert_chain,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
- fail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
- ret = gnutls_privkey_import_x509_raw(second_key, &server_ca3_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(second_key, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0) {
fail("error in key import: %s\n", gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(x509_cred, NULL, 0, second_pcert,
- 2, second_key);
+ 2, second_key);
if (ret < 0) {
- fail("error in gnutls_certificate_set_key: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_certificate_set_key: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
- test_cli_serv(x509_cred, clicred, "NORMAL", "localhost6", NULL, NULL, NULL); /* the DNS name of ECC cert */
- test_cli_serv(x509_cred, clicred, "NORMAL", "www.none.org", NULL, NULL, NULL); /* the DNS name of ECC cert */
+ test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
+ test_cli_serv(x509_cred, clicred, "NORMAL", "localhost6", NULL, NULL, NULL); /* the DNS name of ECC cert */
+ test_cli_serv(x509_cred, clicred, "NORMAL", "www.none.org", NULL, NULL, NULL); /* the DNS name of ECC cert */
gnutls_certificate_free_credentials(x509_cred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/set_key_utf8.c b/tests/set_key_utf8.c
index 15a8edd40e..5717f77816 100644
--- a/tests/set_key_utf8.c
+++ b/tests/set_key_utf8.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -83,63 +83,77 @@ static void auto_parse(void)
if (debug)
gnutls_global_set_log_level(6);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
- assert(gnutls_privkey_init(&key)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
+ assert(gnutls_privkey_init(&key) >= 0);
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
- pcert_list_size = sizeof(pcert_list)/sizeof(pcert_list[0]);
+ pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]);
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- &server_ca3_localhost_cert_chain, GNUTLS_X509_FMT_PEM, 0);
+ &server_ca3_localhost_cert_chain,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
- fail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
- ret = gnutls_privkey_import_x509_raw(key, &server_ca3_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(key, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0) {
fail("error in key import: %s\n", gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(x509_cred, NULL, 0, pcert_list,
- pcert_list_size, key);
+ pcert_list_size, key);
if (ret < 0) {
- fail("error in gnutls_certificate_set_key: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_certificate_set_key: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
/* set the key with UTF8 names */
- assert(gnutls_privkey_init(&second_key)>=0);
+ assert(gnutls_privkey_init(&second_key) >= 0);
pcert_list_size = 2;
ret = gnutls_pcert_list_import_x509_raw(second_pcert, &pcert_list_size,
- &server_ca3_localhost_utf8_cert, GNUTLS_X509_FMT_PEM, 0);
+ &server_ca3_localhost_utf8_cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
- fail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
- ret = gnutls_privkey_import_x509_raw(second_key, &server_ca3_key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(second_key, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0) {
fail("error in key import: %s\n", gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(x509_cred, NULL, 0, second_pcert,
- 1, second_key);
+ 1, second_key);
if (ret < 0) {
- fail("error in gnutls_certificate_set_key: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_certificate_set_key: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
- test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
- test_cli_serv(x509_cred, clicred, "NORMAL", "简体中文.εξτρα.com", NULL, NULL, NULL); /* the second DNS name of cert */
- test_cli_serv(x509_cred, clicred, "NORMAL", "xn--fiqu1az03c18t.xn--mxah1amo.com", NULL, NULL, NULL); /* its IDNA equivalent */
+ test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
+ test_cli_serv(x509_cred, clicred, "NORMAL", "简体中文.εξτρα.com", NULL, NULL, NULL); /* the second DNS name of cert */
+ test_cli_serv(x509_cred, clicred, "NORMAL", "xn--fiqu1az03c18t.xn--mxah1amo.com", NULL, NULL, NULL); /* its IDNA equivalent */
/* the raw DNS should result to verification failure as the advertized name should
* not be considered and the first cert should be provided */
- test_cli_serv_expect(x509_cred, clicred, "NORMAL", "NORMAL", "raw:简体中文.εξτρα.com", GNUTLS_E_RECEIVED_DISALLOWED_NAME, GNUTLS_E_AGAIN);
+ test_cli_serv_expect(x509_cred, clicred, "NORMAL", "NORMAL",
+ "raw:简体中文.εξτρα.com",
+ GNUTLS_E_RECEIVED_DISALLOWED_NAME, GNUTLS_E_AGAIN);
gnutls_certificate_free_credentials(x509_cred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/set_known_dh_params_anon.c b/tests/set_known_dh_params_anon.c
index e978d805ef..843e198105 100644
--- a/tests/set_known_dh_params_anon.c
+++ b/tests/set_known_dh_params_anon.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -68,17 +68,25 @@ void doit(void)
assert(gnutls_anon_allocate_client_credentials(&clicred) >= 0);
assert(gnutls_anon_allocate_server_credentials(&servcred) >= 0);
- assert(gnutls_anon_set_server_known_dh_params(servcred, GNUTLS_SEC_PARAM_LEGACY) >= 0);
- assert(test_cli_serv_anon(servcred, clicred, "NORMAL:-KX-ALL:+ANON-DH") >= 0);
-
- assert(gnutls_anon_set_server_known_dh_params(servcred, GNUTLS_SEC_PARAM_NORMAL) >= 0);
- assert(test_cli_serv_anon(servcred, clicred, "NORMAL:-KX-ALL:+ANON-DH") >= 0);
-
- assert(gnutls_anon_set_server_known_dh_params(servcred, GNUTLS_SEC_PARAM_HIGH) >= 0);
- assert(test_cli_serv_anon(servcred, clicred, "NORMAL:-KX-ALL:+ANON-DH") >= 0);
-
- assert(gnutls_anon_set_server_known_dh_params(servcred, GNUTLS_SEC_PARAM_ULTRA) >= 0);
- assert(test_cli_serv_anon(servcred, clicred, "NORMAL:-KX-ALL:+ANON-DH") >= 0);
+ assert(gnutls_anon_set_server_known_dh_params
+ (servcred, GNUTLS_SEC_PARAM_LEGACY) >= 0);
+ assert(test_cli_serv_anon(servcred, clicred, "NORMAL:-KX-ALL:+ANON-DH")
+ >= 0);
+
+ assert(gnutls_anon_set_server_known_dh_params
+ (servcred, GNUTLS_SEC_PARAM_NORMAL) >= 0);
+ assert(test_cli_serv_anon(servcred, clicred, "NORMAL:-KX-ALL:+ANON-DH")
+ >= 0);
+
+ assert(gnutls_anon_set_server_known_dh_params
+ (servcred, GNUTLS_SEC_PARAM_HIGH) >= 0);
+ assert(test_cli_serv_anon(servcred, clicred, "NORMAL:-KX-ALL:+ANON-DH")
+ >= 0);
+
+ assert(gnutls_anon_set_server_known_dh_params
+ (servcred, GNUTLS_SEC_PARAM_ULTRA) >= 0);
+ assert(test_cli_serv_anon(servcred, clicred, "NORMAL:-KX-ALL:+ANON-DH")
+ >= 0);
gnutls_anon_free_server_credentials(servcred);
gnutls_anon_free_client_credentials(clicred);
diff --git a/tests/set_known_dh_params_psk.c b/tests/set_known_dh_params_psk.c
index 82402336e8..92b12e5603 100644
--- a/tests/set_known_dh_params_psk.c
+++ b/tests/set_known_dh_params_psk.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -53,8 +53,7 @@ static void tls_log_func(int level, const char *str)
}
static int
-pskfunc(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+pskfunc(gnutls_session_t session, const char *username, gnutls_datum_t * key)
{
if (debug)
printf("psk callback to get %s's password\n", username);
@@ -71,7 +70,7 @@ void doit(void)
{
gnutls_psk_client_credentials_t clicred;
gnutls_psk_server_credentials_t servcred;
- const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t key = { (void *)"DEADBEEF", 8 };
/* this must be called once in the program
*/
@@ -87,19 +86,27 @@ void doit(void)
gnutls_psk_set_server_credentials_function(servcred, pskfunc);
assert(gnutls_psk_set_client_credentials(clicred, "test", &key,
- GNUTLS_PSK_KEY_HEX)>=0);
-
- assert(gnutls_psk_set_server_known_dh_params(servcred, GNUTLS_SEC_PARAM_LEGACY) >= 0);
- assert(test_cli_serv_psk(servcred, clicred, "NORMAL:-KX-ALL:+DHE-PSK") >= 0);
-
- assert(gnutls_psk_set_server_known_dh_params(servcred, GNUTLS_SEC_PARAM_NORMAL) >= 0);
- assert(test_cli_serv_psk(servcred, clicred, "NORMAL:-KX-ALL:+DHE-PSK") >= 0);
-
- assert(gnutls_psk_set_server_known_dh_params(servcred, GNUTLS_SEC_PARAM_HIGH) >= 0);
- assert(test_cli_serv_psk(servcred, clicred, "NORMAL:-KX-ALL:+DHE-PSK") >= 0);
-
- assert(gnutls_psk_set_server_known_dh_params(servcred, GNUTLS_SEC_PARAM_ULTRA) >= 0);
- assert(test_cli_serv_psk(servcred, clicred, "NORMAL:-KX-ALL:+DHE-PSK") >= 0);
+ GNUTLS_PSK_KEY_HEX) >= 0);
+
+ assert(gnutls_psk_set_server_known_dh_params
+ (servcred, GNUTLS_SEC_PARAM_LEGACY) >= 0);
+ assert(test_cli_serv_psk(servcred, clicred, "NORMAL:-KX-ALL:+DHE-PSK")
+ >= 0);
+
+ assert(gnutls_psk_set_server_known_dh_params
+ (servcred, GNUTLS_SEC_PARAM_NORMAL) >= 0);
+ assert(test_cli_serv_psk(servcred, clicred, "NORMAL:-KX-ALL:+DHE-PSK")
+ >= 0);
+
+ assert(gnutls_psk_set_server_known_dh_params
+ (servcred, GNUTLS_SEC_PARAM_HIGH) >= 0);
+ assert(test_cli_serv_psk(servcred, clicred, "NORMAL:-KX-ALL:+DHE-PSK")
+ >= 0);
+
+ assert(gnutls_psk_set_server_known_dh_params
+ (servcred, GNUTLS_SEC_PARAM_ULTRA) >= 0);
+ assert(test_cli_serv_psk(servcred, clicred, "NORMAL:-KX-ALL:+DHE-PSK")
+ >= 0);
gnutls_psk_free_server_credentials(servcred);
gnutls_psk_free_client_credentials(clicred);
diff --git a/tests/set_known_dh_params_x509.c b/tests/set_known_dh_params_x509.c
index 034719d4e5..d94ad5d2fc 100644
--- a/tests/set_known_dh_params_x509.c
+++ b/tests/set_known_dh_params_x509.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -69,29 +69,41 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
- ret = gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert_chain,
- &server_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert_chain,
+ &server_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in error code\n");
exit(1);
}
- assert(gnutls_certificate_set_known_dh_params(x509_cred, GNUTLS_SEC_PARAM_LEGACY) >= 0);
- test_cli_serv(x509_cred, clicred, "NORMAL:-KX-ALL:+DHE-RSA", "localhost", NULL, NULL, NULL);
-
- assert(gnutls_certificate_set_known_dh_params(x509_cred, GNUTLS_SEC_PARAM_NORMAL) >= 0);
- test_cli_serv(x509_cred, clicred, "NORMAL:-KX-ALL:+DHE-RSA", "localhost", NULL, NULL, NULL);
-
- assert(gnutls_certificate_set_known_dh_params(x509_cred, GNUTLS_SEC_PARAM_HIGH) >= 0);
- test_cli_serv(x509_cred, clicred, "NORMAL:-KX-ALL:+DHE-RSA", "localhost", NULL, NULL, NULL);
-
- assert(gnutls_certificate_set_known_dh_params(x509_cred, GNUTLS_SEC_PARAM_ULTRA) >= 0);
- test_cli_serv(x509_cred, clicred, "NORMAL:-KX-ALL:+DHE-RSA", "localhost", NULL, NULL, NULL);
+ assert(gnutls_certificate_set_known_dh_params
+ (x509_cred, GNUTLS_SEC_PARAM_LEGACY) >= 0);
+ test_cli_serv(x509_cred, clicred, "NORMAL:-KX-ALL:+DHE-RSA",
+ "localhost", NULL, NULL, NULL);
+
+ assert(gnutls_certificate_set_known_dh_params
+ (x509_cred, GNUTLS_SEC_PARAM_NORMAL) >= 0);
+ test_cli_serv(x509_cred, clicred, "NORMAL:-KX-ALL:+DHE-RSA",
+ "localhost", NULL, NULL, NULL);
+
+ assert(gnutls_certificate_set_known_dh_params
+ (x509_cred, GNUTLS_SEC_PARAM_HIGH) >= 0);
+ test_cli_serv(x509_cred, clicred, "NORMAL:-KX-ALL:+DHE-RSA",
+ "localhost", NULL, NULL, NULL);
+
+ assert(gnutls_certificate_set_known_dh_params
+ (x509_cred, GNUTLS_SEC_PARAM_ULTRA) >= 0);
+ test_cli_serv(x509_cred, clicred, "NORMAL:-KX-ALL:+DHE-RSA",
+ "localhost", NULL, NULL, NULL);
gnutls_certificate_free_credentials(x509_cred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/set_pkcs12_cred.c b/tests/set_pkcs12_cred.c
index f7cd7bee57..f68daf4dd5 100644
--- a/tests/set_pkcs12_cred.c
+++ b/tests/set_pkcs12_cred.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdlib.h>
@@ -40,8 +40,8 @@ typedef struct {
files_st files[] = {
{"client.p12", "foobar"},
- {"cert-ca.p12", "1234"}, /* 2 certs, one is a CA */
- {"pkcs12_2certs.p12", ""}, /* 2 certs, on is unrelated */
+ {"cert-ca.p12", "1234"}, /* 2 certs, one is a CA */
+ {"pkcs12_2certs.p12", ""}, /* 2 certs, on is unrelated */
{NULL, NULL}
};
@@ -85,8 +85,8 @@ void doit(void)
gnutls_certificate_set_x509_simple_pkcs12_file(x509cred,
file,
GNUTLS_X509_FMT_DER,
- files[i].
- pass);
+ files
+ [i].pass);
if (ret < 0)
fail("x509_pkcs12 failed %d: %s\n", ret,
gnutls_strerror(ret));
diff --git a/tests/set_x509_key.c b/tests/set_x509_key.c
index 0b08c8c1a3..129ce2fdd5 100644
--- a/tests/set_x509_key.c
+++ b/tests/set_x509_key.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -64,9 +64,9 @@ static time_t mytime(time_t * t)
return then;
}
-static void compare(const gnutls_datum_t *der, const void *ipem)
+static void compare(const gnutls_datum_t * der, const void *ipem)
{
- gnutls_datum_t pem = {(void*)ipem, strlen((char*)ipem)};
+ gnutls_datum_t pem = { (void *)ipem, strlen((char *)ipem) };
gnutls_datum_t new_der;
int ret;
@@ -75,7 +75,8 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
fail("error: %s\n", gnutls_strerror(ret));
}
- if (der->size != new_der.size || memcmp(der->data, new_der.data, der->size) != 0) {
+ if (der->size != new_der.size
+ || memcmp(der->data, new_der.data, der->size) != 0) {
fail("error in %d: %s\n", __LINE__, "cert don't match");
exit(1);
}
@@ -83,7 +84,8 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
return;
}
-static int import_key(gnutls_certificate_credentials_t xcred, const gnutls_datum_t *skey, const gnutls_datum_t *cert)
+static int import_key(gnutls_certificate_credentials_t xcred,
+ const gnutls_datum_t * skey, const gnutls_datum_t * cert)
{
gnutls_x509_privkey_t key;
gnutls_x509_crt_t *crt_list;
@@ -91,11 +93,14 @@ static int import_key(gnutls_certificate_credentials_t xcred, const gnutls_datum
gnutls_datum_t tcert;
int ret;
- assert(gnutls_x509_privkey_init(&key)>=0);
+ assert(gnutls_x509_privkey_init(&key) >= 0);
- ret = gnutls_x509_crt_list_import2(&crt_list, &crt_list_size, cert, GNUTLS_X509_FMT_PEM, 0);
+ ret =
+ gnutls_x509_crt_list_import2(&crt_list, &crt_list_size, cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
- fail("error in gnutls_x509_crt_list_import2: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_x509_crt_list_import2: %s\n",
+ gnutls_strerror(ret));
}
ret = gnutls_x509_privkey_import(key, skey, GNUTLS_X509_FMT_PEM);
@@ -104,9 +109,10 @@ static int import_key(gnutls_certificate_credentials_t xcred, const gnutls_datum
}
ret = gnutls_certificate_set_x509_key(xcred, crt_list,
- crt_list_size, key);
+ crt_list_size, key);
if (ret < 0) {
- success("error in gnutls_certificate_set_x509_key: %s\n", gnutls_strerror(ret));
+ success("error in gnutls_certificate_set_x509_key: %s\n",
+ gnutls_strerror(ret));
idx = ret;
goto cleanup;
}
@@ -115,19 +121,20 @@ static int import_key(gnutls_certificate_credentials_t xcred, const gnutls_datum
idx = ret;
/* verify whether the stored certificate match the ones we have */
- for (i=0;i<MIN(2, crt_list_size);i++) {
+ for (i = 0; i < MIN(2, crt_list_size); i++) {
ret = gnutls_certificate_get_crt_raw(xcred, idx, i, &tcert);
if (ret < 0) {
- fail("error in %d: cert: %d: %s\n", __LINE__, i, gnutls_strerror(ret));
+ fail("error in %d: cert: %d: %s\n", __LINE__, i,
+ gnutls_strerror(ret));
exit(1);
}
- compare(&tcert, cert->data+i);
+ compare(&tcert, cert->data + i);
}
cleanup:
gnutls_x509_privkey_deinit(key);
- for (i=0;i<crt_list_size;i++) {
+ for (i = 0; i < crt_list_size; i++) {
gnutls_x509_crt_deinit(crt_list[i]);
}
gnutls_free(crt_list);
@@ -153,23 +160,26 @@ static void basic(void)
gnutls_global_set_log_level(6);
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
gnutls_certificate_set_flags(x509_cred, GNUTLS_CERTIFICATE_API_V2);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
idx = import_key(x509_cred, &server_key, &server_cert);
assert(idx == 0);
- test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, NULL);
+ test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL,
+ NULL);
/* verify that we can add certs, and that their index will change */
- for (i=0;i<16;i++) {
+ for (i = 0; i < 16; i++) {
idx = import_key(x509_cred, &server_ecc_key, &server_ecc_cert);
- assert(idx == 1+i);
+ assert(idx == 1 + i);
}
gnutls_certificate_free_credentials(x509_cred);
@@ -196,7 +206,7 @@ static void failure_mode(void)
if (debug)
gnutls_global_set_log_level(6);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
ret = import_key(x509_cred, &server_key, &server_ecc_cert);
if (ret >= 0) {
diff --git a/tests/set_x509_key_file-late.c b/tests/set_x509_key_file-late.c
index 9a7259fec8..bb7e5374e6 100644
--- a/tests/set_x509_key_file-late.c
+++ b/tests/set_x509_key_file-late.c
@@ -25,7 +25,7 @@
* is called */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,7 +39,9 @@
#include "cert-common.h"
#include "utils.h"
-static unsigned set_cert(gnutls_certificate_credentials_t xcred, const gnutls_datum_t *key, const gnutls_datum_t *cert)
+static unsigned set_cert(gnutls_certificate_credentials_t xcred,
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * cert)
{
const char *certfile;
FILE *fp;
@@ -50,12 +52,13 @@ static unsigned set_cert(gnutls_certificate_credentials_t xcred, const gnutls_da
fp = fopen(certfile, "w");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(cert->data, 1, cert->size, fp)>0);
- assert(fwrite(key->data, 1, key->size, fp)>0);
+ assert(fwrite(cert->data, 1, cert->size, fp) > 0);
+ assert(fwrite(key->data, 1, key->size, fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile, certfile,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
@@ -65,7 +68,8 @@ static unsigned set_cert(gnutls_certificate_credentials_t xcred, const gnutls_da
static
int handshake_hook_func(gnutls_session_t session, unsigned int htype,
- unsigned when, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned when, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
gnutls_certificate_credentials_t xcred;
int idx;
@@ -75,14 +79,14 @@ int handshake_hook_func(gnutls_session_t session, unsigned int htype,
assert(gnutls_certificate_allocate_credentials(&xcred) >= 0);
gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2);
- idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost6_cert_chain);
+ idx =
+ set_cert(xcred, &server_ca3_key, &server_ca3_localhost6_cert_chain);
assert(idx == 0);
idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost_cert);
assert(idx == 1);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- xcred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
return 0;
}
@@ -98,36 +102,40 @@ static void start(const char *prio)
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
-
success("Testing late set of credentials: %s\n", prio);
assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
- gnutls_handshake_set_hook_function(server, GNUTLS_HANDSHAKE_CLIENT_HELLO,
- GNUTLS_HOOK_PRE, handshake_hook_func);
+ gnutls_handshake_set_hook_function(server,
+ GNUTLS_HANDSHAKE_CLIENT_HELLO,
+ GNUTLS_HOOK_PRE,
+ handshake_hook_func);
assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
- assert(gnutls_init(&client, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
clicred) >= 0);
if (ret < 0)
exit(1);
- assert(gnutls_priority_set_direct(client, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(client, prio, NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
HANDSHAKE(client, server);
- assert(gnutls_credentials_get(server, GNUTLS_CRD_CERTIFICATE, (void*)&xcred) >= 0);
+ assert(gnutls_credentials_get
+ (server, GNUTLS_CRD_CERTIFICATE, (void *)&xcred) >= 0);
gnutls_deinit(client);
gnutls_deinit(server);
diff --git a/tests/set_x509_key_file.c b/tests/set_x509_key_file.c
index efd8d08cf1..044149d11b 100644
--- a/tests/set_x509_key_file.c
+++ b/tests/set_x509_key_file.c
@@ -24,7 +24,7 @@
* when the GNUTLS_CERTIFICATE_API_V2 is set */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -45,9 +45,9 @@ static time_t mytime(time_t * t)
return then;
}
-static void compare(const gnutls_datum_t *der, const void *ipem)
+static void compare(const gnutls_datum_t * der, const void *ipem)
{
- gnutls_datum_t pem = {(void*)ipem, strlen((char*)ipem)};
+ gnutls_datum_t pem = { (void *)ipem, strlen((char *)ipem) };
gnutls_datum_t new_der;
int ret;
@@ -56,7 +56,8 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
fail("error: %s\n", gnutls_strerror(ret));
}
- if (der->size != new_der.size || memcmp(der->data, new_der.data, der->size) != 0) {
+ if (der->size != new_der.size
+ || memcmp(der->data, new_der.data, der->size) != 0) {
fail("error in %d: %s\n", __LINE__, "cert don't match");
exit(1);
}
@@ -64,7 +65,9 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
return;
}
-static unsigned set_cert(gnutls_certificate_credentials_t xcred, const gnutls_datum_t *key, const gnutls_datum_t *cert)
+static unsigned set_cert(gnutls_certificate_credentials_t xcred,
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * cert)
{
const char *certfile;
FILE *fp;
@@ -75,12 +78,13 @@ static unsigned set_cert(gnutls_certificate_credentials_t xcred, const gnutls_da
fp = fopen(certfile, "w");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(cert->data, 1, cert->size, fp)>0);
- assert(fwrite(key->data, 1, key->size, fp)>0);
+ assert(fwrite(cert->data, 1, cert->size, fp) > 0);
+ assert(fwrite(key->data, 1, key->size, fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile, certfile,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
@@ -88,10 +92,12 @@ static unsigned set_cert(gnutls_certificate_credentials_t xcred, const gnutls_da
return ret;
}
-static void verify_written_cert(gnutls_certificate_credentials_t xcred, unsigned idx, const gnutls_datum_t *cert, unsigned ncerts)
+static void verify_written_cert(gnutls_certificate_credentials_t xcred,
+ unsigned idx, const gnutls_datum_t * cert,
+ unsigned ncerts)
{
int ret;
- gnutls_datum_t tcert = {NULL, 0};
+ gnutls_datum_t tcert = { NULL, 0 };
/* verify whether the stored certificate match the ones we have */
ret = gnutls_certificate_get_crt_raw(xcred, idx, 0, &tcert);
@@ -105,12 +111,13 @@ static void verify_written_cert(gnutls_certificate_credentials_t xcred, unsigned
if (ncerts > 1) {
ret = gnutls_certificate_get_crt_raw(xcred, idx, 1, &tcert);
if (ret < 0) {
- fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fail("error in %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
/* skip headers of first cert */
- compare(&tcert, cert->data+2);
+ compare(&tcert, cert->data + 2);
}
}
@@ -129,7 +136,8 @@ void doit(void)
/* this will fail */
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile, keyfile,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret != GNUTLS_E_FILE_ERROR)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
@@ -140,13 +148,16 @@ void doit(void)
gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
success("Testing store of certificates\n");
- idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost6_cert_chain);
+ idx =
+ set_cert(xcred, &server_ca3_key, &server_ca3_localhost6_cert_chain);
verify_written_cert(xcred, idx, &server_ca3_localhost6_cert_chain, 2);
assert(idx == 0);
@@ -158,7 +169,7 @@ void doit(void)
success("Tested store of %d\n", idx);
- test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
+ test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
idx = set_cert(xcred, &server_key, &server_cert);
verify_written_cert(xcred, idx, &server_cert, 2);
@@ -166,10 +177,10 @@ void doit(void)
success("Tested store of %d\n", idx);
- for (i=0;i<16;i++) {
+ for (i = 0; i < 16; i++) {
idx = set_cert(xcred, &server_ecc_key, &server_ecc_cert);
verify_written_cert(xcred, idx, &server_ecc_cert, 1);
- assert(idx == 3+i);
+ assert(idx == 3 + i);
success("Tested store of %d\n", idx);
}
diff --git a/tests/set_x509_key_file_der.c b/tests/set_x509_key_file_der.c
index 7cb720ad03..32dfaede97 100644
--- a/tests/set_x509_key_file_der.c
+++ b/tests/set_x509_key_file_der.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,9 +33,9 @@
#include "cert-common.h"
#include "utils.h"
-static void compare(const gnutls_datum_t *der, const void *ipem)
+static void compare(const gnutls_datum_t * der, const void *ipem)
{
- gnutls_datum_t pem = {(void*)ipem, strlen((char*)ipem)};
+ gnutls_datum_t pem = { (void *)ipem, strlen((char *)ipem) };
gnutls_datum_t new_der;
int ret;
@@ -44,7 +44,8 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
fail("error: %s\n", gnutls_strerror(ret));
}
- if (der->size != new_der.size || memcmp(der->data, new_der.data, der->size) != 0) {
+ if (der->size != new_der.size
+ || memcmp(der->data, new_der.data, der->size) != 0) {
fail("error in %d: %s\n", __LINE__, "cert don't match");
exit(1);
}
@@ -54,7 +55,7 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
static void write_der(const char *file, const char *header, const char *ipem)
{
- gnutls_datum_t pem = {(void*)ipem, strlen((char*)ipem)};
+ gnutls_datum_t pem = { (void *)ipem, strlen((char *)ipem) };
gnutls_datum_t der;
FILE *fp;
int ret;
@@ -68,7 +69,7 @@ static void write_der(const char *file, const char *header, const char *ipem)
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(der.data, 1, der.size, fp)>0);
+ assert(fwrite(der.data, 1, der.size, fp) > 0);
fclose(fp);
gnutls_free(der.data);
}
@@ -90,18 +91,21 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca2_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca2_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
- assert(get_tmpname(certfile)!=NULL);
- assert(get_tmpname(keyfile)!=NULL);
+ assert(get_tmpname(certfile) != NULL);
+ assert(get_tmpname(keyfile) != NULL);
- write_der(certfile, "CERTIFICATE", (char*)server2_cert_pem);
- write_der(keyfile, "RSA PRIVATE KEY", (char*)server2_key_pem);
+ write_der(certfile, "CERTIFICATE", (char *)server2_cert_pem);
+ write_der(keyfile, "RSA PRIVATE KEY", (char *)server2_key_pem);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile, keyfile,
- GNUTLS_X509_FMT_DER, NULL, 0);
+ GNUTLS_X509_FMT_DER, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
@@ -117,10 +121,9 @@ void doit(void)
remove(certfile);
remove(keyfile);
- test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
+ test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
gnutls_certificate_free_credentials(xcred);
gnutls_certificate_free_credentials(clicred);
gnutls_global_deinit();
}
-
diff --git a/tests/set_x509_key_file_legacy.c b/tests/set_x509_key_file_legacy.c
index 0ef2da4aa1..84f6fda85c 100644
--- a/tests/set_x509_key_file_legacy.c
+++ b/tests/set_x509_key_file_legacy.c
@@ -24,7 +24,7 @@
* when the GNUTLS_CERTIFICATE_API_V2 is not set */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -45,9 +45,9 @@ static time_t mytime(time_t * t)
return then;
}
-static void compare(const gnutls_datum_t *der, const void *ipem)
+static void compare(const gnutls_datum_t * der, const void *ipem)
{
- gnutls_datum_t pem = {(void*)ipem, strlen((char*)ipem)};
+ gnutls_datum_t pem = { (void *)ipem, strlen((char *)ipem) };
gnutls_datum_t new_der;
int ret;
@@ -56,7 +56,8 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
fail("error: %s\n", gnutls_strerror(ret));
}
- if (der->size != new_der.size || memcmp(der->data, new_der.data, der->size) != 0) {
+ if (der->size != new_der.size
+ || memcmp(der->data, new_der.data, der->size) != 0) {
fail("error in %d: %s\n", __LINE__, "cert don't match");
exit(1);
}
@@ -64,7 +65,9 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
return;
}
-static unsigned set_cert(gnutls_certificate_credentials_t xcred, const gnutls_datum_t *key, const gnutls_datum_t *cert)
+static unsigned set_cert(gnutls_certificate_credentials_t xcred,
+ const gnutls_datum_t * key,
+ const gnutls_datum_t * cert)
{
const char *certfile;
FILE *fp;
@@ -75,12 +78,13 @@ static unsigned set_cert(gnutls_certificate_credentials_t xcred, const gnutls_da
fp = fopen(certfile, "w");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(cert->data, 1, cert->size, fp)>0);
- assert(fwrite(key->data, 1, key->size, fp)>0);
+ assert(fwrite(cert->data, 1, cert->size, fp) > 0);
+ assert(fwrite(key->data, 1, key->size, fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile, certfile,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
@@ -88,10 +92,12 @@ static unsigned set_cert(gnutls_certificate_credentials_t xcred, const gnutls_da
return ret;
}
-static void verify_written_cert(gnutls_certificate_credentials_t xcred, unsigned idx, const gnutls_datum_t *cert, unsigned ncerts)
+static void verify_written_cert(gnutls_certificate_credentials_t xcred,
+ unsigned idx, const gnutls_datum_t * cert,
+ unsigned ncerts)
{
int ret;
- gnutls_datum_t tcert = {NULL, 0};
+ gnutls_datum_t tcert = { NULL, 0 };
/* verify whether the stored certificate match the ones we have */
ret = gnutls_certificate_get_crt_raw(xcred, idx, 0, &tcert);
@@ -105,12 +111,13 @@ static void verify_written_cert(gnutls_certificate_credentials_t xcred, unsigned
if (ncerts > 1) {
ret = gnutls_certificate_get_crt_raw(xcred, idx, 1, &tcert);
if (ret < 0) {
- fail("error in %d: %s\n", __LINE__, gnutls_strerror(ret));
+ fail("error in %d: %s\n", __LINE__,
+ gnutls_strerror(ret));
exit(1);
}
/* skip headers of first cert */
- compare(&tcert, cert->data+2);
+ compare(&tcert, cert->data + 2);
}
}
@@ -129,7 +136,8 @@ void doit(void)
/* this will fail */
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile, keyfile,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret != GNUTLS_E_FILE_ERROR)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
@@ -138,13 +146,16 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&xcred) >= 0);
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &subca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
success("Testing store of certificates\n");
- idx = set_cert(xcred, &server_ca3_key, &server_ca3_localhost6_cert_chain);
+ idx =
+ set_cert(xcred, &server_ca3_key, &server_ca3_localhost6_cert_chain);
verify_written_cert(xcred, idx, &server_ca3_localhost6_cert_chain, 2);
assert(idx == 0);
@@ -155,14 +166,14 @@ void doit(void)
success("Tested store of %d\n", idx);
- test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
+ test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
idx = set_cert(xcred, &server_key, &server_cert);
assert(idx == 0);
success("Tested store of %d\n", idx);
- for (i=0;i<16;i++) {
+ for (i = 0; i < 16; i++) {
idx = set_cert(xcred, &server_ecc_key, &server_ecc_cert);
assert(idx == 0);
success("Tested store of %d\n", idx);
diff --git a/tests/set_x509_key_file_ocsp.c b/tests/set_x509_key_file_ocsp.c
index 76580d6cb5..69e9296f14 100644
--- a/tests/set_x509_key_file_ocsp.c
+++ b/tests/set_x509_key_file_ocsp.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,8 +31,8 @@
#ifdef ENABLE_OCSP
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
/* Tests whether setting an OCSP response to a server
* is working as expected */
@@ -47,211 +47,211 @@ static time_t mytime(time_t * t)
}
static const unsigned char _resp[] = {
-0x30, 0x82, 0x06, 0x45, 0x0A, 0x01, 0x00, 0xA0,
-0x82, 0x06, 0x3E, 0x30, 0x82, 0x06, 0x3A, 0x06,
-0x09, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
-0x01, 0x01, 0x04, 0x82, 0x06, 0x2B, 0x30, 0x82,
-0x06, 0x27, 0x30, 0x81, 0x9E, 0xA2, 0x16, 0x04,
-0x14, 0x1E, 0xA5, 0xBD, 0xCA, 0x59, 0x64, 0x55,
-0x85, 0xAC, 0xDA, 0x54, 0x34, 0x23, 0x40, 0xD1,
-0xF6, 0xBD, 0xC3, 0xB0, 0xF6, 0x18, 0x0F, 0x32,
-0x30, 0x31, 0x37, 0x31, 0x31, 0x31, 0x39, 0x30,
-0x39, 0x34, 0x33, 0x34, 0x37, 0x5A, 0x30, 0x73,
-0x30, 0x71, 0x30, 0x49, 0x30, 0x09, 0x06, 0x05,
-0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0x04,
-0x14, 0xD1, 0xB1, 0x64, 0x8B, 0x8C, 0x9F, 0x0D,
-0xD1, 0x6B, 0xA3, 0x8A, 0xCD, 0x2B, 0x50, 0x17,
-0xD5, 0xF9, 0xCF, 0xC0, 0x64, 0x04, 0x14, 0x5F,
-0x60, 0xCF, 0x61, 0x90, 0x55, 0xDF, 0x84, 0x43,
-0x14, 0x8A, 0x60, 0x2A, 0xB2, 0xF5, 0x7A, 0xF4,
-0x43, 0x18, 0xEF, 0x02, 0x10, 0x28, 0x2E, 0x96,
-0xB3, 0x6B, 0x76, 0xD6, 0xD8, 0x52, 0x46, 0xED,
-0xBB, 0x31, 0xB2, 0x0C, 0x98, 0x80, 0x00, 0x18,
-0x0F, 0x32, 0x30, 0x31, 0x37, 0x31, 0x31, 0x31,
-0x39, 0x30, 0x39, 0x34, 0x33, 0x34, 0x37, 0x5A,
-0xA0, 0x11, 0x18, 0x0F, 0x32, 0x30, 0x31, 0x37,
-0x31, 0x31, 0x32, 0x36, 0x30, 0x39, 0x34, 0x33,
-0x34, 0x37, 0x5A, 0x30, 0x0D, 0x06, 0x09, 0x2A,
-0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05,
-0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x54,
-0x66, 0x9D, 0x96, 0x6B, 0x9D, 0x71, 0x18, 0x86,
-0x90, 0x5D, 0xD9, 0x54, 0x9C, 0xC4, 0x7F, 0x18,
-0x51, 0xE9, 0xFE, 0xF3, 0xE6, 0x48, 0x60, 0x89,
-0x74, 0xFD, 0xF1, 0x6D, 0xDB, 0x1F, 0x5A, 0x28,
-0x3D, 0x16, 0xEA, 0xA6, 0xD6, 0xE0, 0xAA, 0x42,
-0xF9, 0x5B, 0x76, 0xA1, 0x59, 0xDA, 0x30, 0x8D,
-0x08, 0x18, 0xDD, 0x60, 0x39, 0x0B, 0x90, 0x64,
-0x11, 0x1E, 0x9D, 0xA2, 0x70, 0x18, 0xAD, 0xC6,
-0x27, 0xD3, 0xF1, 0xBA, 0x11, 0x4E, 0xF6, 0x9D,
-0x6C, 0xC5, 0xEB, 0xD6, 0xB7, 0x43, 0x9D, 0x32,
-0x31, 0xC9, 0x24, 0x19, 0xB9, 0x47, 0x1C, 0x61,
-0x09, 0x8F, 0xAA, 0x42, 0x5B, 0xAF, 0x66, 0x0F,
-0x23, 0xAA, 0x80, 0xC0, 0x85, 0x7F, 0x00, 0x08,
-0xCA, 0x30, 0xE4, 0xC8, 0xDA, 0x2F, 0xC4, 0xD2,
-0x7E, 0x86, 0xCC, 0xDA, 0x6D, 0xD4, 0x7E, 0x40,
-0x66, 0xD8, 0x5C, 0x27, 0x83, 0xDA, 0x10, 0x8F,
-0x91, 0xA8, 0xE6, 0x9D, 0x44, 0x13, 0xF1, 0x04,
-0x4E, 0xC9, 0xF9, 0xC8, 0xA2, 0xED, 0x9C, 0x9F,
-0x05, 0xDA, 0xFA, 0x4A, 0xEA, 0xD2, 0x72, 0xF9,
-0xF1, 0xF6, 0xDB, 0xFF, 0xF8, 0x55, 0x0E, 0x92,
-0x75, 0xD6, 0x83, 0xBC, 0x7A, 0x95, 0xBE, 0xBF,
-0x8D, 0xD5, 0xA3, 0x23, 0x02, 0x32, 0xF8, 0x60,
-0xF7, 0x7C, 0x46, 0xC6, 0x69, 0x7E, 0xB7, 0x23,
-0xE1, 0x36, 0xC2, 0xEE, 0xBD, 0xFF, 0x3C, 0x05,
-0x5E, 0x07, 0x0C, 0xA6, 0x64, 0x65, 0x82, 0x46,
-0xC9, 0x67, 0x73, 0xC9, 0x15, 0xC8, 0xFA, 0x0F,
-0x73, 0xB5, 0x48, 0x0F, 0x0E, 0x6F, 0x43, 0xE8,
-0x8D, 0x7A, 0x21, 0x88, 0x12, 0x08, 0x37, 0x18,
-0x67, 0x66, 0x05, 0xD1, 0x2C, 0x4D, 0xE8, 0xA6,
-0x1B, 0x4D, 0x29, 0xD4, 0xEF, 0x79, 0x83, 0xDB,
-0xCA, 0x6E, 0xBC, 0xE4, 0xCA, 0x50, 0xB0, 0x73,
-0xEF, 0xD6, 0xC7, 0x69, 0xF6, 0x16, 0x1E, 0xA0,
-0x82, 0x04, 0x6E, 0x30, 0x82, 0x04, 0x6A, 0x30,
-0x82, 0x04, 0x66, 0x30, 0x82, 0x03, 0x4E, 0xA0,
-0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x6F, 0x93,
-0x87, 0x5C, 0x4B, 0x9E, 0x94, 0x93, 0xF8, 0x5F,
-0x16, 0xA7, 0x05, 0x86, 0x82, 0x8C, 0x30, 0x0D,
-0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D,
-0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x7E, 0x31,
-0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
-0x13, 0x02, 0x55, 0x53, 0x31, 0x1D, 0x30, 0x1B,
-0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x14, 0x53,
-0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20,
-0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74,
-0x69, 0x6F, 0x6E, 0x31, 0x1F, 0x30, 0x1D, 0x06,
-0x03, 0x55, 0x04, 0x0B, 0x13, 0x16, 0x53, 0x79,
-0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20, 0x54,
-0x72, 0x75, 0x73, 0x74, 0x20, 0x4E, 0x65, 0x74,
-0x77, 0x6F, 0x72, 0x6B, 0x31, 0x2F, 0x30, 0x2D,
-0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x26, 0x53,
-0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20,
-0x43, 0x6C, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20,
-0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53,
-0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41,
-0x20, 0x2D, 0x20, 0x47, 0x34, 0x30, 0x1E, 0x17,
-0x0D, 0x31, 0x37, 0x31, 0x30, 0x31, 0x30, 0x30,
-0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17, 0x0D,
-0x31, 0x38, 0x30, 0x31, 0x30, 0x38, 0x32, 0x33,
-0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x40, 0x31,
-0x3E, 0x30, 0x3C, 0x06, 0x03, 0x55, 0x04, 0x03,
-0x13, 0x35, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74,
-0x65, 0x63, 0x20, 0x43, 0x6C, 0x61, 0x73, 0x73,
-0x20, 0x33, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72,
-0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
-0x20, 0x43, 0x41, 0x20, 0x2D, 0x20, 0x47, 0x34,
-0x20, 0x4F, 0x43, 0x53, 0x50, 0x20, 0x52, 0x65,
-0x73, 0x70, 0x6F, 0x6E, 0x64, 0x65, 0x72, 0x30,
-0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A,
-0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01,
-0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30,
-0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00,
-0xBA, 0xB1, 0x3E, 0xBD, 0xF0, 0x1E, 0x19, 0x16,
-0xEA, 0x20, 0x44, 0x73, 0x1F, 0xD8, 0x85, 0x17,
-0xC4, 0xBF, 0x86, 0xF0, 0x75, 0x46, 0x02, 0xA8,
-0x5B, 0x7F, 0xA8, 0xF8, 0xB2, 0x08, 0x08, 0x55,
-0x01, 0xDD, 0x5B, 0xA4, 0x0B, 0xBD, 0x8A, 0x0A,
-0x87, 0x90, 0x62, 0x21, 0x59, 0x67, 0x33, 0x36,
-0x77, 0x49, 0xAB, 0x69, 0x4B, 0xDB, 0xB8, 0xFC,
-0x27, 0xA9, 0x81, 0x4A, 0x1F, 0x5F, 0x7D, 0x5C,
-0xC2, 0xE6, 0x54, 0x12, 0xFB, 0xA7, 0xEB, 0x9F,
-0xB5, 0xAC, 0x05, 0xBE, 0xA9, 0x58, 0xAA, 0x49,
-0x32, 0xEE, 0x73, 0xE8, 0x2F, 0xB1, 0xD3, 0x2E,
-0x13, 0xBC, 0x26, 0x23, 0xA0, 0x82, 0xD4, 0x25,
-0x20, 0x34, 0xAE, 0x16, 0x48, 0xFB, 0x55, 0x2B,
-0x58, 0xC9, 0xC4, 0x84, 0xAC, 0xF7, 0xC4, 0x78,
-0x62, 0xB7, 0xBF, 0xA2, 0x32, 0xC7, 0x34, 0x1C,
-0xDF, 0x9E, 0xFE, 0xA8, 0x04, 0x85, 0xAF, 0xCB,
-0x5A, 0xD6, 0xC6, 0x68, 0x9F, 0x28, 0x03, 0xB7,
-0x98, 0x8E, 0xD4, 0xA5, 0xE1, 0x18, 0xD1, 0x64,
-0x79, 0x67, 0x04, 0x33, 0x6C, 0x4B, 0xE0, 0xCF,
-0x34, 0xFC, 0x81, 0x27, 0x98, 0x16, 0xBB, 0xA3,
-0x9F, 0xE1, 0x4D, 0x2B, 0x71, 0x21, 0x41, 0x90,
-0xFF, 0x20, 0xB8, 0x4A, 0xCF, 0xB2, 0x2D, 0xB1,
-0xF8, 0x89, 0x40, 0xBC, 0xB3, 0x9F, 0x94, 0x1C,
-0xF4, 0x68, 0xEA, 0x7B, 0x31, 0x29, 0xDA, 0x71,
-0xCC, 0x37, 0x9A, 0xF9, 0x36, 0x0B, 0x58, 0x11,
-0x6F, 0x28, 0x14, 0x6F, 0xAF, 0x57, 0x6B, 0xD7,
-0xBD, 0x36, 0x98, 0xF4, 0x6C, 0x84, 0xF8, 0x48,
-0xF1, 0xBF, 0x88, 0xEB, 0x5C, 0x06, 0x8B, 0x02,
-0xF1, 0xDF, 0x6A, 0xFD, 0x61, 0xCF, 0x05, 0x5E,
-0xB5, 0x99, 0x85, 0x31, 0x41, 0x1D, 0xE5, 0x67,
-0x5C, 0x83, 0xA2, 0xBA, 0x9C, 0x9C, 0x37, 0x44,
-0xEF, 0xBC, 0x0E, 0xDE, 0xBF, 0x91, 0x5B, 0x1F,
-0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x82, 0x01,
-0x1C, 0x30, 0x82, 0x01, 0x18, 0x30, 0x0F, 0x06,
-0x09, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
-0x01, 0x05, 0x04, 0x02, 0x05, 0x00, 0x30, 0x22,
-0x06, 0x03, 0x55, 0x1D, 0x11, 0x04, 0x1B, 0x30,
-0x19, 0xA4, 0x17, 0x30, 0x15, 0x31, 0x13, 0x30,
-0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0A,
-0x54, 0x47, 0x56, 0x2D, 0x45, 0x2D, 0x33, 0x32,
-0x35, 0x36, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D,
-0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x5F,
-0x60, 0xCF, 0x61, 0x90, 0x55, 0xDF, 0x84, 0x43,
-0x14, 0x8A, 0x60, 0x2A, 0xB2, 0xF5, 0x7A, 0xF4,
-0x43, 0x18, 0xEF, 0x30, 0x1D, 0x06, 0x03, 0x55,
-0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0x1E, 0xA5,
-0xBD, 0xCA, 0x59, 0x64, 0x55, 0x85, 0xAC, 0xDA,
-0x54, 0x34, 0x23, 0x40, 0xD1, 0xF6, 0xBD, 0xC3,
-0xB0, 0xF6, 0x30, 0x0C, 0x06, 0x03, 0x55, 0x1D,
-0x13, 0x01, 0x01, 0xFF, 0x04, 0x02, 0x30, 0x00,
-0x30, 0x6E, 0x06, 0x03, 0x55, 0x1D, 0x20, 0x04,
-0x67, 0x30, 0x65, 0x30, 0x63, 0x06, 0x0B, 0x60,
-0x86, 0x48, 0x01, 0x86, 0xF8, 0x45, 0x01, 0x07,
-0x17, 0x03, 0x30, 0x54, 0x30, 0x26, 0x06, 0x08,
-0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
-0x16, 0x1A, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F,
-0x2F, 0x77, 0x77, 0x77, 0x2E, 0x73, 0x79, 0x6D,
-0x61, 0x75, 0x74, 0x68, 0x2E, 0x63, 0x6F, 0x6D,
-0x2F, 0x63, 0x70, 0x73, 0x30, 0x2A, 0x06, 0x08,
-0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02,
-0x30, 0x1E, 0x1A, 0x1C, 0x20, 0x20, 0x68, 0x74,
-0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x77, 0x77,
-0x2E, 0x73, 0x79, 0x6D, 0x61, 0x75, 0x74, 0x68,
-0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x72, 0x70, 0x61,
-0x30, 0x13, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04,
-0x0C, 0x30, 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01,
-0x05, 0x05, 0x07, 0x03, 0x09, 0x30, 0x0E, 0x06,
-0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04,
-0x04, 0x03, 0x02, 0x07, 0x80, 0x30, 0x0D, 0x06,
-0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01,
-0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
-0x00, 0x45, 0xFF, 0xCA, 0xD2, 0xAC, 0x71, 0xBE,
-0xA5, 0x62, 0x86, 0x93, 0x30, 0xD0, 0xE5, 0xE5,
-0x87, 0xFC, 0xAA, 0x29, 0x73, 0x36, 0xD6, 0x66,
-0x33, 0xC4, 0xCB, 0xC5, 0x6E, 0xC6, 0x2C, 0x8C,
-0x8E, 0xEE, 0x4D, 0xC2, 0xFA, 0xB3, 0xC0, 0xE7,
-0x11, 0x02, 0x69, 0x7A, 0xC5, 0x89, 0x28, 0x86,
-0x31, 0xD5, 0x14, 0x43, 0x5A, 0x20, 0xB7, 0xBD,
-0x1C, 0x0B, 0x1C, 0x3C, 0x84, 0x58, 0xBA, 0x56,
-0x14, 0x5B, 0xB8, 0x38, 0x97, 0x18, 0x66, 0xD6,
-0x12, 0x51, 0x4B, 0x5A, 0x2D, 0x0D, 0x00, 0xA7,
-0xBA, 0x5A, 0xC9, 0x0C, 0x4B, 0x10, 0xDE, 0xF5,
-0xAE, 0x56, 0xA5, 0x24, 0xC6, 0x3E, 0x5E, 0xD9,
-0xF1, 0x39, 0x76, 0x0C, 0xD7, 0x4A, 0xBF, 0x19,
-0x1F, 0x14, 0xA4, 0x18, 0xEC, 0x0F, 0x5D, 0x47,
-0x00, 0x75, 0xF0, 0x4E, 0xB3, 0xA1, 0xB4, 0x81,
-0x7B, 0x97, 0xAC, 0x0A, 0xA8, 0x5E, 0x92, 0xCC,
-0xB0, 0x80, 0x53, 0x66, 0xFF, 0xC6, 0x1B, 0x71,
-0xAF, 0xE3, 0x46, 0x55, 0x9D, 0x26, 0x51, 0x97,
-0xB0, 0x66, 0x9D, 0x06, 0x70, 0xC5, 0x04, 0x78,
-0xBC, 0x99, 0x42, 0xBA, 0x77, 0x82, 0x0E, 0xE8,
-0x92, 0x18, 0x4A, 0x72, 0x92, 0x13, 0x25, 0x7F,
-0x40, 0x15, 0xF7, 0xA8, 0x07, 0xA2, 0xAD, 0x03,
-0xBA, 0x1C, 0xF2, 0x93, 0xBE, 0x14, 0x72, 0x69,
-0x2B, 0x85, 0xAC, 0x2E, 0x2C, 0xBF, 0x1C, 0xC6,
-0x6C, 0x91, 0xF3, 0x2F, 0xF0, 0xB0, 0x8A, 0xC3,
-0xB8, 0xAC, 0x9B, 0xD1, 0xA1, 0x4C, 0xB7, 0x34,
-0xCA, 0xC6, 0x90, 0x15, 0xA7, 0x39, 0xB4, 0xF1,
-0xED, 0x54, 0x53, 0x5C, 0x29, 0x6F, 0xCE, 0x97,
-0x3E, 0x72, 0x79, 0x24, 0xEA, 0xC8, 0x87, 0x21,
-0x5F, 0x40, 0xBF, 0x53, 0x37, 0x8E, 0xCA, 0x0B,
-0x44, 0xD0, 0x4B, 0x6E, 0xAD, 0x94, 0xFB, 0x0F,
-0x33, 0xFE, 0x86, 0xDF, 0x4C, 0xE9, 0x94, 0xBB,
-0x3F };
-
-static gnutls_datum_t ocsp_resp1 =
- { (unsigned char *) _resp, sizeof(_resp) };
+ 0x30, 0x82, 0x06, 0x45, 0x0A, 0x01, 0x00, 0xA0,
+ 0x82, 0x06, 0x3E, 0x30, 0x82, 0x06, 0x3A, 0x06,
+ 0x09, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x01, 0x01, 0x04, 0x82, 0x06, 0x2B, 0x30, 0x82,
+ 0x06, 0x27, 0x30, 0x81, 0x9E, 0xA2, 0x16, 0x04,
+ 0x14, 0x1E, 0xA5, 0xBD, 0xCA, 0x59, 0x64, 0x55,
+ 0x85, 0xAC, 0xDA, 0x54, 0x34, 0x23, 0x40, 0xD1,
+ 0xF6, 0xBD, 0xC3, 0xB0, 0xF6, 0x18, 0x0F, 0x32,
+ 0x30, 0x31, 0x37, 0x31, 0x31, 0x31, 0x39, 0x30,
+ 0x39, 0x34, 0x33, 0x34, 0x37, 0x5A, 0x30, 0x73,
+ 0x30, 0x71, 0x30, 0x49, 0x30, 0x09, 0x06, 0x05,
+ 0x2B, 0x0E, 0x03, 0x02, 0x1A, 0x05, 0x00, 0x04,
+ 0x14, 0xD1, 0xB1, 0x64, 0x8B, 0x8C, 0x9F, 0x0D,
+ 0xD1, 0x6B, 0xA3, 0x8A, 0xCD, 0x2B, 0x50, 0x17,
+ 0xD5, 0xF9, 0xCF, 0xC0, 0x64, 0x04, 0x14, 0x5F,
+ 0x60, 0xCF, 0x61, 0x90, 0x55, 0xDF, 0x84, 0x43,
+ 0x14, 0x8A, 0x60, 0x2A, 0xB2, 0xF5, 0x7A, 0xF4,
+ 0x43, 0x18, 0xEF, 0x02, 0x10, 0x28, 0x2E, 0x96,
+ 0xB3, 0x6B, 0x76, 0xD6, 0xD8, 0x52, 0x46, 0xED,
+ 0xBB, 0x31, 0xB2, 0x0C, 0x98, 0x80, 0x00, 0x18,
+ 0x0F, 0x32, 0x30, 0x31, 0x37, 0x31, 0x31, 0x31,
+ 0x39, 0x30, 0x39, 0x34, 0x33, 0x34, 0x37, 0x5A,
+ 0xA0, 0x11, 0x18, 0x0F, 0x32, 0x30, 0x31, 0x37,
+ 0x31, 0x31, 0x32, 0x36, 0x30, 0x39, 0x34, 0x33,
+ 0x34, 0x37, 0x5A, 0x30, 0x0D, 0x06, 0x09, 0x2A,
+ 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x05,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x54,
+ 0x66, 0x9D, 0x96, 0x6B, 0x9D, 0x71, 0x18, 0x86,
+ 0x90, 0x5D, 0xD9, 0x54, 0x9C, 0xC4, 0x7F, 0x18,
+ 0x51, 0xE9, 0xFE, 0xF3, 0xE6, 0x48, 0x60, 0x89,
+ 0x74, 0xFD, 0xF1, 0x6D, 0xDB, 0x1F, 0x5A, 0x28,
+ 0x3D, 0x16, 0xEA, 0xA6, 0xD6, 0xE0, 0xAA, 0x42,
+ 0xF9, 0x5B, 0x76, 0xA1, 0x59, 0xDA, 0x30, 0x8D,
+ 0x08, 0x18, 0xDD, 0x60, 0x39, 0x0B, 0x90, 0x64,
+ 0x11, 0x1E, 0x9D, 0xA2, 0x70, 0x18, 0xAD, 0xC6,
+ 0x27, 0xD3, 0xF1, 0xBA, 0x11, 0x4E, 0xF6, 0x9D,
+ 0x6C, 0xC5, 0xEB, 0xD6, 0xB7, 0x43, 0x9D, 0x32,
+ 0x31, 0xC9, 0x24, 0x19, 0xB9, 0x47, 0x1C, 0x61,
+ 0x09, 0x8F, 0xAA, 0x42, 0x5B, 0xAF, 0x66, 0x0F,
+ 0x23, 0xAA, 0x80, 0xC0, 0x85, 0x7F, 0x00, 0x08,
+ 0xCA, 0x30, 0xE4, 0xC8, 0xDA, 0x2F, 0xC4, 0xD2,
+ 0x7E, 0x86, 0xCC, 0xDA, 0x6D, 0xD4, 0x7E, 0x40,
+ 0x66, 0xD8, 0x5C, 0x27, 0x83, 0xDA, 0x10, 0x8F,
+ 0x91, 0xA8, 0xE6, 0x9D, 0x44, 0x13, 0xF1, 0x04,
+ 0x4E, 0xC9, 0xF9, 0xC8, 0xA2, 0xED, 0x9C, 0x9F,
+ 0x05, 0xDA, 0xFA, 0x4A, 0xEA, 0xD2, 0x72, 0xF9,
+ 0xF1, 0xF6, 0xDB, 0xFF, 0xF8, 0x55, 0x0E, 0x92,
+ 0x75, 0xD6, 0x83, 0xBC, 0x7A, 0x95, 0xBE, 0xBF,
+ 0x8D, 0xD5, 0xA3, 0x23, 0x02, 0x32, 0xF8, 0x60,
+ 0xF7, 0x7C, 0x46, 0xC6, 0x69, 0x7E, 0xB7, 0x23,
+ 0xE1, 0x36, 0xC2, 0xEE, 0xBD, 0xFF, 0x3C, 0x05,
+ 0x5E, 0x07, 0x0C, 0xA6, 0x64, 0x65, 0x82, 0x46,
+ 0xC9, 0x67, 0x73, 0xC9, 0x15, 0xC8, 0xFA, 0x0F,
+ 0x73, 0xB5, 0x48, 0x0F, 0x0E, 0x6F, 0x43, 0xE8,
+ 0x8D, 0x7A, 0x21, 0x88, 0x12, 0x08, 0x37, 0x18,
+ 0x67, 0x66, 0x05, 0xD1, 0x2C, 0x4D, 0xE8, 0xA6,
+ 0x1B, 0x4D, 0x29, 0xD4, 0xEF, 0x79, 0x83, 0xDB,
+ 0xCA, 0x6E, 0xBC, 0xE4, 0xCA, 0x50, 0xB0, 0x73,
+ 0xEF, 0xD6, 0xC7, 0x69, 0xF6, 0x16, 0x1E, 0xA0,
+ 0x82, 0x04, 0x6E, 0x30, 0x82, 0x04, 0x6A, 0x30,
+ 0x82, 0x04, 0x66, 0x30, 0x82, 0x03, 0x4E, 0xA0,
+ 0x03, 0x02, 0x01, 0x02, 0x02, 0x10, 0x6F, 0x93,
+ 0x87, 0x5C, 0x4B, 0x9E, 0x94, 0x93, 0xF8, 0x5F,
+ 0x16, 0xA7, 0x05, 0x86, 0x82, 0x8C, 0x30, 0x0D,
+ 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D,
+ 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x7E, 0x31,
+ 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06,
+ 0x13, 0x02, 0x55, 0x53, 0x31, 0x1D, 0x30, 0x1B,
+ 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x14, 0x53,
+ 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20,
+ 0x43, 0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74,
+ 0x69, 0x6F, 0x6E, 0x31, 0x1F, 0x30, 0x1D, 0x06,
+ 0x03, 0x55, 0x04, 0x0B, 0x13, 0x16, 0x53, 0x79,
+ 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20, 0x54,
+ 0x72, 0x75, 0x73, 0x74, 0x20, 0x4E, 0x65, 0x74,
+ 0x77, 0x6F, 0x72, 0x6B, 0x31, 0x2F, 0x30, 0x2D,
+ 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x26, 0x53,
+ 0x79, 0x6D, 0x61, 0x6E, 0x74, 0x65, 0x63, 0x20,
+ 0x43, 0x6C, 0x61, 0x73, 0x73, 0x20, 0x33, 0x20,
+ 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x20, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x43, 0x41,
+ 0x20, 0x2D, 0x20, 0x47, 0x34, 0x30, 0x1E, 0x17,
+ 0x0D, 0x31, 0x37, 0x31, 0x30, 0x31, 0x30, 0x30,
+ 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x17, 0x0D,
+ 0x31, 0x38, 0x30, 0x31, 0x30, 0x38, 0x32, 0x33,
+ 0x35, 0x39, 0x35, 0x39, 0x5A, 0x30, 0x40, 0x31,
+ 0x3E, 0x30, 0x3C, 0x06, 0x03, 0x55, 0x04, 0x03,
+ 0x13, 0x35, 0x53, 0x79, 0x6D, 0x61, 0x6E, 0x74,
+ 0x65, 0x63, 0x20, 0x43, 0x6C, 0x61, 0x73, 0x73,
+ 0x20, 0x33, 0x20, 0x53, 0x65, 0x63, 0x75, 0x72,
+ 0x65, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x20, 0x43, 0x41, 0x20, 0x2D, 0x20, 0x47, 0x34,
+ 0x20, 0x4F, 0x43, 0x53, 0x50, 0x20, 0x52, 0x65,
+ 0x73, 0x70, 0x6F, 0x6E, 0x64, 0x65, 0x72, 0x30,
+ 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A,
+ 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01,
+ 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30,
+ 0x82, 0x01, 0x0A, 0x02, 0x82, 0x01, 0x01, 0x00,
+ 0xBA, 0xB1, 0x3E, 0xBD, 0xF0, 0x1E, 0x19, 0x16,
+ 0xEA, 0x20, 0x44, 0x73, 0x1F, 0xD8, 0x85, 0x17,
+ 0xC4, 0xBF, 0x86, 0xF0, 0x75, 0x46, 0x02, 0xA8,
+ 0x5B, 0x7F, 0xA8, 0xF8, 0xB2, 0x08, 0x08, 0x55,
+ 0x01, 0xDD, 0x5B, 0xA4, 0x0B, 0xBD, 0x8A, 0x0A,
+ 0x87, 0x90, 0x62, 0x21, 0x59, 0x67, 0x33, 0x36,
+ 0x77, 0x49, 0xAB, 0x69, 0x4B, 0xDB, 0xB8, 0xFC,
+ 0x27, 0xA9, 0x81, 0x4A, 0x1F, 0x5F, 0x7D, 0x5C,
+ 0xC2, 0xE6, 0x54, 0x12, 0xFB, 0xA7, 0xEB, 0x9F,
+ 0xB5, 0xAC, 0x05, 0xBE, 0xA9, 0x58, 0xAA, 0x49,
+ 0x32, 0xEE, 0x73, 0xE8, 0x2F, 0xB1, 0xD3, 0x2E,
+ 0x13, 0xBC, 0x26, 0x23, 0xA0, 0x82, 0xD4, 0x25,
+ 0x20, 0x34, 0xAE, 0x16, 0x48, 0xFB, 0x55, 0x2B,
+ 0x58, 0xC9, 0xC4, 0x84, 0xAC, 0xF7, 0xC4, 0x78,
+ 0x62, 0xB7, 0xBF, 0xA2, 0x32, 0xC7, 0x34, 0x1C,
+ 0xDF, 0x9E, 0xFE, 0xA8, 0x04, 0x85, 0xAF, 0xCB,
+ 0x5A, 0xD6, 0xC6, 0x68, 0x9F, 0x28, 0x03, 0xB7,
+ 0x98, 0x8E, 0xD4, 0xA5, 0xE1, 0x18, 0xD1, 0x64,
+ 0x79, 0x67, 0x04, 0x33, 0x6C, 0x4B, 0xE0, 0xCF,
+ 0x34, 0xFC, 0x81, 0x27, 0x98, 0x16, 0xBB, 0xA3,
+ 0x9F, 0xE1, 0x4D, 0x2B, 0x71, 0x21, 0x41, 0x90,
+ 0xFF, 0x20, 0xB8, 0x4A, 0xCF, 0xB2, 0x2D, 0xB1,
+ 0xF8, 0x89, 0x40, 0xBC, 0xB3, 0x9F, 0x94, 0x1C,
+ 0xF4, 0x68, 0xEA, 0x7B, 0x31, 0x29, 0xDA, 0x71,
+ 0xCC, 0x37, 0x9A, 0xF9, 0x36, 0x0B, 0x58, 0x11,
+ 0x6F, 0x28, 0x14, 0x6F, 0xAF, 0x57, 0x6B, 0xD7,
+ 0xBD, 0x36, 0x98, 0xF4, 0x6C, 0x84, 0xF8, 0x48,
+ 0xF1, 0xBF, 0x88, 0xEB, 0x5C, 0x06, 0x8B, 0x02,
+ 0xF1, 0xDF, 0x6A, 0xFD, 0x61, 0xCF, 0x05, 0x5E,
+ 0xB5, 0x99, 0x85, 0x31, 0x41, 0x1D, 0xE5, 0x67,
+ 0x5C, 0x83, 0xA2, 0xBA, 0x9C, 0x9C, 0x37, 0x44,
+ 0xEF, 0xBC, 0x0E, 0xDE, 0xBF, 0x91, 0x5B, 0x1F,
+ 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x82, 0x01,
+ 0x1C, 0x30, 0x82, 0x01, 0x18, 0x30, 0x0F, 0x06,
+ 0x09, 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x30,
+ 0x01, 0x05, 0x04, 0x02, 0x05, 0x00, 0x30, 0x22,
+ 0x06, 0x03, 0x55, 0x1D, 0x11, 0x04, 0x1B, 0x30,
+ 0x19, 0xA4, 0x17, 0x30, 0x15, 0x31, 0x13, 0x30,
+ 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0A,
+ 0x54, 0x47, 0x56, 0x2D, 0x45, 0x2D, 0x33, 0x32,
+ 0x35, 0x36, 0x30, 0x1F, 0x06, 0x03, 0x55, 0x1D,
+ 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x5F,
+ 0x60, 0xCF, 0x61, 0x90, 0x55, 0xDF, 0x84, 0x43,
+ 0x14, 0x8A, 0x60, 0x2A, 0xB2, 0xF5, 0x7A, 0xF4,
+ 0x43, 0x18, 0xEF, 0x30, 0x1D, 0x06, 0x03, 0x55,
+ 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0x1E, 0xA5,
+ 0xBD, 0xCA, 0x59, 0x64, 0x55, 0x85, 0xAC, 0xDA,
+ 0x54, 0x34, 0x23, 0x40, 0xD1, 0xF6, 0xBD, 0xC3,
+ 0xB0, 0xF6, 0x30, 0x0C, 0x06, 0x03, 0x55, 0x1D,
+ 0x13, 0x01, 0x01, 0xFF, 0x04, 0x02, 0x30, 0x00,
+ 0x30, 0x6E, 0x06, 0x03, 0x55, 0x1D, 0x20, 0x04,
+ 0x67, 0x30, 0x65, 0x30, 0x63, 0x06, 0x0B, 0x60,
+ 0x86, 0x48, 0x01, 0x86, 0xF8, 0x45, 0x01, 0x07,
+ 0x17, 0x03, 0x30, 0x54, 0x30, 0x26, 0x06, 0x08,
+ 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x01,
+ 0x16, 0x1A, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F,
+ 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x73, 0x79, 0x6D,
+ 0x61, 0x75, 0x74, 0x68, 0x2E, 0x63, 0x6F, 0x6D,
+ 0x2F, 0x63, 0x70, 0x73, 0x30, 0x2A, 0x06, 0x08,
+ 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02,
+ 0x30, 0x1E, 0x1A, 0x1C, 0x20, 0x20, 0x68, 0x74,
+ 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x77, 0x77,
+ 0x2E, 0x73, 0x79, 0x6D, 0x61, 0x75, 0x74, 0x68,
+ 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x72, 0x70, 0x61,
+ 0x30, 0x13, 0x06, 0x03, 0x55, 0x1D, 0x25, 0x04,
+ 0x0C, 0x30, 0x0A, 0x06, 0x08, 0x2B, 0x06, 0x01,
+ 0x05, 0x05, 0x07, 0x03, 0x09, 0x30, 0x0E, 0x06,
+ 0x03, 0x55, 0x1D, 0x0F, 0x01, 0x01, 0xFF, 0x04,
+ 0x04, 0x03, 0x02, 0x07, 0x80, 0x30, 0x0D, 0x06,
+ 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01,
+ 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
+ 0x00, 0x45, 0xFF, 0xCA, 0xD2, 0xAC, 0x71, 0xBE,
+ 0xA5, 0x62, 0x86, 0x93, 0x30, 0xD0, 0xE5, 0xE5,
+ 0x87, 0xFC, 0xAA, 0x29, 0x73, 0x36, 0xD6, 0x66,
+ 0x33, 0xC4, 0xCB, 0xC5, 0x6E, 0xC6, 0x2C, 0x8C,
+ 0x8E, 0xEE, 0x4D, 0xC2, 0xFA, 0xB3, 0xC0, 0xE7,
+ 0x11, 0x02, 0x69, 0x7A, 0xC5, 0x89, 0x28, 0x86,
+ 0x31, 0xD5, 0x14, 0x43, 0x5A, 0x20, 0xB7, 0xBD,
+ 0x1C, 0x0B, 0x1C, 0x3C, 0x84, 0x58, 0xBA, 0x56,
+ 0x14, 0x5B, 0xB8, 0x38, 0x97, 0x18, 0x66, 0xD6,
+ 0x12, 0x51, 0x4B, 0x5A, 0x2D, 0x0D, 0x00, 0xA7,
+ 0xBA, 0x5A, 0xC9, 0x0C, 0x4B, 0x10, 0xDE, 0xF5,
+ 0xAE, 0x56, 0xA5, 0x24, 0xC6, 0x3E, 0x5E, 0xD9,
+ 0xF1, 0x39, 0x76, 0x0C, 0xD7, 0x4A, 0xBF, 0x19,
+ 0x1F, 0x14, 0xA4, 0x18, 0xEC, 0x0F, 0x5D, 0x47,
+ 0x00, 0x75, 0xF0, 0x4E, 0xB3, 0xA1, 0xB4, 0x81,
+ 0x7B, 0x97, 0xAC, 0x0A, 0xA8, 0x5E, 0x92, 0xCC,
+ 0xB0, 0x80, 0x53, 0x66, 0xFF, 0xC6, 0x1B, 0x71,
+ 0xAF, 0xE3, 0x46, 0x55, 0x9D, 0x26, 0x51, 0x97,
+ 0xB0, 0x66, 0x9D, 0x06, 0x70, 0xC5, 0x04, 0x78,
+ 0xBC, 0x99, 0x42, 0xBA, 0x77, 0x82, 0x0E, 0xE8,
+ 0x92, 0x18, 0x4A, 0x72, 0x92, 0x13, 0x25, 0x7F,
+ 0x40, 0x15, 0xF7, 0xA8, 0x07, 0xA2, 0xAD, 0x03,
+ 0xBA, 0x1C, 0xF2, 0x93, 0xBE, 0x14, 0x72, 0x69,
+ 0x2B, 0x85, 0xAC, 0x2E, 0x2C, 0xBF, 0x1C, 0xC6,
+ 0x6C, 0x91, 0xF3, 0x2F, 0xF0, 0xB0, 0x8A, 0xC3,
+ 0xB8, 0xAC, 0x9B, 0xD1, 0xA1, 0x4C, 0xB7, 0x34,
+ 0xCA, 0xC6, 0x90, 0x15, 0xA7, 0x39, 0xB4, 0xF1,
+ 0xED, 0x54, 0x53, 0x5C, 0x29, 0x6F, 0xCE, 0x97,
+ 0x3E, 0x72, 0x79, 0x24, 0xEA, 0xC8, 0x87, 0x21,
+ 0x5F, 0x40, 0xBF, 0x53, 0x37, 0x8E, 0xCA, 0x0B,
+ 0x44, 0xD0, 0x4B, 0x6E, 0xAD, 0x94, 0xFB, 0x0F,
+ 0x33, 0xFE, 0x86, 0xDF, 0x4C, 0xE9, 0x94, 0xBB,
+ 0x3F
+};
+
+static gnutls_datum_t ocsp_resp1 = { (unsigned char *)_resp, sizeof(_resp) };
static void check_response(gnutls_session_t session, void *priv)
{
@@ -270,7 +270,8 @@ static void check_response(gnutls_session_t session, void *priv)
fail("not expected response, but received one\n");
}
- if (resp.size != exp_resp->size || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
+ if (resp.size != exp_resp->size
+ || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
fail("did not receive the expected response\n");
}
@@ -280,7 +281,9 @@ static void check_response(gnutls_session_t session, void *priv)
fail("did not receive the expected value (%d)\n", ret);
}
- ret = gnutls_ocsp_status_request_is_checked(session, GNUTLS_OCSP_SR_IS_AVAIL);
+ ret =
+ gnutls_ocsp_status_request_is_checked(session,
+ GNUTLS_OCSP_SR_IS_AVAIL);
if (ret == 0) {
fail("did not receive the expected value (%d)\n", ret);
}
@@ -308,34 +311,46 @@ void doit(void)
fp = fopen(certfile, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, strlen(server_localhost_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost_ca3_cert_chain_pem, 1,
+ strlen(server_localhost_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
/* set cert with localhost name */
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile, certfile,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
fp = fopen(certfile, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, strlen(server_localhost6_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost6_ca3_cert_chain_pem, 1,
+ strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
- gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK);
+ gnutls_certificate_set_flags(xcred,
+ GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK);
/* set OCSP response */
ocspfile1 = get_tmpname(ocspname1);
fp = fopen(ocspfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp)>0);
+ assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1, 0);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1,
+ 0);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
@@ -351,21 +366,24 @@ void doit(void)
if (t != 1511689427)
fail("error in OCSP validity time: %ld\n", (long int)t);
-
/* make sure that our invalid OCSP responses are not considered in verification
*/
- gnutls_certificate_set_verify_flags(clicred, GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
- if (gnutls_certificate_get_verify_flags(clicred) != GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
+ gnutls_certificate_set_verify_flags(clicred,
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
+ if (gnutls_certificate_get_verify_flags(clicred) !=
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
fail("error in gnutls_certificate_set_verify_flags\n");
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in setting trust cert: %s\n", gnutls_strerror(ret));
}
- test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2", "localhost", &ocsp_resp1, check_response, NULL); /* the DNS name of the first cert */
+ test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2", "localhost", &ocsp_resp1, check_response, NULL); /* the DNS name of the first cert */
- test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost", &ocsp_resp1, check_response, NULL); /* the DNS name of the first cert */
+ test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost", &ocsp_resp1, check_response, NULL); /* the DNS name of the first cert */
gnutls_certificate_free_credentials(xcred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/set_x509_key_file_ocsp_multi2.c b/tests/set_x509_key_file_ocsp_multi2.c
index 7e870f6b08..1741cdc63b 100644
--- a/tests/set_x509_key_file_ocsp_multi2.c
+++ b/tests/set_x509_key_file_ocsp_multi2.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -32,8 +32,8 @@
#ifdef ENABLE_OCSP
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
/* Tests whether setting an OCSP response to a server with multiple
* certificate sets, is working as expected. It tests
@@ -48,19 +48,19 @@ static time_t mytime(time_t * t)
return then;
}
-#define RESP1 "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
+# define RESP1 "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
static gnutls_datum_t ocsp_resp1 =
- { (unsigned char *) RESP1, sizeof(RESP1) - 1 };
+ { (unsigned char *)RESP1, sizeof(RESP1) - 1 };
-#define RESP2 "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
+# define RESP2 "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
static gnutls_datum_t ocsp_resp2 =
- { (unsigned char *) RESP2, sizeof(RESP2) - 1 };
+ { (unsigned char *)RESP2, sizeof(RESP2) - 1 };
-#define RESP3 "\x30\x82\x01\xd3\x0a\x01\x00\xa0\x82\x01\xcc\x30\x82\x01\xc8\x06\x09\x2b\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x01\xb9\x30\x82\x01\xb5\x30\x81\x9e\xa2\x16\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\x30\x73\x30\x71\x30\x49\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xed\x48\xad\xdd\xcb\x7b\x00\xe2\x0e\x84\x2a\xa9\xb4\x09\xf1\xac\x30\x34\xcf\x96\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x02\x10\x02\x01\x48\x91\x5d\xfd\x5e\xb6\xe0\x02\x90\xa9\x67\xb0\xe4\x64\x80\x00\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\xa0\x11\x18\x0f\x32\x30\x31\x34\x30\x39\x31\x31\x30\x36\x30\x34\x30\x30\x5a\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x6e\x5e\x5e\x81\xff\x3f\x4d\xc7\x53\xc7\x1b\xf3\xd3\x1d\xdc\x9a\xc7\xce\x77\x2c\x67\x56\x13\x98\x91\x02\x01\x76\xdc\x48\xb2\x1f\x9b\x17\xea\xbf\x2c\x0a\xf5\x1d\x98\x90\x3c\x5f\x55\xc2\xff\x4b\x9a\xbc\xa6\x83\x9e\xab\x2b\xeb\x9d\x01\xea\x3b\x5f\xbe\x03\x29\x70\x63\x2a\xa4\x1d\xa8\xab\x69\xb2\x64\xba\x5d\x73\x91\x5c\x92\xf3\x69\xd4\xc9\x39\x9c\x7c\x7d\xa2\x47\x92\xc2\x56\xfe\xa1\x0d\x4a\x69\xff\xda\x48\xc5\x5e\xd8\xab\x39\x88\x6a\x06\xfa\x07\x57\xd6\x48\xb5\xce\xc9\x5f\xa5\x96\xfe\x37\x18\x5e\x7f\x35\x51\xc1\x9e\x79\x5a\x26\xba\x67\x67\x38\x2a\x80\x75\x42\x99\x68\x3e\xec\x2f\x7e\x2d\xa1\xa6\xbe\x9f\x01\x51\x22\x88\x3a\xc9\x9c\xed\x51\xef\x21\x66\x7e\xa9\xd0\x3f\x13\x9c\xbb\xd2\x94\x14\x6f\x4b\xd9\xc4\xf5\x2c\xf5\x7d\x07\x68\xf3\x51\xac\xda\xc2\x09\x66\xa9\x3d\xed\xad\x02\x4d\x9c\x11\x29\x1a\x54\xfb\x1e\x7e\x36\xf4\xbb\x0d\x08\x8c\x6a\x42\x08\x10\x29\x08\x7c\x56\x0b\x18\x47\xff\x87\x11\xfd\xb2\xfb\xc9\x22\x7f\xe3\x1f\x7b\xf9\x98\xaa\x3a\x32\xb6\x2f\x02\xba\xb6\xc1\xdc\xc3\x5d\xb5\x4b\xae\x5d\x29\x6a\x31\xde\xcd"
+# define RESP3 "\x30\x82\x01\xd3\x0a\x01\x00\xa0\x82\x01\xcc\x30\x82\x01\xc8\x06\x09\x2b\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x01\xb9\x30\x82\x01\xb5\x30\x81\x9e\xa2\x16\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\x30\x73\x30\x71\x30\x49\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xed\x48\xad\xdd\xcb\x7b\x00\xe2\x0e\x84\x2a\xa9\xb4\x09\xf1\xac\x30\x34\xcf\x96\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x02\x10\x02\x01\x48\x91\x5d\xfd\x5e\xb6\xe0\x02\x90\xa9\x67\xb0\xe4\x64\x80\x00\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\xa0\x11\x18\x0f\x32\x30\x31\x34\x30\x39\x31\x31\x30\x36\x30\x34\x30\x30\x5a\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x6e\x5e\x5e\x81\xff\x3f\x4d\xc7\x53\xc7\x1b\xf3\xd3\x1d\xdc\x9a\xc7\xce\x77\x2c\x67\x56\x13\x98\x91\x02\x01\x76\xdc\x48\xb2\x1f\x9b\x17\xea\xbf\x2c\x0a\xf5\x1d\x98\x90\x3c\x5f\x55\xc2\xff\x4b\x9a\xbc\xa6\x83\x9e\xab\x2b\xeb\x9d\x01\xea\x3b\x5f\xbe\x03\x29\x70\x63\x2a\xa4\x1d\xa8\xab\x69\xb2\x64\xba\x5d\x73\x91\x5c\x92\xf3\x69\xd4\xc9\x39\x9c\x7c\x7d\xa2\x47\x92\xc2\x56\xfe\xa1\x0d\x4a\x69\xff\xda\x48\xc5\x5e\xd8\xab\x39\x88\x6a\x06\xfa\x07\x57\xd6\x48\xb5\xce\xc9\x5f\xa5\x96\xfe\x37\x18\x5e\x7f\x35\x51\xc1\x9e\x79\x5a\x26\xba\x67\x67\x38\x2a\x80\x75\x42\x99\x68\x3e\xec\x2f\x7e\x2d\xa1\xa6\xbe\x9f\x01\x51\x22\x88\x3a\xc9\x9c\xed\x51\xef\x21\x66\x7e\xa9\xd0\x3f\x13\x9c\xbb\xd2\x94\x14\x6f\x4b\xd9\xc4\xf5\x2c\xf5\x7d\x07\x68\xf3\x51\xac\xda\xc2\x09\x66\xa9\x3d\xed\xad\x02\x4d\x9c\x11\x29\x1a\x54\xfb\x1e\x7e\x36\xf4\xbb\x0d\x08\x8c\x6a\x42\x08\x10\x29\x08\x7c\x56\x0b\x18\x47\xff\x87\x11\xfd\xb2\xfb\xc9\x22\x7f\xe3\x1f\x7b\xf9\x98\xaa\x3a\x32\xb6\x2f\x02\xba\xb6\xc1\xdc\xc3\x5d\xb5\x4b\xae\x5d\x29\x6a\x31\xde\xcd"
static gnutls_datum_t ocsp_resp3 =
- { (unsigned char *) RESP3, sizeof(RESP3) - 1 };
+ { (unsigned char *)RESP3, sizeof(RESP3) - 1 };
static void check_response(gnutls_session_t session, void *priv)
{
@@ -79,12 +79,14 @@ static void check_response(gnutls_session_t session, void *priv)
fail("not expected response, but received one\n");
}
- if (resp.size != exp_resp->size || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
+ if (resp.size != exp_resp->size
+ || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
fail("did not receive the expected response\n");
}
}
-static int ocsp_func(gnutls_session_t session, void *ptr, gnutls_datum_t *ocsp_response)
+static int ocsp_func(gnutls_session_t session, void *ptr,
+ gnutls_datum_t * ocsp_response)
{
gnutls_datum_t *c = ptr;
ocsp_response->data = gnutls_malloc(c->size);
@@ -113,7 +115,7 @@ void doit(void)
char certname2[TMPNAME_SIZE];
char certname3[TMPNAME_SIZE];
FILE *fp;
- unsigned index1, index2, index3; /* indexes of certs */
+ unsigned index1, index2, index3; /* indexes of certs */
global_init();
gnutls_global_set_time_function(mytime);
@@ -133,12 +135,17 @@ void doit(void)
fp = fopen(certfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, strlen(server_localhost_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost_ca3_cert_chain_pem, 1,
+ strlen(server_localhost_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile1, certfile1,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index1 = ret;
@@ -149,12 +156,17 @@ void doit(void)
fp = fopen(certfile2, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, strlen(server_localhost6_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost6_ca3_cert_chain_pem, 1,
+ strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile2, certfile2,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index2 = ret;
@@ -162,8 +174,12 @@ void doit(void)
fp = fopen(certfile2, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, strlen(server_localhost6_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost6_ca3_cert_chain_pem, 1,
+ strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
/* set ECC cert */
@@ -172,12 +188,13 @@ void doit(void)
fp = fopen(certfile3, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp)>0);
- assert(fwrite(ecc_key, 1, strlen(ecc_key), fp)>0);
+ assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0);
+ assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile3, certfile3,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index3 = ret;
@@ -185,52 +202,83 @@ void doit(void)
fp = fopen(certfile3, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, strlen(server_localhost6_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost6_ca3_cert_chain_pem, 1,
+ strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
/* set OCSP response1 */
- ret = gnutls_certificate_set_ocsp_status_request_function2(xcred, index1, ocsp_func, &ocsp_resp1);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_function2(xcred, index1,
+ ocsp_func,
+ &ocsp_resp1);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
/* set OCSP response2 */
- ret = gnutls_certificate_set_ocsp_status_request_function2(xcred, index2, ocsp_func, &ocsp_resp2);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_function2(xcred, index2,
+ ocsp_func,
+ &ocsp_resp2);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
/* set OCSP response3 */
- ret = gnutls_certificate_set_ocsp_status_request_function2(xcred, index3, ocsp_func, &ocsp_resp3);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_function2(xcred, index3,
+ ocsp_func,
+ &ocsp_resp3);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
/* set an OCSP response outside the bounds */
- assert(gnutls_certificate_set_ocsp_status_request_function2(xcred, 34, ocsp_func, NULL) == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ assert(gnutls_certificate_set_ocsp_status_request_function2
+ (xcred, 34, ocsp_func,
+ NULL) == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
/* make sure that our invalid OCSP responses are not considered in verification
*/
- gnutls_certificate_set_verify_flags(clicred, GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
- if (gnutls_certificate_get_verify_flags(clicred) != GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
+ gnutls_certificate_set_verify_flags(clicred,
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
+ if (gnutls_certificate_get_verify_flags(clicred) !=
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
fail("error in gnutls_certificate_set_verify_flags\n");
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in setting trust cert: %s\n", gnutls_strerror(ret));
}
success("TLS1.2 + resp1\n");
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2", "localhost", &ocsp_resp1, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
+ "localhost", &ocsp_resp1, check_response, NULL);
success("TLS1.2 + resp2\n");
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2", "localhost6", &ocsp_resp2, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
+ "localhost6", &ocsp_resp2, check_response, NULL);
success("TLS1.2 + resp3\n");
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-RSA:-RSA:-DHE-RSA:-VERS-TLS-ALL:+VERS-TLS1.2", NULL, &ocsp_resp3, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-RSA:-RSA:-DHE-RSA:-VERS-TLS-ALL:+VERS-TLS1.2",
+ NULL, &ocsp_resp3, check_response, NULL);
success("TLS1.3 + resp1\n");
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost", &ocsp_resp1, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
+ "localhost", &ocsp_resp1, check_response, NULL);
success("TLS1.3 + resp2\n");
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost6", &ocsp_resp2, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
+ "localhost6", &ocsp_resp2, check_response, NULL);
success("TLS1.3 + resp3\n");
- test_cli_serv(xcred, clicred, "NORMAL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:-ECDHE-RSA:-RSA:-DHE-RSA:-VERS-TLS-ALL:+VERS-TLS1.3", NULL, &ocsp_resp3, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:-ECDHE-RSA:-RSA:-DHE-RSA:-VERS-TLS-ALL:+VERS-TLS1.3",
+ NULL, &ocsp_resp3, check_response, NULL);
gnutls_certificate_free_credentials(xcred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/set_x509_key_mem.c b/tests/set_x509_key_mem.c
index 59b53edf4c..c63da9f48f 100644
--- a/tests/set_x509_key_mem.c
+++ b/tests/set_x509_key_mem.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -69,14 +69,15 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
gnutls_certificate_allocate_credentials(&x509_cred);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
-
ret = gnutls_certificate_set_x509_key_mem(x509_cred, &cli_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret != GNUTLS_E_CERTIFICATE_KEY_MISMATCH) {
fail("error in error code\n");
exit(1);
@@ -86,26 +87,33 @@ void doit(void)
/* test gnutls_certificate_flags() */
gnutls_certificate_allocate_credentials(&x509_cred);
- gnutls_certificate_set_flags(x509_cred, GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH);
-
- ret = gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost6_cert_chain,
- &server_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ gnutls_certificate_set_flags(x509_cred,
+ GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH);
+
+ ret =
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost6_cert_chain,
+ &server_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in error code\n");
exit(1);
}
- ret = gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert_chain,
- &server_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert_chain,
+ &server_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in error code\n");
exit(1);
}
- test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, NULL);
- test_cli_serv(x509_cred, clicred, "NORMAL", "localhost6", NULL, NULL, NULL);
+ test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL,
+ NULL);
+ test_cli_serv(x509_cred, clicred, "NORMAL", "localhost6", NULL, NULL,
+ NULL);
gnutls_certificate_free_credentials(x509_cred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/set_x509_key_utf8.c b/tests/set_x509_key_utf8.c
index d5354871be..c93f61eaa8 100644
--- a/tests/set_x509_key_utf8.c
+++ b/tests/set_x509_key_utf8.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <assert.h>
@@ -64,9 +64,9 @@ static time_t mytime(time_t * t)
return then;
}
-static void compare(const gnutls_datum_t *der, const void *ipem)
+static void compare(const gnutls_datum_t * der, const void *ipem)
{
- gnutls_datum_t pem = {(void*)ipem, strlen((char*)ipem)};
+ gnutls_datum_t pem = { (void *)ipem, strlen((char *)ipem) };
gnutls_datum_t new_der;
int ret;
@@ -75,7 +75,8 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
fail("error: %s\n", gnutls_strerror(ret));
}
- if (der->size != new_der.size || memcmp(der->data, new_der.data, der->size) != 0) {
+ if (der->size != new_der.size
+ || memcmp(der->data, new_der.data, der->size) != 0) {
fail("error in %d: %s\n", __LINE__, "cert don't match");
exit(1);
}
@@ -83,7 +84,8 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
return;
}
-static int import_key(gnutls_certificate_credentials_t xcred, const gnutls_datum_t *skey, const gnutls_datum_t *cert)
+static int import_key(gnutls_certificate_credentials_t xcred,
+ const gnutls_datum_t * skey, const gnutls_datum_t * cert)
{
gnutls_x509_privkey_t key;
gnutls_x509_crt_t *crt_list;
@@ -91,11 +93,14 @@ static int import_key(gnutls_certificate_credentials_t xcred, const gnutls_datum
gnutls_datum_t tcert;
int ret;
- assert(gnutls_x509_privkey_init(&key)>=0);
+ assert(gnutls_x509_privkey_init(&key) >= 0);
- ret = gnutls_x509_crt_list_import2(&crt_list, &crt_list_size, cert, GNUTLS_X509_FMT_PEM, 0);
+ ret =
+ gnutls_x509_crt_list_import2(&crt_list, &crt_list_size, cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
- fail("error in gnutls_x509_crt_list_import2: %s\n", gnutls_strerror(ret));
+ fail("error in gnutls_x509_crt_list_import2: %s\n",
+ gnutls_strerror(ret));
}
ret = gnutls_x509_privkey_import(key, skey, GNUTLS_X509_FMT_PEM);
@@ -104,9 +109,10 @@ static int import_key(gnutls_certificate_credentials_t xcred, const gnutls_datum
}
ret = gnutls_certificate_set_x509_key(xcred, crt_list,
- crt_list_size, key);
+ crt_list_size, key);
if (ret < 0) {
- success("error in gnutls_certificate_set_x509_key: %s\n", gnutls_strerror(ret));
+ success("error in gnutls_certificate_set_x509_key: %s\n",
+ gnutls_strerror(ret));
idx = ret;
goto cleanup;
}
@@ -115,19 +121,20 @@ static int import_key(gnutls_certificate_credentials_t xcred, const gnutls_datum
idx = ret;
/* verify whether the stored certificate match the ones we have */
- for (i=0;i<MIN(2, crt_list_size);i++) {
+ for (i = 0; i < MIN(2, crt_list_size); i++) {
ret = gnutls_certificate_get_crt_raw(xcred, idx, i, &tcert);
if (ret < 0) {
- fail("error in %d: cert: %d: %s\n", __LINE__, i, gnutls_strerror(ret));
+ fail("error in %d: cert: %d: %s\n", __LINE__, i,
+ gnutls_strerror(ret));
exit(1);
}
- compare(&tcert, cert->data+i);
+ compare(&tcert, cert->data + i);
}
cleanup:
gnutls_x509_privkey_deinit(key);
- for (i=0;i<crt_list_size;i++) {
+ for (i = 0; i < crt_list_size; i++) {
gnutls_x509_crt_deinit(crt_list[i]);
}
gnutls_free(crt_list);
@@ -157,26 +164,35 @@ void doit(void)
gnutls_global_set_log_level(6);
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
gnutls_certificate_set_flags(x509_cred, GNUTLS_CERTIFICATE_API_V2);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
- idx = import_key(x509_cred, &server_ca3_key, &server_ca3_localhost_cert_chain);
+ idx =
+ import_key(x509_cred, &server_ca3_key,
+ &server_ca3_localhost_cert_chain);
assert(idx == 0);
- idx = import_key(x509_cred, &server_ca3_key, &server_ca3_localhost_utf8_cert);
+ idx =
+ import_key(x509_cred, &server_ca3_key,
+ &server_ca3_localhost_utf8_cert);
assert(idx == 1);
- test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL, NULL);
- test_cli_serv(x509_cred, clicred, "NORMAL", "www.xn--kxawhku.com", NULL, NULL, NULL); /* the previous name in IDNA format */
- test_cli_serv(x509_cred, clicred, "NORMAL", "简体中文.εξτρα.com", NULL, NULL, NULL); /* the second DNS name of cert */
- test_cli_serv(x509_cred, clicred, "NORMAL", "xn--fiqu1az03c18t.xn--mxah1amo.com", NULL, NULL, NULL); /* its IDNA equivalent */
+ test_cli_serv(x509_cred, clicred, "NORMAL", "localhost", NULL, NULL,
+ NULL);
+ test_cli_serv(x509_cred, clicred, "NORMAL", "www.xn--kxawhku.com", NULL, NULL, NULL); /* the previous name in IDNA format */
+ test_cli_serv(x509_cred, clicred, "NORMAL", "简体中文.εξτρα.com", NULL, NULL, NULL); /* the second DNS name of cert */
+ test_cli_serv(x509_cred, clicred, "NORMAL", "xn--fiqu1az03c18t.xn--mxah1amo.com", NULL, NULL, NULL); /* its IDNA equivalent */
- test_cli_serv_expect(x509_cred, clicred, "NORMAL", "NORMAL", "raw:简体中文.εξτρα.com", GNUTLS_E_RECEIVED_DISALLOWED_NAME, GNUTLS_E_AGAIN);
+ test_cli_serv_expect(x509_cred, clicred, "NORMAL", "NORMAL",
+ "raw:简体中文.εξτρα.com",
+ GNUTLS_E_RECEIVED_DISALLOWED_NAME, GNUTLS_E_AGAIN);
gnutls_certificate_free_credentials(x509_cred);
gnutls_certificate_free_credentials(clicred);
@@ -186,4 +202,3 @@ void doit(void)
if (debug)
success("success");
}
-
diff --git a/tests/set_x509_ocsp_multi_cli.c b/tests/set_x509_ocsp_multi_cli.c
index ae80ca3b0b..a99ffb991e 100644
--- a/tests/set_x509_ocsp_multi_cli.c
+++ b/tests/set_x509_ocsp_multi_cli.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,9 +31,9 @@
#ifdef ENABLE_OCSP
-#include "cert-common.h"
-#include "ocsp-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "ocsp-common.h"
+# include "utils.h"
/* Tests whether setting an OCSP response to a client
* is working as expected */
@@ -49,7 +49,8 @@ static time_t mytime(time_t * t)
static void check_cli(gnutls_session_t session, void *priv)
{
- assert((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_SERV_REQUESTED_OCSP) != 0);
+ assert((gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_SERV_REQUESTED_OCSP) != 0);
}
static void check_serv(gnutls_session_t session, void *priv)
@@ -59,7 +60,8 @@ static void check_serv(gnutls_session_t session, void *priv)
gnutls_datum_t resp;
gnutls_datum_t *exp_resp = priv;
- assert((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_SERV_REQUESTED_OCSP) != 0);
+ assert((gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_SERV_REQUESTED_OCSP) != 0);
ret = gnutls_ocsp_status_request_get(session, &resp);
if (ret < 0) {
@@ -72,7 +74,8 @@ static void check_serv(gnutls_session_t session, void *priv)
fail("not expected response, but received one\n");
}
- if (resp.size != exp_resp->size || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
+ if (resp.size != exp_resp->size
+ || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
fail("did not receive the expected response\n");
}
@@ -83,7 +86,9 @@ static void check_serv(gnutls_session_t session, void *priv)
fail("no intermediate response was received\n");
}
- if (resp.size != ocsp_subca3_unknown.size || memcmp(resp.data, ocsp_subca3_unknown.data, resp.size) != 0) {
+ if (resp.size != ocsp_subca3_unknown.size
+ || memcmp(resp.data, ocsp_subca3_unknown.data,
+ resp.size) != 0) {
fail("did not receive the expected intermediate response\n");
}
}
@@ -92,7 +97,9 @@ static void check_serv(gnutls_session_t session, void *priv)
if (ret != 0)
fail("error in verification (%s)\n", gnutls_strerror(ret));
- ret = gnutls_ocsp_status_request_is_checked(session, GNUTLS_OCSP_SR_IS_AVAIL);
+ ret =
+ gnutls_ocsp_status_request_is_checked(session,
+ GNUTLS_OCSP_SR_IS_AVAIL);
if (ret == 0) {
fail("did not receive the expected value (%d)\n", ret);
}
@@ -138,17 +145,23 @@ void doit(void)
fp = fopen(certfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, strlen(server_localhost_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost_ca3_cert_chain_pem, 1,
+ strlen(server_localhost_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile1, certfile1,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
- ret = gnutls_certificate_set_x509_key_file2(clicred, certfile1, certfile1,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_certificate_set_x509_key_file2(clicred, certfile1, certfile1,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index1 = ret;
@@ -158,13 +171,21 @@ void doit(void)
fp = fopen(ocspfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_subca3_unknown_pem.data, 1, ocsp_subca3_unknown_pem.size, fp)>0);
- assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, ocsp_ca3_localhost_unknown_pem.size, fp)>0);
- assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, ocsp_ca3_localhost6_unknown_pem.size, fp)>0);
+ assert(fwrite
+ (ocsp_subca3_unknown_pem.data, 1, ocsp_subca3_unknown_pem.size,
+ fp) > 0);
+ assert(fwrite
+ (ocsp_ca3_localhost_unknown_pem.data, 1,
+ ocsp_ca3_localhost_unknown_pem.size, fp) > 0);
+ assert(fwrite
+ (ocsp_ca3_localhost6_unknown_pem.data, 1,
+ ocsp_ca3_localhost6_unknown_pem.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file2(clicred, ocspfile1, index1,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file2(clicred, ocspfile1,
+ index1,
+ GNUTLS_X509_FMT_PEM);
if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
@@ -173,16 +194,24 @@ void doit(void)
fp = fopen(ocspfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_subca3_unknown_pem.data, 1, ocsp_subca3_unknown_pem.size, fp)>0);
- assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, ocsp_ca3_localhost_unknown_pem.size, fp)>0);
+ assert(fwrite
+ (ocsp_subca3_unknown_pem.data, 1, ocsp_subca3_unknown_pem.size,
+ fp) > 0);
+ assert(fwrite
+ (ocsp_ca3_localhost_unknown_pem.data, 1,
+ ocsp_ca3_localhost_unknown_pem.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file2(clicred, ocspfile1, index1,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file2(clicred, ocspfile1,
+ index1,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in setting trust cert: %s\n", gnutls_strerror(ret));
}
@@ -199,9 +228,10 @@ void doit(void)
if (t != 1509625639)
fail("error in OCSP validity time: %ld\n", (long int)t);
-#define PRIO "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3"
- _test_cli_serv(xcred, clicred, PRIO, PRIO, "localhost", &ocsp_ca3_localhost_unknown, check_cli,
- check_serv, 0, 1, 0, 0);
+# define PRIO "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3"
+ _test_cli_serv(xcred, clicred, PRIO, PRIO, "localhost",
+ &ocsp_ca3_localhost_unknown, check_cli, check_serv, 0, 1,
+ 0, 0);
gnutls_certificate_free_credentials(xcred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/set_x509_ocsp_multi_invalid.c b/tests/set_x509_ocsp_multi_invalid.c
index 515578cde7..e590e75845 100644
--- a/tests/set_x509_ocsp_multi_invalid.c
+++ b/tests/set_x509_ocsp_multi_invalid.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,8 +31,8 @@
#ifdef ENABLE_OCSP
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
/* Tests whether setting an OCSP response to a server with multiple
* certificate sets, is working as expected */
@@ -46,19 +46,19 @@ static time_t mytime(time_t * t)
return then;
}
-#define RESP1 "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
+# define RESP1 "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
static gnutls_datum_t ocsp_resp1 =
- { (unsigned char *) RESP1, sizeof(RESP1) - 1 };
+ { (unsigned char *)RESP1, sizeof(RESP1) - 1 };
-#define RESP2 "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
+# define RESP2 "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
static gnutls_datum_t ocsp_resp2 =
- { (unsigned char *) RESP2, sizeof(RESP2) - 1 };
+ { (unsigned char *)RESP2, sizeof(RESP2) - 1 };
-#define RESP3 "\x30\x82\x01\xd3\x0a\x01\x00\xa0\x82\x01\xcc\x30\x82\x01\xc8\x06\x09\x2b\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x01\xb9\x30\x82\x01\xb5\x30\x81\x9e\xa2\x16\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\x30\x73\x30\x71\x30\x49\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xed\x48\xad\xdd\xcb\x7b\x00\xe2\x0e\x84\x2a\xa9\xb4\x09\xf1\xac\x30\x34\xcf\x96\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x02\x10\x02\x01\x48\x91\x5d\xfd\x5e\xb6\xe0\x02\x90\xa9\x67\xb0\xe4\x64\x80\x00\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\xa0\x11\x18\x0f\x32\x30\x31\x34\x30\x39\x31\x31\x30\x36\x30\x34\x30\x30\x5a\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x6e\x5e\x5e\x81\xff\x3f\x4d\xc7\x53\xc7\x1b\xf3\xd3\x1d\xdc\x9a\xc7\xce\x77\x2c\x67\x56\x13\x98\x91\x02\x01\x76\xdc\x48\xb2\x1f\x9b\x17\xea\xbf\x2c\x0a\xf5\x1d\x98\x90\x3c\x5f\x55\xc2\xff\x4b\x9a\xbc\xa6\x83\x9e\xab\x2b\xeb\x9d\x01\xea\x3b\x5f\xbe\x03\x29\x70\x63\x2a\xa4\x1d\xa8\xab\x69\xb2\x64\xba\x5d\x73\x91\x5c\x92\xf3\x69\xd4\xc9\x39\x9c\x7c\x7d\xa2\x47\x92\xc2\x56\xfe\xa1\x0d\x4a\x69\xff\xda\x48\xc5\x5e\xd8\xab\x39\x88\x6a\x06\xfa\x07\x57\xd6\x48\xb5\xce\xc9\x5f\xa5\x96\xfe\x37\x18\x5e\x7f\x35\x51\xc1\x9e\x79\x5a\x26\xba\x67\x67\x38\x2a\x80\x75\x42\x99\x68\x3e\xec\x2f\x7e\x2d\xa1\xa6\xbe\x9f\x01\x51\x22\x88\x3a\xc9\x9c\xed\x51\xef\x21\x66\x7e\xa9\xd0\x3f\x13\x9c\xbb\xd2\x94\x14\x6f\x4b\xd9\xc4\xf5\x2c\xf5\x7d\x07\x68\xf3\x51\xac\xda\xc2\x09\x66\xa9\x3d\xed\xad\x02\x4d\x9c\x11\x29\x1a\x54\xfb\x1e\x7e\x36\xf4\xbb\x0d\x08\x8c\x6a\x42\x08\x10\x29\x08\x7c\x56\x0b\x18\x47\xff\x87\x11\xfd\xb2\xfb\xc9\x22\x7f\xe3\x1f\x7b\xf9\x98\xaa\x3a\x32\xb6\x2f\x02\xba\xb6\xc1\xdc\xc3\x5d\xb5\x4b\xae\x5d\x29\x6a\x31\xde\xcd"
+# define RESP3 "\x30\x82\x01\xd3\x0a\x01\x00\xa0\x82\x01\xcc\x30\x82\x01\xc8\x06\x09\x2b\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x01\xb9\x30\x82\x01\xb5\x30\x81\x9e\xa2\x16\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\x30\x73\x30\x71\x30\x49\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xed\x48\xad\xdd\xcb\x7b\x00\xe2\x0e\x84\x2a\xa9\xb4\x09\xf1\xac\x30\x34\xcf\x96\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x02\x10\x02\x01\x48\x91\x5d\xfd\x5e\xb6\xe0\x02\x90\xa9\x67\xb0\xe4\x64\x80\x00\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\xa0\x11\x18\x0f\x32\x30\x31\x34\x30\x39\x31\x31\x30\x36\x30\x34\x30\x30\x5a\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x6e\x5e\x5e\x81\xff\x3f\x4d\xc7\x53\xc7\x1b\xf3\xd3\x1d\xdc\x9a\xc7\xce\x77\x2c\x67\x56\x13\x98\x91\x02\x01\x76\xdc\x48\xb2\x1f\x9b\x17\xea\xbf\x2c\x0a\xf5\x1d\x98\x90\x3c\x5f\x55\xc2\xff\x4b\x9a\xbc\xa6\x83\x9e\xab\x2b\xeb\x9d\x01\xea\x3b\x5f\xbe\x03\x29\x70\x63\x2a\xa4\x1d\xa8\xab\x69\xb2\x64\xba\x5d\x73\x91\x5c\x92\xf3\x69\xd4\xc9\x39\x9c\x7c\x7d\xa2\x47\x92\xc2\x56\xfe\xa1\x0d\x4a\x69\xff\xda\x48\xc5\x5e\xd8\xab\x39\x88\x6a\x06\xfa\x07\x57\xd6\x48\xb5\xce\xc9\x5f\xa5\x96\xfe\x37\x18\x5e\x7f\x35\x51\xc1\x9e\x79\x5a\x26\xba\x67\x67\x38\x2a\x80\x75\x42\x99\x68\x3e\xec\x2f\x7e\x2d\xa1\xa6\xbe\x9f\x01\x51\x22\x88\x3a\xc9\x9c\xed\x51\xef\x21\x66\x7e\xa9\xd0\x3f\x13\x9c\xbb\xd2\x94\x14\x6f\x4b\xd9\xc4\xf5\x2c\xf5\x7d\x07\x68\xf3\x51\xac\xda\xc2\x09\x66\xa9\x3d\xed\xad\x02\x4d\x9c\x11\x29\x1a\x54\xfb\x1e\x7e\x36\xf4\xbb\x0d\x08\x8c\x6a\x42\x08\x10\x29\x08\x7c\x56\x0b\x18\x47\xff\x87\x11\xfd\xb2\xfb\xc9\x22\x7f\xe3\x1f\x7b\xf9\x98\xaa\x3a\x32\xb6\x2f\x02\xba\xb6\xc1\xdc\xc3\x5d\xb5\x4b\xae\x5d\x29\x6a\x31\xde\xcd"
static gnutls_datum_t ocsp_resp3 =
- { (unsigned char *) RESP3, sizeof(RESP3) - 1 };
+ { (unsigned char *)RESP3, sizeof(RESP3) - 1 };
static void check_response(gnutls_session_t session, void *priv)
{
@@ -77,7 +77,8 @@ static void check_response(gnutls_session_t session, void *priv)
fail("not expected response, but received one\n");
}
- if (resp.size != exp_resp->size || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
+ if (resp.size != exp_resp->size
+ || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
fail("did not receive the expected response\n");
}
}
@@ -102,7 +103,7 @@ void doit(void)
char certname2[TMPNAME_SIZE], ocspname2[TMPNAME_SIZE];
char certname3[TMPNAME_SIZE], ocspname3[TMPNAME_SIZE];
FILE *fp;
- unsigned index1, index2, index3; /* indexes of certs */
+ unsigned index1, index2, index3; /* indexes of certs */
global_init();
gnutls_global_set_time_function(mytime);
@@ -122,12 +123,17 @@ void doit(void)
fp = fopen(certfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, strlen(server_localhost_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost_ca3_cert_chain_pem, 1,
+ strlen(server_localhost_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile1, certfile1,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index1 = ret;
@@ -138,12 +144,17 @@ void doit(void)
fp = fopen(certfile2, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, strlen(server_localhost6_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost6_ca3_cert_chain_pem, 1,
+ strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile2, certfile2,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index2 = ret;
@@ -151,8 +162,12 @@ void doit(void)
fp = fopen(certfile2, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, strlen(server_localhost6_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost6_ca3_cert_chain_pem, 1,
+ strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
/* set ECC cert */
@@ -161,12 +176,13 @@ void doit(void)
fp = fopen(certfile3, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp)>0);
- assert(fwrite(ecc_key, 1, strlen(ecc_key), fp)>0);
+ assert(fwrite(ecc_cert, 1, strlen(ecc_cert), fp) > 0);
+ assert(fwrite(ecc_key, 1, strlen(ecc_key), fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile3, certfile3,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index3 = ret;
@@ -174,8 +190,12 @@ void doit(void)
fp = fopen(certfile3, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, strlen(server_localhost6_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost6_ca3_cert_chain_pem, 1,
+ strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
/* set OCSP response1 */
@@ -183,16 +203,23 @@ void doit(void)
fp = fopen(ocspfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp)>0);
+ assert(fwrite(ocsp_resp1.data, 1, ocsp_resp1.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1, index1);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1,
+ index1);
if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS)
- fail("unexpected error in setting invalid ocsp file: %s\n", gnutls_strerror(ret));
+ fail("unexpected error in setting invalid ocsp file: %s\n",
+ gnutls_strerror(ret));
- gnutls_certificate_set_flags(xcred, GNUTLS_CERTIFICATE_API_V2|GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK);
+ gnutls_certificate_set_flags(xcred,
+ GNUTLS_CERTIFICATE_API_V2 |
+ GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK);
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1, index1);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1,
+ index1);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
@@ -201,10 +228,12 @@ void doit(void)
fp = fopen(ocspfile2, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_resp2.data, 1, ocsp_resp2.size, fp)>0);
+ assert(fwrite(ocsp_resp2.data, 1, ocsp_resp2.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile2, index2);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile2,
+ index2);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
@@ -213,34 +242,53 @@ void doit(void)
fp = fopen(ocspfile3, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_resp3.data, 1, ocsp_resp3.size, fp)>0);
+ assert(fwrite(ocsp_resp3.data, 1, ocsp_resp3.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, index3);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3,
+ index3);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
/* set an OCSP response outside the bounds */
- assert(gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, 34) == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ assert(gnutls_certificate_set_ocsp_status_request_file
+ (xcred, ocspfile3, 34) == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
/* make sure that our invalid OCSP responses are not considered in verification
*/
- gnutls_certificate_set_verify_flags(clicred, GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
- if (gnutls_certificate_get_verify_flags(clicred) != GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
+ gnutls_certificate_set_verify_flags(clicred,
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
+ if (gnutls_certificate_get_verify_flags(clicred) !=
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
fail("error in gnutls_certificate_set_verify_flags\n");
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in setting trust cert: %s\n", gnutls_strerror(ret));
}
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2", "localhost", &ocsp_resp1, check_response, NULL);
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2", "localhost6", &ocsp_resp2, check_response, NULL);
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-RSA:-RSA:-DHE-RSA:-VERS-TLS-ALL:+VERS-TLS1.2", NULL, &ocsp_resp3, check_response, NULL);
-
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost", &ocsp_resp1, check_response, NULL);
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost6", &ocsp_resp2, check_response, NULL);
- test_cli_serv(xcred, clicred, "NORMAL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:-ECDHE-RSA:-DHE-RSA:-RSA:-VERS-TLS-ALL:+VERS-TLS1.3", NULL, &ocsp_resp3, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
+ "localhost", &ocsp_resp1, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
+ "localhost6", &ocsp_resp2, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-RSA:-RSA:-DHE-RSA:-VERS-TLS-ALL:+VERS-TLS1.2",
+ NULL, &ocsp_resp3, check_response, NULL);
+
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
+ "localhost", &ocsp_resp1, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
+ "localhost6", &ocsp_resp2, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:-ECDHE-RSA:-DHE-RSA:-RSA:-VERS-TLS-ALL:+VERS-TLS1.3",
+ NULL, &ocsp_resp3, check_response, NULL);
gnutls_certificate_free_credentials(xcred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/set_x509_ocsp_multi_pem.c b/tests/set_x509_ocsp_multi_pem.c
index 834ee468e0..3deff6337a 100644
--- a/tests/set_x509_ocsp_multi_pem.c
+++ b/tests/set_x509_ocsp_multi_pem.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,9 +31,9 @@
#ifdef ENABLE_OCSP
-#include "cert-common.h"
-#include "ocsp-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "ocsp-common.h"
+# include "utils.h"
/* Tests whether setting an OCSP response to a server with multiple
* certificate sets, is working as expected */
@@ -64,7 +64,8 @@ static void check_response(gnutls_session_t session, void *priv)
fail("not expected response, but received one\n");
}
- if (resp.size != exp_resp->size || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
+ if (resp.size != exp_resp->size
+ || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
fail("did not receive the expected response\n");
}
@@ -75,7 +76,9 @@ static void check_response(gnutls_session_t session, void *priv)
fail("no intermediate response was received\n");
}
- if (resp.size != ocsp_subca3_unknown.size || memcmp(resp.data, ocsp_subca3_unknown.data, resp.size) != 0) {
+ if (resp.size != ocsp_subca3_unknown.size
+ || memcmp(resp.data, ocsp_subca3_unknown.data,
+ resp.size) != 0) {
fail("did not receive the expected intermediate response\n");
}
}
@@ -85,7 +88,9 @@ static void check_response(gnutls_session_t session, void *priv)
fail("did not receive the expected value (%d)\n", ret);
}
- ret = gnutls_ocsp_status_request_is_checked(session, GNUTLS_OCSP_SR_IS_AVAIL);
+ ret =
+ gnutls_ocsp_status_request_is_checked(session,
+ GNUTLS_OCSP_SR_IS_AVAIL);
if (ret == 0) {
fail("did not receive the expected value (%d)\n", ret);
}
@@ -126,12 +131,17 @@ void doit(void)
fp = fopen(certfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, strlen(server_localhost_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost_ca3_cert_chain_pem, 1,
+ strlen(server_localhost_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile1, certfile1,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index1 = ret;
@@ -141,13 +151,21 @@ void doit(void)
fp = fopen(ocspfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_subca3_unknown_pem.data, 1, ocsp_subca3_unknown_pem.size, fp)>0);
- assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, ocsp_ca3_localhost_unknown_pem.size, fp)>0);
- assert(fwrite(ocsp_ca3_localhost6_unknown_pem.data, 1, ocsp_ca3_localhost6_unknown_pem.size, fp)>0);
+ assert(fwrite
+ (ocsp_subca3_unknown_pem.data, 1, ocsp_subca3_unknown_pem.size,
+ fp) > 0);
+ assert(fwrite
+ (ocsp_ca3_localhost_unknown_pem.data, 1,
+ ocsp_ca3_localhost_unknown_pem.size, fp) > 0);
+ assert(fwrite
+ (ocsp_ca3_localhost6_unknown_pem.data, 1,
+ ocsp_ca3_localhost6_unknown_pem.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file2(xcred, ocspfile1, index1,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file2(xcred, ocspfile1,
+ index1,
+ GNUTLS_X509_FMT_PEM);
if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
@@ -156,16 +174,24 @@ void doit(void)
fp = fopen(ocspfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_subca3_unknown_pem.data, 1, ocsp_subca3_unknown_pem.size, fp)>0);
- assert(fwrite(ocsp_ca3_localhost_unknown_pem.data, 1, ocsp_ca3_localhost_unknown_pem.size, fp)>0);
+ assert(fwrite
+ (ocsp_subca3_unknown_pem.data, 1, ocsp_subca3_unknown_pem.size,
+ fp) > 0);
+ assert(fwrite
+ (ocsp_ca3_localhost_unknown_pem.data, 1,
+ ocsp_ca3_localhost_unknown_pem.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file2(xcred, ocspfile1, index1,
- GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file2(xcred, ocspfile1,
+ index1,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in setting trust cert: %s\n", gnutls_strerror(ret));
}
@@ -182,8 +208,14 @@ void doit(void)
if (t != 1509625639)
fail("error in OCSP validity time: %ld\n", (long int)t);
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2", "localhost", &ocsp_ca3_localhost_unknown, check_response, NULL);
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost", &ocsp_ca3_localhost_unknown, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
+ "localhost", &ocsp_ca3_localhost_unknown, check_response,
+ NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
+ "localhost", &ocsp_ca3_localhost_unknown, check_response,
+ NULL);
gnutls_certificate_free_credentials(xcred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/set_x509_ocsp_multi_unknown.c b/tests/set_x509_ocsp_multi_unknown.c
index 882edf1ee3..ddff1128aa 100644
--- a/tests/set_x509_ocsp_multi_unknown.c
+++ b/tests/set_x509_ocsp_multi_unknown.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,9 +31,9 @@
#ifdef ENABLE_OCSP
-#include "cert-common.h"
-#include "ocsp-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "ocsp-common.h"
+# include "utils.h"
/* Tests whether setting an OCSP response to a server with multiple
* certificate sets, is working as expected */
@@ -64,7 +64,8 @@ static void check_response(gnutls_session_t session, void *priv)
fail("not expected response, but received one\n");
}
- if (resp.size != exp_resp->size || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
+ if (resp.size != exp_resp->size
+ || memcmp(resp.data, exp_resp->data, resp.size) != 0) {
fail("did not receive the expected response\n");
}
@@ -75,7 +76,9 @@ static void check_response(gnutls_session_t session, void *priv)
fail("no intermediate response was received\n");
}
- if (resp.size != ocsp_subca3_unknown.size || memcmp(resp.data, ocsp_subca3_unknown.data, resp.size) != 0) {
+ if (resp.size != ocsp_subca3_unknown.size
+ || memcmp(resp.data, ocsp_subca3_unknown.data,
+ resp.size) != 0) {
fail("did not receive the expected intermediate response\n");
}
}
@@ -100,7 +103,7 @@ void doit(void)
char certname2[TMPNAME_SIZE], ocspname2[TMPNAME_SIZE];
char ocspname3[TMPNAME_SIZE];
FILE *fp;
- unsigned index1, index2; /* indexes of certs */
+ unsigned index1, index2; /* indexes of certs */
global_init();
gnutls_global_set_time_function(mytime);
@@ -120,12 +123,17 @@ void doit(void)
fp = fopen(certfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, strlen(server_localhost_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost_ca3_cert_chain_pem, 1,
+ strlen(server_localhost_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile1, certfile1,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index1 = ret;
@@ -136,26 +144,34 @@ void doit(void)
fp = fopen(certfile2, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, strlen(server_localhost6_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost6_ca3_cert_chain_pem, 1,
+ strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile2, certfile2,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index2 = ret;
-
/* set OCSP response1 */
ocspfile1 = get_tmpname(ocspname1);
fp = fopen(ocspfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_ca3_localhost_unknown.data, 1, ocsp_ca3_localhost_unknown.size, fp)>0);
+ assert(fwrite
+ (ocsp_ca3_localhost_unknown.data, 1,
+ ocsp_ca3_localhost_unknown.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1, index1);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1,
+ index1);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
@@ -164,10 +180,14 @@ void doit(void)
fp = fopen(ocspfile2, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_ca3_localhost6_unknown.data, 1, ocsp_ca3_localhost6_unknown.size, fp)>0);
+ assert(fwrite
+ (ocsp_ca3_localhost6_unknown.data, 1,
+ ocsp_ca3_localhost6_unknown.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile2, index2);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile2,
+ index2);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
@@ -176,19 +196,29 @@ void doit(void)
fp = fopen(ocspfile3, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_ca3_localhost_unknown_sha1.data, 1, ocsp_ca3_localhost_unknown_sha1.size, fp)>0);
+ assert(fwrite
+ (ocsp_ca3_localhost_unknown_sha1.data, 1,
+ ocsp_ca3_localhost_unknown_sha1.size, fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, index1);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3,
+ index1);
if (ret != 0)
- fail("setting duplicate didn't succeed as expected: %s\n", gnutls_strerror(ret));
+ fail("setting duplicate didn't succeed as expected: %s\n",
+ gnutls_strerror(ret));
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, index2);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3,
+ index2);
if (ret != GNUTLS_E_OCSP_MISMATCH_WITH_CERTS)
- fail("setting invalid didn't fail as expected: %s\n", gnutls_strerror(ret));
+ fail("setting invalid didn't fail as expected: %s\n",
+ gnutls_strerror(ret));
- /* re-set the previous duplicate set for index1 to the expected*/
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1, index1);
+ /* re-set the previous duplicate set for index1 to the expected */
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile1,
+ index1);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
@@ -196,28 +226,46 @@ void doit(void)
fp = fopen(ocspfile3, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(ocsp_subca3_unknown.data, 1, ocsp_subca3_unknown.size, fp)>0);
+ assert(fwrite(ocsp_subca3_unknown.data, 1, ocsp_subca3_unknown.size, fp)
+ > 0);
fclose(fp);
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, index1);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3,
+ index1);
if (ret < 0)
fail("setting subCA failed: %s\n", gnutls_strerror(ret));
- ret = gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3, index2);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_file(xcred, ocspfile3,
+ index2);
if (ret < 0)
fail("setting subCA failed: %s\n", gnutls_strerror(ret));
-
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in setting trust cert: %s\n", gnutls_strerror(ret));
}
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2", "localhost", &ocsp_ca3_localhost_unknown, check_response, NULL);
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2", "localhost6", &ocsp_ca3_localhost6_unknown, check_response, NULL);
-
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost", &ocsp_ca3_localhost_unknown, check_response, NULL);
- test_cli_serv(xcred, clicred, "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost6", &ocsp_ca3_localhost6_unknown, check_response, NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
+ "localhost", &ocsp_ca3_localhost_unknown, check_response,
+ NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.2",
+ "localhost6", &ocsp_ca3_localhost6_unknown,
+ check_response, NULL);
+
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
+ "localhost", &ocsp_ca3_localhost_unknown, check_response,
+ NULL);
+ test_cli_serv(xcred, clicred,
+ "NORMAL:-ECDHE-ECDSA:-VERS-TLS-ALL:+VERS-TLS1.3",
+ "localhost6", &ocsp_ca3_localhost6_unknown,
+ check_response, NULL);
gnutls_certificate_free_credentials(xcred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/set_x509_pkcs12_key.c b/tests/set_x509_pkcs12_key.c
index 986f1e28b9..69ca38ddf8 100644
--- a/tests/set_x509_pkcs12_key.c
+++ b/tests/set_x509_pkcs12_key.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,9 +33,9 @@
#include "cert-common.h"
#include "utils.h"
-static void compare(const gnutls_datum_t *der, const void *ipem)
+static void compare(const gnutls_datum_t * der, const void *ipem)
{
- gnutls_datum_t pem = {(void*)ipem, strlen((char*)ipem)};
+ gnutls_datum_t pem = { (void *)ipem, strlen((char *)ipem) };
gnutls_datum_t new_der;
int ret;
@@ -44,7 +44,8 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
fail("error: %s\n", gnutls_strerror(ret));
}
- if (der->size != new_der.size || memcmp(der->data, new_der.data, der->size) != 0) {
+ if (der->size != new_der.size
+ || memcmp(der->data, new_der.data, der->size) != 0) {
fail("error in %d: %s\n", __LINE__, "cert don't match");
exit(1);
}
@@ -70,7 +71,8 @@ void doit(void)
/* this will fail */
ret = gnutls_certificate_set_x509_simple_pkcs12_file(xcred, certfile,
- GNUTLS_X509_FMT_PEM, "1234");
+ GNUTLS_X509_FMT_PEM,
+ "1234");
if (ret != GNUTLS_E_FILE_ERROR)
fail("gnutls_certificate_set_x509_simple_pkcs12_file failed: %s\n", gnutls_strerror(ret));
@@ -79,7 +81,9 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&clicred) >= 0);
assert(gnutls_certificate_allocate_credentials(&xcred) >= 0);
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("set_x509_trust_file failed: %s\n", gnutls_strerror(ret));
@@ -89,11 +93,14 @@ void doit(void)
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_ca3_pkcs12_pem, 1, strlen((char*)server_ca3_pkcs12_pem), fp)>0);
+ assert(fwrite
+ (server_ca3_pkcs12_pem, 1, strlen((char *)server_ca3_pkcs12_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_simple_pkcs12_file(xcred, certfile,
- GNUTLS_X509_FMT_PEM, "1234");
+ GNUTLS_X509_FMT_PEM,
+ "1234");
if (ret < 0)
fail("gnutls_certificate_set_x509_simple_pkcs12_file failed: %s\n", gnutls_strerror(ret));
@@ -108,10 +115,9 @@ void doit(void)
remove(certfile);
- test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
+ test_cli_serv(xcred, clicred, "NORMAL", "localhost", NULL, NULL, NULL); /* the DNS name of the first cert */
gnutls_certificate_free_credentials(xcred);
gnutls_certificate_free_credentials(clicred);
gnutls_global_deinit();
}
-
diff --git a/tests/setcredcrash.c b/tests/setcredcrash.c
index dc0b848071..90a933f1ec 100644
--- a/tests/setcredcrash.c
+++ b/tests/setcredcrash.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -38,7 +38,8 @@ int main(int argc, char *argv[])
gnutls_anon_allocate_client_credentials(&c_anoncred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
/* Test setting the same credential type twice. Earlier GnuTLS had
a bug that crashed when this happened. */
diff --git a/tests/sign-is-secure.c b/tests/sign-is-secure.c
index 64e0836963..bb95ae55aa 100644
--- a/tests/sign-is-secure.c
+++ b/tests/sign-is-secure.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -57,7 +57,7 @@
}
#ifndef ALLOW_SHA1
-#define CHECK_INSECURE_FOR_CERTS_SIG(sig) \
+# define CHECK_INSECURE_FOR_CERTS_SIG(sig) \
ret = gnutls_sign_is_secure2(sig, 0); \
if (ret == 0) { \
fail("error testing %d/%s\n", sig, gnutls_sign_get_name(sig)); \
@@ -71,7 +71,7 @@
fail("error testing %d/%s\n", sig, gnutls_sign_get_name(sig)); \
}
#else
-#define CHECK_INSECURE_FOR_CERTS_SIG(sig)
+# define CHECK_INSECURE_FOR_CERTS_SIG(sig)
#endif
void doit(void)
@@ -87,15 +87,17 @@ void doit(void)
CHECK_INSECURE_SIG(GNUTLS_SIGN_RSA_MD2);
CHECK_INSECURE_SIG(GNUTLS_SIGN_GOST_94);
- for (i=1;i<=GNUTLS_SIGN_MAX;i++) {
+ for (i = 1; i <= GNUTLS_SIGN_MAX; i++) {
#ifndef ALLOW_SHA1
- if (i==GNUTLS_SIGN_RSA_SHA1||i==GNUTLS_SIGN_DSA_SHA1||i==GNUTLS_SIGN_ECDSA_SHA1)
+ if (i == GNUTLS_SIGN_RSA_SHA1 || i == GNUTLS_SIGN_DSA_SHA1
+ || i == GNUTLS_SIGN_ECDSA_SHA1)
continue;
#endif
- if (i==GNUTLS_SIGN_GOST_94||i==GNUTLS_SIGN_RSA_MD5||i==GNUTLS_SIGN_RSA_MD2||i==GNUTLS_SIGN_UNKNOWN)
+ if (i == GNUTLS_SIGN_GOST_94 || i == GNUTLS_SIGN_RSA_MD5
+ || i == GNUTLS_SIGN_RSA_MD2 || i == GNUTLS_SIGN_UNKNOWN)
continue;
/* skip any unused elements */
- if (gnutls_sign_algorithm_get_name(i)==NULL)
+ if (gnutls_sign_algorithm_get_name(i) == NULL)
continue;
CHECK_SECURE_SIG(i);
}
diff --git a/tests/sign-pk-api.c b/tests/sign-pk-api.c
index 3cdfaa9a56..bf8ad7b45f 100644
--- a/tests/sign-pk-api.c
+++ b/tests/sign-pk-api.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
diff --git a/tests/sign-verify-data-newapi.c b/tests/sign-verify-data-newapi.c
index eca18974ee..2371fb3553 100644
--- a/tests/sign-verify-data-newapi.c
+++ b/tests/sign-verify-data-newapi.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -87,7 +87,8 @@ void doit(void)
if (tests[i].pk == GNUTLS_PK_DSA)
continue;
- success("testing: %s - %s\n", tests[i].name, gnutls_sign_algorithm_get_name(tests[i].sigalgo));
+ success("testing: %s - %s\n", tests[i].name,
+ gnutls_sign_algorithm_get_name(tests[i].sigalgo));
ret = gnutls_pubkey_init(&pubkey);
if (ret < 0)
@@ -97,7 +98,10 @@ void doit(void)
if (ret < 0)
testfail("gnutls_pubkey_init\n");
- ret = gnutls_privkey_import_x509_raw(privkey, &tests[i].key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(privkey, &tests[i].key,
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
testfail("gnutls_privkey_import_x509\n");
@@ -121,42 +125,44 @@ void doit(void)
testfail("gnutls_x509_pubkey_import\n");
ret =
- gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo, 0, &raw_data,
- &signature);
+ gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo, 0,
+ &raw_data, &signature);
if (ret < 0)
testfail("gnutls_x509_pubkey_verify_data2\n");
/* Test functionality of GNUTLS_VERIFY_DISABLE_CA_SIGN flag (see issue #754) */
ret =
- gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo, GNUTLS_VERIFY_DISABLE_CA_SIGN, &raw_data,
- &signature);
+ gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo,
+ GNUTLS_VERIFY_DISABLE_CA_SIGN,
+ &raw_data, &signature);
if (ret < 0)
testfail("gnutls_x509_pubkey_verify_data2\n");
/* should fail */
ret =
gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo, 0,
- &invalid_raw_data,
- &signature);
+ &invalid_raw_data, &signature);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
- testfail("gnutls_x509_pubkey_verify_data2-2 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_data2-2 (hashed data)\n");
sign_algo =
gnutls_pk_to_sign(gnutls_pubkey_get_pk_algorithm
(pubkey, NULL), tests[i].digest);
ret =
gnutls_pubkey_verify_data2(pubkey, sign_algo, 0,
- &raw_data, &signature);
+ &raw_data, &signature);
if (ret < 0)
- testfail("gnutls_x509_pubkey_verify_data2-1 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_data2-1 (hashed data)\n");
/* should fail */
ret =
gnutls_pubkey_verify_data2(pubkey, sign_algo, 0,
- &invalid_raw_data,
- &signature);
+ &invalid_raw_data, &signature);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
- testfail("gnutls_x509_pubkey_verify_data2-2 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_data2-2 (hashed data)\n");
/* test the raw interface */
gnutls_free(signature.data);
diff --git a/tests/sign-verify-data.c b/tests/sign-verify-data.c
index 9d96af6e7e..f358a38110 100644
--- a/tests/sign-verify-data.c
+++ b/tests/sign-verify-data.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -86,7 +86,8 @@ void doit(void)
if (tests[i].pk == GNUTLS_PK_DSA)
continue;
- success("testing: %s - %s\n", tests[i].name, gnutls_sign_algorithm_get_name(tests[i].sigalgo));
+ success("testing: %s - %s\n", tests[i].name,
+ gnutls_sign_algorithm_get_name(tests[i].sigalgo));
ret = gnutls_pubkey_init(&pubkey);
if (ret < 0)
@@ -96,12 +97,17 @@ void doit(void)
if (ret < 0)
testfail("gnutls_pubkey_init\n");
- ret = gnutls_privkey_import_x509_raw(privkey, &tests[i].key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(privkey, &tests[i].key,
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
testfail("gnutls_privkey_import_x509\n");
- ret = gnutls_privkey_sign_data(privkey, tests[i].digest, tests[i].sign_flags,
- &raw_data, &signature);
+ ret =
+ gnutls_privkey_sign_data(privkey, tests[i].digest,
+ tests[i].sign_flags, &raw_data,
+ &signature);
if (ret < 0)
testfail("gnutls_x509_privkey_sign_hash\n");
@@ -120,35 +126,36 @@ void doit(void)
testfail("gnutls_x509_pubkey_import\n");
ret =
- gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo, 0, &raw_data,
- &signature);
+ gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo, 0,
+ &raw_data, &signature);
if (ret < 0)
testfail("gnutls_x509_pubkey_verify_data2\n");
/* should fail */
ret =
gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo, 0,
- &invalid_raw_data,
- &signature);
+ &invalid_raw_data, &signature);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
- testfail("gnutls_x509_pubkey_verify_data2-2 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_data2-2 (hashed data)\n");
sign_algo =
gnutls_pk_to_sign(gnutls_pubkey_get_pk_algorithm
(pubkey, NULL), tests[i].digest);
ret =
gnutls_pubkey_verify_data2(pubkey, sign_algo, 0,
- &raw_data, &signature);
+ &raw_data, &signature);
if (ret < 0)
- testfail("gnutls_x509_pubkey_verify_data2-1 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_data2-1 (hashed data)\n");
/* should fail */
ret =
gnutls_pubkey_verify_data2(pubkey, sign_algo, 0,
- &invalid_raw_data,
- &signature);
+ &invalid_raw_data, &signature);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
- testfail("gnutls_x509_pubkey_verify_data2-2 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_data2-2 (hashed data)\n");
/* test the raw interface */
gnutls_free(signature.data);
diff --git a/tests/sign-verify-deterministic.c b/tests/sign-verify-deterministic.c
index b2394e4cee..fa30ab2315 100644
--- a/tests/sign-verify-deterministic.c
+++ b/tests/sign-verify-deterministic.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -69,70 +69,77 @@ static const char dsa_privkey_rfc6979[] =
"qKiPHb0CgYBd9eAd7THQKX4nThaRwZL+WGj++eGahHdkVLEAzxb2U5IZWji5BSPi\n"
"VC7mGHHARAy4fDIvxLTS7F4efsdm4b6NTOk1Q33BHDyP1CYziTPr/nOcs0ZfTTZo\n"
"xeRzUIJTseaC9ly9xPrpPC6iEjkOVJBahuIiMXC0Tqp9pd2f/Pt/OwIUQRYCyxmm\n"
- "zMNElNedmO8eftWvJfc=\n"
- "-----END DSA PRIVATE KEY-----\n";
+ "zMNElNedmO8eftWvJfc=\n" "-----END DSA PRIVATE KEY-----\n";
static const char ecdsa_secp256r1_privkey_rfc6979[] =
"-----BEGIN EC PRIVATE KEY-----\n"
"MHgCAQEEIQDJr6nYRbp1FmtcIVdnsdaTTlDD2zbomxJ7imIrEg9nIaAKBggqhkjO\n"
"PQMBB6FEA0IABGD+1LolWp0xyWHrdMY1bWjASbiSO2H6bOZpYi5g8p+2eQP+EAi4\n"
- "vJmkGunpVii8ZPLxsgwtfp9Rd6PClNRGIpk=\n"
- "-----END EC PRIVATE KEY-----\n";
+ "vJmkGunpVii8ZPLxsgwtfp9Rd6PClNRGIpk=\n" "-----END EC PRIVATE KEY-----\n";
static const char sample[] = "sample";
static const
struct _key_tests_st tests[] = {
{
- .name = "dsa key",
- .key = {(void *) dsa_privkey_rfc6979, sizeof(dsa_privkey_rfc6979)-1},
- .msg = {(void *) sample, sizeof(sample)-1},
- .sig = {(void *) "\x30\x2d\x02\x15\x00\x81\xf2\xf5\x85\x0b\xe5\xbc\x12\x3c\x43\xf7\x1a\x30\x33\xe9\x38\x46\x11\xc5\x45\x02\x14\x4c\xdd\x91\x4b\x65\xeb\x6c\x66\xa8\xaa\xad\x27\x29\x9b\xee\x6b\x03\x5f\x5e\x89", 47},
- .pk = GNUTLS_PK_DSA,
- .digest = GNUTLS_DIG_SHA256,
- .sigalgo = GNUTLS_SIGN_DSA_SHA256,
- .sign_flags = GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE
- },
+ .name = "dsa key",
+ .key = {(void *)dsa_privkey_rfc6979, sizeof(dsa_privkey_rfc6979) - 1},
+ .msg = {(void *)sample, sizeof(sample) - 1},
+ .sig = {(void *)
+ "\x30\x2d\x02\x15\x00\x81\xf2\xf5\x85\x0b\xe5\xbc\x12\x3c\x43\xf7\x1a\x30\x33\xe9\x38\x46\x11\xc5\x45\x02\x14\x4c\xdd\x91\x4b\x65\xeb\x6c\x66\xa8\xaa\xad\x27\x29\x9b\xee\x6b\x03\x5f\x5e\x89",
+ 47},
+ .pk = GNUTLS_PK_DSA,
+ .digest = GNUTLS_DIG_SHA256,
+ .sigalgo = GNUTLS_SIGN_DSA_SHA256,
+ .sign_flags = GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE},
{
- .name = "ecdsa key",
- .key = {(void *) ecdsa_secp256r1_privkey_rfc6979, sizeof(ecdsa_secp256r1_privkey_rfc6979)-1},
- .msg = {(void *) sample, sizeof(sample)-1},
- .sig = {(void *) "\x30\x46\x02\x21\x00\xef\xd4\x8b\x2a\xac\xb6\xa8\xfd\x11\x40\xdd\x9c\xd4\x5e\x81\xd6\x9d\x2c\x87\x7b\x56\xaa\xf9\x91\xc3\x4d\x0e\xa8\x4e\xaf\x37\x16\x02\x21\x00\xf7\xcb\x1c\x94\x2d\x65\x7c\x41\xd4\x36\xc7\xa1\xb6\xe2\x9f\x65\xf3\xe9\x00\xdb\xb9\xaf\xf4\x06\x4d\xc4\xab\x2f\x84\x3a\xcd\xa8", 72},
- .pk = GNUTLS_PK_ECDSA,
- .digest = GNUTLS_DIG_SHA256,
- .sigalgo = GNUTLS_SIGN_ECDSA_SECP256R1_SHA256,
- .sign_flags = GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE
- },
+ .name = "ecdsa key",
+ .key = {(void *)ecdsa_secp256r1_privkey_rfc6979,
+ sizeof(ecdsa_secp256r1_privkey_rfc6979) - 1},
+ .msg = {(void *)sample, sizeof(sample) - 1},
+ .sig = {(void *)
+ "\x30\x46\x02\x21\x00\xef\xd4\x8b\x2a\xac\xb6\xa8\xfd\x11\x40\xdd\x9c\xd4\x5e\x81\xd6\x9d\x2c\x87\x7b\x56\xaa\xf9\x91\xc3\x4d\x0e\xa8\x4e\xaf\x37\x16\x02\x21\x00\xf7\xcb\x1c\x94\x2d\x65\x7c\x41\xd4\x36\xc7\xa1\xb6\xe2\x9f\x65\xf3\xe9\x00\xdb\xb9\xaf\xf4\x06\x4d\xc4\xab\x2f\x84\x3a\xcd\xa8",
+ 72},
+ .pk = GNUTLS_PK_ECDSA,
+ .digest = GNUTLS_DIG_SHA256,
+ .sigalgo = GNUTLS_SIGN_ECDSA_SECP256R1_SHA256,
+ .sign_flags = GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE},
{
- .name = "ecdsa key",
- .key = {(void *) ecdsa_secp256r1_privkey_rfc6979, sizeof(ecdsa_secp256r1_privkey_rfc6979)-1},
- .msg = {(void *) sample, sizeof(sample)-1},
- .sig = {(void *) "\x30\x46\x02\x21\x00\xef\xd4\x8b\x2a\xac\xb6\xa8\xfd\x11\x40\xdd\x9c\xd4\x5e\x81\xd6\x9d\x2c\x87\x7b\x56\xaa\xf9\x91\xc3\x4d\x0e\xa8\x4e\xaf\x37\x16\x02\x21\x00\xf7\xcb\x1c\x94\x2d\x65\x7c\x41\xd4\x36\xc7\xa1\xb6\xe2\x9f\x65\xf3\xe9\x00\xdb\xb9\xaf\xf4\x06\x4d\xc4\xab\x2f\x84\x3a\xcd\xa8", 72},
- .pk = GNUTLS_PK_ECDSA,
- .digest = GNUTLS_DIG_SHA256,
- .sigalgo = GNUTLS_SIGN_ECDSA_SHA256,
- .sign_flags = GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE
- },
+ .name = "ecdsa key",
+ .key = {(void *)ecdsa_secp256r1_privkey_rfc6979,
+ sizeof(ecdsa_secp256r1_privkey_rfc6979) - 1},
+ .msg = {(void *)sample, sizeof(sample) - 1},
+ .sig = {(void *)
+ "\x30\x46\x02\x21\x00\xef\xd4\x8b\x2a\xac\xb6\xa8\xfd\x11\x40\xdd\x9c\xd4\x5e\x81\xd6\x9d\x2c\x87\x7b\x56\xaa\xf9\x91\xc3\x4d\x0e\xa8\x4e\xaf\x37\x16\x02\x21\x00\xf7\xcb\x1c\x94\x2d\x65\x7c\x41\xd4\x36\xc7\xa1\xb6\xe2\x9f\x65\xf3\xe9\x00\xdb\xb9\xaf\xf4\x06\x4d\xc4\xab\x2f\x84\x3a\xcd\xa8",
+ 72},
+ .pk = GNUTLS_PK_ECDSA,
+ .digest = GNUTLS_DIG_SHA256,
+ .sigalgo = GNUTLS_SIGN_ECDSA_SHA256,
+ .sign_flags = GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE},
{
- .name = "ecdsa key (q bits < h bits)",
- .key = {(void *) ecdsa_secp256r1_privkey_rfc6979, sizeof(ecdsa_secp256r1_privkey_rfc6979)-1},
- .msg = {(void *) sample, sizeof(sample)-1},
- .sig = {(void *) "\x30\x44\x02\x20\x0e\xaf\xea\x03\x9b\x20\xe9\xb4\x23\x09\xfb\x1d\x89\xe2\x13\x05\x7c\xbf\x97\x3d\xc0\xcf\xc8\xf1\x29\xed\xdd\xc8\x00\xef\x77\x19\x02\x20\x48\x61\xf0\x49\x1e\x69\x98\xb9\x45\x51\x93\xe3\x4e\x7b\x0d\x28\x4d\xdd\x71\x49\xa7\x4b\x95\xb9\x26\x1f\x13\xab\xde\x94\x09\x54", 70},
- .pk = GNUTLS_PK_ECDSA,
- .digest = GNUTLS_DIG_SHA384,
- .sigalgo = GNUTLS_SIGN_ECDSA_SHA384,
- .sign_flags = GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE
- },
+ .name = "ecdsa key (q bits < h bits)",
+ .key = {(void *)ecdsa_secp256r1_privkey_rfc6979,
+ sizeof(ecdsa_secp256r1_privkey_rfc6979) - 1},
+ .msg = {(void *)sample, sizeof(sample) - 1},
+ .sig = {(void *)
+ "\x30\x44\x02\x20\x0e\xaf\xea\x03\x9b\x20\xe9\xb4\x23\x09\xfb\x1d\x89\xe2\x13\x05\x7c\xbf\x97\x3d\xc0\xcf\xc8\xf1\x29\xed\xdd\xc8\x00\xef\x77\x19\x02\x20\x48\x61\xf0\x49\x1e\x69\x98\xb9\x45\x51\x93\xe3\x4e\x7b\x0d\x28\x4d\xdd\x71\x49\xa7\x4b\x95\xb9\x26\x1f\x13\xab\xde\x94\x09\x54",
+ 70},
+ .pk = GNUTLS_PK_ECDSA,
+ .digest = GNUTLS_DIG_SHA384,
+ .sigalgo = GNUTLS_SIGN_ECDSA_SHA384,
+ .sign_flags = GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE},
{
- .name = "ecdsa key (q bits > h bits)",
- .key = {(void *) ecdsa_secp256r1_privkey_rfc6979, sizeof(ecdsa_secp256r1_privkey_rfc6979)-1},
- .msg = {(void *) sample, sizeof(sample)-1},
- .sig = {(void *) "\x30\x45\x02\x20\x53\xb2\xff\xf5\xd1\x75\x2b\x2c\x68\x9d\xf2\x57\xc0\x4c\x40\xa5\x87\xfa\xba\xbb\x3f\x6f\xc2\x70\x2f\x13\x43\xaf\x7c\xa9\xaa\x3f\x02\x21\x00\xb9\xaf\xb6\x4f\xdc\x03\xdc\x1a\x13\x1c\x7d\x23\x86\xd1\x1e\x34\x9f\x07\x0a\xa4\x32\xa4\xac\xc9\x18\xbe\xa9\x88\xbf\x75\xc7\x4c", 71},
- .pk = GNUTLS_PK_ECDSA,
- .digest = GNUTLS_DIG_SHA224,
- .sigalgo = GNUTLS_SIGN_ECDSA_SHA224,
- .sign_flags = GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE
- }
+ .name = "ecdsa key (q bits > h bits)",
+ .key = {(void *)ecdsa_secp256r1_privkey_rfc6979,
+ sizeof(ecdsa_secp256r1_privkey_rfc6979) - 1},
+ .msg = {(void *)sample, sizeof(sample) - 1},
+ .sig = {(void *)
+ "\x30\x45\x02\x20\x53\xb2\xff\xf5\xd1\x75\x2b\x2c\x68\x9d\xf2\x57\xc0\x4c\x40\xa5\x87\xfa\xba\xbb\x3f\x6f\xc2\x70\x2f\x13\x43\xaf\x7c\xa9\xaa\x3f\x02\x21\x00\xb9\xaf\xb6\x4f\xdc\x03\xdc\x1a\x13\x1c\x7d\x23\x86\xd1\x1e\x34\x9f\x07\x0a\xa4\x32\xa4\xac\xc9\x18\xbe\xa9\x88\xbf\x75\xc7\x4c",
+ 71},
+ .pk = GNUTLS_PK_ECDSA,
+ .digest = GNUTLS_DIG_SHA224,
+ .sigalgo = GNUTLS_SIGN_ECDSA_SHA224,
+ .sign_flags = GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE}
};
#define testfail(fmt, ...) \
@@ -153,7 +160,8 @@ void doit(void)
gnutls_global_set_log_level(6);
for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
- success("testing: %s - %s", tests[i].name, gnutls_sign_algorithm_get_name(tests[i].sigalgo));
+ success("testing: %s - %s", tests[i].name,
+ gnutls_sign_algorithm_get_name(tests[i].sigalgo));
ret = gnutls_pubkey_init(&pubkey);
if (ret < 0)
@@ -166,16 +174,22 @@ void doit(void)
signature.data = NULL;
signature.size = 0;
- ret = gnutls_privkey_import_x509_raw(privkey, &tests[i].key, GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_privkey_import_x509_raw(privkey, &tests[i].key,
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
testfail("gnutls_privkey_import_x509_raw\n");
- ret = gnutls_privkey_sign_data(privkey, tests[i].digest, tests[i].sign_flags,
- &tests[i].msg, &signature);
+ ret =
+ gnutls_privkey_sign_data(privkey, tests[i].digest,
+ tests[i].sign_flags, &tests[i].msg,
+ &signature);
if (gnutls_fips140_mode_enabled()) {
/* deterministic ECDSA/DSA is prohibited under FIPS */
if (ret != GNUTLS_E_INVALID_REQUEST)
- testfail("gnutls_privkey_sign_data unexpectedly succeeds\n");
+ testfail
+ ("gnutls_privkey_sign_data unexpectedly succeeds\n");
success(" - skipping\n");
goto next;
} else {
@@ -184,7 +198,8 @@ void doit(void)
}
if (signature.size != tests[i].sig.size ||
- memcmp(signature.data, tests[i].sig.data, signature.size) != 0)
+ memcmp(signature.data, tests[i].sig.data,
+ signature.size) != 0)
testfail("signature does not match");
ret = gnutls_pubkey_import_privkey(pubkey, privkey, 0, 0);
@@ -192,13 +207,13 @@ void doit(void)
testfail("gnutls_pubkey_import_privkey\n");
ret =
- gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo, 0, &tests[i].msg,
- &signature);
+ gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo, 0,
+ &tests[i].msg, &signature);
if (ret < 0)
testfail("gnutls_pubkey_verify_data2\n");
success(" - pass");
- next:
+ next:
gnutls_free(signature.data);
gnutls_privkey_deinit(privkey);
gnutls_pubkey_deinit(pubkey);
diff --git a/tests/sign-verify-ed25519-rfc8080.c b/tests/sign-verify-ed25519-rfc8080.c
index 51857aa061..343af225c2 100644
--- a/tests/sign-verify-ed25519-rfc8080.c
+++ b/tests/sign-verify-ed25519-rfc8080.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -28,9 +28,9 @@
#include <string.h>
#include <sys/types.h>
#ifndef _WIN32
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <gnutls/gnutls.h>
@@ -124,7 +124,9 @@ void doit(void)
if (ret < 0)
fail("gnutls_privkey_init\n");
- ret = gnutls_pubkey_import_ecc_raw(pubkey, GNUTLS_ECC_CURVE_ED25519, &_ed25519_x, NULL);
+ ret =
+ gnutls_pubkey_import_ecc_raw(pubkey, GNUTLS_ECC_CURVE_ED25519,
+ &_ed25519_x, NULL);
if (ret < 0)
fail("gnutls_x509_pubkey_import_ecc_raw\n");
diff --git a/tests/sign-verify-ext.c b/tests/sign-verify-ext.c
index 4ec946d3fe..73ef50d8a6 100644
--- a/tests/sign-verify-ext.c
+++ b/tests/sign-verify-ext.c
@@ -22,7 +22,7 @@
/* This tests the gnutls_privkey_import_ext2() APIs */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -62,32 +62,34 @@ const gnutls_datum_t sha256_hash_data = {
};
const gnutls_datum_t raw_data = {
- (void *) "hello",
+ (void *)"hello",
5
};
-
struct key_cb_data {
- gnutls_privkey_t rkey; /* the real thing */
+ gnutls_privkey_t rkey; /* the real thing */
};
static
-int key_cb_sign_func (gnutls_privkey_t key, void* userdata, const gnutls_datum_t * data,
- gnutls_datum_t * signature)
+int key_cb_sign_func(gnutls_privkey_t key, void *userdata,
+ const gnutls_datum_t * data, gnutls_datum_t * signature)
{
struct key_cb_data *p = userdata;
-
- return gnutls_privkey_sign_hash(p->rkey, 0, GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA, data, signature);
+
+ return gnutls_privkey_sign_hash(p->rkey, 0,
+ GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA, data,
+ signature);
}
-static void key_cb_deinit_func(gnutls_privkey_t key, void* userdata)
+static void key_cb_deinit_func(gnutls_privkey_t key, void *userdata)
{
struct key_cb_data *p = userdata;
gnutls_privkey_deinit(p->rkey);
free(userdata);
}
-static gnutls_privkey_t load_virt_privkey(const gnutls_datum_t *txtkey, gnutls_pk_algorithm_t pk)
+static gnutls_privkey_t load_virt_privkey(const gnutls_datum_t * txtkey,
+ gnutls_pk_algorithm_t pk)
{
gnutls_privkey_t privkey;
struct key_cb_data *userdata;
@@ -107,12 +109,16 @@ static gnutls_privkey_t load_virt_privkey(const gnutls_datum_t *txtkey, gnutls_p
fail("gnutls_privkey_init\n");
ret =
- gnutls_privkey_import_x509_raw(userdata->rkey, txtkey, GNUTLS_X509_FMT_PEM, NULL, 0);
+ gnutls_privkey_import_x509_raw(userdata->rkey, txtkey,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0)
fail("gnutls_privkey_import\n");
- ret = gnutls_privkey_import_ext2(privkey, pk, userdata, key_cb_sign_func, NULL, key_cb_deinit_func, GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
- if (ret < 0)
+ ret =
+ gnutls_privkey_import_ext2(privkey, pk, userdata, key_cb_sign_func,
+ NULL, key_cb_deinit_func,
+ GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
+ if (ret < 0)
fail("gnutls_privkey_import_ext2\n");
return privkey;
@@ -140,10 +146,12 @@ void doit(void)
gnutls_global_set_log_level(6);
for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
- if (tests[i].pk == GNUTLS_PK_RSA_PSS || tests[i].pk == GNUTLS_PK_EDDSA_ED25519)
+ if (tests[i].pk == GNUTLS_PK_RSA_PSS
+ || tests[i].pk == GNUTLS_PK_EDDSA_ED25519)
continue;
- success("testing: %s - %s\n", tests[i].name, gnutls_sign_algorithm_get_name(tests[i].sigalgo));
+ success("testing: %s - %s\n", tests[i].name,
+ gnutls_sign_algorithm_get_name(tests[i].sigalgo));
if (tests[i].digest == GNUTLS_DIG_SHA1) {
hash_data = &sha1_hash_data;
@@ -157,31 +165,40 @@ void doit(void)
if (ret < 0)
testfail("gnutls_privkey_init\n");
- ret = gnutls_privkey_sign_hash(privkey, tests[i].digest, tests[i].sign_flags,
- hash_data, &signature2);
+ ret =
+ gnutls_privkey_sign_hash(privkey, tests[i].digest,
+ tests[i].sign_flags, hash_data,
+ &signature2);
if (ret < 0)
testfail("gnutls_privkey_sign_hash\n");
- ret = gnutls_privkey_sign_data(privkey, tests[i].digest, tests[i].sign_flags,
- &raw_data, &signature);
+ ret =
+ gnutls_privkey_sign_data(privkey, tests[i].digest,
+ tests[i].sign_flags, &raw_data,
+ &signature);
if (ret < 0)
testfail("gnutls_x509_privkey_sign_hash\n");
- ret = gnutls_pubkey_import_x509_raw(pubkey, &tests[i].cert, GNUTLS_X509_FMT_PEM, 0);
+ ret =
+ gnutls_pubkey_import_x509_raw(pubkey, &tests[i].cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0)
testfail("gnutls_x509_pubkey_import\n");
ret =
- gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1, hash_data,
- &signature);
+ gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_pubkey_verify_hash2\n");
ret =
- gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1, hash_data,
- &signature2);
+ gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ hash_data, &signature2);
if (ret < 0)
- testfail("gnutls_pubkey_verify_hash2-1 (hashed data)\n");
+ testfail
+ ("gnutls_pubkey_verify_hash2-1 (hashed data)\n");
/* test the raw interface */
gnutls_free(signature.data);
@@ -194,11 +211,10 @@ void doit(void)
gnutls_privkey_sign_hash(privkey,
tests[i].digest,
GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_privkey_sign_hash: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
sign_algo =
gnutls_pk_to_sign
@@ -207,29 +223,28 @@ void doit(void)
ret =
gnutls_pubkey_verify_hash2(pubkey, sign_algo,
- GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
+ hash_data, &signature);
if (ret < 0)
- testfail("gnutls_pubkey_verify_hash-3 (raw hashed data)\n");
+ testfail
+ ("gnutls_pubkey_verify_hash-3 (raw hashed data)\n");
gnutls_free(signature.data);
/* test the legacy API */
ret =
gnutls_privkey_sign_raw_data(privkey, 0,
- hash_data,
- &signature);
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_privkey_sign_raw_data: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
ret =
gnutls_pubkey_verify_hash2(pubkey, sign_algo,
- GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
+ hash_data, &signature);
if (ret < 0)
- testfail("gnutls_pubkey_verify_hash-4 (legacy raw hashed data)\n");
+ testfail
+ ("gnutls_pubkey_verify_hash-4 (legacy raw hashed data)\n");
}
gnutls_free(signature.data);
gnutls_free(signature2.data);
diff --git a/tests/sign-verify-ext4.c b/tests/sign-verify-ext4.c
index c01beff33f..1aba291b2e 100644
--- a/tests/sign-verify-ext4.c
+++ b/tests/sign-verify-ext4.c
@@ -22,7 +22,7 @@
/* This tests the gnutls_privkey_import_ext4() APIs */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -62,19 +62,19 @@ const gnutls_datum_t sha256_hash_data = {
};
const gnutls_datum_t raw_data = {
- (void *) "hello",
+ (void *)"hello",
5
};
-
struct key_cb_data {
- gnutls_privkey_t rkey; /* the real thing */
+ gnutls_privkey_t rkey; /* the real thing */
unsigned pk;
unsigned sig;
unsigned bits;
};
-static int key_cb_info_func(gnutls_privkey_t key, unsigned int flags, void *userdata)
+static int key_cb_info_func(gnutls_privkey_t key, unsigned int flags,
+ void *userdata)
{
struct key_cb_data *p = userdata;
@@ -95,43 +95,51 @@ static int key_cb_info_func(gnutls_privkey_t key, unsigned int flags, void *user
}
static
-int key_cb_sign_data_func (gnutls_privkey_t key, gnutls_sign_algorithm_t sig,
- void* userdata, unsigned int flags, const gnutls_datum_t *data,
- gnutls_datum_t *signature)
+int key_cb_sign_data_func(gnutls_privkey_t key, gnutls_sign_algorithm_t sig,
+ void *userdata, unsigned int flags,
+ const gnutls_datum_t * data,
+ gnutls_datum_t * signature)
{
struct key_cb_data *p = userdata;
if (debug)
- fprintf(stderr, "signing data with: %s\n", gnutls_sign_get_name(sig));
+ fprintf(stderr, "signing data with: %s\n",
+ gnutls_sign_get_name(sig));
return gnutls_privkey_sign_data2(p->rkey, sig, 0, data, signature);
}
static
-int key_cb_sign_hash_func (gnutls_privkey_t key, gnutls_sign_algorithm_t sig,
- void* userdata, unsigned int flags, const gnutls_datum_t *data,
- gnutls_datum_t *signature)
+int key_cb_sign_hash_func(gnutls_privkey_t key, gnutls_sign_algorithm_t sig,
+ void *userdata, unsigned int flags,
+ const gnutls_datum_t * data,
+ gnutls_datum_t * signature)
{
struct key_cb_data *p = userdata;
if (sig == GNUTLS_SIGN_RSA_RAW) {
if (debug)
fprintf(stderr, "signing digestinfo with: raw RSA\n");
- return gnutls_privkey_sign_hash(p->rkey, 0, GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA, data, signature);
+ return gnutls_privkey_sign_hash(p->rkey, 0,
+ GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
+ data, signature);
} else {
if (debug)
- fprintf(stderr, "signing hash with: %s\n", gnutls_sign_get_name(sig));
- return gnutls_privkey_sign_hash2(p->rkey, sig, 0, data, signature);
+ fprintf(stderr, "signing hash with: %s\n",
+ gnutls_sign_get_name(sig));
+ return gnutls_privkey_sign_hash2(p->rkey, sig, 0, data,
+ signature);
}
}
-static void key_cb_deinit_func(gnutls_privkey_t key, void* userdata)
+static void key_cb_deinit_func(gnutls_privkey_t key, void *userdata)
{
struct key_cb_data *p = userdata;
gnutls_privkey_deinit(p->rkey);
free(userdata);
}
-static gnutls_privkey_t load_virt_privkey(const gnutls_datum_t *txtkey, gnutls_pk_algorithm_t pk,
+static gnutls_privkey_t load_virt_privkey(const gnutls_datum_t * txtkey,
+ gnutls_pk_algorithm_t pk,
gnutls_sign_algorithm_t sig)
{
gnutls_privkey_t privkey;
@@ -152,7 +160,8 @@ static gnutls_privkey_t load_virt_privkey(const gnutls_datum_t *txtkey, gnutls_p
fail("gnutls_privkey_init\n");
ret =
- gnutls_privkey_import_x509_raw(userdata->rkey, txtkey, GNUTLS_X509_FMT_PEM, NULL, 0);
+ gnutls_privkey_import_x509_raw(userdata->rkey, txtkey,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0)
fail("gnutls_privkey_import\n");
@@ -196,7 +205,7 @@ void doit(void)
for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
if (debug)
- success("loop %d: %s\n", (int) i, tests[i].name);
+ success("loop %d: %s\n", (int)i, tests[i].name);
if (tests[i].digest == GNUTLS_DIG_SHA1) {
hash_data = &sha1_hash_data;
@@ -204,42 +213,51 @@ void doit(void)
hash_data = &sha256_hash_data;
}
- privkey = load_virt_privkey(&tests[i].key, tests[i].pk, tests[i].sigalgo);
+ privkey =
+ load_virt_privkey(&tests[i].key, tests[i].pk,
+ tests[i].sigalgo);
ret = gnutls_pubkey_init(&pubkey);
if (ret < 0)
testfail("gnutls_privkey_init\n");
-
- ret = gnutls_privkey_sign_data2(privkey, tests[i].sigalgo, tests[i].sign_flags,
- &raw_data, &signature);
+ ret =
+ gnutls_privkey_sign_data2(privkey, tests[i].sigalgo,
+ tests[i].sign_flags, &raw_data,
+ &signature);
if (ret < 0)
testfail("gnutls_x509_privkey_sign_hash\n");
- ret = gnutls_pubkey_import_x509_raw(pubkey, &tests[i].cert, GNUTLS_X509_FMT_PEM, 0);
+ ret =
+ gnutls_pubkey_import_x509_raw(pubkey, &tests[i].cert,
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0)
testfail("gnutls_x509_pubkey_import\n");
ret =
- gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1, &raw_data,
- &signature);
+ gnutls_pubkey_verify_data2(pubkey, tests[i].sigalgo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ &raw_data, &signature);
if (ret < 0)
testfail("gnutls_pubkey_verify_data2\n");
gnutls_free(signature.data);
-
if (!tests[i].data_only) {
- ret = gnutls_privkey_sign_hash(privkey, tests[i].digest, tests[i].sign_flags,
- hash_data, &signature2);
+ ret =
+ gnutls_privkey_sign_hash(privkey, tests[i].digest,
+ tests[i].sign_flags,
+ hash_data, &signature2);
if (ret < 0)
testfail("gnutls_privkey_sign_hash\n");
ret =
- gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1, hash_data,
- &signature2);
+ gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ hash_data, &signature2);
if (ret < 0)
- testfail("gnutls_pubkey_verify_hash2-1 (hashed data)\n");
+ testfail
+ ("gnutls_pubkey_verify_hash2-1 (hashed data)\n");
gnutls_free(signature2.data);
}
@@ -251,11 +269,10 @@ void doit(void)
gnutls_privkey_sign_hash(privkey,
tests[i].digest,
GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_privkey_sign_hash: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
sign_algo =
gnutls_pk_to_sign
@@ -264,29 +281,28 @@ void doit(void)
ret =
gnutls_pubkey_verify_hash2(pubkey, sign_algo,
- GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
+ hash_data, &signature);
if (ret < 0)
- testfail("gnutls_pubkey_verify_hash-3 (raw hashed data)\n");
+ testfail
+ ("gnutls_pubkey_verify_hash-3 (raw hashed data)\n");
gnutls_free(signature.data);
/* test the legacy API */
ret =
gnutls_privkey_sign_raw_data(privkey, 0,
- hash_data,
- &signature);
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_privkey_sign_raw_data: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
ret =
gnutls_pubkey_verify_hash2(pubkey, sign_algo,
- GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
+ hash_data, &signature);
if (ret < 0)
- testfail("gnutls_pubkey_verify_hash-4 (legacy raw hashed data)\n");
+ testfail
+ ("gnutls_pubkey_verify_hash-4 (legacy raw hashed data)\n");
}
gnutls_free(signature.data);
gnutls_free(signature2.data);
diff --git a/tests/sign-verify-newapi.c b/tests/sign-verify-newapi.c
index 7dae1b18a2..68efe03e4d 100644
--- a/tests/sign-verify-newapi.c
+++ b/tests/sign-verify-newapi.c
@@ -22,7 +22,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -76,7 +76,7 @@ const gnutls_datum_t sha1_invalid_hash_data = {
};
const gnutls_datum_t raw_data = {
- (void *) "hello",
+ (void *)"hello",
5
};
@@ -108,7 +108,8 @@ void doit(void)
if (tests[i].pk == GNUTLS_PK_EDDSA_ED25519)
continue;
- success("testing: %s - %s\n", tests[i].name, gnutls_sign_algorithm_get_name(tests[i].sigalgo));
+ success("testing: %s - %s\n", tests[i].name,
+ gnutls_sign_algorithm_get_name(tests[i].sigalgo));
if (tests[i].digest == GNUTLS_DIG_SHA1) {
hash_data = &sha1_hash_data;
@@ -124,7 +125,7 @@ void doit(void)
ret =
gnutls_x509_privkey_import(key, &tests[i].key,
- GNUTLS_X509_FMT_PEM);
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
testfail("gnutls_x509_privkey_import\n");
@@ -165,50 +166,58 @@ void doit(void)
testfail("gnutls_x509_pubkey_import\n");
ret =
- gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1, hash_data,
- &signature);
+ gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_x509_pubkey_verify_hash2\n");
/* Test functionality of GNUTLS_VERIFY_DISABLE_CA_SIGN (see issue #754) */
ret =
- gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo, GNUTLS_VERIFY_DISABLE_CA_SIGN, hash_data,
- &signature);
+ gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
+ GNUTLS_VERIFY_DISABLE_CA_SIGN,
+ hash_data, &signature);
if (ret < 0)
- testfail("gnutls_x509_pubkey_verify_hash2 with GNUTLS_VERIFY_DISABLE_CA_SIGN\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_hash2 with GNUTLS_VERIFY_DISABLE_CA_SIGN\n");
ret =
- gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1, hash_data,
- &signature2);
+ gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ hash_data, &signature2);
if (ret < 0)
- testfail("gnutls_x509_pubkey_verify_hash-1 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_hash-1 (hashed data)\n");
/* should fail */
ret =
gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
- invalid_hash_data,
- &signature2);
+ invalid_hash_data, &signature2);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
- testfail("gnutls_x509_pubkey_verify_hash-2 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_hash-2 (hashed data)\n");
sign_algo =
gnutls_pk_to_sign(gnutls_pubkey_get_pk_algorithm
(pubkey, NULL), tests[i].digest);
ret =
- gnutls_pubkey_verify_hash2(pubkey, sign_algo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
- hash_data, &signature2);
+ gnutls_pubkey_verify_hash2(pubkey, sign_algo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ hash_data, &signature2);
if (ret < 0)
- testfail("gnutls_x509_pubkey_verify_hash2-1 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_hash2-1 (hashed data)\n");
/* should fail */
ret =
- gnutls_pubkey_verify_hash2(pubkey, sign_algo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
- invalid_hash_data,
- &signature2);
+ gnutls_pubkey_verify_hash2(pubkey, sign_algo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ invalid_hash_data, &signature2);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
- testfail("gnutls_x509_pubkey_verify_hash2-2 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_hash2-2 (hashed data)\n");
/* test the raw interface */
gnutls_free(signature.data);
@@ -219,38 +228,36 @@ void doit(void)
ret =
gnutls_privkey_sign_hash2(privkey,
- tests[i].sigalgo,
- GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ tests[i].sigalgo,
+ GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_privkey_sign_hash: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
ret =
gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
- GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
+ hash_data, &signature);
if (ret < 0)
- testfail("gnutls_pubkey_verify_hash-3 (raw hashed data)\n");
+ testfail
+ ("gnutls_pubkey_verify_hash-3 (raw hashed data)\n");
gnutls_free(signature.data);
/* test the legacy API */
ret =
gnutls_privkey_sign_raw_data(privkey, 0,
- hash_data,
- &signature);
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_privkey_sign_raw_data: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
ret =
gnutls_pubkey_verify_hash2(pubkey, sign_algo,
- GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
+ hash_data, &signature);
if (ret < 0)
- testfail("gnutls_pubkey_verify_hash-4 (legacy raw hashed data)\n");
+ testfail
+ ("gnutls_pubkey_verify_hash-4 (legacy raw hashed data)\n");
}
gnutls_free(signature.data);
gnutls_free(signature2.data);
diff --git a/tests/sign-verify.c b/tests/sign-verify.c
index 4039159279..b37c7eb74a 100644
--- a/tests/sign-verify.c
+++ b/tests/sign-verify.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -76,7 +76,7 @@ const gnutls_datum_t sha1_invalid_hash_data = {
};
const gnutls_datum_t raw_data = {
- (void *) "hello",
+ (void *)"hello",
5
};
@@ -108,7 +108,8 @@ void doit(void)
if (tests[i].pk == GNUTLS_PK_EDDSA_ED25519)
continue;
- success("testing: %s - %s\n", tests[i].name, gnutls_sign_algorithm_get_name(tests[i].sigalgo));
+ success("testing: %s - %s\n", tests[i].name,
+ gnutls_sign_algorithm_get_name(tests[i].sigalgo));
if (tests[i].digest == GNUTLS_DIG_SHA1) {
hash_data = &sha1_hash_data;
@@ -124,7 +125,7 @@ void doit(void)
ret =
gnutls_x509_privkey_import(key, &tests[i].key,
- GNUTLS_X509_FMT_PEM);
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
testfail("gnutls_x509_privkey_import\n");
@@ -140,13 +141,17 @@ void doit(void)
if (ret < 0)
testfail("gnutls_privkey_import_x509\n");
- ret = gnutls_privkey_sign_hash(privkey, tests[i].digest, tests[i].sign_flags,
- hash_data, &signature2);
+ ret =
+ gnutls_privkey_sign_hash(privkey, tests[i].digest,
+ tests[i].sign_flags, hash_data,
+ &signature2);
if (ret < 0)
testfail("gnutls_privkey_sign_hash\n");
- ret = gnutls_privkey_sign_data(privkey, tests[i].digest, tests[i].sign_flags,
- &raw_data, &signature);
+ ret =
+ gnutls_privkey_sign_data(privkey, tests[i].digest,
+ tests[i].sign_flags, &raw_data,
+ &signature);
if (ret < 0)
testfail("gnutls_x509_privkey_sign_hash\n");
@@ -165,43 +170,49 @@ void doit(void)
testfail("gnutls_x509_pubkey_import\n");
ret =
- gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1, hash_data,
- &signature);
+ gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_x509_pubkey_verify_hash2\n");
ret =
- gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1, hash_data,
- &signature2);
+ gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ hash_data, &signature2);
if (ret < 0)
- testfail("gnutls_x509_pubkey_verify_hash-1 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_hash-1 (hashed data)\n");
/* should fail */
ret =
gnutls_pubkey_verify_hash2(pubkey, tests[i].sigalgo,
GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
- invalid_hash_data,
- &signature2);
+ invalid_hash_data, &signature2);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
- testfail("gnutls_x509_pubkey_verify_hash-2 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_hash-2 (hashed data)\n");
sign_algo =
gnutls_pk_to_sign(gnutls_pubkey_get_pk_algorithm
(pubkey, NULL), tests[i].digest);
ret =
- gnutls_pubkey_verify_hash2(pubkey, sign_algo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
- hash_data, &signature2);
+ gnutls_pubkey_verify_hash2(pubkey, sign_algo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ hash_data, &signature2);
if (ret < 0)
- testfail("gnutls_x509_pubkey_verify_hash2-1 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_hash2-1 (hashed data)\n");
/* should fail */
ret =
- gnutls_pubkey_verify_hash2(pubkey, sign_algo, GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
- invalid_hash_data,
- &signature2);
+ gnutls_pubkey_verify_hash2(pubkey, sign_algo,
+ GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1,
+ invalid_hash_data, &signature2);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
- testfail("gnutls_x509_pubkey_verify_hash2-2 (hashed data)\n");
+ testfail
+ ("gnutls_x509_pubkey_verify_hash2-2 (hashed data)\n");
/* test the raw interface */
gnutls_free(signature.data);
@@ -213,11 +224,10 @@ void doit(void)
gnutls_privkey_sign_hash(privkey,
tests[i].digest,
GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_privkey_sign_hash: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
sign_algo =
gnutls_pk_to_sign
@@ -226,29 +236,28 @@ void doit(void)
ret =
gnutls_pubkey_verify_hash2(pubkey, sign_algo,
- GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
+ hash_data, &signature);
if (ret < 0)
- testfail("gnutls_pubkey_verify_hash-3 (raw hashed data)\n");
+ testfail
+ ("gnutls_pubkey_verify_hash-3 (raw hashed data)\n");
gnutls_free(signature.data);
/* test the legacy API */
ret =
gnutls_privkey_sign_raw_data(privkey, 0,
- hash_data,
- &signature);
+ hash_data, &signature);
if (ret < 0)
testfail("gnutls_privkey_sign_raw_data: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
ret =
gnutls_pubkey_verify_hash2(pubkey, sign_algo,
- GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
+ hash_data, &signature);
if (ret < 0)
- testfail("gnutls_pubkey_verify_hash-4 (legacy raw hashed data)\n");
+ testfail
+ ("gnutls_pubkey_verify_hash-4 (legacy raw hashed data)\n");
}
gnutls_free(signature.data);
gnutls_free(signature2.data);
diff --git a/tests/simple.c b/tests/simple.c
index b120f35e15..626d8714c5 100644
--- a/tests/simple.c
+++ b/tests/simple.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -47,23 +47,23 @@ void doit(void)
if (debug) {
printf("GnuTLS header version %s.\n", GNUTLS_VERSION);
printf("GnuTLS library version %s.\n",
- gnutls_check_version(NULL));
+ gnutls_check_version(NULL));
}
- if (!gnutls_check_version_numeric(GNUTLS_VERSION_MAJOR, GNUTLS_VERSION_MINOR, GNUTLS_VERSION_PATCH)) {
+ if (!gnutls_check_version_numeric
+ (GNUTLS_VERSION_MAJOR, GNUTLS_VERSION_MINOR,
+ GNUTLS_VERSION_PATCH)) {
fail("error in gnutls_check_version_numeric 1\n");
exit(1);
}
CHECK_FAIL(99, 9, 9)
- CHECK_FAIL(90, 1, 0)
- CHECK_FAIL(90, 0, 0)
-
- CHECK_OK(2, 0, 0)
- CHECK_OK(2, 99, 99)
- CHECK_OK(3, 0, 0)
-
- if (!gnutls_check_version(GNUTLS_VERSION))
+ CHECK_FAIL(90, 1, 0)
+ CHECK_FAIL(90, 0, 0)
+ CHECK_OK(2, 0, 0)
+ CHECK_OK(2, 99, 99)
+ CHECK_OK(3, 0, 0)
+ if (!gnutls_check_version(GNUTLS_VERSION))
fail("gnutls_check_version ERROR\n");
{
@@ -78,12 +78,11 @@ void doit(void)
for (i = 0; algs[i]; i++) {
if (debug)
printf("pk_list[%d] = %d = %s = %d\n",
- (int) i, algs[i],
- gnutls_pk_algorithm_get_name(algs
+ (int)i, algs[i],
+ gnutls_pk_algorithm_get_name(algs
[i]),
- gnutls_pk_get_id
- (gnutls_pk_algorithm_get_name
- (algs[i])));
+ gnutls_pk_get_id
+ (gnutls_pk_algorithm_get_name(algs[i])));
if (gnutls_pk_get_id
(gnutls_pk_algorithm_get_name(algs[i]))
!= algs[i])
@@ -112,11 +111,11 @@ void doit(void)
if (debug)
printf("sign_list[%d] = %d = %s = %d\n",
- (int) i, algs[i],
- gnutls_sign_algorithm_get_name(algs
+ (int)i, algs[i],
+ gnutls_sign_algorithm_get_name(algs
[i]),
- gnutls_sign_get_id
- (gnutls_sign_algorithm_get_name
+ gnutls_sign_get_id
+ (gnutls_sign_algorithm_get_name
(algs[i])));
if (gnutls_sign_get_id
(gnutls_sign_algorithm_get_name(algs[i])) !=
@@ -127,15 +126,15 @@ void doit(void)
hash = gnutls_sign_get_hash_algorithm(algs[i]);
if (hash != GNUTLS_DIG_UNKNOWN) {
const char *name = gnutls_digest_get_name(hash);
- gnutls_digest_algorithm_t hash2 = gnutls_digest_get_id(name);
+ gnutls_digest_algorithm_t hash2 =
+ gnutls_digest_get_id(name);
/* gnutls_digest_get_id returns
* GNUTLS_DIG_UNKNOWN if the algorithm is not
* compiled in.
*/
- if (hash2 != GNUTLS_DIG_UNKNOWN && hash2 != hash)
- fail("gnutls_digest id for %s doesn't match %s\n",
- gnutls_sign_algorithm_get_name(algs[i]),
- name);
+ if (hash2 != GNUTLS_DIG_UNKNOWN
+ && hash2 != hash)
+ fail("gnutls_digest id for %s doesn't match %s\n", gnutls_sign_algorithm_get_name(algs[i]), name);
}
}
diff --git a/tests/slow/cipher-api-test.c b/tests/slow/cipher-api-test.c
index 1d267ce312..34d46d8e90 100644
--- a/tests/slow/cipher-api-test.c
+++ b/tests/slow/cipher-api-test.c
@@ -43,16 +43,16 @@ int main(int argc, char **argv)
}
#else
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <assert.h>
-#include <utils.h>
-
-#define AES_GCM_ENCRYPT_PLAINTEXT_MAX ((1ULL << 36) - 32)
-#if SIZE_MAX >= AES_GCM_ENCRYPT_PLAINTEXT_MAX
-#define TEST_AES_GCM_ENCRYPT_PLAINTEXT_SIZE 1
-#endif
+# include <sys/types.h>
+# include <sys/wait.h>
+# include <unistd.h>
+# include <assert.h>
+# include <utils.h>
+
+# define AES_GCM_ENCRYPT_PLAINTEXT_MAX ((1ULL << 36) - 32)
+# if SIZE_MAX >= AES_GCM_ENCRYPT_PLAINTEXT_MAX
+# define TEST_AES_GCM_ENCRYPT_PLAINTEXT_SIZE 1
+# endif
static void tls_log_func(int level, const char *str)
{
@@ -131,15 +131,15 @@ static void test_cipher_invalid_partial(int algo)
ret = global_init();
if (ret < 0) {
- fail("Cannot initialize library\n"); /*errcode 1 */
+ fail("Cannot initialize library\n"); /*errcode 1 */
}
ret = gnutls_cipher_init(&ch, algo, &key, &iv);
if (ret < 0)
- fail("gnutls_cipher_init failed\n"); /*errcode 1 */
+ fail("gnutls_cipher_init failed\n"); /*errcode 1 */
/* try encrypting in a way that violates nettle's block conventions */
- ret = gnutls_cipher_encrypt(ch, data, sizeof(data)-1);
+ ret = gnutls_cipher_encrypt(ch, data, sizeof(data) - 1);
if (ret >= 0)
fail("succeeded in encrypting partial data on block cipher\n");
if (ret != GNUTLS_E_INVALID_REQUEST)
@@ -160,7 +160,7 @@ static void test_aead_happy(int algo)
uint8_t key16[64];
uint8_t iv16[32];
uint8_t auth[32];
- uint8_t ctext[128+32];
+ uint8_t ctext[128 + 32];
size_t ctext_len;
uint8_t ptext[128];
uint8_t otext[128];
@@ -211,8 +211,7 @@ static void test_aead_happy(int algo)
ret = gnutls_aead_cipher_decrypt(ch, iv.data, iv.size,
auth, sizeof(auth), tag_len,
- ctext, ctext_len,
- ptext, &ptext_len);
+ ctext, ctext_len, ptext, &ptext_len);
if (ret < 0)
fail("could not decrypt data: %s\n", gnutls_strerror(ret));
@@ -256,14 +255,14 @@ static void test_aead_invalid_add_auth(int algo)
ret = global_init();
if (ret < 0) {
- fail("Cannot initialize library\n"); /*errcode 1 */
+ fail("Cannot initialize library\n"); /*errcode 1 */
}
ret = gnutls_cipher_init(&ch, algo, &key, &iv);
if (ret < 0)
- fail("gnutls_cipher_init failed\n"); /*errcode 1 */
+ fail("gnutls_cipher_init failed\n"); /*errcode 1 */
- ret = gnutls_cipher_add_auth(ch, data, sizeof(data)-1);
+ ret = gnutls_cipher_add_auth(ch, data, sizeof(data) - 1);
if (ret < 0)
fail("could not add auth data\n");
@@ -309,15 +308,15 @@ static void test_aead_invalid_partial_encrypt(int algo)
ret = global_init();
if (ret < 0) {
- fail("Cannot initialize library\n"); /*errcode 1 */
+ fail("Cannot initialize library\n"); /*errcode 1 */
}
ret = gnutls_cipher_init(&ch, algo, &key, &iv);
if (ret < 0)
- fail("gnutls_cipher_init failed\n"); /*errcode 1 */
+ fail("gnutls_cipher_init failed\n"); /*errcode 1 */
/* try encrypting in a way that violates nettle's AEAD conventions */
- ret = gnutls_cipher_encrypt(ch, data, sizeof(data)-1);
+ ret = gnutls_cipher_encrypt(ch, data, sizeof(data) - 1);
if (ret < 0)
fail("could not encrypt data\n");
@@ -343,7 +342,7 @@ static void test_aead_invalid_short_decrypt(int algo)
uint8_t key16[64];
uint8_t iv16[32];
uint8_t auth[32];
- uint8_t ctext[128+32];
+ uint8_t ctext[128 + 32];
size_t ctext_len;
uint8_t ptext[128];
size_t ptext_len;
@@ -392,8 +391,7 @@ static void test_aead_invalid_short_decrypt(int algo)
ptext_len = 0;
ret = gnutls_aead_cipher_decrypt(ch, iv.data, iv.size,
auth, sizeof(auth), tag_len,
- ctext, ctext_len,
- ptext, &ptext_len);
+ ctext, ctext_len, ptext, &ptext_len);
if (ret >= 0)
fail("succeeded in decrypting data onto a short buffer\n");
if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER)
@@ -407,7 +405,7 @@ static void test_aead_invalid_short_decrypt(int algo)
return;
}
-#ifdef TEST_AES_GCM_ENCRYPT_PLAINTEXT_SIZE
+# ifdef TEST_AES_GCM_ENCRYPT_PLAINTEXT_SIZE
/* Test whether an invalid call to gnutls_cipher_encrypt() with too
* long message is caught */
static void test_aead_invalid_too_long_encrypt(int algo)
@@ -443,12 +441,12 @@ static void test_aead_invalid_too_long_encrypt(int algo)
ret = global_init();
if (ret < 0) {
- fail("Cannot initialize library\n"); /*errcode 1 */
+ fail("Cannot initialize library\n"); /*errcode 1 */
}
ret = gnutls_cipher_init(&ch, algo, &key, &iv);
if (ret < 0)
- fail("gnutls_cipher_init failed\n"); /*errcode 1 */
+ fail("gnutls_cipher_init failed\n"); /*errcode 1 */
/* Test exceeding AES-GCM plaintext limit */
ret = gnutls_cipher_encrypt(ch, data, sizeof(data));
@@ -473,7 +471,7 @@ static void test_aead_invalid_too_long_encrypt(int algo)
gnutls_global_deinit();
return;
}
-#endif
+# endif
static void check_status(int status)
{
@@ -490,7 +488,8 @@ static void check_status(int status)
typedef void subtest(int algo);
-static void fork_subtest(subtest func, int algo) {
+static void fork_subtest(subtest func, int algo)
+{
pid_t child;
child = fork();
@@ -539,10 +538,11 @@ void start(const char *name, int algo, unsigned aead)
success("trying %s: test_aead_invalid_short_decrypt\n", name);
fork_subtest(test_aead_invalid_short_decrypt, algo);
-#if TEST_AES_GCM_ENCRYPT_PLAINTEXT_SIZE
- success("trying %s: test_aead_invalid_too_long_encrypt\n", name);
+# if TEST_AES_GCM_ENCRYPT_PLAINTEXT_SIZE
+ success("trying %s: test_aead_invalid_too_long_encrypt\n",
+ name);
fork_subtest(test_aead_invalid_too_long_encrypt, algo);
-#endif
+# endif
}
}
diff --git a/tests/slow/cipher-openssl-compat.c b/tests/slow/cipher-openssl-compat.c
index 3d55131e52..663f73e0b1 100644
--- a/tests/slow/cipher-openssl-compat.c
+++ b/tests/slow/cipher-openssl-compat.c
@@ -43,7 +43,8 @@ static int cipher_test(const char *ocipher, gnutls_cipher_algorithm_t gcipher,
if (!evp_cipher) {
/* XXX: fix version check later when LibreSSL fixes support for aes-ccm and chacha20-poly1305 */
#ifdef LIBRESSL_VERSION_NUMBER
- fprintf(stderr, "EVP_get_cipherbyname failed for %s\n", ocipher);
+ fprintf(stderr, "EVP_get_cipherbyname failed for %s\n",
+ ocipher);
return -1;
#else
/* OpenSSL should always work! */
@@ -109,12 +110,14 @@ static int cipher_test(const char *ocipher, gnutls_cipher_algorithm_t gcipher,
assert(EVP_CipherInit_ex(ctx, evp_cipher, 0, 0, 0, 0) >
0);
- assert(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_CCM_SET_IVLEN, dnonce.size, 0)==1);
- assert(EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_CCM_SET_TAG, tag_size,
- enc_data + enc_data_size - tag_size) == 1);
+ assert(EVP_CIPHER_CTX_ctrl
+ (ctx, EVP_CTRL_CCM_SET_IVLEN, dnonce.size,
+ 0) == 1);
+ assert(EVP_CIPHER_CTX_ctrl
+ (ctx, EVP_CTRL_CCM_SET_TAG, tag_size,
+ enc_data + enc_data_size - tag_size) == 1);
- assert(EVP_CipherInit_ex(ctx, 0, 0, key, nonce, 0) >
- 0);
+ assert(EVP_CipherInit_ex(ctx, 0, 0, key, nonce, 0) > 0);
dec_data_size2 = sizeof(dec_data);
/* Add plain size */
@@ -138,16 +141,18 @@ static int cipher_test(const char *ocipher, gnutls_cipher_algorithm_t gcipher,
if (dec_data_size != sizeof(orig_plain_data)
|| memcmp(dec_data, orig_plain_data,
sizeof(orig_plain_data)) != 0) {
- fail("openssl decrypt failed for %s\n", ocipher);
+ fail("openssl decrypt failed for %s\n",
+ ocipher);
}
} else
#endif
{
- assert(EVP_CipherInit_ex(ctx, evp_cipher, NULL, key, nonce, 0) >
- 0);
+ assert(EVP_CipherInit_ex
+ (ctx, evp_cipher, NULL, key, nonce, 0) > 0);
EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_SET_TAG, tag_size,
- enc_data + enc_data_size - tag_size);
+ enc_data + enc_data_size -
+ tag_size);
dec_data_size2 = sizeof(dec_data);
@@ -163,12 +168,14 @@ static int cipher_test(const char *ocipher, gnutls_cipher_algorithm_t gcipher,
dec_data_size = dec_data_size2;
dec_data_size2 = tag_size;
- assert(EVP_CipherFinal_ex(ctx, tag, &dec_data_size2) > 0);
+ assert(EVP_CipherFinal_ex(ctx, tag, &dec_data_size2) >
+ 0);
if (dec_data_size != sizeof(orig_plain_data)
|| memcmp(dec_data, orig_plain_data,
sizeof(orig_plain_data)) != 0) {
- fail("openssl decrypt failed for %s\n", ocipher);
+ fail("openssl decrypt failed for %s\n",
+ ocipher);
}
}
@@ -199,7 +206,8 @@ void doit(void)
cipher_test("aes-256-gcm", GNUTLS_CIPHER_AES_256_GCM, 16);
#if OPENSSL_VERSION_NUMBER >= 0x10100000L
if (!gnutls_fips140_mode_enabled()) {
- cipher_test("chacha20-poly1305", GNUTLS_CIPHER_CHACHA20_POLY1305, 16);
+ cipher_test("chacha20-poly1305",
+ GNUTLS_CIPHER_CHACHA20_POLY1305, 16);
}
cipher_test("aes-128-ccm", GNUTLS_CIPHER_AES_128_CCM, 16);
cipher_test("aes-256-ccm", GNUTLS_CIPHER_AES_256_CCM, 16);
diff --git a/tests/slow/gendh.c b/tests/slow/gendh.c
index f90530508e..67fe722505 100644
--- a/tests/slow/gendh.c
+++ b/tests/slow/gendh.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
diff --git a/tests/slow/hash-large.c b/tests/slow/hash-large.c
index 71312ef369..3817e1c38b 100644
--- a/tests/slow/hash-large.c
+++ b/tests/slow/hash-large.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,30 +35,30 @@ void doit(void)
exit(77);
}
-#else /* working test */
+#else /* working test */
/* Test hashing on very large buffers >= 2^31 */
-#if !defined(_WIN32)
-# include <signal.h>
-# include <unistd.h>
+# if !defined(_WIN32)
+# include <signal.h>
+# include <unistd.h>
static void exit_77(int signo)
{
_exit(77);
}
-#endif
+# endif
-#define MIN(x,y) ((x)<(y))?(x):(y)
+# define MIN(x,y) ((x)<(y))?(x):(y)
-#include <sys/mman.h>
+# include <sys/mman.h>
static size_t _mmap_size;
static void *get_mem(size_t size)
{
void *p;
_mmap_size = size;
- p = mmap(NULL, size, PROT_READ, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+ p = mmap(NULL, size, PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
if (p == MAP_FAILED)
return NULL;
return p;
@@ -80,32 +80,30 @@ void doit(void)
if (sizeof(size) <= 4)
exit(77);
-#if !defined(_WIN32)
+# if !defined(_WIN32)
signal(SIGSEGV, exit_77);
signal(SIGBUS, exit_77);
-#endif
+# endif
global_init();
- size = (ssize_t)UINT_MAX + (ssize_t)64*1024;
+ size = (ssize_t) UINT_MAX + (ssize_t) 64 *1024;
buf = get_mem(size);
if (buf == NULL)
exit(77);
- if (size < (ssize_t)UINT_MAX)
+ if (size < (ssize_t) UINT_MAX)
exit(77);
-
- err =
- gnutls_hash_fast(GNUTLS_DIG_SHA256, buf, size,
- digest);
+ err = gnutls_hash_fast(GNUTLS_DIG_SHA256, buf, size, digest);
if (err < 0)
fail("gnutls_hash_fast(SHA256) failed: %d\n", err);
else {
-#define SHA256_HASH "\x80\x92\xd9\xbe\x54\xa0\xe9\xd7\x7c\xb8\xe4\x2d\xd3\x7c\x19\xfe\x4e\x68\x84\x33\x71\xef\x1c\x81\xd6\x44\x36\x52\x06\xd8\x4b\x8a"
+# define SHA256_HASH "\x80\x92\xd9\xbe\x54\xa0\xe9\xd7\x7c\xb8\xe4\x2d\xd3\x7c\x19\xfe\x4e\x68\x84\x33\x71\xef\x1c\x81\xd6\x44\x36\x52\x06\xd8\x4b\x8a"
if (memcmp(digest, SHA256_HASH, 32) == 0) {
if (debug)
- success("gnutls_hash_fast(SHA256) %lu OK\n", (unsigned long)size);
+ success("gnutls_hash_fast(SHA256) %lu OK\n",
+ (unsigned long)size);
} else {
hexprint(digest, 32);
fail("gnutls_hash_fast(SHA256) failure\n");
@@ -119,8 +117,8 @@ void doit(void)
size2 = size;
p = buf;
- while(size2 > 0) {
- left = MIN(64*1024, size2);
+ while (size2 > 0) {
+ left = MIN(64 * 1024, size2);
gnutls_hash(td, p, left);
size2 -= left;
p += left;
@@ -130,7 +128,8 @@ void doit(void)
gnutls_hash_deinit(td, NULL);
if (memcmp(digest, SHA256_HASH, 32) == 0) {
if (debug)
- success("gnutls_hash_fast(SHA256) %lu OK\n", (unsigned long)size);
+ success("gnutls_hash_fast(SHA256) %lu OK\n",
+ (unsigned long)size);
} else {
hexprint(digest, 32);
fail("gnutls_hash(SHA256) failure\n");
@@ -138,13 +137,11 @@ void doit(void)
/* SHA1 */
- err =
- gnutls_hash_fast(GNUTLS_DIG_SHA1, buf, size,
- digest);
+ err = gnutls_hash_fast(GNUTLS_DIG_SHA1, buf, size, digest);
if (err < 0)
fail("gnutls_hash_fast(SHA1) failed: %d\n", err);
else {
-#define SHA1_HASH "\x75\xd2\x67\x3f\xec\x73\xe4\x57\xb8\x40\xb3\xb5\xf1\xc7\xa8\x1a\x2d\x11\x7e\xd9"
+# define SHA1_HASH "\x75\xd2\x67\x3f\xec\x73\xe4\x57\xb8\x40\xb3\xb5\xf1\xc7\xa8\x1a\x2d\x11\x7e\xd9"
if (memcmp(digest, SHA1_HASH, 20) == 0) {
if (debug)
success("gnutls_hash_fast(SHA1) OK\n");
@@ -160,7 +157,7 @@ void doit(void)
if (err < 0)
fail("gnutls_hmac_fast(SHA1) failed: %d\n", err);
else {
-#define SHA1_MAC "\xe2\xe9\x84\x48\x53\xe3\x0b\xfe\x45\x04\xf6\x6b\x5b\x6d\x4d\x2c\xa3\x0f\xcf\x23"
+# define SHA1_MAC "\xe2\xe9\x84\x48\x53\xe3\x0b\xfe\x45\x04\xf6\x6b\x5b\x6d\x4d\x2c\xa3\x0f\xcf\x23"
if (memcmp(digest, SHA1_MAC, 20) == 0) {
if (debug)
success("gnutls_hmac_fast(SHA1) OK\n");
diff --git a/tests/spki-abstract.c b/tests/spki-abstract.c
index d912172d76..60e9557375 100644
--- a/tests/spki-abstract.c
+++ b/tests/spki-abstract.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -51,7 +51,7 @@ static void pubkey_check(void)
}
ret = gnutls_x509_spki_init(&spki);
- assert(ret>=0);
+ assert(ret >= 0);
ret = gnutls_pubkey_init(&pubkey);
if (ret < 0) {
@@ -62,7 +62,7 @@ static void pubkey_check(void)
ret =
gnutls_pubkey_import_x509_raw(pubkey, &server_ca3_rsa_pss2_cert,
- GNUTLS_X509_FMT_PEM, 0);
+ GNUTLS_X509_FMT_PEM, 0);
if (ret < 0) {
fprintf(stderr,
"gnutls_pubkey_import: %s\n", gnutls_strerror(ret));
@@ -72,7 +72,8 @@ static void pubkey_check(void)
ret = gnutls_pubkey_get_spki(pubkey, spki, 0);
assert(ret >= 0);
- assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >= 0);
+ assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >=
+ 0);
assert(salt_size == 32);
assert(dig == GNUTLS_DIG_SHA256);
@@ -96,7 +97,7 @@ static void key_check(void)
}
ret = gnutls_x509_spki_init(&spki);
- assert(ret>=0);
+ assert(ret >= 0);
ret = gnutls_privkey_init(&key);
if (ret < 0) {
@@ -107,29 +108,31 @@ static void key_check(void)
ret =
gnutls_privkey_import_x509_raw(key, &server_ca3_rsa_pss2_key,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0) {
fprintf(stderr,
- "gnutls_privkey_import: %s\n",
- gnutls_strerror(ret));
+ "gnutls_privkey_import: %s\n", gnutls_strerror(ret));
exit(1);
}
ret = gnutls_privkey_get_spki(key, spki, 0);
assert(ret >= 0);
- assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >= 0);
+ assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >=
+ 0);
assert(salt_size == 32);
assert(dig == GNUTLS_DIG_SHA256);
/* set and get */
gnutls_x509_spki_set_rsa_pss_params(spki, GNUTLS_DIG_SHA1, 64);
- assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >= 0);
+ assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >=
+ 0);
assert(salt_size == 64);
assert(dig == GNUTLS_DIG_SHA1);
/* read one at a time */
- assert(gnutls_x509_spki_get_rsa_pss_params(spki, NULL, &salt_size) >= 0);
+ assert(gnutls_x509_spki_get_rsa_pss_params(spki, NULL, &salt_size) >=
+ 0);
assert(salt_size == 64);
assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, NULL) >= 0);
assert(dig == GNUTLS_DIG_SHA1);
diff --git a/tests/spki.c b/tests/spki.c
index e5f88e1351..ff47ff3a4b 100644
--- a/tests/spki.c
+++ b/tests/spki.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -52,13 +52,12 @@ static void crq_check(void)
exit(1);
}
- assert(gnutls_x509_privkey_init(&privkey)>=0);
+ assert(gnutls_x509_privkey_init(&privkey) >= 0);
- ret =
- gnutls_x509_privkey_generate(privkey, GNUTLS_PK_RSA, 2048, 0);
- assert(ret>=0);
+ ret = gnutls_x509_privkey_generate(privkey, GNUTLS_PK_RSA, 2048, 0);
+ assert(ret >= 0);
- assert(gnutls_x509_spki_init(&spki)>=0);
+ assert(gnutls_x509_spki_init(&spki) >= 0);
gnutls_x509_spki_set_rsa_pss_params(spki, GNUTLS_DIG_SHA256, 32);
@@ -69,15 +68,15 @@ static void crq_check(void)
exit(1);
}
- assert(gnutls_x509_crq_set_version(crq, 1)>=0);
- assert(gnutls_x509_crq_set_key(crq, privkey)>=0);
- assert(gnutls_x509_crq_set_spki(crq, spki, 0)>=0);
+ assert(gnutls_x509_crq_set_version(crq, 1) >= 0);
+ assert(gnutls_x509_crq_set_key(crq, privkey) >= 0);
+ assert(gnutls_x509_crq_set_spki(crq, spki, 0) >= 0);
assert(gnutls_x509_crq_set_dn_by_oid(crq, GNUTLS_OID_X520_COMMON_NAME,
- 0, "CN-Test", 7)>=0);
+ 0, "CN-Test", 7) >= 0);
gnutls_x509_spki_deinit(spki);
- assert(gnutls_x509_crq_sign2(crq, privkey, GNUTLS_DIG_SHA256, 0)>=0);
+ assert(gnutls_x509_crq_sign2(crq, privkey, GNUTLS_DIG_SHA256, 0) >= 0);
if (debug) {
gnutls_x509_crq_print(crq, GNUTLS_CRT_PRINT_ONELINE, &tmp);
@@ -87,18 +86,20 @@ static void crq_check(void)
}
/* read SPKI */
- assert(gnutls_x509_spki_init(&spki)>=0);
+ assert(gnutls_x509_spki_init(&spki) >= 0);
ret = gnutls_x509_crq_get_spki(crq, spki, 0);
assert(ret >= 0);
- assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >= 0);
+ assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >=
+ 0);
assert(salt_size == 32);
assert(dig == GNUTLS_DIG_SHA256);
/* set invalid */
gnutls_x509_spki_set_rsa_pss_params(spki, GNUTLS_DIG_SHA256, 1024);
- assert(gnutls_x509_crq_set_spki(crq, spki, 0) == GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
+ assert(gnutls_x509_crq_set_spki(crq, spki, 0) ==
+ GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
gnutls_x509_crq_deinit(crq);
gnutls_x509_spki_deinit(spki);
@@ -106,7 +107,6 @@ static void crq_check(void)
gnutls_global_deinit();
}
-
static void cert_check(void)
{
int ret;
@@ -123,7 +123,7 @@ static void cert_check(void)
}
ret = gnutls_x509_spki_init(&spki);
- assert(ret>=0);
+ assert(ret >= 0);
ret = gnutls_x509_crt_init(&crt);
if (ret < 0) {
@@ -151,13 +151,15 @@ static void cert_check(void)
ret = gnutls_x509_crt_get_spki(crt, spki, 0);
assert(ret >= 0);
- assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >= 0);
+ assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >=
+ 0);
assert(salt_size == 32);
assert(dig == GNUTLS_DIG_SHA256);
/* set invalid */
gnutls_x509_spki_set_rsa_pss_params(spki, GNUTLS_DIG_SHA256, 1024);
- assert(gnutls_x509_crt_set_spki(crt, spki, 0) == GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
+ assert(gnutls_x509_crt_set_spki(crt, spki, 0) ==
+ GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
gnutls_x509_crt_deinit(crt);
gnutls_x509_spki_deinit(spki);
@@ -179,7 +181,7 @@ static void key_check(void)
}
ret = gnutls_x509_spki_init(&spki);
- assert(ret>=0);
+ assert(ret >= 0);
ret = gnutls_x509_privkey_init(&key);
if (ret < 0) {
@@ -201,19 +203,22 @@ static void key_check(void)
ret = gnutls_x509_privkey_get_spki(key, spki, 0);
assert(ret >= 0);
- assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >= 0);
+ assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >=
+ 0);
assert(salt_size == 32);
assert(dig == GNUTLS_DIG_SHA256);
/* set and get */
gnutls_x509_spki_set_rsa_pss_params(spki, GNUTLS_DIG_SHA1, 64);
- assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >= 0);
+ assert(gnutls_x509_spki_get_rsa_pss_params(spki, &dig, &salt_size) >=
+ 0);
assert(salt_size == 64);
assert(dig == GNUTLS_DIG_SHA1);
/* set invalid */
gnutls_x509_spki_set_rsa_pss_params(spki, GNUTLS_DIG_SHA1, 1024);
- assert(gnutls_x509_privkey_set_spki(key, spki, 0) == GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
+ assert(gnutls_x509_privkey_set_spki(key, spki, 0) ==
+ GNUTLS_E_PK_INVALID_PUBKEY_PARAMS);
gnutls_x509_privkey_deinit(key);
gnutls_x509_spki_deinit(spki);
diff --git a/tests/srp.c b/tests/srp.c
index 1cb2c510df..0cd9d2d09e 100644
--- a/tests/srp.c
+++ b/tests/srp.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,17 +36,17 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
@@ -104,8 +104,8 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
-static void client(int fd, const char *prio, const char *user, const char *pass, int exp_err)
+static void client(int fd, const char *prio, const char *user, const char *pass,
+ int exp_err)
{
int ret;
gnutls_session_t session;
@@ -130,7 +130,7 @@ static void client(int fd, const char *prio, const char *user, const char *pass,
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
/* put the anonymous credentials to the current session
@@ -179,7 +179,6 @@ static void client(int fd, const char *prio, const char *user, const char *pass,
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -210,23 +209,22 @@ static void server(int fd, const char *prio)
gnutls_srp_allocate_server_credentials(&s_srp_cred);
gnutls_srp_set_server_credentials_file(s_srp_cred, "tpasswd",
- "tpasswd.conf");
+ "tpasswd.conf");
gnutls_certificate_allocate_credentials(&s_x509_cred);
gnutls_certificate_set_x509_key_mem(s_x509_cred,
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
- assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_SRP, s_srp_cred);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- s_x509_cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, s_x509_cred);
gnutls_transport_set_int(session, fd);
gnutls_handshake_set_timeout(session, get_timeout());
@@ -253,7 +251,8 @@ static void server(int fd, const char *prio)
kx = gnutls_kx_get(session);
if (kx != GNUTLS_KX_SRP && kx != GNUTLS_KX_SRP_RSA &&
kx != GNUTLS_KX_SRP_DSS)
- fail("server: unexpected key exchange: %s\n", gnutls_kx_get_name(kx));
+ fail("server: unexpected key exchange: %s\n",
+ gnutls_kx_get_name(kx));
/* do not wait for the peer to close the connection.
*/
@@ -271,7 +270,8 @@ static void server(int fd, const char *prio)
success("server: finished\n");
}
-static void start(const char *name, const char *prio, const char *user, const char *pass, int exp_err)
+static void start(const char *name, const char *prio, const char *user,
+ const char *pass, int exp_err)
{
int fd[2];
int ret;
@@ -345,18 +345,29 @@ void doit(void)
fwrite(tpasswd_file, 1, strlen(tpasswd_file), fp);
fclose(fp);
- start("tls1.2 srp-1024", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", "test", "test", 0);
- start("tls1.2 srp-1536", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", "test2", "test2", 0);
- start("tls1.2 srp-2048", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", "test3", "test3", 0);
- start("tls1.2 srp-3072", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", "test4", "test4", 0);
- start("tls1.2 srp-4096", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", "test5", "test5", 0);
- start("tls1.2 srp-8192", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", "test7", "test7", 0);
- start("tls1.2 srp-other", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP", "test9", "test9", GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
-
- start("tls1.2 srp-rsa", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP-RSA", "test", "test", 0);
+ start("tls1.2 srp-1024", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP",
+ "test", "test", 0);
+ start("tls1.2 srp-1536", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP",
+ "test2", "test2", 0);
+ start("tls1.2 srp-2048", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP",
+ "test3", "test3", 0);
+ start("tls1.2 srp-3072", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP",
+ "test4", "test4", 0);
+ start("tls1.2 srp-4096", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP",
+ "test5", "test5", 0);
+ start("tls1.2 srp-8192", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP",
+ "test7", "test7", 0);
+ start("tls1.2 srp-other", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP",
+ "test9", "test9", GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER);
+
+ start("tls1.2 srp-rsa",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+SRP-RSA", "test", "test",
+ 0);
/* check whether SRP works with TLS1.3 being prioritized */
- start("tls1.3 and srp-1024", "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1", "test", "test", 0);
+ start("tls1.3 and srp-1024",
+ "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1",
+ "test", "test", 0);
/* check whether SRP works with the default protocol set */
start("default srp-1024", "NORMAL:-KX-ALL:+SRP", "test", "test", 0);
diff --git a/tests/srpbase64.c b/tests/srpbase64.c
index 4a229f6195..28a95fc4fc 100644
--- a/tests/srpbase64.c
+++ b/tests/srpbase64.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,38 +35,41 @@
#ifdef ENABLE_SRP
-static void encode(const char *test_name, const gnutls_datum_t *raw, const char *expected)
+static void encode(const char *test_name, const gnutls_datum_t * raw,
+ const char *expected)
{
int ret;
gnutls_datum_t out, in;
ret = gnutls_srp_base64_encode2(raw, &out);
if (ret < 0) {
- fail("%s: gnutls_srp_base64_encode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_srp_base64_encode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (strlen(expected)!=out.size) {
+ if (strlen(expected) != out.size) {
fail("%s: gnutls_srp_base64_encode2: output has incorrect size (%d, expected %d)\n", test_name, (int)out.size, (int)strlen(expected));
exit(1);
}
- if (strncasecmp(expected, (char*)out.data, out.size) != 0) {
+ if (strncasecmp(expected, (char *)out.data, out.size) != 0) {
fail("%s: gnutls_srp_base64_encode2: output does not match the expected\n", test_name);
exit(1);
}
gnutls_free(out.data);
- in.data = (void*)expected;
+ in.data = (void *)expected;
in.size = strlen(expected);
ret = gnutls_srp_base64_decode2(&in, &out);
if (ret < 0) {
- fail("%s: gnutls_srp_base64_decode2: %s\n", test_name, gnutls_strerror(ret));
+ fail("%s: gnutls_srp_base64_decode2: %s\n", test_name,
+ gnutls_strerror(ret));
exit(1);
}
- if (raw->size!=out.size) {
+ if (raw->size != out.size) {
fail("%s: gnutls_srp_base64_decode2: output has incorrect size (%d, expected %d)\n", test_name, out.size, raw->size);
exit(1);
}
@@ -81,18 +84,20 @@ static void encode(const char *test_name, const gnutls_datum_t *raw, const char
return;
}
-static void decode(const char *test_name, const gnutls_datum_t *raw, const char *hex, int res)
+static void decode(const char *test_name, const gnutls_datum_t * raw,
+ const char *hex, int res)
{
int ret;
gnutls_datum_t out, in;
- in.data = (void*)hex;
+ in.data = (void *)hex;
in.size = strlen(hex);
ret = gnutls_srp_base64_decode2(&in, &out);
if (ret < 0) {
- if (res == ret) /* expected */
+ if (res == ret) /* expected */
return;
- fail("%s: gnutls_srp_base64_decode2: %d/%s\n", test_name, ret, gnutls_strerror(ret));
+ fail("%s: gnutls_srp_base64_decode2: %d/%s\n", test_name, ret,
+ gnutls_strerror(ret));
exit(1);
}
@@ -101,7 +106,7 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
exit(1);
}
- if (raw->size!=out.size) {
+ if (raw->size != out.size) {
fail("%s: gnutls_srp_base64_decode2: output has incorrect size (%d, expected %d)\n", test_name, out.size, raw->size);
exit(1);
}
@@ -124,15 +129,19 @@ struct encode_tests_st {
struct encode_tests_st encode_tests[] = {
{
- .name = "rnd1",
- .sb64 = "3scaQAX6bwA8FQKirWBpbu",
- .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78", 16}
- },
+ .name = "rnd1",
+ .sb64 = "3scaQAX6bwA8FQKirWBpbu",
+ .raw = {(void *)
+ "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78",
+ 16}
+ },
{
- .name = "rnd2",
- .sb64 = "id/k5HdTEqyZFPsLpdvYyGjxv",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19}
- }
+ .name = "rnd2",
+ .sb64 = "id/k5HdTEqyZFPsLpdvYyGjxv",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19}
+ }
};
struct decode_tests_st {
@@ -144,35 +153,40 @@ struct decode_tests_st {
struct decode_tests_st decode_tests[] = {
{
- .name = "dec-rnd1",
- .sb64 = "3scaQAX6bwA8FQKirWBpbu",
- .raw = {(void*)"\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78", 16},
- .res = 0
- },
+ .name = "dec-rnd1",
+ .sb64 = "3scaQAX6bwA8FQKirWBpbu",
+ .raw = {(void *)
+ "\xf6\x9a\x46\x8a\x84\x69\x7a\x28\x83\xda\x52\xcd\x60\x2f\x39\x78",
+ 16},
+ .res = 0},
{
- .name = "dec-rnd2",
- .sb64 = "id/k5HdTEqyZFPsLpdvYyGjxv",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = 0
- },
+ .name = "dec-rnd2",
+ .sb64 = "id/k5HdTEqyZFPsLpdvYyGjxv",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = 0},
{
- .name = "dec-extra-chars",
- .sb64 = " id/k5HdTEqyZFPsLpdvYyGjxv ",
- .raw = {(void*)"\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9", 19},
- .res = GNUTLS_E_BASE64_DECODING_ERROR
- }
+ .name = "dec-extra-chars",
+ .sb64 = " id/k5HdTEqyZFPsLpdvYyGjxv ",
+ .raw = {(void *)
+ "\x2c\x9f\xfb\x85\x46\x77\x4e\xd3\xc8\xcf\x67\x65\x73\x9f\x98\xbc\x42\xde\xf9",
+ 19},
+ .res = GNUTLS_E_BASE64_DECODING_ERROR}
};
void doit(void)
{
unsigned i;
- for (i=0;i<sizeof(encode_tests)/sizeof(encode_tests[0]);i++) {
- encode(encode_tests[i].name, &encode_tests[i].raw, encode_tests[i].sb64);
+ for (i = 0; i < sizeof(encode_tests) / sizeof(encode_tests[0]); i++) {
+ encode(encode_tests[i].name, &encode_tests[i].raw,
+ encode_tests[i].sb64);
}
- for (i=0;i<sizeof(decode_tests)/sizeof(decode_tests[0]);i++) {
- decode(decode_tests[i].name, &decode_tests[i].raw, decode_tests[i].sb64, decode_tests[i].res);
+ for (i = 0; i < sizeof(decode_tests) / sizeof(decode_tests[0]); i++) {
+ decode(decode_tests[i].name, &decode_tests[i].raw,
+ decode_tests[i].sb64, decode_tests[i].res);
}
}
diff --git a/tests/ssl2-hello.c b/tests/ssl2-hello.c
index ac1fd7e097..578cff6c10 100644
--- a/tests/ssl2-hello.c
+++ b/tests/ssl2-hello.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -43,17 +43,17 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
pid_t child;
@@ -66,17 +66,15 @@ static void tls_log_func(int level, const char *str)
/* A very basic TLS client, with anonymous authentication.
*/
-
static unsigned char ssl2_hello[] =
- "\x80\x59\x01\x03\x01\x00\x30\x00\x00\x00\x20\x00\x00\x39\x00\x00"
- "\x38\x00\x00\x35\x00\x00\x16\x00\x00\x13\x00\x00\x0a\x00\x00\x33"
- "\x00\x00\x32\x00\x00\x2f\x00\x00\x07\x00\x00\x05\x00\x00\x04\x00"
- "\x00\x15\x00\x00\x12\x00\x00\x09\x00\x00\xff\xb1\xc9\x95\x1a\x02"
- "\x6c\xd6\x42\x11\x6e\x99\xe2\x84\x97\xc9\x17\x53\xaf\x53\xf7\xfc"
- "\x8d\x1e\x72\x87\x18\x53\xee\xa6\x7d\x18\xc6";
+ "\x80\x59\x01\x03\x01\x00\x30\x00\x00\x00\x20\x00\x00\x39\x00\x00"
+ "\x38\x00\x00\x35\x00\x00\x16\x00\x00\x13\x00\x00\x0a\x00\x00\x33"
+ "\x00\x00\x32\x00\x00\x2f\x00\x00\x07\x00\x00\x05\x00\x00\x04\x00"
+ "\x00\x15\x00\x00\x12\x00\x00\x09\x00\x00\xff\xb1\xc9\x95\x1a\x02"
+ "\x6c\xd6\x42\x11\x6e\x99\xe2\x84\x97\xc9\x17\x53\xaf\x53\xf7\xfc"
+ "\x8d\x1e\x72\x87\x18\x53\xee\xa6\x7d\x18\xc6";
-static unsigned char tls_alert[] =
- "\x15\x03\x01\x00\x02\x02\x5A";
+static unsigned char tls_alert[] = "\x15\x03\x01\x00\x02\x02\x5A";
static void client(int sd)
{
@@ -84,8 +82,8 @@ static void client(int sd)
int ret;
/* send an SSL 2.0 hello, and then an alert */
-
- ret = send(sd, ssl2_hello, sizeof(ssl2_hello)-1, 0);
+
+ ret = send(sd, ssl2_hello, sizeof(ssl2_hello) - 1, 0);
if (ret < 0)
fail("error sending hello\n");
@@ -93,7 +91,7 @@ static void client(int sd)
if (ret < 0)
fail("error receiving hello\n");
- ret = send(sd, tls_alert, sizeof(tls_alert)-1, 0);
+ ret = send(sd, tls_alert, sizeof(tls_alert) - 1, 0);
if (ret < 0)
fail("error sending hello\n");
@@ -118,7 +116,8 @@ static void server(int sd)
gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert,
GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert,
+ gnutls_certificate_set_x509_key_mem(x509_cred,
+ &server_ca3_localhost_cert,
&server_ca3_key,
GNUTLS_X509_FMT_PEM);
@@ -136,7 +135,8 @@ static void server(int sd)
gnutls_transport_set_int(session, sd);
ret = gnutls_handshake(session);
- if (ret != GNUTLS_E_FATAL_ALERT_RECEIVED || gnutls_alert_get(session) != GNUTLS_A_USER_CANCELED) {
+ if (ret != GNUTLS_E_FATAL_ALERT_RECEIVED
+ || gnutls_alert_get(session) != GNUTLS_A_USER_CANCELED) {
fail("server: Handshake failed unexpectedly (%s)\n\n",
gnutls_strerror(ret));
return;
@@ -157,7 +157,6 @@ static void server(int sd)
success("server: finished\n");
}
-
void doit(void)
{
int sockets[2];
diff --git a/tests/ssl30-cert-key-exchange.c b/tests/ssl30-cert-key-exchange.c
index e8742e7978..c816445959 100644
--- a/tests/ssl30-cert-key-exchange.c
+++ b/tests/ssl30-cert-key-exchange.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -39,15 +39,33 @@ void doit(void)
{
#ifdef ENABLE_SSL3
global_init();
- try_x509("SSL 3.0 with anon-dh", "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+ANON-DH", GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("SSL 3.0 with dhe-rsa no cert", "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("SSL 3.0 with anon-dh",
+ "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+ANON-DH",
+ GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("SSL 3.0 with dhe-rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("SSL 3.0 with rsa no cert", "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509_cli("SSL 3.0 with dhe-rsa cert", "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, USE_CERT);
- try_x509_cli("SSL 3.0 with rsa cert", "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, USE_CERT);
+ try_x509("SSL 3.0 with rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+RSA", GNUTLS_KX_RSA,
+ GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509_cli("SSL 3.0 with dhe-rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, USE_CERT);
+ try_x509_cli("SSL 3.0 with rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
+ USE_CERT);
- try_x509_cli("SSL 3.0 with dhe-rsa ask cert", "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_x509_cli("SSL 3.0 with rsa ask cert", "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_x509_cli("SSL 3.0 with dhe-rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_x509_cli("SSL 3.0 with rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-SSL3.0:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
+ ASK_CERT);
gnutls_global_deinit();
#else
exit(77);
diff --git a/tests/ssl30-cipher-neg.c b/tests/ssl30-cipher-neg.c
index 745be43e0c..af4d63ce1a 100644
--- a/tests/ssl30-cipher-neg.c
+++ b/tests/ssl30-cipher-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the ciphersuite negotiation for various key exchange
@@ -39,92 +39,92 @@
test_case_st tests[] = {
{
- .name = "server SSL 3.0: AES-128-CBC (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+VERS-SSL3.0:+AES-128-CBC"
- },
+ .name = "server SSL 3.0: AES-128-CBC (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+VERS-SSL3.0:+AES-128-CBC"},
{
- .name = "both SSL 3.0: AES-128-CBC (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-CBC:+VERS-SSL3.0"
- },
+ .name = "both SSL 3.0: AES-128-CBC (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-CBC:+VERS-SSL3.0"},
{
- .name = "client SSL 3.0: AES-128-CBC (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:+VERS-SSL3.0:+AES-128-CBC",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "client SSL 3.0: AES-128-CBC (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio = "NORMAL:+VERS-SSL3.0:+AES-128-CBC",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "both SSL 3.0: AES-128-CBC (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:+AES-128-CBC:+VERS-SSL3.0",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "both SSL 3.0: AES-128-CBC (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio = "NORMAL:+AES-128-CBC:+VERS-SSL3.0",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "server SSL 3.0: 3DES-CBC (server)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .server_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+VERS-SSL3.0:+3DES-CBC"
- },
+ .name = "server SSL 3.0: 3DES-CBC (server)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+VERS-SSL3.0:+3DES-CBC"},
{
- .name = "both SSL 3.0: 3DES-CBC (server)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .server_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+3DES-CBC:+VERS-SSL3.0"
- },
+ .name = "both SSL 3.0: 3DES-CBC (server)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+3DES-CBC:+VERS-SSL3.0"},
{
- .name = "client SSL 3.0: 3DES-CBC (client)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .server_prio = "NORMAL:+VERS-SSL3.0:+3DES-CBC",
- .client_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "client SSL 3.0: 3DES-CBC (client)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .server_prio = "NORMAL:+VERS-SSL3.0:+3DES-CBC",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "both SSL 3.0: 3DES-CBC (client)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .server_prio = "NORMAL:+3DES-CBC:+VERS-SSL3.0",
- .client_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "both SSL 3.0: 3DES-CBC (client)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .server_prio = "NORMAL:+3DES-CBC:+VERS-SSL3.0",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "server SSL 3.0: ARCFOUR-128 (server)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+VERS-SSL3.0:+ARCFOUR-128"
- },
+ .name = "server SSL 3.0: ARCFOUR-128 (server)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+VERS-SSL3.0:+ARCFOUR-128"},
{
- .name = "both SSL 3.0: ARCFOUR-128 (server)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+ARCFOUR-128:+VERS-SSL3.0"
- },
+ .name = "both SSL 3.0: ARCFOUR-128 (server)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+ARCFOUR-128:+VERS-SSL3.0"},
{
- .name = "client SSL 3.0: ARCFOUR-128 (client)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+VERS-SSL3.0:+ARCFOUR-128",
- .client_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "client SSL 3.0: ARCFOUR-128 (client)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+VERS-SSL3.0:+ARCFOUR-128",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "both SSL 3.0: ARCFOUR-128 (client)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+ARCFOUR-128:+VERS-SSL3.0",
- .client_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"
- }
+ .name = "both SSL 3.0: ARCFOUR-128 (client)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+ARCFOUR-128:+VERS-SSL3.0",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-SSL3.0"}
};
void doit(void)
{
- (void) try;
+ (void)try;
#ifdef ENABLE_SSL3
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/ssl30-server-kx-neg.c b/tests/ssl30-server-kx-neg.c
index 357cf941ba..e8085e03e8 100644
--- a/tests/ssl30-server-kx-neg.c
+++ b/tests/ssl30-server-kx-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the ciphersuite negotiation for various key exchange
@@ -39,130 +39,118 @@
test_case_st tests[] = {
{
- .name = "SSL 3.0 ANON-DH without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 ANON-DH without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 ANON-DH with cred but no DH params",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_anon_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 ANON-DH with cred but no DH params",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_anon_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 ANON-DH with cred and DH params",
- .server_ret = 0,
- .client_ret = 0,
- .have_anon_cred = 1,
- .have_anon_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 ANON-DH with cred and DH params",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_anon_cred = 1,
+ .have_anon_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 DHE-RSA without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 DHE-RSA without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 DHE-RSA with cred but no DH params or cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 DHE-RSA with cred but no DH params or cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 DHE-RSA with cred and cert but no DH params",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 DHE-RSA with cred and cert but no DH params",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 DHE-RSA with cred and DH params but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 DHE-RSA with cred and DH params but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 DHE-RSA with cred and incompatible cert and DH params",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name =
+ "SSL 3.0 DHE-RSA with cred and incompatible cert and DH params",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 DHE-RSA with cred and cert and DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 DHE-RSA with cred and cert and DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 DHE-RSA with cred and multiple certs and DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 DHE-RSA with cred and multiple certs and DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 DHE-PSK without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 DHE-PSK without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 DHE-PSK with cred but no DH params",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0"
- },
+ .name = "SSL 3.0 DHE-PSK with cred but no DH params",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0"},
{
- .name = "SSL 3.0 DHE-PSK with cred DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .have_psk_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0"
- }
+ .name = "SSL 3.0 DHE-PSK with cred DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .have_psk_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-SSL3.0"}
};
void doit(void)
{
- (void) try;
+ (void)try;
#ifdef ENABLE_SSL3
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/status-request-ext.c b/tests/status-request-ext.c
index cd0d4d759a..c4eb7b3491 100644
--- a/tests/status-request-ext.c
+++ b/tests/status-request-ext.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include "cert-common.h"
+# include "utils.h"
/* This program tests that the server does not send the
* status request extension if no status response exists. That
@@ -64,7 +64,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define SKIP16(pos, total) { \
+# define SKIP16(pos, total) { \
uint16_t _s; \
if (pos+2 > total) fail("error\n"); \
_s = (msg->data[pos] << 8) | msg->data[pos+1]; \
@@ -72,7 +72,7 @@ static void client_log_func(int level, const char *str)
pos += 2+_s; \
}
-#define SKIP8(pos, total) { \
+# define SKIP8(pos, total) { \
uint8_t _s; \
if (pos+1 > total) fail("error\n"); \
_s = msg->data[pos]; \
@@ -80,8 +80,8 @@ static void client_log_func(int level, const char *str)
pos += 1+_s; \
}
-#define TLS_EXT_STATUS_REQUEST 5
-#define HANDSHAKE_SESSION_ID_POS 34
+# define TLS_EXT_STATUS_REQUEST 5
+# define HANDSHAKE_SESSION_ID_POS 34
/* This returns either the application-specific ID extension contents,
* or the session ID contents. The former is used on the new protocol,
@@ -105,12 +105,13 @@ static void client_log_func(int level, const char *str)
* } ServerHello;
*/
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
size_t pos = 0;
/* A client hello packet. We can get the session ID and figure
* the associated connection. */
- if (msg->size < HANDSHAKE_SESSION_ID_POS+GNUTLS_MAX_SESSION_ID+2) {
+ if (msg->size < HANDSHAKE_SESSION_ID_POS + GNUTLS_MAX_SESSION_ID + 2) {
fail("invalid client hello\n");
}
@@ -121,27 +122,27 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
SKIP8(pos, msg->size);
/* CipherSuite */
- pos+=2;
+ pos += 2;
/* CompressionMethod */
SKIP8(pos, msg->size);
- if (pos+2 > msg->size)
+ if (pos + 2 > msg->size)
fail("invalid client hello\n");
- pos+=2;
+ pos += 2;
/* Extension(s) */
while (pos < msg->size) {
uint16_t type;
- if (pos+4 > msg->size)
+ if (pos + 4 > msg->size)
fail("invalid client hello\n");
- type = (msg->data[pos] << 8) | msg->data[pos+1];
- pos+=2;
+ type = (msg->data[pos] << 8) | msg->data[pos + 1];
+ pos += 2;
if (type != TLS_EXT_STATUS_REQUEST) {
SKIP16(pos, msg->size);
- } else { /* found */
+ } else { /* found */
fail("found extension, although no status response\n");
break;
}
@@ -150,9 +151,7 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
return 0;
}
-
-
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -209,7 +208,7 @@ static void client(int fd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -220,7 +219,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
static void server(int fd, const char *prio)
{
int ret;
@@ -240,12 +238,12 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_SERVER_HELLO,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_SERVER_HELLO,
GNUTLS_HOOK_POST,
handshake_callback);
diff --git a/tests/status-request-ok.c b/tests/status-request-ok.c
index 02b0d17115..3a324cef74 100644
--- a/tests/status-request-ok.c
+++ b/tests/status-request-ok.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,18 +35,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
/* This program tests the status request extension and that receiving the
* certificate status works.
@@ -107,17 +107,19 @@ static int sent = 0;
static int received = 0;
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
success("received status request\n");
received = 1;
return 0;
}
-
-#define RESP "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
-#define RESP_SIZE (sizeof(RESP)-1)
-static int status_func(gnutls_session_t session, void *ptr, gnutls_datum_t *resp)
+# define RESP "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
+# define RESP_SIZE (sizeof(RESP)-1)
+
+static int status_func(gnutls_session_t session, void *ptr,
+ gnutls_datum_t * resp)
{
resp->data = gnutls_malloc(RESP_SIZE);
if (resp->data == NULL)
@@ -129,7 +131,7 @@ static int status_func(gnutls_session_t session, void *ptr, gnutls_datum_t *resp
return 0;
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd)
{
@@ -154,7 +156,8 @@ static void client(int fd)
/* Use default priorities */
gnutls_priority_set_direct(session, "NORMAL:-KX-ALL:+ECDHE-RSA", NULL);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
GNUTLS_HOOK_POST,
handshake_callback);
@@ -194,7 +197,7 @@ static void client(int fd)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -205,7 +208,6 @@ static void client(int fd)
gnutls_global_deinit();
}
-
static void server(int fd)
{
int ret;
@@ -225,17 +227,18 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_ocsp_status_request_function(x509_cred, status_func, NULL);
+ gnutls_certificate_set_ocsp_status_request_function(x509_cred,
+ status_func, NULL);
gnutls_init(&session, GNUTLS_SERVER);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -261,7 +264,7 @@ static void server(int fd)
if (sent == 0) {
fail("status request was sent\n");
exit(1);
- }
+ }
/* do not wait for the peer to close the connection.
*/
diff --git a/tests/status-request-revoked.c b/tests/status-request-revoked.c
index d2a5850a9f..cf4c8fcb2a 100644
--- a/tests/status-request-revoked.c
+++ b/tests/status-request-revoked.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,19 +36,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
+# include "utils.h"
/* This program tests that the client does not send the
* status request extension if GNUTLS_NO_EXTENSIONS is set.
@@ -75,174 +75,174 @@ static time_t mytime(time_t * t)
}
static unsigned char server_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIEKjCCAhKgAwIBAgIIRiBQA6KFBj0wDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
-"AxMEaWNhMTAeFw0xOTEwMjQxNDA1MDBaFw0yMDEwMjQxNDAzMDBaMBoxGDAWBgNV\n"
-"BAMTD3Rlc3Quc2VydmVyLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n"
-"ggEBAKgBiCBLx9eqe2tcCdkyDvQb3UZMR/Gs1mHaiW9zUbqnHkMD/N+0B+JRcfW2\n"
-"P5WnQRTlSrWM/gFJh+va0Wtnu0VZWdBHhyR8Vq62DskNRSXUSTsQVqktaMmA/yPY\n"
-"iYtY5069WUBoa1GD23BRaeoinLtmBEaUIvsAdCPQ5bCdaVSFOLlnuDxF6/bOAQAC\n"
-"5EJ3UDAdqqGmHCQAJcKiCim2ttCIquLqAsgalHMKKBAdEm01o+LO6FOHK1OkwA1W\n"
-"GiDNaojEojMS87x9VjmdiamvPuAALLAMMQ3fh8DxqAWA4pfkYWJKehnlPHdjPfkO\n"
-"GjUvpezsWev5PBJKp5x6ce9vlgMCAwEAAaN/MH0wCQYDVR0TBAIwADALBgNVHQ8E\n"
-"BAMCA4gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGgYDVR0RBBMwEYIPdGVzdC5zZXJ2\n"
-"ZXIuY29tMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDovLzEwLjEu\n"
-"Mi4yNDI6ODg4ODANBgkqhkiG9w0BAQsFAAOCAgEAK9Bo7i8Mj7t8l+nZqQ6ezG6d\n"
-"sq5FYkr2h+T5C0Pt2RscMYAKRdBjAXmCTy1jhaojUVIupm/pK1YQAOgSQF5PMhLl\n"
-"3W1SiLl2aU1A0HjHpHvN81YP5VeceHgoJrA5VYGYQohIyH9zfSJNb5TyhQcIHiqZ\n"
-"aSC64c7sSywHC4vEHYyYu0LVMic4y7EWM2Y5Vh3xhB28jq5ixChCxG/i6rHt1fC+\n"
-"1YsKQaE+sAY4QVjMYE8g4SldqMDpnSCiHDFBfWMGD5hGvp4WMfNXpuiDG9M8wAcT\n"
-"A93NxnZqmUdksK/waGS7/uj/eY1hMU2Z/TVhaCDk146hH+lOUf6CnwM3MXLOALaz\n"
-"eHyfbm/P8XniWhzBQIiY+5wYVath9YlOkRZhAMKRglRNpwXoTKZiJNkqrwaz6RnB\n"
-"S19QByi+L6tFP7AxLFd7DKv4FbI2FWh5GyCrqa8rNc3Bh/oxDR0iAUetEFQUjkxN\n"
-"x5A0mOnKds0UoTq3nI5t6obgzAjFkiMgVMXyXo4HqfzpAtqIgZd+PJn5snFoJ6Xh\n"
-"NPjCYbfBb9LQFlfodWVg0W4mjfp0HypFaBIudgw0ANdQUUOosWFi0H2msj7CJf4G\n"
-"crMZmsCvD+xKfwKqph+tH0/e/xFeFmVOSVI78ESJhpRcQ9ODiOA98FTR4W1Nv9gd\n"
-"2GOAQzJDUd051fcRBXQ=\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIEvzCCAqegAwIBAgIIV9UmBssMHTUwDQYJKoZIhvcNAQELBQAwETEPMA0GA1UE\n"
-"AxMGcm9vdGNhMB4XDTE5MTAyNDE0MDQwMFoXDTIwMTAyNDE0MDMwMFowDzENMAsG\n"
-"A1UEAxMEaWNhMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALY5o80n\n"
-"QOQWNJnWOEL6Vg/UH84r9TP4ZWKlWmC4K+pi0S+8x7uFBUyxFffS/SaWeoxI2wBm\n"
-"ezMjAl1gFQTCxsojxfgS9Ky9fbxdaADeLKW7B8UHRzrKO8I9Khhe82oU87vAYUFX\n"
-"cC0ALIE4zpcdezmr53ACloYfTwDy4onl6VKVjwhfZ6PglwZRkOLjSRMbmSScJPGF\n"
-"pMx29dhXEFeCyAdqU+H9Bhu0cIwHUeFp4BM1j8NsW6GHLIzioc5f70EX76M9FyRA\n"
-"EB/csmEGX37vNjPmmyki6SJ2nFoa7C9o3ty7IzoUdrU8Cfj9o6WdEfCRlIuxLWra\n"
-"LFQrduuhk3sZYU2adZa3hJJ3Y+jx0lUBO4TxtO1Maf39Rfp4BzK1WybjCpDnO/Xg\n"
-"kU5hDjQX9zRWYPcwPMGEv3wJAezTsp/mx8UGtIlWVpd0z/oVoKvOrGaxx0RYq5SP\n"
-"mutaKDCvQ0j6t9wc69fyG5d9iNA3INXLhkFiZqEKpwZsi7RaSjD615EX2GqdIoZ0\n"
-"Ib4NEtpMv12/7ti1VFVxNNMaDNiOKRg7/Ha5SrRnCabyEuykSUnxjttNjBEazn1M\n"
-"VWIel0scvDtRFDFGklFuABOJmoYGkAPnIpN+H/l17/VtSWBsPy1rnlfgK2ftm773\n"
-"5kiEQJn42uh+jbgWaBdt9Q1B+VeV51pnjjc7AgMBAAGjHTAbMAwGA1UdEwQFMAMB\n"
-"Af8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQBgm8eEsLeGo5eI4plQ\n"
-"WtqvyKrrvpa9YachqmQfoARbMBJg4J0Eq3u3yjL1kUHZ5f0IkXeiaw/w5u2oxZTe\n"
-"SHHJCCd54NhLzBeTV/GQuDnWqU+GZP3ay+SkzjAMbfkHibVlRZLkeVnDZLRGd5jb\n"
-"RMXRj1LMVagI1xVM3Y4PEcDw+Bhp4XFHBUcxtcqFrjJQBbJJYE9A2QiPwoDQlYoy\n"
-"gSvVffbb04bDM01pbYOfPL9t1IIiq7KHHOq0vWzvoU+hnAx+U30wNSaeshKuixNa\n"
-"PpWKZ1hoejkhddeiypFqhS54oOxaCxArXPFIl/mLPJlztf/s1Xumi0W4fkIACtoY\n"
-"SFilawtsf/vC/WesFsQ502IkFpjYCeUavk8nAfZPZg1BwQ+ZLcwZXBuCtqyn9Mk9\n"
-"3UgHAiwMLDqeSQShjHWkBeLr5IOYMubT6SuLpd13rz2WOj6ETq7zizUanV8yAeaT\n"
-"x/pn1/rVpbzrbEAL5RkYlUK0ZbwpKjTLygiHUXFqpiID4L1OXoJbtbgSQlXFTEXV\n"
-"AnG40QNerXjQ8b+BlmFmCY2nxtNFgtVLUHb4vyG1mUcNIYafH+9TD5tUdzDVZP90\n"
-"NnU+8i3Ah3qk9B4Cv9wdHY4Mq/m2jTZd060oGb5l5381Ju5tr2BE+xPXCzSk7TsL\n"
-"tdq43/hGqq4D2YGCc9E0WnOVxw==\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIEwTCCAqmgAwIBAgIIFv+PS+AkgjowDQYJKoZIhvcNAQELBQAwETEPMA0GA1UE\n"
-"AxMGcm9vdGNhMB4XDTE5MTAyNDE0MDMwMFoXDTIwMTAyNDE0MDMwMFowETEPMA0G\n"
-"A1UEAxMGcm9vdGNhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtjmj\n"
-"zSdA5BY0mdY4QvpWD9Qfziv1M/hlYqVaYLgr6mLRL7zHu4UFTLEV99L9JpZ6jEjb\n"
-"AGZ7MyMCXWAVBMLGyiPF+BL0rL19vF1oAN4spbsHxQdHOso7wj0qGF7zahTzu8Bh\n"
-"QVdwLQAsgTjOlx17OavncAKWhh9PAPLiieXpUpWPCF9no+CXBlGQ4uNJExuZJJwk\n"
-"8YWkzHb12FcQV4LIB2pT4f0GG7RwjAdR4WngEzWPw2xboYcsjOKhzl/vQRfvoz0X\n"
-"JEAQH9yyYQZffu82M+abKSLpInacWhrsL2je3LsjOhR2tTwJ+P2jpZ0R8JGUi7Et\n"
-"atosVCt266GTexlhTZp1lreEkndj6PHSVQE7hPG07Uxp/f1F+ngHMrVbJuMKkOc7\n"
-"9eCRTmEONBf3NFZg9zA8wYS/fAkB7NOyn+bHxQa0iVZWl3TP+hWgq86sZrHHRFir\n"
-"lI+a61ooMK9DSPq33Bzr1/Ibl32I0Dcg1cuGQWJmoQqnBmyLtFpKMPrXkRfYap0i\n"
-"hnQhvg0S2ky/Xb/u2LVUVXE00xoM2I4pGDv8drlKtGcJpvIS7KRJSfGO202MERrO\n"
-"fUxVYh6XSxy8O1EUMUaSUW4AE4mahgaQA+cik34f+XXv9W1JYGw/LWueV+ArZ+2b\n"
-"vvfmSIRAmfja6H6NuBZoF231DUH5V5XnWmeONzsCAwEAAaMdMBswDAYDVR0TBAUw\n"
-"AwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAAk7UHoAWMRlcCtH\n"
-"qPH4YOuqqhMEqrJ3nRrRffDmRNCy/R2OpYRmI37HItaWmAB/aGK6H3nQG5fHY1/e\n"
-"Ypn/uwpYyvpMtYZgeNNFHckXcWQo3C7wOlCwQzWzI9po0zRp3EqTNBneKa4cZoe0\n"
-"FxcMfLbHL4SRKE08PZ3NBRW4n01fjjSs3o4cXvhD6puMTwjL581tWhgmfTrYGMvH\n"
-"i7/XSUuFKzj74dA1LioEvbi5qy4kCvy1zxLMySXRd8ZtdnlS/tP3dTx+f1qCZaH6\n"
-"E3jE7pi24yRmQaiNaO8Ap4uKcPaMXCsqg+TNTID3QJx6hDgQYsD7P64cUJXXhT/S\n"
-"bmdawUaWhwZXVCm2VIpYI3GYhnEVpovyqHOsopNfrabCzvuVB/d4wJBO9MJUk/0l\n"
-"BBCTJx3DluvkjKlDWxVDgpofElbU+77mEKLLki4G0f12biJLXOoS+jYayHSKbNlT\n"
-"5qzXO3swPMNyS1iBdJtmsh3d5JxHa96UlBgKa5pZY2vk+rHUP0j5aLPMqqCixOpE\n"
-"rYX6hvg898wlR2enXY//dgnvgprDW9Fs1x/PdaFx6p1EFpGuJX/td7CK633MsRbu\n"
-"dirhB+L70skZjiGGR/kY0i6edHFiMoqmyXm3ML9ID3ZWfQV9gDCCIKvz9SqpW08q\n"
-"dZHbP85IPw8a3Lzour7HV3acvaKA\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEKjCCAhKgAwIBAgIIRiBQA6KFBj0wDQYJKoZIhvcNAQELBQAwDzENMAsGA1UE\n"
+ "AxMEaWNhMTAeFw0xOTEwMjQxNDA1MDBaFw0yMDEwMjQxNDAzMDBaMBoxGDAWBgNV\n"
+ "BAMTD3Rlc3Quc2VydmVyLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n"
+ "ggEBAKgBiCBLx9eqe2tcCdkyDvQb3UZMR/Gs1mHaiW9zUbqnHkMD/N+0B+JRcfW2\n"
+ "P5WnQRTlSrWM/gFJh+va0Wtnu0VZWdBHhyR8Vq62DskNRSXUSTsQVqktaMmA/yPY\n"
+ "iYtY5069WUBoa1GD23BRaeoinLtmBEaUIvsAdCPQ5bCdaVSFOLlnuDxF6/bOAQAC\n"
+ "5EJ3UDAdqqGmHCQAJcKiCim2ttCIquLqAsgalHMKKBAdEm01o+LO6FOHK1OkwA1W\n"
+ "GiDNaojEojMS87x9VjmdiamvPuAALLAMMQ3fh8DxqAWA4pfkYWJKehnlPHdjPfkO\n"
+ "GjUvpezsWev5PBJKp5x6ce9vlgMCAwEAAaN/MH0wCQYDVR0TBAIwADALBgNVHQ8E\n"
+ "BAMCA4gwEwYDVR0lBAwwCgYIKwYBBQUHAwEwGgYDVR0RBBMwEYIPdGVzdC5zZXJ2\n"
+ "ZXIuY29tMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDovLzEwLjEu\n"
+ "Mi4yNDI6ODg4ODANBgkqhkiG9w0BAQsFAAOCAgEAK9Bo7i8Mj7t8l+nZqQ6ezG6d\n"
+ "sq5FYkr2h+T5C0Pt2RscMYAKRdBjAXmCTy1jhaojUVIupm/pK1YQAOgSQF5PMhLl\n"
+ "3W1SiLl2aU1A0HjHpHvN81YP5VeceHgoJrA5VYGYQohIyH9zfSJNb5TyhQcIHiqZ\n"
+ "aSC64c7sSywHC4vEHYyYu0LVMic4y7EWM2Y5Vh3xhB28jq5ixChCxG/i6rHt1fC+\n"
+ "1YsKQaE+sAY4QVjMYE8g4SldqMDpnSCiHDFBfWMGD5hGvp4WMfNXpuiDG9M8wAcT\n"
+ "A93NxnZqmUdksK/waGS7/uj/eY1hMU2Z/TVhaCDk146hH+lOUf6CnwM3MXLOALaz\n"
+ "eHyfbm/P8XniWhzBQIiY+5wYVath9YlOkRZhAMKRglRNpwXoTKZiJNkqrwaz6RnB\n"
+ "S19QByi+L6tFP7AxLFd7DKv4FbI2FWh5GyCrqa8rNc3Bh/oxDR0iAUetEFQUjkxN\n"
+ "x5A0mOnKds0UoTq3nI5t6obgzAjFkiMgVMXyXo4HqfzpAtqIgZd+PJn5snFoJ6Xh\n"
+ "NPjCYbfBb9LQFlfodWVg0W4mjfp0HypFaBIudgw0ANdQUUOosWFi0H2msj7CJf4G\n"
+ "crMZmsCvD+xKfwKqph+tH0/e/xFeFmVOSVI78ESJhpRcQ9ODiOA98FTR4W1Nv9gd\n"
+ "2GOAQzJDUd051fcRBXQ=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEvzCCAqegAwIBAgIIV9UmBssMHTUwDQYJKoZIhvcNAQELBQAwETEPMA0GA1UE\n"
+ "AxMGcm9vdGNhMB4XDTE5MTAyNDE0MDQwMFoXDTIwMTAyNDE0MDMwMFowDzENMAsG\n"
+ "A1UEAxMEaWNhMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALY5o80n\n"
+ "QOQWNJnWOEL6Vg/UH84r9TP4ZWKlWmC4K+pi0S+8x7uFBUyxFffS/SaWeoxI2wBm\n"
+ "ezMjAl1gFQTCxsojxfgS9Ky9fbxdaADeLKW7B8UHRzrKO8I9Khhe82oU87vAYUFX\n"
+ "cC0ALIE4zpcdezmr53ACloYfTwDy4onl6VKVjwhfZ6PglwZRkOLjSRMbmSScJPGF\n"
+ "pMx29dhXEFeCyAdqU+H9Bhu0cIwHUeFp4BM1j8NsW6GHLIzioc5f70EX76M9FyRA\n"
+ "EB/csmEGX37vNjPmmyki6SJ2nFoa7C9o3ty7IzoUdrU8Cfj9o6WdEfCRlIuxLWra\n"
+ "LFQrduuhk3sZYU2adZa3hJJ3Y+jx0lUBO4TxtO1Maf39Rfp4BzK1WybjCpDnO/Xg\n"
+ "kU5hDjQX9zRWYPcwPMGEv3wJAezTsp/mx8UGtIlWVpd0z/oVoKvOrGaxx0RYq5SP\n"
+ "mutaKDCvQ0j6t9wc69fyG5d9iNA3INXLhkFiZqEKpwZsi7RaSjD615EX2GqdIoZ0\n"
+ "Ib4NEtpMv12/7ti1VFVxNNMaDNiOKRg7/Ha5SrRnCabyEuykSUnxjttNjBEazn1M\n"
+ "VWIel0scvDtRFDFGklFuABOJmoYGkAPnIpN+H/l17/VtSWBsPy1rnlfgK2ftm773\n"
+ "5kiEQJn42uh+jbgWaBdt9Q1B+VeV51pnjjc7AgMBAAGjHTAbMAwGA1UdEwQFMAMB\n"
+ "Af8wCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQBgm8eEsLeGo5eI4plQ\n"
+ "WtqvyKrrvpa9YachqmQfoARbMBJg4J0Eq3u3yjL1kUHZ5f0IkXeiaw/w5u2oxZTe\n"
+ "SHHJCCd54NhLzBeTV/GQuDnWqU+GZP3ay+SkzjAMbfkHibVlRZLkeVnDZLRGd5jb\n"
+ "RMXRj1LMVagI1xVM3Y4PEcDw+Bhp4XFHBUcxtcqFrjJQBbJJYE9A2QiPwoDQlYoy\n"
+ "gSvVffbb04bDM01pbYOfPL9t1IIiq7KHHOq0vWzvoU+hnAx+U30wNSaeshKuixNa\n"
+ "PpWKZ1hoejkhddeiypFqhS54oOxaCxArXPFIl/mLPJlztf/s1Xumi0W4fkIACtoY\n"
+ "SFilawtsf/vC/WesFsQ502IkFpjYCeUavk8nAfZPZg1BwQ+ZLcwZXBuCtqyn9Mk9\n"
+ "3UgHAiwMLDqeSQShjHWkBeLr5IOYMubT6SuLpd13rz2WOj6ETq7zizUanV8yAeaT\n"
+ "x/pn1/rVpbzrbEAL5RkYlUK0ZbwpKjTLygiHUXFqpiID4L1OXoJbtbgSQlXFTEXV\n"
+ "AnG40QNerXjQ8b+BlmFmCY2nxtNFgtVLUHb4vyG1mUcNIYafH+9TD5tUdzDVZP90\n"
+ "NnU+8i3Ah3qk9B4Cv9wdHY4Mq/m2jTZd060oGb5l5381Ju5tr2BE+xPXCzSk7TsL\n"
+ "tdq43/hGqq4D2YGCc9E0WnOVxw==\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEwTCCAqmgAwIBAgIIFv+PS+AkgjowDQYJKoZIhvcNAQELBQAwETEPMA0GA1UE\n"
+ "AxMGcm9vdGNhMB4XDTE5MTAyNDE0MDMwMFoXDTIwMTAyNDE0MDMwMFowETEPMA0G\n"
+ "A1UEAxMGcm9vdGNhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtjmj\n"
+ "zSdA5BY0mdY4QvpWD9Qfziv1M/hlYqVaYLgr6mLRL7zHu4UFTLEV99L9JpZ6jEjb\n"
+ "AGZ7MyMCXWAVBMLGyiPF+BL0rL19vF1oAN4spbsHxQdHOso7wj0qGF7zahTzu8Bh\n"
+ "QVdwLQAsgTjOlx17OavncAKWhh9PAPLiieXpUpWPCF9no+CXBlGQ4uNJExuZJJwk\n"
+ "8YWkzHb12FcQV4LIB2pT4f0GG7RwjAdR4WngEzWPw2xboYcsjOKhzl/vQRfvoz0X\n"
+ "JEAQH9yyYQZffu82M+abKSLpInacWhrsL2je3LsjOhR2tTwJ+P2jpZ0R8JGUi7Et\n"
+ "atosVCt266GTexlhTZp1lreEkndj6PHSVQE7hPG07Uxp/f1F+ngHMrVbJuMKkOc7\n"
+ "9eCRTmEONBf3NFZg9zA8wYS/fAkB7NOyn+bHxQa0iVZWl3TP+hWgq86sZrHHRFir\n"
+ "lI+a61ooMK9DSPq33Bzr1/Ibl32I0Dcg1cuGQWJmoQqnBmyLtFpKMPrXkRfYap0i\n"
+ "hnQhvg0S2ky/Xb/u2LVUVXE00xoM2I4pGDv8drlKtGcJpvIS7KRJSfGO202MERrO\n"
+ "fUxVYh6XSxy8O1EUMUaSUW4AE4mahgaQA+cik34f+XXv9W1JYGw/LWueV+ArZ+2b\n"
+ "vvfmSIRAmfja6H6NuBZoF231DUH5V5XnWmeONzsCAwEAAaMdMBswDAYDVR0TBAUw\n"
+ "AwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAAk7UHoAWMRlcCtH\n"
+ "qPH4YOuqqhMEqrJ3nRrRffDmRNCy/R2OpYRmI37HItaWmAB/aGK6H3nQG5fHY1/e\n"
+ "Ypn/uwpYyvpMtYZgeNNFHckXcWQo3C7wOlCwQzWzI9po0zRp3EqTNBneKa4cZoe0\n"
+ "FxcMfLbHL4SRKE08PZ3NBRW4n01fjjSs3o4cXvhD6puMTwjL581tWhgmfTrYGMvH\n"
+ "i7/XSUuFKzj74dA1LioEvbi5qy4kCvy1zxLMySXRd8ZtdnlS/tP3dTx+f1qCZaH6\n"
+ "E3jE7pi24yRmQaiNaO8Ap4uKcPaMXCsqg+TNTID3QJx6hDgQYsD7P64cUJXXhT/S\n"
+ "bmdawUaWhwZXVCm2VIpYI3GYhnEVpovyqHOsopNfrabCzvuVB/d4wJBO9MJUk/0l\n"
+ "BBCTJx3DluvkjKlDWxVDgpofElbU+77mEKLLki4G0f12biJLXOoS+jYayHSKbNlT\n"
+ "5qzXO3swPMNyS1iBdJtmsh3d5JxHa96UlBgKa5pZY2vk+rHUP0j5aLPMqqCixOpE\n"
+ "rYX6hvg898wlR2enXY//dgnvgprDW9Fs1x/PdaFx6p1EFpGuJX/td7CK633MsRbu\n"
+ "dirhB+L70skZjiGGR/kY0i6edHFiMoqmyXm3ML9ID3ZWfQV9gDCCIKvz9SqpW08q\n"
+ "dZHbP85IPw8a3Lzour7HV3acvaKA\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
- sizeof(server_cert_pem)-1
+ sizeof(server_cert_pem) - 1
};
static unsigned char ca_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIEwTCCAqmgAwIBAgIIFv+PS+AkgjowDQYJKoZIhvcNAQELBQAwETEPMA0GA1UE\n"
-"AxMGcm9vdGNhMB4XDTE5MTAyNDE0MDMwMFoXDTIwMTAyNDE0MDMwMFowETEPMA0G\n"
-"A1UEAxMGcm9vdGNhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtjmj\n"
-"zSdA5BY0mdY4QvpWD9Qfziv1M/hlYqVaYLgr6mLRL7zHu4UFTLEV99L9JpZ6jEjb\n"
-"AGZ7MyMCXWAVBMLGyiPF+BL0rL19vF1oAN4spbsHxQdHOso7wj0qGF7zahTzu8Bh\n"
-"QVdwLQAsgTjOlx17OavncAKWhh9PAPLiieXpUpWPCF9no+CXBlGQ4uNJExuZJJwk\n"
-"8YWkzHb12FcQV4LIB2pT4f0GG7RwjAdR4WngEzWPw2xboYcsjOKhzl/vQRfvoz0X\n"
-"JEAQH9yyYQZffu82M+abKSLpInacWhrsL2je3LsjOhR2tTwJ+P2jpZ0R8JGUi7Et\n"
-"atosVCt266GTexlhTZp1lreEkndj6PHSVQE7hPG07Uxp/f1F+ngHMrVbJuMKkOc7\n"
-"9eCRTmEONBf3NFZg9zA8wYS/fAkB7NOyn+bHxQa0iVZWl3TP+hWgq86sZrHHRFir\n"
-"lI+a61ooMK9DSPq33Bzr1/Ibl32I0Dcg1cuGQWJmoQqnBmyLtFpKMPrXkRfYap0i\n"
-"hnQhvg0S2ky/Xb/u2LVUVXE00xoM2I4pGDv8drlKtGcJpvIS7KRJSfGO202MERrO\n"
-"fUxVYh6XSxy8O1EUMUaSUW4AE4mahgaQA+cik34f+XXv9W1JYGw/LWueV+ArZ+2b\n"
-"vvfmSIRAmfja6H6NuBZoF231DUH5V5XnWmeONzsCAwEAAaMdMBswDAYDVR0TBAUw\n"
-"AwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAAk7UHoAWMRlcCtH\n"
-"qPH4YOuqqhMEqrJ3nRrRffDmRNCy/R2OpYRmI37HItaWmAB/aGK6H3nQG5fHY1/e\n"
-"Ypn/uwpYyvpMtYZgeNNFHckXcWQo3C7wOlCwQzWzI9po0zRp3EqTNBneKa4cZoe0\n"
-"FxcMfLbHL4SRKE08PZ3NBRW4n01fjjSs3o4cXvhD6puMTwjL581tWhgmfTrYGMvH\n"
-"i7/XSUuFKzj74dA1LioEvbi5qy4kCvy1zxLMySXRd8ZtdnlS/tP3dTx+f1qCZaH6\n"
-"E3jE7pi24yRmQaiNaO8Ap4uKcPaMXCsqg+TNTID3QJx6hDgQYsD7P64cUJXXhT/S\n"
-"bmdawUaWhwZXVCm2VIpYI3GYhnEVpovyqHOsopNfrabCzvuVB/d4wJBO9MJUk/0l\n"
-"BBCTJx3DluvkjKlDWxVDgpofElbU+77mEKLLki4G0f12biJLXOoS+jYayHSKbNlT\n"
-"5qzXO3swPMNyS1iBdJtmsh3d5JxHa96UlBgKa5pZY2vk+rHUP0j5aLPMqqCixOpE\n"
-"rYX6hvg898wlR2enXY//dgnvgprDW9Fs1x/PdaFx6p1EFpGuJX/td7CK633MsRbu\n"
-"dirhB+L70skZjiGGR/kY0i6edHFiMoqmyXm3ML9ID3ZWfQV9gDCCIKvz9SqpW08q\n"
-"dZHbP85IPw8a3Lzour7HV3acvaKA\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIEwTCCAqmgAwIBAgIIFv+PS+AkgjowDQYJKoZIhvcNAQELBQAwETEPMA0GA1UE\n"
+ "AxMGcm9vdGNhMB4XDTE5MTAyNDE0MDMwMFoXDTIwMTAyNDE0MDMwMFowETEPMA0G\n"
+ "A1UEAxMGcm9vdGNhMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtjmj\n"
+ "zSdA5BY0mdY4QvpWD9Qfziv1M/hlYqVaYLgr6mLRL7zHu4UFTLEV99L9JpZ6jEjb\n"
+ "AGZ7MyMCXWAVBMLGyiPF+BL0rL19vF1oAN4spbsHxQdHOso7wj0qGF7zahTzu8Bh\n"
+ "QVdwLQAsgTjOlx17OavncAKWhh9PAPLiieXpUpWPCF9no+CXBlGQ4uNJExuZJJwk\n"
+ "8YWkzHb12FcQV4LIB2pT4f0GG7RwjAdR4WngEzWPw2xboYcsjOKhzl/vQRfvoz0X\n"
+ "JEAQH9yyYQZffu82M+abKSLpInacWhrsL2je3LsjOhR2tTwJ+P2jpZ0R8JGUi7Et\n"
+ "atosVCt266GTexlhTZp1lreEkndj6PHSVQE7hPG07Uxp/f1F+ngHMrVbJuMKkOc7\n"
+ "9eCRTmEONBf3NFZg9zA8wYS/fAkB7NOyn+bHxQa0iVZWl3TP+hWgq86sZrHHRFir\n"
+ "lI+a61ooMK9DSPq33Bzr1/Ibl32I0Dcg1cuGQWJmoQqnBmyLtFpKMPrXkRfYap0i\n"
+ "hnQhvg0S2ky/Xb/u2LVUVXE00xoM2I4pGDv8drlKtGcJpvIS7KRJSfGO202MERrO\n"
+ "fUxVYh6XSxy8O1EUMUaSUW4AE4mahgaQA+cik34f+XXv9W1JYGw/LWueV+ArZ+2b\n"
+ "vvfmSIRAmfja6H6NuBZoF231DUH5V5XnWmeONzsCAwEAAaMdMBswDAYDVR0TBAUw\n"
+ "AwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAAk7UHoAWMRlcCtH\n"
+ "qPH4YOuqqhMEqrJ3nRrRffDmRNCy/R2OpYRmI37HItaWmAB/aGK6H3nQG5fHY1/e\n"
+ "Ypn/uwpYyvpMtYZgeNNFHckXcWQo3C7wOlCwQzWzI9po0zRp3EqTNBneKa4cZoe0\n"
+ "FxcMfLbHL4SRKE08PZ3NBRW4n01fjjSs3o4cXvhD6puMTwjL581tWhgmfTrYGMvH\n"
+ "i7/XSUuFKzj74dA1LioEvbi5qy4kCvy1zxLMySXRd8ZtdnlS/tP3dTx+f1qCZaH6\n"
+ "E3jE7pi24yRmQaiNaO8Ap4uKcPaMXCsqg+TNTID3QJx6hDgQYsD7P64cUJXXhT/S\n"
+ "bmdawUaWhwZXVCm2VIpYI3GYhnEVpovyqHOsopNfrabCzvuVB/d4wJBO9MJUk/0l\n"
+ "BBCTJx3DluvkjKlDWxVDgpofElbU+77mEKLLki4G0f12biJLXOoS+jYayHSKbNlT\n"
+ "5qzXO3swPMNyS1iBdJtmsh3d5JxHa96UlBgKa5pZY2vk+rHUP0j5aLPMqqCixOpE\n"
+ "rYX6hvg898wlR2enXY//dgnvgprDW9Fs1x/PdaFx6p1EFpGuJX/td7CK633MsRbu\n"
+ "dirhB+L70skZjiGGR/kY0i6edHFiMoqmyXm3ML9ID3ZWfQV9gDCCIKvz9SqpW08q\n"
+ "dZHbP85IPw8a3Lzour7HV3acvaKA\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t ca_cert = { ca_cert_pem,
sizeof(ca_cert_pem)
};
static unsigned char server_key_pem[] =
-"-----BEGIN RSA PRIVATE KEY-----\n"
-"MIIEogIBAAKCAQEAqAGIIEvH16p7a1wJ2TIO9BvdRkxH8azWYdqJb3NRuqceQwP8\n"
-"37QH4lFx9bY/ladBFOVKtYz+AUmH69rRa2e7RVlZ0EeHJHxWrrYOyQ1FJdRJOxBW\n"
-"qS1oyYD/I9iJi1jnTr1ZQGhrUYPbcFFp6iKcu2YERpQi+wB0I9DlsJ1pVIU4uWe4\n"
-"PEXr9s4BAALkQndQMB2qoaYcJAAlwqIKKba20Iiq4uoCyBqUcwooEB0SbTWj4s7o\n"
-"U4crU6TADVYaIM1qiMSiMxLzvH1WOZ2Jqa8+4AAssAwxDd+HwPGoBYDil+RhYkp6\n"
-"GeU8d2M9+Q4aNS+l7OxZ6/k8EkqnnHpx72+WAwIDAQABAoIBAEw4Ba3BM3SgH0Xh\n"
-"h4ZFs4sDaSuPR8RYiRnzrw4k3xsy3gPBN2O1pS4DjRPQDqCyNFBqha4/vKyQ010o\n"
-"9IEpmkgn9RsMmD7xOdIhPivwHULAQEjPbMFrnHJuV1HH1v6k4qtSM7+In8dnbpJS\n"
-"HR7ffQN3kNEEO6pr1kS5bLrnbvWsjpKcqELOMJfJY+uMS/GhITfrhWtm0PagZ1ze\n"
-"w/WYHTkgzGOgBeJuOjb6jCfLOuNDsP/RKALnq7eGeHce8w1tRFkpnxHrCquisgaQ\n"
-"ZpFIwG8r8VgwRgd/ydjD1+jMgIwx1NW2GBnX91uLCe6/hTMDAub6TPYZkqiHIlDZ\n"
-"UcMg5eECgYEA0kdGFO4XjlpLg5y5FmZSNH0UhEYbn67PTb9DMi3ecDPH5zSjbiYa\n"
-"0JCFYQqRTPBl6D/cRIIIaWJOBIg7DgzELFTqnZlpWuenSef9sHNIQp/6XhT75aLD\n"
-"EUJgcP3oyV0MOhGp48ZnYgmbnBZuoQKpuWV39IqqgSlAUKjTcFQAV9UCgYEAzIk/\n"
-"eTkd1tOh+K22pGBaz8hHi5+YJ/YpHKSjryI2I0PgtmrWL8S284pySkGU+oFV4N8Z\n"
-"Ajh5+26DVWxQK8LAqRYlgrooF/+85FJuGx47BhnTCVxmypOZILJ0jeJk8StBrAUk\n"
-"TvcEVcQr8kFSvUPyz1codEFTECsMYbKP37aeuncCgYBnOa3hoG/X5eOkHE+P+3Ln\n"
-"aW+k73WoEfyaQgYOoA3OLt03VtPTwsjvEcMoPDPP/UNJm+/Zgav3b9a0ytuSrhmv\n"
-"WZBDBYh+o7Gvyj7zW+RhMH+Lp+lwdVIlKtyFG2AnWZIi/4DS3BbsPaMyIKD2UYRY\n"
-"CsO0PE4vUbzM29PQFKyGcQKBgG3hrf/p92XZ/EIk0OIuAZtu9UDFVHDjheKlcGo9\n"
-"7uezJ53Yd4jiHYdo8U2DPg32PbS5Ji5TOPUiwdu6fLeFwQsVosFAURnTgh8HSa+3\n"
-"5e25Ie79fRuHf9RZCtTOs3v8ySMpAACMJAAPi6xx+4lCX8eUA1+xWHZvKg+yZijB\n"
-"azSxAoGABIvXwUi1NaRDF/fMDiwiwnlJf8FdfY3RBbM1X3ZJbhzqxGL3Hfc4vRcB\n"
-"zl7xUnP5Ot9trof6AjHsYCRW+FFjrbUs0x56KoIDCTsd8uArmquyKnSrQb+Zu4FK\n"
-"b9M8/NMq3h3Ub+yO/YBm1HOSWeJs8pNSMU72j3QhorNIjAsLGyE=\n"
- "-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEogIBAAKCAQEAqAGIIEvH16p7a1wJ2TIO9BvdRkxH8azWYdqJb3NRuqceQwP8\n"
+ "37QH4lFx9bY/ladBFOVKtYz+AUmH69rRa2e7RVlZ0EeHJHxWrrYOyQ1FJdRJOxBW\n"
+ "qS1oyYD/I9iJi1jnTr1ZQGhrUYPbcFFp6iKcu2YERpQi+wB0I9DlsJ1pVIU4uWe4\n"
+ "PEXr9s4BAALkQndQMB2qoaYcJAAlwqIKKba20Iiq4uoCyBqUcwooEB0SbTWj4s7o\n"
+ "U4crU6TADVYaIM1qiMSiMxLzvH1WOZ2Jqa8+4AAssAwxDd+HwPGoBYDil+RhYkp6\n"
+ "GeU8d2M9+Q4aNS+l7OxZ6/k8EkqnnHpx72+WAwIDAQABAoIBAEw4Ba3BM3SgH0Xh\n"
+ "h4ZFs4sDaSuPR8RYiRnzrw4k3xsy3gPBN2O1pS4DjRPQDqCyNFBqha4/vKyQ010o\n"
+ "9IEpmkgn9RsMmD7xOdIhPivwHULAQEjPbMFrnHJuV1HH1v6k4qtSM7+In8dnbpJS\n"
+ "HR7ffQN3kNEEO6pr1kS5bLrnbvWsjpKcqELOMJfJY+uMS/GhITfrhWtm0PagZ1ze\n"
+ "w/WYHTkgzGOgBeJuOjb6jCfLOuNDsP/RKALnq7eGeHce8w1tRFkpnxHrCquisgaQ\n"
+ "ZpFIwG8r8VgwRgd/ydjD1+jMgIwx1NW2GBnX91uLCe6/hTMDAub6TPYZkqiHIlDZ\n"
+ "UcMg5eECgYEA0kdGFO4XjlpLg5y5FmZSNH0UhEYbn67PTb9DMi3ecDPH5zSjbiYa\n"
+ "0JCFYQqRTPBl6D/cRIIIaWJOBIg7DgzELFTqnZlpWuenSef9sHNIQp/6XhT75aLD\n"
+ "EUJgcP3oyV0MOhGp48ZnYgmbnBZuoQKpuWV39IqqgSlAUKjTcFQAV9UCgYEAzIk/\n"
+ "eTkd1tOh+K22pGBaz8hHi5+YJ/YpHKSjryI2I0PgtmrWL8S284pySkGU+oFV4N8Z\n"
+ "Ajh5+26DVWxQK8LAqRYlgrooF/+85FJuGx47BhnTCVxmypOZILJ0jeJk8StBrAUk\n"
+ "TvcEVcQr8kFSvUPyz1codEFTECsMYbKP37aeuncCgYBnOa3hoG/X5eOkHE+P+3Ln\n"
+ "aW+k73WoEfyaQgYOoA3OLt03VtPTwsjvEcMoPDPP/UNJm+/Zgav3b9a0ytuSrhmv\n"
+ "WZBDBYh+o7Gvyj7zW+RhMH+Lp+lwdVIlKtyFG2AnWZIi/4DS3BbsPaMyIKD2UYRY\n"
+ "CsO0PE4vUbzM29PQFKyGcQKBgG3hrf/p92XZ/EIk0OIuAZtu9UDFVHDjheKlcGo9\n"
+ "7uezJ53Yd4jiHYdo8U2DPg32PbS5Ji5TOPUiwdu6fLeFwQsVosFAURnTgh8HSa+3\n"
+ "5e25Ie79fRuHf9RZCtTOs3v8ySMpAACMJAAPi6xx+4lCX8eUA1+xWHZvKg+yZijB\n"
+ "azSxAoGABIvXwUi1NaRDF/fMDiwiwnlJf8FdfY3RBbM1X3ZJbhzqxGL3Hfc4vRcB\n"
+ "zl7xUnP5Ot9trof6AjHsYCRW+FFjrbUs0x56KoIDCTsd8uArmquyKnSrQb+Zu4FK\n"
+ "b9M8/NMq3h3Ub+yO/YBm1HOSWeJs8pNSMU72j3QhorNIjAsLGyE=\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t server_key = { server_key_pem,
- sizeof(server_key_pem)-1
+ sizeof(server_key_pem) - 1
};
static int sent = 0;
static int received = 0;
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
success("received status request\n");
received = 1;
return 0;
}
-#define RESP "\x30\x82\x05\xa3\x0a\x01\x00\xa0\x82\x05\x9c\x30\x82\x05\x98\x06\x09\x2b\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x05\x89\x30\x82\x05\x85\x30\x81\x80\xa1\x02\x30\x00\x18\x0f\x32\x30\x31\x39\x31\x32\x30\x35\x31\x38\x30\x31\x30\x34\x5a\x30\x69\x30\x67\x30\x41\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\x46\x2c\x91\xc8\xd2\x57\xe2\xb8\xb1\xd3\xd0\x99\xc1\xfe\x38\x51\x0e\x17\xa9\x50\x04\x14\x11\x92\x6c\xe3\xa7\x50\x77\x21\xfe\x95\xfa\xca\x6d\x3f\xc7\xa9\xaf\xa4\x9e\x82\x02\x08\x46\x20\x50\x03\xa2\x85\x06\x3d\xa1\x11\x18\x0f\x32\x30\x31\x39\x31\x32\x30\x35\x31\x35\x32\x37\x35\x35\x5a\x18\x0f\x32\x30\x31\x39\x31\x32\x30\x35\x31\x38\x30\x31\x30\x34\x5a\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b\x05\x00\x03\x82\x01\x01\x00\x05\x88\x2c\x3d\x57\xf4\x75\xbf\x7f\xbe\x9e\x0f\xdf\x8f\x6c\x5f\x08\x56\xc4\x04\xc6\xd6\x3c\xfa\x33\x54\x3e\x42\x1c\x77\xda\x3a\x2a\x48\xcf\xfd\xf1\x6e\xb5\x1d\x94\x06\xfa\xfd\xf8\xba\xec\x66\xc3\x22\x7c\x43\xaa\x48\xaa\x58\x3a\xdc\x2a\x55\x44\x78\xc5\x6e\x0d\x1e\x66\xff\x79\x33\xb3\x26\x22\x86\xa0\x0a\xc0\x59\xb1\xdf\x6d\x07\x2d\x86\x2d\x5b\x0b\x29\x0f\xf3\xc1\x39\x21\x05\xf9\xdb\xdd\x47\x11\x6b\x83\xa0\xc7\x24\xbc\xaa\x42\x43\x9e\x20\x1f\x63\x10\x6c\xeb\x94\x7a\x9c\x44\xaa\x24\xfb\xde\x8f\x49\x92\x1c\xc7\x45\x21\xca\xf9\x1a\x11\x54\x4f\x68\xab\xf0\xce\xd3\x0a\xdc\x9f\xc3\x5d\x8d\x7e\xd4\x96\x30\x74\x31\x95\x04\x55\x8d\xf5\xdf\x3f\x34\x8b\x32\xfc\xf0\x4d\x10\xc6\xc4\x46\xfc\x6a\xb1\xa3\x5c\x9a\xde\xf2\x22\xc3\x5f\x08\x8a\x70\x65\xff\xaa\xf5\xc0\x14\x8b\x13\x47\xff\x0c\x72\x6a\x09\x51\xeb\xec\x92\xc5\xfd\x41\x37\x11\x12\x57\x7b\x47\x9e\x25\xd5\xf2\x10\xc2\xf7\xae\x0e\x72\xfb\x2d\x4f\x8d\x54\xe6\x5a\x71\x2b\xfa\x2b\x9c\xd7\x59\xe5\x31\x30\x21\x3f\x7f\xa7\x85\x07\x31\x93\x9d\x6d\x54\xb2\x40\xa9\x78\xef\x24\xc7\xa0\x82\x03\xea\x30\x82\x03\xe6\x30\x82\x03\xe2\x30\x82\x01\xca\xa0\x03\x02\x01\x02\x02\x08\x68\xfe\x28\x8e\x92\xfb\xa8\x37\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b\x05\x00\x30\x11\x31\x0f\x30\x0d\x06\x03\x55\x04\x03\x13\x06\x72\x6f\x6f\x74\x63\x61\x30\x1e\x17\x0d\x31\x39\x31\x31\x32\x30\x31\x36\x32\x34\x30\x30\x5a\x17\x0d\x32\x30\x31\x30\x32\x34\x31\x34\x30\x33\x30\x30\x5a\x30\x00\x30\x82\x01\x22\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x82\x01\x0f\x00\x30\x82\x01\x0a\x02\x82\x01\x01\x00\xa8\x01\x88\x20\x4b\xc7\xd7\xaa\x7b\x6b\x5c\x09\xd9\x32\x0e\xf4\x1b\xdd\x46\x4c\x47\xf1\xac\xd6\x61\xda\x89\x6f\x73\x51\xba\xa7\x1e\x43\x03\xfc\xdf\xb4\x07\xe2\x51\x71\xf5\xb6\x3f\x95\xa7\x41\x14\xe5\x4a\xb5\x8c\xfe\x01\x49\x87\xeb\xda\xd1\x6b\x67\xbb\x45\x59\x59\xd0\x47\x87\x24\x7c\x56\xae\xb6\x0e\xc9\x0d\x45\x25\xd4\x49\x3b\x10\x56\xa9\x2d\x68\xc9\x80\xff\x23\xd8\x89\x8b\x58\xe7\x4e\xbd\x59\x40\x68\x6b\x51\x83\xdb\x70\x51\x69\xea\x22\x9c\xbb\x66\x04\x46\x94\x22\xfb\x00\x74\x23\xd0\xe5\xb0\x9d\x69\x54\x85\x38\xb9\x67\xb8\x3c\x45\xeb\xf6\xce\x01\x00\x02\xe4\x42\x77\x50\x30\x1d\xaa\xa1\xa6\x1c\x24\x00\x25\xc2\xa2\x0a\x29\xb6\xb6\xd0\x88\xaa\xe2\xea\x02\xc8\x1a\x94\x73\x0a\x28\x10\x1d\x12\x6d\x35\xa3\xe2\xce\xe8\x53\x87\x2b\x53\xa4\xc0\x0d\x56\x1a\x20\xcd\x6a\x88\xc4\xa2\x33\x12\xf3\xbc\x7d\x56\x39\x9d\x89\xa9\xaf\x3e\xe0\x00\x2c\xb0\x0c\x31\x0d\xdf\x87\xc0\xf1\xa8\x05\x80\xe2\x97\xe4\x61\x62\x4a\x7a\x19\xe5\x3c\x77\x63\x3d\xf9\x0e\x1a\x35\x2f\xa5\xec\xec\x59\xeb\xf9\x3c\x12\x4a\xa7\x9c\x7a\x71\xef\x6f\x96\x03\x02\x03\x01\x00\x01\xa3\x4f\x30\x4d\x30\x09\x06\x03\x55\x1d\x13\x04\x02\x30\x00\x30\x0b\x06\x03\x55\x1d\x0f\x04\x04\x03\x02\x07\x80\x30\x13\x06\x03\x55\x1d\x25\x04\x0c\x30\x0a\x06\x08\x2b\x06\x01\x05\x05\x07\x03\x09\x30\x1e\x06\x09\x60\x86\x48\x01\x86\xf8\x42\x01\x0d\x04\x11\x16\x0f\x78\x63\x61\x20\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b\x05\x00\x03\x82\x02\x01\x00\x82\x9d\x8f\xa1\x17\x9b\x3b\xee\x86\x1c\xee\x33\xeb\x80\x71\xb5\x7e\x6b\xd7\xcf\x7d\x9a\x8b\x80\x2b\x3c\x65\xde\xe1\x65\x00\x3b\x4a\x27\x7a\x5d\x63\x19\x4e\x59\xde\xfa\x38\x01\x2b\x09\x91\xc1\x70\x81\x8c\x87\x9b\x17\x68\x22\x88\xf2\x57\x8f\x15\x52\x12\x0f\x1d\x43\x2b\xff\x83\x00\x2f\xd0\xf5\xc7\x93\xd4\xf2\x14\xfd\x94\xcc\x9f\x72\x75\x99\x44\x54\xdc\x6a\x39\x75\x80\xd7\x07\x9c\xb9\x67\xe3\xac\x4b\x72\x9f\xe0\x5d\x00\x6e\x60\xc5\x26\xaf\x9f\xf7\x94\xaa\xb1\xa2\x6f\xa0\xe4\xe8\x0d\x1c\x4e\x34\xe8\xa5\x06\x5c\x31\x64\x09\xf3\x67\xea\xe8\x45\x68\xc1\x13\x21\x41\x38\x9c\x2c\xf9\x6c\xb8\x79\xf4\xae\x8c\x27\x12\xa3\x0a\x0f\x12\x56\xbc\xda\x77\x23\xf0\xe2\xa2\x81\xf9\xdd\x0d\x69\x77\xc3\x3d\x08\x9d\xfe\xac\x18\x14\x83\x49\x67\xde\x85\x3a\x09\xd4\x4f\xec\x85\x85\xbc\xab\xd1\xc8\x01\x83\x74\x34\xc0\x03\x4e\x52\x3c\xb2\xed\x3b\xc0\x66\xa7\x41\xbf\x77\x3b\xcc\x12\xee\xf9\x2f\xd8\x50\x6d\x54\xc5\xf8\x5e\x14\x61\x81\x24\xdb\xcb\xf3\xb4\x25\x84\xc6\x3b\x99\x35\x07\x2e\xd0\xb3\x05\x38\xdf\x64\x21\x71\x9e\xe2\xf2\xce\xbc\x27\x80\x4e\x53\x97\xd3\xe1\xc1\x15\x46\x24\x0c\xc5\x86\x0e\x5b\xdf\x22\xb9\xfe\x35\xd6\xf0\x53\xda\x8f\x9b\x9c\x77\x7e\x9e\x41\x6f\x8e\xbc\x7b\xd4\xf0\x6c\x4f\xac\xe2\x91\x69\x8f\x67\x48\xb0\xc8\x80\x06\x10\xb1\x33\xf9\x8b\xf0\x01\x5d\x49\x9a\x5a\x59\xec\xc6\xb4\xad\x79\x9a\x32\x87\x81\x18\xce\x77\xf6\xc6\xa5\xce\x8b\x36\xee\xc6\xcc\x6b\xd7\x76\xbb\x99\xc1\x34\x2c\xda\x6a\x5f\x1d\x47\xc6\x9e\x98\xa0\x1d\xf0\xd4\x8b\x27\x8a\xa4\x7b\x56\xd8\x7c\x12\xa2\x51\x6e\xd1\x52\xa9\xa5\x31\x77\x9f\xf5\x06\xb4\xba\xb4\x60\x24\x55\xa2\x9d\x4b\x02\xcb\xa7\x62\xa5\x3d\x74\x9e\x47\x9e\x14\x84\x0b\x24\xe0\x01\x13\x9c\xf1\x62\xbd\x78\x18\x9b\xa5\xdf\xd8\x77\x7c\xa9\xc7\x09\x94\x61\x79\x41\x60\x2f\xcc\xe1\x15\x28\x3c\x17\x1d\xb6\x95\x78\x28\x91\x9e\xd1\xbc\xd6\x71\xff\x29\x2f\x22\xed\x24\x26\x81\xb8\xb6\x14\x80\x04\x00\x95\xdf\x50\x46\xe6\xa1\xff\x56\x94\xbc\x11\x48\x5c\xbf\xca\xb7\x4f\xac\xa1\x34\x40\x80\x0d\x88\x27\x73\x76\x24\x1a\xa9\x86\x36\x56\x3c\x84\xb8\x97\x38\xa8\x0e\x14\xab\x83\xca\x6b\x64\x7f\xa7\xfb\x86\x63\xc2\x40\xfc"
-#define RESP_SIZE (sizeof(RESP)-1)
+# define RESP "\x30\x82\x05\xa3\x0a\x01\x00\xa0\x82\x05\x9c\x30\x82\x05\x98\x06\x09\x2b\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x05\x89\x30\x82\x05\x85\x30\x81\x80\xa1\x02\x30\x00\x18\x0f\x32\x30\x31\x39\x31\x32\x30\x35\x31\x38\x30\x31\x30\x34\x5a\x30\x69\x30\x67\x30\x41\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\x46\x2c\x91\xc8\xd2\x57\xe2\xb8\xb1\xd3\xd0\x99\xc1\xfe\x38\x51\x0e\x17\xa9\x50\x04\x14\x11\x92\x6c\xe3\xa7\x50\x77\x21\xfe\x95\xfa\xca\x6d\x3f\xc7\xa9\xaf\xa4\x9e\x82\x02\x08\x46\x20\x50\x03\xa2\x85\x06\x3d\xa1\x11\x18\x0f\x32\x30\x31\x39\x31\x32\x30\x35\x31\x35\x32\x37\x35\x35\x5a\x18\x0f\x32\x30\x31\x39\x31\x32\x30\x35\x31\x38\x30\x31\x30\x34\x5a\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b\x05\x00\x03\x82\x01\x01\x00\x05\x88\x2c\x3d\x57\xf4\x75\xbf\x7f\xbe\x9e\x0f\xdf\x8f\x6c\x5f\x08\x56\xc4\x04\xc6\xd6\x3c\xfa\x33\x54\x3e\x42\x1c\x77\xda\x3a\x2a\x48\xcf\xfd\xf1\x6e\xb5\x1d\x94\x06\xfa\xfd\xf8\xba\xec\x66\xc3\x22\x7c\x43\xaa\x48\xaa\x58\x3a\xdc\x2a\x55\x44\x78\xc5\x6e\x0d\x1e\x66\xff\x79\x33\xb3\x26\x22\x86\xa0\x0a\xc0\x59\xb1\xdf\x6d\x07\x2d\x86\x2d\x5b\x0b\x29\x0f\xf3\xc1\x39\x21\x05\xf9\xdb\xdd\x47\x11\x6b\x83\xa0\xc7\x24\xbc\xaa\x42\x43\x9e\x20\x1f\x63\x10\x6c\xeb\x94\x7a\x9c\x44\xaa\x24\xfb\xde\x8f\x49\x92\x1c\xc7\x45\x21\xca\xf9\x1a\x11\x54\x4f\x68\xab\xf0\xce\xd3\x0a\xdc\x9f\xc3\x5d\x8d\x7e\xd4\x96\x30\x74\x31\x95\x04\x55\x8d\xf5\xdf\x3f\x34\x8b\x32\xfc\xf0\x4d\x10\xc6\xc4\x46\xfc\x6a\xb1\xa3\x5c\x9a\xde\xf2\x22\xc3\x5f\x08\x8a\x70\x65\xff\xaa\xf5\xc0\x14\x8b\x13\x47\xff\x0c\x72\x6a\x09\x51\xeb\xec\x92\xc5\xfd\x41\x37\x11\x12\x57\x7b\x47\x9e\x25\xd5\xf2\x10\xc2\xf7\xae\x0e\x72\xfb\x2d\x4f\x8d\x54\xe6\x5a\x71\x2b\xfa\x2b\x9c\xd7\x59\xe5\x31\x30\x21\x3f\x7f\xa7\x85\x07\x31\x93\x9d\x6d\x54\xb2\x40\xa9\x78\xef\x24\xc7\xa0\x82\x03\xea\x30\x82\x03\xe6\x30\x82\x03\xe2\x30\x82\x01\xca\xa0\x03\x02\x01\x02\x02\x08\x68\xfe\x28\x8e\x92\xfb\xa8\x37\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b\x05\x00\x30\x11\x31\x0f\x30\x0d\x06\x03\x55\x04\x03\x13\x06\x72\x6f\x6f\x74\x63\x61\x30\x1e\x17\x0d\x31\x39\x31\x31\x32\x30\x31\x36\x32\x34\x30\x30\x5a\x17\x0d\x32\x30\x31\x30\x32\x34\x31\x34\x30\x33\x30\x30\x5a\x30\x00\x30\x82\x01\x22\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x01\x05\x00\x03\x82\x01\x0f\x00\x30\x82\x01\x0a\x02\x82\x01\x01\x00\xa8\x01\x88\x20\x4b\xc7\xd7\xaa\x7b\x6b\x5c\x09\xd9\x32\x0e\xf4\x1b\xdd\x46\x4c\x47\xf1\xac\xd6\x61\xda\x89\x6f\x73\x51\xba\xa7\x1e\x43\x03\xfc\xdf\xb4\x07\xe2\x51\x71\xf5\xb6\x3f\x95\xa7\x41\x14\xe5\x4a\xb5\x8c\xfe\x01\x49\x87\xeb\xda\xd1\x6b\x67\xbb\x45\x59\x59\xd0\x47\x87\x24\x7c\x56\xae\xb6\x0e\xc9\x0d\x45\x25\xd4\x49\x3b\x10\x56\xa9\x2d\x68\xc9\x80\xff\x23\xd8\x89\x8b\x58\xe7\x4e\xbd\x59\x40\x68\x6b\x51\x83\xdb\x70\x51\x69\xea\x22\x9c\xbb\x66\x04\x46\x94\x22\xfb\x00\x74\x23\xd0\xe5\xb0\x9d\x69\x54\x85\x38\xb9\x67\xb8\x3c\x45\xeb\xf6\xce\x01\x00\x02\xe4\x42\x77\x50\x30\x1d\xaa\xa1\xa6\x1c\x24\x00\x25\xc2\xa2\x0a\x29\xb6\xb6\xd0\x88\xaa\xe2\xea\x02\xc8\x1a\x94\x73\x0a\x28\x10\x1d\x12\x6d\x35\xa3\xe2\xce\xe8\x53\x87\x2b\x53\xa4\xc0\x0d\x56\x1a\x20\xcd\x6a\x88\xc4\xa2\x33\x12\xf3\xbc\x7d\x56\x39\x9d\x89\xa9\xaf\x3e\xe0\x00\x2c\xb0\x0c\x31\x0d\xdf\x87\xc0\xf1\xa8\x05\x80\xe2\x97\xe4\x61\x62\x4a\x7a\x19\xe5\x3c\x77\x63\x3d\xf9\x0e\x1a\x35\x2f\xa5\xec\xec\x59\xeb\xf9\x3c\x12\x4a\xa7\x9c\x7a\x71\xef\x6f\x96\x03\x02\x03\x01\x00\x01\xa3\x4f\x30\x4d\x30\x09\x06\x03\x55\x1d\x13\x04\x02\x30\x00\x30\x0b\x06\x03\x55\x1d\x0f\x04\x04\x03\x02\x07\x80\x30\x13\x06\x03\x55\x1d\x25\x04\x0c\x30\x0a\x06\x08\x2b\x06\x01\x05\x05\x07\x03\x09\x30\x1e\x06\x09\x60\x86\x48\x01\x86\xf8\x42\x01\x0d\x04\x11\x16\x0f\x78\x63\x61\x20\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x0b\x05\x00\x03\x82\x02\x01\x00\x82\x9d\x8f\xa1\x17\x9b\x3b\xee\x86\x1c\xee\x33\xeb\x80\x71\xb5\x7e\x6b\xd7\xcf\x7d\x9a\x8b\x80\x2b\x3c\x65\xde\xe1\x65\x00\x3b\x4a\x27\x7a\x5d\x63\x19\x4e\x59\xde\xfa\x38\x01\x2b\x09\x91\xc1\x70\x81\x8c\x87\x9b\x17\x68\x22\x88\xf2\x57\x8f\x15\x52\x12\x0f\x1d\x43\x2b\xff\x83\x00\x2f\xd0\xf5\xc7\x93\xd4\xf2\x14\xfd\x94\xcc\x9f\x72\x75\x99\x44\x54\xdc\x6a\x39\x75\x80\xd7\x07\x9c\xb9\x67\xe3\xac\x4b\x72\x9f\xe0\x5d\x00\x6e\x60\xc5\x26\xaf\x9f\xf7\x94\xaa\xb1\xa2\x6f\xa0\xe4\xe8\x0d\x1c\x4e\x34\xe8\xa5\x06\x5c\x31\x64\x09\xf3\x67\xea\xe8\x45\x68\xc1\x13\x21\x41\x38\x9c\x2c\xf9\x6c\xb8\x79\xf4\xae\x8c\x27\x12\xa3\x0a\x0f\x12\x56\xbc\xda\x77\x23\xf0\xe2\xa2\x81\xf9\xdd\x0d\x69\x77\xc3\x3d\x08\x9d\xfe\xac\x18\x14\x83\x49\x67\xde\x85\x3a\x09\xd4\x4f\xec\x85\x85\xbc\xab\xd1\xc8\x01\x83\x74\x34\xc0\x03\x4e\x52\x3c\xb2\xed\x3b\xc0\x66\xa7\x41\xbf\x77\x3b\xcc\x12\xee\xf9\x2f\xd8\x50\x6d\x54\xc5\xf8\x5e\x14\x61\x81\x24\xdb\xcb\xf3\xb4\x25\x84\xc6\x3b\x99\x35\x07\x2e\xd0\xb3\x05\x38\xdf\x64\x21\x71\x9e\xe2\xf2\xce\xbc\x27\x80\x4e\x53\x97\xd3\xe1\xc1\x15\x46\x24\x0c\xc5\x86\x0e\x5b\xdf\x22\xb9\xfe\x35\xd6\xf0\x53\xda\x8f\x9b\x9c\x77\x7e\x9e\x41\x6f\x8e\xbc\x7b\xd4\xf0\x6c\x4f\xac\xe2\x91\x69\x8f\x67\x48\xb0\xc8\x80\x06\x10\xb1\x33\xf9\x8b\xf0\x01\x5d\x49\x9a\x5a\x59\xec\xc6\xb4\xad\x79\x9a\x32\x87\x81\x18\xce\x77\xf6\xc6\xa5\xce\x8b\x36\xee\xc6\xcc\x6b\xd7\x76\xbb\x99\xc1\x34\x2c\xda\x6a\x5f\x1d\x47\xc6\x9e\x98\xa0\x1d\xf0\xd4\x8b\x27\x8a\xa4\x7b\x56\xd8\x7c\x12\xa2\x51\x6e\xd1\x52\xa9\xa5\x31\x77\x9f\xf5\x06\xb4\xba\xb4\x60\x24\x55\xa2\x9d\x4b\x02\xcb\xa7\x62\xa5\x3d\x74\x9e\x47\x9e\x14\x84\x0b\x24\xe0\x01\x13\x9c\xf1\x62\xbd\x78\x18\x9b\xa5\xdf\xd8\x77\x7c\xa9\xc7\x09\x94\x61\x79\x41\x60\x2f\xcc\xe1\x15\x28\x3c\x17\x1d\xb6\x95\x78\x28\x91\x9e\xd1\xbc\xd6\x71\xff\x29\x2f\x22\xed\x24\x26\x81\xb8\xb6\x14\x80\x04\x00\x95\xdf\x50\x46\xe6\xa1\xff\x56\x94\xbc\x11\x48\x5c\xbf\xca\xb7\x4f\xac\xa1\x34\x40\x80\x0d\x88\x27\x73\x76\x24\x1a\xa9\x86\x36\x56\x3c\x84\xb8\x97\x38\xa8\x0e\x14\xab\x83\xca\x6b\x64\x7f\xa7\xfb\x86\x63\xc2\x40\xfc"
+# define RESP_SIZE (sizeof(RESP)-1)
-static int status_func(gnutls_session_t session, void *ptr, gnutls_datum_t *resp)
+static int status_func(gnutls_session_t session, void *ptr,
+ gnutls_datum_t * resp)
{
resp->data = gnutls_malloc(RESP_SIZE);
if (resp->data == NULL)
@@ -254,7 +254,7 @@ static int status_func(gnutls_session_t session, void *ptr, gnutls_datum_t *resp
return 0;
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static int cert_verify_callback(gnutls_session_t session)
{
@@ -293,9 +293,10 @@ static void client(int fd, const char *prio)
*/
gnutls_init(&session, GNUTLS_CLIENT);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
GNUTLS_HOOK_POST,
handshake_callback);
@@ -303,10 +304,10 @@ static void client(int fd, const char *prio)
*/
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
- gnutls_certificate_set_verify_function(x509_cred,
- cert_verify_callback);
+ gnutls_certificate_set_verify_function(x509_cred, cert_verify_callback);
- gnutls_certificate_set_x509_trust_mem(x509_cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ gnutls_certificate_set_x509_trust_mem(x509_cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
gnutls_transport_set_int(session, fd);
@@ -344,7 +345,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
static void server(int fd, const char *prio)
{
int ret;
@@ -364,18 +364,18 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_ocsp_status_request_function(x509_cred, status_func, NULL);
+ gnutls_certificate_set_ocsp_status_request_function(x509_cred,
+ status_func, NULL);
gnutls_init(&session, GNUTLS_SERVER);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
- GNUTLS_HOOK_PRE,
- handshake_callback);
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
+ GNUTLS_HOOK_PRE, handshake_callback);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
diff --git a/tests/status-request.c b/tests/status-request.c
index b50bf500d6..752b222d9a 100644
--- a/tests/status-request.c
+++ b/tests/status-request.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+
+# include "cert-common.h"
+# include "utils.h"
/* This program tests that the client does not send the
* status request extension if GNUTLS_NO_EXTENSIONS is set.
@@ -65,17 +65,18 @@ static void client_log_func(int level, const char *str)
}
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
fail("received status request\n");
exit(1);
}
-
-#define RESP "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
-#define RESP_SIZE (sizeof(RESP)-1)
+# define RESP "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
+# define RESP_SIZE (sizeof(RESP)-1)
-static int status_func(gnutls_session_t session, void *ptr, gnutls_datum_t *resp)
+static int status_func(gnutls_session_t session, void *ptr,
+ gnutls_datum_t * resp)
{
resp->data = gnutls_malloc(RESP_SIZE);
if (resp->data == NULL)
@@ -86,7 +87,7 @@ static int status_func(gnutls_session_t session, void *ptr, gnutls_datum_t *resp
return 0;
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -106,9 +107,10 @@ static void client(int fd, const char *prio)
/* Initialize TLS session
*/
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_NO_EXTENSIONS)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_NO_EXTENSIONS) >=
+ 0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the anonymous credentials to the current session
*/
@@ -135,7 +137,8 @@ static void client(int fd, const char *prio)
success("client: Handshake was completed\n");
}
- assert((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) == 0);
+ assert((gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) == 0);
if (debug)
success("client: TLS version is: %s\n",
@@ -145,14 +148,12 @@ static void client(int fd, const char *prio)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -160,7 +161,7 @@ static void client(int fd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -171,7 +172,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
static void server(int fd, const char *prio)
{
int ret;
@@ -191,18 +191,18 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
- gnutls_certificate_set_ocsp_status_request_function(x509_cred, status_func, NULL);
+ gnutls_certificate_set_ocsp_status_request_function(x509_cred,
+ status_func, NULL);
gnutls_init(&session, GNUTLS_SERVER);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
- GNUTLS_HOOK_PRE,
- handshake_callback);
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CERTIFICATE_STATUS,
+ GNUTLS_HOOK_PRE, handshake_callback);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -216,7 +216,8 @@ static void server(int fd, const char *prio)
goto end;
}
- assert((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) == 0);
+ assert((gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) == 0);
if (debug) {
success("server: Handshake was completed\n");
diff --git a/tests/str-idna.c b/tests/str-idna.c
index 47b40fe318..bd7f9e21ed 100644
--- a/tests/str-idna.c
+++ b/tests/str-idna.c
@@ -31,7 +31,7 @@
#include <gnutls/gnutls.h>
#include <cmocka.h>
-# define GLOBAL_FLAGS 0
+#define GLOBAL_FLAGS 0
#define MATCH_FUNC(fname, str, normalized) \
static void fname(void **glob_state) \
@@ -73,21 +73,23 @@ MATCH_FUNC(fname, str, normalized)
MATCH_FUNC_TWO_WAY(test_ascii, "localhost", "localhost");
MATCH_FUNC_TWO_WAY(test_ascii_caps, "LOCALHOST", "LOCALHOST");
MATCH_FUNC_TWO_WAY(test_greek1, "βόλοσ.com", "xn--nxasmq6b.com");
-MATCH_FUNC_TWO_WAY(test_mix, "简体中文.εξτρα.com", "xn--fiqu1az03c18t.xn--mxah1amo.com");
+MATCH_FUNC_TWO_WAY(test_mix, "简体中文.εξτρα.com",
+ "xn--fiqu1az03c18t.xn--mxah1amo.com");
MATCH_FUNC_TWO_WAY(test_german4, "bücher.de", "xn--bcher-kva.de");
MATCH_FUNC_TWO_WAY(test_u1, "夡夞夜夙", "xn--bssffl");
MATCH_FUNC_TWO_WAY(test_jp2, "日本語.jp", "xn--wgv71a119e.jp");
/* invalid (✌️) symbol in IDNA2008 but valid in IDNA2003. Browsers
* fallback to IDNA2003, and we do too, so that should work */
#if IDN2_VERSION_NUMBER >= 0x02000002
-MATCH_FUNC_TWO_WAY(test_valid_idna2003, "\xe2\x9c\x8c\xef\xb8\x8f.com", "xn--7bi.com");
+MATCH_FUNC_TWO_WAY(test_valid_idna2003, "\xe2\x9c\x8c\xef\xb8\x8f.com",
+ "xn--7bi.com");
#else
EMPTY_FUNC(test_valid_idna2003);
#endif
MATCH_FUNC_TWO_WAY(test_greek2, "βόλος.com", "xn--nxasmm1c.com");
MATCH_FUNC_TWO_WAY(test_german1, "faß.de", "xn--fa-hia.de");
-# if IDN2_VERSION_NUMBER >= 0x00140000
+#if IDN2_VERSION_NUMBER >= 0x00140000
MATCH_FUNC(test_caps_greek, "ΒΌΛΟΣ.com", "xn--nxasmq6b.com");
MATCH_FUNC(test_caps_german1, "Ü.ü", "xn--tda.xn--tda");
MATCH_FUNC(test_caps_german2, "Bücher.de", "xn--bcher-kva.de");
@@ -96,14 +98,14 @@ MATCH_FUNC(test_dots, "a.b.c。d。", "a.b.c.d.");
/* without STD3 ASCII rules, the result is: evil.ca/c..example.com */
MATCH_FUNC(test_evil, "evil.c\u2100.example.com", "evil.c.example.com");
-# else
+#else
EMPTY_FUNC(test_caps_german1);
EMPTY_FUNC(test_caps_german2);
EMPTY_FUNC(test_caps_german3);
EMPTY_FUNC(test_caps_greek);
EMPTY_FUNC(test_dots);
EMPTY_FUNC(test_evil);
-# endif
+#endif
int main(void)
{
diff --git a/tests/str-unicode.c b/tests/str-unicode.c
index 907511c5b1..d0601326bb 100644
--- a/tests/str-unicode.c
+++ b/tests/str-unicode.c
@@ -60,33 +60,44 @@ static void inv_##fname(void **glob_state) \
} \
}
-MATCH_FUNC(test_ascii, "correct horse battery staple", "correct horse battery staple");
-MATCH_FUNC(test_capitals, "Correct Horse Battery Staple", "Correct Horse Battery Staple");
+MATCH_FUNC(test_ascii, "correct horse battery staple",
+ "correct horse battery staple");
+MATCH_FUNC(test_capitals, "Correct Horse Battery Staple",
+ "Correct Horse Battery Staple");
MATCH_FUNC(test_multilang, "\xCF\x80\xC3\x9F\xC3\xA5", "πßå");
-MATCH_FUNC(test_special_char, "\x4A\x61\x63\x6B\x20\x6F\x66\x20\xE2\x99\xA6\x73", "Jack of ♦s");
+MATCH_FUNC(test_special_char,
+ "\x4A\x61\x63\x6B\x20\x6F\x66\x20\xE2\x99\xA6\x73", "Jack of ♦s");
MATCH_FUNC(test_space_replacement, "foo bar", "foo bar");
MATCH_FUNC(test_invalid, "my cat is a \x09 by", NULL);
MATCH_FUNC(test_normalization1, "char \x49\xCC\x87", "char \xC4\xB0");
MATCH_FUNC(test_other_chars, "char \xc2\xbc", "char \xC2\xbc");
MATCH_FUNC(test_spaces, "char \xe2\x80\x89\xe2\x80\x88 ", "char ");
-MATCH_FUNC(test_symbols, "char \xe2\x98\xa3 \xe2\x99\xa3", "char \xe2\x98\xa3 \xe2\x99\xa3");
-MATCH_FUNC(test_compatibility, "char \xcf\x90\xe2\x84\xb5", "char \xcf\x90\xe2\x84\xb5");
+MATCH_FUNC(test_symbols, "char \xe2\x98\xa3 \xe2\x99\xa3",
+ "char \xe2\x98\xa3 \xe2\x99\xa3");
+MATCH_FUNC(test_compatibility, "char \xcf\x90\xe2\x84\xb5",
+ "char \xcf\x90\xe2\x84\xb5");
MATCH_FUNC(test_invalid_ignorable1, "my ignorable char is \xe2\x80\x8f", NULL);
MATCH_FUNC(test_invalid_ignorable2, "my ignorable char is \xe1\x85\x9f", NULL);
MATCH_FUNC(test_invalid_ignorable3, "my ignorable char is \xef\xbf\xbf", NULL);
-MATCH_FUNC(test_invalid_exception1, "my exception is \xc2\xb7", NULL); /* CONTEXTO - disallowed */
-MATCH_FUNC(test_invalid_exception2, "my exception is \xcf\x82", "my exception is ς"); /* PVALID */
-MATCH_FUNC(test_invalid_exception3, "my exception is \xd9\xa2", NULL); /* CONTEXT0/PVALID */
-MATCH_FUNC(test_invalid_exception4, "my exception is \xe3\x80\xae", NULL); /* CONTEXT0/DISALLOWED */
+MATCH_FUNC(test_invalid_exception1, "my exception is \xc2\xb7", NULL); /* CONTEXTO - disallowed */
+MATCH_FUNC(test_invalid_exception2, "my exception is \xcf\x82", "my exception is ς"); /* PVALID */
+MATCH_FUNC(test_invalid_exception3, "my exception is \xd9\xa2", NULL); /* CONTEXT0/PVALID */
+MATCH_FUNC(test_invalid_exception4, "my exception is \xe3\x80\xae", NULL); /* CONTEXT0/DISALLOWED */
MATCH_FUNC(test_invalid_join_control, "my exception is \xe2\x80\x8d", NULL);
-INVALID_MATCH_FUNC(test_ascii, "correct horse battery staple", "correct horse battery staple");
-INVALID_MATCH_FUNC(test_special_char, "\x4A\x61\x63\x6B\x20\x6F\x66\x20\xE2\x99\xA6\x73", "Jack of ♦s");
+INVALID_MATCH_FUNC(test_ascii, "correct horse battery staple",
+ "correct horse battery staple");
+INVALID_MATCH_FUNC(test_special_char,
+ "\x4A\x61\x63\x6B\x20\x6F\x66\x20\xE2\x99\xA6\x73",
+ "Jack of ♦s");
INVALID_MATCH_FUNC(test_invalid, "my cat is a \x09 by", "my cat is a \x09 by");
-INVALID_MATCH_FUNC(test_invalid_exception1, "my exception is \xc2\xb7", "my exception is ·");
-INVALID_MATCH_FUNC(test_invalid_exception3, "my exception is \xd9\xa2", "my exception is \xd9\xa2");
-INVALID_MATCH_FUNC(test_invalid_exception4, "my exception is \xe3\x80\xae", "my exception is \xe3\x80\xae"); /* CONTEXT0/DISALLOWED */
-INVALID_MATCH_FUNC(test_invalid_join_control, "my exception is \xe2\x80\x8d", "my exception is \xe2\x80\x8d");
+INVALID_MATCH_FUNC(test_invalid_exception1, "my exception is \xc2\xb7",
+ "my exception is ·");
+INVALID_MATCH_FUNC(test_invalid_exception3, "my exception is \xd9\xa2",
+ "my exception is \xd9\xa2");
+INVALID_MATCH_FUNC(test_invalid_exception4, "my exception is \xe3\x80\xae", "my exception is \xe3\x80\xae"); /* CONTEXT0/DISALLOWED */
+INVALID_MATCH_FUNC(test_invalid_join_control, "my exception is \xe2\x80\x8d",
+ "my exception is \xe2\x80\x8d");
int main(void)
{
diff --git a/tests/strict-der.c b/tests/strict-der.c
index b8d440874b..e1cdd26b95 100644
--- a/tests/strict-der.c
+++ b/tests/strict-der.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <gnutls/gnutls.h>
@@ -79,10 +79,9 @@ static unsigned char cert_pem[] =
"yTsdDM5dFmVWme3l958NZI/I0qCtH+Z/O0cyivOTMARbBJ+92dqQ78U3He9gRNE9VCS3FNgObhwC\n"
"cr5tkKTlgSESpSRyBwnLucY4+ci5xjvYndHIzoxII/X9TKOIc2sC+b0H5KP8RcQLAO9G5Nra7+eJ\n"
"IC74ZgFvgejqTd2f8QeJljTsNxvG4P7vqQi73fCkTuVfCk5YDtTU2joGAujgBd1EjTIbjWYeoebV\n"
- "gN5gPKxa/GbGsoQ=\n"
- "-----END CERTIFICATE-----\n";
+ "gN5gPKxa/GbGsoQ=\n" "-----END CERTIFICATE-----\n";
-const gnutls_datum_t cert = { cert_pem, sizeof(cert_pem) - 1};
+const gnutls_datum_t cert = { cert_pem, sizeof(cert_pem) - 1 };
void doit(void)
{
@@ -99,8 +98,7 @@ void doit(void)
gnutls_x509_crt_init(&crt);
- ret =
- gnutls_x509_crt_import(crt, &cert, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(crt, &cert, GNUTLS_X509_FMT_PEM);
if (ret >= 0) {
fail("gnutls_x509_crt_import allowed loading a cert with invalid DER\n");
exit(1);
diff --git a/tests/suite/eagain-cli.c b/tests/suite/eagain-cli.c
index a79c722064..2d05dbccb3 100644
--- a/tests/suite/eagain-cli.c
+++ b/tests/suite/eagain-cli.c
@@ -63,7 +63,6 @@ static int _tcp_connect_eagain(void)
setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, (const void *)&curstate,
sizeof(curstate));
-
memset(&sa, '\0', sizeof(sa));
sa.sin_family = AF_INET;
sa.sin_port = htons(atoi(PORT));
@@ -77,8 +76,9 @@ static int _tcp_connect_eagain(void)
}
/* lower the send buffers to force EAGAIN */
- assert(setsockopt(sd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int)) >= 0);
- assert(fcntl(sd, F_SETFL, O_NONBLOCK)>=0);
+ assert(setsockopt
+ (sd, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(int)) >= 0);
+ assert(fcntl(sd, F_SETFL, O_NONBLOCK) >= 0);
return sd;
}
@@ -106,8 +106,7 @@ _client_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
return send((unsigned long)tr, data, len, 0);
}
-static ssize_t
-_client_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
+static ssize_t _client_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
{
struct timeval tv;
@@ -121,8 +120,7 @@ _client_pull(gnutls_transport_ptr_t tr, void *data, size_t len)
return recv((unsigned long)tr, data, len, 0);
}
-static int _client_pull_timeout(gnutls_transport_ptr_t ptr,
- unsigned int ms)
+static int _client_pull_timeout(gnutls_transport_ptr_t ptr, unsigned int ms)
{
return gnutls_system_recv_timeout(ptr, ms);
}
@@ -133,7 +131,7 @@ static void _process_data(EV_P_ ev_io * w, int revents)
static unsigned int count = 0;
static int prev_direction;
- if (!done && (revents & (EV_WRITE|EV_READ))) {
+ if (!done && (revents & (EV_WRITE | EV_READ))) {
if (lastret == GNUTLS_E_AGAIN) {
if (revents & EV_WRITE) {
assert(prev_direction == 1);
@@ -148,14 +146,16 @@ static void _process_data(EV_P_ ev_io * w, int revents)
count++;
if (gnutls_record_get_direction(session)) {
- ev_io_stop(EV_A_ &remote_w);
- ev_io_set(&remote_w, gnutls_transport_get_int(session), EV_WRITE);
- ev_io_start(EV_A_ &remote_w);
+ ev_io_stop(EV_A_ & remote_w);
+ ev_io_set(&remote_w, gnutls_transport_get_int(session),
+ EV_WRITE);
+ ev_io_start(EV_A_ & remote_w);
prev_direction = 1;
} else {
- ev_io_stop(EV_A_ &remote_w);
- ev_io_set(&remote_w, gnutls_transport_get_int(session), EV_READ);
- ev_io_start(EV_A_ &remote_w);
+ ev_io_stop(EV_A_ & remote_w);
+ ev_io_set(&remote_w, gnutls_transport_get_int(session),
+ EV_READ);
+ ev_io_start(EV_A_ & remote_w);
prev_direction = 0;
}
/* avoid printing messages infinity times */
@@ -166,14 +166,14 @@ static void _process_data(EV_P_ ev_io * w, int revents)
if ((ret == GNUTLS_E_WARNING_ALERT_RECEIVED)
|| (ret == GNUTLS_E_FATAL_ALERT_RECEIVED))
fprintf(stderr, "Also received alert: %s\n",
- gnutls_alert_get_name
- (gnutls_alert_get(session)));
+ gnutls_alert_get_name
+ (gnutls_alert_get(session)));
fprintf(stderr, "last out: %s\n",
- SSL_GNUTLS_PRINT_HANDSHAKE_STATUS
- (gnutls_handshake_get_last_out(session)));
+ SSL_GNUTLS_PRINT_HANDSHAKE_STATUS
+ (gnutls_handshake_get_last_out(session)));
fprintf(stderr, "last in: %s\n",
- SSL_GNUTLS_PRINT_HANDSHAKE_STATUS
- (gnutls_handshake_get_last_in(session)));
+ SSL_GNUTLS_PRINT_HANDSHAKE_STATUS
+ (gnutls_handshake_get_last_in(session)));
}
if (gnutls_error_is_fatal(ret)) {
@@ -212,7 +212,8 @@ static void try(const char *name, const char *prio)
assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
gnutls_transport_set_push_function(session, _client_push);
gnutls_transport_set_pull_function(session, _client_pull);
- gnutls_transport_set_pull_timeout_function(session, _client_pull_timeout);
+ gnutls_transport_set_pull_timeout_function(session,
+ _client_pull_timeout);
gnutls_handshake_set_timeout(session,
GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT);
@@ -252,7 +253,8 @@ static void try(const char *name, const char *prio)
int main(void)
{
- try("tls 1.2 (dhe)", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA");
+ try("tls 1.2 (dhe)",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA");
try("tls 1.2 (rsa)", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA");
try("tls 1.3", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3");
try("default", "NORMAL");
diff --git a/tests/suite/mini-record-timing.c b/tests/suite/mini-record-timing.c
index 9efcd4a46e..01309c7680 100644
--- a/tests/suite/mini-record-timing.c
+++ b/tests/suite/mini-record-timing.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,29 +35,29 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <signal.h>
-#include <assert.h>
-#include <errno.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <signal.h>
+# include <assert.h>
+# include <errno.h>
//#define USE_RDTSC
//#define TEST_ETM
-#include <time.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#ifdef USE_RDTSC
-#include <x86intrin.h>
-#endif
+# include <time.h>
+# include <sys/time.h>
+# include <sys/resource.h>
+# ifdef USE_RDTSC
+# include <x86intrin.h>
+# endif
-#ifdef DEBUG
+# ifdef DEBUG
static void server_log_func(int level, const char *str)
{
fprintf(stderr, "server|<%d>| %s", level, str);
@@ -67,24 +67,22 @@ static void client_log_func(int level, const char *str)
{
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#endif
-
+# endif
+# ifndef _POSIX_TIMERS
+# error need posix timers
+# endif
-#ifndef _POSIX_TIMERS
-#error need posix timers
-#endif
-
-#define CLOCK_TO_USE CLOCK_MONOTONIC
+# define CLOCK_TO_USE CLOCK_MONOTONIC
//#define CLOCK_TO_USE CLOCK_MONOTONIC_RAW
//#define CLOCK_TO_USE CLOCK_PROCESS_CPUTIME_ID
/* This program tests the robustness of record
* decoding.
*/
-#define MAX_PER_POINT (8*1024)
-#define WARM_UP (2)
-#define MAX_BUF 1024
+# define MAX_PER_POINT (8*1024)
+# define WARM_UP (2)
+# define MAX_BUF 1024
struct point_st {
unsigned char byte1;
@@ -108,10 +106,9 @@ struct point_st *prev_point_ptr = NULL;
unsigned int point_idx = 0;
static gnutls_session_t cli_session = NULL;
-static ssize_t
-push(gnutls_transport_ptr_t tr, const void *_data, size_t len)
+static ssize_t push(gnutls_transport_ptr_t tr, const void *_data, size_t len)
{
- int fd = (long int) tr;
+ int fd = (long int)tr;
return send(fd, _data, len, 0);
}
@@ -119,8 +116,8 @@ push(gnutls_transport_ptr_t tr, const void *_data, size_t len)
static ssize_t
push_crippled(gnutls_transport_ptr_t tr, const void *_data, size_t len)
{
- int fd = (long int) tr;
- unsigned char *data = (void *) _data;
+ int fd = (long int)tr;
+ unsigned char *data = (void *)_data;
struct point_st *p;
unsigned p_size;
struct test_st *test = gnutls_session_get_ptr(cli_session);
@@ -132,7 +129,6 @@ push_crippled(gnutls_transport_ptr_t tr, const void *_data, size_t len)
p = &test->points[point_idx];
-
if (test->fill != 0xff) {
/* original lucky13 attack */
memmove(&data[len - 32], data + 5, 32);
@@ -140,27 +136,24 @@ push_crippled(gnutls_transport_ptr_t tr, const void *_data, size_t len)
data[len - 18] ^= p->byte2;
} else {
/* a revised attack which depends on chosen-plaintext */
- assert(len>512);
- memmove(data+len-256-32, data+5, 256+32);
+ assert(len > 512);
+ memmove(data + len - 256 - 32, data + 5, 256 + 32);
data[len - 257] ^= p->byte1;
}
return send(fd, data, len, 0);
}
-
-#ifndef USE_RDTSC
-static unsigned long timespec_sub_ns(struct timespec *a,
- struct timespec *b)
+# ifndef USE_RDTSC
+static unsigned long timespec_sub_ns(struct timespec *a, struct timespec *b)
{
return (a->tv_sec - b->tv_sec) * 1000 * 1000 * 1000 + a->tv_nsec -
- b->tv_nsec;
+ b->tv_nsec;
}
-#endif
+# endif
static void
-client(int fd, const char *prio, unsigned int text_size,
- struct test_st *test)
+client(int fd, const char *prio, unsigned int text_size, struct test_st *test)
{
int ret;
char buffer[MAX_BUF + 1];
@@ -168,7 +161,7 @@ client(int fd, const char *prio, unsigned int text_size,
gnutls_psk_client_credentials_t pskcred;
gnutls_session_t session;
static unsigned long measurement;
- const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t key = { (void *)"DEADBEEF", 8 };
const char *err;
unsigned j;
@@ -181,10 +174,10 @@ client(int fd, const char *prio, unsigned int text_size,
memset(text, test->fill, text_size);
-#ifdef DEBUG
+# ifdef DEBUG
gnutls_global_set_log_function(client_log_func);
gnutls_global_set_log_level(6);
-#endif
+# endif
gnutls_psk_allocate_client_credentials(&pskcred);
gnutls_psk_set_client_credentials(pskcred, "test", &key,
@@ -216,7 +209,8 @@ client(int fd, const char *prio, unsigned int text_size,
while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
if (ret < 0) {
- fprintf(stderr, "client: Handshake failed: %s\n", gnutls_strerror(ret));
+ fprintf(stderr, "client: Handshake failed: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -238,8 +232,7 @@ client(int fd, const char *prio, unsigned int text_size,
do {
ret = gnutls_record_recv(session, buffer, sizeof(buffer));
} while (ret < 0
- && (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED));
+ && (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED));
if (ret > 0) {
struct point_st *point_ptr = NULL;
@@ -250,10 +243,12 @@ client(int fd, const char *prio, unsigned int text_size,
point_ptr->taken++;
if (point_idx == 0) {
- printf("%s: measurement: %u / %d\r", test->name, (unsigned)point_ptr->taken+1, MAX_PER_POINT+WARM_UP);
+ printf("%s: measurement: %u / %d\r", test->name,
+ (unsigned)point_ptr->taken + 1,
+ MAX_PER_POINT + WARM_UP);
}
- if (point_idx == 0 && point_ptr->midx+1 >= MAX_PER_POINT) {
+ if (point_idx == 0 && point_ptr->midx + 1 >= MAX_PER_POINT) {
goto finish;
}
@@ -275,7 +270,7 @@ client(int fd, const char *prio, unsigned int text_size,
abort();
}
-finish:
+ finish:
fprintf(stderr, "\ntest completed\n");
gnutls_transport_set_push_function(session, push);
@@ -291,15 +286,17 @@ finish:
fprintf(fp, "Delta,");
for (j = 0; j < MAX_PER_POINT; j++) {
- fprintf(fp, "measurement-%u%s", j, j!=(MAX_PER_POINT-1)?",":"");
+ fprintf(fp, "measurement-%u%s", j,
+ j != (MAX_PER_POINT - 1) ? "," : "");
}
fprintf(fp, "\n");
for (i = 0; i < test->npoints; i++) {
fprintf(fp, "%u,", (unsigned)test->points[i].byte1);
for (j = 0; j < MAX_PER_POINT; j++) {
fprintf(fp, "%u%s",
- (unsigned) test->points[i].smeasurements[j],
- (j!=MAX_PER_POINT-1)?",":"");
+ (unsigned)test->
+ points[i].smeasurements[j],
+ (j != MAX_PER_POINT - 1) ? "," : "");
}
fprintf(fp, "\n");
@@ -323,8 +320,7 @@ finish:
}
static int
-pskfunc(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+pskfunc(gnutls_session_t session, const char *username, gnutls_datum_t * key)
{
key->data = gnutls_malloc(4);
key->data[0] = 0xDE;
@@ -342,12 +338,12 @@ static void server(int fd, const char *prio)
gnutls_session_t session;
gnutls_psk_server_credentials_t server_pskcred;
const char *err;
-#ifndef USE_RDTSC
+# ifndef USE_RDTSC
struct timespec start, stop;
-#else
+# else
uint64_t c1, c2;
unsigned int i1;
-#endif
+# endif
static unsigned long measurement;
setpriority(PRIO_PROCESS, getpid(), -15);
@@ -355,14 +351,13 @@ static void server(int fd, const char *prio)
gnutls_global_init();
memset(buffer, 0, sizeof(buffer));
-#ifdef DEBUG
+# ifdef DEBUG
gnutls_global_set_log_function(server_log_func);
gnutls_global_set_log_level(6);
-#endif
- assert(gnutls_psk_allocate_server_credentials(&server_pskcred)>=0);
- gnutls_psk_set_server_credentials_function(server_pskcred,
- pskfunc);
- assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
+# endif
+ assert(gnutls_psk_allocate_server_credentials(&server_pskcred) >= 0);
+ gnutls_psk_set_server_credentials_function(server_pskcred, pskfunc);
+ assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
/* avoid calling all the priority functions, since the defaults
* are adequate.
@@ -381,12 +376,12 @@ static void server(int fd, const char *prio)
}
while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
if (ret < 0) {
-#ifdef GNUTLS_E_PREMATURE_TERMINATION
+# ifdef GNUTLS_E_PREMATURE_TERMINATION
if (ret != GNUTLS_E_PREMATURE_TERMINATION
&& ret != GNUTLS_E_UNEXPECTED_PACKET_LENGTH)
-#else
+# else
if (ret != GNUTLS_E_UNEXPECTED_PACKET_LENGTH)
-#endif
+# endif
{
fprintf(stderr,
"server: Handshake has failed (%s)\n\n",
@@ -395,34 +390,34 @@ static void server(int fd, const char *prio)
}
goto finish;
}
-#ifdef TEST_ETM
- assert(gnutls_session_etm_status(session)!=0);
-#else
- assert(gnutls_session_etm_status(session)==0);
-#endif
+# ifdef TEST_ETM
+ assert(gnutls_session_etm_status(session) != 0);
+# else
+ assert(gnutls_session_etm_status(session) == 0);
+# endif
restart:
do {
ret = recv(fd, buffer, 1, MSG_PEEK);
} while (ret == -1 && errno == EAGAIN);
-#ifdef USE_RDTSC
+# ifdef USE_RDTSC
c1 = __rdtscp(&i1);
-#else
+# else
clock_gettime(CLOCK_TO_USE, &start);
-#endif
+# endif
do {
ret = gnutls_record_recv(session, buffer, sizeof(buffer));
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
-#ifdef USE_RDTSC
+# ifdef USE_RDTSC
c2 = __rdtscp(&i1);
measurement = c2 - c1;
-#else
+# else
clock_gettime(CLOCK_TO_USE, &stop);
measurement = timespec_sub_ns(&stop, &start);
-#endif
+# endif
if (ret == GNUTLS_E_DECRYPTION_FAILED) {
gnutls_session_force_valid(session);
@@ -431,8 +426,7 @@ static void server(int fd, const char *prio)
gnutls_record_send(session, &measurement,
sizeof(measurement));
/* GNUTLS_AL_FATAL, GNUTLS_A_BAD_RECORD_MAC); */
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret >= 0) {
goto restart;
@@ -447,7 +441,7 @@ static void server(int fd, const char *prio)
*/
gnutls_bye(session, GNUTLS_SHUT_WR);
- finish:
+ finish:
close(fd);
gnutls_deinit(session);
@@ -456,8 +450,7 @@ static void server(int fd, const char *prio)
gnutls_global_deinit();
}
-static void start(const char *prio, unsigned int text_size,
- struct test_st *p)
+static void start(const char *prio, unsigned int text_size, struct test_st *p)
{
int fd[2];
int ret;
@@ -497,7 +490,8 @@ static void ch_handler(int sig)
/* This code must be async-signal-safe. */
if (WIFSIGNALED(status)) {
const char msg[] = "Child died with sigsegv\n";
- write(STDERR_FILENO, "Child died with sigsegv\n", sizeof(msg));
+ write(STDERR_FILENO, "Child died with sigsegv\n",
+ sizeof(msg));
} else {
char buf[64] = { 0 };
char *p;
@@ -522,7 +516,7 @@ static void ch_handler(int sig)
return;
}
-#define NPOINTS 256
+# define NPOINTS 256
static struct point_st all_points[NPOINTS];
static struct point_st all_points_one[NPOINTS];
@@ -691,18 +685,16 @@ int main(int argc, char **argv)
for (i = 0; i < 256; i++) {
all_points_one[i].byte1 = i;
all_points_one[i].byte2 = 1;
- all_points_one[i].smeasurements =
- all_points[i].smeasurements;
+ all_points_one[i].smeasurements = all_points[i].smeasurements;
}
-
remove(test->file);
snprintf(prio, sizeof(prio),
-#ifdef TEST_ETM
+# ifdef TEST_ETM
"NONE:+COMP-NULL:+AES-128-CBC:+AES-256-CBC:+%s:+PSK:+VERS-TLS1.2:+VERS-TLS1.1:+SIGN-ALL:+CURVE-ALL",
-#else
+# else
"NONE:+COMP-NULL:+AES-128-CBC:+AES-256-CBC:+%s:+PSK:%%NO_ETM:+VERS-TLS1.2:+VERS-TLS1.1:+SIGN-ALL:+CURVE-ALL",
-#endif
+# endif
hash);
printf("\nAES-%s (calculating different padding timings)\n", hash);
diff --git a/tests/suite/rng.c b/tests/suite/rng.c
index f057c30e44..6dcd4ca777 100644
--- a/tests/suite/rng.c
+++ b/tests/suite/rng.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -41,7 +41,9 @@ int main(int argc, char **argv)
gnutls_global_init();
if (argc != 4) {
- fprintf(stderr, "args %d\nusage: %s [nonce|key] [nbytes] [outfile]\n", argc, argv[0]);
+ fprintf(stderr,
+ "args %d\nusage: %s [nonce|key] [nbytes] [outfile]\n",
+ argc, argv[0]);
exit(1);
}
@@ -51,7 +53,8 @@ int main(int argc, char **argv)
level = GNUTLS_RND_KEY;
} else {
fprintf(stderr, "don't know %s\n", argv[1]);
- fprintf(stderr, "usage: %s [nonce|key] [nbytes] [outfile]\n", argv[0]);
+ fprintf(stderr, "usage: %s [nonce|key] [nbytes] [outfile]\n",
+ argv[0]);
exit(1);
}
@@ -63,7 +66,7 @@ int main(int argc, char **argv)
exit(1);
}
- for (i = 0; i < nbytes; i+=sizeof(buf)) {
+ for (i = 0; i < nbytes; i += sizeof(buf)) {
if (gnutls_rnd(level, buf, sizeof(buf)) < 0)
exit(2);
diff --git a/tests/suite/tls-interoperability b/tests/suite/tls-interoperability
-Subproject b29b30179d553f1f44cdc5437991f1f03e1dc07
+Subproject 9907a150b891e3ad9fe1443806450862d66b1cc
diff --git a/tests/system-override-curves-allowlist.c b/tests/system-override-curves-allowlist.c
index 680031a0a3..0ecf184533 100644
--- a/tests/system-override-curves-allowlist.c
+++ b/tests/system-override-curves-allowlist.c
@@ -49,33 +49,41 @@
_fail("Assertion `" #cond "` failed: " format "\n", ##__VA_ARGS__)
#define _check(cond) if (!(cond)) _fail("Assertion `" #cond "` failed.\n")
-gnutls_ecc_curve_t unlocked_ecc_curve_get_id(const char* curve);
-gnutls_pk_algorithm_t curve_name_to_pk(const char* curve);
-void assert_unblocked(const char* curve);
-void assert_blocked(const char* curve);
-char* envvarcpy(const char* envvar);
-
-
-gnutls_ecc_curve_t unlocked_ecc_curve_get_id(const char* curve) {
- if (!strcasecmp(curve, "SECP192R1")) return GNUTLS_ECC_CURVE_SECP192R1;
- if (!strcasecmp(curve, "SECP256R1")) return GNUTLS_ECC_CURVE_SECP256R1;
- if (!strcasecmp(curve, "SECP384R1")) return GNUTLS_ECC_CURVE_SECP384R1;
- if (!strcasecmp(curve, "SECP521R1")) return GNUTLS_ECC_CURVE_SECP521R1;
- if (!strcasecmp(curve, "X448")) return GNUTLS_ECC_CURVE_X448;
- if (!strcasecmp(curve, "X25519")) return GNUTLS_ECC_CURVE_X25519;
+gnutls_ecc_curve_t unlocked_ecc_curve_get_id(const char *curve);
+gnutls_pk_algorithm_t curve_name_to_pk(const char *curve);
+void assert_unblocked(const char *curve);
+void assert_blocked(const char *curve);
+char *envvarcpy(const char *envvar);
+
+gnutls_ecc_curve_t unlocked_ecc_curve_get_id(const char *curve)
+{
+ if (!strcasecmp(curve, "SECP192R1"))
+ return GNUTLS_ECC_CURVE_SECP192R1;
+ if (!strcasecmp(curve, "SECP256R1"))
+ return GNUTLS_ECC_CURVE_SECP256R1;
+ if (!strcasecmp(curve, "SECP384R1"))
+ return GNUTLS_ECC_CURVE_SECP384R1;
+ if (!strcasecmp(curve, "SECP521R1"))
+ return GNUTLS_ECC_CURVE_SECP521R1;
+ if (!strcasecmp(curve, "X448"))
+ return GNUTLS_ECC_CURVE_X448;
+ if (!strcasecmp(curve, "X25519"))
+ return GNUTLS_ECC_CURVE_X25519;
fprintf(stderr, "unknown curve %s\n", curve);
return GNUTLS_ECC_CURVE_INVALID;
}
-
-gnutls_pk_algorithm_t curve_name_to_pk(const char* curve) {
- if (!strcasecmp(curve, "X448")) return GNUTLS_PK_ECDH_X448;
- if (!strcasecmp(curve, "X25519")) return GNUTLS_PK_ECDH_X25519;
+gnutls_pk_algorithm_t curve_name_to_pk(const char *curve)
+{
+ if (!strcasecmp(curve, "X448"))
+ return GNUTLS_PK_ECDH_X448;
+ if (!strcasecmp(curve, "X25519"))
+ return GNUTLS_PK_ECDH_X25519;
return GNUTLS_PK_ECDSA;
}
-
-void assert_unblocked(const char* curve_name) {
+void assert_unblocked(const char *curve_name)
+{
gnutls_privkey_t priv;
gnutls_ecc_curve_t curve;
gnutls_pk_algorithm_t pk;
@@ -83,7 +91,7 @@ void assert_unblocked(const char* curve_name) {
unsigned int bits;
fprintf(stderr, "generating a key using non-blocked %s curve...\n",
- curve_name);
+ curve_name);
_check(curve = gnutls_ecc_curve_get_id(curve_name));
_check(curve == unlocked_ecc_curve_get_id(curve_name));
_check(gnutls_privkey_init(&priv) == GNUTLS_E_SUCCESS);
@@ -94,18 +102,18 @@ void assert_unblocked(const char* curve_name) {
fprintf(stderr, "%s succeeds as expected\n", curve_name);
}
-
-void assert_blocked(const char* curve_name) {
+void assert_blocked(const char *curve_name)
+{
gnutls_privkey_t priv;
gnutls_ecc_curve_t curve;
unsigned int bits;
gnutls_pk_algorithm_t pk;
fprintf(stderr, "generating a key using blocked %s curve...\n",
- curve_name);
+ curve_name);
_check(gnutls_ecc_curve_get_id(curve_name) == GNUTLS_ECC_CURVE_INVALID);
_check((curve = unlocked_ecc_curve_get_id(curve_name)) !=
- GNUTLS_ECC_CURVE_INVALID);
+ GNUTLS_ECC_CURVE_INVALID);
_check(!strcasecmp(curve_name, gnutls_ecc_curve_get_name(curve)));
_check(gnutls_privkey_init(&priv) == GNUTLS_E_SUCCESS);
bits = GNUTLS_CURVE_TO_BITS(curve);
@@ -115,17 +123,17 @@ void assert_blocked(const char* curve_name) {
fprintf(stderr, "%s is blocked as expected\n", curve_name);
}
-
-char* envvarcpy(const char* envvar) {
- char* s;
+char *envvarcpy(const char *envvar)
+{
+ char *s;
_assert(s = getenv(envvar), "variable %s is not set", envvar);
return gnutls_strdup(s);
}
-
-void doit(void) {
- char* curves;
- const char* curve;
+void doit(void)
+{
+ char *curves;
+ const char *curve;
gnutls_ecc_curve_t curve_id;
curves = envvarcpy("INITIALLY_ENABLED_CURVES");
diff --git a/tests/system-override-hash.c b/tests/system-override-hash.c
index 6aa4936f4b..15af1e8880 100644
--- a/tests/system-override-hash.c
+++ b/tests/system-override-hash.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
diff --git a/tests/system-override-sig-tls.c b/tests/system-override-sig-tls.c
index 215f7e0e5a..8851c5d323 100644
--- a/tests/system-override-sig-tls.c
+++ b/tests/system-override-sig-tls.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <assert.h>
@@ -89,7 +89,7 @@ ext_callback(void *ctx, unsigned tls_id,
static int
handshake_callback(gnutls_session_t session, unsigned int htype,
unsigned post, unsigned int incoming,
- const gnutls_datum_t *msg)
+ const gnutls_datum_t * msg)
{
assert(post);
@@ -138,8 +138,7 @@ void doit(void)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server, PRIO, NULL);
@@ -154,7 +153,9 @@ void doit(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -163,7 +164,7 @@ void doit(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
diff --git a/tests/system-override-sig.c b/tests/system-override-sig.c
index 954f4e55f4..e0c933e3a8 100644
--- a/tests/system-override-sig.c
+++ b/tests/system-override-sig.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -43,10 +43,15 @@ void doit(void)
/* check whether the values set by the calling script are the expected */
assert(gnutls_sign_is_secure(GNUTLS_SIGN_RSA_SHA256) != 0);
- assert(gnutls_sign_is_secure2(GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0);
+ assert(gnutls_sign_is_secure2
+ (GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0);
assert(gnutls_sign_is_secure(GNUTLS_SIGN_RSA_SHA1) == 0);
- assert(gnutls_sign_is_secure2(GNUTLS_SIGN_RSA_SHA1, GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0);
+ assert(gnutls_sign_is_secure2
+ (GNUTLS_SIGN_RSA_SHA1, GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0);
assert(gnutls_sign_is_secure(GNUTLS_SIGN_RSA_SHA512) == 0);
- assert(gnutls_sign_is_secure2(GNUTLS_SIGN_RSA_SHA512, GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0);
+ assert(gnutls_sign_is_secure2
+ (GNUTLS_SIGN_RSA_SHA512,
+ GNUTLS_SIGN_FLAG_SECURE_FOR_CERTS) == 0);
assert(gnutls_sign_is_secure(GNUTLS_SIGN_RSA_MD5) == 0);
}
diff --git a/tests/system-prio-file.c b/tests/system-prio-file.c
index 1d16633bcd..1aec0493d4 100644
--- a/tests/system-prio-file.c
+++ b/tests/system-prio-file.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,10 +36,9 @@
* variable to specify the test file (system.prio).
*/
-char *_gnutls_resolve_priorities(const char* priorities);
+char *_gnutls_resolve_priorities(const char *priorities);
-static void
-try_prio(const char *prio, const char *expected_str)
+static void try_prio(const char *prio, const char *expected_str)
{
char *p;
@@ -54,7 +53,8 @@ try_prio(const char *prio, const char *expected_str)
assert(strstr(gnutls_get_system_config_file(), "system.prio") != NULL);
if (p == NULL || expected_str == NULL || strcmp(p, expected_str) != 0) {
- fail("test: %s: error; got: %s, expected: %s\n", prio, p, expected_str);
+ fail("test: %s: error; got: %s, expected: %s\n", prio, p,
+ expected_str);
exit(1);
}
@@ -70,7 +70,8 @@ void doit(void)
try_prio("@HELLO1", "NORMAL");
try_prio("@HELLO1:+AES-256-CBC:+AEAD", "NORMAL:+AES-256-CBC:+AEAD");
try_prio("@HELLO2", "NORMAL:+AES-128-CBC");
- try_prio("@HELLO3", "NONE:+VERS-TLS-ALL:-VERS-SSL3.0:+AEAD:+SHA1:+SHA256:+SHA384:+ECDHE-RSA:+ECDHE-ECDSA:+RSA:+DHE-RSA:+DHE-DSS:+AES-256-GCM:+AES-256-CBC:+CAMELLIA-256-GCM:+CAMELLIA-256-CBC:+AES-128-GCM:+AES-128-CBC:+CAMELLIA-128-GCM:+CAMELLIA-128-CBC:+3DES-CBC:+SIGN-ALL:-SIGN-RSA-MD5:+CURVE-ALL:+COMP-NULL:%PROFILE_LOW");
+ try_prio("@HELLO3",
+ "NONE:+VERS-TLS-ALL:-VERS-SSL3.0:+AEAD:+SHA1:+SHA256:+SHA384:+ECDHE-RSA:+ECDHE-ECDSA:+RSA:+DHE-RSA:+DHE-DSS:+AES-256-GCM:+AES-256-CBC:+CAMELLIA-256-GCM:+CAMELLIA-256-CBC:+AES-128-GCM:+AES-128-CBC:+CAMELLIA-128-GCM:+CAMELLIA-128-CBC:+3DES-CBC:+SIGN-ALL:-SIGN-RSA-MD5:+CURVE-ALL:+COMP-NULL:%PROFILE_LOW");
try_prio("@HELLO1,HELLO2", "NORMAL");
try_prio("@HELLO1,HELLO2:+AES-128-CBC", "NORMAL:+AES-128-CBC");
try_prio("@HELLO1,HELLO1", "NORMAL");
@@ -80,7 +81,8 @@ void doit(void)
try_prio("@HELLO2,HELLO1,@HELLO3", "NORMAL:+AES-128-CBC");
try_prio("@HELLONO,HELLO1", "NORMAL");
try_prio("@HELLONO,HELLONO2,HELLO1", "NORMAL");
- try_prio("@HELLONO,HELLONO2,HELLO1:+AES-128-CBC", "NORMAL:+AES-128-CBC");
+ try_prio("@HELLONO,HELLONO2,HELLO1:+AES-128-CBC",
+ "NORMAL:+AES-128-CBC");
try_prio("@HELLONO", NULL);
try_prio("@HELLONO,", NULL);
try_prio("@HELLONO:+AES-128-CBC", NULL);
diff --git a/tests/test-chains-issuer-aia.h b/tests/test-chains-issuer-aia.h
index 1377bb034d..724c0e2d1e 100644
--- a/tests/test-chains-issuer-aia.h
+++ b/tests/test-chains-issuer-aia.h
@@ -21,7 +21,7 @@
*/
#ifndef GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H
-#define GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H
+# define GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H
/* *INDENT-OFF* */
@@ -134,4 +134,4 @@ static const char *missing_cert_aia_ca[] = {
/* *INDENT-ON* */
-#endif /* GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H */
+#endif /* GNUTLS_TESTS_TEST_CHAINS_ISSUER_AIA_H */
diff --git a/tests/test-chains-issuer.h b/tests/test-chains-issuer.h
index bf1e65c956..c612e7132e 100644
--- a/tests/test-chains-issuer.h
+++ b/tests/test-chains-issuer.h
@@ -22,11 +22,11 @@
*/
#ifndef GNUTLS_TESTS_TEST_CHAINS_ISSUER_H
-#define GNUTLS_TESTS_TEST_CHAINS_ISSUER_H
+# define GNUTLS_TESTS_TEST_CHAINS_ISSUER_H
-#define MAX_CHAIN 15
+# define MAX_CHAIN 15
-#define SERVER_CERT "-----BEGIN CERTIFICATE-----\n" \
+# define SERVER_CERT "-----BEGIN CERTIFICATE-----\n" \
"MIIDATCCAbmgAwIBAgIUQdvdegP8JFszFHLfV4+lrEdafzAwPQYJKoZIhvcNAQEK\n" \
"MDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMC\n" \
"AUAwDzENMAsGA1UEAxMEQ0EtNTAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIz\n" \
@@ -46,7 +46,7 @@
"+lfZEv4=\n" \
"-----END CERTIFICATE-----\n"
-#define CA_CERT_5 "-----BEGIN CERTIFICATE-----\n" \
+# define CA_CERT_5 "-----BEGIN CERTIFICATE-----\n" \
"MIIDojCCAlqgAwIBAgIUHRb3xJ2ZGqqgdC/pBq/sDtAwvtowPQYJKoZIhvcNAQEK\n" \
"MDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMC\n" \
"AUAwDzENMAsGA1UEAxMEQ0EtNDAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIz\n" \
@@ -69,7 +69,7 @@
"/aOd/5HR4ZPDWfHdIWbXogYX0ndhNg==\n" \
"-----END CERTIFICATE-----\n"
-#define CA_CERT_4 "-----BEGIN CERTIFICATE-----\n" \
+# define CA_CERT_4 "-----BEGIN CERTIFICATE-----\n" \
"MIIDojCCAlqgAwIBAgIUGybZZ1e/iFUKafPdh8xUbh7YVnwwPQYJKoZIhvcNAQEK\n" \
"MDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMC\n" \
"AUAwDzENMAsGA1UEAxMEQ0EtMzAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIz\n" \
@@ -92,7 +92,7 @@
"xgR9bRjZf++h/dg6L87b26J5KdDafw==\n" \
"-----END CERTIFICATE-----\n"
-#define CA_CERT_3 "-----BEGIN CERTIFICATE-----\n" \
+# define CA_CERT_3 "-----BEGIN CERTIFICATE-----\n" \
"MIIDojCCAlqgAwIBAgIUHRkWa8ZOaRrqjxigoEhxJHMLM2UwPQYJKoZIhvcNAQEK\n" \
"MDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMC\n" \
"AUAwDzENMAsGA1UEAxMEQ0EtMjAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIz\n" \
@@ -115,7 +115,7 @@
"TTqtWQ93AfQnd2Vm3/SAr/+jSuMbSA==\n" \
"-----END CERTIFICATE-----\n"
-#define CA_CERT_2 "-----BEGIN CERTIFICATE-----\n" \
+# define CA_CERT_2 "-----BEGIN CERTIFICATE-----\n" \
"MIIDojCCAlqgAwIBAgIUVd3TT33d1fy/8INiIKhudYmRE5swPQYJKoZIhvcNAQEK\n" \
"MDCgDTALBglghkgBZQMEAgGhGjAYBgkqhkiG9w0BAQgwCwYJYIZIAWUDBAIBogMC\n" \
"AUAwDzENMAsGA1UEAxMEQ0EtMTAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIz\n" \
@@ -138,7 +138,7 @@
"qGN2PrhXyLoaUfIpNbWO9Jmj2GYaWg==\n" \
"-----END CERTIFICATE-----\n"
-#define CA_CERT_1 "-----BEGIN CERTIFICATE-----\n" \
+# define CA_CERT_1 "-----BEGIN CERTIFICATE-----\n" \
"MIICxjCCAiegAwIBAgIUKnsCQlR0jpxEnpzqxbi+Y2rqwpMwCgYIKoZIzj0EAwQw\n" \
"DzENMAsGA1UEAxMEQ0EtMDAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIzNTk1\n" \
"OVowDzENMAsGA1UEAxMEQ0EtMTCCAVIwPQYJKoZIhvcNAQEKMDCgDTALBglghkgB\n" \
@@ -156,7 +156,7 @@
"pAOhFZBrNXE2zZrgttgR6TG4Obst1fQzL3RsmqAYAuWSpKPNz6Hdq+kl\n" \
"-----END CERTIFICATE-----\n"
-#define CA_CERT_0 "-----BEGIN CERTIFICATE-----\n" \
+# define CA_CERT_0 "-----BEGIN CERTIFICATE-----\n" \
"MIIB7TCCAU6gAwIBAgIUWmldb3tGP48wFh5P/cmVytYv5JcwCgYIKoZIzj0EAwQw\n" \
"DzENMAsGA1UEAxMEQ0EtMDAgFw0yMDA0MjAxMTI2NDFaGA85OTk5MTIzMTIzNTk1\n" \
"OVowDzENMAsGA1UEAxMEQ0EtMDCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAEAarU\n" \
@@ -170,7 +170,7 @@
"/YXiDLiWNiK+WV8Z557eWKI=\n" \
"-----END CERTIFICATE-----\n"
-#define UNRELATED "-----BEGIN CERTIFICATE-----\n" \
+# define UNRELATED "-----BEGIN CERTIFICATE-----\n" \
"MIIEaDCCAqCgAwIBAgIMWXi5rBKSNwkPo4olMD0GCSqGSIb3DQEBCjAwoA0wCwYJ\n" \
"YIZIAWUDBAIDoRowGAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCA6IDAgFAMA8xDTAL\n" \
"BgNVBAMTBENBLTAwIBcNMTcwNzI2MTU0NzU2WhgPOTk5OTEyMzEyMzU5NTlaMA8x\n" \
@@ -442,41 +442,95 @@ static struct chains {
unsigned int verify_flags;
unsigned int expected_verify_result;
} chains[] = {
- { "middle single - no sort", missing_middle_single, missing_middle_single_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0 },
- { "middle multiple - no sort", missing_middle_multiple, missing_middle_multiple_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0 },
- { "last single - no sort", missing_last_single, missing_last_single_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0 },
- { "last multiple - no sort", missing_last_multiple, missing_last_multiple_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0 },
- { "skip single - no sort", missing_skip_single, missing_skip_single_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0 },
- { "skip multiple - no sort", missing_skip_multiple, missing_skip_multiple_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0 },
- { "middle single unsorted - no sort", missing_middle_single_unsorted, missing_middle_single_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND },
- { "middle multiple unsorted - no sort", missing_middle_multiple_unsorted, missing_middle_multiple_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND },
- { "last single unsorted - no sort", missing_last_single_unsorted, missing_last_single_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND },
- { "last multiple unsorted - no sort", missing_last_multiple_unsorted, missing_last_multiple_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND },
- { "skip single unsorted - no sort", missing_skip_single_unsorted, missing_skip_single_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND },
- { "skip multiple unsorted - no sort", missing_skip_multiple_unsorted, missing_skip_multiple_insert, missing_ca, GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND },
- { "middle single", missing_middle_single, missing_middle_single_insert, missing_ca, 0, 0 },
- { "middle multiple", missing_middle_multiple, missing_middle_multiple_insert, missing_ca, 0, 0 },
- { "last single", missing_last_single, missing_last_single_insert, missing_ca, 0, 0 },
- { "last multiple", missing_last_multiple, missing_last_multiple_insert, missing_ca, 0, 0 },
- { "skip single", missing_skip_single, missing_skip_single_insert, missing_ca, 0, 0 },
- { "skip multiple", missing_skip_multiple, missing_skip_multiple_insert, missing_ca, 0, 0 },
- { "middle single unsorted", missing_middle_single_unsorted, missing_middle_single_insert, missing_ca, 0, 0 },
- { "middle multiple unsorted", missing_middle_multiple_unsorted, missing_middle_multiple_insert, missing_ca, 0, 0 },
- { "last single unsorted", missing_last_single_unsorted, missing_last_single_insert, missing_ca, 0, 0 },
- { "last multiple unsorted", missing_last_multiple_unsorted, missing_last_multiple_insert, missing_ca, 0, 0 },
- { "skip single unsorted", missing_skip_single_unsorted, missing_skip_single_insert, missing_ca, 0, 0 },
- { "skip multiple unsorted", missing_skip_multiple_unsorted, missing_skip_multiple_insert, missing_ca, 0, 0 },
- { "unrelated", missing_middle_single, missing_middle_unrelated_insert, missing_ca, 0, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND },
- { "unrelated extra", missing_middle_single, missing_middle_unrelated_extra_insert, missing_ca, 0, 0 },
- { "middle single duplicate", missing_middle_single_duplicate, missing_middle_single_insert, missing_ca, 0, 0 },
- { "middle multiple duplicate", missing_middle_multiple_duplicate, missing_middle_multiple_insert, missing_ca, 0, 0 },
- { "last single duplicate", missing_last_single_duplicate, missing_last_single_insert, missing_ca, 0, 0 },
- { "last multiple duplicate", missing_last_multiple_duplicate, missing_last_multiple_insert, missing_ca, 0, 0 },
- { "skip single duplicate", missing_skip_single_duplicate, missing_skip_single_insert, missing_ca, 0, 0 },
- { "skip multiple duplicate", missing_skip_multiple_duplicate, missing_skip_multiple_insert, missing_ca, 0, 0 },
- { "middle single duplicate ca", middle_single_duplicate_ca, missing_middle_single_insert, missing_ca, 0, 0 },
- { "middle single duplicate ca - insert unrelated", middle_single_duplicate_ca, missing_middle_single_duplicate_ca_unrelated_insert, missing_ca, 0, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND },
- { NULL, NULL, NULL, NULL },
+ {"middle single - no sort", missing_middle_single,
+ missing_middle_single_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0},
+ {"middle multiple - no sort", missing_middle_multiple,
+ missing_middle_multiple_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0},
+ {"last single - no sort", missing_last_single,
+ missing_last_single_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0},
+ {"last multiple - no sort", missing_last_multiple,
+ missing_last_multiple_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0},
+ {"skip single - no sort", missing_skip_single,
+ missing_skip_single_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0},
+ {"skip multiple - no sort", missing_skip_multiple,
+ missing_skip_multiple_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN, 0},
+ {"middle single unsorted - no sort", missing_middle_single_unsorted,
+ missing_middle_single_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN,
+ GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND},
+ {"middle multiple unsorted - no sort", missing_middle_multiple_unsorted,
+ missing_middle_multiple_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN,
+ GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND},
+ {"last single unsorted - no sort", missing_last_single_unsorted,
+ missing_last_single_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN,
+ GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND},
+ {"last multiple unsorted - no sort", missing_last_multiple_unsorted,
+ missing_last_multiple_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN,
+ GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND},
+ {"skip single unsorted - no sort", missing_skip_single_unsorted,
+ missing_skip_single_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN,
+ GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND},
+ {"skip multiple unsorted - no sort", missing_skip_multiple_unsorted,
+ missing_skip_multiple_insert, missing_ca,
+ GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN,
+ GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND},
+ {"middle single", missing_middle_single, missing_middle_single_insert,
+ missing_ca, 0, 0},
+ {"middle multiple", missing_middle_multiple,
+ missing_middle_multiple_insert, missing_ca, 0, 0},
+ {"last single", missing_last_single, missing_last_single_insert,
+ missing_ca, 0, 0},
+ {"last multiple", missing_last_multiple, missing_last_multiple_insert,
+ missing_ca, 0, 0},
+ {"skip single", missing_skip_single, missing_skip_single_insert,
+ missing_ca, 0, 0},
+ {"skip multiple", missing_skip_multiple, missing_skip_multiple_insert,
+ missing_ca, 0, 0},
+ {"middle single unsorted", missing_middle_single_unsorted,
+ missing_middle_single_insert, missing_ca, 0, 0},
+ {"middle multiple unsorted", missing_middle_multiple_unsorted,
+ missing_middle_multiple_insert, missing_ca, 0, 0},
+ {"last single unsorted", missing_last_single_unsorted,
+ missing_last_single_insert, missing_ca, 0, 0},
+ {"last multiple unsorted", missing_last_multiple_unsorted,
+ missing_last_multiple_insert, missing_ca, 0, 0},
+ {"skip single unsorted", missing_skip_single_unsorted,
+ missing_skip_single_insert, missing_ca, 0, 0},
+ {"skip multiple unsorted", missing_skip_multiple_unsorted,
+ missing_skip_multiple_insert, missing_ca, 0, 0},
+ {"unrelated", missing_middle_single, missing_middle_unrelated_insert,
+ missing_ca, 0, GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND},
+ {"unrelated extra", missing_middle_single,
+ missing_middle_unrelated_extra_insert, missing_ca, 0, 0},
+ {"middle single duplicate", missing_middle_single_duplicate,
+ missing_middle_single_insert, missing_ca, 0, 0},
+ {"middle multiple duplicate", missing_middle_multiple_duplicate,
+ missing_middle_multiple_insert, missing_ca, 0, 0},
+ {"last single duplicate", missing_last_single_duplicate,
+ missing_last_single_insert, missing_ca, 0, 0},
+ {"last multiple duplicate", missing_last_multiple_duplicate,
+ missing_last_multiple_insert, missing_ca, 0, 0},
+ {"skip single duplicate", missing_skip_single_duplicate,
+ missing_skip_single_insert, missing_ca, 0, 0},
+ {"skip multiple duplicate", missing_skip_multiple_duplicate,
+ missing_skip_multiple_insert, missing_ca, 0, 0},
+ {"middle single duplicate ca", middle_single_duplicate_ca,
+ missing_middle_single_insert, missing_ca, 0, 0},
+ {"middle single duplicate ca - insert unrelated",
+ middle_single_duplicate_ca,
+ missing_middle_single_duplicate_ca_unrelated_insert, missing_ca, 0,
+ GNUTLS_CERT_INVALID | GNUTLS_CERT_SIGNER_NOT_FOUND},
+ {NULL, NULL, NULL, NULL},
};
-#endif /* GNUTLS_TESTS_TEST_CHAINS_ISSUER_H */
+#endif /* GNUTLS_TESTS_TEST_CHAINS_ISSUER_H */
diff --git a/tests/test-chains.h b/tests/test-chains.h
index dd7ccf0e40..6355f28447 100644
--- a/tests/test-chains.h
+++ b/tests/test-chains.h
@@ -21,7 +21,7 @@
*/
#ifndef GNUTLS_TESTS_TEST_CHAINS_H
-#define GNUTLS_TESTS_TEST_CHAINS_H
+# define GNUTLS_TESTS_TEST_CHAINS_H
/* *INDENT-OFF* */
@@ -4451,4 +4451,4 @@ static struct
/* *INDENT-ON* */
-#endif /* GNUTLS_TESTS_TEST_CHAINS_H */
+#endif /* GNUTLS_TESTS_TEST_CHAINS_H */
diff --git a/tests/time.c b/tests/time.c
index 7f5240d026..b97befed61 100644
--- a/tests/time.c
+++ b/tests/time.c
@@ -24,7 +24,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -45,50 +45,50 @@ struct time_tests_st {
struct time_tests_st general_time_tests[] = {
{
- .time_str = "20190520133237Z",
- .utime = 1558359157
- },
+ .time_str = "20190520133237Z",
+ .utime = 1558359157},
{
- .time_str = "20170101000000Z",
- .utime = 1483228800
- },
+ .time_str = "20170101000000Z",
+ .utime = 1483228800},
{
- .time_str = "19700101000000Z",
- .utime = 0
- },
+ .time_str = "19700101000000Z",
+ .utime = 0},
};
struct time_tests_st utc_time_tests[] = {
{
- .time_str = "190520133237",
- .utime = 1558359157
- },
+ .time_str = "190520133237",
+ .utime = 1558359157},
{
- .time_str = "170101000000Z",
- .utime = 1483228800
- },
+ .time_str = "170101000000Z",
+ .utime = 1483228800},
};
-
void doit(void)
{
time_t t;
unsigned i;
- for (i=0;i<sizeof(general_time_tests)/sizeof(general_time_tests[0]);i++) {
- t = _gnutls_x509_generalTime2gtime(general_time_tests[i].time_str);
+ for (i = 0;
+ i < sizeof(general_time_tests) / sizeof(general_time_tests[0]);
+ i++) {
+ t = _gnutls_x509_generalTime2gtime(general_time_tests
+ [i].time_str);
if (t != general_time_tests[i].utime) {
- fprintf(stderr, "%s: Error in GeneralTime conversion\n", general_time_tests[i].time_str);
- fprintf(stderr, "got: %lu, expected: %lu\n", (unsigned long)t, general_time_tests[i].utime);
+ fprintf(stderr, "%s: Error in GeneralTime conversion\n",
+ general_time_tests[i].time_str);
+ fprintf(stderr, "got: %lu, expected: %lu\n",
+ (unsigned long)t, general_time_tests[i].utime);
}
}
- for (i=0;i<sizeof(utc_time_tests)/sizeof(utc_time_tests[0]);i++) {
+ for (i = 0; i < sizeof(utc_time_tests) / sizeof(utc_time_tests[0]); i++) {
t = _gnutls_utcTime2gtime(utc_time_tests[i].time_str);
if (t != utc_time_tests[i].utime) {
- fprintf(stderr, "%s: Error in utcTime conversion\n", utc_time_tests[i].time_str);
- fprintf(stderr, "got: %lu, expected: %lu\n", (unsigned long)t, utc_time_tests[i].utime);
+ fprintf(stderr, "%s: Error in utcTime conversion\n",
+ utc_time_tests[i].time_str);
+ fprintf(stderr, "got: %lu, expected: %lu\n",
+ (unsigned long)t, utc_time_tests[i].utime);
}
}
}
-
diff --git a/tests/tls-channel-binding.c b/tests/tls-channel-binding.c
index 6b8d400997..311e39f8cf 100644
--- a/tests/tls-channel-binding.c
+++ b/tests/tls-channel-binding.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -48,28 +48,28 @@ static void tls_log_func(int level, const char *str)
static int
check_binding_data(gnutls_session_t client, gnutls_session_t server,
- int cbtype, const char *cbname, int negative)
+ int cbtype, const char *cbname, int negative)
{
- gnutls_datum_t client_cb = {0};
- gnutls_datum_t server_cb = {0};
+ gnutls_datum_t client_cb = { 0 };
+ gnutls_datum_t server_cb = { 0 };
if (gnutls_session_channel_binding(client, cbtype, &client_cb)
- != GNUTLS_E_SUCCESS) {
+ != GNUTLS_E_SUCCESS) {
if (negative == 0) {
fail("Cannot get client binding %s\n", cbname);
return 1;
}
- } else if(negative) {
+ } else if (negative) {
fail("Client retrieval of %s was supposed to fail\n", cbname);
return 1;
}
if (gnutls_session_channel_binding(server, cbtype, &server_cb)
- != GNUTLS_E_SUCCESS) {
+ != GNUTLS_E_SUCCESS) {
if (negative == 0) {
fail("Cannot get server binding %s\n", cbname);
return -1;
}
- } else if(negative) {
+ } else if (negative) {
fail("Server retrieval of %s was supposed to fail\n", cbname);
return -1;
}
@@ -79,20 +79,20 @@ check_binding_data(gnutls_session_t client, gnutls_session_t server,
if (server_cb.size != client_cb.size && client_cb.size > 0) {
fail("%s wrong binding data length: %d:%d\n",
- cbname, client_cb.size, server_cb.size);
+ cbname, client_cb.size, server_cb.size);
return 2;
}
if (gnutls_memcmp(client_cb.data, server_cb.data, client_cb.size) != 0) {
fail("%s wrong binding data content\n", cbname);
return -2;
}
- gnutls_free (client_cb.data);
- gnutls_free (server_cb.data);
+ gnutls_free(client_cb.data);
+ gnutls_free(server_cb.data);
return 0;
}
static int
-serv_psk_func(gnutls_session_t session, const char *user, gnutls_datum_t *pass)
+serv_psk_func(gnutls_session_t session, const char *user, gnutls_datum_t * pass)
{
pass->size = 4;
pass->data = gnutls_malloc(pass->size);
@@ -104,7 +104,7 @@ serv_psk_func(gnutls_session_t session, const char *user, gnutls_datum_t *pass)
}
static void
-tls_setup_peers(gnutls_session_t *client, gnutls_session_t *server,
+tls_setup_peers(gnutls_session_t * client, gnutls_session_t * server,
const char *cprio, const char *sprio, int raw)
{
gnutls_certificate_credentials_t clientx509cred;
@@ -113,7 +113,7 @@ tls_setup_peers(gnutls_session_t *client, gnutls_session_t *server,
gnutls_anon_server_credentials_t s_anoncred;
gnutls_psk_client_credentials_t c_psk_cred;
gnutls_psk_server_credentials_t s_psk_cred;
- const gnutls_datum_t pskkey = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t pskkey = { (void *)"DEADBEEF", 8 };
int cret = GNUTLS_E_AGAIN;
int sret = GNUTLS_E_AGAIN;
@@ -127,13 +127,14 @@ tls_setup_peers(gnutls_session_t *client, gnutls_session_t *server,
gnutls_certificate_allocate_credentials(&serverx509cred);
if (raw)
gnutls_certificate_set_rawpk_key_mem(serverx509cred,
- &rawpk_public_key1, &rawpk_private_key1,
- GNUTLS_X509_FMT_PEM,
- NULL, 0, NULL, 0, 0);
+ &rawpk_public_key1,
+ &rawpk_private_key1,
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0, NULL, 0, 0);
else
gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&s_anoncred);
gnutls_psk_allocate_server_credentials(&s_psk_cred);
gnutls_psk_set_server_credentials_function(s_psk_cred, serv_psk_func);
@@ -164,29 +165,28 @@ tls_setup_peers(gnutls_session_t *client, gnutls_session_t *server,
HANDSHAKE(*client, *server);
}
-static void
-tls_clear_peers(gnutls_session_t client, gnutls_session_t server)
+static void tls_clear_peers(gnutls_session_t client, gnutls_session_t server)
{
void *cred;
gnutls_bye(client, GNUTLS_SHUT_RDWR);
gnutls_bye(server, GNUTLS_SHUT_RDWR);
- if(gnutls_credentials_get(client, GNUTLS_CRD_CERTIFICATE, &cred) == 0)
+ if (gnutls_credentials_get(client, GNUTLS_CRD_CERTIFICATE, &cred) == 0)
gnutls_certificate_free_credentials(cred);
- if(gnutls_credentials_get(server, GNUTLS_CRD_CERTIFICATE, &cred) == 0)
+ if (gnutls_credentials_get(server, GNUTLS_CRD_CERTIFICATE, &cred) == 0)
gnutls_certificate_free_credentials(cred);
- if(gnutls_credentials_get(client, GNUTLS_CRD_ANON, &cred) == 0)
+ if (gnutls_credentials_get(client, GNUTLS_CRD_ANON, &cred) == 0)
gnutls_anon_free_client_credentials(cred);
- if(gnutls_credentials_get(server, GNUTLS_CRD_ANON, &cred) == 0)
+ if (gnutls_credentials_get(server, GNUTLS_CRD_ANON, &cred) == 0)
gnutls_anon_free_server_credentials(cred);
- if(gnutls_credentials_get(client, GNUTLS_CRD_PSK, &cred) == 0)
+ if (gnutls_credentials_get(client, GNUTLS_CRD_PSK, &cred) == 0)
gnutls_psk_free_client_credentials(cred);
- if(gnutls_credentials_get(server, GNUTLS_CRD_PSK, &cred) == 0)
+ if (gnutls_credentials_get(server, GNUTLS_CRD_PSK, &cred) == 0)
gnutls_psk_free_server_credentials(cred);
gnutls_deinit(client);
@@ -197,8 +197,7 @@ tls_clear_peers(gnutls_session_t client, gnutls_session_t server)
reset_buffers();
}
-static void
-tlsv13_binding(void)
+static void tlsv13_binding(void)
{
gnutls_session_t client = NULL;
gnutls_session_t server = NULL;
@@ -218,7 +217,7 @@ tlsv13_binding(void)
/* tls-unique testing - must fail under 1.3 */
if (check_binding_data(client, server, GNUTLS_CB_TLS_UNIQUE,
- "tls-unique", 1) == 0)
+ "tls-unique", 1) == 0)
success("binding fail: tls-unique not supported for TLSv1.3\n");
/* bogus biding type */
@@ -227,19 +226,18 @@ tlsv13_binding(void)
/* tls-server-end-point testing, take both sides and compare */
if (check_binding_data(client, server, GNUTLS_CB_TLS_SERVER_END_POINT,
- "tls-server-end-point", 0) == 0)
+ "tls-server-end-point", 0) == 0)
success("binding match: tls-server-end-point\n");
/* tls-exporter testing, take both sides and compare */
if (check_binding_data(client, server, GNUTLS_CB_TLS_EXPORTER,
- "tls-exporter", 0) == 0)
+ "tls-exporter", 0) == 0)
success("binding match: tls-exporter\n");
tls_clear_peers(client, server);
}
-static void
-rawv13_binding(void)
+static void rawv13_binding(void)
{
gnutls_session_t client = NULL;
gnutls_session_t server = NULL;
@@ -260,7 +258,7 @@ rawv13_binding(void)
/* tls-unique testing - must fail under 1.3 */
if (check_binding_data(client, server, GNUTLS_CB_TLS_UNIQUE,
- "tls-unique", 1) == 0)
+ "tls-unique", 1) == 0)
success("binding fail: tls-unique not supported for TLSv1.3\n");
/* bogus biding type */
@@ -269,19 +267,19 @@ rawv13_binding(void)
/* tls-server-end-point testing, undefined for anon and psk */
if (check_binding_data(client, server, GNUTLS_CB_TLS_SERVER_END_POINT,
- "tls-server-end-point", 1) == 0)
- success("binding fail: tls-server-end-point invalid for rawpk\n");
+ "tls-server-end-point", 1) == 0)
+ success
+ ("binding fail: tls-server-end-point invalid for rawpk\n");
/* tls-exporter testing, take both sides and compare */
if (check_binding_data(client, server, GNUTLS_CB_TLS_EXPORTER,
- "tls-exporter", 0) == 0)
+ "tls-exporter", 0) == 0)
success("binding match: tls-exporter\n");
tls_clear_peers(client, server);
}
-static void
-pskv13_binding(void)
+static void pskv13_binding(void)
{
gnutls_session_t client = NULL;
gnutls_session_t server = NULL;
@@ -301,7 +299,7 @@ pskv13_binding(void)
/* tls-unique testing - must fail under 1.3 */
if (check_binding_data(client, server, GNUTLS_CB_TLS_UNIQUE,
- "tls-unique", 1) == 0)
+ "tls-unique", 1) == 0)
success("binding fail: tls-unique not supported for TLSv1.3\n");
/* bogus biding type */
@@ -310,19 +308,19 @@ pskv13_binding(void)
/* tls-server-end-point testing, undefined for anon and psk */
if (check_binding_data(client, server, GNUTLS_CB_TLS_SERVER_END_POINT,
- "tls-server-end-point", 1) == 0)
- success("binding fail: tls-server-end-point invalid for anon\n");
+ "tls-server-end-point", 1) == 0)
+ success
+ ("binding fail: tls-server-end-point invalid for anon\n");
/* tls-exporter testing, take both sides and compare */
if (check_binding_data(client, server, GNUTLS_CB_TLS_EXPORTER,
- "tls-exporter", 0) == 0)
+ "tls-exporter", 0) == 0)
success("binding match: tls-exporter\n");
tls_clear_peers(client, server);
}
-static void
-tlsv12_binding(void)
+static void tlsv12_binding(void)
{
gnutls_session_t client = NULL;
gnutls_session_t server = NULL;
@@ -342,7 +340,7 @@ tlsv12_binding(void)
/* tls-unique testing - must succeed under 1.2 */
if (check_binding_data(client, server, GNUTLS_CB_TLS_UNIQUE,
- "tls-unique", 0) == 0)
+ "tls-unique", 0) == 0)
success("binding match: tls-unique\n");
/* bogus biding type */
@@ -351,19 +349,18 @@ tlsv12_binding(void)
/* tls-server-end-point testing, take both sides and compare */
if (check_binding_data(client, server, GNUTLS_CB_TLS_SERVER_END_POINT,
- "tls-server-end-point", 0) == 0)
+ "tls-server-end-point", 0) == 0)
success("binding match: tls-server-end-point\n");
/* tls-exporter testing, take both sides and compare */
if (check_binding_data(client, server, GNUTLS_CB_TLS_EXPORTER,
- "tls-exporter", 0) == 0)
+ "tls-exporter", 0) == 0)
success("binding match: tls-exporter\n");
tls_clear_peers(client, server);
}
-static void
-anon12_binding(void)
+static void anon12_binding(void)
{
gnutls_session_t client = NULL;
gnutls_session_t server = NULL;
@@ -383,7 +380,7 @@ anon12_binding(void)
/* tls-unique testing - must succeed under 1.2 */
if (check_binding_data(client, server, GNUTLS_CB_TLS_UNIQUE,
- "tls-unique", 0) == 0)
+ "tls-unique", 0) == 0)
success("binding match: tls-unique\n");
/* bogus biding type */
@@ -392,19 +389,19 @@ anon12_binding(void)
/* tls-server-end-point testing, undefined for anon and psk */
if (check_binding_data(client, server, GNUTLS_CB_TLS_SERVER_END_POINT,
- "tls-server-end-point", 1) == 0)
- success("binding fail: tls-server-end-point invalid for anon\n");
+ "tls-server-end-point", 1) == 0)
+ success
+ ("binding fail: tls-server-end-point invalid for anon\n");
/* tls-exporter testing, take both sides and compare */
if (check_binding_data(client, server, GNUTLS_CB_TLS_EXPORTER,
- "tls-exporter", 0) == 0)
+ "tls-exporter", 0) == 0)
success("binding match: tls-exporter\n");
tls_clear_peers(client, server);
}
-static void
-pskv12_binding(void)
+static void pskv12_binding(void)
{
gnutls_session_t client = NULL;
gnutls_session_t server = NULL;
@@ -424,7 +421,7 @@ pskv12_binding(void)
/* tls-unique testing - must succeed under 1.2 */
if (check_binding_data(client, server, GNUTLS_CB_TLS_UNIQUE,
- "tls-unique", 0) == 0)
+ "tls-unique", 0) == 0)
success("binding match: tls-unique\n");
/* bogus biding type */
@@ -433,12 +430,13 @@ pskv12_binding(void)
/* tls-server-end-point testing, undefined for anon and psk */
if (check_binding_data(client, server, GNUTLS_CB_TLS_SERVER_END_POINT,
- "tls-server-end-point", 1) == 0)
- success("binding fail: tls-server-end-point invalid for anon\n");
+ "tls-server-end-point", 1) == 0)
+ success
+ ("binding fail: tls-server-end-point invalid for anon\n");
/* tls-exporter testing, take both sides and compare */
if (check_binding_data(client, server, GNUTLS_CB_TLS_EXPORTER,
- "tls-exporter", 0) == 0)
+ "tls-exporter", 0) == 0)
success("binding match: tls-exporter\n");
tls_clear_peers(client, server);
diff --git a/tests/tls-client-with-seccomp.c b/tests/tls-client-with-seccomp.c
index 346111ff3f..a51df74c2f 100644
--- a/tests/tls-client-with-seccomp.c
+++ b/tests/tls-client-with-seccomp.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <assert.h>
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <assert.h>
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -61,7 +61,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -91,9 +91,7 @@ static void client(int fd, const char *prio)
gnutls_handshake_set_timeout(session, get_timeout());
/* Use default priorities */
- assert(gnutls_priority_set_direct(session,
- prio,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -121,13 +119,12 @@ static void client(int fd, const char *prio)
(gnutls_protocol_get_version(session)));
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_recv(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -136,10 +133,11 @@ static void client(int fd, const char *prio)
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
- end:
+ end:
close(fd);
@@ -150,7 +148,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -182,8 +179,8 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&xcred);
ret = gnutls_certificate_set_x509_key_mem(xcred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -193,9 +190,7 @@ static void server(int fd, const char *prio)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session,
- prio,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, xcred);
@@ -225,7 +220,7 @@ static void server(int fd, const char *prio)
memset(buffer, 1, sizeof(buffer));
do {
- ret = gnutls_record_send(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_send(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
@@ -238,7 +233,8 @@ static void server(int fd, const char *prio)
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
close(fd);
@@ -252,7 +248,7 @@ static void server(int fd, const char *prio)
success("server: finished\n");
}
-static
+static
void run(const char *name, const char *prio)
{
int fd[2];
diff --git a/tests/tls-crt_type-neg.c b/tests/tls-crt_type-neg.c
index dacb854274..74be3fcba2 100644
--- a/tests/tls-crt_type-neg.c
+++ b/tests/tls-crt_type-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the certificate type negotiation mechanism for
@@ -40,16 +40,16 @@ test_case_st tests[] = {
/* Tests with only a single credential set for client/server.
* Tests for X.509 cases.
*/
- {
- /* Default case A
- *
- * Priority cli: NORMAL
- * Priority srv: NORMAL
- * Cli creds: None
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: cert types should default to X.509
- */
+ {
+ /* Default case A
+ *
+ * Priority cli: NORMAL
+ * Priority srv: NORMAL
+ * Cli creds: None
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: cert types should default to X.509
+ */
.name = "Default case A. Creds set (CLI/SRV): None/X509.",
.client_prio = "NORMAL",
.server_prio = "NORMAL",
@@ -58,15 +58,16 @@ test_case_st tests[] = {
.expected_cli_ctype = GNUTLS_CRT_X509,
.expected_srv_ctype = GNUTLS_CRT_X509},
{
- /* Default case B
- *
- * Priority: NORMAL
- * Cli creds: X.509
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: cert types should default to X.509
- */
- .name = "Default case B. Creds set (CLI/SRV): X509/X509. No cli cert asked.",
+ /* Default case B
+ *
+ * Priority: NORMAL
+ * Cli creds: X.509
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: cert types should default to X.509
+ */
+ .name =
+ "Default case B. Creds set (CLI/SRV): X509/X509. No cli cert asked.",
.client_prio = "NORMAL",
.server_prio = "NORMAL",
.set_cli_creds = CRED_X509,
@@ -74,15 +75,16 @@ test_case_st tests[] = {
.expected_cli_ctype = GNUTLS_CRT_X509,
.expected_srv_ctype = GNUTLS_CRT_X509},
{
- /* Default case C
- *
- * Priority: NORMAL
- * Cli creds: X.509
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: cert types should default to X.509
- */
- .name = "Default case C. Creds set (CLI/SRV): X509/X509. Cli cert asked.",
+ /* Default case C
+ *
+ * Priority: NORMAL
+ * Cli creds: X.509
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: cert types should default to X.509
+ */
+ .name =
+ "Default case C. Creds set (CLI/SRV): X509/X509. Cli cert asked.",
.client_prio = "NORMAL",
.server_prio = "NORMAL",
.set_cli_creds = CRED_X509,
@@ -91,14 +93,14 @@ test_case_st tests[] = {
.expected_srv_ctype = GNUTLS_CRT_X509,
.request_cli_crt = true},
{
- /* No server credentials
- *
- * Priority: NORMAL
- * Cli creds: None
- * Srv creds: None
- * Handshake: results in errors
- * Negotiation: cert types are not evaluated
- */
+ /* No server credentials
+ *
+ * Priority: NORMAL
+ * Cli creds: None
+ * Srv creds: None
+ * Handshake: results in errors
+ * Negotiation: cert types are not evaluated
+ */
.name = "No server creds. Creds set (CLI/SRV): None/None.",
.client_prio = "NORMAL",
.server_prio = "NORMAL",
@@ -107,17 +109,18 @@ test_case_st tests[] = {
.client_err = GNUTLS_E_AGAIN,
.server_err = GNUTLS_E_NO_CIPHER_SUITES},
{
- /* Explicit cli/srv ctype negotiation, cli creds x509, srv creds x509
- *
- * Priority: NORMAL + request x509 for cli and srv
- * Cli creds: X.509
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: Fallback to default cli X.509, srv X.509 because
- * we advertise with only the cert type defaults. Extensions
- * will therefore not be activated.
- */
- .name = "Negotiate CLI X.509 + SRV X.509. Creds set (CLI/SRV): X.509/X.509.",
+ /* Explicit cli/srv ctype negotiation, cli creds x509, srv creds x509
+ *
+ * Priority: NORMAL + request x509 for cli and srv
+ * Cli creds: X.509
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: Fallback to default cli X.509, srv X.509 because
+ * we advertise with only the cert type defaults. Extensions
+ * will therefore not be activated.
+ */
+ .name =
+ "Negotiate CLI X.509 + SRV X.509. Creds set (CLI/SRV): X.509/X.509.",
.client_prio = "NORMAL:+CTYPE-CLI-X509:+CTYPE-SRV-X509",
.server_prio = "NORMAL:+CTYPE-CLI-X509:+CTYPE-SRV-X509",
.set_cli_creds = CRED_X509,
@@ -125,16 +128,16 @@ test_case_st tests[] = {
.expected_cli_ctype = GNUTLS_CRT_X509,
.expected_srv_ctype = GNUTLS_CRT_X509},
{
- /* Explicit cli/srv ctype negotiation, cli creds x509, srv creds x509, no cli cert asked
- *
- * Priority: NORMAL + request x509 for cli
- * Cli creds: X.509
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: Fallback to default cli X.509, srv X.509 because
- * we advertise with only the cert type defaults. Extensions
- * will therefore not be activated.
- */
+ /* Explicit cli/srv ctype negotiation, cli creds x509, srv creds x509, no cli cert asked
+ *
+ * Priority: NORMAL + request x509 for cli
+ * Cli creds: X.509
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: Fallback to default cli X.509, srv X.509 because
+ * we advertise with only the cert type defaults. Extensions
+ * will therefore not be activated.
+ */
.name = "Negotiate CLI X.509. Creds set (CLI/SRV): X.509/X.509.",
.client_prio = "NORMAL:+CTYPE-CLI-X509",
.server_prio = "NORMAL:+CTYPE-CLI-X509",
@@ -143,16 +146,16 @@ test_case_st tests[] = {
.expected_cli_ctype = GNUTLS_CRT_X509,
.expected_srv_ctype = GNUTLS_CRT_X509},
{
- /* Explicit cli/srv ctype negotiation, cli creds x509, srv creds x509, cli cert asked
- *
- * Priority: NORMAL + request x509 for cli
- * Cli creds: X.509
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: Fallback to default cli X.509, srv X.509 because
- * we advertise with only the cert type defaults. Extensions
- * will therefore not be activated.
- */
+ /* Explicit cli/srv ctype negotiation, cli creds x509, srv creds x509, cli cert asked
+ *
+ * Priority: NORMAL + request x509 for cli
+ * Cli creds: X.509
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: Fallback to default cli X.509, srv X.509 because
+ * we advertise with only the cert type defaults. Extensions
+ * will therefore not be activated.
+ */
.name = "Negotiate CLI X.509. Creds set (CLI/SRV): X.509/X.509.",
.client_prio = "NORMAL:+CTYPE-CLI-X509",
.server_prio = "NORMAL:+CTYPE-CLI-X509",
@@ -162,16 +165,16 @@ test_case_st tests[] = {
.expected_srv_ctype = GNUTLS_CRT_X509,
.request_cli_crt = true},
{
- /* Explicit cli/srv ctype negotiation, cli creds x509, srv creds x509
- *
- * Priority: NORMAL + request x509 for srv
- * Cli creds: X.509
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: Fallback to default cli X.509, srv X.509 because
- * we advertise with only the cert type defaults. Extensions
- * will therefore not be activated.
- */
+ /* Explicit cli/srv ctype negotiation, cli creds x509, srv creds x509
+ *
+ * Priority: NORMAL + request x509 for srv
+ * Cli creds: X.509
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: Fallback to default cli X.509, srv X.509 because
+ * we advertise with only the cert type defaults. Extensions
+ * will therefore not be activated.
+ */
.name = "Negotiate SRV X.509. Creds set (CLI/SRV): X.509/X.509.",
.client_prio = "NORMAL:+CTYPE-SRV-X509",
.server_prio = "NORMAL:+CTYPE-SRV-X509",
@@ -180,15 +183,15 @@ test_case_st tests[] = {
.expected_cli_ctype = GNUTLS_CRT_X509,
.expected_srv_ctype = GNUTLS_CRT_X509},
{
- /* Explicit cli/srv ctype negotiation, all types allowed for CLI, cli creds x509, srv creds x509
- *
- * Priority: NORMAL + allow all client cert types
- * Cli creds: X.509
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: cli X.509 and srv X.509 because
- * we only have X.509 credentials set.
- */
+ /* Explicit cli/srv ctype negotiation, all types allowed for CLI, cli creds x509, srv creds x509
+ *
+ * Priority: NORMAL + allow all client cert types
+ * Cli creds: X.509
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: cli X.509 and srv X.509 because
+ * we only have X.509 credentials set.
+ */
.name = "Negotiate CLI all. Creds set (CLI/SRV): X.509/X.509.",
.client_prio = "NORMAL:+CTYPE-CLI-ALL",
.server_prio = "NORMAL:+CTYPE-CLI-ALL",
@@ -197,15 +200,15 @@ test_case_st tests[] = {
.expected_cli_ctype = GNUTLS_CRT_X509,
.expected_srv_ctype = GNUTLS_CRT_X509},
{
- /* Explicit cli/srv ctype negotiation, all types allowed for SRV, cli creds x509, srv creds x509
- *
- * Priority: NORMAL + allow all server cert types
- * Cli creds: X.509
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: cli X.509 and srv X.509 because
- * we only have X.509 credentials set.
- */
+ /* Explicit cli/srv ctype negotiation, all types allowed for SRV, cli creds x509, srv creds x509
+ *
+ * Priority: NORMAL + allow all server cert types
+ * Cli creds: X.509
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: cli X.509 and srv X.509 because
+ * we only have X.509 credentials set.
+ */
.name = "Negotiate SRV all. Creds set (CLI/SRV): X.509/X.509.",
.client_prio = "NORMAL:+CTYPE-SRV-ALL",
.server_prio = "NORMAL:+CTYPE-SRV-ALL",
@@ -214,15 +217,15 @@ test_case_st tests[] = {
.expected_cli_ctype = GNUTLS_CRT_X509,
.expected_srv_ctype = GNUTLS_CRT_X509},
{
- /* Explicit cli/srv ctype negotiation, all types allowed for CLI/SRV, cli creds x509, srv creds x509
- *
- * Priority: NORMAL + allow all client and server cert types
- * Cli creds: X.509
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: cli X.509 and srv X.509 because
- * we only have X.509 credentials set.
- */
+ /* Explicit cli/srv ctype negotiation, all types allowed for CLI/SRV, cli creds x509, srv creds x509
+ *
+ * Priority: NORMAL + allow all client and server cert types
+ * Cli creds: X.509
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: cli X.509 and srv X.509 because
+ * we only have X.509 credentials set.
+ */
.name = "Negotiate CLI/SRV all. Creds set (CLI/SRV): X.509/X.509.",
.client_prio = "NORMAL:+CTYPE-CLI-ALL:+CTYPE-SRV-ALL",
.server_prio = "NORMAL:+CTYPE-CLI-ALL:+CTYPE-SRV-ALL",
@@ -235,16 +238,17 @@ test_case_st tests[] = {
* Tests for Raw public-key cases.
*/
{
- /* Explicit cli/srv ctype negotiation, cli creds Raw PK, srv creds Raw PK, Req. cli cert.
- *
- * Priority: NORMAL + request rawpk for cli and srv
- * Cli creds: Raw PK
- * Srv creds: Raw PK
- * Request client cert: yes
- * Handshake: should complete without errors
- * Negotiation: both parties should have a Raw PK cert negotiated
- */
- .name = "Negotiate CLI Raw PK + SRV Raw PK. Creds set (CLI/SRV): RawPK/RawPK. Cert req.",
+ /* Explicit cli/srv ctype negotiation, cli creds Raw PK, srv creds Raw PK, Req. cli cert.
+ *
+ * Priority: NORMAL + request rawpk for cli and srv
+ * Cli creds: Raw PK
+ * Srv creds: Raw PK
+ * Request client cert: yes
+ * Handshake: should complete without errors
+ * Negotiation: both parties should have a Raw PK cert negotiated
+ */
+ .name =
+ "Negotiate CLI Raw PK + SRV Raw PK. Creds set (CLI/SRV): RawPK/RawPK. Cert req.",
.client_prio = "NORMAL:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
.server_prio = "NORMAL:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
.set_cli_creds = CRED_RAWPK,
@@ -255,20 +259,23 @@ test_case_st tests[] = {
.init_flags_srv = GNUTLS_ENABLE_RAWPK,
.request_cli_crt = true},
{
- /* Explicit cli/srv ctype negotiation (TLS 1.2), cli creds Raw PK, srv creds Raw PK
- *
- * Priority: NORMAL + request rawpk for cli and srv
- * Cli creds: Raw PK
- * Srv creds: Raw PK
- * Request client cert: no
- * Handshake: should complete without errors
- * Negotiation: a Raw PK server cert. A diverged state for the client
- * cert type. The server picks Raw PK but does not send a response
- * to the client (under TLS 1.2). The client therefore falls back to default (X.509).
- */
- .name = "Negotiate CLI Raw PK + SRV Raw PK. Creds set (CLI/SRV): RawPK/RawPK.",
- .client_prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
- .server_prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
+ /* Explicit cli/srv ctype negotiation (TLS 1.2), cli creds Raw PK, srv creds Raw PK
+ *
+ * Priority: NORMAL + request rawpk for cli and srv
+ * Cli creds: Raw PK
+ * Srv creds: Raw PK
+ * Request client cert: no
+ * Handshake: should complete without errors
+ * Negotiation: a Raw PK server cert. A diverged state for the client
+ * cert type. The server picks Raw PK but does not send a response
+ * to the client (under TLS 1.2). The client therefore falls back to default (X.509).
+ */
+ .name =
+ "Negotiate CLI Raw PK + SRV Raw PK. Creds set (CLI/SRV): RawPK/RawPK.",
+ .client_prio =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
+ .server_prio =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
.set_cli_creds = CRED_RAWPK,
.set_srv_creds = CRED_RAWPK,
.expected_cli_cli_ctype = GNUTLS_CRT_X509,
@@ -280,21 +287,24 @@ test_case_st tests[] = {
.request_cli_crt = false,
.cli_srv_may_diverge = true},
{
- /* Explicit cli/srv ctype negotiation (TLS 1.3), cli creds Raw PK, srv creds Raw PK
- *
- * Priority: NORMAL + request rawpk for cli and srv
- * Cli creds: Raw PK
- * Srv creds: Raw PK
- * Request client cert: no
- * Handshake: should complete without errors
- * Negotiation: a Raw PK server cert and client cert. Under TLS 1.3
- * a response is always sent by the server also when no client
- * cert is requested. This is necessary for post-handshake authentication
- * to work.
- */
- .name = "Negotiate CLI Raw PK + SRV Raw PK. Creds set (CLI/SRV): RawPK/RawPK.",
- .client_prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
- .server_prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
+ /* Explicit cli/srv ctype negotiation (TLS 1.3), cli creds Raw PK, srv creds Raw PK
+ *
+ * Priority: NORMAL + request rawpk for cli and srv
+ * Cli creds: Raw PK
+ * Srv creds: Raw PK
+ * Request client cert: no
+ * Handshake: should complete without errors
+ * Negotiation: a Raw PK server cert and client cert. Under TLS 1.3
+ * a response is always sent by the server also when no client
+ * cert is requested. This is necessary for post-handshake authentication
+ * to work.
+ */
+ .name =
+ "Negotiate CLI Raw PK + SRV Raw PK. Creds set (CLI/SRV): RawPK/RawPK.",
+ .client_prio =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
+ .server_prio =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
.set_cli_creds = CRED_RAWPK,
.set_srv_creds = CRED_RAWPK,
.expected_cli_cli_ctype = GNUTLS_CRT_RAWPK,
@@ -306,15 +316,15 @@ test_case_st tests[] = {
.request_cli_crt = false,
.cli_srv_may_diverge = true},
{
- /* Explicit cli/srv ctype negotiation, cli creds Raw PK, srv creds Raw PK
- *
- * Priority: NORMAL + request rawpk for cli
- * Cli creds: Raw PK
- * Srv creds: Raw PK
- * Request client cert: no
- * Handshake: fails because no valid cred (X.509) can be found for the server.
- * Negotiation: -
- */
+ /* Explicit cli/srv ctype negotiation, cli creds Raw PK, srv creds Raw PK
+ *
+ * Priority: NORMAL + request rawpk for cli
+ * Cli creds: Raw PK
+ * Srv creds: Raw PK
+ * Request client cert: no
+ * Handshake: fails because no valid cred (X.509) can be found for the server.
+ * Negotiation: -
+ */
.name = "Negotiate CLI Raw PK. Creds set (CLI/SRV): RawPK/RawPK.",
.client_prio = "NORMAL:+CTYPE-CLI-RAWPK",
.server_prio = "NORMAL:+CTYPE-CLI-RAWPK",
@@ -325,16 +335,16 @@ test_case_st tests[] = {
.client_err = GNUTLS_E_AGAIN,
.server_err = GNUTLS_E_NO_CIPHER_SUITES},
{
- /* Explicit cli/srv ctype negotiation, cli creds Raw PK, srv creds Raw PK, request cli cert.
- *
- * Priority: NORMAL + request rawpk for srv
- * Cli creds: Raw PK
- * Srv creds: Raw PK
- * Request client cert: yes
- * Handshake: should complete without errors
- * Negotiation: Raw PK will be negotiated for server. Client will
- * default to X.509.
- */
+ /* Explicit cli/srv ctype negotiation, cli creds Raw PK, srv creds Raw PK, request cli cert.
+ *
+ * Priority: NORMAL + request rawpk for srv
+ * Cli creds: Raw PK
+ * Srv creds: Raw PK
+ * Request client cert: yes
+ * Handshake: should complete without errors
+ * Negotiation: Raw PK will be negotiated for server. Client will
+ * default to X.509.
+ */
.name = "Negotiate SRV Raw PK. Creds set (CLI/SRV): RawPK/RawPK.",
.client_prio = "NORMAL:+CTYPE-SRV-RAWPK",
.server_prio = "NORMAL:+CTYPE-SRV-RAWPK",
@@ -345,18 +355,19 @@ test_case_st tests[] = {
.init_flags_cli = GNUTLS_ENABLE_RAWPK,
.init_flags_srv = GNUTLS_ENABLE_RAWPK,
.request_cli_crt = true},
- {
- /* Explicit cli/srv ctype negotiation, cli creds Raw PK, srv creds X.509, Request cli cert.
- *
- * Priority: NORMAL + request rawpk for cli and srv
- * Cli creds: Raw PK
- * Srv creds: X.509
- * Request client cert: yes
- * Handshake: should complete without errors
- * Negotiation: Raw PK will be negotiated for client. Server will
- * default to X.509.
- */
- .name = "Negotiate CLI and SRV Raw PK. Creds set (CLI/SRV): RawPK/X.509.",
+ {
+ /* Explicit cli/srv ctype negotiation, cli creds Raw PK, srv creds X.509, Request cli cert.
+ *
+ * Priority: NORMAL + request rawpk for cli and srv
+ * Cli creds: Raw PK
+ * Srv creds: X.509
+ * Request client cert: yes
+ * Handshake: should complete without errors
+ * Negotiation: Raw PK will be negotiated for client. Server will
+ * default to X.509.
+ */
+ .name =
+ "Negotiate CLI and SRV Raw PK. Creds set (CLI/SRV): RawPK/X.509.",
.client_prio = "NORMAL:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
.server_prio = "NORMAL:+CTYPE-CLI-RAWPK:+CTYPE-SRV-RAWPK",
.set_cli_creds = CRED_RAWPK,
@@ -366,16 +377,16 @@ test_case_st tests[] = {
.init_flags_cli = GNUTLS_ENABLE_RAWPK,
.init_flags_srv = GNUTLS_ENABLE_RAWPK,
.request_cli_crt = true},
- {
- /* All types allowed for CLI, cli creds Raw PK, srv creds X.509
- *
- * Priority: NORMAL + allow all client cert types
- * Cli creds: Raw PK
- * Srv creds: X.509
- * Handshake: should complete without errors
- * Negotiation: cli Raw PK and srv X.509 because
- * that are the only credentials set.
- */
+ {
+ /* All types allowed for CLI, cli creds Raw PK, srv creds X.509
+ *
+ * Priority: NORMAL + allow all client cert types
+ * Cli creds: Raw PK
+ * Srv creds: X.509
+ * Handshake: should complete without errors
+ * Negotiation: cli Raw PK and srv X.509 because
+ * that are the only credentials set.
+ */
.name = "Negotiate CLI all. Creds set (CLI/SRV): Raw PK/X.509.",
.client_prio = "NORMAL:+CTYPE-CLI-ALL",
.server_prio = "NORMAL:+CTYPE-CLI-ALL",
@@ -387,15 +398,15 @@ test_case_st tests[] = {
.init_flags_srv = GNUTLS_ENABLE_RAWPK,
.request_cli_crt = true},
{
- /* All types allowed for SRV, cli creds x509, srv creds Raw PK
- *
- * Priority: NORMAL + allow all server cert types
- * Cli creds: X.509
- * Srv creds: Raw PK
- * Handshake: should complete without errors
- * Negotiation: cli X.509 and srv Raw PK because
- * that are the only credentials set.
- */
+ /* All types allowed for SRV, cli creds x509, srv creds Raw PK
+ *
+ * Priority: NORMAL + allow all server cert types
+ * Cli creds: X.509
+ * Srv creds: Raw PK
+ * Handshake: should complete without errors
+ * Negotiation: cli X.509 and srv Raw PK because
+ * that are the only credentials set.
+ */
.name = "Negotiate SRV all. Creds set (CLI/SRV): X.509/Raw PK.",
.client_prio = "NORMAL:+CTYPE-SRV-ALL",
.server_prio = "NORMAL:+CTYPE-SRV-ALL",
@@ -407,15 +418,15 @@ test_case_st tests[] = {
.init_flags_srv = GNUTLS_ENABLE_RAWPK,
.request_cli_crt = true},
{
- /* All types allowed for CLI/SRV, cli creds Raw PK, srv creds Raw PK
- *
- * Priority: NORMAL + allow all client and server cert types
- * Cli creds: Raw PK
- * Srv creds: Raw PK
- * Handshake: should complete without errors
- * Negotiation: cli Raw PK and srv Raw PK because
- * that are the only credentials set.
- */
+ /* All types allowed for CLI/SRV, cli creds Raw PK, srv creds Raw PK
+ *
+ * Priority: NORMAL + allow all client and server cert types
+ * Cli creds: Raw PK
+ * Srv creds: Raw PK
+ * Handshake: should complete without errors
+ * Negotiation: cli Raw PK and srv Raw PK because
+ * that are the only credentials set.
+ */
.name = "Negotiate CLI/SRV all. Creds set (CLI/SRV): Raw PK/Raw PK.",
.client_prio = "NORMAL:+CTYPE-CLI-ALL:+CTYPE-SRV-ALL",
.server_prio = "NORMAL:+CTYPE-CLI-ALL:+CTYPE-SRV-ALL",
diff --git a/tests/tls-etm.c b/tests/tls-etm.c
index 10b71aa360..1e3c054a4e 100644
--- a/tests/tls-etm.c
+++ b/tests/tls-etm.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "utils.h"
-#include "cert-common.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "utils.h"
+# include "cert-common.h"
static void terminate(void);
@@ -68,7 +68,7 @@ static void client_log_func(int level, const char *str)
/* A very basic TLS client, with anonymous authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio, unsigned etm)
{
@@ -94,7 +94,7 @@ static void client(int fd, const char *prio, unsigned etm)
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the anonymous credentials to the current session
*/
@@ -132,10 +132,13 @@ static void client(int fd, const char *prio, unsigned etm)
exit(1);
}
- if (etm != 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
+ if (etm != 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
fail("client: EtM was not negotiated with %s!\n", prio);
exit(1);
- } else if (etm == 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) != 0)) {
+ } else if (etm == 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM)
+ != 0)) {
fail("client: EtM was negotiated with %s!\n", prio);
exit(1);
}
@@ -143,14 +146,12 @@ static void client(int fd, const char *prio, unsigned etm)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -161,7 +162,7 @@ static void client(int fd, const char *prio, unsigned etm)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -173,7 +174,6 @@ static void client(int fd, const char *prio, unsigned etm)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -191,7 +191,7 @@ static void server(int fd, const char *prio, unsigned etm)
gnutls_session_t session;
gnutls_anon_server_credentials_t anoncred;
gnutls_certificate_credentials_t x509_cred;
- unsigned to_send = sizeof(buffer)/4;
+ unsigned to_send = sizeof(buffer) / 4;
/* this must be called once in the program
*/
@@ -205,8 +205,7 @@ static void server(int fd, const char *prio, unsigned etm)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
@@ -241,10 +240,13 @@ static void server(int fd, const char *prio, unsigned etm)
exit(1);
}
- if (etm != 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
+ if (etm != 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
fail("server: EtM was not negotiated with %s!\n", prio);
exit(1);
- } else if (etm == 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) != 0)) {
+ } else if (etm == 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM)
+ != 0)) {
fail("server: EtM was negotiated with %s!\n", prio);
exit(1);
}
@@ -260,10 +262,8 @@ static void server(int fd, const char *prio, unsigned etm)
do {
do {
ret =
- gnutls_record_send(session, buffer,
- sizeof(buffer));
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ gnutls_record_send(session, buffer, sizeof(buffer));
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("Error sending %d byte packet: %s\n", to_send,
@@ -321,9 +321,9 @@ static void start(const char *prio, unsigned etm)
}
}
-#define AES_CBC "NONE:+VERS-TLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CBC_SHA256 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC "NONE:+VERS-TLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC_SHA256 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
static void ch_handler(int sig)
{
diff --git a/tests/tls-ext-not-in-dtls.c b/tests/tls-ext-not-in-dtls.c
index 13a6bd2dc9..54cfb5ff00 100644
--- a/tests/tls-ext-not-in-dtls.c
+++ b/tests/tls-ext-not-in-dtls.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,25 +35,25 @@ int main(void)
#else
-#include <stdint.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <string.h>
-#include <assert.h>
-
-#include "utils.h"
-#include "cert-common.h"
+# include <stdint.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <string.h>
+# include <assert.h>
+
+# include "utils.h"
+# include "cert-common.h"
enum {
-TEST_DEF_HANDHAKE,
-TEST_CUSTOM_EXT
+ TEST_DEF_HANDHAKE,
+ TEST_CUSTOM_EXT
};
/* This program tests whether the Post Handshake Auth extension is
@@ -78,13 +78,14 @@ static int ext_send(gnutls_session_t session, gnutls_buffer_t extdata)
return 0;
}
-static int ext_recv(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv(gnutls_session_t session, const unsigned char *buf,
+ size_t buflen)
{
return 0;
}
-#define TLS_EXT_IMPL_DTLS 0xfeee
-#define TLS_EXT_EXPL_TLS 0xfeea
+# define TLS_EXT_IMPL_DTLS 0xfeee
+# define TLS_EXT_EXPL_TLS 0xfeea
static void client(int fd, int type)
{
@@ -98,16 +99,30 @@ static void client(int fd, int type)
assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_DATAGRAM) >= 0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_DATAGRAM) >= 0);
if (type == TEST_CUSTOM_EXT) {
- assert(gnutls_session_ext_register(session, "implicit-dtls", TLS_EXT_IMPL_DTLS, GNUTLS_EXT_TLS, ext_recv, ext_send, NULL, NULL, NULL, GNUTLS_EXT_FLAG_CLIENT_HELLO|GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO|GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO)>=0);
- assert(gnutls_session_ext_register(session, "explicit-tls", TLS_EXT_EXPL_TLS, GNUTLS_EXT_TLS, ext_recv, ext_send, NULL, NULL, NULL, GNUTLS_EXT_FLAG_CLIENT_HELLO|GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO|GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO|GNUTLS_EXT_FLAG_TLS)>=0);
+ assert(gnutls_session_ext_register
+ (session, "implicit-dtls", TLS_EXT_IMPL_DTLS,
+ GNUTLS_EXT_TLS, ext_recv, ext_send, NULL, NULL, NULL,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO |
+ GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO) >= 0);
+ assert(gnutls_session_ext_register
+ (session, "explicit-tls", TLS_EXT_EXPL_TLS,
+ GNUTLS_EXT_TLS, ext_recv, ext_send, NULL, NULL, NULL,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO |
+ GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO |
+ GNUTLS_EXT_FLAG_TLS) >= 0);
}
gnutls_handshake_set_timeout(session, get_timeout());
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0", NULL) >= 0);
+ assert(gnutls_priority_set_direct
+ (session,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0",
+ NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -130,15 +145,16 @@ static void client(int fd, int type)
gnutls_global_deinit();
}
-#define TLS_EXT_KEY_SHARE 51
-#define TLS_EXT_POST_HANDSHAKE 49
+# define TLS_EXT_KEY_SHARE 51
+# define TLS_EXT_POST_HANDSHAKE 49
struct ext_ctx_st {
int extno;
int found;
};
-static int parse_ext(void *ctx, unsigned tls_id, const unsigned char *data, unsigned data_size)
+static int parse_ext(void *ctx, unsigned tls_id, const unsigned char *data,
+ unsigned data_size)
{
struct ext_ctx_st *s = ctx;
@@ -148,7 +164,7 @@ static int parse_ext(void *ctx, unsigned tls_id, const unsigned char *data, unsi
return 0;
}
-static unsigned find_client_extension(const gnutls_datum_t *msg, int extno)
+static unsigned find_client_extension(const gnutls_datum_t * msg, int extno)
{
int ret;
struct ext_ctx_st s;
@@ -156,8 +172,10 @@ static unsigned find_client_extension(const gnutls_datum_t *msg, int extno)
memset(&s, 0, sizeof(s));
s.extno = extno;
- ret = gnutls_ext_raw_parse(&s, parse_ext, msg, GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO);
- assert(ret>=0);
+ ret =
+ gnutls_ext_raw_parse(&s, parse_ext, msg,
+ GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO);
+ assert(ret >= 0);
if (s.found)
return 1;
@@ -166,7 +184,8 @@ static unsigned find_client_extension(const gnutls_datum_t *msg, int extno)
}
static int hellos_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
int *type;
@@ -204,18 +223,22 @@ static void server(int fd, int type)
assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM) >= 0);
+ &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&session, GNUTLS_SERVER|GNUTLS_POST_HANDSHAKE_AUTH|GNUTLS_DATAGRAM) >= 0);
+ assert(gnutls_init
+ (&session,
+ GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH | GNUTLS_DATAGRAM) >=
+ 0);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
- GNUTLS_HOOK_BOTH,
- hellos_callback);
+ GNUTLS_HOOK_BOTH, hellos_callback);
gnutls_session_set_ptr(session, &type);
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3:+VERS-TLS1.2", NULL) >= 0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3:+VERS-TLS1.2",
+ NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -280,7 +303,8 @@ void start(const char *name, int type)
}
-void doit(void) {
+void doit(void)
+{
start("check default extensions", TEST_DEF_HANDHAKE);
start("check registered extensions", TEST_CUSTOM_EXT);
}
diff --git a/tests/tls-ext-register.c b/tests/tls-ext-register.c
index 8785ab8785..5fdfde23fb 100644
--- a/tests/tls-ext-register.c
+++ b/tests/tls-ext-register.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -38,18 +38,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#include <signal.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# include <signal.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <assert.h>
-#include "utils.h"
+# include "utils.h"
/* A very basic TLS client, with extension
*/
@@ -61,20 +61,20 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define TLSEXT_TYPE_SAMPLE 0xF1
+# define TLSEXT_TYPE_SAMPLE 0xF1
-static int TLSEXT_TYPE_client_sent = 0;
-static int TLSEXT_TYPE_client_received = 0;
-static int TLSEXT_TYPE_server_sent = 0;
-static int TLSEXT_TYPE_server_received = 0;
+static int TLSEXT_TYPE_client_sent = 0;
+static int TLSEXT_TYPE_client_received = 0;
+static int TLSEXT_TYPE_server_sent = 0;
+static int TLSEXT_TYPE_server_received = 0;
-static const unsigned char ext_data[] =
-{
+static const unsigned char ext_data[] = {
0xFE,
0xED
};
-static int ext_recv_client_params(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv_client_params(gnutls_session_t session,
+ const unsigned char *buf, size_t buflen)
{
if (buflen != sizeof(ext_data))
fail("ext_recv_client_params: Invalid input buffer length\n");
@@ -86,17 +86,19 @@ static int ext_recv_client_params(gnutls_session_t session, const unsigned char
gnutls_ext_set_data(session, TLSEXT_TYPE_SAMPLE, session);
- return 0; //Success
+ return 0; //Success
}
-static int ext_send_client_params(gnutls_session_t session, gnutls_buffer_t extdata)
+static int ext_send_client_params(gnutls_session_t session,
+ gnutls_buffer_t extdata)
{
TLSEXT_TYPE_client_sent = 1;
gnutls_buffer_append_data(extdata, ext_data, sizeof(ext_data));
return sizeof(ext_data);
}
-static int ext_recv_server_params(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv_server_params(gnutls_session_t session,
+ const unsigned char *buf, size_t buflen)
{
if (buflen != sizeof(ext_data))
fail("ext_recv_server_params: Invalid input buffer length\n");
@@ -106,10 +108,11 @@ static int ext_recv_server_params(gnutls_session_t session, const unsigned char
TLSEXT_TYPE_server_received = 1;
- return 0; //Success
+ return 0; //Success
}
-static int ext_send_server_params(gnutls_session_t session, gnutls_buffer_t extdata)
+static int ext_send_server_params(gnutls_session_t session,
+ gnutls_buffer_t extdata)
{
TLSEXT_TYPE_server_sent = 1;
gnutls_buffer_append_data(extdata, ext_data, sizeof(ext_data));
@@ -130,7 +133,10 @@ static void client(int sd, const char *prio)
side = "client";
/* extensions are registered globally */
- ret = gnutls_ext_register("ext_client", TLSEXT_TYPE_SAMPLE, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL);
+ ret =
+ gnutls_ext_register("ext_client", TLSEXT_TYPE_SAMPLE,
+ GNUTLS_EXT_TLS, ext_recv_client_params,
+ ext_send_client_params, NULL, NULL, NULL);
assert(ret >= 0);
gnutls_certificate_allocate_credentials(&clientx509cred);
@@ -143,8 +149,7 @@ static void client(int sd, const char *prio)
/* put the anonymous credentials to the current session
*/
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
@@ -176,7 +181,7 @@ static void client(int sd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
-end:
+ end:
close(sd);
gnutls_deinit(session);
@@ -228,7 +233,6 @@ const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
};
-
static void server(int sd, const char *prio)
{
gnutls_certificate_credentials_t serverx509cred;
@@ -252,10 +256,12 @@ static void server(int sd, const char *prio)
assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- assert(gnutls_ext_register("ext_server", TLSEXT_TYPE_SAMPLE, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL)>=0);
+ assert(gnutls_ext_register
+ ("ext_server", TLSEXT_TYPE_SAMPLE, GNUTLS_EXT_TLS,
+ ext_recv_server_params, ext_send_server_params, NULL, NULL,
+ NULL) >= 0);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
@@ -297,10 +303,10 @@ void start(const char *prio)
success("trying %s\n", prio);
signal(SIGPIPE, SIG_IGN);
- TLSEXT_TYPE_client_sent = 0;
- TLSEXT_TYPE_client_received = 0;
- TLSEXT_TYPE_server_sent = 0;
- TLSEXT_TYPE_server_received = 0;
+ TLSEXT_TYPE_client_sent = 0;
+ TLSEXT_TYPE_client_received = 0;
+ TLSEXT_TYPE_server_sent = 0;
+ TLSEXT_TYPE_server_received = 0;
err = socketpair(AF_UNIX, SOCK_STREAM, 0, sockets);
if (err == -1) {
@@ -353,10 +359,17 @@ void doit(void)
start("NORMAL");
/* check whether we can crash the library by adding many extensions */
- for (i=0;i<64;i++) {
- ret = gnutls_ext_register("ext_serverxx", TLSEXT_TYPE_SAMPLE+i+1, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL);
+ for (i = 0; i < 64; i++) {
+ ret =
+ gnutls_ext_register("ext_serverxx",
+ TLSEXT_TYPE_SAMPLE + i + 1,
+ GNUTLS_EXT_TLS, ext_recv_server_params,
+ ext_send_server_params, NULL, NULL,
+ NULL);
if (ret < 0) {
- success("failed registering extension no %d (expected)\n", i+1);
+ success
+ ("failed registering extension no %d (expected)\n",
+ i + 1);
break;
}
}
diff --git a/tests/tls-force-etm.c b/tests/tls-force-etm.c
index f193c685da..d7509b6edc 100644
--- a/tests/tls-force-etm.c
+++ b/tests/tls-force-etm.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "utils.h"
-#include "cert-common.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "utils.h"
+# include "cert-common.h"
/* This program tests whether forced EtM is negotiated as expected.
*/
@@ -63,7 +63,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio, unsigned etm, int eret)
{
@@ -84,11 +84,11 @@ static void client(int fd, const char *prio, unsigned etm, int eret)
gnutls_anon_allocate_client_credentials(&anoncred);
gnutls_certificate_allocate_credentials(&x509_cred);
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
/* Use default priorities */
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the anonymous credentials to the current session
*/
@@ -131,10 +131,13 @@ static void client(int fd, const char *prio, unsigned etm, int eret)
exit(1);
}
- if (etm != 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
+ if (etm != 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
fail("client: EtM was not negotiated with %s!\n", prio);
exit(1);
- } else if (etm == 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) != 0)) {
+ } else if (etm == 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM)
+ != 0)) {
fail("client: EtM was negotiated with %s!\n", prio);
exit(1);
}
@@ -142,14 +145,12 @@ static void client(int fd, const char *prio, unsigned etm, int eret)
do {
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -160,7 +161,7 @@ static void client(int fd, const char *prio, unsigned etm, int eret)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -172,7 +173,6 @@ static void client(int fd, const char *prio, unsigned etm, int eret)
gnutls_global_deinit();
}
-
static void server(int fd, const char *prio, unsigned etm, int eret)
{
int ret;
@@ -180,7 +180,7 @@ static void server(int fd, const char *prio, unsigned etm, int eret)
gnutls_session_t session;
gnutls_anon_server_credentials_t anoncred;
gnutls_certificate_credentials_t x509_cred;
- unsigned to_send = sizeof(buffer)/4;
+ unsigned to_send = sizeof(buffer) / 4;
/* this must be called once in the program
*/
@@ -194,12 +194,11 @@ static void server(int fd, const char *prio, unsigned etm, int eret)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_anon_allocate_server_credentials(&anoncred);
- assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
/* avoid calling all the priority functions, since the defaults
@@ -238,10 +237,13 @@ static void server(int fd, const char *prio, unsigned etm, int eret)
exit(1);
}
- if (etm != 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
+ if (etm != 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) == 0)) {
fail("server: EtM was not negotiated with %s!\n", prio);
exit(1);
- } else if (etm == 0 && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM) != 0)) {
+ } else if (etm == 0
+ && ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_ETM)
+ != 0)) {
fail("server: EtM was negotiated with %s!\n", prio);
exit(1);
}
@@ -257,10 +259,8 @@ static void server(int fd, const char *prio, unsigned etm, int eret)
do {
do {
ret =
- gnutls_record_send(session, buffer,
- sizeof(buffer));
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ gnutls_record_send(session, buffer, sizeof(buffer));
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("Error sending %d byte packet: %s\n", to_send,
@@ -302,7 +302,6 @@ static void start(struct test_st *test)
int ret, status;
pid_t child;
-
success("trying: %s\n", test->name);
ret = socketpair(AF_UNIX, SOCK_STREAM, 0, fd);
if (ret < 0) {
@@ -330,11 +329,11 @@ static void start(struct test_st *test)
}
}
-#define AES_CBC "NONE:+VERS-TLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CBC_SHA256 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC "NONE:+VERS-TLS1.0:-CIPHER-ALL:+AES-128-CBC:+SHA1:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC_SHA256 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+AES-256-CBC:+SHA256:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_GCM "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-GCM:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
-#define AES_CBC_TLS12 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
+# define AES_CBC_TLS12 "NONE:+VERS-TLS1.2:-CIPHER-ALL:+RSA:+AES-128-CBC:+MAC-ALL:+SIGN-ALL:+COMP-ALL:+ANON-ECDH:+CURVE-ALL"
static void ch_handler(int sig)
{
@@ -343,45 +342,39 @@ static void ch_handler(int sig)
static struct test_st tests[] = {
{
- .name = "aes-cbc-hmac-sha1 with force etm",
- .server_prio = AES_CBC":%FORCE_ETM",
- .client_prio = AES_CBC":%FORCE_ETM",
- .etm = 1
- },
+ .name = "aes-cbc-hmac-sha1 with force etm",
+ .server_prio = AES_CBC ":%FORCE_ETM",
+ .client_prio = AES_CBC ":%FORCE_ETM",
+ .etm = 1},
{
- .name = "aes-cbc-hmac-sha256 with force etm",
- .server_prio = AES_CBC_SHA256":%FORCE_ETM",
- .client_prio = AES_CBC_SHA256":%FORCE_ETM",
- .etm = 1
- },
+ .name = "aes-cbc-hmac-sha256 with force etm",
+ .server_prio = AES_CBC_SHA256 ":%FORCE_ETM",
+ .client_prio = AES_CBC_SHA256 ":%FORCE_ETM",
+ .etm = 1},
{
- .name = "server aes-cbc-hmac-sha1 with force etm, gcm fallback",
- .server_prio = AES_CBC_TLS12":+AES-128-GCM:%FORCE_ETM",
- .client_prio = AES_CBC_TLS12":+AES-128-GCM:%NO_ETM",
- .etm = 0
- },
+ .name = "server aes-cbc-hmac-sha1 with force etm, gcm fallback",
+ .server_prio = AES_CBC_TLS12 ":+AES-128-GCM:%FORCE_ETM",
+ .client_prio = AES_CBC_TLS12 ":+AES-128-GCM:%NO_ETM",
+ .etm = 0},
{
- .name = "aes-gcm with force etm",
- .server_prio = AES_GCM":%FORCE_ETM",
- .client_prio = AES_GCM":%FORCE_ETM",
- .etm = 0
- },
+ .name = "aes-gcm with force etm",
+ .server_prio = AES_GCM ":%FORCE_ETM",
+ .client_prio = AES_GCM ":%FORCE_ETM",
+ .etm = 0},
{
- .name = "server aes-cbc-hmac-sha1 with force etm failure",
- .server_prio = AES_CBC":%FORCE_ETM",
- .client_prio = AES_CBC":%NO_ETM",
- .etm = 0,
- .client_err = GNUTLS_E_PREMATURE_TERMINATION,
- .server_err = GNUTLS_E_NO_CIPHER_SUITES
- },
+ .name = "server aes-cbc-hmac-sha1 with force etm failure",
+ .server_prio = AES_CBC ":%FORCE_ETM",
+ .client_prio = AES_CBC ":%NO_ETM",
+ .etm = 0,
+ .client_err = GNUTLS_E_PREMATURE_TERMINATION,
+ .server_err = GNUTLS_E_NO_CIPHER_SUITES},
{
- .name = "client aes-cbc-hmac-sha1 with force etm failure",
- .server_prio = AES_CBC":%NO_ETM",
- .client_prio = AES_CBC":%FORCE_ETM",
- .etm = 0,
- .client_err = GNUTLS_E_UNWANTED_ALGORITHM,
- .server_err = -1
- }
+ .name = "client aes-cbc-hmac-sha1 with force etm failure",
+ .server_prio = AES_CBC ":%NO_ETM",
+ .client_prio = AES_CBC ":%FORCE_ETM",
+ .etm = 0,
+ .client_err = GNUTLS_E_UNWANTED_ALGORITHM,
+ .server_err = -1}
};
void doit(void)
@@ -389,7 +382,7 @@ void doit(void)
unsigned i;
signal(SIGCHLD, ch_handler);
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
start(&tests[i]);
}
}
diff --git a/tests/tls-neg-ext-key.c b/tests/tls-neg-ext-key.c
index ad3f4ac0c9..2bc5607df2 100644
--- a/tests/tls-neg-ext-key.c
+++ b/tests/tls-neg-ext-key.c
@@ -22,7 +22,7 @@
/* This tests TLS negotiation using the gnutls_privkey_import_ext2() APIs */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -64,25 +64,26 @@ const gnutls_datum_t sha256_hash_data = {
};
const gnutls_datum_t raw_data = {
- (void *) "hello",
+ (void *)"hello",
5
};
-
struct key_cb_data {
- gnutls_privkey_t rkey; /* the real thing */
+ gnutls_privkey_t rkey; /* the real thing */
};
static
-int key_cb_sign_func (gnutls_privkey_t key, void* userdata, const gnutls_datum_t * data,
- gnutls_datum_t * signature)
+int key_cb_sign_func(gnutls_privkey_t key, void *userdata,
+ const gnutls_datum_t * data, gnutls_datum_t * signature)
{
struct key_cb_data *p = userdata;
-
- return gnutls_privkey_sign_hash(p->rkey, 0, GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA, data, signature);
+
+ return gnutls_privkey_sign_hash(p->rkey, 0,
+ GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA, data,
+ signature);
}
-static void key_cb_deinit_func(gnutls_privkey_t key, void* userdata)
+static void key_cb_deinit_func(gnutls_privkey_t key, void *userdata)
{
struct key_cb_data *p = userdata;
gnutls_privkey_deinit(p->rkey);
@@ -92,7 +93,9 @@ static void key_cb_deinit_func(gnutls_privkey_t key, void* userdata)
#define testfail(fmt, ...) \
fail("%s: "fmt, name, ##__VA_ARGS__)
-static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t *txtkey, gnutls_pk_algorithm_t pk, int exp_ret)
+static gnutls_privkey_t load_virt_privkey(const char *name,
+ const gnutls_datum_t * txtkey,
+ gnutls_pk_algorithm_t pk, int exp_ret)
{
gnutls_privkey_t privkey;
struct key_cb_data *userdata;
@@ -112,11 +115,15 @@ static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t
testfail("gnutls_privkey_init\n");
ret =
- gnutls_privkey_import_x509_raw(userdata->rkey, txtkey, GNUTLS_X509_FMT_PEM, NULL, 0);
+ gnutls_privkey_import_x509_raw(userdata->rkey, txtkey,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0)
testfail("gnutls_privkey_import\n");
- ret = gnutls_privkey_import_ext2(privkey, pk, userdata, key_cb_sign_func, NULL, key_cb_deinit_func, GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
+ ret =
+ gnutls_privkey_import_ext2(privkey, pk, userdata, key_cb_sign_func,
+ NULL, key_cb_deinit_func,
+ GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
if (ret < 0) {
if (ret == exp_ret) {
gnutls_privkey_deinit(userdata->rkey);
@@ -124,7 +131,8 @@ static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t
free(userdata);
return NULL;
}
- testfail("gnutls_privkey_import_ext2: %s\n", gnutls_strerror(ret));
+ testfail("gnutls_privkey_import_ext2: %s\n",
+ gnutls_strerror(ret));
}
return privkey;
@@ -132,12 +140,11 @@ static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t
static
void try_with_key(const char *name, const char *client_prio,
- gnutls_kx_algorithm_t client_kx,
- gnutls_sign_algorithm_t server_sign_algo,
- gnutls_sign_algorithm_t client_sign_algo,
- const gnutls_datum_t *serv_cert,
- gnutls_privkey_t key,
- int exp_serv_err)
+ gnutls_kx_algorithm_t client_kx,
+ gnutls_sign_algorithm_t server_sign_algo,
+ gnutls_sign_algorithm_t client_sign_algo,
+ const gnutls_datum_t * serv_cert,
+ gnutls_privkey_t key, int exp_serv_err)
{
int ret;
gnutls_pcert_st pcert_list[4];
@@ -161,26 +168,27 @@ void try_with_key(const char *name, const char *client_prio,
/* Init server */
gnutls_certificate_allocate_credentials(&s_xcred);
- pcert_list_size = sizeof(pcert_list)/sizeof(pcert_list[0]);
+ pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]);
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- serv_cert, GNUTLS_X509_FMT_PEM, 0);
+ serv_cert, GNUTLS_X509_FMT_PEM,
+ 0);
if (ret < 0) {
- testfail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ testfail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(s_xcred, NULL, 0, pcert_list,
- pcert_list_size, key);
+ pcert_list_size, key);
if (ret < 0) {
testfail("Could not set key/cert: %s\n", gnutls_strerror(ret));
}
assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- s_xcred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, s_xcred);
assert(gnutls_priority_set_direct(server,
- "NORMAL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0:+ANON-ECDH:+ANON-DH:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519",
- NULL)>=0);
+ "NORMAL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+VERS-SSL3.0:+ANON-ECDH:+ANON-DH:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519",
+ NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -192,7 +200,9 @@ void try_with_key(const char *name, const char *client_prio,
exit(1);
#if 0
- ret = gnutls_certificate_set_x509_trust_mem(c_xcred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(c_xcred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
#endif
@@ -200,8 +210,7 @@ void try_with_key(const char *name, const char *client_prio,
if (ret < 0)
exit(1);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- c_xcred);
+ ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, c_xcred);
if (ret < 0)
exit(1);
@@ -223,8 +232,10 @@ void try_with_key(const char *name, const char *client_prio,
}
if (gnutls_kx_get(client) != client_kx) {
- testfail("%s: got unexpected key exchange algorithm: %s (expected %s)\n", name, gnutls_kx_get_name(gnutls_kx_get(client)),
- gnutls_kx_get_name(client_kx));
+ testfail
+ ("%s: got unexpected key exchange algorithm: %s (expected %s)\n",
+ name, gnutls_kx_get_name(gnutls_kx_get(client)),
+ gnutls_kx_get_name(client_kx));
exit(1);
}
@@ -233,25 +244,33 @@ void try_with_key(const char *name, const char *client_prio,
if (version >= GNUTLS_TLS1_2) {
ret = gnutls_sign_algorithm_get(server);
if (ret != (int)server_sign_algo && server_sign_algo != 0) {
- testfail("%s: got unexpected server signature algorithm: %d/%s\n", name, ret, gnutls_sign_get_name(ret));
+ testfail
+ ("%s: got unexpected server signature algorithm: %d/%s\n",
+ name, ret, gnutls_sign_get_name(ret));
exit(1);
}
ret = gnutls_sign_algorithm_get_client(server);
if (ret != (int)client_sign_algo && client_sign_algo != 0) {
- testfail("%s: got unexpected client signature algorithm: %d/%s\n", name, ret, gnutls_sign_get_name(ret));
+ testfail
+ ("%s: got unexpected client signature algorithm: %d/%s\n",
+ name, ret, gnutls_sign_get_name(ret));
exit(1);
}
ret = gnutls_sign_algorithm_get(client);
if (ret != (int)server_sign_algo && server_sign_algo != 0) {
- testfail("%s: cl: got unexpected server signature algorithm: %d/%s\n", name, ret, gnutls_sign_get_name(ret));
+ testfail
+ ("%s: cl: got unexpected server signature algorithm: %d/%s\n",
+ name, ret, gnutls_sign_get_name(ret));
exit(1);
}
ret = gnutls_sign_algorithm_get_client(client);
if (ret != (int)client_sign_algo && client_sign_algo != 0) {
- testfail("%s: cl: got unexpected client signature algorithm: %d/%s\n", name, ret, gnutls_sign_get_name(ret));
+ testfail
+ ("%s: cl: got unexpected client signature algorithm: %d/%s\n",
+ name, ret, gnutls_sign_get_name(ret));
exit(1);
}
}
@@ -281,64 +300,62 @@ typedef struct test_st {
static const test_st tests[] = {
{.name = "TLS1.2 ecc key",
.pk = GNUTLS_PK_ECDSA,
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA",
+ .prio =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA",
.cert = &server_ca3_localhost_ecc_cert,
.key = &server_ca3_ecc_key,
- .exp_kx = GNUTLS_KX_ECDHE_ECDSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_ECDSA},
{.name = "TLS1.3 ecc key",
.pk = GNUTLS_PK_ECDSA,
.prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
.cert = &server_ca3_localhost_ecc_cert,
.key = &server_ca3_ecc_key,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "rsa-sign key",
.pk = GNUTLS_PK_RSA,
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.1:+ECDHE-RSA:+ECDHE-ECDSA",
+ .prio =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.1:+ECDHE-RSA:+ECDHE-ECDSA",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "rsa-sign key with rsa-pss sigs prioritized",
.pk = GNUTLS_PK_RSA,
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.1:+ECDHE-RSA:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256:+SIGN-RSA-PSS-RSAE-SHA384:+SIGN-RSA-PSS-RSAE-SHA512:+SIGN-RSA-SHA256:+SIGN-RSA-SHA384:+SIGN-RSA-SHA512",
+ .prio =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.1:+ECDHE-RSA:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256:+SIGN-RSA-PSS-RSAE-SHA384:+SIGN-RSA-PSS-RSAE-SHA512:+SIGN-RSA-SHA256:+SIGN-RSA-SHA384:+SIGN-RSA-SHA512",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "TLS 1.2 rsa-pss-sign key",
.pk = GNUTLS_PK_RSA_PSS,
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.1:+ECDHE-RSA:+ECDHE-ECDSA",
+ .prio =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.1:+ECDHE-RSA:+ECDHE-ECDSA",
.cert = &server_ca3_rsa_pss2_cert,
.key = &server_ca3_rsa_pss2_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .exp_key_err = GNUTLS_E_INVALID_REQUEST
- },
+ .exp_key_err = GNUTLS_E_INVALID_REQUEST},
{.name = "TLS 1.3 rsa-pss-sign key",
.pk = GNUTLS_PK_RSA_PSS,
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+ECDHE-RSA:+ECDHE-ECDSA",
+ .prio =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+ECDHE-RSA:+ECDHE-ECDSA",
.cert = &server_ca3_rsa_pss2_cert,
.key = &server_ca3_rsa_pss2_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .exp_key_err = GNUTLS_E_INVALID_REQUEST
- },
- {.name = "rsa-pss cert, rsa-sign key, no rsa-pss-rsae sigs", /* we expect the server to refuse negotiating */
+ .exp_key_err = GNUTLS_E_INVALID_REQUEST},
+ {.name = "rsa-pss cert, rsa-sign key, no rsa-pss-rsae sigs", /* we expect the server to refuse negotiating */
.pk = GNUTLS_PK_RSA,
- .prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-SHA256:+SIGN-RSA-SHA384:+SIGN-RSA-SHA512",
+ .prio =
+ "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-SHA256:+SIGN-RSA-SHA384:+SIGN-RSA-SHA512",
.cert = &server_ca3_rsa_pss_cert,
.key = &server_ca3_rsa_pss_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES
- },
- {.name = "ed25519 cert, ed25519 key", /* we expect the server to refuse negotiating */
+ .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES},
+ {.name = "ed25519 cert, ed25519 key", /* we expect the server to refuse negotiating */
.pk = GNUTLS_PK_EDDSA_ED25519,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA",
.cert = &server_ca3_eddsa_cert,
.key = &server_ca3_eddsa_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .exp_key_err = GNUTLS_E_INVALID_REQUEST
- }
+ .exp_key_err = GNUTLS_E_INVALID_REQUEST}
};
void doit(void)
@@ -352,19 +369,19 @@ void doit(void)
if (debug)
gnutls_global_set_log_level(6);
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
success("checking: %s\n", tests[i].name);
- privkey = load_virt_privkey(tests[i].name, tests[i].key, tests[i].pk,
- tests[i].exp_key_err);
+ privkey =
+ load_virt_privkey(tests[i].name, tests[i].key, tests[i].pk,
+ tests[i].exp_key_err);
if (privkey == NULL && tests[i].exp_key_err < 0)
continue;
assert(privkey != 0);
try_with_key(tests[i].name, tests[i].prio,
tests[i].exp_kx, 0, 0,
- tests[i].cert, privkey,
- tests[i].exp_serv_err);
+ tests[i].cert, privkey, tests[i].exp_serv_err);
}
gnutls_global_deinit();
diff --git a/tests/tls-neg-ext4-key.c b/tests/tls-neg-ext4-key.c
index 3d9db855ba..04218777ea 100644
--- a/tests/tls-neg-ext4-key.c
+++ b/tests/tls-neg-ext4-key.c
@@ -22,7 +22,7 @@
/* This tests TLS negotiation using the gnutls_privkey_import_ext2() APIs */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -49,19 +49,19 @@ static void tls_log_func(int level, const char *str)
}
const gnutls_datum_t raw_data = {
- (void *) "hello",
+ (void *)"hello",
5
};
-
struct key_cb_data {
- gnutls_privkey_t rkey; /* the real thing */
+ gnutls_privkey_t rkey; /* the real thing */
unsigned pk;
unsigned sig;
unsigned bits;
};
-static int key_cb_info_func(gnutls_privkey_t key, unsigned int flags, void *userdata)
+static int key_cb_info_func(gnutls_privkey_t key, unsigned int flags,
+ void *userdata)
{
struct key_cb_data *p = userdata;
@@ -83,44 +83,52 @@ static int key_cb_info_func(gnutls_privkey_t key, unsigned int flags, void *user
static
int key_cb_sign_data_func(gnutls_privkey_t key, gnutls_sign_algorithm_t sig,
- void* userdata, unsigned int flags, const gnutls_datum_t *data,
- gnutls_datum_t *signature)
+ void *userdata, unsigned int flags,
+ const gnutls_datum_t * data,
+ gnutls_datum_t * signature)
{
struct key_cb_data *p = userdata;
if (debug)
- fprintf(stderr, "signing data with: %s\n", gnutls_sign_get_name(sig));
+ fprintf(stderr, "signing data with: %s\n",
+ gnutls_sign_get_name(sig));
return gnutls_privkey_sign_data2(p->rkey, sig, 0, data, signature);
}
static
int key_cb_sign_hash_func(gnutls_privkey_t key, gnutls_sign_algorithm_t sig,
- void* userdata, unsigned int flags, const gnutls_datum_t *data,
- gnutls_datum_t *signature)
+ void *userdata, unsigned int flags,
+ const gnutls_datum_t * data,
+ gnutls_datum_t * signature)
{
struct key_cb_data *p = userdata;
if (sig == GNUTLS_SIGN_RSA_RAW) {
if (debug)
fprintf(stderr, "signing digestinfo with: raw RSA\n");
- return gnutls_privkey_sign_hash(p->rkey, 0, GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA, data, signature);
+ return gnutls_privkey_sign_hash(p->rkey, 0,
+ GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
+ data, signature);
} else {
if (debug)
- fprintf(stderr, "signing hash with: %s\n", gnutls_sign_get_name(sig));
- return gnutls_privkey_sign_hash2(p->rkey, sig, 0, data, signature);
+ fprintf(stderr, "signing hash with: %s\n",
+ gnutls_sign_get_name(sig));
+ return gnutls_privkey_sign_hash2(p->rkey, sig, 0, data,
+ signature);
}
}
static
-int key_cb_decrypt_func(gnutls_privkey_t key, void *userdata, const gnutls_datum_t *ciphertext,
- gnutls_datum_t *plaintext)
+int key_cb_decrypt_func(gnutls_privkey_t key, void *userdata,
+ const gnutls_datum_t * ciphertext,
+ gnutls_datum_t * plaintext)
{
struct key_cb_data *p = userdata;
return gnutls_privkey_decrypt_data(p->rkey, 0, ciphertext, plaintext);
}
-static void key_cb_deinit_func(gnutls_privkey_t key, void* userdata)
+static void key_cb_deinit_func(gnutls_privkey_t key, void *userdata)
{
struct key_cb_data *p = userdata;
gnutls_privkey_deinit(p->rkey);
@@ -130,8 +138,10 @@ static void key_cb_deinit_func(gnutls_privkey_t key, void* userdata)
#define testfail(fmt, ...) \
fail("%s: "fmt, name, ##__VA_ARGS__)
-static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t *txtkey,
- gnutls_pk_algorithm_t pk, gnutls_sign_algorithm_t sig,
+static gnutls_privkey_t load_virt_privkey(const char *name,
+ const gnutls_datum_t * txtkey,
+ gnutls_pk_algorithm_t pk,
+ gnutls_sign_algorithm_t sig,
int exp_ret)
{
gnutls_privkey_t privkey;
@@ -152,7 +162,8 @@ static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t
testfail("gnutls_privkey_init\n");
ret =
- gnutls_privkey_import_x509_raw(userdata->rkey, txtkey, GNUTLS_X509_FMT_PEM, NULL, 0);
+ gnutls_privkey_import_x509_raw(userdata->rkey, txtkey,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0)
testfail("gnutls_privkey_import\n");
@@ -161,10 +172,12 @@ static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t
userdata->pk = pk;
userdata->sig = sig;
- ret = gnutls_privkey_import_ext4(privkey, userdata, key_cb_sign_data_func,
- key_cb_sign_hash_func, key_cb_decrypt_func,
- key_cb_deinit_func, key_cb_info_func,
- GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
+ ret =
+ gnutls_privkey_import_ext4(privkey, userdata, key_cb_sign_data_func,
+ key_cb_sign_hash_func,
+ key_cb_decrypt_func, key_cb_deinit_func,
+ key_cb_info_func,
+ GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE);
if (ret < 0) {
if (ret == exp_ret) {
gnutls_privkey_deinit(userdata->rkey);
@@ -172,7 +185,8 @@ static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t
free(userdata);
return NULL;
}
- testfail("gnutls_privkey_import_ext2: %s\n", gnutls_strerror(ret));
+ testfail("gnutls_privkey_import_ext2: %s\n",
+ gnutls_strerror(ret));
}
return privkey;
@@ -180,12 +194,11 @@ static gnutls_privkey_t load_virt_privkey(const char *name, const gnutls_datum_t
static
void try_with_key(const char *name, const char *client_prio,
- gnutls_kx_algorithm_t client_kx,
- gnutls_sign_algorithm_t server_sign_algo,
- gnutls_sign_algorithm_t client_sign_algo,
- const gnutls_datum_t *serv_cert,
- gnutls_privkey_t key,
- int exp_serv_err)
+ gnutls_kx_algorithm_t client_kx,
+ gnutls_sign_algorithm_t server_sign_algo,
+ gnutls_sign_algorithm_t client_sign_algo,
+ const gnutls_datum_t * serv_cert,
+ gnutls_privkey_t key, int exp_serv_err)
{
int ret;
gnutls_pcert_st pcert_list[4];
@@ -209,24 +222,25 @@ void try_with_key(const char *name, const char *client_prio,
/* Init server */
gnutls_certificate_allocate_credentials(&s_xcred);
- pcert_list_size = sizeof(pcert_list)/sizeof(pcert_list[0]);
+ pcert_list_size = sizeof(pcert_list) / sizeof(pcert_list[0]);
ret = gnutls_pcert_list_import_x509_raw(pcert_list, &pcert_list_size,
- serv_cert, GNUTLS_X509_FMT_PEM, 0);
+ serv_cert, GNUTLS_X509_FMT_PEM,
+ 0);
if (ret < 0) {
- testfail("error in gnutls_pcert_list_import_x509_raw: %s\n", gnutls_strerror(ret));
+ testfail("error in gnutls_pcert_list_import_x509_raw: %s\n",
+ gnutls_strerror(ret));
}
ret = gnutls_certificate_set_key(s_xcred, NULL, 0, pcert_list,
- pcert_list_size, key);
+ pcert_list_size, key);
if (ret < 0) {
testfail("Could not set key/cert: %s\n", gnutls_strerror(ret));
}
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- s_xcred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, s_xcred);
- assert(gnutls_priority_set_direct(server, "NORMAL", NULL)>=0);
+ assert(gnutls_priority_set_direct(server, "NORMAL", NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -238,7 +252,9 @@ void try_with_key(const char *name, const char *client_prio,
exit(1);
#if 0
- ret = gnutls_certificate_set_x509_trust_mem(c_xcred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(c_xcred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
#endif
@@ -246,8 +262,7 @@ void try_with_key(const char *name, const char *client_prio,
if (ret < 0)
exit(1);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- c_xcred);
+ ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, c_xcred);
if (ret < 0)
exit(1);
@@ -269,8 +284,10 @@ void try_with_key(const char *name, const char *client_prio,
}
if (gnutls_kx_get(client) != client_kx) {
- testfail("got unexpected key exchange algorithm: %s (expected %s)\n", gnutls_kx_get_name(gnutls_kx_get(client)),
- gnutls_kx_get_name(client_kx));
+ testfail
+ ("got unexpected key exchange algorithm: %s (expected %s)\n",
+ gnutls_kx_get_name(gnutls_kx_get(client)),
+ gnutls_kx_get_name(client_kx));
exit(1);
}
@@ -279,25 +296,33 @@ void try_with_key(const char *name, const char *client_prio,
if (version >= GNUTLS_TLS1_2) {
ret = gnutls_sign_algorithm_get(server);
if (ret != (int)server_sign_algo && server_sign_algo != 0) {
- testfail("got unexpected server signature algorithm: %d/%s\n", ret, gnutls_sign_get_name(ret));
+ testfail
+ ("got unexpected server signature algorithm: %d/%s\n",
+ ret, gnutls_sign_get_name(ret));
exit(1);
}
ret = gnutls_sign_algorithm_get_client(server);
if (ret != (int)client_sign_algo && client_sign_algo != 0) {
- testfail("got unexpected client signature algorithm: %d/%s\n", ret, gnutls_sign_get_name(ret));
+ testfail
+ ("got unexpected client signature algorithm: %d/%s\n",
+ ret, gnutls_sign_get_name(ret));
exit(1);
}
ret = gnutls_sign_algorithm_get(client);
if (ret != (int)server_sign_algo && server_sign_algo != 0) {
- testfail("cl: got unexpected server signature algorithm: %d/%s\n", ret, gnutls_sign_get_name(ret));
+ testfail
+ ("cl: got unexpected server signature algorithm: %d/%s\n",
+ ret, gnutls_sign_get_name(ret));
exit(1);
}
ret = gnutls_sign_algorithm_get_client(client);
if (ret != (int)client_sign_algo && client_sign_algo != 0) {
- testfail("cl: got unexpected client signature algorithm: %d/%s\n", ret, gnutls_sign_get_name(ret));
+ testfail
+ ("cl: got unexpected client signature algorithm: %d/%s\n",
+ ret, gnutls_sign_get_name(ret));
exit(1);
}
}
@@ -328,67 +353,63 @@ typedef struct test_st {
static const test_st tests[] = {
{.name = "tls1.2 ecc key",
.pk = GNUTLS_PK_ECDSA,
- .prio = "NORMAL:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
+ .prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
.cert = &server_ca3_localhost_ecc_cert,
.key = &server_ca3_ecc_key,
.sig = GNUTLS_SIGN_ECDSA_SHA256,
- .exp_kx = GNUTLS_KX_ECDHE_ECDSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_ECDSA},
{.name = "tls1.0 ecc key",
.pk = GNUTLS_PK_ECDSA,
- .prio = "NORMAL:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
+ .prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
.cert = &server_ca3_localhost_ecc_cert,
.key = &server_ca3_ecc_key,
.sig = GNUTLS_SIGN_ECDSA_SHA256,
- .exp_kx = GNUTLS_KX_ECDHE_ECDSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_ECDSA},
{.name = "tls1.1 ecc key",
.pk = GNUTLS_PK_ECDSA,
- .prio = "NORMAL:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
+ .prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
.cert = &server_ca3_localhost_ecc_cert,
.key = &server_ca3_ecc_key,
.sig = GNUTLS_SIGN_ECDSA_SHA256,
- .exp_kx = GNUTLS_KX_ECDHE_ECDSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_ECDSA},
{.name = "tls1.2 rsa-sign key",
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
.sig = GNUTLS_SIGN_RSA_SHA256,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.0 rsa-sign key",
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
.sig = GNUTLS_SIGN_RSA_SHA256,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.0 rsa-decrypt key",
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:-KX-ALL:+RSA:-VERS-ALL:+VERS-TLS1.0",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
- .exp_kx = GNUTLS_KX_RSA
- },
+ .exp_kx = GNUTLS_KX_RSA},
{.name = "tls1.1 rsa-sign key",
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
.sig = GNUTLS_SIGN_RSA_SHA256,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.2 rsa-sign key with rsa-pss sigs prioritized",
.pk = GNUTLS_PK_RSA,
- .prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-SHA256:+SIGN-RSA-SHA384:+SIGN-RSA-SHA512:-VERS-ALL:+VERS-TLS1.2",
+ .prio =
+ "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-SHA256:+SIGN-RSA-SHA384:+SIGN-RSA-SHA512:-VERS-ALL:+VERS-TLS1.2",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
.sig = GNUTLS_SIGN_RSA_SHA256,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.2 rsa-pss-sign key",
.pk = GNUTLS_PK_RSA_PSS,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
@@ -396,15 +417,14 @@ static const test_st tests[] = {
.key = &server_ca3_rsa_pss2_key,
.sig = GNUTLS_SIGN_RSA_PSS_SHA256,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- },
- {.name = "tls1.2 rsa-pss cert, rsa-sign key", /* we expect the server to refuse negotiating */
+ },
+ {.name = "tls1.2 rsa-pss cert, rsa-sign key", /* we expect the server to refuse negotiating */
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
.cert = &server_ca3_rsa_pss_cert,
.key = &server_ca3_rsa_pss_key,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES
- },
+ .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES},
{.name = "tls1.2 ed25519 cert, ed25519 key",
.pk = GNUTLS_PK_EDDSA_ED25519,
.prio = "NORMAL:+ECDHE-RSA:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
@@ -412,30 +432,27 @@ static const test_st tests[] = {
.key = &server_ca3_eddsa_key,
.sig = GNUTLS_SIGN_EDDSA_ED25519,
.exp_kx = GNUTLS_KX_ECDHE_ECDSA,
- },
+ },
{.name = "tls1.2 rsa-decrypt key",
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:-KX-ALL:+RSA:-VERS-ALL:+VERS-TLS1.2",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
- .exp_kx = GNUTLS_KX_RSA
- },
+ .exp_kx = GNUTLS_KX_RSA},
{.name = "tls1.3 ecc key",
.pk = GNUTLS_PK_ECDSA,
.prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
.cert = &server_ca3_localhost_ecc_cert,
.key = &server_ca3_ecc_key,
.sig = GNUTLS_SIGN_ECDSA_SECP256R1_SHA256,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.3 rsa-sign key",
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
.cert = &server_ca3_localhost_cert,
.key = &server_ca3_key,
.sig = GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
- .exp_kx = GNUTLS_KX_ECDHE_RSA
- },
+ .exp_kx = GNUTLS_KX_ECDHE_RSA},
{.name = "tls1.3 rsa-pss-sign key",
.pk = GNUTLS_PK_RSA_PSS,
.prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
@@ -443,25 +460,23 @@ static const test_st tests[] = {
.key = &server_ca3_rsa_pss2_key,
.sig = GNUTLS_SIGN_RSA_PSS_SHA256,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- },
- {.name = "tls1.3 rsa-pss cert, rsa-sign key", /* we expect the server to attempt to downgrade to TLS 1.2, but it is not possible because it is not enabled */
+ },
+ {.name = "tls1.3 rsa-pss cert, rsa-sign key", /* we expect the server to attempt to downgrade to TLS 1.2, but it is not possible because it is not enabled */
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
.cert = &server_ca3_rsa_pss_cert,
.key = &server_ca3_rsa_pss_key,
.sig = GNUTLS_SIGN_RSA_SHA256,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES
- },
- {.name = "tls1.3 rsa-pss cert, rsa-sign key, downgrade to tls1.2", /* we expect the server to downgrade to TLS 1.2 and refuse negotiating */
+ .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES},
+ {.name = "tls1.3 rsa-pss cert, rsa-sign key, downgrade to tls1.2", /* we expect the server to downgrade to TLS 1.2 and refuse negotiating */
.pk = GNUTLS_PK_RSA,
.prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2",
.cert = &server_ca3_rsa_pss_cert,
.key = &server_ca3_rsa_pss_key,
.sig = GNUTLS_SIGN_RSA_SHA256,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES
- },
+ .exp_serv_err = GNUTLS_E_NO_CIPHER_SUITES},
{.name = "tls1.3 ed25519 cert, ed25519 key",
.pk = GNUTLS_PK_EDDSA_ED25519,
.prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
@@ -469,7 +484,7 @@ static const test_st tests[] = {
.key = &server_ca3_eddsa_key,
.sig = GNUTLS_SIGN_EDDSA_ED25519,
.exp_kx = GNUTLS_KX_ECDHE_RSA,
- }
+ }
};
void doit(void)
@@ -483,20 +498,19 @@ void doit(void)
if (debug)
gnutls_global_set_log_level(6);
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
success("checking: %s\n", tests[i].name);
- privkey = load_virt_privkey(tests[i].name, tests[i].key, tests[i].pk,
- tests[i].sig,
- tests[i].exp_key_err);
+ privkey =
+ load_virt_privkey(tests[i].name, tests[i].key, tests[i].pk,
+ tests[i].sig, tests[i].exp_key_err);
if (privkey == NULL && tests[i].exp_key_err < 0)
continue;
assert(privkey != 0);
try_with_key(tests[i].name, tests[i].prio,
tests[i].exp_kx, 0, 0,
- tests[i].cert, privkey,
- tests[i].exp_serv_err);
+ tests[i].cert, privkey, tests[i].exp_serv_err);
}
gnutls_global_deinit();
diff --git a/tests/tls-pthread.c b/tests/tls-pthread.c
index 0f1d415062..5c7ac08490 100644
--- a/tests/tls-pthread.c
+++ b/tests/tls-pthread.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -68,10 +68,10 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define MSG "hello1111"
-#define MSG2 "xxxxxxxxxxxx"
+# define MSG "hello1111"
+# define MSG2 "xxxxxxxxxxxx"
-#define NO_MSGS 128
+# define NO_MSGS 128
static void *recv_thread(void *arg)
{
@@ -85,15 +85,16 @@ static void *recv_thread(void *arg)
gnutls_protocol_get_name
(gnutls_protocol_get_version(session)));
- for (i=0;i<NO_MSGS;i++) {
+ for (i = 0; i < NO_MSGS; i++) {
/* the peer should reflect our messages */
do {
ret = gnutls_record_recv(session, buf, sizeof(buf));
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0)
fail("client: recv failed: %s\n", gnutls_strerror(ret));
- if (ret != sizeof(MSG)-1 || memcmp(buf, MSG, sizeof(MSG)-1) != 0) {
- fail("client: recv failed; not the expected values (got: %d, exp: %d)\n", ret, (int)sizeof(MSG)-1);
+ if (ret != sizeof(MSG) - 1
+ || memcmp(buf, MSG, sizeof(MSG) - 1) != 0) {
+ fail("client: recv failed; not the expected values (got: %d, exp: %d)\n", ret, (int)sizeof(MSG) - 1);
}
if (debug)
@@ -103,17 +104,17 @@ static void *recv_thread(void *arg)
/* final MSG is MSG2 */
do {
ret = gnutls_record_recv(session, buf, sizeof(buf));
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0)
fail("client: recv2 failed: %s\n", gnutls_strerror(ret));
- if (ret != sizeof(MSG2)-1 || memcmp(buf, MSG2, sizeof(MSG2)-1) != 0) {
+ if (ret != sizeof(MSG2) - 1 || memcmp(buf, MSG2, sizeof(MSG2) - 1) != 0) {
fail("client: recv2 failed; not the expected values\n");
}
do {
ret = gnutls_record_recv(session, buf, sizeof(buf));
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret != 0)
fail("client: no EOF: %d\n", ret);
@@ -140,19 +141,19 @@ void do_thread_stuff(gnutls_session_t session)
fail("error in pthread_create\n");
}
- for (i=0;i<NO_MSGS;i++) {
+ for (i = 0; i < NO_MSGS; i++) {
do {
- ret = gnutls_record_send(session, MSG, sizeof(MSG)-1);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
- if (ret != sizeof(MSG)-1) {
+ ret = gnutls_record_send(session, MSG, sizeof(MSG) - 1);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ if (ret != sizeof(MSG) - 1) {
fail("client: send failed: %s\n", gnutls_strerror(ret));
}
}
do {
- ret = gnutls_record_send(session, MSG2, sizeof(MSG2)-1);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
- if (ret != sizeof(MSG2)-1) {
+ ret = gnutls_record_send(session, MSG2, sizeof(MSG2) - 1);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ if (ret != sizeof(MSG2) - 1) {
fail("client: send2 failed: %s\n", gnutls_strerror(ret));
}
@@ -161,11 +162,11 @@ void do_thread_stuff(gnutls_session_t session)
do {
ret = gnutls_bye(session, GNUTLS_SHUT_WR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
/* the receiving thread will receive the EOF and close */
- assert(pthread_join(id, &rval)==0);
+ assert(pthread_join(id, &rval) == 0);
assert(rval == 0);
}
@@ -179,7 +180,7 @@ static void do_reflect_stuff(gnutls_session_t session)
do {
do {
ret = gnutls_record_recv(session, buf, sizeof(buf));
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("server: recv failed: %s\n", gnutls_strerror(ret));
}
@@ -195,17 +196,17 @@ static void do_reflect_stuff(gnutls_session_t session)
do {
ret = gnutls_record_send(session, buf, buf_size);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("server: send failed: %s\n", gnutls_strerror(ret));
}
if (debug)
success("reflected %d\n", ret);
- } while(1);
+ } while (1);
do {
gnutls_bye(session, GNUTLS_SHUT_WR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
}
static void client(int fd, const char *prio, unsigned flags)
@@ -223,7 +224,7 @@ static void client(int fd, const char *prio, unsigned flags)
gnutls_global_set_log_level(4711);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
if (flags & FLAG_FALSE_START)
init_flags |= GNUTLS_ENABLE_FALSE_START;
@@ -231,9 +232,10 @@ static void client(int fd, const char *prio, unsigned flags)
assert(gnutls_init(&session, init_flags) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- assert(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred)>=0);
+ assert(gnutls_credentials_set
+ (session, GNUTLS_CRD_CERTIFICATE, x509_cred) >= 0);
gnutls_transport_set_int(session, fd);
@@ -276,26 +278,26 @@ static void server(int fd, const char *prio, unsigned flags)
*/
global_init();
-#if 0
+# if 0
if (debug) {
side = "server";
gnutls_global_set_log_function(tls_log_func);
gnutls_global_set_log_level(4711);
}
-#endif
+# endif
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
if (flags & FLAG_EARLY_START)
init_flags |= GNUTLS_ENABLE_EARLY_START;
- assert(gnutls_init(&session, init_flags)>=0);
+ assert(gnutls_init(&session, init_flags) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -323,7 +325,6 @@ static void server(int fd, const char *prio, unsigned flags)
else
do_thread_stuff(session);
-
close(fd);
gnutls_deinit(session);
@@ -377,11 +378,18 @@ void doit(void)
signal(SIGPIPE, SIG_IGN);
run("default, threaded client", "NORMAL", FLAG_CLI_DO_THREADS);
run("default, threaded server", "NORMAL", 0);
- run("tls1.2, threaded client", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2", FLAG_CLI_DO_THREADS);
+ run("tls1.2, threaded client", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2",
+ FLAG_CLI_DO_THREADS);
run("tls1.2, threaded server", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2", 0);
- run("tls1.2 false start, threaded client", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2", FLAG_CLI_DO_THREADS|FLAG_FALSE_START);
- run("tls1.2 false start, threaded server", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2", FLAG_FALSE_START);
- run("tls1.3 early start, threaded client", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", FLAG_CLI_DO_THREADS|FLAG_EARLY_START);
- run("tls1.3 early start, threaded server", "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", FLAG_EARLY_START);
+ run("tls1.2 false start, threaded client",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2",
+ FLAG_CLI_DO_THREADS | FLAG_FALSE_START);
+ run("tls1.2 false start, threaded server",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2", FLAG_FALSE_START);
+ run("tls1.3 early start, threaded client",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3",
+ FLAG_CLI_DO_THREADS | FLAG_EARLY_START);
+ run("tls1.3 early start, threaded server",
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", FLAG_EARLY_START);
}
#endif /* _WIN32 */
diff --git a/tests/tls-record-size-limit-asym.c b/tests/tls-record-size-limit-asym.c
index b9ccb14e04..b51e30150f 100644
--- a/tests/tls-record-size-limit-asym.c
+++ b/tests/tls-record-size-limit-asym.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <assert.h>
@@ -109,11 +109,11 @@ static void start(const struct test_st *test)
server_pull_timeout_func);
gnutls_transport_set_ptr(server, server);
-
/* Init client */
assert(gnutls_certificate_allocate_credentials(&clientx509cred) >= 0);
- assert(gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_trust_mem
+ (clientx509cred, &ca2_cert, GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
@@ -189,88 +189,88 @@ static void start(const struct test_st *test)
static const struct test_st tests[] = {
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- .server_max_size = 512,
- .client_max_size = 16384,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ .server_max_size = 512,
+ .client_max_size = 16384,
+ .server_exp = {
.error = 0,
.size = 16384,
- },
- .client_exp = {
+ },
+ .client_exp = {
.error = 0,
.size = 512,
- }
- },
+ }
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- .server_max_size = 16384,
- .client_max_size = 512,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ .server_max_size = 16384,
+ .client_max_size = 512,
+ .server_exp = {
.error = 0,
.size = 512,
- },
- .client_exp = {
+ },
+ .client_exp = {
.error = 0,
.size = 16384,
- }
- },
+ }
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- .server_max_size = 512,
- .client_max_size = 16384,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ .server_max_size = 512,
+ .client_max_size = 16384,
+ .server_exp = {
.error = 0,
.size = 16384,
- },
- .client_exp = {
+ },
+ .client_exp = {
.error = 0,
.size = 512,
- }
- },
+ }
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- .server_max_size = 16384,
- .client_max_size = 512,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ .server_max_size = 16384,
+ .client_max_size = 512,
+ .server_exp = {
.error = 0,
.size = 512,
- },
- .client_exp = {
+ },
+ .client_exp = {
.error = 0,
.size = 16384,
- }
- },
+ }
+ },
{
- .prio = "NORMAL",
- .server_max_size = 512,
- .client_max_size = 16384,
- .server_exp = {
+ .prio = "NORMAL",
+ .server_max_size = 512,
+ .client_max_size = 16384,
+ .server_exp = {
.error = 0,
.size = 16384,
- },
- .client_exp = {
+ },
+ .client_exp = {
.error = 0,
.size = 512,
- }
- },
+ }
+ },
{
- .prio = "NORMAL",
- .server_max_size = 16384,
- .client_max_size = 512,
- .server_exp = {
+ .prio = "NORMAL",
+ .server_max_size = 16384,
+ .client_max_size = 512,
+ .server_exp = {
.error = 0,
.size = 512,
- },
- .client_exp = {
+ },
+ .client_exp = {
.error = 0,
.size = 16384,
- }
- }
+ }
+ }
};
void doit(void)
{
size_t i;
- for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++)
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++)
start(&tests[i]);
}
diff --git a/tests/tls-record-size-limit.c b/tests/tls-record-size-limit.c
index c293c8e741..557a94569a 100644
--- a/tests/tls-record-size-limit.c
+++ b/tests/tls-record-size-limit.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <assert.h>
@@ -78,19 +78,21 @@ struct handshake_cb_data_st {
static struct handshake_cb_data_st server_handshake_cb_data;
static struct handshake_cb_data_st client_handshake_cb_data;
-static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data, unsigned size)
+static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data,
+ unsigned size)
{
struct handshake_cb_data_st *cb_data = ctx;
if (tls_id == 1) { /* max record size */
cb_data->found_max_record_size = 1;
- } else if (tls_id == 28) { /* record size limit */
+ } else if (tls_id == 28) { /* record size limit */
cb_data->found_record_size_limit = 1;
}
return 0;
}
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
int ret;
unsigned pos;
@@ -109,11 +111,15 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
mmsg.data = &msg->data[pos];
mmsg.size = msg->size - pos;
- ret = gnutls_ext_raw_parse(&server_handshake_cb_data, ext_callback, &mmsg, 0);
+ ret =
+ gnutls_ext_raw_parse(&server_handshake_cb_data,
+ ext_callback, &mmsg, 0);
assert(ret >= 0);
break;
case GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS:
- ret = gnutls_ext_raw_parse(&client_handshake_cb_data, ext_callback, msg, 0);
+ ret =
+ gnutls_ext_raw_parse(&client_handshake_cb_data,
+ ext_callback, msg, 0);
assert(ret >= 0);
break;
case GNUTLS_HANDSHAKE_SERVER_HELLO:
@@ -124,7 +130,9 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
mmsg.data = &msg->data[pos];
mmsg.size = msg->size - pos;
- ret = gnutls_ext_raw_parse(&client_handshake_cb_data, ext_callback, &mmsg, 0);
+ ret =
+ gnutls_ext_raw_parse(&client_handshake_cb_data,
+ ext_callback, &mmsg, 0);
assert(ret >= 0);
break;
default:
@@ -195,8 +203,7 @@ static void start(const struct test_st *test)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server, test->prio, NULL);
@@ -220,13 +227,14 @@ static void start(const struct test_st *test)
GNUTLS_HOOK_POST,
handshake_callback);
-
/* Init client */
ret = gnutls_certificate_allocate_credentials(&clientx509cred);
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -235,7 +243,7 @@ static void start(const struct test_st *test)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -274,14 +282,16 @@ static void start(const struct test_st *test)
if (ret != (int)test->server_exp.size)
fail("server: unexpected record size sent: %d (%d)\n",
ret, (int)test->server_exp.size);
- success("server: did not send a %d-byte packet\n", (int)server_max_send_size + 1);
+ success("server: did not send a %d-byte packet\n",
+ (int)server_max_send_size + 1);
ret = gnutls_record_send(server, buffer, server_max_send_size);
if (ret < 0) {
gnutls_perror(ret);
exit(1);
}
- success("server: did send a %d-byte packet\n", (int)server_max_send_size);
+ success("server: did send a %d-byte packet\n",
+ (int)server_max_send_size);
ret = gnutls_record_send(client, buffer, client_max_send_size + 1);
if (ret < 0) {
@@ -291,14 +301,16 @@ static void start(const struct test_st *test)
if (ret != (int)test->client_exp.size)
fail("client: unexpected record size sent: %d (%d)\n",
ret, (int)test->client_exp.size);
- success("client: did not send a %d-byte packet\n", (int)client_max_send_size + 1);
+ success("client: did not send a %d-byte packet\n",
+ (int)client_max_send_size + 1);
ret = gnutls_record_send(client, buffer, client_max_send_size);
if (ret < 0) {
gnutls_perror(ret);
exit(1);
}
- success("client: did send a %d-byte packet\n", (int)client_max_send_size);
+ success("client: did send a %d-byte packet\n",
+ (int)client_max_send_size);
gnutls_bye(client, GNUTLS_SHUT_RDWR);
gnutls_bye(server, GNUTLS_SHUT_RDWR);
@@ -313,206 +325,182 @@ static void start(const struct test_st *test)
reset_buffers();
- check_exts(&test->server_exp,
- &server_handshake_cb_data);
- check_exts(&test->client_exp,
- &client_handshake_cb_data);
+ check_exts(&test->server_exp, &server_handshake_cb_data);
+ check_exts(&test->client_exp, &client_handshake_cb_data);
}
static const struct test_st tests[] = {
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- .server_max_size = 511,
- .client_max_size = 511,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ .server_max_size = 511,
+ .client_max_size = 511,
+ .server_exp = {
.error = GNUTLS_E_INVALID_REQUEST,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = GNUTLS_E_INVALID_REQUEST,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- }
- },
+ .record_size_limit = 1}
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- .server_max_size = 512,
- .client_max_size = 512,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ .server_max_size = 512,
+ .client_max_size = 512,
+ .server_exp = {
.error = 0,
.size = 512,
.max_record_size = 1,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = 0,
.size = 512,
.max_record_size = 0,
- .record_size_limit = 1
- }
- },
+ .record_size_limit = 1}
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- .server_max_size = 8192,
- .client_max_size = 8192,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ .server_max_size = 8192,
+ .client_max_size = 8192,
+ .server_exp = {
.error = 0,
.size = 8192,
.max_record_size = 0,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = 0,
.size = 8192,
.max_record_size = 0,
- .record_size_limit = 1
- }
- },
+ .record_size_limit = 1}
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- .server_max_size = 16384,
- .client_max_size = 16384,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ .server_max_size = 16384,
+ .client_max_size = 16384,
+ .server_exp = {
.error = 0,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = 0,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- }
- },
+ .record_size_limit = 1}
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- .server_max_size = 16385,
- .client_max_size = 16385,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ .server_max_size = 16385,
+ .client_max_size = 16385,
+ .server_exp = {
.error = GNUTLS_E_INVALID_REQUEST,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = GNUTLS_E_INVALID_REQUEST,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- }
- },
+ .record_size_limit = 1}
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- .server_max_size = 511,
- .client_max_size = 511,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ .server_max_size = 511,
+ .client_max_size = 511,
+ .server_exp = {
.error = GNUTLS_E_INVALID_REQUEST,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = GNUTLS_E_INVALID_REQUEST,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- }
- },
+ .record_size_limit = 1}
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- .server_max_size = 512,
- .client_max_size = 512,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ .server_max_size = 512,
+ .client_max_size = 512,
+ .server_exp = {
.error = 0,
.size = 512,
.max_record_size = 1,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = 0,
.size = 512,
.max_record_size = 0,
- .record_size_limit = 1
- }
- },
+ .record_size_limit = 1}
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- .server_max_size = 8192,
- .client_max_size = 8192,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ .server_max_size = 8192,
+ .client_max_size = 8192,
+ .server_exp = {
.error = 0,
.size = 8192,
.max_record_size = 0,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = 0,
.size = 8192,
.max_record_size = 0,
- .record_size_limit = 1
- }
- },
+ .record_size_limit = 1}
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- .server_max_size = 16384,
- .client_max_size = 16384,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ .server_max_size = 16384,
+ .client_max_size = 16384,
+ .server_exp = {
.error = 0,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = 0,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- }
- },
+ .record_size_limit = 1}
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- .server_max_size = 16383,
- .client_max_size = 16384,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ .server_max_size = 16383,
+ .client_max_size = 16384,
+ .server_exp = {
.error = 0,
.size = 16383,
.max_record_size = 0,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = 0,
.size = 16383,
.max_record_size = 0,
- .record_size_limit = 1
- }
- },
+ .record_size_limit = 1}
+ },
{
- .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- .server_max_size = 16385,
- .client_max_size = 16385,
- .server_exp = {
+ .prio = "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ .server_max_size = 16385,
+ .client_max_size = 16385,
+ .server_exp = {
.error = GNUTLS_E_INVALID_REQUEST,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- },
- .client_exp = {
+ .record_size_limit = 1},
+ .client_exp = {
.error = GNUTLS_E_INVALID_REQUEST,
.size = 16384,
.max_record_size = 0,
- .record_size_limit = 1
- }
- }
+ .record_size_limit = 1}
+ }
};
void doit(void)
{
size_t i;
- for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++)
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++)
start(&tests[i]);
}
diff --git a/tests/tls-session-ext-override.c b/tests/tls-session-ext-override.c
index 699e9a3e6f..81edbe0ce1 100644
--- a/tests/tls-session-ext-override.c
+++ b/tests/tls-session-ext-override.c
@@ -24,7 +24,7 @@
* at the session level */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,18 +40,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#include <signal.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# include <signal.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
const char *side = "";
@@ -60,19 +60,19 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-static int TLSEXT_TYPE_client_sent = 0;
-static int TLSEXT_TYPE_client_received = 0;
-static int TLSEXT_TYPE_server_sent = 0;
-static int TLSEXT_TYPE_server_received = 0;
+static int TLSEXT_TYPE_client_sent = 0;
+static int TLSEXT_TYPE_client_received = 0;
+static int TLSEXT_TYPE_server_sent = 0;
+static int TLSEXT_TYPE_server_received = 0;
static int overridden_extension = -1;
-static const unsigned char ext_data[] =
-{
+static const unsigned char ext_data[] = {
0xFE,
0xED
};
-static int ext_recv_client_params(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv_client_params(gnutls_session_t session,
+ const unsigned char *buf, size_t buflen)
{
if (buflen != sizeof(ext_data))
fail("ext_recv_client_params: Invalid input buffer length\n");
@@ -84,17 +84,19 @@ static int ext_recv_client_params(gnutls_session_t session, const unsigned char
gnutls_ext_set_data(session, overridden_extension, session);
- return 0; //Success
+ return 0; //Success
}
-static int ext_send_client_params(gnutls_session_t session, gnutls_buffer_t extdata)
+static int ext_send_client_params(gnutls_session_t session,
+ gnutls_buffer_t extdata)
{
TLSEXT_TYPE_client_sent = 1;
gnutls_buffer_append_data(extdata, ext_data, sizeof(ext_data));
return sizeof(ext_data);
}
-static int ext_recv_server_params(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv_server_params(gnutls_session_t session,
+ const unsigned char *buf, size_t buflen)
{
if (buflen != sizeof(ext_data))
fail("ext_recv_server_params: Invalid input buffer length\n");
@@ -104,10 +106,11 @@ static int ext_recv_server_params(gnutls_session_t session, const unsigned char
TLSEXT_TYPE_server_received = 1;
- return 0; //Success
+ return 0; //Success
}
-static int ext_send_server_params(gnutls_session_t session, gnutls_buffer_t extdata)
+static int ext_send_server_params(gnutls_session_t session,
+ gnutls_buffer_t extdata)
{
TLSEXT_TYPE_server_sent = 1;
gnutls_buffer_append_data(extdata, ext_data, sizeof(ext_data));
@@ -140,21 +143,37 @@ static void client(int sd)
/* put the anonymous credentials to the current session
*/
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_session_ext_register(session, "ext_client", overridden_extension, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL, 0);
+ ret =
+ gnutls_session_ext_register(session, "ext_client",
+ overridden_extension, GNUTLS_EXT_TLS,
+ ext_recv_client_params,
+ ext_send_client_params, NULL, NULL,
+ NULL, 0);
if (ret != GNUTLS_E_ALREADY_REGISTERED)
- fail("client: register existing extension (%d)\n", overridden_extension);
-
- ret = gnutls_session_ext_register(session, "ext_client", 0, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL, GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL);
+ fail("client: register existing extension (%d)\n",
+ overridden_extension);
+
+ ret =
+ gnutls_session_ext_register(session, "ext_client", 0,
+ GNUTLS_EXT_TLS, ext_recv_client_params,
+ ext_send_client_params, NULL, NULL,
+ NULL,
+ GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL);
if (ret != GNUTLS_E_ALREADY_REGISTERED)
fail("client: register extension %d\n", 0);
- ret = gnutls_session_ext_register(session, "ext_client", overridden_extension, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL, GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL);
+ ret =
+ gnutls_session_ext_register(session, "ext_client",
+ overridden_extension, GNUTLS_EXT_TLS,
+ ext_recv_client_params,
+ ext_send_client_params, NULL, NULL,
+ NULL,
+ GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL);
if (ret < 0)
fail("client: register extension (%d)\n", overridden_extension);
@@ -185,7 +204,7 @@ static void client(int sd)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
-end:
+ end:
close(sd);
gnutls_deinit(session);
@@ -223,14 +242,24 @@ static void server(int sd)
gnutls_priority_set_direct(session, "PERFORMANCE:+ANON-ECDH:+ANON-DH",
NULL);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- ret = gnutls_session_ext_register(session, "ext_server", overridden_extension, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL, 0);
+ ret =
+ gnutls_session_ext_register(session, "ext_server",
+ overridden_extension, GNUTLS_EXT_TLS,
+ ext_recv_server_params,
+ ext_send_server_params, NULL, NULL,
+ NULL, 0);
if (ret != GNUTLS_E_ALREADY_REGISTERED)
fail("client: register existing extension\n");
- ret = gnutls_session_ext_register(session, "ext_server", overridden_extension, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL, GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL);
+ ret =
+ gnutls_session_ext_register(session, "ext_server",
+ overridden_extension, GNUTLS_EXT_TLS,
+ ext_recv_server_params,
+ ext_send_server_params, NULL, NULL,
+ NULL,
+ GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL);
if (ret < 0)
fail("client: register extension\n");
@@ -281,9 +310,9 @@ static void override_ext(unsigned extension)
return;
}
- TLSEXT_TYPE_client_sent = 0;
+ TLSEXT_TYPE_client_sent = 0;
TLSEXT_TYPE_client_received = 0;
- TLSEXT_TYPE_server_sent = 0;
+ TLSEXT_TYPE_server_sent = 0;
TLSEXT_TYPE_server_received = 0;
overridden_extension = extension;
diff --git a/tests/tls-session-ext-register.c b/tests/tls-session-ext-register.c
index cac94cc4c7..3aefbafe1d 100644
--- a/tests/tls-session-ext-register.c
+++ b/tests/tls-session-ext-register.c
@@ -23,7 +23,7 @@
* at the session level */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,19 +39,19 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#include <signal.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# include <signal.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <assert.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
const char *side = "";
@@ -60,13 +60,13 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define TLSEXT_TYPE_SAMPLE 0xF1
-#define TLSEXT_TYPE_IGN 0xF2
+# define TLSEXT_TYPE_SAMPLE 0xF1
+# define TLSEXT_TYPE_IGN 0xF2
-static int TLSEXT_TYPE_client_sent = 0;
-static int TLSEXT_TYPE_client_received = 0;
-static int TLSEXT_TYPE_server_sent = 0;
-static int TLSEXT_TYPE_server_received = 0;
+static int TLSEXT_TYPE_client_sent = 0;
+static int TLSEXT_TYPE_client_received = 0;
+static int TLSEXT_TYPE_server_sent = 0;
+static int TLSEXT_TYPE_server_received = 0;
static int ign_extension_called = 0;
static void reset_vars(void)
@@ -78,16 +78,16 @@ static void reset_vars(void)
ign_extension_called = 0;
}
-static const unsigned char ext_data[] =
-{
+static const unsigned char ext_data[] = {
0xFE,
0xED
};
-#define myfail(fmt, ...) \
+# define myfail(fmt, ...) \
fail("%s: "fmt, name, ##__VA_ARGS__)
-static int ext_recv_client_params(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv_client_params(gnutls_session_t session,
+ const unsigned char *buf, size_t buflen)
{
const char *name;
name = gnutls_session_get_ptr(session);
@@ -102,28 +102,32 @@ static int ext_recv_client_params(gnutls_session_t session, const unsigned char
gnutls_ext_set_data(session, TLSEXT_TYPE_SAMPLE, session);
- return 0; //Success
+ return 0; //Success
}
-static int ext_send_client_params(gnutls_session_t session, gnutls_buffer_t extdata)
+static int ext_send_client_params(gnutls_session_t session,
+ gnutls_buffer_t extdata)
{
TLSEXT_TYPE_client_sent = 1;
gnutls_buffer_append_data(extdata, ext_data, sizeof(ext_data));
return sizeof(ext_data);
}
-static int ext_recv_client_ign_params(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv_client_ign_params(gnutls_session_t session,
+ const unsigned char *buf, size_t buflen)
{
return 0;
}
-static int ext_send_client_ign_params(gnutls_session_t session, gnutls_buffer_t extdata)
+static int ext_send_client_ign_params(gnutls_session_t session,
+ gnutls_buffer_t extdata)
{
ign_extension_called = 1;
return 0;
}
-static int ext_recv_server_params(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv_server_params(gnutls_session_t session,
+ const unsigned char *buf, size_t buflen)
{
const char *name;
@@ -137,17 +141,19 @@ static int ext_recv_server_params(gnutls_session_t session, const unsigned char
TLSEXT_TYPE_server_received = 1;
- return 0; //Success
+ return 0; //Success
}
-static int ext_send_server_params(gnutls_session_t session, gnutls_buffer_t extdata)
+static int ext_send_server_params(gnutls_session_t session,
+ gnutls_buffer_t extdata)
{
TLSEXT_TYPE_server_sent = 1;
gnutls_buffer_append_data(extdata, ext_data, sizeof(ext_data));
return sizeof(ext_data);
}
-static void client(int sd, const char *name, const char *prio, unsigned flags, unsigned expected_ok)
+static void client(int sd, const char *name, const char *prio, unsigned flags,
+ unsigned expected_ok)
{
int ret;
gnutls_session_t session;
@@ -162,33 +168,47 @@ static void client(int sd, const char *name, const char *prio, unsigned flags, u
/* Initialize TLS session
*/
assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
- gnutls_session_set_ptr(session, (void*)name);
+ gnutls_session_set_ptr(session, (void *)name);
/* Use default priorities */
- assert(gnutls_priority_set_direct(session, prio,
- NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the anonymous credentials to the current session
*/
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_session_ext_register(session, "ext_ign", TLSEXT_TYPE_IGN, GNUTLS_EXT_TLS, ext_recv_client_ign_params, ext_send_client_ign_params, NULL, NULL, NULL, flags);
+ ret =
+ gnutls_session_ext_register(session, "ext_ign", TLSEXT_TYPE_IGN,
+ GNUTLS_EXT_TLS,
+ ext_recv_client_ign_params,
+ ext_send_client_ign_params, NULL, NULL,
+ NULL, flags);
if (ret < 0)
myfail("client: register extension\n");
- ext_name = gnutls_ext_get_name2(session, TLSEXT_TYPE_IGN, GNUTLS_EXT_ANY);
+ ext_name =
+ gnutls_ext_get_name2(session, TLSEXT_TYPE_IGN, GNUTLS_EXT_ANY);
if (ext_name == NULL || strcmp(ext_name, "ext_ign"))
- myfail("client: retrieve name of extension %u\n", TLSEXT_TYPE_IGN);
+ myfail("client: retrieve name of extension %u\n",
+ TLSEXT_TYPE_IGN);
- ext_name = gnutls_ext_get_name2(session, TLSEXT_TYPE_IGN, GNUTLS_EXT_APPLICATION);
+ ext_name =
+ gnutls_ext_get_name2(session, TLSEXT_TYPE_IGN,
+ GNUTLS_EXT_APPLICATION);
if (ext_name)
- myfail("client: retrieve name of extension %u (expected none)\n", TLSEXT_TYPE_IGN);
-
- ret = gnutls_session_ext_register(session, "ext_client", TLSEXT_TYPE_SAMPLE, GNUTLS_EXT_TLS, ext_recv_client_params, ext_send_client_params, NULL, NULL, NULL, flags);
+ myfail
+ ("client: retrieve name of extension %u (expected none)\n",
+ TLSEXT_TYPE_IGN);
+
+ ret =
+ gnutls_session_ext_register(session, "ext_client",
+ TLSEXT_TYPE_SAMPLE, GNUTLS_EXT_TLS,
+ ext_recv_client_params,
+ ext_send_client_params, NULL, NULL,
+ NULL, flags);
if (ret < 0)
myfail("client: register extension\n");
@@ -199,9 +219,12 @@ static void client(int sd, const char *name, const char *prio, unsigned flags, u
if (ret < 0) {
if (!expected_ok) {
if (debug)
- success("client: handshake failed as expected: %s\n", gnutls_strerror(ret));
+ success
+ ("client: handshake failed as expected: %s\n",
+ gnutls_strerror(ret));
} else {
- myfail("client: Handshake failed: %s\n", gnutls_strerror(ret));
+ myfail("client: Handshake failed: %s\n",
+ gnutls_strerror(ret));
}
goto end;
} else {
@@ -211,7 +234,8 @@ static void client(int sd, const char *name, const char *prio, unsigned flags, u
if (TLSEXT_TYPE_client_sent != 1 || TLSEXT_TYPE_client_received != 1) {
if (expected_ok) {
- myfail("client: extension not properly sent/received\n");
+ myfail
+ ("client: extension not properly sent/received\n");
} else {
goto end;
}
@@ -235,7 +259,7 @@ static void client(int sd, const char *name, const char *prio, unsigned flags, u
if (!expected_ok)
myfail("client: expected failure but succeeded!\n");
-end:
+ end:
close(sd);
gnutls_deinit(session);
@@ -243,7 +267,8 @@ end:
gnutls_certificate_free_credentials(clientx509cred);
}
-static void server(int sd, const char *name, const char *prio, unsigned flags, unsigned expected_ok)
+static void server(int sd, const char *name, const char *prio, unsigned flags,
+ unsigned expected_ok)
{
gnutls_certificate_credentials_t serverx509cred;
int ret;
@@ -251,24 +276,25 @@ static void server(int sd, const char *name, const char *prio, unsigned flags, u
side = "server";
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM) >= 0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
- gnutls_session_set_ptr(session, (void*)name);
+ gnutls_session_set_ptr(session, (void *)name);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, prio,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- assert(gnutls_session_ext_register(session, "ext_server", TLSEXT_TYPE_SAMPLE, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL, flags) >= 0);
+ assert(gnutls_session_ext_register
+ (session, "ext_server", TLSEXT_TYPE_SAMPLE, GNUTLS_EXT_TLS,
+ ext_recv_server_params, ext_send_server_params, NULL, NULL,
+ NULL, flags) >= 0);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
@@ -277,23 +303,25 @@ static void server(int sd, const char *name, const char *prio, unsigned flags, u
if (ret < 0) {
if (!expected_ok) {
if (debug)
- success("server: handshake failed as expected: %s\n", gnutls_strerror(ret));
+ success
+ ("server: handshake failed as expected: %s\n",
+ gnutls_strerror(ret));
goto cleanup;
} else {
close(sd);
gnutls_deinit(session);
myfail("server: Handshake has failed (%s)\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
}
return;
}
if (debug)
success("server: Handshake was completed\n");
-
if (TLSEXT_TYPE_server_sent != 1 || TLSEXT_TYPE_server_received != 1) {
if (expected_ok)
- myfail("server: extension not properly sent/received\n");
+ myfail
+ ("server: extension not properly sent/received\n");
else
goto cleanup;
}
@@ -315,7 +343,7 @@ static void server(int sd, const char *name, const char *prio, unsigned flags, u
success("server: finished\n");
}
-#define try_common(name, prio, flags, sok, cok) \
+# define try_common(name, prio, flags, sok, cok) \
try(name, prio, flags, flags, sok, cok)
static void try(const char *name, const char *prio, unsigned server_flags,
@@ -371,22 +399,46 @@ void doit(void)
if (debug)
gnutls_global_set_log_level(5);
- try_common("TLS1.2 both ways (default)", "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2", 0, 1, 1);
- try_common("TLS1.2 both ways", "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2", GNUTLS_EXT_FLAG_CLIENT_HELLO|GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO, 1, 1);
-
- try_common("TLS1.2 client only", "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2", GNUTLS_EXT_FLAG_CLIENT_HELLO, 0, 0);
- try_common("TLS1.2 client and TLS 1.3 server", "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2", GNUTLS_EXT_FLAG_CLIENT_HELLO|GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO, 0, 0);
- try_common("TLS1.2 server only", "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2", GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO, 0, 0);
-
- try("TLS1.2 client rejects", "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2", GNUTLS_EXT_FLAG_CLIENT_HELLO|GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO, GNUTLS_EXT_FLAG_CLIENT_HELLO, 0, 0);
- try("TLS1.2 never on client hello", "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2", GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO, GNUTLS_EXT_FLAG_CLIENT_HELLO, 0, 0);
+ try_common("TLS1.2 both ways (default)",
+ "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2", 0, 1, 1);
+ try_common("TLS1.2 both ways",
+ "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2",
+ GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO, 1, 1);
+
+ try_common("TLS1.2 client only",
+ "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2",
+ GNUTLS_EXT_FLAG_CLIENT_HELLO, 0, 0);
+ try_common("TLS1.2 client and TLS 1.3 server",
+ "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2",
+ GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO, 0, 0);
+ try_common("TLS1.2 server only",
+ "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2",
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO, 0, 0);
+
+ try("TLS1.2 client rejects",
+ "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2",
+ GNUTLS_EXT_FLAG_CLIENT_HELLO | GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO, 0, 0);
+ try("TLS1.2 never on client hello",
+ "NORMAL:+ANON-ECDH:-VERS-TLS-ALL:+VERS-TLS1.2",
+ GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO, GNUTLS_EXT_FLAG_CLIENT_HELLO, 0,
+ 0);
/* check whether we can crash the library by adding many extensions */
success("Testing: register many global extensions\n");
- for (i=0;i<64;i++) {
- ret = gnutls_ext_register("ext_serverxx", TLSEXT_TYPE_SAMPLE+i+1, GNUTLS_EXT_TLS, ext_recv_server_params, ext_send_server_params, NULL, NULL, NULL);
+ for (i = 0; i < 64; i++) {
+ ret =
+ gnutls_ext_register("ext_serverxx",
+ TLSEXT_TYPE_SAMPLE + i + 1,
+ GNUTLS_EXT_TLS, ext_recv_server_params,
+ ext_send_server_params, NULL, NULL,
+ NULL);
if (ret < 0) {
- success("failed registering extension no %d (expected)\n", i+1);
+ success
+ ("failed registering extension no %d (expected)\n",
+ i + 1);
break;
}
}
diff --git a/tests/tls-session-supplemental.c b/tests/tls-session-supplemental.c
index 9431346c41..65a9c95c37 100644
--- a/tests/tls-session-supplemental.c
+++ b/tests/tls-session-supplemental.c
@@ -22,7 +22,7 @@
/* This tests the supplemental data extension under TLS1.2 */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -38,18 +38,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <assert.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# include <assert.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
const char *side = "";
@@ -58,21 +58,21 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define TLS_SUPPLEMENTALDATATYPE_SAMPLE 0xBABE
+# define TLS_SUPPLEMENTALDATATYPE_SAMPLE 0xBABE
-static int TLS_SUPPLEMENTALDATA_client_sent = 0;
-static int TLS_SUPPLEMENTALDATA_client_received = 0;
-static int TLS_SUPPLEMENTALDATA_server_sent = 0;
-static int TLS_SUPPLEMENTALDATA_server_received = 0;
+static int TLS_SUPPLEMENTALDATA_client_sent = 0;
+static int TLS_SUPPLEMENTALDATA_client_received = 0;
+static int TLS_SUPPLEMENTALDATA_server_sent = 0;
+static int TLS_SUPPLEMENTALDATA_server_received = 0;
-static const unsigned char supp_data[] =
-{
+static const unsigned char supp_data[] = {
0xFE,
0xED
};
static
-int supp_client_recv_func(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+int supp_client_recv_func(gnutls_session_t session, const unsigned char *buf,
+ size_t buflen)
{
TLS_SUPPLEMENTALDATA_client_received = 1;
@@ -94,7 +94,8 @@ int supp_client_send_func(gnutls_session_t session, gnutls_buffer_t buf)
}
static
-int supp_server_recv_func(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+int supp_server_recv_func(gnutls_session_t session, const unsigned char *buf,
+ size_t buflen)
{
TLS_SUPPLEMENTALDATA_server_received = 1;
@@ -139,8 +140,7 @@ static void client(int sd, const char *prio, unsigned server_only)
/* put the anonymous credentials to the current session
*/
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, sd);
@@ -148,7 +148,11 @@ static void client(int sd, const char *prio, unsigned server_only)
gnutls_supplemental_recv(session, 1);
gnutls_supplemental_send(session, 1);
- gnutls_session_supplemental_register(session, "supplemental_client", TLS_SUPPLEMENTALDATATYPE_SAMPLE, supp_client_recv_func, supp_client_send_func, 0);
+ gnutls_session_supplemental_register(session,
+ "supplemental_client",
+ TLS_SUPPLEMENTALDATATYPE_SAMPLE,
+ supp_client_recv_func,
+ supp_client_send_func, 0);
}
/* Perform the TLS handshake
@@ -165,7 +169,8 @@ static void client(int sd, const char *prio, unsigned server_only)
}
if (!server_only) {
- if (TLS_SUPPLEMENTALDATA_client_sent != 1 || TLS_SUPPLEMENTALDATA_client_received != 1)
+ if (TLS_SUPPLEMENTALDATA_client_sent != 1
+ || TLS_SUPPLEMENTALDATA_client_received != 1)
fail("client: extension not properly sent/received\n");
} else {
/* we expect TLS1.2 handshake as TLS1.3 is not (yet) defined
@@ -175,7 +180,7 @@ static void client(int sd, const char *prio, unsigned server_only)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
-end:
+ end:
close(sd);
gnutls_deinit(session);
@@ -210,15 +215,17 @@ static void server(int sd, const char *prio, unsigned server_only)
assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
if (!server_only) {
gnutls_supplemental_recv(session, 1);
gnutls_supplemental_send(session, 1);
}
- gnutls_session_supplemental_register(session, "supplemental_server", TLS_SUPPLEMENTALDATATYPE_SAMPLE, supp_server_recv_func, supp_server_send_func, 0);
+ gnutls_session_supplemental_register(session, "supplemental_server",
+ TLS_SUPPLEMENTALDATATYPE_SAMPLE,
+ supp_server_recv_func,
+ supp_server_send_func, 0);
gnutls_transport_set_int(session, sd);
ret = gnutls_handshake(session);
@@ -233,7 +240,8 @@ static void server(int sd, const char *prio, unsigned server_only)
success("server: Handshake was completed\n");
if (!server_only) {
- if (TLS_SUPPLEMENTALDATA_server_sent != 1 || TLS_SUPPLEMENTALDATA_server_received != 1)
+ if (TLS_SUPPLEMENTALDATA_server_sent != 1
+ || TLS_SUPPLEMENTALDATA_server_received != 1)
fail("server: extension not properly sent/received\n");
}
diff --git a/tests/tls-supplemental.c b/tests/tls-supplemental.c
index 2dfbd0c8b4..8dfd2c91b5 100644
--- a/tests/tls-supplemental.c
+++ b/tests/tls-supplemental.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,17 +39,17 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
/* A very basic TLS client, with supplemental data
*/
@@ -63,21 +63,21 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define TLS_SUPPLEMENTALDATATYPE_SAMPLE 0xBABE
+# define TLS_SUPPLEMENTALDATATYPE_SAMPLE 0xBABE
-static int TLS_SUPPLEMENTALDATA_client_sent = 0;
-static int TLS_SUPPLEMENTALDATA_client_received = 0;
-static int TLS_SUPPLEMENTALDATA_server_sent = 0;
-static int TLS_SUPPLEMENTALDATA_server_received = 0;
+static int TLS_SUPPLEMENTALDATA_client_sent = 0;
+static int TLS_SUPPLEMENTALDATA_client_received = 0;
+static int TLS_SUPPLEMENTALDATA_server_sent = 0;
+static int TLS_SUPPLEMENTALDATA_server_received = 0;
-static const unsigned char supp_data[] =
-{
+static const unsigned char supp_data[] = {
0xFE,
0xED
};
static
-int supp_client_recv_func(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+int supp_client_recv_func(gnutls_session_t session, const unsigned char *buf,
+ size_t buflen)
{
TLS_SUPPLEMENTALDATA_client_received = 1;
@@ -99,7 +99,8 @@ int supp_client_send_func(gnutls_session_t session, gnutls_buffer_t buf)
}
static
-int supp_server_recv_func(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+int supp_server_recv_func(gnutls_session_t session, const unsigned char *buf,
+ size_t buflen)
{
TLS_SUPPLEMENTALDATA_server_received = 1;
@@ -127,20 +128,21 @@ static void client(int sd, const char *prio, unsigned server_only)
gnutls_certificate_credentials_t clientx509cred;
if (!server_only) {
- assert(gnutls_supplemental_register("supplemental_client", TLS_SUPPLEMENTALDATATYPE_SAMPLE, supp_client_recv_func, supp_client_send_func)>=0);
+ assert(gnutls_supplemental_register
+ ("supplemental_client", TLS_SUPPLEMENTALDATATYPE_SAMPLE,
+ supp_client_recv_func, supp_client_send_func) >= 0);
}
side = "client";
gnutls_certificate_allocate_credentials(&clientx509cred);
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
/* Use default priorities */
gnutls_priority_set_direct(session, prio, NULL);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, sd);
@@ -163,9 +165,9 @@ static void client(int sd, const char *prio, unsigned server_only)
}
if (!server_only) {
- if (TLS_SUPPLEMENTALDATA_client_sent != 1 || TLS_SUPPLEMENTALDATA_client_received != 1)
- fail("client: extension not properly sent/received (%d.%d)\n",
- TLS_SUPPLEMENTALDATA_client_sent, TLS_SUPPLEMENTALDATA_client_received);
+ if (TLS_SUPPLEMENTALDATA_client_sent != 1
+ || TLS_SUPPLEMENTALDATA_client_received != 1)
+ fail("client: extension not properly sent/received (%d.%d)\n", TLS_SUPPLEMENTALDATA_client_sent, TLS_SUPPLEMENTALDATA_client_received);
} else {
/* we expect TLS1.2 handshake as TLS1.3 is not (yet) defined
* with supplemental data */
@@ -174,7 +176,7 @@ static void client(int sd, const char *prio, unsigned server_only)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
-end:
+ end:
close(sd);
gnutls_deinit(session);
@@ -192,7 +194,9 @@ static void server(int sd, const char *prio, unsigned server_only)
side = "server";
if (!registered) {
- assert(gnutls_supplemental_register("supplemental_server", TLS_SUPPLEMENTALDATATYPE_SAMPLE, supp_server_recv_func, supp_server_send_func)>=0);
+ assert(gnutls_supplemental_register
+ ("supplemental_server", TLS_SUPPLEMENTALDATATYPE_SAMPLE,
+ supp_server_recv_func, supp_server_send_func) >= 0);
registered = 0;
}
@@ -205,8 +209,7 @@ static void server(int sd, const char *prio, unsigned server_only)
assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
if (!server_only) {
gnutls_supplemental_recv(session, 1);
@@ -226,7 +229,8 @@ static void server(int sd, const char *prio, unsigned server_only)
success("server: Handshake was completed\n");
if (!server_only) {
- if (TLS_SUPPLEMENTALDATA_server_sent != 1 || TLS_SUPPLEMENTALDATA_server_received != 1)
+ if (TLS_SUPPLEMENTALDATA_server_sent != 1
+ || TLS_SUPPLEMENTALDATA_server_received != 1)
fail("server: extension not properly sent/received\n");
}
@@ -294,7 +298,6 @@ void doit(void)
if (debug)
gnutls_global_set_log_level(6);
-
start("NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2", 0);
start("NORMAL:-VERS-ALL:+VERS-TLS1.2", 0);
start("NORMAL", 0);
diff --git a/tests/tls-with-seccomp.c b/tests/tls-with-seccomp.c
index 5e172ebbba..a7f6ef27c8 100644
--- a/tests/tls-with-seccomp.c
+++ b/tests/tls-with-seccomp.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -62,7 +62,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio)
{
@@ -113,13 +113,12 @@ static void client(int fd, const char *prio)
(gnutls_protocol_get_version(session)));
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_recv(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -128,10 +127,11 @@ static void client(int fd, const char *prio)
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
- end:
+ end:
close(fd);
@@ -142,7 +142,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -174,8 +173,8 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&xcred);
ret = gnutls_certificate_set_x509_key_mem(xcred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -218,7 +217,7 @@ static void server(int fd, const char *prio)
memset(buffer, 1, sizeof(buffer));
do {
- ret = gnutls_record_send(session, buffer, sizeof(buffer)-1);
+ ret = gnutls_record_send(session, buffer, sizeof(buffer) - 1);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
@@ -231,7 +230,8 @@ static void server(int fd, const char *prio)
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
if (ret < 0) {
- fail("server: error in closing session: %s\n", gnutls_strerror(ret));
+ fail("server: error in closing session: %s\n",
+ gnutls_strerror(ret));
}
close(fd);
@@ -245,7 +245,7 @@ static void server(int fd, const char *prio)
success("server: finished\n");
}
-static
+static
void run(const char *name, const char *prio)
{
int fd[2];
diff --git a/tests/tls10-cert-key-exchange.c b/tests/tls10-cert-key-exchange.c
index 3896740d6c..75a23e15da 100644
--- a/tests/tls10-cert-key-exchange.c
+++ b/tests/tls10-cert-key-exchange.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -39,26 +39,68 @@ void doit(void)
{
global_init();
- try_x509("TLS 1.0 with anon-ecdh", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ANON-ECDH", GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.0 with anon-dh", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ANON-DH", GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.0 with dhe-rsa no cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.0 with ecdhe x25519 rsa no cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.0 with ecdhe rsa no cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_with_key("TLS 1.0 with ecdhe ecdsa no cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_x509("TLS 1.0 with anon-ecdh",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ANON-ECDH",
+ GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.0 with anon-dh",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ANON-DH",
+ GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.0 with dhe-rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.0 with ecdhe x25519 rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.0 with ecdhe rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_with_key("TLS 1.0 with ecdhe ecdsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, NULL, NULL, 0, GNUTLS_CRT_X509,
+ GNUTLS_CRT_UNKNOWN);
- try_x509("TLS 1.0 with rsa no cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509_cli("TLS 1.0 with dhe-rsa cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, USE_CERT);
- try_x509_cli("TLS 1.0 with ecdhe-rsa cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, USE_CERT);
- try_x509_cli("TLS 1.0 with rsa cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, USE_CERT);
- try_with_key("TLS 1.0 with ecdhe ecdsa cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_x509("TLS 1.0 with rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+RSA", GNUTLS_KX_RSA,
+ GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509_cli("TLS 1.0 with dhe-rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, USE_CERT);
+ try_x509_cli("TLS 1.0 with ecdhe-rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, USE_CERT);
+ try_x509_cli("TLS 1.0 with rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
+ USE_CERT);
+ try_with_key("TLS 1.0 with ecdhe ecdsa cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, USE_CERT,
+ GNUTLS_CRT_X509, GNUTLS_CRT_X509);
- try_x509_cli("TLS 1.0 with dhe-rsa ask cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_x509_cli("TLS 1.0 with ecdhe-rsa ask cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_x509_cli("TLS 1.0 with rsa ask cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_with_key("TLS 1.0 with ecdhe ecdsa cert", "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, ASK_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_x509_cli("TLS 1.0 with dhe-rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_x509_cli("TLS 1.0 with ecdhe-rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_x509_cli("TLS 1.0 with rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
+ ASK_CERT);
+ try_with_key("TLS 1.0 with ecdhe ecdsa cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.0:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, ASK_CERT,
+ GNUTLS_CRT_X509, GNUTLS_CRT_X509);
gnutls_global_deinit();
}
diff --git a/tests/tls10-cipher-neg.c b/tests/tls10-cipher-neg.c
index c1461306be..fb53b7e0fa 100644
--- a/tests/tls10-cipher-neg.c
+++ b/tests/tls10-cipher-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the ciphersuite negotiation for various key exchange
@@ -39,85 +39,85 @@
test_case_st tests[] = {
{
- .name = "server TLS 1.0: AES-128-CBC (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-CBC"
- },
+ .name = "server TLS 1.0: AES-128-CBC (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-CBC"},
{
- .name = "both TLS 1.0: AES-128-CBC (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.0"
- },
+ .name = "both TLS 1.0: AES-128-CBC (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.0"},
{
- .name = "client TLS 1.0: AES-128-CBC (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:+AES-128-CBC",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"
- },
+ .name = "client TLS 1.0: AES-128-CBC (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio = "NORMAL:+AES-128-CBC",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"},
{
- .name = "both TLS 1.0: AES-128-CBC (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.0",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"
- },
+ .name = "both TLS 1.0: AES-128-CBC (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.0",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"},
{
- .name = "server TLS 1.0: 3DES-CBC (server)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+3DES-CBC"
- },
+ .name = "server TLS 1.0: 3DES-CBC (server)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+3DES-CBC"},
{
- .name = "both TLS 1.0: 3DES-CBC (server)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.0"
- },
+ .name = "both TLS 1.0: 3DES-CBC (server)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.0"},
{
- .name = "client TLS 1.0: 3DES-CBC (client)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+3DES-CBC",
- .client_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"
- },
+ .name = "client TLS 1.0: 3DES-CBC (client)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+3DES-CBC",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"},
{
- .name = "both TLS 1.0: 3DES-CBC (client)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.0",
- .client_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"
- },
+ .name = "both TLS 1.0: 3DES-CBC (client)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.0",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"},
{
- .name = "server TLS 1.0: ARCFOUR-128 (server)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+ARCFOUR-128"
- },
+ .name = "server TLS 1.0: ARCFOUR-128 (server)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+ARCFOUR-128"},
{
- .name = "both TLS 1.0: ARCFOUR-128 (server)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.0"
- },
+ .name = "both TLS 1.0: ARCFOUR-128 (server)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.0"},
{
- .name = "client TLS 1.0: ARCFOUR-128 (client)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+ARCFOUR-128",
- .client_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"
- },
+ .name = "client TLS 1.0: ARCFOUR-128 (client)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+ARCFOUR-128",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"},
{
- .name = "both TLS 1.0: ARCFOUR-128 (client)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.0",
- .client_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"
- }
+ .name = "both TLS 1.0: ARCFOUR-128 (client)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.0",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.0"}
};
void doit(void)
@@ -125,7 +125,7 @@ void doit(void)
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/tls10-prf.c b/tests/tls10-prf.c
index d0c915861b..c09cbbc9a8 100644
--- a/tests/tls10-prf.c
+++ b/tests/tls10-prf.c
@@ -35,7 +35,7 @@ int
_gnutls_prf_raw(gnutls_mac_algorithm_t mac,
size_t master_size, const void *master,
size_t label_size, const char *label,
- size_t seed_size, const uint8_t *seed, size_t outsize,
+ size_t seed_size, const uint8_t * seed, size_t outsize,
char *out);
#define MATCH_FUNC(fname, dsecret, dseed, dlabel, doutput) \
@@ -57,17 +57,25 @@ static void fname(void **glob_state) \
gnutls_free(output.data); \
}
-
-MATCH_FUNC(test1, SHEX("263bdbbb6f6d4c664e058d0aa9d321be"), SHEX("b920573b199601024f04d6dc61966e65"),
- SDATA("test label"), SHEX("6617993765fa6ca703d19ec70dd5dd160ffcc07725fafb714a9f815a2a30bfb7e3bbfb7eee574b3b613eb7fe80eec9691d8c1b0e2d9b3c8b4b02b6b6d6db88e2094623ef6240607eda7abe3c846e82a3"));
-MATCH_FUNC(test2, SHEX("bf31fe6c78ebf0ff9ce8bb5dd9d1f83d"), SHEX("7fc4583d19871d962760f358a18696c8"),
- SDATA("test label"), SHEX("8318f382c49fd5af7d6fdb4cbb31dfef"));
-MATCH_FUNC(test3, SHEX("0addfc84435b9ac1ef523ef44791a784bf55757dea17837c1a72beec1bdb1850"),
- SHEX("74e849d11ad8a98d9bc2291dbceec26ff9"),
- SDATA("test label"), SHEX("3c221520c48bcb3a0eb3734a"));
-MATCH_FUNC(test4, SHEX("4074939b440a08a285bc7208485c531f0bbd4c101d71bdba33ec066791e4678c"),
- SHEX("8aff0c770c1d60455ee48f220c9adb471e5fee27c88c1f33"),
- SDATA("test label"), SHEX("3a9aee040bbf3cf7009210e64bbdad1775ccf1b46b3a965d5f15168e9ddaa7cc6a7c0c117848"));
+MATCH_FUNC(test1, SHEX("263bdbbb6f6d4c664e058d0aa9d321be"),
+ SHEX("b920573b199601024f04d6dc61966e65"), SDATA("test label"),
+ SHEX
+ ("6617993765fa6ca703d19ec70dd5dd160ffcc07725fafb714a9f815a2a30bfb7e3bbfb7eee574b3b613eb7fe80eec9691d8c1b0e2d9b3c8b4b02b6b6d6db88e2094623ef6240607eda7abe3c846e82a3"));
+MATCH_FUNC(test2, SHEX("bf31fe6c78ebf0ff9ce8bb5dd9d1f83d"),
+ SHEX("7fc4583d19871d962760f358a18696c8"), SDATA("test label"),
+ SHEX("8318f382c49fd5af7d6fdb4cbb31dfef"));
+MATCH_FUNC(test3,
+ SHEX
+ ("0addfc84435b9ac1ef523ef44791a784bf55757dea17837c1a72beec1bdb1850"),
+ SHEX("74e849d11ad8a98d9bc2291dbceec26ff9"), SDATA("test label"),
+ SHEX("3c221520c48bcb3a0eb3734a"));
+MATCH_FUNC(test4,
+ SHEX
+ ("4074939b440a08a285bc7208485c531f0bbd4c101d71bdba33ec066791e4678c"),
+ SHEX("8aff0c770c1d60455ee48f220c9adb471e5fee27c88c1f33"),
+ SDATA("test label"),
+ SHEX
+ ("3a9aee040bbf3cf7009210e64bbdad1775ccf1b46b3a965d5f15168e9ddaa7cc6a7c0c117848"));
int main(void)
{
diff --git a/tests/tls10-server-kx-neg.c b/tests/tls10-server-kx-neg.c
index e6d1c3e217..e9e8c47730 100644
--- a/tests/tls10-server-kx-neg.c
+++ b/tests/tls10-server-kx-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the ciphersuite negotiation for various key exchange
@@ -39,385 +39,358 @@
test_case_st tests[] = {
{
- .name = "TLS 1.0 ANON-DH without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ANON-DH with cred but no DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_anon_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ANON-DH with cred and DH params",
- .server_ret = 0,
- .client_ret = 0,
- .have_anon_cred = 1,
- .have_anon_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 DHE-RSA without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 DHE-RSA with cred but no DH params or cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 DHE-RSA with cred and cert but no DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 DHE-RSA with cred and DH params but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 DHE-RSA with cred and incompatible cert and DH params",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 DHE-RSA with cred and cert and DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 DHE-RSA with cred and multiple certs and DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 DHE-PSK without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 DHE-PSK with cred but no DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 DHE-PSK with cred DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .have_psk_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ECDHE-RSA without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ECDHE-RSA with cred but no common curve or cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.0 ECDHE-RSA with cred and cert but no common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.0 ECDHE-RSA with cred and common curve but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ECDHE-RSA with cred and incompatible cert and common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ECDHE-RSA with cred and cert and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ECDHE-RSA with cred and multiple certs and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
+ .name = "TLS 1.0 ANON-DH without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 ANON-DH with cred but no DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_anon_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 ANON-DH with cred and DH params",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_anon_cred = 1,
+ .have_anon_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 DHE-RSA without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 DHE-RSA with cred but no DH params or cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 DHE-RSA with cred and cert but no DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 DHE-RSA with cred and DH params but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name =
+ "TLS 1.0 DHE-RSA with cred and incompatible cert and DH params",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 DHE-RSA with cred and cert and DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 DHE-RSA with cred and multiple certs and DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 DHE-PSK without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 DHE-PSK with cred but no DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 DHE-PSK with cred DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .have_psk_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 ECDHE-RSA without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 ECDHE-RSA with cred but no common curve or cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.0 ECDHE-RSA with cred and cert but no common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.0 ECDHE-RSA with cred and common curve but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name =
+ "TLS 1.0 ECDHE-RSA with cred and incompatible cert and common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 ECDHE-RSA with cred and cert and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name =
+ "TLS 1.0 ECDHE-RSA with cred and multiple certs and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.0"},
{
- .name = "TLS 1.0 ECDHE-ECDSA without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ECDHE-ECDSA with cred but no common curve or cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.0 ECDHE-ECDSA with cred and cert but no common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.0 ECDHE-ECDSA with cred and common curve but no ECDSA cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ECDHE-ECDSA with cred and common curve but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ECDHE-ECDSA with cred and cert and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ECDHE-ECDSA with cred and multiple certs and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0"
- },
+ .name = "TLS 1.0 ECDHE-ECDSA without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 ECDHE-ECDSA with cred but no common curve or cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.0 ECDHE-ECDSA with cred and cert but no common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name =
+ "TLS 1.0 ECDHE-ECDSA with cred and common curve but no ECDSA cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 ECDHE-ECDSA with cred and common curve but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 ECDHE-ECDSA with cred and cert and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name =
+ "TLS 1.0 ECDHE-ECDSA with cred and multiple certs and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.0"},
{
- .name = "TLS 1.0 ECDHE-PSK without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 ECDHE-PSK with cred but no common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.0 ECDHE-PSK with cred and common curve",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 RSA-PSK without cert cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 RSA-PSK without psk cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 RSA-PSK with cred but invalid cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 RSA-PSK with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 RSA-PSK with cred and multiple certs",
- .server_ret = 0,
- .client_ret = 0,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0"
- },
+ .name = "TLS 1.0 ECDHE-PSK without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 ECDHE-PSK with cred but no common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.0 ECDHE-PSK with cred and common curve",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 RSA-PSK without cert cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 RSA-PSK without psk cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 RSA-PSK with cred but invalid cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 RSA-PSK with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 RSA-PSK with cred and multiple certs",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.0"},
#ifdef ENABLE_SRP
{
- .name = "TLS 1.0 SRP-RSA without cert cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_srp_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 SRP-RSA without srp cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_srp_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 SRP-RSA with cred but invalid cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 SRP-RSA with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 SRP-RSA with cred and multiple certs",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 SRP without srp cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_srp_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.0"
- },
- {
- .name = "TLS 1.0 SRP with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.0",
- .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.0"
- }
+ .name = "TLS 1.0 SRP-RSA without cert cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_srp_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 SRP-RSA without srp cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_srp_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 SRP-RSA with cred but invalid cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 SRP-RSA with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 SRP-RSA with cred and multiple certs",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 SRP without srp cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_srp_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.0"},
+ {
+ .name = "TLS 1.0 SRP with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.0",
+ .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.0"}
#endif
};
@@ -426,7 +399,7 @@ void doit(void)
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/tls11-cert-key-exchange.c b/tests/tls11-cert-key-exchange.c
index 30b8e078e4..69115cd873 100644
--- a/tests/tls11-cert-key-exchange.c
+++ b/tests/tls11-cert-key-exchange.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -39,34 +39,77 @@ void doit(void)
{
global_init();
- try_x509("TLS 1.1 with anon-ecdh", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ANON-ECDH", GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.1 with anon-dh", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ANON-DH", GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.1 with dhe-rsa no cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.1 with ecdhe x25519 rsa no cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.1 with ecdhe rsa no cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_with_key("TLS 1.1 with ecdhe ecdsa no cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_x509("TLS 1.1 with anon-ecdh",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ANON-ECDH",
+ GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.1 with anon-dh",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ANON-DH",
+ GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.1 with dhe-rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.1 with ecdhe x25519 rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.1 with ecdhe rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_with_key("TLS 1.1 with ecdhe ecdsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, NULL, NULL, 0, GNUTLS_CRT_X509,
+ GNUTLS_CRT_UNKNOWN);
- try_x509("TLS 1.1 with rsa no cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.1 with rsa no cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+RSA", GNUTLS_KX_RSA,
+ GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509_cli("TLS 1.1 with dhe-rsa cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, USE_CERT);
- try_x509_cli("TLS 1.1 with ecdhe-rsa cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, USE_CERT);
- try_x509_cli("TLS 1.1 with rsa cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, USE_CERT);
- try_with_key("TLS 1.1 with ecdhe ecdsa cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_x509_cli("TLS 1.1 with dhe-rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, USE_CERT);
+ try_x509_cli("TLS 1.1 with ecdhe-rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, USE_CERT);
+ try_x509_cli("TLS 1.1 with rsa cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
+ USE_CERT);
+ try_with_key("TLS 1.1 with ecdhe ecdsa cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, USE_CERT,
+ GNUTLS_CRT_X509, GNUTLS_CRT_X509);
- try_x509_cli("TLS 1.1 with dhe-rsa ask cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_x509_cli("TLS 1.1 with ecdhe-rsa ask cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_x509_cli("TLS 1.1 with rsa ask cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_with_key("TLS 1.1 with ecdhe ecdsa cert", "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, ASK_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_x509_cli("TLS 1.1 with dhe-rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_x509_cli("TLS 1.1 with ecdhe-rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_x509_cli("TLS 1.1 with rsa ask cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
+ ASK_CERT);
+ try_with_key("TLS 1.1 with ecdhe ecdsa cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, ASK_CERT,
+ GNUTLS_CRT_X509, GNUTLS_CRT_X509);
/* illegal setups */
server_priority = NULL;
try_with_key_fail("TLS 1.1 with rsa-pss cert and no cli cert",
- "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+DHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
- GNUTLS_E_UNWANTED_ALGORITHM, GNUTLS_E_AGAIN,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, NULL, NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.1:-KX-ALL:+DHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
+ GNUTLS_E_UNWANTED_ALGORITHM, GNUTLS_E_AGAIN,
+ &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key,
+ NULL, NULL);
gnutls_global_deinit();
}
diff --git a/tests/tls11-cipher-neg.c b/tests/tls11-cipher-neg.c
index b0698da75a..fb4371a6e3 100644
--- a/tests/tls11-cipher-neg.c
+++ b/tests/tls11-cipher-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the ciphersuite negotiation for various key exchange
@@ -39,85 +39,85 @@
test_case_st tests[] = {
{
- .name = "server TLS 1.1: AES-128-CBC (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-CBC"
- },
+ .name = "server TLS 1.1: AES-128-CBC (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-CBC"},
{
- .name = "both TLS 1.1: AES-128-CBC (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.1"
- },
+ .name = "both TLS 1.1: AES-128-CBC (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.1"},
{
- .name = "client TLS 1.1: AES-128-CBC (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:+AES-128-CBC",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"
- },
+ .name = "client TLS 1.1: AES-128-CBC (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio = "NORMAL:+AES-128-CBC",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"},
{
- .name = "both TLS 1.1: AES-128-CBC (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.1",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"
- },
+ .name = "both TLS 1.1: AES-128-CBC (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.1",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"},
{
- .name = "server TLS 1.1: 3DES-CBC (server)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+3DES-CBC"
- },
+ .name = "server TLS 1.1: 3DES-CBC (server)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+3DES-CBC"},
{
- .name = "both TLS 1.1: 3DES-CBC (server)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.1"
- },
+ .name = "both TLS 1.1: 3DES-CBC (server)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.1"},
{
- .name = "client TLS 1.1: 3DES-CBC (client)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+3DES-CBC",
- .client_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"
- },
+ .name = "client TLS 1.1: 3DES-CBC (client)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+3DES-CBC",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"},
{
- .name = "both TLS 1.1: 3DES-CBC (client)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.1",
- .client_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"
- },
+ .name = "both TLS 1.1: 3DES-CBC (client)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.1",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"},
{
- .name = "server TLS 1.1: ARCFOUR-128 (server)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+ARCFOUR-128"
- },
+ .name = "server TLS 1.1: ARCFOUR-128 (server)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+ARCFOUR-128"},
{
- .name = "both TLS 1.1: ARCFOUR-128 (server)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.1"
- },
+ .name = "both TLS 1.1: ARCFOUR-128 (server)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.1"},
{
- .name = "client TLS 1.1: ARCFOUR-128 (client)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+ARCFOUR-128",
- .client_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"
- },
+ .name = "client TLS 1.1: ARCFOUR-128 (client)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+ARCFOUR-128",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"},
{
- .name = "both TLS 1.1: ARCFOUR-128 (client)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.1",
- .client_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"
- }
+ .name = "both TLS 1.1: ARCFOUR-128 (client)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.1",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.1"}
};
void doit(void)
@@ -125,7 +125,7 @@ void doit(void)
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/tls11-server-kx-neg.c b/tests/tls11-server-kx-neg.c
index 67bfda91d5..6c300ab5f3 100644
--- a/tests/tls11-server-kx-neg.c
+++ b/tests/tls11-server-kx-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the ciphersuite negotiation for various key exchange
@@ -39,385 +39,358 @@
test_case_st tests[] = {
{
- .name = "TLS 1.1 ANON-DH without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ANON-DH with cred but no DH params",
- .server_ret = 0,
- .client_ret = 0,
- .have_anon_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ANON-DH with cred and DH params",
- .server_ret = 0,
- .client_ret = 0,
- .have_anon_cred = 1,
- .have_anon_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 DHE-RSA without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 DHE-RSA with cred but no DH params or cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 DHE-RSA with cred and cert but no DH params",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 DHE-RSA with cred and DH params but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 DHE-RSA with cred and incompatible cert and DH params",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 DHE-RSA with cred and cert and DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 DHE-RSA with cred and multiple certs and DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 DHE-PSK without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 DHE-PSK with cred but no DH params",
- .server_ret = 0,
- .client_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 DHE-PSK with cred DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .have_psk_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ECDHE-RSA without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ECDHE-RSA with cred but no common curve or cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.1 ECDHE-RSA with cred and cert but no common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.1 ECDHE-RSA with cred and common curve but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ECDHE-RSA with cred and incompatible cert and common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ECDHE-RSA with cred and cert and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ECDHE-RSA with cred and multiple certs and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
+ .name = "TLS 1.1 ANON-DH without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 ANON-DH with cred but no DH params",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_anon_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 ANON-DH with cred and DH params",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_anon_cred = 1,
+ .have_anon_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 DHE-RSA without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 DHE-RSA with cred but no DH params or cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 DHE-RSA with cred and cert but no DH params",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 DHE-RSA with cred and DH params but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name =
+ "TLS 1.1 DHE-RSA with cred and incompatible cert and DH params",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 DHE-RSA with cred and cert and DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 DHE-RSA with cred and multiple certs and DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 DHE-PSK without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 DHE-PSK with cred but no DH params",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 DHE-PSK with cred DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .have_psk_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 ECDHE-RSA without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 ECDHE-RSA with cred but no common curve or cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.1 ECDHE-RSA with cred and cert but no common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.1 ECDHE-RSA with cred and common curve but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name =
+ "TLS 1.1 ECDHE-RSA with cred and incompatible cert and common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 ECDHE-RSA with cred and cert and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name =
+ "TLS 1.1 ECDHE-RSA with cred and multiple certs and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.1"},
{
- .name = "TLS 1.1 ECDHE-ECDSA without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ECDHE-ECDSA with cred but no common curve or cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.1 ECDHE-ECDSA with cred and cert but no common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.1 ECDHE-ECDSA with cred and common curve but no ECDSA cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ECDHE-ECDSA with cred and common curve but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ECDHE-ECDSA with cred and cert and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ECDHE-ECDSA with cred and multiple certs and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1"
- },
+ .name = "TLS 1.1 ECDHE-ECDSA without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 ECDHE-ECDSA with cred but no common curve or cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.1 ECDHE-ECDSA with cred and cert but no common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name =
+ "TLS 1.1 ECDHE-ECDSA with cred and common curve but no ECDSA cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 ECDHE-ECDSA with cred and common curve but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 ECDHE-ECDSA with cred and cert and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name =
+ "TLS 1.1 ECDHE-ECDSA with cred and multiple certs and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.1"},
{
- .name = "TLS 1.1 ECDHE-PSK without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 ECDHE-PSK with cred but no common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.1 ECDHE-PSK with cred and common curve",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 RSA-PSK without cert cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 RSA-PSK without psk cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 RSA-PSK with cred but invalid cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 RSA-PSK with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 RSA-PSK with cred and multiple certs",
- .server_ret = 0,
- .client_ret = 0,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1"
- },
+ .name = "TLS 1.1 ECDHE-PSK without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 ECDHE-PSK with cred but no common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.1 ECDHE-PSK with cred and common curve",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 RSA-PSK without cert cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 RSA-PSK without psk cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 RSA-PSK with cred but invalid cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 RSA-PSK with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 RSA-PSK with cred and multiple certs",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.1"},
#ifdef ENABLE_SRP
{
- .name = "TLS 1.1 SRP-RSA without cert cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_srp_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 SRP-RSA without srp cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_srp_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 SRP-RSA with cred but invalid cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 SRP-RSA with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 SRP-RSA with cred and multiple certs",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 SRP without srp cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_srp_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.1"
- },
- {
- .name = "TLS 1.1 SRP with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.1",
- .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.1"
- }
+ .name = "TLS 1.1 SRP-RSA without cert cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_srp_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 SRP-RSA without srp cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_srp_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 SRP-RSA with cred but invalid cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 SRP-RSA with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 SRP-RSA with cred and multiple certs",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 SRP without srp cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_srp_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.1"},
+ {
+ .name = "TLS 1.1 SRP with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.1",
+ .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.1"}
#endif
};
@@ -426,7 +399,7 @@ void doit(void)
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/tls12-anon-upgrade.c b/tests/tls12-anon-upgrade.c
index 93cc3d8733..932951d4e9 100644
--- a/tests/tls12-anon-upgrade.c
+++ b/tests/tls12-anon-upgrade.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -42,101 +42,99 @@ static void tls_log_func(int level, const char *str)
}
static unsigned char ca_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwNDA0MTk1OTA1WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD46JAPKrTsNTHl\n"
-"zD06eIYBF/8Z+TR0wukp9Cdh8Sw77dODLjy/QrVKiDgDZZdyUc8Agsdr86i95O0p\n"
-"w19Np3a0wja0VC9uwppZrpuHsrWukwxIBXoViyBc20Y6Ce8j0scCbR10SP565qXC\n"
-"i8vr86S4xmQMRZMtwohP/GWQzt45jqkHPYHjdKzwo2b2XI7joDq0dvbr3MSONkGs\n"
-"z7A/1Bl3iH5keDTWjqpJRWqXE79IhGOhELy+gG4VLJDGHWCr2mq24b9Kirp+TTxl\n"
-"lUwJRbchqUqerlFdt1NgDoGaJyd73Sh0qcZzmEiOI2hGvBtG86tdQ6veC9dl05et\n"
-"pM+6RMABAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQUGD0RYr2H7kfjQUcBMxSTCDQnhu0wDQYJKoZIhvcNAQELBQAD\n"
-"ggEBALnHMubZ6WJ/XOFyDuo0imwg2onrPas3MuKT4+y0aHY943BgAOEc3jKitRjc\n"
-"qhb0IUD+NS7itRwNtCgI3v5Ym5nnQoVk+aOD/D724TjJ9XaPQJzOnuGaZX99VN2F\n"
-"sgwAtDXedlDQ+I6KLzLd6VW+UyWTG4qiRjOGDnG2kM1wAEOM27TzHV/YWleGjhtA\n"
-"bRHxkioOni5goNlTzazxF4v9VD2uinWrIFyZmF6vQuMm6rKFgq6higAU8uesFo7+\n"
-"3qpeRjNrPC4fNJUBvv+PC0WnP0PLnD/rY/ZcTYjLb/vJp1fiMJ5fU7jJklBhX2TE\n"
-"tstcP7FUV5HA/s9BxgAh0Z2wyyY=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIC4DCCAcigAwIBAgIBADANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwNDA0MTk1OTA1WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQD46JAPKrTsNTHl\n"
+ "zD06eIYBF/8Z+TR0wukp9Cdh8Sw77dODLjy/QrVKiDgDZZdyUc8Agsdr86i95O0p\n"
+ "w19Np3a0wja0VC9uwppZrpuHsrWukwxIBXoViyBc20Y6Ce8j0scCbR10SP565qXC\n"
+ "i8vr86S4xmQMRZMtwohP/GWQzt45jqkHPYHjdKzwo2b2XI7joDq0dvbr3MSONkGs\n"
+ "z7A/1Bl3iH5keDTWjqpJRWqXE79IhGOhELy+gG4VLJDGHWCr2mq24b9Kirp+TTxl\n"
+ "lUwJRbchqUqerlFdt1NgDoGaJyd73Sh0qcZzmEiOI2hGvBtG86tdQ6veC9dl05et\n"
+ "pM+6RMABAgMBAAGjQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQUGD0RYr2H7kfjQUcBMxSTCDQnhu0wDQYJKoZIhvcNAQELBQAD\n"
+ "ggEBALnHMubZ6WJ/XOFyDuo0imwg2onrPas3MuKT4+y0aHY943BgAOEc3jKitRjc\n"
+ "qhb0IUD+NS7itRwNtCgI3v5Ym5nnQoVk+aOD/D724TjJ9XaPQJzOnuGaZX99VN2F\n"
+ "sgwAtDXedlDQ+I6KLzLd6VW+UyWTG4qiRjOGDnG2kM1wAEOM27TzHV/YWleGjhtA\n"
+ "bRHxkioOni5goNlTzazxF4v9VD2uinWrIFyZmF6vQuMm6rKFgq6higAU8uesFo7+\n"
+ "3qpeRjNrPC4fNJUBvv+PC0WnP0PLnD/rY/ZcTYjLb/vJp1fiMJ5fU7jJklBhX2TE\n"
+ "tstcP7FUV5HA/s9BxgAh0Z2wyyY=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t ca_cert = { ca_cert_pem,
sizeof(ca_cert_pem)
};
static unsigned char server_cert_pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDIzCCAgugAwIBAgIMUz8PCR2sdRK56V6OMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
-"BgNVBAMTBENBLTEwIhgPMjAxNDA0MDQxOTU5MDVaGA85OTk5MTIzMTIzNTk1OVow\n"
-"EzERMA8GA1UEAxMIc2VydmVyLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
-"AoIBAQDZ3dCzh9gOTOiOb2dtrPu91fYYgC/ey0ACYjQxaru7FZwnuXPhQK9KHsIV\n"
-"YRIyo49wjKZddkHet2sbpFAAeETZh8UUWLRb/mupyaSJMycaYCNjLZCUJTztvXxJ\n"
-"CCNfbtgvKC+Vu1mu94KBPatslgvnsamH7AiL5wmwRRqdH/Z93XaEvuRG6Zk0Sh9q\n"
-"ZMdCboGfjtmGEJ1V+z5CR+IyH4sckzd8WJW6wBSEwgliGaXnc75xKtFWBZV2njNr\n"
-"8V1TOYOdLEbiF4wduVExL5TKq2ywNkRpUfK2I1BcWS5D9Te/QT7aSdE08rL6ztmZ\n"
-"IhILSrMOfoLnJ4lzXspz3XLlEuhnAgMBAAGjdzB1MAwGA1UdEwEB/wQCMAAwFAYD\n"
-"VR0RBA0wC4IJbG9jYWxob3N0MA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFJXR\n"
-"raRS5MVhEqaRE42A3S2BIj7UMB8GA1UdIwQYMBaAFP6S7AyMRO2RfkANgo8YsCl8\n"
-"JfJkMA0GCSqGSIb3DQEBCwUAA4IBAQCQ62+skMVZYrGbpab8RI9IG6xH8kEndvFj\n"
-"J7wBBZCOlcjOj+HQ7a2buF5zGKRwAOSznKcmvZ7l5DPdsd0t5/VT9LKSbQ6+CfGr\n"
-"Xs5qPaDJnRhZkOILCvXJ9qyO+79WNMsg9pWnxkTK7aWR5OYE+1Qw1jG681HMkWTm\n"
-"nt7et9bdiNNpvA+L55569XKbdtJLs3hn5gEQFgS7EaEj59aC4vzSTFcidowCoa43\n"
-"7JmfSfC9YaAIFH2vriyU0QNf2y7cG5Hpkge+U7uMzQrsT77Q3SDB9WkyPAFNSB4Q\n"
-"B/r+OtZXOnQhLlMV7h4XGlWruFEaOBVjFHSdMGUh+DtaLvd1bVXI\n"
-"-----END CERTIFICATE-----\n"
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
-"MCIYDzIwMTQwNDA0MTk1OTA1WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
-"BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvhyQfsUm3T0xK\n"
-"jiBXO3H6Y27b7lmCRYZQCmXCl2sUsGDL7V9biavTt3+sorWtH542/cTGDh5n8591\n"
-"7rVxAB/VASmN55O3fjZyFGrjusjhXBla0Yxe5rZ/7/Pjrq84T7gc/IXiX9Sums/c\n"
-"o9AeoykfhsjV2ubhh4h+8uPsHDTcAFTxq3mQaoldwnW2nmjDFzaKLtQdnyFf41o6\n"
-"nsJCK/J9PtpdCID5Zb+eQfu5Yhk1iUHe8a9TOstCHtgBq61YzufDHUQk3zsT+VZM\n"
-"20lDvSBnHdWLjxoea587JbkvtH8xRR8ThwABSb98qPnhJ8+A7mpO89QO1wxZM85A\n"
-"xEweQlMHAgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
-"ADAdBgNVHQ4EFgQU/pLsDIxE7ZF+QA2CjxiwKXwl8mQwHwYDVR0jBBgwFoAUGD0R\n"
-"Yr2H7kfjQUcBMxSTCDQnhu0wDQYJKoZIhvcNAQELBQADggEBANEXLUV+Z1PGTn7M\n"
-"3rPT/m/EamcrZJ3vFWrnfN91ws5llyRUKNhx6222HECh3xRSxH9YJONsbv2zY6sd\n"
-"ztY7lvckL4xOgWAjoCVTx3hqbZjDxpLRsvraw1PlqBHlRQVWLKlEQ55+tId2zgMX\n"
-"Z+wxM7FlU/6yWVPODIxrqYQd2KqaEp4aLIklw6Hi4HD6DnQJikjsJ6Noe0qyX1Tx\n"
-"uZ8mgP/G47Fe2d2H29kJ1iJ6hp1XOqyWrVIh/jONcnTvWS8aMqS3MU0EJH2Pb1Qa\n"
-"KGIvbd/3H9LykFTP/b7Imdv2fZxXIK8jC+jbF1w6rdBCVNA0p30X/jonoC3vynEK\n"
-"5cK0cgs=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDIzCCAgugAwIBAgIMUz8PCR2sdRK56V6OMA0GCSqGSIb3DQEBCwUAMA8xDTAL\n"
+ "BgNVBAMTBENBLTEwIhgPMjAxNDA0MDQxOTU5MDVaGA85OTk5MTIzMTIzNTk1OVow\n"
+ "EzERMA8GA1UEAxMIc2VydmVyLTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
+ "AoIBAQDZ3dCzh9gOTOiOb2dtrPu91fYYgC/ey0ACYjQxaru7FZwnuXPhQK9KHsIV\n"
+ "YRIyo49wjKZddkHet2sbpFAAeETZh8UUWLRb/mupyaSJMycaYCNjLZCUJTztvXxJ\n"
+ "CCNfbtgvKC+Vu1mu94KBPatslgvnsamH7AiL5wmwRRqdH/Z93XaEvuRG6Zk0Sh9q\n"
+ "ZMdCboGfjtmGEJ1V+z5CR+IyH4sckzd8WJW6wBSEwgliGaXnc75xKtFWBZV2njNr\n"
+ "8V1TOYOdLEbiF4wduVExL5TKq2ywNkRpUfK2I1BcWS5D9Te/QT7aSdE08rL6ztmZ\n"
+ "IhILSrMOfoLnJ4lzXspz3XLlEuhnAgMBAAGjdzB1MAwGA1UdEwEB/wQCMAAwFAYD\n"
+ "VR0RBA0wC4IJbG9jYWxob3N0MA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFJXR\n"
+ "raRS5MVhEqaRE42A3S2BIj7UMB8GA1UdIwQYMBaAFP6S7AyMRO2RfkANgo8YsCl8\n"
+ "JfJkMA0GCSqGSIb3DQEBCwUAA4IBAQCQ62+skMVZYrGbpab8RI9IG6xH8kEndvFj\n"
+ "J7wBBZCOlcjOj+HQ7a2buF5zGKRwAOSznKcmvZ7l5DPdsd0t5/VT9LKSbQ6+CfGr\n"
+ "Xs5qPaDJnRhZkOILCvXJ9qyO+79WNMsg9pWnxkTK7aWR5OYE+1Qw1jG681HMkWTm\n"
+ "nt7et9bdiNNpvA+L55569XKbdtJLs3hn5gEQFgS7EaEj59aC4vzSTFcidowCoa43\n"
+ "7JmfSfC9YaAIFH2vriyU0QNf2y7cG5Hpkge+U7uMzQrsT77Q3SDB9WkyPAFNSB4Q\n"
+ "B/r+OtZXOnQhLlMV7h4XGlWruFEaOBVjFHSdMGUh+DtaLvd1bVXI\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDATCCAemgAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDEwRDQS0w\n"
+ "MCIYDzIwMTQwNDA0MTk1OTA1WhgPOTk5OTEyMzEyMzU5NTlaMA8xDTALBgNVBAMT\n"
+ "BENBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvhyQfsUm3T0xK\n"
+ "jiBXO3H6Y27b7lmCRYZQCmXCl2sUsGDL7V9biavTt3+sorWtH542/cTGDh5n8591\n"
+ "7rVxAB/VASmN55O3fjZyFGrjusjhXBla0Yxe5rZ/7/Pjrq84T7gc/IXiX9Sums/c\n"
+ "o9AeoykfhsjV2ubhh4h+8uPsHDTcAFTxq3mQaoldwnW2nmjDFzaKLtQdnyFf41o6\n"
+ "nsJCK/J9PtpdCID5Zb+eQfu5Yhk1iUHe8a9TOstCHtgBq61YzufDHUQk3zsT+VZM\n"
+ "20lDvSBnHdWLjxoea587JbkvtH8xRR8ThwABSb98qPnhJ8+A7mpO89QO1wxZM85A\n"
+ "xEweQlMHAgMBAAGjZDBiMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcE\n"
+ "ADAdBgNVHQ4EFgQU/pLsDIxE7ZF+QA2CjxiwKXwl8mQwHwYDVR0jBBgwFoAUGD0R\n"
+ "Yr2H7kfjQUcBMxSTCDQnhu0wDQYJKoZIhvcNAQELBQADggEBANEXLUV+Z1PGTn7M\n"
+ "3rPT/m/EamcrZJ3vFWrnfN91ws5llyRUKNhx6222HECh3xRSxH9YJONsbv2zY6sd\n"
+ "ztY7lvckL4xOgWAjoCVTx3hqbZjDxpLRsvraw1PlqBHlRQVWLKlEQ55+tId2zgMX\n"
+ "Z+wxM7FlU/6yWVPODIxrqYQd2KqaEp4aLIklw6Hi4HD6DnQJikjsJ6Noe0qyX1Tx\n"
+ "uZ8mgP/G47Fe2d2H29kJ1iJ6hp1XOqyWrVIh/jONcnTvWS8aMqS3MU0EJH2Pb1Qa\n"
+ "KGIvbd/3H9LykFTP/b7Imdv2fZxXIK8jC+jbF1w6rdBCVNA0p30X/jonoC3vynEK\n"
+ "5cK0cgs=\n" "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
};
static unsigned char server_key_pem[] =
-"-----BEGIN RSA PRIVATE KEY-----\n"
-"MIIEpQIBAAKCAQEA2d3Qs4fYDkzojm9nbaz7vdX2GIAv3stAAmI0MWq7uxWcJ7lz\n"
-"4UCvSh7CFWESMqOPcIymXXZB3rdrG6RQAHhE2YfFFFi0W/5rqcmkiTMnGmAjYy2Q\n"
-"lCU87b18SQgjX27YLygvlbtZrveCgT2rbJYL57Gph+wIi+cJsEUanR/2fd12hL7k\n"
-"RumZNEofamTHQm6Bn47ZhhCdVfs+QkfiMh+LHJM3fFiVusAUhMIJYhml53O+cSrR\n"
-"VgWVdp4za/FdUzmDnSxG4heMHblRMS+UyqtssDZEaVHytiNQXFkuQ/U3v0E+2knR\n"
-"NPKy+s7ZmSISC0qzDn6C5yeJc17Kc91y5RLoZwIDAQABAoIBAQCRXAu5HPOsZufq\n"
-"0K2DYZz9BdqSckR+M8HbVUZZiksDAeIUJwoHyi6qF2eK+B86JiK4Bz+gsBw2ys3t\n"
-"vW2bQqM9N/boIl8D2fZfbCgZWkXGtUonC+mgzk+el4Rq/cEMFVqr6/YDwuKNeJpc\n"
-"PJc5dcsvpTvlcjgpj9bJAvJEz2SYiIUpvtG4WNMGGapVZZPDvWn4/isY+75T5oDf\n"
-"1X5jG0lN9uoUjcuGuThN7gxjwlRkcvEOPHjXc6rxfrWIDdiz/91V46PwpqVDpRrg\n"
-"ig6U7+ckS0Oy2v32x0DaDhwAfDJ2RNc9az6Z+11lmY3LPkjG/p8Klcmgvt4/lwkD\n"
-"OYRC5QGRAoGBAPFdud6nmVt9h1DL0o4R6snm6P3K81Ds765VWVmpzJkK3+bwe4PQ\n"
-"GQQ0I0zN4hXkDMwHETS+EVWllqkK/d4dsE3volYtyTti8zthIATlgSEJ81x/ChAQ\n"
-"vvXxgx+zPUnb1mUwy+X+6urTHe4bxN2ypg6ROIUmT+Hx1ITG40LRRiPTAoGBAOcT\n"
-"WR8DTrj42xbxAUpz9vxJ15ZMwuIpk3ShE6+CWqvaXHF22Ju4WFwRNlW2zVLH6UMt\n"
-"nNfOzyDoryoiu0+0mg0wSmgdJbtCSHoI2GeiAnjGn5i8flQlPQ8bdwwmU6g6I/EU\n"
-"QRbGK/2XLmlrGN52gVy9UX0NsAA5fEOsAJiFj1CdAoGBAN9i3nbq6O2bNVSa/8mL\n"
-"XaD1vGe/oQgh8gaIaYSpuXlfbjCAG+C4BZ81XgJkfj3CbfGbDNqimsqI0fKsAJ/F\n"
-"HHpVMgrOn3L+Np2bW5YMj0Fzwy+1SCvsQ8C+gJwjOLMV6syGp/+6udMSB55rRv3k\n"
-"rPnIf+YDumUke4tTw9wAcgkPAoGASHMkiji7QfuklbjSsslRMyDj21gN8mMevH6U\n"
-"cX7pduBsA5dDqu9NpPAwnQdHsSDE3i868d8BykuqQAfLut3hPylY6vPYlLHfj4Oe\n"
-"dj+xjrSX7YeMBE34qvfth32s1R4FjtzO25keyc/Q2XSew4FcZftlxVO5Txi3AXC4\n"
-"bxnRKXECgYEAva+og7/rK+ZjboJVNxhFrwHp9bXhz4tzrUaWNvJD2vKJ5ZcThHcX\n"
-"zCig8W7eXHLPLDhi9aWZ3kUZ1RLhrFc/6dujtVtU9z2w1tmn1I+4Zi6D6L4DzKdg\n"
-"nMRLFoXufs/qoaJTqa8sQvKa+ceJAF04+gGtw617cuaZdZ3SYRLR2dk=\n"
-"-----END RSA PRIVATE KEY-----\n";
+ "-----BEGIN RSA PRIVATE KEY-----\n"
+ "MIIEpQIBAAKCAQEA2d3Qs4fYDkzojm9nbaz7vdX2GIAv3stAAmI0MWq7uxWcJ7lz\n"
+ "4UCvSh7CFWESMqOPcIymXXZB3rdrG6RQAHhE2YfFFFi0W/5rqcmkiTMnGmAjYy2Q\n"
+ "lCU87b18SQgjX27YLygvlbtZrveCgT2rbJYL57Gph+wIi+cJsEUanR/2fd12hL7k\n"
+ "RumZNEofamTHQm6Bn47ZhhCdVfs+QkfiMh+LHJM3fFiVusAUhMIJYhml53O+cSrR\n"
+ "VgWVdp4za/FdUzmDnSxG4heMHblRMS+UyqtssDZEaVHytiNQXFkuQ/U3v0E+2knR\n"
+ "NPKy+s7ZmSISC0qzDn6C5yeJc17Kc91y5RLoZwIDAQABAoIBAQCRXAu5HPOsZufq\n"
+ "0K2DYZz9BdqSckR+M8HbVUZZiksDAeIUJwoHyi6qF2eK+B86JiK4Bz+gsBw2ys3t\n"
+ "vW2bQqM9N/boIl8D2fZfbCgZWkXGtUonC+mgzk+el4Rq/cEMFVqr6/YDwuKNeJpc\n"
+ "PJc5dcsvpTvlcjgpj9bJAvJEz2SYiIUpvtG4WNMGGapVZZPDvWn4/isY+75T5oDf\n"
+ "1X5jG0lN9uoUjcuGuThN7gxjwlRkcvEOPHjXc6rxfrWIDdiz/91V46PwpqVDpRrg\n"
+ "ig6U7+ckS0Oy2v32x0DaDhwAfDJ2RNc9az6Z+11lmY3LPkjG/p8Klcmgvt4/lwkD\n"
+ "OYRC5QGRAoGBAPFdud6nmVt9h1DL0o4R6snm6P3K81Ds765VWVmpzJkK3+bwe4PQ\n"
+ "GQQ0I0zN4hXkDMwHETS+EVWllqkK/d4dsE3volYtyTti8zthIATlgSEJ81x/ChAQ\n"
+ "vvXxgx+zPUnb1mUwy+X+6urTHe4bxN2ypg6ROIUmT+Hx1ITG40LRRiPTAoGBAOcT\n"
+ "WR8DTrj42xbxAUpz9vxJ15ZMwuIpk3ShE6+CWqvaXHF22Ju4WFwRNlW2zVLH6UMt\n"
+ "nNfOzyDoryoiu0+0mg0wSmgdJbtCSHoI2GeiAnjGn5i8flQlPQ8bdwwmU6g6I/EU\n"
+ "QRbGK/2XLmlrGN52gVy9UX0NsAA5fEOsAJiFj1CdAoGBAN9i3nbq6O2bNVSa/8mL\n"
+ "XaD1vGe/oQgh8gaIaYSpuXlfbjCAG+C4BZ81XgJkfj3CbfGbDNqimsqI0fKsAJ/F\n"
+ "HHpVMgrOn3L+Np2bW5YMj0Fzwy+1SCvsQ8C+gJwjOLMV6syGp/+6udMSB55rRv3k\n"
+ "rPnIf+YDumUke4tTw9wAcgkPAoGASHMkiji7QfuklbjSsslRMyDj21gN8mMevH6U\n"
+ "cX7pduBsA5dDqu9NpPAwnQdHsSDE3i868d8BykuqQAfLut3hPylY6vPYlLHfj4Oe\n"
+ "dj+xjrSX7YeMBE34qvfth32s1R4FjtzO25keyc/Q2XSew4FcZftlxVO5Txi3AXC4\n"
+ "bxnRKXECgYEAva+og7/rK+ZjboJVNxhFrwHp9bXhz4tzrUaWNvJD2vKJ5ZcThHcX\n"
+ "zCig8W7eXHLPLDhi9aWZ3kUZ1RLhrFc/6dujtVtU9z2w1tmn1I+4Zi6D6L4DzKdg\n"
+ "nMRLFoXufs/qoaJTqa8sQvKa+ceJAF04+gGtw617cuaZdZ3SYRLR2dk=\n"
+ "-----END RSA PRIVATE KEY-----\n";
const gnutls_datum_t server_key = { server_key_pem,
sizeof(server_key_pem)
@@ -152,8 +150,7 @@ static void try(const char *client_prio, gnutls_kx_algorithm_t client_kx)
gnutls_certificate_credentials_t serverx509cred;
gnutls_anon_server_credentials_t s_anoncred;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
@@ -179,8 +176,7 @@ static void try(const char *client_prio, gnutls_kx_algorithm_t client_kx)
gnutls_certificate_set_dh_params(serverx509cred, dh_params);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anoncred);
gnutls_priority_set_direct(server,
@@ -196,7 +192,9 @@ static void try(const char *client_prio, gnutls_kx_algorithm_t client_kx)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -207,11 +205,14 @@ static void try(const char *client_prio, gnutls_kx_algorithm_t client_kx)
gnutls_anon_allocate_client_credentials(&c_anoncred);
gnutls_credentials_set(client, GNUTLS_CRD_ANON, c_anoncred);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- ret = gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ARCFOUR-128:+ANON-ECDH", NULL);
+ ret =
+ gnutls_priority_set_direct(client,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ARCFOUR-128:+ANON-ECDH",
+ NULL);
if (ret < 0)
exit(1);
@@ -234,8 +235,7 @@ static void try(const char *client_prio, gnutls_kx_algorithm_t client_kx)
HANDSHAKE(client, server);
if (gnutls_kx_get(client) != client_kx) {
- fail("got unexpected key exchange algorithm: %s (expected %s)\n", gnutls_kx_get_name(gnutls_kx_get(client)),
- gnutls_kx_get_name(client_kx));
+ fail("got unexpected key exchange algorithm: %s (expected %s)\n", gnutls_kx_get_name(gnutls_kx_get(client)), gnutls_kx_get_name(client_kx));
exit(1);
}
@@ -256,7 +256,8 @@ static void try(const char *client_prio, gnutls_kx_algorithm_t client_kx)
gnutls_certificate_get_peers(client, &cert_list_size);
if (cert_list_size < 2) {
- fprintf(stderr, "received a certificate list of %d!\n", cert_list_size);
+ fprintf(stderr, "received a certificate list of %d!\n",
+ cert_list_size);
exit(1);
}
}
@@ -273,7 +274,8 @@ static void try(const char *client_prio, gnutls_kx_algorithm_t client_kx)
}
if (ret != strlen(MSG) || memcmp(MSG, buffer, ret) != 0) {
- fail("client: Error in data received. Expected %d, got %d\n", (int)strlen(MSG), ret);
+ fail("client: Error in data received. Expected %d, got %d\n",
+ (int)strlen(MSG), ret);
exit(1);
}
@@ -294,10 +296,13 @@ void doit(void)
{
global_init();
- try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:+ARCFOUR-128", GNUTLS_KX_DHE_RSA);
+ try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:+ARCFOUR-128",
+ GNUTLS_KX_DHE_RSA);
reset_buffers();
- try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:+ARCFOUR-128", GNUTLS_KX_ECDHE_RSA);
+ try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:+ARCFOUR-128",
+ GNUTLS_KX_ECDHE_RSA);
reset_buffers();
- try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA:+ARCFOUR-128", GNUTLS_KX_RSA);
+ try("NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA:+ARCFOUR-128",
+ GNUTLS_KX_RSA);
gnutls_global_deinit();
}
diff --git a/tests/tls12-cert-key-exchange.c b/tests/tls12-cert-key-exchange.c
index a9615b0d21..51aeed1e9f 100644
--- a/tests/tls12-cert-key-exchange.c
+++ b/tests/tls12-cert-key-exchange.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -40,138 +40,312 @@ void doit(void)
global_init();
/** X.509 tests **/
- try_x509("TLS 1.2 with anon-ecdh", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ANON-ECDH", GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.2 with anon-dh", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ANON-DH", GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.2 with dhe-rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.2 with ecdhe x25519 rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.2 with ecdhe rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_with_key("TLS 1.2 with ecdhe ecdsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_x509("TLS 1.2 with ecdhe rsa-pss sig no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.2 with anon-ecdh",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ANON-ECDH",
+ GNUTLS_KX_ANON_ECDH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.2 with anon-dh",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ANON-DH",
+ GNUTLS_KX_ANON_DH, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.2 with dhe-rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.2 with ecdhe x25519 rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.2 with ecdhe rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_with_key("TLS 1.2 with ecdhe ecdsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, NULL, NULL, 0, GNUTLS_CRT_X509,
+ GNUTLS_CRT_UNKNOWN);
+ try_x509("TLS 1.2 with ecdhe rsa-pss sig no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
/* Test RSA-PSS cert/key combo issues */
- try_with_key("TLS 1.2 with ecdhe with rsa-pss-sha256 key no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss2_cert, &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_with_key("TLS 1.2 with ecdhe with rsa-pss-sha256 key and 1 sig no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss2_cert, &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_with_key("TLS 1.2 with ecdhe with rsa-pss-sha256 key and rsa-pss-sha384 first sig no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss2_cert, &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_with_key("TLS 1.2 with ecdhe with rsa-pss-sha256 key and rsa-pss-sha512 first sig no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss2_cert, &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
-
- try_x509("TLS 1.2 with ecdhe rsa-pss no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_with_key("TLS 1.2 with ecdhe rsa-pss/rsa-pss no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_x509("TLS 1.2 with rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
- try_with_key("TLS 1.2 with ecdhe x25519 ed25519 no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA:-CURVE-ALL:+CURVE-X25519:-SIGN-ALL:+SIGN-EDDSA-ED25519", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_EDDSA_ED25519, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_eddsa_cert, &server_ca3_eddsa_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
-
- try_x509_cli("TLS 1.2 with dhe-rsa cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- try_x509_cli("TLS 1.2 with ecdhe-rsa cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- try_x509_cli("TLS 1.2 with rsa cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- try_with_key("TLS 1.2 with ecdhe ecdsa cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256, GNUTLS_SIGN_RSA_SHA256,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
- try_x509_cli("TLS 1.2 with ecdhe-rsa-pss cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, USE_CERT);
- try_with_key("TLS 1.2 with ecdhe-rsa-pss/rsa-pss cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_RSA_PSS_SHA256,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, &cli_ca3_rsa_pss_cert, &cli_ca3_rsa_pss_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
-
- try_with_key("TLS 1.2 with ecdhe x25519 ed25519 cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA:-CURVE-ALL:+CURVE-X25519:-SIGN-ALL:+SIGN-EDDSA-ED25519", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_EDDSA_ED25519, GNUTLS_SIGN_EDDSA_ED25519,
- &server_ca3_eddsa_cert, &server_ca3_eddsa_key, &server_ca3_eddsa_cert, &server_ca3_eddsa_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
-
- try_x509_cli("TLS 1.2 with dhe-rsa ask cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_x509_cli("TLS 1.2 with ecdhe-rsa ask cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_x509_cli("TLS 1.2 with rsa ask cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_with_key("TLS 1.2 with ecdhe ecdsa cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, ASK_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_with_key
+ ("TLS 1.2 with ecdhe with rsa-pss-sha256 key no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss2_cert,
+ &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_CRT_X509,
+ GNUTLS_CRT_UNKNOWN);
+ try_with_key
+ ("TLS 1.2 with ecdhe with rsa-pss-sha256 key and 1 sig no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss2_cert,
+ &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_CRT_X509,
+ GNUTLS_CRT_UNKNOWN);
+ try_with_key
+ ("TLS 1.2 with ecdhe with rsa-pss-sha256 key and rsa-pss-sha384 first sig no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss2_cert,
+ &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_CRT_X509,
+ GNUTLS_CRT_UNKNOWN);
+ try_with_key
+ ("TLS 1.2 with ecdhe with rsa-pss-sha256 key and rsa-pss-sha512 first sig no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss2_cert,
+ &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_CRT_X509,
+ GNUTLS_CRT_UNKNOWN);
+
+ try_x509("TLS 1.2 with ecdhe rsa-pss no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_with_key
+ ("TLS 1.2 with ecdhe rsa-pss/rsa-pss no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss_cert,
+ &server_ca3_rsa_pss_key, NULL, NULL, 0, GNUTLS_CRT_X509,
+ GNUTLS_CRT_UNKNOWN);
+ try_x509("TLS 1.2 with rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA", GNUTLS_KX_RSA,
+ GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_with_key
+ ("TLS 1.2 with ecdhe x25519 ed25519 no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA:-CURVE-ALL:+CURVE-X25519:-SIGN-ALL:+SIGN-EDDSA-ED25519",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_EDDSA_ED25519,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_eddsa_cert, &server_ca3_eddsa_key,
+ NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+
+ try_x509_cli("TLS 1.2 with dhe-rsa cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256, USE_CERT);
+ try_x509_cli("TLS 1.2 with ecdhe-rsa cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256, USE_CERT);
+ try_x509_cli("TLS 1.2 with rsa cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_RSA_SHA256,
+ USE_CERT);
+ try_with_key("TLS 1.2 with ecdhe ecdsa cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, USE_CERT,
+ GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_x509_cli("TLS 1.2 with ecdhe-rsa-pss cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, USE_CERT);
+ try_with_key
+ ("TLS 1.2 with ecdhe-rsa-pss/rsa-pss cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_RSA_PSS_SHA256, &server_ca3_rsa_pss_cert,
+ &server_ca3_rsa_pss_key, &cli_ca3_rsa_pss_cert,
+ &cli_ca3_rsa_pss_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+
+ try_with_key("TLS 1.2 with ecdhe x25519 ed25519 cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA:-CURVE-ALL:+CURVE-X25519:-SIGN-ALL:+SIGN-EDDSA-ED25519",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_EDDSA_ED25519,
+ GNUTLS_SIGN_EDDSA_ED25519, &server_ca3_eddsa_cert,
+ &server_ca3_eddsa_key, &server_ca3_eddsa_cert,
+ &server_ca3_eddsa_key, USE_CERT, GNUTLS_CRT_X509,
+ GNUTLS_CRT_X509);
+
+ try_x509_cli("TLS 1.2 with dhe-rsa ask cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_x509_cli("TLS 1.2 with ecdhe-rsa ask cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_x509_cli("TLS 1.2 with rsa ask cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
+ ASK_CERT);
+ try_with_key("TLS 1.2 with ecdhe ecdsa cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_ECDSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, ASK_CERT,
+ GNUTLS_CRT_X509, GNUTLS_CRT_X509);
/** Raw public-key tests **/
- try_rawpk("TLS 1.2 with dhe-rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:+CTYPE-ALL", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.2 with ecdhe x25519 rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.2 with ecdhe rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.2 with ecdhe rsa-pss sig no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.2 with ecdhe rsa-pss no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.2 with rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA:+CTYPE-ALL", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
-
- try_rawpk_cli("TLS 1.2 with dhe-rsa cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:+CTYPE-ALL", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- try_rawpk_cli("TLS 1.2 with ecdhe-rsa cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- try_rawpk_cli("TLS 1.2 with rsa cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA:+CTYPE-ALL", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_RSA_SHA256, USE_CERT);
- try_rawpk_cli("TLS 1.2 with ecdhe-rsa-pss cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, USE_CERT);
- try_rawpk_cli("TLS 1.2 with dhe-rsa ask cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:+CTYPE-ALL", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_rawpk_cli("TLS 1.2 with ecdhe-rsa ask cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
- try_rawpk_cli("TLS 1.2 with rsa ask cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA:+CTYPE-ALL", GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_rawpk("TLS 1.2 with dhe-rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:+CTYPE-ALL",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.2 with ecdhe x25519 rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.2 with ecdhe rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.2 with ecdhe rsa-pss sig no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.2 with ecdhe rsa-pss no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.2 with rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA:+CTYPE-ALL",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN);
+ try_rawpk_cli("TLS 1.2 with dhe-rsa cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:+CTYPE-ALL",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256, USE_CERT);
+ try_rawpk_cli("TLS 1.2 with ecdhe-rsa cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_RSA_SHA256, USE_CERT);
+ try_rawpk_cli("TLS 1.2 with rsa cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA:+CTYPE-ALL",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN,
+ GNUTLS_SIGN_RSA_SHA256, USE_CERT);
+ try_rawpk_cli("TLS 1.2 with ecdhe-rsa-pss cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, USE_CERT);
+ try_rawpk_cli("TLS 1.2 with dhe-rsa ask cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:+CTYPE-ALL",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_rawpk_cli("TLS 1.2 with ecdhe-rsa ask cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN, ASK_CERT);
+ try_rawpk_cli("TLS 1.2 with rsa ask cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+RSA:+CTYPE-ALL",
+ GNUTLS_KX_RSA, GNUTLS_SIGN_UNKNOWN, GNUTLS_SIGN_UNKNOWN,
+ ASK_CERT);
/** Illegal setups **/
server_priority = "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA";
- try_with_key_fail("TLS 1.2 with rsa cert and only RSA-PSS sig algos in client",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
- GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
- &server_ca3_localhost_cert, &server_ca3_key, NULL, NULL);
+ try_with_key_fail
+ ("TLS 1.2 with rsa cert and only RSA-PSS sig algos in client",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
+ GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
+ &server_ca3_localhost_cert, &server_ca3_key, NULL, NULL);
server_priority = NULL;
try_with_key_fail("TLS 1.2 with rsa cert and only RSA-PSS sig algos",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
- GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
- &server_ca3_localhost_cert, &server_ca3_key, NULL, NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-RSA:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
+ GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
+ &server_ca3_localhost_cert, &server_ca3_key, NULL,
+ NULL);
- try_with_key_fail("TLS 1.2 with rsa-pss cert and rsa cli cert with only RSA-PSS sig algos",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
- GNUTLS_E_AGAIN, GNUTLS_E_UNWANTED_ALGORITHM,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, &cli_ca3_cert, &cli_ca3_key);
+ try_with_key_fail
+ ("TLS 1.2 with rsa-pss cert and rsa cli cert with only RSA-PSS sig algos",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
+ GNUTLS_E_AGAIN, GNUTLS_E_UNWANTED_ALGORITHM,
+ &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, &cli_ca3_cert,
+ &cli_ca3_key);
try_with_key_fail("TLS 1.2 with rsa encryption cert without RSA",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2:-RSA",
- GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
- &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key, NULL, NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-RSA",
+ GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
+ &server_ca3_localhost_rsa_decrypt_cert,
+ &server_ca3_key, NULL, NULL);
- try_with_key_fail("TLS 1.2 with (forced) rsa encryption cert and no RSA - client should detect",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2:-RSA:%DEBUG_ALLOW_KEY_USAGE_VIOLATIONS",
- GNUTLS_E_AGAIN, GNUTLS_E_KEY_USAGE_VIOLATION,
- &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key, NULL, NULL);
+ try_with_key_fail
+ ("TLS 1.2 with (forced) rsa encryption cert and no RSA - client should detect",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-RSA:%DEBUG_ALLOW_KEY_USAGE_VIOLATIONS",
+ GNUTLS_E_AGAIN, GNUTLS_E_KEY_USAGE_VIOLATION,
+ &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key, NULL,
+ NULL);
try_with_key_fail("TLS 1.2 with client rsa encryption cert",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- GNUTLS_E_AGAIN, GNUTLS_E_KEY_USAGE_VIOLATION,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ GNUTLS_E_AGAIN, GNUTLS_E_KEY_USAGE_VIOLATION,
+ &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key,
+ &server_ca3_localhost_rsa_decrypt_cert,
+ &server_ca3_key);
- try_with_key_fail("TLS 1.2 with (forced) client rsa encryption cert - server should detect",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2:%DEBUG_ALLOW_KEY_USAGE_VIOLATIONS",
- GNUTLS_E_KEY_USAGE_VIOLATION, GNUTLS_E_AGAIN,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key);
+ try_with_key_fail
+ ("TLS 1.2 with (forced) client rsa encryption cert - server should detect",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:%DEBUG_ALLOW_KEY_USAGE_VIOLATIONS",
+ GNUTLS_E_KEY_USAGE_VIOLATION, GNUTLS_E_AGAIN,
+ &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key,
+ &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key);
- try_with_rawpk_key_fail("rawpk TLS 1.2 with rsa encryption cert without KX-RSA",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2:+CTYPE-RAWPK:-RSA",
- GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
- &rawpk_public_key1, &rawpk_private_key1, GNUTLS_KEY_KEY_ENCIPHERMENT, NULL, NULL, 0);
+ try_with_rawpk_key_fail
+ ("rawpk TLS 1.2 with rsa encryption cert without KX-RSA",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+CTYPE-RAWPK:-RSA",
+ GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN, &rawpk_public_key1,
+ &rawpk_private_key1, GNUTLS_KEY_KEY_ENCIPHERMENT, NULL, NULL, 0);
- try_with_rawpk_key_fail("rawpk TLS 1.2 with client rsa encryption cert without KX-RSA",
- "NORMAL:-VERS-ALL:+VERS-TLS1.2:+CTYPE-RAWPK:-RSA",
- GNUTLS_E_AGAIN, GNUTLS_E_KEY_USAGE_VIOLATION,
- &rawpk_public_key2, &rawpk_private_key2, 0, &rawpk_public_key1, &rawpk_private_key1, GNUTLS_KEY_KEY_ENCIPHERMENT);
+ try_with_rawpk_key_fail
+ ("rawpk TLS 1.2 with client rsa encryption cert without KX-RSA",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+CTYPE-RAWPK:-RSA", GNUTLS_E_AGAIN,
+ GNUTLS_E_KEY_USAGE_VIOLATION, &rawpk_public_key2,
+ &rawpk_private_key2, 0, &rawpk_public_key1, &rawpk_private_key1,
+ GNUTLS_KEY_KEY_ENCIPHERMENT);
#ifdef ENABLE_GOST
if (!gnutls_fips140_mode_enabled()) {
server_priority = "NORMAL:+CTYPE-ALL"
- ":+VKO-GOST-12"
- ":+GROUP-GOST-ALL"
- ":+CIPHER-GOST-ALL"
- ":+MAC-GOST-ALL"
- ":+SIGN-GOST-ALL";
- const char *gost_client_prio = "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL";
- try_with_key("TLS 1.2 with gost12 256 no-cli-cert (ctype X.509)", gost_client_prio, GNUTLS_KX_VKO_GOST_12, GNUTLS_SIGN_GOST_256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_gost12_256_cert, &server_ca3_gost12_256_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_with_key("TLS 1.2 with gost12 256 ask cli-cert (ctype X.509)", gost_client_prio, GNUTLS_KX_VKO_GOST_12, GNUTLS_SIGN_GOST_256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_gost12_256_cert, &server_ca3_gost12_256_key, NULL, NULL, ASK_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
- try_with_key("TLS 1.2 with gost12 256 use cli-cert (ctype X.509)", gost_client_prio, GNUTLS_KX_VKO_GOST_12, GNUTLS_SIGN_GOST_256, GNUTLS_SIGN_GOST_256,
- &server_ca3_gost12_256_cert, &server_ca3_gost12_256_key, &cligost12_256_ca3_cert, &cligost12_256_ca3_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
- try_with_key("TLS 1.2 with gost12 512 no-cli-cert (ctype X.509)", gost_client_prio, GNUTLS_KX_VKO_GOST_12, GNUTLS_SIGN_GOST_512, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_gost12_512_cert, &server_ca3_gost12_512_key, NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_with_key("TLS 1.2 with gost12 512 ask cli-cert (ctype X.509)", gost_client_prio, GNUTLS_KX_VKO_GOST_12, GNUTLS_SIGN_GOST_512, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_gost12_512_cert, &server_ca3_gost12_512_key, NULL, NULL, ASK_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
- try_with_key("TLS 1.2 with gost12 512 use cli-cert (ctype X.509)", gost_client_prio, GNUTLS_KX_VKO_GOST_12, GNUTLS_SIGN_GOST_512, GNUTLS_SIGN_GOST_512,
- &server_ca3_gost12_512_cert, &server_ca3_gost12_512_key, &cligost12_512_ca3_cert, &cligost12_512_ca3_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
- try_with_key("TLS 1.2 with gost12 512 use cli-cert gost12 256 (ctype X.509)", gost_client_prio, GNUTLS_KX_VKO_GOST_12, GNUTLS_SIGN_GOST_512, GNUTLS_SIGN_GOST_256,
- &server_ca3_gost12_512_cert, &server_ca3_gost12_512_key, &cligost12_256_ca3_cert, &cligost12_256_ca3_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ ":+VKO-GOST-12"
+ ":+GROUP-GOST-ALL"
+ ":+CIPHER-GOST-ALL" ":+MAC-GOST-ALL" ":+SIGN-GOST-ALL";
+ const char *gost_client_prio =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL";
+ try_with_key
+ ("TLS 1.2 with gost12 256 no-cli-cert (ctype X.509)",
+ gost_client_prio, GNUTLS_KX_VKO_GOST_12,
+ GNUTLS_SIGN_GOST_256, GNUTLS_SIGN_UNKNOWN,
+ &server_ca3_gost12_256_cert, &server_ca3_gost12_256_key,
+ NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_with_key
+ ("TLS 1.2 with gost12 256 ask cli-cert (ctype X.509)",
+ gost_client_prio, GNUTLS_KX_VKO_GOST_12,
+ GNUTLS_SIGN_GOST_256, GNUTLS_SIGN_UNKNOWN,
+ &server_ca3_gost12_256_cert, &server_ca3_gost12_256_key,
+ NULL, NULL, ASK_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_with_key
+ ("TLS 1.2 with gost12 256 use cli-cert (ctype X.509)",
+ gost_client_prio, GNUTLS_KX_VKO_GOST_12,
+ GNUTLS_SIGN_GOST_256, GNUTLS_SIGN_GOST_256,
+ &server_ca3_gost12_256_cert, &server_ca3_gost12_256_key,
+ &cligost12_256_ca3_cert, &cligost12_256_ca3_key, USE_CERT,
+ GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_with_key
+ ("TLS 1.2 with gost12 512 no-cli-cert (ctype X.509)",
+ gost_client_prio, GNUTLS_KX_VKO_GOST_12,
+ GNUTLS_SIGN_GOST_512, GNUTLS_SIGN_UNKNOWN,
+ &server_ca3_gost12_512_cert, &server_ca3_gost12_512_key,
+ NULL, NULL, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_with_key
+ ("TLS 1.2 with gost12 512 ask cli-cert (ctype X.509)",
+ gost_client_prio, GNUTLS_KX_VKO_GOST_12,
+ GNUTLS_SIGN_GOST_512, GNUTLS_SIGN_UNKNOWN,
+ &server_ca3_gost12_512_cert, &server_ca3_gost12_512_key,
+ NULL, NULL, ASK_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_with_key
+ ("TLS 1.2 with gost12 512 use cli-cert (ctype X.509)",
+ gost_client_prio, GNUTLS_KX_VKO_GOST_12,
+ GNUTLS_SIGN_GOST_512, GNUTLS_SIGN_GOST_512,
+ &server_ca3_gost12_512_cert, &server_ca3_gost12_512_key,
+ &cligost12_512_ca3_cert, &cligost12_512_ca3_key, USE_CERT,
+ GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_with_key
+ ("TLS 1.2 with gost12 512 use cli-cert gost12 256 (ctype X.509)",
+ gost_client_prio, GNUTLS_KX_VKO_GOST_12,
+ GNUTLS_SIGN_GOST_512, GNUTLS_SIGN_GOST_256,
+ &server_ca3_gost12_512_cert, &server_ca3_gost12_512_key,
+ &cligost12_256_ca3_cert, &cligost12_256_ca3_key, USE_CERT,
+ GNUTLS_CRT_X509, GNUTLS_CRT_X509);
server_priority = NULL;
}
#endif
diff --git a/tests/tls12-cipher-neg.c b/tests/tls12-cipher-neg.c
index f437be3d15..501c2b9b76 100644
--- a/tests/tls12-cipher-neg.c
+++ b/tests/tls12-cipher-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the ciphersuite negotiation for various key exchange
@@ -39,201 +39,215 @@
test_case_st tests[] = {
{
- .name = "server TLS 1.2: NULL (server)",
- .not_on_fips = 1,
- .cipher = GNUTLS_CIPHER_NULL,
- .server_prio = "NORMAL:-CIPHER-ALL:+NULL:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+NULL",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(NULL)-(SHA1)",
- },
- {
- .name = "client TLS 1.2: NULL (client)",
- .not_on_fips = 1,
- .cipher = GNUTLS_CIPHER_NULL,
- .server_prio = "NORMAL:+NULL",
- .client_prio = "NORMAL:-CIPHER-ALL:+NULL:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(NULL)-(SHA1)",
- },
- {
- .name = "server TLS 1.2: AES-128-GCM (server)",
- .cipher = GNUTLS_CIPHER_AES_128_GCM,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-GCM",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-GCM)"
- },
- {
- .name = "both TLS 1.2: AES-128-GCM (server)",
- .cipher = GNUTLS_CIPHER_AES_128_GCM,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-GCM:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-GCM)"
- },
- {
- .name = "client TLS 1.2: AES-128-GCM (client)",
- .cipher = GNUTLS_CIPHER_AES_128_GCM,
- .server_prio = "NORMAL:+AES-128-GCM",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-GCM)"
- },
- {
- .name = "both TLS 1.2: AES-128-GCM (client)",
- .cipher = GNUTLS_CIPHER_AES_128_GCM,
- .server_prio = "NORMAL:+AES-128-GCM:+VERS-TLS1.2",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-GCM)"
- },
- {
- .name = "server TLS 1.2: AES-128-CCM (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CCM,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-CCM",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CCM)"
- },
- {
- .name = "both TLS 1.2: AES-128-CCM (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CCM,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-CCM:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CCM)"
- },
- {
- .name = "client TLS 1.2: AES-128-CCM (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CCM,
- .server_prio = "NORMAL:+AES-128-CCM",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CCM)"
- },
- {
- .name = "both TLS 1.2: AES-128-CCM (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CCM,
- .server_prio = "NORMAL:+AES-128-CCM:+VERS-TLS1.2",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CCM)"
- },
- {
- .name = "server TLS 1.2: CHACHA20-POLY (server)",
- .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+CHACHA20-POLY1305",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(CHACHA20-POLY1305)"
- },
- {
- .name = "both TLS 1.2: CHACHA20-POLY (server)",
- .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+CHACHA20-POLY1305:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(CHACHA20-POLY1305)"
- },
- {
- .name = "client TLS 1.2: CHACHA20-POLY (client)",
- .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+CHACHA20-POLY1305",
- .client_prio = "NORMAL:-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(CHACHA20-POLY1305)"
- },
- {
- .name = "both TLS 1.2: CHACHA20-POLY (client)",
- .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+CHACHA20-POLY1305:+VERS-TLS1.2",
- .client_prio = "NORMAL:-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(CHACHA20-POLY1305)"
- },
- {
- .name = "server TLS 1.2: AES-128-CBC (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-CBC",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CBC)-(SHA1)"
- },
- {
- .name = "both TLS 1.2: AES-128-CBC (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CBC)-(SHA1)"
- },
- {
- .name = "client TLS 1.2: AES-128-CBC (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:+AES-128-CBC",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CBC)-(SHA1)"
- },
- {
- .name = "both TLS 1.2: AES-128-CBC (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CBC,
- .server_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.2",
- .client_prio = "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CBC)-(SHA1)"
- },
- {
- .name = "server TLS 1.2: 3DES-CBC (server)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+3DES-CBC",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(3DES-CBC)-(SHA1)"
- },
- {
- .name = "both TLS 1.2: 3DES-CBC (server)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(3DES-CBC)-(SHA1)"
- },
- {
- .name = "client TLS 1.2: 3DES-CBC (client)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+3DES-CBC",
- .client_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(3DES-CBC)-(SHA1)"
- },
- {
- .name = "both TLS 1.2: 3DES-CBC (client)",
- .cipher = GNUTLS_CIPHER_3DES_CBC,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.2",
- .client_prio = "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(3DES-CBC)-(SHA1)"
- },
- {
- .name = "server TLS 1.2: ARCFOUR-128 (server)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+ARCFOUR-128",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(ARCFOUR-128)-(SHA1)"
- },
- {
- .name = "both TLS 1.2: ARCFOUR-128 (server)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
- .client_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(ARCFOUR-128)-(SHA1)"
- },
- {
- .name = "client TLS 1.2: ARCFOUR-128 (client)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+ARCFOUR-128",
- .client_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(ARCFOUR-128)-(SHA1)"
- },
- {
- .name = "both TLS 1.2: ARCFOUR-128 (client)",
- .cipher = GNUTLS_CIPHER_ARCFOUR_128,
- .not_on_fips = 1,
- .server_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.2",
- .client_prio = "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(ARCFOUR-128)-(SHA1)"
- }
+ .name = "server TLS 1.2: NULL (server)",
+ .not_on_fips = 1,
+ .cipher = GNUTLS_CIPHER_NULL,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+NULL:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+NULL",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(NULL)-(SHA1)",
+ },
+ {
+ .name = "client TLS 1.2: NULL (client)",
+ .not_on_fips = 1,
+ .cipher = GNUTLS_CIPHER_NULL,
+ .server_prio = "NORMAL:+NULL",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+NULL:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(NULL)-(SHA1)",
+ },
+ {
+ .name = "server TLS 1.2: AES-128-GCM (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_GCM,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-GCM",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-GCM)"},
+ {
+ .name = "both TLS 1.2: AES-128-GCM (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_GCM,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-GCM:+VERS-TLS1.2",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-GCM)"},
+ {
+ .name = "client TLS 1.2: AES-128-GCM (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_GCM,
+ .server_prio = "NORMAL:+AES-128-GCM",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-GCM)"},
+ {
+ .name = "both TLS 1.2: AES-128-GCM (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_GCM,
+ .server_prio = "NORMAL:+AES-128-GCM:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-GCM)"},
+ {
+ .name = "server TLS 1.2: AES-128-CCM (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CCM,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-CCM",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CCM)"},
+ {
+ .name = "both TLS 1.2: AES-128-CCM (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CCM,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-CCM:+VERS-TLS1.2",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CCM)"},
+ {
+ .name = "client TLS 1.2: AES-128-CCM (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CCM,
+ .server_prio = "NORMAL:+AES-128-CCM",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CCM)"},
+ {
+ .name = "both TLS 1.2: AES-128-CCM (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CCM,
+ .server_prio = "NORMAL:+AES-128-CCM:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CCM)"},
+ {
+ .name = "server TLS 1.2: CHACHA20-POLY (server)",
+ .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+CHACHA20-POLY1305",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(CHACHA20-POLY1305)"},
+ {
+ .name = "both TLS 1.2: CHACHA20-POLY (server)",
+ .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+CHACHA20-POLY1305:+VERS-TLS1.2",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(CHACHA20-POLY1305)"},
+ {
+ .name = "client TLS 1.2: CHACHA20-POLY (client)",
+ .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+CHACHA20-POLY1305",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(CHACHA20-POLY1305)"},
+ {
+ .name = "both TLS 1.2: CHACHA20-POLY (client)",
+ .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+CHACHA20-POLY1305:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(CHACHA20-POLY1305)"},
+ {
+ .name = "server TLS 1.2: AES-128-CBC (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-CBC",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CBC)-(SHA1)"},
+ {
+ .name = "both TLS 1.2: AES-128-CBC (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.2",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CBC)-(SHA1)"},
+ {
+ .name = "client TLS 1.2: AES-128-CBC (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio = "NORMAL:+AES-128-CBC",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CBC)-(SHA1)"},
+ {
+ .name = "both TLS 1.2: AES-128-CBC (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CBC,
+ .server_prio = "NORMAL:+AES-128-CBC:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+AES-128-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(AES-128-CBC)-(SHA1)"},
+ {
+ .name = "server TLS 1.2: 3DES-CBC (server)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+3DES-CBC",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(3DES-CBC)-(SHA1)"},
+ {
+ .name = "both TLS 1.2: 3DES-CBC (server)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.2",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(3DES-CBC)-(SHA1)"},
+ {
+ .name = "client TLS 1.2: 3DES-CBC (client)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+3DES-CBC",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(3DES-CBC)-(SHA1)"},
+ {
+ .name = "both TLS 1.2: 3DES-CBC (client)",
+ .cipher = GNUTLS_CIPHER_3DES_CBC,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+3DES-CBC:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+3DES-CBC:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(3DES-CBC)-(SHA1)"},
+ {
+ .name = "server TLS 1.2: ARCFOUR-128 (server)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+ARCFOUR-128",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(ARCFOUR-128)-(SHA1)"},
+ {
+ .name = "both TLS 1.2: ARCFOUR-128 (server)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2:%SERVER_PRECEDENCE",
+ .client_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.2",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(ARCFOUR-128)-(SHA1)"},
+ {
+ .name = "client TLS 1.2: ARCFOUR-128 (client)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+ARCFOUR-128",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(ARCFOUR-128)-(SHA1)"},
+ {
+ .name = "both TLS 1.2: ARCFOUR-128 (client)",
+ .cipher = GNUTLS_CIPHER_ARCFOUR_128,
+ .not_on_fips = 1,
+ .server_prio = "NORMAL:+ARCFOUR-128:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-CIPHER-ALL:+ARCFOUR-128:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .desc =
+ "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(ARCFOUR-128)-(SHA1)"}
};
void doit(void)
@@ -241,7 +255,7 @@ void doit(void)
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/tls12-ffdhe.c b/tests/tls12-ffdhe.c
index 73a758d19c..08747620af 100644
--- a/tests/tls12-ffdhe.c
+++ b/tests/tls12-ffdhe.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -48,14 +48,15 @@ typedef struct test_case_st {
unsigned have_ecc_sign_cert;
unsigned have_rsa_decrypt_cert;
unsigned not_on_fips;
- unsigned group; /* expected */
+ unsigned group; /* expected */
const char *client_prio;
const char *server_prio;
} test_case_st;
static int
serv_psk_func(gnutls_session_t session, const char *username,
- gnutls_datum_t * key) {
+ gnutls_datum_t * key)
+{
key->data = gnutls_malloc(4);
assert(key->data != NULL);
key->data[0] = 0xDE;
@@ -66,7 +67,7 @@ serv_psk_func(gnutls_session_t session, const char *username,
return 0;
}
-static void try(test_case_st *test)
+static void try(test_case_st * test)
{
int sret, cret;
gnutls_anon_client_credentials_t c_anon_cred;
@@ -77,7 +78,7 @@ static void try(test_case_st *test)
gnutls_certificate_credentials_t c_cert_cred;
gnutls_session_t server, client;
- const gnutls_datum_t pskkey = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t pskkey = { (void *)"DEADBEEF", 8 };
if (test->not_on_fips && gnutls_fips140_mode_enabled()) {
success("Skipping %s...\n", test->name);
@@ -93,33 +94,41 @@ static void try(test_case_st *test)
assert(gnutls_certificate_allocate_credentials(&s_cert_cred) >= 0);
assert(gnutls_certificate_allocate_credentials(&c_cert_cred) >= 0);
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
- assert(gnutls_init(&client, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
+ assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
if (test->have_anon_cred) {
gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anon_cred);
}
if (test->have_cert_cred) {
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, s_cert_cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
+ s_cert_cred);
}
if (test->have_psk_cred) {
gnutls_credentials_set(server, GNUTLS_CRD_PSK, s_psk_cred);
- gnutls_psk_set_server_credentials_function(s_psk_cred, serv_psk_func);
+ gnutls_psk_set_server_credentials_function(s_psk_cred,
+ serv_psk_func);
}
if (test->have_rsa_decrypt_cert) {
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_localhost_rsa_decrypt_cert,
+ &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
}
if (test->have_ecc_sign_cert) {
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, GNUTLS_X509_FMT_PEM) >= 0);
}
if (test->have_rsa_sign_cert) {
- assert(gnutls_certificate_set_x509_key_mem(s_cert_cred, &server_ca3_localhost_rsa_sign_cert, &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (s_cert_cred, &server_ca3_localhost_rsa_sign_cert,
+ &server_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
}
/* client does everything */
@@ -127,7 +136,8 @@ static void try(test_case_st *test)
gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, c_cert_cred);
gnutls_credentials_set(client, GNUTLS_CRD_PSK, c_psk_cred);
- assert(gnutls_psk_set_client_credentials(c_psk_cred, "psk", &pskkey, GNUTLS_PSK_KEY_HEX) >= 0);
+ assert(gnutls_psk_set_client_credentials
+ (c_psk_cred, "psk", &pskkey, GNUTLS_PSK_KEY_HEX) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -150,14 +160,20 @@ static void try(test_case_st *test)
}
if (test->group) {
- if (test->group == GNUTLS_GROUP_FFDHE2048 || test->group == GNUTLS_GROUP_FFDHE3072 ||
- test->group == GNUTLS_GROUP_FFDHE4096 || test->group == GNUTLS_GROUP_FFDHE6144 ||
- test->group == GNUTLS_GROUP_FFDHE8192) {
- if (!(gnutls_session_get_flags(client) & GNUTLS_SFLAGS_RFC7919)) {
+ if (test->group == GNUTLS_GROUP_FFDHE2048
+ || test->group == GNUTLS_GROUP_FFDHE3072
+ || test->group == GNUTLS_GROUP_FFDHE4096
+ || test->group == GNUTLS_GROUP_FFDHE6144
+ || test->group == GNUTLS_GROUP_FFDHE8192) {
+ if (!
+ (gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_RFC7919)) {
fail("%s: gnutls_session_get_flags(client) reports that no RFC7919 negotiation was performed!\n", test->name);
}
- if (!(gnutls_session_get_flags(server) & GNUTLS_SFLAGS_RFC7919)) {
+ if (!
+ (gnutls_session_get_flags(server) &
+ GNUTLS_SFLAGS_RFC7919)) {
fail("%s: gnutls_session_get_flags(server) reports that no RFC7919 negotiation was performed!\n", test->name);
}
}
@@ -176,209 +192,225 @@ static void try(test_case_st *test)
test_case_st tests[] = {
{
- .name = "TLS 1.2 ANON-DH (defaults)",
- .client_ret = 0,
- .server_ret = 0,
- .have_anon_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2"
- },
+ .name = "TLS 1.2 ANON-DH (defaults)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_anon_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2"},
{
- .name = "TLS 1.2 ANON-DH (FFDHE2048)",
- .group = GNUTLS_GROUP_FFDHE2048,
- .client_ret = 0,
- .server_ret = 0,
- .have_anon_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048"
- },
+ .name = "TLS 1.2 ANON-DH (FFDHE2048)",
+ .group = GNUTLS_GROUP_FFDHE2048,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_anon_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048"},
{
- .name = "TLS 1.2 ANON-DH (FFDHE3072)",
- .group = GNUTLS_GROUP_FFDHE3072,
- .client_ret = 0,
- .server_ret = 0,
- .have_anon_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072"
- },
+ .name = "TLS 1.2 ANON-DH (FFDHE3072)",
+ .group = GNUTLS_GROUP_FFDHE3072,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_anon_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072"},
{
- .name = "TLS 1.2 ANON-DH (FFDHE4096)",
- .group = GNUTLS_GROUP_FFDHE4096,
- .client_ret = 0,
- .server_ret = 0,
- .have_anon_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096"
- },
+ .name = "TLS 1.2 ANON-DH (FFDHE4096)",
+ .group = GNUTLS_GROUP_FFDHE4096,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_anon_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096"},
{
- .name = "TLS 1.2 ANON-DH (FFDHE6144)",
- .group = GNUTLS_GROUP_FFDHE6144,
- .client_ret = 0,
- .server_ret = 0,
- .have_anon_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144"
- },
+ .name = "TLS 1.2 ANON-DH (FFDHE6144)",
+ .group = GNUTLS_GROUP_FFDHE6144,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_anon_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144"},
{
- .name = "TLS 1.2 ANON-DH (FFDHE8192)",
- .group = GNUTLS_GROUP_FFDHE8192,
- .client_ret = 0,
- .server_ret = 0,
- .have_anon_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192"
- },
+ .name = "TLS 1.2 ANON-DH (FFDHE8192)",
+ .group = GNUTLS_GROUP_FFDHE8192,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_anon_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192"},
{
- .name = "TLS 1.2 DHE-PSK (defaults)",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
+ .name = "TLS 1.2 DHE-PSK (defaults)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2"},
{
- .name = "TLS 1.2 DHE-PSK (FFDHE2048)",
- .client_ret = 0,
- .server_ret = 0,
- .group = GNUTLS_GROUP_FFDHE2048,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048"
- },
+ .name = "TLS 1.2 DHE-PSK (FFDHE2048)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .group = GNUTLS_GROUP_FFDHE2048,
+ .have_psk_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048"},
{
- .name = "TLS 1.2 DHE-PSK (FFDHE3072)",
- .group = GNUTLS_GROUP_FFDHE3072,
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072"
- },
+ .name = "TLS 1.2 DHE-PSK (FFDHE3072)",
+ .group = GNUTLS_GROUP_FFDHE3072,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072"},
{
- .name = "TLS 1.2 DHE-PSK (FFDHE4096)",
- .group = GNUTLS_GROUP_FFDHE4096,
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096"
- },
+ .name = "TLS 1.2 DHE-PSK (FFDHE4096)",
+ .group = GNUTLS_GROUP_FFDHE4096,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096"},
{
- .name = "TLS 1.2 DHE-PSK (FFDHE6144)",
- .client_ret = 0,
- .server_ret = 0,
- .group = GNUTLS_GROUP_FFDHE6144,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144"
- },
+ .name = "TLS 1.2 DHE-PSK (FFDHE6144)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .group = GNUTLS_GROUP_FFDHE6144,
+ .have_psk_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144"},
{
- .name = "TLS 1.2 DHE-PSK (FFDHE8192)",
- .group = GNUTLS_GROUP_FFDHE8192,
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192"
- },
+ .name = "TLS 1.2 DHE-PSK (FFDHE8192)",
+ .group = GNUTLS_GROUP_FFDHE8192,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192"},
{
- .name = "TLS 1.2 DHE-RSA (defaults)",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
+ .name = "TLS 1.2 DHE-RSA (defaults)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
{
- .name = "TLS 1.2 DHE-RSA (FFDHE2048)",
- .group = GNUTLS_GROUP_FFDHE2048,
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048"
- },
+ .name = "TLS 1.2 DHE-RSA (FFDHE2048)",
+ .group = GNUTLS_GROUP_FFDHE2048,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE2048"},
{
- .name = "TLS 1.2 DHE-RSA (FFDHE3072)",
- .group = GNUTLS_GROUP_FFDHE3072,
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072"
- },
+ .name = "TLS 1.2 DHE-RSA (FFDHE3072)",
+ .group = GNUTLS_GROUP_FFDHE3072,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072"},
{
- .name = "TLS 1.2 DHE-RSA (FFDHE4096)",
- .group = GNUTLS_GROUP_FFDHE4096,
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096"
- },
+ .name = "TLS 1.2 DHE-RSA (FFDHE4096)",
+ .group = GNUTLS_GROUP_FFDHE4096,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE4096"},
{
- .name = "TLS 1.2 DHE-RSA (FFDHE6144)",
- .group = GNUTLS_GROUP_FFDHE6144,
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144"
- },
+ .name = "TLS 1.2 DHE-RSA (FFDHE6144)",
+ .group = GNUTLS_GROUP_FFDHE6144,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE6144"},
{
- .name = "TLS 1.2 DHE-RSA (FFDHE8192)",
- .group = GNUTLS_GROUP_FFDHE8192,
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192"
- },
+ .name = "TLS 1.2 DHE-RSA (FFDHE8192)",
+ .group = GNUTLS_GROUP_FFDHE8192,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192"},
{
- .name = "TLS 1.2 DHE-RSA (incompatible options)",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072"
- },
+ .name = "TLS 1.2 DHE-RSA (incompatible options)",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072"},
{
- .name = "TLS 1.2 DHE-RSA (complex neg)",
- .group = GNUTLS_GROUP_FFDHE3072,
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192:+GROUP-FFDHE2048:+GROUP-FFDHE3072",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072"
- },
+ .name = "TLS 1.2 DHE-RSA (complex neg)",
+ .group = GNUTLS_GROUP_FFDHE3072,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192:+GROUP-FFDHE2048:+GROUP-FFDHE3072",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072"},
{
- .name = "TLS 1.2 DHE-RSA (negotiation over ECDHE)",
- .group = GNUTLS_GROUP_FFDHE3072,
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-FFDHE8192:+GROUP-FFDHE2048:+GROUP-FFDHE3072",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-FFDHE3072"
- },
+ .name = "TLS 1.2 DHE-RSA (negotiation over ECDHE)",
+ .group = GNUTLS_GROUP_FFDHE3072,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-FFDHE8192:+GROUP-FFDHE2048:+GROUP-FFDHE3072",
+ .client_prio =
+ "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-FFDHE3072"},
{
- .name = "TLS 1.2 DHE-RSA (negotiation over ECDHE - prio on ECDHE)",
- .group = GNUTLS_GROUP_SECP256R1,
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192:+GROUP-FFDHE2048:+GROUP-FFDHE3072:+GROUP-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072:+GROUP-SECP256R1"
- }
+ .name = "TLS 1.2 DHE-RSA (negotiation over ECDHE - prio on ECDHE)",
+ .group = GNUTLS_GROUP_SECP256R1,
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE8192:+GROUP-FFDHE2048:+GROUP-FFDHE3072:+GROUP-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-FFDHE3072:+GROUP-SECP256R1"}
};
void doit(void)
@@ -386,7 +418,7 @@ void doit(void)
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/tls12-invalid-key-exchanges.c b/tests/tls12-invalid-key-exchanges.c
index 1c9e6c9231..a21ed76280 100644
--- a/tests/tls12-invalid-key-exchanges.c
+++ b/tests/tls12-invalid-key-exchanges.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -45,23 +45,21 @@ static void tls_log_func(int level, const char *str)
static
void try_with_key(const char *name,
- const char *server_prio,
- const char *client_prio,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *client_cert,
- const gnutls_datum_t *client_key,
- unsigned cert_flags,
- int exp_error_server,
- int exp_error_client)
+ const char *server_prio,
+ const char *client_prio,
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * client_cert,
+ const gnutls_datum_t * client_key,
+ unsigned cert_flags,
+ int exp_error_server, int exp_error_client)
{
int ret;
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
gnutls_anon_server_credentials_t s_anoncred;
gnutls_dh_params_t dh_params;
- const gnutls_datum_t p3 =
- { (unsigned char *) pkcs3, strlen(pkcs3) };
+ const gnutls_datum_t p3 = { (unsigned char *)pkcs3, strlen(pkcs3) };
gnutls_session_t server;
int sret = GNUTLS_E_AGAIN;
/* Client stuff. */
@@ -77,8 +75,8 @@ void try_with_key(const char *name,
gnutls_certificate_allocate_credentials(&serverx509cred);
ret = gnutls_certificate_set_x509_key_mem(serverx509cred,
- serv_cert, serv_key,
- GNUTLS_X509_FMT_PEM);
+ serv_cert, serv_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("Could not set key/cert: %s\n", gnutls_strerror(ret));
}
@@ -89,8 +87,7 @@ void try_with_key(const char *name,
gnutls_anon_set_server_dh_params(s_anoncred, dh_params);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_credentials_set(server, GNUTLS_CRD_ANON, s_anoncred);
ret = gnutls_priority_set_direct(server, server_prio, &err);
@@ -114,13 +111,16 @@ void try_with_key(const char *name,
gnutls_certificate_set_x509_key_mem(clientx509cred,
client_cert, client_key,
GNUTLS_X509_FMT_PEM);
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUIRE);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUIRE);
} else if (cert_flags == ASK_CERT) {
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUEST);
}
-
#if 0
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
#endif
@@ -131,7 +131,7 @@ void try_with_key(const char *name,
gnutls_anon_allocate_client_credentials(&c_anoncred);
gnutls_credentials_set(client, GNUTLS_CRD_ANON, c_anoncred);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -169,12 +169,16 @@ void doit(void)
/* check compatibility and handling of SIGN-ECDSA-SECP256R1-SHA256 which
* is available under TLS1.3 but not TLS1.2 */
try_with_key("TLS 1.2 with ecdhe ecdsa with ECDSA-SECP256R1-SHA256",
- NULL, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:+SIGN-ECDSA-SECP384R1-SHA384:+SIGN-ECDSA-SECP521R1-SHA512:+SIGN-RSA-SHA256",
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL, NULL, 0, GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN);
+ NULL,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:+SIGN-ECDSA-SECP384R1-SHA384:+SIGN-ECDSA-SECP521R1-SHA512:+SIGN-RSA-SHA256",
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL,
+ NULL, 0, GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN);
try_with_key("TLS 1.2 with ecdhe ecdsa with ECDSA-SHA256",
- NULL, "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-ECDSA-SHA256:+SIGN-RSA-SHA256",
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL, NULL, 0, 0, 0);
+ NULL,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA:-SIGN-ALL:+SIGN-ECDSA-SHA256:+SIGN-RSA-SHA256",
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL,
+ NULL, 0, 0, 0);
gnutls_global_deinit();
}
diff --git a/tests/tls12-max-record.c b/tests/tls12-max-record.c
index 469a890212..1d2a0e2ca9 100644
--- a/tests/tls12-max-record.c
+++ b/tests/tls12-max-record.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -72,12 +72,10 @@ void doit(void)
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_priority_set_direct(server,
- "NORMAL:-VERS-ALL:+VERS-TLS1.2",
- NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_pull_timeout_function(server,
@@ -90,7 +88,9 @@ void doit(void)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca2_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -99,11 +99,13 @@ void doit(void)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
- ret = gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2", NULL);
+ ret =
+ gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.2",
+ NULL);
if (ret < 0)
exit(1);
diff --git a/tests/tls12-prf.c b/tests/tls12-prf.c
index c3412e277b..fd80cf64d3 100644
--- a/tests/tls12-prf.c
+++ b/tests/tls12-prf.c
@@ -35,7 +35,7 @@ int
_gnutls_prf_raw(gnutls_mac_algorithm_t mac,
size_t master_size, const void *master,
size_t label_size, const char *label,
- size_t seed_size, const uint8_t *seed, size_t outsize,
+ size_t seed_size, const uint8_t * seed, size_t outsize,
char *out);
#define MATCH_FUNC(fname, mac, dsecret, dseed, dlabel, doutput) \
@@ -58,42 +58,58 @@ static void fname(void **glob_state) \
}
MATCH_FUNC(sha256_test1, GNUTLS_MAC_SHA256,
- SHEX("0450b0ea9ecd3602ee0d76c5c3c86f4a"),
- SHEX("207acc0254b867f5b925b45a33601d8b"),
- SDATA("test label"), SHEX("ae679e0e714f5975763768b166979e1d"));
+ SHEX("0450b0ea9ecd3602ee0d76c5c3c86f4a"),
+ SHEX("207acc0254b867f5b925b45a33601d8b"),
+ SDATA("test label"), SHEX("ae679e0e714f5975763768b166979e1d"));
MATCH_FUNC(sha256_test2, GNUTLS_MAC_SHA256,
- SHEX("34204a9df0be6eb4e925a8027cf6c602"),
- SHEX("98b2c40bcd664c83bb920c18201a6395"),
- SDATA("test label"), SHEX("afa9312453c22fa83d2b511b372d73a402a2a62873239a51fade45082faf3fd2bb7ffb3e9bf36e28b3141aaba484005332a9f9e388a4d329f1587a4b317da07708ea1ba95a53f8786724bd83ce4b03af"));
+ SHEX("34204a9df0be6eb4e925a8027cf6c602"),
+ SHEX("98b2c40bcd664c83bb920c18201a6395"),
+ SDATA("test label"),
+ SHEX
+ ("afa9312453c22fa83d2b511b372d73a402a2a62873239a51fade45082faf3fd2bb7ffb3e9bf36e28b3141aaba484005332a9f9e388a4d329f1587a4b317da07708ea1ba95a53f8786724bd83ce4b03af"));
MATCH_FUNC(sha256_test3, GNUTLS_MAC_SHA256,
- SHEX("a3691aa1f6814b80592bf1cf2acf1697"),
- SHEX("5523d41e320e694d0c1ff5734d830b933e46927071c92621"),
- SDATA("test label"), SHEX("6ad0984fa06f78fe161bd46d7c261de43340d728dddc3d0ff0dd7e0d"));
+ SHEX("a3691aa1f6814b80592bf1cf2acf1697"),
+ SHEX("5523d41e320e694d0c1ff5734d830b933e46927071c92621"),
+ SDATA("test label"),
+ SHEX("6ad0984fa06f78fe161bd46d7c261de43340d728dddc3d0ff0dd7e0d"));
MATCH_FUNC(sha256_test4, GNUTLS_MAC_SHA256,
- SHEX("210ec937069707e5465bc46bf779e104108b18fdb793be7b218dbf145c8641f3"),
- SHEX("1e351a0baf35c79945924394b881cfe31dae8f1c1ed54d3b"),
- SDATA("test label"), SHEX("7653fa809cde3b553c4a17e2cdbcc918f36527f22219a7d7f95d97243ff2d5dee8265ef0af03"));
+ SHEX
+ ("210ec937069707e5465bc46bf779e104108b18fdb793be7b218dbf145c8641f3"),
+ SHEX("1e351a0baf35c79945924394b881cfe31dae8f1c1ed54d3b"),
+ SDATA("test label"),
+ SHEX
+ ("7653fa809cde3b553c4a17e2cdbcc918f36527f22219a7d7f95d97243ff2d5dee8265ef0af03"));
/* https://www.ietf.org/mail-archive/web/tls/current/msg03416.html */
MATCH_FUNC(sha384_test1, GNUTLS_MAC_SHA384,
- SHEX("b80b733d6ceefcdc71566ea48e5567df"),
- SHEX("cd665cf6a8447dd6ff8b27555edb7465"),
- SDATA("test label"), SHEX("7b0c18e9ced410ed1804f2cfa34a336a1c14dffb4900bb5fd7942107e81c83cde9ca0faa60be9fe34f82b1233c9146a0e534cb400fed2700884f9dc236f80edd8bfa961144c9e8d792eca722a7b32fc3d416d473ebc2c5fd4abfdad05d9184259b5bf8cd4d90fa0d31e2dec479e4f1a26066f2eea9a69236a3e52655c9e9aee691c8f3a26854308d5eaa3be85e0990703d73e56f"));
+ SHEX("b80b733d6ceefcdc71566ea48e5567df"),
+ SHEX("cd665cf6a8447dd6ff8b27555edb7465"),
+ SDATA("test label"),
+ SHEX
+ ("7b0c18e9ced410ed1804f2cfa34a336a1c14dffb4900bb5fd7942107e81c83cde9ca0faa60be9fe34f82b1233c9146a0e534cb400fed2700884f9dc236f80edd8bfa961144c9e8d792eca722a7b32fc3d416d473ebc2c5fd4abfdad05d9184259b5bf8cd4d90fa0d31e2dec479e4f1a26066f2eea9a69236a3e52655c9e9aee691c8f3a26854308d5eaa3be85e0990703d73e56f"));
#if ENABLE_GOST
/*https://tools.ietf.org/html/rfc7836 */
MATCH_FUNC(streebog256_test1, GNUTLS_MAC_STREEBOG_256,
- SHEX("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"),
- SHEX("18471d622dc655c4d2d2269691ca4a560b50aba663553af241f1ada882c9f29a"),
- SHEX("1122334455"), SHEX("ff09664a44745865944f839ebb48965f1544ff1cc8e8f16f247ee5f8a9ebe97fc4e3c7900e46cad3db6a01643063040ec67fc0fd5cd9f90465235237bdff2c02"));
+ SHEX
+ ("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"),
+ SHEX
+ ("18471d622dc655c4d2d2269691ca4a560b50aba663553af241f1ada882c9f29a"),
+ SHEX("1122334455"),
+ SHEX
+ ("ff09664a44745865944f839ebb48965f1544ff1cc8e8f16f247ee5f8a9ebe97fc4e3c7900e46cad3db6a01643063040ec67fc0fd5cd9f90465235237bdff2c02"));
MATCH_FUNC(streebog512_test1, GNUTLS_MAC_STREEBOG_512,
- SHEX("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"),
- SHEX("18471d622dc655c4d2d2269691ca4a560b50aba663553af241f1ada882c9f29a"),
- SHEX("1122334455"), SHEX("f35187a3dc9655113a0e84d06fd7526c5fc1fbdec1a0e4673dd6d79d0b920e65ad1bc47bb083b3851cb7cd8e7e6a911a626cf02b29e9e4a58ed766a449a7296de61a7a26c4d1caeecfd80cca65c71f0f88c1f822c0e8c0ad949d03fee139579f72ba0c3d32c5f954f1cccd54081fc7440278cba1fe7b7a17a986fdff5bd15d1f"));
+ SHEX
+ ("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f"),
+ SHEX
+ ("18471d622dc655c4d2d2269691ca4a560b50aba663553af241f1ada882c9f29a"),
+ SHEX("1122334455"),
+ SHEX
+ ("f35187a3dc9655113a0e84d06fd7526c5fc1fbdec1a0e4673dd6d79d0b920e65ad1bc47bb083b3851cb7cd8e7e6a911a626cf02b29e9e4a58ed766a449a7296de61a7a26c4d1caeecfd80cca65c71f0f88c1f822c0e8c0ad949d03fee139579f72ba0c3d32c5f954f1cccd54081fc7440278cba1fe7b7a17a986fdff5bd15d1f"));
#endif
int main(void)
diff --git a/tests/tls12-rehandshake-cert-2.c b/tests/tls12-rehandshake-cert-2.c
index 481231f9a8..9dcb270485 100644
--- a/tests/tls12-rehandshake-cert-2.c
+++ b/tests/tls12-rehandshake-cert-2.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
static void terminate(void);
@@ -65,8 +65,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, unsigned test)
{
@@ -94,7 +93,9 @@ static void client(int fd, unsigned test)
gnutls_handshake_set_timeout(session, get_timeout());
/* Use default priorities */
- gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2",
+ NULL);
/* put the anonymous credentials to the current session
*/
@@ -139,7 +140,7 @@ static void client(int fd, unsigned test)
do {
ret =
gnutls_record_recv(session, buffer,
- MAX_BUF);
+ MAX_BUF);
} while (ret == GNUTLS_E_AGAIN
|| ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
@@ -149,7 +150,7 @@ static void client(int fd, unsigned test)
do {
ret =
gnutls_record_recv(session, buffer,
- MAX_BUF);
+ MAX_BUF);
} while (ret == GNUTLS_E_AGAIN
|| ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
@@ -236,7 +237,9 @@ static void server(int fd, unsigned test)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2",
+ NULL);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -271,7 +274,7 @@ static void server(int fd, unsigned test)
do {
ret =
gnutls_record_recv(session, buffer,
- MAX_BUF);
+ MAX_BUF);
} while (ret == GNUTLS_E_AGAIN
|| ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
@@ -321,7 +324,7 @@ static void server(int fd, unsigned test)
do {
ret =
gnutls_record_recv(session, buffer,
- MAX_BUF);
+ MAX_BUF);
} while (ret == GNUTLS_E_AGAIN
|| ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
diff --git a/tests/tls12-rehandshake-cert-3.c b/tests/tls12-rehandshake-cert-3.c
index eac9d20423..1a217107ff 100644
--- a/tests/tls12-rehandshake-cert-3.c
+++ b/tests/tls12-rehandshake-cert-3.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,19 +36,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
static void terminate(void);
@@ -67,8 +67,8 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
-#define MAX_REHANDSHAKES 16
+# define MAX_BUF 1024
+# define MAX_REHANDSHAKES 16
static void client(int fd)
{
@@ -96,7 +96,9 @@ static void client(int fd)
gnutls_handshake_set_timeout(session, get_timeout());
/* Use default priorities */
- gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:+VERS-TLS1.1", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:+VERS-TLS1.1",
+ NULL);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -123,10 +125,10 @@ static void client(int fd)
gnutls_protocol_get_name
(gnutls_protocol_get_version(session)));
- for (i=0;i<MAX_REHANDSHAKES;i++) {
+ for (i = 0; i < MAX_REHANDSHAKES; i++) {
do {
ret = gnutls_handshake(session);
- } while(ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
+ } while (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN);
if (ret != 0) {
fail("client: error in code after rehandshake: %s\n",
gnutls_strerror(ret));
@@ -137,16 +139,12 @@ static void client(int fd)
do {
do {
- ret =
- gnutls_record_recv(session, buffer,
- MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
if (ret != 0) {
- fail("client: Error receiving: %s\n",
- gnutls_strerror(ret));
+ fail("client: Error receiving: %s\n", gnutls_strerror(ret));
exit(1);
}
@@ -199,7 +197,9 @@ static void server(int fd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:+VERS-TLS1.1", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2:+VERS-TLS1.1",
+ NULL);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
gnutls_certificate_server_set_request(session, GNUTLS_CERT_REQUIRE);
@@ -234,7 +234,7 @@ static void server(int fd)
do {
ret =
gnutls_record_recv(session, buffer,
- MAX_BUF);
+ MAX_BUF);
} while (ret == GNUTLS_E_AGAIN
|| ret == GNUTLS_E_INTERRUPTED);
} while (ret > 0);
@@ -252,21 +252,21 @@ static void server(int fd)
ret = gnutls_handshake(session);
if (ret != 0) {
- fail("server: unexpected error: %s\n", gnutls_strerror(ret));
+ fail("server: unexpected error: %s\n",
+ gnutls_strerror(ret));
terminate();
}
if (debug)
success("server: handshake %d\n", tries);
- } while(tries < MAX_REHANDSHAKES);
+ } while (tries < MAX_REHANDSHAKES);
if (tries < MAX_REHANDSHAKES)
fail("server: only did %d rehandshakes\n", tries);
ret = gnutls_record_send(session, "hello", 4);
if (ret < 0) {
- fail("Error sending data: %s\n",
- gnutls_strerror(ret));
+ fail("Error sending data: %s\n", gnutls_strerror(ret));
terminate();
}
diff --git a/tests/tls12-rehandshake-cert-auto.c b/tests/tls12-rehandshake-cert-auto.c
index 5d03af21ef..1d02fa4b18 100644
--- a/tests/tls12-rehandshake-cert-auto.c
+++ b/tests/tls12-rehandshake-cert-auto.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "utils.h"
-#include "cert-common.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "utils.h"
+# include "cert-common.h"
/* This program tests server initiated rehandshake when
* handled transparently by the client.
@@ -64,8 +64,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd)
{
@@ -89,11 +88,13 @@ static void client(int fd)
/* Initialize TLS session
*/
- gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_AUTO_REAUTH);
+ gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_AUTO_REAUTH);
gnutls_handshake_set_timeout(session, get_timeout());
/* Use default priorities */
- gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2",
+ NULL);
/* put the anonymous credentials to the current session
*/
@@ -124,11 +125,8 @@ static void client(int fd)
(gnutls_protocol_get_version(session)));
do {
- ret =
- gnutls_record_recv(session, buffer,
- MAX_BUF);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ ret = gnutls_record_recv(session, buffer, MAX_BUF);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
assert(ret == 0);
@@ -176,7 +174,9 @@ static void server(int fd)
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2", NULL);
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2",
+ NULL);
gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -206,7 +206,7 @@ static void server(int fd)
do {
ret = gnutls_rehandshake(session);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
fail("Error sending %d byte packet: %s\n",
(int)sizeof(buffer), gnutls_strerror(ret));
@@ -217,7 +217,8 @@ static void server(int fd)
ret = gnutls_handshake(session);
if (ret < 0) {
- fail("server: didn't complete handshake: %s\n", gnutls_strerror(ret));
+ fail("server: didn't complete handshake: %s\n",
+ gnutls_strerror(ret));
}
if (debug)
@@ -225,7 +226,7 @@ static void server(int fd)
do {
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
close(fd);
gnutls_deinit(session);
diff --git a/tests/tls12-rehandshake-cert.c b/tests/tls12-rehandshake-cert.c
index dc4937d06b..46610bcbdb 100644
--- a/tests/tls12-rehandshake-cert.c
+++ b/tests/tls12-rehandshake-cert.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -79,7 +79,10 @@ static void test_rehandshake(void **glob_state, unsigned appdata)
serverx509cred);
assert_return_code(ret, 0);
- ret = gnutls_priority_set_direct(server, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2", NULL);
+ ret =
+ gnutls_priority_set_direct(server,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2",
+ NULL);
assert_return_code(ret, 0);
gnutls_transport_set_push_function(server, server_push);
@@ -97,7 +100,10 @@ static void test_rehandshake(void **glob_state, unsigned appdata)
clientx509cred);
assert_return_code(ret, 0);
- ret = gnutls_priority_set_direct(client, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2", NULL);
+ ret =
+ gnutls_priority_set_direct(client,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2",
+ NULL);
assert_return_code(ret, 0);
gnutls_transport_set_push_function(client, client_push);
@@ -117,7 +123,7 @@ static void test_rehandshake(void **glob_state, unsigned appdata)
do {
n = gnutls_record_recv(client, b, 1);
- } while(n == GNUTLS_E_AGAIN);
+ } while (n == GNUTLS_E_AGAIN);
assert_int_equal(n, GNUTLS_E_REHANDSHAKE);
@@ -133,14 +139,14 @@ static void test_rehandshake(void **glob_state, unsigned appdata)
do {
n = gnutls_record_recv(server, buffer, sizeof(buffer));
- } while(n == GNUTLS_E_AGAIN);
+ } while (n == GNUTLS_E_AGAIN);
HANDSHAKE(client, server);
} else {
ssize_t n;
char b[1];
- for (i=0;i<MAX_REHANDSHAKES;i++) {
+ for (i = 0; i < MAX_REHANDSHAKES; i++) {
sret = gnutls_rehandshake(server);
n = gnutls_record_recv(client, b, 1);
diff --git a/tests/tls12-rehandshake-set-prio.c b/tests/tls12-rehandshake-set-prio.c
index bf7b1bbc16..26494e72a5 100644
--- a/tests/tls12-rehandshake-set-prio.c
+++ b/tests/tls12-rehandshake-set-prio.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -62,37 +62,41 @@ static void test_rehandshake(void)
unsigned i;
reset_buffers();
- assert(gnutls_global_init()>=0);
+ assert(gnutls_global_init() >= 0);
gnutls_global_set_log_function(tls_log_func);
/* Init server */
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
assert(gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred)>=0);
+ serverx509cred) >= 0);
- assert(gnutls_priority_set_direct(server, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (server, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2",
+ NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
/* Init client */
- assert(gnutls_certificate_allocate_credentials(&clientx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&clientx509cred) >= 0);
- assert(gnutls_init(&client, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred)>=0);
+ clientx509cred) >= 0);
- assert(gnutls_priority_set_direct(client, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (client, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2",
+ NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
@@ -104,14 +108,15 @@ static void test_rehandshake(void)
ssize_t n;
char b[1];
- for (i=0;i<MAX_REHANDSHAKES;i++) {
+ for (i = 0; i < MAX_REHANDSHAKES; i++) {
sret = gnutls_rehandshake(server);
n = gnutls_record_recv(client, b, 1);
assert(n == GNUTLS_E_REHANDSHAKE);
/* includes TLS1.3 */
- assert(gnutls_priority_set_direct(client, "NORMAL", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (client, "NORMAL", NULL) >= 0);
HANDSHAKE(client, server);
}
diff --git a/tests/tls12-rehandshake-ticket.c b/tests/tls12-rehandshake-ticket.c
index f96e46e7ca..4df3d9a31e 100644
--- a/tests/tls12-rehandshake-ticket.c
+++ b/tests/tls12-rehandshake-ticket.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <gnutls/gnutls.h>
@@ -87,7 +87,8 @@ static void run(void)
/* Init client */
assert(gnutls_certificate_allocate_credentials(&ccred) >= 0);
assert(gnutls_certificate_set_x509_key_mem
- (ccred, &cli_ca3_cert_chain, &cli_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
+ (ccred, &cli_ca3_cert_chain, &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_certificate_set_x509_trust_mem
(ccred, &ca3_cert, GNUTLS_X509_FMT_PEM) >= 0);
@@ -96,7 +97,8 @@ static void run(void)
"NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.2",
NULL) >= 0);
- assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, ccred) >= 0);
+ assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, ccred) >=
+ 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
@@ -121,7 +123,8 @@ static void run(void)
do {
do {
cret = gnutls_record_recv(client, buffer, MAX_BUF);
- } while (cret == GNUTLS_E_AGAIN || cret == GNUTLS_E_INTERRUPTED);
+ } while (cret == GNUTLS_E_AGAIN
+ || cret == GNUTLS_E_INTERRUPTED);
} while (cret > 0);
if (cret != GNUTLS_E_REHANDSHAKE) {
diff --git a/tests/tls12-server-kx-neg.c b/tests/tls12-server-kx-neg.c
index 00e28bb2bd..f74c56a704 100644
--- a/tests/tls12-server-kx-neg.c
+++ b/tests/tls12-server-kx-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the ciphersuite negotiation for various key exchange
@@ -39,515 +39,495 @@
test_case_st tests[] = {
{
- .name = "TLS 1.2 ANON-DH without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ANON-DH with cred but no DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_anon_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ANON-DH with cred and DH params (level)",
- .server_ret = 0,
- .client_ret = 0,
- .have_anon_cred = 1,
- .have_anon_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ANON-DH with cred and DH params (explicit)",
- .server_ret = 0,
- .client_ret = 0,
- .have_anon_cred = 1,
- .have_anon_exp_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-RSA without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-RSA with cred but no DH params or cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-RSA with cred and cert but no DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-RSA with cred and DH params but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-RSA with cred and incompatible cert and DH params",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-RSA with cred and cert and DH params (level)",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-RSA with cred and cert and DH params (explicit)",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_cert_exp_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-RSA with cred and multiple certs and DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .have_cert_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-PSK without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-PSK with cred but no DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-PSK with cred and DH params (level)",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .have_psk_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 DHE-PSK with cred and DH params (explicit)",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .have_psk_exp_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-RSA without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-RSA with cred but no common curve or cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.2 ECDHE-RSA with cred and cert but no common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.2 ECDHE-RSA with cred and common curve but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-RSA with cred and incompatible cert and common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-RSA with cred and cert and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-RSA with cred and multiple certs and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
+ .name = "TLS 1.2 ANON-DH without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ANON-DH with cred but no DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_anon_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ANON-DH with cred and DH params (level)",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_anon_cred = 1,
+ .have_anon_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ANON-DH with cred and DH params (explicit)",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_anon_cred = 1,
+ .have_anon_exp_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ANON-DH:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-RSA without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-RSA with cred but no DH params or cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-RSA with cred and cert but no DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-RSA with cred and DH params but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name =
+ "TLS 1.2 DHE-RSA with cred and incompatible cert and DH params",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-RSA with cred and cert and DH params (level)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-RSA with cred and cert and DH params (explicit)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_cert_exp_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-RSA with cred and multiple certs and DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_cert_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-PSK without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-PSK with cred but no DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-PSK with cred and DH params (level)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .have_psk_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 DHE-PSK with cred and DH params (explicit)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .have_psk_exp_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ECDHE-RSA without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ECDHE-RSA with cred but no common curve or cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.2 ECDHE-RSA with cred and cert but no common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.2 ECDHE-RSA with cred and common curve but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name =
+ "TLS 1.2 ECDHE-RSA with cred and incompatible cert and common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ECDHE-RSA with cred and cert and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name =
+ "TLS 1.2 ECDHE-RSA with cred and multiple certs and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.2"},
{
- .name = "TLS 1.2 ECDHE-ECDSA without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-ECDSA with cred but no common curve or cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.2 ECDHE-ECDSA with cred and cert but no common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.2 ECDHE-ECDSA with cred and common curve but no ECDSA cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-ECDSA with cred and common curve but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-ECDSA with cred and cert and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-ECDSA with cred and multiple certs and common curve",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-ECDSA with cred and ed25519 cert",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_ed25519_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-ECDSA with cred and cert but incompatible (ed25519) curves",
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .client_ret = GNUTLS_E_AGAIN,
- .have_cert_cred = 1,
- .have_ed25519_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ED25519:-SIGN-EDDSA-ED25519"
- },
- {
- .name = "TLS 1.2 ECDHE-PSK without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 ECDHE-PSK with cred but no common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP256R1",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP384R1"
- },
- {
- .name = "TLS 1.2 ECDHE-PSK with cred and common curve",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 RSA-PSK without cert cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 RSA-PSK without psk cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 RSA-PSK with cred but invalid cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 RSA-PSK with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 RSA-PSK with cred and multiple certs",
- .server_ret = 0,
- .client_ret = 0,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2"
- },
+ .name = "TLS 1.2 ECDHE-ECDSA without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ECDHE-ECDSA with cred but no common curve or cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.2 ECDHE-ECDSA with cred and cert but no common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name =
+ "TLS 1.2 ECDHE-ECDSA with cred and common curve but no ECDSA cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ECDHE-ECDSA with cred and common curve but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ECDHE-ECDSA with cred and cert and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name =
+ "TLS 1.2 ECDHE-ECDSA with cred and multiple certs and common curve",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ECDHE-ECDSA with cred and ed25519 cert",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_ed25519_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name =
+ "TLS 1.2 ECDHE-ECDSA with cred and cert but incompatible (ed25519) curves",
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .client_ret = GNUTLS_E_AGAIN,
+ .have_cert_cred = 1,
+ .have_ed25519_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-ECDSA:-VERS-ALL:+VERS-TLS1.2:-CURVE-ED25519:-SIGN-EDDSA-ED25519"},
+ {
+ .name = "TLS 1.2 ECDHE-PSK without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 ECDHE-PSK with cred but no common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP256R1",
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2:-CURVE-ALL:+CURVE-SECP384R1"},
+ {
+ .name = "TLS 1.2 ECDHE-PSK with cred and common curve",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 RSA-PSK without cert cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 RSA-PSK without psk cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 RSA-PSK with cred but invalid cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 RSA-PSK with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 RSA-PSK with cred and multiple certs",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:-VERS-ALL:+VERS-TLS1.2"},
#ifdef ENABLE_SRP
{
- .name = "TLS 1.2 SRP-RSA without cert cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_srp_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 SRP-RSA without srp cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_srp_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 SRP-RSA with cred but invalid cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 SRP-RSA with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 SRP-RSA with cred and multiple certs",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 SRP without srp cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_srp_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 SRP with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.2"
- },
+ .name = "TLS 1.2 SRP-RSA without cert cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_srp_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 SRP-RSA without srp cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_srp_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 SRP-RSA with cred but invalid cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 SRP-RSA with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 SRP-RSA with cred and multiple certs",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 SRP without srp cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_srp_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 SRP with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio = "NORMAL:-KX-ALL:+SRP:-VERS-ALL:+VERS-TLS1.2"},
#endif
#ifdef ENABLE_GOST
{
- .name = "TLS 1.2 VKO-GOST-12 without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 VKO-GOST-12 with cred but no cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 VKO-GOST-12 with cred but no GOST cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 VKO-GOST-12 with cred and GOST12-256 cert",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_gost12_256_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 VKO-GOST-12 with cred and GOST12-512 cert",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_gost12_512_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 VKO-GOST-12 with cred and multiple certs",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .have_gost12_256_cert = 1,
- .have_gost12_512_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"
- },
- {
- .name = "TLS 1.2 VKO-GOST-12 with cred and GOST12-256 cert client lacking signature algs (like SChannel)",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_gost12_256_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NONE:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+VERS-TLS1.2:+SIGN-RSA-SHA256"
- },
- {
- .name = "TLS 1.2 VKO-GOST-12 with cred and GOST12-512 cert client lacking signature algs (like SChannel)",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_gost12_512_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NONE:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+VERS-TLS1.2:+SIGN-RSA-SHA256"
- },
+ .name = "TLS 1.2 VKO-GOST-12 without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 VKO-GOST-12 with cred but no cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 VKO-GOST-12 with cred but no GOST cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 VKO-GOST-12 with cred and GOST12-256 cert",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_gost12_256_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 VKO-GOST-12 with cred and GOST12-512 cert",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_gost12_512_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name = "TLS 1.2 VKO-GOST-12 with cred and multiple certs",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_gost12_256_cert = 1,
+ .have_gost12_512_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2"},
+ {
+ .name =
+ "TLS 1.2 VKO-GOST-12 with cred and GOST12-256 cert client lacking signature algs (like SChannel)",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_gost12_256_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NONE:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+VERS-TLS1.2:+SIGN-RSA-SHA256"},
+ {
+ .name =
+ "TLS 1.2 VKO-GOST-12 with cred and GOST12-512 cert client lacking signature algs (like SChannel)",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_gost12_512_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NONE:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+VERS-TLS1.2:+SIGN-RSA-SHA256"},
#endif
};
@@ -556,7 +536,7 @@ void doit(void)
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/tls13-cert-key-exchange.c b/tests/tls13-cert-key-exchange.c
index 0eae61c44f..5b93dc6a07 100644
--- a/tests/tls13-cert-key-exchange.c
+++ b/tests/tls13-cert-key-exchange.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the various certificate key exchange methods supported
@@ -39,144 +39,288 @@ void doit(void)
{
global_init();
- server_priority = "NORMAL:+ANON-DH:+ANON-ECDH:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519";
- try_x509("TLS 1.3 with ffdhe2048 rsa no-cli-cert / anon on server", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
+ server_priority =
+ "NORMAL:+ANON-DH:+ANON-ECDH:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519";
+ try_x509("TLS 1.3 with ffdhe2048 rsa no-cli-cert / anon on server",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
/** X.509 tests **/
- server_priority = "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519";
+ server_priority =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519";
/* TLS 1.3 no client cert */
- try_x509("TLS 1.3 with ffdhe2048 rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.3 with ffdhe3072 rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE3072", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.3 with ffdhe4096 rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE4096", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.3 with secp256r1 rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.3 with secp384r1 rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.3 with secp521r1 rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.3 with x25519 rsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
-
- try_with_key_ks("TLS 1.3 with secp256r1 ecdsa no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_ECDSA_SECP256R1_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL, NULL, 0, GNUTLS_GROUP_SECP256R1, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_x509("TLS 1.3 with ffdhe2048 rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.3 with ffdhe3072 rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE3072",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.3 with ffdhe4096 rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE4096",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.3 with secp256r1 rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.3 with secp384r1 rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.3 with secp521r1 rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.3 with x25519 rsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+
+ try_with_key_ks
+ ("TLS 1.3 with secp256r1 ecdsa no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_ECDSA_SECP256R1_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, NULL, NULL, 0, GNUTLS_GROUP_SECP256R1,
+ GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
/* Test RSA-PSS cert/key combo issues */
- try_with_key_ks("TLS 1.3 with x25519 with rsa-pss-sha256 key no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss2_cert, &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_GROUP_X25519, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_with_key_ks("TLS 1.3 with x25519 with rsa-pss-sha256 key and 1 sig no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:-SIGN-ALL:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss2_cert, &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_GROUP_X25519, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_with_key_ks("TLS 1.3 with x25519 with rsa-pss-sha256 key and rsa-pss-sha384 first sig no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:-SIGN-ALL:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss2_cert, &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_GROUP_X25519, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_with_key_ks("TLS 1.3 with x25519 with rsa-pss-sha256 key and rsa-pss-sha512 first sig no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:-SIGN-ALL:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss2_cert, &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_GROUP_X25519, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
-
- try_with_key_ks("TLS 1.3 with x25519 rsa-pss/rsa-pss no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:-SIGN-ALL:+SIGN-RSA-PSS-SHA256", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, NULL, NULL, 0, GNUTLS_GROUP_X25519, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_with_key_ks("TLS 1.3 with x25519 ed25519 no-cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-ECDSA:-CURVE-ALL:+CURVE-X25519:-SIGN-ALL:+SIGN-EDDSA-ED25519", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_EDDSA_ED25519, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_eddsa_cert, &server_ca3_eddsa_key, NULL, NULL, 0, GNUTLS_GROUP_X25519, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_with_key_ks
+ ("TLS 1.3 with x25519 with rsa-pss-sha256 key no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss2_cert,
+ &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_GROUP_X25519,
+ GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_with_key_ks
+ ("TLS 1.3 with x25519 with rsa-pss-sha256 key and 1 sig no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:-SIGN-ALL:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss2_cert,
+ &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_GROUP_X25519,
+ GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_with_key_ks
+ ("TLS 1.3 with x25519 with rsa-pss-sha256 key and rsa-pss-sha384 first sig no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:-SIGN-ALL:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss2_cert,
+ &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_GROUP_X25519,
+ GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_with_key_ks
+ ("TLS 1.3 with x25519 with rsa-pss-sha256 key and rsa-pss-sha512 first sig no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:-SIGN-ALL:+SIGN-RSA-PSS-SHA512:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss2_cert,
+ &server_ca3_rsa_pss2_key, NULL, NULL, 0, GNUTLS_GROUP_X25519,
+ GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+
+ try_with_key_ks
+ ("TLS 1.3 with x25519 rsa-pss/rsa-pss no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:-SIGN-ALL:+SIGN-RSA-PSS-SHA256",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_SHA256,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_rsa_pss_cert,
+ &server_ca3_rsa_pss_key, NULL, NULL, 0, GNUTLS_GROUP_X25519,
+ GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_with_key_ks("TLS 1.3 with x25519 ed25519 no-cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-ECDSA:-CURVE-ALL:+CURVE-X25519:-SIGN-ALL:+SIGN-EDDSA-ED25519",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_EDDSA_ED25519,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_eddsa_cert,
+ &server_ca3_eddsa_key, NULL, NULL, 0,
+ GNUTLS_GROUP_X25519, GNUTLS_CRT_X509,
+ GNUTLS_CRT_UNKNOWN);
/* client authentication */
- try_with_key("TLS 1.3 with rsa-pss cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_ECDSA_SECP256R1_SHA256, GNUTLS_SIGN_RSA_PSS_SHA256,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_rsa_pss_cert, &cli_ca3_rsa_pss_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
- try_with_key("TLS 1.3 with rsa cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_ECDSA_SECP256R1_SHA256, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
- try_with_key("TLS 1.3 with ecdsa cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_ECDSA_SECP256R1_SHA256, GNUTLS_SIGN_ECDSA_SECP256R1_SHA256,
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
- try_with_key("TLS 1.3 with x25519 ed25519 cli-cert (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519:-SIGN-ALL:+SIGN-EDDSA-ED25519", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_EDDSA_ED25519, GNUTLS_SIGN_EDDSA_ED25519,
- &server_ca3_eddsa_cert, &server_ca3_eddsa_key, &server_ca3_eddsa_cert, &server_ca3_eddsa_key, USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_with_key("TLS 1.3 with rsa-pss cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_ECDSA_SECP256R1_SHA256,
+ GNUTLS_SIGN_RSA_PSS_SHA256, &server_ca3_localhost_ecc_cert,
+ &server_ca3_ecc_key, &cli_ca3_rsa_pss_cert,
+ &cli_ca3_rsa_pss_key, USE_CERT, GNUTLS_CRT_X509,
+ GNUTLS_CRT_X509);
+ try_with_key("TLS 1.3 with rsa cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_ECDSA_SECP256R1_SHA256,
+ GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ &cli_ca3_cert, &cli_ca3_key, USE_CERT, GNUTLS_CRT_X509,
+ GNUTLS_CRT_X509);
+ try_with_key("TLS 1.3 with ecdsa cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_ECDSA_SECP256R1_SHA256,
+ GNUTLS_SIGN_ECDSA_SECP256R1_SHA256,
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ USE_CERT, GNUTLS_CRT_X509, GNUTLS_CRT_X509);
+ try_with_key("TLS 1.3 with x25519 ed25519 cli-cert (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA:-CURVE-ALL:+CURVE-X25519:-SIGN-ALL:+SIGN-EDDSA-ED25519",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_EDDSA_ED25519,
+ GNUTLS_SIGN_EDDSA_ED25519, &server_ca3_eddsa_cert,
+ &server_ca3_eddsa_key, &server_ca3_eddsa_cert,
+ &server_ca3_eddsa_key, USE_CERT, GNUTLS_CRT_X509,
+ GNUTLS_CRT_X509);
/* TLS 1.3 mis-matching groups */
/* Our policy is to send a key share for the first of each type of groups, so make sure
* the server doesn't support them */
- server_priority = "NORMAL:-GROUP-ALL:-VERS-TLS-ALL:+VERS-TLS1.3:+GROUP-FFDHE3072:+GROUP-SECP521R1",
-
- try_x509_ks("TLS 1.3 with default key share (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE3072", GNUTLS_KX_DHE_RSA, GNUTLS_GROUP_FFDHE3072);
- try_x509_ks("TLS 1.3 with ffdhe2048 key share (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE3072", GNUTLS_KX_DHE_RSA, GNUTLS_GROUP_FFDHE3072);
- try_x509_ks("TLS 1.3 with ffdhe4096 key share (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE4096:+GROUP-FFDHE3072", GNUTLS_KX_DHE_RSA, GNUTLS_GROUP_FFDHE3072);
- try_x509_ks("TLS 1.3 with secp256r1 key share (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-SECP521R1", GNUTLS_KX_ECDHE_RSA, GNUTLS_GROUP_SECP521R1);
- try_x509_ks("TLS 1.3 with secp384r1 key share (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1:+GROUP-SECP521R1", GNUTLS_KX_ECDHE_RSA, GNUTLS_GROUP_SECP521R1);
- try_x509_ks("TLS 1.3 with secp521r1 key share (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1", GNUTLS_KX_ECDHE_RSA, GNUTLS_GROUP_SECP521R1);
- try_x509_ks("TLS 1.3 with x25519 -> ffdhe3072 key share (ctype X.509)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-SECP384R1:+GROUP-FFDHE3072", GNUTLS_KX_DHE_RSA, GNUTLS_GROUP_FFDHE3072);
+ server_priority =
+ "NORMAL:-GROUP-ALL:-VERS-TLS-ALL:+VERS-TLS1.3:+GROUP-FFDHE3072:+GROUP-SECP521R1",
+ try_x509_ks("TLS 1.3 with default key share (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE3072",
+ GNUTLS_KX_DHE_RSA, GNUTLS_GROUP_FFDHE3072);
+ try_x509_ks("TLS 1.3 with ffdhe2048 key share (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-FFDHE3072",
+ GNUTLS_KX_DHE_RSA, GNUTLS_GROUP_FFDHE3072);
+ try_x509_ks("TLS 1.3 with ffdhe4096 key share (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE4096:+GROUP-FFDHE3072",
+ GNUTLS_KX_DHE_RSA, GNUTLS_GROUP_FFDHE3072);
+ try_x509_ks("TLS 1.3 with secp256r1 key share (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-SECP521R1",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_GROUP_SECP521R1);
+ try_x509_ks("TLS 1.3 with secp384r1 key share (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1:+GROUP-SECP521R1",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_GROUP_SECP521R1);
+ try_x509_ks("TLS 1.3 with secp521r1 key share (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_GROUP_SECP521R1);
+ try_x509_ks("TLS 1.3 with x25519 -> ffdhe3072 key share (ctype X.509)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-SECP384R1:+GROUP-FFDHE3072",
+ GNUTLS_KX_DHE_RSA, GNUTLS_GROUP_FFDHE3072);
/* TLS 1.2 fallback */
- server_priority = "NORMAL:-VERS-ALL:+VERS-TLS1.2:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519",
-
- try_with_key_ks("TLS 1.2 fallback with x25519 ed25519 no-cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA:-CURVE-ALL:+CURVE-X25519:-SIGN-ALL:+SIGN-EDDSA-ED25519", GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_EDDSA_ED25519, GNUTLS_SIGN_UNKNOWN,
- &server_ca3_eddsa_cert, &server_ca3_eddsa_key, NULL, NULL, 0, 0, GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
- try_x509("TLS 1.2 fallback with secp521r1 rsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP521R1", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_x509("TLS 1.2 fallback with ffdhe2048 rsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:-GROUP-ALL:+GROUP-FFDHE2048", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256, GNUTLS_SIGN_UNKNOWN);
+ server_priority =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519",
+ try_with_key_ks("TLS 1.2 fallback with x25519 ed25519 no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:-KX-ALL:+ECDHE-ECDSA:-CURVE-ALL:+CURVE-X25519:-SIGN-ALL:+SIGN-EDDSA-ED25519",
+ GNUTLS_KX_ECDHE_ECDSA, GNUTLS_SIGN_EDDSA_ED25519,
+ GNUTLS_SIGN_UNKNOWN, &server_ca3_eddsa_cert,
+ &server_ca3_eddsa_key, NULL, NULL, 0, 0,
+ GNUTLS_CRT_X509, GNUTLS_CRT_UNKNOWN);
+ try_x509("TLS 1.2 fallback with secp521r1 rsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP521R1",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_x509("TLS 1.2 fallback with ffdhe2048 rsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:-KX-ALL:+DHE-RSA:-GROUP-ALL:+GROUP-FFDHE2048",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
/** Raw public-key tests **/
- server_priority = "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519:+CTYPE-ALL";
-
- try_rawpk("TLS 1.3 with ffdhe2048 rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+CTYPE-ALL", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.3 with ffdhe3072 rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE3072:+CTYPE-ALL", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.3 with ffdhe4096 rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE4096:+CTYPE-ALL", GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.3 with secp256r1 rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.3 with secp384r1 rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.3 with secp521r1 rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
- try_rawpk("TLS 1.3 with x25519 rsa no-cli-cert (ctype Raw PK)", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+CTYPE-ALL", GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256, GNUTLS_SIGN_UNKNOWN);
-
+ server_priority =
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0:+ECDHE-RSA:+DHE-RSA:+RSA:+ECDHE-ECDSA:+CURVE-X25519:+SIGN-EDDSA-ED25519:+CTYPE-ALL";
+
+ try_rawpk("TLS 1.3 with ffdhe2048 rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+CTYPE-ALL",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.3 with ffdhe3072 rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE3072:+CTYPE-ALL",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.3 with ffdhe4096 rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE4096:+CTYPE-ALL",
+ GNUTLS_KX_DHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.3 with secp256r1 rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.3 with secp384r1 rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.3 with secp521r1 rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
+ try_rawpk("TLS 1.3 with x25519 rsa no-cli-cert (ctype Raw PK)",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+CTYPE-ALL",
+ GNUTLS_KX_ECDHE_RSA, GNUTLS_SIGN_RSA_PSS_RSAE_SHA256,
+ GNUTLS_SIGN_UNKNOWN);
/** Illegal setups **/
server_priority = "NORMAL:-VERS-ALL:+VERS-TLS1.3";
- try_with_key_fail("TLS 1.3 with rsa cert and only RSA-PSS sig algos in client",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
- GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
- &server_ca3_localhost_cert, &server_ca3_key, NULL, NULL);
-
- try_with_key_fail("TLS 1.3 with x25519 with rsa-pss cert and RSAE signatures",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256:+SIGN-RSA-PSS-RSAE-SHA384",
- GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
- &server_ca3_rsa_pss2_cert, &server_ca3_rsa_pss2_key, NULL, NULL);
+ try_with_key_fail
+ ("TLS 1.3 with rsa cert and only RSA-PSS sig algos in client",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
+ GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
+ &server_ca3_localhost_cert, &server_ca3_key, NULL, NULL);
+
+ try_with_key_fail
+ ("TLS 1.3 with x25519 with rsa-pss cert and RSAE signatures",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA256:+SIGN-RSA-PSS-RSAE-SHA384",
+ GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
+ &server_ca3_rsa_pss2_cert, &server_ca3_rsa_pss2_key, NULL, NULL);
server_priority = NULL;
try_with_key_fail("TLS 1.3 with rsa cert and only RSA-PSS sig algos",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
- GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
- &server_ca3_localhost_cert, &server_ca3_key, NULL, NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
+ GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
+ &server_ca3_localhost_cert, &server_ca3_key, NULL,
+ NULL);
- try_with_key_fail("TLS 1.3 with rsa-pss cert and rsa cli cert with only RSA-PSS sig algos",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
- GNUTLS_E_CERTIFICATE_REQUIRED, GNUTLS_E_SUCCESS,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, &cli_ca3_cert, &cli_ca3_key);
+ try_with_key_fail
+ ("TLS 1.3 with rsa-pss cert and rsa cli cert with only RSA-PSS sig algos",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-SIGN-ALL:+SIGN-RSA-PSS-SHA256:+SIGN-RSA-PSS-SHA384:+SIGN-RSA-PSS-SHA512",
+ GNUTLS_E_CERTIFICATE_REQUIRED, GNUTLS_E_SUCCESS,
+ &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, &cli_ca3_cert,
+ &cli_ca3_key);
try_with_key_fail("TLS 1.3 with rsa encryption cert",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
- &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key, NULL, NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
+ &server_ca3_localhost_rsa_decrypt_cert,
+ &server_ca3_key, NULL, NULL);
try_with_key_fail("TLS 1.3 and TLS 1.2 with rsa encryption cert",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2",
- GNUTLS_E_SUCCESS, GNUTLS_E_SUCCESS,
- &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key, NULL, NULL);
-
- try_with_key_fail("TLS 1.3 with (forced) rsa encryption cert - client should detect",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:%DEBUG_ALLOW_KEY_USAGE_VIOLATIONS",
- GNUTLS_E_AGAIN, GNUTLS_E_KEY_USAGE_VIOLATION,
- &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key, NULL, NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2",
+ GNUTLS_E_SUCCESS, GNUTLS_E_SUCCESS,
+ &server_ca3_localhost_rsa_decrypt_cert,
+ &server_ca3_key, NULL, NULL);
+
+ try_with_key_fail
+ ("TLS 1.3 with (forced) rsa encryption cert - client should detect",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:%DEBUG_ALLOW_KEY_USAGE_VIOLATIONS",
+ GNUTLS_E_AGAIN, GNUTLS_E_KEY_USAGE_VIOLATION,
+ &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key, NULL,
+ NULL);
try_with_key_fail("TLS 1.3 with client rsa encryption cert",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- GNUTLS_E_AGAIN, GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key);
-
- try_with_key_fail("TLS 1.3 with (forced) client rsa encryption cert - server should detect",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:%DEBUG_ALLOW_KEY_USAGE_VIOLATIONS",
- GNUTLS_E_KEY_USAGE_VIOLATION, GNUTLS_E_SUCCESS,
- &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key, &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ GNUTLS_E_AGAIN, GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key,
+ &server_ca3_localhost_rsa_decrypt_cert,
+ &server_ca3_key);
+
+ try_with_key_fail
+ ("TLS 1.3 with (forced) client rsa encryption cert - server should detect",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:%DEBUG_ALLOW_KEY_USAGE_VIOLATIONS",
+ GNUTLS_E_KEY_USAGE_VIOLATION, GNUTLS_E_SUCCESS,
+ &server_ca3_rsa_pss_cert, &server_ca3_rsa_pss_key,
+ &server_ca3_localhost_rsa_decrypt_cert, &server_ca3_key);
try_with_rawpk_key_fail("rawpk TLS 1.3 with rsa encryption cert",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:+CTYPE-RAWPK",
- GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
- &rawpk_public_key1, &rawpk_private_key1, GNUTLS_KEY_KEY_ENCIPHERMENT, NULL, NULL, 0);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+CTYPE-RAWPK",
+ GNUTLS_E_NO_CIPHER_SUITES, GNUTLS_E_AGAIN,
+ &rawpk_public_key1, &rawpk_private_key1,
+ GNUTLS_KEY_KEY_ENCIPHERMENT, NULL, NULL, 0);
- try_with_rawpk_key_fail("rawpk TLS 1.3 and TLS 1.2 with rsa encryption cert",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+CTYPE-RAWPK",
- GNUTLS_E_SUCCESS, GNUTLS_E_SUCCESS,
- &rawpk_public_key1, &rawpk_private_key1, GNUTLS_KEY_KEY_ENCIPHERMENT, NULL, NULL, 0);
+ try_with_rawpk_key_fail
+ ("rawpk TLS 1.3 and TLS 1.2 with rsa encryption cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+CTYPE-RAWPK",
+ GNUTLS_E_SUCCESS, GNUTLS_E_SUCCESS, &rawpk_public_key1,
+ &rawpk_private_key1, GNUTLS_KEY_KEY_ENCIPHERMENT, NULL, NULL, 0);
try_with_rawpk_key_fail("rawpk TLS 1.3 with client rsa encryption cert",
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:+CTYPE-RAWPK",
- GNUTLS_E_AGAIN, GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- &rawpk_public_key2, &rawpk_private_key2, 0, &rawpk_public_key1, &rawpk_private_key1, GNUTLS_KEY_KEY_ENCIPHERMENT);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+CTYPE-RAWPK",
+ GNUTLS_E_AGAIN,
+ GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ &rawpk_public_key2, &rawpk_private_key2, 0,
+ &rawpk_public_key1, &rawpk_private_key1,
+ GNUTLS_KEY_KEY_ENCIPHERMENT);
/* we do not test TLS 1.3 with (forced) rsa encryption cert - client should detect, because
* there is no way under raw public keys for the client or server to know the intended type. */
diff --git a/tests/tls13-cipher-neg.c b/tests/tls13-cipher-neg.c
index 16a8883d80..f9be6f530c 100644
--- a/tests/tls13-cipher-neg.c
+++ b/tests/tls13-cipher-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the ciphersuite negotiation for various key exchange
@@ -45,117 +45,157 @@
test_case_st tests[] = {
{
- .name = "server TLS 1.3: NULL (server - exp fallback)",
- .not_on_fips = 1,
- .cipher = GNUTLS_CIPHER_NULL,
- .server_prio = SPRIO":+VERS-TLS1.2:-CIPHER-ALL:+NULL:+CIPHER-ALL:%SERVER_PRECEDENCE:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-ALL",
- .client_prio = CPRIO":+VERS-TLS1.2:+NULL:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(NULL)-(SHA1)",
- },
+ .name = "server TLS 1.3: NULL (server - exp fallback)",
+ .not_on_fips = 1,
+ .cipher = GNUTLS_CIPHER_NULL,
+ .server_prio =
+ SPRIO
+ ":+VERS-TLS1.2:-CIPHER-ALL:+NULL:+CIPHER-ALL:%SERVER_PRECEDENCE:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-ALL",
+ .client_prio =
+ CPRIO
+ ":+VERS-TLS1.2:+NULL:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(NULL)-(SHA1)",
+ },
{
- .name = "client TLS 1.3: NULL (client)",
- .not_on_fips = 1,
- .cipher = GNUTLS_CIPHER_NULL,
- .server_prio = SPRIO":+VERS-TLS1.2:+NULL:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1",
- .client_prio = CPRIO":-CIPHER-ALL:+NULL:+CIPHER-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-ALL",
- .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(NULL)-(SHA1)",
- },
+ .name = "client TLS 1.3: NULL (client)",
+ .not_on_fips = 1,
+ .cipher = GNUTLS_CIPHER_NULL,
+ .server_prio =
+ SPRIO
+ ":+VERS-TLS1.2:+NULL:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1",
+ .client_prio =
+ CPRIO
+ ":-CIPHER-ALL:+NULL:+CIPHER-ALL:+VERS-TLS1.2:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-ALL",
+ .desc = "(TLS1.2)-(ECDHE-SECP256R1)-(ECDSA-SHA256)-(NULL)-(SHA1)",
+ },
{
- .name = "server TLS 1.3: AES-128-GCM with SECP256R1 (server)",
- .cipher = GNUTLS_CIPHER_AES_128_GCM,
- .group = GNUTLS_GROUP_SECP256R1,
- .server_prio = SPRIO":-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:%SERVER_PRECEDENCE:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-ALL",
- .client_prio = CPRIO":+AES-128-GCM:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1",
- .desc = "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(AES-128-GCM)",
- },
+ .name = "server TLS 1.3: AES-128-GCM with SECP256R1 (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_GCM,
+ .group = GNUTLS_GROUP_SECP256R1,
+ .server_prio =
+ SPRIO
+ ":-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:%SERVER_PRECEDENCE:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-ALL",
+ .client_prio =
+ CPRIO
+ ":+AES-128-GCM:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1",
+ .desc =
+ "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(AES-128-GCM)",
+ },
{
- .name = "both TLS 1.3: AES-128-GCM with X25519 (server)",
- .cipher = GNUTLS_CIPHER_AES_128_GCM,
- .group = GNUTLS_GROUP_X25519,
- .server_prio = SPRIO":-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:%SERVER_PRECEDENCE:-GROUP-ALL:+GROUP-X25519:+GROUP-ALL",
- .client_prio = CPRIO":+AES-128-GCM:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1:+GROUP-ALL",
- .desc = "(TLS1.3)-(ECDHE-X25519)-(RSA-PSS-RSAE-SHA256)-(AES-128-GCM)",
- },
+ .name = "both TLS 1.3: AES-128-GCM with X25519 (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_GCM,
+ .group = GNUTLS_GROUP_X25519,
+ .server_prio =
+ SPRIO
+ ":-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:%SERVER_PRECEDENCE:-GROUP-ALL:+GROUP-X25519:+GROUP-ALL",
+ .client_prio =
+ CPRIO
+ ":+AES-128-GCM:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1:+GROUP-ALL",
+ .desc = "(TLS1.3)-(ECDHE-X25519)-(RSA-PSS-RSAE-SHA256)-(AES-128-GCM)",
+ },
{
- .name = "client TLS 1.3: AES-128-GCM with SECP256R1 (client)",
- .cipher = GNUTLS_CIPHER_AES_128_GCM,
- .group = GNUTLS_GROUP_SECP256R1,
- .server_prio = SPRIO":+AES-128-GCM:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1",
- .client_prio = CPRIO":-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-ALL",
- .desc = "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(AES-128-GCM)",
- },
+ .name = "client TLS 1.3: AES-128-GCM with SECP256R1 (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_GCM,
+ .group = GNUTLS_GROUP_SECP256R1,
+ .server_prio =
+ SPRIO
+ ":+AES-128-GCM:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1",
+ .client_prio =
+ CPRIO
+ ":-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-ALL",
+ .desc =
+ "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(AES-128-GCM)",
+ },
{
- .name = "both TLS 1.3: AES-128-GCM with X25519 (client)",
- .cipher = GNUTLS_CIPHER_AES_128_GCM,
- .group = GNUTLS_GROUP_X25519,
- .server_prio = SPRIO":+AES-128-GCM:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1:+GROUP-ALL",
- .client_prio = CPRIO":-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-ALL",
- .desc = "(TLS1.3)-(ECDHE-X25519)-(RSA-PSS-RSAE-SHA256)-(AES-128-GCM)",
- },
+ .name = "both TLS 1.3: AES-128-GCM with X25519 (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_GCM,
+ .group = GNUTLS_GROUP_X25519,
+ .server_prio =
+ SPRIO
+ ":+AES-128-GCM:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP384R1:+GROUP-SECP521R1:+GROUP-SECP256R1:+GROUP-ALL",
+ .client_prio =
+ CPRIO
+ ":-CIPHER-ALL:+AES-128-GCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-ALL",
+ .desc = "(TLS1.3)-(ECDHE-X25519)-(RSA-PSS-RSAE-SHA256)-(AES-128-GCM)",
+ },
{
- .name = "server TLS 1.3: AES-128-CCM and FFDHE2048 (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CCM,
- .group = GNUTLS_GROUP_FFDHE2048,
- .server_prio = SPRIO":-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:%SERVER_PRECEDENCE:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-ALL",
- .client_prio = CPRIO":+AES-128-CCM",
- .desc = "(TLS1.3)-(DHE-FFDHE2048)-(RSA-PSS-RSAE-SHA256)-(AES-128-CCM)",
- },
+ .name = "server TLS 1.3: AES-128-CCM and FFDHE2048 (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CCM,
+ .group = GNUTLS_GROUP_FFDHE2048,
+ .server_prio =
+ SPRIO
+ ":-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:%SERVER_PRECEDENCE:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-ALL",
+ .client_prio = CPRIO ":+AES-128-CCM",
+ .desc = "(TLS1.3)-(DHE-FFDHE2048)-(RSA-PSS-RSAE-SHA256)-(AES-128-CCM)",
+ },
{
- .name = "both TLS 1.3: AES-128-CCM and FFDHE 2048 (server)",
- .cipher = GNUTLS_CIPHER_AES_128_CCM,
- .group = GNUTLS_GROUP_FFDHE2048,
- .server_prio = SPRIO":-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:%SERVER_PRECEDENCE:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-ALL",
- .client_prio = CPRIO":+AES-128-CCM:+VERS-TLS1.3",
- .desc = "(TLS1.3)-(DHE-FFDHE2048)-(RSA-PSS-RSAE-SHA256)-(AES-128-CCM)",
- },
+ .name = "both TLS 1.3: AES-128-CCM and FFDHE 2048 (server)",
+ .cipher = GNUTLS_CIPHER_AES_128_CCM,
+ .group = GNUTLS_GROUP_FFDHE2048,
+ .server_prio =
+ SPRIO
+ ":-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:%SERVER_PRECEDENCE:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-ALL",
+ .client_prio = CPRIO ":+AES-128-CCM:+VERS-TLS1.3",
+ .desc = "(TLS1.3)-(DHE-FFDHE2048)-(RSA-PSS-RSAE-SHA256)-(AES-128-CCM)",
+ },
{
- .name = "client TLS 1.3: AES-128-CCM and FFDHE 2048 (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CCM,
- .group = GNUTLS_GROUP_FFDHE2048,
- .server_prio = SPRIO":+AES-128-CCM",
- .client_prio = CPRIO":-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-ALL",
- .desc = "(TLS1.3)-(DHE-FFDHE2048)-(RSA-PSS-RSAE-SHA256)-(AES-128-CCM)",
- },
+ .name = "client TLS 1.3: AES-128-CCM and FFDHE 2048 (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CCM,
+ .group = GNUTLS_GROUP_FFDHE2048,
+ .server_prio = SPRIO ":+AES-128-CCM",
+ .client_prio =
+ CPRIO
+ ":-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-ALL",
+ .desc = "(TLS1.3)-(DHE-FFDHE2048)-(RSA-PSS-RSAE-SHA256)-(AES-128-CCM)",
+ },
{
- .name = "both TLS 1.3: AES-128-CCM and FFDHE 2048 (client)",
- .cipher = GNUTLS_CIPHER_AES_128_CCM,
- .group = GNUTLS_GROUP_FFDHE2048,
- .server_prio = SPRIO":+AES-128-CCM:+VERS-TLS1.3",
- .client_prio = CPRIO":-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-ALL",
- .desc = "(TLS1.3)-(DHE-FFDHE2048)-(RSA-PSS-RSAE-SHA256)-(AES-128-CCM)",
- },
+ .name = "both TLS 1.3: AES-128-CCM and FFDHE 2048 (client)",
+ .cipher = GNUTLS_CIPHER_AES_128_CCM,
+ .group = GNUTLS_GROUP_FFDHE2048,
+ .server_prio = SPRIO ":+AES-128-CCM:+VERS-TLS1.3",
+ .client_prio =
+ CPRIO
+ ":-CIPHER-ALL:+AES-128-CCM:+CIPHER-ALL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-ALL",
+ .desc = "(TLS1.3)-(DHE-FFDHE2048)-(RSA-PSS-RSAE-SHA256)-(AES-128-CCM)",
+ },
{
- .name = "server TLS 1.3: CHACHA20-POLY (server)",
- .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
- .not_on_fips = 1,
- .server_prio = SPRIO":-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:%SERVER_PRECEDENCE",
- .client_prio = CPRIO":+CHACHA20-POLY1305",
- .desc = "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(CHACHA20-POLY1305)",
- },
+ .name = "server TLS 1.3: CHACHA20-POLY (server)",
+ .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
+ .not_on_fips = 1,
+ .server_prio =
+ SPRIO ":-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:%SERVER_PRECEDENCE",
+ .client_prio = CPRIO ":+CHACHA20-POLY1305",
+ .desc =
+ "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(CHACHA20-POLY1305)",
+ },
{
- .name = "both TLS 1.3: CHACHA20-POLY (server)",
- .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
- .not_on_fips = 1,
- .server_prio = SPRIO":-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:%SERVER_PRECEDENCE",
- .client_prio = CPRIO":+CHACHA20-POLY1305:+VERS-TLS1.3",
- .desc = "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(CHACHA20-POLY1305)",
- },
+ .name = "both TLS 1.3: CHACHA20-POLY (server)",
+ .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
+ .not_on_fips = 1,
+ .server_prio =
+ SPRIO ":-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL:%SERVER_PRECEDENCE",
+ .client_prio = CPRIO ":+CHACHA20-POLY1305:+VERS-TLS1.3",
+ .desc =
+ "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(CHACHA20-POLY1305)",
+ },
{
- .name = "client TLS 1.3: CHACHA20-POLY (client)",
- .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
- .not_on_fips = 1,
- .server_prio = SPRIO":+CHACHA20-POLY1305",
- .client_prio = CPRIO":-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL",
- .desc = "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(CHACHA20-POLY1305)",
- },
+ .name = "client TLS 1.3: CHACHA20-POLY (client)",
+ .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
+ .not_on_fips = 1,
+ .server_prio = SPRIO ":+CHACHA20-POLY1305",
+ .client_prio = CPRIO ":-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL",
+ .desc =
+ "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(CHACHA20-POLY1305)",
+ },
{
- .name = "both TLS 1.3: CHACHA20-POLY (client)",
- .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
- .not_on_fips = 1,
- .server_prio = SPRIO":+CHACHA20-POLY1305",
- .client_prio = CPRIO":-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL",
- .desc = "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(CHACHA20-POLY1305)",
- }
+ .name = "both TLS 1.3: CHACHA20-POLY (client)",
+ .cipher = GNUTLS_CIPHER_CHACHA20_POLY1305,
+ .not_on_fips = 1,
+ .server_prio = SPRIO ":+CHACHA20-POLY1305",
+ .client_prio = CPRIO ":-CIPHER-ALL:+CHACHA20-POLY1305:+CIPHER-ALL",
+ .desc =
+ "(TLS1.3)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(CHACHA20-POLY1305)",
+ }
};
void doit(void)
@@ -163,7 +203,7 @@ void doit(void)
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/tls13-compat-mode.c b/tests/tls13-compat-mode.c
index e8f99802df..ec391e17dc 100644
--- a/tests/tls13-compat-mode.c
+++ b/tests/tls13-compat-mode.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <gnutls/gnutls.h>
@@ -47,7 +47,7 @@ struct data {
static int
handshake_callback(gnutls_session_t session, unsigned int htype,
unsigned post, unsigned int incoming,
- const gnutls_datum_t *msg)
+ const gnutls_datum_t * msg)
{
unsigned pos;
struct data *data;
@@ -72,8 +72,7 @@ handshake_callback(gnutls_session_t session, unsigned int htype,
return 0;
}
-static void
-test(const char *name, bool client_compat, bool server_compat)
+static void test(const char *name, bool client_compat, bool server_compat)
{
/* Server stuff. */
gnutls_certificate_credentials_t serverx509cred;
@@ -94,11 +93,11 @@ test(const char *name, bool client_compat, bool server_compat)
GNUTLS_X509_FMT_PEM);
assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
- assert(gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred) >= 0);
- assert(gnutls_priority_set_direct(server,
- server_compat ?
- COMPAT_PRIO : NO_COMPAT_PRIO,
- NULL) >= 0);
+ assert(gnutls_credentials_set
+ (server, GNUTLS_CRD_CERTIFICATE, serverx509cred) >= 0);
+ assert(gnutls_priority_set_direct
+ (server, server_compat ? COMPAT_PRIO : NO_COMPAT_PRIO,
+ NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -118,7 +117,8 @@ test(const char *name, bool client_compat, bool server_compat)
gnutls_transport_set_ptr(client, client);
data.compat = client_compat;
gnutls_session_set_ptr(client, &data);
- gnutls_handshake_set_hook_function(client, GNUTLS_HANDSHAKE_CLIENT_HELLO,
+ gnutls_handshake_set_hook_function(client,
+ GNUTLS_HANDSHAKE_CLIENT_HELLO,
GNUTLS_HOOK_POST,
handshake_callback);
diff --git a/tests/tls13-early-data-neg.c b/tests/tls13-early-data-neg.c
index 075c21f4ce..0312bbab8b 100644
--- a/tests/tls13-early-data-neg.c
+++ b/tests/tls13-early-data-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,23 +35,23 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/crypto.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <sys/wait.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
-#include "virt-time.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/crypto.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <sys/wait.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
+# include "virt-time.h"
/* This program tests the robustness of record sending with padding.
*/
@@ -66,20 +66,22 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
-#define SESSIONS 3
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
-#define EARLY_MSG "Hello TLS, it's early"
-#define PRIORITY "NORMAL:-VERS-ALL:+VERS-TLS1.3"
+# define SESSIONS 3
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
+# define EARLY_MSG "Hello TLS, it's early"
+# define PRIORITY "NORMAL:-VERS-ALL:+VERS-TLS1.3"
static const
-gnutls_datum_t hrnd = {(void*)"\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32};
+gnutls_datum_t hrnd = { (void *)
+ "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32
+};
static int gnutls_rnd_works;
-int __attribute__ ((visibility ("protected")))
-gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
+int __attribute__((visibility("protected")))
+ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
{
gnutls_rnd_works = 1;
@@ -92,23 +94,24 @@ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
return 0;
}
-gnutls_datum_t client_hello_msg = {NULL, 0};
+gnutls_datum_t client_hello_msg = { NULL, 0 };
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
assert(client_hello_msg.data == NULL);
- client_hello_msg.data = gnutls_malloc(msg->size+9);
+ client_hello_msg.data = gnutls_malloc(msg->size + 9);
assert(client_hello_msg.data != NULL);
- client_hello_msg.size = msg->size+9;
- memcpy(client_hello_msg.data+9, msg->data, msg->size);
+ client_hello_msg.size = msg->size + 9;
+ memcpy(client_hello_msg.data + 9, msg->data, msg->size);
/* reconstruct record header */
client_hello_msg.data[0] = 22;
client_hello_msg.data[1] = 3;
client_hello_msg.data[2] = 3;
- client_hello_msg.data[3] = (msg->size+4) >> 8;
- client_hello_msg.data[4] = (msg->size+4);
+ client_hello_msg.data[3] = (msg->size + 4) >> 8;
+ client_hello_msg.data[4] = (msg->size + 4);
client_hello_msg.data[5] = GNUTLS_HANDSHAKE_CLIENT_HELLO;
client_hello_msg.data[6] = 0;
@@ -125,7 +128,7 @@ static void client(int sds[])
gnutls_certificate_credentials_t x509_cred;
gnutls_session_t session;
int t;
- gnutls_datum_t session_data = {NULL, 0};
+ gnutls_datum_t session_data = { NULL, 0 };
if (debug) {
gnutls_global_set_log_function(client_log_func);
@@ -139,22 +142,29 @@ static void client(int sds[])
gnutls_certificate_allocate_credentials(&x509_cred);
- for (t = 0; t < SESSIONS-1; t++) {
+ for (t = 0; t < SESSIONS - 1; t++) {
int sd = sds[t];
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
- assert(gnutls_priority_set_direct(session, PRIORITY, NULL)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
+ assert(gnutls_priority_set_direct(session, PRIORITY, NULL) >=
+ 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ x509_cred);
gnutls_transport_set_int(session, sd);
if (t > 0) {
- assert(gnutls_session_set_data(session, session_data.data, session_data.size) >= 0);
- assert(gnutls_record_send_early_data(session, EARLY_MSG, sizeof(EARLY_MSG)) >= 0);
- assert(gnutls_handshake_set_random(session, &hrnd) >= 0);
-
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CLIENT_HELLO,
+ assert(gnutls_session_set_data
+ (session, session_data.data,
+ session_data.size) >= 0);
+ assert(gnutls_record_send_early_data
+ (session, EARLY_MSG, sizeof(EARLY_MSG)) >= 0);
+ assert(gnutls_handshake_set_random(session, &hrnd) >=
+ 0);
+
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CLIENT_HELLO,
GNUTLS_HOOK_POST,
handshake_callback);
}
@@ -178,28 +188,28 @@ static void client(int sds[])
if (t == 0) {
/* get the session data size */
- ret =
- gnutls_session_get_data2(session,
- &session_data);
+ ret = gnutls_session_get_data2(session, &session_data);
if (ret < 0)
fail("client: Getting resume data failed\n");
}
if (t > 0) {
if (!gnutls_session_is_resumed(session)) {
- fail("client: session_is_resumed error (%d)\n", t);
+ fail("client: session_is_resumed error (%d)\n",
+ t);
}
}
gnutls_record_send(session, MSG, strlen(MSG));
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer));
+ ret =
+ gnutls_record_recv(session, buffer, sizeof(buffer));
} while (ret == GNUTLS_E_AGAIN);
if (ret == 0) {
if (debug)
success
- ("client: Peer has closed the TLS connection\n");
+ ("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -215,7 +225,9 @@ static void client(int sds[])
assert(client_hello_msg.data != NULL);
- ret = send(sds[SESSIONS-1], client_hello_msg.data, client_hello_msg.size, 0);
+ ret =
+ send(sds[SESSIONS - 1], client_hello_msg.data,
+ client_hello_msg.size, 0);
assert(ret == (int)client_hello_msg.size);
end:
@@ -224,10 +236,9 @@ static void client(int sds[])
gnutls_certificate_free_credentials(x509_cred);
}
-
static pid_t child;
-#define MAX_CLIENT_HELLO_RECORDED 10
+# define MAX_CLIENT_HELLO_RECORDED 10
struct storage_st {
gnutls_datum_t entries[MAX_CLIENT_HELLO_RECORDED];
@@ -235,7 +246,8 @@ struct storage_st {
};
static int
-storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_datum_t *value)
+storage_add(void *ptr, time_t expires, const gnutls_datum_t * key,
+ const gnutls_datum_t * value)
{
struct storage_st *storage = ptr;
gnutls_datum_t *datum;
@@ -243,7 +255,8 @@ storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_d
for (i = 0; i < storage->num_entries; i++) {
if (key->size == storage->entries[i].size &&
- memcmp(storage->entries[i].data, key->data, key->size) == 0) {
+ memcmp(storage->entries[i].data, key->data,
+ key->size) == 0) {
return GNUTLS_E_DB_ENTRY_EXISTS;
}
}
@@ -266,8 +279,7 @@ storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_d
return 0;
}
-static void
-storage_clear(struct storage_st *storage)
+static void storage_clear(struct storage_st *storage)
{
size_t i;
@@ -300,8 +312,7 @@ static void server(int sds[])
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_session_ticket_key_generate(&session_ticket_key);
@@ -316,11 +327,15 @@ static void server(int sds[])
success("=== session %d ===\n", t);
- assert(gnutls_init(&session, GNUTLS_SERVER|GNUTLS_ENABLE_EARLY_DATA)>=0);
+ assert(gnutls_init
+ (&session,
+ GNUTLS_SERVER | GNUTLS_ENABLE_EARLY_DATA) >= 0);
- assert(gnutls_priority_set_direct(session, PRIORITY, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, PRIORITY, NULL) >=
+ 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ x509_cred);
gnutls_session_ticket_enable_server(session,
&session_ticket_key);
@@ -333,9 +348,11 @@ static void server(int sds[])
ret = gnutls_handshake(session);
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
- if (t == SESSIONS-1) {
+ if (t == SESSIONS - 1) {
/* duplicate data expected */
- if (ret < 0 && !(gnutls_session_get_flags(session) & GNUTLS_SFLAGS_EARLY_DATA)) {
+ if (ret < 0
+ && !(gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_EARLY_DATA)) {
success("we detected the duplicate data!\n");
close(sd);
gnutls_deinit(session);
@@ -357,35 +374,47 @@ static void server(int sds[])
if (t > 0) {
if (!gnutls_session_is_resumed(session)) {
- fail("server: session_is_resumed error (%d)\n", t);
+ fail("server: session_is_resumed error (%d)\n",
+ t);
}
/* as we reuse the same ticket twice, expect
* early data only on the first resumption */
if (t == 1) {
if (gnutls_rnd_works) {
- if (!(gnutls_session_get_flags(session) & GNUTLS_SFLAGS_EARLY_DATA)) {
+ if (!
+ (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_EARLY_DATA)) {
fail("server: early data is not received (%d)\n", t);
}
} else {
- success("server: gnutls_rnd() could not be overridden, skip checking replay (%d)\n", t);
+ success
+ ("server: gnutls_rnd() could not be overridden, skip checking replay (%d)\n",
+ t);
}
- ret = gnutls_record_recv_early_data(session, buffer, sizeof(buffer));
+ ret =
+ gnutls_record_recv_early_data(session,
+ buffer,
+ sizeof
+ (buffer));
if (ret < 0) {
- fail("server: failed to retrieve early data: %s\n",
- gnutls_strerror(ret));
+ fail("server: failed to retrieve early data: %s\n", gnutls_strerror(ret));
}
- if (ret != sizeof(EARLY_MSG) || memcmp(buffer, EARLY_MSG, ret))
+ if (ret != sizeof(EARLY_MSG)
+ || memcmp(buffer, EARLY_MSG, ret))
fail("server: early data mismatch\n");
} else {
if (gnutls_rnd_works) {
- if (gnutls_session_get_flags(session) & GNUTLS_SFLAGS_EARLY_DATA) {
+ if (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_EARLY_DATA) {
fail("server: early data is not rejected (%d)\n", t);
}
} else {
- success("server: gnutls_rnd() could not be overridden, skip checking replay (%d)\n", t);
+ success
+ ("server: gnutls_rnd() could not be overridden, skip checking replay (%d)\n",
+ t);
}
}
}
diff --git a/tests/tls13-early-data-neg2.c b/tests/tls13-early-data-neg2.c
index 37b6c3ecf8..ea71a3d36c 100644
--- a/tests/tls13-early-data-neg2.c
+++ b/tests/tls13-early-data-neg2.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,23 +35,23 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/crypto.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <sys/wait.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
-#include "virt-time.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/crypto.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <sys/wait.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
+# include "virt-time.h"
/* This program checks that early data is refused upon resumption failure.
*/
@@ -66,12 +66,11 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
-#define SESSIONS 2
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
-#define EARLY_MSG "Hello TLS, it's early"
-#define PRIORITY "NORMAL:-VERS-ALL:+VERS-TLS1.3"
+# define SESSIONS 2
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
+# define EARLY_MSG "Hello TLS, it's early"
+# define PRIORITY "NORMAL:-VERS-ALL:+VERS-TLS1.3"
static void client(int sds[])
{
@@ -80,7 +79,7 @@ static void client(int sds[])
gnutls_certificate_credentials_t x509_cred;
gnutls_session_t session;
int t;
- gnutls_datum_t session_data = {NULL, 0};
+ gnutls_datum_t session_data = { NULL, 0 };
if (debug) {
gnutls_global_set_log_function(client_log_func);
@@ -97,16 +96,21 @@ static void client(int sds[])
for (t = 0; t < SESSIONS; t++) {
int sd = sds[t];
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
- assert(gnutls_priority_set_direct(session, PRIORITY, NULL)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
+ assert(gnutls_priority_set_direct(session, PRIORITY, NULL) >=
+ 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ x509_cred);
gnutls_transport_set_int(session, sd);
if (t > 0) {
- assert(gnutls_session_set_data(session, session_data.data, session_data.size) >= 0);
- assert(gnutls_record_send_early_data(session, EARLY_MSG, sizeof(EARLY_MSG)) >= 0);
+ assert(gnutls_session_set_data
+ (session, session_data.data,
+ session_data.size) >= 0);
+ assert(gnutls_record_send_early_data
+ (session, EARLY_MSG, sizeof(EARLY_MSG)) >= 0);
}
/* Perform the TLS handshake
@@ -127,9 +131,7 @@ static void client(int sds[])
if (t == 0) {
/* get the session data size */
- ret =
- gnutls_session_get_data2(session,
- &session_data);
+ ret = gnutls_session_get_data2(session, &session_data);
if (ret < 0)
fail("client: Getting resume data failed\n");
}
@@ -141,12 +143,13 @@ static void client(int sds[])
gnutls_record_send(session, MSG, strlen(MSG));
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer));
+ ret =
+ gnutls_record_recv(session, buffer, sizeof(buffer));
} while (ret == GNUTLS_E_AGAIN);
if (ret == 0) {
if (debug)
success
- ("client: Peer has closed the TLS connection\n");
+ ("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -164,10 +167,9 @@ static void client(int sds[])
gnutls_certificate_free_credentials(x509_cred);
}
-
static pid_t child;
-#define MAX_CLIENT_HELLO_RECORDED 10
+# define MAX_CLIENT_HELLO_RECORDED 10
struct storage_st {
gnutls_datum_t entries[MAX_CLIENT_HELLO_RECORDED];
@@ -175,7 +177,8 @@ struct storage_st {
};
static int
-storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_datum_t *value)
+storage_add(void *ptr, time_t expires, const gnutls_datum_t * key,
+ const gnutls_datum_t * value)
{
struct storage_st *storage = ptr;
gnutls_datum_t *datum;
@@ -183,7 +186,8 @@ storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_d
for (i = 0; i < storage->num_entries; i++) {
if (key->size == storage->entries[i].size &&
- memcmp(storage->entries[i].data, key->data, key->size) == 0) {
+ memcmp(storage->entries[i].data, key->data,
+ key->size) == 0) {
return GNUTLS_E_DB_ENTRY_EXISTS;
}
}
@@ -206,8 +210,7 @@ storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_d
return 0;
}
-static void
-storage_clear(struct storage_st *storage)
+static void storage_clear(struct storage_st *storage)
{
size_t i;
@@ -240,8 +243,7 @@ static void server(int sds[])
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
ret = gnutls_anti_replay_init(&anti_replay);
if (ret < 0)
@@ -254,11 +256,15 @@ static void server(int sds[])
success("=== session %d ===\n", t);
- assert(gnutls_init(&session, GNUTLS_SERVER|GNUTLS_ENABLE_EARLY_DATA)>=0);
+ assert(gnutls_init
+ (&session,
+ GNUTLS_SERVER | GNUTLS_ENABLE_EARLY_DATA) >= 0);
- assert(gnutls_priority_set_direct(session, PRIORITY, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, PRIORITY, NULL) >=
+ 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ x509_cred);
/* Intentionally overwrite the previous key to cause resumption
* failure. */
@@ -287,8 +293,10 @@ static void server(int sds[])
fail("server: Session unexpectedly resumed (%d)\n", t);
}
- if (gnutls_session_get_flags(session) & GNUTLS_SFLAGS_EARLY_DATA) {
- fail("server: Unexpected early data received (%d)\n", t);
+ if (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_EARLY_DATA) {
+ fail("server: Unexpected early data received (%d)\n",
+ t);
}
for (;;) {
diff --git a/tests/tls13-early-data.c b/tests/tls13-early-data.c
index 381ecbdb97..b89fe75367 100644
--- a/tests/tls13-early-data.c
+++ b/tests/tls13-early-data.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdbool.h>
@@ -36,31 +36,31 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/crypto.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
-#include "virt-time.h"
-#define MIN(x,y) (((x)<(y))?(x):(y))
-
-#define TRACE_CLIENT 1
-#define TRACE_SERVER 2
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/crypto.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
+# include "virt-time.h"
+# define MIN(x,y) (((x)<(y))?(x):(y))
+
+# define TRACE_CLIENT 1
+# define TRACE_SERVER 2
/* To reproduce the entries in {client,server}-secrets.h, set this to
* either TRACE_CLIENT or TRACE_SERVER.
*/
-#define TRACE 0
+# define TRACE 0
/* This program tests the robustness of record sending with padding.
*/
@@ -75,13 +75,12 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
/* A very basic TLS client.
*/
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
-#define EARLY_MSG "Hello TLS, it's early"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
+# define EARLY_MSG "Hello TLS, it's early"
extern unsigned int _gnutls_global_version;
@@ -91,19 +90,26 @@ extern unsigned int _gnutls_global_version;
* is to check that the early data is encrypted with the ciphersuite
* selected during the initial handshake, not the resuming handshakes.
*/
-#define SESSIONS 3
-#define TLS13_AES_128_GCM "NONE:+VERS-TLS1.3:+AES-128-GCM:+AEAD:+SIGN-RSA-PSS-RSAE-SHA384:+GROUP-SECP256R1"
-#define TLS13_CHACHA20_POLY1305 "NONE:+VERS-TLS1.3:+CHACHA20-POLY1305:+AEAD:+SIGN-RSA-PSS-RSAE-SHA384:+GROUP-SECP256R1"
+# define SESSIONS 3
+# define TLS13_AES_128_GCM "NONE:+VERS-TLS1.3:+AES-128-GCM:+AEAD:+SIGN-RSA-PSS-RSAE-SHA384:+GROUP-SECP256R1"
+# define TLS13_CHACHA20_POLY1305 "NONE:+VERS-TLS1.3:+CHACHA20-POLY1305:+AEAD:+SIGN-RSA-PSS-RSAE-SHA384:+GROUP-SECP256R1"
static const
-gnutls_datum_t hrnd = {(void*)"\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32};
+gnutls_datum_t hrnd = { (void *)
+ "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32
+};
+
static const
-gnutls_datum_t hsrnd = {(void*)"\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32};
+gnutls_datum_t hsrnd = { (void *)
+ "\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32
+};
static int gnutls_rnd_works;
-int __attribute__ ((visibility ("protected")))
-gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
+int __attribute__((visibility("protected")))
+ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
{
gnutls_rnd_works = 1;
@@ -116,8 +122,8 @@ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
return 0;
}
-#define MAX_SECRET_SIZE 64
-#define MAX_SECRET_COUNT 10
+# define MAX_SECRET_SIZE 64
+# define MAX_SECRET_COUNT 10
struct secret {
gnutls_record_encryption_level_t level;
@@ -128,62 +134,62 @@ struct secret {
uint8_t secret_write_buf[MAX_SECRET_SIZE];
};
-#include "client-secrets.h"
-#include "server-secrets.h"
+# include "client-secrets.h"
+# include "server-secrets.h"
struct secrets_expected {
const struct secret *secrets;
size_t count;
};
-#define SIZEOF(array) (sizeof(array) / sizeof(array[0]))
+# define SIZEOF(array) (sizeof(array) / sizeof(array[0]))
static const struct secrets_expected client_normal[SESSIONS] = {
- { client_normal_0, SIZEOF(client_normal_0) },
- { client_normal_1, SIZEOF(client_normal_1) },
- { client_normal_2, SIZEOF(client_normal_2) },
+ {client_normal_0, SIZEOF(client_normal_0)},
+ {client_normal_1, SIZEOF(client_normal_1)},
+ {client_normal_2, SIZEOF(client_normal_2)},
};
static const struct secrets_expected client_small[SESSIONS] = {
- { client_small_0, SIZEOF(client_small_0) },
- { client_small_1, SIZEOF(client_small_1) },
- { client_small_2, SIZEOF(client_small_2) },
+ {client_small_0, SIZEOF(client_small_0)},
+ {client_small_1, SIZEOF(client_small_1)},
+ {client_small_2, SIZEOF(client_small_2)},
};
static const struct secrets_expected client_empty[SESSIONS] = {
- { client_empty_0, SIZEOF(client_empty_0) },
- { client_empty_1, SIZEOF(client_empty_1) },
- { client_empty_2, SIZEOF(client_empty_2) },
+ {client_empty_0, SIZEOF(client_empty_0)},
+ {client_empty_1, SIZEOF(client_empty_1)},
+ {client_empty_2, SIZEOF(client_empty_2)},
};
static const struct secrets_expected client_explicit[SESSIONS] = {
- { client_explicit_0, SIZEOF(client_explicit_0) },
- { client_explicit_1, SIZEOF(client_explicit_1) },
- { client_explicit_2, SIZEOF(client_explicit_2) },
+ {client_explicit_0, SIZEOF(client_explicit_0)},
+ {client_explicit_1, SIZEOF(client_explicit_1)},
+ {client_explicit_2, SIZEOF(client_explicit_2)},
};
static const struct secrets_expected server_normal[SESSIONS] = {
- { server_normal_0, SIZEOF(server_normal_0) },
- { server_normal_1, SIZEOF(server_normal_1) },
- { server_normal_2, SIZEOF(server_normal_2) },
+ {server_normal_0, SIZEOF(server_normal_0)},
+ {server_normal_1, SIZEOF(server_normal_1)},
+ {server_normal_2, SIZEOF(server_normal_2)},
};
static const struct secrets_expected server_small[SESSIONS] = {
- { server_small_0, SIZEOF(server_small_0) },
- { server_small_1, SIZEOF(server_small_1) },
- { server_small_2, SIZEOF(server_small_2) },
+ {server_small_0, SIZEOF(server_small_0)},
+ {server_small_1, SIZEOF(server_small_1)},
+ {server_small_2, SIZEOF(server_small_2)},
};
static const struct secrets_expected server_empty[SESSIONS] = {
- { server_empty_0, SIZEOF(server_empty_0) },
- { server_empty_1, SIZEOF(server_empty_1) },
- { server_empty_2, SIZEOF(server_empty_2) },
+ {server_empty_0, SIZEOF(server_empty_0)},
+ {server_empty_1, SIZEOF(server_empty_1)},
+ {server_empty_2, SIZEOF(server_empty_2)},
};
static const struct secrets_expected server_explicit[SESSIONS] = {
- { server_explicit_0, SIZEOF(server_explicit_0) },
- { server_explicit_1, SIZEOF(server_explicit_1) },
- { server_explicit_2, SIZEOF(server_explicit_2) },
+ {server_explicit_0, SIZEOF(server_explicit_0)},
+ {server_explicit_1, SIZEOF(server_explicit_1)},
+ {server_explicit_2, SIZEOF(server_explicit_2)},
};
struct fixture {
@@ -199,50 +205,49 @@ struct fixture {
static const struct fixture fixtures[] = {
{
- .name = "normal",
- .cflags = 0,
- .sflags = 0,
- .early_data = { (uint8_t *)EARLY_MSG, sizeof(EARLY_MSG) },
- .max_early_data_size = MAX_BUF,
- .expect_early_data = true,
- .client_secrets = client_normal,
- .server_secrets = server_normal,
- },
+ .name = "normal",
+ .cflags = 0,
+ .sflags = 0,
+ .early_data = {(uint8_t *) EARLY_MSG, sizeof(EARLY_MSG)},
+ .max_early_data_size = MAX_BUF,
+ .expect_early_data = true,
+ .client_secrets = client_normal,
+ .server_secrets = server_normal,
+ },
{
- .name = "small",
- .cflags = 0,
- .sflags = 0,
- .early_data = { (uint8_t *)EARLY_MSG, sizeof(EARLY_MSG) },
- .max_early_data_size = 10,
- .expect_early_data = true,
- .client_secrets = client_small,
- .server_secrets = server_small,
- },
+ .name = "small",
+ .cflags = 0,
+ .sflags = 0,
+ .early_data = {(uint8_t *) EARLY_MSG, sizeof(EARLY_MSG)},
+ .max_early_data_size = 10,
+ .expect_early_data = true,
+ .client_secrets = client_small,
+ .server_secrets = server_small,
+ },
{
- .name = "empty",
- .cflags = 0,
- .sflags = 0,
- .early_data = { NULL, 0 },
- .max_early_data_size = MAX_BUF,
- .expect_early_data = false,
- .client_secrets = client_empty,
- .server_secrets = server_empty,
- },
+ .name = "empty",
+ .cflags = 0,
+ .sflags = 0,
+ .early_data = {NULL, 0},
+ .max_early_data_size = MAX_BUF,
+ .expect_early_data = false,
+ .client_secrets = client_empty,
+ .server_secrets = server_empty,
+ },
{
- .name = "explicit",
- .cflags = GNUTLS_ENABLE_EARLY_DATA,
- .sflags = 0,
- .early_data = { NULL, 0 },
- .max_early_data_size = MAX_BUF,
- .expect_early_data = false,
- .client_secrets = client_explicit,
- .server_secrets = server_explicit,
- },
+ .name = "explicit",
+ .cflags = GNUTLS_ENABLE_EARLY_DATA,
+ .sflags = 0,
+ .early_data = {NULL, 0},
+ .max_early_data_size = MAX_BUF,
+ .expect_early_data = false,
+ .client_secrets = client_explicit,
+ .server_secrets = server_explicit,
+ },
};
-#if TRACE
-static void
-print_secret(FILE *out, struct secret *secret)
+# if TRACE
+static void print_secret(FILE * out, struct secret *secret)
{
const char *level;
@@ -287,7 +292,7 @@ print_secret(FILE *out, struct secret *secret)
}
static void
-print_secrets(FILE *out, const char *side, const char *name, int t,
+print_secrets(FILE * out, const char *side, const char *name, int t,
struct secret *secrets, size_t count)
{
size_t i;
@@ -301,7 +306,7 @@ print_secrets(FILE *out, const char *side, const char *name, int t,
}
fputs("};\n\n", out);
}
-#endif
+# endif
static void
check_secrets(const struct secret *secrets, size_t count,
@@ -321,12 +326,14 @@ check_secrets(const struct secret *secrets, size_t count,
}
if (secrets[i].secret_size != expected->secrets[i].secret_size) {
fail("unexpected secret size: %zu != %zu\n",
- secrets[i].secret_size, expected->secrets[i].secret_size);
+ secrets[i].secret_size,
+ expected->secrets[i].secret_size);
}
if ((secrets[i].secret_read == NULL) !=
(expected->secrets[i].secret_read == NULL)) {
fail("unexpected secret for read: %p != %p\n",
- secrets[i].secret_read, expected->secrets[i].secret_read);
+ secrets[i].secret_read,
+ expected->secrets[i].secret_read);
}
if (expected->secrets[i].secret_read &&
memcmp(secrets[i].secret_read,
@@ -337,7 +344,8 @@ check_secrets(const struct secret *secrets, size_t count,
if ((secrets[i].secret_write == NULL) !=
(expected->secrets[i].secret_write == NULL)) {
fail("unexpected secret for write: %p != %p\n",
- secrets[i].secret_write, expected->secrets[i].secret_write);
+ secrets[i].secret_write,
+ expected->secrets[i].secret_write);
}
if (expected->secrets[i].secret_write &&
memcmp(secrets[i].secret_write,
@@ -358,8 +366,7 @@ static int
secret_callback(gnutls_session_t session,
gnutls_record_encryption_level_t level,
const void *secret_read,
- const void *secret_write,
- size_t secret_size)
+ const void *secret_write, size_t secret_size)
{
struct callback_data *data = gnutls_session_get_ptr(session);
struct secret *secret = &data->secrets[data->secret_callback_called];
@@ -375,16 +382,12 @@ secret_callback(gnutls_session_t session,
cipher_algo = gnutls_early_cipher_get(session);
if (cipher_algo != GNUTLS_CIPHER_AES_128_GCM) {
- fail("unexpected cipher used for early data: %s != %s\n",
- gnutls_cipher_get_name(cipher_algo),
- gnutls_cipher_get_name(GNUTLS_CIPHER_AES_128_GCM));
+ fail("unexpected cipher used for early data: %s != %s\n", gnutls_cipher_get_name(cipher_algo), gnutls_cipher_get_name(GNUTLS_CIPHER_AES_128_GCM));
}
digest_algo = gnutls_early_prf_hash_get(session);
if (digest_algo != GNUTLS_DIG_SHA256) {
- fail("unexpected PRF hash used for early data: %s != %s\n",
- gnutls_digest_get_name(digest_algo),
- gnutls_digest_get_name(GNUTLS_DIG_SHA256));
+ fail("unexpected PRF hash used for early data: %s != %s\n", gnutls_digest_get_name(digest_algo), gnutls_digest_get_name(GNUTLS_DIG_SHA256));
}
}
}
@@ -412,15 +415,14 @@ secret_callback(gnutls_session_t session,
return 0;
}
-static void
-client(int sds[], const struct fixture *fixture)
+static void client(int sds[], const struct fixture *fixture)
{
int ret;
char buffer[MAX_BUF + 1];
gnutls_certificate_credentials_t x509_cred;
gnutls_session_t session;
int t;
- gnutls_datum_t session_data = {NULL, 0};
+ gnutls_datum_t session_data = { NULL, 0 };
global_init();
@@ -438,10 +440,15 @@ client(int sds[], const struct fixture *fixture)
int sd = sds[t];
struct callback_data callback_data;
- assert(gnutls_init(&session, GNUTLS_CLIENT|fixture->cflags)>=0);
- assert(gnutls_priority_set_direct(session, t == 0 ? TLS13_AES_128_GCM : TLS13_CHACHA20_POLY1305, NULL)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | fixture->cflags) >=
+ 0);
+ assert(gnutls_priority_set_direct
+ (session,
+ t == 0 ? TLS13_AES_128_GCM : TLS13_CHACHA20_POLY1305,
+ NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ x509_cred);
gnutls_transport_set_int(session, sd);
assert(gnutls_handshake_set_random(session, &hrnd) >= 0);
@@ -452,17 +459,20 @@ client(int sds[], const struct fixture *fixture)
gnutls_handshake_set_secret_function(session, secret_callback);
if (t > 0) {
- assert(gnutls_session_set_data(session, session_data.data, session_data.size) >= 0);
+ assert(gnutls_session_set_data
+ (session, session_data.data,
+ session_data.size) >= 0);
/* The server should have advertised the same maximum. */
if (gnutls_record_get_max_early_data_size(session) !=
fixture->max_early_data_size)
- fail("client: max_early_data_size mismatch %d != %d\n",
- (int) gnutls_record_get_max_early_data_size(session),
- (int) fixture->max_early_data_size);
+ fail("client: max_early_data_size mismatch %d != %d\n", (int)gnutls_record_get_max_early_data_size(session), (int)fixture->max_early_data_size);
assert(gnutls_record_send_early_data(session,
- fixture->early_data.data,
- MIN(fixture->early_data.size,
- fixture->max_early_data_size)) >= 0);
+ fixture->early_data.
+ data,
+ MIN
+ (fixture->early_data.size,
+ fixture->max_early_data_size))
+ >= 0);
}
/* Perform the TLS handshake
@@ -482,13 +492,14 @@ client(int sds[], const struct fixture *fixture)
}
if (!gnutls_rnd_works) {
- success("client: gnutls_rnd() could not be overridden\n");
+ success
+ ("client: gnutls_rnd() could not be overridden\n");
} else {
-#if TRACE == TRACE_CLIENT
+# if TRACE == TRACE_CLIENT
print_secrets(stderr, "client", fixture->name, t,
callback_data.secrets,
callback_data.secret_callback_called);
-#endif
+# endif
check_secrets(callback_data.secrets,
callback_data.secret_callback_called,
&fixture->client_secrets[t]);
@@ -503,28 +514,28 @@ client(int sds[], const struct fixture *fixture)
if (t == 0) {
/* get the session data size */
- ret =
- gnutls_session_get_data2(session,
- &session_data);
+ ret = gnutls_session_get_data2(session, &session_data);
if (ret < 0)
fail("client: Getting resume data failed\n");
}
if (t > 0) {
if (!gnutls_session_is_resumed(session)) {
- fail("client: session_is_resumed error (%d)\n", t);
+ fail("client: session_is_resumed error (%d)\n",
+ t);
}
}
gnutls_record_send(session, MSG, strlen(MSG));
do {
- ret = gnutls_record_recv(session, buffer, sizeof(buffer));
+ ret =
+ gnutls_record_recv(session, buffer, sizeof(buffer));
} while (ret == GNUTLS_E_AGAIN);
if (ret == 0) {
if (debug)
success
- ("client: Peer has closed the TLS connection\n");
+ ("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -544,10 +555,9 @@ client(int sds[], const struct fixture *fixture)
gnutls_global_deinit();
}
-
static pid_t child;
-#define MAX_CLIENT_HELLO_RECORDED 10
+# define MAX_CLIENT_HELLO_RECORDED 10
struct storage_st {
gnutls_datum_t entries[MAX_CLIENT_HELLO_RECORDED];
@@ -555,7 +565,8 @@ struct storage_st {
};
static int
-storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_datum_t *value)
+storage_add(void *ptr, time_t expires, const gnutls_datum_t * key,
+ const gnutls_datum_t * value)
{
struct storage_st *storage = ptr;
gnutls_datum_t *datum;
@@ -563,7 +574,8 @@ storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_d
for (i = 0; i < storage->num_entries; i++) {
if (key->size == storage->entries[i].size &&
- memcmp(storage->entries[i].data, key->data, key->size) == 0) {
+ memcmp(storage->entries[i].data, key->data,
+ key->size) == 0) {
return GNUTLS_E_DB_ENTRY_EXISTS;
}
}
@@ -586,8 +598,7 @@ storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_d
return 0;
}
-static void
-storage_clear(struct storage_st *storage)
+static void storage_clear(struct storage_st *storage)
{
size_t i;
@@ -596,8 +607,7 @@ storage_clear(struct storage_st *storage)
storage->num_entries = 0;
}
-static void
-server(int sds[], const struct fixture *fixture)
+static void server(int sds[], const struct fixture *fixture)
{
int ret;
char buffer[MAX_BUF + 1];
@@ -625,8 +635,7 @@ server(int sds[], const struct fixture *fixture)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_session_ticket_key_generate(&session_ticket_key);
@@ -641,11 +650,17 @@ server(int sds[], const struct fixture *fixture)
int sd = sds[t];
struct callback_data callback_data;
- assert(gnutls_init(&session, GNUTLS_SERVER|GNUTLS_ENABLE_EARLY_DATA)>=0);
+ assert(gnutls_init
+ (&session,
+ GNUTLS_SERVER | GNUTLS_ENABLE_EARLY_DATA) >= 0);
- assert(gnutls_priority_set_direct(session, t == 0 ? TLS13_AES_128_GCM : TLS13_CHACHA20_POLY1305, NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session,
+ t == 0 ? TLS13_AES_128_GCM : TLS13_CHACHA20_POLY1305,
+ NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ x509_cred);
gnutls_session_ticket_enable_server(session,
&session_ticket_key);
@@ -656,7 +671,8 @@ server(int sds[], const struct fixture *fixture)
* until max_early_data_size without decryption
*/
if (t < 2)
- (void) gnutls_record_set_max_early_data_size(session, fixture->max_early_data_size);
+ (void)gnutls_record_set_max_early_data_size(session,
+ fixture->max_early_data_size);
assert(gnutls_handshake_set_random(session, &hsrnd) >= 0);
gnutls_transport_set_int(session, sd);
@@ -681,12 +697,14 @@ server(int sds[], const struct fixture *fixture)
if (t > 0) {
if (!gnutls_session_is_resumed(session)) {
- fail("server: session_is_resumed error (%d)\n", t);
+ fail("server: session_is_resumed error (%d)\n",
+ t);
}
}
if (!gnutls_rnd_works) {
- success("server: gnutls_rnd() could not be overridden\n");
+ success
+ ("server: gnutls_rnd() could not be overridden\n");
goto skip_early_data;
}
@@ -696,12 +714,11 @@ server(int sds[], const struct fixture *fixture)
fail("negotiated unexpected cipher: %s\n",
gnutls_cipher_get_name(ret));
}
-
-#if TRACE == TRACE_SERVER
+# if TRACE == TRACE_SERVER
print_secrets(stderr, "server", fixture->name, t,
callback_data.secrets,
callback_data.secret_callback_called);
-#endif
+# endif
check_secrets(callback_data.secrets,
callback_data.secret_callback_called,
&fixture->server_secrets[t]);
@@ -710,42 +727,47 @@ server(int sds[], const struct fixture *fixture)
* early data only on the first resumption */
if (t == 1) {
if (fixture->expect_early_data &&
- !(gnutls_session_get_flags(session) & GNUTLS_SFLAGS_EARLY_DATA)) {
- fail("server: early data is not received (%d)\n",
- t);
+ !(gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_EARLY_DATA)) {
+ fail("server: early data is not received (%d)\n", t);
}
- ret = gnutls_record_recv_early_data(session, buffer, sizeof(buffer));
+ ret =
+ gnutls_record_recv_early_data(session, buffer,
+ sizeof(buffer));
if (ret < 0) {
if (fixture->early_data.size == 0 ||
fixture->max_early_data_size == 0) {
- if (ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
- fail("server: unexpected error code when retrieving empty early data: %s\n",
- gnutls_strerror(ret));
+ if (ret !=
+ GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
+ {
+ fail("server: unexpected error code when retrieving empty early data: %s\n", gnutls_strerror(ret));
}
} else {
- fail("server: failed to retrieve early data: %s\n",
- gnutls_strerror(ret));
+ fail("server: failed to retrieve early data: %s\n", gnutls_strerror(ret));
}
} else {
if (fixture->early_data.size == 0 ||
fixture->max_early_data_size == 0) {
- fail("server: unexpected early data received: %d\n",
- ret);
- } else if ((size_t) ret != MIN(fixture->early_data.size,
- fixture->max_early_data_size) ||
- memcmp(buffer, fixture->early_data.data, ret)) {
+ fail("server: unexpected early data received: %d\n", ret);
+ } else if ((size_t)ret !=
+ MIN(fixture->early_data.size,
+ fixture->max_early_data_size)
+ || memcmp(buffer,
+ fixture->early_data.data,
+ ret)) {
fail("server: early data mismatch\n");
}
}
} else if (t == 2) {
if (fixture->expect_early_data &&
- gnutls_session_get_flags(session) & GNUTLS_SFLAGS_EARLY_DATA) {
+ gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_EARLY_DATA) {
fail("server: early data is not rejected (%d)\n", t);
}
}
- skip_early_data:
+ skip_early_data:
/* see the Getting peer's information example */
/* print_info(session); */
@@ -760,7 +782,8 @@ server(int sds[], const struct fixture *fixture)
break;
} else if (ret < 0) {
kill(child, SIGTERM);
- fail("server: Error: %s\n", gnutls_strerror(ret));
+ fail("server: Error: %s\n",
+ gnutls_strerror(ret));
} else if (ret > 0) {
/* echo data back to the client
*/
@@ -791,8 +814,7 @@ server(int sds[], const struct fixture *fixture)
success("server: finished\n");
}
-static void
-start(const struct fixture *fixture)
+static void start(const struct fixture *fixture)
{
int client_sds[SESSIONS], server_sds[SESSIONS];
int i;
diff --git a/tests/tls13-early-start.c b/tests/tls13-early-start.c
index 3c79dba983..41002668a2 100644
--- a/tests/tls13-early-start.c
+++ b/tests/tls13-early-start.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests support for early start in TLS1.3 handshake */
@@ -52,11 +52,10 @@ static void tls_log_func(int level, const char *str)
static
void try_with_key_fail(const char *name, const char *client_prio,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *cli_cert,
- const gnutls_datum_t *cli_key,
- unsigned init_flags)
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * cli_cert,
+ const gnutls_datum_t * cli_key, unsigned init_flags)
{
int ret;
char buffer[256];
@@ -83,9 +82,8 @@ void try_with_key_fail(const char *name, const char *client_prio,
if (ret < 0)
fail("Could not set key/cert: %s\n", gnutls_strerror(ret));
- assert(gnutls_init(&server, GNUTLS_SERVER|init_flags)>=0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ assert(gnutls_init(&server, GNUTLS_SERVER | init_flags) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
assert(gnutls_priority_set_direct(server, client_prio, NULL) >= 0);
@@ -102,7 +100,8 @@ void try_with_key_fail(const char *name, const char *client_prio,
gnutls_certificate_set_x509_key_mem(clientx509cred,
cli_cert, cli_key,
GNUTLS_X509_FMT_PEM);
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUIRE);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUIRE);
}
ret = gnutls_init(&client, GNUTLS_CLIENT);
@@ -110,7 +109,7 @@ void try_with_key_fail(const char *name, const char *client_prio,
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -135,7 +134,7 @@ void try_with_key_fail(const char *name, const char *client_prio,
assert(version == GNUTLS_TLS1_3);
memset(buffer, 0, sizeof(buffer));
- assert(gnutls_record_send(server, MSG, strlen(MSG))>=0);
+ assert(gnutls_record_send(server, MSG, strlen(MSG)) >= 0);
ret = gnutls_record_recv(client, buffer, sizeof(buffer));
if (ret == 0) {
@@ -147,12 +146,13 @@ void try_with_key_fail(const char *name, const char *client_prio,
}
if (ret != strlen(MSG) || memcmp(MSG, buffer, ret) != 0) {
- fail("client: Error in data received. Expected %d, got %d\n", (int)strlen(MSG), ret);
+ fail("client: Error in data received. Expected %d, got %d\n",
+ (int)strlen(MSG), ret);
exit(1);
}
memset(buffer, 0, sizeof(buffer));
- assert(gnutls_record_send(client, MSG, strlen(MSG))>=0);
+ assert(gnutls_record_send(client, MSG, strlen(MSG)) >= 0);
ret = gnutls_record_recv(server, buffer, sizeof(buffer));
if (ret == 0) {
@@ -162,7 +162,8 @@ void try_with_key_fail(const char *name, const char *client_prio,
}
if (ret != strlen(MSG) || memcmp(MSG, buffer, ret) != 0) {
- fail("client: Error in data received. Expected %d, got %d\n", (int)strlen(MSG), ret);
+ fail("client: Error in data received. Expected %d, got %d\n",
+ (int)strlen(MSG), ret);
exit(1);
}
@@ -175,12 +176,11 @@ void try_with_key_fail(const char *name, const char *client_prio,
static
void try_with_key_ks(const char *name, const char *client_prio,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *client_cert,
- const gnutls_datum_t *client_key,
- unsigned cert_flags,
- unsigned init_flags)
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * client_cert,
+ const gnutls_datum_t * client_key,
+ unsigned cert_flags, unsigned init_flags)
{
int ret;
char buffer[256];
@@ -204,20 +204,18 @@ void try_with_key_ks(const char *name, const char *client_prio,
gnutls_certificate_allocate_credentials(&serverx509cred);
ret = gnutls_certificate_set_x509_key_mem(serverx509cred,
- serv_cert, serv_key,
- GNUTLS_X509_FMT_PEM);
+ serv_cert, serv_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("Could not set key/cert: %s\n", gnutls_strerror(ret));
}
- assert(gnutls_init(&server, GNUTLS_SERVER|init_flags)>=0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
-
+ assert(gnutls_init(&server, GNUTLS_SERVER | init_flags) >= 0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
assert(gnutls_priority_set_direct(server,
- "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- NULL)>=0);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -232,18 +230,19 @@ void try_with_key_ks(const char *name, const char *client_prio,
gnutls_certificate_set_x509_key_mem(clientx509cred,
client_cert, client_key,
GNUTLS_X509_FMT_PEM);
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUIRE);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUIRE);
} else if (cert_flags == ASK_CERT) {
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUEST);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUEST);
}
ret = gnutls_init(&client, GNUTLS_CLIENT);
if (ret < 0)
exit(1);
-
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -267,7 +266,7 @@ void try_with_key_ks(const char *name, const char *client_prio,
assert(version == GNUTLS_TLS1_3);
memset(buffer, 0, sizeof(buffer));
- assert(gnutls_record_send(server, MSG, strlen(MSG))>=0);
+ assert(gnutls_record_send(server, MSG, strlen(MSG)) >= 0);
ret = gnutls_record_recv(client, buffer, sizeof(buffer));
if (ret == 0) {
@@ -279,12 +278,13 @@ void try_with_key_ks(const char *name, const char *client_prio,
}
if (ret != strlen(MSG) || memcmp(MSG, buffer, ret) != 0) {
- fail("client: Error in data received. Expected %d, got %d\n", (int)strlen(MSG), ret);
+ fail("client: Error in data received. Expected %d, got %d\n",
+ (int)strlen(MSG), ret);
exit(1);
}
memset(buffer, 0, sizeof(buffer));
- assert(gnutls_record_send(client, MSG, strlen(MSG))>=0);
+ assert(gnutls_record_send(client, MSG, strlen(MSG)) >= 0);
ret = gnutls_record_recv(server, buffer, sizeof(buffer));
if (ret == 0) {
@@ -294,7 +294,8 @@ void try_with_key_ks(const char *name, const char *client_prio,
}
if (ret != strlen(MSG) || memcmp(MSG, buffer, ret) != 0) {
- fail("client: Error in data received. Expected %d, got %d\n", (int)strlen(MSG), ret);
+ fail("client: Error in data received. Expected %d, got %d\n",
+ (int)strlen(MSG), ret);
exit(1);
}
@@ -310,14 +311,14 @@ void try_with_key_ks(const char *name, const char *client_prio,
static
void try_with_key(const char *name, const char *client_prio,
- const gnutls_datum_t *serv_cert,
- const gnutls_datum_t *serv_key,
- const gnutls_datum_t *cli_cert,
- const gnutls_datum_t *cli_key,
- unsigned cert_flags)
+ const gnutls_datum_t * serv_cert,
+ const gnutls_datum_t * serv_key,
+ const gnutls_datum_t * cli_cert,
+ const gnutls_datum_t * cli_key, unsigned cert_flags)
{
return try_with_key_ks(name, client_prio,
- serv_cert, serv_key, cli_cert, cli_key, cert_flags, GNUTLS_ENABLE_EARLY_START);
+ serv_cert, serv_key, cli_cert, cli_key,
+ cert_flags, GNUTLS_ENABLE_EARLY_START);
}
#include "cert-common.h"
@@ -325,22 +326,38 @@ void try_with_key(const char *name, const char *client_prio,
void doit(void)
{
/* TLS 1.3 no client cert: early start expected */
- try_ok("TLS 1.3 with ffdhe2048 rsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048");
- try_ok("TLS 1.3 with secp256r1 rsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1");
- try_ok("TLS 1.3 with x25519 rsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519");
-
- try_with_key_ks("TLS 1.3 with secp256r1 ecdsa no-cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1",
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL, NULL, 0, GNUTLS_ENABLE_EARLY_START);
+ try_ok("TLS 1.3 with ffdhe2048 rsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048");
+ try_ok("TLS 1.3 with secp256r1 rsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1");
+ try_ok("TLS 1.3 with x25519 rsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519");
+
+ try_with_key_ks("TLS 1.3 with secp256r1 ecdsa no-cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1",
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ NULL, NULL, 0, GNUTLS_ENABLE_EARLY_START);
/* client authentication: no early start possible */
- try_with_key_fail("TLS 1.3 with rsa-pss cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_rsa_pss_cert, &cli_ca3_rsa_pss_key, GNUTLS_ENABLE_EARLY_START);
- try_with_key_fail("TLS 1.3 with rsa cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &cli_ca3_cert, &cli_ca3_key, GNUTLS_ENABLE_EARLY_START);
- try_with_key_fail("TLS 1.3 with ecdsa cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, GNUTLS_ENABLE_EARLY_START);
+ try_with_key_fail("TLS 1.3 with rsa-pss cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ &cli_ca3_rsa_pss_cert, &cli_ca3_rsa_pss_key,
+ GNUTLS_ENABLE_EARLY_START);
+ try_with_key_fail("TLS 1.3 with rsa cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ &cli_ca3_cert, &cli_ca3_key,
+ GNUTLS_ENABLE_EARLY_START);
+ try_with_key_fail("TLS 1.3 with ecdsa cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ GNUTLS_ENABLE_EARLY_START);
/* TLS 1.3 no client cert: no early start flag specified */
- try_with_key_fail("TLS 1.3 with rsa-pss cli-cert", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
- &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key, NULL, NULL, 0);
+ try_with_key_fail("TLS 1.3 with rsa-pss cli-cert",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-RSA",
+ &server_ca3_localhost_ecc_cert, &server_ca3_ecc_key,
+ NULL, NULL, 0);
}
diff --git a/tests/tls13-rehandshake-cert.c b/tests/tls13-rehandshake-cert.c
index 9a2c889835..06f169c31e 100644
--- a/tests/tls13-rehandshake-cert.c
+++ b/tests/tls13-rehandshake-cert.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -72,9 +72,9 @@ void server_initiated_handshake(void)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- gnutls_priority_set_direct(server, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", NULL);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ gnutls_priority_set_direct(server, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3",
+ NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -82,8 +82,7 @@ void server_initiated_handshake(void)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_priority_set_direct(client, "NORMAL:+VERS-TLS1.3", NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
@@ -155,9 +154,9 @@ void client_initiated_handshake(void)
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- gnutls_priority_set_direct(server, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", NULL);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ gnutls_priority_set_direct(server, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3",
+ NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -165,8 +164,7 @@ void client_initiated_handshake(void)
/* Init client */
gnutls_certificate_allocate_credentials(&clientx509cred);
gnutls_init(&client, GNUTLS_CLIENT);
- gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_priority_set_direct(client, "NORMAL:+VERS-TLS1.3", NULL);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
diff --git a/tests/tls13-server-kx-neg.c b/tests/tls13-server-kx-neg.c
index 4b68999a61..c2e987a1fa 100644
--- a/tests/tls13-server-kx-neg.c
+++ b/tests/tls13-server-kx-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
/* This program tests the negotiation for various key exchange
@@ -41,261 +41,292 @@
test_case_st tests[] = {
{
- .name = "TLS 1.3 DHE-PSK without cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:"PVERSION,
- .exp_version = GNUTLS_TLS1_3,
- },
+ .name = "TLS 1.3 DHE-PSK without cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:" PVERSION,
+ .exp_version = GNUTLS_TLS1_3,
+ },
{
- .name = "TLS 1.3 DHE-PSK with cred but no DH params",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:"PVERSION,
- .exp_version = GNUTLS_TLS1_3,
- },
+ .name = "TLS 1.3 DHE-PSK with cred but no DH params",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:" PVERSION,
+ .exp_version = GNUTLS_TLS1_3,
+ },
{
- .name = "TLS 1.3 DHE-PSK with cred and DH params (level)",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .have_psk_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:"PVERSION,
- .exp_version = GNUTLS_TLS1_3,
- },
+ .name = "TLS 1.3 DHE-PSK with cred and DH params (level)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .have_psk_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:" PVERSION,
+ .exp_version = GNUTLS_TLS1_3,
+ },
{
- .name = "TLS 1.3 DHE-PSK with cred and DH params (explicit)",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .have_psk_exp_dh_params = 1,
- .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:"PVERSION,
- .exp_version = GNUTLS_TLS1_3,
- },
+ .name = "TLS 1.3 DHE-PSK with cred and DH params (explicit)",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .have_psk_exp_dh_params = 1,
+ .server_prio = "NORMAL:-KX-ALL:+DHE-PSK:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+DHE-PSK:" PVERSION,
+ .exp_version = GNUTLS_TLS1_3,
+ },
{
- .name = "TLS 1.3 ECDHE-PSK with cred but no common curve",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_COMMON_KEY_SHARE,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-CURVE-ALL:+CURVE-SECP256R1:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:-CURVE-ALL:+CURVE-SECP384R1:"PVERSION,
- .exp_version = GNUTLS_TLS1_3,
- },
+ .name = "TLS 1.3 ECDHE-PSK with cred but no common curve",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_COMMON_KEY_SHARE,
+ .have_psk_cred = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+ECDHE-PSK:-CURVE-ALL:+CURVE-SECP256R1:" PVERSION,
+ .client_prio =
+ "NORMAL:-KX-ALL:+ECDHE-PSK:-CURVE-ALL:+CURVE-SECP384R1:" PVERSION,
+ .exp_version = GNUTLS_TLS1_3,
+ },
{
- .name = "TLS 1.3 ECDHE-PSK with cred and common curve",
- .client_ret = 0,
- .server_ret = 0,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:"PVERSION,
- .exp_version = GNUTLS_TLS1_3,
- },
+ .name = "TLS 1.3 ECDHE-PSK with cred and common curve",
+ .client_ret = 0,
+ .server_ret = 0,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+ECDHE-PSK:" PVERSION,
+ .exp_version = GNUTLS_TLS1_3,
+ },
{
- .name = "TLS 1.3 RSA-PSK without cert cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_psk_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 RSA-PSK without cert cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_psk_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 RSA-PSK without psk cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 RSA-PSK without psk cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 RSA-PSK with cred but invalid cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 RSA-PSK with cred but invalid cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 RSA-PSK with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 RSA-PSK with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 RSA-PSK with cred and multiple certs",
- .server_ret = 0,
- .client_ret = 0,
- .have_psk_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 RSA-PSK with cred and multiple certs",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_psk_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+RSA-PSK:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+RSA-PSK:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
#ifdef ENABLE_SRP
{
- .name = "TLS 1.3 SRP-RSA without cert cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_srp_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 SRP-RSA without cert cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_srp_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 SRP-RSA without srp cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_srp_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 SRP-RSA without srp cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_srp_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 SRP-RSA with cred but invalid cert",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_decrypt_cert = 1,
- .have_ecc_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 SRP-RSA with cred but invalid cert",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_decrypt_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 SRP-RSA with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 SRP-RSA with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 SRP-RSA with cred and multiple certs",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .have_cert_cred = 1,
- .have_rsa_sign_cert = 1,
- .have_ecc_sign_cert = 1,
- .have_rsa_decrypt_cert = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 SRP-RSA with cred and multiple certs",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .have_cert_cred = 1,
+ .have_rsa_sign_cert = 1,
+ .have_ecc_sign_cert = 1,
+ .have_rsa_decrypt_cert = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP-RSA:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+SRP-RSA:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 SRP without srp cred",
- .client_ret = GNUTLS_E_AGAIN,
- .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
- .have_srp_cred = 0,
- .have_cert_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+SRP:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 SRP without srp cred",
+ .client_ret = GNUTLS_E_AGAIN,
+ .server_ret = GNUTLS_E_INSUFFICIENT_CREDENTIALS,
+ .have_srp_cred = 0,
+ .have_cert_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+SRP:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 SRP with cred",
- .server_ret = 0,
- .client_ret = 0,
- .have_srp_cred = 1,
- .server_prio = "NORMAL:-KX-ALL:+SRP:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+SRP:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.3 SRP with cred",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_srp_cred = 1,
+ .server_prio = "NORMAL:-KX-ALL:+SRP:" PVERSION,
+ .client_prio = "NORMAL:-KX-ALL:+SRP:" PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
#endif
#ifdef ENABLE_GOST
{
- .name = "TLS 1.3 server, TLS 1.2 client VKO-GOST-12 with cred and GOST-256 cert",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_gost12_256_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:" "-VERS-ALL:+VERS-TLS1.2",
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name =
+ "TLS 1.3 server, TLS 1.2 client VKO-GOST-12 with cred and GOST-256 cert",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_gost12_256_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ PVERSION,
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ "-VERS-ALL:+VERS-TLS1.2",
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 server, TLS 1.2 client VKO-GOST-12 with cred and GOST-512 cert",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_gost12_512_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:" "-VERS-ALL:+VERS-TLS1.2",
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name =
+ "TLS 1.3 server, TLS 1.2 client VKO-GOST-12 with cred and GOST-512 cert",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_gost12_512_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ PVERSION,
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ "-VERS-ALL:+VERS-TLS1.2",
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.2 server TLS 1.3 client VKO-GOST-12 with cred and GOST-256 cert",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_gost12_256_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:" "-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name =
+ "TLS 1.2 server TLS 1.3 client VKO-GOST-12 with cred and GOST-256 cert",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_gost12_256_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ "-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.2 server TLS 1.3 client with cred and GOST-512 cert",
- .server_ret = 0,
- .client_ret = 0,
- .have_cert_cred = 1,
- .have_gost12_512_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:" "-VERS-ALL:+VERS-TLS1.2",
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name = "TLS 1.2 server TLS 1.3 client with cred and GOST-512 cert",
+ .server_ret = 0,
+ .client_ret = 0,
+ .have_cert_cred = 1,
+ .have_gost12_512_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ "-VERS-ALL:+VERS-TLS1.2",
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
/* Ideally for the next two test cases we should fallback to TLS 1.2 + GOST
* but this is unsuppored for now */
{
- .name = "TLS 1.3 server and client VKO-GOST-12 with cred and GOST-256 cert",
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .client_ret = GNUTLS_E_AGAIN,
- .have_cert_cred = 1,
- .have_gost12_256_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name =
+ "TLS 1.3 server and client VKO-GOST-12 with cred and GOST-256 cert",
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .client_ret = GNUTLS_E_AGAIN,
+ .have_cert_cred = 1,
+ .have_gost12_256_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ PVERSION,
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
{
- .name = "TLS 1.3 server and client VKO-GOST-12 with cred and GOST-512 cert",
- .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
- .client_ret = GNUTLS_E_AGAIN,
- .have_cert_cred = 1,
- .have_gost12_512_cert = 1,
- .not_on_fips = 1,
- .server_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"PVERSION,
- .client_prio = "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"PVERSION,
- .exp_version = GNUTLS_TLS1_2,
- },
+ .name =
+ "TLS 1.3 server and client VKO-GOST-12 with cred and GOST-512 cert",
+ .server_ret = GNUTLS_E_NO_CIPHER_SUITES,
+ .client_ret = GNUTLS_E_AGAIN,
+ .have_cert_cred = 1,
+ .have_gost12_512_cert = 1,
+ .not_on_fips = 1,
+ .server_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ PVERSION,
+ .client_prio =
+ "NORMAL:-KX-ALL:+VKO-GOST-12:+GROUP-GOST-ALL:+CIPHER-GOST-ALL:+MAC-GOST-ALL:+SIGN-GOST-ALL:"
+ PVERSION,
+ .exp_version = GNUTLS_TLS1_2,
+ },
#endif
};
@@ -304,7 +335,7 @@ void doit(void)
unsigned i;
global_init();
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
try(&tests[i]);
}
diff --git a/tests/tls13-without-timeout-func.c b/tests/tls13-without-timeout-func.c
index 8235835928..e3d17e2e09 100644
--- a/tests/tls13-without-timeout-func.c
+++ b/tests/tls13-without-timeout-func.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -86,27 +86,28 @@ void doit(void)
assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(serverx509cred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM) >= 0);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
- assert(gnutls_set_default_priority(server)>=0);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+ assert(gnutls_set_default_priority(server) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
- assert(gnutls_certificate_allocate_credentials(&clientx509cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&clientx509cred) >= 0);
- assert(gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_certificate_set_x509_trust_mem
+ (clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&client, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred)>=0);
+ clientx509cred) >= 0);
- assert(gnutls_priority_set_direct(client, "NORMAL:-VERS-ALL:+VERS-TLS1.3", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (client, "NORMAL:-VERS-ALL:+VERS-TLS1.3", NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
diff --git a/tests/tls13/anti_replay.c b/tests/tls13/anti_replay.c
index 506c11596a..0db6bab60f 100644
--- a/tests/tls13/anti_replay.c
+++ b/tests/tls13/anti_replay.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <assert.h>
@@ -40,7 +40,8 @@ struct storage_st {
};
static int
-storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_datum_t *value)
+storage_add(void *ptr, time_t expires, const gnutls_datum_t * key,
+ const gnutls_datum_t * value)
{
struct storage_st *storage = ptr;
gnutls_datum_t *datum;
@@ -48,7 +49,8 @@ storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_d
for (i = 0; i < storage->num_entries; i++) {
if (key->size == storage->entries[i].size &&
- memcmp(storage->entries[i].data, key->data, key->size) == 0) {
+ memcmp(storage->entries[i].data, key->data,
+ key->size) == 0) {
return GNUTLS_E_DB_ENTRY_EXISTS;
}
}
@@ -71,8 +73,7 @@ storage_add(void *ptr, time_t expires, const gnutls_datum_t *key, const gnutls_d
return 0;
}
-static void
-storage_clear(struct storage_st *storage)
+static void storage_clear(struct storage_st *storage)
{
size_t i;
@@ -84,7 +85,7 @@ storage_clear(struct storage_st *storage)
void doit(void)
{
gnutls_anti_replay_t anti_replay;
- gnutls_datum_t key = { (unsigned char *) "\xFF\xFF\xFF\xFF", 4 };
+ gnutls_datum_t key = { (unsigned char *)"\xFF\xFF\xFF\xFF", 4 };
struct timespec creation_time;
struct storage_st storage;
int ret;
@@ -99,7 +100,8 @@ void doit(void)
gnutls_anti_replay_set_add_function(anti_replay, storage_add);
gnutls_anti_replay_set_ptr(anti_replay, &storage);
mygettime(&creation_time);
- ret = _gnutls_anti_replay_check(anti_replay, 10000, &creation_time, &key);
+ ret =
+ _gnutls_anti_replay_check(anti_replay, 10000, &creation_time, &key);
if (ret != GNUTLS_E_ILLEGAL_PARAMETER)
fail("error is not returned, while server_ticket_age < client_ticket_age\n");
gnutls_anti_replay_deinit(anti_replay);
@@ -113,7 +115,8 @@ void doit(void)
gnutls_anti_replay_set_window(anti_replay, 10000);
mygettime(&creation_time);
virt_sec_sleep(30);
- ret = _gnutls_anti_replay_check(anti_replay, 10000, &creation_time, &key);
+ ret =
+ _gnutls_anti_replay_check(anti_replay, 10000, &creation_time, &key);
if (ret != GNUTLS_E_EARLY_DATA_REJECTED)
fail("early data is NOT rejected, while freshness check fails\n");
gnutls_anti_replay_deinit(anti_replay);
@@ -127,10 +130,12 @@ void doit(void)
gnutls_anti_replay_set_window(anti_replay, 10000);
mygettime(&creation_time);
virt_sec_sleep(15);
- ret = _gnutls_anti_replay_check(anti_replay, 10000, &creation_time, &key);
+ ret =
+ _gnutls_anti_replay_check(anti_replay, 10000, &creation_time, &key);
if (ret != 0)
fail("early data is rejected, while freshness check succeeds\n");
- ret = _gnutls_anti_replay_check(anti_replay, 10000, &creation_time, &key);
+ ret =
+ _gnutls_anti_replay_check(anti_replay, 10000, &creation_time, &key);
if (ret != GNUTLS_E_EARLY_DATA_REJECTED)
fail("early data is NOT rejected for a duplicate key\n");
gnutls_anti_replay_deinit(anti_replay);
diff --git a/tests/tls13/change_cipher_spec.c b/tests/tls13/change_cipher_spec.c
index bc6a0ac911..276b40ed7d 100644
--- a/tests/tls13/change_cipher_spec.c
+++ b/tests/tls13/change_cipher_spec.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,21 +35,21 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-#include <errno.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+# include <errno.h>
+
+# include "cert-common.h"
+# include "utils.h"
/* This program tests whether the ChangeCipherSpec message
* is ignored during handshake.
@@ -69,7 +69,8 @@ static unsigned client_sent_ccs = 0;
static unsigned server_sent_ccs = 0;
static int cli_hsk_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg);
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg);
static void client(int fd, unsigned ccs_check)
{
@@ -91,24 +92,26 @@ static void client(int fd, unsigned ccs_check)
/* Initialize TLS session
*/
- gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_POST_HANDSHAKE_AUTH);
+ gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_POST_HANDSHAKE_AUTH);
gnutls_session_set_ptr(session, &ccs_check);
gnutls_handshake_set_timeout(session, get_timeout());
if (ccs_check) {
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_ANY,
GNUTLS_HOOK_PRE,
cli_hsk_callback);
}
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
-
gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert,
- &cli_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ &cli_ca3_key, GNUTLS_X509_FMT_PEM);
/* put the anonymous credentials to the current session
*/
@@ -132,12 +135,13 @@ static void client(int fd, unsigned ccs_check)
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0)
- fail("client: recv did not succeed as expected: %s\n", gnutls_strerror(ret));
+ fail("client: recv did not succeed as expected: %s\n",
+ gnutls_strerror(ret));
/* send change cipher spec, this should fail in the server */
do {
ret = send(fd, "\x14\x03\x03\x00\x01\x01", 6, 0);
- } while(ret == -1 && (errno == EINTR || errno == EAGAIN));
+ } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
close(fd);
@@ -155,7 +159,8 @@ static void client(int fd, unsigned ccs_check)
}
static int cli_hsk_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
unsigned *p;
unsigned ccs_check;
@@ -170,22 +175,24 @@ static int cli_hsk_callback(gnutls_session_t session, unsigned int htype,
if (htype == GNUTLS_HANDSHAKE_CLIENT_HELLO && !incoming) {
hello_received = 1;
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC,
GNUTLS_HOOK_PRE,
cli_hsk_callback);
}
- if (htype == GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC && !incoming && hello_received) {
+ if (htype == GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC && !incoming
+ && hello_received) {
client_sent_ccs++;
assert(msg->size == 1 && msg->data[0] == 0x01);
}
-
return 0;
}
static int hsk_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
int ret;
int fd;
@@ -207,8 +214,8 @@ static int hsk_callback(gnutls_session_t session, unsigned int htype,
/* send change cipher spec */
do {
ret = send(fd, "\x14\x03\x03\x00\x01\x01", 6, 0);
- } while(ret == -1 && (errno == EINTR || errno == EAGAIN));
- } else { /* checking whether server received it */
+ } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
+ } else { /* checking whether server received it */
if (htype == GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC && !incoming) {
server_sent_ccs++;
assert(msg->size == 1 && msg->data[0] == 0x01);
@@ -238,26 +245,28 @@ static void server(int fd, unsigned ccs_check)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
gnutls_handshake_set_timeout(session, get_timeout());
if (ccs_check)
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC,
GNUTLS_HOOK_PRE,
hsk_callback);
else
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_ANY,
GNUTLS_HOOK_PRE,
hsk_callback);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL) >= 0);
+ assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL)
+ >= 0);
gnutls_session_set_ptr(session, &ccs_check);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
diff --git a/tests/tls13/compress-cert-cli.c b/tests/tls13/compress-cert-cli.c
index f4e66bf313..0dd11924e4 100644
--- a/tests/tls13/compress-cert-cli.c
+++ b/tests/tls13/compress-cert-cli.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdbool.h>
@@ -51,7 +51,8 @@ struct handshake_cb_data_st {
bool found_certificate;
};
-static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data, unsigned size)
+static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data,
+ unsigned size)
{
struct handshake_cb_data_st *cb_data = ctx;
if (tls_id == 27) { /* compress_certificate */
@@ -71,15 +72,14 @@ static int ext_callback(void *ctx, unsigned tls_id, const unsigned char *data, u
static int
handshake_callback(gnutls_session_t session, unsigned int htype,
unsigned post, unsigned int incoming,
- const gnutls_datum_t *msg)
+ const gnutls_datum_t * msg)
{
struct handshake_cb_data_st *data = gnutls_session_get_ptr(session);
unsigned pos = 0;
gnutls_datum_t mmsg;
int ret;
- if ((data->is_server && incoming) ||
- (!data->is_server && !incoming)) {
+ if ((data->is_server && incoming) || (!data->is_server && !incoming)) {
return 0;
}
@@ -151,7 +151,10 @@ static void run(void)
if (ret < 0)
exit(1);
- ret = gnutls_compress_certificate_set_methods(server, smethods, sizeof(smethods)/sizeof(*smethods));
+ ret =
+ gnutls_compress_certificate_set_methods(server, smethods,
+ sizeof(smethods) /
+ sizeof(*smethods));
if (ret < 0) {
fail("server: setting compression method failed (%s)\n",
gnutls_strerror(ret));
@@ -170,7 +173,8 @@ static void run(void)
/* Init client */
assert(gnutls_certificate_allocate_credentials(&ccred) >= 0);
assert(gnutls_certificate_set_x509_key_mem
- (ccred, &cli_ca3_cert_chain, &cli_ca3_key, GNUTLS_X509_FMT_PEM) >= 0);
+ (ccred, &cli_ca3_cert_chain, &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
assert(gnutls_certificate_set_x509_trust_mem
(ccred, &ca3_cert, GNUTLS_X509_FMT_PEM) >= 0);
@@ -185,7 +189,10 @@ static void run(void)
if (ret < 0)
exit(1);
- ret = gnutls_compress_certificate_set_methods(client, cmethods, sizeof(cmethods)/sizeof(*cmethods));
+ ret =
+ gnutls_compress_certificate_set_methods(client, cmethods,
+ sizeof(cmethods) /
+ sizeof(*cmethods));
if (ret < 0) {
fail("client: setting compression method failed (%s)\n",
gnutls_strerror(ret));
@@ -200,7 +207,6 @@ static void run(void)
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
-
HANDSHAKE(client, server);
if (debug)
success("Handshake established\n");
diff --git a/tests/tls13/compress-cert-neg.c b/tests/tls13/compress-cert-neg.c
index 5364e88132..9f3a28070f 100644
--- a/tests/tls13/compress-cert-neg.c
+++ b/tests/tls13/compress-cert-neg.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,19 +36,19 @@ int main(int argc, char **argv)
#else
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
/* This program tests whether the compress_certificate extensions is disabled
* when client and server have incompatible compression methods set */
-#define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3"
-#define CHECK(X) assert((X)>=0)
+# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3"
+# define CHECK(X) assert((X)>=0)
static pid_t child;
int client_bad;
@@ -76,14 +76,16 @@ static void server_log_func(int level, const char *str)
}
static int client_callback(gnutls_session_t session, unsigned htype,
- unsigned post, unsigned incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned incoming,
+ const gnutls_datum_t * msg)
{
client_bad = 1;
return 0;
}
static int server_callback(gnutls_session_t session, unsigned htype,
- unsigned post, unsigned incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned incoming,
+ const gnutls_datum_t * msg)
{
server_bad = 1;
return 0;
@@ -96,8 +98,10 @@ static void client(int fd)
gnutls_session_t session;
gnutls_certificate_credentials_t x509_cred;
gnutls_compression_method_t method;
- gnutls_compression_method_t methods[] = { GNUTLS_COMP_BROTLI, GNUTLS_COMP_ZSTD };
- size_t methods_len = sizeof(methods) / sizeof(gnutls_compression_method_t);
+ gnutls_compression_method_t methods[] =
+ { GNUTLS_COMP_BROTLI, GNUTLS_COMP_ZSTD };
+ size_t methods_len =
+ sizeof(methods) / sizeof(gnutls_compression_method_t);
global_init();
@@ -107,20 +111,27 @@ static void client(int fd)
}
CHECK(gnutls_certificate_allocate_credentials(&x509_cred));
- CHECK(gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
- CHECK(gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert_chain,
- &cli_ca3_key, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_trust_mem
+ (x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &cli_ca3_cert_chain, &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM));
CHECK(gnutls_init(&session, GNUTLS_CLIENT));
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred));
+ CHECK(gnutls_credentials_set
+ (session, GNUTLS_CRD_CERTIFICATE, x509_cred));
CHECK(gnutls_priority_set_direct(session, PRIO, NULL));
- ret = gnutls_compress_certificate_set_methods(session, methods, methods_len);
+ ret =
+ gnutls_compress_certificate_set_methods(session, methods,
+ methods_len);
if (ret < 0) {
- fail("client: setting compression method failed (%s)\n\n", gnutls_strerror(ret));
+ fail("client: setting compression method failed (%s)\n\n",
+ gnutls_strerror(ret));
terminate();
}
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
GNUTLS_HOOK_PRE, client_callback);
gnutls_transport_set_int(session, fd);
@@ -148,7 +159,8 @@ static void client(int fd)
ret = gnutls_certificate_verify_peers2(session, &status);
if (ret < 0)
- fail("client: could not verify server certificate: %s\n", gnutls_strerror(ret));
+ fail("client: could not verify server certificate: %s\n",
+ gnutls_strerror(ret));
if (status)
fail("client: certificate verification failed\n");
@@ -157,7 +169,7 @@ static void client(int fd)
if (debug)
success("client: finished\n");
-cleanup:
+ cleanup:
close(fd);
gnutls_deinit(session);
gnutls_certificate_free_credentials(x509_cred);
@@ -172,7 +184,8 @@ static void server(int fd)
gnutls_certificate_credentials_t x509_cred;
gnutls_compression_method_t method;
gnutls_compression_method_t methods[] = { GNUTLS_COMP_ZLIB };
- size_t methods_len = sizeof(methods) / sizeof(gnutls_compression_method_t);
+ size_t methods_len =
+ sizeof(methods) / sizeof(gnutls_compression_method_t);
global_init();
@@ -182,20 +195,27 @@ static void server(int fd)
}
CHECK(gnutls_certificate_allocate_credentials(&x509_cred));
- CHECK(gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
- CHECK(gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert_chain,
- &server_ca3_key, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_trust_mem
+ (x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &server_ca3_localhost_cert_chain, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM));
CHECK(gnutls_init(&session, GNUTLS_SERVER));
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred));
+ CHECK(gnutls_credentials_set
+ (session, GNUTLS_CRD_CERTIFICATE, x509_cred));
CHECK(gnutls_priority_set_direct(session, PRIO, NULL));
- ret = gnutls_compress_certificate_set_methods(session, methods, methods_len);
+ ret =
+ gnutls_compress_certificate_set_methods(session, methods,
+ methods_len);
if (ret < 0) {
- fail("server: setting compression method failed (%s)\n\n", gnutls_strerror(ret));
+ fail("server: setting compression method failed (%s)\n\n",
+ gnutls_strerror(ret));
terminate();
}
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
GNUTLS_HOOK_PRE, server_callback);
gnutls_certificate_server_set_request(session, GNUTLS_CERT_REQUEST);
gnutls_transport_set_int(session, fd);
@@ -205,14 +225,16 @@ static void server(int fd)
}
while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
if (ret < 0) {
- fail("server: Handshake has failed (%s)\n\n", gnutls_strerror(ret));
+ fail("server: Handshake has failed (%s)\n\n",
+ gnutls_strerror(ret));
goto cleanup;
}
if (debug)
success("server: Handshake was completed\n");
if (debug)
- success("server: TLS version is: %s\n", gnutls_protocol_get_name(
- gnutls_protocol_get_version(session)));
+ success("server: TLS version is: %s\n",
+ gnutls_protocol_get_name(gnutls_protocol_get_version
+ (session)));
method = gnutls_compress_certificate_get_selected_method(session);
if (method != GNUTLS_COMP_UNKNOWN)
@@ -223,7 +245,8 @@ static void server(int fd)
ret = gnutls_certificate_verify_peers2(session, &status);
if (ret < 0)
- fail("server: could not verify client certificate: %s\n", gnutls_strerror(ret));
+ fail("server: could not verify client certificate: %s\n",
+ gnutls_strerror(ret));
if (status)
fail("server: certificate verification failed\n");
@@ -232,7 +255,7 @@ static void server(int fd)
if (debug)
success("server: finished\n");
-cleanup:
+ cleanup:
close(fd);
gnutls_deinit(session);
gnutls_certificate_free_credentials(x509_cred);
@@ -272,4 +295,4 @@ void doit(void)
}
}
-#endif /* _WIN32 */
+#endif /* _WIN32 */
diff --git a/tests/tls13/compress-cert-neg2.c b/tests/tls13/compress-cert-neg2.c
index b083e38427..0d92b202b5 100644
--- a/tests/tls13/compress-cert-neg2.c
+++ b/tests/tls13/compress-cert-neg2.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(int argc, char **argv)
#else
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
/* This program tests whether the compress_certificate extension correctly fails
* in the case of compression/decompression failure */
-#define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3"
-#define CHECK(X) assert((X)>=0)
+# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3"
+# define CHECK(X) assert((X)>=0)
static pid_t child;
@@ -73,7 +73,8 @@ static void server_log_func(int level, const char *str)
}
static int client_callback(gnutls_session_t session, unsigned htype,
- unsigned post, unsigned incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned incoming,
+ const gnutls_datum_t * msg)
{
/* change compression method to BROTLI */
msg->data[1] = 0x02;
@@ -86,7 +87,8 @@ static void client(int fd)
gnutls_session_t session;
gnutls_certificate_credentials_t x509_cred;
gnutls_compression_method_t methods[] = { GNUTLS_COMP_ZLIB };
- size_t methods_len = sizeof(methods) / sizeof(gnutls_compression_method_t);
+ size_t methods_len =
+ sizeof(methods) / sizeof(gnutls_compression_method_t);
global_init();
@@ -96,20 +98,27 @@ static void client(int fd)
}
CHECK(gnutls_certificate_allocate_credentials(&x509_cred));
- CHECK(gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
- CHECK(gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert_chain,
- &cli_ca3_key, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_trust_mem
+ (x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &cli_ca3_cert_chain, &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM));
CHECK(gnutls_init(&session, GNUTLS_CLIENT));
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred));
+ CHECK(gnutls_credentials_set
+ (session, GNUTLS_CRD_CERTIFICATE, x509_cred));
CHECK(gnutls_priority_set_direct(session, PRIO, NULL));
- ret = gnutls_compress_certificate_set_methods(session, methods, methods_len);
+ ret =
+ gnutls_compress_certificate_set_methods(session, methods,
+ methods_len);
if (ret < 0) {
- fail("client: setting compression method failed (%s)\n\n", gnutls_strerror(ret));
+ fail("client: setting compression method failed (%s)\n\n",
+ gnutls_strerror(ret));
terminate();
}
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
GNUTLS_HOOK_PRE, client_callback);
gnutls_transport_set_int(session, fd);
@@ -134,7 +143,8 @@ static void server(int fd)
gnutls_certificate_credentials_t x509_cred;
gnutls_compression_method_t method;
gnutls_compression_method_t methods[] = { GNUTLS_COMP_ZLIB };
- size_t methods_len = sizeof(methods) / sizeof(gnutls_compression_method_t);
+ size_t methods_len =
+ sizeof(methods) / sizeof(gnutls_compression_method_t);
global_init();
@@ -144,16 +154,22 @@ static void server(int fd)
}
CHECK(gnutls_certificate_allocate_credentials(&x509_cred));
- CHECK(gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
- CHECK(gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert_chain,
- &server_ca3_key, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_trust_mem
+ (x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &server_ca3_localhost_cert_chain, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM));
CHECK(gnutls_init(&session, GNUTLS_SERVER));
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred));
+ CHECK(gnutls_credentials_set
+ (session, GNUTLS_CRD_CERTIFICATE, x509_cred));
CHECK(gnutls_priority_set_direct(session, PRIO, NULL));
- ret = gnutls_compress_certificate_set_methods(session, methods, methods_len);
+ ret =
+ gnutls_compress_certificate_set_methods(session, methods,
+ methods_len);
if (ret < 0) {
- fail("server: setting compression method failed (%s)\n\n", gnutls_strerror(ret));
+ fail("server: setting compression method failed (%s)\n\n",
+ gnutls_strerror(ret));
terminate();
}
@@ -213,4 +229,4 @@ void doit(void)
}
}
-#endif /* _WIN32 */
+#endif /* _WIN32 */
diff --git a/tests/tls13/compress-cert.c b/tests/tls13/compress-cert.c
index 6b867caaf5..6f7b4a9152 100644
--- a/tests/tls13/compress-cert.c
+++ b/tests/tls13/compress-cert.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,18 +36,18 @@ int main(int argc, char **argv)
#else
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
/* This program tests whether the compress_certificate extensions works as expected */
-#define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3"
-#define CHECK(X) assert((X)>=0)
+# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3"
+# define CHECK(X) assert((X)>=0)
static pid_t child;
int client_ok;
@@ -75,7 +75,8 @@ static void server_log_func(int level, const char *str)
}
static int client_callback(gnutls_session_t session, unsigned htype,
- unsigned post, unsigned incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned incoming,
+ const gnutls_datum_t * msg)
{
if (incoming == 0)
return 0;
@@ -88,7 +89,8 @@ static int client_callback(gnutls_session_t session, unsigned htype,
}
static int server_callback(gnutls_session_t session, unsigned htype,
- unsigned post, unsigned incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned incoming,
+ const gnutls_datum_t * msg)
{
if (incoming == 0)
return 0;
@@ -107,8 +109,10 @@ static void client(int fd)
gnutls_session_t session;
gnutls_certificate_credentials_t x509_cred;
gnutls_compression_method_t method;
- gnutls_compression_method_t methods[] = { GNUTLS_COMP_ZLIB, GNUTLS_COMP_BROTLI };
- size_t methods_len = sizeof(methods) / sizeof(gnutls_compression_method_t);
+ gnutls_compression_method_t methods[] =
+ { GNUTLS_COMP_ZLIB, GNUTLS_COMP_BROTLI };
+ size_t methods_len =
+ sizeof(methods) / sizeof(gnutls_compression_method_t);
global_init();
@@ -118,20 +122,27 @@ static void client(int fd)
}
CHECK(gnutls_certificate_allocate_credentials(&x509_cred));
- CHECK(gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
- CHECK(gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert_chain,
- &cli_ca3_key, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_trust_mem
+ (x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &cli_ca3_cert_chain, &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM));
CHECK(gnutls_init(&session, GNUTLS_CLIENT));
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred));
+ CHECK(gnutls_credentials_set
+ (session, GNUTLS_CRD_CERTIFICATE, x509_cred));
CHECK(gnutls_priority_set_direct(session, PRIO, NULL));
- ret = gnutls_compress_certificate_set_methods(session, methods, methods_len);
+ ret =
+ gnutls_compress_certificate_set_methods(session, methods,
+ methods_len);
if (ret < 0) {
- fail("client: setting compression method failed (%s)\n\n", gnutls_strerror(ret));
+ fail("client: setting compression method failed (%s)\n\n",
+ gnutls_strerror(ret));
terminate();
}
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
GNUTLS_HOOK_PRE, client_callback);
gnutls_transport_set_int(session, fd);
@@ -159,7 +170,8 @@ static void client(int fd)
ret = gnutls_certificate_verify_peers2(session, &status);
if (ret < 0)
- fail("client: could not verify server certificate: %s\n", gnutls_strerror(ret));
+ fail("client: could not verify server certificate: %s\n",
+ gnutls_strerror(ret));
if (status)
fail("client: certificate verification failed\n");
@@ -168,7 +180,7 @@ static void client(int fd)
if (debug)
success("client: finished\n");
-cleanup:
+ cleanup:
close(fd);
gnutls_deinit(session);
gnutls_certificate_free_credentials(x509_cred);
@@ -182,8 +194,10 @@ static void server(int fd)
gnutls_session_t session;
gnutls_certificate_credentials_t x509_cred;
gnutls_compression_method_t method;
- gnutls_compression_method_t methods[] = { GNUTLS_COMP_ZSTD, GNUTLS_COMP_BROTLI, GNUTLS_COMP_ZLIB };
- size_t methods_len = sizeof(methods) / sizeof(gnutls_compression_method_t);
+ gnutls_compression_method_t methods[] =
+ { GNUTLS_COMP_ZSTD, GNUTLS_COMP_BROTLI, GNUTLS_COMP_ZLIB };
+ size_t methods_len =
+ sizeof(methods) / sizeof(gnutls_compression_method_t);
global_init();
@@ -193,20 +207,27 @@ static void server(int fd)
}
CHECK(gnutls_certificate_allocate_credentials(&x509_cred));
- CHECK(gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
- CHECK(gnutls_certificate_set_x509_key_mem(x509_cred, &server_ca3_localhost_cert_chain,
- &server_ca3_key, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_trust_mem
+ (x509_cred, &ca3_cert, GNUTLS_X509_FMT_PEM));
+ CHECK(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &server_ca3_localhost_cert_chain, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM));
CHECK(gnutls_init(&session, GNUTLS_SERVER));
- CHECK(gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred));
+ CHECK(gnutls_credentials_set
+ (session, GNUTLS_CRD_CERTIFICATE, x509_cred));
CHECK(gnutls_priority_set_direct(session, PRIO, NULL));
- ret = gnutls_compress_certificate_set_methods(session, methods, methods_len);
+ ret =
+ gnutls_compress_certificate_set_methods(session, methods,
+ methods_len);
if (ret < 0) {
- fail("server: setting compression method failed (%s)\n\n", gnutls_strerror(ret));
+ fail("server: setting compression method failed (%s)\n\n",
+ gnutls_strerror(ret));
terminate();
}
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT,
GNUTLS_HOOK_PRE, server_callback);
gnutls_certificate_server_set_request(session, GNUTLS_CERT_REQUEST);
gnutls_transport_set_int(session, fd);
@@ -216,14 +237,16 @@ static void server(int fd)
}
while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
if (ret < 0) {
- fail("server: Handshake has failed (%s)\n\n", gnutls_strerror(ret));
+ fail("server: Handshake has failed (%s)\n\n",
+ gnutls_strerror(ret));
goto cleanup;
}
if (debug)
success("server: Handshake was completed\n");
if (debug)
- success("server: TLS version is: %s\n", gnutls_protocol_get_name(
- gnutls_protocol_get_version(session)));
+ success("server: TLS version is: %s\n",
+ gnutls_protocol_get_name(gnutls_protocol_get_version
+ (session)));
method = gnutls_compress_certificate_get_selected_method(session);
if (method != GNUTLS_COMP_ZLIB)
@@ -234,7 +257,8 @@ static void server(int fd)
ret = gnutls_certificate_verify_peers2(session, &status);
if (ret < 0)
- fail("server: could not verify client certificate: %s\n", gnutls_strerror(ret));
+ fail("server: could not verify client certificate: %s\n",
+ gnutls_strerror(ret));
if (status)
fail("server: certificate verification failed\n");
@@ -243,7 +267,7 @@ static void server(int fd)
if (debug)
success("server: finished\n");
-cleanup:
+ cleanup:
close(fd);
gnutls_deinit(session);
gnutls_certificate_free_credentials(x509_cred);
@@ -283,4 +307,4 @@ void doit(void)
}
}
-#endif /* _WIN32 */
+#endif /* _WIN32 */
diff --git a/tests/tls13/cookie.c b/tests/tls13/cookie.c
index dde00af673..54a6f8ee4c 100644
--- a/tests/tls13/cookie.c
+++ b/tests/tls13/cookie.c
@@ -23,7 +23,7 @@
* by the gnutls client. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,19 +39,19 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#include <signal.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# include <signal.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <assert.h>
-#include "utils.h"
-#include "cert-common.h"
+# include "utils.h"
+# include "cert-common.h"
const char *side = "";
@@ -60,11 +60,10 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-static int TLSEXT_TYPE_server_sent = 0;
-static int TLSEXT_TYPE_server_received = 0;
+static int TLSEXT_TYPE_server_sent = 0;
+static int TLSEXT_TYPE_server_received = 0;
-static const unsigned char ext_data[] =
-{
+static const unsigned char ext_data[] = {
0x00,
0x03,
0xFE,
@@ -72,7 +71,8 @@ static const unsigned char ext_data[] =
0xFF
};
-static int ext_recv_server_cookie(gnutls_session_t session, const unsigned char *buf, size_t buflen)
+static int ext_recv_server_cookie(gnutls_session_t session,
+ const unsigned char *buf, size_t buflen)
{
if (buflen != sizeof(ext_data))
fail("ext_recv_server_params: Invalid input buffer length\n");
@@ -82,10 +82,11 @@ static int ext_recv_server_cookie(gnutls_session_t session, const unsigned char
TLSEXT_TYPE_server_received = 1;
- return 0; //Success
+ return 0; //Success
}
-static int ext_send_server_cookie(gnutls_session_t session, gnutls_buffer_t extdata)
+static int ext_send_server_cookie(gnutls_session_t session,
+ gnutls_buffer_t extdata)
{
if (gnutls_ext_get_current_msg(session) == GNUTLS_EXT_FLAG_HRR) {
TLSEXT_TYPE_server_sent = 1;
@@ -116,13 +117,12 @@ static void client(int sd)
gnutls_init(&session, GNUTLS_CLIENT);
/* Use default priorities */
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3",
- NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.3", NULL) >= 0);
/* put the anonymous credentials to the current session
*/
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, clientx509cred);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
@@ -141,7 +141,7 @@ static void client(int sd)
gnutls_bye(session, GNUTLS_SHUT_WR);
-end:
+ end:
close(sd);
gnutls_deinit(session);
@@ -173,20 +173,24 @@ static void server(int sd)
gnutls_init(&session, GNUTLS_SERVER);
-
/* force a hello retry request by disabling all the groups that are
* enabled by default. */
assert(gnutls_priority_set_direct(session,
"NORMAL:-VERS-ALL:+VERS-TLS1.3:"
"-GROUP-SECP256R1:-GROUP-X25519:-GROUP-FFDHE2048",
- NULL)>=0);
-
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
-
- ret = gnutls_session_ext_register(session, "cookie_server", 44, GNUTLS_EXT_TLS, ext_recv_server_cookie, ext_send_server_cookie,
- NULL, NULL, NULL,
- GNUTLS_EXT_FLAG_CLIENT_HELLO|GNUTLS_EXT_FLAG_HRR|GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL|GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST);
+ NULL) >= 0);
+
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
+
+ ret =
+ gnutls_session_ext_register(session, "cookie_server", 44,
+ GNUTLS_EXT_TLS, ext_recv_server_cookie,
+ ext_send_server_cookie, NULL, NULL,
+ NULL,
+ GNUTLS_EXT_FLAG_CLIENT_HELLO |
+ GNUTLS_EXT_FLAG_HRR |
+ GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL |
+ GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST);
if (ret != 0)
fail("server: cannot register: %s", gnutls_strerror(ret));
@@ -212,7 +216,7 @@ static void server(int sd)
*/
gnutls_bye(session, GNUTLS_SHUT_WR);
-end:
+ end:
close(sd);
gnutls_deinit(session);
@@ -239,7 +243,7 @@ void doit(void)
return;
}
- TLSEXT_TYPE_server_sent = 0;
+ TLSEXT_TYPE_server_sent = 0;
TLSEXT_TYPE_server_received = 0;
child = fork();
diff --git a/tests/tls13/ext-parse.h b/tests/tls13/ext-parse.h
index 9a22de57f9..c3dd7c41b0 100644
--- a/tests/tls13/ext-parse.h
+++ b/tests/tls13/ext-parse.h
@@ -40,18 +40,20 @@
pos += 1+_s; \
}
-typedef void (*ext_parse_func)(void *priv, gnutls_datum_t *extdata);
+typedef void (*ext_parse_func)(void *priv, gnutls_datum_t * extdata);
#define HANDSHAKE_SESSION_ID_POS 34
#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
-# pragma GCC diagnostic push
-# pragma GCC diagnostic ignored "-Wunused-function"
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wunused-function"
#endif
/* Returns 0 if the extension was not found, 1 otherwise.
*/
-static unsigned find_client_extension(const gnutls_datum_t *msg, unsigned extnr, void *priv, ext_parse_func cb)
+static unsigned find_client_extension(const gnutls_datum_t * msg,
+ unsigned extnr, void *priv,
+ ext_parse_func cb)
{
unsigned pos;
@@ -61,7 +63,8 @@ static unsigned find_client_extension(const gnutls_datum_t *msg, unsigned extnr,
/* we expect the legacy version to be present */
/* ProtocolVersion legacy_version = 0x0303 */
if (msg->data[0] != 0x03) {
- fail("ProtocolVersion contains %d.%d\n", (int)msg->data[0], (int)msg->data[1]);
+ fail("ProtocolVersion contains %d.%d\n", (int)msg->data[0],
+ (int)msg->data[1]);
}
pos = HANDSHAKE_SESSION_ID_POS;
@@ -79,22 +82,23 @@ static unsigned find_client_extension(const gnutls_datum_t *msg, unsigned extnr,
while (pos < msg->size) {
uint16_t type;
- if (pos+4 > msg->size)
+ if (pos + 4 > msg->size)
fail("invalid client hello\n");
- type = (msg->data[pos] << 8) | msg->data[pos+1];
- pos+=2;
+ type = (msg->data[pos] << 8) | msg->data[pos + 1];
+ pos += 2;
if (debug)
success("Found client extension %d\n", (int)type);
if (type != extnr) {
SKIP16(pos, msg->size);
- } else { /* found */
- ssize_t size = (msg->data[pos] << 8) | msg->data[pos+1];
+ } else { /* found */
+ ssize_t size =
+ (msg->data[pos] << 8) | msg->data[pos + 1];
gnutls_datum_t data;
- pos+=2;
+ pos += 2;
if (pos + size > msg->size) {
fail("error in extension length (pos: %d, ext: %d, total: %d)\n", pos, (int)size, msg->size);
}
@@ -108,7 +112,8 @@ static unsigned find_client_extension(const gnutls_datum_t *msg, unsigned extnr,
return 0;
}
-static unsigned is_client_extension_last(const gnutls_datum_t *msg, unsigned extnr)
+static unsigned is_client_extension_last(const gnutls_datum_t * msg,
+ unsigned extnr)
{
unsigned pos, found = 0;
@@ -118,7 +123,8 @@ static unsigned is_client_extension_last(const gnutls_datum_t *msg, unsigned ext
/* we expect the legacy version to be present */
/* ProtocolVersion legacy_version = 0x0303 */
if (msg->data[0] != 0x03) {
- fail("ProtocolVersion contains %d.%d\n", (int)msg->data[0], (int)msg->data[1]);
+ fail("ProtocolVersion contains %d.%d\n", (int)msg->data[0],
+ (int)msg->data[1]);
}
pos = HANDSHAKE_SESSION_ID_POS;
@@ -136,22 +142,23 @@ static unsigned is_client_extension_last(const gnutls_datum_t *msg, unsigned ext
while (pos < msg->size) {
uint16_t type;
- if (pos+4 > msg->size)
+ if (pos + 4 > msg->size)
fail("invalid client hello\n");
- type = (msg->data[pos] << 8) | msg->data[pos+1];
- pos+=2;
+ type = (msg->data[pos] << 8) | msg->data[pos + 1];
+ pos += 2;
if (debug)
success("Found client extension %d\n", (int)type);
if (type != extnr) {
if (found) {
- success("found extension %d after %d\n", type, extnr);
+ success("found extension %d after %d\n", type,
+ extnr);
return 0;
}
SKIP16(pos, msg->size);
- } else { /* found */
+ } else { /* found */
found = 1;
SKIP16(pos, msg->size);
}
@@ -164,7 +171,9 @@ static unsigned is_client_extension_last(const gnutls_datum_t *msg, unsigned ext
#define TLS_RANDOM_SIZE 32
-static unsigned find_server_extension(const gnutls_datum_t *msg, unsigned extnr, void *priv, ext_parse_func cb)
+static unsigned find_server_extension(const gnutls_datum_t * msg,
+ unsigned extnr, void *priv,
+ ext_parse_func cb)
{
unsigned pos = 0;
@@ -172,14 +181,17 @@ static unsigned find_server_extension(const gnutls_datum_t *msg, unsigned extnr,
/* we expect the legacy version to be present */
/* ProtocolVersion legacy_version = 0x0303 */
if (msg->data[0] != 0x03 || msg->data[1] != 0x03) {
- fail("ProtocolVersion contains %d.%d\n", (int)msg->data[0], (int)msg->data[1]);
+ fail("ProtocolVersion contains %d.%d\n", (int)msg->data[0],
+ (int)msg->data[1]);
}
if (msg->data[1] >= 0x04) {
- success("assuming TLS 1.3 or better hello format (seen %d.%d)\n", (int)msg->data[0], (int)msg->data[1]);
+ success
+ ("assuming TLS 1.3 or better hello format (seen %d.%d)\n",
+ (int)msg->data[0], (int)msg->data[1]);
}
- pos += 2+TLS_RANDOM_SIZE;
+ pos += 2 + TLS_RANDOM_SIZE;
/* legacy_session_id */
SKIP8(pos, msg->size);
@@ -195,21 +207,22 @@ static unsigned find_server_extension(const gnutls_datum_t *msg, unsigned extnr,
while (pos < msg->size) {
uint16_t type;
- if (pos+4 > msg->size)
+ if (pos + 4 > msg->size)
fail("invalid server hello\n");
- type = (msg->data[pos] << 8) | msg->data[pos+1];
- pos+=2;
+ type = (msg->data[pos] << 8) | msg->data[pos + 1];
+ pos += 2;
success("Found server extension %d\n", (int)type);
if (type != extnr) {
SKIP16(pos, msg->size);
- } else { /* found */
- ssize_t size = (msg->data[pos] << 8) | msg->data[pos+1];
+ } else { /* found */
+ ssize_t size =
+ (msg->data[pos] << 8) | msg->data[pos + 1];
gnutls_datum_t data;
- pos+=2;
+ pos += 2;
if (pos + size < msg->size) {
fail("error in server extension length (pos: %d, total: %d)\n", pos, msg->size);
}
@@ -225,5 +238,5 @@ static unsigned find_server_extension(const gnutls_datum_t *msg, unsigned extnr,
}
#if defined __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
-# pragma GCC diagnostic pop
+# pragma GCC diagnostic pop
#endif
diff --git a/tests/tls13/hello_retry_request.c b/tests/tls13/hello_retry_request.c
index 531637628f..72451c2b67 100644
--- a/tests/tls13/hello_retry_request.c
+++ b/tests/tls13/hello_retry_request.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,28 +35,28 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "cert-common.h"
-#include "utils.h"
-#include "tls13/ext-parse.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <assert.h>
+# include <signal.h>
+
+# include "cert-common.h"
+# include "utils.h"
+# include "tls13/ext-parse.h"
/* This program tests whether the version in Hello Retry Request message
* is the expected */
const char *testname = "";
-#define myfail(fmt, ...) \
+# define myfail(fmt, ...) \
fail("%s: "fmt, testname, ##__VA_ARGS__)
static void server_log_func(int level, const char *str)
@@ -69,7 +69,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define HANDSHAKE_SESSION_ID_POS 34
+# define HANDSHAKE_SESSION_ID_POS 34
struct ctx_st {
unsigned hrr_seen;
@@ -79,7 +79,8 @@ struct ctx_st {
};
static int hello_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
struct ctx_st *ctx = gnutls_session_get_ptr(session);
assert(ctx != NULL);
@@ -98,11 +99,13 @@ static int hello_callback(gnutls_session_t session, unsigned int htype,
if (ctx->hello_counter > 0) {
assert(msg->size > 4);
if (msg->data[0] != 0x03 || msg->data[1] != 0x03) {
- fail("version is %d.%d expected 3,3\n", (int)msg->data[0], (int)msg->data[1]);
+ fail("version is %d.%d expected 3,3\n",
+ (int)msg->data[0], (int)msg->data[1]);
}
if (session_id_len != ctx->session_id_len ||
- memcmp(session_id, ctx->session_id, session_id_len) != 0) {
+ memcmp(session_id, ctx->session_id,
+ session_id_len) != 0) {
fail("different legacy_session_id is sent after HRR\n");
}
}
@@ -116,7 +119,6 @@ static int hello_callback(gnutls_session_t session, unsigned int htype,
return 0;
}
-
static void client(int fd)
{
int ret;
@@ -131,22 +133,25 @@ static void client(int fd)
gnutls_global_set_log_level(7);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_KEY_SHARE_TOP)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_KEY_SHARE_TOP) >=
+ 0);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_session_set_ptr(session, &ctx);
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-X25519", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-X25519",
+ NULL);
if (ret < 0)
myfail("cannot set TLS 1.3 priorities\n");
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
- GNUTLS_HOOK_BOTH,
- hello_callback);
+ GNUTLS_HOOK_BOTH, hello_callback);
gnutls_transport_set_int(session, fd);
@@ -175,17 +180,20 @@ static void server(int fd)
gnutls_global_set_log_level(4711);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
&server_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ GNUTLS_X509_FMT_PEM) >= 0);
gnutls_init(&session, GNUTLS_SERVER);
gnutls_handshake_set_timeout(session, get_timeout());
/* server only supports x25519, client advertises secp256r1 */
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519",
+ NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -193,7 +201,7 @@ static void server(int fd)
do {
ret = gnutls_handshake(session);
- if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
+ if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
break;
}
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
@@ -202,7 +210,8 @@ static void server(int fd)
myfail("handshake error: %s\n", gnutls_strerror(ret));
if (gnutls_group_get(session) != GNUTLS_GROUP_X25519)
- myfail("group doesn't match the expected: %s\n", gnutls_group_get_name(gnutls_group_get(session)));
+ myfail("group doesn't match the expected: %s\n",
+ gnutls_group_get_name(gnutls_group_get(session)));
close(fd);
gnutls_deinit(session);
diff --git a/tests/tls13/hello_retry_request_resume.c b/tests/tls13/hello_retry_request_resume.c
index f4d0d037a4..aad2388ae5 100644
--- a/tests/tls13/hello_retry_request_resume.c
+++ b/tests/tls13/hello_retry_request_resume.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "../lib/handshake-defs.h"
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "../lib/handshake-defs.h"
+# include "cert-common.h"
+# include "utils.h"
/* This program tests whether the certificate seen in Post Handshake Auth
* is found in a resumed session under TLS 1.3.
@@ -65,7 +65,8 @@ static void client_log_func(int level, const char *str)
}
static int ticket_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
gnutls_datum *d;
int ret;
@@ -92,7 +93,7 @@ static void client(int fd)
int ret;
gnutls_session_t session;
unsigned try = 0;
- gnutls_datum_t session_data = {NULL, 0};
+ gnutls_datum_t session_data = { NULL, 0 };
gnutls_certificate_credentials_t x509_cred;
global_init();
@@ -102,27 +103,31 @@ static void client(int fd)
gnutls_global_set_log_level(7);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
retry:
/* Initialize TLS session
*/
- assert(gnutls_init(&session, GNUTLS_CLIENT)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-X25519", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-X25519",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
-
if (try == 0) {
gnutls_session_set_ptr(session, &session_data);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
GNUTLS_HOOK_BOTH,
ticket_callback);
} else {
- assert(gnutls_session_set_data(session, session_data.data, session_data.size) >= 0);
+ assert(gnutls_session_set_data
+ (session, session_data.data, session_data.size) >= 0);
}
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -141,7 +146,7 @@ static void client(int fd)
do {
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret != 0) {
fail("error in recv: %s\n", gnutls_strerror(ret));
@@ -161,11 +166,11 @@ static void client(int fd)
gnutls_global_deinit();
}
-#define HANDSHAKE_SESSION_ID_POS 34
+# define HANDSHAKE_SESSION_ID_POS 34
static int client_hello_callback(gnutls_session_t session, unsigned int htype,
unsigned post, unsigned int incoming,
- const gnutls_datum_t *msg)
+ const gnutls_datum_t * msg)
{
gnutls_datum *d;
@@ -187,14 +192,14 @@ static void server(int fd)
unsigned try = 0;
gnutls_certificate_credentials_t x509_cred;
gnutls_datum_t skey;
- gnutls_datum_t session_id = {NULL, 0};
- gnutls_datum_t retry_session_id = {NULL, 0};
+ gnutls_datum_t session_id = { NULL, 0 };
+ gnutls_datum_t retry_session_id = { NULL, 0 };
/* this must be called once in the program
*/
global_init();
- assert(gnutls_session_ticket_key_generate(&skey)>=0);
+ assert(gnutls_session_ticket_key_generate(&skey) >= 0);
if (debug) {
gnutls_global_set_log_function(server_log_func);
@@ -203,17 +208,19 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
retry:
- assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
assert(gnutls_session_ticket_enable_server(session, &skey) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
/* server only supports x25519, client advertises secp256r1 */
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519",
+ NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -225,7 +232,8 @@ static void server(int fd)
gnutls_session_set_ptr(session, &retry_session_id);
}
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CLIENT_HELLO,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CLIENT_HELLO,
GNUTLS_HOOK_POST,
client_hello_callback);
@@ -245,15 +253,15 @@ static void server(int fd)
* it's turned off, both session IDs should be empty. */
if (session_id.size == 0 ||
session_id.size != retry_session_id.size ||
- memcmp(session_id.data, retry_session_id.data, session_id.size)) {
- fail("session ids are different after resumption: %u, %u\n",
- session_id.size, retry_session_id.size);
+ memcmp(session_id.data, retry_session_id.data,
+ session_id.size)) {
+ fail("session ids are different after resumption: %u, %u\n", session_id.size, retry_session_id.size);
}
}
do {
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
gnutls_deinit(session);
if (try == 0) {
diff --git a/tests/tls13/key_limits.c b/tests/tls13/key_limits.c
index 24d5dd24fb..1799960ef7 100644
--- a/tests/tls13/key_limits.c
+++ b/tests/tls13/key_limits.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,20 +36,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <assert.h>
-#include <signal.h>
-
-#include "utils.h"
-#include "cert-common.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <assert.h>
+# include <signal.h>
+
+# include "utils.h"
+# include "cert-common.h"
static void terminate(void);
@@ -67,7 +67,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, const char *prio, unsigned expect_update)
{
@@ -94,7 +94,8 @@ static void client(int fd, const char *prio, unsigned expect_update)
/* Use default priorities */
ret = gnutls_priority_set_direct(session, prio, NULL);
if (ret < 0) {
- fail("error in priority '%s': %s\n", prio, gnutls_strerror(ret));
+ fail("error in priority '%s': %s\n", prio,
+ gnutls_strerror(ret));
exit(1);
}
@@ -127,13 +128,15 @@ static void client(int fd, const char *prio, unsigned expect_update)
gnutls_record_set_timeout(session, 10000);
assert(gnutls_record_get_state(session, 1, NULL, NULL, NULL, seq) >= 0);
- assert(gnutls_record_set_state(session, 1, (void*)"\x00\x00\x00\x00\x00\xff\xff\xfa") >= 0);
+ assert(gnutls_record_set_state
+ (session, 1, (void *)"\x00\x00\x00\x00\x00\xff\xff\xfa") >= 0);
do {
do {
- ret = gnutls_record_recv_seq(session, buffer, MAX_BUF, seq);
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ ret =
+ gnutls_record_recv_seq(session, buffer, MAX_BUF,
+ seq);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (memcmp(seq, "\x00\x00\x00\x00\x00\x00\x00\x01", 8) == 0) {
update_happened = 1;
@@ -142,8 +145,7 @@ static void client(int fd, const char *prio, unsigned expect_update)
if (ret == 0 || ret == GNUTLS_E_TIMEDOUT) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
if (ret != 0) {
@@ -154,7 +156,7 @@ static void client(int fd, const char *prio, unsigned expect_update)
gnutls_bye(session, GNUTLS_SHUT_WR);
- end:
+ end:
close(fd);
@@ -176,7 +178,6 @@ static void client(int fd, const char *prio, unsigned expect_update)
}
}
-
/* These are global */
pid_t child;
@@ -208,8 +209,7 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
@@ -218,7 +218,8 @@ static void server(int fd, const char *prio)
*/
ret = gnutls_priority_set_direct(session, prio, NULL);
if (ret < 0) {
- fail("error in priority '%s': %s\n", prio, gnutls_strerror(ret));
+ fail("error in priority '%s': %s\n", prio,
+ gnutls_strerror(ret));
exit(1);
}
@@ -246,32 +247,30 @@ static void server(int fd, const char *prio)
(gnutls_protocol_get_version(session)));
assert(gnutls_record_get_state(session, 0, NULL, NULL, NULL, seq) >= 0);
- assert(gnutls_record_set_state(session, 0, (void*)"\x00\x00\x00\x00\x00\xff\xff\xfa") >= 0);
+ assert(gnutls_record_set_state
+ (session, 0, (void *)"\x00\x00\x00\x00\x00\xff\xff\xfa") >= 0);
memset(buffer, 1, sizeof(buffer));
- for (i = 0; i<32; i++) {
- usleep(10000); /* some systems like FreeBSD have their buffers full during this send */
+ for (i = 0; i < 32; i++) {
+ usleep(10000); /* some systems like FreeBSD have their buffers full during this send */
do {
ret =
- gnutls_record_send(session, buffer,
- sizeof(buffer));
- } while (ret == GNUTLS_E_AGAIN
- || ret == GNUTLS_E_INTERRUPTED);
+ gnutls_record_send(session, buffer, sizeof(buffer));
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0) {
- fail("Error sending %d byte packet: %s\n", (int)sizeof(buffer),
- gnutls_strerror(ret));
+ fail("Error sending %d byte packet: %s\n",
+ (int)sizeof(buffer), gnutls_strerror(ret));
terminate();
}
if (ret != sizeof(buffer)) {
- fail("Error sending %d byte packet: sent: %d\n", (int)sizeof(buffer),
- ret);
+ fail("Error sending %d byte packet: sent: %d\n",
+ (int)sizeof(buffer), ret);
terminate();
}
}
-
/* wait for the peer to close the connection.
*/
gnutls_bye(session, GNUTLS_SHUT_WR);
@@ -319,8 +318,8 @@ static void start(const char *name, const char *prio, unsigned exp_update)
}
}
-#define AES_GCM "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM"
-#define CHACHA_POLY1305 "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+CHACHA20-POLY1305"
+# define AES_GCM "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+AES-128-GCM"
+# define CHACHA_POLY1305 "NORMAL:-VERS-ALL:+VERS-TLS1.3:-CIPHER-ALL:+CHACHA20-POLY1305"
static void ch_handler(int sig)
{
diff --git a/tests/tls13/key_share.c b/tests/tls13/key_share.c
index fa785a5d18..f8afa73ef1 100644
--- a/tests/tls13/key_share.c
+++ b/tests/tls13/key_share.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -59,7 +59,6 @@ unsigned int tls_id_to_group[] = {
[0x101] = GNUTLS_GROUP_FFDHE3072
};
-
#define TLS_EXT_KEY_SHARE 51
typedef struct ctx_st {
@@ -68,7 +67,7 @@ typedef struct ctx_st {
} ctx_st;
static
-void check_ks_contents(void *priv, gnutls_datum_t *msg)
+void check_ks_contents(void *priv, gnutls_datum_t * msg)
{
ctx_st *ctx;
int len;
@@ -80,19 +79,19 @@ void check_ks_contents(void *priv, gnutls_datum_t *msg)
ctx = gnutls_session_get_ptr(session);
len = (msg->data[0] << 8) | msg->data[1];
- if (len+2 != (int)msg->size)
+ if (len + 2 != (int)msg->size)
myfail("mismatch in length (%d vs %d)!\n", len, (int)msg->size);
pos = 2;
- while((unsigned)pos < msg->size) {
- id = (msg->data[pos] << 8) | msg->data[pos+1];
+ while ((unsigned)pos < msg->size) {
+ id = (msg->data[pos] << 8) | msg->data[pos + 1];
pos += 2;
len -= 2;
if (debug)
success("found group: %u\n", id);
- if (id < sizeof(tls_id_to_group)/sizeof(tls_id_to_group[0])) {
+ if (id < sizeof(tls_id_to_group) / sizeof(tls_id_to_group[0])) {
if (tls_id_to_group[id] == ctx->group)
found = 1;
}
@@ -106,15 +105,18 @@ void check_ks_contents(void *priv, gnutls_datum_t *msg)
}
if (found == 0) {
- myfail("did not find group %s\n", gnutls_group_get_name(ctx->group));
+ myfail("did not find group %s\n",
+ gnutls_group_get_name(ctx->group));
}
}
static int client_hello_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
if (htype == GNUTLS_HANDSHAKE_CLIENT_HELLO && post == GNUTLS_HOOK_POST) {
- if (find_client_extension(msg, TLS_EXT_KEY_SHARE, session, check_ks_contents) == 0)
+ if (find_client_extension
+ (msg, TLS_EXT_KEY_SHARE, session, check_ks_contents) == 0)
fail("Could not find key share extension!\n");
}
@@ -168,7 +170,7 @@ static void start(const char *name, const char *prio, unsigned flag,
assert(gnutls_certificate_set_x509_trust_mem
(ccred, &ca3_cert, GNUTLS_X509_FMT_PEM) >= 0);
- gnutls_init(&client, GNUTLS_CLIENT|flag);
+ gnutls_init(&client, GNUTLS_CLIENT | flag);
cret = gnutls_priority_set_direct(client, prio, NULL);
if (cret < 0)
@@ -187,7 +189,8 @@ static void start(const char *name, const char *prio, unsigned flag,
success("Handshake established\n");
if (gnutls_group_get(server) != group)
- myfail("group doesn't match the expected: %s\n", gnutls_group_get_name(gnutls_group_get(server)));
+ myfail("group doesn't match the expected: %s\n",
+ gnutls_group_get_name(gnutls_group_get(server)));
gnutls_bye(client, GNUTLS_SHUT_WR);
gnutls_bye(server, GNUTLS_SHUT_WR);
@@ -204,30 +207,64 @@ static void start(const char *name, const char *prio, unsigned flag,
void doit(void)
{
- start("single group: default secp256r1", "NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_KEY_SHARE_TOP, GNUTLS_GROUP_SECP256R1, 1);
- start("single group: secp256r1", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE2048", GNUTLS_KEY_SHARE_TOP, GNUTLS_GROUP_SECP256R1, 1);
- start("single group: x25519", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048", GNUTLS_KEY_SHARE_TOP, GNUTLS_GROUP_X25519, 1);
+ start("single group: default secp256r1",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_KEY_SHARE_TOP,
+ GNUTLS_GROUP_SECP256R1, 1);
+ start("single group: secp256r1",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE2048",
+ GNUTLS_KEY_SHARE_TOP, GNUTLS_GROUP_SECP256R1, 1);
+ start("single group: x25519",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048",
+ GNUTLS_KEY_SHARE_TOP, GNUTLS_GROUP_X25519, 1);
/* unfortunately we strictly follow the rfc7919 RFC and we prioritize groups
* based on ciphersuite listing as well. To prioritize the FFDHE groups we need
* to prioritize the non-EC ciphersuites first. */
- start("single group: ffdhe2048", "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE3072", GNUTLS_KEY_SHARE_TOP, GNUTLS_GROUP_FFDHE2048, 1);
-
- start("two groups: default secp256r1", "NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_KEY_SHARE_TOP2, GNUTLS_GROUP_SECP256R1, 2);
- start("two groups: secp256r1", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE2048", GNUTLS_KEY_SHARE_TOP2, GNUTLS_GROUP_SECP256R1, 2);
- start("two groups: x25519", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048", GNUTLS_KEY_SHARE_TOP2, GNUTLS_GROUP_X25519, 2);
- start("two groups: x448", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X448:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048", GNUTLS_KEY_SHARE_TOP2, GNUTLS_GROUP_X448, 2);
- start("two groups: ffdhe2048", "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE3072", GNUTLS_KEY_SHARE_TOP2, GNUTLS_GROUP_FFDHE2048, 2);
-
- start("three groups: default secp256r1", "NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_KEY_SHARE_TOP3, GNUTLS_GROUP_SECP256R1, 3);
- start("three groups: secp256r1", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE2048", GNUTLS_KEY_SHARE_TOP3, GNUTLS_GROUP_SECP256R1, 3);
- start("three groups: x25519", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048", GNUTLS_KEY_SHARE_TOP3, GNUTLS_GROUP_X25519, 3);
- start("three groups: x448", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X448:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048", GNUTLS_KEY_SHARE_TOP3, GNUTLS_GROUP_X448, 3);
- start("three groups: ffdhe2048", "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE3072", GNUTLS_KEY_SHARE_TOP3, GNUTLS_GROUP_FFDHE2048, 3);
+ start("single group: ffdhe2048",
+ "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE3072",
+ GNUTLS_KEY_SHARE_TOP, GNUTLS_GROUP_FFDHE2048, 1);
+
+ start("two groups: default secp256r1", "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ GNUTLS_KEY_SHARE_TOP2, GNUTLS_GROUP_SECP256R1, 2);
+ start("two groups: secp256r1",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE2048",
+ GNUTLS_KEY_SHARE_TOP2, GNUTLS_GROUP_SECP256R1, 2);
+ start("two groups: x25519",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048",
+ GNUTLS_KEY_SHARE_TOP2, GNUTLS_GROUP_X25519, 2);
+ start("two groups: x448",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X448:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048",
+ GNUTLS_KEY_SHARE_TOP2, GNUTLS_GROUP_X448, 2);
+ start("two groups: ffdhe2048",
+ "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE3072",
+ GNUTLS_KEY_SHARE_TOP2, GNUTLS_GROUP_FFDHE2048, 2);
+
+ start("three groups: default secp256r1",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3", GNUTLS_KEY_SHARE_TOP3,
+ GNUTLS_GROUP_SECP256R1, 3);
+ start("three groups: secp256r1",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE2048",
+ GNUTLS_KEY_SHARE_TOP3, GNUTLS_GROUP_SECP256R1, 3);
+ start("three groups: x25519",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048",
+ GNUTLS_KEY_SHARE_TOP3, GNUTLS_GROUP_X25519, 3);
+ start("three groups: x448",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X448:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048",
+ GNUTLS_KEY_SHARE_TOP3, GNUTLS_GROUP_X448, 3);
+ start("three groups: ffdhe2048",
+ "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE3072",
+ GNUTLS_KEY_SHARE_TOP3, GNUTLS_GROUP_FFDHE2048, 3);
/* test default behavior */
- start("default groups(2): default secp256r1", "NORMAL:-VERS-ALL:+VERS-TLS1.3", 0, GNUTLS_GROUP_SECP256R1, 2);
- start("default groups(2): secp256r1", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE2048", 0, GNUTLS_GROUP_SECP256R1, 2);
- start("default groups(2): x25519", "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048", 0, GNUTLS_GROUP_X25519, 2);
- start("default groups(2): ffdhe2048", "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE3072", 0, GNUTLS_GROUP_FFDHE2048, 2);
+ start("default groups(2): default secp256r1",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3", 0, GNUTLS_GROUP_SECP256R1, 2);
+ start("default groups(2): secp256r1",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE2048",
+ 0, GNUTLS_GROUP_SECP256R1, 2);
+ start("default groups(2): x25519",
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-FFDHE2048",
+ 0, GNUTLS_GROUP_X25519, 2);
+ start("default groups(2): ffdhe2048",
+ "NORMAL:-KX-ALL:+DHE-RSA:+ECDHE-RSA:-VERS-ALL:+VERS-TLS1.3:-GROUP-ALL:+GROUP-FFDHE2048:+GROUP-SECP256R1:+GROUP-SECP384R1:+GROUP-X25519:+GROUP-FFDHE3072",
+ 0, GNUTLS_GROUP_FFDHE2048, 2);
}
diff --git a/tests/tls13/key_update.c b/tests/tls13/key_update.c
index e9fae865ba..93b9ee9bbc 100644
--- a/tests/tls13/key_update.c
+++ b/tests/tls13/key_update.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -50,7 +50,8 @@ static unsigned key_update_msg_inc = 0;
static unsigned key_update_msg_out = 0;
static int hsk_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
assert(post == GNUTLS_HOOK_PRE);
@@ -125,7 +126,6 @@ static void run(const char *name, unsigned test)
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
-
HANDSHAKE(client, server);
if (debug)
success("Handshake established\n");
@@ -231,8 +231,10 @@ static void run(const char *name, unsigned test)
success("%s: callbacks are called\n", name);
- gnutls_handshake_set_hook_function(client, -1, GNUTLS_HOOK_PRE, hsk_callback);
- gnutls_handshake_set_hook_function(server, -1, GNUTLS_HOOK_PRE, hsk_callback);
+ gnutls_handshake_set_hook_function(client, -1, GNUTLS_HOOK_PRE,
+ hsk_callback);
+ gnutls_handshake_set_hook_function(server, -1, GNUTLS_HOOK_PRE,
+ hsk_callback);
do {
ret = gnutls_session_key_update(client, GNUTLS_KU_PEER);
@@ -250,7 +252,6 @@ static void run(const char *name, unsigned test)
break;
}
-
gnutls_bye(client, GNUTLS_SHUT_WR);
gnutls_bye(server, GNUTLS_SHUT_WR);
@@ -272,5 +273,5 @@ void doit(void)
run("single", 4);
run("single", 5);
run("single", 6);
- run("all", 0); /* all one after each other */
+ run("all", 0); /* all one after each other */
}
diff --git a/tests/tls13/key_update_multiple.c b/tests/tls13/key_update_multiple.c
index 8b2c2db4b3..06c63d5d44 100644
--- a/tests/tls13/key_update_multiple.c
+++ b/tests/tls13/key_update_multiple.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdbool.h>
@@ -59,7 +59,8 @@ static unsigned key_update_msg_inc = 0;
static unsigned key_update_msg_out = 0;
static int hsk_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
assert(post == GNUTLS_HOOK_PRE);
@@ -137,7 +138,6 @@ static void run(const char *name, bool exceed_limit)
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
-
HANDSHAKE(client, server);
if (debug)
success("Handshake established\n");
@@ -145,7 +145,8 @@ static void run(const char *name, bool exceed_limit)
key_update_msg_inc = 0;
key_update_msg_out = 0;
- gnutls_handshake_set_hook_function(client, -1, GNUTLS_HOOK_PRE, hsk_callback);
+ gnutls_handshake_set_hook_function(client, -1, GNUTLS_HOOK_PRE,
+ hsk_callback);
/* schedule multiple key updates */
for (i = 0; i < KEY_UPDATES_PER_WINDOW; i++) {
@@ -163,7 +164,7 @@ static void run(const char *name, bool exceed_limit)
if (key_update_msg_out != KEY_UPDATES_PER_WINDOW)
fail("unexpected number of key updates are sent: %d\n",
- key_update_msg_out);
+ key_update_msg_out);
else {
if (debug)
success("successfully sent %d key updates\n",
@@ -171,7 +172,7 @@ static void run(const char *name, bool exceed_limit)
}
if (key_update_msg_inc != 1)
fail("unexpected number of key updates received: %d\n",
- key_update_msg_inc);
+ key_update_msg_inc);
else {
if (debug)
success("successfully received 1 key update\n");
@@ -192,7 +193,8 @@ static void run(const char *name, bool exceed_limit)
fail("server didn't reject excessive number of key updates\n");
else {
if (debug)
- success("server rejected excessive number of key updates\n");
+ success
+ ("server rejected excessive number of key updates\n");
}
} else {
virt_sec_sleep(KEY_UPDATES_WINDOW / 1000 + 1);
diff --git a/tests/tls13/multi-ocsp.c b/tests/tls13/multi-ocsp.c
index e7a52e125a..4d9ae660be 100644
--- a/tests/tls13/multi-ocsp.c
+++ b/tests/tls13/multi-ocsp.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -32,9 +32,9 @@
#ifdef ENABLE_OCSP
-#include "ocsp-common.h"
-#include "cert-common.h"
-#include "utils.h"
+# include "ocsp-common.h"
+# include "cert-common.h"
+# include "utils.h"
/* Tests whether we can send and receive multiple OCSP responses
* one for each certificate in a chain under TLS 1.3.
@@ -50,12 +50,16 @@ static time_t mytime(time_t * t)
}
static const gnutls_datum_t ocsp_resp_localhost[] = {
- { (void*)_ocsp_ca3_localhost_unknown, sizeof(_ocsp_ca3_localhost_unknown) },
- { NULL, 0}};
+ {(void *)_ocsp_ca3_localhost_unknown,
+ sizeof(_ocsp_ca3_localhost_unknown)},
+ {NULL, 0}
+};
static const gnutls_datum_t ocsp_resp_localhost6[] = {
- { (void*)_ocsp_ca3_localhost6_unknown, sizeof(_ocsp_ca3_localhost6_unknown) },
- { (void*)_ocsp_subca3_unknown, sizeof(_ocsp_subca3_unknown) }};
+ {(void *)_ocsp_ca3_localhost6_unknown,
+ sizeof(_ocsp_ca3_localhost6_unknown)},
+ {(void *)_ocsp_subca3_unknown, sizeof(_ocsp_subca3_unknown)}
+};
typedef struct ctx_st {
const char *name;
@@ -63,10 +67,10 @@ typedef struct ctx_st {
unsigned nocsp;
} ctx_st;
-static ctx_st test_localhost = {"single response", ocsp_resp_localhost, 1};
-static ctx_st test_localhost6 = {"two responses", ocsp_resp_localhost6, 2};
+static ctx_st test_localhost = { "single response", ocsp_resp_localhost, 1 };
+static ctx_st test_localhost6 = { "two responses", ocsp_resp_localhost6, 2 };
-#define myfail(fmt, ...) \
+# define myfail(fmt, ...) \
fail("%s: "fmt, test->name, ##__VA_ARGS__)
static void check_response(gnutls_session_t session, void *priv)
@@ -78,7 +82,7 @@ static void check_response(gnutls_session_t session, void *priv)
assert(test != NULL);
- for (i=0;;i++) {
+ for (i = 0;; i++) {
ret = gnutls_ocsp_status_request_get2(session, i, &resp);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
@@ -93,18 +97,23 @@ static void check_response(gnutls_session_t session, void *priv)
}
if (resp.size != test->ocsp[i].size) {
- myfail("did not receive the expected response size for %d\n", i);
+ myfail
+ ("did not receive the expected response size for %d\n",
+ i);
}
if (memcmp(resp.data, test->ocsp[i].data, resp.size) != 0) {
- myfail("did not receive the expected response for %d\n", i);
+ myfail("did not receive the expected response for %d\n",
+ i);
}
}
if (i != test->nocsp) {
- myfail("The number of OCSP responses received (%d) does not match the expected (%d)\n", i, test->nocsp);
+ myfail
+ ("The number of OCSP responses received (%d) does not match the expected (%d)\n",
+ i, test->nocsp);
}
-
+
}
static void tls_log_func(int level, const char *str)
@@ -122,7 +131,7 @@ void doit(void)
char certname1[TMPNAME_SIZE];
char certname2[TMPNAME_SIZE];
FILE *fp;
- unsigned index1, index2; /* indexes of certs */
+ unsigned index1, index2; /* indexes of certs */
global_init();
gnutls_global_set_time_function(mytime);
@@ -142,12 +151,17 @@ void doit(void)
fp = fopen(certfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, strlen(server_localhost_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost_ca3_cert_chain_pem, 1,
+ strlen(server_localhost_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile1, certfile1,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index1 = ret;
@@ -158,44 +172,66 @@ void doit(void)
fp = fopen(certfile2, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost6_ca3_cert_chain_pem, 1, strlen(server_localhost6_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost6_ca3_cert_chain_pem, 1,
+ strlen(server_localhost6_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile2, certfile2,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index2 = ret;
-
/* set OCSP response1 */
- ret = gnutls_certificate_set_ocsp_status_request_mem(xcred, &test_localhost.ocsp[0], index1, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_mem(xcred,
+ &test_localhost.ocsp
+ [0], index1,
+ GNUTLS_X509_FMT_DER);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
/* set OCSP response2 */
- ret = gnutls_certificate_set_ocsp_status_request_mem(xcred, &test_localhost6.ocsp[0], index2, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_mem(xcred,
+ &test_localhost6.ocsp
+ [0], index2,
+ GNUTLS_X509_FMT_DER);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
- ret = gnutls_certificate_set_ocsp_status_request_mem(xcred, &test_localhost6.ocsp[1], index2, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_mem(xcred,
+ &test_localhost6.ocsp
+ [1], index2,
+ GNUTLS_X509_FMT_DER);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
/* make sure that our invalid OCSP responses are not considered in verification
*/
- gnutls_certificate_set_verify_flags(clicred, GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
- if (gnutls_certificate_get_verify_flags(clicred) != GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
+ gnutls_certificate_set_verify_flags(clicred,
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
+ if (gnutls_certificate_get_verify_flags(clicred) !=
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
fail("error in gnutls_certificate_set_verify_flags\n");
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in setting trust cert: %s\n", gnutls_strerror(ret));
}
- test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost", &test_localhost, check_response, NULL);
- test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3", "localhost6", &test_localhost6, check_response, NULL);
+ test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3",
+ "localhost", &test_localhost, check_response, NULL);
+ test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3",
+ "localhost6", &test_localhost6, check_response, NULL);
gnutls_certificate_free_credentials(xcred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/tls13/no-auto-send-ticket.c b/tests/tls13/no-auto-send-ticket.c
index 001ed38c38..5e9cfa44b6 100644
--- a/tests/tls13/no-auto-send-ticket.c
+++ b/tests/tls13/no-auto-send-ticket.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "../lib/handshake-defs.h"
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "../lib/handshake-defs.h"
+# include "cert-common.h"
+# include "utils.h"
/* This program tests whether the certificate seen in Post Handshake Auth
* is found in a resumed session under TLS 1.3.
@@ -66,7 +66,8 @@ static void client_log_func(int level, const char *str)
static unsigned tickets_seen = 0;
static int ticket_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
gnutls_datum *d;
int ret;
@@ -94,7 +95,7 @@ static void client(int fd, unsigned flags, unsigned tickets)
int ret;
gnutls_session_t session;
unsigned try = 0;
- gnutls_datum_t session_data = {NULL, 0};
+ gnutls_datum_t session_data = { NULL, 0 };
gnutls_certificate_credentials_t x509_cred;
global_init();
@@ -105,27 +106,31 @@ static void client(int fd, unsigned flags, unsigned tickets)
gnutls_global_set_log_level(7);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
retry:
/* Initialize TLS session
*/
- assert(gnutls_init(&session, GNUTLS_CLIENT|flags)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | flags) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
-
if (try == 0) {
gnutls_session_set_ptr(session, &session_data);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
GNUTLS_HOOK_BOTH,
ticket_callback);
} else {
- assert(gnutls_session_set_data(session, session_data.data, session_data.size) >= 0);
+ assert(gnutls_session_set_data
+ (session, session_data.data, session_data.size) >= 0);
}
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -144,7 +149,7 @@ static void client(int fd, unsigned flags, unsigned tickets)
do {
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret != 0) {
fail("error in recv: %s\n", gnutls_strerror(ret));
@@ -180,7 +185,7 @@ static void server(int fd, unsigned flags,
*/
global_init();
- assert(gnutls_session_ticket_key_generate(&skey)>=0);
+ assert(gnutls_session_ticket_key_generate(&skey) >= 0);
if (debug) {
gnutls_global_set_log_function(server_log_func);
@@ -189,15 +194,15 @@ static void server(int fd, unsigned flags,
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
- assert(gnutls_init(&session, GNUTLS_SERVER|flags)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER | flags) >= 0);
assert(gnutls_session_ticket_enable_server(session, &skey) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL)>=0);
+ assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL)
+ >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -212,25 +217,30 @@ static void server(int fd, unsigned flags,
if (tickets_sent > 0) {
do {
- ret = gnutls_session_ticket_send(session, tickets_sent, 0);
+ ret =
+ gnutls_session_ticket_send(session, tickets_sent,
+ 0);
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
}
do {
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
gnutls_deinit(session);
if (tickets_expected > 0) {
/* resume session
*/
- assert(gnutls_init(&session, GNUTLS_SERVER|flags)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER | flags) >= 0);
- assert(gnutls_session_ticket_enable_server(session, &skey) >= 0);
+ assert(gnutls_session_ticket_enable_server(session, &skey) >=
+ 0);
gnutls_handshake_set_timeout(session, get_timeout());
- assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:+VERS-TLS1.3", NULL) >= 0);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
+ x509_cred);
gnutls_transport_set_int(session, fd);
@@ -267,8 +277,7 @@ static void ch_handler(int sig)
static void start(const char *name,
unsigned flags,
- unsigned tickets_sent,
- unsigned tickets_expected)
+ unsigned tickets_sent, unsigned tickets_expected)
{
int fd[2];
int ret;
diff --git a/tests/tls13/no-psk-exts.c b/tests/tls13/no-psk-exts.c
index f5390e803c..55b9ccccd0 100644
--- a/tests/tls13/no-psk-exts.c
+++ b/tests/tls13/no-psk-exts.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-
-#include "cert-common.h"
-#include "tls13/ext-parse.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+
+# include "cert-common.h"
+# include "tls13/ext-parse.h"
+# include "utils.h"
/* This program tests whether a connection without the PSK priority
* options, will contain PSK extensions */
@@ -63,7 +63,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd)
{
@@ -84,11 +84,14 @@ static void client(int fd)
/* Initialize TLS session
*/
- gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_NO_TICKETS);
+ gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_NO_TICKETS);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
@@ -109,7 +112,8 @@ static void client(int fd)
/* try if gnutls_reauth() would fail as expected */
ret = gnutls_reauth(session, 0);
if (ret != GNUTLS_E_INVALID_REQUEST)
- fail("server: gnutls_reauth did not fail as expected: %s", gnutls_strerror(ret));
+ fail("server: gnutls_reauth did not fail as expected: %s",
+ gnutls_strerror(ret));
close(fd);
@@ -123,11 +127,12 @@ static void client(int fd)
static unsigned server_hello_ok = 0;
-#define TLS_EXT_PSK 41
-#define TLS_EXT_PSK_KE 45
+# define TLS_EXT_PSK 41
+# define TLS_EXT_PSK_KE 45
static int hellos_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
if (htype == GNUTLS_HANDSHAKE_SERVER_HELLO && post == GNUTLS_HOOK_POST) {
if (find_server_extension(msg, TLS_EXT_PSK_KE, NULL, NULL)) {
@@ -172,15 +177,13 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
- GNUTLS_HOOK_BOTH,
- hellos_callback);
+ GNUTLS_HOOK_BOTH, hellos_callback);
/* avoid calling all the priority functions, since the defaults
* are adequate.
@@ -193,12 +196,11 @@ static void server(int fd)
do {
ret = gnutls_handshake(session);
- if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
+ if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
break;
}
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
if (server_hello_ok == 0) {
fail("server: did not verify the server hello contents\n");
}
diff --git a/tests/tls13/ocsp-client.c b/tests/tls13/ocsp-client.c
index a98dfdc77e..d91febe43e 100644
--- a/tests/tls13/ocsp-client.c
+++ b/tests/tls13/ocsp-client.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -32,8 +32,8 @@
#ifdef ENABLE_OCSP
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
/* Tests whether we can send and receive multiple OCSP responses
* one for each certificate in a chain under TLS 1.3, but unrelated
@@ -50,15 +50,14 @@ static time_t mytime(time_t * t)
return then;
}
-#define RESP1 "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
+# define RESP1 "\x30\x82\x06\x8C\x0A\x01\x00\xA0\x82\x06\x85\x30\x82\x06\x81\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x06\x72\x30\x82\x06\x6E\x30\x82\x01\x07\xA1\x69\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\x30\x64\x30\x62\x30\x3A\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x13\x9D\xA0\x9E\xF4\x32\xAB\x8F\xE2\x89\x56\x67\xFA\xD0\xD4\xE3\x35\x86\x71\xB9\x04\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\x02\x01\x1D\x80\x00\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x34\x32\x38\x5A\xA0\x11\x18\x0F\x32\x30\x31\x31\x30\x39\x32\x37\x30\x39\x35\x39\x32\x38\x5A\xA1\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x16\x89\x7D\x91\x3A\xB5\x25\xA4\x45\xFE\xC9\xFD\xC2\xE5\x08\xA4\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x4E\xAD\x6B\x2B\xF7\xF2\xBF\xA9\x23\x1E\x3A\x0B\x06\xDB\x55\x53\x2B\x64\x54\x11\x32\xBF\x60\xF7\x4F\xE0\x8E\x9B\xA0\xA2\x4C\x79\xC3\x2A\xE0\x43\xF7\x40\x1A\xDC\xB9\xB4\x25\xEF\x48\x01\x97\x8C\xF5\x1E\xDB\xD1\x30\x37\x73\x69\xD6\xA7\x7A\x2D\x8E\xDE\x5C\xAA\xEA\x39\xB9\x52\xAA\x25\x1E\x74\x7D\xF9\x78\x95\x8A\x92\x1F\x98\x21\xF4\x60\x7F\xD3\x28\xEE\x47\x9C\xBF\xE2\x5D\xF6\x3F\x68\x0A\xD6\xFF\x08\xC1\xDC\x95\x1E\x29\xD7\x3E\x85\xD5\x65\xA4\x4B\xC0\xAF\xC3\x78\xAB\x06\x98\x88\x19\x8A\x64\xA6\x83\x91\x87\x13\xDB\x17\xCC\x46\xBD\xAB\x4E\xC7\x16\xD1\xF8\x35\xFD\x27\xC8\xF6\x6B\xEB\x37\xB8\x08\x6F\xE2\x6F\xB4\x7E\xD5\x68\xDB\x7F\x5D\x5E\x36\x38\xF2\x77\x59\x13\xE7\x3E\x4D\x67\x5F\xDB\xA2\xF5\x5D\x7C\xBF\xBD\xB5\x37\x33\x51\x36\x63\xF8\x21\x1E\xFC\x73\x8F\x32\x69\xBB\x97\xA7\xBD\xF1\xB6\xE0\x40\x09\x68\xEA\xD5\x93\xB8\xBB\x39\x8D\xA8\x16\x1B\xBF\x04\x7A\xBC\x18\x43\x01\xE9\x3C\x19\x5C\x4D\x4B\x98\xD8\x23\x37\x39\xA4\xC4\xDD\xED\x9C\xEC\x37\xAB\x66\x44\x9B\xE7\x5B\x5D\x32\xA2\xDB\xA6\x0B\x3B\x8C\xE1\xF5\xDB\xCB\x7D\x58\xA0\x82\x04\x4B\x30\x82\x04\x47\x30\x82\x04\x43\x30\x82\x03\x2B\xA0\x03\x02\x01\x02\x02\x01\x1E\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x30\x1E\x17\x0D\x30\x39\x31\x31\x32\x34\x31\x32\x35\x31\x35\x33\x5A\x17\x0D\x31\x34\x31\x31\x32\x33\x31\x32\x35\x31\x35\x33\x5A\x30\x67\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1F\x30\x1D\x06\x03\x55\x04\x0B\x13\x16\x4F\x43\x53\x50\x20\x53\x69\x67\x6E\x69\x6E\x67\x20\x41\x75\x74\x68\x6F\x72\x69\x74\x79\x31\x1C\x30\x1A\x06\x03\x55\x04\x03\x13\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x82\x01\x22\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01\x05\x00\x03\x82\x01\x0F\x00\x30\x82\x01\x0A\x02\x82\x01\x01\x00\xBC\x05\x3E\x4B\xBE\xC6\xB1\x33\x48\x0E\xC3\xD4\x0C\xEF\x83\x0B\xBD\xBC\x57\x5F\x14\xEF\xF5\x6D\x0B\xFF\xFA\x01\x9C\xFA\x21\x6D\x5C\xAE\x79\x29\x74\xFE\xBD\xAB\x70\x87\x98\x6B\x48\x35\x79\xE3\xE0\xC1\x14\x41\x1F\x0A\xF7\xE7\xA3\xA6\xDA\x6B\xFF\xCD\x74\xE9\x95\x00\x38\xAA\xD6\x3A\x60\xC6\x64\xA1\xE6\x02\x39\x58\x4E\xFD\xF2\x78\x08\x63\xB6\xD7\x7A\x96\x79\x62\x18\x39\xEE\x27\x8D\x3B\xA2\x3D\x48\x88\xDB\x43\xD6\x6A\x77\x20\x6A\x27\x39\x50\xE0\x02\x50\x19\xF2\x7A\xCF\x78\x23\x99\x01\xD4\xE5\xB1\xD1\x31\xE6\x6B\x84\xAF\xD0\x77\x41\x46\x85\xB0\x3B\xE6\x6A\x00\x0F\x3B\x7E\x95\x7F\x59\xA8\x22\xE8\x49\x49\x05\xC8\xCB\x6C\xEE\x47\xA7\x2D\xC9\x74\x5B\xEB\x8C\xD5\x99\xC2\xE2\x70\xDB\xEA\x87\x43\x84\x0E\x4F\x83\x1C\xA6\xEB\x1F\x22\x38\x17\x69\x9B\x72\x12\x95\x48\x71\xB2\x7B\x92\x73\x52\xAB\xE3\x1A\xA5\xD3\xF4\x44\x14\xBA\xC3\x35\xDA\x91\x6C\x7D\xB4\xC2\x00\x07\xD8\x0A\x51\xF1\x0D\x4C\xD9\x7A\xD1\x99\xE6\xA8\x8D\x0A\x80\xA8\x91\xDD\x8A\xA2\x6B\xF6\xDB\xB0\x3E\xC9\x71\xA9\xE0\x39\xC3\xA3\x58\x0D\x87\xD0\xB2\xA7\x9C\xB7\x69\x02\x03\x01\x00\x01\xA3\x82\x01\x1A\x30\x82\x01\x16\x30\x09\x06\x03\x55\x1D\x13\x04\x02\x30\x00\x30\x0B\x06\x03\x55\x1D\x0F\x04\x04\x03\x02\x03\xA8\x30\x1D\x06\x03\x55\x1D\x0E\x04\x16\x04\x14\x34\x91\x6E\x91\x32\xBF\x35\x25\x43\xCC\x28\x74\xEF\x82\xC2\x57\x92\x79\x13\x73\x30\x6D\x06\x03\x55\x1D\x23\x04\x66\x30\x64\x80\x14\x5D\xA7\xDD\x70\x06\x51\x32\x7E\xE7\xB6\x6D\xB3\xB5\xE5\xE0\x60\xEA\x2E\x4D\xEF\xA1\x49\xA4\x47\x30\x45\x31\x0B\x30\x09\x06\x03\x55\x04\x06\x13\x02\x43\x48\x31\x19\x30\x17\x06\x03\x55\x04\x0A\x13\x10\x4C\x69\x6E\x75\x78\x20\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x31\x1B\x30\x19\x06\x03\x55\x04\x03\x13\x12\x73\x74\x72\x6F\x6E\x67\x53\x77\x61\x6E\x20\x52\x6F\x6F\x74\x20\x43\x41\x82\x01\x00\x30\x1E\x06\x03\x55\x1D\x11\x04\x17\x30\x15\x82\x13\x6F\x63\x73\x70\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x30\x13\x06\x03\x55\x1D\x25\x04\x0C\x30\x0A\x06\x08\x2B\x06\x01\x05\x05\x07\x03\x09\x30\x39\x06\x03\x55\x1D\x1F\x04\x32\x30\x30\x30\x2E\xA0\x2C\xA0\x2A\x86\x28\x68\x74\x74\x70\x3A\x2F\x2F\x63\x72\x6C\x2E\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x6F\x72\x67\x2F\x73\x74\x72\x6F\x6E\x67\x73\x77\x61\x6E\x2E\x63\x72\x6C\x30\x0D\x06\x09\x2A\x86\x48\x86\xF7\x0D\x01\x01\x0B\x05\x00\x03\x82\x01\x01\x00\x6D\x78\xD7\x66\x90\xA6\xEB\xDD\xB5\x09\x48\xA4\xDA\x27\xFA\xAC\xB1\xBC\x8F\x8C\xBE\xCC\x8C\x09\xA2\x40\x0D\x6C\x4A\xAE\x72\x22\x1E\xC8\xAF\x6D\xF1\x12\xAF\xD7\x40\x51\x79\xD4\xDD\xB2\x0C\xDB\x97\x84\xB6\x24\xD5\xF5\xA8\xBB\xC0\x4B\xF9\x7F\x71\xF7\xB0\x65\x42\x4A\x7D\xFE\x76\x7E\x05\xD2\x46\xB8\x7D\xB3\x39\x4C\x5C\xB1\xFA\xB9\xEE\x3B\x70\x33\x39\x57\x1A\xB9\x95\x51\x33\x00\x25\x1B\x4C\xAA\xB4\xA7\x55\xAF\x63\x6D\x6F\x88\x17\x6A\x7F\xB0\x97\xDE\x49\x14\x6A\x27\x6A\xB0\x42\x80\xD6\xA6\x9B\xEF\x04\x5E\x11\x7D\xD5\x8E\x54\x20\xA2\x76\xD4\x66\x58\xAC\x9C\x12\xD3\xF5\xCA\x54\x98\xCA\x21\xEC\xC1\x55\xA1\x2F\x68\x0B\x5D\x04\x50\xD2\x5E\x70\x25\xD8\x13\xD9\x44\x51\x0E\x8A\x42\x08\x18\x84\xE6\x61\xCE\x5A\x7D\x7B\x81\x35\x90\xC3\xD4\x9D\x19\xB6\x37\xEE\x8F\x63\x5C\xDA\xD8\xF0\x64\x60\x39\xEB\x9B\x1C\x54\x66\x75\x76\xB5\x0A\x58\xB9\x3F\x91\xE1\x21\x9C\xA0\x50\x15\x97\xB6\x7E\x41\xBC\xD0\xC4\x21\x4C\xF5\xD7\xF0\x13\xF8\x77\xE9\x74\xC4\x8A\x0E\x20\x17\x32\xAE\x38\xC2\xA5\xA8\x62\x85\x17\xB1\xA2\xD3\x22\x9F\x95\xB7\xA3\x4C"
static gnutls_datum_t ocsp_resp1 =
- { (unsigned char *) RESP1, sizeof(RESP1) - 1 };
+ { (unsigned char *)RESP1, sizeof(RESP1) - 1 };
-#define RESP3 "\x30\x82\x01\xd3\x0a\x01\x00\xa0\x82\x01\xcc\x30\x82\x01\xc8\x06\x09\x2b\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x01\xb9\x30\x82\x01\xb5\x30\x81\x9e\xa2\x16\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\x30\x73\x30\x71\x30\x49\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xed\x48\xad\xdd\xcb\x7b\x00\xe2\x0e\x84\x2a\xa9\xb4\x09\xf1\xac\x30\x34\xcf\x96\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x02\x10\x02\x01\x48\x91\x5d\xfd\x5e\xb6\xe0\x02\x90\xa9\x67\xb0\xe4\x64\x80\x00\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\xa0\x11\x18\x0f\x32\x30\x31\x34\x30\x39\x31\x31\x30\x36\x30\x34\x30\x30\x5a\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x6e\x5e\x5e\x81\xff\x3f\x4d\xc7\x53\xc7\x1b\xf3\xd3\x1d\xdc\x9a\xc7\xce\x77\x2c\x67\x56\x13\x98\x91\x02\x01\x76\xdc\x48\xb2\x1f\x9b\x17\xea\xbf\x2c\x0a\xf5\x1d\x98\x90\x3c\x5f\x55\xc2\xff\x4b\x9a\xbc\xa6\x83\x9e\xab\x2b\xeb\x9d\x01\xea\x3b\x5f\xbe\x03\x29\x70\x63\x2a\xa4\x1d\xa8\xab\x69\xb2\x64\xba\x5d\x73\x91\x5c\x92\xf3\x69\xd4\xc9\x39\x9c\x7c\x7d\xa2\x47\x92\xc2\x56\xfe\xa1\x0d\x4a\x69\xff\xda\x48\xc5\x5e\xd8\xab\x39\x88\x6a\x06\xfa\x07\x57\xd6\x48\xb5\xce\xc9\x5f\xa5\x96\xfe\x37\x18\x5e\x7f\x35\x51\xc1\x9e\x79\x5a\x26\xba\x67\x67\x38\x2a\x80\x75\x42\x99\x68\x3e\xec\x2f\x7e\x2d\xa1\xa6\xbe\x9f\x01\x51\x22\x88\x3a\xc9\x9c\xed\x51\xef\x21\x66\x7e\xa9\xd0\x3f\x13\x9c\xbb\xd2\x94\x14\x6f\x4b\xd9\xc4\xf5\x2c\xf5\x7d\x07\x68\xf3\x51\xac\xda\xc2\x09\x66\xa9\x3d\xed\xad\x02\x4d\x9c\x11\x29\x1a\x54\xfb\x1e\x7e\x36\xf4\xbb\x0d\x08\x8c\x6a\x42\x08\x10\x29\x08\x7c\x56\x0b\x18\x47\xff\x87\x11\xfd\xb2\xfb\xc9\x22\x7f\xe3\x1f\x7b\xf9\x98\xaa\x3a\x32\xb6\x2f\x02\xba\xb6\xc1\xdc\xc3\x5d\xb5\x4b\xae\x5d\x29\x6a\x31\xde\xcd"
+# define RESP3 "\x30\x82\x01\xd3\x0a\x01\x00\xa0\x82\x01\xcc\x30\x82\x01\xc8\x06\x09\x2b\x06\x01\x05\x05\x07\x30\x01\x01\x04\x82\x01\xb9\x30\x82\x01\xb5\x30\x81\x9e\xa2\x16\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\x30\x73\x30\x71\x30\x49\x30\x09\x06\x05\x2b\x0e\x03\x02\x1a\x05\x00\x04\x14\xed\x48\xad\xdd\xcb\x7b\x00\xe2\x0e\x84\x2a\xa9\xb4\x09\xf1\xac\x30\x34\xcf\x96\x04\x14\x50\xea\x73\x89\xdb\x29\xfb\x10\x8f\x9e\xe5\x01\x20\xd4\xde\x79\x99\x48\x83\xf7\x02\x10\x02\x01\x48\x91\x5d\xfd\x5e\xb6\xe0\x02\x90\xa9\x67\xb0\xe4\x64\x80\x00\x18\x0f\x32\x30\x31\x34\x30\x39\x30\x34\x30\x35\x34\x39\x30\x30\x5a\xa0\x11\x18\x0f\x32\x30\x31\x34\x30\x39\x31\x31\x30\x36\x30\x34\x30\x30\x5a\x30\x0d\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x01\x05\x05\x00\x03\x82\x01\x01\x00\x6e\x5e\x5e\x81\xff\x3f\x4d\xc7\x53\xc7\x1b\xf3\xd3\x1d\xdc\x9a\xc7\xce\x77\x2c\x67\x56\x13\x98\x91\x02\x01\x76\xdc\x48\xb2\x1f\x9b\x17\xea\xbf\x2c\x0a\xf5\x1d\x98\x90\x3c\x5f\x55\xc2\xff\x4b\x9a\xbc\xa6\x83\x9e\xab\x2b\xeb\x9d\x01\xea\x3b\x5f\xbe\x03\x29\x70\x63\x2a\xa4\x1d\xa8\xab\x69\xb2\x64\xba\x5d\x73\x91\x5c\x92\xf3\x69\xd4\xc9\x39\x9c\x7c\x7d\xa2\x47\x92\xc2\x56\xfe\xa1\x0d\x4a\x69\xff\xda\x48\xc5\x5e\xd8\xab\x39\x88\x6a\x06\xfa\x07\x57\xd6\x48\xb5\xce\xc9\x5f\xa5\x96\xfe\x37\x18\x5e\x7f\x35\x51\xc1\x9e\x79\x5a\x26\xba\x67\x67\x38\x2a\x80\x75\x42\x99\x68\x3e\xec\x2f\x7e\x2d\xa1\xa6\xbe\x9f\x01\x51\x22\x88\x3a\xc9\x9c\xed\x51\xef\x21\x66\x7e\xa9\xd0\x3f\x13\x9c\xbb\xd2\x94\x14\x6f\x4b\xd9\xc4\xf5\x2c\xf5\x7d\x07\x68\xf3\x51\xac\xda\xc2\x09\x66\xa9\x3d\xed\xad\x02\x4d\x9c\x11\x29\x1a\x54\xfb\x1e\x7e\x36\xf4\xbb\x0d\x08\x8c\x6a\x42\x08\x10\x29\x08\x7c\x56\x0b\x18\x47\xff\x87\x11\xfd\xb2\xfb\xc9\x22\x7f\xe3\x1f\x7b\xf9\x98\xaa\x3a\x32\xb6\x2f\x02\xba\xb6\xc1\xdc\xc3\x5d\xb5\x4b\xae\x5d\x29\x6a\x31\xde\xcd"
static gnutls_datum_t ocsp_resp2 =
- { (unsigned char *) RESP3, sizeof(RESP3) - 1 };
-
+ { (unsigned char *)RESP3, sizeof(RESP3) - 1 };
static void check_response(gnutls_session_t session, void *priv)
{
@@ -69,14 +68,15 @@ static void check_response(gnutls_session_t session, void *priv)
assert(ocsp != NULL);
- for (i=0;;i++) {
+ for (i = 0;; i++) {
ret = gnutls_ocsp_status_request_get2(session, i, &resp);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
if (ret < 0) {
if (ocsp->size == 0)
return;
- fail("no response was received: %s\n", gnutls_strerror(ret));
+ fail("no response was received: %s\n",
+ gnutls_strerror(ret));
}
if (ocsp->size == 0) {
@@ -88,7 +88,8 @@ static void check_response(gnutls_session_t session, void *priv)
}
if (memcmp(resp.data, ocsp->data, resp.size) != 0) {
- fail("did not receive the expected response for %d\n", i);
+ fail("did not receive the expected response for %d\n",
+ i);
}
}
@@ -114,7 +115,7 @@ void doit(void)
char certname2[TMPNAME_SIZE];
char certname3[TMPNAME_SIZE];
FILE *fp;
- unsigned index1, index2; /* indexes of certs */
+ unsigned index1, index2; /* indexes of certs */
global_init();
gnutls_global_set_time_function(mytime);
@@ -134,12 +135,17 @@ void doit(void)
fp = fopen(certfile1, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(server_localhost_ca3_cert_chain_pem, 1, strlen(server_localhost_ca3_cert_chain_pem), fp)>0);
- assert(fwrite(server_ca3_key_pem, 1, strlen((char*)server_ca3_key_pem), fp)>0);
+ assert(fwrite
+ (server_localhost_ca3_cert_chain_pem, 1,
+ strlen(server_localhost_ca3_cert_chain_pem), fp) > 0);
+ assert(fwrite
+ (server_ca3_key_pem, 1, strlen((char *)server_ca3_key_pem),
+ fp) > 0);
fclose(fp);
ret = gnutls_certificate_set_x509_key_file2(xcred, certfile1, certfile1,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
@@ -149,54 +155,67 @@ void doit(void)
fp = fopen(certfile2, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp)>0);
- assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp)>0);
+ assert(fwrite(cli_ca3_cert_pem, 1, strlen(cli_ca3_cert_pem), fp) > 0);
+ assert(fwrite(cli_ca3_key_pem, 1, strlen(cli_ca3_key_pem), fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_x509_key_file2(clicred, certfile2, certfile2,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_certificate_set_x509_key_file2(clicred, certfile2, certfile2,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index1 = ret;
-
certfile3 = get_tmpname(certname3);
fp = fopen(certfile3, "wb");
if (fp == NULL)
fail("error in fopen\n");
- assert(fwrite(cert_pem, 1, strlen((char*)cert_pem), fp)>0);
- assert(fwrite(key_pem, 1, strlen((char*)key_pem), fp)>0);
+ assert(fwrite(cert_pem, 1, strlen((char *)cert_pem), fp) > 0);
+ assert(fwrite(key_pem, 1, strlen((char *)key_pem), fp) > 0);
fclose(fp);
- ret = gnutls_certificate_set_x509_key_file2(clicred, certfile3, certfile3,
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ ret =
+ gnutls_certificate_set_x509_key_file2(clicred, certfile3, certfile3,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
if (ret < 0)
fail("set_x509_key_file failed: %s\n", gnutls_strerror(ret));
index2 = ret;
-
- gnutls_certificate_set_flags(clicred, GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK);
+ gnutls_certificate_set_flags(clicred,
+ GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK);
/* set OCSP response1 */
- ret = gnutls_certificate_set_ocsp_status_request_mem(clicred, &ocsp_resp2, index2, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_mem(clicred, &ocsp_resp2,
+ index2,
+ GNUTLS_X509_FMT_DER);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
/* set OCSP response2 */
- ret = gnutls_certificate_set_ocsp_status_request_mem(clicred, &ocsp_resp1, index1, GNUTLS_X509_FMT_DER);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_mem(clicred, &ocsp_resp1,
+ index1,
+ GNUTLS_X509_FMT_DER);
if (ret < 0)
fail("ocsp file set failed: %s\n", gnutls_strerror(ret));
/* make sure that our invalid OCSP responses are not considered in verification
*/
- gnutls_certificate_set_verify_flags(clicred, GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
- if (gnutls_certificate_get_verify_flags(clicred) != GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
+ gnutls_certificate_set_verify_flags(clicred,
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
+ if (gnutls_certificate_get_verify_flags(clicred) !=
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS)
fail("error in gnutls_certificate_set_verify_flags\n");
- ret = gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clicred, &ca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in setting trust cert: %s\n", gnutls_strerror(ret));
}
- ret = gnutls_certificate_set_x509_trust_mem(xcred, &subca3_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(xcred, &subca3_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error in setting trust cert: %s\n", gnutls_strerror(ret));
}
@@ -204,8 +223,7 @@ void doit(void)
_test_cli_serv(xcred, clicred, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3",
"NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3",
"localhost",
- &ocsp_resp1, NULL, check_response,
- 0, 1, 0, 0);
+ &ocsp_resp1, NULL, check_response, 0, 1, 0, 0);
gnutls_certificate_free_credentials(xcred);
gnutls_certificate_free_credentials(clicred);
diff --git a/tests/tls13/post-handshake-with-cert-auto.c b/tests/tls13/post-handshake-with-cert-auto.c
index 83b84fce92..6d98af34e5 100644
--- a/tests/tls13/post-handshake-with-cert-auto.c
+++ b/tests/tls13/post-handshake-with-cert-auto.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,23 +35,23 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
-#include "cert-common.h"
-#include "tls13/ext-parse.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "tls13/ext-parse.h"
+# include "utils.h"
-#define MAX_AUTHS 4
+# define MAX_AUTHS 4
/* This program tests whether the Post Handshake Auth extension is
* present in the client hello, and whether it is missing from server
@@ -69,8 +69,8 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
-#define MAX_APP_DATA 3
+# define MAX_BUF 1024
+# define MAX_APP_DATA 3
static void client(int fd, unsigned send_cert, unsigned max_auths)
{
@@ -87,23 +87,28 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
gnutls_global_set_log_level(7);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
/* Initialize TLS session
*/
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_POST_HANDSHAKE_AUTH|GNUTLS_AUTO_REAUTH)>=0);
+ assert(gnutls_init
+ (&session,
+ GNUTLS_CLIENT | GNUTLS_POST_HANDSHAKE_AUTH | GNUTLS_AUTO_REAUTH)
+ >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
-
if (send_cert) {
- assert(gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert,
- &cli_ca3_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &cli_ca3_cert, &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
}
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -125,7 +130,7 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
gnutls_record_set_timeout(session, 20 * 1000);
- for (i=0;i<max_auths;i++) {
+ for (i = 0; i < max_auths; i++) {
if (debug)
success("waiting for auth nr %d\n", i);
@@ -155,9 +160,9 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
static unsigned client_hello_ok = 0;
static unsigned server_hello_ok = 0;
-#define TLS_EXT_POST_HANDSHAKE 49
+# define TLS_EXT_POST_HANDSHAKE 49
-static void parse_ext(void *priv, gnutls_datum_t *msg)
+static void parse_ext(void *priv, gnutls_datum_t * msg)
{
if (msg->size != 0) {
fail("error in extension length: %d\n", (int)msg->size);
@@ -165,10 +170,12 @@ static void parse_ext(void *priv, gnutls_datum_t *msg)
}
static int hellos_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
if (htype == GNUTLS_HANDSHAKE_SERVER_HELLO && post == GNUTLS_HOOK_POST) {
- if (find_server_extension(msg, TLS_EXT_POST_HANDSHAKE, NULL, NULL)) {
+ if (find_server_extension
+ (msg, TLS_EXT_POST_HANDSHAKE, NULL, NULL)) {
fail("Post handshake extension seen in server hello!\n");
}
server_hello_ok = 1;
@@ -207,15 +214,13 @@ static void server(int fd, int err, int type, unsigned max_auths)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
- gnutls_init(&session, GNUTLS_SERVER|GNUTLS_POST_HANDSHAKE_AUTH);
+ gnutls_init(&session, GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
- GNUTLS_HOOK_BOTH,
- hellos_callback);
+ GNUTLS_HOOK_BOTH, hellos_callback);
/* avoid calling all the priority functions, since the defaults
* are adequate.
@@ -233,11 +238,12 @@ static void server(int fd, int err, int type, unsigned max_auths)
if (ret != 0)
fail("handshake failed: %s\n", gnutls_strerror(ret));
- if (!(gnutls_session_get_flags(session) & GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH)) {
+ if (!
+ (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH)) {
fail("server: session flags did not contain GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH\n");
}
-
if (client_hello_ok == 0) {
fail("server: did not verify the client hello\n");
}
@@ -262,14 +268,18 @@ static void server(int fd, int err, int type, unsigned max_auths)
if (ret == GNUTLS_E_GOT_APPLICATION_DATA) {
int ret2;
do {
- ret2 = gnutls_record_recv(session, buffer, sizeof(buffer));
- } while (ret2 == GNUTLS_E_AGAIN || ret2 == GNUTLS_E_INTERRUPTED);
+ ret2 =
+ gnutls_record_recv(session, buffer,
+ sizeof(buffer));
+ } while (ret2 == GNUTLS_E_AGAIN
+ || ret2 == GNUTLS_E_INTERRUPTED);
if (ret2 < 0)
- fail("error receiving app data: %s\n", gnutls_strerror(ret2));
+ fail("error receiving app data: %s\n",
+ gnutls_strerror(ret2));
/* sender memsets the message with the retry attempt */
- assert((uint8_t)buffer[0] == retries);
+ assert((uint8_t) buffer[0] == retries);
assert(retries < MAX_APP_DATA);
}
@@ -278,13 +288,13 @@ static void server(int fd, int err, int type, unsigned max_auths)
if (err) {
if (ret != err)
- fail("server: expected error %s, got: %s\n", gnutls_strerror(err),
- gnutls_strerror(ret));
+ fail("server: expected error %s, got: %s\n",
+ gnutls_strerror(err), gnutls_strerror(ret));
} else if (ret != 0)
- fail("server: gnutls_reauth did not succeed as expected: %s\n", gnutls_strerror(ret));
-
+ fail("server: gnutls_reauth did not succeed as expected: %s\n",
+ gnutls_strerror(ret));
- for (i=1;i<max_auths;i++) {
+ for (i = 1; i < max_auths; i++) {
/* ask peer for re-authentication */
do {
ret = gnutls_reauth(session, 0);
@@ -292,7 +302,8 @@ static void server(int fd, int err, int type, unsigned max_auths)
if (err) {
if (ret != err)
- fail("server: expected error %s, got: %s\n", gnutls_strerror(err),
+ fail("server: expected error %s, got: %s\n",
+ gnutls_strerror(err),
gnutls_strerror(ret));
} else if (ret != 0)
fail("server: gnutls_reauth did not succeed as expected: %s\n", gnutls_strerror(ret));
@@ -314,7 +325,8 @@ static void server(int fd, int err, int type, unsigned max_auths)
}
static
-void start(const char *name, int err, int type, unsigned max_auths, unsigned send_cert)
+void start(const char *name, int err, int type, unsigned max_auths,
+ unsigned send_cert)
{
int fd[2];
int ret;
@@ -360,7 +372,8 @@ void start(const char *name, int err, int type, unsigned max_auths, unsigned sen
void doit(void)
{
start("multi-reauth", 0, GNUTLS_CERT_REQUIRE, MAX_AUTHS, 1);
- start("reauth-require with no-cert", GNUTLS_E_CERTIFICATE_REQUIRED, GNUTLS_CERT_REQUIRE, 1, 0);
+ start("reauth-require with no-cert", GNUTLS_E_CERTIFICATE_REQUIRED,
+ GNUTLS_CERT_REQUIRE, 1, 0);
start("reauth-request with no-cert", 0, GNUTLS_CERT_REQUEST, 1, 0);
}
#endif /* _WIN32 */
diff --git a/tests/tls13/post-handshake-with-cert-pkcs11.c b/tests/tls13/post-handshake-with-cert-pkcs11.c
index 0b2ea64174..8361008fc8 100644
--- a/tests/tls13/post-handshake-with-cert-pkcs11.c
+++ b/tests/tls13/post-handshake-with-cert-pkcs11.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,22 +35,22 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "tls13/ext-parse.h"
-#include "pkcs11/softhsm.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "tls13/ext-parse.h"
+# include "pkcs11/softhsm.h"
+# include "utils.h"
/* This program tests whether the Post Handshake Auth extension is
* present in the client hello, and whether it is missing from server
@@ -68,14 +68,14 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
-#define P11LIB "libpkcs11mock2.so"
+# define P11LIB "libpkcs11mock2.so"
-#define PIN "1234"
+# define PIN "1234"
-#define CONFIG_NAME "softhsm-post-handshake-with-cert-pkcs11"
-#define CONFIG CONFIG_NAME".config"
+# define CONFIG_NAME "softhsm-post-handshake-with-cert-pkcs11"
+# define CONFIG CONFIG_NAME".config"
static
int pin_func(void *userdata, int attempt, const char *url, const char *label,
@@ -155,7 +155,8 @@ static void client(int fd, int err)
exit(1);
}
- ret = gnutls_x509_privkey_import(key, &cli_ca3_key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_privkey_import(key, &cli_ca3_key, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fprintf(stderr,
"gnutls_x509_privkey_import: %s\n",
@@ -203,26 +204,31 @@ static void client(int fd, int err)
gnutls_x509_crt_deinit(crt);
gnutls_x509_privkey_deinit(key);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
/* Initialize TLS session
*/
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_POST_HANDSHAKE_AUTH|GNUTLS_AUTO_REAUTH)>=0);
+ assert(gnutls_init
+ (&session,
+ GNUTLS_CLIENT | GNUTLS_POST_HANDSHAKE_AUTH | GNUTLS_AUTO_REAUTH)
+ >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:-SIGN-RSA-SHA256", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-SIGN-RSA-SHA256",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
-
assert(gnutls_certificate_set_x509_key_file(x509_cred,
SOFTHSM_URL
";object=cert;object-type=cert",
SOFTHSM_URL
";object=cert;object-type=private;pin-value="
PIN,
- GNUTLS_X509_FMT_DER)>=0);
+ GNUTLS_X509_FMT_DER) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -252,8 +258,8 @@ static void client(int fd, int err)
if (err) {
if (ret != err)
- fail("client: expected error %s, got: %s\n", gnutls_strerror(err),
- gnutls_strerror(ret));
+ fail("client: expected error %s, got: %s\n",
+ gnutls_strerror(err), gnutls_strerror(ret));
} else if (ret < 0)
fail("client: gnutls_record_recv did not succeed as expected: %s\n", gnutls_strerror(ret));
@@ -273,9 +279,9 @@ static void client(int fd, int err)
static unsigned client_hello_ok = 0;
static unsigned server_hello_ok = 0;
-#define TLS_EXT_POST_HANDSHAKE 49
+# define TLS_EXT_POST_HANDSHAKE 49
-static void parse_ext(void *priv, gnutls_datum_t *msg)
+static void parse_ext(void *priv, gnutls_datum_t * msg)
{
if (msg->size != 0) {
fail("error in extension length: %d\n", (int)msg->size);
@@ -283,10 +289,12 @@ static void parse_ext(void *priv, gnutls_datum_t *msg)
}
static int hellos_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
if (htype == GNUTLS_HANDSHAKE_SERVER_HELLO && post == GNUTLS_HOOK_POST) {
- if (find_server_extension(msg, TLS_EXT_POST_HANDSHAKE, NULL, NULL)) {
+ if (find_server_extension
+ (msg, TLS_EXT_POST_HANDSHAKE, NULL, NULL)) {
fail("Post handshake extension seen in server hello!\n");
}
server_hello_ok = 1;
@@ -324,20 +332,19 @@ static void server(int fd, int err, int type)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
- gnutls_init(&session, GNUTLS_SERVER|GNUTLS_POST_HANDSHAKE_AUTH);
+ gnutls_init(&session, GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
- GNUTLS_HOOK_BOTH,
- hellos_callback);
+ GNUTLS_HOOK_BOTH, hellos_callback);
/* avoid calling all the priority functions, since the defaults
* are adequate.
*/
- gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3", NULL);
+ gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3",
+ NULL);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -350,11 +357,12 @@ static void server(int fd, int err, int type)
if (ret != 0)
fail("handshake failed: %s\n", gnutls_strerror(ret));
- if (!(gnutls_session_get_flags(session) & GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH)) {
+ if (!
+ (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH)) {
fail("server: session flags did not contain GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH\n");
}
-
if (client_hello_ok == 0) {
fail("server: did not verify the client hello\n");
}
@@ -375,10 +383,11 @@ static void server(int fd, int err, int type)
if (err) {
if (ret != err)
- fail("server: expected error %s, got: %s\n", gnutls_strerror(err),
- gnutls_strerror(ret));
+ fail("server: expected error %s, got: %s\n",
+ gnutls_strerror(err), gnutls_strerror(ret));
} else if (ret != 0)
- fail("server: gnutls_reauth did not succeed as expected: %s\n", gnutls_strerror(ret));
+ fail("server: gnutls_reauth did not succeed as expected: %s\n",
+ gnutls_strerror(ret));
do {
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
@@ -448,7 +457,7 @@ void doit(void)
exit(77);
/* check if softhsm module is loadable */
- (void) softhsm_lib();
+ (void)softhsm_lib();
/* initialize SoftHSM token that libpkcs11mock2.so internally uses */
bin = softhsm_bin();
@@ -459,7 +468,8 @@ void doit(void)
PIN, bin);
system(buf);
- start("reauth-require", GNUTLS_E_CERTIFICATE_REQUIRED, GNUTLS_E_SUCCESS, GNUTLS_CERT_REQUIRE);
+ start("reauth-require", GNUTLS_E_CERTIFICATE_REQUIRED, GNUTLS_E_SUCCESS,
+ GNUTLS_CERT_REQUIRE);
start("reauth-request", 0, GNUTLS_E_SUCCESS, GNUTLS_CERT_REQUEST);
}
#endif /* _WIN32 */
diff --git a/tests/tls13/post-handshake-with-cert-ticket.c b/tests/tls13/post-handshake-with-cert-ticket.c
index 519d44a5b3..2d4f4c3a52 100644
--- a/tests/tls13/post-handshake-with-cert-ticket.c
+++ b/tests/tls13/post-handshake-with-cert-ticket.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,21 +35,21 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "../lib/handshake-defs.h"
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "../lib/handshake-defs.h"
+# include "cert-common.h"
+# include "utils.h"
/* This program tests whether the certificate seen in Post Handshake Auth
* is found in a resumed session under TLS 1.3.
@@ -67,7 +67,8 @@ static void client_log_func(int level, const char *str)
static unsigned tickets_seen = 0;
static int ticket_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
gnutls_datum *d;
static int counter = 0;
@@ -76,7 +77,7 @@ static int ticket_callback(gnutls_session_t session, unsigned int htype,
assert(htype == GNUTLS_HANDSHAKE_NEW_SESSION_TICKET);
counter++;
- if (counter <= TLS13_TICKETS_TO_SEND) /* ignore the default tickets sent */
+ if (counter <= TLS13_TICKETS_TO_SEND) /* ignore the default tickets sent */
return 0;
d = gnutls_session_get_ptr(session);
@@ -102,7 +103,7 @@ static void client(int fd, unsigned tickets)
gnutls_session_t session;
char buf[64];
unsigned try = 0;
- gnutls_datum_t session_data = {NULL, 0};
+ gnutls_datum_t session_data = { NULL, 0 };
global_init();
tickets_seen = 0;
@@ -112,27 +113,32 @@ static void client(int fd, unsigned tickets)
gnutls_global_set_log_level(7);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
retry:
/* Initialize TLS session
*/
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_POST_HANDSHAKE_AUTH)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_POST_HANDSHAKE_AUTH)
+ >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
-
if (try == 0) {
gnutls_session_set_ptr(session, &session_data);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_NEW_SESSION_TICKET,
GNUTLS_HOOK_BOTH,
ticket_callback);
} else {
- assert(gnutls_session_set_data(session, session_data.data, session_data.size) >= 0);
+ assert(gnutls_session_set_data
+ (session, session_data.data, session_data.size) >= 0);
}
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -150,16 +156,17 @@ static void client(int fd, unsigned tickets)
fail("handshake failed: %s\n", gnutls_strerror(ret));
if (try == 0) {
- assert(gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert,
- &cli_ca3_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &cli_ca3_cert, &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
do {
ret = gnutls_record_recv(session, buf, sizeof(buf));
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret != GNUTLS_E_REAUTH_REQUEST) {
- fail("recv: unexpected error: %s\n", gnutls_strerror(ret));
+ fail("recv: unexpected error: %s\n",
+ gnutls_strerror(ret));
}
if (debug)
@@ -176,13 +183,13 @@ static void client(int fd, unsigned tickets)
do {
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret != 0) {
fail("error in recv: %s\n", gnutls_strerror(ret));
}
- assert(tickets_seen == tickets+1);
+ assert(tickets_seen == tickets + 1);
gnutls_deinit(session);
@@ -199,9 +206,9 @@ static void client(int fd, unsigned tickets)
gnutls_global_deinit();
}
-static void compare(const gnutls_datum_t *der, const void *ipem)
+static void compare(const gnutls_datum_t * der, const void *ipem)
{
- gnutls_datum_t pem = {(void*)ipem, strlen((char*)ipem)};
+ gnutls_datum_t pem = { (void *)ipem, strlen((char *)ipem) };
gnutls_datum_t new_der;
int ret;
@@ -210,7 +217,8 @@ static void compare(const gnutls_datum_t *der, const void *ipem)
fail("error: %s\n", gnutls_strerror(ret));
}
- if (der->size != new_der.size || memcmp(der->data, new_der.data, der->size) != 0) {
+ if (der->size != new_der.size
+ || memcmp(der->data, new_der.data, der->size) != 0) {
fail("error in %d: %s\n", __LINE__, "cert don't match");
exit(1);
}
@@ -231,7 +239,7 @@ static void server(int fd, unsigned tickets)
*/
global_init();
- assert(gnutls_session_ticket_key_generate(&skey)>=0);
+ assert(gnutls_session_ticket_key_generate(&skey) >= 0);
if (debug) {
gnutls_global_set_log_function(server_log_func);
@@ -240,15 +248,16 @@ static void server(int fd, unsigned tickets)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
- assert(gnutls_init(&session, GNUTLS_SERVER|GNUTLS_POST_HANDSHAKE_AUTH)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH)
+ >= 0);
assert(gnutls_session_ticket_enable_server(session, &skey) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL)>=0);
+ assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL)
+ >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -269,7 +278,8 @@ static void server(int fd, unsigned tickets)
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret != 0)
- fail("server: gnutls_reauth did not succeed as expected: %s\n", gnutls_strerror(ret));
+ fail("server: gnutls_reauth did not succeed as expected: %s\n",
+ gnutls_strerror(ret));
if (tickets == 0) {
/* test whether the expected error code would be returned */
@@ -284,16 +294,18 @@ static void server(int fd, unsigned tickets)
do {
ret = gnutls_bye(session, GNUTLS_SHUT_RDWR);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
gnutls_deinit(session);
/* resume session
*/
- assert(gnutls_init(&session, GNUTLS_SERVER|GNUTLS_POST_HANDSHAKE_AUTH)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH)
+ >= 0);
assert(gnutls_session_ticket_enable_server(session, &skey) >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL)>=0);
+ assert(gnutls_priority_set_direct(session, "NORMAL:+VERS-TLS1.3", NULL)
+ >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
diff --git a/tests/tls13/post-handshake-with-cert.c b/tests/tls13/post-handshake-with-cert.c
index 1690ac549e..4256594eb1 100644
--- a/tests/tls13/post-handshake-with-cert.c
+++ b/tests/tls13/post-handshake-with-cert.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,23 +35,23 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
-#include "cert-common.h"
-#include "tls13/ext-parse.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "tls13/ext-parse.h"
+# include "utils.h"
-#define MAX_AUTHS 4
+# define MAX_AUTHS 4
/* This program tests whether the Post Handshake Auth extension is
* present in the client hello, and whether it is missing from server
@@ -69,8 +69,8 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
-#define MAX_APP_DATA 3
+# define MAX_BUF 1024
+# define MAX_APP_DATA 3
static void client(int fd, unsigned send_cert, unsigned max_auths)
{
@@ -87,23 +87,26 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
gnutls_global_set_log_level(7);
}
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
/* Initialize TLS session
*/
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_POST_HANDSHAKE_AUTH)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_POST_HANDSHAKE_AUTH)
+ >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
-
if (send_cert) {
- assert(gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert,
- &cli_ca3_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &cli_ca3_cert, &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
}
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -125,7 +128,7 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
gnutls_record_set_timeout(session, 20 * 1000);
- for (i=0;i<max_auths;i++) {
+ for (i = 0; i < max_auths; i++) {
if (debug)
success("waiting for auth nr %d\n", i);
@@ -134,17 +137,21 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret != GNUTLS_E_REAUTH_REQUEST) {
- fail("recv: unexpected error: %s\n", gnutls_strerror(ret));
+ fail("recv: unexpected error: %s\n",
+ gnutls_strerror(ret));
}
/* send application data to check if server tolerates them */
- if (i==0) {
- for (j=0;j<MAX_APP_DATA;j++) {
+ if (i == 0) {
+ for (j = 0; j < MAX_APP_DATA; j++) {
memset(buf, j, sizeof(buf));
do {
- ret = gnutls_record_send(session, buf, sizeof(buf));
- } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
- assert(ret>=0);
+ ret =
+ gnutls_record_send(session, buf,
+ sizeof(buf));
+ } while (ret == GNUTLS_E_AGAIN
+ || ret == GNUTLS_E_INTERRUPTED);
+ assert(ret >= 0);
}
}
@@ -158,7 +165,6 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
fail("client: gnutls_reauth %d did not succeed as expected: %s\n", i, gnutls_strerror(ret));
}
-
close(fd);
gnutls_deinit(session);
@@ -171,9 +177,9 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
static unsigned client_hello_ok = 0;
static unsigned server_hello_ok = 0;
-#define TLS_EXT_POST_HANDSHAKE 49
+# define TLS_EXT_POST_HANDSHAKE 49
-static void parse_ext(void *priv, gnutls_datum_t *msg)
+static void parse_ext(void *priv, gnutls_datum_t * msg)
{
if (msg->size != 0) {
fail("error in extension length: %d\n", (int)msg->size);
@@ -181,10 +187,12 @@ static void parse_ext(void *priv, gnutls_datum_t *msg)
}
static int hellos_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
if (htype == GNUTLS_HANDSHAKE_SERVER_HELLO && post == GNUTLS_HOOK_POST) {
- if (find_server_extension(msg, TLS_EXT_POST_HANDSHAKE, NULL, NULL)) {
+ if (find_server_extension
+ (msg, TLS_EXT_POST_HANDSHAKE, NULL, NULL)) {
fail("Post handshake extension seen in server hello!\n");
}
server_hello_ok = 1;
@@ -223,15 +231,13 @@ static void server(int fd, int err, int type, unsigned max_auths, int child)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
- gnutls_init(&session, GNUTLS_SERVER|GNUTLS_POST_HANDSHAKE_AUTH);
+ gnutls_init(&session, GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
- GNUTLS_HOOK_BOTH,
- hellos_callback);
+ GNUTLS_HOOK_BOTH, hellos_callback);
/* avoid calling all the priority functions, since the defaults
* are adequate.
@@ -249,11 +255,12 @@ static void server(int fd, int err, int type, unsigned max_auths, int child)
if (ret != 0)
fail("handshake failed: %s\n", gnutls_strerror(ret));
- if (!(gnutls_session_get_flags(session) & GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH)) {
+ if (!
+ (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH)) {
fail("server: session flags did not contain GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH\n");
}
-
if (client_hello_ok == 0) {
fail("server: did not verify the client hello\n");
}
@@ -278,14 +285,18 @@ static void server(int fd, int err, int type, unsigned max_auths, int child)
if (ret == GNUTLS_E_GOT_APPLICATION_DATA) {
int ret2;
do {
- ret2 = gnutls_record_recv(session, buffer, sizeof(buffer));
- } while (ret2 == GNUTLS_E_AGAIN || ret2 == GNUTLS_E_INTERRUPTED);
+ ret2 =
+ gnutls_record_recv(session, buffer,
+ sizeof(buffer));
+ } while (ret2 == GNUTLS_E_AGAIN
+ || ret2 == GNUTLS_E_INTERRUPTED);
if (ret2 < 0)
- fail("error receiving app data: %s\n", gnutls_strerror(ret2));
+ fail("error receiving app data: %s\n",
+ gnutls_strerror(ret2));
/* sender memsets the message with the retry attempt */
- assert((uint8_t)buffer[0] == retries);
+ assert((uint8_t) buffer[0] == retries);
assert(retries < MAX_APP_DATA);
}
@@ -294,13 +305,13 @@ static void server(int fd, int err, int type, unsigned max_auths, int child)
if (err) {
if (ret != err)
- fail("server: expected error %s, got: %s\n", gnutls_strerror(err),
- gnutls_strerror(ret));
+ fail("server: expected error %s, got: %s\n",
+ gnutls_strerror(err), gnutls_strerror(ret));
} else if (ret != 0)
- fail("server: gnutls_reauth did not succeed as expected: %s\n", gnutls_strerror(ret));
-
+ fail("server: gnutls_reauth did not succeed as expected: %s\n",
+ gnutls_strerror(ret));
- for (i=1;i<max_auths;i++) {
+ for (i = 1; i < max_auths; i++) {
/* ask peer for re-authentication */
do {
ret = gnutls_reauth(session, 0);
@@ -308,7 +319,8 @@ static void server(int fd, int err, int type, unsigned max_auths, int child)
if (err) {
if (ret != err)
- fail("server: expected error %s, got: %s\n", gnutls_strerror(err),
+ fail("server: expected error %s, got: %s\n",
+ gnutls_strerror(err),
gnutls_strerror(ret));
} else if (ret != 0)
fail("server: gnutls_reauth did not succeed as expected: %s\n", gnutls_strerror(ret));
@@ -336,7 +348,8 @@ static void ch_handler(int sig)
}
static
-void start(const char *name, int err, int type, unsigned max_auths, unsigned send_cert)
+void start(const char *name, int err, int type, unsigned max_auths,
+ unsigned send_cert)
{
int fd[2];
int ret;
@@ -378,7 +391,8 @@ void start(const char *name, int err, int type, unsigned max_auths, unsigned sen
void doit(void)
{
start("multi-reauth", 0, GNUTLS_CERT_REQUIRE, MAX_AUTHS, 1);
- start("reauth-require with no-cert", GNUTLS_E_CERTIFICATE_REQUIRED, GNUTLS_CERT_REQUIRE, 1, 0);
+ start("reauth-require with no-cert", GNUTLS_E_CERTIFICATE_REQUIRED,
+ GNUTLS_CERT_REQUIRE, 1, 0);
start("reauth-request with no-cert", 0, GNUTLS_CERT_REQUEST, 1, 0);
}
#endif /* _WIN32 */
diff --git a/tests/tls13/post-handshake-with-psk.c b/tests/tls13/post-handshake-with-psk.c
index d53931e446..6981bee7af 100644
--- a/tests/tls13/post-handshake-with-psk.c
+++ b/tests/tls13/post-handshake-with-psk.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,23 +35,23 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
-#include "cert-common.h"
-#include "tls13/ext-parse.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "tls13/ext-parse.h"
+# include "utils.h"
-#define MAX_AUTHS 4
+# define MAX_AUTHS 4
/* This program tests whether the Post Handshake Auth would work
* under PSK authentication. */
@@ -66,14 +66,14 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd, unsigned send_cert, unsigned max_auths)
{
int ret;
gnutls_certificate_credentials_t x509_cred;
gnutls_psk_client_credentials_t pskcred;
- const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t key = { (void *)"DEADBEEF", 8 };
gnutls_session_t session;
char buf[64];
unsigned i;
@@ -85,27 +85,30 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
gnutls_global_set_log_level(7);
}
- assert(gnutls_psk_allocate_client_credentials(&pskcred)>=0);
+ assert(gnutls_psk_allocate_client_credentials(&pskcred) >= 0);
assert(gnutls_psk_set_client_credentials(pskcred, "test", &key,
- GNUTLS_PSK_KEY_HEX)>=0);
+ GNUTLS_PSK_KEY_HEX) >= 0);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
/* Initialize TLS session
*/
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_POST_HANDSHAKE_AUTH)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_POST_HANDSHAKE_AUTH)
+ >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0:+ECDHE-PSK:+PSK", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0:+ECDHE-PSK:+PSK",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
-
if (send_cert) {
- assert(gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert,
- &cli_ca3_key,
- GNUTLS_X509_FMT_PEM)>=0);
+ assert(gnutls_certificate_set_x509_key_mem
+ (x509_cred, &cli_ca3_cert, &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM) >= 0);
}
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -130,7 +133,7 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
gnutls_record_set_timeout(session, 20 * 1000);
- for (i=0;i<max_auths;i++) {
+ for (i = 0; i < max_auths; i++) {
if (debug)
success("waiting for post-handshake auth request\n");
do {
@@ -138,7 +141,8 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret != GNUTLS_E_REAUTH_REQUEST) {
- fail("recv: unexpected error: %s\n", gnutls_strerror(ret));
+ fail("recv: unexpected error: %s\n",
+ gnutls_strerror(ret));
}
if (debug)
@@ -151,7 +155,6 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
fail("client: gnutls_reauth did not succeed as expected: %s\n", gnutls_strerror(ret));
}
-
close(fd);
gnutls_deinit(session);
@@ -165,9 +168,9 @@ static void client(int fd, unsigned send_cert, unsigned max_auths)
static unsigned client_hello_ok = 0;
static unsigned server_hello_ok = 0;
-#define TLS_EXT_POST_HANDSHAKE 49
+# define TLS_EXT_POST_HANDSHAKE 49
-static void parse_ext(void *priv, gnutls_datum_t *msg)
+static void parse_ext(void *priv, gnutls_datum_t * msg)
{
if (msg->size != 0) {
fail("error in extension length: %d\n", (int)msg->size);
@@ -175,10 +178,12 @@ static void parse_ext(void *priv, gnutls_datum_t *msg)
}
static int hellos_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
if (htype == GNUTLS_HANDSHAKE_SERVER_HELLO && post == GNUTLS_HOOK_POST) {
- if (find_server_extension(msg, TLS_EXT_POST_HANDSHAKE, NULL, NULL)) {
+ if (find_server_extension
+ (msg, TLS_EXT_POST_HANDSHAKE, NULL, NULL)) {
fail("Post handshake extension seen in server hello!\n");
}
server_hello_ok = 1;
@@ -198,8 +203,7 @@ static int hellos_callback(gnutls_session_t session, unsigned int htype,
}
static int
-pskfunc(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+pskfunc(gnutls_session_t session, const char *username, gnutls_datum_t * key)
{
if (debug)
printf("psk: username %s\n", username);
@@ -231,23 +235,24 @@ static void server(int fd, int err, int type, unsigned max_auths)
gnutls_global_set_log_level(6);
}
- assert(gnutls_psk_allocate_server_credentials(&server_pskcred)>=0);
- gnutls_psk_set_server_credentials_function(server_pskcred,
- pskfunc);
+ assert(gnutls_psk_allocate_server_credentials(&server_pskcred) >= 0);
+ gnutls_psk_set_server_credentials_function(server_pskcred, pskfunc);
- assert(gnutls_certificate_allocate_credentials(&x509_cred)>=0);
+ assert(gnutls_certificate_allocate_credentials(&x509_cred) >= 0);
assert(gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
&server_key,
GNUTLS_X509_FMT_PEM) >= 0);
- assert(gnutls_init(&session, GNUTLS_SERVER|GNUTLS_POST_HANDSHAKE_AUTH)>=0);
+ assert(gnutls_init(&session, GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH)
+ >= 0);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
- GNUTLS_HOOK_BOTH,
- hellos_callback);
+ GNUTLS_HOOK_BOTH, hellos_callback);
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+ECDHE-PSK", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+PSK:+ECDHE-PSK",
+ NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_PSK, server_pskcred);
@@ -260,11 +265,12 @@ static void server(int fd, int err, int type, unsigned max_auths)
if (ret != 0)
fail("handshake failed: %s\n", gnutls_strerror(ret));
- if (!(gnutls_session_get_flags(session) & GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH)) {
+ if (!
+ (gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH)) {
fail("server: session flags did not contain GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH\n");
}
-
if (client_hello_ok == 0) {
fail("server: did not verify the client hello\n");
}
@@ -279,7 +285,7 @@ static void server(int fd, int err, int type, unsigned max_auths)
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
gnutls_certificate_server_set_request(session, type);
- for (i=0;i<max_auths;i++) {
+ for (i = 0; i < max_auths; i++) {
/* ask peer for re-authentication */
do {
ret = gnutls_reauth(session, 0);
@@ -287,7 +293,8 @@ static void server(int fd, int err, int type, unsigned max_auths)
if (err) {
if (ret != err)
- fail("server: expected error %s, got: %s\n", gnutls_strerror(err),
+ fail("server: expected error %s, got: %s\n",
+ gnutls_strerror(err),
gnutls_strerror(ret));
} else if (ret != 0) {
fail("server: gnutls_reauth did not succeed as expected: %s\n", gnutls_strerror(ret));
@@ -318,7 +325,8 @@ static void ch_handler(int sig)
}
static
-void start(const char *name, int err, int type, unsigned max_auths, unsigned send_cert)
+void start(const char *name, int err, int type, unsigned max_auths,
+ unsigned send_cert)
{
int fd[2];
int ret;
@@ -361,7 +369,8 @@ void start(const char *name, int err, int type, unsigned max_auths, unsigned sen
void doit(void)
{
start("multi-reauth", 0, GNUTLS_CERT_REQUIRE, MAX_AUTHS, 1);
- start("reauth-require with no-cert", GNUTLS_E_CERTIFICATE_REQUIRED, GNUTLS_CERT_REQUIRE, 1, 0);
+ start("reauth-require with no-cert", GNUTLS_E_CERTIFICATE_REQUIRED,
+ GNUTLS_CERT_REQUIRE, 1, 0);
start("reauth-request with no-cert", 0, GNUTLS_CERT_REQUEST, 1, 0);
}
#endif /* _WIN32 */
diff --git a/tests/tls13/post-handshake-without-cert.c b/tests/tls13/post-handshake-without-cert.c
index 4f487ebb36..67507d261f 100644
--- a/tests/tls13/post-handshake-without-cert.c
+++ b/tests/tls13/post-handshake-without-cert.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,21 +35,21 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "tls13/ext-parse.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "tls13/ext-parse.h"
+# include "utils.h"
/* This program tests whether the Post Handshake Auth extension is missing
* from both hellos, when not enabled by client.
@@ -65,7 +65,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd)
{
@@ -92,7 +92,10 @@ static void client(int fd)
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
@@ -112,7 +115,8 @@ static void client(int fd)
/* try if gnutls_reauth() would fail as expected */
ret = gnutls_reauth(session, 0);
if (ret != GNUTLS_E_INVALID_REQUEST)
- fail("server: gnutls_reauth did not fail as expected: %s", gnutls_strerror(ret));
+ fail("server: gnutls_reauth did not fail as expected: %s",
+ gnutls_strerror(ret));
close(fd);
@@ -125,13 +129,15 @@ static void client(int fd)
static unsigned server_hello_ok = 0;
-#define TLS_EXT_POST_HANDSHAKE 49
+# define TLS_EXT_POST_HANDSHAKE 49
static int hellos_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
if (htype == GNUTLS_HANDSHAKE_SERVER_HELLO && post == GNUTLS_HOOK_POST) {
- if (find_server_extension(msg, TLS_EXT_POST_HANDSHAKE, NULL, NULL)) {
+ if (find_server_extension
+ (msg, TLS_EXT_POST_HANDSHAKE, NULL, NULL)) {
fail("Post handshake extension seen in server hello!\n");
}
server_hello_ok = 1;
@@ -167,15 +173,13 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
- GNUTLS_HOOK_BOTH,
- hellos_callback);
+ GNUTLS_HOOK_BOTH, hellos_callback);
/* avoid calling all the priority functions, since the defaults
* are adequate.
@@ -188,12 +192,13 @@ static void server(int fd)
do {
ret = gnutls_handshake(session);
- if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
+ if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
break;
}
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
- if ((gnutls_session_get_flags(session) & GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH)) {
+ if ((gnutls_session_get_flags(session) &
+ GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH)) {
fail("server: session flags did contain GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH\n");
}
@@ -204,7 +209,8 @@ static void server(int fd)
/* try if gnutls_reauth() would fail as expected */
ret = gnutls_reauth(session, 0);
if (ret != GNUTLS_E_INVALID_REQUEST)
- fail("server: gnutls_reauth did not fail as expected: %s", gnutls_strerror(ret));
+ fail("server: gnutls_reauth did not fail as expected: %s",
+ gnutls_strerror(ret));
close(fd);
gnutls_deinit(session);
diff --git a/tests/tls13/prf-early.c b/tests/tls13/prf-early.c
index b97dc2424a..a21bc1c7a4 100644
--- a/tests/tls13/prf-early.c
+++ b/tests/tls13/prf-early.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <assert.h>
@@ -34,25 +34,25 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/crypto.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/crypto.h>
-#include "cert-common.h"
-#include "utils.h"
-#include "virt-time.h"
+# include "cert-common.h"
+# include "utils.h"
+# include "virt-time.h"
static void terminate(void);
-#define SESSIONS 2
-#define MAX_BUF 5*1024
-#define MSG "Hello TLS"
+# define SESSIONS 2
+# define MAX_BUF 5*1024
+# define MSG "Hello TLS"
extern unsigned int _gnutls_global_version;
@@ -74,14 +74,21 @@ static void client_log_func(int level, const char *str)
static pid_t child;
static const
-gnutls_datum_t hrnd = {(void*)"\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32};
+gnutls_datum_t hrnd = { (void *)
+ "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32
+};
+
static const
-gnutls_datum_t hsrnd = {(void*)"\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32};
+gnutls_datum_t hsrnd = { (void *)
+ "\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32
+};
static int gnutls_rnd_works;
-int __attribute__ ((visibility ("protected")))
-gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
+int __attribute__((visibility("protected")))
+ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
{
gnutls_rnd_works = 1;
@@ -96,17 +103,17 @@ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
static gnutls_datum_t session_ticket_key = { NULL, 0 };
-static void dump(const char *name, const uint8_t *data, unsigned data_size)
+static void dump(const char *name, const uint8_t * data, unsigned data_size)
{
unsigned i;
fprintf(stderr, "%s", name);
- for (i=0;i<data_size;i++)
+ for (i = 0; i < data_size; i++)
fprintf(stderr, "\\x%.2x", (unsigned)data[i]);
fprintf(stderr, "\n");
}
-#define TRY(label_size, label, extra_size, extra, size, exp) \
+# define TRY(label_size, label, extra_size, extra, size, exp) \
{ \
ret = gnutls_prf_early(session, label_size, label, extra_size, extra, size, \
(void*)key_material); \
@@ -123,15 +130,16 @@ static void dump(const char *name, const uint8_t *data, unsigned data_size)
} \
}
-#define KEY_EXP_VALUE "\xec\xc2\x4a\x6b\x07\x89\xd9\x19\xd9\x73\x6d\xd0\x00\x73\xc9\x7a\xd7\x92\xef\x56\x91\x61\xb4\xff\x5f\xef\x81\xc1\x98\x68\x4e\xdf\xd7\x7e"
-#define HELLO_VALUE "\x4f\x85\x33\x64\x48\xff\x0d\x8b\xd5\x50\x0f\x97\x91\x5b\x7d\x8d\xc9\x05\x91\x45\x4f\xb9\x4b\x4b\xbc\xbf\x58\x84\x1a\x46\xe3"
-#define CONTEXT_VALUE "\x11\x8d\x85\xa8\x91\xe5\x50\x75\x44\x88\x69\xaf\x95\x9a\xb0\x29\xd4\xae\xcd\x11\xcb\x1d\x29\x7c\xe6\x24\xd4\x7c\x95\xdb\x5c"
-#define NULL_CONTEXT_VALUE "\x56\x99\x41\x73\x5e\x73\x34\x7f\x3d\x69\x9f\xc0\x3b\x8b\x86\x33\xc6\xc3\x97\x46\x61\x62\x3f\x55\xab\x39\x60\xa5\xeb\xfe\x37"
+# define KEY_EXP_VALUE "\xec\xc2\x4a\x6b\x07\x89\xd9\x19\xd9\x73\x6d\xd0\x00\x73\xc9\x7a\xd7\x92\xef\x56\x91\x61\xb4\xff\x5f\xef\x81\xc1\x98\x68\x4e\xdf\xd7\x7e"
+# define HELLO_VALUE "\x4f\x85\x33\x64\x48\xff\x0d\x8b\xd5\x50\x0f\x97\x91\x5b\x7d\x8d\xc9\x05\x91\x45\x4f\xb9\x4b\x4b\xbc\xbf\x58\x84\x1a\x46\xe3"
+# define CONTEXT_VALUE "\x11\x8d\x85\xa8\x91\xe5\x50\x75\x44\x88\x69\xaf\x95\x9a\xb0\x29\xd4\xae\xcd\x11\xcb\x1d\x29\x7c\xe6\x24\xd4\x7c\x95\xdb\x5c"
+# define NULL_CONTEXT_VALUE "\x56\x99\x41\x73\x5e\x73\x34\x7f\x3d\x69\x9f\xc0\x3b\x8b\x86\x33\xc6\xc3\x97\x46\x61\x62\x3f\x55\xab\x39\x60\xa5\xeb\xfe\x37"
static int handshake_callback_called;
static int handshake_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
unsigned char key_material[512];
int ret;
@@ -140,10 +148,10 @@ static int handshake_callback(gnutls_session_t session, unsigned int htype,
handshake_callback_called++;
- TRY(13, "key expansion", 0, NULL, 34, (uint8_t*)KEY_EXP_VALUE);
- TRY(6, "hello", 0, NULL, 31, (uint8_t*)HELLO_VALUE);
- TRY(7, "context", 5, "abcd\xfa", 31, (uint8_t*)CONTEXT_VALUE);
- TRY(12, "null-context", 0, "", 31, (uint8_t*)NULL_CONTEXT_VALUE);
+ TRY(13, "key expansion", 0, NULL, 34, (uint8_t *) KEY_EXP_VALUE);
+ TRY(6, "hello", 0, NULL, 31, (uint8_t *) HELLO_VALUE);
+ TRY(7, "context", 5, "abcd\xfa", 31, (uint8_t *) CONTEXT_VALUE);
+ TRY(12, "null-context", 0, "", 31, (uint8_t *) NULL_CONTEXT_VALUE);
return 0;
}
@@ -155,7 +163,7 @@ static void client(int sds[])
gnutls_certificate_credentials_t clientx509cred;
const char *err;
int t;
- gnutls_datum_t session_data = {NULL, 0};
+ gnutls_datum_t session_data = { NULL, 0 };
char buffer[MAX_BUF + 1];
global_init();
@@ -196,7 +204,8 @@ static void client(int sds[])
if (t > 0) {
gnutls_session_set_data(session, session_data.data,
session_data.size);
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CLIENT_HELLO,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CLIENT_HELLO,
GNUTLS_HOOK_POST,
handshake_callback);
}
@@ -223,21 +232,21 @@ static void client(int sds[])
ret = gnutls_cipher_get(session);
if (ret != GNUTLS_CIPHER_AES_256_GCM) {
- fprintf(stderr, "negotiated unexpected cipher: %s\n", gnutls_cipher_get_name(ret));
+ fprintf(stderr, "negotiated unexpected cipher: %s\n",
+ gnutls_cipher_get_name(ret));
exit(1);
}
ret = gnutls_mac_get(session);
if (ret != GNUTLS_MAC_AEAD) {
- fprintf(stderr, "negotiated unexpected mac: %s\n", gnutls_mac_get_name(ret));
+ fprintf(stderr, "negotiated unexpected mac: %s\n",
+ gnutls_mac_get_name(ret));
exit(1);
}
if (t == 0) {
/* get the session data size */
- ret =
- gnutls_session_get_data2(session,
- &session_data);
+ ret = gnutls_session_get_data2(session, &session_data);
if (ret < 0)
fail("Getting resume data failed\n");
@@ -327,7 +336,8 @@ static void server(int sds[])
* are adequate.
*/
ret = gnutls_priority_set_direct(session,
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA384:-GROUP-ALL:+GROUP-SECP256R1", NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA384:-GROUP-ALL:+GROUP-SECP256R1",
+ NULL);
if (ret < 0) {
fail("server: priority set failed (%s)\n\n",
gnutls_strerror(ret));
@@ -345,10 +355,12 @@ static void server(int sds[])
if (t > 0) {
if (!gnutls_rnd_works) {
- fprintf(stderr, "gnutls_rnd() could not be overridden, skipping prf checks see #584\n");
+ fprintf(stderr,
+ "gnutls_rnd() could not be overridden, skipping prf checks see #584\n");
exit(77);
} else {
- gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_CLIENT_HELLO,
+ gnutls_handshake_set_hook_function(session,
+ GNUTLS_HANDSHAKE_CLIENT_HELLO,
GNUTLS_HOOK_POST,
handshake_callback);
}
diff --git a/tests/tls13/prf.c b/tests/tls13/prf.c
index a83fda5ce6..1cd3f9e5ec 100644
--- a/tests/tls13/prf.c
+++ b/tests/tls13/prf.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,18 +33,18 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/crypto.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/crypto.h>
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
static void terminate(void);
@@ -66,14 +66,21 @@ static void client_log_func(int level, const char *str)
static pid_t child;
static const
-gnutls_datum_t hrnd = {(void*)"\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32};
+gnutls_datum_t hrnd = { (void *)
+ "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32
+};
+
static const
-gnutls_datum_t hsrnd = {(void*)"\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32};
+gnutls_datum_t hsrnd = { (void *)
+ "\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32
+};
static int gnutls_rnd_works;
-int __attribute__ ((visibility ("protected")))
-gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
+int __attribute__((visibility("protected")))
+ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
{
gnutls_rnd_works = 1;
@@ -86,17 +93,17 @@ gnutls_rnd(gnutls_rnd_level_t level, void *data, size_t len)
return 0;
}
-static void dump(const char *name, const uint8_t *data, unsigned data_size)
+static void dump(const char *name, const uint8_t * data, unsigned data_size)
{
unsigned i;
fprintf(stderr, "%s", name);
- for (i=0;i<data_size;i++)
+ for (i = 0; i < data_size; i++)
fprintf(stderr, "\\x%.2x", (unsigned)data[i]);
fprintf(stderr, "\n");
}
-#define TRY(label_size, label, extra_size, extra, size, exp) \
+# define TRY(label_size, label, extra_size, extra, size, exp) \
{ \
ret = gnutls_prf_rfc5705(session, label_size, label, extra_size, extra, size, \
(void*)key_material); \
@@ -113,7 +120,7 @@ static void dump(const char *name, const uint8_t *data, unsigned data_size)
} \
}
-#define TRY_OLD(label_size, label, size, exp) \
+# define TRY_OLD(label_size, label, size, exp) \
{ \
ret = gnutls_prf(session, label_size, label, 0, 0, NULL, size, \
(void*)key_material); \
@@ -130,35 +137,40 @@ static void dump(const char *name, const uint8_t *data, unsigned data_size)
} \
}
-#define KEY_EXP_VALUE "\x28\x70\xa8\x34\xd4\x43\x85\xfd\x55\xe0\x13\x78\x75\xa3\x25\xa7\xfd\x0b\x6b\x68\x5d\x62\x72\x02\xdf\x3d\x79\xca\x55\xab\xea\x24\xf3\x4d"
-#define HELLO_VALUE "\xd8\xcb\x72\x1e\x24\x2d\x79\x11\x41\x38\x05\x2b\x1b\x5d\x60\x12\x30\x0a\xf7\x1e\x23\x90\x4d\x64\xf8\xf5\x23\xea\xbf\xa3\x24"
-#define CONTEXT_VALUE "\xe6\xc0\x57\xbe\xda\x28\x9c\xc7\xf6\x4f\xb6\x18\x92\xce\x10\xf6\xe1\x5e\xab\x10\xc8\xd1\x94\xf8\xac\xc7\x3e\x93\xde\x57\x12"
-#define NULL_CONTEXT_VALUE "\xaf\xea\xd2\x64\xc9\x42\xbd\xe7\xdb\xf0\xd3\x16\x84\x39\xf3\xdb\x5d\x4f\x0e\x5e\x71\x1e\xc0\xd7\x23\xde\x8b\x1e\x80\xa1\xca"
+# define KEY_EXP_VALUE "\x28\x70\xa8\x34\xd4\x43\x85\xfd\x55\xe0\x13\x78\x75\xa3\x25\xa7\xfd\x0b\x6b\x68\x5d\x62\x72\x02\xdf\x3d\x79\xca\x55\xab\xea\x24\xf3\x4d"
+# define HELLO_VALUE "\xd8\xcb\x72\x1e\x24\x2d\x79\x11\x41\x38\x05\x2b\x1b\x5d\x60\x12\x30\x0a\xf7\x1e\x23\x90\x4d\x64\xf8\xf5\x23\xea\xbf\xa3\x24"
+# define CONTEXT_VALUE "\xe6\xc0\x57\xbe\xda\x28\x9c\xc7\xf6\x4f\xb6\x18\x92\xce\x10\xf6\xe1\x5e\xab\x10\xc8\xd1\x94\xf8\xac\xc7\x3e\x93\xde\x57\x12"
+# define NULL_CONTEXT_VALUE "\xaf\xea\xd2\x64\xc9\x42\xbd\xe7\xdb\xf0\xd3\x16\x84\x39\xf3\xdb\x5d\x4f\x0e\x5e\x71\x1e\xc0\xd7\x23\xde\x8b\x1e\x80\xa1\xca"
static void check_prfs(gnutls_session_t session)
{
unsigned char key_material[512];
int ret;
if (!gnutls_rnd_works) {
- fprintf(stderr, "gnutls_rnd() could not be overridden, see #584\n");
+ fprintf(stderr,
+ "gnutls_rnd() could not be overridden, see #584\n");
exit(77);
}
- TRY_OLD(13, "key expansion", 34, (uint8_t*)KEY_EXP_VALUE);
- TRY_OLD(6, "hello", 31, (uint8_t*)HELLO_VALUE);
+ TRY_OLD(13, "key expansion", 34, (uint8_t *) KEY_EXP_VALUE);
+ TRY_OLD(6, "hello", 31, (uint8_t *) HELLO_VALUE);
- TRY(13, "key expansion", 0, NULL, 34, (uint8_t*)KEY_EXP_VALUE);
- TRY(6, "hello", 0, NULL, 31, (uint8_t*)HELLO_VALUE);
- TRY(7, "context", 5, "abcd\xfa", 31, (uint8_t*)CONTEXT_VALUE);
- TRY(12, "null-context", 0, "", 31, (uint8_t*)NULL_CONTEXT_VALUE);
+ TRY(13, "key expansion", 0, NULL, 34, (uint8_t *) KEY_EXP_VALUE);
+ TRY(6, "hello", 0, NULL, 31, (uint8_t *) HELLO_VALUE);
+ TRY(7, "context", 5, "abcd\xfa", 31, (uint8_t *) CONTEXT_VALUE);
+ TRY(12, "null-context", 0, "", 31, (uint8_t *) NULL_CONTEXT_VALUE);
/* Try whether calling gnutls_prf() with non-null context or server-first
* param, will fail */
- ret = gnutls_prf(session, 3, (void*)"xxx", 0, 3, (void*)"yyy", 16, (void*)key_material);
+ ret =
+ gnutls_prf(session, 3, (void *)"xxx", 0, 3, (void *)"yyy", 16,
+ (void *)key_material);
if (ret != GNUTLS_E_INVALID_REQUEST)
fail("gnutls_prf: succeeded under TLS1.3!\n");
- ret = gnutls_prf(session, 3, (void*)"xxx", 1, 0, NULL, 16, (void*)key_material);
+ ret =
+ gnutls_prf(session, 3, (void *)"xxx", 1, 0, NULL, 16,
+ (void *)key_material);
if (ret != GNUTLS_E_INVALID_REQUEST)
fail("gnutls_prf: succeeded under TLS1.3!\n");
}
@@ -186,8 +198,8 @@ static void client(int fd)
/* Use default priorities */
ret = gnutls_priority_set_direct(session,
- "NONE:+VERS-TLS1.3:+AES-256-GCM:+AEAD:+SIGN-RSA-PSS-RSAE-SHA384:+GROUP-SECP256R1",
- &err);
+ "NONE:+VERS-TLS1.3:+AES-256-GCM:+AEAD:+SIGN-RSA-PSS-RSAE-SHA384:+GROUP-SECP256R1",
+ &err);
if (ret < 0) {
fail("client: priority set failed (%s): %s\n",
gnutls_strerror(ret), err);
@@ -195,7 +207,7 @@ static void client(int fd)
}
ret = gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
@@ -224,19 +236,22 @@ static void client(int fd)
ret = gnutls_cipher_get(session);
if (ret != GNUTLS_CIPHER_AES_256_GCM) {
- fprintf(stderr, "negotiated unexpected cipher: %s\n", gnutls_cipher_get_name(ret));
+ fprintf(stderr, "negotiated unexpected cipher: %s\n",
+ gnutls_cipher_get_name(ret));
exit(1);
}
ret = gnutls_mac_get(session);
if (ret != GNUTLS_MAC_AEAD) {
- fprintf(stderr, "negotiated unexpected mac: %s\n", gnutls_mac_get_name(ret));
+ fprintf(stderr, "negotiated unexpected mac: %s\n",
+ gnutls_mac_get_name(ret));
exit(1);
}
ret = gnutls_prf_hash_get(session);
if (ret != GNUTLS_DIG_SHA384) {
- fprintf(stderr, "negotiated unexpected hash: %s\n", gnutls_digest_get_name(ret));
+ fprintf(stderr, "negotiated unexpected hash: %s\n",
+ gnutls_digest_get_name(ret));
exit(1);
}
@@ -287,7 +302,8 @@ static void server(int fd)
* are adequate.
*/
ret = gnutls_priority_set_direct(session,
- "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA384:-GROUP-ALL:+GROUP-SECP256R1", NULL);
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:-SIGN-ALL:+SIGN-RSA-PSS-RSAE-SHA384:-GROUP-ALL:+GROUP-SECP256R1",
+ NULL);
if (ret < 0) {
fail("server: priority set failed (%s)\n\n",
gnutls_strerror(ret));
@@ -297,8 +313,7 @@ static void server(int fd)
gnutls_certificate_set_x509_key_mem(serverx509cred,
&server_cert, &server_key,
GNUTLS_X509_FMT_PEM);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, serverx509cred);
gnutls_handshake_set_random(session, &hsrnd);
gnutls_transport_set_int(session, fd);
diff --git a/tests/tls13/psk-dumbfw.c b/tests/tls13/psk-dumbfw.c
index c3e2e3821e..ec8c23afce 100644
--- a/tests/tls13/psk-dumbfw.c
+++ b/tests/tls13/psk-dumbfw.c
@@ -22,7 +22,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,20 +39,20 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <assert.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <assert.h>
+# include <signal.h>
-#include "tls13/ext-parse.h"
+# include "tls13/ext-parse.h"
-#include "utils.h"
+# include "utils.h"
/* Tests whether the pre-shared key extension will always be last
* even if the dumbfw extension is present.
@@ -65,8 +65,8 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "%s|<%d>| %s", side, level, str);
}
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static void client(int sd, const char *prio)
{
@@ -75,7 +75,7 @@ static void client(int sd, const char *prio)
char buffer[MAX_BUF + 1];
gnutls_psk_client_credentials_t pskcred;
/* Need to enable anonymous KX specifically. */
- const gnutls_datum_t key = { (void *) "DEADBEEF", 8 };
+ const gnutls_datum_t key = { (void *)"DEADBEEF", 8 };
global_init();
gnutls_global_set_log_function(tls_log_func);
@@ -88,10 +88,11 @@ static void client(int sd, const char *prio)
gnutls_psk_set_client_credentials(pskcred, "test", &key,
GNUTLS_PSK_KEY_HEX);
- assert(gnutls_init(&session, GNUTLS_CLIENT|GNUTLS_KEY_SHARE_TOP)>=0);
+ assert(gnutls_init(&session, GNUTLS_CLIENT | GNUTLS_KEY_SHARE_TOP) >=
+ 0);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
- assert(gnutls_credentials_set(session, GNUTLS_CRD_PSK, pskcred)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
+ assert(gnutls_credentials_set(session, GNUTLS_CRD_PSK, pskcred) >= 0);
gnutls_transport_set_int(session, sd);
@@ -108,13 +109,12 @@ static void client(int sd, const char *prio)
success("client: Handshake was completed\n");
}
- assert(gnutls_record_send(session, MSG, strlen(MSG))>=0);
+ assert(gnutls_record_send(session, MSG, strlen(MSG)) >= 0);
ret = gnutls_record_recv(session, buffer, MAX_BUF);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -131,7 +131,7 @@ static void client(int sd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -143,8 +143,7 @@ static void client(int sd, const char *prio)
}
static int
-pskfunc(gnutls_session_t session, const char *username,
- gnutls_datum_t * key)
+pskfunc(gnutls_session_t session, const char *username, gnutls_datum_t * key)
{
if (debug)
printf("psk: username %s\n", username);
@@ -157,8 +156,8 @@ pskfunc(gnutls_session_t session, const char *username,
return 0;
}
-#define EXT_CLIENTHELLO_PADDING 21
-#define EXT_PRE_SHARED_KEY 41
+# define EXT_CLIENTHELLO_PADDING 21
+# define EXT_PRE_SHARED_KEY 41
struct ctx_st {
unsigned long pos;
@@ -166,7 +165,7 @@ struct ctx_st {
};
static
-void check_ext_pos(void *priv, gnutls_datum_t *msg)
+void check_ext_pos(void *priv, gnutls_datum_t * msg)
{
struct ctx_st *ctx = priv;
@@ -174,7 +173,8 @@ void check_ext_pos(void *priv, gnutls_datum_t *msg)
}
static int client_hello_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
unsigned long pos_psk;
unsigned long pos_pad;
@@ -183,12 +183,14 @@ static int client_hello_callback(gnutls_session_t session, unsigned int htype,
struct ctx_st ctx;
ctx.base = msg->data;
- if (find_client_extension(msg, EXT_CLIENTHELLO_PADDING, &ctx, check_ext_pos) == 0)
+ if (find_client_extension
+ (msg, EXT_CLIENTHELLO_PADDING, &ctx, check_ext_pos) == 0)
fail("Could not find dumbfw/client hello padding extension!\n");
pos_pad = ctx.pos;
ctx.base = msg->data;
- if (find_client_extension(msg, EXT_PRE_SHARED_KEY, &ctx, check_ext_pos) == 0)
+ if (find_client_extension
+ (msg, EXT_PRE_SHARED_KEY, &ctx, check_ext_pos) == 0)
fail("Could not find psk extension!\n");
pos_psk = ctx.pos;
@@ -205,7 +207,6 @@ static int client_hello_callback(gnutls_session_t session, unsigned int htype,
return 0;
}
-
static void server(int sd, const char *prio)
{
gnutls_psk_server_credentials_t server_pskcred;
@@ -220,14 +221,12 @@ static void server(int sd, const char *prio)
side = "server";
+ assert(gnutls_psk_allocate_server_credentials(&server_pskcred) >= 0);
+ gnutls_psk_set_server_credentials_function(server_pskcred, pskfunc);
- assert(gnutls_psk_allocate_server_credentials(&server_pskcred)>=0);
- gnutls_psk_set_server_credentials_function(server_pskcred,
- pskfunc);
+ assert(gnutls_init(&session, GNUTLS_SERVER) >= 0);
- assert(gnutls_init(&session, GNUTLS_SERVER)>=0);
-
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_PSK, server_pskcred);
gnutls_handshake_set_hook_function(session, GNUTLS_HANDSHAKE_ANY,
@@ -262,8 +261,7 @@ static void server(int sd, const char *prio)
} else if (ret > 0) {
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
@@ -288,7 +286,6 @@ static void ch_handler(int sig)
return;
}
-
static
void run_test(const char *prio)
{
@@ -331,7 +328,8 @@ void run_test(const char *prio)
void doit(void)
{
- run_test("NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+PSK:%DUMBFW:-GROUP-ALL:+GROUP-FFDHE2048");
+ run_test
+ ("NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+PSK:%DUMBFW:-GROUP-ALL:+GROUP-FFDHE2048");
}
#endif /* _WIN32 */
diff --git a/tests/tls13/psk-ext.c b/tests/tls13/psk-ext.c
index 370a8e1a76..25d0a2c0d2 100644
--- a/tests/tls13/psk-ext.c
+++ b/tests/tls13/psk-ext.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,8 +35,9 @@
/* Tests the PSK-extension decoding part */
-static void decode(const char *test_name, const gnutls_datum_t *raw, const gnutls_datum_t *id,
- const gnutls_datum_t *b, unsigned idx, int res)
+static void decode(const char *test_name, const gnutls_datum_t * raw,
+ const gnutls_datum_t * id, const gnutls_datum_t * b,
+ unsigned idx, int res)
{
int ret;
psk_ext_parser_st p;
@@ -48,29 +49,33 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const gnutl
ret = _gnutls13_psk_ext_parser_init(&p, raw->data, raw->size);
if (ret < 0) {
- if (res == ret) /* expected */
+ if (res == ret) /* expected */
return;
- fail("%s: _gnutls13_psk_ext_parser_init: %d/%s\n", test_name, ret, gnutls_strerror(ret));
+ fail("%s: _gnutls13_psk_ext_parser_init: %d/%s\n", test_name,
+ ret, gnutls_strerror(ret));
exit(1);
}
_gnutls13_psk_ext_iter_init(&iter, &p);
- for (i = 0; ; i++) {
+ for (i = 0;; i++) {
ret = _gnutls13_psk_ext_iter_next_identity(&iter, &psk);
if (ret < 0) {
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
break;
- if (res == ret) /* expected */
+ if (res == ret) /* expected */
return;
}
if (i == idx) {
- if (psk.identity.size == id->size && memcmp(psk.identity.data, id->data, id->size) == 0) {
+ if (psk.identity.size == id->size
+ && memcmp(psk.identity.data, id->data,
+ id->size) == 0) {
if (debug)
success("%s: found id\n", test_name);
found = 1;
break;
} else {
- fail("%s: did not found identity on index %d\n", test_name, idx);
+ fail("%s: did not found identity on index %d\n",
+ test_name, idx);
}
}
}
@@ -82,7 +87,7 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const gnutl
for (j = 0; j <= i; j++) {
ret = _gnutls13_psk_ext_iter_next_binder(&iter, &binder);
if (ret < 0) {
- if (res == ret) /* expected */
+ if (res == ret) /* expected */
return;
fail("%s: could not extract binder: %s\n",
test_name, gnutls_strerror(ret));
@@ -92,7 +97,8 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const gnutl
if (debug)
success("%s: found binder\n", test_name);
- if (binder.size != b->size || memcmp(binder.data, b->data, b->size) != 0) {
+ if (binder.size != b->size
+ || memcmp(binder.data, b->data, b->size) != 0) {
hexprint(binder.data, binder.size);
fail("%s: did not match binder on index %d\n", test_name, idx);
}
@@ -103,7 +109,7 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const gnutl
struct decode_tests_st {
const char *name;
gnutls_datum_t psk;
- unsigned idx; /* the ID index */
+ unsigned idx; /* the ID index */
gnutls_datum_t id;
gnutls_datum_t binder;
int res;
@@ -111,95 +117,104 @@ struct decode_tests_st {
struct decode_tests_st decode_tests[] = {
{
- .name = "single PSK",
- .psk = { (unsigned char*)"\x00\x0a\x00\x04\x6e\x6d\x61\x76\x00\x00\x00\x00\x00\x21\x20\xc4\xda\xe5\x7e\x05\x59\xf7\xae\x9b\xba\x90\xd2\x6e\x12\x68\xf6\xc1\xc7\xb9\x7e\xdc\xed\x9e\x67\x4e\xa5\x91\x2d\x7c\xb4\xf0\xab", 47},
- .id = { (unsigned char*)"nmav", 4 },
- .binder = { (unsigned char*)"\xc4\xda\xe5\x7e\x05\x59\xf7\xae\x9b\xba\x90\xd2\x6e\x12\x68\xf6\xc1\xc7\xb9\x7e\xdc\xed\x9e\x67\x4e\xa5\x91\x2d\x7c\xb4\xf0\xab", 32 },
- .idx = 0,
- .res = 0
- },
+ .name = "single PSK",
+ .psk = {(unsigned char *)
+ "\x00\x0a\x00\x04\x6e\x6d\x61\x76\x00\x00\x00\x00\x00\x21\x20\xc4\xda\xe5\x7e\x05\x59\xf7\xae\x9b\xba\x90\xd2\x6e\x12\x68\xf6\xc1\xc7\xb9\x7e\xdc\xed\x9e\x67\x4e\xa5\x91\x2d\x7c\xb4\xf0\xab",
+ 47},
+ .id = {(unsigned char *)"nmav", 4},
+ .binder = {(unsigned char *)
+ "\xc4\xda\xe5\x7e\x05\x59\xf7\xae\x9b\xba\x90\xd2\x6e\x12\x68\xf6\xc1\xc7\xb9\x7e\xdc\xed\x9e\x67\x4e\xa5\x91\x2d\x7c\xb4\xf0\xab",
+ 32},
+ .idx = 0,
+ .res = 0},
{
- .name = "multiple psks id0",
- .psk = { (unsigned char*)"\x00\x20\x00\x04\x70\x73\x6b\x31\x00\x00\x00\x00"
- "\x00\x06\x70\x73\x6b\x69\x64\x00\x00\x00\x00\x00"
- "\x00\x04\x74\x65\x73\x74\x00\x00\x00\x00\x00\x63"
- "\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x20\x71\x83\x89\x3d\xcc"
- "\x46\xad\x83\x18\x98\x59\x46\x0b\xb2\x51\x24\x53"
- "\x41\xb4\x35\x04\x22\x90\x02\xac\x5e\xc1\xe7\xbc"
- "\xca\x52\x16", 135},
- .id = { (unsigned char*)"psk1", 4 },
- .binder = { (unsigned char*)"\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32},
- .idx = 0,
- .res = 0
- },
+ .name = "multiple psks id0",
+ .psk =
+ {(unsigned char *)"\x00\x20\x00\x04\x70\x73\x6b\x31\x00\x00\x00\x00"
+ "\x00\x06\x70\x73\x6b\x69\x64\x00\x00\x00\x00\x00"
+ "\x00\x04\x74\x65\x73\x74\x00\x00\x00\x00\x00\x63"
+ "\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x20\x71\x83\x89\x3d\xcc"
+ "\x46\xad\x83\x18\x98\x59\x46\x0b\xb2\x51\x24\x53"
+ "\x41\xb4\x35\x04\x22\x90\x02\xac\x5e\xc1\xe7\xbc" "\xca\x52\x16",
+ 135},
+ .id = {(unsigned char *)"psk1", 4},
+ .binder = {(unsigned char *)
+ "\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32},
+ .idx = 0,
+ .res = 0},
{
- .name = "multiple psks id1",
- .psk = { (unsigned char*)"\x00\x20\x00\x04\x70\x73\x6b\x31\x00\x00\x00\x00"
- "\x00\x06\x70\x73\x6b\x69\x64\x00\x00\x00\x00\x00"
- "\x00\x04\x74\x65\x73\x74\x00\x00\x00\x00\x00\x63"
- "\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x20\x71\x83\x89\x3d\xcc"
- "\x46\xad\x83\x18\x98\x59\x46\x0b\xb2\x51\x24\x53"
- "\x41\xb4\x35\x04\x22\x90\x02\xac\x5e\xc1\xe7\xbc"
- "\xca\x52\x16", 135},
- .id = { (unsigned char*)"pskid", 6 },
- .binder = { (unsigned char*)"\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", 32},
- .idx = 1,
- .res = 0
- },
+ .name = "multiple psks id1",
+ .psk =
+ {(unsigned char *)"\x00\x20\x00\x04\x70\x73\x6b\x31\x00\x00\x00\x00"
+ "\x00\x06\x70\x73\x6b\x69\x64\x00\x00\x00\x00\x00"
+ "\x00\x04\x74\x65\x73\x74\x00\x00\x00\x00\x00\x63"
+ "\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x20\x71\x83\x89\x3d\xcc"
+ "\x46\xad\x83\x18\x98\x59\x46\x0b\xb2\x51\x24\x53"
+ "\x41\xb4\x35\x04\x22\x90\x02\xac\x5e\xc1\xe7\xbc" "\xca\x52\x16",
+ 135},
+ .id = {(unsigned char *)"pskid", 6},
+ .binder = {(unsigned char *)
+ "\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",
+ 32},
+ .idx = 1,
+ .res = 0},
{
- .name = "multiple psks id2",
- .psk = { (unsigned char*)"\x00\x20\x00\x04\x70\x73\x6b\x31\x00\x00\x00\x00"
- "\x00\x06\x70\x73\x6b\x69\x64\x00\x00\x00\x00\x00"
- "\x00\x04\x74\x65\x73\x74\x00\x00\x00\x00\x00\x63"
- "\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x20\x71\x83\x89\x3d\xcc"
- "\x46\xad\x83\x18\x98\x59\x46\x0b\xb2\x51\x24\x53"
- "\x41\xb4\x35\x04\x22\x90\x02\xac\x5e\xc1\xe7\xbc"
- "\xca\x52\x16", 135},
- .id = { (unsigned char*)"test", 4 },
- .binder = { (unsigned char*)"\x71\x83\x89\x3d\xcc\x46\xad\x83\x18\x98\x59\x46\x0b\xb2\x51\x24\x53\x41\xb4\x35\x04\x22\x90\x02\xac\x5e\xc1\xe7\xbc\xca\x52\x16", 32},
- .idx = 2,
- .res = 0
- },
+ .name = "multiple psks id2",
+ .psk =
+ {(unsigned char *)"\x00\x20\x00\x04\x70\x73\x6b\x31\x00\x00\x00\x00"
+ "\x00\x06\x70\x73\x6b\x69\x64\x00\x00\x00\x00\x00"
+ "\x00\x04\x74\x65\x73\x74\x00\x00\x00\x00\x00\x63"
+ "\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x20\x71\x83\x89\x3d\xcc"
+ "\x46\xad\x83\x18\x98\x59\x46\x0b\xb2\x51\x24\x53"
+ "\x41\xb4\x35\x04\x22\x90\x02\xac\x5e\xc1\xe7\xbc" "\xca\x52\x16",
+ 135},
+ .id = {(unsigned char *)"test", 4},
+ .binder = {(unsigned char *)
+ "\x71\x83\x89\x3d\xcc\x46\xad\x83\x18\x98\x59\x46\x0b\xb2\x51\x24\x53\x41\xb4\x35\x04\x22\x90\x02\xac\x5e\xc1\xe7\xbc\xca\x52\x16",
+ 32},
+ .idx = 2,
+ .res = 0},
{
- .name = "multiple psks id3",
- .psk = { (unsigned char*)"\x00\x20\x00\x04\x70\x73\x6b\x31\x00\x00\x00\x00"
- "\x00\x06\x70\x73\x6b\x69\x64\x00\x00\x00\x00\x00"
- "\x00\x04\x74\x65\x73\x74\x00\x00\x00\x00\x00\x42"
- "\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
- "\x00\x00\x00\x00\x00\x00", 102},
- .id = { (unsigned char*)"test", 4 },
- .binder = { NULL, 0 },
- .idx = 2,
- .res = GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE
- }
+ .name = "multiple psks id3",
+ .psk =
+ {(unsigned char *)"\x00\x20\x00\x04\x70\x73\x6b\x31\x00\x00\x00\x00"
+ "\x00\x06\x70\x73\x6b\x69\x64\x00\x00\x00\x00\x00"
+ "\x00\x04\x74\x65\x73\x74\x00\x00\x00\x00\x00\x42"
+ "\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x01\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
+ "\x00\x00\x00\x00\x00\x00", 102},
+ .id = {(unsigned char *)"test", 4},
+ .binder = {NULL, 0},
+ .idx = 2,
+ .res = GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE}
};
void doit(void)
{
unsigned i;
- for (i=0;i<sizeof(decode_tests)/sizeof(decode_tests[0]);i++) {
- decode(decode_tests[i].name, &decode_tests[i].psk, &decode_tests[i].id,
- &decode_tests[i].binder, decode_tests[i].idx, decode_tests[i].res);
+ for (i = 0; i < sizeof(decode_tests) / sizeof(decode_tests[0]); i++) {
+ decode(decode_tests[i].name, &decode_tests[i].psk,
+ &decode_tests[i].id, &decode_tests[i].binder,
+ decode_tests[i].idx, decode_tests[i].res);
}
}
-
diff --git a/tests/tls13/psk-ke-modes.c b/tests/tls13/psk-ke-modes.c
index 287856974d..c02c6672d5 100644
--- a/tests/tls13/psk-ke-modes.c
+++ b/tests/tls13/psk-ke-modes.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdbool.h>
@@ -62,10 +62,9 @@ static void tls_log_func(int level, const char *str)
static int
new_session_ticket_callback(gnutls_session_t session, unsigned int htype,
unsigned post, unsigned int incoming,
- const gnutls_datum_t *msg)
+ const gnutls_datum_t * msg)
{
- bool *new_session_ticket_sent =
- gnutls_session_get_ptr(session);
+ bool *new_session_ticket_sent = gnutls_session_get_ptr(session);
*new_session_ticket_sent = true;
return 0;
}
@@ -108,7 +107,7 @@ static void start(const char *name, const char *prio, const char *sprio)
gnutls_priority_set_direct(server, sprio, NULL);
- assert(gnutls_session_ticket_key_generate(&skey)>=0);
+ assert(gnutls_session_ticket_key_generate(&skey) >= 0);
assert(gnutls_session_ticket_enable_server(server, &skey) >= 0);
gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, scred);
diff --git a/tests/tls13/rnd-check-rollback-val.c b/tests/tls13/rnd-check-rollback-val.c
index c0e0da29ee..8958959c48 100644
--- a/tests/tls13/rnd-check-rollback-val.c
+++ b/tests/tls13/rnd-check-rollback-val.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
/* This program checks whether a TLS 1.3 client will detect
* a TLS 1.2 rollback attempt via the server random value.
@@ -64,24 +64,25 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#ifdef TLS12
-# define name "TLS1.2"
-# define RND tls12_rnd
-# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2"
-#elif TLS11
-# define name "TLS1.1"
-# define RND tls11_rnd
-# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.0"
-#else
-# error unknown version to test
-#endif
-
-gnutls_datum_t tls12_rnd = {(void*)"\x44\x4F\x57\x4E\x47\x52\x44\x01",
- 8};
-
-gnutls_datum_t tls11_rnd = {(void*)"\x44\x4F\x57\x4E\x47\x52\x44\x00",
- 8};
-
+# ifdef TLS12
+# define name "TLS1.2"
+# define RND tls12_rnd
+# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2"
+# elif TLS11
+# define name "TLS1.1"
+# define RND tls11_rnd
+# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.0"
+# else
+# error unknown version to test
+# endif
+
+gnutls_datum_t tls12_rnd = { (void *)"\x44\x4F\x57\x4E\x47\x52\x44\x01",
+ 8
+};
+
+gnutls_datum_t tls11_rnd = { (void *)"\x44\x4F\x57\x4E\x47\x52\x44\x00",
+ 8
+};
static void client(int fd)
{
@@ -101,8 +102,7 @@ static void client(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert,
- &cli_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ &cli_ca3_key, GNUTLS_X509_FMT_PEM);
retry:
/* Initialize TLS session
@@ -116,7 +116,8 @@ static void client(int fd)
fail("cannot set TLS priorities\n");
if (try > 0)
- gnutls_session_set_data(session, session_data.data, session_data.size);
+ gnutls_session_set_data(session, session_data.data,
+ session_data.size);
/* put the anonymous credentials to the current session
*/
@@ -143,15 +144,15 @@ static void client(int fd)
if (srandom.size != 32)
fail("unexpected random size\n");
- if (memcmp(&srandom.data[32-8], RND.data, 8) != 0) {
+ if (memcmp(&srandom.data[32 - 8], RND.data, 8) != 0) {
unsigned i;
printf("expected: ");
- for (i=0;i<8;i++)
+ for (i = 0; i < 8; i++)
printf("%.2x", (unsigned)RND.data[i]);
printf("\n");
printf("got: ");
- for (i=0;i<8;i++)
- printf("%.2x", (unsigned)srandom.data[32-8+i]);
+ for (i = 0; i < 8; i++)
+ printf("%.2x", (unsigned)srandom.data[32 - 8 + i]);
printf("\n");
fail("unexpected random data for %s\n", name);
}
@@ -183,7 +184,6 @@ static void client(int fd)
gnutls_global_deinit();
}
-
static void server(int fd)
{
int ret;
@@ -204,8 +204,7 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
assert(gnutls_session_ticket_key_generate(&skey) >= 0);
@@ -214,7 +213,10 @@ static void server(int fd)
gnutls_handshake_set_timeout(session, get_timeout());
- assert(gnutls_priority_set_direct(session, "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0", NULL)>=0);
+ assert(gnutls_priority_set_direct
+ (session,
+ "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0",
+ NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -224,7 +226,7 @@ static void server(int fd)
do {
ret = gnutls_handshake(session);
- if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
+ if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
break;
}
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
@@ -240,7 +242,8 @@ static void server(int fd)
} while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret < 0)
- fail("server: recv did not succeed as expected: %s\n", gnutls_strerror(ret));
+ fail("server: recv did not succeed as expected: %s\n",
+ gnutls_strerror(ret));
gnutls_deinit(session);
diff --git a/tests/tls13/rnd-rollback-detection.c b/tests/tls13/rnd-rollback-detection.c
index 138819d6c1..06f65a9edc 100644
--- a/tests/tls13/rnd-rollback-detection.c
+++ b/tests/tls13/rnd-rollback-detection.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-#include <assert.h>
-
-#include "cert-common.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+# include <assert.h>
+
+# include "cert-common.h"
+# include "utils.h"
/* This program checks whether a TLS 1.3 client will detect
* a TLS 1.2 rollback attempt via the server random value.
@@ -64,8 +64,6 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
-
static void client(int fd)
{
int ret;
@@ -81,8 +79,7 @@ static void client(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert,
- &cli_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ &cli_ca3_key, GNUTLS_X509_FMT_PEM);
/* Initialize TLS session
*/
@@ -90,7 +87,10 @@ static void client(int fd)
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.1:+VERS-TLS1.0",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.2 priorities\n");
@@ -108,7 +108,8 @@ static void client(int fd)
while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
if (ret != GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER) {
- fail("unexpected error during rollback: %s\n", gnutls_strerror(ret));
+ fail("unexpected error during rollback: %s\n",
+ gnutls_strerror(ret));
}
close(fd);
@@ -120,27 +121,29 @@ static void client(int fd)
gnutls_global_deinit();
}
-#ifdef TLS12
-# define RND tls12_rnd
-# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2"
-#elif TLS11
-# define RND tls11_rnd
-# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.0"
-#else
-# error unknown version to test
-#endif
-
-gnutls_datum_t tls12_rnd = {(void*)"\x00\x00\x00\x04\x00\x00\x00\x04"
- "\x00\x00\x00\x04\x00\x00\x00\x04"
- "\x00\x00\x00\x04\x00\x00\x00\x04"
- "\x44\x4F\x57\x4E\x47\x52\x44\x01",
- 32};
-
-gnutls_datum_t tls11_rnd = {(void*)"\x00\x00\x00\x04\x00\x00\x00\x04"
- "\x00\x00\x00\x04\x00\x00\x00\x04"
- "\x00\x00\x00\x04\x00\x00\x00\x04"
- "\x44\x4F\x57\x4E\x47\x52\x44\x00",
- 32};
+# ifdef TLS12
+# define RND tls12_rnd
+# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2"
+# elif TLS11
+# define RND tls11_rnd
+# define PRIO "NORMAL:-VERS-TLS-ALL:+VERS-TLS1.1:+VERS-TLS1.0"
+# else
+# error unknown version to test
+# endif
+
+gnutls_datum_t tls12_rnd = { (void *)"\x00\x00\x00\x04\x00\x00\x00\x04"
+ "\x00\x00\x00\x04\x00\x00\x00\x04"
+ "\x00\x00\x00\x04\x00\x00\x00\x04"
+ "\x44\x4F\x57\x4E\x47\x52\x44\x01",
+ 32
+};
+
+gnutls_datum_t tls11_rnd = { (void *)"\x00\x00\x00\x04\x00\x00\x00\x04"
+ "\x00\x00\x00\x04\x00\x00\x00\x04"
+ "\x00\x00\x00\x04\x00\x00\x00\x04"
+ "\x44\x4F\x57\x4E\x47\x52\x44\x00",
+ 32
+};
static void server(int fd)
{
@@ -159,15 +162,14 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
gnutls_handshake_set_timeout(session, get_timeout());
gnutls_handshake_set_random(session, &RND);
- assert(gnutls_priority_set_direct(session, PRIO, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, PRIO, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -175,12 +177,11 @@ static void server(int fd)
do {
ret = gnutls_handshake(session);
- if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
+ if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
break;
}
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
close(fd);
gnutls_deinit(session);
diff --git a/tests/tls13/supported_versions.c b/tests/tls13/supported_versions.c
index 36737b898e..fbc270202e 100644
--- a/tests/tls13/supported_versions.c
+++ b/tests/tls13/supported_versions.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,19 +35,19 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
-#include "cert-common.h"
-#include "utils.h"
+# include "cert-common.h"
+# include "utils.h"
/* This program tests the ProtocolVersion of Client Hello
* and whether the supported_versions extension is present and
@@ -64,9 +64,7 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
-
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void client(int fd)
{
@@ -89,7 +87,10 @@ static void client(int fd)
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.3:+VERS-TLS1.2:+VERS-TLS1.0",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.3 priorities\n");
@@ -118,10 +119,10 @@ static void client(int fd)
static unsigned client_hello_ok = 0;
static unsigned server_hello_ok = 0;
-#define HANDSHAKE_SESSION_ID_POS 34
-#define TLS_EXT_SUPPORTED_VERSIONS 43
+# define HANDSHAKE_SESSION_ID_POS 34
+# define TLS_EXT_SUPPORTED_VERSIONS 43
-#define SKIP16(pos, total) { \
+# define SKIP16(pos, total) { \
uint16_t _s; \
if (pos+2 > total) fail("error\n"); \
_s = (msg->data[pos] << 8) | msg->data[pos+1]; \
@@ -129,7 +130,7 @@ static unsigned server_hello_ok = 0;
pos += 2+_s; \
}
-#define SKIP8(pos, total) { \
+# define SKIP8(pos, total) { \
uint8_t _s; \
if (pos+1 > total) fail("error\n"); \
_s = msg->data[pos]; \
@@ -138,7 +139,8 @@ static unsigned server_hello_ok = 0;
}
static int client_hello_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
ssize_t pos;
@@ -150,10 +152,10 @@ static int client_hello_callback(gnutls_session_t session, unsigned int htype,
}
success("server hello:\n\t%d.%d\n",
- (int)msg->data[pos], (int)msg->data[pos+1]);
+ (int)msg->data[pos], (int)msg->data[pos + 1]);
- if (msg->data[pos] != 0x03 || msg->data[pos+1] != 0x03) {
- fail("fail expected TLS 1.2 in server hello, got %d.%d\n", (int)msg->data[pos], (int)msg->data[pos+1]);
+ if (msg->data[pos] != 0x03 || msg->data[pos + 1] != 0x03) {
+ fail("fail expected TLS 1.2 in server hello, got %d.%d\n", (int)msg->data[pos], (int)msg->data[pos + 1]);
}
server_hello_ok = 1;
@@ -169,7 +171,8 @@ static int client_hello_callback(gnutls_session_t session, unsigned int htype,
/* we expect the legacy version to be present */
/* ProtocolVersion legacy_version = 0x0303 */
if (msg->data[0] != 0x03 || msg->data[1] != 0x03) {
- fail("ProtocolVersion contains %d.%d\n", (int)msg->data[0], (int)msg->data[1]);
+ fail("ProtocolVersion contains %d.%d\n", (int)msg->data[0],
+ (int)msg->data[1]);
}
pos = HANDSHAKE_SESSION_ID_POS;
@@ -187,23 +190,24 @@ static int client_hello_callback(gnutls_session_t session, unsigned int htype,
while (pos < msg->size) {
uint16_t type;
- if (pos+4 > msg->size)
+ if (pos + 4 > msg->size)
fail("invalid client hello\n");
- type = (msg->data[pos] << 8) | msg->data[pos+1];
- pos+=2;
+ type = (msg->data[pos] << 8) | msg->data[pos + 1];
+ pos += 2;
success("Found extension %d\n", (int)type);
if (type != TLS_EXT_SUPPORTED_VERSIONS) {
SKIP16(pos, msg->size);
- } else { /* found */
- ssize_t size = (msg->data[pos] << 8) | msg->data[pos+1];
- pos+=2;
+ } else { /* found */
+ ssize_t size =
+ (msg->data[pos] << 8) | msg->data[pos + 1];
+ pos += 2;
size = msg->data[pos];
- if (size > msg->size+pos) {
+ if (size > msg->size + pos) {
fail("error in extension length\n");
}
@@ -212,29 +216,41 @@ static int client_hello_callback(gnutls_session_t session, unsigned int htype,
}
if (size != 6) {
- fail("expected three versions only (%d)!\n", (int)size);
+ fail("expected three versions only (%d)!\n",
+ (int)size);
}
pos++;
success("client hello:\n\t%d.%d\n\t%d.%d\n\t%d.%d\n",
- (int)msg->data[pos], (int)msg->data[pos+1],
- (int)msg->data[pos+2], (int)msg->data[pos+3],
- (int)msg->data[pos+4], (int)msg->data[pos+5]);
-
- if (msg->data[pos] != 0x03 || msg->data[pos+1] != 0x04) {
- fail("fail expected TLS 1.3, got %d.%d\n", (int)msg->data[pos], (int)msg->data[pos+1]);
+ (int)msg->data[pos], (int)msg->data[pos + 1],
+ (int)msg->data[pos + 2],
+ (int)msg->data[pos + 3],
+ (int)msg->data[pos + 4],
+ (int)msg->data[pos + 5]);
+
+ if (msg->data[pos] != 0x03
+ || msg->data[pos + 1] != 0x04) {
+ fail("fail expected TLS 1.3, got %d.%d\n",
+ (int)msg->data[pos],
+ (int)msg->data[pos + 1]);
}
- pos+=2;
+ pos += 2;
- if (msg->data[pos] != 0x03 || msg->data[pos+1] != 0x03) {
- fail("fail expected TLS 1.2, got %d.%d\n", (int)msg->data[pos], (int)msg->data[pos+1]);
+ if (msg->data[pos] != 0x03
+ || msg->data[pos + 1] != 0x03) {
+ fail("fail expected TLS 1.2, got %d.%d\n",
+ (int)msg->data[pos],
+ (int)msg->data[pos + 1]);
}
- pos+=2;
+ pos += 2;
- if (msg->data[pos] != 0x03 || msg->data[pos+1] != 0x01) {
- fail("fail expected TLS 1.0, got %d.%d\n", (int)msg->data[pos], (int)msg->data[pos+1]);
+ if (msg->data[pos] != 0x03
+ || msg->data[pos + 1] != 0x01) {
+ fail("fail expected TLS 1.0, got %d.%d\n",
+ (int)msg->data[pos],
+ (int)msg->data[pos + 1]);
}
- pos+=2;
+ pos += 2;
client_hello_ok = 1;
break;
}
@@ -262,8 +278,7 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
@@ -283,12 +298,11 @@ static void server(int fd)
do {
ret = gnutls_handshake(session);
- if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
+ if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
break;
}
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
if (client_hello_ok == 0) {
fail("server: did not verify the client hello\n");
}
diff --git a/tests/tls13/tls12-no-tls13-exts.c b/tests/tls13/tls12-no-tls13-exts.c
index d5d890c1e6..3f0b6be72b 100644
--- a/tests/tls13/tls12-no-tls13-exts.c
+++ b/tests/tls13/tls12-no-tls13-exts.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -35,20 +35,20 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/dtls.h>
-#include <signal.h>
-
-#include "cert-common.h"
-#include "tls13/ext-parse.h"
-#include "utils.h"
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/dtls.h>
+# include <signal.h>
+
+# include "cert-common.h"
+# include "tls13/ext-parse.h"
+# include "utils.h"
/* This program checks whether any TLS 1.3 extensions are
* present when TLS 1.2 is the only protocol supported by
@@ -65,8 +65,6 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-
-
static void client(int fd)
{
int ret;
@@ -82,8 +80,7 @@ static void client(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &cli_ca3_cert,
- &cli_ca3_key,
- GNUTLS_X509_FMT_PEM);
+ &cli_ca3_key, GNUTLS_X509_FMT_PEM);
/* Initialize TLS session
*/
@@ -91,7 +88,10 @@ static void client(int fd)
gnutls_handshake_set_timeout(session, get_timeout());
- ret = gnutls_priority_set_direct(session, "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.0", NULL);
+ ret =
+ gnutls_priority_set_direct(session,
+ "NORMAL:-VERS-ALL:+VERS-TLS1.2:+VERS-TLS1.0",
+ NULL);
if (ret < 0)
fail("cannot set TLS 1.2 priorities\n");
@@ -120,7 +120,8 @@ static void client(int fd)
static unsigned client_hello_ok = 0;
static int client_hello_callback(gnutls_session_t session, unsigned int htype,
- unsigned post, unsigned int incoming, const gnutls_datum_t *msg)
+ unsigned post, unsigned int incoming,
+ const gnutls_datum_t * msg)
{
if (htype != GNUTLS_HANDSHAKE_CLIENT_HELLO || post != GNUTLS_HOOK_PRE)
return 0;
@@ -155,8 +156,7 @@ static void server(int fd)
gnutls_certificate_allocate_credentials(&x509_cred);
gnutls_certificate_set_x509_key_mem(x509_cred, &server_cert,
- &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_key, GNUTLS_X509_FMT_PEM);
gnutls_init(&session, GNUTLS_SERVER);
@@ -176,12 +176,11 @@ static void server(int fd)
do {
ret = gnutls_handshake(session);
- if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
+ if (ret == GNUTLS_E_INTERRUPTED) { /* expected */
break;
}
} while (ret < 0 && gnutls_error_is_fatal(ret) == 0);
-
if (client_hello_ok == 0) {
fail("server: did not verify the client hello\n");
}
diff --git a/tests/tlsext-decoding.c b/tests/tlsext-decoding.c
index 4c71b3e232..d5267e031e 100644
--- a/tests/tlsext-decoding.c
+++ b/tests/tlsext-decoding.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -39,18 +39,18 @@ int main(void)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <signal.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
+# include <unistd.h>
+# include <signal.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
+# include "utils.h"
static void terminate(void);
static unsigned reduce = 0;
@@ -68,11 +68,11 @@ static void client_log_func(int level, const char *str)
fprintf(stderr, "client|<%d>| %s", level, str);
}
-#define RECORD_PAYLOAD_POS 5
-#define HANDSHAKE_ID_POS (38)
+# define RECORD_PAYLOAD_POS 5
+# define HANDSHAKE_ID_POS (38)
static ssize_t odd_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
{
- uint8_t *d = (void*)data;
+ uint8_t *d = (void *)data;
int fd = (long)tr;
uint16_t csize, osize;
int pos;
@@ -81,34 +81,39 @@ static ssize_t odd_push(gnutls_transport_ptr_t tr, const void *data, size_t len)
uint8_t isize;
/* skip session ID (this can be non-empty in TLS 1.3) */
- isize = d[RECORD_PAYLOAD_POS+HANDSHAKE_ID_POS];
+ isize = d[RECORD_PAYLOAD_POS + HANDSHAKE_ID_POS];
isize += 1;
/* skip ciphersuites */
- csize = d[RECORD_PAYLOAD_POS+HANDSHAKE_ID_POS+isize+1] + (d[RECORD_PAYLOAD_POS+HANDSHAKE_ID_POS+isize] << 8);
+ csize =
+ d[RECORD_PAYLOAD_POS + HANDSHAKE_ID_POS + isize + 1] +
+ (d[RECORD_PAYLOAD_POS + HANDSHAKE_ID_POS + isize] << 8);
csize += 2;
/* skip compression methods */
- osize = d[RECORD_PAYLOAD_POS+HANDSHAKE_ID_POS+isize+csize];
+ osize =
+ d[RECORD_PAYLOAD_POS + HANDSHAKE_ID_POS + isize + csize];
osize += 1;
- pos = RECORD_PAYLOAD_POS+HANDSHAKE_ID_POS+isize+csize+osize;
+ pos =
+ RECORD_PAYLOAD_POS + HANDSHAKE_ID_POS + isize + csize +
+ osize;
if (reduce) {
- if (d[pos+1] != 0x00) {
- d[pos+1] = d[pos+1] - 1;
+ if (d[pos + 1] != 0x00) {
+ d[pos + 1] = d[pos + 1] - 1;
} else {
d[pos] = d[pos] - 1;
- d[pos+1] = 0xff;
+ d[pos + 1] = 0xff;
}
} else {
- if (d[pos+1] != 0xff) {
- d[pos+1] = d[pos+1] + 1;
+ if (d[pos + 1] != 0xff) {
+ d[pos + 1] = d[pos + 1] + 1;
} else {
d[pos] = d[pos] + 1;
- d[pos+1] = 0x00;
+ d[pos + 1] = 0x00;
}
-
+
}
}
@@ -166,7 +171,6 @@ static void client(int fd, const char *prio)
gnutls_global_deinit();
}
-
/* These are global */
pid_t child;
@@ -197,8 +201,8 @@ static void server(int fd, const char *prio)
gnutls_certificate_allocate_credentials(&xcred);
ret = gnutls_certificate_set_x509_key_mem(xcred,
- &server_cert, &server_key,
- GNUTLS_X509_FMT_PEM);
+ &server_cert, &server_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
@@ -222,8 +226,7 @@ static void server(int fd, const char *prio)
if (ret != GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH) {
close(fd);
gnutls_deinit(session);
- fail("server: Handshake did not fail with GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH (%s)\n\n",
- gnutls_strerror(ret));
+ fail("server: Handshake did not fail with GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH (%s)\n\n", gnutls_strerror(ret));
terminate();
}
diff --git a/tests/tlsfeature-crt.c b/tests/tlsfeature-crt.c
index e1cd6f3aad..fbc1f0069a 100644
--- a/tests/tlsfeature-crt.c
+++ b/tests/tlsfeature-crt.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <stdio.h>
@@ -30,19 +30,19 @@
#include "utils.h"
static unsigned char server_cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIICBzCCAXCgAwIBAgIMVpjt8TL5Io/frpvkMA0GCSqGSIb3DQEBCwUAMCIxIDAe\n"
- "BgNVBAMTF0dudVRMUyB0ZXN0IGNlcnRpZmljYXRlMB4XDTE2MDExNTEzMDI0MVoX\n"
- "DTMyMDYxOTEzMDI0MVowIjEgMB4GA1UEAxMXR251VExTIHRlc3QgY2VydGlmaWNh\n"
- "dGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANe6XK+jDPAuqSdWqlOOqOt/\n"
- "gXVMa5i+Suq3HvhLw2rE2g0AuOpMEx82FpPecu/GpF6ybrbKCohVdZCW7aZXvAw7\n"
- "dg2XHr3p7H/Tqez7hWSga6BIznd+c5wxE/89yK6lYG7Ztoxamm+2vp9qvafwoDMn\n"
- "9bcdkuWWnHNS1p/WyI6xAgMBAAGjQjBAMBEGCCsGAQUFBwEYBAUwAwIBBTAMBgNV\n"
- "HRMBAf8EAjAAMB0GA1UdDgQWBBRTSzvcXshETAIgvzlIb0z+zSVSEDANBgkqhkiG\n"
- "9w0BAQsFAAOBgQB+VcJuLPL2PMog0HZ8RRbqVvLU5d209ROg3s1oXUBFW8+AV+71\n"
- "CsHg9Xx7vqKVwyKGI9ghds1B44lNPxGH2Sk1v2czjKbzwujo9+kLnDS6i0jyrDdn\n"
- "um4ivpkwmlUFSQVXvENLwe9gTlIgN4+0I9WLcMTCDtHWkcxMRwCm2BMsXw==\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIICBzCCAXCgAwIBAgIMVpjt8TL5Io/frpvkMA0GCSqGSIb3DQEBCwUAMCIxIDAe\n"
+ "BgNVBAMTF0dudVRMUyB0ZXN0IGNlcnRpZmljYXRlMB4XDTE2MDExNTEzMDI0MVoX\n"
+ "DTMyMDYxOTEzMDI0MVowIjEgMB4GA1UEAxMXR251VExTIHRlc3QgY2VydGlmaWNh\n"
+ "dGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANe6XK+jDPAuqSdWqlOOqOt/\n"
+ "gXVMa5i+Suq3HvhLw2rE2g0AuOpMEx82FpPecu/GpF6ybrbKCohVdZCW7aZXvAw7\n"
+ "dg2XHr3p7H/Tqez7hWSga6BIznd+c5wxE/89yK6lYG7Ztoxamm+2vp9qvafwoDMn\n"
+ "9bcdkuWWnHNS1p/WyI6xAgMBAAGjQjBAMBEGCCsGAQUFBwEYBAUwAwIBBTAMBgNV\n"
+ "HRMBAf8EAjAAMB0GA1UdDgQWBBRTSzvcXshETAIgvzlIb0z+zSVSEDANBgkqhkiG\n"
+ "9w0BAQsFAAOBgQB+VcJuLPL2PMog0HZ8RRbqVvLU5d209ROg3s1oXUBFW8+AV+71\n"
+ "CsHg9Xx7vqKVwyKGI9ghds1B44lNPxGH2Sk1v2czjKbzwujo9+kLnDS6i0jyrDdn\n"
+ "um4ivpkwmlUFSQVXvENLwe9gTlIgN4+0I9WLcMTCDtHWkcxMRwCm2BMsXw==\n"
+ "-----END CERTIFICATE-----\n";
const gnutls_datum_t server_cert = { server_cert_pem,
sizeof(server_cert_pem)
@@ -63,8 +63,8 @@ void doit(void)
assert(gnutls_x509_tlsfeatures_init(&feat) >= 0);
assert(gnutls_x509_crt_init(&crt) >= 0);
- assert(gnutls_x509_crt_import(crt, &server_cert, GNUTLS_X509_FMT_PEM) >= 0);
-
+ assert(gnutls_x509_crt_import(crt, &server_cert, GNUTLS_X509_FMT_PEM) >=
+ 0);
assert(gnutls_x509_crt_get_tlsfeatures(crt, feat, 0, &critical) >= 0);
assert(critical == 0);
@@ -72,7 +72,8 @@ void doit(void)
assert(gnutls_x509_tlsfeatures_get(feat, 0, &out) >= 0);
assert(out == 5);
- assert(gnutls_x509_tlsfeatures_get(feat, 1, &out) == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ assert(gnutls_x509_tlsfeatures_get(feat, 1, &out) ==
+ GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
assert(gnutls_x509_tlsfeatures_check_crt(feat, crt) != 0);
@@ -95,4 +96,3 @@ void doit(void)
gnutls_x509_crt_deinit(crt);
gnutls_global_deinit();
}
-
diff --git a/tests/tlsfeature-ext.c b/tests/tlsfeature-ext.c
index 0763b0f2c4..71c0fd022d 100644
--- a/tests/tlsfeature-ext.c
+++ b/tests/tlsfeature-ext.c
@@ -18,7 +18,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <stdio.h>
@@ -29,34 +29,34 @@
#include <assert.h>
#include "utils.h"
-unsigned char der_feat_long[] =
- "\x30\x82\x01\x80\x02\x01\x00\x02\x01\x01\x02\x01\x02\x02\x01\x03"
- "\x02\x01\x04\x02\x01\x05\x02\x01\x06\x02\x01\x07\x02\x01\x08\x02"
- "\x01\x09\x02\x01\x0A\x02\x01\x0B\x02\x01\x0C\x02\x01\x0D\x02\x01"
- "\x0E\x02\x01\x0F\x02\x01\x10\x02\x01\x11\x02\x01\x12\x02\x01\x13"
- "\x02\x01\x14\x02\x01\x15\x02\x01\x16\x02\x01\x17\x02\x01\x18\x02"
- "\x01\x19\x02\x01\x1A\x02\x01\x1B\x02\x01\x1C\x02\x01\x1D\x02\x01"
- "\x1E\x02\x01\x1F\x02\x01\x20\x02\x01\x21\x02\x01\x22\x02\x01\x23"
- "\x02\x01\x24\x02\x01\x25\x02\x01\x26\x02\x01\x27\x02\x01\x28\x02"
- "\x01\x29\x02\x01\x2A\x02\x01\x2B\x02\x01\x2C\x02\x01\x2D\x02\x01"
- "\x2E\x02\x01\x2F\x02\x01\x30\x02\x01\x31\x02\x01\x32\x02\x01\x33"
- "\x02\x01\x34\x02\x01\x35\x02\x01\x36\x02\x01\x37\x02\x01\x38\x02"
- "\x01\x39\x02\x01\x3A\x02\x01\x3B\x02\x01\x3C\x02\x01\x3D\x02\x01"
- "\x3E\x02\x01\x3F\x02\x01\x40\x02\x01\x41\x02\x01\x42\x02\x01\x43"
- "\x02\x01\x44\x02\x01\x45\x02\x01\x46\x02\x01\x47\x02\x01\x48\x02"
- "\x01\x49\x02\x01\x4A\x02\x01\x4B\x02\x01\x4C\x02\x01\x4D\x02\x01"
- "\x4E\x02\x01\x4F\x02\x01\x50\x02\x01\x51\x02\x01\x52\x02\x01\x53"
- "\x02\x01\x54\x02\x01\x55\x02\x01\x56\x02\x01\x57\x02\x01\x58\x02"
- "\x01\x59\x02\x01\x5A\x02\x01\x5B\x02\x01\x5C\x02\x01\x5D\x02\x01"
- "\x5E\x02\x01\x5F\x02\x01\x60\x02\x01\x61\x02\x01\x62\x02\x01\x63"
- "\x02\x01\x64\x02\x01\x65\x02\x01\x66\x02\x01\x67\x02\x01\x68\x02"
- "\x01\x69\x02\x01\x6A\x02\x01\x6B\x02\x01\x6C\x02\x01\x6D\x02\x01"
- "\x6E\x02\x01\x6F\x02\x01\x70\x02\x01\x71\x02\x01\x72\x02\x01\x73"
- "\x02\x01\x74\x02\x01\x75\x02\x01\x76\x02\x01\x77\x02\x01\x78\x02"
- "\x01\x79\x02\x01\x7A\x02\x01\x7B\x02\x01\x7C\x02\x01\x7D\x02\x01"
- "\x7E\x02\x01\x7F";
-
-static gnutls_datum_t der_long = { der_feat_long, sizeof(der_feat_long)-1};
+unsigned char der_feat_long[] =
+ "\x30\x82\x01\x80\x02\x01\x00\x02\x01\x01\x02\x01\x02\x02\x01\x03"
+ "\x02\x01\x04\x02\x01\x05\x02\x01\x06\x02\x01\x07\x02\x01\x08\x02"
+ "\x01\x09\x02\x01\x0A\x02\x01\x0B\x02\x01\x0C\x02\x01\x0D\x02\x01"
+ "\x0E\x02\x01\x0F\x02\x01\x10\x02\x01\x11\x02\x01\x12\x02\x01\x13"
+ "\x02\x01\x14\x02\x01\x15\x02\x01\x16\x02\x01\x17\x02\x01\x18\x02"
+ "\x01\x19\x02\x01\x1A\x02\x01\x1B\x02\x01\x1C\x02\x01\x1D\x02\x01"
+ "\x1E\x02\x01\x1F\x02\x01\x20\x02\x01\x21\x02\x01\x22\x02\x01\x23"
+ "\x02\x01\x24\x02\x01\x25\x02\x01\x26\x02\x01\x27\x02\x01\x28\x02"
+ "\x01\x29\x02\x01\x2A\x02\x01\x2B\x02\x01\x2C\x02\x01\x2D\x02\x01"
+ "\x2E\x02\x01\x2F\x02\x01\x30\x02\x01\x31\x02\x01\x32\x02\x01\x33"
+ "\x02\x01\x34\x02\x01\x35\x02\x01\x36\x02\x01\x37\x02\x01\x38\x02"
+ "\x01\x39\x02\x01\x3A\x02\x01\x3B\x02\x01\x3C\x02\x01\x3D\x02\x01"
+ "\x3E\x02\x01\x3F\x02\x01\x40\x02\x01\x41\x02\x01\x42\x02\x01\x43"
+ "\x02\x01\x44\x02\x01\x45\x02\x01\x46\x02\x01\x47\x02\x01\x48\x02"
+ "\x01\x49\x02\x01\x4A\x02\x01\x4B\x02\x01\x4C\x02\x01\x4D\x02\x01"
+ "\x4E\x02\x01\x4F\x02\x01\x50\x02\x01\x51\x02\x01\x52\x02\x01\x53"
+ "\x02\x01\x54\x02\x01\x55\x02\x01\x56\x02\x01\x57\x02\x01\x58\x02"
+ "\x01\x59\x02\x01\x5A\x02\x01\x5B\x02\x01\x5C\x02\x01\x5D\x02\x01"
+ "\x5E\x02\x01\x5F\x02\x01\x60\x02\x01\x61\x02\x01\x62\x02\x01\x63"
+ "\x02\x01\x64\x02\x01\x65\x02\x01\x66\x02\x01\x67\x02\x01\x68\x02"
+ "\x01\x69\x02\x01\x6A\x02\x01\x6B\x02\x01\x6C\x02\x01\x6D\x02\x01"
+ "\x6E\x02\x01\x6F\x02\x01\x70\x02\x01\x71\x02\x01\x72\x02\x01\x73"
+ "\x02\x01\x74\x02\x01\x75\x02\x01\x76\x02\x01\x77\x02\x01\x78\x02"
+ "\x01\x79\x02\x01\x7A\x02\x01\x7B\x02\x01\x7C\x02\x01\x7D\x02\x01"
+ "\x7E\x02\x01\x7F";
+
+static gnutls_datum_t der_long = { der_feat_long, sizeof(der_feat_long) - 1 };
void doit(void)
{
@@ -119,7 +119,8 @@ void doit(void)
assert(gnutls_x509_ext_import_tlsfeatures(&der, feat, 0) >= 0);
- assert(gnutls_x509_tlsfeatures_get(feat, 0, &out) == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
+ assert(gnutls_x509_tlsfeatures_get(feat, 0, &out) ==
+ GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE);
gnutls_x509_tlsfeatures_deinit(feat);
@@ -128,10 +129,10 @@ void doit(void)
/* check whether we can add a reasonable number of features */
assert(gnutls_x509_tlsfeatures_init(&feat) >= 0);
- for (i=0;i<128;i++) {
+ for (i = 0; i < 128; i++) {
ret = gnutls_x509_tlsfeatures_add(feat, i);
if (ret < 0) {
- assert(i>=32);
+ assert(i >= 32);
assert(ret == GNUTLS_E_INTERNAL_ERROR);
}
}
@@ -141,10 +142,10 @@ void doit(void)
/* check whether we can import a very long list */
assert(gnutls_x509_tlsfeatures_init(&feat) >= 0);
- assert(gnutls_x509_ext_import_tlsfeatures(&der_long, feat, 0) == GNUTLS_E_INTERNAL_ERROR);
+ assert(gnutls_x509_ext_import_tlsfeatures(&der_long, feat, 0) ==
+ GNUTLS_E_INTERNAL_ERROR);
gnutls_x509_tlsfeatures_deinit(feat);
gnutls_global_deinit();
}
-
diff --git a/tests/trust-store.c b/tests/trust-store.c
index b0a889c079..6490bed273 100644
--- a/tests/trust-store.c
+++ b/tests/trust-store.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,7 +40,6 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "<%d>| %s", level, str);
}
-
void doit(void)
{
gnutls_certificate_credentials_t x509_cred;
@@ -58,7 +57,8 @@ void doit(void)
if (ret == GNUTLS_E_UNIMPLEMENTED_FEATURE) {
exit(77);
} else if (ret < 0) {
- fail("error loading system trust store: %s\n", gnutls_strerror(ret));
+ fail("error loading system trust store: %s\n",
+ gnutls_strerror(ret));
} else if (ret == 0) {
fail("no certificates were found in system trust store!\n");
}
diff --git a/tests/trustdb-tofu.c b/tests/trustdb-tofu.c
index 33b5252969..f26d388805 100644
--- a/tests/trustdb-tofu.c
+++ b/tests/trustdb-tofu.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -32,7 +32,6 @@
#include "utils.h"
#include "cert-common.h"
-
/* This will test whether the default public key storage backend
* is operating properly */
@@ -75,8 +74,7 @@ static char client_pem[] =
"jpfc/3X7sLUsMvumcDE01ls/cG5mIatmiyEU9qI3jbgUf82z23ON/acwJf875D3/\n"
"U7jyOsBJ44SEQITbin2yUeJMIm1tievvdNXBDfW95AM507ShzP12sfiJkJfjjdhy\n"
"dc8Siq5JojruiMizAf0pA7in\n" "-----END CERTIFICATE-----\n";
-const gnutls_datum_t client_cert =
- { (void *) client_pem, sizeof(client_pem) };
+const gnutls_datum_t client_cert = { (void *)client_pem, sizeof(client_pem) };
#define TMP_FILE "mini-tdb.tmp"
#define HOSTS_DIR ".gnutls/"
@@ -93,7 +91,7 @@ void doit(void)
char path[512];
/* the sha1 hash of the server's pubkey */
- hash.data = (void *) SHA1_HASH;
+ hash.data = (void *)SHA1_HASH;
hash.size = sizeof(SHA1_HASH) - 1;
/* General init. */
@@ -118,7 +116,6 @@ void doit(void)
fail("base64 decoding\n");
goto fail;
}
-
// Raw public keys
ret =
gnutls_pem_base64_decode_alloc("PUBLIC KEY", &rawpk_public_key1,
@@ -141,7 +138,8 @@ void doit(void)
/* verify whether the stored hash verification succeeds */
ret = gnutls_store_commitment(TMP_FILE, NULL, "localhost", "https",
- GNUTLS_DIG_SHA1, &hash, 0, GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN);
+ GNUTLS_DIG_SHA1, &hash, 0,
+ GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN);
if (ret != 0) {
fail("commitment storage: %s\n", gnutls_strerror(ret));
goto fail;
@@ -152,13 +150,11 @@ void doit(void)
ret =
gnutls_verify_stored_pubkey(TMP_FILE, NULL, "localhost",
- "https", GNUTLS_CRT_X509,
- &der_cert, 0);
+ "https", GNUTLS_CRT_X509, &der_cert, 0);
remove(TMP_FILE);
if (ret != 0) {
- fail("commitment verification: %s\n",
- gnutls_strerror(ret));
+ fail("commitment verification: %s\n", gnutls_strerror(ret));
goto fail;
}
@@ -171,7 +167,8 @@ void doit(void)
/* verify whether the stored hash verification succeeds */
ret = gnutls_store_commitment(NULL, NULL, "localhost", "https",
- GNUTLS_DIG_SHA1, &hash, 0, GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN);
+ GNUTLS_DIG_SHA1, &hash, 0,
+ GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN);
if (ret != 0) {
fail("commitment storage: %s\n", gnutls_strerror(ret));
goto fail;
@@ -182,12 +179,10 @@ void doit(void)
ret =
gnutls_verify_stored_pubkey(NULL, NULL, "localhost",
- "https", GNUTLS_CRT_X509,
- &der_cert, 0);
+ "https", GNUTLS_CRT_X509, &der_cert, 0);
if (ret != 0) {
- fail("commitment verification: %s\n",
- gnutls_strerror(ret));
+ fail("commitment verification: %s\n", gnutls_strerror(ret));
goto fail;
}
@@ -209,10 +204,10 @@ void doit(void)
ret =
gnutls_verify_stored_pubkey(TMP_FILE, NULL, "localhost",
- "https", GNUTLS_CRT_X509,
- &der_cert, 0);
+ "https", GNUTLS_CRT_X509, &der_cert, 0);
if (ret != 0) {
- fail("pubkey verification (from cert): %s\n", gnutls_strerror(ret));
+ fail("pubkey verification (from cert): %s\n",
+ gnutls_strerror(ret));
goto fail;
}
@@ -225,8 +220,7 @@ void doit(void)
goto fail;
}
if (ret != GNUTLS_E_CERTIFICATE_KEY_MISMATCH) {
- fail("Wrong error code returned: %s!\n",
- gnutls_strerror(ret));
+ fail("Wrong error code returned: %s!\n", gnutls_strerror(ret));
goto fail;
}
@@ -249,7 +243,8 @@ void doit(void)
"https", GNUTLS_CRT_RAWPK,
&der_rawpk, 0);
if (ret != 0) {
- fail("pubkey verification (from raw pk): %s\n", gnutls_strerror(ret));
+ fail("pubkey verification (from raw pk): %s\n",
+ gnutls_strerror(ret));
goto fail;
}
@@ -262,8 +257,7 @@ void doit(void)
goto fail;
}
if (ret != GNUTLS_E_CERTIFICATE_KEY_MISMATCH) {
- fail("Wrong error code returned: %s!\n",
- gnutls_strerror(ret));
+ fail("Wrong error code returned: %s!\n", gnutls_strerror(ret));
goto fail;
}
@@ -281,7 +275,7 @@ void doit(void)
gnutls_free(der_rawpk2.data);
return;
- fail:
+ fail:
remove(HOSTS_FILE);
remove(TMP_FILE);
rmdir(HOSTS_DIR);
diff --git a/tests/urls.c b/tests/urls.c
index a2a5cfd450..821f08f868 100644
--- a/tests/urls.c
+++ b/tests/urls.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
diff --git a/tests/utils-adv.c b/tests/utils-adv.c
index 25c50b49dc..4f915a919a 100644
--- a/tests/utils-adv.c
+++ b/tests/utils-adv.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -43,14 +43,12 @@ const char *side = NULL;
/* if @host is NULL certificate check is skipped */
int
_test_cli_serv(gnutls_certificate_credentials_t server_cred,
- gnutls_certificate_credentials_t client_cred,
- const char *serv_prio, const char *cli_prio,
- const char *host,
- void *priv, callback_func *client_cb, callback_func *server_cb,
- unsigned expect_verification_failure,
- unsigned require_cert,
- int serv_err,
- int cli_err)
+ gnutls_certificate_credentials_t client_cred,
+ const char *serv_prio, const char *cli_prio,
+ const char *host,
+ void *priv, callback_func * client_cb, callback_func * server_cb,
+ unsigned expect_verification_failure,
+ unsigned require_cert, int serv_err, int cli_err)
{
int ret;
/* Server stuff. */
@@ -65,8 +63,7 @@ _test_cli_serv(gnutls_certificate_credentials_t server_cred,
/* Init server */
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- server_cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, server_cred);
ret = gnutls_priority_set_direct(server, serv_prio, NULL);
if (ret < 0) {
fail("error in server priority: %s\n", serv_prio);
@@ -76,7 +73,8 @@ _test_cli_serv(gnutls_certificate_credentials_t server_cred,
gnutls_transport_set_ptr(server, server);
if (require_cert)
- gnutls_certificate_server_set_request(server, GNUTLS_CERT_REQUIRE);
+ gnutls_certificate_server_set_request(server,
+ GNUTLS_CERT_REQUIRE);
ret = gnutls_init(&client, GNUTLS_CLIENT);
if (ret < 0)
@@ -84,15 +82,19 @@ _test_cli_serv(gnutls_certificate_credentials_t server_cred,
if (host) {
if (strncmp(host, "raw:", 4) == 0) {
- assert(_gnutls_server_name_set_raw(client, GNUTLS_NAME_DNS, host+4, strlen(host+4))>=0);
+ assert(_gnutls_server_name_set_raw
+ (client, GNUTLS_NAME_DNS, host + 4,
+ strlen(host + 4)) >= 0);
host += 4;
} else {
- assert(gnutls_server_name_set(client, GNUTLS_NAME_DNS, host, strlen(host))>=0);
+ assert(gnutls_server_name_set
+ (client, GNUTLS_NAME_DNS, host,
+ strlen(host)) >= 0);
}
}
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- client_cred);
+ client_cred);
if (ret < 0)
exit(1);
@@ -119,14 +121,15 @@ _test_cli_serv(gnutls_certificate_credentials_t server_cred,
memset(data, 0, sizeof(data));
data[0].type = GNUTLS_DT_DNS_HOSTNAME;
- data[0].data = (void*)host;
+ data[0].data = (void *)host;
data[1].type = GNUTLS_DT_KEY_PURPOSE_OID;
- data[1].data = (void*)GNUTLS_KP_TLS_WWW_SERVER;
+ data[1].data = (void *)GNUTLS_KP_TLS_WWW_SERVER;
ret = gnutls_certificate_verify_peers(client, data, 2, &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -139,7 +142,8 @@ _test_cli_serv(gnutls_certificate_credentials_t server_cred,
if (status != 0) {
gnutls_datum_t t;
- assert(gnutls_certificate_verification_status_print(status, GNUTLS_CRT_X509, &t, 0)>=0);
+ assert(gnutls_certificate_verification_status_print
+ (status, GNUTLS_CRT_X509, &t, 0) >= 0);
fail("could not verify certificate for '%s': %.4x: %s\n", host, status, t.data);
gnutls_free(t.data);
exit(1);
@@ -148,14 +152,17 @@ _test_cli_serv(gnutls_certificate_credentials_t server_cred,
/* check gnutls_certificate_verify_peers3 */
ret = gnutls_certificate_verify_peers3(client, host, &status);
if (ret < 0) {
- fail("could not verify certificate: %s\n", gnutls_strerror(ret));
+ fail("could not verify certificate: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
if (status != 0) {
gnutls_datum_t t;
- assert(gnutls_certificate_verification_status_print(status, GNUTLS_CRT_X509, &t, 0)>=0);
- fail("could not verify certificate3: %.4x: %s\n", status, t.data);
+ assert(gnutls_certificate_verification_status_print
+ (status, GNUTLS_CRT_X509, &t, 0) >= 0);
+ fail("could not verify certificate3: %.4x: %s\n",
+ status, t.data);
gnutls_free(t.data);
exit(1);
}
@@ -184,15 +191,16 @@ void
test_cli_serv(gnutls_certificate_credentials_t server_cred,
gnutls_certificate_credentials_t client_cred,
const char *prio, const char *host,
- void *priv, callback_func *client_cb, callback_func *server_cb)
+ void *priv, callback_func * client_cb, callback_func * server_cb)
{
- _test_cli_serv(server_cred, client_cred, prio, prio, host, priv, client_cb, server_cb, 0, 0, 0, 0);
+ _test_cli_serv(server_cred, client_cred, prio, prio, host, priv,
+ client_cb, server_cb, 0, 0, 0, 0);
}
int
test_cli_serv_anon(gnutls_anon_server_credentials_t server_cred,
- gnutls_anon_client_credentials_t client_cred,
- const char *prio)
+ gnutls_anon_client_credentials_t client_cred,
+ const char *prio)
{
int ret;
/* Server stuff. */
@@ -207,8 +215,7 @@ test_cli_serv_anon(gnutls_anon_server_credentials_t server_cred,
/* Init server */
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_ANON,
- server_cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_ANON, server_cred);
gnutls_priority_set_direct(server, prio, NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -218,8 +225,7 @@ test_cli_serv_anon(gnutls_anon_server_credentials_t server_cred,
if (ret < 0)
exit(1);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_ANON,
- client_cred);
+ ret = gnutls_credentials_set(client, GNUTLS_CRD_ANON, client_cred);
if (ret < 0)
exit(1);
@@ -243,8 +249,7 @@ test_cli_serv_anon(gnutls_anon_server_credentials_t server_cred,
int
test_cli_serv_psk(gnutls_psk_server_credentials_t server_cred,
- gnutls_psk_client_credentials_t client_cred,
- const char *prio)
+ gnutls_psk_client_credentials_t client_cred, const char *prio)
{
int ret;
/* Server stuff. */
@@ -259,8 +264,7 @@ test_cli_serv_psk(gnutls_psk_server_credentials_t server_cred,
/* Init server */
gnutls_init(&server, GNUTLS_SERVER);
- gnutls_credentials_set(server, GNUTLS_CRD_PSK,
- server_cred);
+ gnutls_credentials_set(server, GNUTLS_CRD_PSK, server_cred);
gnutls_priority_set_direct(server, prio, NULL);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
@@ -270,8 +274,7 @@ test_cli_serv_psk(gnutls_psk_server_credentials_t server_cred,
if (ret < 0)
exit(1);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_PSK,
- client_cred);
+ ret = gnutls_credentials_set(client, GNUTLS_CRD_PSK, client_cred);
if (ret < 0)
exit(1);
@@ -295,28 +298,32 @@ test_cli_serv_psk(gnutls_psk_server_credentials_t server_cred,
void
test_cli_serv_cert(gnutls_certificate_credentials_t server_cred,
- gnutls_certificate_credentials_t client_cred,
- const char *serv_prio, const char *cli_prio, const char *host)
+ gnutls_certificate_credentials_t client_cred,
+ const char *serv_prio, const char *cli_prio,
+ const char *host)
{
- _test_cli_serv(server_cred, client_cred, serv_prio, cli_prio, host, NULL, NULL, NULL, 0, 1, 0, 0);
+ _test_cli_serv(server_cred, client_cred, serv_prio, cli_prio, host,
+ NULL, NULL, NULL, 0, 1, 0, 0);
}
void
test_cli_serv_expect(gnutls_certificate_credentials_t server_cred,
- gnutls_certificate_credentials_t client_cred,
- const char *serv_prio, const char *cli_prio, const char *host,
- int serv_err, int cli_err)
+ gnutls_certificate_credentials_t client_cred,
+ const char *serv_prio, const char *cli_prio,
+ const char *host, int serv_err, int cli_err)
{
- _test_cli_serv(server_cred, client_cred, serv_prio, cli_prio, host, NULL, NULL, NULL, 0, 0, serv_err, cli_err);
+ _test_cli_serv(server_cred, client_cred, serv_prio, cli_prio, host,
+ NULL, NULL, NULL, 0, 0, serv_err, cli_err);
}
/* An expected to fail verification run. Returns verification status */
unsigned
test_cli_serv_vf(gnutls_certificate_credentials_t server_cred,
- gnutls_certificate_credentials_t client_cred,
- const char *prio, const char *host)
+ gnutls_certificate_credentials_t client_cred,
+ const char *prio, const char *host)
{
- return _test_cli_serv(server_cred, client_cred, prio, prio, host, NULL, NULL, NULL, 1, 0, 0, 0);
+ return _test_cli_serv(server_cred, client_cred, prio, prio, host, NULL,
+ NULL, NULL, 1, 0, 0, 0);
}
void print_dh_params_info(gnutls_session_t session)
@@ -345,7 +352,7 @@ void print_dh_params_info(gnutls_session_t session)
}
printf("pubkey: \n");
- for (i=0;i<pubkey.size;i++) {
+ for (i = 0; i < pubkey.size; i++) {
printf("%.2x", (unsigned)pubkey.data[i]);
}
printf("\n");
@@ -358,17 +365,16 @@ void print_dh_params_info(gnutls_session_t session)
}
printf("prime: \n");
- for (i=0;i<prime.size;i++) {
+ for (i = 0; i < prime.size; i++) {
printf("%.2x", (unsigned)prime.data[i]);
}
printf("\n");
printf("generator: \n");
- for (i=0;i<gen.size;i++) {
+ for (i = 0; i < gen.size; i++) {
printf("%.2x", (unsigned)gen.data[i]);
}
printf("\n");
gnutls_free(gen.data);
gnutls_free(prime.data);
}
-
diff --git a/tests/utils.c b/tests/utils.c
index f551eddf1f..66fc7f7897 100644
--- a/tests/utils.c
+++ b/tests/utils.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -31,12 +31,12 @@
#include <assert.h>
#include <errno.h>
#ifndef _WIN32
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <arpa/inet.h>
#else
-#include <windows.h> /* for Sleep */
-#include <winbase.h>
+# include <windows.h> /* for Sleep */
+# include <winbase.h>
#endif
#include <gnutls/gnutls.h>
@@ -83,8 +83,7 @@ const char *pkcs3_3072 =
"ssbzSibBsu/6iGtCOGEfz9zeNVs7ZRkDW7w09N75nAI4YbRvydbmyQd62R0mkff3\n"
"7lmMsPrBhtkcrv4TCYUTknC0EwyTvEN5RPT9RFLi103TZPLiHnH1S/9croKrnJ32\n"
"nuhtK8UiNjoNq8Uhl5sN6todv5pC1cRITgq80Gv6U93vPBsg7j/VnXwl5B0rZsYu\n"
- "N///////////AgEC\n"
- "-----END DH PARAMETERS-----\n";
+ "N///////////AgEC\n" "-----END DH PARAMETERS-----\n";
void _fail(const char *format, ...)
{
@@ -210,14 +209,14 @@ void binprint(const void *_str, size_t len)
printf("\t;; ");
for (i = 0; i < len; i++) {
printf("%d%d%d%d%d%d%d%d ",
- (str[i] & 0xFF) & 0x80 ? 1 : 0,
- (str[i] & 0xFF) & 0x40 ? 1 : 0,
- (str[i] & 0xFF) & 0x20 ? 1 : 0,
- (str[i] & 0xFF) & 0x10 ? 1 : 0,
- (str[i] & 0xFF) & 0x08 ? 1 : 0,
- (str[i] & 0xFF) & 0x04 ? 1 : 0,
- (str[i] & 0xFF) & 0x02 ? 1 : 0,
- (str[i] & 0xFF) & 0x01 ? 1 : 0);
+ (str[i] & 0xFF) & 0x80 ? 1 : 0,
+ (str[i] & 0xFF) & 0x40 ? 1 : 0,
+ (str[i] & 0xFF) & 0x20 ? 1 : 0,
+ (str[i] & 0xFF) & 0x10 ? 1 : 0,
+ (str[i] & 0xFF) & 0x08 ? 1 : 0,
+ (str[i] & 0xFF) & 0x04 ? 1 : 0,
+ (str[i] & 0xFF) & 0x02 ? 1 : 0,
+ (str[i] & 0xFF) & 0x01 ? 1 : 0);
if ((i + 1) % 3 == 0)
printf(" ");
if ((i + 1) % 6 == 0 && i + 1 < len)
@@ -249,7 +248,7 @@ int main(int argc, char *argv[])
if (debug || error_count > 0)
printf("Self test `%s' finished with %d errors\n", argv[0],
- error_count);
+ error_count);
return error_count ? 1 : 0;
}
@@ -259,13 +258,13 @@ struct tmp_file_st {
struct tmp_file_st *next;
};
-static struct tmp_file_st *temp_files = (void*)-1;
+static struct tmp_file_st *temp_files = (void *)-1;
static void append(const char *file)
{
struct tmp_file_st *p;
- if (temp_files == (void*)-1)
+ if (temp_files == (void *)-1)
return;
p = calloc(1, sizeof(*p));
@@ -297,8 +296,9 @@ char *get_tmpname(char s[TMPNAME_SIZE])
else
p = s;
- snprintf(p, TMPNAME_SIZE, "%s/tmpfile-%02x%02x%02x%02x%02x%02x.tmp", path, (unsigned)rnd[0], (unsigned)rnd[1],
- (unsigned)rnd[2], (unsigned)rnd[3], (unsigned)rnd[4], (unsigned)rnd[5]);
+ snprintf(p, TMPNAME_SIZE, "%s/tmpfile-%02x%02x%02x%02x%02x%02x.tmp",
+ path, (unsigned)rnd[0], (unsigned)rnd[1], (unsigned)rnd[2],
+ (unsigned)rnd[3], (unsigned)rnd[4], (unsigned)rnd[5]);
append(p);
@@ -315,10 +315,10 @@ void delete_temp_files(void)
struct tmp_file_st *p = temp_files;
struct tmp_file_st *next;
- if (p == (void*)-1)
+ if (p == (void *)-1)
return;
- while(p != NULL) {
+ while (p != NULL) {
remove(p->file);
next = p->next;
free(p);
@@ -326,9 +326,8 @@ void delete_temp_files(void)
}
}
-
#ifndef _WIN32
-int tcp_connect(const char* addr, unsigned port)
+int tcp_connect(const char *addr, unsigned port)
{
int sock;
struct sockaddr_in sa;
@@ -343,7 +342,7 @@ int tcp_connect(const char* addr, unsigned port)
close(sock);
return -1;
}
- if (connect(sock, (struct sockaddr*) &sa, sizeof(sa)) != 0) {
+ if (connect(sock, (struct sockaddr *)&sa, sizeof(sa)) != 0) {
close(sock);
return -1;
}
diff --git a/tests/utils.h b/tests/utils.h
index 4433a07057..0c228060e9 100644
--- a/tests/utils.h
+++ b/tests/utils.h
@@ -21,45 +21,45 @@
*/
#ifndef GNUTLS_TESTS_UTILS_H
-#define GNUTLS_TESTS_UTILS_H
-
-#include <assert.h>
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <string.h>
-#include <stdarg.h>
-#include <unistd.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/pkcs11.h>
-
-#ifndef __attribute__
-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
-#define __attribute__(Spec) /* empty */
-#endif
-#endif
-
-#ifdef NDEBUG
-# error tests cannot be compiled with NDEBUG defined
-#endif
-
-#ifndef FALLTHROUGH
-#if _GNUTLS_GCC_VERSION >= 70100
-# define FALLTHROUGH __attribute__ ((fallthrough))
-#else
-# define FALLTHROUGH
-#endif
-#endif
+# define GNUTLS_TESTS_UTILS_H
+
+# include <assert.h>
+# include <limits.h>
+# include <stdio.h>
+# include <stdlib.h>
+# include <signal.h>
+# include <string.h>
+# include <stdarg.h>
+# include <unistd.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/pkcs11.h>
+
+# ifndef __attribute__
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)
+# define __attribute__(Spec) /* empty */
+# endif
+# endif
+
+# ifdef NDEBUG
+# error tests cannot be compiled with NDEBUG defined
+# endif
+
+# ifndef FALLTHROUGH
+# if _GNUTLS_GCC_VERSION >= 70100
+# define FALLTHROUGH __attribute__ ((fallthrough))
+# else
+# define FALLTHROUGH
+# endif
+# endif
/* number of elements within an array */
-#define countof(a) (sizeof(a)/sizeof(*(a)))
+# define countof(a) (sizeof(a)/sizeof(*(a)))
inline static int global_init(void)
{
-#ifdef ENABLE_PKCS11
+# ifdef ENABLE_PKCS11
gnutls_pkcs11_init(GNUTLS_PKCS11_FLAG_MANUAL, NULL);
-#endif
+# endif
return gnutls_global_init();
}
@@ -71,21 +71,21 @@ extern const char *pkcs3;
extern const char *pkcs3_2048;
extern const char *pkcs3_3072;
-#define fail(format, ...) \
+# define fail(format, ...) \
_fail("%s:%d: "format, __func__, __LINE__, ##__VA_ARGS__)
extern void _fail(const char *format, ...)
- __attribute__ ((format(printf, 1, 2))) __attribute__((__noreturn__));
+ __attribute__((format(printf, 1, 2))) __attribute__((__noreturn__));
extern void fail_ignore(const char *format, ...)
- __attribute__ ((format(printf, 1, 2))) __attribute__((__noreturn__));
+ __attribute__((format(printf, 1, 2))) __attribute__((__noreturn__));
extern void success(const char *format, ...)
- __attribute__ ((format(printf, 1, 2)));
+ __attribute__((format(printf, 1, 2)));
/* assumes test_name is defined */
-#define test_fail(fmt, ...) \
+# define test_fail(fmt, ...) \
fail("%s: "fmt, test_name, ##__VA_ARGS__)
-#define test_success(fmt, ...) \
+# define test_success(fmt, ...) \
success("%s: "fmt, test_name, ##__VA_ARGS__)
extern void c_print(const unsigned char *str, size_t len);
@@ -97,13 +97,13 @@ void sec_sleep(int sec);
int
test_cli_serv_anon(gnutls_anon_server_credentials_t server_cred,
- gnutls_anon_client_credentials_t client_cred,
- const char *prio);
+ gnutls_anon_client_credentials_t client_cred,
+ const char *prio);
int
test_cli_serv_psk(gnutls_psk_server_credentials_t server_cred,
- gnutls_psk_client_credentials_t client_cred,
- const char *prio);
+ gnutls_psk_client_credentials_t client_cred,
+ const char *prio);
typedef void callback_func(gnutls_session_t, void *priv);
void test_cli_serv(gnutls_certificate_credentials_t server_cred,
@@ -114,40 +114,39 @@ void test_cli_serv(gnutls_certificate_credentials_t server_cred,
int
_test_cli_serv(gnutls_certificate_credentials_t server_cred,
- gnutls_certificate_credentials_t client_cred,
- const char *serv_prio, const char *cli_prio,
- const char *host,
- void *priv, callback_func *client_cb, callback_func *server_cb,
- unsigned expect_verification_failure,
- unsigned require_cert,
- int serv_err,
- int cli_err);
+ gnutls_certificate_credentials_t client_cred,
+ const char *serv_prio, const char *cli_prio,
+ const char *host,
+ void *priv, callback_func * client_cb, callback_func * server_cb,
+ unsigned expect_verification_failure,
+ unsigned require_cert, int serv_err, int cli_err);
void print_dh_params_info(gnutls_session_t);
void
test_cli_serv_cert(gnutls_certificate_credentials_t server_cred,
- gnutls_certificate_credentials_t client_cred,
- const char *serv_prio, const char *cli_prio, const char *host);
+ gnutls_certificate_credentials_t client_cred,
+ const char *serv_prio, const char *cli_prio,
+ const char *host);
void
test_cli_serv_expect(gnutls_certificate_credentials_t server_cred,
- gnutls_certificate_credentials_t client_cred,
- const char *serv_prio, const char *cli_prio, const char *host,
- int serv_err, int cli_err);
+ gnutls_certificate_credentials_t client_cred,
+ const char *serv_prio, const char *cli_prio,
+ const char *host, int serv_err, int cli_err);
/* verification failed */
unsigned
test_cli_serv_vf(gnutls_certificate_credentials_t server_cred,
- gnutls_certificate_credentials_t client_cred,
- const char *prio, const char *host);
+ gnutls_certificate_credentials_t client_cred,
+ const char *prio, const char *host);
-#define TMPNAME_SIZE 128
+# define TMPNAME_SIZE 128
char *get_tmpname(char s[TMPNAME_SIZE]);
void track_temp_files(void);
void delete_temp_files(void);
-int tcp_connect(const char* addr, unsigned port);
+int tcp_connect(const char *addr, unsigned port);
/* This must be implemented elsewhere. */
extern void doit(void);
@@ -155,7 +154,7 @@ extern void doit(void);
/* calls fail() if status indicates an error */
inline static void _check_wait_status(int status, unsigned sigonly)
{
-#if defined WEXITSTATUS && defined WIFSIGNALED
+# if defined WEXITSTATUS && defined WIFSIGNALED
if (WEXITSTATUS(status) != 0 ||
(WIFSIGNALED(status) && WTERMSIG(status) != SIGTERM)) {
if (WIFSIGNALED(status)) {
@@ -169,7 +168,7 @@ inline static void _check_wait_status(int status, unsigned sigonly)
}
}
}
-#endif
+# endif
}
inline static void check_wait_status(int status)
@@ -182,7 +181,8 @@ inline static void check_wait_status_for_sig(int status)
_check_wait_status(status, 1);
}
-inline static unsigned int get_timeout(void) {
+inline static unsigned int get_timeout(void)
+{
const char *envvar;
unsigned long int ul;
@@ -193,10 +193,11 @@ inline static unsigned int get_timeout(void) {
ul = strtoul(envvar, NULL, 10);
assert(ul <= UINT_MAX);
- return (unsigned int) ul;
+ return (unsigned int)ul;
}
-inline static unsigned int get_dtls_retransmit_timeout(void) {
+inline static unsigned int get_dtls_retransmit_timeout(void)
+{
const char *envvar;
unsigned long int ul;
@@ -207,11 +208,11 @@ inline static unsigned int get_dtls_retransmit_timeout(void) {
ul = strtoul(envvar, NULL, 10);
assert(ul <= UINT_MAX);
- return (unsigned int) ul;
+ return (unsigned int)ul;
}
-static inline const char *
-fips_operation_state_to_string(gnutls_fips140_operation_state_t state)
+static inline const char
+*fips_operation_state_to_string(gnutls_fips140_operation_state_t state)
{
switch (state) {
case GNUTLS_FIPS140_OP_INITIAL:
@@ -223,14 +224,12 @@ fips_operation_state_to_string(gnutls_fips140_operation_state_t state)
case GNUTLS_FIPS140_OP_ERROR:
return "ERROR";
default:
- /*NOTREACHED*/
- assert(0);
+ /*NOTREACHED*/ assert(0);
return NULL;
}
}
-static inline void
-fips_push_context(gnutls_fips140_context_t context)
+static inline void fips_push_context(gnutls_fips140_context_t context)
{
if (gnutls_fips140_mode_enabled()) {
int ret;
@@ -265,7 +264,7 @@ fips_pop_context(gnutls_fips140_context_t context,
}
/* To use those convenient macros, define fips_context variable. */
-#define FIPS_PUSH_CONTEXT() fips_push_context(fips_context)
-#define FIPS_POP_CONTEXT(state) fips_pop_context(fips_context, GNUTLS_FIPS140_OP_ ## state)
+# define FIPS_PUSH_CONTEXT() fips_push_context(fips_context)
+# define FIPS_POP_CONTEXT(state) fips_pop_context(fips_context, GNUTLS_FIPS140_OP_ ## state)
-#endif /* GNUTLS_TESTS_UTILS_H */
+#endif /* GNUTLS_TESTS_UTILS_H */
diff --git a/tests/version-checks.c b/tests/version-checks.c
index 4a2de57938..1ef1abaa9c 100644
--- a/tests/version-checks.c
+++ b/tests/version-checks.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -60,7 +60,8 @@ static void try(const char *client_prio, int expected)
unsigned dtls = 0;
const char *server_prio = "NORMAL:+VERS-TLS-ALL";
- if (expected >= GNUTLS_DTLS_VERSION_MIN && expected <= GNUTLS_DTLS_VERSION_MAX) {
+ if (expected >= GNUTLS_DTLS_VERSION_MIN
+ && expected <= GNUTLS_DTLS_VERSION_MAX) {
dtls = 1;
/* we do not really do negotiation in that version */
if (expected == GNUTLS_DTLS0_9)
@@ -81,16 +82,14 @@ static void try(const char *client_prio, int expected)
if (dtls)
flags |= (GNUTLS_DATAGRAM | GNUTLS_NONBLOCK);
- gnutls_init(&server, GNUTLS_SERVER|flags);
- gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE,
- serverx509cred);
+ gnutls_init(&server, GNUTLS_SERVER | flags);
+ gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- assert(gnutls_priority_set_direct(server,
- server_prio,
- NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, server_prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
- gnutls_transport_set_pull_timeout_function(server, server_pull_timeout_func);
+ gnutls_transport_set_pull_timeout_function(server,
+ server_pull_timeout_func);
gnutls_transport_set_ptr(server, server);
/* Init client */
@@ -99,22 +98,25 @@ static void try(const char *client_prio, int expected)
if (ret < 0)
exit(1);
- ret = gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca_cert,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
exit(1);
- ret = gnutls_init(&client, GNUTLS_CLIENT|flags);
+ ret = gnutls_init(&client, GNUTLS_CLIENT | flags);
if (ret < 0)
exit(1);
ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- clientx509cred);
+ clientx509cred);
if (ret < 0)
exit(1);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
- gnutls_transport_set_pull_timeout_function(client, client_pull_timeout_func);
+ gnutls_transport_set_pull_timeout_function(client,
+ client_pull_timeout_func);
gnutls_transport_set_ptr(client, client);
ret = gnutls_priority_set_direct(client, client_prio, NULL);
@@ -133,12 +135,12 @@ static void try(const char *client_prio, int expected)
ret = gnutls_protocol_get_version(client);
if (ret != expected) {
- fail("unexpected negotiated protocol %s (expected %s)\n", gnutls_protocol_get_name(ret),
- gnutls_protocol_get_name(expected));
+ fail("unexpected negotiated protocol %s (expected %s)\n", gnutls_protocol_get_name(ret), gnutls_protocol_get_name(expected));
exit(1);
}
} else {
- HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN, GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
+ HANDSHAKE_EXPECT(client, server, GNUTLS_E_AGAIN,
+ GNUTLS_E_UNSUPPORTED_VERSION_PACKET);
}
gnutls_bye(client, GNUTLS_SHUT_RDWR);
@@ -187,7 +189,8 @@ void doit(void)
reset_buffers();
/* special test for this legacy crap */
- try("NONE:+VERS-DTLS0.9:+COMP-NULL:+AES-128-CBC:+SHA1:+RSA:%COMPAT", GNUTLS_DTLS0_9);
+ try("NONE:+VERS-DTLS0.9:+COMP-NULL:+AES-128-CBC:+SHA1:+RSA:%COMPAT",
+ GNUTLS_DTLS0_9);
reset_buffers();
gnutls_global_deinit();
}
diff --git a/tests/virt-time.h b/tests/virt-time.h
index 7f7c37471c..c7d4aada96 100644
--- a/tests/virt-time.h
+++ b/tests/virt-time.h
@@ -20,19 +20,20 @@
*/
#ifndef GNUTLS_TESTS_VIRT_TIME_H
-#define GNUTLS_TESTS_VIRT_TIME_H
+# define GNUTLS_TESTS_VIRT_TIME_H
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+# ifdef HAVE_CONFIG_H
+# include <config.h>
+# endif
-#include <time.h>
-#include <gnutls/gnutls.h>
+# include <time.h>
+# include <gnutls/gnutls.h>
/* copied from ../lib/system.h so not to include that header from
* every test program */
-typedef void (*gnutls_gettime_func) (struct timespec *);
-extern void _gnutls_global_set_gettime_function(gnutls_gettime_func gettime_func);
+typedef void (*gnutls_gettime_func)(struct timespec *);
+extern void _gnutls_global_set_gettime_function(gnutls_gettime_func
+ gettime_func);
/* virtualize time in a test. This freezes the time in the test, except for
* the advances due to calls to virt_sleep_sec(). This makes the test
@@ -40,12 +41,12 @@ extern void _gnutls_global_set_gettime_function(gnutls_gettime_func gettime_func
static time_t _now;
static struct timespec _now_ts;
-#define virt_sec_sleep(s) { \
+# define virt_sec_sleep(s) { \
_now += s; \
_now_ts.tv_sec += s; \
}
-#define virt_time_init_at(d) { \
+# define virt_time_init_at(d) { \
_now = (d); \
gnutls_global_set_time_function(mytime); \
_now_ts.tv_sec = _now; \
@@ -53,8 +54,7 @@ static struct timespec _now_ts;
_gnutls_global_set_gettime_function(mygettime); \
}
-#define virt_time_init() virt_time_init_at(time(0))
-
+# define virt_time_init() virt_time_init_at(time(0))
static time_t mytime(time_t * t)
{
@@ -64,10 +64,10 @@ static time_t mytime(time_t * t)
return _now;
}
-static void mygettime(struct timespec * t)
+static void mygettime(struct timespec *t)
{
if (t)
*t = _now_ts;
}
-#endif /* GNUTLS_TESTS_VIRT_TIME_H */
+#endif /* GNUTLS_TESTS_VIRT_TIME_H */
diff --git a/tests/win-certopenstore.c b/tests/win-certopenstore.c
index 9af814bf5c..1dba3e63db 100644
--- a/tests/win-certopenstore.c
+++ b/tests/win-certopenstore.c
@@ -25,11 +25,11 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#ifndef _WIN32
-#error "This test shouldn't have been included"
+# error "This test shouldn't have been included"
#endif
#include <windows.h>
@@ -38,32 +38,33 @@
void doit(void)
{
- HCERTSTORE hStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0, CERT_SYSTEM_STORE_CURRENT_USER , L"ROOT");
- assert(hStore != NULL);
- HCERTSTORE hSystemStore = CertOpenSystemStore(0, "ROOT");
- assert(hSystemStore != NULL);
-
- PCCERT_CONTEXT prevCtx = NULL;
- PCCERT_CONTEXT ctx = NULL;
- PCCERT_CONTEXT sysPrevCtx = NULL;
- PCCERT_CONTEXT sysCtx = NULL;
+ HCERTSTORE hStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, 0,
+ CERT_SYSTEM_STORE_CURRENT_USER,
+ L"ROOT");
+ assert(hStore != NULL);
+ HCERTSTORE hSystemStore = CertOpenSystemStore(0, "ROOT");
+ assert(hSystemStore != NULL);
- while (1)
- {
- ctx = CertEnumCertificatesInStore(hStore, prevCtx);
- sysCtx = CertEnumCertificatesInStore(hSystemStore, sysPrevCtx);
- if (ctx == NULL || sysCtx == NULL)
- break;
- if (CertCompareIntegerBlob(&ctx->pCertInfo->SerialNumber,
- &sysCtx->pCertInfo->SerialNumber) != TRUE)
- assert(0);
+ PCCERT_CONTEXT prevCtx = NULL;
+ PCCERT_CONTEXT ctx = NULL;
+ PCCERT_CONTEXT sysPrevCtx = NULL;
+ PCCERT_CONTEXT sysCtx = NULL;
- prevCtx = ctx;
- sysPrevCtx = sysCtx;
- }
- assert(ctx == NULL && sysCtx == NULL);
+ while (1) {
+ ctx = CertEnumCertificatesInStore(hStore, prevCtx);
+ sysCtx = CertEnumCertificatesInStore(hSystemStore, sysPrevCtx);
+ if (ctx == NULL || sysCtx == NULL)
+ break;
+ if (CertCompareIntegerBlob(&ctx->pCertInfo->SerialNumber,
+ &sysCtx->pCertInfo->SerialNumber) !=
+ TRUE)
+ assert(0);
- CertCloseStore(hStore, 0);
- CertCloseStore(hSystemStore, 0);
-}
+ prevCtx = ctx;
+ sysPrevCtx = sysCtx;
+ }
+ assert(ctx == NULL && sysCtx == NULL);
+ CertCloseStore(hStore, 0);
+ CertCloseStore(hSystemStore, 0);
+}
diff --git a/tests/windows/cng-windows.c b/tests/windows/cng-windows.c
index 924ba84c6d..588f641d9e 100644
--- a/tests/windows/cng-windows.c
+++ b/tests/windows/cng-windows.c
@@ -25,12 +25,12 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#ifndef _WIN32
-#include <stdlib.h>
+# include <stdlib.h>
void doit(void)
{
@@ -39,21 +39,21 @@ void doit(void)
#else
-#include <windows.h>
-#include <wincrypt.h>
-#include <winbase.h>
-#include <ncrypt.h>
-#include <string.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/x509.h>
-#include <gnutls/abstract.h>
-#include <gnutls/system-keys.h>
-#include <gnutls/crypto.h>
-#include <stdio.h>
-#include <assert.h>
-#include <utils.h>
-#include "../cert-common.h"
-#include "ncrypt-int.h"
+# include <windows.h>
+# include <wincrypt.h>
+# include <winbase.h>
+# include <ncrypt.h>
+# include <string.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/x509.h>
+# include <gnutls/abstract.h>
+# include <gnutls/system-keys.h>
+# include <gnutls/crypto.h>
+# include <stdio.h>
+# include <assert.h>
+# include <utils.h>
+# include "../cert-common.h"
+# include "ncrypt-int.h"
static void tls_log_func(int level, const char *str)
{
@@ -65,8 +65,7 @@ const gnutls_datum_t sha256_hash_data = {
(void *)
"\x2c\xf2\x4d\xba\x5f\xb0\xa3\x0e\x26\xe8"
"\x3b\x2a\xc5\xb9\xe2\x9e\x1b\x16\x1e\x5c"
- "\x1f\xa7\x42\x5e\x73\x04\x33\x62\x93\x8b"
- "\x98\x24",
+ "\x1f\xa7\x42\x5e\x73\x04\x33\x62\x93\x8b" "\x98\x24",
32
};
@@ -102,14 +101,15 @@ void test_sig(void)
assert_int_nequal(gnutls_privkey_init(&privkey), 0);
- assert_int_nequal(gnutls_privkey_import_url(privkey, "system:win:id=123456", 0), 0);
+ assert_int_nequal(gnutls_privkey_import_url
+ (privkey, "system:win:id=123456", 0), 0);
- assert_int_nequal(gnutls_pubkey_import_x509_raw(pubkey, &cert_dat, GNUTLS_X509_FMT_PEM, 0), 0);
+ assert_int_nequal(gnutls_pubkey_import_x509_raw
+ (pubkey, &cert_dat, GNUTLS_X509_FMT_PEM, 0), 0);
assert_int_nequal(gnutls_privkey_sign_hash(privkey, GNUTLS_DIG_SHA256,
- 0, &sha256_hash_data,
- &signature), 0);
-
+ 0, &sha256_hash_data,
+ &signature), 0);
ret =
gnutls_pubkey_verify_hash2(pubkey,
@@ -121,52 +121,49 @@ void test_sig(void)
ret =
gnutls_pubkey_verify_hash2(pubkey,
sign_algo, 0,
- &invalid_hash_data,
- &signature);
+ &invalid_hash_data, &signature);
assert(ret == GNUTLS_E_PK_SIG_VERIFY_FAILED);
gnutls_free(signature.data);
signature.data = NULL;
- /* test the raw interface (MD5+SHA1)
- */
+ /* test the raw interface (MD5+SHA1)
+ */
ret =
gnutls_privkey_sign_hash(privkey,
0,
GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
- &md5sha1_hash_data,
- &signature);
+ &md5sha1_hash_data, &signature);
assert(ret >= 0);
ret =
gnutls_pubkey_verify_hash2(pubkey,
0,
GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- &md5sha1_hash_data,
- &signature);
+ &md5sha1_hash_data, &signature);
assert(ret >= 0);
gnutls_free(signature.data);
signature.data = NULL;
- /* test the raw interface DigestInfo
- */
- ret = gnutls_encode_ber_digest_info(GNUTLS_DIG_SHA256, &sha256_hash_data, &digest_info);
+ /* test the raw interface DigestInfo
+ */
+ ret =
+ gnutls_encode_ber_digest_info(GNUTLS_DIG_SHA256, &sha256_hash_data,
+ &digest_info);
assert(ret >= 0);
ret =
gnutls_privkey_sign_hash(privkey,
0,
GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
- &digest_info,
- &signature);
+ &digest_info, &signature);
assert(ret >= 0);
ret =
gnutls_pubkey_verify_hash2(pubkey,
0,
GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- &digest_info,
- &signature);
+ &digest_info, &signature);
assert(ret >= 0);
gnutls_free(signature.data);
diff --git a/tests/windows/crypt32.c b/tests/windows/crypt32.c
index 71a12ebb94..c2296e2f0d 100644
--- a/tests/windows/crypt32.c
+++ b/tests/windows/crypt32.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#undef DECLSPEC_IMPORT
@@ -49,33 +49,35 @@
*/
__declspec(dllexport)
-HCERTSTORE WINAPI CertOpenSystemStore(
- HCRYPTPROV_LEGACY hprov, LPCSTR szSubsystemProtocol)
+HCERTSTORE WINAPI CertOpenSystemStore(HCRYPTPROV_LEGACY hprov,
+ LPCSTR szSubsystemProtocol)
{
return VALID_PTR;
}
__declspec(dllexport)
-HCERTSTORE WINAPI CertOpenStore(
- LPCSTR lpszStoreProvider, DWORD dwEncodingType,
- HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags,
- const void *pvPara)
+HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwEncodingType,
+ HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags,
+ const void *pvPara)
{
return VALID_PTR;
}
__declspec(dllexport)
-BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
+BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
{
assert_int_nequal(hCertStore, VALID_PTR);
return 1;
}
__declspec(dllexport)
-PCCERT_CONTEXT WINAPI CertFindCertificateInStore(
- HCERTSTORE hCertStore, DWORD dwCertEncodingType,
- DWORD dwFindFlags, DWORD dwFindType,
- const void *pvFindPara, PCCERT_CONTEXT pPrevCertContext)
+PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE hCertStore,
+ DWORD dwCertEncodingType,
+ DWORD dwFindFlags,
+ DWORD dwFindType,
+ const void *pvFindPara,
+ PCCERT_CONTEXT
+ pPrevCertContext)
{
//CRYPT_HASH_BLOB *blob = (void*)pvFindPara;
@@ -89,7 +91,8 @@ PCCERT_CONTEXT WINAPI CertFindCertificateInStore(
__declspec(dllexport)
BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext,
- DWORD dwPropId, void *pvData, DWORD *pcbData)
+ DWORD dwPropId, void *pvData,
+ DWORD * pcbData)
{
if (dwPropId == CERT_FRIENDLY_NAME_PROP_ID) {
*pcbData = snprintf(pvData, *pcbData, "friendly");
@@ -123,7 +126,8 @@ BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext,
}
__declspec(dllexport)
-PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pPrevCrlContext)
+PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore,
+ PCCRL_CONTEXT pPrevCrlContext)
{
return NULL;
}
@@ -135,14 +139,16 @@ BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext)
}
__declspec(dllexport)
-HCERTSTORE WINAPI PFXImportCertStore(CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, DWORD dwFlags)
+HCERTSTORE WINAPI PFXImportCertStore(CRYPT_DATA_BLOB * pPFX, LPCWSTR szPassword,
+ DWORD dwFlags)
{
return NULL;
}
__declspec(dllexport)
PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore(HCERTSTORE hCertStore,
- PCCERT_CONTEXT pPrevCertContext)
+ PCCERT_CONTEXT
+ pPrevCertContext)
{
return NULL;
}
@@ -156,22 +162,22 @@ BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
/* These are for CAPI, and are placeholders */
__declspec(dllexport)
BOOL WINAPI CryptGetProvParam(HCRYPTPROV hProv, DWORD dwParam,
- BYTE *pbData, DWORD *pdwDataLen,
- DWORD dwFlags)
+ BYTE * pbData, DWORD * pdwDataLen, DWORD dwFlags)
{
return 0;
}
__declspec(dllexport)
-BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR szContainer,
- LPCWSTR szProvider, DWORD dwProvType, DWORD dwFlags)
+BOOL WINAPI CryptAcquireContextW(HCRYPTPROV * phProv, LPCWSTR szContainer,
+ LPCWSTR szProvider, DWORD dwProvType,
+ DWORD dwFlags)
{
return 0;
}
__declspec(dllexport)
BOOL WINAPI CryptDecrypt(HCRYPTKEY hKey, HCRYPTHASH hHash, BOOL Final,
- DWORD dwFlags, BYTE *pbData, DWORD *pdwDataLen)
+ DWORD dwFlags, BYTE * pbData, DWORD * pdwDataLen)
{
return 0;
}
@@ -183,35 +189,31 @@ BOOL WINAPI CryptDestroyHash(HCRYPTHASH hHash)
}
__declspec(dllexport)
-BOOL WINAPI CryptSignHash(
- HCRYPTHASH hHash,
- DWORD dwKeySpec,
- LPCTSTR sDescription,
- DWORD dwFlags,
- BYTE *pbSignature,
- DWORD *pdwSigLen)
+BOOL WINAPI CryptSignHash(HCRYPTHASH hHash,
+ DWORD dwKeySpec,
+ LPCTSTR sDescription,
+ DWORD dwFlags, BYTE * pbSignature, DWORD * pdwSigLen)
{
return 0;
}
__declspec(dllexport)
BOOL WINAPI CryptGetHashParam(HCRYPTHASH hHash, DWORD dwParam,
- BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
+ BYTE * pbData, DWORD * pdwDataLen, DWORD dwFlags)
{
return 0;
}
__declspec(dllexport)
BOOL WINAPI CryptSetHashParam(HCRYPTHASH hHash, DWORD dwParam,
- const BYTE *pbData, DWORD dwFlags)
+ const BYTE * pbData, DWORD dwFlags)
{
return 0;
}
-
__declspec(dllexport)
BOOL WINAPI CryptCreateHash(HCRYPTPROV hProv, ALG_ID Algid, HCRYPTKEY hKey,
- DWORD dwFlags, HCRYPTHASH *phHash)
+ DWORD dwFlags, HCRYPTHASH * phHash)
{
return 0;
}
diff --git a/tests/windows/ncrypt.c b/tests/windows/ncrypt.c
index 326735143b..bc3e630305 100644
--- a/tests/windows/ncrypt.c
+++ b/tests/windows/ncrypt.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <windows.h>
@@ -47,16 +47,17 @@
#define debug_func() fprintf(stderr, "%s: %d\n", __func__, __LINE__);
__declspec(dllexport)
-SECURITY_STATUS WINAPI NCryptDeleteKey(NCRYPT_KEY_HANDLE hKey,DWORD dwFlags)
+SECURITY_STATUS WINAPI NCryptDeleteKey(NCRYPT_KEY_HANDLE hKey, DWORD dwFlags)
{
debug_func();
return 0;
}
__declspec(dllexport)
-SECURITY_STATUS WINAPI NCryptOpenStorageProvider(
- NCRYPT_PROV_HANDLE *phProvider, LPCWSTR pszProviderName,
- DWORD dwFlags)
+SECURITY_STATUS WINAPI NCryptOpenStorageProvider(NCRYPT_PROV_HANDLE *
+ phProvider,
+ LPCWSTR pszProviderName,
+ DWORD dwFlags)
{
debug_func();
*phProvider = 0;
@@ -64,51 +65,50 @@ SECURITY_STATUS WINAPI NCryptOpenStorageProvider(
}
__declspec(dllexport)
-SECURITY_STATUS WINAPI NCryptOpenKey(
- NCRYPT_PROV_HANDLE hProvider, NCRYPT_KEY_HANDLE *phKey,
- LPCWSTR pszKeyName, DWORD dwLegacyKeySpec,
- DWORD dwFlags)
+SECURITY_STATUS WINAPI NCryptOpenKey(NCRYPT_PROV_HANDLE hProvider,
+ NCRYPT_KEY_HANDLE * phKey,
+ LPCWSTR pszKeyName, DWORD dwLegacyKeySpec,
+ DWORD dwFlags)
{
gnutls_privkey_t p;
debug_func();
assert_int_nequal(gnutls_privkey_init(&p), 0);
- assert_int_nequal(gnutls_privkey_import_x509_raw(p, &key_dat, GNUTLS_X509_FMT_PEM, NULL, 0), 0);
-
- *phKey = (NCRYPT_KEY_HANDLE)p;
+ assert_int_nequal(gnutls_privkey_import_x509_raw
+ (p, &key_dat, GNUTLS_X509_FMT_PEM, NULL, 0), 0);
+
+ *phKey = (NCRYPT_KEY_HANDLE) p;
return 1;
}
__declspec(dllexport)
-SECURITY_STATUS WINAPI NCryptGetProperty(
- NCRYPT_HANDLE hObject, LPCWSTR pszProperty,
- PBYTE pbOutput, DWORD cbOutput,
- DWORD *pcbResult, DWORD dwFlags)
+SECURITY_STATUS WINAPI NCryptGetProperty(NCRYPT_HANDLE hObject,
+ LPCWSTR pszProperty, PBYTE pbOutput,
+ DWORD cbOutput, DWORD * pcbResult,
+ DWORD dwFlags)
{
debug_func();
//assert_int_nequal(pszProperty, NCRYPT_ALGORITHM_PROPERTY);
- assert(pbOutput!=NULL);
+ assert(pbOutput != NULL);
memcpy(pbOutput, BCRYPT_RSA_ALGORITHM, sizeof(BCRYPT_RSA_ALGORITHM));
return 1;
}
__declspec(dllexport)
-SECURITY_STATUS WINAPI NCryptFreeObject(
- NCRYPT_HANDLE hObject)
+SECURITY_STATUS WINAPI NCryptFreeObject(NCRYPT_HANDLE hObject)
{
debug_func();
if (hObject != 0)
- gnutls_privkey_deinit((gnutls_privkey_t)hObject);
+ gnutls_privkey_deinit((gnutls_privkey_t) hObject);
return 1;
}
__declspec(dllexport)
-SECURITY_STATUS WINAPI NCryptDecrypt(
- NCRYPT_KEY_HANDLE hKey, PBYTE pbInput,
- DWORD cbInput, VOID *pPaddingInfo,
- PBYTE pbOutput, DWORD cbOutput,
- DWORD *pcbResult, DWORD dwFlags)
+SECURITY_STATUS WINAPI NCryptDecrypt(NCRYPT_KEY_HANDLE hKey, PBYTE pbInput,
+ DWORD cbInput, VOID * pPaddingInfo,
+ PBYTE pbOutput, DWORD cbOutput,
+ DWORD * pcbResult, DWORD dwFlags)
{
gnutls_datum_t c, p;
assert_int_nequal(dwFlags, NCRYPT_PAD_PKCS1_FLAG);
@@ -120,42 +120,48 @@ SECURITY_STATUS WINAPI NCryptDecrypt(
*pcbResult = 256;
return 1;
}
-
- assert_int_nequal(gnutls_privkey_decrypt_data((gnutls_privkey_t)hKey, 0,
- &c, &p), 0);
+
+ assert_int_nequal(gnutls_privkey_decrypt_data
+ ((gnutls_privkey_t) hKey, 0, &c, &p), 0);
*pcbResult = p.size;
memcpy(pbOutput, p.data, p.size);
- gnutls_free(p.data);
+ gnutls_free(p.data);
return 1;
}
-static int StrCmpW(const WCHAR *str1, const WCHAR *str2 )
+static int StrCmpW(const WCHAR * str1, const WCHAR * str2)
{
- while (*str1 && (*str1 == *str2)) { str1++; str2++; }
+ while (*str1 && (*str1 == *str2)) {
+ str1++;
+ str2++;
+ }
return *str1 - *str2;
}
__declspec(dllexport)
-SECURITY_STATUS WINAPI NCryptSignHash(
- NCRYPT_KEY_HANDLE hKey, VOID* pPaddingInfo,
- PBYTE pbHashValue, DWORD cbHashValue,
- PBYTE pbSignature, DWORD cbSignature,
- DWORD* pcbResult, DWORD dwFlags)
+SECURITY_STATUS WINAPI NCryptSignHash(NCRYPT_KEY_HANDLE hKey,
+ VOID * pPaddingInfo, PBYTE pbHashValue,
+ DWORD cbHashValue, PBYTE pbSignature,
+ DWORD cbSignature, DWORD * pcbResult,
+ DWORD dwFlags)
{
BCRYPT_PKCS1_PADDING_INFO *info;
int hash = 0;
- gnutls_privkey_t p = (gnutls_privkey_t)hKey;
- gnutls_datum_t v = {pbHashValue, cbHashValue}, s;
+ gnutls_privkey_t p = (gnutls_privkey_t) hKey;
+ gnutls_datum_t v = { pbHashValue, cbHashValue }, s;
debug_func();
info = pPaddingInfo;
if (info != NULL) {
- if (info->pszAlgId && StrCmpW(info->pszAlgId, NCRYPT_SHA1_ALGORITHM) == 0)
+ if (info->pszAlgId
+ && StrCmpW(info->pszAlgId, NCRYPT_SHA1_ALGORITHM) == 0)
hash = GNUTLS_DIG_SHA1;
- else if (info->pszAlgId && StrCmpW(info->pszAlgId, NCRYPT_SHA256_ALGORITHM) == 0)
+ else if (info->pszAlgId
+ && StrCmpW(info->pszAlgId,
+ NCRYPT_SHA256_ALGORITHM) == 0)
hash = GNUTLS_DIG_SHA256;
else if (info->pszAlgId != NULL) {
assert(0);
@@ -167,12 +173,15 @@ SECURITY_STATUS WINAPI NCryptSignHash(
return 1;
}
- assert(p!=NULL);
+ assert(p != NULL);
if (info == NULL || info->pszAlgId == NULL) {
- assert_int_nequal(gnutls_privkey_sign_hash(p, 0, GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA, &v, &s), 0);
+ assert_int_nequal(gnutls_privkey_sign_hash
+ (p, 0, GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA, &v,
+ &s), 0);
} else if (info != NULL) {
- assert_int_nequal(gnutls_privkey_sign_hash(p, hash, 0, &v, &s), 0);
+ assert_int_nequal(gnutls_privkey_sign_hash(p, hash, 0, &v, &s),
+ 0);
}
*pcbResult = s.size;
@@ -181,8 +190,7 @@ SECURITY_STATUS WINAPI NCryptSignHash(
assert(cbSignature >= s.size);
memcpy(pbSignature, s.data, s.size);
}
- gnutls_free(s.data);
+ gnutls_free(s.data);
return 1;
}
-
diff --git a/tests/x509-cert-callback-legacy.c b/tests/x509-cert-callback-legacy.c
index 3ed8c1f02a..0f761ce99b 100644
--- a/tests/x509-cert-callback-legacy.c
+++ b/tests/x509-cert-callback-legacy.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -48,8 +48,7 @@ static int
cert_callback(gnutls_session_t session,
const gnutls_datum_t * req_ca_rdn, int nreqs,
const gnutls_pk_algorithm_t * pk_algos,
- int pk_algos_length,
- gnutls_retr2_st *st)
+ int pk_algos_length, gnutls_retr2_st * st)
{
int ret;
gnutls_x509_crt_t *crts;
@@ -63,8 +62,10 @@ cert_callback(gnutls_session_t session,
st->cert_type = GNUTLS_CRT_X509;
- ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &cli_ca3_cert_chain, GNUTLS_X509_FMT_PEM,
- GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
+ ret =
+ gnutls_x509_crt_list_import2(&crts, &crts_size, &cli_ca3_cert_chain,
+ GNUTLS_X509_FMT_PEM,
+ GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
if (ret < 0) {
fail("error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -76,7 +77,8 @@ cert_callback(gnutls_session_t session,
exit(1);
}
- ret = gnutls_x509_privkey_import(pkey, &cli_ca3_key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_privkey_import(pkey, &cli_ca3_key, GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -93,10 +95,9 @@ cert_callback(gnutls_session_t session,
static int
server_cert_callback(gnutls_session_t session,
- const gnutls_datum_t * req_ca_rdn, int nreqs,
- const gnutls_pk_algorithm_t * pk_algos,
- int pk_algos_length,
- gnutls_retr2_st *st)
+ const gnutls_datum_t * req_ca_rdn, int nreqs,
+ const gnutls_pk_algorithm_t * pk_algos,
+ int pk_algos_length, gnutls_retr2_st * st)
{
int ret;
gnutls_x509_crt_t *crts;
@@ -105,8 +106,11 @@ server_cert_callback(gnutls_session_t session,
st->cert_type = GNUTLS_CRT_X509;
- ret = gnutls_x509_crt_list_import2(&crts, &crts_size, &server_ca3_cert_chain, GNUTLS_X509_FMT_PEM,
- GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
+ ret =
+ gnutls_x509_crt_list_import2(&crts, &crts_size,
+ &server_ca3_cert_chain,
+ GNUTLS_X509_FMT_PEM,
+ GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED);
if (ret < 0) {
fail("error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -118,7 +122,9 @@ server_cert_callback(gnutls_session_t session,
exit(1);
}
- ret = gnutls_x509_privkey_import(pkey, &server_ca3_key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_privkey_import(pkey, &server_ca3_key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("error: %s\n", gnutls_strerror(ret));
exit(1);
@@ -179,8 +185,7 @@ static void start(const char *prio)
if (ret < 0)
exit(1);
- gnutls_certificate_set_retrieve_function(clientx509cred,
- cert_callback);
+ gnutls_certificate_set_retrieve_function(clientx509cred, cert_callback);
ret = gnutls_init(&client, GNUTLS_CLIENT);
if (ret < 0)
@@ -217,7 +222,8 @@ static void start(const char *prio)
gnutls_x509_crt_init(&crt);
ret =
- gnutls_x509_crt_import(crt, &server_ca3_localhost_cert_chain,
+ gnutls_x509_crt_import(crt,
+ &server_ca3_localhost_cert_chain,
GNUTLS_X509_FMT_PEM);
if (ret < 0) {
fail("gnutls_x509_crt_import: %s\n",
diff --git a/tests/x509-cert-callback-ocsp.c b/tests/x509-cert-callback-ocsp.c
index b0a6c87620..4e862d3d5f 100644
--- a/tests/x509-cert-callback-ocsp.c
+++ b/tests/x509-cert-callback-ocsp.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -54,12 +54,11 @@ static gnutls_ocsp_data_st ocspdata[2];
static int
server_cert_callback(gnutls_session_t session,
const struct gnutls_cert_retr_st *info,
- gnutls_pcert_st **pcert,
+ gnutls_pcert_st ** pcert,
unsigned int *pcert_length,
- gnutls_ocsp_data_st **ocsp,
+ gnutls_ocsp_data_st ** ocsp,
unsigned int *ocsp_length,
- gnutls_privkey_t *pkey,
- unsigned int *flags)
+ gnutls_privkey_t * pkey, unsigned int *flags)
{
int ret;
gnutls_pcert_st *p;
@@ -72,11 +71,11 @@ server_cert_callback(gnutls_session_t session,
if (p == NULL)
return -1;
- ocspdata[0].response.data = (void*)OCSP_DATA;
+ ocspdata[0].response.data = (void *)OCSP_DATA;
ocspdata[0].response.size = OCSP_SIZE;
ocspdata[0].exptime = 0;
- ocspdata[1].response.data = (void*)OCSP_DATA;
+ ocspdata[1].response.data = (void *)OCSP_DATA;
ocspdata[1].response.size = OCSP_SIZE;
ocspdata[1].exptime = 0;
@@ -146,13 +145,11 @@ static void start(const char *prio)
/* Init server */
gnutls_certificate_allocate_credentials(&scred);
- gnutls_certificate_set_retrieve_function3(scred,
- server_cert_callback);
+ gnutls_certificate_set_retrieve_function3(scred, server_cert_callback);
gnutls_init(&server, GNUTLS_SERVER);
gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, scred);
- assert(gnutls_priority_set_direct(server,
- prio, NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -163,7 +160,8 @@ static void start(const char *prio)
if (ret < 0)
exit(1);
- gnutls_certificate_set_verify_flags(ccred, GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
+ gnutls_certificate_set_verify_flags(ccred,
+ GNUTLS_VERIFY_DISABLE_CRL_CHECKS);
ret =
gnutls_certificate_set_x509_trust_mem(ccred, &ca3_cert,
@@ -175,20 +173,21 @@ static void start(const char *prio)
if (ret < 0)
exit(1);
- ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
- ccred);
+ ret = gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE, ccred);
if (ret < 0)
exit(1);
- assert(gnutls_priority_set_direct(client, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(client, prio, NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
HANDSHAKE(client, server);
- assert((gnutls_session_get_flags(server) & GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) != 0);
- assert((gnutls_session_get_flags(client) & GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) != 0);
+ assert((gnutls_session_get_flags(server) &
+ GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) != 0);
+ assert((gnutls_session_get_flags(client) &
+ GNUTLS_SFLAGS_CLI_REQUESTED_OCSP) != 0);
ret = gnutls_ocsp_status_request_get(client, &response);
if (ret != 0)
@@ -200,7 +199,8 @@ static void start(const char *prio)
if (gnutls_protocol_get_version(client) == GNUTLS_TLS1_3) {
ret = gnutls_ocsp_status_request_get2(client, 1, &response);
if (ret != 0)
- fail("no response was found for 1: %s\n", gnutls_strerror(ret));
+ fail("no response was found for 1: %s\n",
+ gnutls_strerror(ret));
assert(response.size == OCSP_SIZE);
assert(memcmp(response.data, OCSP_DATA, OCSP_SIZE) == 0);
diff --git a/tests/x509-cert-callback.c b/tests/x509-cert-callback.c
index 4d68d936bd..8baa22ba95 100644
--- a/tests/x509-cert-callback.c
+++ b/tests/x509-cert-callback.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -199,8 +199,7 @@ static void start(const char *prio)
gnutls_init(&server, GNUTLS_SERVER);
gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- assert(gnutls_priority_set_direct(server,
- prio, NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -230,7 +229,7 @@ static void start(const char *prio)
if (ret < 0)
exit(1);
- assert(gnutls_priority_set_direct(client, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(client, prio, NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
diff --git a/tests/x509-dn-decode-compat.c b/tests/x509-dn-decode-compat.c
index 409bd34237..9d4d45bace 100644
--- a/tests/x509-dn-decode-compat.c
+++ b/tests/x509-dn-decode-compat.c
@@ -22,7 +22,7 @@
/* This checks the old low level DN encoding and decoding routines */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,9 +33,10 @@
#include "utils.h"
-static char buf[32*1024];
+static char buf[32 * 1024];
-static void decode(const char *test_name, const gnutls_datum_t *raw, const char *expected, const char *expected_compat)
+static void decode(const char *test_name, const gnutls_datum_t * raw,
+ const char *expected, const char *expected_compat)
{
int ret;
gnutls_datum_t out;
@@ -47,11 +48,15 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
}
if (out.size != strlen(expected)) {
- test_fail("The length of the output (%d) doesn't match the expected (%d)\n", (int)out.size, (int)strlen(expected));
+ test_fail
+ ("The length of the output (%d) doesn't match the expected (%d)\n",
+ (int)out.size, (int)strlen(expected));
}
if (memcmp(out.data, expected, out.size) != 0) {
- test_fail("The string output (%s) doesn't match the expected (%s)\n", (char*)out.data, expected);
+ test_fail
+ ("The string output (%s) doesn't match the expected (%s)\n",
+ (char *)out.data, expected);
}
if (out.data[out.size] != 0) {
@@ -67,11 +72,15 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
}
if (out.size != strlen(expected_compat)) {
- test_fail("The length of the output (%d) doesn't match the expected (%d)\n", (int)out.size, (int)strlen(expected_compat));
+ test_fail
+ ("The length of the output (%d) doesn't match the expected (%d)\n",
+ (int)out.size, (int)strlen(expected_compat));
}
if (memcmp(out.data, expected_compat, out.size) != 0) {
- test_fail("The string output (%s) doesn't match the expected (%s)\n", (char*)out.data, expected_compat);
+ test_fail
+ ("The string output (%s) doesn't match the expected (%s)\n",
+ (char *)out.data, expected_compat);
}
if (out.data[out.size] != 0) {
@@ -86,15 +95,19 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
if (ret < 0) {
test_fail("%s\n", gnutls_strerror(ret));
}
- out.data = (void*)buf;
+ out.data = (void *)buf;
out.size = bsize;
if (out.size != strlen(expected_compat)) {
- test_fail("The length of the output (%d) doesn't match the expected (%d)\n", (int)out.size, (int)strlen(expected_compat));
+ test_fail
+ ("The length of the output (%d) doesn't match the expected (%d)\n",
+ (int)out.size, (int)strlen(expected_compat));
}
if (memcmp(out.data, expected_compat, out.size) != 0) {
- test_fail("The string output (%s) doesn't match the expected (%s)\n", (char*)out.data, expected_compat);
+ test_fail
+ ("The string output (%s) doesn't match the expected (%s)\n",
+ (char *)out.data, expected_compat);
}
if (out.data[out.size] != 0) {
@@ -108,43 +121,56 @@ struct tests_st {
const char *name;
gnutls_datum_t raw;
const char *str;
- const char *compat_str; /* GNUTLS_X509_DN_FLAG_COMPAT */
+ const char *compat_str; /* GNUTLS_X509_DN_FLAG_COMPAT */
unsigned can_encode;
};
struct tests_st tests[] = {
{
- .name = "simple DN",
- .str = "C=GR,ST=Attiki,O=Koko inc.,OU=sleeping dept.,UID=clauper,CN=Cindy Lauper",
- .compat_str = "CN=Cindy Lauper,UID=clauper,OU=sleeping dept.,O=Koko inc.,ST=Attiki,C=GR",
- .raw = {(void*)"\x30\x7b\x31\x15\x30\x13\x06\x03\x55\x04\x03\x13\x0c\x43\x69\x6e\x64\x79\x20\x4c\x61\x75\x70\x65\x72\x31\x17\x30\x15\x06\x0a\x09\x92\x26\x89\x93\xf2\x2c\x64\x01\x01\x13\x07\x63\x6c\x61\x75\x70\x65\x72\x31\x17\x30\x15\x06\x03\x55\x04\x0b\x13\x0e\x73\x6c\x65\x65\x70\x69\x6e\x67\x20\x64\x65\x70\x74\x2e\x31\x12\x30\x10\x06\x03\x55\x04\x0a\x13\x09\x4b\x6f\x6b\x6f\x20\x69\x6e\x63\x2e\x31\x0f\x30\x0d\x06\x03\x55\x04\x08\x13\x06\x41\x74\x74\x69\x6b\x69\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x47\x52", 125},
- },
+ .name = "simple DN",
+ .str =
+ "C=GR,ST=Attiki,O=Koko inc.,OU=sleeping dept.,UID=clauper,CN=Cindy Lauper",
+ .compat_str =
+ "CN=Cindy Lauper,UID=clauper,OU=sleeping dept.,O=Koko inc.,ST=Attiki,C=GR",
+ .raw = {(void *)
+ "\x30\x7b\x31\x15\x30\x13\x06\x03\x55\x04\x03\x13\x0c\x43\x69\x6e\x64\x79\x20\x4c\x61\x75\x70\x65\x72\x31\x17\x30\x15\x06\x0a\x09\x92\x26\x89\x93\xf2\x2c\x64\x01\x01\x13\x07\x63\x6c\x61\x75\x70\x65\x72\x31\x17\x30\x15\x06\x03\x55\x04\x0b\x13\x0e\x73\x6c\x65\x65\x70\x69\x6e\x67\x20\x64\x65\x70\x74\x2e\x31\x12\x30\x10\x06\x03\x55\x04\x0a\x13\x09\x4b\x6f\x6b\x6f\x20\x69\x6e\x63\x2e\x31\x0f\x30\x0d\x06\x03\x55\x04\x08\x13\x06\x41\x74\x74\x69\x6b\x69\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x47\x52",
+ 125},
+ },
{
- .name = "UTF8 DN",
- .str = "C=GR,ST=Αττική,O=Μεγάλη εταιρία,CN=🐨",
- .compat_str = "CN=🐨,O=Μεγάλη εταιρία,ST=Αττική,C=GR",
- .raw = {(void*)"\x30\x59\x31\x0d\x30\x0b\x06\x03\x55\x04\x03\x0c\x04\xf0\x9f\x90\xa8\x31\x24\x30\x22\x06\x03\x55\x04\x0a\x0c\x1b\xce\x9c\xce\xb5\xce\xb3\xce\xac\xce\xbb\xce\xb7\x20\xce\xb5\xcf\x84\xce\xb1\xce\xb9\xcf\x81\xce\xaf\xce\xb1\x31\x15\x30\x13\x06\x03\x55\x04\x08\x0c\x0c\xce\x91\xcf\x84\xcf\x84\xce\xb9\xce\xba\xce\xae\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x47\x52", 91},
- },
+ .name = "UTF8 DN",
+ .str = "C=GR,ST=Αττική,O=Μεγάλη εταιρία,CN=🐨",
+ .compat_str =
+ "CN=🐨,O=Μεγάλη εταιρία,ST=Αττική,C=GR",
+ .raw = {(void *)
+ "\x30\x59\x31\x0d\x30\x0b\x06\x03\x55\x04\x03\x0c\x04\xf0\x9f\x90\xa8\x31\x24\x30\x22\x06\x03\x55\x04\x0a\x0c\x1b\xce\x9c\xce\xb5\xce\xb3\xce\xac\xce\xbb\xce\xb7\x20\xce\xb5\xcf\x84\xce\xb1\xce\xb9\xcf\x81\xce\xaf\xce\xb1\x31\x15\x30\x13\x06\x03\x55\x04\x08\x0c\x0c\xce\x91\xcf\x84\xcf\x84\xce\xb9\xce\xba\xce\xae\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x47\x52",
+ 91},
+ },
{
- .name = "combo DN",
- .compat_str = "C=\\,\\ ,OU=\\ X\\ ,CN=\\#XXX",
- .str = "CN=\\#XXX,OU=\\ X\\ ,C=\\,\\ ",
- .raw = {(void*)"\x30\x2b\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x2c\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x0b\x13\x04\x20\x20\x58\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x03\x0c\x04\x23\x58\x58\x58", 45},
- },
+ .name = "combo DN",
+ .compat_str = "C=\\,\\ ,OU=\\ X\\ ,CN=\\#XXX",
+ .str = "CN=\\#XXX,OU=\\ X\\ ,C=\\,\\ ",
+ .raw = {(void *)
+ "\x30\x2b\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x2c\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x0b\x13\x04\x20\x20\x58\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x03\x0c\x04\x23\x58\x58\x58",
+ 45},
+ },
{
- .name = "very long DN",
- .compat_str = "C=ES,ST=CACERES,L=CACERES,O=DIPUTACION PROVINCIAL DE CACERES,OU=DIPUTACION PROVINCIAL DE CACERES,CN=www.dip-caceres.es,EMAIL=webmaster@dip-caceres.es,2.5.29.17=#1382304b444e532e313d6162616469612e65732c444e532e323d61626572747572612e65732c444e532e333d616365626f2e65732c444e532e343d61636568756368652e65732c444e532e353d6163656974756e612e65732c444e532e363d61686967616c2e65732c444e532e373d616c61676f6e64656c72696f2e65732c444e532e383d616c636f6c6c6172696e2e65732c444e532e393d6179746f616c62616c612e65732c444e532e31303d6179746f616c63616e746172612e65732c444e532e31313d616c637565736361722e65732c444e532e31323d616c64656163656e74656e6572612e65732c444e532e31333d616c64656164656c63616e6f2e65732c444e532e31343d6c61616c64656164656c6f626973706f2e65732c444e532e31353d616c6465616e7565766164656c61766572612e65732c444e532e31363d616c6465616e7565766164656c63616d696e6f2e65732c444e532e31373d616c64656875656c6164656c6a657274652e65732c444e532e31383d6179746f616c69612e65732c444e532e31393d616c69736564612e65732c444e532e32303d616c6d6172617a2e65732c444e532e32313d616c6d6f686172696e2e65732c444e532e32323d6179746f6172726f796f64656c616c757a2e65732c444e532e32333d6172726f796f6d6f6c696e6f732e65732c444e532e32343d6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e32353d62616e6f7364656d6f6e74656d61796f722e65732c444e532e32363d6261727261646f2e65732c444e532e32373d62656c76697364656d6f6e726f792e65732c444e532e32383d62656e71756572656e6369612e65732c444e532e32393d626572726f63616c656a6f2e65732c444e532e33303d6265727a6f63616e612e65732c444e532e33313d626f686f6e616c646569626f722e65732c444e532e33323d626f74696a612e65732c444e532e33333d62726f7a61732e65732c444e532e33343d636162616e617364656c63617374696c6c6f2e65732c444e532e33353d636162657a6162656c6c6f73612e65732c444e532e33363d636162657a75656c6164656c76616c6c652e65732c444e532e33373d6361627265726f2e65732c444e532e33383d636163686f7272696c6c612e65732c444e532e33393d636164616c736f2e65732c444e532e34303d63616c7a6164696c6c612e65732c444e532e34313d63616d696e6f6d6f726973636f2e65732c444e532e34323d63616d70696c6c6f646564656c6569746f73612e65732c444e532e34333d63616d706f6c756761722e65732c444e532e34343d63616e616d65726f2e65732c444e532e34353d63616e61766572616c2e65732c444e532e34363d63617262616a6f2e65732c444e532e34373d6361726361626f736f2e65732c444e532e34383d63617272617363616c656a6f2e65732c444e532e34393d63617361726465636163657265732e65732c444e532e35303d6361736172646570616c6f6d65726f2e65732c444e532e35313d6361736172657364656c61736875726465732e65732c444e532e35323d63617361736465646f6e616e746f6e696f2e65732c444e532e35333d63617361736465646f6e676f6d657a2e65732c444e532e35343d636173617364656c63617374616e61722e65732c444e532e35353d636173617364656c6d6f6e74652e65732c444e532e35363d636173617364656d696c6c616e2e65732c444e532e35373d636173617364656d697261766574652e65732c444e532e35383d6361736174656a6164612e65732c444e532e35393d636173696c6c61736465636f7269612e65732c444e532e36303d63617374616e6172646569626f722e65732c444e532e36313d6365636c6176696e2e65732c444e532e36323d636564696c6c6f2e65732c444e532e36333d636572657a6f2e65732c444e532e36343d63696c6c65726f732e65732c444e532e36353d636f6c6c61646f2e65732c444e532e36363d636f6e71756973746164656c617369657272612e65732c444e532e36373d636f7269612e65732c444e532e36383d637561636f73646579757374652e65732c444e532e36393d6c6163756d6272652e65732c444e532e37303d64656c6569746f73612e65732c444e532e37313d64657363617267616d617269612e65732c444e532e37323d656c6a61732e65732c444e532e37333d657363757269616c2e65732c444e532e37343d667265736e65646f736f646569626f722e65732c444e532e37353d67616c697374656f2e65732c444e532e37363d6761726369617a2e65732c444e532e37373d6c6167617267616e74612e65732c444e532e37383d67617267616e74616c616f6c6c612e65732c444e532e37393d67617267616e74696c6c612e65732c444e532e38303d67617267756572612e65732c444e532e38313d676172726f76696c6c61736465616c636f6e657461722e65732c444e532e38323d67617276696e2e65732c444e532e38333d676174612e65732c444e532e38343d6179746f656c676f72646f2e65732c444e532e38353d6c616772616e6a612e65732c444e532e38363d6c616772616e6a6164656772616e6164696c6c612e65732c444e532e38373d6179756e74616d69656e746f646567756164616c7570652e65732c444e532e38383d6775696a6f6465636f7269612e65732c444e532e38393d6775696a6f646567616c697374656f2e65732c444e532e39303d6775696a6f64656772616e6164696c6c612e65732c444e532e39313d6775696a6f646573616e7461626172626172612e65732c444e532e39323d6865726775696a75656c612e65732c444e532e39333d6865726e616e706572657a2e65732c444e532e39343d686572726572616465616c63616e746172612e65732c444e532e39353d68657272657275656c612e65732c444e532e39363d6865727661732e65732c444e532e39373d686967756572612e65732c444e532e39383d68696e6f6a616c2e65732c444e532e39393d686f6c67756572612e65732c444e532e3130303d686f796f732e65732c444e532e3130313d6875656c6167612e65732c444e532e3130323d6962616865726e616e646f2e65732c444e532e3130333d6a6172616963656a6f2e65732c444e532e3130343d6a617261697a64656c61766572612e65732c444e532e3130353d6a6172616e64696c6c6164656c61766572612e65732c444e532e3130363d6a6172696c6c612e65732c444e532e3130373d6a657274652e65732c444e532e3130383d6c616472696c6c61722e65732c444e532e3130393d6c6f67726f73616e2e65732c444e532e3131303d6c6f73617264656c61766572612e65732c444e532e3131313d6d6164726967616c656a6f2e65732c444e532e3131323d6d6164726967616c64656c61766572612e65732c444e532e3131333d6d6164726f6e6572612e65732c444e532e3131343d6d616a616461732e65732c444e532e3131353d6d616c706172746964616465636163657265732e65732c444e532e3131363d6d616c706172746964616465706c6173656e6369612e65732c444e532e3131373d6d617263686167617a2e65732c444e532e3131383d6d6174616465616c63616e746172612e65732c444e532e3131393d6d656d6272696f2e65732c444e532e3132303d6d65736173646569626f722e65732c444e532e3132313d6d69616a616461732e65732c444e532e3132323d6d696c6c616e65732e65732c444e532e3132333d6d69726162656c2e65732c444e532e3132343d6d6f686564617364656772616e6164696c6c612e65732c444e532e3132353d6d6f6e726f792e65732c444e532e3132363d6d6f6e74616e6368657a2e65732c444e532e3132373d6d6f6e74656865726d6f736f2e65732c444e532e3132383d6d6f72616c656a612e65732c444e532e3132393d6d6f7263696c6c6f2e65732c444e532e3133303d6e617661636f6e63656a6f2e65732c444e532e3133313d6e6176616c76696c6c6172646569626f722e65732c444e532e3133323d6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3133333d6e6176617364656c6d6164726f6e6f2e65732c444e532e3133343d6e6176617472617369657272612e65732c444e532e3133353d6e6176657a75656c61732e65732c444e532e3133363d6e756e6f6d6f72616c2e65732c444e532e3133373d6f6c6976616465706c6173656e6369612e65732c444e532e3133383d70616c6f6d65726f2e65732c444e532e3133393d70617361726f6e64656c61766572612e65732c444e532e3134303d706564726f736f64656163696d2e65732c444e532e3134313d706572616c65646164656c616d6174612e65732c444e532e3134323d706572616c656461646573616e726f6d616e2e65732c444e532e3134333d706572616c657364656c70756572746f2e65732c444e532e3134343d7065736375657a612e65732c444e532e3134353d6c6170657367612e65732c444e532e3134363d70696564726173616c6261732e65732c444e532e3134373d70696e6f6672616e71756561646f2e65732c444e532e3134383d70696f726e616c2e65732c444e532e3134393d706c6173656e7a75656c612e65732c444e532e3135303d706f7274616a652e65732c444e532e3135313d706f7274657a75656c6f2e65732c444e532e3135323d706f7a75656c6f64657a61727a6f6e2e65732c444e532e3135333d707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3135343d70756572746f646573616e74616372757a2e65732c444e532e3135353d7265626f6c6c61722e65732c444e532e3135363d72696f6c6f626f732e65732c444e532e3135373d726f626c6564696c6c6f6465676174612e65732c444e532e3135383d726f626c6564696c6c6f64656c61766572612e65732c444e532e3135393d726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3136303d726f626c65646f6c6c616e6f2e65732c444e532e3136313d726f6d616e676f72646f2e65732c444e532e3136323d7275616e65732e65732c444e532e3136333d73616c6f72696e6f2e65732c444e532e3136343d73616c7661746965727261646573616e746961676f2e65732c444e532e3136353d73616e6d617274696e646574726576656a6f2e65732c444e532e3136363d6179746f73616e7461616e612e65732c444e532e3136373d73616e74616372757a64656c617369657272612e65732c444e532e3136383d73616e74616372757a646570616e69616775612e65732c444e532e3136393d73616e74616d6172746164656d6167617363612e65732c444e532e3137303d73616e746961676f64656c63616d706f2e65732c444e532e3137313d73616e746962616e657a656c616c746f2e65732c444e532e3137323d73616e746962616e657a656c62616a6f2e65732c444e532e3137333d736175636564696c6c612e65732c444e532e3137343d7365677572616465746f726f2e65732c444e532e3137353d736572726164696c6c612e65732c444e532e3137363d73657272656a6f6e2e65732c444e532e3137373d73696572726164656675656e7465732e65732c444e532e3137383d74616c6176616e2e65732c444e532e3137393d74616c6176657275656c6164656c61766572612e65732c444e532e3138303d74616c617975656c612e65732c444e532e3138313d74656a65646164657469657461722e65732c444e532e3138323d746f72696c2e65732c444e532e3138333d746f726e6176616361732e65732c444e532e3138343d6179746f656c746f726e6f2e65732c444e532e3138353d746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3138363d746f72726563696c6c617364656c6174696573612e65732c444e532e3138373d746f7272656465646f6e6d696775656c2e65732c444e532e3138383d746f727265646573616e74616d617269612e65732c444e532e3138393d746f7272656a6f6e656c727562696f2e65732c444e532e3139303d746f7272656a6f6e63696c6c6f2e65732c444e532e3139313d746f7272656d656e67612e65732c444e532e3139323d746f7272656d6f6368612e65732c444e532e3139333d746f7272656f7267617a2e65732c444e532e3139343d746f7272657175656d6164612e65732c444e532e3139353d76616c64617374696c6c61732e65732c444e532e3139363d76616c646563616e6173646574616a6f2e65732c444e532e3139373d76616c64656675656e7465732e65732c444e532e3139383d76616c646568756e6361722e65732c444e532e3139393d76616c6465696e69676f732e65732c444e532e3230303d76616c64656c6163617361646574616a6f2e65732c444e532e3230313d76616c64656d6f72616c65732e65732c444e532e3230323d76616c64656f626973706f2e65732c444e532e3230333d76616c646573616c6f722e65732c444e532e3230343d76616c72696f2e65732c444e532e3230353d76616c656e6369616465616c63616e746172612e65732c444e532e3230363d76616c766572646564656c61766572612e65732c444e532e3230373d76616c766572646564656c667265736e6f2e65732c444e532e3230383d766567617669616e612e65732c444e532e3230393d7669616e64617264656c61766572612e65732c444e532e3231303d76696c6c6164656c63616d706f2e65732c444e532e3231313d76696c6c6164656c7265792e65732c444e532e3231323d76696c6c616d65736961732e65732c444e532e3231333d76696c6c616d69656c2e65732c444e532e3231343d76696c6c616e7565766164656c617369657272612e65732c444e532e3231353d76696c6c617264656c706564726f736f2e65732c444e532e3231363d76696c6c61726465706c6173656e6369612e65732c444e532e3231373d76696c6c61736275656e61736465676174612e65732c444e532e3231383d7a61727a6164656772616e6164696c6c612e65732c444e532e3231393d7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3232303d7a61727a616c616d61796f722e65732c444e532e3232313d7a6f726974612e65732c444e532e3232323d726f73616c656a6f2e65732c444e532e3232333d766567617669616e612e65732c444e532e3232343d616c61676f6e64656c72696f2e65732c444e532e3232353d7469657461722e65732c444e532e3232363d76616c646573616c6f722e65732c444e532e3232373d6e6176617472617369657272612e65732c444e532e3232383d7269766572616465667265736e65646f73612e65732c444e532e3232393d656c6d73616e67696c2e65732c444e532e3233303d74616a6f73616c6f722e65732c444e532e3233313d76616c6c65616d62726f7a2e65732c444e532e3233323d6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3233333d6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3233343d6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3233353d6d616e636f6d756e6964616464656c61766572612e65732c444e532e3233363d6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3233373d76696c6c7565726361732d69626f7265732d6a6172612e65732c444e532e3233383d7777772e6162616469612e65732c444e532e3233393d7777772e61626572747572612e65732c444e532e3234303d7777772e616365626f2e65732c444e532e3234313d7777772e61636568756368652e65732c444e532e3234323d7777772e6163656974756e612e65732c444e532e3234333d7777772e61686967616c2e65732c444e532e3234343d7777772e616c61676f6e64656c72696f2e65732c444e532e3234353d7777772e616c636f6c6c6172696e2e65732c444e532e3234363d7777772e6179746f616c62616c612e65732c444e532e3234373d7777772e6179746f616c63616e746172612e65732c444e532e3234383d7777772e616c637565736361722e65732c444e532e3234393d7777772e616c64656163656e74656e6572612e65732c444e532e3235303d7777772e616c64656164656c63616e6f2e65732c444e532e3235313d7777772e6c61616c64656164656c6f626973706f2e65732c444e532e3235323d7777772e616c6465616e7565766164656c61766572612e65732c444e532e3235333d7777772e616c6465616e7565766164656c63616d696e6f2e65732c444e532e3235343d7777772e616c64656875656c6164656c6a657274652e65732c444e532e3235353d7777772e6179746f616c69612e65732c444e532e3235363d7777772e616c69736564612e65732c444e532e3235373d7777772e616c6d6172617a2e65732c444e532e3235383d7777772e616c6d6f686172696e2e65732c444e532e3235393d7777772e6179746f6172726f796f64656c616c757a2e65732c444e532e3236303d7777772e6172726f796f6d6f6c696e6f732e65732c444e532e3236313d7777772e6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e3236323d7777772e62616e6f7364656d6f6e74656d61796f722e65732c444e532e3236333d7777772e6261727261646f2e65732c444e532e3236343d7777772e62656c76697364656d6f6e726f792e65732c444e532e3236353d7777772e62656e71756572656e6369612e65732c444e532e3236363d7777772e626572726f63616c656a6f2e65732c444e532e3236373d7777772e6265727a6f63616e612e65732c444e532e3236383d7777772e626f686f6e616c646569626f722e65732c444e532e3236393d7777772e626f74696a612e65732c444e532e3237303d7777772e62726f7a61732e65732c444e532e3237313d7777772e636162616e617364656c63617374696c6c6f2e65732c444e532e3237323d7777772e636162657a6162656c6c6f73612e65732c444e532e3237333d7777772e636162657a75656c6164656c76616c6c652e65732c444e532e3237343d7777772e6361627265726f2e65732c444e532e3237353d7777772e636163686f7272696c6c612e65732c444e532e3237363d7777772e636164616c736f2e65732c444e532e3237373d7777772e63616c7a6164696c6c612e65732c444e532e3237383d7777772e63616d696e6f6d6f726973636f2e65732c444e532e3237393d7777772e63616d70696c6c6f646564656c6569746f73612e65732c444e532e3238303d7777772e63616d706f6c756761722e65732c444e532e3238313d7777772e63616e616d65726f2e65732c444e532e3238323d7777772e63616e61766572616c2e65732c444e532e3238333d7777772e63617262616a6f2e65732c444e532e3238343d7777772e6361726361626f736f2e65732c444e532e3238353d7777772e63617272617363616c656a6f2e65732c444e532e3238363d7777772e63617361726465636163657265732e65732c444e532e3238373d7777772e6361736172646570616c6f6d65726f2e65732c444e532e3238383d7777772e6361736172657364656c61736875726465732e65732c444e532e3238393d7777772e63617361736465646f6e616e746f6e696f2e65732c444e532e3239303d7777772e63617361736465646f6e676f6d657a2e65732c444e532e3239313d7777772e636173617364656c63617374616e61722e65732c444e532e3239323d7777772e636173617364656c6d6f6e74652e65732c444e532e3239333d7777772e636173617364656d696c6c616e2e65732c444e532e3239343d7777772e636173617364656d697261766574652e65732c444e532e3239353d7777772e6361736174656a6164612e65732c444e532e3239363d7777772e636173696c6c61736465636f7269612e65732c444e532e3239373d7777772e63617374616e6172646569626f722e65732c444e532e3239383d7777772e6365636c6176696e2e65732c444e532e3239393d7777772e636564696c6c6f2e65732c444e532e3330303d7777772e636572657a6f2e65732c444e532e3330313d7777772e63696c6c65726f732e65732c444e532e3330323d7777772e636f6c6c61646f2e65732c444e532e3330333d7777772e636f6e71756973746164656c617369657272612e65732c444e532e3330343d7777772e636f7269612e65732c444e532e3330353d7777772e637561636f73646579757374652e65732c444e532e3330363d7777772e6c6163756d6272652e65732c444e532e3330373d7777772e64656c6569746f73612e65732c444e532e3330383d7777772e64657363617267616d617269612e65732c444e532e3330393d7777772e656c6a61732e65732c444e532e3331303d7777772e657363757269616c2e65732c444e532e3331313d7777772e667265736e65646f736f646569626f722e65732c444e532e3331323d7777772e67616c697374656f2e65732c444e532e3331333d7777772e6761726369617a2e65732c444e532e3331343d7777772e6c6167617267616e74612e65732c444e532e3331353d7777772e67617267616e74616c616f6c6c612e65732c444e532e3331363d7777772e67617267616e74696c6c612e65732c444e532e3331373d7777772e67617267756572612e65732c444e532e3331383d7777772e676172726f76696c6c61736465616c636f6e657461722e65732c444e532e3331393d7777772e67617276696e2e65732c444e532e3332303d7777772e676174612e65732c444e532e3332313d7777772e6179746f656c676f72646f2e65732c444e532e3332323d7777772e6c616772616e6a612e65732c444e532e3332333d7777772e6c616772616e6a6164656772616e6164696c6c612e65732c444e532e3332343d7777772e6179756e74616d69656e746f646567756164616c7570652e65732c444e532e3332353d7777772e6775696a6f6465636f7269612e65732c444e532e3332363d7777772e6775696a6f646567616c697374656f2e65732c444e532e3332373d7777772e6775696a6f64656772616e6164696c6c612e65732c444e532e3332383d7777772e6775696a6f646573616e7461626172626172612e65732c444e532e3332393d7777772e6865726775696a75656c612e65732c444e532e3333303d7777772e6865726e616e706572657a2e65732c444e532e3333313d7777772e686572726572616465616c63616e746172612e65732c444e532e3333323d7777772e68657272657275656c612e65732c444e532e3333333d7777772e6865727661732e65732c444e532e3333343d7777772e686967756572612e65732c444e532e3333353d7777772e68696e6f6a616c2e65732c444e532e3333363d7777772e686f6c67756572612e65732c444e532e3333373d7777772e686f796f732e65732c444e532e3333383d7777772e6875656c6167612e65732c444e532e3333393d7777772e6962616865726e616e646f2e65732c444e532e3334303d7777772e6a6172616963656a6f2e65732c444e532e3334313d7777772e6a617261697a64656c61766572612e65732c444e532e3334323d7777772e6a6172616e64696c6c6164656c61766572612e65732c444e532e3334333d7777772e6a6172696c6c612e65732c444e532e3334343d7777772e6a657274652e65732c444e532e3334353d7777772e6c616472696c6c61722e65732c444e532e3334363d7777772e6c6f67726f73616e2e65732c444e532e3334373d7777772e6c6f73617264656c61766572612e65732c444e532e3334383d7777772e6d6164726967616c656a6f2e65732c444e532e3334393d7777772e6d6164726967616c64656c61766572612e65732c444e532e3335303d7777772e6d6164726f6e6572612e65732c444e532e3335313d7777772e6d616a616461732e65732c444e532e3335323d7777772e6d616c706172746964616465636163657265732e65732c444e532e3335333d7777772e6d616c706172746964616465706c6173656e6369612e65732c444e532e3335343d7777772e6d617263686167617a2e65732c444e532e3335353d7777772e6d6174616465616c63616e746172612e65732c444e532e3335363d7777772e6d656d6272696f2e65732c444e532e3335373d7777772e6d65736173646569626f722e65732c444e532e3335383d7777772e6d69616a616461732e65732c444e532e3335393d7777772e6d696c6c616e65732e65732c444e532e3336303d7777772e6d69726162656c2e65732c444e532e3336313d7777772e6d6f686564617364656772616e6164696c6c612e65732c444e532e3336323d7777772e6d6f6e726f792e65732c444e532e3336333d7777772e6d6f6e74616e6368657a2e65732c444e532e3336343d7777772e6d6f6e74656865726d6f736f2e65732c444e532e3336353d7777772e6d6f72616c656a612e65732c444e532e3336363d7777772e6d6f7263696c6c6f2e65732c444e532e3336373d7777772e6e617661636f6e63656a6f2e65732c444e532e3336383d7777772e6e6176616c76696c6c6172646569626f722e65732c444e532e3336393d7777772e6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3337303d7777772e6e6176617364656c6d6164726f6e6f2e65732c444e532e3337313d7777772e6e6176617472617369657272612e65732c444e532e3337323d7777772e6e6176657a75656c61732e65732c444e532e3337333d7777772e6e756e6f6d6f72616c2e65732c444e532e3337343d7777772e6f6c6976616465706c6173656e6369612e65732c444e532e3337353d7777772e70616c6f6d65726f2e65732c444e532e3337363d7777772e70617361726f6e64656c61766572612e65732c444e532e3337373d7777772e706564726f736f64656163696d2e65732c444e532e3337383d7777772e706572616c65646164656c616d6174612e65732c444e532e3337393d7777772e706572616c656461646573616e726f6d616e2e65732c444e532e3338303d7777772e706572616c657364656c70756572746f2e65732c444e532e3338313d7777772e7065736375657a612e65732c444e532e3338323d7777772e6c6170657367612e65732c444e532e3338333d7777772e70696564726173616c6261732e65732c444e532e3338343d7777772e70696e6f6672616e71756561646f2e65732c444e532e3338353d7777772e70696f726e616c2e65732c444e532e3338363d7777772e706c6173656e7a75656c612e65732c444e532e3338373d7777772e706f7274616a652e65732c444e532e3338383d7777772e706f7274657a75656c6f2e65732c444e532e3338393d7777772e706f7a75656c6f64657a61727a6f6e2e65732c444e532e3339303d7777772e707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3339313d7777772e70756572746f646573616e74616372757a2e65732c444e532e3339323d7777772e7265626f6c6c61722e65732c444e532e3339333d7777772e72696f6c6f626f732e65732c444e532e3339343d7777772e726f626c6564696c6c6f6465676174612e65732c444e532e3339353d7777772e726f626c6564696c6c6f64656c61766572612e65732c444e532e3339363d7777772e726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3339373d7777772e726f626c65646f6c6c616e6f2e65732c444e532e3339383d7777772e726f6d616e676f72646f2e65732c444e532e3339393d7777772e7275616e65732e65732c444e532e3430303d7777772e73616c6f72696e6f2e65732c444e532e3430313d7777772e73616c7661746965727261646573616e746961676f2e65732c444e532e3430323d7777772e73616e6d617274696e646574726576656a6f2e65732c444e532e3430333d7777772e6179746f73616e7461616e612e65732c444e532e3430343d7777772e73616e74616372757a64656c617369657272612e65732c444e532e3430353d7777772e73616e74616372757a646570616e69616775612e65732c444e532e3430363d7777772e73616e74616d6172746164656d6167617363612e65732c444e532e3430373d7777772e73616e746961676f64656c63616d706f2e65732c444e532e3430383d7777772e73616e746962616e657a656c616c746f2e65732c444e532e3430393d7777772e73616e746962616e657a656c62616a6f2e65732c444e532e3431303d7777772e736175636564696c6c612e65732c444e532e3431313d7777772e7365677572616465746f726f2e65732c444e532e3431323d7777772e736572726164696c6c612e65732c444e532e3431333d7777772e73657272656a6f6e2e65732c444e532e3431343d7777772e73696572726164656675656e7465732e65732c444e532e3431353d7777772e74616c6176616e2e65732c444e532e3431363d7777772e74616c6176657275656c6164656c61766572612e65732c444e532e3431373d7777772e74616c617975656c612e65732c444e532e3431383d7777772e74656a65646164657469657461722e65732c444e532e3431393d7777772e746f72696c2e65732c444e532e3432303d7777772e746f726e6176616361732e65732c444e532e3432313d7777772e6179746f656c746f726e6f2e65732c444e532e3432323d7777772e746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3432333d7777772e746f72726563696c6c617364656c6174696573612e65732c444e532e3432343d7777772e746f7272656465646f6e6d696775656c2e65732c444e532e3432353d7777772e746f727265646573616e74616d617269612e65732c444e532e3432363d7777772e746f7272656a6f6e656c727562696f2e65732c444e532e3432373d7777772e746f7272656a6f6e63696c6c6f2e65732c444e532e3432383d7777772e746f7272656d656e67612e65732c444e532e3432393d7777772e746f7272656d6f6368612e65732c444e532e3433303d7777772e746f7272656f7267617a2e65732c444e532e3433313d7777772e746f7272657175656d6164612e65732c444e532e3433323d7777772e76616c64617374696c6c61732e65732c444e532e3433333d7777772e76616c646563616e6173646574616a6f2e65732c444e532e3433343d7777772e76616c64656675656e7465732e65732c444e532e3433353d7777772e76616c646568756e6361722e65732c444e532e3433363d7777772e76616c6465696e69676f732e65732c444e532e3433373d7777772e76616c64656c6163617361646574616a6f2e65732c444e532e3433383d7777772e76616c64656d6f72616c65732e65732c444e532e3433393d7777772e76616c64656f626973706f2e65732c444e532e3434303d7777772e76616c646573616c6f722e65732c444e532e3434313d7777772e76616c72696f2e65732c444e532e3434323d7777772e76616c656e6369616465616c63616e746172612e65732c444e532e3434333d7777772e76616c766572646564656c61766572612e65732c444e532e3434343d7777772e76616c766572646564656c667265736e6f2e65732c444e532e3434353d7777772e766567617669616e612e65732c444e532e3434363d7777772e7669616e64617264656c61766572612e65732c444e532e3434373d7777772e76696c6c6164656c63616d706f2e65732c444e532e3434383d7777772e76696c6c6164656c7265792e65732c444e532e3434393d7777772e76696c6c616d65736961732e65732c444e532e3435303d7777772e76696c6c616d69656c2e65732c444e532e3435313d7777772e76696c6c616e7565766164656c617369657272612e65732c444e532e3435323d7777772e76696c6c617264656c706564726f736f2e65732c444e532e3435333d7777772e76696c6c61726465706c6173656e6369612e65732c444e532e3435343d7777772e76696c6c61736275656e61736465676174612e65732c444e532e3435353d7777772e7a61727a6164656772616e6164696c6c612e65732c444e532e3435363d7777772e7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3435373d7777772e7a61727a616c616d61796f722e65732c444e532e3435383d7777772e7a6f726974612e65732c444e532e3435393d7777772e726f73616c656a6f2e65732c444e532e3436303d7777772e766567617669616e612e65732c444e532e3436313d7777772e616c61676f6e64656c72696f2e65732c444e532e3436323d7777772e7469657461722e65732c444e532e3436333d7777772e76616c646573616c6f722e65732c444e532e3436343d7777772e6e6176617472617369657272612e65732c444e532e3436353d7777772e7269766572616465667265736e65646f73612e65732c444e532e3436363d7777772e656c6d73616e67696c2e65732c444e532e3436373d7777772e74616a6f73616c6f722e65732c444e532e3436383d7777772e76616c6c65616d62726f7a2e65732c444e532e3436393d7777772e6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3437303d7777772e6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3437313d7777772e6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3437323d7777772e6d616e636f6d756e6964616464656c61766572612e65732c444e532e3437333d7777772e6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3437343d7777772e76696c6c7565726361732d69626f7265732d6a6172612e6573",
- .str = "2.5.29.17=#1382304b444e532e313d6162616469612e65732c444e532e323d61626572747572612e65732c444e532e333d616365626f2e65732c444e532e343d61636568756368652e65732c444e532e353d6163656974756e612e65732c444e532e363d61686967616c2e65732c444e532e373d616c61676f6e64656c72696f2e65732c444e532e383d616c636f6c6c6172696e2e65732c444e532e393d6179746f616c62616c612e65732c444e532e31303d6179746f616c63616e746172612e65732c444e532e31313d616c637565736361722e65732c444e532e31323d616c64656163656e74656e6572612e65732c444e532e31333d616c64656164656c63616e6f2e65732c444e532e31343d6c61616c64656164656c6f626973706f2e65732c444e532e31353d616c6465616e7565766164656c61766572612e65732c444e532e31363d616c6465616e7565766164656c63616d696e6f2e65732c444e532e31373d616c64656875656c6164656c6a657274652e65732c444e532e31383d6179746f616c69612e65732c444e532e31393d616c69736564612e65732c444e532e32303d616c6d6172617a2e65732c444e532e32313d616c6d6f686172696e2e65732c444e532e32323d6179746f6172726f796f64656c616c757a2e65732c444e532e32333d6172726f796f6d6f6c696e6f732e65732c444e532e32343d6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e32353d62616e6f7364656d6f6e74656d61796f722e65732c444e532e32363d6261727261646f2e65732c444e532e32373d62656c76697364656d6f6e726f792e65732c444e532e32383d62656e71756572656e6369612e65732c444e532e32393d626572726f63616c656a6f2e65732c444e532e33303d6265727a6f63616e612e65732c444e532e33313d626f686f6e616c646569626f722e65732c444e532e33323d626f74696a612e65732c444e532e33333d62726f7a61732e65732c444e532e33343d636162616e617364656c63617374696c6c6f2e65732c444e532e33353d636162657a6162656c6c6f73612e65732c444e532e33363d636162657a75656c6164656c76616c6c652e65732c444e532e33373d6361627265726f2e65732c444e532e33383d636163686f7272696c6c612e65732c444e532e33393d636164616c736f2e65732c444e532e34303d63616c7a6164696c6c612e65732c444e532e34313d63616d696e6f6d6f726973636f2e65732c444e532e34323d63616d70696c6c6f646564656c6569746f73612e65732c444e532e34333d63616d706f6c756761722e65732c444e532e34343d63616e616d65726f2e65732c444e532e34353d63616e61766572616c2e65732c444e532e34363d63617262616a6f2e65732c444e532e34373d6361726361626f736f2e65732c444e532e34383d63617272617363616c656a6f2e65732c444e532e34393d63617361726465636163657265732e65732c444e532e35303d6361736172646570616c6f6d65726f2e65732c444e532e35313d6361736172657364656c61736875726465732e65732c444e532e35323d63617361736465646f6e616e746f6e696f2e65732c444e532e35333d63617361736465646f6e676f6d657a2e65732c444e532e35343d636173617364656c63617374616e61722e65732c444e532e35353d636173617364656c6d6f6e74652e65732c444e532e35363d636173617364656d696c6c616e2e65732c444e532e35373d636173617364656d697261766574652e65732c444e532e35383d6361736174656a6164612e65732c444e532e35393d636173696c6c61736465636f7269612e65732c444e532e36303d63617374616e6172646569626f722e65732c444e532e36313d6365636c6176696e2e65732c444e532e36323d636564696c6c6f2e65732c444e532e36333d636572657a6f2e65732c444e532e36343d63696c6c65726f732e65732c444e532e36353d636f6c6c61646f2e65732c444e532e36363d636f6e71756973746164656c617369657272612e65732c444e532e36373d636f7269612e65732c444e532e36383d637561636f73646579757374652e65732c444e532e36393d6c6163756d6272652e65732c444e532e37303d64656c6569746f73612e65732c444e532e37313d64657363617267616d617269612e65732c444e532e37323d656c6a61732e65732c444e532e37333d657363757269616c2e65732c444e532e37343d667265736e65646f736f646569626f722e65732c444e532e37353d67616c697374656f2e65732c444e532e37363d6761726369617a2e65732c444e532e37373d6c6167617267616e74612e65732c444e532e37383d67617267616e74616c616f6c6c612e65732c444e532e37393d67617267616e74696c6c612e65732c444e532e38303d67617267756572612e65732c444e532e38313d676172726f76696c6c61736465616c636f6e657461722e65732c444e532e38323d67617276696e2e65732c444e532e38333d676174612e65732c444e532e38343d6179746f656c676f72646f2e65732c444e532e38353d6c616772616e6a612e65732c444e532e38363d6c616772616e6a6164656772616e6164696c6c612e65732c444e532e38373d6179756e74616d69656e746f646567756164616c7570652e65732c444e532e38383d6775696a6f6465636f7269612e65732c444e532e38393d6775696a6f646567616c697374656f2e65732c444e532e39303d6775696a6f64656772616e6164696c6c612e65732c444e532e39313d6775696a6f646573616e7461626172626172612e65732c444e532e39323d6865726775696a75656c612e65732c444e532e39333d6865726e616e706572657a2e65732c444e532e39343d686572726572616465616c63616e746172612e65732c444e532e39353d68657272657275656c612e65732c444e532e39363d6865727661732e65732c444e532e39373d686967756572612e65732c444e532e39383d68696e6f6a616c2e65732c444e532e39393d686f6c67756572612e65732c444e532e3130303d686f796f732e65732c444e532e3130313d6875656c6167612e65732c444e532e3130323d6962616865726e616e646f2e65732c444e532e3130333d6a6172616963656a6f2e65732c444e532e3130343d6a617261697a64656c61766572612e65732c444e532e3130353d6a6172616e64696c6c6164656c61766572612e65732c444e532e3130363d6a6172696c6c612e65732c444e532e3130373d6a657274652e65732c444e532e3130383d6c616472696c6c61722e65732c444e532e3130393d6c6f67726f73616e2e65732c444e532e3131303d6c6f73617264656c61766572612e65732c444e532e3131313d6d6164726967616c656a6f2e65732c444e532e3131323d6d6164726967616c64656c61766572612e65732c444e532e3131333d6d6164726f6e6572612e65732c444e532e3131343d6d616a616461732e65732c444e532e3131353d6d616c706172746964616465636163657265732e65732c444e532e3131363d6d616c706172746964616465706c6173656e6369612e65732c444e532e3131373d6d617263686167617a2e65732c444e532e3131383d6d6174616465616c63616e746172612e65732c444e532e3131393d6d656d6272696f2e65732c444e532e3132303d6d65736173646569626f722e65732c444e532e3132313d6d69616a616461732e65732c444e532e3132323d6d696c6c616e65732e65732c444e532e3132333d6d69726162656c2e65732c444e532e3132343d6d6f686564617364656772616e6164696c6c612e65732c444e532e3132353d6d6f6e726f792e65732c444e532e3132363d6d6f6e74616e6368657a2e65732c444e532e3132373d6d6f6e74656865726d6f736f2e65732c444e532e3132383d6d6f72616c656a612e65732c444e532e3132393d6d6f7263696c6c6f2e65732c444e532e3133303d6e617661636f6e63656a6f2e65732c444e532e3133313d6e6176616c76696c6c6172646569626f722e65732c444e532e3133323d6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3133333d6e6176617364656c6d6164726f6e6f2e65732c444e532e3133343d6e6176617472617369657272612e65732c444e532e3133353d6e6176657a75656c61732e65732c444e532e3133363d6e756e6f6d6f72616c2e65732c444e532e3133373d6f6c6976616465706c6173656e6369612e65732c444e532e3133383d70616c6f6d65726f2e65732c444e532e3133393d70617361726f6e64656c61766572612e65732c444e532e3134303d706564726f736f64656163696d2e65732c444e532e3134313d706572616c65646164656c616d6174612e65732c444e532e3134323d706572616c656461646573616e726f6d616e2e65732c444e532e3134333d706572616c657364656c70756572746f2e65732c444e532e3134343d7065736375657a612e65732c444e532e3134353d6c6170657367612e65732c444e532e3134363d70696564726173616c6261732e65732c444e532e3134373d70696e6f6672616e71756561646f2e65732c444e532e3134383d70696f726e616c2e65732c444e532e3134393d706c6173656e7a75656c612e65732c444e532e3135303d706f7274616a652e65732c444e532e3135313d706f7274657a75656c6f2e65732c444e532e3135323d706f7a75656c6f64657a61727a6f6e2e65732c444e532e3135333d707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3135343d70756572746f646573616e74616372757a2e65732c444e532e3135353d7265626f6c6c61722e65732c444e532e3135363d72696f6c6f626f732e65732c444e532e3135373d726f626c6564696c6c6f6465676174612e65732c444e532e3135383d726f626c6564696c6c6f64656c61766572612e65732c444e532e3135393d726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3136303d726f626c65646f6c6c616e6f2e65732c444e532e3136313d726f6d616e676f72646f2e65732c444e532e3136323d7275616e65732e65732c444e532e3136333d73616c6f72696e6f2e65732c444e532e3136343d73616c7661746965727261646573616e746961676f2e65732c444e532e3136353d73616e6d617274696e646574726576656a6f2e65732c444e532e3136363d6179746f73616e7461616e612e65732c444e532e3136373d73616e74616372757a64656c617369657272612e65732c444e532e3136383d73616e74616372757a646570616e69616775612e65732c444e532e3136393d73616e74616d6172746164656d6167617363612e65732c444e532e3137303d73616e746961676f64656c63616d706f2e65732c444e532e3137313d73616e746962616e657a656c616c746f2e65732c444e532e3137323d73616e746962616e657a656c62616a6f2e65732c444e532e3137333d736175636564696c6c612e65732c444e532e3137343d7365677572616465746f726f2e65732c444e532e3137353d736572726164696c6c612e65732c444e532e3137363d73657272656a6f6e2e65732c444e532e3137373d73696572726164656675656e7465732e65732c444e532e3137383d74616c6176616e2e65732c444e532e3137393d74616c6176657275656c6164656c61766572612e65732c444e532e3138303d74616c617975656c612e65732c444e532e3138313d74656a65646164657469657461722e65732c444e532e3138323d746f72696c2e65732c444e532e3138333d746f726e6176616361732e65732c444e532e3138343d6179746f656c746f726e6f2e65732c444e532e3138353d746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3138363d746f72726563696c6c617364656c6174696573612e65732c444e532e3138373d746f7272656465646f6e6d696775656c2e65732c444e532e3138383d746f727265646573616e74616d617269612e65732c444e532e3138393d746f7272656a6f6e656c727562696f2e65732c444e532e3139303d746f7272656a6f6e63696c6c6f2e65732c444e532e3139313d746f7272656d656e67612e65732c444e532e3139323d746f7272656d6f6368612e65732c444e532e3139333d746f7272656f7267617a2e65732c444e532e3139343d746f7272657175656d6164612e65732c444e532e3139353d76616c64617374696c6c61732e65732c444e532e3139363d76616c646563616e6173646574616a6f2e65732c444e532e3139373d76616c64656675656e7465732e65732c444e532e3139383d76616c646568756e6361722e65732c444e532e3139393d76616c6465696e69676f732e65732c444e532e3230303d76616c64656c6163617361646574616a6f2e65732c444e532e3230313d76616c64656d6f72616c65732e65732c444e532e3230323d76616c64656f626973706f2e65732c444e532e3230333d76616c646573616c6f722e65732c444e532e3230343d76616c72696f2e65732c444e532e3230353d76616c656e6369616465616c63616e746172612e65732c444e532e3230363d76616c766572646564656c61766572612e65732c444e532e3230373d76616c766572646564656c667265736e6f2e65732c444e532e3230383d766567617669616e612e65732c444e532e3230393d7669616e64617264656c61766572612e65732c444e532e3231303d76696c6c6164656c63616d706f2e65732c444e532e3231313d76696c6c6164656c7265792e65732c444e532e3231323d76696c6c616d65736961732e65732c444e532e3231333d76696c6c616d69656c2e65732c444e532e3231343d76696c6c616e7565766164656c617369657272612e65732c444e532e3231353d76696c6c617264656c706564726f736f2e65732c444e532e3231363d76696c6c61726465706c6173656e6369612e65732c444e532e3231373d76696c6c61736275656e61736465676174612e65732c444e532e3231383d7a61727a6164656772616e6164696c6c612e65732c444e532e3231393d7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3232303d7a61727a616c616d61796f722e65732c444e532e3232313d7a6f726974612e65732c444e532e3232323d726f73616c656a6f2e65732c444e532e3232333d766567617669616e612e65732c444e532e3232343d616c61676f6e64656c72696f2e65732c444e532e3232353d7469657461722e65732c444e532e3232363d76616c646573616c6f722e65732c444e532e3232373d6e6176617472617369657272612e65732c444e532e3232383d7269766572616465667265736e65646f73612e65732c444e532e3232393d656c6d73616e67696c2e65732c444e532e3233303d74616a6f73616c6f722e65732c444e532e3233313d76616c6c65616d62726f7a2e65732c444e532e3233323d6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3233333d6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3233343d6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3233353d6d616e636f6d756e6964616464656c61766572612e65732c444e532e3233363d6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3233373d76696c6c7565726361732d69626f7265732d6a6172612e65732c444e532e3233383d7777772e6162616469612e65732c444e532e3233393d7777772e61626572747572612e65732c444e532e3234303d7777772e616365626f2e65732c444e532e3234313d7777772e61636568756368652e65732c444e532e3234323d7777772e6163656974756e612e65732c444e532e3234333d7777772e61686967616c2e65732c444e532e3234343d7777772e616c61676f6e64656c72696f2e65732c444e532e3234353d7777772e616c636f6c6c6172696e2e65732c444e532e3234363d7777772e6179746f616c62616c612e65732c444e532e3234373d7777772e6179746f616c63616e746172612e65732c444e532e3234383d7777772e616c637565736361722e65732c444e532e3234393d7777772e616c64656163656e74656e6572612e65732c444e532e3235303d7777772e616c64656164656c63616e6f2e65732c444e532e3235313d7777772e6c61616c64656164656c6f626973706f2e65732c444e532e3235323d7777772e616c6465616e7565766164656c61766572612e65732c444e532e3235333d7777772e616c6465616e7565766164656c63616d696e6f2e65732c444e532e3235343d7777772e616c64656875656c6164656c6a657274652e65732c444e532e3235353d7777772e6179746f616c69612e65732c444e532e3235363d7777772e616c69736564612e65732c444e532e3235373d7777772e616c6d6172617a2e65732c444e532e3235383d7777772e616c6d6f686172696e2e65732c444e532e3235393d7777772e6179746f6172726f796f64656c616c757a2e65732c444e532e3236303d7777772e6172726f796f6d6f6c696e6f732e65732c444e532e3236313d7777772e6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e3236323d7777772e62616e6f7364656d6f6e74656d61796f722e65732c444e532e3236333d7777772e6261727261646f2e65732c444e532e3236343d7777772e62656c76697364656d6f6e726f792e65732c444e532e3236353d7777772e62656e71756572656e6369612e65732c444e532e3236363d7777772e626572726f63616c656a6f2e65732c444e532e3236373d7777772e6265727a6f63616e612e65732c444e532e3236383d7777772e626f686f6e616c646569626f722e65732c444e532e3236393d7777772e626f74696a612e65732c444e532e3237303d7777772e62726f7a61732e65732c444e532e3237313d7777772e636162616e617364656c63617374696c6c6f2e65732c444e532e3237323d7777772e636162657a6162656c6c6f73612e65732c444e532e3237333d7777772e636162657a75656c6164656c76616c6c652e65732c444e532e3237343d7777772e6361627265726f2e65732c444e532e3237353d7777772e636163686f7272696c6c612e65732c444e532e3237363d7777772e636164616c736f2e65732c444e532e3237373d7777772e63616c7a6164696c6c612e65732c444e532e3237383d7777772e63616d696e6f6d6f726973636f2e65732c444e532e3237393d7777772e63616d70696c6c6f646564656c6569746f73612e65732c444e532e3238303d7777772e63616d706f6c756761722e65732c444e532e3238313d7777772e63616e616d65726f2e65732c444e532e3238323d7777772e63616e61766572616c2e65732c444e532e3238333d7777772e63617262616a6f2e65732c444e532e3238343d7777772e6361726361626f736f2e65732c444e532e3238353d7777772e63617272617363616c656a6f2e65732c444e532e3238363d7777772e63617361726465636163657265732e65732c444e532e3238373d7777772e6361736172646570616c6f6d65726f2e65732c444e532e3238383d7777772e6361736172657364656c61736875726465732e65732c444e532e3238393d7777772e63617361736465646f6e616e746f6e696f2e65732c444e532e3239303d7777772e63617361736465646f6e676f6d657a2e65732c444e532e3239313d7777772e636173617364656c63617374616e61722e65732c444e532e3239323d7777772e636173617364656c6d6f6e74652e65732c444e532e3239333d7777772e636173617364656d696c6c616e2e65732c444e532e3239343d7777772e636173617364656d697261766574652e65732c444e532e3239353d7777772e6361736174656a6164612e65732c444e532e3239363d7777772e636173696c6c61736465636f7269612e65732c444e532e3239373d7777772e63617374616e6172646569626f722e65732c444e532e3239383d7777772e6365636c6176696e2e65732c444e532e3239393d7777772e636564696c6c6f2e65732c444e532e3330303d7777772e636572657a6f2e65732c444e532e3330313d7777772e63696c6c65726f732e65732c444e532e3330323d7777772e636f6c6c61646f2e65732c444e532e3330333d7777772e636f6e71756973746164656c617369657272612e65732c444e532e3330343d7777772e636f7269612e65732c444e532e3330353d7777772e637561636f73646579757374652e65732c444e532e3330363d7777772e6c6163756d6272652e65732c444e532e3330373d7777772e64656c6569746f73612e65732c444e532e3330383d7777772e64657363617267616d617269612e65732c444e532e3330393d7777772e656c6a61732e65732c444e532e3331303d7777772e657363757269616c2e65732c444e532e3331313d7777772e667265736e65646f736f646569626f722e65732c444e532e3331323d7777772e67616c697374656f2e65732c444e532e3331333d7777772e6761726369617a2e65732c444e532e3331343d7777772e6c6167617267616e74612e65732c444e532e3331353d7777772e67617267616e74616c616f6c6c612e65732c444e532e3331363d7777772e67617267616e74696c6c612e65732c444e532e3331373d7777772e67617267756572612e65732c444e532e3331383d7777772e676172726f76696c6c61736465616c636f6e657461722e65732c444e532e3331393d7777772e67617276696e2e65732c444e532e3332303d7777772e676174612e65732c444e532e3332313d7777772e6179746f656c676f72646f2e65732c444e532e3332323d7777772e6c616772616e6a612e65732c444e532e3332333d7777772e6c616772616e6a6164656772616e6164696c6c612e65732c444e532e3332343d7777772e6179756e74616d69656e746f646567756164616c7570652e65732c444e532e3332353d7777772e6775696a6f6465636f7269612e65732c444e532e3332363d7777772e6775696a6f646567616c697374656f2e65732c444e532e3332373d7777772e6775696a6f64656772616e6164696c6c612e65732c444e532e3332383d7777772e6775696a6f646573616e7461626172626172612e65732c444e532e3332393d7777772e6865726775696a75656c612e65732c444e532e3333303d7777772e6865726e616e706572657a2e65732c444e532e3333313d7777772e686572726572616465616c63616e746172612e65732c444e532e3333323d7777772e68657272657275656c612e65732c444e532e3333333d7777772e6865727661732e65732c444e532e3333343d7777772e686967756572612e65732c444e532e3333353d7777772e68696e6f6a616c2e65732c444e532e3333363d7777772e686f6c67756572612e65732c444e532e3333373d7777772e686f796f732e65732c444e532e3333383d7777772e6875656c6167612e65732c444e532e3333393d7777772e6962616865726e616e646f2e65732c444e532e3334303d7777772e6a6172616963656a6f2e65732c444e532e3334313d7777772e6a617261697a64656c61766572612e65732c444e532e3334323d7777772e6a6172616e64696c6c6164656c61766572612e65732c444e532e3334333d7777772e6a6172696c6c612e65732c444e532e3334343d7777772e6a657274652e65732c444e532e3334353d7777772e6c616472696c6c61722e65732c444e532e3334363d7777772e6c6f67726f73616e2e65732c444e532e3334373d7777772e6c6f73617264656c61766572612e65732c444e532e3334383d7777772e6d6164726967616c656a6f2e65732c444e532e3334393d7777772e6d6164726967616c64656c61766572612e65732c444e532e3335303d7777772e6d6164726f6e6572612e65732c444e532e3335313d7777772e6d616a616461732e65732c444e532e3335323d7777772e6d616c706172746964616465636163657265732e65732c444e532e3335333d7777772e6d616c706172746964616465706c6173656e6369612e65732c444e532e3335343d7777772e6d617263686167617a2e65732c444e532e3335353d7777772e6d6174616465616c63616e746172612e65732c444e532e3335363d7777772e6d656d6272696f2e65732c444e532e3335373d7777772e6d65736173646569626f722e65732c444e532e3335383d7777772e6d69616a616461732e65732c444e532e3335393d7777772e6d696c6c616e65732e65732c444e532e3336303d7777772e6d69726162656c2e65732c444e532e3336313d7777772e6d6f686564617364656772616e6164696c6c612e65732c444e532e3336323d7777772e6d6f6e726f792e65732c444e532e3336333d7777772e6d6f6e74616e6368657a2e65732c444e532e3336343d7777772e6d6f6e74656865726d6f736f2e65732c444e532e3336353d7777772e6d6f72616c656a612e65732c444e532e3336363d7777772e6d6f7263696c6c6f2e65732c444e532e3336373d7777772e6e617661636f6e63656a6f2e65732c444e532e3336383d7777772e6e6176616c76696c6c6172646569626f722e65732c444e532e3336393d7777772e6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3337303d7777772e6e6176617364656c6d6164726f6e6f2e65732c444e532e3337313d7777772e6e6176617472617369657272612e65732c444e532e3337323d7777772e6e6176657a75656c61732e65732c444e532e3337333d7777772e6e756e6f6d6f72616c2e65732c444e532e3337343d7777772e6f6c6976616465706c6173656e6369612e65732c444e532e3337353d7777772e70616c6f6d65726f2e65732c444e532e3337363d7777772e70617361726f6e64656c61766572612e65732c444e532e3337373d7777772e706564726f736f64656163696d2e65732c444e532e3337383d7777772e706572616c65646164656c616d6174612e65732c444e532e3337393d7777772e706572616c656461646573616e726f6d616e2e65732c444e532e3338303d7777772e706572616c657364656c70756572746f2e65732c444e532e3338313d7777772e7065736375657a612e65732c444e532e3338323d7777772e6c6170657367612e65732c444e532e3338333d7777772e70696564726173616c6261732e65732c444e532e3338343d7777772e70696e6f6672616e71756561646f2e65732c444e532e3338353d7777772e70696f726e616c2e65732c444e532e3338363d7777772e706c6173656e7a75656c612e65732c444e532e3338373d7777772e706f7274616a652e65732c444e532e3338383d7777772e706f7274657a75656c6f2e65732c444e532e3338393d7777772e706f7a75656c6f64657a61727a6f6e2e65732c444e532e3339303d7777772e707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3339313d7777772e70756572746f646573616e74616372757a2e65732c444e532e3339323d7777772e7265626f6c6c61722e65732c444e532e3339333d7777772e72696f6c6f626f732e65732c444e532e3339343d7777772e726f626c6564696c6c6f6465676174612e65732c444e532e3339353d7777772e726f626c6564696c6c6f64656c61766572612e65732c444e532e3339363d7777772e726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3339373d7777772e726f626c65646f6c6c616e6f2e65732c444e532e3339383d7777772e726f6d616e676f72646f2e65732c444e532e3339393d7777772e7275616e65732e65732c444e532e3430303d7777772e73616c6f72696e6f2e65732c444e532e3430313d7777772e73616c7661746965727261646573616e746961676f2e65732c444e532e3430323d7777772e73616e6d617274696e646574726576656a6f2e65732c444e532e3430333d7777772e6179746f73616e7461616e612e65732c444e532e3430343d7777772e73616e74616372757a64656c617369657272612e65732c444e532e3430353d7777772e73616e74616372757a646570616e69616775612e65732c444e532e3430363d7777772e73616e74616d6172746164656d6167617363612e65732c444e532e3430373d7777772e73616e746961676f64656c63616d706f2e65732c444e532e3430383d7777772e73616e746962616e657a656c616c746f2e65732c444e532e3430393d7777772e73616e746962616e657a656c62616a6f2e65732c444e532e3431303d7777772e736175636564696c6c612e65732c444e532e3431313d7777772e7365677572616465746f726f2e65732c444e532e3431323d7777772e736572726164696c6c612e65732c444e532e3431333d7777772e73657272656a6f6e2e65732c444e532e3431343d7777772e73696572726164656675656e7465732e65732c444e532e3431353d7777772e74616c6176616e2e65732c444e532e3431363d7777772e74616c6176657275656c6164656c61766572612e65732c444e532e3431373d7777772e74616c617975656c612e65732c444e532e3431383d7777772e74656a65646164657469657461722e65732c444e532e3431393d7777772e746f72696c2e65732c444e532e3432303d7777772e746f726e6176616361732e65732c444e532e3432313d7777772e6179746f656c746f726e6f2e65732c444e532e3432323d7777772e746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3432333d7777772e746f72726563696c6c617364656c6174696573612e65732c444e532e3432343d7777772e746f7272656465646f6e6d696775656c2e65732c444e532e3432353d7777772e746f727265646573616e74616d617269612e65732c444e532e3432363d7777772e746f7272656a6f6e656c727562696f2e65732c444e532e3432373d7777772e746f7272656a6f6e63696c6c6f2e65732c444e532e3432383d7777772e746f7272656d656e67612e65732c444e532e3432393d7777772e746f7272656d6f6368612e65732c444e532e3433303d7777772e746f7272656f7267617a2e65732c444e532e3433313d7777772e746f7272657175656d6164612e65732c444e532e3433323d7777772e76616c64617374696c6c61732e65732c444e532e3433333d7777772e76616c646563616e6173646574616a6f2e65732c444e532e3433343d7777772e76616c64656675656e7465732e65732c444e532e3433353d7777772e76616c646568756e6361722e65732c444e532e3433363d7777772e76616c6465696e69676f732e65732c444e532e3433373d7777772e76616c64656c6163617361646574616a6f2e65732c444e532e3433383d7777772e76616c64656d6f72616c65732e65732c444e532e3433393d7777772e76616c64656f626973706f2e65732c444e532e3434303d7777772e76616c646573616c6f722e65732c444e532e3434313d7777772e76616c72696f2e65732c444e532e3434323d7777772e76616c656e6369616465616c63616e746172612e65732c444e532e3434333d7777772e76616c766572646564656c61766572612e65732c444e532e3434343d7777772e76616c766572646564656c667265736e6f2e65732c444e532e3434353d7777772e766567617669616e612e65732c444e532e3434363d7777772e7669616e64617264656c61766572612e65732c444e532e3434373d7777772e76696c6c6164656c63616d706f2e65732c444e532e3434383d7777772e76696c6c6164656c7265792e65732c444e532e3434393d7777772e76696c6c616d65736961732e65732c444e532e3435303d7777772e76696c6c616d69656c2e65732c444e532e3435313d7777772e76696c6c616e7565766164656c617369657272612e65732c444e532e3435323d7777772e76696c6c617264656c706564726f736f2e65732c444e532e3435333d7777772e76696c6c61726465706c6173656e6369612e65732c444e532e3435343d7777772e76696c6c61736275656e61736465676174612e65732c444e532e3435353d7777772e7a61727a6164656772616e6164696c6c612e65732c444e532e3435363d7777772e7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3435373d7777772e7a61727a616c616d61796f722e65732c444e532e3435383d7777772e7a6f726974612e65732c444e532e3435393d7777772e726f73616c656a6f2e65732c444e532e3436303d7777772e766567617669616e612e65732c444e532e3436313d7777772e616c61676f6e64656c72696f2e65732c444e532e3436323d7777772e7469657461722e65732c444e532e3436333d7777772e76616c646573616c6f722e65732c444e532e3436343d7777772e6e6176617472617369657272612e65732c444e532e3436353d7777772e7269766572616465667265736e65646f73612e65732c444e532e3436363d7777772e656c6d73616e67696c2e65732c444e532e3436373d7777772e74616a6f73616c6f722e65732c444e532e3436383d7777772e76616c6c65616d62726f7a2e65732c444e532e3436393d7777772e6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3437303d7777772e6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3437313d7777772e6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3437323d7777772e6d616e636f6d756e6964616464656c61766572612e65732c444e532e3437333d7777772e6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3437343d7777772e76696c6c7565726361732d69626f7265732d6a6172612e6573,EMAIL=webmaster@dip-caceres.es,CN=www.dip-caceres.es,OU=DIPUTACION PROVINCIAL DE CACERES,O=DIPUTACION PROVINCIAL DE CACERES,L=CACERES,ST=CACERES,C=ES",
- .raw = {(void*)"\x30\x82\x31\x29\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x45\x53\x31\x10\x30\x0e\x06\x03\x55\x04\x08\x13\x07\x43\x41\x43\x45\x52\x45\x53\x31\x10\x30\x0e\x06\x03\x55\x04\x07\x13\x07\x43\x41\x43\x45\x52\x45\x53\x31\x29\x30\x27\x06\x03\x55\x04\x0a\x13\x20\x44\x49\x50\x55\x54\x41\x43\x49\x4f\x4e\x20\x50\x52\x4f\x56\x49\x4e\x43\x49\x41\x4c\x20\x44\x45\x20\x43\x41\x43\x45\x52\x45\x53\x31\x29\x30\x27\x06\x03\x55\x04\x0b\x13\x20\x44\x49\x50\x55\x54\x41\x43\x49\x4f\x4e\x20\x50\x52\x4f\x56\x49\x4e\x43\x49\x41\x4c\x20\x44\x45\x20\x43\x41\x43\x45\x52\x45\x53\x31\x1b\x30\x19\x06\x03\x55\x04\x03\x13\x12\x77\x77\x77\x2e\x64\x69\x70\x2d\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x31\x27\x30\x25\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x09\x01\x16\x18\x77\x65\x62\x6d\x61\x73\x74\x65\x72\x40\x64\x69\x70\x2d\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x31\x82\x30\x58\x30\x82\x30\x54\x06\x03\x55\x1d\x11\x13\x82\x30\x4b\x44\x4e\x53\x2e\x31\x3d\x61\x62\x61\x64\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x3d\x61\x62\x65\x72\x74\x75\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x3d\x61\x63\x65\x62\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x3d\x61\x63\x65\x68\x75\x63\x68\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x3d\x61\x63\x65\x69\x74\x75\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x3d\x61\x68\x69\x67\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x3d\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x3d\x61\x6c\x63\x6f\x6c\x6c\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x3d\x61\x79\x74\x6f\x61\x6c\x62\x61\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x3d\x61\x79\x74\x6f\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x3d\x61\x6c\x63\x75\x65\x73\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x3d\x61\x6c\x64\x65\x61\x63\x65\x6e\x74\x65\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x3d\x61\x6c\x64\x65\x61\x64\x65\x6c\x63\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x3d\x6c\x61\x61\x6c\x64\x65\x61\x64\x65\x6c\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x3d\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x3d\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x63\x61\x6d\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x3d\x61\x6c\x64\x65\x68\x75\x65\x6c\x61\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x3d\x61\x79\x74\x6f\x61\x6c\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x3d\x61\x6c\x69\x73\x65\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x3d\x61\x6c\x6d\x61\x72\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x3d\x61\x6c\x6d\x6f\x68\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x3d\x61\x79\x74\x6f\x61\x72\x72\x6f\x79\x6f\x64\x65\x6c\x61\x6c\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x3d\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x3d\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x3d\x62\x61\x6e\x6f\x73\x64\x65\x6d\x6f\x6e\x74\x65\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x3d\x62\x61\x72\x72\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x3d\x62\x65\x6c\x76\x69\x73\x64\x65\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x3d\x62\x65\x6e\x71\x75\x65\x72\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x3d\x62\x65\x72\x72\x6f\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x3d\x62\x65\x72\x7a\x6f\x63\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x3d\x62\x6f\x68\x6f\x6e\x61\x6c\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x3d\x62\x6f\x74\x69\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x3d\x62\x72\x6f\x7a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x3d\x63\x61\x62\x61\x6e\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x3d\x63\x61\x62\x65\x7a\x61\x62\x65\x6c\x6c\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x3d\x63\x61\x62\x65\x7a\x75\x65\x6c\x61\x64\x65\x6c\x76\x61\x6c\x6c\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x3d\x63\x61\x62\x72\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x3d\x63\x61\x63\x68\x6f\x72\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x3d\x63\x61\x64\x61\x6c\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x3d\x63\x61\x6c\x7a\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x3d\x63\x61\x6d\x69\x6e\x6f\x6d\x6f\x72\x69\x73\x63\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x3d\x63\x61\x6d\x70\x69\x6c\x6c\x6f\x64\x65\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x3d\x63\x61\x6d\x70\x6f\x6c\x75\x67\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x3d\x63\x61\x6e\x61\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x3d\x63\x61\x6e\x61\x76\x65\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x3d\x63\x61\x72\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x3d\x63\x61\x72\x63\x61\x62\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x38\x3d\x63\x61\x72\x72\x61\x73\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x39\x3d\x63\x61\x73\x61\x72\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x30\x3d\x63\x61\x73\x61\x72\x64\x65\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x31\x3d\x63\x61\x73\x61\x72\x65\x73\x64\x65\x6c\x61\x73\x68\x75\x72\x64\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x32\x3d\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x61\x6e\x74\x6f\x6e\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x33\x3d\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x67\x6f\x6d\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x34\x3d\x63\x61\x73\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x61\x6e\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x35\x3d\x63\x61\x73\x61\x73\x64\x65\x6c\x6d\x6f\x6e\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x36\x3d\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x6c\x6c\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x37\x3d\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x72\x61\x76\x65\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x38\x3d\x63\x61\x73\x61\x74\x65\x6a\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x39\x3d\x63\x61\x73\x69\x6c\x6c\x61\x73\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x30\x3d\x63\x61\x73\x74\x61\x6e\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x31\x3d\x63\x65\x63\x6c\x61\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x32\x3d\x63\x65\x64\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x33\x3d\x63\x65\x72\x65\x7a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x34\x3d\x63\x69\x6c\x6c\x65\x72\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x35\x3d\x63\x6f\x6c\x6c\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x36\x3d\x63\x6f\x6e\x71\x75\x69\x73\x74\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x37\x3d\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x38\x3d\x63\x75\x61\x63\x6f\x73\x64\x65\x79\x75\x73\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x39\x3d\x6c\x61\x63\x75\x6d\x62\x72\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x30\x3d\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x31\x3d\x64\x65\x73\x63\x61\x72\x67\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x32\x3d\x65\x6c\x6a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x33\x3d\x65\x73\x63\x75\x72\x69\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x34\x3d\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x6f\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x35\x3d\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x36\x3d\x67\x61\x72\x63\x69\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x37\x3d\x6c\x61\x67\x61\x72\x67\x61\x6e\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x38\x3d\x67\x61\x72\x67\x61\x6e\x74\x61\x6c\x61\x6f\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x39\x3d\x67\x61\x72\x67\x61\x6e\x74\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x30\x3d\x67\x61\x72\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x31\x3d\x67\x61\x72\x72\x6f\x76\x69\x6c\x6c\x61\x73\x64\x65\x61\x6c\x63\x6f\x6e\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x32\x3d\x67\x61\x72\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x33\x3d\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x34\x3d\x61\x79\x74\x6f\x65\x6c\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x35\x3d\x6c\x61\x67\x72\x61\x6e\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x36\x3d\x6c\x61\x67\x72\x61\x6e\x6a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x37\x3d\x61\x79\x75\x6e\x74\x61\x6d\x69\x65\x6e\x74\x6f\x64\x65\x67\x75\x61\x64\x61\x6c\x75\x70\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x38\x3d\x67\x75\x69\x6a\x6f\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x39\x3d\x67\x75\x69\x6a\x6f\x64\x65\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x30\x3d\x67\x75\x69\x6a\x6f\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x31\x3d\x67\x75\x69\x6a\x6f\x64\x65\x73\x61\x6e\x74\x61\x62\x61\x72\x62\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x32\x3d\x68\x65\x72\x67\x75\x69\x6a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x33\x3d\x68\x65\x72\x6e\x61\x6e\x70\x65\x72\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x34\x3d\x68\x65\x72\x72\x65\x72\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x35\x3d\x68\x65\x72\x72\x65\x72\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x36\x3d\x68\x65\x72\x76\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x37\x3d\x68\x69\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x38\x3d\x68\x69\x6e\x6f\x6a\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x39\x3d\x68\x6f\x6c\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x30\x3d\x68\x6f\x79\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x31\x3d\x68\x75\x65\x6c\x61\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x32\x3d\x69\x62\x61\x68\x65\x72\x6e\x61\x6e\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x33\x3d\x6a\x61\x72\x61\x69\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x34\x3d\x6a\x61\x72\x61\x69\x7a\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x35\x3d\x6a\x61\x72\x61\x6e\x64\x69\x6c\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x36\x3d\x6a\x61\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x37\x3d\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x38\x3d\x6c\x61\x64\x72\x69\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x39\x3d\x6c\x6f\x67\x72\x6f\x73\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x30\x3d\x6c\x6f\x73\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x31\x3d\x6d\x61\x64\x72\x69\x67\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x32\x3d\x6d\x61\x64\x72\x69\x67\x61\x6c\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x33\x3d\x6d\x61\x64\x72\x6f\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x34\x3d\x6d\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x35\x3d\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x36\x3d\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x37\x3d\x6d\x61\x72\x63\x68\x61\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x38\x3d\x6d\x61\x74\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x39\x3d\x6d\x65\x6d\x62\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x30\x3d\x6d\x65\x73\x61\x73\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x31\x3d\x6d\x69\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x32\x3d\x6d\x69\x6c\x6c\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x33\x3d\x6d\x69\x72\x61\x62\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x34\x3d\x6d\x6f\x68\x65\x64\x61\x73\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x35\x3d\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x36\x3d\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x37\x3d\x6d\x6f\x6e\x74\x65\x68\x65\x72\x6d\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x38\x3d\x6d\x6f\x72\x61\x6c\x65\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x39\x3d\x6d\x6f\x72\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x30\x3d\x6e\x61\x76\x61\x63\x6f\x6e\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x31\x3d\x6e\x61\x76\x61\x6c\x76\x69\x6c\x6c\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x32\x3d\x6e\x61\x76\x61\x6c\x6d\x6f\x72\x61\x6c\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x33\x3d\x6e\x61\x76\x61\x73\x64\x65\x6c\x6d\x61\x64\x72\x6f\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x34\x3d\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x35\x3d\x6e\x61\x76\x65\x7a\x75\x65\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x36\x3d\x6e\x75\x6e\x6f\x6d\x6f\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x37\x3d\x6f\x6c\x69\x76\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x38\x3d\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x39\x3d\x70\x61\x73\x61\x72\x6f\x6e\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x30\x3d\x70\x65\x64\x72\x6f\x73\x6f\x64\x65\x61\x63\x69\x6d\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x31\x3d\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x32\x3d\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x73\x61\x6e\x72\x6f\x6d\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x33\x3d\x70\x65\x72\x61\x6c\x65\x73\x64\x65\x6c\x70\x75\x65\x72\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x34\x3d\x70\x65\x73\x63\x75\x65\x7a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x35\x3d\x6c\x61\x70\x65\x73\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x36\x3d\x70\x69\x65\x64\x72\x61\x73\x61\x6c\x62\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x37\x3d\x70\x69\x6e\x6f\x66\x72\x61\x6e\x71\x75\x65\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x38\x3d\x70\x69\x6f\x72\x6e\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x39\x3d\x70\x6c\x61\x73\x65\x6e\x7a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x30\x3d\x70\x6f\x72\x74\x61\x6a\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x31\x3d\x70\x6f\x72\x74\x65\x7a\x75\x65\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x32\x3d\x70\x6f\x7a\x75\x65\x6c\x6f\x64\x65\x7a\x61\x72\x7a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x33\x3d\x70\x75\x65\x62\x6c\x6f\x6e\x75\x65\x76\x6f\x64\x65\x6d\x69\x72\x61\x6d\x6f\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x34\x3d\x70\x75\x65\x72\x74\x6f\x64\x65\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x35\x3d\x72\x65\x62\x6f\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x36\x3d\x72\x69\x6f\x6c\x6f\x62\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x37\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x38\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x39\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x74\x72\x75\x6a\x69\x6c\x6c\x6f\x2c\x44\x4e\x53\x2e\x31\x36\x30\x3d\x72\x6f\x62\x6c\x65\x64\x6f\x6c\x6c\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x31\x3d\x72\x6f\x6d\x61\x6e\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x32\x3d\x72\x75\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x33\x3d\x73\x61\x6c\x6f\x72\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x34\x3d\x73\x61\x6c\x76\x61\x74\x69\x65\x72\x72\x61\x64\x65\x73\x61\x6e\x74\x69\x61\x67\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x35\x3d\x73\x61\x6e\x6d\x61\x72\x74\x69\x6e\x64\x65\x74\x72\x65\x76\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x36\x3d\x61\x79\x74\x6f\x73\x61\x6e\x74\x61\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x37\x3d\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x38\x3d\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x70\x61\x6e\x69\x61\x67\x75\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x39\x3d\x73\x61\x6e\x74\x61\x6d\x61\x72\x74\x61\x64\x65\x6d\x61\x67\x61\x73\x63\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x30\x3d\x73\x61\x6e\x74\x69\x61\x67\x6f\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x31\x3d\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x61\x6c\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x32\x3d\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x33\x3d\x73\x61\x75\x63\x65\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x34\x3d\x73\x65\x67\x75\x72\x61\x64\x65\x74\x6f\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x35\x3d\x73\x65\x72\x72\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x36\x3d\x73\x65\x72\x72\x65\x6a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x37\x3d\x73\x69\x65\x72\x72\x61\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x38\x3d\x74\x61\x6c\x61\x76\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x39\x3d\x74\x61\x6c\x61\x76\x65\x72\x75\x65\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x30\x3d\x74\x61\x6c\x61\x79\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x31\x3d\x74\x65\x6a\x65\x64\x61\x64\x65\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x32\x3d\x74\x6f\x72\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x33\x3d\x74\x6f\x72\x6e\x61\x76\x61\x63\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x34\x3d\x61\x79\x74\x6f\x65\x6c\x74\x6f\x72\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x35\x3d\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x64\x65\x6c\x6f\x73\x61\x6e\x67\x65\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x36\x3d\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x73\x64\x65\x6c\x61\x74\x69\x65\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x37\x3d\x74\x6f\x72\x72\x65\x64\x65\x64\x6f\x6e\x6d\x69\x67\x75\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x38\x3d\x74\x6f\x72\x72\x65\x64\x65\x73\x61\x6e\x74\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x39\x3d\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x65\x6c\x72\x75\x62\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x30\x3d\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x31\x3d\x74\x6f\x72\x72\x65\x6d\x65\x6e\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x32\x3d\x74\x6f\x72\x72\x65\x6d\x6f\x63\x68\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x33\x3d\x74\x6f\x72\x72\x65\x6f\x72\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x34\x3d\x74\x6f\x72\x72\x65\x71\x75\x65\x6d\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x35\x3d\x76\x61\x6c\x64\x61\x73\x74\x69\x6c\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x36\x3d\x76\x61\x6c\x64\x65\x63\x61\x6e\x61\x73\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x37\x3d\x76\x61\x6c\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x38\x3d\x76\x61\x6c\x64\x65\x68\x75\x6e\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x39\x3d\x76\x61\x6c\x64\x65\x69\x6e\x69\x67\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x30\x3d\x76\x61\x6c\x64\x65\x6c\x61\x63\x61\x73\x61\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x31\x3d\x76\x61\x6c\x64\x65\x6d\x6f\x72\x61\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x32\x3d\x76\x61\x6c\x64\x65\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x33\x3d\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x34\x3d\x76\x61\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x35\x3d\x76\x61\x6c\x65\x6e\x63\x69\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x36\x3d\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x37\x3d\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x66\x72\x65\x73\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x38\x3d\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x39\x3d\x76\x69\x61\x6e\x64\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x30\x3d\x76\x69\x6c\x6c\x61\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x31\x3d\x76\x69\x6c\x6c\x61\x64\x65\x6c\x72\x65\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x32\x3d\x76\x69\x6c\x6c\x61\x6d\x65\x73\x69\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x33\x3d\x76\x69\x6c\x6c\x61\x6d\x69\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x34\x3d\x76\x69\x6c\x6c\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x35\x3d\x76\x69\x6c\x6c\x61\x72\x64\x65\x6c\x70\x65\x64\x72\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x36\x3d\x76\x69\x6c\x6c\x61\x72\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x37\x3d\x76\x69\x6c\x6c\x61\x73\x62\x75\x65\x6e\x61\x73\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x38\x3d\x7a\x61\x72\x7a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x39\x3d\x7a\x61\x72\x7a\x61\x64\x65\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x30\x3d\x7a\x61\x72\x7a\x61\x6c\x61\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x31\x3d\x7a\x6f\x72\x69\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x32\x3d\x72\x6f\x73\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x33\x3d\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x34\x3d\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x35\x3d\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x36\x3d\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x37\x3d\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x38\x3d\x72\x69\x76\x65\x72\x61\x64\x65\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x39\x3d\x65\x6c\x6d\x73\x61\x6e\x67\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x30\x3d\x74\x61\x6a\x6f\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x31\x3d\x76\x61\x6c\x6c\x65\x61\x6d\x62\x72\x6f\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x32\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x61\x6c\x61\x67\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x33\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x34\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x65\x67\x61\x73\x61\x6c\x74\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x35\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x36\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x7a\x6f\x6e\x61\x63\x65\x6e\x74\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x37\x3d\x76\x69\x6c\x6c\x75\x65\x72\x63\x61\x73\x2d\x69\x62\x6f\x72\x65\x73\x2d\x6a\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x38\x3d\x77\x77\x77\x2e\x61\x62\x61\x64\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x39\x3d\x77\x77\x77\x2e\x61\x62\x65\x72\x74\x75\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x30\x3d\x77\x77\x77\x2e\x61\x63\x65\x62\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x31\x3d\x77\x77\x77\x2e\x61\x63\x65\x68\x75\x63\x68\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x32\x3d\x77\x77\x77\x2e\x61\x63\x65\x69\x74\x75\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x33\x3d\x77\x77\x77\x2e\x61\x68\x69\x67\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x34\x3d\x77\x77\x77\x2e\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x35\x3d\x77\x77\x77\x2e\x61\x6c\x63\x6f\x6c\x6c\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x36\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x62\x61\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x37\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x38\x3d\x77\x77\x77\x2e\x61\x6c\x63\x75\x65\x73\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x39\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x63\x65\x6e\x74\x65\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x30\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x64\x65\x6c\x63\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x31\x3d\x77\x77\x77\x2e\x6c\x61\x61\x6c\x64\x65\x61\x64\x65\x6c\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x32\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x33\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x63\x61\x6d\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x34\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x68\x75\x65\x6c\x61\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x35\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x36\x3d\x77\x77\x77\x2e\x61\x6c\x69\x73\x65\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x37\x3d\x77\x77\x77\x2e\x61\x6c\x6d\x61\x72\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x38\x3d\x77\x77\x77\x2e\x61\x6c\x6d\x6f\x68\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x39\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x72\x72\x6f\x79\x6f\x64\x65\x6c\x61\x6c\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x30\x3d\x77\x77\x77\x2e\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x31\x3d\x77\x77\x77\x2e\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x32\x3d\x77\x77\x77\x2e\x62\x61\x6e\x6f\x73\x64\x65\x6d\x6f\x6e\x74\x65\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x33\x3d\x77\x77\x77\x2e\x62\x61\x72\x72\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x34\x3d\x77\x77\x77\x2e\x62\x65\x6c\x76\x69\x73\x64\x65\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x35\x3d\x77\x77\x77\x2e\x62\x65\x6e\x71\x75\x65\x72\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x36\x3d\x77\x77\x77\x2e\x62\x65\x72\x72\x6f\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x37\x3d\x77\x77\x77\x2e\x62\x65\x72\x7a\x6f\x63\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x38\x3d\x77\x77\x77\x2e\x62\x6f\x68\x6f\x6e\x61\x6c\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x39\x3d\x77\x77\x77\x2e\x62\x6f\x74\x69\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x30\x3d\x77\x77\x77\x2e\x62\x72\x6f\x7a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x31\x3d\x77\x77\x77\x2e\x63\x61\x62\x61\x6e\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x32\x3d\x77\x77\x77\x2e\x63\x61\x62\x65\x7a\x61\x62\x65\x6c\x6c\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x33\x3d\x77\x77\x77\x2e\x63\x61\x62\x65\x7a\x75\x65\x6c\x61\x64\x65\x6c\x76\x61\x6c\x6c\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x34\x3d\x77\x77\x77\x2e\x63\x61\x62\x72\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x35\x3d\x77\x77\x77\x2e\x63\x61\x63\x68\x6f\x72\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x36\x3d\x77\x77\x77\x2e\x63\x61\x64\x61\x6c\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x37\x3d\x77\x77\x77\x2e\x63\x61\x6c\x7a\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x38\x3d\x77\x77\x77\x2e\x63\x61\x6d\x69\x6e\x6f\x6d\x6f\x72\x69\x73\x63\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x39\x3d\x77\x77\x77\x2e\x63\x61\x6d\x70\x69\x6c\x6c\x6f\x64\x65\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x30\x3d\x77\x77\x77\x2e\x63\x61\x6d\x70\x6f\x6c\x75\x67\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x31\x3d\x77\x77\x77\x2e\x63\x61\x6e\x61\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x32\x3d\x77\x77\x77\x2e\x63\x61\x6e\x61\x76\x65\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x33\x3d\x77\x77\x77\x2e\x63\x61\x72\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x34\x3d\x77\x77\x77\x2e\x63\x61\x72\x63\x61\x62\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x35\x3d\x77\x77\x77\x2e\x63\x61\x72\x72\x61\x73\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x36\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x37\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x64\x65\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x38\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x65\x73\x64\x65\x6c\x61\x73\x68\x75\x72\x64\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x39\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x61\x6e\x74\x6f\x6e\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x30\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x67\x6f\x6d\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x31\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x61\x6e\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x32\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6c\x6d\x6f\x6e\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x33\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x6c\x6c\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x34\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x72\x61\x76\x65\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x35\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x74\x65\x6a\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x36\x3d\x77\x77\x77\x2e\x63\x61\x73\x69\x6c\x6c\x61\x73\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x37\x3d\x77\x77\x77\x2e\x63\x61\x73\x74\x61\x6e\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x38\x3d\x77\x77\x77\x2e\x63\x65\x63\x6c\x61\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x39\x3d\x77\x77\x77\x2e\x63\x65\x64\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x30\x3d\x77\x77\x77\x2e\x63\x65\x72\x65\x7a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x31\x3d\x77\x77\x77\x2e\x63\x69\x6c\x6c\x65\x72\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x32\x3d\x77\x77\x77\x2e\x63\x6f\x6c\x6c\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x33\x3d\x77\x77\x77\x2e\x63\x6f\x6e\x71\x75\x69\x73\x74\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x34\x3d\x77\x77\x77\x2e\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x35\x3d\x77\x77\x77\x2e\x63\x75\x61\x63\x6f\x73\x64\x65\x79\x75\x73\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x36\x3d\x77\x77\x77\x2e\x6c\x61\x63\x75\x6d\x62\x72\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x37\x3d\x77\x77\x77\x2e\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x38\x3d\x77\x77\x77\x2e\x64\x65\x73\x63\x61\x72\x67\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x39\x3d\x77\x77\x77\x2e\x65\x6c\x6a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x30\x3d\x77\x77\x77\x2e\x65\x73\x63\x75\x72\x69\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x31\x3d\x77\x77\x77\x2e\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x6f\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x32\x3d\x77\x77\x77\x2e\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x33\x3d\x77\x77\x77\x2e\x67\x61\x72\x63\x69\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x34\x3d\x77\x77\x77\x2e\x6c\x61\x67\x61\x72\x67\x61\x6e\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x35\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x61\x6e\x74\x61\x6c\x61\x6f\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x36\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x61\x6e\x74\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x37\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x38\x3d\x77\x77\x77\x2e\x67\x61\x72\x72\x6f\x76\x69\x6c\x6c\x61\x73\x64\x65\x61\x6c\x63\x6f\x6e\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x39\x3d\x77\x77\x77\x2e\x67\x61\x72\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x30\x3d\x77\x77\x77\x2e\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x31\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x65\x6c\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x32\x3d\x77\x77\x77\x2e\x6c\x61\x67\x72\x61\x6e\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x33\x3d\x77\x77\x77\x2e\x6c\x61\x67\x72\x61\x6e\x6a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x34\x3d\x77\x77\x77\x2e\x61\x79\x75\x6e\x74\x61\x6d\x69\x65\x6e\x74\x6f\x64\x65\x67\x75\x61\x64\x61\x6c\x75\x70\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x35\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x36\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x37\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x38\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x73\x61\x6e\x74\x61\x62\x61\x72\x62\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x39\x3d\x77\x77\x77\x2e\x68\x65\x72\x67\x75\x69\x6a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x30\x3d\x77\x77\x77\x2e\x68\x65\x72\x6e\x61\x6e\x70\x65\x72\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x31\x3d\x77\x77\x77\x2e\x68\x65\x72\x72\x65\x72\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x32\x3d\x77\x77\x77\x2e\x68\x65\x72\x72\x65\x72\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x33\x3d\x77\x77\x77\x2e\x68\x65\x72\x76\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x34\x3d\x77\x77\x77\x2e\x68\x69\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x35\x3d\x77\x77\x77\x2e\x68\x69\x6e\x6f\x6a\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x36\x3d\x77\x77\x77\x2e\x68\x6f\x6c\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x37\x3d\x77\x77\x77\x2e\x68\x6f\x79\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x38\x3d\x77\x77\x77\x2e\x68\x75\x65\x6c\x61\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x39\x3d\x77\x77\x77\x2e\x69\x62\x61\x68\x65\x72\x6e\x61\x6e\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x30\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x69\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x31\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x69\x7a\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x32\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x6e\x64\x69\x6c\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x33\x3d\x77\x77\x77\x2e\x6a\x61\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x34\x3d\x77\x77\x77\x2e\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x35\x3d\x77\x77\x77\x2e\x6c\x61\x64\x72\x69\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x36\x3d\x77\x77\x77\x2e\x6c\x6f\x67\x72\x6f\x73\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x37\x3d\x77\x77\x77\x2e\x6c\x6f\x73\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x38\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x69\x67\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x39\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x69\x67\x61\x6c\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x30\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x6f\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x31\x3d\x77\x77\x77\x2e\x6d\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x32\x3d\x77\x77\x77\x2e\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x33\x3d\x77\x77\x77\x2e\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x34\x3d\x77\x77\x77\x2e\x6d\x61\x72\x63\x68\x61\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x35\x3d\x77\x77\x77\x2e\x6d\x61\x74\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x36\x3d\x77\x77\x77\x2e\x6d\x65\x6d\x62\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x37\x3d\x77\x77\x77\x2e\x6d\x65\x73\x61\x73\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x38\x3d\x77\x77\x77\x2e\x6d\x69\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x39\x3d\x77\x77\x77\x2e\x6d\x69\x6c\x6c\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x30\x3d\x77\x77\x77\x2e\x6d\x69\x72\x61\x62\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x31\x3d\x77\x77\x77\x2e\x6d\x6f\x68\x65\x64\x61\x73\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x32\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x33\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x34\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x74\x65\x68\x65\x72\x6d\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x35\x3d\x77\x77\x77\x2e\x6d\x6f\x72\x61\x6c\x65\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x36\x3d\x77\x77\x77\x2e\x6d\x6f\x72\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x37\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x63\x6f\x6e\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x38\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x6c\x76\x69\x6c\x6c\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x39\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x6c\x6d\x6f\x72\x61\x6c\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x30\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x73\x64\x65\x6c\x6d\x61\x64\x72\x6f\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x31\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x32\x3d\x77\x77\x77\x2e\x6e\x61\x76\x65\x7a\x75\x65\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x33\x3d\x77\x77\x77\x2e\x6e\x75\x6e\x6f\x6d\x6f\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x34\x3d\x77\x77\x77\x2e\x6f\x6c\x69\x76\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x35\x3d\x77\x77\x77\x2e\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x36\x3d\x77\x77\x77\x2e\x70\x61\x73\x61\x72\x6f\x6e\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x37\x3d\x77\x77\x77\x2e\x70\x65\x64\x72\x6f\x73\x6f\x64\x65\x61\x63\x69\x6d\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x38\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x39\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x73\x61\x6e\x72\x6f\x6d\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x30\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x73\x64\x65\x6c\x70\x75\x65\x72\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x31\x3d\x77\x77\x77\x2e\x70\x65\x73\x63\x75\x65\x7a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x32\x3d\x77\x77\x77\x2e\x6c\x61\x70\x65\x73\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x33\x3d\x77\x77\x77\x2e\x70\x69\x65\x64\x72\x61\x73\x61\x6c\x62\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x34\x3d\x77\x77\x77\x2e\x70\x69\x6e\x6f\x66\x72\x61\x6e\x71\x75\x65\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x35\x3d\x77\x77\x77\x2e\x70\x69\x6f\x72\x6e\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x36\x3d\x77\x77\x77\x2e\x70\x6c\x61\x73\x65\x6e\x7a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x37\x3d\x77\x77\x77\x2e\x70\x6f\x72\x74\x61\x6a\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x38\x3d\x77\x77\x77\x2e\x70\x6f\x72\x74\x65\x7a\x75\x65\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x39\x3d\x77\x77\x77\x2e\x70\x6f\x7a\x75\x65\x6c\x6f\x64\x65\x7a\x61\x72\x7a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x30\x3d\x77\x77\x77\x2e\x70\x75\x65\x62\x6c\x6f\x6e\x75\x65\x76\x6f\x64\x65\x6d\x69\x72\x61\x6d\x6f\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x31\x3d\x77\x77\x77\x2e\x70\x75\x65\x72\x74\x6f\x64\x65\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x32\x3d\x77\x77\x77\x2e\x72\x65\x62\x6f\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x33\x3d\x77\x77\x77\x2e\x72\x69\x6f\x6c\x6f\x62\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x34\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x35\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x36\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x74\x72\x75\x6a\x69\x6c\x6c\x6f\x2c\x44\x4e\x53\x2e\x33\x39\x37\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x6f\x6c\x6c\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x38\x3d\x77\x77\x77\x2e\x72\x6f\x6d\x61\x6e\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x39\x3d\x77\x77\x77\x2e\x72\x75\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x30\x3d\x77\x77\x77\x2e\x73\x61\x6c\x6f\x72\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x31\x3d\x77\x77\x77\x2e\x73\x61\x6c\x76\x61\x74\x69\x65\x72\x72\x61\x64\x65\x73\x61\x6e\x74\x69\x61\x67\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x32\x3d\x77\x77\x77\x2e\x73\x61\x6e\x6d\x61\x72\x74\x69\x6e\x64\x65\x74\x72\x65\x76\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x33\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x73\x61\x6e\x74\x61\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x34\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x35\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x70\x61\x6e\x69\x61\x67\x75\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x36\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x6d\x61\x72\x74\x61\x64\x65\x6d\x61\x67\x61\x73\x63\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x37\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x61\x67\x6f\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x38\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x61\x6c\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x39\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x30\x3d\x77\x77\x77\x2e\x73\x61\x75\x63\x65\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x31\x3d\x77\x77\x77\x2e\x73\x65\x67\x75\x72\x61\x64\x65\x74\x6f\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x32\x3d\x77\x77\x77\x2e\x73\x65\x72\x72\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x33\x3d\x77\x77\x77\x2e\x73\x65\x72\x72\x65\x6a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x34\x3d\x77\x77\x77\x2e\x73\x69\x65\x72\x72\x61\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x35\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x76\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x36\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x76\x65\x72\x75\x65\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x37\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x79\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x38\x3d\x77\x77\x77\x2e\x74\x65\x6a\x65\x64\x61\x64\x65\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x39\x3d\x77\x77\x77\x2e\x74\x6f\x72\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x30\x3d\x77\x77\x77\x2e\x74\x6f\x72\x6e\x61\x76\x61\x63\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x31\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x65\x6c\x74\x6f\x72\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x32\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x64\x65\x6c\x6f\x73\x61\x6e\x67\x65\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x33\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x73\x64\x65\x6c\x61\x74\x69\x65\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x34\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x64\x65\x64\x6f\x6e\x6d\x69\x67\x75\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x35\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x64\x65\x73\x61\x6e\x74\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x36\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x65\x6c\x72\x75\x62\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x37\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x38\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6d\x65\x6e\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x39\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6d\x6f\x63\x68\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x30\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6f\x72\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x31\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x71\x75\x65\x6d\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x32\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x61\x73\x74\x69\x6c\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x63\x61\x6e\x61\x73\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x34\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x35\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x68\x75\x6e\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x36\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x69\x6e\x69\x67\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x37\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6c\x61\x63\x61\x73\x61\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x38\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6d\x6f\x72\x61\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x39\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x30\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x31\x3d\x77\x77\x77\x2e\x76\x61\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x32\x3d\x77\x77\x77\x2e\x76\x61\x6c\x65\x6e\x63\x69\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x34\x3d\x77\x77\x77\x2e\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x66\x72\x65\x73\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x35\x3d\x77\x77\x77\x2e\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x36\x3d\x77\x77\x77\x2e\x76\x69\x61\x6e\x64\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x37\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x38\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x64\x65\x6c\x72\x65\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x39\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6d\x65\x73\x69\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x30\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6d\x69\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x31\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x32\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x72\x64\x65\x6c\x70\x65\x64\x72\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x33\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x72\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x34\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x73\x62\x75\x65\x6e\x61\x73\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x35\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x36\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x64\x65\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x37\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x6c\x61\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x38\x3d\x77\x77\x77\x2e\x7a\x6f\x72\x69\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x39\x3d\x77\x77\x77\x2e\x72\x6f\x73\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x30\x3d\x77\x77\x77\x2e\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x31\x3d\x77\x77\x77\x2e\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x32\x3d\x77\x77\x77\x2e\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x34\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x35\x3d\x77\x77\x77\x2e\x72\x69\x76\x65\x72\x61\x64\x65\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x36\x3d\x77\x77\x77\x2e\x65\x6c\x6d\x73\x61\x6e\x67\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x37\x3d\x77\x77\x77\x2e\x74\x61\x6a\x6f\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x38\x3d\x77\x77\x77\x2e\x76\x61\x6c\x6c\x65\x61\x6d\x62\x72\x6f\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x39\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x61\x6c\x61\x67\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x30\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x31\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x65\x67\x61\x73\x61\x6c\x74\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x32\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x33\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x7a\x6f\x6e\x61\x63\x65\x6e\x74\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x34\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x75\x65\x72\x63\x61\x73\x2d\x69\x62\x6f\x72\x65\x73\x2d\x6a\x61\x72\x61\x2e\x65\x73", 12589},
- }
+ .name = "very long DN",
+ .compat_str =
+ "C=ES,ST=CACERES,L=CACERES,O=DIPUTACION PROVINCIAL DE CACERES,OU=DIPUTACION PROVINCIAL DE CACERES,CN=www.dip-caceres.es,EMAIL=webmaster@dip-caceres.es,2.5.29.17=#1382304b444e532e313d6162616469612e65732c444e532e323d61626572747572612e65732c444e532e333d616365626f2e65732c444e532e343d61636568756368652e65732c444e532e353d6163656974756e612e65732c444e532e363d61686967616c2e65732c444e532e373d616c61676f6e64656c72696f2e65732c444e532e383d616c636f6c6c6172696e2e65732c444e532e393d6179746f616c62616c612e65732c444e532e31303d6179746f616c63616e746172612e65732c444e532e31313d616c637565736361722e65732c444e532e31323d616c64656163656e74656e6572612e65732c444e532e31333d616c64656164656c63616e6f2e65732c444e532e31343d6c61616c64656164656c6f626973706f2e65732c444e532e31353d616c6465616e7565766164656c61766572612e65732c444e532e31363d616c6465616e7565766164656c63616d696e6f2e65732c444e532e31373d616c64656875656c6164656c6a657274652e65732c444e532e31383d6179746f616c69612e65732c444e532e31393d616c69736564612e65732c444e532e32303d616c6d6172617a2e65732c444e532e32313d616c6d6f686172696e2e65732c444e532e32323d6179746f6172726f796f64656c616c757a2e65732c444e532e32333d6172726f796f6d6f6c696e6f732e65732c444e532e32343d6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e32353d62616e6f7364656d6f6e74656d61796f722e65732c444e532e32363d6261727261646f2e65732c444e532e32373d62656c76697364656d6f6e726f792e65732c444e532e32383d62656e71756572656e6369612e65732c444e532e32393d626572726f63616c656a6f2e65732c444e532e33303d6265727a6f63616e612e65732c444e532e33313d626f686f6e616c646569626f722e65732c444e532e33323d626f74696a612e65732c444e532e33333d62726f7a61732e65732c444e532e33343d636162616e617364656c63617374696c6c6f2e65732c444e532e33353d636162657a6162656c6c6f73612e65732c444e532e33363d636162657a75656c6164656c76616c6c652e65732c444e532e33373d6361627265726f2e65732c444e532e33383d636163686f7272696c6c612e65732c444e532e33393d636164616c736f2e65732c444e532e34303d63616c7a6164696c6c612e65732c444e532e34313d63616d696e6f6d6f726973636f2e65732c444e532e34323d63616d70696c6c6f646564656c6569746f73612e65732c444e532e34333d63616d706f6c756761722e65732c444e532e34343d63616e616d65726f2e65732c444e532e34353d63616e61766572616c2e65732c444e532e34363d63617262616a6f2e65732c444e532e34373d6361726361626f736f2e65732c444e532e34383d63617272617363616c656a6f2e65732c444e532e34393d63617361726465636163657265732e65732c444e532e35303d6361736172646570616c6f6d65726f2e65732c444e532e35313d6361736172657364656c61736875726465732e65732c444e532e35323d63617361736465646f6e616e746f6e696f2e65732c444e532e35333d63617361736465646f6e676f6d657a2e65732c444e532e35343d636173617364656c63617374616e61722e65732c444e532e35353d636173617364656c6d6f6e74652e65732c444e532e35363d636173617364656d696c6c616e2e65732c444e532e35373d636173617364656d697261766574652e65732c444e532e35383d6361736174656a6164612e65732c444e532e35393d636173696c6c61736465636f7269612e65732c444e532e36303d63617374616e6172646569626f722e65732c444e532e36313d6365636c6176696e2e65732c444e532e36323d636564696c6c6f2e65732c444e532e36333d636572657a6f2e65732c444e532e36343d63696c6c65726f732e65732c444e532e36353d636f6c6c61646f2e65732c444e532e36363d636f6e71756973746164656c617369657272612e65732c444e532e36373d636f7269612e65732c444e532e36383d637561636f73646579757374652e65732c444e532e36393d6c6163756d6272652e65732c444e532e37303d64656c6569746f73612e65732c444e532e37313d64657363617267616d617269612e65732c444e532e37323d656c6a61732e65732c444e532e37333d657363757269616c2e65732c444e532e37343d667265736e65646f736f646569626f722e65732c444e532e37353d67616c697374656f2e65732c444e532e37363d6761726369617a2e65732c444e532e37373d6c6167617267616e74612e65732c444e532e37383d67617267616e74616c616f6c6c612e65732c444e532e37393d67617267616e74696c6c612e65732c444e532e38303d67617267756572612e65732c444e532e38313d676172726f76696c6c61736465616c636f6e657461722e65732c444e532e38323d67617276696e2e65732c444e532e38333d676174612e65732c444e532e38343d6179746f656c676f72646f2e65732c444e532e38353d6c616772616e6a612e65732c444e532e38363d6c616772616e6a6164656772616e6164696c6c612e65732c444e532e38373d6179756e74616d69656e746f646567756164616c7570652e65732c444e532e38383d6775696a6f6465636f7269612e65732c444e532e38393d6775696a6f646567616c697374656f2e65732c444e532e39303d6775696a6f64656772616e6164696c6c612e65732c444e532e39313d6775696a6f646573616e7461626172626172612e65732c444e532e39323d6865726775696a75656c612e65732c444e532e39333d6865726e616e706572657a2e65732c444e532e39343d686572726572616465616c63616e746172612e65732c444e532e39353d68657272657275656c612e65732c444e532e39363d6865727661732e65732c444e532e39373d686967756572612e65732c444e532e39383d68696e6f6a616c2e65732c444e532e39393d686f6c67756572612e65732c444e532e3130303d686f796f732e65732c444e532e3130313d6875656c6167612e65732c444e532e3130323d6962616865726e616e646f2e65732c444e532e3130333d6a6172616963656a6f2e65732c444e532e3130343d6a617261697a64656c61766572612e65732c444e532e3130353d6a6172616e64696c6c6164656c61766572612e65732c444e532e3130363d6a6172696c6c612e65732c444e532e3130373d6a657274652e65732c444e532e3130383d6c616472696c6c61722e65732c444e532e3130393d6c6f67726f73616e2e65732c444e532e3131303d6c6f73617264656c61766572612e65732c444e532e3131313d6d6164726967616c656a6f2e65732c444e532e3131323d6d6164726967616c64656c61766572612e65732c444e532e3131333d6d6164726f6e6572612e65732c444e532e3131343d6d616a616461732e65732c444e532e3131353d6d616c706172746964616465636163657265732e65732c444e532e3131363d6d616c706172746964616465706c6173656e6369612e65732c444e532e3131373d6d617263686167617a2e65732c444e532e3131383d6d6174616465616c63616e746172612e65732c444e532e3131393d6d656d6272696f2e65732c444e532e3132303d6d65736173646569626f722e65732c444e532e3132313d6d69616a616461732e65732c444e532e3132323d6d696c6c616e65732e65732c444e532e3132333d6d69726162656c2e65732c444e532e3132343d6d6f686564617364656772616e6164696c6c612e65732c444e532e3132353d6d6f6e726f792e65732c444e532e3132363d6d6f6e74616e6368657a2e65732c444e532e3132373d6d6f6e74656865726d6f736f2e65732c444e532e3132383d6d6f72616c656a612e65732c444e532e3132393d6d6f7263696c6c6f2e65732c444e532e3133303d6e617661636f6e63656a6f2e65732c444e532e3133313d6e6176616c76696c6c6172646569626f722e65732c444e532e3133323d6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3133333d6e6176617364656c6d6164726f6e6f2e65732c444e532e3133343d6e6176617472617369657272612e65732c444e532e3133353d6e6176657a75656c61732e65732c444e532e3133363d6e756e6f6d6f72616c2e65732c444e532e3133373d6f6c6976616465706c6173656e6369612e65732c444e532e3133383d70616c6f6d65726f2e65732c444e532e3133393d70617361726f6e64656c61766572612e65732c444e532e3134303d706564726f736f64656163696d2e65732c444e532e3134313d706572616c65646164656c616d6174612e65732c444e532e3134323d706572616c656461646573616e726f6d616e2e65732c444e532e3134333d706572616c657364656c70756572746f2e65732c444e532e3134343d7065736375657a612e65732c444e532e3134353d6c6170657367612e65732c444e532e3134363d70696564726173616c6261732e65732c444e532e3134373d70696e6f6672616e71756561646f2e65732c444e532e3134383d70696f726e616c2e65732c444e532e3134393d706c6173656e7a75656c612e65732c444e532e3135303d706f7274616a652e65732c444e532e3135313d706f7274657a75656c6f2e65732c444e532e3135323d706f7a75656c6f64657a61727a6f6e2e65732c444e532e3135333d707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3135343d70756572746f646573616e74616372757a2e65732c444e532e3135353d7265626f6c6c61722e65732c444e532e3135363d72696f6c6f626f732e65732c444e532e3135373d726f626c6564696c6c6f6465676174612e65732c444e532e3135383d726f626c6564696c6c6f64656c61766572612e65732c444e532e3135393d726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3136303d726f626c65646f6c6c616e6f2e65732c444e532e3136313d726f6d616e676f72646f2e65732c444e532e3136323d7275616e65732e65732c444e532e3136333d73616c6f72696e6f2e65732c444e532e3136343d73616c7661746965727261646573616e746961676f2e65732c444e532e3136353d73616e6d617274696e646574726576656a6f2e65732c444e532e3136363d6179746f73616e7461616e612e65732c444e532e3136373d73616e74616372757a64656c617369657272612e65732c444e532e3136383d73616e74616372757a646570616e69616775612e65732c444e532e3136393d73616e74616d6172746164656d6167617363612e65732c444e532e3137303d73616e746961676f64656c63616d706f2e65732c444e532e3137313d73616e746962616e657a656c616c746f2e65732c444e532e3137323d73616e746962616e657a656c62616a6f2e65732c444e532e3137333d736175636564696c6c612e65732c444e532e3137343d7365677572616465746f726f2e65732c444e532e3137353d736572726164696c6c612e65732c444e532e3137363d73657272656a6f6e2e65732c444e532e3137373d73696572726164656675656e7465732e65732c444e532e3137383d74616c6176616e2e65732c444e532e3137393d74616c6176657275656c6164656c61766572612e65732c444e532e3138303d74616c617975656c612e65732c444e532e3138313d74656a65646164657469657461722e65732c444e532e3138323d746f72696c2e65732c444e532e3138333d746f726e6176616361732e65732c444e532e3138343d6179746f656c746f726e6f2e65732c444e532e3138353d746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3138363d746f72726563696c6c617364656c6174696573612e65732c444e532e3138373d746f7272656465646f6e6d696775656c2e65732c444e532e3138383d746f727265646573616e74616d617269612e65732c444e532e3138393d746f7272656a6f6e656c727562696f2e65732c444e532e3139303d746f7272656a6f6e63696c6c6f2e65732c444e532e3139313d746f7272656d656e67612e65732c444e532e3139323d746f7272656d6f6368612e65732c444e532e3139333d746f7272656f7267617a2e65732c444e532e3139343d746f7272657175656d6164612e65732c444e532e3139353d76616c64617374696c6c61732e65732c444e532e3139363d76616c646563616e6173646574616a6f2e65732c444e532e3139373d76616c64656675656e7465732e65732c444e532e3139383d76616c646568756e6361722e65732c444e532e3139393d76616c6465696e69676f732e65732c444e532e3230303d76616c64656c6163617361646574616a6f2e65732c444e532e3230313d76616c64656d6f72616c65732e65732c444e532e3230323d76616c64656f626973706f2e65732c444e532e3230333d76616c646573616c6f722e65732c444e532e3230343d76616c72696f2e65732c444e532e3230353d76616c656e6369616465616c63616e746172612e65732c444e532e3230363d76616c766572646564656c61766572612e65732c444e532e3230373d76616c766572646564656c667265736e6f2e65732c444e532e3230383d766567617669616e612e65732c444e532e3230393d7669616e64617264656c61766572612e65732c444e532e3231303d76696c6c6164656c63616d706f2e65732c444e532e3231313d76696c6c6164656c7265792e65732c444e532e3231323d76696c6c616d65736961732e65732c444e532e3231333d76696c6c616d69656c2e65732c444e532e3231343d76696c6c616e7565766164656c617369657272612e65732c444e532e3231353d76696c6c617264656c706564726f736f2e65732c444e532e3231363d76696c6c61726465706c6173656e6369612e65732c444e532e3231373d76696c6c61736275656e61736465676174612e65732c444e532e3231383d7a61727a6164656772616e6164696c6c612e65732c444e532e3231393d7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3232303d7a61727a616c616d61796f722e65732c444e532e3232313d7a6f726974612e65732c444e532e3232323d726f73616c656a6f2e65732c444e532e3232333d766567617669616e612e65732c444e532e3232343d616c61676f6e64656c72696f2e65732c444e532e3232353d7469657461722e65732c444e532e3232363d76616c646573616c6f722e65732c444e532e3232373d6e6176617472617369657272612e65732c444e532e3232383d7269766572616465667265736e65646f73612e65732c444e532e3232393d656c6d73616e67696c2e65732c444e532e3233303d74616a6f73616c6f722e65732c444e532e3233313d76616c6c65616d62726f7a2e65732c444e532e3233323d6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3233333d6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3233343d6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3233353d6d616e636f6d756e6964616464656c61766572612e65732c444e532e3233363d6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3233373d76696c6c7565726361732d69626f7265732d6a6172612e65732c444e532e3233383d7777772e6162616469612e65732c444e532e3233393d7777772e61626572747572612e65732c444e532e3234303d7777772e616365626f2e65732c444e532e3234313d7777772e61636568756368652e65732c444e532e3234323d7777772e6163656974756e612e65732c444e532e3234333d7777772e61686967616c2e65732c444e532e3234343d7777772e616c61676f6e64656c72696f2e65732c444e532e3234353d7777772e616c636f6c6c6172696e2e65732c444e532e3234363d7777772e6179746f616c62616c612e65732c444e532e3234373d7777772e6179746f616c63616e746172612e65732c444e532e3234383d7777772e616c637565736361722e65732c444e532e3234393d7777772e616c64656163656e74656e6572612e65732c444e532e3235303d7777772e616c64656164656c63616e6f2e65732c444e532e3235313d7777772e6c61616c64656164656c6f626973706f2e65732c444e532e3235323d7777772e616c6465616e7565766164656c61766572612e65732c444e532e3235333d7777772e616c6465616e7565766164656c63616d696e6f2e65732c444e532e3235343d7777772e616c64656875656c6164656c6a657274652e65732c444e532e3235353d7777772e6179746f616c69612e65732c444e532e3235363d7777772e616c69736564612e65732c444e532e3235373d7777772e616c6d6172617a2e65732c444e532e3235383d7777772e616c6d6f686172696e2e65732c444e532e3235393d7777772e6179746f6172726f796f64656c616c757a2e65732c444e532e3236303d7777772e6172726f796f6d6f6c696e6f732e65732c444e532e3236313d7777772e6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e3236323d7777772e62616e6f7364656d6f6e74656d61796f722e65732c444e532e3236333d7777772e6261727261646f2e65732c444e532e3236343d7777772e62656c76697364656d6f6e726f792e65732c444e532e3236353d7777772e62656e71756572656e6369612e65732c444e532e3236363d7777772e626572726f63616c656a6f2e65732c444e532e3236373d7777772e6265727a6f63616e612e65732c444e532e3236383d7777772e626f686f6e616c646569626f722e65732c444e532e3236393d7777772e626f74696a612e65732c444e532e3237303d7777772e62726f7a61732e65732c444e532e3237313d7777772e636162616e617364656c63617374696c6c6f2e65732c444e532e3237323d7777772e636162657a6162656c6c6f73612e65732c444e532e3237333d7777772e636162657a75656c6164656c76616c6c652e65732c444e532e3237343d7777772e6361627265726f2e65732c444e532e3237353d7777772e636163686f7272696c6c612e65732c444e532e3237363d7777772e636164616c736f2e65732c444e532e3237373d7777772e63616c7a6164696c6c612e65732c444e532e3237383d7777772e63616d696e6f6d6f726973636f2e65732c444e532e3237393d7777772e63616d70696c6c6f646564656c6569746f73612e65732c444e532e3238303d7777772e63616d706f6c756761722e65732c444e532e3238313d7777772e63616e616d65726f2e65732c444e532e3238323d7777772e63616e61766572616c2e65732c444e532e3238333d7777772e63617262616a6f2e65732c444e532e3238343d7777772e6361726361626f736f2e65732c444e532e3238353d7777772e63617272617363616c656a6f2e65732c444e532e3238363d7777772e63617361726465636163657265732e65732c444e532e3238373d7777772e6361736172646570616c6f6d65726f2e65732c444e532e3238383d7777772e6361736172657364656c61736875726465732e65732c444e532e3238393d7777772e63617361736465646f6e616e746f6e696f2e65732c444e532e3239303d7777772e63617361736465646f6e676f6d657a2e65732c444e532e3239313d7777772e636173617364656c63617374616e61722e65732c444e532e3239323d7777772e636173617364656c6d6f6e74652e65732c444e532e3239333d7777772e636173617364656d696c6c616e2e65732c444e532e3239343d7777772e636173617364656d697261766574652e65732c444e532e3239353d7777772e6361736174656a6164612e65732c444e532e3239363d7777772e636173696c6c61736465636f7269612e65732c444e532e3239373d7777772e63617374616e6172646569626f722e65732c444e532e3239383d7777772e6365636c6176696e2e65732c444e532e3239393d7777772e636564696c6c6f2e65732c444e532e3330303d7777772e636572657a6f2e65732c444e532e3330313d7777772e63696c6c65726f732e65732c444e532e3330323d7777772e636f6c6c61646f2e65732c444e532e3330333d7777772e636f6e71756973746164656c617369657272612e65732c444e532e3330343d7777772e636f7269612e65732c444e532e3330353d7777772e637561636f73646579757374652e65732c444e532e3330363d7777772e6c6163756d6272652e65732c444e532e3330373d7777772e64656c6569746f73612e65732c444e532e3330383d7777772e64657363617267616d617269612e65732c444e532e3330393d7777772e656c6a61732e65732c444e532e3331303d7777772e657363757269616c2e65732c444e532e3331313d7777772e667265736e65646f736f646569626f722e65732c444e532e3331323d7777772e67616c697374656f2e65732c444e532e3331333d7777772e6761726369617a2e65732c444e532e3331343d7777772e6c6167617267616e74612e65732c444e532e3331353d7777772e67617267616e74616c616f6c6c612e65732c444e532e3331363d7777772e67617267616e74696c6c612e65732c444e532e3331373d7777772e67617267756572612e65732c444e532e3331383d7777772e676172726f76696c6c61736465616c636f6e657461722e65732c444e532e3331393d7777772e67617276696e2e65732c444e532e3332303d7777772e676174612e65732c444e532e3332313d7777772e6179746f656c676f72646f2e65732c444e532e3332323d7777772e6c616772616e6a612e65732c444e532e3332333d7777772e6c616772616e6a6164656772616e6164696c6c612e65732c444e532e3332343d7777772e6179756e74616d69656e746f646567756164616c7570652e65732c444e532e3332353d7777772e6775696a6f6465636f7269612e65732c444e532e3332363d7777772e6775696a6f646567616c697374656f2e65732c444e532e3332373d7777772e6775696a6f64656772616e6164696c6c612e65732c444e532e3332383d7777772e6775696a6f646573616e7461626172626172612e65732c444e532e3332393d7777772e6865726775696a75656c612e65732c444e532e3333303d7777772e6865726e616e706572657a2e65732c444e532e3333313d7777772e686572726572616465616c63616e746172612e65732c444e532e3333323d7777772e68657272657275656c612e65732c444e532e3333333d7777772e6865727661732e65732c444e532e3333343d7777772e686967756572612e65732c444e532e3333353d7777772e68696e6f6a616c2e65732c444e532e3333363d7777772e686f6c67756572612e65732c444e532e3333373d7777772e686f796f732e65732c444e532e3333383d7777772e6875656c6167612e65732c444e532e3333393d7777772e6962616865726e616e646f2e65732c444e532e3334303d7777772e6a6172616963656a6f2e65732c444e532e3334313d7777772e6a617261697a64656c61766572612e65732c444e532e3334323d7777772e6a6172616e64696c6c6164656c61766572612e65732c444e532e3334333d7777772e6a6172696c6c612e65732c444e532e3334343d7777772e6a657274652e65732c444e532e3334353d7777772e6c616472696c6c61722e65732c444e532e3334363d7777772e6c6f67726f73616e2e65732c444e532e3334373d7777772e6c6f73617264656c61766572612e65732c444e532e3334383d7777772e6d6164726967616c656a6f2e65732c444e532e3334393d7777772e6d6164726967616c64656c61766572612e65732c444e532e3335303d7777772e6d6164726f6e6572612e65732c444e532e3335313d7777772e6d616a616461732e65732c444e532e3335323d7777772e6d616c706172746964616465636163657265732e65732c444e532e3335333d7777772e6d616c706172746964616465706c6173656e6369612e65732c444e532e3335343d7777772e6d617263686167617a2e65732c444e532e3335353d7777772e6d6174616465616c63616e746172612e65732c444e532e3335363d7777772e6d656d6272696f2e65732c444e532e3335373d7777772e6d65736173646569626f722e65732c444e532e3335383d7777772e6d69616a616461732e65732c444e532e3335393d7777772e6d696c6c616e65732e65732c444e532e3336303d7777772e6d69726162656c2e65732c444e532e3336313d7777772e6d6f686564617364656772616e6164696c6c612e65732c444e532e3336323d7777772e6d6f6e726f792e65732c444e532e3336333d7777772e6d6f6e74616e6368657a2e65732c444e532e3336343d7777772e6d6f6e74656865726d6f736f2e65732c444e532e3336353d7777772e6d6f72616c656a612e65732c444e532e3336363d7777772e6d6f7263696c6c6f2e65732c444e532e3336373d7777772e6e617661636f6e63656a6f2e65732c444e532e3336383d7777772e6e6176616c76696c6c6172646569626f722e65732c444e532e3336393d7777772e6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3337303d7777772e6e6176617364656c6d6164726f6e6f2e65732c444e532e3337313d7777772e6e6176617472617369657272612e65732c444e532e3337323d7777772e6e6176657a75656c61732e65732c444e532e3337333d7777772e6e756e6f6d6f72616c2e65732c444e532e3337343d7777772e6f6c6976616465706c6173656e6369612e65732c444e532e3337353d7777772e70616c6f6d65726f2e65732c444e532e3337363d7777772e70617361726f6e64656c61766572612e65732c444e532e3337373d7777772e706564726f736f64656163696d2e65732c444e532e3337383d7777772e706572616c65646164656c616d6174612e65732c444e532e3337393d7777772e706572616c656461646573616e726f6d616e2e65732c444e532e3338303d7777772e706572616c657364656c70756572746f2e65732c444e532e3338313d7777772e7065736375657a612e65732c444e532e3338323d7777772e6c6170657367612e65732c444e532e3338333d7777772e70696564726173616c6261732e65732c444e532e3338343d7777772e70696e6f6672616e71756561646f2e65732c444e532e3338353d7777772e70696f726e616c2e65732c444e532e3338363d7777772e706c6173656e7a75656c612e65732c444e532e3338373d7777772e706f7274616a652e65732c444e532e3338383d7777772e706f7274657a75656c6f2e65732c444e532e3338393d7777772e706f7a75656c6f64657a61727a6f6e2e65732c444e532e3339303d7777772e707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3339313d7777772e70756572746f646573616e74616372757a2e65732c444e532e3339323d7777772e7265626f6c6c61722e65732c444e532e3339333d7777772e72696f6c6f626f732e65732c444e532e3339343d7777772e726f626c6564696c6c6f6465676174612e65732c444e532e3339353d7777772e726f626c6564696c6c6f64656c61766572612e65732c444e532e3339363d7777772e726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3339373d7777772e726f626c65646f6c6c616e6f2e65732c444e532e3339383d7777772e726f6d616e676f72646f2e65732c444e532e3339393d7777772e7275616e65732e65732c444e532e3430303d7777772e73616c6f72696e6f2e65732c444e532e3430313d7777772e73616c7661746965727261646573616e746961676f2e65732c444e532e3430323d7777772e73616e6d617274696e646574726576656a6f2e65732c444e532e3430333d7777772e6179746f73616e7461616e612e65732c444e532e3430343d7777772e73616e74616372757a64656c617369657272612e65732c444e532e3430353d7777772e73616e74616372757a646570616e69616775612e65732c444e532e3430363d7777772e73616e74616d6172746164656d6167617363612e65732c444e532e3430373d7777772e73616e746961676f64656c63616d706f2e65732c444e532e3430383d7777772e73616e746962616e657a656c616c746f2e65732c444e532e3430393d7777772e73616e746962616e657a656c62616a6f2e65732c444e532e3431303d7777772e736175636564696c6c612e65732c444e532e3431313d7777772e7365677572616465746f726f2e65732c444e532e3431323d7777772e736572726164696c6c612e65732c444e532e3431333d7777772e73657272656a6f6e2e65732c444e532e3431343d7777772e73696572726164656675656e7465732e65732c444e532e3431353d7777772e74616c6176616e2e65732c444e532e3431363d7777772e74616c6176657275656c6164656c61766572612e65732c444e532e3431373d7777772e74616c617975656c612e65732c444e532e3431383d7777772e74656a65646164657469657461722e65732c444e532e3431393d7777772e746f72696c2e65732c444e532e3432303d7777772e746f726e6176616361732e65732c444e532e3432313d7777772e6179746f656c746f726e6f2e65732c444e532e3432323d7777772e746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3432333d7777772e746f72726563696c6c617364656c6174696573612e65732c444e532e3432343d7777772e746f7272656465646f6e6d696775656c2e65732c444e532e3432353d7777772e746f727265646573616e74616d617269612e65732c444e532e3432363d7777772e746f7272656a6f6e656c727562696f2e65732c444e532e3432373d7777772e746f7272656a6f6e63696c6c6f2e65732c444e532e3432383d7777772e746f7272656d656e67612e65732c444e532e3432393d7777772e746f7272656d6f6368612e65732c444e532e3433303d7777772e746f7272656f7267617a2e65732c444e532e3433313d7777772e746f7272657175656d6164612e65732c444e532e3433323d7777772e76616c64617374696c6c61732e65732c444e532e3433333d7777772e76616c646563616e6173646574616a6f2e65732c444e532e3433343d7777772e76616c64656675656e7465732e65732c444e532e3433353d7777772e76616c646568756e6361722e65732c444e532e3433363d7777772e76616c6465696e69676f732e65732c444e532e3433373d7777772e76616c64656c6163617361646574616a6f2e65732c444e532e3433383d7777772e76616c64656d6f72616c65732e65732c444e532e3433393d7777772e76616c64656f626973706f2e65732c444e532e3434303d7777772e76616c646573616c6f722e65732c444e532e3434313d7777772e76616c72696f2e65732c444e532e3434323d7777772e76616c656e6369616465616c63616e746172612e65732c444e532e3434333d7777772e76616c766572646564656c61766572612e65732c444e532e3434343d7777772e76616c766572646564656c667265736e6f2e65732c444e532e3434353d7777772e766567617669616e612e65732c444e532e3434363d7777772e7669616e64617264656c61766572612e65732c444e532e3434373d7777772e76696c6c6164656c63616d706f2e65732c444e532e3434383d7777772e76696c6c6164656c7265792e65732c444e532e3434393d7777772e76696c6c616d65736961732e65732c444e532e3435303d7777772e76696c6c616d69656c2e65732c444e532e3435313d7777772e76696c6c616e7565766164656c617369657272612e65732c444e532e3435323d7777772e76696c6c617264656c706564726f736f2e65732c444e532e3435333d7777772e76696c6c61726465706c6173656e6369612e65732c444e532e3435343d7777772e76696c6c61736275656e61736465676174612e65732c444e532e3435353d7777772e7a61727a6164656772616e6164696c6c612e65732c444e532e3435363d7777772e7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3435373d7777772e7a61727a616c616d61796f722e65732c444e532e3435383d7777772e7a6f726974612e65732c444e532e3435393d7777772e726f73616c656a6f2e65732c444e532e3436303d7777772e766567617669616e612e65732c444e532e3436313d7777772e616c61676f6e64656c72696f2e65732c444e532e3436323d7777772e7469657461722e65732c444e532e3436333d7777772e76616c646573616c6f722e65732c444e532e3436343d7777772e6e6176617472617369657272612e65732c444e532e3436353d7777772e7269766572616465667265736e65646f73612e65732c444e532e3436363d7777772e656c6d73616e67696c2e65732c444e532e3436373d7777772e74616a6f73616c6f722e65732c444e532e3436383d7777772e76616c6c65616d62726f7a2e65732c444e532e3436393d7777772e6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3437303d7777772e6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3437313d7777772e6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3437323d7777772e6d616e636f6d756e6964616464656c61766572612e65732c444e532e3437333d7777772e6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3437343d7777772e76696c6c7565726361732d69626f7265732d6a6172612e6573",
+ .str =
+ "2.5.29.17=#1382304b444e532e313d6162616469612e65732c444e532e323d61626572747572612e65732c444e532e333d616365626f2e65732c444e532e343d61636568756368652e65732c444e532e353d6163656974756e612e65732c444e532e363d61686967616c2e65732c444e532e373d616c61676f6e64656c72696f2e65732c444e532e383d616c636f6c6c6172696e2e65732c444e532e393d6179746f616c62616c612e65732c444e532e31303d6179746f616c63616e746172612e65732c444e532e31313d616c637565736361722e65732c444e532e31323d616c64656163656e74656e6572612e65732c444e532e31333d616c64656164656c63616e6f2e65732c444e532e31343d6c61616c64656164656c6f626973706f2e65732c444e532e31353d616c6465616e7565766164656c61766572612e65732c444e532e31363d616c6465616e7565766164656c63616d696e6f2e65732c444e532e31373d616c64656875656c6164656c6a657274652e65732c444e532e31383d6179746f616c69612e65732c444e532e31393d616c69736564612e65732c444e532e32303d616c6d6172617a2e65732c444e532e32313d616c6d6f686172696e2e65732c444e532e32323d6179746f6172726f796f64656c616c757a2e65732c444e532e32333d6172726f796f6d6f6c696e6f732e65732c444e532e32343d6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e32353d62616e6f7364656d6f6e74656d61796f722e65732c444e532e32363d6261727261646f2e65732c444e532e32373d62656c76697364656d6f6e726f792e65732c444e532e32383d62656e71756572656e6369612e65732c444e532e32393d626572726f63616c656a6f2e65732c444e532e33303d6265727a6f63616e612e65732c444e532e33313d626f686f6e616c646569626f722e65732c444e532e33323d626f74696a612e65732c444e532e33333d62726f7a61732e65732c444e532e33343d636162616e617364656c63617374696c6c6f2e65732c444e532e33353d636162657a6162656c6c6f73612e65732c444e532e33363d636162657a75656c6164656c76616c6c652e65732c444e532e33373d6361627265726f2e65732c444e532e33383d636163686f7272696c6c612e65732c444e532e33393d636164616c736f2e65732c444e532e34303d63616c7a6164696c6c612e65732c444e532e34313d63616d696e6f6d6f726973636f2e65732c444e532e34323d63616d70696c6c6f646564656c6569746f73612e65732c444e532e34333d63616d706f6c756761722e65732c444e532e34343d63616e616d65726f2e65732c444e532e34353d63616e61766572616c2e65732c444e532e34363d63617262616a6f2e65732c444e532e34373d6361726361626f736f2e65732c444e532e34383d63617272617363616c656a6f2e65732c444e532e34393d63617361726465636163657265732e65732c444e532e35303d6361736172646570616c6f6d65726f2e65732c444e532e35313d6361736172657364656c61736875726465732e65732c444e532e35323d63617361736465646f6e616e746f6e696f2e65732c444e532e35333d63617361736465646f6e676f6d657a2e65732c444e532e35343d636173617364656c63617374616e61722e65732c444e532e35353d636173617364656c6d6f6e74652e65732c444e532e35363d636173617364656d696c6c616e2e65732c444e532e35373d636173617364656d697261766574652e65732c444e532e35383d6361736174656a6164612e65732c444e532e35393d636173696c6c61736465636f7269612e65732c444e532e36303d63617374616e6172646569626f722e65732c444e532e36313d6365636c6176696e2e65732c444e532e36323d636564696c6c6f2e65732c444e532e36333d636572657a6f2e65732c444e532e36343d63696c6c65726f732e65732c444e532e36353d636f6c6c61646f2e65732c444e532e36363d636f6e71756973746164656c617369657272612e65732c444e532e36373d636f7269612e65732c444e532e36383d637561636f73646579757374652e65732c444e532e36393d6c6163756d6272652e65732c444e532e37303d64656c6569746f73612e65732c444e532e37313d64657363617267616d617269612e65732c444e532e37323d656c6a61732e65732c444e532e37333d657363757269616c2e65732c444e532e37343d667265736e65646f736f646569626f722e65732c444e532e37353d67616c697374656f2e65732c444e532e37363d6761726369617a2e65732c444e532e37373d6c6167617267616e74612e65732c444e532e37383d67617267616e74616c616f6c6c612e65732c444e532e37393d67617267616e74696c6c612e65732c444e532e38303d67617267756572612e65732c444e532e38313d676172726f76696c6c61736465616c636f6e657461722e65732c444e532e38323d67617276696e2e65732c444e532e38333d676174612e65732c444e532e38343d6179746f656c676f72646f2e65732c444e532e38353d6c616772616e6a612e65732c444e532e38363d6c616772616e6a6164656772616e6164696c6c612e65732c444e532e38373d6179756e74616d69656e746f646567756164616c7570652e65732c444e532e38383d6775696a6f6465636f7269612e65732c444e532e38393d6775696a6f646567616c697374656f2e65732c444e532e39303d6775696a6f64656772616e6164696c6c612e65732c444e532e39313d6775696a6f646573616e7461626172626172612e65732c444e532e39323d6865726775696a75656c612e65732c444e532e39333d6865726e616e706572657a2e65732c444e532e39343d686572726572616465616c63616e746172612e65732c444e532e39353d68657272657275656c612e65732c444e532e39363d6865727661732e65732c444e532e39373d686967756572612e65732c444e532e39383d68696e6f6a616c2e65732c444e532e39393d686f6c67756572612e65732c444e532e3130303d686f796f732e65732c444e532e3130313d6875656c6167612e65732c444e532e3130323d6962616865726e616e646f2e65732c444e532e3130333d6a6172616963656a6f2e65732c444e532e3130343d6a617261697a64656c61766572612e65732c444e532e3130353d6a6172616e64696c6c6164656c61766572612e65732c444e532e3130363d6a6172696c6c612e65732c444e532e3130373d6a657274652e65732c444e532e3130383d6c616472696c6c61722e65732c444e532e3130393d6c6f67726f73616e2e65732c444e532e3131303d6c6f73617264656c61766572612e65732c444e532e3131313d6d6164726967616c656a6f2e65732c444e532e3131323d6d6164726967616c64656c61766572612e65732c444e532e3131333d6d6164726f6e6572612e65732c444e532e3131343d6d616a616461732e65732c444e532e3131353d6d616c706172746964616465636163657265732e65732c444e532e3131363d6d616c706172746964616465706c6173656e6369612e65732c444e532e3131373d6d617263686167617a2e65732c444e532e3131383d6d6174616465616c63616e746172612e65732c444e532e3131393d6d656d6272696f2e65732c444e532e3132303d6d65736173646569626f722e65732c444e532e3132313d6d69616a616461732e65732c444e532e3132323d6d696c6c616e65732e65732c444e532e3132333d6d69726162656c2e65732c444e532e3132343d6d6f686564617364656772616e6164696c6c612e65732c444e532e3132353d6d6f6e726f792e65732c444e532e3132363d6d6f6e74616e6368657a2e65732c444e532e3132373d6d6f6e74656865726d6f736f2e65732c444e532e3132383d6d6f72616c656a612e65732c444e532e3132393d6d6f7263696c6c6f2e65732c444e532e3133303d6e617661636f6e63656a6f2e65732c444e532e3133313d6e6176616c76696c6c6172646569626f722e65732c444e532e3133323d6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3133333d6e6176617364656c6d6164726f6e6f2e65732c444e532e3133343d6e6176617472617369657272612e65732c444e532e3133353d6e6176657a75656c61732e65732c444e532e3133363d6e756e6f6d6f72616c2e65732c444e532e3133373d6f6c6976616465706c6173656e6369612e65732c444e532e3133383d70616c6f6d65726f2e65732c444e532e3133393d70617361726f6e64656c61766572612e65732c444e532e3134303d706564726f736f64656163696d2e65732c444e532e3134313d706572616c65646164656c616d6174612e65732c444e532e3134323d706572616c656461646573616e726f6d616e2e65732c444e532e3134333d706572616c657364656c70756572746f2e65732c444e532e3134343d7065736375657a612e65732c444e532e3134353d6c6170657367612e65732c444e532e3134363d70696564726173616c6261732e65732c444e532e3134373d70696e6f6672616e71756561646f2e65732c444e532e3134383d70696f726e616c2e65732c444e532e3134393d706c6173656e7a75656c612e65732c444e532e3135303d706f7274616a652e65732c444e532e3135313d706f7274657a75656c6f2e65732c444e532e3135323d706f7a75656c6f64657a61727a6f6e2e65732c444e532e3135333d707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3135343d70756572746f646573616e74616372757a2e65732c444e532e3135353d7265626f6c6c61722e65732c444e532e3135363d72696f6c6f626f732e65732c444e532e3135373d726f626c6564696c6c6f6465676174612e65732c444e532e3135383d726f626c6564696c6c6f64656c61766572612e65732c444e532e3135393d726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3136303d726f626c65646f6c6c616e6f2e65732c444e532e3136313d726f6d616e676f72646f2e65732c444e532e3136323d7275616e65732e65732c444e532e3136333d73616c6f72696e6f2e65732c444e532e3136343d73616c7661746965727261646573616e746961676f2e65732c444e532e3136353d73616e6d617274696e646574726576656a6f2e65732c444e532e3136363d6179746f73616e7461616e612e65732c444e532e3136373d73616e74616372757a64656c617369657272612e65732c444e532e3136383d73616e74616372757a646570616e69616775612e65732c444e532e3136393d73616e74616d6172746164656d6167617363612e65732c444e532e3137303d73616e746961676f64656c63616d706f2e65732c444e532e3137313d73616e746962616e657a656c616c746f2e65732c444e532e3137323d73616e746962616e657a656c62616a6f2e65732c444e532e3137333d736175636564696c6c612e65732c444e532e3137343d7365677572616465746f726f2e65732c444e532e3137353d736572726164696c6c612e65732c444e532e3137363d73657272656a6f6e2e65732c444e532e3137373d73696572726164656675656e7465732e65732c444e532e3137383d74616c6176616e2e65732c444e532e3137393d74616c6176657275656c6164656c61766572612e65732c444e532e3138303d74616c617975656c612e65732c444e532e3138313d74656a65646164657469657461722e65732c444e532e3138323d746f72696c2e65732c444e532e3138333d746f726e6176616361732e65732c444e532e3138343d6179746f656c746f726e6f2e65732c444e532e3138353d746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3138363d746f72726563696c6c617364656c6174696573612e65732c444e532e3138373d746f7272656465646f6e6d696775656c2e65732c444e532e3138383d746f727265646573616e74616d617269612e65732c444e532e3138393d746f7272656a6f6e656c727562696f2e65732c444e532e3139303d746f7272656a6f6e63696c6c6f2e65732c444e532e3139313d746f7272656d656e67612e65732c444e532e3139323d746f7272656d6f6368612e65732c444e532e3139333d746f7272656f7267617a2e65732c444e532e3139343d746f7272657175656d6164612e65732c444e532e3139353d76616c64617374696c6c61732e65732c444e532e3139363d76616c646563616e6173646574616a6f2e65732c444e532e3139373d76616c64656675656e7465732e65732c444e532e3139383d76616c646568756e6361722e65732c444e532e3139393d76616c6465696e69676f732e65732c444e532e3230303d76616c64656c6163617361646574616a6f2e65732c444e532e3230313d76616c64656d6f72616c65732e65732c444e532e3230323d76616c64656f626973706f2e65732c444e532e3230333d76616c646573616c6f722e65732c444e532e3230343d76616c72696f2e65732c444e532e3230353d76616c656e6369616465616c63616e746172612e65732c444e532e3230363d76616c766572646564656c61766572612e65732c444e532e3230373d76616c766572646564656c667265736e6f2e65732c444e532e3230383d766567617669616e612e65732c444e532e3230393d7669616e64617264656c61766572612e65732c444e532e3231303d76696c6c6164656c63616d706f2e65732c444e532e3231313d76696c6c6164656c7265792e65732c444e532e3231323d76696c6c616d65736961732e65732c444e532e3231333d76696c6c616d69656c2e65732c444e532e3231343d76696c6c616e7565766164656c617369657272612e65732c444e532e3231353d76696c6c617264656c706564726f736f2e65732c444e532e3231363d76696c6c61726465706c6173656e6369612e65732c444e532e3231373d76696c6c61736275656e61736465676174612e65732c444e532e3231383d7a61727a6164656772616e6164696c6c612e65732c444e532e3231393d7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3232303d7a61727a616c616d61796f722e65732c444e532e3232313d7a6f726974612e65732c444e532e3232323d726f73616c656a6f2e65732c444e532e3232333d766567617669616e612e65732c444e532e3232343d616c61676f6e64656c72696f2e65732c444e532e3232353d7469657461722e65732c444e532e3232363d76616c646573616c6f722e65732c444e532e3232373d6e6176617472617369657272612e65732c444e532e3232383d7269766572616465667265736e65646f73612e65732c444e532e3232393d656c6d73616e67696c2e65732c444e532e3233303d74616a6f73616c6f722e65732c444e532e3233313d76616c6c65616d62726f7a2e65732c444e532e3233323d6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3233333d6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3233343d6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3233353d6d616e636f6d756e6964616464656c61766572612e65732c444e532e3233363d6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3233373d76696c6c7565726361732d69626f7265732d6a6172612e65732c444e532e3233383d7777772e6162616469612e65732c444e532e3233393d7777772e61626572747572612e65732c444e532e3234303d7777772e616365626f2e65732c444e532e3234313d7777772e61636568756368652e65732c444e532e3234323d7777772e6163656974756e612e65732c444e532e3234333d7777772e61686967616c2e65732c444e532e3234343d7777772e616c61676f6e64656c72696f2e65732c444e532e3234353d7777772e616c636f6c6c6172696e2e65732c444e532e3234363d7777772e6179746f616c62616c612e65732c444e532e3234373d7777772e6179746f616c63616e746172612e65732c444e532e3234383d7777772e616c637565736361722e65732c444e532e3234393d7777772e616c64656163656e74656e6572612e65732c444e532e3235303d7777772e616c64656164656c63616e6f2e65732c444e532e3235313d7777772e6c61616c64656164656c6f626973706f2e65732c444e532e3235323d7777772e616c6465616e7565766164656c61766572612e65732c444e532e3235333d7777772e616c6465616e7565766164656c63616d696e6f2e65732c444e532e3235343d7777772e616c64656875656c6164656c6a657274652e65732c444e532e3235353d7777772e6179746f616c69612e65732c444e532e3235363d7777772e616c69736564612e65732c444e532e3235373d7777772e616c6d6172617a2e65732c444e532e3235383d7777772e616c6d6f686172696e2e65732c444e532e3235393d7777772e6179746f6172726f796f64656c616c757a2e65732c444e532e3236303d7777772e6172726f796f6d6f6c696e6f732e65732c444e532e3236313d7777772e6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e3236323d7777772e62616e6f7364656d6f6e74656d61796f722e65732c444e532e3236333d7777772e6261727261646f2e65732c444e532e3236343d7777772e62656c76697364656d6f6e726f792e65732c444e532e3236353d7777772e62656e71756572656e6369612e65732c444e532e3236363d7777772e626572726f63616c656a6f2e65732c444e532e3236373d7777772e6265727a6f63616e612e65732c444e532e3236383d7777772e626f686f6e616c646569626f722e65732c444e532e3236393d7777772e626f74696a612e65732c444e532e3237303d7777772e62726f7a61732e65732c444e532e3237313d7777772e636162616e617364656c63617374696c6c6f2e65732c444e532e3237323d7777772e636162657a6162656c6c6f73612e65732c444e532e3237333d7777772e636162657a75656c6164656c76616c6c652e65732c444e532e3237343d7777772e6361627265726f2e65732c444e532e3237353d7777772e636163686f7272696c6c612e65732c444e532e3237363d7777772e636164616c736f2e65732c444e532e3237373d7777772e63616c7a6164696c6c612e65732c444e532e3237383d7777772e63616d696e6f6d6f726973636f2e65732c444e532e3237393d7777772e63616d70696c6c6f646564656c6569746f73612e65732c444e532e3238303d7777772e63616d706f6c756761722e65732c444e532e3238313d7777772e63616e616d65726f2e65732c444e532e3238323d7777772e63616e61766572616c2e65732c444e532e3238333d7777772e63617262616a6f2e65732c444e532e3238343d7777772e6361726361626f736f2e65732c444e532e3238353d7777772e63617272617363616c656a6f2e65732c444e532e3238363d7777772e63617361726465636163657265732e65732c444e532e3238373d7777772e6361736172646570616c6f6d65726f2e65732c444e532e3238383d7777772e6361736172657364656c61736875726465732e65732c444e532e3238393d7777772e63617361736465646f6e616e746f6e696f2e65732c444e532e3239303d7777772e63617361736465646f6e676f6d657a2e65732c444e532e3239313d7777772e636173617364656c63617374616e61722e65732c444e532e3239323d7777772e636173617364656c6d6f6e74652e65732c444e532e3239333d7777772e636173617364656d696c6c616e2e65732c444e532e3239343d7777772e636173617364656d697261766574652e65732c444e532e3239353d7777772e6361736174656a6164612e65732c444e532e3239363d7777772e636173696c6c61736465636f7269612e65732c444e532e3239373d7777772e63617374616e6172646569626f722e65732c444e532e3239383d7777772e6365636c6176696e2e65732c444e532e3239393d7777772e636564696c6c6f2e65732c444e532e3330303d7777772e636572657a6f2e65732c444e532e3330313d7777772e63696c6c65726f732e65732c444e532e3330323d7777772e636f6c6c61646f2e65732c444e532e3330333d7777772e636f6e71756973746164656c617369657272612e65732c444e532e3330343d7777772e636f7269612e65732c444e532e3330353d7777772e637561636f73646579757374652e65732c444e532e3330363d7777772e6c6163756d6272652e65732c444e532e3330373d7777772e64656c6569746f73612e65732c444e532e3330383d7777772e64657363617267616d617269612e65732c444e532e3330393d7777772e656c6a61732e65732c444e532e3331303d7777772e657363757269616c2e65732c444e532e3331313d7777772e667265736e65646f736f646569626f722e65732c444e532e3331323d7777772e67616c697374656f2e65732c444e532e3331333d7777772e6761726369617a2e65732c444e532e3331343d7777772e6c6167617267616e74612e65732c444e532e3331353d7777772e67617267616e74616c616f6c6c612e65732c444e532e3331363d7777772e67617267616e74696c6c612e65732c444e532e3331373d7777772e67617267756572612e65732c444e532e3331383d7777772e676172726f76696c6c61736465616c636f6e657461722e65732c444e532e3331393d7777772e67617276696e2e65732c444e532e3332303d7777772e676174612e65732c444e532e3332313d7777772e6179746f656c676f72646f2e65732c444e532e3332323d7777772e6c616772616e6a612e65732c444e532e3332333d7777772e6c616772616e6a6164656772616e6164696c6c612e65732c444e532e3332343d7777772e6179756e74616d69656e746f646567756164616c7570652e65732c444e532e3332353d7777772e6775696a6f6465636f7269612e65732c444e532e3332363d7777772e6775696a6f646567616c697374656f2e65732c444e532e3332373d7777772e6775696a6f64656772616e6164696c6c612e65732c444e532e3332383d7777772e6775696a6f646573616e7461626172626172612e65732c444e532e3332393d7777772e6865726775696a75656c612e65732c444e532e3333303d7777772e6865726e616e706572657a2e65732c444e532e3333313d7777772e686572726572616465616c63616e746172612e65732c444e532e3333323d7777772e68657272657275656c612e65732c444e532e3333333d7777772e6865727661732e65732c444e532e3333343d7777772e686967756572612e65732c444e532e3333353d7777772e68696e6f6a616c2e65732c444e532e3333363d7777772e686f6c67756572612e65732c444e532e3333373d7777772e686f796f732e65732c444e532e3333383d7777772e6875656c6167612e65732c444e532e3333393d7777772e6962616865726e616e646f2e65732c444e532e3334303d7777772e6a6172616963656a6f2e65732c444e532e3334313d7777772e6a617261697a64656c61766572612e65732c444e532e3334323d7777772e6a6172616e64696c6c6164656c61766572612e65732c444e532e3334333d7777772e6a6172696c6c612e65732c444e532e3334343d7777772e6a657274652e65732c444e532e3334353d7777772e6c616472696c6c61722e65732c444e532e3334363d7777772e6c6f67726f73616e2e65732c444e532e3334373d7777772e6c6f73617264656c61766572612e65732c444e532e3334383d7777772e6d6164726967616c656a6f2e65732c444e532e3334393d7777772e6d6164726967616c64656c61766572612e65732c444e532e3335303d7777772e6d6164726f6e6572612e65732c444e532e3335313d7777772e6d616a616461732e65732c444e532e3335323d7777772e6d616c706172746964616465636163657265732e65732c444e532e3335333d7777772e6d616c706172746964616465706c6173656e6369612e65732c444e532e3335343d7777772e6d617263686167617a2e65732c444e532e3335353d7777772e6d6174616465616c63616e746172612e65732c444e532e3335363d7777772e6d656d6272696f2e65732c444e532e3335373d7777772e6d65736173646569626f722e65732c444e532e3335383d7777772e6d69616a616461732e65732c444e532e3335393d7777772e6d696c6c616e65732e65732c444e532e3336303d7777772e6d69726162656c2e65732c444e532e3336313d7777772e6d6f686564617364656772616e6164696c6c612e65732c444e532e3336323d7777772e6d6f6e726f792e65732c444e532e3336333d7777772e6d6f6e74616e6368657a2e65732c444e532e3336343d7777772e6d6f6e74656865726d6f736f2e65732c444e532e3336353d7777772e6d6f72616c656a612e65732c444e532e3336363d7777772e6d6f7263696c6c6f2e65732c444e532e3336373d7777772e6e617661636f6e63656a6f2e65732c444e532e3336383d7777772e6e6176616c76696c6c6172646569626f722e65732c444e532e3336393d7777772e6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3337303d7777772e6e6176617364656c6d6164726f6e6f2e65732c444e532e3337313d7777772e6e6176617472617369657272612e65732c444e532e3337323d7777772e6e6176657a75656c61732e65732c444e532e3337333d7777772e6e756e6f6d6f72616c2e65732c444e532e3337343d7777772e6f6c6976616465706c6173656e6369612e65732c444e532e3337353d7777772e70616c6f6d65726f2e65732c444e532e3337363d7777772e70617361726f6e64656c61766572612e65732c444e532e3337373d7777772e706564726f736f64656163696d2e65732c444e532e3337383d7777772e706572616c65646164656c616d6174612e65732c444e532e3337393d7777772e706572616c656461646573616e726f6d616e2e65732c444e532e3338303d7777772e706572616c657364656c70756572746f2e65732c444e532e3338313d7777772e7065736375657a612e65732c444e532e3338323d7777772e6c6170657367612e65732c444e532e3338333d7777772e70696564726173616c6261732e65732c444e532e3338343d7777772e70696e6f6672616e71756561646f2e65732c444e532e3338353d7777772e70696f726e616c2e65732c444e532e3338363d7777772e706c6173656e7a75656c612e65732c444e532e3338373d7777772e706f7274616a652e65732c444e532e3338383d7777772e706f7274657a75656c6f2e65732c444e532e3338393d7777772e706f7a75656c6f64657a61727a6f6e2e65732c444e532e3339303d7777772e707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3339313d7777772e70756572746f646573616e74616372757a2e65732c444e532e3339323d7777772e7265626f6c6c61722e65732c444e532e3339333d7777772e72696f6c6f626f732e65732c444e532e3339343d7777772e726f626c6564696c6c6f6465676174612e65732c444e532e3339353d7777772e726f626c6564696c6c6f64656c61766572612e65732c444e532e3339363d7777772e726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3339373d7777772e726f626c65646f6c6c616e6f2e65732c444e532e3339383d7777772e726f6d616e676f72646f2e65732c444e532e3339393d7777772e7275616e65732e65732c444e532e3430303d7777772e73616c6f72696e6f2e65732c444e532e3430313d7777772e73616c7661746965727261646573616e746961676f2e65732c444e532e3430323d7777772e73616e6d617274696e646574726576656a6f2e65732c444e532e3430333d7777772e6179746f73616e7461616e612e65732c444e532e3430343d7777772e73616e74616372757a64656c617369657272612e65732c444e532e3430353d7777772e73616e74616372757a646570616e69616775612e65732c444e532e3430363d7777772e73616e74616d6172746164656d6167617363612e65732c444e532e3430373d7777772e73616e746961676f64656c63616d706f2e65732c444e532e3430383d7777772e73616e746962616e657a656c616c746f2e65732c444e532e3430393d7777772e73616e746962616e657a656c62616a6f2e65732c444e532e3431303d7777772e736175636564696c6c612e65732c444e532e3431313d7777772e7365677572616465746f726f2e65732c444e532e3431323d7777772e736572726164696c6c612e65732c444e532e3431333d7777772e73657272656a6f6e2e65732c444e532e3431343d7777772e73696572726164656675656e7465732e65732c444e532e3431353d7777772e74616c6176616e2e65732c444e532e3431363d7777772e74616c6176657275656c6164656c61766572612e65732c444e532e3431373d7777772e74616c617975656c612e65732c444e532e3431383d7777772e74656a65646164657469657461722e65732c444e532e3431393d7777772e746f72696c2e65732c444e532e3432303d7777772e746f726e6176616361732e65732c444e532e3432313d7777772e6179746f656c746f726e6f2e65732c444e532e3432323d7777772e746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3432333d7777772e746f72726563696c6c617364656c6174696573612e65732c444e532e3432343d7777772e746f7272656465646f6e6d696775656c2e65732c444e532e3432353d7777772e746f727265646573616e74616d617269612e65732c444e532e3432363d7777772e746f7272656a6f6e656c727562696f2e65732c444e532e3432373d7777772e746f7272656a6f6e63696c6c6f2e65732c444e532e3432383d7777772e746f7272656d656e67612e65732c444e532e3432393d7777772e746f7272656d6f6368612e65732c444e532e3433303d7777772e746f7272656f7267617a2e65732c444e532e3433313d7777772e746f7272657175656d6164612e65732c444e532e3433323d7777772e76616c64617374696c6c61732e65732c444e532e3433333d7777772e76616c646563616e6173646574616a6f2e65732c444e532e3433343d7777772e76616c64656675656e7465732e65732c444e532e3433353d7777772e76616c646568756e6361722e65732c444e532e3433363d7777772e76616c6465696e69676f732e65732c444e532e3433373d7777772e76616c64656c6163617361646574616a6f2e65732c444e532e3433383d7777772e76616c64656d6f72616c65732e65732c444e532e3433393d7777772e76616c64656f626973706f2e65732c444e532e3434303d7777772e76616c646573616c6f722e65732c444e532e3434313d7777772e76616c72696f2e65732c444e532e3434323d7777772e76616c656e6369616465616c63616e746172612e65732c444e532e3434333d7777772e76616c766572646564656c61766572612e65732c444e532e3434343d7777772e76616c766572646564656c667265736e6f2e65732c444e532e3434353d7777772e766567617669616e612e65732c444e532e3434363d7777772e7669616e64617264656c61766572612e65732c444e532e3434373d7777772e76696c6c6164656c63616d706f2e65732c444e532e3434383d7777772e76696c6c6164656c7265792e65732c444e532e3434393d7777772e76696c6c616d65736961732e65732c444e532e3435303d7777772e76696c6c616d69656c2e65732c444e532e3435313d7777772e76696c6c616e7565766164656c617369657272612e65732c444e532e3435323d7777772e76696c6c617264656c706564726f736f2e65732c444e532e3435333d7777772e76696c6c61726465706c6173656e6369612e65732c444e532e3435343d7777772e76696c6c61736275656e61736465676174612e65732c444e532e3435353d7777772e7a61727a6164656772616e6164696c6c612e65732c444e532e3435363d7777772e7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3435373d7777772e7a61727a616c616d61796f722e65732c444e532e3435383d7777772e7a6f726974612e65732c444e532e3435393d7777772e726f73616c656a6f2e65732c444e532e3436303d7777772e766567617669616e612e65732c444e532e3436313d7777772e616c61676f6e64656c72696f2e65732c444e532e3436323d7777772e7469657461722e65732c444e532e3436333d7777772e76616c646573616c6f722e65732c444e532e3436343d7777772e6e6176617472617369657272612e65732c444e532e3436353d7777772e7269766572616465667265736e65646f73612e65732c444e532e3436363d7777772e656c6d73616e67696c2e65732c444e532e3436373d7777772e74616a6f73616c6f722e65732c444e532e3436383d7777772e76616c6c65616d62726f7a2e65732c444e532e3436393d7777772e6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3437303d7777772e6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3437313d7777772e6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3437323d7777772e6d616e636f6d756e6964616464656c61766572612e65732c444e532e3437333d7777772e6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3437343d7777772e76696c6c7565726361732d69626f7265732d6a6172612e6573,EMAIL=webmaster@dip-caceres.es,CN=www.dip-caceres.es,OU=DIPUTACION PROVINCIAL DE CACERES,O=DIPUTACION PROVINCIAL DE CACERES,L=CACERES,ST=CACERES,C=ES",
+ .raw = {(void *)
+ "\x30\x82\x31\x29\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x45\x53\x31\x10\x30\x0e\x06\x03\x55\x04\x08\x13\x07\x43\x41\x43\x45\x52\x45\x53\x31\x10\x30\x0e\x06\x03\x55\x04\x07\x13\x07\x43\x41\x43\x45\x52\x45\x53\x31\x29\x30\x27\x06\x03\x55\x04\x0a\x13\x20\x44\x49\x50\x55\x54\x41\x43\x49\x4f\x4e\x20\x50\x52\x4f\x56\x49\x4e\x43\x49\x41\x4c\x20\x44\x45\x20\x43\x41\x43\x45\x52\x45\x53\x31\x29\x30\x27\x06\x03\x55\x04\x0b\x13\x20\x44\x49\x50\x55\x54\x41\x43\x49\x4f\x4e\x20\x50\x52\x4f\x56\x49\x4e\x43\x49\x41\x4c\x20\x44\x45\x20\x43\x41\x43\x45\x52\x45\x53\x31\x1b\x30\x19\x06\x03\x55\x04\x03\x13\x12\x77\x77\x77\x2e\x64\x69\x70\x2d\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x31\x27\x30\x25\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x09\x01\x16\x18\x77\x65\x62\x6d\x61\x73\x74\x65\x72\x40\x64\x69\x70\x2d\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x31\x82\x30\x58\x30\x82\x30\x54\x06\x03\x55\x1d\x11\x13\x82\x30\x4b\x44\x4e\x53\x2e\x31\x3d\x61\x62\x61\x64\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x3d\x61\x62\x65\x72\x74\x75\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x3d\x61\x63\x65\x62\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x3d\x61\x63\x65\x68\x75\x63\x68\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x3d\x61\x63\x65\x69\x74\x75\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x3d\x61\x68\x69\x67\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x3d\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x3d\x61\x6c\x63\x6f\x6c\x6c\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x3d\x61\x79\x74\x6f\x61\x6c\x62\x61\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x3d\x61\x79\x74\x6f\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x3d\x61\x6c\x63\x75\x65\x73\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x3d\x61\x6c\x64\x65\x61\x63\x65\x6e\x74\x65\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x3d\x61\x6c\x64\x65\x61\x64\x65\x6c\x63\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x3d\x6c\x61\x61\x6c\x64\x65\x61\x64\x65\x6c\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x3d\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x3d\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x63\x61\x6d\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x3d\x61\x6c\x64\x65\x68\x75\x65\x6c\x61\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x3d\x61\x79\x74\x6f\x61\x6c\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x3d\x61\x6c\x69\x73\x65\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x3d\x61\x6c\x6d\x61\x72\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x3d\x61\x6c\x6d\x6f\x68\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x3d\x61\x79\x74\x6f\x61\x72\x72\x6f\x79\x6f\x64\x65\x6c\x61\x6c\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x3d\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x3d\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x3d\x62\x61\x6e\x6f\x73\x64\x65\x6d\x6f\x6e\x74\x65\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x3d\x62\x61\x72\x72\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x3d\x62\x65\x6c\x76\x69\x73\x64\x65\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x3d\x62\x65\x6e\x71\x75\x65\x72\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x3d\x62\x65\x72\x72\x6f\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x3d\x62\x65\x72\x7a\x6f\x63\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x3d\x62\x6f\x68\x6f\x6e\x61\x6c\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x3d\x62\x6f\x74\x69\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x3d\x62\x72\x6f\x7a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x3d\x63\x61\x62\x61\x6e\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x3d\x63\x61\x62\x65\x7a\x61\x62\x65\x6c\x6c\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x3d\x63\x61\x62\x65\x7a\x75\x65\x6c\x61\x64\x65\x6c\x76\x61\x6c\x6c\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x3d\x63\x61\x62\x72\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x3d\x63\x61\x63\x68\x6f\x72\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x3d\x63\x61\x64\x61\x6c\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x3d\x63\x61\x6c\x7a\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x3d\x63\x61\x6d\x69\x6e\x6f\x6d\x6f\x72\x69\x73\x63\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x3d\x63\x61\x6d\x70\x69\x6c\x6c\x6f\x64\x65\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x3d\x63\x61\x6d\x70\x6f\x6c\x75\x67\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x3d\x63\x61\x6e\x61\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x3d\x63\x61\x6e\x61\x76\x65\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x3d\x63\x61\x72\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x3d\x63\x61\x72\x63\x61\x62\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x38\x3d\x63\x61\x72\x72\x61\x73\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x39\x3d\x63\x61\x73\x61\x72\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x30\x3d\x63\x61\x73\x61\x72\x64\x65\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x31\x3d\x63\x61\x73\x61\x72\x65\x73\x64\x65\x6c\x61\x73\x68\x75\x72\x64\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x32\x3d\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x61\x6e\x74\x6f\x6e\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x33\x3d\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x67\x6f\x6d\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x34\x3d\x63\x61\x73\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x61\x6e\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x35\x3d\x63\x61\x73\x61\x73\x64\x65\x6c\x6d\x6f\x6e\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x36\x3d\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x6c\x6c\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x37\x3d\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x72\x61\x76\x65\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x38\x3d\x63\x61\x73\x61\x74\x65\x6a\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x39\x3d\x63\x61\x73\x69\x6c\x6c\x61\x73\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x30\x3d\x63\x61\x73\x74\x61\x6e\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x31\x3d\x63\x65\x63\x6c\x61\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x32\x3d\x63\x65\x64\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x33\x3d\x63\x65\x72\x65\x7a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x34\x3d\x63\x69\x6c\x6c\x65\x72\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x35\x3d\x63\x6f\x6c\x6c\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x36\x3d\x63\x6f\x6e\x71\x75\x69\x73\x74\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x37\x3d\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x38\x3d\x63\x75\x61\x63\x6f\x73\x64\x65\x79\x75\x73\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x39\x3d\x6c\x61\x63\x75\x6d\x62\x72\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x30\x3d\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x31\x3d\x64\x65\x73\x63\x61\x72\x67\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x32\x3d\x65\x6c\x6a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x33\x3d\x65\x73\x63\x75\x72\x69\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x34\x3d\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x6f\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x35\x3d\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x36\x3d\x67\x61\x72\x63\x69\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x37\x3d\x6c\x61\x67\x61\x72\x67\x61\x6e\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x38\x3d\x67\x61\x72\x67\x61\x6e\x74\x61\x6c\x61\x6f\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x39\x3d\x67\x61\x72\x67\x61\x6e\x74\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x30\x3d\x67\x61\x72\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x31\x3d\x67\x61\x72\x72\x6f\x76\x69\x6c\x6c\x61\x73\x64\x65\x61\x6c\x63\x6f\x6e\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x32\x3d\x67\x61\x72\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x33\x3d\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x34\x3d\x61\x79\x74\x6f\x65\x6c\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x35\x3d\x6c\x61\x67\x72\x61\x6e\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x36\x3d\x6c\x61\x67\x72\x61\x6e\x6a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x37\x3d\x61\x79\x75\x6e\x74\x61\x6d\x69\x65\x6e\x74\x6f\x64\x65\x67\x75\x61\x64\x61\x6c\x75\x70\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x38\x3d\x67\x75\x69\x6a\x6f\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x39\x3d\x67\x75\x69\x6a\x6f\x64\x65\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x30\x3d\x67\x75\x69\x6a\x6f\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x31\x3d\x67\x75\x69\x6a\x6f\x64\x65\x73\x61\x6e\x74\x61\x62\x61\x72\x62\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x32\x3d\x68\x65\x72\x67\x75\x69\x6a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x33\x3d\x68\x65\x72\x6e\x61\x6e\x70\x65\x72\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x34\x3d\x68\x65\x72\x72\x65\x72\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x35\x3d\x68\x65\x72\x72\x65\x72\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x36\x3d\x68\x65\x72\x76\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x37\x3d\x68\x69\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x38\x3d\x68\x69\x6e\x6f\x6a\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x39\x3d\x68\x6f\x6c\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x30\x3d\x68\x6f\x79\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x31\x3d\x68\x75\x65\x6c\x61\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x32\x3d\x69\x62\x61\x68\x65\x72\x6e\x61\x6e\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x33\x3d\x6a\x61\x72\x61\x69\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x34\x3d\x6a\x61\x72\x61\x69\x7a\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x35\x3d\x6a\x61\x72\x61\x6e\x64\x69\x6c\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x36\x3d\x6a\x61\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x37\x3d\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x38\x3d\x6c\x61\x64\x72\x69\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x39\x3d\x6c\x6f\x67\x72\x6f\x73\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x30\x3d\x6c\x6f\x73\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x31\x3d\x6d\x61\x64\x72\x69\x67\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x32\x3d\x6d\x61\x64\x72\x69\x67\x61\x6c\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x33\x3d\x6d\x61\x64\x72\x6f\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x34\x3d\x6d\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x35\x3d\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x36\x3d\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x37\x3d\x6d\x61\x72\x63\x68\x61\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x38\x3d\x6d\x61\x74\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x39\x3d\x6d\x65\x6d\x62\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x30\x3d\x6d\x65\x73\x61\x73\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x31\x3d\x6d\x69\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x32\x3d\x6d\x69\x6c\x6c\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x33\x3d\x6d\x69\x72\x61\x62\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x34\x3d\x6d\x6f\x68\x65\x64\x61\x73\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x35\x3d\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x36\x3d\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x37\x3d\x6d\x6f\x6e\x74\x65\x68\x65\x72\x6d\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x38\x3d\x6d\x6f\x72\x61\x6c\x65\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x39\x3d\x6d\x6f\x72\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x30\x3d\x6e\x61\x76\x61\x63\x6f\x6e\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x31\x3d\x6e\x61\x76\x61\x6c\x76\x69\x6c\x6c\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x32\x3d\x6e\x61\x76\x61\x6c\x6d\x6f\x72\x61\x6c\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x33\x3d\x6e\x61\x76\x61\x73\x64\x65\x6c\x6d\x61\x64\x72\x6f\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x34\x3d\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x35\x3d\x6e\x61\x76\x65\x7a\x75\x65\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x36\x3d\x6e\x75\x6e\x6f\x6d\x6f\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x37\x3d\x6f\x6c\x69\x76\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x38\x3d\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x39\x3d\x70\x61\x73\x61\x72\x6f\x6e\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x30\x3d\x70\x65\x64\x72\x6f\x73\x6f\x64\x65\x61\x63\x69\x6d\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x31\x3d\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x32\x3d\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x73\x61\x6e\x72\x6f\x6d\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x33\x3d\x70\x65\x72\x61\x6c\x65\x73\x64\x65\x6c\x70\x75\x65\x72\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x34\x3d\x70\x65\x73\x63\x75\x65\x7a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x35\x3d\x6c\x61\x70\x65\x73\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x36\x3d\x70\x69\x65\x64\x72\x61\x73\x61\x6c\x62\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x37\x3d\x70\x69\x6e\x6f\x66\x72\x61\x6e\x71\x75\x65\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x38\x3d\x70\x69\x6f\x72\x6e\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x39\x3d\x70\x6c\x61\x73\x65\x6e\x7a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x30\x3d\x70\x6f\x72\x74\x61\x6a\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x31\x3d\x70\x6f\x72\x74\x65\x7a\x75\x65\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x32\x3d\x70\x6f\x7a\x75\x65\x6c\x6f\x64\x65\x7a\x61\x72\x7a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x33\x3d\x70\x75\x65\x62\x6c\x6f\x6e\x75\x65\x76\x6f\x64\x65\x6d\x69\x72\x61\x6d\x6f\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x34\x3d\x70\x75\x65\x72\x74\x6f\x64\x65\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x35\x3d\x72\x65\x62\x6f\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x36\x3d\x72\x69\x6f\x6c\x6f\x62\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x37\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x38\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x39\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x74\x72\x75\x6a\x69\x6c\x6c\x6f\x2c\x44\x4e\x53\x2e\x31\x36\x30\x3d\x72\x6f\x62\x6c\x65\x64\x6f\x6c\x6c\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x31\x3d\x72\x6f\x6d\x61\x6e\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x32\x3d\x72\x75\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x33\x3d\x73\x61\x6c\x6f\x72\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x34\x3d\x73\x61\x6c\x76\x61\x74\x69\x65\x72\x72\x61\x64\x65\x73\x61\x6e\x74\x69\x61\x67\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x35\x3d\x73\x61\x6e\x6d\x61\x72\x74\x69\x6e\x64\x65\x74\x72\x65\x76\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x36\x3d\x61\x79\x74\x6f\x73\x61\x6e\x74\x61\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x37\x3d\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x38\x3d\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x70\x61\x6e\x69\x61\x67\x75\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x39\x3d\x73\x61\x6e\x74\x61\x6d\x61\x72\x74\x61\x64\x65\x6d\x61\x67\x61\x73\x63\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x30\x3d\x73\x61\x6e\x74\x69\x61\x67\x6f\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x31\x3d\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x61\x6c\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x32\x3d\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x33\x3d\x73\x61\x75\x63\x65\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x34\x3d\x73\x65\x67\x75\x72\x61\x64\x65\x74\x6f\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x35\x3d\x73\x65\x72\x72\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x36\x3d\x73\x65\x72\x72\x65\x6a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x37\x3d\x73\x69\x65\x72\x72\x61\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x38\x3d\x74\x61\x6c\x61\x76\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x39\x3d\x74\x61\x6c\x61\x76\x65\x72\x75\x65\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x30\x3d\x74\x61\x6c\x61\x79\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x31\x3d\x74\x65\x6a\x65\x64\x61\x64\x65\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x32\x3d\x74\x6f\x72\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x33\x3d\x74\x6f\x72\x6e\x61\x76\x61\x63\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x34\x3d\x61\x79\x74\x6f\x65\x6c\x74\x6f\x72\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x35\x3d\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x64\x65\x6c\x6f\x73\x61\x6e\x67\x65\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x36\x3d\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x73\x64\x65\x6c\x61\x74\x69\x65\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x37\x3d\x74\x6f\x72\x72\x65\x64\x65\x64\x6f\x6e\x6d\x69\x67\x75\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x38\x3d\x74\x6f\x72\x72\x65\x64\x65\x73\x61\x6e\x74\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x39\x3d\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x65\x6c\x72\x75\x62\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x30\x3d\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x31\x3d\x74\x6f\x72\x72\x65\x6d\x65\x6e\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x32\x3d\x74\x6f\x72\x72\x65\x6d\x6f\x63\x68\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x33\x3d\x74\x6f\x72\x72\x65\x6f\x72\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x34\x3d\x74\x6f\x72\x72\x65\x71\x75\x65\x6d\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x35\x3d\x76\x61\x6c\x64\x61\x73\x74\x69\x6c\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x36\x3d\x76\x61\x6c\x64\x65\x63\x61\x6e\x61\x73\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x37\x3d\x76\x61\x6c\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x38\x3d\x76\x61\x6c\x64\x65\x68\x75\x6e\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x39\x3d\x76\x61\x6c\x64\x65\x69\x6e\x69\x67\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x30\x3d\x76\x61\x6c\x64\x65\x6c\x61\x63\x61\x73\x61\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x31\x3d\x76\x61\x6c\x64\x65\x6d\x6f\x72\x61\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x32\x3d\x76\x61\x6c\x64\x65\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x33\x3d\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x34\x3d\x76\x61\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x35\x3d\x76\x61\x6c\x65\x6e\x63\x69\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x36\x3d\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x37\x3d\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x66\x72\x65\x73\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x38\x3d\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x39\x3d\x76\x69\x61\x6e\x64\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x30\x3d\x76\x69\x6c\x6c\x61\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x31\x3d\x76\x69\x6c\x6c\x61\x64\x65\x6c\x72\x65\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x32\x3d\x76\x69\x6c\x6c\x61\x6d\x65\x73\x69\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x33\x3d\x76\x69\x6c\x6c\x61\x6d\x69\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x34\x3d\x76\x69\x6c\x6c\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x35\x3d\x76\x69\x6c\x6c\x61\x72\x64\x65\x6c\x70\x65\x64\x72\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x36\x3d\x76\x69\x6c\x6c\x61\x72\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x37\x3d\x76\x69\x6c\x6c\x61\x73\x62\x75\x65\x6e\x61\x73\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x38\x3d\x7a\x61\x72\x7a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x39\x3d\x7a\x61\x72\x7a\x61\x64\x65\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x30\x3d\x7a\x61\x72\x7a\x61\x6c\x61\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x31\x3d\x7a\x6f\x72\x69\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x32\x3d\x72\x6f\x73\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x33\x3d\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x34\x3d\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x35\x3d\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x36\x3d\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x37\x3d\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x38\x3d\x72\x69\x76\x65\x72\x61\x64\x65\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x39\x3d\x65\x6c\x6d\x73\x61\x6e\x67\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x30\x3d\x74\x61\x6a\x6f\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x31\x3d\x76\x61\x6c\x6c\x65\x61\x6d\x62\x72\x6f\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x32\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x61\x6c\x61\x67\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x33\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x34\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x65\x67\x61\x73\x61\x6c\x74\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x35\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x36\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x7a\x6f\x6e\x61\x63\x65\x6e\x74\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x37\x3d\x76\x69\x6c\x6c\x75\x65\x72\x63\x61\x73\x2d\x69\x62\x6f\x72\x65\x73\x2d\x6a\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x38\x3d\x77\x77\x77\x2e\x61\x62\x61\x64\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x39\x3d\x77\x77\x77\x2e\x61\x62\x65\x72\x74\x75\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x30\x3d\x77\x77\x77\x2e\x61\x63\x65\x62\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x31\x3d\x77\x77\x77\x2e\x61\x63\x65\x68\x75\x63\x68\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x32\x3d\x77\x77\x77\x2e\x61\x63\x65\x69\x74\x75\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x33\x3d\x77\x77\x77\x2e\x61\x68\x69\x67\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x34\x3d\x77\x77\x77\x2e\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x35\x3d\x77\x77\x77\x2e\x61\x6c\x63\x6f\x6c\x6c\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x36\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x62\x61\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x37\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x38\x3d\x77\x77\x77\x2e\x61\x6c\x63\x75\x65\x73\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x39\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x63\x65\x6e\x74\x65\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x30\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x64\x65\x6c\x63\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x31\x3d\x77\x77\x77\x2e\x6c\x61\x61\x6c\x64\x65\x61\x64\x65\x6c\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x32\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x33\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x63\x61\x6d\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x34\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x68\x75\x65\x6c\x61\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x35\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x36\x3d\x77\x77\x77\x2e\x61\x6c\x69\x73\x65\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x37\x3d\x77\x77\x77\x2e\x61\x6c\x6d\x61\x72\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x38\x3d\x77\x77\x77\x2e\x61\x6c\x6d\x6f\x68\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x39\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x72\x72\x6f\x79\x6f\x64\x65\x6c\x61\x6c\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x30\x3d\x77\x77\x77\x2e\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x31\x3d\x77\x77\x77\x2e\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x32\x3d\x77\x77\x77\x2e\x62\x61\x6e\x6f\x73\x64\x65\x6d\x6f\x6e\x74\x65\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x33\x3d\x77\x77\x77\x2e\x62\x61\x72\x72\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x34\x3d\x77\x77\x77\x2e\x62\x65\x6c\x76\x69\x73\x64\x65\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x35\x3d\x77\x77\x77\x2e\x62\x65\x6e\x71\x75\x65\x72\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x36\x3d\x77\x77\x77\x2e\x62\x65\x72\x72\x6f\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x37\x3d\x77\x77\x77\x2e\x62\x65\x72\x7a\x6f\x63\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x38\x3d\x77\x77\x77\x2e\x62\x6f\x68\x6f\x6e\x61\x6c\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x39\x3d\x77\x77\x77\x2e\x62\x6f\x74\x69\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x30\x3d\x77\x77\x77\x2e\x62\x72\x6f\x7a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x31\x3d\x77\x77\x77\x2e\x63\x61\x62\x61\x6e\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x32\x3d\x77\x77\x77\x2e\x63\x61\x62\x65\x7a\x61\x62\x65\x6c\x6c\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x33\x3d\x77\x77\x77\x2e\x63\x61\x62\x65\x7a\x75\x65\x6c\x61\x64\x65\x6c\x76\x61\x6c\x6c\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x34\x3d\x77\x77\x77\x2e\x63\x61\x62\x72\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x35\x3d\x77\x77\x77\x2e\x63\x61\x63\x68\x6f\x72\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x36\x3d\x77\x77\x77\x2e\x63\x61\x64\x61\x6c\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x37\x3d\x77\x77\x77\x2e\x63\x61\x6c\x7a\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x38\x3d\x77\x77\x77\x2e\x63\x61\x6d\x69\x6e\x6f\x6d\x6f\x72\x69\x73\x63\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x39\x3d\x77\x77\x77\x2e\x63\x61\x6d\x70\x69\x6c\x6c\x6f\x64\x65\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x30\x3d\x77\x77\x77\x2e\x63\x61\x6d\x70\x6f\x6c\x75\x67\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x31\x3d\x77\x77\x77\x2e\x63\x61\x6e\x61\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x32\x3d\x77\x77\x77\x2e\x63\x61\x6e\x61\x76\x65\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x33\x3d\x77\x77\x77\x2e\x63\x61\x72\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x34\x3d\x77\x77\x77\x2e\x63\x61\x72\x63\x61\x62\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x35\x3d\x77\x77\x77\x2e\x63\x61\x72\x72\x61\x73\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x36\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x37\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x64\x65\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x38\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x65\x73\x64\x65\x6c\x61\x73\x68\x75\x72\x64\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x39\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x61\x6e\x74\x6f\x6e\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x30\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x67\x6f\x6d\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x31\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x61\x6e\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x32\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6c\x6d\x6f\x6e\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x33\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x6c\x6c\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x34\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x72\x61\x76\x65\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x35\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x74\x65\x6a\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x36\x3d\x77\x77\x77\x2e\x63\x61\x73\x69\x6c\x6c\x61\x73\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x37\x3d\x77\x77\x77\x2e\x63\x61\x73\x74\x61\x6e\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x38\x3d\x77\x77\x77\x2e\x63\x65\x63\x6c\x61\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x39\x3d\x77\x77\x77\x2e\x63\x65\x64\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x30\x3d\x77\x77\x77\x2e\x63\x65\x72\x65\x7a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x31\x3d\x77\x77\x77\x2e\x63\x69\x6c\x6c\x65\x72\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x32\x3d\x77\x77\x77\x2e\x63\x6f\x6c\x6c\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x33\x3d\x77\x77\x77\x2e\x63\x6f\x6e\x71\x75\x69\x73\x74\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x34\x3d\x77\x77\x77\x2e\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x35\x3d\x77\x77\x77\x2e\x63\x75\x61\x63\x6f\x73\x64\x65\x79\x75\x73\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x36\x3d\x77\x77\x77\x2e\x6c\x61\x63\x75\x6d\x62\x72\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x37\x3d\x77\x77\x77\x2e\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x38\x3d\x77\x77\x77\x2e\x64\x65\x73\x63\x61\x72\x67\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x39\x3d\x77\x77\x77\x2e\x65\x6c\x6a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x30\x3d\x77\x77\x77\x2e\x65\x73\x63\x75\x72\x69\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x31\x3d\x77\x77\x77\x2e\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x6f\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x32\x3d\x77\x77\x77\x2e\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x33\x3d\x77\x77\x77\x2e\x67\x61\x72\x63\x69\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x34\x3d\x77\x77\x77\x2e\x6c\x61\x67\x61\x72\x67\x61\x6e\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x35\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x61\x6e\x74\x61\x6c\x61\x6f\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x36\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x61\x6e\x74\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x37\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x38\x3d\x77\x77\x77\x2e\x67\x61\x72\x72\x6f\x76\x69\x6c\x6c\x61\x73\x64\x65\x61\x6c\x63\x6f\x6e\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x39\x3d\x77\x77\x77\x2e\x67\x61\x72\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x30\x3d\x77\x77\x77\x2e\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x31\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x65\x6c\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x32\x3d\x77\x77\x77\x2e\x6c\x61\x67\x72\x61\x6e\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x33\x3d\x77\x77\x77\x2e\x6c\x61\x67\x72\x61\x6e\x6a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x34\x3d\x77\x77\x77\x2e\x61\x79\x75\x6e\x74\x61\x6d\x69\x65\x6e\x74\x6f\x64\x65\x67\x75\x61\x64\x61\x6c\x75\x70\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x35\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x36\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x37\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x38\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x73\x61\x6e\x74\x61\x62\x61\x72\x62\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x39\x3d\x77\x77\x77\x2e\x68\x65\x72\x67\x75\x69\x6a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x30\x3d\x77\x77\x77\x2e\x68\x65\x72\x6e\x61\x6e\x70\x65\x72\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x31\x3d\x77\x77\x77\x2e\x68\x65\x72\x72\x65\x72\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x32\x3d\x77\x77\x77\x2e\x68\x65\x72\x72\x65\x72\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x33\x3d\x77\x77\x77\x2e\x68\x65\x72\x76\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x34\x3d\x77\x77\x77\x2e\x68\x69\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x35\x3d\x77\x77\x77\x2e\x68\x69\x6e\x6f\x6a\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x36\x3d\x77\x77\x77\x2e\x68\x6f\x6c\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x37\x3d\x77\x77\x77\x2e\x68\x6f\x79\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x38\x3d\x77\x77\x77\x2e\x68\x75\x65\x6c\x61\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x39\x3d\x77\x77\x77\x2e\x69\x62\x61\x68\x65\x72\x6e\x61\x6e\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x30\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x69\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x31\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x69\x7a\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x32\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x6e\x64\x69\x6c\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x33\x3d\x77\x77\x77\x2e\x6a\x61\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x34\x3d\x77\x77\x77\x2e\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x35\x3d\x77\x77\x77\x2e\x6c\x61\x64\x72\x69\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x36\x3d\x77\x77\x77\x2e\x6c\x6f\x67\x72\x6f\x73\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x37\x3d\x77\x77\x77\x2e\x6c\x6f\x73\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x38\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x69\x67\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x39\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x69\x67\x61\x6c\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x30\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x6f\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x31\x3d\x77\x77\x77\x2e\x6d\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x32\x3d\x77\x77\x77\x2e\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x33\x3d\x77\x77\x77\x2e\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x34\x3d\x77\x77\x77\x2e\x6d\x61\x72\x63\x68\x61\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x35\x3d\x77\x77\x77\x2e\x6d\x61\x74\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x36\x3d\x77\x77\x77\x2e\x6d\x65\x6d\x62\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x37\x3d\x77\x77\x77\x2e\x6d\x65\x73\x61\x73\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x38\x3d\x77\x77\x77\x2e\x6d\x69\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x39\x3d\x77\x77\x77\x2e\x6d\x69\x6c\x6c\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x30\x3d\x77\x77\x77\x2e\x6d\x69\x72\x61\x62\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x31\x3d\x77\x77\x77\x2e\x6d\x6f\x68\x65\x64\x61\x73\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x32\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x33\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x34\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x74\x65\x68\x65\x72\x6d\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x35\x3d\x77\x77\x77\x2e\x6d\x6f\x72\x61\x6c\x65\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x36\x3d\x77\x77\x77\x2e\x6d\x6f\x72\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x37\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x63\x6f\x6e\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x38\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x6c\x76\x69\x6c\x6c\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x39\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x6c\x6d\x6f\x72\x61\x6c\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x30\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x73\x64\x65\x6c\x6d\x61\x64\x72\x6f\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x31\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x32\x3d\x77\x77\x77\x2e\x6e\x61\x76\x65\x7a\x75\x65\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x33\x3d\x77\x77\x77\x2e\x6e\x75\x6e\x6f\x6d\x6f\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x34\x3d\x77\x77\x77\x2e\x6f\x6c\x69\x76\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x35\x3d\x77\x77\x77\x2e\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x36\x3d\x77\x77\x77\x2e\x70\x61\x73\x61\x72\x6f\x6e\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x37\x3d\x77\x77\x77\x2e\x70\x65\x64\x72\x6f\x73\x6f\x64\x65\x61\x63\x69\x6d\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x38\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x39\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x73\x61\x6e\x72\x6f\x6d\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x30\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x73\x64\x65\x6c\x70\x75\x65\x72\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x31\x3d\x77\x77\x77\x2e\x70\x65\x73\x63\x75\x65\x7a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x32\x3d\x77\x77\x77\x2e\x6c\x61\x70\x65\x73\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x33\x3d\x77\x77\x77\x2e\x70\x69\x65\x64\x72\x61\x73\x61\x6c\x62\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x34\x3d\x77\x77\x77\x2e\x70\x69\x6e\x6f\x66\x72\x61\x6e\x71\x75\x65\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x35\x3d\x77\x77\x77\x2e\x70\x69\x6f\x72\x6e\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x36\x3d\x77\x77\x77\x2e\x70\x6c\x61\x73\x65\x6e\x7a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x37\x3d\x77\x77\x77\x2e\x70\x6f\x72\x74\x61\x6a\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x38\x3d\x77\x77\x77\x2e\x70\x6f\x72\x74\x65\x7a\x75\x65\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x39\x3d\x77\x77\x77\x2e\x70\x6f\x7a\x75\x65\x6c\x6f\x64\x65\x7a\x61\x72\x7a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x30\x3d\x77\x77\x77\x2e\x70\x75\x65\x62\x6c\x6f\x6e\x75\x65\x76\x6f\x64\x65\x6d\x69\x72\x61\x6d\x6f\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x31\x3d\x77\x77\x77\x2e\x70\x75\x65\x72\x74\x6f\x64\x65\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x32\x3d\x77\x77\x77\x2e\x72\x65\x62\x6f\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x33\x3d\x77\x77\x77\x2e\x72\x69\x6f\x6c\x6f\x62\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x34\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x35\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x36\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x74\x72\x75\x6a\x69\x6c\x6c\x6f\x2c\x44\x4e\x53\x2e\x33\x39\x37\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x6f\x6c\x6c\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x38\x3d\x77\x77\x77\x2e\x72\x6f\x6d\x61\x6e\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x39\x3d\x77\x77\x77\x2e\x72\x75\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x30\x3d\x77\x77\x77\x2e\x73\x61\x6c\x6f\x72\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x31\x3d\x77\x77\x77\x2e\x73\x61\x6c\x76\x61\x74\x69\x65\x72\x72\x61\x64\x65\x73\x61\x6e\x74\x69\x61\x67\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x32\x3d\x77\x77\x77\x2e\x73\x61\x6e\x6d\x61\x72\x74\x69\x6e\x64\x65\x74\x72\x65\x76\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x33\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x73\x61\x6e\x74\x61\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x34\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x35\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x70\x61\x6e\x69\x61\x67\x75\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x36\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x6d\x61\x72\x74\x61\x64\x65\x6d\x61\x67\x61\x73\x63\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x37\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x61\x67\x6f\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x38\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x61\x6c\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x39\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x30\x3d\x77\x77\x77\x2e\x73\x61\x75\x63\x65\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x31\x3d\x77\x77\x77\x2e\x73\x65\x67\x75\x72\x61\x64\x65\x74\x6f\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x32\x3d\x77\x77\x77\x2e\x73\x65\x72\x72\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x33\x3d\x77\x77\x77\x2e\x73\x65\x72\x72\x65\x6a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x34\x3d\x77\x77\x77\x2e\x73\x69\x65\x72\x72\x61\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x35\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x76\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x36\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x76\x65\x72\x75\x65\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x37\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x79\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x38\x3d\x77\x77\x77\x2e\x74\x65\x6a\x65\x64\x61\x64\x65\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x39\x3d\x77\x77\x77\x2e\x74\x6f\x72\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x30\x3d\x77\x77\x77\x2e\x74\x6f\x72\x6e\x61\x76\x61\x63\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x31\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x65\x6c\x74\x6f\x72\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x32\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x64\x65\x6c\x6f\x73\x61\x6e\x67\x65\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x33\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x73\x64\x65\x6c\x61\x74\x69\x65\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x34\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x64\x65\x64\x6f\x6e\x6d\x69\x67\x75\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x35\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x64\x65\x73\x61\x6e\x74\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x36\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x65\x6c\x72\x75\x62\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x37\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x38\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6d\x65\x6e\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x39\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6d\x6f\x63\x68\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x30\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6f\x72\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x31\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x71\x75\x65\x6d\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x32\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x61\x73\x74\x69\x6c\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x63\x61\x6e\x61\x73\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x34\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x35\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x68\x75\x6e\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x36\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x69\x6e\x69\x67\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x37\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6c\x61\x63\x61\x73\x61\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x38\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6d\x6f\x72\x61\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x39\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x30\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x31\x3d\x77\x77\x77\x2e\x76\x61\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x32\x3d\x77\x77\x77\x2e\x76\x61\x6c\x65\x6e\x63\x69\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x34\x3d\x77\x77\x77\x2e\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x66\x72\x65\x73\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x35\x3d\x77\x77\x77\x2e\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x36\x3d\x77\x77\x77\x2e\x76\x69\x61\x6e\x64\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x37\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x38\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x64\x65\x6c\x72\x65\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x39\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6d\x65\x73\x69\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x30\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6d\x69\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x31\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x32\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x72\x64\x65\x6c\x70\x65\x64\x72\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x33\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x72\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x34\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x73\x62\x75\x65\x6e\x61\x73\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x35\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x36\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x64\x65\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x37\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x6c\x61\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x38\x3d\x77\x77\x77\x2e\x7a\x6f\x72\x69\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x39\x3d\x77\x77\x77\x2e\x72\x6f\x73\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x30\x3d\x77\x77\x77\x2e\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x31\x3d\x77\x77\x77\x2e\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x32\x3d\x77\x77\x77\x2e\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x34\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x35\x3d\x77\x77\x77\x2e\x72\x69\x76\x65\x72\x61\x64\x65\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x36\x3d\x77\x77\x77\x2e\x65\x6c\x6d\x73\x61\x6e\x67\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x37\x3d\x77\x77\x77\x2e\x74\x61\x6a\x6f\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x38\x3d\x77\x77\x77\x2e\x76\x61\x6c\x6c\x65\x61\x6d\x62\x72\x6f\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x39\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x61\x6c\x61\x67\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x30\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x31\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x65\x67\x61\x73\x61\x6c\x74\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x32\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x33\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x7a\x6f\x6e\x61\x63\x65\x6e\x74\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x34\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x75\x65\x72\x63\x61\x73\x2d\x69\x62\x6f\x72\x65\x73\x2d\x6a\x61\x72\x61\x2e\x65\x73",
+ 12589},
+ }
};
void doit(void)
{
unsigned i;
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
- decode(tests[i].name, &tests[i].raw, tests[i].str, tests[i].compat_str);
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
+ decode(tests[i].name, &tests[i].raw, tests[i].str,
+ tests[i].compat_str);
}
}
-
diff --git a/tests/x509-dn-decode.c b/tests/x509-dn-decode.c
index 2b0573348f..18ac58f593 100644
--- a/tests/x509-dn-decode.c
+++ b/tests/x509-dn-decode.c
@@ -22,7 +22,7 @@
/* This checks the low level DN encoding and decoding routines */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -33,7 +33,8 @@
#include "utils.h"
-static void decode(const char *test_name, const gnutls_datum_t *raw, const char *expected, const char *expected_compat)
+static void decode(const char *test_name, const gnutls_datum_t * raw,
+ const char *expected, const char *expected_compat)
{
int ret;
gnutls_datum_t out;
@@ -55,11 +56,15 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
}
if (out.size != strlen(expected)) {
- test_fail("The length of the output (%d) doesn't match the expected (%d)\n", (int)out.size, (int)strlen(expected));
+ test_fail
+ ("The length of the output (%d) doesn't match the expected (%d)\n",
+ (int)out.size, (int)strlen(expected));
}
if (memcmp(out.data, expected, out.size) != 0) {
- test_fail("The string output (%s) doesn't match the expected (%s)\n", (char*)out.data, expected);
+ test_fail
+ ("The string output (%s) doesn't match the expected (%s)\n",
+ (char *)out.data, expected);
}
if (out.data[out.size] != 0) {
@@ -75,11 +80,15 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
}
if (out.size != strlen(expected_compat)) {
- test_fail("The length of the output (%d) doesn't match the expected (%d)\n", (int)out.size, (int)strlen(expected_compat));
+ test_fail
+ ("The length of the output (%d) doesn't match the expected (%d)\n",
+ (int)out.size, (int)strlen(expected_compat));
}
if (memcmp(out.data, expected_compat, out.size) != 0) {
- test_fail("The string output (%s) doesn't match the expected (%s)\n", (char*)out.data, expected_compat);
+ test_fail
+ ("The string output (%s) doesn't match the expected (%s)\n",
+ (char *)out.data, expected_compat);
}
if (out.data[out.size] != 0) {
@@ -92,7 +101,8 @@ static void decode(const char *test_name, const gnutls_datum_t *raw, const char
return;
}
-static void encode(const char *test_name, const gnutls_datum_t *raw, const char *str, int exp_error)
+static void encode(const char *test_name, const gnutls_datum_t * raw,
+ const char *str, int exp_error)
{
int ret;
gnutls_datum_t out;
@@ -117,7 +127,8 @@ static void encode(const char *test_name, const gnutls_datum_t *raw, const char
}
if (ret != exp_error) {
- test_fail("unexpected success in encoding (got: %d, exp: %d)\n", ret, exp_error);
+ test_fail("unexpected success in encoding (got: %d, exp: %d)\n",
+ ret, exp_error);
}
ret = gnutls_x509_dn_export2(dn, GNUTLS_X509_FMT_DER, &out);
@@ -129,19 +140,23 @@ static void encode(const char *test_name, const gnutls_datum_t *raw, const char
{
unsigned i;
fprintf(stderr, "got:\n");
- for (i=0;i<out.size;i++)
- fprintf(stderr, "\\x%.2x", (unsigned)out.data[i]);
+ for (i = 0; i < out.size; i++)
+ fprintf(stderr, "\\x%.2x",
+ (unsigned)out.data[i]);
fprintf(stderr, "\n");
}
- test_fail("The length of the output (%d) doesn't match the expected (%d)\n", (int)out.size, (int)raw->size);
+ test_fail
+ ("The length of the output (%d) doesn't match the expected (%d)\n",
+ (int)out.size, (int)raw->size);
}
if (memcmp(out.data, raw->data, out.size) != 0) {
{
unsigned i;
fprintf(stderr, "got:\n");
- for (i=0;i<out.size;i++)
- fprintf(stderr, "\\x%.2x", (unsigned)out.data[i]);
+ for (i = 0; i < out.size; i++)
+ fprintf(stderr, "\\x%.2x",
+ (unsigned)out.data[i]);
fprintf(stderr, "\n");
}
test_fail("The raw output doesn't match the expected\n");
@@ -158,39 +173,48 @@ struct tests_st {
const char *name;
gnutls_datum_t raw;
const char *str;
- const char *compat_str; /* GNUTLS_X509_DN_FLAG_COMPAT */
+ const char *compat_str; /* GNUTLS_X509_DN_FLAG_COMPAT */
unsigned can_encode;
};
struct tests_st tests[] = {
{
- .name = "simple DN",
- .str = "C=GR,ST=Attiki,O=Koko inc.,OU=sleeping dept.,UID=clauper,CN=Cindy Lauper",
- .compat_str = "CN=Cindy Lauper,UID=clauper,OU=sleeping dept.,O=Koko inc.,ST=Attiki,C=GR",
- .raw = {(void*)"\x30\x7b\x31\x15\x30\x13\x06\x03\x55\x04\x03\x13\x0c\x43\x69\x6e\x64\x79\x20\x4c\x61\x75\x70\x65\x72\x31\x17\x30\x15\x06\x0a\x09\x92\x26\x89\x93\xf2\x2c\x64\x01\x01\x13\x07\x63\x6c\x61\x75\x70\x65\x72\x31\x17\x30\x15\x06\x03\x55\x04\x0b\x13\x0e\x73\x6c\x65\x65\x70\x69\x6e\x67\x20\x64\x65\x70\x74\x2e\x31\x12\x30\x10\x06\x03\x55\x04\x0a\x13\x09\x4b\x6f\x6b\x6f\x20\x69\x6e\x63\x2e\x31\x0f\x30\x0d\x06\x03\x55\x04\x08\x13\x06\x41\x74\x74\x69\x6b\x69\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x47\x52", 125},
- .can_encode = 1
- },
+ .name = "simple DN",
+ .str =
+ "C=GR,ST=Attiki,O=Koko inc.,OU=sleeping dept.,UID=clauper,CN=Cindy Lauper",
+ .compat_str =
+ "CN=Cindy Lauper,UID=clauper,OU=sleeping dept.,O=Koko inc.,ST=Attiki,C=GR",
+ .raw = {(void *)
+ "\x30\x7b\x31\x15\x30\x13\x06\x03\x55\x04\x03\x13\x0c\x43\x69\x6e\x64\x79\x20\x4c\x61\x75\x70\x65\x72\x31\x17\x30\x15\x06\x0a\x09\x92\x26\x89\x93\xf2\x2c\x64\x01\x01\x13\x07\x63\x6c\x61\x75\x70\x65\x72\x31\x17\x30\x15\x06\x03\x55\x04\x0b\x13\x0e\x73\x6c\x65\x65\x70\x69\x6e\x67\x20\x64\x65\x70\x74\x2e\x31\x12\x30\x10\x06\x03\x55\x04\x0a\x13\x09\x4b\x6f\x6b\x6f\x20\x69\x6e\x63\x2e\x31\x0f\x30\x0d\x06\x03\x55\x04\x08\x13\x06\x41\x74\x74\x69\x6b\x69\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x47\x52",
+ 125},
+ .can_encode = 1},
{
- .name = "UTF8 DN",
- .str = "C=GR,ST=Αττική,O=Μεγάλη εταιρία,CN=🐨",
- .compat_str = "CN=🐨,O=Μεγάλη εταιρία,ST=Αττική,C=GR",
- .raw = {(void*)"\x30\x59\x31\x0d\x30\x0b\x06\x03\x55\x04\x03\x0c\x04\xf0\x9f\x90\xa8\x31\x24\x30\x22\x06\x03\x55\x04\x0a\x0c\x1b\xce\x9c\xce\xb5\xce\xb3\xce\xac\xce\xbb\xce\xb7\x20\xce\xb5\xcf\x84\xce\xb1\xce\xb9\xcf\x81\xce\xaf\xce\xb1\x31\x15\x30\x13\x06\x03\x55\x04\x08\x0c\x0c\xce\x91\xcf\x84\xcf\x84\xce\xb9\xce\xba\xce\xae\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x47\x52", 91},
- .can_encode = 1
- },
+ .name = "UTF8 DN",
+ .str = "C=GR,ST=Αττική,O=Μεγάλη εταιρία,CN=🐨",
+ .compat_str =
+ "CN=🐨,O=Μεγάλη εταιρία,ST=Αττική,C=GR",
+ .raw = {(void *)
+ "\x30\x59\x31\x0d\x30\x0b\x06\x03\x55\x04\x03\x0c\x04\xf0\x9f\x90\xa8\x31\x24\x30\x22\x06\x03\x55\x04\x0a\x0c\x1b\xce\x9c\xce\xb5\xce\xb3\xce\xac\xce\xbb\xce\xb7\x20\xce\xb5\xcf\x84\xce\xb1\xce\xb9\xcf\x81\xce\xaf\xce\xb1\x31\x15\x30\x13\x06\x03\x55\x04\x08\x0c\x0c\xce\x91\xcf\x84\xcf\x84\xce\xb9\xce\xba\xce\xae\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x47\x52",
+ 91},
+ .can_encode = 1},
{
- .name = "combo DN",
- .compat_str = "C=\\,\\ ,OU=\\ X\\ ,CN=\\#XXX",
- .str = "CN=\\#XXX,OU=\\ X\\ ,C=\\,\\ ",
- .raw = {(void*)"\x30\x2b\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x2c\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x0b\x13\x04\x20\x20\x58\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x03\x0c\x04\x23\x58\x58\x58", 45},
- .can_encode = 1
- },
+ .name = "combo DN",
+ .compat_str = "C=\\,\\ ,OU=\\ X\\ ,CN=\\#XXX",
+ .str = "CN=\\#XXX,OU=\\ X\\ ,C=\\,\\ ",
+ .raw = {(void *)
+ "\x30\x2b\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x2c\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x0b\x13\x04\x20\x20\x58\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x03\x0c\x04\x23\x58\x58\x58",
+ 45},
+ .can_encode = 1},
{
- .name = "very long DN",
- .compat_str = "C=ES,ST=CACERES,L=CACERES,O=DIPUTACION PROVINCIAL DE CACERES,OU=DIPUTACION PROVINCIAL DE CACERES,CN=www.dip-caceres.es,EMAIL=webmaster@dip-caceres.es,2.5.29.17=#1382304b444e532e313d6162616469612e65732c444e532e323d61626572747572612e65732c444e532e333d616365626f2e65732c444e532e343d61636568756368652e65732c444e532e353d6163656974756e612e65732c444e532e363d61686967616c2e65732c444e532e373d616c61676f6e64656c72696f2e65732c444e532e383d616c636f6c6c6172696e2e65732c444e532e393d6179746f616c62616c612e65732c444e532e31303d6179746f616c63616e746172612e65732c444e532e31313d616c637565736361722e65732c444e532e31323d616c64656163656e74656e6572612e65732c444e532e31333d616c64656164656c63616e6f2e65732c444e532e31343d6c61616c64656164656c6f626973706f2e65732c444e532e31353d616c6465616e7565766164656c61766572612e65732c444e532e31363d616c6465616e7565766164656c63616d696e6f2e65732c444e532e31373d616c64656875656c6164656c6a657274652e65732c444e532e31383d6179746f616c69612e65732c444e532e31393d616c69736564612e65732c444e532e32303d616c6d6172617a2e65732c444e532e32313d616c6d6f686172696e2e65732c444e532e32323d6179746f6172726f796f64656c616c757a2e65732c444e532e32333d6172726f796f6d6f6c696e6f732e65732c444e532e32343d6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e32353d62616e6f7364656d6f6e74656d61796f722e65732c444e532e32363d6261727261646f2e65732c444e532e32373d62656c76697364656d6f6e726f792e65732c444e532e32383d62656e71756572656e6369612e65732c444e532e32393d626572726f63616c656a6f2e65732c444e532e33303d6265727a6f63616e612e65732c444e532e33313d626f686f6e616c646569626f722e65732c444e532e33323d626f74696a612e65732c444e532e33333d62726f7a61732e65732c444e532e33343d636162616e617364656c63617374696c6c6f2e65732c444e532e33353d636162657a6162656c6c6f73612e65732c444e532e33363d636162657a75656c6164656c76616c6c652e65732c444e532e33373d6361627265726f2e65732c444e532e33383d636163686f7272696c6c612e65732c444e532e33393d636164616c736f2e65732c444e532e34303d63616c7a6164696c6c612e65732c444e532e34313d63616d696e6f6d6f726973636f2e65732c444e532e34323d63616d70696c6c6f646564656c6569746f73612e65732c444e532e34333d63616d706f6c756761722e65732c444e532e34343d63616e616d65726f2e65732c444e532e34353d63616e61766572616c2e65732c444e532e34363d63617262616a6f2e65732c444e532e34373d6361726361626f736f2e65732c444e532e34383d63617272617363616c656a6f2e65732c444e532e34393d63617361726465636163657265732e65732c444e532e35303d6361736172646570616c6f6d65726f2e65732c444e532e35313d6361736172657364656c61736875726465732e65732c444e532e35323d63617361736465646f6e616e746f6e696f2e65732c444e532e35333d63617361736465646f6e676f6d657a2e65732c444e532e35343d636173617364656c63617374616e61722e65732c444e532e35353d636173617364656c6d6f6e74652e65732c444e532e35363d636173617364656d696c6c616e2e65732c444e532e35373d636173617364656d697261766574652e65732c444e532e35383d6361736174656a6164612e65732c444e532e35393d636173696c6c61736465636f7269612e65732c444e532e36303d63617374616e6172646569626f722e65732c444e532e36313d6365636c6176696e2e65732c444e532e36323d636564696c6c6f2e65732c444e532e36333d636572657a6f2e65732c444e532e36343d63696c6c65726f732e65732c444e532e36353d636f6c6c61646f2e65732c444e532e36363d636f6e71756973746164656c617369657272612e65732c444e532e36373d636f7269612e65732c444e532e36383d637561636f73646579757374652e65732c444e532e36393d6c6163756d6272652e65732c444e532e37303d64656c6569746f73612e65732c444e532e37313d64657363617267616d617269612e65732c444e532e37323d656c6a61732e65732c444e532e37333d657363757269616c2e65732c444e532e37343d667265736e65646f736f646569626f722e65732c444e532e37353d67616c697374656f2e65732c444e532e37363d6761726369617a2e65732c444e532e37373d6c6167617267616e74612e65732c444e532e37383d67617267616e74616c616f6c6c612e65732c444e532e37393d67617267616e74696c6c612e65732c444e532e38303d67617267756572612e65732c444e532e38313d676172726f76696c6c61736465616c636f6e657461722e65732c444e532e38323d67617276696e2e65732c444e532e38333d676174612e65732c444e532e38343d6179746f656c676f72646f2e65732c444e532e38353d6c616772616e6a612e65732c444e532e38363d6c616772616e6a6164656772616e6164696c6c612e65732c444e532e38373d6179756e74616d69656e746f646567756164616c7570652e65732c444e532e38383d6775696a6f6465636f7269612e65732c444e532e38393d6775696a6f646567616c697374656f2e65732c444e532e39303d6775696a6f64656772616e6164696c6c612e65732c444e532e39313d6775696a6f646573616e7461626172626172612e65732c444e532e39323d6865726775696a75656c612e65732c444e532e39333d6865726e616e706572657a2e65732c444e532e39343d686572726572616465616c63616e746172612e65732c444e532e39353d68657272657275656c612e65732c444e532e39363d6865727661732e65732c444e532e39373d686967756572612e65732c444e532e39383d68696e6f6a616c2e65732c444e532e39393d686f6c67756572612e65732c444e532e3130303d686f796f732e65732c444e532e3130313d6875656c6167612e65732c444e532e3130323d6962616865726e616e646f2e65732c444e532e3130333d6a6172616963656a6f2e65732c444e532e3130343d6a617261697a64656c61766572612e65732c444e532e3130353d6a6172616e64696c6c6164656c61766572612e65732c444e532e3130363d6a6172696c6c612e65732c444e532e3130373d6a657274652e65732c444e532e3130383d6c616472696c6c61722e65732c444e532e3130393d6c6f67726f73616e2e65732c444e532e3131303d6c6f73617264656c61766572612e65732c444e532e3131313d6d6164726967616c656a6f2e65732c444e532e3131323d6d6164726967616c64656c61766572612e65732c444e532e3131333d6d6164726f6e6572612e65732c444e532e3131343d6d616a616461732e65732c444e532e3131353d6d616c706172746964616465636163657265732e65732c444e532e3131363d6d616c706172746964616465706c6173656e6369612e65732c444e532e3131373d6d617263686167617a2e65732c444e532e3131383d6d6174616465616c63616e746172612e65732c444e532e3131393d6d656d6272696f2e65732c444e532e3132303d6d65736173646569626f722e65732c444e532e3132313d6d69616a616461732e65732c444e532e3132323d6d696c6c616e65732e65732c444e532e3132333d6d69726162656c2e65732c444e532e3132343d6d6f686564617364656772616e6164696c6c612e65732c444e532e3132353d6d6f6e726f792e65732c444e532e3132363d6d6f6e74616e6368657a2e65732c444e532e3132373d6d6f6e74656865726d6f736f2e65732c444e532e3132383d6d6f72616c656a612e65732c444e532e3132393d6d6f7263696c6c6f2e65732c444e532e3133303d6e617661636f6e63656a6f2e65732c444e532e3133313d6e6176616c76696c6c6172646569626f722e65732c444e532e3133323d6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3133333d6e6176617364656c6d6164726f6e6f2e65732c444e532e3133343d6e6176617472617369657272612e65732c444e532e3133353d6e6176657a75656c61732e65732c444e532e3133363d6e756e6f6d6f72616c2e65732c444e532e3133373d6f6c6976616465706c6173656e6369612e65732c444e532e3133383d70616c6f6d65726f2e65732c444e532e3133393d70617361726f6e64656c61766572612e65732c444e532e3134303d706564726f736f64656163696d2e65732c444e532e3134313d706572616c65646164656c616d6174612e65732c444e532e3134323d706572616c656461646573616e726f6d616e2e65732c444e532e3134333d706572616c657364656c70756572746f2e65732c444e532e3134343d7065736375657a612e65732c444e532e3134353d6c6170657367612e65732c444e532e3134363d70696564726173616c6261732e65732c444e532e3134373d70696e6f6672616e71756561646f2e65732c444e532e3134383d70696f726e616c2e65732c444e532e3134393d706c6173656e7a75656c612e65732c444e532e3135303d706f7274616a652e65732c444e532e3135313d706f7274657a75656c6f2e65732c444e532e3135323d706f7a75656c6f64657a61727a6f6e2e65732c444e532e3135333d707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3135343d70756572746f646573616e74616372757a2e65732c444e532e3135353d7265626f6c6c61722e65732c444e532e3135363d72696f6c6f626f732e65732c444e532e3135373d726f626c6564696c6c6f6465676174612e65732c444e532e3135383d726f626c6564696c6c6f64656c61766572612e65732c444e532e3135393d726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3136303d726f626c65646f6c6c616e6f2e65732c444e532e3136313d726f6d616e676f72646f2e65732c444e532e3136323d7275616e65732e65732c444e532e3136333d73616c6f72696e6f2e65732c444e532e3136343d73616c7661746965727261646573616e746961676f2e65732c444e532e3136353d73616e6d617274696e646574726576656a6f2e65732c444e532e3136363d6179746f73616e7461616e612e65732c444e532e3136373d73616e74616372757a64656c617369657272612e65732c444e532e3136383d73616e74616372757a646570616e69616775612e65732c444e532e3136393d73616e74616d6172746164656d6167617363612e65732c444e532e3137303d73616e746961676f64656c63616d706f2e65732c444e532e3137313d73616e746962616e657a656c616c746f2e65732c444e532e3137323d73616e746962616e657a656c62616a6f2e65732c444e532e3137333d736175636564696c6c612e65732c444e532e3137343d7365677572616465746f726f2e65732c444e532e3137353d736572726164696c6c612e65732c444e532e3137363d73657272656a6f6e2e65732c444e532e3137373d73696572726164656675656e7465732e65732c444e532e3137383d74616c6176616e2e65732c444e532e3137393d74616c6176657275656c6164656c61766572612e65732c444e532e3138303d74616c617975656c612e65732c444e532e3138313d74656a65646164657469657461722e65732c444e532e3138323d746f72696c2e65732c444e532e3138333d746f726e6176616361732e65732c444e532e3138343d6179746f656c746f726e6f2e65732c444e532e3138353d746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3138363d746f72726563696c6c617364656c6174696573612e65732c444e532e3138373d746f7272656465646f6e6d696775656c2e65732c444e532e3138383d746f727265646573616e74616d617269612e65732c444e532e3138393d746f7272656a6f6e656c727562696f2e65732c444e532e3139303d746f7272656a6f6e63696c6c6f2e65732c444e532e3139313d746f7272656d656e67612e65732c444e532e3139323d746f7272656d6f6368612e65732c444e532e3139333d746f7272656f7267617a2e65732c444e532e3139343d746f7272657175656d6164612e65732c444e532e3139353d76616c64617374696c6c61732e65732c444e532e3139363d76616c646563616e6173646574616a6f2e65732c444e532e3139373d76616c64656675656e7465732e65732c444e532e3139383d76616c646568756e6361722e65732c444e532e3139393d76616c6465696e69676f732e65732c444e532e3230303d76616c64656c6163617361646574616a6f2e65732c444e532e3230313d76616c64656d6f72616c65732e65732c444e532e3230323d76616c64656f626973706f2e65732c444e532e3230333d76616c646573616c6f722e65732c444e532e3230343d76616c72696f2e65732c444e532e3230353d76616c656e6369616465616c63616e746172612e65732c444e532e3230363d76616c766572646564656c61766572612e65732c444e532e3230373d76616c766572646564656c667265736e6f2e65732c444e532e3230383d766567617669616e612e65732c444e532e3230393d7669616e64617264656c61766572612e65732c444e532e3231303d76696c6c6164656c63616d706f2e65732c444e532e3231313d76696c6c6164656c7265792e65732c444e532e3231323d76696c6c616d65736961732e65732c444e532e3231333d76696c6c616d69656c2e65732c444e532e3231343d76696c6c616e7565766164656c617369657272612e65732c444e532e3231353d76696c6c617264656c706564726f736f2e65732c444e532e3231363d76696c6c61726465706c6173656e6369612e65732c444e532e3231373d76696c6c61736275656e61736465676174612e65732c444e532e3231383d7a61727a6164656772616e6164696c6c612e65732c444e532e3231393d7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3232303d7a61727a616c616d61796f722e65732c444e532e3232313d7a6f726974612e65732c444e532e3232323d726f73616c656a6f2e65732c444e532e3232333d766567617669616e612e65732c444e532e3232343d616c61676f6e64656c72696f2e65732c444e532e3232353d7469657461722e65732c444e532e3232363d76616c646573616c6f722e65732c444e532e3232373d6e6176617472617369657272612e65732c444e532e3232383d7269766572616465667265736e65646f73612e65732c444e532e3232393d656c6d73616e67696c2e65732c444e532e3233303d74616a6f73616c6f722e65732c444e532e3233313d76616c6c65616d62726f7a2e65732c444e532e3233323d6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3233333d6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3233343d6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3233353d6d616e636f6d756e6964616464656c61766572612e65732c444e532e3233363d6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3233373d76696c6c7565726361732d69626f7265732d6a6172612e65732c444e532e3233383d7777772e6162616469612e65732c444e532e3233393d7777772e61626572747572612e65732c444e532e3234303d7777772e616365626f2e65732c444e532e3234313d7777772e61636568756368652e65732c444e532e3234323d7777772e6163656974756e612e65732c444e532e3234333d7777772e61686967616c2e65732c444e532e3234343d7777772e616c61676f6e64656c72696f2e65732c444e532e3234353d7777772e616c636f6c6c6172696e2e65732c444e532e3234363d7777772e6179746f616c62616c612e65732c444e532e3234373d7777772e6179746f616c63616e746172612e65732c444e532e3234383d7777772e616c637565736361722e65732c444e532e3234393d7777772e616c64656163656e74656e6572612e65732c444e532e3235303d7777772e616c64656164656c63616e6f2e65732c444e532e3235313d7777772e6c61616c64656164656c6f626973706f2e65732c444e532e3235323d7777772e616c6465616e7565766164656c61766572612e65732c444e532e3235333d7777772e616c6465616e7565766164656c63616d696e6f2e65732c444e532e3235343d7777772e616c64656875656c6164656c6a657274652e65732c444e532e3235353d7777772e6179746f616c69612e65732c444e532e3235363d7777772e616c69736564612e65732c444e532e3235373d7777772e616c6d6172617a2e65732c444e532e3235383d7777772e616c6d6f686172696e2e65732c444e532e3235393d7777772e6179746f6172726f796f64656c616c757a2e65732c444e532e3236303d7777772e6172726f796f6d6f6c696e6f732e65732c444e532e3236313d7777772e6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e3236323d7777772e62616e6f7364656d6f6e74656d61796f722e65732c444e532e3236333d7777772e6261727261646f2e65732c444e532e3236343d7777772e62656c76697364656d6f6e726f792e65732c444e532e3236353d7777772e62656e71756572656e6369612e65732c444e532e3236363d7777772e626572726f63616c656a6f2e65732c444e532e3236373d7777772e6265727a6f63616e612e65732c444e532e3236383d7777772e626f686f6e616c646569626f722e65732c444e532e3236393d7777772e626f74696a612e65732c444e532e3237303d7777772e62726f7a61732e65732c444e532e3237313d7777772e636162616e617364656c63617374696c6c6f2e65732c444e532e3237323d7777772e636162657a6162656c6c6f73612e65732c444e532e3237333d7777772e636162657a75656c6164656c76616c6c652e65732c444e532e3237343d7777772e6361627265726f2e65732c444e532e3237353d7777772e636163686f7272696c6c612e65732c444e532e3237363d7777772e636164616c736f2e65732c444e532e3237373d7777772e63616c7a6164696c6c612e65732c444e532e3237383d7777772e63616d696e6f6d6f726973636f2e65732c444e532e3237393d7777772e63616d70696c6c6f646564656c6569746f73612e65732c444e532e3238303d7777772e63616d706f6c756761722e65732c444e532e3238313d7777772e63616e616d65726f2e65732c444e532e3238323d7777772e63616e61766572616c2e65732c444e532e3238333d7777772e63617262616a6f2e65732c444e532e3238343d7777772e6361726361626f736f2e65732c444e532e3238353d7777772e63617272617363616c656a6f2e65732c444e532e3238363d7777772e63617361726465636163657265732e65732c444e532e3238373d7777772e6361736172646570616c6f6d65726f2e65732c444e532e3238383d7777772e6361736172657364656c61736875726465732e65732c444e532e3238393d7777772e63617361736465646f6e616e746f6e696f2e65732c444e532e3239303d7777772e63617361736465646f6e676f6d657a2e65732c444e532e3239313d7777772e636173617364656c63617374616e61722e65732c444e532e3239323d7777772e636173617364656c6d6f6e74652e65732c444e532e3239333d7777772e636173617364656d696c6c616e2e65732c444e532e3239343d7777772e636173617364656d697261766574652e65732c444e532e3239353d7777772e6361736174656a6164612e65732c444e532e3239363d7777772e636173696c6c61736465636f7269612e65732c444e532e3239373d7777772e63617374616e6172646569626f722e65732c444e532e3239383d7777772e6365636c6176696e2e65732c444e532e3239393d7777772e636564696c6c6f2e65732c444e532e3330303d7777772e636572657a6f2e65732c444e532e3330313d7777772e63696c6c65726f732e65732c444e532e3330323d7777772e636f6c6c61646f2e65732c444e532e3330333d7777772e636f6e71756973746164656c617369657272612e65732c444e532e3330343d7777772e636f7269612e65732c444e532e3330353d7777772e637561636f73646579757374652e65732c444e532e3330363d7777772e6c6163756d6272652e65732c444e532e3330373d7777772e64656c6569746f73612e65732c444e532e3330383d7777772e64657363617267616d617269612e65732c444e532e3330393d7777772e656c6a61732e65732c444e532e3331303d7777772e657363757269616c2e65732c444e532e3331313d7777772e667265736e65646f736f646569626f722e65732c444e532e3331323d7777772e67616c697374656f2e65732c444e532e3331333d7777772e6761726369617a2e65732c444e532e3331343d7777772e6c6167617267616e74612e65732c444e532e3331353d7777772e67617267616e74616c616f6c6c612e65732c444e532e3331363d7777772e67617267616e74696c6c612e65732c444e532e3331373d7777772e67617267756572612e65732c444e532e3331383d7777772e676172726f76696c6c61736465616c636f6e657461722e65732c444e532e3331393d7777772e67617276696e2e65732c444e532e3332303d7777772e676174612e65732c444e532e3332313d7777772e6179746f656c676f72646f2e65732c444e532e3332323d7777772e6c616772616e6a612e65732c444e532e3332333d7777772e6c616772616e6a6164656772616e6164696c6c612e65732c444e532e3332343d7777772e6179756e74616d69656e746f646567756164616c7570652e65732c444e532e3332353d7777772e6775696a6f6465636f7269612e65732c444e532e3332363d7777772e6775696a6f646567616c697374656f2e65732c444e532e3332373d7777772e6775696a6f64656772616e6164696c6c612e65732c444e532e3332383d7777772e6775696a6f646573616e7461626172626172612e65732c444e532e3332393d7777772e6865726775696a75656c612e65732c444e532e3333303d7777772e6865726e616e706572657a2e65732c444e532e3333313d7777772e686572726572616465616c63616e746172612e65732c444e532e3333323d7777772e68657272657275656c612e65732c444e532e3333333d7777772e6865727661732e65732c444e532e3333343d7777772e686967756572612e65732c444e532e3333353d7777772e68696e6f6a616c2e65732c444e532e3333363d7777772e686f6c67756572612e65732c444e532e3333373d7777772e686f796f732e65732c444e532e3333383d7777772e6875656c6167612e65732c444e532e3333393d7777772e6962616865726e616e646f2e65732c444e532e3334303d7777772e6a6172616963656a6f2e65732c444e532e3334313d7777772e6a617261697a64656c61766572612e65732c444e532e3334323d7777772e6a6172616e64696c6c6164656c61766572612e65732c444e532e3334333d7777772e6a6172696c6c612e65732c444e532e3334343d7777772e6a657274652e65732c444e532e3334353d7777772e6c616472696c6c61722e65732c444e532e3334363d7777772e6c6f67726f73616e2e65732c444e532e3334373d7777772e6c6f73617264656c61766572612e65732c444e532e3334383d7777772e6d6164726967616c656a6f2e65732c444e532e3334393d7777772e6d6164726967616c64656c61766572612e65732c444e532e3335303d7777772e6d6164726f6e6572612e65732c444e532e3335313d7777772e6d616a616461732e65732c444e532e3335323d7777772e6d616c706172746964616465636163657265732e65732c444e532e3335333d7777772e6d616c706172746964616465706c6173656e6369612e65732c444e532e3335343d7777772e6d617263686167617a2e65732c444e532e3335353d7777772e6d6174616465616c63616e746172612e65732c444e532e3335363d7777772e6d656d6272696f2e65732c444e532e3335373d7777772e6d65736173646569626f722e65732c444e532e3335383d7777772e6d69616a616461732e65732c444e532e3335393d7777772e6d696c6c616e65732e65732c444e532e3336303d7777772e6d69726162656c2e65732c444e532e3336313d7777772e6d6f686564617364656772616e6164696c6c612e65732c444e532e3336323d7777772e6d6f6e726f792e65732c444e532e3336333d7777772e6d6f6e74616e6368657a2e65732c444e532e3336343d7777772e6d6f6e74656865726d6f736f2e65732c444e532e3336353d7777772e6d6f72616c656a612e65732c444e532e3336363d7777772e6d6f7263696c6c6f2e65732c444e532e3336373d7777772e6e617661636f6e63656a6f2e65732c444e532e3336383d7777772e6e6176616c76696c6c6172646569626f722e65732c444e532e3336393d7777772e6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3337303d7777772e6e6176617364656c6d6164726f6e6f2e65732c444e532e3337313d7777772e6e6176617472617369657272612e65732c444e532e3337323d7777772e6e6176657a75656c61732e65732c444e532e3337333d7777772e6e756e6f6d6f72616c2e65732c444e532e3337343d7777772e6f6c6976616465706c6173656e6369612e65732c444e532e3337353d7777772e70616c6f6d65726f2e65732c444e532e3337363d7777772e70617361726f6e64656c61766572612e65732c444e532e3337373d7777772e706564726f736f64656163696d2e65732c444e532e3337383d7777772e706572616c65646164656c616d6174612e65732c444e532e3337393d7777772e706572616c656461646573616e726f6d616e2e65732c444e532e3338303d7777772e706572616c657364656c70756572746f2e65732c444e532e3338313d7777772e7065736375657a612e65732c444e532e3338323d7777772e6c6170657367612e65732c444e532e3338333d7777772e70696564726173616c6261732e65732c444e532e3338343d7777772e70696e6f6672616e71756561646f2e65732c444e532e3338353d7777772e70696f726e616c2e65732c444e532e3338363d7777772e706c6173656e7a75656c612e65732c444e532e3338373d7777772e706f7274616a652e65732c444e532e3338383d7777772e706f7274657a75656c6f2e65732c444e532e3338393d7777772e706f7a75656c6f64657a61727a6f6e2e65732c444e532e3339303d7777772e707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3339313d7777772e70756572746f646573616e74616372757a2e65732c444e532e3339323d7777772e7265626f6c6c61722e65732c444e532e3339333d7777772e72696f6c6f626f732e65732c444e532e3339343d7777772e726f626c6564696c6c6f6465676174612e65732c444e532e3339353d7777772e726f626c6564696c6c6f64656c61766572612e65732c444e532e3339363d7777772e726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3339373d7777772e726f626c65646f6c6c616e6f2e65732c444e532e3339383d7777772e726f6d616e676f72646f2e65732c444e532e3339393d7777772e7275616e65732e65732c444e532e3430303d7777772e73616c6f72696e6f2e65732c444e532e3430313d7777772e73616c7661746965727261646573616e746961676f2e65732c444e532e3430323d7777772e73616e6d617274696e646574726576656a6f2e65732c444e532e3430333d7777772e6179746f73616e7461616e612e65732c444e532e3430343d7777772e73616e74616372757a64656c617369657272612e65732c444e532e3430353d7777772e73616e74616372757a646570616e69616775612e65732c444e532e3430363d7777772e73616e74616d6172746164656d6167617363612e65732c444e532e3430373d7777772e73616e746961676f64656c63616d706f2e65732c444e532e3430383d7777772e73616e746962616e657a656c616c746f2e65732c444e532e3430393d7777772e73616e746962616e657a656c62616a6f2e65732c444e532e3431303d7777772e736175636564696c6c612e65732c444e532e3431313d7777772e7365677572616465746f726f2e65732c444e532e3431323d7777772e736572726164696c6c612e65732c444e532e3431333d7777772e73657272656a6f6e2e65732c444e532e3431343d7777772e73696572726164656675656e7465732e65732c444e532e3431353d7777772e74616c6176616e2e65732c444e532e3431363d7777772e74616c6176657275656c6164656c61766572612e65732c444e532e3431373d7777772e74616c617975656c612e65732c444e532e3431383d7777772e74656a65646164657469657461722e65732c444e532e3431393d7777772e746f72696c2e65732c444e532e3432303d7777772e746f726e6176616361732e65732c444e532e3432313d7777772e6179746f656c746f726e6f2e65732c444e532e3432323d7777772e746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3432333d7777772e746f72726563696c6c617364656c6174696573612e65732c444e532e3432343d7777772e746f7272656465646f6e6d696775656c2e65732c444e532e3432353d7777772e746f727265646573616e74616d617269612e65732c444e532e3432363d7777772e746f7272656a6f6e656c727562696f2e65732c444e532e3432373d7777772e746f7272656a6f6e63696c6c6f2e65732c444e532e3432383d7777772e746f7272656d656e67612e65732c444e532e3432393d7777772e746f7272656d6f6368612e65732c444e532e3433303d7777772e746f7272656f7267617a2e65732c444e532e3433313d7777772e746f7272657175656d6164612e65732c444e532e3433323d7777772e76616c64617374696c6c61732e65732c444e532e3433333d7777772e76616c646563616e6173646574616a6f2e65732c444e532e3433343d7777772e76616c64656675656e7465732e65732c444e532e3433353d7777772e76616c646568756e6361722e65732c444e532e3433363d7777772e76616c6465696e69676f732e65732c444e532e3433373d7777772e76616c64656c6163617361646574616a6f2e65732c444e532e3433383d7777772e76616c64656d6f72616c65732e65732c444e532e3433393d7777772e76616c64656f626973706f2e65732c444e532e3434303d7777772e76616c646573616c6f722e65732c444e532e3434313d7777772e76616c72696f2e65732c444e532e3434323d7777772e76616c656e6369616465616c63616e746172612e65732c444e532e3434333d7777772e76616c766572646564656c61766572612e65732c444e532e3434343d7777772e76616c766572646564656c667265736e6f2e65732c444e532e3434353d7777772e766567617669616e612e65732c444e532e3434363d7777772e7669616e64617264656c61766572612e65732c444e532e3434373d7777772e76696c6c6164656c63616d706f2e65732c444e532e3434383d7777772e76696c6c6164656c7265792e65732c444e532e3434393d7777772e76696c6c616d65736961732e65732c444e532e3435303d7777772e76696c6c616d69656c2e65732c444e532e3435313d7777772e76696c6c616e7565766164656c617369657272612e65732c444e532e3435323d7777772e76696c6c617264656c706564726f736f2e65732c444e532e3435333d7777772e76696c6c61726465706c6173656e6369612e65732c444e532e3435343d7777772e76696c6c61736275656e61736465676174612e65732c444e532e3435353d7777772e7a61727a6164656772616e6164696c6c612e65732c444e532e3435363d7777772e7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3435373d7777772e7a61727a616c616d61796f722e65732c444e532e3435383d7777772e7a6f726974612e65732c444e532e3435393d7777772e726f73616c656a6f2e65732c444e532e3436303d7777772e766567617669616e612e65732c444e532e3436313d7777772e616c61676f6e64656c72696f2e65732c444e532e3436323d7777772e7469657461722e65732c444e532e3436333d7777772e76616c646573616c6f722e65732c444e532e3436343d7777772e6e6176617472617369657272612e65732c444e532e3436353d7777772e7269766572616465667265736e65646f73612e65732c444e532e3436363d7777772e656c6d73616e67696c2e65732c444e532e3436373d7777772e74616a6f73616c6f722e65732c444e532e3436383d7777772e76616c6c65616d62726f7a2e65732c444e532e3436393d7777772e6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3437303d7777772e6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3437313d7777772e6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3437323d7777772e6d616e636f6d756e6964616464656c61766572612e65732c444e532e3437333d7777772e6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3437343d7777772e76696c6c7565726361732d69626f7265732d6a6172612e6573",
- .str = "2.5.29.17=#1382304b444e532e313d6162616469612e65732c444e532e323d61626572747572612e65732c444e532e333d616365626f2e65732c444e532e343d61636568756368652e65732c444e532e353d6163656974756e612e65732c444e532e363d61686967616c2e65732c444e532e373d616c61676f6e64656c72696f2e65732c444e532e383d616c636f6c6c6172696e2e65732c444e532e393d6179746f616c62616c612e65732c444e532e31303d6179746f616c63616e746172612e65732c444e532e31313d616c637565736361722e65732c444e532e31323d616c64656163656e74656e6572612e65732c444e532e31333d616c64656164656c63616e6f2e65732c444e532e31343d6c61616c64656164656c6f626973706f2e65732c444e532e31353d616c6465616e7565766164656c61766572612e65732c444e532e31363d616c6465616e7565766164656c63616d696e6f2e65732c444e532e31373d616c64656875656c6164656c6a657274652e65732c444e532e31383d6179746f616c69612e65732c444e532e31393d616c69736564612e65732c444e532e32303d616c6d6172617a2e65732c444e532e32313d616c6d6f686172696e2e65732c444e532e32323d6179746f6172726f796f64656c616c757a2e65732c444e532e32333d6172726f796f6d6f6c696e6f732e65732c444e532e32343d6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e32353d62616e6f7364656d6f6e74656d61796f722e65732c444e532e32363d6261727261646f2e65732c444e532e32373d62656c76697364656d6f6e726f792e65732c444e532e32383d62656e71756572656e6369612e65732c444e532e32393d626572726f63616c656a6f2e65732c444e532e33303d6265727a6f63616e612e65732c444e532e33313d626f686f6e616c646569626f722e65732c444e532e33323d626f74696a612e65732c444e532e33333d62726f7a61732e65732c444e532e33343d636162616e617364656c63617374696c6c6f2e65732c444e532e33353d636162657a6162656c6c6f73612e65732c444e532e33363d636162657a75656c6164656c76616c6c652e65732c444e532e33373d6361627265726f2e65732c444e532e33383d636163686f7272696c6c612e65732c444e532e33393d636164616c736f2e65732c444e532e34303d63616c7a6164696c6c612e65732c444e532e34313d63616d696e6f6d6f726973636f2e65732c444e532e34323d63616d70696c6c6f646564656c6569746f73612e65732c444e532e34333d63616d706f6c756761722e65732c444e532e34343d63616e616d65726f2e65732c444e532e34353d63616e61766572616c2e65732c444e532e34363d63617262616a6f2e65732c444e532e34373d6361726361626f736f2e65732c444e532e34383d63617272617363616c656a6f2e65732c444e532e34393d63617361726465636163657265732e65732c444e532e35303d6361736172646570616c6f6d65726f2e65732c444e532e35313d6361736172657364656c61736875726465732e65732c444e532e35323d63617361736465646f6e616e746f6e696f2e65732c444e532e35333d63617361736465646f6e676f6d657a2e65732c444e532e35343d636173617364656c63617374616e61722e65732c444e532e35353d636173617364656c6d6f6e74652e65732c444e532e35363d636173617364656d696c6c616e2e65732c444e532e35373d636173617364656d697261766574652e65732c444e532e35383d6361736174656a6164612e65732c444e532e35393d636173696c6c61736465636f7269612e65732c444e532e36303d63617374616e6172646569626f722e65732c444e532e36313d6365636c6176696e2e65732c444e532e36323d636564696c6c6f2e65732c444e532e36333d636572657a6f2e65732c444e532e36343d63696c6c65726f732e65732c444e532e36353d636f6c6c61646f2e65732c444e532e36363d636f6e71756973746164656c617369657272612e65732c444e532e36373d636f7269612e65732c444e532e36383d637561636f73646579757374652e65732c444e532e36393d6c6163756d6272652e65732c444e532e37303d64656c6569746f73612e65732c444e532e37313d64657363617267616d617269612e65732c444e532e37323d656c6a61732e65732c444e532e37333d657363757269616c2e65732c444e532e37343d667265736e65646f736f646569626f722e65732c444e532e37353d67616c697374656f2e65732c444e532e37363d6761726369617a2e65732c444e532e37373d6c6167617267616e74612e65732c444e532e37383d67617267616e74616c616f6c6c612e65732c444e532e37393d67617267616e74696c6c612e65732c444e532e38303d67617267756572612e65732c444e532e38313d676172726f76696c6c61736465616c636f6e657461722e65732c444e532e38323d67617276696e2e65732c444e532e38333d676174612e65732c444e532e38343d6179746f656c676f72646f2e65732c444e532e38353d6c616772616e6a612e65732c444e532e38363d6c616772616e6a6164656772616e6164696c6c612e65732c444e532e38373d6179756e74616d69656e746f646567756164616c7570652e65732c444e532e38383d6775696a6f6465636f7269612e65732c444e532e38393d6775696a6f646567616c697374656f2e65732c444e532e39303d6775696a6f64656772616e6164696c6c612e65732c444e532e39313d6775696a6f646573616e7461626172626172612e65732c444e532e39323d6865726775696a75656c612e65732c444e532e39333d6865726e616e706572657a2e65732c444e532e39343d686572726572616465616c63616e746172612e65732c444e532e39353d68657272657275656c612e65732c444e532e39363d6865727661732e65732c444e532e39373d686967756572612e65732c444e532e39383d68696e6f6a616c2e65732c444e532e39393d686f6c67756572612e65732c444e532e3130303d686f796f732e65732c444e532e3130313d6875656c6167612e65732c444e532e3130323d6962616865726e616e646f2e65732c444e532e3130333d6a6172616963656a6f2e65732c444e532e3130343d6a617261697a64656c61766572612e65732c444e532e3130353d6a6172616e64696c6c6164656c61766572612e65732c444e532e3130363d6a6172696c6c612e65732c444e532e3130373d6a657274652e65732c444e532e3130383d6c616472696c6c61722e65732c444e532e3130393d6c6f67726f73616e2e65732c444e532e3131303d6c6f73617264656c61766572612e65732c444e532e3131313d6d6164726967616c656a6f2e65732c444e532e3131323d6d6164726967616c64656c61766572612e65732c444e532e3131333d6d6164726f6e6572612e65732c444e532e3131343d6d616a616461732e65732c444e532e3131353d6d616c706172746964616465636163657265732e65732c444e532e3131363d6d616c706172746964616465706c6173656e6369612e65732c444e532e3131373d6d617263686167617a2e65732c444e532e3131383d6d6174616465616c63616e746172612e65732c444e532e3131393d6d656d6272696f2e65732c444e532e3132303d6d65736173646569626f722e65732c444e532e3132313d6d69616a616461732e65732c444e532e3132323d6d696c6c616e65732e65732c444e532e3132333d6d69726162656c2e65732c444e532e3132343d6d6f686564617364656772616e6164696c6c612e65732c444e532e3132353d6d6f6e726f792e65732c444e532e3132363d6d6f6e74616e6368657a2e65732c444e532e3132373d6d6f6e74656865726d6f736f2e65732c444e532e3132383d6d6f72616c656a612e65732c444e532e3132393d6d6f7263696c6c6f2e65732c444e532e3133303d6e617661636f6e63656a6f2e65732c444e532e3133313d6e6176616c76696c6c6172646569626f722e65732c444e532e3133323d6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3133333d6e6176617364656c6d6164726f6e6f2e65732c444e532e3133343d6e6176617472617369657272612e65732c444e532e3133353d6e6176657a75656c61732e65732c444e532e3133363d6e756e6f6d6f72616c2e65732c444e532e3133373d6f6c6976616465706c6173656e6369612e65732c444e532e3133383d70616c6f6d65726f2e65732c444e532e3133393d70617361726f6e64656c61766572612e65732c444e532e3134303d706564726f736f64656163696d2e65732c444e532e3134313d706572616c65646164656c616d6174612e65732c444e532e3134323d706572616c656461646573616e726f6d616e2e65732c444e532e3134333d706572616c657364656c70756572746f2e65732c444e532e3134343d7065736375657a612e65732c444e532e3134353d6c6170657367612e65732c444e532e3134363d70696564726173616c6261732e65732c444e532e3134373d70696e6f6672616e71756561646f2e65732c444e532e3134383d70696f726e616c2e65732c444e532e3134393d706c6173656e7a75656c612e65732c444e532e3135303d706f7274616a652e65732c444e532e3135313d706f7274657a75656c6f2e65732c444e532e3135323d706f7a75656c6f64657a61727a6f6e2e65732c444e532e3135333d707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3135343d70756572746f646573616e74616372757a2e65732c444e532e3135353d7265626f6c6c61722e65732c444e532e3135363d72696f6c6f626f732e65732c444e532e3135373d726f626c6564696c6c6f6465676174612e65732c444e532e3135383d726f626c6564696c6c6f64656c61766572612e65732c444e532e3135393d726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3136303d726f626c65646f6c6c616e6f2e65732c444e532e3136313d726f6d616e676f72646f2e65732c444e532e3136323d7275616e65732e65732c444e532e3136333d73616c6f72696e6f2e65732c444e532e3136343d73616c7661746965727261646573616e746961676f2e65732c444e532e3136353d73616e6d617274696e646574726576656a6f2e65732c444e532e3136363d6179746f73616e7461616e612e65732c444e532e3136373d73616e74616372757a64656c617369657272612e65732c444e532e3136383d73616e74616372757a646570616e69616775612e65732c444e532e3136393d73616e74616d6172746164656d6167617363612e65732c444e532e3137303d73616e746961676f64656c63616d706f2e65732c444e532e3137313d73616e746962616e657a656c616c746f2e65732c444e532e3137323d73616e746962616e657a656c62616a6f2e65732c444e532e3137333d736175636564696c6c612e65732c444e532e3137343d7365677572616465746f726f2e65732c444e532e3137353d736572726164696c6c612e65732c444e532e3137363d73657272656a6f6e2e65732c444e532e3137373d73696572726164656675656e7465732e65732c444e532e3137383d74616c6176616e2e65732c444e532e3137393d74616c6176657275656c6164656c61766572612e65732c444e532e3138303d74616c617975656c612e65732c444e532e3138313d74656a65646164657469657461722e65732c444e532e3138323d746f72696c2e65732c444e532e3138333d746f726e6176616361732e65732c444e532e3138343d6179746f656c746f726e6f2e65732c444e532e3138353d746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3138363d746f72726563696c6c617364656c6174696573612e65732c444e532e3138373d746f7272656465646f6e6d696775656c2e65732c444e532e3138383d746f727265646573616e74616d617269612e65732c444e532e3138393d746f7272656a6f6e656c727562696f2e65732c444e532e3139303d746f7272656a6f6e63696c6c6f2e65732c444e532e3139313d746f7272656d656e67612e65732c444e532e3139323d746f7272656d6f6368612e65732c444e532e3139333d746f7272656f7267617a2e65732c444e532e3139343d746f7272657175656d6164612e65732c444e532e3139353d76616c64617374696c6c61732e65732c444e532e3139363d76616c646563616e6173646574616a6f2e65732c444e532e3139373d76616c64656675656e7465732e65732c444e532e3139383d76616c646568756e6361722e65732c444e532e3139393d76616c6465696e69676f732e65732c444e532e3230303d76616c64656c6163617361646574616a6f2e65732c444e532e3230313d76616c64656d6f72616c65732e65732c444e532e3230323d76616c64656f626973706f2e65732c444e532e3230333d76616c646573616c6f722e65732c444e532e3230343d76616c72696f2e65732c444e532e3230353d76616c656e6369616465616c63616e746172612e65732c444e532e3230363d76616c766572646564656c61766572612e65732c444e532e3230373d76616c766572646564656c667265736e6f2e65732c444e532e3230383d766567617669616e612e65732c444e532e3230393d7669616e64617264656c61766572612e65732c444e532e3231303d76696c6c6164656c63616d706f2e65732c444e532e3231313d76696c6c6164656c7265792e65732c444e532e3231323d76696c6c616d65736961732e65732c444e532e3231333d76696c6c616d69656c2e65732c444e532e3231343d76696c6c616e7565766164656c617369657272612e65732c444e532e3231353d76696c6c617264656c706564726f736f2e65732c444e532e3231363d76696c6c61726465706c6173656e6369612e65732c444e532e3231373d76696c6c61736275656e61736465676174612e65732c444e532e3231383d7a61727a6164656772616e6164696c6c612e65732c444e532e3231393d7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3232303d7a61727a616c616d61796f722e65732c444e532e3232313d7a6f726974612e65732c444e532e3232323d726f73616c656a6f2e65732c444e532e3232333d766567617669616e612e65732c444e532e3232343d616c61676f6e64656c72696f2e65732c444e532e3232353d7469657461722e65732c444e532e3232363d76616c646573616c6f722e65732c444e532e3232373d6e6176617472617369657272612e65732c444e532e3232383d7269766572616465667265736e65646f73612e65732c444e532e3232393d656c6d73616e67696c2e65732c444e532e3233303d74616a6f73616c6f722e65732c444e532e3233313d76616c6c65616d62726f7a2e65732c444e532e3233323d6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3233333d6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3233343d6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3233353d6d616e636f6d756e6964616464656c61766572612e65732c444e532e3233363d6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3233373d76696c6c7565726361732d69626f7265732d6a6172612e65732c444e532e3233383d7777772e6162616469612e65732c444e532e3233393d7777772e61626572747572612e65732c444e532e3234303d7777772e616365626f2e65732c444e532e3234313d7777772e61636568756368652e65732c444e532e3234323d7777772e6163656974756e612e65732c444e532e3234333d7777772e61686967616c2e65732c444e532e3234343d7777772e616c61676f6e64656c72696f2e65732c444e532e3234353d7777772e616c636f6c6c6172696e2e65732c444e532e3234363d7777772e6179746f616c62616c612e65732c444e532e3234373d7777772e6179746f616c63616e746172612e65732c444e532e3234383d7777772e616c637565736361722e65732c444e532e3234393d7777772e616c64656163656e74656e6572612e65732c444e532e3235303d7777772e616c64656164656c63616e6f2e65732c444e532e3235313d7777772e6c61616c64656164656c6f626973706f2e65732c444e532e3235323d7777772e616c6465616e7565766164656c61766572612e65732c444e532e3235333d7777772e616c6465616e7565766164656c63616d696e6f2e65732c444e532e3235343d7777772e616c64656875656c6164656c6a657274652e65732c444e532e3235353d7777772e6179746f616c69612e65732c444e532e3235363d7777772e616c69736564612e65732c444e532e3235373d7777772e616c6d6172617a2e65732c444e532e3235383d7777772e616c6d6f686172696e2e65732c444e532e3235393d7777772e6179746f6172726f796f64656c616c757a2e65732c444e532e3236303d7777772e6172726f796f6d6f6c696e6f732e65732c444e532e3236313d7777772e6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e3236323d7777772e62616e6f7364656d6f6e74656d61796f722e65732c444e532e3236333d7777772e6261727261646f2e65732c444e532e3236343d7777772e62656c76697364656d6f6e726f792e65732c444e532e3236353d7777772e62656e71756572656e6369612e65732c444e532e3236363d7777772e626572726f63616c656a6f2e65732c444e532e3236373d7777772e6265727a6f63616e612e65732c444e532e3236383d7777772e626f686f6e616c646569626f722e65732c444e532e3236393d7777772e626f74696a612e65732c444e532e3237303d7777772e62726f7a61732e65732c444e532e3237313d7777772e636162616e617364656c63617374696c6c6f2e65732c444e532e3237323d7777772e636162657a6162656c6c6f73612e65732c444e532e3237333d7777772e636162657a75656c6164656c76616c6c652e65732c444e532e3237343d7777772e6361627265726f2e65732c444e532e3237353d7777772e636163686f7272696c6c612e65732c444e532e3237363d7777772e636164616c736f2e65732c444e532e3237373d7777772e63616c7a6164696c6c612e65732c444e532e3237383d7777772e63616d696e6f6d6f726973636f2e65732c444e532e3237393d7777772e63616d70696c6c6f646564656c6569746f73612e65732c444e532e3238303d7777772e63616d706f6c756761722e65732c444e532e3238313d7777772e63616e616d65726f2e65732c444e532e3238323d7777772e63616e61766572616c2e65732c444e532e3238333d7777772e63617262616a6f2e65732c444e532e3238343d7777772e6361726361626f736f2e65732c444e532e3238353d7777772e63617272617363616c656a6f2e65732c444e532e3238363d7777772e63617361726465636163657265732e65732c444e532e3238373d7777772e6361736172646570616c6f6d65726f2e65732c444e532e3238383d7777772e6361736172657364656c61736875726465732e65732c444e532e3238393d7777772e63617361736465646f6e616e746f6e696f2e65732c444e532e3239303d7777772e63617361736465646f6e676f6d657a2e65732c444e532e3239313d7777772e636173617364656c63617374616e61722e65732c444e532e3239323d7777772e636173617364656c6d6f6e74652e65732c444e532e3239333d7777772e636173617364656d696c6c616e2e65732c444e532e3239343d7777772e636173617364656d697261766574652e65732c444e532e3239353d7777772e6361736174656a6164612e65732c444e532e3239363d7777772e636173696c6c61736465636f7269612e65732c444e532e3239373d7777772e63617374616e6172646569626f722e65732c444e532e3239383d7777772e6365636c6176696e2e65732c444e532e3239393d7777772e636564696c6c6f2e65732c444e532e3330303d7777772e636572657a6f2e65732c444e532e3330313d7777772e63696c6c65726f732e65732c444e532e3330323d7777772e636f6c6c61646f2e65732c444e532e3330333d7777772e636f6e71756973746164656c617369657272612e65732c444e532e3330343d7777772e636f7269612e65732c444e532e3330353d7777772e637561636f73646579757374652e65732c444e532e3330363d7777772e6c6163756d6272652e65732c444e532e3330373d7777772e64656c6569746f73612e65732c444e532e3330383d7777772e64657363617267616d617269612e65732c444e532e3330393d7777772e656c6a61732e65732c444e532e3331303d7777772e657363757269616c2e65732c444e532e3331313d7777772e667265736e65646f736f646569626f722e65732c444e532e3331323d7777772e67616c697374656f2e65732c444e532e3331333d7777772e6761726369617a2e65732c444e532e3331343d7777772e6c6167617267616e74612e65732c444e532e3331353d7777772e67617267616e74616c616f6c6c612e65732c444e532e3331363d7777772e67617267616e74696c6c612e65732c444e532e3331373d7777772e67617267756572612e65732c444e532e3331383d7777772e676172726f76696c6c61736465616c636f6e657461722e65732c444e532e3331393d7777772e67617276696e2e65732c444e532e3332303d7777772e676174612e65732c444e532e3332313d7777772e6179746f656c676f72646f2e65732c444e532e3332323d7777772e6c616772616e6a612e65732c444e532e3332333d7777772e6c616772616e6a6164656772616e6164696c6c612e65732c444e532e3332343d7777772e6179756e74616d69656e746f646567756164616c7570652e65732c444e532e3332353d7777772e6775696a6f6465636f7269612e65732c444e532e3332363d7777772e6775696a6f646567616c697374656f2e65732c444e532e3332373d7777772e6775696a6f64656772616e6164696c6c612e65732c444e532e3332383d7777772e6775696a6f646573616e7461626172626172612e65732c444e532e3332393d7777772e6865726775696a75656c612e65732c444e532e3333303d7777772e6865726e616e706572657a2e65732c444e532e3333313d7777772e686572726572616465616c63616e746172612e65732c444e532e3333323d7777772e68657272657275656c612e65732c444e532e3333333d7777772e6865727661732e65732c444e532e3333343d7777772e686967756572612e65732c444e532e3333353d7777772e68696e6f6a616c2e65732c444e532e3333363d7777772e686f6c67756572612e65732c444e532e3333373d7777772e686f796f732e65732c444e532e3333383d7777772e6875656c6167612e65732c444e532e3333393d7777772e6962616865726e616e646f2e65732c444e532e3334303d7777772e6a6172616963656a6f2e65732c444e532e3334313d7777772e6a617261697a64656c61766572612e65732c444e532e3334323d7777772e6a6172616e64696c6c6164656c61766572612e65732c444e532e3334333d7777772e6a6172696c6c612e65732c444e532e3334343d7777772e6a657274652e65732c444e532e3334353d7777772e6c616472696c6c61722e65732c444e532e3334363d7777772e6c6f67726f73616e2e65732c444e532e3334373d7777772e6c6f73617264656c61766572612e65732c444e532e3334383d7777772e6d6164726967616c656a6f2e65732c444e532e3334393d7777772e6d6164726967616c64656c61766572612e65732c444e532e3335303d7777772e6d6164726f6e6572612e65732c444e532e3335313d7777772e6d616a616461732e65732c444e532e3335323d7777772e6d616c706172746964616465636163657265732e65732c444e532e3335333d7777772e6d616c706172746964616465706c6173656e6369612e65732c444e532e3335343d7777772e6d617263686167617a2e65732c444e532e3335353d7777772e6d6174616465616c63616e746172612e65732c444e532e3335363d7777772e6d656d6272696f2e65732c444e532e3335373d7777772e6d65736173646569626f722e65732c444e532e3335383d7777772e6d69616a616461732e65732c444e532e3335393d7777772e6d696c6c616e65732e65732c444e532e3336303d7777772e6d69726162656c2e65732c444e532e3336313d7777772e6d6f686564617364656772616e6164696c6c612e65732c444e532e3336323d7777772e6d6f6e726f792e65732c444e532e3336333d7777772e6d6f6e74616e6368657a2e65732c444e532e3336343d7777772e6d6f6e74656865726d6f736f2e65732c444e532e3336353d7777772e6d6f72616c656a612e65732c444e532e3336363d7777772e6d6f7263696c6c6f2e65732c444e532e3336373d7777772e6e617661636f6e63656a6f2e65732c444e532e3336383d7777772e6e6176616c76696c6c6172646569626f722e65732c444e532e3336393d7777772e6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3337303d7777772e6e6176617364656c6d6164726f6e6f2e65732c444e532e3337313d7777772e6e6176617472617369657272612e65732c444e532e3337323d7777772e6e6176657a75656c61732e65732c444e532e3337333d7777772e6e756e6f6d6f72616c2e65732c444e532e3337343d7777772e6f6c6976616465706c6173656e6369612e65732c444e532e3337353d7777772e70616c6f6d65726f2e65732c444e532e3337363d7777772e70617361726f6e64656c61766572612e65732c444e532e3337373d7777772e706564726f736f64656163696d2e65732c444e532e3337383d7777772e706572616c65646164656c616d6174612e65732c444e532e3337393d7777772e706572616c656461646573616e726f6d616e2e65732c444e532e3338303d7777772e706572616c657364656c70756572746f2e65732c444e532e3338313d7777772e7065736375657a612e65732c444e532e3338323d7777772e6c6170657367612e65732c444e532e3338333d7777772e70696564726173616c6261732e65732c444e532e3338343d7777772e70696e6f6672616e71756561646f2e65732c444e532e3338353d7777772e70696f726e616c2e65732c444e532e3338363d7777772e706c6173656e7a75656c612e65732c444e532e3338373d7777772e706f7274616a652e65732c444e532e3338383d7777772e706f7274657a75656c6f2e65732c444e532e3338393d7777772e706f7a75656c6f64657a61727a6f6e2e65732c444e532e3339303d7777772e707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3339313d7777772e70756572746f646573616e74616372757a2e65732c444e532e3339323d7777772e7265626f6c6c61722e65732c444e532e3339333d7777772e72696f6c6f626f732e65732c444e532e3339343d7777772e726f626c6564696c6c6f6465676174612e65732c444e532e3339353d7777772e726f626c6564696c6c6f64656c61766572612e65732c444e532e3339363d7777772e726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3339373d7777772e726f626c65646f6c6c616e6f2e65732c444e532e3339383d7777772e726f6d616e676f72646f2e65732c444e532e3339393d7777772e7275616e65732e65732c444e532e3430303d7777772e73616c6f72696e6f2e65732c444e532e3430313d7777772e73616c7661746965727261646573616e746961676f2e65732c444e532e3430323d7777772e73616e6d617274696e646574726576656a6f2e65732c444e532e3430333d7777772e6179746f73616e7461616e612e65732c444e532e3430343d7777772e73616e74616372757a64656c617369657272612e65732c444e532e3430353d7777772e73616e74616372757a646570616e69616775612e65732c444e532e3430363d7777772e73616e74616d6172746164656d6167617363612e65732c444e532e3430373d7777772e73616e746961676f64656c63616d706f2e65732c444e532e3430383d7777772e73616e746962616e657a656c616c746f2e65732c444e532e3430393d7777772e73616e746962616e657a656c62616a6f2e65732c444e532e3431303d7777772e736175636564696c6c612e65732c444e532e3431313d7777772e7365677572616465746f726f2e65732c444e532e3431323d7777772e736572726164696c6c612e65732c444e532e3431333d7777772e73657272656a6f6e2e65732c444e532e3431343d7777772e73696572726164656675656e7465732e65732c444e532e3431353d7777772e74616c6176616e2e65732c444e532e3431363d7777772e74616c6176657275656c6164656c61766572612e65732c444e532e3431373d7777772e74616c617975656c612e65732c444e532e3431383d7777772e74656a65646164657469657461722e65732c444e532e3431393d7777772e746f72696c2e65732c444e532e3432303d7777772e746f726e6176616361732e65732c444e532e3432313d7777772e6179746f656c746f726e6f2e65732c444e532e3432323d7777772e746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3432333d7777772e746f72726563696c6c617364656c6174696573612e65732c444e532e3432343d7777772e746f7272656465646f6e6d696775656c2e65732c444e532e3432353d7777772e746f727265646573616e74616d617269612e65732c444e532e3432363d7777772e746f7272656a6f6e656c727562696f2e65732c444e532e3432373d7777772e746f7272656a6f6e63696c6c6f2e65732c444e532e3432383d7777772e746f7272656d656e67612e65732c444e532e3432393d7777772e746f7272656d6f6368612e65732c444e532e3433303d7777772e746f7272656f7267617a2e65732c444e532e3433313d7777772e746f7272657175656d6164612e65732c444e532e3433323d7777772e76616c64617374696c6c61732e65732c444e532e3433333d7777772e76616c646563616e6173646574616a6f2e65732c444e532e3433343d7777772e76616c64656675656e7465732e65732c444e532e3433353d7777772e76616c646568756e6361722e65732c444e532e3433363d7777772e76616c6465696e69676f732e65732c444e532e3433373d7777772e76616c64656c6163617361646574616a6f2e65732c444e532e3433383d7777772e76616c64656d6f72616c65732e65732c444e532e3433393d7777772e76616c64656f626973706f2e65732c444e532e3434303d7777772e76616c646573616c6f722e65732c444e532e3434313d7777772e76616c72696f2e65732c444e532e3434323d7777772e76616c656e6369616465616c63616e746172612e65732c444e532e3434333d7777772e76616c766572646564656c61766572612e65732c444e532e3434343d7777772e76616c766572646564656c667265736e6f2e65732c444e532e3434353d7777772e766567617669616e612e65732c444e532e3434363d7777772e7669616e64617264656c61766572612e65732c444e532e3434373d7777772e76696c6c6164656c63616d706f2e65732c444e532e3434383d7777772e76696c6c6164656c7265792e65732c444e532e3434393d7777772e76696c6c616d65736961732e65732c444e532e3435303d7777772e76696c6c616d69656c2e65732c444e532e3435313d7777772e76696c6c616e7565766164656c617369657272612e65732c444e532e3435323d7777772e76696c6c617264656c706564726f736f2e65732c444e532e3435333d7777772e76696c6c61726465706c6173656e6369612e65732c444e532e3435343d7777772e76696c6c61736275656e61736465676174612e65732c444e532e3435353d7777772e7a61727a6164656772616e6164696c6c612e65732c444e532e3435363d7777772e7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3435373d7777772e7a61727a616c616d61796f722e65732c444e532e3435383d7777772e7a6f726974612e65732c444e532e3435393d7777772e726f73616c656a6f2e65732c444e532e3436303d7777772e766567617669616e612e65732c444e532e3436313d7777772e616c61676f6e64656c72696f2e65732c444e532e3436323d7777772e7469657461722e65732c444e532e3436333d7777772e76616c646573616c6f722e65732c444e532e3436343d7777772e6e6176617472617369657272612e65732c444e532e3436353d7777772e7269766572616465667265736e65646f73612e65732c444e532e3436363d7777772e656c6d73616e67696c2e65732c444e532e3436373d7777772e74616a6f73616c6f722e65732c444e532e3436383d7777772e76616c6c65616d62726f7a2e65732c444e532e3436393d7777772e6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3437303d7777772e6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3437313d7777772e6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3437323d7777772e6d616e636f6d756e6964616464656c61766572612e65732c444e532e3437333d7777772e6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3437343d7777772e76696c6c7565726361732d69626f7265732d6a6172612e6573,EMAIL=webmaster@dip-caceres.es,CN=www.dip-caceres.es,OU=DIPUTACION PROVINCIAL DE CACERES,O=DIPUTACION PROVINCIAL DE CACERES,L=CACERES,ST=CACERES,C=ES",
- .raw = {(void*)"\x30\x82\x31\x29\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x45\x53\x31\x10\x30\x0e\x06\x03\x55\x04\x08\x13\x07\x43\x41\x43\x45\x52\x45\x53\x31\x10\x30\x0e\x06\x03\x55\x04\x07\x13\x07\x43\x41\x43\x45\x52\x45\x53\x31\x29\x30\x27\x06\x03\x55\x04\x0a\x13\x20\x44\x49\x50\x55\x54\x41\x43\x49\x4f\x4e\x20\x50\x52\x4f\x56\x49\x4e\x43\x49\x41\x4c\x20\x44\x45\x20\x43\x41\x43\x45\x52\x45\x53\x31\x29\x30\x27\x06\x03\x55\x04\x0b\x13\x20\x44\x49\x50\x55\x54\x41\x43\x49\x4f\x4e\x20\x50\x52\x4f\x56\x49\x4e\x43\x49\x41\x4c\x20\x44\x45\x20\x43\x41\x43\x45\x52\x45\x53\x31\x1b\x30\x19\x06\x03\x55\x04\x03\x13\x12\x77\x77\x77\x2e\x64\x69\x70\x2d\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x31\x27\x30\x25\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x09\x01\x16\x18\x77\x65\x62\x6d\x61\x73\x74\x65\x72\x40\x64\x69\x70\x2d\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x31\x82\x30\x58\x30\x82\x30\x54\x06\x03\x55\x1d\x11\x13\x82\x30\x4b\x44\x4e\x53\x2e\x31\x3d\x61\x62\x61\x64\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x3d\x61\x62\x65\x72\x74\x75\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x3d\x61\x63\x65\x62\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x3d\x61\x63\x65\x68\x75\x63\x68\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x3d\x61\x63\x65\x69\x74\x75\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x3d\x61\x68\x69\x67\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x3d\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x3d\x61\x6c\x63\x6f\x6c\x6c\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x3d\x61\x79\x74\x6f\x61\x6c\x62\x61\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x3d\x61\x79\x74\x6f\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x3d\x61\x6c\x63\x75\x65\x73\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x3d\x61\x6c\x64\x65\x61\x63\x65\x6e\x74\x65\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x3d\x61\x6c\x64\x65\x61\x64\x65\x6c\x63\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x3d\x6c\x61\x61\x6c\x64\x65\x61\x64\x65\x6c\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x3d\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x3d\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x63\x61\x6d\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x3d\x61\x6c\x64\x65\x68\x75\x65\x6c\x61\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x3d\x61\x79\x74\x6f\x61\x6c\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x3d\x61\x6c\x69\x73\x65\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x3d\x61\x6c\x6d\x61\x72\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x3d\x61\x6c\x6d\x6f\x68\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x3d\x61\x79\x74\x6f\x61\x72\x72\x6f\x79\x6f\x64\x65\x6c\x61\x6c\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x3d\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x3d\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x3d\x62\x61\x6e\x6f\x73\x64\x65\x6d\x6f\x6e\x74\x65\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x3d\x62\x61\x72\x72\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x3d\x62\x65\x6c\x76\x69\x73\x64\x65\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x3d\x62\x65\x6e\x71\x75\x65\x72\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x3d\x62\x65\x72\x72\x6f\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x3d\x62\x65\x72\x7a\x6f\x63\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x3d\x62\x6f\x68\x6f\x6e\x61\x6c\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x3d\x62\x6f\x74\x69\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x3d\x62\x72\x6f\x7a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x3d\x63\x61\x62\x61\x6e\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x3d\x63\x61\x62\x65\x7a\x61\x62\x65\x6c\x6c\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x3d\x63\x61\x62\x65\x7a\x75\x65\x6c\x61\x64\x65\x6c\x76\x61\x6c\x6c\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x3d\x63\x61\x62\x72\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x3d\x63\x61\x63\x68\x6f\x72\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x3d\x63\x61\x64\x61\x6c\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x3d\x63\x61\x6c\x7a\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x3d\x63\x61\x6d\x69\x6e\x6f\x6d\x6f\x72\x69\x73\x63\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x3d\x63\x61\x6d\x70\x69\x6c\x6c\x6f\x64\x65\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x3d\x63\x61\x6d\x70\x6f\x6c\x75\x67\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x3d\x63\x61\x6e\x61\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x3d\x63\x61\x6e\x61\x76\x65\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x3d\x63\x61\x72\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x3d\x63\x61\x72\x63\x61\x62\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x38\x3d\x63\x61\x72\x72\x61\x73\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x39\x3d\x63\x61\x73\x61\x72\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x30\x3d\x63\x61\x73\x61\x72\x64\x65\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x31\x3d\x63\x61\x73\x61\x72\x65\x73\x64\x65\x6c\x61\x73\x68\x75\x72\x64\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x32\x3d\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x61\x6e\x74\x6f\x6e\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x33\x3d\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x67\x6f\x6d\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x34\x3d\x63\x61\x73\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x61\x6e\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x35\x3d\x63\x61\x73\x61\x73\x64\x65\x6c\x6d\x6f\x6e\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x36\x3d\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x6c\x6c\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x37\x3d\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x72\x61\x76\x65\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x38\x3d\x63\x61\x73\x61\x74\x65\x6a\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x39\x3d\x63\x61\x73\x69\x6c\x6c\x61\x73\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x30\x3d\x63\x61\x73\x74\x61\x6e\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x31\x3d\x63\x65\x63\x6c\x61\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x32\x3d\x63\x65\x64\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x33\x3d\x63\x65\x72\x65\x7a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x34\x3d\x63\x69\x6c\x6c\x65\x72\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x35\x3d\x63\x6f\x6c\x6c\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x36\x3d\x63\x6f\x6e\x71\x75\x69\x73\x74\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x37\x3d\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x38\x3d\x63\x75\x61\x63\x6f\x73\x64\x65\x79\x75\x73\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x39\x3d\x6c\x61\x63\x75\x6d\x62\x72\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x30\x3d\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x31\x3d\x64\x65\x73\x63\x61\x72\x67\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x32\x3d\x65\x6c\x6a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x33\x3d\x65\x73\x63\x75\x72\x69\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x34\x3d\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x6f\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x35\x3d\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x36\x3d\x67\x61\x72\x63\x69\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x37\x3d\x6c\x61\x67\x61\x72\x67\x61\x6e\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x38\x3d\x67\x61\x72\x67\x61\x6e\x74\x61\x6c\x61\x6f\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x39\x3d\x67\x61\x72\x67\x61\x6e\x74\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x30\x3d\x67\x61\x72\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x31\x3d\x67\x61\x72\x72\x6f\x76\x69\x6c\x6c\x61\x73\x64\x65\x61\x6c\x63\x6f\x6e\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x32\x3d\x67\x61\x72\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x33\x3d\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x34\x3d\x61\x79\x74\x6f\x65\x6c\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x35\x3d\x6c\x61\x67\x72\x61\x6e\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x36\x3d\x6c\x61\x67\x72\x61\x6e\x6a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x37\x3d\x61\x79\x75\x6e\x74\x61\x6d\x69\x65\x6e\x74\x6f\x64\x65\x67\x75\x61\x64\x61\x6c\x75\x70\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x38\x3d\x67\x75\x69\x6a\x6f\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x39\x3d\x67\x75\x69\x6a\x6f\x64\x65\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x30\x3d\x67\x75\x69\x6a\x6f\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x31\x3d\x67\x75\x69\x6a\x6f\x64\x65\x73\x61\x6e\x74\x61\x62\x61\x72\x62\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x32\x3d\x68\x65\x72\x67\x75\x69\x6a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x33\x3d\x68\x65\x72\x6e\x61\x6e\x70\x65\x72\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x34\x3d\x68\x65\x72\x72\x65\x72\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x35\x3d\x68\x65\x72\x72\x65\x72\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x36\x3d\x68\x65\x72\x76\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x37\x3d\x68\x69\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x38\x3d\x68\x69\x6e\x6f\x6a\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x39\x3d\x68\x6f\x6c\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x30\x3d\x68\x6f\x79\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x31\x3d\x68\x75\x65\x6c\x61\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x32\x3d\x69\x62\x61\x68\x65\x72\x6e\x61\x6e\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x33\x3d\x6a\x61\x72\x61\x69\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x34\x3d\x6a\x61\x72\x61\x69\x7a\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x35\x3d\x6a\x61\x72\x61\x6e\x64\x69\x6c\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x36\x3d\x6a\x61\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x37\x3d\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x38\x3d\x6c\x61\x64\x72\x69\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x39\x3d\x6c\x6f\x67\x72\x6f\x73\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x30\x3d\x6c\x6f\x73\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x31\x3d\x6d\x61\x64\x72\x69\x67\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x32\x3d\x6d\x61\x64\x72\x69\x67\x61\x6c\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x33\x3d\x6d\x61\x64\x72\x6f\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x34\x3d\x6d\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x35\x3d\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x36\x3d\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x37\x3d\x6d\x61\x72\x63\x68\x61\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x38\x3d\x6d\x61\x74\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x39\x3d\x6d\x65\x6d\x62\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x30\x3d\x6d\x65\x73\x61\x73\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x31\x3d\x6d\x69\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x32\x3d\x6d\x69\x6c\x6c\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x33\x3d\x6d\x69\x72\x61\x62\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x34\x3d\x6d\x6f\x68\x65\x64\x61\x73\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x35\x3d\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x36\x3d\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x37\x3d\x6d\x6f\x6e\x74\x65\x68\x65\x72\x6d\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x38\x3d\x6d\x6f\x72\x61\x6c\x65\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x39\x3d\x6d\x6f\x72\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x30\x3d\x6e\x61\x76\x61\x63\x6f\x6e\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x31\x3d\x6e\x61\x76\x61\x6c\x76\x69\x6c\x6c\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x32\x3d\x6e\x61\x76\x61\x6c\x6d\x6f\x72\x61\x6c\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x33\x3d\x6e\x61\x76\x61\x73\x64\x65\x6c\x6d\x61\x64\x72\x6f\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x34\x3d\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x35\x3d\x6e\x61\x76\x65\x7a\x75\x65\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x36\x3d\x6e\x75\x6e\x6f\x6d\x6f\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x37\x3d\x6f\x6c\x69\x76\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x38\x3d\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x39\x3d\x70\x61\x73\x61\x72\x6f\x6e\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x30\x3d\x70\x65\x64\x72\x6f\x73\x6f\x64\x65\x61\x63\x69\x6d\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x31\x3d\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x32\x3d\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x73\x61\x6e\x72\x6f\x6d\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x33\x3d\x70\x65\x72\x61\x6c\x65\x73\x64\x65\x6c\x70\x75\x65\x72\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x34\x3d\x70\x65\x73\x63\x75\x65\x7a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x35\x3d\x6c\x61\x70\x65\x73\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x36\x3d\x70\x69\x65\x64\x72\x61\x73\x61\x6c\x62\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x37\x3d\x70\x69\x6e\x6f\x66\x72\x61\x6e\x71\x75\x65\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x38\x3d\x70\x69\x6f\x72\x6e\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x39\x3d\x70\x6c\x61\x73\x65\x6e\x7a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x30\x3d\x70\x6f\x72\x74\x61\x6a\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x31\x3d\x70\x6f\x72\x74\x65\x7a\x75\x65\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x32\x3d\x70\x6f\x7a\x75\x65\x6c\x6f\x64\x65\x7a\x61\x72\x7a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x33\x3d\x70\x75\x65\x62\x6c\x6f\x6e\x75\x65\x76\x6f\x64\x65\x6d\x69\x72\x61\x6d\x6f\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x34\x3d\x70\x75\x65\x72\x74\x6f\x64\x65\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x35\x3d\x72\x65\x62\x6f\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x36\x3d\x72\x69\x6f\x6c\x6f\x62\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x37\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x38\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x39\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x74\x72\x75\x6a\x69\x6c\x6c\x6f\x2c\x44\x4e\x53\x2e\x31\x36\x30\x3d\x72\x6f\x62\x6c\x65\x64\x6f\x6c\x6c\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x31\x3d\x72\x6f\x6d\x61\x6e\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x32\x3d\x72\x75\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x33\x3d\x73\x61\x6c\x6f\x72\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x34\x3d\x73\x61\x6c\x76\x61\x74\x69\x65\x72\x72\x61\x64\x65\x73\x61\x6e\x74\x69\x61\x67\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x35\x3d\x73\x61\x6e\x6d\x61\x72\x74\x69\x6e\x64\x65\x74\x72\x65\x76\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x36\x3d\x61\x79\x74\x6f\x73\x61\x6e\x74\x61\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x37\x3d\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x38\x3d\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x70\x61\x6e\x69\x61\x67\x75\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x39\x3d\x73\x61\x6e\x74\x61\x6d\x61\x72\x74\x61\x64\x65\x6d\x61\x67\x61\x73\x63\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x30\x3d\x73\x61\x6e\x74\x69\x61\x67\x6f\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x31\x3d\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x61\x6c\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x32\x3d\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x33\x3d\x73\x61\x75\x63\x65\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x34\x3d\x73\x65\x67\x75\x72\x61\x64\x65\x74\x6f\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x35\x3d\x73\x65\x72\x72\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x36\x3d\x73\x65\x72\x72\x65\x6a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x37\x3d\x73\x69\x65\x72\x72\x61\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x38\x3d\x74\x61\x6c\x61\x76\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x39\x3d\x74\x61\x6c\x61\x76\x65\x72\x75\x65\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x30\x3d\x74\x61\x6c\x61\x79\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x31\x3d\x74\x65\x6a\x65\x64\x61\x64\x65\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x32\x3d\x74\x6f\x72\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x33\x3d\x74\x6f\x72\x6e\x61\x76\x61\x63\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x34\x3d\x61\x79\x74\x6f\x65\x6c\x74\x6f\x72\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x35\x3d\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x64\x65\x6c\x6f\x73\x61\x6e\x67\x65\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x36\x3d\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x73\x64\x65\x6c\x61\x74\x69\x65\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x37\x3d\x74\x6f\x72\x72\x65\x64\x65\x64\x6f\x6e\x6d\x69\x67\x75\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x38\x3d\x74\x6f\x72\x72\x65\x64\x65\x73\x61\x6e\x74\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x39\x3d\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x65\x6c\x72\x75\x62\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x30\x3d\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x31\x3d\x74\x6f\x72\x72\x65\x6d\x65\x6e\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x32\x3d\x74\x6f\x72\x72\x65\x6d\x6f\x63\x68\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x33\x3d\x74\x6f\x72\x72\x65\x6f\x72\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x34\x3d\x74\x6f\x72\x72\x65\x71\x75\x65\x6d\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x35\x3d\x76\x61\x6c\x64\x61\x73\x74\x69\x6c\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x36\x3d\x76\x61\x6c\x64\x65\x63\x61\x6e\x61\x73\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x37\x3d\x76\x61\x6c\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x38\x3d\x76\x61\x6c\x64\x65\x68\x75\x6e\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x39\x3d\x76\x61\x6c\x64\x65\x69\x6e\x69\x67\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x30\x3d\x76\x61\x6c\x64\x65\x6c\x61\x63\x61\x73\x61\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x31\x3d\x76\x61\x6c\x64\x65\x6d\x6f\x72\x61\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x32\x3d\x76\x61\x6c\x64\x65\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x33\x3d\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x34\x3d\x76\x61\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x35\x3d\x76\x61\x6c\x65\x6e\x63\x69\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x36\x3d\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x37\x3d\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x66\x72\x65\x73\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x38\x3d\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x39\x3d\x76\x69\x61\x6e\x64\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x30\x3d\x76\x69\x6c\x6c\x61\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x31\x3d\x76\x69\x6c\x6c\x61\x64\x65\x6c\x72\x65\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x32\x3d\x76\x69\x6c\x6c\x61\x6d\x65\x73\x69\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x33\x3d\x76\x69\x6c\x6c\x61\x6d\x69\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x34\x3d\x76\x69\x6c\x6c\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x35\x3d\x76\x69\x6c\x6c\x61\x72\x64\x65\x6c\x70\x65\x64\x72\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x36\x3d\x76\x69\x6c\x6c\x61\x72\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x37\x3d\x76\x69\x6c\x6c\x61\x73\x62\x75\x65\x6e\x61\x73\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x38\x3d\x7a\x61\x72\x7a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x39\x3d\x7a\x61\x72\x7a\x61\x64\x65\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x30\x3d\x7a\x61\x72\x7a\x61\x6c\x61\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x31\x3d\x7a\x6f\x72\x69\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x32\x3d\x72\x6f\x73\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x33\x3d\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x34\x3d\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x35\x3d\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x36\x3d\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x37\x3d\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x38\x3d\x72\x69\x76\x65\x72\x61\x64\x65\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x39\x3d\x65\x6c\x6d\x73\x61\x6e\x67\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x30\x3d\x74\x61\x6a\x6f\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x31\x3d\x76\x61\x6c\x6c\x65\x61\x6d\x62\x72\x6f\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x32\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x61\x6c\x61\x67\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x33\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x34\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x65\x67\x61\x73\x61\x6c\x74\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x35\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x36\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x7a\x6f\x6e\x61\x63\x65\x6e\x74\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x37\x3d\x76\x69\x6c\x6c\x75\x65\x72\x63\x61\x73\x2d\x69\x62\x6f\x72\x65\x73\x2d\x6a\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x38\x3d\x77\x77\x77\x2e\x61\x62\x61\x64\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x39\x3d\x77\x77\x77\x2e\x61\x62\x65\x72\x74\x75\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x30\x3d\x77\x77\x77\x2e\x61\x63\x65\x62\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x31\x3d\x77\x77\x77\x2e\x61\x63\x65\x68\x75\x63\x68\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x32\x3d\x77\x77\x77\x2e\x61\x63\x65\x69\x74\x75\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x33\x3d\x77\x77\x77\x2e\x61\x68\x69\x67\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x34\x3d\x77\x77\x77\x2e\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x35\x3d\x77\x77\x77\x2e\x61\x6c\x63\x6f\x6c\x6c\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x36\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x62\x61\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x37\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x38\x3d\x77\x77\x77\x2e\x61\x6c\x63\x75\x65\x73\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x39\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x63\x65\x6e\x74\x65\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x30\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x64\x65\x6c\x63\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x31\x3d\x77\x77\x77\x2e\x6c\x61\x61\x6c\x64\x65\x61\x64\x65\x6c\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x32\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x33\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x63\x61\x6d\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x34\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x68\x75\x65\x6c\x61\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x35\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x36\x3d\x77\x77\x77\x2e\x61\x6c\x69\x73\x65\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x37\x3d\x77\x77\x77\x2e\x61\x6c\x6d\x61\x72\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x38\x3d\x77\x77\x77\x2e\x61\x6c\x6d\x6f\x68\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x39\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x72\x72\x6f\x79\x6f\x64\x65\x6c\x61\x6c\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x30\x3d\x77\x77\x77\x2e\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x31\x3d\x77\x77\x77\x2e\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x32\x3d\x77\x77\x77\x2e\x62\x61\x6e\x6f\x73\x64\x65\x6d\x6f\x6e\x74\x65\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x33\x3d\x77\x77\x77\x2e\x62\x61\x72\x72\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x34\x3d\x77\x77\x77\x2e\x62\x65\x6c\x76\x69\x73\x64\x65\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x35\x3d\x77\x77\x77\x2e\x62\x65\x6e\x71\x75\x65\x72\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x36\x3d\x77\x77\x77\x2e\x62\x65\x72\x72\x6f\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x37\x3d\x77\x77\x77\x2e\x62\x65\x72\x7a\x6f\x63\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x38\x3d\x77\x77\x77\x2e\x62\x6f\x68\x6f\x6e\x61\x6c\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x39\x3d\x77\x77\x77\x2e\x62\x6f\x74\x69\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x30\x3d\x77\x77\x77\x2e\x62\x72\x6f\x7a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x31\x3d\x77\x77\x77\x2e\x63\x61\x62\x61\x6e\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x32\x3d\x77\x77\x77\x2e\x63\x61\x62\x65\x7a\x61\x62\x65\x6c\x6c\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x33\x3d\x77\x77\x77\x2e\x63\x61\x62\x65\x7a\x75\x65\x6c\x61\x64\x65\x6c\x76\x61\x6c\x6c\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x34\x3d\x77\x77\x77\x2e\x63\x61\x62\x72\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x35\x3d\x77\x77\x77\x2e\x63\x61\x63\x68\x6f\x72\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x36\x3d\x77\x77\x77\x2e\x63\x61\x64\x61\x6c\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x37\x3d\x77\x77\x77\x2e\x63\x61\x6c\x7a\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x38\x3d\x77\x77\x77\x2e\x63\x61\x6d\x69\x6e\x6f\x6d\x6f\x72\x69\x73\x63\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x39\x3d\x77\x77\x77\x2e\x63\x61\x6d\x70\x69\x6c\x6c\x6f\x64\x65\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x30\x3d\x77\x77\x77\x2e\x63\x61\x6d\x70\x6f\x6c\x75\x67\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x31\x3d\x77\x77\x77\x2e\x63\x61\x6e\x61\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x32\x3d\x77\x77\x77\x2e\x63\x61\x6e\x61\x76\x65\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x33\x3d\x77\x77\x77\x2e\x63\x61\x72\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x34\x3d\x77\x77\x77\x2e\x63\x61\x72\x63\x61\x62\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x35\x3d\x77\x77\x77\x2e\x63\x61\x72\x72\x61\x73\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x36\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x37\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x64\x65\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x38\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x65\x73\x64\x65\x6c\x61\x73\x68\x75\x72\x64\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x39\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x61\x6e\x74\x6f\x6e\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x30\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x67\x6f\x6d\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x31\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x61\x6e\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x32\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6c\x6d\x6f\x6e\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x33\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x6c\x6c\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x34\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x72\x61\x76\x65\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x35\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x74\x65\x6a\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x36\x3d\x77\x77\x77\x2e\x63\x61\x73\x69\x6c\x6c\x61\x73\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x37\x3d\x77\x77\x77\x2e\x63\x61\x73\x74\x61\x6e\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x38\x3d\x77\x77\x77\x2e\x63\x65\x63\x6c\x61\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x39\x3d\x77\x77\x77\x2e\x63\x65\x64\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x30\x3d\x77\x77\x77\x2e\x63\x65\x72\x65\x7a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x31\x3d\x77\x77\x77\x2e\x63\x69\x6c\x6c\x65\x72\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x32\x3d\x77\x77\x77\x2e\x63\x6f\x6c\x6c\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x33\x3d\x77\x77\x77\x2e\x63\x6f\x6e\x71\x75\x69\x73\x74\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x34\x3d\x77\x77\x77\x2e\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x35\x3d\x77\x77\x77\x2e\x63\x75\x61\x63\x6f\x73\x64\x65\x79\x75\x73\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x36\x3d\x77\x77\x77\x2e\x6c\x61\x63\x75\x6d\x62\x72\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x37\x3d\x77\x77\x77\x2e\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x38\x3d\x77\x77\x77\x2e\x64\x65\x73\x63\x61\x72\x67\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x39\x3d\x77\x77\x77\x2e\x65\x6c\x6a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x30\x3d\x77\x77\x77\x2e\x65\x73\x63\x75\x72\x69\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x31\x3d\x77\x77\x77\x2e\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x6f\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x32\x3d\x77\x77\x77\x2e\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x33\x3d\x77\x77\x77\x2e\x67\x61\x72\x63\x69\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x34\x3d\x77\x77\x77\x2e\x6c\x61\x67\x61\x72\x67\x61\x6e\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x35\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x61\x6e\x74\x61\x6c\x61\x6f\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x36\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x61\x6e\x74\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x37\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x38\x3d\x77\x77\x77\x2e\x67\x61\x72\x72\x6f\x76\x69\x6c\x6c\x61\x73\x64\x65\x61\x6c\x63\x6f\x6e\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x39\x3d\x77\x77\x77\x2e\x67\x61\x72\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x30\x3d\x77\x77\x77\x2e\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x31\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x65\x6c\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x32\x3d\x77\x77\x77\x2e\x6c\x61\x67\x72\x61\x6e\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x33\x3d\x77\x77\x77\x2e\x6c\x61\x67\x72\x61\x6e\x6a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x34\x3d\x77\x77\x77\x2e\x61\x79\x75\x6e\x74\x61\x6d\x69\x65\x6e\x74\x6f\x64\x65\x67\x75\x61\x64\x61\x6c\x75\x70\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x35\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x36\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x37\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x38\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x73\x61\x6e\x74\x61\x62\x61\x72\x62\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x39\x3d\x77\x77\x77\x2e\x68\x65\x72\x67\x75\x69\x6a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x30\x3d\x77\x77\x77\x2e\x68\x65\x72\x6e\x61\x6e\x70\x65\x72\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x31\x3d\x77\x77\x77\x2e\x68\x65\x72\x72\x65\x72\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x32\x3d\x77\x77\x77\x2e\x68\x65\x72\x72\x65\x72\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x33\x3d\x77\x77\x77\x2e\x68\x65\x72\x76\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x34\x3d\x77\x77\x77\x2e\x68\x69\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x35\x3d\x77\x77\x77\x2e\x68\x69\x6e\x6f\x6a\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x36\x3d\x77\x77\x77\x2e\x68\x6f\x6c\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x37\x3d\x77\x77\x77\x2e\x68\x6f\x79\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x38\x3d\x77\x77\x77\x2e\x68\x75\x65\x6c\x61\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x39\x3d\x77\x77\x77\x2e\x69\x62\x61\x68\x65\x72\x6e\x61\x6e\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x30\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x69\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x31\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x69\x7a\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x32\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x6e\x64\x69\x6c\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x33\x3d\x77\x77\x77\x2e\x6a\x61\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x34\x3d\x77\x77\x77\x2e\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x35\x3d\x77\x77\x77\x2e\x6c\x61\x64\x72\x69\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x36\x3d\x77\x77\x77\x2e\x6c\x6f\x67\x72\x6f\x73\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x37\x3d\x77\x77\x77\x2e\x6c\x6f\x73\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x38\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x69\x67\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x39\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x69\x67\x61\x6c\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x30\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x6f\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x31\x3d\x77\x77\x77\x2e\x6d\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x32\x3d\x77\x77\x77\x2e\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x33\x3d\x77\x77\x77\x2e\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x34\x3d\x77\x77\x77\x2e\x6d\x61\x72\x63\x68\x61\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x35\x3d\x77\x77\x77\x2e\x6d\x61\x74\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x36\x3d\x77\x77\x77\x2e\x6d\x65\x6d\x62\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x37\x3d\x77\x77\x77\x2e\x6d\x65\x73\x61\x73\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x38\x3d\x77\x77\x77\x2e\x6d\x69\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x39\x3d\x77\x77\x77\x2e\x6d\x69\x6c\x6c\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x30\x3d\x77\x77\x77\x2e\x6d\x69\x72\x61\x62\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x31\x3d\x77\x77\x77\x2e\x6d\x6f\x68\x65\x64\x61\x73\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x32\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x33\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x34\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x74\x65\x68\x65\x72\x6d\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x35\x3d\x77\x77\x77\x2e\x6d\x6f\x72\x61\x6c\x65\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x36\x3d\x77\x77\x77\x2e\x6d\x6f\x72\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x37\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x63\x6f\x6e\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x38\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x6c\x76\x69\x6c\x6c\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x39\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x6c\x6d\x6f\x72\x61\x6c\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x30\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x73\x64\x65\x6c\x6d\x61\x64\x72\x6f\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x31\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x32\x3d\x77\x77\x77\x2e\x6e\x61\x76\x65\x7a\x75\x65\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x33\x3d\x77\x77\x77\x2e\x6e\x75\x6e\x6f\x6d\x6f\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x34\x3d\x77\x77\x77\x2e\x6f\x6c\x69\x76\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x35\x3d\x77\x77\x77\x2e\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x36\x3d\x77\x77\x77\x2e\x70\x61\x73\x61\x72\x6f\x6e\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x37\x3d\x77\x77\x77\x2e\x70\x65\x64\x72\x6f\x73\x6f\x64\x65\x61\x63\x69\x6d\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x38\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x39\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x73\x61\x6e\x72\x6f\x6d\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x30\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x73\x64\x65\x6c\x70\x75\x65\x72\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x31\x3d\x77\x77\x77\x2e\x70\x65\x73\x63\x75\x65\x7a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x32\x3d\x77\x77\x77\x2e\x6c\x61\x70\x65\x73\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x33\x3d\x77\x77\x77\x2e\x70\x69\x65\x64\x72\x61\x73\x61\x6c\x62\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x34\x3d\x77\x77\x77\x2e\x70\x69\x6e\x6f\x66\x72\x61\x6e\x71\x75\x65\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x35\x3d\x77\x77\x77\x2e\x70\x69\x6f\x72\x6e\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x36\x3d\x77\x77\x77\x2e\x70\x6c\x61\x73\x65\x6e\x7a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x37\x3d\x77\x77\x77\x2e\x70\x6f\x72\x74\x61\x6a\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x38\x3d\x77\x77\x77\x2e\x70\x6f\x72\x74\x65\x7a\x75\x65\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x39\x3d\x77\x77\x77\x2e\x70\x6f\x7a\x75\x65\x6c\x6f\x64\x65\x7a\x61\x72\x7a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x30\x3d\x77\x77\x77\x2e\x70\x75\x65\x62\x6c\x6f\x6e\x75\x65\x76\x6f\x64\x65\x6d\x69\x72\x61\x6d\x6f\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x31\x3d\x77\x77\x77\x2e\x70\x75\x65\x72\x74\x6f\x64\x65\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x32\x3d\x77\x77\x77\x2e\x72\x65\x62\x6f\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x33\x3d\x77\x77\x77\x2e\x72\x69\x6f\x6c\x6f\x62\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x34\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x35\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x36\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x74\x72\x75\x6a\x69\x6c\x6c\x6f\x2c\x44\x4e\x53\x2e\x33\x39\x37\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x6f\x6c\x6c\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x38\x3d\x77\x77\x77\x2e\x72\x6f\x6d\x61\x6e\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x39\x3d\x77\x77\x77\x2e\x72\x75\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x30\x3d\x77\x77\x77\x2e\x73\x61\x6c\x6f\x72\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x31\x3d\x77\x77\x77\x2e\x73\x61\x6c\x76\x61\x74\x69\x65\x72\x72\x61\x64\x65\x73\x61\x6e\x74\x69\x61\x67\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x32\x3d\x77\x77\x77\x2e\x73\x61\x6e\x6d\x61\x72\x74\x69\x6e\x64\x65\x74\x72\x65\x76\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x33\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x73\x61\x6e\x74\x61\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x34\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x35\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x70\x61\x6e\x69\x61\x67\x75\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x36\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x6d\x61\x72\x74\x61\x64\x65\x6d\x61\x67\x61\x73\x63\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x37\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x61\x67\x6f\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x38\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x61\x6c\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x39\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x30\x3d\x77\x77\x77\x2e\x73\x61\x75\x63\x65\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x31\x3d\x77\x77\x77\x2e\x73\x65\x67\x75\x72\x61\x64\x65\x74\x6f\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x32\x3d\x77\x77\x77\x2e\x73\x65\x72\x72\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x33\x3d\x77\x77\x77\x2e\x73\x65\x72\x72\x65\x6a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x34\x3d\x77\x77\x77\x2e\x73\x69\x65\x72\x72\x61\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x35\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x76\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x36\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x76\x65\x72\x75\x65\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x37\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x79\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x38\x3d\x77\x77\x77\x2e\x74\x65\x6a\x65\x64\x61\x64\x65\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x39\x3d\x77\x77\x77\x2e\x74\x6f\x72\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x30\x3d\x77\x77\x77\x2e\x74\x6f\x72\x6e\x61\x76\x61\x63\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x31\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x65\x6c\x74\x6f\x72\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x32\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x64\x65\x6c\x6f\x73\x61\x6e\x67\x65\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x33\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x73\x64\x65\x6c\x61\x74\x69\x65\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x34\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x64\x65\x64\x6f\x6e\x6d\x69\x67\x75\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x35\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x64\x65\x73\x61\x6e\x74\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x36\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x65\x6c\x72\x75\x62\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x37\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x38\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6d\x65\x6e\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x39\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6d\x6f\x63\x68\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x30\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6f\x72\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x31\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x71\x75\x65\x6d\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x32\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x61\x73\x74\x69\x6c\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x63\x61\x6e\x61\x73\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x34\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x35\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x68\x75\x6e\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x36\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x69\x6e\x69\x67\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x37\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6c\x61\x63\x61\x73\x61\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x38\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6d\x6f\x72\x61\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x39\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x30\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x31\x3d\x77\x77\x77\x2e\x76\x61\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x32\x3d\x77\x77\x77\x2e\x76\x61\x6c\x65\x6e\x63\x69\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x34\x3d\x77\x77\x77\x2e\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x66\x72\x65\x73\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x35\x3d\x77\x77\x77\x2e\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x36\x3d\x77\x77\x77\x2e\x76\x69\x61\x6e\x64\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x37\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x38\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x64\x65\x6c\x72\x65\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x39\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6d\x65\x73\x69\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x30\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6d\x69\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x31\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x32\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x72\x64\x65\x6c\x70\x65\x64\x72\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x33\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x72\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x34\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x73\x62\x75\x65\x6e\x61\x73\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x35\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x36\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x64\x65\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x37\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x6c\x61\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x38\x3d\x77\x77\x77\x2e\x7a\x6f\x72\x69\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x39\x3d\x77\x77\x77\x2e\x72\x6f\x73\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x30\x3d\x77\x77\x77\x2e\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x31\x3d\x77\x77\x77\x2e\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x32\x3d\x77\x77\x77\x2e\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x34\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x35\x3d\x77\x77\x77\x2e\x72\x69\x76\x65\x72\x61\x64\x65\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x36\x3d\x77\x77\x77\x2e\x65\x6c\x6d\x73\x61\x6e\x67\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x37\x3d\x77\x77\x77\x2e\x74\x61\x6a\x6f\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x38\x3d\x77\x77\x77\x2e\x76\x61\x6c\x6c\x65\x61\x6d\x62\x72\x6f\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x39\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x61\x6c\x61\x67\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x30\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x31\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x65\x67\x61\x73\x61\x6c\x74\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x32\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x33\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x7a\x6f\x6e\x61\x63\x65\x6e\x74\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x34\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x75\x65\x72\x63\x61\x73\x2d\x69\x62\x6f\x72\x65\x73\x2d\x6a\x61\x72\x61\x2e\x65\x73", 12589},
- .can_encode = 1
- }
+ .name = "very long DN",
+ .compat_str =
+ "C=ES,ST=CACERES,L=CACERES,O=DIPUTACION PROVINCIAL DE CACERES,OU=DIPUTACION PROVINCIAL DE CACERES,CN=www.dip-caceres.es,EMAIL=webmaster@dip-caceres.es,2.5.29.17=#1382304b444e532e313d6162616469612e65732c444e532e323d61626572747572612e65732c444e532e333d616365626f2e65732c444e532e343d61636568756368652e65732c444e532e353d6163656974756e612e65732c444e532e363d61686967616c2e65732c444e532e373d616c61676f6e64656c72696f2e65732c444e532e383d616c636f6c6c6172696e2e65732c444e532e393d6179746f616c62616c612e65732c444e532e31303d6179746f616c63616e746172612e65732c444e532e31313d616c637565736361722e65732c444e532e31323d616c64656163656e74656e6572612e65732c444e532e31333d616c64656164656c63616e6f2e65732c444e532e31343d6c61616c64656164656c6f626973706f2e65732c444e532e31353d616c6465616e7565766164656c61766572612e65732c444e532e31363d616c6465616e7565766164656c63616d696e6f2e65732c444e532e31373d616c64656875656c6164656c6a657274652e65732c444e532e31383d6179746f616c69612e65732c444e532e31393d616c69736564612e65732c444e532e32303d616c6d6172617a2e65732c444e532e32313d616c6d6f686172696e2e65732c444e532e32323d6179746f6172726f796f64656c616c757a2e65732c444e532e32333d6172726f796f6d6f6c696e6f732e65732c444e532e32343d6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e32353d62616e6f7364656d6f6e74656d61796f722e65732c444e532e32363d6261727261646f2e65732c444e532e32373d62656c76697364656d6f6e726f792e65732c444e532e32383d62656e71756572656e6369612e65732c444e532e32393d626572726f63616c656a6f2e65732c444e532e33303d6265727a6f63616e612e65732c444e532e33313d626f686f6e616c646569626f722e65732c444e532e33323d626f74696a612e65732c444e532e33333d62726f7a61732e65732c444e532e33343d636162616e617364656c63617374696c6c6f2e65732c444e532e33353d636162657a6162656c6c6f73612e65732c444e532e33363d636162657a75656c6164656c76616c6c652e65732c444e532e33373d6361627265726f2e65732c444e532e33383d636163686f7272696c6c612e65732c444e532e33393d636164616c736f2e65732c444e532e34303d63616c7a6164696c6c612e65732c444e532e34313d63616d696e6f6d6f726973636f2e65732c444e532e34323d63616d70696c6c6f646564656c6569746f73612e65732c444e532e34333d63616d706f6c756761722e65732c444e532e34343d63616e616d65726f2e65732c444e532e34353d63616e61766572616c2e65732c444e532e34363d63617262616a6f2e65732c444e532e34373d6361726361626f736f2e65732c444e532e34383d63617272617363616c656a6f2e65732c444e532e34393d63617361726465636163657265732e65732c444e532e35303d6361736172646570616c6f6d65726f2e65732c444e532e35313d6361736172657364656c61736875726465732e65732c444e532e35323d63617361736465646f6e616e746f6e696f2e65732c444e532e35333d63617361736465646f6e676f6d657a2e65732c444e532e35343d636173617364656c63617374616e61722e65732c444e532e35353d636173617364656c6d6f6e74652e65732c444e532e35363d636173617364656d696c6c616e2e65732c444e532e35373d636173617364656d697261766574652e65732c444e532e35383d6361736174656a6164612e65732c444e532e35393d636173696c6c61736465636f7269612e65732c444e532e36303d63617374616e6172646569626f722e65732c444e532e36313d6365636c6176696e2e65732c444e532e36323d636564696c6c6f2e65732c444e532e36333d636572657a6f2e65732c444e532e36343d63696c6c65726f732e65732c444e532e36353d636f6c6c61646f2e65732c444e532e36363d636f6e71756973746164656c617369657272612e65732c444e532e36373d636f7269612e65732c444e532e36383d637561636f73646579757374652e65732c444e532e36393d6c6163756d6272652e65732c444e532e37303d64656c6569746f73612e65732c444e532e37313d64657363617267616d617269612e65732c444e532e37323d656c6a61732e65732c444e532e37333d657363757269616c2e65732c444e532e37343d667265736e65646f736f646569626f722e65732c444e532e37353d67616c697374656f2e65732c444e532e37363d6761726369617a2e65732c444e532e37373d6c6167617267616e74612e65732c444e532e37383d67617267616e74616c616f6c6c612e65732c444e532e37393d67617267616e74696c6c612e65732c444e532e38303d67617267756572612e65732c444e532e38313d676172726f76696c6c61736465616c636f6e657461722e65732c444e532e38323d67617276696e2e65732c444e532e38333d676174612e65732c444e532e38343d6179746f656c676f72646f2e65732c444e532e38353d6c616772616e6a612e65732c444e532e38363d6c616772616e6a6164656772616e6164696c6c612e65732c444e532e38373d6179756e74616d69656e746f646567756164616c7570652e65732c444e532e38383d6775696a6f6465636f7269612e65732c444e532e38393d6775696a6f646567616c697374656f2e65732c444e532e39303d6775696a6f64656772616e6164696c6c612e65732c444e532e39313d6775696a6f646573616e7461626172626172612e65732c444e532e39323d6865726775696a75656c612e65732c444e532e39333d6865726e616e706572657a2e65732c444e532e39343d686572726572616465616c63616e746172612e65732c444e532e39353d68657272657275656c612e65732c444e532e39363d6865727661732e65732c444e532e39373d686967756572612e65732c444e532e39383d68696e6f6a616c2e65732c444e532e39393d686f6c67756572612e65732c444e532e3130303d686f796f732e65732c444e532e3130313d6875656c6167612e65732c444e532e3130323d6962616865726e616e646f2e65732c444e532e3130333d6a6172616963656a6f2e65732c444e532e3130343d6a617261697a64656c61766572612e65732c444e532e3130353d6a6172616e64696c6c6164656c61766572612e65732c444e532e3130363d6a6172696c6c612e65732c444e532e3130373d6a657274652e65732c444e532e3130383d6c616472696c6c61722e65732c444e532e3130393d6c6f67726f73616e2e65732c444e532e3131303d6c6f73617264656c61766572612e65732c444e532e3131313d6d6164726967616c656a6f2e65732c444e532e3131323d6d6164726967616c64656c61766572612e65732c444e532e3131333d6d6164726f6e6572612e65732c444e532e3131343d6d616a616461732e65732c444e532e3131353d6d616c706172746964616465636163657265732e65732c444e532e3131363d6d616c706172746964616465706c6173656e6369612e65732c444e532e3131373d6d617263686167617a2e65732c444e532e3131383d6d6174616465616c63616e746172612e65732c444e532e3131393d6d656d6272696f2e65732c444e532e3132303d6d65736173646569626f722e65732c444e532e3132313d6d69616a616461732e65732c444e532e3132323d6d696c6c616e65732e65732c444e532e3132333d6d69726162656c2e65732c444e532e3132343d6d6f686564617364656772616e6164696c6c612e65732c444e532e3132353d6d6f6e726f792e65732c444e532e3132363d6d6f6e74616e6368657a2e65732c444e532e3132373d6d6f6e74656865726d6f736f2e65732c444e532e3132383d6d6f72616c656a612e65732c444e532e3132393d6d6f7263696c6c6f2e65732c444e532e3133303d6e617661636f6e63656a6f2e65732c444e532e3133313d6e6176616c76696c6c6172646569626f722e65732c444e532e3133323d6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3133333d6e6176617364656c6d6164726f6e6f2e65732c444e532e3133343d6e6176617472617369657272612e65732c444e532e3133353d6e6176657a75656c61732e65732c444e532e3133363d6e756e6f6d6f72616c2e65732c444e532e3133373d6f6c6976616465706c6173656e6369612e65732c444e532e3133383d70616c6f6d65726f2e65732c444e532e3133393d70617361726f6e64656c61766572612e65732c444e532e3134303d706564726f736f64656163696d2e65732c444e532e3134313d706572616c65646164656c616d6174612e65732c444e532e3134323d706572616c656461646573616e726f6d616e2e65732c444e532e3134333d706572616c657364656c70756572746f2e65732c444e532e3134343d7065736375657a612e65732c444e532e3134353d6c6170657367612e65732c444e532e3134363d70696564726173616c6261732e65732c444e532e3134373d70696e6f6672616e71756561646f2e65732c444e532e3134383d70696f726e616c2e65732c444e532e3134393d706c6173656e7a75656c612e65732c444e532e3135303d706f7274616a652e65732c444e532e3135313d706f7274657a75656c6f2e65732c444e532e3135323d706f7a75656c6f64657a61727a6f6e2e65732c444e532e3135333d707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3135343d70756572746f646573616e74616372757a2e65732c444e532e3135353d7265626f6c6c61722e65732c444e532e3135363d72696f6c6f626f732e65732c444e532e3135373d726f626c6564696c6c6f6465676174612e65732c444e532e3135383d726f626c6564696c6c6f64656c61766572612e65732c444e532e3135393d726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3136303d726f626c65646f6c6c616e6f2e65732c444e532e3136313d726f6d616e676f72646f2e65732c444e532e3136323d7275616e65732e65732c444e532e3136333d73616c6f72696e6f2e65732c444e532e3136343d73616c7661746965727261646573616e746961676f2e65732c444e532e3136353d73616e6d617274696e646574726576656a6f2e65732c444e532e3136363d6179746f73616e7461616e612e65732c444e532e3136373d73616e74616372757a64656c617369657272612e65732c444e532e3136383d73616e74616372757a646570616e69616775612e65732c444e532e3136393d73616e74616d6172746164656d6167617363612e65732c444e532e3137303d73616e746961676f64656c63616d706f2e65732c444e532e3137313d73616e746962616e657a656c616c746f2e65732c444e532e3137323d73616e746962616e657a656c62616a6f2e65732c444e532e3137333d736175636564696c6c612e65732c444e532e3137343d7365677572616465746f726f2e65732c444e532e3137353d736572726164696c6c612e65732c444e532e3137363d73657272656a6f6e2e65732c444e532e3137373d73696572726164656675656e7465732e65732c444e532e3137383d74616c6176616e2e65732c444e532e3137393d74616c6176657275656c6164656c61766572612e65732c444e532e3138303d74616c617975656c612e65732c444e532e3138313d74656a65646164657469657461722e65732c444e532e3138323d746f72696c2e65732c444e532e3138333d746f726e6176616361732e65732c444e532e3138343d6179746f656c746f726e6f2e65732c444e532e3138353d746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3138363d746f72726563696c6c617364656c6174696573612e65732c444e532e3138373d746f7272656465646f6e6d696775656c2e65732c444e532e3138383d746f727265646573616e74616d617269612e65732c444e532e3138393d746f7272656a6f6e656c727562696f2e65732c444e532e3139303d746f7272656a6f6e63696c6c6f2e65732c444e532e3139313d746f7272656d656e67612e65732c444e532e3139323d746f7272656d6f6368612e65732c444e532e3139333d746f7272656f7267617a2e65732c444e532e3139343d746f7272657175656d6164612e65732c444e532e3139353d76616c64617374696c6c61732e65732c444e532e3139363d76616c646563616e6173646574616a6f2e65732c444e532e3139373d76616c64656675656e7465732e65732c444e532e3139383d76616c646568756e6361722e65732c444e532e3139393d76616c6465696e69676f732e65732c444e532e3230303d76616c64656c6163617361646574616a6f2e65732c444e532e3230313d76616c64656d6f72616c65732e65732c444e532e3230323d76616c64656f626973706f2e65732c444e532e3230333d76616c646573616c6f722e65732c444e532e3230343d76616c72696f2e65732c444e532e3230353d76616c656e6369616465616c63616e746172612e65732c444e532e3230363d76616c766572646564656c61766572612e65732c444e532e3230373d76616c766572646564656c667265736e6f2e65732c444e532e3230383d766567617669616e612e65732c444e532e3230393d7669616e64617264656c61766572612e65732c444e532e3231303d76696c6c6164656c63616d706f2e65732c444e532e3231313d76696c6c6164656c7265792e65732c444e532e3231323d76696c6c616d65736961732e65732c444e532e3231333d76696c6c616d69656c2e65732c444e532e3231343d76696c6c616e7565766164656c617369657272612e65732c444e532e3231353d76696c6c617264656c706564726f736f2e65732c444e532e3231363d76696c6c61726465706c6173656e6369612e65732c444e532e3231373d76696c6c61736275656e61736465676174612e65732c444e532e3231383d7a61727a6164656772616e6164696c6c612e65732c444e532e3231393d7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3232303d7a61727a616c616d61796f722e65732c444e532e3232313d7a6f726974612e65732c444e532e3232323d726f73616c656a6f2e65732c444e532e3232333d766567617669616e612e65732c444e532e3232343d616c61676f6e64656c72696f2e65732c444e532e3232353d7469657461722e65732c444e532e3232363d76616c646573616c6f722e65732c444e532e3232373d6e6176617472617369657272612e65732c444e532e3232383d7269766572616465667265736e65646f73612e65732c444e532e3232393d656c6d73616e67696c2e65732c444e532e3233303d74616a6f73616c6f722e65732c444e532e3233313d76616c6c65616d62726f7a2e65732c444e532e3233323d6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3233333d6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3233343d6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3233353d6d616e636f6d756e6964616464656c61766572612e65732c444e532e3233363d6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3233373d76696c6c7565726361732d69626f7265732d6a6172612e65732c444e532e3233383d7777772e6162616469612e65732c444e532e3233393d7777772e61626572747572612e65732c444e532e3234303d7777772e616365626f2e65732c444e532e3234313d7777772e61636568756368652e65732c444e532e3234323d7777772e6163656974756e612e65732c444e532e3234333d7777772e61686967616c2e65732c444e532e3234343d7777772e616c61676f6e64656c72696f2e65732c444e532e3234353d7777772e616c636f6c6c6172696e2e65732c444e532e3234363d7777772e6179746f616c62616c612e65732c444e532e3234373d7777772e6179746f616c63616e746172612e65732c444e532e3234383d7777772e616c637565736361722e65732c444e532e3234393d7777772e616c64656163656e74656e6572612e65732c444e532e3235303d7777772e616c64656164656c63616e6f2e65732c444e532e3235313d7777772e6c61616c64656164656c6f626973706f2e65732c444e532e3235323d7777772e616c6465616e7565766164656c61766572612e65732c444e532e3235333d7777772e616c6465616e7565766164656c63616d696e6f2e65732c444e532e3235343d7777772e616c64656875656c6164656c6a657274652e65732c444e532e3235353d7777772e6179746f616c69612e65732c444e532e3235363d7777772e616c69736564612e65732c444e532e3235373d7777772e616c6d6172617a2e65732c444e532e3235383d7777772e616c6d6f686172696e2e65732c444e532e3235393d7777772e6179746f6172726f796f64656c616c757a2e65732c444e532e3236303d7777772e6172726f796f6d6f6c696e6f732e65732c444e532e3236313d7777772e6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e3236323d7777772e62616e6f7364656d6f6e74656d61796f722e65732c444e532e3236333d7777772e6261727261646f2e65732c444e532e3236343d7777772e62656c76697364656d6f6e726f792e65732c444e532e3236353d7777772e62656e71756572656e6369612e65732c444e532e3236363d7777772e626572726f63616c656a6f2e65732c444e532e3236373d7777772e6265727a6f63616e612e65732c444e532e3236383d7777772e626f686f6e616c646569626f722e65732c444e532e3236393d7777772e626f74696a612e65732c444e532e3237303d7777772e62726f7a61732e65732c444e532e3237313d7777772e636162616e617364656c63617374696c6c6f2e65732c444e532e3237323d7777772e636162657a6162656c6c6f73612e65732c444e532e3237333d7777772e636162657a75656c6164656c76616c6c652e65732c444e532e3237343d7777772e6361627265726f2e65732c444e532e3237353d7777772e636163686f7272696c6c612e65732c444e532e3237363d7777772e636164616c736f2e65732c444e532e3237373d7777772e63616c7a6164696c6c612e65732c444e532e3237383d7777772e63616d696e6f6d6f726973636f2e65732c444e532e3237393d7777772e63616d70696c6c6f646564656c6569746f73612e65732c444e532e3238303d7777772e63616d706f6c756761722e65732c444e532e3238313d7777772e63616e616d65726f2e65732c444e532e3238323d7777772e63616e61766572616c2e65732c444e532e3238333d7777772e63617262616a6f2e65732c444e532e3238343d7777772e6361726361626f736f2e65732c444e532e3238353d7777772e63617272617363616c656a6f2e65732c444e532e3238363d7777772e63617361726465636163657265732e65732c444e532e3238373d7777772e6361736172646570616c6f6d65726f2e65732c444e532e3238383d7777772e6361736172657364656c61736875726465732e65732c444e532e3238393d7777772e63617361736465646f6e616e746f6e696f2e65732c444e532e3239303d7777772e63617361736465646f6e676f6d657a2e65732c444e532e3239313d7777772e636173617364656c63617374616e61722e65732c444e532e3239323d7777772e636173617364656c6d6f6e74652e65732c444e532e3239333d7777772e636173617364656d696c6c616e2e65732c444e532e3239343d7777772e636173617364656d697261766574652e65732c444e532e3239353d7777772e6361736174656a6164612e65732c444e532e3239363d7777772e636173696c6c61736465636f7269612e65732c444e532e3239373d7777772e63617374616e6172646569626f722e65732c444e532e3239383d7777772e6365636c6176696e2e65732c444e532e3239393d7777772e636564696c6c6f2e65732c444e532e3330303d7777772e636572657a6f2e65732c444e532e3330313d7777772e63696c6c65726f732e65732c444e532e3330323d7777772e636f6c6c61646f2e65732c444e532e3330333d7777772e636f6e71756973746164656c617369657272612e65732c444e532e3330343d7777772e636f7269612e65732c444e532e3330353d7777772e637561636f73646579757374652e65732c444e532e3330363d7777772e6c6163756d6272652e65732c444e532e3330373d7777772e64656c6569746f73612e65732c444e532e3330383d7777772e64657363617267616d617269612e65732c444e532e3330393d7777772e656c6a61732e65732c444e532e3331303d7777772e657363757269616c2e65732c444e532e3331313d7777772e667265736e65646f736f646569626f722e65732c444e532e3331323d7777772e67616c697374656f2e65732c444e532e3331333d7777772e6761726369617a2e65732c444e532e3331343d7777772e6c6167617267616e74612e65732c444e532e3331353d7777772e67617267616e74616c616f6c6c612e65732c444e532e3331363d7777772e67617267616e74696c6c612e65732c444e532e3331373d7777772e67617267756572612e65732c444e532e3331383d7777772e676172726f76696c6c61736465616c636f6e657461722e65732c444e532e3331393d7777772e67617276696e2e65732c444e532e3332303d7777772e676174612e65732c444e532e3332313d7777772e6179746f656c676f72646f2e65732c444e532e3332323d7777772e6c616772616e6a612e65732c444e532e3332333d7777772e6c616772616e6a6164656772616e6164696c6c612e65732c444e532e3332343d7777772e6179756e74616d69656e746f646567756164616c7570652e65732c444e532e3332353d7777772e6775696a6f6465636f7269612e65732c444e532e3332363d7777772e6775696a6f646567616c697374656f2e65732c444e532e3332373d7777772e6775696a6f64656772616e6164696c6c612e65732c444e532e3332383d7777772e6775696a6f646573616e7461626172626172612e65732c444e532e3332393d7777772e6865726775696a75656c612e65732c444e532e3333303d7777772e6865726e616e706572657a2e65732c444e532e3333313d7777772e686572726572616465616c63616e746172612e65732c444e532e3333323d7777772e68657272657275656c612e65732c444e532e3333333d7777772e6865727661732e65732c444e532e3333343d7777772e686967756572612e65732c444e532e3333353d7777772e68696e6f6a616c2e65732c444e532e3333363d7777772e686f6c67756572612e65732c444e532e3333373d7777772e686f796f732e65732c444e532e3333383d7777772e6875656c6167612e65732c444e532e3333393d7777772e6962616865726e616e646f2e65732c444e532e3334303d7777772e6a6172616963656a6f2e65732c444e532e3334313d7777772e6a617261697a64656c61766572612e65732c444e532e3334323d7777772e6a6172616e64696c6c6164656c61766572612e65732c444e532e3334333d7777772e6a6172696c6c612e65732c444e532e3334343d7777772e6a657274652e65732c444e532e3334353d7777772e6c616472696c6c61722e65732c444e532e3334363d7777772e6c6f67726f73616e2e65732c444e532e3334373d7777772e6c6f73617264656c61766572612e65732c444e532e3334383d7777772e6d6164726967616c656a6f2e65732c444e532e3334393d7777772e6d6164726967616c64656c61766572612e65732c444e532e3335303d7777772e6d6164726f6e6572612e65732c444e532e3335313d7777772e6d616a616461732e65732c444e532e3335323d7777772e6d616c706172746964616465636163657265732e65732c444e532e3335333d7777772e6d616c706172746964616465706c6173656e6369612e65732c444e532e3335343d7777772e6d617263686167617a2e65732c444e532e3335353d7777772e6d6174616465616c63616e746172612e65732c444e532e3335363d7777772e6d656d6272696f2e65732c444e532e3335373d7777772e6d65736173646569626f722e65732c444e532e3335383d7777772e6d69616a616461732e65732c444e532e3335393d7777772e6d696c6c616e65732e65732c444e532e3336303d7777772e6d69726162656c2e65732c444e532e3336313d7777772e6d6f686564617364656772616e6164696c6c612e65732c444e532e3336323d7777772e6d6f6e726f792e65732c444e532e3336333d7777772e6d6f6e74616e6368657a2e65732c444e532e3336343d7777772e6d6f6e74656865726d6f736f2e65732c444e532e3336353d7777772e6d6f72616c656a612e65732c444e532e3336363d7777772e6d6f7263696c6c6f2e65732c444e532e3336373d7777772e6e617661636f6e63656a6f2e65732c444e532e3336383d7777772e6e6176616c76696c6c6172646569626f722e65732c444e532e3336393d7777772e6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3337303d7777772e6e6176617364656c6d6164726f6e6f2e65732c444e532e3337313d7777772e6e6176617472617369657272612e65732c444e532e3337323d7777772e6e6176657a75656c61732e65732c444e532e3337333d7777772e6e756e6f6d6f72616c2e65732c444e532e3337343d7777772e6f6c6976616465706c6173656e6369612e65732c444e532e3337353d7777772e70616c6f6d65726f2e65732c444e532e3337363d7777772e70617361726f6e64656c61766572612e65732c444e532e3337373d7777772e706564726f736f64656163696d2e65732c444e532e3337383d7777772e706572616c65646164656c616d6174612e65732c444e532e3337393d7777772e706572616c656461646573616e726f6d616e2e65732c444e532e3338303d7777772e706572616c657364656c70756572746f2e65732c444e532e3338313d7777772e7065736375657a612e65732c444e532e3338323d7777772e6c6170657367612e65732c444e532e3338333d7777772e70696564726173616c6261732e65732c444e532e3338343d7777772e70696e6f6672616e71756561646f2e65732c444e532e3338353d7777772e70696f726e616c2e65732c444e532e3338363d7777772e706c6173656e7a75656c612e65732c444e532e3338373d7777772e706f7274616a652e65732c444e532e3338383d7777772e706f7274657a75656c6f2e65732c444e532e3338393d7777772e706f7a75656c6f64657a61727a6f6e2e65732c444e532e3339303d7777772e707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3339313d7777772e70756572746f646573616e74616372757a2e65732c444e532e3339323d7777772e7265626f6c6c61722e65732c444e532e3339333d7777772e72696f6c6f626f732e65732c444e532e3339343d7777772e726f626c6564696c6c6f6465676174612e65732c444e532e3339353d7777772e726f626c6564696c6c6f64656c61766572612e65732c444e532e3339363d7777772e726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3339373d7777772e726f626c65646f6c6c616e6f2e65732c444e532e3339383d7777772e726f6d616e676f72646f2e65732c444e532e3339393d7777772e7275616e65732e65732c444e532e3430303d7777772e73616c6f72696e6f2e65732c444e532e3430313d7777772e73616c7661746965727261646573616e746961676f2e65732c444e532e3430323d7777772e73616e6d617274696e646574726576656a6f2e65732c444e532e3430333d7777772e6179746f73616e7461616e612e65732c444e532e3430343d7777772e73616e74616372757a64656c617369657272612e65732c444e532e3430353d7777772e73616e74616372757a646570616e69616775612e65732c444e532e3430363d7777772e73616e74616d6172746164656d6167617363612e65732c444e532e3430373d7777772e73616e746961676f64656c63616d706f2e65732c444e532e3430383d7777772e73616e746962616e657a656c616c746f2e65732c444e532e3430393d7777772e73616e746962616e657a656c62616a6f2e65732c444e532e3431303d7777772e736175636564696c6c612e65732c444e532e3431313d7777772e7365677572616465746f726f2e65732c444e532e3431323d7777772e736572726164696c6c612e65732c444e532e3431333d7777772e73657272656a6f6e2e65732c444e532e3431343d7777772e73696572726164656675656e7465732e65732c444e532e3431353d7777772e74616c6176616e2e65732c444e532e3431363d7777772e74616c6176657275656c6164656c61766572612e65732c444e532e3431373d7777772e74616c617975656c612e65732c444e532e3431383d7777772e74656a65646164657469657461722e65732c444e532e3431393d7777772e746f72696c2e65732c444e532e3432303d7777772e746f726e6176616361732e65732c444e532e3432313d7777772e6179746f656c746f726e6f2e65732c444e532e3432323d7777772e746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3432333d7777772e746f72726563696c6c617364656c6174696573612e65732c444e532e3432343d7777772e746f7272656465646f6e6d696775656c2e65732c444e532e3432353d7777772e746f727265646573616e74616d617269612e65732c444e532e3432363d7777772e746f7272656a6f6e656c727562696f2e65732c444e532e3432373d7777772e746f7272656a6f6e63696c6c6f2e65732c444e532e3432383d7777772e746f7272656d656e67612e65732c444e532e3432393d7777772e746f7272656d6f6368612e65732c444e532e3433303d7777772e746f7272656f7267617a2e65732c444e532e3433313d7777772e746f7272657175656d6164612e65732c444e532e3433323d7777772e76616c64617374696c6c61732e65732c444e532e3433333d7777772e76616c646563616e6173646574616a6f2e65732c444e532e3433343d7777772e76616c64656675656e7465732e65732c444e532e3433353d7777772e76616c646568756e6361722e65732c444e532e3433363d7777772e76616c6465696e69676f732e65732c444e532e3433373d7777772e76616c64656c6163617361646574616a6f2e65732c444e532e3433383d7777772e76616c64656d6f72616c65732e65732c444e532e3433393d7777772e76616c64656f626973706f2e65732c444e532e3434303d7777772e76616c646573616c6f722e65732c444e532e3434313d7777772e76616c72696f2e65732c444e532e3434323d7777772e76616c656e6369616465616c63616e746172612e65732c444e532e3434333d7777772e76616c766572646564656c61766572612e65732c444e532e3434343d7777772e76616c766572646564656c667265736e6f2e65732c444e532e3434353d7777772e766567617669616e612e65732c444e532e3434363d7777772e7669616e64617264656c61766572612e65732c444e532e3434373d7777772e76696c6c6164656c63616d706f2e65732c444e532e3434383d7777772e76696c6c6164656c7265792e65732c444e532e3434393d7777772e76696c6c616d65736961732e65732c444e532e3435303d7777772e76696c6c616d69656c2e65732c444e532e3435313d7777772e76696c6c616e7565766164656c617369657272612e65732c444e532e3435323d7777772e76696c6c617264656c706564726f736f2e65732c444e532e3435333d7777772e76696c6c61726465706c6173656e6369612e65732c444e532e3435343d7777772e76696c6c61736275656e61736465676174612e65732c444e532e3435353d7777772e7a61727a6164656772616e6164696c6c612e65732c444e532e3435363d7777772e7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3435373d7777772e7a61727a616c616d61796f722e65732c444e532e3435383d7777772e7a6f726974612e65732c444e532e3435393d7777772e726f73616c656a6f2e65732c444e532e3436303d7777772e766567617669616e612e65732c444e532e3436313d7777772e616c61676f6e64656c72696f2e65732c444e532e3436323d7777772e7469657461722e65732c444e532e3436333d7777772e76616c646573616c6f722e65732c444e532e3436343d7777772e6e6176617472617369657272612e65732c444e532e3436353d7777772e7269766572616465667265736e65646f73612e65732c444e532e3436363d7777772e656c6d73616e67696c2e65732c444e532e3436373d7777772e74616a6f73616c6f722e65732c444e532e3436383d7777772e76616c6c65616d62726f7a2e65732c444e532e3436393d7777772e6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3437303d7777772e6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3437313d7777772e6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3437323d7777772e6d616e636f6d756e6964616464656c61766572612e65732c444e532e3437333d7777772e6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3437343d7777772e76696c6c7565726361732d69626f7265732d6a6172612e6573",
+ .str =
+ "2.5.29.17=#1382304b444e532e313d6162616469612e65732c444e532e323d61626572747572612e65732c444e532e333d616365626f2e65732c444e532e343d61636568756368652e65732c444e532e353d6163656974756e612e65732c444e532e363d61686967616c2e65732c444e532e373d616c61676f6e64656c72696f2e65732c444e532e383d616c636f6c6c6172696e2e65732c444e532e393d6179746f616c62616c612e65732c444e532e31303d6179746f616c63616e746172612e65732c444e532e31313d616c637565736361722e65732c444e532e31323d616c64656163656e74656e6572612e65732c444e532e31333d616c64656164656c63616e6f2e65732c444e532e31343d6c61616c64656164656c6f626973706f2e65732c444e532e31353d616c6465616e7565766164656c61766572612e65732c444e532e31363d616c6465616e7565766164656c63616d696e6f2e65732c444e532e31373d616c64656875656c6164656c6a657274652e65732c444e532e31383d6179746f616c69612e65732c444e532e31393d616c69736564612e65732c444e532e32303d616c6d6172617a2e65732c444e532e32313d616c6d6f686172696e2e65732c444e532e32323d6179746f6172726f796f64656c616c757a2e65732c444e532e32333d6172726f796f6d6f6c696e6f732e65732c444e532e32343d6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e32353d62616e6f7364656d6f6e74656d61796f722e65732c444e532e32363d6261727261646f2e65732c444e532e32373d62656c76697364656d6f6e726f792e65732c444e532e32383d62656e71756572656e6369612e65732c444e532e32393d626572726f63616c656a6f2e65732c444e532e33303d6265727a6f63616e612e65732c444e532e33313d626f686f6e616c646569626f722e65732c444e532e33323d626f74696a612e65732c444e532e33333d62726f7a61732e65732c444e532e33343d636162616e617364656c63617374696c6c6f2e65732c444e532e33353d636162657a6162656c6c6f73612e65732c444e532e33363d636162657a75656c6164656c76616c6c652e65732c444e532e33373d6361627265726f2e65732c444e532e33383d636163686f7272696c6c612e65732c444e532e33393d636164616c736f2e65732c444e532e34303d63616c7a6164696c6c612e65732c444e532e34313d63616d696e6f6d6f726973636f2e65732c444e532e34323d63616d70696c6c6f646564656c6569746f73612e65732c444e532e34333d63616d706f6c756761722e65732c444e532e34343d63616e616d65726f2e65732c444e532e34353d63616e61766572616c2e65732c444e532e34363d63617262616a6f2e65732c444e532e34373d6361726361626f736f2e65732c444e532e34383d63617272617363616c656a6f2e65732c444e532e34393d63617361726465636163657265732e65732c444e532e35303d6361736172646570616c6f6d65726f2e65732c444e532e35313d6361736172657364656c61736875726465732e65732c444e532e35323d63617361736465646f6e616e746f6e696f2e65732c444e532e35333d63617361736465646f6e676f6d657a2e65732c444e532e35343d636173617364656c63617374616e61722e65732c444e532e35353d636173617364656c6d6f6e74652e65732c444e532e35363d636173617364656d696c6c616e2e65732c444e532e35373d636173617364656d697261766574652e65732c444e532e35383d6361736174656a6164612e65732c444e532e35393d636173696c6c61736465636f7269612e65732c444e532e36303d63617374616e6172646569626f722e65732c444e532e36313d6365636c6176696e2e65732c444e532e36323d636564696c6c6f2e65732c444e532e36333d636572657a6f2e65732c444e532e36343d63696c6c65726f732e65732c444e532e36353d636f6c6c61646f2e65732c444e532e36363d636f6e71756973746164656c617369657272612e65732c444e532e36373d636f7269612e65732c444e532e36383d637561636f73646579757374652e65732c444e532e36393d6c6163756d6272652e65732c444e532e37303d64656c6569746f73612e65732c444e532e37313d64657363617267616d617269612e65732c444e532e37323d656c6a61732e65732c444e532e37333d657363757269616c2e65732c444e532e37343d667265736e65646f736f646569626f722e65732c444e532e37353d67616c697374656f2e65732c444e532e37363d6761726369617a2e65732c444e532e37373d6c6167617267616e74612e65732c444e532e37383d67617267616e74616c616f6c6c612e65732c444e532e37393d67617267616e74696c6c612e65732c444e532e38303d67617267756572612e65732c444e532e38313d676172726f76696c6c61736465616c636f6e657461722e65732c444e532e38323d67617276696e2e65732c444e532e38333d676174612e65732c444e532e38343d6179746f656c676f72646f2e65732c444e532e38353d6c616772616e6a612e65732c444e532e38363d6c616772616e6a6164656772616e6164696c6c612e65732c444e532e38373d6179756e74616d69656e746f646567756164616c7570652e65732c444e532e38383d6775696a6f6465636f7269612e65732c444e532e38393d6775696a6f646567616c697374656f2e65732c444e532e39303d6775696a6f64656772616e6164696c6c612e65732c444e532e39313d6775696a6f646573616e7461626172626172612e65732c444e532e39323d6865726775696a75656c612e65732c444e532e39333d6865726e616e706572657a2e65732c444e532e39343d686572726572616465616c63616e746172612e65732c444e532e39353d68657272657275656c612e65732c444e532e39363d6865727661732e65732c444e532e39373d686967756572612e65732c444e532e39383d68696e6f6a616c2e65732c444e532e39393d686f6c67756572612e65732c444e532e3130303d686f796f732e65732c444e532e3130313d6875656c6167612e65732c444e532e3130323d6962616865726e616e646f2e65732c444e532e3130333d6a6172616963656a6f2e65732c444e532e3130343d6a617261697a64656c61766572612e65732c444e532e3130353d6a6172616e64696c6c6164656c61766572612e65732c444e532e3130363d6a6172696c6c612e65732c444e532e3130373d6a657274652e65732c444e532e3130383d6c616472696c6c61722e65732c444e532e3130393d6c6f67726f73616e2e65732c444e532e3131303d6c6f73617264656c61766572612e65732c444e532e3131313d6d6164726967616c656a6f2e65732c444e532e3131323d6d6164726967616c64656c61766572612e65732c444e532e3131333d6d6164726f6e6572612e65732c444e532e3131343d6d616a616461732e65732c444e532e3131353d6d616c706172746964616465636163657265732e65732c444e532e3131363d6d616c706172746964616465706c6173656e6369612e65732c444e532e3131373d6d617263686167617a2e65732c444e532e3131383d6d6174616465616c63616e746172612e65732c444e532e3131393d6d656d6272696f2e65732c444e532e3132303d6d65736173646569626f722e65732c444e532e3132313d6d69616a616461732e65732c444e532e3132323d6d696c6c616e65732e65732c444e532e3132333d6d69726162656c2e65732c444e532e3132343d6d6f686564617364656772616e6164696c6c612e65732c444e532e3132353d6d6f6e726f792e65732c444e532e3132363d6d6f6e74616e6368657a2e65732c444e532e3132373d6d6f6e74656865726d6f736f2e65732c444e532e3132383d6d6f72616c656a612e65732c444e532e3132393d6d6f7263696c6c6f2e65732c444e532e3133303d6e617661636f6e63656a6f2e65732c444e532e3133313d6e6176616c76696c6c6172646569626f722e65732c444e532e3133323d6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3133333d6e6176617364656c6d6164726f6e6f2e65732c444e532e3133343d6e6176617472617369657272612e65732c444e532e3133353d6e6176657a75656c61732e65732c444e532e3133363d6e756e6f6d6f72616c2e65732c444e532e3133373d6f6c6976616465706c6173656e6369612e65732c444e532e3133383d70616c6f6d65726f2e65732c444e532e3133393d70617361726f6e64656c61766572612e65732c444e532e3134303d706564726f736f64656163696d2e65732c444e532e3134313d706572616c65646164656c616d6174612e65732c444e532e3134323d706572616c656461646573616e726f6d616e2e65732c444e532e3134333d706572616c657364656c70756572746f2e65732c444e532e3134343d7065736375657a612e65732c444e532e3134353d6c6170657367612e65732c444e532e3134363d70696564726173616c6261732e65732c444e532e3134373d70696e6f6672616e71756561646f2e65732c444e532e3134383d70696f726e616c2e65732c444e532e3134393d706c6173656e7a75656c612e65732c444e532e3135303d706f7274616a652e65732c444e532e3135313d706f7274657a75656c6f2e65732c444e532e3135323d706f7a75656c6f64657a61727a6f6e2e65732c444e532e3135333d707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3135343d70756572746f646573616e74616372757a2e65732c444e532e3135353d7265626f6c6c61722e65732c444e532e3135363d72696f6c6f626f732e65732c444e532e3135373d726f626c6564696c6c6f6465676174612e65732c444e532e3135383d726f626c6564696c6c6f64656c61766572612e65732c444e532e3135393d726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3136303d726f626c65646f6c6c616e6f2e65732c444e532e3136313d726f6d616e676f72646f2e65732c444e532e3136323d7275616e65732e65732c444e532e3136333d73616c6f72696e6f2e65732c444e532e3136343d73616c7661746965727261646573616e746961676f2e65732c444e532e3136353d73616e6d617274696e646574726576656a6f2e65732c444e532e3136363d6179746f73616e7461616e612e65732c444e532e3136373d73616e74616372757a64656c617369657272612e65732c444e532e3136383d73616e74616372757a646570616e69616775612e65732c444e532e3136393d73616e74616d6172746164656d6167617363612e65732c444e532e3137303d73616e746961676f64656c63616d706f2e65732c444e532e3137313d73616e746962616e657a656c616c746f2e65732c444e532e3137323d73616e746962616e657a656c62616a6f2e65732c444e532e3137333d736175636564696c6c612e65732c444e532e3137343d7365677572616465746f726f2e65732c444e532e3137353d736572726164696c6c612e65732c444e532e3137363d73657272656a6f6e2e65732c444e532e3137373d73696572726164656675656e7465732e65732c444e532e3137383d74616c6176616e2e65732c444e532e3137393d74616c6176657275656c6164656c61766572612e65732c444e532e3138303d74616c617975656c612e65732c444e532e3138313d74656a65646164657469657461722e65732c444e532e3138323d746f72696c2e65732c444e532e3138333d746f726e6176616361732e65732c444e532e3138343d6179746f656c746f726e6f2e65732c444e532e3138353d746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3138363d746f72726563696c6c617364656c6174696573612e65732c444e532e3138373d746f7272656465646f6e6d696775656c2e65732c444e532e3138383d746f727265646573616e74616d617269612e65732c444e532e3138393d746f7272656a6f6e656c727562696f2e65732c444e532e3139303d746f7272656a6f6e63696c6c6f2e65732c444e532e3139313d746f7272656d656e67612e65732c444e532e3139323d746f7272656d6f6368612e65732c444e532e3139333d746f7272656f7267617a2e65732c444e532e3139343d746f7272657175656d6164612e65732c444e532e3139353d76616c64617374696c6c61732e65732c444e532e3139363d76616c646563616e6173646574616a6f2e65732c444e532e3139373d76616c64656675656e7465732e65732c444e532e3139383d76616c646568756e6361722e65732c444e532e3139393d76616c6465696e69676f732e65732c444e532e3230303d76616c64656c6163617361646574616a6f2e65732c444e532e3230313d76616c64656d6f72616c65732e65732c444e532e3230323d76616c64656f626973706f2e65732c444e532e3230333d76616c646573616c6f722e65732c444e532e3230343d76616c72696f2e65732c444e532e3230353d76616c656e6369616465616c63616e746172612e65732c444e532e3230363d76616c766572646564656c61766572612e65732c444e532e3230373d76616c766572646564656c667265736e6f2e65732c444e532e3230383d766567617669616e612e65732c444e532e3230393d7669616e64617264656c61766572612e65732c444e532e3231303d76696c6c6164656c63616d706f2e65732c444e532e3231313d76696c6c6164656c7265792e65732c444e532e3231323d76696c6c616d65736961732e65732c444e532e3231333d76696c6c616d69656c2e65732c444e532e3231343d76696c6c616e7565766164656c617369657272612e65732c444e532e3231353d76696c6c617264656c706564726f736f2e65732c444e532e3231363d76696c6c61726465706c6173656e6369612e65732c444e532e3231373d76696c6c61736275656e61736465676174612e65732c444e532e3231383d7a61727a6164656772616e6164696c6c612e65732c444e532e3231393d7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3232303d7a61727a616c616d61796f722e65732c444e532e3232313d7a6f726974612e65732c444e532e3232323d726f73616c656a6f2e65732c444e532e3232333d766567617669616e612e65732c444e532e3232343d616c61676f6e64656c72696f2e65732c444e532e3232353d7469657461722e65732c444e532e3232363d76616c646573616c6f722e65732c444e532e3232373d6e6176617472617369657272612e65732c444e532e3232383d7269766572616465667265736e65646f73612e65732c444e532e3232393d656c6d73616e67696c2e65732c444e532e3233303d74616a6f73616c6f722e65732c444e532e3233313d76616c6c65616d62726f7a2e65732c444e532e3233323d6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3233333d6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3233343d6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3233353d6d616e636f6d756e6964616464656c61766572612e65732c444e532e3233363d6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3233373d76696c6c7565726361732d69626f7265732d6a6172612e65732c444e532e3233383d7777772e6162616469612e65732c444e532e3233393d7777772e61626572747572612e65732c444e532e3234303d7777772e616365626f2e65732c444e532e3234313d7777772e61636568756368652e65732c444e532e3234323d7777772e6163656974756e612e65732c444e532e3234333d7777772e61686967616c2e65732c444e532e3234343d7777772e616c61676f6e64656c72696f2e65732c444e532e3234353d7777772e616c636f6c6c6172696e2e65732c444e532e3234363d7777772e6179746f616c62616c612e65732c444e532e3234373d7777772e6179746f616c63616e746172612e65732c444e532e3234383d7777772e616c637565736361722e65732c444e532e3234393d7777772e616c64656163656e74656e6572612e65732c444e532e3235303d7777772e616c64656164656c63616e6f2e65732c444e532e3235313d7777772e6c61616c64656164656c6f626973706f2e65732c444e532e3235323d7777772e616c6465616e7565766164656c61766572612e65732c444e532e3235333d7777772e616c6465616e7565766164656c63616d696e6f2e65732c444e532e3235343d7777772e616c64656875656c6164656c6a657274652e65732c444e532e3235353d7777772e6179746f616c69612e65732c444e532e3235363d7777772e616c69736564612e65732c444e532e3235373d7777772e616c6d6172617a2e65732c444e532e3235383d7777772e616c6d6f686172696e2e65732c444e532e3235393d7777772e6179746f6172726f796f64656c616c757a2e65732c444e532e3236303d7777772e6172726f796f6d6f6c696e6f732e65732c444e532e3236313d7777772e6172726f796f6d6f6c696e6f7364656c61766572612e65732c444e532e3236323d7777772e62616e6f7364656d6f6e74656d61796f722e65732c444e532e3236333d7777772e6261727261646f2e65732c444e532e3236343d7777772e62656c76697364656d6f6e726f792e65732c444e532e3236353d7777772e62656e71756572656e6369612e65732c444e532e3236363d7777772e626572726f63616c656a6f2e65732c444e532e3236373d7777772e6265727a6f63616e612e65732c444e532e3236383d7777772e626f686f6e616c646569626f722e65732c444e532e3236393d7777772e626f74696a612e65732c444e532e3237303d7777772e62726f7a61732e65732c444e532e3237313d7777772e636162616e617364656c63617374696c6c6f2e65732c444e532e3237323d7777772e636162657a6162656c6c6f73612e65732c444e532e3237333d7777772e636162657a75656c6164656c76616c6c652e65732c444e532e3237343d7777772e6361627265726f2e65732c444e532e3237353d7777772e636163686f7272696c6c612e65732c444e532e3237363d7777772e636164616c736f2e65732c444e532e3237373d7777772e63616c7a6164696c6c612e65732c444e532e3237383d7777772e63616d696e6f6d6f726973636f2e65732c444e532e3237393d7777772e63616d70696c6c6f646564656c6569746f73612e65732c444e532e3238303d7777772e63616d706f6c756761722e65732c444e532e3238313d7777772e63616e616d65726f2e65732c444e532e3238323d7777772e63616e61766572616c2e65732c444e532e3238333d7777772e63617262616a6f2e65732c444e532e3238343d7777772e6361726361626f736f2e65732c444e532e3238353d7777772e63617272617363616c656a6f2e65732c444e532e3238363d7777772e63617361726465636163657265732e65732c444e532e3238373d7777772e6361736172646570616c6f6d65726f2e65732c444e532e3238383d7777772e6361736172657364656c61736875726465732e65732c444e532e3238393d7777772e63617361736465646f6e616e746f6e696f2e65732c444e532e3239303d7777772e63617361736465646f6e676f6d657a2e65732c444e532e3239313d7777772e636173617364656c63617374616e61722e65732c444e532e3239323d7777772e636173617364656c6d6f6e74652e65732c444e532e3239333d7777772e636173617364656d696c6c616e2e65732c444e532e3239343d7777772e636173617364656d697261766574652e65732c444e532e3239353d7777772e6361736174656a6164612e65732c444e532e3239363d7777772e636173696c6c61736465636f7269612e65732c444e532e3239373d7777772e63617374616e6172646569626f722e65732c444e532e3239383d7777772e6365636c6176696e2e65732c444e532e3239393d7777772e636564696c6c6f2e65732c444e532e3330303d7777772e636572657a6f2e65732c444e532e3330313d7777772e63696c6c65726f732e65732c444e532e3330323d7777772e636f6c6c61646f2e65732c444e532e3330333d7777772e636f6e71756973746164656c617369657272612e65732c444e532e3330343d7777772e636f7269612e65732c444e532e3330353d7777772e637561636f73646579757374652e65732c444e532e3330363d7777772e6c6163756d6272652e65732c444e532e3330373d7777772e64656c6569746f73612e65732c444e532e3330383d7777772e64657363617267616d617269612e65732c444e532e3330393d7777772e656c6a61732e65732c444e532e3331303d7777772e657363757269616c2e65732c444e532e3331313d7777772e667265736e65646f736f646569626f722e65732c444e532e3331323d7777772e67616c697374656f2e65732c444e532e3331333d7777772e6761726369617a2e65732c444e532e3331343d7777772e6c6167617267616e74612e65732c444e532e3331353d7777772e67617267616e74616c616f6c6c612e65732c444e532e3331363d7777772e67617267616e74696c6c612e65732c444e532e3331373d7777772e67617267756572612e65732c444e532e3331383d7777772e676172726f76696c6c61736465616c636f6e657461722e65732c444e532e3331393d7777772e67617276696e2e65732c444e532e3332303d7777772e676174612e65732c444e532e3332313d7777772e6179746f656c676f72646f2e65732c444e532e3332323d7777772e6c616772616e6a612e65732c444e532e3332333d7777772e6c616772616e6a6164656772616e6164696c6c612e65732c444e532e3332343d7777772e6179756e74616d69656e746f646567756164616c7570652e65732c444e532e3332353d7777772e6775696a6f6465636f7269612e65732c444e532e3332363d7777772e6775696a6f646567616c697374656f2e65732c444e532e3332373d7777772e6775696a6f64656772616e6164696c6c612e65732c444e532e3332383d7777772e6775696a6f646573616e7461626172626172612e65732c444e532e3332393d7777772e6865726775696a75656c612e65732c444e532e3333303d7777772e6865726e616e706572657a2e65732c444e532e3333313d7777772e686572726572616465616c63616e746172612e65732c444e532e3333323d7777772e68657272657275656c612e65732c444e532e3333333d7777772e6865727661732e65732c444e532e3333343d7777772e686967756572612e65732c444e532e3333353d7777772e68696e6f6a616c2e65732c444e532e3333363d7777772e686f6c67756572612e65732c444e532e3333373d7777772e686f796f732e65732c444e532e3333383d7777772e6875656c6167612e65732c444e532e3333393d7777772e6962616865726e616e646f2e65732c444e532e3334303d7777772e6a6172616963656a6f2e65732c444e532e3334313d7777772e6a617261697a64656c61766572612e65732c444e532e3334323d7777772e6a6172616e64696c6c6164656c61766572612e65732c444e532e3334333d7777772e6a6172696c6c612e65732c444e532e3334343d7777772e6a657274652e65732c444e532e3334353d7777772e6c616472696c6c61722e65732c444e532e3334363d7777772e6c6f67726f73616e2e65732c444e532e3334373d7777772e6c6f73617264656c61766572612e65732c444e532e3334383d7777772e6d6164726967616c656a6f2e65732c444e532e3334393d7777772e6d6164726967616c64656c61766572612e65732c444e532e3335303d7777772e6d6164726f6e6572612e65732c444e532e3335313d7777772e6d616a616461732e65732c444e532e3335323d7777772e6d616c706172746964616465636163657265732e65732c444e532e3335333d7777772e6d616c706172746964616465706c6173656e6369612e65732c444e532e3335343d7777772e6d617263686167617a2e65732c444e532e3335353d7777772e6d6174616465616c63616e746172612e65732c444e532e3335363d7777772e6d656d6272696f2e65732c444e532e3335373d7777772e6d65736173646569626f722e65732c444e532e3335383d7777772e6d69616a616461732e65732c444e532e3335393d7777772e6d696c6c616e65732e65732c444e532e3336303d7777772e6d69726162656c2e65732c444e532e3336313d7777772e6d6f686564617364656772616e6164696c6c612e65732c444e532e3336323d7777772e6d6f6e726f792e65732c444e532e3336333d7777772e6d6f6e74616e6368657a2e65732c444e532e3336343d7777772e6d6f6e74656865726d6f736f2e65732c444e532e3336353d7777772e6d6f72616c656a612e65732c444e532e3336363d7777772e6d6f7263696c6c6f2e65732c444e532e3336373d7777772e6e617661636f6e63656a6f2e65732c444e532e3336383d7777772e6e6176616c76696c6c6172646569626f722e65732c444e532e3336393d7777772e6e6176616c6d6f72616c64656c616d6174612e65732c444e532e3337303d7777772e6e6176617364656c6d6164726f6e6f2e65732c444e532e3337313d7777772e6e6176617472617369657272612e65732c444e532e3337323d7777772e6e6176657a75656c61732e65732c444e532e3337333d7777772e6e756e6f6d6f72616c2e65732c444e532e3337343d7777772e6f6c6976616465706c6173656e6369612e65732c444e532e3337353d7777772e70616c6f6d65726f2e65732c444e532e3337363d7777772e70617361726f6e64656c61766572612e65732c444e532e3337373d7777772e706564726f736f64656163696d2e65732c444e532e3337383d7777772e706572616c65646164656c616d6174612e65732c444e532e3337393d7777772e706572616c656461646573616e726f6d616e2e65732c444e532e3338303d7777772e706572616c657364656c70756572746f2e65732c444e532e3338313d7777772e7065736375657a612e65732c444e532e3338323d7777772e6c6170657367612e65732c444e532e3338333d7777772e70696564726173616c6261732e65732c444e532e3338343d7777772e70696e6f6672616e71756561646f2e65732c444e532e3338353d7777772e70696f726e616c2e65732c444e532e3338363d7777772e706c6173656e7a75656c612e65732c444e532e3338373d7777772e706f7274616a652e65732c444e532e3338383d7777772e706f7274657a75656c6f2e65732c444e532e3338393d7777772e706f7a75656c6f64657a61727a6f6e2e65732c444e532e3339303d7777772e707565626c6f6e7565766f64656d6972616d6f6e7465732e65732c444e532e3339313d7777772e70756572746f646573616e74616372757a2e65732c444e532e3339323d7777772e7265626f6c6c61722e65732c444e532e3339333d7777772e72696f6c6f626f732e65732c444e532e3339343d7777772e726f626c6564696c6c6f6465676174612e65732c444e532e3339353d7777772e726f626c6564696c6c6f64656c61766572612e65732c444e532e3339363d7777772e726f626c6564696c6c6f64657472756a696c6c6f2c444e532e3339373d7777772e726f626c65646f6c6c616e6f2e65732c444e532e3339383d7777772e726f6d616e676f72646f2e65732c444e532e3339393d7777772e7275616e65732e65732c444e532e3430303d7777772e73616c6f72696e6f2e65732c444e532e3430313d7777772e73616c7661746965727261646573616e746961676f2e65732c444e532e3430323d7777772e73616e6d617274696e646574726576656a6f2e65732c444e532e3430333d7777772e6179746f73616e7461616e612e65732c444e532e3430343d7777772e73616e74616372757a64656c617369657272612e65732c444e532e3430353d7777772e73616e74616372757a646570616e69616775612e65732c444e532e3430363d7777772e73616e74616d6172746164656d6167617363612e65732c444e532e3430373d7777772e73616e746961676f64656c63616d706f2e65732c444e532e3430383d7777772e73616e746962616e657a656c616c746f2e65732c444e532e3430393d7777772e73616e746962616e657a656c62616a6f2e65732c444e532e3431303d7777772e736175636564696c6c612e65732c444e532e3431313d7777772e7365677572616465746f726f2e65732c444e532e3431323d7777772e736572726164696c6c612e65732c444e532e3431333d7777772e73657272656a6f6e2e65732c444e532e3431343d7777772e73696572726164656675656e7465732e65732c444e532e3431353d7777772e74616c6176616e2e65732c444e532e3431363d7777772e74616c6176657275656c6164656c61766572612e65732c444e532e3431373d7777772e74616c617975656c612e65732c444e532e3431383d7777772e74656a65646164657469657461722e65732c444e532e3431393d7777772e746f72696c2e65732c444e532e3432303d7777772e746f726e6176616361732e65732c444e532e3432313d7777772e6179746f656c746f726e6f2e65732c444e532e3432323d7777772e746f72726563696c6c6164656c6f73616e67656c65732e65732c444e532e3432333d7777772e746f72726563696c6c617364656c6174696573612e65732c444e532e3432343d7777772e746f7272656465646f6e6d696775656c2e65732c444e532e3432353d7777772e746f727265646573616e74616d617269612e65732c444e532e3432363d7777772e746f7272656a6f6e656c727562696f2e65732c444e532e3432373d7777772e746f7272656a6f6e63696c6c6f2e65732c444e532e3432383d7777772e746f7272656d656e67612e65732c444e532e3432393d7777772e746f7272656d6f6368612e65732c444e532e3433303d7777772e746f7272656f7267617a2e65732c444e532e3433313d7777772e746f7272657175656d6164612e65732c444e532e3433323d7777772e76616c64617374696c6c61732e65732c444e532e3433333d7777772e76616c646563616e6173646574616a6f2e65732c444e532e3433343d7777772e76616c64656675656e7465732e65732c444e532e3433353d7777772e76616c646568756e6361722e65732c444e532e3433363d7777772e76616c6465696e69676f732e65732c444e532e3433373d7777772e76616c64656c6163617361646574616a6f2e65732c444e532e3433383d7777772e76616c64656d6f72616c65732e65732c444e532e3433393d7777772e76616c64656f626973706f2e65732c444e532e3434303d7777772e76616c646573616c6f722e65732c444e532e3434313d7777772e76616c72696f2e65732c444e532e3434323d7777772e76616c656e6369616465616c63616e746172612e65732c444e532e3434333d7777772e76616c766572646564656c61766572612e65732c444e532e3434343d7777772e76616c766572646564656c667265736e6f2e65732c444e532e3434353d7777772e766567617669616e612e65732c444e532e3434363d7777772e7669616e64617264656c61766572612e65732c444e532e3434373d7777772e76696c6c6164656c63616d706f2e65732c444e532e3434383d7777772e76696c6c6164656c7265792e65732c444e532e3434393d7777772e76696c6c616d65736961732e65732c444e532e3435303d7777772e76696c6c616d69656c2e65732c444e532e3435313d7777772e76696c6c616e7565766164656c617369657272612e65732c444e532e3435323d7777772e76696c6c617264656c706564726f736f2e65732c444e532e3435333d7777772e76696c6c61726465706c6173656e6369612e65732c444e532e3435343d7777772e76696c6c61736275656e61736465676174612e65732c444e532e3435353d7777772e7a61727a6164656772616e6164696c6c612e65732c444e532e3435363d7777772e7a61727a6164656d6f6e74616e6368657a2e65732c444e532e3435373d7777772e7a61727a616c616d61796f722e65732c444e532e3435383d7777772e7a6f726974612e65732c444e532e3435393d7777772e726f73616c656a6f2e65732c444e532e3436303d7777772e766567617669616e612e65732c444e532e3436313d7777772e616c61676f6e64656c72696f2e65732c444e532e3436323d7777772e7469657461722e65732c444e532e3436333d7777772e76616c646573616c6f722e65732c444e532e3436343d7777772e6e6176617472617369657272612e65732c444e532e3436353d7777772e7269766572616465667265736e65646f73612e65732c444e532e3436363d7777772e656c6d73616e67696c2e65732c444e532e3436373d7777772e74616a6f73616c6f722e65732c444e532e3436383d7777772e76616c6c65616d62726f7a2e65732c444e532e3436393d7777772e6d616e636f6d756e6964616476616c6c6564656c616c61676f6e2e65732c444e532e3437303d7777772e6d616e636f6d756e6964616476616c6c6564656c6a657274652e65732c444e532e3437313d7777772e6d616e636f6d756e696461647665676173616c7461732e65732c444e532e3437323d7777772e6d616e636f6d756e6964616464656c61766572612e65732c444e532e3437333d7777772e6d616e636f6d756e696461647a6f6e6163656e74726f2e65732c444e532e3437343d7777772e76696c6c7565726361732d69626f7265732d6a6172612e6573,EMAIL=webmaster@dip-caceres.es,CN=www.dip-caceres.es,OU=DIPUTACION PROVINCIAL DE CACERES,O=DIPUTACION PROVINCIAL DE CACERES,L=CACERES,ST=CACERES,C=ES",
+ .raw = {(void *)
+ "\x30\x82\x31\x29\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x45\x53\x31\x10\x30\x0e\x06\x03\x55\x04\x08\x13\x07\x43\x41\x43\x45\x52\x45\x53\x31\x10\x30\x0e\x06\x03\x55\x04\x07\x13\x07\x43\x41\x43\x45\x52\x45\x53\x31\x29\x30\x27\x06\x03\x55\x04\x0a\x13\x20\x44\x49\x50\x55\x54\x41\x43\x49\x4f\x4e\x20\x50\x52\x4f\x56\x49\x4e\x43\x49\x41\x4c\x20\x44\x45\x20\x43\x41\x43\x45\x52\x45\x53\x31\x29\x30\x27\x06\x03\x55\x04\x0b\x13\x20\x44\x49\x50\x55\x54\x41\x43\x49\x4f\x4e\x20\x50\x52\x4f\x56\x49\x4e\x43\x49\x41\x4c\x20\x44\x45\x20\x43\x41\x43\x45\x52\x45\x53\x31\x1b\x30\x19\x06\x03\x55\x04\x03\x13\x12\x77\x77\x77\x2e\x64\x69\x70\x2d\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x31\x27\x30\x25\x06\x09\x2a\x86\x48\x86\xf7\x0d\x01\x09\x01\x16\x18\x77\x65\x62\x6d\x61\x73\x74\x65\x72\x40\x64\x69\x70\x2d\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x31\x82\x30\x58\x30\x82\x30\x54\x06\x03\x55\x1d\x11\x13\x82\x30\x4b\x44\x4e\x53\x2e\x31\x3d\x61\x62\x61\x64\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x3d\x61\x62\x65\x72\x74\x75\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x3d\x61\x63\x65\x62\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x3d\x61\x63\x65\x68\x75\x63\x68\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x3d\x61\x63\x65\x69\x74\x75\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x3d\x61\x68\x69\x67\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x3d\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x3d\x61\x6c\x63\x6f\x6c\x6c\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x3d\x61\x79\x74\x6f\x61\x6c\x62\x61\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x3d\x61\x79\x74\x6f\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x3d\x61\x6c\x63\x75\x65\x73\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x3d\x61\x6c\x64\x65\x61\x63\x65\x6e\x74\x65\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x3d\x61\x6c\x64\x65\x61\x64\x65\x6c\x63\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x3d\x6c\x61\x61\x6c\x64\x65\x61\x64\x65\x6c\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x3d\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x3d\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x63\x61\x6d\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x3d\x61\x6c\x64\x65\x68\x75\x65\x6c\x61\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x3d\x61\x79\x74\x6f\x61\x6c\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x3d\x61\x6c\x69\x73\x65\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x3d\x61\x6c\x6d\x61\x72\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x3d\x61\x6c\x6d\x6f\x68\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x3d\x61\x79\x74\x6f\x61\x72\x72\x6f\x79\x6f\x64\x65\x6c\x61\x6c\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x3d\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x3d\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x3d\x62\x61\x6e\x6f\x73\x64\x65\x6d\x6f\x6e\x74\x65\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x3d\x62\x61\x72\x72\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x3d\x62\x65\x6c\x76\x69\x73\x64\x65\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x3d\x62\x65\x6e\x71\x75\x65\x72\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x3d\x62\x65\x72\x72\x6f\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x3d\x62\x65\x72\x7a\x6f\x63\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x3d\x62\x6f\x68\x6f\x6e\x61\x6c\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x3d\x62\x6f\x74\x69\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x3d\x62\x72\x6f\x7a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x3d\x63\x61\x62\x61\x6e\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x3d\x63\x61\x62\x65\x7a\x61\x62\x65\x6c\x6c\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x3d\x63\x61\x62\x65\x7a\x75\x65\x6c\x61\x64\x65\x6c\x76\x61\x6c\x6c\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x3d\x63\x61\x62\x72\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x3d\x63\x61\x63\x68\x6f\x72\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x3d\x63\x61\x64\x61\x6c\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x3d\x63\x61\x6c\x7a\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x3d\x63\x61\x6d\x69\x6e\x6f\x6d\x6f\x72\x69\x73\x63\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x3d\x63\x61\x6d\x70\x69\x6c\x6c\x6f\x64\x65\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x3d\x63\x61\x6d\x70\x6f\x6c\x75\x67\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x3d\x63\x61\x6e\x61\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x3d\x63\x61\x6e\x61\x76\x65\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x3d\x63\x61\x72\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x3d\x63\x61\x72\x63\x61\x62\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x38\x3d\x63\x61\x72\x72\x61\x73\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x39\x3d\x63\x61\x73\x61\x72\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x30\x3d\x63\x61\x73\x61\x72\x64\x65\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x31\x3d\x63\x61\x73\x61\x72\x65\x73\x64\x65\x6c\x61\x73\x68\x75\x72\x64\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x32\x3d\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x61\x6e\x74\x6f\x6e\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x33\x3d\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x67\x6f\x6d\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x34\x3d\x63\x61\x73\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x61\x6e\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x35\x3d\x63\x61\x73\x61\x73\x64\x65\x6c\x6d\x6f\x6e\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x36\x3d\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x6c\x6c\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x37\x3d\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x72\x61\x76\x65\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x38\x3d\x63\x61\x73\x61\x74\x65\x6a\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x35\x39\x3d\x63\x61\x73\x69\x6c\x6c\x61\x73\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x30\x3d\x63\x61\x73\x74\x61\x6e\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x31\x3d\x63\x65\x63\x6c\x61\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x32\x3d\x63\x65\x64\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x33\x3d\x63\x65\x72\x65\x7a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x34\x3d\x63\x69\x6c\x6c\x65\x72\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x35\x3d\x63\x6f\x6c\x6c\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x36\x3d\x63\x6f\x6e\x71\x75\x69\x73\x74\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x37\x3d\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x38\x3d\x63\x75\x61\x63\x6f\x73\x64\x65\x79\x75\x73\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x36\x39\x3d\x6c\x61\x63\x75\x6d\x62\x72\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x30\x3d\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x31\x3d\x64\x65\x73\x63\x61\x72\x67\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x32\x3d\x65\x6c\x6a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x33\x3d\x65\x73\x63\x75\x72\x69\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x34\x3d\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x6f\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x35\x3d\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x36\x3d\x67\x61\x72\x63\x69\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x37\x3d\x6c\x61\x67\x61\x72\x67\x61\x6e\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x38\x3d\x67\x61\x72\x67\x61\x6e\x74\x61\x6c\x61\x6f\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x37\x39\x3d\x67\x61\x72\x67\x61\x6e\x74\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x30\x3d\x67\x61\x72\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x31\x3d\x67\x61\x72\x72\x6f\x76\x69\x6c\x6c\x61\x73\x64\x65\x61\x6c\x63\x6f\x6e\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x32\x3d\x67\x61\x72\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x33\x3d\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x34\x3d\x61\x79\x74\x6f\x65\x6c\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x35\x3d\x6c\x61\x67\x72\x61\x6e\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x36\x3d\x6c\x61\x67\x72\x61\x6e\x6a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x37\x3d\x61\x79\x75\x6e\x74\x61\x6d\x69\x65\x6e\x74\x6f\x64\x65\x67\x75\x61\x64\x61\x6c\x75\x70\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x38\x3d\x67\x75\x69\x6a\x6f\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x38\x39\x3d\x67\x75\x69\x6a\x6f\x64\x65\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x30\x3d\x67\x75\x69\x6a\x6f\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x31\x3d\x67\x75\x69\x6a\x6f\x64\x65\x73\x61\x6e\x74\x61\x62\x61\x72\x62\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x32\x3d\x68\x65\x72\x67\x75\x69\x6a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x33\x3d\x68\x65\x72\x6e\x61\x6e\x70\x65\x72\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x34\x3d\x68\x65\x72\x72\x65\x72\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x35\x3d\x68\x65\x72\x72\x65\x72\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x36\x3d\x68\x65\x72\x76\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x37\x3d\x68\x69\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x38\x3d\x68\x69\x6e\x6f\x6a\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x39\x39\x3d\x68\x6f\x6c\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x30\x3d\x68\x6f\x79\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x31\x3d\x68\x75\x65\x6c\x61\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x32\x3d\x69\x62\x61\x68\x65\x72\x6e\x61\x6e\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x33\x3d\x6a\x61\x72\x61\x69\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x34\x3d\x6a\x61\x72\x61\x69\x7a\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x35\x3d\x6a\x61\x72\x61\x6e\x64\x69\x6c\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x36\x3d\x6a\x61\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x37\x3d\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x38\x3d\x6c\x61\x64\x72\x69\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x30\x39\x3d\x6c\x6f\x67\x72\x6f\x73\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x30\x3d\x6c\x6f\x73\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x31\x3d\x6d\x61\x64\x72\x69\x67\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x32\x3d\x6d\x61\x64\x72\x69\x67\x61\x6c\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x33\x3d\x6d\x61\x64\x72\x6f\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x34\x3d\x6d\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x35\x3d\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x36\x3d\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x37\x3d\x6d\x61\x72\x63\x68\x61\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x38\x3d\x6d\x61\x74\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x31\x39\x3d\x6d\x65\x6d\x62\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x30\x3d\x6d\x65\x73\x61\x73\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x31\x3d\x6d\x69\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x32\x3d\x6d\x69\x6c\x6c\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x33\x3d\x6d\x69\x72\x61\x62\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x34\x3d\x6d\x6f\x68\x65\x64\x61\x73\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x35\x3d\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x36\x3d\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x37\x3d\x6d\x6f\x6e\x74\x65\x68\x65\x72\x6d\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x38\x3d\x6d\x6f\x72\x61\x6c\x65\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x32\x39\x3d\x6d\x6f\x72\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x30\x3d\x6e\x61\x76\x61\x63\x6f\x6e\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x31\x3d\x6e\x61\x76\x61\x6c\x76\x69\x6c\x6c\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x32\x3d\x6e\x61\x76\x61\x6c\x6d\x6f\x72\x61\x6c\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x33\x3d\x6e\x61\x76\x61\x73\x64\x65\x6c\x6d\x61\x64\x72\x6f\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x34\x3d\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x35\x3d\x6e\x61\x76\x65\x7a\x75\x65\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x36\x3d\x6e\x75\x6e\x6f\x6d\x6f\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x37\x3d\x6f\x6c\x69\x76\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x38\x3d\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x33\x39\x3d\x70\x61\x73\x61\x72\x6f\x6e\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x30\x3d\x70\x65\x64\x72\x6f\x73\x6f\x64\x65\x61\x63\x69\x6d\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x31\x3d\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x32\x3d\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x73\x61\x6e\x72\x6f\x6d\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x33\x3d\x70\x65\x72\x61\x6c\x65\x73\x64\x65\x6c\x70\x75\x65\x72\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x34\x3d\x70\x65\x73\x63\x75\x65\x7a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x35\x3d\x6c\x61\x70\x65\x73\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x36\x3d\x70\x69\x65\x64\x72\x61\x73\x61\x6c\x62\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x37\x3d\x70\x69\x6e\x6f\x66\x72\x61\x6e\x71\x75\x65\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x38\x3d\x70\x69\x6f\x72\x6e\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x34\x39\x3d\x70\x6c\x61\x73\x65\x6e\x7a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x30\x3d\x70\x6f\x72\x74\x61\x6a\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x31\x3d\x70\x6f\x72\x74\x65\x7a\x75\x65\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x32\x3d\x70\x6f\x7a\x75\x65\x6c\x6f\x64\x65\x7a\x61\x72\x7a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x33\x3d\x70\x75\x65\x62\x6c\x6f\x6e\x75\x65\x76\x6f\x64\x65\x6d\x69\x72\x61\x6d\x6f\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x34\x3d\x70\x75\x65\x72\x74\x6f\x64\x65\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x35\x3d\x72\x65\x62\x6f\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x36\x3d\x72\x69\x6f\x6c\x6f\x62\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x37\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x38\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x35\x39\x3d\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x74\x72\x75\x6a\x69\x6c\x6c\x6f\x2c\x44\x4e\x53\x2e\x31\x36\x30\x3d\x72\x6f\x62\x6c\x65\x64\x6f\x6c\x6c\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x31\x3d\x72\x6f\x6d\x61\x6e\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x32\x3d\x72\x75\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x33\x3d\x73\x61\x6c\x6f\x72\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x34\x3d\x73\x61\x6c\x76\x61\x74\x69\x65\x72\x72\x61\x64\x65\x73\x61\x6e\x74\x69\x61\x67\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x35\x3d\x73\x61\x6e\x6d\x61\x72\x74\x69\x6e\x64\x65\x74\x72\x65\x76\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x36\x3d\x61\x79\x74\x6f\x73\x61\x6e\x74\x61\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x37\x3d\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x38\x3d\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x70\x61\x6e\x69\x61\x67\x75\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x36\x39\x3d\x73\x61\x6e\x74\x61\x6d\x61\x72\x74\x61\x64\x65\x6d\x61\x67\x61\x73\x63\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x30\x3d\x73\x61\x6e\x74\x69\x61\x67\x6f\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x31\x3d\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x61\x6c\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x32\x3d\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x33\x3d\x73\x61\x75\x63\x65\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x34\x3d\x73\x65\x67\x75\x72\x61\x64\x65\x74\x6f\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x35\x3d\x73\x65\x72\x72\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x36\x3d\x73\x65\x72\x72\x65\x6a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x37\x3d\x73\x69\x65\x72\x72\x61\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x38\x3d\x74\x61\x6c\x61\x76\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x37\x39\x3d\x74\x61\x6c\x61\x76\x65\x72\x75\x65\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x30\x3d\x74\x61\x6c\x61\x79\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x31\x3d\x74\x65\x6a\x65\x64\x61\x64\x65\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x32\x3d\x74\x6f\x72\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x33\x3d\x74\x6f\x72\x6e\x61\x76\x61\x63\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x34\x3d\x61\x79\x74\x6f\x65\x6c\x74\x6f\x72\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x35\x3d\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x64\x65\x6c\x6f\x73\x61\x6e\x67\x65\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x36\x3d\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x73\x64\x65\x6c\x61\x74\x69\x65\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x37\x3d\x74\x6f\x72\x72\x65\x64\x65\x64\x6f\x6e\x6d\x69\x67\x75\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x38\x3d\x74\x6f\x72\x72\x65\x64\x65\x73\x61\x6e\x74\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x38\x39\x3d\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x65\x6c\x72\x75\x62\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x30\x3d\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x31\x3d\x74\x6f\x72\x72\x65\x6d\x65\x6e\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x32\x3d\x74\x6f\x72\x72\x65\x6d\x6f\x63\x68\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x33\x3d\x74\x6f\x72\x72\x65\x6f\x72\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x34\x3d\x74\x6f\x72\x72\x65\x71\x75\x65\x6d\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x35\x3d\x76\x61\x6c\x64\x61\x73\x74\x69\x6c\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x36\x3d\x76\x61\x6c\x64\x65\x63\x61\x6e\x61\x73\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x37\x3d\x76\x61\x6c\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x38\x3d\x76\x61\x6c\x64\x65\x68\x75\x6e\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x31\x39\x39\x3d\x76\x61\x6c\x64\x65\x69\x6e\x69\x67\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x30\x3d\x76\x61\x6c\x64\x65\x6c\x61\x63\x61\x73\x61\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x31\x3d\x76\x61\x6c\x64\x65\x6d\x6f\x72\x61\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x32\x3d\x76\x61\x6c\x64\x65\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x33\x3d\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x34\x3d\x76\x61\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x35\x3d\x76\x61\x6c\x65\x6e\x63\x69\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x36\x3d\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x37\x3d\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x66\x72\x65\x73\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x38\x3d\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x30\x39\x3d\x76\x69\x61\x6e\x64\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x30\x3d\x76\x69\x6c\x6c\x61\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x31\x3d\x76\x69\x6c\x6c\x61\x64\x65\x6c\x72\x65\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x32\x3d\x76\x69\x6c\x6c\x61\x6d\x65\x73\x69\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x33\x3d\x76\x69\x6c\x6c\x61\x6d\x69\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x34\x3d\x76\x69\x6c\x6c\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x35\x3d\x76\x69\x6c\x6c\x61\x72\x64\x65\x6c\x70\x65\x64\x72\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x36\x3d\x76\x69\x6c\x6c\x61\x72\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x37\x3d\x76\x69\x6c\x6c\x61\x73\x62\x75\x65\x6e\x61\x73\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x38\x3d\x7a\x61\x72\x7a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x31\x39\x3d\x7a\x61\x72\x7a\x61\x64\x65\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x30\x3d\x7a\x61\x72\x7a\x61\x6c\x61\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x31\x3d\x7a\x6f\x72\x69\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x32\x3d\x72\x6f\x73\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x33\x3d\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x34\x3d\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x35\x3d\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x36\x3d\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x37\x3d\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x38\x3d\x72\x69\x76\x65\x72\x61\x64\x65\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x32\x39\x3d\x65\x6c\x6d\x73\x61\x6e\x67\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x30\x3d\x74\x61\x6a\x6f\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x31\x3d\x76\x61\x6c\x6c\x65\x61\x6d\x62\x72\x6f\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x32\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x61\x6c\x61\x67\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x33\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x34\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x65\x67\x61\x73\x61\x6c\x74\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x35\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x36\x3d\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x7a\x6f\x6e\x61\x63\x65\x6e\x74\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x37\x3d\x76\x69\x6c\x6c\x75\x65\x72\x63\x61\x73\x2d\x69\x62\x6f\x72\x65\x73\x2d\x6a\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x38\x3d\x77\x77\x77\x2e\x61\x62\x61\x64\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x33\x39\x3d\x77\x77\x77\x2e\x61\x62\x65\x72\x74\x75\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x30\x3d\x77\x77\x77\x2e\x61\x63\x65\x62\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x31\x3d\x77\x77\x77\x2e\x61\x63\x65\x68\x75\x63\x68\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x32\x3d\x77\x77\x77\x2e\x61\x63\x65\x69\x74\x75\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x33\x3d\x77\x77\x77\x2e\x61\x68\x69\x67\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x34\x3d\x77\x77\x77\x2e\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x35\x3d\x77\x77\x77\x2e\x61\x6c\x63\x6f\x6c\x6c\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x36\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x62\x61\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x37\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x38\x3d\x77\x77\x77\x2e\x61\x6c\x63\x75\x65\x73\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x34\x39\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x63\x65\x6e\x74\x65\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x30\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x64\x65\x6c\x63\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x31\x3d\x77\x77\x77\x2e\x6c\x61\x61\x6c\x64\x65\x61\x64\x65\x6c\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x32\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x33\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x63\x61\x6d\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x34\x3d\x77\x77\x77\x2e\x61\x6c\x64\x65\x68\x75\x65\x6c\x61\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x35\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x6c\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x36\x3d\x77\x77\x77\x2e\x61\x6c\x69\x73\x65\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x37\x3d\x77\x77\x77\x2e\x61\x6c\x6d\x61\x72\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x38\x3d\x77\x77\x77\x2e\x61\x6c\x6d\x6f\x68\x61\x72\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x35\x39\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x61\x72\x72\x6f\x79\x6f\x64\x65\x6c\x61\x6c\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x30\x3d\x77\x77\x77\x2e\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x31\x3d\x77\x77\x77\x2e\x61\x72\x72\x6f\x79\x6f\x6d\x6f\x6c\x69\x6e\x6f\x73\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x32\x3d\x77\x77\x77\x2e\x62\x61\x6e\x6f\x73\x64\x65\x6d\x6f\x6e\x74\x65\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x33\x3d\x77\x77\x77\x2e\x62\x61\x72\x72\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x34\x3d\x77\x77\x77\x2e\x62\x65\x6c\x76\x69\x73\x64\x65\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x35\x3d\x77\x77\x77\x2e\x62\x65\x6e\x71\x75\x65\x72\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x36\x3d\x77\x77\x77\x2e\x62\x65\x72\x72\x6f\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x37\x3d\x77\x77\x77\x2e\x62\x65\x72\x7a\x6f\x63\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x38\x3d\x77\x77\x77\x2e\x62\x6f\x68\x6f\x6e\x61\x6c\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x36\x39\x3d\x77\x77\x77\x2e\x62\x6f\x74\x69\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x30\x3d\x77\x77\x77\x2e\x62\x72\x6f\x7a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x31\x3d\x77\x77\x77\x2e\x63\x61\x62\x61\x6e\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x32\x3d\x77\x77\x77\x2e\x63\x61\x62\x65\x7a\x61\x62\x65\x6c\x6c\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x33\x3d\x77\x77\x77\x2e\x63\x61\x62\x65\x7a\x75\x65\x6c\x61\x64\x65\x6c\x76\x61\x6c\x6c\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x34\x3d\x77\x77\x77\x2e\x63\x61\x62\x72\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x35\x3d\x77\x77\x77\x2e\x63\x61\x63\x68\x6f\x72\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x36\x3d\x77\x77\x77\x2e\x63\x61\x64\x61\x6c\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x37\x3d\x77\x77\x77\x2e\x63\x61\x6c\x7a\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x38\x3d\x77\x77\x77\x2e\x63\x61\x6d\x69\x6e\x6f\x6d\x6f\x72\x69\x73\x63\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x37\x39\x3d\x77\x77\x77\x2e\x63\x61\x6d\x70\x69\x6c\x6c\x6f\x64\x65\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x30\x3d\x77\x77\x77\x2e\x63\x61\x6d\x70\x6f\x6c\x75\x67\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x31\x3d\x77\x77\x77\x2e\x63\x61\x6e\x61\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x32\x3d\x77\x77\x77\x2e\x63\x61\x6e\x61\x76\x65\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x33\x3d\x77\x77\x77\x2e\x63\x61\x72\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x34\x3d\x77\x77\x77\x2e\x63\x61\x72\x63\x61\x62\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x35\x3d\x77\x77\x77\x2e\x63\x61\x72\x72\x61\x73\x63\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x36\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x37\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x64\x65\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x38\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x72\x65\x73\x64\x65\x6c\x61\x73\x68\x75\x72\x64\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x38\x39\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x61\x6e\x74\x6f\x6e\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x30\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x64\x6f\x6e\x67\x6f\x6d\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x31\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6c\x63\x61\x73\x74\x61\x6e\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x32\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6c\x6d\x6f\x6e\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x33\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x6c\x6c\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x34\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x73\x64\x65\x6d\x69\x72\x61\x76\x65\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x35\x3d\x77\x77\x77\x2e\x63\x61\x73\x61\x74\x65\x6a\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x36\x3d\x77\x77\x77\x2e\x63\x61\x73\x69\x6c\x6c\x61\x73\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x37\x3d\x77\x77\x77\x2e\x63\x61\x73\x74\x61\x6e\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x38\x3d\x77\x77\x77\x2e\x63\x65\x63\x6c\x61\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x32\x39\x39\x3d\x77\x77\x77\x2e\x63\x65\x64\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x30\x3d\x77\x77\x77\x2e\x63\x65\x72\x65\x7a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x31\x3d\x77\x77\x77\x2e\x63\x69\x6c\x6c\x65\x72\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x32\x3d\x77\x77\x77\x2e\x63\x6f\x6c\x6c\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x33\x3d\x77\x77\x77\x2e\x63\x6f\x6e\x71\x75\x69\x73\x74\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x34\x3d\x77\x77\x77\x2e\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x35\x3d\x77\x77\x77\x2e\x63\x75\x61\x63\x6f\x73\x64\x65\x79\x75\x73\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x36\x3d\x77\x77\x77\x2e\x6c\x61\x63\x75\x6d\x62\x72\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x37\x3d\x77\x77\x77\x2e\x64\x65\x6c\x65\x69\x74\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x38\x3d\x77\x77\x77\x2e\x64\x65\x73\x63\x61\x72\x67\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x30\x39\x3d\x77\x77\x77\x2e\x65\x6c\x6a\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x30\x3d\x77\x77\x77\x2e\x65\x73\x63\x75\x72\x69\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x31\x3d\x77\x77\x77\x2e\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x6f\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x32\x3d\x77\x77\x77\x2e\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x33\x3d\x77\x77\x77\x2e\x67\x61\x72\x63\x69\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x34\x3d\x77\x77\x77\x2e\x6c\x61\x67\x61\x72\x67\x61\x6e\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x35\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x61\x6e\x74\x61\x6c\x61\x6f\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x36\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x61\x6e\x74\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x37\x3d\x77\x77\x77\x2e\x67\x61\x72\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x38\x3d\x77\x77\x77\x2e\x67\x61\x72\x72\x6f\x76\x69\x6c\x6c\x61\x73\x64\x65\x61\x6c\x63\x6f\x6e\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x31\x39\x3d\x77\x77\x77\x2e\x67\x61\x72\x76\x69\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x30\x3d\x77\x77\x77\x2e\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x31\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x65\x6c\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x32\x3d\x77\x77\x77\x2e\x6c\x61\x67\x72\x61\x6e\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x33\x3d\x77\x77\x77\x2e\x6c\x61\x67\x72\x61\x6e\x6a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x34\x3d\x77\x77\x77\x2e\x61\x79\x75\x6e\x74\x61\x6d\x69\x65\x6e\x74\x6f\x64\x65\x67\x75\x61\x64\x61\x6c\x75\x70\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x35\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x63\x6f\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x36\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x67\x61\x6c\x69\x73\x74\x65\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x37\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x38\x3d\x77\x77\x77\x2e\x67\x75\x69\x6a\x6f\x64\x65\x73\x61\x6e\x74\x61\x62\x61\x72\x62\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x32\x39\x3d\x77\x77\x77\x2e\x68\x65\x72\x67\x75\x69\x6a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x30\x3d\x77\x77\x77\x2e\x68\x65\x72\x6e\x61\x6e\x70\x65\x72\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x31\x3d\x77\x77\x77\x2e\x68\x65\x72\x72\x65\x72\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x32\x3d\x77\x77\x77\x2e\x68\x65\x72\x72\x65\x72\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x33\x3d\x77\x77\x77\x2e\x68\x65\x72\x76\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x34\x3d\x77\x77\x77\x2e\x68\x69\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x35\x3d\x77\x77\x77\x2e\x68\x69\x6e\x6f\x6a\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x36\x3d\x77\x77\x77\x2e\x68\x6f\x6c\x67\x75\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x37\x3d\x77\x77\x77\x2e\x68\x6f\x79\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x38\x3d\x77\x77\x77\x2e\x68\x75\x65\x6c\x61\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x33\x39\x3d\x77\x77\x77\x2e\x69\x62\x61\x68\x65\x72\x6e\x61\x6e\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x30\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x69\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x31\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x69\x7a\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x32\x3d\x77\x77\x77\x2e\x6a\x61\x72\x61\x6e\x64\x69\x6c\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x33\x3d\x77\x77\x77\x2e\x6a\x61\x72\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x34\x3d\x77\x77\x77\x2e\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x35\x3d\x77\x77\x77\x2e\x6c\x61\x64\x72\x69\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x36\x3d\x77\x77\x77\x2e\x6c\x6f\x67\x72\x6f\x73\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x37\x3d\x77\x77\x77\x2e\x6c\x6f\x73\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x38\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x69\x67\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x34\x39\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x69\x67\x61\x6c\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x30\x3d\x77\x77\x77\x2e\x6d\x61\x64\x72\x6f\x6e\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x31\x3d\x77\x77\x77\x2e\x6d\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x32\x3d\x77\x77\x77\x2e\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x63\x61\x63\x65\x72\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x33\x3d\x77\x77\x77\x2e\x6d\x61\x6c\x70\x61\x72\x74\x69\x64\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x34\x3d\x77\x77\x77\x2e\x6d\x61\x72\x63\x68\x61\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x35\x3d\x77\x77\x77\x2e\x6d\x61\x74\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x36\x3d\x77\x77\x77\x2e\x6d\x65\x6d\x62\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x37\x3d\x77\x77\x77\x2e\x6d\x65\x73\x61\x73\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x38\x3d\x77\x77\x77\x2e\x6d\x69\x61\x6a\x61\x64\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x35\x39\x3d\x77\x77\x77\x2e\x6d\x69\x6c\x6c\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x30\x3d\x77\x77\x77\x2e\x6d\x69\x72\x61\x62\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x31\x3d\x77\x77\x77\x2e\x6d\x6f\x68\x65\x64\x61\x73\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x32\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x72\x6f\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x33\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x34\x3d\x77\x77\x77\x2e\x6d\x6f\x6e\x74\x65\x68\x65\x72\x6d\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x35\x3d\x77\x77\x77\x2e\x6d\x6f\x72\x61\x6c\x65\x6a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x36\x3d\x77\x77\x77\x2e\x6d\x6f\x72\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x37\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x63\x6f\x6e\x63\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x38\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x6c\x76\x69\x6c\x6c\x61\x72\x64\x65\x69\x62\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x36\x39\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x6c\x6d\x6f\x72\x61\x6c\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x30\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x73\x64\x65\x6c\x6d\x61\x64\x72\x6f\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x31\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x32\x3d\x77\x77\x77\x2e\x6e\x61\x76\x65\x7a\x75\x65\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x33\x3d\x77\x77\x77\x2e\x6e\x75\x6e\x6f\x6d\x6f\x72\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x34\x3d\x77\x77\x77\x2e\x6f\x6c\x69\x76\x61\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x35\x3d\x77\x77\x77\x2e\x70\x61\x6c\x6f\x6d\x65\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x36\x3d\x77\x77\x77\x2e\x70\x61\x73\x61\x72\x6f\x6e\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x37\x3d\x77\x77\x77\x2e\x70\x65\x64\x72\x6f\x73\x6f\x64\x65\x61\x63\x69\x6d\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x38\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x6c\x61\x6d\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x37\x39\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x64\x61\x64\x65\x73\x61\x6e\x72\x6f\x6d\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x30\x3d\x77\x77\x77\x2e\x70\x65\x72\x61\x6c\x65\x73\x64\x65\x6c\x70\x75\x65\x72\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x31\x3d\x77\x77\x77\x2e\x70\x65\x73\x63\x75\x65\x7a\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x32\x3d\x77\x77\x77\x2e\x6c\x61\x70\x65\x73\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x33\x3d\x77\x77\x77\x2e\x70\x69\x65\x64\x72\x61\x73\x61\x6c\x62\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x34\x3d\x77\x77\x77\x2e\x70\x69\x6e\x6f\x66\x72\x61\x6e\x71\x75\x65\x61\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x35\x3d\x77\x77\x77\x2e\x70\x69\x6f\x72\x6e\x61\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x36\x3d\x77\x77\x77\x2e\x70\x6c\x61\x73\x65\x6e\x7a\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x37\x3d\x77\x77\x77\x2e\x70\x6f\x72\x74\x61\x6a\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x38\x3d\x77\x77\x77\x2e\x70\x6f\x72\x74\x65\x7a\x75\x65\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x38\x39\x3d\x77\x77\x77\x2e\x70\x6f\x7a\x75\x65\x6c\x6f\x64\x65\x7a\x61\x72\x7a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x30\x3d\x77\x77\x77\x2e\x70\x75\x65\x62\x6c\x6f\x6e\x75\x65\x76\x6f\x64\x65\x6d\x69\x72\x61\x6d\x6f\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x31\x3d\x77\x77\x77\x2e\x70\x75\x65\x72\x74\x6f\x64\x65\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x32\x3d\x77\x77\x77\x2e\x72\x65\x62\x6f\x6c\x6c\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x33\x3d\x77\x77\x77\x2e\x72\x69\x6f\x6c\x6f\x62\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x34\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x35\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x36\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x69\x6c\x6c\x6f\x64\x65\x74\x72\x75\x6a\x69\x6c\x6c\x6f\x2c\x44\x4e\x53\x2e\x33\x39\x37\x3d\x77\x77\x77\x2e\x72\x6f\x62\x6c\x65\x64\x6f\x6c\x6c\x61\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x38\x3d\x77\x77\x77\x2e\x72\x6f\x6d\x61\x6e\x67\x6f\x72\x64\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x33\x39\x39\x3d\x77\x77\x77\x2e\x72\x75\x61\x6e\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x30\x3d\x77\x77\x77\x2e\x73\x61\x6c\x6f\x72\x69\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x31\x3d\x77\x77\x77\x2e\x73\x61\x6c\x76\x61\x74\x69\x65\x72\x72\x61\x64\x65\x73\x61\x6e\x74\x69\x61\x67\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x32\x3d\x77\x77\x77\x2e\x73\x61\x6e\x6d\x61\x72\x74\x69\x6e\x64\x65\x74\x72\x65\x76\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x33\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x73\x61\x6e\x74\x61\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x34\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x35\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x63\x72\x75\x7a\x64\x65\x70\x61\x6e\x69\x61\x67\x75\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x36\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x61\x6d\x61\x72\x74\x61\x64\x65\x6d\x61\x67\x61\x73\x63\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x37\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x61\x67\x6f\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x38\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x61\x6c\x74\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x30\x39\x3d\x77\x77\x77\x2e\x73\x61\x6e\x74\x69\x62\x61\x6e\x65\x7a\x65\x6c\x62\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x30\x3d\x77\x77\x77\x2e\x73\x61\x75\x63\x65\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x31\x3d\x77\x77\x77\x2e\x73\x65\x67\x75\x72\x61\x64\x65\x74\x6f\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x32\x3d\x77\x77\x77\x2e\x73\x65\x72\x72\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x33\x3d\x77\x77\x77\x2e\x73\x65\x72\x72\x65\x6a\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x34\x3d\x77\x77\x77\x2e\x73\x69\x65\x72\x72\x61\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x35\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x76\x61\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x36\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x76\x65\x72\x75\x65\x6c\x61\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x37\x3d\x77\x77\x77\x2e\x74\x61\x6c\x61\x79\x75\x65\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x38\x3d\x77\x77\x77\x2e\x74\x65\x6a\x65\x64\x61\x64\x65\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x31\x39\x3d\x77\x77\x77\x2e\x74\x6f\x72\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x30\x3d\x77\x77\x77\x2e\x74\x6f\x72\x6e\x61\x76\x61\x63\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x31\x3d\x77\x77\x77\x2e\x61\x79\x74\x6f\x65\x6c\x74\x6f\x72\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x32\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x64\x65\x6c\x6f\x73\x61\x6e\x67\x65\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x33\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x63\x69\x6c\x6c\x61\x73\x64\x65\x6c\x61\x74\x69\x65\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x34\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x64\x65\x64\x6f\x6e\x6d\x69\x67\x75\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x35\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x64\x65\x73\x61\x6e\x74\x61\x6d\x61\x72\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x36\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x65\x6c\x72\x75\x62\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x37\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6a\x6f\x6e\x63\x69\x6c\x6c\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x38\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6d\x65\x6e\x67\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x32\x39\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6d\x6f\x63\x68\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x30\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x6f\x72\x67\x61\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x31\x3d\x77\x77\x77\x2e\x74\x6f\x72\x72\x65\x71\x75\x65\x6d\x61\x64\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x32\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x61\x73\x74\x69\x6c\x6c\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x63\x61\x6e\x61\x73\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x34\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x66\x75\x65\x6e\x74\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x35\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x68\x75\x6e\x63\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x36\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x69\x6e\x69\x67\x6f\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x37\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6c\x61\x63\x61\x73\x61\x64\x65\x74\x61\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x38\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6d\x6f\x72\x61\x6c\x65\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x33\x39\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x6f\x62\x69\x73\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x30\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x31\x3d\x77\x77\x77\x2e\x76\x61\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x32\x3d\x77\x77\x77\x2e\x76\x61\x6c\x65\x6e\x63\x69\x61\x64\x65\x61\x6c\x63\x61\x6e\x74\x61\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x34\x3d\x77\x77\x77\x2e\x76\x61\x6c\x76\x65\x72\x64\x65\x64\x65\x6c\x66\x72\x65\x73\x6e\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x35\x3d\x77\x77\x77\x2e\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x36\x3d\x77\x77\x77\x2e\x76\x69\x61\x6e\x64\x61\x72\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x37\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x64\x65\x6c\x63\x61\x6d\x70\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x38\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x64\x65\x6c\x72\x65\x79\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x34\x39\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6d\x65\x73\x69\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x30\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6d\x69\x65\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x31\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x6e\x75\x65\x76\x61\x64\x65\x6c\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x32\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x72\x64\x65\x6c\x70\x65\x64\x72\x6f\x73\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x33\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x72\x64\x65\x70\x6c\x61\x73\x65\x6e\x63\x69\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x34\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x61\x73\x62\x75\x65\x6e\x61\x73\x64\x65\x67\x61\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x35\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x64\x65\x67\x72\x61\x6e\x61\x64\x69\x6c\x6c\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x36\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x64\x65\x6d\x6f\x6e\x74\x61\x6e\x63\x68\x65\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x37\x3d\x77\x77\x77\x2e\x7a\x61\x72\x7a\x61\x6c\x61\x6d\x61\x79\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x38\x3d\x77\x77\x77\x2e\x7a\x6f\x72\x69\x74\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x35\x39\x3d\x77\x77\x77\x2e\x72\x6f\x73\x61\x6c\x65\x6a\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x30\x3d\x77\x77\x77\x2e\x76\x65\x67\x61\x76\x69\x61\x6e\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x31\x3d\x77\x77\x77\x2e\x61\x6c\x61\x67\x6f\x6e\x64\x65\x6c\x72\x69\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x32\x3d\x77\x77\x77\x2e\x74\x69\x65\x74\x61\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x33\x3d\x77\x77\x77\x2e\x76\x61\x6c\x64\x65\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x34\x3d\x77\x77\x77\x2e\x6e\x61\x76\x61\x74\x72\x61\x73\x69\x65\x72\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x35\x3d\x77\x77\x77\x2e\x72\x69\x76\x65\x72\x61\x64\x65\x66\x72\x65\x73\x6e\x65\x64\x6f\x73\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x36\x3d\x77\x77\x77\x2e\x65\x6c\x6d\x73\x61\x6e\x67\x69\x6c\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x37\x3d\x77\x77\x77\x2e\x74\x61\x6a\x6f\x73\x61\x6c\x6f\x72\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x38\x3d\x77\x77\x77\x2e\x76\x61\x6c\x6c\x65\x61\x6d\x62\x72\x6f\x7a\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x36\x39\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x61\x6c\x61\x67\x6f\x6e\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x30\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x61\x6c\x6c\x65\x64\x65\x6c\x6a\x65\x72\x74\x65\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x31\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x76\x65\x67\x61\x73\x61\x6c\x74\x61\x73\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x32\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x64\x65\x6c\x61\x76\x65\x72\x61\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x33\x3d\x77\x77\x77\x2e\x6d\x61\x6e\x63\x6f\x6d\x75\x6e\x69\x64\x61\x64\x7a\x6f\x6e\x61\x63\x65\x6e\x74\x72\x6f\x2e\x65\x73\x2c\x44\x4e\x53\x2e\x34\x37\x34\x3d\x77\x77\x77\x2e\x76\x69\x6c\x6c\x75\x65\x72\x63\x61\x73\x2d\x69\x62\x6f\x72\x65\x73\x2d\x6a\x61\x72\x61\x2e\x65\x73",
+ 12589},
+ .can_encode = 1}
};
struct encode_tests_st {
@@ -202,100 +226,112 @@ struct encode_tests_st {
struct encode_tests_st encode_tests[] = {
{
- .name = "invalid DN",
- .str = "CDD=Cindy Lauper,UID=clauper,OU=sleeping dept.,O=Koko inc.,ST=Attiki,C=GR",
- .failure = GNUTLS_E_PARSING_ERROR,
- },
+ .name = "invalid DN",
+ .str =
+ "CDD=Cindy Lauper,UID=clauper,OU=sleeping dept.,O=Koko inc.,ST=Attiki,C=GR",
+ .failure = GNUTLS_E_PARSING_ERROR,
+ },
{
- .name = "invalid DN2",
- .str = "CD,O=Koko",
- .failure = GNUTLS_E_PARSING_ERROR,
- },
+ .name = "invalid DN2",
+ .str = "CD,O=Koko",
+ .failure = GNUTLS_E_PARSING_ERROR,
+ },
{
- .name = "invalid DN3",
- .str = "CN,O=Koko",
- .failure = GNUTLS_E_PARSING_ERROR,
- },
+ .name = "invalid DN3",
+ .str = "CN,O=Koko",
+ .failure = GNUTLS_E_PARSING_ERROR,
+ },
{
- .name = "DN containing '+'",
- .str = "CN=Cindy Lauper,UID=clauper+OU=sleeping dept.,O=Koko inc.,ST=Attiki,C=GR",
- .failure = GNUTLS_E_PARSING_ERROR,
- },
+ .name = "DN containing '+'",
+ .str =
+ "CN=Cindy Lauper,UID=clauper+OU=sleeping dept.,O=Koko inc.,ST=Attiki,C=GR",
+ .failure = GNUTLS_E_PARSING_ERROR,
+ },
{
- .name = "DN containing unsupported escaped chars",
- .str = "CN=\\CD\\AB\\19",
- .failure = GNUTLS_E_PARSING_ERROR,
- },
+ .name = "DN containing unsupported escaped chars",
+ .str = "CN=\\CD\\AB\\19",
+ .failure = GNUTLS_E_PARSING_ERROR,
+ },
{
- .name = "encode C",
- .str = "C=ES",
- .raw = {(void*)"\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x45\x53", 15},
- .failure = GNUTLS_E_SUCCESS
- },
+ .name = "encode C",
+ .str = "C=ES",
+ .raw = {(void *)
+ "\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x45\x53",
+ 15},
+ .failure = GNUTLS_E_SUCCESS},
{
- .name = "encode raw C",
- .str = "C=#13024553",
- .raw = {(void*)"\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x45\x53", 15},
- .failure = 0
- },
+ .name = "encode raw C",
+ .str = "C=#13024553",
+ .raw = {(void *)
+ "\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x45\x53",
+ 15},
+ .failure = 0},
{
- .name = "encode with slash #",
- .str = "C=\\#S",
- .raw = {(void*)"\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x23\x53", 15},
- .failure = 0
- },
+ .name = "encode with slash #",
+ .str = "C=\\#S",
+ .raw = {(void *)
+ "\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x23\x53",
+ 15},
+ .failure = 0},
{
- .name = "encode with spaces",
- .str = "C=\\ \\ ",
- .raw = {(void*)"\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x20\x20", 15},
- .failure = 0
- },
+ .name = "encode with spaces",
+ .str = "C=\\ \\ ",
+ .raw = {(void *)
+ "\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x20\x20",
+ 15},
+ .failure = 0},
{
- .name = "encode with comma",
- .str = "C=\\,\\ ",
- .raw = {(void*)"\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x2c\x20", 15},
- .failure = 0
- },
+ .name = "encode with comma",
+ .str = "C=\\,\\ ",
+ .raw = {(void *)
+ "\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x2c\x20",
+ 15},
+ .failure = 0},
{
- .name = "encode with escaped plus",
- .str = "C=\\+\\ ",
- .raw = {(void*)"\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x2b\x20", 15},
- .failure = 0
- },
+ .name = "encode with escaped plus",
+ .str = "C=\\+\\ ",
+ .raw = {(void *)
+ "\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x2b\x20",
+ 15},
+ .failure = 0},
{
- .name = "encode with escaped string",
- .str = "C=\\,\\+\\;\\<\\>\\\\",
- .raw = {(void*)"\x30\x11\x31\x0f\x30\x0d\x06\x03\x55\x04\x06\x13\x06\x2c\x2b\x3b\x3c\x3e\x5c", 19},
- .failure = 0
- },
+ .name = "encode with escaped string",
+ .str = "C=\\,\\+\\;\\<\\>\\\\",
+ .raw = {(void *)
+ "\x30\x11\x31\x0f\x30\x0d\x06\x03\x55\x04\x06\x13\x06\x2c\x2b\x3b\x3c\x3e\x5c",
+ 19},
+ .failure = 0},
{
- .name = "encode with combo",
- .str = "CN=\\#XXX,OU=\\ X\\ ,C=\\,\\ ",
- .raw = {(void*)"\x30\x2b\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x2c\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x0b\x13\x04\x20\x20\x58\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x03\x0c\x04\x23\x58\x58\x58", 45},
- .failure = 0
- },
+ .name = "encode with combo",
+ .str = "CN=\\#XXX,OU=\\ X\\ ,C=\\,\\ ",
+ .raw = {(void *)
+ "\x30\x2b\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x2c\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x0b\x13\x04\x20\x20\x58\x20\x31\x0d\x30\x0b\x06\x03\x55\x04\x03\x0c\x04\x23\x58\x58\x58",
+ 45},
+ .failure = 0},
{
- .name = "encode invalid hex raw C",
- .str = "C=#1302455",
- .raw = {(void*)"\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x45\x53", 15},
- .failure = GNUTLS_E_PARSING_ERROR
- }
+ .name = "encode invalid hex raw C",
+ .str = "C=#1302455",
+ .raw = {(void *)
+ "\x30\x0d\x31\x0b\x30\x09\x06\x03\x55\x04\x06\x13\x02\x45\x53",
+ 15},
+ .failure = GNUTLS_E_PARSING_ERROR}
};
void doit(void)
{
unsigned i;
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
- decode(tests[i].name, &tests[i].raw, tests[i].str, tests[i].compat_str);
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
+ decode(tests[i].name, &tests[i].raw, tests[i].str,
+ tests[i].compat_str);
}
- for (i=0;i<sizeof(tests)/sizeof(tests[0]);i++) {
+ for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
if (tests[i].can_encode)
encode(tests[i].name, &tests[i].raw, tests[i].str, 0);
}
- for (i=0;i<sizeof(encode_tests)/sizeof(encode_tests[0]);i++) {
- encode(encode_tests[i].name, &encode_tests[i].raw, encode_tests[i].str, encode_tests[i].failure);
+ for (i = 0; i < sizeof(encode_tests) / sizeof(encode_tests[0]); i++) {
+ encode(encode_tests[i].name, &encode_tests[i].raw,
+ encode_tests[i].str, encode_tests[i].failure);
}
}
-
diff --git a/tests/x509-dn.c b/tests/x509-dn.c
index df1aa891e1..5f0ede618c 100644
--- a/tests/x509-dn.c
+++ b/tests/x509-dn.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -50,7 +50,7 @@ static const char cert_pem[] =
"jpfc/3X7sLUsMvumcDE01ls/cG5mIatmiyEU9qI3jbgUf82z23ON/acwJf875D3/\n"
"U7jyOsBJ44SEQITbin2yUeJMIm1tievvdNXBDfW95AM507ShzP12sfiJkJfjjdhy\n"
"dc8Siq5JojruiMizAf0pA7in\n" "-----END CERTIFICATE-----\n";
-static const gnutls_datum_t cert_datum = { (unsigned char *) cert_pem,
+static const gnutls_datum_t cert_datum = { (unsigned char *)cert_pem,
sizeof(cert_pem)
};
@@ -91,8 +91,7 @@ void doit(void)
fail("FAIL: re-import subject DN.\n");
buf2len = sizeof buf2;
- rv = gnutls_x509_dn_export(dn2, GNUTLS_X509_FMT_DER, buf2,
- &buf2len);
+ rv = gnutls_x509_dn_export(dn2, GNUTLS_X509_FMT_DER, buf2, &buf2len);
if (rv != 0)
fail("FAIL: could not export subject DN: %s\n",
gnutls_strerror(rv));
diff --git a/tests/x509-extensions.c b/tests/x509-extensions.c
index 9a67097dc6..5494324d8e 100644
--- a/tests/x509-extensions.c
+++ b/tests/x509-extensions.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <stdio.h>
@@ -29,26 +29,26 @@
#include <gnutls/x509-ext.h>
#include "utils.h"
-static char invalid_cert[] = /* v1 certificate with extensions */
-"-----BEGIN CERTIFICATE-----\n"
-"MIIDHjCCAgYCDFQ7zlUDsihSxVF4mDANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQD\n"
-"EwRDQS0wMCIYDzIwMTQxMDEzMTMwNjI5WhgPOTk5OTEyMzEyMzU5NTlaMBMxETAP\n"
-"BgNVBAMTCHNlcnZlci0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\n"
-"zoG3/1YtwGHh/5u3ex6xAmwO0/H4gdIy/yiYLxqWcy+HzyMBBZHNXuV7W0z7x+Qo\n"
-"qCGtenWkzIQSgeYKyzdcpPDscZIYOgwHWUFczxgVGdLsBKPSczgqMHpSCLgMgnDM\n"
-"RaN6SNQeTQdftkLt5wdBSzNaxhhPYsCEbopSeZ8250FCLS3gRpoMtYCBiy7cjSJB\n"
-"zv6zmZStXNgTYr8pLwI0nyxPyRdB+TZyqAC6r9W154y51vsqUCGmC0I9hn1A5kkD\n"
-"5057x+Ho1kDwPxOfObdOR+AJSAw/FeGuStzViJY0I68B90sEo/HD+h7mB+CwJ2Yf\n"
-"64/xVdh+D8L65eYkM9z88wIDAQABo3cwdTAMBgNVHRMBAf8EAjAAMBQGA1UdEQQN\n"
-"MAuCCWxvY2FsaG9zdDAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBT7Gk/u95zI\n"
-"JTM89CXJ70IxxqhegDAfBgNVHSMEGDAWgBQ9X77/zddjG9ob2zrR/WuGmxwFGDAN\n"
-"BgkqhkiG9w0BAQsFAAOCAQEAaTrAcTkQ7yqf6afoTkFXZuZ+jJXYNGkubxs8Jo/z\n"
-"srJk/WWVGAKuxiBDumk88Gjm+WXGyIDA7Hq9fhGaklJV2PGRfNVx9No51HXeAToT\n"
-"sHs2XKhk9SdKKR4UJkuX3U2malMlCpmFMtm3EieDVZLxeukhODJQtRa3vGg8QWoz\n"
-"ODlewHSmQiXhnqq52fLCbdVUaBnaRGOIwNZ0FcBWv9n0ZCuhjg9908rUVH9/OjI3\n"
-"AGVZcbN9Jac2ZO8NTxP5vS1hrG2wT9+sVRh1sD5ISZSM4gWdq9sK8d7j+SwOPBWY\n"
-"3dcxQlfvWw2Dt876XYoyUZuKirmASVlMw+hkm1WXM7Svsw==\n"
-"-----END CERTIFICATE-----\n";
+static char invalid_cert[] = /* v1 certificate with extensions */
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDHjCCAgYCDFQ7zlUDsihSxVF4mDANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQD\n"
+ "EwRDQS0wMCIYDzIwMTQxMDEzMTMwNjI5WhgPOTk5OTEyMzEyMzU5NTlaMBMxETAP\n"
+ "BgNVBAMTCHNlcnZlci0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\n"
+ "zoG3/1YtwGHh/5u3ex6xAmwO0/H4gdIy/yiYLxqWcy+HzyMBBZHNXuV7W0z7x+Qo\n"
+ "qCGtenWkzIQSgeYKyzdcpPDscZIYOgwHWUFczxgVGdLsBKPSczgqMHpSCLgMgnDM\n"
+ "RaN6SNQeTQdftkLt5wdBSzNaxhhPYsCEbopSeZ8250FCLS3gRpoMtYCBiy7cjSJB\n"
+ "zv6zmZStXNgTYr8pLwI0nyxPyRdB+TZyqAC6r9W154y51vsqUCGmC0I9hn1A5kkD\n"
+ "5057x+Ho1kDwPxOfObdOR+AJSAw/FeGuStzViJY0I68B90sEo/HD+h7mB+CwJ2Yf\n"
+ "64/xVdh+D8L65eYkM9z88wIDAQABo3cwdTAMBgNVHRMBAf8EAjAAMBQGA1UdEQQN\n"
+ "MAuCCWxvY2FsaG9zdDAPBgNVHQ8BAf8EBQMDB6AAMB0GA1UdDgQWBBT7Gk/u95zI\n"
+ "JTM89CXJ70IxxqhegDAfBgNVHSMEGDAWgBQ9X77/zddjG9ob2zrR/WuGmxwFGDAN\n"
+ "BgkqhkiG9w0BAQsFAAOCAQEAaTrAcTkQ7yqf6afoTkFXZuZ+jJXYNGkubxs8Jo/z\n"
+ "srJk/WWVGAKuxiBDumk88Gjm+WXGyIDA7Hq9fhGaklJV2PGRfNVx9No51HXeAToT\n"
+ "sHs2XKhk9SdKKR4UJkuX3U2malMlCpmFMtm3EieDVZLxeukhODJQtRa3vGg8QWoz\n"
+ "ODlewHSmQiXhnqq52fLCbdVUaBnaRGOIwNZ0FcBWv9n0ZCuhjg9908rUVH9/OjI3\n"
+ "AGVZcbN9Jac2ZO8NTxP5vS1hrG2wT9+sVRh1sD5ISZSM4gWdq9sK8d7j+SwOPBWY\n"
+ "3dcxQlfvWw2Dt876XYoyUZuKirmASVlMw+hkm1WXM7Svsw==\n"
+ "-----END CERTIFICATE-----\n";
static char pem[] =
"-----BEGIN CERTIFICATE-----"
@@ -85,7 +85,7 @@ static char pem[] =
#define MAX_DATA_SIZE 1024
-typedef int (*ext_parse_func) (const gnutls_datum_t * der);
+typedef int (*ext_parse_func)(const gnutls_datum_t * der);
struct ext_handler_st {
const char *oid;
@@ -690,8 +690,9 @@ struct ext_handler_st handlers[] = {
void doit(void)
{
int ret;
- gnutls_datum_t derCert = { (void *)pem, sizeof(pem)-1 };
- gnutls_datum_t v1Cert = { (void *)invalid_cert, sizeof(invalid_cert)-1 };
+ gnutls_datum_t derCert = { (void *)pem, sizeof(pem) - 1 };
+ gnutls_datum_t v1Cert =
+ { (void *)invalid_cert, sizeof(invalid_cert) - 1 };
gnutls_x509_crt_t cert;
size_t oid_len = MAX_DATA_SIZE;
gnutls_datum_t ext;
@@ -724,7 +725,7 @@ void doit(void)
oid_len = sizeof(oid);
ret =
gnutls_x509_crt_get_extension_info(cert, i, oid, &oid_len,
- &critical);
+ &critical);
if (ret == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
if (i != 9) {
fail("unexpected number of extensions: %d\n",
diff --git a/tests/x509-server-verify.c b/tests/x509-server-verify.c
index ee48d39ad4..b2685e114d 100644
--- a/tests/x509-server-verify.c
+++ b/tests/x509-server-verify.c
@@ -21,7 +21,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -68,20 +68,25 @@ static void start(const char *prio)
if (debug)
gnutls_global_set_log_level(2);
- assert(gnutls_certificate_allocate_credentials(&serverx509cred)>=0);
- ret = gnutls_certificate_set_x509_key_mem2(serverx509cred, &server_ca3_localhost6_cert,
- &server_ca3_key, GNUTLS_X509_FMT_PEM, NULL, 0);
- assert(ret>=0);
+ assert(gnutls_certificate_allocate_credentials(&serverx509cred) >= 0);
+ ret =
+ gnutls_certificate_set_x509_key_mem2(serverx509cred,
+ &server_ca3_localhost6_cert,
+ &server_ca3_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
+ assert(ret >= 0);
index1 = ret;
- ret = gnutls_certificate_set_ocsp_status_request_mem(serverx509cred, &ocsp_ca3_localhost6_unknown_pem,
- index1, GNUTLS_X509_FMT_PEM);
- assert(ret>=0);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_mem(serverx509cred,
+ &ocsp_ca3_localhost6_unknown_pem,
+ index1,
+ GNUTLS_X509_FMT_PEM);
+ assert(ret >= 0);
- assert(gnutls_init(&server, GNUTLS_SERVER)>=0);
+ assert(gnutls_init(&server, GNUTLS_SERVER) >= 0);
gnutls_credentials_set(server, GNUTLS_CRD_CERTIFICATE, serverx509cred);
- assert(gnutls_priority_set_direct(server,
- prio, NULL) >= 0);
+ assert(gnutls_priority_set_direct(server, prio, NULL) >= 0);
gnutls_transport_set_push_function(server, server_push);
gnutls_transport_set_pull_function(server, server_pull);
gnutls_transport_set_ptr(server, server);
@@ -91,25 +96,30 @@ static void start(const char *prio)
assert(gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca3_cert,
GNUTLS_X509_FMT_PEM) >= 0);
- ret = gnutls_certificate_set_x509_key_mem2(clientx509cred, &cli_ca3_cert_chain,
- &cli_ca3_key, GNUTLS_X509_FMT_PEM, NULL, 0);
- assert(ret>=0);
+ ret =
+ gnutls_certificate_set_x509_key_mem2(clientx509cred,
+ &cli_ca3_cert_chain,
+ &cli_ca3_key,
+ GNUTLS_X509_FMT_PEM, NULL, 0);
+ assert(ret >= 0);
index1 = ret;
- ret = gnutls_certificate_set_ocsp_status_request_mem(clientx509cred, &ocsp_cli_ca3_good_pem,
- index1, GNUTLS_X509_FMT_PEM);
- assert(ret>=0);
+ ret =
+ gnutls_certificate_set_ocsp_status_request_mem(clientx509cred,
+ &ocsp_cli_ca3_good_pem,
+ index1,
+ GNUTLS_X509_FMT_PEM);
+ assert(ret >= 0);
assert(gnutls_certificate_set_x509_trust_mem(clientx509cred, &ca3_cert,
GNUTLS_X509_FMT_PEM) >= 0);
-
assert(gnutls_init(&client, GNUTLS_CLIENT) >= 0);
assert(gnutls_credentials_set(client, GNUTLS_CRD_CERTIFICATE,
clientx509cred) >= 0);
- assert(gnutls_priority_set_direct(client, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(client, prio, NULL) >= 0);
gnutls_transport_set_push_function(client, client_push);
gnutls_transport_set_pull_function(client, client_pull);
gnutls_transport_set_ptr(client, client);
@@ -123,19 +133,19 @@ static void start(const char *prio)
ret = gnutls_certificate_verify_peers2(server, &status);
if (ret < 0) {
fail("could not verify client certificate: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
}
if (status == 0)
fail("No CAs present but succeeded!\n");
- assert(gnutls_certificate_set_x509_trust_mem(serverx509cred, &ca3_cert,
- GNUTLS_X509_FMT_PEM) >= 0);
+ assert(gnutls_certificate_set_x509_trust_mem
+ (serverx509cred, &ca3_cert, GNUTLS_X509_FMT_PEM) >= 0);
ret = gnutls_certificate_verify_peers2(server, &status);
if (ret < 0) {
fail("could not verify client certificate: %s\n",
- gnutls_strerror(ret));
+ gnutls_strerror(ret));
}
if (status != 0)
@@ -143,13 +153,17 @@ static void start(const char *prio)
/* under TLS1.3 the client can send OCSP responses too */
if (gnutls_protocol_get_version(server) == GNUTLS_TLS1_3) {
- ret = gnutls_ocsp_status_request_is_checked(server, GNUTLS_OCSP_SR_IS_AVAIL);
+ ret =
+ gnutls_ocsp_status_request_is_checked(server,
+ GNUTLS_OCSP_SR_IS_AVAIL);
assert(ret >= 0);
ret = gnutls_ocsp_status_request_is_checked(server, 0);
assert(ret >= 0);
} else {
- ret = gnutls_ocsp_status_request_is_checked(server, GNUTLS_OCSP_SR_IS_AVAIL);
+ ret =
+ gnutls_ocsp_status_request_is_checked(server,
+ GNUTLS_OCSP_SR_IS_AVAIL);
assert(ret == 0);
ret = gnutls_ocsp_status_request_is_checked(server, 0);
diff --git a/tests/x509-upnconstraint.c b/tests/x509-upnconstraint.c
index 8ba6888b9f..24f0078667 100644
--- a/tests/x509-upnconstraint.c
+++ b/tests/x509-upnconstraint.c
@@ -39,64 +39,64 @@ void verify_non_upn_leaf(gnutls_x509_name_constraints_t);
static const char _domaincontroller[] = {
"-----BEGIN CERTIFICATE-----\n"
- "MIIEqTCCA5GgAwIBAgITQAAAAAPX0eQxgcZpHAAAAAAAAzANBgkqhkiG9w0BAQsF\n"
- "ADA0MRUwEwYDVQQKEwxFeGFtcGxlIEluYy4xGzAZBgNVBAMTEkV4YW1wbGUgQ29y\n"
- "cCBBRCBDQTAeFw0yMjA0MTIxNjUzMTFaFw0yNzA0MTExNjUzMTFaMCIxIDAeBgNV\n"
- "BAMTF2V4YW1wbGVkYzAxLmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOC\n"
- "AQ8AMIIBCgKCAQEAtnYFOqZas9U9GX87w2bvyQh6l3fWJ83JHEHAwP11j9dQu/sa\n"
- "qgMYr/OqH+5tCvsDLt9sI35RCuF+6San3P1m56G+iYaawE46UrbHSYC4PyhinOXx\n"
- "X3xXzaxjTDYhz46Fvfmoqa732zPYG3QQplPsjQbRx96iXOSkdWt8g4mbTJ/eyYdG\n"
- "uXt1mlvL+USz5b39trOgSgTC60cdneBrQsBh7o80rHvaprvjTY5mHS7JNHcsr9Hs\n"
- "xjOOq9t3LdWehXYshINZ6ChxaHipbBUF+0CTvwJW8wvQtSV6MYDl+cbS/47OwJG0\n"
- "OXJxFVQofJWNi4/IrTC42d3fyEWA2ZnP898GeQIDAQABo4IBxDCCAcAwPQYJKwYB\n"
- "BAGCNxUHBDAwLgYmKwYBBAGCNxUIg/iOToSq0GWEhZMhhZ3KIoKY1VocgufIbYTY\n"
- "+3sCAWQCAQIwMgYDVR0lBCswKQYHKwYBBQIDBQYKKwYBBAGCNxQCAgYIKwYBBQUH\n"
- "AwEGCCsGAQUFBwMCMA4GA1UdDwEB/wQEAwIFoDBABgkrBgEEAYI3FQoEMzAxMAkG\n"
- "BysGAQUCAwUwDAYKKwYBBAGCNxQCAjAKBggrBgEFBQcDATAKBggrBgEFBQcDAjAd\n"
- "BgNVHQ4EFgQUjaBu4CsVk5gng+ACWTSqsj1gmVQwNAYDVR0RBC0wK4IXZXhhbXBs\n"
- "ZWRjMDEuZXhhbXBsZS5jb22CEGxkYXAuZXhhbXBsZS5jb20wHwYDVR0jBBgwFoAU\n"
- "aRL34OyTRJUSVVfxMiMjBFHk/WowOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL3Br\n"
- "aS5leGFtcGxlLmNvbS9jZHAvRXhhbXBsZUFEQ0EuY3JsMEYGCCsGAQUFBwEBBDow\n"
- "ODA2BggrBgEFBQcwAoYqaHR0cDovL3BraS5leGFtcGxlLmNvbS9haWEvRXhhbXBs\n"
- "ZUFEQ0EuY2VyMA0GCSqGSIb3DQEBCwUAA4IBAQCKr0WQYujcyUOUZp63i27dMihf\n"
- "z+WKd2G+dyGzmNTabFlZSfquFo+MWmSM04UOEYS45tyFZhWEXXaz4OfilelKy5XI\n"
- "tiZRGDvzNzxfb7GQSWDO1mxLHW2yEH+1Cyu/Km0PRhDl1Vy0DFyrdGh/w7qTM7eG\n"
- "BjD0bBtk9/M58IYlnzx7CM53CRGhPHUygontN1vbWf42gDdu+5d+tnls86gTzuRs\n"
- "su4BReayHU9aFqorWhvxCQhgnLx98Ei2BsJe5nbSzjVA5ZhPcL9WDC76aDPEDaZg\n"
- "GnNu9kZJV/UrCaulu0COhJfNocd/LWXZbUStUCenRX01GHCP+4mNmPLJkVh2\n"
- "-----END CERTIFICATE-----"
+ "MIIEqTCCA5GgAwIBAgITQAAAAAPX0eQxgcZpHAAAAAAAAzANBgkqhkiG9w0BAQsF\n"
+ "ADA0MRUwEwYDVQQKEwxFeGFtcGxlIEluYy4xGzAZBgNVBAMTEkV4YW1wbGUgQ29y\n"
+ "cCBBRCBDQTAeFw0yMjA0MTIxNjUzMTFaFw0yNzA0MTExNjUzMTFaMCIxIDAeBgNV\n"
+ "BAMTF2V4YW1wbGVkYzAxLmV4YW1wbGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOC\n"
+ "AQ8AMIIBCgKCAQEAtnYFOqZas9U9GX87w2bvyQh6l3fWJ83JHEHAwP11j9dQu/sa\n"
+ "qgMYr/OqH+5tCvsDLt9sI35RCuF+6San3P1m56G+iYaawE46UrbHSYC4PyhinOXx\n"
+ "X3xXzaxjTDYhz46Fvfmoqa732zPYG3QQplPsjQbRx96iXOSkdWt8g4mbTJ/eyYdG\n"
+ "uXt1mlvL+USz5b39trOgSgTC60cdneBrQsBh7o80rHvaprvjTY5mHS7JNHcsr9Hs\n"
+ "xjOOq9t3LdWehXYshINZ6ChxaHipbBUF+0CTvwJW8wvQtSV6MYDl+cbS/47OwJG0\n"
+ "OXJxFVQofJWNi4/IrTC42d3fyEWA2ZnP898GeQIDAQABo4IBxDCCAcAwPQYJKwYB\n"
+ "BAGCNxUHBDAwLgYmKwYBBAGCNxUIg/iOToSq0GWEhZMhhZ3KIoKY1VocgufIbYTY\n"
+ "+3sCAWQCAQIwMgYDVR0lBCswKQYHKwYBBQIDBQYKKwYBBAGCNxQCAgYIKwYBBQUH\n"
+ "AwEGCCsGAQUFBwMCMA4GA1UdDwEB/wQEAwIFoDBABgkrBgEEAYI3FQoEMzAxMAkG\n"
+ "BysGAQUCAwUwDAYKKwYBBAGCNxQCAjAKBggrBgEFBQcDATAKBggrBgEFBQcDAjAd\n"
+ "BgNVHQ4EFgQUjaBu4CsVk5gng+ACWTSqsj1gmVQwNAYDVR0RBC0wK4IXZXhhbXBs\n"
+ "ZWRjMDEuZXhhbXBsZS5jb22CEGxkYXAuZXhhbXBsZS5jb20wHwYDVR0jBBgwFoAU\n"
+ "aRL34OyTRJUSVVfxMiMjBFHk/WowOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL3Br\n"
+ "aS5leGFtcGxlLmNvbS9jZHAvRXhhbXBsZUFEQ0EuY3JsMEYGCCsGAQUFBwEBBDow\n"
+ "ODA2BggrBgEFBQcwAoYqaHR0cDovL3BraS5leGFtcGxlLmNvbS9haWEvRXhhbXBs\n"
+ "ZUFEQ0EuY2VyMA0GCSqGSIb3DQEBCwUAA4IBAQCKr0WQYujcyUOUZp63i27dMihf\n"
+ "z+WKd2G+dyGzmNTabFlZSfquFo+MWmSM04UOEYS45tyFZhWEXXaz4OfilelKy5XI\n"
+ "tiZRGDvzNzxfb7GQSWDO1mxLHW2yEH+1Cyu/Km0PRhDl1Vy0DFyrdGh/w7qTM7eG\n"
+ "BjD0bBtk9/M58IYlnzx7CM53CRGhPHUygontN1vbWf42gDdu+5d+tnls86gTzuRs\n"
+ "su4BReayHU9aFqorWhvxCQhgnLx98Ei2BsJe5nbSzjVA5ZhPcL9WDC76aDPEDaZg\n"
+ "GnNu9kZJV/UrCaulu0COhJfNocd/LWXZbUStUCenRX01GHCP+4mNmPLJkVh2\n"
+ "-----END CERTIFICATE-----"
};
static const char _issuingca[] = {
/* The intermediate CA with name constraints */
"-----BEGIN CERTIFICATE-----\n"
- "MIIE0jCCA7qgAwIBAgITLgAAAAK9f34egj9VJAAAAAAAAjANBgkqhkiG9w0BAQsF\n"
- "ADA2MRUwEwYDVQQKEwxFeGFtcGxlIEluYy4xHTAbBgNVBAMTFEV4YW1wbGUgQ29y\n"
- "cCBSb290IENBMCAXDTIyMDQxMjE2Mzk0M1oYDzIwNjcwNDEyMTY0OTQzWjA0MRUw\n"
- "EwYDVQQKEwxFeGFtcGxlIEluYy4xGzAZBgNVBAMTEkV4YW1wbGUgQ29ycCBBRCBD\n"
- "QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALs2TqehwJfMyrU77MRv\n"
- "4jgwgnsruZMexMGwT6A5oxdjKNhyXnsdiYiH3nFEgrHSCOAxgoCDJYlDLn0jZYdS\n"
- "3j7hMrhzAwHzwUgTrruHaTZ2tShxbfvUAGuuOroSVB4+XzS22RKdgh7g1cv3scWI\n"
- "62M2vfV8iBpehD5xhmqfu2Z9ChNTR32HLHdFdsMFuS+t0Zktszk1qE9AClFa7ttr\n"
- "VKgOyEmjgXlhX/Qld4zgCvxvI/jMPbEKrU2ZFeRV160vGaraAVjF0Oxe9TFH9fLZ\n"
- "E+ERghmfdzzbNOXikgExrsveALNRsbTyIhKmEDRGMN/y12htghHvBamwGDt/gj9q\n"
- "3fECAwEAAaOCAdcwggHTMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRpEvfg\n"
- "7JNElRJVV/EyIyMEUeT9ajAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNV\n"
- "HQ8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBQlQb5lkuye\n"
- "IfoJIi/ctatOBUANSDA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vcGtpLmV4YW1w\n"
- "bGUuY29tL2NkcC9FeGFtcGxlUm9vdC5jcmwwggEEBgNVHR4BAf8EgfkwgfagajAN\n"
- "ggtleGFtcGxlLmNvbTAOggwuZXhhbXBsZS5jb20wCYIHRVhBTVBMRTAeoBwGCisG\n"
- "AQQBgjcUAgOgDgwMQGV4YW1wbGUuY29tMB6gHAYKKwYBBAGCNxQCA6AODAwuZXhh\n"
- "bXBsZS5jb22hgYcwF4IVc3ViZG9tYWluLmV4YW1wbGUuY29tMBiCFi5zdWJkb21h\n"
- "aW4uZXhhbXBsZS5jb20wKKAmBgorBgEEAYI3FAIDoBgMFkBzdWJkb21haW4uZXhh\n"
- "bXBsZS5jb20wKKAmBgorBgEEAYI3FAIDoBgMFi5zdWJkb21haW4uZXhhbXBsZS5j\n"
- "b20wDQYJKoZIhvcNAQELBQADggEBAG+gD/ZNEaoukBt/U+7tGOwx5bTAdNChYZEU\n"
- "Wzt5XoJ0ZgClfgtKk/hmDxPsUEVOzaYEtUrj8V0qJun5YwEzZsZbHAkbkTOcQ2tC\n"
- "5Jv7czs0IYrSCJIgz7PdNSxTaXyCpipzUvSdZxQj3Bjj+MiYiReEwxhAb6bI/D8h\n"
- "HXk9T5iHiw9f7P6ZTBvx5keUjAePO8sc0CtefOIH+tyRY1oEHAzMSDzqhpeZDAtM\n"
- "N93KZkhnx/kmQhqLXhrck9Ubozw++e2iP83bTojTFSodRiKWPtUKOHAlPvIWQURc\n"
- "YP0dQUsv1tMnNjJgA7COp1+mmqfEUVQqmBwRbJ26ve2iwS/SAgI=\n"
- "-----END CERTIFICATE-----"
+ "MIIE0jCCA7qgAwIBAgITLgAAAAK9f34egj9VJAAAAAAAAjANBgkqhkiG9w0BAQsF\n"
+ "ADA2MRUwEwYDVQQKEwxFeGFtcGxlIEluYy4xHTAbBgNVBAMTFEV4YW1wbGUgQ29y\n"
+ "cCBSb290IENBMCAXDTIyMDQxMjE2Mzk0M1oYDzIwNjcwNDEyMTY0OTQzWjA0MRUw\n"
+ "EwYDVQQKEwxFeGFtcGxlIEluYy4xGzAZBgNVBAMTEkV4YW1wbGUgQ29ycCBBRCBD\n"
+ "QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALs2TqehwJfMyrU77MRv\n"
+ "4jgwgnsruZMexMGwT6A5oxdjKNhyXnsdiYiH3nFEgrHSCOAxgoCDJYlDLn0jZYdS\n"
+ "3j7hMrhzAwHzwUgTrruHaTZ2tShxbfvUAGuuOroSVB4+XzS22RKdgh7g1cv3scWI\n"
+ "62M2vfV8iBpehD5xhmqfu2Z9ChNTR32HLHdFdsMFuS+t0Zktszk1qE9AClFa7ttr\n"
+ "VKgOyEmjgXlhX/Qld4zgCvxvI/jMPbEKrU2ZFeRV160vGaraAVjF0Oxe9TFH9fLZ\n"
+ "E+ERghmfdzzbNOXikgExrsveALNRsbTyIhKmEDRGMN/y12htghHvBamwGDt/gj9q\n"
+ "3fECAwEAAaOCAdcwggHTMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRpEvfg\n"
+ "7JNElRJVV/EyIyMEUeT9ajAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNV\n"
+ "HQ8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAfBgNVHSMEGDAWgBQlQb5lkuye\n"
+ "IfoJIi/ctatOBUANSDA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8vcGtpLmV4YW1w\n"
+ "bGUuY29tL2NkcC9FeGFtcGxlUm9vdC5jcmwwggEEBgNVHR4BAf8EgfkwgfagajAN\n"
+ "ggtleGFtcGxlLmNvbTAOggwuZXhhbXBsZS5jb20wCYIHRVhBTVBMRTAeoBwGCisG\n"
+ "AQQBgjcUAgOgDgwMQGV4YW1wbGUuY29tMB6gHAYKKwYBBAGCNxQCA6AODAwuZXhh\n"
+ "bXBsZS5jb22hgYcwF4IVc3ViZG9tYWluLmV4YW1wbGUuY29tMBiCFi5zdWJkb21h\n"
+ "aW4uZXhhbXBsZS5jb20wKKAmBgorBgEEAYI3FAIDoBgMFkBzdWJkb21haW4uZXhh\n"
+ "bXBsZS5jb20wKKAmBgorBgEEAYI3FAIDoBgMFi5zdWJkb21haW4uZXhhbXBsZS5j\n"
+ "b20wDQYJKoZIhvcNAQELBQADggEBAG+gD/ZNEaoukBt/U+7tGOwx5bTAdNChYZEU\n"
+ "Wzt5XoJ0ZgClfgtKk/hmDxPsUEVOzaYEtUrj8V0qJun5YwEzZsZbHAkbkTOcQ2tC\n"
+ "5Jv7czs0IYrSCJIgz7PdNSxTaXyCpipzUvSdZxQj3Bjj+MiYiReEwxhAb6bI/D8h\n"
+ "HXk9T5iHiw9f7P6ZTBvx5keUjAePO8sc0CtefOIH+tyRY1oEHAzMSDzqhpeZDAtM\n"
+ "N93KZkhnx/kmQhqLXhrck9Ubozw++e2iP83bTojTFSodRiKWPtUKOHAlPvIWQURc\n"
+ "YP0dQUsv1tMnNjJgA7COp1+mmqfEUVQqmBwRbJ26ve2iwS/SAgI=\n"
+ "-----END CERTIFICATE-----"
};
const unsigned char example3[] = "@example.com";
diff --git a/tests/x509-verify-duplicate.c b/tests/x509-verify-duplicate.c
index f47a8b2d81..1a2906c817 100644
--- a/tests/x509-verify-duplicate.c
+++ b/tests/x509-verify-duplicate.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <gnutls/x509.h>
@@ -35,141 +35,145 @@
}\
static char cert_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIFLzCCBBegAwIBAgISAycvItcPAZ5yClzMOYYcod4cMA0GCSqGSIb3DQEBCwUA\n"
- "MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD\n"
- "EwJSMzAeFw0yMjA4MjMwNjMzMjlaFw0yMjExMjEwNjMzMjhaMBcxFTATBgNVBAMT\n"
- "DHZvaWRwb2ludC5pbzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANSt\n"
- "AazUWttuU/swyEdt70bpod6knYDJavnFUwicpT4ZfPh84Y2ci9Ay9oTVR8LzVq+o\n"
- "3FIGxXlBFhCtoGA5k5Soao/JB40+gsY+O8LgcNAdejU78m5W4e2qXq4eu/4tFUCw\n"
- "GkcRmqitnc5Jy0bEM+wCZKa42Lx0+WAhNRd/70yWIbzXOrXDnLgGc221JeYJ4it0\n"
- "ajYcf3AZuSHhL3qsTLLzuYorPqWmDy27psUiDDJOIjxVbBCRL+AY40TsQm7CZZhZ\n"
- "8sCkZU7rIvuDv7nf3QpUsF9Zqk9B3F4tTg0vsVuYeL1XCHGwpVeUS83MsZiLP8Zj\n"
- "XGQTM6GiWuOAZ9JJjrsCAwEAAaOCAlgwggJUMA4GA1UdDwEB/wQEAwIFoDAdBgNV\n"
- "HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4E\n"
- "FgQUlw1h3ZwSMKRwkrQ+F4XT3QV/tn8wHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA\n"
- "5h+vnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMu\n"
- "by5sZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8w\n"
- "JwYDVR0RBCAwHoIOKi52b2lkcG9pbnQuaW+CDHZvaWRwb2ludC5pbzBMBgNVHSAE\n"
- "RTBDMAgGBmeBDAECATA3BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRw\n"
- "Oi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2\n"
- "AN+lXqtogk8fbK3uuF9OPlrqzaISpGpejjsSwCBEXCpzAAABgsme4hAAAAQDAEcw\n"
- "RQIhAP6sPHv1PJez/VRMw5xmAAkNU/q9ydq1mTgp7j5uBB9AAiAxm+teG9utZCLP\n"
- "TTTv89FHwFV9omfZzDNAiNgg8METHwB3ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4\n"
- "+U1dJlwlXceEAAABgsme4gUAAAQDAEgwRgIhAPKWJ7WeuBUSnDqabTAVLKU+PpzA\n"
- "bJJ9sehaCKW9AicZAiEAqphpC0lF4/iz2Gkxgd/DEkl9SyyAmR/lEJ7cWDMFhz8w\n"
- "DQYJKoZIhvcNAQELBQADggEBAC0aCscObAdTerzGUrDsuQR5FuCTAmvdk3Isqjw1\n"
- "dG3WuiwW1Z4ecpqCdvDSIv3toQDWVk6g/oa3fHDnY0/tu//vCwdneDdjK3gCM6cj\n"
- "/q0cwj+rGFx/bEVz8PR5kc3DOHGKkmHPN1BNxeLBVpk4jxziXryAVbIvxq9JrGTE\n"
- "SfWbWcMkHHw/QzpUfyD3B/GI8qw6XhdaNNkLDEDNV0sCPCuZYc5FBZzU4ExB2vMG\n"
- "QVnPfxzKWmxHs10uxXyRZJlOrrbTGU8gi0vnOQZK290dtLzEyU2sdkic1ZSn+fCo\n"
- "k++37mNDkiTnIQa3olRqHkypWqGfj8OyqU4XBV2Mmu4UATc=\n"
- "-----END CERTIFICATE-----\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIFLzCCBBegAwIBAgISAycvItcPAZ5yClzMOYYcod4cMA0GCSqGSIb3DQEBCwUA\n"
- "MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD\n"
- "EwJSMzAeFw0yMjA4MjMwNjMzMjlaFw0yMjExMjEwNjMzMjhaMBcxFTATBgNVBAMT\n"
- "DHZvaWRwb2ludC5pbzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANSt\n"
- "AazUWttuU/swyEdt70bpod6knYDJavnFUwicpT4ZfPh84Y2ci9Ay9oTVR8LzVq+o\n"
- "3FIGxXlBFhCtoGA5k5Soao/JB40+gsY+O8LgcNAdejU78m5W4e2qXq4eu/4tFUCw\n"
- "GkcRmqitnc5Jy0bEM+wCZKa42Lx0+WAhNRd/70yWIbzXOrXDnLgGc221JeYJ4it0\n"
- "ajYcf3AZuSHhL3qsTLLzuYorPqWmDy27psUiDDJOIjxVbBCRL+AY40TsQm7CZZhZ\n"
- "8sCkZU7rIvuDv7nf3QpUsF9Zqk9B3F4tTg0vsVuYeL1XCHGwpVeUS83MsZiLP8Zj\n"
- "XGQTM6GiWuOAZ9JJjrsCAwEAAaOCAlgwggJUMA4GA1UdDwEB/wQEAwIFoDAdBgNV\n"
- "HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4E\n"
- "FgQUlw1h3ZwSMKRwkrQ+F4XT3QV/tn8wHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA\n"
- "5h+vnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMu\n"
- "by5sZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8w\n"
- "JwYDVR0RBCAwHoIOKi52b2lkcG9pbnQuaW+CDHZvaWRwb2ludC5pbzBMBgNVHSAE\n"
- "RTBDMAgGBmeBDAECATA3BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRw\n"
- "Oi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2\n"
- "AN+lXqtogk8fbK3uuF9OPlrqzaISpGpejjsSwCBEXCpzAAABgsme4hAAAAQDAEcw\n"
- "RQIhAP6sPHv1PJez/VRMw5xmAAkNU/q9ydq1mTgp7j5uBB9AAiAxm+teG9utZCLP\n"
- "TTTv89FHwFV9omfZzDNAiNgg8METHwB3ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4\n"
- "+U1dJlwlXceEAAABgsme4gUAAAQDAEgwRgIhAPKWJ7WeuBUSnDqabTAVLKU+PpzA\n"
- "bJJ9sehaCKW9AicZAiEAqphpC0lF4/iz2Gkxgd/DEkl9SyyAmR/lEJ7cWDMFhz8w\n"
- "DQYJKoZIhvcNAQELBQADggEBAC0aCscObAdTerzGUrDsuQR5FuCTAmvdk3Isqjw1\n"
- "dG3WuiwW1Z4ecpqCdvDSIv3toQDWVk6g/oa3fHDnY0/tu//vCwdneDdjK3gCM6cj\n"
- "/q0cwj+rGFx/bEVz8PR5kc3DOHGKkmHPN1BNxeLBVpk4jxziXryAVbIvxq9JrGTE\n"
- "SfWbWcMkHHw/QzpUfyD3B/GI8qw6XhdaNNkLDEDNV0sCPCuZYc5FBZzU4ExB2vMG\n"
- "QVnPfxzKWmxHs10uxXyRZJlOrrbTGU8gi0vnOQZK290dtLzEyU2sdkic1ZSn+fCo\n"
- "k++37mNDkiTnIQa3olRqHkypWqGfj8OyqU4XBV2Mmu4UATc=\n"
- "-----END CERTIFICATE-----\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw\n"
- "TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\n"
- "cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw\n"
- "WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg\n"
- "RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
- "AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP\n"
- "R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx\n"
- "sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm\n"
- "NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg\n"
- "Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG\n"
- "/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC\n"
- "AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB\n"
- "Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA\n"
- "FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw\n"
- "AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw\n"
- "Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB\n"
- "gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W\n"
- "PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl\n"
- "ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz\n"
- "CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm\n"
- "lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4\n"
- "avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2\n"
- "yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O\n"
- "yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids\n"
- "hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+\n"
- "HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv\n"
- "MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX\n"
- "nLRbwHOoq7hHwg==\n"
- "-----END CERTIFICATE-----\n"
- "-----BEGIN CERTIFICATE-----\n"
- "MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/\n"
- "MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\n"
- "DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow\n"
- "TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\n"
- "cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB\n"
- "AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC\n"
- "ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL\n"
- "wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D\n"
- "LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK\n"
- "4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5\n"
- "bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y\n"
- "sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ\n"
- "Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4\n"
- "FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc\n"
- "SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql\n"
- "PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND\n"
- "TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw\n"
- "SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1\n"
- "c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx\n"
- "+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB\n"
- "ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu\n"
- "b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E\n"
- "U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu\n"
- "MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC\n"
- "5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW\n"
- "9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG\n"
- "WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O\n"
- "he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC\n"
- "Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIFLzCCBBegAwIBAgISAycvItcPAZ5yClzMOYYcod4cMA0GCSqGSIb3DQEBCwUA\n"
+ "MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD\n"
+ "EwJSMzAeFw0yMjA4MjMwNjMzMjlaFw0yMjExMjEwNjMzMjhaMBcxFTATBgNVBAMT\n"
+ "DHZvaWRwb2ludC5pbzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANSt\n"
+ "AazUWttuU/swyEdt70bpod6knYDJavnFUwicpT4ZfPh84Y2ci9Ay9oTVR8LzVq+o\n"
+ "3FIGxXlBFhCtoGA5k5Soao/JB40+gsY+O8LgcNAdejU78m5W4e2qXq4eu/4tFUCw\n"
+ "GkcRmqitnc5Jy0bEM+wCZKa42Lx0+WAhNRd/70yWIbzXOrXDnLgGc221JeYJ4it0\n"
+ "ajYcf3AZuSHhL3qsTLLzuYorPqWmDy27psUiDDJOIjxVbBCRL+AY40TsQm7CZZhZ\n"
+ "8sCkZU7rIvuDv7nf3QpUsF9Zqk9B3F4tTg0vsVuYeL1XCHGwpVeUS83MsZiLP8Zj\n"
+ "XGQTM6GiWuOAZ9JJjrsCAwEAAaOCAlgwggJUMA4GA1UdDwEB/wQEAwIFoDAdBgNV\n"
+ "HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4E\n"
+ "FgQUlw1h3ZwSMKRwkrQ+F4XT3QV/tn8wHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA\n"
+ "5h+vnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMu\n"
+ "by5sZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8w\n"
+ "JwYDVR0RBCAwHoIOKi52b2lkcG9pbnQuaW+CDHZvaWRwb2ludC5pbzBMBgNVHSAE\n"
+ "RTBDMAgGBmeBDAECATA3BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRw\n"
+ "Oi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2\n"
+ "AN+lXqtogk8fbK3uuF9OPlrqzaISpGpejjsSwCBEXCpzAAABgsme4hAAAAQDAEcw\n"
+ "RQIhAP6sPHv1PJez/VRMw5xmAAkNU/q9ydq1mTgp7j5uBB9AAiAxm+teG9utZCLP\n"
+ "TTTv89FHwFV9omfZzDNAiNgg8METHwB3ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4\n"
+ "+U1dJlwlXceEAAABgsme4gUAAAQDAEgwRgIhAPKWJ7WeuBUSnDqabTAVLKU+PpzA\n"
+ "bJJ9sehaCKW9AicZAiEAqphpC0lF4/iz2Gkxgd/DEkl9SyyAmR/lEJ7cWDMFhz8w\n"
+ "DQYJKoZIhvcNAQELBQADggEBAC0aCscObAdTerzGUrDsuQR5FuCTAmvdk3Isqjw1\n"
+ "dG3WuiwW1Z4ecpqCdvDSIv3toQDWVk6g/oa3fHDnY0/tu//vCwdneDdjK3gCM6cj\n"
+ "/q0cwj+rGFx/bEVz8PR5kc3DOHGKkmHPN1BNxeLBVpk4jxziXryAVbIvxq9JrGTE\n"
+ "SfWbWcMkHHw/QzpUfyD3B/GI8qw6XhdaNNkLDEDNV0sCPCuZYc5FBZzU4ExB2vMG\n"
+ "QVnPfxzKWmxHs10uxXyRZJlOrrbTGU8gi0vnOQZK290dtLzEyU2sdkic1ZSn+fCo\n"
+ "k++37mNDkiTnIQa3olRqHkypWqGfj8OyqU4XBV2Mmu4UATc=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIFLzCCBBegAwIBAgISAycvItcPAZ5yClzMOYYcod4cMA0GCSqGSIb3DQEBCwUA\n"
+ "MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD\n"
+ "EwJSMzAeFw0yMjA4MjMwNjMzMjlaFw0yMjExMjEwNjMzMjhaMBcxFTATBgNVBAMT\n"
+ "DHZvaWRwb2ludC5pbzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANSt\n"
+ "AazUWttuU/swyEdt70bpod6knYDJavnFUwicpT4ZfPh84Y2ci9Ay9oTVR8LzVq+o\n"
+ "3FIGxXlBFhCtoGA5k5Soao/JB40+gsY+O8LgcNAdejU78m5W4e2qXq4eu/4tFUCw\n"
+ "GkcRmqitnc5Jy0bEM+wCZKa42Lx0+WAhNRd/70yWIbzXOrXDnLgGc221JeYJ4it0\n"
+ "ajYcf3AZuSHhL3qsTLLzuYorPqWmDy27psUiDDJOIjxVbBCRL+AY40TsQm7CZZhZ\n"
+ "8sCkZU7rIvuDv7nf3QpUsF9Zqk9B3F4tTg0vsVuYeL1XCHGwpVeUS83MsZiLP8Zj\n"
+ "XGQTM6GiWuOAZ9JJjrsCAwEAAaOCAlgwggJUMA4GA1UdDwEB/wQEAwIFoDAdBgNV\n"
+ "HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4E\n"
+ "FgQUlw1h3ZwSMKRwkrQ+F4XT3QV/tn8wHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA\n"
+ "5h+vnYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMu\n"
+ "by5sZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8w\n"
+ "JwYDVR0RBCAwHoIOKi52b2lkcG9pbnQuaW+CDHZvaWRwb2ludC5pbzBMBgNVHSAE\n"
+ "RTBDMAgGBmeBDAECATA3BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRw\n"
+ "Oi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCCAQUGCisGAQQB1nkCBAIEgfYEgfMA8QB2\n"
+ "AN+lXqtogk8fbK3uuF9OPlrqzaISpGpejjsSwCBEXCpzAAABgsme4hAAAAQDAEcw\n"
+ "RQIhAP6sPHv1PJez/VRMw5xmAAkNU/q9ydq1mTgp7j5uBB9AAiAxm+teG9utZCLP\n"
+ "TTTv89FHwFV9omfZzDNAiNgg8METHwB3ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4\n"
+ "+U1dJlwlXceEAAABgsme4gUAAAQDAEgwRgIhAPKWJ7WeuBUSnDqabTAVLKU+PpzA\n"
+ "bJJ9sehaCKW9AicZAiEAqphpC0lF4/iz2Gkxgd/DEkl9SyyAmR/lEJ7cWDMFhz8w\n"
+ "DQYJKoZIhvcNAQELBQADggEBAC0aCscObAdTerzGUrDsuQR5FuCTAmvdk3Isqjw1\n"
+ "dG3WuiwW1Z4ecpqCdvDSIv3toQDWVk6g/oa3fHDnY0/tu//vCwdneDdjK3gCM6cj\n"
+ "/q0cwj+rGFx/bEVz8PR5kc3DOHGKkmHPN1BNxeLBVpk4jxziXryAVbIvxq9JrGTE\n"
+ "SfWbWcMkHHw/QzpUfyD3B/GI8qw6XhdaNNkLDEDNV0sCPCuZYc5FBZzU4ExB2vMG\n"
+ "QVnPfxzKWmxHs10uxXyRZJlOrrbTGU8gi0vnOQZK290dtLzEyU2sdkic1ZSn+fCo\n"
+ "k++37mNDkiTnIQa3olRqHkypWqGfj8OyqU4XBV2Mmu4UATc=\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw\n"
+ "TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\n"
+ "cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw\n"
+ "WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg\n"
+ "RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK\n"
+ "AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP\n"
+ "R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx\n"
+ "sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm\n"
+ "NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg\n"
+ "Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG\n"
+ "/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC\n"
+ "AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB\n"
+ "Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA\n"
+ "FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw\n"
+ "AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw\n"
+ "Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB\n"
+ "gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W\n"
+ "PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl\n"
+ "ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz\n"
+ "CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm\n"
+ "lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4\n"
+ "avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2\n"
+ "yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O\n"
+ "yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids\n"
+ "hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+\n"
+ "HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv\n"
+ "MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX\n"
+ "nLRbwHOoq7hHwg==\n"
+ "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/\n"
+ "MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT\n"
+ "DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow\n"
+ "TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh\n"
+ "cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB\n"
+ "AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC\n"
+ "ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL\n"
+ "wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D\n"
+ "LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK\n"
+ "4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5\n"
+ "bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y\n"
+ "sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ\n"
+ "Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4\n"
+ "FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc\n"
+ "SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql\n"
+ "PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND\n"
+ "TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw\n"
+ "SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1\n"
+ "c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx\n"
+ "+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB\n"
+ "ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu\n"
+ "b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E\n"
+ "U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu\n"
+ "MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC\n"
+ "5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW\n"
+ "9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG\n"
+ "WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O\n"
+ "he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC\n"
+ "Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5\n"
+ "-----END CERTIFICATE-----\n";
void doit(void)
{
int r;
unsigned i, certs_size, out;
- unsigned flags = GNUTLS_VERIFY_DO_NOT_ALLOW_SAME | GNUTLS_VERIFY_DISABLE_TIME_CHECKS;
+ unsigned flags =
+ GNUTLS_VERIFY_DO_NOT_ALLOW_SAME | GNUTLS_VERIFY_DISABLE_TIME_CHECKS;
gnutls_x509_trust_list_t tl;
gnutls_x509_crt_t *certs = NULL;
- gnutls_datum_t cert = { (unsigned char *)cert_pem, sizeof(cert_pem) - 1 };
+ gnutls_datum_t cert =
+ { (unsigned char *)cert_pem, sizeof(cert_pem) - 1 };
- CHECK(gnutls_x509_crt_list_import2(&certs, &certs_size, &cert, GNUTLS_X509_FMT_PEM, 0));
+ CHECK(gnutls_x509_crt_list_import2
+ (&certs, &certs_size, &cert, GNUTLS_X509_FMT_PEM, 0));
CHECK(gnutls_x509_trust_list_init(&tl, 0));
CHECK(gnutls_x509_trust_list_add_cas(tl, certs + certs_size - 1, 1, 0));
- CHECK(gnutls_x509_trust_list_verify_crt(tl, certs, certs_size, flags, &out, NULL));
+ CHECK(gnutls_x509_trust_list_verify_crt
+ (tl, certs, certs_size, flags, &out, NULL));
if (out)
fail("Not verified\n");
diff --git a/tests/x509-verify-with-crl.c b/tests/x509-verify-with-crl.c
index f0ecded4c8..3d9884b768 100644
--- a/tests/x509-verify-with-crl.c
+++ b/tests/x509-verify-with-crl.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -36,88 +36,82 @@
* In that test server2 is included in the CRL.
*/
-
static const char _ca[] = {
/* CRL */
- "-----BEGIN CERTIFICATE-----\n"
- "MIIBfTCCASSgAwIBAgIBATAKBggqhkjOPQQDAjAkMQ8wDQYDVQQDEwZWUE4gQ0Ex\n"
- "ETAPBgNVBAoTCEJpZyBDb3JwMCIYDzIwMTQxMTMwMjA1NDQ1WhgPOTk5OTEyMzEy\n"
- "MzU5NTlaMCQxDzANBgNVBAMTBlZQTiBDQTERMA8GA1UEChMIQmlnIENvcnAwWTAT\n"
- "BgcqhkjOPQIBBggqhkjOPQMBBwNCAASvDJl26Hzb47Xi+Wx6uJY0NUD+Bij+PJ9l\n"
- "mmS2wbLaLNyga5aRvf+s7HKq9o+7+CE6E0t8fuCe0j8nLN64iAZlo0MwQTAPBgNV\n"
- "HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFFJATAcyatKW\n"
- "ionSww8obkh7JKCYMAoGCCqGSM49BAMCA0cAMEQCIDPmWRvQAUbnSrnh79DM46/l\n"
- "My88UjFi2+ZhmIwufLP7AiBB9eeXKUmtWXuXAar0vHNH6edgEcggHgfOOHekukOr\n"
- "hw==\n"
- "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIBfTCCASSgAwIBAgIBATAKBggqhkjOPQQDAjAkMQ8wDQYDVQQDEwZWUE4gQ0Ex\n"
+ "ETAPBgNVBAoTCEJpZyBDb3JwMCIYDzIwMTQxMTMwMjA1NDQ1WhgPOTk5OTEyMzEy\n"
+ "MzU5NTlaMCQxDzANBgNVBAMTBlZQTiBDQTERMA8GA1UEChMIQmlnIENvcnAwWTAT\n"
+ "BgcqhkjOPQIBBggqhkjOPQMBBwNCAASvDJl26Hzb47Xi+Wx6uJY0NUD+Bij+PJ9l\n"
+ "mmS2wbLaLNyga5aRvf+s7HKq9o+7+CE6E0t8fuCe0j8nLN64iAZlo0MwQTAPBgNV\n"
+ "HRMBAf8EBTADAQH/MA8GA1UdDwEB/wQFAwMHBgAwHQYDVR0OBBYEFFJATAcyatKW\n"
+ "ionSww8obkh7JKCYMAoGCCqGSM49BAMCA0cAMEQCIDPmWRvQAUbnSrnh79DM46/l\n"
+ "My88UjFi2+ZhmIwufLP7AiBB9eeXKUmtWXuXAar0vHNH6edgEcggHgfOOHekukOr\n"
+ "hw==\n" "-----END CERTIFICATE-----\n"
};
-gnutls_datum_t ca = {(void*)_ca, sizeof(_ca)-1};
+gnutls_datum_t ca = { (void *)_ca, sizeof(_ca) - 1 };
static const char _server1[] = {
- "-----BEGIN CERTIFICATE-----\n"
- "MIIBvzCCAWWgAwIBAgIMVHuEbjXPSvP+nSDXMAoGCCqGSM49BAMCMCQxDzANBgNV\n"
- "BAMTBlZQTiBDQTERMA8GA1UEChMIQmlnIENvcnAwIhgPMjAxNDExMzAyMDU2MTRa\n"
- "GA85OTk5MTIzMTIzNTk1OVowJzERMA8GA1UEAwwIc2VydmVyMQ0xEjAQBgNVBAoT\n"
- "CU15Q29tcGFueTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLViTN5K7scNWH0u\n"
- "wLvlDj6nJdZ76sP+oZoev+gYMyV42JqG/60S2VizrAIcmQA9QFfGlZz2GpE641Gd\n"
- "HiH09dajdjB0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYD\n"
- "VR0PAQH/BAUDAweAADAdBgNVHQ4EFgQUNWE8WZGVgvhyw/56sMSCuyXhBjMwHwYD\n"
- "VR0jBBgwFoAUUkBMBzJq0paKidLDDyhuSHskoJgwCgYIKoZIzj0EAwIDSAAwRQIh\n"
- "AKk+TA7XgvPwo6oDcAWUYgQbnKWEh5xO55nvNf6TVgMrAiAEI+w6IVJbXgtmskIJ\n"
- "gedi4kA4sDjRKtTzfxlIdaZhuA==\n"
- "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIBvzCCAWWgAwIBAgIMVHuEbjXPSvP+nSDXMAoGCCqGSM49BAMCMCQxDzANBgNV\n"
+ "BAMTBlZQTiBDQTERMA8GA1UEChMIQmlnIENvcnAwIhgPMjAxNDExMzAyMDU2MTRa\n"
+ "GA85OTk5MTIzMTIzNTk1OVowJzERMA8GA1UEAwwIc2VydmVyMQ0xEjAQBgNVBAoT\n"
+ "CU15Q29tcGFueTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLViTN5K7scNWH0u\n"
+ "wLvlDj6nJdZ76sP+oZoev+gYMyV42JqG/60S2VizrAIcmQA9QFfGlZz2GpE641Gd\n"
+ "HiH09dajdjB0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYD\n"
+ "VR0PAQH/BAUDAweAADAdBgNVHQ4EFgQUNWE8WZGVgvhyw/56sMSCuyXhBjMwHwYD\n"
+ "VR0jBBgwFoAUUkBMBzJq0paKidLDDyhuSHskoJgwCgYIKoZIzj0EAwIDSAAwRQIh\n"
+ "AKk+TA7XgvPwo6oDcAWUYgQbnKWEh5xO55nvNf6TVgMrAiAEI+w6IVJbXgtmskIJ\n"
+ "gedi4kA4sDjRKtTzfxlIdaZhuA==\n" "-----END CERTIFICATE-----\n"
};
-gnutls_datum_t server1 = {(void*)_server1, sizeof(_server1)-1};
+gnutls_datum_t server1 = { (void *)_server1, sizeof(_server1) - 1 };
static const char _server2[] = {
- "-----BEGIN CERTIFICATE-----\n"
- "MIIBvzCCAWWgAwIBAgIMVHuEfQn9F35YK44BMAoGCCqGSM49BAMCMCQxDzANBgNV\n"
- "BAMTBlZQTiBDQTERMA8GA1UEChMIQmlnIENvcnAwIhgPMjAxNDExMzAyMDU2Mjla\n"
- "GA85OTk5MTIzMTIzNTk1OVowJzERMA8GA1UEAwwIc2VydmVyMg0xEjAQBgNVBAoT\n"
- "CU15Q29tcGFueTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBfy/l8rtthQYHRA\n"
- "sWoY3E7HHM2eP0RyNrusfh6Okl4TN8D1jlmx3yc+9h4RqIvC6dHhSS/mio8fjZpU\n"
- "aXzv7dujdjB0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYD\n"
- "VR0PAQH/BAUDAweAADAdBgNVHQ4EFgQUee5izg6T1FxiNtJbWBz90d20GVYwHwYD\n"
- "VR0jBBgwFoAUUkBMBzJq0paKidLDDyhuSHskoJgwCgYIKoZIzj0EAwIDSAAwRQIh\n"
- "AKMgl86d4ENyrpqkXR7pN8FN/Pd1Hji6Usnm536zuFjIAiA9RRxtPQXjrk3Sx8QR\n"
- "c0NrnBYRCM24FXMHSWOL1YUb7w==\n"
- "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIBvzCCAWWgAwIBAgIMVHuEfQn9F35YK44BMAoGCCqGSM49BAMCMCQxDzANBgNV\n"
+ "BAMTBlZQTiBDQTERMA8GA1UEChMIQmlnIENvcnAwIhgPMjAxNDExMzAyMDU2Mjla\n"
+ "GA85OTk5MTIzMTIzNTk1OVowJzERMA8GA1UEAwwIc2VydmVyMg0xEjAQBgNVBAoT\n"
+ "CU15Q29tcGFueTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABBfy/l8rtthQYHRA\n"
+ "sWoY3E7HHM2eP0RyNrusfh6Okl4TN8D1jlmx3yc+9h4RqIvC6dHhSS/mio8fjZpU\n"
+ "aXzv7dujdjB0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYD\n"
+ "VR0PAQH/BAUDAweAADAdBgNVHQ4EFgQUee5izg6T1FxiNtJbWBz90d20GVYwHwYD\n"
+ "VR0jBBgwFoAUUkBMBzJq0paKidLDDyhuSHskoJgwCgYIKoZIzj0EAwIDSAAwRQIh\n"
+ "AKMgl86d4ENyrpqkXR7pN8FN/Pd1Hji6Usnm536zuFjIAiA9RRxtPQXjrk3Sx8QR\n"
+ "c0NrnBYRCM24FXMHSWOL1YUb7w==\n" "-----END CERTIFICATE-----\n"
};
-gnutls_datum_t server2 = {(void*)_server2, sizeof(_server2)-1};
+gnutls_datum_t server2 = { (void *)_server2, sizeof(_server2) - 1 };
static const char _server3[] = {
- "-----BEGIN CERTIFICATE-----\n"
- "MIIBvjCCAWWgAwIBAgIMVHuEhyM4BCuvifY3MAoGCCqGSM49BAMCMCQxDzANBgNV\n"
- "BAMTBlZQTiBDQTERMA8GA1UEChMIQmlnIENvcnAwIhgPMjAxNDExMzAyMDU2Mzla\n"
- "GA85OTk5MTIzMTIzNTk1OVowJzERMA8GA1UEAwwIc2VydmVyMw0xEjAQBgNVBAoT\n"
- "CU15Q29tcGFueTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLKjVDVHPM7sK8Gr\n"
- "+eUTmT1sQSVhUr4znBEkiccPlGTN30m5KoaM1cflRxb+p/pYk6xFfAZW/33XmWON\n"
- "IjwygACjdjB0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYD\n"
- "VR0PAQH/BAUDAweAADAdBgNVHQ4EFgQU3TmVO7uyA1t4+tbbmTbKoXiHP1QwHwYD\n"
- "VR0jBBgwFoAUUkBMBzJq0paKidLDDyhuSHskoJgwCgYIKoZIzj0EAwIDRwAwRAIg\n"
- "RI1GVQ/ol9Es0niE3Ex/X+2a5tEVBOECLO3+Vr6rPs0CIHSxEksboGo8qJzESmjY\n"
- "If7aJsOFgpBmGKWGf+dVDjjg\n"
- "-----END CERTIFICATE-----\n"
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIBvjCCAWWgAwIBAgIMVHuEhyM4BCuvifY3MAoGCCqGSM49BAMCMCQxDzANBgNV\n"
+ "BAMTBlZQTiBDQTERMA8GA1UEChMIQmlnIENvcnAwIhgPMjAxNDExMzAyMDU2Mzla\n"
+ "GA85OTk5MTIzMTIzNTk1OVowJzERMA8GA1UEAwwIc2VydmVyMw0xEjAQBgNVBAoT\n"
+ "CU15Q29tcGFueTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABLKjVDVHPM7sK8Gr\n"
+ "+eUTmT1sQSVhUr4znBEkiccPlGTN30m5KoaM1cflRxb+p/pYk6xFfAZW/33XmWON\n"
+ "IjwygACjdjB0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDwYD\n"
+ "VR0PAQH/BAUDAweAADAdBgNVHQ4EFgQU3TmVO7uyA1t4+tbbmTbKoXiHP1QwHwYD\n"
+ "VR0jBBgwFoAUUkBMBzJq0paKidLDDyhuSHskoJgwCgYIKoZIzj0EAwIDRwAwRAIg\n"
+ "RI1GVQ/ol9Es0niE3Ex/X+2a5tEVBOECLO3+Vr6rPs0CIHSxEksboGo8qJzESmjY\n"
+ "If7aJsOFgpBmGKWGf+dVDjjg\n" "-----END CERTIFICATE-----\n"
};
-gnutls_datum_t server3 = {(void*)_server3, sizeof(_server3)-1};
+gnutls_datum_t server3 = { (void *)_server3, sizeof(_server3) - 1 };
static const char _crl[] = {
- "-----BEGIN X509 CRL-----\n"
- "MIIBJTCBzAIBATAKBggqhkjOPQQDAjAkMQ8wDQYDVQQDEwZWUE4gQ0ExETAPBgNV\n"
- "BAoTCEJpZyBDb3JwGA8yMDE0MTEzMDIxMTkwNFoYDzk5OTkxMjMxMjM1OTU5WjBC\n"
- "MB8CDFR7hnMaGdABn3iWABgPMjAxNDExMzAyMTE5MDRaMB8CDFR7hH0J/Rd+WCuO\n"
- "ARgPMjAxNDExMzAyMTE5MDRaoC8wLTAfBgNVHSMEGDAWgBRSQEwHMmrSloqJ0sMP\n"
- "KG5IeySgmDAKBgNVHRQEAwIBATAKBggqhkjOPQQDAgNIADBFAiEAt3Ks2JNhxuuT\n"
- "nzok7rYbi+p6dWiPj7mWNawba2+xjYwCIGpTiTU1ssn5Fa70j7S+PjmnN4fuyjXh\n"
- "AuXYcsNpjsPz\n"
- "-----END X509 CRL-----\n"
+ "-----BEGIN X509 CRL-----\n"
+ "MIIBJTCBzAIBATAKBggqhkjOPQQDAjAkMQ8wDQYDVQQDEwZWUE4gQ0ExETAPBgNV\n"
+ "BAoTCEJpZyBDb3JwGA8yMDE0MTEzMDIxMTkwNFoYDzk5OTkxMjMxMjM1OTU5WjBC\n"
+ "MB8CDFR7hnMaGdABn3iWABgPMjAxNDExMzAyMTE5MDRaMB8CDFR7hH0J/Rd+WCuO\n"
+ "ARgPMjAxNDExMzAyMTE5MDRaoC8wLTAfBgNVHSMEGDAWgBRSQEwHMmrSloqJ0sMP\n"
+ "KG5IeySgmDAKBgNVHRQEAwIBATAKBggqhkjOPQQDAgNIADBFAiEAt3Ks2JNhxuuT\n"
+ "nzok7rYbi+p6dWiPj7mWNawba2+xjYwCIGpTiTU1ssn5Fa70j7S+PjmnN4fuyjXh\n"
+ "AuXYcsNpjsPz\n" "-----END X509 CRL-----\n"
};
-gnutls_datum_t crl = {(void*)_crl, sizeof(_crl)-1};
+gnutls_datum_t crl = { (void *)_crl, sizeof(_crl) - 1 };
/* GnuTLS internally calls time() to find out the current time when
verifying certificates. To avoid a time bomb, we hard code the
@@ -187,34 +181,47 @@ void doit(void)
}
ret =
- gnutls_x509_trust_list_add_trust_mem(tl, &ca, NULL, GNUTLS_X509_FMT_PEM, 0, 0);
+ gnutls_x509_trust_list_add_trust_mem(tl, &ca, NULL,
+ GNUTLS_X509_FMT_PEM, 0, 0);
if (ret != 1) {
- fail("error in %d: (%d) %s\n", __LINE__, ret, gnutls_strerror(ret));
+ fail("error in %d: (%d) %s\n", __LINE__, ret,
+ gnutls_strerror(ret));
exit(1);
}
ret =
- gnutls_x509_trust_list_add_trust_mem(tl, NULL, &crl, GNUTLS_X509_FMT_PEM, 0, 0);
+ gnutls_x509_trust_list_add_trust_mem(tl, NULL, &crl,
+ GNUTLS_X509_FMT_PEM, 0, 0);
if (ret < 0) {
- fail("error in %d: (%d) %s\n", __LINE__, ret, gnutls_strerror(ret));
+ fail("error in %d: (%d) %s\n", __LINE__, ret,
+ gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_x509_trust_list_verify_crt2(tl, &s1, 1, NULL, 0, 0, &status, NULL);
+ ret =
+ gnutls_x509_trust_list_verify_crt2(tl, &s1, 1, NULL, 0, 0, &status,
+ NULL);
if (ret < 0 || status != 0) {
- fail("error in %d: (status: 0x%x) %s\n", __LINE__, status, gnutls_strerror(ret));
+ fail("error in %d: (status: 0x%x) %s\n", __LINE__, status,
+ gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_x509_trust_list_verify_crt2(tl, &s2, 1, NULL, 0, 0, &status, NULL);
- if (ret < 0 || status != (GNUTLS_CERT_INVALID|GNUTLS_CERT_REVOKED)) {
- fail("error in %d: (status: 0x%x) %s\n", __LINE__, status, gnutls_strerror(ret));
+ ret =
+ gnutls_x509_trust_list_verify_crt2(tl, &s2, 1, NULL, 0, 0, &status,
+ NULL);
+ if (ret < 0 || status != (GNUTLS_CERT_INVALID | GNUTLS_CERT_REVOKED)) {
+ fail("error in %d: (status: 0x%x) %s\n", __LINE__, status,
+ gnutls_strerror(ret));
exit(1);
}
- ret = gnutls_x509_trust_list_verify_crt2(tl, &s3, 1, NULL, 0, 0, &status, NULL);
+ ret =
+ gnutls_x509_trust_list_verify_crt2(tl, &s3, 1, NULL, 0, 0, &status,
+ NULL);
if (ret < 0 || status != 0) {
- fail("error in %d: (status: 0x%x) %s\n", __LINE__, status, gnutls_strerror(ret));
+ fail("error in %d: (status: 0x%x) %s\n", __LINE__, status,
+ gnutls_strerror(ret));
exit(1);
}
diff --git a/tests/x509_altname.c b/tests/x509_altname.c
index 701f48cecc..b8af3c2df0 100644
--- a/tests/x509_altname.c
+++ b/tests/x509_altname.c
@@ -19,7 +19,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+# include "config.h"
#endif
#include <stdio.h>
@@ -63,7 +63,7 @@ static char pem[] =
void doit(void)
{
int ret;
- gnutls_datum_t derCert = { (void *) pem, sizeof(pem) };
+ gnutls_datum_t derCert = { (void *)pem, sizeof(pem) };
gnutls_x509_crt_t cert;
size_t data_len = MAX_DATA_SIZE;
char data[MAX_DATA_SIZE];
@@ -97,7 +97,8 @@ void doit(void)
// TODO: print out / check results
if (GNUTLS_SAN_URI == ret) {
if (strcmp(data, "http://ca.su.se") != 0) {
- fail("unexpected issuer GNUTLS_SAN_URI: %s\n", data);
+ fail("unexpected issuer GNUTLS_SAN_URI: %s\n",
+ data);
}
} else if (GNUTLS_SAN_RFC822NAME == ret) {
if (strcmp(data, "ca@su.se") != 0) {
@@ -110,8 +111,7 @@ void doit(void)
}
if (alt_name_count != 2) {
- fail("unexpected number of alt names: %i\n",
- alt_name_count);
+ fail("unexpected number of alt names: %i\n", alt_name_count);
}
if (debug)
diff --git a/tests/x509cert-ct.c b/tests/x509cert-ct.c
index 67a9e074f0..559a58366f 100644
--- a/tests/x509cert-ct.c
+++ b/tests/x509cert-ct.c
@@ -22,7 +22,7 @@
/* Parts copied from other tests */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -38,46 +38,45 @@
#include "utils.h"
static char pem[] =
-"-----BEGIN CERTIFICATE-----\n"
-"MIIG+jCCBeKgAwIBAgIQPurql+NcbKQ/8rR9djN5DDANBgkqhkiG9w0BAQsFADCB\n"
-"hDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8w\n"
-"HQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMTUwMwYDVQQDEyxTeW1hbnRl\n"
-"YyBDbGFzcyAzIFNlY3VyZSBTZXJ2ZXIgU0hBMjU2IFNTTCBDQTAeFw0xNzAzMjAw\n"
-"MDAwMDBaFw0yMDAzMjQyMzU5NTlaMHMxCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhO\n"
-"ZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxJzAlBgNVBAoMHkFtZXJpY2FuIENp\n"
-"dmlsIExpYmVydGllcyBVbmlvbjEVMBMGA1UEAwwMd3d3LmFjbHUub3JnMIIBIjAN\n"
-"BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAui9XzdLmI2JH+05y4WAV7jHn2Vyk\n"
-"k+92pm/mdQcfJDyNR6gotaLBvBy9n9SeDj03eGlYUKZ1lgBeHhM17FMWuWoazETl\n"
-"EU2Iq1ugHn3V+Rr2IkQ8f00RcNXRlYCQOiL0WYrrXPHZUNh1aQ4kwFaFGT0iNsKS\n"
-"kGwf56b1goJujqwtLIBzRdHOLzWGCq1Kn/VeDTi2QQyTVQLWsDZzZApUXMyoc1xv\n"
-"go7r1lvHWbJ04up0YwXssC67lw4SKK+/2lZF0Fu0baooHQOlQ5jk0DQhQ6Hsgp/t\n"
-"UYhrv56cVf9MWrBEbVBg79yiyWb+rrXhk9KeMbFFsxNEWiA5TREejEhVXwIDAQAB\n"
-"o4IDdjCCA3IwMgYDVR0RBCswKYIPYWN0aW9uLmFjbHUub3Jnggx3d3cuYWNsdS5v\n"
-"cmeCCGFjbHUub3JnMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgWgMGEGA1UdIARa\n"
-"MFgwVgYGZ4EMAQICMEwwIwYIKwYBBQUHAgEWF2h0dHBzOi8vZC5zeW1jYi5jb20v\n"
-"Y3BzMCUGCCsGAQUFBwICMBkMF2h0dHBzOi8vZC5zeW1jYi5jb20vcnBhMCsGA1Ud\n"
-"HwQkMCIwIKAeoByGGmh0dHA6Ly9zZy5zeW1jYi5jb20vc2cuY3JsMB0GA1UdJQQW\n"
-"MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTbYiD7fQKJfNI7b8fk\n"
-"MmwFUh2tsTBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6Ly9zZy5z\n"
-"eW1jZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly9zZy5zeW1jYi5jb20vc2cuY3J0\n"
-"MIIB9gYKKwYBBAHWeQIEAgSCAeYEggHiAeAAdQDd6x0reg1PpiCLga2BaHB+Lo6d\n"
-"AdVciI09EcTNtuy+zAAAAVrspLZKAAAEAwBGMEQCIEuVHq0xyXfN8XP0Ly8eTEJB\n"
-"3XMAKhaercn0EqjtgNUPAiBN+/pUJ9EwF4yh2hRU1U3KkdzTI+KDerLZCl004ADF\n"
-"cgB3AKS5CZC0GFgUh7sTosxncAo8NZgE+RvfuON3zQ7IDdwQAAABWuyktugAAAQD\n"
-"AEgwRgIhAPoMU/iz0Ne4vgM4cQol7zLVS8xEc18natc9EgLpOqvvAiEAtyt6nMg7\n"
-"18/axecg1fk2dcDKCP8EpEJWnabnDRwMb00AdgDuS723dc5guuFCaR+r4Z5mow9+\n"
-"X7By2IMAxHuJeqj9ywAAAVrspLadAAAEAwBHMEUCIH8pZN5die2lOt6i2NS57xxd\n"
-"uo12mGZ4Xt6cPARVZCipAiEAxOGXK63gCml0jZnlBAN/41YMCNF0cCl9rMIRmEOe\n"
-"ffYAdgC8eOHfxfY8aEZJM02hD6FfCXlpIAnAgbTz9pF/Ptm4pQAAAVrspLdAAAAE\n"
-"AwBHMEUCIDtHn+q93n/mGGzdFZb9PImevE3t8yi4FpEKQh3fN+HdAiEA618tN/lR\n"
-"9m8dh0BVfHAJ9o3CAT53sWjO37sFhHPNOT4wDQYJKoZIhvcNAQELBQADggEBALEV\n"
-"pKCM+njCWn74ThjbBEH23rWDYNU3Dl4O5J1U0wJdp4uTvZQbTHlvuAYnQr2WUBX5\n"
-"OOvZdVLKDZJqZ/KJ2TLjBUQGWHylu6kE2PWuOTrJ6eC2UnR8zj0RavELHXuGUmQt\n"
-"p5UESDjGI6IUDfI6IdxIKydnIStQLuKlaGsz3bsD1yc8XfCNjkmxf3DfC2qnnO6q\n"
-"0i2o1SkjCesCqrgPQuVM95vF5I+dRcrk1nHOLCgDLYeoOSFpkPzk5EF7gDrfuLHn\n"
-"a7MqZSlOcbf6XcGmsOPH0SCYLyNiJwuBX2W3fw2rP9adpWniGK5kyIEU6Nrkgc31\n"
-"ESMyYNL3A9igh1jySzg=\n"
-"-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIG+jCCBeKgAwIBAgIQPurql+NcbKQ/8rR9djN5DDANBgkqhkiG9w0BAQsFADCB\n"
+ "hDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8w\n"
+ "HQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMTUwMwYDVQQDEyxTeW1hbnRl\n"
+ "YyBDbGFzcyAzIFNlY3VyZSBTZXJ2ZXIgU0hBMjU2IFNTTCBDQTAeFw0xNzAzMjAw\n"
+ "MDAwMDBaFw0yMDAzMjQyMzU5NTlaMHMxCzAJBgNVBAYTAlVTMREwDwYDVQQIDAhO\n"
+ "ZXcgWW9yazERMA8GA1UEBwwITmV3IFlvcmsxJzAlBgNVBAoMHkFtZXJpY2FuIENp\n"
+ "dmlsIExpYmVydGllcyBVbmlvbjEVMBMGA1UEAwwMd3d3LmFjbHUub3JnMIIBIjAN\n"
+ "BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAui9XzdLmI2JH+05y4WAV7jHn2Vyk\n"
+ "k+92pm/mdQcfJDyNR6gotaLBvBy9n9SeDj03eGlYUKZ1lgBeHhM17FMWuWoazETl\n"
+ "EU2Iq1ugHn3V+Rr2IkQ8f00RcNXRlYCQOiL0WYrrXPHZUNh1aQ4kwFaFGT0iNsKS\n"
+ "kGwf56b1goJujqwtLIBzRdHOLzWGCq1Kn/VeDTi2QQyTVQLWsDZzZApUXMyoc1xv\n"
+ "go7r1lvHWbJ04up0YwXssC67lw4SKK+/2lZF0Fu0baooHQOlQ5jk0DQhQ6Hsgp/t\n"
+ "UYhrv56cVf9MWrBEbVBg79yiyWb+rrXhk9KeMbFFsxNEWiA5TREejEhVXwIDAQAB\n"
+ "o4IDdjCCA3IwMgYDVR0RBCswKYIPYWN0aW9uLmFjbHUub3Jnggx3d3cuYWNsdS5v\n"
+ "cmeCCGFjbHUub3JnMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgWgMGEGA1UdIARa\n"
+ "MFgwVgYGZ4EMAQICMEwwIwYIKwYBBQUHAgEWF2h0dHBzOi8vZC5zeW1jYi5jb20v\n"
+ "Y3BzMCUGCCsGAQUFBwICMBkMF2h0dHBzOi8vZC5zeW1jYi5jb20vcnBhMCsGA1Ud\n"
+ "HwQkMCIwIKAeoByGGmh0dHA6Ly9zZy5zeW1jYi5jb20vc2cuY3JsMB0GA1UdJQQW\n"
+ "MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAfBgNVHSMEGDAWgBTbYiD7fQKJfNI7b8fk\n"
+ "MmwFUh2tsTBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6Ly9zZy5z\n"
+ "eW1jZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly9zZy5zeW1jYi5jb20vc2cuY3J0\n"
+ "MIIB9gYKKwYBBAHWeQIEAgSCAeYEggHiAeAAdQDd6x0reg1PpiCLga2BaHB+Lo6d\n"
+ "AdVciI09EcTNtuy+zAAAAVrspLZKAAAEAwBGMEQCIEuVHq0xyXfN8XP0Ly8eTEJB\n"
+ "3XMAKhaercn0EqjtgNUPAiBN+/pUJ9EwF4yh2hRU1U3KkdzTI+KDerLZCl004ADF\n"
+ "cgB3AKS5CZC0GFgUh7sTosxncAo8NZgE+RvfuON3zQ7IDdwQAAABWuyktugAAAQD\n"
+ "AEgwRgIhAPoMU/iz0Ne4vgM4cQol7zLVS8xEc18natc9EgLpOqvvAiEAtyt6nMg7\n"
+ "18/axecg1fk2dcDKCP8EpEJWnabnDRwMb00AdgDuS723dc5guuFCaR+r4Z5mow9+\n"
+ "X7By2IMAxHuJeqj9ywAAAVrspLadAAAEAwBHMEUCIH8pZN5die2lOt6i2NS57xxd\n"
+ "uo12mGZ4Xt6cPARVZCipAiEAxOGXK63gCml0jZnlBAN/41YMCNF0cCl9rMIRmEOe\n"
+ "ffYAdgC8eOHfxfY8aEZJM02hD6FfCXlpIAnAgbTz9pF/Ptm4pQAAAVrspLdAAAAE\n"
+ "AwBHMEUCIDtHn+q93n/mGGzdFZb9PImevE3t8yi4FpEKQh3fN+HdAiEA618tN/lR\n"
+ "9m8dh0BVfHAJ9o3CAT53sWjO37sFhHPNOT4wDQYJKoZIhvcNAQELBQADggEBALEV\n"
+ "pKCM+njCWn74ThjbBEH23rWDYNU3Dl4O5J1U0wJdp4uTvZQbTHlvuAYnQr2WUBX5\n"
+ "OOvZdVLKDZJqZ/KJ2TLjBUQGWHylu6kE2PWuOTrJ6eC2UnR8zj0RavELHXuGUmQt\n"
+ "p5UESDjGI6IUDfI6IdxIKydnIStQLuKlaGsz3bsD1yc8XfCNjkmxf3DfC2qnnO6q\n"
+ "0i2o1SkjCesCqrgPQuVM95vF5I+dRcrk1nHOLCgDLYeoOSFpkPzk5EF7gDrfuLHn\n"
+ "a7MqZSlOcbf6XcGmsOPH0SCYLyNiJwuBX2W3fw2rP9adpWniGK5kyIEU6Nrkgc31\n"
+ "ESMyYNL3A9igh1jySzg=\n" "-----END CERTIFICATE-----\n";
static unsigned char ct_extension_der[486] = {
0x04, 0x82, 0x01, 0xe2, 0x01, 0xe0, 0x00, 0x75, 0x00, 0xdd, 0xeb, 0x1d,
@@ -123,7 +122,7 @@ static unsigned char ct_extension_der[486] = {
0x05, 0x84, 0x73, 0xcd, 0x39, 0x3e
};
-static void check_scts(const gnutls_datum_t *ext)
+static void check_scts(const gnutls_datum_t * ext)
{
int ret;
unsigned int i, version;
@@ -140,68 +139,48 @@ static void check_scts(const gnutls_datum_t *ext)
gnutls_datum_t sig;
} expected_data[NUM_EXPECTED_SCTS] = {
{
- .logid =
- "\xdd\xeb\x1d\x2b\x7a\x0d\x4f\xa6\x20\x8b\x81\xad\x81\x68\x70\x7e"
- "\x2e\x8e\x9d\x01\xd5\x5c\x88\x8d\x3d\x11\xc4\xcd\xb6\xec\xbe\xcc",
- .sigalg = GNUTLS_SIGN_ECDSA_SHA256,
- .sig = {
- .size = 70,
- .data = (unsigned char *)
- "\x30\x44\x02\x20\x4b\x95\x1e\xad\x31\xc9\x77\xcd\xf1\x73\xf4\x2f"
- "\x2f\x1e\x4c\x42\x41\xdd\x73\x00\x2a\x16\x9e\xad\xc9\xf4\x12\xa8"
- "\xed\x80\xd5\x0f\x02\x20\x4d\xfb\xfa\x54\x27\xd1\x30\x17\x8c\xa1"
- "\xda\x14\x54\xd5\x4d\xca\x91\xdc\xd3\x23\xe2\x83\x7a\xb2\xd9\x0a"
- "\x5d\x34\xe0\x00\xc5\x72"
- }
- },
+ .logid =
+ "\xdd\xeb\x1d\x2b\x7a\x0d\x4f\xa6\x20\x8b\x81\xad\x81\x68\x70\x7e"
+ "\x2e\x8e\x9d\x01\xd5\x5c\x88\x8d\x3d\x11\xc4\xcd\xb6\xec\xbe\xcc",
+ .sigalg = GNUTLS_SIGN_ECDSA_SHA256,
+ .sig = {
+ .size = 70,
+ .data = (unsigned char *)
+ "\x30\x44\x02\x20\x4b\x95\x1e\xad\x31\xc9\x77\xcd\xf1\x73\xf4\x2f" "\x2f\x1e\x4c\x42\x41\xdd\x73\x00\x2a\x16\x9e\xad\xc9\xf4\x12\xa8" "\xed\x80\xd5\x0f\x02\x20\x4d\xfb\xfa\x54\x27\xd1\x30\x17\x8c\xa1" "\xda\x14\x54\xd5\x4d\xca\x91\xdc\xd3\x23\xe2\x83\x7a\xb2\xd9\x0a" "\x5d\x34\xe0\x00\xc5\x72"}
+ },
{
- .logid =
- "\xa4\xb9\x09\x90\xb4\x18\x58\x14\x87\xbb\x13\xa2\xcc\x67\x70\x0a"
- "\x3c\x35\x98\x04\xf9\x1b\xdf\xb8\xe3\x77\xcd\x0e\xc8\x0d\xdc\x10",
- .sigalg = GNUTLS_SIGN_ECDSA_SHA256,
- .sig = {
- .size = 72,
- .data = (unsigned char *)
- "\x30\x46\x02\x21\x00\xfa\x0c\x53\xf8\xb3\xd0\xd7\xb8\xbe\x03\x38"
- "\x71\x0a\x25\xef\x32\xd5\x4b\xcc\x44\x73\x5f\x27\x6a\xd7\x3d\x12"
- "\x02\xe9\x3a\xab\xef\x02\x21\x00\xb7\x2b\x7a\x9c\xc8\x3b\xd7\xcf"
- "\xda\xc5\xe7\x20\xd5\xf9\x36\x75\xc0\xca\x08\xff\x04\xa4\x42\x56"
- "\x9d\xa6\xe7\x0d\x1c\x0c\x6f\x4d"
- }
- },
+ .logid =
+ "\xa4\xb9\x09\x90\xb4\x18\x58\x14\x87\xbb\x13\xa2\xcc\x67\x70\x0a"
+ "\x3c\x35\x98\x04\xf9\x1b\xdf\xb8\xe3\x77\xcd\x0e\xc8\x0d\xdc\x10",
+ .sigalg = GNUTLS_SIGN_ECDSA_SHA256,
+ .sig = {
+ .size = 72,
+ .data = (unsigned char *)
+ "\x30\x46\x02\x21\x00\xfa\x0c\x53\xf8\xb3\xd0\xd7\xb8\xbe\x03\x38" "\x71\x0a\x25\xef\x32\xd5\x4b\xcc\x44\x73\x5f\x27\x6a\xd7\x3d\x12" "\x02\xe9\x3a\xab\xef\x02\x21\x00\xb7\x2b\x7a\x9c\xc8\x3b\xd7\xcf" "\xda\xc5\xe7\x20\xd5\xf9\x36\x75\xc0\xca\x08\xff\x04\xa4\x42\x56" "\x9d\xa6\xe7\x0d\x1c\x0c\x6f\x4d"}
+ },
{
- .logid =
- "\xee\x4b\xbd\xb7\x75\xce\x60\xba\xe1\x42\x69\x1f\xab\xe1\x9e\x66"
- "\xa3\x0f\x7e\x5f\xb0\x72\xd8\x83\x00\xc4\x7b\x89\x7a\xa8\xfd\xcb",
- .sigalg = GNUTLS_SIGN_ECDSA_SHA256,
- .sig = {
- .size = 71,
- .data = (unsigned char *)
- "\x30\x45\x02\x20\x7f\x29\x64\xde\x5d\x89\xed\xa5\x3a\xde\xa2\xd8"
- "\xd4\xb9\xef\x1c\x5d\xba\x8d\x76\x98\x66\x78\x5e\xde\x9c\x3c\x04"
- "\x55\x64\x28\xa9\x02\x21\x00\xc4\xe1\x97\x2b\xad\xe0\x0a\x69\x74"
- "\x8d\x99\xe5\x04\x03\x7f\xe3\x56\x0c\x08\xd1\x74\x70\x29\x7d\xac"
- "\xc2\x11\x98\x43\x9e\x7d\xf6"
- }
- },
+ .logid =
+ "\xee\x4b\xbd\xb7\x75\xce\x60\xba\xe1\x42\x69\x1f\xab\xe1\x9e\x66"
+ "\xa3\x0f\x7e\x5f\xb0\x72\xd8\x83\x00\xc4\x7b\x89\x7a\xa8\xfd\xcb",
+ .sigalg = GNUTLS_SIGN_ECDSA_SHA256,
+ .sig = {
+ .size = 71,
+ .data = (unsigned char *)
+ "\x30\x45\x02\x20\x7f\x29\x64\xde\x5d\x89\xed\xa5\x3a\xde\xa2\xd8" "\xd4\xb9\xef\x1c\x5d\xba\x8d\x76\x98\x66\x78\x5e\xde\x9c\x3c\x04" "\x55\x64\x28\xa9\x02\x21\x00\xc4\xe1\x97\x2b\xad\xe0\x0a\x69\x74" "\x8d\x99\xe5\x04\x03\x7f\xe3\x56\x0c\x08\xd1\x74\x70\x29\x7d\xac" "\xc2\x11\x98\x43\x9e\x7d\xf6"}
+ },
{
- .logid =
- "\xbc\x78\xe1\xdf\xc5\xf6\x3c\x68\x46\x49\x33\x4d\xa1\x0f\xa1\x5f"
- "\x09\x79\x69\x20\x09\xc0\x81\xb4\xf3\xf6\x91\x7f\x3e\xd9\xb8\xa5",
- .sigalg = GNUTLS_SIGN_ECDSA_SHA256,
- .sig = {
- .size = 71,
- .data = (unsigned char *)
- "\x30\x45\x02\x20\x3b\x47\x9f\xea\xbd\xde\x7f\xe6\x18\x6c\xdd\x15"
- "\x96\xfd\x3c\x89\x9e\xbc\x4d\xed\xf3\x28\xb8\x16\x91\x0a\x42\x1d"
- "\xdf\x37\xe1\xdd\x02\x21\x00\xeb\x5f\x2d\x37\xf9\x51\xf6\x6f\x1d"
- "\x87\x40\x55\x7c\x70\x09\xf6\x8d\xc2\x01\x3e\x77\xb1\x68\xce\xdf"
- "\xbb\x05\x84\x73\xcd\x39\x3e"
- }
- }
+ .logid =
+ "\xbc\x78\xe1\xdf\xc5\xf6\x3c\x68\x46\x49\x33\x4d\xa1\x0f\xa1\x5f"
+ "\x09\x79\x69\x20\x09\xc0\x81\xb4\xf3\xf6\x91\x7f\x3e\xd9\xb8\xa5",
+ .sigalg = GNUTLS_SIGN_ECDSA_SHA256,
+ .sig = {
+ .size = 71,
+ .data = (unsigned char *)
+ "\x30\x45\x02\x20\x3b\x47\x9f\xea\xbd\xde\x7f\xe6\x18\x6c\xdd\x15" "\x96\xfd\x3c\x89\x9e\xbc\x4d\xed\xf3\x28\xb8\x16\x91\x0a\x42\x1d" "\xdf\x37\xe1\xdd\x02\x21\x00\xeb\x5f\x2d\x37\xf9\x51\xf6\x6f\x1d" "\x87\x40\x55\x7c\x70\x09\xf6\x8d\xc2\x01\x3e\x77\xb1\x68\xce\xdf" "\xbb\x05\x84\x73\xcd\x39\x3e"}
+ }
};
- ret = gnutls_x509_ext_ct_scts_init(&scts);
+ ret = gnutls_x509_ext_ct_scts_init(&scts);
if (ret < 0)
fail("gnutls_x509_ext_ct_scts_init");
@@ -219,12 +198,13 @@ static void check_scts(const gnutls_datum_t *ext)
fail("invalid version");
if (gnutls_x509_ct_sct_get(scts, i,
&timestamp,
- &logid,
- &sigalg, &sig) < 0)
+ &logid, &sigalg, &sig) < 0)
fail("gnutls_x509_ct_sct_v1_get");
if (logid.size != EXPECTED_LOGID_SIZE)
fail("Log ID sizes do not match for SCT %d", i);
- if (memcmp(logid.data, expected_data[i].logid, EXPECTED_LOGID_SIZE) != 0)
+ if (memcmp
+ (logid.data, expected_data[i].logid,
+ EXPECTED_LOGID_SIZE) != 0)
fail("Log IDs do not match for SCT %d", i);
if (sigalg != expected_data[i].sigalg)
fail("Signature algorithms for SCT %d do not match", i);
@@ -268,7 +248,7 @@ void doit(void)
size_t oidlen;
char oid[MAX_DATA_SIZE];
gnutls_x509_crt_t cert;
- gnutls_datum_t ext, xpem = { (void *) pem, sizeof(pem) - 1 };
+ gnutls_datum_t ext, xpem = { (void *)pem, sizeof(pem) - 1 };
global_init();
if (debug)
@@ -279,7 +259,7 @@ void doit(void)
if (ret < 0)
fail("gnutls_x509_crt_import");
- for (unsigned i = 0; ; i++) {
+ for (unsigned i = 0;; i++) {
oidlen = MAX_DATA_SIZE;
ret = gnutls_x509_crt_get_extension_oid(cert, i, oid, &oidlen);
@@ -289,7 +269,8 @@ void doit(void)
fail("gnutls_x509_crt_get_extension_oid");
if (strcmp(oid, GNUTLS_X509EXT_OID_CT_SCT_V1) == 0) {
- ret = gnutls_x509_crt_get_extension_data2(cert, i, &ext);
+ ret =
+ gnutls_x509_crt_get_extension_data2(cert, i, &ext);
if (ret < 0)
fail("gnutls_x509_crt_get_extension_data2");
check_scts(&ext);
diff --git a/tests/x509cert-dntypes.c b/tests/x509cert-dntypes.c
index e0d0a06165..291d760455 100644
--- a/tests/x509cert-dntypes.c
+++ b/tests/x509cert-dntypes.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -42,55 +42,54 @@ static void tls_log_func(int level, const char *str)
* cert uses different ASN.1 types, which is uncommon but allowed */
static unsigned char server_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIIDZTCCAc2gAwIBAgIUB7aVTQvtbBpOEtKELkBkLViM0eIwDQYJKoZIhvcNAQEL\n"
- "BQAwEjEQMA4GA1UEAwwHVGVzdCBDQTAeFw0yMDAzMjYxMDE4NTdaFw0yMTAzMjYx\n"
- "MDE4NTdaMBYxFDASBgNVBAMMC1Rlc3QgY2xpZW50MIIBIjANBgkqhkiG9w0BAQEF\n"
- "AAOCAQ8AMIIBCgKCAQEAviqj5S/xe39agbMnq/oPAQmdIhalB17Ewc3AZlD8n+zQ\n"
- "scPDNvnk4gxSeSXePtXmh0OaGcBKbMAkjiyo2gPBmV3ay34LQuk97nJxE2TUAWMm\n"
- "S8yFwP3yoE+GZ5eYjv+HGQxeAP9uHLjho/jHjVGgUOCVv1QjsKyRx8Tuvy9TH3ON\n"
- "DuMPw3Jmnq0OhLy2+SjU0ug5jxfWJvnfeGoFzRgalmWGyoAQsH9bqha/D44QSen+\n"
- "Zbbt/A4uNIILAENYuHXEfvpmBuZPpocOb6h2huGbp6iHZfdZUHso37UmWT6PXh+2\n"
- "dASPaCpAr3bURBhnEsQM43njb8METZewMeoQxwZC0QIDAQABoy8wLTAMBgNVHRMB\n"
- "Af8EAjAAMB0GA1UdDgQWBBSb3h7ZbajS/2RWx2a7hTVSkur0FDANBgkqhkiG9w0B\n"
- "AQsFAAOCAYEAPfwyvOwNEjIvlifjBVhiWmrtZAS2YaY9jqFnaA2PvYY2FVyC3AMu\n"
- "3BGAorau/4DL3P92/9SlygEmBQpqCq+AJnQRH6WKFT4avAOmw3yc0++st+DhGK0I\n"
- "6Cr69WccVi0Kmxi1XP4dpPDWSuVCOP6rGc3ulgEH83xF4ZL+3qVA9Fihsie3ZZme\n"
- "7mqWOznVO1MZHLDFIUEoRdOSin5bIkl7FPOCZqMsWRM41GuA1h4aX/X5dLeqRW1c\n"
- "mJ5CNRWwPIPcwgqeldFnx07svCv9QseUDaIw+C9vZOlgfIgp0qeYoR6fsD38WcUC\n"
- "eJPsOUwhdhMcw+/PM16iwzd89dI+PCecFY9FeLh9YeihZm0DnG8L0To1Y2ry+WRf\n"
- "w5knR3FReHPcelymvSKZSEG0d/KKHXBeKWgcrCrdnn4ya71eblsNzO3vnxB5k0Zj\n"
- "WcQ3wfeftQKDEIuaRHUP6B4zx2teJWMWvJLcXuavoqo0z3L5EN74RztCpnP9ykSH\n"
- "ZsYWoJ3aelFv\n"
- "-----END CERTIFICATE-----\n";
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIIDZTCCAc2gAwIBAgIUB7aVTQvtbBpOEtKELkBkLViM0eIwDQYJKoZIhvcNAQEL\n"
+ "BQAwEjEQMA4GA1UEAwwHVGVzdCBDQTAeFw0yMDAzMjYxMDE4NTdaFw0yMTAzMjYx\n"
+ "MDE4NTdaMBYxFDASBgNVBAMMC1Rlc3QgY2xpZW50MIIBIjANBgkqhkiG9w0BAQEF\n"
+ "AAOCAQ8AMIIBCgKCAQEAviqj5S/xe39agbMnq/oPAQmdIhalB17Ewc3AZlD8n+zQ\n"
+ "scPDNvnk4gxSeSXePtXmh0OaGcBKbMAkjiyo2gPBmV3ay34LQuk97nJxE2TUAWMm\n"
+ "S8yFwP3yoE+GZ5eYjv+HGQxeAP9uHLjho/jHjVGgUOCVv1QjsKyRx8Tuvy9TH3ON\n"
+ "DuMPw3Jmnq0OhLy2+SjU0ug5jxfWJvnfeGoFzRgalmWGyoAQsH9bqha/D44QSen+\n"
+ "Zbbt/A4uNIILAENYuHXEfvpmBuZPpocOb6h2huGbp6iHZfdZUHso37UmWT6PXh+2\n"
+ "dASPaCpAr3bURBhnEsQM43njb8METZewMeoQxwZC0QIDAQABoy8wLTAMBgNVHRMB\n"
+ "Af8EAjAAMB0GA1UdDgQWBBSb3h7ZbajS/2RWx2a7hTVSkur0FDANBgkqhkiG9w0B\n"
+ "AQsFAAOCAYEAPfwyvOwNEjIvlifjBVhiWmrtZAS2YaY9jqFnaA2PvYY2FVyC3AMu\n"
+ "3BGAorau/4DL3P92/9SlygEmBQpqCq+AJnQRH6WKFT4avAOmw3yc0++st+DhGK0I\n"
+ "6Cr69WccVi0Kmxi1XP4dpPDWSuVCOP6rGc3ulgEH83xF4ZL+3qVA9Fihsie3ZZme\n"
+ "7mqWOznVO1MZHLDFIUEoRdOSin5bIkl7FPOCZqMsWRM41GuA1h4aX/X5dLeqRW1c\n"
+ "mJ5CNRWwPIPcwgqeldFnx07svCv9QseUDaIw+C9vZOlgfIgp0qeYoR6fsD38WcUC\n"
+ "eJPsOUwhdhMcw+/PM16iwzd89dI+PCecFY9FeLh9YeihZm0DnG8L0To1Y2ry+WRf\n"
+ "w5knR3FReHPcelymvSKZSEG0d/KKHXBeKWgcrCrdnn4ya71eblsNzO3vnxB5k0Zj\n"
+ "WcQ3wfeftQKDEIuaRHUP6B4zx2teJWMWvJLcXuavoqo0z3L5EN74RztCpnP9ykSH\n"
+ "ZsYWoJ3aelFv\n" "-----END CERTIFICATE-----\n";
static unsigned char ca_pem[] =
- "-----BEGIN CERTIFICATE-----\n"
- "MIID5DCCAkygAwIBAgIUB4lnLAeQ20wlYbqt5ykgvWOPNzgwDQYJKoZIhvcNAQEL\n"
- "BQAwEjEQMA4GA1UEAxMHVGVzdCBDQTAeFw0yMDAzMjYxMDI0MjhaFw0yMDAzMjcx\n"
- "MDI0MjhaMBIxEDAOBgNVBAMTB1Rlc3QgQ0EwggGiMA0GCSqGSIb3DQEBAQUAA4IB\n"
- "jwAwggGKAoIBgQCt9z/noU7qCPquzzgwNvu/rwXyIvxmqdWhpfpBOmVq8wpgUDUU\n"
- "cQ94F65UfTo3EcYXCoDs43E4Wo8KmF5YQM2xK+LrH28XmpL3z+NoQGaZoUVrMWp6\n"
- "rbIeoGZvITaaGn2uEbGT7iRkBUdS4wOjUT13IxpG8cM4d0i0DIsqSlUPnQCfyMqf\n"
- "jsVhO9IQsn7qMo0+2nNCI5JqblEXRvL39hHzJMOsq1NRqZO1Zjt9HCIB7m7Q42Jx\n"
- "e8zm7RzTiBFVKecxb5h4mmt3tUZQ0Kjd94yE6ARSE0rULmO+6H7hgI6sU8vqfSFe\n"
- "DimQ5mPReumBRDcErX+c7bRGPRul41kAB8XvPmAHG8xCepjH8xrgY/FeVBQT74xm\n"
- "MEYQaxdGpa8Azx6MZCrZOI0rzu+zI0CBQGE1h1Xk8HBozrn/G2OOAZcXyzHzq56R\n"
- "Z52zEQYFZmKH9tHTDI6fMfo8clr7esb/wmgEOt/lJYE9IMJrzUh+IwWuowdYaDVj\n"
- "nMrboUBVepmBKSUCAwEAAaMyMDAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU\n"
- "rhkYiczAkbCcVfNr67VGGaqilbgwDQYJKoZIhvcNAQELBQADggGBAGYiUTKdYBXk\n"
- "lZFIhZkCc33/lCgJw2mSrdAd+xJmJonRPy3qmYy3HniOmQdRVqResLALubz89VjJ\n"
- "dSeokujFrlNtb4CygojseqTsxWgeZlKjLU3tJ/Xn+DFIiP7k9+WPW7KFIIW0fq61\n"
- "MAI0lKjqpC8sJTlXoJemDw9MW/380nKr+K1YY3arRzsSHEIeA54xOggKEwvgz11A\n"
- "47xT83WoLwFQ4e9LZfCsL/M51lsLHAlJzDKyTTeSxCi/C6kUIzx8QyxHKYgBuNxz\n"
- "8vVLY/YzUv/l5ELYQ9gkAX0vZWdw7pqASUY8yvbzImrWqjFAHeN3zK687Ke9uppS\n"
- "dmjvPwvTK+SKm++NR8YCwb3xqHQHMYHV3lxjlOhaN6rxBW0l4gtvb2FMlhcljiZ+\n"
- "tF2ObVwEs6nqJSGrzubp0os+WmnbVSCaHz9jnRWb68C87mXCZkbA7FTSKJOVuqRM\n"
- "vVTcHQ7jwGQ2/SvikndFQ53zi2j9o/jTOiFv29rEOeHu67UAiFSi2A==\n"
- "-----END CERTIFICATE-----\n";
-
-const gnutls_datum_t server = { server_pem, sizeof(server_pem)-1 };
-const gnutls_datum_t ca = { ca_pem, sizeof(ca_pem)-1 };
+ "-----BEGIN CERTIFICATE-----\n"
+ "MIID5DCCAkygAwIBAgIUB4lnLAeQ20wlYbqt5ykgvWOPNzgwDQYJKoZIhvcNAQEL\n"
+ "BQAwEjEQMA4GA1UEAxMHVGVzdCBDQTAeFw0yMDAzMjYxMDI0MjhaFw0yMDAzMjcx\n"
+ "MDI0MjhaMBIxEDAOBgNVBAMTB1Rlc3QgQ0EwggGiMA0GCSqGSIb3DQEBAQUAA4IB\n"
+ "jwAwggGKAoIBgQCt9z/noU7qCPquzzgwNvu/rwXyIvxmqdWhpfpBOmVq8wpgUDUU\n"
+ "cQ94F65UfTo3EcYXCoDs43E4Wo8KmF5YQM2xK+LrH28XmpL3z+NoQGaZoUVrMWp6\n"
+ "rbIeoGZvITaaGn2uEbGT7iRkBUdS4wOjUT13IxpG8cM4d0i0DIsqSlUPnQCfyMqf\n"
+ "jsVhO9IQsn7qMo0+2nNCI5JqblEXRvL39hHzJMOsq1NRqZO1Zjt9HCIB7m7Q42Jx\n"
+ "e8zm7RzTiBFVKecxb5h4mmt3tUZQ0Kjd94yE6ARSE0rULmO+6H7hgI6sU8vqfSFe\n"
+ "DimQ5mPReumBRDcErX+c7bRGPRul41kAB8XvPmAHG8xCepjH8xrgY/FeVBQT74xm\n"
+ "MEYQaxdGpa8Azx6MZCrZOI0rzu+zI0CBQGE1h1Xk8HBozrn/G2OOAZcXyzHzq56R\n"
+ "Z52zEQYFZmKH9tHTDI6fMfo8clr7esb/wmgEOt/lJYE9IMJrzUh+IwWuowdYaDVj\n"
+ "nMrboUBVepmBKSUCAwEAAaMyMDAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU\n"
+ "rhkYiczAkbCcVfNr67VGGaqilbgwDQYJKoZIhvcNAQELBQADggGBAGYiUTKdYBXk\n"
+ "lZFIhZkCc33/lCgJw2mSrdAd+xJmJonRPy3qmYy3HniOmQdRVqResLALubz89VjJ\n"
+ "dSeokujFrlNtb4CygojseqTsxWgeZlKjLU3tJ/Xn+DFIiP7k9+WPW7KFIIW0fq61\n"
+ "MAI0lKjqpC8sJTlXoJemDw9MW/380nKr+K1YY3arRzsSHEIeA54xOggKEwvgz11A\n"
+ "47xT83WoLwFQ4e9LZfCsL/M51lsLHAlJzDKyTTeSxCi/C6kUIzx8QyxHKYgBuNxz\n"
+ "8vVLY/YzUv/l5ELYQ9gkAX0vZWdw7pqASUY8yvbzImrWqjFAHeN3zK687Ke9uppS\n"
+ "dmjvPwvTK+SKm++NR8YCwb3xqHQHMYHV3lxjlOhaN6rxBW0l4gtvb2FMlhcljiZ+\n"
+ "tF2ObVwEs6nqJSGrzubp0os+WmnbVSCaHz9jnRWb68C87mXCZkbA7FTSKJOVuqRM\n"
+ "vVTcHQ7jwGQ2/SvikndFQ53zi2j9o/jTOiFv29rEOeHu67UAiFSi2A==\n"
+ "-----END CERTIFICATE-----\n";
+
+const gnutls_datum_t server = { server_pem, sizeof(server_pem) - 1 };
+const gnutls_datum_t ca = { ca_pem, sizeof(ca_pem) - 1 };
void doit(void)
{
@@ -107,15 +106,13 @@ void doit(void)
gnutls_x509_crt_init(&server_crt);
- ret =
- gnutls_x509_crt_import(server_crt, &server, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(server_crt, &server, GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("gnutls_x509_crt_import");
gnutls_x509_crt_init(&ca_crt);
- ret =
- gnutls_x509_crt_import(ca_crt, &ca, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(ca_crt, &ca, GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("gnutls_x509_crt_import");
diff --git a/tests/x509cert-invalid.c b/tests/x509cert-invalid.c
index 3007658f25..fb2bd845af 100644
--- a/tests/x509cert-invalid.c
+++ b/tests/x509cert-invalid.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -81,11 +81,12 @@ static unsigned char inconsistent2_pem[] =
"nL+quIR29t8nb7j+n8l1+2WxCUoxEO0wv37t3MQxjXUxzGfo5NDcXqH1364UBzdM\n"
"rOBPX50B4LUyV5gNdWMIGVSMX3fTE+j3b+60w6NALXDzGoSGLQH48hpi/Mxzqctt\n"
"gl58/RqS+nTNQ7c6QMhTj+dgaCE/DUGJJf0354dYp7p43nabr+ZtaMPUaGUQ/1UC\n"
- "C5/QFweC23w=\n"
- "-----END CERTIFICATE-----\n";
+ "C5/QFweC23w=\n" "-----END CERTIFICATE-----\n";
-const gnutls_datum_t inconsistent = { inconsistent_pem, sizeof(inconsistent_pem)-1 };
-const gnutls_datum_t inconsistent2 = { inconsistent2_pem, sizeof(inconsistent2_pem)-1 };
+const gnutls_datum_t inconsistent =
+ { inconsistent_pem, sizeof(inconsistent_pem) - 1 };
+const gnutls_datum_t inconsistent2 =
+ { inconsistent2_pem, sizeof(inconsistent2_pem) - 1 };
static time_t mytime(time_t * t)
{
@@ -113,8 +114,7 @@ void doit(void)
gnutls_x509_crt_init(&crt);
- ret =
- gnutls_x509_crt_import(crt, &inconsistent, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(crt, &inconsistent, GNUTLS_X509_FMT_PEM);
if (ret >= 0)
fail("1: gnutls_x509_crt_import");
@@ -122,8 +122,7 @@ void doit(void)
gnutls_x509_crt_init(&crt);
- ret =
- gnutls_x509_crt_import(crt, &inconsistent2, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(crt, &inconsistent2, GNUTLS_X509_FMT_PEM);
if (ret >= 0)
fail("2: gnutls_x509_crt_import");
diff --git a/tests/x509cert-tl.c b/tests/x509cert-tl.c
index 64b754ad60..f4b15bad56 100644
--- a/tests/x509cert-tl.c
+++ b/tests/x509cert-tl.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -192,7 +192,8 @@ static void check_stored_algos(gnutls_x509_crt_t server_crt)
oid_size = sizeof(oid);
ret = gnutls_x509_crt_get_signature_oid(server_crt, oid, &oid_size);
if (ret < 0) {
- fail("cannot get signature algorithm: %s\n", gnutls_strerror(ret));
+ fail("cannot get signature algorithm: %s\n",
+ gnutls_strerror(ret));
exit(1);
}
@@ -203,7 +204,8 @@ static void check_stored_algos(gnutls_x509_crt_t server_crt)
ret = gnutls_x509_crt_get_signature_algorithm(server_crt);
if (ret != GNUTLS_SIGN_RSA_SHA1) {
- fail("detected wrong algorithm: %s\n", gnutls_sign_get_name(ret));
+ fail("detected wrong algorithm: %s\n",
+ gnutls_sign_get_name(ret));
exit(1);
}
@@ -222,7 +224,8 @@ static void check_stored_algos(gnutls_x509_crt_t server_crt)
ret = gnutls_x509_crt_get_pk_algorithm(server_crt, NULL);
if (ret != GNUTLS_PK_RSA) {
- fail("detected wrong PK algorithm: %s\n", gnutls_pk_get_name(ret));
+ fail("detected wrong PK algorithm: %s\n",
+ gnutls_pk_get_name(ret));
exit(1);
}
@@ -261,14 +264,15 @@ void doit(void)
if (!path)
path = "./x509cert-dir";
- ret =
- gnutls_x509_crt_import(server_crt, &cert, GNUTLS_X509_FMT_PEM);
+ ret = gnutls_x509_crt_import(server_crt, &cert, GNUTLS_X509_FMT_PEM);
if (ret < 0)
fail("gnutls_x509_crt_import");
check_stored_algos(server_crt);
- ret = gnutls_x509_crt_get_preferred_hash_algorithm(server_crt, &hash, &mand);
+ ret =
+ gnutls_x509_crt_get_preferred_hash_algorithm(server_crt, &hash,
+ &mand);
if (ret < 0) {
fail("error in gnutls_x509_crt_get_preferred_hash_algorithm: %s\n", gnutls_strerror(ret));
exit(1);
@@ -294,65 +298,64 @@ void doit(void)
NAME_SIZE, 0, &status,
NULL);
if (ret < 0 || status != 0)
- fail("gnutls_x509_trust_list_verify_named_crt: %d\n",
- __LINE__);
+ fail("gnutls_x509_trust_list_verify_named_crt: %d\n", __LINE__);
ret =
gnutls_x509_trust_list_verify_named_crt(tl, server_crt, NAME,
NAME_SIZE - 1, 0,
&status, NULL);
if (ret < 0 || status == 0)
- fail("gnutls_x509_trust_list_verify_named_crt: %d\n",
- __LINE__);
+ fail("gnutls_x509_trust_list_verify_named_crt: %d\n", __LINE__);
ret =
gnutls_x509_trust_list_verify_named_crt(tl, server_crt,
"other", 5, 0, &status,
NULL);
if (ret < 0 || status == 0)
- fail("gnutls_x509_trust_list_verify_named_crt: %d\n",
- __LINE__);
+ fail("gnutls_x509_trust_list_verify_named_crt: %d\n", __LINE__);
/* check whether the name-only verification works */
vdata.type = GNUTLS_DT_DNS_HOSTNAME;
- vdata.data = (void*)NAME;
+ vdata.data = (void *)NAME;
vdata.size = NAME_SIZE;
ret =
gnutls_x509_trust_list_verify_crt2(tl, &server_crt, 1, &vdata, 1,
- GNUTLS_VERIFY_ALLOW_BROKEN, &status, NULL);
+ GNUTLS_VERIFY_ALLOW_BROKEN,
+ &status, NULL);
if (ret < 0 || status != 0)
- fail("gnutls_x509_trust_list_verify_crt2 - 1: status: %x\n", status);
+ fail("gnutls_x509_trust_list_verify_crt2 - 1: status: %x\n",
+ status);
vdata.type = GNUTLS_DT_DNS_HOSTNAME;
- vdata.data = (void*)NAME;
- vdata.size = NAME_SIZE-2;
+ vdata.data = (void *)NAME;
+ vdata.size = NAME_SIZE - 2;
ret =
gnutls_x509_trust_list_verify_crt2(tl, &server_crt, 1, &vdata, 1,
- 0, &status, NULL);
+ 0, &status, NULL);
if (ret < 0 || status == 0)
- fail("gnutls_x509_trust_list_verify_crt2 - 2: status: %x\n", status);
-
+ fail("gnutls_x509_trust_list_verify_crt2 - 2: status: %x\n",
+ status);
/* check whether the key verification works */
- ret = gnutls_x509_trust_list_add_trust_dir(tl, path, NULL, GNUTLS_X509_FMT_PEM, 0, 0);
+ ret =
+ gnutls_x509_trust_list_add_trust_dir(tl, path, NULL,
+ GNUTLS_X509_FMT_PEM, 0, 0);
if (ret != 1)
fail("gnutls_x509_trust_list_add_trust_dir: %d\n", ret);
ret =
- gnutls_x509_trust_list_verify_crt(tl, &server_crt, 1, GNUTLS_VERIFY_ALLOW_BROKEN,
+ gnutls_x509_trust_list_verify_crt(tl, &server_crt, 1,
+ GNUTLS_VERIFY_ALLOW_BROKEN,
&status, NULL);
if (ret < 0 || status != 0)
fail("gnutls_x509_trust_list_verify_crt\n");
-
-
/* test convenience functions in verify-high2.c */
data.data = cert_pem;
- data.size = strlen((char *) cert_pem);
+ data.size = strlen((char *)cert_pem);
ret =
gnutls_x509_trust_list_add_trust_mem(tl, &data, NULL,
- GNUTLS_X509_FMT_PEM, 0,
- 0);
+ GNUTLS_X509_FMT_PEM, 0, 0);
if (ret < 1)
fail("gnutls_x509_trust_list_add_trust_mem: %d (%s)\n",
__LINE__, gnutls_strerror(ret));
@@ -368,8 +371,7 @@ void doit(void)
data.size = sizeof(cert_der);
ret =
gnutls_x509_trust_list_add_trust_mem(tl, &data, NULL,
- GNUTLS_X509_FMT_DER, 0,
- 0);
+ GNUTLS_X509_FMT_DER, 0, 0);
if (ret < 1)
fail("gnutls_x509_trust_list_add_trust_mem: %d (%s)\n",
__LINE__, gnutls_strerror(ret));
diff --git a/tests/x509cert.c b/tests/x509cert.c
index e62372e2dc..7a7a486b95 100644
--- a/tests/x509cert.c
+++ b/tests/x509cert.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -30,10 +30,10 @@
#include <string.h>
#include <sys/types.h>
#if !defined(_WIN32)
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/wait.h>
-#include <arpa/inet.h>
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <sys/wait.h>
+# include <arpa/inet.h>
#endif
#include <unistd.h>
#include <gnutls/gnutls.h>
@@ -51,7 +51,7 @@ static void tls_log_func(int level, const char *str)
fprintf(stderr, "<%d>| %s", level, str);
}
-static char buf[16*1024];
+static char buf[16 * 1024];
#define LIST_SIZE 3
void doit(void)
@@ -69,7 +69,8 @@ void doit(void)
gnutls_x509_privkey_t get_key;
gnutls_x509_crt_t *get_crts;
unsigned n_get_crts;
- gnutls_datum_t get_datum, chain_datum[2] = {server_ca3_cert, subca3_cert};
+ gnutls_datum_t get_datum, chain_datum[2] =
+ { server_ca3_cert, subca3_cert };
gnutls_x509_trust_list_t trust_list;
gnutls_x509_trust_list_iter_t trust_iter;
gnutls_x509_crt_t get_ca_crt;
@@ -113,12 +114,14 @@ void doit(void)
fail("gnutls_x509_crt_list_import");
ret =
- gnutls_certificate_get_issuer(x509_cred, list[list_size-1], &issuer, 0);
+ gnutls_certificate_get_issuer(x509_cred, list[list_size - 1],
+ &issuer, 0);
if (ret < 0)
fail("gnutls_certificate_get_isser");
ret =
- gnutls_certificate_get_issuer(x509_cred, list[list_size-1], &issuer, GNUTLS_TL_GET_COPY);
+ gnutls_certificate_get_issuer(x509_cred, list[list_size - 1],
+ &issuer, GNUTLS_TL_GET_COPY);
if (ret < 0)
fail("gnutls_certificate_get_isser");
@@ -138,29 +141,26 @@ void doit(void)
/* test the getter functions of gnutls_certificate_credentials_t */
- ret =
- gnutls_certificate_get_x509_key(x509_cred, 0, &get_key);
+ ret = gnutls_certificate_get_x509_key(x509_cred, 0, &get_key);
if (ret < 0)
fail("gnutls_certificate_get_x509_key");
ret =
gnutls_x509_privkey_export2(get_key,
- GNUTLS_X509_FMT_PEM,
- &get_datum);
+ GNUTLS_X509_FMT_PEM, &get_datum);
if (ret < 0)
fail("gnutls_x509_privkey_export2");
if (get_datum.size != server_ca3_key.size ||
memcmp(get_datum.data, server_ca3_key.data, get_datum.size) != 0) {
- fail(
- "exported key %u vs. %u\n\n%s\n\nvs.\n\n%s",
- get_datum.size, server_ca3_key.size,
- get_datum.data, server_ca3_key.data);
+ fail("exported key %u vs. %u\n\n%s\n\nvs.\n\n%s",
+ get_datum.size, server_ca3_key.size,
+ get_datum.data, server_ca3_key.data);
}
- if (strlen((char*)get_datum.data) != get_datum.size) {
+ if (strlen((char *)get_datum.data) != get_datum.size) {
fail("exported key %u vs. %u\n\n%s\n",
- get_datum.size, (unsigned)strlen((char*)get_datum.data),
+ get_datum.size, (unsigned)strlen((char *)get_datum.data),
get_datum.data);
}
@@ -169,22 +169,21 @@ void doit(void)
buf_size = sizeof(buf);
ret =
gnutls_x509_privkey_export(get_key,
- GNUTLS_X509_FMT_PEM,
- buf, &buf_size);
+ GNUTLS_X509_FMT_PEM, buf, &buf_size);
if (ret < 0)
fail("gnutls_x509_privkey_export");
if (buf_size != get_datum.size ||
buf_size != strlen(buf) ||
memcmp(buf, server_ca3_key.data, buf_size) != 0) {
- fail(
- "exported key %u vs. %u\n\n%s\n\nvs.\n\n%s",
- (int)buf_size, server_ca3_key.size,
- buf, server_ca3_key.data);
+ fail("exported key %u vs. %u\n\n%s\n\nvs.\n\n%s",
+ (int)buf_size, server_ca3_key.size,
+ buf, server_ca3_key.data);
}
ret =
- gnutls_certificate_get_x509_crt(x509_cred, 0, &get_crts, &n_get_crts);
+ gnutls_certificate_get_x509_crt(x509_cred, 0, &get_crts,
+ &n_get_crts);
if (ret < 0)
fail("gnutls_certificate_get_x509_crt");
if (n_get_crts != 2)
@@ -192,18 +191,15 @@ void doit(void)
for (i = 0; i < n_get_crts; i++) {
ret =
- gnutls_x509_crt_export2(get_crts[i],
- GNUTLS_X509_FMT_PEM,
- &get_datum);
+ gnutls_x509_crt_export2(get_crts[i],
+ GNUTLS_X509_FMT_PEM, &get_datum);
if (ret < 0)
fail("gnutls_x509_crt_export2");
if (get_datum.size != chain_datum[i].size ||
- memcmp(get_datum.data, chain_datum[i].data, get_datum.size) != 0) {
- fail(
- "exported certificate %u vs. %u\n\n%s\n\nvs.\n\n%s",
- get_datum.size, chain_datum[i].size,
- get_datum.data, chain_datum[i].data);
+ memcmp(get_datum.data, chain_datum[i].data,
+ get_datum.size) != 0) {
+ fail("exported certificate %u vs. %u\n\n%s\n\nvs.\n\n%s", get_datum.size, chain_datum[i].size, get_datum.data, chain_datum[i].data);
}
gnutls_free(get_datum.data);
@@ -216,20 +212,17 @@ void doit(void)
while (gnutls_x509_trust_list_iter_get_ca(trust_list,
&trust_iter,
&get_ca_crt) !=
- GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
+ GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) {
ret =
gnutls_x509_crt_export2(get_ca_crt,
- GNUTLS_X509_FMT_PEM,
- &get_datum);
+ GNUTLS_X509_FMT_PEM, &get_datum);
if (ret < 0)
fail("gnutls_x509_crt_export2");
if (get_datum.size != ca3_cert.size ||
- memcmp(get_datum.data, ca3_cert.data, get_datum.size) != 0) {
- fail(
- "exported CA certificate %u vs. %u\n\n%s\n\nvs.\n\n%s",
- get_datum.size, ca3_cert.size,
- get_datum.data, ca3_cert.data);
+ memcmp(get_datum.data, ca3_cert.data,
+ get_datum.size) != 0) {
+ fail("exported CA certificate %u vs. %u\n\n%s\n\nvs.\n\n%s", get_datum.size, ca3_cert.size, get_datum.data, ca3_cert.data);
}
gnutls_x509_crt_deinit(get_ca_crt);
diff --git a/tests/x509dn.c b/tests/x509dn.c
index 463e5255bc..cd2b9234a8 100644
--- a/tests/x509dn.c
+++ b/tests/x509dn.c
@@ -23,7 +23,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -40,22 +40,22 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <signal.h>
-#include <assert.h>
-#include <gnutls/gnutls.h>
-#include <gnutls/abstract.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <signal.h>
+# include <assert.h>
+# include <gnutls/gnutls.h>
+# include <gnutls/abstract.h>
-#include "utils.h"
+# include "utils.h"
-#include "ex-session-info.c"
-#include "ex-x509-info.c"
+# include "ex-session-info.c"
+# include "ex-x509-info.c"
pid_t child;
@@ -65,10 +65,10 @@ static void tls_log_func(int level, const char *str)
str);
}
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
-#define EXPECT_RDN0 "CA-3"
+# define EXPECT_RDN0 "CA-3"
static int
cert_callback(gnutls_session_t session,
@@ -81,8 +81,7 @@ cert_callback(gnutls_session_t session,
gnutls_x509_dn_t dn;
if (nreqs != 1) {
- fail("client: invoked to provide client cert, but %d CAs are requested by server.\n",
- nreqs);
+ fail("client: invoked to provide client cert, but %d CAs are requested by server.\n", nreqs);
return -1;
}
@@ -107,11 +106,10 @@ cert_callback(gnutls_session_t session,
success("client: got RDN 0.\n");
if (val.value.size == strlen(EXPECT_RDN0)
- && strncmp((char *) val.value.data,
- EXPECT_RDN0, val.value.size) == 0) {
+ && strncmp((char *)val.value.data,
+ EXPECT_RDN0, val.value.size) == 0) {
if (debug)
- success
- ("client: RND 0 correct.\n");
+ success("client: RND 0 correct.\n");
} else {
fail("client: RND 0 bad: %.*s\n",
val.value.size, val.value.data);
@@ -131,7 +129,6 @@ cert_callback(gnutls_session_t session,
return 0;
}
-
static void client(int sd, const char *prio)
{
int ret, ii;
@@ -150,7 +147,7 @@ static void client(int sd, const char *prio)
/* sets the trusted cas file
*/
ret = gnutls_certificate_set_x509_trust_mem(xcred, &ca3_cert,
- GNUTLS_X509_FMT_PEM);
+ GNUTLS_X509_FMT_PEM);
if (ret <= 0) {
fail("client: no CAs loaded!\n");
goto end;
@@ -162,7 +159,7 @@ static void client(int sd, const char *prio)
*/
gnutls_init(&session, GNUTLS_CLIENT);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the x509 credentials to the current session
*/
@@ -197,8 +194,7 @@ static void client(int sd, const char *prio)
ret = gnutls_record_recv(session, buffer, MAX_BUF);
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -215,7 +211,7 @@ static void client(int sd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -229,7 +225,7 @@ static void client(int sd, const char *prio)
/* This is a sample TLS 1.0 echo server, using X.509 authentication.
*/
-#define MAX_BUF 1024
+# define MAX_BUF 1024
static void server(int sd, const char *prio)
{
@@ -247,7 +243,7 @@ static void server(int sd, const char *prio)
gnutls_certificate_allocate_credentials(&x509_cred);
ret = gnutls_certificate_set_x509_trust_mem(x509_cred, &ca3_cert,
- GNUTLS_X509_FMT_PEM);
+ GNUTLS_X509_FMT_PEM);
if (ret == 0) {
fail("server: no CAs loaded\n");
}
@@ -259,14 +255,13 @@ static void server(int sd, const char *prio)
gnutls_init(&session, GNUTLS_SERVER);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
/* request client certificate if any.
*/
- gnutls_certificate_server_set_request(session,
- GNUTLS_CERT_REQUEST);
+ gnutls_certificate_server_set_request(session, GNUTLS_CERT_REQUEST);
gnutls_transport_set_int(session, sd);
gnutls_handshake_set_timeout(session, get_timeout());
@@ -306,8 +301,7 @@ static void server(int sd, const char *prio)
} else if (ret > 0) {
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
/* do not wait for the peer to close the connection.
diff --git a/tests/x509self.c b/tests/x509self.c
index ddb1e4047d..86219cd8d6 100644
--- a/tests/x509self.c
+++ b/tests/x509self.c
@@ -23,7 +23,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -41,19 +41,19 @@ int main(int argc, char **argv)
#else
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(_WIN32)
-#include <sys/wait.h>
-#endif
-#include <unistd.h>
-#include <gnutls/gnutls.h>
+# include <string.h>
+# include <sys/types.h>
+# include <sys/socket.h>
+# if !defined(_WIN32)
+# include <sys/wait.h>
+# endif
+# include <unistd.h>
+# include <gnutls/gnutls.h>
-#include "utils.h"
+# include "utils.h"
-#include "ex-session-info.c"
-#include "ex-x509-info.c"
+# include "ex-session-info.c"
+# include "ex-x509-info.c"
pid_t child;
@@ -63,9 +63,8 @@ static void tls_log_func(int level, const char *str)
str);
}
-#define MAX_BUF 1024
-#define MSG "Hello TLS"
-
+# define MAX_BUF 1024
+# define MSG "Hello TLS"
static void client(int sd, const char *prio)
{
@@ -94,7 +93,7 @@ static void client(int sd, const char *prio)
*/
gnutls_init(&session, GNUTLS_CLIENT);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
/* put the x509 credentials to the current session
*/
@@ -123,9 +122,12 @@ static void client(int sd, const char *prio)
if (debug)
print_info(session);
- ret = gnutls_credentials_get(session, GNUTLS_CRD_CERTIFICATE, (void**)&tst_cred);
+ ret =
+ gnutls_credentials_get(session, GNUTLS_CRD_CERTIFICATE,
+ (void **)&tst_cred);
if (ret < 0) {
- fail("client: gnutls_credentials_get failed: %s\n", gnutls_strerror(ret));
+ fail("client: gnutls_credentials_get failed: %s\n",
+ gnutls_strerror(ret));
}
if (tst_cred != xcred) {
fail("client: gnutls_credentials_get returned invalid value\n");
@@ -144,7 +146,7 @@ static void client(int sd, const char *prio)
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (debug)
success("client: recv returned %d.\n", ret);
@@ -165,8 +167,7 @@ static void client(int sd, const char *prio)
if (ret == 0) {
if (debug)
- success
- ("client: Peer has closed the TLS connection\n");
+ success("client: Peer has closed the TLS connection\n");
goto end;
} else if (ret < 0) {
fail("client: Error: %s\n", gnutls_strerror(ret));
@@ -183,7 +184,7 @@ static void client(int sd, const char *prio)
gnutls_bye(session, GNUTLS_SHUT_RDWR);
- end:
+ end:
close(sd);
@@ -197,9 +198,8 @@ static void client(int sd, const char *prio)
/* This is a sample TLS 1.0 echo server, using X.509 authentication.
*/
-#define MAX_BUF 1024
-#define DH_BITS 1024
-
+# define MAX_BUF 1024
+# define DH_BITS 1024
static void server(int sd, const char *prio)
{
@@ -228,7 +228,7 @@ static void server(int sd, const char *prio)
gnutls_init(&session, GNUTLS_SERVER);
- assert(gnutls_priority_set_direct(session, prio, NULL)>=0);
+ assert(gnutls_priority_set_direct(session, prio, NULL) >= 0);
gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
@@ -239,7 +239,6 @@ static void server(int sd, const char *prio)
gnutls_dh_set_prime_bits(session, DH_BITS);
-
gnutls_transport_set_int(session, sd);
ret = gnutls_handshake(session);
if (ret < 0) {
@@ -264,7 +263,7 @@ static void server(int sd, const char *prio)
memset(buffer, 0, MAX_BUF + 1);
do {
ret = gnutls_record_recv(session, buffer, MAX_BUF);
- } while(ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
+ } while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED);
if (ret == 0) {
if (debug)
@@ -301,8 +300,7 @@ static void server(int sd, const char *prio)
/* echo data back to the client
*/
- gnutls_record_send(session, buffer,
- strlen(buffer));
+ gnutls_record_send(session, buffer, strlen(buffer));
}
}
/* do not wait for the peer to close the connection.
@@ -320,7 +318,6 @@ static void server(int sd, const char *prio)
success("server: finished\n");
}
-
static
void start(const char *prio)
{
diff --git a/tests/x509sign-verify-common.h b/tests/x509sign-verify-common.h
index 6b7498586b..fd1ee4de0c 100644
--- a/tests/x509sign-verify-common.h
+++ b/tests/x509sign-verify-common.h
@@ -1,5 +1,5 @@
#ifndef GNUTLS_TESTS_X509SIGN_VERIFY_COMMON_H
-#define GNUTLS_TESTS_X509SIGN_VERIFY_COMMON_H
+# define GNUTLS_TESTS_X509SIGN_VERIFY_COMMON_H
static void tls_log_func(int level, const char *str)
{
@@ -19,8 +19,7 @@ const gnutls_datum_t sha256_data = {
(void *)
"\x2c\xf2\x4d\xba\x5f\xb0\xa3\x0e\x26\xe8"
"\x3b\x2a\xc5\xb9\xe2\x9e\x1b\x16\x1e\x5c"
- "\x1f\xa7\x42\x5e\x73\x04\x33\x62\x93\x8b"
- "\x98\x24",
+ "\x1f\xa7\x42\x5e\x73\x04\x33\x62\x93\x8b" "\x98\x24",
32
};
@@ -29,8 +28,7 @@ const gnutls_datum_t gostr94_data = {
(void *)
"\x92\xea\x6d\xdb\xaf\x40\x02\x0d\xf3\x65"
"\x1f\x27\x8f\xd7\x15\x12\x17\xa2\x4a\xa8"
- "\xd2\x2e\xbd\x25\x19\xcf\xd4\xd8\x9e\x64"
- "\x50\xea",
+ "\xd2\x2e\xbd\x25\x19\xcf\xd4\xd8\x9e\x64" "\x50\xea",
32
};
@@ -39,8 +37,7 @@ const gnutls_datum_t streebog256_data = {
(void *)
"\x3f\xb0\x70\x0a\x41\xce\x6e\x41\x41\x3b"
"\xa7\x64\xf9\x8b\xf2\x13\x5b\xa6\xde\xd5"
- "\x16\xbe\xa2\xfa\xe8\x42\x9c\xc5\xbd\xd4"
- "\x6d\x6d",
+ "\x16\xbe\xa2\xfa\xe8\x42\x9c\xc5\xbd\xd4" "\x6d\x6d",
32
};
@@ -52,8 +49,7 @@ const gnutls_datum_t streebog512_data = {
"\x7e\xb3\xdd\x43\x11\xe8\xb5\x85\xd4\xbf"
"\x2f\x59\x23\x21\x4f\x1d\xfe\xd3\xfd\xee"
"\x4a\xaf\x01\x83\x30\xa1\x2a\xcd\xe0\xef"
- "\xcc\x33\x8e\xb5\x29\x22\xf3\xe5\x71\x21"
- "\x2d\x42\xc8\xde",
+ "\xcc\x33\x8e\xb5\x29\x22\xf3\xe5\x71\x21" "\x2d\x42\xc8\xde",
64
};
@@ -69,7 +65,6 @@ const gnutls_datum_t raw_data = {
5
};
-
static void print_keys(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
{
gnutls_x509_privkey_t xkey;
@@ -96,7 +91,7 @@ static void print_keys(gnutls_privkey_t privkey, gnutls_pubkey_t pubkey)
gnutls_x509_privkey_deinit(xkey);
}
-#define ERR fail("Failure at: %s (%s-%s) (iter: %d)\n", gnutls_sign_get_name(sign_algo), gnutls_pk_get_name(pk), gnutls_digest_get_name(hash), j);
+# define ERR fail("Failure at: %s (%s-%s) (iter: %d)\n", gnutls_sign_get_name(sign_algo), gnutls_pk_get_name(pk), gnutls_digest_get_name(hash), j);
static
void test_sig(gnutls_pk_algorithm_t pk, unsigned hash, unsigned bits)
{
@@ -124,8 +119,7 @@ void test_sig(gnutls_pk_algorithm_t pk, unsigned hash, unsigned bits)
else
abort();
- sign_algo =
- gnutls_pk_to_sign(pk, hash);
+ sign_algo = gnutls_pk_to_sign(pk, hash);
for (j = 0; j < 100; j++) {
ret = gnutls_pubkey_init(&pubkey);
@@ -142,19 +136,21 @@ void test_sig(gnutls_pk_algorithm_t pk, unsigned hash, unsigned bits)
ret =
gnutls_privkey_sign_hash(privkey, hash,
- 0, hash_data,
- &signature);
+ 0, hash_data, &signature);
if (ret < 0)
ERR;
- ret = gnutls_pubkey_import_privkey(pubkey, privkey, GNUTLS_KEY_DIGITAL_SIGNATURE, 0);
+ ret =
+ gnutls_pubkey_import_privkey(pubkey, privkey,
+ GNUTLS_KEY_DIGITAL_SIGNATURE,
+ 0);
if (ret < 0)
ERR;
ret =
gnutls_pubkey_verify_hash2(pubkey,
- sign_algo, vflags,
- hash_data, &signature);
+ sign_algo, vflags,
+ hash_data, &signature);
if (ret < 0) {
print_keys(privkey, pubkey);
ERR;
@@ -163,9 +159,8 @@ void test_sig(gnutls_pk_algorithm_t pk, unsigned hash, unsigned bits)
/* should fail */
ret =
gnutls_pubkey_verify_hash2(pubkey,
- sign_algo, vflags,
- &invalid_hash_data,
- &signature);
+ sign_algo, vflags,
+ &invalid_hash_data, &signature);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED) {
print_keys(privkey, pubkey);
ERR;
@@ -177,15 +172,14 @@ void test_sig(gnutls_pk_algorithm_t pk, unsigned hash, unsigned bits)
ret =
gnutls_pubkey_verify_hash2(pubkey, sign_algo, vflags,
- hash_data, &signature);
+ hash_data, &signature);
if (ret < 0)
ERR;
/* should fail */
ret =
gnutls_pubkey_verify_hash2(pubkey, sign_algo, vflags,
- &invalid_hash_data,
- &signature);
+ &invalid_hash_data, &signature);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED) {
print_keys(privkey, pubkey);
ERR;
@@ -200,8 +194,7 @@ void test_sig(gnutls_pk_algorithm_t pk, unsigned hash, unsigned bits)
gnutls_privkey_sign_hash(privkey,
hash,
GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ hash_data, &signature);
if (ret < 0)
ERR;
@@ -212,10 +205,10 @@ void test_sig(gnutls_pk_algorithm_t pk, unsigned hash, unsigned bits)
ret =
gnutls_pubkey_verify_hash2(pubkey,
- sign_algo,
- vflags|GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
- hash_data,
- &signature);
+ sign_algo,
+ vflags |
+ GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA,
+ hash_data, &signature);
if (ret < 0) {
print_keys(privkey, pubkey);
ERR;
@@ -228,4 +221,4 @@ void test_sig(gnutls_pk_algorithm_t pk, unsigned hash, unsigned bits)
}
}
-#endif /* GNUTLS_TESTS_X509SIGN_VERIFY_COMMON_H */
+#endif /* GNUTLS_TESTS_X509SIGN_VERIFY_COMMON_H */
diff --git a/tests/x509sign-verify-ecdsa.c b/tests/x509sign-verify-ecdsa.c
index c63f2a6aa4..ad63d6513c 100644
--- a/tests/x509sign-verify-ecdsa.c
+++ b/tests/x509sign-verify-ecdsa.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -50,10 +50,14 @@ void doit(void)
if (debug)
gnutls_global_set_log_level(6);
- test_sig(GNUTLS_PK_EC, GNUTLS_DIG_SHA1, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1));
- test_sig(GNUTLS_PK_EC, GNUTLS_DIG_SHA256, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1));
- test_sig(GNUTLS_PK_EC, GNUTLS_DIG_SHA256, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP384R1));
- test_sig(GNUTLS_PK_EC, GNUTLS_DIG_SHA256, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP521R1));
+ test_sig(GNUTLS_PK_EC, GNUTLS_DIG_SHA1,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1));
+ test_sig(GNUTLS_PK_EC, GNUTLS_DIG_SHA256,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP256R1));
+ test_sig(GNUTLS_PK_EC, GNUTLS_DIG_SHA256,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP384R1));
+ test_sig(GNUTLS_PK_EC, GNUTLS_DIG_SHA256,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_SECP521R1));
gnutls_global_deinit();
}
diff --git a/tests/x509sign-verify-error.c b/tests/x509sign-verify-error.c
index bab228bd1f..6046e44711 100644
--- a/tests/x509sign-verify-error.c
+++ b/tests/x509sign-verify-error.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -61,7 +61,7 @@ const gnutls_datum_t invalid_hash_data = {
};
const gnutls_datum_t raw_data = {
- (void *) "hello",
+ (void *)"hello",
5
};
@@ -133,15 +133,15 @@ static char pem2_key[] =
"AoNBXjeBjgCGMei2m8E=\n" "-----END DSA PRIVATE KEY-----\n";
const gnutls_datum_t cert_dat[] = {
- {(void *) pem1_cert, sizeof(pem1_cert)}
+ {(void *)pem1_cert, sizeof(pem1_cert)}
,
- {(void *) pem2_cert, sizeof(pem2_cert)}
+ {(void *)pem2_cert, sizeof(pem2_cert)}
};
const gnutls_datum_t key_dat[] = {
- {(void *) pem1_key, sizeof(pem1_key)}
+ {(void *)pem1_key, sizeof(pem1_key)}
,
- {(void *) pem2_key, sizeof(pem2_key)}
+ {(void *)pem2_key, sizeof(pem2_key)}
};
void _gnutls_lib_simulate_error(void);
@@ -162,7 +162,7 @@ void doit(void)
for (i = 0; i < sizeof(key_dat) / sizeof(key_dat[0]); i++) {
if (debug)
- success("loop %d\n", (int) i);
+ success("loop %d\n", (int)i);
ret = gnutls_privkey_init(&privkey);
if (ret < 0)
@@ -170,12 +170,13 @@ void doit(void)
ret =
gnutls_privkey_import_x509_raw(privkey, &key_dat[i],
- GNUTLS_X509_FMT_PEM, NULL, 0);
+ GNUTLS_X509_FMT_PEM, NULL,
+ 0);
if (ret < 0)
fail("gnutls_privkey_import\n");
ret = gnutls_privkey_sign_hash(privkey, GNUTLS_DIG_SHA1, 0,
- &hash_data, &signature2);
+ &hash_data, &signature2);
if (ret < 0)
fail("gnutls_privkey_sign_hash\n");
@@ -183,7 +184,7 @@ void doit(void)
_gnutls_lib_simulate_error();
ret = gnutls_privkey_sign_hash(privkey, GNUTLS_DIG_SHA1, 0,
- &hash_data, &signature2);
+ &hash_data, &signature2);
if (ret != GNUTLS_E_LIB_IN_ERROR_STATE)
fail("gnutls_privkey_sign_hash\n");
diff --git a/tests/x509sign-verify-gost.c b/tests/x509sign-verify-gost.c
index 65e49be7c1..2cb5ebd03e 100644
--- a/tests/x509sign-verify-gost.c
+++ b/tests/x509sign-verify-gost.c
@@ -23,7 +23,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -54,11 +54,16 @@ void doit(void)
if (debug)
gnutls_global_set_log_level(6);
- test_sig(GNUTLS_PK_GOST_01, GNUTLS_DIG_GOSTR_94, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPA));
- test_sig(GNUTLS_PK_GOST_12_256, GNUTLS_DIG_STREEBOG_256, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPA));
- test_sig(GNUTLS_PK_GOST_01, GNUTLS_DIG_GOSTR_94, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPXA));
- test_sig(GNUTLS_PK_GOST_12_256, GNUTLS_DIG_STREEBOG_256, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPXA));
- test_sig(GNUTLS_PK_GOST_12_512, GNUTLS_DIG_STREEBOG_512, GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST512A));
+ test_sig(GNUTLS_PK_GOST_01, GNUTLS_DIG_GOSTR_94,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPA));
+ test_sig(GNUTLS_PK_GOST_12_256, GNUTLS_DIG_STREEBOG_256,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPA));
+ test_sig(GNUTLS_PK_GOST_01, GNUTLS_DIG_GOSTR_94,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPXA));
+ test_sig(GNUTLS_PK_GOST_12_256, GNUTLS_DIG_STREEBOG_256,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST256CPXA));
+ test_sig(GNUTLS_PK_GOST_12_512, GNUTLS_DIG_STREEBOG_512,
+ GNUTLS_CURVE_TO_BITS(GNUTLS_ECC_CURVE_GOST512A));
gnutls_global_deinit();
#endif
diff --git a/tests/x509sign-verify-rsa.c b/tests/x509sign-verify-rsa.c
index 29c7aabd59..4d3d4ce433 100644
--- a/tests/x509sign-verify-rsa.c
+++ b/tests/x509sign-verify-rsa.c
@@ -22,7 +22,7 @@
/* Parts copied from GnuTLS example programs. */
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -52,8 +52,8 @@ void doit(void)
gnutls_global_set_log_level(6);
if (gnutls_fips140_mode_enabled()) {
- rsa_size1 = 2048; /* minimum allowed */
- rsa_size2 = 2048; /* minimum allowed */
+ rsa_size1 = 2048; /* minimum allowed */
+ rsa_size2 = 2048; /* minimum allowed */
} else {
rsa_size1 = 512;
rsa_size2 = 1024;
diff --git a/tests/x509sign-verify.c b/tests/x509sign-verify.c
index 7a775a4431..8e84fb004d 100644
--- a/tests/x509sign-verify.c
+++ b/tests/x509sign-verify.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <stdio.h>
@@ -84,22 +84,29 @@ void doit(void)
gnutls_global_set_log_level(6);
for (i = 0; i < sizeof(tests) / sizeof(tests[0]); i++) {
- if (tests[i].pk == GNUTLS_PK_DSA || tests[i].pk == GNUTLS_PK_EDDSA_ED25519)
+ if (tests[i].pk == GNUTLS_PK_DSA
+ || tests[i].pk == GNUTLS_PK_EDDSA_ED25519)
continue;
- success("testing: %s - %s\n", tests[i].name, gnutls_sign_algorithm_get_name(tests[i].sigalgo));
+ success("testing: %s - %s\n", tests[i].name,
+ gnutls_sign_algorithm_get_name(tests[i].sigalgo));
ret = gnutls_x509_privkey_init(&privkey);
if (ret < 0)
testfail("gnutls_pubkey_init\n");
- ret = gnutls_x509_privkey_import(privkey, &tests[i].key, GNUTLS_X509_FMT_PEM);
+ ret =
+ gnutls_x509_privkey_import(privkey, &tests[i].key,
+ GNUTLS_X509_FMT_PEM);
if (ret < 0)
testfail("gnutls_privkey_import_x509\n");
signature_size = sizeof(signature_data);
- ret = gnutls_x509_privkey_sign_data(privkey, tests[i].digest, tests[i].sign_flags,
- &raw_data, signature_data, &signature_size);
+ ret =
+ gnutls_x509_privkey_sign_data(privkey, tests[i].digest,
+ tests[i].sign_flags,
+ &raw_data, signature_data,
+ &signature_size);
if (ret < 0)
testfail("gnutls_x509_privkey_sign_data\n");
@@ -113,39 +120,40 @@ void doit(void)
if (ret < 0)
testfail("gnutls_x509_crt_import\n");
- signature.data = (unsigned char*)signature_data;
+ signature.data = (unsigned char *)signature_data;
signature.size = signature_size;
ret =
- gnutls_x509_crt_verify_data2(crt, tests[i].sigalgo, 0, &raw_data,
- &signature);
+ gnutls_x509_crt_verify_data2(crt, tests[i].sigalgo, 0,
+ &raw_data, &signature);
if (ret < 0)
testfail("gnutls_x509_crt_verify_data2\n");
/* should fail */
ret =
gnutls_x509_crt_verify_data2(crt, tests[i].sigalgo, 0,
- &invalid_raw_data,
- &signature);
+ &invalid_raw_data, &signature);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
- testfail("gnutls_x509_crt_verify_data2-2 (hashed data)\n");
+ testfail
+ ("gnutls_x509_crt_verify_data2-2 (hashed data)\n");
sign_algo =
gnutls_pk_to_sign(gnutls_x509_crt_get_pk_algorithm
(crt, NULL), tests[i].digest);
ret =
gnutls_x509_crt_verify_data2(crt, sign_algo, 0,
- &raw_data, &signature);
+ &raw_data, &signature);
if (ret < 0)
- testfail("gnutls_x509_crt_verify_data2-1 (hashed data)\n");
+ testfail
+ ("gnutls_x509_crt_verify_data2-1 (hashed data)\n");
/* should fail */
ret =
gnutls_x509_crt_verify_data2(crt, sign_algo, 0,
- &invalid_raw_data,
- &signature);
+ &invalid_raw_data, &signature);
if (ret != GNUTLS_E_PK_SIG_VERIFY_FAILED)
- testfail("gnutls_x509_crt_verify_data2-2 (hashed data)\n");
+ testfail
+ ("gnutls_x509_crt_verify_data2-2 (hashed data)\n");
gnutls_x509_crt_deinit(crt);
gnutls_x509_privkey_deinit(privkey);
diff --git a/tests/xts-key-check.c b/tests/xts-key-check.c
index a3bea5abca..5d510d2937 100644
--- a/tests/xts-key-check.c
+++ b/tests/xts-key-check.c
@@ -20,7 +20,7 @@
*/
#ifdef HAVE_CONFIG_H
-#include <config.h>
+# include <config.h>
#endif
#include <gnutls/crypto.h>